diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 81b309f..2375b95 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,25 +2,24 @@ name: Build on: pull_request_target: - branches: [ master ] + branches: [master] jobs: build: - runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - name: Set up Python 3.9 - uses: actions/setup-python@v2 - with: - python-version: "3.9" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install poetry - make install_dev - - name: Run tests and coverage - run: make test_cov - - name: Upload coverage to Codecov - uses: codecov/codecov-action@v2 + - uses: actions/checkout@v3 + - name: Set up Python 3.9 + uses: actions/setup-python@v3 + with: + python-version: "3.9" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install poetry + make install_dev + - name: Run tests and coverage + run: make test_cov + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v2 diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 490ad25..0a5fec6 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,6 +1,18 @@ Change Log ========== +2.3.4 +----- +## Update +- Use a different url to try and obtain cookies (fc.yahoo.com no longer works) +- Refactor how a session is initialized +- Use the country as a way to make the request to obtain cookies be more location specific + +2.3.3 +----- +## Update +- Try and obtain cookies and a crumb during `Ticker` initialization so they can be used in further requests. + 2.3.2 ----- ## Update diff --git a/docs/docs/guide/advanced.md b/docs/docs/guide/advanced.md index 8c4edb7..bb45a2b 100644 --- a/docs/docs/guide/advanced.md +++ b/docs/docs/guide/advanced.md @@ -34,7 +34,7 @@ for i, row in df.iterrows(): # Or, pass all tickers to the Ticker instance ticker_list = df['Tickers'].tolist() -ticker_list = list(set(_flatten_list(ticker_list))) +ticker_list = list(set(flatten_list(ticker_list))) tickers = Ticker(ticker_list, session=r.session, crumb=r.crumb) data = tickers.p_company_360 # Do something with data diff --git a/poetry.lock b/poetry.lock index 399a817..6c72f6f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -13,20 +13,21 @@ files = [ [[package]] name = "asttokens" -version = "2.2.1" +version = "2.4.1" description = "Annotate AST trees with source code positions" optional = false python-versions = "*" files = [ - {file = "asttokens-2.2.1-py2.py3-none-any.whl", hash = "sha256:6b0ac9e93fb0335014d382b8fa9b3afa7df546984258005da0b9e7095b3deb1c"}, - {file = "asttokens-2.2.1.tar.gz", hash = "sha256:4622110b2a6f30b77e1473affaa97e711bc2f07d3f10848420ff1898edbe94f3"}, + {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"}, + {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"}, ] [package.dependencies] -six = "*" +six = ">=1.12.0" [package.extras] -test = ["astroid", "pytest"] +astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"] +test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] [[package]] name = "attrs" @@ -46,6 +47,24 @@ docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib- tests = ["attrs[tests-no-zope]", "zope-interface"] tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +[[package]] +name = "babel" +version = "2.13.1" +description = "Internationalization utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "Babel-2.13.1-py3-none-any.whl", hash = "sha256:7077a4984b02b6727ac10f1f7294484f737443d7e2e66c5e4380e41a3ae0b4ed"}, + {file = "Babel-2.13.1.tar.gz", hash = "sha256:33e0952d7dd6374af8dbf6768cc4ddf3ccfefc244f9986d4074704f2fbd18900"}, +] + +[package.dependencies] +pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} +setuptools = {version = "*", markers = "python_version >= \"3.12\""} + +[package.extras] +dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] + [[package]] name = "backcall" version = "0.2.0" @@ -59,33 +78,29 @@ files = [ [[package]] name = "black" -version = "23.7.0" +version = "23.10.1" description = "The uncompromising code formatter." optional = false python-versions = ">=3.8" files = [ - {file = "black-23.7.0-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:5c4bc552ab52f6c1c506ccae05681fab58c3f72d59ae6e6639e8885e94fe2587"}, - {file = "black-23.7.0-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:552513d5cd5694590d7ef6f46e1767a4df9af168d449ff767b13b084c020e63f"}, - {file = "black-23.7.0-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:86cee259349b4448adb4ef9b204bb4467aae74a386bce85d56ba4f5dc0da27be"}, - {file = "black-23.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:501387a9edcb75d7ae8a4412bb8749900386eaef258f1aefab18adddea1936bc"}, - {file = "black-23.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:fb074d8b213749fa1d077d630db0d5f8cc3b2ae63587ad4116e8a436e9bbe995"}, - {file = "black-23.7.0-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:b5b0ee6d96b345a8b420100b7d71ebfdd19fab5e8301aff48ec270042cd40ac2"}, - {file = "black-23.7.0-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:893695a76b140881531062d48476ebe4a48f5d1e9388177e175d76234ca247cd"}, - {file = "black-23.7.0-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:c333286dc3ddca6fdff74670b911cccedacb4ef0a60b34e491b8a67c833b343a"}, - {file = "black-23.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:831d8f54c3a8c8cf55f64d0422ee875eecac26f5f649fb6c1df65316b67c8926"}, - {file = "black-23.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:7f3bf2dec7d541b4619b8ce526bda74a6b0bffc480a163fed32eb8b3c9aed8ad"}, - {file = "black-23.7.0-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:f9062af71c59c004cd519e2fb8f5d25d39e46d3af011b41ab43b9c74e27e236f"}, - {file = "black-23.7.0-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:01ede61aac8c154b55f35301fac3e730baf0c9cf8120f65a9cd61a81cfb4a0c3"}, - {file = "black-23.7.0-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:327a8c2550ddc573b51e2c352adb88143464bb9d92c10416feb86b0f5aee5ff6"}, - {file = "black-23.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d1c6022b86f83b632d06f2b02774134def5d4d4f1dac8bef16d90cda18ba28a"}, - {file = "black-23.7.0-cp38-cp38-win_amd64.whl", hash = "sha256:27eb7a0c71604d5de083757fbdb245b1a4fae60e9596514c6ec497eb63f95320"}, - {file = "black-23.7.0-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:8417dbd2f57b5701492cd46edcecc4f9208dc75529bcf76c514864e48da867d9"}, - {file = "black-23.7.0-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:47e56d83aad53ca140da0af87678fb38e44fd6bc0af71eebab2d1f59b1acf1d3"}, - {file = "black-23.7.0-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:25cc308838fe71f7065df53aedd20327969d05671bac95b38fdf37ebe70ac087"}, - {file = "black-23.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:642496b675095d423f9b8448243336f8ec71c9d4d57ec17bf795b67f08132a91"}, - {file = "black-23.7.0-cp39-cp39-win_amd64.whl", hash = "sha256:ad0014efc7acf0bd745792bd0d8857413652979200ab924fbf239062adc12491"}, - {file = "black-23.7.0-py3-none-any.whl", hash = "sha256:9fd59d418c60c0348505f2ddf9609c1e1de8e7493eab96198fc89d9f865e7a96"}, - {file = "black-23.7.0.tar.gz", hash = "sha256:022a582720b0d9480ed82576c920a8c1dde97cc38ff11d8d8859b3bd6ca9eedb"}, + {file = "black-23.10.1-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:ec3f8e6234c4e46ff9e16d9ae96f4ef69fa328bb4ad08198c8cee45bb1f08c69"}, + {file = "black-23.10.1-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:1b917a2aa020ca600483a7b340c165970b26e9029067f019e3755b56e8dd5916"}, + {file = "black-23.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c74de4c77b849e6359c6f01987e94873c707098322b91490d24296f66d067dc"}, + {file = "black-23.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:7b4d10b0f016616a0d93d24a448100adf1699712fb7a4efd0e2c32bbb219b173"}, + {file = "black-23.10.1-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:b15b75fc53a2fbcac8a87d3e20f69874d161beef13954747e053bca7a1ce53a0"}, + {file = "black-23.10.1-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:e293e4c2f4a992b980032bbd62df07c1bcff82d6964d6c9496f2cd726e246ace"}, + {file = "black-23.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d56124b7a61d092cb52cce34182a5280e160e6aff3137172a68c2c2c4b76bcb"}, + {file = "black-23.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:3f157a8945a7b2d424da3335f7ace89c14a3b0625e6593d21139c2d8214d55ce"}, + {file = "black-23.10.1-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:cfcce6f0a384d0da692119f2d72d79ed07c7159879d0bb1bb32d2e443382bf3a"}, + {file = "black-23.10.1-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:33d40f5b06be80c1bbce17b173cda17994fbad096ce60eb22054da021bf933d1"}, + {file = "black-23.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:840015166dbdfbc47992871325799fd2dc0dcf9395e401ada6d88fe11498abad"}, + {file = "black-23.10.1-cp38-cp38-win_amd64.whl", hash = "sha256:037e9b4664cafda5f025a1728c50a9e9aedb99a759c89f760bd83730e76ba884"}, + {file = "black-23.10.1-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:7cb5936e686e782fddb1c73f8aa6f459e1ad38a6a7b0e54b403f1f05a1507ee9"}, + {file = "black-23.10.1-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:7670242e90dc129c539e9ca17665e39a146a761e681805c54fbd86015c7c84f7"}, + {file = "black-23.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ed45ac9a613fb52dad3b61c8dea2ec9510bf3108d4db88422bacc7d1ba1243d"}, + {file = "black-23.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:6d23d7822140e3fef190734216cefb262521789367fbdc0b3f22af6744058982"}, + {file = "black-23.10.1-py3-none-any.whl", hash = "sha256:d431e6739f727bb2e0495df64a6c7a5310758e87505f5f8cde9ff6c0f2d7e4fe"}, + {file = "black-23.10.1.tar.gz", hash = "sha256:1f8ce316753428ff68749c65a5f7844631aa18c8679dfd3ca9dc1a289979c258"}, ] [package.dependencies] @@ -95,7 +110,7 @@ packaging = ">=22.0" pathspec = ">=0.9.0" platformdirs = ">=2" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""} +typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} [package.extras] colorama = ["colorama (>=0.4.3)"] @@ -105,86 +120,74 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "certifi" -version = "2023.5.7" +version = "2023.7.22" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2023.5.7-py3-none-any.whl", hash = "sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716"}, - {file = "certifi-2023.5.7.tar.gz", hash = "sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7"}, + {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, + {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, ] [[package]] name = "cffi" -version = "1.15.1" +version = "1.16.0" description = "Foreign Function Interface for Python calling C code." optional = true -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, - {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"}, - {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"}, - {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"}, - {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"}, - {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"}, - {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"}, - {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"}, - {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"}, - {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"}, - {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"}, - {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"}, - {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"}, - {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"}, - {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"}, - {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"}, - {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"}, - {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"}, - {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"}, - {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"}, - {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"}, - {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"}, - {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"}, - {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"}, - {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"}, - {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"}, - {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"}, - {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"}, - {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"}, - {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"}, - {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"}, - {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"}, - {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"}, - {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, - {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, + {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, + {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, + {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, + {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, + {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, + {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, + {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, + {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, + {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, + {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"}, + {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"}, + {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"}, + {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"}, + {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"}, + {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, ] [package.dependencies] @@ -192,108 +195,123 @@ pycparser = "*" [[package]] name = "cfgv" -version = "3.3.1" +version = "3.4.0" description = "Validate configuration and produce human readable error messages." optional = false -python-versions = ">=3.6.1" +python-versions = ">=3.8" files = [ - {file = "cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"}, - {file = "cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"}, + {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"}, + {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"}, ] [[package]] name = "charset-normalizer" -version = "3.2.0" +version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7.0" files = [ - {file = "charset-normalizer-3.2.0.tar.gz", hash = "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-win32.whl", hash = "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-win32.whl", hash = "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-win32.whl", hash = "sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-win32.whl", hash = "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-win32.whl", hash = "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80"}, - {file = "charset_normalizer-3.2.0-py3-none-any.whl", hash = "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6"}, + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, ] [[package]] name = "click" -version = "8.1.5" +version = "8.1.7" description = "Composable command line interface toolkit" optional = false python-versions = ">=3.7" files = [ - {file = "click-8.1.5-py3-none-any.whl", hash = "sha256:e576aa487d679441d7d30abb87e1b43d24fc53bffb8758443b1a9e1cee504548"}, - {file = "click-8.1.5.tar.gz", hash = "sha256:4be4b1af8d665c6d942909916d31a213a106800c47d0eeba73d34da3cbc11367"}, + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, ] [package.dependencies] @@ -312,71 +330,63 @@ files = [ [[package]] name = "coverage" -version = "7.2.7" +version = "7.3.2" description = "Code coverage measurement for Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "coverage-7.2.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d39b5b4f2a66ccae8b7263ac3c8170994b65266797fb96cbbfd3fb5b23921db8"}, - {file = "coverage-7.2.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6d040ef7c9859bb11dfeb056ff5b3872436e3b5e401817d87a31e1750b9ae2fb"}, - {file = "coverage-7.2.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba90a9563ba44a72fda2e85302c3abc71c5589cea608ca16c22b9804262aaeb6"}, - {file = "coverage-7.2.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7d9405291c6928619403db1d10bd07888888ec1abcbd9748fdaa971d7d661b2"}, - {file = "coverage-7.2.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31563e97dae5598556600466ad9beea39fb04e0229e61c12eaa206e0aa202063"}, - {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ebba1cd308ef115925421d3e6a586e655ca5a77b5bf41e02eb0e4562a111f2d1"}, - {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:cb017fd1b2603ef59e374ba2063f593abe0fc45f2ad9abdde5b4d83bd922a353"}, - {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62a5c7dad11015c66fbb9d881bc4caa5b12f16292f857842d9d1871595f4495"}, - {file = "coverage-7.2.7-cp310-cp310-win32.whl", hash = "sha256:ee57190f24fba796e36bb6d3aa8a8783c643d8fa9760c89f7a98ab5455fbf818"}, - {file = "coverage-7.2.7-cp310-cp310-win_amd64.whl", hash = "sha256:f75f7168ab25dd93110c8a8117a22450c19976afbc44234cbf71481094c1b850"}, - {file = "coverage-7.2.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:06a9a2be0b5b576c3f18f1a241f0473575c4a26021b52b2a85263a00f034d51f"}, - {file = "coverage-7.2.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5baa06420f837184130752b7c5ea0808762083bf3487b5038d68b012e5937dbe"}, - {file = "coverage-7.2.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdec9e8cbf13a5bf63290fc6013d216a4c7232efb51548594ca3631a7f13c3a3"}, - {file = "coverage-7.2.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52edc1a60c0d34afa421c9c37078817b2e67a392cab17d97283b64c5833f427f"}, - {file = "coverage-7.2.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63426706118b7f5cf6bb6c895dc215d8a418d5952544042c8a2d9fe87fcf09cb"}, - {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:afb17f84d56068a7c29f5fa37bfd38d5aba69e3304af08ee94da8ed5b0865833"}, - {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:48c19d2159d433ccc99e729ceae7d5293fbffa0bdb94952d3579983d1c8c9d97"}, - {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0e1f928eaf5469c11e886fe0885ad2bf1ec606434e79842a879277895a50942a"}, - {file = "coverage-7.2.7-cp311-cp311-win32.whl", hash = "sha256:33d6d3ea29d5b3a1a632b3c4e4f4ecae24ef170b0b9ee493883f2df10039959a"}, - {file = "coverage-7.2.7-cp311-cp311-win_amd64.whl", hash = "sha256:5b7540161790b2f28143191f5f8ec02fb132660ff175b7747b95dcb77ac26562"}, - {file = "coverage-7.2.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f2f67fe12b22cd130d34d0ef79206061bfb5eda52feb6ce0dba0644e20a03cf4"}, - {file = "coverage-7.2.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a342242fe22407f3c17f4b499276a02b01e80f861f1682ad1d95b04018e0c0d4"}, - {file = "coverage-7.2.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:171717c7cb6b453aebac9a2ef603699da237f341b38eebfee9be75d27dc38e01"}, - {file = "coverage-7.2.7-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49969a9f7ffa086d973d91cec8d2e31080436ef0fb4a359cae927e742abfaaa6"}, - {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b46517c02ccd08092f4fa99f24c3b83d8f92f739b4657b0f146246a0ca6a831d"}, - {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:a3d33a6b3eae87ceaefa91ffdc130b5e8536182cd6dfdbfc1aa56b46ff8c86de"}, - {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:976b9c42fb2a43ebf304fa7d4a310e5f16cc99992f33eced91ef6f908bd8f33d"}, - {file = "coverage-7.2.7-cp312-cp312-win32.whl", hash = "sha256:8de8bb0e5ad103888d65abef8bca41ab93721647590a3f740100cd65c3b00511"}, - {file = "coverage-7.2.7-cp312-cp312-win_amd64.whl", hash = "sha256:9e31cb64d7de6b6f09702bb27c02d1904b3aebfca610c12772452c4e6c21a0d3"}, - {file = "coverage-7.2.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:58c2ccc2f00ecb51253cbe5d8d7122a34590fac9646a960d1430d5b15321d95f"}, - {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d22656368f0e6189e24722214ed8d66b8022db19d182927b9a248a2a8a2f67eb"}, - {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a895fcc7b15c3fc72beb43cdcbdf0ddb7d2ebc959edac9cef390b0d14f39f8a9"}, - {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e84606b74eb7de6ff581a7915e2dab7a28a0517fbe1c9239eb227e1354064dcd"}, - {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:0a5f9e1dbd7fbe30196578ca36f3fba75376fb99888c395c5880b355e2875f8a"}, - {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:419bfd2caae268623dd469eff96d510a920c90928b60f2073d79f8fe2bbc5959"}, - {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2aee274c46590717f38ae5e4650988d1af340fe06167546cc32fe2f58ed05b02"}, - {file = "coverage-7.2.7-cp37-cp37m-win32.whl", hash = "sha256:61b9a528fb348373c433e8966535074b802c7a5d7f23c4f421e6c6e2f1697a6f"}, - {file = "coverage-7.2.7-cp37-cp37m-win_amd64.whl", hash = "sha256:b1c546aca0ca4d028901d825015dc8e4d56aac4b541877690eb76490f1dc8ed0"}, - {file = "coverage-7.2.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:54b896376ab563bd38453cecb813c295cf347cf5906e8b41d340b0321a5433e5"}, - {file = "coverage-7.2.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3d376df58cc111dc8e21e3b6e24606b5bb5dee6024f46a5abca99124b2229ef5"}, - {file = "coverage-7.2.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e330fc79bd7207e46c7d7fd2bb4af2963f5f635703925543a70b99574b0fea9"}, - {file = "coverage-7.2.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e9d683426464e4a252bf70c3498756055016f99ddaec3774bf368e76bbe02b6"}, - {file = "coverage-7.2.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d13c64ee2d33eccf7437961b6ea7ad8673e2be040b4f7fd4fd4d4d28d9ccb1e"}, - {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b7aa5f8a41217360e600da646004f878250a0d6738bcdc11a0a39928d7dc2050"}, - {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8fa03bce9bfbeeef9f3b160a8bed39a221d82308b4152b27d82d8daa7041fee5"}, - {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:245167dd26180ab4c91d5e1496a30be4cd721a5cf2abf52974f965f10f11419f"}, - {file = "coverage-7.2.7-cp38-cp38-win32.whl", hash = "sha256:d2c2db7fd82e9b72937969bceac4d6ca89660db0a0967614ce2481e81a0b771e"}, - {file = "coverage-7.2.7-cp38-cp38-win_amd64.whl", hash = "sha256:2e07b54284e381531c87f785f613b833569c14ecacdcb85d56b25c4622c16c3c"}, - {file = "coverage-7.2.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:537891ae8ce59ef63d0123f7ac9e2ae0fc8b72c7ccbe5296fec45fd68967b6c9"}, - {file = "coverage-7.2.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:06fb182e69f33f6cd1d39a6c597294cff3143554b64b9825d1dc69d18cc2fff2"}, - {file = "coverage-7.2.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:201e7389591af40950a6480bd9edfa8ed04346ff80002cec1a66cac4549c1ad7"}, - {file = "coverage-7.2.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f6951407391b639504e3b3be51b7ba5f3528adbf1a8ac3302b687ecababf929e"}, - {file = "coverage-7.2.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f48351d66575f535669306aa7d6d6f71bc43372473b54a832222803eb956fd1"}, - {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b29019c76039dc3c0fd815c41392a044ce555d9bcdd38b0fb60fb4cd8e475ba9"}, - {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:81c13a1fc7468c40f13420732805a4c38a105d89848b7c10af65a90beff25250"}, - {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:975d70ab7e3c80a3fe86001d8751f6778905ec723f5b110aed1e450da9d4b7f2"}, - {file = "coverage-7.2.7-cp39-cp39-win32.whl", hash = "sha256:7ee7d9d4822c8acc74a5e26c50604dff824710bc8de424904c0982e25c39c6cb"}, - {file = "coverage-7.2.7-cp39-cp39-win_amd64.whl", hash = "sha256:eb393e5ebc85245347950143969b241d08b52b88a3dc39479822e073a1a8eb27"}, - {file = "coverage-7.2.7-pp37.pp38.pp39-none-any.whl", hash = "sha256:b7b4c971f05e6ae490fef852c218b0e79d4e52f79ef0c8475566584a8fb3e01d"}, - {file = "coverage-7.2.7.tar.gz", hash = "sha256:924d94291ca674905fe9481f12294eb11f2d3d3fd1adb20314ba89e94f44ed59"}, + {file = "coverage-7.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d872145f3a3231a5f20fd48500274d7df222e291d90baa2026cc5152b7ce86bf"}, + {file = "coverage-7.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:310b3bb9c91ea66d59c53fa4989f57d2436e08f18fb2f421a1b0b6b8cc7fffda"}, + {file = "coverage-7.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f47d39359e2c3779c5331fc740cf4bce6d9d680a7b4b4ead97056a0ae07cb49a"}, + {file = "coverage-7.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aa72dbaf2c2068404b9870d93436e6d23addd8bbe9295f49cbca83f6e278179c"}, + {file = "coverage-7.3.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:beaa5c1b4777f03fc63dfd2a6bd820f73f036bfb10e925fce067b00a340d0f3f"}, + {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:dbc1b46b92186cc8074fee9d9fbb97a9dd06c6cbbef391c2f59d80eabdf0faa6"}, + {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:315a989e861031334d7bee1f9113c8770472db2ac484e5b8c3173428360a9148"}, + {file = "coverage-7.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d1bc430677773397f64a5c88cb522ea43175ff16f8bfcc89d467d974cb2274f9"}, + {file = "coverage-7.3.2-cp310-cp310-win32.whl", hash = "sha256:a889ae02f43aa45032afe364c8ae84ad3c54828c2faa44f3bfcafecb5c96b02f"}, + {file = "coverage-7.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:c0ba320de3fb8c6ec16e0be17ee1d3d69adcda99406c43c0409cb5c41788a611"}, + {file = "coverage-7.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ac8c802fa29843a72d32ec56d0ca792ad15a302b28ca6203389afe21f8fa062c"}, + {file = "coverage-7.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:89a937174104339e3a3ffcf9f446c00e3a806c28b1841c63edb2b369310fd074"}, + {file = "coverage-7.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e267e9e2b574a176ddb983399dec325a80dbe161f1a32715c780b5d14b5f583a"}, + {file = "coverage-7.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2443cbda35df0d35dcfb9bf8f3c02c57c1d6111169e3c85fc1fcc05e0c9f39a3"}, + {file = "coverage-7.3.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4175e10cc8dda0265653e8714b3174430b07c1dca8957f4966cbd6c2b1b8065a"}, + {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0cbf38419fb1a347aaf63481c00f0bdc86889d9fbf3f25109cf96c26b403fda1"}, + {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:5c913b556a116b8d5f6ef834038ba983834d887d82187c8f73dec21049abd65c"}, + {file = "coverage-7.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1981f785239e4e39e6444c63a98da3a1db8e971cb9ceb50a945ba6296b43f312"}, + {file = "coverage-7.3.2-cp311-cp311-win32.whl", hash = "sha256:43668cabd5ca8258f5954f27a3aaf78757e6acf13c17604d89648ecc0cc66640"}, + {file = "coverage-7.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10c39c0452bf6e694511c901426d6b5ac005acc0f78ff265dbe36bf81f808a2"}, + {file = "coverage-7.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:4cbae1051ab791debecc4a5dcc4a1ff45fc27b91b9aee165c8a27514dd160836"}, + {file = "coverage-7.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:12d15ab5833a997716d76f2ac1e4b4d536814fc213c85ca72756c19e5a6b3d63"}, + {file = "coverage-7.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c7bba973ebee5e56fe9251300c00f1579652587a9f4a5ed8404b15a0471f216"}, + {file = "coverage-7.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe494faa90ce6381770746077243231e0b83ff3f17069d748f645617cefe19d4"}, + {file = "coverage-7.3.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6e9589bd04d0461a417562649522575d8752904d35c12907d8c9dfeba588faf"}, + {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d51ac2a26f71da1b57f2dc81d0e108b6ab177e7d30e774db90675467c847bbdf"}, + {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:99b89d9f76070237975b315b3d5f4d6956ae354a4c92ac2388a5695516e47c84"}, + {file = "coverage-7.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fa28e909776dc69efb6ed975a63691bc8172b64ff357e663a1bb06ff3c9b589a"}, + {file = "coverage-7.3.2-cp312-cp312-win32.whl", hash = "sha256:289fe43bf45a575e3ab10b26d7b6f2ddb9ee2dba447499f5401cfb5ecb8196bb"}, + {file = "coverage-7.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7dbc3ed60e8659bc59b6b304b43ff9c3ed858da2839c78b804973f613d3e92ed"}, + {file = "coverage-7.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f94b734214ea6a36fe16e96a70d941af80ff3bfd716c141300d95ebc85339738"}, + {file = "coverage-7.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:af3d828d2c1cbae52d34bdbb22fcd94d1ce715d95f1a012354a75e5913f1bda2"}, + {file = "coverage-7.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:630b13e3036e13c7adc480ca42fa7afc2a5d938081d28e20903cf7fd687872e2"}, + {file = "coverage-7.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9eacf273e885b02a0273bb3a2170f30e2d53a6d53b72dbe02d6701b5296101c"}, + {file = "coverage-7.3.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8f17966e861ff97305e0801134e69db33b143bbfb36436efb9cfff6ec7b2fd9"}, + {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b4275802d16882cf9c8b3d057a0839acb07ee9379fa2749eca54efbce1535b82"}, + {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:72c0cfa5250f483181e677ebc97133ea1ab3eb68645e494775deb6a7f6f83901"}, + {file = "coverage-7.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cb536f0dcd14149425996821a168f6e269d7dcd2c273a8bff8201e79f5104e76"}, + {file = "coverage-7.3.2-cp38-cp38-win32.whl", hash = "sha256:307adb8bd3abe389a471e649038a71b4eb13bfd6b7dd9a129fa856f5c695cf92"}, + {file = "coverage-7.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:88ed2c30a49ea81ea3b7f172e0269c182a44c236eb394718f976239892c0a27a"}, + {file = "coverage-7.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b631c92dfe601adf8f5ebc7fc13ced6bb6e9609b19d9a8cd59fa47c4186ad1ce"}, + {file = "coverage-7.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d3d9df4051c4a7d13036524b66ecf7a7537d14c18a384043f30a303b146164e9"}, + {file = "coverage-7.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f7363d3b6a1119ef05015959ca24a9afc0ea8a02c687fe7e2d557705375c01f"}, + {file = "coverage-7.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2f11cc3c967a09d3695d2a6f03fb3e6236622b93be7a4b5dc09166a861be6d25"}, + {file = "coverage-7.3.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:149de1d2401ae4655c436a3dced6dd153f4c3309f599c3d4bd97ab172eaf02d9"}, + {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3a4006916aa6fee7cd38db3bfc95aa9c54ebb4ffbfc47c677c8bba949ceba0a6"}, + {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9028a3871280110d6e1aa2df1afd5ef003bab5fb1ef421d6dc748ae1c8ef2ebc"}, + {file = "coverage-7.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9f805d62aec8eb92bab5b61c0f07329275b6f41c97d80e847b03eb894f38d083"}, + {file = "coverage-7.3.2-cp39-cp39-win32.whl", hash = "sha256:d1c88ec1a7ff4ebca0219f5b1ef863451d828cccf889c173e1253aa84b1e07ce"}, + {file = "coverage-7.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b4767da59464bb593c07afceaddea61b154136300881844768037fd5e859353f"}, + {file = "coverage-7.3.2-pp38.pp39.pp310-none-any.whl", hash = "sha256:ae97af89f0fbf373400970c0a21eef5aa941ffeed90aee43650b81f7d7f47637"}, + {file = "coverage-7.3.2.tar.gz", hash = "sha256:be32ad29341b0170e795ca590e1c07e81fc061cb5b10c74ce7203491484404ef"}, ] [package.dependencies] @@ -409,13 +419,13 @@ files = [ [[package]] name = "exceptiongroup" -version = "1.1.2" +version = "1.1.3" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" files = [ - {file = "exceptiongroup-1.1.2-py3-none-any.whl", hash = "sha256:e346e69d186172ca7cf029c8c1d16235aa0e04035e5750b4b95039e65204328f"}, - {file = "exceptiongroup-1.1.2.tar.gz", hash = "sha256:12c3e887d6485d16943a309616de20ae5582633e0a2eda17f4e10fd61c1e8af5"}, + {file = "exceptiongroup-1.1.3-py3-none-any.whl", hash = "sha256:343280667a4585d195ca1cf9cef84a4e178c4b6cf2274caef9859782b567d5e3"}, + {file = "exceptiongroup-1.1.3.tar.gz", hash = "sha256:097acd85d473d75af5bb98e41b61ff7fe35efe6675e4f9370ec6ec5126d160e9"}, ] [package.extras] @@ -423,48 +433,49 @@ test = ["pytest (>=6)"] [[package]] name = "executing" -version = "1.2.0" +version = "2.0.1" description = "Get the currently executing AST node of a frame, and other information" optional = false -python-versions = "*" +python-versions = ">=3.5" files = [ - {file = "executing-1.2.0-py2.py3-none-any.whl", hash = "sha256:0314a69e37426e3608aada02473b4161d4caf5a4b244d1d0c48072b8fee7bacc"}, - {file = "executing-1.2.0.tar.gz", hash = "sha256:19da64c18d2d851112f09c287f8d3dbbdf725ab0e569077efb6cdcbd3497c107"}, + {file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"}, + {file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"}, ] [package.extras] -tests = ["asttokens", "littleutils", "pytest", "rich"] +tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"] [[package]] name = "filelock" -version = "3.12.2" +version = "3.13.1" description = "A platform independent file lock." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "filelock-3.12.2-py3-none-any.whl", hash = "sha256:cbb791cdea2a72f23da6ac5b5269ab0a0d161e9ef0100e653b69049a7706d1ec"}, - {file = "filelock-3.12.2.tar.gz", hash = "sha256:002740518d8aa59a26b0c76e10fb8c6e15eae825d34b6fdf670333fd7b938d81"}, + {file = "filelock-3.13.1-py3-none-any.whl", hash = "sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c"}, + {file = "filelock-3.13.1.tar.gz", hash = "sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e"}, ] [package.extras] -docs = ["furo (>=2023.5.20)", "sphinx (>=7.0.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "diff-cover (>=7.5)", "pytest (>=7.3.1)", "pytest-cov (>=4.1)", "pytest-mock (>=3.10)", "pytest-timeout (>=2.1)"] +docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.24)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)"] +typing = ["typing-extensions (>=4.8)"] [[package]] name = "flake8" -version = "6.0.0" +version = "6.1.0" description = "the modular source code checker: pep8 pyflakes and co" optional = false python-versions = ">=3.8.1" files = [ - {file = "flake8-6.0.0-py2.py3-none-any.whl", hash = "sha256:3833794e27ff64ea4e9cf5d410082a8b97ff1a06c16aa3d2027339cd0f1195c7"}, - {file = "flake8-6.0.0.tar.gz", hash = "sha256:c61007e76655af75e6785a931f452915b371dc48f56efd765247c8fe68f2b181"}, + {file = "flake8-6.1.0-py2.py3-none-any.whl", hash = "sha256:ffdfce58ea94c6580c77888a86506937f9a1a227dfcd15f245d694ae20a6b6e5"}, + {file = "flake8-6.1.0.tar.gz", hash = "sha256:d5b3857f07c030bdb5bf41c7f53799571d75c4491748a3adcd47de929e34cd23"}, ] [package.dependencies] mccabe = ">=0.7.0,<0.8.0" -pycodestyle = ">=2.10.0,<2.11.0" -pyflakes = ">=3.0.0,<3.1.0" +pycodestyle = ">=2.11.0,<2.12.0" +pyflakes = ">=3.1.0,<3.2.0" [[package]] name = "ghp-import" @@ -496,13 +507,13 @@ files = [ [[package]] name = "identify" -version = "2.5.24" +version = "2.5.31" description = "File identification library for Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "identify-2.5.24-py2.py3-none-any.whl", hash = "sha256:986dbfb38b1140e763e413e6feb44cd731faf72d1909543178aa79b0e258265d"}, - {file = "identify-2.5.24.tar.gz", hash = "sha256:0aac67d5b4812498056d28a9a512a483f5085cc28640b02b258a59dac34301d4"}, + {file = "identify-2.5.31-py2.py3-none-any.whl", hash = "sha256:90199cb9e7bd3c5407a9b7e81b4abec4bb9d249991c79439ec8af740afc6293d"}, + {file = "identify-2.5.31.tar.gz", hash = "sha256:7736b3c7a28233637e3c36550646fc6389bedd74ae84cb788200cc8e2dd60b75"}, ] [package.extras] @@ -551,13 +562,13 @@ files = [ [[package]] name = "ipython" -version = "8.14.0" +version = "8.12.3" description = "IPython: Productive Interactive Computing" optional = false -python-versions = ">=3.9" +python-versions = ">=3.8" files = [ - {file = "ipython-8.14.0-py3-none-any.whl", hash = "sha256:248aca623f5c99a6635bc3857677b7320b9b8039f99f070ee0d20a5ca5a8e6bf"}, - {file = "ipython-8.14.0.tar.gz", hash = "sha256:1d197b907b6ba441b692c48cf2a3a2de280dc0ac91a3405b39349a50272ca0a1"}, + {file = "ipython-8.12.3-py3-none-any.whl", hash = "sha256:b0340d46a933d27c657b211a329d0be23793c36595acf9e6ef4164bc01a1804c"}, + {file = "ipython-8.12.3.tar.gz", hash = "sha256:3910c4b54543c2ad73d06579aa771041b7d5707b033bd488669b4cf544e3b363"}, ] [package.dependencies] @@ -607,22 +618,22 @@ requirements-deprecated-finder = ["pip-api", "pipreqs"] [[package]] name = "jedi" -version = "0.18.2" +version = "0.19.1" description = "An autocompletion tool for Python that can be used for text editors." optional = false python-versions = ">=3.6" files = [ - {file = "jedi-0.18.2-py2.py3-none-any.whl", hash = "sha256:203c1fd9d969ab8f2119ec0a3342e0b49910045abe6af0a3ae83a5764d54639e"}, - {file = "jedi-0.18.2.tar.gz", hash = "sha256:bae794c30d07f6d910d32a7048af09b5a39ed740918da923c6b780790ebac612"}, + {file = "jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0"}, + {file = "jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"}, ] [package.dependencies] -parso = ">=0.8.0,<0.9.0" +parso = ">=0.8.3,<0.9.0" [package.extras] docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] -qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] -testing = ["Django (<3.1)", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] +qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"] +testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] [[package]] name = "jinja2" @@ -750,19 +761,20 @@ source = ["Cython (>=0.29.35)"] [[package]] name = "markdown" -version = "3.3.7" -description = "Python implementation of Markdown." +version = "3.5.1" +description = "Python implementation of John Gruber's Markdown." optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "Markdown-3.3.7-py3-none-any.whl", hash = "sha256:f5da449a6e1c989a4cea2631aa8ee67caa5a2ef855d551c88f9e309f4634c621"}, - {file = "Markdown-3.3.7.tar.gz", hash = "sha256:cbb516f16218e643d8e0a95b309f77eb118cb138d39a4f27851e6a63581db874"}, + {file = "Markdown-3.5.1-py3-none-any.whl", hash = "sha256:5874b47d4ee3f0b14d764324d2c94c03ea66bee56f2d929da9f2508d65e722dc"}, + {file = "Markdown-3.5.1.tar.gz", hash = "sha256:b65d7beb248dc22f2e8a31fb706d93798093c308dc1aba295aedeb9d41a813bd"}, ] [package.dependencies] importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} [package.extras] +docs = ["mdx-gh-links (>=0.2)", "mkdocs (>=1.5)", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-nature (>=0.6)", "mkdocs-section-index", "mkdocstrings[python]"] testing = ["coverage", "pyyaml"] [[package]] @@ -872,13 +884,13 @@ files = [ [[package]] name = "mkdocs" -version = "1.4.3" +version = "1.5.3" description = "Project documentation with Markdown." optional = false python-versions = ">=3.7" files = [ - {file = "mkdocs-1.4.3-py3-none-any.whl", hash = "sha256:6ee46d309bda331aac915cd24aab882c179a933bd9e77b80ce7d2eaaa3f689dd"}, - {file = "mkdocs-1.4.3.tar.gz", hash = "sha256:5955093bbd4dd2e9403c5afaf57324ad8b04f16886512a3ee6ef828956481c57"}, + {file = "mkdocs-1.5.3-py3-none-any.whl", hash = "sha256:3b3a78e736b31158d64dbb2f8ba29bd46a379d0c6e324c2246c3bc3d2189cfc1"}, + {file = "mkdocs-1.5.3.tar.gz", hash = "sha256:eb7c99214dcb945313ba30426c2451b735992c73c2e10838f76d09e39ff4d0e2"}, ] [package.dependencies] @@ -887,83 +899,94 @@ colorama = {version = ">=0.4", markers = "platform_system == \"Windows\""} ghp-import = ">=1.0" importlib-metadata = {version = ">=4.3", markers = "python_version < \"3.10\""} jinja2 = ">=2.11.1" -markdown = ">=3.2.1,<3.4" +markdown = ">=3.2.1" +markupsafe = ">=2.0.1" mergedeep = ">=1.3.4" packaging = ">=20.5" +pathspec = ">=0.11.1" +platformdirs = ">=2.2.0" pyyaml = ">=5.1" pyyaml-env-tag = ">=0.1" watchdog = ">=2.0" [package.extras] i18n = ["babel (>=2.9.0)"] -min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-import (==1.0)", "importlib-metadata (==4.3)", "jinja2 (==2.11.1)", "markdown (==3.2.1)", "markupsafe (==2.0.1)", "mergedeep (==1.3.4)", "packaging (==20.5)", "pyyaml (==5.1)", "pyyaml-env-tag (==0.1)", "typing-extensions (==3.10)", "watchdog (==2.0)"] +min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-import (==1.0)", "importlib-metadata (==4.3)", "jinja2 (==2.11.1)", "markdown (==3.2.1)", "markupsafe (==2.0.1)", "mergedeep (==1.3.4)", "packaging (==20.5)", "pathspec (==0.11.1)", "platformdirs (==2.2.0)", "pyyaml (==5.1)", "pyyaml-env-tag (==0.1)", "typing-extensions (==3.10)", "watchdog (==2.0)"] [[package]] name = "mkdocs-material" -version = "9.1.18" +version = "9.4.7" description = "Documentation that simply works" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "mkdocs_material-9.1.18-py3-none-any.whl", hash = "sha256:5bcf8fb79ac2f253c0ffe93fa181cba87718c6438f459dc4180ac7418cc9a450"}, - {file = "mkdocs_material-9.1.18.tar.gz", hash = "sha256:981dd39979723d4cda7cfc77bbbe5e54922d5761a7af23fb8ba9edb52f114b13"}, + {file = "mkdocs_material-9.4.7-py3-none-any.whl", hash = "sha256:4d698d52bb6a6a3c452ab854481c4cdb68453a0420956a6aee2de55fe15fe610"}, + {file = "mkdocs_material-9.4.7.tar.gz", hash = "sha256:e704e001c9ef17291e1d3462c202425217601653e18f68f85d28eff4690e662b"}, ] [package.dependencies] -colorama = ">=0.4" -jinja2 = ">=3.0" -markdown = ">=3.2" -mkdocs = ">=1.4.2" -mkdocs-material-extensions = ">=1.1" -pygments = ">=2.14" -pymdown-extensions = ">=9.9.1" -regex = ">=2022.4.24" -requests = ">=2.26" +babel = ">=2.10,<3.0" +colorama = ">=0.4,<1.0" +jinja2 = ">=3.0,<4.0" +markdown = ">=3.2,<4.0" +mkdocs = ">=1.5.3,<2.0" +mkdocs-material-extensions = ">=1.3,<2.0" +paginate = ">=0.5,<1.0" +pygments = ">=2.16,<3.0" +pymdown-extensions = ">=10.2,<11.0" +regex = ">=2022.4" +requests = ">=2.26,<3.0" + +[package.extras] +git = ["mkdocs-git-committers-plugin-2 (>=1.1,<2.0)", "mkdocs-git-revision-date-localized-plugin (>=1.2,<2.0)"] +imaging = ["cairosvg (>=2.6,<3.0)", "pillow (>=9.4,<10.0)"] +recommended = ["mkdocs-minify-plugin (>=0.7,<1.0)", "mkdocs-redirects (>=1.2,<2.0)", "mkdocs-rss-plugin (>=1.6,<2.0)"] [[package]] name = "mkdocs-material-extensions" -version = "1.1.1" +version = "1.3" description = "Extension pack for Python Markdown and MkDocs Material." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "mkdocs_material_extensions-1.1.1-py3-none-any.whl", hash = "sha256:e41d9f38e4798b6617ad98ca8f7f1157b1e4385ac1459ca1e4ea219b556df945"}, - {file = "mkdocs_material_extensions-1.1.1.tar.gz", hash = "sha256:9c003da71e2cc2493d910237448c672e00cefc800d3d6ae93d2fc69979e3bd93"}, + {file = "mkdocs_material_extensions-1.3-py3-none-any.whl", hash = "sha256:0297cc48ba68a9fdd1ef3780a3b41b534b0d0df1d1181a44676fda5f464eeadc"}, + {file = "mkdocs_material_extensions-1.3.tar.gz", hash = "sha256:f0446091503acb110a7cab9349cbc90eeac51b58d1caa92a704a81ca1e24ddbd"}, ] [[package]] name = "mypy" -version = "1.4.1" +version = "1.6.1" description = "Optional static typing for Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "mypy-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:566e72b0cd6598503e48ea610e0052d1b8168e60a46e0bfd34b3acf2d57f96a8"}, - {file = "mypy-1.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ca637024ca67ab24a7fd6f65d280572c3794665eaf5edcc7e90a866544076878"}, - {file = "mypy-1.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dde1d180cd84f0624c5dcaaa89c89775550a675aff96b5848de78fb11adabcd"}, - {file = "mypy-1.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8c4d8e89aa7de683e2056a581ce63c46a0c41e31bd2b6d34144e2c80f5ea53dc"}, - {file = "mypy-1.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:bfdca17c36ae01a21274a3c387a63aa1aafe72bff976522886869ef131b937f1"}, - {file = "mypy-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7549fbf655e5825d787bbc9ecf6028731973f78088fbca3a1f4145c39ef09462"}, - {file = "mypy-1.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:98324ec3ecf12296e6422939e54763faedbfcc502ea4a4c38502082711867258"}, - {file = "mypy-1.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:141dedfdbfe8a04142881ff30ce6e6653c9685b354876b12e4fe6c78598b45e2"}, - {file = "mypy-1.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8207b7105829eca6f3d774f64a904190bb2231de91b8b186d21ffd98005f14a7"}, - {file = "mypy-1.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:16f0db5b641ba159eff72cff08edc3875f2b62b2fa2bc24f68c1e7a4e8232d01"}, - {file = "mypy-1.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:470c969bb3f9a9efcedbadcd19a74ffb34a25f8e6b0e02dae7c0e71f8372f97b"}, - {file = "mypy-1.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5952d2d18b79f7dc25e62e014fe5a23eb1a3d2bc66318df8988a01b1a037c5b"}, - {file = "mypy-1.4.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:190b6bab0302cec4e9e6767d3eb66085aef2a1cc98fe04936d8a42ed2ba77bb7"}, - {file = "mypy-1.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9d40652cc4fe33871ad3338581dca3297ff5f2213d0df345bcfbde5162abf0c9"}, - {file = "mypy-1.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:01fd2e9f85622d981fd9063bfaef1aed6e336eaacca00892cd2d82801ab7c042"}, - {file = "mypy-1.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2460a58faeea905aeb1b9b36f5065f2dc9a9c6e4c992a6499a2360c6c74ceca3"}, - {file = "mypy-1.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2746d69a8196698146a3dbe29104f9eb6a2a4d8a27878d92169a6c0b74435b6"}, - {file = "mypy-1.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ae704dcfaa180ff7c4cfbad23e74321a2b774f92ca77fd94ce1049175a21c97f"}, - {file = "mypy-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:43d24f6437925ce50139a310a64b2ab048cb2d3694c84c71c3f2a1626d8101dc"}, - {file = "mypy-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c482e1246726616088532b5e964e39765b6d1520791348e6c9dc3af25b233828"}, - {file = "mypy-1.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:43b592511672017f5b1a483527fd2684347fdffc041c9ef53428c8dc530f79a3"}, - {file = "mypy-1.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34a9239d5b3502c17f07fd7c0b2ae6b7dd7d7f6af35fbb5072c6208e76295816"}, - {file = "mypy-1.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5703097c4936bbb9e9bce41478c8d08edd2865e177dc4c52be759f81ee4dd26c"}, - {file = "mypy-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:e02d700ec8d9b1859790c0475df4e4092c7bf3272a4fd2c9f33d87fac4427b8f"}, - {file = "mypy-1.4.1-py3-none-any.whl", hash = "sha256:45d32cec14e7b97af848bddd97d85ea4f0db4d5a149ed9676caa4eb2f7402bb4"}, - {file = "mypy-1.4.1.tar.gz", hash = "sha256:9bbcd9ab8ea1f2e1c8031c21445b511442cc45c89951e49bbf852cbb70755b1b"}, + {file = "mypy-1.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e5012e5cc2ac628177eaac0e83d622b2dd499e28253d4107a08ecc59ede3fc2c"}, + {file = "mypy-1.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d8fbb68711905f8912e5af474ca8b78d077447d8f3918997fecbf26943ff3cbb"}, + {file = "mypy-1.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21a1ad938fee7d2d96ca666c77b7c494c3c5bd88dff792220e1afbebb2925b5e"}, + {file = "mypy-1.6.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b96ae2c1279d1065413965c607712006205a9ac541895004a1e0d4f281f2ff9f"}, + {file = "mypy-1.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:40b1844d2e8b232ed92e50a4bd11c48d2daa351f9deee6c194b83bf03e418b0c"}, + {file = "mypy-1.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:81af8adaa5e3099469e7623436881eff6b3b06db5ef75e6f5b6d4871263547e5"}, + {file = "mypy-1.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8c223fa57cb154c7eab5156856c231c3f5eace1e0bed9b32a24696b7ba3c3245"}, + {file = "mypy-1.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8032e00ce71c3ceb93eeba63963b864bf635a18f6c0c12da6c13c450eedb183"}, + {file = "mypy-1.6.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4c46b51de523817a0045b150ed11b56f9fff55f12b9edd0f3ed35b15a2809de0"}, + {file = "mypy-1.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:19f905bcfd9e167159b3d63ecd8cb5e696151c3e59a1742e79bc3bcb540c42c7"}, + {file = "mypy-1.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:82e469518d3e9a321912955cc702d418773a2fd1e91c651280a1bda10622f02f"}, + {file = "mypy-1.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d4473c22cc296425bbbce7e9429588e76e05bc7342da359d6520b6427bf76660"}, + {file = "mypy-1.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59a0d7d24dfb26729e0a068639a6ce3500e31d6655df8557156c51c1cb874ce7"}, + {file = "mypy-1.6.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:cfd13d47b29ed3bbaafaff7d8b21e90d827631afda134836962011acb5904b71"}, + {file = "mypy-1.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:eb4f18589d196a4cbe5290b435d135dee96567e07c2b2d43b5c4621b6501531a"}, + {file = "mypy-1.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:41697773aa0bf53ff917aa077e2cde7aa50254f28750f9b88884acea38a16169"}, + {file = "mypy-1.6.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7274b0c57737bd3476d2229c6389b2ec9eefeb090bbaf77777e9d6b1b5a9d143"}, + {file = "mypy-1.6.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbaf4662e498c8c2e352da5f5bca5ab29d378895fa2d980630656178bd607c46"}, + {file = "mypy-1.6.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bb8ccb4724f7d8601938571bf3f24da0da791fe2db7be3d9e79849cb64e0ae85"}, + {file = "mypy-1.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:68351911e85145f582b5aa6cd9ad666c8958bcae897a1bfda8f4940472463c45"}, + {file = "mypy-1.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:49ae115da099dcc0922a7a895c1eec82c1518109ea5c162ed50e3b3594c71208"}, + {file = "mypy-1.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8b27958f8c76bed8edaa63da0739d76e4e9ad4ed325c814f9b3851425582a3cd"}, + {file = "mypy-1.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:925cd6a3b7b55dfba252b7c4561892311c5358c6b5a601847015a1ad4eb7d332"}, + {file = "mypy-1.6.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8f57e6b6927a49550da3d122f0cb983d400f843a8a82e65b3b380d3d7259468f"}, + {file = "mypy-1.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:a43ef1c8ddfdb9575691720b6352761f3f53d85f1b57d7745701041053deff30"}, + {file = "mypy-1.6.1-py3-none-any.whl", hash = "sha256:4cbe68ef919c28ea561165206a2dcb68591c50f3bcf777932323bc208d949cf1"}, + {file = "mypy-1.6.1.tar.gz", hash = "sha256:4d01c00d09a0be62a4ca3f933e315455bde83f37f892ba4b08ce92f3cf44bcc1"}, ] [package.dependencies] @@ -974,7 +997,6 @@ typing-extensions = ">=4.1.0" [package.extras] dmypy = ["psutil (>=4.0)"] install-types = ["pip"] -python2 = ["typed-ast (>=1.4.0,<2)"] reports = ["lxml"] [[package]] @@ -1004,47 +1026,125 @@ setuptools = "*" [[package]] name = "numpy" -version = "1.25.1" +version = "1.24.4" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "numpy-1.24.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c0bfb52d2169d58c1cdb8cc1f16989101639b34c7d3ce60ed70b19c63eba0b64"}, + {file = "numpy-1.24.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ed094d4f0c177b1b8e7aa9cba7d6ceed51c0e569a5318ac0ca9a090680a6a1b1"}, + {file = "numpy-1.24.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79fc682a374c4a8ed08b331bef9c5f582585d1048fa6d80bc6c35bc384eee9b4"}, + {file = "numpy-1.24.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ffe43c74893dbf38c2b0a1f5428760a1a9c98285553c89e12d70a96a7f3a4d6"}, + {file = "numpy-1.24.4-cp310-cp310-win32.whl", hash = "sha256:4c21decb6ea94057331e111a5bed9a79d335658c27ce2adb580fb4d54f2ad9bc"}, + {file = "numpy-1.24.4-cp310-cp310-win_amd64.whl", hash = "sha256:b4bea75e47d9586d31e892a7401f76e909712a0fd510f58f5337bea9572c571e"}, + {file = "numpy-1.24.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f136bab9c2cfd8da131132c2cf6cc27331dd6fae65f95f69dcd4ae3c3639c810"}, + {file = "numpy-1.24.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e2926dac25b313635e4d6cf4dc4e51c8c0ebfed60b801c799ffc4c32bf3d1254"}, + {file = "numpy-1.24.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:222e40d0e2548690405b0b3c7b21d1169117391c2e82c378467ef9ab4c8f0da7"}, + {file = "numpy-1.24.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7215847ce88a85ce39baf9e89070cb860c98fdddacbaa6c0da3ffb31b3350bd5"}, + {file = "numpy-1.24.4-cp311-cp311-win32.whl", hash = "sha256:4979217d7de511a8d57f4b4b5b2b965f707768440c17cb70fbf254c4b225238d"}, + {file = "numpy-1.24.4-cp311-cp311-win_amd64.whl", hash = "sha256:b7b1fc9864d7d39e28f41d089bfd6353cb5f27ecd9905348c24187a768c79694"}, + {file = "numpy-1.24.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1452241c290f3e2a312c137a9999cdbf63f78864d63c79039bda65ee86943f61"}, + {file = "numpy-1.24.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:04640dab83f7c6c85abf9cd729c5b65f1ebd0ccf9de90b270cd61935eef0197f"}, + {file = "numpy-1.24.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5425b114831d1e77e4b5d812b69d11d962e104095a5b9c3b641a218abcc050e"}, + {file = "numpy-1.24.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd80e219fd4c71fc3699fc1dadac5dcf4fd882bfc6f7ec53d30fa197b8ee22dc"}, + {file = "numpy-1.24.4-cp38-cp38-win32.whl", hash = "sha256:4602244f345453db537be5314d3983dbf5834a9701b7723ec28923e2889e0bb2"}, + {file = "numpy-1.24.4-cp38-cp38-win_amd64.whl", hash = "sha256:692f2e0f55794943c5bfff12b3f56f99af76f902fc47487bdfe97856de51a706"}, + {file = "numpy-1.24.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2541312fbf09977f3b3ad449c4e5f4bb55d0dbf79226d7724211acc905049400"}, + {file = "numpy-1.24.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9667575fb6d13c95f1b36aca12c5ee3356bf001b714fc354eb5465ce1609e62f"}, + {file = "numpy-1.24.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3a86ed21e4f87050382c7bc96571755193c4c1392490744ac73d660e8f564a9"}, + {file = "numpy-1.24.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d11efb4dbecbdf22508d55e48d9c8384db795e1b7b51ea735289ff96613ff74d"}, + {file = "numpy-1.24.4-cp39-cp39-win32.whl", hash = "sha256:6620c0acd41dbcb368610bb2f4d83145674040025e5536954782467100aa8835"}, + {file = "numpy-1.24.4-cp39-cp39-win_amd64.whl", hash = "sha256:befe2bf740fd8373cf56149a5c23a0f601e82869598d41f8e188a0e9869926f8"}, + {file = "numpy-1.24.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:31f13e25b4e304632a4619d0e0777662c2ffea99fcae2029556b17d8ff958aef"}, + {file = "numpy-1.24.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95f7ac6540e95bc440ad77f56e520da5bf877f87dca58bd095288dce8940532a"}, + {file = "numpy-1.24.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e98f220aa76ca2a977fe435f5b04d7b3470c0a2e6312907b37ba6068f26787f2"}, + {file = "numpy-1.24.4.tar.gz", hash = "sha256:80f5e3a4e498641401868df4208b74581206afbee7cf7b8329daae82676d9463"}, +] + +[[package]] +name = "numpy" +version = "1.25.2" description = "Fundamental package for array computing in Python" optional = false python-versions = ">=3.9" files = [ - {file = "numpy-1.25.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:77d339465dff3eb33c701430bcb9c325b60354698340229e1dff97745e6b3efa"}, - {file = "numpy-1.25.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d736b75c3f2cb96843a5c7f8d8ccc414768d34b0a75f466c05f3a739b406f10b"}, - {file = "numpy-1.25.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a90725800caeaa160732d6b31f3f843ebd45d6b5f3eec9e8cc287e30f2805bf"}, - {file = "numpy-1.25.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c6c9261d21e617c6dc5eacba35cb68ec36bb72adcff0dee63f8fbc899362588"}, - {file = "numpy-1.25.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0def91f8af6ec4bb94c370e38c575855bf1d0be8a8fbfba42ef9c073faf2cf19"}, - {file = "numpy-1.25.1-cp310-cp310-win32.whl", hash = "sha256:fd67b306320dcadea700a8f79b9e671e607f8696e98ec255915c0c6d6b818503"}, - {file = "numpy-1.25.1-cp310-cp310-win_amd64.whl", hash = "sha256:c1516db588987450b85595586605742879e50dcce923e8973f79529651545b57"}, - {file = "numpy-1.25.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6b82655dd8efeea69dbf85d00fca40013d7f503212bc5259056244961268b66e"}, - {file = "numpy-1.25.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e8f6049c4878cb16960fbbfb22105e49d13d752d4d8371b55110941fb3b17800"}, - {file = "numpy-1.25.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41a56b70e8139884eccb2f733c2f7378af06c82304959e174f8e7370af112e09"}, - {file = "numpy-1.25.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5154b1a25ec796b1aee12ac1b22f414f94752c5f94832f14d8d6c9ac40bcca6"}, - {file = "numpy-1.25.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:38eb6548bb91c421261b4805dc44def9ca1a6eef6444ce35ad1669c0f1a3fc5d"}, - {file = "numpy-1.25.1-cp311-cp311-win32.whl", hash = "sha256:791f409064d0a69dd20579345d852c59822c6aa087f23b07b1b4e28ff5880fcb"}, - {file = "numpy-1.25.1-cp311-cp311-win_amd64.whl", hash = "sha256:c40571fe966393b212689aa17e32ed905924120737194b5d5c1b20b9ed0fb171"}, - {file = "numpy-1.25.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3d7abcdd85aea3e6cdddb59af2350c7ab1ed764397f8eec97a038ad244d2d105"}, - {file = "numpy-1.25.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1a180429394f81c7933634ae49b37b472d343cccb5bb0c4a575ac8bbc433722f"}, - {file = "numpy-1.25.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d412c1697c3853c6fc3cb9751b4915859c7afe6a277c2bf00acf287d56c4e625"}, - {file = "numpy-1.25.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20e1266411120a4f16fad8efa8e0454d21d00b8c7cee5b5ccad7565d95eb42dd"}, - {file = "numpy-1.25.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f76aebc3358ade9eacf9bc2bb8ae589863a4f911611694103af05346637df1b7"}, - {file = "numpy-1.25.1-cp39-cp39-win32.whl", hash = "sha256:247d3ffdd7775bdf191f848be8d49100495114c82c2bd134e8d5d075fb386a1c"}, - {file = "numpy-1.25.1-cp39-cp39-win_amd64.whl", hash = "sha256:1d5d3c68e443c90b38fdf8ef40e60e2538a27548b39b12b73132456847f4b631"}, - {file = "numpy-1.25.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:35a9527c977b924042170a0887de727cd84ff179e478481404c5dc66b4170009"}, - {file = "numpy-1.25.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d3fe3dd0506a28493d82dc3cf254be8cd0d26f4008a417385cbf1ae95b54004"}, - {file = "numpy-1.25.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:012097b5b0d00a11070e8f2e261128c44157a8689f7dedcf35576e525893f4fe"}, - {file = "numpy-1.25.1.tar.gz", hash = "sha256:9a3a9f3a61480cc086117b426a8bd86869c213fc4072e606f01c4e4b66eb92bf"}, + {file = "numpy-1.25.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:db3ccc4e37a6873045580d413fe79b68e47a681af8db2e046f1dacfa11f86eb3"}, + {file = "numpy-1.25.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:90319e4f002795ccfc9050110bbbaa16c944b1c37c0baeea43c5fb881693ae1f"}, + {file = "numpy-1.25.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfe4a913e29b418d096e696ddd422d8a5d13ffba4ea91f9f60440a3b759b0187"}, + {file = "numpy-1.25.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f08f2e037bba04e707eebf4bc934f1972a315c883a9e0ebfa8a7756eabf9e357"}, + {file = "numpy-1.25.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bec1e7213c7cb00d67093247f8c4db156fd03075f49876957dca4711306d39c9"}, + {file = "numpy-1.25.2-cp310-cp310-win32.whl", hash = "sha256:7dc869c0c75988e1c693d0e2d5b26034644399dd929bc049db55395b1379e044"}, + {file = "numpy-1.25.2-cp310-cp310-win_amd64.whl", hash = "sha256:834b386f2b8210dca38c71a6e0f4fd6922f7d3fcff935dbe3a570945acb1b545"}, + {file = "numpy-1.25.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c5462d19336db4560041517dbb7759c21d181a67cb01b36ca109b2ae37d32418"}, + {file = "numpy-1.25.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c5652ea24d33585ea39eb6a6a15dac87a1206a692719ff45d53c5282e66d4a8f"}, + {file = "numpy-1.25.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d60fbae8e0019865fc4784745814cff1c421df5afee233db6d88ab4f14655a2"}, + {file = "numpy-1.25.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60e7f0f7f6d0eee8364b9a6304c2845b9c491ac706048c7e8cf47b83123b8dbf"}, + {file = "numpy-1.25.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bb33d5a1cf360304754913a350edda36d5b8c5331a8237268c48f91253c3a364"}, + {file = "numpy-1.25.2-cp311-cp311-win32.whl", hash = "sha256:5883c06bb92f2e6c8181df7b39971a5fb436288db58b5a1c3967702d4278691d"}, + {file = "numpy-1.25.2-cp311-cp311-win_amd64.whl", hash = "sha256:5c97325a0ba6f9d041feb9390924614b60b99209a71a69c876f71052521d42a4"}, + {file = "numpy-1.25.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b79e513d7aac42ae918db3ad1341a015488530d0bb2a6abcbdd10a3a829ccfd3"}, + {file = "numpy-1.25.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:eb942bfb6f84df5ce05dbf4b46673ffed0d3da59f13635ea9b926af3deb76926"}, + {file = "numpy-1.25.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e0746410e73384e70d286f93abf2520035250aad8c5714240b0492a7302fdca"}, + {file = "numpy-1.25.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7806500e4f5bdd04095e849265e55de20d8cc4b661b038957354327f6d9b295"}, + {file = "numpy-1.25.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8b77775f4b7df768967a7c8b3567e309f617dd5e99aeb886fa14dc1a0791141f"}, + {file = "numpy-1.25.2-cp39-cp39-win32.whl", hash = "sha256:2792d23d62ec51e50ce4d4b7d73de8f67a2fd3ea710dcbc8563a51a03fb07b01"}, + {file = "numpy-1.25.2-cp39-cp39-win_amd64.whl", hash = "sha256:76b4115d42a7dfc5d485d358728cdd8719be33cc5ec6ec08632a5d6fca2ed380"}, + {file = "numpy-1.25.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:1a1329e26f46230bf77b02cc19e900db9b52f398d6722ca853349a782d4cff55"}, + {file = "numpy-1.25.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c3abc71e8b6edba80a01a52e66d83c5d14433cbcd26a40c329ec7ed09f37901"}, + {file = "numpy-1.25.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:1b9735c27cea5d995496f46a8b1cd7b408b3f34b6d50459d9ac8fe3a20cc17bf"}, + {file = "numpy-1.25.2.tar.gz", hash = "sha256:fd608e19c8d7c55021dffd43bfe5492fab8cc105cc8986f813f8c3c048b38760"}, +] + +[[package]] +name = "numpy" +version = "1.26.1" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = "<3.13,>=3.9" +files = [ + {file = "numpy-1.26.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:82e871307a6331b5f09efda3c22e03c095d957f04bf6bc1804f30048d0e5e7af"}, + {file = "numpy-1.26.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdd9ec98f0063d93baeb01aad472a1a0840dee302842a2746a7a8e92968f9575"}, + {file = "numpy-1.26.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d78f269e0c4fd365fc2992c00353e4530d274ba68f15e968d8bc3c69ce5f5244"}, + {file = "numpy-1.26.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ab9163ca8aeb7fd32fe93866490654d2f7dda4e61bc6297bf72ce07fdc02f67"}, + {file = "numpy-1.26.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:78ca54b2f9daffa5f323f34cdf21e1d9779a54073f0018a3094ab907938331a2"}, + {file = "numpy-1.26.1-cp310-cp310-win32.whl", hash = "sha256:d1cfc92db6af1fd37a7bb58e55c8383b4aa1ba23d012bdbba26b4bcca45ac297"}, + {file = "numpy-1.26.1-cp310-cp310-win_amd64.whl", hash = "sha256:d2984cb6caaf05294b8466966627e80bf6c7afd273279077679cb010acb0e5ab"}, + {file = "numpy-1.26.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cd7837b2b734ca72959a1caf3309457a318c934abef7a43a14bb984e574bbb9a"}, + {file = "numpy-1.26.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1c59c046c31a43310ad0199d6299e59f57a289e22f0f36951ced1c9eac3665b9"}, + {file = "numpy-1.26.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d58e8c51a7cf43090d124d5073bc29ab2755822181fcad978b12e144e5e5a4b3"}, + {file = "numpy-1.26.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6081aed64714a18c72b168a9276095ef9155dd7888b9e74b5987808f0dd0a974"}, + {file = "numpy-1.26.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:97e5d6a9f0702c2863aaabf19f0d1b6c2628fbe476438ce0b5ce06e83085064c"}, + {file = "numpy-1.26.1-cp311-cp311-win32.whl", hash = "sha256:b9d45d1dbb9de84894cc50efece5b09939752a2d75aab3a8b0cef6f3a35ecd6b"}, + {file = "numpy-1.26.1-cp311-cp311-win_amd64.whl", hash = "sha256:3649d566e2fc067597125428db15d60eb42a4e0897fc48d28cb75dc2e0454e53"}, + {file = "numpy-1.26.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1d1bd82d539607951cac963388534da3b7ea0e18b149a53cf883d8f699178c0f"}, + {file = "numpy-1.26.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:afd5ced4e5a96dac6725daeb5242a35494243f2239244fad10a90ce58b071d24"}, + {file = "numpy-1.26.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a03fb25610ef560a6201ff06df4f8105292ba56e7cdd196ea350d123fc32e24e"}, + {file = "numpy-1.26.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcfaf015b79d1f9f9c9fd0731a907407dc3e45769262d657d754c3a028586124"}, + {file = "numpy-1.26.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e509cbc488c735b43b5ffea175235cec24bbc57b227ef1acc691725beb230d1c"}, + {file = "numpy-1.26.1-cp312-cp312-win32.whl", hash = "sha256:af22f3d8e228d84d1c0c44c1fbdeb80f97a15a0abe4f080960393a00db733b66"}, + {file = "numpy-1.26.1-cp312-cp312-win_amd64.whl", hash = "sha256:9f42284ebf91bdf32fafac29d29d4c07e5e9d1af862ea73686581773ef9e73a7"}, + {file = "numpy-1.26.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bb894accfd16b867d8643fc2ba6c8617c78ba2828051e9a69511644ce86ce83e"}, + {file = "numpy-1.26.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e44ccb93f30c75dfc0c3aa3ce38f33486a75ec9abadabd4e59f114994a9c4617"}, + {file = "numpy-1.26.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9696aa2e35cc41e398a6d42d147cf326f8f9d81befcb399bc1ed7ffea339b64e"}, + {file = "numpy-1.26.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5b411040beead47a228bde3b2241100454a6abde9df139ed087bd73fc0a4908"}, + {file = "numpy-1.26.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1e11668d6f756ca5ef534b5be8653d16c5352cbb210a5c2a79ff288e937010d5"}, + {file = "numpy-1.26.1-cp39-cp39-win32.whl", hash = "sha256:d1d2c6b7dd618c41e202c59c1413ef9b2c8e8a15f5039e344af64195459e3104"}, + {file = "numpy-1.26.1-cp39-cp39-win_amd64.whl", hash = "sha256:59227c981d43425ca5e5c01094d59eb14e8772ce6975d4b2fc1e106a833d5ae2"}, + {file = "numpy-1.26.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:06934e1a22c54636a059215d6da99e23286424f316fddd979f5071093b648668"}, + {file = "numpy-1.26.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76ff661a867d9272cd2a99eed002470f46dbe0943a5ffd140f49be84f68ffc42"}, + {file = "numpy-1.26.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:6965888d65d2848e8768824ca8288db0a81263c1efccec881cb35a0d805fcd2f"}, + {file = "numpy-1.26.1.tar.gz", hash = "sha256:c8c6c72d4a9f831f328efb1312642a1cafafaa88981d9ab76368d50d07d93cbe"}, ] [[package]] name = "outcome" -version = "1.2.0" +version = "1.3.0.post0" description = "Capture the outcome of Python function calls." optional = true python-versions = ">=3.7" files = [ - {file = "outcome-1.2.0-py2.py3-none-any.whl", hash = "sha256:c4ab89a56575d6d38a05aa16daeaa333109c1f96167aba8901ab18b6b5e0f7f5"}, - {file = "outcome-1.2.0.tar.gz", hash = "sha256:6f82bd3de45da303cf1f771ecafa1633750a358436a8bb60e06a1ceb745d2672"}, + {file = "outcome-1.3.0.post0-py2.py3-none-any.whl", hash = "sha256:e771c5ce06d1415e356078d3bdd68523f284b4ce5419828922b6871e65eda82b"}, + {file = "outcome-1.3.0.post0.tar.gz", hash = "sha256:9dcf02e65f2971b80047b377468e72a268e15c0af3cf1238e6ff14f7f91143b8"}, ] [package.dependencies] @@ -1052,13 +1152,23 @@ attrs = ">=19.2.0" [[package]] name = "packaging" -version = "23.1" +version = "23.2" description = "Core utilities for Python packages" optional = false python-versions = ">=3.7" files = [ - {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, - {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, + {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, + {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, +] + +[[package]] +name = "paginate" +version = "0.5.6" +description = "Divides large result sets into pages for easier browsing" +optional = false +python-versions = "*" +files = [ + {file = "paginate-0.5.6.tar.gz", hash = "sha256:5e6007b6a9398177a7e1648d04fdd9f8c9766a1a945bceac82f1929e8c78af2d"}, ] [[package]] @@ -1145,13 +1255,13 @@ testing = ["docopt", "pytest (<6.0.0)"] [[package]] name = "pathspec" -version = "0.11.1" +version = "0.11.2" description = "Utility library for gitignore style pattern matching of file paths." optional = false python-versions = ">=3.7" files = [ - {file = "pathspec-0.11.1-py3-none-any.whl", hash = "sha256:d8af70af76652554bd134c22b3e8a1cc46ed7d91edcdd721ef1a0c51a84a5293"}, - {file = "pathspec-0.11.1.tar.gz", hash = "sha256:2798de800fa92780e33acca925945e9a19a133b715067cf165b8866c15a31687"}, + {file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"}, + {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"}, ] [[package]] @@ -1181,28 +1291,28 @@ files = [ [[package]] name = "platformdirs" -version = "3.9.1" +version = "3.11.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." optional = false python-versions = ">=3.7" files = [ - {file = "platformdirs-3.9.1-py3-none-any.whl", hash = "sha256:ad8291ae0ae5072f66c16945166cb11c63394c7a3ad1b1bc9828ca3162da8c2f"}, - {file = "platformdirs-3.9.1.tar.gz", hash = "sha256:1b42b450ad933e981d56e59f1b97495428c9bd60698baab9f3eb3d00d5822421"}, + {file = "platformdirs-3.11.0-py3-none-any.whl", hash = "sha256:e9d171d00af68be50e9202731309c4e658fd8bc76f55c11c7dd760d023bda68e"}, + {file = "platformdirs-3.11.0.tar.gz", hash = "sha256:cf8ee52a3afdb965072dcc652433e0c7e3e40cf5ea1477cd4b3b1d2eb75495b3"}, ] [package.extras] -docs = ["furo (>=2023.5.20)", "proselint (>=0.13)", "sphinx (>=7.0.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.3.1)", "pytest-cov (>=4.1)", "pytest-mock (>=3.10)"] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"] [[package]] name = "pluggy" -version = "1.2.0" +version = "1.3.0" description = "plugin and hook calling mechanisms for python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pluggy-1.2.0-py3-none-any.whl", hash = "sha256:c2fd55a7d7a3863cba1a013e4e2414658b1d07b6bc57b3919e0c63c9abb99849"}, - {file = "pluggy-1.2.0.tar.gz", hash = "sha256:d12f0c4b579b15f5e054301bb226ee85eeeba08ffec228092f8defbaa3a4c4b3"}, + {file = "pluggy-1.3.0-py3-none-any.whl", hash = "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7"}, + {file = "pluggy-1.3.0.tar.gz", hash = "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12"}, ] [package.extras] @@ -1211,13 +1321,13 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "pre-commit" -version = "3.3.3" +version = "3.5.0" description = "A framework for managing and maintaining multi-language pre-commit hooks." optional = false python-versions = ">=3.8" files = [ - {file = "pre_commit-3.3.3-py2.py3-none-any.whl", hash = "sha256:10badb65d6a38caff29703362271d7dca483d01da88f9d7e05d0b97171c136cb"}, - {file = "pre_commit-3.3.3.tar.gz", hash = "sha256:a2256f489cd913d575c145132ae196fe335da32d91a8294b7afe6622335dd023"}, + {file = "pre_commit-3.5.0-py2.py3-none-any.whl", hash = "sha256:841dc9aef25daba9a0238cd27984041fa0467b4199fc4852e27950664919f660"}, + {file = "pre_commit-3.5.0.tar.gz", hash = "sha256:5804465c675b659b0862f07907f96295d490822a450c4c40e747d0b1c6ebcb32"}, ] [package.dependencies] @@ -1268,13 +1378,13 @@ tests = ["pytest"] [[package]] name = "pycodestyle" -version = "2.10.0" +version = "2.11.1" description = "Python style guide checker" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "pycodestyle-2.10.0-py2.py3-none-any.whl", hash = "sha256:8a4eaf0d0495c7395bdab3589ac2db602797d76207242c17d470186815706610"}, - {file = "pycodestyle-2.10.0.tar.gz", hash = "sha256:347187bdb476329d98f695c213d7295a846d1152ff4fe9bacb8a9590b8ee7053"}, + {file = "pycodestyle-2.11.1-py2.py3-none-any.whl", hash = "sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67"}, + {file = "pycodestyle-2.11.1.tar.gz", hash = "sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f"}, ] [[package]] @@ -1290,24 +1400,24 @@ files = [ [[package]] name = "pyflakes" -version = "3.0.1" +version = "3.1.0" description = "passive checker of Python programs" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "pyflakes-3.0.1-py2.py3-none-any.whl", hash = "sha256:ec55bf7fe21fff7f1ad2f7da62363d749e2a470500eab1b555334b67aa1ef8cf"}, - {file = "pyflakes-3.0.1.tar.gz", hash = "sha256:ec8b276a6b60bd80defed25add7e439881c19e64850afd9b346283d4165fd0fd"}, + {file = "pyflakes-3.1.0-py2.py3-none-any.whl", hash = "sha256:4132f6d49cb4dae6819e5379898f2b8cce3c5f23994194c24b77d5da2e36f774"}, + {file = "pyflakes-3.1.0.tar.gz", hash = "sha256:a0aae034c444db0071aa077972ba4768d40c830d9539fd45bf4cd3f8f6992efc"}, ] [[package]] name = "pygments" -version = "2.15.1" +version = "2.16.1" description = "Pygments is a syntax highlighting package written in Python." optional = false python-versions = ">=3.7" files = [ - {file = "Pygments-2.15.1-py3-none-any.whl", hash = "sha256:db2db3deb4b4179f399a09054b023b6a586b76499d36965813c71aa8ed7b5fd1"}, - {file = "Pygments-2.15.1.tar.gz", hash = "sha256:8ace4d3c1dd481894b2005f560ead0f9f19ee64fe983366be1a21e171d12775c"}, + {file = "Pygments-2.16.1-py3-none-any.whl", hash = "sha256:13fc09fa63bc8d8671a6d247e1eb303c4b343eaee81d861f3404db2935653692"}, + {file = "Pygments-2.16.1.tar.gz", hash = "sha256:1daff0494820c69bc8941e407aa20f577374ee88364ee10a98fdbe0aece96e29"}, ] [package.extras] @@ -1315,19 +1425,22 @@ plugins = ["importlib-metadata"] [[package]] name = "pymdown-extensions" -version = "10.1" +version = "10.3.1" description = "Extension pack for Python Markdown." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pymdown_extensions-10.1-py3-none-any.whl", hash = "sha256:ef25dbbae530e8f67575d222b75ff0649b1e841e22c2ae9a20bad9472c2207dc"}, - {file = "pymdown_extensions-10.1.tar.gz", hash = "sha256:508009b211373058debb8247e168de4cbcb91b1bff7b5e961b2c3e864e00b195"}, + {file = "pymdown_extensions-10.3.1-py3-none-any.whl", hash = "sha256:8cba67beb2a1318cdaf742d09dff7c0fc4cafcc290147ade0f8fb7b71522711a"}, + {file = "pymdown_extensions-10.3.1.tar.gz", hash = "sha256:f6c79941498a458852853872e379e7bab63888361ba20992fc8b4f8a9b61735e"}, ] [package.dependencies] markdown = ">=3.2" pyyaml = "*" +[package.extras] +extra = ["pygments (>=2.12)"] + [[package]] name = "pysocks" version = "1.7.1" @@ -1342,13 +1455,13 @@ files = [ [[package]] name = "pytest" -version = "7.4.0" +version = "7.4.3" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.7" files = [ - {file = "pytest-7.4.0-py3-none-any.whl", hash = "sha256:78bf16451a2eb8c7a2ea98e32dc119fd2aa758f1d5d66dbf0a59d69a3969df32"}, - {file = "pytest-7.4.0.tar.gz", hash = "sha256:b4bf8c45bd59934ed84001ad51e11b4ee40d40a1229d2c79f9c592b0a3f6bd8a"}, + {file = "pytest-7.4.3-py3-none-any.whl", hash = "sha256:0d009c083ea859a71b76adf7c1d502e4bc170b80a8ef002da5806527b9591fac"}, + {file = "pytest-7.4.3.tar.gz", hash = "sha256:d989d136982de4e3b29dabcc838ad581c64e8ed52c11fbe86ddebd9da0818cd5"}, ] [package.dependencies] @@ -1410,13 +1523,13 @@ cli = ["click (>=5.0)"] [[package]] name = "pytz" -version = "2023.3" +version = "2023.3.post1" description = "World timezone definitions, modern and historical" optional = false python-versions = "*" files = [ - {file = "pytz-2023.3-py2.py3-none-any.whl", hash = "sha256:a151b3abb88eda1d4e34a9814df37de2a80e301e68ba0fd856fb9b46bfbbbffb"}, - {file = "pytz-2023.3.tar.gz", hash = "sha256:1d8ce29db189191fb55338ee6d0387d82ab59f3d00eac103412d64e0ebd0c588"}, + {file = "pytz-2023.3.post1-py2.py3-none-any.whl", hash = "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7"}, + {file = "pytz-2023.3.post1.tar.gz", hash = "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b"}, ] [[package]] @@ -1494,99 +1607,99 @@ pyyaml = "*" [[package]] name = "regex" -version = "2023.6.3" +version = "2023.10.3" description = "Alternative regular expression module, to replace re." optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "regex-2023.6.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:824bf3ac11001849aec3fa1d69abcb67aac3e150a933963fb12bda5151fe1bfd"}, - {file = "regex-2023.6.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:05ed27acdf4465c95826962528f9e8d41dbf9b1aa8531a387dee6ed215a3e9ef"}, - {file = "regex-2023.6.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b49c764f88a79160fa64f9a7b425620e87c9f46095ef9c9920542ab2495c8bc"}, - {file = "regex-2023.6.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8e3f1316c2293e5469f8f09dc2d76efb6c3982d3da91ba95061a7e69489a14ef"}, - {file = "regex-2023.6.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:43e1dd9d12df9004246bacb79a0e5886b3b6071b32e41f83b0acbf293f820ee8"}, - {file = "regex-2023.6.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4959e8bcbfda5146477d21c3a8ad81b185cd252f3d0d6e4724a5ef11c012fb06"}, - {file = "regex-2023.6.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:af4dd387354dc83a3bff67127a124c21116feb0d2ef536805c454721c5d7993d"}, - {file = "regex-2023.6.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2239d95d8e243658b8dbb36b12bd10c33ad6e6933a54d36ff053713f129aa536"}, - {file = "regex-2023.6.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:890e5a11c97cf0d0c550eb661b937a1e45431ffa79803b942a057c4fb12a2da2"}, - {file = "regex-2023.6.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a8105e9af3b029f243ab11ad47c19b566482c150c754e4c717900a798806b222"}, - {file = "regex-2023.6.3-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:25be746a8ec7bc7b082783216de8e9473803706723b3f6bef34b3d0ed03d57e2"}, - {file = "regex-2023.6.3-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:3676f1dd082be28b1266c93f618ee07741b704ab7b68501a173ce7d8d0d0ca18"}, - {file = "regex-2023.6.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:10cb847aeb1728412c666ab2e2000ba6f174f25b2bdc7292e7dd71b16db07568"}, - {file = "regex-2023.6.3-cp310-cp310-win32.whl", hash = "sha256:dbbbfce33cd98f97f6bffb17801b0576e653f4fdb1d399b2ea89638bc8d08ae1"}, - {file = "regex-2023.6.3-cp310-cp310-win_amd64.whl", hash = "sha256:c5f8037000eb21e4823aa485149f2299eb589f8d1fe4b448036d230c3f4e68e0"}, - {file = "regex-2023.6.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c123f662be8ec5ab4ea72ea300359023a5d1df095b7ead76fedcd8babbedf969"}, - {file = "regex-2023.6.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9edcbad1f8a407e450fbac88d89e04e0b99a08473f666a3f3de0fd292badb6aa"}, - {file = "regex-2023.6.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dcba6dae7de533c876255317c11f3abe4907ba7d9aa15d13e3d9710d4315ec0e"}, - {file = "regex-2023.6.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:29cdd471ebf9e0f2fb3cac165efedc3c58db841d83a518b082077e612d3ee5df"}, - {file = "regex-2023.6.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12b74fbbf6cbbf9dbce20eb9b5879469e97aeeaa874145517563cca4029db65c"}, - {file = "regex-2023.6.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c29ca1bd61b16b67be247be87390ef1d1ef702800f91fbd1991f5c4421ebae8"}, - {file = "regex-2023.6.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d77f09bc4b55d4bf7cc5eba785d87001d6757b7c9eec237fe2af57aba1a071d9"}, - {file = "regex-2023.6.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ea353ecb6ab5f7e7d2f4372b1e779796ebd7b37352d290096978fea83c4dba0c"}, - {file = "regex-2023.6.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:10590510780b7541969287512d1b43f19f965c2ece6c9b1c00fc367b29d8dce7"}, - {file = "regex-2023.6.3-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:e2fbd6236aae3b7f9d514312cdb58e6494ee1c76a9948adde6eba33eb1c4264f"}, - {file = "regex-2023.6.3-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:6b2675068c8b56f6bfd5a2bda55b8accbb96c02fd563704732fd1c95e2083461"}, - {file = "regex-2023.6.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:74419d2b50ecb98360cfaa2974da8689cb3b45b9deff0dcf489c0d333bcc1477"}, - {file = "regex-2023.6.3-cp311-cp311-win32.whl", hash = "sha256:fb5ec16523dc573a4b277663a2b5a364e2099902d3944c9419a40ebd56a118f9"}, - {file = "regex-2023.6.3-cp311-cp311-win_amd64.whl", hash = "sha256:09e4a1a6acc39294a36b7338819b10baceb227f7f7dbbea0506d419b5a1dd8af"}, - {file = "regex-2023.6.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:0654bca0cdf28a5956c83839162692725159f4cda8d63e0911a2c0dc76166525"}, - {file = "regex-2023.6.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:463b6a3ceb5ca952e66550a4532cef94c9a0c80dc156c4cc343041951aec1697"}, - {file = "regex-2023.6.3-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:87b2a5bb5e78ee0ad1de71c664d6eb536dc3947a46a69182a90f4410f5e3f7dd"}, - {file = "regex-2023.6.3-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6343c6928282c1f6a9db41f5fd551662310e8774c0e5ebccb767002fcf663ca9"}, - {file = "regex-2023.6.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b6192d5af2ccd2a38877bfef086d35e6659566a335b1492786ff254c168b1693"}, - {file = "regex-2023.6.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:74390d18c75054947e4194019077e243c06fbb62e541d8817a0fa822ea310c14"}, - {file = "regex-2023.6.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:742e19a90d9bb2f4a6cf2862b8b06dea5e09b96c9f2df1779e53432d7275331f"}, - {file = "regex-2023.6.3-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:8abbc5d54ea0ee80e37fef009e3cec5dafd722ed3c829126253d3e22f3846f1e"}, - {file = "regex-2023.6.3-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:c2b867c17a7a7ae44c43ebbeb1b5ff406b3e8d5b3e14662683e5e66e6cc868d3"}, - {file = "regex-2023.6.3-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:d831c2f8ff278179705ca59f7e8524069c1a989e716a1874d6d1aab6119d91d1"}, - {file = "regex-2023.6.3-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:ee2d1a9a253b1729bb2de27d41f696ae893507c7db224436abe83ee25356f5c1"}, - {file = "regex-2023.6.3-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:61474f0b41fe1a80e8dfa70f70ea1e047387b7cd01c85ec88fa44f5d7561d787"}, - {file = "regex-2023.6.3-cp36-cp36m-win32.whl", hash = "sha256:0b71e63226e393b534105fcbdd8740410dc6b0854c2bfa39bbda6b0d40e59a54"}, - {file = "regex-2023.6.3-cp36-cp36m-win_amd64.whl", hash = "sha256:bbb02fd4462f37060122e5acacec78e49c0fbb303c30dd49c7f493cf21fc5b27"}, - {file = "regex-2023.6.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b862c2b9d5ae38a68b92e215b93f98d4c5e9454fa36aae4450f61dd33ff48487"}, - {file = "regex-2023.6.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:976d7a304b59ede34ca2921305b57356694f9e6879db323fd90a80f865d355a3"}, - {file = "regex-2023.6.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:83320a09188e0e6c39088355d423aa9d056ad57a0b6c6381b300ec1a04ec3d16"}, - {file = "regex-2023.6.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9427a399501818a7564f8c90eced1e9e20709ece36be701f394ada99890ea4b3"}, - {file = "regex-2023.6.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7178bbc1b2ec40eaca599d13c092079bf529679bf0371c602edaa555e10b41c3"}, - {file = "regex-2023.6.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:837328d14cde912af625d5f303ec29f7e28cdab588674897baafaf505341f2fc"}, - {file = "regex-2023.6.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2d44dc13229905ae96dd2ae2dd7cebf824ee92bc52e8cf03dcead37d926da019"}, - {file = "regex-2023.6.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d54af539295392611e7efbe94e827311eb8b29668e2b3f4cadcfe6f46df9c777"}, - {file = "regex-2023.6.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:7117d10690c38a622e54c432dfbbd3cbd92f09401d622902c32f6d377e2300ee"}, - {file = "regex-2023.6.3-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bb60b503ec8a6e4e3e03a681072fa3a5adcbfa5479fa2d898ae2b4a8e24c4591"}, - {file = "regex-2023.6.3-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:65ba8603753cec91c71de423a943ba506363b0e5c3fdb913ef8f9caa14b2c7e0"}, - {file = "regex-2023.6.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:271f0bdba3c70b58e6f500b205d10a36fb4b58bd06ac61381b68de66442efddb"}, - {file = "regex-2023.6.3-cp37-cp37m-win32.whl", hash = "sha256:9beb322958aaca059f34975b0df135181f2e5d7a13b84d3e0e45434749cb20f7"}, - {file = "regex-2023.6.3-cp37-cp37m-win_amd64.whl", hash = "sha256:fea75c3710d4f31389eed3c02f62d0b66a9da282521075061ce875eb5300cf23"}, - {file = "regex-2023.6.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8f56fcb7ff7bf7404becdfc60b1e81a6d0561807051fd2f1860b0d0348156a07"}, - {file = "regex-2023.6.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d2da3abc88711bce7557412310dfa50327d5769a31d1c894b58eb256459dc289"}, - {file = "regex-2023.6.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a99b50300df5add73d307cf66abea093304a07eb017bce94f01e795090dea87c"}, - {file = "regex-2023.6.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5708089ed5b40a7b2dc561e0c8baa9535b77771b64a8330b684823cfd5116036"}, - {file = "regex-2023.6.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:687ea9d78a4b1cf82f8479cab23678aff723108df3edeac098e5b2498879f4a7"}, - {file = "regex-2023.6.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d3850beab9f527f06ccc94b446c864059c57651b3f911fddb8d9d3ec1d1b25d"}, - {file = "regex-2023.6.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e8915cc96abeb8983cea1df3c939e3c6e1ac778340c17732eb63bb96247b91d2"}, - {file = "regex-2023.6.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:841d6e0e5663d4c7b4c8099c9997be748677d46cbf43f9f471150e560791f7ff"}, - {file = "regex-2023.6.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9edce5281f965cf135e19840f4d93d55b3835122aa76ccacfd389e880ba4cf82"}, - {file = "regex-2023.6.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:b956231ebdc45f5b7a2e1f90f66a12be9610ce775fe1b1d50414aac1e9206c06"}, - {file = "regex-2023.6.3-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:36efeba71c6539d23c4643be88295ce8c82c88bbd7c65e8a24081d2ca123da3f"}, - {file = "regex-2023.6.3-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:cf67ca618b4fd34aee78740bea954d7c69fdda419eb208c2c0c7060bb822d747"}, - {file = "regex-2023.6.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b4598b1897837067a57b08147a68ac026c1e73b31ef6e36deeeb1fa60b2933c9"}, - {file = "regex-2023.6.3-cp38-cp38-win32.whl", hash = "sha256:f415f802fbcafed5dcc694c13b1292f07fe0befdb94aa8a52905bd115ff41e88"}, - {file = "regex-2023.6.3-cp38-cp38-win_amd64.whl", hash = "sha256:d4f03bb71d482f979bda92e1427f3ec9b220e62a7dd337af0aa6b47bf4498f72"}, - {file = "regex-2023.6.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ccf91346b7bd20c790310c4147eee6ed495a54ddb6737162a36ce9dbef3e4751"}, - {file = "regex-2023.6.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b28f5024a3a041009eb4c333863d7894d191215b39576535c6734cd88b0fcb68"}, - {file = "regex-2023.6.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e0bb18053dfcfed432cc3ac632b5e5e5c5b7e55fb3f8090e867bfd9b054dbcbf"}, - {file = "regex-2023.6.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a5bfb3004f2144a084a16ce19ca56b8ac46e6fd0651f54269fc9e230edb5e4a"}, - {file = "regex-2023.6.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c6b48d0fa50d8f4df3daf451be7f9689c2bde1a52b1225c5926e3f54b6a9ed1"}, - {file = "regex-2023.6.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:051da80e6eeb6e239e394ae60704d2b566aa6a7aed6f2890a7967307267a5dc6"}, - {file = "regex-2023.6.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a4c3b7fa4cdaa69268748665a1a6ff70c014d39bb69c50fda64b396c9116cf77"}, - {file = "regex-2023.6.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:457b6cce21bee41ac292d6753d5e94dcbc5c9e3e3a834da285b0bde7aa4a11e9"}, - {file = "regex-2023.6.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:aad51907d74fc183033ad796dd4c2e080d1adcc4fd3c0fd4fd499f30c03011cd"}, - {file = "regex-2023.6.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:0385e73da22363778ef2324950e08b689abdf0b108a7d8decb403ad7f5191938"}, - {file = "regex-2023.6.3-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:c6a57b742133830eec44d9b2290daf5cbe0a2f1d6acee1b3c7b1c7b2f3606df7"}, - {file = "regex-2023.6.3-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:3e5219bf9e75993d73ab3d25985c857c77e614525fac9ae02b1bebd92f7cecac"}, - {file = "regex-2023.6.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e5087a3c59eef624a4591ef9eaa6e9a8d8a94c779dade95d27c0bc24650261cd"}, - {file = "regex-2023.6.3-cp39-cp39-win32.whl", hash = "sha256:20326216cc2afe69b6e98528160b225d72f85ab080cbdf0b11528cbbaba2248f"}, - {file = "regex-2023.6.3-cp39-cp39-win_amd64.whl", hash = "sha256:bdff5eab10e59cf26bc479f565e25ed71a7d041d1ded04ccf9aee1d9f208487a"}, - {file = "regex-2023.6.3.tar.gz", hash = "sha256:72d1a25bf36d2050ceb35b517afe13864865268dfb45910e2e17a84be6cbfeb0"}, + {file = "regex-2023.10.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4c34d4f73ea738223a094d8e0ffd6d2c1a1b4c175da34d6b0de3d8d69bee6bcc"}, + {file = "regex-2023.10.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a8f4e49fc3ce020f65411432183e6775f24e02dff617281094ba6ab079ef0915"}, + {file = "regex-2023.10.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4cd1bccf99d3ef1ab6ba835308ad85be040e6a11b0977ef7ea8c8005f01a3c29"}, + {file = "regex-2023.10.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:81dce2ddc9f6e8f543d94b05d56e70d03a0774d32f6cca53e978dc01e4fc75b8"}, + {file = "regex-2023.10.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c6b4d23c04831e3ab61717a707a5d763b300213db49ca680edf8bf13ab5d91b"}, + {file = "regex-2023.10.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c15ad0aee158a15e17e0495e1e18741573d04eb6da06d8b84af726cfc1ed02ee"}, + {file = "regex-2023.10.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6239d4e2e0b52c8bd38c51b760cd870069f0bdf99700a62cd509d7a031749a55"}, + {file = "regex-2023.10.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4a8bf76e3182797c6b1afa5b822d1d5802ff30284abe4599e1247be4fd6b03be"}, + {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d9c727bbcf0065cbb20f39d2b4f932f8fa1631c3e01fcedc979bd4f51fe051c5"}, + {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:3ccf2716add72f80714b9a63899b67fa711b654be3fcdd34fa391d2d274ce767"}, + {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:107ac60d1bfdc3edb53be75e2a52aff7481b92817cfdddd9b4519ccf0e54a6ff"}, + {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:00ba3c9818e33f1fa974693fb55d24cdc8ebafcb2e4207680669d8f8d7cca79a"}, + {file = "regex-2023.10.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f0a47efb1dbef13af9c9a54a94a0b814902e547b7f21acb29434504d18f36e3a"}, + {file = "regex-2023.10.3-cp310-cp310-win32.whl", hash = "sha256:36362386b813fa6c9146da6149a001b7bd063dabc4d49522a1f7aa65b725c7ec"}, + {file = "regex-2023.10.3-cp310-cp310-win_amd64.whl", hash = "sha256:c65a3b5330b54103e7d21cac3f6bf3900d46f6d50138d73343d9e5b2900b2353"}, + {file = "regex-2023.10.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:90a79bce019c442604662d17bf69df99090e24cdc6ad95b18b6725c2988a490e"}, + {file = "regex-2023.10.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c7964c2183c3e6cce3f497e3a9f49d182e969f2dc3aeeadfa18945ff7bdd7051"}, + {file = "regex-2023.10.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ef80829117a8061f974b2fda8ec799717242353bff55f8a29411794d635d964"}, + {file = "regex-2023.10.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5addc9d0209a9afca5fc070f93b726bf7003bd63a427f65ef797a931782e7edc"}, + {file = "regex-2023.10.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c148bec483cc4b421562b4bcedb8e28a3b84fcc8f0aa4418e10898f3c2c0eb9b"}, + {file = "regex-2023.10.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d1f21af4c1539051049796a0f50aa342f9a27cde57318f2fc41ed50b0dbc4ac"}, + {file = "regex-2023.10.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0b9ac09853b2a3e0d0082104036579809679e7715671cfbf89d83c1cb2a30f58"}, + {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ebedc192abbc7fd13c5ee800e83a6df252bec691eb2c4bedc9f8b2e2903f5e2a"}, + {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:d8a993c0a0ffd5f2d3bda23d0cd75e7086736f8f8268de8a82fbc4bd0ac6791e"}, + {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:be6b7b8d42d3090b6c80793524fa66c57ad7ee3fe9722b258aec6d0672543fd0"}, + {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4023e2efc35a30e66e938de5aef42b520c20e7eda7bb5fb12c35e5d09a4c43f6"}, + {file = "regex-2023.10.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0d47840dc05e0ba04fe2e26f15126de7c755496d5a8aae4a08bda4dd8d646c54"}, + {file = "regex-2023.10.3-cp311-cp311-win32.whl", hash = "sha256:9145f092b5d1977ec8c0ab46e7b3381b2fd069957b9862a43bd383e5c01d18c2"}, + {file = "regex-2023.10.3-cp311-cp311-win_amd64.whl", hash = "sha256:b6104f9a46bd8743e4f738afef69b153c4b8b592d35ae46db07fc28ae3d5fb7c"}, + {file = "regex-2023.10.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:bff507ae210371d4b1fe316d03433ac099f184d570a1a611e541923f78f05037"}, + {file = "regex-2023.10.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:be5e22bbb67924dea15039c3282fa4cc6cdfbe0cbbd1c0515f9223186fc2ec5f"}, + {file = "regex-2023.10.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a992f702c9be9c72fa46f01ca6e18d131906a7180950958f766c2aa294d4b41"}, + {file = "regex-2023.10.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7434a61b158be563c1362d9071358f8ab91b8d928728cd2882af060481244c9e"}, + {file = "regex-2023.10.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c2169b2dcabf4e608416f7f9468737583ce5f0a6e8677c4efbf795ce81109d7c"}, + {file = "regex-2023.10.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9e908ef5889cda4de038892b9accc36d33d72fb3e12c747e2799a0e806ec841"}, + {file = "regex-2023.10.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:12bd4bc2c632742c7ce20db48e0d99afdc05e03f0b4c1af90542e05b809a03d9"}, + {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bc72c231f5449d86d6c7d9cc7cd819b6eb30134bb770b8cfdc0765e48ef9c420"}, + {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bce8814b076f0ce5766dc87d5a056b0e9437b8e0cd351b9a6c4e1134a7dfbda9"}, + {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:ba7cd6dc4d585ea544c1412019921570ebd8a597fabf475acc4528210d7c4a6f"}, + {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b0c7d2f698e83f15228ba41c135501cfe7d5740181d5903e250e47f617eb4292"}, + {file = "regex-2023.10.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5a8f91c64f390ecee09ff793319f30a0f32492e99f5dc1c72bc361f23ccd0a9a"}, + {file = "regex-2023.10.3-cp312-cp312-win32.whl", hash = "sha256:ad08a69728ff3c79866d729b095872afe1e0557251da4abb2c5faff15a91d19a"}, + {file = "regex-2023.10.3-cp312-cp312-win_amd64.whl", hash = "sha256:39cdf8d141d6d44e8d5a12a8569d5a227f645c87df4f92179bd06e2e2705e76b"}, + {file = "regex-2023.10.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4a3ee019a9befe84fa3e917a2dd378807e423d013377a884c1970a3c2792d293"}, + {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76066d7ff61ba6bf3cb5efe2428fc82aac91802844c022d849a1f0f53820502d"}, + {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfe50b61bab1b1ec260fa7cd91106fa9fece57e6beba05630afe27c71259c59b"}, + {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fd88f373cb71e6b59b7fa597e47e518282455c2734fd4306a05ca219a1991b0"}, + {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b3ab05a182c7937fb374f7e946f04fb23a0c0699c0450e9fb02ef567412d2fa3"}, + {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dac37cf08fcf2094159922edc7a2784cfcc5c70f8354469f79ed085f0328ebdf"}, + {file = "regex-2023.10.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e54ddd0bb8fb626aa1f9ba7b36629564544954fff9669b15da3610c22b9a0991"}, + {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:3367007ad1951fde612bf65b0dffc8fd681a4ab98ac86957d16491400d661302"}, + {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:16f8740eb6dbacc7113e3097b0a36065a02e37b47c936b551805d40340fb9971"}, + {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:f4f2ca6df64cbdd27f27b34f35adb640b5d2d77264228554e68deda54456eb11"}, + {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:39807cbcbe406efca2a233884e169d056c35aa7e9f343d4e78665246a332f597"}, + {file = "regex-2023.10.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:7eece6fbd3eae4a92d7c748ae825cbc1ee41a89bb1c3db05b5578ed3cfcfd7cb"}, + {file = "regex-2023.10.3-cp37-cp37m-win32.whl", hash = "sha256:ce615c92d90df8373d9e13acddd154152645c0dc060871abf6bd43809673d20a"}, + {file = "regex-2023.10.3-cp37-cp37m-win_amd64.whl", hash = "sha256:0f649fa32fe734c4abdfd4edbb8381c74abf5f34bc0b3271ce687b23729299ed"}, + {file = "regex-2023.10.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9b98b7681a9437262947f41c7fac567c7e1f6eddd94b0483596d320092004533"}, + {file = "regex-2023.10.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:91dc1d531f80c862441d7b66c4505cd6ea9d312f01fb2f4654f40c6fdf5cc37a"}, + {file = "regex-2023.10.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82fcc1f1cc3ff1ab8a57ba619b149b907072e750815c5ba63e7aa2e1163384a4"}, + {file = "regex-2023.10.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7979b834ec7a33aafae34a90aad9f914c41fd6eaa8474e66953f3f6f7cbd4368"}, + {file = "regex-2023.10.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ef71561f82a89af6cfcbee47f0fabfdb6e63788a9258e913955d89fdd96902ab"}, + {file = "regex-2023.10.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd829712de97753367153ed84f2de752b86cd1f7a88b55a3a775eb52eafe8a94"}, + {file = "regex-2023.10.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:00e871d83a45eee2f8688d7e6849609c2ca2a04a6d48fba3dff4deef35d14f07"}, + {file = "regex-2023.10.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:706e7b739fdd17cb89e1fbf712d9dc21311fc2333f6d435eac2d4ee81985098c"}, + {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cc3f1c053b73f20c7ad88b0d1d23be7e7b3901229ce89f5000a8399746a6e039"}, + {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6f85739e80d13644b981a88f529d79c5bdf646b460ba190bffcaf6d57b2a9863"}, + {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:741ba2f511cc9626b7561a440f87d658aabb3d6b744a86a3c025f866b4d19e7f"}, + {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e77c90ab5997e85901da85131fd36acd0ed2221368199b65f0d11bca44549711"}, + {file = "regex-2023.10.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:979c24cbefaf2420c4e377ecd1f165ea08cc3d1fbb44bdc51bccbbf7c66a2cb4"}, + {file = "regex-2023.10.3-cp38-cp38-win32.whl", hash = "sha256:58837f9d221744d4c92d2cf7201c6acd19623b50c643b56992cbd2b745485d3d"}, + {file = "regex-2023.10.3-cp38-cp38-win_amd64.whl", hash = "sha256:c55853684fe08d4897c37dfc5faeff70607a5f1806c8be148f1695be4a63414b"}, + {file = "regex-2023.10.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2c54e23836650bdf2c18222c87f6f840d4943944146ca479858404fedeb9f9af"}, + {file = "regex-2023.10.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:69c0771ca5653c7d4b65203cbfc5e66db9375f1078689459fe196fe08b7b4930"}, + {file = "regex-2023.10.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ac965a998e1388e6ff2e9781f499ad1eaa41e962a40d11c7823c9952c77123e"}, + {file = "regex-2023.10.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c0e8fae5b27caa34177bdfa5a960c46ff2f78ee2d45c6db15ae3f64ecadde14"}, + {file = "regex-2023.10.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6c56c3d47da04f921b73ff9415fbaa939f684d47293f071aa9cbb13c94afc17d"}, + {file = "regex-2023.10.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ef1e014eed78ab650bef9a6a9cbe50b052c0aebe553fb2881e0453717573f52"}, + {file = "regex-2023.10.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d29338556a59423d9ff7b6eb0cb89ead2b0875e08fe522f3e068b955c3e7b59b"}, + {file = "regex-2023.10.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9c6d0ced3c06d0f183b73d3c5920727268d2201aa0fe6d55c60d68c792ff3588"}, + {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:994645a46c6a740ee8ce8df7911d4aee458d9b1bc5639bc968226763d07f00fa"}, + {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:66e2fe786ef28da2b28e222c89502b2af984858091675044d93cb50e6f46d7af"}, + {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:11175910f62b2b8c055f2b089e0fedd694fe2be3941b3e2633653bc51064c528"}, + {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:06e9abc0e4c9ab4779c74ad99c3fc10d3967d03114449acc2c2762ad4472b8ca"}, + {file = "regex-2023.10.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:fb02e4257376ae25c6dd95a5aec377f9b18c09be6ebdefa7ad209b9137b73d48"}, + {file = "regex-2023.10.3-cp39-cp39-win32.whl", hash = "sha256:3b2c3502603fab52d7619b882c25a6850b766ebd1b18de3df23b2f939360e1bd"}, + {file = "regex-2023.10.3-cp39-cp39-win_amd64.whl", hash = "sha256:adbccd17dcaff65704c856bd29951c58a1bd4b2b0f8ad6b826dbd543fe740988"}, + {file = "regex-2023.10.3.tar.gz", hash = "sha256:3fef4f844d2290ee0ba57addcec17eec9e3df73f10a2748485dfd6a3a188cc0f"}, ] [[package]] @@ -1629,13 +1742,13 @@ dev = ["black (>=22.3.0)", "build (>=0.7.0)", "isort (>=5.11.4)", "pyflakes (>=2 [[package]] name = "selenium" -version = "4.10.0" +version = "4.15.1" description = "" optional = true -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "selenium-4.10.0-py3-none-any.whl", hash = "sha256:40241b9d872f58959e9b34e258488bf11844cd86142fd68182bd41db9991fc5c"}, - {file = "selenium-4.10.0.tar.gz", hash = "sha256:871bf800c4934f745b909c8dfc7d15c65cf45bd2e943abd54451c810ada395e3"}, + {file = "selenium-4.15.1-py3-none-any.whl", hash = "sha256:e3a4ebdcc3eed27eec69f8000d798923dbf4897c97cc6441eb88a1386809170d"}, + {file = "selenium-4.15.1.tar.gz", hash = "sha256:8f0436b5949f1d4aa742f3dff0d748b955c371be92db8b6b008bf9c9ca227de7"}, ] [package.dependencies] @@ -1695,13 +1808,13 @@ files = [ [[package]] name = "stack-data" -version = "0.6.2" +version = "0.6.3" description = "Extract data from python stack frames and tracebacks for informative displays" optional = false python-versions = "*" files = [ - {file = "stack_data-0.6.2-py3-none-any.whl", hash = "sha256:cbb2a53eb64e5785878201a97ed7c7b94883f48b87bfb0bbe8b623c74679e4a8"}, - {file = "stack_data-0.6.2.tar.gz", hash = "sha256:32d2dd0376772d01b6cb9fc996f3c8b57a357089dec328ed4b6553d037eaf815"}, + {file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"}, + {file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"}, ] [package.dependencies] @@ -1725,48 +1838,48 @@ files = [ [[package]] name = "tqdm" -version = "4.65.0" +version = "4.66.1" description = "Fast, Extensible Progress Meter" optional = false python-versions = ">=3.7" files = [ - {file = "tqdm-4.65.0-py3-none-any.whl", hash = "sha256:c4f53a17fe37e132815abceec022631be8ffe1b9381c2e6e30aa70edc99e9671"}, - {file = "tqdm-4.65.0.tar.gz", hash = "sha256:1871fb68a86b8fb3b59ca4cdd3dcccbc7e6d613eeed31f4c332531977b89beb5"}, + {file = "tqdm-4.66.1-py3-none-any.whl", hash = "sha256:d302b3c5b53d47bce91fea46679d9c3c6508cf6332229aa1e7d8653723793386"}, + {file = "tqdm-4.66.1.tar.gz", hash = "sha256:d88e651f9db8d8551a62556d3cff9e3034274ca5d66e93197cf2490e2dcb69c7"}, ] [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} [package.extras] -dev = ["py-make (>=0.1.0)", "twine", "wheel"] +dev = ["pytest (>=6)", "pytest-cov", "pytest-timeout", "pytest-xdist"] notebook = ["ipywidgets (>=6)"] slack = ["slack-sdk"] telegram = ["requests"] [[package]] name = "traitlets" -version = "5.9.0" +version = "5.13.0" description = "Traitlets Python configuration system" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "traitlets-5.9.0-py3-none-any.whl", hash = "sha256:9e6ec080259b9a5940c797d58b613b5e31441c2257b87c2e795c5228ae80d2d8"}, - {file = "traitlets-5.9.0.tar.gz", hash = "sha256:f6cde21a9c68cf756af02035f72d5a723bf607e862e7be33ece505abf4a3bad9"}, + {file = "traitlets-5.13.0-py3-none-any.whl", hash = "sha256:baf991e61542da48fe8aef8b779a9ea0aa38d8a54166ee250d5af5ecf4486619"}, + {file = "traitlets-5.13.0.tar.gz", hash = "sha256:9b232b9430c8f57288c1024b34a8f0251ddcc47268927367a0dd3eeaca40deb5"}, ] [package.extras] docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] -test = ["argcomplete (>=2.0)", "pre-commit", "pytest", "pytest-mock"] +test = ["argcomplete (>=3.0.3)", "mypy (>=1.6.0)", "pre-commit", "pytest (>=7.0,<7.5)", "pytest-mock", "pytest-mypy-testing"] [[package]] name = "trio" -version = "0.22.2" +version = "0.23.0" description = "A friendly Python library for async concurrency and I/O" optional = true -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "trio-0.22.2-py3-none-any.whl", hash = "sha256:f43da357620e5872b3d940a2e3589aa251fd3f881b65a608d742e00809b1ec38"}, - {file = "trio-0.22.2.tar.gz", hash = "sha256:3887cf18c8bcc894433420305468388dac76932e9668afa1c49aa3806b6accb3"}, + {file = "trio-0.23.0-py3-none-any.whl", hash = "sha256:213cd69a05962b1ba24d48caf08f7e7acf02bf1ebfac17c06d1248497f05795e"}, + {file = "trio-0.23.0.tar.gz", hash = "sha256:662cfe10018018607a8e7ee191c274bcffbf9056be60b3ccb4f1790df98fc0a3"}, ] [package.dependencies] @@ -1775,34 +1888,34 @@ cffi = {version = ">=1.14", markers = "os_name == \"nt\" and implementation_name exceptiongroup = {version = ">=1.0.0rc9", markers = "python_version < \"3.11\""} idna = "*" outcome = "*" -sniffio = "*" +sniffio = ">=1.3.0" sortedcontainers = "*" [[package]] name = "trio-websocket" -version = "0.10.3" +version = "0.11.1" description = "WebSocket library for Trio" optional = true python-versions = ">=3.7" files = [ - {file = "trio-websocket-0.10.3.tar.gz", hash = "sha256:1a748604ad906a7dcab9a43c6eb5681e37de4793ba0847ef0bc9486933ed027b"}, - {file = "trio_websocket-0.10.3-py3-none-any.whl", hash = "sha256:a9937d48e8132ebf833019efde2a52ca82d223a30a7ea3e8d60a7d28f75a4e3a"}, + {file = "trio-websocket-0.11.1.tar.gz", hash = "sha256:18c11793647703c158b1f6e62de638acada927344d534e3c7628eedcb746839f"}, + {file = "trio_websocket-0.11.1-py3-none-any.whl", hash = "sha256:520d046b0d030cf970b8b2b2e00c4c2245b3807853ecd44214acd33d74581638"}, ] [package.dependencies] -exceptiongroup = "*" +exceptiongroup = {version = "*", markers = "python_version < \"3.11\""} trio = ">=0.11" wsproto = ">=0.14" [[package]] name = "typing-extensions" -version = "4.7.1" -description = "Backported and Experimental Type Hints for Python 3.7+" +version = "4.8.0" +description = "Backported and Experimental Type Hints for Python 3.8+" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"}, - {file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"}, + {file = "typing_extensions-4.8.0-py3-none-any.whl", hash = "sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0"}, + {file = "typing_extensions-4.8.0.tar.gz", hash = "sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef"}, ] [[package]] @@ -1838,23 +1951,23 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.24.0" +version = "20.24.6" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.7" files = [ - {file = "virtualenv-20.24.0-py3-none-any.whl", hash = "sha256:18d1b37fc75cc2670625702d76849a91ebd383768b4e91382a8d51be3246049e"}, - {file = "virtualenv-20.24.0.tar.gz", hash = "sha256:e2a7cef9da880d693b933db7654367754f14e20650dc60e8ee7385571f8593a3"}, + {file = "virtualenv-20.24.6-py3-none-any.whl", hash = "sha256:520d056652454c5098a00c0f073611ccbea4c79089331f60bf9d7ba247bb7381"}, + {file = "virtualenv-20.24.6.tar.gz", hash = "sha256:02ece4f56fbf939dbbc33c0715159951d6bf14aaf5457b092e4548e1382455af"}, ] [package.dependencies] -distlib = ">=0.3.6,<1" -filelock = ">=3.12,<4" -platformdirs = ">=3.5.1,<4" +distlib = ">=0.3.7,<1" +filelock = ">=3.12.2,<4" +platformdirs = ">=3.9.1,<4" [package.extras] -docs = ["furo (>=2023.5.20)", "proselint (>=0.13)", "sphinx (>=7.0.1)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] -test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.3.1)", "pytest-env (>=0.8.1)", "pytest-freezer (>=0.4.6)", "pytest-mock (>=3.10)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=67.8)", "time-machine (>=2.9)"] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] [[package]] name = "watchdog" @@ -1897,31 +2010,30 @@ watchmedo = ["PyYAML (>=3.10)"] [[package]] name = "wcwidth" -version = "0.2.6" +version = "0.2.9" description = "Measures the displayed width of unicode strings in a terminal" optional = false python-versions = "*" files = [ - {file = "wcwidth-0.2.6-py2.py3-none-any.whl", hash = "sha256:795b138f6875577cd91bba52baf9e445cd5118fd32723b460e30a0af30ea230e"}, - {file = "wcwidth-0.2.6.tar.gz", hash = "sha256:a5220780a404dbe3353789870978e472cfe477761f06ee55077256e509b156d0"}, + {file = "wcwidth-0.2.9-py2.py3-none-any.whl", hash = "sha256:9a929bd8380f6cd9571a968a9c8f4353ca58d7cd812a4822bba831f8d685b223"}, + {file = "wcwidth-0.2.9.tar.gz", hash = "sha256:a675d1a4a2d24ef67096a04b85b02deeecd8e226f57b5e3a72dbb9ed99d27da8"}, ] [[package]] name = "webdriver-manager" -version = "3.8.6" +version = "3.9.1" description = "Library provides the way to automatically manage drivers for different browsers" optional = true python-versions = ">=3.7" files = [ - {file = "webdriver_manager-3.8.6-py2.py3-none-any.whl", hash = "sha256:7d3aa8d67bd6c92a5d25f4abd75eea2c6dd24ea6617bff986f502280903a0e2b"}, - {file = "webdriver_manager-3.8.6.tar.gz", hash = "sha256:ee788d389b8f45222a8a62f6f39b579360a1f87be46dad6da89918354af3ce73"}, + {file = "webdriver_manager-3.9.1-py2.py3-none-any.whl", hash = "sha256:1dfc29a786abb97ba28076d4766d931064eeeac71a9685a3e8d46f5d363fcbe3"}, + {file = "webdriver_manager-3.9.1.tar.gz", hash = "sha256:cd1f49ebb325a98b4dc3c41056f5b645e82fff3f83e346607844ec0bdf561c0b"}, ] [package.dependencies] packaging = "*" python-dotenv = "*" requests = "*" -tqdm = "*" [[package]] name = "wsproto" @@ -1939,17 +2051,17 @@ h11 = ">=0.9.0,<1" [[package]] name = "zipp" -version = "3.16.2" +version = "3.17.0" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.8" files = [ - {file = "zipp-3.16.2-py3-none-any.whl", hash = "sha256:679e51dd4403591b2d6838a48de3d283f3d188412a9782faadf845f298736ba0"}, - {file = "zipp-3.16.2.tar.gz", hash = "sha256:ebc15946aa78bd63458992fc81ec3b6f7b1e92d51c35e6de1c3804e73b799147"}, + {file = "zipp-3.17.0-py3-none-any.whl", hash = "sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31"}, + {file = "zipp-3.17.0.tar.gz", hash = "sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"] [extras] @@ -1957,5 +2069,5 @@ premium = ["selenium", "webdriver-manager"] [metadata] lock-version = "2.0" -python-versions = "^3.9" -content-hash = "37baca0993d400814fee9f807d63d9bf4a546e211975b7e0a3640ef699d6d094" +python-versions = ">=3.8.1,<4.0" +content-hash = "5bb142dfc188dfb4ea5909389ba272201a2148343ae8d05e3d3e5f3530604663" diff --git a/pyproject.toml b/pyproject.toml index 1773eb4..59a94a6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "yahooquery" -version = "2.3.3" +version = "2.3.4" description = "Python wrapper for an unofficial Yahoo Finance API" authors = ["Doug Guthrie "] documentation = "https://yahooquery.dpguthrie.com" @@ -9,7 +9,7 @@ license = "MIT" readme = "README.md" [tool.poetry.dependencies] -python = "^3.9" +python = ">=3.8.1,<4.0" requests = "^2.31.0" pandas = "^2.0.3" requests-futures = "^1.0.1" @@ -20,13 +20,13 @@ webdriver-manager = {version = "^3.8.6", optional = true} [tool.poetry.dev-dependencies] pytest = "^7.4.0" -isort = "^5.12.0" +isort = "^5.0.0" flake8 = "^6.0.0" mypy = "^1.4.1" pytest-cov = "^4.1.0" black = "^23.7.0" pre-commit = "^3.3.3" -ipython = "^8.14.0" +ipython = "^8.0.0" mkdocs-material = "^9.1.18" [build-system] diff --git a/tests/test_ticker.py b/tests/test_ticker.py index 1ab7e14..c5495b8 100644 --- a/tests/test_ticker.py +++ b/tests/test_ticker.py @@ -184,7 +184,7 @@ def test_adj_ohlc(ticker): assert ticker.history(period="max", adj_ohlc=True) is not None -class TestHistoryDataframe(): +class TestHistoryDataframe: """Tests for `utils.__init__._history_dataframe` and dependencies.""" @pytest.fixture @@ -250,13 +250,20 @@ def timestamps_daily(self, utc, tz_oz, tz_us, tz_hk): expected_utc = pd.DatetimeIndex( [ - '2022-11-04 13:30:00', '2022-11-07 14:30:00', - '2022-11-08 14:30:00', '2022-11-09 14:30:00', - '2022-11-10 14:30:00', '2022-11-11 14:30:00', - '2022-11-14 14:30:00', '2022-11-15 14:30:00', - '2022-11-16 14:30:00', '2022-11-17 14:30:00', - '2022-11-18 14:30:00', '2022-11-21 14:30:00', - '2022-11-22 14:30:00', '2022-11-23 14:30:00', + '2022-11-04 13:30:00', + '2022-11-07 14:30:00', + '2022-11-08 14:30:00', + '2022-11-09 14:30:00', + '2022-11-10 14:30:00', + '2022-11-11 14:30:00', + '2022-11-14 14:30:00', + '2022-11-15 14:30:00', + '2022-11-16 14:30:00', + '2022-11-17 14:30:00', + '2022-11-18 14:30:00', + '2022-11-21 14:30:00', + '2022-11-22 14:30:00', + '2022-11-23 14:30:00', ], tz=utc, ) @@ -284,13 +291,20 @@ def timestamps_daily(self, utc, tz_oz, tz_us, tz_hk): expected_oz = pd.DatetimeIndex( [ - '2022-11-05 00:30:00', '2022-11-08 01:30:00', - '2022-11-09 01:30:00', '2022-11-10 01:30:00', - '2022-11-11 01:30:00', '2022-11-12 01:30:00', - '2022-11-15 01:30:00', '2022-11-16 01:30:00', - '2022-11-17 01:30:00', '2022-11-18 01:30:00', - '2022-11-19 01:30:00', '2022-11-22 01:30:00', - '2022-11-23 01:30:00', '2022-11-24 01:30:00', + '2022-11-05 00:30:00', + '2022-11-08 01:30:00', + '2022-11-09 01:30:00', + '2022-11-10 01:30:00', + '2022-11-11 01:30:00', + '2022-11-12 01:30:00', + '2022-11-15 01:30:00', + '2022-11-16 01:30:00', + '2022-11-17 01:30:00', + '2022-11-18 01:30:00', + '2022-11-19 01:30:00', + '2022-11-22 01:30:00', + '2022-11-23 01:30:00', + '2022-11-24 01:30:00', ], tz=tz_oz, ) @@ -318,13 +332,20 @@ def timestamps_daily(self, utc, tz_oz, tz_us, tz_hk): expected_us = pd.DatetimeIndex( [ - '2022-11-04 09:30:00', '2022-11-07 09:30:00', - '2022-11-08 09:30:00', '2022-11-09 09:30:00', - '2022-11-10 09:30:00', '2022-11-11 09:30:00', - '2022-11-14 09:30:00', '2022-11-15 09:30:00', - '2022-11-16 09:30:00', '2022-11-17 09:30:00', - '2022-11-18 09:30:00', '2022-11-21 09:30:00', - '2022-11-22 09:30:00', '2022-11-23 09:30:00', + '2022-11-04 09:30:00', + '2022-11-07 09:30:00', + '2022-11-08 09:30:00', + '2022-11-09 09:30:00', + '2022-11-10 09:30:00', + '2022-11-11 09:30:00', + '2022-11-14 09:30:00', + '2022-11-15 09:30:00', + '2022-11-16 09:30:00', + '2022-11-17 09:30:00', + '2022-11-18 09:30:00', + '2022-11-21 09:30:00', + '2022-11-22 09:30:00', + '2022-11-23 09:30:00', ], tz=tz_us, ) @@ -352,13 +373,20 @@ def timestamps_daily(self, utc, tz_oz, tz_us, tz_hk): expected_hk = pd.DatetimeIndex( [ - '2022-11-04 21:30', '2022-11-07 22:30', - '2022-11-08 22:30', '2022-11-09 22:30', - '2022-11-10 22:30', '2022-11-11 22:30', - '2022-11-14 22:30', '2022-11-15 22:30', - '2022-11-16 22:30', '2022-11-17 22:30', - '2022-11-18 22:30', '2022-11-21 22:30', - '2022-11-22 22:30', '2022-11-23 22:30', + '2022-11-04 21:30', + '2022-11-07 22:30', + '2022-11-08 22:30', + '2022-11-09 22:30', + '2022-11-10 22:30', + '2022-11-11 22:30', + '2022-11-14 22:30', + '2022-11-15 22:30', + '2022-11-16 22:30', + '2022-11-17 22:30', + '2022-11-18 22:30', + '2022-11-21 22:30', + '2022-11-22 22:30', + '2022-11-23 22:30', ], tz=tz_hk, ) @@ -370,7 +398,11 @@ def timestamps_daily(self, utc, tz_oz, tz_us, tz_hk): ) yield ( - tss, expected_us_days, expected_oz_days, expected_hk_days, expected_utc_days + tss, + expected_us_days, + expected_oz_days, + expected_hk_days, + expected_utc_days, ) @pytest.fixture @@ -451,12 +483,7 @@ def get_splits(tss): indice = 11 ts = tss[indice] d = { - str(ts): { - 'data': ts, - 'numerator': 3, - 'denominator': 1, - 'splitRatio': '3:1' - } + str(ts): {'data': ts, 'numerator': 3, 'denominator': 1, 'splitRatio': '3:1'} } expected = [3 if i == indice else float('nan') for i in range(14)] return d, expected @@ -606,7 +633,10 @@ def f(data, adj_timezone): dividends, _ = dividends_daily expecteds = ( - expected_daily_utc, expected_daily_us, expected_daily_oz, expected_daily_hk + expected_daily_utc, + expected_daily_us, + expected_daily_oz, + expected_daily_hk, ) tzs = (utc, tz_us, tz_oz, tz_hk) for expected, tz in zip(expecteds, tzs): @@ -663,7 +693,9 @@ def test_live_indice( # verify live indice has local timezone when adj_timezone True rtrn = _history_dataframe(data, daily=True, adj_timezone=True) expected_li = pd.Timestamp("2022-11-23 14:31", tz=tz_us).to_pydatetime() - expected_index = expected_index[:-1].insert(len(expected_index)-1, expected_li) + expected_index = expected_index[:-1].insert( + len(expected_index) - 1, expected_li + ) expected_df.index = expected_index assert_frame_equal(rtrn, expected_df) @@ -728,13 +760,20 @@ def timestamps_intraday(self, utc): expected_index_utc = pd.DatetimeIndex( [ - '2022-11-04 13:30:00', '2022-11-04 14:30:00', - '2022-11-04 15:30:00', '2022-11-04 16:30:00', - '2022-11-04 17:30:00', '2022-11-04 18:30:00', - '2022-11-04 19:30:00', '2022-11-07 14:30:00', - '2022-11-07 15:30:00', '2022-11-07 16:30:00', - '2022-11-07 17:30:00', '2022-11-07 18:30:00', - '2022-11-07 19:30:00', '2022-11-07 20:30:00' + '2022-11-04 13:30:00', + '2022-11-04 14:30:00', + '2022-11-04 15:30:00', + '2022-11-04 16:30:00', + '2022-11-04 17:30:00', + '2022-11-04 18:30:00', + '2022-11-04 19:30:00', + '2022-11-07 14:30:00', + '2022-11-07 15:30:00', + '2022-11-07 16:30:00', + '2022-11-07 17:30:00', + '2022-11-07 18:30:00', + '2022-11-07 19:30:00', + '2022-11-07 20:30:00', ], tz=utc, ) diff --git a/yahooquery/__init__.py b/yahooquery/__init__.py index 32ea9ec..d70f37d 100644 --- a/yahooquery/__init__.py +++ b/yahooquery/__init__.py @@ -1,7 +1,7 @@ """Python interface to unofficial Yahoo Finance API endpoints""" name = "yahooquery" -__version__ = "2.3.2" +__version__ = "2.3.4" from .research import Research # noqa from .ticker import Ticker # noqa diff --git a/yahooquery/base.py b/yahooquery/base.py index 54b8a0d..6cf2fc8 100644 --- a/yahooquery/base.py +++ b/yahooquery/base.py @@ -1,23 +1,32 @@ +# stdlib import os import time from concurrent.futures import as_completed from datetime import datetime +# third party from requests_futures.sessions import FuturesSession - from tqdm import tqdm -from yahooquery.login import YahooSelenium -from yahooquery.utils import _convert_to_list, _init_session + +# first party +from yahooquery.headless import YahooFinanceHeadless, _has_selenium +from yahooquery.utils import ( + convert_to_list, + get_crumb, + initialize_session, + setup_session, +) from yahooquery.utils.countries import COUNTRIES try: + # stdlib from urllib import parse except ImportError: + # third party import urlparse as parse class _YahooFinance(object): - CHUNK = 1500 FUNDAMENTALS_OPTIONS = { @@ -493,9 +502,9 @@ class _YahooFinance(object): }, "majorHoldersBreakdown": {"convert_dates": []}, "pageViews": {"convert_dates": []}, - "price": {"convert_dates": [ - "postMarketTime", "preMarketTime", "regularMarketTime" - ]}, + "price": { + "convert_dates": ["postMarketTime", "preMarketTime", "regularMarketTime"] + }, "quoteType": {"convert_dates": ["firstTradeDateEpochUtc"]}, "recommendationTrend": {"filter": "trend", "convert_dates": []}, "secFilings": {"filter": "filings", "convert_dates": ["epochDate"]}, @@ -566,7 +575,7 @@ class _YahooFinance(object): "query": { "formatted": {"required": False, "default": False}, "symbols": {"required": True, "default": None}, - } + }, }, "news": { "path": "https://query2.finance.yahoo.com/v2/finance/news", @@ -926,12 +935,17 @@ class _YahooFinance(object): def __init__(self, **kwargs): self.country = kwargs.get("country", "united states").lower() self.formatted = kwargs.pop("formatted", False) - self.session, self.crumb = _init_session(kwargs.pop("session", None), **kwargs) + self.session = initialize_session(kwargs.pop("session", None), **kwargs) self.progress = kwargs.pop("progress", False) - username = os.getenv("YF_USERNAME") or kwargs.get("username") - password = os.getenv("YF_PASSWORD") or kwargs.get("password") - if username and password: - self.login(username, password) + self.username = kwargs.get("username", os.getenv("YF_USERNAME", None)) + self.password = kwargs.get("password", os.getenv("YF_PASSWORD", None)) + if self.username and self.password: + self.login() + self._crumb = get_crumb(self.session) + else: + host = self._country_params["corsDomain"] + cookies, self.crumb = setup_session(host) + self.session.cookies = cookies @property def symbols(self): @@ -942,7 +956,7 @@ def symbols(self): @symbols.setter def symbols(self, symbols): - self._symbols = _convert_to_list(symbols) + self._symbols = convert_to_list(symbols) @property def country(self): @@ -963,7 +977,7 @@ def country(self, country): def default_query_params(self): """ Dictionary containing default query parameters that are sent with - each request. The dictionary contains four keys: lang, region, + each request. The dictionary contains four keys: lang, region, corsDomain, and crumb Notes @@ -976,20 +990,16 @@ def default_query_params(self): """ params = self._country_params if self.crumb is not None: - params['crumb'] = self.crumb + params["crumb"] = self.crumb return params - - def login(self, username, password): - ys = YahooSelenium(username=username, password=password) - d = ys.yahoo_login() - try: - [self.session.cookies.set(c["name"], c["value"]) for c in d["cookies"]] - except TypeError: - print( - "Invalid credentials provided. Please check username and" - " password and try again" - ) + def login(self): + if _has_selenium: + instance = YahooFinanceHeadless(self.username, self.password) + instance.login() + self.session.cookies = instance.cookies + + return [] def _chunk_symbols(self, key, params={}, chunk=None, **kwargs): current_symbols = self.symbols @@ -1215,5 +1225,3 @@ def _construct_data(self, json, response_field, **kwargs): except TypeError: data = json return data - - \ No newline at end of file diff --git a/yahooquery/login.py b/yahooquery/headless.py similarity index 73% rename from yahooquery/login.py rename to yahooquery/headless.py index 2b703b5..d1456cc 100644 --- a/yahooquery/login.py +++ b/yahooquery/headless.py @@ -1,9 +1,16 @@ +# stdlib +from typing import Dict, List + +# third party +from requests.cookies import RequestsCookieJar + try: + # third party from selenium import webdriver from selenium.common.exceptions import NoSuchElementException, TimeoutException - from selenium.webdriver.common.by import By from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service as ChromeService + from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait from webdriver_manager.chrome import ChromeDriverManager @@ -14,11 +21,10 @@ _has_selenium = True -class YahooSelenium(object): - +class YahooFinanceHeadless: LOGIN_URL = "https://login.yahoo.com" - def __init__(self, username: str = None, password: str = None): + def __init__(self, username: str, password: str): self.username = username self.password = password chrome_options = Options() @@ -32,7 +38,7 @@ def __init__(self, username: str = None, password: str = None): options=chrome_options, ) - def yahoo_login(self): + def login(self): try: self.driver.execute_script("window.open('{}');".format(self.LOGIN_URL)) self.driver.switch_to.window(self.driver.window_handles[-1]) @@ -45,21 +51,23 @@ def yahoo_login(self): self.driver.find_element(By.XPATH, "//button[@id='login-signin']").click() cookies = self.driver.get_cookies() self.driver.quit() - return {'cookies': cookies} + self.cookies = self._create_cookie_jar(cookies) + except TimeoutException: return ( "A timeout exception has occured. Most likely it's due " "to invalid login credentials. Please try again." ) - def get_cookies(self): - cookies = [] - self.driver.get('https://es.finance.yahoo.com') - try: - self.driver.find_element(By.CLASS_NAME, "accept-all").click() - except NoSuchElementException: - # Consent dialog was not found, keep going - pass - finally: - cookies.extend(self.driver.get_cookies()) - return cookies \ No newline at end of file + def _create_cookie_jar(cookies: List[Dict]): + cookie_jar = RequestsCookieJar() + for cookie in cookies: + cookie_dict = { + "name": cookie["name"], + "value": cookie["value"], + "domain": cookie["domain"], + "path": cookie["path"], + "expires": None, # You can set the expiration if available + } + cookie_jar.set(**cookie_dict) + return cookie_jar diff --git a/yahooquery/misc.py b/yahooquery/misc.py index 7d4e77e..1b73fa9 100644 --- a/yahooquery/misc.py +++ b/yahooquery/misc.py @@ -1,12 +1,8 @@ -from datetime import datetime -from typing import List - +# third party import pandas as pd -import requests +from .utils import get_crumb, initialize_session from .utils.countries import COUNTRIES -from .utils import _init_session - BASE_URL = "https://query2.finance.yahoo.com" @@ -24,9 +20,10 @@ def _make_request( country, ", ".join(sorted(COUNTRIES.keys())) ) ) - session, crumb = _init_session(**kwargs) + session = initialize_session(**kwargs) + crumb = get_crumb(session) if crumb is not None: - params['crumb'] = crumb + params["crumb"] = crumb r = getattr(session, method)(url, params=params, json=data) json = r.json() if response_field: diff --git a/yahooquery/research.py b/yahooquery/research.py index 5d9f8e2..2029333 100644 --- a/yahooquery/research.py +++ b/yahooquery/research.py @@ -1,10 +1,12 @@ +# stdlib import json from datetime import datetime, timedelta +# third party import pandas as pd from .base import _YahooFinance -from .utils import _convert_to_list +from .utils import convert_to_list class Research(_YahooFinance): @@ -189,7 +191,7 @@ def _construct_date(self, n=0): def _construct_query(self, research_type, **kwargs): operand_list = [] for k, v in kwargs.items(): - v = _convert_to_list(v, comma_split=True) + v = convert_to_list(v, comma_split=True) if k not in self._QUERY_OPTIONS[research_type]: raise ValueError( "{} is an invalid argument for {}".format(k, research_type) diff --git a/yahooquery/screener.py b/yahooquery/screener.py index 195408f..32a1c1d 100644 --- a/yahooquery/screener.py +++ b/yahooquery/screener.py @@ -1,11 +1,14 @@ +# stdlib import re from .base import _YahooFinance from .utils.screeners import SCREENERS try: + # stdlib from urllib import parse except ImportError: + # third party import urlparse as parse @@ -15,7 +18,7 @@ def __init__(self, **kwargs): # if not all(i in kwargs for i in ['username', 'password']): # self._get_crumb # if kwargs.get('symbols'): - # self._symbols = _convert_to_list(kwargs.get('symbols')) + # self._symbols = convert_to_list(kwargs.get('symbols')) def _construct_params(self, config, params): new_params = {} diff --git a/yahooquery/ticker.py b/yahooquery/ticker.py index 945a1ed..37cb549 100644 --- a/yahooquery/ticker.py +++ b/yahooquery/ticker.py @@ -1,10 +1,13 @@ -from datetime import datetime, timedelta +# stdlib import re +from datetime import datetime, timedelta +# third party import pandas as pd +# first party from yahooquery.base import _YahooFinance -from yahooquery.utils import _convert_to_timestamp, _flatten_list, _history_dataframe +from yahooquery.utils import _history_dataframe, convert_to_timestamp, flatten_list class Ticker(_YahooFinance): @@ -99,7 +102,7 @@ def _quote_summary(self, modules): if len(modules) == 1: kwargs.update({"addl_key": modules[0]}) data = self._get_data(key="quoteSummary", params=params, **kwargs) - dates = _flatten_list( + dates = flatten_list( [self._MODULES_DICT[module]["convert_dates"] for module in modules] ) return data if self.formatted else self._format_data(data, dates) @@ -301,7 +304,7 @@ def news(self, count=25, start=None): dict """ if start: - start = _convert_to_timestamp(start) + start = convert_to_timestamp(start) return self._chunk_symbols( "news", params={"count": count, "start": start}, list_result=True ) @@ -584,7 +587,7 @@ def all_financial_data(self, frequency="a"): frequency: str, default 'a', optional Specify either annual or quarterly. Value should be 'a' or 'q'. """ - types = _flatten_list( + types = flatten_list( [self.FUNDAMENTALS_OPTIONS[option] for option in self.FUNDAMENTALS_OPTIONS] ) return self._financials("cash_flow", frequency, types=types, trailing=False) @@ -1002,7 +1005,7 @@ def fund_sector_weightings(self): return self._quote_summary_dataframe( "topHoldings", data_filter="sectorWeightings", from_dict=True ) - + @property def p_fair_value(self): return self._get_data("yfp_fair_value") @@ -1026,7 +1029,7 @@ def p_all_financial_data(self, frequency="a"): frequency: str, default 'a', optional Specify either annual or quarterly. Value should be 'a' or 'q'. """ - types = _flatten_list( + types = flatten_list( [self.FUNDAMENTALS_OPTIONS[option] for option in self.FUNDAMENTALS_OPTIONS] ) return self._financials( @@ -1213,13 +1216,13 @@ def dividend_history(self, start, end=None): historical pricing data """ df = self.history(start=start, end=end) - if 'dividends' in df: - return df[df['dividends'] != 0].loc[:, ['dividends']] - - return pd.DataFrame( - columns=['symbol', 'date', 'dividends'] - ).set_index(['symbol', 'date'])['dividends'] - + if "dividends" in df: + return df[df["dividends"] != 0].loc[:, ["dividends"]] + + return pd.DataFrame(columns=["symbol", "date", "dividends"]).set_index( + ["symbol", "date"] + )["dividends"] + def history( self, period="ytd", @@ -1274,8 +1277,8 @@ def history( config = self._CONFIG["chart"] intervals = config["query"]["interval"]["options"] if start or period is None or period.lower() == "max": - start = _convert_to_timestamp(start) - end = _convert_to_timestamp(end, start=False) + start = convert_to_timestamp(start) + end = convert_to_timestamp(end, start=False) params = {"period1": start, "period2": end} else: params = {"range": period.lower()} @@ -1297,7 +1300,7 @@ def _history_1m(self, adj_timezone=True, adj_ohlc=False): params = {"interval": "1m"} today = datetime.today() dates = [ - _convert_to_timestamp((today - timedelta(7 * x)).date()) for x in range(5) + convert_to_timestamp((today - timedelta(7 * x)).date()) for x in range(5) ] dataframes = [] for i in range(len(dates) - 1): @@ -1324,7 +1327,7 @@ def _historical_data_to_dataframe(self, data, params, adj_timezone): try: df = pd.concat(d, names=["symbol", "date"], sort=False) except ValueError: - df = pd.DataFrame(columns=['high', 'low', 'volume', 'open', 'close']) + df = pd.DataFrame(columns=["high", "low", "volume", "open", "close"]) else: if "dividends" in df.columns: df["dividends"].fillna(0, inplace=True) diff --git a/yahooquery/utils/__init__.py b/yahooquery/utils/__init__.py index c52b3eb..33ffefa 100644 --- a/yahooquery/utils/__init__.py +++ b/yahooquery/utils/__init__.py @@ -1,132 +1,1326 @@ # stdlib import datetime -import json +import logging import random import re -from urllib3.exceptions import MaxRetryError # third party import pandas as pd -from requests import Response, Session +import requests from requests.adapters import HTTPAdapter -from requests.exceptions import ConnectionError, RetryError +from requests.exceptions import ConnectionError, RetryError, SSLError from requests.packages.urllib3.util.retry import Retry from requests_futures.sessions import FuturesSession +from urllib3.exceptions import MaxRetryError + +logger = logging.getLogger(__name__) DEFAULT_TIMEOUT = 5 HEADERS = [ - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36 Edg/89.0.774.76', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Microsoft Edge;v="89", "Chromium";v="89", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,es;q=0.6'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 Edg/86.0.622.69', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Microsoft Edge;v="86", "Chromium";v="86", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,en;q=0.9,es;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="90", "Chromium";v="90", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,en;q=0.9,it;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="90", "Chromium";v="90", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,es;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="104", "Opera";v="90"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"Windows"', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'en'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="84", "Chromium";v="84", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'macOS', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,en;q=0.9,de;q=0.5'}, - {'upgrade-insecure-requests': '1x', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="72", "Chromium";v="72", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,it;q=0.7'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="85", "Chromium";v="85", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,es;q=0.6'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="89", "Chromium";v="89", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'macOS', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,es;q=0.7'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="86", "Chromium";v="86", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,de;q=0.5'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36 Edg/90.0.818.46', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Microsoft Edge;v="90", "Chromium";v="90", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,it;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="89", "Chromium";v="89", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,it;q=0.6'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36 Edg/88.0.705.74', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Microsoft Edge;v="88", "Chromium";v="88", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,en;q=0.9,es;q=0.5'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="83", "Chromium";v="83", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'macOS', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="84", "Chromium";v="84", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'macOS', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,de;q=0.9'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="89", "Chromium";v="89", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,en;q=0.9,fr;q=0.5'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="90", "Chromium";v="90", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'macOS', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,es;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="90", "Chromium";v="90", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,es;q=0.5'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="89", "Chromium";v="89", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'macOS', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,de;q=0.7'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36 Edg/88.0.705.81', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Microsoft Edge;v="88", "Chromium";v="88", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,it;q=0.6'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="90", "Chromium";v="90", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,en;q=0.9,fr;q=0.5'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="84", "Chromium";v="84", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,en;q=0.9,es;q=0.5'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="84", "Chromium";v="84", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'macOS', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36 Edg/83.0.478.37', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Microsoft Edge;v="83", "Chromium";v="83", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,de;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="87", "Chromium";v="87", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,en;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36 Edg/88.0.705.81', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Microsoft Edge;v="88", "Chromium";v="88", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,it;q=0.6'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="63", "Chromium";v="63", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="90", "Chromium";v="90", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="80", "Chromium";v="80", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,fr;q=0.7'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.192 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="88", "Chromium";v="88", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'macOS', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,en;q=0.9,de;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="83", "Chromium";v="83", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,es;q=0.6'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="88", "Chromium";v="88", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,it;q=0.5'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="90", "Chromium";v="90", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,en;q=0.9,fr;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Safari/537.36 Edg/90.0.818.42', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Microsoft Edge;v="90", "Chromium";v="90", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,en;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.57', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Microsoft Edge;v="89", "Chromium";v="89", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="70", "Chromium";v="70", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,en;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="80", "Chromium";v="80", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,fr;q=0.5'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36 Edg/90.0.818.46', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Microsoft Edge;v="90", "Chromium";v="90", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,it;q=0.6'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="86", "Chromium";v="86", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'macOS', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,en;q=0.7'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="80", "Chromium";v="80", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,fr;q=0.5'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.52', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Microsoft Edge;v="87", "Chromium";v="87", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,en;q=0.9,es;q=0.5'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="90", "Chromium";v="90", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,en;q=0.9,de;q=0.5'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="86", "Chromium";v="86", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,en;q=0.9,it;q=0.5'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36 Edg/83.0.478.37', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Microsoft Edge;v="83", "Chromium";v="83", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,de;q=0.9'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="85", "Chromium";v="85", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'macOS', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="55", "Chromium";v="55", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,en;q=0.6'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="95", "Chromium";v="95", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,it;q=0.9'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36 Edg/89.0.774.68', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Microsoft Edge;v="89", "Chromium";v="89", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,es;q=0.6'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="86", "Chromium";v="86", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,fr;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="83", "Chromium";v="83", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36 Edg/90.0.818.46', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Microsoft Edge;v="90", "Chromium";v="90", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="83", "Chromium";v="83", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,en;q=0.9,de;q=0.5'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36 Edg/89.0.774.50', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Microsoft Edge;v="89", "Chromium";v="89", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,fr;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="85", "Chromium";v="85", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,de;q=0.7'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="87", "Chromium";v="87", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="84", "Chromium";v="84", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'macOS', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,en;q=0.9,it;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="89", "Chromium";v="89", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="89", "Chromium";v="89", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'macOS', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="95", "Chromium";v="95", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,en;q=0.5'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="84", "Chromium";v="84", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,en;q=0.9,it;q=0.5'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="89", "Chromium";v="89", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'macOS', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,it;q=0.9'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="90", "Chromium";v="90", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'macOS', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,en;q=0.9,de;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="104", "Opera";v="90"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"Windows"', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'en'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36 Edg/88.0.705.74', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Microsoft Edge;v="88", "Chromium";v="88", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,en;q=0.9,es;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"Windows"', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'en-US,fr;q=0.7'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="84", "Chromium";v="84", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'macOS', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,es;q=0.7'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.106 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="80", "Chromium";v="80", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="86", "Chromium";v="86", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'macOS', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,de;q=0.6'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="88", "Chromium";v="88", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'macOS', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,en;q=0.9,de;q=0.5'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="83", "Chromium";v="83", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,de;q=0.7'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.136 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="79", "Chromium";v="79", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,en;q=0.6'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="83", "Chromium";v="83", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="84", "Chromium";v="84", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'macOS', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,en;q=0.9,fr;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="89", "Chromium";v="89", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,de;q=0.7'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="84", "Chromium";v="84", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'macOS', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,en;q=0.5'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="89", "Chromium";v="89", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,es;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="84", "Chromium";v="84", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,en;q=0.7'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="90", "Chromium";v="90", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,it;q=0.6'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="90", "Chromium";v="90", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,it;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36 Edg/85.0.564.70', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Microsoft Edge;v="85", "Chromium";v="85", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,en;q=0.9,de;q=0.5'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.47', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Microsoft Edge;v="87", "Chromium";v="87", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36 Edg/90.0.818.56', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Microsoft Edge;v="90", "Chromium";v="90", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,it;q=0.7'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="84", "Chromium";v="84", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,en;q=0.9,fr;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="88", "Chromium";v="88", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,fr;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36 Edg/90.0.818.49', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Microsoft Edge;v="90", "Chromium";v="90", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,de;q=0.6'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="83", "Chromium";v="83", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,es;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="86", "Chromium";v="86", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'macOS', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,es;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36 Edg/87.0.664.75', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Microsoft Edge;v="87", "Chromium";v="87", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,de;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="89", "Chromium";v="89", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="86", "Chromium";v="86", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'macOS', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,it;q=0.7'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.52', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Microsoft Edge;v="87", "Chromium";v="87", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,it;q=0.9'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Google Chrome;v="89", "Chromium";v="89", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36 Edg/85.0.564.70', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Microsoft Edge;v="85", "Chromium";v="85", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,en;q=0.9,fr;q=0.5'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="73", "Chromium";v="73", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,es;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36 Edg/90.0.818.49', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Microsoft Edge;v="90", "Chromium";v="90", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,it;q=0.9'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36 Edg/89.0.774.68', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Microsoft Edge;v="89", "Chromium";v="89", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,it;q=0.9'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 Edg/86.0.622.69', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Microsoft Edge;v="86", "Chromium";v="86", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,fr;q=0.5'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36 Edg/84.0.522.63', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'sec-ch-ua': 'Microsoft Edge;v="84", "Chromium";v="84", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,fr;q=0.8'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="72", "Chromium";v="72", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip, deflate', 'accept-language': 'en-US,it;q=0.7'}, - {'upgrade-insecure-requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'sec-ch-ua': 'Google Chrome;v="81", "Chromium";v="81", ";Not A Brand";v="99"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': 'Windows', 'sec-fetch-site': 'none', 'sec-fetch-mod': '', 'sec-fetch-user': '?1', 'accept-encoding': 'gzip', 'accept-language': 'en-US,en;q=0.7'}, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36 Edg/89.0.774.76", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Microsoft Edge;v="89", "Chromium";v="89", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,es;q=0.6", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 Edg/86.0.622.69", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Microsoft Edge;v="86", "Chromium";v="86", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,en;q=0.9,es;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="90", "Chromium";v="90", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,en;q=0.9,it;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="90", "Chromium";v="90", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,es;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": '" Not A;Brand";v="99", "Chromium";v="104", "Opera";v="90"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": '"Windows"', + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate, br", + "accept-language": "en", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="84", "Chromium";v="84", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "macOS", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,en;q=0.9,de;q=0.5", + }, + { + "upgrade-insecure-requests": "1x", + "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="72", "Chromium";v="72", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,it;q=0.7", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="85", "Chromium";v="85", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,es;q=0.6", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="89", "Chromium";v="89", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "macOS", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,es;q=0.7", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="86", "Chromium";v="86", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,de;q=0.5", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36 Edg/90.0.818.46", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Microsoft Edge;v="90", "Chromium";v="90", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,it;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="89", "Chromium";v="89", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,it;q=0.6", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36 Edg/88.0.705.74", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Microsoft Edge;v="88", "Chromium";v="88", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,en;q=0.9,es;q=0.5", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="83", "Chromium";v="83", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "macOS", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="84", "Chromium";v="84", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "macOS", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,de;q=0.9", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="89", "Chromium";v="89", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,en;q=0.9,fr;q=0.5", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="90", "Chromium";v="90", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "macOS", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,es;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="90", "Chromium";v="90", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,es;q=0.5", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="89", "Chromium";v="89", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "macOS", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,de;q=0.7", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36 Edg/88.0.705.81", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Microsoft Edge;v="88", "Chromium";v="88", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,it;q=0.6", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="90", "Chromium";v="90", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,en;q=0.9,fr;q=0.5", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="84", "Chromium";v="84", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,en;q=0.9,es;q=0.5", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="84", "Chromium";v="84", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "macOS", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36 Edg/83.0.478.37", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Microsoft Edge;v="83", "Chromium";v="83", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,de;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="87", "Chromium";v="87", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,en;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36 Edg/88.0.705.81", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Microsoft Edge;v="88", "Chromium";v="88", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,it;q=0.6", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="63", "Chromium";v="63", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="90", "Chromium";v="90", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="80", "Chromium";v="80", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,fr;q=0.7", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.192 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="88", "Chromium";v="88", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "macOS", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,en;q=0.9,de;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 6.1; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="83", "Chromium";v="83", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,es;q=0.6", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="88", "Chromium";v="88", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,it;q=0.5", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="90", "Chromium";v="90", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,en;q=0.9,fr;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Safari/537.36 Edg/90.0.818.42", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Microsoft Edge;v="90", "Chromium";v="90", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,en;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.57", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Microsoft Edge;v="89", "Chromium";v="89", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="70", "Chromium";v="70", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,en;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="80", "Chromium";v="80", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,fr;q=0.5", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36 Edg/90.0.818.46", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Microsoft Edge;v="90", "Chromium";v="90", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,it;q=0.6", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="86", "Chromium";v="86", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "macOS", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,en;q=0.7", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="80", "Chromium";v="80", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,fr;q=0.5", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.52", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Microsoft Edge;v="87", "Chromium";v="87", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,en;q=0.9,es;q=0.5", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="90", "Chromium";v="90", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,en;q=0.9,de;q=0.5", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="86", "Chromium";v="86", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,en;q=0.9,it;q=0.5", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36 Edg/83.0.478.37", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Microsoft Edge;v="83", "Chromium";v="83", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,de;q=0.9", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="85", "Chromium";v="85", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "macOS", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="55", "Chromium";v="55", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,en;q=0.6", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="95", "Chromium";v="95", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,it;q=0.9", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36 Edg/89.0.774.68", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Microsoft Edge;v="89", "Chromium";v="89", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,es;q=0.6", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="86", "Chromium";v="86", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,fr;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="83", "Chromium";v="83", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36 Edg/90.0.818.46", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Microsoft Edge;v="90", "Chromium";v="90", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 6.1; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="83", "Chromium";v="83", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,en;q=0.9,de;q=0.5", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36 Edg/89.0.774.50", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Microsoft Edge;v="89", "Chromium";v="89", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,fr;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="85", "Chromium";v="85", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,de;q=0.7", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="87", "Chromium";v="87", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="84", "Chromium";v="84", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "macOS", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,en;q=0.9,it;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="89", "Chromium";v="89", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="89", "Chromium";v="89", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "macOS", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="95", "Chromium";v="95", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,en;q=0.5", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="84", "Chromium";v="84", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,en;q=0.9,it;q=0.5", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="89", "Chromium";v="89", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "macOS", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,it;q=0.9", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="90", "Chromium";v="90", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "macOS", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,en;q=0.9,de;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": '" Not A;Brand";v="99", "Chromium";v="104", "Opera";v="90"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": '"Windows"', + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate, br", + "accept-language": "en", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36 Edg/88.0.705.74", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Microsoft Edge;v="88", "Chromium";v="88", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,en;q=0.9,es;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": '" Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": '"Windows"', + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate, br", + "accept-language": "en-US,fr;q=0.7", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="84", "Chromium";v="84", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "macOS", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,es;q=0.7", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.106 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="80", "Chromium";v="80", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="86", "Chromium";v="86", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "macOS", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,de;q=0.6", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="88", "Chromium";v="88", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "macOS", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,en;q=0.9,de;q=0.5", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="83", "Chromium";v="83", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,de;q=0.7", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.136 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="79", "Chromium";v="79", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,en;q=0.6", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="83", "Chromium";v="83", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="84", "Chromium";v="84", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "macOS", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,en;q=0.9,fr;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="89", "Chromium";v="89", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,de;q=0.7", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="84", "Chromium";v="84", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "macOS", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,en;q=0.5", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="89", "Chromium";v="89", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,es;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="84", "Chromium";v="84", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,en;q=0.7", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="90", "Chromium";v="90", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,it;q=0.6", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="90", "Chromium";v="90", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,it;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36 Edg/85.0.564.70", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Microsoft Edge;v="85", "Chromium";v="85", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,en;q=0.9,de;q=0.5", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.47", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Microsoft Edge;v="87", "Chromium";v="87", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36 Edg/90.0.818.56", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Microsoft Edge;v="90", "Chromium";v="90", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,it;q=0.7", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="84", "Chromium";v="84", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,en;q=0.9,fr;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="88", "Chromium";v="88", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,fr;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36 Edg/90.0.818.49", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Microsoft Edge;v="90", "Chromium";v="90", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,de;q=0.6", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="83", "Chromium";v="83", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,es;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="86", "Chromium";v="86", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "macOS", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,es;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36 Edg/87.0.664.75", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Microsoft Edge;v="87", "Chromium";v="87", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,de;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="89", "Chromium";v="89", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="86", "Chromium";v="86", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "macOS", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,it;q=0.7", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.52", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Microsoft Edge;v="87", "Chromium";v="87", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,it;q=0.9", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Google Chrome;v="89", "Chromium";v="89", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36 Edg/85.0.564.70", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Microsoft Edge;v="85", "Chromium";v="85", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,en;q=0.9,fr;q=0.5", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="73", "Chromium";v="73", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,es;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36 Edg/90.0.818.49", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Microsoft Edge;v="90", "Chromium";v="90", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,it;q=0.9", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36 Edg/89.0.774.68", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Microsoft Edge;v="89", "Chromium";v="89", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,it;q=0.9", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 Edg/86.0.622.69", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Microsoft Edge;v="86", "Chromium";v="86", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,fr;q=0.5", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36 Edg/84.0.522.63", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", + "sec-ch-ua": 'Microsoft Edge;v="84", "Chromium";v="84", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,fr;q=0.8", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="72", "Chromium";v="72", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip, deflate", + "accept-language": "en-US,it;q=0.7", + }, + { + "upgrade-insecure-requests": "1", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36", + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", + "sec-ch-ua": 'Google Chrome;v="81", "Chromium";v="81", ";Not A Brand";v="99"', + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "Windows", + "sec-fetch-site": "none", + "sec-fetch-mod": "", + "sec-fetch-user": "?1", + "accept-encoding": "gzip", + "accept-language": "en-US,en;q=0.7", + }, ] -addl_headers = { - 'authority': 'finance.yahoo.com', - 'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', - 'sec-fetch-dest': 'document', - 'sec-fetch-mode': 'navigate', - 'sec-fetch-site': 'none', -} - class TimeoutHTTPAdapter(HTTPAdapter): def __init__(self, *args, **kwargs): @@ -143,13 +1337,12 @@ def send(self, request, **kwargs): return super(TimeoutHTTPAdapter, self).send(request, **kwargs) -def _init_session(session=None, **kwargs): - crumb = None +def initialize_session(session=None, **kwargs): if session is None: if kwargs.get("asynchronous"): session = FuturesSession(max_workers=kwargs.get("max_workers", 8)) else: - session = Session() + session = requests.Session() if kwargs.get("proxies"): session.proxies = kwargs.get("proxies") retries = Retry( @@ -165,42 +1358,52 @@ def _init_session(session=None, **kwargs): max_retries=retries, timeout=kwargs.get("timeout", DEFAULT_TIMEOUT) ), ) - session, crumb = setup_session_with_cookies_and_crumb(session) - return session, crumb + session.headers = random.choice(HEADERS) + return session -def setup_session_with_cookies_and_crumb(session: Session): - headers = {**random.choice(HEADERS)} - session.headers = headers +def setup_session(host: str): + url = f"https://{host}/quote/tsla" + session = requests.Session() + session.headers = random.choice(HEADERS) try: - response = session.get('https://fc.yahoo.com') - except Exception: - return session, None - else: - if isinstance(session, FuturesSession): - response = response.result() - - session.cookies = response.cookies - crumb = _get_crumb(session) - return session, crumb + _ = session.get(url, allow_redirects=True) + except SSLError: + counter = 0 + while counter < 5: + try: + session.headers = random.choice(HEADERS) + _ = session.get(url, verify=False) + break + except SSLError: + counter += 1 + if not session.cookies: + return None, None -def _get_crumb(session): + crumb = get_crumb(session) + return session.cookies, crumb + + +def get_crumb(session): try: - response = session.get('https://query2.finance.yahoo.com/v1/test/getcrumb') - if isinstance(session, FuturesSession): - response = response.result() + response = session.get("https://query2.finance.yahoo.com/v1/test/getcrumb") return response.text - except (ConnectionError, RetryError) as e: + + except (ConnectionError, RetryError): + logger.critical( + "Failed to obtain crumb. Ability to retrieve data will be significantly " + "limited." + ) # Cookies most likely not set in previous request return None -def _flatten_list(ls): +def flatten_list(ls): return [item for sublist in ls for item in sublist] -def _convert_to_list(symbols, comma_split=False): +def convert_to_list(symbols, comma_split=False): if isinstance(symbols, str): if comma_split: return [x.strip() for x in symbols.split(",")] @@ -209,7 +1412,7 @@ def _convert_to_list(symbols, comma_split=False): return symbols -def _convert_to_timestamp(date=None, start=True): +def convert_to_timestamp(date=None, start=True): if date is not None: return int(pd.Timestamp(date).timestamp()) if start: @@ -269,7 +1472,7 @@ def _event_as_srs(event_data, event): values = [d["amount"] for d in event_data.values()] else: values = [ - d["numerator"] / d["denominator"] if d["denominator"] else float('inf') + d["numerator"] / d["denominator"] if d["denominator"] else float("inf") for d in event_data.values() ] return pd.Series(values, index=index) @@ -284,7 +1487,7 @@ def _history_dataframe(data, daily, adj_timezone=True): data_dict["adjclose"] = data["indicators"]["adjclose"][0]["adjclose"] cols.append("adjclose") - if 'events' in data: + if "events" in data: for event, event_data in data["events"].items(): if event not in ("dividends", "splits"): continue diff --git a/yahooquery/utils/screeners.py b/yahooquery/utils/screeners.py index 85e0610..aa828b5 100644 --- a/yahooquery/utils/screeners.py +++ b/yahooquery/utils/screeners.py @@ -1,1917 +1,1917 @@ SCREENERS = { - "advertising_agencies": { - "desc": "Advertising Agencies Stocks", - "id": "b184527b-0fab-4477-b961-af240928f1cc", - "title": "Advertising Agencies" - }, - "aerospace_defense": { - "desc": "Aerospace & Defense Stocks", - "id": "eba4a585-3a33-456e-9c68-eb79d915790d", - "title": "Aerospace & Defense" - }, - "aggressive_small_caps": { - "desc": "Small cap stocks with high earnings growth rates", - "id": "af57f75b-eb22-4565-a604-5eb8744dd35c", - "title": "Aggresive small cap stocks" - }, - "agricultural_inputs": { - "desc": "Agricultural Inputs Stocks", - "id": "3ca22da1-1e29-48f3-975a-6d66a9a7d952", - "title": "Agricultural Inputs" - }, - "airlines": { - "desc": "Airlines Stocks", - "id": "a4a695cf-8fb0-4961-a82e-a353cc15ee1a", - "title": "Airlines" - }, - "airports_air_services": { - "desc": "Airports & Air Services Stocks", - "id": "bba6400e-3d72-4a6a-a813-d91b0724a17c", - "title": "Airports & Air Services" - }, - "all_cryptocurrencies_au": { - "desc": "Cryptocurrencies ordered in descending order by intraday marketcap", - "id": "d4146c38-dd86-418c-b043-82858b3c472d", - "title": "All Cryptocurrencies" - }, - "all_cryptocurrencies_ca": { - "desc": "Cryptocurrencies ordered in descending order by intraday marketcap", - "id": "7d701aca-d272-4d62-8921-fbdf3a5e90cd", - "title": "All Cryptocurrencies" - }, - "all_cryptocurrencies_eu": { - "desc": "Cryptocurrencies ordered in descending order by intraday marketcap", - "id": "56d93251-dc99-492c-b7a9-4335a103c788", - "title": "All Cryptocurrencies" - }, - "all_cryptocurrencies_gb": { - "desc": "Cryptocurrencies ordered in descending order by intraday marketcap", - "id": "b4ee2223-1076-4666-9348-76ec467e6f05", - "title": "All Cryptocurrencies" - }, - "all_cryptocurrencies_in": { - "desc": "Cryptocurrencies ordered in descending order by intraday marketcap", - "id": "ab1f1b1f-e355-49e2-b316-341db363f627", - "title": "All Cryptocurrencies" - }, - "all_cryptocurrencies_us": { - "desc": "Cryptocurrencies ordered in descending order by intraday marketcap", - "id": "80046292-2898-474e-841c-7866e4f2fc80", - "title": "All Cryptocurrencies" - }, - "aluminum": { - "desc": "Aluminum Stocks", - "id": "230d75b6-95a2-4a17-ac0e-35e4b1caca3d", - "title": "Aluminum" - }, - "analyst_strong_buy_stocks": { - "desc": "Stocks with a minimum upside potential of 20% backed by an analyst's strong buy rating.", - "id": "704d5655-c714-47a3-a280-069b439d252b", - "title": "Analyst Strong Buy Stocks" - }, - "apparel_manufacturing": { - "desc": "Apparel Manufacturing Stocks", - "id": "97cd324b-b40b-4723-86bd-10e058a50677", - "title": "Apparel Manufacturing" - }, - "apparel_retail": { - "desc": "Apparel Retail Stocks", - "id": "70642ef2-5ff3-4c36-abb0-bfc11c4ccdbb", - "title": "Apparel Retail" - }, - "asset_management": { - "desc": "Asset Management Stocks", - "id": "596c9db6-82cd-47f1-a34a-0f28d8037041", - "title": "Asset Management" - }, - "auto_manufacturers": { - "desc": "Auto Manufacturers Stocks", - "id": "2110abca-fdda-4285-b5db-3cbae61413b5", - "title": "Auto Manufacturers" - }, - "auto_parts": { - "desc": "Auto Parts Stocks", - "id": "8549ed2c-0b33-48f9-9c0e-bd07c39139b2", - "title": "Auto Parts" - }, - "auto_truck_dealerships": { - "desc": "Auto & Truck Dealerships Stocks", - "id": "5b41c320-8868-4e11-9e7a-09bf625a0c59", - "title": "Auto & Truck Dealerships" - }, - "banks_diversified": { - "desc": "Banks—Diversified Stocks", - "id": "983efda1-e27e-4900-9854-9c1acb54fdd4", - "title": "Banks—Diversified" - }, - "banks_regional": { - "desc": "Banks—Regional Stocks", - "id": "8699101a-3199-4f9b-9431-49dcd7d7014c", - "title": "Banks—Regional" - }, - "bearish_stocks_right_now": { - "desc": "Most recent stocks with a bearish technical pattern detected by Trading Central.", - "id": "c2670236-c8bf-459e-a470-668759e02c26", - "title": "Bearish Stocks Right Now" - }, - "best_hist_performance_etfs": { - "desc": "Discover the ETFs that have performed the best over the past 5 years.", - "id": "698f8496-3a8b-4d9d-b2c5-6aa86923b2f6", - "title": "Best Historical Performance" - }, - "best_hist_performance_etfs_asia": { - "desc": "Discover the ETFs that have performed the best over the past 5 years.", - "id": "82cfe7c1-9fe6-42b6-bae4-75edfe1198ef", - "title": "Best Historical Performance" - }, - "best_hist_performance_etfs_europe": { - "desc": "Discover the ETFs that have performed the best over the past 5 years.", - "id": "392fa414-a68d-4dd2-935d-3bb00de31c14", - "title": "Best Historical Performance" - }, - "best_hist_performance_mutual_funds": { - "desc": "Discover the mutual funds that have performed the best over the past 5 years.", - "id": "5fd3a59e-2798-4324-ac78-2fb3c8691c80", - "title": "Best Historical Performance" - }, - "best_hist_performance_mutual_funds_asia": { - "desc": "Discover the mutual funds that have performed the best over the past 5 years.", - "id": "70b50d4d-6a67-427e-9ff5-bf62dcfcea18", - "title": "Best Historical Performance" - }, - "best_hist_performance_mutual_funds_europe": { - "desc": "Discover the mutual funds that have performed the best over the past 5 years.", - "id": "c7bb7c3f-9c49-4bc8-9cac-3ec107e8cbfa", - "title": "Best Historical Performance" - }, - "beverages_brewers": { - "desc": "Beverages—Brewers Stocks", - "id": "3c0198c0-4e49-4715-9ca5-393dcfdef169", - "title": "Beverages—Brewers" - }, - "beverages_non_alcoholic": { - "desc": "Beverages—Non-Alcoholic Stocks", - "id": "1afefde6-58a3-4053-94a0-0715584463ff", - "title": "Beverages—Non-Alcoholic" - }, - "beverages_wineries_distilleries": { - "desc": "Beverages—Wineries & Distilleries Stocks", - "id": "dc49a372-2dd8-4eb0-9107-4088f74b9237", - "title": "Beverages—Wineries & Distilleries" - }, - "biotechnology": { - "desc": "Biotechnology Stocks", - "id": "6fed185c-ed1b-469a-916b-fc1ea70727cf", - "title": "Biotechnology" - }, - "bond_etfs": { - "desc": "Discover bond-focused ETFs.", - "id": "ae3af3ed-c086-418a-8d2a-c689605656b4", - "title": "Bond ETFs" - }, - "bond_mutual_funds": { - "desc": "Discover bond-focused mutual funds.", - "id": "f79d84da-3ca1-403c-ac0f-0424ee0cb33b", - "title": "Bond Mutual Funds" - }, - "bond_mutual_funds_asia": { - "desc": "Discover bond-focused mutual funds.", - "id": "be50285c-ce13-4351-99c6-934e122cfcb4", - "title": "Bond Mutual Funds" - }, - "bond_mutual_funds_europe": { - "desc": "Discover bond-focused mutual funds.", - "id": "9de06523-b236-4982-9f68-0e5b9895ae00", - "title": "Bond Mutual Funds" - }, - "broadcasting": { - "desc": "Broadcasting Stocks", - "id": "46e29339-b0aa-4039-ba50-451c0670ac3a", - "title": "Broadcasting" - }, - "building_materials": { - "desc": "Building Materials Stocks", - "id": "c1e3cbbe-c6ed-417d-ac18-b2803513f6f3", - "title": "Building Materials" - }, - "building_products_equipment": { - "desc": "Building Products & Equipment Stocks", - "id": "7013ce43-4b66-47b3-aa34-1f0ff3cbb2f7", - "title": "Building Products & Equipment" - }, - "bullish_stocks_right_now": { - "desc": "Most recent stocks with a bullish technical pattern detected by Trading Central.", - "id": "663e975d-9bf1-424a-9ce1-634cea6648d6", - "title": "Bullish Stocks Right Now" - }, - "business_equipment_supplies": { - "desc": "Business Equipment & Supplies Stocks", - "id": "c224f924-ccd6-4423-b45d-118e7d597161", - "title": "Business Equipment & Supplies" - }, - "capital_markets": { - "desc": "Capital Markets Stocks", - "id": "d4dc9b04-79ed-4cb9-b3a8-67c9f5c93e2e", - "title": "Capital Markets" - }, - "cheapest_etfs": { - "desc": "Uncover ETFs which report the cheapest Annual Net Expense Ratio.", - "id": "609681e0-857e-4168-9944-d2afa7a5e3eb", - "title": "Cheapest ETFs" - }, - "cheapest_etfs_asia": { - "desc": "Uncover ETFs which report the cheapest Annual Net Expense Ratio.", - "id": "612e4c2f-83cc-45d6-80d1-b851d3916e4f", - "title": "Cheapest ETFs" - }, - "cheapest_etfs_europe": { - "desc": "Uncover ETFs which report the cheapest Annual Net Expense Ratio.", - "id": "93ce8617-984a-4bec-9256-4c832fff8ceb", - "title": "Cheapest ETFs" - }, - "cheapest_mutual_funds": { - "desc": "Uncover mutual funds which report the cheapest Annual Net Expense Ratio.", - "id": "e0467260-410a-49c0-9320-da5fbf2a3e73", - "title": "Cheapest Mutual Funds" - }, - "cheapest_mutual_funds_asia": { - "desc": "Uncover mutual funds which report the cheapest Annual Net Expense Ratio.", - "id": "e0cdbbb3-6a87-4e1b-82c6-ae5d4eb40bb1", - "title": "Cheapest Mutual Funds" - }, - "cheapest_mutual_funds_europe": { - "desc": "Uncover mutual funds which report the cheapest Annual Net Expense Ratio.", - "id": "d63697a6-2488-42f1-8471-90d564f95fee", - "title": "Cheapest Mutual Funds" - }, - "chemicals": { - "desc": "Chemicals Stocks", - "id": "78341de7-2e70-4ff0-9347-d23c731bd87f", - "title": "Chemicals" - }, - "coking_coal": { - "desc": "Coking Coal Stocks", - "id": "165835db-e7c6-4c17-8fce-e5e6829105c7", - "title": "Coking Coal" - }, - "commodity_etfs": { - "desc": "Discover commodity-focused ETFs.", - "id": "6ab335b4-61e8-4d88-86a6-30f1c6c94fa7", - "title": "Commodity ETFs" - }, - "commodity_etfs_asia": { - "desc": "Discover commodity-focused ETFs.", - "id": "f5658ccd-911e-4490-b4c4-78c2dad9ae83", - "title": "Commodity ETFs" - }, - "commodity_etfs_europe": { - "desc": "Discover commodity-focused ETFs.", - "id": "9491c51d-3b6f-48ca-8a6d-6236ee092433", - "title": "Commodity ETFs" - }, - "commodity_mutual_funds": { - "desc": "Discover commodity-focused mutual funds.", - "id": "ca67a1b3-572c-433c-b1a4-a0da3738fc14", - "title": "Commodity Metal Mutual Funds" - }, - "communication_equipment": { - "desc": "Communication Equipment Stocks", - "id": "b750cbb5-d76b-4786-9ec8-ad6ca68a26b8", - "title": "Communication Equipment" - }, - "community_sentiment_most_bearish": { - "desc": "Community Sentiment Most Bearish", - "id": "772fad60-f176-4333-ac4a-af8de320e277", - "title": "Community Sentiment Most Bearish" - }, - "community_sentiment_most_bullish": { - "desc": "Community Sentiment Most Bullish", - "id": "0e85bb19-703c-44a3-b3a3-e9febb3e07e4", - "title": "Community Sentiment Most Bullish" - }, - "computer_hardware": { - "desc": "Computer Hardware Stocks", - "id": "0f691c9d-a971-4a36-936f-9135f87ff6f0", - "title": "Computer Hardware" - }, - "confectioners": { - "desc": "Confectioners Stocks", - "id": "66e04ede-6ddd-4cf5-b3f0-b25666495296", - "title": "Confectioners" - }, - "conglomerates": { - "desc": "Conglomerates Stocks", - "id": "a54ed4a5-cc92-4171-9bc7-24ce06ad5b4f", - "title": "Conglomerates" - }, - "conservative_foreign_funds": { - "desc": "Foreign funds with Performance Rating of 4 & 5, low risk and top-half returns", - "id": "86de34fe-ba77-4c36-be03-19c5d7cf4462", - "title": "Conservative Foreign Funds" - }, - "consulting_services": { - "desc": "Consulting Services Stocks", - "id": "2f05d6e4-7b4d-44e0-9e25-4bc8ad1011fb", - "title": "Consulting Services" - }, - "consumer_electronics": { - "desc": "Consumer Electronics Stocks", - "id": "f4cc7ac5-4c1a-40e5-9271-1e8c59a29bfa", - "title": "Consumer Electronics" - }, - "copper": { - "desc": "Copper Stocks", - "id": "657a2af8-2b4f-4f10-9f36-1e9e14f3aab4", - "title": "Copper" - }, - "credit_services": { - "desc": "Credit Services Stocks", - "id": "08680af3-e653-43a4-b704-b87a20c6716b", - "title": "Credit Services" - }, - "day_gainers": { - "desc": "Discover the equities with the greatest gains in the trading day.", - "id": "ec5bebb9-b7b2-4474-9e5c-3e258b61cbe6", - "title": "Day Gainers" - }, - "day_gainers_americas": { - "desc": "stocks ordered in descending order by price percent change greater than 3% with respect to the previous close", - "id": "0bfef98d-1a4b-449a-9049-737656446e7c", - "title": "Day Gainers Americas" - }, - "day_gainers_asia": { - "desc": "Discover the equities with the greatest gains in the trading day.", - "id": "fe852975-302e-413a-bd9c-7a2d602645e9", - "title": "Day Gainers" - }, - "day_gainers_au": { - "desc": "Stocks ordered in descending order by price percent change greater than 2.5% with respect to the previous close for Australia", - "id": "d0907194-0b84-44d8-8005-054546c8f66b", - "title": "Day Gainers - Australia" - }, - "day_gainers_br": { - "desc": "Stocks ordered in descending order by price percent change greater than 3% with respect to the previous close", - "id": "8fd79848-c838-46bc-986c-7b97414e7d76", - "title": "Day Gainers - Brazil" - }, - "day_gainers_ca": { - "desc": "Stocks ordered in descending order by price percent change greater than 2.5% with respect to the previous close for Canada", - "id": "4a047ba4-ba4e-4372-8327-202083a89057", - "title": "Day Gainers - Canada" - }, - "day_gainers_cryptocurrencies": { - "desc": "Discover the cryptocurrencies with the greatest gains in the last 24 hours.", - "id": "79c584ec-a1bc-443a-9330-272abd5f696c", - "title": "Day Gainers" - }, - "day_gainers_de": { - "desc": "Stocks ordered in descending order by price percent change greater than 2.5% with respect to the previous close for Germany", - "id": "62764a5a-a47b-4a0d-b72a-f454e7b8acfb", - "title": "Day Gainers - Germany" - }, - "day_gainers_dji": { - "desc": "Day Gainers - Dow Jones Industrials", - "id": "9e621bd5-9a7e-4d00-869d-1b1e1b05afd0", - "title": "Day Gainers - Dow Jones Industrials" - }, - "day_gainers_es": { - "desc": "Stocks ordered in descending order by price percent change greater than 2.5% with respect to the previous close for Spain", - "id": "c50cfd23-75cc-4549-8c57-5029e10f962c", - "title": "Day Gainers - Spain" - }, - "day_gainers_etfs": { - "desc": "Discover the ETFs with the greatest gains in the trading day.", - "id": "2249f0f3-2844-4541-9e6d-3d78527388e2", - "title": "Day Gainers" - }, - "day_gainers_etfs_asia": { - "desc": "Discover the ETFs with the greatest gains in the trading day.", - "id": "c80798fa-27bc-4a09-93c8-2aee34dd5f1f", - "title": "Day Gainers" - }, - "day_gainers_etfs_europe": { - "desc": "Discover the ETFs with the greatest gains in the trading day.", - "id": "774befd7-6ffe-4f5b-83ed-3aeb8be8b161", - "title": "Day Gainers" - }, - "day_gainers_europe": { - "desc": "Discover the equities with the greatest gains in the trading day.", - "id": "43463575-8b42-4762-9d7e-705588a25dcd", - "title": "Day Gainers" - }, - "day_gainers_fr": { - "desc": "Stocks ordered in descending order by price percent change greater than 2.5% with respect to the previous close for France", - "id": "9b598d0d-18d5-406e-a807-98d3e63c6afb", - "title": "Day Gainers - France" - }, - "day_gainers_gb": { - "desc": "Stocks ordered in descending order by price percent change greater than 2.5% with respect to the previous close for United Kingdom", - "id": "97b9075b-c5ab-4c85-bfd3-9694a061e5d2", - "title": "Day Gainers - United Kingdom" - }, - "day_gainers_hk": { - "desc": "Stocks ordered in descending order by price percent change greater than 2.5% with respect to the previous close for Hong Kong", - "id": "93505957-f2ce-4666-8f7c-91275819b5f6", - "title": "Day Gainers - Hong Kong" - }, - "day_gainers_in": { - "desc": "Stocks ordered in descending order by price percent change greater than 2.5% with respect to the previous close for India", - "id": "134b914f-e393-4b2e-a824-b4be15517cd8", - "title": "Day Gainers - India" - }, - "day_gainers_it": { - "desc": "Stocks ordered in descending order by price percent change greater than 2.5% with respect to the previous close for Italy", - "id": "9c86c7ac-c474-40d9-8912-1906cfc6cc1c", - "title": "Day Gainers - Italy" - }, - "day_gainers_mutual_funds": { - "desc": "Discover the mutual funds with the greatest gains in the trading day.", - "id": "3f7601e3-e6c6-49fa-863b-7dc58dc325b0", - "title": "Day Gainers" - }, - "day_gainers_mutual_funds_asia": { - "desc": "Discover the mutual funds with the greatest gains in the trading day.", - "id": "ce6aa148-51d9-4652-bddb-92265276eca4", - "title": "Day Gainers" - }, - "day_gainers_mutual_funds_europe": { - "desc": "Discover the mutual funds with the greatest gains in the trading day.", - "id": "f2b8b8f0-cf13-4e5a-8222-e39d8b1d1c47", - "title": "Day Gainers" - }, - "day_gainers_ndx": { - "desc": "Day Gainers - NASDAQ 100", - "id": "d1d6e2ab-ca6f-4a7d-a2f2-d872efc816ef", - "title": "Day Gainers - NASDAQ 100" - }, - "day_gainers_nz": { - "desc": "Stocks ordered in descending order by price percent change greater than 2.5% with respect to the previous close for New Zealand", - "id": "faa6cfcd-cb5d-4dfc-8532-3692ee3cc359", - "title": "Day Gainers - New Zealand" - }, - "day_gainers_options": { - "desc": "Discover the options with the greatest gains in the trading day.", - "id": "39bfd52b-6f5f-40a1-bcc8-31a9728277d8", - "title": "Day Gainers" - }, - "day_gainers_sg": { - "desc": "Stocks ordered in descending order by price percent change greater than 2.5% with respect to the previous close for Singapore", - "id": "4d834f86-c0a9-4211-b7a4-3290011892eb", - "title": "Day Gainers - Singapore" - }, - "day_losers": { - "desc": "Discover the equities with the greatest losses in the trading day.", - "id": "8ecefa87-a8b0-434a-9b39-e061a0baef9b", - "title": "Day Losers" - }, - "day_losers_americas": { - "desc": "stocks ordered in ascending order by price percent change lesser than 2.5% with respect to the previous close", - "id": "0e35eb9f-8cf1-4661-a336-e996c1c6f7f8", - "title": "Day Losers Americas" - }, - "day_losers_asia": { - "desc": "Discover the equities with the greatest losses in the trading day.", - "id": "37df3812-b9ee-41f0-87e4-b5f893f3198d", - "title": "Day Losers" - }, - "day_losers_au": { - "desc": "Stocks ordered in ascending order by price percent change with respect to the previous close for Australia", - "id": "e8e6731f-0eb9-4377-829c-1f61cb670df4", - "title": "Day Losers - Australia" - }, - "day_losers_br": { - "desc": "Stocks ordered in ascending order by price percent change with respect to the previous close for Brazil", - "id": "2dd8e3c9-8755-4d02-9bf3-0dd0640d38f2", - "title": "Day Losers - Brazil" - }, - "day_losers_ca": { - "desc": "Stocks ordered in ascending order by price percent change with respect to the previous close for Canada", - "id": "44c0eb22-33f1-4bf9-b4d0-e940838b47f5", - "title": "Day Losers - Canada" - }, - "day_losers_cryptocurrencies": { - "desc": "Discover the cryptocurrencies with the greatest losses in the last 24 hours.", - "id": "97d663ee-cf91-4f53-8cfa-0b8b580d0b11", - "title": "Day Losers" - }, - "day_losers_de": { - "desc": "Stocks ordered in ascending order by price percent change with respect to the previous close for Germany", - "id": "953e5166-b2b3-471c-a765-4c1c3c15b2da", - "title": "Day Losers - Germany" - }, - "day_losers_dji": { - "desc": "Day Losers - Dow Jones Industrials", - "id": "c95c79eb-8b89-461b-b4cf-680cf77f057e", - "title": "Day Losers - Dow Jones Industrials" - }, - "day_losers_es": { - "desc": "Stocks ordered in ascending order by price percent change with respect to the previous close for Spain", - "id": "80678708-0b02-409b-a378-15965a930d60", - "title": "Day Losers - Spain" - }, - "day_losers_etfs": { - "desc": "Discover the ETFs with the greatest losses in the trading day.", - "id": "d9faac27-b9ef-4f48-be58-6a6549af840f", - "title": "Day Losers" - }, - "day_losers_etfs_asia": { - "desc": "Discover the ETFs with the greatest losses in the trading day.", - "id": "b3439e46-5d04-42c3-8780-4bc4a067bfb9", - "title": "Day Losers" - }, - "day_losers_etfs_europe": { - "desc": "Discover the ETFs with the greatest losses in the trading day.", - "id": "dbe39476-0b84-4333-a1dd-179bd9723a17", - "title": "Day Losers" - }, - "day_losers_europe": { - "desc": "Discover the equities with the greatest losses in the trading day.", - "id": "3dfde79b-6160-4da3-a042-d1a86fd5eff9", - "title": "Day Losers" - }, - "day_losers_fr": { - "desc": "Stocks ordered in ascending order by price percent change with respect to the previous close for France", - "id": "bb9aaa7a-935e-49de-999e-e5b86c9aeefa", - "title": "Day Losers - France" - }, - "day_losers_gb": { - "desc": "Stocks ordered in ascending order by price percent change with respect to the previous close for United Kingdom", - "id": "01a3b7ec-c577-401f-8b19-57d6bbf5ce8e", - "title": "Day Losers - United Kingdom" - }, - "day_losers_hk": { - "desc": "Stocks ordered in ascending order by price percent change with respect to the previous close for Hong Kong", - "id": "5d940688-4853-49bd-a3b3-849ca743ad8c", - "title": "Day Losers - Hong Kong" - }, - "day_losers_in": { - "desc": "Stocks ordered in ascending order by price percent change with respect to the previous close for India", - "id": "d17726f5-6c05-4c80-9cc9-3578febcdb3c", - "title": "Day Losers - India" - }, - "day_losers_it": { - "desc": "Stocks ordered in ascending order by price percent change with respect to the previous close for Italy", - "id": "46677e46-895d-4c5c-a938-577d80df2180", - "title": "Day Losers - Italy" - }, - "day_losers_mutual_funds": { - "desc": "Discover the mutual funds with the greatest losses in the trading day.", - "id": "3e144242-9d1d-48fe-8426-da808ffe6014", - "title": "Day Losers" - }, - "day_losers_mutual_funds_asia": { - "desc": "Discover the mutual funds with the greatest losses in the trading day.", - "id": "988e04b3-7de5-4cee-8665-46182721f9f5", - "title": "Day Losers" - }, - "day_losers_mutual_funds_europe": { - "desc": "Discover the mutual funds with the greatest losses in the trading day.", - "id": "26340ece-9f3b-47aa-ac23-e695b7021a20", - "title": "Day Losers" - }, - "day_losers_ndx": { - "desc": "Day Losers - NASDAQ 100", - "id": "b72e29e8-dfc2-428e-ab3f-e69df2008457", - "title": "Day Losers - NASDAQ 100" - }, - "day_losers_nz": { - "desc": "Stocks ordered in ascending order by price percent change with respect to the previous close for New Zealand", - "id": "ce6dcbd1-c853-402a-90b4-776865c76f5d", - "title": "Day Losers - New Zealand" - }, - "day_losers_options": { - "desc": "Discover the options with the greatest losses in the trading day.", - "id": "ebfe7fdb-1aa8-4350-9308-899e49bd307a", - "title": "Day Losers" - }, - "day_losers_sg": { - "desc": "Stocks ordered in ascending order by price percent change with respect to the previous close for Singapore", - "id": "87813bf9-1d84-4d03-9552-d5ee38666ca4", - "title": "Day Losers - Singapore" - }, - "department_stores": { - "desc": "Department Stores Stocks", - "id": "b5c6a46b-d791-4fa2-a293-46c603515959", - "title": "Department Stores" - }, - "diagnostics_research": { - "desc": "Diagnostics & Research Stocks", - "id": "c77f59d3-f26f-43ce-a844-1bc8115257e6", - "title": "Diagnostics & Research" - }, - "discount_stores": { - "desc": "Discount Stores Stocks", - "id": "9dd246ea-0929-4836-aef2-075e4df38087", - "title": "Discount Stores" - }, - "drug_manufacturers_general": { - "desc": "Drug Manufacturers—General Stocks", - "id": "264a8d31-3229-483a-924b-9660bf869f32", - "title": "Drug Manufacturers—General" - }, - "drug_manufacturers_specialty_generic": { - "desc": "Drug Manufacturers—Specialty & Generic Stocks", - "id": "4b782d93-7013-4184-bdd5-61b770c33059", - "title": "Drug Manufacturers—Specialty & Generic" - }, - "education_training_services": { - "desc": "Education & Training Services Stocks", - "id": "0f996a22-ccbf-43ff-81fa-d1c1e4a003c1", - "title": "Education & Training Services" - }, - "electrical_equipment_parts": { - "desc": "Electrical Equipment & Parts Stocks", - "id": "ab10085a-581b-46f5-9950-c663b63414d2", - "title": "Electrical Equipment & Parts" - }, - "electronic_components": { - "desc": "Electronic Components Stocks", - "id": "9a59374c-9f17-45bc-b60f-fde16cd9dd00", - "title": "Electronic Components" - }, - "electronic_gaming_multimedia": { - "desc": "Electronic Gaming & Multimedia Stocks", - "id": "8941e1e5-baf7-407b-8015-926ae079241e", - "title": "Electronic Gaming & Multimedia" - }, - "electronics_computer_distribution": { - "desc": "Electronics & Computer Distribution Stocks", - "id": "917e3a6a-04e3-45bc-96c2-f13a384965c4", - "title": "Electronics & Computer Distribution" - }, - "engineering_construction": { - "desc": "Engineering & Construction Stocks", - "id": "826440a9-075c-483a-9f49-5c088317d8b5", - "title": "Engineering & Construction" - }, - "entertainment": { - "desc": "Entertainment Stocks", - "id": "95861fa9-815d-456b-8057-7ba3be5fd3c8", - "title": "Entertainment" - }, - "equity_mutual_funds": { - "desc": "Discover mutual funds which are made up of at least 70% equities.", - "id": "b3c7923a-b55e-40bc-b4b8-3d92dc3c6bfe", - "title": "Equity Mutual Funds" - }, - "farm_heavy_construction_machinery": { - "desc": "Farm & Heavy Construction Machinery Stocks", - "id": "41805c11-aedb-4e23-8fed-50a6a543cea4", - "title": "Farm & Heavy Construction Machinery" - }, - "farm_products": { - "desc": "Farm Products Stocks", - "id": "11692c0c-3cbe-46cc-87a6-70fb77c65723", - "title": "Farm Products" - }, - "fifty_two_wk_gainers": { - "desc": "Discover the equities with the greatest gains in the last 52 weeks.", - "id": "2958f760-5f00-4e7d-97be-d2d75d161e24", - "title": "52-Week Gainers" - }, - "fifty_two_wk_gainers_asia": { - "desc": "Discover the equities with the greatest gains in the last 52 weeks.", - "id": "ac6e41c4-2901-4e5a-9305-58f87babb48d", - "title": "52-Week Gainers" - }, - "fifty_two_wk_gainers_cryptocurrencies": { - "desc": "Discover the cryptocurrencies with the greatest gains in the last 52 weeks.", - "id": "d3a99fd0-1ff6-4307-a25b-a05678704f25", - "title": "52-Week Gainers" - }, - "fifty_two_wk_gainers_etfs": { - "desc": "Discover the ETFs with the greatest gains in the last 52 weeks.", - "id": "2a262fab-c342-4653-9c4b-14728b7bceab", - "title": "52-Week Gainers" - }, - "fifty_two_wk_gainers_etfs_asia": { - "desc": "Discover the ETFs with the greatest gains in the last 52 weeks.", - "id": "cfb86eb7-0e2e-40e4-b2a9-2a63e2b59a2f", - "title": "52-Week Gainers" - }, - "fifty_two_wk_gainers_etfs_europe": { - "desc": "Discover the ETFs with the greatest gains in the last 52 weeks.", - "id": "69a6b655-f3c9-45b0-a28d-9077661c7c04", - "title": "52-Week Gainers" - }, - "fifty_two_wk_gainers_europe": { - "desc": "Discover the equities with the greatest gains in the last 52 weeks.", - "id": "ae4ff65c-3cf1-48ea-aa10-de00472d0e30", - "title": "52-Week Gainers" - }, - "fifty_two_wk_gainers_mutual_funds": { - "desc": "Discover the mutual funds with the greatest gains in the last 52 weeks.", - "id": "5cad2dcc-0ec1-4c97-bc72-0244e3c2bbdf", - "title": "52-Week Gainers" - }, - "fifty_two_wk_gainers_mutual_funds_asia": { - "desc": "Discover the mutual funds with the greatest gains in the last 52 weeks.", - "id": "c162235a-4624-4301-849f-c34c40d7b7cc", - "title": "52-Week Gainers" - }, - "fifty_two_wk_gainers_mutual_funds_europe": { - "desc": "Discover the mutual funds with the greatest gains in the last 52 weeks.", - "id": "38bac306-de8a-4ae4-858f-0f959e1ea961", - "title": "52-Week Gainers" - }, - "fifty_two_wk_losers": { - "desc": "Discover the equities with the greatest losses in the last 52 weeks.", - "id": "5176dd5b-d919-4d85-a687-c71326d2de92", - "title": "52-Week Losers" - }, - "fifty_two_wk_losers_asia": { - "desc": "Discover the equities with the greatest losses in the last 52 weeks.", - "id": "1417ea6b-99c2-4bcd-8956-57a43da68646", - "title": "52-Week Losers" - }, - "fifty_two_wk_losers_cryptocurrencies": { - "desc": "Discover the cryptocurrencies with the greatest losses in the last 52 weeks.", - "id": "6248a532-2d42-4a05-bbb8-ee745f3aaee8", - "title": "52-Week Losers" - }, - "fifty_two_wk_losers_etfs": { - "desc": "Discover the ETFs with the greatest losses in the last 52 weeks.", - "id": "23ce67d2-e283-4fbe-ab5b-089102afe9e2", - "title": "52-Week Losers" - }, - "fifty_two_wk_losers_etfs_asia": { - "desc": "Discover the ETFs with the greatest losses in the last 52 weeks.", - "id": "85d56d74-8e28-442e-b0fb-51cb75691270", - "title": "52-Week Losers" - }, - "fifty_two_wk_losers_etfs_europe": { - "desc": "Discover the ETFs with the greatest losses in the last 52 weeks.", - "id": "758ee256-c89f-4f6c-bac6-7cccb13d7f40", - "title": "52-Week Losers" - }, - "fifty_two_wk_losers_europe": { - "desc": "Discover the equities with the greatest losses in the last 52 weeks.", - "id": "de97db3f-6b73-4b0c-b85a-1279d4079d93", - "title": "52-Week Losers" - }, - "fifty_two_wk_losers_mutual_funds": { - "desc": "Discover the mutual funds with the greatest losses in the last 52 weeks.", - "id": "d0d2d56f-0b6d-48fe-a1cd-e3063ee14132", - "title": "52-Week Losers" - }, - "fifty_two_wk_losers_mutual_funds_asia": { - "desc": "Discover the mutual funds with the greatest losses in the last 52 weeks.", - "id": "02f70157-2018-4b44-9ee7-3f8e5201d402", - "title": "52-Week Losers" - }, - "fifty_two_wk_losers_mutual_funds_europe": { - "desc": "Discover the mutual funds with the greatest losses in the last 52 weeks.", - "id": "27dc6a8b-1ac0-4a5e-87d0-dcaa4160d0e5", - "title": "52-Week Losers" - }, - "financial_conglomerates": { - "desc": "Financial Conglomerates Stocks", - "id": "3d48d904-53ab-456a-ba55-020be6a82445", - "title": "Financial Conglomerates" - }, - "financial_data_stock_exchanges": { - "desc": "Financial Data & Stock Exchanges Stocks", - "id": "c42b137d-6d9c-4c16-8822-49b74ffcf8ec", - "title": "Financial Data & Stock Exchanges" - }, - "food_distribution": { - "desc": "Food Distribution Stocks", - "id": "e5e6e726-58d0-4080-bce2-812854ab3d87", - "title": "Food Distribution" - }, - "footwear_accessories": { - "desc": "Footwear & Accessories Stocks", - "id": "fdc83b05-5a96-4e33-aa85-51191ca69295", - "title": "Footwear & Accessories" - }, - "furnishings_fixtures_appliances": { - "desc": "Furnishings, Fixtures & Appliances Stocks", - "id": "71710d80-fd39-4ba1-96b4-df8826e2f91f", - "title": "Furnishings, Fixtures & Appliances" - }, - "gambling": { - "desc": "Gambling Stocks", - "id": "189dfab8-6cd6-4838-a13a-c3551c6ae0b2", - "title": "Gambling" - }, - "gold": { - "desc": "Gold Stocks", - "id": "f5d2411d-4fe6-4904-867e-f01ce9b99740", - "title": "Gold" - }, - "grocery_stores": { - "desc": "Grocery Stores Stocks", - "id": "92b77f75-05ee-4662-93cc-60002d8b7a63", - "title": "Grocery Stores" - }, - "growth_technology_stocks": { - "desc": "Technology stocks with revenue and earnings growth in excess of 25%.", - "id": "e0c43708-7fa1-4f02-9425-697c0443d32f", - "title": "Growth Technology Stocks" - }, - "health_information_services": { - "desc": "Health Information Services Stocks", - "id": "efaac38f-c789-4a6a-92ec-111077f4af8a", - "title": "Health Information Services" - }, - "healthcare_plans": { - "desc": "Healthcare Plans Stocks", - "id": "33d768c1-5f65-4896-89ed-d8e7d001c9b8", - "title": "Healthcare Plans" - }, - "high_growth_large_etfs": { - "desc": "Discover large cap, high growth-focused ETFs.", - "id": "092168ea-b0c5-4361-b509-7a3289bcb9d2", - "title": "High growth, Large ETFs" - }, - "high_growth_large_mutual_funds": { - "desc": "Discover large cap, high growth-focused mutual funds.", - "id": "fd0425d1-a9f6-491a-9320-fd37995fbaba", - "title": "High Growth, Large Mutual Funds" - }, - "high_yield_bond": { - "desc": "High Yield Bond with Performance Rating of 4 & 5, low risk and top-half returns", - "id": "d675527c-bc6a-486c-872d-bca43fbb4322", - "title": "High Yield Bond" - }, - "high_yield_high_return": { - "desc": "As popularized by strategies like Greenblatt's Magic Formula, uncover quality equities with a high earnings yield and return on capital.", - "id": "f6ae7898-0c88-489e-897f-b1fc42e211cb", - "title": "High Yield, High Return" - }, - "high_yield_high_return_asia": { - "desc": "As popularized by strategies like Greenblatt's Magic Formula, uncover quality equities with a high earnings yield and return on capital.", - "id": "2e35021d-b56b-4b02-b07a-1174042c4add", - "title": "High Yield, High Return" - }, - "high_yield_high_return_europe": { - "desc": "As popularized by strategies like Greenblatt's Magic Formula, uncover quality equities with a high earnings yield and return on capital.", - "id": "096683a2-e083-4a21-8203-9c4ac116db01", - "title": "High Yield, High Return" - }, - "home_improvement_retail": { - "desc": "Home Improvement Retail Stocks", - "id": "13803724-428d-4fbe-8825-012987d3bdd2", - "title": "Home Improvement Retail" - }, - "household_personal_products": { - "desc": "Household & Personal Products Stocks", - "id": "4b2d4303-6233-41e4-ae0c-ffec11fa34f0", - "title": "Household & Personal Products" - }, - "industrial_distribution": { - "desc": "Industrial Distribution Stocks", - "id": "3a920780-96d6-44d0-87b9-6946886286d8", - "title": "Industrial Distribution" - }, - "information_technology_services": { - "desc": "Information Technology Services Stocks", - "id": "b3631428-79da-4b51-a689-1dc4bf80aec2", - "title": "Information Technology Services" - }, - "infrastructure_operations": { - "desc": "Infrastructure Operations Stocks", - "id": "04696a3f-8c50-48d6-919d-6cde073cac0d", - "title": "Infrastructure Operations" - }, - "insurance_brokers": { - "desc": "Insurance Brokers Stocks", - "id": "d1d36030-5858-4e02-a955-f8b9271e20aa", - "title": "Insurance Brokers" - }, - "insurance_diversified": { - "desc": "Insurance—Diversified Stocks", - "id": "1081c88c-1be2-4f26-a435-ac87883e9ddd", - "title": "Insurance—Diversified" - }, - "insurance_life": { - "desc": "Insurance—Life Stocks", - "id": "da5f094b-418c-4649-8aa1-9bc4ee3d4ca3", - "title": "Insurance—Life" - }, - "insurance_property_casualty": { - "desc": "Insurance—Property & Casualty Stocks", - "id": "b64e6ae9-0b59-4141-921a-2f1bec699e18", - "title": "Insurance—Property & Casualty" - }, - "insurance_reinsurance": { - "desc": "Insurance—Reinsurance Stocks", - "id": "5c932600-a02c-493a-b865-c101c945b388", - "title": "Insurance—Reinsurance" - }, - "insurance_specialty": { - "desc": "Insurance—Specialty Stocks", - "id": "941a8783-8f96-42a1-82ea-a30a60dd704d", - "title": "Insurance—Specialty" - }, - "integrated_freight_logistics": { - "desc": "Integrated Freight & Logistics Stocks", - "id": "7e94aa31-e0fd-4bba-9c01-a4d1fcd80ff6", - "title": "Integrated Freight & Logistics" - }, - "internet_content_information": { - "desc": "Internet Content & Information Stocks", - "id": "92fa63be-f396-43f0-a1d0-93cb109d1b8f", - "title": "Internet Content & Information" - }, - "internet_retail": { - "desc": "Internet Retail Stocks", - "id": "9573ad47-1820-4a52-b244-ddc0edc0db1c", - "title": "Internet Retail" - }, - "large_blend_etfs": { - "desc": "Discover the ETFs with a mix of large cap growth and value stocks.", - "id": "03b61465-e574-4100-b0ba-508ad235c061", - "title": "Large Blend" - }, - "large_blend_mutual_funds": { - "desc": "Discover the mutual funds with a mix of large cap growth and value stocks.", - "id": "7338519d-5dbc-4609-9ab6-627d58253a8a", - "title": "Large Blend" - }, - "largest_market_cap": { - "desc": "Uncover the equities with the largest market cap.", - "id": "e6e3b1e2-65bc-48a1-8274-a06676f3f969", - "title": "Largest Market Cap" - }, - "largest_market_cap_asia": { - "desc": "Uncover the equities with the largest market cap.", - "id": "ad808afe-47db-4905-9bd4-086032bda47f", - "title": "Largest Market Cap" - }, - "largest_market_cap_cryptocurrencies": { - "desc": "Uncover the crypto with the largest market cap.", - "id": "e8ec0193-36cb-4b26-aeba-2eb087fb4b79", - "title": "Largest Market Cap" - }, - "largest_market_cap_europe": { - "desc": "Uncover the equities with the largest market cap.", - "id": "504528d9-365f-4f97-ad08-7240eddd2bef", - "title": "Largest Market Cap" - }, - "latest_analyst_upgraded_stocks": { - "desc": "Most recent stocks that get upgraded by an Analyst.", - "id": "54e61871-8def-46d5-8b71-75baeff8cc89", - "title": "Latest Analyst Upgraded Stocks" - }, - "leisure": { - "desc": "Leisure Stocks", - "id": "fd998bdb-54a6-4352-81c7-3aa40f9b4b81", - "title": "Leisure" - }, - "lodging": { - "desc": "Lodging Stocks", - "id": "af876331-70bf-4cea-8a03-6bb40877e689", - "title": "Lodging" - }, - "low_risk_mutual_funds": { - "desc": "Discover the mutual funds with Morningstar Risk Rating of 4 and 5, likely indicating lower risk.", - "id": "e065a28e-65e3-49ee-8c38-54be12b0db97", - "title": "Low Risk Mutual Funds" - }, - "low_risk_mutual_funds_asia": { - "desc": "Discover the mutual funds with Morningstar Risk Rating of 4 and 5, likely indicating lower risk.", - "id": "9e00c0b2-b1f0-4b22-9de6-d76f2d58179a", - "title": "Low Risk Mutual Funds" - }, - "low_risk_mutual_funds_europe": { - "desc": "Discover the mutual funds with Morningstar Risk Rating of 4 and 5, likely indicating lower risk.", - "id": "3b7b021e-1248-457f-874a-efe78018dcb7", - "title": "Low Risk Mutual Funds" - }, - "lumber_wood_production": { - "desc": "Lumber & Wood Production Stocks", - "id": "6e3842f8-1918-4fa2-a4a4-a3245690515a", - "title": "Lumber & Wood Production" - }, - "luxury_goods": { - "desc": "Luxury Goods Stocks", - "id": "47e6d361-29f2-4e41-b66d-9aeaba30e821", - "title": "Luxury Goods" - }, - "marine_shipping": { - "desc": "Marine Shipping Stocks", - "id": "410de1b4-f066-48f4-bc67-72c9731c78ce", - "title": "Marine Shipping" - }, - "medical_care_facilities": { - "desc": "Medical Care Facilities Stocks", - "id": "819f5f80-ec31-4b5a-97ac-d6efed328ccb", - "title": "Medical Care Facilities" - }, - "medical_devices": { - "desc": "Medical Devices Stocks", - "id": "2865489f-9a23-489f-8545-c6e1ad7bcdfc", - "title": "Medical Devices" - }, - "medical_distribution": { - "desc": "Medical Distribution Stocks", - "id": "f24eac61-a63a-4061-9973-30aef1897154", - "title": "Medical Distribution" - }, - "medical_instruments_supplies": { - "desc": "Medical Instruments & Supplies Stocks", - "id": "5dcc2018-5313-4a27-b9a9-45ee0dcdda72", - "title": "Medical Instruments & Supplies" - }, - "mega_cap_hc": { - "desc": "Stocks with Mega Cap in healthcare industry", - "id": "86889bb3-e9d9-464d-956a-4abe5a9728db", - "title": "Mega Cap Healthcare" - }, - "metal_fabrication": { - "desc": "Metal Fabrication Stocks", - "id": "05acca9e-1aee-44b6-8224-c92459eb2ed8", - "title": "Metal Fabrication" - }, - "morningstar_five_star_stocks": { - "desc": "A 5-star rating indicates that the stock is trading meaningfully below fair value with an exciting discount.", - "id": "c8235580-5fb0-47ae-9f5c-e70f2a0cbe5d", - "title": "Morningstar 5-Star Stocks" - }, - "mortgage_finance": { - "desc": "Mortgage Finance Stocks", - "id": "fe8052af-d7ed-41bf-933d-dd0b4239e869", - "title": "Mortgage Finance" - }, - "most_actives": { - "desc": "Discover the most traded equities in the trading day.", - "id": "437465ef-980e-4d8c-a860-de7cbfbab373", - "title": "Most Actives" - }, - "most_actives_americas": { - "desc": "Stocks ordered in descending order by intraday trade volume", - "id": "a143f34f-7d90-473b-855b-67787326ce2c", - "title": "Most Actives Americas" - }, - "most_actives_asia": { - "desc": "Discover the most traded equities in the trading day.", - "id": "2e23187d-c4ff-48a5-b498-161a80b0145b", - "title": "Most Actives" - }, - "most_actives_au": { - "desc": "Stocks ordered in descending order by intraday trade volume for Australia", - "id": "d0dad29a-9a50-445b-8ca4-1367e51826eb", - "title": "Most Actives - Australia" - }, - "most_actives_br": { - "desc": "Stocks ordered in descending order by intraday trade volume for Brazil", - "id": "ec23a32d-e108-465f-9d4b-e5db1d934f2e", - "title": "Most Actives - Brazil" - }, - "most_actives_ca": { - "desc": "Stocks ordered in descending order by intraday trade volume for Canada", - "id": "5026cc58-c878-4f43-af38-efbffadce77f", - "title": "Most Actives - Canada" - }, - "most_actives_cn": { - "desc": "Stocks ordered in descending order by intraday trade volume", - "id": "b22d26a2-754c-4723-aefc-de09eca12462", - "title": "Most Actives - CN" - }, - "most_actives_cryptocurrencies": { - "desc": "Discover the most traded cryptocurrencies in the last 24 hours.", - "id": "28d9ee6a-e0e2-4e19-be0f-cda4b7ae384c", - "title": "Most Actives" - }, - "most_actives_de": { - "desc": "Stocks ordered in descending order by intraday trade volume for Germany", - "id": "5b4148d2-5a6d-4466-b663-b5895f5bc583", - "title": "Most Actives - Germany" - }, - "most_actives_dji": { - "desc": "Stocks ordered in descending order by intraday trade volume", - "id": "a423c5d4-9eff-4fb5-9995-93d06480ea91", - "title": "Most Actives - Dow Jones Industrial Average" - }, - "most_actives_es": { - "desc": "Stocks ordered in descending order by intraday trade volume for Spain", - "id": "8d1545dc-2fd9-4cac-854e-88f74c54b5dc", - "title": "Most Actives - Spain" - }, - "most_actives_etfs": { - "desc": "Discover the most traded ETFs in the trading day.", - "id": "76320b05-b87f-4d78-a8d7-11868c28cb44", - "title": "Most Actives" - }, - "most_actives_etfs_asia": { - "desc": "Discover the most traded ETFs in the trading day.", - "id": "6add3eb0-1494-4756-abe5-6e30c6649293", - "title": "Most Actives" - }, - "most_actives_etfs_europe": { - "desc": "Discover the most traded ETFs in the trading day.", - "id": "cd21364c-397a-4d79-ba4c-4fc801614242", - "title": "Most Actives" - }, - "most_actives_europe": { - "desc": "Discover the most traded equities in the trading day.", - "id": "c46c7edd-c97f-4929-9ade-77ec21b86c18", - "title": "Most Actives" - }, - "most_actives_fr": { - "desc": "Stocks ordered in descending order by intraday trade volume for France", - "id": "05f97149-f902-4cd3-8f72-f7768ac673e0", - "title": "Most Actives - France" - }, - "most_actives_gb": { - "desc": "Stocks ordered in descending order by intraday trade volume for United Kingdom", - "id": "433c5af8-f58f-4d92-8338-7d928f558a0d", - "title": "Most Actives - United Kingdom" - }, - "most_actives_hk": { - "desc": "Stocks ordered in descending order by intraday trade volume for Hong Kong", - "id": "9dbdb8ef-d0c2-446f-baab-be6997a20be8", - "title": "Most Actives - Hong Kong" - }, - "most_actives_in": { - "desc": "Stocks ordered in descending order by intraday trade volume for India", - "id": "09a035cc-f535-4249-bfae-ed95e7a9e12e", - "title": "Most Actives - India" - }, - "most_actives_it": { - "desc": "Stocks ordered in descending order by intraday trade volume for Italy", - "id": "2ec96414-6fb7-4da4-8600-cf6f82d0e6d8", - "title": "Most Actives - Italy" - }, - "most_actives_ndx": { - "desc": "Stocks ordered in descending order by intraday trade volume", - "id": "393c6a0f-d975-45a7-91b5-478fd3847b31", - "title": "Most Actives - NASDAQ 100" - }, - "most_actives_nz": { - "desc": "Stocks ordered in descending order by intraday trade volume for New Zealand", - "id": "b6b57880-3ce5-4f10-943b-a5b6dbf77f4d", - "title": "Most Actives - New Zealand" - }, - "most_actives_options": { - "desc": "Discover the most traded options in the trading day.", - "id": "924cd8e4-e16e-49b1-a7ea-6a1a471fa3f5", - "title": "Most Actives" - }, - "most_actives_sg": { - "desc": "Stocks ordered in descending order by intraday trade volume for Singapore", - "id": "96384b8f-b161-4eef-abf8-d1ce290da125", - "title": "Most Actives - Singapore" - }, - "most_institutionally_bought_large_cap_stocks": { - "desc": "Large cap stocks with the highest institutional buying as a percentage of its outstanding shares.", - "id": "18feeba8-323c-4905-9300-b6f72af3e497", - "title": "Most Institutionally Bought Large Cap Stocks" - }, - "most_institutionally_held_large_cap_stocks": { - "desc": "Large cap stocks with the highest institutional ownership as a percentage of its outstanding shares.", - "id": "d9bf8961-0dab-4e7a-89d2-91bbcff87da6", - "title": "Most Institutionally Held Large Cap Stocks" - }, - "most_institutionally_sold_large_cap_stocks": { - "desc": "Large cap stocks with the highest institutional selling as a percentage of its outstanding shares.", - "id": "ef8cb87e-0d8c-46ad-8512-59113286ea50", - "title": "Most Institutionally Sold Large Cap Stocks" - }, - "most_shorted_stocks": { - "desc": "Stocks with the highest short interest positions from Nasdaq and NYSE reports released every two weeks.", - "id": "679b1d2b-95d6-4731-9fd1-f9539ede458c", - "title": "Most Shorted Stocks" - }, - "most_visited": { - "desc": "Stocks ordered in descending order by weekly page view growth", - "id": "9bff655f-1d5c-47b8-b662-1c9d052a1df0", - "title": "Most Visited Companies" - }, - "most_visited_basic_materials": { - "desc": "Stocks in the Basic Materials sector ordered in descending order by weekly page view growth", - "id": "89ffe95d-8d19-4628-bbf6-092fa8cf4453", - "title": "Most Visited Basic Materials Companies" - }, - "most_visited_communication_services": { - "desc": "Stocks in the Communication Services sector ordered in descending order by weekly page view growth", - "id": "720f5d28-44d7-4c0b-9cb5-4c4d4b117845", - "title": "Most Visited Communication Services Companies" - }, - "most_visited_consumer_cyclical": { - "desc": "Stocks in the Consumer Cyclical sector ordered in descending order by weekly page view growth", - "id": "78fb9235-9d53-4fd6-a924-952593e75243", - "title": "Most Visited Consumer Cyclical Companies" - }, - "most_visited_consumer_defensive": { - "desc": "Stocks in the Consumer Defensive sector ordered in descending order by weekly page view growth", - "id": "5c09c497-4f26-4055-98dc-97e25709db6e", - "title": "Most Visited Consumer Defensive Companies" - }, - "most_visited_energy": { - "desc": "Stocks in the Energy sector ordered in descending order by weekly page view growth", - "id": "aa7dd02f-3495-4a6d-a0be-2eb42b231f94", - "title": "Most Visited Energy Companies" - }, - "most_visited_financial_services": { - "desc": "Stocks in the Financial Services sector ordered in descending order by weekly page view growth", - "id": "c207c8b1-796b-4a39-a4a0-5f7d8b341b09", - "title": "Most Visited Financial Services Companies" - }, - "most_visited_healthcare": { - "desc": "Stocks in the Healthcare sector ordered in descending order by weekly page view growth", - "id": "c66c4173-2f75-49eb-b9a1-659a535a48dc", - "title": "Most Visited Healthcare Companies" - }, - "most_visited_industrials": { - "desc": "Stocks in the Industrials sector ordered in descending order by weekly page view growth", - "id": "2fd2ac4a-f6b7-45bc-910a-b5c9965ddc72", - "title": "Most Visited Industrials Companies" - }, - "most_visited_real_estate": { - "desc": "Stocks in the Real Estate sector ordered in descending order by weekly page view growth", - "id": "e79defb1-9fad-4033-8a89-f4c58da39629", - "title": "Most Visited Real Estate Companies" - }, - "most_visited_technology": { - "desc": "Stocks in the Technology sector ordered in descending order by weekly page view growth", - "id": "d52b84f8-818a-427a-880a-4df2d6112e9a", - "title": "Most Visited Technology Companies" - }, - "most_visited_utilities": { - "desc": "Stocks in the Utilities sector ordered in descending order by weekly page view growth", - "id": "038d9521-ad03-4ba2-8061-30a49493059c", - "title": "Most Visited Utilities Companies" - }, - "most_watched_tickers": { - "desc": "Top 30 tickers with highest portfolioheldcount", - "id": "04c9d12e-f0a3-4ab8-bab8-904a2d1c3ab2", - "title": "Most added to watchlist" - }, - "ms_basic_materials": { - "desc": "Basic Materials ordered by intra day market cap for US region", - "id": "a4f8a58b-e458-44fe-b304-04af382a364e", - "title": "Basic Materials Sector" - }, - "ms_communication_services": { - "desc": "Communication Services ordered by intra day market cap for US region", - "id": "b8a44a72-2d49-4a2f-9261-f0fff3c2e4e2", - "title": "Communication Services Sector" - }, - "ms_consumer_cyclical": { - "desc": "Consumer Cyclical ordered by intra day market cap for US region", - "id": "4969e5a1-b0e0-416e-9ae3-191414339e3a", - "title": "Consumer Cyclical Sector" - }, - "ms_consumer_defensive": { - "desc": "Consumer Defensive ordered by intra day market cap for US region", - "id": "6a15b340-2e3c-44a6-b339-b7ae5c097be5", - "title": "Consumer Defensive Sector" - }, - "ms_energy": { - "desc": "Energy Services ordered by intra day market cap for US region", - "id": "2efb4ff8-64f4-4941-abb5-a399a6d0f66a", - "title": "Energy Services Sector" - }, - "ms_financial_services": { - "desc": "Financial Services ordered by intra day market cap for US region", - "id": "667f5248-3710-40d9-8d95-6582fdfa254c", - "title": "Financial Services Sector" - }, - "ms_healthcare": { - "desc": "Healthcare ordered by intra day market cap for US region", - "id": "e568d534-af60-4d20-a192-93bd4508f1bf", - "title": "Healthcare Sector" - }, - "ms_industrials": { - "desc": "Industrials Services ordered by intra day market cap for US region", - "id": "caf102b6-2c28-4abc-9d81-b13d710af432", - "title": "Industrials Services Sector" - }, - "ms_real_estate": { - "desc": "Real Estate ordered by intra day market cap for US region", - "id": "69d56754-89fd-4bc4-9f57-66ed42291311", - "title": "Real Estate Sector" - }, - "ms_technology": { - "desc": "Technology Services ordered by intra day market cap for US region", - "id": "c7b3f121-188a-4846-83e4-f049fab045cd", - "title": "Technology Services Sector" - }, - "ms_utilities": { - "desc": "Utilities ordered by intra day market cap for US region", - "id": "590cedc7-6ddc-40dc-9839-68b0c1572274", - "title": "Utilities Sector" - }, - "net_net_strategy": { - "desc": "As popularized by Graham, discover equities that trade below their liquidation value based on the NNWC metric.", - "id": "f3afc5dd-cbc3-4c7b-82ae-2835963be5ec", - "title": "Net-Net Strategy" - }, - "net_net_strategy_asia": { - "desc": "As popularized by Graham, discover equities that trade below their liquidation value based on the NNWC metric.", - "id": "73791934-528b-44e3-808b-4cd1a24424ac", - "title": "Net-Net Strategy" - }, - "net_net_strategy_europe": { - "desc": "As popularized by Graham, discover equities that trade below their liquidation value based on the NNWC metric.", - "id": "bf211886-2e58-49ca-9d32-ff1f8fa6293b", - "title": "Net-Net Strategy" - }, - "oil_gas_drilling": { - "desc": "Oil & Gas Drilling Stocks", - "id": "75c335ad-77c8-4368-9932-bfb462c3dc06", - "title": "Oil & Gas Drilling" - }, - "oil_gas_e_p": { - "desc": "Oil & Gas E&P Stocks", - "id": "40cd525d-2b36-40c4-bc95-33b133422ab0", - "title": "Oil & Gas E&P" - }, - "oil_gas_equipment_services": { - "desc": "Oil & Gas Equipment & Services Stocks", - "id": "051612b8-dbf2-44ac-9ee8-d0a0e105b199", - "title": "Oil & Gas Equipment & Services" - }, - "oil_gas_integrated": { - "desc": "Oil & Gas Integrated Stocks", - "id": "f4804676-79ae-4d01-8e45-6f52f85998c9", - "title": "Oil & Gas Integrated" - }, - "oil_gas_midstream": { - "desc": "Oil & Gas Midstream Stocks", - "id": "00374e32-6fb7-44c4-b828-1ba7b3080cf2", - "title": "Oil & Gas Midstream" - }, - "oil_gas_refining_marketing": { - "desc": "Oil & Gas Refining & Marketing Stocks", - "id": "59bef9a7-5bb4-4e67-8b22-513227cc55d6", - "title": "Oil & Gas Refining & Marketing" - }, - "other_industrial_metals_mining": { - "desc": "Other Industrial Metals & Mining Stocks", - "id": "2e1dd2f6-189b-4fb0-857d-79aec8ecef15", - "title": "Other Industrial Metals & Mining" - }, - "other_precious_metals_mining": { - "desc": "Other Precious Metals & Mining Stocks", - "id": "62e97ea1-46c8-4e6e-86f2-901a4ffa8b47", - "title": "Other Precious Metals & Mining" - }, - "packaged_foods": { - "desc": "Packaged Foods Stocks", - "id": "208c5e2a-b05c-40bc-8d92-6a0e97570556", - "title": "Packaged Foods" - }, - "packaging_containers": { - "desc": "Packaging & Containers Stocks", - "id": "70c912eb-3cfb-4dab-ae94-4f81d0910ea6", - "title": "Packaging & Containers" - }, - "paper_paper_products": { - "desc": "Paper & Paper Products Stocks", - "id": "f75ad8b4-22c7-4aba-b93b-1f543191f5bf", - "title": "Paper & Paper Products" - }, - "personal_services": { - "desc": "Personal Services Stocks", - "id": "7d89c0ef-3d77-47e0-9d30-b723ee9d824b", - "title": "Personal Services" - }, - "pharmaceutical_retailers": { - "desc": "Pharmaceutical Retailers Stocks", - "id": "293a91a7-b9e5-4b39-9792-4624bc78b99e", - "title": "Pharmaceutical Retailers" - }, - "pollution_treatment_controls": { - "desc": "Pollution & Treatment Controls Stocks", - "id": "5bd0d463-53ed-4ad4-bcd4-de0efa8460d3", - "title": "Pollution & Treatment Controls" - }, - "portfolio_actions_most_added": { - "desc": "Portfolio Actions Most Added", - "id": "288f1df3-0be8-4ecf-8131-03337550b7ed", - "title": "Portfolio Actions Most Added" - }, - "portfolio_actions_most_deleted": { - "desc": "Portfolio Actions Most Deleted", - "id": "ae8ea26f-ad24-4183-9e24-a40c6c440179", - "title": "Portfolio Actions Most Deleted" - }, - "portfolio_anchors": { - "desc": "Funds with Performance Rating of 4 & 5 and top-half returns that could serve as a rock-solid core of an investor's portfolio.", - "id": "7a0584d9-28a1-4a94-ac68-21f0aab91c4a", - "title": "Portfolio Anchors" - }, - "precious_metal_etfs": { - "desc": "Discover equity precious metal-focused ETFs.", - "id": "63e7f272-cd8d-4307-9002-eb98746a036a", - "title": "Precious Metal ETFs" - }, - "precious_metal_mutual_funds": { - "desc": "Discover equity precious metal-focused mutual funds.", - "id": "2b0f0d69-53ad-4a85-bcd6-8b6c1035bd33", - "title": "Precious Metal Mutual Funds" - }, - "publishing": { - "desc": "Publishing Stocks", - "id": "9061cba6-4150-47e0-ba32-bc59f824a6da", - "title": "Publishing" - }, - "railroads": { - "desc": "Railroads Stocks", - "id": "493c9c2f-8e7c-4e10-8287-608567b59d56", - "title": "Railroads" - }, - "real_estate_development": { - "desc": "Real Estate—Development Stocks", - "id": "a5bdd975-cf17-4f89-86a8-f85ca99bb8de", - "title": "Real Estate—Development" - }, - "real_estate_diversified": { - "desc": "Real Estate—Diversified Stocks", - "id": "95de06d7-7c2b-46fb-8ef8-72485007f1f0", - "title": "Real Estate—Diversified" - }, - "real_estate_services": { - "desc": "Real Estate Services Stocks", - "id": "61a2d1b7-443a-4b5a-9792-c9584cecd6f1", - "title": "Real Estate Services" - }, - "recreational_vehicles": { - "desc": "Recreational Vehicles Stocks", - "id": "d6f2cf97-b467-4709-a4e9-d351e66628d8", - "title": "Recreational Vehicles" - }, - "reit_diversified": { - "desc": "REIT—Diversified Stocks", - "id": "8b05f1c0-8250-455b-a69f-daaa92c30bba", - "title": "REIT—Diversified" - }, - "reit_healthcare_facilities": { - "desc": "REIT—Healthcare Facilities Stocks", - "id": "5875b16e-cf4e-47dd-ac92-2d0e9ecfd608", - "title": "REIT—Healthcare Facilities" - }, - "reit_hotel_motel": { - "desc": "REIT—Hotel & Motel Stocks", - "id": "e35bd5d6-6184-4fae-a5ef-6eabd3b2a5c8", - "title": "REIT—Hotel & Motel" - }, - "reit_industrial": { - "desc": "REIT—Industrial Stocks", - "id": "1f0611ca-ea24-4a25-af9a-c32ee7fc0b4a", - "title": "REIT—Industrial" - }, - "reit_mortgage": { - "desc": "REIT—Mortgage Stocks", - "id": "78956309-a5ef-4d4f-88d9-6555940cb525", - "title": "REIT—Mortgage" - }, - "reit_office": { - "desc": "REIT—Office Stocks", - "id": "9f1e2240-2cc4-4a96-8795-86867133c959", - "title": "REIT—Office" - }, - "reit_residential": { - "desc": "REIT—Residential Stocks", - "id": "8e9e7ec7-3248-4d8e-96f5-aeb6c42ac77b", - "title": "REIT—Residential" - }, - "reit_retail": { - "desc": "REIT—Retail Stocks", - "id": "0ecb1fc8-2c80-43b6-98f0-fe1fb1c2b176", - "title": "REIT—Retail" - }, - "reit_specialty": { - "desc": "REIT—Specialty Stocks", - "id": "1d63bc0a-1f95-4a78-8f86-ab359a4776ab", - "title": "REIT—Specialty" - }, - "rental_leasing_services": { - "desc": "Rental & Leasing Services Stocks", - "id": "d4711c7a-0c1f-4cb3-8743-b6c72065502a", - "title": "Rental & Leasing Services" - }, - "residential_construction": { - "desc": "Residential Construction Stocks", - "id": "56c1ea81-2d1b-4318-9d34-1a8630b52708", - "title": "Residential Construction" - }, - "resorts_casinos": { - "desc": "Resorts & Casinos Stocks", - "id": "4da54a7f-66d2-42bd-a9cd-545289082a8d", - "title": "Resorts & Casinos" - }, - "restaurants": { - "desc": "Restaurants Stocks", - "id": "8376c341-3bc4-46bc-8549-45df4724d16a", - "title": "Restaurants" - }, - "scientific_technical_instruments": { - "desc": "Scientific & Technical Instruments Stocks", - "id": "24c50979-bb02-43db-8f35-548d0c5446c9", - "title": "Scientific & Technical Instruments" - }, - "security_protection_services": { - "desc": "Security & Protection Services Stocks", - "id": "7b9d1a1c-1fc6-4883-8844-bd39034da6a4", - "title": "Security & Protection Services" - }, - "semiconductor_equipment_materials": { - "desc": "Semiconductor Equipment & Materials Stocks", - "id": "2b69f4cf-4815-4963-979a-e20464936232", - "title": "Semiconductor Equipment & Materials" - }, - "semiconductors": { - "desc": "Semiconductors Stocks", - "id": "1aae01f4-bcbc-4a96-a1de-b5569f113699", - "title": "Semiconductors" - }, - "shell_companies": { - "desc": "Shell Companies Stocks", - "id": "7f37f816-a79c-4145-ba45-9f119f07ce7d", - "title": "Shell Companies" - }, - "silver": { - "desc": "Silver Stocks", - "id": "fd2e2676-b2a8-4c45-ac10-e76a9be49151", - "title": "Silver" - }, - "small_cap_gainers": { - "desc": "Small cap stocks with percentchange greater than 5%", - "id": "483129f4-b25a-44c1-afca-8934593f3f6d", - "title": "Small caps with momentum" - }, - "software_application": { - "desc": "Software—Application Stocks", - "id": "e322e6ad-aedb-4330-965a-b6a949c5c45c", - "title": "Software—Application" - }, - "software_infrastructure": { - "desc": "Software—Infrastructure Stocks", - "id": "4e763ffb-03ba-4ff9-b515-35a1665faa45", - "title": "Software—Infrastructure" - }, - "solar": { - "desc": "Solar Stocks", - "id": "9f9e3c35-6a54-4292-aeb1-dce476941244", - "title": "Solar" - }, - "solid_large_growth_funds": { - "desc": "Large Growth Funds with Performance Rating of 4 & 5 and top-half returns", - "id": "5704ade5-098b-4c5e-997f-e50b32be7a55", - "title": "Solid Large Growth Funds" - }, - "solid_midcap_growth_funds": { - "desc": "Mid-Cap Growth Funds with Performance Rating of 4 & 5 and top-half returns", - "id": "d7235ede-59ce-40ad-99f9-5c7e4ec2c5e6", - "title": "Solid Mid-Cap Growth Funds" - }, - "sp_500_etfs": { - "desc": "Uncover ETFs advertised as being related to the S&P 500.", - "id": "e25ca1d3-f3c7-45ca-8566-13ae3f4d139e", - "title": "S&P 500 ETFs" - }, - "sp_500_etfs_asia": { - "desc": "Uncover ETFs advertised as being related to the S&P 500.", - "id": "8da58869-0ab4-4085-a3cd-cf70d50c2078", - "title": "S&P 500 ETFs" - }, - "sp_500_etfs_europe": { - "desc": "Uncover ETFs advertised as being related to the S&P 500.", - "id": "aa061fa7-9503-41b8-95f8-e9fdf86f7eb7", - "title": "S&P 500 ETFs" - }, - "specialty_business_services": { - "desc": "Specialty Business Services Stocks", - "id": "2978b66d-7cda-4fed-a28f-ea10c78ac500", - "title": "Specialty Business Services" - }, - "specialty_chemicals": { - "desc": "Specialty Chemicals Stocks", - "id": "a2271fd1-aa0f-4840-a7bb-783e92b3b515", - "title": "Specialty Chemicals" - }, - "specialty_industrial_machinery": { - "desc": "Specialty Industrial Machinery Stocks", - "id": "18ec4d96-9af4-409e-8448-98f86e4263c5", - "title": "Specialty Industrial Machinery" - }, - "specialty_retail": { - "desc": "Specialty Retail Stocks", - "id": "5cbc47de-7de8-4c60-853f-110018f5e3bd", - "title": "Specialty Retail" - }, - "staffing_employment_services": { - "desc": "Staffing & Employment Services Stocks", - "id": "69a6c527-bb1e-4863-9352-0c86c31c4bd2", - "title": "Staffing & Employment Services" - }, - "steel": { - "desc": "Steel Stocks", - "id": "a5c6e330-eea5-4e2b-b196-ca2066f7141c", - "title": "Steel" - }, - "stocks_most_bought_by_hedge_funds": { - "desc": "Stocks most bought by Hedge Funds as a percentage of outstanding shares.", - "id": "57b71b5c-1c87-4a1d-9ceb-b3c86bee7daf", - "title": "Stocks Most Bought by Hedge Funds" - }, - "stocks_most_bought_by_pension_fund": { - "desc": "Stocks most bought by Pension Fund as a percentage of outstanding shares.", - "id": "5c7ed9e4-46f8-4007-99c3-6ebae5712c7c", - "title": "Stocks Most Bought by Pension Fund" - }, - "stocks_most_bought_by_private_equity": { - "desc": "Stocks most bought by Private Equity as a percentage of outstanding shares.", - "id": "a62cd3c8-b414-4da0-a75d-ea4911dd9061", - "title": "Stocks Most Bought by Private Equity" - }, - "stocks_most_bought_by_sovereign_wealth_fund": { - "desc": "Stocks most bought by Sovereign Wealth Fund as a percentage of outstanding shares.", - "id": "b47910ce-cf2a-4113-8775-d27d0881addd", - "title": "Stocks Most Bought by Sovereign Wealth Fund" - }, - "stocks_with_most_institutional_buyers": { - "desc": "Stocks with the highest number of institutional buyers.", - "id": "0ed4f63c-2b43-45ee-b7a2-721ca11bf349", - "title": "Stocks with Most Institutional Buyers" - }, - "stocks_with_most_institutional_sellers": { - "desc": "Stocks with the highest number of institutional sellers.", - "id": "b54dacf5-3844-4e6e-827d-b3e3bf1ec89d", - "title": "Stocks with Most Institutional Sellers" - }, - "strong_undervalued_stocks": { - "desc": "Undervalued stocks with a robust and consistent history of earnings and revenue growth.", - "id": "e2276d18-9203-4b75-8efd-0f3b5f5cde94", - "title": "Strong Undervalued Stocks" - }, - "technology_etfs": { - "desc": "Discover technology-focused ETFs.", - "id": "dee4c568-74ae-4284-bf4e-7525b1eabf02", - "title": "Technology ETFs" - }, - "technology_mutual_funds": { - "desc": "Discover technology-focused mutual funds.", - "id": "6666a1fc-9b01-4398-be32-412141e76439", - "title": "Technology Mutual Funds" - }, - "telecom_services": { - "desc": "Telecom Services Stocks", - "id": "a9928231-7c89-469b-ac0f-1ae93e79c657", - "title": "Telecom Services" - }, - "textile_manufacturing": { - "desc": "Textile Manufacturing Stocks", - "id": "19847b80-4e4f-4398-936d-de43161eda6f", - "title": "Textile Manufacturing" - }, - "the_acquirers_multiple": { - "desc": "Uncover undervalued equities by comparing the enterprise value to its earnings before interest and taxes.", - "id": "01bc42f4-514d-499c-a015-1e1a3f171d2c", - "title": "The Acquirer's Multiple" - }, - "the_acquirers_multiple_asia": { - "desc": "Uncover undervalued equities by comparing the total cost to the operating income of the company.", - "id": "25f03e5a-6659-49e0-98fb-41456e713e56", - "title": "The Acquirer's Multiple" - }, - "the_acquirers_multiple_europe": { - "desc": "Uncover undervalued equities by comparing the total cost to the operating income of the company.", - "id": "4cfbf7d1-38d4-4f64-b9a3-ea13921b1769", - "title": "The Acquirer's Multiple" - }, - "thermal_coal": { - "desc": "Thermal Coal Stocks", - "id": "78e69f52-be0b-4346-9dcf-27d778fbe047", - "title": "Thermal Coal" - }, - "tobacco": { - "desc": "Tobacco Stocks", - "id": "ca5ff11e-c43f-4a54-a409-fea6d29766e7", - "title": "Tobacco" - }, - "tools_accessories": { - "desc": "Tools & Accessories Stocks", - "id": "9e622c85-3b94-41aa-8c76-8b488c2d27ce", - "title": "Tools & Accessories" - }, - "top_energy_us": { - "desc": "Energy ordered by Percent Change for US region", - "id": "9019aa39-cffd-4ffb-8c6c-dc6e9c48ef11", - "title": "Top Energy US" - }, - "top_etfs": { - "desc": "ETFs with Performance Rating of 4 & 5 ordered by Percent Change", - "id": "9976e04d-d1cb-49d4-abab-f8b45e0ae91c", - "title": "Top ETFs" - }, - "top_etfs_hk": { - "desc": "ETFs ordered by Percent Change for HK region", - "id": "131fc0f0-3c7b-476d-99e3-115a91680adf", - "title": "Top ETFs HK" - }, - "top_etfs_in": { - "desc": "ETFs ordered by Percent Change for IN region", - "id": "658effc7-8feb-4c65-9721-451e941be158", - "title": "Top ETFs IN" - }, - "top_etfs_us": { - "desc": "ETFs ordered by Percent Change for US region", - "id": "b34d612c-4204-4fd5-b0c4-2fca8b596411", - "title": "Top ETFs US" - }, - "top_mutual_funds": { - "desc": "Funds with Performance Rating of 4 & 5 ordered by Percent Change", - "id": "2ca6caed-e715-4fec-986a-fe68599160d9", - "title": "Top Mutual Funds" - }, - "top_mutual_funds_au": { - "desc": "Funds with Performance Rating of 4 & 5 ordered by Percent Change for AU region", - "id": "ae9de583-95cc-4269-821f-31a6a19febae", - "title": "Top Mutual funds AU" - }, - "top_mutual_funds_br": { - "desc": "Funds with Performance Rating of 4 & 5 ordered by Percent Change for BR region", - "id": "89d702fb-8a14-4f54-8ded-86da666a8d0b", - "title": "Top Mutual funds BR" - }, - "top_mutual_funds_ca": { - "desc": "Mutual Funds ordered by Percent Change for CA region", - "id": "71f592c6-6dce-4508-953a-311bfe76d0bc", - "title": "Top Mutual Funds CA" - }, - "top_mutual_funds_de": { - "desc": "Funds with Performance Rating of 4 & 5 ordered by Percent Change for DE region", - "id": "21c3ea5b-9d0d-47ef-b12c-efa620c28c7f", - "title": "Top Mutual funds DE" - }, - "top_mutual_funds_es": { - "desc": "Mutual Funds ordered by Percent Change for ES region", - "id": "3cb76596-ccf6-4bdf-9d37-93ac03515334", - "title": "Top Mutual funds ES" - }, - "top_mutual_funds_fr": { - "desc": "MutualFunds ordered by Percent Change for FR region", - "id": "a58a9112-738c-4c59-afc2-b5f94ea923a8", - "title": "Top Mutual Funds FR" - }, - "top_mutual_funds_gb": { - "desc": "Funds with Performance Rating of 4 & 5 ordered by Percent Change for GB region", - "id": "8214a99f-4992-4e6a-9eab-1b68ba8124cf", - "title": "Top Mutual funds GB" - }, - "top_mutual_funds_hk": { - "desc": "MutualFunds ordered by Percent Change for HK region", - "id": "b6e7a9e9-56d5-499b-b4af-018f45a65cd5", - "title": "Top Mutual Funds HK" - }, - "top_mutual_funds_in": { - "desc": "Top Mutual funds for India", - "id": "1d7eb3bf-ba14-4eae-b09c-b72c772bd995", - "title": "Top Mutual funds for India" - }, - "top_mutual_funds_it": { - "desc": "MutualFunds ordered by Percent Change for IT region", - "id": "dc43d757-d6c1-4129-bcf4-64e2fdd56472", - "title": "Top Mutual Funds IT" - }, - "top_mutual_funds_nz": { - "desc": "Funds with Performance Rating of 4 & 5 ordered by Percent Change for NZ region", - "id": "5a740873-637d-4895-bd5e-038a0d189025", - "title": "Top Mutual funds NZ" - }, - "top_mutual_funds_sg": { - "desc": "Funds with Performance Rating of 4 & 5 ordered by Percent Change for SG region", - "id": "c36f090e-98c0-40de-8cca-060e4d123304", - "title": "Top Mutual funds SG" - }, - "top_mutual_funds_us": { - "desc": "Funds with Performance Rating of 4 & 5 ordered by Percent Change for US region", - "id": "b749fa8b-a782-4e64-9224-1ad76e8f3d6c", - "title": "Top Mutual funds US" - }, - "top_options_implied_volatality": { - "desc": "Discover the options with the highest implied volatility.", - "id": "671c40b0-5ea8-4063-89b9-9db45bf9edf0", - "title": "Highest Implied Volatility" - }, - "top_options_open_interest": { - "desc": "Discover the options with the highest open interest.", - "id": "65f51cea-8dc8-4e56-9f99-6ef7720eb69c", - "title": "Highest Open Interest" - }, - "top_performing_etfs": { - "desc": "Uncover the ETFs with a Morningstar Performance Rating of 4 or 5.", - "id": "540ecf9c-5233-41d7-8adb-3daa5962ffe5", - "title": "Top Performing" - }, - "top_performing_etfs_asia": { - "desc": "Uncover the ETFs with a Morningstar Performance Rating of 4 or 5.", - "id": "83cd34b7-7372-473e-97d7-1b9351203da7", - "title": "Top Performing" - }, - "top_performing_etfs_europe": { - "desc": "Uncover the ETFs with a Morningstar Performance Rating of 4 or 5.", - "id": "416d6a69-a3e6-4de9-8cd2-b551b2bdafb3", - "title": "Top Performing" - }, - "top_performing_mutual_funds": { - "desc": "Uncover the mutual funds with a Morningstar Performance Rating of 4 or 5.", - "id": "5ad812ec-0e30-4d5e-a37b-72c96ff8a6f5", - "title": "Top Performing" - }, - "top_performing_mutual_funds_asia": { - "desc": "Uncover the mutual funds with a Morningstar Performance Rating of 4 or 5.", - "id": "cca0a3c4-caf1-4849-93b1-17db6dc7dc8a", - "title": "Top Performing" - }, - "top_performing_mutual_funds_europe": { - "desc": "Uncover the mutual funds with a Morningstar Performance Rating of 4 or 5.", - "id": "0e910bbb-a6c4-4cb4-a4e5-d0a6881f0aee", - "title": "Top Performing" - }, - "top_stocks_owned_by_cathie_wood": { - "desc": "Cathie Wood's top holdings as reported on her 13F filings.", - "id": "d70e5ae4-8714-4570-bfb5-2fe3915a51dc", - "title": "Top Stocks owned by Cathie Wood" - }, - "top_stocks_owned_by_goldman_sachs": { - "desc": "Goldman Sachs's top holdings as reported on their 13F filings.", - "id": "26ff040e-7287-453c-b29b-3239530a71bd", - "title": "Top Stocks owned by Goldman Sachs" - }, - "top_stocks_owned_by_ray_dalio": { - "desc": "Ray Dalio's top holdings as reported on his 13F filings.", - "id": "fe5923a9-47bc-44c3-a48b-394ed78b2384", - "title": "Top Stocks owned by Ray Dalio" - }, - "top_stocks_owned_by_warren_buffet": { - "desc": "Warren Buffet's top holdings as reported on his 13F filings.", - "id": "a83d5ef1-9306-43ee-8123-c4503e9b51ac", - "title": "Top Stocks owned by Warren Buffet" - }, - "travel_services": { - "desc": "Travel Services Stocks", - "id": "e9d2d268-7502-479e-a608-dfeefa90b027", - "title": "Travel Services" - }, - "trucking": { - "desc": "Trucking Stocks", - "id": "44aab0f6-4878-45c3-885f-6c5c3d943c75", - "title": "Trucking" - }, - "undervalued_growth_stocks": { - "desc": "Stocks with earnings growth rates better than 25% and relatively low PE and PEG ratios.", - "id": "b597175e-7243-4b42-82da-6811218a0945", - "title": "Undervalued Growth Stocks" - }, - "undervalued_large_caps": { - "desc": "Large cap stocks that are potentially undervalued, ordered descending by volume", - "id": "e31b19b8-efe0-4ed1-8856-7715c2ef858d", - "title": "Potentially undervalued large cap stocks" - }, - "undervalued_wide_moat_stocks": { - "desc": "Morningstar's undervalued stocks with a sustainable competitive advantage. A company with a wide economic moat can fend off competition for at least 20 years and earn high returns on capital for many years to come.", - "id": "0eaa1603-5d0a-427d-80f2-c69087dba4de", - "title": "Undervalued Wide-Moat Stocks" - }, - "upside_breakout_stocks_daily": { - "desc": "Upside breakout stocks on a daily chart by Trading Central", - "id": "c8d23d60-84e3-4f32-8bca-fb2f04251390", - "title": "Upside Breakout Stocks" - }, - "uranium": { - "desc": "Uranium Stocks", - "id": "c5467aa6-39ac-4ec3-bc0b-213e72ae9149", - "title": "Uranium" - }, - "utilities_diversified": { - "desc": "Utilities—Diversified Stocks", - "id": "ba4e7e3d-d570-4d48-a85f-a81321233703", - "title": "Utilities—Diversified" - }, - "utilities_independent_power_producers": { - "desc": "Utilities—Independent Power Producers Stocks", - "id": "ca979acd-b141-490a-b9e4-f5e03d23f7f9", - "title": "Utilities—Independent Power Producers" - }, - "utilities_regulated_electric": { - "desc": "Utilities—Regulated Electric Stocks", - "id": "d15b8324-aa7d-421c-9da3-51a2e963bbda", - "title": "Utilities—Regulated Electric" - }, - "utilities_regulated_gas": { - "desc": "Utilities—Regulated Gas Stocks", - "id": "7af3cba2-209a-4efd-968a-332e4e0bd0a3", - "title": "Utilities—Regulated Gas" - }, - "utilities_regulated_water": { - "desc": "Utilities—Regulated Water Stocks", - "id": "74930302-d4d3-4425-933b-4ef26a41a446", - "title": "Utilities—Regulated Water" - }, - "utilities_renewable": { - "desc": "Utilities—Renewable Stocks", - "id": "5fd7ee7b-4966-4db3-b427-d87b3cd0995a", - "title": "Utilities—Renewable" - }, - "waste_management": { - "desc": "Waste Management Stocks", - "id": "76d69c29-2f57-4606-88f8-7fbbc2442430", - "title": "Waste Management" - } -} \ No newline at end of file + "advertising_agencies": { + "desc": "Advertising Agencies Stocks", + "id": "b184527b-0fab-4477-b961-af240928f1cc", + "title": "Advertising Agencies", + }, + "aerospace_defense": { + "desc": "Aerospace & Defense Stocks", + "id": "eba4a585-3a33-456e-9c68-eb79d915790d", + "title": "Aerospace & Defense", + }, + "aggressive_small_caps": { + "desc": "Small cap stocks with high earnings growth rates", + "id": "af57f75b-eb22-4565-a604-5eb8744dd35c", + "title": "Aggresive small cap stocks", + }, + "agricultural_inputs": { + "desc": "Agricultural Inputs Stocks", + "id": "3ca22da1-1e29-48f3-975a-6d66a9a7d952", + "title": "Agricultural Inputs", + }, + "airlines": { + "desc": "Airlines Stocks", + "id": "a4a695cf-8fb0-4961-a82e-a353cc15ee1a", + "title": "Airlines", + }, + "airports_air_services": { + "desc": "Airports & Air Services Stocks", + "id": "bba6400e-3d72-4a6a-a813-d91b0724a17c", + "title": "Airports & Air Services", + }, + "all_cryptocurrencies_au": { + "desc": "Cryptocurrencies ordered in descending order by intraday marketcap", + "id": "d4146c38-dd86-418c-b043-82858b3c472d", + "title": "All Cryptocurrencies", + }, + "all_cryptocurrencies_ca": { + "desc": "Cryptocurrencies ordered in descending order by intraday marketcap", + "id": "7d701aca-d272-4d62-8921-fbdf3a5e90cd", + "title": "All Cryptocurrencies", + }, + "all_cryptocurrencies_eu": { + "desc": "Cryptocurrencies ordered in descending order by intraday marketcap", + "id": "56d93251-dc99-492c-b7a9-4335a103c788", + "title": "All Cryptocurrencies", + }, + "all_cryptocurrencies_gb": { + "desc": "Cryptocurrencies ordered in descending order by intraday marketcap", + "id": "b4ee2223-1076-4666-9348-76ec467e6f05", + "title": "All Cryptocurrencies", + }, + "all_cryptocurrencies_in": { + "desc": "Cryptocurrencies ordered in descending order by intraday marketcap", + "id": "ab1f1b1f-e355-49e2-b316-341db363f627", + "title": "All Cryptocurrencies", + }, + "all_cryptocurrencies_us": { + "desc": "Cryptocurrencies ordered in descending order by intraday marketcap", + "id": "80046292-2898-474e-841c-7866e4f2fc80", + "title": "All Cryptocurrencies", + }, + "aluminum": { + "desc": "Aluminum Stocks", + "id": "230d75b6-95a2-4a17-ac0e-35e4b1caca3d", + "title": "Aluminum", + }, + "analyst_strong_buy_stocks": { + "desc": "Stocks with a minimum upside potential of 20% backed by an analyst's strong buy rating.", + "id": "704d5655-c714-47a3-a280-069b439d252b", + "title": "Analyst Strong Buy Stocks", + }, + "apparel_manufacturing": { + "desc": "Apparel Manufacturing Stocks", + "id": "97cd324b-b40b-4723-86bd-10e058a50677", + "title": "Apparel Manufacturing", + }, + "apparel_retail": { + "desc": "Apparel Retail Stocks", + "id": "70642ef2-5ff3-4c36-abb0-bfc11c4ccdbb", + "title": "Apparel Retail", + }, + "asset_management": { + "desc": "Asset Management Stocks", + "id": "596c9db6-82cd-47f1-a34a-0f28d8037041", + "title": "Asset Management", + }, + "auto_manufacturers": { + "desc": "Auto Manufacturers Stocks", + "id": "2110abca-fdda-4285-b5db-3cbae61413b5", + "title": "Auto Manufacturers", + }, + "auto_parts": { + "desc": "Auto Parts Stocks", + "id": "8549ed2c-0b33-48f9-9c0e-bd07c39139b2", + "title": "Auto Parts", + }, + "auto_truck_dealerships": { + "desc": "Auto & Truck Dealerships Stocks", + "id": "5b41c320-8868-4e11-9e7a-09bf625a0c59", + "title": "Auto & Truck Dealerships", + }, + "banks_diversified": { + "desc": "Banks—Diversified Stocks", + "id": "983efda1-e27e-4900-9854-9c1acb54fdd4", + "title": "Banks—Diversified", + }, + "banks_regional": { + "desc": "Banks—Regional Stocks", + "id": "8699101a-3199-4f9b-9431-49dcd7d7014c", + "title": "Banks—Regional", + }, + "bearish_stocks_right_now": { + "desc": "Most recent stocks with a bearish technical pattern detected by Trading Central.", + "id": "c2670236-c8bf-459e-a470-668759e02c26", + "title": "Bearish Stocks Right Now", + }, + "best_hist_performance_etfs": { + "desc": "Discover the ETFs that have performed the best over the past 5 years.", + "id": "698f8496-3a8b-4d9d-b2c5-6aa86923b2f6", + "title": "Best Historical Performance", + }, + "best_hist_performance_etfs_asia": { + "desc": "Discover the ETFs that have performed the best over the past 5 years.", + "id": "82cfe7c1-9fe6-42b6-bae4-75edfe1198ef", + "title": "Best Historical Performance", + }, + "best_hist_performance_etfs_europe": { + "desc": "Discover the ETFs that have performed the best over the past 5 years.", + "id": "392fa414-a68d-4dd2-935d-3bb00de31c14", + "title": "Best Historical Performance", + }, + "best_hist_performance_mutual_funds": { + "desc": "Discover the mutual funds that have performed the best over the past 5 years.", + "id": "5fd3a59e-2798-4324-ac78-2fb3c8691c80", + "title": "Best Historical Performance", + }, + "best_hist_performance_mutual_funds_asia": { + "desc": "Discover the mutual funds that have performed the best over the past 5 years.", + "id": "70b50d4d-6a67-427e-9ff5-bf62dcfcea18", + "title": "Best Historical Performance", + }, + "best_hist_performance_mutual_funds_europe": { + "desc": "Discover the mutual funds that have performed the best over the past 5 years.", + "id": "c7bb7c3f-9c49-4bc8-9cac-3ec107e8cbfa", + "title": "Best Historical Performance", + }, + "beverages_brewers": { + "desc": "Beverages—Brewers Stocks", + "id": "3c0198c0-4e49-4715-9ca5-393dcfdef169", + "title": "Beverages—Brewers", + }, + "beverages_non_alcoholic": { + "desc": "Beverages—Non-Alcoholic Stocks", + "id": "1afefde6-58a3-4053-94a0-0715584463ff", + "title": "Beverages—Non-Alcoholic", + }, + "beverages_wineries_distilleries": { + "desc": "Beverages—Wineries & Distilleries Stocks", + "id": "dc49a372-2dd8-4eb0-9107-4088f74b9237", + "title": "Beverages—Wineries & Distilleries", + }, + "biotechnology": { + "desc": "Biotechnology Stocks", + "id": "6fed185c-ed1b-469a-916b-fc1ea70727cf", + "title": "Biotechnology", + }, + "bond_etfs": { + "desc": "Discover bond-focused ETFs.", + "id": "ae3af3ed-c086-418a-8d2a-c689605656b4", + "title": "Bond ETFs", + }, + "bond_mutual_funds": { + "desc": "Discover bond-focused mutual funds.", + "id": "f79d84da-3ca1-403c-ac0f-0424ee0cb33b", + "title": "Bond Mutual Funds", + }, + "bond_mutual_funds_asia": { + "desc": "Discover bond-focused mutual funds.", + "id": "be50285c-ce13-4351-99c6-934e122cfcb4", + "title": "Bond Mutual Funds", + }, + "bond_mutual_funds_europe": { + "desc": "Discover bond-focused mutual funds.", + "id": "9de06523-b236-4982-9f68-0e5b9895ae00", + "title": "Bond Mutual Funds", + }, + "broadcasting": { + "desc": "Broadcasting Stocks", + "id": "46e29339-b0aa-4039-ba50-451c0670ac3a", + "title": "Broadcasting", + }, + "building_materials": { + "desc": "Building Materials Stocks", + "id": "c1e3cbbe-c6ed-417d-ac18-b2803513f6f3", + "title": "Building Materials", + }, + "building_products_equipment": { + "desc": "Building Products & Equipment Stocks", + "id": "7013ce43-4b66-47b3-aa34-1f0ff3cbb2f7", + "title": "Building Products & Equipment", + }, + "bullish_stocks_right_now": { + "desc": "Most recent stocks with a bullish technical pattern detected by Trading Central.", + "id": "663e975d-9bf1-424a-9ce1-634cea6648d6", + "title": "Bullish Stocks Right Now", + }, + "business_equipment_supplies": { + "desc": "Business Equipment & Supplies Stocks", + "id": "c224f924-ccd6-4423-b45d-118e7d597161", + "title": "Business Equipment & Supplies", + }, + "capital_markets": { + "desc": "Capital Markets Stocks", + "id": "d4dc9b04-79ed-4cb9-b3a8-67c9f5c93e2e", + "title": "Capital Markets", + }, + "cheapest_etfs": { + "desc": "Uncover ETFs which report the cheapest Annual Net Expense Ratio.", + "id": "609681e0-857e-4168-9944-d2afa7a5e3eb", + "title": "Cheapest ETFs", + }, + "cheapest_etfs_asia": { + "desc": "Uncover ETFs which report the cheapest Annual Net Expense Ratio.", + "id": "612e4c2f-83cc-45d6-80d1-b851d3916e4f", + "title": "Cheapest ETFs", + }, + "cheapest_etfs_europe": { + "desc": "Uncover ETFs which report the cheapest Annual Net Expense Ratio.", + "id": "93ce8617-984a-4bec-9256-4c832fff8ceb", + "title": "Cheapest ETFs", + }, + "cheapest_mutual_funds": { + "desc": "Uncover mutual funds which report the cheapest Annual Net Expense Ratio.", + "id": "e0467260-410a-49c0-9320-da5fbf2a3e73", + "title": "Cheapest Mutual Funds", + }, + "cheapest_mutual_funds_asia": { + "desc": "Uncover mutual funds which report the cheapest Annual Net Expense Ratio.", + "id": "e0cdbbb3-6a87-4e1b-82c6-ae5d4eb40bb1", + "title": "Cheapest Mutual Funds", + }, + "cheapest_mutual_funds_europe": { + "desc": "Uncover mutual funds which report the cheapest Annual Net Expense Ratio.", + "id": "d63697a6-2488-42f1-8471-90d564f95fee", + "title": "Cheapest Mutual Funds", + }, + "chemicals": { + "desc": "Chemicals Stocks", + "id": "78341de7-2e70-4ff0-9347-d23c731bd87f", + "title": "Chemicals", + }, + "coking_coal": { + "desc": "Coking Coal Stocks", + "id": "165835db-e7c6-4c17-8fce-e5e6829105c7", + "title": "Coking Coal", + }, + "commodity_etfs": { + "desc": "Discover commodity-focused ETFs.", + "id": "6ab335b4-61e8-4d88-86a6-30f1c6c94fa7", + "title": "Commodity ETFs", + }, + "commodity_etfs_asia": { + "desc": "Discover commodity-focused ETFs.", + "id": "f5658ccd-911e-4490-b4c4-78c2dad9ae83", + "title": "Commodity ETFs", + }, + "commodity_etfs_europe": { + "desc": "Discover commodity-focused ETFs.", + "id": "9491c51d-3b6f-48ca-8a6d-6236ee092433", + "title": "Commodity ETFs", + }, + "commodity_mutual_funds": { + "desc": "Discover commodity-focused mutual funds.", + "id": "ca67a1b3-572c-433c-b1a4-a0da3738fc14", + "title": "Commodity Metal Mutual Funds", + }, + "communication_equipment": { + "desc": "Communication Equipment Stocks", + "id": "b750cbb5-d76b-4786-9ec8-ad6ca68a26b8", + "title": "Communication Equipment", + }, + "community_sentiment_most_bearish": { + "desc": "Community Sentiment Most Bearish", + "id": "772fad60-f176-4333-ac4a-af8de320e277", + "title": "Community Sentiment Most Bearish", + }, + "community_sentiment_most_bullish": { + "desc": "Community Sentiment Most Bullish", + "id": "0e85bb19-703c-44a3-b3a3-e9febb3e07e4", + "title": "Community Sentiment Most Bullish", + }, + "computer_hardware": { + "desc": "Computer Hardware Stocks", + "id": "0f691c9d-a971-4a36-936f-9135f87ff6f0", + "title": "Computer Hardware", + }, + "confectioners": { + "desc": "Confectioners Stocks", + "id": "66e04ede-6ddd-4cf5-b3f0-b25666495296", + "title": "Confectioners", + }, + "conglomerates": { + "desc": "Conglomerates Stocks", + "id": "a54ed4a5-cc92-4171-9bc7-24ce06ad5b4f", + "title": "Conglomerates", + }, + "conservative_foreign_funds": { + "desc": "Foreign funds with Performance Rating of 4 & 5, low risk and top-half returns", + "id": "86de34fe-ba77-4c36-be03-19c5d7cf4462", + "title": "Conservative Foreign Funds", + }, + "consulting_services": { + "desc": "Consulting Services Stocks", + "id": "2f05d6e4-7b4d-44e0-9e25-4bc8ad1011fb", + "title": "Consulting Services", + }, + "consumer_electronics": { + "desc": "Consumer Electronics Stocks", + "id": "f4cc7ac5-4c1a-40e5-9271-1e8c59a29bfa", + "title": "Consumer Electronics", + }, + "copper": { + "desc": "Copper Stocks", + "id": "657a2af8-2b4f-4f10-9f36-1e9e14f3aab4", + "title": "Copper", + }, + "credit_services": { + "desc": "Credit Services Stocks", + "id": "08680af3-e653-43a4-b704-b87a20c6716b", + "title": "Credit Services", + }, + "day_gainers": { + "desc": "Discover the equities with the greatest gains in the trading day.", + "id": "ec5bebb9-b7b2-4474-9e5c-3e258b61cbe6", + "title": "Day Gainers", + }, + "day_gainers_americas": { + "desc": "stocks ordered in descending order by price percent change greater than 3% with respect to the previous close", + "id": "0bfef98d-1a4b-449a-9049-737656446e7c", + "title": "Day Gainers Americas", + }, + "day_gainers_asia": { + "desc": "Discover the equities with the greatest gains in the trading day.", + "id": "fe852975-302e-413a-bd9c-7a2d602645e9", + "title": "Day Gainers", + }, + "day_gainers_au": { + "desc": "Stocks ordered in descending order by price percent change greater than 2.5% with respect to the previous close for Australia", + "id": "d0907194-0b84-44d8-8005-054546c8f66b", + "title": "Day Gainers - Australia", + }, + "day_gainers_br": { + "desc": "Stocks ordered in descending order by price percent change greater than 3% with respect to the previous close", + "id": "8fd79848-c838-46bc-986c-7b97414e7d76", + "title": "Day Gainers - Brazil", + }, + "day_gainers_ca": { + "desc": "Stocks ordered in descending order by price percent change greater than 2.5% with respect to the previous close for Canada", + "id": "4a047ba4-ba4e-4372-8327-202083a89057", + "title": "Day Gainers - Canada", + }, + "day_gainers_cryptocurrencies": { + "desc": "Discover the cryptocurrencies with the greatest gains in the last 24 hours.", + "id": "79c584ec-a1bc-443a-9330-272abd5f696c", + "title": "Day Gainers", + }, + "day_gainers_de": { + "desc": "Stocks ordered in descending order by price percent change greater than 2.5% with respect to the previous close for Germany", + "id": "62764a5a-a47b-4a0d-b72a-f454e7b8acfb", + "title": "Day Gainers - Germany", + }, + "day_gainers_dji": { + "desc": "Day Gainers - Dow Jones Industrials", + "id": "9e621bd5-9a7e-4d00-869d-1b1e1b05afd0", + "title": "Day Gainers - Dow Jones Industrials", + }, + "day_gainers_es": { + "desc": "Stocks ordered in descending order by price percent change greater than 2.5% with respect to the previous close for Spain", + "id": "c50cfd23-75cc-4549-8c57-5029e10f962c", + "title": "Day Gainers - Spain", + }, + "day_gainers_etfs": { + "desc": "Discover the ETFs with the greatest gains in the trading day.", + "id": "2249f0f3-2844-4541-9e6d-3d78527388e2", + "title": "Day Gainers", + }, + "day_gainers_etfs_asia": { + "desc": "Discover the ETFs with the greatest gains in the trading day.", + "id": "c80798fa-27bc-4a09-93c8-2aee34dd5f1f", + "title": "Day Gainers", + }, + "day_gainers_etfs_europe": { + "desc": "Discover the ETFs with the greatest gains in the trading day.", + "id": "774befd7-6ffe-4f5b-83ed-3aeb8be8b161", + "title": "Day Gainers", + }, + "day_gainers_europe": { + "desc": "Discover the equities with the greatest gains in the trading day.", + "id": "43463575-8b42-4762-9d7e-705588a25dcd", + "title": "Day Gainers", + }, + "day_gainers_fr": { + "desc": "Stocks ordered in descending order by price percent change greater than 2.5% with respect to the previous close for France", + "id": "9b598d0d-18d5-406e-a807-98d3e63c6afb", + "title": "Day Gainers - France", + }, + "day_gainers_gb": { + "desc": "Stocks ordered in descending order by price percent change greater than 2.5% with respect to the previous close for United Kingdom", + "id": "97b9075b-c5ab-4c85-bfd3-9694a061e5d2", + "title": "Day Gainers - United Kingdom", + }, + "day_gainers_hk": { + "desc": "Stocks ordered in descending order by price percent change greater than 2.5% with respect to the previous close for Hong Kong", + "id": "93505957-f2ce-4666-8f7c-91275819b5f6", + "title": "Day Gainers - Hong Kong", + }, + "day_gainers_in": { + "desc": "Stocks ordered in descending order by price percent change greater than 2.5% with respect to the previous close for India", + "id": "134b914f-e393-4b2e-a824-b4be15517cd8", + "title": "Day Gainers - India", + }, + "day_gainers_it": { + "desc": "Stocks ordered in descending order by price percent change greater than 2.5% with respect to the previous close for Italy", + "id": "9c86c7ac-c474-40d9-8912-1906cfc6cc1c", + "title": "Day Gainers - Italy", + }, + "day_gainers_mutual_funds": { + "desc": "Discover the mutual funds with the greatest gains in the trading day.", + "id": "3f7601e3-e6c6-49fa-863b-7dc58dc325b0", + "title": "Day Gainers", + }, + "day_gainers_mutual_funds_asia": { + "desc": "Discover the mutual funds with the greatest gains in the trading day.", + "id": "ce6aa148-51d9-4652-bddb-92265276eca4", + "title": "Day Gainers", + }, + "day_gainers_mutual_funds_europe": { + "desc": "Discover the mutual funds with the greatest gains in the trading day.", + "id": "f2b8b8f0-cf13-4e5a-8222-e39d8b1d1c47", + "title": "Day Gainers", + }, + "day_gainers_ndx": { + "desc": "Day Gainers - NASDAQ 100", + "id": "d1d6e2ab-ca6f-4a7d-a2f2-d872efc816ef", + "title": "Day Gainers - NASDAQ 100", + }, + "day_gainers_nz": { + "desc": "Stocks ordered in descending order by price percent change greater than 2.5% with respect to the previous close for New Zealand", + "id": "faa6cfcd-cb5d-4dfc-8532-3692ee3cc359", + "title": "Day Gainers - New Zealand", + }, + "day_gainers_options": { + "desc": "Discover the options with the greatest gains in the trading day.", + "id": "39bfd52b-6f5f-40a1-bcc8-31a9728277d8", + "title": "Day Gainers", + }, + "day_gainers_sg": { + "desc": "Stocks ordered in descending order by price percent change greater than 2.5% with respect to the previous close for Singapore", + "id": "4d834f86-c0a9-4211-b7a4-3290011892eb", + "title": "Day Gainers - Singapore", + }, + "day_losers": { + "desc": "Discover the equities with the greatest losses in the trading day.", + "id": "8ecefa87-a8b0-434a-9b39-e061a0baef9b", + "title": "Day Losers", + }, + "day_losers_americas": { + "desc": "stocks ordered in ascending order by price percent change lesser than 2.5% with respect to the previous close", + "id": "0e35eb9f-8cf1-4661-a336-e996c1c6f7f8", + "title": "Day Losers Americas", + }, + "day_losers_asia": { + "desc": "Discover the equities with the greatest losses in the trading day.", + "id": "37df3812-b9ee-41f0-87e4-b5f893f3198d", + "title": "Day Losers", + }, + "day_losers_au": { + "desc": "Stocks ordered in ascending order by price percent change with respect to the previous close for Australia", + "id": "e8e6731f-0eb9-4377-829c-1f61cb670df4", + "title": "Day Losers - Australia", + }, + "day_losers_br": { + "desc": "Stocks ordered in ascending order by price percent change with respect to the previous close for Brazil", + "id": "2dd8e3c9-8755-4d02-9bf3-0dd0640d38f2", + "title": "Day Losers - Brazil", + }, + "day_losers_ca": { + "desc": "Stocks ordered in ascending order by price percent change with respect to the previous close for Canada", + "id": "44c0eb22-33f1-4bf9-b4d0-e940838b47f5", + "title": "Day Losers - Canada", + }, + "day_losers_cryptocurrencies": { + "desc": "Discover the cryptocurrencies with the greatest losses in the last 24 hours.", + "id": "97d663ee-cf91-4f53-8cfa-0b8b580d0b11", + "title": "Day Losers", + }, + "day_losers_de": { + "desc": "Stocks ordered in ascending order by price percent change with respect to the previous close for Germany", + "id": "953e5166-b2b3-471c-a765-4c1c3c15b2da", + "title": "Day Losers - Germany", + }, + "day_losers_dji": { + "desc": "Day Losers - Dow Jones Industrials", + "id": "c95c79eb-8b89-461b-b4cf-680cf77f057e", + "title": "Day Losers - Dow Jones Industrials", + }, + "day_losers_es": { + "desc": "Stocks ordered in ascending order by price percent change with respect to the previous close for Spain", + "id": "80678708-0b02-409b-a378-15965a930d60", + "title": "Day Losers - Spain", + }, + "day_losers_etfs": { + "desc": "Discover the ETFs with the greatest losses in the trading day.", + "id": "d9faac27-b9ef-4f48-be58-6a6549af840f", + "title": "Day Losers", + }, + "day_losers_etfs_asia": { + "desc": "Discover the ETFs with the greatest losses in the trading day.", + "id": "b3439e46-5d04-42c3-8780-4bc4a067bfb9", + "title": "Day Losers", + }, + "day_losers_etfs_europe": { + "desc": "Discover the ETFs with the greatest losses in the trading day.", + "id": "dbe39476-0b84-4333-a1dd-179bd9723a17", + "title": "Day Losers", + }, + "day_losers_europe": { + "desc": "Discover the equities with the greatest losses in the trading day.", + "id": "3dfde79b-6160-4da3-a042-d1a86fd5eff9", + "title": "Day Losers", + }, + "day_losers_fr": { + "desc": "Stocks ordered in ascending order by price percent change with respect to the previous close for France", + "id": "bb9aaa7a-935e-49de-999e-e5b86c9aeefa", + "title": "Day Losers - France", + }, + "day_losers_gb": { + "desc": "Stocks ordered in ascending order by price percent change with respect to the previous close for United Kingdom", + "id": "01a3b7ec-c577-401f-8b19-57d6bbf5ce8e", + "title": "Day Losers - United Kingdom", + }, + "day_losers_hk": { + "desc": "Stocks ordered in ascending order by price percent change with respect to the previous close for Hong Kong", + "id": "5d940688-4853-49bd-a3b3-849ca743ad8c", + "title": "Day Losers - Hong Kong", + }, + "day_losers_in": { + "desc": "Stocks ordered in ascending order by price percent change with respect to the previous close for India", + "id": "d17726f5-6c05-4c80-9cc9-3578febcdb3c", + "title": "Day Losers - India", + }, + "day_losers_it": { + "desc": "Stocks ordered in ascending order by price percent change with respect to the previous close for Italy", + "id": "46677e46-895d-4c5c-a938-577d80df2180", + "title": "Day Losers - Italy", + }, + "day_losers_mutual_funds": { + "desc": "Discover the mutual funds with the greatest losses in the trading day.", + "id": "3e144242-9d1d-48fe-8426-da808ffe6014", + "title": "Day Losers", + }, + "day_losers_mutual_funds_asia": { + "desc": "Discover the mutual funds with the greatest losses in the trading day.", + "id": "988e04b3-7de5-4cee-8665-46182721f9f5", + "title": "Day Losers", + }, + "day_losers_mutual_funds_europe": { + "desc": "Discover the mutual funds with the greatest losses in the trading day.", + "id": "26340ece-9f3b-47aa-ac23-e695b7021a20", + "title": "Day Losers", + }, + "day_losers_ndx": { + "desc": "Day Losers - NASDAQ 100", + "id": "b72e29e8-dfc2-428e-ab3f-e69df2008457", + "title": "Day Losers - NASDAQ 100", + }, + "day_losers_nz": { + "desc": "Stocks ordered in ascending order by price percent change with respect to the previous close for New Zealand", + "id": "ce6dcbd1-c853-402a-90b4-776865c76f5d", + "title": "Day Losers - New Zealand", + }, + "day_losers_options": { + "desc": "Discover the options with the greatest losses in the trading day.", + "id": "ebfe7fdb-1aa8-4350-9308-899e49bd307a", + "title": "Day Losers", + }, + "day_losers_sg": { + "desc": "Stocks ordered in ascending order by price percent change with respect to the previous close for Singapore", + "id": "87813bf9-1d84-4d03-9552-d5ee38666ca4", + "title": "Day Losers - Singapore", + }, + "department_stores": { + "desc": "Department Stores Stocks", + "id": "b5c6a46b-d791-4fa2-a293-46c603515959", + "title": "Department Stores", + }, + "diagnostics_research": { + "desc": "Diagnostics & Research Stocks", + "id": "c77f59d3-f26f-43ce-a844-1bc8115257e6", + "title": "Diagnostics & Research", + }, + "discount_stores": { + "desc": "Discount Stores Stocks", + "id": "9dd246ea-0929-4836-aef2-075e4df38087", + "title": "Discount Stores", + }, + "drug_manufacturers_general": { + "desc": "Drug Manufacturers—General Stocks", + "id": "264a8d31-3229-483a-924b-9660bf869f32", + "title": "Drug Manufacturers—General", + }, + "drug_manufacturers_specialty_generic": { + "desc": "Drug Manufacturers—Specialty & Generic Stocks", + "id": "4b782d93-7013-4184-bdd5-61b770c33059", + "title": "Drug Manufacturers—Specialty & Generic", + }, + "education_training_services": { + "desc": "Education & Training Services Stocks", + "id": "0f996a22-ccbf-43ff-81fa-d1c1e4a003c1", + "title": "Education & Training Services", + }, + "electrical_equipment_parts": { + "desc": "Electrical Equipment & Parts Stocks", + "id": "ab10085a-581b-46f5-9950-c663b63414d2", + "title": "Electrical Equipment & Parts", + }, + "electronic_components": { + "desc": "Electronic Components Stocks", + "id": "9a59374c-9f17-45bc-b60f-fde16cd9dd00", + "title": "Electronic Components", + }, + "electronic_gaming_multimedia": { + "desc": "Electronic Gaming & Multimedia Stocks", + "id": "8941e1e5-baf7-407b-8015-926ae079241e", + "title": "Electronic Gaming & Multimedia", + }, + "electronics_computer_distribution": { + "desc": "Electronics & Computer Distribution Stocks", + "id": "917e3a6a-04e3-45bc-96c2-f13a384965c4", + "title": "Electronics & Computer Distribution", + }, + "engineering_construction": { + "desc": "Engineering & Construction Stocks", + "id": "826440a9-075c-483a-9f49-5c088317d8b5", + "title": "Engineering & Construction", + }, + "entertainment": { + "desc": "Entertainment Stocks", + "id": "95861fa9-815d-456b-8057-7ba3be5fd3c8", + "title": "Entertainment", + }, + "equity_mutual_funds": { + "desc": "Discover mutual funds which are made up of at least 70% equities.", + "id": "b3c7923a-b55e-40bc-b4b8-3d92dc3c6bfe", + "title": "Equity Mutual Funds", + }, + "farm_heavy_construction_machinery": { + "desc": "Farm & Heavy Construction Machinery Stocks", + "id": "41805c11-aedb-4e23-8fed-50a6a543cea4", + "title": "Farm & Heavy Construction Machinery", + }, + "farm_products": { + "desc": "Farm Products Stocks", + "id": "11692c0c-3cbe-46cc-87a6-70fb77c65723", + "title": "Farm Products", + }, + "fifty_two_wk_gainers": { + "desc": "Discover the equities with the greatest gains in the last 52 weeks.", + "id": "2958f760-5f00-4e7d-97be-d2d75d161e24", + "title": "52-Week Gainers", + }, + "fifty_two_wk_gainers_asia": { + "desc": "Discover the equities with the greatest gains in the last 52 weeks.", + "id": "ac6e41c4-2901-4e5a-9305-58f87babb48d", + "title": "52-Week Gainers", + }, + "fifty_two_wk_gainers_cryptocurrencies": { + "desc": "Discover the cryptocurrencies with the greatest gains in the last 52 weeks.", + "id": "d3a99fd0-1ff6-4307-a25b-a05678704f25", + "title": "52-Week Gainers", + }, + "fifty_two_wk_gainers_etfs": { + "desc": "Discover the ETFs with the greatest gains in the last 52 weeks.", + "id": "2a262fab-c342-4653-9c4b-14728b7bceab", + "title": "52-Week Gainers", + }, + "fifty_two_wk_gainers_etfs_asia": { + "desc": "Discover the ETFs with the greatest gains in the last 52 weeks.", + "id": "cfb86eb7-0e2e-40e4-b2a9-2a63e2b59a2f", + "title": "52-Week Gainers", + }, + "fifty_two_wk_gainers_etfs_europe": { + "desc": "Discover the ETFs with the greatest gains in the last 52 weeks.", + "id": "69a6b655-f3c9-45b0-a28d-9077661c7c04", + "title": "52-Week Gainers", + }, + "fifty_two_wk_gainers_europe": { + "desc": "Discover the equities with the greatest gains in the last 52 weeks.", + "id": "ae4ff65c-3cf1-48ea-aa10-de00472d0e30", + "title": "52-Week Gainers", + }, + "fifty_two_wk_gainers_mutual_funds": { + "desc": "Discover the mutual funds with the greatest gains in the last 52 weeks.", + "id": "5cad2dcc-0ec1-4c97-bc72-0244e3c2bbdf", + "title": "52-Week Gainers", + }, + "fifty_two_wk_gainers_mutual_funds_asia": { + "desc": "Discover the mutual funds with the greatest gains in the last 52 weeks.", + "id": "c162235a-4624-4301-849f-c34c40d7b7cc", + "title": "52-Week Gainers", + }, + "fifty_two_wk_gainers_mutual_funds_europe": { + "desc": "Discover the mutual funds with the greatest gains in the last 52 weeks.", + "id": "38bac306-de8a-4ae4-858f-0f959e1ea961", + "title": "52-Week Gainers", + }, + "fifty_two_wk_losers": { + "desc": "Discover the equities with the greatest losses in the last 52 weeks.", + "id": "5176dd5b-d919-4d85-a687-c71326d2de92", + "title": "52-Week Losers", + }, + "fifty_two_wk_losers_asia": { + "desc": "Discover the equities with the greatest losses in the last 52 weeks.", + "id": "1417ea6b-99c2-4bcd-8956-57a43da68646", + "title": "52-Week Losers", + }, + "fifty_two_wk_losers_cryptocurrencies": { + "desc": "Discover the cryptocurrencies with the greatest losses in the last 52 weeks.", + "id": "6248a532-2d42-4a05-bbb8-ee745f3aaee8", + "title": "52-Week Losers", + }, + "fifty_two_wk_losers_etfs": { + "desc": "Discover the ETFs with the greatest losses in the last 52 weeks.", + "id": "23ce67d2-e283-4fbe-ab5b-089102afe9e2", + "title": "52-Week Losers", + }, + "fifty_two_wk_losers_etfs_asia": { + "desc": "Discover the ETFs with the greatest losses in the last 52 weeks.", + "id": "85d56d74-8e28-442e-b0fb-51cb75691270", + "title": "52-Week Losers", + }, + "fifty_two_wk_losers_etfs_europe": { + "desc": "Discover the ETFs with the greatest losses in the last 52 weeks.", + "id": "758ee256-c89f-4f6c-bac6-7cccb13d7f40", + "title": "52-Week Losers", + }, + "fifty_two_wk_losers_europe": { + "desc": "Discover the equities with the greatest losses in the last 52 weeks.", + "id": "de97db3f-6b73-4b0c-b85a-1279d4079d93", + "title": "52-Week Losers", + }, + "fifty_two_wk_losers_mutual_funds": { + "desc": "Discover the mutual funds with the greatest losses in the last 52 weeks.", + "id": "d0d2d56f-0b6d-48fe-a1cd-e3063ee14132", + "title": "52-Week Losers", + }, + "fifty_two_wk_losers_mutual_funds_asia": { + "desc": "Discover the mutual funds with the greatest losses in the last 52 weeks.", + "id": "02f70157-2018-4b44-9ee7-3f8e5201d402", + "title": "52-Week Losers", + }, + "fifty_two_wk_losers_mutual_funds_europe": { + "desc": "Discover the mutual funds with the greatest losses in the last 52 weeks.", + "id": "27dc6a8b-1ac0-4a5e-87d0-dcaa4160d0e5", + "title": "52-Week Losers", + }, + "financial_conglomerates": { + "desc": "Financial Conglomerates Stocks", + "id": "3d48d904-53ab-456a-ba55-020be6a82445", + "title": "Financial Conglomerates", + }, + "financial_data_stock_exchanges": { + "desc": "Financial Data & Stock Exchanges Stocks", + "id": "c42b137d-6d9c-4c16-8822-49b74ffcf8ec", + "title": "Financial Data & Stock Exchanges", + }, + "food_distribution": { + "desc": "Food Distribution Stocks", + "id": "e5e6e726-58d0-4080-bce2-812854ab3d87", + "title": "Food Distribution", + }, + "footwear_accessories": { + "desc": "Footwear & Accessories Stocks", + "id": "fdc83b05-5a96-4e33-aa85-51191ca69295", + "title": "Footwear & Accessories", + }, + "furnishings_fixtures_appliances": { + "desc": "Furnishings, Fixtures & Appliances Stocks", + "id": "71710d80-fd39-4ba1-96b4-df8826e2f91f", + "title": "Furnishings, Fixtures & Appliances", + }, + "gambling": { + "desc": "Gambling Stocks", + "id": "189dfab8-6cd6-4838-a13a-c3551c6ae0b2", + "title": "Gambling", + }, + "gold": { + "desc": "Gold Stocks", + "id": "f5d2411d-4fe6-4904-867e-f01ce9b99740", + "title": "Gold", + }, + "grocery_stores": { + "desc": "Grocery Stores Stocks", + "id": "92b77f75-05ee-4662-93cc-60002d8b7a63", + "title": "Grocery Stores", + }, + "growth_technology_stocks": { + "desc": "Technology stocks with revenue and earnings growth in excess of 25%.", + "id": "e0c43708-7fa1-4f02-9425-697c0443d32f", + "title": "Growth Technology Stocks", + }, + "health_information_services": { + "desc": "Health Information Services Stocks", + "id": "efaac38f-c789-4a6a-92ec-111077f4af8a", + "title": "Health Information Services", + }, + "healthcare_plans": { + "desc": "Healthcare Plans Stocks", + "id": "33d768c1-5f65-4896-89ed-d8e7d001c9b8", + "title": "Healthcare Plans", + }, + "high_growth_large_etfs": { + "desc": "Discover large cap, high growth-focused ETFs.", + "id": "092168ea-b0c5-4361-b509-7a3289bcb9d2", + "title": "High growth, Large ETFs", + }, + "high_growth_large_mutual_funds": { + "desc": "Discover large cap, high growth-focused mutual funds.", + "id": "fd0425d1-a9f6-491a-9320-fd37995fbaba", + "title": "High Growth, Large Mutual Funds", + }, + "high_yield_bond": { + "desc": "High Yield Bond with Performance Rating of 4 & 5, low risk and top-half returns", + "id": "d675527c-bc6a-486c-872d-bca43fbb4322", + "title": "High Yield Bond", + }, + "high_yield_high_return": { + "desc": "As popularized by strategies like Greenblatt's Magic Formula, uncover quality equities with a high earnings yield and return on capital.", + "id": "f6ae7898-0c88-489e-897f-b1fc42e211cb", + "title": "High Yield, High Return", + }, + "high_yield_high_return_asia": { + "desc": "As popularized by strategies like Greenblatt's Magic Formula, uncover quality equities with a high earnings yield and return on capital.", + "id": "2e35021d-b56b-4b02-b07a-1174042c4add", + "title": "High Yield, High Return", + }, + "high_yield_high_return_europe": { + "desc": "As popularized by strategies like Greenblatt's Magic Formula, uncover quality equities with a high earnings yield and return on capital.", + "id": "096683a2-e083-4a21-8203-9c4ac116db01", + "title": "High Yield, High Return", + }, + "home_improvement_retail": { + "desc": "Home Improvement Retail Stocks", + "id": "13803724-428d-4fbe-8825-012987d3bdd2", + "title": "Home Improvement Retail", + }, + "household_personal_products": { + "desc": "Household & Personal Products Stocks", + "id": "4b2d4303-6233-41e4-ae0c-ffec11fa34f0", + "title": "Household & Personal Products", + }, + "industrial_distribution": { + "desc": "Industrial Distribution Stocks", + "id": "3a920780-96d6-44d0-87b9-6946886286d8", + "title": "Industrial Distribution", + }, + "information_technology_services": { + "desc": "Information Technology Services Stocks", + "id": "b3631428-79da-4b51-a689-1dc4bf80aec2", + "title": "Information Technology Services", + }, + "infrastructure_operations": { + "desc": "Infrastructure Operations Stocks", + "id": "04696a3f-8c50-48d6-919d-6cde073cac0d", + "title": "Infrastructure Operations", + }, + "insurance_brokers": { + "desc": "Insurance Brokers Stocks", + "id": "d1d36030-5858-4e02-a955-f8b9271e20aa", + "title": "Insurance Brokers", + }, + "insurance_diversified": { + "desc": "Insurance—Diversified Stocks", + "id": "1081c88c-1be2-4f26-a435-ac87883e9ddd", + "title": "Insurance—Diversified", + }, + "insurance_life": { + "desc": "Insurance—Life Stocks", + "id": "da5f094b-418c-4649-8aa1-9bc4ee3d4ca3", + "title": "Insurance—Life", + }, + "insurance_property_casualty": { + "desc": "Insurance—Property & Casualty Stocks", + "id": "b64e6ae9-0b59-4141-921a-2f1bec699e18", + "title": "Insurance—Property & Casualty", + }, + "insurance_reinsurance": { + "desc": "Insurance—Reinsurance Stocks", + "id": "5c932600-a02c-493a-b865-c101c945b388", + "title": "Insurance—Reinsurance", + }, + "insurance_specialty": { + "desc": "Insurance—Specialty Stocks", + "id": "941a8783-8f96-42a1-82ea-a30a60dd704d", + "title": "Insurance—Specialty", + }, + "integrated_freight_logistics": { + "desc": "Integrated Freight & Logistics Stocks", + "id": "7e94aa31-e0fd-4bba-9c01-a4d1fcd80ff6", + "title": "Integrated Freight & Logistics", + }, + "internet_content_information": { + "desc": "Internet Content & Information Stocks", + "id": "92fa63be-f396-43f0-a1d0-93cb109d1b8f", + "title": "Internet Content & Information", + }, + "internet_retail": { + "desc": "Internet Retail Stocks", + "id": "9573ad47-1820-4a52-b244-ddc0edc0db1c", + "title": "Internet Retail", + }, + "large_blend_etfs": { + "desc": "Discover the ETFs with a mix of large cap growth and value stocks.", + "id": "03b61465-e574-4100-b0ba-508ad235c061", + "title": "Large Blend", + }, + "large_blend_mutual_funds": { + "desc": "Discover the mutual funds with a mix of large cap growth and value stocks.", + "id": "7338519d-5dbc-4609-9ab6-627d58253a8a", + "title": "Large Blend", + }, + "largest_market_cap": { + "desc": "Uncover the equities with the largest market cap.", + "id": "e6e3b1e2-65bc-48a1-8274-a06676f3f969", + "title": "Largest Market Cap", + }, + "largest_market_cap_asia": { + "desc": "Uncover the equities with the largest market cap.", + "id": "ad808afe-47db-4905-9bd4-086032bda47f", + "title": "Largest Market Cap", + }, + "largest_market_cap_cryptocurrencies": { + "desc": "Uncover the crypto with the largest market cap.", + "id": "e8ec0193-36cb-4b26-aeba-2eb087fb4b79", + "title": "Largest Market Cap", + }, + "largest_market_cap_europe": { + "desc": "Uncover the equities with the largest market cap.", + "id": "504528d9-365f-4f97-ad08-7240eddd2bef", + "title": "Largest Market Cap", + }, + "latest_analyst_upgraded_stocks": { + "desc": "Most recent stocks that get upgraded by an Analyst.", + "id": "54e61871-8def-46d5-8b71-75baeff8cc89", + "title": "Latest Analyst Upgraded Stocks", + }, + "leisure": { + "desc": "Leisure Stocks", + "id": "fd998bdb-54a6-4352-81c7-3aa40f9b4b81", + "title": "Leisure", + }, + "lodging": { + "desc": "Lodging Stocks", + "id": "af876331-70bf-4cea-8a03-6bb40877e689", + "title": "Lodging", + }, + "low_risk_mutual_funds": { + "desc": "Discover the mutual funds with Morningstar Risk Rating of 4 and 5, likely indicating lower risk.", + "id": "e065a28e-65e3-49ee-8c38-54be12b0db97", + "title": "Low Risk Mutual Funds", + }, + "low_risk_mutual_funds_asia": { + "desc": "Discover the mutual funds with Morningstar Risk Rating of 4 and 5, likely indicating lower risk.", + "id": "9e00c0b2-b1f0-4b22-9de6-d76f2d58179a", + "title": "Low Risk Mutual Funds", + }, + "low_risk_mutual_funds_europe": { + "desc": "Discover the mutual funds with Morningstar Risk Rating of 4 and 5, likely indicating lower risk.", + "id": "3b7b021e-1248-457f-874a-efe78018dcb7", + "title": "Low Risk Mutual Funds", + }, + "lumber_wood_production": { + "desc": "Lumber & Wood Production Stocks", + "id": "6e3842f8-1918-4fa2-a4a4-a3245690515a", + "title": "Lumber & Wood Production", + }, + "luxury_goods": { + "desc": "Luxury Goods Stocks", + "id": "47e6d361-29f2-4e41-b66d-9aeaba30e821", + "title": "Luxury Goods", + }, + "marine_shipping": { + "desc": "Marine Shipping Stocks", + "id": "410de1b4-f066-48f4-bc67-72c9731c78ce", + "title": "Marine Shipping", + }, + "medical_care_facilities": { + "desc": "Medical Care Facilities Stocks", + "id": "819f5f80-ec31-4b5a-97ac-d6efed328ccb", + "title": "Medical Care Facilities", + }, + "medical_devices": { + "desc": "Medical Devices Stocks", + "id": "2865489f-9a23-489f-8545-c6e1ad7bcdfc", + "title": "Medical Devices", + }, + "medical_distribution": { + "desc": "Medical Distribution Stocks", + "id": "f24eac61-a63a-4061-9973-30aef1897154", + "title": "Medical Distribution", + }, + "medical_instruments_supplies": { + "desc": "Medical Instruments & Supplies Stocks", + "id": "5dcc2018-5313-4a27-b9a9-45ee0dcdda72", + "title": "Medical Instruments & Supplies", + }, + "mega_cap_hc": { + "desc": "Stocks with Mega Cap in healthcare industry", + "id": "86889bb3-e9d9-464d-956a-4abe5a9728db", + "title": "Mega Cap Healthcare", + }, + "metal_fabrication": { + "desc": "Metal Fabrication Stocks", + "id": "05acca9e-1aee-44b6-8224-c92459eb2ed8", + "title": "Metal Fabrication", + }, + "morningstar_five_star_stocks": { + "desc": "A 5-star rating indicates that the stock is trading meaningfully below fair value with an exciting discount.", + "id": "c8235580-5fb0-47ae-9f5c-e70f2a0cbe5d", + "title": "Morningstar 5-Star Stocks", + }, + "mortgage_finance": { + "desc": "Mortgage Finance Stocks", + "id": "fe8052af-d7ed-41bf-933d-dd0b4239e869", + "title": "Mortgage Finance", + }, + "most_actives": { + "desc": "Discover the most traded equities in the trading day.", + "id": "437465ef-980e-4d8c-a860-de7cbfbab373", + "title": "Most Actives", + }, + "most_actives_americas": { + "desc": "Stocks ordered in descending order by intraday trade volume", + "id": "a143f34f-7d90-473b-855b-67787326ce2c", + "title": "Most Actives Americas", + }, + "most_actives_asia": { + "desc": "Discover the most traded equities in the trading day.", + "id": "2e23187d-c4ff-48a5-b498-161a80b0145b", + "title": "Most Actives", + }, + "most_actives_au": { + "desc": "Stocks ordered in descending order by intraday trade volume for Australia", + "id": "d0dad29a-9a50-445b-8ca4-1367e51826eb", + "title": "Most Actives - Australia", + }, + "most_actives_br": { + "desc": "Stocks ordered in descending order by intraday trade volume for Brazil", + "id": "ec23a32d-e108-465f-9d4b-e5db1d934f2e", + "title": "Most Actives - Brazil", + }, + "most_actives_ca": { + "desc": "Stocks ordered in descending order by intraday trade volume for Canada", + "id": "5026cc58-c878-4f43-af38-efbffadce77f", + "title": "Most Actives - Canada", + }, + "most_actives_cn": { + "desc": "Stocks ordered in descending order by intraday trade volume", + "id": "b22d26a2-754c-4723-aefc-de09eca12462", + "title": "Most Actives - CN", + }, + "most_actives_cryptocurrencies": { + "desc": "Discover the most traded cryptocurrencies in the last 24 hours.", + "id": "28d9ee6a-e0e2-4e19-be0f-cda4b7ae384c", + "title": "Most Actives", + }, + "most_actives_de": { + "desc": "Stocks ordered in descending order by intraday trade volume for Germany", + "id": "5b4148d2-5a6d-4466-b663-b5895f5bc583", + "title": "Most Actives - Germany", + }, + "most_actives_dji": { + "desc": "Stocks ordered in descending order by intraday trade volume", + "id": "a423c5d4-9eff-4fb5-9995-93d06480ea91", + "title": "Most Actives - Dow Jones Industrial Average", + }, + "most_actives_es": { + "desc": "Stocks ordered in descending order by intraday trade volume for Spain", + "id": "8d1545dc-2fd9-4cac-854e-88f74c54b5dc", + "title": "Most Actives - Spain", + }, + "most_actives_etfs": { + "desc": "Discover the most traded ETFs in the trading day.", + "id": "76320b05-b87f-4d78-a8d7-11868c28cb44", + "title": "Most Actives", + }, + "most_actives_etfs_asia": { + "desc": "Discover the most traded ETFs in the trading day.", + "id": "6add3eb0-1494-4756-abe5-6e30c6649293", + "title": "Most Actives", + }, + "most_actives_etfs_europe": { + "desc": "Discover the most traded ETFs in the trading day.", + "id": "cd21364c-397a-4d79-ba4c-4fc801614242", + "title": "Most Actives", + }, + "most_actives_europe": { + "desc": "Discover the most traded equities in the trading day.", + "id": "c46c7edd-c97f-4929-9ade-77ec21b86c18", + "title": "Most Actives", + }, + "most_actives_fr": { + "desc": "Stocks ordered in descending order by intraday trade volume for France", + "id": "05f97149-f902-4cd3-8f72-f7768ac673e0", + "title": "Most Actives - France", + }, + "most_actives_gb": { + "desc": "Stocks ordered in descending order by intraday trade volume for United Kingdom", + "id": "433c5af8-f58f-4d92-8338-7d928f558a0d", + "title": "Most Actives - United Kingdom", + }, + "most_actives_hk": { + "desc": "Stocks ordered in descending order by intraday trade volume for Hong Kong", + "id": "9dbdb8ef-d0c2-446f-baab-be6997a20be8", + "title": "Most Actives - Hong Kong", + }, + "most_actives_in": { + "desc": "Stocks ordered in descending order by intraday trade volume for India", + "id": "09a035cc-f535-4249-bfae-ed95e7a9e12e", + "title": "Most Actives - India", + }, + "most_actives_it": { + "desc": "Stocks ordered in descending order by intraday trade volume for Italy", + "id": "2ec96414-6fb7-4da4-8600-cf6f82d0e6d8", + "title": "Most Actives - Italy", + }, + "most_actives_ndx": { + "desc": "Stocks ordered in descending order by intraday trade volume", + "id": "393c6a0f-d975-45a7-91b5-478fd3847b31", + "title": "Most Actives - NASDAQ 100", + }, + "most_actives_nz": { + "desc": "Stocks ordered in descending order by intraday trade volume for New Zealand", + "id": "b6b57880-3ce5-4f10-943b-a5b6dbf77f4d", + "title": "Most Actives - New Zealand", + }, + "most_actives_options": { + "desc": "Discover the most traded options in the trading day.", + "id": "924cd8e4-e16e-49b1-a7ea-6a1a471fa3f5", + "title": "Most Actives", + }, + "most_actives_sg": { + "desc": "Stocks ordered in descending order by intraday trade volume for Singapore", + "id": "96384b8f-b161-4eef-abf8-d1ce290da125", + "title": "Most Actives - Singapore", + }, + "most_institutionally_bought_large_cap_stocks": { + "desc": "Large cap stocks with the highest institutional buying as a percentage of its outstanding shares.", + "id": "18feeba8-323c-4905-9300-b6f72af3e497", + "title": "Most Institutionally Bought Large Cap Stocks", + }, + "most_institutionally_held_large_cap_stocks": { + "desc": "Large cap stocks with the highest institutional ownership as a percentage of its outstanding shares.", + "id": "d9bf8961-0dab-4e7a-89d2-91bbcff87da6", + "title": "Most Institutionally Held Large Cap Stocks", + }, + "most_institutionally_sold_large_cap_stocks": { + "desc": "Large cap stocks with the highest institutional selling as a percentage of its outstanding shares.", + "id": "ef8cb87e-0d8c-46ad-8512-59113286ea50", + "title": "Most Institutionally Sold Large Cap Stocks", + }, + "most_shorted_stocks": { + "desc": "Stocks with the highest short interest positions from Nasdaq and NYSE reports released every two weeks.", + "id": "679b1d2b-95d6-4731-9fd1-f9539ede458c", + "title": "Most Shorted Stocks", + }, + "most_visited": { + "desc": "Stocks ordered in descending order by weekly page view growth", + "id": "9bff655f-1d5c-47b8-b662-1c9d052a1df0", + "title": "Most Visited Companies", + }, + "most_visited_basic_materials": { + "desc": "Stocks in the Basic Materials sector ordered in descending order by weekly page view growth", + "id": "89ffe95d-8d19-4628-bbf6-092fa8cf4453", + "title": "Most Visited Basic Materials Companies", + }, + "most_visited_communication_services": { + "desc": "Stocks in the Communication Services sector ordered in descending order by weekly page view growth", + "id": "720f5d28-44d7-4c0b-9cb5-4c4d4b117845", + "title": "Most Visited Communication Services Companies", + }, + "most_visited_consumer_cyclical": { + "desc": "Stocks in the Consumer Cyclical sector ordered in descending order by weekly page view growth", + "id": "78fb9235-9d53-4fd6-a924-952593e75243", + "title": "Most Visited Consumer Cyclical Companies", + }, + "most_visited_consumer_defensive": { + "desc": "Stocks in the Consumer Defensive sector ordered in descending order by weekly page view growth", + "id": "5c09c497-4f26-4055-98dc-97e25709db6e", + "title": "Most Visited Consumer Defensive Companies", + }, + "most_visited_energy": { + "desc": "Stocks in the Energy sector ordered in descending order by weekly page view growth", + "id": "aa7dd02f-3495-4a6d-a0be-2eb42b231f94", + "title": "Most Visited Energy Companies", + }, + "most_visited_financial_services": { + "desc": "Stocks in the Financial Services sector ordered in descending order by weekly page view growth", + "id": "c207c8b1-796b-4a39-a4a0-5f7d8b341b09", + "title": "Most Visited Financial Services Companies", + }, + "most_visited_healthcare": { + "desc": "Stocks in the Healthcare sector ordered in descending order by weekly page view growth", + "id": "c66c4173-2f75-49eb-b9a1-659a535a48dc", + "title": "Most Visited Healthcare Companies", + }, + "most_visited_industrials": { + "desc": "Stocks in the Industrials sector ordered in descending order by weekly page view growth", + "id": "2fd2ac4a-f6b7-45bc-910a-b5c9965ddc72", + "title": "Most Visited Industrials Companies", + }, + "most_visited_real_estate": { + "desc": "Stocks in the Real Estate sector ordered in descending order by weekly page view growth", + "id": "e79defb1-9fad-4033-8a89-f4c58da39629", + "title": "Most Visited Real Estate Companies", + }, + "most_visited_technology": { + "desc": "Stocks in the Technology sector ordered in descending order by weekly page view growth", + "id": "d52b84f8-818a-427a-880a-4df2d6112e9a", + "title": "Most Visited Technology Companies", + }, + "most_visited_utilities": { + "desc": "Stocks in the Utilities sector ordered in descending order by weekly page view growth", + "id": "038d9521-ad03-4ba2-8061-30a49493059c", + "title": "Most Visited Utilities Companies", + }, + "most_watched_tickers": { + "desc": "Top 30 tickers with highest portfolioheldcount", + "id": "04c9d12e-f0a3-4ab8-bab8-904a2d1c3ab2", + "title": "Most added to watchlist", + }, + "ms_basic_materials": { + "desc": "Basic Materials ordered by intra day market cap for US region", + "id": "a4f8a58b-e458-44fe-b304-04af382a364e", + "title": "Basic Materials Sector", + }, + "ms_communication_services": { + "desc": "Communication Services ordered by intra day market cap for US region", + "id": "b8a44a72-2d49-4a2f-9261-f0fff3c2e4e2", + "title": "Communication Services Sector", + }, + "ms_consumer_cyclical": { + "desc": "Consumer Cyclical ordered by intra day market cap for US region", + "id": "4969e5a1-b0e0-416e-9ae3-191414339e3a", + "title": "Consumer Cyclical Sector", + }, + "ms_consumer_defensive": { + "desc": "Consumer Defensive ordered by intra day market cap for US region", + "id": "6a15b340-2e3c-44a6-b339-b7ae5c097be5", + "title": "Consumer Defensive Sector", + }, + "ms_energy": { + "desc": "Energy Services ordered by intra day market cap for US region", + "id": "2efb4ff8-64f4-4941-abb5-a399a6d0f66a", + "title": "Energy Services Sector", + }, + "ms_financial_services": { + "desc": "Financial Services ordered by intra day market cap for US region", + "id": "667f5248-3710-40d9-8d95-6582fdfa254c", + "title": "Financial Services Sector", + }, + "ms_healthcare": { + "desc": "Healthcare ordered by intra day market cap for US region", + "id": "e568d534-af60-4d20-a192-93bd4508f1bf", + "title": "Healthcare Sector", + }, + "ms_industrials": { + "desc": "Industrials Services ordered by intra day market cap for US region", + "id": "caf102b6-2c28-4abc-9d81-b13d710af432", + "title": "Industrials Services Sector", + }, + "ms_real_estate": { + "desc": "Real Estate ordered by intra day market cap for US region", + "id": "69d56754-89fd-4bc4-9f57-66ed42291311", + "title": "Real Estate Sector", + }, + "ms_technology": { + "desc": "Technology Services ordered by intra day market cap for US region", + "id": "c7b3f121-188a-4846-83e4-f049fab045cd", + "title": "Technology Services Sector", + }, + "ms_utilities": { + "desc": "Utilities ordered by intra day market cap for US region", + "id": "590cedc7-6ddc-40dc-9839-68b0c1572274", + "title": "Utilities Sector", + }, + "net_net_strategy": { + "desc": "As popularized by Graham, discover equities that trade below their liquidation value based on the NNWC metric.", + "id": "f3afc5dd-cbc3-4c7b-82ae-2835963be5ec", + "title": "Net-Net Strategy", + }, + "net_net_strategy_asia": { + "desc": "As popularized by Graham, discover equities that trade below their liquidation value based on the NNWC metric.", + "id": "73791934-528b-44e3-808b-4cd1a24424ac", + "title": "Net-Net Strategy", + }, + "net_net_strategy_europe": { + "desc": "As popularized by Graham, discover equities that trade below their liquidation value based on the NNWC metric.", + "id": "bf211886-2e58-49ca-9d32-ff1f8fa6293b", + "title": "Net-Net Strategy", + }, + "oil_gas_drilling": { + "desc": "Oil & Gas Drilling Stocks", + "id": "75c335ad-77c8-4368-9932-bfb462c3dc06", + "title": "Oil & Gas Drilling", + }, + "oil_gas_e_p": { + "desc": "Oil & Gas E&P Stocks", + "id": "40cd525d-2b36-40c4-bc95-33b133422ab0", + "title": "Oil & Gas E&P", + }, + "oil_gas_equipment_services": { + "desc": "Oil & Gas Equipment & Services Stocks", + "id": "051612b8-dbf2-44ac-9ee8-d0a0e105b199", + "title": "Oil & Gas Equipment & Services", + }, + "oil_gas_integrated": { + "desc": "Oil & Gas Integrated Stocks", + "id": "f4804676-79ae-4d01-8e45-6f52f85998c9", + "title": "Oil & Gas Integrated", + }, + "oil_gas_midstream": { + "desc": "Oil & Gas Midstream Stocks", + "id": "00374e32-6fb7-44c4-b828-1ba7b3080cf2", + "title": "Oil & Gas Midstream", + }, + "oil_gas_refining_marketing": { + "desc": "Oil & Gas Refining & Marketing Stocks", + "id": "59bef9a7-5bb4-4e67-8b22-513227cc55d6", + "title": "Oil & Gas Refining & Marketing", + }, + "other_industrial_metals_mining": { + "desc": "Other Industrial Metals & Mining Stocks", + "id": "2e1dd2f6-189b-4fb0-857d-79aec8ecef15", + "title": "Other Industrial Metals & Mining", + }, + "other_precious_metals_mining": { + "desc": "Other Precious Metals & Mining Stocks", + "id": "62e97ea1-46c8-4e6e-86f2-901a4ffa8b47", + "title": "Other Precious Metals & Mining", + }, + "packaged_foods": { + "desc": "Packaged Foods Stocks", + "id": "208c5e2a-b05c-40bc-8d92-6a0e97570556", + "title": "Packaged Foods", + }, + "packaging_containers": { + "desc": "Packaging & Containers Stocks", + "id": "70c912eb-3cfb-4dab-ae94-4f81d0910ea6", + "title": "Packaging & Containers", + }, + "paper_paper_products": { + "desc": "Paper & Paper Products Stocks", + "id": "f75ad8b4-22c7-4aba-b93b-1f543191f5bf", + "title": "Paper & Paper Products", + }, + "personal_services": { + "desc": "Personal Services Stocks", + "id": "7d89c0ef-3d77-47e0-9d30-b723ee9d824b", + "title": "Personal Services", + }, + "pharmaceutical_retailers": { + "desc": "Pharmaceutical Retailers Stocks", + "id": "293a91a7-b9e5-4b39-9792-4624bc78b99e", + "title": "Pharmaceutical Retailers", + }, + "pollution_treatment_controls": { + "desc": "Pollution & Treatment Controls Stocks", + "id": "5bd0d463-53ed-4ad4-bcd4-de0efa8460d3", + "title": "Pollution & Treatment Controls", + }, + "portfolio_actions_most_added": { + "desc": "Portfolio Actions Most Added", + "id": "288f1df3-0be8-4ecf-8131-03337550b7ed", + "title": "Portfolio Actions Most Added", + }, + "portfolio_actions_most_deleted": { + "desc": "Portfolio Actions Most Deleted", + "id": "ae8ea26f-ad24-4183-9e24-a40c6c440179", + "title": "Portfolio Actions Most Deleted", + }, + "portfolio_anchors": { + "desc": "Funds with Performance Rating of 4 & 5 and top-half returns that could serve as a rock-solid core of an investor's portfolio.", + "id": "7a0584d9-28a1-4a94-ac68-21f0aab91c4a", + "title": "Portfolio Anchors", + }, + "precious_metal_etfs": { + "desc": "Discover equity precious metal-focused ETFs.", + "id": "63e7f272-cd8d-4307-9002-eb98746a036a", + "title": "Precious Metal ETFs", + }, + "precious_metal_mutual_funds": { + "desc": "Discover equity precious metal-focused mutual funds.", + "id": "2b0f0d69-53ad-4a85-bcd6-8b6c1035bd33", + "title": "Precious Metal Mutual Funds", + }, + "publishing": { + "desc": "Publishing Stocks", + "id": "9061cba6-4150-47e0-ba32-bc59f824a6da", + "title": "Publishing", + }, + "railroads": { + "desc": "Railroads Stocks", + "id": "493c9c2f-8e7c-4e10-8287-608567b59d56", + "title": "Railroads", + }, + "real_estate_development": { + "desc": "Real Estate—Development Stocks", + "id": "a5bdd975-cf17-4f89-86a8-f85ca99bb8de", + "title": "Real Estate—Development", + }, + "real_estate_diversified": { + "desc": "Real Estate—Diversified Stocks", + "id": "95de06d7-7c2b-46fb-8ef8-72485007f1f0", + "title": "Real Estate—Diversified", + }, + "real_estate_services": { + "desc": "Real Estate Services Stocks", + "id": "61a2d1b7-443a-4b5a-9792-c9584cecd6f1", + "title": "Real Estate Services", + }, + "recreational_vehicles": { + "desc": "Recreational Vehicles Stocks", + "id": "d6f2cf97-b467-4709-a4e9-d351e66628d8", + "title": "Recreational Vehicles", + }, + "reit_diversified": { + "desc": "REIT—Diversified Stocks", + "id": "8b05f1c0-8250-455b-a69f-daaa92c30bba", + "title": "REIT—Diversified", + }, + "reit_healthcare_facilities": { + "desc": "REIT—Healthcare Facilities Stocks", + "id": "5875b16e-cf4e-47dd-ac92-2d0e9ecfd608", + "title": "REIT—Healthcare Facilities", + }, + "reit_hotel_motel": { + "desc": "REIT—Hotel & Motel Stocks", + "id": "e35bd5d6-6184-4fae-a5ef-6eabd3b2a5c8", + "title": "REIT—Hotel & Motel", + }, + "reit_industrial": { + "desc": "REIT—Industrial Stocks", + "id": "1f0611ca-ea24-4a25-af9a-c32ee7fc0b4a", + "title": "REIT—Industrial", + }, + "reit_mortgage": { + "desc": "REIT—Mortgage Stocks", + "id": "78956309-a5ef-4d4f-88d9-6555940cb525", + "title": "REIT—Mortgage", + }, + "reit_office": { + "desc": "REIT—Office Stocks", + "id": "9f1e2240-2cc4-4a96-8795-86867133c959", + "title": "REIT—Office", + }, + "reit_residential": { + "desc": "REIT—Residential Stocks", + "id": "8e9e7ec7-3248-4d8e-96f5-aeb6c42ac77b", + "title": "REIT—Residential", + }, + "reit_retail": { + "desc": "REIT—Retail Stocks", + "id": "0ecb1fc8-2c80-43b6-98f0-fe1fb1c2b176", + "title": "REIT—Retail", + }, + "reit_specialty": { + "desc": "REIT—Specialty Stocks", + "id": "1d63bc0a-1f95-4a78-8f86-ab359a4776ab", + "title": "REIT—Specialty", + }, + "rental_leasing_services": { + "desc": "Rental & Leasing Services Stocks", + "id": "d4711c7a-0c1f-4cb3-8743-b6c72065502a", + "title": "Rental & Leasing Services", + }, + "residential_construction": { + "desc": "Residential Construction Stocks", + "id": "56c1ea81-2d1b-4318-9d34-1a8630b52708", + "title": "Residential Construction", + }, + "resorts_casinos": { + "desc": "Resorts & Casinos Stocks", + "id": "4da54a7f-66d2-42bd-a9cd-545289082a8d", + "title": "Resorts & Casinos", + }, + "restaurants": { + "desc": "Restaurants Stocks", + "id": "8376c341-3bc4-46bc-8549-45df4724d16a", + "title": "Restaurants", + }, + "scientific_technical_instruments": { + "desc": "Scientific & Technical Instruments Stocks", + "id": "24c50979-bb02-43db-8f35-548d0c5446c9", + "title": "Scientific & Technical Instruments", + }, + "security_protection_services": { + "desc": "Security & Protection Services Stocks", + "id": "7b9d1a1c-1fc6-4883-8844-bd39034da6a4", + "title": "Security & Protection Services", + }, + "semiconductor_equipment_materials": { + "desc": "Semiconductor Equipment & Materials Stocks", + "id": "2b69f4cf-4815-4963-979a-e20464936232", + "title": "Semiconductor Equipment & Materials", + }, + "semiconductors": { + "desc": "Semiconductors Stocks", + "id": "1aae01f4-bcbc-4a96-a1de-b5569f113699", + "title": "Semiconductors", + }, + "shell_companies": { + "desc": "Shell Companies Stocks", + "id": "7f37f816-a79c-4145-ba45-9f119f07ce7d", + "title": "Shell Companies", + }, + "silver": { + "desc": "Silver Stocks", + "id": "fd2e2676-b2a8-4c45-ac10-e76a9be49151", + "title": "Silver", + }, + "small_cap_gainers": { + "desc": "Small cap stocks with percentchange greater than 5%", + "id": "483129f4-b25a-44c1-afca-8934593f3f6d", + "title": "Small caps with momentum", + }, + "software_application": { + "desc": "Software—Application Stocks", + "id": "e322e6ad-aedb-4330-965a-b6a949c5c45c", + "title": "Software—Application", + }, + "software_infrastructure": { + "desc": "Software—Infrastructure Stocks", + "id": "4e763ffb-03ba-4ff9-b515-35a1665faa45", + "title": "Software—Infrastructure", + }, + "solar": { + "desc": "Solar Stocks", + "id": "9f9e3c35-6a54-4292-aeb1-dce476941244", + "title": "Solar", + }, + "solid_large_growth_funds": { + "desc": "Large Growth Funds with Performance Rating of 4 & 5 and top-half returns", + "id": "5704ade5-098b-4c5e-997f-e50b32be7a55", + "title": "Solid Large Growth Funds", + }, + "solid_midcap_growth_funds": { + "desc": "Mid-Cap Growth Funds with Performance Rating of 4 & 5 and top-half returns", + "id": "d7235ede-59ce-40ad-99f9-5c7e4ec2c5e6", + "title": "Solid Mid-Cap Growth Funds", + }, + "sp_500_etfs": { + "desc": "Uncover ETFs advertised as being related to the S&P 500.", + "id": "e25ca1d3-f3c7-45ca-8566-13ae3f4d139e", + "title": "S&P 500 ETFs", + }, + "sp_500_etfs_asia": { + "desc": "Uncover ETFs advertised as being related to the S&P 500.", + "id": "8da58869-0ab4-4085-a3cd-cf70d50c2078", + "title": "S&P 500 ETFs", + }, + "sp_500_etfs_europe": { + "desc": "Uncover ETFs advertised as being related to the S&P 500.", + "id": "aa061fa7-9503-41b8-95f8-e9fdf86f7eb7", + "title": "S&P 500 ETFs", + }, + "specialty_business_services": { + "desc": "Specialty Business Services Stocks", + "id": "2978b66d-7cda-4fed-a28f-ea10c78ac500", + "title": "Specialty Business Services", + }, + "specialty_chemicals": { + "desc": "Specialty Chemicals Stocks", + "id": "a2271fd1-aa0f-4840-a7bb-783e92b3b515", + "title": "Specialty Chemicals", + }, + "specialty_industrial_machinery": { + "desc": "Specialty Industrial Machinery Stocks", + "id": "18ec4d96-9af4-409e-8448-98f86e4263c5", + "title": "Specialty Industrial Machinery", + }, + "specialty_retail": { + "desc": "Specialty Retail Stocks", + "id": "5cbc47de-7de8-4c60-853f-110018f5e3bd", + "title": "Specialty Retail", + }, + "staffing_employment_services": { + "desc": "Staffing & Employment Services Stocks", + "id": "69a6c527-bb1e-4863-9352-0c86c31c4bd2", + "title": "Staffing & Employment Services", + }, + "steel": { + "desc": "Steel Stocks", + "id": "a5c6e330-eea5-4e2b-b196-ca2066f7141c", + "title": "Steel", + }, + "stocks_most_bought_by_hedge_funds": { + "desc": "Stocks most bought by Hedge Funds as a percentage of outstanding shares.", + "id": "57b71b5c-1c87-4a1d-9ceb-b3c86bee7daf", + "title": "Stocks Most Bought by Hedge Funds", + }, + "stocks_most_bought_by_pension_fund": { + "desc": "Stocks most bought by Pension Fund as a percentage of outstanding shares.", + "id": "5c7ed9e4-46f8-4007-99c3-6ebae5712c7c", + "title": "Stocks Most Bought by Pension Fund", + }, + "stocks_most_bought_by_private_equity": { + "desc": "Stocks most bought by Private Equity as a percentage of outstanding shares.", + "id": "a62cd3c8-b414-4da0-a75d-ea4911dd9061", + "title": "Stocks Most Bought by Private Equity", + }, + "stocks_most_bought_by_sovereign_wealth_fund": { + "desc": "Stocks most bought by Sovereign Wealth Fund as a percentage of outstanding shares.", + "id": "b47910ce-cf2a-4113-8775-d27d0881addd", + "title": "Stocks Most Bought by Sovereign Wealth Fund", + }, + "stocks_with_most_institutional_buyers": { + "desc": "Stocks with the highest number of institutional buyers.", + "id": "0ed4f63c-2b43-45ee-b7a2-721ca11bf349", + "title": "Stocks with Most Institutional Buyers", + }, + "stocks_with_most_institutional_sellers": { + "desc": "Stocks with the highest number of institutional sellers.", + "id": "b54dacf5-3844-4e6e-827d-b3e3bf1ec89d", + "title": "Stocks with Most Institutional Sellers", + }, + "strong_undervalued_stocks": { + "desc": "Undervalued stocks with a robust and consistent history of earnings and revenue growth.", + "id": "e2276d18-9203-4b75-8efd-0f3b5f5cde94", + "title": "Strong Undervalued Stocks", + }, + "technology_etfs": { + "desc": "Discover technology-focused ETFs.", + "id": "dee4c568-74ae-4284-bf4e-7525b1eabf02", + "title": "Technology ETFs", + }, + "technology_mutual_funds": { + "desc": "Discover technology-focused mutual funds.", + "id": "6666a1fc-9b01-4398-be32-412141e76439", + "title": "Technology Mutual Funds", + }, + "telecom_services": { + "desc": "Telecom Services Stocks", + "id": "a9928231-7c89-469b-ac0f-1ae93e79c657", + "title": "Telecom Services", + }, + "textile_manufacturing": { + "desc": "Textile Manufacturing Stocks", + "id": "19847b80-4e4f-4398-936d-de43161eda6f", + "title": "Textile Manufacturing", + }, + "the_acquirers_multiple": { + "desc": "Uncover undervalued equities by comparing the enterprise value to its earnings before interest and taxes.", + "id": "01bc42f4-514d-499c-a015-1e1a3f171d2c", + "title": "The Acquirer's Multiple", + }, + "the_acquirers_multiple_asia": { + "desc": "Uncover undervalued equities by comparing the total cost to the operating income of the company.", + "id": "25f03e5a-6659-49e0-98fb-41456e713e56", + "title": "The Acquirer's Multiple", + }, + "the_acquirers_multiple_europe": { + "desc": "Uncover undervalued equities by comparing the total cost to the operating income of the company.", + "id": "4cfbf7d1-38d4-4f64-b9a3-ea13921b1769", + "title": "The Acquirer's Multiple", + }, + "thermal_coal": { + "desc": "Thermal Coal Stocks", + "id": "78e69f52-be0b-4346-9dcf-27d778fbe047", + "title": "Thermal Coal", + }, + "tobacco": { + "desc": "Tobacco Stocks", + "id": "ca5ff11e-c43f-4a54-a409-fea6d29766e7", + "title": "Tobacco", + }, + "tools_accessories": { + "desc": "Tools & Accessories Stocks", + "id": "9e622c85-3b94-41aa-8c76-8b488c2d27ce", + "title": "Tools & Accessories", + }, + "top_energy_us": { + "desc": "Energy ordered by Percent Change for US region", + "id": "9019aa39-cffd-4ffb-8c6c-dc6e9c48ef11", + "title": "Top Energy US", + }, + "top_etfs": { + "desc": "ETFs with Performance Rating of 4 & 5 ordered by Percent Change", + "id": "9976e04d-d1cb-49d4-abab-f8b45e0ae91c", + "title": "Top ETFs", + }, + "top_etfs_hk": { + "desc": "ETFs ordered by Percent Change for HK region", + "id": "131fc0f0-3c7b-476d-99e3-115a91680adf", + "title": "Top ETFs HK", + }, + "top_etfs_in": { + "desc": "ETFs ordered by Percent Change for IN region", + "id": "658effc7-8feb-4c65-9721-451e941be158", + "title": "Top ETFs IN", + }, + "top_etfs_us": { + "desc": "ETFs ordered by Percent Change for US region", + "id": "b34d612c-4204-4fd5-b0c4-2fca8b596411", + "title": "Top ETFs US", + }, + "top_mutual_funds": { + "desc": "Funds with Performance Rating of 4 & 5 ordered by Percent Change", + "id": "2ca6caed-e715-4fec-986a-fe68599160d9", + "title": "Top Mutual Funds", + }, + "top_mutual_funds_au": { + "desc": "Funds with Performance Rating of 4 & 5 ordered by Percent Change for AU region", + "id": "ae9de583-95cc-4269-821f-31a6a19febae", + "title": "Top Mutual funds AU", + }, + "top_mutual_funds_br": { + "desc": "Funds with Performance Rating of 4 & 5 ordered by Percent Change for BR region", + "id": "89d702fb-8a14-4f54-8ded-86da666a8d0b", + "title": "Top Mutual funds BR", + }, + "top_mutual_funds_ca": { + "desc": "Mutual Funds ordered by Percent Change for CA region", + "id": "71f592c6-6dce-4508-953a-311bfe76d0bc", + "title": "Top Mutual Funds CA", + }, + "top_mutual_funds_de": { + "desc": "Funds with Performance Rating of 4 & 5 ordered by Percent Change for DE region", + "id": "21c3ea5b-9d0d-47ef-b12c-efa620c28c7f", + "title": "Top Mutual funds DE", + }, + "top_mutual_funds_es": { + "desc": "Mutual Funds ordered by Percent Change for ES region", + "id": "3cb76596-ccf6-4bdf-9d37-93ac03515334", + "title": "Top Mutual funds ES", + }, + "top_mutual_funds_fr": { + "desc": "MutualFunds ordered by Percent Change for FR region", + "id": "a58a9112-738c-4c59-afc2-b5f94ea923a8", + "title": "Top Mutual Funds FR", + }, + "top_mutual_funds_gb": { + "desc": "Funds with Performance Rating of 4 & 5 ordered by Percent Change for GB region", + "id": "8214a99f-4992-4e6a-9eab-1b68ba8124cf", + "title": "Top Mutual funds GB", + }, + "top_mutual_funds_hk": { + "desc": "MutualFunds ordered by Percent Change for HK region", + "id": "b6e7a9e9-56d5-499b-b4af-018f45a65cd5", + "title": "Top Mutual Funds HK", + }, + "top_mutual_funds_in": { + "desc": "Top Mutual funds for India", + "id": "1d7eb3bf-ba14-4eae-b09c-b72c772bd995", + "title": "Top Mutual funds for India", + }, + "top_mutual_funds_it": { + "desc": "MutualFunds ordered by Percent Change for IT region", + "id": "dc43d757-d6c1-4129-bcf4-64e2fdd56472", + "title": "Top Mutual Funds IT", + }, + "top_mutual_funds_nz": { + "desc": "Funds with Performance Rating of 4 & 5 ordered by Percent Change for NZ region", + "id": "5a740873-637d-4895-bd5e-038a0d189025", + "title": "Top Mutual funds NZ", + }, + "top_mutual_funds_sg": { + "desc": "Funds with Performance Rating of 4 & 5 ordered by Percent Change for SG region", + "id": "c36f090e-98c0-40de-8cca-060e4d123304", + "title": "Top Mutual funds SG", + }, + "top_mutual_funds_us": { + "desc": "Funds with Performance Rating of 4 & 5 ordered by Percent Change for US region", + "id": "b749fa8b-a782-4e64-9224-1ad76e8f3d6c", + "title": "Top Mutual funds US", + }, + "top_options_implied_volatality": { + "desc": "Discover the options with the highest implied volatility.", + "id": "671c40b0-5ea8-4063-89b9-9db45bf9edf0", + "title": "Highest Implied Volatility", + }, + "top_options_open_interest": { + "desc": "Discover the options with the highest open interest.", + "id": "65f51cea-8dc8-4e56-9f99-6ef7720eb69c", + "title": "Highest Open Interest", + }, + "top_performing_etfs": { + "desc": "Uncover the ETFs with a Morningstar Performance Rating of 4 or 5.", + "id": "540ecf9c-5233-41d7-8adb-3daa5962ffe5", + "title": "Top Performing", + }, + "top_performing_etfs_asia": { + "desc": "Uncover the ETFs with a Morningstar Performance Rating of 4 or 5.", + "id": "83cd34b7-7372-473e-97d7-1b9351203da7", + "title": "Top Performing", + }, + "top_performing_etfs_europe": { + "desc": "Uncover the ETFs with a Morningstar Performance Rating of 4 or 5.", + "id": "416d6a69-a3e6-4de9-8cd2-b551b2bdafb3", + "title": "Top Performing", + }, + "top_performing_mutual_funds": { + "desc": "Uncover the mutual funds with a Morningstar Performance Rating of 4 or 5.", + "id": "5ad812ec-0e30-4d5e-a37b-72c96ff8a6f5", + "title": "Top Performing", + }, + "top_performing_mutual_funds_asia": { + "desc": "Uncover the mutual funds with a Morningstar Performance Rating of 4 or 5.", + "id": "cca0a3c4-caf1-4849-93b1-17db6dc7dc8a", + "title": "Top Performing", + }, + "top_performing_mutual_funds_europe": { + "desc": "Uncover the mutual funds with a Morningstar Performance Rating of 4 or 5.", + "id": "0e910bbb-a6c4-4cb4-a4e5-d0a6881f0aee", + "title": "Top Performing", + }, + "top_stocks_owned_by_cathie_wood": { + "desc": "Cathie Wood's top holdings as reported on her 13F filings.", + "id": "d70e5ae4-8714-4570-bfb5-2fe3915a51dc", + "title": "Top Stocks owned by Cathie Wood", + }, + "top_stocks_owned_by_goldman_sachs": { + "desc": "Goldman Sachs's top holdings as reported on their 13F filings.", + "id": "26ff040e-7287-453c-b29b-3239530a71bd", + "title": "Top Stocks owned by Goldman Sachs", + }, + "top_stocks_owned_by_ray_dalio": { + "desc": "Ray Dalio's top holdings as reported on his 13F filings.", + "id": "fe5923a9-47bc-44c3-a48b-394ed78b2384", + "title": "Top Stocks owned by Ray Dalio", + }, + "top_stocks_owned_by_warren_buffet": { + "desc": "Warren Buffet's top holdings as reported on his 13F filings.", + "id": "a83d5ef1-9306-43ee-8123-c4503e9b51ac", + "title": "Top Stocks owned by Warren Buffet", + }, + "travel_services": { + "desc": "Travel Services Stocks", + "id": "e9d2d268-7502-479e-a608-dfeefa90b027", + "title": "Travel Services", + }, + "trucking": { + "desc": "Trucking Stocks", + "id": "44aab0f6-4878-45c3-885f-6c5c3d943c75", + "title": "Trucking", + }, + "undervalued_growth_stocks": { + "desc": "Stocks with earnings growth rates better than 25% and relatively low PE and PEG ratios.", + "id": "b597175e-7243-4b42-82da-6811218a0945", + "title": "Undervalued Growth Stocks", + }, + "undervalued_large_caps": { + "desc": "Large cap stocks that are potentially undervalued, ordered descending by volume", + "id": "e31b19b8-efe0-4ed1-8856-7715c2ef858d", + "title": "Potentially undervalued large cap stocks", + }, + "undervalued_wide_moat_stocks": { + "desc": "Morningstar's undervalued stocks with a sustainable competitive advantage. A company with a wide economic moat can fend off competition for at least 20 years and earn high returns on capital for many years to come.", + "id": "0eaa1603-5d0a-427d-80f2-c69087dba4de", + "title": "Undervalued Wide-Moat Stocks", + }, + "upside_breakout_stocks_daily": { + "desc": "Upside breakout stocks on a daily chart by Trading Central", + "id": "c8d23d60-84e3-4f32-8bca-fb2f04251390", + "title": "Upside Breakout Stocks", + }, + "uranium": { + "desc": "Uranium Stocks", + "id": "c5467aa6-39ac-4ec3-bc0b-213e72ae9149", + "title": "Uranium", + }, + "utilities_diversified": { + "desc": "Utilities—Diversified Stocks", + "id": "ba4e7e3d-d570-4d48-a85f-a81321233703", + "title": "Utilities—Diversified", + }, + "utilities_independent_power_producers": { + "desc": "Utilities—Independent Power Producers Stocks", + "id": "ca979acd-b141-490a-b9e4-f5e03d23f7f9", + "title": "Utilities—Independent Power Producers", + }, + "utilities_regulated_electric": { + "desc": "Utilities—Regulated Electric Stocks", + "id": "d15b8324-aa7d-421c-9da3-51a2e963bbda", + "title": "Utilities—Regulated Electric", + }, + "utilities_regulated_gas": { + "desc": "Utilities—Regulated Gas Stocks", + "id": "7af3cba2-209a-4efd-968a-332e4e0bd0a3", + "title": "Utilities—Regulated Gas", + }, + "utilities_regulated_water": { + "desc": "Utilities—Regulated Water Stocks", + "id": "74930302-d4d3-4425-933b-4ef26a41a446", + "title": "Utilities—Regulated Water", + }, + "utilities_renewable": { + "desc": "Utilities—Renewable Stocks", + "id": "5fd7ee7b-4966-4db3-b427-d87b3cd0995a", + "title": "Utilities—Renewable", + }, + "waste_management": { + "desc": "Waste Management Stocks", + "id": "76d69c29-2f57-4606-88f8-7fbbc2442430", + "title": "Waste Management", + }, +}