From 57ae93b3cd0c6061a5192dfaa5dee35eb48b0520 Mon Sep 17 00:00:00 2001 From: Vasilije <8619304+Vasilije1990@users.noreply.github.com> Date: Tue, 17 Dec 2024 18:53:28 +0100 Subject: [PATCH 01/32] Update get_cognify_router.py --- .../v1/cognify/routers/get_cognify_router.py | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/cognee/api/v1/cognify/routers/get_cognify_router.py b/cognee/api/v1/cognify/routers/get_cognify_router.py index a56dbd7a5..1a53a7338 100644 --- a/cognee/api/v1/cognify/routers/get_cognify_router.py +++ b/cognee/api/v1/cognify/routers/get_cognify_router.py @@ -1,6 +1,6 @@ from fastapi import APIRouter -from typing import List, Optional -from pydantic import BaseModel +from typing import List, Optional, Any +from pydantic import BaseModel, create_model from cognee.modules.users.models import User from fastapi.responses import JSONResponse from cognee.modules.users.methods import get_authenticated_user @@ -9,7 +9,14 @@ class CognifyPayloadDTO(BaseModel): datasets: List[str] - graph_model: Optional[BaseModel] = None + graph_model: Optional[Any] = None + + +def json_to_pydantic_model(name: str, json_schema: dict) -> BaseModel: + """ + Create a Pydantic model on the fly from JSON. + """ + return create_model(name, **{k: (type(v), ...) for k, v in json_schema.items()}) def get_cognify_router() -> APIRouter: router = APIRouter() @@ -18,6 +25,15 @@ def get_cognify_router() -> APIRouter: async def cognify(payload: CognifyPayloadDTO, user: User = Depends(get_authenticated_user)): """ This endpoint is responsible for the cognitive processing of the content.""" from cognee.api.v1.cognify.cognify_v2 import cognify as cognee_cognify + try: + # Dynamic conversion of `graph_model` to Pydantic + if payload.graph_model: + graph_model_schema = payload.graph_model + GraphModelDynamic = json_to_pydantic_model("GraphModelDynamic", graph_model_schema) + graph_model_instance = GraphModelDynamic(**graph_model_schema) + print(graph_model_instance) + else: + graph_model_instance = None try: await cognee_cognify(payload.datasets, user, payload.graph_model) except Exception as error: From a42ab3e215f898c83ded7f546a96d7dce1127713 Mon Sep 17 00:00:00 2001 From: Igor Ilic Date: Wed, 18 Dec 2024 10:58:48 +0100 Subject: [PATCH 02/32] fix: Resolve syntax issue with cognify router Resolve syntax issue with cognify router Fix --- cognee/api/v1/cognify/routers/get_cognify_router.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/cognee/api/v1/cognify/routers/get_cognify_router.py b/cognee/api/v1/cognify/routers/get_cognify_router.py index 1a53a7338..739bd1657 100644 --- a/cognee/api/v1/cognify/routers/get_cognify_router.py +++ b/cognee/api/v1/cognify/routers/get_cognify_router.py @@ -6,6 +6,8 @@ from cognee.modules.users.methods import get_authenticated_user from fastapi import Depends +from cognee.shared.data_models import KnowledgeGraph + class CognifyPayloadDTO(BaseModel): datasets: List[str] @@ -32,10 +34,10 @@ async def cognify(payload: CognifyPayloadDTO, user: User = Depends(get_authentic GraphModelDynamic = json_to_pydantic_model("GraphModelDynamic", graph_model_schema) graph_model_instance = GraphModelDynamic(**graph_model_schema) print(graph_model_instance) - else: - graph_model_instance = None - try: - await cognee_cognify(payload.datasets, user, payload.graph_model) + else: + graph_model_instance = KnowledgeGraph + + await cognee_cognify(payload.datasets, user, graph_model_instance) except Exception as error: return JSONResponse( status_code=409, From 7be7265c93fc32ba2b0e0ceab6d78e4072b82d7f Mon Sep 17 00:00:00 2001 From: Igor Ilic Date: Wed, 18 Dec 2024 13:19:02 +0100 Subject: [PATCH 03/32] feat: Add ruff pre-commit hook for linting and formatting Added formatting and linting on pre-commit hook Feature COG-650 --- .pre-commit-config.yaml | 20 ++++++++++ poetry.lock | 87 ++++++++++++++++++++++++++++++++++++++++- pyproject.toml | 1 + 3 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 .pre-commit-config.yaml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 000000000..c862cb36f --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,20 @@ +# See https://pre-commit.com for more information +# See https://pre-commit.com/hooks.html for more hooks +repos: +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v3.2.0 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: check-yaml + - id: check-added-large-files +- repo: https://github.com/astral-sh/ruff-pre-commit + # Ruff version. + rev: v0.8.3 + hooks: + # Run the linter. + - id: ruff + types_or: [ python, pyi ] + # Run the formatter. + - id: ruff-format + types_or: [ python, pyi ] \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index d2c0a8533..3aee967b2 100644 --- a/poetry.lock +++ b/poetry.lock @@ -726,6 +726,17 @@ files = [ [package.dependencies] pycparser = "*" +[[package]] +name = "cfgv" +version = "3.4.0" +description = "Validate configuration and produce human readable error messages." +optional = false +python-versions = ">=3.8" +files = [ + {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 = "chardet" version = "5.2.0" @@ -1379,6 +1390,17 @@ files = [ {file = "dirtyjson-1.0.8.tar.gz", hash = "sha256:90ca4a18f3ff30ce849d100dcf4a003953c79d3a2348ef056f1d9c22231a25fd"}, ] +[[package]] +name = "distlib" +version = "0.3.9" +description = "Distribution utilities" +optional = false +python-versions = "*" +files = [ + {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, + {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, +] + [[package]] name = "distro" version = "1.9.0" @@ -2527,6 +2549,20 @@ files = [ {file = "hyperframe-6.0.1.tar.gz", hash = "sha256:ae510046231dc8e9ecb1a6586f63d2347bf4c8905914aa84ba585ae85f28a914"}, ] +[[package]] +name = "identify" +version = "2.6.3" +description = "File identification library for Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "identify-2.6.3-py2.py3-none-any.whl", hash = "sha256:9edba65473324c2ea9684b1f944fe3191db3345e50b6d04571d10ed164f8d7bd"}, + {file = "identify-2.6.3.tar.gz", hash = "sha256:62f5dae9b5fef52c84cc188514e9ea4f3f636b1d8799ab5ebc475471f9e47a02"}, +] + +[package.extras] +license = ["ukkonen"] + [[package]] name = "idna" version = "3.10" @@ -4535,6 +4571,17 @@ plot = ["matplotlib"] tgrep = ["pyparsing"] twitter = ["twython"] +[[package]] +name = "nodeenv" +version = "1.9.1" +description = "Node.js virtual environment builder" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, + {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, +] + [[package]] name = "notebook" version = "7.3.1" @@ -5348,6 +5395,24 @@ dev = ["black", "flake8", "flake8-print", "isort", "pre-commit"] sentry = ["django", "sentry-sdk"] test = ["coverage", "django", "flake8", "freezegun (==0.3.15)", "mock (>=2.0.0)", "pylint", "pytest", "pytest-timeout"] +[[package]] +name = "pre-commit" +version = "4.0.1" +description = "A framework for managing and maintaining multi-language pre-commit hooks." +optional = false +python-versions = ">=3.9" +files = [ + {file = "pre_commit-4.0.1-py2.py3-none-any.whl", hash = "sha256:efde913840816312445dc98787724647c65473daefe420785f885e8ed9a06878"}, + {file = "pre_commit-4.0.1.tar.gz", hash = "sha256:80905ac375958c0444c65e9cebebd948b3cdb518f335a091a670a89d652139d2"}, +] + +[package.dependencies] +cfgv = ">=2.0.0" +identify = ">=1.0.0" +nodeenv = ">=0.11.1" +pyyaml = ">=5.1" +virtualenv = ">=20.10.0" + [[package]] name = "prometheus-client" version = "0.21.1" @@ -8375,6 +8440,26 @@ files = [ [package.extras] crypto-eth-addresses = ["eth-hash[pycryptodome] (>=0.7.0)"] +[[package]] +name = "virtualenv" +version = "20.28.0" +description = "Virtual Python Environment builder" +optional = false +python-versions = ">=3.8" +files = [ + {file = "virtualenv-20.28.0-py3-none-any.whl", hash = "sha256:23eae1b4516ecd610481eda647f3a7c09aea295055337331bb4e6892ecce47b0"}, + {file = "virtualenv-20.28.0.tar.gz", hash = "sha256:2c9c3262bb8e7b87ea801d715fae4495e6032450c71d2309be9550e7364049aa"}, +] + +[package.dependencies] +distlib = ">=0.3.7,<1" +filelock = ">=3.12.2,<4" +platformdirs = ">=3.9.1,<5" + +[package.extras] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "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" version = "6.0.0" @@ -8877,4 +8962,4 @@ weaviate = ["weaviate-client"] [metadata] lock-version = "2.0" python-versions = ">=3.9.0,<3.12" -content-hash = "af91e3dcf6a8927ed938fe3f78172a5f1e0c0f9c8fbcbc76767b0e0d84645c9e" +content-hash = "7b339ad192fdc1bf97bbc0797b9657f0245b00627f811009a545e4a3380368bb" diff --git a/pyproject.toml b/pyproject.toml index 79f5a6855..cbee3e056 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -74,6 +74,7 @@ deepeval = {version = "^2.0.1", optional = true} transformers = "^4.46.3" pymilvus = {version = "^2.5.0", optional = true} unstructured = { extras = ["csv", "doc", "docx", "epub", "md", "odt", "org", "ppt", "pptx", "rst", "rtf", "tsv", "xlsx"], version = "^0.16.10", optional = true } +pre-commit = "^4.0.1" From 875dd1055e375d65dee1d22b9e8cd90ce677f3d9 Mon Sep 17 00:00:00 2001 From: Igor Ilic Date: Wed, 18 Dec 2024 13:31:19 +0100 Subject: [PATCH 04/32] chore: Update ruff lint options in pyproject file Update ruff lint options in pyproject file Chore --- .pre-commit-config.yaml | 2 +- pyproject.toml | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c862cb36f..42f12ea51 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,4 +17,4 @@ repos: types_or: [ python, pyi ] # Run the formatter. - id: ruff-format - types_or: [ python, pyi ] \ No newline at end of file + types_or: [ python, pyi ] diff --git a/pyproject.toml b/pyproject.toml index cbee3e056..0d5845d78 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -115,11 +115,10 @@ mkdocstrings = {extras = ["python"], version = "^0.26.2"} [tool.ruff] # https://beta.ruff.rs/docs/ line-length = 100 + +[tool.ruff.lint] ignore = ["F401"] -ignore-init-module-imports = true [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" - - From 856f228981a46ad931347c08a16db91886fcf95e Mon Sep 17 00:00:00 2001 From: Igor Ilic Date: Wed, 18 Dec 2024 14:04:49 +0100 Subject: [PATCH 05/32] test: Add ruff linter github action Added linting check with ruff in github actions Test COG-650 --- .github/workflows/ruff_lint.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .github/workflows/ruff_lint.yaml diff --git a/.github/workflows/ruff_lint.yaml b/.github/workflows/ruff_lint.yaml new file mode 100644 index 000000000..43cfef95b --- /dev/null +++ b/.github/workflows/ruff_lint.yaml @@ -0,0 +1,9 @@ +name: Ruff +on: [ push, pull_request ] + +jobs: + ruff: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: astral-sh/ruff-action@v2 From f660127d2d25e0265cac1e865c8c962865551fe3 Mon Sep 17 00:00:00 2001 From: Igor Ilic Date: Wed, 18 Dec 2024 14:24:14 +0100 Subject: [PATCH 06/32] refactor: Remove changes to cognify router Remove changes to cognify router Refactor COG-650 --- .../v1/cognify/routers/get_cognify_router.py | 26 +++---------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/cognee/api/v1/cognify/routers/get_cognify_router.py b/cognee/api/v1/cognify/routers/get_cognify_router.py index 739bd1657..257ac994f 100644 --- a/cognee/api/v1/cognify/routers/get_cognify_router.py +++ b/cognee/api/v1/cognify/routers/get_cognify_router.py @@ -1,24 +1,15 @@ from fastapi import APIRouter -from typing import List, Optional, Any -from pydantic import BaseModel, create_model +from typing import List, Optional +from pydantic import BaseModel from cognee.modules.users.models import User from fastapi.responses import JSONResponse from cognee.modules.users.methods import get_authenticated_user from fastapi import Depends - from cognee.shared.data_models import KnowledgeGraph - class CognifyPayloadDTO(BaseModel): datasets: List[str] - graph_model: Optional[Any] = None - - -def json_to_pydantic_model(name: str, json_schema: dict) -> BaseModel: - """ - Create a Pydantic model on the fly from JSON. - """ - return create_model(name, **{k: (type(v), ...) for k, v in json_schema.items()}) + graph_model: Optional[BaseModel] = KnowledgeGraph def get_cognify_router() -> APIRouter: router = APIRouter() @@ -28,16 +19,7 @@ async def cognify(payload: CognifyPayloadDTO, user: User = Depends(get_authentic """ This endpoint is responsible for the cognitive processing of the content.""" from cognee.api.v1.cognify.cognify_v2 import cognify as cognee_cognify try: - # Dynamic conversion of `graph_model` to Pydantic - if payload.graph_model: - graph_model_schema = payload.graph_model - GraphModelDynamic = json_to_pydantic_model("GraphModelDynamic", graph_model_schema) - graph_model_instance = GraphModelDynamic(**graph_model_schema) - print(graph_model_instance) - else: - graph_model_instance = KnowledgeGraph - - await cognee_cognify(payload.datasets, user, graph_model_instance) + await cognee_cognify(payload.datasets, user, payload.graph_model) except Exception as error: return JSONResponse( status_code=409, From 8aff9962dd3f458fde899e97cf25cc02df3811f0 Mon Sep 17 00:00:00 2001 From: Igor Ilic Date: Wed, 18 Dec 2024 14:42:19 +0100 Subject: [PATCH 07/32] test: Add test for ruff format for cognee code Test if code is formatted for cognee Test COG-650 --- .github/workflows/ruff_format.yaml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .github/workflows/ruff_format.yaml diff --git a/.github/workflows/ruff_format.yaml b/.github/workflows/ruff_format.yaml new file mode 100644 index 000000000..e036c3ac8 --- /dev/null +++ b/.github/workflows/ruff_format.yaml @@ -0,0 +1,11 @@ +name: Ruff +on: [ push, pull_request ] + +jobs: + ruff: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: astral-sh/ruff-action@v2 + with: + args: "format --check" From 7a9f7b07f6465a37063365a94383d16a4cfe5ec9 Mon Sep 17 00:00:00 2001 From: Igor Ilic Date: Wed, 18 Dec 2024 14:43:31 +0100 Subject: [PATCH 08/32] refactor: Rename ruff gh actions Rename ruff gh actions to be more understandable Refactor COG-650 --- .github/workflows/ruff_format.yaml | 2 +- .github/workflows/ruff_lint.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ruff_format.yaml b/.github/workflows/ruff_format.yaml index e036c3ac8..899dfff22 100644 --- a/.github/workflows/ruff_format.yaml +++ b/.github/workflows/ruff_format.yaml @@ -1,4 +1,4 @@ -name: Ruff +name: ruff format on: [ push, pull_request ] jobs: diff --git a/.github/workflows/ruff_lint.yaml b/.github/workflows/ruff_lint.yaml index 43cfef95b..cf09ab53d 100644 --- a/.github/workflows/ruff_lint.yaml +++ b/.github/workflows/ruff_lint.yaml @@ -1,4 +1,4 @@ -name: Ruff +name: ruff lint on: [ push, pull_request ] jobs: From 8ec639a12a97b684ee665ef06955f2486b53eb48 Mon Sep 17 00:00:00 2001 From: Igor Ilic Date: Wed, 18 Dec 2024 15:01:13 +0100 Subject: [PATCH 09/32] chore: Remove checking of ruff lint and format on push Remove checking of ruff lint and format on push Chore COG-650 --- .github/workflows/ruff_format.yaml | 2 +- .github/workflows/ruff_lint.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ruff_format.yaml b/.github/workflows/ruff_format.yaml index 899dfff22..959b7fc4b 100644 --- a/.github/workflows/ruff_format.yaml +++ b/.github/workflows/ruff_format.yaml @@ -1,5 +1,5 @@ name: ruff format -on: [ push, pull_request ] +on: [ pull_request ] jobs: ruff: diff --git a/.github/workflows/ruff_lint.yaml b/.github/workflows/ruff_lint.yaml index cf09ab53d..214e8ec6d 100644 --- a/.github/workflows/ruff_lint.yaml +++ b/.github/workflows/ruff_lint.yaml @@ -1,5 +1,5 @@ name: ruff lint -on: [ push, pull_request ] +on: [ pull_request ] jobs: ruff: From f6800b979edad66102ac449e00889b709a2a4e33 Mon Sep 17 00:00:00 2001 From: Igor Ilic Date: Wed, 18 Dec 2024 15:26:13 +0100 Subject: [PATCH 10/32] feat: Add deletion of local files when deleting data Delete local files when deleting data from cognee Feature COG-475 --- .../sqlalchemy/SqlAlchemyAdapter.py | 28 +++++++++++++++++-- cognee/modules/data/methods/delete_data.py | 2 +- cognee/modules/data/methods/delete_dataset.py | 2 +- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py b/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py index 8041aeaea..e0db40ca3 100644 --- a/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py +++ b/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py @@ -3,11 +3,12 @@ from typing import Optional from typing import AsyncGenerator, List from contextlib import asynccontextmanager -from sqlalchemy import text, select, MetaData, Table +from sqlalchemy import text, select, MetaData, Table, delete from sqlalchemy.orm import joinedload from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine, async_sessionmaker from cognee.infrastructure.databases.exceptions import EntityNotFoundError +from cognee.modules.data.models.Data import Data from ..ModelBase import Base class SQLAlchemyAdapter(): @@ -86,9 +87,9 @@ async def get_schema_list(self) -> List[str]: return [schema[0] for schema in result.fetchall()] return [] - async def delete_data_by_id(self, table_name: str, data_id: UUID, schema_name: Optional[str] = "public"): + async def delete_entity_by_id(self, table_name: str, data_id: UUID, schema_name: Optional[str] = "public"): """ - Delete data in given table based on id. Table must have an id Column. + Delete entity in given table based on id. Table must have an id Column. """ if self.engine.dialect.name == "sqlite": async with self.get_async_session() as session: @@ -107,6 +108,27 @@ async def delete_data_by_id(self, table_name: str, data_id: UUID, schema_name: O await session.commit() + async def delete_data_entity(self, data_id: UUID): + """ + Delete data and local files related to data if there are no references to it anymore. + """ + if self.engine.dialect.name == "sqlite": + async with self.get_async_session() as session: + + # Foreign key constraints are disabled by default in SQLite (for backwards compatibility), + # so must be enabled for each database connection/session separately. + await session.execute(text("PRAGMA foreign_keys = ON;")) + + data_entity = await session.execute(select(Data).where(Data.id == data_id)) + + await session.execute(delete(Data).where(Data.id == data_id)) + await session.commit() + else: + async with self.get_async_session() as session: + await session.execute(delete(Data).where(Data.id == data_id)) + await session.commit() + + async def get_table(self, table_name: str, schema_name: Optional[str] = "public") -> Table: """ Dynamically loads a table using the given table name and schema name. diff --git a/cognee/modules/data/methods/delete_data.py b/cognee/modules/data/methods/delete_data.py index c0493a606..f0e9629ec 100644 --- a/cognee/modules/data/methods/delete_data.py +++ b/cognee/modules/data/methods/delete_data.py @@ -17,4 +17,4 @@ async def delete_data(data: Data): db_engine = get_relational_engine() - return await db_engine.delete_data_by_id(data.__tablename__, data.id) + return await db_engine.delete_entity_by_id(data.__tablename__, data.id) diff --git a/cognee/modules/data/methods/delete_dataset.py b/cognee/modules/data/methods/delete_dataset.py index c2205144d..96a2e7d71 100644 --- a/cognee/modules/data/methods/delete_dataset.py +++ b/cognee/modules/data/methods/delete_dataset.py @@ -4,4 +4,4 @@ async def delete_dataset(dataset: Dataset): db_engine = get_relational_engine() - return await db_engine.delete_data_by_id(dataset.__tablename__, dataset.id) + return await db_engine.delete_entity_by_id(dataset.__tablename__, dataset.id) From ee6bc1703249e2c6bc3e95ae2de7ffe9087633af Mon Sep 17 00:00:00 2001 From: Igor Ilic Date: Wed, 18 Dec 2024 17:10:08 +0100 Subject: [PATCH 11/32] refacotr: Add current development status Save current development status Refactor --- .../sqlalchemy/SqlAlchemyAdapter.py | 29 +++- cognee/tests/test_pgvector.py | 145 +++++++++--------- 2 files changed, 103 insertions(+), 71 deletions(-) diff --git a/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py b/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py index e0db40ca3..7eb4ccc2f 100644 --- a/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py +++ b/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py @@ -5,10 +5,12 @@ from contextlib import asynccontextmanager from sqlalchemy import text, select, MetaData, Table, delete from sqlalchemy.orm import joinedload +from sqlalchemy.exc import NoResultFound from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine, async_sessionmaker from cognee.infrastructure.databases.exceptions import EntityNotFoundError from cognee.modules.data.models.Data import Data + from ..ModelBase import Base class SQLAlchemyAdapter(): @@ -119,12 +121,37 @@ async def delete_data_entity(self, data_id: UUID): # so must be enabled for each database connection/session separately. await session.execute(text("PRAGMA foreign_keys = ON;")) - data_entity = await session.execute(select(Data).where(Data.id == data_id)) + data_entity = await session.scalars(select(Data).where(Data.id == data_id)).one() + + # Check if other data objects point to the same raw data location + raw_data_location_entities= await session.execute( + select(Data).where(Data.raw_data_location == data_entity.raw_data_location)).all() + + # Don't delete local file unless this is the only reference to the file in the database + if len(raw_data_location_entities) == 1: + # delete local file + from cognee.base_config import get_base_config + config get_base_config() + await session.execute(delete(Data).where(Data.id == data_id)) await session.commit() else: async with self.get_async_session() as session: + try: + data_entity = (await session.scalars(select(Data).where(Data.id == data_id))).one() + except (ValueError, NoResultFound) as e: + raise EntityNotFoundError(message=f"Entity not found: {str(e)}") + + # Check if other data objects point to the same raw data location + raw_data_location_entities = (await session.execute( + select(Data).where(Data.raw_data_location == data_entity.raw_data_location))).all() + + # Don't delete local file unless this is the only reference to the file in the database + if len(raw_data_location_entities) == 1: + # delete local file + pass + await session.execute(delete(Data).where(Data.id == data_id)) await session.commit() diff --git a/cognee/tests/test_pgvector.py b/cognee/tests/test_pgvector.py index 9554a3f9d..d0326ac91 100644 --- a/cognee/tests/test_pgvector.py +++ b/cognee/tests/test_pgvector.py @@ -42,76 +42,81 @@ async def main(): ) cognee.config.system_root_directory(cognee_directory_path) - await cognee.prune.prune_data() - await cognee.prune.prune_system(metadata = True) - - dataset_name_1 = "natural_language" - dataset_name_2 = "quantum" - - explanation_file_path = os.path.join( - pathlib.Path(__file__).parent, "test_data/Natural_language_processing.txt" - ) - await cognee.add([explanation_file_path], dataset_name_1) - - text = """A quantum computer is a computer that takes advantage of quantum mechanical phenomena. - At small scales, physical matter exhibits properties of both particles and waves, and quantum computing leverages this behavior, specifically quantum superposition and entanglement, using specialized hardware that supports the preparation and manipulation of quantum states. - Classical physics cannot explain the operation of these quantum devices, and a scalable quantum computer could perform some calculations exponentially faster (with respect to input size scaling) than any modern "classical" computer. In particular, a large-scale quantum computer could break widely used encryption schemes and aid physicists in performing physical simulations; however, the current state of the technology is largely experimental and impractical, with several obstacles to useful applications. Moreover, scalable quantum computers do not hold promise for many practical tasks, and for many important tasks quantum speedups are proven impossible. - The basic unit of information in quantum computing is the qubit, similar to the bit in traditional digital electronics. Unlike a classical bit, a qubit can exist in a superposition of its two "basis" states. When measuring a qubit, the result is a probabilistic output of a classical bit, therefore making quantum computers nondeterministic in general. If a quantum computer manipulates the qubit in a particular way, wave interference effects can amplify the desired measurement results. The design of quantum algorithms involves creating procedures that allow a quantum computer to perform calculations efficiently and quickly. - Physically engineering high-quality qubits has proven challenging. If a physical qubit is not sufficiently isolated from its environment, it suffers from quantum decoherence, introducing noise into calculations. Paradoxically, perfectly isolating qubits is also undesirable because quantum computations typically need to initialize qubits, perform controlled qubit interactions, and measure the resulting quantum states. Each of those operations introduces errors and suffers from noise, and such inaccuracies accumulate. - In principle, a non-quantum (classical) computer can solve the same computational problems as a quantum computer, given enough time. Quantum advantage comes in the form of time complexity rather than computability, and quantum complexity theory shows that some quantum algorithms for carefully selected tasks require exponentially fewer computational steps than the best known non-quantum algorithms. Such tasks can in theory be solved on a large-scale quantum computer whereas classical computers would not finish computations in any reasonable amount of time. However, quantum speedup is not universal or even typical across computational tasks, since basic tasks such as sorting are proven to not allow any asymptotic quantum speedup. Claims of quantum supremacy have drawn significant attention to the discipline, but are demonstrated on contrived tasks, while near-term practical use cases remain limited. - """ - - await cognee.add([text], dataset_name_2) - - await cognee.cognify([dataset_name_2, dataset_name_1]) - - from cognee.infrastructure.databases.vector import get_vector_engine - - # Test getting of documents for search per dataset - from cognee.modules.users.permissions.methods import get_document_ids_for_user - user = await get_default_user() - document_ids = await get_document_ids_for_user(user.id, [dataset_name_1]) - assert len(document_ids) == 1, f"Number of expected documents doesn't match {len(document_ids)} != 1" - - # Test getting of documents for search when no dataset is provided - user = await get_default_user() - document_ids = await get_document_ids_for_user(user.id) - assert len(document_ids) == 2, f"Number of expected documents doesn't match {len(document_ids)} != 2" - - vector_engine = get_vector_engine() - random_node = (await vector_engine.search("entity_name", "Quantum computer"))[0] - random_node_name = random_node.payload["text"] - - search_results = await cognee.search(SearchType.INSIGHTS, query_text = random_node_name) - assert len(search_results) != 0, "The search results list is empty." - print("\n\nExtracted sentences are:\n") - for result in search_results: - print(f"{result}\n") - - search_results = await cognee.search(SearchType.CHUNKS, query_text = random_node_name, datasets=[dataset_name_2]) - assert len(search_results) != 0, "The search results list is empty." - print("\n\nExtracted chunks are:\n") - for result in search_results: - print(f"{result}\n") - - search_results = await cognee.search(SearchType.SUMMARIES, query_text = random_node_name) - assert len(search_results) != 0, "Query related summaries don't exist." - print("\n\nExtracted summaries are:\n") - for result in search_results: - print(f"{result}\n") - - history = await cognee.get_search_history() - assert len(history) == 6, "Search history is not correct." - - results = await brute_force_triplet_search('What is a quantum computer?') - assert len(results) > 0 - - await cognee.prune.prune_data() - assert not os.path.isdir(data_directory_path), "Local data files are not deleted" - - await cognee.prune.prune_system(metadata=True) - tables_in_database = await vector_engine.get_table_names() - assert len(tables_in_database) == 0, "PostgreSQL database is not empty" + from cognee.infrastructure.databases.relational.get_relational_engine import get_relational_engine + + engine = get_relational_engine() + await engine.delete_data_entity("2cba57c3-d7ec-5746-b819-d89f87f05c18") + + # await cognee.prune.prune_data() + # await cognee.prune.prune_system(metadata = True) + + # dataset_name_1 = "natural_language" + # dataset_name_2 = "quantum" + # + # explanation_file_path = os.path.join( + # pathlib.Path(__file__).parent, "test_data/Natural_language_processing.txt" + # ) + # await cognee.add([explanation_file_path], dataset_name_1) + # + # text = """A quantum computer is a computer that takes advantage of quantum mechanical phenomena. + # At small scales, physical matter exhibits properties of both particles and waves, and quantum computing leverages this behavior, specifically quantum superposition and entanglement, using specialized hardware that supports the preparation and manipulation of quantum states. + # Classical physics cannot explain the operation of these quantum devices, and a scalable quantum computer could perform some calculations exponentially faster (with respect to input size scaling) than any modern "classical" computer. In particular, a large-scale quantum computer could break widely used encryption schemes and aid physicists in performing physical simulations; however, the current state of the technology is largely experimental and impractical, with several obstacles to useful applications. Moreover, scalable quantum computers do not hold promise for many practical tasks, and for many important tasks quantum speedups are proven impossible. + # The basic unit of information in quantum computing is the qubit, similar to the bit in traditional digital electronics. Unlike a classical bit, a qubit can exist in a superposition of its two "basis" states. When measuring a qubit, the result is a probabilistic output of a classical bit, therefore making quantum computers nondeterministic in general. If a quantum computer manipulates the qubit in a particular way, wave interference effects can amplify the desired measurement results. The design of quantum algorithms involves creating procedures that allow a quantum computer to perform calculations efficiently and quickly. + # Physically engineering high-quality qubits has proven challenging. If a physical qubit is not sufficiently isolated from its environment, it suffers from quantum decoherence, introducing noise into calculations. Paradoxically, perfectly isolating qubits is also undesirable because quantum computations typically need to initialize qubits, perform controlled qubit interactions, and measure the resulting quantum states. Each of those operations introduces errors and suffers from noise, and such inaccuracies accumulate. + # In principle, a non-quantum (classical) computer can solve the same computational problems as a quantum computer, given enough time. Quantum advantage comes in the form of time complexity rather than computability, and quantum complexity theory shows that some quantum algorithms for carefully selected tasks require exponentially fewer computational steps than the best known non-quantum algorithms. Such tasks can in theory be solved on a large-scale quantum computer whereas classical computers would not finish computations in any reasonable amount of time. However, quantum speedup is not universal or even typical across computational tasks, since basic tasks such as sorting are proven to not allow any asymptotic quantum speedup. Claims of quantum supremacy have drawn significant attention to the discipline, but are demonstrated on contrived tasks, while near-term practical use cases remain limited. + # """ + # + # await cognee.add([text], dataset_name_2) + # + # await cognee.cognify([dataset_name_2, dataset_name_1]) + # + # from cognee.infrastructure.databases.vector import get_vector_engine + # + # # Test getting of documents for search per dataset + # from cognee.modules.users.permissions.methods import get_document_ids_for_user + # user = await get_default_user() + # document_ids = await get_document_ids_for_user(user.id, [dataset_name_1]) + # assert len(document_ids) == 1, f"Number of expected documents doesn't match {len(document_ids)} != 1" + # + # # Test getting of documents for search when no dataset is provided + # user = await get_default_user() + # document_ids = await get_document_ids_for_user(user.id) + # assert len(document_ids) == 2, f"Number of expected documents doesn't match {len(document_ids)} != 2" + # + # vector_engine = get_vector_engine() + # random_node = (await vector_engine.search("entity_name", "Quantum computer"))[0] + # random_node_name = random_node.payload["text"] + # + # search_results = await cognee.search(SearchType.INSIGHTS, query_text = random_node_name) + # assert len(search_results) != 0, "The search results list is empty." + # print("\n\nExtracted sentences are:\n") + # for result in search_results: + # print(f"{result}\n") + # + # search_results = await cognee.search(SearchType.CHUNKS, query_text = random_node_name, datasets=[dataset_name_2]) + # assert len(search_results) != 0, "The search results list is empty." + # print("\n\nExtracted chunks are:\n") + # for result in search_results: + # print(f"{result}\n") + # + # search_results = await cognee.search(SearchType.SUMMARIES, query_text = random_node_name) + # assert len(search_results) != 0, "Query related summaries don't exist." + # print("\n\nExtracted summaries are:\n") + # for result in search_results: + # print(f"{result}\n") + # + # history = await cognee.get_search_history() + # assert len(history) == 6, "Search history is not correct." + # + # results = await brute_force_triplet_search('What is a quantum computer?') + # assert len(results) > 0 + + # await cognee.prune.prune_data() + # assert not os.path.isdir(data_directory_path), "Local data files are not deleted" + # + # await cognee.prune.prune_system(metadata=True) + # tables_in_database = await vector_engine.get_table_names() + # assert len(tables_in_database) == 0, "PostgreSQL database is not empty" if __name__ == "__main__": import asyncio From d9368c6398b97366615dd50809c0607a1ccc7193 Mon Sep 17 00:00:00 2001 From: Igor Ilic Date: Thu, 19 Dec 2024 15:15:13 +0100 Subject: [PATCH 12/32] chore: Add temporary state of development Add temp development state to branch Chore --- .../relational/sqlalchemy/SqlAlchemyAdapter.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py b/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py index 7eb4ccc2f..c06aa833d 100644 --- a/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py +++ b/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py @@ -131,7 +131,10 @@ async def delete_data_entity(self, data_id: UUID): if len(raw_data_location_entities) == 1: # delete local file from cognee.base_config import get_base_config - config get_base_config() + config = get_base_config() + if config.data_root_directory in raw_data_location_entities[0]: + # delete local file + pass await session.execute(delete(Data).where(Data.id == data_id)) @@ -150,7 +153,11 @@ async def delete_data_entity(self, data_id: UUID): # Don't delete local file unless this is the only reference to the file in the database if len(raw_data_location_entities) == 1: # delete local file - pass + from cognee.base_config import get_base_config + config = get_base_config() + if config.data_root_directory in raw_data_location_entities[0].raw_data_location: + # delete local file + pass await session.execute(delete(Data).where(Data.id == data_id)) await session.commit() From c139d52938542fee46ebfda078ed181e06764e5f Mon Sep 17 00:00:00 2001 From: Igor Ilic Date: Thu, 19 Dec 2024 16:35:35 +0100 Subject: [PATCH 13/32] feat: Add deletion of local files made by cognee through data endpoint Delete local files made by cognee when deleting data from database through endpoint Feature COG-475 --- .../sqlalchemy/SqlAlchemyAdapter.py | 66 +++++++------------ cognee/modules/data/methods/delete_data.py | 2 +- 2 files changed, 23 insertions(+), 45 deletions(-) diff --git a/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py b/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py index c06aa833d..3b9a36e71 100644 --- a/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py +++ b/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py @@ -1,3 +1,4 @@ +import os from os import path from uuid import UUID from typing import Optional @@ -114,54 +115,31 @@ async def delete_data_entity(self, data_id: UUID): """ Delete data and local files related to data if there are no references to it anymore. """ - if self.engine.dialect.name == "sqlite": - async with self.get_async_session() as session: - + async with self.get_async_session() as session: + if self.engine.dialect.name == "sqlite": # Foreign key constraints are disabled by default in SQLite (for backwards compatibility), # so must be enabled for each database connection/session separately. await session.execute(text("PRAGMA foreign_keys = ON;")) - data_entity = await session.scalars(select(Data).where(Data.id == data_id)).one() - - # Check if other data objects point to the same raw data location - raw_data_location_entities= await session.execute( - select(Data).where(Data.raw_data_location == data_entity.raw_data_location)).all() - - # Don't delete local file unless this is the only reference to the file in the database - if len(raw_data_location_entities) == 1: - # delete local file - from cognee.base_config import get_base_config - config = get_base_config() - if config.data_root_directory in raw_data_location_entities[0]: - # delete local file - pass - - - await session.execute(delete(Data).where(Data.id == data_id)) - await session.commit() - else: - async with self.get_async_session() as session: - try: - data_entity = (await session.scalars(select(Data).where(Data.id == data_id))).one() - except (ValueError, NoResultFound) as e: - raise EntityNotFoundError(message=f"Entity not found: {str(e)}") - - # Check if other data objects point to the same raw data location - raw_data_location_entities = (await session.execute( - select(Data).where(Data.raw_data_location == data_entity.raw_data_location))).all() - - # Don't delete local file unless this is the only reference to the file in the database - if len(raw_data_location_entities) == 1: - # delete local file - from cognee.base_config import get_base_config - config = get_base_config() - if config.data_root_directory in raw_data_location_entities[0].raw_data_location: - # delete local file - pass - - await session.execute(delete(Data).where(Data.id == data_id)) - await session.commit() - + try: + data_entity = (await session.scalars(select(Data).where(Data.id == data_id))).one() + except (ValueError, NoResultFound) as e: + raise EntityNotFoundError(message=f"Entity not found: {str(e)}") + + # Check if other data objects point to the same raw data location + raw_data_location_entities = (await session.execute( + select(Data).where(Data.raw_data_location == data_entity.raw_data_location))).all() + + # Don't delete local file unless this is the only reference to the file in the database + if len(raw_data_location_entities) == 1: + # delete local file only if it's created by cognee + from cognee.base_config import get_base_config + config = get_base_config() + if config.data_root_directory in raw_data_location_entities[0].raw_data_location: + os.remove(raw_data_location_entities[0]) + + await session.execute(delete(Data).where(Data.id == data_id)) + await session.commit() async def get_table(self, table_name: str, schema_name: Optional[str] = "public") -> Table: """ diff --git a/cognee/modules/data/methods/delete_data.py b/cognee/modules/data/methods/delete_data.py index f0e9629ec..65abe714a 100644 --- a/cognee/modules/data/methods/delete_data.py +++ b/cognee/modules/data/methods/delete_data.py @@ -17,4 +17,4 @@ async def delete_data(data: Data): db_engine = get_relational_engine() - return await db_engine.delete_entity_by_id(data.__tablename__, data.id) + return await db_engine.delete_data_entity(data.id) From 418cb65b358789984fe8fe150c4c728542a19640 Mon Sep 17 00:00:00 2001 From: Igor Ilic Date: Thu, 19 Dec 2024 16:38:50 +0100 Subject: [PATCH 14/32] test: Revert changes on test_pgvector Revert changes on test_pgvector which were made to test deletion of local files Test COG-475 --- cognee/tests/test_pgvector.py | 145 ++++++++++++++++------------------ 1 file changed, 70 insertions(+), 75 deletions(-) diff --git a/cognee/tests/test_pgvector.py b/cognee/tests/test_pgvector.py index d0326ac91..9554a3f9d 100644 --- a/cognee/tests/test_pgvector.py +++ b/cognee/tests/test_pgvector.py @@ -42,81 +42,76 @@ async def main(): ) cognee.config.system_root_directory(cognee_directory_path) - from cognee.infrastructure.databases.relational.get_relational_engine import get_relational_engine - - engine = get_relational_engine() - await engine.delete_data_entity("2cba57c3-d7ec-5746-b819-d89f87f05c18") - - # await cognee.prune.prune_data() - # await cognee.prune.prune_system(metadata = True) - - # dataset_name_1 = "natural_language" - # dataset_name_2 = "quantum" - # - # explanation_file_path = os.path.join( - # pathlib.Path(__file__).parent, "test_data/Natural_language_processing.txt" - # ) - # await cognee.add([explanation_file_path], dataset_name_1) - # - # text = """A quantum computer is a computer that takes advantage of quantum mechanical phenomena. - # At small scales, physical matter exhibits properties of both particles and waves, and quantum computing leverages this behavior, specifically quantum superposition and entanglement, using specialized hardware that supports the preparation and manipulation of quantum states. - # Classical physics cannot explain the operation of these quantum devices, and a scalable quantum computer could perform some calculations exponentially faster (with respect to input size scaling) than any modern "classical" computer. In particular, a large-scale quantum computer could break widely used encryption schemes and aid physicists in performing physical simulations; however, the current state of the technology is largely experimental and impractical, with several obstacles to useful applications. Moreover, scalable quantum computers do not hold promise for many practical tasks, and for many important tasks quantum speedups are proven impossible. - # The basic unit of information in quantum computing is the qubit, similar to the bit in traditional digital electronics. Unlike a classical bit, a qubit can exist in a superposition of its two "basis" states. When measuring a qubit, the result is a probabilistic output of a classical bit, therefore making quantum computers nondeterministic in general. If a quantum computer manipulates the qubit in a particular way, wave interference effects can amplify the desired measurement results. The design of quantum algorithms involves creating procedures that allow a quantum computer to perform calculations efficiently and quickly. - # Physically engineering high-quality qubits has proven challenging. If a physical qubit is not sufficiently isolated from its environment, it suffers from quantum decoherence, introducing noise into calculations. Paradoxically, perfectly isolating qubits is also undesirable because quantum computations typically need to initialize qubits, perform controlled qubit interactions, and measure the resulting quantum states. Each of those operations introduces errors and suffers from noise, and such inaccuracies accumulate. - # In principle, a non-quantum (classical) computer can solve the same computational problems as a quantum computer, given enough time. Quantum advantage comes in the form of time complexity rather than computability, and quantum complexity theory shows that some quantum algorithms for carefully selected tasks require exponentially fewer computational steps than the best known non-quantum algorithms. Such tasks can in theory be solved on a large-scale quantum computer whereas classical computers would not finish computations in any reasonable amount of time. However, quantum speedup is not universal or even typical across computational tasks, since basic tasks such as sorting are proven to not allow any asymptotic quantum speedup. Claims of quantum supremacy have drawn significant attention to the discipline, but are demonstrated on contrived tasks, while near-term practical use cases remain limited. - # """ - # - # await cognee.add([text], dataset_name_2) - # - # await cognee.cognify([dataset_name_2, dataset_name_1]) - # - # from cognee.infrastructure.databases.vector import get_vector_engine - # - # # Test getting of documents for search per dataset - # from cognee.modules.users.permissions.methods import get_document_ids_for_user - # user = await get_default_user() - # document_ids = await get_document_ids_for_user(user.id, [dataset_name_1]) - # assert len(document_ids) == 1, f"Number of expected documents doesn't match {len(document_ids)} != 1" - # - # # Test getting of documents for search when no dataset is provided - # user = await get_default_user() - # document_ids = await get_document_ids_for_user(user.id) - # assert len(document_ids) == 2, f"Number of expected documents doesn't match {len(document_ids)} != 2" - # - # vector_engine = get_vector_engine() - # random_node = (await vector_engine.search("entity_name", "Quantum computer"))[0] - # random_node_name = random_node.payload["text"] - # - # search_results = await cognee.search(SearchType.INSIGHTS, query_text = random_node_name) - # assert len(search_results) != 0, "The search results list is empty." - # print("\n\nExtracted sentences are:\n") - # for result in search_results: - # print(f"{result}\n") - # - # search_results = await cognee.search(SearchType.CHUNKS, query_text = random_node_name, datasets=[dataset_name_2]) - # assert len(search_results) != 0, "The search results list is empty." - # print("\n\nExtracted chunks are:\n") - # for result in search_results: - # print(f"{result}\n") - # - # search_results = await cognee.search(SearchType.SUMMARIES, query_text = random_node_name) - # assert len(search_results) != 0, "Query related summaries don't exist." - # print("\n\nExtracted summaries are:\n") - # for result in search_results: - # print(f"{result}\n") - # - # history = await cognee.get_search_history() - # assert len(history) == 6, "Search history is not correct." - # - # results = await brute_force_triplet_search('What is a quantum computer?') - # assert len(results) > 0 - - # await cognee.prune.prune_data() - # assert not os.path.isdir(data_directory_path), "Local data files are not deleted" - # - # await cognee.prune.prune_system(metadata=True) - # tables_in_database = await vector_engine.get_table_names() - # assert len(tables_in_database) == 0, "PostgreSQL database is not empty" + await cognee.prune.prune_data() + await cognee.prune.prune_system(metadata = True) + + dataset_name_1 = "natural_language" + dataset_name_2 = "quantum" + + explanation_file_path = os.path.join( + pathlib.Path(__file__).parent, "test_data/Natural_language_processing.txt" + ) + await cognee.add([explanation_file_path], dataset_name_1) + + text = """A quantum computer is a computer that takes advantage of quantum mechanical phenomena. + At small scales, physical matter exhibits properties of both particles and waves, and quantum computing leverages this behavior, specifically quantum superposition and entanglement, using specialized hardware that supports the preparation and manipulation of quantum states. + Classical physics cannot explain the operation of these quantum devices, and a scalable quantum computer could perform some calculations exponentially faster (with respect to input size scaling) than any modern "classical" computer. In particular, a large-scale quantum computer could break widely used encryption schemes and aid physicists in performing physical simulations; however, the current state of the technology is largely experimental and impractical, with several obstacles to useful applications. Moreover, scalable quantum computers do not hold promise for many practical tasks, and for many important tasks quantum speedups are proven impossible. + The basic unit of information in quantum computing is the qubit, similar to the bit in traditional digital electronics. Unlike a classical bit, a qubit can exist in a superposition of its two "basis" states. When measuring a qubit, the result is a probabilistic output of a classical bit, therefore making quantum computers nondeterministic in general. If a quantum computer manipulates the qubit in a particular way, wave interference effects can amplify the desired measurement results. The design of quantum algorithms involves creating procedures that allow a quantum computer to perform calculations efficiently and quickly. + Physically engineering high-quality qubits has proven challenging. If a physical qubit is not sufficiently isolated from its environment, it suffers from quantum decoherence, introducing noise into calculations. Paradoxically, perfectly isolating qubits is also undesirable because quantum computations typically need to initialize qubits, perform controlled qubit interactions, and measure the resulting quantum states. Each of those operations introduces errors and suffers from noise, and such inaccuracies accumulate. + In principle, a non-quantum (classical) computer can solve the same computational problems as a quantum computer, given enough time. Quantum advantage comes in the form of time complexity rather than computability, and quantum complexity theory shows that some quantum algorithms for carefully selected tasks require exponentially fewer computational steps than the best known non-quantum algorithms. Such tasks can in theory be solved on a large-scale quantum computer whereas classical computers would not finish computations in any reasonable amount of time. However, quantum speedup is not universal or even typical across computational tasks, since basic tasks such as sorting are proven to not allow any asymptotic quantum speedup. Claims of quantum supremacy have drawn significant attention to the discipline, but are demonstrated on contrived tasks, while near-term practical use cases remain limited. + """ + + await cognee.add([text], dataset_name_2) + + await cognee.cognify([dataset_name_2, dataset_name_1]) + + from cognee.infrastructure.databases.vector import get_vector_engine + + # Test getting of documents for search per dataset + from cognee.modules.users.permissions.methods import get_document_ids_for_user + user = await get_default_user() + document_ids = await get_document_ids_for_user(user.id, [dataset_name_1]) + assert len(document_ids) == 1, f"Number of expected documents doesn't match {len(document_ids)} != 1" + + # Test getting of documents for search when no dataset is provided + user = await get_default_user() + document_ids = await get_document_ids_for_user(user.id) + assert len(document_ids) == 2, f"Number of expected documents doesn't match {len(document_ids)} != 2" + + vector_engine = get_vector_engine() + random_node = (await vector_engine.search("entity_name", "Quantum computer"))[0] + random_node_name = random_node.payload["text"] + + search_results = await cognee.search(SearchType.INSIGHTS, query_text = random_node_name) + assert len(search_results) != 0, "The search results list is empty." + print("\n\nExtracted sentences are:\n") + for result in search_results: + print(f"{result}\n") + + search_results = await cognee.search(SearchType.CHUNKS, query_text = random_node_name, datasets=[dataset_name_2]) + assert len(search_results) != 0, "The search results list is empty." + print("\n\nExtracted chunks are:\n") + for result in search_results: + print(f"{result}\n") + + search_results = await cognee.search(SearchType.SUMMARIES, query_text = random_node_name) + assert len(search_results) != 0, "Query related summaries don't exist." + print("\n\nExtracted summaries are:\n") + for result in search_results: + print(f"{result}\n") + + history = await cognee.get_search_history() + assert len(history) == 6, "Search history is not correct." + + results = await brute_force_triplet_search('What is a quantum computer?') + assert len(results) > 0 + + await cognee.prune.prune_data() + assert not os.path.isdir(data_directory_path), "Local data files are not deleted" + + await cognee.prune.prune_system(metadata=True) + tables_in_database = await vector_engine.get_table_names() + assert len(tables_in_database) == 0, "PostgreSQL database is not empty" if __name__ == "__main__": import asyncio From 1406b6f0781baa1dfab0b3348e36bc30d7368ee5 Mon Sep 17 00:00:00 2001 From: Igor Ilic Date: Thu, 19 Dec 2024 17:30:02 +0100 Subject: [PATCH 15/32] test: Add test to verify deletion of local files Added test that checks local files created by cognee will be deleted and those not created by cognee won't Test COG-475 --- .../sqlalchemy/SqlAlchemyAdapter.py | 4 +- cognee/tests/test_pgvector.py | 53 +++++++++++++++---- 2 files changed, 45 insertions(+), 12 deletions(-) diff --git a/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py b/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py index 3b9a36e71..006f2ed98 100644 --- a/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py +++ b/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py @@ -128,7 +128,7 @@ async def delete_data_entity(self, data_id: UUID): # Check if other data objects point to the same raw data location raw_data_location_entities = (await session.execute( - select(Data).where(Data.raw_data_location == data_entity.raw_data_location))).all() + select(Data.raw_data_location).where(Data.raw_data_location == data_entity.raw_data_location))).all() # Don't delete local file unless this is the only reference to the file in the database if len(raw_data_location_entities) == 1: @@ -136,7 +136,7 @@ async def delete_data_entity(self, data_id: UUID): from cognee.base_config import get_base_config config = get_base_config() if config.data_root_directory in raw_data_location_entities[0].raw_data_location: - os.remove(raw_data_location_entities[0]) + os.remove(raw_data_location_entities[0].raw_data_location) await session.execute(delete(Data).where(Data.id == data_id)) await session.commit() diff --git a/cognee/tests/test_pgvector.py b/cognee/tests/test_pgvector.py index 9554a3f9d..9da34c3d4 100644 --- a/cognee/tests/test_pgvector.py +++ b/cognee/tests/test_pgvector.py @@ -2,12 +2,52 @@ import logging import pathlib import cognee + +from cognee.modules.data.models import Data from cognee.api.v1.search import SearchType from cognee.modules.retrieval.brute_force_triplet_search import brute_force_triplet_search from cognee.modules.users.methods import get_default_user logging.basicConfig(level=logging.DEBUG) +async def test_local_file_deletion(data_text, file_location): + from sqlalchemy import select + import hashlib + from cognee.infrastructure.databases.relational import get_relational_engine + + engine = get_relational_engine() + + async with engine.get_async_session() as session: + # Get hash of data contents + encoded_text = data_text.encode("utf-8") + data_hash = hashlib.md5(encoded_text).hexdigest() + # Get data entry from database based on hash contents + data = (await session.scalars(select(Data).where(Data.content_hash == data_hash))).one() + assert os.path.isfile(data.raw_data_location), f"Data location doesn't exist: {data.raw_data_location}" + # Test deletion of data along with local files created by cognee + await engine.delete_data_entity(data.id) + assert not os.path.exists(data.raw_data_location), f"Data location exists: {data.raw_data_location}" + + async with engine.get_async_session() as session: + # Get data entry from database based on file path + data = (await session.scalars(select(Data).where(Data.raw_data_location == file_location))).one() + assert os.path.isfile(data.raw_data_location), f"Data location doesn't exist: {data.raw_data_location}" + # Test local files not created by cognee won't get deleted + await engine.delete_data_entity(data.id) + assert os.path.exists(data.raw_data_location), f"Data location doesn't exists: {data.raw_data_location}" + +async def test_getting_of_documents(dataset_name_1): + # Test getting of documents for search per dataset + from cognee.modules.users.permissions.methods import get_document_ids_for_user + user = await get_default_user() + document_ids = await get_document_ids_for_user(user.id, [dataset_name_1]) + assert len(document_ids) == 1, f"Number of expected documents doesn't match {len(document_ids)} != 1" + + # Test getting of documents for search when no dataset is provided + user = await get_default_user() + document_ids = await get_document_ids_for_user(user.id) + assert len(document_ids) == 2, f"Number of expected documents doesn't match {len(document_ids)} != 2" + async def main(): cognee.config.set_vector_db_config( @@ -67,16 +107,7 @@ async def main(): from cognee.infrastructure.databases.vector import get_vector_engine - # Test getting of documents for search per dataset - from cognee.modules.users.permissions.methods import get_document_ids_for_user - user = await get_default_user() - document_ids = await get_document_ids_for_user(user.id, [dataset_name_1]) - assert len(document_ids) == 1, f"Number of expected documents doesn't match {len(document_ids)} != 1" - - # Test getting of documents for search when no dataset is provided - user = await get_default_user() - document_ids = await get_document_ids_for_user(user.id) - assert len(document_ids) == 2, f"Number of expected documents doesn't match {len(document_ids)} != 2" + await test_getting_of_documents(dataset_name_1) vector_engine = get_vector_engine() random_node = (await vector_engine.search("entity_name", "Quantum computer"))[0] @@ -106,6 +137,8 @@ async def main(): results = await brute_force_triplet_search('What is a quantum computer?') assert len(results) > 0 + await test_local_file_deletion(text, explanation_file_path) + await cognee.prune.prune_data() assert not os.path.isdir(data_directory_path), "Local data files are not deleted" From de2394c392ac5c7b720d0eba2fb28baaa86840a4 Mon Sep 17 00:00:00 2001 From: alekszievr <44192193+alekszievr@users.noreply.github.com> Date: Fri, 20 Dec 2024 14:06:40 +0100 Subject: [PATCH 16/32] Ingest non-code files (#395) * Ingest non-code files * Fixing review findings --- cognee/api/v1/cognify/code_graph_pipeline.py | 43 ++++++++++++++--- cognee/tasks/repo_processor/__init__.py | 1 + .../repo_processor/get_non_code_files.py | 48 +++++++++++++++++++ examples/python/code_graph_example.py | 11 +++-- 4 files changed, 92 insertions(+), 11 deletions(-) create mode 100644 cognee/tasks/repo_processor/get_non_code_files.py diff --git a/cognee/api/v1/cognify/code_graph_pipeline.py b/cognee/api/v1/cognify/code_graph_pipeline.py index c35f9719f..8e92d08e0 100644 --- a/cognee/api/v1/cognify/code_graph_pipeline.py +++ b/cognee/api/v1/cognify/code_graph_pipeline.py @@ -2,29 +2,37 @@ import logging from pathlib import Path +from cognee.base_config import get_base_config +from cognee.modules.cognify.config import get_cognify_config from cognee.modules.pipelines import run_tasks from cognee.modules.pipelines.tasks.Task import Task +from cognee.modules.users.methods import get_default_user +from cognee.shared.data_models import KnowledgeGraph, MonitoringTool +from cognee.tasks.documents import (classify_documents, + extract_chunks_from_documents) +from cognee.tasks.graph import extract_graph_from_data +from cognee.tasks.ingestion import ingest_data_with_metadata from cognee.tasks.repo_processor import (enrich_dependency_graph, expand_dependency_graph, + get_data_list_for_user, + get_non_code_files, get_repo_file_dependencies) from cognee.tasks.storage import add_data_points -from cognee.base_config import get_base_config -from cognee.shared.data_models import MonitoringTool - monitoring = get_base_config().monitoring_tool if monitoring == MonitoringTool.LANGFUSE: from langfuse.decorators import observe -from cognee.tasks.summarization import summarize_code +from cognee.tasks.summarization import summarize_code, summarize_text logger = logging.getLogger("code_graph_pipeline") update_status_lock = asyncio.Lock() @observe -async def run_code_graph_pipeline(repo_path): +async def run_code_graph_pipeline(repo_path, include_docs=True): import os import pathlib + import cognee from cognee.infrastructure.databases.relational import create_db_and_tables @@ -38,6 +46,9 @@ async def run_code_graph_pipeline(repo_path): await cognee.prune.prune_system(metadata=True) await create_db_and_tables() + cognee_config = get_cognify_config() + user = await get_default_user() + tasks = [ Task(get_repo_file_dependencies), Task(enrich_dependency_graph, task_config={"batch_size": 50}), @@ -46,4 +57,24 @@ async def run_code_graph_pipeline(repo_path): Task(add_data_points, task_config={"batch_size": 50}), ] - return run_tasks(tasks, repo_path, "cognify_code_pipeline") + if include_docs: + non_code_tasks = [ + Task(get_non_code_files, task_config={"batch_size": 50}), + Task(ingest_data_with_metadata, dataset_name="repo_docs", user=user), + Task(get_data_list_for_user, dataset_name="repo_docs", user=user), + Task(classify_documents), + Task(extract_chunks_from_documents), + Task(extract_graph_from_data, graph_model=KnowledgeGraph, task_config={"batch_size": 50}), + Task( + summarize_text, + summarization_model=cognee_config.summarization_model, + task_config={"batch_size": 50} + ), + ] + + if include_docs: + async for result in run_tasks(non_code_tasks, repo_path): + yield result + + async for result in run_tasks(tasks, repo_path, "cognify_code_pipeline"): + yield result \ No newline at end of file diff --git a/cognee/tasks/repo_processor/__init__.py b/cognee/tasks/repo_processor/__init__.py index 05e111b29..fa754028e 100644 --- a/cognee/tasks/repo_processor/__init__.py +++ b/cognee/tasks/repo_processor/__init__.py @@ -4,4 +4,5 @@ from .enrich_dependency_graph import enrich_dependency_graph from .expand_dependency_graph import expand_dependency_graph +from .get_non_code_files import get_data_list_for_user, get_non_py_files from .get_repo_file_dependencies import get_repo_file_dependencies diff --git a/cognee/tasks/repo_processor/get_non_code_files.py b/cognee/tasks/repo_processor/get_non_code_files.py new file mode 100644 index 000000000..671b998d9 --- /dev/null +++ b/cognee/tasks/repo_processor/get_non_code_files.py @@ -0,0 +1,48 @@ +import os + +import aiofiles + +import cognee.modules.ingestion as ingestion +from cognee.infrastructure.engine import DataPoint +from cognee.modules.data.methods import get_datasets +from cognee.modules.data.methods.get_dataset_data import get_dataset_data +from cognee.modules.data.methods.get_datasets_by_name import \ + get_datasets_by_name +from cognee.modules.data.models import Data +from cognee.modules.data.operations.write_metadata import write_metadata +from cognee.modules.ingestion.data_types import BinaryData +from cognee.modules.users.methods import get_default_user +from cognee.shared.CodeGraphEntities import Repository + + +async def get_non_py_files(repo_path): + """Get files that are not .py files and their contents""" + if not os.path.exists(repo_path): + return {} + + IGNORED_PATTERNS = { + '.git', '__pycache__', '*.pyc', '*.pyo', '*.pyd', + 'node_modules', '*.egg-info' + } + + def should_process(path): + return not any(pattern in path for pattern in IGNORED_PATTERNS) + + non_py_files_paths = [ + os.path.join(root, file) + for root, _, files in os.walk(repo_path) for file in files + if not file.endswith(".py") and should_process(os.path.join(root, file)) + ] + return non_py_files_paths + + +async def get_data_list_for_user(_, dataset_name, user): + # Note: This method is meant to be used as a Task in a pipeline. + # By the nature of pipelines, the output of the previous Task will be passed as the first argument here, + # but it is not needed here, hence the "_" input. + datasets = await get_datasets_by_name(dataset_name, user.id) + data_documents: list[Data] = [] + for dataset in datasets: + data_docs: list[Data] = await get_dataset_data(dataset_id=dataset.id) + data_documents.extend(data_docs) + return data_documents \ No newline at end of file diff --git a/examples/python/code_graph_example.py b/examples/python/code_graph_example.py index 9189de46c..c0b91972b 100644 --- a/examples/python/code_graph_example.py +++ b/examples/python/code_graph_example.py @@ -1,15 +1,16 @@ import argparse import asyncio + from cognee.api.v1.cognify.code_graph_pipeline import run_code_graph_pipeline -async def main(repo_path): - async for result in await run_code_graph_pipeline(repo_path): +async def main(repo_path, include_docs): + async for result in run_code_graph_pipeline(repo_path, include_docs): print(result) if __name__ == "__main__": parser = argparse.ArgumentParser() - parser.add_argument("--repo-path", type=str, required=True, help="Path to the repository") + parser.add_argument("--repo_path", type=str, required=True, help="Path to the repository") + parser.add_argument("--include_docs", type=bool, default=True, help="Whether or not to process non-code files") args = parser.parse_args() - asyncio.run(main(args.repo_path)) - + asyncio.run(main(args.repo_path, args.include_docs)) \ No newline at end of file From d7195f9786843f186cd2d9a13f3bebe14200f363 Mon Sep 17 00:00:00 2001 From: Igor Ilic Date: Fri, 20 Dec 2024 15:17:35 +0100 Subject: [PATCH 17/32] test: Update test regarding message Update assertion message, add veryfing of file existence --- .../databases/relational/sqlalchemy/SqlAlchemyAdapter.py | 8 +++++++- cognee/tests/test_pgvector.py | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py b/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py index 006f2ed98..ce3a479e5 100644 --- a/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py +++ b/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py @@ -132,11 +132,17 @@ async def delete_data_entity(self, data_id: UUID): # Don't delete local file unless this is the only reference to the file in the database if len(raw_data_location_entities) == 1: + # delete local file only if it's created by cognee from cognee.base_config import get_base_config config = get_base_config() + if config.data_root_directory in raw_data_location_entities[0].raw_data_location: - os.remove(raw_data_location_entities[0].raw_data_location) + if os.path.exists(raw_data_location_entities[0].raw_data_location): + os.remove(raw_data_location_entities[0].raw_data_location) + else: + # Report bug as file should exist + pass await session.execute(delete(Data).where(Data.id == data_id)) await session.commit() diff --git a/cognee/tests/test_pgvector.py b/cognee/tests/test_pgvector.py index 9da34c3d4..417904089 100644 --- a/cognee/tests/test_pgvector.py +++ b/cognee/tests/test_pgvector.py @@ -26,7 +26,8 @@ async def test_local_file_deletion(data_text, file_location): assert os.path.isfile(data.raw_data_location), f"Data location doesn't exist: {data.raw_data_location}" # Test deletion of data along with local files created by cognee await engine.delete_data_entity(data.id) - assert not os.path.exists(data.raw_data_location), f"Data location exists: {data.raw_data_location}" + assert not os.path.exists( + data.raw_data_location), f"Data location still exists after deletion: {data.raw_data_location}" async with engine.get_async_session() as session: # Get data entry from database based on file path From 291f1c5a55abacdef3356fabd37ee0a677db34e1 Mon Sep 17 00:00:00 2001 From: alekszievr <44192193+alekszievr@users.noreply.github.com> Date: Fri, 20 Dec 2024 15:21:10 +0100 Subject: [PATCH 18/32] Handle retryerrors in code summary (#396) * Handle retryerrors in code summary * Log instead of print --- .../modules/data/extraction/extract_summary.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/cognee/modules/data/extraction/extract_summary.py b/cognee/modules/data/extraction/extract_summary.py index 102d5bff4..0d3feef95 100644 --- a/cognee/modules/data/extraction/extract_summary.py +++ b/cognee/modules/data/extraction/extract_summary.py @@ -1,12 +1,17 @@ -from typing import Type +import logging import os +from typing import Type + +from instructor.exceptions import InstructorRetryException from pydantic import BaseModel +from tenacity import RetryError from cognee.infrastructure.llm.get_llm_client import get_llm_client from cognee.infrastructure.llm.prompts import read_query_prompt -from cognee.shared.data_models import SummarizedCode, SummarizedClass, SummarizedFunction +from cognee.shared.data_models import SummarizedCode from cognee.tasks.summarization.mock_summary import get_mock_summarized_code +logger = logging.getLogger("extract_summary") async def extract_summary(content: str, response_model: Type[BaseModel]): llm_client = get_llm_client() @@ -14,7 +19,7 @@ async def extract_summary(content: str, response_model: Type[BaseModel]): system_prompt = read_query_prompt("summarize_content.txt") llm_output = await llm_client.acreate_structured_output(content, system_prompt, response_model) - + return llm_output async def extract_code_summary(content: str): @@ -27,5 +32,10 @@ async def extract_code_summary(content: str): result = get_mock_summarized_code() return result else: - result = await extract_summary(content, response_model=SummarizedCode) + try: + result = await extract_summary(content, response_model=SummarizedCode) + except (RetryError, InstructorRetryException) as e: + logger.error("Failed to extract code summary, falling back to mock summary", exc_info=e) + result = get_mock_summarized_code() + return result From c8a1f04b4c4622c4fb3900dcb22fdbbea2fe7a00 Mon Sep 17 00:00:00 2001 From: hajdul88 <52442977+hajdul88@users.noreply.github.com> Date: Fri, 20 Dec 2024 16:19:50 +0100 Subject: [PATCH 19/32] fix: updates the acreate_structured_output --- cognee/infrastructure/llm/openai/adapter.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cognee/infrastructure/llm/openai/adapter.py b/cognee/infrastructure/llm/openai/adapter.py index 3eb3528e2..bb5af15f2 100644 --- a/cognee/infrastructure/llm/openai/adapter.py +++ b/cognee/infrastructure/llm/openai/adapter.py @@ -12,7 +12,8 @@ from cognee.infrastructure.llm.prompts import read_query_prompt from cognee.base_config import get_base_config -if MonitoringTool.LANGFUSE: +monitoring = get_base_config().monitoring_tool +if monitoring == MonitoringTool.LANGFUSE: from langfuse.decorators import observe class OpenAIAdapter(LLMInterface): @@ -43,7 +44,7 @@ def __init__( base_config = get_base_config() - @observe() + @observe(as_type='generation') async def acreate_structured_output(self, text_input: str, system_prompt: str, response_model: Type[BaseModel]) -> BaseModel: From 450bef4c912335f65c6ccf4905af4636aded7364 Mon Sep 17 00:00:00 2001 From: Igor Ilic Date: Fri, 20 Dec 2024 16:20:40 +0100 Subject: [PATCH 20/32] chore: Add logging to sentry when file which should exist can't be found Log to sentry that a file which should exist can't be found Chore COG-475 --- .../databases/relational/sqlalchemy/SqlAlchemyAdapter.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py b/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py index ce3a479e5..c197efc72 100644 --- a/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py +++ b/cognee/infrastructure/databases/relational/sqlalchemy/SqlAlchemyAdapter.py @@ -1,5 +1,6 @@ import os from os import path +import logging from uuid import UUID from typing import Optional from typing import AsyncGenerator, List @@ -14,6 +15,9 @@ from ..ModelBase import Base + +logger = logging.getLogger(__name__) + class SQLAlchemyAdapter(): def __init__(self, connection_string: str): self.db_path: str = None @@ -142,7 +146,7 @@ async def delete_data_entity(self, data_id: UUID): os.remove(raw_data_location_entities[0].raw_data_location) else: # Report bug as file should exist - pass + logger.error("Local file which should exist can't be found.") await session.execute(delete(Data).where(Data.id == data_id)) await session.commit() From b73a35fec6d2d1128e8ef33312568fe363e11d0a Mon Sep 17 00:00:00 2001 From: vasilije Date: Mon, 23 Dec 2024 14:16:57 +0100 Subject: [PATCH 21/32] Fix diagram --- README.md | 87 ++------------------------------------ assets/architecture.png | Bin 78435 -> 0 bytes assets/cognee_diagram.png | Bin 0 -> 437814 bytes 3 files changed, 4 insertions(+), 83 deletions(-) delete mode 100644 assets/architecture.png create mode 100644 assets/cognee_diagram.png diff --git a/README.md b/README.md index f0aa2a280..1dfdbd39b 100644 --- a/README.md +++ b/README.md @@ -193,93 +193,14 @@ if __name__ == '__main__': When you run this script, you will see step-by-step messages in the console that help you trace the execution flow and understand what the script is doing at each stage. A version of this example is here: `examples/python/simple_example.py` -### Create your own memory store +### Understand our architecture cognee framework consists of tasks that can be grouped into pipelines. Each task can be an independent part of business logic, that can be tied to other tasks to form a pipeline. These tasks persist data into your memory store enabling you to search for relevant context of past conversations, documents, or any other data you have stored. - - -### Example: Classify your documents - -Here is an example of how it looks for a default cognify pipeline: - -1. To prepare the data for the pipeline run, first we need to add it to our metastore and normalize it: - -Start with: -``` -text = """Natural language processing (NLP) is an interdisciplinary - subfield of computer science and information retrieval""" - -await cognee.add(text) # Add a new piece of information -``` - -2. In the next step we make a task. The task can be any business logic we need, but the important part is that it should be encapsulated in one function. - -Here we show an example of creating a naive LLM classifier that takes a Pydantic model and then stores the data in both the graph and vector stores after analyzing each chunk. -We provided just a snippet for reference, but feel free to check out the implementation in our repo. - -``` -async def chunk_naive_llm_classifier( - data_chunks: list[DocumentChunk], - classification_model: Type[BaseModel] -): - # Extract classifications asynchronously - chunk_classifications = await asyncio.gather( - *(extract_categories(chunk.text, classification_model) for chunk in data_chunks) - ) - - # Collect classification data points using a set to avoid duplicates - classification_data_points = { - uuid5(NAMESPACE_OID, cls.label.type) - for cls in chunk_classifications - } | { - uuid5(NAMESPACE_OID, subclass.value) - for cls in chunk_classifications - for subclass in cls.label.subclass - } - - vector_engine = get_vector_engine() - collection_name = "classification" - - # Define the payload schema - class Keyword(BaseModel): - uuid: str - text: str - chunk_id: str - document_id: str - - # Ensure the collection exists and retrieve existing data points - if not await vector_engine.has_collection(collection_name): - await vector_engine.create_collection(collection_name, payload_schema=Keyword) - existing_points_map = {} - else: - existing_points_map = {} - return data_chunks - -... - -``` - -We have many tasks that can be used in your pipelines, and you can also create your tasks to fit your business logic. - - -3. Once we have our tasks, it is time to group them into a pipeline. -This simplified snippet demonstrates how tasks can be added to a pipeline, and how they can pass the information forward from one to another. - -``` - - -Task( - chunk_naive_llm_classifier, - classification_model = cognee_config.classification_model, -) - -pipeline = run_tasks(tasks, documents) - -``` - -To see the working code, check cognee.api.v1.cognify default pipeline in our repo. +
+cognee concept diagram +
## Vector retrieval, Graphs and LLMs diff --git a/assets/architecture.png b/assets/architecture.png deleted file mode 100644 index 3911fdc21b97fe0ecf60715b9d6ef947cc364611..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78435 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 p2XU^-#N#gAUI>N3eo}XZ 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 C)a0iC diff --git a/assets/cognee_diagram.png b/assets/cognee_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..4eb45e45e9ea688988140e42e5b671c9cd0b25d1 GIT binary patch literal 437814 zcmeFZ2T+yS+AfG~o1jf?Kt;uXA|PNONH!s& zybKi;%?B!~jZ|w_;}x%H`Gfes73MM`XQ>j(cK1g3wTwcp6+(4FGpY0Ucl z-yiu-?Js=8{nOv};58Gmy1cG+`M=!5!{2cA5z3A$Zv8fjH=OQ!Cfh48V0`QB_kVwc z^9Qq{eZtf)wiXT5J*_q~(p-L{<{q^MhO=ZK(?Ceaxx4?Nbks++zRP0y zl0UJeC5&V&6lcDJf>9`%T98Dc)XQ;~kzt-A&utY$+`s>&RD{n9;=d z)UFpic1(&>zplhm=)*6O=6vVC@&ar~RgI=zSG~B6m{p$ozB5Q zgQHn{?9(>9-}3O6z-_pLP0dOgu5siWH(D66+DCT5SuOIZxr2~lr65cbsfyeT0Ue4}+e~|Ns zeam;kw8@+E4@nV{dGC%ZEhVHa{<1o!&uqrF=xMG0dy^Nr&)xMyqVX0kzr17XHhk5k zJp(3xv>qVuDDYKS8%&w`<$IR*rY2020k5?;m<6;K-B9@VuTNiF{)Vo)oy!Z~aXpmf z-@klu6ZwD*W5Kl7a$}6#e?ToT)aJjT<*A9o?>$VI~|U8FEET%-ze&Yf$X~ zRm0!S%_@)RxP3xGLIMK=Ef(i(goTBfjvudVi})oOsn&=9R!DU!ry0dtx7kFUp1X15 z#t}|V`T9f+h3nTt7pFTmE{qnlH>DZ|eC_CPi>aEIPgGY6aaznc9(+RU;ei7O24&pv zqgNCC($CLtcYT^cqs&R2GLHN&U%ou_@L-D>-7TRz+k8o;@vT;EioSxt!gzJ8Qj&H; zv(}9py`P^PRL*nE$(z>TS$N*x1V2BA!xP4%F4YJa>Ok z?cTXqm9zw(qe|D^DYrV-8&YyxjV3P2L|l5tVLxq>VoXtIV`Gc7-0mhEz-3q!r<7#T zRkV#ye(ldCMClDm%ArA{^unUZMT+gTv9o(+JJE0Z^#LQt^}p8&pFe-|@4q&iSuRk5 zvv8*ZtQxthYFSn()=WoMKib7v)s&(?kxysbx$}WcqDf&;jozB)e#w~^S`ZJnPSj*!g8?TxXM~}ufU+7 z+89|zR<%sIXDkY-=Ujie)OMrOWN%_KGBab1DY^cF4w<;+?cgx&S>udayGJ5Ik;PBl<+-xhjAK3eL`(oDG%$F&c? zsei{r7pz z8HcIXsJ`l`<}k5eF42T`nqrhlLv>_x0Jm{nq9%)m4b6wcfN10h*qDFQp$(w4}DmORRA2HO@(&DbQZrwWNEUWm*;nr6T4T@?x zw(>IC&b&vCT#Q#vsj8L~Vnv{fKKB-m6nh?;>oCX6#Z|YLe&wq6o}Q=+k9IX?xyyuU z75gx2yeEE3aS8*s}9mV0rcrSM4`)qGz*lcf@r`Q0H zA*apg4TtZaX!G9|&^rbGtE>KV#Yc`Uvx?IaU%!6kxbbEndaIyW&Gp4KXzWXaPti>*lQ;? zMR9U^Q={DUy>-o{HIkB&Gcz+gJ9>M2cc<}L_CG~^aW}2oK*0IW9|97nj-;@uWrlBK zx#H);Y1GmnQA;KKO1spbY{~Jq*VoS7{;h?UO|_!v8H;$aKew^^jfoYf&tzo!)1T`8 z^5w}us)U3@zP{Th83WE=>XUO8EpYbfnC;uPY3-`!+-~iLzYoaQDGz4-c0ARvS$kJ~ zoYI(w-fzx)Po6#vAE-~H>mc!V)|I+3^_6-~CN|yu`}dB5%i+JEKPnSz(^97`R8)hE z`Y$BBihNl0s~v}jhxO_cfrz!uZ*m$<;uqMrzVo;oA zJ(4ionnl+UEMV9F_k%57Csy7kg|g1|{(Tl+UfyzLQuZW*cwc>FHauZDf1O zf~xUF$)+6_P>Gn!HC60-U)~=_NX1HrT^Jo3^G-`kYiVt@M1?%W$T(2(@?2Avbt0BD zGC4W?=5N={S5=rF(0chtnlHsv~Gv1#PSg@-fj5wvfJTzJ?&`+6}eO}}2^!Gi~8 zmX`9UxOgAqs@1DwuYY=&dF%Uf??656%^Jxqu3Ittehs~x=U#!DbW=@In|AKp`Owp| z9=V*14Et12(4#DJEq88}e2SjDWpBlqmoHyl_-hJf?b4-7G6n{5--EJDzMS=#V^>KP zL-Q+3wQow+_2)A54=>qdiZ6G!+;UhlbNuqJy0#~!;j_uncdCa?S@Tp(D`a*ZK z8sD63JE14aTvsmdHx}sK-hMU3u=$F(KZo=)X8F#pu87Xg8$o>55_VI=wJ0-&Er~Rt z*pvR2jHJDe)7NHZXPH@9#S!AQ9((wbt%j5jF)(bM_WPt;pP)t}G`wVq-ea$TvT^QA zod-5U(FwzSCQ+S{NC#9aG$k9y2AsyW?CLE74=cKssIXV(@i^e*DJ&+N~562 zVPVl}!}p)Nce5&7boP4zJ&l~T=$l}wiipd!@rrNG`m$@J&g?+nH_rZk;dWbEdZOpM zcc;Ze1l7)*ITP7c8!Io153Whpl?4duOQ}~sc{ua#{rdx5z8XGBNi)}kYhNiSO!U{* z#;b5Yq8C!9IL;Z~)?;Eu6RVJEA)~J5^UU372Ar%7vD)SO2kNADUP-FFt2xZmyU@ zp-k^3Uv_`P9_A-a56_+{PxAEiYy+^VX1LePtdJ0gTK5VC!S;(QZSu8`t4o6gR1gEj zX&(56{)fBkE<6@`wTn|P8il;S_LXm&P0yZ%iFys!>F`gQxaSL-)QbZ5ZP~Jgv_`Zf zS!76srl){*9ObQ++x6?$2c?;Ri5C--vKiywsGJuR*U)(G;q&R4L|_pO!0eA1<*})$ z`oYGeiNU1uHt9z)+SBIw?mKt!-!k#oKOK0AkM9-s)&IEWg;Yygc6B-AE2^J(P*S35 z#`U9~j~=ngIp-QQzMcK{aUqv`4Cn_vHaV2dj@bo7jsf7S0TDOkAuPFnZZ zucXE60f*Tb(eBz6>nXH&s(zEb#QgmH_~P8iD>QJf5m_(bQSmR5sCTT2uTNtiOy1<^ zm}=19zI|Ky?G4e?P1z}^(E6jDg7yu3m0}w$u&rjyxzyE!D@EFa>yqWHRNE53o6o)Cb+=*?gu#;p@ z&fVWoy8TXh;mVEtFJ{JiSU5Op6sO9mTQB(tw~#PS%l<!)m*(=8 zsG(BD56 z-9vY*yOh^vH2mmxx4pO8R}jdYV>{s$5D)+)%Bfd#1ciyMT(c+2X=yRigo3+CvFMW- zYEF|xLy=Wh_D4UJ%d#@WM~Nc~@>B6YdQHhOz-{_RRWdDNeAv{OMM<~d7Z5lks*+|@ z+iaYt*2^0d7|3DSFDLtg|Ii^}LLYKxy6HZB`c(Mo6G^^$K)iUAyQ0EEQLmaTYh&~z z{VyL}XL8Gvb*tr297L{vxZF7V|nXiAc$sP74v zU=-%mB42jnqs@qOE~A!ciqn#sLV~LF^AlPYBRNz3l_K==A%YHafTW^cuU@?(7>riK z{*6@6tMt+kAxh19AwW;J?W{6bW^$!~aF_ADN4=()9}H;r*TjsDk3ao%y%J3&MYsBJ zkf4L|-o1MXix@|S?7BS#q^8=D|47!CO^rcI!b~a0HU+nL7}Zr^{@cfXN?snbd@O?~ zvuvdMhmRjQZO3~L@X)8Cygk4_UUS#f)J#FU6BZF+IeuJPtLUjTsb9Gcb`yh*)qaXq zk>Yfq5i-qb#@v%RYSyLxoGIv{nlpAIIZ*&A-71%F-i+RB|Lu&ZjIC|v;{2FoMtb^Z zlwaWN*`YMb!>^lPG}Bj*$lpMp#C=7x=Lg`E~>q7WH(TwH1qGXz!0bf3ScTOHX4 zz?%i+m+Z9U*pZFgs7|*I7IbK`$Q^pQuO|a&3y3Z__Da0oQ9j4{bOb?cbo3F@E8E)I z^cr5joShhmLL(G?PPzU3qz*GbzpAdTZlj)wr6n3}l30O&dAGaZ;$AMP zyrwkcM08&X-29t4n7G&FP^T+HwAxnHUn)z;sa5o668 zO_7|%*?~y565z2}ltuHFT;NgLu4fAFrZO^K7uT^fvWAwBN;t=Cq^ig9R&piuQc);3A)kEx_kF`bmp5#j9tgBI>)pD zJNe)F_9;TMz$5aV<3FG}6g8yU>Id$(9Jo^Icl;cXrdK%WxR_gHt4q-WV2{~rx zF3###XX3JS5j<#(K0r9kOi3s03q1C48nFwTt`$y;hm9)5RwC9m~x;JuCXM$munXe4Pr(k}74 zW;^>Hi#Wb8MbQUb%|HJbfUUT;mb2iSiD_?JPS*EXG!4?fEGGKpHI)!+9`r&9TRK2jndplOVLo{9qr|pl%j2J5bk4fHtTePNpjw0h z`1i~t0@D%vba&kr($2*LPgQOm%(9<(dsrgSZ@?}auq(1+-tV~P=pXv@d{!kjN=?PZ zuPXLff?OL}-0=x_TAHJvht-k%0ut9$4ZHB@Y>xGr^z?Kzv6dZCk&&cpk~TL4@+liB zc09kVtZdgQlNaJ6Qz&{`H18=^W8LE7&rb*gwdB8zQ|nK{lEirAN}W+E#iC9 zBD{F=T%o`(shD?{NbBk8c?_@sk1&SV%aEH#seDN)F~Y9)peO%zi-B@UQFVGq5@@^g zhOe%~R{^4n6+6xirJ>a~lV%FLVMoUat)d-gy1X89y3e;-Q=a4dCPyfV0H0+$AUIJh z%G}PHnZ3QYo=*F2Qbfr*E}{8v=bq$B8oia6eiH7qFrYzh4S2GC{Je`!uuWux9?PZF zz#d?|6rTKc^IDGhm zan6L#5PibkWWCx;U}7cP@A!s8GSfp^{TIdh-JUSgSsPqkU73y^jjNao5pq)hcziOJN+y4AB)Y+LzbNA-WFFOi6d$K6tvNd5M8&UW!7R}pTftb`& z9#U=@0-~!AylS(TTToCvZ)q_LHT#g3m1^o0fN&!8;blN@B2)wz=XhCke%@R?Z6)%( zsvp@_jjpwA@7@G1!=`Al=O;3ZR0!unN5?hFs;UNdmxm;>s-yxvU{j$R%%Y{4sf7SR z92D{JJ1h{VnsK54`+R>RJ=Y_aD{+3tL!VwkM4K^6x>0>l43p2ovsqfYK!ii8?^B@u|EeH7ucBLNl_yqQ=Gs@*P)RL4sPA zJ5kYUL4sA7Ose$a*B$sG8)#-IA&$=H(p+?0x zCjz>HF2FH>lwI(i&xe>mI*`qkCC^Wq^E=5Ds?+DqkGjdo$c(lehNR0;#{M*9qHvu| z8O8gnS4x0Qb)-1LFPfh*KJb+3Sw8FG8Zg>XfsL+jfa?wjMaG{!dsd7R))G8<)es;b z70MgB2XNPj4E-Hn1HN*lktnD6?;^oL-;;Pv+MW9{jVfN;*3Gf>b3i@h+QXe#c`A$>+x0Nn!WaGj*k z!VOuGE(Fi>e6+ZvnT0sM(E4~41)Z|MH#SRmVr3#8?zQdRkGuK2)w!feDLox3L%}Tv z6tMu8056Mg?Psc|U*6wabn@17&eMUuao1+})}Kb&TmkcoMdyfFnfY|*Ym2SL{w1bA zW&r>ND^X-f5e6)Z2F22ANq=+p+&Ltmmu4DKEcJ$4GO$Hbsrr!&iJn4B^Cu~qk&%(R z6057KEC5XT)AB3_d~{X+tS>Soaxbu=`*-BlD}+rynq^atT^bQHw=haPRTQX`79akiPVsO>)HAFaiT!2zI5xrNz@Lt5&xO5kwC|J>?G zgpy15Wc%=N0)z(*)KU%~qBNoY6NFlqsFB!J>`NzU@ojXpYP_!+*=^L4ZfE{gMn+1S;Ij+#?q8h+Vev+%&R=prFvKs-O}xIypHJ!Swc;y`NJ8EJW|x z8L!zCQQ{mLA2e{NFEMYiXhM;vFwuL)P)YwaXPi1zn%V?470@>7wQC;(_?ZTq^IZ_V z7v)BvEBKGX!t6kza`vq^kgICLMYj-j2ukb;%iay^)>U3+&k6Swoc(O!?v*VVmzCDT zI3TK=Xf1vlNp#!oRHD4PmrG)ZhbUiWMpL9`9x&=^FhyxUeM4I z1?(nof>~qJtW(<^r3*iQhO*%Mu&W{U^>CY7;Ff!Xg+6109UYpPQJ^D-DU5WTmT_@F zSK8TvPK()SHsS>jz;bKmXrH}zS;KPbRKt!Cej6F0AAEA7J*4I60})oQE!!qPJPObQ zkocOvfL$s>-xHC&PapzAmx)G1_D_HB_%A~lr-O-xGk8EiKn)s49biO?-IP(z{AjW5 zOqcH=Q9^cKU%d@39tM)uV|SFDJ@LS+0SS*T$W^rJx6XhCmT(_2+NdNH5PxQ(8CQw` zJxs*(BF+jY6^Lu^X-Y(3AP|HOQT&v_>jjC3@Nfcan=;I!prUh_emze}Oa82&!|ctz zs)$Hu8#D%Pzq02ry&fF3uZUyox0;@qsS&EC5iwQ-; zzEI9T=8g-9L>MU3JI%lO^UpsY#yK*XSDh9ON(@wVnnYu3j`8}cRcwi4v!Js+SDo(bT zm-mr$1S19f)jgV~cof7!<4ygBUy@*VfMLAC3aTU8G~16>U{~GWfD;nu&JxN`C0U*RPcL#Qyd;OId@PJ;CdkcADhB}7G~ z6%`fV)ceartm`g$e$d+5TC)+%KE--O9g?vkscVphBtirYsd;=X6vm)}65=DXxTiH9 z7MH)EhNzVbf$hP7k=1X*L_C>ctrU3D*T=|4ZKb2r?>AejIJfbcqJ!&Zh(d_PXb8=* zsu^$dJ?Rq{=B8+;PXVkbC*OQR#FL{mC`a5BdrkKt2Zt8c1dY6eiGg~3lvXoqYX#y? zp_FjyR-GrsRIMCUu9|NoI}CCN6FRkrd~;c8DQo!zTE+24#mK!E9$k}Olpf|k2F$-h zgwjVI2%8PY_0&{XC!L=2Vb{oo78$PZ=x z^OyB)dA2Oku6O$sir?uH&5o*~xcIX7VezW=_b%o`Pwl>c74Aqug&=z1-+%x8XN;1U zy3>NC>_vOR5TUr`UNhae(eo=?DTBUsEBFghRDkWdhUVU_+~}8&JZ7nCGLua+QnMUx zY23jGVP(9x^5MgWMdm_wtIirigw>)B2mH>HLf-P)PrueR*b|&GH6gw0k3GD}7d?Fe z&q#p;WAh@_AJAR`%gr6U_6zzEq39>IOO8}cm3dA$RMic4f%4lVqz#v;#Vd2}5prya z)TCHb90+>^Rn@AVFvjswnFHubc7AZC=XV2bAHELB3=lm~}%iEy}%iDPX=oiH0IIBL| zy6xoP^8rC<_QxO5aq8U|oBKz^eb+4&k#gx7GpWGG^BE-qE8xi(_WK2M@+`o(E( zhNwNhjD z0w9B+N`UjY0GWrQT;@kE#BHnZVRm<;W%ob4a$BdrSNPmWo>0BBW8K(bf4|-Vqm6H>T+zLDQU*{Q}~*cn2_fz@*)HrHHsDEv;`TbIirR^Yi`hBySWL ze~c<76Rqib@1B2t-F`beb$X9D!{*ecH=6gkjN9VS$}a-B%?xj$rHw+??CgNntj$4iylE4NkrAr!T=fZe+*)y;G4nd@PcDX+6@gYTSIb4%GX&{ zSE6ooSfVh&7dEbTM1aC>h#+1UtbHxJ>+hf=ig#?-!`ood0*+f1IrPxQa?LcfjOJtt z`bdPs+@zL@dc(-ClLXV0bHtu!7Drs5{cz+1fz?ApFmK^P0ogif2w9XAqY=9nsB--f z7s5+C2FaVCS(-7A7`2^Qo>-?o<6DdKGX~9y)|qVmBi%?YakV}b$V5Ho z=|o9K8WS*rR0cMpfd0$jIDZRhWnc4Xi)x-@>#c>fyoLDF z6I##EXW;Hc9nrYNcRt4jnqQQ&UJt$YHiGs`2c6#<~p~>gH$0#MKI5S!>Sb zwrD2~e0)L*Up0Y&P~G4oF}CX38%43!qJ{Z+4tN;5 z(=5%+tDzu`LzHT^7>t|R2t5=|mq7Wzmk3|=6Rp4}Dmwn{49`c5QH5fGqC5(i%TRIW zrbg-k#~ztt?Kq*T@{e#5!cP$KchacQy9}D)rM$bPhM5s!Y`_FB{O(6MFg#p+*|i#8 zQ1!*9lHw@!9|*xAy0RuPz&7mE7HRl-Y9V{QUXW!g@}>Ne-tP4#1nLIIuTkk-8g!Rhvu$RbfXE`tid z=chhChrul%gQ_AQIak$52J^>|!u5_*J>BFCRNf2G4VZdD;@6-`CW8OdwR+@aXV+l= zA(mX;C^&sJwIe+%tN5Q5$&-5@bR)dvbr6kuSbNtxX2jX_lpELkbh8CRCUPo?RE$z9(VuN*55QDcv-T2(duh#UOi-uVg@faB+N^6o8D~=gQ#fzg0Y% zZ#e+~T?jP;eEiA%`y#2LG_G$jQ^0B1RI_8_j$@~haB^rV7(bDNswFU9agJ0vQ)3>a zS?A{P%1EStAEXR2Hh|%TnkY&7>c4NpZ`Z2~6>jvf`SM{^ zhb2;V93u~UkTSf&p*!{VggCKHqS6r64seSN?NaplmX{E|$Uqh8S@1SSM@MC(q#nLkg)z$SVxjEq_?Rp5DT7)M*rH2UXLn-yttwXjL;v$H?Qh*P0-MBuVPuHa}yax*` zg!Qi=d^Yl>?@htplRgA-gKRW;@0|Ik=K5bHjt^&zZ12q(t|9YFHe=d^gnPl^4o8oQfnx)ro=J!u5S12<^Il$y zi;j+t7ev0G^`)I3NJVI65&!Se9=f7n41%k>88Ads+&Ix)Pnc+dGy2aNvy?G zfNcHJ>(|FLe{)X(1MY>7QTdcfc2r<;NTL-b<;hc?!W%GzGpuxc!=a?F-^0tH!fnqq zw&){oV)A-fOqIwk+;x|o6i%XMVvL6ay~W1HMzkpKl(z=Ag(zw6FcW|65y_4Nw- z_wV;Q!6^G^H;)Vgw#0M}8>I)2h0FDe+c_wa+gX)wWa^M%5EPL*{L#~=PYIyL%#3!k zH3HrL*tI*b|6W38+*yo*pA0#5{mv8T$%McI&tKw(YPZ;=PUT7}sfY7K8^Pe5t`h3F z`1^0oRaI5)kFC+P#S0MUBNHEJ*gJQePOF8DlK|imz)N@e`Aa1Y4GM&L;49tscej@Z z&5D!m@g>1He^3@I5YUksm|5J@1JF$ZaXY)Zfo%HB*H3Q#{5FJbg=iMce&y1w3g5jl z41mTrF)@*88nP)Xt9rH~d(ODm26{n*qsH(TAJi!C05l+`n+1aG?9dX7-addv1p@w{2|5sfRf(zEwFF&#%nR+}F$)K1^BJ)MAtO)= z*w2913a&KKKTzFIgT<6v&*4*e%13mt;s7qsI(P>vEKD5}K0t500)IaRpd%nP&!W!@ zGMw+wqA@Eh9hWs5>u|SY^M8Ok`3pJal0N@it=ewE+1`W15td6#N=hO_u8;%_oXP=@ z`&~8)RzR=8MUZ(P;z}foW8FyvdL5zvrSF~Ex2${S!1n6H>c3z2)Ep-aQRzc4)q6AS(7 z%FBN7%a^Oy(A&R&4y}s%rjVpvIu061m^Pqwl`9SHR*aKiNT44nRmhpF@+aorI3Xg$ zt7Tmw;tmjYA{3M&bW&_aJybM{uYa%GgKCJzdi*d0=1R}O5P8f%24g)1CjB62tjTil z$UZMD90NbJzu`?7k;MT<3Trv1LZJ8Pl7Szf6FuPz7f^x*O&v~U;&b)De@Rs&vhCKb z4D9Ue&}c58S6#YzQOd$1In|hw5FH(D?@0@rkkn-ux0sEP#m z4(*a1@K~ZDvS5#&fIb|+Vq$f55ik$``s>Iz<<|GFpYTso*Z{IY|C)2VBq^x?Drzb) z+?>Wv(aiatPuJg?l?I849Z&`Os01#EN21}#FzN^jFBuzxaPx{W_|{o`?-eo;2Bog1 zMs9hq%yX|iq87wfZ!G*FULne%&up)n{Vq-zjgTc+!mvo2I?I-bHJzBY1zYJMcs zfu`v5XQ>Mp?m;hv!uK>dm<{WJ@wbSmC>9K-5$DRR^REk@dkqIWAmo&fu9)9Q0Ip7m zLnJKk2_&Z?1tVT+fEHc=SsZj=#2y0_YHZP^k5H(i3?K~aNW%sZp6&Vi^#Fh{ z4(+PzNmrlM73B3*SI)z)C}C`>=FJ(%11OU|1ZEbF+V z-={k~2V$aviI$CKadX6s>O}>VUV>zim;=CR$<{o-{2`U=1#-}D-$tjoW(o&}9&k$o zl%>Tq3{(xN{Yka;5{4+pLGB37pY0J^VsiU*eZ=e6PoOUS=b*q-ZHR6)aH=N&s`U}L zlWc3Ks11StkO!40=axuKJKtZ{iONKTa4o7%O<1;*Y%8dS8_=paj9O0F`Tn{VQVfAZ zYQKKvKmWYy47v3G`t$$2Gm8H!j+D#`*;(%mm$&JmnQv~5EYZHMJtH>eRng>r&a6O!k*fy8M*UHyL(?{FhBWxC*y-16Bop;yQi;NOP#P!Z}lpd z-(Aj2HQrsl!Y;!p{MLQncshf3b>&g9Zex5sHo;?jYuvJ9W^*OUwpN5MZ|9F4`G4_W zIhreR#*xDZ^L61scCNFpKW=F5PuXiX_+~J7ZdlYSHa2#*dCBpRD@fN zFI>#)&`xp>gyCQ0BE^ zgp4-nCl2*mSw*9>c4{nkX}qmhx5M}USUuq~ZiN8Bq?n!TX3?0rM1;>)t7cZww-$X>M-^Z1gM(ZM<=_Nt_eW*) zK+_Ovvfs}DkqN+)w|%)-;51(V)Ws)i1{l&48DMnDi~Q@-wC9o^=#BM0a9Yw|K;iJq*N@$_`!I0S1A2uNvF#AR;2 zsJOVJc)x)MW&y?r8&3kAi=mr<75b#L*|Gq4*ynrf34ju_tyCX=*oB_8a<{vOsIkfq)VvWTU@L!t-l^tfs3o%oyvNkXARcPpeZQHi>VRzWl+wX|^ z9owJQYNY}M-4b1%RA-ph>Z9qw6Deg4DGt>45|BOD&Wg6}9>AHZ7)@_9FBjlWuS0LK z=&jg~eZ4_GrUipEJNc{ztp?(c8x-0Zf$yP(_?&TBt>vp`#gv%}(IpBtP9t=7bI46S zaC^(9a;I{#7bcr0CMz&vH(xEZAX|2-!~N;AXWP^Uuos|9Ub2z`oDdc?7AG{8EMJ9e z`w_T;>o7y-eBmt?_(tdFC%Tl}1?_@o_)9BYirkJ|ta(P4j|%1ws$SU9Tep~!FFuJY z4h<^6_^;|(A?v=XLlF@XqF$f}I$-s#rU<&m&L*8e(+kq4?9?!cd{fHl(UpneKFmdf}>!XqOOi;iM~mP3!SKIPCz z2GQ$y%x*xBY<-ckG(57%CIqp={L?mt&RPYH*3R@Gt0pGwQPF0R-ESHvkmDzAeQO`g zR6GCt+>cp+frRy$KM%Zea4p}r*+6{S_Osu>WMuX_j91R%*p!5llF}r`NdMTyaRk&r z^4k21GcKc9lm#{<9+PsEcmP+%aOME@{%PECkB-os5=^K-s5DUt32Y=H5H@83Q!R3G zatxxAjXELlRye>CkH$^7Y0MwUoBqV^#eiV}F$Ay|0}gY@Vf#jE=fu!|%U)mmNId~{ zNLF6{8FHQv5=ArXTBi@|7!5Yv2|0G{tm9Y!KI-s|%K_%=cfMQSw zAxe}2mybR&wm(=%XcJ?D1CChb45l_4 z#l*#xfarxlR`0Bll{73_K4rZeVe1c*^twpQSvduT9?Wo-K>1LzFa$-kfiZ7}BG&_R zUTici=*v?5(yYb|bV5~*R0N*uJ6myaakk9fP~>dV%@U0KowOcq5eqzZ96@Nk{|^+X zB^;1rhLiMYRE*RYucK<29QA6}YLJ$_7?{}E%a0fA_68f{EOOwALJ(#2$G)Pr#K#(8 z)|Y?u^FiT`Hl!T+6!yG%GtzJfWq?rNt8S}{q84b_*2DPb(8vsF9n35&G!t~j*-t>P zb-)r_%@ON`kQ*@V_B0TcE91*OIvKE3HS1PR%EGXU%kcCD+IpAPrpDHnp57Z)f?4lbMKmB9|mSkqd( z{QdnuWPIGfXW(LrNMqk!4mlFP&xGdiG;28Xl@yLB^<37Nt*T4TRYG4g+#eXkK#JuS zN&d>-sYX9i3eb31F>dDBw(s}61h^?(7_4EgA=MA;Fjd^n;OIn751MtT)DqAm_uBV~ zBhbeSofhhyw)LOeD8K=oujy(Fsv}LF>poGV^e^{9aSehP9{7V^kY8S2e!b1nA2sHt z1y0&gJ-Pws)u#RS8ZJKV_jgu3=hVOQQax+SbmSlopXjz_&uAC8({Zzr-75np-;H8p z1OBqB&0=LXnD%pCOTDm!j6r%(b8TY^ zd9$^HkilG`u~Y`Ef1hXxxS)maceQ=zyh6Ah2Vi>$CUKobb`)Z;B)O3jN7nr2hO-je z?0)q1cd0n>kLV@x9NentHdD;hv+OoL+9?Q;^aJst%nJ5chhsV|Ky?IDGbI?po680> zR7y2y+-{|ohmp99%6fxnG`();l^c%K!0s(Va`p#tL)s0rYSJaSqZ<|E0}oJJCAIO$ zuF+s{V>LM;9N}57Y==u09-z1FeJNa@Hy*(rfoAM#3+-;b@)W4DamA^hYizK*#+~I( zi{>u*@pL}yEG*6Kvtgcs%3CJ|2VZ|2#RzUUGPYEhR_!UIJVT4N)Dsx-9I{HBz_~@v zh=`@JClj#QjK8&Dc^HvY&7tvzq5DT>Ubt*v-p#J`mI3V3;M*)@*(+bt(f&{+*omIw zRM`N-itA=660Hl%U|{ld7OX(c>_#__~9RWOO<+W&zBX>o`peL!6ECcNipEDkfhap7&8#9rc9MC;8d73+AMAljy;g3}Ey^}4;Z zr+;kQi{k`FhU`Rgv&BMc%B|Ip=Sw@ja#-annq>)u*%S8D-}s^11++}$08ybe?-a1L zV9WmY;lfDROTMqhG>(v*aSff24Y9KnqrjycXzXKome4JHsubQBY%-8ipd z{M53ZqMHYtzrM}EX`!|A2g$r@_ZlO&-=4p@`u8_9TY4xH6+)8WS&oj&)^R*>+PcKG&wjd3k6Zu_%#ed}JU zR?GU`78Pf3Ft7D+0hx-GR|easK2v^kD7z>F+a>X?d;fHUrJu%TrQt80^u9@2Gp;=%O6AhH;(2 z7@T$p%W5k3J02D-`0d?Fx@7HQAJ%FpVymZqTs74rVKDLOlIafmB}KUqiz-o-ZEJ~# zp)Qv<+y5#gI+67aNL4rKGxUq!?vqvQgIUzjYS-fA?6=fPJ~dVTeb^t(J@RLGi&FNbky z5=e&91SNI#VDmB_9h#6Iw?wt;K2C9edp-&d@itnpC(zuiQOlR}h?pZFT_;FK>(v}w z_=TZ2f|!54^(7qzBLhcXxcL_G7iJ#7U}ptzOf3#4^j%B`R)+w4Q7-f*H=r&)>>o(T zGV;z!a{?wTS-wh3JO|(lJl8lW4U0-)^p=*+X_CI@?)|}3QynE)4#n6l-yY){!V{Sq zj*662+l2TxkbL(P3>|xA~IW3kiG4W1~g)G^-m=efU>BL>HYA(Kk zZ}9b_gbb{)7S15_wPcL>2>u+-;duCn5zof)k48C;bXr>E!6(!7kdBV;X3U#w9XWyf zA=8>@l1hZdf*&4Sv&TY8g10XmL^0`RJdz4AJKWgj`PgnagOS7(c|rlhP7Kj)IMwcq zgSUs5fQy1~7VsEqw=6P^JskEB&sfPxn)icP(H5JYAUZW`%6ybKpPPK#Y5nM zm*MRM-}?F>8;)B@^az6S0A;o=jXGz1xRsBPByt+M#GjJ|YHC3ZMNGncZ9)LBz(xJ52iR28kAeO$+wUaDg=W&6=F;Y&BNPFuJq2Hm zL?a};giy>6zD&3{?wL?dYCX@0z1R%7pDt^x*wn0z*K|sEeZp~ zi-DZ%5Hj85h*^{jM6cQVRkT~n2>jqi0lZMKG?D03iZP8L>~LgT3TCzZ;E;8pe@Kdo zie9>W*&MEUH?qF9Gq9ItL@5jjV=o@b`5k`|7xf0gWYIXw7B7wcZTaeVz{YlVb<5WioOJep3+@vu#k2b-l_L1z4-`!MdduA8MgqBV&eWzcN9-&=J z1dTw%zfz`!u1kF`g4MiMUV*cBL<`@Qfg?m?r2LJ~Lhl;&4w=6ZRzC@R_kng(T@$%y zz#W%Bob#K(ng;dv_uCdIAOsV#hKn#Io&?vW6bH@pg43*4Xs*G0nKm*6*Sh! z&GyF=tDN(R6xM!H7nwu~ldO``a~Q+j5cyaJ7jurI-#zCtR3<>2C`)`+nYsvj0~~>V zjQY<7xYFpfv`|fkI(&U~0B4oZ3EJ$(N(rI^8jj^|pNIM14VX{{9uR<9Y=I}HVC|LC zO|FFv+b>mzEOLWF{6F{78Gj_tH{hb9|O+vxpTAain06{Mp z#%nVoONsW^V%2Pz0e(=8@yXq$e{Uw*62@SfK^L|0z#AI~38b(Qs5XOIu`7ELuA$$$ zEr)TIYmo=9CSlBoTs9C`5k?}$kS#sWb%Go3N&Z-CssIHU9U76VYn10CrGS^QX)-D* z0gy*9+8dsl%7w*_iHQ-lw6sJ(pG3&3LM3zMAqwSNhZpO>cO^kJ2|ytF91sZ(qgtZC z1fv9W6Adqi@9Ijb^=ZRB6S5LKhtQlIK_0J+6O9aR@;}Ts{F~07AwNbJ8jkW2d`d(3 zBmL5J!93V`OXa_xEcR{Pvt^$8BOj=)UjARDL;vsZ{kaMMXE)#5Fa;2dq2Y%x3+Nm`8grfgjDiLLAyMGiL^lU%tjC{Zk}P-dSy5n;zyb9 z=6=qhTV*x4>BnESSCa=#U0p+v6&sX!1GB|+|sBE{roO2!bu1B z{$z$%@4o>fd1u81<`p^{CA6Sh#yb$lk8(;H`;|oXAcmOu_)?-hmz*r`%p6E4hHNJT zNZ?nG5zau<{GH7y)<2fRS#l*&8i#sO6bK5Ejb?<9PK5T0NbwwV4ab=-Ri}js;U1hU zP;5B#(^hLABlgu*KJ1Bt^a8ATgUb0rZ$=$F$ip=g?3)npuyOJv)a9QFIg$VdB81V! zqRHfa(ubUq5RHMuImUkSNXX@%7csiaOmLci21M7bAEHSYk;S*ifBzw*~})$Z2#F-$Z{nC+=*>A z7>HA~0z+ePYF>u}txJomHHqX8arC698T9=dU_pH#{6yl0B!TCG9Uki`FGo9me1EU) z&9Es}7M5bjI02-UU@%<_&L(*@0k~@yj%^naM+DWM)ZdB8>^dBK4N7zv(&y=Xe69-K z27Mgh8wEQ|HuB?4q7t4L;Zm;;oti{KqJ0+&VYw*nX$*x>%9FqsFe-2eqV;D4 z#jfnbKi18D`FM_j2+@FJ(cuR1HZ8Y0Ka|hKsij5A`n?q76%qD%pdjEP=V@+Zr@RT# zfJjkFm^}WLbdl#c(6D_XIexeOxA!wsPD@jRZ;RPn&B@FM4Br#@|MhpiiO@S(EU%`Y zquL(KSRr1`pqF;vp<(-sW6r_2ZKKIWf@%|h($M5IUGyP7LlpUpb{dQ&JSMczCkcUf zs%B2?-@b*hK`B3~*%%Sa3^;zz%Y_)yMWkTJt4W2&$;CM>_Ba`lUlFAYaIc&QLfWNV3u@JP21pk~ z=H{Dg9W@CbBFJ7BXA@n1K1}vqk1Mnss?;z1z~|aKdw;dVmo~ z(h7agAb_P~J?bF$n-jLkEB` zB`|Gr5}yx`=8!0{F8`(6v-;bifa!o%3BQ~qx-67Td7J{7AesYV#3-QVcv=sc^Aq&~ zh&g`Q=V&49uaE14e>f8`YrGhg@E{+@$)pf1oIQFjt5-n=qBmm_yXWD-&m;qW4G2YB-q(u&i61hAZr_yXN=tTfeJazs? zD89HSwi;riBxLr-;$q*L7y)AAY>YjbA|qb};ak)Tk}?Sm;w=(T74J|Z*$G$Vy4MZR z@(g%b#Q0#K8?0yps#UeDm3M_+co@^1=6himgqmU~){5wE*aaT=$aX02vbbHM;NH}k zhHpnc-F1^aN-HJ}pP-6F-z3vmT^Nun$8P&9%{eU@=R!(7BwEHlR)YVWq`NyXH!!eY2h*>Ali+YYW>2;ZGee=@ews-3!T+EiL1QAO;37C62s9in z0GJiz!K|=(F>6{UhD|?%E`^|7o`T1vUm-yJIBeY;DGZmfE2x?ZORsfwAlW*G^P#Cy zc!roD!O||nY4Kt~yqrt({_;n@dX48XHUX6q_KHdBo4JLp_HKvcC*%_b7kaKX!}1bHR{ zd($H)2T&m$jNjxoau$FMgFUig2FZ$)glyQi6O%uIK?v(4S#MchG`Xgqa%5))JE^-t)3X$2u#d+4S6VVhalzV+ot3pT zEq5Yb)v8g8PK`W#!nFg0I;_oPA+wHRlbzezllBZ8KpXrE_W+Rc)Mv3=qzTU?%XvSL zhp3>-_Qf-eUPmv2ZPm0-EaEX4v4)cHx(m9Bc7I4X($FHBS zoWU?hIC6q#X?`pTk{0RX-i(rEIP67&KRy%S@}D33IszQqWsNYbJ<~ek=!^2yjSDKn zJfxJx0(#?-*k(LIOb+6wVdX*{J!$Q%{uD)`)r|O|MQyJ|98aI0GAPkeTN>Ffii3=W zs%C|Uo@0vjLQgWL)C+c-izVbO&hpQ6dhf(}@D0sReh!KXmXe7v|HrTxnP}B4r13bM zjt?0G0O635YbM5&Z%U}CwQg?>OHQ6Xc-_!&=!(T`VJ%1?pZ4XDctMQMwXuseA$7QI z7yo;kVBlwO7o^$6-nWwKopul~D%3%-EUTd^+}j^Jj_o6^{Z~s;-3f&y1^SCB5}kDK zL!!9lD;$on=2}B1>gmZTg;Eaq5ZKcOL2lC}ocIUaDUBuu+!ux?| zc>X0Ot%zreUIYF?2BNCKa>PB9;4l$s^ABtR=3dzXF-||Q+G*s+g?_U+w7jO|2{ghJ z0HtL6?Zya)>nsLB$OMvGK0lbPFkgg*ZC}LtCh>WoY?fV9N7H*pLh?j^O^8OH-vZ}&i~cw^wEmQM#0^Gqx(EH$75M|KNA*%cme7*L_a zTIXO!s>|y#8z=wuWU z1xk4-2xK*y6tZv>@~m;iJeG+-GT|Of+~&Mb2XxVb-Rnw>u`(Qc|3BD!^S_$=_j`2X zHjg1C4P-7P6rurW+J zG!XS$<7RAH_^$r^7mTSYaxZm#{Xj&QZCRrul;?5*eC!i@@Yl3u(j_V1z;P-|so@0k zU?c$^ABIR5H&R%C3#j>5Dna|mkFb|0BTl0KgRKmBK|+a($SgewHY<8BbD#N)Fc$srO5 zB)Z2hSRCRVqN^dmp~4-(<#hN`nPGj=ro~j*IeLnyF{v$2sWj4;ITOz$A-Eg`h*3ds z5LT{UUHc{U$&+Ijg3mVp&KO?i-YSVoTe|Y4U1Hc5XS^F5z6J&h&k3CsmL^kg&m4@BZkl0rF)oUyb4hRUazyQFM>IYC;TZruT?XLHKpXJ4qzL zZ?UJ}qw?s9LIiz_0SCQTb8 zdOtpoTe^oW^{$v;oPa5fUgGL{Rb7UUAnW)+SnA!ajy=0#Snbst7w__>fc8T9UaE0? zr7d_~;h2h#Wy9%i`71-ef|jiYNZHE``sEYS}rA&w7LxhGKzK@vK*FN3e^{(EoD+_lk zkRH!LNx}xX+mu&-0I!!$zc?ClF@)k1=b@gRyYUlnZkO(>hBa+$$PSOegER#Ic2C(M zODVP-Vb~OlAz_mspq*#}cxaRZ!|TJU4ha(_w9su3YqkE%S=ha`PZQp{iIx*0x6e46 zULeiEsJtcmFNMmqMIphi_#!1AM*k-8h}H>h>I4#j9OzHfRIHi1Fhd|GHLBbphvu#`BQv&TW#cn1)kLJ#D3%OR24 ztEyV)V=;#zaIChtm1>_wFeQQ{E%G~2YLSd%9jao>XeeGH_ec8h{2-SaeM=X$BJ9Z_ zLbd;1@yk$y79Wd0`!W4*;>G{vEUxPH-+%tk@cef){(;z85@Q?oY>|4|o1*_*>2Iti2aF;d1w+`yJ~?{}kl7#jIc_oLM{n#e5hH zm&{+(|LXe^Nxx6QUmp_HXMdhA0J8U|X2Zq3ts=iS*q66wUz{j+R(jq=bnd|~PaD6o zKT7R`=#_YzE-Kb-VJ_@<7$0nXs{Hvh3Qby6iUCMa=9*-|Tc7!BST!G;W{5NP z?-ld&vXu!;5^#|T^a1vn_s^mov&T0~-O+_EW3@W?ElLSH6|)igi7Yt%;y|GJUkWR8 zUjIlr+HbUtz4v>@TDF1ipNh;9q)xWt9uEU*g27?*)a5-K0ee;Ou=4<|9ElWJ)J3U__$5Ua69Kt?&cqJR%aE%&>>BCgh0O3i##8qZcWKC9ouy`Zym?PjW2qv#LpQY zbf;YC0)IE$_%!3$uGobxDf?YQO23S6{0*S(M&0TAZ7&bQb>dk{kyFx|Cp4^QHIGbq zAo$h|y7YO=>}c@n!rj#x z#xk5!*1B}qHMCos{9bMflIOb=lCGzT;m5IO_8w)+vK(J`GOjJRkF-2_63gMlT4kNf z68*Yi>wZlK#sfi&`ypk4OA@T)gKUd=HJ)3OC)aj z_oc9d_Md-W4<7#SiuwM316cZ#6D$7bYw*tva{+Mt&r9HchYZt+gZS_3zhC?BP%!>G z$p14I|D96*GZz0{K>v=#f47T&hvNTt+r`he_pd*<*qY9p$#{8kMc}@BO21Bcg>kz> z)cc~xGM-O}Fq>s?=))=9kmi=m+Y=REu1YO=i}W%Q{IzYCuyK4^Q|g|3{}$|)?rRQ(P) z2BU0mip`s{va%DWPe&m_;=ay#8!ckhaMZ&z-+ggz$Yd}QN}>@r@z$?Tn(FSK2L1E= ze?MOK>!q6Y)jT=lIzq;FzwTlvn1;zrG8FsEu+2Ut5A}z~T{D-B{~e<};Jp2-(#G9? zN;04GUi7p5KCNAkNA9uacUe|w1=FJ#>4G=Vmuzyq*T=WeOPASnsoZ8qmq*go@n1da z$DAwD)|!>6>zSeZB?I_UxB~Jw^Te8zhkvqqTM@spT|nlR2Kz6##D}pv8TCf|H6O>Z zC92Hft3-j#_Rgs5@1#RMM~RI3c&-q-)LFGsO-B8?mvvuQLR_=|nue8`c#*#kTL3)TqO0fwf}N`#10OQV9{wstEUz=+EvMZ>#Sdoj&i=_^d6x zRV&J7heY^Sv+piJ&@-TlK&eV!xCwy?sGmjYRmT_1;H-DPyUGy?0oh-Gl z!uEdADQl_(qrch}E!cbfvfW|6z|e};ioW2bdszMgg|1VhuNr-h@ez5D>~wf$#7V8@ z0n4z~MZHJTnh%;+nZDj0`19`CUfri-wThh|*X(mlO_WWmv|r-k<+f&3_ZAjod~f|J zt5V@C>+#is&m-~@YM9ZV-gUB?zGZ|MKvofBo|~XmUE7-a?8D3Ufy26=Kdbb+)%&G3 z4JCc;yFN5Mv!bBNQCsVUv$wfN)qvyk_n&n-TSeDLN2O=kR@q?LoM<{wd_jM+`;S|!E9>&!&8^RLpLyl} zmYbz95z&{OGVA%u9=*8O`^CC^=Qr2PTB$X5FW+9xh|G{KFQU7>rj#uYENZ=#0w+~LOkehSPFvVP_cpBrJlyc)jm)O!TQ$>m+ zC&>3&uC^L#ig>*@Wlp~IXrF4)#uE`8#TjYsBRL~e179~s-RD1^dB<`=TVddrZ~GLk z`rmsJv^g(Iv-rNmtg07k+qNWZRyg0k(sgKd`{$|89`0C z=Z9jS?RK|pzH|4PYmY>HPv^?^@6GMPGjWNT=}y|Ua_!Gdza`&oUhXJlULt1_bJgyJ z+9$WV6y~$Je49(OyFDm7g zIhwLrZ7)qd_Hu5`pIOzLS=~@B>0H}naNLjMn2}d-vRmueq5IhB2fw<86mpdP-v?{U%6AW~{45t?*SVjgSz2G-)g9N^ zs%tTFt5Tx#Y-F_S4WC0=*Zj2#gZGrLujK5h8&lvr(Xnai7K=~)VJFkux`yJs`d9K# z%r6Q~{pfJ_Mc@xfgX65ui};kGFkO!AnURv9{&)S4ZwzNxb4qMSG;Px(RXMgrLo1Wq z66Vjmk?C`{AkB#LHN7*zee1KhAm!YGxZW?vhGn~3b>DQy4RwqE48FlU-c%l&$lPWj zdlUCD{H&~9qt;=+#a4-O_v$UtG2xbv1~iI1?hd)e+-92Sr27ahkhtnIQHuYvSZ2^& z=J6oIQiuJjvJv-1mfYoA;^Zo`N!Yf$e`Qti)IsOtS^MtFYsniV2Fm-T`GmK2hEy-_ z&Ah=$Jmi+Xx5`)MboweO`Dd^2Z8hN)aythPaAM*c+i%v!6uLZEUlr=*rm0)(+j=0; zRj$sW-MfFlA#1nmVYi}g|7HVId;M9l4KGh1O~p}kieHYi$Fw!TeF5XaWAzr>)b^w= zJCE5F3JNFagI$6QL>X=Nurm8-l^tNy$aGhbjmru^m@(@(JrlWLyiscuc= z8~9N7?X36L_M696y_FBH>5V-8J~GqQnx*nd?yi%j!1~snAocxOON@_m>TSe3v%=*} zs+J$va<;*F&poU7w*yPUO`BR*#caP`FSnF4kT){KvWh+P(QvV-k^gCnE1880w5zF2=oV45IJ^EIa%Uu~f;O4I8RAY2>Abp%xn^L=Z z@DIbh_n)tN`(LTkxsjwc(tXp_^q*tt?^h?iz^E7&pJ&z1?sRU-{kvm>fp)oXc$n$8 z7L(}sDZ^+@u>63ke12_ot;5~)pq*m>=wuzMm(^M?Tw*=)qQ}0EY0~2~&)Kc+__hSE zviN*Fmgl+N{#veetLD}1RxdurH2GMpF@8(pXs^Th;e!6hzAP2Z!`E{A65kv-@3^gx zxxcTz827i*MW{eHA(yUxX?2(!)8wAhyo5{M{&$^IKeGC;dsKI?YZ+QNkZiEO7?Y>t zjh4v9ZioF(gO#vPu^bLI)UU6~jM1!@8_0{XPJb_)ILtJ$aJMv+y_ywMVxIoKR$lyF z^ToK-E>6mMp{n%;%i22~dA)}E!=eLE4h?HyuXIXmQOe0Hc#;>D$LdqgYA&?&>)>?W z!-6}y#pFjdFVo~{%{nZttf#~2som>7HecM`Ba;~8dXnSn+Tzqd)Yd)g>}0D?8P|O`*wb%Lu*9j__5IZ;DQv|x2|r>kO${y9Dp{zl znw&rCXPMCREx5AX_SRrTzxt@cfm7!X{hWI1k;nrt*XJv?*899LeATe$g>lNvaL0*} zXM(O|GTx7j)BP5+XKH@oR$0@u7m2)k2Xz|WRYkBTmPrpU?HsrB%FJhztD@Q_zCAAy zU}JvpUS`~n`RzZ%L#~Q{iHw57&?reO|WTiUbc$DKJ+u46``3GH%DV zF*!vsvcn;VM_1IjHE~qBW0N)Al|RYn507_C7!Da4h^mRWZLD&oHR`>y+GURN6}Qi4 zI~%mT#XZ_9p4KmESzhYwBu8*=CZel*x67XN#SQ^~t z<6)yyH&V56f+G$#dDMQ=eJMzmu;o3hF%jBYa6{{~ zfX;y%_Mx9jRm$Y6>fLhk{Jh{~^Uc-7&A)Bq>6wNHm-`ln3@SIA)qWCeTbmxUm}&j0 zAza9R>dcDy!y(VpMGNm8HuWv=u#5>DmNmS-@%8Jm`9J;pgPVW!XQ+lvu{$8Y@>JGe zo%LG2;yXF2=dCt3+gnEj9k@B7Uf~v!+q9-tLOHjoL#kffKJ(XT>No}^{8&Ce;rsHC zaGgzZFA9u{!5{qn`gKVOdXsT6 zH)l-5l}mce3DCTVdcdDQ(Oyg!(sqZwCtCe8Z^Kl}dqsbK$%r&i-<~(&tyCFPf0Or_1^na>>@ppygUp%F0^Y2JsA0(K-;G@1RbtsOSQ^ z_cavC%TsnGNP=+Y07g|K3>|!7JF*LO7$XRtV^Ois16gGO7m(+rOI#SMxo^cPq4DC` ze8&ntwb(vU-;OV8PjJS@c$6*8;=Dmp%wWtW$^jGHNYANjk{24dbm!RluZKbgiMrHq zSfU)+r;zle`<F74RHZAIkS=2rj4+sBCV3(cz9m}(Gn$@!q9dn%pSGo( zM49#mF#Cw9YKu<|+JftR?)3KB#Vg6<7=52Q7P{pD++2%!)$yxA1UNkp{@1RlT~M73C#m}^-&@l z!|TjD8LVn1Og%gy$B;wkqK8g8G*8coHAOKDzjmu%jU3A;QNMhlE5&Qyk@sdahPxjm zBuJq}$UGh%sy4ZF*aSz|TnlG`Op*sty$Fo@O;ApI;phS`Lu}>odpWQksv5HY0NMXl z8urZogqR$3vPuolKigNHH6leuMad8)x9W2pox=Yqn(h(u`FtlsLH}pl&&9gjd3x?I z;-}t$3P4fOTX1un>i+b_AZLs0EDjRlh@FDB!Di5AF7yN?VxK%QU>YJ?<6@@>Ol`l`9Wz0jwAq(4b0+)@X|t;dKpvTA@0%%TzO zVJ|WhK?6Y^;&b%J!ZRrkPBQbMCfacdpQ?XApGHPzh2NYhDwjR^8T&;71um-X{C(w$ zPxl1|WXOVcA8^|h6G;)Ay_0&!qcImHWmdi^^2P=A z>|I33wF2A2R3we*v!xN-Dlaf?&guo4o58Wx3jSHkt2PGi%R@&zCU}89aK%?rR8&z> zA;$qpc>1Kfk}(_`3i$iA!VsUgi`5oJy=x|$9$WX6>uVP|Fdi7lNKKL$M~_}X{q8JV z)D*8TRw_%8E*o=V! zJ28HQgw=89z&R{;5P8;%iW;1LX9yA=gWVhN%+{W#sVeocJ z!nh(U&BZhW{3~ZN9;`p>HmhzgoepLE;5`})fsO7AA& z0#qtv_}qQ0sS$)f!WA&nm&1dOsONBh1u0TV%rAe0yb@05%V4{T_vQMZalj{B0Q#>1 z`5Z}C9J%lvB;iwumB+2nbv+l1LOzt|waPgpwW!shQOg4^!~d0SgQxMS@; znk=mZVKt>?O&@aW7Y9Gp> zktK>jWe+jkk|9NpfB4fIwoEHXzjX)7%pv%xT!a0_a?(?60%3ekX&+4vEcqNFnc1U3 zV&;5w4LnZVG}sx=qC0vWU+ljxlnKq5FZrXK-abkv87Z8szk2 zS%h7jARR0uZ?Xa#aG6+=9t<0=czV+4!8h~c%DnH>AbQ=$>4tM~9%zH}h;ZgDBA;1kzJKrI`*fmyIBT7C zVE3=RnRXiN*2loV<<56fo=Goa84_RaJ>SV&cpxGF7Xh{g{ z;yAK6pJKt8n>YOx-^tUbubD@uEF)*RM}Lg#cXWnTJdXbbsP|N^d@2-ES}+?^7P`D#iAo4tgPnKmT)o?TGI=Lvo8cO zYZshX3sH~7bIgT_N420c4l!@|-1x1I*`hD*N1CAS90|8r)k&Ej=)42P{3;9xGTPj( z*>+%{6w3EBUwn-gqyMpGMwY?MgO6-Rel1-{C>+3sH3r`^7NS}QY&hJ#zk?{en?Uh3 zhLqXSBq1>|7xY%HElqzWZEesR%~yjD6&ZdKCH@Xr;DS)eIf~CW1TEU?<4!)m$Y$Kd zEb?NkbHxGVK-vy+T5^D0K_f^rJ|MSZRA8ya#85}O|9$U zJDQBgAAZt*&$@_LN{Vpp3x8^2pNI(~ZJBmmJHB&<8-kHqBmq9Po?j_z9+;8 z6#8xmS#oFtfWp|91XWfzNljQF5t|9xRU9St^Q~3frz!{!oo?`4!3zRwm5&VRu)WTq zn2!Q&idq~wG{UC`&qVK%A*J^N^APLpN6VDQ;~3Vs&=odmJ)Ox0=BuQ{Cvj7H>E-6adwirk7VpH6`C?yQpC${dP0|=22B(wz zHb^$OaXjJ@?v_aN=x1xWMA|4E7!7Tge#KFkLx!MjUfno!yJ1_njJytU8ps;K`!4p? zgazE)oanYWS~pZ2TSELrjhe#0ks&MX{juQc<}}N(QrJEIS%MT>H^L z%yB_zd$I`vhPY}tOL~!;E$Kxou<;mC(2u=M+^)tdj~}{Gm_DvAGjtzLchc0;$`ZIH zcySbM!LBD|;NVBhaIG1_m#gFgRA|A%0Fb8hY;p}Gz`HawG)S~)g$bDZ;o**W-_!Ah z(pKa&IXosGv)HgFpwps!&r*`Bk}&{{&mEYU(Bh$!k1nSXUOfin0n{mQ2rfPJc{>YE zzObR~FID@`F=l&mmcax{1+^{7FS4#5zNY-(rW?N-COgiGf_^?hbIc2Q81X5g}U7dHV3TZqDv)7{X)4fV-*E{{R=-&xR(P;v-Pze=Q_ zs^mmtyJAE3P~FBMPZi4qHhjEfF(3VJG`~Q6luf$w+90F}djmFveH|&)g@(A_ol$Y@ zrfSci(&|3Y;*l4mah1D|n$}?3u}mvzEfPb+3AdrvtPyjrXCsTkBuN;m1PC&5sQ6k! zGP6`93n^Pqv>yx%@^GqGx0MG*`#m9VPuk(G%9TO%$}Wb|HC;aU-LS|eYpKQ*qEG5C z-#D~p@dQSRO6UYisLz#_;{l40C6b*pboEim0rrreH$s2v>FF0CZ;6wplDAj{)NXF% zU5~hb4d!yOR%9M_Ph$*Fu?01$bBuVV6nWT8&N%RF*%bsoNk%EKh4I!5A58Ej*16Zw zIFR?dy&Iofz({Dm4kw% zXY8wxHazE8ELD>vm`59GyX>1yPByDx)+8zb9=)e0$z3h6_bEYK+^TzT5N=K<$+Tyw zJ9$n(;4;Sur??N4A=#8Cpc_W9oIAy~$Q`nlot?k-h{AnD=q4=X5Oqh+3!D*|@X~md_^YE};?b0gPpFMx&FHyGphH8O@{I6iF1s)28hgP%6?etNz z5UBSw_p-5yde48OkmTO*jlm-O%$xdJvPhg@=5}9yx)U4(y0O8Su!i9|C4gNmLigLe zL#J@IczeBih`%Y8ZEWUS4@q)c`>tuPSy;sgkOg?Ivo23H z4}gwytuQ12cCz*trb~NbK|Ven@e1=q=A#sK;LfFZoB}~b#i0)Stg93za~x>QXz9-$ zmdvHAr{l-7k*T(riz|FcP~ZIUxvi(?7)Ia6fo*IlD8Dd4k0kVy8KNbJT+$vj_jT51 zo!H+?n(w*}BnFLN>=nO8O$uHqKIfu4Dcr_#D2Q#ewg}A>y%>ojb{XS zV$U?ZCUHW1bxOoWolgk(=+|4J4&~vYd^fajSd8lUh(uZ-WlCt7q#U2v7sw(MJ`Oq3--+2`s0m%1MVrEeqc0=sb@Hl20{gmqdcB_}_+3^ElaZGa>QGn(P2Q$+D5 zC0vCCLO5h7_O5Iv*_AX#DnKOkV;?-`;5{`9J%_y86RX$I?zRaTYW3l?gy;C{<#ii3 zo*Sjm1tCv-#5?;?^QB=(EjE61OEKQxz@GE*&hOPxV<{d5_GHObE|7Q5j_j!F>|(X* zBD(SR|t^?ua;roJOFQk4qw{mydSn8ie1W z>Fw{Qu!IOnOa|>c&b?yW+3*45Td!Leu~KSV^jc1u_i*>Yso}Qi&HjB#kn$nhuGX(D>SxPlDI*q?Rwbcb-$S#>c3zk}k*vAwTNU)N2 zG>uee4IjE(M5Y|xo}So=w~!I%3_mRi@&c%{`*vTZk)nVLGh|jEV9TgL?AZvjftE9O z&2PLOjS_9iL=5COI#m&4mRc3y!i~w-0k~;>G8W?%w#{Ka(OPv~r$d`$$$^%7?@&z^ zdgq?jo?Lh2!t|beJ)D7!Jwe!#)7v2vpO+yNYn{;kB)l@|wskci76^F*)%%e|HNvqZ z@?d2tEnudfjsem+LKGk@)ADz+EkV9Bdx1srQ9EZyExU10*gt!Zoj_bv6ryrrih4m$ zw||x{RR|dJmP0){I-_MKEGr#{pQjxb?|Z&1m~ydy_FAy@cTHnF^WQfec0WL{W5|8b z(i!m1l^_;&(L5LywS0%e=c%}N%eu+XPE=G5Ug@SRQa^45ntG*`Yuta@{oDHBcXh(( z4nQ7hX~Rfjm#s+(a5XoBk zuqQ!#-8NHI;W*&zJUYy>wBKC&D%pzJGg84#328=Y`Ntyy+yuRRPY0)tm0A8gqN%)q z%o0yzVKy%(6r+vKlBV>$w1Ncnng6-EegS;F7rKti;F&+y(}N=n6Z?3+1=i~@WhP$5 zY0&q@CDE$VZ+C)^`PJ2l6{4I9sG)@jY0BxbfRjID3J88!6%ZBn_760}cBhRSz_7cS z;=#HlvM z@WbHYxeg=+@{tqq=k3&C*L;mmaZyp}dY4{)NEy@eThSnP>4lh!SMXe zO}8`}$-LSw4K_knI4a8`gUr2P&ZINVLISStxVHOkb~w+BFV*!C;_eX@Ao}R?6fbz9- zf4=4)F2G_=1!iO;P}enSaa;#KK5Ji3Ho4v%&%!uo15mnKn~6A{i8U;7umdZ7KBAJd z@AA@KBTW(_SC05?JB zT;Nr#51}ymnFDzrdUWdU5_V)PF5V}9o{Q>6Cc-?2i*u0*nTMwv=vW>E-uy`3oydueo+u&;ggFkP5MuHJ zj<@VjxpzA8V4c@{9v-s3XHwD#zeEX9Q7RS@Y~2VOkSjEZ2oj72dYZanpOy`2@EkHn zdW6ylXK2p8O%G2zhecFUtZc^-M1jkMF%0+gLf`Xilv7jI(Bu(C zT~o8M!_Oz1AgAg6Go>O3`Hm5mL?r|CiKKFx3qZu31tiQD zrV5nSSx$?ZyI$$YdK5|O6+R!m6jD8crN~lNSaX89 zX>+*8}XY^1@w` zuy8u!5%=iZRW3yk{-Gl-^)aEa!q{;uFnZNnZ{vKx0`h@?0!ZgLm zVQ~{G5{;J@Sa`x6Zz1h`WI{qXk2E}nD{$Hv!)r_u{wiKg=-Vnz|>F){hsKC5oQtm8xw&cJ^ znEJD^WyBR9!f{<)DxI(vZd9=8nrMXj91d9fZ1Oj7Kw~NP#2{ajj(&3Yb9UI0NW zJFqYuU|8@tBxI@Fz&o{E4DlRF(m%>;uLzBZ@#{FID#uL^lWV%tkS(2aQVv-^+QS}g zt948lGzpaWVi*{y@H*h1e`YOtyKK#0lddlG^z!n2wlII$uBLTs$9+F?DQD^&-nC-q z&-pxhFk2y7C;7|RH{QDxK6t)D@j;h3-$4|@z%mQ{j+`mE|!u&@O5#loF6X+YfW;gTV)vKd{UGGE= zE-%_r=l=IphJq^?2RekFi;BWCXY!b}487cK6NTndiyp+1a1*76^!4!KOVs-`4>O04 zwoyQg+>$JCYhU6GAl9XN*V`ud1-ge|LB9znqOLG3tt_aDvAK*|$scJ?YWv)rn=dk? zqo|nfH1O_vy3H=?I)i=y^8u4Qb6BE0TS!Rg`V!>&K;&ZiC*q7)_kY`%l`_Nvs5}pA*)fJmacDOIcufuPTFhH?S@6?~LHbk1wB?n% z@3^UtIhX#O%SO;`6~Zwf2~}uM7v(BcvN5I#6#Pi@fRzhSm5Y3ay+KJ>PmQ@8U?!H& zBm~U|hx=OJaLNZ5FYa%cGv%|I7~>!R>#D&QZc{n>pLoDuGK3HXb84DJMIXh-uP1;x z8EtRShvhH7rD#P6W6gOk#{`}8(G9vXq?H$th z{a=%c`%7K(C3pAV5ymc(?tN-d@P+Mzr6FN~bIz6BdK$)@`*Q6+OWX$NNi#k~$JzHD zUOfS`8f1jqGrsP-GYhiS7kbU}NfU%u`yywlO~0P5)5XgPx`tyM#yB$cuH(b?3^QIj z_j3-d;L^B`wEN*^qbH2x4nd^H508lx2W1#v(c|(#!cyf=Oy^YX@3N{IzeM}z5;Sj2 z_GrOeeyf5Y>7{^{_@+CqQG>4Ab};m|^~L6QPd>taHY3;cO()bpzg`>YFW2pTp8Ip2 zwZyQ##9WCplN2IW%$;&z#oV6g2@I`0fA@b%*%5WldF5P*XHK_x>Vz z`nGqCbB)#!W^B;tPu5s5mv*^4|@d){L)FDNZmD=efjvB)VzGV%Sd?iB4dA z-QnByd|o)OwS?@C>88PB7OLUdpOCGb<-GEz!LWTF`}akf$6z_xH1RRsUKMUQy855# z&sp=%$FQDB>G#z$KJ2YD-iM~Ewsv;kbQdtf$F(M$?+nR`5UDh~SkGPMW&4zu&3%fg zvQR>G`s?L97;(XpDX;jZc<3gk&+;98yx%RWq}n22-jDt%^%ZmcUT_po%rcyIc3De? zTZl%~NU`OKf@&MLYjPhWR!FEWzVU=zBP`-xU#&7a-SwbzQOtqX zn7I4lypmnDMzgAwJJ+AM+v!)8v-6X=mH7Z`k6}T%Z;nVCD?gk!BHvwpwBi$ghD+eK zTji{w08WOWR;%fk>ZT7#{=06MYp4emGx{$W?CLZe9+c0@UDf$xK+4`-ywIX6ulH4{ zrK+pEX_Eh#XMI-oGg16wW zwnxKw=C1*nQR?3_hSBq(WMTTWts4w8gli&pbeRR@b_##@p6T9@@QFXC>qLN^X-w+4 zm9@oYtk&z%Gwv=sV4l7`=Zw`*qx;`lSwkx>t9~{pkeFd#@=PtN$Jtv)pu?b1uc`b{ z-G)!!J!P6oS7oKjeKa2!)(^(1rxe^8@0{)yT|DAuaLpjNvWH_393rC8x6Z(~IKsC* zxxCnXZEO5MwYz({X(vZnvn)oWb!k+%X=fk5!$4n|N{-w5bM47lO*%gH^*zppoqYv{ zHm&hlO>DwWrPe?i{+`##N5P3TZN~IGb1KJAK!wikQwoyZRAvgHC3zSWM`tfpLQ) zBH8`&ADCvAts!NDk(}Y0_@SV@D^*Q8g7y=gwhDddKbSR?-}JU^V}_58G3R~T#vW8;VLwN}4J+p5&Qxm)SJSO7W~;2VL(BskMR^J+bGJ|!{?X0VlM3!W0d~C>xr zKlW55|7Pi^;Gl+^Wot&>pto?7PNaWo{qkXntYpEE+SJY-PH)EN_@Ob8#llVHy1{*! zF%u5B6*d)G1S`wS#kAQrwP*SF-CdbAH-A-GsP;h9_|_2z=Ycx2?0!S0b9&z3`)HOy zzOP`?=%>LS@k3sN(|&T~3ZALjN%jtq${dwbMX`%;Aygm10! z{z2OJGUUwnmfN^LTeCb~=x3sw%IChst(ARJUy2{rjp%CaTc2cJKj)f$@S8Sgqqb|t zqCw*GHoE#28Z-N(%^F#XcCP)0gUZ-JZ!cOt*3NLQSL2LsE@6*E#tXZsv4i+)?DV_; zZh9^^ks~W9ST$#}Wx2=p$N+a8M|tr;b6Z>6TmDO(eIDs>Z5YlasN6`Ix<4~_8sqsT zDfvmk{jyU&@K<&@_nk>pVs8+wOKbg}Y}=nKXg-w@p`Tt}-gv!Z;m|9-^o`(m+_v;! zeAh~~*4ip>H`-WV+q{71z>JsvMY4Z=`Ms4RU=x3ZcuyukZsKa8w>vFmU)%d$KU9m# zLc*&bb4EVRv{WfBl`mR7%+;j6tXi~SvP~b34m#%aWS-}i{+KMcKw)K%I2egXR%izs z-g0w*?fcsx_esBOHgNvGmol0>mm7*)PEa`e^2y+V+QlwbNplr(5tkOWR4#Uj`W0Q6 z2QR_Nw3Po>XrYWLvEe`z!=;atuzf|2`|uvPaPpu3G_bRD<{8eMbA11B-^E`Sr{lPE zKjU2b2B}G%iPB#~JL~w{AA)eUzoe5#PSj~DH;8=R|MpV7{&+fNOBQZ@{;jWc{m@A_ zUpS^t+u1()FkBm=T)Z&e0V%sy{XOmIJvIfoc#gZ!kJkZ~#DmEy*VY`-ZC#@Z!PuiN|FyzjY+a6h;~!Z|@_?D*fOuBOnM zFrn={3N!?dOntjDc+USi&Ycm0N00o9(IR)A9RHjhw=jk zH;8%hu+d^A2*`|S+djoBv3~?La6W5LaEr)Q?Z&X-4x7k{j1P4IpxTPQuwA%3!$Z}p z6Bqa*9*C>bjV04viKt@kvKh?)W`kt+T_D&pV(^W~$cN`~Fkvh0EY3tW0*^|e1*e{G zBj~9++CD>^iq=HY8N5#>{vMo#wSR}Al4(>LbCElPHYjSXIbQk~YjS~wc=qQrZK=o$V4 zp=JVb0`(#@UFtcV46L9L*j~LcoYk&S9!-rgRWcYSq?4q%Usa{mKPC3BDZk?EzqOaW z7&}dkz-Z)m8*y*E==xHWCX<40dR}iiRqWgTP zD1%shKK89&pZO~nd2t`(|6**U9qbx&fw9OwSqH4-cG?)=2rN7y1U3xMm@1A;?Hge%O}mjfq5gyWSa{78-Ym4DKh-Pf2{*({kQ(QcILY z^}3XFxmU5l5P@k3H|Tqez@L@L^KdT$DGYb&zZk1vbNczK2}EYnO790G+N`;NA+W~kH8;5a5RJ@l@1N;L zTgr1I$^ z3Yc*Df7qCTjtPGCTfo~873CJl$YhYqHj}3N--mGjsVw;R>ZpDS9i?ypkU0diL+#RZeT(ARy4X@$o~xxI6g5*lo|V0!ox2^ns?Wshs9 zgu~sHz6F>Y0ff6odl`NpnH^HBq+WWc3wJ7@-a#E$xWFRDC(2=%*p|eTB*1nP?yM2y zL~oQoqYO<9h}nt3%dHVsQ2%Vo94_C@Hn#wRlHR>?`o z62A4_uV%Wf-G{=C@FKRJFesW1Xgz z44Ll_4m;Jj6Gs;XpEjQJF=eHtyd(htn>($%`_kvQaZ$T}Z-@FJcg?eBulNI&{e4@b zX0?a*xo;SXTCwxVFc|d)B`rG70X6Vbf&j*w8gR{dC?g*H7(Yl)kswAoa*V2o%mYVM ze)c1lojzCW}v@aJW=R?9M(%91S<$~693v^OaEr&QM z{P?BfTzB@F#w*KnsR*}7qF8}T-Nm9@3|(Abw0#ab(KMoN=}AOK@@&pV(biCMgh=t! zm9(~pp55waBBM+$AjmKeMW}fb;n#0a>CZ7fpUS$%0C`u;MD3k^UL^PVKxPK-(4EQ|R@}3%7u)&kl3$g(Hr(1rsSKbQ# z)H!IdG>af*)Qxk|zLv`SUL^dWNXg5Q{KCTyUM8|3ga+!uL7S|MYCuo60`ohE$R+ev z+CJ<06O(dKNbmI$;h|0p-DID9wAEOZUDGVbjWrw{z=HI}1G0VF6pgkrGBPs2I-@!5dH@$yAxDJHSMg%q2EYXcV7B${H9L>f! z)2_maeI;!uY($E)$Ti(}l&TX%pIIcK;Vug*8x>v%j^!5Yz&y&sNlLU#Ut(&a>=W%! z>|CcIoCR=;Iwl5~OiwbIsJH+Bw)xXZzxpBXkpxyor|b14?;ePZ_8E?9CACqd7|)#q zOiks-A#o!jf~O}$RB?~|S*Rgz8ELN{iCS4eKGbaFH^%yCPa@{2|(tJ2}a}2>G$$bGIDP39zk5^W1r3xYHA=U1DzAX%)-De z8{tu|C5%>D5hzf&QLP9iBLB-Is;D0*vY((gyl69yDJG(tn1MP{IH9j7ORPT$w8)fi z$#1N%lQaM0uuK{e+RHd{S}Lx^=EJAI=PgBCx|tXX5&(FwFY+WKaO%U_ zb{M_MK7Raozy62o;OF4zNs;9g#d1$;bkK^$MBW6V>)Q;?)cScY^QlXxbNy9(V`c{j6jxv9 z@Q5M30K;qV`*LI=!VWe%3fKITdI~Weo$Cg9$~TrEIMEo{JH=!B5E_m8knUn@5k)R2 zou77OWBr6rDu!P}CMTC0M-^JS&H2Sm5O>nHd`hyQtf7LepE5tTW%1nn2K z=9JBy?^7`2h3N7jIu9A`Vugnn-~PXE3KjY4E|p@julsIBwfbaKxdpWSDXJ>NW-pgl4c&tgT5^^%-i;=4-NN$E4j&vo$3J|wM77@4XFaMpRAp^L z!tk-Oaz6ZJyV370b7%yGAUaKdK4|?QLT>Xr3Y-zWG-8i727_uf6}9~gCFV|%&CS3l ziCx0XD0eF~#*sceMK0+PQ3rj{PlHR4G0yWjt(!tcyR2Ll94*-TxSVlM&t$}MVs#)r zRf}IjmYC;O-hiiVlhZ}3PHOgqdW`O%l!4v7cN6MVE-|s^|2eP!O<&AT&Z=8&b;6{7 z|B(cQHCstp`?S~;$Gi_#_G<1fT)q)o1sgT9>JrE0%CkWj7woddU|Zpk%LyL&8R~#^ z&xn==33(8PHsYjtwpmqgF+V$dj+*AQnA5KsXx>d&aB3FO&565Lhj>1hhKVG>Z<-Tu z6D;Q%khdNUvB2^c!Ge%rEgOXceUwoR#a9=iHNwgVj#opHz>%s$PL=OoK6o^j9w6`1 zhIDSt?}4nzo6cWQC~%Dr`S;H=2B5}V|0_HMZ=|W58u}5nKR~9Q_$W9924zRE4;WKM zn8T}+4QlqruLD_7+VQ@56Xnk$&wZ|DOiJ|8=+Q3E#^#^|$PcV%xxtcsdW6Q}f*-13 z9Xq51{e@2KM7{9;ST~~^Dvp@7C={&hxV>FmK@Jj?PA$@1Wn#7EfizZ8GT9?>(nea$1xC!=d;w2=u=Yv|`7q`AHwvCf1k7@9MSw{v7B(V8 z`3L{ltS5?o9YU@=q{#U(lu2?+r9?mFGMT1ZI_vDG702#^dX)0Kt@#^S3DL1DwId7 zZsWR+hnNWj50->B;@r97Y2^F8(x9Z1M3x8|0(AQF<-jD-zW9Yu8H$*gXqD+h?ObP| zU6uom8$+J+zMi^ht{u~~@BXG(BQ|yh^Q_jN=-2Z7>=q_suTEAn$$thqA!W+}`#Ap% zb?6xAqzDg1*UxvR%ox|6-lnj4a|0KCI-yf3{+~fD_Xs&it&51P(bPaWEs1MMfi{pp z&5UU~Y(9_yx)3xwJR~B@e?twvnCS3wl;nlQW_+vlG)L03JG*FG$mznCRvIIdfvFjb zOecpJEyVIC0YhiGt$957r}2hNB#Y)mySjCmHVQ8mj)H@dE|6FMOq;>28xsQs`+rpZ z=NC6<5?sIE^{ZMOvBBmV7hpnp>)~`>dlkeEg(xYH%%<(T;0;_?xClZ zvVX#uKp|+o?YE@R{4jNtLCG%v4MZsJzCrco15nb;C7i}FIU*t=Zxe}K#Pd^;?G0*$ zg7d8u@bvmqvms*Z6-rk}HVz+;_SNnq#*ra&xREdG+4nG@Ijk55BJ?@ubj?KIfX$0? zOA78u)JeP^!i$E35_wR4%1vmYg)BvjRHRVW_AE*Eoi?Jf zq);kLJ7UVd4W&hqr7RONl0>$#G{!!^^L!7g=f3an^ZS1Pemb7xb3DiM88h$qb)DCF zoy+U>I;Ci(i9t?3Vuk=%*|8=AlQ?uTg)gxr0T)%u;oEQ>Wr_2S0w7EZ$(YOyEX=7e z7T3^t#$*9ojnQJATbYV4wy)6}E1y88Q$9LYRQk;;7bAO$IRCEwkkhpDZO;WvXW@%} zI3ne6>zWn!0I||w)i8hxVh=fj5m`(70!_IU;RCIKEI1}_9;q;5F{5$IF)e}^tjHVs zll`9xROVw@sjdfsANtolu|Nh<)!tRRojf;!(|HC&%&ew_T`EvOsOaz?#!>*}I;$Z! z+waw3265*Rn43*sb*j%>3M?K>o`8eZ4X9xJ9W&cg5;@p=`oN}@%C@{UQIbJ9`6o zBbdb5!s%gCK#w5Rh&TfP=nD_;0RJ0=X#mo+Ftho54|6~b=mQ63!AEIC+OkE!WF8-Z zMQcwf-;J3W@-2=4${mLXg4#9(iduRzqYVf8D0jp$&AVxw`1fq>wEcoH6{LMGKuG2N2y1xUFhw6nm40yu|Q^|Q>;W!`NLjM4?#@!INC45i8(gsc@ z>PBL=xHy(kk@SdU0sh7SfW~9!k^$-c5^-$eL%yBUGlUc4PQr+n^QOKi^?}4@B;aXi zpuz%C{eUYP7sjoEf28ZOE`k%6tLcUtT5HUDq82BQAnSK(JSFh8$Le#17yPm zHNB5md1x~N*Oc8}2Kjx08(!L%4rYlpdni}}0>@1Hd>2Mom|J2bM-+r1eRC|h1J3<3 z#2ko=%xc8?5uOW7<;3r1>;lZ+FBFeGn10a$zmd}!TlwqVeby7qdBK|g1i1IyyTG8w2%WvyA4@+o%MY<`H zeTQoR1U?tbS3$NwR~^oJ@!e24W%etCCS!3PS@~ZX0E)tQ58@rh{~d$*Mo6?0T}FUk znRs9nH6xa*4rtznDxJdlj>u3Bd3^~zTk_V1lY#5jE>(gzySj$O6LG z0?e{-fE6Mg^`;~uaW$(6!dtu-8^N;&U}izEf?)wg0S4)hQ8}JR>j7+oZB;X|?9^zdd1hw9l*49fUB_%zLkGMasZ}@sxE@8R%(L3wu z{fvn0d1VhRJ8oG-gfWX+J$tFl``!M%mxsPTs$aKO_D-F%_AAoUW!M!$TD_kiREL)z zhPqA@6Oqplh4clc3*5Du9%kScyuAL~O?Hg$+WhNM(Wm zwpqLHv&@Jn%uW=Xyl$)?_$%zSXK>Z_*{2@~bD=HD?PFUv9k=pk72H?)$WcREKEnR>fe)m`ise?H=n2V$f!d zoh1)guJ_q9Nb&&_y`Ql|wI!&lEbW3m$vk&S;QG6NHK9}7^_Rezv!};@U5(zaoQP<%?S{^~;iQAbFx7mANBa>mVci9wbz+MZ>X~tTB=s=G z|2#-Pxn^5ynNK~V(1wMhz`z&lRJCEW8dCQ;tfo9K``gKz_ya4b8DIcqr&EqI%`l8m z$k%J#AD84D{h&`c+Z?YyS+T+JBQ#6?3zJDs6Ep> z0vfNcpaMj_FZ80O=-K6m$;!k!r6i1pX8;f#s}HnjdA~fj*=OZSte%S^j|@hPG2Dlt zj$cbXNOEhNsgf=CLm@IoGvAe%5US>0NIQhsQUcj|R{#6FDQLnk^}h**-mUyvj;b?u{K`Q79Kmh+Z==|4r-iMavxnzMQSqs0&%X87Vo zD|JwabI=K*nODGNTnJ?tN+5ythc3Y()$^0!y|+E3C@wS`@k+3W)`qnj`n6VU)Fs#v zJ#u}@?M^RM`^2d!k+jWS)y&or6EaWqBMdlUY$P9&QR-|FPQU*9jU#t;B%i#9c+nL) zGl@C>WU24hA*GoW_v;7;QkDkUZJh~;fRUOTZI&*(Wq63$Zf`^97_rC4#Kwnn{RU_| z9Dx%0xvrI@>P7B9=(=4LQ#nvi=P{jA0zL=+)$Hv%b&kM=5_$4o-nXqbU6h~B3AU}F z(<;_N69Sb48bRZ$wVQ^TU;y1Vc5rlT(pe+u)jAbWU=*J(KJ^PWc8K8Dv3thZP$Bq+ zj>DHY*w-s&Bv5DMQr-3i)f(MY(*{noA=VZ@QXKf+ITtQ^#m&k$xcDVG$guqQ z%dT_XKaD~(%zN=mNhuGYW>!AF)7Q8T7@2Q+UH9=Xt_od| zYU{S^`980iN+A*-Q+P${=*#Qq&Js6&aQj3yg*TU*c!hX&dgTR+c>6K@gqjQzF4F2t ztM2VTW%#xv&)v(Bs-Bkf_PRmih`ifP@1`Doa!|XQHn&ep3)M~R%U}zAI9?^F(Cw&7 zX;xc|{AYX5iqT=|wml;QRMy5pQ<`Y)iOQaxnzZ?>tfu!pgMtc&HH=eAwTJRlI5S2n z&BQ`$PdK@1wLL2BAm^yW(dfs#PY(B07xnag3LLDFjToTl40x5&eR6Zf)-WDtMqRIR zH>=%ZtNNEUv$E}8zgtDUtk6$NS#aZ)@9r`8?zyRGURm!^FWB304cg5*lGk5$EzPI% z7&B)P4Ij1IceFi!o=nSFYOQ;Wj$cWlyne3!pen!qMFB0=kJ{Fi$3vzsO&pbLaLX~f zBCze~=44GnA$!M+HRApf!j_$hR+%~Sdrvu23f*0p!&v zwACcl)bhekY15z-_XAczX7M?GU)$otReM=R`z{)3(VZ_oPj1r7p(=YBRNAlFDfEHg zXQylRAb*yb%oEdk3#U4PtTv;!D_E_AVMQ{f%avFXA(9&REe048*~3jbR)+2)j3XoS z;tHi5$WfcWk4Ts(8{d`<*nFpFhhr>jfZuH-hudQD)@An!$&Y*vZ%+>nOZ%{yx$glZ z><+WFbg|nLdTX#l%wf;OS!)c!sQmHX^RCH|<2UBH)!OVkDaK!Gblme%T~nwmS6DvP z!d0ooD=$0eV{^IQv-cMB;#y52R1(%jb-F#e>E=xKy)ZX8*0NAr2ZHqED0Q zRPF!+idp=$W;?;Gk|BknfK9s%M3yB+CVG`tG2BRIz2%JN5t`dz;<~&^Pomt)E1#Tz zQraUG$4BvIQGt>^2jd?}pAx8~lRGyl{qV|LpObZwRk;`jXjZc(ElTL*+qlNW!b|y4 zTieK_-3Hxmha6`Qa6HzwV3F6Eti4@#^#J*GgV2y;W{!|@9C$=FE? z`XRI`?}h9(3O&`U@)6l?DD$?08637)=17G>=14^1P-e3947nU*8f}O2ixaFst_Ek$ z6AZFHt_R6{&4XDD;&(sq;Uztfr~g4LL%cQK>b2AT1nHMuiRtF zI2LrGa#FvWw>teK+wpfuxtAJ`A>_sicalG3xc1NB4vW;9Gi^P|*WWIvOOI8g=@``I zcJajXIUS4f$H2o=PIPvTdC6;BG9u`UA%Ty3=~cPu`AM5DWw#QOdkRy}ypT>G{8&TD z=YGD%JWZJR+h3{LL|D8yJ}(Ap|99SUtUUQd#jUb)swk)SWhD2o!{qE*BwWD9qeG`B zsL7<}pRG1+xE!+mP9ew2o!3XLKDIU7_>BW(Tu^b%Mbf?&Cj1znNV=!R#0-NpOk_3tl~pe zBy(qolha^_DhFq9hSh6_Y!~@L5?t1rI%p}vyzp&-U@bR(J;bfFHR0GA1Ez?%IHNoN*sFDzBA z_1@gg<8MvWpMQbOe#O%*K{b7 z)^zMc!cy34S~-t6OBeLTc3m@{%?|71+m-E^;%szqlm?_2++!b|Wkcc-&>T206vR1S zx)7WJ8w;TI`-6^Km$TMF!<)+UIOQD0XFq>>H7qKXWiJ2w!$OcT7V-ng^n5ti+{r6X zwoH%w{y}uyWZb`ZYT&N0v5rI%b~c7rYRbWku11-NW&h=ac;qwS$j2Pg{rzYET%)~c zssSlrs@s0|R?}er#!}{kWg!x}=t!q0sQkIf0%IRyhsQiyzM_+ksoYjBQKOD~0)27! z($5sGan{d7ip=BlQke8|i!Pqb7k@n5_?nD`tuM3)hkBnd*ImCqAO{-Qm^*#`WoiBe z5|6OkxkrDT5+yt(1S@e2XmwEX!i-6RvcoQyA8P)7oc`g13&Fl*L%_an?EC#^|5%rg z6=14|mL$0OzWMO4$6Ug{V$!TLhc?Ft{kgGQ#(V)nu~R0iUtRxv(#oCYj1TgExI($f ze{+TE4d9ngU%ig@^z@I18($N4q2^GR?(!a36$>=it>wQzpc?zA6D6CKF8(VQlV18p zezExDl>CEN`=9&!m&@ZH-QTgJ<;~IHcZr(Ia~&@Jwe=6eO@&bIz_lOB%l@dtxS`4q zvbuh3G@=4qG1CSBktkQ|+7C?%Xa*dA65HC;io)vH_xbBsDNF%JoUQzW_N@n?%n$e= zy5wvW)k8JzZ~K=d>9Vd(FAkC5iyZ@NI$funi1Y>R?BJm9Om_B8;52;m8v>l{5u31Q zn+QMFMQM7II3>~Xj`0f2ji9mn=cTo;G%F>X4AKDzIs#;n5v?cewiO4@zF2|z393S+ zVMIxTxP2I)k3~>S0cpNv!_>2Ee{8-4^=4^$=B|Ke+6J9WMM~hchZd+{+0+0P-Sx9J zd<#}7qCtP|qOoetEq$@#d;fW*-JOUee8p|goEHVy!2&?f1QotCI{9o%VCsQnDUB%O?d27madBOX1t3kZ;oM|0 zGkOQxU5%#^7&Z~EUNPc8hSAru!uFVzF0pf6(VGrG8QFHvf^YmX;XmxWh<%v=R2HuO z9E}^iXAY@rcgY9+9`-DUvtIO;9WGD!`jaBPph$`s6Sh)LKfpJI`1nu*84FB-W+19Z z2n-|NALZ<@X^$Ly#0g=AeI!yFT5|8BR8;}PDu%em6$g?eP=c6f@c|-==pLc$FdrY_ zzE)^EgEZ`GP)4Y>ss_L-0FdUR0t+GY3H=@wQ%^?aCukBKLFoc&^b?Hi2eFZbvXi1@GiWLyEjsKX^isr7 zc0z=YFa5Kf7Gh|JX?Six1gj-A65ur5M7NlkUH^K7Sucjv3^+lb%fP75ad%)+iCBO7@esAm zi>6?^!VD3DiYQl`e~4f^5yHd|iV@6p+392(`eKbH~> z=ANU*`#N|ESMV$NKZ|b;j(oVegRzsjv-HEh*$l5d)0lX-xcI2f*o$tht}2Z8fZPR` z<~$fF9f-hBl<2<)a^Q#{!pDPm2v|q?u?w5~vuaKZyjhpahmxzw4D9m~!m5Wa%W!rm z@0VkQ?=%mS@ZWA?KwR6`_jtYEh}7t4K`7k|&%GG7H#SUm)4@fzX@<2ZH-kbyAZ3uz zI=nwJfzneTss@hssD?J>?Oua_MEj&k{&g zG^@DU()la)^I`)H%G;|zt1W7M@B1}J0M5Cftl8oro-OQX1DyHEKriAD5gCc&ClHDY zE-Rh*IN;{uvP(my4c-_4wj~34u-PN+-2tp0Ao2(-wgf3_|3h5 z;xzB4^dKStb!LTYoIpYaZ;FE38|)85C41)7D(aI1bMcV@IulQ|h9;tFf#&i%^RQ?f zb*@h?Y#dUcLOBjlGXfuh(8-bZ41T925Q{{(A^NJOQ-aIPX=A)IX9cU_eUkrEDyw_K{bPQ!T zMb|@|yF4Q-1^VGQR%FSpa+D=Q&^Rt9;gk@53LGAk%|YZ{ke{FYE&{6RyDn$3?`$!e zwKouD0+H6Fx40ih9lQa7_ZN5*A>f!;KoEWiE>;``-L3eTBpUSCyAio@In@f#$Q^mC z(Qd%}F2QaNw(nt~Rue)zdIl!^1X6iNnJ3&y-I=AHiQk)5f&Gz$tcC&rPBnZ2tk4m# zy-UDe0F>b>D0<^A9D)B1mJBQ;z_^4L*V-qutP?@l`pZ zjE(MWpD(ik2Dl!8a0Fcr<$pkHLWpRZ11_K_mxYTF4&tqdzPShLodrw;K;H7q1sIJi zLNjjw5*=Z=gdYV)$$UU&8KjNCp%p+p&DR@80vD8>5IzZBEOEvQn{g-|4Vu$$fbcXI zb>dOM8#x`Qv`>g6L2qptsIov4D+91p*kEfYchnE_qzQQ5tK8N*mJnXo^Lqbz{}htW zyfyji)Aiy2AIPKebqX~^@nsE$9H`0L9cMs^Yi&kBK`h;O1C(k7vVr{kP$mj>p8BBw zd}?T@Dm^#U=lc@zKtSlBoyBkdgkm~Gmm1*&v5z7ne1hGR03UN|alaf0o7e&n-oSbt zNPZ&veJ;r69VOJe2vG4W0<8r;ND#3(@o9Mj-)|)^_)%L^bGWr476p{ztjD=Es9YC_ zTR$X*Q*!Uw41c3v5d?h%j!=i<5U8^*T?b@BZ{f9>Cy7P)YS5N-QCQM&jKdi);;TK@@#@ z1Krib2*K5o&6E(ATJw$t?%yv6ZVS)Bg&?D4f7|u@&FVq$RbQ3r2X>zXu!CpK?2#k$ z=SM8l6n7ioUO`-UIr88M0w5pT^21fCc+w8>qt-D~VUx9Z1-TxjSM>o_IN69Rw_Mt^ z`%*s;Ee1lMq5Cw70uaZ`sKw$0Q3mDq zKRO<&MiPoMp!5(GKa?UiDECe@l_hv|4AuJ}l)iZFNeMf$2ni;r;GUKXwojn_ zP0i8~LJTVIw3D77gNQ(L#$XowzY`0h($muoeBPAH2fzi-%&HeCg4Y(o@d)kU^Hw3i z4oBhmnlb@#n`P+<14@)nv6y)*NBz>ik|2%6^2Pam4ko<)k)0-92Ab> zNoEwuX0Px9n#l1(3`5hQ8Y-a^1{X6~>7|ze3bqrEh4}^KInX-J_!gpd7&zJ%Eesyf zH809Hj+K;-g^I0NHwTT25HB*{5NZkK6OP6EK4qc&sBfAufEm(qoH}aaq8uF@UIE2B zH~~RyGxJc`nbuee6MBqNY2iAjsijU3cj_mIfxFg=8N9jX#G6$G3+DpaWQf?K>f{ql zL8nt`kS>rdDd}`6Jb=j7t*kRJ00f$~`q_@enC`@ad>y=G5V6+?NqfTJWe&bQjPRM_ zQtM8l1YtF<1@DPFj`|D1LUAIF&x`PMsY>WlaOVF=aI}VRnQ2X>(IRD>XU@RWq?c^&d`BT?IX+#G zDqU#hC`SE=^b(?Z(;!fft15u;BG|e10CaPr+vr3@4tba$Y+O#KBl$8UR;oyBMB%$U zTDB_Km3}I%*1570uHq@4N6M)iUcgm$fELdO$8e{~~0i-br z?kR{e9sxqFqggqlKah=ogK5RxwfMur+|SR0V=t(_K*;+RRl_~NRA>xE5w8(DJfbVWV);wM44ov*VSdcZMP%X<)8Zp4iwh-o=N z5Q*z2*ra^eIx{aVozw@g=OMj^hLJ#IKUFFMaRs_%f=G)%<-T4FH%`G_fq{D?uxGA- zFI}es^@To*s-e+Vp$j(hPiTL6Uwa7|joW9Zm4WB=kp=t;hXJ7$?82apJ#VAi?Qt@V zV{1hQMjJ5J$+cLRgi~Y+FtqB2G*dv%y}BqVPqr+a?$qDa02klY;uLRCvV8>#oP+2p zIGgOtZpcf8AN!B6wH(ormp)VtE#o-4b0O##@V2BwopE~NK1KDM^M{Hf6warS;Sf_j zyrMk&{DJtq80g(LuYt|F01$eynI>?t0_oS=4-w_IfSa9Vm?=~lzTnN0xD!@%#cM-a zl}HYTz%>9h2WGwipI87u)P*+SUNGRb&7ZzpK822FLE@oFEEliy&W4yTu(XsZ~8=BU>V?0HcPj$mllW6N5^vg4)p8g=Q- zZEVQdr8w>jR2m7~B~%~QpwB#MMnuBM#0J=OwszBf*8BX;q%f>WzEAUl5P02i4eB2%j}9x4U3XOu0%KH|=8Ogoq=~jwEjgF~ z04fa1UiUlKB8_SxC=A*bD^L*`d_$RqX)WYo)YGnmaj*tJ?0-qV11mv9M92-}OfXJp zg}m4?Z6io@V%dzmxZkg^nBUbRAi5Ro4h0I4cPPqafK>D9-5^(uQr>ZqdB9q8^Dv>F z8NvV-6h{xHc|Bn40HxX@O7W6fic7cGbijgTK5rohN z1tDOa-OY%LMGbGGC~%)I*SOR}EJm=9km!TNOH{cn_QFc&YZUCfxX^C9M~k{xYwAM2 z(5F3m++sNT3$3V$9gcY>C%oyUwmm>}R#^){{K*lVnNw*d5$*bZ ziuNCw)%IV$yJ;VhTwTy<(5h!^Z9HKqn?d1?lKUN@{a|R1sU4U)opc3_XmnkDgApi) zk7M29s2vauR}aEq2|a!nB&K9fjka=yL!8u)yvC%}2R!4temHiUv zQSBM;QN?0E5)ZW}hQBy)s2Z3O<&7w)ES~_1% zVw=~rfc0QA_b3!)qbRU+oPZLaJp$ZZQJie2$2+V{ch#ikLTcVC20=KFBBbvnb)tVpY>nlCo=sld`}HfDKg9*{4-7Rc@L$w2lv@Qwljy5Wz65I2eE#MYB9*=CPYpk{X7ht^vtFE zE5>E`)q$uFQr(BrCzZPdJ;6~t?f)2_yN~f1P^6!m8~t)Mvp42{8Eb(ONz5vYSYNu; zA3XySokTpgRP+As(+^hS(zAwp8(|{T+v5^>K+MI79I=_6AriJ_o2KEzMk%97aV6YMK^H@qrR{IIZ1=&RuuPQ9@ zJH9N&+6r6=%Z>7Ymymq(n_2fI1JpdPZX4|-1Z%K-jbj-5KI2};J@u9$vKpAWOWt5L zqV)lo%A*-jRB1#l5Evr`WnI`P0aW zdPFzsS09XU8%NM>yyu#|bRXMi_|G-AKrfCC@eRZ(WsOcq#ekBp5)Iga2Fj{XfXpJh zLfb?HyyYRRh0F{+hQ$-i%&>)%Rg38fp%_tQ+Lz?p2cd}(At{Y&zjf9sU{X~xvsrMO z%v(HrLL~fASEDI(80jrCny4sV;~ibBh#Va)D0yiLheV!<5G>v$PaCUkyIaK83W2) zb*4*R#lzo_21Htjf#ZYNHJ~qwNP~$y$r!7tcp$Jrgb4?7uMYz&nV4e=fb@khI)|8L zjFloN+3QtWDV^v{1Rv7pkKO_3CQNU*UY%cI85SsPau5LjjVMfyZ4{iE ziUYb2chsal1KVQ?{-hUUn-&ReU%`6)@k|opEpUY&fhs%Fi(bJwn1{y{3y=?HJa4wf z7!~K-VG|D%C=>_l2KkRQRf#5q7dr_|rDtFPudK|5YEW`GslEw9gW%$)-f*G4hG`dB zBA1D2)E!o4m$7sRXQZB32M{&KF$>$v<#ANhC!p&e!Il%2!O)*?8Zrh(e!#Weihtqd z*Pcnt7hoVbJj6shgp1x|?kT`7AuzA78coabg>DnDhEaDB6smJ4$BYObR4K zOxBumy_!3{B=DGx;?fX5mxdc7hdTzuf)2g(J;ti3txfi}wzdXQET@;dLL{!<=)R@+ zvDwUTsjw&?pM}H8>@6F;3pVH#=r?y)R#k#|LG>)D3FrwsxI`t5k1ca)mWg;_OLX1|=K!RXXvs0sP3%4(%?SFvn%=pT4xZK@ zeO&b*>YCuU1(99R%HUj74?;0DLSN;~)(2M=tv)Q&obzEw>?RS1e_1N2dYnKI=v+yA zn0J1aEmmEA%$Wj3h>iy~;6oA(ama$(XD?J@!hjFv4P8@aLZv(PuVWl7m+u!X;Sm}` zhJGw$@(Q0PkuDwH>LLk1xR&&a_gTlDLay`*bzQ*~1_Y0Q6F1VP-&hBMdx;gh~4RiP%_UiAe1tD5^G2YMy6??jK%u0y)THMco~1eXPVHq? zjY#N*!(Z^F9zRDH@)huS?6p~1N1NK^PUZE`cqOw&zhKoPz`CU9 z-m1Do4*?R}BfV4^P4_`pAeOAG5$jXj4vXSFhG)CYQxwPp@iHWhl4DW18b z9%RS*^x9JUqFu_SZPzWHH<4)u&CQR~$zd$hYqY?E$+^@Bme}LbCj*U#pTmEVGGMN* zbg%yzd#u{YT62ztkx|{Poaj=!0)nYcY6^jdbPZ{uX9&s)!PEs)b}F5}J5XIuojSF) zrfOtysC%=w`s58Dds2C`^*begw!DE-g~b8m7EL&ZCwQA*l7 zptQb=Y0~J~Go)3{>FqtD?A10hs@Uo=s#29bx-gHCOCN3~yXRC6dPV5cTieMN3|SNJ z;k6W+UaKp${-s*0iGEOgs|hRcd}OQ15k|%v=G_u=E3^EdCbUo&OfoU46L^BzCTE3tdn zmLK;ctLum%<-8-kd?3H1$I&|~#VE6!@mjO0RQYy?oV1N}AbuNmGLQ-W*JluK`SDZ1#CU2)#j+nYn# zE4wnAkrxc_pU{}zI`mE?uP!M4Gqbv5sIzCNh)yo)t}5@Y-JaP-&1MvsG3}f;blzn# zPI+#k3OtUZ>2;93DDi`$trgi>dFhD-o0^+DJ@QVyZa1P_{>&^N@I1lD$cok*D)RE4 zS(R;Au!-52s82CssoYuTl$vmBfhj5StfqTCk?WobzdwA#=fk+KDctO;wr)V@$cg5AzgQGjPZPNfj3a6vBTQ$C^(^9oB*0mi9dQ>db@GdKA zNv(H>z)ugiPTfwAx2w60oIInp7M6RmW`-{B5Z&4_;MwZk8Cg#*p-bmw$JIS-dzmzo zqOIyJHc(pE)ogQrYWpd?krH0NEr8yzWq_sKEZo;KKvgwa z@`P44G_!sE`)M`F(eAQcw5l)-BO~_|>s1e>NcD`ZaxYv4S7aLzndX@!O}l&icho@u zLM{!wWOCQ6GTo{z9^A51QxXj)y?`3Npps&Mvhxm*+V)Siy4KRN{qDUb0gfB`+gFLN zv$qLqc$!^7m0nXLH3=F5erajj zYijQ$P?QC(&{c#zD92i^@@_=Wt7d^gJe&*+;%V&GQ&ua_=mU!ynJG~ZEmBfb9cy!Y zn}K0k?R018ZQBOk+3NLB;$|c15Osz1p%+Wfg{K+5U?esty0Kb|x$4W^)vRZZ#tPwY zkWB4*?s2g*R6^3h_?(()$df1v#Web9Ti+d^IWBf-a4!6Y*04P;!nhl$Dg)LTQ`*JZ>S6@eJ)qeUBYxGa4> zWtYq{lkPvY)`c^`X%>Dbdudn0bFNyl@j58lRg^36d|KcXv|n|vhsv<2+!Qk_5z{!t z^z(%du5s--y2-_bui{oQ#VUiM->;l!YUO>dTYlMeDqAk7>AINaO5oHJ*gT8ODQ9=5 z9`_;hliC%B+^JpJH^2N9kLWh&)q{i)b_lO5+>rET&ZYr}na`**Uc<`Ju5|s3>SI6L zfd`o?hwt(HUR>4DrmXa!-u$w}5?(UlrB*c*0h5|QG-nHB;%6V6wTn}@<(?4jp1|v& zJ#R}+|l!h2J%G9q)Vpi5v#|3T=I*3!DV+iH3doYo14{#RONz6*vInyW6jr%3lZ8xu| zI26V2$k0Jy26`L%2Q8vMTaGAPODv_{nrX@vnX8rWNYsVYHZ*PHhjf9|d-(;the&Jdt_1d+KqiG zlPS!3e&kf;>#x!Lp(h9B8z`+PV%g)I)|3kFRBCn%_aHDCQ@jbA+VR&rpM3VC0EFiV zkd3Q~O-xSz70qDG^P|Vnu5@?lu7h&lNmo$V)14hXRbF>?r5>lx?~p;mMB9>&ZE`WUZe4y}?l%K*{KG&-=SW;&zys(Umu1VH6iO8{_=FcvfjY+T zArOh@GjtP@n?Tn>VE-JFslzERf|w_nAR$1=Kx0|ux8e;+@CJ7LBLM{oN_Ti4BL+l`BJktnoGdEle^l_Ag|FlST~ru*h+{LLvd?cUPBQhF`1X2rRIXwpsX+zkXFaiS z0K|@e9zxPtIPv!2qEO6|K(Rk29-$=ncqK*i>A9_ zQcD!@4USGcYf*9Pm;rpZTkduld;$UFZ<-SAjiRYC-1!{WZ{D&Z9=K5IUDNKL^Ersi zXH1$YbKV~OPS`G}vCH6gN!gD7Zqr`&H$q)X?l^ZstnNA!Us9Pfs+@t$5{$3J+VS|i zEpx0K-{lH_+F?j}2(01zV_YOpCJ;4N8ASr@f8df&!gZ`{u8{<>>7xy%_A7}GX_y4Yl`$!ZOA)=`O*bX`xy@ou^xyRUme zN?-}`%@Bc{bcGt|)UYXM@*hk*g-5G~&8jgs9}D}i3&FwA&w%mB00+TY8#842NU!b2 zm*qj`XZ8z@@5n8X~N6 zLiv2Kr5=eSlV_MZ4=oK)k%vslExQ+Eb-?yYzQTu@C^mP49F}1HXhE9MA2q6 zV%fjh2U^@?yH&U!8PF9~GNJ)5VaAH-B$*`>Hau=iFBtRJvUZ<;`Euru=nn&YwiiR_7?g;KwL7H%@0Nztp24hPVSjpE`cJcl^O7fUBc zD`bps@5k}&9YY9${m6fZcF4PlSF@T}uBGF4GjZ%elLS5v@B~;1sLSI@XlYJt-oV&7 zB1#8@i;$n#yPFjg2SfW#3yh;=cRj$c-k`Eybq_T2bq{Ki%w@)RdE&4UtQ0s80XIQ8 zJ1qw)^#b~{NQMCuEB0?r!X)D1D(}%@KR;xzV24r;%pv8~ko)jP(ROX!BM(WWu7#X_?#5PnAZj~L8fgPV99y=XyhF@n)R=aF>9_EK( zM`6O1u}$(a-Y?Yv`37h_ba7tuPdPKc>F);)$MHfnhkbP%P~o!K>O#u;KiTci_gA_| zKPCTlRoRb+tLpr>{T?@0q7o z*G>RGN)vw^GG?;B;!NT?)iG1yLYfaorH1-n$9KN)(L~f>`hLFQ z-Up|$z@}8-q?E;1=nHw4jYbw09>(vu@K4d+Jvtt9t(+xq!E08HBgg@obGUM@jAH-c~Xk(e_gg( zU@%>kv4JasxSzu&u7{r3i91Rl*{5n>>@8V!(qn5tdJv}J_~75Ko;1)rK8oRMMf3PR z?64od@`w{S|AF0Pomv2vB{!jBDVlrD#Bxt~o$-P#aXM1r-h*Y3gg7rH<^SXft&tCz zwh`hV;!@J88;>Y{yOb~*eOwGDTmH?&74V-y=-N##B%#KM7xuvA~D4kUc~Qo&sT$rOw_X8VysTQ;sgmf#lzOFYP5e^iP#qKm@znFT-&- z{?~2N^<})GXL?*R*deHX(_GtMUlNu-UCm;0!z9U|i|nMpQcsqT2okqz>2WmJ^L08b zIv)`sK4UrQfs9ewlcy`-yVf>s9NYhi2im8=YkEWG=-$2672pfx@zxB>(P#UDgdJOn z8}XxVrJBp4B6)R^MX;O&PG{qP0wCSS2(Hapm_h&xI|N{eJ5QWC1D5ZtqVl4QcOXRA6^kjmzM zQ~u9K$F+oIAd&XvPpn{+ACZaNM~9m{Z#P^3b41x$%45Au4IN8-cQXmo_(9@k3U_k<)V$j$08R0@pe7`@pe0iuWy)mbgfro z<}{+_;;b0FVb?A`ALwH}Rx6p75 zN$2eCiM?A*@VyFGC7 zNIKIe9^F`+NFam5TBqe_m!Exa@$a@bs6WC5$JahWXbJHpXLBxEB}>sigB_M}f7^Ir zcCf`eLq)N>P$+TOr^-wFBz^QcVJ6}NHT*y3{)9@UnvGsuvGjV;MM^#XqlZ%0kb>s} zGr3rIJ*YG9;CjBhymj)Isc*re%dVyJchNr6_<3gs=fX3-f_p#>tv~AWO4(TpDk}PQ z@NZ^(v*SCLuy>EtTgqo}Xrx7LcA3WUYpsi(Gd)z~1VtAedlz9Cz(czKAnt6JuhHUL zDiO;UHyOhxl_M6lol4I-$PA;W^K;3m!9d(IDV`>4i=$e^^tm}mzj+@# ziw9d%Qh4la77RxY%b+;InHAFfJoWm|-Ft_QpPTm9_t#5`aoKqAuWr7VIZw9)Dj8+> zn&2hlvbVUe$xY|EpgnrsFs}*f(4_lI7rdqA+#aqQF0V>^chEICpTi;VsN6jvK@#Ds zIX&gKZ7$4&PrAv!sHnTUuguNpEZuq}<#Ujl3;eH1(Ftn(X`UARY!8MzR~LV5rF+jKaCn_j$*c7}K7DfH^$?!awTqtaDO)7;+*0(1)NskR#B1T( zVW?R8wI0qILwfu-r+200o!yF~leC)c8PnR!)DEkd^^<4%bSS#07+$#MV3(bC-BmOs zKK&}oczIh)TB-VpH0jhR4PRA7kvnp;j~NFqO_yHdeawbh^?hLXYzG78#uS=C;=qI5 zp%<@&GVj*yTidZks!4gl;;Y&@AHFyAUTynE*~YBQ-j!WMbCsl!jf?aQy+oGgMRrQl z-_>5KY;$FtYHqD9WYt==wLQrxtu|?nNp6b%*(c-JGkWh>);YKIWN&6oeQw7{LfUQe zaaEB7XC-&mo~pit(Nhk&ls$tkmDw!GOwahfy|qKFgS|TM`edA`-MwY2w<{aCQ2IxX zcDb8)*0&@x{T{>ogG{*>bkdJ^&ObrFJbDI%*9uyM<5|p=tCXt1?Q!JDkp|``ZWX_! zMJh9d{4`cR-}Ykq>mT2%d%xa0_`~?y+!xlzZ0fJaKkQJl%gOJ{G@lhGZ8M@V8gYJe zoNJDT&Jh*GYxTQD$pgLf(##lMMf6Pbk#Ed>DfMZ&k0f8cPtTfV*q;7vFw}IKPh;rK zyjeE&A9{5kG%gk0A<1-+DfKQI)=%{aa}?QkPvvp+=#L7=vKNh^S+n9y#T-63QtyiT zuO?^fQ8%qKbFLe7e(Ok8G-;*lOiQ=vc2=yRbY5c3(lf4i{7&ED%o2(3&+2G#49@6u zdpEK-o2f36kawvy>U!e&z}w*^qU81tB}0}&clQpHX;ZR))dd{Dzv!h(5eC}(fw`b8n^g2rq<-X?!MHMZ8`GLzT6|H zs%=~15BF1}b+_xPYM1xz{ghkLe3GW(`uP=e-}>Fc)J^l8_6{n(4IPZUd#5)kqA}IA zE_8iRyb`T7&8)+*qRR1UR%5Ddoq~7$(xCAE+*&2m%k)RCi!#4ChWFo&cM6xDvS7>C zoO$Oi>UU(c?sg z$5xkwo?8FG(@dP|_)VrgYt?qS++k$u{Fvsnr`Ay7aFHs80S4_K-yJALy5X+ zs&@grXH71nKF0X#=Ix2~J#q=em8JUXx zzuc%t5tZ@SbLa6kt#)!8qotKK%b}V{^Y8r}L#H%#7j7u+s46l!9jSDkHKX;z+FYh= z{5BRrlambO+3enY5cjwHIbl@0pn9?r6$;-{^QiDcWIlZo2KUG>#o6 zk2)6Gq%wM1d-H}LXSO<1&2en@m)FHQVCLUSXP|ai;VS0OX9puK#sOdlk>)2>cT1Y!?ikyW};}@)}}Xk z@8Vdb{7&cq@dp#3(iL`?&a=@#&xm8lx|mB2)nL!i{xYcOv$opWFJXQ3Oy|`rihFt| zlPvxS0JGKYx^i7J6At1<+yd$z=j19+aYnm;`;TM_vxqNt&XyaVo4IXuX@(a$Lt7la zUrJ$#heli4YEqqa_~V4iSL3nK=|>z88_k0Z1!JR)#CFk} z?~)Z1jUHNRWvYCQ{b%IZ-w(^d-MeBJbn*0K5T?|$BkgSJ`AHwc;T@zgr1>MhuC3cK zvxjH}L^~Iy*Y;J4a&FiD=Tw77{?XzM&+FZ)H(<<^{x0F643C;2<{b*FVGDBgRL?=8 z#?HSmu?WAs^2_b4uM4_2cJb)UgkpXG4*5k5D%2_3be@wKr3U4F6Aut)2vqSLynp9) z#A@KOxfs>d(L(z{MKrh5j%NK)kb$5BxXvz~u`%L4X9kuH?XDt*2M(QcV!s8fO z>;eE=`)-{z%#xc2N=dsHD+BEc6~Uwm-RC1A5F1CE2XR6V62G^!{j4gTrRILcV)9YF zB;S&YLc*l&+e|8h4jM09%{~o>_Aik+{(|FiBq&y>BJ1pvWqbls5;{0vY||J9s#qW@ zVIUU@C&s}Ty{EVA42?#C0bKxuX#Le(D&mJ>qSlqsks)XMM5$|~%|}2#1le{jp!H8k zi2)UP9fJFTlEv{Al<#&ZT_y$dCDi8Cye3r#Ygc^0dS?nI29V{k6NCIS_F?iaPs(}_)C?kdq+Qzt?uZS#5E#26WU-3kw5}ZNuErKeYZ4h3Wek7UfDfH z@v-c*t*G+d+{tFLD(Gs{QNJ`|N`T}c)wv7Sn-ry$M-SYMIMXuCWAWaz>!~8s) z{G0ENY%gONirtNZL9MRzA4u-c=NUXdZT2a9ih-GD>eG#2mpJ13GRx-l7pU<#|06Q7s7EuVJ#H$UrIVdB;4FIP ztB|6Ya5q80%3?{Ve_#2xWkjjK%lA;REbKC6p>FJ?v(0&TzKX|LC=_?KvZYl~d z01YN?aunzlAnWcmaL-HvRxpK-D_UfTb#Wh}K5tm9S^4}d2dX|0BfWtA%uQy2sNX4m zuKGvXQFw5(l`h}ZDT)$_cKYE?dK>3)H*o%x*^n(Jwr)dL$}U!z3w?7r(Uf$(_l49s z4p`oj+Z&MlFYu9L+N>+E@7XVtcX|UsF#vSN=6ysOHc-YM#wQ)$yXk>_~y=r+S z6KH|y=1#)^G9bF#wYI=A2r_m_q z*Wgehot*r*UQ8m1ID<6A7L~lXsCM8~OSy;j+y~>rb8*=;8$=VOO2kr6B&1edLRE&A zRMe(<@R_7GU$A`2+qk1MiQmFn-b5v%*GtIel}We$il8?cFsZVnhFx2A^lh-<`qKwb zf&o4Qjn>yl2M1oziHp5GFl`+Nsm}v);b|NV_aV=lWo~W`BVV_^f~~#$|8e%_aW(JV z+xRwjGKM&zK}1O<3Y7*Fl@g_*5pk3xnlxwXh*VBWiIixbOqJ3==Fq5lRMM^EzSep^sg4RggBFQW5^ zpH%W_!rS!MOzBMI=e?Q=!e8TdrjOCN+w`b0jU*W9gCWJ~ zVAL3<~82)`gmf&2@!H3T^iwEXQhP{6qwQ4z;E0w2>DP)@k4#>)$RfPeP=^ zsU4a9?~lmL+j?P^2Q1<16*rE}rJh-mO!9)wvf7x@o-qcc2@Gzgf!%0$Z_+2f^|n^hxV=3EfOD7h`5{oVB}F&p0I+uF zz9*MtL>O$Z#3not+_%-?*l##4)xa%3OsQ4XzRu3a5~J+xud+zrpq2)((`a`^DP6{{ zL_B0L|3<22@VdSAf{ne4wY7C8I)z^^GL6|?G)R+7YcWq5JiqOoLWlT_QTtRhc{BSo zY3dnum8o1`%h%k}qWz?rJTXaS(gey&28NJkqPenEYvV6r`3JRq(=_ZZ8NKPGk3>pB zo$!y*jlE>gNEwIO$BN!PrhCQYoxDgRE2;sYS>60Mb4bFHTI3%js%BRh8X9t=A2U{& zON!S|a8`dyb%u*yYacowok-!3GR7gr4ZsCRLAoR7zLJC!X=Ork&)1|xzQJX-8qSTybgqefP2f&!Dl+O>X_GlYEBxyvbA&CfQ40r8C+APn367;Uq z7rw&IETmT4+UbVJWc@yChhF;`0f7D#C(!G z5cu-v3Njv~B)VFen(^7&A6D@6Q=>E7u*O=J^ib;KCzVd>gvE;9tF#`26MG5G(Xv(e z&(LezKss&YX0o!(^Qj}U1b?|>s?16uYygQ%kd~8_9aR4QXqi483dU7Cl+}!uwf$XezWpL@_XX&mR@-&89X`PP$L+#CV~P zczPe|B$mNmyv6|4kGCBseN552$j5lV=NECOR|V)8$nxL(@4J^uontTma0-|>N`i!R ztktvk#G+#^mrdy0ODgU-F7cJTO^CbjD*HB?M~`Y#5fbtxlt||kszf(Ko(|HlleC}l zv16-~t4YF+DIt1o^*(jmHp`$PJsJ!-E@(+3`KW=B)Fh^_^9+I%A7|DO=Kjs2wqQgv z5%KX}WKe$eI@dxahh{WN5Ey6y2|-GTi*S_Mb5E`>J#>{RBij!nrS>U}gxVU@Ajhg8 z{{os_8hcj;<-CS1d{kC93~{zon_$FUp_<5DdD~IzISLaAS@GY+@{?)+dwZXc#?FhF zE~_By=T7_I2^of0P-oyE=~vQ@AO+L~Mfy;fbwnYb2P{k4hY{5v8EGi|7%29&6k~w> z;)OI97CN{afsN8gVg^$Tmk#!}EM!wHe!c;s$&y2_dw8b#%v zotJxiYaRT&Cz_Dk35C6&#i8?%cPa(af*TrTXkVdFsKu3* z-U!GF`valYt}~7@&3A;;pJdy(`h}@npDU;pqbRDu*p&{k@%#KE(4_TEU!OEg@!os;H!pRZn2l^S(^d$2@ zr?CVgLetAr5hQd%!}Rv^*Ub?qbrB)Om@SeL1rEB$p<$hA0V_^IPnvIaw-c(N1>a&1 zb&N|;C(5WD5r%jnVp*ol7L8U_XfTG}^hHu9MO!m#{0Jd)Of2@P(C$9B=tB{JEQvb* z4!!EbbRtA;J8JeCd59l`rFSDgh=ZvmRxnE1PVK4PJ6{GxF2UXzKr`ti>LnNC2MxSG zQVTIGU6q>~MH6x9e_yj-PE1Vf1t2p!O_U`;V2ZBo-ex{uz>xM5RXrV}T$Fq81p`P~ zd=A%}wI2}U2G3P}zU0m{vqjJ~Fp?LWGIOM6nylhFY+WMm4}0jcxgxpr$1Lz*k)k_2*jXmaVprm74fzsHbV(_9Z9fmyVDo)GgfB^~I!&ViuSDx3ZeOEB9lwzdD3<)|+G`jl*NkM%%=>_Rn(r%gFM3U8{ zOkyoI#1PN+Um=G?sr94R*JvGoje!mp@{qC?>pK_-kpPctUzcxW1TU*XfncTuK`-b% z#WZ(b6V}(6KO>dIAE8u~TGsaG%*6{x6nW_g9-QPy3?5}ucf5y(hieZ)qWnMRI6fr# z^~92c?iLRXJ6uH^m(qY>kR{d-djm<#IyG{SbK+=$yAL`QSZultqD`5=^KbGoy zTu*`i7dJ_smJeTt9_|tdecmVS57b+BhCD^77E}t?%#!J^5q|ql$2685E%gRZT0UDO zhgbvp)RW%Pf(#I1AoKb8g!js4 zo;A0D($|7Q5w0au8u^U^82fy8Aaq=TK&>ZskPTtlPkcNvSx-JaQlEn1jg7(QYN7LX znVcj=Bhao?kvNy2c!D9foq}vqm}FxcaO@q*8YSsws8399y0*EzO#FE2Z z)%#3i?r*zkQ)WWZ-8L9WzqX{C7nbn`{Nc(CZQZ3K0Hf?_V~uyb7KBn+*@Nyi*yWHO zGH>4!eH)`p*AJ9ln8mq>0?Sf6Mdxn>XgY!?FzT6b?Cqj5qaDO<{YnY$-ZUqT)OR6U z30-|b?YPT$^U%Kp82q~Lc#05uYxdfjr}b*>9wafN3yIvQLwxHr0ujg6?~ie_aRwZC za>ov`$WWqvrxULhB;#5SI53Ml{NXIw;f~Dbc5G}Uh^G^4i4otgAi5XAwNqlR- zG5tdj-Aa;Xv&A&yIv9_WL|eH!M8;_yUt=rZV%i8UMQF7MX6wG|`sh1!R1K&3t%Y{v z*TGhX^uD+ka~Y-HKdb{S)`D_<;Jzi_Jkt_K(D%+1JRb_ffE)`pezdU zppYI?1iaKILAW39?LP6sjr#7FBPWyRy6h-_2t}Ms3yUw!-->htuh}&Vk@k0H7c@rL zX%+-)6U8hvlYI-s#J#>2rG|#4nTCZDKb36uu5Z*mIG#P9 zbovhrAo>*8w0ezkZZK(vl(h})c#fc6D&aWBL*%*4QZz6JfpP5AtD(XXJ&U(|`rV&W zl)4;9ja_iCl@?87csWDbYFUWMmqtiAiw*X*8`_$KJ`vIBL#)x5n@);rnOzXc(|J@4&XzqNY_E_*5a+(6 zm63qj&u7b~UP*`VJ_scy7+1&{%{SnNdRpGrDQTr(Ep@)72*oEL%p(d@Vn3Q^4w)=X{{7`aHHe56pL?pfc;A+G4)K;?x%Lhuw8eB$KLjByuH?0lP zGn;v8=QgqR>$R4dGSY6+{$=qse`gH;UEq@-J4YIQJeggpNfe<9IgAmC-YvMt zc#~Du4tJ(!!(|^p>`uq0=hK@gNOwjA_L@jfHa3FVM4X!(jxQg9DB5b%G%E6^@fcg| zfxZOo$0+9BJxJ5-OYKPMo>W7p&iH)}eRNZQ%{jE=P7#uIcxO?1i>V(CStl~6G<%kR z&~w6GP9}`_ek1=`z*Idd*FzSW6zJsTNevJ3a_v^zaUZub85@*~Pj4cQlXQh`0dOQA z1(BRM(H&dtbAvb2l>7Oy4__@ZB?@DD6NFw@I0H7t*;G^7g4F$uWhv~)lO*c*V_|Ib zSCNMHuf%{+AgcYuK<(O1_EErBGm?OH?LpYRuP3nA1|Qcq%N>N4RV^g&1nxqh@B=YO z?nR}b!!AwCY{x={v?mCOWDHyA!7H(`{gu;D2U}_;UhY@~wK7BZrCa};pAXq$H_*7& z3FVbwUr6xN&3G_p9!<8H!L{k}(Sga0PT!LU-%95Gqb4WDna7@V-}XN}?PeU%OOr)n zZNeDA&!M`_hFHOQ=?JJ8X&C?-U-9TcbgFREgknAHf7{oGrSLZFPD9^>?y4c@Kr%(; z6=S%vi}3GUC?TRy9)qNcLW^1Yz!!xHBNS0Gm5Uu0&yJHuv`Oq&(%2{aGc^2sP2Cu! zRfw+slm;0k$=G9|Ul0VDS}yoTcZFs+6TizEABas+I8*&$g=)YaADQNeJGBU-jk_O{ z!*r|{G`xrn4K}VmH+5!n<95YD!gF9aU3;h#5T>AQ>T_9AErN#ToksE5ZWFD1n3rf} zv$2=ZgkLjxFPf)?kZ0RSQ{Z_+P$NTgD2{&js+U1Ci5$nPH6nQZl;CGzFJJ@eb|a2# z9Sxp=PWwW$ZlcT~jC2sb)D!QQ-k1i8M2xgpyu!To~@$Y&wVaUW>pu5aweRJhLj_}^=YUDZMR zk64J8ab9%a=IBO}4COpkasP@l&RU(zNcB*p`q{zSELOpMp|KasbL<%BhAbXKk1Ra>n zOcCfV>#b8w|Egh}&Mt#ft0P%MA{t#wi@OILk>27Y4Nh*gQUNJDD;JEHh*`Xeo|2d}7yl(Np?cNk6Q-evgh&_S6jc#8)&60s7Df zh;>CnUg?(SdWz&W=$BU=W@Sj4L;96Qy3GIZtztE}FNmzy!T1Yu zOqPX-AvM-v_y8g>ZM?3&t3UYV{q@d=K_jb4TEFm1w9D8i^{CrI@zn^2_1LLOlJ-Ty zOg6?Qu^ZNNgEQpeUty7pn)jxCK+tJ~B%;9GmX?+}h?Co2l2CpPnZP+fb(S%3-feMx z(18?U5;_psEz^gqc4j8bFmlGACy1rY5`f}0t+K9Jf@bMJc8Kcw(&aRyriw60 z(t(0rVDDIRtQ%6K9q3h=aadf!6_;Ba!F`IwBg86vN=qdOG+41f&&SQ7vLc{ zNgf;A|2*PyD1%WtvXHA)qtZ+*MK8X(E?|!I6V#u|A@lruzVfVE&6pxb!=_-`>oSng|6&- z?{f0DecDmSz<6#+KDKYY%h(o^L?{i`qktYEAgH8+NTUlh zL=9Gf{0=!iM#~Ho(ngs{&hDMhwRtl-D&5YE7`>HE=f)XRaGLc&_QS}mWWBhKd2G^y zTr-2iZQIXt-0xYL0fE`s&NhF1bUHb-#VIf*nj!=IyNGnpUD}fv`ghC=y=o?yQGv(# z@yc;O_q`(zd#3;rm_yiLEz|%w$xzX5(ipB)f81NZv2kMKQTXUfbjOLhdh{?qj!1n2 zmyupNM$^|l^ftmH?Xj1><{dMW0Eu~}QI>eDE}%isd6tpNd75C);7MhRRE8A>-I zUK7fhI`R04Eh!sDH{1gW@EAPs^d`b2pwayfdNNLXGE=+%BM*_+d8QG1Fa+ywI!TZgHR`Mg>ulgz6GH7m^u6ej6hTAUmp)}wAx5z9|Kv~^9jTQ zvvV;i_U;^6ZZO6M1xGBfIRrT-cg_%g~Ad1VUMfNF}H z)5t+k+xnI`xc4l-y%TwKe;f?kpZifW+eA)cMb4i6FV4fDs=!xPS9&a=FGb>}4-ii31h zh7qt*&6|*!?8MN87j#)@I9*6;VU(kB%YbG9jA;vo5pysRcawmw8ce9og6B=YtCVb4`N5J zN$2hHUK7prF}v|a+WOX-OQnHmDRUE=9Ch-~04iQH`yQc;Lyo~S9sg)W5cWS{g}Ei9 zNsPllwF^k^vbR$KU!&@OiEXSt$n_w5cn3@#cmH$>_I_LKhGZHnV?h({tf>t zgLI`mMau=QRV6?y@(LFQ-T1X(o;RcM?f17_ux#phyMx>{6KWCiZ7e&}NQnS~P|)`v zSRF1qV&eCedS@ChGC%f%F#KME^1VMO#fHZohX`4i%UkRrJ-{Tpq_?$$7@<1ESInfw zT+8%m8)=YBSpI9g8)iBD;c z%Iu!wwx1DS<$5S$#Q}HiK>)=CC==5x zin_|vG5-tA6#=H>F{WR_Q{r`L@&vIIS|k3_H)`;E4Ex2*6aSND9nVqi{Mn5aJt}8~ zECC?Hohve^MLdWMzozW*9KK%;19nFGDrk3Vc8G`+{oX@%Do3t|LL>Nt9oQXI%OOKk zB=nl@*@OSKqkV8%D9>@Nr{p0HPqEqSsrdK#hsc+AU6dT>_y6vy$a9*MM;*8{ngx*# zqGi%4PvU%Xr_Jwhv2X0Tu(6o@1ssZz7&Ybyu z%q2=n%G&Jk8Ai(0e;nGs`xwzlB;Pk%p1cYQU33(KP}V_!?s(328xZ+aTgyBHKV9s< zYRV=iTTKngK=k|qQqO>{zS;&CK~eGgIv%=OL%;m}82n9^ZLrt>@S_&sm(IVSY&okS z8K+wCgF<)15kmmIDe{Tn8{`tcd$@lU#P}+j^9(+nH2X59mteLsY;+wekko{jpAlz% z2K9IUCZO(0&2cK!)K<{f*GPIr7(^tsV@uS)+o|C98H}D;$;?Ppc=vW@ZVMfu{d(t7 zNgT}V&$J#O&$5I`jYTjt<6-5-26UaeROz3V@dZ>EqWM zb*LT-dA0Cr=plTJ`ek!@N6s`-*R=79e#|uv^(PY@-16fkcV<95CPMQcH1wNSay^8; z_X6B5b@B%p3F1xUzyy)Mm$VD5|b9^=ObFTS*@Q!5!*jLj#NG~ zm-=_ZFLhexWXttX$p8(CLa7_3Afa63mW3yN^>o~UarA6uL-o5lMt|eV)*14}g@rFQ zwe>X>4XK(GwOAB8Fc?-de|XQ*CWwa|_4wX7j6Bo>@j24S0hfRuhn@|JH9G^_9arKl zm+CU#Qc_U+;BTjoz5V%`)bjVwvi1iX#_wsgX>)Tw1})B|8NgW*&Bsfn(A&t!<@gsn zai$~S?k`QFG7hn$1iz_B&CLxJL6>QVZZ5+|gV%oF&?E7*LF~Wu(#o%&77~uqGKxps zn2?e7=PiM z|J{u~fK@^n3)NjB=Zlny8;y1lXoz@nsP878S+3!~)^$!CXq_cL`}Z|uZ?zO%8li_Fwpf*#0vpbsQ-&Ut+VARxlFMZGOQ@Q zy9vXFmn?hWLahtIOa8g1=HjQ~el2|d?657`1uQBRxxC8q6|4hYKv9(phOYc&lNfPe zfJ@y5U$fw|{nM>g8@HpXAm(=W?N?J7`MV1_&^5cR1IBYt$dMVQlw2V4b&EZs8IbY35?6mFE5lt&JI7$d^nDR`rj zBLoY&ODx_jH8~Q^`u>SeqQ%5NCKqBYZ62YCqbt2KrqiT*WYQtcpEe9_$VLumL-v?G z-i9o^FmLNb`^AeEQ5xVPViH(S8k7zy4J1mCMRrQS?XX9W*ej|Ga-W<=Ly4lA=`>%A>p>skRuvP z4_~RCt*I^g@uPm(^t0yX$+0}Pn>$g!<|K5k`0BHc53-?WE2caTUuHyVo?L%q%gGbbfETL0&CgySz1QK{SF@4jNv6p&a1yt# zJ(0F&j$^l)ZaJ&7ntS^aCV|21&KXw8q7)qW@y?HV!Q3+p=dbD z-9RCGH}wgvZBx=vmYBGhMT7^9$5GL-jQ%gxZ-Y=YzW!XT?$qbgFSiSqDdA3lG#llm zC;zFNKzJjEa~$PTfiTUAfG`_s2vIa@NQ<(jU42p6^wZVfUd*m792jtOlowve#yurV zY|48_A5Xo{%ebxoV!1oeIC8D&^I$T+L3~`j^B9R;2w$=vtLt}|!2Z{q_Dk1vs+0va z)`|;u@7#jW-zQbw-g+echHRU1XmQtst#9xL7OIB7cAVWe>;w z4*!J)8*U0epHg&2=AG7V>#c0o`)?051#-RfN)9?)(%?L(xnXik#kWA0(VO9Mjy4&8 z*0VpEF?8zI{D+(R-)DFmn6l=`y2OdQUbDR8$$xO@NfP)%{A6t zx%%m_pru*h!N8SYOb_3#Pt6?`JUBGkdPFJ9PBh-Z)ADF!m$}CL1q)UfvN$G9w424S zsXq~YCwU!|8)9moOygDw?Q=L8{5~t=K7knqpH^1JFt@b*qbTioVWqNr2hO3eYm&Rh z{28G`{ytN89{F@9Nh&b>TupaZm(Ps`p91!2?e=QwRgpOo-OIxZJ_Xn)+wD{epXjRh zE-)b5Qq@7&+#u+As)2-$pI^q!7E6Pc4?)?M<=h4KAKpo*sXD|Jmwb)1x@iz!KCDsR zmmFjl-lx%(U|{LIxTQDC>uh&Ug5&5nr-q<{bz>F9Et^KtPYqV~6`UFkteSn{uUW;l zw+6y9yVYdAt;>0BAJ~;_u#Efiu*UuF90%Evx3bku{E}mbbjxrs06Fhh2b}{+m|+7;U4(JZ#*)v z@&wyJ!~ca2pon58{lQ?q-*^v%Oc6bzgi%{?#CtS=<9FHPYw%xZp2S z{MKpMPtTUMOgkYdon5i%j&!@#Et#asJ?^&b6m z$496e$cXO$w;Ai zlXzL!CYgpD#Y%;?3_FQ#8$U|_meJTdN_lnXoT=q}&iGbcY%yWU);`O<_{sQs<)AKTO z(yd%XX89Z-)W~3*c{5v|KW*;Zxnd`4<=aZ`Z+&vAy$Gowar++Q=&P>k5y7Wz`;0pS z$718$PDE>BlOF|w~7P4ILA;^Kvw^QT1ha9_>ObdrBFT>N!HNBH*hIfkC} zl#G(=4(^p{s_k4X?a|z)b5Hi$PGQ_zctMx*gD-~2?B%|i44)TGL31d= zKRtKVvSpuo8}qhuN?Ki6&M9T1f*i)9mjbNvr5jg-x*n0c++f@h7kqs=*&%y7$Y5RGRh``x`9f2ztCB6ODZ%#a$eqH9obT?3SH+h#W<5NN{T|P!R$ExnS z=o4$CzQ}g!tN9ywH! zU670NSsof1YJzFz3&JBdW_=O8zpU@HU*Ye4|J;1(hdsOOd4hAnf-qFq|6YI!ng{v$`KwiSpY-`)q^@&) z+xdnPd?O?Aiv;hcn1-HCR>ppjui|2-GO+aYb!vX|@2%7>y}OuJhKF%@2MwW;O2{*P6}_s)Kr z-AJ@8gGIh{lvh$zboYS+apfzpA%$SUgm$tihilZ|y*zrBes`Bv?!lyW=>?O=&z{~6 z=DTvUsO^|`Phk9*$oaI1gy<$7i$uTL4(~3w?kiXJpS(1@JJCz2>9gos;u;ycAuo>~ zaSZ?MJ3_dI?~aB+x^->VeyO-P779Zca*V8JEX7nZKA)YPPe~`;F&QN&hfZF)r2Y+G z^>X~UU0(1cu=B_LN`T4P>&o`&jK!Nm4kpRZU^)G;)rC#}iH(`Z5{Z0&E*Zzic&61V zY|60~yA1F%r}O{ISGZH&kij#jzRtZ7lBs$pPoDI?`{Bk0Q}lN(2xkd>7ipnB%Xu@M z1O5-j_scn|O(ve!m#Azujtl*dBgJhfzkS=bW<=9#!h-CZ1r8rRyw5)*)5pt5J!PZx zD4Du@%XC`5)pam8eija;G5F=R&#yR_>P}`INUS%JTueB-``jT)w%`% zz_>V}ukmW0S=4C1Yf;|M4Tql|-zYIis0HTDq&J`A*43+E)sP)%jjB>*?*|Vbid%eE zbk{ha|7nke!1jz_{2PYPwnrsxm)pfAJdL|~+*)k>VRENs7UWMjcIn3|x4So@WK8qZ zr%&E@k-IiUd)2q z(;6KWyY|E@YUlhc4Sk8x{E3vrO#hy_KiywAzf@BwSMF8?kRYKP^k>$0f)S35nK@k3($> zM*%vAGz|=HxeA<33tY9bzGESdDbC&bpGUVK*7J)F3>4E$CM%4;h+Ef?0@a^~J$}4V zDL>JyTnrNb?ixPv!(8)*EbL)kv8UUyvadhYu``|;Ecv;#*k`HbI+CYnCa3U@+q4P% zub1g*N9@`>Z-ojDp!1-~_yKgR@AEJ5dtN7t?_x;dQp*1A{g~_Wn+Z>9s=exHL72yK0U;q(x}&RiGKae1Yi>$>-MzAY=(s43uR4w|UmmvEjqMXH z+vJ!fUMxW(qM~`WBZzg6_I<5f5H|IjRaCovHa9Zo@E@L7m6Ncpt(WK{r#XL^1z2eO zXP*6&zeQm^Q_vN%T&c9Qbdl)6^DhO?j@)c^=&m7`y5E!z+t6&7cjiZ0Pm?|PahcEm zrkD> zkQ;oK`7t-=p@=8sff)Ob&~`L^-wy3vM@_$9yMJ%Ti8(8-5DTJ(fuwv&)h=Uc7=Ajo z?T)ISC3u*7>*&^vOk>;=>}y$> zAdbIbU6whi{+Gi!(ZNYsMP<)k{}!8fC~k}c{M&njXK(AC>KoIDQDo@SOBdUnkOLmhZ8!eib$Z*7W18S%|$u?0B~xx-)M6&MT~dG|`^B{Bv$ zqA!0g3E7VdX8MW2GWo#7DR!S+7tZJ45Ksz`c1T=*tmMR>i7K)==^MuZCu}Nr_;q~rxdap81DS_dN zHH=^EJL626D_xMI#c@JPgQG+3z3AoIdy{u>-T$^6=YO^DESZy8=drVgqRcDL-?{eU zN-LxR=a~CC-x~SFZ++jCpBIL&=S;^VE5?n#S45$yI6epqE1*<%-{=A|!ya?Y|DrGX z+h2YEk_$g>-S;mkKWVM-!z}Zt1oIy_Z~!|j7KZYJeVm(Yb2I0EdM{PjXOlmTEMhBp zbEf^s8W~hF!>#-`_B{R6Aj9fw#lFfXr~H;5{^O6MttI#2&yN&Erf-<-Njsdl&Al@F zF^<1Yz4ORj=8^x`{*KzCnr%K8m#`8#Ig=iNa-3s!@t;fb!UNn3BX}qJSyVZR>?!opBog5sGc784hHh9)WV5F^oW27bLf1Cdrz&G6A z|97Q)R5$iwUcBy2-kZC34%XmZ;HcrizsfQY`x(l9zk7>Va%N6?dQ0!{)$u5VF{ea# zbz!u2G0Ma)H=RE}dAi2Abq)V7XXH`~>UcEt^lmOUfd+U0+VZa?$^Fx+em|`RZLG@7 zZJ9eLXA38#`t#zQsg2ro`>cUoJ-d!3;zF@5#*9k44|?9O%V|Vu*>9NvfxM2-k9T?fc6bWowD+60Z}Yyjl_!{$uMZ6m7nG9H z#Wbs^-FN;3-RxKxZ&=;Dd?Np{M%B`srd#v3PeqW{WRv4Qe&zpl&(5Ts`CZmI6%Fa} zkkvVg43IqvtUjV!i&3o1v_BnYNT}=F+kd9|9YiJ~)I*h{bP}RqWae{o$L|c3j6^%F ztFy4Qv_3Gic-XwTb3dX))qBO_BTrFvbw@xWOwk*_GYs`d@A7*paF3N$RfQ}hEi>oAK?jodG+emJ9qEi<$X72=McDg_Js?>kv6$t zC56JPXqk~74JXv|NCG>ad543jh9Ylwh-=uqeDUJEm}=<0-LGSTILZ>uZY*yC+?|=f zH9)Ru3k>niaYOvcW=j2SXjJa^y|*i_Vribplw)rS2ZE{22O+?@c=3sO5xbYoV?hoKlbMdyk^rNEezSHz>@B?(RW<d=uRf(WUAB)vSjq!&GCYpqJtr7}>ILdiIFzFg=!_1TX6Thb2H6w-pUaRC}dw_c0O zZ&u;l5WG70KYSI8^R2~GPfK^MJBwFiOx(8L{OK*=In8(jeeXvnK5YS5ttgwkbn^IV zU7Bc7uRQbjHFD^A3NKXJd^*3Nptrxys|7EiwUVz9J;!&jL+mZubGFo@YE~UJTfRO% zhpg3=T@n8_qJW=HkI&Vs^B%OV)=gAFt(#x^*r-E%UuI_J{Kbo-Q>Z zDWYNhBffd-we2$1sa}Y(lO7ffcaPuSv4I6FQcgDs3TPvM1_I_so9)uhT=G8K>h8YIv&sXaE*FhDg(JMlEDw5mtY&g;D$%+VHZ+%w?KXBer@_I_&Q9`V?fJE9*ZSPN z8AC6NcA8g1ged`HEG#TOK0K1M&i9ZA9w+p0xv+=xVAIOBsx+y)<$E6){{?A_*woZb zMh2iGAw;vyx}``}Naqo;lbuy`mX4LKMQhdevL~nFMaR%1qiJP@^U}h*O=U=<7hI`N4=%9(2c;rSQOP>-zK|r=guOu813DEWo@gVfPj*h?C9gs(IIo3 z$-B6x(vVDW7ILV4@f)2%0!-Vs{VD2#1f(R6s&$^iLf2K-`4!fiSH+;IJ>YB&emxrh zFA6tWMs^-9FPf^hqvP%)%Jd%LP3zK-CXB)w9L)<+cvE1YMP0p;&clzF4=g#!%|DwW zw?1yh)3_zawRdr?0_xHdXqsa*ddH9zv0L}%@sNix&Cqo6R$JT0=$7BFB0KQ;YF1X( zgEa~)aT-qME1gbEHpJ?pV#y^EC3Il}V`$r7t<0u;6qP~EXjzD4IV%zet@~y)BIW_y zYi2k*89DFV>3Pd#)UN*X=e_=tC7ba_+B%rWMctC8zQ&->Kl&+;?J3QuJ$Wcs`WUA# zRUo+%c{1;wYnmR5#MKdq7N*)+iW}!XZT`%-_Ma#EM}!iW{e!q*X`LAWk&JzTQm3vF zgVcoL{>1g0Swip{TuU~y%mll%d-v{FRu&cyyuH1_MhqudHtd|qDY*w-*crZofoAW$ zJUkNCXx`o(Zy=q9e)UV2FN=LKt4`OaKy;1fy>mF^y&gh`jiwjTAF{|lE%PlwB- zj;i)T^bGp?`i8Cya#TmbvcMO5$c3+`-lm-{=s}Ci@ZimYrjO`gdvxgSTqr4+mu0wQ zgoK3b3E#4EUv!W}g6X9*l#`ziio7T>VR)o?6F_#ZUwQmmFXdQ+ zAQr;T!4VlCZrY55>25z^{f~$$4#pN3f*#wAb12G*i-ffIHbh>9=%CTA?X5zEZ`ib@ z@HV%n3qR%wel)cJr6Xau)JS*FAG#njMAw#7je!QZjK@!Q|2+Reu{}3c~D(*{mps7kufcOs80I|+wPk`YT z>`fu;L_}M8k|0(CK2fti%aBgWrah>&dqHYVy&c(Klh?oBog%=N6Qmq zC2d+8698z89_@cNQ7IqoCASf;HKN_b9-Whq4!&gNl(ydkF~i+0MX`lx4yO`K3SKoN zCLSvdiBBI?#`bFJ=ma2OrMHx{ZjQhqOF<n1POdB&VN`E^B4PMK3+>}`e4-e#aT zfwi$xHm$kn+#|HWw{oT6x^)`3%mmnUl8(nl$E7HfNWv0@;kDUt=ER37siTTV%w^P3 zDIdZO30N7lD{52oqIE~jX4)*2PbJ2sb}3T;e7I|&*nUpB8sq%ktR%q*4LvnP&Eia2 zxzTSTXl2LmwDQwWS8nzQo^1lPm>2LnAXBVu1DmI1`jIx?qG4#XYaB=0(n*A|&^SR50vHWj}Vs*ul1;V+iY8Yy2YNCG! zxYGk^lt$DH=A$1qmKx2TT1y7*B)}9PCndIvVzD-Bbw7S za0s_Pm??Gf^5s3aLt;m=ml#!HO33sX=W{-MC`4hixFx`bgvE=Nk()P{P`)QJGI9{? z3K3@3?N$0}G6Q#4X-3U|WJMSSHIsiX5Y~&RsL+e=o6Ri~gOR6#e0&O+7Z-@e6f^RT z0Dx+@Tl7<`B2jq|4)_q?_w8$CbecooQ50GRY_fY0mp*tDjIz4;(U1IV(+nLuT~U~; z+E$%W-I4~_h;z{b`k`oSqugQP|9^l?+Cx`C~qbe73L1&RqqnpviGn6z&14d zw3U@FiJHTtmnB<$T`pqE#Fm9QIJhqyr`)UAFQ1_3K&h-+!d_#eE@UzevL3E|8OEj2Ze&X4|83G&TDZ zcAjob+2fOUP~sVdp7AY^iEw&4G+A+Sd+B0k#E~Yh$PC)l`;!(ZR9n2^_-c#NTEsM$fV1dG9fclbJuiz)(2<(2z)nuWr|?A{zl&}`lTus` zK6-O!IO@%UVKZ#gv}1L|$&1Zgyk1Ot(_BtYv-jpD_ih)TTaM#IPc1VxY#FqexeB*iN%msThGy`5J4_)c&U-HiI)}7{3l{wG zSt;RYp-MXe3fp+Bj&o?WAAZz7Z2BUnw2hZ^uMu3)n3MVhw$MK;$-FuaDg^^G&h~xA zx1t}~1Wn)yT<-geZr_$UPIubA?`teJ*A6T7z`8|i<{~jgJXM#&;%Kc{^(|Yr{54?H z-*Lc$OIimaVSNsjatD6Gv5NShk42QNSjveZUq48FmJ5yAlMS7p8p1fHk9^aG+S|Q1 zyM>Yb(-Vm+Tk5L)n-lNu83T37>RNLoamrx#0!<8dFKc%OntauQ_^=txd4+Zjf#Gl7 zDDv^~nIO)9{@&I5?*YpSV|6!(n-;w{)u-DJXKdA4B5FjsJmDyUR)RyyLmPJ}me?3; zM?P9+xMS#5D#f4uIs?db`OzfyFF|qrfGW4M*5oM5;vh(J~+wkVbK!otS z*AN`=DdGGl;E}#q9x}n9LqAv6{9{lHiiR_8j*5;`PqXj!0dNKjtB)RK(X;ww6c8ac zqdPnvhDO`CYS0wD6Px#`nOK373QHlmZuc4%&j|B5arC3ReMkD5WuvelyDr)$!{Ar)o^N_jMC z#p*;7yIvUO+nM_o57`5A+eFU-sCfBsHS8xPw?#!o!>q%?!&_jK#lr5~xg(BcfTvS} z-@p3&(=Oa2nDKBR2jti_y-n|SVLYoT+P$WHx$e*b@tyM&H&j9Z=xD{``v~S90f8cb zQG_U$I=~681{!+~7e;Dq2aH`WvzUX!#OE10a}?n@qdKb)=E0$VnArWE8<7-|dIGTs zqGlKezDzh?DY>HEnm(LLd74dFAYs7dke3vgI2h` zH5QH1Y;>!FV|A01y^-+ z)`ZSmGGO@I!<*#5Q7X}K$0^(6=;(O6ToDco2Mrg99q}L063{vTOQG?{A7NxZ09yp$ z#=WBrg4P^33pGXy&4^vMUkpuEyv$;5zJvpWb9lM5$T$!GugultZ+~vtv&RRGvI-Pv zd-s6KYewU;=3f7H?%s7?UzEUuE#VqFQv=0>VwDL#U!Ntr{x*Gj0eULP$N7KRV3IG7 za!4qAw!4^OmX^2PglO_8IdY`pcVkn4v6X#Cu#2sSAa><_U-h$RGZX%N>Nqxv&I%tU>H#L?O0Lcxujs7w<)A?v?L z%y@r5w(Pm1dZ~t6|D4guIyeFbRCUM@ZY~YI=LWN1Ju=SQf|H#K?-LJ=>^J-w zDBzAEuvSu1a27G~b!Xq(I6P5%BJ(*)ZPJH%`hmaYFf}X{ijGT`nW10$LX+Pl z1KUqiG#LHpw2wh*?|QZ?UZWWejT*&q`aszmksns`Zqc5NM)VjG+b}R;(d1mj3W3uU z@2gimno!QT2RXQ1zN^ByU!WrML5fXVRGj`3CRK-8;^oP4%U}ty~L18U^+|V{@e1AGAkD;{7YcWL;jg zgh11*Sdc}=5b-5SoDZ;eSaC0{(s#a>x*V^)7afU$R!?xZiAC<&$Yz+R<7c1X-#I(6tZ&=g(0fJJNGiH1obbC{IHK z-fKs*t@huSMJty|QxyGGV?kLHY>djCAPTEcf@1LQ&!|~56Jb3`Ap4aSVt^hbJ;A0(lZ%F%5(}Hn zwJ8EXWiTNP&C?E3o}t@4BOTrTOA9vj84fa(Fa4jh8C6$cOf(K23`wzS;#DH<3KBwh z;CD6S^h#?#-nJcQ0-Xa8^`T&QcMVZogy>;l9|11J_r*W1Wer+(+aU_)5#sQB8`t7I z6d<68K&Dv9Td<=_Lrd!#+3BR?`h;x3uZVgC>sBO^Tyda z^rJ_R(2{_F00695+(lQkd+&nz@;F@*k}c@+5ezZKSh!M!ca`R4Y^yw86mvcE`E%bJ zHw52G)sz>2QT6fl)okQ1g(1@f!Fba7$+Y1eaf~|1h;S63t2$JGJG>b7*4P_Rucpv5x@S2@VZ39 z4eNXZ&Cn@$x)ZYH>nDD4nxeB!L7|Bbr

5Y(utXkIh^0wFuE3EN=ogm`%?&bd$2hoY2xd;9G>KDFV^2PO?Sla*lyBPd`t)*wF2G;uEC6@}M!T z(b}65r2F;G9Y3ETk%|3+t5>W1_19mLpa<@r&1rW8G9=_nArgRfZi6Hy5Lv?qE_nQb z@NUPtcrM#;CF1vO z;Gz9CjmQO=8(dg++XTa;N9WN)3n~Jjc56{tX#X65Mw??b^`;s zmsw{d_I~C%#$gP|Ni}`eGkK`gRE!YQv=O}x+(VrGuwCEoH`cL$98>eEORXdhYVGp#S{yMO=EWq z)V}QvScTNd4#e`wx5f*K*aJMlJKxy$bPS<}HKb~omkq2=EUt0n-ZR5D)|;(W#XR!& z?K$=`a<$2EyEEQOl^DU&C{8IVIGE{bx#Bk~ekhc=5=O>Kw*}tq+VpXLp4l zAk|tq;n|jbo3HGN)7wWGFRj=BokzyE-Gx&W5qS%o@aZ|*zj#f1c6D9=%JG76%#B}r za)MdYLZnP&HfV9lkE72MFv@LQ!5tUp6Hn%nK9iBpYxU{xo_13S4dsJ4fHsrID?tg%m(z(Ulqo2+0 zHRtXJ5xzFCdQ?Wmw;fG6qN-prB690QEF-z5Py z6I(9^u`!FI)|^${^6FD?hL+7u$!kkA`b|IwrPQ3Az9l`d_VVYJc*qPI&^-?GXJCRw!rY`_%Z z8@F!7MQVgMLn2_8y}f`h_=R&k*XK`xvDu7=L(2-2f*iClK4-y2oLl)IncG?Y&>iQR?ix=+dD0+5KN$ zgAPTsVai&Qz3`Hx*j{jY~9j`)~h}Q|sErfpjhv*-a?n z*x*4KwaJ-F2ic#o+cGx2e(v0rG4XRra4T_DQ2ON{*3MOUAy`{o2c6BGw^GMv+LZ@@?@_?Ez)LPZ9DSA z1y-A9yTpLXrCiM{ZW+Cr6qN6Rb)F6{sS_w^oe!!D%t2Ie*eNs$+oRwPjSkv1Yhgf+ zmOcnYax@wNWDB6NmW_?gUoFS0)6+onMk9i4fj7;^@k~AI$tM6}9!HS=NE=9WS6H8= zg~g=|qbVD&Hk<-=@aT^ZidASEW*{^&R@V66GTB&wR z%xnW0;K`C@DMv~2J1ewb) zLiy19id(edcnk{d3f!vBOl`HN&T~oD zg|O9x@ZVUb{11SC3kq>F=HKJgZa6nyRmqrjVgBd+54%>_PUyH7uVFYrU2E625fD@K zexjVbvkXTnoqU zr2ztk*@1H{2AOWcn%;-pvPSLh!spMQ19b}GfGdLxEk@TzFJcK3U|AUBwbvXF@Ti{Y zz**j4z%A>nH`LeO$C{mVhv;^qQAI~Ut46wvjq({(!<=5`=>(x-Qkh~6UVfXLNerBe ziKKt;1$Jv=r9F}A3b1ry&K^bx+g=V1#5WTW~~})y6)oD zC}%<-^`k&k4r%wZ(np0_8&M^5fos<`%AkNr#p#TH}3(p@XS90F-U<0@^BHUUX^wLC0Nhv_mI?AL95B@cw z0@1n3nKYyoR=tq#p)l%i&aK$un7!|^RPOokiS@o<|4F$-q?eai)2^(dhPK|Z_wZQw~j zGS$*=S6rj*wSi)QZ-^*H!r#5qPvA<}^AHC_mE-?8*aOtYIJpcp04lS`l%{M~`*vQ( zw^BWl$KWEggS_Ee#{GV|x8#k?CItLT3dbxA=6SEJ5j{&@Rl_oE1kB7*? zw^4Ryp;y1KlqZW!=0Y;K?ydIc=j&PAvy)M;rQgc0SdsLKjymo-pqSD*ZF6)`7|$RP zNJtGmfU#3|tG4#VI-qVh%NQSHADQi|B?Tmm-(7el1v(goz#T6h#V>N7c|x-9VVf*q zG>8vf5`p@fIowiFl>e#}=52D%VR&zw8SZ&rz{A6{R$`~u(Z+I`5w4q<3_p-e>Fa(7 zINn6uap}5J4W|0Gd+R0|_mTu>v;~>E-;3b%g1#xD2f`sTRzN2N;>32{TqW9k#?smD z7=*YAiKr9{Mn|bNWEc0+eI_P#;6b*}T0jGnc$J1Rps!NjB@h2%-k9W!^H-P+mN=39iEM!TZGwykKlZ7RVQ(lI-Ng%eyJg5 zK9$OhbXiqL+MolUe?U2eq;=P?T-kC!Va}wp#Gn`}fMkLl8XdmVivX%tsXZAtE&;0o zVZ-buQX1b7)RP~>D^7o!i(NN^WK)Pu6=Ic6-H7=FsgP-+N62(9A{Y+3wam&e&YU2< z7BHG?smiF&5q1I6t8KLk96aEvAx(I7qYO0#f|~N`rs4_R1ClZ;-{1D~v_u6NBPmZk zAT9;57CVgOwJMu7Px2qyVsw)7s~{3oG9by|x0YwO>s)?+RL0l+|E zQqhEGa?wR~@V&(CZ;GE z;z%oDd#+Z^l6Am7kkAHv`f$`W9>Tj5GlXHV+&O+Lc0!_UiLxHh@d!6&amh1sC@5L0R1&@;`zWPrWnjFuWo-4CWFk#I#wjU$@MfuIFW57-r`2Bo)4nRNXLy zbqih=EK~@wQfM&(JY5K%IbQ=4M~kq+yWpMzMcjbe!4U<&^%@%QPK=(=j>n2Bpk^wa zK}t5rMCHnS@jXZtACd{0NEHH+JU%3hN4QdQE|?!CY<#Ns$rCB!$qXATVRODgo<#UY zFK`_U(>!|=Pq-Ec`c~912x9_%)B@rIy|{AM{rwL)r^4bTqFUo3aFyVOEVeN)5rc>D zpqS?(P7vvun*R5IA4z$e6@oC332cTjd4Erh8zdQ9l395e2Ov`?=^%(Z1%P!^)`_@+ zlevLAf7DCz)}SOgv*slVu8&dmc!+}~u7XfyNUdbSf;x;NFCbWXfZ#IA8({lyXj`pw zcKvgeLl{2v7HwpA3H*QL;wD${CjlN(6M+#R#av8?4;WVvO}645SIul$^J|FO48snN zG@bGjbv%Dz_X3d*;igUN=CmBMRoXo2K?Id_5f+|vgAuLi-*cYzNQJKTt_j+*r zW#f}k4-gR47e4kSZCP*n;Fw5_^AWBv*`!GVinY_9VuZS8a7ai!kTb7+qvj_iq2dPg zP7;Pq(`(T)M`(52!p!zSGgz8D!q+Ff(uS1r)5U7>qsgG;7$hMY;gmd5y&@B+!n-iG zBOe&t1cQ)dLY+mxy}tbekg5ZquVM4n1ZD$W+JGQZZscvu;D3N3((5mWLqXJm3)_n9 zy-pgwhSckJL>L}?Qxa|JNuq>^4l+}Q#7Z7@#C*-PPJthNs23j&OiA`=?PetuNivRD z6o$RSc|g!15Vb)vI8_0x2D4I_g`MC(FIk-s(Uyc9&k^t+LB8%ehv6gM@_cF|bOD@k zXHOaCHa>jwX2ZP=)nC7wVVp0*@l}Bhl<{LBhIwf|%cSB>*%9+M&cck%*qaur=!blUm8FrTg4@xM&DMiC*1lYVMcA z2jIFB@fjCll|F9}9uAE+#SbTUzxDU7+HDoeg(?_03JafyzC=us`K3khA16Y&1AzX{ zf=Q@BpfzYyOiz!W4sNju>b(JVf6=m}uJF!*?{BVuBZ`hua73MzCz z!dHW&I8sR>EV3H)FaD?vkWU~>2S2WT5q~o@R|4^Kwt#Z2ab;DrS3#JL^v2urTW}Im zId%#p&Zh00>TrAUTP!dklpiQR4Ez*MoVbJvXE;-PJmE4 ziX1`S3PV!c+zydTc5R!h}g< zi(28R1&dRObOPbq0Lo$%wIcZ^eKO3h5<1gibO@*#%9_r*7a3_5lNNm2hSR7VY9(ic;9K>GvD7cVj-xNR^J487b95dI~$QqyZ z1pnC_oU23-p9vkI4oOU5S&9=_i;qJ?|AFn<2=0}?1Ox*JCl>e8t7=w@3yiCm{_z)t zl0fpALRUDSdd#{kAhbFZjA82*f^`Pw4DInef1t8UH!Y2U26ow>kk%&mhu7-1-o<+Bp z+q4rZ1-L~7>q8ls(3ycRVVvqCV3UbZg)Kl{uzb#><$jxRF?J&A@e0E4)S>v%qH70| zAR*}i;4;T&5LgjF0AaWhR$Gi^gkj3j^yy#@Bs&mt1OXBO1Cc^3(007!E4a|k22jZ& zz{32UhkHmvye$S{X^|S{dNphjp^%f#Lli^a5|S1SS_2r$FqB(S9mBRwFu=Szve16& z%zFfS0t=nc9$k( zwd+B4eTSX9?(H1{w^ivglGLaPE(`2@@!@L&&Vk`;)>wZ+IPd_dnFcAQVz%&I+z&DU z;MGYWFC_6NISwMxs>72FJ@St8d};C!<{(Wtne1+d^e^qQ8%~|=UyFzZ|Dcc8g9aAY z*Xn99QPIq9U)sk9r|b;m_6a84i!$uldHwCT(VI8*i1}{1pZ|}Kze!ue#Z9Gs4RC0to6Z!sjkxHVg0B6M^UZKWm1*juDc7uWD@ASRM)}TP$hfVmklJd3(eyW% zC@)P1d#4{)qEc(hh$U+eGZ-#-m$RgHyV2k6+Zg_F;c2x8=F`vSsZ7`;HEUB_$Q&hELge)(sGA}xsr58Mwg>LUH0qJW{vPQb$0R=wi!Q*_vh%faFi#+s*} z6r-FFrau_?5^mJ?>cXS&N(;kaPYVvthh5j&-tKvDWUa|T7p>`H+obqC`&BNDqwK1A zps-DI(DQJJqXPm4Vdcm4piKuV0uh{GHpPyuY%R$ehlqZ)E|8tLzW1QroYz;sBwi; zfU*}MSd@YPJ$?E#)tO_|xqs=9q#9?D#-?t*RRqc%A^fChDS(~=JR5>z5*(nu>dxl- zy=98>B+x0I^;0CoZlXIK_|grnCu5rj8%v$88JIZ8Gfn9m_Kx)#HFk>rDYv_-Vx#AM z@^%XxF>%`DEf3C1SUrjvUwC(06Ft21QLNaEmXEs0$Hz)+lX);|?bubTwu~D;O?7g? z%8??I=jwAE*Y9L_O4~%yZ%Rv>Mt%5TwO=_P_H(0Bv?Sw0O)`TTVCO$DhT^s~Xk5WT z2$A5>6UB%CCo{mkE$?c43YNSu&sghb3#Z$*ucudp7S5uCYIdA!c2v0h&vmrS|AVHO z@zB5Z?GAvpbvL92_$rd8nH}vjagj*tJ{$(s4UYKK=L*45VbWOTVtBbrZ z+VEu5O5N5M{M&{<^3Vga48FWkdBVAxK6Lb%ZVk!w_fLK~g<|%4yxr!!*H+ z9;?K!zFBzM76`k$O<8I-@@=d>7dj#r<`3=6bVh)#1?7&!b&(gdrQBp>>qDea`}pTy zSGw)iSni+=GqJ(f=53s-RFT|X_3N%V{JLxFzv3gaE{j|iur_pzio@)Oxod~FDeN%k zdtDBS?E_^VLoH6P{IP4dVZh3rQyXqkJi=5ubJIUlD3_Nibzb9hrKoRjVLl+If$7;Z z&(3=8o`snM*XBm@CcYJPaw5%UUf6`CmE4pEVr43^g_M;Bm_S$avO|<}w>u$5RuWZHl%FvQ1iLd&arN>>Iv8!RMNFPT?wq{zSfN9=^u!cV+*nv(}nFpXv9N*1cB1 z5LWNurIL@-WBuqeGRNETEWbwM8j@`iWsn;kHFTqc^HjUVS8H)jDfsF5k1pmt$w66} zHT)FQ`|h)zFb-f0*W8U46Bm-r`uCOMR&y+zdIrX8c&8kG-6_LgcIw<#@=Rb+g4AyN z_=h!3pQ(k?=xidJ@Wx+hMJ~iq5-)IgeCB7^tC9au)_g`T4W7I~V$ze-!-xOG4TLF^gC5o_uNFPUIc|=cLxw)tz&NUi+N(KDm^-jY|LvR=Xl;a@djUgqm3V zoGxi-f<_NUZJK zJ^``*Hbbe)yA{fX>6mEKAhE89%vQyadGLQLvyGTXa)L+1$qZkbe}7vUeu!F@OCaQS zcZX8O)V&Bu!xL2B>n7V&V>%x?^Hi7g#j z^It>|b#u4?(@2?@*=@CbP>Kza5|t<Q(Vj+>WD5dEwuYtMt7FxML!>eoZES#5Qjm>L=hBiIKDLLMa~XHID!n^x8;S5I22*n z3Ijyyp@LJTdsWVYk#WE!{M=G4M@y)lvi*KUgruXBlW&9Xibeh2n@$ z-?^WV3f4K%WmvSBqppNV`4D|**2MNWMa2;w2Ez_w$dAHA*v~b2F&VyL$Uuu)IgQSU zB6?n_7?>_x{C<%k=gw19UbZT zlcoJVfO3hV#C4z3F{o&XqRTZ2bKyT9=d6HOX=sA#%J;(-aX2{1+u6g{esu2gi<{ZT z`&E>?zW#`p*}|(0j<*m2q@1rn3zy z;|ES!g4kOAvl~YRk3!!} zL5A&rg8l@NJyP|rAuA|GvQ~kA_1KwQF`ejK>?tpYlPT)v!+ep25rvD0!*4Oa6 z@)g0qgq9xc&~l1X;DmulJCQMGBM%|T%GuZK?vBx_VHtUrI^ba+Ozk3;SO8r?#n8G^ z`xJ3wvJy1o$UJou6AyQ66?L*h;NTH}kjs1^I{Sl6;;^5RQ z*a6lV6FKfkK)BxJCeTEa|ea49zPcAjN+SRpEp=M1i3v<_`!mUp#s$3q z!fisOG6>2CqUPyv2^SKO!;i>mw+(b$kw2z0!h*BL9~GvLtTSD(f8Y zv7K0I-)tT4i}J!=~G2i|fkJ9CcBhUsf9pa8y8#^*lti$MfD zY?E^Tz9?A6Mf$E_Am}OQU%^|DZt?F*7ESHRv6{60gq7Xv1wLuSy&rXHBvZ=CJ)U%P zRQYQZo@Wpx<4P3#Yt8#W`jJK7_&^^Q+Ng2>5V z=|Fcfgp`=g=2p~v@`?J^67*nz&6sg#pjFY6PVJ0tu^Q~O;=lU2gfLaCp(mRjpW5*_ zyi89u4epjNpzl+S0`nWhr1)fJ_q$baEJh!Y2Y`;i2Ah$3g77~3Sl(wiF8U)WY5nkQ z*Uk->ON~91h^l#Lq>Nr6Sqo4UPpGCY5E3HRH3FI{XG?3y(;V!h4Z^O&$w`pey6dy; zVeW{)vu{HL#QyHxzi;b*2elGqwiQRoR1n{(uD%->l_8m!kkdill3salp*-y7UI=nr zBub^!-u!@!ofywc)W#~&+f3b=Nw7E8-Ln~3PIuUpj2G%jRDXay@euK26lq0>8d(|; zNPgHWE0JgwC^ojBM_P$kvOV+`;PRQKDt#Z^-HEtOGKmtVYAG&>12K^psZZ!5BbQO( z8+z^B5A-*14z_CzP9qwC?VX*=Jlinve5sHS=w9LSkk-1TqC%wRuH&0tuA$Z5y`UTJ zWMpJ?`$*P8>;9I^Od{*9q@-kxU@C)5bq3sHhIgZk!yN3V4|eUv!^B#Vd{te56em{r=r=&92Pgiod_S2Eey{xxSgIH zA1|kjp;?*mS;bK~B=#dR1w`ANr~%t!Zu*DY*O}mo3oPNG&b6kZ0>k=XETFXCKub%D zjQ6(2-2F77cZnh)=+R^zGvMnHx$$x(1k0$CSc+g=+N{Ph;1=wsOGp?7E0GuFptt(AEj#}BR8`8go_$FE=d|RJVk&*XI)qHyfMPZ@InQ2|&CxYHSme2G}-Az{%3&>v{KG;9%(k z>dfgtoGOhv<9q9py(gUgYYcKek%qJQFjowHHq$sE3EGCabG38;U+28zBM_S&&`5^! zy2`oWdHf0@*zPWT=|DJYaRV)6w6uM=yE``o=ND@Aw0O68B1-(ag`@NPy>O}Nbn?Oi+Cjs6|3U7mD)Fd zLP-GuIQY1k@O`>wAHq@n^sf4f)lgp@^uz^tHJ)2?fHBClvN_hV2~$Dpx}lu@NnZu= z$2w;fB8QTUz;aIHCv*qzBB~4IMx-HVpGnM{+9y$=igZb;b#^Z?5EU#}q&d<>6ouN0 zh%RCin7F3bZp|BjVC*@NqT^Wc6A=?q`(y-0EcpC?3RlF-I z+G&=6KHlOeWiTJ+#k+j737E~ve{{2r3jld*ly|uj28d*Wcb5YMJCAM;sd&@22AID~ z#XZ4+1N!z~PFsV{$-Vr7OA=~}@nNL@Jk4bjV(#!u1Lt=p-!&OPd7{yrwuvPk45G#v z#m>W*6zW5(TfwB5*@cVrq=Z(xR`NVb=G6An9y4W(ot<1bGbRlupx-l||A<=5%ocE{ zy5dcETX7*?1&?lwVub|6?_DZEpctCqjHqXaZV1akFxvv;intL@+LyKY%QY%DNoPRA zeD|w^uF&|44YTtNQ%2ZEq@NQ%#?3}W&7LK0iHf-j$#1;NzZ!fx*@<LDEbb4~ zDkG-zCOy+as2_QvF<37biER=RLeKxlRnkGkKUrgH7DNRmt!SKlcFqy?V3S0!0*&$h zb2@yIs}@+pB~DDD15OaYvm$XEQhXHoj8PdP;q0oCIQk^ztzIr<%10$)rv}G9cXwa_ zk}R=961$Tq4HY640!i#bZQ*jC$F;F4kn#-A_A}8TX)clMf%F5^@QO^Vx;~%ejtj$N z&Ii6OVIa*SL3S^CBrU`=2FMNGa0>Ld29}U5CZ#NMb%p$w%+zS&YFu32Gtccsi_qc* zOj)zmhvMcvg$&%c3ZiTgpVD;jB()2buLKhpnE)536CImDDB&$1_-0qRqP%Al(OxwW zr0F4O9SDt+RIZJLiOf-Ez$~PG=)2Up>z<3}+H}5VVIfeMZ{{e^xV-G$HpgXaw<_}y z7+#`^m^ZH_>Oa^uSS0D0!`Rl zLJ*nGb?>imczo8KU55xvl6LdG+M{l_XPb#Q0C|6v@b&yl$ECvQ5f5rlk|%i4L&+GK zKWF=LN5^$trgtm2`tFt5g;rkcKt#;l*H>0nmZN;E@1z6_^T$Tx5oUjZE%P7m;{o)2 zXWc({339k#pH5oz?a5<|y%R?o>-KrP6JGH3k_nFA33M^#oKfvWAA?9X^Y9=zKd)z% zA}b_x43CA#BQIL4*=N~o@(I3ysQ$`VU0$P0EmMBfhoJmJ#|B1I^y_#%43WJ}v}JK| zs_Do*Sza5292LXn6TB=jRBVTu=GK7&rWXYt%z1f`hAhX!y!>v3coW&j3KE9x7kotK zP8`&+ieNk|-m|Xz7q9t1hNmo`d+tUisbJiZIhXSGGyt}#CtvQ0Lj)8ThPq;6h*!`a zKu$TT-2weoqLH9C5bum{Cuh1{rMLFpy@-fJ6)j6-rkE&^Rox4MLfF zD6KKzN45xosmeb*Q~(+lI!39^4jTfLQyx{4p)N0(ObppNsBt0yaRN~_cPE6W;sJDV z=fCgaRO~3wZXp;PVz+glj-ldB6rrkn)lK+vk^L9w!}Hu9eycgkhTA_jw1K;BAvSKa z?67HUVb)<@*BuGpLB@`eddp9)Bj7(X>Ve(C8(c3J^Kl2tg-J2z-5(&&rr zdmll4-;t`N*rEzpOdJm|{zDC8hm(sxWD395jH(}onzDw_HlO;bUpkJ?-SRV5d^I*@ zr12J~y^VE0sdud!rsXVkI^$K~#cfE}&D=OjzIo{cZ zh`zg!X5p6tZRlt_58D3j;)6&kkVME7fwoq%-2u(2{q|K?)O4wZIbn4w{a?5%Nl5pk zgjmSMj6pY!Nwqhol`%g|vSp${IgLc$`h#C3T|cxYO#BK?jVGCDl8_4X>CHLA|6qD= zGFrCM5yxwPNN{r;M#G0nAp}m9FBrRyRbd&$eyAlUg{7)f+JhwzN@$+4+IY$c&V>XT zIUUBAmWSlo5P`WCOaY9!ZDli+VbqhgGXufDZ-b_f#6_f4EGs!;0A^+Tr4sPE6HEq(&2CL5DZ5_bV29D5?JEmjo)+}3XY?WJ z_wH)XkV}pH+N)A>z9ZqrQ*IBX;qYx3zDzXRIR^g!E^7lk#M7ofc)g}~o%tB$skWmt z5)mQEQ`_$eu2oF~QeR2H8q!CxEwlS$QR)n2S2H^j0J`x){dP`k7lv?I+y>?8p7J*W zdI5>f3hlb!ZjXRR5R=ACiL#i`tfKisd%>wB?;}THe>}lj*e@j7GnPcfTh#cc6Su^) z1g(rHbIKGEkw$yEQ`uC~UZEP#7&t5H6_l5xE@w!j}+OrB(;8f1i=D>Dy@%wG`o*HtCe|HglMfICW5T} z4Dxw;Ugg}7zm`_>Rt=!p$NI%MQIGnW={ospB&6eC#=|6-72>0V1(|-}Z0;9*p(e9`?_k!>)V$W{ z~%L>HxevyF7_X(itS zI&ElE66Nvmps{k_ZGfWIz(v#HWQ2uu zy|XjHg|6&xj?kpD&G=C*%8m$IQct@*xXM0j%-i6BY4VBuw<4Y()s4%Om&S>w7Sc zuVvt1IEjxE6!D1dKV%#3Alv?Pd9YxO397h`4;Afa%#%1hO7;Xdt3p1n&2%Cux&k7_ z6<;j9ZxE7Rk0NEvZh$d%CxD*>TK>^W4vt_HUAf*EJqPBWgu>OmsG{)`W5;>Wj(}rC z8dT2ILNJS<^hCK$O}q$kXeEu=KqKT87>T`v!C|wUe`YYkJ#N4N6~^Bk|bz( zOZVys&*I)j3?8YFgvXWZ6A^fu9y}60#qK*BrAx3=^`+*_xcZelbcUVdJyvsR9@(A%adnFKT#s|uOV1wOur@e zC)l&3q-3`1K#?myDNgyS_<~}38?pV#IF}p?!>I@isBaMI=aG!#ELEVc4n?4h0 zS_M%%_M!EEH3)DbuvBb>%VLtaJngN21ZVusog`vlxKAcGzY(}k%U#}-eNFFhY zZ+SdWji{Spu4r@40I=d4{mRbEMCUeumL=e#KE>at0PFZX!9QU7jRAPJMERtM6Og?a z>q!#p(!^b58A$>}d_wOC3&#h>Mik#8!7{(p$1*Y`M@K*D!)~O;0tnCS6yZ}_2%ro| zhL;uhBD7(Fa>{*;`5m&K^l|wQ-Q;27D?aSMy)xye;~+v`i7Xbxn>!ffzIok@it`2C zHrkGCbAA%DFjx8|OMrqgn4efkO(u?<{9_ z#;e7;Z1Fa+293sRDO%D;(hb{E7@sOz)>{}qDXA3ldFkPoiio>M^(1tE zJ}P*FUESoD@OVKfq#fNpD1~fc$Q48?cSd?%G!G#7E78r9|9VY(yBQ6TY2Q?BIcEj%(4W)TNi+q z$YQ?4EFK;L&IN1w6za|0T|lzzr?_Vb^AL1jn7T zsN7&SqqenlwxWlyW8?o#e>mQ<58Zw(n9PMy9T++(2s-|rl+hy-JAn}|Xl1(g)N%-R zuWWDMHfSm{cOv=76@*doohEa1l;nlC`Nv1eu4Yq;=3Nz`7-Xk^mMSAQ&N@#+6fp#d z^CXxvMn!qukxYKOG=eSj@K`|=+Zen0C_(j^chHXnoyC;-&(&TZ@Vy(05kwo43Oqc= zdxJTcO|Y^J_>%UAmTHKL6JGn_6S$Zg<%8Mw1Ypg7f&k2!kHt_4^I{ zALr#S?418!IWM3FT^Tw|u|=O&u`b6$ty4w$$E#$1x^%(~o+&mqy#M(Uh41MxT8JLdm#kI z-))WzkMdt_&R>{$IDq649O~Nl4vi<9HRaz{O3F_wv)CqrO=Khm*`Ifc_ZR2E&YgzY z9~MqfqS-oZ#j=Juk8B{}2Nfb{+_P7`#*Dv{9*MyZ<@u%V9#3>H=9>MMz7ZDZFOz=T=#oe2{(Ze`Jtzgj7TZ&uGJc?F@qEK<=AOyVyq#jRGnyp+X)8X_|Om;B-( zZV+rAq4Bb~q5n5M@GqoC@~G#Sj}m6#V?T&k*o5Ex?jMxPA1l==Bt+J#AxP?XI}smj zVnA>I#v*9imPU6)C>>nlz`EMQAsifw=`Rp+ccls!!u2-V41{qwxWY1H!6+-OiOyqw z5O8rMU82fA8-%5oY_D?V7mLi^^&oB~uJgil0jI73mpCpqZ+GHwG%{TFYgQWsbu{i& z=P94#9Tg2BH-$Nsrv`v;9~5S?t|acm=Mtj}C6NoB=8}kYi23{roS0Td{(jKjJk9%Q zH@x}2xR4ha6S)7BU}6N_+xTai_urXR9Ot9g#pRAI4_)LL@%mmwmyUwY;GPvJleXnp zzMW*8@2#;)%&^wcvh=|Yztksw)8jwhO|J{Lr{8) zKGbEdz5a3i2#SZ@a2!2cMj9ueAd(Ry@}`}uU+S2$!}dXO9S30{x}3@5_}tm$Os(}@ z5nWc03MllBxfZL|>tGP{46=%BF2Ma)v?j&Vsu^KDeS24LD{*Y=?`h8DFMhhYtn-Td z^REn*Lz>Dv?ze5T9~eVbIouf9&^uAW>Uxo6wpya$>8=lf{W&gY7FuO?eQ^C07M#4s zh!%D;qKL}8qJl{ZOY8$?w)C2uKJ`4TM<7}vx172-F^SrA@7T%u?y)A{cJV44GU~rn zeK9WVsX>Ws1arm5L>CKwtHDcLE;(wc)TW~3mpvD1_`3BIQ>ZUfB3hgW#$30nYA8C$ zFX?S%Q{TP0$Vz*5fJkgDjLTTUx`-{G{Z^JiE?UZqmZ%p!oZe%oN{2rsAO0k6;S_*P{l{To7EQ3CcRF1qt>Z#P$LwO) zX+;rVpPp`t$G>}59#a^c{MGX~N2~#DwF75>Yjej1i3lSu>w&x34ZLggX~(;k)b_5m z=(%S?~-22EcDs7i+11n9piQ80mFV4(4yZq2u#(}aOWr6ha zo)sURzujFkn=id}Qrk`LaN~4O$54y1Lho23TJ7P1y*C=<(oB_|`8_{I7}YEj8=uL~ z?6p-qG>x(3r4j9tt>PkQ31NL&XYbO($H%xtoV66@G@@1a$hGyZmEn$dD2jONZMh?9 z^MUL$OhexA$~$xucgOb~U5UjK9t9E;J5mG^8PjyWJbkH83rsC4H6*|0IL5v=q)llu z4=kPitv7a#oJ9(ipD|DxGhvO31b?{E(Wg|7BA4!CfsunN15$mf>|VFLf5oDt7xpcu ztW^3D@?7yu9;bIhK4Q{i>1XjGFKN5u-Cxr`%;e#5NR7NnyQ(I@p%J^WC!?_PQ19B3 zV;nS#!8MhWUG3kLm?kwI8LT$Hue0*(2inca^35d|a|ZN0qa$z7r(LnK>~kqQ=HJ;M z)ttJ_MBf{5NquUlXt$$SS+YO%!hr8N zW4|s*YJ^Y}^JXFEl>FA}W4_FQ_{ZFhhW17|4S9}6Gh3bB9~rn%Vpm49rSYUP)=;(9 z{j;-=d5_8D&6V5Wpc~;jZGWPm^QU?A_W>JjOi#UfvHW87t$iFicS=+4dt1oA;CkWL zDY(slPp4$eyfyK%zFxD>N|^feargN(K5_NWH1<>xAk2wlvAd917G*#suf!IEQ+MqeXbrEl83?GyV})YeYnxav+&X7 zE?UWRZf+ADeb5NX?(9c0JgK&GC#tXQn>!Z`+o7=wWl2-byhxEex_IZk;?Ot^l;2f_(!5UO;kvzV&Hy? zis3-v&H{ZQH}jaTP4S&&^&zer2l7uoN*_dR6D&5-yYX_46I86Us6La8IE!Y_-JZ@o zKHRXN*XK6YWBWi`c7Z+u+})2v%zUiHv!nJ`^d6Re5ic6g>nh44u)CoERwe3F(ar&t z4Sk>X`pL zz_&hc;W%pO!7*N+FGy!{U*_VztbDGSq8HFPsxxQfnfnsqN-H0>zUY3!ZiEt!`OygV z;t&j*-p7?oH~81A5qZXKDW^Zh*=c0*DSNl0(@T2G$_(*A<1DlctpcV~L-%!e4u0%1 z)|@IhB1mkJhuW>X9Hg^KIHqE&`li8vItvLzaZk2qM~!`*=pn7+Eqk?~#OFfEw5t_o zHBShNVRH7-4shjsoE#nZ0t}J$9^>||_S)ETe=Z|ue)DzRf!+_!TX3O+%H4Z7p_x-Z zDD5)DP@7^mPe_5jbou2*fk?Bs?g|SmRMpefQdie%}-JD{0>6y2LFgrg9 zwR)xP0*b5?o%Q@IyHTxW=}lczkyKiwiTNGlrIRQ7{sbv}Nt zK=1Pk#|ODRWVO{TX;A%R_vUpSUW~C0V z%$z-xrg^Bb+tU7QX-OP|KlhN;a+w}Bb+~yh_`~Y&&2yJ8^!~BnpOangA{++>!#>-^ zis&8oC~jq8hwLt_YwRAtIt8T)Mf{|US>#(~jjz1&cX0a8<@}P?p8E7M7N4^6J*$82 zhV9+qro^Fi_WN3jFSDBrhZge_jNlcHH-Qer-Im|44Xd^BF9=p0L{%xFxBhZ%hFf!1 zOVs0=|G9s|kd>mouYk1x{)F*Gb~kK`I%|u6Nt3>xmIe7%#IXOphwv}UAz{^baOwzm z5$p|RJF5$JZ{fLN8$JX|{aDMIp?s9Rn4cT2zF*;aLv4aXcbLUj{-yUa2%52fJ{ZGW zi+`Xc388}cGk@&g_w@4cK{!AB2@hHF>|nu!|6;+0Pb+K*>Fo`Z5?~+J?_I%vS%5oO)JACOV=_q9wMLY0OV^CNDZ_x%c=8EW<&y2F2D=YMnypu%J59)$RzPI)1Dh?jGDgroJs!`b+JbamdrBhcAsr9LHNw( z^`nHhsGh!_IdZ&El6dZ>LFQ8%)84W=r<&aM_Vy160b1`1npVVH*_A7IIrrU`E?2(l zoh&7=5MF&FtO6IS**|o3o~>g$@sc+LTfGR9JUv5rEjscS#uB(q7mUpvJ6UagVz1^K zz+q5qhYjn2i4>XOLe*}?)tcy>u4lv8qZ52Bh@VUxcI+`@D7Us+2sx`BKo2SG2&~Wk zb@uq2JI9EP&-dPrXB^WyyNWn zb2@zOy#Nv#IJ3dN;RU%0C3|D0!~5y1s>=AK8bw&n%F-dHE;M{jfjdlx4xp4}y$gn| z_itbP6TIvIi7u+ohV5e^tu5;BW>F5D2Y7pcRS^2IlK#s+tg`OVb$B34N-TNDN5v+x zTlH6oupi;?-&-^Kv`lP$2oWOQyehm1+f4aoIoEVap{kB_koJgDb+Ooo&90`5 z*C?ucM<;Pe>ab^H-OmRqJcgPW$579ncQN`V+p`@SicEPB42GaL?9Apz(yTh)^r}PQ z$oeSt!y(*nU;I$`Mo%hPm=uZg7RE2-L#&}6JQ5t zjsJ00tn8{4*%iwSGga*u^Q*J6jBO-DW7|mfyBjv>Lq_)Bt}!vAlg(|}G}#lMa#&f$ z9|no-I9}w$4n1A!tM%l;ARS~q81gPzGf#e63AY2wS|i~hMvGX9=&@Mv=0}Uz&vz(T z{QY|;%jl_VKRQ%T?8)>h#{vA$ul5m!3)v~l9G(7tR%|mne2urV%`9sO%)`q^{f2BL z``ryMi2d%C|JyYtW^`<<0=ovb>RYug7IWthgT(&gU#dS2JzbT3tOqmf7s$J0jV}3V zC1;a~wcdA{ZLNuw&^ZOa5c+R^0pFXIWNeqSCH7?ekrYyS;xG*M%WsZKF72C`X zhXHIe%Vt(>S4Y~zwvnuNXEMAX_Pe|NZ(#tjCZ}}$hU}xA4J&j1#jpPO;y+xbU=%Ch zK*q!J3qQR4kCm)3B-WaM2*c5aI6K<-7r%h-EtxYTui&9C%btu*FjT=&{o&?0w}!CH z(T}rYo7v%OT);B3Y^v=~LB)4eEEs~u_mh@=MLG&q=Xq*Oz1Cu^~V?gUwHGI zU;Qbr`{6SG7v4<$UwHGs@CFh1-=g&Y_k=eTG3)YSE%M$Q0IT4&My(?e-rA6 zoA*-OLTXuQ=e|IrE4LIswR2IVujYKFl@9ltOpH17O=LCY#=HT2(n;I0hm}-3mVTi| zqOGBz?9Fu&9^Qb6y%4SxVV4DA^wP$c88EbH<+$a8fJxgUvx5kE4TO9 zh~25#{~mpBPDgVxndlT9mx8bL-bEBP{*HpT#2+B~#7?hAtEyrLSW3)fX&cR<>^z&bv@jjLF zdrEfYG*0JG$0N|KYV;;YDUT+%3Im2?QB0X#=LgeFklclt9E~AM2M5IYrrw*B zHHt9Mop=3~idTgrvk0C`$3$_;F(XWKrZ(biI3j46LQfi-%oT+w^&v_DmwwACq<=^A zqQ+{BkP0{Q@)$MCtu!CqFQlX28WV%KVwf1rv=@!JQ@TbR(>95I9&em@v%lsB)coYZ!&Yc!v5ul1`c8*tLNLP@%h{#QBH0437Yo7(Ug{MG@JBOc-A}zapsne2$sp9iMRnWIdW!HlL z#GA$?BWd;39N6z{C26P9sW)b>0qNAk+`#FP=rqbJBCVRHezxB8?cGXMmt09n(f9sb zwutqq`Bor6;5x~yw^@S`5UBR(A7 zjlGy-@UD3aGKM7CbBSD$5B9qvsVeJg_9r}8nBrB|H!!WdD1~dK zBZinyC)<*Yd4o;e17vOuX^e#6)R{|MZmW*cDdp70j{E_`a||1+y#>!5Pyz=fVa6~l zH#GjXLV2rJ zCboscd_jG?#uG*?t<`F4Sx;Z53$H^kp#4|F7d5}D~Dx7e~0B>r>l1PpIfvdlKTV)w-vp8-PdRkF`=))Y2)nqJGdtM zX5_j=6gf3TlqUqV_fo7MIQw#Zi>P$k7MJt9QopVt|I#CE%LpgG6oA=RqBB#;e$|5qsO% zG=u3Q+(hswRg~{=&JQlXBLlQ~Wr+Hd(|g`2-l?>|zmr#V@0Y5X%cFM{ZucHY zjZWXSEWJfArD8k32{T}j!Fke;mRkNUvP;gM>FDp1d>CX)<`_wzT6x!#X;BX%mY8&y zgp@Zd41YKAHjNn&t)*W(J9~Y_YEQ=C8(Pu0%+oC$Aoy@XKYBx zdedVgAM_wIc^#hQ$?T3^K4ph5PUR{3{e1lV7a{ZWVuk3^pw@qKCn;Q^T&r2)FC`Oc zxWdM)wYRCMdWrYkX;aVbdUs{_c2FqeO3JhZ494kfNi?*uyBc4z=?S*EMKv_}$zZL% zq{5UdBCfgLI+BVmEX*~EXo~Yx>Gh*kFrA!P|1mp6-gO|$M7Jj5Y3cFY^0Y4dyknfp zT|dasjb3*p4)$C)*H+YE)49TR%a{JOCu^)MHLrRu5L79wE4uk&`An70R^xB+rLQBy zc6l4TP8itxA!uoUJSYE>BZ-mXy*?%$f|=7I!{|K??pN}aTycUR)0RMoDYe?EM(^ryA#Dr~UXFYRHn zz&g+=WmT>bonh;g5@zLLDK4>ZYE4AZF;26}4bFr6d-~I{Zran!T5bKdnZf?$4acH- zxUzzaVrk9GOKME>dK$J%@YhI+})u`?9i!!ONm;;B@=QxS-_LQzErWdpE zoF!L2trQc<%epZ;{nU-rbIlF{JDKU{cU_*|nxYUtt!ZaeRO0*G{8?K2vR24lv$KkC ze$jm_+r&6idHKA@7PPBzdiI0U0z?^Qu0@@uZEZ1jZ>QO?IJ*_o zo4R@xQ!JY2xcZ+s$58X6=a(_Kl<8^WrB}-g^J`vWMO` z_G$xfD;fN1Y~{}-h_%WcVsDlVBq!uqEbFd#bLDZ>&2wA<@dGUakq7n|pXH)Z+LzwS zG&VI-YJq`?5}&Q*ZbXdJ{O*=hPStLtXa*SZ6;)1aB&EP?Rg=?O$K zyh!uZLXn&eZ^jA+a$}^p*`m1O3kQ3@by8cdBvd%#YS<6_jz>olhh$st)0n5EU6tl> z#lh)x!g6&~pVpmU+*#JtC%|}L7O{4yLNtBbZ=sh;J1UD-;kNWiI{kGZUuzR0f7Ca= zFHQ@dYdQw37{a)BZYJ(K>#l;F|Bt%S?&5vY>dzc8!&3gOBa<>p>QvMl@uJCFZq3YJ zF6=y`_cJ~!?pU_c-K34>JxMn`BDY?*nM62nPt?x<7tw?6mdYs*(GAf?0M@cP*k2aGB#YoAAvicm-MEVWGkfavq1^hqBEim!+Z zTaUrm@*S3uyd`ZXV+J3vfXT0?7lrosSZbLV2!pi#o=PKCBjrE&O zSSblEy1L;5kohcy{V`3q#u>hF%D?SOPX3oqVS}VxzGTjH?3?kfm}-;LyKF@9MD<1! z_v<-hJ{aeOs{syJdore&lffyK#J&Nt-_MX;>*Ml0J%Kj^@)(MbO7t-Tm~@IqCvK!1 zo64-^zUpO^XnH!J)~SItx;tzCDJw~}B8xY&HFM@}=P#mXTpCH4d29%8<+?|jvL|6c z7xEi2zyn?TnPCUH-Ad1)WdlL>9qA<^R)bMjj8T~xqg}Yyr@bs}sItobW>eK z=mIA1%P>m|BwE%8=jmB-lwy93vFe^wL&uD)`K-ILbTQhn*abBGReve6&)k7o8tWB% zUTcLX`;j?dh{I$jsEvAdNMo-g*Ib4pN{d^A(uYRO8>$R{1eu)As>(ilqKk<#`cOu? z9!CaC?V?c!#QAwBNec#r1VUB`k}jE$KmR_fnmu#BXn^yPInK?`rKy9%DWknArIAYJ zk*i4R9AfoQnho_4wZ34#k00fgnfpomG?`rB|IP{Gt5Xq17d8q^rX;7@0s^88o@6I5z75T`N+>nk`!iM&iFc8~6!ba?> z>Meh9>1^2z3q5y8>KlM73DfZ{NS!^^mUa6H!GTpcx778oxk{x}=V3T`B@`HM7CNzJ zss~UVH>!<#>l>$i;@SwVxeb5aTlP&^w&(Jx#To|B^c^v&SdcXOW0I2!-+=)rqNGD~ zHC=4?rjA<^Q~58vnNdD1TK|6LoHKQNi>4kFB@I$#+Z;vK@n7R&lQ@5QR?B^Q7kGH5 zh&-QmW08(`I*I2oKBoFw12lsCNwRZp%d^{NqEGEI{l2ByjceIxt)%X$aM?d{DNg|D z64XVjB)eAq^hDwVF4Ra_#Utv%`3J=PLciRbDR6RrB5#1E)adGu8lryF7|t~-Dls^; zA*l>GvN6f)SnJ}_X#JN3A6-XoBRUBtUR_&5*mEMM3>Cu} zm=Y;6xbE<`cFhx#npB3*T<*<2WbpE6Uj4}pg^wE&axtW(0)ulr5D+a_T)O+lbkmcP znui$ICrk2CCz(BZA>*zIbBEV3q^i(c7lP?hgmJ>LQ2M~O_y_x47@Me!j$$icO7zzp zE2@n?gy+eex$CLW*<{V^5SFhC9sEv7Js+}{+$Q%Dm zHuC1u$|24{D!4O%@}6}0-o&)dg_!>~T`gIa5Kz8DyfzPZPU*komsIiX;5}`T7oPVw zwr`ZVr4V^H#qZ{Irs_zwx?|^i_&KT_jtXSHnW{RbPf=TNcd+h~)DMxPlE-W8Ie9&Q zcS(e9p-a5>vGw=6CvA{uyUCaQ#)(F26YES(Lkrs^>}f+o)^3-|HX7E8z>`t&uZttas2FwAt?A;*ymzy|*>; zgG#*^<2hZs!@?jiIs2H($s>~GZ$C2xlau?58usf8uFp=o)!CQ5-`?|;aP|yUZ(EV) zlEubm;_`>fTbpbbywvoFxH;c`=E}kjFi(QiFAPhUP+8Z0h~Z)r=(NAPlU{pZQO`i( z3cGZMU%a%C$dq-NE6zI9w1rj9IOFW>_pNKX5xsRsi0(4#9D|1GQ|(1l{5?ez*Y3Ql zHzU1isj3wB zG!&N?k6lx<#P0eQy0L_S<`>0wU8{ci#O&lQrh0bn^PWyK5Y7x-Uq{4lL?=sutE5O>2Fc-(cg@X!Vd` zy~j1BauZ{q;}S>ypkYpTf5(UNw;4@djQ3SGyHaVR)s%$24?1WqT1b6P>FZUdHwQ(kOT={In`JCeOUEa9(eps3xUNh4 zx>sjP3C`Z1bK%^f4{4S$O{8rhMC8rA_q*S_W2fX!l?59 zhq5=1$9mnrhi^m5Jclx5s8DG#C4`8SWJ;8wBt?jlnKEP^DpD$hGDI3EM21AAl36N4 zDpO_7%(E`L_TK0Dp5OQRJ?D@8I;Yd-zCWMqdJk)@_j~m}ukhITwB*F$%BlOaUuz3W zLei`f)2yTmqS^FYEcUfn2%06ju2o$hRqmlDe|Kkh&Z&FS1FaTc%=*W+`hM!yahYT2 zk0^QPG`H%PoX_0w@JQUag70(M7e)CaYJ3siQ|48QPLabyo9qWt+FjR1sa=f{s#PDh ze?J$RSZqYcIo)sc?fHOu)BTdW11*N_A?0%qKIc5?H>`3!JUkhu+@14~g;ihkNzJbN zdtzgZtIjCYSX71laGFzi>$uaMyZKt|i1FGSWfw_0d0!*$BOYi$75%e~{K2p^C@YmB%tDX-_ zMr<{B{_4TNP*QU|{>fBh(Qc-O;8GB3XPV27sWYM(O^ktL4? zG8YXU2$JIWZQIh*Ds#X#!8N;iw&-5l{-frT9+O|jb6HM@jt#$^$@dB!t4usov*~~j z)1}AlN_Xrhf2GY8nN44VLs8;m&P8boiJvC3O^nUfnB|OmT^5>79eLk1qSI;|^`OuD z`=`xptY^MoD!Ilv-8XM0KF`AQxP8y6AIb?o$MbB~Cd_reIXdxaU_{{OqO>v0mEOII8RzHFi{Z&zl{^k`BJ#oHDKQj$0Vq=1Gg6n>%gq+nrgQc^jp&W5T+p@@u?IsJ%STd)Tg^N14S>je_J) zofO)vD~Ap6IwtQ%@z0INq z)PVPc3bB7@n1RW5YbwgOJ%1!nr=-T>*?pvi?5EzL8)E#?IjSfmpc^m{%e0=}=dOIs z?`mtJh6{OC`cIzSm+$v4apHnV%I1d0n;i-g!alisS$3FEQ9NET?D|AMXuY|7^J1}I z<&@#SN^;Xbrcz@De|n+?NrOp{DrZNP%|?N1&<}2S#XxyiRS`bO`6EO1Qpd^{%@yu} zR7cFB&>Dp1{x-CF-k(NFpuZ~Tw*`AI^IFJ?7S&NGJvmk?#nUC3`AgOKms&}SV>lAkiAN9b-hp^_a}F;9RM=JH$|i>~8ZD;tJGsU3{JzhB8gd(h z(2xTKH;pJ~&!LHs)-fSfxssLjMTzC4M)+4X@-NuinaI6xT&`cpov=&EqEM8qSMK^0 z`mo}^y*7K#c3dAbXP$F&U-8`rE+B(p@lzfyS_EhdgLD2vHPQ|_mKo&as zZg%l;`aucex-}-E^kYxr15&2rR@g+(vn)}0_@{sPOKfMu!9@ea5`irK_S(7>{|gDf zN~r$snRpqgwJiRe-v7`XUJW?BapCj5Tx&^xv4xT5#S=0*#r5a*rEbMOiFBF2_E!+G z)Wv9SL0TQk*#zlWj+iyvyw{Z%R>=HQQ2fy~5;*B%Kv5Tdn&6D8f`;}=C6A>qox4zf z{4cNQfBPDL6}x}F#=n$`HXNbPEy*cN%Q_Nre&_czx|(A?Dy;FV6BtTm+Y;5sHOX)K5b#q3c81(b}Fj6xZelux7OxT5--}_ zi*ajfrL8Xr3WSg5&NE;6^YW_pv#Cry_|y79*8R7l`mGpOSef`5ii+-0s$J0)=DaFx z|52;0{6t03Dg!9uK(<~GZPrdKK=)gPf5H7&*{TFFJ%~U5+6%C{`D|cWh$W?%EcnIV zJJ$-bJ&lVx+_22iifsHN3qi3= zk-r9O<_TY?BP6n+;$M+yqt`!ON6hbc&6JcT&baP9S*P~kqkQ?=LTo?&ER*B@rnKM2 zWGU%z$zFTXLc)GxzasYPM`1gcEY@<>ju*o@!(?FtZ*VZF?Xk^ue{aiGrG@RL#FJ!U zLEOW{*|k2C)fSa7p|HXd$f0W`lh>TE^}J$@`A{f$%$@Z?rncy$hStvyufGp#troa? zw!4rO=JG%DyFR<*c$z8p?$nJ>5&h^5vl)6PcvWB-CD|cJ{9c}EHXNV+^n`X(+^%OY5c-3*!k1?$PqF8%t(3cncZd44g+Yi*|V#LxE8s+ zJ(aN8IB4+`nc|Fv{^M`f{7)X*OurC(Ienuq?~Z5r*KxVI#XX@49Kqpj$Nh?B~F^wtyDPRSuO)3KN^tYmZF zv7fBDLBz9%tV*8v%u~Xfl9EDG+>Mqt3>)rcVK~p_`^(06siSxQ0V~)c$p}dpeRUTk zo0q%%g=Q?tg7xdpv*58>@J&y=f3VV=tdt~lE|!TU_=|q>_QKk`2;wV~F#Fx63cEai z-DX|Zg5l)_m6+(m8+*8^DWfs5Yil=z6mK|N)X!c=jF_t6PAy0_ z=!uS7FrHx~E?s07ptz3T`VnHFLHd26>6WTKrF&GLusV=z?Ia5nE#hetvGtsg@38aS zpMSD5wOMn=j?Y4H!})CQ=y`xVpi@pSUcZCqa97sDx1p}E6T7u@kSw$&2O|_4K4UJA zVJm7EX`Z1LP&(z5|0EC_bJs4|xd^y^tR1~sT69Y$W?{?I#h>V^O8>^1U3YD49*%#qx@KeoJ_O5fhC+0G zr|QY^8N$>Hc0?278{&+i@vXAx3#{dpu=F~2f_QF5whO_pWN5YT@ahG(sD$B|wD5T! za%4XZ_{b>(hpWUhtn&38|KwWLo0ceeP1c?)gM9mbD6NmUb<_t@MiSO&|MoGQl|Ik< zHwqB*>gxZDD5y*-B19W{;C~Z>t%EKdV`SsC8$PBW9O#=T2C&gosb*zMm%HfYM>SUQm%m_dkCL(OEjZ6yh> zWc&Mp@y^Z6c;P@?KVG0M!Mb&Tir!?i?JYSevgwz2EXenzr+kM0!h#VNUMp4>V0*d= z7V8cK6QitCzxd9$lD)8A*aa)#>oZukSk6uQo@ebf?V5^o|9?X?Yty}17i9jwV+%la z9fPI4wPjkm)9q&^me)DKZ>I`=b!9EM@|C{h)@_k9X~j)ir! z7iimmfXxjjwi`2(xKbbX^I2eLKiQoexsA9RbP+F=8nFon659>-Y*~qYq3?#KOQxTc zgpuX9vaGS8WM?ng@+mv#)mwLK=&|qg<01UdGfD5K6X$2TtGJC1*53cw{Pb7e1oqLI zRS&(@BxZXyid}qN+h#x0zS|k5q*Uogsf*+O)1>`d0l(_zex|>wZ|%#+uKdoO$6Jv7 zx&k=&^h}s-bdSwl2u#HIX=aj`n7|6*dCb68>`+%oXopSFL+@h-tq5v>_}ck=pJK(k zTl;hykFH1ErQ5~X*j_0di8bCs-K@$JmR@6bEN;Yhr50jaw<0Ws`y$)Th{Hw&yXJ1Y zt(pQZhDF$KJ}~jAeSWsxSXudO#IE~HUN;{ocq*tC z^Ka<-G5g$NMx$zkcr$HoTl%mc3s&{3n3rqvJE@ax=Lxls=HN`E2t(>kb2C`Z+Sekh zBJi)APPz+gz52xzX$?6sdiN@fnkY^9pALQS?xK#4pzW^YkMe4MA!jkjZ z1@k9jutL&3u?BEtqTy?y4bfC48%QJQg5vae2wm@*%jdh{MP5{e>Qj(SjOpDXD@l7hwn3 zTA#3#I7IP_ii!^D!h>q)YK_+_@~esG1dJ5cnv)&Qcg)8!cYc7{#n@})T6;JaZ5}Vm z62jvF#~y(_y=zDvwP3a|?lUm{8Na}xy$d^mPhlm>MiCM4D2Wr~vIPfE)JFMmE#z^s zke58byJk1^LAin&sx)l$?h!3YF3+% z#DkA)$LCr|%J7w+sDiB;*$!((>}%esE`Cl{e9I$8?V7(-P7)jOH^siw_F!VsH#Cws zuL$)E$$Fa;hQi&5m)&~b$?7!jdXb~6?-FnL`^W2V?<|>bNK@uc#JQrHI;0 zV%s?V>g#OSy=|kez7Utm;lWR?SxP+FK3_iI5JH}6PtP$JWy(h4Ou9W^W4>{aS$Xg3 z|KH`Gu+pcO?O{CY1$(?n$|T;0mo8>PySNNiE2sgwmJi{3$`G3ya+I1}4*<;%jY2RW zPhkS~4KlrBq)NMQrTG!tl80^#c&)xmO47zV=G+9T*YtCJOpI!z3VV`KzHVJr{OjFz z*5}(ybY{H@&cG`!m_B zO)&olhR_e_XSKU{=g@wU>I1?&P zzpse|E6FmNpjbm{RZ_DLwSPh^S#VY(+w~>beMY{$As$9mu%p=Zm{{0U5@RCba<-7Z zZIt>=7PhFvUg68RZB@5*u6>57SR@`pWc%a(I-aM4f$~@yy+C5^d;g>5zNl2m%JpllC#lK}B{x6W_MCOFz`4VI92=jbDqvdlJAL`_6eZQku75i5nW#{6 z+eUD=q)ACV)Q$D!;Rr7q9E!)9$Z1}k?F$>=DzbCE?)|q9UkBk=H89l4>MKvSYLo5H zF;#nw58kOJxzCMkjK-zAHfp-{?kBI2H$yjBy~P(yim{hjHru1fd-_-Y%y4xVuER`f zGx4xn@B&6hbb=p-k_%rSo^(dNBP!f~FsH1Oi(Cx&Ah=tUH=tU=by4)3xbXAC@7B;# zdL-7EBp>4NJVbGC7ESHK#_K*eWv%2No=AN8aM190ySD8Yc_s@rFKj&Cow|XHE+UoR z;WzOvNZBxct?4Qhj>G|y_=nZF!15xo0-nYP<7q9v;o3xDUAq!_7Ek-_+lsc31=e+_ z6h1t5j3Uv0$Qb^2mo8rKu49(_`0oBZ;@*ip+3_Tt#82mXW1y-8P;K~ z*YQK4`Jroez}L6ej=0KfJ?ama$py;S?LS~L5ke?UWbS6y;`fnuWc@yz55!ou ze2I>{W{Vzof{MQwf9_}I*QtdVG!$paxyD+fJ)NXr5oaPH4Yoejr>a(}&jfMs5r3Pc#_4H)p?a1l-=*$V?-_G1F)upv_B(8Y$6sH+!T0pkj(uIRS_+YZ zN|M_B%h-#Hiumz*Q9c~6qlE*9^vujm$M^5yety&y6&04~4b-B&^z_)()YJyyeQdYZ z5!X7o^b1T&4-bEN*;Aj!di}-?;kfDxiHT7a73$b`zj))ujcRRIt^jNDUIvY=!J2VY zqf4pxT5sY*4;02Ox+BS|D)Qc=M?21(k-ckP9D48GhC{Udi&+Ib;Dz)ISyei+0~Q90 z;DSrb&COk|=a(*oKK$HzkmOJvcG9v zOl)ijb!S&s7kW@rVS8)nc)F^r-X*CXLko4{#EHH7`hM{4>=^8P*7DFMiY?!BpiOB8 z3+>^`aQW?&7a|=c^Vco8HaD7-9T9%n+3O_NtYPQj30hw=!vPBz8p@HQM~RQt5=O>) zzL|NHqQT1D@DhDj?CC0P*TnSLvAyyf&Ek_CrBuQ-D6iNB1tafURrO6R%PVvrxh?+V z$B$1*!+oM+V(KlL0{r|PpFjKI&86JCxA(`msXgiH8g%Q{%1xU#ogD4aJMrO>PR|EeG)3X6@}LGfclGM8`;SmY zEymZRrW`ag8=4uZ=>kL(7#qtCUw}X*&tDyYba;m0=ER4fy(R&`3!S%Y^3-ScCow}) zH0&1)Gv<7Tmnp*o>uTr_O{crLwwT_>Eh|+eJcLC=M3PMhsSCMYmWrBWbe3F8?VkS- zAQu^3aj?WkVC$LhY;Ts!pG-2ZE`0KYfJ`TyoY>zC)TS(^V-+NZ3`scWDviPQc=Puj zKj!(mPF$RAk)^`ctyVbCwkdUwZ5tV~P4mi2&(UB4fKG42NawSlM(WN>mo7QsBnm6} z&Ux*=vOzVb>iP3UQc_Zb6TDe)q)HQTjIiRX#k2wCG<$L+65mf+~yV=H`~L zvhvi)%E~gE`+9g39y`*FH+j71Wzt5&sEHpvJ;Bg{r|2dsQ!*XS%KOa7w?1}U|HVi^ z@8idh#AjQzCP7K#tBI*;vQ14w&-;g~{rvm}r}}dkQ!<5=z4qIz@ERNc+|h9s>VH88 z2ZwUcqeqXDdt6>#zQM6gv7)k)nt~7NhZklEvs(}EZ+H||sH^Wic);<^1t14L;^6SG znwD1Z2H*Cl-pnikB`*D!#XsTZ(#0AJNk~XUzdW*pg{2Z$1m)DJQ@D^K3JRvV78baN z4RP}F@*Q__p6Wm0dr@D{2~&99jfZL5yhe1seEmvAL1dwW&5gW*Lg?`FI~JSIql7y2 zCSFFZwY;1<(Pt{7m6_(}&!0GtRq1*uFke{PDM62K`Wz>A2%dCyX1XqHGZRByu(UW> zYe20C>&w$Ud%b{ZK(ge&!FPUcmMLKMrOx*;qcbjz=hkgk7cCNT3VcofnWY4CFkjsq@beP zir22EPSvlOsC)aC#lm+s&y>w84`v*OT;&`}{fxijrR9{&nR1Ce zftQx)$nx!KYJSHIPi@}3xoE8EK;E~+d2jY)~9aXv`KyXvaFEz=mqg5=COHs zGU&cG*Ph9BA2}*MmVZCfbNuH7j6*e42Qw?9gjii&U4>^+rzdA+?aonXzKuu}bC*x7 zZU1fE#7IO>M$ztTSFZ|h*s#|y5h1=-XBkd=LDTBPZf@ROc}Wgot3<6X0@UZ}*7B$j?dDPl6}ZdadUv2E@Cdn#PCIks>nIqBlUT^G0B zqUp{-5vvaNC!>R=Z0r|CUmE(TzCXap&VC_-*G1ipuT)e(gg#S&yYsCCede3eJ6Y=Z zPu|7jS4223ImOtCe9Ekf{qj_;@=|dQF^6O-n<2M1zJo%iP-aM=Lk%kcQHM z+CSfINQA&`+0}0nln!+FOjA)&l}Cui#>VD*j^90YWTr5aZzgBi$4~peIBzlc8q&yi zM+S~cPZt*!U}H-<^@Ng{kpAwWjqderzJio{p5qRPAlqZo?oZ{NM?QRZK~yu~G>VEb zk2;kg7J&^;pVd1n6N-uy)ipE@RRpt}#$8i%f6z4k=FOYVfq|%o2F#o3XQ-b!b0%dp zPF==H-A%%(nvH!Y_cH~?FI!UMJH)<|Q%F=?cvCFTnfQg*`*~aH%3#$&b(d1X z@bGQ~2DMTbv#ZyxS-rft(o}Q%zFRfvLo)t6GKXZFloQ{+JpIQD1YnY(~NV>6{?2@ z2TLJAOdj{Rli?6Y*=ufo_taH*GHd5N2x4Boing4l6bJII3|m`eC0$!vn?iLq-)P%A z%J=vb@BYos#WxF{JV`z#W(GEqXQy z@v3E+RB>Y$Vq*hgciM$y85|YG^UaPS>(}V0Ix3sj zu~Y0hem*-p+r0m&+fcIjkDov9x)$5feYGe&O^^CCx2?Ll5%~``YbUt4xR#6*6&J&q z%lSr%|MKl`ev~$x%Le=;bIcuyUTgPmbu~3=7Jm5^9=eGuPTK2A?)}==$FO|)^3Lfy zg3pU(aSej5UcLI(nYlQziJz*S>qoZka{Q*9F?Xw#e|-CPd*8k{6bJ9dTNayh@g>6Q z3KKRYW#Sh=|GLQ8*;)FskpYfzgTuvlso#F>AK9@ixw8DB#9wDLR{!hN22VTWk4@ZN zi_1r}g0zzJPia$MJ4cT0df(aY@nxxXWsjl-6D+lK$E-?QWREB~7w|uN^yuEhhuaZd zI=_Bh1Z$<@9lb^?FTJ$1u}L#lHkzVcgo;*d^=i>ATlkJ2KmOvy3zZ!^==AmV_Zk|e zI$dpjW%lRm&^7s%~GjRzC_HSc7wKNvqW87KU*%6P-?fC@+GBh+O_K$ zDSL23e}@_JQQp42>%wRDp(rqL5j+-Cnx|0mqdmBA@gjAS?SZCBY_=V6W`2nX8q@S^ zmN!h<{@|&t{9DhQC~i)(OO!oQa#YLR-97m3l3?#{0IQvU3dSu=D=xA%9_=s@Cg(K!$gl?8`} zhW0->vyPnd<8@+8Ldpl%<@ELRF~=q*I^KI=_~X+Po<#3oSC7$JZ`-yFcstK3M!&_G zJ2n}|UcP*L`~lp^-W4i+%y*)}SIac;j+eF1bZr|RcK+U)#|Tt|QQyFzKUZ*j^P;mo z^mLhWTaO(MpEVSc@z21D;^oCGQ(igeKc?BOspg%H7jDeD^t7z6(Xgbuyj(5YUFZE` z_Qu8jPJMfB@Y}a<9$%{w6c8^iT)&=`mqof57^cCrJKtwk z0T9a8;(q;8qjqM7kDnDveb|prtLtyIHk1%vMHxW#G8ZtO>>O~oH4V#=S`kJzrBO#v$cq%L- z!+rn$eRTm0yyv{Tb2)~(} zOfBR)187)8eI#x7RX@3QuZM5XWmncccC-*?6Qo26ZM$o{q9`Ng^5w(uzt!5gll>d= zTng%8H@GYjHu{d>-b6hGJZ**mA)A?MnU+bXw^<8r^Er5BkB*Mf z6Zc!nhU2{t9&9>dWAp6g%Z#$G)VF(^`%;dUpfTK+rZSP6D}AW-{rmR|4+}>y3XKIj z`_8c4UwLBWV#%Y)fc0qLrnB9*)Hy0BBJ_IpbP3!X_&*x8ZyyTX9e%D@-D7W)+sfqY z*ZHq2dG6DKZy%qK*WkIgmUDaE@s-QfUzgC+*RB~<6cybb(_|AcfL^D#FD532Hc(AC)z0CP z{-(nfOY}T|la5Kyu9bFd3GCt-_XU`Gi|!cglo+C20;J1ix)5MHcV+X0xU&J(bhL_n1LWD z#35u(z%{q=Ro&NjH@AB<_T$uZ-kKikPiuC*&Bn%d7X36sZ$JQT-c)}-I1LRar~A>r zhKI{jqLf=Z6n^zJ?uu!9?3mbAeb=Hy5M};aOgRMM5{LQqM7+=8GeyQ1j+-C5*ApDP zq&O~n(tC1Zg7-h4qyFsd5l0;q&9@IXsJMw-+>~%$%TIq)ZJ~_r*p_-LI9o(X@nQ7Z zHhDF%^z?MLTgdz_QU)d_A?PZDza3u|i{or^McI8=>}Ol?orm9nNrlw`O5wPL{&L-J z9xkp9EE;GwIqL4d<>~CN1GUajHeGr9H8&(I>={7+fLs7Xh+Y1IN*>bb2d$QGaTY6d z9gs@JFWQLi9$`#qOmYC@EFSG&_VQ@o($BT;duT>o3NUGXp*!`vBKxLMJe}j-wp5hV z+qVy+`c-R1#z1k`e8>E@rGrBx0HEM+>nxt~W7<8_U`r6I&^}LRl{e1)cW^TRk)%Z{ zBRG>_da3}0b3jlKWADX_9D3N&IGtykS=K*w!YU6TybKdm!l^lM+xYavwf`Wt!Y@Ei zbqJz#e76#{wB0JCtc&JU77zuCy}z397>`I+vIcZtV7Z|FulN^(vZSG9Y27nUrrr!6 zCf*O{)8p^lxg+lV9~^z4aFo5~Mr;R1}qsNz2LcEV`POnu=C;PyZ(HDHW*FQ)Th_cXv;rxWa@n z^~Wc!x?R&ajnCkesPSPE0o&!Wovp6Y7?;QR&vmInif(5~M~l$VY&VHV+5zDLr+vSw zsw%Fg+7AZ$t=NWW|D z(YvzNhm(WD5A=ZPNPEGl#Sd+2mX4*N3}YLMP@kt&JRG;l+;@e@MaiqL){Flx(hGjB zWv&2R@G|4S!v!zpU&&n9qir~L;G=PHX5NYS9K{}E`X1+nm2F0pxlvCWb4|`PHjeNqfcBQ^e36Cc!Qioe3@F`c_vKe4tVkTD8CebAdo= z-{LSaF_Ay@jR{EX+3(*^9Ga9cxE<_wfGWx4;nDqtrzKzqDR8I_s<%KemjEQG&={gy zc!u*xa7q+zA$@lC_7NIkOJ#bt;w}np+PqoAMO#Ow(eAW|QDkH!ubjj6))@pdpzG>d z(+kCL?i}~so1j9LFf%_t;8+|8^q*oR#{|1tKJrGBRQ)>;JXu*;<+p4p1Imai|Kimv zwG$`SA_)VFVveu|H#p*kqM2F02FI)msx`Jc#-(dZ@ve!fcxhA9Qk6!ncAK}?%aB0) z@IGwUrse1F&l$UgI}2ZmE6Uyqbj-^FFr2hv>(=Fj4Fy~`Xhu~E&r5%0?1V~47lY8R5{{B@slWDq%mB2Fsy&s#R;)e0+VgIID zbeA9=p2NUeh+_0(?AtZR&mg}lfV*}4{KQjO zcIHU1bebHtE&>fsU{!6zC!j3(`T0Gw0{I06ozOg#f`-6p=m0VfGGi3b>4)hnz{hdn#`dJ)=f1K*|{)fi6;2jg3ZDE4-{wu$JTYk=w3E zIcZ|Thpzi9&0>~@3`Ml|YfW=sB#8#<#!J(K)Cbfk9Zcg+IXR(= zx^u|ND&30?s z6vTBgdU8CtC-JQ2cm2wKR#Nm%O~168SP1(^cUaKW>7cas2uMs3OmzVx2V54rwY)BaJ&!?PujjS z0Cqt?dbqi}_Zsoo+1b60mtlmSPx#1#R^JbRW1}E~B)pnOZ2z}!=kcD|Y3P{Vt?{)7 zWfOh*a#PZ#)MWhMgnc;r_PRv)J#%A31F%<1Q4}*Tqh+O_Ju5?l;g5bMqZsi&Z7FSg zmdR!>ux|VFY`H;{1x&_2s*XQelMs<%kY@Yo8^JwKecKI*(=rseE)!z6yHTd2`C1_^ zuGKY-76JH9mdp~LhIG9N2nsvCd^r*`WwL*N2ly$~lP5Ru^Yf3IuG+AH4YG+k-c%Oe z#}+i13H$X9+?xiYH8#bRd1Mpcx0=K#+;gp*f%l*QF0Ilj$GC2Ila%`HO3^dDo%K{9 z!Ku0#!;G)~PtC?Mo%8eYmsuVKjt`XG zMF2J)`|xO;qN3sk%Tmh3c>OK;ki=<`T3UUyMseR%Mpg1zP{o{IgyMu65Z4>=znqANU~uPP%z}>_AEV1 zRj$>lr>FO#x|(yxg=Y0tmpY*dsz4-Q1N{he;E1(#SzR5+-Me>t+Do?Wh!SMBv9U?< z-e>jj@#Csc?lmWS>sF#%>Vk3wUp!N$1jQU33x6=`m)VypEtF&?APQRcL0+)eE9H5kgSG=hNbAG zROPh8`L}RvKhIP~z8ShNv6U-3@kjtU2!H?agY>$ki10uFj!+b5yM}_zJWyrQtGKUZhISK7&1&-zwsV9=Erf#*!ah_`W^cZ&HCNGJxiHak@=8XXhwdBi3vS^ zh;7_Rv*bowlg4eY6M7v(imRFC(=DdLqN1W&i=ck%1dhTy)jf*Fi=C5GG=3b}(Gu+1 znAF3YpbQ$0%}bw1hnDCta-5oim>BK3bLUoNgsI(BadzGWutVp8k2j)RCmh5Lu5EK0 zv?OTLn3OTPUL;I$@S1Nd001UH-Qy9rYgG3#hE2;PX=E_%x z_o+$6h0V3BVmA0t5ZIT;+juGrDAsB3YsuK3wj8Czh;M7)a6VP6n7Rvk~0d7n{oPEE)tGeNS+Th}2757xa4&VI;RG&LM&I zy`|&Ll6^n!fO`Qk&7zGDQ|2GO<`&r@}ZFOIRqGMw8+O>>VwQ!M&pkqC^sbmNh{;64o(&&ZIFjAjD{ z0@dx^Yx%;Kot-acH~3#(8qbi?q%4$Pf6i=oCAE6p?NX)J64V64b zRgka(PJ^!15nraQx;ou6)RgQ8G(6mng4kZ|ePa1vzpsn% zsl8{_)$7s>Cl^`&g%FgpcZSU6El?O`sppyaM0Tg4UPci2SbyN)!SMPtT^dq#Qq#~d zn<uDmfmL=fVwJOmL}(ctO79i{Ra-D0QOR8Odm8WJY8$|9{mvzB^nBj zFpa0@v`3>b*br2o6)0Vz6A~hkdY`qnF59zb4~ldm6JfHjXg7`9=Jc5sLl9}Q+ko0C zD=VvcK(j-7rpisBp`qliR6Kt!ym2Eth>90AH9<)AC}Q4WVrgPxf<$1zzy>#zfwS`C zQAS5cp9O2KDixPP+AAie3e2ViVa-WnhT`_7Ez;6lP&XJ|0~_P;y{-6w)R@pvRRTe-Skl{vPTLDzv2(3Q|A5WCt{Os))A~3W){aKdC5}R_j(G{<&Pfapg)d z(26c#GgXM%xIh$7Pfz)+TM4sARCC!MvLqV^CW%A|0~=I^V?rRPf+HfH-`MK9;?heZ zYC@}L3H`>g`r8rd*MX(-D|^8wlwC_lN5jEE3YoqZ`s#4rjnpW7{I6b}8*i7*wa7Yy zAcZz#3FRH61K&Z%Q1&9T_%CMt49!EnOaD@$6kEJ_ajs)Kf$&JHYWK-vwN89MYN}Y? zB!Kub?7yQ>kWbL7rMD%C(?Qdo9JDavs0F6ODZeN=z5?C|TSeRGQBKAA&we{q+U6%BS8K^?Q11@2+pfg z{r&u+uUttV_gJ2y6QjKn>q>00OdirP1gediLudl@fgRd+$Ug|9HaI#eZE|B|c=+Cl z_nXu;HSZM1L3RNSk;6&fFC*F1b!1k-K-dMP^& z&CN^#@u+_?^Xip0bo1;)yZ~*1#(>elV~i*I4x-Uu&}~2lE<-AH8u_M^H+5anony6b zLIvbAWT2@pYnRn%7!eJDnj$z$?F{hrFJHc_5EiCFIpl_KzwvNIutKa(W!3MlyYH+L zIfm>PVo+JWa+^IDtd(i#yUm?BaiOl9zsVQUBXl0NMnta0na=W!_AEL$Q9#e#n{dVC z0bo#6q~fePO3%5N+UV)AlQv4{nry}*Ph01?8TZ{c6u9Z>>1_wzx3rWtHgconzIXpV z`?u<^&WD}?8*B|8V--@a*g8<;k5F=)iMB~S!w?~c8m~06$qPI{S@rsoEF$PZq-gV< z_ePfL$@AIXTmbB-d|dR>tcywI+qZj0KS3K7dYO=HP{xr!5TQC4uL#QH=FOX!6AUw- z>_-*IgtmpF4!yzNKK3MDgl>I{fY}eSmwva0#1~(`xxbO-b5^yBY#}HW0|pJYzx3CbN8>@d1oE%A+yuR<2xRaC@3 zEu-nS&hq@i!esoEK&3f=FAT6`)tmK_h%+tE3~sK%P>raG*{^+gd+-;zJJe$IuAq?@WKkPR_IejzeJ#Q?5$6$ zg&Hc)8Mn~S-`{Ecr`aKMGC})lO%CaS(87`gLNFNo?3+bJ2kn$1OuAoQT5SbDi*mNK zR7F_a1IcQCk(*QY*aU{dqT}NwQ=tYXaz$VaH^Ey{Na_*>4g?rc)7kk!^f-Y0Dxh&G zXRQ2gGVyJqMeJ4+kg|Bnw0`~i>}u&Ry>ykWk%l*vJeQJAnS_2tOo0+{A(7|er*$IN z;<~UoXd|Ol;rJNXb>!XeI|w>~P=39=z2%ClSFeU>hz5@z{97sV!bya70!7}sbqjrM z-PHR#U%R`lKp7;@_F)!@9D63{o}?Yy$g`4n{mD;|HiUIbDF#poOvb!iRz<4Wr$tCW zU>$AnV<5K(HvVyOJmBF&aZ8CRop7hh{c#pPAqWLr+}vmss8ckfDxnBPAHs-6_z;+d zdIoOcW*$q!N#BT7&wO=uE&jLM@V{2LD94Ck zFZJ>7E_fQjXo7Z-?h6lax+f;TRYdTd7||NA75hT90(Cr_W|a(GQLbd$HNR;vV&S7(0C&3Kn)k*jVm{-YL64=>Q~@ z%yb;<76d;A052pfYc0j-gE{zo|7qq;{8!IQY}$A=Jmnx~ui@-^m7i-CLY;nPhthv4 z=3a+Cr4#IB+qtLl!DV{Nu+nq7ydTL^df(2bfuIis^K z3gHnXW5kp(oWYc(E*Ypjtyh8Vk!=$C61 z8}<5Lj=H6bsWSPkuJg~TTtg}b^mPBUrcl)t%iz!cQn(}C{86}b@@=rBtX;b{Aoo#6 zCn_*SuL(9vM}L19ZeU+=0{)~n{VnogEnfg51;b1tXa)jCkx0lZ0Q$-+eT)q?d?zaC zGXKT>2X~<7*cB(GW?C=)lSk?x+b8u6APEs9584$Vw)QmMiF?_1(3s>ZD58nH0-9EU zoEqJmAg|s44yCS9)L?m7UxWa{ax(jroxXRWs@V?z#mgS+BzXTa0km%S#$e<&SEKiv z7MIAVs46h7fupHAF9GIF&HD%#xfAqCL&4nO;7L6Xa1aVKJrINu`XMzeG*n&Aso^Lj zQKr+mI1dM7h}HT=oApN?WwsHD7QeQHXhv`VejAHyF(MczGOZIIz2C!Pz(-Ey-Q8O`wW_ICPQK~GV^Hi%Wb zuOw}B+)f>2Wo4z&i+L%vfhi0SFk*^@lIiEL{4j(Myb7m}-H5ZROAXnOy;r=UEoX9a zbk=7_IPWIC?NQSentzWzUuaMJN#-1MJfl+m085<@+r8sJwoB_WPuCmT($n0g+c+rDG^ zz+l;LgI+y3Kj)pNxN_x6Qrx0QN~WQq>CcTslw_y}x1gXIzVGX|Z>x6O96c(sb?cKo z{daQ^wbXa)IE>4ctWu8xKCcK`Snk_UXw+sHtS)YXqls2S{)uVOi4~%UV}Wo!FIG)~E8!(F;F-lan*B z7wuFEifoVUXZU-Y)~PyaXlNi5pO0=jy?wj=>({T<+drTuJ}p&$bNk}#0YWL(O?mBU zOtTl42@m*iW%e*pD@z)?q)sB+6!&khBwb%U_G?}El?4iYp*4zy9uj#+c zBJP)5oFgEnlaO#G%`eN}`RJe0dv^AVj29l?Chiova!#~W$rlJuc0>*DOCwR)`y@1S zNG8XcnF5TN`31=pYzCn4?wV$Oz5Zrju8SU$A2_7z_T90O9yj+x)s zx<{ee7#K5Q(z~jn`i%xEo1mH_DhYcI5PX1v7zT_D4Od7?YHP`fv9-0>A3k*G=C}^` z)TYxnz`6wX7PhSb>}qVcqDXi;JULke0BXaO*{iS4dDrMq*UH8hKgAc$ee_7SrSOF` zX*7;>T*zwpEs4fC2o4sDurbiDyetf%!L3(ghyI%K04wEB{OsIai@`28FF2GQ9E zj3X0lfR;!h&O%S`(7nQaQM)ZHoSdAn9p$F@*~hDZD7blel!M(wEGN(a>Lt53?a`2# zQ+Gz_bx&c3&KlC)WA>&gz6zuYNuQXM4n*z0`?@?kN-MhTAXyZnOO`Atou3=uM(H~@ z*j(wJ$KVQZ=s>ZQV;-K{(LjUn=s+!Y5sh$&4cGkb%%kbWP}&Z+;Z z<|AJ}HT-X4bfv-MqOUsEI0b(RV%#MzeA#eTOU>}wIh(*$JiNRMQ%$(?41v^`Q{Y9F zL+QZPP>a5mljC?p)0-}HhtFNX`z}{{@xK+2xPMW0EE4%G642cI?O@(Q{#&R$i_nUXUQoErT1A@~{Mv1NF&$>i8P4*Y4d+zzqUN0lP(E zO39AdZ}C}lxN^se$E^Q==nL#WW(O9=OMBXipKQ?fGSj-H(^r1Q1qwWl+an_*V-6z_ zFo0W4ZW=!Twil=_eJ|>PUL%J*fFTerHXgrPxhl}-!kqFyD8&C~!SbK80;K{V0$5g4Q6!9X8S;d=_4q#mK)S_?t7)FZ#Q? z(>6yhr(C>rNrNggo>~|0dbRdE!Tn66DEtbiwfd(kvrd^I!v@zOo_MTtMeNlxJ<##+ zW=31f1%TKf+=N#Mrq9kaJN2nrkLNRB8(1;t=A3)d<;<*!IAh5yfW8sR9I2 z5vbOnJL*R;Tc&v*YSr@7?(PMZ4{YfU884o&`$xwp*^XI6FbC{)s5Ffj1#^1Qq{%yf z32suvqmi-lcE#zRAX>z`K{o+2lz}_I5B^paB~*nm-GFf;ny>xI8(S;hg`0G@6?>+j z&r$OLCZnKv7(cj{;)=Pki%K0hac#0Mn!0J7%H;`diA1q4FnBghpNs zWtr=NIk_%zOOA?Ca}gzRyCNb1X1~Do5A?|UQw1SK-x8|LmA_})Ks@a8ggaj*ol#S4?dWZDe;K=YlCmB%=@Z$5eh z9RfO@RjC9e#{N=MP4OC_!QlSJ7%ImBomoXGtxAP{F#tQbld`h1nyj%jED&S^V{g27 zR1EJE3+bhe%4oBlDYYdR&$sUq$=vyW2t|MCMV_ah`wRF}3HI|Bm)#W3RTr+4f@UJHKE`u71VUyLRr|5P^%`KeG`kWs;-M_XAn z!_90|W@FBYHh%5{Xa|s^oyPZWss0pd);gSV&9B!O7X! zWOU$U?)`LJd#F5jgGbD5vzFa)jW_;&zoKn}cx}BH+Wrj=ALT(3v^e6A`B8O-xUlgGe_r_F9D>(v==+pNEw)VaPM9zfVYj9;UIDp6(h@0=%$Ib zD!Up=JsyZ$Gsk8ZTGBn*+G_gx927DKtrqQo4@!<^_>LQ3EwF6h#gR>f6hQ+-CZ=Ln z##Ps*=?Yy}aM8Zv+Wl4lRFiqOAjJ7p4<0@Y9LPyZA_zMu{>J?Ps%)$f!b~-d<<8u| zcA||$=B%cGB@%c{6r%hldLwji1UFWm{K6^R4mRiHx7U1-X%M6nDw^aZ+ayWLN67g3 zr+YaT<~Q?v_E-UJ3c|o<>ypozRKsJ3zRPZ;vuZMdvL|f)(^4S*(PSE{FM}eZDP=4J zSdL%G!%*wM{{6>Z1Ki*0HTg9T_}fy4*DqhZD22l3w9hxF3=cuUr7&{!;zq>q`?jwgn5pyf?%;W8==bgdXI1RB%>?nkiaMZ9`SF45T_)K zlz|NRZ#@=aU~va`??pf^M)P$TiX=LTCulSPPSaF|^U)L>99KFHULKuj{4NiSLT^G-h{XwF5F>>BSX~D65R|$@1*^qm&`dbcS-DTN z2k%b_h#&WX_$Sq`7vTh=w-)D0)kyCc80bLki9~1UD3F@u4Q1dr677iI!NE^QpP$x| zn;0=jPTPI=33aDIfV{I)oauQ4Gm7y=*_WouWn|wfS`q{cJ zxm@OB_5#2h^+_*RnDo}?qBVo76c}hCK#9Yngx?ps^JXuaA+AX>(zDp~NH$H5B+6ijRg zE-k2{Wt9vVq)cJ=#JStkY`d$YrQA2j%WVhM0OssE$c+LhHKMXf zIy2!$9`0YW=V*%a+KGM*w?(V?WxvXY-!$Dma6tpEg;;hWAr5rF;nz$v-@gO(8i_4p zoJ$DwfD2T8`9iD(hy$d9>7t41jz^+!>!favh$a_qW+3fz;Pvo}N?oO|wsQUARQ#+T zoKT7QZsf1|f5wQD(5~m_qU|ipiaxOR3hil2maXX48}DLchl-2^9w$0&)hKgvaefd0 z;@Ae%tU<54yzL?Bl5SFQr$)u>4IWB*UF+4ocZ}}(^{9`)CXSVcD{qq)6@69_DLtE3 zeX#b!R@Le!-gHsD-`%f`)nauB!=ezBEb!FMo}GnIqG8{vJFL!>XL1pjJ5-Mx^5hBR za#6qWewL8hf+SR6vm3+4vVHcgTBzM58syC)1_Js9R|5kBYYQHsn_fnS z2Q=L607WV?5K%6YbCA@vX<$VBBJu3Yv%tI{tBPZ@8aJMVfs z6S6~Lt394h{Egk`@$~y!D;m}MnQ>W*nPt*2@Tkk(R;bR{KmlQ|*0SZL`y%EH7hd9L z*#G&F)cX&QTcqM=G>P(YoIJZs-{8vaaO=dx#M#M8gM8JOujgCMjJ)>XOrsgarL?Gj z*^(}yfyx-iWJnmC*z6yb%~YjHS{;wwTby*RHgNBXy$8ou?OQWdvtAyW{Sc)uLbpKX zi$YDgeJYx{)TpSjZL<1weL~Gs+Ewcsz%T){Wn2sJT!_4EyD+ zmzbg%x1S0p=ktE(AF_Mlyvyq;uzF=37#6w7aZ8E| zq;7N_2Pdo2`!@>4*iSZwbSxfHQ}EuYrr_?XcFE1-B@!!>tlTSh8@F7`zr6p#D9+u z4i1ps*i+fBaL`(_(julf+VX=#=YWKO<97&td;~L36d?+bypx$dlAhAm9pT7^OMOZ)USY+`2?d+e(k>DC_YZBfKa{$H zlDH4Ck{{?=okIHp#f8l3-8$3Kh}y{UH#2*ZkweQ@7|a-AR?X+Rt$5GHF`sY9oL+yGWL3)d`xl=A#|Kqm-vz?Dj~Uq(oPs&CLoHOy z;4M370;*`O>2qvB1*d}3sh5G?NJs*UVOBf-#s&Y{0sheLZ{9=eP!}r$8}Z)2G0~&= z88LV+2H#&Ht;Tqp*MC~#0@k69a9|-kA@fr}ppyhY7 zJXTXULY+hBhi79Hz>l=P_v;2B?|Kl#pFz`pgd3PFl@!qSxTIXWa*$Cx1p15}5bsEl zv1}<^F^kPN6~b>Bqv*vP{sLaNs}ckM%+p=sVUu)}GjCqt)#flYKk2y`FiStk%HVRL zF=M3!9i=NQt3RlxjVvyb+?C3R7So`X#^w}{YG?oiIHaxGW)Cl;ACozquwZ%O!t4C~ z10oTN5{0oRug1j0tWXB^>ZU07xR>*|0kWAQt?wu{K=`?CC-w1)Ww85bG0Vc*4B2Y4BwU%J^XgP5;PcMzI^#I!;48_S$S1=gbXy-{gH({ zQogfl(>DJ7GbToi1zyhR+CGuEu#zdU21V^bgrd7uD!cbVzRxwpU)nmxY&5-&7C%dN zphS`H70MqD1^unXW&_V>dv$c27CM}mqeW^>kY`;t*i)wmq4#^kRQy(aT3XtQSzHSi zi=Vj%#`X$j^qV{+vR#+GSQO;&NUt8SQ1s>VUR+Yg1U{E=pS)CarO-zVhu751TV{DQ zchf5EIg~14B6TPYCC58*?E2ZSierxEo3HRwSwEZAmNBswyE|hPvV%GxPTN*GL)m=* z!pb%UP`E!8uGZAwUYDJX^eht9+I`GC=Uk*g??|hKOt}P6T)Z7F;3>Hc+T3~vH8jE? zx2pi@*B21}6+rcWCzO4Cu5$9lgEe;2H0=5FLtrOl5JQAS;vm{Do`5G3nwBQL)TaJo z$CqT#W_hASK1gl{ZuG(aE4tT806?!)W?pLLjXKh5Wjom10dQqbLq-PA<8?qwD;AoT zhmk90pfy70Tzcw@_*f#Z0xMSrZgDbDj$~wkKqo5EQ(=|MxR4xjk1yw!70dLyBQb9f z3e2841lF1^LWWx_P{~pS74e5hpPqZf8m7w!e{lhJ`<))@`fP{F`!n-K#k**gMja5k zH21OwB80`L4?D0CJ3-9+h&nZCY{My4A+`${Njd7@gI%9Bz~?H(*uO9|ytLF*#HG~6 zke067#O%?aE$_V|6B2uN$V18J?ec12n1awmkcPjt)D6U;>TnnNz~a~g=RVkiL_VJA z`$~D4;9yaqo)M2oNtfiE8MaAq7qM_w9Z+*FLBUBt$L~?T5e&sA!N~jHWXm_BXDA4> z#~6n>_!kdssd7j4>-q7o@)%5c=`cgX=v+SiNUPfL#mA?t6-8lIxvtO-ec{<#TiT6O zHsu(Cu~UiX%xqq>^=V5~{q3oB&Bz$|J_I~B7HlWH5Qkj-arR1UF(?el_7{rOn!xau z!2lu1di0o51CP@N0Zn!6y0#$%7~zP_+Oa03;7vY;zN%` zF|n*l@GB1*dd{o4`y}o@2maPsnL$)j&Wed<&mp{X2mfZ&N*-qdrP$8%s3Mtc%!&KxF#K{sb z1Zs69P#*_@l7;HnbENqSOo%U8j`kH}xGflQzlsFC1n|6#-}?x1i=Fmy>b=Alg=e}o zqy}dc0?}^Fjf`|a3ssU5Aq~PagKeWohcN35U;n_|g6G4UhrZmvSfl<2ae1F(x8O(^oRHkQ{ zIh3JgR@_G}`toBk&WdrK=N?goU#^WGvmHth_d?vAmcP&^1lgy(D0p+U zA70Mv9Il*=Y4OBivCdt!Lw6GT&3%ly!0nELYnmurpBW#o$|*bGO@wP7Ut6Ib?SmfZ zIDleCH12JXV#^qQsrU-2dg)oTZnIA4ofOP;jX>1D;<9an4BGMheAc*L`oP6&@Su z#=Pab8fQGBoH@bth!>)b(wJ4yAFl@!3Km|qmK^^033`-Op28upNFAKcBbQRX0<$=H z;J_)QH(xUCQ-l>R0N~52@5SLk7_*@iL(?N52)l=9m7xu85IiyyP;~>OEFUd=oB^Xn zgO#g*^O?z847a*W`E*@YW_;$*(I7Y!&>JpwbaXs}>>ajjlynU zz&;UzLZ8GWW*!{XgP3eNVLw9N3aaxZ zLcKp3r7l^R{9B%5c&=f_bBJ1U$)*woWgY>p4pI(s4hRdV=)P3huzo&}mH{A5Z9W>R z@6x@{L3;@J`dyz{NAcb}tugE}8ZGjO?g4iOf6wSwJ$Ue-@@vLw@A+#od$OxDZM$!w#B~#A_g(Bv4g<3Iw89GNq*u7 zr*bL4m;sD-(1iUE9x-8l)0Ff8DhpAd1yRwxyE396FtKNrOOu*G%3>NPMSmSU`R3&^ zn69KUezEu2Zo1C!C447T*Gay;yc;8oz2^qCEwJEu7cqyeNmI}6mL?_EKevqNhvyE$ zE;@!CAw?n2JA3w?geALOdNG?AQHcN=T){wBQgKJ(t6BXOnRpSIqbMrSFgoB9(v`Mq z5)@k_ZtB3~f^xK0#!U`SPK01TtWZXrBD{ztMA;9=t%JmoNJiT;{Zt~z!tV`|K8QD; zNqD!)rSP|6a4e3^>+}R|fKRAkerC{y%mMYfPB^-7uyr0nsCe?DDT8yCD}maNupJ20f5RHg2k~|<*Y$?oJWXh+tK7#jzKz&Y}8=jd$|fD zduETrxP+0wJtiuuw-zQW4nocJL7*0LqcFR$OCBkRBZSlUW2o)SU?n-AbJvA!oPm&% z5WR<|8eBLqy$H@1AZ!2pY}TkD3>t|8l;o+mCI%wqn`@Ldjjk``QsQY~d`Z-oJ*4+h zeuUNK8fq`5B+hS~z@XnH;m7M3#Fpkrx4&iaFPj-}h8OL^6P0=NdX6r?YhhWj&vBPH za3~%Cva&BwbG0Z^OOLQRXI@H1`q<^B-Yy4d9E7Z-whv*NBi#!>#A!^WTg5`|L z$T&96*T3wV`g*-AZKBMWB7;b!&S^8|rSNks-uzk%D&-y%PwdES{uPHAQ{;`se! zXo17l-bcU%+sIUo@Wu%wR1t`D%|>DBi8&=FmxM)TQX+QF%K%i7^v4mO0kN+glR%UJf-L+clvZ%?LWNl-(vk>#B?sZz7j+H{_#}4%z%9PNTyw~St=k#M)@S*6m=Hp z5(^l(=VpyLNv8lj+g8Hb-uxgtti2Sebq5p*$$;uz)w~<^UCgB3uW3T{{0C#nwRYG9 zz~+rY&KMiQsPvv_*pP`A8J$+&zaGJCsrzQ>dygTM%xVU4phbHaY6ks6#n|dS&!P5q zFitPKR*P4}(49=B$q13^epY5xs=T^cM@hx2*BOf2?NMQ#>d2Ht9Y%UxLj;9|Duv^2!&BD${5dFGkOb{oM;4~O(TX|#7Y~&(Joz9cP z&H_CWVE}Nm5JVP$=k58d+wy~y68>SbRY(}p7$k=LFt|^$;qordr99`Wj$zcae|X#0 zucPJVF1|!B;KdBNBHUX2|*U_^DR#k z1bU20fqWqL!4Pp7+pp?RgY(%z-BaEvhkf1i0(7=$A|VOUg!R-#5na#5h)#REaY8APHH{*j0f;!(FFzEd3z!2s2CGK>`Me~qdwl2D`U-RoeI*P*P z<4d_}Z=Ld^U!Wo(2Q=rLJFDLeLa$`~L9M7q)E z+wZ|7tc9%8(z zWLttazzfMVt#I0m?1Yxlg$3jDFQQ2{8g}EBynWLxCA)qS^&=MVi`P?;WAj}H?F!|v z6h?mJq0@nnn>j!M7Y;mk@GOQL)%FZ!k=Oslp1E%AQloFU6t=|~yJ4^0o;Plr-5l?M zDAE~pq4p#A=m!wv!)BcZ5!9B!m5uQwsC6pWcr12>)3$hqAu=}sgYkB0ZvJQ!x0-Co znu}vs5L8sBe1$fUYi>1BUI6DjqZu{34rs>C(y5f`fg6C!Utemz({W?Y0mND$kDmhE zbQDJ)b3tOs@8MfXRNrP48h#8A$a22zIBE_BSK{sEAU;0O5*rgE3Ui=n)`|4|!;)Qf zRSv6^VZXAP!})^gW_$i&coZ*_iO@I1X7jofwTV8Z7urhf4!88j=)5nlxGGaWwkPLZ-pjn__kOgYfO9* z_$~*_odT$bS4>`Fh6YPv`dM4s{z<7YBtEF2_GJ!X%0yyYH&Icg7CTRb;g;n(Wko2m z?=LM{j3xqgxcy|Lv96tm4jwc{yL$j!a&3>E!F4>{qV_SN3=4=ja3x&E5fe|srQ*A&X53X}&?>a!n0O04@$ z5p`l}*T%RbNs8*y`8HVbTZ(TcFnaCwFb!GZyrnFB)-!$#c2;&0%mj@|w=QTAmM&^R zVg!)_5JAO*%^p3h9(|z6I%0sO*@Je*5_Q`6o<+MMhf!FfU=w*+kK@K1mTbhcH5gWe zd|2y)HOY#>ximosm^AFFsCCByganqiyaYNf>{mZz=W9^|THg}d=Lf(GS{<|RS+dWR zJ6DDvPSK1_!2zbxeS(>ic-P?TR@*4{pJ45m2p8)`%4N$vH#OXbX>8iDI_(ONl121u z`q58*x=r(Qj^^G9U}Jn`2$tb%w#$Cuh(yKJ`5n{|EsCLvAE%vKY9EJC6wK#P42da@ z(#v)t2;(gI@pFLkzGy{OsWo2cs`}VAh%q}kp>owcNN#FQRHIOtb@oLA6Ow`vT?wUK z5=z&+LigLDk3gM7UOo0YYHAMw;J0Be%SXf@4*@)MU=r95#_;r=wJB~=-|IK|S=2yo zIpfw>6c7%Oz}KVp(0$yQV?nM3v&+)93yF(0nSLXg?kt?o6#l0;1>jJZR(wp1+dwM# zX(n)lwS6e|4JIcz#)YeeH4Z@i3IPaOe-p@XAZ&Kc+F~@QB}LKDfw-FhCa7ny#iKP` zcghoPuv%Z#jRyTns3J8BLHTz-U>d>GOEk63uhiN!awxa!w;?hxq^-??Gx*kR1Yi_6 zYy!%d2hUXlR9?F%(FvH|sB68F2X_P*S7TZAV;kS-Ug(!z@YHVbbe)A@B@L72`sf=_ zeXnloel2u39(+W>hXQoood1?h&zUsyDBZxgerL5QOEU}+g1Fd`s;+ia9f(HTf>nZv{3 z1fR9jtPwi?!$QRYV(UzT5K`In18}f|Q5P_^M`Mg_-6S%JWXKwrjb0bjRtr6)nXHzbxinCL8>gWWa zS*%fr3}Wg)0GC_*2_766-jV9HCy06T>_qqvPi^sD@RnR94-$_7zz=o>Nb01K``@hn zfEi1+Q-{F`szXn+1akYuhXeOLv_ia?EPS0-uCedn+Jhtewjm$wW%N->ZAnf}KKkO^ zF+8|2Qpj2d7)~^*WIwjPe?2?g0uj}yZwMm&T_JbEF$r)hBvMLo4>7>F_oEBt`uOML zj0N-Q8|bzmH{-mtoZ>>`X`H2E%mGAY4*19dYGrimea^ahOU2bMn!5olLkg+~?yjG= zNrBZRoF%NCewQM))2BEs3A0hSv>W4}fq}MTa8SQ5$X(>z)9^^f~jt z530{k+PZnp< zgd_mNyt|^Jqt)OlmwWis9X3oQ@~Cj98=gDTos#)mIphh`%d%sXD#0KLU@Zqo+3(bX0Wmix5X>26>aHm{qQb1|#V4-|ch2tU zjJ`vX>PG@Ev`O$-y5)KO`M@%C(mNJ_Uw>xcxod7MDgaQ!Pj^Ug#7MD$mf^0?VW=eQ z;_$H4)FS1wZuF37VV_mpR+FA$W(!&`6?@kro=6JNkOO`KV)V_vCPQ@;DosZvYOFLq zG*U6lCk}W2X{yG7aX36_XE*Nu${s9103L9iYWv`HtT3Umnd7Q6zTc`qC}l)<48x*s zS<)Wq`>untIR1Eyz62-rC+d{pJY55L&CSA@V<@`)u|o0M{{;6z_~~;X+CT~y=PV@+ zeI%Eih4F1Y$&m7^ah{|R^zv+4`zm6>2;lwRLmn>Ae}bs zmpy(`2Lm4?g0wSHQmagnfkrWbOujrZxHfzgwL4PK!9bq6Qq1r)A>~xlJZk9U z=2Sq=Fd5V@f_)N%7+ZWQSAYS(oAMnqs2DkTWnSDesu)1?Zaj)ZZ?%w8=~P60e}kr= zsI>Fl9YUmv1)O3yP6UmEWP{fB0S&f7G1CNy)X|i)LBcf5k(+}e?b^HVCtHI^&0uwq z)$J7Rg9jrp3F9b{=r{8jj)_@Y1i5@aT|46n28z10Le~Bg$G0esbUTJ1^250}n~6bv zBw4jaA(zTa8JQT)4zcuc6vBH8IYU6SaM)ei(DkesS#Wvc5sEJqzMld}vc$pv8wqOfiPgn^~r z_j;vcf z#nPSY0Ukd8SPj&w3_(XE)~C+i6hkGBa7vAj4((>u8Kq5 zDdi#O`V(Kzz2cxEd5H(Apxn+pkHkSzo?$2joC0y{OR8mLj|jX6w~S39>SeY)$p~ae zoeuH?)zBu%0Vz?F@c-NE8&Z{b!!cxRvH~~a*H43sjl$m4&6z;SX%GWSx85!XsnCO4 z?7dbB{(&q23K!C3Bit_KTtbFMASQWd&jSQN(B^T((WfVFNYo+VbR0?w@vwHLaC`mA z3Qz+tpFgYtgXcb?bU9LI=Hb;fBmBP#brhHTQEQLnHxzR#92<=ABkAE|bb@Aay(2~E z&=kULBqak<+l8hgw<8a%R~ZO}0iwX@Au5qjNBe$3y5*k1(^~A-_cL945Lppess_3~ z1mx1yOS3Z0b#%o1*NTIhIxAQ2(;=#p1n$B+4M+O7(0tVoHcvM>i>CbBDT~?dif6b7 zB7le_Fc~!g^PMw{f&C3&%C82QJ)KMA1=veWNSakUtemwD!hFGXEE5_bR3GS8hhm*8 zhV349ewXxw-TvTOSB+QHR-t9~3B2=&u7-;X*3>K_ zrO*H9S89koAyu~9;iO~{Dnc;6JF3#km@MW= z089i3sa;0$v1C|v2Wk^% zTE84dDn6)q!mpHb#yw7D(L+d2tw8eVzyRlA-9QjIph4K9m4Npdu<@8HzAp^p^7aU4 z4%~)sY)*?ONGQlS?HCmKlseqQXIn=Kl8`cvAw8E!7)wDmeFhXYLR}DUs14%{KLH|& zBeh{n#fag_yVaS7@a-BZUBZI0uCyx)b?;q}CpBRdeI65loz#8_0`J)OZZ-B>iJH>V z2$BbYyLyWuR~S$^^7-9l=`#(`Z3>D>M+6MU3C3X*J9MG#P!38&JbG-};S_j{%f7c`)dsU7BV5U`xTj82uQ6?fVA5HYM76Bzu zxUwc*1a|M}ljB#Aa7VywMZ8o@ICXa z&&p$1;{dUNZH}b2PXd6CAq7OFD4eV965d(Je0|ml$AHnDx>$^?G>l`N z8E?dNq*Vi1-0lsjJN&dQl*0#?=Dp)yEFS|lmj;}nVVK+!D*_5)DEHb95db9D$$8PS zZN9s*JKe{@_X$9rPZbp^Dtcwe1bv>#QhtProea6^JCCGw&D@T<)1@ks*&Rlup;zk| z;;~zj%PeU3%lZp#Cz&(r4EV_Pkhu-;z>0_|*GV zh?q;hw#p`by^UacAly^FjqedQ1~~AJceaaT1#y%qwRXF2m!n2R+!(k;`&oW@#ebEq z+c#3WUKg_*ef^)#f7L>W@TqF*Sl>+=yP@XRq=jnv@tzd2xj?95EFOG)HbZWy}qN)Fw!wZikai2mo9ArP2)kwZGQs zC&%f3K?ZWN48b-dL^c4#V#cN6;hfAla?3Sz$>?HkiL>}lh6juOEtd7k%VPcsJpWvA z&GDzV9C^%T&y;y<=-(_9Tb4i>3qaEV#;zSv=6fsGfHGGFqJB_aM3Yd(I0f35GT&8e z_@dhb%P6N-9Mu>yKBa7al9F>M{$uOTsf6z3^${fu zLL6JvrHG*798;+Hrr*U~rk7jhpl-9xJ=~Zp@7_6OTxbzGO+@40j0MG?6Bqwq?$Ez{ z2K1_*b!4WO42g@2X0Izrnu+^kmA_^xur`St&ODAiFm05o>%ZRlf8r7T#O%$twRnq8 z6P3K?-b0m%lF0Sz_AK0gg_Wo~mRnIe!vmN9S$90Rl1=I|E9D9htql=~H7WWc|92Yz zADLRkX#mZ3GW;1xcsQluZ<(OT;v+sDx zCvUoAn)vwb3qC>-55s4ec2X!~|DqgLDA@cPFY0HwwQLXNdSS#ojP0hJQT*jarsD~I zd`z01vL&K_6&C+R7P5Sb#e<>K%joSdvTWWbui-`(pZuN(l@A-Lg?49}!->z~uR))& zJA^BiH?$_2?l@V2YRTA(i-PzFWy$Y~@9)R@Uo8OnDJ;kIPkEX%M@%i@4f)x@Q{+Mo zLN5HZ4`&{_%X3X$ZMCNfWygL!yHwE;@~eTrfAuX5&nvEvMC58pZj>Hzjcg0&5bf@_>1=Qp8QLW;lCZxUvJ}Qws|&Rd-m4eB9DRRoZT{iKCRc> zDPLgnb?dZQUBtzE>Ph~6Wpkd$h7jAO)2?9tSl&L@Z-ETQ=!Y8Y&4lBDwoL7`p&Ogm z&{O!27-ld`CqIub_Ii@!XMdXDww7nEzg&s`!Ik~F+bpH7>yO;Km8D>{fkW=EcU@@~ zQl*Bi=)2*MSL@xI*57N96S(KCi7n8$5YfW_Mp9L~s%v6}+9~mO(hp+i#`T8f6 ze<49Kl)#Vd#v6{&9o4Nr+mY%{MmL*&u z-2CX%UFta6a8zB^m}>?@0N>uu|(XQ_;NMNV}nj<#Q9ttm8V=-e_`z3%j6ZD(#B z|3=>$nK4n-YV#T@t@UVRudPvpLHDxN-v3n z{w4F;YhQHoN?zS{($%EPxlU-VMYntpb+7ODWuvbo@1JVdeQ?Ih+u0(*{*ZJ)=R#@4 z#sN3w;Z^U<)cW_KS|eL~JU%Speu3KAlX44xWZYbvqVnQ9R^Fo+Va1c|YjuEHit?H076P2pEsWOJ}B6 zY@&bduCPhTqNYnB>8i0^wxDvnc0^OYb!Uc)q**4FLXJ)@_y<_QI zJC^EI5Xbh&Okil?3tdm2yNZHRgLOBwt69DaF4lNYicf~Ppd4yiM49^SQWvzF%a2iGGWzpt`IOPs+kJo(I zV{~h5T^2k0SeB9y1IW*5|+G@^Z62V)#qJiU}@gY@3}9NTy55+n9l zu{XHr#b!`YlJag&8?pIgyix6x3Rcg?8;=(91c`R(t-X7@@ru_;ISszvyA$CH*EOVZ zXs)ManY>mPozWMu<#ZXHm9D<}DvR~~X{qu8IfXnoEAEb(i}Y^F)NOIuJZ64!M!YSv zZ>D@Dn*-bKXN7r%Ij;*fn$G5raa^?JU^Q6b!_BMG8=)7BHQslmeW8=wk@nVr9trKq zt8AYW4TK*E-*dV(T$xiHVzB;%E5FFrPf`iC`h1G&hNT;lbSpMhCU`p*S@!Jfi@fFk z`bt9T6ZyvU)xwgcFML}j+;8@9o9|M~GSHo!Vea80K`WHGFW|+U*Il5IHNeJn>1ucJ z?yET$UOLO=%5;fl9BVq(X!lNXgXOE8k$QI98*Eh+sS8x(MXJOnC%ChE)Jlursmk|T z74_KX4%~d6-Me|C9(A-}g_*OWx1~+mj0%y`H+~JSCpA~emT%-pugrg;n`^Q9OXjKz zQnLd#3^JGZ?pK+x-y3hCgg0%U!0P06bC3M$;o%o=e5?H}a@MC@8t&6>R`pCf=;LA| zx{0_OR|!-T|MURAoXr)I^xiD|{FU4F6E}UsKFQKg@5fF9(~m?lT32qZW41Pep{>tD zoUilA>Zg@!T$K*Jzg401<&C#Q*WPTqmT2ZkRuRtC5^S@|)jyUB3odZ{Xpy*ucKgr> z^~$4=H_aZV0pINXXztfCS$Q9?_8*KmuohH{&1OeyW9|;y8J-x?uHOE&Yg{h*%-7T| z1GCR;xXTB0ae`x_&%&oRRApO#=%21iaI=x+sYP@zjs>uGSm$xok{b0Zz-dX*WG$5CDjwFXmelrA%i zPkx1J4X-AyFy^#=5kFopImcRqpSur17DZpob@(X z`R?>)8v^NibFD9J?e$k{WOc#o5xTOtVb6+4$7iI}Y^gt<@b8j%bP*lTcCfjvRd-)eauZy_4 zXZ|a5#djtyjuQ<0Ya~0znO_DmsrrczE#B+a)bb40XbX#oU8*Z8p34q|WJog=Rrl=s zbH&Xjwp)gtJ(j|#V+=tLs z1Nv{5Lbi)M44#S5MO;mhyy8QD##q`=}f)eg&JK~Q_FwmJ+*Pi2@znG^ePXFinyRm!9I{cH zV({aeibF;yTYiYR7Ok7>ewX!xgdZEDJ>#V|EW=T^iG5-u64b8N}P*ApRA`4bjLJWTAQNIW~?u2M7B zOr^cwI4?({k-)9c|MFYUq2P7{ch7HfDbjKA{ad$sA{wpD4 z^EvD8EoHi0e<3az5}Ywa&sCn%f2!xdJhD2PY=A5XZeEScUDSJxIL1moB$2cne1fYW)nf1AnS=2cHLpU5bm&f2sPByYR`G&K)>r{rt$^ zIA<_H1dj0e5GcAGS5SOh2&0esT!Pb+{P8b)`Y(9{x#b7*F0)o$J0I-$_3y{?cL@Fa z6_LE;_x1njI8TS%Kd)a+dPB%hthu=T9;NofD^KP2sZJ zu3o}lpE~~&ULw~-)O$?~Jq+@@JWjU}?LYXN97VO$T{E&Jg#UA*H?`ERIl6eCCbNzS zY-dt(7xn9`JoRBaF|7N;6S*3aoPR_&I9j^dyqJ2&lE2^aU-G`GXQp%RWqx{(P9*EW zqF+zE$3ymT7yuzZ)T@-pCB>!Q1nsRZeU#*|Rq3_C#y&(zR?$ zZ--{x{l2#5fW*^7S(}o_a3RpJDYpV&+tke40CCwDtC3wEv(JD zlX8Ytu8OZVsljgUYEfA>Q~7Ul+n$G*ENQ5osh#w=>7DAn$@4QKBRk4OG&%Rj59AMK zvP?S7|KczA5dva*)l0-~~=s~hS*+Vm^LHx||&(&u|< z%U@@Hn|XOFUGzit;&jLKeg(C5f6K9 zEm%xZcv`q6ES6^w`Mk@$H&ew&D{k`6*6a+9;$CrCUP4SF&%DWy{>4iFFvUmeg8p0* z*%JjDg!R|VZS`TDIFArqsoiuj-IjPR9$szvxi1>m^p6%knNiVCA8cV(IXqgJI{!=d z6CKTXb*bmoiC0b`x(?pC`>5}3 z?%lAQwyhvvvQ+r!kwcQSj^ZTc?;k&prVQ9yQSHB0*>4RiOUM~6&aUYlSVyz(7XN7d zg?^2S1S%6tUi*muP%_LA-cMh2dHd|!y0714@NJ0ZvPaH7#uBXQ+t--Y8w;3l-gl~>{__$C@ae=iCw`zf!A@^;k)c5&07sNFVwFn6`?vh`OTT+pK zbH~ZQXu+=RmnTn546xOlRjV_(a#o^q%&(s}?rOj3(*aAzygQR)A@Vf$6E`PlmLC0u zqnV!GPN`YW4=Y!W$w0cfs>k|)_S(_3%MQYBLJJ)#BUn3w4XI)$+`p9-4`*%=qxpoL z4Ox==!`$)?00f0u|3X`wcaZMfDI|5u(agD*E26+wK3k#j1Z{VOI^x+$d)uJr-7y+E zra{`NF|l!Xnowp^wa`f&oLpgBcGYFmopmA))(qSEe_BEx#k0ECeA1Acp2za>{t=r} zjXJv{W`TKkvb%bF67u^$WHd4<$ro8qwAfx-dSi5xr5AFgWoAoSLzW&s^wqXi-nn0T z27UUr$kc=j4UIR>$SX3OX0IBdzaLZHF;&{CZr0!diM**6?)v8oavJ~(YQ&%r-$a^aPn+! zXK-f7_-I1IxMj8}@4kjkU5C`URpzfPR@d2%d9Chx-N&;}pdct}c;bF*O_W96B>$0K zo2SKFiic~oYV^K0ZJAsp+f!)A_&%sGvySIuO>D{*&nC&Wv79#hBGgrumTZvaaG%L1 zE-e$l*3LnBKC^yG^DsgLFB%!jEernydYG-Tu&H>FX&yR)TIzO4poZ!+ZN4avN_F z(=^Mzs4#M1?aCCVqkbx+i$wK^|9vX|NTPy`<(5;bQ=YFd{dn#*g8m)fV6i7()7wUzDIvzs6P!vI&rN&i62)M4ZG%wx18!Vq{!si-qRPVBnchNV-!k$kP~#NB5Fhb4eMmMSntpwMcnh@^@oi(m&}*bQ*bz!nfSnlzA2Ewm>uDRed2U5 zdA$2!^S<*gK_iQ|lCNDUuzz9xanF%pR-eN8ln`OeQPxi&Ii=iPm1tCBS$R1q4;CR+ zc}4%NNbt6zJuBtR$=a2Rxe$Y{xbjfNWx-8V0rEu==XRvO1dldaY99A|-P;R$H$+_e zDiX4cg_knqh?s*i_Iz6|S%R?KYF8^J68KMUoJJ7GWuF1(-hE4II=raYL3puS<)O=n ze!YDbzYTpOUCvoU{)|S+EUs^Klp)sGSmsL&MWbuzdQY8wb_-yy=SRMGvzL-KuOG}W z%Qi4RzH`>Wd-~gQ%vaE#|G14&=}NIXmDfRD53d>h9%h>u8Z@HkA?3)CTXXnA@q8pM zPF3QwB@q0bIXQG@Is+hpD*dO)Xt{AtsERN(`|EOyK;j(&?rkjsH8 zHAjY8vg(9LAhvFTMD=moVU?xZ#hz z#KPPAZsBY*H_|wzU$@nN7J2Kl14ZW*+pQ1`{i;B#(!7#aJCGckGGy#2z?H!!%1Up6Tg@deOH|@}GC|!g z-1`garc6+I@(~pUXup#Gt}mVH5EJRRJbmGBoe1)eD!H$caq`KnP^#pAW;(c$Ka<>_ zx1L6jd2(IOMDEX$7FFPPsq?}LxVI}rnqk_#NzTw=AQ!v5nC|!wQ~muGRu?Wv)Q~nS zWhWr4K6pFe9MWYr(clhHQe`(jHjbD?oeU02!WHC+q(S;+X6z|FQY z{o9p!f4efs3MG%J)Mv)5t(D|EDg0-rZEw`vDOUPCy!fLJi0s1jWg9pv$!+}G!~BF2 z$UptFkYpA9Sx96v%KvpoX0p1MVT~xtJGLJ9wU7VVol_;xe~$V8Z|r6LWYUG6-1DD4 zHRM#zx;0~_+k?>YrcIyJ=9#dn%%EG$zhH}7=s~)jG274Nx(UylU$SGTRe4tU+MsWX zghuq;=dBBRu;x_ULGG<<=AU}VFKobA$gquN8K#N6%lzE>)v`zS-G?lD^AD{e3>QKy zi)$`~Fu8LF0@yFdciJr48g$}yJp$y@Yjm_p{XldtjgCJS z1IABrP@cVU>)rU2T@~(Q*22mbfnxY0eaU%_&nfv4kIMyinou4H9lCt&*2#0&d)BAY zJ}3pl4d$F%Gj@i~d$(G&l3N8uL5th;vheakEB=S7Ymbu)#pVUX!*97fik7FGIM^-C z6-VdtT=WY|LeTKepu`llxZ(@sB6^$3g!SxBL^%{S)Q>6a4>wn-l3N-fLIb z_CKX)5g!#tu5T>6c=<6fcS^b8P7s(V56nqgbOfM%{)6e9D9;Umr-JDrB8)-djzmUu zcYXt%3p+j~P%xD*oijI;>m%so)$JdR*j%*VtH`SVN)nGS0g~K*?NO&g6G0H!uRSeZ zKuMkVEA7H9EPuI&c}_?8@~I2AKWvAdF6C4J2Gbn+6hHSPH|5msFpu6ZXO=~NsPegr ze-rb0>V*G!U`%fGV7lrKl1qAszhv-N-j1A2T3b8t&+P5UU*hrb>6CPD<)2C5{9ku7 z{lJlT+!g`FRp7Yt2#TYB`ynK)T;v^SJ!l-+`r;_y1?W(wR3g(G<#&rFLx(J-Wx<2s@b@j4`=15Nr1f@kv1OKzmz^m(>lM$<}jC_9=a(dcqc zsXJ5hW4>4~M|sTj$#NO@2dbN=fi<5E@r)GoEyxW+Xk^(#Ly zv zc03tPU3PAigzd-<=taP&^xTVsf7n%i%3&PhIWKGibR{glK&*At@ z=N1Sconug1ra|h##_ETlhlj6V_CzQ`_3@iurD$>6SCfLSUk&1R&~3B)_pCyr!m2c3reogQ=Yy0 zjp2GOZ<_ykr1g>bfJtzBrde7wrD-rmGjnZl|NYk25Q>v*ZiIwpwhdGV*1ctrVcJts zRa?zpm#|D%WE?zh>)rr{69*4>(@dtWi-3%`GJ!OZgY#@8U2k}eCx*mulPM8y&Kv!lP z_bBnFUSb)V*+X*AhnUI+8CR`*^H$XfcYcI2flRuJRR{L=UOKZc znUi8c?Y$q$(!YRnh#Dre#B zT~v}jXS}Mic5>C&k)j^cAAhW=Z_5(0f2Qr__QtbveHs2G2^Sq>9t}TTPsX(05r3(* zn795(BU+B#Dl=Nd=6Uuq zjN^zeZ;tT(@TgC_Kndnd=F$9}m#^yFD_Nvx>J&0LbnV-Ry7O7`zBd707KQ zUdKD8#TJzJCfqCbYwbWfbM@pS+N{18aW#{Vsy6fFcFb z%)LFIx@%XBKu`H?NAk(Xy4ALOHcjliWZ(gzPzedjpze#T)ZEo>*F(Efvpdb-T+Z{7 z=yTVkvvYQ8tSZ{ep|He$En}v<{P_z#jp9Q*&X^h!*b~xWZV+@zHaoj>^bmJwnzM6u zWdwC3&Y4F2et}IlJAN$CfkvH}2rm9K(kM|^IoZEZHlgk{?QE8gBQ3ObFwh~}An4l8 z;zkMicnb%|p)KA0T~b;1y3DoG>K^H3zqjle6LAb!z`Uj9hI71=iD&A)j?6AwRT{4* zJ5^V;?*(gic8`6nb2eAtapUCA=1=S7-*sy4c->W%)vqmHGuexYW3t6>^|FnFjWiPK zS{m<-Q1_|n`C`LXJY}EKy=-+nMlAmGnt7w_s zlKR-ay#_@hfxL^hbW5%iPmoJ}QkpMqlED>KmM9u)Wc~h0$PyDCZj<#(OuV_Zik?zm zbad~{7B=*d&zfBOPE2S$lbTDZSz+t>RAXn{qY{+Iwm& zExWu)vdCVh*PeUs+mXY2?peI~CKz1jn;of<-Et>kmt0Y&RK1bS`}xHw&7D%+i~KtV zdFuOIX>%?_^K?7K(ugV6ONgN4UUyY-^|`>fkjW!J5;b<*mU zb9bC2UVN2#aky30Fs`r8bNw$>i>9|Q-*cenr{=kFWmfGo$MHnlH`mf1urh7GX|QS{pxV5u*#W> zyWZ$%kKQ5*f5>kGd1UYR49kN~ce3fKxDD3fn<;0+I4JIk9d6zR)ilk^eD?Qwcqo+3 zu^*~pEvcsk9I|Cx{2!3ma`4QWpDsq1$|*G};!0BOiH{*%mDRJ$(zzWXjSag#TAV|B z@0l}iYh^=(S3jPqS7Z3dCKG=8P{!YLU(q3yT1~c_S?)<*>@+U>aSh6@(Sz|U@}Ffw z#G^>j^w5U~Q<2YK90r2|9L6e+(gAf-*B%+CGJAC!Gb~S1{Cv}Omej5Nlz^r|#Me>x zw@$^^MG`Lq+ZCjP4osJSORCuJ#Lr1hJ!ZIm*!L0xMZxgX;<15#2SeYfBt9whS3THO z`e$5H&o}vSx0z*O%fSYLrg}7fX<5J3)#1?Xw`bCIc6ppO5vpPWPvb8AN2oxaEKvE5 z*sB3k-;a{yxjZI?BI&s6#oiXXhZ0c1=Vu!KN9lR8H^fWEY}J5?UAw8Tf8rd6hD=0f zg?2_=cZz?c^KJhXM*Liqe~UZ0?H3>Wbk#3f^9GNe=F`zjaNN(2TECUcSLqF?H@ZFj zd=IDNKSi5%`KI#4fu*y788A(@acXpkzIAV|oqBtZr41^Zf<1;A_+#Vyjiw$h4Zn7= zFnk%__)>2B{#&g@&uW?cpRUiFthOqyk}w>~LG&tAy2T(wGNsNzUSz7e{?vkL{=edW z<;4W2SUT}Tp3hcSF0l5_OM5JgzyA}Xsan07)TOC1`md<)XW{z6lZ8wrNt*%Kc;8-Z zZ#V^`6o>o@%~(2C2uwjSm*kl_wG?KdP3HF(4vzmlpbsQF=b5%77AD&NNvp=dXL^3W zUpIM}i&xQiI*ZxM|F=7A)fgg|hW>h$%sx z*V=>c_xfJfb$-s_IFIu@<^iieMnx^`l!x!-`h7dUu8wrfppf#II`0d)Kp7cIBksK-fQGB7i$^0J`{dGG)%v8K?FI`i+S7jclq6x^| z=$`foBXw7={m-kDT8n)N-#@{%TLx9%u_)!$D}Oo3`C{pl`fnIc@#MU9FSS?z{OsHN zk%%m76vLX5zwZ0@i{Ct7mHx8M|NgP_CdVEkneY$h#owSCx04aYq*4bjY4xv{lo+A# zyR82My=mT|EcxsI8t30f^M7&H|F3b*AIkr0od5svoD$E6+YJe>b^RBvRVzsGyx~dx zj;z`$hJ4UUY=BmW2$o<*v*mLK>}TY4`tnpq7NuYS77J&%_)u1t{q4RgCBoII+|R)) ziHm#x>;U`*G!VKZ?69+aW&4k}=V@H0u|(APZTPlfFCkfeEL{(BfRY3!5!L#P{i|BD zEm#Ug5SZ>vveK{=x^^EQ%bm%HPFvp%^@sz`gHG*!bJLY`{#Y|8&V!}-4&_=A%PO7P zzIO%9_6Bu9%EJ%3baVF}9VDVa-9R!2pAB~N&N&dZucNt@SfE`B9WvhYEjFbSE>;dN zR&>b?UZ^}Yc((SD{`0Nac6a@7#u?ofY{$MKZ;7cNo8IWlCFB$0&Yg=*hv-b(AjiZF zv4h>8aWM3r_P;?<|Hn)q}V5IfF%mvWK#mk>ZZDl2g5 z${EqfHwS44mna@GiIrdfAMl;A6{5ZK)?6X)@sqV!zQ&Kmcg#%k6NV7Cl1p{|@l6^6 zwB1-i7cdTdX&8G{bHD67u^9KV$_D$+MlH-B%=5e(t26^4dLSD?&?AV4uwt#{xc{nV zD97+XKFnubQr7Y5y!`2ke1Gixl;)Y6D7C7S7tiYOND`dDszJ%Nv5d?*`T7GIH%->- zKie!1gsv28s^VRyu^71vf@-rGn`xh0g_We$!4DmSvWH7nbO%^D8$)@+nI`Z|IyBMlJ?xvoHu#`Q*Rk}YPm_;Y zX0Od7AZELmuK>Zfu)FiIOZW>*sQ(NHp3hk=|D#NO%)+DH=<=%Lv2gnK zd}wcUZLqqqpFC#f2wt2oU9v`o*Aj>#<*oKg1;B9~%8& zv~t+_8TefDH|xvQ*ksuaIiM?K-Ld}oAb!~}w%Bg{SQ!Zg@YK?Y87Ayp*K?a0O||Q* zPO6)RP}f^&2=jGAN5~&*oG+9F=8H5KIDOIBGDiL4ACG7qR#gymkLQ(Y6{w>>8x6DB zB0tl_OKqnOzK1z{JsY|GopA$}Y(in~3e3lFIuE*L>%<^K=}>XBt-6*!jWHZzOg1p$ zz;96PW{qkp;^8?7zZ^?6yk{ycI z9fwTGa82Z_-EDzE=g2oq6Gx-z6jv(0KYKW6X`}ky$(+Bk}GiOL(M5KPA z=zhU+Yx0Hy+Fh$}MAUXwZ9H>A>-GiH`EJBKP*w4$#LW|_2Rt5InP1Aj!5lOg~{ii(<-{k*Cnsam&46X zw0x51Ai^XWhwA7z&ZJ*I^aN(Wqpf$!;^`lQBp~kZ@aQoM+q^Z1# zV)1%;d5WNENyP2>V)J|ae-+ajr&!$!%L;Fs#os;W3$@krt>e%SO^m%~Br`X9Y_86J z3W4Cxm??yel9QU@Fp@L-HZgW#|9sFV#Fp+%vfy1B@$_DJm+Wlrpo_RG;%QKO8*Zr! z=gxdY`f_oaNktcS8?VZjvuevpS}c(9vP>v)CGKu!;tN(WKRew{Idk;n=iBoQFgdsR zvh!b>cxLT;%Dq>scFoP?&o$UjAsVdc{ZyXjk8Rr$c~h-}C0P1hk%b+t##mYC4`C=d zgOM1H;&sPQ?QzP+1p@6z91t?q{MKvRs%U!S1t=z~48B3Qf~mxXokUG(Y> zMNbscU1uhfn$u6J<%zw4LhB014QG~EqHT`T=MJ!?It+I~CgW>xzA2G_s85ezCt@okm8kjp3H#M|H4Nr|xW4~*rQCS<*aaSPR?tgOR(?5PF#gP8 zZmM0ObJM*0fu0IWmF}=B9+^#znp811?s{i^eKv3$3mS)?#LI0U-9+-+y78+fpX6sY zkh5+-1?91pE*Jj`U96Fu5EOPm=##|)W)9Mw!|xi7w8KK(gu{?^P*%?QY$EOl|8Cmk z0->P$r+X$5=LH}J9J-g+ja-!27;H3P`(TbF`K^uS@prpO=ZxfDHqb;U#b(;N@foPo zTcE2c-uJvcH21SfcQbUwPB>#-e%J`7CGjMoZa+c~=Q&?!!TC+awpwzUjWb)%`Qc?M zK%iqt`oqB1`$<>!CSo@PHeN2WQ#_)h?{(+JMKB zl-1>n}~S8NCu75qTetBxuGBk7L<@2eQqLXj&m`Gn15#8=wq#| z$9CIs>&<<%niae$eynYL3ajb;$sa`o;~{IQoe^sNm|S{y4##lhnpL~pG~t3cs;e`} z5Ulce(ji3Y04tbJAKj)h-TWYlCmyIUJK@mW+*Y4ime~)LyDRx~Q~5z8Jg|nnCZ6pu z&S49(li|l!F6)*`ceqO<>|{=OxId5`eV`sdI^NU@vyhwYe?~-VtkR9&FC*$y-FT&E z^{^tpdz|DDHc$g8L83m9R2o745mI$Q?XKM`+Bu=o^IfQQ96fh#qOo`!3K^*oElL`M z6pB0)idNvk>%hA!_>dHR7&~TN9_s9Aug5y_XCzH|F2DbwPIBNKtGsPEI+?`*Lu4&6 zltjAOH$ z_))m|M@OED%0sKO6dRi5JH@#mW*~DY*@0H86pVRrISB-&>0HV0njns)Ha%QUPbwn{ST7T5LvQ@Zt{e)pv>4kIglJ=<@){3 z@cT;Ft*)?fw{;Ptub&eqWz0L(=#}rvQkA`j2y^<8JdPx-^RAS*P~ux_zMjY0;Nhwu z*UhdF2vwVCYaDovd`=qLfhEVTHD|!;+>}v(wD^^jE{a z*&sny42OyzxlMX}Ob_~)!#6W?Vy(V+s~*mGb#aC&#maml>R3ueyYgLms@4sRK^%`!%KcA#K5Z$W31U>K)M-3} z_2$F8bHlv)<7%0{!w^*5nwLvzn)&>{L^6VfBmncZ8uQnkh{g` z7}~p6u-ZHQ;ok3P{|6ceZWE07@!GWH?e@Wy#2-QjK*;smjmVcO9Qtg;>-oG*{OUH- z;I;}S#qE^#NQ4zqy9_r&Hb$5| zUha#zR$fMPHPTIHA>kCD~Kq)qHl-jc& z)MwX34EvkDgpg-9YvjbsiE-Z;A6Sl><7>jz7>dA$g-H79fc%#mw{Cg{K!IiMX#E6S zU+d_5qF%>?lz#tuy{wc%Q`x7)SEU{=_VwxAd}k0rDb=>8d;%-|S3ps{@z7&B7bM&E zt!*H`WR|67^x()HZ-Iz;cP8-!ge=00AZqm)RUZlVC}_5Kk*XD?2WBNd867w{$6L_; zBG3O!nz?XTLe?6w4<1?fqkOVXWMthl4~zb&neb!F*$11|?y0<4)KD$Ku|P+&oH3NG zMz3mfO5>s(DxBf%ysu{7tU7t?qEYziyknK!FT%HvM>w7Q8vgvpw#etlZi$PEGPFLk z_q=mwg?sg2=9$PLWDA`*p&TFeiA>$2F31!XLW=t8wQKyUXYK7(92}$f{_)uJa~q(Gy-xN^G;EZPkx}KYjJ<}2hC9rc5ycAof(Ke!S}d%rp5VObmu6bX z?A^Qf7PN)UH1?#Qe6!K)9p4knR_>)sm%b`5S2})N04fGTBX|7$m#E&_NOecbY8Num zin^)Zs?|h~ZjYK8dtCOjXUCzWK(}Ox*S&kIXJ^Kby(}#?hJu&y`t`NjvZ5p`+j6eJ zE2(eZ6OWBFobt}n&~u?SH8nk9YPy=Ap9&}7C8XM@D7b}Upimnj=zi+-VmUd75;2pU zIYs3)2NO%xPkIRn2nc9xI>jf;vX{$>n}z)E8vlt7d+*wz{5$tQ4R7r%V5v6jtB#G~ z8$sk8cumI?d{QT3v-z@1OSlBWzIJzec61mbk)-tr3Zm8E_Tl8T6H)zzyc5_b$mL_{3Uv|RPU zHhbfn@^S{o6_5cy*N@h=6zfv#zc# z<=aJava&-Enea<{ORWe+wRdr9EAZB+uU)&Qq|px;ll=0#o(lf4XRaz8KFk^S*Ii#| z2vI0d`dFyT9_e`F`gH+O1(by}Ppg6YfmFfTfg4<&}fIS!jXfBE8Vo{^D3$H1VZp}`D625;nj3|}I* zofSOywS|8B_U(@c@IbIUYn-r>7Shlhhj>iUtdO`k6Fois)v^;4aIDPS+@gueP-i!L zpSBk9O3tV$dgtXeE9jCngg2VLU3q|c+J|K|GYboUQ@w$K0jIPzUr|xfM(6=|PQkp3 zTC&eV7UEd&LnnyM#0Xv9Y+k((;;q-Vf5+agpL+q=SFT#+Z4Pm8**3?44di*D!rdw% zDf#eAIuwdbV~jroxP*Ai$%5CP=Xis^bar0E$yx<1F6G@#9Aye}6CU;<-->2i`Cz zC$2xtL+MAL85$a5Xc*}47iFlWasTk)gY9>?pMwsq5Hvf$oFn7r=60ZC3J}2oJ-zi| zyQ4LHBr5UjLl=AKa4cVbX_IjYT~E4cCByre0Hf;rdvU^Fb`*NTH8b$jwZZ10R!{)T zOGppIsf~e%TaiMYVO2j^di>lu*55wteOX*=1a-Tj%~n=cIY>#53}^_m9fk+g$Vf>k zz-cI7RQRyJF?BV7#I?a8`(hK8YMIrz;1J?I!@P2(KhYd$t>3zJ z>)|J6EZm#T_*Az$jtGkx{}YV1{3Rd^6)+jkoD%&5|i5Wo6B^TH8Eqtx(M=#~q*c zACj%%zaCz_pXJKV@mW}`^#Ql9Z(2nOH=0EX1lPjuMZZR&|kXg z6$D)p!)Nqa>ps^|{I}jJWJ@}h9|%`u=5kE%h7oWvVG)swp`oFL`Qy1x<6V#=RN5vW zuz);=P$yKisgR!RETeADuz2wuX{GO&-_FZR z*%^c1-N)xim_2jmjETI*E=bI<0?YZd>h6xQ!otGCX(#9bXi`f_NmVH_JD%IPIw#ns zf|+G+NdGGFUnk$+?NflMjPmvG6Zub7TNviwy<_4gx`>2j4ve$MG7-l`#hV}LO2W{0 zCtrZ>W30|bGlX?7MF+LQ{&VNf#e8m=OiNE^4XI1dq>g>xQz5Y=Qrcz#N|%>-k&Lvo zv;p>$6B7lcrMm}Y)bGly6@~hpR&qvDbMrlTPifl^bQHSw%bQM|JV_2Q{1%Pv*|XQK zUtd6Z_4aKEZW@(=g5l&yUoQkrtC}>p;NFz??D4reeE5N_DzA*4uz^FTH$y0-)}JJ_ zK;J62p%v1B{LDPUZ&tQF)Dh1OO%{{5{ivwpQ=$fw-68qnPx~w_Ew5Je5GPMTg~JdS z7}(p899i%FmE)LmYEyl3(_oM7Ht517HrU!`uS7D%npPGc7bmcKHTBo8Uyp>EVb1=v`E#6t3WAAPgZM9$e0G13q%p!O>A* z!v;phA1+1EbyGHRnQ}OM`0&$(MGt3PTUuI1`Ul`mQIW}o-@Q93^S0WJwX!kxbDvz? zGM1T!2RsVf68r(rsm3}+NFHV}2wnCMhduY0UoPkEjYsj)oY(zJOG;?0a)xR0X2y=@ zO73=YavInYd8*)9oZ)CW5~G($p-EC`1au%~Tw8K$D8znrlzT|JAm=zzFfrVnYF;C_ zMo38K)J)>Vu)qHLOD3J+p(bOB`u_bp4;?xbTmP6TR`UvEt_^WpK7oNH5aD9x;J6GS zABOL2?CeG`Jf)6oHq|>@AM2%9LZxXV^eXRG%tGF%=rknTkm4L39G(2}!~F5U-fv@L zmvVDmp4LC$k$o7!KWl#c!+1?w1 zA?0yNvn#Y7?`L%xdzh%6n4teW%>|Kn?;^^?O zFi~zh`@ZV6ollY78nkm!He0o|bi{8K4%t^#vqxL9Za@=&9!;S__x%Q~y>XrFEG&Ed zG<)dEbGINe-e!<2VwFp8+=j4;z{$LX^(v3Sr@fWk7RL=WIOJx|SXl6fR&;*;yyV!i zV^7Sg7Ql3B!q)1qaH0Nquy2L?ZDi0We>#yMB6}@H5(7i`XwJ0K5%rPWxRDvMas}{F z-sTM63xw1oUP8EzD)?mYmv_#MIP4>vDToU zY;1h;@;t-C!xVSu#Pjj-QS_hLU5t#3EZp&$Vm&wO0wbU|aiOJzJb=V!!lOy2I%O9{ zAF+P*5{DxX+{EjK2J`3+#XQ zgP(6f6>q_R2m$Ma=q^UDP^uiUwb!Gn{h0m^S*j)L8xK zV_?|^72!iipC_h^xsV8k&#yl>*v3eCRasdI1@TSL@fK=YYN4I3cUtuHjnGh`oSPLr zAxGk~v$r80d9@ecXcIIkUvTc>4M)S2QyYhBUe(txha#$?wl*7*%?HEu%nixMO3`Qs zBYaoZ^XJ_mItGPT`FEBxE`6}1uAM{UNBgbGjJnYkT9s`{`|TG_?Y|h^4kBt|d-|z! z6N$B__wY?41}XRSyMCjd$=u|iUY=#*<8y!CXduUU{rtl^S@I}+u6XwvwOE%Mq5Sw) zc!Cs~Le{<=abux-WPE*n=i_FCY<3af1lpVTpy&zy{qnr&Z~Jrmw@OOBfM!|>#Nek< zweM6^bgwt8nHnF2gy1U9jfRv!WI|tOu3uj^BY%~L2U&uJec$QcchNDnx`(FYZ}+n< zNLQbSl=x!E^bUW4eBkUQ@^e!R*FDFDny`~ zw5axKWUO}Wq5(o1h?XfMl2G-K2Ho328fGzhmG7QDRvTThdCTZvcAAT>i=kHr{$|R0 zXXc!nNz{VdG;VUgQk_`G=?`sT#BmlUaCKhUQ|`c}H2)Yb8QwhIXS8%DNpq#Gz1H+X z-Mj=YOt}Wd$3i5i6B83rsL&v%ohN)}5XVUL=~6h;k%0y#)NMPBjQBy%@Vp_U-u0pE zMwa7fqFEdKzVfbJ$AOFuefzd7uA;}5zs6cokrERVBRX|JEfMKoN^0s3eAGQ&VZSs* zT1JM11OUP5@@x#=L;4i=yLa`yzYnmoJ=7LOZmjp<9Oup(f@;dmlPJ-IMMV?sN^B0I za-L|PgOvEt*cho3nR$3Dt&jTo`igGJkB=AH6}a-swbi=?goJ2`A9}j*4<9WPyc-%C-|#HpO;OPTDk>^zhao=q>RH>7-UB%hiaVI}9kmm? zLHjfN{l*$u{paH}ghvuHA5|Xo_VZh;q@={WY}o=z*10d-aFpJV@S`8dzwliUF4-$8 zDr#Q?iVP;iwdmw&^mRgx%%UcUNt?9t-W`+8_HC0+!jacP~A(n;B10%jNz7AS6Oo3)6-W#Nh$w-0dLZ_`?6;_$bs) zS4N_=r}nR5w6U>?`G!boPg6+ULtXXMWZ>y{ipcm8}SGF#?Vs~Gq1-)}St zOArZ5Miea?064?HZry&P*9Jb72nVMsCg+31hA02_wJ+ud;VW)rOQ;I)qfpi%lbDbequdrac? z5+sT24rx}yb$&@@Vc{yWW>eQ2MtGn z>hx}zh!t4Ad^ySWHS(N)q_tJ-+P!=Anl%eAUcAUDal)t2B08Q4@x_0fciv%6l>LnH zzQfd=7vgrV*%r&O`g8a%f4QMBNclc}a^c=1wduCBG&KEBTjn#kQNBWikb6Jzu3{uk z*TTbry35%2N7;0jC~XrG+CAcmtY5hY0VcPJfdVyF6{vBuFf+TO5yk~g@fs)HgSbx> z6&0mJ*$PsRo ztqBdbLVtl9&bEAc5xjp(!OF?OZm#FS!?V;Z*R+w=W@ie*X=oYka)>cq{x<|+w17Ym zWnBd<*EvU*^i3|b7ZMcgLO~T{-me=5C|kU|1K`wOxlPw^-V_XOZD~;+q+PV=ipM=E z%N8F1v^u7_q$HA{TF1tK%=_lzv?PCISBsMeTc7KQJmC&(vMPne z5N>~W`rQl2rK;%0&rDC3FA{Nbbo4E!W#W01@-{qtr8DZg$<0$&HcCmA_Ez0fsR75v z_`uj1mzC1i6tw^DnT0v#nrP>zfB0~s<(d7%qGt_{bnm5CI$gLxKQo1#p=UBruzyA~ zSDc#Jgpam-aA!Hfi8|ZnIjGt8J&i;-UiOBAn>+FBZBt!{J$g5+UAq>o;0JF_U=gWj z-b++%9u?xx0h&buOgU^z3H62dXk1)ezy0fXyAL0}m5^iGv+r(2xa@^x$Syd_k%d0| zRsC15t{L)$xvM;|UD)$8D0(9%M(F;wbh=CQdzg~H6GXF0l3J|lM%R}w8$?NahW#z^ zuExk5d*Xm8XlPpkN{0hm6YMtGCo~PF1ABe0Wvk4A<;O=qkDzWs?>J23Ei$G1dvAy? zxikl39tJtkFE01T$2;s9J45qarhFHi)p>L{T5@U(lnCpIA){!$WCJ-nAPe0&NNck$ ze2*IfkWm>m#(m@VZ7#S6!C-cVMNo^KhbIRlu3WitOTjJAtO+Sw`5QcI$;PH8h8~nA z9e6$51Fzx#5bq8EhkhSqsEzW>0l1s@H&0q7Qj+9KezJO>wg~XEho%YhK@E+o^+Hk! zNsB4+KR&QlY0+uV;LZV}dA{Acke1fZqaL2fA9%*&@9WrnZFkg$H9dT0L1nf|v9qUV zZTZH?urOZ~<(-9|v`3oZX(0!Hj?N@oFHow@VducKHg`di%+=%Vc`g$l?^r44%N+!u z0`!c{LP|kF;fY1_q0N!1f-g`6d)ZoAilO+88-1`+S6BCzgo$sPdegh&h6bJB*jd~e z`GO~JBX8ckg!G-k9~zOjUfiUDQA}vr0*Kl35k>0g4KJkR6n#HW50g$>Q&|g1-*cku0=)$L3j7XixDGQ(1ZY)D-~SzUJbc+moVmlq{zA1jQQF5!9e0M6B6ifY^6wmB{*ZS zxy<_Ys%&h!?DF#Rz3ut=L%FTlXK9gm7JDpO{0@X$+xCjYgAY?ss~UyDI?$DIxpn8x z=|^tp-ZtjBJl6pJeqFdx@07uX9`=<0c>sn}X@oI44|Noh3qz;;A}*{LtwfWW!j(uln4bd!Sjcncp@VtFni-O`*qN|^}(lnCF0s~Bc(ySrHFh%s0gq0 zKLqXZaV*pDJdz6Fr(|&ucx58m?pLNHzZNJfuU8@5oA`h^6qwy zSa6V(9UQWTX3!*ILYR4RzTM?AX212d z$C0Xcc6G&!O3J?h4i~R;^Q=8Q5o!W=jf^KxUg8}ML8UwT{{4lNlyhH>gv;17pbAw% zEYrZXNdE=jUsY9=(z7 zvKTNtK!qyV0&!gB0IzK>+pk?AcR*szzlX$j8S$ zJ^gG*gPMABn&kQG0+w6?0uMBEyNiFt{R7mUKaM#oS8F#(UHDZY&=@kyUgJ4&%I(Vi zXe1(Z^z?-Y4c_KRn2M3%8J#}881(?a?cl|(R`rj#s;jH7-o496nLwsfUe_ACpM%(V zW17igisA$9<9L2bhUr@Yo56jH<0%B#4(c8`(gn{*oTT-arY)4%!jE8Jl;8-idz6U| z#w~dlNAK^wr^|yyNQJ>XbO$~Ly3ic}TNP{K)Qrr{ui%(J{-afq}d1?CiWNE?v4rGOQ!*yxY&MNAV^gD+2o`I8I}R#hsELLTX`N zr1K+jaY)g;U>Hepz!g>@-vyV&kL9gDQIZUR4%R{r_=iuQPCqJbZeD?G%gfW#v);ZA z1e4Cr&X_!FobCgcPLKZJSbsQ5^5`TIBY1wd4iLL3`=(kzY)e6pl_As#fKY|pwP;lo zIELotA}1bImX#HP`AZcnziG!7<~G0;$DD^3L0W#z!WT$+j5~|G*^>an^217jRUu`J ze~%`D_YTI8&Vhk-3|_SRB%f8@kzzXg@%4@a2d-(joj7sA+kTsj%yBg5dLlMz?!xIr zD$6P7_~e~bO?CB?*{zf)0OS*(rFf;q#>UF??!O0%F&^$JzO~gNEJZ>7>_>m*Tgh(< zE>aJJTB36ycf{_0Brv~lx#HKgjC=xGoocJ+Yaoe*b4PdnE`n$SuP%HOA-4hn2;tLV z2y2aWWB449iF;kXYz*d%S<{mT8&NyBahUuNleB2sOq!nP);T_nHL19H7^WSz**wOc z2Pg?V9}Ui>m$&!VX)&a@bWBX8KrX3PtXPrT6z%u;@di|zNR()+MzGk!7`15Q6LVIS zDr*=#GE-9v@h1GiK74wliEl0GC6ISKG-REd@iaYM5)Q>1A>~jOBQh$yB?ic)ClpP> zsc!=S3ge~{uV0G-`tyXRRps#C7N8Y%>dg#&Ni|~90 zr6U2s5FPm(9Eg}cV3v+gcdtN6PoABttE=?vd#9tL3;=#3Q&U>B zm^Yifqu^Tb8W-oA@swAzbq*^4#46_`qk#9rWk~2Sj^@4c+;nuJ4M&8Uym;3MIYah(>v%KH5I%gM>&=$F1rHQxQ|gam(cp4iyf80ou`hB)E`Eg}>x>FrNX zI|IAT%E~IJsbO6uW2cyD**Y}+y>j5uS)^@9k&8gcNBi+aORf_K954Qjl7RuwsrpAE zVeNHw?4(gq_fRJl#R~~gu;W)16`tPSi%`=9z=N(97N*13y8D;5h?=+MY};zlZl#m#5|GGO561^gG%A|`n9Sod<7yIX#>mH^^&47`$+w6 zb*Zm%_kUHcakdLhb~(%^dABvS%6Yb!q~np`|FVuFdnR-=H9dgNp~KYK{?>S(@+0Bg zXgQOp4L5TvtXkA}jQCgAN}>7rPP}gFqxjx^{u3=U5|n$6y2hhVz6FJm!c0J*TIELy z=lhIYO6;AOz>S+jVz) z^ZOAzVuWPZAI(thR$M1=&*8pu+y&+n6rQ?sg)d%KUIft@9)W(~j6V z`^sN_f##iDQiRXK92%j?WYWvX%*=dnXNNjHI(>FmLz^mb?<4;B=^g}aX+uQ8 zD~PvuMI#8vsKB;uy0_}le!G`(Z4c|emmv3OiYh3CXQ0s+OZU6ZcfXjc?5L4AvlezX zX_cOlvCG;zMFTCT62Ra?2#BkFkFU8} z@?2J6$~nvz&GcTqw>Y}Ukv($}b*^5;wcl;Q-RrW#VcyeI8n zT1*1n8S`JeAGkP(vB&kYZ5IKDFGaAnhQ~%WMosx(yREbxdkVV&0k9k#Kx*D8)Gdg&pkpk zgL}C$mk`LNZMf?fp#Hk|G$|=R1RMDOT~cx`RM)1*VIZF4y2Sr5>R+{JH*L{(+-1yv z-sMj-M$3(x^nL!%yKg@q&9AHdOYQr=H9P?Uk*3ij#S-mU;UJ6FO2bvv4Vv zJ#-alB_#pr0q*hr^Kiiv`}&hmB8x_pt5eP^ue6jHUuVZB0G5nzyr6Ic0t94JdZ zudVjfocB?9G^7dopCI*oBieJH_^!V{v+oi;b6-$H$NbG{mPnox>7Jn_1+JXyFP={k zx~G-v|Mu-ajq-Z&#ntm4xsH$YT{Cx3QC6;w(f*qp^sgTx0pV4a#r$I>MpAvR_9v={ zROA<`Se$TiNP=X~%d{Ouihes7LqqXvJi-6Fvs1Z(=6_b<8s8El_ekCTUz+k_Eh%>& zRqx*&PC70Jef}-`HahP-g=~H4%1yWDKvhPkkqLE33ZSf4J+@j>SA6z}17F>o2k%-4xR!d&i(b6pW z&p^rv-%4)%PvKyg{5v>sWd?|>S+mBlGD42xjvhhCVvkCEGmu9OaMHJcve7L1c-`8y zi^TJ%(=@&!r@pyfS2OmRC}FE2^=2&xJg^JlDIm{41RxwOCX4xko1d6_g2u?LHwdI| z69ACtm7JVDC>*);l0}gFp|E(-(9lq;7QJu2i4BMiwFqjB&6`l@|oGL=m`8ANT!}h+G6>)wo%9qVefz4kX4i%JpvO_Ye}Cu(&}ECtwN}fdSX+ zBzZ&5eCHXLqm8X?(W`5#hf!1?2e#nQ7aRI6Nq@VR)WGeczispSgOxk}uALD{>_tc< zasCrYet9rQ&2QhndGYmOvMvVnEkR3`gPCB{9zJ?>aSujJ`6MN4Ivi2fY!Ds)(%jG? zqt=OTQUNO9R4~`Hq`XIh!^8ch+MQXAOZ<17IrHc(pF@;gM+pXht3Va{-1>Z+{>k;k z{rE2lkF-ToPdA9MKK+<4ghm)1_zNU$s;$BME_4S-b#!)8Q851|_O(6Vs%yF2(Lc`M zAKw3`7cUdZ&jeVBo1>j_!ZK-R$BG&%7wOcF^y|@2Z_0MuREh3HYQM^75 zkSiJi6h*>B&UHG^n(5=e767jHA;#m$zG!Tb7NamocLhMnqGZ&Ja022i7aUXqHh}tl zp|=vh>W#7!gzJMDG*XbQ5fnU*UKuGi2^;*8t|utAMQv>c+6}NWGQuG=O`nhkim_J% zAmX9{luIk+9BbLsCe^p0fYjCF1`cs{GzBQ>hbsQ-@?r;CHbl9Pl!DB4@6F) z;mLpZ;NRD{{OAdF80lr97}h2nxH@w=AC zamaB|3A+fC00IeUJD13f3>)a{;vRtW;H?}J9&Ai~!S+UgJ{3Gxkc=r5a41MWK(!^t zwA5|ff4DF9|Ii;#Fwx#zc90iIfdK`uh4+VCb@DzRE%}$t`8Memec>(=GNl zB7{-ud0o2X8+UNaI%kxB1WyWHvE|grYsU3aLhDd@@Vbm#GdqHoCblow9=JK=Tl+|t z6$Q33GWv~b02wjaS=V$ZQ63BvcE-lx@85SeB_Kc z&G(OLHCubR3jcN&e?r;uT1AJpjeOVRs`JWzXIbvob!L>GmDSE(PkpSLzRRH%+&^>! z?xbuPS(9LD(T-TH7V)iTm@ImzFfdM~2h%d^^6E#QS{5!Gd!TrXK z8yh$9^It5iU4~j#C?_L5eJ7f!#ITK;001zvvKsrwUGstuA`pRMpVq>dd-v4v2B`lf zT>AoB{vX7XKS0vbl@|o6YifqUmZUeKkx*CxXl)qF0_b`Wc&0&`4@tt~k}EomBR&FD z_(;?4`(-c(;@YCmfG9_PdUbW$zR|KCTVRQcO<*n)6AnA??5%s0lA`fMAEO$;R_Otl z0VCdhD-Z4s$iOQ$wKep8;8YGdBC3JayT#~q1mm9+P%@NAK&SRe>&XAewAlILoilgG03G1QjWDe;Q%^-yTwZwcHfLN_; zJasFMMS7(12)D)E@K{6Gx}$&!u8WOBOi%Hzzm~EwECL1eK>S~;z>ML8mjIq8qk!Hn zCwwP`LZCGd4-aclzA@yy5&_y1?Jta8dgD+=Awr@`uO44l-H%oZ@ty#xBqSsVEsww@ zXz2lyL&m}E?BcSvYAh>Dny~fe-3xMy>d^$483!QbAxzrTCLUb8e0kX16qX%q^9cx8 zM9IMjB6^m}=gw^<#4NnnZlIUoPAeiQsd|3iDj+`-lxE~O9k_g!UEeZ7=nV~}1=fwr z#{h*G!d6URmKyo4GYrkS)}2bzSO7qACj&BIds5sH8jax@$Y%kT0y3vU516#P9pHo? zPP>SN>{}^gM@On(Y=^!U60!*Fa|a+CNJI!txUgC24$P|M`FVBW^Iw`UbbvM<#!a~? zLs+y+$XaIT!G_eIog6U-HYy+@vUlPud3-3+prfEkMr#tp5kf&fU}LwK8~5W9Sb!ECzl?SpNNRqM00G9L;4>;S+2G-Cji zeQE0s%3l$(S1{8=@JJA>$a6!iAbrNiQyK^Bsw$5>F}sLkBCvh?3ix$U!e0Ogu}iv> z82EQJM#%f3h20`3oNiwtbQS%5gs#H-yNOS^Jx|{kof20Z3lZWM6Z^|SzpkTD2)P3n zTHQ*vpf!&p+r0)pD&F`!TWxf-7_X};=fd|>7BA588Nvb_0YvQXNethRRyJA_$C6+7 z>Llrr?4sP{cqLl<$T_Wh%GnVIxwPU`cfgZ898IUhQr*WeA;c2JS#CmwkWPU{4cpU#gTX*P_xW*%9|u*UxBl@8(n&@>753yy z|NAD|C7c?4GPQLGX7Co5gM!p!X%_T+{CFIR0O?(B{DR}11?&>@Ix1Apkh&2@G@AF| z9B3qo!7+h7!UvKc{CF{r7C9rYZ*8KUZ|=mWq%dR65VKq?6$RW6>(Ty$q;ZZ8t6ZBy zH=}B}bgE|li{M~3bX#e0(AVjlM@u(JFWUnXVr2A1zMwOtbm~;1 z#?4cF)99sdavU)W*fA8Qm*>ni{|1}0qXT*5z+dsf@J#==@88LMA{>pjbUVgQhLHl@ z#Q4y8_&E$3^THD+ow;Fuy`m@Pb-9R$2sd@z(*ulI_BJ+EVbO5BJV<$O8rZkzyYU`4 zaA2NJ>8*62lgt*1Ut;17Y;0`AWx_}nisu{?WsjB)Q2rOq%}3cB#6v5*``X&tQqs~y zb=uKQ^CnY<#>_d-Vqyfanq?_`SSiA^{aYpq6OU{GEw3{l!x|lnVr6u4KINi6ELa=$XSW*E-GWrk}hrc^}Ow%oHe74dTN^q-zfv;K1i&CK!+x z_vev&h8dx_tz`TGV`m`-qy6h7B|+&5XD-JX106qC109!LsDHe_;kEbzlg}LxZw^YJ zEqn-4G|$P(hz$(o$**oSeg#{TQ^7UItX(v;;sB=gtDM1zAiWx8YMOGw#+llN{)o{t zbau>mdpkNbEZ<`|mrquf+Em|bB(sLx*>d`1%uQ|hqzg)X(csfycg!W6hiLpoxVMK6Ehp!v zx7UncV+>5432f0yx$ymDu7sb?8Umo3zV*_4fbQxd&_3TiJ*`tq_9hIr72lRLO);rh z&R?L5UOu|RB#Qw@q@peqlvHF4F-W&=p-hoP8up^Hk_lZ$5xr#htHKt%5|pn^FGc|7VnmeJN1_xY!!A(5RN$`-O-(N&VqgS| z6LbkB$^hamh7A01$y0iB2*3z9C#n>ea&U0?b8cFI#K;32V8Zo-8(BprTv172kU%{G zR0+iFr5Hm4gTN5IM~XW_9z%XQkDQ|+TA4=_=HR!;xvqMGXp9LqUeGN)U`m$lc>y^8 zi*TrxXN=-W5Yo6a!m&*H$z)J=(Kw?}(11pYNehF(RF*R8*3GjSBiDk1z3}IKJ!bjBNrFft&K(t(96{mdpEZC$qa@KN-SP4O8CYY|1HA%jG6VZj z4x>gSDMgB;-57DqZH67;l|mt7auKpzAcca`w;TB#X|1AX`r+fp1r+k<@%Lno?vv?3 zms9g|%7z6L(%Hp;9wtmmz*|$E@<9KIA88sMR<&-XJZ1zoaQDXanXf>GnB_1m;9k9c z0LK%Z+pM?Gz+VHINR<1v=EFl9Fuq9xPR?Z@00=~$;PM|wnISADR-&#jb6@9qDJoZVO!?4hMn`4)R?8OQg#(!0W<)3^GthSOAyE=D zs&^-yKv9w^zi}{uEjjM~r@28H>-qUH&7Rqf{}Xrq2kzOp?icR)Qkg2Sa#>x63TD7a zEKS)GwpK{UPl84Lw!|V&8pdUBy8HU*G0}`hco#UR#b`alNH5Br|GM%>#u;;s73CiH z2nPY2M=~xnl9!*a;5hy@0Gr+RzmmBF>KleJPcJ#42X>_JItSz)o6dezJz!{uq??TU z*nMr`!db4}?sV1!sK!!|lVFw$DTJvBPgl!j_$cfGw=iRZjt*L7Vsx&A+UUWOo0CIE z(NT#WFY=;SQXC*0EmRTR7}s5|Gmex2q+>IXeUKq{^!5s?rl+MTAsu7}r57&I^aNTefmex+y*IvV0S2&7VmgQh=RbT z@{lMCwVfM{7t-G9>0~cDP64_Aom z!7Uc$orL#xTvRlNT7WQ}5GK;r;$9XXD7nDP%ZpnkEFDA|SpXAVaP`r1(5vA zh!$}Wlpzqdj$`!(rrAmnR@ zCl)J8xTBK>p!-iJ?KjX}b{KwtO-{WKXEmF)CmYopss@wSZ{AdxFyoQ6KYY9awkpc8 z@YqM7%`dRLXm!{*)Ec(mW8>m{B~mgmLys_>2&Bshwn+2j87AXSf?~j44u2bSk+vy; zrbx=7NxOScXzSKPuNan6fN(z8$c!+-f}FWM_bjDgr9joX)A@pA6MrfoFQ3CxZjkB$nUJF6umG;8y z@sk;!L3%_YS2_M8rmC+A(-|BDwoh(9w`pcgrW1VbCX9tWc9F&y-s;_fY~`R1HWDto z{b@27(h1%LOF6tNCZlfFFB!y~CX7iC1I{1=W}G2I0QO)sxyD)CMN+8r13*Y^wpgOf zzct;^jr@Lz>e}YvO&;@|mlGS;CQn|myYXOVtucmINJ*iAiQ_!_qxbT`>D8HV&2<#x z;d=j@3otqaE*+taVdz{6e&pbW0Sj~v=Eq<^^|fTDCp-$6CxJ;!gR!>Z1K4=ze6WhnWTZNBIRv77hr+?jq-S!j*FsCe;exD$^U(eMp%e5n6omWgv&}8nZakz zp0(+H$A7m1k?K)7SM8PqZ;~u5Edxcg;(GN;fVZ_c0}5%#*0aylmoq~>l+o0mM5x49 zXe`W*o0xcq8aUFE1O!|qZ)(AExalY?-cr(yT=Idk(Rso;D?9t3bP(bKOmlTG@@(M~ zuj@-NV+VvT$(jcVd)4ePIJ#B$ik}sil=zl|Y*a0i-0#jqQ5v(cfZYpmCw#}Aw?fQ1 z7MU!drdDZ>+^TN-Ts=Zo_tT~m6GNRbvuU93RTJZ4iE@a_Gs=iM9h!NQ~L1e7jFtZrw-DJo5 zv3}s0a+@)eBMiccpG3sNX6z&wYO1a#JV{|Gb;1O`al_j-R7@XL;$t1BT3R-=Hg;(r zs(g}cJ`;x8PXI2OR3k9<2MrSa*dEF>j|`=xY|ITk$h$FWo$*su!JYV7q74NMnCBqq zo>DgKM}|7S0{r#mm~v9mt*Ke6eeirURq&LWJSa%XJt#jr1_zHla7)bBw-}-Kf!&ml zf)Y=2Dbk`Nk|!UgV}{%SF)sIJ)p#c7%9ZPL^4#X~-m1O_#iRQ4yB%caykU~YMn@T& zA{NAgh0O?-!{hG+-l=^HpiuymKLgWnUduu}Jv>HE>8KP=m_*c`8~^q#acH}U@#)j+ z%A;JzKI`74<`a#XY^{5IRA(?=78_@djJ))~Tz$XZE}Y+h{^2a7@tfU!6FL6W9{-?d zOkA8_mhguo^QXD5Z7gUcDvpsK?TpM!sRR2(KLS|>b(O9MYjXT~6?lMTO<*1CwX0X% z5z4r7SM^i@Zt`yXe#raOp$Sx7k1xK3@1|Y4lDQn{mba(p z&g>uB)JarP$Q~RsRc4;&S$BFQIHP#%e5xn58vw>=VkStO2j8yO+a+g~CDB}5QLz}a zTD3<)Wvr|QPkjk3D=UlX(9u_y*1%x2a^#jRTb>pfe(JZ}&bM?KjYiL-**X>beC<^z z!EA;)b~uw&BNQW-1+#K;a>H()Tb;sJ9lXmobj+SdkaGz$&$Y`rEL;oixC{jNUJUV= z$iMKA7EXE**!$`&gFsSw;zs!iI&K{uqvBH0EO|~7c1v%UX$>d}V9rr}vJy%>Q2PRZRKD)_go97%R zZ=J-MG#N!B#<6fhjK_7Nvx?oW0Emn+@{c#8RWHZDn7P^A!qdE6M60sNSi|Z0<>7n9 z5fa@@l>djl_l#<4``$*Qctno{u`5Cp3xXmbC><;aB2C4HG!>;oK%_&0iWE_>ARyI3 z5eq222Bk$sKn08vAQT}&fY1YkB=1~7Jmq)(<-PaI9e133a16svviI6^&GO8-pC|SG z@9s#Q;fW5ePCoo$65l(UO9zhWgSv+QcG;?3H@1dpN|~6Z9%b2g7H@fxQ~NSLGRUSc z81L&FN5kerM%JOuPT?*Gw9S#@2(%>5FtlHpO*RvP9F`}&H;5$65JBZv;QXpINp{># z^%;)Of#-WpyX3RK0zo&yT6;+|kTHAVxn_5ZNr+r31PEY?jEIP?50PSSps>eD>Y-u@ zJ{kEfYE=^t5U;l+9lWTGiC1@$g#-o4D&sHk2zQG~3ovYvvT9%1CLHm|qFn&OQd@j{ zyL0dPqLQSCY_^x4lSn%1r|E`b@Q7TWC-v(4rd4x+5{+tS z1nEe#mTn{ATb0>LDwo5Ip(EP!cHrRqk>@bzf&Y8F6}XmEP%M$ zswN?DAx7bKqj=GP$}#=QqqTFhbM2ITbry73yzJD!9=pcx*a~BBP!TyC*|V%I`_g*F zn>9i2=VLJ8>*tGT?!^`z>XRMIsm*DshMYRExz;*MEGe7e{Sjyo*P63?PIe%1JktI5 zP+Kkm-rm}FVDB{o9>#=V;Gk2kQ5pWA0M3zQlH&&DxkPc;m_O;$hbTk{{F$L13v`nz zp(;afPvtqC)zCm3uY>W-A~E34`IOPTNWST#NsDESgVL5NEe#b!YkeXoCEn}lh2rr= zm}0ZsjwDq#JG=NNOPOiS(BuE#fdQWAdnwWS!NyT?%f2yQ1wfSL4p}Op{x-c zs{~MGHVqXbe)PvJwSZ4|tST8lK*Bk0t?c+z-VV${<*+^$;8Qj_8jpHn^@K(GJQ!!h)#)KxX%BdK zM%l3t$O{okEEZH61=@ismmYn_JQpy~FQ)!0!Qd~-3UWaCG8hqnh5{K~7dIVh0;mV- zP1L&+?-pzkhsV{5HK4~VyH?sXxmU0(5?53uBKQiP zHP3!d1sIMNpL4xoIp}OI=EpkCv!$XYIxqRd2Vd zNvQD2b#wr2RvO#CI^g0)5sUXY_u+!a)F8?DOKzj>GeL8p$YPbNv3i#=d}zuYaFU_G zVWMM z+!ZiZM{R#D85jd20#|W*(m7A*#71>GQV;zKC?hE;7QB&X=8Zn8#Nq5!#Xk;6(rZA=^@LJ+JR86FB=pPZ@}X;gtxuj z6>C0gxlD;_hLV=KwrIJSuTCFs;S|7v$=4{+pUd<;v+e7P4h}Uk3|{H&HMCdS#R}-G0Q9KL}*}8xfi4uH1Y?QOe+Q7#1-O zIcr=eDk&$79acabz|}mVIB2r;H8cB8LCG$uuh8btBasvogfj6uU>KFqd4Zb{AmnK6 zScq65fgPyH)x7Ur8~9$KT>nn+%o(12QygXqW5N~j`a*-I5|T8MN}Usn<^_I3^WHoz z@Gi?m=ECyJ+&lYR>7K6~iiHuQpT3X>onW_-5aV*!Bt)l}OQKT{j=tQv;r&@#tfG+0 z?icLnv=+G&9E3QHYbiMiOkt3RIL0`h4Gn=xs4S!Dh;P}%wc+^VMv{?L+zK!Zsf~}0 zFo2Mz5>d<==X`_E6T=vWI-dl+GpJbCZ0z@j*?^5(o*UGA5`aeEtHrIT#@m~67Fwnj zjkOvc&=v%9{(3GX`q0h^?G~N;vV6Cmo(n=)e7r^duIV8si+heE z`uZE)1=d`X$N6K3%{GExAF*j4DIu&ug!?*iSiNty zmLEBA(-U;rj=8{CiTJ;x=@3DUeOmdjKe``2Y`-d1{9!2vc3KV%r?pyl3AP@uM}FbE zdwiL`!r6M3H8{Cl7|GUZ})kjvg=Kv96m+==t*>O%{UN623uiz3QZA z_ZkH;6aoNAI0uZH)@fmuC&)1JmVSW^RhaN7D;?*ClZz)LRFdz4%ksOEW1dPJ4S`(o#pb;u5yp-%$I4|9 zxH$W!JQ-0@NQ-xUU!6+<)@)&z@}ivog|Y4wblu0VSO+8bZ#@Znc(s* zR(Np1_vMX^YjpLSVHd+A1@^kKqR5zL zeyX!$fNvXzOyZ+S!jBArXz&%WaMsnMDzzQJY>$J6bV0<>LK+Z7+h|*=fkevbJL83( zfd3oU=nx3pp!9DrS%lID)q8Xh*s$M$10RS;x|t&d!5^v9u`rqro&ziM<If*I300@>HVXP3Jeitr{6AcqJhcgJhiV5y{6=W>Vt?KU3q; z;DOUhx3=B`q3o^uqxX1?41bn&()ZGRd#?BT{943AT$`>8ob|>_S&m?wc|dxpHQJKE z8A&l-%3iEG@-b9a7hPj@Cp3hMH?PT!8Cz2tl1cv3=bG+qs*};iol4-kl#`L-%wr|> z3oEP)&5Asnfii@+`Q6yAbWc6FeyehJ?8W!u)tx{Wr-Z0!Ap!!VFb)*yl%aw#ekmSp zIoQTGlM)~-*VOel14?+EM|8j_Rn7-=ox8#UucX{>g#>M2O?Q#GRIs5zAc6J%$_%ys zFfs*uzc^nFn07s??aXA`>6ONVvB<)ZVoKeN7) zbB!WxB(|Q~502CkiG*|X<|ch?__iZAXJxsa^M; zi)&2l#GZNxeu~obgs37Y_zHGB;^2+WOx3z%@W|dB63pyP+szRJc0)Qon?8ngUVtDp zZ}So63Q!-oH7pN5g2ZNG=rBhRv_PupCEXQqYg7PVa{Zm{1lSY{zd2@B@3z|k1V&kO zMNh=L4#>S-nmOnP41%J`6FSWcf>=9z%0Zk8o9I(r*_@6(|7H3?(7}}_;}A(dGRM(O z=)Ubn3P2Gq8PIkn?d2Cf=4n)TA0CcFjOdaA;oFTeHtDOgM|gb2hO?dHY3LWWq6{Vv zs>(nU<%(hD6X0`PrpqEw!ssnvL&#YLPlP%*LCBIU!RoFPd4~!#M7vzLWfO`>&M=U> zn@sy~zwVVteJY!Hxa)Gr*e0$Ju1E&9qk8sKKd_A3xp+eEKM3kXnRH*6HtIx9;6~Jd z>L(f-MN1a=AbP>!_H9!v54m0@st|0D}(ACY%l|ceR1)=rK~?Vvy*G;1BPI zZWAxX?7g}g2~#xfq?xRN zx;qpmqe&pFaW@ZXvw)~g->t-Aa&f=wAPA>C>R_#NE*F%PCG!>sZgM#=UavwGE!xd6 zc+8Wx@Bv=&>tLd?NHm~{gMNl|zl%O%&ZQF^?stycnX^vE0ynEOutZk?OT8ds;8Oh6(}yW$~u0PC-*%H)s7gNSz<*##(&2t`wBqIYdWT1JT7!P_wJOv}<9){ceAy~^H0RaQGiSw{@e7sc$X`D95o0sv< z6uAvaR-B@XWf8d0n@~PvUs{v<%`#?OfZL`nM?U%D^a?~b4jqdpoA5xv9X=fINu)B`TR{W8Bu5K<0n0rj=qO;;cnV2IS&(~lb! zd$}T!hw4!nN)fo<;48OS@%ya^B{obcRSFQs%OV^Q&Z7W%Of(&R3Sk~WAY7v)0$C~| zs zL;7D9Z~082D~2!naX_l4d-&#oSE_d}7*#2row9kA@?o5B&(rHnB<%I1YUH-OxV8@e z(xi)!=v_Gf(EN6^N+NF4`>Px8Q9%CzDZbnQ8K(83Yu}Z_v*$hr>Ar&@=IcO-frRdo z-TnMAq)UdfTH4Namp<+t1RE-(bD1!cwmH&dDY`>Qi2y!-9kfNba_vNz?;ls7KhN~q zQKj+iVwEH!IvmW&Eq`%ODqqxJ5v2gT&K(Kx%ss zT7YI(Fg*lS6lwrTxJ^L;K#{`3g~^d&u;@!3?5K^Ryd?L&Hd_zpWyq6q8Ou)JMQ|@$ zB%ifu$bAUOOhMo~OfOplS5H7bfAEa}{-u#SQWnb_C|wZf+YG(0j=Lc6aBEFE{UQ_? zmB6YYjGg=#*bab)4F`{;Dj*|KC4wM8m@R?#MVCP0plV0q4dXS?iJIa`gFUAqX)+`Z zcKd?ShZuP&fJ&Ev71?-J!w?se5xNdU`Hv?GVZ(1nNK6_-)^~Em1L1Q(dSs5EK2z-a zHJ2cX$?}ms@H;$^@O9_oaU@J|bo4xQV4T~7#VSvNrd$^<4_P>&86p7n2cpyOy3q^s z43|*zd-LU@9}pRD8i0nwCn}XXS}fL6#6aRlu(6Oj4{XM*2)J>jtSV~#4e7Tn^7e&U zHI5|8Y>_+F(0EK-VRf7ec|2N~^XQ@m0a(}4*f^KaYk{Q~aQEUotBeCad{u8jVh3`O zNDreDh8rb(OH%d!mnciun!uFnkUga3`#?#*IHrl*5Bev;Jf$E=3}uR$FvBmBFj=3{ z{+pD?o0pV6xC-Zn<0mU1F`?Aqk#GeAH0s)~VyDjZ$)0o{9*Qhc;iaTj@$t&;jy`a% zAr@h(Ih{-xRCu1@fdmxYbl0g&e7~zzoQ?$bkn&OiZB7T^pBs77f*_~Wb2c{yiU}XE zwHpv*UZo8CAlojhE%{e3e`9&SVc z<~S($e5@Ngu8f3~2<&t&Ph-P?g33;ww}2x3r1LvX+LOnj*I|NcH$o$12s)(*BSnc; z2ZA5-w!G2O=mn(U)tNU}Hn@t{4xfVCee3)Wq>PwW(DO6`w+_^S;3AZIS?7&baytl9 zVG5862R6gg`<^HZsf3WIdfh-qrqSwvIymk_j7-&T-+{fCAA$QMq5TNTJ%j3tg|sFo zC)-h0QUqYixYVlwYFiG1qG3+lvg9; zfn?5CQ6yTqA;F~x^l*rsUsq5Rk8P}u_);I?eroo5Nu##K5}-2antG`qZu>s)X!Sp? z{{{Xjy3_MsLjmwa04dXgAWfFDs*tRiRJw!qK8S(f%3)w1%N>&9E`@uS9@vbBL@{Jz zsDfzANV0qd$o@49vyjji51j1>GvO&`AxHuFd?XnGJXV@$cbW~|i7ZDYX}V{%UHq!d z63({-wh>P)0|pW*5d@9`5W;sLyq-f6WsgIZBsfUYD5vRS)duZH2oX%W5Ca4g}0beoOY>pq-lp_KaflfWIAGK78i*xZFPfA0TRh-PrR#tNOTs_ z8vcJ1g-e9FKsWyg%5srTN0;I^h+Q4`(tR$VLK{^;Urd|QU}9%gq{&6?qCN*)2#&y_ z@bUy`Qpok%!RUh!QYb+Sq$)NT+5l_H%T3n-)a8ySV0hgP$fShfF*#sBiTw&4n0A2H zZHhpWD70*`^7f4FAu6>NoT&*UItroXJO`x-{cJoxn zFJ1u9enARLC?xTus8C8Yq!I?|LAy~lIUZ9o5fhJH7aWy0Ohk#?F0#oo7-#Tp0y&>S z7@|f>rAX;-5P2pfUxjp#yzyI+jfOzt$uU4M{2(NXmB3liaX`xJ2-&+vU%7920*K1A z!x@I4)RdQmAjKvGfT2etUp1UCuFwH69PRZE(5{WUMQ4BzOAv5vXlZo3$wPvw&!<#V zlw?a&KHQ&m@VIli4g&M;bWXe_WQ#OysvUkitTM@B#c*LhZ8a*>(01dRx@(Cr@*WKy z52M8?DeoXq7Cd7wmperEeq_v+NlaSZ15@G(x) z#}!n@srP3>VM2z$mH1hj%|7~ z2PAhJMcY9r=_V7@g)Cag$N&)BD8iFD1@SAS(*%v@P#F5G1UzIV!YDg4?;B{sII$}V zmH8ZAHTj`Sy5R+AJ&AaOyU{JC+<*VRjh&=-6_m z^F)dU=ew+6rd4J1W}bsNT|;VBr_Fhw_Ke$~af($TgoNJA6{RLa)gG)#4|(MU@gMRE zoubes&t~}z9_hX@u;={;O@2WB&PLEjqROP9Z&98rrW+++)V8QvW1LrM0?hCHAu|W% zWIXT{K``+LV&y=)i&_qppdyfwSlGihmw`kj-YgefL)Q?}+|eG8z5&|8O8INXFZZBM z7Si+yvfdO}3~o0)U&HWf%dz)=Zlmbns8y!}A{K8t#A`?0`Whp`E*e=FyDZaKFA61b zi$O6jDCiW*-C=L+inJb@oTw#;z%rU4@hs=@wm=f9p9Rf_p;aP-k{=WGRzJR{+eI-d zQczjAqDm$x2x){Nk>AwZJ%;}OJACAwh6js6Z8711lI%)0o4qT-a;Oo~g418rL3~u8 zkPVx(i)lhupmWac=)mG zBb1$Q{{DH+1NX_+Wj0747UjdDqDYQ4V$It%>L_#U1-PVo6rOles{!ZF^YN%-1oH#s zFcpY6w0Kd210~3ARL^&fA;^?h_X{83_d9P2s1|~Gv^2_j(r=#cbZmEgs(<(sDwJqZ z=K)1^+X(!U!Uw~7J=xpW@CR&%ZV_*96$sVM;|`f~bWr`o6Ho$Wx%McF&|o65hc@T_ zA=KzX>ZBdQ3=b_NLM( zdqelzv(_uZ3=dD2T2vH8YK5LBk9#CPEK?JFHv_{w)ZR=?0aQ3W$j-A@ZMUJ}@iZ3gKC(bfNE)e@nfbm8siPdD4k?6zw(#QfEs~Yie4&tBxikU?oTGnXn3tZ!7d+i%PMn`O-DTe7;s^&{ zm^t|QUk?5?{xT=H_~X^0K3KO~qJOmi#Zek9vr$EN@66!EEuCe4E!|i7Fniwr!`lC4 zt+oq)ZKMOX}Ramv>bh(5$_HK$Xy=!K})h~jXhrjdP#}8|GB4@wPnr&4|DkO zwrR(Au=kqCcL#MagXJ@3@)N(%NeUjAyKueU&4N^3r|K4cwCruhKbi^jg+10^DA@3q z``Z3S5Q8}wJ>%=8{(^-+;>`#xw3*%gsaB`{|B2YnDHck%&zcKD+m!*)7SIU?%yWP z-}A*z_3h}JS>Vo#bG~}_^GS!UbNSU?L7{>jEbxb2E%iPdw7n{tI~OlIj?KOY_O;r` zJH*$T5-iG|L^RYv1pYN6ci$(uMtl>>G z;Y72M#~qgc7+y9s%<{u%ZcAHXP(ObIT%5NJ-twQW0A%h*kz}O3uAxpn{bqUBl`*c z)>Dr_-fq)PpAv?w>-;|@5Zg+zQSP}3|*6R7`IX-mfk64jI($qpr+ z-#?Krl*D}D$7^bcyhzCGz$^RIIFiyk*_BRHFz300g!?h}SQ%dy7dc-UFFdB)PP5-; z&R}p=6!3gxS5s2Dph08Rode(59hW{lwu|dttE1V3Tj|+?^_A=tHZ^Tpz96vj?W>B6 z92do=UB)*q6t64UL0RNI6;Q0nZ)V;xNcS=sDpj?O>L9Z`yM3kt3e&WRq)ShwEQ-^# z^0dfKQvuxAvhr(ZExu`(kmr-Gb-8WCmb9dmq`FT{&V7GUX~%K~`*EHY^UGK-*3=~E z_T9D+`Z3%CuWR@ndkTh1;n|L#$<@yQf2XzXal*-@+e^)^2g?AW;y}T@zxCciS}=8x z^=8fkl`zZFkI8*=Wg`O|)$^z-bCM@l`qBo7&EOyX8XcUY%9`_ETlXYL1C!=DLmL8D~Syb#AQd8>|XY z#(!cB(wA1f7b*GSHWd(V5!)|wRi{rTql~sLgL=+0AeOY0?D{HHKAoO3xwMb;xC~Dk z9^YkQlv{iMrc8uu(1Je7=*6i5GxAl+1yiQ6oyptX!X=KZzNDL(-IGGJj#ZCU@MRU( zeBks|ceoa(@!zc`IhhqSvlb+{42&;S#5dRIRH2J<-cGx4Cg#mp&;$V5o+{R)55>LE|%=k8NepUTF39Z1>fIupNVhA;k>me=x7 zrMlKoB|-4E)&8)PRjkpYL_J!jD|h2PT;lLIFIBDK;pJ%|8)%uQIHjY?J#^3Up%u#n z0t@4{;$P&lee5TvZhqaF!wk|Vof+T;D$gyezaOkPx4A|;aA;Am%*OB(w#&^+HCnFK z3ni(^Ls>Zaiwm2U*Ljz0(b{e>va07WQz=vYn@8emg_=&G{=6L1+Wl2^`-Mf?y!t)j zD(A^qmQU`ESY3Cv@JMCoD`8r@CpN4@MR(%*E1!duM2d5$-l&a9=)ArnuKf;ls^Catrs4uSS;0v+ z94ho558i!0?V#Vgq+-*y#q%-s4|!?wbU` zDh-zpvyL8L_iic5#i9g7l7FQPw_a8)55Hg}YgFv3C>kBy-#35o>U>$xcz4|^I0L`P zC2)zI*Z_+`t80F(OsOTV}bhbc3pkf zf0ce!w$fe4FLE3z(uQqYN(DH*;R9wSj$BgtH@TkHJibH;sT%?zsFwUwhUzR2h4iwA zkw$HB`_W>5qlN?z2$qSx(Ye8o@f%XwoF)*tkSZzDVm~nYR(boZTM@sOiI+o6CP7X_ z+t16L-)78vSMX66zed*$dkofTOR@W*pC?2QFE`V@gmql$AzMm*=gbdKt_BavJqjg& zdfVP;pPTEURE;h-O@7&~JJ45RXOOnWW~GPr00txNT(G$eE+I3PsCqlxeZ|2z@?CIxEs&3(bL`M4thpPbkBF_@{@1`iru!tfRn z>IM-P&&Up^+RV?;!_2s?Wkh!es+6f8v{H*I#ZtZMd0{3O102$`d!LF!3?d~ZeN#($a=+i>?1oDAkzHE*uKNNfg{`(x@SKhO@H%+o)g%sEYusEp|X`;T+k zKz})B&*_i$Bg~T?TK=edc8TKdXsNreMUF<2(TA+?Qb99S47J zlXELsv$-B!{Gqp_lmBtAz#IH)IOuV)e+>ta$A1myUym~r82!`7Xd^y1&JwP($*?Bd^i=V$Wu|M7fhvr)t~JXD<+=*xek{kDD=B!r)> zW&ZRK^UwZpYuLx^cNw}%;ZTfW`A1GVUS`kQ>yS0?{QIo@|C}|Saavhasp~PFqc1i( zo0`p7utx%=&-4BU-KB}0W?|WZTQEOpkljfuLKjo?+`*Dl7ghH7X29{E&P}Jle?^}M z0=rHx;yk22hvFQg>$u;_pUgk^;C?74&ZBlN)QED%e`ymfOQPrwRA^wd(behddy+Wm z_uFRmoV-z_83J{;Zh9fqxtI1sEwB^Hr6`X+?SU6no*L%|dmB|aJ-!B7@$z?m6RnL& zv8y|AJ|Uz);*gcT!%if3dy1S!YZu-Ku^RC)X)dO=BeaT{&PS5tyYV_jGcjo9oN*kaC_Aw z5Mi3j@)X*w>BAt=f7f30Nq48U!H%zqzQs|OPWZ6rQF6J1c3BMh#G=Q(C11mz%Y0`C zY^jB3=`Rs{1sLQ4)`rghs5!?~q$C-#r8GyK&~74Iq1e2Zb|H#MPc2$u!oS~)+NZR2 z5MN!bHGz+Nul$A~|8#igCXuX$gil4p$UYr&ev2FGGL^%h?<6Wm422G{qYJTt^fXEQ z%@O&(1tDL zdf&Iqn^kf1?t{l3N0!{V`R%vNf_@-_T$VAfwAsIK>4tX8_ASBl7v2|o+eA3Il6{Ps z{_I)7v%<-dR05gCCs3<%l3bOVTbEM8_LkVr_{{23tkQ`T;SV#&`{umrb3#~2ysNn) zi|9mWb(OPPzSSmpbGt{JoxY9k)TQQgM$+9cceKW`PiJ%GF0Bh!=>J^ziEzD2nVzRg zELy#Ts-iMFx$6>J(G4r4w7BL}OFf;Ol+N8^DizpoF({yS`o#(FS>xeHajVVth_vQh z%xlkeSH$=k8?P`geS=wf*w}pu)a0%9EyvO%=C%rOew)gcd^f+bnu6 zEaMz3>^6+Wv$C2;C^Q`Xb0naL8cUE*$+!|lt zUGiE|7u9`_@3S}DXoH*V^9qb)6tgaz@$A0S*?GCsA%Uw<($bmKQDrwbA~Jcqlx_)G z?X0@UI<4x?sw%!JosIla|->Po2M`7&DV|{ z!Xo_pNv19>Lt|kv&2D`s3b_hBBK#D~ZxkuyXp!m7QFszW+(fXP5 z;p0$fA6c8765nygmXNH>&hah9t0;sjk>0!+DyVahAhV{3ov!H%#Bvx9d>flp+&l~W zs^Yqb;W*!C6zp}@1=duJ?}Y)P;-z(o8_88)>ggwGc_Fn_Wdr?Qa^~bGzA8!!DU@k- zwDGt3iafVR`*b?l zrr0b6wBZwzZ9aPy>+99ommIY%6DGf0V5gF7l0$XTXE6dy-*LRmakFUIT1~CnK9r=e z-MX{X=$GAoc(a^)nXl-|FVZSUI?__~_T^c#2JVHGsATm%`@js}hQ;mA#1R~=K3)>b z`{LU1ad1K($E+f=#xrt_K5fGi3Oo7=_=hIQ`FDmHMoq6>89Aip?mi9-+{L4D{lxI2 zlQ5@z#|$PKWxLeRPjUL=7~jh}Umj&--zcfM7sYscftf{h2rWEKV~%%*^^{y9V6%-b zP?NU0n%~bM#?8In#)uD0ZyWINR_fpOxXb&?pnJ>Um$=$FfOw&{OF-)CG3;ku#0fV%{F2@3d#p2_r5G%RHTl7AtI7Pu)8|Y{B&UUAZGLu z_bv#Bq8oZn5e+bj`?umQFmd1A)tT4Y3TwOd>t6gWfQe|&OO{2VGrHK3JDcReI7eC+C~0DiyW`K5fXFEtJ~6j-cl(Ny2LSh8xiRbIso8)czFw~AY3i&jvz*FV_l%bPuxR|0kPnV;P+T~G zdaZ3%tICxDjCA#3r{Z)8A8M`dUiUV4Kc#4CwcbMuG4)6B{wEChE#JR`UbXIqJ-&8* zLM)j%2}c{}HoKs^f}PVwp_MZv_j+Iy3>KEEtEkL_)4Ct}TN{P3|MK`lDNN7X4epOb zRp0_A1Wz+kN_$l_#U#>y!(axERVi-X(9?cy^Z0n~LmLYWQEDEQy#}LD3*yLQRx8?O zorxZwblW%E~5iRr8Y8=(1 z#HA{jL_72 z!*xfc3Dt+Z@xZk1+<&jFqn7lvWI+XA{q6nz8t67efNjLyVOE?C*e#{T`_(y$DVt9D z8p1+4JW%C`T%F|`MxxI0tAhKvM=@n~|Lg(G@KUWn)7!KBPG6tfRxG@Dcx3hECqHds z9x`V$Fsi}j<)De?JvX(fA$|dd(s-tacHlHs&JIJ7z~?9Ut2O|vhZ4aVDc=?jug0W zO%dLbuYEdiDZ>(Ao+M50S>>2jSl+h15^K12o~dD&AIu|fo(IReAb%Dr_a))&Fw!+C!!<$=%`OvKaq`O6+xVD?D< zu{V8q7%b*Y>czKlt0m!Hh_Cgp74PnTz0kqzx&qq1^D_jyTBM*E}0z zW6aQ$)G|4OTgtya8S&Qz zkqB%GMg_pM9l?Tq>`Izm(Df`QN%YOHk5<&r9O5Bk9F7uXbZlF2s;D0&G#Xo&*=hXo(rNak=eAE}d&K2~S z-r%)%sBs7`c|-EFSA@9ho+vfaVl{lOoEHf{`V+ia3(iA?;G37vU%U4b8r7o zr}SyPkG{46zr^)6W^sbyAzsY6Gq9J^ABZc&mfs{m+Yzd>?p20jn)vB>Sz+HcRxs-> z(RLulrH<#|uWXs3PzDP2e--8(%&EA2W{nJZR4dzbjFYcL=>WI0gm|AgjOFaymFhX= zemqc0XE)(y7>-EGdRO$lSY2M678{-Xja_VocUEInb*r?E^DLBYu)-@Fkf?gV`~qv za;=IxhR&U$A5-p=N-=%0k))%rBj!>yn?f+t18psKp(*1P$1kAf{4cInlg^4>+|XY2IA3A95#w1)ihhna9FiA$(}uZ>?px4o@WQ?1NS|CX zSFWeP!-}8 zy0j-ls70?PHV3$ga6c{*%PwJ*D%c2})8T82>tj$Ru*7+dG5tTLlqt&6+=rw6HH6-= zN_HH>Mwcm0qg{ypOIsiBfcZ6z=GBWRnea67`@VedqSu3j ztT?4%AzzbRf|?q)%&jMZ`{vTdu`(y+J_fC&TVKSzY*^hSp^dHL6ZeDC^>9L~ursct zBs4*u>`?pAA@)nW1(Q5JR`h9*y6Q?Fg-GmEEf7&9-;Fg?%S$t1c)3na#?}xyVI>J_ zX&>~`xhztBHpPWNsZlg2pa^c+`jxB5P|5$ozBJ|P!yUXJ0-V#$T^V%kBI>0S9nu)t zF*^JxREGTN%Ko5h2e1BP8Cwz&wS=H!mU#q}%X_Sp?i0@#YY^0dm;5aE1Sye{{{zuO# z?_@V3rJIy(rDR=OHo?R(1}9QBk_fr%+Hd9uLb;DwXPHH&U45sNE7)$6Mc=5QZ4)UA z#>&pZ|C{;)rJGaTY!jqkVgqvBJ=C#|xL87?p8Qi)CWX+%Ib_3CDa=x(bc`JH?yn_y z`!H)t3X5rR@~|kp^-f?h$xp_bg#F4`+Zc@WtT;v#{oUq1qFrROv&tCW%Y$tomc|Wa zhB!0nM0#l+o$xzp5YLJw$ETz#hZ!h%u}e7Ykyv(vyZWM9p@w)vMoLF|$18SVV`l## zHHVhhQ9|H`=Jl7;ItPmCxkYd2+H0NF7xjHJOLrsFsxLy(l6|`GxAri>P@XM&6u45u zU@~Rz0gpVsS8IKkwB5Hp%jtRbV|RB`eMV;r`ed6Ns$pGX*Wj}TIeLAvt(QTk!$DhS zpkq??Ro6bYolE;*SvRG(^HoKswD0Xvo1AYCA6F^F8q`hTZ41V3=V3+av?y8Bp22ia z++-G$_3`53NcZvaGEVQ&#(>vHWpjK5+`kU8i(@!v2<{~*SvQYFG*QJ?-N9lt4fmIJFv>mM6~eal1um#5lp&3Gk9rm*$2qp_BvD)443ug5>9w0F zzTfbxU5c?TEv8n5F|whBI%HY_&GdF(f5L&N+7XtGd%@Qd>(3ljBE{IQ-9`WTfDy_3 zHrv-$bu2~wOL~o`%gG>Y`1QR^hXFQ@D5-i$qEz5`;Ixlc>#gAb{MFe8<42dk`m4v0 zXQyos&~IEa1>gWrfhUb6?qlde)3l+9ALMTvZvGX<}T z`;Qh6uRg`#kWw3L??o^1GY}9Ee{sTQbinEGBD3iNqm}5&UAAqyx)-+L+fr?@xt1vH zlY837SeWR$J)kvm1s=}mk>e7z6PFn*TP*hXHw(&n)j?C(x_xIQU`i@``Jz%Bw?gT# zNsXt}_m))wVRd7_b^Zo>*)M!CUoXwStq{snw6XKlWsaPaTMdPg^%67xl|8{LR$I(d zQ)^MnF-vEbGMX_(DCTX~GGD=jlQ7>(R5mr=3P>aREQBpBujBswyo!eZJ^jQLhV9jU zht3}O;WuwST<>GPUJac#e2Td1p~llAXJ^W`ynM%jL^hxtxdgj1 z^n>f+2R|yU2nd_y(SYWRPzVn^9CdvFsw#-|Ls^GSawU9n_xU^@Z;`A1v1IxT>plkB zS-fPQ8YmX>`}sTN8o{5=0Fbbvt!;7k<-5B_T6}dkL${%IUGvla{b$FCBvu#i`(M{d zhK@gl>JODZO~DAW@U@PHvfOq5z`j8U_^;j%G&A;x@eXz(L@)VWcI|YX)N~uI%JFfc z&2Q*J4JRdv!csXqmO~+l!8n;;oOdl1eeF@Xc?pI`1w|ZtkFAEqW#{WCzzRlmA9M2E zI-)kR!2}(S>DSQ>U;W#3fw=17HKoP}+U9SIjW-a5Vi_^;jeG3uzc$kW$bf2$wL;79 z*V6a&%x&+Wo^A%n0P|Xgb}Zzl#r}1npQITJ;(y4%hjlzmd6)8XyP|*TG2RWt`s4Hs zW;fMD`5ltq4!^ZM@|H6CA&jYv(YfVoFi#E~@M!gWuz>d-{ImaD#xy(t(O~QL=}ZgW zc9Mt1S#|}P1gbK5zk)uJCj`G#ul?Jv;upQido|r&J>O7l#k2v=<=GW_zm-@%P{W{Cq8NBev1Hfk9 z#x&iW35$P!|EKE#-}dWZ&5+yDu1CSc{Cm=9P5xbJUg-PRJpSE?)3Ew4OK7_Jf9*Xy zlgF2iOlK{AYpN!u8@2E4Ch^;PJ%C}qRWC9~aZ8UY{p@8p?o?+-MJdylU{_Um2JO1^D zVvqq6r_oO^Jv;B6Oj81=-Y-AsZ_aZi0}&c~fgE7^?h+tt+~7M|mq2Wsg0JY>q&b}t z&IE$>Nh82JHEcT!^m_P9*`9EsAN2m7mfbo!`IV#=ff&yW;%kARH41S~n4GJ{ zydR$=m*B@-h@&rXD^4xL9R0j%u3vtz`?(FMNjhD|ovEyxY?yTQeKb?zB&zGp=d+ku6oIX=eReGZ=z14pI-uEut#jiW@16Q$$ zh*z^d3sGH}hRpi?ts>LRyzmXvZS7?bOx{h1;7z{2BBbB_?gf*VxGM>(iso$X0B%>0 z$tIdwBqBUq7uOHkc)Exb&NOV+@7B?lQcW!!72xF87r=zy-oI6sXN0_V0h|uJoC025 zW{%M;>iDFafyv8j=R9s4!$<4|nJ)A~@b%7eY1ZL9)e|9DSyhaas`H%prmJ{`LyIvm zQa~2pa`*|miILK^;I#+P8~VVMK;-9I{8(lS2_z~zM}S>02}T>5JgPDMq{G(5Y;Pft zFlu3)D|g320nCMp!son20qa5E_WHu)zWzS)M@BPkwv%u=5JsO_!U0yD2-^Y7$(4M) zG7G8rid(GIThJTUTy`k2fCc5luMFe0w(s7thppb!lT1&HNiCNB37dpCV7h6*-P1x< zXXe)?A^xYQZ}?1%7Ut(t3(fb}hMe_)M(kFxKW(=bM7ePv0Oxe>NAo|N95@>Jru2VYp<%1fxY)ykZGi6Th&; zy)1u_xvtd8ljWhiw+~PCKj;4N1E-rw-Wd4uV!x-)s*6HqwVZD6oFr4rD6LpE_dBNf z!yY)+rQByWY0~U|fr<0p@yhJZKB_~ZT`qw!BG$+~qng&lNnJ#`>BzlQq*_?QTt}tl za2*RpYRepq7pK#ja<(~AqB_18bu%e;ADl0K8)1>(h-eg&Qs%dS}eKldD z+UlXgI`y=6w@EkW!qH~kgxosP+mkUznpB{fV3GK=F22t#R>rqSKVcuM^5aPy3+rf* z%dXqQN?FiIC{cB%xV{(@F!-9o-OIYvC~IEG9>%k1`YaqJ^M!)E1)zGVq=RN#a;-+*nDe^To_DgSatjiCJ%B2~DNfhI=fJZAkN2)4=icVWsFW$*;z03&#ws za=6Ds?+Q{H7c>kyFeh*LMeAgqU@4%^luC2OvSu>F|&_D1$>%zH`+ zl@FeSg<1(-A2j5%>K46mzdAq|XJS7qbM=kskBn0@g`+6~$FChTvzipFRaf%Oy)v+4 zd5(Gsr#pA>8EHv_({EpEypl}k*$X{gn`ufJ`EsrA;>&nvWv?&8-!IP1vAe_)ki?m= z+;i=6i!7O6Te6zR3>?<>zwaw4dEPeKOW?Q(iI5q+9TF*^Z)mL6yN-$F(j3Xx zNS(VvpAAes!=5xucYhrAtVYIjn0L%@-^g$WVet=rinp15am!76ZcFDis)5K!%D2TQ z%Zc`d$-*a7`X8s{K0C)U_cA?bweBQ^CLF`)WQJU&CA>1_XNH6{syB1I$eE_aT)mXS zc#ALF?kT2yDPbkpup0?f-J!4Q`r=6qw%L6fN$(jFZ}|2Yd6tM>a)KUN-Zh93>{&pk z0|^fO)VM0AWf9~?pVhqw(^CkeVN^Fd47vElu&UH2>P9NJaXEvse1+?MSP7arT<7n% z5369pS7>E5U4W={B1J4ecDj@_Nj6@j7SLw6b8If=^-$J^!to8C#=NJb#W9D?7M2w9 zO#`VskO=aet5^gPVsz^Jujm&f{yYhU5E4=l#GmKUZwOZ*YhEklpz9fK0tFUgkbB~oWT z7xVu5ZE1J&KaQxJ;|WU@FJu&~zT>6tMes-Kr~LXR)JVFhUaj@cMxGlqw*#?}OcqJB|TL2GKBp zmyeu@ez+v;l|0~(46|!PUSkGGv8hVZ)B&jk7Ul-WB+s zp9T5Ci!EzXW@CD`%>aUand=q|+Fw=6J&l+JFhAaISZ*2nJ8v|{Y#M1u(`SRTib(dQ z8;!bSo=COaylFV=7c^(E;S)Sz8Bu9mi;>0-67A7v|ESGvhG;e2h1Mi*j+1sPSmdkSl`2zrEox~{2gft6XiK^YSj z=3%~D|2G~?!ArlxH_U+{E?6YJpb{at$Ujg|zh{Ov2rTtG4bTR<{=fW*FdOdc;1@{z zw2Gv7AN(2U;`i;_1K{gT-l?|xep6WS50?<_^nciU^LVVc?tNURI(3{Tm1dMukw_>R zOGT#0n7N`188Xi_kD^E#43(Ks=2;~aWuE7$jJKKF?0aphGd$1pdA)xB|Gb{(oKCp! z_r3SpYhCMF*Ir9+^epc$L%_Q{5i%88_|CEI$2WdzZSWnMwOjFs?@DaDH`09H-rzmA zkf;u9zD>S)dB1BqER{#p`md!#Az+S}*?n{=L^${W&sMn{ocqvo)l%|nDj_B0S}9F@ z8<_Bae`^LSBGnqH_t$C>W(Z$`H?ChM3pw|wA17n}X6^XykB`99T+owc_;+%4pF@NF z@0Z6v{rtw?u>J1Cc*K7#Bq064RRqz}oZsMpqKm=x9-1@4Kb8`kKKCecH;E`3AAo1u zjLE-kFK93Mmf`3BWtRWV@N8-SSU?tX?on@3&(ED4a>D1netZP|55Cp6%CVxqa=J64 zb2j%d>&G|#b};2GlSlmLLV_JL-8v@}%iBj>R>{)p1@9bxEG0I5j>UShY};1yt|ZB; zC-yThR3m?-;VY?5{#}L~^UJ@#H35;^e>J@RwX6U0c>Mb#6kivJT^aG$Aq9Nyv758G zTR*-5qicUOpZ&g|*|zoHCm3eeaF`q>^abr%j$NgTS$KK;=TiQFHl1cKAL`hm;xI!IEg_k%(c8JqkicULoW@ z!)Rc?Hyy1lPxLucQ%h6Pm%b+Aggfb&+({ZO+hh8~Gtz2z#$~iuP&n9Owsp)Q=8vnV z*QiG>k5_yUF)SZ08X6RrE=jLa+)xt!O3^?`DWY86KFpAEJYLCuZ{_3F@fDjcvKvHh zTdI0&k;HeZIAek7$%@bWcXo|93JUT!a<}`87wCR>3~5ix^l$EKTck{Pa|z9h7jJ5= zf7pQgB9~+NgqIc`{K*GXUt;{Men-(uu~e04E&HLb2YssoCJUS1UyHYBKPgd?wNm6Y zI=2fqGHqvNmB61eF!W-(wzl?2NAY&?+P=n2Z7hmQ{Q3NK7|(kl*#y%h%HQgUTXmKk zN0;jYsl-|HbLY;L1@U8vh54RYTdVU#yVa@d%8YgVDZ_v{7Sa!$>pc*j2@N3Kg`fitrDY**KTIsIVnD5McKJSrWU**PgIyzR<6C+EQ<&5Ih;_Zem z?A1(BOtq%SOG-)xccT?>IOf@sTv{>3vU7__MRV3ICA>zO<@${swTaP4FxMX!7w^V6 zo}z<|j@$3uxc8E}I{E+&&Ei|x7j!SgY(jdwZoPPK9rI7dgXR(q2gh$=-wXYtF-cdV z1g61B&!+e(it-^VYh*B=^WwY93)Im0K4F_JE3c!V-Jq^jZ=EW}w|!N}H0zUoy8k#v z-I(0mW-F0`VXtDY8(!kSIU1P+_U$Vg_N&8~>L`t5kM`*qG^pi{7qIE|X?Nn!3Rj94 z#>k1TPY<^j^xnqH-@44a5(w{Phhqu#n}gcGQiN| zO&EjD=-}$QcCVTue&@j>{)b&?lYPnDol#K3{&$)eO>Y>y56OZv^2vUA#P;M|1jVUz zd!Kx8EAMW8y@D+g@))*Np5f$>nlOpiM&D;n2EI#MvnK27>J)>eH`+Nk=-IkhTE?M$ zc>rg|7_$vSuFw#A{u*M&hFGfHOHtZo%gVs~gkHW(Q<|a>at;J`|UURJx+}&R#G0rd3&ODH|>b$wdvJ>nbyaB zIrp|BEW}S9?N-YICDwScDdi<`;wXr_Z7D`C+c?K@^ZF#StR&3*JjIn0fC#*uB!bysn8Ov7ghMi1V?>UzYjr1sYb25bs|`LzM%QtmkqH0;p z`F!c}^q?}scP>){;thVwwlMG5@sY>uEJiE_uS$EgiP^L?_5u(yulhdJ-Dbju!>mUhK_%Y~&e zm;fuuec_874h_Zr3m)NONuUHy0MBC<7M4!Lk%A+IX3;)^b|qzGkm=2CUc<6aWd%|v zgtlX5dsorRYX;S52W=4_{qf^5v}pRQKRG@grW~ne*TuBuB1VMd7~ji&_1SY*grpZ+ zwMlztXV^e%ZiH64eNIeAhkm4bV!^iQV+9zf-idh(yfx@lZ+6aG)QokgOzx7V;TN;9GM%QIf7%4qF_u%gO}>wm0iYi@oRkZWybR*Z=z zdrVDDbyQEBIFX@3C*Dw>Y>``*5V^v14+~3nS%HcCag)Hv8o%0o7C4Dv%zWide;$Y^ z4_~-s#Rg-{!`mXGamm7>6v0I%A9Df{9lMzZgOA=?kuz`(Cx9Pb&(mS}Oj8LramAFR zFLrF;JK29B7@9g2V%4qI80w^yW;?)M>3;8CDXhvh;oiM_JEfm&wXvaU2xWMCd*c*d zjEhu`xO(lHMLZ|pN$jr-g?^8+Zc;;r)1+(dx_igT@>4Su!{m?S6dbH+Zf@qc>QZ#0 zV#4mG)`aKJpVz=Eb538=sY^0Ddgsm^u~ZBPIMg7Hp}8_^Oi%joJ>+yc+Auyg*6}u% z(en}i%kN;1t>Isn{aEoD*Dun_Fr9*y@BQLU&(Zp6?n~F8&`*eV#R_G8{ZJ0=jMvw% zFY?-bN>o@_*svt<4w|qBVBy?mifDec_Z4@R!029|GrKKO?bK=}9 zVW1SRag8D|nNzz34;)a&*s~(j%;{hZ133D}AAhi6$l27?R9TSJ`gp@~wp^$9%CFB4 z%9O`Z>|VpEcjJY{1a|K}fph#-K?I*Vnlp1s9J0q>GZohE7ut^;sTC_`g3{MRe zUTpjHFvWf(9P=~@cIe2tzj<(A;9+KFCOnJ*R&{s1a7$||{p!`Pgd9e9v$IQcadF+f zf8Q%LHC6J_?w5n#^7m}rdf2!&K?#o&(?boE@N~Vi=*pEV6X-h5A|YViQ-m(<+Ba_8 z=)}Zca|;WFAW5%b(D*W#v4_s)=MgvzN_S%ZhnBcIqmrWHqq}Qa&n-GJ7d11FUr>wF ze;K9_vWbEadlKWz9^u2go`3oBCDzuncxJM3HVX4>4h4!Z2w0cBJbKG@6oZq7Q6H#D zcfx75?yWP3Q;*X>OM4>3iW(bZ)vfF+XeW=O;aP5|^mPAu#R%oS@%qK0_yk`EqM1*W z%uG+l1Jxin9;TzC!;3vmOG_gzpVy@Bv}THBF(y?!GD*cr?W}sM)A=|P10d}&kcUNr zMehQxDOqnq=H6#lIm&P~|Wt@+ZFWiNn^7Hc>yia(PFsN{9Bs~bA1eJZ> zNS+6SUKL|>CA{{kS6I$I-m4A>R%BU=AzNY#7Az2R_;{PHt0CPX*xggRRnB?K&<<8? z;^qTJMVNJGIX-wkJ3BkfcAy2jehSf~JW5lb{Ix1~?M$6jYtHh;OO{-$O)%!S9}ayL z5WpgVpq|4OXVqO1+Vy%hQlf6mJ{rGYB&YfbI{ZxTK#p^U-d7nX`BGl-)7gnmHadsvVhANYf zDS&|lHeuNeYvRIk+?o6-8Rpw}>^O$gBUbAt91>a4fVUB(24GIwvwdf;8dkgx!zlhnooxq5zvP>73X2bcofkW?@*2V_C{~F zO}BdUK6A->yn6L&7!mM1-^Lakrxa_-vkxCWVC=1+Racn=274(dtXYe=FoHpgu#TPe zPBytwMMWfTOJNROpxFIQL5SY9BU8@~7#rG0!I&*NboZ@_SxEC@>)ZR+xrE`<^*%So z<{3QrQIe$Da?Qe&n)%?ts*&D$fvo&m7_IjcCluu2>k$*x{teab91|a`NhZt zb;F_;M=;3~zUL6YRSCkg^c6XE80P_4jgvY-K-d~zO1G1DIdLcvJmzgDQY)FbFSxQU z!Zp*E2$#=(>w|Y!OS64@a|J_qVBn6_QKzml){(wOky`2_{2Dej0^K32;~RbK5vFB4 zf8)?f3k6v3L^@c8IR)pRDRNo&oGuSNm9=g9!46JNPKCpxu=b70;)R$S9)_rDkCBC? zkvj2eyojpl7>&8{W>YCie#m=bM(ws*E1TZBFf5YZhO334OqgI)fe$Iu_mq~NEff%k zL?44`oNDqP;qpOu*;Jx@Ok5C&H}U8{$bdOnZX0twcKkRw56=YcVz`R83BY_xy|ta6 zHah`3em3JBOZ9Uclu($&q>&OFSjr6h`4F7QoQo=ehC0cJ@^90~dtnG|iZKK4is~5Z zlU+e4489g1<_t%oh;dz( zlcUC(Ntce`sViR{zvuc!TVCEHW31&*98JzFVML0Hm{Syd-dDgz8L5$Cq#7^F&Yk4= zAgxw7efkN3GnL+~45&&eQXk7}$M$RyajsK5o(ex5bJ}O4HOtxxUByika2W$Y=eWTsydB8Zh*<7!TsNWGvjq~ zR}k-)KV#I8rV0yq_-NDjE&P_D&kmY$sHmvmu?&F)Cy-O$r+z|uG>ox+UD&?7(c~zt z^qM41z#T*r832t3At50MmhrluSC=lj0k(k+CsNqMxt!Hzky41%}(ikj~N7Q z<(8~u}mbR9bSD5yu52`~gM)!_~hlg&w+6Y|E=iJ;~rIHmS-rT0!F1^iC zL_`E0LH+*bgUX*hSgc06l(0I*nOk0`s?6f}AMHAXv-cTt!-dwh*1E`%dW2~xI^#<&IZ@c-x0t&r>TvVNEOQyjMedxBuBc+^NXYR zR?#k9T7-%`yTqmgMo+j@LxGfX23`3Kx5RjP>S!4mz5abA<7?zwoAV9JLSN$a5-bON zCXa88_SQ!La}_)}W=*n>*$;iU0eTV7QmEJgIn%R(eDh`xU~PbgpAF&J`?ND1AwY9_6DZ6 zNznEU>kG{=c^1sCv*@aN8-T-gevxm$t5-bEQ?@d`{JixU?S=lP;pYVOi?&V=`Oor1 zDj=x9S4v?aySmSG$>V3LG~_WrU$)3 zASQrK&>w4d>LX1{wzG>NFhIe|(jokXhZdRcaw88DyU9JF-$}_(5RV zna(?FcDZ6^q=t`y=v8-jcg&G|z+tHtrEv&*d=l8YtfxAbS0`s#YX%lmck}hk%~zup zLfkSYy7nk!UzC-VB_z}RO}r)Vt}MKNsf*g^5)DqEO6gF2cJ}e3HNbc3KKd_EU_#N&@l~ikEAV78CjLH{BuDR;u0FZp^ z>*F*v?X#Sm0edCA#t1Pu+@`@!oP%R_HY*F64&Y@fnRXwco#{*hbYR&fXKHUfcU`m) z#=#mtTMJwkfT=tY2w}k^V1ZsE%ZR{v*>uP}kgmr6kVP|}LuaUl>L zD=3dqbruY+iMO`rZc`s+9NJ;f^6^gaDo3~j;&V&8*1p8o-q?;+pXmA*6_F#U-BUS}5Bw##y|6I9JHn9P- zpVrdTpO2eFW=#9O*4)af9LWeJyuwexz~2JkC$|2(Nz)hy6O+FqMd2hprIkoJfRIgQ>9r zv0B6UXKZeI--5igB-dZfB!mpm3C|4;<2`=u-e4^5Gl^(r&P-fPnG_Th90nSzizOsb z4h2+5u^WK$m4!=U>I)7m)yA1zHYo^34k&sfMZ$CE`HeGCN)eBR$J^EfFsxr6f`lem zy$_#f0&eYoLT08*%KVc&b>?kC)KP<#22X#Igx|z*I3EWFlLut7u5G=z+fjpRi!TV!k2<+Gty=X0h+CI`<2$SXwn_Q$;mdE05Dp|y zoY)tsH<`Z!?A)ctnHj{yNNClqsk64S;$1Ap-3q$KBpvgBpVlCKfj^hS8#+2UmBW0EBBZ5CFh~5HAr78UJ%4va zB)5r!y*&xqs=cM~8m4IjVhQfP3K#&+8y`!X)!=ntgKE;H=BXZeH*oqawQ`ZSFhc>L zYJ7bBb0y|4gLksdG%+!;$9%Q>)?zNXuEPjk~Fz94>az^e33>ynB?cltlYxr=a_ zol%WaK>Ar8t=*`vopkBF8)L00p2Qvo6n`$8RyDHI{TYS;RCE*v$TSZ)Y%}Ji0{iGC z&wvJm$2$}N+Ns^LTO-vPqyLQe*T@PETxZ?k^OU?BNFDtUp{Ntz3o{>0NUeE#qp1(x zPZ7(_5~O@AaXRR(&(h_~m5v>|UhItF*V27MUluK190r&p=747q3+np<2JJk**>({g zkSZdxQ?aC}&9j}6x^3`5ghI%1V~7AfizBl~d*J}mj{WBfxi~3{T#*lP*HWKkpW|ZC zfdh-3Vh35nRd4%18IQ?h)^hBtzlb(0KB7KzksQvcf&k_8jj8N^?=Cg1AJg*zUq_3m4LF*zhDE_wg4ODTl0ja3ygU)8D;2OsP**k?(4|inFY{akX*Po0poN zD*(-3Pft>%VnotR-Tj>>B=G+*RvK*_yTywalY~4c2H735YXeeZlBp%R3L_)qcm z$yMQf?;Dna$sm6G)D6K%Qd7z?wz08^H?BQU&kv`?onFbUwu_tWHE_W$i4@227-nW> zpx@)IGxe!9n-h_~N8DV#`9i8Ja3oo3B)nfr+dSiPljA&>#*`#m=#{>`h<7%`|AV^; zyNXe_hx&9^tOaj!?f2y*jFL=@U^KjAr*rZLWiaDNH7-VKrYifp%p`{^hIxbt^OD*6LVh5Abo=b{2_AYF{Nr%ViF zCB}MLzZRW|xr>fHG>dPP?_8TRwhWb+U)(IsCHL#MZau&HJ)!(ftj^oh!x-PWiGsYl zouAJKOhMMIl@~GDl%(u3)S%^e{e_*>aAFSBjQ+lM@49{#*Sx>#XUO$1`G@Yx_tI{Ig_vkXIlT&;u*}M4kD}m zp`BE5*KumSMpCg`Sa^;^H8&@RiQwI72!lUaG#U}GLoA-|gcdR+GS}X+n}9{jx(+1z zHz%bg^Z&H#jHX=oj8KVwCR%!Ee5!p(ZM)V>(Z$Kh)h?V+$z2=Y{g+J=2L7rJw^v(G0rfEA5HR;zHM zzb?hB^=6oF!Uub0^NFb#oz0)(6H6>>-cV7nqtry{7r(N{T;^B}J%o==wpDuB`T0^D z9HX;x7r_l;d}9RQw%+EJulHYnh%i9DP*!&G#EDPl(>{wH50zr9rF364c-3d3{T^*3 zvk;j%4b)Z!Xb8_A#K>#-=t7}iWTW%sSH%T0I3a~p=XG#b$PUQj?Jz(&ViSI-uD)KT zn^eb=G!u-fmt_sgf6u*I_oiN@rqHE^dL^Kmk=w#v(9Ft8=^^uRSE`|P^r@4=E8URF zG6MyVPfm6N#Fhgy4g&yfpfZ8W&YYcb2=2SlQx{>@(VK$(7#vF9%)}Ip%)d1H2BPL? zu+K~`Q*U88CB~i)9=renMtmorGYHbBzc1VH0*>Na$J={^pKmsHIlg$@{Q;B*bHyE9 zbm(tlFF3Sj`Fveut87w|t&61kK+U<&)!O?>K`CMRq(oSAD)Jg_(9fUDMNo5>13NH6 ziUCL?=8&-F!4RjoZvZ{r#@zBqRa=Y5^1w zXewHEELm2VV;=?}YJehjj)efo?qKPsub>SmO~LP4op3=FLw`|ow033`B4@{)U4Hv| zWx;lW0=_>A&*R(K?Kj%zxgKQ9ev|fZL;g%g?oX3D?@_q8Q>jMS8R}g`6H-_QrPB?J z>i^aeJDt4ZgMj^(7-~i;_F_+v+j0Y@L=bgq2}Vy7OdF$+CF+B&?A*ENL|7r7!?-5F z_&K)WLFd5s?Fr2`wQtENjOZ_h3c*)?kW>GFlA%joTtI~-h50IdI<(!OQdXVb37gp| z+K=TVND`Pw3BUyh`Kw~_!PKobHMB)=uGZ9p#=MzDlYpqXN$#|$`MEBB38chSo4xnepE-~5w!<1V?B`E1cNEu&Bi9_5r;ihSmg|U zE|_YEN7!HQZOl6aPybC{^q6vqvP5C8H_f2>oz*N5Pq4DK=jMX}E$#O9)Qc#4y zWK0eHMO+#hdb?0zvyQ&#?!h9pDUnzp4s0sh3YeN2!pMOdMCrXnN5)V|elF@ID>5C| zfLg4j=jxI?gA?N>@2VIL8Y76zp;)K>PgK3Q<0+jwNY1S~inb}R*s0^_Se{n01ja%+ zQVWyZeRmk(*pPxG__!Sgu#ub;5G0`lD|KcVx$nh0%cFSk*psG5>Gf$YlA}ZN;bDnF zR%+sXH#cQ-b929mvy)FVZ3kX~&1w67p)n}3G(`4!4Gwv7ueeDPeg#qi{l3~n&dMXU zOiWB(9GYqfuwIX1CD;uP0go-O&3wB9jAWaE%jhMzxpeyx#b_-dqHqAKK35M#sp0v~ zjbEN}=SFRvsvqd!KrQ>$@a8ax^JwHQRf+x7N6jQk{iEhz=Z^}a^tJ+!a@FaP<%YaU zrqq!U-rr(9;!qnYodCs@cVH1`&`O5jNH#5~fJ$3+RgN?$Bly>M*JK^2@&VRXEGamN z)s*on#bZZ8bkTmXaWEgTVFW{)H&X!Bx{bQKwJa-exN!DxI#l;xW`Kpzf>vPW#U&(eHKFPCDo?yKyNo<_2Wsq zwuj=<1n1P$--6PH{ACJoZpvg`UEMHd$Zw{gY*wA#h_s4OsL1v!0fzKxX=@`)>Qizk zV75C^jIuU;K02m`j2PUo)+1QR+QAjbr4ZwzsCoj2b{YrG_*`n^d$bwpxH8dg5WFRC zxKAXal9z+yBw=88(&+{wVgiAu6EPJ&_2&FpR4!B99vbYTSBlc8cJtewm^8eM=J5No z0vr~8a9DizTCes05}?pX$iEc5A-$jlezl6>`wSLMhQ6ZoW?iYW2*Q1`=43ra#UT%R z-39s?cfU-<9I)=zBjfnghiJdnY&T9SYUnBhY$BSA;smwGO+xmTe&K8ac{pt{+eUMl zTJEb;q&I@7@)Xz z)ep)CNmh^4v>yjOh8NRznO5?MgF3D?wgZZd1I9JF$^L-e&udVnN392(Cn+tH0xB}4 zpg)->Cnq;2Zr{G0ls8jH9c)C!&z)OLXMzDd^D_coX=rN7WHy{J^_oVq^Q;C;UEDSwE|Gq44^%I32npwz)0y zLXGlYnz>&(+IK>_>Sy_J$O)UBP>YopR|uBo+KcQf9a}SIBuirpFif&(162gqlo2TP z&UFpN8I;DC0_OcQQ)-MA5=?q#0}!Pr3~^GUxLOPsRX1DiOJ3oqAB`MY2(* zziY>iC*g0T}6)K~BCXWwX~zuF_l-|XY@(pP(TUaFue2c13mGQiOF#G{>d66GOLr@U zq4y(!pRql;ApJp@J+aK^rahi$R9&)mpGLf)7uLtSGo$_M^AN&SkB=ooxpm%)RUt>e zeaBL53}1HwKNNiTGgeFi(S#uN)T^yf;S#PEaWnvkKIG4^TIIBY$T*i=zi~U8b_iW=3mGksS<3 zSGwQ1Q~caCBMgGj^R~0daCu=xjuag=1ZYnPQUc4iLMl`%bG8$Ox7v7r=jn;3HGSz+ zKkL2*-_D8R;$p%`baFRBPhe+n|EvO)@`SKKDwJd~J{_x}zQkj1rhwOazO(d%Jg~Ji z<;w>Ol1y@?(bXCm9I1CA?p~M}gFvN>6m0Y7AlZc5+EuI0@GI|PVKMmhVB0eRn`nL zA+I7xuy_=w#c2jS0Bb0EBKuKxMB(E<-T89SqD6s|g1R3^Hz*)TA;h!Q8b5IOmp&|e z@1&Bs`5u1U5CA?Xj1MmT^UPKUZM_;BJ5LI{D35_14u3jCd7Pwm}{fG!cX?F*t1 zsZf26%pIl|iKMabaFAq)Y- zrwrTvTTN3Gp>f~h6n|X2hOn(HsDj^Js z8SToIm8cibL9*+cK>?&gX7w~qd6vU1VCLw+xCHmm=oaw_J%265yt{4AY$1VqmmtxZw z1qo2Zu{)~)s@$*=0dQV>wbH6=g)}rYcrG=)GnypDg*6X*rqh_IKhUOIzB1QIC`sBc z{kX<6ci7AZ8U#T0VqYG$Qc#gLru`rl=4B}Y@e`J?Ae7b-DE$7GL;Lfch-i?6*Oc&P zkFq2)9h|F;+sq^;nr|@;L#7c5nFE_zTqwAO#~f2AaBG4w?!pK52t)-;cR~<)$rr@| z;+u~gsl8;V1~`OTo7ZD@RgZ5Lc?73yC>%iChG2WV5li?c4=E3f*0BhomcE@h5V2}s!0!Z;XpQ+_EqD0b;m4#mh0DE{rp{Gv`=BJo{ zyNmMafIwf`c0hP!q)Lb*xaJ{E-DGcP*NJ=E?u3zsD^Z2J=jv4lOGy|pgy*Vl)4eDP z(_K%Dv~GB-le^`{eY|COQW9S)H=y1tfCd9(q^c(E-Q6fvOg0AJZAoBL41Ixg=^}LX zVsdt1kE>6L+4Uy3mmvaK<_if5;`V_tWDXmrHSkVmvxNLrEKfMiJ^^se>o|5v=jw@b z=Ux$S2#9@Qd<;SYqT-L$$Sp=?X2gGXN*wg~0R{_5=162zP#SuToX7CP^*_RaD}uXu z^o!n=30wC(fram69WgaKxYWg_ev0wd;49$GiI#huJWzS*lpF@Vh^m;UQ6i->8nx%H zM<&UrER&K2*=wCfhzMe*g081xfmxu)HL4V_8w@lMl{j3L9DolKTZW^Hp@xCnBH>IWf0XJcc_ zTYDAsy$TjEHf3DK+&X_KIMI zdap?cDuVDn=MNc(N=8~DU+%Fy+wBUL$q)vldNRtkJ2H`os+*k%JrRG8eoru|b(=P3 zz|iCp+_m9D?{DN5Lz0--twOgY5=j`K_e0j(ero`H%aFmAL$1$Wd9fkQF4(_4E;_93 ziP>&W5`2;4)@r_QB+Q)i*x3{v|41C=IjQ3uy)TT3-Mn^#ZI)}Q_Uj0Y6ZwuIDdE&Y zZaGDN+DP=Q53WE$vOE^+@+;*UWEj~svk9&v1QE=T&`Qv!i5@*l^eoxAxe@R*M4v^{ zQ8=y+IG_S+7ZO2ndjoJG7|+~+(h4BH$Lcj}lmbuCd9ka?qf{pcr;KX?fshSJN-jTW zQXO;L!}41mJ&bH`>AoOHiizGE2=FB6KjLd!T3QsrAOMXXKXT*#Q|X(<$k$n6jkqQ4zLjFbaqF?YA++OuSOlxRV9 zs}kKbavs9B!yhCkB|$(dg@=b+D!%O1@jpqxht>eS`v*rxlyEI$2LUo&5E(vpSHNS* z;F=GNzXEQ9sFzv!`PIO6A-F2Qj7FgE(Nkkhdl7#6?JKz1S45pGGCk}GmV3WOG+1y_ zwSgGI@Y&i^Ake=038^Ed7sE%Dp>l=jTY7fd3SwyB1R15`&ER|~fu3KWBs)r2Dny`o zNUMla8KCv21{pFKUj3rOM7M;`(9>WFu9(MR)Cfer0&0>(xom~?hNMgZPa3Y3od@umcc4Nw6OKGO+Y6D#u*a+uR3=j7yl{VGG0NMyH2Ex@?8 zB1%UA`+UE33Ut0D$_2PuLsYn=QVJXuiJgl;p_*Jea%&KPjqNkBfe^CNGvbU$#26z; zh$Ck=|Dodu4N}3mw-=Oaa&zjHUMol7e?WMyE}#X_D4HObfj)1F^70w}ksZbAh3hNY zqt{vW#Qw;$dKC@{Q4ffmwzoNA$XmB^R`r;UJ-yil>VgnH)N<&Y6Hl|N#a_4%H|E(s zErut==O;o*)Do>w%B5$OKZeh&fUQ#mY*%HcQol_jfOg{UlgA@9AxC6XCwm{ZqJjq9 zz%jU#64Y+sUx?H*udt9)vwSQL9wZ13;Rs2S1a2>@+K$|u+<3s13$CZ{4CBKA`oiU2 zUWLTLlQWl>uK+nMxq2ok=^Ogi{F|iC)s0)WpTz`?Gy!!F%ZneR9mYoH@xFw7qhzk^}`+Y8vTzo)F$(hGVpLTPV2orz2P}-As&_c zsftAR%`mn2aN_rk8#6RXMmRNiZ-UzA-#-1ARpDk+r}l&FbEoF{y!0)m>frbxs;ga) z{^42yh*uN`^G+RiUdxUn&TRrZ{N}1DAyLvOj&?2KTwVu-c02(6 zbn7V0(96fC=OeC-GwuM5qn2zQwBvJjHjDO7o%g~&5~C{DFQgwPd}7howBs#5g%?dU z*Dv?KKuN*R&$i_c2`GlWLc+A69o5l)-Z0(Tc*+Gc(y?hy!^Ps}fCPXjs6O`ea4evid4&%bf}9t* zH32)g>|tT;&B*ufoOD1>Z|tvISfYpD%?=F>l>!U-)Zd@{fa{UGP&w<_EJSD4==9NN zS`HLmJ)71mIX|Tp)oeKic*HG#T_wV2Uu*lTue7atW4&HwBERPWL2m;djd zz<2+#Ec5r5<_;727Wq1S<%b*zS2q3^twcWg%1sKG&H$Q zb(`@=Mjl-H|JR}T(QJ~4rLng7x*U7jxTWtWF4-#B_@kZdWk>P(4gh3dvZ0}vzb@vs z^25+i^~@)mGJm|ne{Rq(?~}9=mp}i{pCFGQ*Yv{>41XHJpFi3%lkcLS$vA(w*$-^z z_AH+}0_Xtn@R!Z<(QMm_9~0F7H?s|M@|kP!fbWt^1o)S2(cD#of8Ni<-;*!5BXg}D z@TY=v@pm%+3q3x_Fn_zAn9~1oAn^+Su|dDKxk>og+}r%`pCHfj%Mc=d8Nz=*UT~oE zcJ!YP6fg6i_6nBLf_Z-HX)Y}*K;H|RrXxpxUEiIT0sqtIk>?>+P`-1f;J;acBHEmg zFPPHbAnrd*i8M0#&kg#u&6g)vZQJ^P{sg}Hmm$3VWeC44jePr;9sU0fg)GP1*DpKz z|Ljn{fAalhD4)^+26yxDl#SW+HyvR}oq00cAL4_)A~f$7-ukII_}dk;9|2RB6TyrK zQ6Lo^CH$4 zh7M-9%sTt>nSJP`gY9FY*7>7y7 zi{(MFc>DYNgOUkC6xVlt!(%V}<5Au&uU2JW*V5C8@Yie~8Z{9YdzTZCMz;ZP^VeZphVo1Y zU~up|2W$-POi^kY0QHEdqsRerR`84G)e0dnp1GKRplWC~F-#Dve0hnd@lvgg&MJ6W z>Rm(xvH6FdD|DdRoQ~10I$P9yPAu7RmBFH8hq*4Z zUuD0>-COuZ-($r+%k8Tw(u~)wJNlc1O}dL^_=HcFLVdZEl@*JBp;dgnuW(3LRAcgF zRBCwURNc-C1wPdgrIXOjFX8ojUGO-Fq1l3Nz{Ny;{XOUL3&(_+y}MVGuFpF1wsW$V zX?QAa%!$Ly(Ycg~Q;Oe?zOXxE`jZWlxBKfM``%qvlh2(6*<175x35mDoOG7VU7tOa z@5Xt^?_+DHP=?3kXFiuRty1p0%s=<#mqmCCupp^lQO?*%6Rp=d)!`(<(kk&KwWM2B z&@?vLFWsf@Zl?c2$1U{rvV+vuNh<=GR5JYehclwGVpkl?&=sVQQb=daJ#n8iR%^sg zNL*L5vB%GbZG(2j$d@g$gU3Qu!`bw+--1R>u;#5+k)F_+Df7aJ82v_Hf`F3m1EQsX6D!WES|e( zvxA%aiCa$(Fg)EeZns19RC?C!&OVE2M*n4+ViLF6riVU+_^nbLTp6@bNSJwjx@kcB z*s$?BciHK*FI+4mn<`pwY0P>|JaY7pP@B#d8O`g~KH?NEKYQg%yGNgt==JojHAf>{ z2HQL71F3z+{xAErTG?kE)cD;b8C5cKy`40?zItZ3a|&j(^~ZF1P7l3jYFtyGI6D#H zax98EvCnm+Pk5(;Z_gnSo%>y}GePbV{*w$HeEEzbMP|z8j?DwZ8I3JfY&FqFYARCB z4MR@$e#bC<0(ecrSCnQ+FgFOOuW(&CQlAAM@J z?&y7%R-@hA1wE|+ZDUoInVQ*s+j$E*H2uq38;A93GrA5HwXPYFwb7?U&m?=a{yE|v zGa_5Q%PciZWwt|Uws*kVt4w5LRD_Y=qloqg?tQT{r_3GFyZy@-*zk4xA1c_N>+PcP zkgH%YGvuLCp);e3^7I}T4e~QCvZW07q$*$boHdV(D0Rb~@Hs_F&(Hcn04P zcFeq6mOrglVfK@av6{<7xXb8l)-i+h-v^V}M1-+f$!6AGf>9q*R8nSk^@iwXjH>OD zs)#RXfBD)fzE1G-7TM1e4RU<1+wW|(@VQaD*Ga1{!ta_$M$AO}kY@3|%M;$Ux0b6+ zD@=NnrFBKjr2Fel)^J{+M4VGNoza+X{+UYiu0P**rK@*8@~%OqT;eL#bs#+d3m!zuIQj-!ScIW<4-Ms5~E#$=$p=VL)*l- z21CG5isGdOc^iD)^_nJ}w=9g78i;%EW%Wtydy3-hf(q(Xm!|iGv*7a`9Ft8nvHTQt&o*8w6 zCe1Mh8Zj}BfiF?p(YAF@`N|LOQB-E)!$U0?7#QB77^B#c9vQh8mW-vs#ibKgcBUpK zZmbHyt|{-N4QO`z7m6P}deoKaxjWbLB z#APC63~iX#9IUrg5bS@qFq>lleH+Xj+XWi$K(i)@TZU_9`&Z7cg5Y5+w0Cu3$7A~I zvNxM7k~MftXx~xSU*%l>@y|~SVU80nZx+yOFyNnSgC=JIw(=f~P_fCWI_CUaC?oF{ zG@7JR&fyiqIQr1z0z1%M}-yDCYb2Na38frghjrXxI|f1tTR} z9St^QR54`iSfst__Il?fm%H+IiJtYdLPx~nIojwlU3qaa9j*+YywOlwQ}Ze!BI4B$ z3P2h?{aQ=YWuNX3$_rprRn=_v+&1fLEESXrZTH=;Q5fe9UfqEw{lVDb-!dT5bk^kP}-dyqT_k@*VVIBE1mjR-x5R z3u)u*h=I#xEPl>jzt_ZG?f+aDq`j+BPCH<c9<7$8G3-rk!n7skz>!(aGkm)D%Qx8@x5lB{Z;zW@V?uvq^VyTNKfv zr3BB9tiM@E`)-#A&EzCdoO-0+NA%6OFr|Kl{AV9F;Y_~;4)Qe+Gq-*rvhDZJCea*@ zR1{fi8iJ&OM$Y@cZKWH-X0nxw8&)1_dr*Zl5iU6R^{Da&VH{bFCAMd6XkJvz9Z}f$ z20dRZ<*7mMOxKH1$ve^8+CLkDEoSDH8|$@hlTPvjrn94_W?#5+KW^0Xp#vI^;}{6k zwYtgaSU{V*3p0$uIlY(O=pp{A~`aD@u$IvW)B9)1^i4)@^T zV8sq6)a!9GzlzP>amb^G)_*F4r^r(<3U;*>ySJQHvjufq1`#xnZ+Uhx>JBQUh2&6b z%}lk6xT6f&&V}L-A0@7|1^q)@>#b`ea{_`N$Bbqy9M|Zzrn%hg<=Fl?mIDs?hsB@e z=jT6%t0-Yb4(jUamJnWA&VYXNqD=#nnTu`EtUqFUgl%~im1;pe7*Dl9h;Pe1?WuE) z=sWJJJu~P%fV(~-CXfN0^ByA&*f~-c&a0t5p2^(d zHJO-UvXEwj)@MC+IM<&(;S6_qc{x3WLJ4~}iNZ8gDD?EcA|`c7PYxKXvGqImzh9D@ zP-~+8?V%?|R^3)?60(yXY!7OOk3N8|8uw9|%>f*4MLWOy5JK_S)Yfi)<*?ELc9pGZ zQ%{eJj&4wH3lZI-)YQ80%*zfgFYRbv*bm;3d!mPSugaEld|uVE*VrKx93IoAB_<@~ z%s+5d$)Tz2G9(@umvsgRi*s|4;ApWx}JV><_gEa^S6@J zn9(#EIROIGb^i|2H>5cVGhr{%Mf*rlI^OQS`5;HItiK;^I+J7nd#32Q zrXF5JBNvV9MQh1*R`#$8{}frFXMNa9Ast{|Pw{sp2=qX2chz3)xdim(-ZU%!6k!r{=zHTA(yVe|{O z(wwodfg&vz)k;RRjF;4Kpv0Sz)rWY7j;@nqpwBi}fSiId7Dk#gi@vSdE1xcfjRS1DQmH&3pD!bM)Q0c|C82HQSw-v>qa20Ms+oE&F{{M`#( zW`+iyH%{$TQ&VestZs4#S-$wOkC0ZZhuu3nA{teaH@n`p`sKbk%MNp1l`%DY6#cMh z-d)%WJmcWt5M4Bh@UBrjj`FbkwH5rKRn6(i$%j^;3t82L=f>fJv@ya zg8r5#HEimwic3mXqjGM0>=>Y0j;~F_M#xn|I0k5FlpecY|KmMcD8IsD;*Iu^2*IwN zzz%CMHoiX}Az+?W5&4r4B?qAURNnR_G?yo00seB^g{jG7m?N;BNNodxf>=z@ep9mr zCUs)}>fpKUnRgY-&<)O8CD%>j`P zG6^DFY6>B49bF2B<|#@E)6LH-I}TGvuD^e9+%YaOkxHA6a#23LZ)Ul&diIee43B8j z3UM0cS)baVaS&cD1m}ctBrieJf+fVv}HVpYuKc4s2TqiQs zyppT|BWfMDi^yK`?bv=+6a(=h6?vEXyT6%hqbKHz4j3PyVe_C(7lBvdRq8V5C61q_TlrpC#JJR+~YZ_}@U>3W%5e}!1%8Erb; z-Z}xHQN3FX*2pHwX@JtV7?P@Q53y$34UpFibjrH$3r}~-=0dEY(X)CM*VA~JQ&KfWFK;n!y2WU(?}*N;chUEii<~`(M0JRB&1`iOXn|$Vy~nYC8rYe# zy!N5uh6X>{G)~o+9k}QH?QQ`Rx@t=M3#Y4uP$>zuQREoVbbW@V^Bi{JEp!lLSxhsl z_U_#~09?kWWPSpGdb)Tll6T$B(brj#8)!E3Xz(^j*Rg2Cbg2! zMl9?Y$1d96X^dt(1Q_R?li^(d>8hA-L*x3Urm~A0yxCP(|8VyV0tX;bK?o#=5pAL7 zw|*GiOvE(Ivgrr|Oa0gf(GH1o2r)-`V)8iv*uY@4!TsK7 zLac{JY&c06#Dt}!&o5g~22>vUzuXjnYyb=zcb}D(rOQ4)uoqH$l{u?Zya3gW8Zrj zVNHJlAAyDeH%0Hc^NTN_n(`ju#!)V49tg5&xJo`LZC3BQ#gSC3Z5sIWmv;M}o2qnk!CHoZsC36Ye{ zeYm@OqHdGptA(LIw>#?R{RAqo-K&8oc8~H-$IMg6*MYf z`0MCuYHGr9xBEFD89{)43rS3uK8lB{>NQ(r1t@WIKonAZSJF+{3~euRAy1iGHkHhY z@-g&yUdJ@mv_$9q)y2dmS+V@W%W!|mOXo807dJ_uh>s8Ytq*th?hrYTeu`49Q8yHoV|hetr7Xvefk- z{z-(+n+BSkEWK$|U;8$jE`FYb$fG{A?Nbp$4EANMA472LYx9y*TRPhgopW)}sTep%27; z1GtEtZId}!Ki0g`Wdj=L-X$Qi-N)jj51Pcyzv(ZB*tMj2Xqt(X=hRc?F=IBz+)jbx z%|+`iyq|GGH6h7Wdxi;8fb_sMGNC5?E^)qR_WCP5cbN9b_g1&2}SV>5#pFJi>>Y0lZdr+>9Mo56>dGX4;T%Ul~0by1yuZKjJuf z=-VSgPqd%~@Ld8-%s{|oLrSro8Cm90rU^NAbk-x=^O5EMvG?U+F}LmCL&!}eq(VjN zwxkjgEmQ80gwmo#3o22RXdO+HC509uNm>Z)jgYjCrA4KMmT6C=b*gEb_GaGm9Nf?I z{{DUcdyn57&+#0$sb;?4?{!`0@;T4X=X4XpK<9T9W$+Dp$I)-*FJ0|NhXPj*Vy zfGJ*Dkz??5zNGXQ~@v>k<1K@Fh7En^N@YdEs ze`D(BrOE~#Rq!DEU7_1PAc)*&HIy1e-iqqL6V2nfLfqU?jxwnYn-FMazc(QSD|&F3 z(RP<0*#T$#E1tPifoP0(X&Feu2?7FVEZ>(4xSTPxS7wjZ+r!x|-PMo>kb>URaX1CF zc8ST{@RZQolsi4J2BCr(290gs=-O}r<5LdHk`q!VhtFoam%o*q02A-!}8(eS<)gjWy1E)j@zwquBG-SQ}hY6v1b`W9khl|(+mO(&3)w~Uqyk;gUe2FX3kc@-&Jsv)uhuSwj z{jwxednY_OzVM~$Y1u%tLJwe^?d~K$h~QE_5NAxjO(NR}#Jz*3 zm=7bv*5drJMyEniTt1*lQGSk0g1E5;fI+yzc&ooHromQ`zeXJP{6P+0)w#nUJS)&; z0niDyt>~mDhZEuo2yh=jTj26AaDy7eYHl2-?y_^&t^!S%AUE+vleipi%hL?}np3F) zJr9zhwE_abV|Dh#NooMg${pR^dgE7$N>HZ-E6@KAO5mMYSyv|lGLP0^CKu*X%`#pC zaCrF9GO#L#eVUi_MY(V>~nHl(T zVD6vKWkP>+AoK_ZeBj;)@d)JYve|>5xGoctK_mPkAmjk3NvMeZpC{}~aCuh@6o;To z>&c=VDz`X<&j{mEEJx%3dvFJ+q*`(Vs}G&=sj2e#$l-r0+F(;`b-hIa^?iwFaKfNt zxIjR2Et=x0f;7{Cqoe*sRo6r+x>-qD;ggp>fyp1t;dv78& z5YZ_K3B<|@!4!x>;Nsv35q}^Tl;9_v@cTE7gmOjKv>LRS=Syy+t8_hu2 z$OkkX?A>p?6{|X+Uuh_Y?Eu?^(Gj7Obb@ra02J(2;GF_GEtHkl;yF_41Q`Pca3}nJ zui391*Imgqz{IJukP_9`uZA8tQ$RjI5g+o1wXkgY71QvLoPEJec`H?cS11&9Gebm) zdwabJiESV;?4`nm=piTtRu$s+&5-1m9v%)e|4*nGeHQ55TwD0t@{V2^z+mbF5C7rc z05{k@aqgidYycq3^$x%rie-Dcp1g$z?+HP|w1j8IcRgAf7ofO{9M6ppW*Wlqv0yM>>Z#fMjVdJ-Fk6}c@&8!q1EdYU8 znkKf3uuUBxvSnDv0)V091FVBTN_*xAJIl>$5eIP<+9=7HR^X2;MajT zsSN>fR$eG=reimRrR`UF#rz;V0W?ne^yiyPhJX%IU}$76h}XmQMle>T5cn5%ssIU! zBec$4)|&u;l-QiN??Wed^ZA=MJJ_SKYJwU}pC8i@D}kE>$m}=Z4+VWg$os%AnaYOV zf#73%pvv$UV_=lx<3^+fus5)If>@{9e`i%bkP$`k=1&9tDot!V%z2a*Sya;T`mz<^ zTf4f~d7c{4o5~nvbkhVdeG3OLXV)*RLJo3YFhniP42*|<8H7KDnqT+tT?}~m(V-Bk zr&O5|BZ(W-V(6j*vTp(cPN0C04+Kmhuw3U6XyXTW+r>i!xZIC8knc5EkHMHss2Uq!4a2%Dko(L3G(>ejOUROaWF9;1u?f{fO55akU_5D%S4`sqOy_+j< z$elM0j&ebSy!#z=qrZpZUpv@yf2e=1LvY2bJWRp<_*&}ml4K#Od@f;$p(|8eyZkxUBETuAsC{Pfk4u++#t z3)$alaO~N1jI_e)*b>YopiPYhJ>rI3^wg-jnb~?RNK>^Ylj35CX!-jcs zP=|$G$J?sSp`KsFsR5HO5Rp&G8gETMUCo&E^US@%`yl8`hhED|;`njWKH{Z&cRV}0 z78QyKK*n(?!;D(q#3MbPVLe0kESuR|H)N#e+w8L0()W`L%cNj?yLbU z_#XD5UfuVB`G4t;eaKC*;?Um&D_NVB`-gAN2^5f@p}*F>v)ZiWw9EnzndzCPK9?hj zZZgx!n$$x5h_o#V>C(B8JSH*4X64^A%m<31TS^SHM0c5&6JH*Q5<0m%#rB-)0%uie zs%EFDLK1$oWKF_wrQJgMn5cDV3#(X@ zUSCgPfpRl3d0O0P-^_TBVjiV1c#c_l@$*>oGz*60K-?<&n`>PWPnjDIIc#iqcwJx~ z;*#){eX4sz$tt3EoOIkiVl{lxC$DWWX4kVKdBW&Y<;vIL`n;M&QWEMVb81;lAL+QkO(j|+ z5B%LHuUEnF^??)v8o#`ES9pRdlW&l8{9W_d<+|xLA6}_2S30~6De5A_*BYDT|1`0Ua!iO99XB?e-jiIKSVkv%(C6YeFnyz z_)c3G!BdadOp9_`;HFBWKlZM{GU)&9h41 zS3z;lm-#nYU>JreSrY^MuJM!MA?9B6riGHfM7nMmB-t8MyVQG+^)pP^ozkM5 z6Ew=(iTgLrWDl*0Kd^6T2jnk&TNYZ@?pu{xHnqv!)5BIJH+!RS%k2H1s}jDF_fgiA z<~e<9Igk|1S>il3cIX|+X4jYaaBXr_BjNb2vY(5;=k``Pk`F27&Ne!p%H|8qbJB^ku@a3^P9Ozvh&Q?5UqQ90CPmd`5kRGDq0lwUB|RzU33t;?{OI=R3_ zX4-Pal;z?Dt~8&arQ{U;pKi${*5;Y_^tD^6;;n;&zL+t)N}uL-k#r)qe7kbwi|6ip zqzg^-$0DCkME%^oW5M0kmYv~Sa{|S`s3gpk#vGzw|CrrlG08Nsp{Hh+Z=Mxz*%3*s zDfyHhrWl^0(?PS}Vf)pzwti?JO~#rnrf`jweay(v#Vg(0j6)rM>r4mp&jj z%jm~Go%v>ETywpueY5QZy(G8m+mCTxjd&d+dV%}1cFk|O!?6P23{_meH;e_5U3dRI z);RF$teLVbdqy`es(tcnq2gVqGZ9f!yS|6YT#4lG^IGh-?e0`n3p?J8{Ms@7$(8{* zUl-N5Po%mom$ehSeX}hdrYz=ptjW`;#xjh$-RV)Yn|FKAmPTIw6Xcr|&V#gwV$XFN zDLMrn=+(QUZ#uZGKP0NFNa=+`inY0LEwgUhfLw_xGbE$s&^WIkw4%LH zXtG@8K&7%?H@a-iXgSp+Zs3%&wQ;WkdzZp#R?+)OFUEcOzTpE?tj>zw9m|DN2B$?@}m~Y|K15X zZO4o6Egi?E$4mWZ_r4fEac8#jhlS(V6Sev=ow{`TI6Im;Ww5i%tY!T~(#=FD20uNu zjyKfdP_fUCtgKH$qvy|NjbCm$@hq}D+$%U}Aiy-&xrNRUzpcz3ko^|U&X^XLh^h?} zWM9;+jUJyjaXCD&_{FYEK0`JEJBFLOVil7z+H&7cY`e|eeO@W|BJI}D%NLd(Tv{lt zPLfQDH%rUkQJr~g5-Sk0^u{~C4jZL0B>IGyK=O8wY@k&*BP!8&}K zLf6_3u@@`qk~pfYA}L0t{d=DP$^o+83Y(LxTftMKjfclrUp0w_;Z4wFfxualylGP@ zcR#B2AnPr$h_!uB%YD}7W{PA@vNc{z{!phrzwIm5Een>GMfs%!4U zDlaHw4N*cZm-S0K-uh>umsxw>gysG6TeOHv=d!J)H#|#qGAmF?u;x@ z&rBIl6SFoi+|IC>nv^3|$8$WYT3nL8k;2l{HYo-jq9<=kr>x#bo{H$|nR-wb^NCQx z{48C^JDyU0cTA^f`bf2HrRSy`PMgbNwWtS)xC-30VZDY!wAnoBV_(!Fw?`KAN>))w z)kYVxL>AFzJoLrL*>&{PJl&d-;+7LVE~iMzp@KQhXiI{}k547&^su8jcP7IWz>e$@mFVJSnH26uHDXH}$cu9M7~EGmPr)S=a)BafTUF*R#C6 z=mn97z-K5MRc_m_qZjN8NM@TRsN4<3Km~PTl5?U`BuKR(WXc2H>uvm`+0!2?vUkXb zbbhMk+dI)ifw7#S5V2zuM9XhMcid{};~J}5bPb0I-!DmN1{5$FcI1BY+}h0SCcF0afWzp)+;deIoCB!o>yu?>H_u8XS+n`hdTJ=-6$-`7P6g(sy@)PX zAblt|xuxiK;I!w46t_7C=o6$hwG%gY%S}I)v#E(_yW%7m;25_cJ;lG1(IAr(Di*N7 zAl+g_%F0}%(>Gip7dlPyGdNQ^L)O!;+h{pV$G||JSPm_<|HiG)Ze4-{FErmIq)5-k zpKK}$X`X$x)Yg5hGDc@O=(dkq+W7;F!**>y70Ka4H+K4uoUx`}E^1Hw(EY?$^?Q5b z5K+kr{-`YcRG8Z5aT3{iz$$qC&2PJNpVl}MnDdvmvOM}zn4M!5Cog$U25+#F9$`&J zca;uOqhc7DXJ{7Ur8nQE7?9j+dIZa&zP(F%kU(XeNE4FOsIe8Dj!^u}A^z|#Fmkb= z@_$*^BGktmpv~S-Z1){+TrMD>>_~%_Xa;AaYpuid9KN%c$vKg1mHL{Hy-c1fu@1ho zF=R-2pJ8hGa~5WwMDbNK91r ztkFEKIPtT8E`hK5)x6dc7hk#A@$Z)pIl|cTlW%b>?n(r>es$vJLO)Sq3um^4?rs2I zL3o0VA)vGi9aGRkc>KIIfxu^R?jklxORuyfov-PiL*Vnh4Sg>>i$B}?v}9#w>UEuI zk_GJI>>HpxJyLdam;vxO(9aJ_s#~zux;hBt1qt4Me%O!mkym^zs^4R!0qf1!%Vnp! zl@ModvUkGo3ty%!xn>D8QU0Z|=#vo9)~9uPYLhCInNIG^!sE)u?SsyvxPlFHy{8^R&a~(~Jo-0t2Vs>Vg@IMR*Ca@s zbfL7mMQ|Vccfhz1h{=Y2NC0^nE~Mu}bM@~}4#qkI)XfnL6cFGiPMll|D2RfXAfbwO zDWY|HQGTe{eU}pu{+;@&dsO!PQK*Ddk7!GY{+N$6v~L5Tld<{c59mVW>_U8Pbr2GF zz4hQ*%)i3mAX$)}^YeS(^D?{*Mvx^9#Sx;}Aq+mt2{YNXmLyq%x&q((4W9d$ge%8u z%?VHmtX;eI@>ltxM9Wzat445TB8xVi_4{MD;sCG1(2^k`0bp$qbc_gn;PF1Cr?rmA zur=ud+Zzff*@h|p&!N-lNle(e2V$`72_=V>aMYnjkNC9wnXh-*L23A4=60<4L`6V3JuZEpK zh!fiQZ*mIo0^(M{2$hRN3=n9NJgPF3 zw>l7k_qc~QO|d?DawiFtXzy5J+x^WA`1>cf>U`+jkBvg>K0{Zn=?n>) z!s1#F!uteaKajmC1VQf&64(NiFmx8)^tKZ~knqbOv?>YGB6ptCTcU|3=7TzLNmgck zqD}QCrh>e|ultExfV~jje7{-@tEjLIvL;wiHMLWO8a~vk=OO!I`>)!+E)6uVbZ1Pt zZA-g!;LH&SBG>`2iWUj@-=FXK3uzD^I(4`gt$`5$4~_^}-I~e?Q?n^cQkp z=Z^=AwnAsM`R9B1?`jEduL1nmhci+lHz;7W>~}ARe@2^fuLpmpHtFZ3j5a!SuPLlW z>ang2_j>S0_^J}b8~gXwdwZSAzyBZ*T)0p4&l}#E|9&67rEboBf`5J*owAV2>-ha| zU88?50pE#}{@<_t^Q8XwA^&+2g#X=A|2_)B|F;KdhSS&Nk-gS1V$-1I#`SCF9sDHr z*WBD~(eorF7v3XCJkz+lSN-N3Pyf9OKAxJKr@KmX?QtjTyRp&yH~4>KZ?fMOEn%&` zaNV^J%M@;y|0OW@hSZH4Thp7xwcL!{jO50fbJLl_vtC3kH$x-CsLKhx1`+x+B1C%l zA_-na>-*<5x@9hxCHMQ^-G=l2+hkQFE<~5`=M`-v@W;I3Tk2E^u0j9(V{eQ7|Cg!E zxvl=+hV*~G`2XoqZ;z`6XEjBY)H02j=Y3OB>sc8(=kERA$$O@N(%LNzwWGxQgo+qk zvdjQpteSIQqWWTP>$iz@GjVCn6Yl+Rn=`DgV_UTie(K$Pqy@s39FsKf@lkS0w0pGL za#&*LFgyNLuRE_SoHM$U?YRqnQJwk15tQM_|<21J;dMUio&LQZ91o~W6nUw)uEp9;gR`yJhMKqIih=3 z|3#9cl$uhTJ-t(Yp4$AMFKYf<+FezRT7Q-~8SQ?RsZNoCt#&rSZttK8HSJp4o0oG; z^ZmFRIp+>;Gg8d3_t=cH(hpV6V+A>#iz*eC_#7U;Jig3xayrSwq#e{|vtMkENo z7eb%*iAT_kO(4{75S@sWyv4o9x27>4yRJ8vw8UO-n*W(+HUuwG+hDOLb&Tp6G2BmZ zPIsQItf}ezb)j;>OK;HAc?jx`_m-ZAyO=V{P5I##O~W&?bN}%{Qd;!52gO|UPRj-R z-NLz%&MRa$hdboXC_b+=BAO?}D#~kr50w6V=wLe*SU*(0JAY8F(V7+bxegH+=sldPFJ^FGlq zYV_Wi3;pcR0_t{E)$u9ASaQ>RdQ9MRsz+w5m~g0`irH#MYGPyw47NsEh;rDpZs%iKH2SQ@ZbnIfqiVDoWs zZu`~Tquh=BdhU;g`kHw(N_#JVn`Z{BzCdP;oR~WW* zBEB5gbY(O8g9;c0p9Hfa=mjb9cM>huD8Fi1b5tie^SuP8I_UFJdQkjqQ}QJB3USwX zb9Cxd+#ymzC+*(sy$DWk;i&@F(-kaT*62zT=Sl4mo$LEL1T_LLO&@lsim@8bE5WixJ`l%1~TNfgVwWR*PYoi8LGOK*;i z9ih2;Wl@6ye$swkGBTs~vb#Om_B9#-czbqbtfz3IjLB64r1u*Nt(3>E_y!ezWt{G! z#SXB)RLD*~{nHB&HIbIWZy(B>A(P~-mQ-sR_O`$5REvs)+uc+|5n3D6pDp)=D3+$5 zxs$V`QGDk{j$vN_cu?t|sYJqJxj9y@G{wN3IUr8wqlJgZ>ddrsRFI+gpp;*?SM!LNd=v|nu0 z>)GrYXRYA9xTo07`R5vTyt5!pZUbj>^yl}U_)yOCM;x=XnJ&FaorIri=7%#D42z4F zP>wb>SeJ^chBWpyQH7uSs5+z+u$&^j_V&1_HN}7!-qola9OODG??-ZBk z7mSGK&)A9vNlj9Z3xzU+3^KQmSRVFrxR9|*Y1xhu@qi9mXWIG*&gi6Z3f_-dP_GN*?WSI^do-DuB=9clTHvp0E$o};)a`3|E?t-W4Xfm6pi#=3Gn zE|?>EC~$gsMl)?Dlpe%lE_uy}F(5s@=%_pHd6+pqJZex%>Gk~jUh&I|VM{NSzr!Zw z2CfzixBM7-L>$;b<$qCVHTJn9X++*!+)yk?;26t&YdK}TYR^p9_nso6_#Kv$4ci_X zHv^|Lr(;an_Y)?mF2q&bb6H)^sW08>OnkU@Tx!zsr~6jrfy9@wBzBAh=a`4eDq8YZ zPW8az%4&xWFKPs5b)l6B7^W**IQPOh#ULjx=CG9mHyJZop5hBDv}HKzsL>>O?-;v0 z&iC?*Nvem+nSRcu6WgRY#~yPcYmUZe%XP>1KhO*4QiD@zs@k}wesf0OjAqV^QDjhr zW9+`BnOL3CrRn;Ij!thGk2jeNgm393lSppI@!(n-XV<%IGP=h!9pC?AGN@oAN=Iuy zTbl9o>x}IH$C)&xt}K<%p_WBVAdxre2S@(HuI$m$o8Az?37)$-hiKhFJ3uzL7r9_K z>bMj6%Wg47i;(Nf2tAH_lAGnq_|taX#2jl*m)~NGeGpKJQb&xDlXtmEk zRV=Xu4tz^`{pJqV#piH_hm2nk4?VMEGg@Lbx2Ohm(cIGYzbAHqIdmt!{H`yBkIA1D z*G5z|>Tv%mXpuigCXwJ7gobd=s&FPBSXX}z_^H{w&cLjlf`55;GJQE;BE+nVKT_=19$wguB?4lEWuU3Xj5saov8Ps_@Z(45X`p4%c? z>3($Q4+hWQy#4&VnEqn*aKu5&2cumEUcrYB4$;R$>f*j!Jd=ByA*4L_yU3OjOT`e1 z4avTPI$?T@opHKwZ|73!`#E(Vs>>mU(QzfSh|UGTj`zkRo4*8=Pq^SVp`KAGmqJe{o0421cD- zhvkdN(k+~Vl*`qLl?l8Syki>eT`n5~-yE%?F6p9nI#rjAM5|CHsdC{C7OLU(%=q?% zbFA|P9=aXFjYI8;(j~M*mlkEdp2>P0dExy`c$#?qWpP8bC{-r$-Oy}BE%`ieF|Cqy zzP%%g(|qOurFzEj32*6UPMcSpi-p^%Nh4KixPEy}W|<+)YbQgc`zI^rz^o~|-h6g` z+L)f}tSLq9ZQ@LcqHg3Xq6Ir`Tw`%>-IfkDw`O~R%Qe|87pIR{F@l1q@DasEZ>X31 z<1LkSIaP_Y+rAzlvlUmT(!Nc-+t9T)cV2QJObWv^;O;4n3^Y}G?bWpABnho#=J z5Fz)jV%kiaGNbM`z0cpJTZMUhDy`nB`rc@D6aVCNZSibH>zJ8a%^NMf-NzE16hu&M z-`o%P5PO?76XT`Y5K}^1!8%X3?0T*6pxl*CUDD@kN6!j;F4wLw!k`~DYLXYNZ8O!uyPw(85>WLtoHY(cVJuys} z@LV?YSfEw^#>+1(f)?JckUsK_Y6#yBss%xTS~=VZ&84D zzF)7^_rwKqO}Ba8Smz$iS%%5bt)!C^&OGP)^^&#M{r)9&x%>Mb%%g>Jc)E2kt%}e~ z6fl$#&V7G0r8o2U?+_jo3H!ZjK07$~=ha`|=-ja+srcKE$|YMr{+olRNygKM1zI=E z%i@{6&rLWUaEg+@FECb`FxP<5q}*5ZL$g)|qvhAv3yXD^rDGKb1_xqzFs8o={^!nU%yVQo5B5{`wFW) zCubCxl_h`O{FCaR-M2jLdduRHzpn94%>lSTJ@gRoXCW{!Kirnc{r({D1Hul=qR;Ab zpS|rhsF@JFBW-|Hf`qFAWY$A}Z6KtB#vrJG!X~NEwOjxoZbPpmUd^mAY2Sq3_j@fP zBbWEI4y$w4VS=}w`}tF`R)Kr|2Fg}uW=Y4T4B?$;b@{}JDxjP%h^@k)38AnQ1~WVY z=veXj+gUN7{Kt5&ci3R)m>zzSycB3_+P;*eH-+zBRe6=-dYSP4YXb6K=R z#fONXS6udcOW3r!q8A7Qvn7u$C1N$N(f0ug?QIt6x)~S^)CU z}WcS6BoioTYr{|8PA%C;i>(94zeG#-+vU}lO z#a|eLJiiyL);bA^+~E*v-l`MlkIAcP1y4XZrwvH4fiS#b4`@OUxdV8vO+=1=J9PZs zh6dPN<@;uBu!MJj)J(N$X%PT_~h+|R8%Rx^78I^f0$qla(J;hnPxpGNZi5osHE z%g>KXh6Xv1DI zapyG9JOoQ{JE8i;qiv`D@$9#^yaQy)d{ig+)D;`yYPuF`hpAAlanY{Ft<2VbK41Nt z_wkK@tOR|h9j)PRiUY74YaMB`Z9wwA6|W!r(9;zt33;HtQ~T@zi--ib)>*KF_>fBY zuE{BSP7FdZZcW>YsEK{2nxE~za~jyF=D|nduDo})f8<$-M$&Yh=uFBjJjVSB=WAbK zSsL}md^}*ZU=W<7beCJb`(Zl*n?7#aEXX=-cLnC$O}aRo3p4jtAE^=GG*-VIh3h65 zSiRrtErDltF`Qo9NHCkg7$r9Dl?aMc*nPHYcc5)QZJS}vXVhwerSa)OQfE^`Ey(s* zf!vYoVU$KVqJ=WS>M{~CgxlP$`O~c!-l!14mTV|(rESZBKI}((E}v;)A-5PPEt*I{ z#p8j@`6PVYa5uH5@5r16*#X?gxB(I!zzz(6D-eR>ARg6EKwIt->g>9dfxYdzE^CyW;ckqOFpg~X1=`Q$K}}LN%nMj;4LJeu z!6##v9_z^bGL(c&cJoDm? z#heBiQxpQ4fI_DzlpfDzQT$S^i-O;GKDKYG(BKc?r%Zg7hm9dj^mO+Jwmw%W35BmX zBWj$=lnY=T)h+-2KKGAt)$D26X#WfrSKW3kSUP$8nxs#oNUgzBkswO}W>R68ZKMd) zCe1p#fHT+D#<%zAej9=e;7O!W+K z;{5SIF<}J5?Q-PxqxonDc1Qr6j@?+5oKWL*aq?g-n+M0lfe~8^+ErFS@bvLOPXX&9 z0iq!R%t@LP_EOToE;!xu1c~KppPZJ2UXN=}0QGr963LKq$V2=p_UC81T8>C$qkEFxJ z3h%jOT|@$DoxRBNMJ>d>40lw`fCU?xVo(c_oVpu^ zOjt#@)NI~54gA+Ux7?A4U{D?!Z{}Kiq(m>@4ZG%qP$y_3RH6rdnB-O@6`BWxi^Y{z z1^%~iy9@!ldNWQ^GlpqjKaA&q}g>JI0x!a&7~kZo|klk_C6e(c56sp!gO{e*u?{56iw5hJSPQK0wAw z97Y-2z}bKIsu`>wcCaLdtHJVgmn`R5I(H=^*QT*$QHAIeR=)uSgolT@T014ER3w*; zhJOZ*Yakvi*punP3U&s3BHJZ*)t`+)&KyWHsQCedNO{51wZ_I>aK(MjN-glXg1x7J zy|f)-5VbrEhCr)G!(Uil0*?7=Tn`jV0#318-egyl3#;wrJ;U{lZkT=-+ z*$UazXt;*D)HoSG3+Ey?8VK(tE;L)vM1U?E&^pP3SYkQSgmEWeFV}7$do3=>;jpKj z@&q(j4o8%9v?U~_+y(`Se3U>Eh8d!G?@HE(_Rx%V6?vzkw1H zf}-FHp1@s_5!tU&f_$bJ%^>i%aElR#H0qK4gtV&aom4)NV5J>Rm4>mA${pyciz<=CWCjG+dx_g0eSjz3jv7~}FyP~Xu~vI(p;+Ry zIrw)sv&*Flsjw|qbsl-NZM|!qP3Wgl&=E8e-b0jVYhm|;)U8!ea%SnVm;?E^G__}A z0v3%RgZXwxq~~zar)e0w80u-80r~=4k(Bpo6nJdnFqH0Wz!UUQEoW5Re+MAX#hZUy z*klL>q$)f1)}wL^Ia6c0oAY~xE0COZw*z6)(QQivdU`p}*2PHYD@1qi zyY|w-CQv@KjSyDz@~r%>JFp{a@-Qk6I>DPE^BQeEfC|=*;tkke_6|ah-4H~efYcG~ z5>P0#bXPlD5&a&9%rR1SSbw=YfssY92ej@5F;d*1g~n*ftMV*J85T2vAy$bkW5?XG z)?9dd>_Q0+HNao^o z!hR^MdaqgzDyIZO=_|-Xf_q>J_k+W5Wo1LqaJLh=f5?He3;YnV>vW!9a1ThNIB$tS zg--4QqDw?oOw50>D!(OHde5f*4)(}HncVH8q8HabFfYgtDus+e*9LpADNf*4x#=1Dp7iIZ z27i1+I_`Tsg79OE^tkj-RFv|EDSVeBK;0l8nyo~Tu^*c|jWQw7h!?#LhYu=dJIIDg zo3P=_68BtUzjtci;`LKkR`h|mKq{Pjg(s0n)Rc-TRfEGW6(tVQ4#ujVM!^dSVG|ze zA30%Y546-}prc|pF%5SYttN18j&4=0t~7ygB!o@=Z3Jo{u0QlrvG(NkOa{uw45>jR zhdg9=_GDK(icTUcdX=o1u?tM>9(ZJh!Ym-!vIWFV*OU{d&%^0jJOqt?dEg8Z7hFlsuFZ^oPf-zb_?`uDO3v2L*xYNKWyuTwXJIqhxz}xl$kBm5p6+%6`#aCS{dT|!jV!TQ)n`a7H1R)G~zN- zN$|aGaQiZc(PYbm$++EtRM}cEl_+VFvU(m`6f{Skpu`#gaiB~YD1N+*MY*p45NtwC z8B>LYUa(jJND1c>hf(Db<+s8k1Iu8yEaCbw5UR+uW`kG$-g@C-kaJW?8uRHG6sWad z@`CersoQ(KH|YLb5cG8=Q)D0`EPp~n%^J|tT7g_$_;V%5OCmBFQG5)j;x?X;ZTex_ zc&-Oh3Ge1j@;}z8UljmrRCBJ2#~g3)yQ9}gcyJFi2_N731|)eJpQl>6&i6d(kRAOxNYKCY^9 z4EE9E`(M&fkO%^CIdYHo&~@>dbqD-~zg_4-+YBt|H``_#TG;PCUmX;ms_;GirgYaG z*u)T1LZTi4H+KKXuFYXyK+kVT^P1em0sRsi-^$>SNDy&(sy(;05`z*{py&hO0G(Ps zd?_f|PV6_s@Dx;?1RrMoxV9J*aYBWo2)|hLS@qfd1j1vPKhS}w3+(SgpoyD2f)Tj^ zxZA15vZ{8I;GubnBd;7}Cr=;`k39t=PK zT1)HhIBr!q^WB4E->=TX5}oo*e}n!Q^PWmHMV}deYc0n#?Gy>XJ-LeJhOdby!_*1*wK~wk0GUW)KUB)|VkX z7kunTVUT!KhS`RW9e`;C{}_SrMVbv8O5s5uM%6HwPxnzX81>br)Q12(?t-LC|4}Yj zTe}7CVw+&exv+(wz=qQ>C2$Dj*wY8=K>m@7J^HU!*n+1EwKSUgmq6tC@@RzVb~NZq zIst|xOs%@N>UZ=otc>_qw;$;Hs0AwZ#-U{3sb;XDYb`;ZR{G(Q;OCO=GZ+qbE0=+2 z$?b2MMoGr^GWuZA_1(gT31bJoqwhe_L*v}pAjr@|4qL*OLJaM#JwW&={*b2SST_sh z4*GnxS+hCH&kq9FcY|IqI}IVV%pPMfliz(;Q*BSC~RQ%Er|_k!D&2Zh4m(ZgZerHGS7I;&oS zQiWDD8$PNXv_X=>0#PCYh1EWdg1ubv*_YqZ$O0Z?bh>u2#T-9j1Bw8_`;0a(jSCNb z;LOrEihv0Pek}*M;X3L`A$x%f$b%U-PyLE85oaQZW9%}`8P(yeL>-+|Q;;(Ug1=A% z*~nEJ4)_BpV{bJA*KGixp28;kum%jUcXS~nCe_mf271xQG8EWDm>ck80n98KA+&^U ze01;_mZ44uH#huvofn8BplBt+RbPOm#bE9>69%T6B$=jdS+JzHaYG==DhvULl)dah zF5rro_n;c!9hiE&8#8gP`V?Xm(7WvpdW7w$B+AW!QECwcMNDgJz&5o5AIItEr8>0< z$LF5I4PkJ`kQjt$3-Bqxg0|5((=;p4>c*hA;N}_!VT1u1!LK`g+b@)lkwfhmzD+l~ ze5Bg>EgcV=8Y~V%cQRjobQ^9-Sg^jHgpgTgwCMufoYW1_`f8I1-J zgf1YU3jjHv7rom99_o12MS&a*rv57r&?rz%(7yKV4L%%{5|tnJvK0m11Xrp2s4A<9 zD~zqM;VpdrtO9)vWGOQ!ppG6yFpAu*A$}Vb#JLLoTsgu7Z09 z5ne*I5eycCC#%1Iv%vHTUQrBMQrgu0~^z|6nlP)bA+HzGe!~OICm!Ex4B> zS?}HeHd3I$uey>etOub6Hw44d2Dl8g+J)fRPU8d6A@}NYu}C}-0s=U1gS+&8ei$!f zl=5lQ@Hvc4(D?#LA>X7GQGK*gPADsns!6EEmJQ#bK(7Oj&DA(Z z1RJc#nyJVGB^w<Zo7NqVsNN^f0^4Aa_5ey zTe#s-hOiLTzA;)tQN|$<-N^$?XAMSw08q(;{LCwENN#{C#ElmRg8G{>PKzy-@XTuR$*|T zcl03;arVVlS#(Aqxh6BuW~0_}yb28NaneF90G%fy4ikF0B5gNT9EDB*kcx|bN{fcH zL)CD2?8;E*m+KM|&n{%i4}EMB%8TB6{SbS}+TGh0@CoZqgqCzH;z&FjTvQS2r^G`r z{lWxAbgUu&_;8gA{lMdD?0pXJ5e$|=+HJsL>dhrMi_mr<(15SA4-PK=12s{ie(hd- zUsqdiY>_wC(xtwCWIjf26Ze(&a}jmH+Ie5rRB_9_#u5v~y1g>Yrj>6()SY$np>~x$ z{+@Zl2C^~)cdk!BxPOUEA_e-MBW3@SMD={&!E6Fw-t0qACcKAVHUC$UFq00pp`}+6 ze_F8@5x~$3S70NVzqYd&7-?3!$^aTheoIo{F!6h7!$3Q5My@=<2!ny{am^O}Huz(|Yq~&i|{rUg?9q7p{PEEB3@d3xDju}6L zwd->Nzx{YReo2%!ns&LGXVZ2G+?5CV&W0RNy5X|AG75)Ca7Q^nCSEZ(tl_)VC9=Y? zYPF3tMNIhCVgMu5qZW=H!Hw#Pb`n+8mdK#=WFABtOiy2ngKB~VXvsLpU3c}V)@y&8 zx+RRAjIH4j=fB>~kC5^1p6B=5vRY;xnrxsHHZl=PnH1_;FblT7M5Vbzd=sf+AwgZI zrkN;kf!Iw3E0TSar?p&}snWG)^q;ACLN_zmc*UvKqpSWbO`ztHw*$e|d(4Q`=AEN9 zpaK?zX&?qbbh81B^x?J&C->6sNowV5d>-}<>?wcq5Uj%S1p3BjYV)RUqBh}DKuyt0 z*vqCv`da|1k53pCi>n#2#f$vtI`h>ngQc@GbLaeu<_fRhbkJv9b*Q<*@7)uGyCU|< zr9)WEhfWUAmi0vWL};FII4tt^z=n_glO7#WSH9qVeLEQC7wz7y4B3}s^^zNEfH$)G z)#WPBsu>#a-VQ zqicG6Z)BLI^lE&bxqg6OWDcQQYxI^nhdW~e6bFR?Wh$QW1UG#LVj=UErKA5$dc92Y ziW}}2)t^&A&q$c_yNh9V*|8PL$~LMMrJTfF5oyFxL&#WypxiGj3)QRJ<#?MIrC&4AzD1GS~{o`$OyFYDJW z=^4k3<7ig;rx{}XX`^D&!EjczqE@hR>h@b9iS>31@{AhJTyb{1u3|DBP^w%;a`gRY zdB)$N`Sqo%?z~^TE2`$nYsalmH_*ieE!i!VZIC}`ooYslR08t~w^~l^_07$&6;lpi zzKRTED+T+RX%yO)=d5y}M1)NZtma?E%P0J*(`BOKt4#IuNEH}~YP%(Tx@^bE+wY8X zGE?`?eVp9YB=1J%p>=g+NJ}-{Z*l00ijTD)Zb+Z-09t;bwrLVVUacGVq-R(v!w6-S90A4`Kp5=MkjK&sj10r$PsA}zt^`i)@x!oc&B+PGwJoP z0o$d7c6zd)n3g*1U+;2wM=`B+xbNhoP;YiYiCT@UrJN;CO|Gk9E>wGSye{(@yPf4W z(0jbcv!y5V1?Sok$3kp|ir0i(_;Pzp`zN#Lvd@)vyV<36v%>ej-Q3*V5ZdCV_^#jV zLAspXJNl&zzt_`K&eNM!)pqoEbR64Gvmohv1biPm?Qvz3UXP4i(C~2YK@+3SjX7SK z$&U{?nnaE;?{ri*563-hE+*@nSiG1Oo6JuTSL>Gvvg@BcJ@<84Nb#(YPkRD+nmRUA zdDdgUZ2CLL*!N#obY+X^iUVPPNHT;yvZ2qL?Vq`% zCEY6@j`{t0Y>$qr?gkDfHGWO~pkG>dViW zgD&xbQ*A3E(n>UAN@Bl@Xr1$&c)TR9zEtqt{pZT{m7nKUn-W9QJoSu;p|S<84=AtS zy`kBOY_w_cOKS;PS*iDb*n97&DzjyKbenVPHiDonU_gROQnHC8h!P}&ibw{LDB08) z2!aFw2?~;P&KLoq$(c=15pffh90cB6pxu4Wz2lAFc<X)*1hR3;vRR|yO9&NF>%5XCJ$l1u$B++;WuXKBF&X9wWnjAhAKU^PJ zTwt%X@^y05vR0gI6xheFHal8z|IaZcw;|4_zxVH-Q=PYxt2cO`{V?z6oNJkUaH7B~ z+#OIy*v5NN~%D}%cMAb`cw_Qv>dI}$InvoO|+ECzR|LrD$UZ!gAY0a!+-ZaYkK3x z=^IWba-KdY7P}!3$1Fq}Ow5>zNh?0nQhj$wYKwhLzFNwhRB3F=j7s~i^JYK1eZ*&G zl%!2>gs8onjXmmkWK8QBgSzbx?_Gl`-3F82HM8d$d}YJOp&n+uYo62c{c)x4qesIbvbvc#_CeSs>b`>jfpA+y!n5dO zb}GFq_|j9Xm_B4+n!gz*p+AfDsczSF;!WG=M;${$4{Aof)C_a=ypVX2STSoDuF0Cc zyDr90j%FOC$*Qh&on=}Uv47??!R`d1_)1uAgpI`-goSLm)y4GbB>e{0OSgyZ4jgch z*>l~{>5K}0;nded+1r)Be&ZaNOs|dJM^CGK7*@pmqIR;f(dxrC5!px{yZi?uzKQad zj&f7G!&|l-8T%NsJdg(E`CMU(l-j|1!uUA}+R~j6qqsnweW=S_V>U~fj{5sqF^*bX& z>jnm)cKT+MHvaHg$Ne3NisGKJiWS*BiN;Ph*e`d*+*AI2We9He0++Hmktuq`eKG1{ zO6b0*hHYMReudx5Pjd*ToHqLr)o0fqrME_Gt*h$z#JjE`>W(L7oV)y~QPSc!RC^qh zu4M2@`Np=)s!cl@k6hw#NYwIdxA0d`;YjU^@ir6VFQd+>(C+Qe(2B{7lq=IQiG1Qd zGTzW43)dLupqip??c?W2nPMP?2StBx92OQ;!&#Pn=CqAB>%_WdQd~;%Af-&XBJVZI%Bj)#> zu0P!V%7m9ofuUWy`6ja&f2PYJL5;LA?j=>j?Ck?i;#96Rd!BD!8RF+y^+ZV+Wyp9r z_U*zmlU#hR2A5VZavrlWuM;^n)ZisSKDEJ_^T!r-;*-+=`fLdwLs+Aa#3TSMlbt~=O?u=h{HKJRB&a% zwDh}P0iMUHqZAXu#TQx`De0AbM8BBujAXs*fKzKb?Yua{Ka`;?wr zz1wEPR=nMdxas;h2+|`%R->y{U13cA^r_RL_Ku8{k!7k$KMNBQ*4zfqEnN(Pa=RE_ zjV-67`?yCa8s1@da-;(+E?eywyVCn0+o$#|6x&#_>WBvdj0y{L)XB&2Pf<~nsA7wxs_sja0xGn*{o0hv9+u(7~V|6k%jV$Ji#f?jOG;; zHDjLm@z9QxU~O0Yy`8Ia2Tbb4PrZLJyTaM%z9AnP#hzMF+htm+|onQXGO} zcP`KjckgJ7?-aYUB6QO`L+dHdhc-zt+(e(kcjW-bsP%4htXeKQ7q)E8uj;%@_+C}n z%chibfi6f%M-EHABf8$No?anH~AC*N--8bOY^PnsAP;2a$P z@0IVARUF%$T{lO0#Qyy;6j4)Ar{>oz;RA@%;KrY_kA3_4a=IlNW)okn6=hFo!%vmL@16+`=Hn)MO5K-z^8f#q?D5Lnfn(RB z=N9c&`!xSu=kMbvfAvv+wdkvdVB(^M#UN%`=@~bpMb7g4vxUJ;iY9(uyf5<)dAj+Gi=DTj!U^E)n<;9=`5CIwFEo#+0@K@z;aP2-+%9B zD|T~VG9M+XTs8vMrS0_qW=yGKV$n&Y%;ybz82(;Wui<&?2~eMXhhGF$sP@q#K>y88 z+2g)V_{q;?$1~o}e^=OV#1$W$-=rIwOBNO*=qY&vbPg})qNLA1n>ew5&G%b&I?tAj zZuphjUo@0S3;si7Pu|QTQTF-e*!5T;j}!nHW!C&n04#h;l9oQl!u$N3%o0KJ zi4KPTTG&4>H42GyjEYdMoSEMu!-n=xd+*~ce|4MRP4&5-sUb7${}9}{+qM4Xlu(cN z9iP6yVnt2=dpC&>TsW8^|6%=7DDBOAt5f`cuPRITy!G&8|MDIguXpj({<-X@Tib)5 zEO{~OGFRCiR9tK^Hn+=3mUq*EXHt572D$O+3J)(BvOjBK?TMZC$W2e%%%>QyHfoi7 z#>Y3NK{dwKFgBCNN+XI@D!S-`+D5xm8;=|*6e)TC)c^gJ-z2X}YgQJA=~h^NdCJxJ z*L}_IoQm!o4$8H1F+aEf%ESTsesD^yzWZM-qD*e8G^FfifV7zM(vIzp#`Jn>Im?!- z6lVc%_yNi{`84@Olxu3wm#(0E7Wa0dJaPvyNBOX9>{Ww8wf)JKd*9SI;KLShmlWra z_ak}URZ2@J9~d=Y?)bFP*@O6BtOs-8n}Za>JySkx z8T;pR?sqxhN+{p>eABk!0FjRtls~C+n}u#rem*Zk}HYCbac+f`d!{7q8V^l$Q*p@OjvWmT3GX`}tc-C__x8A`}TS zn}hOg@$^N*7`=i&j8EAltiXr)VQQ3@l}%4CkVl|=)33X@=;w~D>AM{t{d{tHU>oLT zHGYNbpim06CG9?vP(YzvvkP6m=HIK8)WnY6EEj7A8lyOw4{vR}+KG=kQ#Y|3rR)}Y z{$q)=#k^jHa}VB(oQRjdFW3Q>erDEIvIXDa-+;3 zot2mOg3Ee_8t4)&`dfJJ{`qGNuDN2xwIneL(a)VJQ=D)7s&wYfpy*55Vv6HOG(@!& zIu)LMdh{7Yx9<(oW6nK0@xawpp{vwq%a$!&{cNzV-4Bg&zDtMDu~EXAAY!A~+;qs| zQRLQoU0=emYSk)(=9Cwn>({MAK`T}v>EbIj{=|9%#Xw$Ti;u6DNy>TdIlcM!-@`t9 z_<(P`vo}HECrzn!Ajw>A8F|du1F#%)TPPOG& z%KNY?ru;Yteb+e@yG$od*GXtUTiA0qmj1hTZLJMq;v3!-717afgZ%MJmoBOB7o(0| zpQ$d7BDUnDwre2U08uga)W%Cz5mgj(*s7|B% z#*aA~GPVG2eJ?+AFzFZhqIXy-Qw|+U+YPf}q`%Zy@aA&nsk7+nJcs*(+$^qNPl2A* zMNN1RWA|Kl+ejKvGy08pEXCa-lI!TWB~X19$q({T_j~#@4n)3IPj#3Ju4?|myHe8& z|4GxU-eWn~t^r#70=}v^giF7M85Oaa5DtwT@84BcFiZ00%p0$4vtH!T4RH^~dgvNY zY!v)(;>3wts8>FN$mImClP>4RH-75u#GbGTfd`*Lh1&x}cJ`RT^GU;FNH zmw1WX?C{r5)%Y#GUX;SUR71X%+4hsyGegV-lvA$U=eHh+!w}bLhpOXJQV*ua2NR(* zxtb*_Dq5tN1}Ve^hv~6$?(MUf!wU%O@d_OBxa^#=9Onbbwf?pm(! z()j*wJ1LKLou6GKnzP$f7YFXM_}Ht2UtZIrwI)XKAa2b&i%EDs%*L%*=Ora2S8v!* z*)WMWmkuk1GD-#3T;`eg~X6 zbKt-MRa`oqQJHDgud0!2RW4!O*Yy2Dii`TzUAqz?i=d}HdbE)=5!gZ)SD&JD#s`v- zSFc_b*}*T!J^chaB8r91#_@zjp1Ntq)J*{<}tKV-x3Q z#|t6S^rJnc=QF88DcVoBgM@M&V3E7>^wv71c~R54c8o+0mN!F1~H zZRX4#B@EO|Q@)1Vw{O=&B*Dhe5v#-rZ%#*poK!M8I{KKe$V>D82oDbLp)#w7{WBcB z_OeNAqu?VGVj{3TR|^}PEEq==M3Pr0)irV~&UY5Mxs5=PVWPkH%6prb(`jx>#MZD;wO2zL7)XYqeH=<4w)IU7hPi^$p zMA@T0 zF|8Kv_mkBev?B75jMpHvKoWm|W$)e?TzJf?k`hkGXA;M2+(P1jO6hH8{2K%GXF)O% zl4jZ=j8L&3R)Y=}d1%c>zrEQI3)^13emyV4I3zy?kp7?T7O8k69m+k4eb9 ztgX$1+fVzOl20yLw1`zP#(MxQPk3a>^XJd2O!_mwAEAFLV14%e`}ZpA|AYuE8@r)^ zd%L!v&q)K^o64gWUmqby}Rg*8@#q8v$tgNF!c)DlLp0R4?W#OPkB3!@azP#gl$bX;kSG_$T9hn%V!`RGuTu z^rBaK_3G7f_-29wgwV9dnEpM>>&cTStXD6@M|HC^(>~tb;d@R$h(dJ`Y7rl-P9i$n z4RA}KEt*K(I(dznLKiPvoh395(PY}?cdNsU`=AX;X*MFO6>}jz270Y%#Fo{oR=vN_ z&Xr<4s5ygC*kZ(~U$C$kVGl}GO*a5+^IE_2Xeg!%GreivXa2mr8(^d*%Pfr7v^|bN zz>4_UoNFI%At)+lUAwe}Q&SyZS`Qsy6xtNC%g3=XJQiQiN%AcZ!JOR}%rpq*rqEUD zT3FlLn22`o0XcG^Ap=7Y?M7QO445nfOy?^+S&A|n>-pz*pe}m0o`L^K3m@F?^?<_* z(1s*kl)PdwWCFmpo`I!)oQarcOSi!y)3hT2*K^ql8h^jJWCb}|Ol@!?%a&yq#ET%J z7r8U^Uay-3_@H4)rr_&IG_m|zbsP%RoY!yOaFxFSgy7Mw*jfJM@JT;TE#7?HbXChA z6J`jY>e#mG$PmXEPbP7!qbj3=h-{o%=2?t7AinZxyTFa1@Uy{!(c~o{@IF62&^C%2 zv~?%wvr`bC39iVo>JLa}KYaK+nq<%C+m5DeS*i8x#InwS$nbDI2>WeeE2$RlR{bsh zS2vePZsSm|!t~#CY-6p_k{Y+cU>E}mr3O%`;SmDR4j6-1x3zafaDH~u#Q>hSC<9Wp zuh8fc3{!iu+S_}xOc1}~@RxEf4VScW4$VCB4LuN=)lVVc`|K%D?WBF~Iq zc$uhGm;nE308c4(_AGC{HL?MX0(%uRGcyGKcm(6;_@kV)3MMUS(FZm<;;~F_mjK5q z$=eRL=jYgbe@>LKYdxA_YRQi1ebNzFDV*8j4^3AXnjS;YN%dHN8j2@!6#F|0wX_^3 zUqEN`{D@BJl>?QB4flF4Px2KaJc5hfED_@0 z8*40#4>X|tcQdg0kUe^ttMSU4>FHwuU=RRQ>4a?4qoLTQ2%HQ92%XLz|CX@x*!5Frh)lteHZnS>oD_=b+L4G+(P+Ib8Ve2Gt!_T-6#5*S zyn~PEJRtiW9v*HKRC!)h)cJevG501UcRG391|w-mA$kx2FCd(X-`s`y{^ThyU%o6@ z(Se=}9oyXogJ?Q9{Nk~fS6!l(2&RRXby;3ZGp6$9qYo=Wbk*m*f9KSBtSl_2=g`C; z-M`}4mic5RAChXkq&plG4{Q`|l&|_75z=~UBRwFh_&svBjZ)3x{9-ryZiT@F)%2JL z=uryqFDyLhe)Ah|V7alw(E|r01*`|SYsgP?7bbkZAV9G82yU3>U-n8M$Aae7?l^7C zu9EV$Q?N2fKnd{Jdi5=90zF4*wZ)xQ1T*6=4Bp<`Sc7~-`GHSsesczYp!J`;w2a(ytXaGx({ zZ*EZJ?s&wzN3fBJ6W7&?p?k1k)92jlT~ec8tC?y$jd%mmqjM=7wmxv(I|jn#aD{~Fcgr4RzWYsBuRJlT4=%CteqrZ zgxOi@Kq*`{ao4pOIAQR&XJZh7kyDb@20|3W#j$t4AF`!p7~5hv2Cf9$bzt{P2dxjl ziU);-HN7^|(Z#?=?EmABYZ!^Dq`MJJDE;4!?mR_hza%@LqXwRa`uhya?I9;b~ z>wMZ0eB;Xwp^>VS1fF?4ew?mb$>@N-{-Pxl=%tHsnwyCi!#!7PvEaxhbCRt(MKTYN#<<&N-c1(Q$*_(pnOqOEhw8KV{`bTQRvX3 z0jSS*OUcMs#$;~Ye@+zX8Q^8SLWJ}VBr!nuqUZ{%!JE0w;Jp&>-CK!1hVeP+ZX>vI z$oT{$`C1OeT`>H!{|HWyR~q2J+9j=g@GW#(a&gr%$GG`EIC4NebW!Q?n-ZJ@qJ+n! zRr%w`kK}CN@Q*;=xSxgPopG*bJ`!bqOFg~X2)AI{o&$oe#S$x)Eu-P$-E+BC{R#-I%a$(vidB7Z|9&+D@;d3NI;qXvR(;Ao zY$|ft=<%=SM=qzUlEr0$9bZz6I``4H!e2v0e|QoJ3^%w9CXGT>ZC3+AaO9=DUcY`_muqcG(8b-=TjUH3Vvxi? zN9*g$C&pYbNI265WO7{VW|8T3$aJJ)hk)mOA8che_z~2yfiBs+`>X?6D0;BuS4Eh> za%Y^oz3dlRm$V@x;=vbsBdar?GroPhMogth;#;ou;01)V=g*(FGG@Y4GD)bF+Hg;x z2RM*%51L}m!!WpnEZ6`A5$nPbj|`9$sAgSz#!SP7>Q!(ABQOVnAZw)BMYmOGV$MSd zbPDmRJhhHk1x2u8JeOWCEr+-B@_zIv6eAtJ)+=dQPBU;_ANhJ74Z7lD{NN?f_Eh*( z%$J-|!T-avVTm~(_UAzUxMmxg0Ep9Ey@l1gzjEX)AdgJgHB9C?hb)uJ z!35nNgg^k|mxI#NAKhE5w4yh2I36?z8|9UimH!O!ou2!lPEAx z9_RnT!=nfxb`_EzX)0PKJ(-Swt8u&7`0}Nw+sR)>;*lIiHW!$mGBs1x-)QsG2s4UR8k|7O_5r; zj`<=27y@<@uu`iVa@6buw$Z$$0Kc`ia2m+NZL|=V#zah|M_!K&(#Hz5e-qcusEP6nrtOwf}-Bt&Cc|C{u(Ca^Z_Z;s^jb`XakAVXGCb!wAQ(-f# zT!6BNmpN`bAa@GDlUqYpk|0x9as+OwQGiba=ja+%2)X)BtFwEv6JNMv_B@h}M1b@jI_YEC=;(>_Phv3`> zL`0iZh2BKFMDRz6%Lr$f-Sk9XVG!`I7au-5T@frq^>#!rR?w{v{Uk(i@2SU+J&mA@ z*TL{3kO0xs0K@&(y=j>#Jr&g@*C{~s;bWAqv<2XL^g|jgz6A~ zAvVL98UamhEZA|n!$d@t>ftb-yy zzTKux6Uf8pra%TcIYrpp@yqb1Je)7#IqvP>+IWVEwObcGSHZZW-Y6W5qRgNyoavM7 z{tKJgln>RO_dnyqsOJBzF$dN~0 z%vC;2u*>L)yQ}?&ygYHYyilzJyo9cSk}XdEop%7Ob_M`)c0L22n8Z<)((q=GSpq%@YPi*y94O-Q++k`&Z<@DqHaCfEB zl`G-m#m&>e6_&`qnQ$3*|Mz5&Hry{@tUXpv58qw3op?%*e0CI7mtMjJfY~I84Fa~5 ziAT2MOb)u4VnCgKg>NeHv~QY=zvJQ(3kb}}fC`xjotp>;2S=@oZLnZeMy1E+$qr>W zbLnpDAJo%lf7V4^%k`Jtcq@D{Tf%csfRJ5Av?D1h!BGXaFr|bc$q}o{5&*rPnLJ?d zS-<%FCoY3PvvAqR}-lInw!k`A2~ z6Kk(o*^5pbmjn2>#vUGS4;~zGV;!*J5Qi@*yGA$AdJb5EObo$)6G`0@E2{+0M)*Ya zfe=6yR3>}Tsa)7q*^VHYjM~BI+DIPjcaF>g#pcTDHipWBM(n7W#Gtyb)sAB!z1xl0 z{HdFfqNQwB9#HnMG78Z{AV@YzSCx6y>Sgim!||{L`W-u>aV%qD4Mo!l{Ik@`KELLb z%?Y2c3e*M**}0CQ98_B{(B!16ggKttJx4v8XUC2hnqL30US(3KkIJqdbnxKL+ix^1 zTT0FZr%hftjr0n=%iF+t)$5Bb4rCv0Ff4X5+;KoD;VG@-2j0AGKnt{lwC>4APZK?6 zKA@~jIri#jjbG5ig0TMjjNIx>i39{3+`_6*)iFE9*ZHv<>_|NjJ@5xOv~~2n+i73F z>MdKooWH+&`;T1PQ3H<%J*zIHwGnAE7WG~?ywh5JA3eG#<;SkZd#2d$fPB$}aCc>h zb*|~v+H2hraNe;1W~jf$GvffCRLwLALgi`h00&1!(;z$u@y8^u!j4?&P36!kFtXi< zu$0ZlFle*x`X_6WbR-8qdi1EjP=i*~VR~UP?c=du9G>8+q*E2SXzCcjuFxOv0-|id z#7l155k2h?g4)qCQeq|a9YY?!>4{8dY*h*~qBc69)EV?*eV2RKDS-@2Z%!>ulmx_P zoIuk>9N*X{eol6pfiUhE>Luwl`(s#EBm4Thm3=ax`rKZ($Ek363%q;1!tyCCVM~dG(n=Md&Pm? zho_Pjci(9ykahg(T*&(M>n|Xo7Mik0m?z{s*2?QCRhVH5hk8@z@SeeiG7^++Kh-DW zRr~u+8u9rlJQ-F+hU+Rif$v0yPt{KwMMmo%F!&}5Ly$o3QYv><$=wi zIY_wHL(;LJ1(@FS_@4cWN8A@{|}F8D{nvB~kk$KAJ>{${I&)Jb6sz#a^~e})K% zezNxjSxNHU(t=+%E=L)m^P++siX6whw5D?`F7#F-OptmC$}cS037Ne5HK(*3Mt#ER zZ+;u=s|CpPvtZgtsG-J0Ek9H?;5-xHy<}_LUQVWEgrg=9h15r-)Ku)oUmV3&5#iy? zo%wNp{k3i9&N$f6TJdHpqw)8p*<8611vMrgn|6G_rZDcB#z0ts^wj2QuKB6Yau^03`EX3O7M5Vk$wu zDY)0O5pNrh=I0KZquF4#BSj}rf!WcUZcs0Ws+dM_nPX4)(??!jmjy#Dc9xd}hSBSc zruK`Ql^LzpmKEP!b_Od!WE88nvJvdRg9=(8uwQgSje%BW_F&>KM?P6cC8gR5-A2&F z=6&kdepZNg1lFz|DnXhU)FN7whk1v{tRHSV5ga+Uwqzu>~|WzDTX*@KTvR z1)9fAbVA5(>?<~uRWAG<&^J^VyxN6nq7!h+is;z|&)~(3Q(V6CP6uJEoseLs*6-NO zN%c>8t+6|gNr`D%mpL`V>*)_6lNW7!*x00XO1-O*QL(gb7ySfN-jT7brMERZl{yYM zAJipkBTKD;ETX>9$qDp!M}Ib}LR2VnNRsOD10le7eKONLVmNMo#YraBmJQ)1^ZdVf z0jH|tTgv&G;JeNcFO3fHa4f@_oWoOgC~~>2xCO6HxT$0(shZK|!y*T$PcrS#eimHNI1MV- zXl6B*8)DX&?4N@^`_G>s#0W;RxEd3d9Zs?yRA^pF@MBcH_5-oYec`G&mZBO@$_q6K zE&E7Lj0}Wj-@Y;=DF6Zn)z9w&jT_eaF)=X_?Ly}hKZVuy;`E&7LY+}c`|v&6yakgrbkjCS*1%*3&+pF5 zWZt(g7Gwr=D36laao~`wCL-4g12Gy6bV;B!f}X2G3crE~tclb=HM=a{c}u{m=2*PYrPVC>H@ zX&hUgud7q4TRa0Q!oT1CN+Sdx>6X10Nc})9!|46k%FB>5VAuJK%X*d+aD#t3BBcCR zk7>`u?j!pgm8N^2K6c72QQ=+iNP&TwS(*IiTd!+^QzM0k+KgoFVpfEqgOkao^v96r z`}T~FEqdwIYil7PaSz$9UN|Y)NY;Qray15SI>ewI(vBJ)m`cmfC7WtZ>(cb)J%;r; z`KbPVw8L^`r(o^Iz5e zW7k{2*U8K+Cp-d*3u5vS($!_0g>i)YMTH_FgZ030#VU71!{_)5n>15seyWpCdjamH zjHrBLU(n(WZTPp!@YTI@(kZoPc3`^?3U;$Ea^vu|`>aX8jHtf0p z&Z2C5=aMAA8Xyq@U<)$Hj9GPfBn)swZ9?P8aV=^-a z&sSuN+A~VS-u>py9*p~rdDIOa0O+350I3r6V#S1e<8HDKg~=!x=+bTuVScS8#z(Tr z+;H!EKA(DrNansv2h@59nN|e2RwjqZA)R%Yu1*d5%k&*VB-%5G#3X7K7u%|OWNc8K z>+;iLe$RdJ1hO5O=|%{6jvwdSOUYD?Z^<@~MCn{FPwR!0kCC-zWvta+FvW0fHWn3a zxz@Q3g(%vtUMb=9W2QUA$<{(swxYj@*Vm_`69L%VTW2bje65KxTvL9!T1aUDTpd4ZBk*Wb^5S%iSR87WvD>b4dAJ8=na_bGZS3oCs zlm5=zom@Gy9ztVJ4(K_OQYTYI?hvL#2aFlwStE*Vp5xCERUdff z5IFMBV^86NYjLhqy}JR>P}0~}t1XPFh|+~h{zr7A8J3XThLF_$!PAHhQz%2YjQ|qL zq^`N5guey8WoHUPnvF_C!1D7Y4{&&pbxCGE_+ ztWK-IK6^c*;8&{X1(8f8IgCM_JyGo&a?txm)+Dth^gHvoB2G5wU*fr*IPaa1GTe9WMF z@bF>Tw>*$M(fV~ML>LOd8{q(8rxzC@?4Sz$!?ha;y1_TZ0QtmhA=;b5J|6ke2c|g+ zmCgtkLsS^kh;l=4Zzc$eUJ!y@#ssqh-kH*ni}^D;jrJ%)n{yh2mkwn>%hrQ#_3PP% zGp4Ku-na}QznPa2yFYwbi@_%r$fnm0AAwkh6m}$BzQ;ySa)e+cb`jfv1u?g0e!M+Jl&y-&h9&p zd3`)gs<$Xb7`8N^4wf0BEyDT()g{+a*Q?p79R+sdCSmO180(g~^IA|~zcfa0cesth zg!Lf^Iy%)F?$*buWV7?*tn1<|s(P7uUv=Asd}O1^Z$@>^cyF0>Say%V|(Aade0vCDnAAu?!3QlNnz0VD0eh z%>R*|*=($Pn0J|odHZC>!d@pTC%@)SQGwj5xEpcUT6$3jT=RKkiX)f_+zTrwsu>JX zi4Sp_RRJkkPpH`1@0c*D03A$Fg<7JfkbIRnByJ!*6Ofik6A=aA58;$&a6)=I3Jdk? zhT+2f7L|@|NS2qABZ6Hb%$h=NU7G0$DK6&Qjq}!!3L{aykfH(6jX-(jgVO}f`jG?Y`A&HXrX(gqJrVl9&c zWYI+A1DOGDPdqfsEy>z0@PJ))l7&bH3=mJLl}RFnGs(z9t+So*i$Pai9-Az!vpW)X z;ws4eXfTHn>!*ku9D@wwp^xi9A|{2(I8juf=o@7>J^*hZFDm-QBje}5uvl7E}~^agr`9K>l=iS<^l}S!dbU1 zY9 zKchOtWalWHQ7^tq z0rp8VjmG&!&YYAysO=#XfhE)#4t%9_?(cSx?p9W$3XgghnmqnY+w?J;vAr%rhTd(L zh~|aZdhW&Y*zL_|kobNBSa$>^4?PTGl9HD8w$P^gg5g|OZ2M3((OX?&J%W)})P;=Wvu+@w$*kQv3_J3Dt6AI!aV>lXQOQY9o9G?{==!eZ!;%>8B2+fd#mVW5xdYy#?L z+BsigB>IRbUg5wMWW|dLHf`DzaMbKM(PwJcrNgkU(n(xQR_4A^vN1B6W~zAYS`sQ* ziMXmo24U^7Mdu&gC{A+|2UpwO!){^6Pct5EQlk62P%gq?( zXi2www+zb5U`em2%S&kDAK-!{-_?DjaRJ2rCtg`kPft1#$Glo;$4sKo z3^=U)C$iRXc;Ow?L?lW01E!E*G|1F}Gmv38VxkDtNc5dd6d~x8pl)x(!FAizuiW|5tl+0EXo09n zYG(h)PO7ZXbAC+|5(wjjJC%h=R9JW?b7SvF@k_tXQt8(1+dNnQ+CDnaMh#nGO%$NW z9}>V~XW18GO4|-$WdWOSp$CkUl}F%+iSTWQ`=0|(8li*N!*oYTnn;rjw|3E5qIYek z^JE7@f~Eqohz;crAv*kM>H6@Yd4O0Rk}6U|0Eqv1UYJ!WA&&TY=zz!AI#m>&pIRjo zBCLV`x8mEg)O;w{NNI}Lmy&?M=WPp}Y8~_3wVl9r=!yW!WT=30VG|P*f@N<2L7%~^ z_QD@1Apt+qR)|6m9lQd@JTZ9mWFz?HVBut_3t*16*2C;61N;8{C7rx~$f5)x4&C|KK{b-^p_%U<_;q(l=SZTvCELdHpsn&cImToC$n_g`I zT0~GE`8cA9ZAM8Jl0Wi`WV0ihS3-BgATAoi z^@(~MNh$T;G;CBNs&0u0ly~pmJ;2H;MO3$l z&H62cAPPt*3j7m6WF&#C zC<7S)GJbUej~6cTP;cx=t_$O%B1fX$7`MkbVE3>0M72ra%~Ck6T-|ju=KYtB&bId z%tmq=Xd^7~0XW!$SYlWN+-<)CPzzhPP%O>>{0k?681UTbqzVaR%TjXdTj!skk=pZj4up1c1tH zgt90KD@z!{g4roU3sbL&Ah8yjcD&axxYnC_MwtCXI%^dlXXFcw6||y}yn%%K^#=8^ zAxjNDR=)BIPaoV?{l@ZkzQ4n6t^3G1P?RGu5zzuYkgVL?3h2=}hrUB;Ca*>9RtY`B zQf+n$UKYo!Vr~trls|Xw(RZzj7em3DY=M(;cBZJXZS541%x=FA*g%;KjJ1jZ_~;ZV z9@~fq6I-%+|LhO95BgNPjvncCy9Y5uNt6_qnWGUG0+9XsnOpP%R;58q%^+;Aj2tA*uUNc(0^XylrMe!jvCvhm7iuCl|)h99P0gCP`8>FLrG3c;GwV zL&^!GKq}T=vHZgyQ#GV1YQFikwFo2{GwMEQ(n4m=dg#!hT5UqZqical1C`Czzb*%_ z+OUBf36x#!#|rUmr`Ex{HnGY;hi0y z5#nzOfIa=n``T^A*|H zUy2C>=@ndP{MthrrQeyXqBtA=i<9Q1AJ1_X(T6kwDyIZIL=UK*8dPvCzx=fWeE&ga z=2JumjWmprP_x7p0k&nPuH7B@PXTJ7ahQa(+nDk}2@d@?y}D*1kW|;j#SilHw@_7% zbLgW#3i0w&ztPLGf4*bQH!D=JL>;gEs^wEC1J(a(XU6L|%clG-J~C8qlGp=K0Z@3W8VL66aQylS72}rMez87Wk0rhXh<5> z|CjFbqz#!6w4TYreNE#FOEzzt53XnqU|CGlUMv;GfN!u+t;Z^lL8S8-Zj ziq7}d|7w8#@3Z>%c!T+qIKNc%yGhRmdcUSL!jyKR}dTlO*E&f*y zLLS#yHte4k{ENGcApaosIQ0FC{kv6l{-e|-|0kya`{(|THU7U_H05Rgz5nh3ZTiRm z+5OWRNgjam;jz*BL<(hoY=hFjKKEaKl6-W6S6hy&Cy8>AOp2x0c)0y*a>K&d1bNk~1Aao`4gg_Hcx2nR`C7bOa1e(1)*UrnX>9K)K0rYlo6ea`ubIq0Ge{9ilW z=BGIP-)SEIcbdolhiM+OB6j1945x#-=jQ5ZcOE)#JbiHy=So*s_j{!pn^(3iS}L9C zx|(4$Qy|sOT}!vJZ+5J=udmN^{OGWTt{~U+ba02d)zykV_tXxCeeut07&c~GIPbo% zzIoI3rOPzL&u?6MJmC+?#zBwpgZ1_GL1%MngDiqQ%ul$~MaH&=OerYUch?Tia#JYF z_F6scB{QF#gYO+YN(trrG_`_aEO7@o>&8Wy%!r2#K~XqSb0w&u{ZyozmuY z$!;m-5oui-dL3XQvn^iW874nRXZ`%3+rhDy3$tZH?YIi-T!q;vPv*aMQu~orn?n}c z9DL1RADBp|%>HxBI~6c5N&@qMDEXTPp&O$A4ah)rHcKLRK-jgxiH7JZr=M$;tIjcu zC!>7*o|U)^1FsD7>{aM_jR>L{X239$V<$IkrL=7B7Qkn!=v5xa)1G(94c&Ryber~8?s|de}till2E)Ut}t0rB%NiHC?cfkO%hJSteo_>CZjQ~CRZ+} zRB3PbHMIVe&fJ{oj<2U=`x#tzZVD^wI^q)fv~)3EqEbUW?vm2FS|HrcSw~>7yKgSx zzmhdd1w&hW{QP3$;-ncp#8Ch$70;qjt}GK$rs$o-Kp9F2lUG-cTne9kzs?iPk9$-w z;?*H}4@)a5++2Jr?)~5@orjm@Uz=}OgXykynXy@v|aEuTQO<7wam*%(@c~au%gPirH4{h=8knNVl{+ZTOF4!;Vd!rcez$mcKmV>i(}@iG zHeJKTVc~O=vF5A{%FHLL8`h^)r_>!%EnsQA=flh9!BKWSY*a-|tkSQ4Qmpkl{%`VV zu2H3*N}_Z~NdJ_M_T1azFPrUtn6GzPG^n3 ztCgx1GYjMhn`aw4RP;AgOkEkwY@T-c^2(oo)?!SXuIzXB>a~r!`p$P8)A+LsvSw4{ z3k5Sm*rwkl4K%tJ@CLa%y)kN9pP2Zj*vYOe_o4%Pv662~d5Y5~YJ9)V*>;oly^@xB zRuOGA>RK(`ZER0hbdH--9ea4Y4UzQV- z7i;<9r4GYIkD2&0W!6Sc8Mz*6nSq*t%9o|AL*C~EyZd^0>~oxB_LVi;Dy+6=?r|W&EWlLj1L%5>f$BnWsW0ntQW3vSd9NDRv@3dp(`^G0`x_U&X z(|rfeP5aNKd*5dW{63R+mO-RpsG;jBefqMhh7OA+U!DB1MyZ~eOZN}HGh}J&EVj+t zC*b&WTq$QdEPqDNW1pGRu_B+OT^f=Zy(9c*9MxGmWWPA&e#tTzwESwJ&eB(A^wclz zyG7@)m%O@J@t-V=Ws_3Aqs>%KKTH))4(gjoZhZfJ)Vs$<_9*B3l(x?S0RgI|8Jg4B z!vxakM07#SWQ@dvQ+r~fqpML*vVaH9>TYOkj4de8#31)@(x#r0as;l@5X@x`E{?6a z2ba?))r}~afBO9NX`FQ?Jo zx`jHIQdf3;eR@M|zPWDhsKM{Ke;(btiDZ&(t}|}}lg&Ic9J59l`NzUD9JAL>3*~Kc z+F+zSSWeB@(zs3P>u}oGj*W8yTX!2 z!}=_}gc5wa>Ejt5WtjNA2>C3PpSb1B<%}_Nx&B^dr@fc7ipRw}rzFLUEWgj}v2&73 z=~rfy3Z(6IWs!E(nH?N>QS}6+qL9~d>Zq6kxjk&JR?2i^ELJ6F(t#h{nKyS z9o>s%TW6EpRwz$*)ABCJF^Kru1i4#J+uY19H2SVu%=dK6<;-_&_f^FnZ@zOx+WcO` z!e(}iLCJvX;cnLK9veO#o!?o?YelnBZ+;*UR9kb5Gu=(;=uV}>&4QdN?y+f=XQW!S z&L*a2jh(r!>80b;RC(rV_LX8qw$LlxFPc6v_xp`mzQ`Z;dNZ38;`i5vuy+h1@7>3l z`x|qD+=Kj%SmPe@ucmWjrlYvm`zy+RRWQ2|a%(Pz8`-|@8-yCF0n{dG@1>#sLP|uW z{dQszdc)ab%zsn;hu4sbDSQ8~MwJ^ou+l*^DdaiU%EJ(O>AvJX7rSgH)V-Vr;gKzZmA{&)_spjORYlQ&J!; z5}aWft|)xT$*Q*T!UJ>f;VCX5CCee3q_;GKL?QN7f*eX^YL6ODjr%e`^A*pewhbM% z3U7V)&Unt$LE3k>>~j);uK!W5tk_q~e|0pn^0`4)>(0!-_}wovY)dv}dTciXR=Nk| ze%qpm3$G_xrHW_ zIWw9*-O4sbU)z3Fptsk)GR|`Am-VjHw8FLoJ92wnXaWGcatB%5O8; z<#)fgPr-p}yNHx&ZnH24wSiil{H>1KKQ%_1_K4gH0e@9M@5W+^b)DrfJljS0wj=d=K{|@o_o&uzWeu% z@iB7t7zY!w-uGQ=mS;ZmnR7#09nTjiR?X4-XyjOlj}6;W=XKaqbDn)g&vQ zA>jy;ZB)lqyO}5jru@f~1=LqF_c<-!PFL|&x?YbvzOhU;-+otKQT}RqmIX>a7VqzGkIjU~DDeeHCvT;C|M47XRiy$t*b_q<5RZm5 zjfBFBlNAInAb`Klxwi$?qJY&K8X4uHY6lFpzM-QN1<}^<;xhCSzj;D} z&{rmPGe-OQTK4hix6+(j%AUAYi7w{qg|jUd=j=*dWX~rE^YHPV#R~HBB1t#4qz#TW zai8K&9`3hQ{4Z2eL-#D#=9ds;3P4`G_gh*+0Yj18&KoNL*JI~$# z3utT(luf!#feuMTvY~c0`KE@1?1jp2pVE_fQJ0KfJ2y7#O_qD~daYHVqN>IE$jzpIBGduv*x5WFy5VP^|^TW<+1F~`lP%%{q z`!If&$vEsX4yl9qf?kcenGd>>Z*vq>nyU55G}apJ!Q~?PNr>ggfYI6s52~SS@Jiw{ zpduPa*xJ~%L)wG*+!B;;p-_f<2L1B566MzDny_mK1v@%bDmp?e~=WoWuTRR<~a~I_?Q?h zp*ZRZ>J+T?N>GM}T9)S3s}CUB32DfHr~JkjrrV7g(T9!li>rWGGYS z@+l~ubVfQp&#%eA3+U@DkY0yIz^q$qxGNHD!8xVhU$V$DU`B(Uw2e6D7hVo&_ip1c z2wJ%g_uoOv4ktD&Or7=J>33OXE!Vsz8!#QRKzH31Fm1ro!CXDTRTcVMaDUFLSC_$r zgmX^xma0Rsx!y@edNNtzp}im__AsRXm}b_CPXjoY%i6R+6#FHiME$j>Wl`9pqh5VgusVGvX8hxYOs| zr~k^zkz#%N^eO5=j5@Rm5?G@B>eo)0Sfh6NeM3`Fy#PT&DLf-c!Zy6z#$IU|b_8J; z@@pW#4i^E&Dw(2X-4Nm;y;uVmjjibqmz|iKsFmh1LWC z*wp--ihsB%II4zYnrt8o#(cspRPi>^R~J6Y9AReOA0UI6BiRP!H=*FC^z}Q8)l5TU zyO8>TUD;TwKsGxD^FZK2Dl)dvefnjlyC)8qE%2y$S$0`N<4BMhu%r+N5RNm2<_m%b zXOl|ANFZndMk^E&9FU1hHd~$_OM;nS^-52w=NiROdR}7z`onLZOk@6fg0|E%#@qL& z=pmIe%w9_5+iz$T71D1Es8zlYbWr45fvI>N#-xeM{pKu@w&A+hU^#iwv|cS6Fcr+F zaOaOQY7H3nr?SX+qmHb^>(@X9=IZ+kIaO3E#D7MOz2~6@CxAXt8Q`K11##tBinqME zl3Qyp`1l~iB7p>-!M_Hr8+z=1lr*5qr*E~9WV|X6;+$@We|igwUxi?xuW~RV%}yv8 zE9n*&7HXK8nccp%0&E|rL%f)yS_s;RS@RNSLv%PQT11bF!xn6?yuI|*B>#ik?YnaJ zI52=hjJ}|q#Q8pn;Gkfky4YgL3RfeYlX7IYJh=pvNDy@eY26`?=$n2R%6=IsP5}A) z+l;%0{+F)@VDueICd0K1ZyeooN9hl@y-#KLbuu~uofqLI19!9$#}IKw@Geh)HU<|0 zFQC7E>d}rgKGY4(pCWqRK0cL5vbAt!r*QAlHS2O53`}ND8J~a4Mobxl(ECk(LTk8~ z>)W^-D?>7~|bRfQ1!{8$vj+v6I4OzlX8I&?z$HFKqJ zz}40`eW)Es3b}6m9^A&Pb~ru5TrH5OAOIu(91N7t*$H6Hi(5lVh{lb?$bcqRw9I17 z;ho`-@$sW9qENuq!1F;Z2qvYFD`&zfhKm8#ojMSNMYSLQCvpcSUlh?S&a`PffCjfJ-^*{o-2Ar8N za2&AJox#kwT8MSIf&#A)ujJl>b#N{1g|XWN>Tg{%@{~mEriIGy4X1vs{$s5cf=R z-Xe4O9F#Am-3VX5z6K^sW=4hrP+c6AUNVE^T7;lcPF)$gnb6R2Ysmtb#8&FqC?+ANKe zQO9qOC^-F!rWpVL$3a|26ZQ=#e11y(>*zziriKC!i6G245q9as84){c8sH4 z4=_jAn+ni^D1$~orft8WFcst|za3KmLw*XJLK{eQxjQ21ux)^67qUa;d(jZo4BiqxnS*u@HbM6fl=aAyo8)6@V~C0O0kE+hlM zru&3qkjmY^n8mY-_l0%M?{hP=#^Uio^^&A0@} zI#^F|Io?ZqF!@g)WO;jd4dFfx)*#{fn%{wAUJudJ{$2k2cWfy#uGs>~J6BlLY2!cP zsA}ryqys;A?Q!|Z0D)PZhe-{#7DQw$_4+>K4qYIldP~M5aWBxz9lluCj!5?}Umg)U zLkA)U?68s&Z6HXU-!}w1D`)Ul|L))XlukoU;^G=WX`1X5FwKQPg0CHCk5`DrYho~R z$V$P9rNc@rfgzodk)h_|QUv;p&#vDFMHv)vY`p7-G#|xffQR_33Zi>{2s4-%#$bZ2 z<4LF5{aUEecy^hF)(0f}m?55?MUZ#1gdK*EHW-KQ3^{GG8JvRG(Af@$7y0d7$2a@E z|06~+tx1vp+g|k8_W%3sq8J}~h_XLT&6I;i-fNznM+hj$NNNh624b8B1_rL#Md{n% zkY52qQ3qTS1d^IgPEMDj1_y7UbZR|ZfHuG{SCZ4OCf$IgDMB<07oCxtO8^FSXau{6 zW3o6~Fuc$WhF0w1)4G_^s6q4l?AZ@Lsl$EpTlY?NJdFLP3m2o*!1+2W{=9#7z;9Fq z6VfEH7z1OtrMON`5pv^E`YU}j0nlYc81#4q69E#ek*YHaX&zh#C=${TwabSi>r-F^ z{HLi!YalrR&Dfib! zyd#)h2$Un?%)%T_M;0?Gng;;V3h)f$y=UcH^TEp?Dm2_RIEc{t%z^8Pg%~oy>wmRr z#?uV{JeE&k+m1arXn6hfAq@z8hJGY~rMziomI8YZ8Z0Bwsl=4|1KfpT4u~WFjya%H z8)6QpN89fGg9~sO9=6l>FJqmbhtOmI&b>F3m7iK!Tf0C44x13VK%l$fWx&jnj!mQ4 zzr=*^!I&|u?LpY)5{PLB=MMrT`2O~j3&Ec;D2If2JkASTP+i2Z@#Gw@Y zw%UrGedVxrDmVrB67(Fwo29k3wz9}|oq@>)i1OR;VF_%mu%!;{LTL7YI|IGm!JuIk zkJjV%%X)sjL(L8kjYk1;)6&!oM;u}wI%QaLW#k|HU-WR+vQ5ErRG2-w*A0=xe<|4+J>!nC!~1B z;sQ#zw_0Zb^a0B)v~LJJMKroy<&Xo!d?=#GA^c>D3_-Sai z@RZ3ny>jK=`1m+efQ*K^dJ=RB^B;M7;*=CH{@0--K$B1(0b~r)xBov{vR4oVT}DK7 z@ZIpIzs+B0gFa6bxFM4Pojz-345I=C7FffH2bYg&YH1;z%%EWyOq(7U$gu7y(@RRs zDOk}??X3y%^cN@lXJV#>~2bBKfW|5@XQT!u|L@#pi?)rW>Y zu;y^DK#@%gdc7}4!DQtdccrC40dyOU8z4%yxA0(~vJSTiUeNUFcv2WS2;IVKUh?MHdCCi`m!XF*nbX;fxwD3406v$Mo-Pl67CaOfP6*(=FGnE-L!_pDbWbyM z_pCimOuiW$M=<#)K8HShlPK`upTUq%EuxG`%fLl5DCtLq#kmaOe)k%sCq%#^hPH~E zAOUHBq2QfX5F~?cu`{ywGQZ?X#<0&G1g^n9n93H^8kdp5hqQIk(Rn`$9fjyS^7GXo zKCu(t#{xEl=_NQq3zRH8xZGXllDU>?l=Rtw>VhKNGkBrmIUC1B1tdYQi;Fv9J)m|` zHwz63k!ztggep(&&SLA*|-oUmfZ$`#vJ)(Kghtu{Vt<426oHk1pxHMcVm~3{VasusQbf^6oUD~ zfumvbp1u?w5%C?x%aELa6c7P)J(wUF0se8Uq)&HVFJKA7bChoYJ%fi~i*hdoUN%If zkY-~bW2I6Qx# z1^Vw$NC^5~+G~MJ7_4e^J34ld8^N)AP&1G$^couQ^&yXrhrke=FvPN^ zMSs6o_XBkHpCC>C6CXjO;|sKCLEaT#K2M)tS2yJ&ACkW=9QkT%lnu&e{w2FLkoWj z%@ct>qtJ*`0s@^tSOGHyb{AmvMTHH8P5(8>YHqWEYX=j6U?J46{>B?xfHPjdz7Fd^ z`=SI~w{#?Gdq$!EE`LouJ<`(7tFZL|??O;3IA$pQ&F!&tJ@haU%y@J`ErCD)jXXv9 zdep@TyY2bf$s1;ViQ(KYb$o^AJff9^tcRrIKLL}9ma;`$N}0=(Ut{~x?PyQ{ScT2^ zF3~^>(Cz&!M8${?1XcmmzEKpp76M|Dp>tpq!B#v>t+4Z*!2{tPAyzMd%>^$A??Q%n z3ec*M*@!w+4QLqt@T>{geaprJMnHf088-JF{>3Q#V$r4D$Z-DP=qbR>>V~H3_l^*B zK%XDqo^2Lg`DSI~8JV*vGsHa82hWDOi6A3{BAS?Q(sNEE0tD-YOapaB^iIY}yz7Lg z)sVb&jq??_)r)47T%QSRfcy}`19{0e*iC&qe_6`EXM}!}-%wc={`VSXgoa)X4hKH# z*_B>}>;j=KFl=YtfHym|SZILX2LleTAfhv;JUD;d3imv?GjOD??~xxs`a4!uR^W}% z5%qym1hiF!g;@Xz3Kj(swCBp!O_=21UxJrka>JuU2s@I;$F1Nwq5TNs4ODoXCW;7X z76}AY?O+hr*YeB&jVA!WiigQ@WecY~>Ys-28y3RH$Hy?J_Y6*a5vUV`WrDOMGd-Qx zlJb*rcKeq2lnLg+(_fbGFY!}UI_4iyxu3U%o!w1{o#A`)9#Zg;&wZxoGd8 zsL|dOm8JhcqCxB44e}{1lzAP-^#Is;`}5Rd{nR1}ddcdqBzGZ2Zlq$N^hD~;U($86 z;AdjNBEj0>1)%Ua%T

2mhB4>RT%`oS}>mI?+bq)NHQ@g@;@ur3G;T7#s~$;6o`5 zW_AQJeFD@Znc&m~$iPG{F1#ZM@rJC0Q2ej$l|=z?>dZCDg$)FGG{^*-%h#9b3-r16 z*uoQ&SnN$gnKoF;t^;u9EY8csq0nT#j&U987!MOGo5DgMzt>w2S){d~pu32K8WAXi zl5&)9A^WDI!wX;rGI49}C1F_vz&=EugNPV9)kYyw2pYD7#>(|@xFJSF9bzSsphD7* zzH%){R3TaPgv|gA)(-%4f z^uI*N2y)C2I)X;*iM3E2^S~Gq7jz6CTo#4iRg);Vsc7H^)D6&agcPI>vYVp6v622U z=GR&1&N>yl1A>0+%0pxq#!!HMM|Q0uwGB)JkH&f?|LFrL@gd=GbPAyWvvvxFK+_gM z$*{rPdL87}cNaqsYC;DL71$aeHxnDgu5gN%w*@e^pCQ7n50AuUx{D;KqsM>x7bGYF zcxFh%DL%edXlgY+@sS9%oz3UHB%9UG{1d3*ERbNKp{od4HRj@ zl|yOgaui&P1w=^5IDnJ}s^9ouLyxk51Ok=y^VnVCQ2-^SeRU=J0%*<%M0cQ*RSmt{ z@&4D!Z=O2>GBxF2x&}!k601}Ra~lMD2=Rp7Z;R`bJ$vfe*8dW0jv<^GMNv?xLI($q zA(@m0parBd(57`2dhJ!$Z`2;}UWb2HKAW!d7K+s9^Ll~UipKf@pm0k2 zjWl8gI3$-kL2A2>%tC~I6Bs4Rx}CtcMLFxO6^MN_K@+RS;_iDCEBxqg zP5c4@R65AG8bJhs_8W9fvT;CB1oO=PC&mB^MUf4Z;YA|KCyINJaRvH8k1Y-`-Ch(W zqF5Vl8loG+uDhl~2L@_}h~5esv2o|Gx8Nn`#sBlMOmO=OT4Hc4=imP>I0`xuirW3q zi;fu4upWfaLK|W98k~l4)>GBBJ|Owp#D3X$GZNFcHvd zm;pqq6Q_*y^|PQ-3+V-%@yMQr`&QCB{>LcmdI?ev1!eV{kjeuiQ{}(G9^i#i!3zP) z0Af&t#{i}~s6F}8I;Z8Q7b1Il)o!(8K5|4uOUoS4G#Cs593M*xoM%gbL}9~eRZ}~l ztl}*7U+&Nw7LYH6b$}uDgd~lnzSnno0s&TF8DNJ!U-O2LBtyP%WqqFmjCkjy&>wFx z==_1vf}1dTp8bOaOhSWj4-5jzYt1O2b@>^r0g0SZQK1jUOWAJY=CbX-WTMW0Qw8*H z-yh+h!2H9wOAsLjMpOpgLpw4c;dUr~_Y2OkNJEyP>imlK2cD#shfr42En=%cnkxF+WjJdOrLfS&5QUL>K=B~q=JeK$cX28G@i{0q-LHO|V^w~q<=FEE14uPG{nztMR zk`R!j*8>@_^T&2S|1JlP1}+I49-2xCYzz7N#j!Ryr1=EZ3YbC!KP<94oGX_O56ER6 zn`MIYb#xtnIjeAAc*lfKY8ZeVeS6o>UDGTKiyAeTT8;vH1r{c9E#pE%K;g&%4?oTy zg*2F>El9Bd!Ydwd(SU6usR5JHXuC4`zg^FS=Jsqj2G^lr4!|Eg&Uw5P{frp}xmJjH zVLw5L>BPj_?2;8Qjds*}H_YKN3l49#+C1JqP~c8OLkkf`PzFpPCnm0EQKmxgBg4WzO}K_az)V<=2!Fvw{U%4i%6men zN={;@U4yL@q<2$SH=}y#adk7UihQciedwu2;2yNLvX3C2gra&l3;?6v9|jU(E0NYm zM8jp8*XoPLi_PmO2tdhj97f@eYB)I+m~?&Jn$FM9k9b1Um#mzv7Y+{y5>|MOFD!ix zme`JnR1bbqU#vMQIIkwPl*lXrE(fItp~F>qc`YH^>O+pPH){@}W1=>e! zKJz!Al+H6b1qntgTCT*(bPZ@D7{$Fp6*j+K5s(!^q82m)mKF&ztw(S_;30OpRWBRR z$VRJ02ysu_Rvrv0E-wpefvqMv_JtZU4_Yzf@$|8H=QTj-@=*y`Fmv0r`_Pdef)Glk z!dKp?35p?7-JGw=^c1YKxuFO1%}t-p5#V)EA@CTImDJ!*aRisD*x4QBob zfb4CkBMHIMP^t%)sqWxV|IGwQH0{Jy8qxa4*E}ksvVQ#dQCu$C2(dN6r=snR5LG~R z6MX?&w*t4Z-ApS>I}u6<831Vl@N}E))#lcrkiECPw)*w2L6pz-Px$&K8uIo1}G0G^j#lgdArKU z3ntn~fcPGo)kcPjoyV+=mH*DagS{nCBUHIExz1M&w>(o6m}@CZo@j|O zv8-8mH~N*Gh0Q=9a!1V_{U3*9Z8l|NPsiH_R1deX8E+j_EoC1hm}lExrm5G)U&k(+ zg!ILii5j%UEs($RTO9hnPqZ&?fyVflxPtY}Z;jhEAip5WX*qwgFkPKll#qCQ`7J$m zPcav7PvLRfs9V@%i#Bum#0H;f!&uI-ReGA}PSy(-KGQ!LM!Qak)U~n+aEZvd7<-8p z=bHJj+7ZqLO(mbdlc6fNASZ08I%nEE>u=~b@!4@@EUSr9VTuhqTegtg7ne>hStyK8 zJ2`W^H7>nLE6Tua)=lvFfJ2{M`RxI3v)$s8)m>He4{_|F6$S=%trEuhBxSJ?-VsmJ zMez0m~`nLGl-k?A1OH z`+bb-TqnH6Zku60O#Z$vGjfiks?sBrJ*TnIEmXxeHa0eK*yv>aNamC7^9{6Ss(+j$ z+w%&E&>!?d!!(25sj)x+b_lWO2AihK_KDqazUp-%``X7v#sISr&KpgvPQ4}LOGR4kn;yy1UFt zJ@sbkbRGNP`&9hy7|uvK^OYcSB%|22@9X*u%*kd}CNZjfwptsmICo{BfC7?g0GF)iC=U9z5A?I6*=! z_MZN@wAZH<6TDIIuKl08ORr^{C%X=g2aF8b7&13_ZL$^*z+dWJC>!lRIv{RJyP{R( zZ$cZo8TqmDlGRKu;lrG^ercS$_=!F>&zTRl_!aE<+ztJ!Cwt^a;=Y~{Sl%u$aMAgz z;Y-3+JS`?!--~QNXbgM&8Kf9BR<4cyss$!R*ob)Iatr&0IX!o*^6wf?+bHqCL{bkt~Mh{C3jf6 zCAb$KL=3&LUgq63lbj(%3o|6D$}g6E%_AhWxUv;@RM$gaXJ#mE#o}?jXRrByH_Jgk zmT}vUZM9^aO&^#4PTluTIoLr;C3k0awtGF5_|!L%`-l+%|Ix##<^3yba?+qBAD?59 z`l|C_fQ0bElOV$Sr92l(eEJVAKtZ!=*ItQKtVMseVEcuAE1Kg;M&)UiYBwy)bD@w| zEs=AwKP{T{yoMs$L2jY?mkgbz5p;5>ys<%P>SWcFq|z<1ud8dwE$Q@+_gexx>6{S4 zzkdD6yYR$26vZ^}A6{!NF5n{Z=!j`{#=m;S(Y5t@w`gECt6Wl1y~VCiwOg`o(cVW$ z9f}CLbuuX8E~z*zT2-UoWF_sjnWXMk=Y|cZ6)&6Dw`FfSo3rGbm&rvhX0s(N=-b+N z6nz+S9L1l=t>)LEP0SQ(VfDm2J-I*ZW4?1%tw=7PiXXHT+jR?T|CsxuMK#?~r~9}U zS&N$#UnnuSx`#dZ$BZ^@76g$vKGi0`ts|7gP5B@|&InW)S%Zf}}L zzwPDxhMtp5#+_vuCsK9u*(!FCg@-I9jt<@~yRN6dJ-1eajN6YR7=0cmHqIO(u%(a3 zXGrMFch{H&<0<5?oosnEiMC!hZD%;E*oK;Fi%a%4)-Di?^PTd1nlDgFuXPSpkyi~o z1zgK6IDgmw!K8YbmOXOIOT3d%*;dqI@tA+|bWxRL2!Ys7AM0o4WLbZ6yHq>*)c19Z)dPn>t!H75a>3GP{nM8@%JND1q*%b0wyBdSHj~uUWW1YOQZz^Dj zt5Pz#j5|n-?NpDVgU=JOsjh{4Ivk0#p4{s0Ol%10-g!1JnpiJeNQy*EH__4Onl3g) z3+u8-<+r4%lUoK!_SKSnHftjn*#PI-+ahLIz$l#9g#m-YCR9oEtls-3zh zV#F?0Ie)j4Z8cVBk6+WnMj` zKTWK?TAdcAExxcXz-4Y>;ZeE3yq|BNnJ_-yKc-2p^US_w3Qy?rt1tK`HZw0qhD>v7 zzAWkh1ZAisXeN7Lua~NULT)mnN>W3 zH~HZm_QPGNfSz|dpVi;CCseKP;D<@9T72-y)${DEhKsDFf;LaToP7RGJgnL`aCl`@ z!+v=|O`koBoEG1Do)*^FpJrY_pHWpEad*zZu8_`5ira{>wMnw`cFnx_A=yyO+SL?% zw&&8qQ2#ToIBnX{;*~nmJr^l4efB{^-(C31Im*}WY07At_E4T(Q(eDQQT&}bEv!&n zCzYt7k+Gj^_@$9^_F-E0D4u#_PA>p&a+wx>ef0w&@#NxIC$%RS|BW2%)n}eZ51JUr zuTrv|`8qCDZgJm`H!f2r$NCF3zST^kS3lRMrOkHc(5{&h)2`il1mh4wC2i%!p!c`0 zY^+tP!KYLleQju7`d%+4_LK`~=j?V^y!yEb-&LlHBS=ZnnCi*zJlTrx#~Vsr4IsOf zNQ%b!8`x3~3TWLjd>Cqq-Rc(?1SmX4`s3hM4_&rwq4#>`4}xWrGKj>iB<`Mw+B)Wk z#`KHXIF}0PSW;YVTogT9)voNWE$eKFZ`yhNWs`@kJ;71-rwbOw-Ng^v;@K<$Y3xS1 zCod@NjU@*6O}wywjL%a^52EZa+LXR%JiC8&o*SF)w!84lwpCi1mi5vj=CfZ_h+RXK1!sG(WB9hB3A5dJ#|pOz z-l}`#y2c_AuMqZxSgTwWmPN|N{@*7J+h&rDqHasey3h-AOItt6h78|TArMfg0_KQ^W_hIPR$ zH@^rXSC>6W;W*VN=ug)=7(3b46D%1x^ay4%x_K<nd}X?G2go5S1D`rQ$dZ+nt%p?dIW8Q6o5w`R8d=CXjm=) z&@v(CV6+Qh2Z*sC0zx?O?<~aS{zbrtzN{iGY67$*%pSVYbVExk4bSGK1jMnBWW-HL zi8O2lFlUzKFhjt3%f2`ayP_*jvU~ORDSK5v#FkCuYed~}2_uh}8Ez;JmeEK!U~=s> z_rRTkt^A!kRQ}=CXR4j=5+Kssf3VF52vnG|Iv9=QBedNY)DNh%DQvEFPHAeaIYMDD zqJw~`^^W<6)Uv7#tTeXscTX-wHB(jU-u7yunPvxj!VmtKDX6&dpG)#=^eSJAvr z;CJbGJVB2b!=MLm^aTWH6!7a-G>a0dtXkE}eN*$$7d#?X$Yu=C3&Jg#c5LC2N9yW8 zGW~*kdCdAp!1RKtyO&ypkK^UNLmTEV2;AF&`a?H&>M>Yzlp7y{ym5PV5Br4Fg3Ctf z97LgodUi-M(4Y;VG|}KB1K%$_K&chfphJ}wD8WWV=|sF69ExRT15 z4xB<%rbFT-;&L5A-casFV?KfZa7-RC8UcKc9syW9X750cVjxbSK$1|Ug5i-_W94M! zao40#<+(S+^)O)&p#~-7@*#)@4r93(0euANRK!S`NdE^-cz#0^uUaT5{#xWu);2&M*0mLp3ud#h*qG5~bUMR$9#Z0YT zqC!U^6n7L}h)6D!lUo8mxML`TP^EP(pJN3XIn4FzfY3+%23qOPaFfnKw;lQvn7H^= zec)@TuXFB@u%&XGxCqghybVp5f$BSajB`wCbxsPD#OKB39>nqJ7(S3-?5BE(!Zv8u zTN47w|2XUz^?5vxI1zu&^(8Gf>aPvXa-DOLJrg$_&h!DL4RbWwcd?upRgInUA`Znd z!*4K-HlVHVIhyD{4+7(cAqd=m_N8xw6tyMzi_8)tJxftOt2&cAv_?eum;z0OYV@$G z#b2s+VR%dh?kS;daCJfNv8nu|%JylMCe;ODAm5`^122|K9@qpehh%SP9 ztU}H~g#>BTR*0-&N*-@~mR+HWARhuCA(Eoc00Gpd8)OzJy0-)Wlv7@6>D})6*eP%B zCdNc=rz6akg2(#D&U8>Q3C*V~8GvNWN6MP+TumE)QxpkMD&>!O#{LP{ku%U{1W$Vf z$V6wcs~?4{-q}F1hiH+tyV| zqcN7Lbr@9k7TJ$fP0exQGRn#T*MU*JDl{t7xlcgcI|6X1*OzEvL71=3i0gCJ^ZsiS zyM=T9%a3W2#N5&C$t5XW*-x8=-2HR8(}Hg9By=AA<6xz0IHSJ=78q?GX{E zS{nTN#`p@Vfk4S+-pViyDk-&qM6sd@hK!8((qH$^z(}kuX@RHYQ_RCW+9aBOqjG>w znlz5D-y(cVX=K0OeumA$X41K8-JySq!ecJ`$iBLSH(i2iflD?RyyicEsTTy)YFo5?{4zkv=ctud>-06_X5@Q z(W6Jgm1D|hfE~W}l>HtlOT0gbaNxMdg>A?DS@xpcBqOszX~G7r&SB}Q_tbyG_}pV# zqjm$A^$a+8Q+Lqev|3x#wdiw}YCBjip61}7Y!D*D<^i283N)InsW-x^n~%e>i`Wr- zSSa-_FIcIg*}$gE12j}l<^xcgzW&vIE*`2BZ; zfE$cyE?>XYmd?%tFw@KKj@3)_Hj5od3=e*!gZHex&C9l+;lk%>P&YmDBIG+#IXrR& zsW`&V&xQPsgu+G*0wvzdZM$zT2%m30gq|Aw__5`ITC=G;lvAE6B3EZt41@Gc-GRQa zQ%QdAFi>01R)9S6mek)c)B}Hi^Vbpwle6N`i->-Y@lykISm|NgqJ5#No}OM(C>)oE ze_v7Zy$t{lqszodpZ~LTgWv5nAw=};=*KUW1L-3EKchoP*kMPmPQjW_cpd!HKEl8HNveRoZnpVt zt>G`c%WB= z4mdYafp5F_pKF(X!YnLs7)H&GFoTZ`p|`xfsb|~qHVh+8{N;%HCCe>syE{GceAj&f z#3J)7zufz6_ootoG0j~Ax6m(cO^bN_w)h>DX`Wr?%399R|+#CE1bFTATG=e8~&?$DObb3TYge-TWoXGBt&CDsA24H}I z$4I6q2+s2zW`kaG?@b9!7W0)A@a(88!ZB;#(7gPuh$u|G>!~$kv(fMNjU(GseOe{n z?`FP`g>F?`$EcSFT*CZz^10L2_qQbMmC)P>>U!wwbW{Al)jC}**z$oON)S1?vAO37 zD4^)->b|8n+~9%p|&xi6qV&dlYQ`;3c_1TByeX&uRjdv-K?RS67BzwQ= zE&wT%oiJsH8Dt>>pjYw(@a0YLtZp{WA)b|MPX;#7*H&`s+BMreAK&RNxXapkOTx>` ziF<5qZJ(+@5_+!EIa*OqFPdcICn?a!?A^a#DHY{&rg zme%eP`_cTi{hU8cVBo3&g(QdS-`^g{#PzK&Ts{4HX(cxE)IPscMrD&Q7nCprrE&W| ztWX$y{m8Z{QRW2u^m)IEC0y&KnZYab{cJmk&qwyfDT8P#qTL=ggi)tTFVCglO}E?y z!Kv<9apO5cCYRU*d>z0J67Iiq5&Vqz4jE^4moyUy* zj1l#nyJv;))*8aT-;Bl%U+rJPG+%==3=?U9#l;Hb%UE>6{7&7V(#wSwXAP9$1nGrY zHjB@ULe|h)r?z#Tio4kjrGN(vj z1K(WDWcsbzbApt2$5OABO}mwtUHC;om*ds+M`AlpEq-3WV7Vm0RBY}-d2Cm6J-d0B z@>t)Ptv&UKk)6=kDTy~_3EpN!Sg*O@#eVMC#>-5vQX)I$uJ-8)YEmznFBDk|SLe@C zu3F#vW0i2$Xu@Y%3d`)JN*!01sI1H~%-}MR4wSdkniZ?6Y$zgnVJkJ-&r`ZTJL=1o zj!P_8A15?as@ms928xCUll9HH*qxvDR}zIg6r*#ZUtSq$?W!HVm?mCSD8s~%{&}Z} zO}AStafcN_wepIkPxVZZ%V+b_h&PYI*0$wTB~3UMC_>YU@ZY zGgF8@!{vF4mnI~ps;G4trb|V&*0*YAsh;|Mkevf#MVBeMq-Iv zlb+jW32)DmloT%N(;i9c(?byyhjK{L67DH@Jyc!HSL0zCoY`#aurxwAF;`e|#_0Pu zJsulhZQ@?8HbrdSf#_83cYC8(PiXOeo}KM1@DR}?gsRw&dGei1oArEkyNrKW@!L05 zS5MY4J1t3qwyMhUYhJUZ;(cSa;onqs%6gtRrO$ugd_1kqfHz*OS}Lj0nV_>vtRQA^ zq;`IISas`cX@$3`mH(0D0#>|N5iP19hPr6(DiLj;T0jXgFeK0FtBPdVV_oxET)&s_ zD!LImi5?X3sq}{2Hx)l#RpXoAF^fK*94EU)PBvXOc1qHht2cJ=@K`Pg8j`3sR8|(` zXE)HvwXypG?G^n&L#d_|17Fq~1o}x4tfrD1dCtMBvkku4gBF{iRh~sxX&_8Ger+Uc zd>T5CWGA6mz^B>x|{bJ3ND;83@)BdaB_x9XXF2om}S( zdX6t~&jSX$ms@yE?-1@dCB`V%MpxQvyd#F(?$AFL;+Yakb~7MY8{DDAe$$h$ns2AM z(#Td1R^ZAgGi_#gukxU1&wAr*n$FY=Ti#&D=FbZt8${KX`fIX%wp$&m^?9ViGewA^ zpG0rW)arJr(Bk)x8ZJsR9CI%R^+NMAIz>%l9i8eSO(J+@oKddXY|1^dRS`|6$h&ZA zrE`Y#h=FV+*48)anew6v{Uy8?E7?sevW6P8IGJ5Nw`iVUlR+S!Z!@r!n2>kl9uL=$ z+@ZQCF%<IK~G1W1@Y+DVyGz|_jif~6x zhUt}i>nTp`aVLk_k0a5yl{&*?zWmOJIcwzi4=w=Xsc3pwFB6xwg?ujet+`qa&V$<@ z%zNINyJ|vxWjv==aL_V3!YDuPvZutUsQKG%2A(sTUste-iYKrfp_2`ieP&}p-v)(3 zn`+6)b0TDN>wHz-iw06a44IRnZ-SNem6WrTG(Vu_cqXRq?Vu+^l(#@v{Fry+H#f4g zT!-U}zIZc|{D@N*{mbY05NCT`TMv;hJ@L_Xavtb|S{Lnf)gqT4n2Lu_Rt%lEkcP`* zIl%pmML2rV+)Bc1Sx8~Q{IjxCEiH;Oq2wiX!Q6C?yL3!`>dhB=Z$(W0%4ZwtF}hM( z`7;GKOA3!v|L^|NdhnOd`rp{LSk^>ufJdgu67 zj7&5=`qUS{KREhR#7HkWxh+=SzKHb5nZnZ-Pob>Ho~^GpR*~c;S*GX5&C{Q>QpI8? zV@QwM9WMw9j=1OQV$*_aT4`M&I!)h)!^48}9kqL7x`*GWp%p96rRho%yee<{`U+-i zWpohJY1cyp_tzWCOO8x6IhR>aG=-2gUTe+GrnQoF$2_?8Bpnyb4Mo0WYMmX+j+oS? z#0an#Etre;r7R1j(Hr$t8y(bN7fX>Y+Rc)t;PV|s&Dm0}d=f9OzZoS)oxM|Ym(XFI z6hmHl`v%gZKxBd14Y1}5Bj3q33bqq-DyfF@DL9G6yNttluRenHDHp?BO&k-@Xh<`<;&b~yz_+mtDiramPLhc>}|HLfbv|X)wm(j}iMw^UXx{s!L{8xEPk18g8IWBzFRE=;hdbiOXmM_AyuK1sWm2mvH$Be$`7_3}9b9aiGanCaU*RI=`m$w) zsD{^Fs->x|QWZV5FyojSFea`RK)SdR?k;N#!2}|sQbppNCb!bN-b8Xsg^pi_R$@i?~+El zhc6h|)e*FMgTr$Ob-6Wj^_OOGR|qXPjH|=ijfxuiqp106w0#}*mpqph8u`bTm#h}& z43vYXF*XjfDlsWL8)~JOA|8D;HdR#euJ>y%Qa0QaKs^*U@pPguGT5UKuP`g>9X*Fd2+jo19(w>T* z*?K+d_r&gnh!L#BaJj6f6^pq?k6y&;aBZdnrN5#wYDLiQx{7C@I;pFvquyYoxO~>( zW~n#fq?^5sTQ)7`)JW{trj%g;jyN6B(}uo7ry}-o+wMcn`RQ5(W0r2E^|vkjXRBRl zhQlR-cJ_Ugc+sQk9X=DDMg6l8)zwbH%P)t^A2(T>k*&5iT62lLK0Z?P<;rVMQsfc5 zPKTow!Qp1M@8|l(@t)Z7crho*Cbo;3^#*EHii=L>bp|RDZIg~#`76|V1Bb;94_Zia z>g+;imKJ}9P)BE|dTzwY9NKXCKC;#DN^Y7r4rkcFyDMcF_E1i^;Q0lo6A~`=ZsCrR z-IMLcVb$?Y#pNkn22aYqdmB1PMY7pXT*SJ{SL(iu6UE_j93xN3x{P39;f?UOeACr( zJ7ZUChlT(0jx*{ngTB@C1Y41=)+onFrD%nKrkFyN^B$Y#|^i97xIU7_^hj+mh%Q?4DDr!cGTst#a zON~Z@NZ)5CattQ(yR;|V>+4tBH`dj8gwyorE@qlYY4N%3$CU>;65{5}!{Dw79&CF$t@tr#8(PMCOv7=5?t{8VqqN9p-BfI~UZPRD5 z>J-(BDPx&B_P2wQ80s4uaP#x+i{(~cUimBEV-A+3u0$BAx)iUtiWBoQB10=k0ps<` z*z9qK8x!6)=2n{D4e_}_Vwgz{UUn|auyK3ps5V!^$2LV~IVhpuWJY>khp&Bo5dUFT zQ*khSr{KpW-ky(tZMb4J)s*j6`=djt1YR3#}yZG(wCrJKEp5>Ww*5(u+ zTKd(NgIPZV)> zHh*pybz#F=xr;BpPaSwnHw*p>rK}^-M=_YM8=r{MgC0e*J%04ar`qMRQqV_N_ay$h(L;W<|%k=521Z zT>&!a#3pGP)Kg#Vkb=3mP{EqQ-5Gdq>KQd#0wZDiNZe{HWlf0-JyqNlSsnzhWxsPoU?-%33Hc3|j$O`h3{cpqOeE}vKEzg&z zh;+T#vv0!;LXBR9U3i%0&rk2pI(R+|wUuC`jWlht1$}C)Q~Z|tQ_m@T*k?{W_`JnW z-}8PhQK(5gbO)eU3HH1)XAV_;6|pTkx-_{ha19_!)U`kDQTfhX<+bQKdhGX5QJA2` z@aNRi4bv%nmD#Rscl0JULy`3jG}q%n_nPB!@O05AAT(8(T!B*7P2~qwNIA<0xwDy> z{qtLa#CzeRH`cCDI>$-^e?IBQg3Zg+U^a|rIaJDP0jh&x_SxClGeBQB2Tw*zbPqk- z-p3l1>?BTkH5sN0FHKg&udOaqw`sbIZQ#7{`c>LL_jNa9v5)Xuva)|;Yi<2FIjusL za~G!Da_~dI=QoA}{LxZaUm2MvAao0&Io*G?!=#$Jk9}lQ)#N~)(Z2z#I_D)(Tqe4nWq3ls9J1vTg%1%i3e6)uZg~%vd+1axq4-tjTP-O4y{hgQh zegEHge9!TJ|Hn~rKlgpz*Y%s{?>sd^7jMwz@jkkZ6}`vf1y_A!Q0a*_sIq0hu#(dM zeB*s;>k}?CIGYI=JD^xlQ)nZ-93H=hCG08h4W zhZI)0XobdaG332@aItydlBaJ$?dGg{mBErP(65xUpCXX-U>!pd=2^B>NG>=6SjLDU zLq!bqZ4~KxU8n!bUB=wKKz380dRvu_2jpvfWwMrlqKeB$#wZmfsj#O(zv{Hq}ex5jqN^ zgqZR%YR=Yk;DFLz4>l{(IIaUUs`Vt>^jXK5#ug9!A?^FC=fjxkvYg_>knv9rww3F@ z4W8sAh!j4(4zP}xT6!ZBWN*@FDf>7`Kh@nL5SN+0u4`_7CVwG&U_2Zw0!5%nz1|sQ z<8g1J$i6d@bE7XYI|bxT()U-#xAhyX1FN9sY@6h~P9OLz%)ji9Dm=xYxmA1quV0%R zfBEByyoualsM}|DO#fpUFq#x}hMJ3}^iM#}hVjq5ph{tS#A1Cp(0RJs{PzQfB4{)D z2mx-;MjnP-_Xrf+CxL|7f%0*8(&)Cu9dIi`YO#9|SGA~SJ6ndyGMVOq{iA9Y+m^wdY z3)<#3Jg6PBLtheUZA{Kj^uqtiPXmCeq{9+Il)RE@(dVZWshEqERPN(xZ_ica$zpaV{ONPqOs-euGf;Yzv&iT1%Di1Y{QX)x%*Fhva*02!>KQ&>daBU zDi~x!YGGcy`%z(-r$oTa6dEzxfRl5_7_P5V8uWQH`jSgqpPk(Jq%+tdKKuC&dauz@ z2{6ysU3cu4ptNzs`MQ~J)cuFmszT|wGG%0W?!VdUX>y(o#78Si=SwB`195+ zA(PTyrvN+raT%rdS*)K~S)ed~)yQ`AV$m4|0)`m=!k1N_>V=Hxn$5 zae72LKuAD3ZlR|K2&uwx94skCO*Sn}CcTlyhS@8-Vn0QmG2F>WMeET;LTNRSC0~CL z_rPpbea@Qq(-gvv}cEWe*J2NOP5RWKGt2*|58-z%ow@f?+B#?l^OO#Uzv z>#>`cHSF4bj*#}GdTzhr6_ZqzKD6zQ04HaN{tQ8Kje}mogEQ|bc8oYr&d{f_6yTQ* zlSxQ@`v_$REaeUuCF?-*BBo*7@Zr3n2fT$CwcoR+)!!ia39zzr#9I9sXKmRA_Mm6$ z{Z@WTmwBIJ=D~PmPt^sgxY^da^P}x1tD@tRjt|k(&+W*vCU!pSGbpoK3Dma3DhGUF zk1@=QzDy4*IwGzhl%V}7d9KsqG+|n!f(?3-c`t zuHZ+AKOPf$G1uf8Fh6G=w*2)?*S-6zv3IC|PWj;=4ADm3C~uIi9ytRh7}VbsB7?AE z#MWP0e^Kw00<;ciky^w3c#l+$X`26TmxV zy+}>R;m^Yu@D$v4%2HY++HvUD#~^h=)b;%L!0P+?n4l+}ypl=D*#gNzFzPh2^=cc~tK@@TsufakeaR`2=v+-K9G_NL_Hi5q*DWf2bD>i|_gtyUrlZtUeg&3>dKI z!>|%X7?LezM4$eVuTAwina^-S!EQjy_6~nFbADgdT?W1zz`fwE`h2YbFjakgx}_6V zj$%@d&eq4ugry#jFTdAU(rkfNN@r`!e1A*pV|I^45Fpu{by(!-nvYWO$vJHH_}(2mzYch8wiFnfgQZ2#hA9 zsP)aheAr^5j)a!1O^PvS55DajbMKhWqaUCX$cJg7O?8HZ_>Y4PgWIOL>Wt_iqfVjT z*!O$(Tt}=n>|f!y7yc`X+#A{Q!!gQE+*rBbr@fA_#BGQ=-Ii?>+J#Z&Ef`~d3bN%w zkaD%Qy7GFEnRu24-&Jgmhx5i$6Fz4*kHx<{eC-5@Cs%IRv6bvkgcbZ}#K)>9fsm$$ z-%Q8~1RIH7L;O?mmoSSGAc}4f!oa%@l7J`V{R30mR?P0{roAv-naR=f8IiD`$3J2#2X@SQy;jqNlHu|Y|euFdm4K#`Iq^G^i zM{iu*+|>k+2RR6B{@&@KN0J&xzy6s0!zKBIG?&}Bf^DyN$S|^)mvH*&{_VhN@x-P~ zp3*OS>2=T$Q{&Mk{EaQ zPi~LZ%qEHtJuji5*_Sg?egq`#jQskF%ob%w%t2|T-^_9L2IwgL`9?5kE@rALZpZNs>{K3teVu$?~nHmFT)Bd;;Yx?%rDv7rwcU7@b6z}vi^wkl123ePruAeHy8+D#-W23AbSYlR zX$|}Ch+#}kNO}l&yiA@VkA~58%b&MP57E<`1MOdQAR%WnxO}a?j!8~;g&i?#&e5GE zVZ(qUImWI$S^I(!QvR#}Z!t42?*Sw$$2?+H_KgygzcL^mK%P9tAJBr==hV+HEE_c? z7~M8t+8wuo7;zl&z;=*If^VVrI-(@klN*IOh+|R&BbXKeLz8hMyJMcs^T1V%I^baRlJ_$-jR2 z%#t(p6|GH!&Ng557(mj^CGpqG^Tmp8UO3_HJQ|QFDPU{GA@BqpA18=e=y7|5dX9#G zPJR2W*+0*fi%3W-IX~>F14fddwLA&5V21&wRjjsG32YfF2fFM+@V{}d+ykP5-*R+a zRG|fIFf$P@J4%p<41Wi`@ z4sip^uh!5=1b}v7I$>c4nQZyud^72G`xo2U zVOkrp&22EF?sQIFC+U;Ag~VV=`IpSnzk*`#+8W9aN4VP<=)Kmq;n| z#hBy?CBr^x0H<6|)|FdC4nuNekHqL3y3b@E*CD>_(Q*@F@S!ddo4HCT8(H+2ly!O`w9>jkbfy1T13E1eng#qzA)<8EBdaAUFsHH; zlNK|r%GBu#nj;lKqJrei1c?72+-!0(s|^CpPdh>cG_Ij{9Eu-{(YhFzHLRj?iLjYm zb|XBfcQ=4HB`GC@?`F>);wH-M%^=nDv@}@6>IPrnz$phz4|!sJvzm#FzDLKbE_ zb+M?wRa%1USlK2&tm11Ud;W%Vr)bO68FF~!HWAjW>zMuU&vAP^N#??Yx?bP&9=>ii zMgPja9d@=!2Z(C_K>~^@Ss*sNzbTOKbMlLcqC26OiJ_5%%oc+qBn22oEEINdbzU`L z!&n$qUZ{Q}umSLL5}8@g?c~#y)o1#gtoHUmqe6CQe^$UNvpiukOS5x%Naw?yrjJR8 z%SxRc&Z-?o{4HFLK23mG@=F+qoKEq<{k?}*z3vr|7$6`+Cv^pB>Ejk81&suY$bvh` zlKqXa?ivF*ILPF1(QxSe6&vv$T2ZyrCo=&gJ%9j>Ckd;ocK!g=ycN=jhaB`qFmA#M z`5AYR#}#3Nd3TeXg3k%|#Jp0DOGR-3etsuO3xT;$9E8A3Nx`GaN0DQbHR*ZVTBd8# zy@$zQgPK9mHe!xJ5_lj9aC2Lv2d%^iuHPZBZ_hFDtAs9`pKju*2TZx*Vdse2dr^SF zl{u2r#h;+*QJ2z^HyXjq*#_LC`#Rp7!=SmDzntf2N4%UC%v=WcYFin9g&PVAdq*T7 z7PJ`ddHe+avN_5urAAOfmhxJhBoJkjuwQCc^N5G|*F+8=r0&C045y{%9-5vQWHYm` zdUYK{XC*nLW`-nCFc?l-w}FHVAl~wX_vQhEBm>C0PiWXQSq+m}2>(t*KCW~aS zW`MXHAL0hj&oF}CMkF+tMXK&eEI4-Zb&xF%cZGRk;%3-=F>9RygmDvt#;xNl!tY~f zvluKAMk>ibHs^JOO~Z(03N>w-wsi(toEhy+7e3gF?CA*(PL=r&l}nhxK*qRpVN82r z8@Pn7{-h$yL9s^^xph!kJ~`@0nS11A8n6MqQnFbbhd!2!qC6{Fwbuq)gJX&hp@D85 zNK(>TldHtrB}w&b2$ViAjY4jCf(couYBvo;L?I>V`P&d-YridTK|G|51Q3BB z;;P}?K__1ID_3;DLO2YHog(m;v(5}~zE3~$9~L0njE_1^V+3~a5}z0Zs9qv9toK}- zhhaRfDJqVYm2LK(V?I&DM`8v9A%Di~-%=fH&&BmRTC4GVP1z!p?(RCC$DrWk0l7UB z6u3N4a^-i%^d(KlQ+zuD{DU*!Kae~iKys+~J+=l{Zcy#WAZ%dqiy(kUJLdOAzWe96 zc@sxwj%;23%NVHO89_#Ca!@^GA3->h!p|&1y|U4Z`5;#mLI^;d?$KIv7!?|EyY%!J z57AsqZ^>VgZznW+#D5&Y_=N5}3C;cTXWOmK)=4?7-7t9HTB=_S2*4kLJAN#obQz=G zqhay&s5t^=eb&{i=7seBtF9W6LJ5DuZi!zm%dUf8I|+}vw+aB`%@~Ap1qa+`=oYYq zAo>i8i#tTtfOyuQFiVLPYBPJY-gP78|NGrxhFJqxq*bT!m!wJ+7;M zcM;glo0zZJRy9l*yhd)N*X_LAfN1OGdOF6#yO1lTC0}|-$0{ZSxMZSGUt&S){Viu6 z;~6+}CFiDV^F5&DoueO&lDb)y;E6(Ue@cLY(O?}#d_w%0TtzLZ zh!Q98-Fxke=_u-S6sg?s%|j=VFCH|;iko`Ri1u$~o2jEMehq)Q5c_;@{``SGdq6Y( zaT4Fhx)>!?4iSA=xmRbT3&|-YK`h@0sdDaB4rYc3h6i<)Ms*{Ww>}N5f|3YuGHt6~ zHD9#C!PjCYTMozNn1|&2WSIfRncPVvGm=(teP<=c)ap_Gblx;KGodUY3dhlUk8Sp9 zAB^KLXiG681e2?S*q>!1Uji+y(R3%qgl}$kbR-)H<3lgkeBs@Je1qgtM{EXu?h6-r zr7*$Wq7{*QF{(xCn;O(X9?#FsaGB^+@#X-?)%|i+J&DB%x-lf|dnsgo{jXZS^W1f) z7MbHvea3}e%|3g*k7aesmZ!%j7mHEQ+w%Y&IY$T?rX=An`86?^O@wb)dui!HXbZF< zaB%8~djoE*r#c?Od&`lFk+PVdVm<~`vn{DFpxRh&a80aSmAX35S#`pUl~juf6IU~x+(!Mfdw zFhRDcWh~z2v$FHw=TDEfVDEVn(K-*I*2lUHWHam9JMm5<(F;q^e17Jq;x$ZMl6S-iaq z@+^q({fCi*A0TDsjS1N)Vvs#dE-2+DoSBL<9YEao-r#>F;bgxTYXybS;Zp5+zAd)Q z^w^gUmOM!;i6DOdOz1*)*5!bhvk0X+wPSNpl5zQ^`DL}td@ zEJ9{9eo%=c*0^25Ns_8?nU|sHSAE7*G+`~wEX{BCy~3Ak=G3jA{dUK4ZA(lQ(1v~& zJRffDwaxwlmb_Bd6V_x<@a3Abl8|`fqfQ{{7e zE-F|4mu5(1$1N_cft$YqbbW2%&(A!yL708Seza>6bC{a^LGIF)!wo&6}tiQ2yCvvES`X?VfokznI6I#(JSYVx-R-x0mVPsTdS(b>DDLL&WknEr7 zWtj0lbLku;0v^Q5Z@YK4N~AK4530XHunz~ECEx^v;Fw(wkR*C2Br%*5w{dogStroQwthbBB?p&BihsJW^6eJ?J6AjBPqRzn3gqSxDSmKns(Y?JbfL`x}j=yr*{Xhdd!UQ;!&mh%@|cp9PmwEaQr3O_(}x zS(zV<)JSxCj=$FHrwMia-0%?t-de9o zoojJeQfqMhlyt}MZ%{7$qE-8|vT`$5kmY$k2^eHD$79RcgBsmL!-mc6I=nPieT9TTK4xJ6;sX< zzk!u-#nL6jk1|`=UGu-%T{#|2N_FJ?XJ8an2Q5$%RMe#Y^hk+ghV#?AQxhRC`YPH- zFd|oULYlXRP#UM0;VGT;Os<|n{9obLnQE3Q(>;zJQS61%11g3F2c@!XW^a(=W>Cb2 zs-ksV)PWq(BE(PIIh1Nir_EYjs-GdX!weL8y%#fD$LB`FBl?ECny8_YP_$%{Ok<;k z6W5!K@TJr;&3oQUiZgYbDqVO52%WNw^v6q^!Zx|*Rcu3s+z_~gQg@fsC(W^Lw7B%< z9i*^=>^rn?TTMjehEc>3CrP`=DuH({;1|-+V;BUkoR_}z&A*mADk7bC&)fNZuP=5R zKV!4~btl=5RMK@bQfensP<`iNVnq#1lkUJBt_(0loa6G`N?7p6D#Ap zqO7(m&3iyR+k2F5)yj>`m-!E;jXql0zv0h7bR}g-KKD}vsW=`8q;2e#bRH&26kvMiO)=iCKacKER!5Rg{HgT0**>SRB*%lMH#Swa?+$?aRu*2<7d`6MEN8Nea zCz>~R^t@(*Ydi`hoJUX%*hrO(OQ{X@;C5>7MT*t*Td#e^^dJnp`G+N|3Qy9BZ>6UP zL2yDVI=01S?@3Mq+v`0Hf{&ygln1M;mOkT}L1w_cIL zvRctF#94QrJX+6mK6TXsWF2a^9b~0H(z)>7rgQk5%ESV#MUZ2OZp-mg7dO!_UqY`@ zpUx*P=A(yu#FC$~B? zU-DsQrcFn=Z&_JxNlvh*%w7uvVqq=(ge?X-gQupAX`^`2mm~RnWll9N5ETQQ_$wdl z>g((6QCDSQe?u$voQnYOiiIN0BFwExjw@)ZuXf5#&+9?1oDaq%`EA#_R1eMDZzY3k zFW8F-0AWbp+Byw{sR=nbVvyN1LNG(5x;W)fkW=ww6(2=pcLQGg$cTK$ibxRIavVyq zJe*$tT^*cj^juiCet&G2oq44TKAJ-RFoV_1p`>@Dk@H~VBSZ?1U?1FmO z#FO%iioS(~V#uveYtB_c%~AAbO5fR%zIXK?Xa{9=pUAHdpB}6m!yD`+Vh(bfZl>P& zu~}X__#;>4H4xI*7&d7;jrkxiY-5b0qVsiaECUq2nn>C7wDdvu&s>GLSJQuF?HFdR zdf|L)Eb)zDruU?$_nbrvs;~aJ?UK^nTwGio=G(uN&Y6LqbqAmBv$EENpVUQ^d1rNpU)>A=!eK)PTz8%MprV^2KG>|y5xbga226a!H z)RZ z@C~7E6z~b`zxB9wJnpkWz1siw?c1^4V1E&9rVH{7hl5DhDDA6`c^<~PfC$p(fMm9( z#B}iy6S^Lo=dxFaaZ@TCcF*7J=_mTPJ0OeK)^P`wf6?h=otV{g5pO#ErOm_=TT*sM zP(zlwB=d{2-S?#jK>^btei3BBlxO=R&jh_iZufKgN$aOiCpJJ`2{!dR?8i>?JQ1s& z%VEQRus5-}jP{#lRlmDbVXp_-zq;aK_X~vES*aH{s*%h6U!e$vaMzS&*T(*~Y=cA=L6~NHLrpHwX(bz0BGhSlMkLIGbpRip%M)M8MxWh5A~GRj=w%lLmqAQYHvC zSe@%cd9{-0jlzKUAhU|v=4i(FkSBlk?_)cXtb4eM5MM<2ok%nLoL|sDi1s4okLtsI zddh5n1$F+tjy<-fTuE*7C3enq$sTe^ zi2{KL`j7&Ue>?CM&C96SSx3@o^$y2)rjPI@EpK$1Ix^^gLyNN(@%H78Sq>xcvwQG$ zc68hTW7fIO`fQs7EIa-7Z+&|OHsz7V;sHa>3G^m=5Va&l!j=#vIN_x=Ix+jmPEG{@ z3=h^*CJVhFyUfz%l^nduTUd^JUjpIBJ!Y@0#rtHJ5CQ zm<%|yisem_iR=(G4Lln3>eV~=S0&O|J27?f#e6097`LEcZGaZK3O`2zB4gmx>H;K? z30b0F&zb5-c_z|KYa&zQQV*@K9flq|)Q}@Ykp}y%V4fqlpiqFcyWHmK?A-RYz#dVJJmQUT+|Y zDPDA1B$Dpe5WDO~7bsC{C%|@vQws9(%|o_kV5qK&Cku(hs%R5*(r??BG88JTmZ2EsQ!vfU+3sX ziQinYv$K=tlaRY``peHepTIz7xQtH$S{b*9D-9*KJYf#?DpgQft3=3eldD9toVT}j zQ)wvJvtvK0Xm>SssnIBh@p0r7puEZz3z7SerAj zWvmj?qem^f&eD!K_QXV4)~Fe9zEBpKR(PHogkp6EDr8k&hKbh8 zoL*FQ!lk=0JnS8g`y=~}zVoP3mHF|#&FdZ`39EtE=(GLmYESIRmjnD+z5MJy*`z*? zgTVa;A_I?FLQ}+P#e|ZQxnc{1-9co2wrpyzQh@GQY9Hi-gG8)u=dkVQ+o8Ph1?v_; zj=NUrpFAIUuqze$GXtU!@cFSrDH}LMk*Pn=0gIAR`rfMyiLAng~EHy*35%3@O28 z^~tA1t@|Du133rgyW5JW2g}34nHG)`_CAzxyE5vm35ID_t^sl+>XQAMmoIl+9>5Dx zfv(Eq5!IOUpUuDbp%hkwx5Z#(2ZtBV3eL2|+ItN52?x=n`!$E<6sj7uVo2*M(fI`y zi&MeYMw;TCoGgE`9_Bb4 z5kogBcW%N|ko^HX6OU4XkaNjvh{dmIDm-`jax`}74Rqn-2eB@nlj!6t5q-A>)HHK( z%Pjzm$6zDO&0Qs6g@$_klZ#|sa0xinVg-AGk(O5~5l^k3)NSHcy-J^QrB~p9{&r~F;ls|?W5VQ_vFm5Hf zJzcQT>5*`y3MBj^q1ZeC3q)m@kljnnPwJq~dWJwDtp}S;BJx|G9@sOlYmCe-wi9*% zfqe*xtq@WY@rZWKuNmkEw9xnEgGY}ju_E7#fKZduwyj$YanWhG;xMGLXJNH|poVI8 zzzG|H1Q#@oGpee-z*O@YH_Sgz8+QAn6LQI$D5av7Zv>D{jWGmUz7Z)@6sL*woW-1) z_DmYt0>8K-;pfi}BAKs5=|gj2uj0$sNXE|)`U^B=gh)N-+LEu3V5~((=;fUZQPk2S zh98i>kyoq~BB4p7Xs=ycw2er7FA%)~lzQ7=Qc>l8dnqBfE%jTT4>~={NCR`jJR>2> z&PJV00wcsb38!g8JjFG*;yfP|5{^k z>zyFK3Z0H<;6Kg-5xi#S?s*hRt5MdCf$m8!aw6*-k}CA#RoTp~C^dxAz&k*rlsv`9 zUpmhY%Rn*F2sQoyD0d(t9IO*0P?pEXOHt1@Up@|_qeApyf}!Ru4oub>pP0~>Vs^%hf#X=gv+*akA(4j-<%t6E*|n+q zdYK9DaCj`^v7R5^;eZ6I<4r2tHhm$$pzrYaM6XR@?d;7Fgmgs1HF_k~@cRiM)3N~d zp|8CSluHEZ!+F#q2zgB~OdUDtKX1Eg*|l#Ya&X?n!8QTSjn@9FYLwOGh#Fx*2b$-P z+d@l7=y6Gn>@>+E?T-|?VpOMUH@W1auyzqq*P*H$bd7%~@aBdG277TRmy5zOLhe$eZw$dj7w)+h^&ZX@r=y+GA0%O1G~%wen%QZDDJD^> z9vW^vWLsc~Ilrg#A!H)uLJxba)up-VvAAxM2+)`<+>V(w$KphFBM3bU&Fa$BpYRE9 z@zm33tGz?)A-DEt#?`?BB%Z-okvI6+n8d_yM?=VNKqXHEz?CiP&d5?zApvWGd;l3+ z7}WKO9vi(+P98-VbJ{TL^%HQ4QM1ksn6LY`S-cIc!gu+`?8zseA(qCpmeusjA?4SiL6 zXQ%PE*T>@rozOQq;`jVuW@aXUBWW!S%XWVpY8gBwQkX9vdiF+c^+n#S_{4Qn)l`BHE%AS#pl_hE? zWbtLFWr*ox?{M;+gORO8%x)N+CU9Dk?)9&N8qN4bVvm^h8$Q0HunNd;3xpnhSQ&w2Pxm27L1_CJ535u^6h z#Jw_w9u3i`CmNd7DQ7)r(CFPok&`}t(WvUa-w~vmv{AV9w%~MxT|~zhxpWvw)u1GP z7S_b)`SUPrh-e&O#Lq9ZY=5snR;v|u+8x>R4l&zA9~v?s4Ve>wmOuQ5F#1^EqMcpuD{<3O7q|OqT>Z+e;OH zD5CgtbmPobVc3t=mw@C+=m3^&UB-vj13$YNABd`>nKusNrS%KB12s* zoN}u|veb)K7(8(DOsD$MIeRL1*i7}^?nGPKG4{j)`cG@+n;)8siV?*n&s@Uc}*T%Cfour9kgsn>~357JKc)*ungE zc4|d_i30=Guf5)T31w*AG@2{_e1Nf{sH4DoMrE)T8{%-?1Dzl(KWZD7TnHUm8w zj}yNSQ5vZP0)%9kYeUW@yt1dr0@8w5AQDakCR>wc(g=q0o@n;snR;{*ISUS>sIqyy znS@U^gIaQx`=bIwxmDhVXXC~vpG}zC5Hraauv>0#(?3&uxCz^@FW7kAM5(uHpQK2A z{)-T#7aq&pX%GpDim9n-nHc6xP5@tc!8@E&!S`aFl&u_I!fCgUqhPM{i>!qCvC+S} zNu923Fj?#hAB7?zMP_OK`OH82#}!c~6<}}+wD{Mb1ZYGBxj^d|c3$2J`#g*ch5LL> zfcaxDI2;SITt2__<3pQC#{Iuf_!E*zeQ*H$`aDX6u-QkCn*O{D+7NpL=vHm+f<-|x zu;8&?ZI|LTVsMNj-e%G&%gL{QMc&=yQVetb^QrulLS9`ivACqfWCeNC zIn+#uqA$uVL1$Uvm`PQWqeMW7kdnvjyHTl$#y5z(&%+Ys@ZeJ0Ui`bHzlJN&DF5f< zqPS+`1R!@5my5-vrSF4zwQ}kTygBxAamfI&Ih@6axZ!MM&U~-}V2hMd;eVz%v51*v zUGWuex2P1U4q>#L<2n(34<~XwDXpkbwhzWI(HVRAkV((o3HhCi41P}NV*T^kb!dGf zJ3?C;`X1pJwvhM6)`&!IY^M=A3B=`DHMNp;VK96F`W3-JDYMvxy#HolA6{oO{dbx0 zdq!C1*SBM$!#>r%yQGXXRZ-m;MXC(g>gWIdS{o)`R#9{XPI@b5z53swQva_iB=r{c zYPE_3=Xd3BYyhli|CAdtYm|tUC8EQWkfiy1wPx|2;d^pMFod4_F!7e?%#> z!F0=e6B%Qal1ke)e;!0H?4S)R0c#M@Ime5Y6ql!;h8#DkWA5<3n@8<&9r1!v?cON7 zA@h;-R;;Qhr@p8Ir zs}`^H+|SQITpJ>$k2vLiBJ(d58$=fO1K|UQFS&;gGa1=86EMT$(kV7?xBb6c*|d7& z#QbLaw<_~TW7jLjvn-MFf3R{7z5VaD z{K=hJuS;b93=jPGWQ!YvOR8L1vC4988Rdm093bj>2Np8{RFb$o6}ILhAb$(})HPpG zUpbUJ+3LF7XsOiNQ#aD9tS6S4-TTFP8ZYfbZv`nTE`FXJ!IsI{WR|%8_)*GPYjTtj z>T}4U<*W(;0x>Ka!jEv$WF8nL@hxJ~ubnF?;b&7`x%YKyo67&aI}t)9uTqMg@GCEV z!XFqpNQ<0WclKbf1BGIPTs39sZ&W2hQHWjKi`WqZQj^F5ZUBhvs7jG~x_ntxqTQ0DBh;L_0(ssfmLi{DbpG^_AAFuzx^Dl)T49lnFS8^)6ym^b+cwBmqDglY zWc8j3+d^PpyO4#{z>+W?{factCnzY++uK{fcO!-GWX_%bar(BCEe4j8mcz$ZYyCf@ zn%Ff0M{at`rrO^9rBr1p=J{eH<=IP=W-i|uGRql$=nM$>;+g>|d}G(*1Q==FEdRJn z>gkGQ_4n96$gI7Y?zu^M$RW#a!D-Pu8B+dRGM5ze8)doDuTFgH{JylcDRK$L3&}?> zH-GyiI;CIz5Pb-_8~%7E$$kN=99~DlaEvMDqNZ{WqO7OZ)eEYK(ZMxpsY1zU`e-`^-Mcar-9*3;QdCxm%}MBO0%WUH_qAZN1IO zqJnpNdLTbyG~=l{ubz-+p@oNhv$J;1nESJMw@$Bvo)a^CwFaRxxlS`hLh+x*?@3p% zKM7vgtkDu}vL}6Zi)PDenvB24ftl&4`4JAsyo;$;l~fI;w<6T!7iV0qjSg_=^$RoWmeoGJyF~PkzwU~@UI^IpGEd;Ooa*ZfLsk=xda@5=5=T8|V;#4-Nj=STG!{SEL8oBDvFbes zN6YF`o9YnA*niw%u9?UFp)_xrv%LLX;rOg<-ba@M2Xc3xk~NSnu9eVKr{0+g<&hL( zc|U)1%+RECb>k=1j;o1&SF(y{ymNW_PE2?W0WT=haBs4yHp!Cp!4J*LERWiEI`Y>1 zRX8#3^~|X{Z+7*Jw}aEG-7}Aw&O1M-4mr`o`?5$}d&WMCNAfb2{%@)uS0Cg1NcW-k zM=Y*Me>dbY+aElAInP8q%!Hxj;u+PWy<;a=ZKMSySmb+XP`{@^k%7T^;E9jJcGrhj|zOX8%#HLIOrbLiG1&C zR=hTiXKr+@TDjLgdk2wP$9q-!iE@8@6D-6dgnS3R6Lg#(l(WSJ2Q~8N%&+$;ObQ+! zIbk?;azy2R|7PFvw1xT+t9XN5t7yIF#;GG`ljP->%H)VMN(iiGjp=X_C&R79hN@wt zyu0|ZeJdav%J**8xQpxB9qHX4hdxT~Pt<#R$>(i{Zi(=8`0qdo?@N=>xesR?Ri%`D z72g;7@*L2$ERB8koxgvo#H;+s+D)PhXs{mkwHVhfu;3+{;Fr|@JfNS8{!+$w@RI6UycCfpAWUzZD@JCVz_$BuZeH@zlw*>Uo90omKRwRsQvZc zd1AdD>s4%{iy2BVlk@%&?6;Kt)2hbF&0(LSNLcOtVjHP}{_nF-vS9qNW%ANyrB1^k z)kHVH2jmKy{H_+K=8BswJpW|oaf;hcyOy~54^7nnes9+y#YXn?C9Jd8=^iI}u4EHg z6r-k4*PXU|kk)sUr!)dk&?<sE8KM!$KVi2TiZzn#SS z@x;5rn7q4wV`3YheIb1}i<*{DUTFUl2tPCGWB=Hwy^clL`w&^ui_CBGr-`6j7DXT)+^TnT6_;@=mKHD#E1)kxo)#z;P;$P~O$@lxHL!ukIQ1iQ`#DvOT z?sAWN)9(=O`upD~8WK1A$mEOs-(2)R&U^FXr_R!2T2&4afBv6mAt527V#q3euQ^C( z-S^nqy?s}~F>$&?S|Bmr*AFT{())O_GqjZr$~*iC58X&g3ac z-MZ?RySP;$dKl}g=Qo-HZrVhyl&AznN2Bi@2laH0L-}Ni%gAmCh5I2=DXz-}#`H37 ziWZCLD-O>w1?A<%QU1uDlon~(``IYPvS@A_od3&o?B+}KDnef5;DRnsdDQy*5QcT3 zTdA;^w76b#xL>;(bp&iCo`wqR)j{VlJ8^ zMu7ZS`w$eE@-#*;NOGCvfah_MZF2u+TmLK-MfS!2msRcQZqCgHGDthp4n=a(P293E^_$OKQ8lGlYhN*@xDUWSFC!&xv144b^1WBp%0ol zRhWx>_6M0ha?AqEPrZwcE#y6pL@x&A$^HB2QF2DK^qcGE7W~AAg^W8t%yL@x)N3)| zj}>;aBM0~C**iYkam$795m#gpBU;~67&DAS&`R%X>oVsm60L`sZ{+M zGcYeQ&vw~5t)AklsNu5o88>N=H3OjgvKzg#%|Ona0lLg+-!>P;Ehc~D3J!;QoM&?M z{C6mGu3 zghPwlpMkG(ulfgv@J`bz%Coh|XlpQh5Ce4EzUw;*4hxvKN|!58&hH(a-Mqi6h&AzK z;>Pg0C4(P3Q&N|NU%~Re2nk6*SL2kD4W>nIpIQ2B^Y^7q{d-cAGJkI^F(9QZe4>kU z26=a5FFpIdUaobIvAXoy4D)rxPsUj(;gv*K5P6!kBlSt0O4X@gsY*Ra=yIz^qCZQ_tC@ub-fZp|J%Q1A9kg% zYMGHt>)H3!Q?j1Ouh_-uf(LdJ^U z%NJ;CtIc1r`DlldwasitC|Ze5EU9p#f@R@EMRPml{gQCScjn}|2sT6 z8}9lo%1{_>KQt*m$}8Yxh}&3;$)#Hx?&l*f|B+&J0rCLhim{ZSUzVz>sv7K{;=LW5*^sO3XJL_8_d?H1MP>3EG$+T;55+68~bJv6x9| z6e~XXy`f>e6PpWf)ixgWBGT(b<&rr;8#h6o@}l7_hc2baHwh2Q6^2B;iP2ZCBM#bS zVR%CmIpvE!J5fgc)Y=bIcAeLnruZi zs(NHas>E)47I>{w(J!8ju*j&;p0@73eV2J8JA!v`)<|9Jb+F<)xgPa|?>$F4X2(a< zrY@xAtR8t3k*>6gSNC+I+0UNu>cLLVofYCfk?BgWYMy4?r16zgIf8nv1>=?#sV7Kx z+L*4Inf9BTT-Ri}J$>rAwOE}W!^~u&a?nQ){2{ z)vRUX!>vNWdfcVOYr_TCt1#7_5-zacci@1+8^&!C?;orzYFze_Pds)vb^N z`}fOzOd1Taa8IW>*O#j#Rcxd0`Ft$joQIU}N#k5cM4Uk=vEA zZ=ji^u}lM$mknf^3{LpAzm)7acB_TfTHld-V_sfA?6m4M>NGvnb@C}!ubnb7@M~v& z+3a*Mvs21pdNeitMDK0^C$Y{CmuV-b%I|z!dcWLElJ)Kn-{Qa5tBp@Iemus~`S**H zmU*@7%&gu!zb=}cZEl@!XBt({r$!;s|0d(ZWL}X=^;1oTIx|w;1`c{?F#q49c9Vt1 zN{%@yNSi3|Gq|t$!a^-1(e-6oyKu8j2b(%ifu&jqW9hmB7CU+pEN4DzQy-Ro z9#5_gajG8}W3W$3jU8i%aX!&v!&4!2+pF$ziiGJHgPvXcJIT)ZP2<5%cJwt|)8n$o z=jv-kRpY6GcZ!_n!(n4B1pYzT9-FEl%`OU(EGNR>eqJuI*1F>qY;)7hyfm~xbdW~AY z#|#u0e&_h~OurAHOEaocr9SE(Yl!xEtKk^TacX__as4$WHjN8+KMq;=ZZmHAC>1bN z5z9#P*e}PKRFS!RL^#;5JFr)bq4;qpf9X{H_9>0CSvik;F9cUSyE>)gwDQV(Y3-29 zr3!ugb-6*CO+@!vn_A~-M_TB`jwRI^Xqaq`NONb_aSCPO9e2D=)l&IcG4r^;@6(ss z@{LU%@x5D;V-u%7{goRQJ|Lehm{V5X&Y4B^39c%=UH&xDba%U@xYnL{<;@;`$&Lxi zhPmu7gm30*j_<7Znb2TaaBdTt4|^eO*V*%JqQEngy}tC~Ym+VZ?;m`hX4GpB+Wq8M zS}k8#fyY4`~kV`R%n% z_v2VnCDX&ZCH4dl3{^kmjdE*#<!6+F{D`lUgMZqgZG(0P zQs&)+dU;#z4&0eur@&C@yH+CIB6|(Jk89&G&lEGE#)dV{9S81IIQD9$S2!AooP0y` zn8UWRj;*MX?OZAoBvf@uf}yTfvLZiD9#4jhVYr25y!rP(>RfoKG~cn9^*GM2BUk`WwIJNqjF? zd(&&8&BlJmLbX^}s6)6kO-#mN-zVYH%)I0pt|SZJ8T&@-=x1}ki>K>G)+u$?QA^Ep zq$l0Do0``!^PVgJagFBFYrkq@=fs%DxS9cL$?oC#l&%)P6TS6$5^rXd!YxvL%KLM; zCdQsJ>^lq5mr?kZ`e{6Qv^v9zavEdiI zNm;kleB+o)B=c!peL^1N&Xv9lI-;jyJ(GQSgRSLkCECsWwjR0?wrt|-+8iBYQ9V7q z`lZyHBXtcKA1BTUpITeFc7W@RV32A8_o0mZcyTMHa>+YWeG5OUGQvImc?9x>Jj`p4 zoeXGf;CWsW>zPp@ZZz-4^OaY=k*|lZs;=hDut5sH=8Izrg$at?Z(Xa?-v=3Sn~92! z^~+C8T{q)mpSO6Zlb3k&e098Av)QlWQsudo=X%+P+XSD*AMBU+c_VRtgefq`d70UC z_IkMo>r{JwrBG$PH~PKUcOcxIrJ;QBJpso3-+Nk=f-E+?Iw2Fqx|9>KYm`m%=@v)P0@zB7(b>v#eFi)pM6Q} z>mqHpb2;x~s9kw5_#8KrA%0<3;Mk1t?)w&* z%ws&=P;yEciee9oHe=*k;Qmgh)EWu+gXY&3b#MgdPr$F@o zQ1&L^SZ{sX@MS7An9C5E5-Iao2&pKIhD;ekD3qd*ITdB9$WVkN${fl(W=dr!L`h^Q zk+H#0@42-1{XEb6z2EVD?>>%w-@Colb^ZTqt>19|&huQP4^kWYPai}Ya%plHXB<<_ z?A5~-J?vY;YDI}4#rf-t4tuHz+Hsp(En~c%?G7V8nx?p)n7?vm?CH@G+QUopcl_YN z>mDC`m!3;2z`bq@z4_D*HhhgrUwn;{_Xo9eRtF?6novs6d8_-C9qEdk-xqj&PSSr$ z`oFf?U*3I#{r9^SJLj}`xXfj|TeQ%|Ppp4pDDJOJf3=XQtEcC`zZ8qNNtt7z&1p{D zga29d*aQo&znzE7J-xDI>8Fa=43(FxYnwRlRj_5;j1>$u|Kg=O_Kf_=8|L}NQU(7c zuWl0u+Vi%4;p!4rL07re9m_|*Hho2~I@XSO_L(XOTGiG9EH)1>3IBr~g}mAzyUqh>FNCHcveX(&wdcWcIAYbFPO zS`RV*71fv7|6l;3?bFu|kmg2)OsbE_E&D;*o~L~QDmVNACSW6ZN3h>aIQF3-tC<%FoqkXepGyf&cst^+a#pbu0*32Y z^l$4`B&g-W6+`hG{!54_HTBp@pdTqK=Ho4LNl>Ev8Ssq#KP}dJlT7Vp|E$u6M=n}y zjoW1gE-+oV^FPk)5?(svI2ZEIQT?x1%}LIvtnfmy;Q#(iQ*%8_(#e*`pSOh^#`k6p zJC5)7_dS$(JK1RelwSz25G3D@qQ9osqN@3OG5*m#?0;LM5Uj-iSR-|rvG*lM?)uE7 zgDjW=67QR|LpwlBHvkm$8ohG%wdKM#;9|we*j^R>jGp)igeEEyEUc4Ys+!y4`n0h19?2S!_5Bg}(y{|mvz%0JNfr&bTA|Ldz0_*zK#G{R%EAqBY?1X1eEXMME|M+BI z3p(QoY;P9q+^1k{wh^19Ay%rvX>!FpSUq}>t7;Bn55EDi8~nZvUl*Y-Qw8~_7!vyez*Mg6 zTxkCNi;>jZoT7S}9640y_a{^Bsi29YBkS#4_|-T+n%e(x=LPq3CRxWT)U zsGlB!Wwzfq1bIn zN5Qmr*%HGUqpZT;pmmPNNw^9R5u;q*XVanJrzm|%hZmjsS_WI!i9QXYFo`3k)3HMotE|$ff=%BJ1$3;1iXPa60q= zC*J1SR(q5JYVWS_t&o3@5dv2A+2r1}*yZBBRmLj*I2MrXxxPFbb>Zd z7^)`iSjY44n(=<^8vZk6O#LRcX9KdhQXFz7V0*ms@81iq3w-RHSm6^)nYalSCse2J zqHHj0_XQ8gzOGt&*&6fWFHa*5p29$@E!9J ztO5D%Lp}g)D*iRNQuQO1lS@JDO2>s@S zISX|oq+Z(_rB*^(O+KO>w&AIGlAW9Dv9hi>(I)Lg)&p6Rs16CHLVcYteXK9Cb1r(q zN4mS*yF@r0w0pwc%**TN*){{ic_LBVKt~Nan|a1p$3KClV{aeVvwZS`Z6J}_xx6Sr z%>Z)x0mQ{Z1?P8Z7#ks^?E+ss6O*&-@%JV585`#d;h_`*f$r)>&~H7ln`WSHv`6+o z0df=3NkMrHfq?Sn@GYi=BSfbM##}0SG?F{;Ui6_cAS`P9=hs|zcapHJz%*Ap;X&AS zBzE5T4WGR<#QHhVmS#{}*yDhL<$W0C1yQMf#>?r1dcy8SPqxK&RoI-kyoq;+BNBju z3`D%qaNh-Mv*}{vGS33g>n-=e<3aYL3WPd#-dMj5S5U7qr@J7{lt+*qE&DY+e1*

X?Cy;5Gh^nT~hsFh=f-NNMvHvd2t@e4*;0SShOjsMh#(5K_b7i60;I z>sxoh-W6*lUX%Dv$X#GigQ9Loqz7;nh=+?7H}rv6*EOAo*Ig}B%LsC@ng3@v>lF<;HvMz^N@0iQ2jBkC_vUE`X?f**dM=@q$OeuK~#3c zO3!2*^RmNvU_=4eOJJGu0 zNbf;d=p@W?L<_`LXV_q9$4)Oh$cLjjbKp6eU#2eK-)nrV<`Vz*7^w>_QGr*(=Kat= zQ0t1dD9P+wzYwGtfExS2pheBqt6Ods?N=UT=Y^_s4*sFSI^+|;iGKi@)b99Ka{FMt zThUHLG@YQaZbYea0Gs!M5&r`8mvV@xWiWjN!I<&FDM)BcDtyY|#VAkoCz!?@F{AQ^ ziZ_%fg>Y<($}Mp4P`@o=xC46Ybr{Krk+Kd4=vwUg7Ptq@!sU1WABZM-vroM*Hozmk z0fjaLXYDBFd})wd3AD@2!lQ8~_?;14XSRHY;a?|_wGi1lq#4;lBWfHE_0yA4YGXM@ zEjG{Nx~gbm@ku1M;t|{IQEL*;aIfd+mI8om3L}9@EE13lMtjF;`TQ$iOX#zfr^k{U1^6m+nMH_A6lO)bC!FmZpt+ zXEMtdznhl9Jhm8@4Y(1nJ^fQim#^ZK`RrPSJS%cuIGlx22K;ptdtpA(johu-V6m$%n zz!>|bCmAdwpsZdI;08T*ejyn z*nKc7e(`A+z6)#=??JtXMx#XebRW?wr-B~+EZzqO%31YhcwKK$N7R=?{5Qh@tH zpC=BE+e_u)TKT&?I2H)=M(wu0cGByR!!=uq{6ds>8J{yUHiJ>$689TlV+N=EmVr z9^}RjG^ znwoNLmaZo`*c0JL4tY$x(iNwkAOz4sO6qLI6*qElWFW;4LO%9t3;s^SSx2K1_y-P@ zpGnSaKGTJ}56n^1M++0PDIyA;?S&MST_O2Ap3@B^oDrzHZ~fkW;XGewZNYb{g|+kz ztZx-r^f%?vZ(`i}Y!wFwt=Wb51>MDk5(QniOtSZm7IdF@^jgBapyR%T!L=2e7~N<% zMlZiH)Yno!cu?Jtj^WdyP_&1v@y3V<`d2@u(_h5Gy5~mh%8jwZDl~oQHG{&!F6ZXv zwvA~o+g4IiQq$h9m+A9GyfLH$>Jh8&t!R->57ez%fL4WEWKRjY*my5F8HSToMy96X zPCp>aYL4evxpE~+Jf7FDU-K&}uKoV~`^4m=)t4-zTxv+jbl-M%uEk?t$23|$;6#A}X4G{uoI@2>Vqm-iy?OUnAtjq<$gC<@=)c0ZN?wf}jo;{;O zeWQhj(#qaGsHthsovm(+($dn+ACgeO3y6p;BgS7%otugzy}i7oAm#)D#U~;nqJ7{% zJ!%-2`R`7tFQLg`=H`Al^-|)~?9R^TGojS9WD; zv55+)2;i4NG45VlZv2dnsMD;EFHiPvD=m8ZG^Ytz(4Nt??Cccg<@wnr1&sdw0BSU9 zkTI=oWqK=ow~ME>^z`t+D&PuyksoIu7SXRlvga7#ST+Je<3bO?B5V zttvZpB{F_E82Gtg^6{n<5)vk6X0&W>yhnk@>n-+*q|ZGt{@r_bFHC4 z8`lw*mac1TY?R5~efZEJ7V+uFuHX{zhS%2+w}q8F3L(bFPn@`lJ%LlO8~~Uyo0ka| z3N?ZyPWPUkj1^7jC4^x591J`Q>Nz#YpgXf zw?GxLs=B6zg@XgzN`k^{M|WV)p2J)@=ACzgg6Oq&?o5L15ycN%LCQNfCr2G2CARWA ztUB0s?%b&>Rj#6=qXRaFb<-+U1z{R@D&m!M;t9*zwe_2>T)Ncw`g2PX&Aa#SV|D1z zWqfj7-Le)EcWb({+qQ1)$BW&K7QkqBVR7-}w{PJ<0tb*Utz_y?b>}mvdd~P|XP+vY zkGOfWrs>%D&`{mFy`iC_!1j!a{ z-7a@xL!A1w9|PH^OXv7o z!yzb14LIf0oZl(MuKbEq9LW%n-HzU(6du63Ma9M3TwGjt=31HCj7tUv2BJE)yM19l zapD9eh(>C|kCS>6s4X4`^ljkc=I)0#gd$la+sVnvjEupnMn*>bA|jU=n&@h&3eg)M zZ$j;OjBomvmlxWlJsUMAetAK~bEV)bD!xtg)Ik@MqqmsWL3Y#MC~9tQu4^n4QI?vz zjDdk+Pfuj2p5N`;Jf&r2%CkGK7c+4C{VY3$4$@@w$dMzDd)om4=9=FXZlriz*AB$R zy=iYv-!n5_>dLcSp*J-B%LpYt-V8Blv4Tii*I1Y}w>vGom@>XKEG%r*iR`4OUcJBx zV}Qky6}<0zkuv$Ks;%vY*xAKW23l%ZUxsneN;V>3krSi0CRi(@gk4k?wMH!e&#jj) zU;YVH$Y_}5GlNJVvs0UQm=9y%Ml9k;^gh*^dqoUnc?Hh2!&1hURMOG+5^)}gEQ8$-U zEFmS!$;&%z@&J9&$eTxNAyB^t4A!Mdd;H_as;#M!W7~A#m}L0t?a1558^vi#^E!#Y_?vzb}c6tS9-y3e33&YCQXq@Qx9{Tjf^-)7nQtzN}V`)@=bSw zL`rI^prT^5SU9INHFReOi_GoqMbVU2N8Y@7)1Y^9M=U}?PE(ujHg2BiSGRL>r2!@| z;V&g+WwA20UA$^{UwQf#?O%Oc#+LExn09}(DCU_Cb2l-7Y4Uh}SBUI&Y9_gRS95zZhGS9LL~VxPm0a!o8?!>FIn+t=G7@82Mcsda07 zS}YylyBn+{l)R0FIXOIqMx%%}dC#&bF<2jS7npr*BMr0NrD&Vu$LpG0o18C8{VL!;L3%a2`KPfx?!f75&t!}aUe zmCg>Wr1as?D|yf5zsnfGyCh{vOrA(U{A?rAHhh6sM9rd^ScQi<{>QAs=ji7YdcU4w zO#|j~m1WD8Nl8m0-1RHGq6#r+`Np$4la-?IP1xsY`eH=z4r_YvCYX}9sQ~Y-(AYS zh5uzwrqHh+nxgDyOmy=e1@;c0A>t2omg7d`<_~+bs^$Zk z_q8laZi-|{z;YyMGnd_)7hqk=?Z1-_iMP@=(H}sFWfl}sE>9I;bubeQ_GJ*5)7(nq zMVt+?gyP?rC7@TA4$sWUc-^#Ve0=<+%FE}^cW7u(4ZCeHFf{B(H_=sgK@p8)y=T~7 zW;<9M7<5Q0C>$qIEQ-s2!>D2^%nuC{bCa7tpl`6`gTg>aNy(_^=t+H)!9)57wu;Zd zv^?_+uf*LIS%{ny6CZc1Q}twr=Ge-1V94`p-0jAu(H zGVoSvw)R&~?7%hK+v{PL7L#}P?)p3N@ljbqyrsS{jw>ikUvZ;80efFXRaH4#JeI}0 zc#E6P0g)3KIx1J~r>2($ZQON7&6^vTg8WJ9H8>|XZ?X-)y69SgitACnT6Dz@%7s6t zV>j=hZ)JaPQI!%hfxR3j-`Mkk)mxzL;(uOe$b=S~J)hLy!ik=lDNIXH^=YtTdb>*b z54pu7KZ{A^0!*FTWEODf{^P{w)4;}tTwGkFsi~=7e|z_bea)Ipt5PI4Z?45_iHMC2 zhA{Ed&`>|jU>aV$xRgfKx#RxhCyxYqMIRpc>7}N*V@EEEWJ>?$c8sB9zCE(x_tMs; z*VWbKF1Xu0)ZbrSl=b+rEKGwWDgCd4wS}nDLs^coik$BxW6gNH4f z7w}f|nwxPb>uC#|^Xd)M6liO2zn+i~2G|-;i-5K^Ha1pNQZl*(JKq##i_(v(#>QZS zTczRwDhSDUda~LhDlP;vy9LL5IO2MV`Xf?>+)25aH@j8hZmTbC=jBHuHpZ!2JCXW< zS-MeJOmObL(J8s`Z>p}PpT)anU-aNkJ0n{It|%&J;{o_IkG|iS<%BNQ3WZF@*Rr@2 z=kMoiHQMI*aaI`uvokYyYHCtrAoxnfcY0_azNd`sKH6=gJZ^bmdpmI90BW>L)w6We zRConSPvY@7fK&TXz%$bH@&r7$(?5(t_H1V$hF<-s$tNZzEEA&d@LQqCgt|lSX?R<9 z&+FIvnX?1^{YHcE46s7*IZ<#(PwyhWDY--9L}q8qo;`bF>c1R+p(rO87#quVcDMiK zJJI)LZ`#?}oi#rX7-G-G30WDL(_dbTy&OxQ_Yjwmr~_;JG=S-4`<5Nlihp%`CXlJI zM781G%i86dK@uYh^n8hbyMPe^)j!@LOF?^M-0tIA$xd<|NYk41ENm9Z9K!*_{=2Di zQdlO1e{Yxz{H`;Nm8jcv{%hBvL6X@wjiSAKU2>r9;lqbUgV6C>VNjy2t$naK0XqQR zv4H^l*-%H|!lVR~9)pc7Q*M19Kl;Peu@9vUrMBwD4gZN7RWI?^2)g!rKMvh}ZM!PF z9TEGITalN@m#^IgE70}GjP1?K%L@n(XF_ykS+_0(by{Lx-i>L6*PodvftN3n%a(O7 z&!X%XT^YDu>2%_*ad!SipFPK~9ND0%derv&`7C^BAgtKFjA^ZD{MtMF`Q9g&j)=2y zc%x=VkH$9Yp|NaeZvGUxY7tgxhv&SG9ZQD2@|SfV@LbQ}pc$B#Cv(XS2d!^#kZ$|- z?K9)=c@Xw$P}t|Ut#2&hr0o0lZDp%kv3cq#I2JR~RkL9udd}HqDYq{&2QR(jKP_n} zb8MIDAH3r5?47KCSlfXApoBdTmmL?!ZB}&VQb7m=T5GBO{TkKQv9kxp#Bhe@ub{v? z;RZv%kBJFV)u5dGI5f0OQBl$G`zK($CmrXrAEUY@7n#5@^7pUhIOL~YTr~FWTgA%8 z7V8N>@J&x;-(~k-QyYeh2L}h6t=ZVvP;bb)&*Oli3{*WCix^mZ{@dyU2M!E%6+C`y z{f5Qi*Oe{E{Iqm*A8`>a#Sb%0D@?}vCf%Q&|Hj9s=GE{zG$^R0LBT_X53eSM;`^CF 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 literal 0 HcmV?d00001 From 75ffe2589d40676537074016c4be2cf30817c746 Mon Sep 17 00:00:00 2001 From: Boris Arzentar Date: Mon, 23 Dec 2024 15:37:24 +0100 Subject: [PATCH 22/32] fix: refactor mcp --- cognee-mcp/README.md | 60 +- .../{mcpcognee => cognee_mcp}/__init__.py | 2 +- .../{mcpcognee => cognee_mcp}/server.py | 108 +- cognee-mcp/mcpcognee/__main__.py | 4 - cognee-mcp/pyproject.toml | 4 +- cognee-mcp/uv.lock | 4764 +++++++++++++++++ 6 files changed, 4870 insertions(+), 72 deletions(-) rename cognee-mcp/{mcpcognee => cognee_mcp}/__init__.py (88%) rename cognee-mcp/{mcpcognee => cognee_mcp}/server.py (54%) delete mode 100644 cognee-mcp/mcpcognee/__main__.py create mode 100644 cognee-mcp/uv.lock diff --git a/cognee-mcp/README.md b/cognee-mcp/README.md index bf2c9989d..b3846aed8 100644 --- a/cognee-mcp/README.md +++ b/cognee-mcp/README.md @@ -1,57 +1,41 @@ # cognee MCP server -A MCP server project +1. Clone the [cognee](www.github.com/topoteretes/cognee) repo -Create a boilerplate server: - -```jsx -uvx create-mcp-server -``` - -1. The command will ask you to name your server, e.g. mcp_cognee - -2. Answer “Y” to connect with Claude -Then run +2. Install dependencies ```jsx -cd mcp_cognee +cd cognee-mcp uv sync --dev --all-extras ``` -Activate the venv with +3. Activate the venv with ```jsx source .venv/bin/activate ``` -This should already add the new server to your Claude config, but if not, add these lines manually: - -``` -"mcpcognee": { - "command": "uv", - "args": [ - "--directory", - "/Users/your_username/mcp/mcp_cognee", - "run", - "mcpcognee" - ], - "env": { - "ENV": "local", - "TOKENIZERS_PARALLELISM": "false", - "LLM_API_KEY": "add_your_api_key_here", - "GRAPH_DATABASE_PROVIDER": "neo4j", - "GRAPH_DATABASE_URL": "bolt://localhost:7687", - "GRAPH_DATABASE_USERNAME": "add_username_here", - "GRAPH_DATABASE_PASSWORD": "add_pwd_here", - "VECTOR_DB_PROVIDER": "lancedb", - "DB_PROVIDER": "sqlite", - "DB_NAME": "postgres" - } - } +4. Add the new server to your Claude config: + +```json +"cognee": { + "command": "uv", + "args": [ + "--directory", + "/{Absolute path to cognee directory}/cognee-mcp", + "run", + "cognee" + ], + "env": { + "ENV": "local", + "TOKENIZERS_PARALLELISM": "false", + "LLM_API_KEY": "add_your_api_key_here", + } +} ``` Then, edit the pyproject.toml in your new folder so that it includes packages from the cognee requirements. Use the pyproject.toml in your cognee library for this, but match the syntax of the automatically generated pyproject.toml so that it is compatible with uv. Define cognify tool in server.py -Restart your Claude desktop. \ No newline at end of file +Restart your Claude desktop. diff --git a/cognee-mcp/mcpcognee/__init__.py b/cognee-mcp/cognee_mcp/__init__.py similarity index 88% rename from cognee-mcp/mcpcognee/__init__.py rename to cognee-mcp/cognee_mcp/__init__.py index d353850d2..e704e08dc 100644 --- a/cognee-mcp/mcpcognee/__init__.py +++ b/cognee-mcp/cognee_mcp/__init__.py @@ -8,7 +8,7 @@ def main(): asyncio.run(server.main()) # Optionally expose other important items at package level -__all__ = ['main', 'server'] +__all__ = ["main", "server"] if __name__ == "__main__": main() diff --git a/cognee-mcp/mcpcognee/server.py b/cognee-mcp/cognee_mcp/server.py similarity index 54% rename from cognee-mcp/mcpcognee/server.py rename to cognee-mcp/cognee_mcp/server.py index ba2f85122..739a86391 100644 --- a/cognee-mcp/mcpcognee/server.py +++ b/cognee-mcp/cognee_mcp/server.py @@ -1,5 +1,6 @@ import importlib.util import os +import asyncio from contextlib import redirect_stderr, redirect_stdout import cognee @@ -9,15 +10,17 @@ from cognee.shared.data_models import KnowledgeGraph from mcp.server import NotificationOptions, Server from mcp.server.models import InitializationOptions -from pydantic import AnyUrl, BaseModel -server = Server("mcpcognee") +server = Server("cognee-mcp") def node_to_string(node): - keys_to_keep = ["chunk_index", "topological_rank", "cut_type", "id", "text"] - keyset = set(keys_to_keep) & node.keys() - return "Node(" + " ".join([key + ": " + str(node[key]) + "," for key in keyset]) + ")" + # keys_to_keep = ["chunk_index", "topological_rank", "cut_type", "id", "text"] + # keyset = set(keys_to_keep) & node.keys() + # return "Node(" + " ".join([key + ": " + str(node[key]) + "," for key in keyset]) + ")" + node_data = ", ".join([f"{key}: \"{value}\"" for key, value in node.items() if key in ["id", "name"]]) + + return f"Node({node_data})" def retrieved_edges_to_string(search_results): @@ -49,60 +52,107 @@ async def handle_list_tools() -> list[types.Tool]: """ return [ types.Tool( - name="Cognify_and_search", - description="Build knowledge graph from the input text and search in it.", - inputSchema={ + name = "cognify", + description = "Build knowledge graph from the input text.", + inputSchema = { "type": "object", "properties": { "text": {"type": "string"}, - "search_query": {"type": "string"}, "graph_model_file": {"type": "string"}, "graph_model_name": {"type": "string"}, }, - "required": ["text", "search_query"], + "required": ["text"], }, - ) + ), + types.Tool( + name = "search", + description = "Search the knowledge graph.", + inputSchema = { + "type": "object", + "properties": { + "query": {"type": "string"}, + }, + "required": ["query"], + }, + ), + types.Tool( + name = "prune", + description = "Reset the knowledge graph.", + inputSchema = { + "type": "object", + "properties": { + "query": {"type": "string"}, + }, + }, + ), ] @server.call_tool() async def handle_call_tool( - name: str, arguments: dict | None + name: str, + arguments: dict | None ) -> list[types.TextContent | types.ImageContent | types.EmbeddedResource]: """ Handle tool execution requests. Tools can modify server state and notify clients of changes. """ - if name == "Cognify_and_search": + if name == "cognify": with open(os.devnull, "w") as fnull: with redirect_stdout(fnull), redirect_stderr(fnull): - await cognee.prune.prune_data() - await cognee.prune.prune_system(metadata=True) - if not arguments: raise ValueError("Missing arguments") text = arguments.get("text") - search_query = arguments.get("search_query") + if ("graph_model_file" in arguments) and ("graph_model_name" in arguments): model_file = arguments.get("graph_model_file") model_name = arguments.get("graph_model_name") + graph_model = load_class(model_file, model_name) else: graph_model = KnowledgeGraph await cognee.add(text) - await cognee.cognify(graph_model=graph_model) + + await cognee.cognify(graph_model = graph_model) + + return [ + types.TextContent( + type = "text", + text = "Ingested", + ) + ] + elif name == "search": + with open(os.devnull, "w") as fnull: + with redirect_stdout(fnull), redirect_stderr(fnull): + if not arguments: + raise ValueError("Missing arguments") + + search_query = arguments.get("query") + search_results = await cognee.search( - SearchType.INSIGHTS, query_text=search_query + SearchType.INSIGHTS, query_text = search_query ) results = retrieved_edges_to_string(search_results) return [ types.TextContent( - type="text", - text=results, + type = "text", + text = results, + ) + ] + elif name == "prune": + with open(os.devnull, "w") as fnull: + with redirect_stdout(fnull), redirect_stderr(fnull): + await cognee.prune.prune_data() + await cognee.prune.prune_system(metadata=True) + + return [ + types.TextContent( + type = "text", + text = "Pruned", ) ] else: @@ -116,11 +166,15 @@ async def main(): read_stream, write_stream, InitializationOptions( - server_name="mcpcognee", - server_version="0.1.0", - capabilities=server.get_capabilities( - notification_options=NotificationOptions(), - experimental_capabilities={}, + server_name = "cognee-mcp", + server_version = "0.1.0", + capabilities = server.get_capabilities( + notification_options = NotificationOptions(), + experimental_capabilities = {}, ), ), - ) \ No newline at end of file + ) + +# This is needed if you'd like to connect to a custom client +if __name__ == "__main__": + asyncio.run(main()) diff --git a/cognee-mcp/mcpcognee/__main__.py b/cognee-mcp/mcpcognee/__main__.py deleted file mode 100644 index ed6f44351..000000000 --- a/cognee-mcp/mcpcognee/__main__.py +++ /dev/null @@ -1,4 +0,0 @@ -from mcpcognee import main -import asyncio - -asyncio.run(main()) \ No newline at end of file diff --git a/cognee-mcp/pyproject.toml b/cognee-mcp/pyproject.toml index 4fcf86d68..81f6c7236 100644 --- a/cognee-mcp/pyproject.toml +++ b/cognee-mcp/pyproject.toml @@ -1,5 +1,5 @@ [project] -name = "mcpcognee" +name = "cognee-mcp" version = "0.1.0" description = "A MCP server project" readme = "README.md" @@ -91,4 +91,4 @@ dev = [ ] [project.scripts] -mcpcognee = "mcpcognee:main" +cognee = "cognee_mcp:main" diff --git a/cognee-mcp/uv.lock b/cognee-mcp/uv.lock new file mode 100644 index 000000000..63dfae03b --- /dev/null +++ b/cognee-mcp/uv.lock @@ -0,0 +1,4764 @@ +version = 1 +requires-python = ">=3.11" +resolution-markers = [ + "python_full_version < '3.12'", + "python_full_version >= '3.12' and python_full_version < '3.12.4'", + "python_full_version >= '3.12.4' and python_full_version < '3.13'", + "python_full_version >= '3.13'", +] + +[[package]] +name = "aiofiles" +version = "23.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/af/41/cfed10bc64d774f497a86e5ede9248e1d062db675504b41c320954d99641/aiofiles-23.2.1.tar.gz", hash = "sha256:84ec2218d8419404abcb9f0c02df3f34c6e0a68ed41072acfb1cef5cbc29051a", size = 32072 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c5/19/5af6804c4cc0fed83f47bff6e413a98a36618e7d40185cd36e69737f3b0e/aiofiles-23.2.1-py3-none-any.whl", hash = "sha256:19297512c647d4b27a2cf7c34caa7e405c0d60b5560618a29a9fe027b18b0107", size = 15727 }, +] + +[[package]] +name = "aiohappyeyeballs" +version = "2.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7f/55/e4373e888fdacb15563ef6fa9fa8c8252476ea071e96fb46defac9f18bf2/aiohappyeyeballs-2.4.4.tar.gz", hash = "sha256:5fdd7d87889c63183afc18ce9271f9b0a7d32c2303e394468dd45d514a757745", size = 21977 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b9/74/fbb6559de3607b3300b9be3cc64e97548d55678e44623db17820dbd20002/aiohappyeyeballs-2.4.4-py3-none-any.whl", hash = "sha256:a980909d50efcd44795c4afeca523296716d50cd756ddca6af8c65b996e27de8", size = 14756 }, +] + +[[package]] +name = "aiohttp" +version = "3.10.10" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohappyeyeballs" }, + { name = "aiosignal" }, + { name = "attrs" }, + { name = "frozenlist" }, + { name = "multidict" }, + { name = "yarl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/17/7e/16e57e6cf20eb62481a2f9ce8674328407187950ccc602ad07c685279141/aiohttp-3.10.10.tar.gz", hash = "sha256:0631dd7c9f0822cc61c88586ca76d5b5ada26538097d0f1df510b082bad3411a", size = 7542993 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/72/31/3c351d17596194e5a38ef169a4da76458952b2497b4b54645b9d483cbbb0/aiohttp-3.10.10-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c30a0eafc89d28e7f959281b58198a9fa5e99405f716c0289b7892ca345fe45f", size = 586501 }, + { url = "https://files.pythonhosted.org/packages/a4/a8/a559d09eb08478cdead6b7ce05b0c4a133ba27fcdfa91e05d2e62867300d/aiohttp-3.10.10-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:258c5dd01afc10015866114e210fb7365f0d02d9d059c3c3415382ab633fcbcb", size = 398993 }, + { url = "https://files.pythonhosted.org/packages/c5/47/7736d4174613feef61d25332c3bd1a4f8ff5591fbd7331988238a7299485/aiohttp-3.10.10-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:15ecd889a709b0080f02721255b3f80bb261c2293d3c748151274dfea93ac871", size = 390647 }, + { url = "https://files.pythonhosted.org/packages/27/21/e9ba192a04b7160f5a8952c98a1de7cf8072ad150fa3abd454ead1ab1d7f/aiohttp-3.10.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3935f82f6f4a3820270842e90456ebad3af15810cf65932bd24da4463bc0a4c", size = 1306481 }, + { url = "https://files.pythonhosted.org/packages/cf/50/f364c01c8d0def1dc34747b2470969e216f5a37c7ece00fe558810f37013/aiohttp-3.10.10-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:413251f6fcf552a33c981c4709a6bba37b12710982fec8e558ae944bfb2abd38", size = 1344652 }, + { url = "https://files.pythonhosted.org/packages/1d/c2/74f608e984e9b585649e2e83883facad6fa3fc1d021de87b20cc67e8e5ae/aiohttp-3.10.10-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1720b4f14c78a3089562b8875b53e36b51c97c51adc53325a69b79b4b48ebcb", size = 1378498 }, + { url = "https://files.pythonhosted.org/packages/9f/a7/05a48c7c0a7a80a5591b1203bf1b64ca2ed6a2050af918d09c05852dc42b/aiohttp-3.10.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:679abe5d3858b33c2cf74faec299fda60ea9de62916e8b67e625d65bf069a3b7", size = 1292718 }, + { url = "https://files.pythonhosted.org/packages/7d/78/a925655018747e9790350180330032e27d6e0d7ed30bde545fae42f8c49c/aiohttp-3.10.10-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:79019094f87c9fb44f8d769e41dbb664d6e8fcfd62f665ccce36762deaa0e911", size = 1251776 }, + { url = "https://files.pythonhosted.org/packages/47/9d/85c6b69f702351d1236594745a4fdc042fc43f494c247a98dac17e004026/aiohttp-3.10.10-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:fe2fb38c2ed905a2582948e2de560675e9dfbee94c6d5ccdb1301c6d0a5bf092", size = 1271716 }, + { url = "https://files.pythonhosted.org/packages/7f/a7/55fc805ff9b14af818903882ece08e2235b12b73b867b521b92994c52b14/aiohttp-3.10.10-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:a3f00003de6eba42d6e94fabb4125600d6e484846dbf90ea8e48a800430cc142", size = 1266263 }, + { url = "https://files.pythonhosted.org/packages/1f/ec/d2be2ca7b063e4f91519d550dbc9c1cb43040174a322470deed90b3d3333/aiohttp-3.10.10-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:1bbb122c557a16fafc10354b9d99ebf2f2808a660d78202f10ba9d50786384b9", size = 1321617 }, + { url = "https://files.pythonhosted.org/packages/c9/a3/b29f7920e1cd0a9a68a45dd3eb16140074d2efb1518d2e1f3e140357dc37/aiohttp-3.10.10-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:30ca7c3b94708a9d7ae76ff281b2f47d8eaf2579cd05971b5dc681db8caac6e1", size = 1339227 }, + { url = "https://files.pythonhosted.org/packages/8a/81/34b67235c47e232d807b4bbc42ba9b927c7ce9476872372fddcfd1e41b3d/aiohttp-3.10.10-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:df9270660711670e68803107d55c2b5949c2e0f2e4896da176e1ecfc068b974a", size = 1299068 }, + { url = "https://files.pythonhosted.org/packages/04/1f/26a7fe11b6ad3184f214733428353c89ae9fe3e4f605a657f5245c5e720c/aiohttp-3.10.10-cp311-cp311-win32.whl", hash = "sha256:aafc8ee9b742ce75044ae9a4d3e60e3d918d15a4c2e08a6c3c3e38fa59b92d94", size = 362223 }, + { url = "https://files.pythonhosted.org/packages/10/91/85dcd93f64011434359ce2666bece981f08d31bc49df33261e625b28595d/aiohttp-3.10.10-cp311-cp311-win_amd64.whl", hash = "sha256:362f641f9071e5f3ee6f8e7d37d5ed0d95aae656adf4ef578313ee585b585959", size = 381576 }, + { url = "https://files.pythonhosted.org/packages/ae/99/4c5aefe5ad06a1baf206aed6598c7cdcbc7c044c46801cd0d1ecb758cae3/aiohttp-3.10.10-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:9294bbb581f92770e6ed5c19559e1e99255e4ca604a22c5c6397b2f9dd3ee42c", size = 583536 }, + { url = "https://files.pythonhosted.org/packages/a9/36/8b3bc49b49cb6d2da40ee61ff15dbcc44fd345a3e6ab5bb20844df929821/aiohttp-3.10.10-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:a8fa23fe62c436ccf23ff930149c047f060c7126eae3ccea005f0483f27b2e28", size = 395693 }, + { url = "https://files.pythonhosted.org/packages/e1/77/0aa8660dcf11fa65d61712dbb458c4989de220a844bd69778dff25f2d50b/aiohttp-3.10.10-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5c6a5b8c7926ba5d8545c7dd22961a107526562da31a7a32fa2456baf040939f", size = 390898 }, + { url = "https://files.pythonhosted.org/packages/38/d2/b833d95deb48c75db85bf6646de0a697e7fb5d87bd27cbade4f9746b48b1/aiohttp-3.10.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:007ec22fbc573e5eb2fb7dec4198ef8f6bf2fe4ce20020798b2eb5d0abda6138", size = 1312060 }, + { url = "https://files.pythonhosted.org/packages/aa/5f/29fd5113165a0893de8efedf9b4737e0ba92dfcd791415a528f947d10299/aiohttp-3.10.10-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9627cc1a10c8c409b5822a92d57a77f383b554463d1884008e051c32ab1b3742", size = 1350553 }, + { url = "https://files.pythonhosted.org/packages/ad/cc/f835f74b7d344428469200105236d44606cfa448be1e7c95ca52880d9bac/aiohttp-3.10.10-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:50edbcad60d8f0e3eccc68da67f37268b5144ecc34d59f27a02f9611c1d4eec7", size = 1392646 }, + { url = "https://files.pythonhosted.org/packages/bf/fe/1332409d845ca601893bbf2d76935e0b93d41686e5f333841c7d7a4a770d/aiohttp-3.10.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a45d85cf20b5e0d0aa5a8dca27cce8eddef3292bc29d72dcad1641f4ed50aa16", size = 1306310 }, + { url = "https://files.pythonhosted.org/packages/e4/a1/25a7633a5a513278a9892e333501e2e69c83e50be4b57a62285fb7a008c3/aiohttp-3.10.10-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0b00807e2605f16e1e198f33a53ce3c4523114059b0c09c337209ae55e3823a8", size = 1260255 }, + { url = "https://files.pythonhosted.org/packages/f2/39/30eafe89e0e2a06c25e4762844c8214c0c0cd0fd9ffc3471694a7986f421/aiohttp-3.10.10-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f2d4324a98062be0525d16f768a03e0bbb3b9fe301ceee99611dc9a7953124e6", size = 1271141 }, + { url = "https://files.pythonhosted.org/packages/5b/fc/33125df728b48391ef1fcb512dfb02072158cc10d041414fb79803463020/aiohttp-3.10.10-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:438cd072f75bb6612f2aca29f8bd7cdf6e35e8f160bc312e49fbecab77c99e3a", size = 1280244 }, + { url = "https://files.pythonhosted.org/packages/3b/61/e42bf2c2934b5caa4e2ec0b5e5fd86989adb022b5ee60c2572a9d77cf6fe/aiohttp-3.10.10-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:baa42524a82f75303f714108fea528ccacf0386af429b69fff141ffef1c534f9", size = 1316805 }, + { url = "https://files.pythonhosted.org/packages/18/32/f52a5e2ae9ad3bba10e026a63a7a23abfa37c7d97aeeb9004eaa98df3ce3/aiohttp-3.10.10-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a7d8d14fe962153fc681f6366bdec33d4356f98a3e3567782aac1b6e0e40109a", size = 1343930 }, + { url = "https://files.pythonhosted.org/packages/05/be/6a403b464dcab3631fe8e27b0f1d906d9e45c5e92aca97ee007e5a895560/aiohttp-3.10.10-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c1277cd707c465cd09572a774559a3cc7c7a28802eb3a2a9472588f062097205", size = 1306186 }, + { url = "https://files.pythonhosted.org/packages/8e/fd/bb50fe781068a736a02bf5c7ad5f3ab53e39f1d1e63110da6d30f7605edc/aiohttp-3.10.10-cp312-cp312-win32.whl", hash = "sha256:59bb3c54aa420521dc4ce3cc2c3fe2ad82adf7b09403fa1f48ae45c0cbde6628", size = 359289 }, + { url = "https://files.pythonhosted.org/packages/70/9e/5add7e240f77ef67c275c82cc1d08afbca57b77593118c1f6e920ae8ad3f/aiohttp-3.10.10-cp312-cp312-win_amd64.whl", hash = "sha256:0e1b370d8007c4ae31ee6db7f9a2fe801a42b146cec80a86766e7ad5c4a259cf", size = 379313 }, + { url = "https://files.pythonhosted.org/packages/b1/eb/618b1b76c7fe8082a71c9d62e3fe84c5b9af6703078caa9ec57850a12080/aiohttp-3.10.10-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ad7593bb24b2ab09e65e8a1d385606f0f47c65b5a2ae6c551db67d6653e78c28", size = 576114 }, + { url = "https://files.pythonhosted.org/packages/aa/37/3126995d7869f8b30d05381b81a2d4fb4ec6ad313db788e009bc6d39c211/aiohttp-3.10.10-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1eb89d3d29adaf533588f209768a9c02e44e4baf832b08118749c5fad191781d", size = 391901 }, + { url = "https://files.pythonhosted.org/packages/3e/f2/8fdfc845be1f811c31ceb797968523813f8e1263ee3e9120d61253f6848f/aiohttp-3.10.10-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3fe407bf93533a6fa82dece0e74dbcaaf5d684e5a51862887f9eaebe6372cd79", size = 387418 }, + { url = "https://files.pythonhosted.org/packages/60/d5/33d2061d36bf07e80286e04b7e0a4de37ce04b5ebfed72dba67659a05250/aiohttp-3.10.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50aed5155f819873d23520919e16703fc8925e509abbb1a1491b0087d1cd969e", size = 1287073 }, + { url = "https://files.pythonhosted.org/packages/00/52/affb55be16a4747740bd630b4c002dac6c5eac42f9bb64202fc3cf3f1930/aiohttp-3.10.10-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4f05e9727ce409358baa615dbeb9b969db94324a79b5a5cea45d39bdb01d82e6", size = 1323612 }, + { url = "https://files.pythonhosted.org/packages/94/f2/cddb69b975387daa2182a8442566971d6410b8a0179bb4540d81c97b1611/aiohttp-3.10.10-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3dffb610a30d643983aeb185ce134f97f290f8935f0abccdd32c77bed9388b42", size = 1368406 }, + { url = "https://files.pythonhosted.org/packages/c1/e4/afba7327da4d932da8c6e29aecaf855f9d52dace53ac15bfc8030a246f1b/aiohttp-3.10.10-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa6658732517ddabe22c9036479eabce6036655ba87a0224c612e1ae6af2087e", size = 1282761 }, + { url = "https://files.pythonhosted.org/packages/9f/6b/364856faa0c9031ea76e24ef0f7fef79cddd9fa8e7dba9a1771c6acc56b5/aiohttp-3.10.10-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:741a46d58677d8c733175d7e5aa618d277cd9d880301a380fd296975a9cdd7bc", size = 1236518 }, + { url = "https://files.pythonhosted.org/packages/46/af/c382846f8356fe64a7b5908bb9b477457aa23b71be7ed551013b7b7d4d87/aiohttp-3.10.10-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e00e3505cd80440f6c98c6d69269dcc2a119f86ad0a9fd70bccc59504bebd68a", size = 1250344 }, + { url = "https://files.pythonhosted.org/packages/87/53/294f87fc086fd0772d0ab82497beb9df67f0f27a8b3dd5742a2656db2bc6/aiohttp-3.10.10-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ffe595f10566f8276b76dc3a11ae4bb7eba1aac8ddd75811736a15b0d5311414", size = 1248956 }, + { url = "https://files.pythonhosted.org/packages/86/30/7d746717fe11bdfefb88bb6c09c5fc985d85c4632da8bb6018e273899254/aiohttp-3.10.10-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:bdfcf6443637c148c4e1a20c48c566aa694fa5e288d34b20fcdc58507882fed3", size = 1293379 }, + { url = "https://files.pythonhosted.org/packages/48/b9/45d670a834458db67a24258e9139ba61fa3bd7d69b98ecf3650c22806f8f/aiohttp-3.10.10-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:d183cf9c797a5291e8301790ed6d053480ed94070637bfaad914dd38b0981f67", size = 1320108 }, + { url = "https://files.pythonhosted.org/packages/72/8c/804bb2e837a175635d2000a0659eafc15b2e9d92d3d81c8f69e141ecd0b0/aiohttp-3.10.10-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:77abf6665ae54000b98b3c742bc6ea1d1fb31c394bcabf8b5d2c1ac3ebfe7f3b", size = 1281546 }, + { url = "https://files.pythonhosted.org/packages/89/c0/862e6a9de3d6eeb126cd9d9ea388243b70df9b871ce1a42b193b7a4a77fc/aiohttp-3.10.10-cp313-cp313-win32.whl", hash = "sha256:4470c73c12cd9109db8277287d11f9dd98f77fc54155fc71a7738a83ffcc8ea8", size = 357516 }, + { url = "https://files.pythonhosted.org/packages/ae/63/3e1aee3e554263f3f1011cca50d78a4894ae16ce99bf78101ac3a2f0ef74/aiohttp-3.10.10-cp313-cp313-win_amd64.whl", hash = "sha256:486f7aabfa292719a2753c016cc3a8f8172965cabb3ea2e7f7436c7f5a22a151", size = 376785 }, +] + +[[package]] +name = "aiosignal" +version = "1.3.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "frozenlist" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ba/b5/6d55e80f6d8a08ce22b982eafa278d823b541c925f11ee774b0b9c43473d/aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54", size = 19424 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/6a/bc7e17a3e87a2985d3e8f4da4cd0f481060eb78fb08596c42be62c90a4d9/aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5", size = 7597 }, +] + +[[package]] +name = "aiosqlite" +version = "0.20.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0d/3a/22ff5415bf4d296c1e92b07fd746ad42c96781f13295a074d58e77747848/aiosqlite-0.20.0.tar.gz", hash = "sha256:6d35c8c256637f4672f843c31021464090805bf925385ac39473fb16eaaca3d7", size = 21691 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/c4/c93eb22025a2de6b83263dfe3d7df2e19138e345bca6f18dba7394120930/aiosqlite-0.20.0-py3-none-any.whl", hash = "sha256:36a1deaca0cac40ebe32aac9977a6e2bbc7f5189f23f4a54d5908986729e5bd6", size = 15564 }, +] + +[[package]] +name = "alembic" +version = "1.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mako" }, + { name = "sqlalchemy" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/00/1e/8cb8900ba1b6360431e46fb7a89922916d3a1b017a8908a7c0499cc7e5f6/alembic-1.14.0.tar.gz", hash = "sha256:b00892b53b3642d0b8dbedba234dbf1924b69be83a9a769d5a624b01094e304b", size = 1916172 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/06/8b505aea3d77021b18dcbd8133aa1418f1a1e37e432a465b14c46b2c0eaa/alembic-1.14.0-py3-none-any.whl", hash = "sha256:99bd884ca390466db5e27ffccff1d179ec5c05c965cfefc0607e69f9e411cb25", size = 233482 }, +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643 }, +] + +[[package]] +name = "anthropic" +version = "0.26.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "distro" }, + { name = "httpx" }, + { name = "jiter" }, + { name = "pydantic" }, + { name = "sniffio" }, + { name = "tokenizers" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5e/9e/3907fd0c1bcae40bbf40af14f43d06c6b824f0e056ab99510873e16fb4ba/anthropic-0.26.1.tar.gz", hash = "sha256:26680ff781a6f678a30a1dccd0743631e602b23a47719439ffdef5335fa167d8", size = 827985 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/86/25/b7df779d6c015416cccb0cb5e9e69678c4f6c5e762abefdf41c1cb1d3958/anthropic-0.26.1-py3-none-any.whl", hash = "sha256:2812b9b250b551ed8a1f0a7e6ae3f005654098994f45ebca5b5808bd154c9628", size = 877601 }, +] + +[[package]] +name = "anyio" +version = "4.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "sniffio" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f6/40/318e58f669b1a9e00f5c4453910682e2d9dd594334539c7b7817dabb765f/anyio-4.7.0.tar.gz", hash = "sha256:2f834749c602966b7d456a7567cafcb309f96482b5081d14ac93ccd457f9dd48", size = 177076 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/7a/4daaf3b6c08ad7ceffea4634ec206faeff697526421c20f07628c7372156/anyio-4.7.0-py3-none-any.whl", hash = "sha256:ea60c3723ab42ba6fff7e8ccb0488c898ec538ff4df1f1d5e642c3601d07e352", size = 93052 }, +] + +[[package]] +name = "argon2-cffi" +version = "23.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "argon2-cffi-bindings" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/31/fa/57ec2c6d16ecd2ba0cf15f3c7d1c3c2e7b5fcb83555ff56d7ab10888ec8f/argon2_cffi-23.1.0.tar.gz", hash = "sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08", size = 42798 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/6a/e8a041599e78b6b3752da48000b14c8d1e8a04ded09c88c714ba047f34f5/argon2_cffi-23.1.0-py3-none-any.whl", hash = "sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea", size = 15124 }, +] + +[[package]] +name = "argon2-cffi-bindings" +version = "21.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b9/e9/184b8ccce6683b0aa2fbb7ba5683ea4b9c5763f1356347f1312c32e3c66e/argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3", size = 1779911 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d4/13/838ce2620025e9666aa8f686431f67a29052241692a3dd1ae9d3692a89d3/argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367", size = 29658 }, + { url = "https://files.pythonhosted.org/packages/b3/02/f7f7bb6b6af6031edb11037639c697b912e1dea2db94d436e681aea2f495/argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d", size = 80583 }, + { url = "https://files.pythonhosted.org/packages/ec/f7/378254e6dd7ae6f31fe40c8649eea7d4832a42243acaf0f1fff9083b2bed/argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae", size = 86168 }, + { url = "https://files.pythonhosted.org/packages/74/f6/4a34a37a98311ed73bb80efe422fed95f2ac25a4cacc5ae1d7ae6a144505/argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c", size = 82709 }, + { url = "https://files.pythonhosted.org/packages/74/2b/73d767bfdaab25484f7e7901379d5f8793cccbb86c6e0cbc4c1b96f63896/argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86", size = 83613 }, + { url = "https://files.pythonhosted.org/packages/4f/fd/37f86deef67ff57c76f137a67181949c2d408077e2e3dd70c6c42912c9bf/argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f", size = 84583 }, + { url = "https://files.pythonhosted.org/packages/6f/52/5a60085a3dae8fded8327a4f564223029f5f54b0cb0455a31131b5363a01/argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e", size = 88475 }, + { url = "https://files.pythonhosted.org/packages/8b/95/143cd64feb24a15fa4b189a3e1e7efbaeeb00f39a51e99b26fc62fbacabd/argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082", size = 27698 }, + { url = "https://files.pythonhosted.org/packages/37/2c/e34e47c7dee97ba6f01a6203e0383e15b60fb85d78ac9a15cd066f6fe28b/argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f", size = 30817 }, + { url = "https://files.pythonhosted.org/packages/5a/e4/bf8034d25edaa495da3c8a3405627d2e35758e44ff6eaa7948092646fdcc/argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93", size = 53104 }, +] + +[[package]] +name = "astroid" +version = "3.3.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ca/40/e028137cb19ed577001c76b91c5c50fee5a9c85099f45820b69385574ac5/astroid-3.3.6.tar.gz", hash = "sha256:6aaea045f938c735ead292204afdb977a36e989522b7833ef6fea94de743f442", size = 397452 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/d2/82c8ccef22ea873a2b0da9636e47d45137eeeb2fb9320c5dbbdd3627bab0/astroid-3.3.6-py3-none-any.whl", hash = "sha256:db676dc4f3ae6bfe31cda227dc60e03438378d7a896aec57422c95634e8d722f", size = 274644 }, +] + +[[package]] +name = "async-timeout" +version = "5.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a5/ae/136395dfbfe00dfc94da3f3e136d0b13f394cba8f4841120e34226265780/async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3", size = 9274 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fe/ba/e2081de779ca30d473f21f5b30e0e737c438205440784c7dfc81efc2b029/async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c", size = 6233 }, +] + +[[package]] +name = "asyncpg" +version = "0.30.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2f/4c/7c991e080e106d854809030d8584e15b2e996e26f16aee6d757e387bc17d/asyncpg-0.30.0.tar.gz", hash = "sha256:c551e9928ab6707602f44811817f82ba3c446e018bfe1d3abecc8ba5f3eac851", size = 957746 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4c/0e/f5d708add0d0b97446c402db7e8dd4c4183c13edaabe8a8500b411e7b495/asyncpg-0.30.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5e0511ad3dec5f6b4f7a9e063591d407eee66b88c14e2ea636f187da1dcfff6a", size = 674506 }, + { url = "https://files.pythonhosted.org/packages/6a/a0/67ec9a75cb24a1d99f97b8437c8d56da40e6f6bd23b04e2f4ea5d5ad82ac/asyncpg-0.30.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:915aeb9f79316b43c3207363af12d0e6fd10776641a7de8a01212afd95bdf0ed", size = 645922 }, + { url = "https://files.pythonhosted.org/packages/5c/d9/a7584f24174bd86ff1053b14bb841f9e714380c672f61c906eb01d8ec433/asyncpg-0.30.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c198a00cce9506fcd0bf219a799f38ac7a237745e1d27f0e1f66d3707c84a5a", size = 3079565 }, + { url = "https://files.pythonhosted.org/packages/a0/d7/a4c0f9660e333114bdb04d1a9ac70db690dd4ae003f34f691139a5cbdae3/asyncpg-0.30.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3326e6d7381799e9735ca2ec9fd7be4d5fef5dcbc3cb555d8a463d8460607956", size = 3109962 }, + { url = "https://files.pythonhosted.org/packages/3c/21/199fd16b5a981b1575923cbb5d9cf916fdc936b377e0423099f209e7e73d/asyncpg-0.30.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:51da377487e249e35bd0859661f6ee2b81db11ad1f4fc036194bc9cb2ead5056", size = 3064791 }, + { url = "https://files.pythonhosted.org/packages/77/52/0004809b3427534a0c9139c08c87b515f1c77a8376a50ae29f001e53962f/asyncpg-0.30.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bc6d84136f9c4d24d358f3b02be4b6ba358abd09f80737d1ac7c444f36108454", size = 3188696 }, + { url = "https://files.pythonhosted.org/packages/52/cb/fbad941cd466117be58b774a3f1cc9ecc659af625f028b163b1e646a55fe/asyncpg-0.30.0-cp311-cp311-win32.whl", hash = "sha256:574156480df14f64c2d76450a3f3aaaf26105869cad3865041156b38459e935d", size = 567358 }, + { url = "https://files.pythonhosted.org/packages/3c/0a/0a32307cf166d50e1ad120d9b81a33a948a1a5463ebfa5a96cc5606c0863/asyncpg-0.30.0-cp311-cp311-win_amd64.whl", hash = "sha256:3356637f0bd830407b5597317b3cb3571387ae52ddc3bca6233682be88bbbc1f", size = 629375 }, + { url = "https://files.pythonhosted.org/packages/4b/64/9d3e887bb7b01535fdbc45fbd5f0a8447539833b97ee69ecdbb7a79d0cb4/asyncpg-0.30.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c902a60b52e506d38d7e80e0dd5399f657220f24635fee368117b8b5fce1142e", size = 673162 }, + { url = "https://files.pythonhosted.org/packages/6e/eb/8b236663f06984f212a087b3e849731f917ab80f84450e943900e8ca4052/asyncpg-0.30.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:aca1548e43bbb9f0f627a04666fedaca23db0a31a84136ad1f868cb15deb6e3a", size = 637025 }, + { url = "https://files.pythonhosted.org/packages/cc/57/2dc240bb263d58786cfaa60920779af6e8d32da63ab9ffc09f8312bd7a14/asyncpg-0.30.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c2a2ef565400234a633da0eafdce27e843836256d40705d83ab7ec42074efb3", size = 3496243 }, + { url = "https://files.pythonhosted.org/packages/f4/40/0ae9d061d278b10713ea9021ef6b703ec44698fe32178715a501ac696c6b/asyncpg-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1292b84ee06ac8a2ad8e51c7475aa309245874b61333d97411aab835c4a2f737", size = 3575059 }, + { url = "https://files.pythonhosted.org/packages/c3/75/d6b895a35a2c6506952247640178e5f768eeb28b2e20299b6a6f1d743ba0/asyncpg-0.30.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0f5712350388d0cd0615caec629ad53c81e506b1abaaf8d14c93f54b35e3595a", size = 3473596 }, + { url = "https://files.pythonhosted.org/packages/c8/e7/3693392d3e168ab0aebb2d361431375bd22ffc7b4a586a0fc060d519fae7/asyncpg-0.30.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:db9891e2d76e6f425746c5d2da01921e9a16b5a71a1c905b13f30e12a257c4af", size = 3641632 }, + { url = "https://files.pythonhosted.org/packages/32/ea/15670cea95745bba3f0352341db55f506a820b21c619ee66b7d12ea7867d/asyncpg-0.30.0-cp312-cp312-win32.whl", hash = "sha256:68d71a1be3d83d0570049cd1654a9bdfe506e794ecc98ad0873304a9f35e411e", size = 560186 }, + { url = "https://files.pythonhosted.org/packages/7e/6b/fe1fad5cee79ca5f5c27aed7bd95baee529c1bf8a387435c8ba4fe53d5c1/asyncpg-0.30.0-cp312-cp312-win_amd64.whl", hash = "sha256:9a0292c6af5c500523949155ec17b7fe01a00ace33b68a476d6b5059f9630305", size = 621064 }, + { url = "https://files.pythonhosted.org/packages/3a/22/e20602e1218dc07692acf70d5b902be820168d6282e69ef0d3cb920dc36f/asyncpg-0.30.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:05b185ebb8083c8568ea8a40e896d5f7af4b8554b64d7719c0eaa1eb5a5c3a70", size = 670373 }, + { url = "https://files.pythonhosted.org/packages/3d/b3/0cf269a9d647852a95c06eb00b815d0b95a4eb4b55aa2d6ba680971733b9/asyncpg-0.30.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c47806b1a8cbb0a0db896f4cd34d89942effe353a5035c62734ab13b9f938da3", size = 634745 }, + { url = "https://files.pythonhosted.org/packages/8e/6d/a4f31bf358ce8491d2a31bfe0d7bcf25269e80481e49de4d8616c4295a34/asyncpg-0.30.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b6fde867a74e8c76c71e2f64f80c64c0f3163e687f1763cfaf21633ec24ec33", size = 3512103 }, + { url = "https://files.pythonhosted.org/packages/96/19/139227a6e67f407b9c386cb594d9628c6c78c9024f26df87c912fabd4368/asyncpg-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46973045b567972128a27d40001124fbc821c87a6cade040cfcd4fa8a30bcdc4", size = 3592471 }, + { url = "https://files.pythonhosted.org/packages/67/e4/ab3ca38f628f53f0fd28d3ff20edff1c975dd1cb22482e0061916b4b9a74/asyncpg-0.30.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9110df111cabc2ed81aad2f35394a00cadf4f2e0635603db6ebbd0fc896f46a4", size = 3496253 }, + { url = "https://files.pythonhosted.org/packages/ef/5f/0bf65511d4eeac3a1f41c54034a492515a707c6edbc642174ae79034d3ba/asyncpg-0.30.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:04ff0785ae7eed6cc138e73fc67b8e51d54ee7a3ce9b63666ce55a0bf095f7ba", size = 3662720 }, + { url = "https://files.pythonhosted.org/packages/e7/31/1513d5a6412b98052c3ed9158d783b1e09d0910f51fbe0e05f56cc370bc4/asyncpg-0.30.0-cp313-cp313-win32.whl", hash = "sha256:ae374585f51c2b444510cdf3595b97ece4f233fde739aa14b50e0d64e8a7a590", size = 560404 }, + { url = "https://files.pythonhosted.org/packages/c8/a4/cec76b3389c4c5ff66301cd100fe88c318563ec8a520e0b2e792b5b84972/asyncpg-0.30.0-cp313-cp313-win_amd64.whl", hash = "sha256:f59b430b8e27557c3fb9869222559f7417ced18688375825f8f12302c34e915e", size = 621623 }, +] + +[[package]] +name = "attrs" +version = "24.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/48/c8/6260f8ccc11f0917360fc0da435c5c9c7504e3db174d5a12a1494887b045/attrs-24.3.0.tar.gz", hash = "sha256:8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff", size = 805984 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/89/aa/ab0f7891a01eeb2d2e338ae8fecbe57fcebea1a24dbb64d45801bfab481d/attrs-24.3.0-py3-none-any.whl", hash = "sha256:ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308", size = 63397 }, +] + +[[package]] +name = "authlib" +version = "1.3.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/75/47dbab150ef6f9298e227a40c93c7fed5f3ffb67c9fb62cd49f66285e46e/authlib-1.3.2.tar.gz", hash = "sha256:4b16130117f9eb82aa6eec97f6dd4673c3f960ac0283ccdae2897ee4bc030ba2", size = 147313 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/4c/9aa0416a403d5cc80292cb030bcd2c918cce2755e314d8c1aa18656e1e12/Authlib-1.3.2-py2.py3-none-any.whl", hash = "sha256:ede026a95e9f5cdc2d4364a52103f5405e75aa156357e831ef2bfd0bc5094dfc", size = 225111 }, +] + +[[package]] +name = "backoff" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/47/d7/5bbeb12c44d7c4f2fb5b56abce497eb5ed9f34d85701de869acedd602619/backoff-2.2.1.tar.gz", hash = "sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba", size = 17001 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/73/b6e24bd22e6720ca8ee9a85a0c4a2971af8497d8f3193fa05390cbd46e09/backoff-2.2.1-py3-none-any.whl", hash = "sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8", size = 15148 }, +] + +[[package]] +name = "bcrypt" +version = "4.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/56/8c/dd696962612e4cd83c40a9e6b3db77bfe65a830f4b9af44098708584686c/bcrypt-4.2.1.tar.gz", hash = "sha256:6765386e3ab87f569b276988742039baab087b2cdb01e809d74e74503c2faafe", size = 24427 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bc/ca/e17b08c523adb93d5f07a226b2bd45a7c6e96b359e31c1e99f9db58cb8c3/bcrypt-4.2.1-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:1340411a0894b7d3ef562fb233e4b6ed58add185228650942bdc885362f32c17", size = 489982 }, + { url = "https://files.pythonhosted.org/packages/6a/be/e7c6e0fd6087ee8fc6d77d8d9e817e9339d879737509019b9a9012a1d96f/bcrypt-4.2.1-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1ee315739bc8387aa36ff127afc99120ee452924e0df517a8f3e4c0187a0f5f", size = 273108 }, + { url = "https://files.pythonhosted.org/packages/d6/53/ac084b7d985aee1a5f2b086d501f550862596dbf73220663b8c17427e7f2/bcrypt-4.2.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8dbd0747208912b1e4ce730c6725cb56c07ac734b3629b60d4398f082ea718ad", size = 278733 }, + { url = "https://files.pythonhosted.org/packages/8e/ab/b8710a3d6231c587e575ead0b1c45bb99f5454f9f579c9d7312c17b069cc/bcrypt-4.2.1-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:aaa2e285be097050dba798d537b6efd9b698aa88eef52ec98d23dcd6d7cf6fea", size = 273856 }, + { url = "https://files.pythonhosted.org/packages/9d/e5/2fd1ea6395358ffdfd4afe370d5b52f71408f618f781772a48971ef3b92b/bcrypt-4.2.1-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:76d3e352b32f4eeb34703370e370997065d28a561e4a18afe4fef07249cb4396", size = 279067 }, + { url = "https://files.pythonhosted.org/packages/4e/ef/f2cb7a0f7e1ed800a604f8ab256fb0afcf03c1540ad94ff771ce31e794aa/bcrypt-4.2.1-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:b7703ede632dc945ed1172d6f24e9f30f27b1b1a067f32f68bf169c5f08d0425", size = 306851 }, + { url = "https://files.pythonhosted.org/packages/de/cb/578b0023c6a5ca16a177b9044ba6bd6032277bd3ef020fb863eccd22e49b/bcrypt-4.2.1-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:89df2aea2c43be1e1fa066df5f86c8ce822ab70a30e4c210968669565c0f4685", size = 310793 }, + { url = "https://files.pythonhosted.org/packages/98/bc/9d501ee9d754f63d4b1086b64756c284facc3696de9b556c146279a124a5/bcrypt-4.2.1-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:04e56e3fe8308a88b77e0afd20bec516f74aecf391cdd6e374f15cbed32783d6", size = 320957 }, + { url = "https://files.pythonhosted.org/packages/a1/25/2ec4ce5740abc43182bfc064b9acbbf5a493991246985e8b2bfe231ead64/bcrypt-4.2.1-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:cfdf3d7530c790432046c40cda41dfee8c83e29482e6a604f8930b9930e94139", size = 339958 }, + { url = "https://files.pythonhosted.org/packages/6d/64/fd67788f64817727897d31e9cdeeeba3941eaad8540733c05c7eac4aa998/bcrypt-4.2.1-cp37-abi3-win32.whl", hash = "sha256:adadd36274510a01f33e6dc08f5824b97c9580583bd4487c564fc4617b328005", size = 160912 }, + { url = "https://files.pythonhosted.org/packages/00/8f/fe834eaa54abbd7cab8607e5020fa3a0557e929555b9e4ca404b4adaab06/bcrypt-4.2.1-cp37-abi3-win_amd64.whl", hash = "sha256:8c458cd103e6c5d1d85cf600e546a639f234964d0228909d8f8dbeebff82d526", size = 152981 }, + { url = "https://files.pythonhosted.org/packages/4a/57/23b46933206daf5384b5397d9878746d2249fe9d45efaa8e1467c87d3048/bcrypt-4.2.1-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:8ad2f4528cbf0febe80e5a3a57d7a74e6635e41af1ea5675282a33d769fba413", size = 489842 }, + { url = "https://files.pythonhosted.org/packages/fd/28/3ea8a39ddd4938b6c6b6136816d72ba5e659e2d82b53d843c8c53455ac4d/bcrypt-4.2.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:909faa1027900f2252a9ca5dfebd25fc0ef1417943824783d1c8418dd7d6df4a", size = 272500 }, + { url = "https://files.pythonhosted.org/packages/77/7f/b43622999f5d4de06237a195ac5501ac83516adf571b907228cd14bac8fe/bcrypt-4.2.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cde78d385d5e93ece5479a0a87f73cd6fa26b171c786a884f955e165032b262c", size = 278368 }, + { url = "https://files.pythonhosted.org/packages/50/68/f2e3959014b4d8874c747e6e171d46d3e63a3a39aaca8417a8d837eda0a8/bcrypt-4.2.1-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:533e7f3bcf2f07caee7ad98124fab7499cb3333ba2274f7a36cf1daee7409d99", size = 273335 }, + { url = "https://files.pythonhosted.org/packages/d6/c3/4b4bad4da852924427c651589d464ad1aa624f94dd904ddda8493b0a35e5/bcrypt-4.2.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:687cf30e6681eeda39548a93ce9bfbb300e48b4d445a43db4298d2474d2a1e54", size = 278614 }, + { url = "https://files.pythonhosted.org/packages/6e/5a/ee107961e84c41af2ac201d0460f962b6622ff391255ffd46429e9e09dc1/bcrypt-4.2.1-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:041fa0155c9004eb98a232d54da05c0b41d4b8e66b6fc3cb71b4b3f6144ba837", size = 306464 }, + { url = "https://files.pythonhosted.org/packages/5c/72/916e14fa12d2b1d1fc6c26ea195337419da6dd23d0bf53ac61ef3739e5c5/bcrypt-4.2.1-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f85b1ffa09240c89aa2e1ae9f3b1c687104f7b2b9d2098da4e923f1b7082d331", size = 310674 }, + { url = "https://files.pythonhosted.org/packages/97/92/3dc76d8bfa23300591eec248e950f85bd78eb608c96bd4747ce4cc06acdb/bcrypt-4.2.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c6f5fa3775966cca251848d4d5393ab016b3afed251163c1436fefdec3b02c84", size = 320577 }, + { url = "https://files.pythonhosted.org/packages/5d/ab/a6c0da5c2cf86600f74402a72b06dfe365e1a1d30783b1bbeec460fd57d1/bcrypt-4.2.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:807261df60a8b1ccd13e6599c779014a362ae4e795f5c59747f60208daddd96d", size = 339836 }, + { url = "https://files.pythonhosted.org/packages/b4/b4/e75b6e9a72a030a04362034022ebe317c5b735d04db6ad79237101ae4a5c/bcrypt-4.2.1-cp39-abi3-win32.whl", hash = "sha256:b588af02b89d9fad33e5f98f7838bf590d6d692df7153647724a7f20c186f6bf", size = 160911 }, + { url = "https://files.pythonhosted.org/packages/76/b9/d51d34e6cd6d887adddb28a8680a1d34235cc45b9d6e238ce39b98199ca0/bcrypt-4.2.1-cp39-abi3-win_amd64.whl", hash = "sha256:e84e0e6f8e40a242b11bce56c313edc2be121cec3e0ec2d76fce01f6af33c07c", size = 153078 }, +] + +[[package]] +name = "beautifulsoup4" +version = "4.12.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "soupsieve" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b3/ca/824b1195773ce6166d388573fc106ce56d4a805bd7427b624e063596ec58/beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051", size = 581181 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/fe/e8c672695b37eecc5cbf43e1d0638d88d66ba3a44c4d321c796f4e59167f/beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed", size = 147925 }, +] + +[[package]] +name = "boto3" +version = "1.35.84" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "botocore" }, + { name = "jmespath" }, + { name = "s3transfer" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9f/c5/c6e68d008905ec4069cb92473606fc2eea12384f990c786a199ea3db2c7e/boto3-1.35.84.tar.gz", hash = "sha256:9f9bf72d92f7fdd546b974ffa45fa6715b9af7f5c00463e9d0f6ef9c95efe0c2", size = 111035 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/19/4a/b3fefabc2795d0adda85f092332ec0544e57e80c86d6d9f9bb1484b73d79/boto3-1.35.84-py3-none-any.whl", hash = "sha256:c94fc8023caf952f8740a48fc400521bba167f883cfa547d985c05fda7223f7a", size = 139183 }, +] + +[[package]] +name = "botocore" +version = "1.35.84" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jmespath" }, + { name = "python-dateutil" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fd/17/d50362869aab4a0ae0f63416a03e592bf7fd3adb155dabce484198545c56/botocore-1.35.84.tar.gz", hash = "sha256:f86754882e04683e2e99a6a23377d0dd7f1fc2b2242844b2381dbe4dcd639301", size = 13485640 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b4/1f/a36fc867c6aef0d346e9b6b2bfe33be458c36f770f7ad8e15acc3474999d/botocore-1.35.84-py3-none-any.whl", hash = "sha256:b4dc2ac7f54ba959429e1debbd6c7c2fb2349baa1cd63803f0682f0773dbd077", size = 13287873 }, +] + +[[package]] +name = "cachetools" +version = "5.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c3/38/a0f315319737ecf45b4319a8cd1f3a908e29d9277b46942263292115eee7/cachetools-5.5.0.tar.gz", hash = "sha256:2cc24fb4cbe39633fb7badd9db9ca6295d766d9c2995f245725a46715d050f2a", size = 27661 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/07/14f8ad37f2d12a5ce41206c21820d8cb6561b728e51fad4530dff0552a67/cachetools-5.5.0-py3-none-any.whl", hash = "sha256:02134e8439cdc2ffb62023ce1debca2944c3f289d66bb17ead3ab3dede74b292", size = 9524 }, +] + +[[package]] +name = "certifi" +version = "2024.12.14" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/bd/1d41ee578ce09523c81a15426705dd20969f5abf006d1afe8aeff0dd776a/certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db", size = 166010 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a5/32/8f6669fc4798494966bf446c8c4a162e0b5d893dff088afddf76414f70e1/certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56", size = 164927 }, +] + +[[package]] +name = "cffi" +version = "1.17.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", size = 516621 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6b/f4/927e3a8899e52a27fa57a48607ff7dc91a9ebe97399b357b85a0c7892e00/cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401", size = 182264 }, + { url = "https://files.pythonhosted.org/packages/6c/f5/6c3a8efe5f503175aaddcbea6ad0d2c96dad6f5abb205750d1b3df44ef29/cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf", size = 178651 }, + { url = "https://files.pythonhosted.org/packages/94/dd/a3f0118e688d1b1a57553da23b16bdade96d2f9bcda4d32e7d2838047ff7/cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4", size = 445259 }, + { url = "https://files.pythonhosted.org/packages/2e/ea/70ce63780f096e16ce8588efe039d3c4f91deb1dc01e9c73a287939c79a6/cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41", size = 469200 }, + { url = "https://files.pythonhosted.org/packages/1c/a0/a4fa9f4f781bda074c3ddd57a572b060fa0df7655d2a4247bbe277200146/cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1", size = 477235 }, + { url = "https://files.pythonhosted.org/packages/62/12/ce8710b5b8affbcdd5c6e367217c242524ad17a02fe5beec3ee339f69f85/cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6", size = 459721 }, + { url = "https://files.pythonhosted.org/packages/ff/6b/d45873c5e0242196f042d555526f92aa9e0c32355a1be1ff8c27f077fd37/cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d", size = 467242 }, + { url = "https://files.pythonhosted.org/packages/1a/52/d9a0e523a572fbccf2955f5abe883cfa8bcc570d7faeee06336fbd50c9fc/cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6", size = 477999 }, + { url = "https://files.pythonhosted.org/packages/44/74/f2a2460684a1a2d00ca799ad880d54652841a780c4c97b87754f660c7603/cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f", size = 454242 }, + { url = "https://files.pythonhosted.org/packages/f8/4a/34599cac7dfcd888ff54e801afe06a19c17787dfd94495ab0c8d35fe99fb/cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b", size = 478604 }, + { url = "https://files.pythonhosted.org/packages/34/33/e1b8a1ba29025adbdcda5fb3a36f94c03d771c1b7b12f726ff7fef2ebe36/cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655", size = 171727 }, + { url = "https://files.pythonhosted.org/packages/3d/97/50228be003bb2802627d28ec0627837ac0bf35c90cf769812056f235b2d1/cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0", size = 181400 }, + { url = "https://files.pythonhosted.org/packages/5a/84/e94227139ee5fb4d600a7a4927f322e1d4aea6fdc50bd3fca8493caba23f/cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4", size = 183178 }, + { url = "https://files.pythonhosted.org/packages/da/ee/fb72c2b48656111c4ef27f0f91da355e130a923473bf5ee75c5643d00cca/cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c", size = 178840 }, + { url = "https://files.pythonhosted.org/packages/cc/b6/db007700f67d151abadf508cbfd6a1884f57eab90b1bb985c4c8c02b0f28/cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36", size = 454803 }, + { url = "https://files.pythonhosted.org/packages/1a/df/f8d151540d8c200eb1c6fba8cd0dfd40904f1b0682ea705c36e6c2e97ab3/cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5", size = 478850 }, + { url = "https://files.pythonhosted.org/packages/28/c0/b31116332a547fd2677ae5b78a2ef662dfc8023d67f41b2a83f7c2aa78b1/cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff", size = 485729 }, + { url = "https://files.pythonhosted.org/packages/91/2b/9a1ddfa5c7f13cab007a2c9cc295b70fbbda7cb10a286aa6810338e60ea1/cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99", size = 471256 }, + { url = "https://files.pythonhosted.org/packages/b2/d5/da47df7004cb17e4955df6a43d14b3b4ae77737dff8bf7f8f333196717bf/cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93", size = 479424 }, + { url = "https://files.pythonhosted.org/packages/0b/ac/2a28bcf513e93a219c8a4e8e125534f4f6db03e3179ba1c45e949b76212c/cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3", size = 484568 }, + { url = "https://files.pythonhosted.org/packages/d4/38/ca8a4f639065f14ae0f1d9751e70447a261f1a30fa7547a828ae08142465/cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8", size = 488736 }, + { url = "https://files.pythonhosted.org/packages/86/c5/28b2d6f799ec0bdecf44dced2ec5ed43e0eb63097b0f58c293583b406582/cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65", size = 172448 }, + { url = "https://files.pythonhosted.org/packages/50/b9/db34c4755a7bd1cb2d1603ac3863f22bcecbd1ba29e5ee841a4bc510b294/cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903", size = 181976 }, + { url = "https://files.pythonhosted.org/packages/8d/f8/dd6c246b148639254dad4d6803eb6a54e8c85c6e11ec9df2cffa87571dbe/cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", size = 182989 }, + { url = "https://files.pythonhosted.org/packages/8b/f1/672d303ddf17c24fc83afd712316fda78dc6fce1cd53011b839483e1ecc8/cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", size = 178802 }, + { url = "https://files.pythonhosted.org/packages/0e/2d/eab2e858a91fdff70533cab61dcff4a1f55ec60425832ddfdc9cd36bc8af/cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", size = 454792 }, + { url = "https://files.pythonhosted.org/packages/75/b2/fbaec7c4455c604e29388d55599b99ebcc250a60050610fadde58932b7ee/cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", size = 478893 }, + { url = "https://files.pythonhosted.org/packages/4f/b7/6e4a2162178bf1935c336d4da8a9352cccab4d3a5d7914065490f08c0690/cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", size = 485810 }, + { url = "https://files.pythonhosted.org/packages/c7/8a/1d0e4a9c26e54746dc08c2c6c037889124d4f59dffd853a659fa545f1b40/cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", size = 471200 }, + { url = "https://files.pythonhosted.org/packages/26/9f/1aab65a6c0db35f43c4d1b4f580e8df53914310afc10ae0397d29d697af4/cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", size = 479447 }, + { url = "https://files.pythonhosted.org/packages/5f/e4/fb8b3dd8dc0e98edf1135ff067ae070bb32ef9d509d6cb0f538cd6f7483f/cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", size = 484358 }, + { url = "https://files.pythonhosted.org/packages/f1/47/d7145bf2dc04684935d57d67dff9d6d795b2ba2796806bb109864be3a151/cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", size = 488469 }, + { url = "https://files.pythonhosted.org/packages/bf/ee/f94057fa6426481d663b88637a9a10e859e492c73d0384514a17d78ee205/cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", size = 172475 }, + { url = "https://files.pythonhosted.org/packages/7c/fc/6a8cb64e5f0324877d503c854da15d76c1e50eb722e320b15345c4d0c6de/cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", size = 182009 }, +] + +[[package]] +name = "chardet" +version = "5.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/f7b6ab21ec75897ed80c17d79b15951a719226b9fababf1e40ea74d69079/chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7", size = 2069618 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/6f/f5fbc992a329ee4e0f288c1fe0e2ad9485ed064cac731ed2fe47dcc38cbf/chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970", size = 199385 }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f2/4f/e1808dc01273379acc506d18f1504eb2d299bd4131743b9fc54d7be4df1e/charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e", size = 106620 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/61/73589dcc7a719582bf56aae309b6103d2762b526bffe189d635a7fcfd998/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c", size = 193339 }, + { url = "https://files.pythonhosted.org/packages/77/d5/8c982d58144de49f59571f940e329ad6e8615e1e82ef84584c5eeb5e1d72/charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944", size = 124366 }, + { url = "https://files.pythonhosted.org/packages/bf/19/411a64f01ee971bed3231111b69eb56f9331a769072de479eae7de52296d/charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee", size = 118874 }, + { url = "https://files.pythonhosted.org/packages/4c/92/97509850f0d00e9f14a46bc751daabd0ad7765cff29cdfb66c68b6dad57f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c", size = 138243 }, + { url = "https://files.pythonhosted.org/packages/e2/29/d227805bff72ed6d6cb1ce08eec707f7cfbd9868044893617eb331f16295/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6", size = 148676 }, + { url = "https://files.pythonhosted.org/packages/13/bc/87c2c9f2c144bedfa62f894c3007cd4530ba4b5351acb10dc786428a50f0/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea", size = 141289 }, + { url = "https://files.pythonhosted.org/packages/eb/5b/6f10bad0f6461fa272bfbbdf5d0023b5fb9bc6217c92bf068fa5a99820f5/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc", size = 142585 }, + { url = "https://files.pythonhosted.org/packages/3b/a0/a68980ab8a1f45a36d9745d35049c1af57d27255eff8c907e3add84cf68f/charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5", size = 144408 }, + { url = "https://files.pythonhosted.org/packages/d7/a1/493919799446464ed0299c8eef3c3fad0daf1c3cd48bff9263c731b0d9e2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594", size = 139076 }, + { url = "https://files.pythonhosted.org/packages/fb/9d/9c13753a5a6e0db4a0a6edb1cef7aee39859177b64e1a1e748a6e3ba62c2/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c", size = 146874 }, + { url = "https://files.pythonhosted.org/packages/75/d2/0ab54463d3410709c09266dfb416d032a08f97fd7d60e94b8c6ef54ae14b/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365", size = 150871 }, + { url = "https://files.pythonhosted.org/packages/8d/c9/27e41d481557be53d51e60750b85aa40eaf52b841946b3cdeff363105737/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129", size = 148546 }, + { url = "https://files.pythonhosted.org/packages/ee/44/4f62042ca8cdc0cabf87c0fc00ae27cd8b53ab68be3605ba6d071f742ad3/charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236", size = 143048 }, + { url = "https://files.pythonhosted.org/packages/01/f8/38842422988b795220eb8038745d27a675ce066e2ada79516c118f291f07/charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99", size = 94389 }, + { url = "https://files.pythonhosted.org/packages/0b/6e/b13bd47fa9023b3699e94abf565b5a2f0b0be6e9ddac9812182596ee62e4/charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27", size = 101752 }, + { url = "https://files.pythonhosted.org/packages/d3/0b/4b7a70987abf9b8196845806198975b6aab4ce016632f817ad758a5aa056/charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6", size = 194445 }, + { url = "https://files.pythonhosted.org/packages/50/89/354cc56cf4dd2449715bc9a0f54f3aef3dc700d2d62d1fa5bbea53b13426/charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf", size = 125275 }, + { url = "https://files.pythonhosted.org/packages/fa/44/b730e2a2580110ced837ac083d8ad222343c96bb6b66e9e4e706e4d0b6df/charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db", size = 119020 }, + { url = "https://files.pythonhosted.org/packages/9d/e4/9263b8240ed9472a2ae7ddc3e516e71ef46617fe40eaa51221ccd4ad9a27/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1", size = 139128 }, + { url = "https://files.pythonhosted.org/packages/6b/e3/9f73e779315a54334240353eaea75854a9a690f3f580e4bd85d977cb2204/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03", size = 149277 }, + { url = "https://files.pythonhosted.org/packages/1a/cf/f1f50c2f295312edb8a548d3fa56a5c923b146cd3f24114d5adb7e7be558/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284", size = 142174 }, + { url = "https://files.pythonhosted.org/packages/16/92/92a76dc2ff3a12e69ba94e7e05168d37d0345fa08c87e1fe24d0c2a42223/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15", size = 143838 }, + { url = "https://files.pythonhosted.org/packages/a4/01/2117ff2b1dfc61695daf2babe4a874bca328489afa85952440b59819e9d7/charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8", size = 146149 }, + { url = "https://files.pythonhosted.org/packages/f6/9b/93a332b8d25b347f6839ca0a61b7f0287b0930216994e8bf67a75d050255/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2", size = 140043 }, + { url = "https://files.pythonhosted.org/packages/ab/f6/7ac4a01adcdecbc7a7587767c776d53d369b8b971382b91211489535acf0/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719", size = 148229 }, + { url = "https://files.pythonhosted.org/packages/9d/be/5708ad18161dee7dc6a0f7e6cf3a88ea6279c3e8484844c0590e50e803ef/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631", size = 151556 }, + { url = "https://files.pythonhosted.org/packages/5a/bb/3d8bc22bacb9eb89785e83e6723f9888265f3a0de3b9ce724d66bd49884e/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b", size = 149772 }, + { url = "https://files.pythonhosted.org/packages/f7/fa/d3fc622de05a86f30beea5fc4e9ac46aead4731e73fd9055496732bcc0a4/charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565", size = 144800 }, + { url = "https://files.pythonhosted.org/packages/9a/65/bdb9bc496d7d190d725e96816e20e2ae3a6fa42a5cac99c3c3d6ff884118/charset_normalizer-3.4.0-cp312-cp312-win32.whl", hash = "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7", size = 94836 }, + { url = "https://files.pythonhosted.org/packages/3e/67/7b72b69d25b89c0b3cea583ee372c43aa24df15f0e0f8d3982c57804984b/charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9", size = 102187 }, + { url = "https://files.pythonhosted.org/packages/f3/89/68a4c86f1a0002810a27f12e9a7b22feb198c59b2f05231349fbce5c06f4/charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114", size = 194617 }, + { url = "https://files.pythonhosted.org/packages/4f/cd/8947fe425e2ab0aa57aceb7807af13a0e4162cd21eee42ef5b053447edf5/charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed", size = 125310 }, + { url = "https://files.pythonhosted.org/packages/5b/f0/b5263e8668a4ee9becc2b451ed909e9c27058337fda5b8c49588183c267a/charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250", size = 119126 }, + { url = "https://files.pythonhosted.org/packages/ff/6e/e445afe4f7fda27a533f3234b627b3e515a1b9429bc981c9a5e2aa5d97b6/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920", size = 139342 }, + { url = "https://files.pythonhosted.org/packages/a1/b2/4af9993b532d93270538ad4926c8e37dc29f2111c36f9c629840c57cd9b3/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64", size = 149383 }, + { url = "https://files.pythonhosted.org/packages/fb/6f/4e78c3b97686b871db9be6f31d64e9264e889f8c9d7ab33c771f847f79b7/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23", size = 142214 }, + { url = "https://files.pythonhosted.org/packages/2b/c9/1c8fe3ce05d30c87eff498592c89015b19fade13df42850aafae09e94f35/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc", size = 144104 }, + { url = "https://files.pythonhosted.org/packages/ee/68/efad5dcb306bf37db7db338338e7bb8ebd8cf38ee5bbd5ceaaaa46f257e6/charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d", size = 146255 }, + { url = "https://files.pythonhosted.org/packages/0c/75/1ed813c3ffd200b1f3e71121c95da3f79e6d2a96120163443b3ad1057505/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88", size = 140251 }, + { url = "https://files.pythonhosted.org/packages/7d/0d/6f32255c1979653b448d3c709583557a4d24ff97ac4f3a5be156b2e6a210/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90", size = 148474 }, + { url = "https://files.pythonhosted.org/packages/ac/a0/c1b5298de4670d997101fef95b97ac440e8c8d8b4efa5a4d1ef44af82f0d/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b", size = 151849 }, + { url = "https://files.pythonhosted.org/packages/04/4f/b3961ba0c664989ba63e30595a3ed0875d6790ff26671e2aae2fdc28a399/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d", size = 149781 }, + { url = "https://files.pythonhosted.org/packages/d8/90/6af4cd042066a4adad58ae25648a12c09c879efa4849c705719ba1b23d8c/charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482", size = 144970 }, + { url = "https://files.pythonhosted.org/packages/cc/67/e5e7e0cbfefc4ca79025238b43cdf8a2037854195b37d6417f3d0895c4c2/charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67", size = 94973 }, + { url = "https://files.pythonhosted.org/packages/65/97/fc9bbc54ee13d33dc54a7fcf17b26368b18505500fc01e228c27b5222d80/charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b", size = 102308 }, + { url = "https://files.pythonhosted.org/packages/bf/9b/08c0432272d77b04803958a4598a51e2a4b51c06640af8b8f0f908c18bf2/charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079", size = 49446 }, +] + +[[package]] +name = "click" +version = "8.1.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "platform_system == 'Windows'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/96/d3/f04c7bfcf5c1862a2a5b845c6b2b360488cf47af55dfa79c98f6a6bf98b5/click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de", size = 336121 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", size = 97941 }, +] + +[[package]] +name = "cognee" +version = "0.1.20" +source = { directory = "../" } +dependencies = [ + { name = "aiofiles" }, + { name = "aiohttp" }, + { name = "aiosqlite" }, + { name = "alembic" }, + { name = "anthropic" }, + { name = "boto3" }, + { name = "datasets" }, + { name = "dlt", extra = ["sqlalchemy"] }, + { name = "fastapi" }, + { name = "fastapi-users", extra = ["sqlalchemy"] }, + { name = "filetype" }, + { name = "graphistry" }, + { name = "gunicorn" }, + { name = "httpx" }, + { name = "instructor" }, + { name = "jinja2" }, + { name = "lancedb" }, + { name = "langdetect" }, + { name = "litellm" }, + { name = "matplotlib" }, + { name = "nest-asyncio" }, + { name = "networkx" }, + { name = "nltk" }, + { name = "numpy" }, + { name = "openai" }, + { name = "pandas" }, + { name = "pydantic" }, + { name = "pydantic-settings" }, + { name = "pypdf" }, + { name = "python-dotenv" }, + { name = "requests" }, + { name = "scikit-learn" }, + { name = "sentry-sdk", extra = ["fastapi"] }, + { name = "sqlalchemy" }, + { name = "tenacity" }, + { name = "tiktoken" }, + { name = "transformers" }, + { name = "typing-extensions" }, + { name = "uvicorn" }, +] + +[package.metadata] +requires-dist = [ + { name = "aiofiles", specifier = ">=23.2.1,<24.0.0" }, + { name = "aiohttp", specifier = "==3.10.10" }, + { name = "aiosqlite", specifier = ">=0.20.0,<0.21.0" }, + { name = "alembic", specifier = ">=1.13.3,<2.0.0" }, + { name = "anthropic", specifier = ">=0.26.1,<0.27.0" }, + { name = "asyncpg", marker = "extra == 'postgres'", specifier = "==0.30.0" }, + { name = "boto3", specifier = ">=1.26.125,<2.0.0" }, + { name = "botocore", marker = "extra == 'filesystem'", specifier = ">=1.35.54,<2.0.0" }, + { name = "datasets", specifier = "==3.1.0" }, + { name = "deepeval", marker = "extra == 'deepeval'", specifier = ">=2.0.1,<3.0.0" }, + { name = "dlt", extras = ["sqlalchemy"], specifier = ">=1.4.1,<2.0.0" }, + { name = "falkordb", marker = "extra == 'falkordb'", specifier = "==1.0.9" }, + { name = "fastapi", specifier = ">=0.109.2,<0.116.0" }, + { name = "fastapi-users", extras = ["sqlalchemy"] }, + { name = "filetype", specifier = ">=1.2.0,<2.0.0" }, + { name = "graphistry", specifier = ">=0.33.5,<0.34.0" }, + { name = "groq", marker = "extra == 'groq'", specifier = "==0.8.0" }, + { name = "gunicorn", specifier = ">=20.1.0,<21.0.0" }, + { name = "httpx", specifier = "==0.27.0" }, + { name = "instructor", specifier = "==1.5.2" }, + { name = "jinja2", specifier = ">=3.1.3,<4.0.0" }, + { name = "lancedb", specifier = "==0.15.0" }, + { name = "langchain-text-splitters", marker = "extra == 'langchain'", specifier = "==0.3.2" }, + { name = "langdetect", specifier = "==1.0.9" }, + { name = "langfuse", marker = "extra == 'langfuse'", specifier = ">=2.32.0,<3.0.0" }, + { name = "langsmith", marker = "extra == 'langchain'", specifier = "==0.2.3" }, + { name = "litellm", specifier = "==1.49.1" }, + { name = "llama-index-core", marker = "extra == 'llama-index'", specifier = ">=0.11.22,<0.12.0" }, + { name = "matplotlib", specifier = ">=3.8.3,<4.0.0" }, + { name = "neo4j", marker = "extra == 'neo4j'", specifier = ">=5.20.0,<6.0.0" }, + { name = "nest-asyncio", specifier = "==1.6.0" }, + { name = "networkx", specifier = ">=3.2.1,<4.0.0" }, + { name = "nltk", specifier = ">=3.8.1,<4.0.0" }, + { name = "numpy", specifier = "==1.26.4" }, + { name = "openai", specifier = "==1.52.0" }, + { name = "pandas", specifier = "==2.0.3" }, + { name = "pgvector", marker = "extra == 'postgres'", specifier = ">=0.3.5,<0.4.0" }, + { name = "posthog", marker = "extra == 'posthog'", specifier = ">=3.5.0,<4.0.0" }, + { name = "psycopg2", marker = "extra == 'postgres'", specifier = ">=2.9.10,<3.0.0" }, + { name = "pydantic", specifier = "==2.8.2" }, + { name = "pydantic-settings", specifier = ">=2.2.1,<3.0.0" }, + { name = "pymilvus", marker = "extra == 'milvus'", specifier = ">=2.5.0,<3.0.0" }, + { name = "pypdf", specifier = ">=4.1.0,<5.0.0" }, + { name = "python-dotenv", specifier = "==1.0.1" }, + { name = "qdrant-client", marker = "extra == 'qdrant'", specifier = ">=1.9.0,<2.0.0" }, + { name = "requests", specifier = "==2.32.3" }, + { name = "scikit-learn", specifier = ">=1.5.0,<2.0.0" }, + { name = "sentry-sdk", extras = ["fastapi"], specifier = ">=2.9.0,<3.0.0" }, + { name = "sqlalchemy", specifier = "==2.0.35" }, + { name = "tenacity", specifier = ">=8.4.1,<9.0.0" }, + { name = "tiktoken", specifier = "==0.7.0" }, + { name = "transformers", specifier = ">=4.46.3,<5.0.0" }, + { name = "typing-extensions", specifier = "==4.12.2" }, + { name = "unstructured", extras = ["csv", "doc", "docx", "epub", "md", "odt", "org", "ppt", "pptx", "rst", "rtf", "tsv", "xlsx"], marker = "extra == 'docs'", specifier = ">=0.16.10,<0.17.0" }, + { name = "uvicorn", specifier = "==0.22.0" }, + { name = "weaviate-client", marker = "extra == 'weaviate'", specifier = "==4.9.6" }, +] + +[[package]] +name = "cognee-mcp" +version = "0.1.0" +source = { editable = "." } +dependencies = [ + { name = "aiofiles" }, + { name = "aiohttp" }, + { name = "aiosqlite" }, + { name = "alembic" }, + { name = "anthropic" }, + { name = "asyncpg" }, + { name = "boto3" }, + { name = "botocore" }, + { name = "cognee" }, + { name = "coverage" }, + { name = "datasets" }, + { name = "debugpy" }, + { name = "deepeval" }, + { name = "deptry" }, + { name = "dlt", extra = ["sqlalchemy"] }, + { name = "falkordb" }, + { name = "fastapi" }, + { name = "fastapi-users", extra = ["sqlalchemy"] }, + { name = "filetype" }, + { name = "gitpython" }, + { name = "graphistry" }, + { name = "groq" }, + { name = "gunicorn" }, + { name = "instructor" }, + { name = "jinja2" }, + { name = "lancedb" }, + { name = "langchain-text-splitters" }, + { name = "langdetect" }, + { name = "langfuse" }, + { name = "langsmith" }, + { name = "litellm" }, + { name = "llama-index-core" }, + { name = "matplotlib" }, + { name = "mcp" }, + { name = "mypy" }, + { name = "neo4j" }, + { name = "nest-asyncio" }, + { name = "networkx" }, + { name = "nltk" }, + { name = "numpy" }, + { name = "openai" }, + { name = "pandas" }, + { name = "pgvector" }, + { name = "posthog" }, + { name = "psycopg2" }, + { name = "pydantic" }, + { name = "pydantic-settings" }, + { name = "pylint" }, + { name = "pymilvus" }, + { name = "pypdf" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "python-dotenv" }, + { name = "qdrant-client" }, + { name = "requests" }, + { name = "ruff" }, + { name = "scikit-learn" }, + { name = "sentry-sdk", extra = ["fastapi"] }, + { name = "sqlalchemy" }, + { name = "tenacity" }, + { name = "tiktoken" }, + { name = "transformers" }, + { name = "tweepy" }, + { name = "typing-extensions" }, + { name = "unstructured", extra = ["csv", "doc", "docx", "epub", "md", "odt", "org", "ppt", "pptx", "rst", "rtf", "tsv", "xlsx"] }, + { name = "uvicorn" }, + { name = "weaviate-client" }, +] + +[package.dev-dependencies] +dev = [ + { name = "cognee" }, +] + +[package.metadata] +requires-dist = [ + { name = "aiofiles", specifier = ">=23.2.1,<24.0.0" }, + { name = "aiohttp", specifier = "==3.10.10" }, + { name = "aiosqlite", specifier = ">=0.20.0,<0.21.0" }, + { name = "alembic", specifier = ">=1.13.3,<2.0.0" }, + { name = "anthropic", specifier = ">=0.26.1,<1.0.0" }, + { name = "asyncpg", specifier = "==0.30.0" }, + { name = "boto3", specifier = ">=1.26.125,<2.0.0" }, + { name = "botocore", specifier = ">=1.35.54,<2.0.0" }, + { name = "cognee", directory = "../" }, + { name = "coverage", specifier = ">=7.3.2,<8.0.0" }, + { name = "datasets", specifier = "==3.1.0" }, + { name = "debugpy", specifier = "==1.8.2" }, + { name = "deepeval", specifier = ">=2.0.1,<3.0.0" }, + { name = "deptry", specifier = ">=0.20.0,<0.21.0" }, + { name = "dlt", extras = ["sqlalchemy"], specifier = ">=1.4.1,<2.0.0" }, + { name = "falkordb", specifier = "==1.0.9" }, + { name = "fastapi", specifier = ">=0.109.2,<0.110.0" }, + { name = "fastapi-users", extras = ["sqlalchemy"] }, + { name = "filetype", specifier = ">=1.2.0,<2.0.0" }, + { name = "gitpython", specifier = ">=3.1.43,<4.0.0" }, + { name = "graphistry", specifier = ">=0.33.5,<0.34.0" }, + { name = "groq", specifier = "==0.8.0" }, + { name = "gunicorn", specifier = ">=20.1.0,<21.0.0" }, + { name = "instructor", specifier = "==1.5.2" }, + { name = "jinja2", specifier = ">=3.1.3,<4.0.0" }, + { name = "lancedb", specifier = "==0.15.0" }, + { name = "langchain-text-splitters", specifier = "==0.3.2" }, + { name = "langdetect", specifier = "==1.0.9" }, + { name = "langfuse", specifier = ">=2.32.0,<3.0.0" }, + { name = "langsmith", specifier = "==0.1.139" }, + { name = "litellm", specifier = "==1.49.1" }, + { name = "llama-index-core", specifier = ">=0.11.22,<0.12.0" }, + { name = "matplotlib", specifier = ">=3.8.3,<4.0.0" }, + { name = "mcp", specifier = ">=1.1.1" }, + { name = "mypy", specifier = ">=1.7.1,<2.0.0" }, + { name = "neo4j", specifier = ">=5.20.0,<6.0.0" }, + { name = "nest-asyncio", specifier = "==1.6.0" }, + { name = "networkx", specifier = ">=3.2.1,<4.0.0" }, + { name = "nltk", specifier = ">=3.8.1,<4.0.0" }, + { name = "numpy", specifier = "==1.26.4" }, + { name = "openai", specifier = "==1.52.0" }, + { name = "pandas", specifier = "==2.0.3" }, + { name = "pgvector", specifier = ">=0.3.5,<0.4.0" }, + { name = "posthog", specifier = ">=3.5.0,<4.0.0" }, + { name = "psycopg2", specifier = ">=2.9.10,<3.0.0" }, + { name = "pydantic", specifier = "==2.8.2" }, + { name = "pydantic-settings", specifier = ">=2.2.1,<3.0.0" }, + { name = "pylint", specifier = ">=3.0.3,<4.0.0" }, + { name = "pymilvus", specifier = ">=2.5.0,<3.0.0" }, + { name = "pypdf", specifier = ">=4.1.0,<5.0.0" }, + { name = "pytest", specifier = ">=7.4.0,<8.0.0" }, + { name = "pytest-asyncio", specifier = ">=0.21.1,<0.22.0" }, + { name = "python-dotenv", specifier = "==1.0.1" }, + { name = "qdrant-client", specifier = ">=1.9.0,<2.0.0" }, + { name = "requests", specifier = "==2.32.3" }, + { name = "ruff", specifier = ">=0.2.2,<0.3.0" }, + { name = "scikit-learn", specifier = ">=1.5.0,<2.0.0" }, + { name = "sentry-sdk", extras = ["fastapi"], specifier = ">=2.9.0,<3.0.0" }, + { name = "sqlalchemy", specifier = "==2.0.35" }, + { name = "tenacity", specifier = ">=8.4.1,<9.0.0" }, + { name = "tiktoken", specifier = "==0.7.0" }, + { name = "transformers", specifier = ">=4.46.3,<5.0.0" }, + { name = "tweepy", specifier = "==4.14.0" }, + { name = "typing-extensions", specifier = "==4.12.2" }, + { name = "unstructured", extras = ["csv", "doc", "docx", "epub", "md", "odt", "org", "ppt", "pptx", "rst", "rtf", "tsv", "xlsx"], specifier = ">=0.16.10,<1.0.0" }, + { name = "uvicorn", specifier = "==0.22.0" }, + { name = "weaviate-client", specifier = "==4.6.7" }, +] + +[package.metadata.requires-dev] +dev = [{ name = "cognee", directory = "../" }] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, +] + +[[package]] +name = "contourpy" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/25/c2/fc7193cc5383637ff390a712e88e4ded0452c9fbcf84abe3de5ea3df1866/contourpy-1.3.1.tar.gz", hash = "sha256:dfd97abd83335045a913e3bcc4a09c0ceadbe66580cf573fe961f4a825efa699", size = 13465753 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/bb/11250d2906ee2e8b466b5f93e6b19d525f3e0254ac8b445b56e618527718/contourpy-1.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3e8b974d8db2c5610fb4e76307e265de0edb655ae8169e8b21f41807ccbeec4b", size = 269555 }, + { url = "https://files.pythonhosted.org/packages/67/71/1e6e95aee21a500415f5d2dbf037bf4567529b6a4e986594d7026ec5ae90/contourpy-1.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:20914c8c973f41456337652a6eeca26d2148aa96dd7ac323b74516988bea89fc", size = 254549 }, + { url = "https://files.pythonhosted.org/packages/31/2c/b88986e8d79ac45efe9d8801ae341525f38e087449b6c2f2e6050468a42c/contourpy-1.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19d40d37c1c3a4961b4619dd9d77b12124a453cc3d02bb31a07d58ef684d3d86", size = 313000 }, + { url = "https://files.pythonhosted.org/packages/c4/18/65280989b151fcf33a8352f992eff71e61b968bef7432fbfde3a364f0730/contourpy-1.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:113231fe3825ebf6f15eaa8bc1f5b0ddc19d42b733345eae0934cb291beb88b6", size = 352925 }, + { url = "https://files.pythonhosted.org/packages/f5/c7/5fd0146c93220dbfe1a2e0f98969293b86ca9bc041d6c90c0e065f4619ad/contourpy-1.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4dbbc03a40f916a8420e420d63e96a1258d3d1b58cbdfd8d1f07b49fcbd38e85", size = 323693 }, + { url = "https://files.pythonhosted.org/packages/85/fc/7fa5d17daf77306840a4e84668a48ddff09e6bc09ba4e37e85ffc8e4faa3/contourpy-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a04ecd68acbd77fa2d39723ceca4c3197cb2969633836ced1bea14e219d077c", size = 326184 }, + { url = "https://files.pythonhosted.org/packages/ef/e7/104065c8270c7397c9571620d3ab880558957216f2b5ebb7e040f85eeb22/contourpy-1.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c414fc1ed8ee1dbd5da626cf3710c6013d3d27456651d156711fa24f24bd1291", size = 1268031 }, + { url = "https://files.pythonhosted.org/packages/e2/4a/c788d0bdbf32c8113c2354493ed291f924d4793c4a2e85b69e737a21a658/contourpy-1.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:31c1b55c1f34f80557d3830d3dd93ba722ce7e33a0b472cba0ec3b6535684d8f", size = 1325995 }, + { url = "https://files.pythonhosted.org/packages/a6/e6/a2f351a90d955f8b0564caf1ebe4b1451a3f01f83e5e3a414055a5b8bccb/contourpy-1.3.1-cp311-cp311-win32.whl", hash = "sha256:f611e628ef06670df83fce17805c344710ca5cde01edfdc72751311da8585375", size = 174396 }, + { url = "https://files.pythonhosted.org/packages/a8/7e/cd93cab453720a5d6cb75588cc17dcdc08fc3484b9de98b885924ff61900/contourpy-1.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:b2bdca22a27e35f16794cf585832e542123296b4687f9fd96822db6bae17bfc9", size = 219787 }, + { url = "https://files.pythonhosted.org/packages/37/6b/175f60227d3e7f5f1549fcb374592be311293132207e451c3d7c654c25fb/contourpy-1.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0ffa84be8e0bd33410b17189f7164c3589c229ce5db85798076a3fa136d0e509", size = 271494 }, + { url = "https://files.pythonhosted.org/packages/6b/6a/7833cfae2c1e63d1d8875a50fd23371394f540ce809d7383550681a1fa64/contourpy-1.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805617228ba7e2cbbfb6c503858e626ab528ac2a32a04a2fe88ffaf6b02c32bc", size = 255444 }, + { url = "https://files.pythonhosted.org/packages/7f/b3/7859efce66eaca5c14ba7619791b084ed02d868d76b928ff56890d2d059d/contourpy-1.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ade08d343436a94e633db932e7e8407fe7de8083967962b46bdfc1b0ced39454", size = 307628 }, + { url = "https://files.pythonhosted.org/packages/48/b2/011415f5e3f0a50b1e285a0bf78eb5d92a4df000553570f0851b6e309076/contourpy-1.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:47734d7073fb4590b4a40122b35917cd77be5722d80683b249dac1de266aac80", size = 347271 }, + { url = "https://files.pythonhosted.org/packages/84/7d/ef19b1db0f45b151ac78c65127235239a8cf21a59d1ce8507ce03e89a30b/contourpy-1.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2ba94a401342fc0f8b948e57d977557fbf4d515f03c67682dd5c6191cb2d16ec", size = 318906 }, + { url = "https://files.pythonhosted.org/packages/ba/99/6794142b90b853a9155316c8f470d2e4821fe6f086b03e372aca848227dd/contourpy-1.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efa874e87e4a647fd2e4f514d5e91c7d493697127beb95e77d2f7561f6905bd9", size = 323622 }, + { url = "https://files.pythonhosted.org/packages/3c/0f/37d2c84a900cd8eb54e105f4fa9aebd275e14e266736778bb5dccbf3bbbb/contourpy-1.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1bf98051f1045b15c87868dbaea84f92408337d4f81d0e449ee41920ea121d3b", size = 1266699 }, + { url = "https://files.pythonhosted.org/packages/3a/8a/deb5e11dc7d9cc8f0f9c8b29d4f062203f3af230ba83c30a6b161a6effc9/contourpy-1.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:61332c87493b00091423e747ea78200659dc09bdf7fd69edd5e98cef5d3e9a8d", size = 1326395 }, + { url = "https://files.pythonhosted.org/packages/1a/35/7e267ae7c13aaf12322ccc493531f1e7f2eb8fba2927b9d7a05ff615df7a/contourpy-1.3.1-cp312-cp312-win32.whl", hash = "sha256:e914a8cb05ce5c809dd0fe350cfbb4e881bde5e2a38dc04e3afe1b3e58bd158e", size = 175354 }, + { url = "https://files.pythonhosted.org/packages/a1/35/c2de8823211d07e8a79ab018ef03960716c5dff6f4d5bff5af87fd682992/contourpy-1.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:08d9d449a61cf53033612cb368f3a1b26cd7835d9b8cd326647efe43bca7568d", size = 220971 }, + { url = "https://files.pythonhosted.org/packages/9a/e7/de62050dce687c5e96f946a93546910bc67e483fe05324439e329ff36105/contourpy-1.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a761d9ccfc5e2ecd1bf05534eda382aa14c3e4f9205ba5b1684ecfe400716ef2", size = 271548 }, + { url = "https://files.pythonhosted.org/packages/78/4d/c2a09ae014ae984c6bdd29c11e74d3121b25eaa117eca0bb76340efd7e1c/contourpy-1.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:523a8ee12edfa36f6d2a49407f705a6ef4c5098de4f498619787e272de93f2d5", size = 255576 }, + { url = "https://files.pythonhosted.org/packages/ab/8a/915380ee96a5638bda80cd061ccb8e666bfdccea38d5741cb69e6dbd61fc/contourpy-1.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece6df05e2c41bd46776fbc712e0996f7c94e0d0543af1656956d150c4ca7c81", size = 306635 }, + { url = "https://files.pythonhosted.org/packages/29/5c/c83ce09375428298acd4e6582aeb68b1e0d1447f877fa993d9bf6cd3b0a0/contourpy-1.3.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:573abb30e0e05bf31ed067d2f82500ecfdaec15627a59d63ea2d95714790f5c2", size = 345925 }, + { url = "https://files.pythonhosted.org/packages/29/63/5b52f4a15e80c66c8078a641a3bfacd6e07106835682454647aca1afc852/contourpy-1.3.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fa36448e6a3a1a9a2ba23c02012c43ed88905ec80163f2ffe2421c7192a5d7", size = 318000 }, + { url = "https://files.pythonhosted.org/packages/9a/e2/30ca086c692691129849198659bf0556d72a757fe2769eb9620a27169296/contourpy-1.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ea9924d28fc5586bf0b42d15f590b10c224117e74409dd7a0be3b62b74a501c", size = 322689 }, + { url = "https://files.pythonhosted.org/packages/6b/77/f37812ef700f1f185d348394debf33f22d531e714cf6a35d13d68a7003c7/contourpy-1.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5b75aa69cb4d6f137b36f7eb2ace9280cfb60c55dc5f61c731fdf6f037f958a3", size = 1268413 }, + { url = "https://files.pythonhosted.org/packages/3f/6d/ce84e79cdd128542ebeb268f84abb4b093af78e7f8ec504676673d2675bc/contourpy-1.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:041b640d4ec01922083645a94bb3b2e777e6b626788f4095cf21abbe266413c1", size = 1326530 }, + { url = "https://files.pythonhosted.org/packages/72/22/8282f4eae20c73c89bee7a82a19c4e27af9b57bb602ecaa00713d5bdb54d/contourpy-1.3.1-cp313-cp313-win32.whl", hash = "sha256:36987a15e8ace5f58d4d5da9dca82d498c2bbb28dff6e5d04fbfcc35a9cb3a82", size = 175315 }, + { url = "https://files.pythonhosted.org/packages/e3/d5/28bca491f65312b438fbf076589dcde7f6f966b196d900777f5811b9c4e2/contourpy-1.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:a7895f46d47671fa7ceec40f31fae721da51ad34bdca0bee83e38870b1f47ffd", size = 220987 }, + { url = "https://files.pythonhosted.org/packages/2f/24/a4b285d6adaaf9746e4700932f579f1a7b6f9681109f694cfa233ae75c4e/contourpy-1.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9ddeb796389dadcd884c7eb07bd14ef12408aaae358f0e2ae24114d797eede30", size = 285001 }, + { url = "https://files.pythonhosted.org/packages/48/1d/fb49a401b5ca4f06ccf467cd6c4f1fd65767e63c21322b29b04ec40b40b9/contourpy-1.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:19c1555a6801c2f084c7ddc1c6e11f02eb6a6016ca1318dd5452ba3f613a1751", size = 268553 }, + { url = "https://files.pythonhosted.org/packages/79/1e/4aef9470d13fd029087388fae750dccb49a50c012a6c8d1d634295caa644/contourpy-1.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:841ad858cff65c2c04bf93875e384ccb82b654574a6d7f30453a04f04af71342", size = 310386 }, + { url = "https://files.pythonhosted.org/packages/b0/34/910dc706ed70153b60392b5305c708c9810d425bde12499c9184a1100888/contourpy-1.3.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4318af1c925fb9a4fb190559ef3eec206845f63e80fb603d47f2d6d67683901c", size = 349806 }, + { url = "https://files.pythonhosted.org/packages/31/3c/faee6a40d66d7f2a87f7102236bf4780c57990dd7f98e5ff29881b1b1344/contourpy-1.3.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:14c102b0eab282427b662cb590f2e9340a9d91a1c297f48729431f2dcd16e14f", size = 321108 }, + { url = "https://files.pythonhosted.org/packages/17/69/390dc9b20dd4bb20585651d7316cc3054b7d4a7b4f8b710b2b698e08968d/contourpy-1.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05e806338bfeaa006acbdeba0ad681a10be63b26e1b17317bfac3c5d98f36cda", size = 327291 }, + { url = "https://files.pythonhosted.org/packages/ef/74/7030b67c4e941fe1e5424a3d988080e83568030ce0355f7c9fc556455b01/contourpy-1.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4d76d5993a34ef3df5181ba3c92fabb93f1eaa5729504fb03423fcd9f3177242", size = 1263752 }, + { url = "https://files.pythonhosted.org/packages/f0/ed/92d86f183a8615f13f6b9cbfc5d4298a509d6ce433432e21da838b4b63f4/contourpy-1.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:89785bb2a1980c1bd87f0cb1517a71cde374776a5f150936b82580ae6ead44a1", size = 1318403 }, + { url = "https://files.pythonhosted.org/packages/b3/0e/c8e4950c77dcfc897c71d61e56690a0a9df39543d2164040301b5df8e67b/contourpy-1.3.1-cp313-cp313t-win32.whl", hash = "sha256:8eb96e79b9f3dcadbad2a3891672f81cdcab7f95b27f28f1c67d75f045b6b4f1", size = 185117 }, + { url = "https://files.pythonhosted.org/packages/c1/31/1ae946f11dfbd229222e6d6ad8e7bd1891d3d48bde5fbf7a0beb9491f8e3/contourpy-1.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:287ccc248c9e0d0566934e7d606201abd74761b5703d804ff3df8935f523d546", size = 236668 }, +] + +[[package]] +name = "coverage" +version = "7.6.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5b/d2/c25011f4d036cf7e8acbbee07a8e09e9018390aee25ba085596c4b83d510/coverage-7.6.9.tar.gz", hash = "sha256:4a8d8977b0c6ef5aeadcb644da9e69ae0dcfe66ec7f368c89c72e058bd71164d", size = 801710 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/91/b3dc2f7f38b5cca1236ab6bbb03e84046dd887707b4ec1db2baa47493b3b/coverage-7.6.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:932fc826442132dde42ee52cf66d941f581c685a6313feebed358411238f60f9", size = 207133 }, + { url = "https://files.pythonhosted.org/packages/0d/2b/53fd6cb34d443429a92b3ec737f4953627e38b3bee2a67a3c03425ba8573/coverage-7.6.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:085161be5f3b30fd9b3e7b9a8c301f935c8313dcf928a07b116324abea2c1c2c", size = 207577 }, + { url = "https://files.pythonhosted.org/packages/74/f2/68edb1e6826f980a124f21ea5be0d324180bf11de6fd1defcf9604f76df0/coverage-7.6.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ccc660a77e1c2bf24ddbce969af9447a9474790160cfb23de6be4fa88e3951c7", size = 239524 }, + { url = "https://files.pythonhosted.org/packages/d3/83/8fec0ee68c2c4a5ab5f0f8527277f84ed6f2bd1310ae8a19d0c5532253ab/coverage-7.6.9-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c69e42c892c018cd3c8d90da61d845f50a8243062b19d228189b0224150018a9", size = 236925 }, + { url = "https://files.pythonhosted.org/packages/8b/20/8f50e7c7ad271144afbc2c1c6ec5541a8c81773f59352f8db544cad1a0ec/coverage-7.6.9-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0824a28ec542a0be22f60c6ac36d679e0e262e5353203bea81d44ee81fe9c6d4", size = 238792 }, + { url = "https://files.pythonhosted.org/packages/6f/62/4ac2e5ad9e7a5c9ec351f38947528e11541f1f00e8a0cdce56f1ba7ae301/coverage-7.6.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4401ae5fc52ad8d26d2a5d8a7428b0f0c72431683f8e63e42e70606374c311a1", size = 237682 }, + { url = "https://files.pythonhosted.org/packages/58/2f/9d2203f012f3b0533c73336c74134b608742be1ce475a5c72012573cfbb4/coverage-7.6.9-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:98caba4476a6c8d59ec1eb00c7dd862ba9beca34085642d46ed503cc2d440d4b", size = 236310 }, + { url = "https://files.pythonhosted.org/packages/33/6d/31f6ab0b4f0f781636075f757eb02141ea1b34466d9d1526dbc586ed7078/coverage-7.6.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ee5defd1733fd6ec08b168bd4f5387d5b322f45ca9e0e6c817ea6c4cd36313e3", size = 237096 }, + { url = "https://files.pythonhosted.org/packages/7d/fb/e14c38adebbda9ed8b5f7f8e03340ac05d68d27b24397f8d47478927a333/coverage-7.6.9-cp311-cp311-win32.whl", hash = "sha256:f2d1ec60d6d256bdf298cb86b78dd715980828f50c46701abc3b0a2b3f8a0dc0", size = 209682 }, + { url = "https://files.pythonhosted.org/packages/a4/11/a782af39b019066af83fdc0e8825faaccbe9d7b19a803ddb753114b429cc/coverage-7.6.9-cp311-cp311-win_amd64.whl", hash = "sha256:0d59fd927b1f04de57a2ba0137166d31c1a6dd9e764ad4af552912d70428c92b", size = 210542 }, + { url = "https://files.pythonhosted.org/packages/60/52/b16af8989a2daf0f80a88522bd8e8eed90b5fcbdecf02a6888f3e80f6ba7/coverage-7.6.9-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:99e266ae0b5d15f1ca8d278a668df6f51cc4b854513daab5cae695ed7b721cf8", size = 207325 }, + { url = "https://files.pythonhosted.org/packages/0f/79/6b7826fca8846c1216a113227b9f114ac3e6eacf168b4adcad0cb974aaca/coverage-7.6.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9901d36492009a0a9b94b20e52ebfc8453bf49bb2b27bca2c9706f8b4f5a554a", size = 207563 }, + { url = "https://files.pythonhosted.org/packages/a7/07/0bc73da0ccaf45d0d64ef86d33b7d7fdeef84b4c44bf6b85fb12c215c5a6/coverage-7.6.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abd3e72dd5b97e3af4246cdada7738ef0e608168de952b837b8dd7e90341f015", size = 240580 }, + { url = "https://files.pythonhosted.org/packages/71/8a/9761f409910961647d892454687cedbaccb99aae828f49486734a82ede6e/coverage-7.6.9-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff74026a461eb0660366fb01c650c1d00f833a086b336bdad7ab00cc952072b3", size = 237613 }, + { url = "https://files.pythonhosted.org/packages/8b/10/ee7d696a17ac94f32f2dbda1e17e730bf798ae9931aec1fc01c1944cd4de/coverage-7.6.9-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65dad5a248823a4996724a88eb51d4b31587aa7aa428562dbe459c684e5787ae", size = 239684 }, + { url = "https://files.pythonhosted.org/packages/16/60/aa1066040d3c52fff051243c2d6ccda264da72dc6d199d047624d395b2b2/coverage-7.6.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:22be16571504c9ccea919fcedb459d5ab20d41172056206eb2994e2ff06118a4", size = 239112 }, + { url = "https://files.pythonhosted.org/packages/4e/e5/69f35344c6f932ba9028bf168d14a79fedb0dd4849b796d43c81ce75a3c9/coverage-7.6.9-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f957943bc718b87144ecaee70762bc2bc3f1a7a53c7b861103546d3a403f0a6", size = 237428 }, + { url = "https://files.pythonhosted.org/packages/32/20/adc895523c4a28f63441b8ac645abd74f9bdd499d2d175bef5b41fc7f92d/coverage-7.6.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0ae1387db4aecb1f485fb70a6c0148c6cdaebb6038f1d40089b1fc84a5db556f", size = 239098 }, + { url = "https://files.pythonhosted.org/packages/a9/a6/e0e74230c9bb3549ec8ffc137cfd16ea5d56e993d6bffed2218bff6187e3/coverage-7.6.9-cp312-cp312-win32.whl", hash = "sha256:1a330812d9cc7ac2182586f6d41b4d0fadf9be9049f350e0efb275c8ee8eb692", size = 209940 }, + { url = "https://files.pythonhosted.org/packages/3e/18/cb5b88349d4aa2f41ec78d65f92ea32572b30b3f55bc2b70e87578b8f434/coverage-7.6.9-cp312-cp312-win_amd64.whl", hash = "sha256:b12c6b18269ca471eedd41c1b6a1065b2f7827508edb9a7ed5555e9a56dcfc97", size = 210726 }, + { url = "https://files.pythonhosted.org/packages/35/26/9abab6539d2191dbda2ce8c97b67d74cbfc966cc5b25abb880ffc7c459bc/coverage-7.6.9-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:899b8cd4781c400454f2f64f7776a5d87bbd7b3e7f7bda0cb18f857bb1334664", size = 207356 }, + { url = "https://files.pythonhosted.org/packages/44/da/d49f19402240c93453f606e660a6676a2a1fbbaa6870cc23207790aa9697/coverage-7.6.9-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:61f70dc68bd36810972e55bbbe83674ea073dd1dcc121040a08cdf3416c5349c", size = 207614 }, + { url = "https://files.pythonhosted.org/packages/da/e6/93bb9bf85497816082ec8da6124c25efa2052bd4c887dd3b317b91990c9e/coverage-7.6.9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a289d23d4c46f1a82d5db4abeb40b9b5be91731ee19a379d15790e53031c014", size = 240129 }, + { url = "https://files.pythonhosted.org/packages/df/65/6a824b9406fe066835c1274a9949e06f084d3e605eb1a602727a27ec2fe3/coverage-7.6.9-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e216d8044a356fc0337c7a2a0536d6de07888d7bcda76febcb8adc50bdbbd00", size = 237276 }, + { url = "https://files.pythonhosted.org/packages/9f/79/6c7a800913a9dd23ac8c8da133ebb556771a5a3d4df36b46767b1baffd35/coverage-7.6.9-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c026eb44f744acaa2bda7493dad903aa5bf5fc4f2554293a798d5606710055d", size = 239267 }, + { url = "https://files.pythonhosted.org/packages/57/e7/834d530293fdc8a63ba8ff70033d5182022e569eceb9aec7fc716b678a39/coverage-7.6.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e77363e8425325384f9d49272c54045bbed2f478e9dd698dbc65dbc37860eb0a", size = 238887 }, + { url = "https://files.pythonhosted.org/packages/15/05/ec9d6080852984f7163c96984444e7cd98b338fd045b191064f943ee1c08/coverage-7.6.9-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:777abfab476cf83b5177b84d7486497e034eb9eaea0d746ce0c1268c71652077", size = 236970 }, + { url = "https://files.pythonhosted.org/packages/0a/d8/775937670b93156aec29f694ce37f56214ed7597e1a75b4083ee4c32121c/coverage-7.6.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:447af20e25fdbe16f26e84eb714ba21d98868705cb138252d28bc400381f6ffb", size = 238831 }, + { url = "https://files.pythonhosted.org/packages/f4/58/88551cb7fdd5ec98cb6044e8814e38583436b14040a5ece15349c44c8f7c/coverage-7.6.9-cp313-cp313-win32.whl", hash = "sha256:d872ec5aeb086cbea771c573600d47944eea2dcba8be5f3ee649bfe3cb8dc9ba", size = 210000 }, + { url = "https://files.pythonhosted.org/packages/b7/12/cfbf49b95120872785ff8d56ab1c7fe3970a65e35010c311d7dd35c5fd00/coverage-7.6.9-cp313-cp313-win_amd64.whl", hash = "sha256:fd1213c86e48dfdc5a0cc676551db467495a95a662d2396ecd58e719191446e1", size = 210753 }, + { url = "https://files.pythonhosted.org/packages/7c/68/c1cb31445599b04bde21cbbaa6d21b47c5823cdfef99eae470dfce49c35a/coverage-7.6.9-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:ba9e7484d286cd5a43744e5f47b0b3fb457865baf07bafc6bee91896364e1419", size = 208091 }, + { url = "https://files.pythonhosted.org/packages/11/73/84b02c6b19c4a11eb2d5b5eabe926fb26c21c080e0852f5e5a4f01165f9e/coverage-7.6.9-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e5ea1cf0872ee455c03e5674b5bca5e3e68e159379c1af0903e89f5eba9ccc3a", size = 208369 }, + { url = "https://files.pythonhosted.org/packages/de/e0/ae5d878b72ff26df2e994a5c5b1c1f6a7507d976b23beecb1ed4c85411ef/coverage-7.6.9-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d10e07aa2b91835d6abec555ec8b2733347956991901eea6ffac295f83a30e4", size = 251089 }, + { url = "https://files.pythonhosted.org/packages/ab/9c/0aaac011aef95a93ef3cb2fba3fde30bc7e68a6635199ed469b1f5ea355a/coverage-7.6.9-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:13a9e2d3ee855db3dd6ea1ba5203316a1b1fd8eaeffc37c5b54987e61e4194ae", size = 246806 }, + { url = "https://files.pythonhosted.org/packages/f8/19/4d5d3ae66938a7dcb2f58cef3fa5386f838f469575b0bb568c8cc9e3a33d/coverage-7.6.9-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c38bf15a40ccf5619fa2fe8f26106c7e8e080d7760aeccb3722664c8656b030", size = 249164 }, + { url = "https://files.pythonhosted.org/packages/b3/0b/4ee8a7821f682af9ad440ae3c1e379da89a998883271f088102d7ca2473d/coverage-7.6.9-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:d5275455b3e4627c8e7154feaf7ee0743c2e7af82f6e3b561967b1cca755a0be", size = 248642 }, + { url = "https://files.pythonhosted.org/packages/8a/12/36ff1d52be18a16b4700f561852e7afd8df56363a5edcfb04cf26a0e19e0/coverage-7.6.9-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8f8770dfc6e2c6a2d4569f411015c8d751c980d17a14b0530da2d7f27ffdd88e", size = 246516 }, + { url = "https://files.pythonhosted.org/packages/43/d0/8e258f6c3a527c1655602f4f576215e055ac704de2d101710a71a2affac2/coverage-7.6.9-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8d2dfa71665a29b153a9681edb1c8d9c1ea50dfc2375fb4dac99ea7e21a0bcd9", size = 247783 }, + { url = "https://files.pythonhosted.org/packages/a9/0d/1e4a48d289429d38aae3babdfcadbf35ca36bdcf3efc8f09b550a845bdb5/coverage-7.6.9-cp313-cp313t-win32.whl", hash = "sha256:5e6b86b5847a016d0fbd31ffe1001b63355ed309651851295315031ea7eb5a9b", size = 210646 }, + { url = "https://files.pythonhosted.org/packages/26/74/b0729f196f328ac55e42b1e22ec2f16d8bcafe4b8158a26ec9f1cdd1d93e/coverage-7.6.9-cp313-cp313t-win_amd64.whl", hash = "sha256:97ddc94d46088304772d21b060041c97fc16bdda13c6c7f9d8fcd8d5ae0d8611", size = 211815 }, +] + +[[package]] +name = "cryptography" +version = "44.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/91/4c/45dfa6829acffa344e3967d6006ee4ae8be57af746ae2eba1c431949b32c/cryptography-44.0.0.tar.gz", hash = "sha256:cd4e834f340b4293430701e772ec543b0fbe6c2dea510a5286fe0acabe153a02", size = 710657 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/55/09/8cc67f9b84730ad330b3b72cf867150744bf07ff113cda21a15a1c6d2c7c/cryptography-44.0.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:84111ad4ff3f6253820e6d3e58be2cc2a00adb29335d4cacb5ab4d4d34f2a123", size = 6541833 }, + { url = "https://files.pythonhosted.org/packages/7e/5b/3759e30a103144e29632e7cb72aec28cedc79e514b2ea8896bb17163c19b/cryptography-44.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15492a11f9e1b62ba9d73c210e2416724633167de94607ec6069ef724fad092", size = 3922710 }, + { url = "https://files.pythonhosted.org/packages/5f/58/3b14bf39f1a0cfd679e753e8647ada56cddbf5acebffe7db90e184c76168/cryptography-44.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:831c3c4d0774e488fdc83a1923b49b9957d33287de923d58ebd3cec47a0ae43f", size = 4137546 }, + { url = "https://files.pythonhosted.org/packages/98/65/13d9e76ca19b0ba5603d71ac8424b5694415b348e719db277b5edc985ff5/cryptography-44.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:761817a3377ef15ac23cd7834715081791d4ec77f9297ee694ca1ee9c2c7e5eb", size = 3915420 }, + { url = "https://files.pythonhosted.org/packages/b1/07/40fe09ce96b91fc9276a9ad272832ead0fddedcba87f1190372af8e3039c/cryptography-44.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3c672a53c0fb4725a29c303be906d3c1fa99c32f58abe008a82705f9ee96f40b", size = 4154498 }, + { url = "https://files.pythonhosted.org/packages/75/ea/af65619c800ec0a7e4034207aec543acdf248d9bffba0533342d1bd435e1/cryptography-44.0.0-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:4ac4c9f37eba52cb6fbeaf5b59c152ea976726b865bd4cf87883a7e7006cc543", size = 3932569 }, + { url = "https://files.pythonhosted.org/packages/c7/af/d1deb0c04d59612e3d5e54203159e284d3e7a6921e565bb0eeb6269bdd8a/cryptography-44.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ed3534eb1090483c96178fcb0f8893719d96d5274dfde98aa6add34614e97c8e", size = 4016721 }, + { url = "https://files.pythonhosted.org/packages/bd/69/7ca326c55698d0688db867795134bdfac87136b80ef373aaa42b225d6dd5/cryptography-44.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f3f6fdfa89ee2d9d496e2c087cebef9d4fcbb0ad63c40e821b39f74bf48d9c5e", size = 4240915 }, + { url = "https://files.pythonhosted.org/packages/ef/d4/cae11bf68c0f981e0413906c6dd03ae7fa864347ed5fac40021df1ef467c/cryptography-44.0.0-cp37-abi3-win32.whl", hash = "sha256:eb33480f1bad5b78233b0ad3e1b0be21e8ef1da745d8d2aecbb20671658b9053", size = 2757925 }, + { url = "https://files.pythonhosted.org/packages/64/b1/50d7739254d2002acae64eed4fc43b24ac0cc44bf0a0d388d1ca06ec5bb1/cryptography-44.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:abc998e0c0eee3c8a1904221d3f67dcfa76422b23620173e28c11d3e626c21bd", size = 3202055 }, + { url = "https://files.pythonhosted.org/packages/11/18/61e52a3d28fc1514a43b0ac291177acd1b4de00e9301aaf7ef867076ff8a/cryptography-44.0.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:660cb7312a08bc38be15b696462fa7cc7cd85c3ed9c576e81f4dc4d8b2b31591", size = 6542801 }, + { url = "https://files.pythonhosted.org/packages/1a/07/5f165b6c65696ef75601b781a280fc3b33f1e0cd6aa5a92d9fb96c410e97/cryptography-44.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1923cb251c04be85eec9fda837661c67c1049063305d6be5721643c22dd4e2b7", size = 3922613 }, + { url = "https://files.pythonhosted.org/packages/28/34/6b3ac1d80fc174812486561cf25194338151780f27e438526f9c64e16869/cryptography-44.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:404fdc66ee5f83a1388be54300ae978b2efd538018de18556dde92575e05defc", size = 4137925 }, + { url = "https://files.pythonhosted.org/packages/d0/c7/c656eb08fd22255d21bc3129625ed9cd5ee305f33752ef2278711b3fa98b/cryptography-44.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:c5eb858beed7835e5ad1faba59e865109f3e52b3783b9ac21e7e47dc5554e289", size = 3915417 }, + { url = "https://files.pythonhosted.org/packages/ef/82/72403624f197af0db6bac4e58153bc9ac0e6020e57234115db9596eee85d/cryptography-44.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f53c2c87e0fb4b0c00fa9571082a057e37690a8f12233306161c8f4b819960b7", size = 4155160 }, + { url = "https://files.pythonhosted.org/packages/a2/cd/2f3c440913d4329ade49b146d74f2e9766422e1732613f57097fea61f344/cryptography-44.0.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:9e6fc8a08e116fb7c7dd1f040074c9d7b51d74a8ea40d4df2fc7aa08b76b9e6c", size = 3932331 }, + { url = "https://files.pythonhosted.org/packages/7f/df/8be88797f0a1cca6e255189a57bb49237402b1880d6e8721690c5603ac23/cryptography-44.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:d2436114e46b36d00f8b72ff57e598978b37399d2786fd39793c36c6d5cb1c64", size = 4017372 }, + { url = "https://files.pythonhosted.org/packages/af/36/5ccc376f025a834e72b8e52e18746b927f34e4520487098e283a719c205e/cryptography-44.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a01956ddfa0a6790d594f5b34fc1bfa6098aca434696a03cfdbe469b8ed79285", size = 4239657 }, + { url = "https://files.pythonhosted.org/packages/46/b0/f4f7d0d0bcfbc8dd6296c1449be326d04217c57afb8b2594f017eed95533/cryptography-44.0.0-cp39-abi3-win32.whl", hash = "sha256:eca27345e1214d1b9f9490d200f9db5a874479be914199194e746c893788d417", size = 2758672 }, + { url = "https://files.pythonhosted.org/packages/97/9b/443270b9210f13f6ef240eff73fd32e02d381e7103969dc66ce8e89ee901/cryptography-44.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:708ee5f1bafe76d041b53a4f95eb28cdeb8d18da17e597d46d7833ee59b97ede", size = 3202071 }, +] + +[[package]] +name = "cycler" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c", size = 7615 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321 }, +] + +[[package]] +name = "dataclasses-json" +version = "0.6.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "marshmallow" }, + { name = "typing-inspect" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/64/a4/f71d9cf3a5ac257c993b5ca3f93df5f7fb395c725e7f1e6479d2514173c3/dataclasses_json-0.6.7.tar.gz", hash = "sha256:b6b3e528266ea45b9535223bc53ca645f5208833c29229e847b3f26a1cc55fc0", size = 32227 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c3/be/d0d44e092656fe7a06b55e6103cbce807cdbdee17884a5367c68c9860853/dataclasses_json-0.6.7-py3-none-any.whl", hash = "sha256:0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a", size = 28686 }, +] + +[[package]] +name = "datasets" +version = "3.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "dill" }, + { name = "filelock" }, + { name = "fsspec", extra = ["http"] }, + { name = "huggingface-hub" }, + { name = "multiprocess" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "pyarrow" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "tqdm" }, + { name = "xxhash" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a3/b2/25ef6d54dcb2d1412e5efec59449d1af92e7a6d969e27adfe9965e780c1f/datasets-3.1.0.tar.gz", hash = "sha256:c92cac049e0f9f85b0dd63739c68e564c657b1624bc2b66b1e13489062832e27", size = 558115 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/a5/33cf000137545a08b0a3a6ea76c8ccbd87917f78bb5d737f9f56f3b11ef6/datasets-3.1.0-py3-none-any.whl", hash = "sha256:dc8808a6d17838fe05e13b39aa7ac3ea0fd0806ed7004eaf4d4eb2c2a356bc61", size = 480554 }, +] + +[[package]] +name = "debugpy" +version = "1.8.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/c9/9d585d711cdcae0db7788731b331dab0d1f600d0204e76b2a5c6b30d569e/debugpy-1.8.2.zip", hash = "sha256:95378ed08ed2089221896b9b3a8d021e642c24edc8fef20e5d4342ca8be65c00", size = 4614001 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2b/ba/d06289b7c6194117fcecc88c24dee405b1c14b8e318e7bdf513eb78c3278/debugpy-1.8.2-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:8a13417ccd5978a642e91fb79b871baded925d4fadd4dfafec1928196292aa0a", size = 1789191 }, + { url = "https://files.pythonhosted.org/packages/4f/d6/04ae52227ab7c1d43b729d5ae75ebd592df56c55d4e4dfa30ba173096b0f/debugpy-1.8.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acdf39855f65c48ac9667b2801234fc64d46778021efac2de7e50907ab90c634", size = 2643243 }, + { url = "https://files.pythonhosted.org/packages/49/cd/207d629509949568603008c8cf90cd0a949d1a9d1900936010854732ab93/debugpy-1.8.2-cp311-cp311-win32.whl", hash = "sha256:2cbd4d9a2fc5e7f583ff9bf11f3b7d78dfda8401e8bb6856ad1ed190be4281ad", size = 4703962 }, + { url = "https://files.pythonhosted.org/packages/23/b1/3fc28ba2921234e3fad4a421dcb3185c38066eab0f92702c0d88ce891381/debugpy-1.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:d3408fddd76414034c02880e891ea434e9a9cf3a69842098ef92f6e809d09afa", size = 4717479 }, + { url = "https://files.pythonhosted.org/packages/8c/6d/116a2dbcd13402be7eb58c07ba52a4052bf71011670a5ca1218b0dc6aa60/debugpy-1.8.2-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:5d3ccd39e4021f2eb86b8d748a96c766058b39443c1f18b2dc52c10ac2757835", size = 1437574 }, + { url = "https://files.pythonhosted.org/packages/18/5d/bebfd65d9abc30c253b27c1c26e9be01dba6028a2140684725ef40e711ad/debugpy-1.8.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62658aefe289598680193ff655ff3940e2a601765259b123dc7f89c0239b8cd3", size = 1438633 }, + { url = "https://files.pythonhosted.org/packages/0e/9b/f031cea19da5bf660e273bb2482af401f3ce940ea6520fa1756144c828bf/debugpy-1.8.2-cp312-cp312-win32.whl", hash = "sha256:bd11fe35d6fd3431f1546d94121322c0ac572e1bfb1f6be0e9b8655fb4ea941e", size = 4583082 }, + { url = "https://files.pythonhosted.org/packages/6d/a5/41abca2ed34bca22a4b3f64c4e6150cbedd254274de47775aa4d450b51e1/debugpy-1.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:15bc2f4b0f5e99bf86c162c91a74c0631dbd9cef3c6a1d1329c946586255e859", size = 4583077 }, + { url = "https://files.pythonhosted.org/packages/b4/32/dd0707c8557f99496811763c5333ea87bcec1eb233c1efa324c9a8082bff/debugpy-1.8.2-py2.py3-none-any.whl", hash = "sha256:16e16df3a98a35c63c3ab1e4d19be4cbc7fdda92d9ddc059294f18910928e0ca", size = 4826112 }, +] + +[[package]] +name = "deepdiff" +version = "8.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "orderly-set" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/50/4b/ce2d3a36f77186d7dbca0f10b33e6a1c0eee390d9434960d2a14e2736b52/deepdiff-8.1.1.tar.gz", hash = "sha256:dd7bc7d5c8b51b5b90f01b0e2fe23c801fd8b4c6a7ee7e31c5a3c3663fcc7ceb", size = 433560 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/66/f7/2df72b55635926872b947203aacbe7e1109a51929aec8ebfef8c4a348eb5/deepdiff-8.1.1-py3-none-any.whl", hash = "sha256:b0231fa3afb0f7184e82535f2b4a36636442ed21e94a0cf3aaa7982157e7ebca", size = 84655 }, +] + +[[package]] +name = "deepeval" +version = "2.0.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "docx2txt" }, + { name = "grpcio" }, + { name = "importlib-metadata" }, + { name = "langchain" }, + { name = "langchain-community" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "nest-asyncio" }, + { name = "opentelemetry-api" }, + { name = "opentelemetry-exporter-otlp-proto-grpc" }, + { name = "opentelemetry-sdk" }, + { name = "portalocker" }, + { name = "protobuf" }, + { name = "pydantic" }, + { name = "pytest" }, + { name = "pytest-repeat" }, + { name = "pytest-xdist" }, + { name = "requests" }, + { name = "rich" }, + { name = "sentry-sdk" }, + { name = "tabulate" }, + { name = "tenacity" }, + { name = "tqdm" }, + { name = "typer" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5d/00/137fa722a29b0e0463db653ba71d8e6eb47bb8b051db7497bfba57e44712/deepeval-2.0.6.tar.gz", hash = "sha256:74976e01f4896a18169354a766a779b99df3d3386f88d9a9e49862fa93989dd5", size = 324457 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/60/533ce66e28295e2b94267126a851ac091ad29a835a9827d1f9c30574fce4/deepeval-2.0.6-py3-none-any.whl", hash = "sha256:57302830ff9d3d16ad4f1961338c7b4453e48039ff131990f258880728f33b6b", size = 504101 }, +] + +[[package]] +name = "deprecated" +version = "1.2.15" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wrapt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2e/a3/53e7d78a6850ffdd394d7048a31a6f14e44900adedf190f9a165f6b69439/deprecated-1.2.15.tar.gz", hash = "sha256:683e561a90de76239796e6b6feac66b99030d2dd3fcf61ef996330f14bbb9b0d", size = 2977612 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/8f/c7f227eb42cfeaddce3eb0c96c60cbca37797fa7b34f8e1aeadf6c5c0983/Deprecated-1.2.15-py2.py3-none-any.whl", hash = "sha256:353bc4a8ac4bfc96800ddab349d89c25dec1079f65fd53acdcc1e0b975b21320", size = 9941 }, +] + +[[package]] +name = "deprecation" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5a/d3/8ae2869247df154b64c1884d7346d412fed0c49df84db635aab2d1c40e62/deprecation-2.1.0.tar.gz", hash = "sha256:72b3bde64e5d778694b0cf68178aed03d15e15477116add3fb773e581f9518ff", size = 173788 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/02/c3/253a89ee03fc9b9682f1541728eb66db7db22148cd94f89ab22528cd1e1b/deprecation-2.1.0-py2.py3-none-any.whl", hash = "sha256:a10811591210e1fb0e768a8c25517cabeabcba6f0bf96564f8ff45189f90b14a", size = 11178 }, +] + +[[package]] +name = "deptry" +version = "0.20.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/18/9e/7a976d923d3ae18d7dc4ace8e0c83e20a847828196e7f4b13a4bf6b03b50/deptry-0.20.0.tar.gz", hash = "sha256:62e9aaf3aea9e2ca66c85da98a0ba0290b4d3daea4e1d0ad937d447bd3c36402", size = 129936 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/da/c94ebc2192a29a6f45acb5b87fdb31d1b84843154572d9b88100b7047eda/deptry-0.20.0-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:41434d95124851b83cb05524d1a09ad6fea62006beafed2ef90a6b501c1b237f", size = 1624964 }, + { url = "https://files.pythonhosted.org/packages/98/8e/08f7b33b384a7981b27de5aa3def41b6fa691aa692904910dc1f5bd1fc02/deptry-0.20.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:b3b4b22d1406147de5d606a24042126cd74d52fdfdb0232b9c5fd0270d601610", size = 1545726 }, + { url = "https://files.pythonhosted.org/packages/55/47/8e813609a4ba6c75032bd3468f9edcad31e11906eafd0a1e5a3f3f837fba/deptry-0.20.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:012fb106dbea6ca95196cdcd75ac90c516c8f01292f7934f2e802a7cf025a660", size = 1676818 }, + { url = "https://files.pythonhosted.org/packages/b4/70/456d976912c6026252034c0cdb37a3cbad34ac0ce815763466720c63aece/deptry-0.20.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ce3920e2bd6d2b4427ab31ab8efb94bbef897001c2d395782bc30002966d12d", size = 1708051 }, + { url = "https://files.pythonhosted.org/packages/ff/66/95e04a84120861b0c0ac980999e6172612509d5ff9a84b41e2f71cc3c3c0/deptry-0.20.0-cp38-abi3-win_amd64.whl", hash = "sha256:0c90ce64e637d0e902bc97c5a020adecfee9e9f09ee0bf4c61554994139bebdb", size = 1493281 }, + { url = "https://files.pythonhosted.org/packages/53/c9/9d7d86b5fdc452b522ef16df9e27c8404dc6f231fa865a3af31c1dab7563/deptry-0.20.0-cp38-abi3-win_arm64.whl", hash = "sha256:6886ff44aaf26fd83093f14f844ebc84589d90df9bbad9a1625e8a080e6f1be2", size = 1420087 }, +] + +[[package]] +name = "dill" +version = "0.3.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/17/4d/ac7ffa80c69ea1df30a8aa11b3578692a5118e7cd1aa157e3ef73b092d15/dill-0.3.8.tar.gz", hash = "sha256:3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca", size = 184847 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c9/7a/cef76fd8438a42f96db64ddaa85280485a9c395e7df3db8158cfec1eee34/dill-0.3.8-py3-none-any.whl", hash = "sha256:c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7", size = 116252 }, +] + +[[package]] +name = "dirtyjson" +version = "1.0.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/db/04/d24f6e645ad82ba0ef092fa17d9ef7a21953781663648a01c9371d9e8e98/dirtyjson-1.0.8.tar.gz", hash = "sha256:90ca4a18f3ff30ce849d100dcf4a003953c79d3a2348ef056f1d9c22231a25fd", size = 30782 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/68/69/1bcf70f81de1b4a9f21b3a62ec0c83bdff991c88d6cc2267d02408457e88/dirtyjson-1.0.8-py3-none-any.whl", hash = "sha256:125e27248435a58acace26d5c2c4c11a1c0de0a9c5124c5a94ba78e517d74f53", size = 25197 }, +] + +[[package]] +name = "distro" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fc/f8/98eea607f65de6527f8a2e8885fc8015d3e6f5775df186e443e0964a11c3/distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed", size = 60722 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277 }, +] + +[[package]] +name = "dlt" +version = "1.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "fsspec" }, + { name = "gitpython" }, + { name = "giturlparse" }, + { name = "hexbytes" }, + { name = "humanize" }, + { name = "jsonpath-ng" }, + { name = "makefun" }, + { name = "orjson", marker = "platform_python_implementation != 'PyPy'" }, + { name = "packaging" }, + { name = "pathvalidate" }, + { name = "pendulum" }, + { name = "pluggy" }, + { name = "pytz" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "requirements-parser" }, + { name = "semver" }, + { name = "setuptools" }, + { name = "simplejson" }, + { name = "tenacity" }, + { name = "tomlkit" }, + { name = "typing-extensions" }, + { name = "tzdata" }, + { name = "win-precise-time", marker = "os_name == 'nt'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fc/fd/3418eebadf5f6d9e70e25fedcfb8310bf5cda415f67793710bad8a31876b/dlt-1.5.0.tar.gz", hash = "sha256:2ece1c96242699630793681f0e3b9ec8bd41c79db3de20266cde427a71869b61", size = 686543 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c3/cf/226ad6b97056409eba8c4bde9bfbb270dbb6b0d0d42a94dfcce68da3b3df/dlt-1.5.0-py3-none-any.whl", hash = "sha256:b9eaaa4966f3f696b8ba5cb988ce3c1a1030bede0cb92ecfa75f663709a7d296", size = 868745 }, +] + +[package.optional-dependencies] +sqlalchemy = [ + { name = "alembic" }, + { name = "sqlalchemy" }, +] + +[[package]] +name = "dnspython" +version = "2.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b5/4a/263763cb2ba3816dd94b08ad3a33d5fdae34ecb856678773cc40a3605829/dnspython-2.7.0.tar.gz", hash = "sha256:ce9c432eda0dc91cf618a5cedf1a4e142651196bbcd2c80e89ed5a907e5cfaf1", size = 345197 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/68/1b/e0a87d256e40e8c888847551b20a017a6b98139178505dc7ffb96f04e954/dnspython-2.7.0-py3-none-any.whl", hash = "sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86", size = 313632 }, +] + +[[package]] +name = "docstring-parser" +version = "0.16" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/08/12/9c22a58c0b1e29271051222d8906257616da84135af9ed167c9e28f85cb3/docstring_parser-0.16.tar.gz", hash = "sha256:538beabd0af1e2db0146b6bd3caa526c35a34d61af9fd2887f3a8a27a739aa6e", size = 26565 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d5/7c/e9fcff7623954d86bdc17782036cbf715ecab1bec4847c008557affe1ca8/docstring_parser-0.16-py3-none-any.whl", hash = "sha256:bf0a1387354d3691d102edef7ec124f219ef639982d096e26e3b60aeffa90637", size = 36533 }, +] + +[[package]] +name = "docx2txt" +version = "0.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/7d/60ee3f2b16d9bfdfa72e8599470a2c1a5b759cb113c6fe1006be28359327/docx2txt-0.8.tar.gz", hash = "sha256:2c06d98d7cfe2d3947e5760a57d924e3ff07745b379c8737723922e7009236e5", size = 2814 } + +[[package]] +name = "email-validator" +version = "2.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "dnspython" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/48/ce/13508a1ec3f8bb981ae4ca79ea40384becc868bfae97fd1c942bb3a001b1/email_validator-2.2.0.tar.gz", hash = "sha256:cb690f344c617a714f22e66ae771445a1ceb46821152df8e165c5f9a364582b7", size = 48967 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/ee/bf0adb559ad3c786f12bcbc9296b3f5675f529199bef03e2df281fa1fadb/email_validator-2.2.0-py3-none-any.whl", hash = "sha256:561977c2d73ce3611850a06fa56b414621e0c8faa9d66f2611407d87465da631", size = 33521 }, +] + +[[package]] +name = "emoji" +version = "2.14.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/13/64/812d7e2ae0ac2ade0d6583f911f99240c80f700afbe8391df10e547f564d/emoji-2.14.0.tar.gz", hash = "sha256:f68ac28915a2221667cddb3e6c589303c3c6954c6c5af6fefaec7f9bdf72fdca", size = 593932 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/56/4ddf8b36aa4b52077045b17ffb8958f3360b250df4143d1482d9d5bb54d5/emoji-2.14.0-py3-none-any.whl", hash = "sha256:fcc936bf374b1aec67dda5303ae99710ba88cc9cdce2d1a71c5f2204e6d78799", size = 586897 }, +] + +[[package]] +name = "et-xmlfile" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d3/38/af70d7ab1ae9d4da450eeec1fa3918940a5fafb9055e934af8d6eb0c2313/et_xmlfile-2.0.0.tar.gz", hash = "sha256:dab3f4764309081ce75662649be815c4c9081e88f0837825f90fd28317d4da54", size = 17234 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/8b/5fe2cc11fee489817272089c4203e679c63b570a5aaeb18d852ae3cbba6a/et_xmlfile-2.0.0-py3-none-any.whl", hash = "sha256:7a91720bc756843502c3b7504c77b8fe44217c85c537d85037f0f536151b2caa", size = 18059 }, +] + +[[package]] +name = "execnet" +version = "2.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bb/ff/b4c0dc78fbe20c3e59c0c7334de0c27eb4001a2b2017999af398bf730817/execnet-2.1.1.tar.gz", hash = "sha256:5189b52c6121c24feae288166ab41b32549c7e2348652736540b9e6e7d4e72e3", size = 166524 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/09/2aea36ff60d16dd8879bdb2f5b3ee0ba8d08cbbdcdfe870e695ce3784385/execnet-2.1.1-py3-none-any.whl", hash = "sha256:26dee51f1b80cebd6d0ca8e74dd8745419761d3bef34163928cbebbdc4749fdc", size = 40612 }, +] + +[[package]] +name = "falkordb" +version = "1.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "redis" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a3/fd/8f4a6bc2965a306f55f33ef96ea970f324463c48f6041fbc451e7c64463b/falkordb-1.0.9.tar.gz", hash = "sha256:177008e63c7e4d9ebbdfeb8cad24b0e49175bb0f6e96cac9b4ffb641c0eff0f1", size = 27159 } + +[[package]] +name = "fastapi" +version = "0.109.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "starlette" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/01/d5/33a8992fe0e811211cd1cbc219cefa4732f9fb0555921346a59d1fec0040/fastapi-0.109.2.tar.gz", hash = "sha256:f3817eac96fe4f65a2ebb4baa000f394e55f5fccdaf7f75250804bc58f354f73", size = 11720963 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bf/97/60351307ab4502908d29f64f2801a36709a3f1888447bb328bc373d6ca0e/fastapi-0.109.2-py3-none-any.whl", hash = "sha256:2c9bab24667293b501cad8dd388c05240c850b58ec5876ee3283c47d6e1e3a4d", size = 92071 }, +] + +[[package]] +name = "fastapi-users" +version = "14.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "email-validator" }, + { name = "fastapi" }, + { name = "makefun" }, + { name = "pwdlib", extra = ["argon2", "bcrypt"] }, + { name = "pyjwt", extra = ["crypto"] }, + { name = "python-multipart" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6c/7b/7b07c059fed69c132741a8ea3730f304172ad789f147eed1ae4071584e62/fastapi_users-14.0.0.tar.gz", hash = "sha256:6dceefbd2db87a17f791ef431d616bb5ce40cb123da7922969b704cbee5e7384", size = 120222 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2d/06/040a09f2a0d3d10dc7dab3f38d26b3b44f1b4dff9316bad2111602847918/fastapi_users-14.0.0-py3-none-any.whl", hash = "sha256:e1230e044ddc2209b890b5b5c6fc1d13def961298d40e01c2d28f8bc2fe8c4c7", size = 38683 }, +] + +[package.optional-dependencies] +sqlalchemy = [ + { name = "fastapi-users-db-sqlalchemy" }, +] + +[[package]] +name = "fastapi-users-db-sqlalchemy" +version = "6.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "fastapi-users" }, + { name = "sqlalchemy", extra = ["asyncio"] }, +] +sdist = { url = "https://files.pythonhosted.org/packages/80/ea/ce1eb0afbced169d54621e3558c385ec0f2813e87b4b115de9cb6f4dba35/fastapi_users_db_sqlalchemy-6.0.1.tar.gz", hash = "sha256:f0ef9fe3250453712d25c13170700c80fa205867ce7add7ef391c384ec27cbe1", size = 10530 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/0b/7b0bb477b3258b1c6b6daf950694c0f8d6f62ec6a82f6f37ed5369fda01e/fastapi_users_db_sqlalchemy-6.0.1-py3-none-any.whl", hash = "sha256:d1050ec31eb75e8c4fa9abafa4addaf0baf5c97afeea2f0f910ea55e2451fcad", size = 6907 }, +] + +[[package]] +name = "filelock" +version = "3.16.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9d/db/3ef5bb276dae18d6ec2124224403d1d67bccdbefc17af4cc8f553e341ab1/filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435", size = 18037 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b9/f8/feced7779d755758a52d1f6635d990b8d98dc0a29fa568bbe0625f18fdf3/filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0", size = 16163 }, +] + +[[package]] +name = "filetype" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bb/29/745f7d30d47fe0f251d3ad3dc2978a23141917661998763bebb6da007eb1/filetype-1.2.0.tar.gz", hash = "sha256:66b56cd6474bf41d8c54660347d37afcc3f7d1970648de365c102ef77548aadb", size = 998020 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/79/1b8fa1bb3568781e84c9200f951c735f3f157429f44be0495da55894d620/filetype-1.2.0-py2.py3-none-any.whl", hash = "sha256:7ce71b6880181241cf7ac8697a2f1eb6a8bd9b429f7ad6d27b8db9ba5f1c2d25", size = 19970 }, +] + +[[package]] +name = "fonttools" +version = "4.55.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/76/61/a300d1574dc381393424047c0396a0e213db212e28361123af9830d71a8d/fonttools-4.55.3.tar.gz", hash = "sha256:3983313c2a04d6cc1fe9251f8fc647754cf49a61dac6cb1e7249ae67afaafc45", size = 3498155 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4b/18/14be25545600bd100e5b74a3ac39089b7c1cb403dc513b7ca348be3381bf/fonttools-4.55.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8c4491699bad88efe95772543cd49870cf756b019ad56294f6498982408ab03e", size = 2771005 }, + { url = "https://files.pythonhosted.org/packages/b2/51/2e1a5d3871cd7c2ae2054b54e92604e7d6abc3fd3656e9583c399648fe1c/fonttools-4.55.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5323a22eabddf4b24f66d26894f1229261021dacd9d29e89f7872dd8c63f0b8b", size = 2300654 }, + { url = "https://files.pythonhosted.org/packages/73/1a/50109bb2703bc6f774b52ea081db21edf2a9fa4b6d7485faadf9d1b997e9/fonttools-4.55.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5480673f599ad410695ca2ddef2dfefe9df779a9a5cda89503881e503c9c7d90", size = 4877541 }, + { url = "https://files.pythonhosted.org/packages/5d/52/c0b9857fa075da1b8806c5dc2d8342918a8cc2065fd14fbddb3303282693/fonttools-4.55.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da9da6d65cd7aa6b0f806556f4985bcbf603bf0c5c590e61b43aa3e5a0f822d0", size = 4906304 }, + { url = "https://files.pythonhosted.org/packages/0b/1b/55f85c7e962d295e456d5209581c919620ee3e877b95cd86245187a5050f/fonttools-4.55.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e894b5bd60d9f473bed7a8f506515549cc194de08064d829464088d23097331b", size = 4888087 }, + { url = "https://files.pythonhosted.org/packages/83/13/6f2809c612ea2ac51391f92468ff861c63473601530fca96458b453212bf/fonttools-4.55.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:aee3b57643827e237ff6ec6d28d9ff9766bd8b21e08cd13bff479e13d4b14765", size = 5056958 }, + { url = "https://files.pythonhosted.org/packages/c1/28/d0ea9e872fa4208b9dfca686e1dd9ca22f6c9ef33ecff2f0ebc2dbe7c29b/fonttools-4.55.3-cp311-cp311-win32.whl", hash = "sha256:eb6ca911c4c17eb51853143624d8dc87cdcdf12a711fc38bf5bd21521e79715f", size = 2173939 }, + { url = "https://files.pythonhosted.org/packages/be/36/d74ae1020bc41a1dff3e6f5a99f646563beecb97e386d27abdac3ba07650/fonttools-4.55.3-cp311-cp311-win_amd64.whl", hash = "sha256:6314bf82c54c53c71805318fcf6786d986461622dd926d92a465199ff54b1b72", size = 2220363 }, + { url = "https://files.pythonhosted.org/packages/89/58/fbcf5dff7e3ea844bb00c4d806ca1e339e1f2dce5529633bf4842c0c9a1f/fonttools-4.55.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f9e736f60f4911061235603a6119e72053073a12c6d7904011df2d8fad2c0e35", size = 2765380 }, + { url = "https://files.pythonhosted.org/packages/81/dd/da6e329e51919b4f421c8738f3497e2ab08c168e76aaef7b6d5351862bdf/fonttools-4.55.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7a8aa2c5e5b8b3bcb2e4538d929f6589a5c6bdb84fd16e2ed92649fb5454f11c", size = 2297940 }, + { url = "https://files.pythonhosted.org/packages/00/44/f5ee560858425c99ef07e04919e736db09d6416408e5a8d3bbfb4a6623fd/fonttools-4.55.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07f8288aacf0a38d174445fc78377a97fb0b83cfe352a90c9d9c1400571963c7", size = 4793327 }, + { url = "https://files.pythonhosted.org/packages/24/da/0a001926d791c55e29ac3c52964957a20dbc1963615446b568b7432891c3/fonttools-4.55.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8d5e8916c0970fbc0f6f1bece0063363bb5857a7f170121a4493e31c3db3314", size = 4865624 }, + { url = "https://files.pythonhosted.org/packages/3d/d8/1edd8b13a427a9fb6418373437caa586c0caa57f260af8e0548f4d11e340/fonttools-4.55.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ae3b6600565b2d80b7c05acb8e24d2b26ac407b27a3f2e078229721ba5698427", size = 4774166 }, + { url = "https://files.pythonhosted.org/packages/9c/ec/ade054097976c3d6debc9032e09a351505a0196aa5493edf021be376f75e/fonttools-4.55.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:54153c49913f45065c8d9e6d0c101396725c5621c8aee744719300f79771d75a", size = 5001832 }, + { url = "https://files.pythonhosted.org/packages/e2/cd/233f0e31ad799bb91fc78099c8b4e5ec43b85a131688519640d6bae46f6a/fonttools-4.55.3-cp312-cp312-win32.whl", hash = "sha256:827e95fdbbd3e51f8b459af5ea10ecb4e30af50221ca103bea68218e9615de07", size = 2162228 }, + { url = "https://files.pythonhosted.org/packages/46/45/a498b5291f6c0d91b2394b1ed7447442a57d1c9b9cf8f439aee3c316a56e/fonttools-4.55.3-cp312-cp312-win_amd64.whl", hash = "sha256:e6e8766eeeb2de759e862004aa11a9ea3d6f6d5ec710551a88b476192b64fd54", size = 2209118 }, + { url = "https://files.pythonhosted.org/packages/9c/9f/00142a19bad96eeeb1aed93f567adc19b7f2c1af6f5bc0a1c3de90b4b1ac/fonttools-4.55.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a430178ad3e650e695167cb53242dae3477b35c95bef6525b074d87493c4bf29", size = 2752812 }, + { url = "https://files.pythonhosted.org/packages/b0/20/14b8250d63ba65e162091fb0dda07730f90c303bbf5257e9ddacec7230d9/fonttools-4.55.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:529cef2ce91dc44f8e407cc567fae6e49a1786f2fefefa73a294704c415322a4", size = 2291521 }, + { url = "https://files.pythonhosted.org/packages/34/47/a681cfd10245eb74f65e491a934053ec75c4af639655446558f29818e45e/fonttools-4.55.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e75f12c82127486fac2d8bfbf5bf058202f54bf4f158d367e41647b972342ca", size = 4770980 }, + { url = "https://files.pythonhosted.org/packages/d2/6c/a7066afc19db0705a12efd812e19c32cde2b9514eb714659522f2ebd60b6/fonttools-4.55.3-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:859c358ebf41db18fb72342d3080bce67c02b39e86b9fbcf1610cca14984841b", size = 4845534 }, + { url = "https://files.pythonhosted.org/packages/0c/a2/3c204fbabbfd845d9bdcab9ae35279d41e9a4bf5c80a0a2708f9c5a195d6/fonttools-4.55.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:546565028e244a701f73df6d8dd6be489d01617863ec0c6a42fa25bf45d43048", size = 4753910 }, + { url = "https://files.pythonhosted.org/packages/6e/8c/b4cb3592880340b89e4ef6601b531780bba73862332a6451d78fe135d6cb/fonttools-4.55.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:aca318b77f23523309eec4475d1fbbb00a6b133eb766a8bdc401faba91261abe", size = 4976411 }, + { url = "https://files.pythonhosted.org/packages/fc/a8/4bf98840ff89fcc188470b59daec57322178bf36d2f4f756cd19a42a826b/fonttools-4.55.3-cp313-cp313-win32.whl", hash = "sha256:8c5ec45428edaa7022f1c949a632a6f298edc7b481312fc7dc258921e9399628", size = 2160178 }, + { url = "https://files.pythonhosted.org/packages/e6/57/4cc35004605416df3225ff362f3455cf09765db00df578ae9e46d0fefd23/fonttools-4.55.3-cp313-cp313-win_amd64.whl", hash = "sha256:11e5de1ee0d95af4ae23c1a138b184b7f06e0b6abacabf1d0db41c90b03d834b", size = 2206102 }, + { url = "https://files.pythonhosted.org/packages/99/3b/406d17b1f63e04a82aa621936e6e1c53a8c05458abd66300ac85ea7f9ae9/fonttools-4.55.3-py3-none-any.whl", hash = "sha256:f412604ccbeee81b091b420272841e5ec5ef68967a9790e80bffd0e30b8e2977", size = 1111638 }, +] + +[[package]] +name = "frozenlist" +version = "1.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8f/ed/0f4cec13a93c02c47ec32d81d11c0c1efbadf4a471e3f3ce7cad366cbbd3/frozenlist-1.5.0.tar.gz", hash = "sha256:81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817", size = 39930 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/79/43/0bed28bf5eb1c9e4301003b74453b8e7aa85fb293b31dde352aac528dafc/frozenlist-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fd74520371c3c4175142d02a976aee0b4cb4a7cc912a60586ffd8d5929979b30", size = 94987 }, + { url = "https://files.pythonhosted.org/packages/bb/bf/b74e38f09a246e8abbe1e90eb65787ed745ccab6eaa58b9c9308e052323d/frozenlist-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2f3f7a0fbc219fb4455264cae4d9f01ad41ae6ee8524500f381de64ffaa077d5", size = 54584 }, + { url = "https://files.pythonhosted.org/packages/2c/31/ab01375682f14f7613a1ade30149f684c84f9b8823a4391ed950c8285656/frozenlist-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f47c9c9028f55a04ac254346e92977bf0f166c483c74b4232bee19a6697e4778", size = 52499 }, + { url = "https://files.pythonhosted.org/packages/98/a8/d0ac0b9276e1404f58fec3ab6e90a4f76b778a49373ccaf6a563f100dfbc/frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0996c66760924da6e88922756d99b47512a71cfd45215f3570bf1e0b694c206a", size = 276357 }, + { url = "https://files.pythonhosted.org/packages/ad/c9/c7761084fa822f07dac38ac29f841d4587570dd211e2262544aa0b791d21/frozenlist-1.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2fe128eb4edeabe11896cb6af88fca5346059f6c8d807e3b910069f39157869", size = 287516 }, + { url = "https://files.pythonhosted.org/packages/a1/ff/cd7479e703c39df7bdab431798cef89dc75010d8aa0ca2514c5b9321db27/frozenlist-1.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8ea951bbb6cacd492e3948b8da8c502a3f814f5d20935aae74b5df2b19cf3d", size = 283131 }, + { url = "https://files.pythonhosted.org/packages/59/a0/370941beb47d237eca4fbf27e4e91389fd68699e6f4b0ebcc95da463835b/frozenlist-1.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de537c11e4aa01d37db0d403b57bd6f0546e71a82347a97c6a9f0dcc532b3a45", size = 261320 }, + { url = "https://files.pythonhosted.org/packages/b8/5f/c10123e8d64867bc9b4f2f510a32042a306ff5fcd7e2e09e5ae5100ee333/frozenlist-1.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c2623347b933fcb9095841f1cc5d4ff0b278addd743e0e966cb3d460278840d", size = 274877 }, + { url = "https://files.pythonhosted.org/packages/fa/79/38c505601ae29d4348f21706c5d89755ceded02a745016ba2f58bd5f1ea6/frozenlist-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cee6798eaf8b1416ef6909b06f7dc04b60755206bddc599f52232606e18179d3", size = 269592 }, + { url = "https://files.pythonhosted.org/packages/19/e2/39f3a53191b8204ba9f0bb574b926b73dd2efba2a2b9d2d730517e8f7622/frozenlist-1.5.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f5f9da7f5dbc00a604fe74aa02ae7c98bcede8a3b8b9666f9f86fc13993bc71a", size = 265934 }, + { url = "https://files.pythonhosted.org/packages/d5/c9/3075eb7f7f3a91f1a6b00284af4de0a65a9ae47084930916f5528144c9dd/frozenlist-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:90646abbc7a5d5c7c19461d2e3eeb76eb0b204919e6ece342feb6032c9325ae9", size = 283859 }, + { url = "https://files.pythonhosted.org/packages/05/f5/549f44d314c29408b962fa2b0e69a1a67c59379fb143b92a0a065ffd1f0f/frozenlist-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bdac3c7d9b705d253b2ce370fde941836a5f8b3c5c2b8fd70940a3ea3af7f4f2", size = 287560 }, + { url = "https://files.pythonhosted.org/packages/9d/f8/cb09b3c24a3eac02c4c07a9558e11e9e244fb02bf62c85ac2106d1eb0c0b/frozenlist-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03d33c2ddbc1816237a67f66336616416e2bbb6beb306e5f890f2eb22b959cdf", size = 277150 }, + { url = "https://files.pythonhosted.org/packages/37/48/38c2db3f54d1501e692d6fe058f45b6ad1b358d82cd19436efab80cfc965/frozenlist-1.5.0-cp311-cp311-win32.whl", hash = "sha256:237f6b23ee0f44066219dae14c70ae38a63f0440ce6750f868ee08775073f942", size = 45244 }, + { url = "https://files.pythonhosted.org/packages/ca/8c/2ddffeb8b60a4bce3b196c32fcc30d8830d4615e7b492ec2071da801b8ad/frozenlist-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:0cc974cc93d32c42e7b0f6cf242a6bd941c57c61b618e78b6c0a96cb72788c1d", size = 51634 }, + { url = "https://files.pythonhosted.org/packages/79/73/fa6d1a96ab7fd6e6d1c3500700963eab46813847f01ef0ccbaa726181dd5/frozenlist-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:31115ba75889723431aa9a4e77d5f398f5cf976eea3bdf61749731f62d4a4a21", size = 94026 }, + { url = "https://files.pythonhosted.org/packages/ab/04/ea8bf62c8868b8eada363f20ff1b647cf2e93377a7b284d36062d21d81d1/frozenlist-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7437601c4d89d070eac8323f121fcf25f88674627505334654fd027b091db09d", size = 54150 }, + { url = "https://files.pythonhosted.org/packages/d0/9a/8e479b482a6f2070b26bda572c5e6889bb3ba48977e81beea35b5ae13ece/frozenlist-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7948140d9f8ece1745be806f2bfdf390127cf1a763b925c4a805c603df5e697e", size = 51927 }, + { url = "https://files.pythonhosted.org/packages/e3/12/2aad87deb08a4e7ccfb33600871bbe8f0e08cb6d8224371387f3303654d7/frozenlist-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feeb64bc9bcc6b45c6311c9e9b99406660a9c05ca8a5b30d14a78555088b0b3a", size = 282647 }, + { url = "https://files.pythonhosted.org/packages/77/f2/07f06b05d8a427ea0060a9cef6e63405ea9e0d761846b95ef3fb3be57111/frozenlist-1.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:683173d371daad49cffb8309779e886e59c2f369430ad28fe715f66d08d4ab1a", size = 289052 }, + { url = "https://files.pythonhosted.org/packages/bd/9f/8bf45a2f1cd4aa401acd271b077989c9267ae8463e7c8b1eb0d3f561b65e/frozenlist-1.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7d57d8f702221405a9d9b40f9da8ac2e4a1a8b5285aac6100f3393675f0a85ee", size = 291719 }, + { url = "https://files.pythonhosted.org/packages/41/d1/1f20fd05a6c42d3868709b7604c9f15538a29e4f734c694c6bcfc3d3b935/frozenlist-1.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c72000fbcc35b129cb09956836c7d7abf78ab5416595e4857d1cae8d6251a6", size = 267433 }, + { url = "https://files.pythonhosted.org/packages/af/f2/64b73a9bb86f5a89fb55450e97cd5c1f84a862d4ff90d9fd1a73ab0f64a5/frozenlist-1.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000a77d6034fbad9b6bb880f7ec073027908f1b40254b5d6f26210d2dab1240e", size = 283591 }, + { url = "https://files.pythonhosted.org/packages/29/e2/ffbb1fae55a791fd6c2938dd9ea779509c977435ba3940b9f2e8dc9d5316/frozenlist-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d7f5a50342475962eb18b740f3beecc685a15b52c91f7d975257e13e029eca9", size = 273249 }, + { url = "https://files.pythonhosted.org/packages/2e/6e/008136a30798bb63618a114b9321b5971172a5abddff44a100c7edc5ad4f/frozenlist-1.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:87f724d055eb4785d9be84e9ebf0f24e392ddfad00b3fe036e43f489fafc9039", size = 271075 }, + { url = "https://files.pythonhosted.org/packages/ae/f0/4e71e54a026b06724cec9b6c54f0b13a4e9e298cc8db0f82ec70e151f5ce/frozenlist-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6e9080bb2fb195a046e5177f10d9d82b8a204c0736a97a153c2466127de87784", size = 285398 }, + { url = "https://files.pythonhosted.org/packages/4d/36/70ec246851478b1c0b59f11ef8ade9c482ff447c1363c2bd5fad45098b12/frozenlist-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b93d7aaa36c966fa42efcaf716e6b3900438632a626fb09c049f6a2f09fc631", size = 294445 }, + { url = "https://files.pythonhosted.org/packages/37/e0/47f87544055b3349b633a03c4d94b405956cf2437f4ab46d0928b74b7526/frozenlist-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:52ef692a4bc60a6dd57f507429636c2af8b6046db8b31b18dac02cbc8f507f7f", size = 280569 }, + { url = "https://files.pythonhosted.org/packages/f9/7c/490133c160fb6b84ed374c266f42800e33b50c3bbab1652764e6e1fc498a/frozenlist-1.5.0-cp312-cp312-win32.whl", hash = "sha256:29d94c256679247b33a3dc96cce0f93cbc69c23bf75ff715919332fdbb6a32b8", size = 44721 }, + { url = "https://files.pythonhosted.org/packages/b1/56/4e45136ffc6bdbfa68c29ca56ef53783ef4c2fd395f7cbf99a2624aa9aaa/frozenlist-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:8969190d709e7c48ea386db202d708eb94bdb29207a1f269bab1196ce0dcca1f", size = 51329 }, + { url = "https://files.pythonhosted.org/packages/da/3b/915f0bca8a7ea04483622e84a9bd90033bab54bdf485479556c74fd5eaf5/frozenlist-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7a1a048f9215c90973402e26c01d1cff8a209e1f1b53f72b95c13db61b00f953", size = 91538 }, + { url = "https://files.pythonhosted.org/packages/c7/d1/a7c98aad7e44afe5306a2b068434a5830f1470675f0e715abb86eb15f15b/frozenlist-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dd47a5181ce5fcb463b5d9e17ecfdb02b678cca31280639255ce9d0e5aa67af0", size = 52849 }, + { url = "https://files.pythonhosted.org/packages/3a/c8/76f23bf9ab15d5f760eb48701909645f686f9c64fbb8982674c241fbef14/frozenlist-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1431d60b36d15cda188ea222033eec8e0eab488f39a272461f2e6d9e1a8e63c2", size = 50583 }, + { url = "https://files.pythonhosted.org/packages/1f/22/462a3dd093d11df623179d7754a3b3269de3b42de2808cddef50ee0f4f48/frozenlist-1.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6482a5851f5d72767fbd0e507e80737f9c8646ae7fd303def99bfe813f76cf7f", size = 265636 }, + { url = "https://files.pythonhosted.org/packages/80/cf/e075e407fc2ae7328155a1cd7e22f932773c8073c1fc78016607d19cc3e5/frozenlist-1.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44c49271a937625619e862baacbd037a7ef86dd1ee215afc298a417ff3270608", size = 270214 }, + { url = "https://files.pythonhosted.org/packages/a1/58/0642d061d5de779f39c50cbb00df49682832923f3d2ebfb0fedf02d05f7f/frozenlist-1.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12f78f98c2f1c2429d42e6a485f433722b0061d5c0b0139efa64f396efb5886b", size = 273905 }, + { url = "https://files.pythonhosted.org/packages/ab/66/3fe0f5f8f2add5b4ab7aa4e199f767fd3b55da26e3ca4ce2cc36698e50c4/frozenlist-1.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce3aa154c452d2467487765e3adc730a8c153af77ad84096bc19ce19a2400840", size = 250542 }, + { url = "https://files.pythonhosted.org/packages/f6/b8/260791bde9198c87a465224e0e2bb62c4e716f5d198fc3a1dacc4895dbd1/frozenlist-1.5.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b7dc0c4338e6b8b091e8faf0db3168a37101943e687f373dce00959583f7439", size = 267026 }, + { url = "https://files.pythonhosted.org/packages/2e/a4/3d24f88c527f08f8d44ade24eaee83b2627793fa62fa07cbb7ff7a2f7d42/frozenlist-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45e0896250900b5aa25180f9aec243e84e92ac84bd4a74d9ad4138ef3f5c97de", size = 257690 }, + { url = "https://files.pythonhosted.org/packages/de/9a/d311d660420b2beeff3459b6626f2ab4fb236d07afbdac034a4371fe696e/frozenlist-1.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:561eb1c9579d495fddb6da8959fd2a1fca2c6d060d4113f5844b433fc02f2641", size = 253893 }, + { url = "https://files.pythonhosted.org/packages/c6/23/e491aadc25b56eabd0f18c53bb19f3cdc6de30b2129ee0bc39cd387cd560/frozenlist-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:df6e2f325bfee1f49f81aaac97d2aa757c7646534a06f8f577ce184afe2f0a9e", size = 267006 }, + { url = "https://files.pythonhosted.org/packages/08/c4/ab918ce636a35fb974d13d666dcbe03969592aeca6c3ab3835acff01f79c/frozenlist-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:140228863501b44b809fb39ec56b5d4071f4d0aa6d216c19cbb08b8c5a7eadb9", size = 276157 }, + { url = "https://files.pythonhosted.org/packages/c0/29/3b7a0bbbbe5a34833ba26f686aabfe982924adbdcafdc294a7a129c31688/frozenlist-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7707a25d6a77f5d27ea7dc7d1fc608aa0a478193823f88511ef5e6b8a48f9d03", size = 264642 }, + { url = "https://files.pythonhosted.org/packages/ab/42/0595b3dbffc2e82d7fe658c12d5a5bafcd7516c6bf2d1d1feb5387caa9c1/frozenlist-1.5.0-cp313-cp313-win32.whl", hash = "sha256:31a9ac2b38ab9b5a8933b693db4939764ad3f299fcaa931a3e605bc3460e693c", size = 44914 }, + { url = "https://files.pythonhosted.org/packages/17/c4/b7db1206a3fea44bf3b838ca61deb6f74424a8a5db1dd53ecb21da669be6/frozenlist-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:11aabdd62b8b9c4b84081a3c246506d1cddd2dd93ff0ad53ede5defec7886b28", size = 51167 }, + { url = "https://files.pythonhosted.org/packages/c6/c8/a5be5b7550c10858fcf9b0ea054baccab474da77d37f1e828ce043a3a5d4/frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3", size = 11901 }, +] + +[[package]] +name = "fsspec" +version = "2024.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/62/7c/12b0943011daaaa9c35c2a2e22e5eb929ac90002f08f1259d69aedad84de/fsspec-2024.9.0.tar.gz", hash = "sha256:4b0afb90c2f21832df142f292649035d80b421f60a9e1c027802e5a0da2b04e8", size = 286206 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/a0/6aaea0c2fbea2f89bfd5db25fb1e3481896a423002ebe4e55288907a97a3/fsspec-2024.9.0-py3-none-any.whl", hash = "sha256:a0947d552d8a6efa72cc2c730b12c41d043509156966cca4fb157b0f2a0c574b", size = 179253 }, +] + +[package.optional-dependencies] +http = [ + { name = "aiohttp" }, +] + +[[package]] +name = "gitdb" +version = "4.0.11" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "smmap" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/0d/bbb5b5ee188dec84647a4664f3e11b06ade2bde568dbd489d9d64adef8ed/gitdb-4.0.11.tar.gz", hash = "sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b", size = 394469 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fd/5b/8f0c4a5bb9fd491c277c21eff7ccae71b47d43c4446c9d0c6cff2fe8c2c4/gitdb-4.0.11-py3-none-any.whl", hash = "sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4", size = 62721 }, +] + +[[package]] +name = "gitpython" +version = "3.1.43" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "gitdb" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b6/a1/106fd9fa2dd989b6fb36e5893961f82992cf676381707253e0bf93eb1662/GitPython-3.1.43.tar.gz", hash = "sha256:35f314a9f878467f5453cc1fee295c3e18e52f1b99f10f6cf5b1682e968a9e7c", size = 214149 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/bd/cc3a402a6439c15c3d4294333e13042b915bbeab54edc457c723931fed3f/GitPython-3.1.43-py3-none-any.whl", hash = "sha256:eec7ec56b92aad751f9912a73404bc02ba212a23adb2c7098ee668417051a1ff", size = 207337 }, +] + +[[package]] +name = "giturlparse" +version = "0.12.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/37/5f/543dc54c82842376139748226e5aa61eb95093992f63dd495af9c6b4f076/giturlparse-0.12.0.tar.gz", hash = "sha256:c0fff7c21acc435491b1779566e038757a205c1ffdcb47e4f81ea52ad8c3859a", size = 14907 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dd/94/c6ff3388b8e3225a014e55aed957188639aa0966443e0408d38f0c9614a7/giturlparse-0.12.0-py2.py3-none-any.whl", hash = "sha256:412b74f2855f1da2fefa89fd8dde62df48476077a72fc19b62039554d27360eb", size = 15752 }, +] + +[[package]] +name = "googleapis-common-protos" +version = "1.66.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "protobuf" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ff/a7/8e9cccdb1c49870de6faea2a2764fa23f627dd290633103540209f03524c/googleapis_common_protos-1.66.0.tar.gz", hash = "sha256:c3e7b33d15fdca5374cc0a7346dd92ffa847425cc4ea941d970f13680052ec8c", size = 114376 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/0f/c0713fb2b3d28af4b2fded3291df1c4d4f79a00d15c2374a9e010870016c/googleapis_common_protos-1.66.0-py2.py3-none-any.whl", hash = "sha256:d7abcd75fabb2e0ec9f74466401f6c119a0b498e27370e9be4c94cb7e382b8ed", size = 221682 }, +] + +[[package]] +name = "graphistry" +version = "0.33.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "packaging" }, + { name = "palettable" }, + { name = "pandas" }, + { name = "pyarrow" }, + { name = "requests" }, + { name = "setuptools" }, + { name = "squarify" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a5/61/44e930197b1c46ab8d36721993845095923b3198b2907de55628298a2b40/graphistry-0.33.9.tar.gz", hash = "sha256:40c095ae0ad4143d686b3802495c643a3decb4d663e0038aa6645c06c95d4d0b", size = 276060 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/ba/5b5e6f4b2caa8efc2b851f4b4ff64e90203d5756cca123136ec495d2ee67/graphistry-0.33.9-py3-none-any.whl", hash = "sha256:6952d96a0dfd77d7b7498f93a4986ea2189cb62553d4a27df18f02106ea4db99", size = 250452 }, +] + +[[package]] +name = "greenlet" +version = "3.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2f/ff/df5fede753cc10f6a5be0931204ea30c35fa2f2ea7a35b25bdaf4fe40e46/greenlet-3.1.1.tar.gz", hash = "sha256:4ce3ac6cdb6adf7946475d7ef31777c26d94bccc377e070a7986bd2d5c515467", size = 186022 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/28/62/1c2665558618553c42922ed47a4e6d6527e2fa3516a8256c2f431c5d0441/greenlet-3.1.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:e4d333e558953648ca09d64f13e6d8f0523fa705f51cae3f03b5983489958c70", size = 272479 }, + { url = "https://files.pythonhosted.org/packages/76/9d/421e2d5f07285b6e4e3a676b016ca781f63cfe4a0cd8eaecf3fd6f7a71ae/greenlet-3.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09fc016b73c94e98e29af67ab7b9a879c307c6731a2c9da0db5a7d9b7edd1159", size = 640404 }, + { url = "https://files.pythonhosted.org/packages/e5/de/6e05f5c59262a584e502dd3d261bbdd2c97ab5416cc9c0b91ea38932a901/greenlet-3.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d5e975ca70269d66d17dd995dafc06f1b06e8cb1ec1e9ed54c1d1e4a7c4cf26e", size = 652813 }, + { url = "https://files.pythonhosted.org/packages/49/93/d5f93c84241acdea15a8fd329362c2c71c79e1a507c3f142a5d67ea435ae/greenlet-3.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b2813dc3de8c1ee3f924e4d4227999285fd335d1bcc0d2be6dc3f1f6a318ec1", size = 648517 }, + { url = "https://files.pythonhosted.org/packages/15/85/72f77fc02d00470c86a5c982b8daafdf65d38aefbbe441cebff3bf7037fc/greenlet-3.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e347b3bfcf985a05e8c0b7d462ba6f15b1ee1c909e2dcad795e49e91b152c383", size = 647831 }, + { url = "https://files.pythonhosted.org/packages/f7/4b/1c9695aa24f808e156c8f4813f685d975ca73c000c2a5056c514c64980f6/greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e8f8c9cb53cdac7ba9793c276acd90168f416b9ce36799b9b885790f8ad6c0a", size = 602413 }, + { url = "https://files.pythonhosted.org/packages/76/70/ad6e5b31ef330f03b12559d19fda2606a522d3849cde46b24f223d6d1619/greenlet-3.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:62ee94988d6b4722ce0028644418d93a52429e977d742ca2ccbe1c4f4a792511", size = 1129619 }, + { url = "https://files.pythonhosted.org/packages/f4/fb/201e1b932e584066e0f0658b538e73c459b34d44b4bd4034f682423bc801/greenlet-3.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1776fd7f989fc6b8d8c8cb8da1f6b82c5814957264d1f6cf818d475ec2bf6395", size = 1155198 }, + { url = "https://files.pythonhosted.org/packages/12/da/b9ed5e310bb8b89661b80cbcd4db5a067903bbcd7fc854923f5ebb4144f0/greenlet-3.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:48ca08c771c268a768087b408658e216133aecd835c0ded47ce955381105ba39", size = 298930 }, + { url = "https://files.pythonhosted.org/packages/7d/ec/bad1ac26764d26aa1353216fcbfa4670050f66d445448aafa227f8b16e80/greenlet-3.1.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:4afe7ea89de619adc868e087b4d2359282058479d7cfb94970adf4b55284574d", size = 274260 }, + { url = "https://files.pythonhosted.org/packages/66/d4/c8c04958870f482459ab5956c2942c4ec35cac7fe245527f1039837c17a9/greenlet-3.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f406b22b7c9a9b4f8aa9d2ab13d6ae0ac3e85c9a809bd590ad53fed2bf70dc79", size = 649064 }, + { url = "https://files.pythonhosted.org/packages/51/41/467b12a8c7c1303d20abcca145db2be4e6cd50a951fa30af48b6ec607581/greenlet-3.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c3a701fe5a9695b238503ce5bbe8218e03c3bcccf7e204e455e7462d770268aa", size = 663420 }, + { url = "https://files.pythonhosted.org/packages/27/8f/2a93cd9b1e7107d5c7b3b7816eeadcac2ebcaf6d6513df9abaf0334777f6/greenlet-3.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2846930c65b47d70b9d178e89c7e1a69c95c1f68ea5aa0a58646b7a96df12441", size = 658035 }, + { url = "https://files.pythonhosted.org/packages/57/5c/7c6f50cb12be092e1dccb2599be5a942c3416dbcfb76efcf54b3f8be4d8d/greenlet-3.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99cfaa2110534e2cf3ba31a7abcac9d328d1d9f1b95beede58294a60348fba36", size = 660105 }, + { url = "https://files.pythonhosted.org/packages/f1/66/033e58a50fd9ec9df00a8671c74f1f3a320564c6415a4ed82a1c651654ba/greenlet-3.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1443279c19fca463fc33e65ef2a935a5b09bb90f978beab37729e1c3c6c25fe9", size = 613077 }, + { url = "https://files.pythonhosted.org/packages/19/c5/36384a06f748044d06bdd8776e231fadf92fc896bd12cb1c9f5a1bda9578/greenlet-3.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b7cede291382a78f7bb5f04a529cb18e068dd29e0fb27376074b6d0317bf4dd0", size = 1135975 }, + { url = "https://files.pythonhosted.org/packages/38/f9/c0a0eb61bdf808d23266ecf1d63309f0e1471f284300ce6dac0ae1231881/greenlet-3.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:23f20bb60ae298d7d8656c6ec6db134bca379ecefadb0b19ce6f19d1f232a942", size = 1163955 }, + { url = "https://files.pythonhosted.org/packages/43/21/a5d9df1d21514883333fc86584c07c2b49ba7c602e670b174bd73cfc9c7f/greenlet-3.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:7124e16b4c55d417577c2077be379514321916d5790fa287c9ed6f23bd2ffd01", size = 299655 }, + { url = "https://files.pythonhosted.org/packages/f3/57/0db4940cd7bb461365ca8d6fd53e68254c9dbbcc2b452e69d0d41f10a85e/greenlet-3.1.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:05175c27cb459dcfc05d026c4232f9de8913ed006d42713cb8a5137bd49375f1", size = 272990 }, + { url = "https://files.pythonhosted.org/packages/1c/ec/423d113c9f74e5e402e175b157203e9102feeb7088cee844d735b28ef963/greenlet-3.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:935e943ec47c4afab8965954bf49bfa639c05d4ccf9ef6e924188f762145c0ff", size = 649175 }, + { url = "https://files.pythonhosted.org/packages/a9/46/ddbd2db9ff209186b7b7c621d1432e2f21714adc988703dbdd0e65155c77/greenlet-3.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:667a9706c970cb552ede35aee17339a18e8f2a87a51fba2ed39ceeeb1004798a", size = 663425 }, + { url = "https://files.pythonhosted.org/packages/bc/f9/9c82d6b2b04aa37e38e74f0c429aece5eeb02bab6e3b98e7db89b23d94c6/greenlet-3.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8a678974d1f3aa55f6cc34dc480169d58f2e6d8958895d68845fa4ab566509e", size = 657736 }, + { url = "https://files.pythonhosted.org/packages/d9/42/b87bc2a81e3a62c3de2b0d550bf91a86939442b7ff85abb94eec3fc0e6aa/greenlet-3.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efc0f674aa41b92da8c49e0346318c6075d734994c3c4e4430b1c3f853e498e4", size = 660347 }, + { url = "https://files.pythonhosted.org/packages/37/fa/71599c3fd06336cdc3eac52e6871cfebab4d9d70674a9a9e7a482c318e99/greenlet-3.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0153404a4bb921f0ff1abeb5ce8a5131da56b953eda6e14b88dc6bbc04d2049e", size = 615583 }, + { url = "https://files.pythonhosted.org/packages/4e/96/e9ef85de031703ee7a4483489b40cf307f93c1824a02e903106f2ea315fe/greenlet-3.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:275f72decf9932639c1c6dd1013a1bc266438eb32710016a1c742df5da6e60a1", size = 1133039 }, + { url = "https://files.pythonhosted.org/packages/87/76/b2b6362accd69f2d1889db61a18c94bc743e961e3cab344c2effaa4b4a25/greenlet-3.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c4aab7f6381f38a4b42f269057aee279ab0fc7bf2e929e3d4abfae97b682a12c", size = 1160716 }, + { url = "https://files.pythonhosted.org/packages/1f/1b/54336d876186920e185066d8c3024ad55f21d7cc3683c856127ddb7b13ce/greenlet-3.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:b42703b1cf69f2aa1df7d1030b9d77d3e584a70755674d60e710f0af570f3761", size = 299490 }, + { url = "https://files.pythonhosted.org/packages/5f/17/bea55bf36990e1638a2af5ba10c1640273ef20f627962cf97107f1e5d637/greenlet-3.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1695e76146579f8c06c1509c7ce4dfe0706f49c6831a817ac04eebb2fd02011", size = 643731 }, + { url = "https://files.pythonhosted.org/packages/78/d2/aa3d2157f9ab742a08e0fd8f77d4699f37c22adfbfeb0c610a186b5f75e0/greenlet-3.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7876452af029456b3f3549b696bb36a06db7c90747740c5302f74a9e9fa14b13", size = 649304 }, + { url = "https://files.pythonhosted.org/packages/f1/8e/d0aeffe69e53ccff5a28fa86f07ad1d2d2d6537a9506229431a2a02e2f15/greenlet-3.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ead44c85f8ab905852d3de8d86f6f8baf77109f9da589cb4fa142bd3b57b475", size = 646537 }, + { url = "https://files.pythonhosted.org/packages/05/79/e15408220bbb989469c8871062c97c6c9136770657ba779711b90870d867/greenlet-3.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8320f64b777d00dd7ccdade271eaf0cad6636343293a25074cc5566160e4de7b", size = 642506 }, + { url = "https://files.pythonhosted.org/packages/18/87/470e01a940307796f1d25f8167b551a968540fbe0551c0ebb853cb527dd6/greenlet-3.1.1-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6510bf84a6b643dabba74d3049ead221257603a253d0a9873f55f6a59a65f822", size = 602753 }, + { url = "https://files.pythonhosted.org/packages/e2/72/576815ba674eddc3c25028238f74d7b8068902b3968cbe456771b166455e/greenlet-3.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:04b013dc07c96f83134b1e99888e7a79979f1a247e2a9f59697fa14b5862ed01", size = 1122731 }, + { url = "https://files.pythonhosted.org/packages/ac/38/08cc303ddddc4b3d7c628c3039a61a3aae36c241ed01393d00c2fd663473/greenlet-3.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:411f015496fec93c1c8cd4e5238da364e1da7a124bcb293f085bf2860c32c6f6", size = 1142112 }, +] + +[[package]] +name = "groq" +version = "0.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "distro" }, + { name = "httpx" }, + { name = "pydantic" }, + { name = "sniffio" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d0/0f/8e58cd93839ce90df1dad812a5c793d9dcd511fe1eae26552264549d7d2d/groq-0.8.0.tar.gz", hash = "sha256:37ceb2f706bd516d0bfcac8e89048a24b375172987a0d6bd9efb521c54f6deff", size = 69423 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/e4/835f485c6b3268fbc52687481dd574d785b6500384b150196686d78f4cdf/groq-0.8.0-py3-none-any.whl", hash = "sha256:f5e4e892d45001241a930db451e633ca1f0007e3f749deaa5d7360062fcd61e3", size = 105391 }, +] + +[[package]] +name = "grpcio" +version = "1.60.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/6d/919fd5886882c066122e69fbd938c1df2dc0aa22ab8de3e047c6aff5ac58/grpcio-1.60.1.tar.gz", hash = "sha256:dd1d3a8d1d2e50ad9b59e10aa7f07c7d1be2b367f3f2d33c5fade96ed5460962", size = 24771788 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/4f/2d27f7cc911675b717cd5b0e948e38b35a707a9d669b7a5691b9cb4a1311/grpcio-1.60.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:79ae0dc785504cb1e1788758c588c711f4e4a0195d70dff53db203c95a0bd303", size = 100133807 }, + { url = "https://files.pythonhosted.org/packages/ec/d5/c3ddb54b39ce43d21428407eb26cf9a21fd43de5e26d9733b1f173d57475/grpcio-1.60.1-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:4eec8b8c1c2c9b7125508ff7c89d5701bf933c99d3910e446ed531cd16ad5d87", size = 9649624 }, + { url = "https://files.pythonhosted.org/packages/f3/2c/ce6dbceff6c6009dedc53da3e5b0dfb6508fed730e9f56facd29d31a907d/grpcio-1.60.1-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:8c9554ca8e26241dabe7951aa1fa03a1ba0856688ecd7e7bdbdd286ebc272e4c", size = 5120377 }, + { url = "https://files.pythonhosted.org/packages/11/e2/fa35dc459bf6728cd427ff6b343fdea8547275a6259fd99db235b6b9e6d4/grpcio-1.60.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:91422ba785a8e7a18725b1dc40fbd88f08a5bb4c7f1b3e8739cab24b04fa8a03", size = 5625775 }, + { url = "https://files.pythonhosted.org/packages/b8/c7/44201b27a9be0af7f997881904ce878a09a7fe95fc2e273d2f92b7b5b373/grpcio-1.60.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cba6209c96828711cb7c8fcb45ecef8c8859238baf15119daa1bef0f6c84bfe7", size = 5354820 }, + { url = "https://files.pythonhosted.org/packages/fa/6a/29a156cbda536a7a0b78d39bbe8d832c296d0ef751e14f8c335af4c6e921/grpcio-1.60.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c71be3f86d67d8d1311c6076a4ba3b75ba5703c0b856b4e691c9097f9b1e8bd2", size = 5908056 }, + { url = "https://files.pythonhosted.org/packages/1c/a3/7e9770256d19190635af04203597f656b17e67e292781fc176e96b416274/grpcio-1.60.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:af5ef6cfaf0d023c00002ba25d0751e5995fa0e4c9eec6cd263c30352662cbce", size = 5604829 }, + { url = "https://files.pythonhosted.org/packages/5f/dd/a2d8bdac8b5c5f9b3b15738e69631dddf7d3372c978a983ee51d56bc3a9f/grpcio-1.60.1-cp311-cp311-win32.whl", hash = "sha256:a09506eb48fa5493c58f946c46754ef22f3ec0df64f2b5149373ff31fb67f3dd", size = 3127921 }, + { url = "https://files.pythonhosted.org/packages/7b/3e/a22e7a0ec6be5454dc540063ac5d0843eb72a4641a0892b54b16b1438c0a/grpcio-1.60.1-cp311-cp311-win_amd64.whl", hash = "sha256:49c9b6a510e3ed8df5f6f4f3c34d7fbf2d2cae048ee90a45cd7415abab72912c", size = 3699377 }, + { url = "https://files.pythonhosted.org/packages/b6/6b/541f0e68a7682c7c5c86bba148a032f5e70907a9b2f7b11bbc79f796e949/grpcio-1.60.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:b58b855d0071575ea9c7bc0d84a06d2edfbfccec52e9657864386381a7ce1ae9", size = 100617927 }, + { url = "https://files.pythonhosted.org/packages/b8/c8/7d23930a22ec2596cc74f047e2a0338f6fdae1fa8d452d1555acd549614d/grpcio-1.60.1-cp312-cp312-macosx_10_10_universal2.whl", hash = "sha256:a731ac5cffc34dac62053e0da90f0c0b8560396a19f69d9703e88240c8f05858", size = 9612000 }, + { url = "https://files.pythonhosted.org/packages/96/03/af685a4d1b4ee8542ff5e1c7725b78fef0bc823342429142b3c19a81b6ef/grpcio-1.60.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:cf77f8cf2a651fbd869fbdcb4a1931464189cd210abc4cfad357f1cacc8642a6", size = 5061792 }, + { url = "https://files.pythonhosted.org/packages/66/c1/dc47898cd1e45a3d05e1a0a9a33366db12273c39ba1dc7663dc301b23cd2/grpcio-1.60.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c557e94e91a983e5b1e9c60076a8fd79fea1e7e06848eb2e48d0ccfb30f6e073", size = 5566287 }, + { url = "https://files.pythonhosted.org/packages/9b/24/9e942669f53346d4bf0849ebceaa9257fdd21e1694fade8470b6e0dd2ff8/grpcio-1.60.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:069fe2aeee02dfd2135d562d0663fe70fbb69d5eed6eb3389042a7e963b54de8", size = 5300197 }, + { url = "https://files.pythonhosted.org/packages/11/4f/56d59c235ce4ebcc0100578bba30c7c9d40607293cf6081ba387211bcce3/grpcio-1.60.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:cb0af13433dbbd1c806e671d81ec75bd324af6ef75171fd7815ca3074fe32bfe", size = 5852834 }, + { url = "https://files.pythonhosted.org/packages/e2/a7/d6ee96361a69998acb45de9dbee7c5e8d94b934922ed60047fde96a96bd4/grpcio-1.60.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2f44c32aef186bbba254129cea1df08a20be414144ac3bdf0e84b24e3f3b2e05", size = 5555225 }, + { url = "https://files.pythonhosted.org/packages/08/61/02954fa2051ad930c9f332b360726292923323310c673c78f3764f02df3a/grpcio-1.60.1-cp312-cp312-win32.whl", hash = "sha256:a212e5dea1a4182e40cd3e4067ee46be9d10418092ce3627475e995cca95de21", size = 3111253 }, + { url = "https://files.pythonhosted.org/packages/b9/56/4a8610864aa634ef89af3d7059e2bb0c0991e3d4b534467a7befc11c44c8/grpcio-1.60.1-cp312-cp312-win_amd64.whl", hash = "sha256:6e490fa5f7f5326222cb9f0b78f207a2b218a14edf39602e083d5f617354306f", size = 3691785 }, +] + +[[package]] +name = "grpcio-health-checking" +version = "1.60.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "grpcio" }, + { name = "protobuf" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/14/11/dca3c1dd36446c18b73bc46cff1bc0ed89ed4dd16f6c73cf9cbc2aa291ec/grpcio-health-checking-1.60.1.tar.gz", hash = "sha256:7c2e48ce9d5bdb19ad57b7abe3438d47ebdead507866939140720b3e28c625b3", size = 16320 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/50/63/5734148a1da3022c4c9479d36a2d6567a93b3a5e5ecee821015789a0f5e7/grpcio_health_checking-1.60.1-py3-none-any.whl", hash = "sha256:96dc89800cabdc943a5734e037fadea5f94c31c76e043638e448c1865b34d894", size = 18544 }, +] + +[[package]] +name = "grpcio-tools" +version = "1.60.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "grpcio" }, + { name = "protobuf" }, + { name = "setuptools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2c/7f/30d9ef28cbe302c622bf289d194689cd571ea4df0b492d46b95e503aabb1/grpcio-tools-1.60.1.tar.gz", hash = "sha256:da08224ab8675c6d464b988bd8ca02cccd2bf0275bceefe8f6219bfd4a4f5e85", size = 4611737 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/77/6414c9fec523fbc13c227b814212f1931db3bcc90d0444e25f20b4083b82/grpcio_tools-1.60.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:284749d20fb22418f17d3d351b9eb838caf4a0393a9cb02c36e5c32fa4bbe9db", size = 63937620 }, + { url = "https://files.pythonhosted.org/packages/71/b4/5cdbd524494d0c17adf11ebb17deca82cc358499c2bf70c20044d8fcd099/grpcio_tools-1.60.1-cp311-cp311-macosx_10_10_universal2.whl", hash = "sha256:b1041377cf32ee2338284ee26e6b9c10f9ea7728092376b19803dcb9b91d510d", size = 5147734 }, + { url = "https://files.pythonhosted.org/packages/4c/bf/360dbe8de7856b36d1960afb6d8906f874c36df32fec76fe0e4d80043fba/grpcio_tools-1.60.1-cp311-cp311-manylinux_2_17_aarch64.whl", hash = "sha256:e529cd3d4109a6f4a3f7bdaca68946eb33734e2d7ffe861785a0586abe99ee67", size = 2708356 }, + { url = "https://files.pythonhosted.org/packages/4b/df/859282237663200ba11d96713fa9812066cc33b681806588ace26031135e/grpcio_tools-1.60.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:31294b534f25f02ead204e58dcbe0e5437a95a1a6f276bb9378905595b02ff6d", size = 3060317 }, + { url = "https://files.pythonhosted.org/packages/c5/dd/3634438a1fe9fc77a50d112af2a47b101b6462d35578a03d16ae9db3e833/grpcio_tools-1.60.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3fb6f4d2df0388c35c2804ba170f511238a681b679ead013bfe5e39d0ea9cf48", size = 2795696 }, + { url = "https://files.pythonhosted.org/packages/71/23/c4c2e3c03a434ef2ed585f6ecd97b0d13941d6001add7a2997640979f72c/grpcio_tools-1.60.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:40cd8268a675269ce59c4fa50877597ec638bb1099c52237bb726c8ac9791868", size = 3674641 }, + { url = "https://files.pythonhosted.org/packages/ad/35/93d7ca0c7cb6ed48ee6eaa11c7683c00c14c595959de54dc91230f6409a4/grpcio_tools-1.60.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:985ac476da365267a2367ab20060f9096fbfc2e190fb02dd394f9ec05edf03ca", size = 3282607 }, + { url = "https://files.pythonhosted.org/packages/07/30/696d22a9f39b33f006209094c83d64d1c3c0b967c4810666ef0b24df87b9/grpcio_tools-1.60.1-cp311-cp311-win32.whl", hash = "sha256:bd85f6c368b93ae45edf8568473053cb1cc075ef3489efb18f9832d4ecce062f", size = 922154 }, + { url = "https://files.pythonhosted.org/packages/8c/1f/ffd7645afeaad43b141c80f997bba8509721a2bc674dfc0d710e63fb4a1a/grpcio_tools-1.60.1-cp311-cp311-win_amd64.whl", hash = "sha256:c20e752ff5057758845f4e5c7a298739bfba291f373ed18ea9c7c7acbe69e8ab", size = 1067994 }, + { url = "https://files.pythonhosted.org/packages/df/91/41c27e0d96915e817717eebd570e012b40f17ebc0a42599ee4a8be8937c2/grpcio_tools-1.60.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:aafc94616c5f89c891d859057b194a153c451f9921053454e9d7d4cbf79047eb", size = 63964333 }, + { url = "https://files.pythonhosted.org/packages/75/b8/26d6115ecb12b831390cf04c742648b1b9cd9d3638c9cb70641f8661c016/grpcio_tools-1.60.1-cp312-cp312-macosx_10_10_universal2.whl", hash = "sha256:9bba347000f57dae8aea79c0d76ef7d72895597524d30d0170c7d1974a3a03f3", size = 5147841 }, + { url = "https://files.pythonhosted.org/packages/6b/2b/4ffc8c23306d6f50a76bac8427b86dfbcb9d0b232af58fac1aada9b791aa/grpcio_tools-1.60.1-cp312-cp312-manylinux_2_17_aarch64.whl", hash = "sha256:1e96a532d38411f0543fe1903ff522f7142a9901afb0ed94de58d79caf1905be", size = 2709524 }, + { url = "https://files.pythonhosted.org/packages/38/62/9c7a738913f3b753455a49325cb3196f5d0d8870b72a921b2259eb7600c0/grpcio_tools-1.60.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ea6e397d87f458bb2c387a4a6e1b65df74ce5b5194a1f16850c38309012e981", size = 3061064 }, + { url = "https://files.pythonhosted.org/packages/3f/52/f0c4e1561c9361a37daf0f5c2f6bdc9a340bea66422313f797abc0492820/grpcio_tools-1.60.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3aeecd5b8faa2aab67e6c8b8a57e888c00ce70d39f331ede0a21312e92def1a6", size = 2797029 }, + { url = "https://files.pythonhosted.org/packages/c2/aa/8006a428a44453b95b484e89cf609ce5fc649610b83640fb00a538a54559/grpcio_tools-1.60.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:d2c26ce5f774c98bd2d3d8d1703048394018b55d297ebdb41ed2ba35b9a34f68", size = 3674986 }, + { url = "https://files.pythonhosted.org/packages/a4/96/132094e21606bb3bec8dcb5e1c947cb09dd5f99da065ab9ccdcb9b829fd3/grpcio_tools-1.60.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:214281cdafb7acfdcde848eca2de7c888a6e2b5cd25ab579712b965ea09a9cd4", size = 3283144 }, + { url = "https://files.pythonhosted.org/packages/d9/e7/d61a2052dc3b0a58c50d73523b9ab268a7aff8a57bf3d7006657111d9741/grpcio_tools-1.60.1-cp312-cp312-win32.whl", hash = "sha256:8c4b917aa4fcdc77990773063f0f14540aab8d4a8bf6c862b964a45d891a31d2", size = 922615 }, + { url = "https://files.pythonhosted.org/packages/7e/ab/72afa896d8314e67cefc7fb4501329e7af0f00cbcd401b3d15f183f5aece/grpcio_tools-1.60.1-cp312-cp312-win_amd64.whl", hash = "sha256:0aa34c7c21cff2177a4096b2b0d51dfbc9f8a41f929847a434e89b352c5a215d", size = 1068419 }, +] + +[[package]] +name = "gunicorn" +version = "20.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "setuptools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/5b/0d1f0296485a6af03366604142ea8f19f0833894db3512a40ed07b2a56dd/gunicorn-20.1.0.tar.gz", hash = "sha256:e0a968b5ba15f8a328fdfd7ab1fcb5af4470c28aaf7e55df02a99bc13138e6e8", size = 370601 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e4/dd/5b190393e6066286773a67dfcc2f9492058e9b57c4867a95f1ba5caf0a83/gunicorn-20.1.0-py3-none-any.whl", hash = "sha256:9dcc4547dbb1cb284accfb15ab5667a0e5d1881cc443e0677b4882a4067a807e", size = 79531 }, +] + +[[package]] +name = "h11" +version = "0.14.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f5/38/3af3d3633a34a3316095b39c8e8fb4853a28a536e55d347bd8d8e9a14b03/h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d", size = 100418 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761", size = 58259 }, +] + +[[package]] +name = "h2" +version = "4.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "hpack" }, + { name = "hyperframe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2a/32/fec683ddd10629ea4ea46d206752a95a2d8a48c22521edd70b142488efe1/h2-4.1.0.tar.gz", hash = "sha256:a83aca08fbe7aacb79fec788c9c0bac936343560ed9ec18b82a13a12c28d2abb", size = 2145593 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/e5/db6d438da759efbb488c4f3fbdab7764492ff3c3f953132efa6b9f0e9e53/h2-4.1.0-py3-none-any.whl", hash = "sha256:03a46bcf682256c95b5fd9e9a99c1323584c3eec6440d379b9903d709476bc6d", size = 57488 }, +] + +[[package]] +name = "hexbytes" +version = "1.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4e/51/06836a542b773bfc60ab871fa08d4a7963e7df6754ca57169e2654287cc1/hexbytes-1.2.1.tar.gz", hash = "sha256:515f00dddf31053db4d0d7636dd16061c1d896c3109b8e751005db4ca46bcca7", size = 7722 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/c6/20f25ea73e4ceffb3eb4e38347f2992cb25e5ff6eb644d52e753a7a72f57/hexbytes-1.2.1-py3-none-any.whl", hash = "sha256:e64890b203a31f4a23ef11470ecfcca565beaee9198df623047df322b757471a", size = 5160 }, +] + +[[package]] +name = "hpack" +version = "4.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3e/9b/fda93fb4d957db19b0f6b370e79d586b3e8528b20252c729c476a2c02954/hpack-4.0.0.tar.gz", hash = "sha256:fc41de0c63e687ebffde81187a948221294896f6bdc0ae2312708df339430095", size = 49117 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d5/34/e8b383f35b77c402d28563d2b8f83159319b509bc5f760b15d60b0abf165/hpack-4.0.0-py3-none-any.whl", hash = "sha256:84a076fad3dc9a9f8063ccb8041ef100867b1878b25ef0ee63847a5d53818a6c", size = 32611 }, +] + +[[package]] +name = "html5lib" +version = "1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, + { name = "webencodings" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ac/b6/b55c3f49042f1df3dcd422b7f224f939892ee94f22abcf503a9b7339eaf2/html5lib-1.1.tar.gz", hash = "sha256:b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f", size = 272215 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6c/dd/a834df6482147d48e225a49515aabc28974ad5a4ca3215c18a882565b028/html5lib-1.1-py2.py3-none-any.whl", hash = "sha256:0d78f8fde1c230e99fe37986a60526d7049ed4bf8a9fadbad5f00e22e58e041d", size = 112173 }, +] + +[[package]] +name = "httpcore" +version = "1.0.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6a/41/d7d0a89eb493922c37d343b607bc1b5da7f5be7e383740b4753ad8943e90/httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c", size = 85196 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/87/f5/72347bc88306acb359581ac4d52f23c0ef445b57157adedb9aee0cd689d2/httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd", size = 78551 }, +] + +[[package]] +name = "httpx" +version = "0.27.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "certifi" }, + { name = "httpcore" }, + { name = "idna" }, + { name = "sniffio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5c/2d/3da5bdf4408b8b2800061c339f240c1802f2e82d55e50bd39c5a881f47f0/httpx-0.27.0.tar.gz", hash = "sha256:a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5", size = 126413 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/7b/ddacf6dcebb42466abd03f368782142baa82e08fc0c1f8eaa05b4bae87d5/httpx-0.27.0-py3-none-any.whl", hash = "sha256:71d5465162c13681bff01ad59b2cc68dd838ea1f10e51574bac27103f00c91a5", size = 75590 }, +] + +[package.optional-dependencies] +http2 = [ + { name = "h2" }, +] + +[[package]] +name = "httpx-sse" +version = "0.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4c/60/8f4281fa9bbf3c8034fd54c0e7412e66edbab6bc74c4996bd616f8d0406e/httpx-sse-0.4.0.tar.gz", hash = "sha256:1e81a3a3070ce322add1d3529ed42eb5f70817f45ed6ec915ab753f961139721", size = 12624 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e1/9b/a181f281f65d776426002f330c31849b86b31fc9d848db62e16f03ff739f/httpx_sse-0.4.0-py3-none-any.whl", hash = "sha256:f329af6eae57eaa2bdfd962b42524764af68075ea87370a2de920af5341e318f", size = 7819 }, +] + +[[package]] +name = "huggingface-hub" +version = "0.27.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "filelock" }, + { name = "fsspec" }, + { name = "packaging" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "tqdm" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/36/c6/e3709b61de8e7832dbe19f0d9637e81356cede733d99359fbce125423774/huggingface_hub-0.27.0.tar.gz", hash = "sha256:902cce1a1be5739f5589e560198a65a8edcfd3b830b1666f36e4b961f0454fac", size = 379286 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/8c/fbdc0a88a622d9fa54e132d7bf3ee03ec602758658a2db5b339a65be2cfe/huggingface_hub-0.27.0-py3-none-any.whl", hash = "sha256:8f2e834517f1f1ddf1ecc716f91b120d7333011b7485f665a9a412eacb1a2a81", size = 450537 }, +] + +[[package]] +name = "humanize" +version = "4.11.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6a/40/64a912b9330786df25e58127194d4a5a7441f818b400b155e748a270f924/humanize-4.11.0.tar.gz", hash = "sha256:e66f36020a2d5a974c504bd2555cf770621dbdbb6d82f94a6857c0b1ea2608be", size = 80374 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/92/75/4bc3e242ad13f2e6c12e0b0401ab2c5e5c6f0d7da37ec69bc808e24e0ccb/humanize-4.11.0-py3-none-any.whl", hash = "sha256:b53caaec8532bcb2fff70c8826f904c35943f8cecaca29d272d9df38092736c0", size = 128055 }, +] + +[[package]] +name = "hyperframe" +version = "6.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5a/2a/4747bff0a17f7281abe73e955d60d80aae537a5d203f417fa1c2e7578ebb/hyperframe-6.0.1.tar.gz", hash = "sha256:ae510046231dc8e9ecb1a6586f63d2347bf4c8905914aa84ba585ae85f28a914", size = 25008 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/de/85a784bcc4a3779d1753a7ec2dee5de90e18c7bcf402e71b51fcf150b129/hyperframe-6.0.1-py3-none-any.whl", hash = "sha256:0ec6bafd80d8ad2195c4f03aacba3a8265e57bc4cff261e802bf39970ed02a15", size = 12389 }, +] + +[[package]] +name = "idna" +version = "3.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 }, +] + +[[package]] +name = "importlib-metadata" +version = "8.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "zipp" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c0/bd/fa8ce65b0a7d4b6d143ec23b0f5fd3f7ab80121078c465bc02baeaab22dc/importlib_metadata-8.4.0.tar.gz", hash = "sha256:9a547d3bc3608b025f93d403fdd1aae741c24fbb8314df4b155675742ce303c5", size = 54320 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/14/362d31bf1076b21e1bcdcb0dc61944822ff263937b804a79231df2774d28/importlib_metadata-8.4.0-py3-none-any.whl", hash = "sha256:66f342cc6ac9818fc6ff340576acd24d65ba0b3efabb2b4ac08b598965a4a2f1", size = 26269 }, +] + +[[package]] +name = "iniconfig" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3", size = 4646 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 }, +] + +[[package]] +name = "instructor" +version = "1.5.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "docstring-parser" }, + { name = "jiter" }, + { name = "openai" }, + { name = "pydantic" }, + { name = "pydantic-core" }, + { name = "rich" }, + { name = "tenacity" }, + { name = "typer" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/45/31/f7499f60a513411a1e8c47c530987d1d3f2dbf9da0d621e52a100a80eebb/instructor-1.5.2.tar.gz", hash = "sha256:fdd5ccbca21b4c558a24e9ba12c84afd907e65153a39d035f47c25800011a977", size = 49521 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/94/5f96c1d87ba732ba6b2a9751314ddb69bfcd8d05ed0f7e93ee17fd4df068/instructor-1.5.2-py3-none-any.whl", hash = "sha256:da25abbf1ab792fb094992f1d9ce593e26fe458cb1f9a8e7ebf9d68f3f2c757a", size = 61494 }, +] + +[[package]] +name = "isort" +version = "5.13.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/87/f9/c1eb8635a24e87ade2efce21e3ce8cd6b8630bb685ddc9cdaca1349b2eb5/isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109", size = 175303 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/b3/8def84f539e7d2289a02f0524b944b15d7c75dab7628bedf1c4f0992029c/isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6", size = 92310 }, +] + +[[package]] +name = "jinja2" +version = "3.1.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ed/55/39036716d19cab0747a5020fc7e907f362fbf48c984b14e62127f7e68e5d/jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369", size = 240245 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/31/80/3a54838c3fb461f6fec263ebf3a3a41771bd05190238de3486aae8540c36/jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d", size = 133271 }, +] + +[[package]] +name = "jiter" +version = "0.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/1a/aa64be757afc614484b370a4d9fc1747dc9237b37ce464f7f9d9ca2a3d38/jiter-0.5.0.tar.gz", hash = "sha256:1d916ba875bcab5c5f7d927df998c4cb694d27dceddf3392e58beaf10563368a", size = 158300 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/5f/3ac960ed598726aae46edea916e6df4df7ff6fe084bc60774b95cf3154e6/jiter-0.5.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d4c8e1ed0ef31ad29cae5ea16b9e41529eb50a7fba70600008e9f8de6376d553", size = 284131 }, + { url = "https://files.pythonhosted.org/packages/03/eb/2308fa5f5c14c97c4c7720fef9465f1fa0771826cddb4eec9866bdd88846/jiter-0.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c6f16e21276074a12d8421692515b3fd6d2ea9c94fd0734c39a12960a20e85f3", size = 299310 }, + { url = "https://files.pythonhosted.org/packages/3c/f6/dba34ca10b44715fa5302b8e8d2113f72eb00a9297ddf3fa0ae4fd22d1d1/jiter-0.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5280e68e7740c8c128d3ae5ab63335ce6d1fb6603d3b809637b11713487af9e6", size = 332282 }, + { url = "https://files.pythonhosted.org/packages/69/f7/64e0a7439790ec47f7681adb3871c9d9c45fff771102490bbee5e92c00b7/jiter-0.5.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:583c57fc30cc1fec360e66323aadd7fc3edeec01289bfafc35d3b9dcb29495e4", size = 342370 }, + { url = "https://files.pythonhosted.org/packages/55/31/1efbfff2ae8e4d919144c53db19b828049ad0622a670be3bbea94a86282c/jiter-0.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:26351cc14507bdf466b5f99aba3df3143a59da75799bf64a53a3ad3155ecded9", size = 363591 }, + { url = "https://files.pythonhosted.org/packages/30/c3/7ab2ca2276426a7398c6dfb651e38dbc81954c79a3bfbc36c514d8599499/jiter-0.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4829df14d656b3fb87e50ae8b48253a8851c707da9f30d45aacab2aa2ba2d614", size = 378551 }, + { url = "https://files.pythonhosted.org/packages/47/e7/5d88031cd743c62199b125181a591b1671df3ff2f6e102df85c58d8f7d31/jiter-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a42a4bdcf7307b86cb863b2fb9bb55029b422d8f86276a50487982d99eed7c6e", size = 319152 }, + { url = "https://files.pythonhosted.org/packages/4c/2d/09ea58e1adca9f0359f3d41ef44a1a18e59518d7c43a21f4ece9e72e28c0/jiter-0.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04d461ad0aebf696f8da13c99bc1b3e06f66ecf6cfd56254cc402f6385231c06", size = 357377 }, + { url = "https://files.pythonhosted.org/packages/7d/2f/83ff1058cb56fc3ff73e0d3c6440703ddc9cdb7f759b00cfbde8228fc435/jiter-0.5.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e6375923c5f19888c9226582a124b77b622f8fd0018b843c45eeb19d9701c403", size = 511091 }, + { url = "https://files.pythonhosted.org/packages/ae/c9/4f85f97c9894382ab457382337aea0012711baaa17f2ed55c0ff25f3668a/jiter-0.5.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2cec323a853c24fd0472517113768c92ae0be8f8c384ef4441d3632da8baa646", size = 492948 }, + { url = "https://files.pythonhosted.org/packages/4d/f2/2e987e0eb465e064c5f52c2f29c8d955452e3b316746e326269263bfb1b7/jiter-0.5.0-cp311-none-win32.whl", hash = "sha256:aa1db0967130b5cab63dfe4d6ff547c88b2a394c3410db64744d491df7f069bb", size = 195183 }, + { url = "https://files.pythonhosted.org/packages/ab/59/05d1c3203c349b37c4dd28b02b9b4e5915a7bcbd9319173b4548a67d2e93/jiter-0.5.0-cp311-none-win_amd64.whl", hash = "sha256:aa9d2b85b2ed7dc7697597dcfaac66e63c1b3028652f751c81c65a9f220899ae", size = 191032 }, + { url = "https://files.pythonhosted.org/packages/aa/bd/c3950e2c478161e131bed8cb67c36aed418190e2a961a1c981e69954e54b/jiter-0.5.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9f664e7351604f91dcdd557603c57fc0d551bc65cc0a732fdacbf73ad335049a", size = 283511 }, + { url = "https://files.pythonhosted.org/packages/80/1c/8ce58d8c37a589eeaaa5d07d131fd31043886f5e77ab50c00a66d869a361/jiter-0.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:044f2f1148b5248ad2c8c3afb43430dccf676c5a5834d2f5089a4e6c5bbd64df", size = 296974 }, + { url = "https://files.pythonhosted.org/packages/4d/b8/6faeff9eed8952bed93a77ea1cffae7b946795b88eafd1a60e87a67b09e0/jiter-0.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:702e3520384c88b6e270c55c772d4bd6d7b150608dcc94dea87ceba1b6391248", size = 331897 }, + { url = "https://files.pythonhosted.org/packages/4f/54/1d9a2209b46d39ce6f0cef3ad87c462f9c50312ab84585e6bd5541292b35/jiter-0.5.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:528d742dcde73fad9d63e8242c036ab4a84389a56e04efd854062b660f559544", size = 342962 }, + { url = "https://files.pythonhosted.org/packages/2a/de/90360be7fc54b2b4c2dfe79eb4ed1f659fce9c96682e6a0be4bbe71371f7/jiter-0.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8cf80e5fe6ab582c82f0c3331df27a7e1565e2dcf06265afd5173d809cdbf9ba", size = 363844 }, + { url = "https://files.pythonhosted.org/packages/ba/ad/ef32b173191b7a53ea8a6757b80723cba321f8469834825e8c71c96bde17/jiter-0.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:44dfc9ddfb9b51a5626568ef4e55ada462b7328996294fe4d36de02fce42721f", size = 378709 }, + { url = "https://files.pythonhosted.org/packages/07/de/353ce53743c0defbbbd652e89c106a97dbbac4eb42c95920b74b5056b93a/jiter-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c451f7922992751a936b96c5f5b9bb9312243d9b754c34b33d0cb72c84669f4e", size = 319038 }, + { url = "https://files.pythonhosted.org/packages/3f/92/42d47310bf9530b9dece9e2d7c6d51cf419af5586ededaf5e66622d160e2/jiter-0.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:308fce789a2f093dca1ff91ac391f11a9f99c35369117ad5a5c6c4903e1b3e3a", size = 357763 }, + { url = "https://files.pythonhosted.org/packages/bd/8c/2bb76a9a84474d48fdd133d3445db8a4413da4e87c23879d917e000a9d87/jiter-0.5.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7f5ad4a7c6b0d90776fdefa294f662e8a86871e601309643de30bf94bb93a64e", size = 511031 }, + { url = "https://files.pythonhosted.org/packages/33/4f/9f23d79c0795e0a8e56e7988e8785c2dcda27e0ed37977256d50c77c6a19/jiter-0.5.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ea189db75f8eca08807d02ae27929e890c7d47599ce3d0a6a5d41f2419ecf338", size = 493042 }, + { url = "https://files.pythonhosted.org/packages/df/67/8a4f975aa834b8aecdb6b131422390173928fd47f42f269dcc32034ab432/jiter-0.5.0-cp312-none-win32.whl", hash = "sha256:e3bbe3910c724b877846186c25fe3c802e105a2c1fc2b57d6688b9f8772026e4", size = 195405 }, + { url = "https://files.pythonhosted.org/packages/15/81/296b1e25c43db67848728cdab34ac3eb5c5cbb4955ceb3f51ae60d4a5e3d/jiter-0.5.0-cp312-none-win_amd64.whl", hash = "sha256:a586832f70c3f1481732919215f36d41c59ca080fa27a65cf23d9490e75b2ef5", size = 189720 }, +] + +[[package]] +name = "jmespath" +version = "1.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/00/2a/e867e8531cf3e36b41201936b7fa7ba7b5702dbef42922193f05c8976cd6/jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe", size = 25843 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/31/b4/b9b800c45527aadd64d5b442f9b932b00648617eb5d63d2c7a6587b7cafc/jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980", size = 20256 }, +] + +[[package]] +name = "joblib" +version = "1.4.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/64/33/60135848598c076ce4b231e1b1895170f45fbcaeaa2c9d5e38b04db70c35/joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e", size = 2116621 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/91/29/df4b9b42f2be0b623cbd5e2140cafcaa2bef0759a00b7b70104dcfe2fb51/joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6", size = 301817 }, +] + +[[package]] +name = "jsonpatch" +version = "1.33" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jsonpointer" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/78/18813351fe5d63acad16aec57f94ec2b70a09e53ca98145589e185423873/jsonpatch-1.33.tar.gz", hash = "sha256:9fcd4009c41e6d12348b4a0ff2563ba56a2923a7dfee731d004e212e1ee5030c", size = 21699 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/73/07/02e16ed01e04a374e644b575638ec7987ae846d25ad97bcc9945a3ee4b0e/jsonpatch-1.33-py2.py3-none-any.whl", hash = "sha256:0ae28c0cd062bbd8b8ecc26d7d164fbbea9652a1a3693f3b956c1eae5145dade", size = 12898 }, +] + +[[package]] +name = "jsonpath-ng" +version = "1.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ply" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6d/86/08646239a313f895186ff0a4573452038eed8c86f54380b3ebac34d32fb2/jsonpath-ng-1.7.0.tar.gz", hash = "sha256:f6f5f7fd4e5ff79c785f1573b394043b39849fb2bb47bcead935d12b00beab3c", size = 37838 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/35/5a/73ecb3d82f8615f32ccdadeb9356726d6cae3a4bbc840b437ceb95708063/jsonpath_ng-1.7.0-py3-none-any.whl", hash = "sha256:f3d7f9e848cba1b6da28c55b1c26ff915dc9e0b1ba7e752a53d6da8d5cbd00b6", size = 30105 }, +] + +[[package]] +name = "jsonpath-python" +version = "1.0.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b5/49/e582e50b0c54c1b47e714241c4a4767bf28758bf90212248aea8e1ce8516/jsonpath-python-1.0.6.tar.gz", hash = "sha256:dd5be4a72d8a2995c3f583cf82bf3cd1a9544cfdabf2d22595b67aff07349666", size = 18121 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/16/8a/d63959f4eff03893a00e6e63592e3a9f15b9266ed8e0275ab77f8c7dbc94/jsonpath_python-1.0.6-py3-none-any.whl", hash = "sha256:1e3b78df579f5efc23565293612decee04214609208a2335884b3ee3f786b575", size = 7552 }, +] + +[[package]] +name = "jsonpointer" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6a/0a/eebeb1fa92507ea94016a2a790b93c2ae41a7e18778f85471dc54475ed25/jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef", size = 9114 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/92/5e77f98553e9e75130c78900d000368476aed74276eb8ae8796f65f00918/jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942", size = 7595 }, +] + +[[package]] +name = "jsonschema" +version = "4.23.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/38/2e/03362ee4034a4c917f697890ccd4aec0800ccf9ded7f511971c75451deec/jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4", size = 325778 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/4a/4f9dbeb84e8850557c02365a0eee0649abe5eb1d84af92a25731c6c0f922/jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566", size = 88462 }, +] + +[[package]] +name = "jsonschema-specifications" +version = "2024.10.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/10/db/58f950c996c793472e336ff3655b13fbcf1e3b359dcf52dcf3ed3b52c352/jsonschema_specifications-2024.10.1.tar.gz", hash = "sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272", size = 15561 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/0f/8910b19ac0670a0f80ce1008e5e751c4a57e14d2c4c13a482aa6079fa9d6/jsonschema_specifications-2024.10.1-py3-none-any.whl", hash = "sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf", size = 18459 }, +] + +[[package]] +name = "kiwisolver" +version = "1.4.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/85/4d/2255e1c76304cbd60b48cee302b66d1dde4468dc5b1160e4b7cb43778f2a/kiwisolver-1.4.7.tar.gz", hash = "sha256:9893ff81bd7107f7b685d3017cc6583daadb4fc26e4a888350df530e41980a60", size = 97286 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/44/77429fa0a58f941d6e1c58da9efe08597d2e86bf2b2cce6626834f49d07b/kiwisolver-1.4.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d2b0e12a42fb4e72d509fc994713d099cbb15ebf1103545e8a45f14da2dfca54", size = 122442 }, + { url = "https://files.pythonhosted.org/packages/e5/20/8c75caed8f2462d63c7fd65e16c832b8f76cda331ac9e615e914ee80bac9/kiwisolver-1.4.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2a8781ac3edc42ea4b90bc23e7d37b665d89423818e26eb6df90698aa2287c95", size = 65762 }, + { url = "https://files.pythonhosted.org/packages/f4/98/fe010f15dc7230f45bc4cf367b012d651367fd203caaa992fd1f5963560e/kiwisolver-1.4.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:46707a10836894b559e04b0fd143e343945c97fd170d69a2d26d640b4e297935", size = 64319 }, + { url = "https://files.pythonhosted.org/packages/8b/1b/b5d618f4e58c0675654c1e5051bcf42c776703edb21c02b8c74135541f60/kiwisolver-1.4.7-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef97b8df011141c9b0f6caf23b29379f87dd13183c978a30a3c546d2c47314cb", size = 1334260 }, + { url = "https://files.pythonhosted.org/packages/b8/01/946852b13057a162a8c32c4c8d2e9ed79f0bb5d86569a40c0b5fb103e373/kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ab58c12a2cd0fc769089e6d38466c46d7f76aced0a1f54c77652446733d2d02", size = 1426589 }, + { url = "https://files.pythonhosted.org/packages/70/d1/c9f96df26b459e15cf8a965304e6e6f4eb291e0f7a9460b4ad97b047561e/kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:803b8e1459341c1bb56d1c5c010406d5edec8a0713a0945851290a7930679b51", size = 1541080 }, + { url = "https://files.pythonhosted.org/packages/d3/73/2686990eb8b02d05f3de759d6a23a4ee7d491e659007dd4c075fede4b5d0/kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9a9e8a507420fe35992ee9ecb302dab68550dedc0da9e2880dd88071c5fb052", size = 1470049 }, + { url = "https://files.pythonhosted.org/packages/a7/4b/2db7af3ed3af7c35f388d5f53c28e155cd402a55432d800c543dc6deb731/kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18077b53dc3bb490e330669a99920c5e6a496889ae8c63b58fbc57c3d7f33a18", size = 1426376 }, + { url = "https://files.pythonhosted.org/packages/05/83/2857317d04ea46dc5d115f0df7e676997bbd968ced8e2bd6f7f19cfc8d7f/kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6af936f79086a89b3680a280c47ea90b4df7047b5bdf3aa5c524bbedddb9e545", size = 2222231 }, + { url = "https://files.pythonhosted.org/packages/0d/b5/866f86f5897cd4ab6d25d22e403404766a123f138bd6a02ecb2cdde52c18/kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:3abc5b19d24af4b77d1598a585b8a719beb8569a71568b66f4ebe1fb0449460b", size = 2368634 }, + { url = "https://files.pythonhosted.org/packages/c1/ee/73de8385403faba55f782a41260210528fe3273d0cddcf6d51648202d6d0/kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:933d4de052939d90afbe6e9d5273ae05fb836cc86c15b686edd4b3560cc0ee36", size = 2329024 }, + { url = "https://files.pythonhosted.org/packages/a1/e7/cd101d8cd2cdfaa42dc06c433df17c8303d31129c9fdd16c0ea37672af91/kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:65e720d2ab2b53f1f72fb5da5fb477455905ce2c88aaa671ff0a447c2c80e8e3", size = 2468484 }, + { url = "https://files.pythonhosted.org/packages/e1/72/84f09d45a10bc57a40bb58b81b99d8f22b58b2040c912b7eb97ebf625bf2/kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3bf1ed55088f214ba6427484c59553123fdd9b218a42bbc8c6496d6754b1e523", size = 2284078 }, + { url = "https://files.pythonhosted.org/packages/d2/d4/71828f32b956612dc36efd7be1788980cb1e66bfb3706e6dec9acad9b4f9/kiwisolver-1.4.7-cp311-cp311-win32.whl", hash = "sha256:4c00336b9dd5ad96d0a558fd18a8b6f711b7449acce4c157e7343ba92dd0cf3d", size = 46645 }, + { url = "https://files.pythonhosted.org/packages/a1/65/d43e9a20aabcf2e798ad1aff6c143ae3a42cf506754bcb6a7ed8259c8425/kiwisolver-1.4.7-cp311-cp311-win_amd64.whl", hash = "sha256:929e294c1ac1e9f615c62a4e4313ca1823ba37326c164ec720a803287c4c499b", size = 56022 }, + { url = "https://files.pythonhosted.org/packages/35/b3/9f75a2e06f1b4ca00b2b192bc2b739334127d27f1d0625627ff8479302ba/kiwisolver-1.4.7-cp311-cp311-win_arm64.whl", hash = "sha256:e33e8fbd440c917106b237ef1a2f1449dfbb9b6f6e1ce17c94cd6a1e0d438376", size = 48536 }, + { url = "https://files.pythonhosted.org/packages/97/9c/0a11c714cf8b6ef91001c8212c4ef207f772dd84540104952c45c1f0a249/kiwisolver-1.4.7-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:5360cc32706dab3931f738d3079652d20982511f7c0ac5711483e6eab08efff2", size = 121808 }, + { url = "https://files.pythonhosted.org/packages/f2/d8/0fe8c5f5d35878ddd135f44f2af0e4e1d379e1c7b0716f97cdcb88d4fd27/kiwisolver-1.4.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:942216596dc64ddb25adb215c3c783215b23626f8d84e8eff8d6d45c3f29f75a", size = 65531 }, + { url = "https://files.pythonhosted.org/packages/80/c5/57fa58276dfdfa612241d640a64ca2f76adc6ffcebdbd135b4ef60095098/kiwisolver-1.4.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:48b571ecd8bae15702e4f22d3ff6a0f13e54d3d00cd25216d5e7f658242065ee", size = 63894 }, + { url = "https://files.pythonhosted.org/packages/8b/e9/26d3edd4c4ad1c5b891d8747a4f81b1b0aba9fb9721de6600a4adc09773b/kiwisolver-1.4.7-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad42ba922c67c5f219097b28fae965e10045ddf145d2928bfac2eb2e17673640", size = 1369296 }, + { url = "https://files.pythonhosted.org/packages/b6/67/3f4850b5e6cffb75ec40577ddf54f7b82b15269cc5097ff2e968ee32ea7d/kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:612a10bdae23404a72941a0fc8fa2660c6ea1217c4ce0dbcab8a8f6543ea9e7f", size = 1461450 }, + { url = "https://files.pythonhosted.org/packages/52/be/86cbb9c9a315e98a8dc6b1d23c43cffd91d97d49318854f9c37b0e41cd68/kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e838bba3a3bac0fe06d849d29772eb1afb9745a59710762e4ba3f4cb8424483", size = 1579168 }, + { url = "https://files.pythonhosted.org/packages/0f/00/65061acf64bd5fd34c1f4ae53f20b43b0a017a541f242a60b135b9d1e301/kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:22f499f6157236c19f4bbbd472fa55b063db77a16cd74d49afe28992dff8c258", size = 1507308 }, + { url = "https://files.pythonhosted.org/packages/21/e4/c0b6746fd2eb62fe702118b3ca0cb384ce95e1261cfada58ff693aeec08a/kiwisolver-1.4.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:693902d433cf585133699972b6d7c42a8b9f8f826ebcaf0132ff55200afc599e", size = 1464186 }, + { url = "https://files.pythonhosted.org/packages/0a/0f/529d0a9fffb4d514f2782c829b0b4b371f7f441d61aa55f1de1c614c4ef3/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4e77f2126c3e0b0d055f44513ed349038ac180371ed9b52fe96a32aa071a5107", size = 2247877 }, + { url = "https://files.pythonhosted.org/packages/d1/e1/66603ad779258843036d45adcbe1af0d1a889a07af4635f8b4ec7dccda35/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:657a05857bda581c3656bfc3b20e353c232e9193eb167766ad2dc58b56504948", size = 2404204 }, + { url = "https://files.pythonhosted.org/packages/8d/61/de5fb1ca7ad1f9ab7970e340a5b833d735df24689047de6ae71ab9d8d0e7/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4bfa75a048c056a411f9705856abfc872558e33c055d80af6a380e3658766038", size = 2352461 }, + { url = "https://files.pythonhosted.org/packages/ba/d2/0edc00a852e369827f7e05fd008275f550353f1f9bcd55db9363d779fc63/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:34ea1de54beef1c104422d210c47c7d2a4999bdecf42c7b5718fbe59a4cac383", size = 2501358 }, + { url = "https://files.pythonhosted.org/packages/84/15/adc15a483506aec6986c01fb7f237c3aec4d9ed4ac10b756e98a76835933/kiwisolver-1.4.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:90da3b5f694b85231cf93586dad5e90e2d71b9428f9aad96952c99055582f520", size = 2314119 }, + { url = "https://files.pythonhosted.org/packages/36/08/3a5bb2c53c89660863a5aa1ee236912269f2af8762af04a2e11df851d7b2/kiwisolver-1.4.7-cp312-cp312-win32.whl", hash = "sha256:18e0cca3e008e17fe9b164b55735a325140a5a35faad8de92dd80265cd5eb80b", size = 46367 }, + { url = "https://files.pythonhosted.org/packages/19/93/c05f0a6d825c643779fc3c70876bff1ac221f0e31e6f701f0e9578690d70/kiwisolver-1.4.7-cp312-cp312-win_amd64.whl", hash = "sha256:58cb20602b18f86f83a5c87d3ee1c766a79c0d452f8def86d925e6c60fbf7bfb", size = 55884 }, + { url = "https://files.pythonhosted.org/packages/d2/f9/3828d8f21b6de4279f0667fb50a9f5215e6fe57d5ec0d61905914f5b6099/kiwisolver-1.4.7-cp312-cp312-win_arm64.whl", hash = "sha256:f5a8b53bdc0b3961f8b6125e198617c40aeed638b387913bf1ce78afb1b0be2a", size = 48528 }, + { url = "https://files.pythonhosted.org/packages/c4/06/7da99b04259b0f18b557a4effd1b9c901a747f7fdd84cf834ccf520cb0b2/kiwisolver-1.4.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2e6039dcbe79a8e0f044f1c39db1986a1b8071051efba3ee4d74f5b365f5226e", size = 121913 }, + { url = "https://files.pythonhosted.org/packages/97/f5/b8a370d1aa593c17882af0a6f6755aaecd643640c0ed72dcfd2eafc388b9/kiwisolver-1.4.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a1ecf0ac1c518487d9d23b1cd7139a6a65bc460cd101ab01f1be82ecf09794b6", size = 65627 }, + { url = "https://files.pythonhosted.org/packages/2a/fc/6c0374f7503522539e2d4d1b497f5ebad3f8ed07ab51aed2af988dd0fb65/kiwisolver-1.4.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7ab9ccab2b5bd5702ab0803676a580fffa2aa178c2badc5557a84cc943fcf750", size = 63888 }, + { url = "https://files.pythonhosted.org/packages/bf/3e/0b7172793d0f41cae5c923492da89a2ffcd1adf764c16159ca047463ebd3/kiwisolver-1.4.7-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f816dd2277f8d63d79f9c8473a79fe54047bc0467754962840782c575522224d", size = 1369145 }, + { url = "https://files.pythonhosted.org/packages/77/92/47d050d6f6aced2d634258123f2688fbfef8ded3c5baf2c79d94d91f1f58/kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf8bcc23ceb5a1b624572a1623b9f79d2c3b337c8c455405ef231933a10da379", size = 1461448 }, + { url = "https://files.pythonhosted.org/packages/9c/1b/8f80b18e20b3b294546a1adb41701e79ae21915f4175f311a90d042301cf/kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dea0bf229319828467d7fca8c7c189780aa9ff679c94539eed7532ebe33ed37c", size = 1578750 }, + { url = "https://files.pythonhosted.org/packages/a4/fe/fe8e72f3be0a844f257cadd72689c0848c6d5c51bc1d60429e2d14ad776e/kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c06a4c7cf15ec739ce0e5971b26c93638730090add60e183530d70848ebdd34", size = 1507175 }, + { url = "https://files.pythonhosted.org/packages/39/fa/cdc0b6105d90eadc3bee525fecc9179e2b41e1ce0293caaf49cb631a6aaf/kiwisolver-1.4.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:913983ad2deb14e66d83c28b632fd35ba2b825031f2fa4ca29675e665dfecbe1", size = 1463963 }, + { url = "https://files.pythonhosted.org/packages/6e/5c/0c03c4e542720c6177d4f408e56d1c8315899db72d46261a4e15b8b33a41/kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5337ec7809bcd0f424c6b705ecf97941c46279cf5ed92311782c7c9c2026f07f", size = 2248220 }, + { url = "https://files.pythonhosted.org/packages/3d/ee/55ef86d5a574f4e767df7da3a3a7ff4954c996e12d4fbe9c408170cd7dcc/kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4c26ed10c4f6fa6ddb329a5120ba3b6db349ca192ae211e882970bfc9d91420b", size = 2404463 }, + { url = "https://files.pythonhosted.org/packages/0f/6d/73ad36170b4bff4825dc588acf4f3e6319cb97cd1fb3eb04d9faa6b6f212/kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c619b101e6de2222c1fcb0531e1b17bbffbe54294bfba43ea0d411d428618c27", size = 2352842 }, + { url = "https://files.pythonhosted.org/packages/0b/16/fa531ff9199d3b6473bb4d0f47416cdb08d556c03b8bc1cccf04e756b56d/kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:073a36c8273647592ea332e816e75ef8da5c303236ec0167196793eb1e34657a", size = 2501635 }, + { url = "https://files.pythonhosted.org/packages/78/7e/aa9422e78419db0cbe75fb86d8e72b433818f2e62e2e394992d23d23a583/kiwisolver-1.4.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3ce6b2b0231bda412463e152fc18335ba32faf4e8c23a754ad50ffa70e4091ee", size = 2314556 }, + { url = "https://files.pythonhosted.org/packages/a8/b2/15f7f556df0a6e5b3772a1e076a9d9f6c538ce5f05bd590eca8106508e06/kiwisolver-1.4.7-cp313-cp313-win32.whl", hash = "sha256:f4c9aee212bc89d4e13f58be11a56cc8036cabad119259d12ace14b34476fd07", size = 46364 }, + { url = "https://files.pythonhosted.org/packages/0b/db/32e897e43a330eee8e4770bfd2737a9584b23e33587a0812b8e20aac38f7/kiwisolver-1.4.7-cp313-cp313-win_amd64.whl", hash = "sha256:8a3ec5aa8e38fc4c8af308917ce12c536f1c88452ce554027e55b22cbbfbff76", size = 55887 }, + { url = "https://files.pythonhosted.org/packages/c8/a4/df2bdca5270ca85fd25253049eb6708d4127be2ed0e5c2650217450b59e9/kiwisolver-1.4.7-cp313-cp313-win_arm64.whl", hash = "sha256:76c8094ac20ec259471ac53e774623eb62e6e1f56cd8690c67ce6ce4fcb05650", size = 48530 }, +] + +[[package]] +name = "lancedb" +version = "0.15.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "cachetools" }, + { name = "deprecation" }, + { name = "overrides" }, + { name = "packaging" }, + { name = "pydantic" }, + { name = "pylance" }, + { name = "requests" }, + { name = "tqdm" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/6f/b3/c0da4a07137781b35f70d8630baf656a30e5b05be6cbe5dacfe686c69229/lancedb-0.15.0-cp38-abi3-macosx_10_15_x86_64.whl", hash = "sha256:3eacc9c6766594874a7d54e822550c7991d64b14571251f1e4b43985cc4f3cdb", size = 23926022 }, + { url = "https://files.pythonhosted.org/packages/95/cc/8333fd74e82a4a088b522e76dc68f225054b3527d885e01c8ef1806dab3f/lancedb-0.15.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:48c28571f79805e11a3bca09486fd1c8d6c3f7762f7692cca1c5e0cdea6bfa20", size = 22412308 }, + { url = "https://files.pythonhosted.org/packages/85/ae/588f4587f2096e1de27d255c0e5557326e71c8e26bc19e516bb8f592785d/lancedb-0.15.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e349a1671943b75a536d2589b5a12f685c129149b0cad266e12555f9501f8ccd", size = 27653096 }, + { url = "https://files.pythonhosted.org/packages/76/8d/fb7148ab42227aff5fc72d5f278dadf1c71bda923a44896aa8c9e2e79b48/lancedb-0.15.0-cp38-abi3-manylinux_2_24_aarch64.whl", hash = "sha256:c567866b08222457e1aca51df9abeb871aad8fed0db58c004365629c05f8ecbb", size = 25701158 }, + { url = "https://files.pythonhosted.org/packages/e3/a8/67a8dc6fd7a57bde6b9f75b10368805db46b109adc7d634d7ce45bc655f3/lancedb-0.15.0-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:223cd77fa84a1317301ad4771de58ac5685d58cee03f0a20ba4bc95517b5c79f", size = 27123388 }, + { url = "https://files.pythonhosted.org/packages/70/cc/beb57ff12a5f8f37f8d469fa2399ac76b2909c76f38e3d61cd07f51c288d/lancedb-0.15.0-cp38-abi3-win_amd64.whl", hash = "sha256:66d251f22709c72f819aace9e665127f1040845d88b25c1f088c4beb36087f7e", size = 24838652 }, +] + +[[package]] +name = "langchain" +version = "0.3.11" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain-core" }, + { name = "langchain-text-splitters" }, + { name = "langsmith" }, + { name = "numpy" }, + { name = "pydantic" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "sqlalchemy" }, + { name = "tenacity" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/03/6d/df5afcab81750ee1f9895ae33dd2f59f8f7b8a826611e2d73a9f1909d6ce/langchain-0.3.11.tar.gz", hash = "sha256:17868ea3f0cf5a46b4b88bf1961c4a12d32ea0778930e7d2eb5103e0287ff478", size = 420290 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ba/4a/26620afcff880f6058756786d9b858d348ac29c815e44f57b6c2c07bf86d/langchain-0.3.11-py3-none-any.whl", hash = "sha256:6655feded1f7569e5a4bd11e38de0a26c7c86646c0dea49afccceba42df60ad7", size = 1009036 }, +] + +[[package]] +name = "langchain-community" +version = "0.3.11" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "dataclasses-json" }, + { name = "httpx-sse" }, + { name = "langchain" }, + { name = "langchain-core" }, + { name = "langsmith" }, + { name = "numpy" }, + { name = "pydantic-settings" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "sqlalchemy" }, + { name = "tenacity" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/11/55/cd4076894cce736efc48d787be68275f9ffc736449403cf4c1b11347dae3/langchain_community-0.3.11.tar.gz", hash = "sha256:31a96de1578f6037cd49acf287227d54e88e81f82e3e49cb4d90bfe05b1cdc32", size = 1681136 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/c2/aeb43e7f879d429df40f742228dba747d790655f3eb0e2082b7d9854f0fd/langchain_community-0.3.11-py3-none-any.whl", hash = "sha256:c67091dc7652f44161bbea915c03a296f3c1ef2a8dfbcb475cdf23a1deb9790e", size = 2459045 }, +] + +[[package]] +name = "langchain-core" +version = "0.3.27" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jsonpatch" }, + { name = "langsmith" }, + { name = "packaging" }, + { name = "pydantic" }, + { name = "pyyaml" }, + { name = "tenacity" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/77/2c/3ddc9d0d94dd7fc4ed8f71fda8b2cb6f3189e486ee224cb3b37fc7aba4bb/langchain_core-0.3.27.tar.gz", hash = "sha256:3d71835c4c630db03a19757565046029e89ee96a4b06788892599d49bb3fc58a", size = 330710 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/73/5d876d7c24cf82ff1d2c297c7da6ded4d857f7846763abe1bc72f7563e8e/langchain_core-0.3.27-py3-none-any.whl", hash = "sha256:5db42cd73f4f2d5d2550403a4c8b7dec2cd56f1501fe207d009b5b9632a5ca02", size = 411485 }, +] + +[[package]] +name = "langchain-openai" +version = "0.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "langchain-core" }, + { name = "openai" }, + { name = "tiktoken" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b3/7a/2cf68955181b9571d7768dfc4229f54f21977206fe6d7a0eb39fc48be649/langchain_openai-0.2.5.tar.gz", hash = "sha256:55b98711a880474ec363267bf6cd0e2727dc00e8433731318d063a2184582c28", size = 43165 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/85/74/f0c5d1b00f9c63246c8106b795ea792bb7ac61e92db9101716f05cfc42c7/langchain_openai-0.2.5-py3-none-any.whl", hash = "sha256:745fd9d51a5a3a9cb8839d41f3786ab38dfc539e47c713a806cbca32f3d0875c", size = 50368 }, +] + +[[package]] +name = "langchain-text-splitters" +version = "0.3.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "langchain-core" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/47/63/0f7dae88d87e924d819e6a6375043499e3bc9931e306edd48b396abb4e42/langchain_text_splitters-0.3.2.tar.gz", hash = "sha256:81e6515d9901d6dd8e35fb31ccd4f30f76d44b771890c789dc835ef9f16204df", size = 20229 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ee/c6/5ba25c8bad647e92a92b3066177ab10d78efbd16c0b9919948cdcd18b027/langchain_text_splitters-0.3.2-py3-none-any.whl", hash = "sha256:0db28c53f41d1bc024cdb3b1646741f6d46d5371e90f31e7e7c9fbe75d01c726", size = 25564 }, +] + +[[package]] +name = "langdetect" +version = "1.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0e/72/a3add0e4eec4eb9e2569554f7c70f4a3c27712f40e3284d483e88094cc0e/langdetect-1.0.9.tar.gz", hash = "sha256:cbc1fef89f8d062739774bd51eda3da3274006b3661d199c2655f6b3f6d605a0", size = 981474 } + +[[package]] +name = "langfuse" +version = "2.57.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "backoff" }, + { name = "httpx" }, + { name = "idna" }, + { name = "packaging" }, + { name = "pydantic" }, + { name = "requests" }, + { name = "wrapt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1c/50/22fd15606b6ac469d30f355693578f725dca1eb17f053301e62c4941e2ec/langfuse-2.57.0.tar.gz", hash = "sha256:8aa0b59af12c46417d1c9993f17921a984ec4688c0cd50004ef18647c9c5ae77", size = 142786 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/9c/1897e11cabd3f11b1e5cd087cb07cebf41fe323f784f0a7011099fd3eba3/langfuse-2.57.0-py3-none-any.whl", hash = "sha256:cb14b2393b73e5548ddd7e5cf2967210e24706e10b2699a727ece9077e69c990", size = 254784 }, +] + +[[package]] +name = "langsmith" +version = "0.1.139" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "httpx" }, + { name = "orjson" }, + { name = "pydantic" }, + { name = "requests" }, + { name = "requests-toolbelt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/6d/15ab5402bdca9c7782049bbcebde643047450fdaa3c19e36839f72843f64/langsmith-0.1.139.tar.gz", hash = "sha256:2f9e4d32fef3ad7ef42c8506448cce3a31ad6b78bb4f3310db04ddaa1e9d744d", size = 291595 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/bf/5f94d4102c9497710dd0c7939e0a855d9c2d1008451a61651a5a2d28b472/langsmith-0.1.139-py3-none-any.whl", hash = "sha256:2a4a541bfbd0a9727255df28a60048c85bc8c4c6a276975923785c3fd82dc879", size = 302202 }, +] + +[[package]] +name = "litellm" +version = "1.49.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "click" }, + { name = "importlib-metadata" }, + { name = "jinja2" }, + { name = "jsonschema" }, + { name = "openai" }, + { name = "pydantic" }, + { name = "python-dotenv" }, + { name = "requests" }, + { name = "tiktoken" }, + { name = "tokenizers" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c6/84/edd715fd552c72859fe768412685952993b6238592040d5361850108ad4a/litellm-1.49.1.tar.gz", hash = "sha256:f51450ad823c8bdf057017009ae8bcce1a2810690b2f0d9dcdaff04ddc68209a", size = 6068806 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/69/4fbc6734c7f7fb497b62c27b4ffa747a72dbca6a15b5c18bf570e3808007/litellm-1.49.1-py3-none-any.whl", hash = "sha256:2ba6689fe4ea3b0d69f56f2843caff6422497489e6252943b13ef1463f016728", size = 6282095 }, +] + +[[package]] +name = "llama-index-core" +version = "0.11.23" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "dataclasses-json" }, + { name = "deprecated" }, + { name = "dirtyjson" }, + { name = "filetype" }, + { name = "fsspec" }, + { name = "httpx" }, + { name = "nest-asyncio" }, + { name = "networkx" }, + { name = "nltk" }, + { name = "numpy" }, + { name = "pillow" }, + { name = "pydantic" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "sqlalchemy", extra = ["asyncio"] }, + { name = "tenacity" }, + { name = "tiktoken" }, + { name = "tqdm" }, + { name = "typing-extensions" }, + { name = "typing-inspect" }, + { name = "wrapt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8a/4f/496d43c467ca2497f9c7632ac8ebd15049beb05115e9f0546de3e19ddddd/llama_index_core-0.11.23.tar.gz", hash = "sha256:e150859696a0eae169fe19323f46e9a31af2c12c3182012e4d0353ea8eb06d24", size = 1325843 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/99/67/96ed984ebf472fe085bd5d2847c4f284cfe416805c1d6e705682a559c9fc/llama_index_core-0.11.23-py3-none-any.whl", hash = "sha256:25a0cb4a055bfb348655ca4acd1b475529bd8537a7b81874ef14ed13f56e06c1", size = 1576555 }, +] + +[[package]] +name = "lxml" +version = "5.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/6b/20c3a4b24751377aaa6307eb230b66701024012c29dd374999cc92983269/lxml-5.3.0.tar.gz", hash = "sha256:4e109ca30d1edec1ac60cdbe341905dc3b8f55b16855e03a54aaf59e51ec8c6f", size = 3679318 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5c/a8/449faa2a3cbe6a99f8d38dcd51a3ee8844c17862841a6f769ea7c2a9cd0f/lxml-5.3.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:74bcb423462233bc5d6066e4e98b0264e7c1bed7541fff2f4e34fe6b21563c8b", size = 8141056 }, + { url = "https://files.pythonhosted.org/packages/ac/8a/ae6325e994e2052de92f894363b038351c50ee38749d30cc6b6d96aaf90f/lxml-5.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a3d819eb6f9b8677f57f9664265d0a10dd6551d227afb4af2b9cd7bdc2ccbf18", size = 4425238 }, + { url = "https://files.pythonhosted.org/packages/f8/fb/128dddb7f9086236bce0eeae2bfb316d138b49b159f50bc681d56c1bdd19/lxml-5.3.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b8f5db71b28b8c404956ddf79575ea77aa8b1538e8b2ef9ec877945b3f46442", size = 5095197 }, + { url = "https://files.pythonhosted.org/packages/b4/f9/a181a8ef106e41e3086629c8bdb2d21a942f14c84a0e77452c22d6b22091/lxml-5.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3406b63232fc7e9b8783ab0b765d7c59e7c59ff96759d8ef9632fca27c7ee4", size = 4809809 }, + { url = "https://files.pythonhosted.org/packages/25/2f/b20565e808f7f6868aacea48ddcdd7e9e9fb4c799287f21f1a6c7c2e8b71/lxml-5.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ecdd78ab768f844c7a1d4a03595038c166b609f6395e25af9b0f3f26ae1230f", size = 5407593 }, + { url = "https://files.pythonhosted.org/packages/23/0e/caac672ec246d3189a16c4d364ed4f7d6bf856c080215382c06764058c08/lxml-5.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:168f2dfcfdedf611eb285efac1516c8454c8c99caf271dccda8943576b67552e", size = 4866657 }, + { url = "https://files.pythonhosted.org/packages/67/a4/1f5fbd3f58d4069000522196b0b776a014f3feec1796da03e495cf23532d/lxml-5.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa617107a410245b8660028a7483b68e7914304a6d4882b5ff3d2d3eb5948d8c", size = 4967017 }, + { url = "https://files.pythonhosted.org/packages/ee/73/623ecea6ca3c530dd0a4ed0d00d9702e0e85cd5624e2d5b93b005fe00abd/lxml-5.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:69959bd3167b993e6e710b99051265654133a98f20cec1d9b493b931942e9c16", size = 4810730 }, + { url = "https://files.pythonhosted.org/packages/1d/ce/fb84fb8e3c298f3a245ae3ea6221c2426f1bbaa82d10a88787412a498145/lxml-5.3.0-cp311-cp311-manylinux_2_28_ppc64le.whl", hash = "sha256:bd96517ef76c8654446fc3db9242d019a1bb5fe8b751ba414765d59f99210b79", size = 5455154 }, + { url = "https://files.pythonhosted.org/packages/b1/72/4d1ad363748a72c7c0411c28be2b0dc7150d91e823eadad3b91a4514cbea/lxml-5.3.0-cp311-cp311-manylinux_2_28_s390x.whl", hash = "sha256:ab6dd83b970dc97c2d10bc71aa925b84788c7c05de30241b9e96f9b6d9ea3080", size = 4969416 }, + { url = "https://files.pythonhosted.org/packages/42/07/b29571a58a3a80681722ea8ed0ba569211d9bb8531ad49b5cacf6d409185/lxml-5.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:eec1bb8cdbba2925bedc887bc0609a80e599c75b12d87ae42ac23fd199445654", size = 5013672 }, + { url = "https://files.pythonhosted.org/packages/b9/93/bde740d5a58cf04cbd38e3dd93ad1e36c2f95553bbf7d57807bc6815d926/lxml-5.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6a7095eeec6f89111d03dabfe5883a1fd54da319c94e0fb104ee8f23616b572d", size = 4878644 }, + { url = "https://files.pythonhosted.org/packages/56/b5/645c8c02721d49927c93181de4017164ec0e141413577687c3df8ff0800f/lxml-5.3.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6f651ebd0b21ec65dfca93aa629610a0dbc13dbc13554f19b0113da2e61a4763", size = 5511531 }, + { url = "https://files.pythonhosted.org/packages/85/3f/6a99a12d9438316f4fc86ef88c5d4c8fb674247b17f3173ecadd8346b671/lxml-5.3.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:f422a209d2455c56849442ae42f25dbaaba1c6c3f501d58761c619c7836642ec", size = 5402065 }, + { url = "https://files.pythonhosted.org/packages/80/8a/df47bff6ad5ac57335bf552babfb2408f9eb680c074ec1ba412a1a6af2c5/lxml-5.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:62f7fdb0d1ed2065451f086519865b4c90aa19aed51081979ecd05a21eb4d1be", size = 5069775 }, + { url = "https://files.pythonhosted.org/packages/08/ae/e7ad0f0fbe4b6368c5ee1e3ef0c3365098d806d42379c46c1ba2802a52f7/lxml-5.3.0-cp311-cp311-win32.whl", hash = "sha256:c6379f35350b655fd817cd0d6cbeef7f265f3ae5fedb1caae2eb442bbeae9ab9", size = 3474226 }, + { url = "https://files.pythonhosted.org/packages/c3/b5/91c2249bfac02ee514ab135e9304b89d55967be7e53e94a879b74eec7a5c/lxml-5.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:9c52100e2c2dbb0649b90467935c4b0de5528833c76a35ea1a2691ec9f1ee7a1", size = 3814971 }, + { url = "https://files.pythonhosted.org/packages/eb/6d/d1f1c5e40c64bf62afd7a3f9b34ce18a586a1cccbf71e783cd0a6d8e8971/lxml-5.3.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:e99f5507401436fdcc85036a2e7dc2e28d962550afe1cbfc07c40e454256a859", size = 8171753 }, + { url = "https://files.pythonhosted.org/packages/bd/83/26b1864921869784355459f374896dcf8b44d4af3b15d7697e9156cb2de9/lxml-5.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:384aacddf2e5813a36495233b64cb96b1949da72bef933918ba5c84e06af8f0e", size = 4441955 }, + { url = "https://files.pythonhosted.org/packages/e0/d2/e9bff9fb359226c25cda3538f664f54f2804f4b37b0d7c944639e1a51f69/lxml-5.3.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:874a216bf6afaf97c263b56371434e47e2c652d215788396f60477540298218f", size = 5050778 }, + { url = "https://files.pythonhosted.org/packages/88/69/6972bfafa8cd3ddc8562b126dd607011e218e17be313a8b1b9cc5a0ee876/lxml-5.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65ab5685d56914b9a2a34d67dd5488b83213d680b0c5d10b47f81da5a16b0b0e", size = 4748628 }, + { url = "https://files.pythonhosted.org/packages/5d/ea/a6523c7c7f6dc755a6eed3d2f6d6646617cad4d3d6d8ce4ed71bfd2362c8/lxml-5.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aac0bbd3e8dd2d9c45ceb82249e8bdd3ac99131a32b4d35c8af3cc9db1657179", size = 5322215 }, + { url = "https://files.pythonhosted.org/packages/99/37/396fbd24a70f62b31d988e4500f2068c7f3fd399d2fd45257d13eab51a6f/lxml-5.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b369d3db3c22ed14c75ccd5af429086f166a19627e84a8fdade3f8f31426e52a", size = 4813963 }, + { url = "https://files.pythonhosted.org/packages/09/91/e6136f17459a11ce1757df864b213efbeab7adcb2efa63efb1b846ab6723/lxml-5.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c24037349665434f375645fa9d1f5304800cec574d0310f618490c871fd902b3", size = 4923353 }, + { url = "https://files.pythonhosted.org/packages/1d/7c/2eeecf87c9a1fca4f84f991067c693e67340f2b7127fc3eca8fa29d75ee3/lxml-5.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:62d172f358f33a26d6b41b28c170c63886742f5b6772a42b59b4f0fa10526cb1", size = 4740541 }, + { url = "https://files.pythonhosted.org/packages/3b/ed/4c38ba58defca84f5f0d0ac2480fdcd99fc7ae4b28fc417c93640a6949ae/lxml-5.3.0-cp312-cp312-manylinux_2_28_ppc64le.whl", hash = "sha256:c1f794c02903c2824fccce5b20c339a1a14b114e83b306ff11b597c5f71a1c8d", size = 5346504 }, + { url = "https://files.pythonhosted.org/packages/a5/22/bbd3995437e5745cb4c2b5d89088d70ab19d4feabf8a27a24cecb9745464/lxml-5.3.0-cp312-cp312-manylinux_2_28_s390x.whl", hash = "sha256:5d6a6972b93c426ace71e0be9a6f4b2cfae9b1baed2eed2006076a746692288c", size = 4898077 }, + { url = "https://files.pythonhosted.org/packages/0a/6e/94537acfb5b8f18235d13186d247bca478fea5e87d224644e0fe907df976/lxml-5.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:3879cc6ce938ff4eb4900d901ed63555c778731a96365e53fadb36437a131a99", size = 4946543 }, + { url = "https://files.pythonhosted.org/packages/8d/e8/4b15df533fe8e8d53363b23a41df9be907330e1fa28c7ca36893fad338ee/lxml-5.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:74068c601baff6ff021c70f0935b0c7bc528baa8ea210c202e03757c68c5a4ff", size = 4816841 }, + { url = "https://files.pythonhosted.org/packages/1a/e7/03f390ea37d1acda50bc538feb5b2bda6745b25731e4e76ab48fae7106bf/lxml-5.3.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:ecd4ad8453ac17bc7ba3868371bffb46f628161ad0eefbd0a855d2c8c32dd81a", size = 5417341 }, + { url = "https://files.pythonhosted.org/packages/ea/99/d1133ab4c250da85a883c3b60249d3d3e7c64f24faff494cf0fd23f91e80/lxml-5.3.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7e2f58095acc211eb9d8b5771bf04df9ff37d6b87618d1cbf85f92399c98dae8", size = 5327539 }, + { url = "https://files.pythonhosted.org/packages/7d/ed/e6276c8d9668028213df01f598f385b05b55a4e1b4662ee12ef05dab35aa/lxml-5.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e63601ad5cd8f860aa99d109889b5ac34de571c7ee902d6812d5d9ddcc77fa7d", size = 5012542 }, + { url = "https://files.pythonhosted.org/packages/36/88/684d4e800f5aa28df2a991a6a622783fb73cf0e46235cfa690f9776f032e/lxml-5.3.0-cp312-cp312-win32.whl", hash = "sha256:17e8d968d04a37c50ad9c456a286b525d78c4a1c15dd53aa46c1d8e06bf6fa30", size = 3486454 }, + { url = "https://files.pythonhosted.org/packages/fc/82/ace5a5676051e60355bd8fb945df7b1ba4f4fb8447f2010fb816bfd57724/lxml-5.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:c1a69e58a6bb2de65902051d57fde951febad631a20a64572677a1052690482f", size = 3816857 }, + { url = "https://files.pythonhosted.org/packages/94/6a/42141e4d373903bfea6f8e94b2f554d05506dfda522ada5343c651410dc8/lxml-5.3.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8c72e9563347c7395910de6a3100a4840a75a6f60e05af5e58566868d5eb2d6a", size = 8156284 }, + { url = "https://files.pythonhosted.org/packages/91/5e/fa097f0f7d8b3d113fb7312c6308af702f2667f22644441715be961f2c7e/lxml-5.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e92ce66cd919d18d14b3856906a61d3f6b6a8500e0794142338da644260595cd", size = 4432407 }, + { url = "https://files.pythonhosted.org/packages/2d/a1/b901988aa6d4ff937f2e5cfc114e4ec561901ff00660c3e56713642728da/lxml-5.3.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d04f064bebdfef9240478f7a779e8c5dc32b8b7b0b2fc6a62e39b928d428e51", size = 5048331 }, + { url = "https://files.pythonhosted.org/packages/30/0f/b2a54f48e52de578b71bbe2a2f8160672a8a5e103df3a78da53907e8c7ed/lxml-5.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c2fb570d7823c2bbaf8b419ba6e5662137f8166e364a8b2b91051a1fb40ab8b", size = 4744835 }, + { url = "https://files.pythonhosted.org/packages/82/9d/b000c15538b60934589e83826ecbc437a1586488d7c13f8ee5ff1f79a9b8/lxml-5.3.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0c120f43553ec759f8de1fee2f4794452b0946773299d44c36bfe18e83caf002", size = 5316649 }, + { url = "https://files.pythonhosted.org/packages/e3/ee/ffbb9eaff5e541922611d2c56b175c45893d1c0b8b11e5a497708a6a3b3b/lxml-5.3.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:562e7494778a69086f0312ec9689f6b6ac1c6b65670ed7d0267e49f57ffa08c4", size = 4812046 }, + { url = "https://files.pythonhosted.org/packages/15/ff/7ff89d567485c7b943cdac316087f16b2399a8b997007ed352a1248397e5/lxml-5.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:423b121f7e6fa514ba0c7918e56955a1d4470ed35faa03e3d9f0e3baa4c7e492", size = 4918597 }, + { url = "https://files.pythonhosted.org/packages/c6/a3/535b6ed8c048412ff51268bdf4bf1cf052a37aa7e31d2e6518038a883b29/lxml-5.3.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:c00f323cc00576df6165cc9d21a4c21285fa6b9989c5c39830c3903dc4303ef3", size = 4738071 }, + { url = "https://files.pythonhosted.org/packages/7a/8f/cbbfa59cb4d4fd677fe183725a76d8c956495d7a3c7f111ab8f5e13d2e83/lxml-5.3.0-cp313-cp313-manylinux_2_28_ppc64le.whl", hash = "sha256:1fdc9fae8dd4c763e8a31e7630afef517eab9f5d5d31a278df087f307bf601f4", size = 5342213 }, + { url = "https://files.pythonhosted.org/packages/5c/fb/db4c10dd9958d4b52e34d1d1f7c1f434422aeaf6ae2bbaaff2264351d944/lxml-5.3.0-cp313-cp313-manylinux_2_28_s390x.whl", hash = "sha256:658f2aa69d31e09699705949b5fc4719cbecbd4a97f9656a232e7d6c7be1a367", size = 4893749 }, + { url = "https://files.pythonhosted.org/packages/f2/38/bb4581c143957c47740de18a3281a0cab7722390a77cc6e610e8ebf2d736/lxml-5.3.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:1473427aff3d66a3fa2199004c3e601e6c4500ab86696edffdbc84954c72d832", size = 4945901 }, + { url = "https://files.pythonhosted.org/packages/fc/d5/18b7de4960c731e98037bd48fa9f8e6e8f2558e6fbca4303d9b14d21ef3b/lxml-5.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a87de7dd873bf9a792bf1e58b1c3887b9264036629a5bf2d2e6579fe8e73edff", size = 4815447 }, + { url = "https://files.pythonhosted.org/packages/97/a8/cd51ceaad6eb849246559a8ef60ae55065a3df550fc5fcd27014361c1bab/lxml-5.3.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:0d7b36afa46c97875303a94e8f3ad932bf78bace9e18e603f2085b652422edcd", size = 5411186 }, + { url = "https://files.pythonhosted.org/packages/89/c3/1e3dabab519481ed7b1fdcba21dcfb8832f57000733ef0e71cf6d09a5e03/lxml-5.3.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:cf120cce539453ae086eacc0130a324e7026113510efa83ab42ef3fcfccac7fb", size = 5324481 }, + { url = "https://files.pythonhosted.org/packages/b6/17/71e9984cf0570cd202ac0a1c9ed5c1b8889b0fc8dc736f5ef0ffb181c284/lxml-5.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:df5c7333167b9674aa8ae1d4008fa4bc17a313cc490b2cca27838bbdcc6bb15b", size = 5011053 }, + { url = "https://files.pythonhosted.org/packages/69/68/9f7e6d3312a91e30829368c2b3217e750adef12a6f8eb10498249f4e8d72/lxml-5.3.0-cp313-cp313-win32.whl", hash = "sha256:c802e1c2ed9f0c06a65bc4ed0189d000ada8049312cfeab6ca635e39c9608957", size = 3485634 }, + { url = "https://files.pythonhosted.org/packages/7d/db/214290d58ad68c587bd5d6af3d34e56830438733d0d0856c0275fde43652/lxml-5.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:406246b96d552e0503e17a1006fd27edac678b3fcc9f1be71a2f94b4ff61528d", size = 3814417 }, +] + +[[package]] +name = "makefun" +version = "1.15.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/00/62966769824620717a3c2d76b1d442489648398b599bdcd490af13bff101/makefun-1.15.6.tar.gz", hash = "sha256:26bc63442a6182fb75efed8b51741dd2d1db2f176bec8c64e20a586256b8f149", size = 72583 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/89/a1/3e145759e776c8866488a71270c399bf7c4e554551ac2e247aa0a18a0596/makefun-1.15.6-py2.py3-none-any.whl", hash = "sha256:e69b870f0bb60304765b1e3db576aaecf2f9b3e5105afe8cfeff8f2afe6ad067", size = 22946 }, +] + +[[package]] +name = "mako" +version = "1.3.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5f/d9/8518279534ed7dace1795d5a47e49d5299dd0994eed1053996402a8902f9/mako-1.3.8.tar.gz", hash = "sha256:577b97e414580d3e088d47c2dbbe9594aa7a5146ed2875d4dfa9075af2dd3cc8", size = 392069 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/bf/7a6a36ce2e4cafdfb202752be68850e22607fccd692847c45c1ae3c17ba6/Mako-1.3.8-py3-none-any.whl", hash = "sha256:42f48953c7eb91332040ff567eb7eea69b22e7a4affbc5ba8e845e8f730f6627", size = 78569 }, +] + +[[package]] +name = "markdown" +version = "3.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/28/3af612670f82f4c056911fbbbb42760255801b3068c48de792d354ff4472/markdown-3.7.tar.gz", hash = "sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2", size = 357086 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/08/83871f3c50fc983b88547c196d11cf8c3340e37c32d2e9d6152abe2c61f7/Markdown-3.7-py3-none-any.whl", hash = "sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803", size = 106349 }, +] + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mdurl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528 }, +] + +[[package]] +name = "markupsafe" +version = "3.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6b/28/bbf83e3f76936960b850435576dd5e67034e200469571be53f69174a2dfd/MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d", size = 14353 }, + { url = "https://files.pythonhosted.org/packages/6c/30/316d194b093cde57d448a4c3209f22e3046c5bb2fb0820b118292b334be7/MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93", size = 12392 }, + { url = "https://files.pythonhosted.org/packages/f2/96/9cdafba8445d3a53cae530aaf83c38ec64c4d5427d975c974084af5bc5d2/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832", size = 23984 }, + { url = "https://files.pythonhosted.org/packages/f1/a4/aefb044a2cd8d7334c8a47d3fb2c9f328ac48cb349468cc31c20b539305f/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84", size = 23120 }, + { url = "https://files.pythonhosted.org/packages/8d/21/5e4851379f88f3fad1de30361db501300d4f07bcad047d3cb0449fc51f8c/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca", size = 23032 }, + { url = "https://files.pythonhosted.org/packages/00/7b/e92c64e079b2d0d7ddf69899c98842f3f9a60a1ae72657c89ce2655c999d/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798", size = 24057 }, + { url = "https://files.pythonhosted.org/packages/f9/ac/46f960ca323037caa0a10662ef97d0a4728e890334fc156b9f9e52bcc4ca/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e", size = 23359 }, + { url = "https://files.pythonhosted.org/packages/69/84/83439e16197337b8b14b6a5b9c2105fff81d42c2a7c5b58ac7b62ee2c3b1/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4", size = 23306 }, + { url = "https://files.pythonhosted.org/packages/9a/34/a15aa69f01e2181ed8d2b685c0d2f6655d5cca2c4db0ddea775e631918cd/MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d", size = 15094 }, + { url = "https://files.pythonhosted.org/packages/da/b8/3a3bd761922d416f3dc5d00bfbed11f66b1ab89a0c2b6e887240a30b0f6b/MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b", size = 15521 }, + { url = "https://files.pythonhosted.org/packages/22/09/d1f21434c97fc42f09d290cbb6350d44eb12f09cc62c9476effdb33a18aa/MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf", size = 14274 }, + { url = "https://files.pythonhosted.org/packages/6b/b0/18f76bba336fa5aecf79d45dcd6c806c280ec44538b3c13671d49099fdd0/MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225", size = 12348 }, + { url = "https://files.pythonhosted.org/packages/e0/25/dd5c0f6ac1311e9b40f4af06c78efde0f3b5cbf02502f8ef9501294c425b/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028", size = 24149 }, + { url = "https://files.pythonhosted.org/packages/f3/f0/89e7aadfb3749d0f52234a0c8c7867877876e0a20b60e2188e9850794c17/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8", size = 23118 }, + { url = "https://files.pythonhosted.org/packages/d5/da/f2eeb64c723f5e3777bc081da884b414671982008c47dcc1873d81f625b6/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c", size = 22993 }, + { url = "https://files.pythonhosted.org/packages/da/0e/1f32af846df486dce7c227fe0f2398dc7e2e51d4a370508281f3c1c5cddc/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557", size = 24178 }, + { url = "https://files.pythonhosted.org/packages/c4/f6/bb3ca0532de8086cbff5f06d137064c8410d10779c4c127e0e47d17c0b71/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22", size = 23319 }, + { url = "https://files.pythonhosted.org/packages/a2/82/8be4c96ffee03c5b4a034e60a31294daf481e12c7c43ab8e34a1453ee48b/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48", size = 23352 }, + { url = "https://files.pythonhosted.org/packages/51/ae/97827349d3fcffee7e184bdf7f41cd6b88d9919c80f0263ba7acd1bbcb18/MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30", size = 15097 }, + { url = "https://files.pythonhosted.org/packages/c1/80/a61f99dc3a936413c3ee4e1eecac96c0da5ed07ad56fd975f1a9da5bc630/MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87", size = 15601 }, + { url = "https://files.pythonhosted.org/packages/83/0e/67eb10a7ecc77a0c2bbe2b0235765b98d164d81600746914bebada795e97/MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", size = 14274 }, + { url = "https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", size = 12352 }, + { url = "https://files.pythonhosted.org/packages/d2/f5/6eadfcd3885ea85fe2a7c128315cc1bb7241e1987443d78c8fe712d03091/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", size = 24122 }, + { url = "https://files.pythonhosted.org/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", size = 23085 }, + { url = "https://files.pythonhosted.org/packages/c2/cf/c9d56af24d56ea04daae7ac0940232d31d5a8354f2b457c6d856b2057d69/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", size = 22978 }, + { url = "https://files.pythonhosted.org/packages/2a/9f/8619835cd6a711d6272d62abb78c033bda638fdc54c4e7f4272cf1c0962b/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", size = 24208 }, + { url = "https://files.pythonhosted.org/packages/f9/bf/176950a1792b2cd2102b8ffeb5133e1ed984547b75db47c25a67d3359f77/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", size = 23357 }, + { url = "https://files.pythonhosted.org/packages/ce/4f/9a02c1d335caabe5c4efb90e1b6e8ee944aa245c1aaaab8e8a618987d816/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", size = 23344 }, + { url = "https://files.pythonhosted.org/packages/ee/55/c271b57db36f748f0e04a759ace9f8f759ccf22b4960c270c78a394f58be/MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", size = 15101 }, + { url = "https://files.pythonhosted.org/packages/29/88/07df22d2dd4df40aba9f3e402e6dc1b8ee86297dddbad4872bd5e7b0094f/MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", size = 15603 }, + { url = "https://files.pythonhosted.org/packages/62/6a/8b89d24db2d32d433dffcd6a8779159da109842434f1dd2f6e71f32f738c/MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", size = 14510 }, + { url = "https://files.pythonhosted.org/packages/7a/06/a10f955f70a2e5a9bf78d11a161029d278eeacbd35ef806c3fd17b13060d/MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", size = 12486 }, + { url = "https://files.pythonhosted.org/packages/34/cf/65d4a571869a1a9078198ca28f39fba5fbb910f952f9dbc5220afff9f5e6/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", size = 25480 }, + { url = "https://files.pythonhosted.org/packages/0c/e3/90e9651924c430b885468b56b3d597cabf6d72be4b24a0acd1fa0e12af67/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", size = 23914 }, + { url = "https://files.pythonhosted.org/packages/66/8c/6c7cf61f95d63bb866db39085150df1f2a5bd3335298f14a66b48e92659c/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", size = 23796 }, + { url = "https://files.pythonhosted.org/packages/bb/35/cbe9238ec3f47ac9a7c8b3df7a808e7cb50fe149dc7039f5f454b3fba218/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", size = 25473 }, + { url = "https://files.pythonhosted.org/packages/e6/32/7621a4382488aa283cc05e8984a9c219abad3bca087be9ec77e89939ded9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", size = 24114 }, + { url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098 }, + { url = "https://files.pythonhosted.org/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", size = 15208 }, + { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739 }, +] + +[[package]] +name = "marshmallow" +version = "3.23.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ac/0f/33b98679f185f5ce58620595b32d4cf8e2fa5fb56d41eb463826558265c6/marshmallow-3.23.2.tar.gz", hash = "sha256:c448ac6455ca4d794773f00bae22c2f351d62d739929f761dce5eacb5c468d7f", size = 176929 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/64/38/8d37b19f6c882482cae7ba8db6d02fce3cba7b3895c93fc80352b30a18f5/marshmallow-3.23.2-py3-none-any.whl", hash = "sha256:bcaf2d6fd74fb1459f8450e85d994997ad3e70036452cbfa4ab685acb19479b3", size = 49326 }, +] + +[[package]] +name = "matplotlib" +version = "3.10.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "contourpy" }, + { name = "cycler" }, + { name = "fonttools" }, + { name = "kiwisolver" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pillow" }, + { name = "pyparsing" }, + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/68/dd/fa2e1a45fce2d09f4aea3cee169760e672c8262325aa5796c49d543dc7e6/matplotlib-3.10.0.tar.gz", hash = "sha256:b886d02a581b96704c9d1ffe55709e49b4d2d52709ccebc4be42db856e511278", size = 36686418 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/f1/e37f6c84d252867d7ddc418fff70fc661cfd363179263b08e52e8b748e30/matplotlib-3.10.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:fd44fc75522f58612ec4a33958a7e5552562b7705b42ef1b4f8c0818e304a363", size = 8171677 }, + { url = "https://files.pythonhosted.org/packages/c7/8b/92e9da1f28310a1f6572b5c55097b0c0ceb5e27486d85fb73b54f5a9b939/matplotlib-3.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c58a9622d5dbeb668f407f35f4e6bfac34bb9ecdcc81680c04d0258169747997", size = 8044945 }, + { url = "https://files.pythonhosted.org/packages/c5/cb/49e83f0fd066937a5bd3bc5c5d63093703f3637b2824df8d856e0558beef/matplotlib-3.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:845d96568ec873be63f25fa80e9e7fae4be854a66a7e2f0c8ccc99e94a8bd4ef", size = 8458269 }, + { url = "https://files.pythonhosted.org/packages/b2/7d/2d873209536b9ee17340754118a2a17988bc18981b5b56e6715ee07373ac/matplotlib-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5439f4c5a3e2e8eab18e2f8c3ef929772fd5641876db71f08127eed95ab64683", size = 8599369 }, + { url = "https://files.pythonhosted.org/packages/b8/03/57d6cbbe85c61fe4cbb7c94b54dce443d68c21961830833a1f34d056e5ea/matplotlib-3.10.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4673ff67a36152c48ddeaf1135e74ce0d4bce1bbf836ae40ed39c29edf7e2765", size = 9405992 }, + { url = "https://files.pythonhosted.org/packages/14/cf/e382598f98be11bf51dd0bc60eca44a517f6793e3dc8b9d53634a144620c/matplotlib-3.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:7e8632baebb058555ac0cde75db885c61f1212e47723d63921879806b40bec6a", size = 8034580 }, + { url = "https://files.pythonhosted.org/packages/44/c7/6b2d8cb7cc251d53c976799cacd3200add56351c175ba89ab9cbd7c1e68a/matplotlib-3.10.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4659665bc7c9b58f8c00317c3c2a299f7f258eeae5a5d56b4c64226fca2f7c59", size = 8172465 }, + { url = "https://files.pythonhosted.org/packages/42/2a/6d66d0fba41e13e9ca6512a0a51170f43e7e7ed3a8dfa036324100775612/matplotlib-3.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d44cb942af1693cced2604c33a9abcef6205601c445f6d0dc531d813af8a2f5a", size = 8043300 }, + { url = "https://files.pythonhosted.org/packages/90/60/2a60342b27b90a16bada939a85e29589902b41073f59668b904b15ea666c/matplotlib-3.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a994f29e968ca002b50982b27168addfd65f0105610b6be7fa515ca4b5307c95", size = 8448936 }, + { url = "https://files.pythonhosted.org/packages/a7/b2/d872fc3d753516870d520595ddd8ce4dd44fa797a240999f125f58521ad7/matplotlib-3.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b0558bae37f154fffda54d779a592bc97ca8b4701f1c710055b609a3bac44c8", size = 8594151 }, + { url = "https://files.pythonhosted.org/packages/f4/bd/b2f60cf7f57d014ab33e4f74602a2b5bdc657976db8196bbc022185f6f9c/matplotlib-3.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:503feb23bd8c8acc75541548a1d709c059b7184cde26314896e10a9f14df5f12", size = 9400347 }, + { url = "https://files.pythonhosted.org/packages/9f/6e/264673e64001b99d747aff5a288eca82826c024437a3694e19aed1decf46/matplotlib-3.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:c40ba2eb08b3f5de88152c2333c58cee7edcead0a2a0d60fcafa116b17117adc", size = 8039144 }, + { url = "https://files.pythonhosted.org/packages/72/11/1b2a094d95dcb6e6edd4a0b238177c439006c6b7a9fe8d31801237bf512f/matplotlib-3.10.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96f2886f5c1e466f21cc41b70c5a0cd47bfa0015eb2d5793c88ebce658600e25", size = 8173073 }, + { url = "https://files.pythonhosted.org/packages/0d/c4/87b6ad2723070511a411ea719f9c70fde64605423b184face4e94986de9d/matplotlib-3.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:12eaf48463b472c3c0f8dbacdbf906e573013df81a0ab82f0616ea4b11281908", size = 8043892 }, + { url = "https://files.pythonhosted.org/packages/57/69/cb0812a136550b21361335e9ffb7d459bf6d13e03cb7b015555d5143d2d6/matplotlib-3.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fbbabc82fde51391c4da5006f965e36d86d95f6ee83fb594b279564a4c5d0d2", size = 8450532 }, + { url = "https://files.pythonhosted.org/packages/ea/3a/bab9deb4fb199c05e9100f94d7f1c702f78d3241e6a71b784d2b88d7bebd/matplotlib-3.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad2e15300530c1a94c63cfa546e3b7864bd18ea2901317bae8bbf06a5ade6dcf", size = 8593905 }, + { url = "https://files.pythonhosted.org/packages/8b/66/742fd242f989adc1847ddf5f445815f73ad7c46aa3440690cc889cfa423c/matplotlib-3.10.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3547d153d70233a8496859097ef0312212e2689cdf8d7ed764441c77604095ae", size = 9399609 }, + { url = "https://files.pythonhosted.org/packages/fa/d6/54cee7142cef7d910a324a7aedf335c0c147b03658b54d49ec48166f10a6/matplotlib-3.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:c55b20591ced744aa04e8c3e4b7543ea4d650b6c3c4b208c08a05b4010e8b442", size = 8039076 }, + { url = "https://files.pythonhosted.org/packages/43/14/815d072dc36e88753433bfd0385113405efb947e6895ff7b4d2e8614a33b/matplotlib-3.10.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9ade1003376731a971e398cc4ef38bb83ee8caf0aee46ac6daa4b0506db1fd06", size = 8211000 }, + { url = "https://files.pythonhosted.org/packages/9a/76/34e75f364194ec352678adcb540964be6f35ec7d3d8c75ebcb17e6839359/matplotlib-3.10.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:95b710fea129c76d30be72c3b38f330269363fbc6e570a5dd43580487380b5ff", size = 8087707 }, + { url = "https://files.pythonhosted.org/packages/c3/2b/b6bc0dff6a72d333bc7df94a66e6ce662d224e43daa8ad8ae4eaa9a77f55/matplotlib-3.10.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cdbaf909887373c3e094b0318d7ff230b2ad9dcb64da7ade654182872ab2593", size = 8477384 }, + { url = "https://files.pythonhosted.org/packages/c2/2d/b5949fb2b76e9b47ab05e25a5f5f887c70de20d8b0cbc704a4e2ee71c786/matplotlib-3.10.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d907fddb39f923d011875452ff1eca29a9e7f21722b873e90db32e5d8ddff12e", size = 8610334 }, + { url = "https://files.pythonhosted.org/packages/d6/9a/6e3c799d5134d9af44b01c787e1360bee38cf51850506ea2e743a787700b/matplotlib-3.10.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3b427392354d10975c1d0f4ee18aa5844640b512d5311ef32efd4dd7db106ede", size = 9406777 }, + { url = "https://files.pythonhosted.org/packages/0e/dd/e6ae97151e5ed648ab2ea48885bc33d39202b640eec7a2910e2c843f7ac0/matplotlib-3.10.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5fd41b0ec7ee45cd960a8e71aea7c946a28a0b8a4dcee47d2856b2af051f334c", size = 8109742 }, +] + +[[package]] +name = "mccabe" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/ff/0ffefdcac38932a54d2b5eed4e0ba8a408f215002cd178ad1df0f2806ff8/mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325", size = 9658 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/27/1a/1f68f9ba0c207934b35b86a8ca3aad8395a3d6dd7921c0686e23853ff5a9/mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e", size = 7350 }, +] + +[[package]] +name = "mcp" +version = "1.1.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "httpx" }, + { name = "httpx-sse" }, + { name = "pydantic" }, + { name = "sse-starlette" }, + { name = "starlette" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9b/f3/5cf212e60681ea6da0dbb6e0d1bc0ab2dbf5eebc749b69663d46f114fea1/mcp-1.1.2.tar.gz", hash = "sha256:694aa9df7a8641b24953c935eb72c63136dc948981021525a0add199bdfee402", size = 57628 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/40/9883eac3718b860d4006eba1920bfcb628f0a1fe37fac46a4f4e391edca6/mcp-1.1.2-py3-none-any.whl", hash = "sha256:a4d32d60fd80a1702440ba4751b847a8a88957a1f7b059880953143e9759965a", size = 36652 }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979 }, +] + +[[package]] +name = "milvus-lite" +version = "2.4.10" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "tqdm" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/7c/0b/262997e63e2eaaf5d9f93d73c9d3e75499c6ec058bd1307864be7efb6704/milvus_lite-2.4.10-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:fc4246d3ed7d1910847afce0c9ba18212e93a6e9b8406048436940578dfad5cb", size = 22281832 }, + { url = "https://files.pythonhosted.org/packages/17/20/9054ace78c61d64a6c24b8e3d6c8a73b23b447028e43c4d1e6c878e8294a/milvus_lite-2.4.10-py3-none-macosx_11_0_arm64.whl", hash = "sha256:74a8e07c5e3b057df17fbb46913388e84df1dc403a200f4e423799a58184c800", size = 19855994 }, + { url = "https://files.pythonhosted.org/packages/34/8e/7858d12d89bf9e84302c6ffd5faf776d7b2de4372a07461f726ce6f9929e/milvus_lite-2.4.10-py3-none-manylinux2014_aarch64.whl", hash = "sha256:240c7386b747bad696ecb5bd1f58d491e86b9d4b92dccee3315ed7256256eddc", size = 39614866 }, + { url = "https://files.pythonhosted.org/packages/84/65/639cb552c892ba5fef73301f878b2e7cabb59c918e0c49c9cf3026d49447/milvus_lite-2.4.10-py3-none-manylinux2014_x86_64.whl", hash = "sha256:211d2e334a043f9282bdd9755f76b9b2d93b23bffa7af240919ffce6a8dfe325", size = 49377774 }, +] + +[[package]] +name = "monotonic" +version = "1.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ea/ca/8e91948b782ddfbd194f323e7e7d9ba12e5877addf04fb2bf8fca38e86ac/monotonic-1.6.tar.gz", hash = "sha256:3a55207bcfed53ddd5c5bae174524062935efed17792e9de2ad0205ce9ad63f7", size = 7615 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/67/7e8406a29b6c45be7af7740456f7f37025f0506ae2e05fb9009a53946860/monotonic-1.6-py2.py3-none-any.whl", hash = "sha256:68687e19a14f11f26d140dd5c86f3dba4bf5df58003000ed467e0e2a69bca96c", size = 8154 }, +] + +[[package]] +name = "multidict" +version = "6.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/be/504b89a5e9ca731cd47487e91c469064f8ae5af93b7259758dcfc2b9c848/multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a", size = 64002 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/93/13/df3505a46d0cd08428e4c8169a196131d1b0c4b515c3649829258843dde6/multidict-6.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3efe2c2cb5763f2f1b275ad2bf7a287d3f7ebbef35648a9726e3b69284a4f3d6", size = 48570 }, + { url = "https://files.pythonhosted.org/packages/f0/e1/a215908bfae1343cdb72f805366592bdd60487b4232d039c437fe8f5013d/multidict-6.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7053d3b0353a8b9de430a4f4b4268ac9a4fb3481af37dfe49825bf45ca24156", size = 29316 }, + { url = "https://files.pythonhosted.org/packages/70/0f/6dc70ddf5d442702ed74f298d69977f904960b82368532c88e854b79f72b/multidict-6.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27e5fc84ccef8dfaabb09d82b7d179c7cf1a3fbc8a966f8274fcb4ab2eb4cadb", size = 29640 }, + { url = "https://files.pythonhosted.org/packages/d8/6d/9c87b73a13d1cdea30b321ef4b3824449866bd7f7127eceed066ccb9b9ff/multidict-6.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e2b90b43e696f25c62656389d32236e049568b39320e2735d51f08fd362761b", size = 131067 }, + { url = "https://files.pythonhosted.org/packages/cc/1e/1b34154fef373371fd6c65125b3d42ff5f56c7ccc6bfff91b9b3c60ae9e0/multidict-6.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d83a047959d38a7ff552ff94be767b7fd79b831ad1cd9920662db05fec24fe72", size = 138507 }, + { url = "https://files.pythonhosted.org/packages/fb/e0/0bc6b2bac6e461822b5f575eae85da6aae76d0e2a79b6665d6206b8e2e48/multidict-6.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1a9dd711d0877a1ece3d2e4fea11a8e75741ca21954c919406b44e7cf971304", size = 133905 }, + { url = "https://files.pythonhosted.org/packages/ba/af/73d13b918071ff9b2205fcf773d316e0f8fefb4ec65354bbcf0b10908cc6/multidict-6.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec2abea24d98246b94913b76a125e855eb5c434f7c46546046372fe60f666351", size = 129004 }, + { url = "https://files.pythonhosted.org/packages/74/21/23960627b00ed39643302d81bcda44c9444ebcdc04ee5bedd0757513f259/multidict-6.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4867cafcbc6585e4b678876c489b9273b13e9fff9f6d6d66add5e15d11d926cb", size = 121308 }, + { url = "https://files.pythonhosted.org/packages/8b/5c/cf282263ffce4a596ed0bb2aa1a1dddfe1996d6a62d08842a8d4b33dca13/multidict-6.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b48204e8d955c47c55b72779802b219a39acc3ee3d0116d5080c388970b76e3", size = 132608 }, + { url = "https://files.pythonhosted.org/packages/d7/3e/97e778c041c72063f42b290888daff008d3ab1427f5b09b714f5a8eff294/multidict-6.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8fff389528cad1618fb4b26b95550327495462cd745d879a8c7c2115248e399", size = 127029 }, + { url = "https://files.pythonhosted.org/packages/47/ac/3efb7bfe2f3aefcf8d103e9a7162572f01936155ab2f7ebcc7c255a23212/multidict-6.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a7a9541cd308eed5e30318430a9c74d2132e9a8cb46b901326272d780bf2d423", size = 137594 }, + { url = "https://files.pythonhosted.org/packages/42/9b/6c6e9e8dc4f915fc90a9b7798c44a30773dea2995fdcb619870e705afe2b/multidict-6.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:da1758c76f50c39a2efd5e9859ce7d776317eb1dd34317c8152ac9251fc574a3", size = 134556 }, + { url = "https://files.pythonhosted.org/packages/1d/10/8e881743b26aaf718379a14ac58572a240e8293a1c9d68e1418fb11c0f90/multidict-6.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c943a53e9186688b45b323602298ab727d8865d8c9ee0b17f8d62d14b56f0753", size = 130993 }, + { url = "https://files.pythonhosted.org/packages/45/84/3eb91b4b557442802d058a7579e864b329968c8d0ea57d907e7023c677f2/multidict-6.1.0-cp311-cp311-win32.whl", hash = "sha256:90f8717cb649eea3504091e640a1b8568faad18bd4b9fcd692853a04475a4b80", size = 26405 }, + { url = "https://files.pythonhosted.org/packages/9f/0b/ad879847ecbf6d27e90a6eabb7eff6b62c129eefe617ea45eae7c1f0aead/multidict-6.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:82176036e65644a6cc5bd619f65f6f19781e8ec2e5330f51aa9ada7504cc1926", size = 28795 }, + { url = "https://files.pythonhosted.org/packages/fd/16/92057c74ba3b96d5e211b553895cd6dc7cc4d1e43d9ab8fafc727681ef71/multidict-6.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b04772ed465fa3cc947db808fa306d79b43e896beb677a56fb2347ca1a49c1fa", size = 48713 }, + { url = "https://files.pythonhosted.org/packages/94/3d/37d1b8893ae79716179540b89fc6a0ee56b4a65fcc0d63535c6f5d96f217/multidict-6.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6180c0ae073bddeb5a97a38c03f30c233e0a4d39cd86166251617d1bbd0af436", size = 29516 }, + { url = "https://files.pythonhosted.org/packages/a2/12/adb6b3200c363062f805275b4c1e656be2b3681aada66c80129932ff0bae/multidict-6.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:071120490b47aa997cca00666923a83f02c7fbb44f71cf7f136df753f7fa8761", size = 29557 }, + { url = "https://files.pythonhosted.org/packages/47/e9/604bb05e6e5bce1e6a5cf80a474e0f072e80d8ac105f1b994a53e0b28c42/multidict-6.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50b3a2710631848991d0bf7de077502e8994c804bb805aeb2925a981de58ec2e", size = 130170 }, + { url = "https://files.pythonhosted.org/packages/7e/13/9efa50801785eccbf7086b3c83b71a4fb501a4d43549c2f2f80b8787d69f/multidict-6.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b58c621844d55e71c1b7f7c498ce5aa6985d743a1a59034c57a905b3f153c1ef", size = 134836 }, + { url = "https://files.pythonhosted.org/packages/bf/0f/93808b765192780d117814a6dfcc2e75de6dcc610009ad408b8814dca3ba/multidict-6.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55b6d90641869892caa9ca42ff913f7ff1c5ece06474fbd32fb2cf6834726c95", size = 133475 }, + { url = "https://files.pythonhosted.org/packages/d3/c8/529101d7176fe7dfe1d99604e48d69c5dfdcadb4f06561f465c8ef12b4df/multidict-6.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b820514bfc0b98a30e3d85462084779900347e4d49267f747ff54060cc33925", size = 131049 }, + { url = "https://files.pythonhosted.org/packages/ca/0c/fc85b439014d5a58063e19c3a158a889deec399d47b5269a0f3b6a2e28bc/multidict-6.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10a9b09aba0c5b48c53761b7c720aaaf7cf236d5fe394cd399c7ba662d5f9966", size = 120370 }, + { url = "https://files.pythonhosted.org/packages/db/46/d4416eb20176492d2258fbd47b4abe729ff3b6e9c829ea4236f93c865089/multidict-6.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e16bf3e5fc9f44632affb159d30a437bfe286ce9e02754759be5536b169b305", size = 125178 }, + { url = "https://files.pythonhosted.org/packages/5b/46/73697ad7ec521df7de5531a32780bbfd908ded0643cbe457f981a701457c/multidict-6.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76f364861c3bfc98cbbcbd402d83454ed9e01a5224bb3a28bf70002a230f73e2", size = 119567 }, + { url = "https://files.pythonhosted.org/packages/cd/ed/51f060e2cb0e7635329fa6ff930aa5cffa17f4c7f5c6c3ddc3500708e2f2/multidict-6.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:820c661588bd01a0aa62a1283f20d2be4281b086f80dad9e955e690c75fb54a2", size = 129822 }, + { url = "https://files.pythonhosted.org/packages/df/9e/ee7d1954b1331da3eddea0c4e08d9142da5f14b1321c7301f5014f49d492/multidict-6.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:0e5f362e895bc5b9e67fe6e4ded2492d8124bdf817827f33c5b46c2fe3ffaca6", size = 128656 }, + { url = "https://files.pythonhosted.org/packages/77/00/8538f11e3356b5d95fa4b024aa566cde7a38aa7a5f08f4912b32a037c5dc/multidict-6.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ec660d19bbc671e3a6443325f07263be452c453ac9e512f5eb935e7d4ac28b3", size = 125360 }, + { url = "https://files.pythonhosted.org/packages/be/05/5d334c1f2462d43fec2363cd00b1c44c93a78c3925d952e9a71caf662e96/multidict-6.1.0-cp312-cp312-win32.whl", hash = "sha256:58130ecf8f7b8112cdb841486404f1282b9c86ccb30d3519faf301b2e5659133", size = 26382 }, + { url = "https://files.pythonhosted.org/packages/a3/bf/f332a13486b1ed0496d624bcc7e8357bb8053823e8cd4b9a18edc1d97e73/multidict-6.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:188215fc0aafb8e03341995e7c4797860181562380f81ed0a87ff455b70bf1f1", size = 28529 }, + { url = "https://files.pythonhosted.org/packages/22/67/1c7c0f39fe069aa4e5d794f323be24bf4d33d62d2a348acdb7991f8f30db/multidict-6.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d569388c381b24671589335a3be6e1d45546c2988c2ebe30fdcada8457a31008", size = 48771 }, + { url = "https://files.pythonhosted.org/packages/3c/25/c186ee7b212bdf0df2519eacfb1981a017bda34392c67542c274651daf23/multidict-6.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:052e10d2d37810b99cc170b785945421141bf7bb7d2f8799d431e7db229c385f", size = 29533 }, + { url = "https://files.pythonhosted.org/packages/67/5e/04575fd837e0958e324ca035b339cea174554f6f641d3fb2b4f2e7ff44a2/multidict-6.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f90c822a402cb865e396a504f9fc8173ef34212a342d92e362ca498cad308e28", size = 29595 }, + { url = "https://files.pythonhosted.org/packages/d3/b2/e56388f86663810c07cfe4a3c3d87227f3811eeb2d08450b9e5d19d78876/multidict-6.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b225d95519a5bf73860323e633a664b0d85ad3d5bede6d30d95b35d4dfe8805b", size = 130094 }, + { url = "https://files.pythonhosted.org/packages/6c/ee/30ae9b4186a644d284543d55d491fbd4239b015d36b23fea43b4c94f7052/multidict-6.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23bfd518810af7de1116313ebd9092cb9aa629beb12f6ed631ad53356ed6b86c", size = 134876 }, + { url = "https://files.pythonhosted.org/packages/84/c7/70461c13ba8ce3c779503c70ec9d0345ae84de04521c1f45a04d5f48943d/multidict-6.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c09fcfdccdd0b57867577b719c69e347a436b86cd83747f179dbf0cc0d4c1f3", size = 133500 }, + { url = "https://files.pythonhosted.org/packages/4a/9f/002af221253f10f99959561123fae676148dd730e2daa2cd053846a58507/multidict-6.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf6bea52ec97e95560af5ae576bdac3aa3aae0b6758c6efa115236d9e07dae44", size = 131099 }, + { url = "https://files.pythonhosted.org/packages/82/42/d1c7a7301d52af79d88548a97e297f9d99c961ad76bbe6f67442bb77f097/multidict-6.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57feec87371dbb3520da6192213c7d6fc892d5589a93db548331954de8248fd2", size = 120403 }, + { url = "https://files.pythonhosted.org/packages/68/f3/471985c2c7ac707547553e8f37cff5158030d36bdec4414cb825fbaa5327/multidict-6.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0c3f390dc53279cbc8ba976e5f8035eab997829066756d811616b652b00a23a3", size = 125348 }, + { url = "https://files.pythonhosted.org/packages/67/2c/e6df05c77e0e433c214ec1d21ddd203d9a4770a1f2866a8ca40a545869a0/multidict-6.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:59bfeae4b25ec05b34f1956eaa1cb38032282cd4dfabc5056d0a1ec4d696d3aa", size = 119673 }, + { url = "https://files.pythonhosted.org/packages/c5/cd/bc8608fff06239c9fb333f9db7743a1b2eafe98c2666c9a196e867a3a0a4/multidict-6.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b2f59caeaf7632cc633b5cf6fc449372b83bbdf0da4ae04d5be36118e46cc0aa", size = 129927 }, + { url = "https://files.pythonhosted.org/packages/44/8e/281b69b7bc84fc963a44dc6e0bbcc7150e517b91df368a27834299a526ac/multidict-6.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:37bb93b2178e02b7b618893990941900fd25b6b9ac0fa49931a40aecdf083fe4", size = 128711 }, + { url = "https://files.pythonhosted.org/packages/12/a4/63e7cd38ed29dd9f1881d5119f272c898ca92536cdb53ffe0843197f6c85/multidict-6.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4e9f48f58c2c523d5a06faea47866cd35b32655c46b443f163d08c6d0ddb17d6", size = 125519 }, + { url = "https://files.pythonhosted.org/packages/38/e0/4f5855037a72cd8a7a2f60a3952d9aa45feedb37ae7831642102604e8a37/multidict-6.1.0-cp313-cp313-win32.whl", hash = "sha256:3a37ffb35399029b45c6cc33640a92bef403c9fd388acce75cdc88f58bd19a81", size = 26426 }, + { url = "https://files.pythonhosted.org/packages/7e/a5/17ee3a4db1e310b7405f5d25834460073a8ccd86198ce044dfaf69eac073/multidict-6.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:e9aa71e15d9d9beaad2c6b9319edcdc0a49a43ef5c0a4c8265ca9ee7d6c67774", size = 28531 }, + { url = "https://files.pythonhosted.org/packages/99/b7/b9e70fde2c0f0c9af4cc5277782a89b66d35948ea3369ec9f598358c3ac5/multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506", size = 10051 }, +] + +[[package]] +name = "multiprocess" +version = "0.70.16" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "dill" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b5/ae/04f39c5d0d0def03247c2893d6f2b83c136bf3320a2154d7b8858f2ba72d/multiprocess-0.70.16.tar.gz", hash = "sha256:161af703d4652a0e1410be6abccecde4a7ddffd19341be0a7011b94aeb171ac1", size = 1772603 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bc/f7/7ec7fddc92e50714ea3745631f79bd9c96424cb2702632521028e57d3a36/multiprocess-0.70.16-py310-none-any.whl", hash = "sha256:c4a9944c67bd49f823687463660a2d6daae94c289adff97e0f9d696ba6371d02", size = 134824 }, + { url = "https://files.pythonhosted.org/packages/50/15/b56e50e8debaf439f44befec5b2af11db85f6e0f344c3113ae0be0593a91/multiprocess-0.70.16-py311-none-any.whl", hash = "sha256:af4cabb0dac72abfb1e794fa7855c325fd2b55a10a44628a3c1ad3311c04127a", size = 143519 }, + { url = "https://files.pythonhosted.org/packages/0a/7d/a988f258104dcd2ccf1ed40fdc97e26c4ac351eeaf81d76e266c52d84e2f/multiprocess-0.70.16-py312-none-any.whl", hash = "sha256:fc0544c531920dde3b00c29863377f87e1632601092ea2daca74e4beb40faa2e", size = 146741 }, + { url = "https://files.pythonhosted.org/packages/ea/89/38df130f2c799090c978b366cfdf5b96d08de5b29a4a293df7f7429fa50b/multiprocess-0.70.16-py38-none-any.whl", hash = "sha256:a71d82033454891091a226dfc319d0cfa8019a4e888ef9ca910372a446de4435", size = 132628 }, + { url = "https://files.pythonhosted.org/packages/da/d9/f7f9379981e39b8c2511c9e0326d212accacb82f12fbfdc1aa2ce2a7b2b6/multiprocess-0.70.16-py39-none-any.whl", hash = "sha256:a0bafd3ae1b732eac64be2e72038231c1ba97724b60b09400d68f229fcc2fbf3", size = 133351 }, +] + +[[package]] +name = "mypy" +version = "1.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mypy-extensions" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e8/21/7e9e523537991d145ab8a0a2fd98548d67646dc2aaaf6091c31ad883e7c1/mypy-1.13.0.tar.gz", hash = "sha256:0291a61b6fbf3e6673e3405cfcc0e7650bebc7939659fdca2702958038bd835e", size = 3152532 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/19/de0822609e5b93d02579075248c7aa6ceaddcea92f00bf4ea8e4c22e3598/mypy-1.13.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:581665e6f3a8a9078f28d5502f4c334c0c8d802ef55ea0e7276a6e409bc0d82d", size = 10939027 }, + { url = "https://files.pythonhosted.org/packages/c8/71/6950fcc6ca84179137e4cbf7cf41e6b68b4a339a1f5d3e954f8c34e02d66/mypy-1.13.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3ddb5b9bf82e05cc9a627e84707b528e5c7caaa1c55c69e175abb15a761cec2d", size = 10108699 }, + { url = "https://files.pythonhosted.org/packages/26/50/29d3e7dd166e74dc13d46050b23f7d6d7533acf48f5217663a3719db024e/mypy-1.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:20c7ee0bc0d5a9595c46f38beb04201f2620065a93755704e141fcac9f59db2b", size = 12506263 }, + { url = "https://files.pythonhosted.org/packages/3f/1d/676e76f07f7d5ddcd4227af3938a9c9640f293b7d8a44dd4ff41d4db25c1/mypy-1.13.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3790ded76f0b34bc9c8ba4def8f919dd6a46db0f5a6610fb994fe8efdd447f73", size = 12984688 }, + { url = "https://files.pythonhosted.org/packages/9c/03/5a85a30ae5407b1d28fab51bd3e2103e52ad0918d1e68f02a7778669a307/mypy-1.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:51f869f4b6b538229c1d1bcc1dd7d119817206e2bc54e8e374b3dfa202defcca", size = 9626811 }, + { url = "https://files.pythonhosted.org/packages/fb/31/c526a7bd2e5c710ae47717c7a5f53f616db6d9097caf48ad650581e81748/mypy-1.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5c7051a3461ae84dfb5dd15eff5094640c61c5f22257c8b766794e6dd85e72d5", size = 11077900 }, + { url = "https://files.pythonhosted.org/packages/83/67/b7419c6b503679d10bd26fc67529bc6a1f7a5f220bbb9f292dc10d33352f/mypy-1.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:39bb21c69a5d6342f4ce526e4584bc5c197fd20a60d14a8624d8743fffb9472e", size = 10074818 }, + { url = "https://files.pythonhosted.org/packages/ba/07/37d67048786ae84e6612575e173d713c9a05d0ae495dde1e68d972207d98/mypy-1.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:164f28cb9d6367439031f4c81e84d3ccaa1e19232d9d05d37cb0bd880d3f93c2", size = 12589275 }, + { url = "https://files.pythonhosted.org/packages/1f/17/b1018c6bb3e9f1ce3956722b3bf91bff86c1cefccca71cec05eae49d6d41/mypy-1.13.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a4c1bfcdbce96ff5d96fc9b08e3831acb30dc44ab02671eca5953eadad07d6d0", size = 13037783 }, + { url = "https://files.pythonhosted.org/packages/cb/32/cd540755579e54a88099aee0287086d996f5a24281a673f78a0e14dba150/mypy-1.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:a0affb3a79a256b4183ba09811e3577c5163ed06685e4d4b46429a271ba174d2", size = 9726197 }, + { url = "https://files.pythonhosted.org/packages/11/bb/ab4cfdc562cad80418f077d8be9b4491ee4fb257440da951b85cbb0a639e/mypy-1.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a7b44178c9760ce1a43f544e595d35ed61ac2c3de306599fa59b38a6048e1aa7", size = 11069721 }, + { url = "https://files.pythonhosted.org/packages/59/3b/a393b1607cb749ea2c621def5ba8c58308ff05e30d9dbdc7c15028bca111/mypy-1.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5d5092efb8516d08440e36626f0153b5006d4088c1d663d88bf79625af3d1d62", size = 10063996 }, + { url = "https://files.pythonhosted.org/packages/d1/1f/6b76be289a5a521bb1caedc1f08e76ff17ab59061007f201a8a18cc514d1/mypy-1.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de2904956dac40ced10931ac967ae63c5089bd498542194b436eb097a9f77bc8", size = 12584043 }, + { url = "https://files.pythonhosted.org/packages/a6/83/5a85c9a5976c6f96e3a5a7591aa28b4a6ca3a07e9e5ba0cec090c8b596d6/mypy-1.13.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:7bfd8836970d33c2105562650656b6846149374dc8ed77d98424b40b09340ba7", size = 13036996 }, + { url = "https://files.pythonhosted.org/packages/b4/59/c39a6f752f1f893fccbcf1bdd2aca67c79c842402b5283563d006a67cf76/mypy-1.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:9f73dba9ec77acb86457a8fc04b5239822df0c14a082564737833d2963677dbc", size = 9737709 }, + { url = "https://files.pythonhosted.org/packages/3b/86/72ce7f57431d87a7ff17d442f521146a6585019eb8f4f31b7c02801f78ad/mypy-1.13.0-py3-none-any.whl", hash = "sha256:9c250883f9fd81d212e0952c92dbfcc96fc237f4b7c92f56ac81fd48460b3e5a", size = 2647043 }, +] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/98/a4/1ab47638b92648243faf97a5aeb6ea83059cc3624972ab6b8d2316078d3f/mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782", size = 4433 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d", size = 4695 }, +] + +[[package]] +name = "neo4j" +version = "5.27.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytz" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9c/b6/31ed9f3df8b948aecd31952193b803cd2007551f2f81aaa60d264e8d1950/neo4j-5.27.0.tar.gz", hash = "sha256:f82ee807cd15b178898d83f41a66372e11719a25dd487fd7bea48fd4b7323765", size = 223803 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/9a/cec819e5887804896db67b13215682b15e6f9201d9cf63890fee2b9a29e9/neo4j-5.27.0-py3-none-any.whl", hash = "sha256:929c14b9e5341267324eca170b39d1798b032bffacc26a0529eacaf678ae483f", size = 301679 }, +] + +[[package]] +name = "nest-asyncio" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/83/f8/51569ac65d696c8ecbee95938f89d4abf00f47d58d48f6fbabfe8f0baefe/nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe", size = 7418 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/c4/c2971a3ba4c6103a3d10c4b0f24f461ddc027f0f09763220cf35ca1401b3/nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c", size = 5195 }, +] + +[[package]] +name = "networkx" +version = "3.4.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fd/1d/06475e1cd5264c0b870ea2cc6fdb3e37177c1e565c43f56ff17a10e3937f/networkx-3.4.2.tar.gz", hash = "sha256:307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1", size = 2151368 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl", hash = "sha256:df5d4365b724cf81b8c6a7312509d0c22386097011ad1abe274afd5e9d3bbc5f", size = 1723263 }, +] + +[[package]] +name = "nltk" +version = "3.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "joblib" }, + { name = "regex" }, + { name = "tqdm" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3c/87/db8be88ad32c2d042420b6fd9ffd4a149f9a0d7f0e86b3f543be2eeeedd2/nltk-3.9.1.tar.gz", hash = "sha256:87d127bd3de4bd89a4f81265e5fa59cb1b199b27440175370f7417d2bc7ae868", size = 2904691 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4d/66/7d9e26593edda06e8cb531874633f7c2372279c3b0f46235539fe546df8b/nltk-3.9.1-py3-none-any.whl", hash = "sha256:4fa26829c5b00715afe3061398a8989dc643b92ce7dd93fb4585a70930d168a1", size = 1505442 }, +] + +[[package]] +name = "numpy" +version = "1.26.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/65/6e/09db70a523a96d25e115e71cc56a6f9031e7b8cd166c1ac8438307c14058/numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010", size = 15786129 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/57/baae43d14fe163fa0e4c47f307b6b2511ab8d7d30177c491960504252053/numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71", size = 20630554 }, + { url = "https://files.pythonhosted.org/packages/1a/2e/151484f49fd03944c4a3ad9c418ed193cfd02724e138ac8a9505d056c582/numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef", size = 13997127 }, + { url = "https://files.pythonhosted.org/packages/79/ae/7e5b85136806f9dadf4878bf73cf223fe5c2636818ba3ab1c585d0403164/numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e", size = 14222994 }, + { url = "https://files.pythonhosted.org/packages/3a/d0/edc009c27b406c4f9cbc79274d6e46d634d139075492ad055e3d68445925/numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5", size = 18252005 }, + { url = "https://files.pythonhosted.org/packages/09/bf/2b1aaf8f525f2923ff6cfcf134ae5e750e279ac65ebf386c75a0cf6da06a/numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a", size = 13885297 }, + { url = "https://files.pythonhosted.org/packages/df/a0/4e0f14d847cfc2a633a1c8621d00724f3206cfeddeb66d35698c4e2cf3d2/numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a", size = 18093567 }, + { url = "https://files.pythonhosted.org/packages/d2/b7/a734c733286e10a7f1a8ad1ae8c90f2d33bf604a96548e0a4a3a6739b468/numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20", size = 5968812 }, + { url = "https://files.pythonhosted.org/packages/3f/6b/5610004206cf7f8e7ad91c5a85a8c71b2f2f8051a0c0c4d5916b76d6cbb2/numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2", size = 15811913 }, + { url = "https://files.pythonhosted.org/packages/95/12/8f2020a8e8b8383ac0177dc9570aad031a3beb12e38847f7129bacd96228/numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218", size = 20335901 }, + { url = "https://files.pythonhosted.org/packages/75/5b/ca6c8bd14007e5ca171c7c03102d17b4f4e0ceb53957e8c44343a9546dcc/numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b", size = 13685868 }, + { url = "https://files.pythonhosted.org/packages/79/f8/97f10e6755e2a7d027ca783f63044d5b1bc1ae7acb12afe6a9b4286eac17/numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b", size = 13925109 }, + { url = "https://files.pythonhosted.org/packages/0f/50/de23fde84e45f5c4fda2488c759b69990fd4512387a8632860f3ac9cd225/numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed", size = 17950613 }, + { url = "https://files.pythonhosted.org/packages/4c/0c/9c603826b6465e82591e05ca230dfc13376da512b25ccd0894709b054ed0/numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a", size = 13572172 }, + { url = "https://files.pythonhosted.org/packages/76/8c/2ba3902e1a0fc1c74962ea9bb33a534bb05984ad7ff9515bf8d07527cadd/numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0", size = 17786643 }, + { url = "https://files.pythonhosted.org/packages/28/4a/46d9e65106879492374999e76eb85f87b15328e06bd1550668f79f7b18c6/numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110", size = 5677803 }, + { url = "https://files.pythonhosted.org/packages/16/2e/86f24451c2d530c88daf997cb8d6ac622c1d40d19f5a031ed68a4b73a374/numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818", size = 15517754 }, +] + +[[package]] +name = "oauthlib" +version = "3.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6d/fa/fbf4001037904031639e6bfbfc02badfc7e12f137a8afa254df6c4c8a670/oauthlib-3.2.2.tar.gz", hash = "sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918", size = 177352 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl", hash = "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca", size = 151688 }, +] + +[[package]] +name = "olefile" +version = "0.47" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/69/1b/077b508e3e500e1629d366249c3ccb32f95e50258b231705c09e3c7a4366/olefile-0.47.zip", hash = "sha256:599383381a0bf3dfbd932ca0ca6515acd174ed48870cbf7fee123d698c192c1c", size = 112240 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/17/d3/b64c356a907242d719fc668b71befd73324e47ab46c8ebbbede252c154b2/olefile-0.47-py2.py3-none-any.whl", hash = "sha256:543c7da2a7adadf21214938bb79c83ea12b473a4b6ee4ad4bf854e7715e13d1f", size = 114565 }, +] + +[[package]] +name = "openai" +version = "1.52.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "distro" }, + { name = "httpx" }, + { name = "jiter" }, + { name = "pydantic" }, + { name = "sniffio" }, + { name = "tqdm" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/12/00/0983e56ca4535394a34f3ce25429ce6710878f2f8d7931973d04364ca922/openai-1.52.0.tar.gz", hash = "sha256:95c65a5f77559641ab8f3e4c3a050804f7b51d278870e2ec1f7444080bfe565a", size = 309426 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/1e/9dc3ccee95d0e16e54e353d3c355bb7cc506d56a2dbb0a07bc739cc48eac/openai-1.52.0-py3-none-any.whl", hash = "sha256:0c249f20920183b0a2ca4f7dba7b0452df3ecd0fa7985eb1d91ad884bc3ced9c", size = 386947 }, +] + +[[package]] +name = "openpyxl" +version = "3.1.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "et-xmlfile" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3d/f9/88d94a75de065ea32619465d2f77b29a0469500e99012523b91cc4141cd1/openpyxl-3.1.5.tar.gz", hash = "sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050", size = 186464 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/da/977ded879c29cbd04de313843e76868e6e13408a94ed6b987245dc7c8506/openpyxl-3.1.5-py2.py3-none-any.whl", hash = "sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2", size = 250910 }, +] + +[[package]] +name = "opentelemetry-api" +version = "1.27.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "deprecated" }, + { name = "importlib-metadata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c9/83/93114b6de85a98963aec218a51509a52ed3f8de918fe91eb0f7299805c3f/opentelemetry_api-1.27.0.tar.gz", hash = "sha256:ed673583eaa5f81b5ce5e86ef7cdaf622f88ef65f0b9aab40b843dcae5bef342", size = 62693 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/1f/737dcdbc9fea2fa96c1b392ae47275165a7c641663fbb08a8d252968eed2/opentelemetry_api-1.27.0-py3-none-any.whl", hash = "sha256:953d5871815e7c30c81b56d910c707588000fff7a3ca1c73e6531911d53065e7", size = 63970 }, +] + +[[package]] +name = "opentelemetry-exporter-otlp-proto-common" +version = "1.27.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-proto" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cd/2e/7eaf4ba595fb5213cf639c9158dfb64aacb2e4c7d74bfa664af89fa111f4/opentelemetry_exporter_otlp_proto_common-1.27.0.tar.gz", hash = "sha256:159d27cf49f359e3798c4c3eb8da6ef4020e292571bd8c5604a2a573231dd5c8", size = 17860 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/27/4610ab3d9bb3cde4309b6505f98b3aabca04a26aa480aa18cede23149837/opentelemetry_exporter_otlp_proto_common-1.27.0-py3-none-any.whl", hash = "sha256:675db7fffcb60946f3a5c43e17d1168a3307a94a930ecf8d2ea1f286f3d4f79a", size = 17848 }, +] + +[[package]] +name = "opentelemetry-exporter-otlp-proto-grpc" +version = "1.27.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "deprecated" }, + { name = "googleapis-common-protos" }, + { name = "grpcio" }, + { name = "opentelemetry-api" }, + { name = "opentelemetry-exporter-otlp-proto-common" }, + { name = "opentelemetry-proto" }, + { name = "opentelemetry-sdk" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/d0/c1e375b292df26e0ffebf194e82cd197e4c26cc298582bda626ce3ce74c5/opentelemetry_exporter_otlp_proto_grpc-1.27.0.tar.gz", hash = "sha256:af6f72f76bcf425dfb5ad11c1a6d6eca2863b91e63575f89bb7b4b55099d968f", size = 26244 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8d/80/32217460c2c64c0568cea38410124ff680a9b65f6732867bbf857c4d8626/opentelemetry_exporter_otlp_proto_grpc-1.27.0-py3-none-any.whl", hash = "sha256:56b5bbd5d61aab05e300d9d62a6b3c134827bbd28d0b12f2649c2da368006c9e", size = 18541 }, +] + +[[package]] +name = "opentelemetry-proto" +version = "1.27.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "protobuf" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9a/59/959f0beea798ae0ee9c979b90f220736fbec924eedbefc60ca581232e659/opentelemetry_proto-1.27.0.tar.gz", hash = "sha256:33c9345d91dafd8a74fc3d7576c5a38f18b7fdf8d02983ac67485386132aedd6", size = 34749 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/56/3d2d826834209b19a5141eed717f7922150224d1a982385d19a9444cbf8d/opentelemetry_proto-1.27.0-py3-none-any.whl", hash = "sha256:b133873de5581a50063e1e4b29cdcf0c5e253a8c2d8dc1229add20a4c3830ace", size = 52464 }, +] + +[[package]] +name = "opentelemetry-sdk" +version = "1.27.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-api" }, + { name = "opentelemetry-semantic-conventions" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0d/9a/82a6ac0f06590f3d72241a587cb8b0b751bd98728e896cc4cbd4847248e6/opentelemetry_sdk-1.27.0.tar.gz", hash = "sha256:d525017dea0ccce9ba4e0245100ec46ecdc043f2d7b8315d56b19aff0904fa6f", size = 145019 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/bd/a6602e71e315055d63b2ff07172bd2d012b4cba2d4e00735d74ba42fc4d6/opentelemetry_sdk-1.27.0-py3-none-any.whl", hash = "sha256:365f5e32f920faf0fd9e14fdfd92c086e317eaa5f860edba9cdc17a380d9197d", size = 110505 }, +] + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.48b0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "deprecated" }, + { name = "opentelemetry-api" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0a/89/1724ad69f7411772446067cdfa73b598694c8c91f7f8c922e344d96d81f9/opentelemetry_semantic_conventions-0.48b0.tar.gz", hash = "sha256:12d74983783b6878162208be57c9effcb89dc88691c64992d70bb89dc00daa1a", size = 89445 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/7a/4f0063dbb0b6c971568291a8bc19a4ca70d3c185db2d956230dd67429dfc/opentelemetry_semantic_conventions-0.48b0-py3-none-any.whl", hash = "sha256:a0de9f45c413a8669788a38569c7e0a11ce6ce97861a628cca785deecdc32a1f", size = 149685 }, +] + +[[package]] +name = "orderly-set" +version = "5.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5d/9e/8fdcb9ab1b6983cc7c185a4ddafc27518118bd80e9ff2f30aba83636af37/orderly_set-5.2.3.tar.gz", hash = "sha256:571ed97c5a5fca7ddeb6b2d26c19aca896b0ed91f334d9c109edd2f265fb3017", size = 19698 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cc/bb/a3a4eab8430f14c7d1476f9db261d32654cb3d1794c0266a46f6574e1190/orderly_set-5.2.3-py3-none-any.whl", hash = "sha256:d357cedcf67f4ebff0d4cbd5b0997e98eeb65dd24fdf5c990a501ae9e82c7d34", size = 12024 }, +] + +[[package]] +name = "orjson" +version = "3.10.12" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/04/bb9f72987e7f62fb591d6c880c0caaa16238e4e530cbc3bdc84a7372d75f/orjson-3.10.12.tar.gz", hash = "sha256:0a78bbda3aea0f9f079057ee1ee8a1ecf790d4f1af88dd67493c6b8ee52506ff", size = 5438647 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d3/48/7c3cd094488f5a3bc58488555244609a8c4d105bc02f2b77e509debf0450/orjson-3.10.12-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a734c62efa42e7df94926d70fe7d37621c783dea9f707a98cdea796964d4cf74", size = 248687 }, + { url = "https://files.pythonhosted.org/packages/ff/90/e55f0e25c7fdd1f82551fe787f85df6f378170caca863c04c810cd8f2730/orjson-3.10.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:750f8b27259d3409eda8350c2919a58b0cfcd2054ddc1bd317a643afc646ef23", size = 136953 }, + { url = "https://files.pythonhosted.org/packages/2a/b3/109c020cf7fee747d400de53b43b183ca9d3ebda3906ad0b858eb5479718/orjson-3.10.12-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb52c22bfffe2857e7aa13b4622afd0dd9d16ea7cc65fd2bf318d3223b1b6252", size = 149090 }, + { url = "https://files.pythonhosted.org/packages/96/d4/35c0275dc1350707d182a1b5da16d1184b9439848060af541285407f18f9/orjson-3.10.12-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:440d9a337ac8c199ff8251e100c62e9488924c92852362cd27af0e67308c16ef", size = 140480 }, + { url = "https://files.pythonhosted.org/packages/3b/79/f863ff460c291ad2d882cc3b580cc444bd4ec60c9df55f6901e6c9a3f519/orjson-3.10.12-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9e15c06491c69997dfa067369baab3bf094ecb74be9912bdc4339972323f252", size = 156564 }, + { url = "https://files.pythonhosted.org/packages/98/7e/8d5835449ddd873424ee7b1c4ba73a0369c1055750990d824081652874d6/orjson-3.10.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:362d204ad4b0b8724cf370d0cd917bb2dc913c394030da748a3bb632445ce7c4", size = 131279 }, + { url = "https://files.pythonhosted.org/packages/46/f5/d34595b6d7f4f984c6fef289269a7f98abcdc2445ebdf90e9273487dda6b/orjson-3.10.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2b57cbb4031153db37b41622eac67329c7810e5f480fda4cfd30542186f006ae", size = 139764 }, + { url = "https://files.pythonhosted.org/packages/b3/5b/ee6e9ddeab54a7b7806768151c2090a2d36025bc346a944f51cf172ef7f7/orjson-3.10.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:165c89b53ef03ce0d7c59ca5c82fa65fe13ddf52eeb22e859e58c237d4e33b9b", size = 131915 }, + { url = "https://files.pythonhosted.org/packages/c4/45/febee5951aef6db5cd8cdb260548101d7ece0ca9d4ddadadf1766306b7a4/orjson-3.10.12-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:5dee91b8dfd54557c1a1596eb90bcd47dbcd26b0baaed919e6861f076583e9da", size = 415783 }, + { url = "https://files.pythonhosted.org/packages/27/a5/5a8569e49f3a6c093bee954a3de95062a231196f59e59df13a48e2420081/orjson-3.10.12-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:77a4e1cfb72de6f905bdff061172adfb3caf7a4578ebf481d8f0530879476c07", size = 142387 }, + { url = "https://files.pythonhosted.org/packages/6e/05/02550fb38c5bf758f3994f55401233a2ef304e175f473f2ac6dbf464cc8b/orjson-3.10.12-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:038d42c7bc0606443459b8fe2d1f121db474c49067d8d14c6a075bbea8bf14dd", size = 130664 }, + { url = "https://files.pythonhosted.org/packages/8c/f4/ba31019d0646ce51f7ac75af6dabf98fd89dbf8ad87a9086da34710738e7/orjson-3.10.12-cp311-none-win32.whl", hash = "sha256:03b553c02ab39bed249bedd4abe37b2118324d1674e639b33fab3d1dafdf4d79", size = 143623 }, + { url = "https://files.pythonhosted.org/packages/83/fe/babf08842b989acf4c46103fefbd7301f026423fab47e6f3ba07b54d7837/orjson-3.10.12-cp311-none-win_amd64.whl", hash = "sha256:8b8713b9e46a45b2af6b96f559bfb13b1e02006f4242c156cbadef27800a55a8", size = 135074 }, + { url = "https://files.pythonhosted.org/packages/a1/2f/989adcafad49afb535da56b95d8f87d82e748548b2a86003ac129314079c/orjson-3.10.12-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:53206d72eb656ca5ac7d3a7141e83c5bbd3ac30d5eccfe019409177a57634b0d", size = 248678 }, + { url = "https://files.pythonhosted.org/packages/69/b9/8c075e21a50c387649db262b618ebb7e4d40f4197b949c146fc225dd23da/orjson-3.10.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac8010afc2150d417ebda810e8df08dd3f544e0dd2acab5370cfa6bcc0662f8f", size = 136763 }, + { url = "https://files.pythonhosted.org/packages/87/d3/78edf10b4ab14c19f6d918cf46a145818f4aca2b5a1773c894c5490d3a4c/orjson-3.10.12-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed459b46012ae950dd2e17150e838ab08215421487371fa79d0eced8d1461d70", size = 149137 }, + { url = "https://files.pythonhosted.org/packages/16/81/5db8852bdf990a0ddc997fa8f16b80895b8cc77c0fe3701569ed2b4b9e78/orjson-3.10.12-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8dcb9673f108a93c1b52bfc51b0af422c2d08d4fc710ce9c839faad25020bb69", size = 140567 }, + { url = "https://files.pythonhosted.org/packages/fa/a6/9ce1e3e3db918512efadad489630c25841eb148513d21dab96f6b4157fa1/orjson-3.10.12-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:22a51ae77680c5c4652ebc63a83d5255ac7d65582891d9424b566fb3b5375ee9", size = 156620 }, + { url = "https://files.pythonhosted.org/packages/47/d4/05133d6bea24e292d2f7628b1e19986554f7d97b6412b3e51d812e38db2d/orjson-3.10.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:910fdf2ac0637b9a77d1aad65f803bac414f0b06f720073438a7bd8906298192", size = 131555 }, + { url = "https://files.pythonhosted.org/packages/b9/7a/b3fbffda8743135c7811e95dc2ab7cdbc5f04999b83c2957d046f1b3fac9/orjson-3.10.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:24ce85f7100160936bc2116c09d1a8492639418633119a2224114f67f63a4559", size = 139743 }, + { url = "https://files.pythonhosted.org/packages/b5/13/95bbcc9a6584aa083da5ce5004ce3d59ea362a542a0b0938d884fd8790b6/orjson-3.10.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8a76ba5fc8dd9c913640292df27bff80a685bed3a3c990d59aa6ce24c352f8fc", size = 131733 }, + { url = "https://files.pythonhosted.org/packages/e8/29/dddbb2ea6e7af426fcc3da65a370618a88141de75c6603313d70768d1df1/orjson-3.10.12-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ff70ef093895fd53f4055ca75f93f047e088d1430888ca1229393a7c0521100f", size = 415788 }, + { url = "https://files.pythonhosted.org/packages/53/df/4aea59324ac539975919b4705ee086aced38e351a6eb3eea0f5071dd5661/orjson-3.10.12-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f4244b7018b5753ecd10a6d324ec1f347da130c953a9c88432c7fbc8875d13be", size = 142347 }, + { url = "https://files.pythonhosted.org/packages/55/55/a52d83d7c49f8ff44e0daab10554490447d6c658771569e1c662aa7057fe/orjson-3.10.12-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:16135ccca03445f37921fa4b585cff9a58aa8d81ebcb27622e69bfadd220b32c", size = 130829 }, + { url = "https://files.pythonhosted.org/packages/a1/8b/b1beb1624dd4adf7d72e2d9b73c4b529e7851c0c754f17858ea13e368b33/orjson-3.10.12-cp312-none-win32.whl", hash = "sha256:2d879c81172d583e34153d524fcba5d4adafbab8349a7b9f16ae511c2cee8708", size = 143659 }, + { url = "https://files.pythonhosted.org/packages/13/91/634c9cd0bfc6a857fc8fab9bf1a1bd9f7f3345e0d6ca5c3d4569ceb6dcfa/orjson-3.10.12-cp312-none-win_amd64.whl", hash = "sha256:fc23f691fa0f5c140576b8c365bc942d577d861a9ee1142e4db468e4e17094fb", size = 135221 }, + { url = "https://files.pythonhosted.org/packages/1b/bb/3f560735f46fa6f875a9d7c4c2171a58cfb19f56a633d5ad5037a924f35f/orjson-3.10.12-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:47962841b2a8aa9a258b377f5188db31ba49af47d4003a32f55d6f8b19006543", size = 248662 }, + { url = "https://files.pythonhosted.org/packages/a3/df/54817902350636cc9270db20486442ab0e4db33b38555300a1159b439d16/orjson-3.10.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6334730e2532e77b6054e87ca84f3072bee308a45a452ea0bffbbbc40a67e296", size = 126055 }, + { url = "https://files.pythonhosted.org/packages/2e/77/55835914894e00332601a74540840f7665e81f20b3e2b9a97614af8565ed/orjson-3.10.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:accfe93f42713c899fdac2747e8d0d5c659592df2792888c6c5f829472e4f85e", size = 131507 }, + { url = "https://files.pythonhosted.org/packages/33/9e/b91288361898e3158062a876b5013c519a5d13e692ac7686e3486c4133ab/orjson-3.10.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a7974c490c014c48810d1dede6c754c3cc46598da758c25ca3b4001ac45b703f", size = 131686 }, + { url = "https://files.pythonhosted.org/packages/b2/15/08ce117d60a4d2d3fd24e6b21db463139a658e9f52d22c9c30af279b4187/orjson-3.10.12-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:3f250ce7727b0b2682f834a3facff88e310f52f07a5dcfd852d99637d386e79e", size = 415710 }, + { url = "https://files.pythonhosted.org/packages/71/af/c09da5ed58f9c002cf83adff7a4cdf3e6cee742aa9723395f8dcdb397233/orjson-3.10.12-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f31422ff9486ae484f10ffc51b5ab2a60359e92d0716fcce1b3593d7bb8a9af6", size = 142305 }, + { url = "https://files.pythonhosted.org/packages/17/d1/8612038d44f33fae231e9ba480d273bac2b0383ce9e77cb06bede1224ae3/orjson-3.10.12-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5f29c5d282bb2d577c2a6bbde88d8fdcc4919c593f806aac50133f01b733846e", size = 130815 }, + { url = "https://files.pythonhosted.org/packages/67/2c/d5f87834be3591555cfaf9aecdf28f480a6f0b4afeaac53bad534bf9518f/orjson-3.10.12-cp313-none-win32.whl", hash = "sha256:f45653775f38f63dc0e6cd4f14323984c3149c05d6007b58cb154dd080ddc0dc", size = 143664 }, + { url = "https://files.pythonhosted.org/packages/6a/05/7d768fa3ca23c9b3e1e09117abeded1501119f1d8de0ab722938c91ab25d/orjson-3.10.12-cp313-none-win_amd64.whl", hash = "sha256:229994d0c376d5bdc91d92b3c9e6be2f1fbabd4cc1b59daae1443a46ee5e9825", size = 134944 }, +] + +[[package]] +name = "overrides" +version = "7.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/36/86/b585f53236dec60aba864e050778b25045f857e17f6e5ea0ae95fe80edd2/overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a", size = 22812 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/ab/fc8290c6a4c722e5514d80f62b2dc4c4df1a68a41d1364e625c35990fcf3/overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49", size = 17832 }, +] + +[[package]] +name = "packaging" +version = "24.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", size = 163950 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 }, +] + +[[package]] +name = "palettable" +version = "3.3.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/dc/3d/a5854d60850485bff12f28abfe0e17f503e866763bed61aed4990b604530/palettable-3.3.3.tar.gz", hash = "sha256:094dd7d9a5fc1cca4854773e5c1fc6a315b33bd5b3a8f47064928facaf0490a8", size = 106639 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cf/f7/3367feadd4ab56783b0971c9b7edfbdd68e0c70ce877949a5dd2117ed4a0/palettable-3.3.3-py2.py3-none-any.whl", hash = "sha256:74e9e7d7fe5a9be065e02397558ed1777b2df0b793a6f4ce1a5ee74f74fb0caa", size = 332251 }, +] + +[[package]] +name = "pandas" +version = "2.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "tzdata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/a7/824332581e258b5aa4f3763ecb2a797e5f9a54269044ba2e50ac19936b32/pandas-2.0.3.tar.gz", hash = "sha256:c02f372a88e0d17f36d3093a644c73cfc1788e876a7c4bcb4020a77512e2043c", size = 5284455 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/92/a5e5133421b49e901a12e02a6a7ef3a0130e10d13db8cb657fdd0cba3b90/pandas-2.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b084b91d8d66ab19f5bb3256cbd5ea661848338301940e17f4492b2ce0801fe8", size = 11645672 }, + { url = "https://files.pythonhosted.org/packages/8f/bb/aea1fbeed5b474cb8634364718abe9030d7cc7a30bf51f40bd494bbc89a2/pandas-2.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:37673e3bdf1551b95bf5d4ce372b37770f9529743d2498032439371fc7b7eb26", size = 10693229 }, + { url = "https://files.pythonhosted.org/packages/d6/90/e7d387f1a416b14e59290baa7a454a90d719baebbf77433ff1bdcc727800/pandas-2.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9cb1e14fdb546396b7e1b923ffaeeac24e4cedd14266c3497216dd4448e4f2d", size = 11581591 }, + { url = "https://files.pythonhosted.org/packages/d0/28/88b81881c056376254618fad622a5e94b5126db8c61157ea1910cd1c040a/pandas-2.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9cd88488cceb7635aebb84809d087468eb33551097d600c6dad13602029c2df", size = 12219370 }, + { url = "https://files.pythonhosted.org/packages/e4/a5/212b9039e25bf8ebb97e417a96660e3dc925dacd3f8653d531b8f7fd9be4/pandas-2.0.3-cp311-cp311-win32.whl", hash = "sha256:694888a81198786f0e164ee3a581df7d505024fbb1f15202fc7db88a71d84ebd", size = 9482935 }, + { url = "https://files.pythonhosted.org/packages/9e/71/756a1be6bee0209d8c0d8c5e3b9fc72c00373f384a4017095ec404aec3ad/pandas-2.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:6a21ab5c89dcbd57f78d0ae16630b090eec626360085a4148693def5452d8a6b", size = 10607692 }, +] + +[[package]] +name = "pathvalidate" +version = "3.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b4/8c/8713d8dcd8e357b9358695b441ee974580a8addfaea4f01437df07577052/pathvalidate-3.2.1.tar.gz", hash = "sha256:f5d07b1e2374187040612a1fcd2bcb2919f8db180df254c9581bb90bf903377d", size = 59263 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d3/5e/76a9d08b4b4e4583f269cb9f64de267f9aeae0dacef23307f53a14211716/pathvalidate-3.2.1-py3-none-any.whl", hash = "sha256:9a6255eb8f63c9e2135b9be97a5ce08f10230128c4ae7b3e935378b82b22c4c9", size = 23833 }, +] + +[[package]] +name = "pendulum" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "python-dateutil" }, + { name = "time-machine", marker = "implementation_name != 'pypy'" }, + { name = "tzdata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b8/fe/27c7438c6ac8b8f8bef3c6e571855602ee784b85d072efddfff0ceb1cd77/pendulum-3.0.0.tar.gz", hash = "sha256:5d034998dea404ec31fae27af6b22cff1708f830a1ed7353be4d1019bb9f584e", size = 84524 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/f0/d60be6058657bf71281eeaa12bee85e87bac18acf6dbb7b5197bb8416537/pendulum-3.0.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:3725245c0352c95d6ca297193192020d1b0c0f83d5ee6bb09964edc2b5a2d508", size = 362283 }, + { url = "https://files.pythonhosted.org/packages/68/e5/0f9d8351242ddb119a40b41c0cf1d0c74cc243829eea6811f753a8ecf15f/pendulum-3.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6c035f03a3e565ed132927e2c1b691de0dbf4eb53b02a5a3c5a97e1a64e17bec", size = 352957 }, + { url = "https://files.pythonhosted.org/packages/30/43/70d0a08e5d6ca434ba139d19ec2a4847b0a3e461fbb82e680a9b6a4237ef/pendulum-3.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:597e66e63cbd68dd6d58ac46cb7a92363d2088d37ccde2dae4332ef23e95cd00", size = 335784 }, + { url = "https://files.pythonhosted.org/packages/fc/a3/7d4c0b3f57bf7b543da9088a78a6bd6c786808ca4098bd5db649fdf9f6a2/pendulum-3.0.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99a0f8172e19f3f0c0e4ace0ad1595134d5243cf75985dc2233e8f9e8de263ca", size = 362217 }, + { url = "https://files.pythonhosted.org/packages/8b/03/8c451d569e7f4d9898f155e793f46970eed256c5ae353ecb355584890d8a/pendulum-3.0.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:77d8839e20f54706aed425bec82a83b4aec74db07f26acd039905d1237a5e1d4", size = 448630 }, + { url = "https://files.pythonhosted.org/packages/84/3a/5e36479e199a034adcf6a1a95c691f0a2781ea55b9ac3bcb887e2f97d82b/pendulum-3.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afde30e8146292b059020fbc8b6f8fd4a60ae7c5e6f0afef937bbb24880bdf01", size = 384882 }, + { url = "https://files.pythonhosted.org/packages/4c/25/beff911dda686e0cf169bc3dbe5d10416b376a6dde94eb1bf04aa4035409/pendulum-3.0.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:660434a6fcf6303c4efd36713ca9212c753140107ee169a3fc6c49c4711c2a05", size = 559556 }, + { url = "https://files.pythonhosted.org/packages/e9/e8/f2aaa470adb6c720645f9f9ef30d5b223407ee327e12c6127eccf4218cb8/pendulum-3.0.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dee9e5a48c6999dc1106eb7eea3e3a50e98a50651b72c08a87ee2154e544b33e", size = 558249 }, + { url = "https://files.pythonhosted.org/packages/60/19/c13307ea8504d2c02c63c9dffdae1cefbd068b636ec7b18ccf2ec064d246/pendulum-3.0.0-cp311-none-win_amd64.whl", hash = "sha256:d4cdecde90aec2d67cebe4042fd2a87a4441cc02152ed7ed8fb3ebb110b94ec4", size = 293463 }, + { url = "https://files.pythonhosted.org/packages/6b/36/252d48610295c11c0f18e791dcc133d38c545b0bd19a5c3981652a9acb3c/pendulum-3.0.0-cp311-none-win_arm64.whl", hash = "sha256:773c3bc4ddda2dda9f1b9d51fe06762f9200f3293d75c4660c19b2614b991d83", size = 288057 }, + { url = "https://files.pythonhosted.org/packages/1e/37/17c8f0e7481a32f21b9002dd68912a8813f2c1d77b984e00af56eb9ae31b/pendulum-3.0.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:409e64e41418c49f973d43a28afe5df1df4f1dd87c41c7c90f1a63f61ae0f1f7", size = 362284 }, + { url = "https://files.pythonhosted.org/packages/12/e6/08f462f6ea87e2159f19b43ff88231d26e02bda31c10bcb29290a617ace4/pendulum-3.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a38ad2121c5ec7c4c190c7334e789c3b4624798859156b138fcc4d92295835dc", size = 352964 }, + { url = "https://files.pythonhosted.org/packages/47/29/b6877f6b53b91356c2c56d19ddab17b165ca994ad1e57b32c089e79f3fb5/pendulum-3.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fde4d0b2024b9785f66b7f30ed59281bd60d63d9213cda0eb0910ead777f6d37", size = 335848 }, + { url = "https://files.pythonhosted.org/packages/2b/77/62ca666f30b2558342deadda26290a575459a7b59248ea1e978b84175227/pendulum-3.0.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4b2c5675769fb6d4c11238132962939b960fcb365436b6d623c5864287faa319", size = 362215 }, + { url = "https://files.pythonhosted.org/packages/e0/29/ce37593f5ea51862c60dadf4e863d604f954478b3abbcc60a14dc05e242c/pendulum-3.0.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8af95e03e066826f0f4c65811cbee1b3123d4a45a1c3a2b4fc23c4b0dff893b5", size = 448673 }, + { url = "https://files.pythonhosted.org/packages/72/6a/68a8c7b8f1977d89aabfd0e2becb0921e5515dfb365097e98a522334a151/pendulum-3.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2165a8f33cb15e06c67070b8afc87a62b85c5a273e3aaa6bc9d15c93a4920d6f", size = 384891 }, + { url = "https://files.pythonhosted.org/packages/30/e6/edd699300f47a3c53c0d8ed26e905b9a31057c3646211e58cc540716a440/pendulum-3.0.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ad5e65b874b5e56bd942546ea7ba9dd1d6a25121db1c517700f1c9de91b28518", size = 559558 }, + { url = "https://files.pythonhosted.org/packages/d4/97/95a44aa5e1763d3a966551ed0e12f56508d8dfcc60e1f0395909b6a08626/pendulum-3.0.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:17fe4b2c844bbf5f0ece69cfd959fa02957c61317b2161763950d88fed8e13b9", size = 558240 }, + { url = "https://files.pythonhosted.org/packages/9a/91/fcd992eb36b77ab43f2cf44307b72c01a6fbb27f55c1bb2d4af30e9a6cb7/pendulum-3.0.0-cp312-none-win_amd64.whl", hash = "sha256:78f8f4e7efe5066aca24a7a57511b9c2119f5c2b5eb81c46ff9222ce11e0a7a5", size = 293456 }, + { url = "https://files.pythonhosted.org/packages/3b/60/ba8aa296ca6d76603d58146b4a222cd99e7da33831158b8c00240a896a56/pendulum-3.0.0-cp312-none-win_arm64.whl", hash = "sha256:28f49d8d1e32aae9c284a90b6bb3873eee15ec6e1d9042edd611b22a94ac462f", size = 288054 }, +] + +[[package]] +name = "pgvector" +version = "0.3.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7d/d8/fd6009cee3e03214667df488cdcf9609461d729968da94e4f95d6359d304/pgvector-0.3.6.tar.gz", hash = "sha256:31d01690e6ea26cea8a633cde5f0f55f5b246d9c8292d68efdef8c22ec994ade", size = 25421 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/81/f457d6d361e04d061bef413749a6e1ab04d98cfeec6d8abcfe40184750f3/pgvector-0.3.6-py3-none-any.whl", hash = "sha256:f6c269b3c110ccb7496bac87202148ed18f34b390a0189c783e351062400a75a", size = 24880 }, +] + +[[package]] +name = "pillow" +version = "11.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a5/26/0d95c04c868f6bdb0c447e3ee2de5564411845e36a858cfd63766bc7b563/pillow-11.0.0.tar.gz", hash = "sha256:72bacbaf24ac003fea9bff9837d1eedb6088758d41e100c1552930151f677739", size = 46737780 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f0/eb/f7e21b113dd48a9c97d364e0915b3988c6a0b6207652f5a92372871b7aa4/pillow-11.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1c1d72714f429a521d8d2d018badc42414c3077eb187a59579f28e4270b4b0fc", size = 3154705 }, + { url = "https://files.pythonhosted.org/packages/25/b3/2b54a1d541accebe6bd8b1358b34ceb2c509f51cb7dcda8687362490da5b/pillow-11.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:499c3a1b0d6fc8213519e193796eb1a86a1be4b1877d678b30f83fd979811d1a", size = 2979222 }, + { url = "https://files.pythonhosted.org/packages/20/12/1a41eddad8265c5c19dda8fb6c269ce15ee25e0b9f8f26286e6202df6693/pillow-11.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8b2351c85d855293a299038e1f89db92a2f35e8d2f783489c6f0b2b5f3fe8a3", size = 4190220 }, + { url = "https://files.pythonhosted.org/packages/a9/9b/8a8c4d07d77447b7457164b861d18f5a31ae6418ef5c07f6f878fa09039a/pillow-11.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f4dba50cfa56f910241eb7f883c20f1e7b1d8f7d91c750cd0b318bad443f4d5", size = 4291399 }, + { url = "https://files.pythonhosted.org/packages/fc/e4/130c5fab4a54d3991129800dd2801feeb4b118d7630148cd67f0e6269d4c/pillow-11.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:5ddbfd761ee00c12ee1be86c9c0683ecf5bb14c9772ddbd782085779a63dd55b", size = 4202709 }, + { url = "https://files.pythonhosted.org/packages/39/63/b3fc299528d7df1f678b0666002b37affe6b8751225c3d9c12cf530e73ed/pillow-11.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:45c566eb10b8967d71bf1ab8e4a525e5a93519e29ea071459ce517f6b903d7fa", size = 4372556 }, + { url = "https://files.pythonhosted.org/packages/c6/a6/694122c55b855b586c26c694937d36bb8d3b09c735ff41b2f315c6e66a10/pillow-11.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b4fd7bd29610a83a8c9b564d457cf5bd92b4e11e79a4ee4716a63c959699b306", size = 4287187 }, + { url = "https://files.pythonhosted.org/packages/ba/a9/f9d763e2671a8acd53d29b1e284ca298bc10a595527f6be30233cdb9659d/pillow-11.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:cb929ca942d0ec4fac404cbf520ee6cac37bf35be479b970c4ffadf2b6a1cad9", size = 4418468 }, + { url = "https://files.pythonhosted.org/packages/6e/0e/b5cbad2621377f11313a94aeb44ca55a9639adabcaaa073597a1925f8c26/pillow-11.0.0-cp311-cp311-win32.whl", hash = "sha256:006bcdd307cc47ba43e924099a038cbf9591062e6c50e570819743f5607404f5", size = 2249249 }, + { url = "https://files.pythonhosted.org/packages/dc/83/1470c220a4ff06cd75fc609068f6605e567ea51df70557555c2ab6516b2c/pillow-11.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:52a2d8323a465f84faaba5236567d212c3668f2ab53e1c74c15583cf507a0291", size = 2566769 }, + { url = "https://files.pythonhosted.org/packages/52/98/def78c3a23acee2bcdb2e52005fb2810ed54305602ec1bfcfab2bda6f49f/pillow-11.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:16095692a253047fe3ec028e951fa4221a1f3ed3d80c397e83541a3037ff67c9", size = 2254611 }, + { url = "https://files.pythonhosted.org/packages/1c/a3/26e606ff0b2daaf120543e537311fa3ae2eb6bf061490e4fea51771540be/pillow-11.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2c0a187a92a1cb5ef2c8ed5412dd8d4334272617f532d4ad4de31e0495bd923", size = 3147642 }, + { url = "https://files.pythonhosted.org/packages/4f/d5/1caabedd8863526a6cfa44ee7a833bd97f945dc1d56824d6d76e11731939/pillow-11.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:084a07ef0821cfe4858fe86652fffac8e187b6ae677e9906e192aafcc1b69903", size = 2978999 }, + { url = "https://files.pythonhosted.org/packages/d9/ff/5a45000826a1aa1ac6874b3ec5a856474821a1b59d838c4f6ce2ee518fe9/pillow-11.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8069c5179902dcdce0be9bfc8235347fdbac249d23bd90514b7a47a72d9fecf4", size = 4196794 }, + { url = "https://files.pythonhosted.org/packages/9d/21/84c9f287d17180f26263b5f5c8fb201de0f88b1afddf8a2597a5c9fe787f/pillow-11.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f02541ef64077f22bf4924f225c0fd1248c168f86e4b7abdedd87d6ebaceab0f", size = 4300762 }, + { url = "https://files.pythonhosted.org/packages/84/39/63fb87cd07cc541438b448b1fed467c4d687ad18aa786a7f8e67b255d1aa/pillow-11.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:fcb4621042ac4b7865c179bb972ed0da0218a076dc1820ffc48b1d74c1e37fe9", size = 4210468 }, + { url = "https://files.pythonhosted.org/packages/7f/42/6e0f2c2d5c60f499aa29be14f860dd4539de322cd8fb84ee01553493fb4d/pillow-11.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:00177a63030d612148e659b55ba99527803288cea7c75fb05766ab7981a8c1b7", size = 4381824 }, + { url = "https://files.pythonhosted.org/packages/31/69/1ef0fb9d2f8d2d114db982b78ca4eeb9db9a29f7477821e160b8c1253f67/pillow-11.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8853a3bf12afddfdf15f57c4b02d7ded92c7a75a5d7331d19f4f9572a89c17e6", size = 4296436 }, + { url = "https://files.pythonhosted.org/packages/44/ea/dad2818c675c44f6012289a7c4f46068c548768bc6c7f4e8c4ae5bbbc811/pillow-11.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3107c66e43bda25359d5ef446f59c497de2b5ed4c7fdba0894f8d6cf3822dafc", size = 4429714 }, + { url = "https://files.pythonhosted.org/packages/af/3a/da80224a6eb15bba7a0dcb2346e2b686bb9bf98378c0b4353cd88e62b171/pillow-11.0.0-cp312-cp312-win32.whl", hash = "sha256:86510e3f5eca0ab87429dd77fafc04693195eec7fd6a137c389c3eeb4cfb77c6", size = 2249631 }, + { url = "https://files.pythonhosted.org/packages/57/97/73f756c338c1d86bb802ee88c3cab015ad7ce4b838f8a24f16b676b1ac7c/pillow-11.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:8ec4a89295cd6cd4d1058a5e6aec6bf51e0eaaf9714774e1bfac7cfc9051db47", size = 2567533 }, + { url = "https://files.pythonhosted.org/packages/0b/30/2b61876e2722374558b871dfbfcbe4e406626d63f4f6ed92e9c8e24cac37/pillow-11.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:27a7860107500d813fcd203b4ea19b04babe79448268403172782754870dac25", size = 2254890 }, + { url = "https://files.pythonhosted.org/packages/63/24/e2e15e392d00fcf4215907465d8ec2a2f23bcec1481a8ebe4ae760459995/pillow-11.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bcd1fb5bb7b07f64c15618c89efcc2cfa3e95f0e3bcdbaf4642509de1942a699", size = 3147300 }, + { url = "https://files.pythonhosted.org/packages/43/72/92ad4afaa2afc233dc44184adff289c2e77e8cd916b3ddb72ac69495bda3/pillow-11.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0e038b0745997c7dcaae350d35859c9715c71e92ffb7e0f4a8e8a16732150f38", size = 2978742 }, + { url = "https://files.pythonhosted.org/packages/9e/da/c8d69c5bc85d72a8523fe862f05ababdc52c0a755cfe3d362656bb86552b/pillow-11.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ae08bd8ffc41aebf578c2af2f9d8749d91f448b3bfd41d7d9ff573d74f2a6b2", size = 4194349 }, + { url = "https://files.pythonhosted.org/packages/cd/e8/686d0caeed6b998351d57796496a70185376ed9c8ec7d99e1d19ad591fc6/pillow-11.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d69bfd8ec3219ae71bcde1f942b728903cad25fafe3100ba2258b973bd2bc1b2", size = 4298714 }, + { url = "https://files.pythonhosted.org/packages/ec/da/430015cec620d622f06854be67fd2f6721f52fc17fca8ac34b32e2d60739/pillow-11.0.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:61b887f9ddba63ddf62fd02a3ba7add935d053b6dd7d58998c630e6dbade8527", size = 4208514 }, + { url = "https://files.pythonhosted.org/packages/44/ae/7e4f6662a9b1cb5f92b9cc9cab8321c381ffbee309210940e57432a4063a/pillow-11.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:c6a660307ca9d4867caa8d9ca2c2658ab685de83792d1876274991adec7b93fa", size = 4380055 }, + { url = "https://files.pythonhosted.org/packages/74/d5/1a807779ac8a0eeed57f2b92a3c32ea1b696e6140c15bd42eaf908a261cd/pillow-11.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:73e3a0200cdda995c7e43dd47436c1548f87a30bb27fb871f352a22ab8dcf45f", size = 4296751 }, + { url = "https://files.pythonhosted.org/packages/38/8c/5fa3385163ee7080bc13026d59656267daaaaf3c728c233d530e2c2757c8/pillow-11.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fba162b8872d30fea8c52b258a542c5dfd7b235fb5cb352240c8d63b414013eb", size = 4430378 }, + { url = "https://files.pythonhosted.org/packages/ca/1d/ad9c14811133977ff87035bf426875b93097fb50af747793f013979facdb/pillow-11.0.0-cp313-cp313-win32.whl", hash = "sha256:f1b82c27e89fffc6da125d5eb0ca6e68017faf5efc078128cfaa42cf5cb38798", size = 2249588 }, + { url = "https://files.pythonhosted.org/packages/fb/01/3755ba287dac715e6afdb333cb1f6d69740a7475220b4637b5ce3d78cec2/pillow-11.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:8ba470552b48e5835f1d23ecb936bb7f71d206f9dfeee64245f30c3270b994de", size = 2567509 }, + { url = "https://files.pythonhosted.org/packages/c0/98/2c7d727079b6be1aba82d195767d35fcc2d32204c7a5820f822df5330152/pillow-11.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:846e193e103b41e984ac921b335df59195356ce3f71dcfd155aa79c603873b84", size = 2254791 }, + { url = "https://files.pythonhosted.org/packages/eb/38/998b04cc6f474e78b563716b20eecf42a2fa16a84589d23c8898e64b0ffd/pillow-11.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4ad70c4214f67d7466bea6a08061eba35c01b1b89eaa098040a35272a8efb22b", size = 3150854 }, + { url = "https://files.pythonhosted.org/packages/13/8e/be23a96292113c6cb26b2aa3c8b3681ec62b44ed5c2bd0b258bd59503d3c/pillow-11.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:6ec0d5af64f2e3d64a165f490d96368bb5dea8b8f9ad04487f9ab60dc4bb6003", size = 2982369 }, + { url = "https://files.pythonhosted.org/packages/97/8a/3db4eaabb7a2ae8203cd3a332a005e4aba00067fc514aaaf3e9721be31f1/pillow-11.0.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c809a70e43c7977c4a42aefd62f0131823ebf7dd73556fa5d5950f5b354087e2", size = 4333703 }, + { url = "https://files.pythonhosted.org/packages/28/ac/629ffc84ff67b9228fe87a97272ab125bbd4dc462745f35f192d37b822f1/pillow-11.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:4b60c9520f7207aaf2e1d94de026682fc227806c6e1f55bba7606d1c94dd623a", size = 4412550 }, + { url = "https://files.pythonhosted.org/packages/d6/07/a505921d36bb2df6868806eaf56ef58699c16c388e378b0dcdb6e5b2fb36/pillow-11.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:1e2688958a840c822279fda0086fec1fdab2f95bf2b717b66871c4ad9859d7e8", size = 4461038 }, + { url = "https://files.pythonhosted.org/packages/d6/b9/fb620dd47fc7cc9678af8f8bd8c772034ca4977237049287e99dda360b66/pillow-11.0.0-cp313-cp313t-win32.whl", hash = "sha256:607bbe123c74e272e381a8d1957083a9463401f7bd01287f50521ecb05a313f8", size = 2253197 }, + { url = "https://files.pythonhosted.org/packages/df/86/25dde85c06c89d7fc5db17940f07aae0a56ac69aa9ccb5eb0f09798862a8/pillow-11.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5c39ed17edea3bc69c743a8dd3e9853b7509625c2462532e62baa0732163a904", size = 2572169 }, + { url = "https://files.pythonhosted.org/packages/51/85/9c33f2517add612e17f3381aee7c4072779130c634921a756c97bc29fb49/pillow-11.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:75acbbeb05b86bc53cbe7b7e6fe00fbcf82ad7c684b3ad82e3d711da9ba287d3", size = 2256828 }, +] + +[[package]] +name = "platformdirs" +version = "4.3.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/13/fc/128cc9cb8f03208bdbf93d3aa862e16d376844a14f9a0ce5cf4507372de4/platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907", size = 21302 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3c/a6/bc1012356d8ece4d66dd75c4b9fc6c1f6650ddd5991e421177d9f8f671be/platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb", size = 18439 }, +] + +[[package]] +name = "pluggy" +version = "1.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/96/2d/02d4312c973c6050a18b314a5ad0b3210edb65a906f868e31c111dede4a6/pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1", size = 67955 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669", size = 20556 }, +] + +[[package]] +name = "ply" +version = "3.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e5/69/882ee5c9d017149285cab114ebeab373308ef0f874fcdac9beb90e0ac4da/ply-3.11.tar.gz", hash = "sha256:00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3", size = 159130 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a3/58/35da89ee790598a0700ea49b2a66594140f44dec458c07e8e3d4979137fc/ply-3.11-py2.py3-none-any.whl", hash = "sha256:096f9b8350b65ebd2fd1346b12452efe5b9607f7482813ffca50c22722a807ce", size = 49567 }, +] + +[[package]] +name = "portalocker" +version = "2.10.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pywin32", marker = "platform_system == 'Windows'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ed/d3/c6c64067759e87af98cc668c1cc75171347d0f1577fab7ca3749134e3cd4/portalocker-2.10.1.tar.gz", hash = "sha256:ef1bf844e878ab08aee7e40184156e1151f228f103aa5c6bd0724cc330960f8f", size = 40891 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9b/fb/a70a4214956182e0d7a9099ab17d50bfcba1056188e9b14f35b9e2b62a0d/portalocker-2.10.1-py3-none-any.whl", hash = "sha256:53a5984ebc86a025552264b459b46a2086e269b21823cb572f8f28ee759e45bf", size = 18423 }, +] + +[[package]] +name = "posthog" +version = "3.7.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "backoff" }, + { name = "monotonic" }, + { name = "python-dateutil" }, + { name = "requests" }, + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/77/a0/7607d4fd7c52b086671d8618e76cb5b9a642311fd6f352ebd7eb035319f2/posthog-3.7.4.tar.gz", hash = "sha256:19384bd09d330f9787a7e2446aba14c8057ece56144970ea2791072d4e40cd36", size = 50174 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d3/f2/5ee24cd69e2120bf87356c02ace0438b4e4fb78229fddcbf6f1c6be377d5/posthog-3.7.4-py2.py3-none-any.whl", hash = "sha256:21c18c6bf43b2de303ea4cd6e95804cc0f24c20cb2a96a8fd09da2ed50b62faa", size = 54777 }, +] + +[[package]] +name = "propcache" +version = "0.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/c8/2a13f78d82211490855b2fb303b6721348d0787fdd9a12ac46d99d3acde1/propcache-0.2.1.tar.gz", hash = "sha256:3f77ce728b19cb537714499928fe800c3dda29e8d9428778fc7c186da4c09a64", size = 41735 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bc/0f/2913b6791ebefb2b25b4efd4bb2299c985e09786b9f5b19184a88e5778dd/propcache-0.2.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ffc3cca89bb438fb9c95c13fc874012f7b9466b89328c3c8b1aa93cdcfadd16", size = 79297 }, + { url = "https://files.pythonhosted.org/packages/cf/73/af2053aeccd40b05d6e19058419ac77674daecdd32478088b79375b9ab54/propcache-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f174bbd484294ed9fdf09437f889f95807e5f229d5d93588d34e92106fbf6717", size = 45611 }, + { url = "https://files.pythonhosted.org/packages/3c/09/8386115ba7775ea3b9537730e8cf718d83bbf95bffe30757ccf37ec4e5da/propcache-0.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:70693319e0b8fd35dd863e3e29513875eb15c51945bf32519ef52927ca883bc3", size = 45146 }, + { url = "https://files.pythonhosted.org/packages/03/7a/793aa12f0537b2e520bf09f4c6833706b63170a211ad042ca71cbf79d9cb/propcache-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b480c6a4e1138e1aa137c0079b9b6305ec6dcc1098a8ca5196283e8a49df95a9", size = 232136 }, + { url = "https://files.pythonhosted.org/packages/f1/38/b921b3168d72111769f648314100558c2ea1d52eb3d1ba7ea5c4aa6f9848/propcache-0.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d27b84d5880f6d8aa9ae3edb253c59d9f6642ffbb2c889b78b60361eed449787", size = 239706 }, + { url = "https://files.pythonhosted.org/packages/14/29/4636f500c69b5edea7786db3c34eb6166f3384b905665ce312a6e42c720c/propcache-0.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:857112b22acd417c40fa4595db2fe28ab900c8c5fe4670c7989b1c0230955465", size = 238531 }, + { url = "https://files.pythonhosted.org/packages/85/14/01fe53580a8e1734ebb704a3482b7829a0ef4ea68d356141cf0994d9659b/propcache-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf6c4150f8c0e32d241436526f3c3f9cbd34429492abddbada2ffcff506c51af", size = 231063 }, + { url = "https://files.pythonhosted.org/packages/33/5c/1d961299f3c3b8438301ccfbff0143b69afcc30c05fa28673cface692305/propcache-0.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66d4cfda1d8ed687daa4bc0274fcfd5267873db9a5bc0418c2da19273040eeb7", size = 220134 }, + { url = "https://files.pythonhosted.org/packages/00/d0/ed735e76db279ba67a7d3b45ba4c654e7b02bc2f8050671ec365d8665e21/propcache-0.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c2f992c07c0fca81655066705beae35fc95a2fa7366467366db627d9f2ee097f", size = 220009 }, + { url = "https://files.pythonhosted.org/packages/75/90/ee8fab7304ad6533872fee982cfff5a53b63d095d78140827d93de22e2d4/propcache-0.2.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:4a571d97dbe66ef38e472703067021b1467025ec85707d57e78711c085984e54", size = 212199 }, + { url = "https://files.pythonhosted.org/packages/eb/ec/977ffaf1664f82e90737275873461695d4c9407d52abc2f3c3e24716da13/propcache-0.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bb6178c241278d5fe853b3de743087be7f5f4c6f7d6d22a3b524d323eecec505", size = 214827 }, + { url = "https://files.pythonhosted.org/packages/57/48/031fb87ab6081764054821a71b71942161619549396224cbb242922525e8/propcache-0.2.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:ad1af54a62ffe39cf34db1aa6ed1a1873bd548f6401db39d8e7cd060b9211f82", size = 228009 }, + { url = "https://files.pythonhosted.org/packages/1a/06/ef1390f2524850838f2390421b23a8b298f6ce3396a7cc6d39dedd4047b0/propcache-0.2.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e7048abd75fe40712005bcfc06bb44b9dfcd8e101dda2ecf2f5aa46115ad07ca", size = 231638 }, + { url = "https://files.pythonhosted.org/packages/38/2a/101e6386d5a93358395da1d41642b79c1ee0f3b12e31727932b069282b1d/propcache-0.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:160291c60081f23ee43d44b08a7e5fb76681221a8e10b3139618c5a9a291b84e", size = 222788 }, + { url = "https://files.pythonhosted.org/packages/db/81/786f687951d0979007e05ad9346cd357e50e3d0b0f1a1d6074df334b1bbb/propcache-0.2.1-cp311-cp311-win32.whl", hash = "sha256:819ce3b883b7576ca28da3861c7e1a88afd08cc8c96908e08a3f4dd64a228034", size = 40170 }, + { url = "https://files.pythonhosted.org/packages/cf/59/7cc7037b295d5772eceb426358bb1b86e6cab4616d971bd74275395d100d/propcache-0.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:edc9fc7051e3350643ad929df55c451899bb9ae6d24998a949d2e4c87fb596d3", size = 44404 }, + { url = "https://files.pythonhosted.org/packages/4c/28/1d205fe49be8b1b4df4c50024e62480a442b1a7b818e734308bb0d17e7fb/propcache-0.2.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:081a430aa8d5e8876c6909b67bd2d937bfd531b0382d3fdedb82612c618bc41a", size = 79588 }, + { url = "https://files.pythonhosted.org/packages/21/ee/fc4d893f8d81cd4971affef2a6cb542b36617cd1d8ce56b406112cb80bf7/propcache-0.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d2ccec9ac47cf4e04897619c0e0c1a48c54a71bdf045117d3a26f80d38ab1fb0", size = 45825 }, + { url = "https://files.pythonhosted.org/packages/4a/de/bbe712f94d088da1d237c35d735f675e494a816fd6f54e9db2f61ef4d03f/propcache-0.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:14d86fe14b7e04fa306e0c43cdbeebe6b2c2156a0c9ce56b815faacc193e320d", size = 45357 }, + { url = "https://files.pythonhosted.org/packages/7f/14/7ae06a6cf2a2f1cb382586d5a99efe66b0b3d0c6f9ac2f759e6f7af9d7cf/propcache-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:049324ee97bb67285b49632132db351b41e77833678432be52bdd0289c0e05e4", size = 241869 }, + { url = "https://files.pythonhosted.org/packages/cc/59/227a78be960b54a41124e639e2c39e8807ac0c751c735a900e21315f8c2b/propcache-0.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cd9a1d071158de1cc1c71a26014dcdfa7dd3d5f4f88c298c7f90ad6f27bb46d", size = 247884 }, + { url = "https://files.pythonhosted.org/packages/84/58/f62b4ffaedf88dc1b17f04d57d8536601e4e030feb26617228ef930c3279/propcache-0.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98110aa363f1bb4c073e8dcfaefd3a5cea0f0834c2aab23dda657e4dab2f53b5", size = 248486 }, + { url = "https://files.pythonhosted.org/packages/1c/07/ebe102777a830bca91bbb93e3479cd34c2ca5d0361b83be9dbd93104865e/propcache-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:647894f5ae99c4cf6bb82a1bb3a796f6e06af3caa3d32e26d2350d0e3e3faf24", size = 243649 }, + { url = "https://files.pythonhosted.org/packages/ed/bc/4f7aba7f08f520376c4bb6a20b9a981a581b7f2e385fa0ec9f789bb2d362/propcache-0.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfd3223c15bebe26518d58ccf9a39b93948d3dcb3e57a20480dfdd315356baff", size = 229103 }, + { url = "https://files.pythonhosted.org/packages/fe/d5/04ac9cd4e51a57a96f78795e03c5a0ddb8f23ec098b86f92de028d7f2a6b/propcache-0.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d71264a80f3fcf512eb4f18f59423fe82d6e346ee97b90625f283df56aee103f", size = 226607 }, + { url = "https://files.pythonhosted.org/packages/e3/f0/24060d959ea41d7a7cc7fdbf68b31852331aabda914a0c63bdb0e22e96d6/propcache-0.2.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e73091191e4280403bde6c9a52a6999d69cdfde498f1fdf629105247599b57ec", size = 221153 }, + { url = "https://files.pythonhosted.org/packages/77/a7/3ac76045a077b3e4de4859a0753010765e45749bdf53bd02bc4d372da1a0/propcache-0.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3935bfa5fede35fb202c4b569bb9c042f337ca4ff7bd540a0aa5e37131659348", size = 222151 }, + { url = "https://files.pythonhosted.org/packages/e7/af/5e29da6f80cebab3f5a4dcd2a3240e7f56f2c4abf51cbfcc99be34e17f0b/propcache-0.2.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f508b0491767bb1f2b87fdfacaba5f7eddc2f867740ec69ece6d1946d29029a6", size = 233812 }, + { url = "https://files.pythonhosted.org/packages/8c/89/ebe3ad52642cc5509eaa453e9f4b94b374d81bae3265c59d5c2d98efa1b4/propcache-0.2.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1672137af7c46662a1c2be1e8dc78cb6d224319aaa40271c9257d886be4363a6", size = 238829 }, + { url = "https://files.pythonhosted.org/packages/e9/2f/6b32f273fa02e978b7577159eae7471b3cfb88b48563b1c2578b2d7ca0bb/propcache-0.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b74c261802d3d2b85c9df2dfb2fa81b6f90deeef63c2db9f0e029a3cac50b518", size = 230704 }, + { url = "https://files.pythonhosted.org/packages/5c/2e/f40ae6ff5624a5f77edd7b8359b208b5455ea113f68309e2b00a2e1426b6/propcache-0.2.1-cp312-cp312-win32.whl", hash = "sha256:d09c333d36c1409d56a9d29b3a1b800a42c76a57a5a8907eacdbce3f18768246", size = 40050 }, + { url = "https://files.pythonhosted.org/packages/3b/77/a92c3ef994e47180862b9d7d11e37624fb1c00a16d61faf55115d970628b/propcache-0.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:c214999039d4f2a5b2073ac506bba279945233da8c786e490d411dfc30f855c1", size = 44117 }, + { url = "https://files.pythonhosted.org/packages/0f/2a/329e0547cf2def8857157f9477669043e75524cc3e6251cef332b3ff256f/propcache-0.2.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aca405706e0b0a44cc6bfd41fbe89919a6a56999157f6de7e182a990c36e37bc", size = 77002 }, + { url = "https://files.pythonhosted.org/packages/12/2d/c4df5415e2382f840dc2ecbca0eeb2293024bc28e57a80392f2012b4708c/propcache-0.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:12d1083f001ace206fe34b6bdc2cb94be66d57a850866f0b908972f90996b3e9", size = 44639 }, + { url = "https://files.pythonhosted.org/packages/d0/5a/21aaa4ea2f326edaa4e240959ac8b8386ea31dedfdaa636a3544d9e7a408/propcache-0.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d93f3307ad32a27bda2e88ec81134b823c240aa3abb55821a8da553eed8d9439", size = 44049 }, + { url = "https://files.pythonhosted.org/packages/4e/3e/021b6cd86c0acc90d74784ccbb66808b0bd36067a1bf3e2deb0f3845f618/propcache-0.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba278acf14471d36316159c94a802933d10b6a1e117b8554fe0d0d9b75c9d536", size = 224819 }, + { url = "https://files.pythonhosted.org/packages/3c/57/c2fdeed1b3b8918b1770a133ba5c43ad3d78e18285b0c06364861ef5cc38/propcache-0.2.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4e6281aedfca15301c41f74d7005e6e3f4ca143584ba696ac69df4f02f40d629", size = 229625 }, + { url = "https://files.pythonhosted.org/packages/9d/81/70d4ff57bf2877b5780b466471bebf5892f851a7e2ca0ae7ffd728220281/propcache-0.2.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b750a8e5a1262434fb1517ddf64b5de58327f1adc3524a5e44c2ca43305eb0b", size = 232934 }, + { url = "https://files.pythonhosted.org/packages/3c/b9/bb51ea95d73b3fb4100cb95adbd4e1acaf2cbb1fd1083f5468eeb4a099a8/propcache-0.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf72af5e0fb40e9babf594308911436c8efde3cb5e75b6f206c34ad18be5c052", size = 227361 }, + { url = "https://files.pythonhosted.org/packages/f1/20/3c6d696cd6fd70b29445960cc803b1851a1131e7a2e4ee261ee48e002bcd/propcache-0.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2d0a12018b04f4cb820781ec0dffb5f7c7c1d2a5cd22bff7fb055a2cb19ebce", size = 213904 }, + { url = "https://files.pythonhosted.org/packages/a1/cb/1593bfc5ac6d40c010fa823f128056d6bc25b667f5393781e37d62f12005/propcache-0.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e800776a79a5aabdb17dcc2346a7d66d0777e942e4cd251defeb084762ecd17d", size = 212632 }, + { url = "https://files.pythonhosted.org/packages/6d/5c/e95617e222be14a34c709442a0ec179f3207f8a2b900273720501a70ec5e/propcache-0.2.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:4160d9283bd382fa6c0c2b5e017acc95bc183570cd70968b9202ad6d8fc48dce", size = 207897 }, + { url = "https://files.pythonhosted.org/packages/8e/3b/56c5ab3dc00f6375fbcdeefdede5adf9bee94f1fab04adc8db118f0f9e25/propcache-0.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:30b43e74f1359353341a7adb783c8f1b1c676367b011709f466f42fda2045e95", size = 208118 }, + { url = "https://files.pythonhosted.org/packages/86/25/d7ef738323fbc6ebcbce33eb2a19c5e07a89a3df2fded206065bd5e868a9/propcache-0.2.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:58791550b27d5488b1bb52bc96328456095d96206a250d28d874fafe11b3dfaf", size = 217851 }, + { url = "https://files.pythonhosted.org/packages/b3/77/763e6cef1852cf1ba740590364ec50309b89d1c818e3256d3929eb92fabf/propcache-0.2.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:0f022d381747f0dfe27e99d928e31bc51a18b65bb9e481ae0af1380a6725dd1f", size = 222630 }, + { url = "https://files.pythonhosted.org/packages/4f/e9/0f86be33602089c701696fbed8d8c4c07b6ee9605c5b7536fd27ed540c5b/propcache-0.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:297878dc9d0a334358f9b608b56d02e72899f3b8499fc6044133f0d319e2ec30", size = 216269 }, + { url = "https://files.pythonhosted.org/packages/cc/02/5ac83217d522394b6a2e81a2e888167e7ca629ef6569a3f09852d6dcb01a/propcache-0.2.1-cp313-cp313-win32.whl", hash = "sha256:ddfab44e4489bd79bda09d84c430677fc7f0a4939a73d2bba3073036f487a0a6", size = 39472 }, + { url = "https://files.pythonhosted.org/packages/f4/33/d6f5420252a36034bc8a3a01171bc55b4bff5df50d1c63d9caa50693662f/propcache-0.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:556fc6c10989f19a179e4321e5d678db8eb2924131e64652a51fe83e4c3db0e1", size = 43363 }, + { url = "https://files.pythonhosted.org/packages/41/b6/c5319caea262f4821995dca2107483b94a3345d4607ad797c76cb9c36bcc/propcache-0.2.1-py3-none-any.whl", hash = "sha256:52277518d6aae65536e9cea52d4e7fd2f7a66f4aa2d30ed3f2fcea620ace3c54", size = 11818 }, +] + +[[package]] +name = "protobuf" +version = "4.25.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/67/dd/48d5fdb68ec74d70fabcc252e434492e56f70944d9f17b6a15e3746d2295/protobuf-4.25.5.tar.gz", hash = "sha256:7f8249476b4a9473645db7f8ab42b02fe1488cbe5fb72fddd445e0665afd8584", size = 380315 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/35/1b3c5a5e6107859c4ca902f4fbb762e48599b78129a05d20684fef4a4d04/protobuf-4.25.5-cp310-abi3-win32.whl", hash = "sha256:5e61fd921603f58d2f5acb2806a929b4675f8874ff5f330b7d6f7e2e784bbcd8", size = 392457 }, + { url = "https://files.pythonhosted.org/packages/a7/ad/bf3f358e90b7e70bf7fb520702cb15307ef268262292d3bdb16ad8ebc815/protobuf-4.25.5-cp310-abi3-win_amd64.whl", hash = "sha256:4be0571adcbe712b282a330c6e89eae24281344429ae95c6d85e79e84780f5ea", size = 413449 }, + { url = "https://files.pythonhosted.org/packages/51/49/d110f0a43beb365758a252203c43eaaad169fe7749da918869a8c991f726/protobuf-4.25.5-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:b2fde3d805354df675ea4c7c6338c1aecd254dfc9925e88c6d31a2bcb97eb173", size = 394248 }, + { url = "https://files.pythonhosted.org/packages/c6/ab/0f384ca0bc6054b1a7b6009000ab75d28a5506e4459378b81280ae7fd358/protobuf-4.25.5-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:919ad92d9b0310070f8356c24b855c98df2b8bd207ebc1c0c6fcc9ab1e007f3d", size = 293717 }, + { url = "https://files.pythonhosted.org/packages/05/a6/094a2640be576d760baa34c902dcb8199d89bce9ed7dd7a6af74dcbbd62d/protobuf-4.25.5-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:fe14e16c22be926d3abfcb500e60cab068baf10b542b8c858fa27e098123e331", size = 294635 }, + { url = "https://files.pythonhosted.org/packages/33/90/f198a61df8381fb43ae0fe81b3d2718e8dcc51ae8502c7657ab9381fbc4f/protobuf-4.25.5-py3-none-any.whl", hash = "sha256:0aebecb809cae990f8129ada5ca273d9d670b76d9bfc9b1809f0a9c02b7dbf41", size = 156467 }, +] + +[[package]] +name = "psutil" +version = "6.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/26/10/2a30b13c61e7cf937f4adf90710776b7918ed0a9c434e2c38224732af310/psutil-6.1.0.tar.gz", hash = "sha256:353815f59a7f64cdaca1c0307ee13558a0512f6db064e92fe833784f08539c7a", size = 508565 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/9e/8be43078a171381953cfee33c07c0d628594b5dbfc5157847b85022c2c1b/psutil-6.1.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6e2dcd475ce8b80522e51d923d10c7871e45f20918e027ab682f94f1c6351688", size = 247762 }, + { url = "https://files.pythonhosted.org/packages/1d/cb/313e80644ea407f04f6602a9e23096540d9dc1878755f3952ea8d3d104be/psutil-6.1.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0895b8414afafc526712c498bd9de2b063deaac4021a3b3c34566283464aff8e", size = 248777 }, + { url = "https://files.pythonhosted.org/packages/65/8e/bcbe2025c587b5d703369b6a75b65d41d1367553da6e3f788aff91eaf5bd/psutil-6.1.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9dcbfce5d89f1d1f2546a2090f4fcf87c7f669d1d90aacb7d7582addece9fb38", size = 284259 }, + { url = "https://files.pythonhosted.org/packages/58/4d/8245e6f76a93c98aab285a43ea71ff1b171bcd90c9d238bf81f7021fb233/psutil-6.1.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:498c6979f9c6637ebc3a73b3f87f9eb1ec24e1ce53a7c5173b8508981614a90b", size = 287255 }, + { url = "https://files.pythonhosted.org/packages/27/c2/d034856ac47e3b3cdfa9720d0e113902e615f4190d5d1bdb8df4b2015fb2/psutil-6.1.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d905186d647b16755a800e7263d43df08b790d709d575105d419f8b6ef65423a", size = 288804 }, + { url = "https://files.pythonhosted.org/packages/ea/55/5389ed243c878725feffc0d6a3bc5ef6764312b6fc7c081faaa2cfa7ef37/psutil-6.1.0-cp37-abi3-win32.whl", hash = "sha256:1ad45a1f5d0b608253b11508f80940985d1d0c8f6111b5cb637533a0e6ddc13e", size = 250386 }, + { url = "https://files.pythonhosted.org/packages/11/91/87fa6f060e649b1e1a7b19a4f5869709fbf750b7c8c262ee776ec32f3028/psutil-6.1.0-cp37-abi3-win_amd64.whl", hash = "sha256:a8fb3752b491d246034fa4d279ff076501588ce8cbcdbb62c32fd7a377d996be", size = 254228 }, +] + +[[package]] +name = "psycopg2" +version = "2.9.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/62/51/2007ea29e605957a17ac6357115d0c1a1b60c8c984951c19419b3474cdfd/psycopg2-2.9.10.tar.gz", hash = "sha256:12ec0b40b0273f95296233e8750441339298e6a572f7039da5b260e3c8b60e11", size = 385672 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/a2/c51ca3e667c34e7852157b665e3d49418e68182081060231d514dd823225/psycopg2-2.9.10-cp311-cp311-win32.whl", hash = "sha256:47c4f9875125344f4c2b870e41b6aad585901318068acd01de93f3677a6522c2", size = 1024538 }, + { url = "https://files.pythonhosted.org/packages/33/39/5a9a229bb5414abeb86e33b8fc8143ab0aecce5a7f698a53e31367d30caa/psycopg2-2.9.10-cp311-cp311-win_amd64.whl", hash = "sha256:0435034157049f6846e95103bd8f5a668788dd913a7c30162ca9503fdf542cb4", size = 1163736 }, + { url = "https://files.pythonhosted.org/packages/3d/16/4623fad6076448df21c1a870c93a9774ad8a7b4dd1660223b59082dd8fec/psycopg2-2.9.10-cp312-cp312-win32.whl", hash = "sha256:65a63d7ab0e067e2cdb3cf266de39663203d38d6a8ed97f5ca0cb315c73fe067", size = 1025113 }, + { url = "https://files.pythonhosted.org/packages/66/de/baed128ae0fc07460d9399d82e631ea31a1f171c0c4ae18f9808ac6759e3/psycopg2-2.9.10-cp312-cp312-win_amd64.whl", hash = "sha256:4a579d6243da40a7b3182e0430493dbd55950c493d8c68f4eec0b302f6bbf20e", size = 1163951 }, +] + +[[package]] +name = "pwdlib" +version = "0.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/82/a0/9daed437a6226f632a25d98d65d60ba02bdafa920c90dcb6454c611ead6c/pwdlib-0.2.1.tar.gz", hash = "sha256:9a1d8a8fa09a2f7ebf208265e55d7d008103cbdc82b9e4902ffdd1ade91add5e", size = 11699 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/f3/0dae5078a486f0fdf4d4a1121e103bc42694a9da9bea7b0f2c63f29cfbd3/pwdlib-0.2.1-py3-none-any.whl", hash = "sha256:1823dc6f22eae472b540e889ecf57fd424051d6a4023ec0bcf7f0de2d9d7ef8c", size = 8082 }, +] + +[package.optional-dependencies] +argon2 = [ + { name = "argon2-cffi" }, +] +bcrypt = [ + { name = "bcrypt" }, +] + +[[package]] +name = "pyarrow" +version = "18.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7f/7b/640785a9062bb00314caa8a387abce547d2a420cf09bd6c715fe659ccffb/pyarrow-18.1.0.tar.gz", hash = "sha256:9386d3ca9c145b5539a1cfc75df07757dff870168c959b473a0bccbc3abc8c73", size = 1118671 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/4d/a4988e7d82f4fbc797715db4185939a658eeffb07a25bab7262bed1ea076/pyarrow-18.1.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:eaeabf638408de2772ce3d7793b2668d4bb93807deed1725413b70e3156a7854", size = 29554860 }, + { url = "https://files.pythonhosted.org/packages/59/03/3a42c5c1e4bd4c900ab62aa1ff6b472bdb159ba8f1c3e5deadab7222244f/pyarrow-18.1.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:3b2e2239339c538f3464308fd345113f886ad031ef8266c6f004d49769bb074c", size = 30867076 }, + { url = "https://files.pythonhosted.org/packages/75/7e/332055ac913373e89256dce9d14b7708f55f7bd5be631456c897f0237738/pyarrow-18.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f39a2e0ed32a0970e4e46c262753417a60c43a3246972cfc2d3eb85aedd01b21", size = 39212135 }, + { url = "https://files.pythonhosted.org/packages/8c/64/5099cdb325828722ef7ffeba9a4696f238eb0cdeae227f831c2d77fcf1bd/pyarrow-18.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e31e9417ba9c42627574bdbfeada7217ad8a4cbbe45b9d6bdd4b62abbca4c6f6", size = 40125195 }, + { url = "https://files.pythonhosted.org/packages/83/88/1938d783727db1b178ff71bc6a6143d7939e406db83a9ec23cad3dad325c/pyarrow-18.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:01c034b576ce0eef554f7c3d8c341714954be9b3f5d5bc7117006b85fcf302fe", size = 38641884 }, + { url = "https://files.pythonhosted.org/packages/5e/b5/9e14e9f7590e0eaa435ecea84dabb137284a4dbba7b3c337b58b65b76d95/pyarrow-18.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:f266a2c0fc31995a06ebd30bcfdb7f615d7278035ec5b1cd71c48d56daaf30b0", size = 40076877 }, + { url = "https://files.pythonhosted.org/packages/4d/a3/817ac7fe0891a2d66e247e223080f3a6a262d8aefd77e11e8c27e6acf4e1/pyarrow-18.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:d4f13eee18433f99adefaeb7e01d83b59f73360c231d4782d9ddfaf1c3fbde0a", size = 25119811 }, + { url = "https://files.pythonhosted.org/packages/6a/50/12829e7111b932581e51dda51d5cb39207a056c30fe31ef43f14c63c4d7e/pyarrow-18.1.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:9f3a76670b263dc41d0ae877f09124ab96ce10e4e48f3e3e4257273cee61ad0d", size = 29514620 }, + { url = "https://files.pythonhosted.org/packages/d1/41/468c944eab157702e96abab3d07b48b8424927d4933541ab43788bb6964d/pyarrow-18.1.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:da31fbca07c435be88a0c321402c4e31a2ba61593ec7473630769de8346b54ee", size = 30856494 }, + { url = "https://files.pythonhosted.org/packages/68/f9/29fb659b390312a7345aeb858a9d9c157552a8852522f2c8bad437c29c0a/pyarrow-18.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:543ad8459bc438efc46d29a759e1079436290bd583141384c6f7a1068ed6f992", size = 39203624 }, + { url = "https://files.pythonhosted.org/packages/6e/f6/19360dae44200e35753c5c2889dc478154cd78e61b1f738514c9f131734d/pyarrow-18.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0743e503c55be0fdb5c08e7d44853da27f19dc854531c0570f9f394ec9671d54", size = 40139341 }, + { url = "https://files.pythonhosted.org/packages/bb/e6/9b3afbbcf10cc724312e824af94a2e993d8ace22994d823f5c35324cebf5/pyarrow-18.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:d4b3d2a34780645bed6414e22dda55a92e0fcd1b8a637fba86800ad737057e33", size = 38618629 }, + { url = "https://files.pythonhosted.org/packages/3a/2e/3b99f8a3d9e0ccae0e961978a0d0089b25fb46ebbcfb5ebae3cca179a5b3/pyarrow-18.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:c52f81aa6f6575058d8e2c782bf79d4f9fdc89887f16825ec3a66607a5dd8e30", size = 40078661 }, + { url = "https://files.pythonhosted.org/packages/76/52/f8da04195000099d394012b8d42c503d7041b79f778d854f410e5f05049a/pyarrow-18.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:0ad4892617e1a6c7a551cfc827e072a633eaff758fa09f21c4ee548c30bcaf99", size = 25092330 }, + { url = "https://files.pythonhosted.org/packages/cb/87/aa4d249732edef6ad88899399047d7e49311a55749d3c373007d034ee471/pyarrow-18.1.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:84e314d22231357d473eabec709d0ba285fa706a72377f9cc8e1cb3c8013813b", size = 29497406 }, + { url = "https://files.pythonhosted.org/packages/3c/c7/ed6adb46d93a3177540e228b5ca30d99fc8ea3b13bdb88b6f8b6467e2cb7/pyarrow-18.1.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:f591704ac05dfd0477bb8f8e0bd4b5dc52c1cadf50503858dce3a15db6e46ff2", size = 30835095 }, + { url = "https://files.pythonhosted.org/packages/41/d7/ed85001edfb96200ff606943cff71d64f91926ab42828676c0fc0db98963/pyarrow-18.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:acb7564204d3c40babf93a05624fc6a8ec1ab1def295c363afc40b0c9e66c191", size = 39194527 }, + { url = "https://files.pythonhosted.org/packages/59/16/35e28eab126342fa391593415d79477e89582de411bb95232f28b131a769/pyarrow-18.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:74de649d1d2ccb778f7c3afff6085bd5092aed4c23df9feeb45dd6b16f3811aa", size = 40131443 }, + { url = "https://files.pythonhosted.org/packages/0c/95/e855880614c8da20f4cd74fa85d7268c725cf0013dc754048593a38896a0/pyarrow-18.1.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:f96bd502cb11abb08efea6dab09c003305161cb6c9eafd432e35e76e7fa9b90c", size = 38608750 }, + { url = "https://files.pythonhosted.org/packages/54/9d/f253554b1457d4fdb3831b7bd5f8f00f1795585a606eabf6fec0a58a9c38/pyarrow-18.1.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:36ac22d7782554754a3b50201b607d553a8d71b78cdf03b33c1125be4b52397c", size = 40066690 }, + { url = "https://files.pythonhosted.org/packages/2f/58/8912a2563e6b8273e8aa7b605a345bba5a06204549826f6493065575ebc0/pyarrow-18.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:25dbacab8c5952df0ca6ca0af28f50d45bd31c1ff6fcf79e2d120b4a65ee7181", size = 25081054 }, + { url = "https://files.pythonhosted.org/packages/82/f9/d06ddc06cab1ada0c2f2fd205ac8c25c2701182de1b9c4bf7a0a44844431/pyarrow-18.1.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6a276190309aba7bc9d5bd2933230458b3521a4317acfefe69a354f2fe59f2bc", size = 29525542 }, + { url = "https://files.pythonhosted.org/packages/ab/94/8917e3b961810587ecbdaa417f8ebac0abb25105ae667b7aa11c05876976/pyarrow-18.1.0-cp313-cp313t-macosx_12_0_x86_64.whl", hash = "sha256:ad514dbfcffe30124ce655d72771ae070f30bf850b48bc4d9d3b25993ee0e386", size = 30829412 }, + { url = "https://files.pythonhosted.org/packages/5e/e3/3b16c3190f3d71d3b10f6758d2d5f7779ef008c4fd367cedab3ed178a9f7/pyarrow-18.1.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aebc13a11ed3032d8dd6e7171eb6e86d40d67a5639d96c35142bd568b9299324", size = 39119106 }, + { url = "https://files.pythonhosted.org/packages/1d/d6/5d704b0d25c3c79532f8c0639f253ec2803b897100f64bcb3f53ced236e5/pyarrow-18.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d6cf5c05f3cee251d80e98726b5c7cc9f21bab9e9783673bac58e6dfab57ecc8", size = 40090940 }, + { url = "https://files.pythonhosted.org/packages/37/29/366bc7e588220d74ec00e497ac6710c2833c9176f0372fe0286929b2d64c/pyarrow-18.1.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:11b676cd410cf162d3f6a70b43fb9e1e40affbc542a1e9ed3681895f2962d3d9", size = 38548177 }, + { url = "https://files.pythonhosted.org/packages/c8/11/fabf6ecabb1fe5b7d96889228ca2a9158c4c3bb732e3b8ee3f7f6d40b703/pyarrow-18.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:b76130d835261b38f14fc41fdfb39ad8d672afb84c447126b84d5472244cfaba", size = 40043567 }, +] + +[[package]] +name = "pycparser" +version = "2.22" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", size = 172736 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552 }, +] + +[[package]] +name = "pydantic" +version = "2.8.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8c/99/d0a5dca411e0a017762258013ba9905cd6e7baa9a3fd1fe8b6529472902e/pydantic-2.8.2.tar.gz", hash = "sha256:6f62c13d067b0755ad1c21a34bdd06c0c12625a22b0fc09c6b149816604f7c2a", size = 739834 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1f/fa/b7f815b8c9ad021c07f88875b601222ef5e70619391ade4a49234d12d278/pydantic-2.8.2-py3-none-any.whl", hash = "sha256:73ee9fddd406dc318b885c7a2eab8a6472b68b8fb5ba8150949fc3db939f23c8", size = 423875 }, +] + +[[package]] +name = "pydantic-core" +version = "2.20.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/12/e3/0d5ad91211dba310f7ded335f4dad871172b9cc9ce204f5a56d76ccd6247/pydantic_core-2.20.1.tar.gz", hash = "sha256:26ca695eeee5f9f1aeeb211ffc12f10bcb6f71e2989988fda61dabd65db878d4", size = 388371 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/db/f6a724db226d990a329910727cfac43539ff6969edc217286dd05cda3ef6/pydantic_core-2.20.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d2a8fa9d6d6f891f3deec72f5cc668e6f66b188ab14bb1ab52422fe8e644f312", size = 1834507 }, + { url = "https://files.pythonhosted.org/packages/9b/83/6f2bfe75209d557ae1c3550c1252684fc1827b8b12fbed84c3b4439e135d/pydantic_core-2.20.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:175873691124f3d0da55aeea1d90660a6ea7a3cfea137c38afa0a5ffabe37b88", size = 1773527 }, + { url = "https://files.pythonhosted.org/packages/93/ef/513ea76d7ca81f2354bb9c8d7839fc1157673e652613f7e1aff17d8ce05d/pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37eee5b638f0e0dcd18d21f59b679686bbd18917b87db0193ae36f9c23c355fc", size = 1787879 }, + { url = "https://files.pythonhosted.org/packages/31/0a/ac294caecf235f0cc651de6232f1642bb793af448d1cfc541b0dc1fd72b8/pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25e9185e2d06c16ee438ed39bf62935ec436474a6ac4f9358524220f1b236e43", size = 1774694 }, + { url = "https://files.pythonhosted.org/packages/46/a4/08f12b5512f095963550a7cb49ae010e3f8f3f22b45e508c2cb4d7744fce/pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:150906b40ff188a3260cbee25380e7494ee85048584998c1e66df0c7a11c17a6", size = 1976369 }, + { url = "https://files.pythonhosted.org/packages/15/59/b2495be4410462aedb399071c71884042a2c6443319cbf62d00b4a7ed7a5/pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ad4aeb3e9a97286573c03df758fc7627aecdd02f1da04516a86dc159bf70121", size = 2691250 }, + { url = "https://files.pythonhosted.org/packages/3c/ae/fc99ce1ba791c9e9d1dee04ce80eef1dae5b25b27e3fc8e19f4e3f1348bf/pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3f3ed29cd9f978c604708511a1f9c2fdcb6c38b9aae36a51905b8811ee5cbf1", size = 2061462 }, + { url = "https://files.pythonhosted.org/packages/44/bb/eb07cbe47cfd638603ce3cb8c220f1a054b821e666509e535f27ba07ca5f/pydantic_core-2.20.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b0dae11d8f5ded51699c74d9548dcc5938e0804cc8298ec0aa0da95c21fff57b", size = 1893923 }, + { url = "https://files.pythonhosted.org/packages/ce/ef/5a52400553b8faa0e7f11fd7a2ba11e8d2feb50b540f9e7973c49b97eac0/pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:faa6b09ee09433b87992fb5a2859efd1c264ddc37280d2dd5db502126d0e7f27", size = 1966779 }, + { url = "https://files.pythonhosted.org/packages/4c/5b/fb37fe341344d9651f5c5f579639cd97d50a457dc53901aa8f7e9f28beb9/pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9dc1b507c12eb0481d071f3c1808f0529ad41dc415d0ca11f7ebfc666e66a18b", size = 2109044 }, + { url = "https://files.pythonhosted.org/packages/70/1a/6f7278802dbc66716661618807ab0dfa4fc32b09d1235923bbbe8b3a5757/pydantic_core-2.20.1-cp311-none-win32.whl", hash = "sha256:fa2fddcb7107e0d1808086ca306dcade7df60a13a6c347a7acf1ec139aa6789a", size = 1708265 }, + { url = "https://files.pythonhosted.org/packages/35/7f/58758c42c61b0bdd585158586fecea295523d49933cb33664ea888162daf/pydantic_core-2.20.1-cp311-none-win_amd64.whl", hash = "sha256:40a783fb7ee353c50bd3853e626f15677ea527ae556429453685ae32280c19c2", size = 1901750 }, + { url = "https://files.pythonhosted.org/packages/6f/47/ef0d60ae23c41aced42921728650460dc831a0adf604bfa66b76028cb4d0/pydantic_core-2.20.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:595ba5be69b35777474fa07f80fc260ea71255656191adb22a8c53aba4479231", size = 1839225 }, + { url = "https://files.pythonhosted.org/packages/6a/23/430f2878c9cd977a61bb39f71751d9310ec55cee36b3d5bf1752c6341fd0/pydantic_core-2.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a4f55095ad087474999ee28d3398bae183a66be4823f753cd7d67dd0153427c9", size = 1768604 }, + { url = "https://files.pythonhosted.org/packages/9e/2b/ec4e7225dee79e0dc80ccc3c35ab33cc2c4bbb8a1a7ecf060e5e453651ec/pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9aa05d09ecf4c75157197f27cdc9cfaeb7c5f15021c6373932bf3e124af029f", size = 1789767 }, + { url = "https://files.pythonhosted.org/packages/64/b0/38b24a1fa6d2f96af3148362e10737ec073768cd44d3ec21dca3be40a519/pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e97fdf088d4b31ff4ba35db26d9cc472ac7ef4a2ff2badeabf8d727b3377fc52", size = 1772061 }, + { url = "https://files.pythonhosted.org/packages/5e/da/bb73274c42cb60decfa61e9eb0c9029da78b3b9af0a9de0309dbc8ff87b6/pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc633a9fe1eb87e250b5c57d389cf28998e4292336926b0b6cdaee353f89a237", size = 1974573 }, + { url = "https://files.pythonhosted.org/packages/c8/65/41693110fb3552556180460daffdb8bbeefb87fc026fd9aa4b849374015c/pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d573faf8eb7e6b1cbbcb4f5b247c60ca8be39fe2c674495df0eb4318303137fe", size = 2625596 }, + { url = "https://files.pythonhosted.org/packages/09/b3/a5a54b47cccd1ab661ed5775235c5e06924753c2d4817737c5667bfa19a8/pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26dc97754b57d2fd00ac2b24dfa341abffc380b823211994c4efac7f13b9e90e", size = 2099064 }, + { url = "https://files.pythonhosted.org/packages/52/fa/443a7a6ea54beaba45ff3a59f3d3e6e3004b7460bcfb0be77bcf98719d3b/pydantic_core-2.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:33499e85e739a4b60c9dac710c20a08dc73cb3240c9a0e22325e671b27b70d24", size = 1900345 }, + { url = "https://files.pythonhosted.org/packages/8e/e6/9aca9ffae60f9cdf0183069de3e271889b628d0fb175913fcb3db5618fb1/pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bebb4d6715c814597f85297c332297c6ce81e29436125ca59d1159b07f423eb1", size = 1968252 }, + { url = "https://files.pythonhosted.org/packages/46/5e/6c716810ea20a6419188992973a73c2fb4eb99cd382368d0637ddb6d3c99/pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:516d9227919612425c8ef1c9b869bbbee249bc91912c8aaffb66116c0b447ebd", size = 2119191 }, + { url = "https://files.pythonhosted.org/packages/06/fc/6123b00a9240fbb9ae0babad7a005d51103d9a5d39c957a986f5cdd0c271/pydantic_core-2.20.1-cp312-none-win32.whl", hash = "sha256:469f29f9093c9d834432034d33f5fe45699e664f12a13bf38c04967ce233d688", size = 1717788 }, + { url = "https://files.pythonhosted.org/packages/d5/36/e61ad5a46607a469e2786f398cd671ebafcd9fb17f09a2359985c7228df5/pydantic_core-2.20.1-cp312-none-win_amd64.whl", hash = "sha256:035ede2e16da7281041f0e626459bcae33ed998cca6a0a007a5ebb73414ac72d", size = 1898188 }, + { url = "https://files.pythonhosted.org/packages/49/75/40b0e98b658fdba02a693b3bacb4c875a28bba87796c7b13975976597d8c/pydantic_core-2.20.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:0827505a5c87e8aa285dc31e9ec7f4a17c81a813d45f70b1d9164e03a813a686", size = 1838688 }, + { url = "https://files.pythonhosted.org/packages/75/02/d8ba2d4a266591a6a623c68b331b96523d4b62ab82a951794e3ed8907390/pydantic_core-2.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:19c0fa39fa154e7e0b7f82f88ef85faa2a4c23cc65aae2f5aea625e3c13c735a", size = 1768409 }, + { url = "https://files.pythonhosted.org/packages/91/ae/25ecd9bc4ce4993e99a1a3c9ab111c082630c914260e129572fafed4ecc2/pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa223cd1e36b642092c326d694d8bf59b71ddddc94cdb752bbbb1c5c91d833b", size = 1789317 }, + { url = "https://files.pythonhosted.org/packages/7a/80/72057580681cdbe55699c367963d9c661b569a1d39338b4f6239faf36cdc/pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c336a6d235522a62fef872c6295a42ecb0c4e1d0f1a3e500fe949415761b8a19", size = 1771949 }, + { url = "https://files.pythonhosted.org/packages/a2/be/d9bbabc55b05019013180f141fcaf3b14dbe15ca7da550e95b60c321009a/pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7eb6a0587eded33aeefea9f916899d42b1799b7b14b8f8ff2753c0ac1741edac", size = 1974392 }, + { url = "https://files.pythonhosted.org/packages/79/2d/7bcd938c6afb0f40293283f5f09988b61fb0a4f1d180abe7c23a2f665f8e/pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70c8daf4faca8da5a6d655f9af86faf6ec2e1768f4b8b9d0226c02f3d6209703", size = 2625565 }, + { url = "https://files.pythonhosted.org/packages/ac/88/ca758e979457096008a4b16a064509028e3e092a1e85a5ed6c18ced8da88/pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9fa4c9bf273ca41f940bceb86922a7667cd5bf90e95dbb157cbb8441008482c", size = 2098784 }, + { url = "https://files.pythonhosted.org/packages/eb/de/2fad6d63c3c42e472e985acb12ec45b7f56e42e6f4cd6dfbc5e87ee8678c/pydantic_core-2.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:11b71d67b4725e7e2a9f6e9c0ac1239bbc0c48cce3dc59f98635efc57d6dac83", size = 1900198 }, + { url = "https://files.pythonhosted.org/packages/fe/50/077c7f35b6488dc369a6d22993af3a37901e198630f38ac43391ca730f5b/pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:270755f15174fb983890c49881e93f8f1b80f0b5e3a3cc1394a255706cabd203", size = 1968005 }, + { url = "https://files.pythonhosted.org/packages/5d/1f/f378631574ead46d636b9a04a80ff878b9365d4b361b1905ef1667d4182a/pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c81131869240e3e568916ef4c307f8b99583efaa60a8112ef27a366eefba8ef0", size = 2118920 }, + { url = "https://files.pythonhosted.org/packages/7a/ea/e4943f17df7a3031d709481fe4363d4624ae875a6409aec34c28c9e6cf59/pydantic_core-2.20.1-cp313-none-win32.whl", hash = "sha256:b91ced227c41aa29c672814f50dbb05ec93536abf8f43cd14ec9521ea09afe4e", size = 1717397 }, + { url = "https://files.pythonhosted.org/packages/13/63/b95781763e8d84207025071c0cec16d921c0163c7a9033ae4b9a0e020dc7/pydantic_core-2.20.1-cp313-none-win_amd64.whl", hash = "sha256:65db0f2eefcaad1a3950f498aabb4875c8890438bc80b19362cf633b87a8ab20", size = 1898013 }, +] + +[[package]] +name = "pydantic-settings" +version = "2.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "python-dotenv" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/86/41/19b62b99e7530cfa1d6ccd16199afd9289a12929bef1a03aa4382b22e683/pydantic_settings-2.7.0.tar.gz", hash = "sha256:ac4bfd4a36831a48dbf8b2d9325425b549a0a6f18cea118436d728eb4f1c4d66", size = 79743 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/00/57b4540deb5c3a39ba689bb519a4e03124b24ab8589e618be4aac2c769bd/pydantic_settings-2.7.0-py3-none-any.whl", hash = "sha256:e00c05d5fa6cbbb227c84bd7487c5c1065084119b750df7c8c1a554aed236eb5", size = 29549 }, +] + +[[package]] +name = "pygments" +version = "2.18.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8e/62/8336eff65bcbc8e4cb5d05b55faf041285951b6e80f33e2bff2024788f31/pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199", size = 4891905 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/3f/01c8b82017c199075f8f788d0d906b9ffbbc5a47dc9918a945e13d5a2bda/pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a", size = 1205513 }, +] + +[[package]] +name = "pyjwt" +version = "2.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fb/68/ce067f09fca4abeca8771fe667d89cc347d1e99da3e093112ac329c6020e/pyjwt-2.9.0.tar.gz", hash = "sha256:7e1e5b56cc735432a7369cbfa0efe50fa113ebecdc04ae6922deba8b84582d0c", size = 78825 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/79/84/0fdf9b18ba31d69877bd39c9cd6052b47f3761e9910c15de788e519f079f/PyJWT-2.9.0-py3-none-any.whl", hash = "sha256:3b02fb0f44517787776cf48f2ae25d8e14f300e6d7545a4315cee571a415e850", size = 22344 }, +] + +[package.optional-dependencies] +crypto = [ + { name = "cryptography" }, +] + +[[package]] +name = "pylance" +version = "0.19.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "pyarrow" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/6f/fb/5e269c0c310646099fea4cc47872e21172d3d917fe68a036bf2f3e42b374/pylance-0.19.1-cp39-abi3-macosx_10_15_x86_64.whl", hash = "sha256:a254d09690a5e09cadc5fecc7b43b2bfc20b477e0f0ba31497e1d6abb36b524a", size = 28569476 }, + { url = "https://files.pythonhosted.org/packages/65/47/390622a3f7b2873966c0e197979afb72eb3cb0352342bdff6581c8600fa4/pylance-0.19.1-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:9859c372b2d7fe443b6218f62e9d77caf94961cac73b274c85b724f20dd6b690", size = 26540391 }, + { url = "https://files.pythonhosted.org/packages/47/8a/2a8a07af0983577b8fc68eeb85fbb3ea0e774d84125a6395d748fde1b580/pylance-0.19.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8315152f57329e7668ff5c82c252591ea0e3d2aed702dd19a42d645945e7a07e", size = 30423804 }, + { url = "https://files.pythonhosted.org/packages/ee/33/eee18d4d8996e0db79c71231b653b5c9ae86a9002e3e3d708e1461717f5c/pylance-0.19.1-cp39-abi3-manylinux_2_24_aarch64.whl", hash = "sha256:7c2e0e00b40214edae576075dbfa432cadaf5ba21354b0c46f307daf4e77403f", size = 28979799 }, + { url = "https://files.pythonhosted.org/packages/3b/af/3bf6d0c9dc52e2ae048c575249527f3c2cc8a4df85c94905900c719b42e0/pylance-0.19.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:e26ce273840912c45dd2b8f6f8fb9082c1c788d696e11b78ddad3949e3892d50", size = 30359171 }, + { url = "https://files.pythonhosted.org/packages/d9/73/0641124631a4f5f03d988c4a8000046d4c182340719ba4cf228cb45c5dca/pylance-0.19.1-cp39-abi3-win_amd64.whl", hash = "sha256:b341e547c995b5d6b32eb63e1e015d31b608de49a9ad03f8981453f4c667e8e1", size = 28387696 }, +] + +[[package]] +name = "pylint" +version = "3.3.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "astroid" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "dill" }, + { name = "isort" }, + { name = "mccabe" }, + { name = "platformdirs" }, + { name = "tomlkit" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/81/d8/4471b2cb4ad18b4af717918c468209bd2bd5a02c52f60be5ee8a71b5af2c/pylint-3.3.2.tar.gz", hash = "sha256:9ec054ec992cd05ad30a6df1676229739a73f8feeabf3912c995d17601052b01", size = 1516485 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/55/5eaf6c415f6ddb09b9b039278823a8e27fb81ea7a34ec80c6d9223b17f2e/pylint-3.3.2-py3-none-any.whl", hash = "sha256:77f068c287d49b8683cd7c6e624243c74f92890f767f106ffa1ddf3c0a54cb7a", size = 521873 }, +] + +[[package]] +name = "pymilvus" +version = "2.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "grpcio" }, + { name = "milvus-lite", marker = "sys_platform != 'win32'" }, + { name = "pandas" }, + { name = "protobuf" }, + { name = "python-dotenv" }, + { name = "setuptools" }, + { name = "ujson" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/3d/e6b593cf456e4300e3aa58b76e55f392166c5df2ea3605666ad6200503fb/pymilvus-2.5.0.tar.gz", hash = "sha256:4da14a3bd957a4921166f9355fd1f1ac5c5e4e80b46f12f64d9c9a6dcb8cb395", size = 1238729 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/f1/76af6c8e1481879f5e0c0d885ab899ab8869fd939b27ac7a0b6c3b3b4ebe/pymilvus-2.5.0-py3-none-any.whl", hash = "sha256:a0e8653d8fe78019abfda79b3404ef7423f312501e8cbd7dc728051ce8732652", size = 212848 }, +] + +[[package]] +name = "pypandoc" +version = "1.14" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3a/76/4813088c2df396b562a944887ec42983f268b75091c03b48bdaf657a7229/pypandoc-1.14.tar.gz", hash = "sha256:6b4c45f5f1b9fb5bb562079164806bdbbc3e837b5402bcf3f1139edc5730a197", size = 32742 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ff/bd/cf1dd70b95f3366f3c457c5259ed8f032122210441407b6ed281d7fcbb8c/pypandoc-1.14-py3-none-any.whl", hash = "sha256:1315c7ad7fac7236dacf69a05b521ed2c3f1d0177f70e9b92bfffce6c023df22", size = 21266 }, +] + +[[package]] +name = "pyparsing" +version = "3.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/d5/e5aeee5387091148a19e1145f63606619cb5f20b83fccb63efae6474e7b2/pyparsing-3.2.0.tar.gz", hash = "sha256:cbf74e27246d595d9a74b186b810f6fbb86726dbf3b9532efb343f6d7294fe9c", size = 920984 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/ec/2eb3cd785efd67806c46c13a17339708ddc346cbb684eade7a6e6f79536a/pyparsing-3.2.0-py3-none-any.whl", hash = "sha256:93d9577b88da0bbea8cc8334ee8b918ed014968fd2ec383e868fb8afb1ccef84", size = 106921 }, +] + +[[package]] +name = "pypdf" +version = "4.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f0/65/2ed7c9e1d31d860f096061b3dd2d665f501e09faaa0409a3f0d719d2a16d/pypdf-4.3.1.tar.gz", hash = "sha256:b2f37fe9a3030aa97ca86067a56ba3f9d3565f9a791b305c7355d8392c30d91b", size = 293266 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3c/60/eccdd92dd4af3e4bea6d6a342f7588c618a15b9bec4b968af581e498bcc4/pypdf-4.3.1-py3-none-any.whl", hash = "sha256:64b31da97eda0771ef22edb1bfecd5deee4b72c3d1736b7df2689805076d6418", size = 295825 }, +] + +[[package]] +name = "pytest" +version = "7.4.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "iniconfig" }, + { name = "packaging" }, + { name = "pluggy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/80/1f/9d8e98e4133ffb16c90f3b405c43e38d3abb715bb5d7a63a5a684f7e46a3/pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280", size = 1357116 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/ff/f6e8b8f39e08547faece4bd80f89d5a8de68a38b2d179cc1c4490ffa3286/pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8", size = 325287 }, +] + +[[package]] +name = "pytest-asyncio" +version = "0.21.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ae/53/57663d99acaac2fcdafdc697e52a9b1b7d6fcf36616281ff9768a44e7ff3/pytest_asyncio-0.21.2.tar.gz", hash = "sha256:d67738fc232b94b326b9d060750beb16e0074210b98dd8b58a5239fa2a154f45", size = 30656 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/ce/1e4b53c213dce25d6e8b163697fbce2d43799d76fa08eea6ad270451c370/pytest_asyncio-0.21.2-py3-none-any.whl", hash = "sha256:ab664c88bb7998f711d8039cacd4884da6430886ae8bbd4eded552ed2004f16b", size = 13368 }, +] + +[[package]] +name = "pytest-repeat" +version = "0.9.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/86/5e/99365eb229efff0b1bd475886150fc6db9937ab7e1bd21f6f65c1279e0eb/pytest_repeat-0.9.3.tar.gz", hash = "sha256:ffd3836dfcd67bb270bec648b330e20be37d2966448c4148c4092d1e8aba8185", size = 6272 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/49/a8/0a0aec0c2541b8baf4a0b95af2ba99abce217ee43534adf9cb7c908cf184/pytest_repeat-0.9.3-py3-none-any.whl", hash = "sha256:26ab2df18226af9d5ce441c858f273121e92ff55f5bb311d25755b8d7abdd8ed", size = 4196 }, +] + +[[package]] +name = "pytest-xdist" +version = "3.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "execnet" }, + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/41/c4/3c310a19bc1f1e9ef50075582652673ef2bfc8cd62afef9585683821902f/pytest_xdist-3.6.1.tar.gz", hash = "sha256:ead156a4db231eec769737f57668ef58a2084a34b2e55c4a8fa20d861107300d", size = 84060 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6d/82/1d96bf03ee4c0fdc3c0cbe61470070e659ca78dc0086fb88b66c185e2449/pytest_xdist-3.6.1-py3-none-any.whl", hash = "sha256:9ed4adfb68a016610848639bb7e02c9352d5d9f03d04809919e2dafc3be4cca7", size = 46108 }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892 }, +] + +[[package]] +name = "python-docx" +version = "1.1.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "lxml" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/35/e4/386c514c53684772885009c12b67a7edd526c15157778ac1b138bc75063e/python_docx-1.1.2.tar.gz", hash = "sha256:0cf1f22e95b9002addca7948e16f2cd7acdfd498047f1941ca5d293db7762efd", size = 5656581 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3e/3d/330d9efbdb816d3f60bf2ad92f05e1708e4a1b9abe80461ac3444c83f749/python_docx-1.1.2-py3-none-any.whl", hash = "sha256:08c20d6058916fb19853fcf080f7f42b6270d89eac9fa5f8c15f691c0017fabe", size = 244315 }, +] + +[[package]] +name = "python-dotenv" +version = "1.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bc/57/e84d88dfe0aec03b7a2d4327012c1627ab5f03652216c63d49846d7a6c58/python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca", size = 39115 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/3e/b68c118422ec867fa7ab88444e1274aa40681c606d59ac27de5a5588f082/python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a", size = 19863 }, +] + +[[package]] +name = "python-iso639" +version = "2024.10.22" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8e/54/f88a3fb5802ce026f8111ab75cafc8d57b2cd455e49cada6a65c28e5726f/python_iso639-2024.10.22.tar.gz", hash = "sha256:750f21b6a0bc6baa24253a3d8aae92b582bf93aa40988361cd96852c2c6d9a52", size = 280240 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/31/62/aa1cc476c53f58a18860e98ed031468f42446b6bed7568e47058f659291e/python_iso639-2024.10.22-py3-none-any.whl", hash = "sha256:02d3ce2e01c6896b30b9cbbd3e1c8ee0d7221250b5d63ea9803e0d2a81fd1047", size = 274898 }, +] + +[[package]] +name = "python-magic" +version = "0.4.27" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/da/db/0b3e28ac047452d079d375ec6798bf76a036a08182dbb39ed38116a49130/python-magic-0.4.27.tar.gz", hash = "sha256:c1ba14b08e4a5f5c31a302b7721239695b2f0f058d125bd5ce1ee36b9d9d3c3b", size = 14677 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6c/73/9f872cb81fc5c3bb48f7227872c28975f998f3e7c2b1c16e95e6432bbb90/python_magic-0.4.27-py2.py3-none-any.whl", hash = "sha256:c212960ad306f700aa0d01e5d7a325d20548ff97eb9920dcd29513174f0294d3", size = 13840 }, +] + +[[package]] +name = "python-multipart" +version = "0.0.17" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/40/22/edea41c2d4a22e666c0c7db7acdcbf7bc8c1c1f7d3b3ca246ec982fec612/python_multipart-0.0.17.tar.gz", hash = "sha256:41330d831cae6e2f22902704ead2826ea038d0419530eadff3ea80175aec5538", size = 36452 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b4/fb/275137a799169392f1fa88fff2be92f16eee38e982720a8aaadefc4a36b2/python_multipart-0.0.17-py3-none-any.whl", hash = "sha256:15dc4f487e0a9476cc1201261188ee0940165cffc94429b6fc565c4d3045cb5d", size = 24453 }, +] + +[[package]] +name = "python-oxmsg" +version = "0.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "olefile" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4f/d4/4ec721fd433453fe05344f41f17458775d111e9f6c668ce1a0fccec0fecd/python_oxmsg-0.0.1.tar.gz", hash = "sha256:b65c1f93d688b85a9410afa824192a1ddc39da359b04a0bd2cbd3874e84d4994", size = 34541 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d4/c8/fb23e1e7723ba9200b75bc121f22f67498ae098a202f1646acc4f6a54f5c/python_oxmsg-0.0.1-py3-none-any.whl", hash = "sha256:8ea7d5dda1bc161a413213da9e18ed152927c1fda2feaf5d1f02192d8ad45eea", size = 31426 }, +] + +[[package]] +name = "python-pptx" +version = "1.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "lxml" }, + { name = "pillow" }, + { name = "typing-extensions" }, + { name = "xlsxwriter" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/52/a9/0c0db8d37b2b8a645666f7fd8accea4c6224e013c42b1d5c17c93590cd06/python_pptx-1.0.2.tar.gz", hash = "sha256:479a8af0eaf0f0d76b6f00b0887732874ad2e3188230315290cd1f9dd9cc7095", size = 10109297 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/4f/00be2196329ebbff56ce564aa94efb0fbc828d00de250b1980de1a34ab49/python_pptx-1.0.2-py3-none-any.whl", hash = "sha256:160838e0b8565a8b1f67947675886e9fea18aa5e795db7ae531606d68e785cba", size = 472788 }, +] + +[[package]] +name = "pytz" +version = "2024.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3a/31/3c70bf7603cc2dca0f19bdc53b4537a797747a58875b552c8c413d963a3f/pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a", size = 319692 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/c3/005fcca25ce078d2cc29fd559379817424e94885510568bc1bc53d7d5846/pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725", size = 508002 }, +] + +[[package]] +name = "pywin32" +version = "308" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/eb/e2/02652007469263fe1466e98439831d65d4ca80ea1a2df29abecedf7e47b7/pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a", size = 5928156 }, + { url = "https://files.pythonhosted.org/packages/48/ef/f4fb45e2196bc7ffe09cad0542d9aff66b0e33f6c0954b43e49c33cad7bd/pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b", size = 6559559 }, + { url = "https://files.pythonhosted.org/packages/79/ef/68bb6aa865c5c9b11a35771329e95917b5559845bd75b65549407f9fc6b4/pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6", size = 7972495 }, + { url = "https://files.pythonhosted.org/packages/00/7c/d00d6bdd96de4344e06c4afbf218bc86b54436a94c01c71a8701f613aa56/pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897", size = 5939729 }, + { url = "https://files.pythonhosted.org/packages/21/27/0c8811fbc3ca188f93b5354e7c286eb91f80a53afa4e11007ef661afa746/pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47", size = 6543015 }, + { url = "https://files.pythonhosted.org/packages/9d/0f/d40f8373608caed2255781a3ad9a51d03a594a1248cd632d6a298daca693/pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091", size = 7976033 }, + { url = "https://files.pythonhosted.org/packages/a9/a4/aa562d8935e3df5e49c161b427a3a2efad2ed4e9cf81c3de636f1fdddfd0/pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed", size = 5938579 }, + { url = "https://files.pythonhosted.org/packages/c7/50/b0efb8bb66210da67a53ab95fd7a98826a97ee21f1d22949863e6d588b22/pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4", size = 6542056 }, + { url = "https://files.pythonhosted.org/packages/26/df/2b63e3e4f2df0224f8aaf6d131f54fe4e8c96400eb9df563e2aae2e1a1f9/pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd", size = 7974986 }, +] + +[[package]] +name = "pyyaml" +version = "6.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/aa/7af4e81f7acba21a4c6be026da38fd2b872ca46226673c89a758ebdc4fd2/PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774", size = 184612 }, + { url = "https://files.pythonhosted.org/packages/8b/62/b9faa998fd185f65c1371643678e4d58254add437edb764a08c5a98fb986/PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee", size = 172040 }, + { url = "https://files.pythonhosted.org/packages/ad/0c/c804f5f922a9a6563bab712d8dcc70251e8af811fce4524d57c2c0fd49a4/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c", size = 736829 }, + { url = "https://files.pythonhosted.org/packages/51/16/6af8d6a6b210c8e54f1406a6b9481febf9c64a3109c541567e35a49aa2e7/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317", size = 764167 }, + { url = "https://files.pythonhosted.org/packages/75/e4/2c27590dfc9992f73aabbeb9241ae20220bd9452df27483b6e56d3975cc5/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85", size = 762952 }, + { url = "https://files.pythonhosted.org/packages/9b/97/ecc1abf4a823f5ac61941a9c00fe501b02ac3ab0e373c3857f7d4b83e2b6/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4", size = 735301 }, + { url = "https://files.pythonhosted.org/packages/45/73/0f49dacd6e82c9430e46f4a027baa4ca205e8b0a9dce1397f44edc23559d/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e", size = 756638 }, + { url = "https://files.pythonhosted.org/packages/22/5f/956f0f9fc65223a58fbc14459bf34b4cc48dec52e00535c79b8db361aabd/PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5", size = 143850 }, + { url = "https://files.pythonhosted.org/packages/ed/23/8da0bbe2ab9dcdd11f4f4557ccaf95c10b9811b13ecced089d43ce59c3c8/PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44", size = 161980 }, + { url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873 }, + { url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302 }, + { url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154 }, + { url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223 }, + { url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542 }, + { url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164 }, + { url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611 }, + { url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591 }, + { url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338 }, + { url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309 }, + { url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679 }, + { url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428 }, + { url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361 }, + { url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523 }, + { url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660 }, + { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597 }, + { url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527 }, + { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 }, +] + +[[package]] +name = "qdrant-client" +version = "1.12.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "grpcio" }, + { name = "grpcio-tools" }, + { name = "httpx", extra = ["http2"] }, + { name = "numpy" }, + { name = "portalocker" }, + { name = "pydantic" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/15/5e/ec560881e086f893947c8798949c72de5cfae9453fd05c2250f8dfeaa571/qdrant_client-1.12.1.tar.gz", hash = "sha256:35e8e646f75b7b883b3d2d0ee4c69c5301000bba41c82aa546e985db0f1aeb72", size = 237441 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/68/c0/eef4fe9dad6d41333f7dc6567fa8144ffc1837c8a0edfc2317d50715335f/qdrant_client-1.12.1-py3-none-any.whl", hash = "sha256:b2d17ce18e9e767471368380dd3bbc4a0e3a0e2061fedc9af3542084b48451e0", size = 267171 }, +] + +[[package]] +name = "rapidfuzz" +version = "3.11.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a4/aa/25e5a20131369d82c7b8288c99c2c3011ec47a3f5953ccc9cb8145720be5/rapidfuzz-3.11.0.tar.gz", hash = "sha256:a53ca4d3f52f00b393fab9b5913c5bafb9afc27d030c8a1db1283da6917a860f", size = 57983000 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/ac/9ca008834104ad138fbfe2d7ae4443ada55e00c4eb4272d288897e8763b8/rapidfuzz-3.11.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8724a978f8af7059c5323d523870bf272a097478e1471295511cf58b2642ff83", size = 1955019 }, + { url = "https://files.pythonhosted.org/packages/4c/55/d026c01c9312c9c2a413679052a9bb884743fc5655e59339116d83a2125b/rapidfuzz-3.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8b63cb1f2eb371ef20fb155e95efd96e060147bdd4ab9fc400c97325dfee9fe1", size = 1427753 }, + { url = "https://files.pythonhosted.org/packages/d1/a0/5f3fae81dd1efdf47da19641e321ae84b4f49a5a7b2ab3ff78bd04a0ae7f/rapidfuzz-3.11.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82497f244aac10b20710448645f347d862364cc4f7d8b9ba14bd66b5ce4dec18", size = 1411472 }, + { url = "https://files.pythonhosted.org/packages/3c/3f/770b0fca00faf42983fe21fbd379f429dc2600c58d7015f969fb1f73c1db/rapidfuzz-3.11.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:339607394941801e6e3f6c1ecd413a36e18454e7136ed1161388de674f47f9d9", size = 5614973 }, + { url = "https://files.pythonhosted.org/packages/08/6f/e3df1c41adf27f4b8a95c9de947ed49e7311a676cd05bdd62a17bb1f21ec/rapidfuzz-3.11.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84819390a36d6166cec706b9d8f0941f115f700b7faecab5a7e22fc367408bc3", size = 1665667 }, + { url = "https://files.pythonhosted.org/packages/1a/9b/6c91b98dc70270c35913f359c17e30d4185c83663c4721363540f4c03016/rapidfuzz-3.11.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eea8d9e20632d68f653455265b18c35f90965e26f30d4d92f831899d6682149b", size = 1676166 }, + { url = "https://files.pythonhosted.org/packages/59/9d/eec7a1bfd3566fb17617b41bfb19556c483241d6864eea3c01b88efe5459/rapidfuzz-3.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5b659e1e2ea2784a9a397075a7fc395bfa4fe66424042161c4bcaf6e4f637b38", size = 3130890 }, + { url = "https://files.pythonhosted.org/packages/26/7c/0a4bb5fbb03a362ea3e1409515d3ae641d9bc869c1375d97d8c47e369cc0/rapidfuzz-3.11.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1315cd2a351144572e31fe3df68340d4b83ddec0af8b2e207cd32930c6acd037", size = 2339850 }, + { url = "https://files.pythonhosted.org/packages/f8/c1/6b839db83caaa47721398b76390a3145202beb108fa433e842879b497439/rapidfuzz-3.11.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:a7743cca45b4684c54407e8638f6d07b910d8d811347b9d42ff21262c7c23245", size = 6941921 }, + { url = "https://files.pythonhosted.org/packages/cc/c9/eaac43bb5e44f3594afddbbdb1a28d7bc0bcb69f93ed9a2ef0c949a48fb2/rapidfuzz-3.11.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:5bb636b0150daa6d3331b738f7c0f8b25eadc47f04a40e5c23c4bfb4c4e20ae3", size = 2717551 }, + { url = "https://files.pythonhosted.org/packages/ef/d3/06ca5ee6b7f030f6527ea1e80fe9a4ab3597e86bc783574e3fc2b05a5265/rapidfuzz-3.11.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:42f4dd264ada7a9aa0805ea0da776dc063533917773cf2df5217f14eb4429eae", size = 3259550 }, + { url = "https://files.pythonhosted.org/packages/74/d8/094e75ee0424cce329901a0ff98c1821fd5d9dbc11bcdc9a3fddd2a09c4c/rapidfuzz-3.11.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:51f24cb39e64256221e6952f22545b8ce21cacd59c0d3e367225da8fc4b868d8", size = 4173546 }, + { url = "https://files.pythonhosted.org/packages/d7/81/f263059e3d9f11b076751ac7ef4eba303fa7f11e32155658953f1697c274/rapidfuzz-3.11.0-cp311-cp311-win32.whl", hash = "sha256:aaf391fb6715866bc14681c76dc0308f46877f7c06f61d62cc993b79fc3c4a2a", size = 1842172 }, + { url = "https://files.pythonhosted.org/packages/33/04/dc42c787f02505a4ca0a961172e8353ceee74ea378b795f3e49686e944b7/rapidfuzz-3.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:ebadd5b8624d8ad503e505a99b8eb26fe3ea9f8e9c2234e805a27b269e585842", size = 1621122 }, + { url = "https://files.pythonhosted.org/packages/4e/0f/461e709bd641922a32bc034976963acbb11d8cf0af28b526f3f35ae07975/rapidfuzz-3.11.0-cp311-cp311-win_arm64.whl", hash = "sha256:d895998fec712544c13cfe833890e0226585cf0391dd3948412441d5d68a2b8c", size = 864792 }, + { url = "https://files.pythonhosted.org/packages/c5/54/954ae2dc7dcb53f5f0953379a4a175d9c2f5e393656ab042843e53780d32/rapidfuzz-3.11.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f382fec4a7891d66fb7163c90754454030bb9200a13f82ee7860b6359f3f2fa8", size = 1938694 }, + { url = "https://files.pythonhosted.org/packages/f9/74/4682d3370821db5374c0f192d1e4123598190cb53d88936016187f80f154/rapidfuzz-3.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:dfaefe08af2a928e72344c800dcbaf6508e86a4ed481e28355e8d4b6a6a5230e", size = 1423836 }, + { url = "https://files.pythonhosted.org/packages/e7/78/ce3d72767e186a9deca30dccb5096cfb03ec49e8e3abf2836ab10d1b4f74/rapidfuzz-3.11.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92ebb7c12f682b5906ed98429f48a3dd80dd0f9721de30c97a01473d1a346576", size = 1393199 }, + { url = "https://files.pythonhosted.org/packages/3c/21/26bdbe846726ff7793789da07e155699cafa3ba3ed3bee86d472b4762121/rapidfuzz-3.11.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a1b3ebc62d4bcdfdeba110944a25ab40916d5383c5e57e7c4a8dc0b6c17211a", size = 5543400 }, + { url = "https://files.pythonhosted.org/packages/c9/d5/78e922cfbfc67011ecee9f6c2fd630dee68650d23b9ce78316386a3d8c88/rapidfuzz-3.11.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9c6d7fea39cb33e71de86397d38bf7ff1a6273e40367f31d05761662ffda49e4", size = 1642855 }, + { url = "https://files.pythonhosted.org/packages/df/bb/dcf084c03c46968c3fbc52a33f2a725e0b8bb54ed714f0866c7dad747358/rapidfuzz-3.11.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99aebef8268f2bc0b445b5640fd3312e080bd17efd3fbae4486b20ac00466308", size = 1669853 }, + { url = "https://files.pythonhosted.org/packages/ec/3a/9aa7a2c5b611e8d465e82c1d5f8278be7335769165f68f3ffc5a169f4a23/rapidfuzz-3.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4469307f464ae3089acf3210b8fc279110d26d10f79e576f385a98f4429f7d97", size = 3129941 }, + { url = "https://files.pythonhosted.org/packages/d3/15/2bbab50a2634b25593e36241ab9629be253b8c6ea28a34ba6b856bfea661/rapidfuzz-3.11.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:eb97c53112b593f89a90b4f6218635a9d1eea1d7f9521a3b7d24864228bbc0aa", size = 2302199 }, + { url = "https://files.pythonhosted.org/packages/c6/7c/e3ed92b89c657348c41708fe3b856ebc982c4b220b47299bdef8da374b20/rapidfuzz-3.11.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ef8937dae823b889c0273dfa0f0f6c46a3658ac0d851349c464d1b00e7ff4252", size = 6904702 }, + { url = "https://files.pythonhosted.org/packages/bd/4f/eed77097068bffb692d6389ae19a531c52a896275e9f5c00566207767537/rapidfuzz-3.11.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d95f9e9f3777b96241d8a00d6377cc9c716981d828b5091082d0fe3a2924b43e", size = 2679287 }, + { url = "https://files.pythonhosted.org/packages/1f/dc/d2d5dcd5b33a5b394485c67aa13674c8345826af8d3ba0702c06ab2f6430/rapidfuzz-3.11.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:b1d67d67f89e4e013a5295e7523bc34a7a96f2dba5dd812c7c8cb65d113cbf28", size = 3224946 }, + { url = "https://files.pythonhosted.org/packages/8f/af/17c0c29ded64e464e626dd43fc2e3028c1fa929d10e8201fb2aec654e5b3/rapidfuzz-3.11.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d994cf27e2f874069884d9bddf0864f9b90ad201fcc9cb2f5b82bacc17c8d5f2", size = 4144678 }, + { url = "https://files.pythonhosted.org/packages/66/5d/5dc02c87d9a0e64e0abd728d3255ddce8475e06b6be3f732a460f0a360c9/rapidfuzz-3.11.0-cp312-cp312-win32.whl", hash = "sha256:ba26d87fe7fcb56c4a53b549a9e0e9143f6b0df56d35fe6ad800c902447acd5b", size = 1824882 }, + { url = "https://files.pythonhosted.org/packages/b7/da/a37d532cbefd7242191abf18f438b315bf5c72d742f78414a8ec1b7396cf/rapidfuzz-3.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:b1f7efdd7b7adb32102c2fa481ad6f11923e2deb191f651274be559d56fc913b", size = 1606419 }, + { url = "https://files.pythonhosted.org/packages/92/d0/1406d6e110aff87303e98f47adc5e76ef2e69d51cdd08b2d463520158cab/rapidfuzz-3.11.0-cp312-cp312-win_arm64.whl", hash = "sha256:ed78c8e94f57b44292c1a0350f580e18d3a3c5c0800e253f1583580c1b417ad2", size = 858655 }, + { url = "https://files.pythonhosted.org/packages/8a/30/984f1013d28b88304386c8e70b5d63db4765c28be8d9ef68d177c9addc77/rapidfuzz-3.11.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e60814edd0c9b511b5f377d48b9782b88cfe8be07a98f99973669299c8bb318a", size = 1931354 }, + { url = "https://files.pythonhosted.org/packages/a4/8a/41d4f95c5742a8a47c0e96c02957f72f8c34411cecde87fe371d5e09807e/rapidfuzz-3.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3f28952da055dbfe75828891cd3c9abf0984edc8640573c18b48c14c68ca5e06", size = 1417918 }, + { url = "https://files.pythonhosted.org/packages/e3/26/031ac8366831da6afc5f25462196eab0e0caf9422c83c007307e23a6f010/rapidfuzz-3.11.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e8f93bc736020351a6f8e71666e1f486bb8bd5ce8112c443a30c77bfde0eb68", size = 1388327 }, + { url = "https://files.pythonhosted.org/packages/17/1b/927edcd3b540770d3d6d52fe079c6bffdb99e9dfa4b73585bee2a8bd6504/rapidfuzz-3.11.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:76a4a11ba8f678c9e5876a7d465ab86def047a4fcc043617578368755d63a1bc", size = 5513214 }, + { url = "https://files.pythonhosted.org/packages/0d/a2/c1e4f35e7bfbbd97a665f8cd119d8bd4a085f1721366cd76582dc022131b/rapidfuzz-3.11.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc0e0d41ad8a056a9886bac91ff9d9978e54a244deb61c2972cc76b66752de9c", size = 1638560 }, + { url = "https://files.pythonhosted.org/packages/39/3f/6827972efddb1e357a0b6165ae9e310d7dc5c078af3023893365c212641b/rapidfuzz-3.11.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5e8ea35f2419c7d56b3e75fbde2698766daedb374f20eea28ac9b1f668ef4f74", size = 1667185 }, + { url = "https://files.pythonhosted.org/packages/cc/5d/6902b93e1273e69ea087afd16e7504099bcb8d712a9f69cb649ea05ca7e1/rapidfuzz-3.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd340bbd025302276b5aa221dccfe43040c7babfc32f107c36ad783f2ffd8775", size = 3107466 }, + { url = "https://files.pythonhosted.org/packages/a6/02/bdb2048c9b8edf4cd82c2e8f6a8ed9af0fbdf91810ca2b36d1be6fc996d8/rapidfuzz-3.11.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:494eef2c68305ab75139034ea25328a04a548d297712d9cf887bf27c158c388b", size = 2302041 }, + { url = "https://files.pythonhosted.org/packages/12/91/0bbe51e3c15c02578487fd10a14692a40677ea974098d8d376bafd627a89/rapidfuzz-3.11.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5a167344c1d6db06915fb0225592afdc24d8bafaaf02de07d4788ddd37f4bc2f", size = 6899969 }, + { url = "https://files.pythonhosted.org/packages/27/9d/09b85adfd5829f60bd6dbe53ba66dad22f93a281d494a5638b5f20fb6a8a/rapidfuzz-3.11.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:8c7af25bda96ac799378ac8aba54a8ece732835c7b74cfc201b688a87ed11152", size = 2669022 }, + { url = "https://files.pythonhosted.org/packages/cb/07/6fb723963243335c3bf73925914b6998649d642eff550187454d5bb3d077/rapidfuzz-3.11.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:d2a0f7e17f33e7890257367a1662b05fecaf56625f7dbb6446227aaa2b86448b", size = 3229475 }, + { url = "https://files.pythonhosted.org/packages/3a/8e/e9af6da2e235aa29ad2bb0a1fc2472b2949ed8d9ff8fb0f05b4bfbbf7675/rapidfuzz-3.11.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4d0d26c7172bdb64f86ee0765c5b26ea1dc45c52389175888ec073b9b28f4305", size = 4143861 }, + { url = "https://files.pythonhosted.org/packages/fd/d8/4677e36e958b4d95d039d254d597db9c020896c8130911dc36b136373b87/rapidfuzz-3.11.0-cp313-cp313-win32.whl", hash = "sha256:6ad02bab756751c90fa27f3069d7b12146613061341459abf55f8190d899649f", size = 1822624 }, + { url = "https://files.pythonhosted.org/packages/e8/97/1c782140e688ea2c3337d94516c635c575aa39fe62782fd53ad5d2119df4/rapidfuzz-3.11.0-cp313-cp313-win_amd64.whl", hash = "sha256:b1472986fd9c5d318399a01a0881f4a0bf4950264131bb8e2deba9df6d8c362b", size = 1604273 }, + { url = "https://files.pythonhosted.org/packages/a6/83/8b713d50bec947e945a79be47f772484307fc876c426fb26c6f369098389/rapidfuzz-3.11.0-cp313-cp313-win_arm64.whl", hash = "sha256:c408f09649cbff8da76f8d3ad878b64ba7f7abdad1471efb293d2c075e80c822", size = 857385 }, +] + +[[package]] +name = "redis" +version = "5.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "async-timeout", marker = "python_full_version < '3.11.3'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/47/da/d283a37303a995cd36f8b92db85135153dc4f7a8e4441aa827721b442cfb/redis-5.2.1.tar.gz", hash = "sha256:16f2e22dff21d5125e8481515e386711a34cbec50f0e44413dd7d9c060a54e0f", size = 4608355 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3c/5f/fa26b9b2672cbe30e07d9a5bdf39cf16e3b80b42916757c5f92bca88e4ba/redis-5.2.1-py3-none-any.whl", hash = "sha256:ee7e1056b9aea0f04c6c2ed59452947f34c4940ee025f5dd83e6a6418b6989e4", size = 261502 }, +] + +[[package]] +name = "referencing" +version = "0.35.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/99/5b/73ca1f8e72fff6fa52119dbd185f73a907b1989428917b24cff660129b6d/referencing-0.35.1.tar.gz", hash = "sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c", size = 62991 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/59/2056f61236782a2c86b33906c025d4f4a0b17be0161b63b70fd9e8775d36/referencing-0.35.1-py3-none-any.whl", hash = "sha256:eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de", size = 26684 }, +] + +[[package]] +name = "regex" +version = "2024.11.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8e/5f/bd69653fbfb76cf8604468d3b4ec4c403197144c7bfe0e6a5fc9e02a07cb/regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519", size = 399494 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/58/58/7e4d9493a66c88a7da6d205768119f51af0f684fe7be7bac8328e217a52c/regex-2024.11.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638", size = 482669 }, + { url = "https://files.pythonhosted.org/packages/34/4c/8f8e631fcdc2ff978609eaeef1d6994bf2f028b59d9ac67640ed051f1218/regex-2024.11.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7", size = 287684 }, + { url = "https://files.pythonhosted.org/packages/c5/1b/f0e4d13e6adf866ce9b069e191f303a30ab1277e037037a365c3aad5cc9c/regex-2024.11.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20", size = 284589 }, + { url = "https://files.pythonhosted.org/packages/25/4d/ab21047f446693887f25510887e6820b93f791992994f6498b0318904d4a/regex-2024.11.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114", size = 792121 }, + { url = "https://files.pythonhosted.org/packages/45/ee/c867e15cd894985cb32b731d89576c41a4642a57850c162490ea34b78c3b/regex-2024.11.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3", size = 831275 }, + { url = "https://files.pythonhosted.org/packages/b3/12/b0f480726cf1c60f6536fa5e1c95275a77624f3ac8fdccf79e6727499e28/regex-2024.11.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f", size = 818257 }, + { url = "https://files.pythonhosted.org/packages/bf/ce/0d0e61429f603bac433910d99ef1a02ce45a8967ffbe3cbee48599e62d88/regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0", size = 792727 }, + { url = "https://files.pythonhosted.org/packages/e4/c1/243c83c53d4a419c1556f43777ccb552bccdf79d08fda3980e4e77dd9137/regex-2024.11.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55", size = 780667 }, + { url = "https://files.pythonhosted.org/packages/c5/f4/75eb0dd4ce4b37f04928987f1d22547ddaf6c4bae697623c1b05da67a8aa/regex-2024.11.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89", size = 776963 }, + { url = "https://files.pythonhosted.org/packages/16/5d/95c568574e630e141a69ff8a254c2f188b4398e813c40d49228c9bbd9875/regex-2024.11.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d", size = 784700 }, + { url = "https://files.pythonhosted.org/packages/8e/b5/f8495c7917f15cc6fee1e7f395e324ec3e00ab3c665a7dc9d27562fd5290/regex-2024.11.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34", size = 848592 }, + { url = "https://files.pythonhosted.org/packages/1c/80/6dd7118e8cb212c3c60b191b932dc57db93fb2e36fb9e0e92f72a5909af9/regex-2024.11.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d", size = 852929 }, + { url = "https://files.pythonhosted.org/packages/11/9b/5a05d2040297d2d254baf95eeeb6df83554e5e1df03bc1a6687fc4ba1f66/regex-2024.11.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45", size = 781213 }, + { url = "https://files.pythonhosted.org/packages/26/b7/b14e2440156ab39e0177506c08c18accaf2b8932e39fb092074de733d868/regex-2024.11.6-cp311-cp311-win32.whl", hash = "sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9", size = 261734 }, + { url = "https://files.pythonhosted.org/packages/80/32/763a6cc01d21fb3819227a1cc3f60fd251c13c37c27a73b8ff4315433a8e/regex-2024.11.6-cp311-cp311-win_amd64.whl", hash = "sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60", size = 274052 }, + { url = "https://files.pythonhosted.org/packages/ba/30/9a87ce8336b172cc232a0db89a3af97929d06c11ceaa19d97d84fa90a8f8/regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a", size = 483781 }, + { url = "https://files.pythonhosted.org/packages/01/e8/00008ad4ff4be8b1844786ba6636035f7ef926db5686e4c0f98093612add/regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9", size = 288455 }, + { url = "https://files.pythonhosted.org/packages/60/85/cebcc0aff603ea0a201667b203f13ba75d9fc8668fab917ac5b2de3967bc/regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2", size = 284759 }, + { url = "https://files.pythonhosted.org/packages/94/2b/701a4b0585cb05472a4da28ee28fdfe155f3638f5e1ec92306d924e5faf0/regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4", size = 794976 }, + { url = "https://files.pythonhosted.org/packages/4b/bf/fa87e563bf5fee75db8915f7352e1887b1249126a1be4813837f5dbec965/regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577", size = 833077 }, + { url = "https://files.pythonhosted.org/packages/a1/56/7295e6bad94b047f4d0834e4779491b81216583c00c288252ef625c01d23/regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3", size = 823160 }, + { url = "https://files.pythonhosted.org/packages/fb/13/e3b075031a738c9598c51cfbc4c7879e26729c53aa9cca59211c44235314/regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e", size = 796896 }, + { url = "https://files.pythonhosted.org/packages/24/56/0b3f1b66d592be6efec23a795b37732682520b47c53da5a32c33ed7d84e3/regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe", size = 783997 }, + { url = "https://files.pythonhosted.org/packages/f9/a1/eb378dada8b91c0e4c5f08ffb56f25fcae47bf52ad18f9b2f33b83e6d498/regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e", size = 781725 }, + { url = "https://files.pythonhosted.org/packages/83/f2/033e7dec0cfd6dda93390089864732a3409246ffe8b042e9554afa9bff4e/regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29", size = 789481 }, + { url = "https://files.pythonhosted.org/packages/83/23/15d4552ea28990a74e7696780c438aadd73a20318c47e527b47a4a5a596d/regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39", size = 852896 }, + { url = "https://files.pythonhosted.org/packages/e3/39/ed4416bc90deedbfdada2568b2cb0bc1fdb98efe11f5378d9892b2a88f8f/regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51", size = 860138 }, + { url = "https://files.pythonhosted.org/packages/93/2d/dd56bb76bd8e95bbce684326302f287455b56242a4f9c61f1bc76e28360e/regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad", size = 787692 }, + { url = "https://files.pythonhosted.org/packages/0b/55/31877a249ab7a5156758246b9c59539abbeba22461b7d8adc9e8475ff73e/regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54", size = 262135 }, + { url = "https://files.pythonhosted.org/packages/38/ec/ad2d7de49a600cdb8dd78434a1aeffe28b9d6fc42eb36afab4a27ad23384/regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b", size = 273567 }, + { url = "https://files.pythonhosted.org/packages/90/73/bcb0e36614601016552fa9344544a3a2ae1809dc1401b100eab02e772e1f/regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84", size = 483525 }, + { url = "https://files.pythonhosted.org/packages/0f/3f/f1a082a46b31e25291d830b369b6b0c5576a6f7fb89d3053a354c24b8a83/regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4", size = 288324 }, + { url = "https://files.pythonhosted.org/packages/09/c9/4e68181a4a652fb3ef5099e077faf4fd2a694ea6e0f806a7737aff9e758a/regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0", size = 284617 }, + { url = "https://files.pythonhosted.org/packages/fc/fd/37868b75eaf63843165f1d2122ca6cb94bfc0271e4428cf58c0616786dce/regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0", size = 795023 }, + { url = "https://files.pythonhosted.org/packages/c4/7c/d4cd9c528502a3dedb5c13c146e7a7a539a3853dc20209c8e75d9ba9d1b2/regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7", size = 833072 }, + { url = "https://files.pythonhosted.org/packages/4f/db/46f563a08f969159c5a0f0e722260568425363bea43bb7ae370becb66a67/regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7", size = 823130 }, + { url = "https://files.pythonhosted.org/packages/db/60/1eeca2074f5b87df394fccaa432ae3fc06c9c9bfa97c5051aed70e6e00c2/regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c", size = 796857 }, + { url = "https://files.pythonhosted.org/packages/10/db/ac718a08fcee981554d2f7bb8402f1faa7e868c1345c16ab1ebec54b0d7b/regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3", size = 784006 }, + { url = "https://files.pythonhosted.org/packages/c2/41/7da3fe70216cea93144bf12da2b87367590bcf07db97604edeea55dac9ad/regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07", size = 781650 }, + { url = "https://files.pythonhosted.org/packages/a7/d5/880921ee4eec393a4752e6ab9f0fe28009435417c3102fc413f3fe81c4e5/regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e", size = 789545 }, + { url = "https://files.pythonhosted.org/packages/dc/96/53770115e507081122beca8899ab7f5ae28ae790bfcc82b5e38976df6a77/regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6", size = 853045 }, + { url = "https://files.pythonhosted.org/packages/31/d3/1372add5251cc2d44b451bd94f43b2ec78e15a6e82bff6a290ef9fd8f00a/regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4", size = 860182 }, + { url = "https://files.pythonhosted.org/packages/ed/e3/c446a64984ea9f69982ba1a69d4658d5014bc7a0ea468a07e1a1265db6e2/regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d", size = 787733 }, + { url = "https://files.pythonhosted.org/packages/2b/f1/e40c8373e3480e4f29f2692bd21b3e05f296d3afebc7e5dcf21b9756ca1c/regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff", size = 262122 }, + { url = "https://files.pythonhosted.org/packages/45/94/bc295babb3062a731f52621cdc992d123111282e291abaf23faa413443ea/regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a", size = 273545 }, +] + +[[package]] +name = "requests" +version = "2.32.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 }, +] + +[[package]] +name = "requests-oauthlib" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "oauthlib" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/95/52/531ef197b426646f26b53815a7d2a67cb7a331ef098bb276db26a68ac49f/requests-oauthlib-1.3.1.tar.gz", hash = "sha256:75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a", size = 52027 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl", hash = "sha256:2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5", size = 23892 }, +] + +[[package]] +name = "requests-toolbelt" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6", size = 206888 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", size = 54481 }, +] + +[[package]] +name = "requirements-parser" +version = "0.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, + { name = "types-setuptools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/05/70/80ed53ebd21853855aad552d4ed6c4934df62cd32fe9a3669fcdef59429c/requirements_parser-0.11.0.tar.gz", hash = "sha256:35f36dc969d14830bf459803da84f314dc3d17c802592e9e970f63d0359e5920", size = 23663 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/33/190393a7d36872e237cbc99e6c44d9a078a1ba7b406462fe6eafd5a28e04/requirements_parser-0.11.0-py3-none-any.whl", hash = "sha256:50379eb50311834386c2568263ae5225d7b9d0867fb55cf4ecc93959de2c2684", size = 14800 }, +] + +[[package]] +name = "rich" +version = "13.9.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ab/3a/0316b28d0761c6734d6bc14e770d85506c986c85ffb239e688eeaab2c2bc/rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098", size = 223149 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90", size = 242424 }, +] + +[[package]] +name = "rpds-py" +version = "0.22.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/80/cce854d0921ff2f0a9fa831ba3ad3c65cee3a46711addf39a2af52df2cfd/rpds_py-0.22.3.tar.gz", hash = "sha256:e32fee8ab45d3c2db6da19a5323bc3362237c8b653c70194414b892fd06a080d", size = 26771 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/ad/8d1ddf78f2805a71253fcd388017e7b4a0615c22c762b6d35301fef20106/rpds_py-0.22.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d20cfb4e099748ea39e6f7b16c91ab057989712d31761d3300d43134e26e165f", size = 359773 }, + { url = "https://files.pythonhosted.org/packages/c8/75/68c15732293a8485d79fe4ebe9045525502a067865fa4278f178851b2d87/rpds_py-0.22.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:68049202f67380ff9aa52f12e92b1c30115f32e6895cd7198fa2a7961621fc5a", size = 349214 }, + { url = "https://files.pythonhosted.org/packages/3c/4c/7ce50f3070083c2e1b2bbd0fb7046f3da55f510d19e283222f8f33d7d5f4/rpds_py-0.22.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb4f868f712b2dd4bcc538b0a0c1f63a2b1d584c925e69a224d759e7070a12d5", size = 380477 }, + { url = "https://files.pythonhosted.org/packages/9a/e9/835196a69cb229d5c31c13b8ae603bd2da9a6695f35fe4270d398e1db44c/rpds_py-0.22.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bc51abd01f08117283c5ebf64844a35144a0843ff7b2983e0648e4d3d9f10dbb", size = 386171 }, + { url = "https://files.pythonhosted.org/packages/f9/8e/33fc4eba6683db71e91e6d594a2cf3a8fbceb5316629f0477f7ece5e3f75/rpds_py-0.22.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0f3cec041684de9a4684b1572fe28c7267410e02450f4561700ca5a3bc6695a2", size = 422676 }, + { url = "https://files.pythonhosted.org/packages/37/47/2e82d58f8046a98bb9497a8319604c92b827b94d558df30877c4b3c6ccb3/rpds_py-0.22.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7ef9d9da710be50ff6809fed8f1963fecdfecc8b86656cadfca3bc24289414b0", size = 446152 }, + { url = "https://files.pythonhosted.org/packages/e1/78/79c128c3e71abbc8e9739ac27af11dc0f91840a86fce67ff83c65d1ba195/rpds_py-0.22.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59f4a79c19232a5774aee369a0c296712ad0e77f24e62cad53160312b1c1eaa1", size = 381300 }, + { url = "https://files.pythonhosted.org/packages/c9/5b/2e193be0e8b228c1207f31fa3ea79de64dadb4f6a4833111af8145a6bc33/rpds_py-0.22.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a60bce91f81ddaac922a40bbb571a12c1070cb20ebd6d49c48e0b101d87300d", size = 409636 }, + { url = "https://files.pythonhosted.org/packages/c2/3f/687c7100b762d62186a1c1100ffdf99825f6fa5ea94556844bbbd2d0f3a9/rpds_py-0.22.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e89391e6d60251560f0a8f4bd32137b077a80d9b7dbe6d5cab1cd80d2746f648", size = 556708 }, + { url = "https://files.pythonhosted.org/packages/8c/a2/c00cbc4b857e8b3d5e7f7fc4c81e23afd8c138b930f4f3ccf9a41a23e9e4/rpds_py-0.22.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e3fb866d9932a3d7d0c82da76d816996d1667c44891bd861a0f97ba27e84fc74", size = 583554 }, + { url = "https://files.pythonhosted.org/packages/d0/08/696c9872cf56effdad9ed617ac072f6774a898d46b8b8964eab39ec562d2/rpds_py-0.22.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1352ae4f7c717ae8cba93421a63373e582d19d55d2ee2cbb184344c82d2ae55a", size = 552105 }, + { url = "https://files.pythonhosted.org/packages/18/1f/4df560be1e994f5adf56cabd6c117e02de7c88ee238bb4ce03ed50da9d56/rpds_py-0.22.3-cp311-cp311-win32.whl", hash = "sha256:b0b4136a252cadfa1adb705bb81524eee47d9f6aab4f2ee4fa1e9d3cd4581f64", size = 220199 }, + { url = "https://files.pythonhosted.org/packages/b8/1b/c29b570bc5db8237553002788dc734d6bd71443a2ceac2a58202ec06ef12/rpds_py-0.22.3-cp311-cp311-win_amd64.whl", hash = "sha256:8bd7c8cfc0b8247c8799080fbff54e0b9619e17cdfeb0478ba7295d43f635d7c", size = 231775 }, + { url = "https://files.pythonhosted.org/packages/75/47/3383ee3bd787a2a5e65a9b9edc37ccf8505c0a00170e3a5e6ea5fbcd97f7/rpds_py-0.22.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:27e98004595899949bd7a7b34e91fa7c44d7a97c40fcaf1d874168bb652ec67e", size = 352334 }, + { url = "https://files.pythonhosted.org/packages/40/14/aa6400fa8158b90a5a250a77f2077c0d0cd8a76fce31d9f2b289f04c6dec/rpds_py-0.22.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1978d0021e943aae58b9b0b196fb4895a25cc53d3956b8e35e0b7682eefb6d56", size = 342111 }, + { url = "https://files.pythonhosted.org/packages/7d/06/395a13bfaa8a28b302fb433fb285a67ce0ea2004959a027aea8f9c52bad4/rpds_py-0.22.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:655ca44a831ecb238d124e0402d98f6212ac527a0ba6c55ca26f616604e60a45", size = 384286 }, + { url = "https://files.pythonhosted.org/packages/43/52/d8eeaffab047e6b7b7ef7f00d5ead074a07973968ffa2d5820fa131d7852/rpds_py-0.22.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:feea821ee2a9273771bae61194004ee2fc33f8ec7db08117ef9147d4bbcbca8e", size = 391739 }, + { url = "https://files.pythonhosted.org/packages/83/31/52dc4bde85c60b63719610ed6f6d61877effdb5113a72007679b786377b8/rpds_py-0.22.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:22bebe05a9ffc70ebfa127efbc429bc26ec9e9b4ee4d15a740033efda515cf3d", size = 427306 }, + { url = "https://files.pythonhosted.org/packages/70/d5/1bab8e389c2261dba1764e9e793ed6830a63f830fdbec581a242c7c46bda/rpds_py-0.22.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3af6e48651c4e0d2d166dc1b033b7042ea3f871504b6805ba5f4fe31581d8d38", size = 442717 }, + { url = "https://files.pythonhosted.org/packages/82/a1/a45f3e30835b553379b3a56ea6c4eb622cf11e72008229af840e4596a8ea/rpds_py-0.22.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e67ba3c290821343c192f7eae1d8fd5999ca2dc99994114643e2f2d3e6138b15", size = 385721 }, + { url = "https://files.pythonhosted.org/packages/a6/27/780c942de3120bdd4d0e69583f9c96e179dfff082f6ecbb46b8d6488841f/rpds_py-0.22.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:02fbb9c288ae08bcb34fb41d516d5eeb0455ac35b5512d03181d755d80810059", size = 415824 }, + { url = "https://files.pythonhosted.org/packages/94/0b/aa0542ca88ad20ea719b06520f925bae348ea5c1fdf201b7e7202d20871d/rpds_py-0.22.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f56a6b404f74ab372da986d240e2e002769a7d7102cc73eb238a4f72eec5284e", size = 561227 }, + { url = "https://files.pythonhosted.org/packages/0d/92/3ed77d215f82c8f844d7f98929d56cc321bb0bcfaf8f166559b8ec56e5f1/rpds_py-0.22.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0a0461200769ab3b9ab7e513f6013b7a97fdeee41c29b9db343f3c5a8e2b9e61", size = 587424 }, + { url = "https://files.pythonhosted.org/packages/09/42/cacaeb047a22cab6241f107644f230e2935d4efecf6488859a7dd82fc47d/rpds_py-0.22.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8633e471c6207a039eff6aa116e35f69f3156b3989ea3e2d755f7bc41754a4a7", size = 555953 }, + { url = "https://files.pythonhosted.org/packages/e6/52/c921dc6d5f5d45b212a456c1f5b17df1a471127e8037eb0972379e39dff4/rpds_py-0.22.3-cp312-cp312-win32.whl", hash = "sha256:593eba61ba0c3baae5bc9be2f5232430453fb4432048de28399ca7376de9c627", size = 221339 }, + { url = "https://files.pythonhosted.org/packages/f2/c7/f82b5be1e8456600395366f86104d1bd8d0faed3802ad511ef6d60c30d98/rpds_py-0.22.3-cp312-cp312-win_amd64.whl", hash = "sha256:d115bffdd417c6d806ea9069237a4ae02f513b778e3789a359bc5856e0404cc4", size = 235786 }, + { url = "https://files.pythonhosted.org/packages/d0/bf/36d5cc1f2c609ae6e8bf0fc35949355ca9d8790eceb66e6385680c951e60/rpds_py-0.22.3-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ea7433ce7e4bfc3a85654aeb6747babe3f66eaf9a1d0c1e7a4435bbdf27fea84", size = 351657 }, + { url = "https://files.pythonhosted.org/packages/24/2a/f1e0fa124e300c26ea9382e59b2d582cba71cedd340f32d1447f4f29fa4e/rpds_py-0.22.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6dd9412824c4ce1aca56c47b0991e65bebb7ac3f4edccfd3f156150c96a7bf25", size = 341829 }, + { url = "https://files.pythonhosted.org/packages/cf/c2/0da1231dd16953845bed60d1a586fcd6b15ceaeb965f4d35cdc71f70f606/rpds_py-0.22.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20070c65396f7373f5df4005862fa162db5d25d56150bddd0b3e8214e8ef45b4", size = 384220 }, + { url = "https://files.pythonhosted.org/packages/c7/73/a4407f4e3a00a9d4b68c532bf2d873d6b562854a8eaff8faa6133b3588ec/rpds_py-0.22.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0b09865a9abc0ddff4e50b5ef65467cd94176bf1e0004184eb915cbc10fc05c5", size = 391009 }, + { url = "https://files.pythonhosted.org/packages/a9/c3/04b7353477ab360fe2563f5f0b176d2105982f97cd9ae80a9c5a18f1ae0f/rpds_py-0.22.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3453e8d41fe5f17d1f8e9c383a7473cd46a63661628ec58e07777c2fff7196dc", size = 426989 }, + { url = "https://files.pythonhosted.org/packages/8d/e6/e4b85b722bcf11398e17d59c0f6049d19cd606d35363221951e6d625fcb0/rpds_py-0.22.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f5d36399a1b96e1a5fdc91e0522544580dbebeb1f77f27b2b0ab25559e103b8b", size = 441544 }, + { url = "https://files.pythonhosted.org/packages/27/fc/403e65e56f65fff25f2973216974976d3f0a5c3f30e53758589b6dc9b79b/rpds_py-0.22.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:009de23c9c9ee54bf11303a966edf4d9087cd43a6003672e6aa7def643d06518", size = 385179 }, + { url = "https://files.pythonhosted.org/packages/57/9b/2be9ff9700d664d51fd96b33d6595791c496d2778cb0b2a634f048437a55/rpds_py-0.22.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1aef18820ef3e4587ebe8b3bc9ba6e55892a6d7b93bac6d29d9f631a3b4befbd", size = 415103 }, + { url = "https://files.pythonhosted.org/packages/bb/a5/03c2ad8ca10994fcf22dd2150dd1d653bc974fa82d9a590494c84c10c641/rpds_py-0.22.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f60bd8423be1d9d833f230fdbccf8f57af322d96bcad6599e5a771b151398eb2", size = 560916 }, + { url = "https://files.pythonhosted.org/packages/ba/2e/be4fdfc8b5b576e588782b56978c5b702c5a2307024120d8aeec1ab818f0/rpds_py-0.22.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:62d9cfcf4948683a18a9aff0ab7e1474d407b7bab2ca03116109f8464698ab16", size = 587062 }, + { url = "https://files.pythonhosted.org/packages/67/e0/2034c221937709bf9c542603d25ad43a68b4b0a9a0c0b06a742f2756eb66/rpds_py-0.22.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9253fc214112405f0afa7db88739294295f0e08466987f1d70e29930262b4c8f", size = 555734 }, + { url = "https://files.pythonhosted.org/packages/ea/ce/240bae07b5401a22482b58e18cfbabaa392409b2797da60223cca10d7367/rpds_py-0.22.3-cp313-cp313-win32.whl", hash = "sha256:fb0ba113b4983beac1a2eb16faffd76cb41e176bf58c4afe3e14b9c681f702de", size = 220663 }, + { url = "https://files.pythonhosted.org/packages/cb/f0/d330d08f51126330467edae2fa4efa5cec8923c87551a79299380fdea30d/rpds_py-0.22.3-cp313-cp313-win_amd64.whl", hash = "sha256:c58e2339def52ef6b71b8f36d13c3688ea23fa093353f3a4fee2556e62086ec9", size = 235503 }, + { url = "https://files.pythonhosted.org/packages/f7/c4/dbe1cc03df013bf2feb5ad00615038050e7859f381e96fb5b7b4572cd814/rpds_py-0.22.3-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:f82a116a1d03628a8ace4859556fb39fd1424c933341a08ea3ed6de1edb0283b", size = 347698 }, + { url = "https://files.pythonhosted.org/packages/a4/3a/684f66dd6b0f37499cad24cd1c0e523541fd768576fa5ce2d0a8799c3cba/rpds_py-0.22.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3dfcbc95bd7992b16f3f7ba05af8a64ca694331bd24f9157b49dadeeb287493b", size = 337330 }, + { url = "https://files.pythonhosted.org/packages/82/eb/e022c08c2ce2e8f7683baa313476492c0e2c1ca97227fe8a75d9f0181e95/rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59259dc58e57b10e7e18ce02c311804c10c5a793e6568f8af4dead03264584d1", size = 380022 }, + { url = "https://files.pythonhosted.org/packages/e4/21/5a80e653e4c86aeb28eb4fea4add1f72e1787a3299687a9187105c3ee966/rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5725dd9cc02068996d4438d397e255dcb1df776b7ceea3b9cb972bdb11260a83", size = 390754 }, + { url = "https://files.pythonhosted.org/packages/37/a4/d320a04ae90f72d080b3d74597074e62be0a8ecad7d7321312dfe2dc5a6a/rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99b37292234e61325e7a5bb9689e55e48c3f5f603af88b1642666277a81f1fbd", size = 423840 }, + { url = "https://files.pythonhosted.org/packages/87/70/674dc47d93db30a6624279284e5631be4c3a12a0340e8e4f349153546728/rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:27b1d3b3915a99208fee9ab092b8184c420f2905b7d7feb4aeb5e4a9c509b8a1", size = 438970 }, + { url = "https://files.pythonhosted.org/packages/3f/64/9500f4d66601d55cadd21e90784cfd5d5f4560e129d72e4339823129171c/rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f612463ac081803f243ff13cccc648578e2279295048f2a8d5eb430af2bae6e3", size = 383146 }, + { url = "https://files.pythonhosted.org/packages/4d/45/630327addb1d17173adcf4af01336fd0ee030c04798027dfcb50106001e0/rpds_py-0.22.3-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f73d3fef726b3243a811121de45193c0ca75f6407fe66f3f4e183c983573e130", size = 408294 }, + { url = "https://files.pythonhosted.org/packages/5f/ef/8efb3373cee54ea9d9980b772e5690a0c9e9214045a4e7fa35046e399fee/rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3f21f0495edea7fdbaaa87e633a8689cd285f8f4af5c869f27bc8074638ad69c", size = 556345 }, + { url = "https://files.pythonhosted.org/packages/54/01/151d3b9ef4925fc8f15bfb131086c12ec3c3d6dd4a4f7589c335bf8e85ba/rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:1e9663daaf7a63ceccbbb8e3808fe90415b0757e2abddbfc2e06c857bf8c5e2b", size = 582292 }, + { url = "https://files.pythonhosted.org/packages/30/89/35fc7a6cdf3477d441c7aca5e9bbf5a14e0f25152aed7f63f4e0b141045d/rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a76e42402542b1fae59798fab64432b2d015ab9d0c8c47ba7addddbaf7952333", size = 553855 }, + { url = "https://files.pythonhosted.org/packages/8f/e0/830c02b2457c4bd20a8c5bb394d31d81f57fbefce2dbdd2e31feff4f7003/rpds_py-0.22.3-cp313-cp313t-win32.whl", hash = "sha256:69803198097467ee7282750acb507fba35ca22cc3b85f16cf45fb01cb9097730", size = 219100 }, + { url = "https://files.pythonhosted.org/packages/f8/30/7ac943f69855c2db77407ae363484b915d861702dbba1aa82d68d57f42be/rpds_py-0.22.3-cp313-cp313t-win_amd64.whl", hash = "sha256:f5cf2a0c2bdadf3791b5c205d55a37a54025c6e18a71c71f82bb536cf9a454bf", size = 233794 }, +] + +[[package]] +name = "ruff" +version = "0.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/70/06/b2e9ee5f17dab59476fcb6cc6fdd268e8340d95b7dfc760ed93f4243f16f/ruff-0.2.2.tar.gz", hash = "sha256:e62ed7f36b3068a30ba39193a14274cd706bc486fad521276458022f7bccb31d", size = 2040633 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/21/e56126ca3b56e6d05a0f6744558305f6589327945ee01b85ffe85a0f37bf/ruff-0.2.2-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:0a9efb032855ffb3c21f6405751d5e147b0c6b631e3ca3f6b20f917572b97eb6", size = 14894866 }, + { url = "https://files.pythonhosted.org/packages/b6/1e/fd238f116e2fab69a2fbb4c3ab8903225836cb6d900ff8139c03c2f6f7b7/ruff-0.2.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:d450b7fbff85913f866a5384d8912710936e2b96da74541c82c1b458472ddb39", size = 7634941 }, + { url = "https://files.pythonhosted.org/packages/4c/53/30651b54241f4f26796cbc5b7cdcafebf5ecd7a30997e7a08673e8050b30/ruff-0.2.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ecd46e3106850a5c26aee114e562c329f9a1fbe9e4821b008c4404f64ff9ce73", size = 7332185 }, + { url = "https://files.pythonhosted.org/packages/1c/8a/8c14e40da4cb8d651fc78f769e938552069e7bc34e9e65f7335f3469f9d2/ruff-0.2.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e22676a5b875bd72acd3d11d5fa9075d3a5f53b877fe7b4793e4673499318ba", size = 6739587 }, + { url = "https://files.pythonhosted.org/packages/db/71/5be31e5505307e852020d624049ae6610e1ebb68431bb03251904aa082c6/ruff-0.2.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1695700d1e25a99d28f7a1636d85bafcc5030bba9d0578c0781ba1790dbcf51c", size = 7813597 }, + { url = "https://files.pythonhosted.org/packages/45/20/89df4f35f0644b529b9e8bb4c9a0a4633ad2fcba888941caaba744ae5768/ruff-0.2.2-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:b0c232af3d0bd8f521806223723456ffebf8e323bd1e4e82b0befb20ba18388e", size = 8465022 }, + { url = "https://files.pythonhosted.org/packages/ec/c2/d2f2b750971593580b29d965bd7bc36a7f5e971b3de24e342235ae7578a9/ruff-0.2.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f63d96494eeec2fc70d909393bcd76c69f35334cdbd9e20d089fb3f0640216ca", size = 8196736 }, + { url = "https://files.pythonhosted.org/packages/bc/83/0dfcc589d8d4d27c551dfb5d50ef57b58fc6432298bc115010f7a0642f48/ruff-0.2.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6a61ea0ff048e06de273b2e45bd72629f470f5da8f71daf09fe481278b175001", size = 8896228 }, + { url = "https://files.pythonhosted.org/packages/27/f1/3bf230a048561fd03bc779f2a3e5b05d8ea8cb1c91456a4246c5673b8ef5/ruff-0.2.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e1439c8f407e4f356470e54cdecdca1bd5439a0673792dbe34a2b0a551a2fe3", size = 7817875 }, + { url = "https://files.pythonhosted.org/packages/63/ad/57e10d775d94a22eabdbe272d6ebb687d10ff0312ad8cd81dbc3bdf74081/ruff-0.2.2-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:940de32dc8853eba0f67f7198b3e79bc6ba95c2edbfdfac2144c8235114d6726", size = 7248228 }, + { url = "https://files.pythonhosted.org/packages/1d/65/250a8dd655563a31d7f38af35e5a2860a54bc66c121084f36c63d46dd687/ruff-0.2.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:0c126da55c38dd917621552ab430213bdb3273bb10ddb67bc4b761989210eb6e", size = 6735053 }, + { url = "https://files.pythonhosted.org/packages/ac/e5/6684718861b205985164afb9a1a8ab83deb4fa2326c903570e9d1af9347a/ruff-0.2.2-py3-none-musllinux_1_2_i686.whl", hash = "sha256:3b65494f7e4bed2e74110dac1f0d17dc8e1f42faaa784e7c58a98e335ec83d7e", size = 7471896 }, + { url = "https://files.pythonhosted.org/packages/4c/40/25de7bd89d5af3cd033d42935c7ea2bc79f52fa2f2cf4cbd8f1dbc2cae2b/ruff-0.2.2-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:1ec49be4fe6ddac0503833f3ed8930528e26d1e60ad35c2446da372d16651ce9", size = 7883633 }, + { url = "https://files.pythonhosted.org/packages/49/98/9c678bd07561bcdf2129df8284b5708e0393e7c52256db9b30b1b1043cfd/ruff-0.2.2-py3-none-win32.whl", hash = "sha256:d920499b576f6c68295bc04e7b17b6544d9d05f196bb3aac4358792ef6f34325", size = 6909240 }, + { url = "https://files.pythonhosted.org/packages/47/d2/23fe9d73dadec045cbffc0c2046a34f7b829f217abd76fb2d6ef7114d792/ruff-0.2.2-py3-none-win_amd64.whl", hash = "sha256:cc9a91ae137d687f43a44c900e5d95e9617cb37d4c989e462980ba27039d239d", size = 7593466 }, + { url = "https://files.pythonhosted.org/packages/1a/83/0d002e72ba3c15a74e5ac63d31f57d222d8f297e637d065db28f1253f109/ruff-0.2.2-py3-none-win_arm64.whl", hash = "sha256:c9d15fc41e6054bfc7200478720570078f0b41c9ae4f010bcc16bd6f4d1aacdd", size = 7222811 }, +] + +[[package]] +name = "s3transfer" +version = "0.10.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "botocore" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c0/0a/1cdbabf9edd0ea7747efdf6c9ab4e7061b085aa7f9bfc36bb1601563b069/s3transfer-0.10.4.tar.gz", hash = "sha256:29edc09801743c21eb5ecbc617a152df41d3c287f67b615f73e5f750583666a7", size = 145287 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/66/05/7957af15543b8c9799209506df4660cba7afc4cf94bfb60513827e96bed6/s3transfer-0.10.4-py3-none-any.whl", hash = "sha256:244a76a24355363a68164241438de1b72f8781664920260c48465896b712a41e", size = 83175 }, +] + +[[package]] +name = "safetensors" +version = "0.4.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cb/46/a1c56ed856c6ac3b1a8b37abe5be0cac53219367af1331e721b04d122577/safetensors-0.4.5.tar.gz", hash = "sha256:d73de19682deabb02524b3d5d1f8b3aaba94c72f1bbfc7911b9b9d5d391c0310", size = 65702 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/a5/25bcf75e373412daf1fd88045ab3aa8140a0d804ef0e70712c4f2c5b94d8/safetensors-0.4.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:21f848d7aebd5954f92538552d6d75f7c1b4500f51664078b5b49720d180e47c", size = 392256 }, + { url = "https://files.pythonhosted.org/packages/08/8c/ece3bf8756506a890bd980eca02f47f9d98dfbf5ce16eda1368f53560f67/safetensors-0.4.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bb07000b19d41e35eecef9a454f31a8b4718a185293f0d0b1c4b61d6e4487971", size = 381490 }, + { url = "https://files.pythonhosted.org/packages/39/83/c4a7ce01d626e46ea2b45887f2e59b16441408031e2ce2f9fe01860c6946/safetensors-0.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09dedf7c2fda934ee68143202acff6e9e8eb0ddeeb4cfc24182bef999efa9f42", size = 441093 }, + { url = "https://files.pythonhosted.org/packages/47/26/cc52de647e71bd9a0b0d78ead0d31d9c462b35550a817aa9e0cab51d6db4/safetensors-0.4.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:59b77e4b7a708988d84f26de3ebead61ef1659c73dcbc9946c18f3b1786d2688", size = 438960 }, + { url = "https://files.pythonhosted.org/packages/06/78/332538546775ee97e749867df2d58f2282d9c48a1681e4891eed8b94ec94/safetensors-0.4.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d3bc83e14d67adc2e9387e511097f254bd1b43c3020440e708858c684cbac68", size = 478031 }, + { url = "https://files.pythonhosted.org/packages/d9/03/a3c8663f1ddda54e624ecf43fce651659b49e8e1603c52c3e464b442acfa/safetensors-0.4.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39371fc551c1072976073ab258c3119395294cf49cdc1f8476794627de3130df", size = 494754 }, + { url = "https://files.pythonhosted.org/packages/e6/ee/69e498a892f208bd1da4104d4b9be887f8611bf4942144718b6738482250/safetensors-0.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6c19feda32b931cae0acd42748a670bdf56bee6476a046af20181ad3fee4090", size = 435013 }, + { url = "https://files.pythonhosted.org/packages/a2/61/f0cfce984515b86d1260f556ba3b782158e2855e6a318446ac2613786fa9/safetensors-0.4.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a659467495de201e2f282063808a41170448c78bada1e62707b07a27b05e6943", size = 455984 }, + { url = "https://files.pythonhosted.org/packages/e7/a9/3e3b48fcaade3eb4e347d39ebf0bd44291db21a3e4507854b42a7cb910ac/safetensors-0.4.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bad5e4b2476949bcd638a89f71b6916fa9a5cae5c1ae7eede337aca2100435c0", size = 619513 }, + { url = "https://files.pythonhosted.org/packages/80/23/2a7a1be24258c0e44c1d356896fd63dc0545a98d2d0184925fa09cd3ec76/safetensors-0.4.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a3a315a6d0054bc6889a17f5668a73f94f7fe55121ff59e0a199e3519c08565f", size = 604841 }, + { url = "https://files.pythonhosted.org/packages/b4/5c/34d082ff1fffffd8545fb22cbae3285ab4236f1f0cfc64b7e58261c2363b/safetensors-0.4.5-cp311-none-win32.whl", hash = "sha256:a01e232e6d3d5cf8b1667bc3b657a77bdab73f0743c26c1d3c5dd7ce86bd3a92", size = 272602 }, + { url = "https://files.pythonhosted.org/packages/6d/41/948c96c8a7e9fef57c2e051f1871c108a6dbbc6d285598bdb1d89b98617c/safetensors-0.4.5-cp311-none-win_amd64.whl", hash = "sha256:cbd39cae1ad3e3ef6f63a6f07296b080c951f24cec60188378e43d3713000c04", size = 285973 }, + { url = "https://files.pythonhosted.org/packages/bf/ac/5a63082f931e99200db95fd46fb6734f050bb6e96bf02521904c6518b7aa/safetensors-0.4.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:473300314e026bd1043cef391bb16a8689453363381561b8a3e443870937cc1e", size = 392015 }, + { url = "https://files.pythonhosted.org/packages/73/95/ab32aa6e9bdc832ff87784cdf9da26192b93de3ef82b8d1ada8f345c5044/safetensors-0.4.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:801183a0f76dc647f51a2d9141ad341f9665602a7899a693207a82fb102cc53e", size = 381774 }, + { url = "https://files.pythonhosted.org/packages/d6/6c/7e04b7626809fc63f3698f4c50e43aff2864b40089aa4506c918a75b8eed/safetensors-0.4.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1524b54246e422ad6fb6aea1ac71edeeb77666efa67230e1faf6999df9b2e27f", size = 441134 }, + { url = "https://files.pythonhosted.org/packages/58/2b/ffe7c86a277e6c1595fbdf415cfe2903f253f574a5405e93fda8baaa582c/safetensors-0.4.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b3139098e3e8b2ad7afbca96d30ad29157b50c90861084e69fcb80dec7430461", size = 438467 }, + { url = "https://files.pythonhosted.org/packages/67/9c/f271bd804e08c7fda954d17b70ff281228a88077337a9e70feace4f4cc93/safetensors-0.4.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65573dc35be9059770808e276b017256fa30058802c29e1038eb1c00028502ea", size = 476566 }, + { url = "https://files.pythonhosted.org/packages/4c/ad/4cf76a3e430a8a26108407fa6cb93e6f80d996a5cb75d9540c8fe3862990/safetensors-0.4.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fd33da8e9407559f8779c82a0448e2133737f922d71f884da27184549416bfed", size = 492253 }, + { url = "https://files.pythonhosted.org/packages/d9/40/a6f75ea449a9647423ec8b6f72c16998d35aa4b43cb38536ac060c5c7bf5/safetensors-0.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3685ce7ed036f916316b567152482b7e959dc754fcc4a8342333d222e05f407c", size = 434769 }, + { url = "https://files.pythonhosted.org/packages/52/47/d4b49b1231abf3131f7bb0bc60ebb94b27ee33e0a1f9569da05f8ac65dee/safetensors-0.4.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:dde2bf390d25f67908278d6f5d59e46211ef98e44108727084d4637ee70ab4f1", size = 457166 }, + { url = "https://files.pythonhosted.org/packages/c3/cd/006468b03b0fa42ff82d795d47c4193e99001e96c3f08bd62ef1b5cab586/safetensors-0.4.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7469d70d3de970b1698d47c11ebbf296a308702cbaae7fcb993944751cf985f4", size = 619280 }, + { url = "https://files.pythonhosted.org/packages/22/4d/b6208d918e83daa84b424c0ac3191ae61b44b3191613a3a5a7b38f94b8ad/safetensors-0.4.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3a6ba28118636a130ccbb968bc33d4684c48678695dba2590169d5ab03a45646", size = 605390 }, + { url = "https://files.pythonhosted.org/packages/e8/20/bf0e01825dc01ed75538021a98b9a046e60ead63c6c6700764c821a8c873/safetensors-0.4.5-cp312-none-win32.whl", hash = "sha256:c859c7ed90b0047f58ee27751c8e56951452ed36a67afee1b0a87847d065eec6", size = 273250 }, + { url = "https://files.pythonhosted.org/packages/f1/5f/ab6b6cec85b40789801f35b7d2fb579ae242d8193929974a106d5ff5c835/safetensors-0.4.5-cp312-none-win_amd64.whl", hash = "sha256:b5a8810ad6a6f933fff6c276eae92c1da217b39b4d8b1bc1c0b8af2d270dc532", size = 286307 }, + { url = "https://files.pythonhosted.org/packages/90/61/0e27b1403e311cba0be20026bee4ee822d90eda7dad372179e7f18bb99f3/safetensors-0.4.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:25e5f8e2e92a74f05b4ca55686234c32aac19927903792b30ee6d7bd5653d54e", size = 392062 }, + { url = "https://files.pythonhosted.org/packages/b1/9f/cc31fafc9f5d79da10a83a820ca37f069bab0717895ad8cbcacf629dd1c5/safetensors-0.4.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:81efb124b58af39fcd684254c645e35692fea81c51627259cdf6d67ff4458916", size = 382517 }, + { url = "https://files.pythonhosted.org/packages/a4/c7/4fda8a0ebb96662550433378f4a74c677fa5fc4d0a43a7ec287d1df254a9/safetensors-0.4.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:585f1703a518b437f5103aa9cf70e9bd437cb78eea9c51024329e4fb8a3e3679", size = 441378 }, + { url = "https://files.pythonhosted.org/packages/14/31/9abb431f6209de9c80dab83e1112ebd769f1e32e7ab7ab228a02424a4693/safetensors-0.4.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4b99fbf72e3faf0b2f5f16e5e3458b93b7d0a83984fe8d5364c60aa169f2da89", size = 438831 }, + { url = "https://files.pythonhosted.org/packages/37/37/99bfb195578a808b8d045159ee9264f8da58d017ac0701853dcacda14d4e/safetensors-0.4.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b17b299ca9966ca983ecda1c0791a3f07f9ca6ab5ded8ef3d283fff45f6bcd5f", size = 477112 }, + { url = "https://files.pythonhosted.org/packages/7d/05/fac3ef107e60d2a78532bed171a91669d4bb259e1236f5ea8c67a6976c75/safetensors-0.4.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:76ded72f69209c9780fdb23ea89e56d35c54ae6abcdec67ccb22af8e696e449a", size = 493373 }, + { url = "https://files.pythonhosted.org/packages/cf/7a/825800ee8c68214b4fd3506d5e19209338c69b41e01c6e14dd13969cc8b9/safetensors-0.4.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2783956926303dcfeb1de91a4d1204cd4089ab441e622e7caee0642281109db3", size = 435422 }, + { url = "https://files.pythonhosted.org/packages/5e/6c/7a3233c08bde558d6c33a41219119866cb596139a4673cc6c24024710ffd/safetensors-0.4.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d94581aab8c6b204def4d7320f07534d6ee34cd4855688004a4354e63b639a35", size = 457382 }, + { url = "https://files.pythonhosted.org/packages/a0/58/0b7bcba3788ff503990cf9278d611b56c029400612ba93e772c987b5aa03/safetensors-0.4.5-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:67e1e7cb8678bb1b37ac48ec0df04faf689e2f4e9e81e566b5c63d9f23748523", size = 619301 }, + { url = "https://files.pythonhosted.org/packages/82/cc/9c2cf58611daf1c83ce5d37f9de66353e23fcda36008b13fd3409a760aa3/safetensors-0.4.5-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:dbd280b07e6054ea68b0cb4b16ad9703e7d63cd6890f577cb98acc5354780142", size = 605580 }, +] + +[[package]] +name = "scikit-learn" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "joblib" }, + { name = "numpy" }, + { name = "scipy" }, + { name = "threadpoolctl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fa/19/5aa2002044afc297ecaf1e3517ed07bba4aece3b5613b5160c1212995fc8/scikit_learn-1.6.0.tar.gz", hash = "sha256:9d58481f9f7499dff4196927aedd4285a0baec8caa3790efbe205f13de37dd6e", size = 7074944 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/07/95/070d6e70f735d13f1c10afebb65ba3526125b7d6c6fc7022651a4a061148/scikit_learn-1.6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1f50b4f24cf12a81c3c09958ae3b864d7534934ca66ded3822de4996d25d7285", size = 12095168 }, + { url = "https://files.pythonhosted.org/packages/72/3d/0381e3a59ebd4154e6a61b0ceaf299c3c141035033dd3b868776cd9af02d/scikit_learn-1.6.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:eb9ae21f387826da14b0b9cb1034f5048ddb9182da429c689f5f4a87dc96930b", size = 11108880 }, + { url = "https://files.pythonhosted.org/packages/fe/2d/0999ae3eed2ac67b1b3cd7fc33370bd5ca59a7514ffe43ae2b6f3cd85b9b/scikit_learn-1.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0baa91eeb8c32632628874a5c91885eaedd23b71504d24227925080da075837a", size = 12585449 }, + { url = "https://files.pythonhosted.org/packages/0e/ec/1b15b59c6cc7a993320a52234369e787f50345a4753e50d5a015a91e1a20/scikit_learn-1.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c716d13ba0a2f8762d96ff78d3e0cde90bc9c9b5c13d6ab6bb9b2d6ca6705fd", size = 13489728 }, + { url = "https://files.pythonhosted.org/packages/96/a2/cbfb5743de748d574ffdfd557e9cb29ba4f8b8a3e07836c6c176f713de2f/scikit_learn-1.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:9aafd94bafc841b626681e626be27bf1233d5a0f20f0a6fdb4bee1a1963c6643", size = 11132946 }, + { url = "https://files.pythonhosted.org/packages/18/0c/a5de627aa57b028aea7026cb3bbeaf63be3158adc118212d6cc7843d939a/scikit_learn-1.6.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:04a5ba45c12a5ff81518aa4f1604e826a45d20e53da47b15871526cda4ff5174", size = 12096999 }, + { url = "https://files.pythonhosted.org/packages/a3/7d/02a96e6fb28ddb213e84b1b4a44148d26ec96fc9db9c74e050277e009892/scikit_learn-1.6.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:21fadfc2ad7a1ce8bd1d90f23d17875b84ec765eecbbfc924ff11fb73db582ce", size = 11160579 }, + { url = "https://files.pythonhosted.org/packages/70/28/77b071f541d75247e6c3403f19aaa634371e972691f6aa1838ca9fd4cc52/scikit_learn-1.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30f34bb5fde90e020653bb84dcb38b6c83f90c70680dbd8c38bd9becbad7a127", size = 12246543 }, + { url = "https://files.pythonhosted.org/packages/17/0e/e6bb84074f1081245a165c0ee775ecef24beae9d2f2e24bcac0c9f155f13/scikit_learn-1.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1dad624cffe3062276a0881d4e441bc9e3b19d02d17757cd6ae79a9d192a0027", size = 13140402 }, + { url = "https://files.pythonhosted.org/packages/21/1d/3df58df8bd425f425df9f90b316618ace62b7f1f838ac1580191025cc735/scikit_learn-1.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:2fce7950a3fad85e0a61dc403df0f9345b53432ac0e47c50da210d22c60b6d85", size = 11103596 }, + { url = "https://files.pythonhosted.org/packages/2e/f4/c3b51920cf310169d19d07855a7bdf51a9b065314877d9a58c0c60d08eea/scikit_learn-1.6.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e5453b2e87ef8accedc5a8a4e6709f887ca01896cd7cc8a174fe39bd4bb00aef", size = 12002532 }, + { url = "https://files.pythonhosted.org/packages/e4/76/cfb0778a84c30df272f1c41fc7b3bd3ffac6e8b02ee6a078a592d35cf73f/scikit_learn-1.6.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:5fe11794236fb83bead2af26a87ced5d26e3370b8487430818b915dafab1724e", size = 11088997 }, + { url = "https://files.pythonhosted.org/packages/2b/8d/4563419d742b852e50871fa3494a8dd0304610601359209a2e614e200260/scikit_learn-1.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:61fe3dcec0d82ae280877a818ab652f4988371e32dd5451e75251bece79668b1", size = 12203192 }, + { url = "https://files.pythonhosted.org/packages/15/a4/f4fdcdd11d82837804c888097ad02aa6381c4bbd57b9d3074ecf9eba8f42/scikit_learn-1.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b44e3a51e181933bdf9a4953cc69c6025b40d2b49e238233f149b98849beb4bf", size = 13164436 }, + { url = "https://files.pythonhosted.org/packages/1a/e1/32bdcf8f918de5a156da6886aba24a3b5718d267954bd34555be896289f0/scikit_learn-1.6.0-cp313-cp313-win_amd64.whl", hash = "sha256:a17860a562bac54384454d40b3f6155200c1c737c9399e6a97962c63fce503ac", size = 11064779 }, + { url = "https://files.pythonhosted.org/packages/c6/8d/14464bea220bc02879f9e8d905c4b0a44b5c12afde6c375720b6f41d9407/scikit_learn-1.6.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:98717d3c152f6842d36a70f21e1468fb2f1a2f8f2624d9a3f382211798516426", size = 11962472 }, + { url = "https://files.pythonhosted.org/packages/b4/69/66899cdc65986188e0e255e52ee93dee5101a72f139ee05f263dfff2053a/scikit_learn-1.6.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:34e20bfac8ff0ebe0ff20fb16a4d6df5dc4cc9ce383e00c2ab67a526a3c67b18", size = 11104864 }, + { url = "https://files.pythonhosted.org/packages/3c/32/2c63bc108cc5438b116a0c6fd25c6126dd14c03118724385f10a3d218ee8/scikit_learn-1.6.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eba06d75815406091419e06dd650b91ebd1c5f836392a0d833ff36447c2b1bfa", size = 12435734 }, + { url = "https://files.pythonhosted.org/packages/0c/f5/9434dff19e04a334bfb30df90511904263c48a422a9952d91d8de5c3aa62/scikit_learn-1.6.0-cp313-cp313t-win_amd64.whl", hash = "sha256:b6916d1cec1ff163c7d281e699d7a6a709da2f2c5ec7b10547e08cc788ddd3ae", size = 11329803 }, +] + +[[package]] +name = "scipy" +version = "1.14.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/62/11/4d44a1f274e002784e4dbdb81e0ea96d2de2d1045b2132d5af62cc31fd28/scipy-1.14.1.tar.gz", hash = "sha256:5a275584e726026a5699459aa72f828a610821006228e841b94275c4a7c08417", size = 58620554 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b2/ab/070ccfabe870d9f105b04aee1e2860520460ef7ca0213172abfe871463b9/scipy-1.14.1-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:2da0469a4ef0ecd3693761acbdc20f2fdeafb69e6819cc081308cc978153c675", size = 39076999 }, + { url = "https://files.pythonhosted.org/packages/a7/c5/02ac82f9bb8f70818099df7e86c3ad28dae64e1347b421d8e3adf26acab6/scipy-1.14.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:c0ee987efa6737242745f347835da2cc5bb9f1b42996a4d97d5c7ff7928cb6f2", size = 29894570 }, + { url = "https://files.pythonhosted.org/packages/ed/05/7f03e680cc5249c4f96c9e4e845acde08eb1aee5bc216eff8a089baa4ddb/scipy-1.14.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3a1b111fac6baec1c1d92f27e76511c9e7218f1695d61b59e05e0fe04dc59617", size = 23103567 }, + { url = "https://files.pythonhosted.org/packages/5e/fc/9f1413bef53171f379d786aabc104d4abeea48ee84c553a3e3d8c9f96a9c/scipy-1.14.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8475230e55549ab3f207bff11ebfc91c805dc3463ef62eda3ccf593254524ce8", size = 25499102 }, + { url = "https://files.pythonhosted.org/packages/c2/4b/b44bee3c2ddc316b0159b3d87a3d467ef8d7edfd525e6f7364a62cd87d90/scipy-1.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:278266012eb69f4a720827bdd2dc54b2271c97d84255b2faaa8f161a158c3b37", size = 35586346 }, + { url = "https://files.pythonhosted.org/packages/93/6b/701776d4bd6bdd9b629c387b5140f006185bd8ddea16788a44434376b98f/scipy-1.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fef8c87f8abfb884dac04e97824b61299880c43f4ce675dd2cbeadd3c9b466d2", size = 41165244 }, + { url = "https://files.pythonhosted.org/packages/06/57/e6aa6f55729a8f245d8a6984f2855696c5992113a5dc789065020f8be753/scipy-1.14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b05d43735bb2f07d689f56f7b474788a13ed8adc484a85aa65c0fd931cf9ccd2", size = 42817917 }, + { url = "https://files.pythonhosted.org/packages/ea/c2/5ecadc5fcccefaece775feadcd795060adf5c3b29a883bff0e678cfe89af/scipy-1.14.1-cp311-cp311-win_amd64.whl", hash = "sha256:716e389b694c4bb564b4fc0c51bc84d381735e0d39d3f26ec1af2556ec6aad94", size = 44781033 }, + { url = "https://files.pythonhosted.org/packages/c0/04/2bdacc8ac6387b15db6faa40295f8bd25eccf33f1f13e68a72dc3c60a99e/scipy-1.14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:631f07b3734d34aced009aaf6fedfd0eb3498a97e581c3b1e5f14a04164a456d", size = 39128781 }, + { url = "https://files.pythonhosted.org/packages/c8/53/35b4d41f5fd42f5781dbd0dd6c05d35ba8aa75c84ecddc7d44756cd8da2e/scipy-1.14.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:af29a935803cc707ab2ed7791c44288a682f9c8107bc00f0eccc4f92c08d6e07", size = 29939542 }, + { url = "https://files.pythonhosted.org/packages/66/67/6ef192e0e4d77b20cc33a01e743b00bc9e68fb83b88e06e636d2619a8767/scipy-1.14.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:2843f2d527d9eebec9a43e6b406fb7266f3af25a751aa91d62ff416f54170bc5", size = 23148375 }, + { url = "https://files.pythonhosted.org/packages/f6/32/3a6dedd51d68eb7b8e7dc7947d5d841bcb699f1bf4463639554986f4d782/scipy-1.14.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:eb58ca0abd96911932f688528977858681a59d61a7ce908ffd355957f7025cfc", size = 25578573 }, + { url = "https://files.pythonhosted.org/packages/f0/5a/efa92a58dc3a2898705f1dc9dbaf390ca7d4fba26d6ab8cfffb0c72f656f/scipy-1.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30ac8812c1d2aab7131a79ba62933a2a76f582d5dbbc695192453dae67ad6310", size = 35319299 }, + { url = "https://files.pythonhosted.org/packages/8e/ee/8a26858ca517e9c64f84b4c7734b89bda8e63bec85c3d2f432d225bb1886/scipy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f9ea80f2e65bdaa0b7627fb00cbeb2daf163caa015e59b7516395fe3bd1e066", size = 40849331 }, + { url = "https://files.pythonhosted.org/packages/a5/cd/06f72bc9187840f1c99e1a8750aad4216fc7dfdd7df46e6280add14b4822/scipy-1.14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:edaf02b82cd7639db00dbff629995ef185c8df4c3ffa71a5562a595765a06ce1", size = 42544049 }, + { url = "https://files.pythonhosted.org/packages/aa/7d/43ab67228ef98c6b5dd42ab386eae2d7877036970a0d7e3dd3eb47a0d530/scipy-1.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:2ff38e22128e6c03ff73b6bb0f85f897d2362f8c052e3b8ad00532198fbdae3f", size = 44521212 }, + { url = "https://files.pythonhosted.org/packages/50/ef/ac98346db016ff18a6ad7626a35808f37074d25796fd0234c2bb0ed1e054/scipy-1.14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1729560c906963fc8389f6aac023739ff3983e727b1a4d87696b7bf108316a79", size = 39091068 }, + { url = "https://files.pythonhosted.org/packages/b9/cc/70948fe9f393b911b4251e96b55bbdeaa8cca41f37c26fd1df0232933b9e/scipy-1.14.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:4079b90df244709e675cdc8b93bfd8a395d59af40b72e339c2287c91860deb8e", size = 29875417 }, + { url = "https://files.pythonhosted.org/packages/3b/2e/35f549b7d231c1c9f9639f9ef49b815d816bf54dd050da5da1c11517a218/scipy-1.14.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:e0cf28db0f24a38b2a0ca33a85a54852586e43cf6fd876365c86e0657cfe7d73", size = 23084508 }, + { url = "https://files.pythonhosted.org/packages/3f/d6/b028e3f3e59fae61fb8c0f450db732c43dd1d836223a589a8be9f6377203/scipy-1.14.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:0c2f95de3b04e26f5f3ad5bb05e74ba7f68b837133a4492414b3afd79dfe540e", size = 25503364 }, + { url = "https://files.pythonhosted.org/packages/a7/2f/6c142b352ac15967744d62b165537a965e95d557085db4beab2a11f7943b/scipy-1.14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b99722ea48b7ea25e8e015e8341ae74624f72e5f21fc2abd45f3a93266de4c5d", size = 35292639 }, + { url = "https://files.pythonhosted.org/packages/56/46/2449e6e51e0d7c3575f289f6acb7f828938eaab8874dbccfeb0cd2b71a27/scipy-1.14.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5149e3fd2d686e42144a093b206aef01932a0059c2a33ddfa67f5f035bdfe13e", size = 40798288 }, + { url = "https://files.pythonhosted.org/packages/32/cd/9d86f7ed7f4497c9fd3e39f8918dd93d9f647ba80d7e34e4946c0c2d1a7c/scipy-1.14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e4f5a7c49323533f9103d4dacf4e4f07078f360743dec7f7596949149efeec06", size = 42524647 }, + { url = "https://files.pythonhosted.org/packages/f5/1b/6ee032251bf4cdb0cc50059374e86a9f076308c1512b61c4e003e241efb7/scipy-1.14.1-cp313-cp313-win_amd64.whl", hash = "sha256:baff393942b550823bfce952bb62270ee17504d02a1801d7fd0719534dfb9c84", size = 44469524 }, +] + +[[package]] +name = "semver" +version = "3.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/41/6c/a536cc008f38fd83b3c1b98ce19ead13b746b5588c9a0cb9dd9f6ea434bc/semver-3.0.2.tar.gz", hash = "sha256:6253adb39c70f6e51afed2fa7152bcd414c411286088fb4b9effb133885ab4cc", size = 214988 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/77/0cc7a8a3bc7e53d07e8f47f147b92b0960e902b8254859f4aee5c4d7866b/semver-3.0.2-py3-none-any.whl", hash = "sha256:b1ea4686fe70b981f85359eda33199d60c53964284e0cfb4977d243e37cf4bf4", size = 17099 }, +] + +[[package]] +name = "sentry-sdk" +version = "2.19.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/36/4a/eccdcb8c2649d53440ae1902447b86e2e2ad1bc84207c80af9696fa07614/sentry_sdk-2.19.2.tar.gz", hash = "sha256:467df6e126ba242d39952375dd816fbee0f217d119bf454a8ce74cf1e7909e8d", size = 299047 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/31/4d/74597bb6bcc23abc774b8901277652c61331a9d4d0a8d1bdb20679b9bbcb/sentry_sdk-2.19.2-py2.py3-none-any.whl", hash = "sha256:ebdc08228b4d131128e568d696c210d846e5b9d70aa0327dec6b1272d9d40b84", size = 322942 }, +] + +[package.optional-dependencies] +fastapi = [ + { name = "fastapi" }, +] + +[[package]] +name = "setuptools" +version = "75.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/54/292f26c208734e9a7f067aea4a7e282c080750c4546559b58e2e45413ca0/setuptools-75.6.0.tar.gz", hash = "sha256:8199222558df7c86216af4f84c30e9b34a61d8ba19366cc914424cdbd28252f6", size = 1337429 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/55/21/47d163f615df1d30c094f6c8bbb353619274edccf0327b185cc2493c2c33/setuptools-75.6.0-py3-none-any.whl", hash = "sha256:ce74b49e8f7110f9bf04883b730f4765b774ef3ef28f722cce7c273d253aaf7d", size = 1224032 }, +] + +[[package]] +name = "shellingham" +version = "1.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755 }, +] + +[[package]] +name = "simplejson" +version = "3.19.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3d/29/085111f19717f865eceaf0d4397bf3e76b08d60428b076b64e2a1903706d/simplejson-3.19.3.tar.gz", hash = "sha256:8e086896c36210ab6050f2f9f095a5f1e03c83fa0e7f296d6cba425411364680", size = 85237 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8c/bb/9ee3959e6929d228cf669b3f13f0edd43c5261b6cd69598640748b19ca35/simplejson-3.19.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e88abff510dcff903a18d11c2a75f9964e768d99c8d147839913886144b2065e", size = 91930 }, + { url = "https://files.pythonhosted.org/packages/ac/ae/a06523928af3a6783e2638cd4f6035c3e32de1c1063d563d9060c8d2f1ad/simplejson-3.19.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:934a50a614fb831614db5dbfba35127ee277624dda4d15895c957d2f5d48610c", size = 74787 }, + { url = "https://files.pythonhosted.org/packages/c3/58/fea732e48a7540035fe46d39e6fd77679f5810311d31da8661ce7a18210a/simplejson-3.19.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:212fce86a22188b0c7f53533b0f693ea9605c1a0f02c84c475a30616f55a744d", size = 74612 }, + { url = "https://files.pythonhosted.org/packages/ab/4d/15718f20cb0e3875b8af9597d6bb3bfbcf1383834b82b6385ee9ac0b72a9/simplejson-3.19.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d9e8f836688a8fabe6a6b41b334aa550a6823f7b4ac3d3712fc0ad8655be9a8", size = 143550 }, + { url = "https://files.pythonhosted.org/packages/93/44/815a4343774760f7a82459c8f6a4d8268b4b6d23f81e7b922a5e2ca79171/simplejson-3.19.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23228037dc5d41c36666384062904d74409a62f52283d9858fa12f4c22cffad1", size = 153284 }, + { url = "https://files.pythonhosted.org/packages/9d/52/d3202d9bba95444090d1c98e43da3c10907875babf63ed3c134d1b9437e3/simplejson-3.19.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0791f64fed7d4abad639491f8a6b1ba56d3c604eb94b50f8697359b92d983f36", size = 141518 }, + { url = "https://files.pythonhosted.org/packages/b7/d4/850948bcbcfe0b4a6c69dfde10e245d3a1ea45252f16a1e2308a3b06b1da/simplejson-3.19.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4f614581b61a26fbbba232a1391f6cee82bc26f2abbb6a0b44a9bba25c56a1c", size = 144688 }, + { url = "https://files.pythonhosted.org/packages/58/d2/b8dcb0a07d9cd54c47f9fe8733dbb83891d1efe4fc786d9dfc8781cc04f9/simplejson-3.19.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1df0aaf1cb787fdf34484ed4a1f0c545efd8811f6028623290fef1a53694e597", size = 144534 }, + { url = "https://files.pythonhosted.org/packages/a9/95/1e92d99039041f596e0923ec4f9153244acaf3830944dc69a7c11b23ceaa/simplejson-3.19.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:951095be8d4451a7182403354c22ec2de3e513e0cc40408b689af08d02611588", size = 146565 }, + { url = "https://files.pythonhosted.org/packages/21/04/c96aeb3a74031255e4cbcc0ca1b6ebfb5549902f0a065f06d65ce8447c0c/simplejson-3.19.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:2a954b30810988feeabde843e3263bf187697e0eb5037396276db3612434049b", size = 155014 }, + { url = "https://files.pythonhosted.org/packages/b7/41/e28a28593afc4a75d8999d057bfb7c73a103e35f927e66f4bb92571787ae/simplejson-3.19.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c40df31a75de98db2cdfead6074d4449cd009e79f54c1ebe5e5f1f153c68ad20", size = 148092 }, + { url = "https://files.pythonhosted.org/packages/2b/82/1c81a3af06f937afb6d2e9d74a465c0e0ae6db444d1bf2a436ea26de1965/simplejson-3.19.3-cp311-cp311-win32.whl", hash = "sha256:7e2a098c21ad8924076a12b6c178965d88a0ad75d1de67e1afa0a66878f277a5", size = 73942 }, + { url = "https://files.pythonhosted.org/packages/65/be/d8ab9717f471be3c114f16abd8be21d9a6a0a09b9b49177d93d64d3717d9/simplejson-3.19.3-cp311-cp311-win_amd64.whl", hash = "sha256:c9bedebdc5fdad48af8783022bae307746d54006b783007d1d3c38e10872a2c6", size = 75469 }, + { url = "https://files.pythonhosted.org/packages/20/15/513fea93fafbdd4993eacfcb762965b2ff3d29e618c029e2956174d68c4b/simplejson-3.19.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:66a0399e21c2112acacfebf3d832ebe2884f823b1c7e6d1363f2944f1db31a99", size = 92921 }, + { url = "https://files.pythonhosted.org/packages/a4/4f/998a907ae1a6c104dc0ee48aa248c2478490152808d34d8e07af57f396c3/simplejson-3.19.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6ef9383c5e05f445be60f1735c1816163c874c0b1ede8bb4390aff2ced34f333", size = 75311 }, + { url = "https://files.pythonhosted.org/packages/db/44/acd6122201e927451869d45952b9ab1d3025cdb5e61548d286d08fbccc08/simplejson-3.19.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:42e5acf80d4d971238d4df97811286a044d720693092b20a56d5e56b7dcc5d09", size = 74964 }, + { url = "https://files.pythonhosted.org/packages/27/ca/d0a1e8f16e1bbdc0b8c6d88166f45f565ed7285f53928cfef3b6ce78f14d/simplejson-3.19.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0b0efc7279d768db7c74d3d07f0b5c81280d16ae3fb14e9081dc903e8360771", size = 150106 }, + { url = "https://files.pythonhosted.org/packages/63/59/0554b78cf26c98e2b9cae3f44723bd72c2394e2afec1a14eedc6211f7187/simplejson-3.19.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0552eb06e7234da892e1d02365cd2b7b2b1f8233aa5aabdb2981587b7cc92ea0", size = 158347 }, + { url = "https://files.pythonhosted.org/packages/b2/fe/9f30890352e431e8508cc569912d3322147d3e7e4f321e48c0adfcb4c97d/simplejson-3.19.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5bf6a3b9a7d7191471b464fe38f684df10eb491ec9ea454003edb45a011ab187", size = 148456 }, + { url = "https://files.pythonhosted.org/packages/37/e3/663a09542ee021d4131162f7a164cb2e7f04ef48433a67591738afbf12ea/simplejson-3.19.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7017329ca8d4dca94ad5e59f496e5fc77630aecfc39df381ffc1d37fb6b25832", size = 152190 }, + { url = "https://files.pythonhosted.org/packages/31/20/4e0c4d35e10ff6465003bec304316d822a559a1c38c66ef6892ca199c207/simplejson-3.19.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:67a20641afebf4cfbcff50061f07daad1eace6e7b31d7622b6fa2c40d43900ba", size = 149846 }, + { url = "https://files.pythonhosted.org/packages/08/7a/46e2e072cac3987cbb05946f25167f0ad2fe536748e7405953fd6661a486/simplejson-3.19.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:dd6a7dabcc4c32daf601bc45e01b79175dde4b52548becea4f9545b0a4428169", size = 151714 }, + { url = "https://files.pythonhosted.org/packages/7f/7d/dbeeac10eb61d5d8858d0bb51121a21050d281dc83af4c557f86da28746c/simplejson-3.19.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:08f9b443a94e72dd02c87098c96886d35790e79e46b24e67accafbf13b73d43b", size = 158777 }, + { url = "https://files.pythonhosted.org/packages/fc/8f/a98bdbb799c6a4a884b5823db31785a96ba895b4b0f4d8ac345d6fe98bbf/simplejson-3.19.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fa97278ae6614346b5ca41a45a911f37a3261b57dbe4a00602048652c862c28b", size = 154230 }, + { url = "https://files.pythonhosted.org/packages/b1/db/852eebceb85f969ae40e06babed1a93d3bacb536f187d7a80ff5823a5979/simplejson-3.19.3-cp312-cp312-win32.whl", hash = "sha256:ef28c3b328d29b5e2756903aed888960bc5df39b4c2eab157ae212f70ed5bf74", size = 74002 }, + { url = "https://files.pythonhosted.org/packages/fe/68/9f0e5df0651cb79ef83cba1378765a00ee8038e6201cc82b8e7178a7778e/simplejson-3.19.3-cp312-cp312-win_amd64.whl", hash = "sha256:1e662336db50ad665777e6548b5076329a94a0c3d4a0472971c588b3ef27de3a", size = 75596 }, + { url = "https://files.pythonhosted.org/packages/93/3a/5896821ed543899fcb9c4256c7e71bb110048047349a00f42bc8b8fb379f/simplejson-3.19.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0959e6cb62e3994b5a40e31047ff97ef5c4138875fae31659bead691bed55896", size = 92931 }, + { url = "https://files.pythonhosted.org/packages/39/15/5d33d269440912ee40d856db0c8be2b91aba7a219690ab01f86cb0edd590/simplejson-3.19.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7a7bfad839c624e139a4863007233a3f194e7c51551081f9789cba52e4da5167", size = 75318 }, + { url = "https://files.pythonhosted.org/packages/2a/8d/2e7483a2bf7ec53acf7e012bafbda79d7b34f90471dda8e424544a59d484/simplejson-3.19.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:afab2f7f2486a866ff04d6d905e9386ca6a231379181a3838abce1f32fbdcc37", size = 74971 }, + { url = "https://files.pythonhosted.org/packages/4d/9d/9bdf34437c8834a7cf7246f85e9d5122e30579f512c10a0c2560e994294f/simplejson-3.19.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d00313681015ac498e1736b304446ee6d1c72c5b287cd196996dad84369998f7", size = 150112 }, + { url = "https://files.pythonhosted.org/packages/a7/e2/1f2ae2d89eaf85f6163c82150180aae5eaa18085cfaf892f8a57d4c51cbd/simplejson-3.19.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d936ae682d5b878af9d9eb4d8bb1fdd5e41275c8eb59ceddb0aeed857bb264a2", size = 158354 }, + { url = "https://files.pythonhosted.org/packages/60/83/26f610adf234c8492b3f30501e12f2271e67790f946c6898fe0c58aefe99/simplejson-3.19.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01c6657485393f2e9b8177c77a7634f13ebe70d5e6de150aae1677d91516ce6b", size = 148455 }, + { url = "https://files.pythonhosted.org/packages/b5/4b/109af50006af77133653c55b5b91b4bd2d579ff8254ce11216c0b75f911b/simplejson-3.19.3-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a6a750d3c7461b1c47cfc6bba8d9e57a455e7c5f80057d2a82f738040dd1129", size = 152191 }, + { url = "https://files.pythonhosted.org/packages/75/dc/108872a8825cbd99ae6f4334e0490ff1580367baf12198bcaf988f6820ba/simplejson-3.19.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ea7a4a998c87c5674a27089e022110a1a08a7753f21af3baf09efe9915c23c3c", size = 149954 }, + { url = "https://files.pythonhosted.org/packages/eb/be/deec1d947a5d0472276ab4a4d1a9378dc5ee27f3dc9e54d4f62ffbad7a08/simplejson-3.19.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:6300680d83a399be2b8f3b0ef7ef90b35d2a29fe6e9c21438097e0938bbc1564", size = 151812 }, + { url = "https://files.pythonhosted.org/packages/e9/58/4ee130702d36b1551ef66e7587eefe56651f3669255bf748cd71691e2434/simplejson-3.19.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:ab69f811a660c362651ae395eba8ce84f84c944cea0df5718ea0ba9d1e4e7252", size = 158880 }, + { url = "https://files.pythonhosted.org/packages/0f/e1/59cc6a371b60f89e3498d9f4c8109f6b7359094d453f5fe80b2677b777b0/simplejson-3.19.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:256e09d0f94d9c3d177d9e95fd27a68c875a4baa2046633df387b86b652f5747", size = 154344 }, + { url = "https://files.pythonhosted.org/packages/79/45/1b36044670016f5cb25ebd92497427d2d1711ecb454d00f71eb9a00b77cc/simplejson-3.19.3-cp313-cp313-win32.whl", hash = "sha256:2c78293470313aefa9cfc5e3f75ca0635721fb016fb1121c1c5b0cb8cc74712a", size = 74002 }, + { url = "https://files.pythonhosted.org/packages/e2/58/b06226e6b0612f2b1fa13d5273551da259f894566b1eef32249ddfdcce44/simplejson-3.19.3-cp313-cp313-win_amd64.whl", hash = "sha256:3bbcdc438dc1683b35f7a8dc100960c721f922f9ede8127f63bed7dfded4c64c", size = 75599 }, + { url = "https://files.pythonhosted.org/packages/0d/e7/f9fafbd4f39793a20cc52e77bbd766f7384312526d402c382928dc7667f6/simplejson-3.19.3-py3-none-any.whl", hash = "sha256:49cc4c7b940d43bd12bf87ec63f28cbc4964fc4e12c031cc8cd01650f43eb94e", size = 57004 }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050 }, +] + +[[package]] +name = "smmap" +version = "5.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/88/04/b5bf6d21dc4041000ccba7eb17dd3055feb237e7ffc2c20d3fae3af62baa/smmap-5.0.1.tar.gz", hash = "sha256:dceeb6c0028fdb6734471eb07c0cd2aae706ccaecab45965ee83f11c8d3b1f62", size = 22291 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/a5/10f97f73544edcdef54409f1d839f6049a0d79df68adbc1ceb24d1aaca42/smmap-5.0.1-py3-none-any.whl", hash = "sha256:e6d8668fa5f93e706934a62d7b4db19c8d9eb8cf2adbb75ef1b675aa332b69da", size = 24282 }, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 }, +] + +[[package]] +name = "soupsieve" +version = "2.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/ce/fbaeed4f9fb8b2daa961f90591662df6a86c1abf25c548329a86920aedfb/soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb", size = 101569 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/c2/fe97d779f3ef3b15f05c94a2f1e3d21732574ed441687474db9d342a7315/soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9", size = 36186 }, +] + +[[package]] +name = "sqlalchemy" +version = "2.0.35" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "greenlet", marker = "(python_full_version < '3.13' and platform_machine == 'AMD64') or (python_full_version < '3.13' and platform_machine == 'WIN32') or (python_full_version < '3.13' and platform_machine == 'aarch64') or (python_full_version < '3.13' and platform_machine == 'amd64') or (python_full_version < '3.13' and platform_machine == 'ppc64le') or (python_full_version < '3.13' and platform_machine == 'win32') or (python_full_version < '3.13' and platform_machine == 'x86_64')" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/36/48/4f190a83525f5cefefa44f6adc9e6386c4de5218d686c27eda92eb1f5424/sqlalchemy-2.0.35.tar.gz", hash = "sha256:e11d7ea4d24f0a262bccf9a7cd6284c976c5369dac21db237cff59586045ab9f", size = 9562798 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c3/46/9215a35bf98c3a2528e987791e6180eb51624d2c7d5cb8e2d96a6450b657/SQLAlchemy-2.0.35-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e21f66748ab725ade40fa7af8ec8b5019c68ab00b929f6643e1b1af461eddb60", size = 2091274 }, + { url = "https://files.pythonhosted.org/packages/1e/69/919673c5101a0c633658d58b11b454b251ca82300941fba801201434755d/SQLAlchemy-2.0.35-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8a6219108a15fc6d24de499d0d515c7235c617b2540d97116b663dade1a54d62", size = 2081672 }, + { url = "https://files.pythonhosted.org/packages/67/ea/a6b0597cbda12796be2302153369dbbe90573fdab3bc4885f8efac499247/SQLAlchemy-2.0.35-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:042622a5306c23b972192283f4e22372da3b8ddf5f7aac1cc5d9c9b222ab3ff6", size = 3200083 }, + { url = "https://files.pythonhosted.org/packages/8c/d6/97bdc8d714fb21762f2092511f380f18cdb2d985d516071fa925bb433a90/SQLAlchemy-2.0.35-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:627dee0c280eea91aed87b20a1f849e9ae2fe719d52cbf847c0e0ea34464b3f7", size = 3200080 }, + { url = "https://files.pythonhosted.org/packages/87/d2/8c2adaf2ade4f6f1b725acd0b0be9210bb6a2df41024729a8eec6a86fe5a/SQLAlchemy-2.0.35-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4fdcd72a789c1c31ed242fd8c1bcd9ea186a98ee8e5408a50e610edfef980d71", size = 3137108 }, + { url = "https://files.pythonhosted.org/packages/7e/ae/ea05d0bfa8f2b25ae34591895147152854fc950f491c4ce362ae06035db8/SQLAlchemy-2.0.35-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:89b64cd8898a3a6f642db4eb7b26d1b28a497d4022eccd7717ca066823e9fb01", size = 3157437 }, + { url = "https://files.pythonhosted.org/packages/fe/5d/8ad6df01398388a766163d27960b3365f1bbd8bb7b05b5cad321a8b69b25/SQLAlchemy-2.0.35-cp311-cp311-win32.whl", hash = "sha256:6a93c5a0dfe8d34951e8a6f499a9479ffb9258123551fa007fc708ae2ac2bc5e", size = 2061935 }, + { url = "https://files.pythonhosted.org/packages/ff/68/8557efc0c32c8e2c147cb6512237448b8ed594a57cd015fda67f8e56bb3f/SQLAlchemy-2.0.35-cp311-cp311-win_amd64.whl", hash = "sha256:c68fe3fcde03920c46697585620135b4ecfdfc1ed23e75cc2c2ae9f8502c10b8", size = 2087281 }, + { url = "https://files.pythonhosted.org/packages/2f/2b/fff87e6db0da31212c98bbc445f83fb608ea92b96bda3f3f10e373bac76c/SQLAlchemy-2.0.35-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:eb60b026d8ad0c97917cb81d3662d0b39b8ff1335e3fabb24984c6acd0c900a2", size = 2089790 }, + { url = "https://files.pythonhosted.org/packages/68/92/4bb761bd82764d5827bf6b6095168c40fb5dbbd23670203aef2f96ba6bc6/SQLAlchemy-2.0.35-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6921ee01caf375363be5e9ae70d08ce7ca9d7e0e8983183080211a062d299468", size = 2080266 }, + { url = "https://files.pythonhosted.org/packages/22/46/068a65db6dc253c6f25a7598d99e0a1d60b14f661f9d09ef6c73c718fa4e/SQLAlchemy-2.0.35-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8cdf1a0dbe5ced887a9b127da4ffd7354e9c1a3b9bb330dce84df6b70ccb3a8d", size = 3229760 }, + { url = "https://files.pythonhosted.org/packages/6e/36/59830dafe40dda592304debd4cd86e583f63472f3a62c9e2695a5795e786/SQLAlchemy-2.0.35-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93a71c8601e823236ac0e5d087e4f397874a421017b3318fd92c0b14acf2b6db", size = 3240649 }, + { url = "https://files.pythonhosted.org/packages/00/50/844c50c6996f9c7f000c959dd1a7436a6c94e449ee113046a1d19e470089/SQLAlchemy-2.0.35-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e04b622bb8a88f10e439084486f2f6349bf4d50605ac3e445869c7ea5cf0fa8c", size = 3176138 }, + { url = "https://files.pythonhosted.org/packages/df/d2/336b18cac68eecb67de474fc15c85f13be4e615c6f5bae87ea38c6734ce0/SQLAlchemy-2.0.35-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1b56961e2d31389aaadf4906d453859f35302b4eb818d34a26fab72596076bb8", size = 3202753 }, + { url = "https://files.pythonhosted.org/packages/f0/f3/ee1e62fabdc10910b5ef720ae08e59bc785f26652876af3a50b89b97b412/SQLAlchemy-2.0.35-cp312-cp312-win32.whl", hash = "sha256:0f9f3f9a3763b9c4deb8c5d09c4cc52ffe49f9876af41cc1b2ad0138878453cf", size = 2060113 }, + { url = "https://files.pythonhosted.org/packages/60/63/a3cef44a52979169d884f3583d0640e64b3c28122c096474a1d7cfcaf1f3/SQLAlchemy-2.0.35-cp312-cp312-win_amd64.whl", hash = "sha256:25b0f63e7fcc2a6290cb5f7f5b4fc4047843504983a28856ce9b35d8f7de03cc", size = 2085839 }, + { url = "https://files.pythonhosted.org/packages/0e/c6/33c706449cdd92b1b6d756b247761e27d32230fd6b2de5f44c4c3e5632b2/SQLAlchemy-2.0.35-py3-none-any.whl", hash = "sha256:2ab3f0336c0387662ce6221ad30ab3a5e6499aab01b9790879b6578fd9b8faa1", size = 1881276 }, +] + +[package.optional-dependencies] +asyncio = [ + { name = "greenlet" }, +] + +[[package]] +name = "squarify" +version = "0.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0d/01/1753243870dff9fa786c9712fdc8dffb56f356c46c77d7468cb12f6d8398/squarify-0.4.4.tar.gz", hash = "sha256:b8a110c8dc5f1cd1402ca12d79764a081e90bfc445346cfa166df929753ecb46", size = 5514 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/3c/eedbe9fb07cc20fd9a8423da14b03bc270d0570b3ba9174a4497156a2152/squarify-0.4.4-py3-none-any.whl", hash = "sha256:d7597724e29d48aa14fd2f551060d6b09e1f0a67e4cd3ea329fe03b4c9a56f11", size = 4082 }, +] + +[[package]] +name = "sse-starlette" +version = "2.1.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "starlette" }, + { name = "uvicorn" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/fc/56ab9f116b2133521f532fce8d03194cf04dcac25f583cf3d839be4c0496/sse_starlette-2.1.3.tar.gz", hash = "sha256:9cd27eb35319e1414e3d2558ee7414487f9529ce3b3cf9b21434fd110e017169", size = 19678 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/52/aa/36b271bc4fa1d2796311ee7c7283a3a1c348bad426d37293609ca4300eef/sse_starlette-2.1.3-py3-none-any.whl", hash = "sha256:8ec846438b4665b9e8c560fcdea6bc8081a3abf7942faa95e5a744999d219772", size = 9383 }, +] + +[[package]] +name = "starlette" +version = "0.36.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/be/47/1bba49d42d63f4453f0a64a20acbf2d0bd2f5a8cde6a166ee66c074a08f8/starlette-0.36.3.tar.gz", hash = "sha256:90a671733cfb35771d8cc605e0b679d23b992f8dcfad48cc60b38cb29aeb7080", size = 2842113 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/eb/f7/372e3953b6e6fbfe0b70a1bb52612eae16e943f4288516480860fcd4ac41/starlette-0.36.3-py3-none-any.whl", hash = "sha256:13d429aa93a61dc40bf503e8c801db1f1bca3dc706b10ef2434a36123568f044", size = 71481 }, +] + +[[package]] +name = "tabulate" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/fe/802052aecb21e3797b8f7902564ab6ea0d60ff8ca23952079064155d1ae1/tabulate-0.9.0.tar.gz", hash = "sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c", size = 81090 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/44/4a5f08c96eb108af5cb50b41f76142f0afa346dfa99d5296fe7202a11854/tabulate-0.9.0-py3-none-any.whl", hash = "sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f", size = 35252 }, +] + +[[package]] +name = "tenacity" +version = "8.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a3/4d/6a19536c50b849338fcbe9290d562b52cbdcf30d8963d3588a68a4107df1/tenacity-8.5.0.tar.gz", hash = "sha256:8bc6c0c8a09b31e6cad13c47afbed1a567518250a9a171418582ed8d9c20ca78", size = 47309 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl", hash = "sha256:b594c2a5945830c267ce6b79a166228323ed52718f30302c1359836112346687", size = 28165 }, +] + +[[package]] +name = "threadpoolctl" +version = "3.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bd/55/b5148dcbf72f5cde221f8bfe3b6a540da7aa1842f6b491ad979a6c8b84af/threadpoolctl-3.5.0.tar.gz", hash = "sha256:082433502dd922bf738de0d8bcc4fdcbf0979ff44c42bd40f5af8a282f6fa107", size = 41936 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4b/2c/ffbf7a134b9ab11a67b0cf0726453cedd9c5043a4fe7a35d1cefa9a1bcfb/threadpoolctl-3.5.0-py3-none-any.whl", hash = "sha256:56c1e26c150397e58c4926da8eeee87533b1e32bef131bd4bf6a2f45f3185467", size = 18414 }, +] + +[[package]] +name = "tiktoken" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "regex" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c4/4a/abaec53e93e3ef37224a4dd9e2fc6bb871e7a538c2b6b9d2a6397271daf4/tiktoken-0.7.0.tar.gz", hash = "sha256:1077266e949c24e0291f6c350433c6f0971365ece2b173a23bc3b9f9defef6b6", size = 33437 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/eb/57492b2568eea1d546da5cc1ae7559d924275280db80ba07e6f9b89a914b/tiktoken-0.7.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:10c7674f81e6e350fcbed7c09a65bca9356eaab27fb2dac65a1e440f2bcfe30f", size = 961468 }, + { url = "https://files.pythonhosted.org/packages/30/ef/e07dbfcb2f85c84abaa1b035a9279575a8da0236305491dc22ae099327f7/tiktoken-0.7.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:084cec29713bc9d4189a937f8a35dbdfa785bd1235a34c1124fe2323821ee93f", size = 907005 }, + { url = "https://files.pythonhosted.org/packages/ea/9b/f36db825b1e9904c3a2646439cb9923fc1e09208e2e071c6d9dd64ead131/tiktoken-0.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:811229fde1652fedcca7c6dfe76724d0908775b353556d8a71ed74d866f73f7b", size = 1049183 }, + { url = "https://files.pythonhosted.org/packages/61/b4/b80d1fe33015e782074e96bbbf4108ccd283b8deea86fb43c15d18b7c351/tiktoken-0.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86b6e7dc2e7ad1b3757e8a24597415bafcfb454cebf9a33a01f2e6ba2e663992", size = 1080830 }, + { url = "https://files.pythonhosted.org/packages/2a/40/c66ff3a21af6d62a7e0ff428d12002c4e0389f776d3ff96dcaa0bb354eee/tiktoken-0.7.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1063c5748be36344c7e18c7913c53e2cca116764c2080177e57d62c7ad4576d1", size = 1092967 }, + { url = "https://files.pythonhosted.org/packages/2e/80/f4c9e255ff236e6a69ce44b927629cefc1b63d3a00e2d1c9ed540c9492d2/tiktoken-0.7.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:20295d21419bfcca092644f7e2f2138ff947a6eb8cfc732c09cc7d76988d4a89", size = 1142682 }, + { url = "https://files.pythonhosted.org/packages/b1/10/c04b4ff592a5f46b28ebf4c2353f735c02ae7f0ce1b165d00748ced6467e/tiktoken-0.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:959d993749b083acc57a317cbc643fb85c014d055b2119b739487288f4e5d1cb", size = 799009 }, + { url = "https://files.pythonhosted.org/packages/1d/46/4cdda4186ce900608f522da34acf442363346688c71b938a90a52d7b84cc/tiktoken-0.7.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:71c55d066388c55a9c00f61d2c456a6086673ab7dec22dd739c23f77195b1908", size = 960446 }, + { url = "https://files.pythonhosted.org/packages/b6/30/09ced367d280072d7a3e21f34263dfbbf6378661e7a0f6414e7c18971083/tiktoken-0.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:09ed925bccaa8043e34c519fbb2f99110bd07c6fd67714793c21ac298e449410", size = 906652 }, + { url = "https://files.pythonhosted.org/packages/e6/7b/c949e4954441a879a67626963dff69096e3c774758b9f2bb0853f7b4e1e7/tiktoken-0.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03c6c40ff1db0f48a7b4d2dafeae73a5607aacb472fa11f125e7baf9dce73704", size = 1047904 }, + { url = "https://files.pythonhosted.org/packages/50/81/1842a22f15586072280364c2ab1e40835adaf64e42fe80e52aff921ee021/tiktoken-0.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d20b5c6af30e621b4aca094ee61777a44118f52d886dbe4f02b70dfe05c15350", size = 1079836 }, + { url = "https://files.pythonhosted.org/packages/6d/87/51a133a3d5307cf7ae3754249b0faaa91d3414b85c3d36f80b54d6817aa6/tiktoken-0.7.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d427614c3e074004efa2f2411e16c826f9df427d3c70a54725cae860f09e4bf4", size = 1092472 }, + { url = "https://files.pythonhosted.org/packages/a5/1f/c93517dc6d3b2c9e988b8e24f87a8b2d4a4ab28920a3a3f3ea338397ae0c/tiktoken-0.7.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8c46d7af7b8c6987fac9b9f61041b452afe92eb087d29c9ce54951280f899a97", size = 1141881 }, + { url = "https://files.pythonhosted.org/packages/bf/4b/48ca098cb580c099b5058bf62c4cb5e90ca6130fa43ef4df27088536245b/tiktoken-0.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:0bc603c30b9e371e7c4c7935aba02af5994a909fc3c0fe66e7004070858d3f8f", size = 799281 }, +] + +[[package]] +name = "time-machine" +version = "2.16.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fb/dd/5022939b9cadefe3af04f4012186c29b8afbe858b1ec2cfa38baeec94dab/time_machine-2.16.0.tar.gz", hash = "sha256:4a99acc273d2f98add23a89b94d4dd9e14969c01214c8514bfa78e4e9364c7e2", size = 24626 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/7b/34aad93f75f86503dd1fa53bc120d8129fe4de83aef58ffa78c62b044ef9/time_machine-2.16.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8f936566ef9f09136a3d5db305961ef6d897b76b240c9ff4199144aed6dd4fe5", size = 20169 }, + { url = "https://files.pythonhosted.org/packages/68/cb/7d020d5c05d0460a4a96232b0777882ef989c1e6144d11ba984c4b0b4d1a/time_machine-2.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5886e23ede3478ca2a3e0a641f5d09dd784dfa9e48c96e8e5e31fc4fe77b6dc0", size = 16614 }, + { url = "https://files.pythonhosted.org/packages/0d/24/ce1ff76c9a4f3be88c2b947f2411a5a8019390734597d3106a151f8a9416/time_machine-2.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c76caf539fa4941e1817b7c482c87c65c52a1903fea761e84525955c6106fafb", size = 32507 }, + { url = "https://files.pythonhosted.org/packages/08/d7/ba1135587bd2ed105e59ed7e05969c913277d110fecc0ed871006ea3f763/time_machine-2.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:298aa423e07c8b21b991782f01d7749c871c792319c2af3e9755f9ab49033212", size = 30627 }, + { url = "https://files.pythonhosted.org/packages/da/c6/f490aaddc80c54238f4b8fe97870bbfe0d2c70fe4a57269badc94f5f38a6/time_machine-2.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3391ae9c484736850bb44ef125cbad52fe2d1b69e42c95dc88c43af8ead2cc7", size = 32362 }, + { url = "https://files.pythonhosted.org/packages/b1/f7/2522ae1c1995a39d6d8b7ee7efed47ec8bd7ff3240fdb2662a8b7e11b84a/time_machine-2.16.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:503e7ff507c2089699d91885fc5b9c8ff16774a7b6aff48b4dcee0c0a0685b61", size = 32188 }, + { url = "https://files.pythonhosted.org/packages/e9/53/b1ccb55f39e7e62660f852d7aedef438d2872ea9c73f64be46d0d3b3f3d7/time_machine-2.16.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:eee7b0fc4fbab2c6585ea17606c6548be83919c70deea0865409fe9fc2d8cdce", size = 30600 }, + { url = "https://files.pythonhosted.org/packages/19/1f/37a5a9333a2da35b0fc43e8ac693b82dd5492892131bc3cc0c8f5835af94/time_machine-2.16.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9db5e5b3ccdadaafa5730c2f9db44c38b013234c9ad01f87738907e19bdba268", size = 31896 }, + { url = "https://files.pythonhosted.org/packages/fc/97/e1a8bd64e5432adf47859cb63847b4472efc644b508602141c60ccf52112/time_machine-2.16.0-cp311-cp311-win32.whl", hash = "sha256:2552f0767bc10c9d668f108fef9b487809cdeb772439ce932e74136365c69baf", size = 19030 }, + { url = "https://files.pythonhosted.org/packages/34/c9/f4764e447aa9da4031c89da60fa69f4f73fd45571415788c298cbd4620e9/time_machine-2.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:12474fcdbc475aa6fe5275fe7224e685c5b9777f5939647f35980e9614ae7558", size = 19924 }, + { url = "https://files.pythonhosted.org/packages/8a/c0/788500d33656a044e3289b814106c2277209ac73316c00b9668012ce6027/time_machine-2.16.0-cp311-cp311-win_arm64.whl", hash = "sha256:ac2df0fa564356384515ed62cb6679f33f1f529435b16b0ec0f88414635dbe39", size = 17993 }, + { url = "https://files.pythonhosted.org/packages/4a/f4/603a84e7ae6427a53953db9f61b689dc6adf233e03c5f5ca907a901452fd/time_machine-2.16.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:84788f4d62a8b1bf5e499bb9b0e23ceceea21c415ad6030be6267ce3d639842f", size = 20155 }, + { url = "https://files.pythonhosted.org/packages/d8/94/dbe69aecb4b84be52d34814e63176c5ca61f38ee9e6ecda11104653405b5/time_machine-2.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:15ec236b6571730236a193d9d6c11d472432fc6ab54e85eac1c16d98ddcd71bf", size = 16640 }, + { url = "https://files.pythonhosted.org/packages/da/13/27f11be25d7bd298e033b9da93217e5b68309bf724b6e494cdadb471d00d/time_machine-2.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cedc989717c8b44a3881ac3d68ab5a95820448796c550de6a2149ed1525157f0", size = 33721 }, + { url = "https://files.pythonhosted.org/packages/e6/9d/70e4640fed1fd8122204ae825c688d0ef8c04f515ec6bf3c5f3086d6510e/time_machine-2.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9d26d79de1c63a8c6586c75967e09b0ff306aa7e944a1eaddb74595c9b1839ca", size = 31646 }, + { url = "https://files.pythonhosted.org/packages/a1/cb/93bc0e51bea4e171a85151dbba3c3b3f612b50b953cd3076f5b4f0db9e14/time_machine-2.16.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:317b68b56a9c3731e0cf8886e0f94230727159e375988b36c60edce0ddbcb44a", size = 33403 }, + { url = "https://files.pythonhosted.org/packages/89/71/2c6a63ad4fbce3d62d46bbd9ac4433f30bade7f25978ce00815b905bcfcf/time_machine-2.16.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:43e1e18279759897be3293a255d53e6b1cb0364b69d9591d0b80c51e461c94b0", size = 33327 }, + { url = "https://files.pythonhosted.org/packages/68/4e/205c2b26763b8817cd6b8868242843800a1fbf275f2af35f5ba35ff2b01a/time_machine-2.16.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e43adb22def972a29d2b147999b56897116085777a0fea182fd93ee45730611e", size = 31454 }, + { url = "https://files.pythonhosted.org/packages/d7/95/44c1aa3994919f93534244c40cfd2fb9416d7686dc0c8b9b262c751b5118/time_machine-2.16.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0c766bea27a0600e36806d628ebc4b47178b12fcdfb6c24dc0a566a9c06bfe7f", size = 32972 }, + { url = "https://files.pythonhosted.org/packages/d4/ee/75243df9c7cf30f108758e887141a58e6544baaa46e2e647b9ccc56db819/time_machine-2.16.0-cp312-cp312-win32.whl", hash = "sha256:6dae82ab647d107817e013db82223e20a9853fa88543fec853ae326382d03c2e", size = 19078 }, + { url = "https://files.pythonhosted.org/packages/d4/7c/d4e67cc031f9653c92167ccf87d241e3208653d191c96ac79281c273ab92/time_machine-2.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:265462c77dc9576267c3c7f20707780a171a9fdbac93ac22e608c309efd68c33", size = 19923 }, + { url = "https://files.pythonhosted.org/packages/aa/b6/7047226fcb9afefe47fc80f605530535bf71ad99b6797f057abbfa4cd9a5/time_machine-2.16.0-cp312-cp312-win_arm64.whl", hash = "sha256:ef768e14768eebe3bb1196c0dece8e14c1c6991605721214a0c3c68cf77eb216", size = 18003 }, + { url = "https://files.pythonhosted.org/packages/a6/18/3087d0eb185cedbc82385f46bf16032ec7102a0e070205a2c88c4ecf9952/time_machine-2.16.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7751bf745d54e9e8b358c0afa332815da9b8a6194b26d0fd62876ab6c4d5c9c0", size = 20209 }, + { url = "https://files.pythonhosted.org/packages/03/a3/fcc3eaf69390402ecf491d718e533b6d0e06d944d77fc8d87be3a2839102/time_machine-2.16.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1784edf173ca840ba154de6eed000b5727f65ab92972c2f88cec5c4d6349c5f2", size = 16681 }, + { url = "https://files.pythonhosted.org/packages/a2/96/8b76d264014bf9dc21873218de50d67223c71736f87fe6c65e582f7c29ac/time_machine-2.16.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f5876a5682ce1f517e55d7ace2383432627889f6f7e338b961f99d684fd9e8d", size = 33768 }, + { url = "https://files.pythonhosted.org/packages/5c/13/59ae8259be02b6c657ef6e3b6952bf274b43849f6f35cc61a576c68ce301/time_machine-2.16.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:806672529a2e255cd901f244c9033767dc1fa53466d0d3e3e49565a1572a64fe", size = 31685 }, + { url = "https://files.pythonhosted.org/packages/3e/c1/9f142beb4d373a2a01ebb58d5117289315baa5131d880ec804db49e94bf7/time_machine-2.16.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:667b150fedb54acdca2a4bea5bf6da837b43e6dd12857301b48191f8803ba93f", size = 33447 }, + { url = "https://files.pythonhosted.org/packages/95/f7/ed9ecd93c2d38dca77d0a28e070020f3ce0fb23e0d4a6edb14bcfffa5526/time_machine-2.16.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:da3ae1028af240c0c46c79adf9c1acffecc6ed1701f2863b8132f5ceae6ae4b5", size = 33408 }, + { url = "https://files.pythonhosted.org/packages/91/40/d0d274d70fa2c4cad531745deb8c81346365beb0a2736be05a3acde8b94a/time_machine-2.16.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:520a814ea1b2706c89ab260a54023033d3015abef25c77873b83e3d7c1fafbb2", size = 31526 }, + { url = "https://files.pythonhosted.org/packages/1d/ba/a27cdbb324d9a6d779cde0d514d47b696b5a6a653705d4b511fd65ef1514/time_machine-2.16.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8243664438bb468408b29c6865958662d75e51f79c91842d2794fa22629eb697", size = 33042 }, + { url = "https://files.pythonhosted.org/packages/72/63/64e9156c9e38c18720d0cc41378168635241de44013ffe3dd5b099447eb0/time_machine-2.16.0-cp313-cp313-win32.whl", hash = "sha256:32d445ce20d25c60ab92153c073942b0bac9815bfbfd152ce3dcc225d15ce988", size = 19108 }, + { url = "https://files.pythonhosted.org/packages/3d/40/27f5738fbd50b78dcc0682c14417eac5a49ccf430525dd0c5a058be125a2/time_machine-2.16.0-cp313-cp313-win_amd64.whl", hash = "sha256:f6927dda86425f97ffda36131f297b1a601c64a6ee6838bfa0e6d3149c2f0d9f", size = 19935 }, + { url = "https://files.pythonhosted.org/packages/35/75/c4d8b2f0fe7dac22854d88a9c509d428e78ac4bf284bc54cfe83f75cc13b/time_machine-2.16.0-cp313-cp313-win_arm64.whl", hash = "sha256:4d3843143c46dddca6491a954bbd0abfd435681512ac343169560e9bab504129", size = 18047 }, +] + +[[package]] +name = "tokenizers" +version = "0.21.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "huggingface-hub" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/20/41/c2be10975ca37f6ec40d7abd7e98a5213bb04f284b869c1a24e6504fd94d/tokenizers-0.21.0.tar.gz", hash = "sha256:ee0894bf311b75b0c03079f33859ae4b2334d675d4e93f5a4132e1eae2834fe4", size = 343021 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b0/5c/8b09607b37e996dc47e70d6a7b6f4bdd4e4d5ab22fe49d7374565c7fefaf/tokenizers-0.21.0-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:3c4c93eae637e7d2aaae3d376f06085164e1660f89304c0ab2b1d08a406636b2", size = 2647461 }, + { url = "https://files.pythonhosted.org/packages/22/7a/88e58bb297c22633ed1c9d16029316e5b5ac5ee44012164c2edede599a5e/tokenizers-0.21.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:f53ea537c925422a2e0e92a24cce96f6bc5046bbef24a1652a5edc8ba975f62e", size = 2563639 }, + { url = "https://files.pythonhosted.org/packages/f7/14/83429177c19364df27d22bc096d4c2e431e0ba43e56c525434f1f9b0fd00/tokenizers-0.21.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b177fb54c4702ef611de0c069d9169f0004233890e0c4c5bd5508ae05abf193", size = 2903304 }, + { url = "https://files.pythonhosted.org/packages/7e/db/3433eab42347e0dc5452d8fcc8da03f638c9accffefe5a7c78146666964a/tokenizers-0.21.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6b43779a269f4629bebb114e19c3fca0223296ae9fea8bb9a7a6c6fb0657ff8e", size = 2804378 }, + { url = "https://files.pythonhosted.org/packages/57/8b/7da5e6f89736c2ade02816b4733983fca1c226b0c42980b1ae9dc8fcf5cc/tokenizers-0.21.0-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9aeb255802be90acfd363626753fda0064a8df06031012fe7d52fd9a905eb00e", size = 3095488 }, + { url = "https://files.pythonhosted.org/packages/4d/f6/5ed6711093dc2c04a4e03f6461798b12669bc5a17c8be7cce1240e0b5ce8/tokenizers-0.21.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d8b09dbeb7a8d73ee204a70f94fc06ea0f17dcf0844f16102b9f414f0b7463ba", size = 3121410 }, + { url = "https://files.pythonhosted.org/packages/81/42/07600892d48950c5e80505b81411044a2d969368cdc0d929b1c847bf6697/tokenizers-0.21.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:400832c0904f77ce87c40f1a8a27493071282f785724ae62144324f171377273", size = 3388821 }, + { url = "https://files.pythonhosted.org/packages/22/06/69d7ce374747edaf1695a4f61b83570d91cc8bbfc51ccfecf76f56ab4aac/tokenizers-0.21.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e84ca973b3a96894d1707e189c14a774b701596d579ffc7e69debfc036a61a04", size = 3008868 }, + { url = "https://files.pythonhosted.org/packages/c8/69/54a0aee4d576045b49a0eb8bffdc495634309c823bf886042e6f46b80058/tokenizers-0.21.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:eb7202d231b273c34ec67767378cd04c767e967fda12d4a9e36208a34e2f137e", size = 8975831 }, + { url = "https://files.pythonhosted.org/packages/f7/f3/b776061e4f3ebf2905ba1a25d90380aafd10c02d406437a8ba22d1724d76/tokenizers-0.21.0-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:089d56db6782a73a27fd8abf3ba21779f5b85d4a9f35e3b493c7bbcbbf0d539b", size = 8920746 }, + { url = "https://files.pythonhosted.org/packages/d8/ee/ce83d5ec8b6844ad4c3ecfe3333d58ecc1adc61f0878b323a15355bcab24/tokenizers-0.21.0-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:c87ca3dc48b9b1222d984b6b7490355a6fdb411a2d810f6f05977258400ddb74", size = 9161814 }, + { url = "https://files.pythonhosted.org/packages/18/07/3e88e65c0ed28fa93aa0c4d264988428eef3df2764c3126dc83e243cb36f/tokenizers-0.21.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4145505a973116f91bc3ac45988a92e618a6f83eb458f49ea0790df94ee243ff", size = 9357138 }, + { url = "https://files.pythonhosted.org/packages/15/b0/dc4572ca61555fc482ebc933f26cb407c6aceb3dc19c301c68184f8cad03/tokenizers-0.21.0-cp39-abi3-win32.whl", hash = "sha256:eb1702c2f27d25d9dd5b389cc1f2f51813e99f8ca30d9e25348db6585a97e24a", size = 2202266 }, + { url = "https://files.pythonhosted.org/packages/44/69/d21eb253fa91622da25585d362a874fa4710be600f0ea9446d8d0217cec1/tokenizers-0.21.0-cp39-abi3-win_amd64.whl", hash = "sha256:87841da5a25a3a5f70c102de371db120f41873b854ba65e52bccd57df5a3780c", size = 2389192 }, +] + +[[package]] +name = "tomlkit" +version = "0.13.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b1/09/a439bec5888f00a54b8b9f05fa94d7f901d6735ef4e55dcec9bc37b5d8fa/tomlkit-0.13.2.tar.gz", hash = "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79", size = 192885 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/b6/a447b5e4ec71e13871be01ba81f5dfc9d0af7e473da256ff46bc0e24026f/tomlkit-0.13.2-py3-none-any.whl", hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde", size = 37955 }, +] + +[[package]] +name = "tqdm" +version = "4.67.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "platform_system == 'Windows'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540 }, +] + +[[package]] +name = "transformers" +version = "4.47.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "filelock" }, + { name = "huggingface-hub" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pyyaml" }, + { name = "regex" }, + { name = "requests" }, + { name = "safetensors" }, + { name = "tokenizers" }, + { name = "tqdm" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/15/1a/936aeb4f88112f670b604f5748034568dbc2b9bbb457a8d4518b1a15510a/transformers-4.47.1.tar.gz", hash = "sha256:6c29c05a5f595e278481166539202bf8641281536df1c42357ee58a45d0a564a", size = 8707421 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f2/3a/8bdab26e09c5a242182b7ba9152e216d5ab4ae2d78c4298eb4872549cd35/transformers-4.47.1-py3-none-any.whl", hash = "sha256:d2f5d19bb6283cd66c893ec7e6d931d6370bbf1cc93633326ff1f41a40046c9c", size = 10133598 }, +] + +[[package]] +name = "tweepy" +version = "4.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "oauthlib" }, + { name = "requests" }, + { name = "requests-oauthlib" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/75/1c/0db8c3cf9d31bf63853ff612d201060ae78e6db03468a70e063bef0eda62/tweepy-4.14.0.tar.gz", hash = "sha256:1f9f1707d6972de6cff6c5fd90dfe6a449cd2e0d70bd40043ffab01e07a06c8c", size = 88623 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4d/78/ba0065d5636bbf4a35b78c4f81b74e7858b609cdf69e629d6da5c91b9d92/tweepy-4.14.0-py3-none-any.whl", hash = "sha256:db6d3844ccc0c6d27f339f12ba8acc89912a961da513c1ae50fa2be502a56afb", size = 98520 }, +] + +[[package]] +name = "typer" +version = "0.15.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "rich" }, + { name = "shellingham" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cb/ce/dca7b219718afd37a0068f4f2530a727c2b74a8b6e8e0c0080a4c0de4fcd/typer-0.15.1.tar.gz", hash = "sha256:a0588c0a7fa68a1978a069818657778f86abe6ff5ea6abf472f940a08bfe4f0a", size = 99789 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/cc/0a838ba5ca64dc832aa43f727bd586309846b0ffb2ce52422543e6075e8a/typer-0.15.1-py3-none-any.whl", hash = "sha256:7994fb7b8155b64d3402518560648446072864beefd44aa2dc36972a5972e847", size = 44908 }, +] + +[[package]] +name = "types-setuptools" +version = "75.6.0.20241126" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c2/d2/15ede73bc3faf647af2c7bfefa90dde563a4b6bb580b1199f6255463c272/types_setuptools-75.6.0.20241126.tar.gz", hash = "sha256:7bf25ad4be39740e469f9268b6beddda6e088891fa5a27e985c6ce68bf62ace0", size = 48569 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/a0/898a1363592d372d4103b76b7c723d84fcbde5fa4ed0c3a29102805ed7db/types_setuptools-75.6.0.20241126-py3-none-any.whl", hash = "sha256:aaae310a0e27033c1da8457d4d26ac673b0c8a0de7272d6d4708e263f2ea3b9b", size = 72732 }, +] + +[[package]] +name = "typing-extensions" +version = "4.12.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8", size = 85321 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", size = 37438 }, +] + +[[package]] +name = "typing-inspect" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mypy-extensions" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/dc/74/1789779d91f1961fa9438e9a8710cdae6bd138c80d7303996933d117264a/typing_inspect-0.9.0.tar.gz", hash = "sha256:b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78", size = 13825 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/65/f3/107a22063bf27bdccf2024833d3445f4eea42b2e598abfbd46f6a63b6cb0/typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f", size = 8827 }, +] + +[[package]] +name = "tzdata" +version = "2024.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e1/34/943888654477a574a86a98e9896bae89c7aa15078ec29f490fef2f1e5384/tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc", size = 193282 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/ab/7e5f53c3b9d14972843a647d8d7a853969a58aecc7559cb3267302c94774/tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd", size = 346586 }, +] + +[[package]] +name = "ujson" +version = "5.10.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f0/00/3110fd566786bfa542adb7932d62035e0c0ef662a8ff6544b6643b3d6fd7/ujson-5.10.0.tar.gz", hash = "sha256:b3cd8f3c5d8c7738257f1018880444f7b7d9b66232c64649f562d7ba86ad4bc1", size = 7154885 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/23/ec/3c551ecfe048bcb3948725251fb0214b5844a12aa60bee08d78315bb1c39/ujson-5.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a5b366812c90e69d0f379a53648be10a5db38f9d4ad212b60af00bd4048d0f00", size = 55353 }, + { url = "https://files.pythonhosted.org/packages/8d/9f/4731ef0671a0653e9f5ba18db7c4596d8ecbf80c7922dd5fe4150f1aea76/ujson-5.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:502bf475781e8167f0f9d0e41cd32879d120a524b22358e7f205294224c71126", size = 51813 }, + { url = "https://files.pythonhosted.org/packages/1f/2b/44d6b9c1688330bf011f9abfdb08911a9dc74f76926dde74e718d87600da/ujson-5.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b91b5d0d9d283e085e821651184a647699430705b15bf274c7896f23fe9c9d8", size = 51988 }, + { url = "https://files.pythonhosted.org/packages/29/45/f5f5667427c1ec3383478092a414063ddd0dfbebbcc533538fe37068a0a3/ujson-5.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:129e39af3a6d85b9c26d5577169c21d53821d8cf68e079060602e861c6e5da1b", size = 53561 }, + { url = "https://files.pythonhosted.org/packages/26/21/a0c265cda4dd225ec1be595f844661732c13560ad06378760036fc622587/ujson-5.10.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f77b74475c462cb8b88680471193064d3e715c7c6074b1c8c412cb526466efe9", size = 58497 }, + { url = "https://files.pythonhosted.org/packages/28/36/8fde862094fd2342ccc427a6a8584fed294055fdee341661c78660f7aef3/ujson-5.10.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7ec0ca8c415e81aa4123501fee7f761abf4b7f386aad348501a26940beb1860f", size = 997877 }, + { url = "https://files.pythonhosted.org/packages/90/37/9208e40d53baa6da9b6a1c719e0670c3f474c8fc7cc2f1e939ec21c1bc93/ujson-5.10.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ab13a2a9e0b2865a6c6db9271f4b46af1c7476bfd51af1f64585e919b7c07fd4", size = 1140632 }, + { url = "https://files.pythonhosted.org/packages/89/d5/2626c87c59802863d44d19e35ad16b7e658e4ac190b0dead17ff25460b4c/ujson-5.10.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:57aaf98b92d72fc70886b5a0e1a1ca52c2320377360341715dd3933a18e827b1", size = 1043513 }, + { url = "https://files.pythonhosted.org/packages/2f/ee/03662ce9b3f16855770f0d70f10f0978ba6210805aa310c4eebe66d36476/ujson-5.10.0-cp311-cp311-win32.whl", hash = "sha256:2987713a490ceb27edff77fb184ed09acdc565db700ee852823c3dc3cffe455f", size = 38616 }, + { url = "https://files.pythonhosted.org/packages/3e/20/952dbed5895835ea0b82e81a7be4ebb83f93b079d4d1ead93fcddb3075af/ujson-5.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:f00ea7e00447918ee0eff2422c4add4c5752b1b60e88fcb3c067d4a21049a720", size = 42071 }, + { url = "https://files.pythonhosted.org/packages/e8/a6/fd3f8bbd80842267e2d06c3583279555e8354c5986c952385199d57a5b6c/ujson-5.10.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:98ba15d8cbc481ce55695beee9f063189dce91a4b08bc1d03e7f0152cd4bbdd5", size = 55642 }, + { url = "https://files.pythonhosted.org/packages/a8/47/dd03fd2b5ae727e16d5d18919b383959c6d269c7b948a380fdd879518640/ujson-5.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a9d2edbf1556e4f56e50fab7d8ff993dbad7f54bac68eacdd27a8f55f433578e", size = 51807 }, + { url = "https://files.pythonhosted.org/packages/25/23/079a4cc6fd7e2655a473ed9e776ddbb7144e27f04e8fc484a0fb45fe6f71/ujson-5.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6627029ae4f52d0e1a2451768c2c37c0c814ffc04f796eb36244cf16b8e57043", size = 51972 }, + { url = "https://files.pythonhosted.org/packages/04/81/668707e5f2177791869b624be4c06fb2473bf97ee33296b18d1cf3092af7/ujson-5.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8ccb77b3e40b151e20519c6ae6d89bfe3f4c14e8e210d910287f778368bb3d1", size = 53686 }, + { url = "https://files.pythonhosted.org/packages/bd/50/056d518a386d80aaf4505ccf3cee1c40d312a46901ed494d5711dd939bc3/ujson-5.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3caf9cd64abfeb11a3b661329085c5e167abbe15256b3b68cb5d914ba7396f3", size = 58591 }, + { url = "https://files.pythonhosted.org/packages/fc/d6/aeaf3e2d6fb1f4cfb6bf25f454d60490ed8146ddc0600fae44bfe7eb5a72/ujson-5.10.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6e32abdce572e3a8c3d02c886c704a38a1b015a1fb858004e03d20ca7cecbb21", size = 997853 }, + { url = "https://files.pythonhosted.org/packages/f8/d5/1f2a5d2699f447f7d990334ca96e90065ea7f99b142ce96e85f26d7e78e2/ujson-5.10.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a65b6af4d903103ee7b6f4f5b85f1bfd0c90ba4eeac6421aae436c9988aa64a2", size = 1140689 }, + { url = "https://files.pythonhosted.org/packages/f2/2c/6990f4ccb41ed93744aaaa3786394bca0875503f97690622f3cafc0adfde/ujson-5.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:604a046d966457b6cdcacc5aa2ec5314f0e8c42bae52842c1e6fa02ea4bda42e", size = 1043576 }, + { url = "https://files.pythonhosted.org/packages/14/f5/a2368463dbb09fbdbf6a696062d0c0f62e4ae6fa65f38f829611da2e8fdd/ujson-5.10.0-cp312-cp312-win32.whl", hash = "sha256:6dea1c8b4fc921bf78a8ff00bbd2bfe166345f5536c510671bccececb187c80e", size = 38764 }, + { url = "https://files.pythonhosted.org/packages/59/2d/691f741ffd72b6c84438a93749ac57bf1a3f217ac4b0ea4fd0e96119e118/ujson-5.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:38665e7d8290188b1e0d57d584eb8110951a9591363316dd41cf8686ab1d0abc", size = 42211 }, + { url = "https://files.pythonhosted.org/packages/0d/69/b3e3f924bb0e8820bb46671979770c5be6a7d51c77a66324cdb09f1acddb/ujson-5.10.0-cp313-cp313-macosx_10_9_x86_64.whl", hash = "sha256:618efd84dc1acbd6bff8eaa736bb6c074bfa8b8a98f55b61c38d4ca2c1f7f287", size = 55646 }, + { url = "https://files.pythonhosted.org/packages/32/8a/9b748eb543c6cabc54ebeaa1f28035b1bd09c0800235b08e85990734c41e/ujson-5.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:38d5d36b4aedfe81dfe251f76c0467399d575d1395a1755de391e58985ab1c2e", size = 51806 }, + { url = "https://files.pythonhosted.org/packages/39/50/4b53ea234413b710a18b305f465b328e306ba9592e13a791a6a6b378869b/ujson-5.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67079b1f9fb29ed9a2914acf4ef6c02844b3153913eb735d4bf287ee1db6e557", size = 51975 }, + { url = "https://files.pythonhosted.org/packages/b4/9d/8061934f960cdb6dd55f0b3ceeff207fcc48c64f58b43403777ad5623d9e/ujson-5.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7d0e0ceeb8fe2468c70ec0c37b439dd554e2aa539a8a56365fd761edb418988", size = 53693 }, + { url = "https://files.pythonhosted.org/packages/f5/be/7bfa84b28519ddbb67efc8410765ca7da55e6b93aba84d97764cd5794dbc/ujson-5.10.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:59e02cd37bc7c44d587a0ba45347cc815fb7a5fe48de16bf05caa5f7d0d2e816", size = 58594 }, + { url = "https://files.pythonhosted.org/packages/48/eb/85d465abafb2c69d9699cfa5520e6e96561db787d36c677370e066c7e2e7/ujson-5.10.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2a890b706b64e0065f02577bf6d8ca3b66c11a5e81fb75d757233a38c07a1f20", size = 997853 }, + { url = "https://files.pythonhosted.org/packages/9f/76/2a63409fc05d34dd7d929357b7a45e3a2c96f22b4225cd74becd2ba6c4cb/ujson-5.10.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:621e34b4632c740ecb491efc7f1fcb4f74b48ddb55e65221995e74e2d00bbff0", size = 1140694 }, + { url = "https://files.pythonhosted.org/packages/45/ed/582c4daba0f3e1688d923b5cb914ada1f9defa702df38a1916c899f7c4d1/ujson-5.10.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b9500e61fce0cfc86168b248104e954fead61f9be213087153d272e817ec7b4f", size = 1043580 }, + { url = "https://files.pythonhosted.org/packages/d7/0c/9837fece153051e19c7bade9f88f9b409e026b9525927824cdf16293b43b/ujson-5.10.0-cp313-cp313-win32.whl", hash = "sha256:4c4fc16f11ac1612f05b6f5781b384716719547e142cfd67b65d035bd85af165", size = 38766 }, + { url = "https://files.pythonhosted.org/packages/d7/72/6cb6728e2738c05bbe9bd522d6fc79f86b9a28402f38663e85a28fddd4a0/ujson-5.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:4573fd1695932d4f619928fd09d5d03d917274381649ade4328091ceca175539", size = 42212 }, +] + +[[package]] +name = "unstructured" +version = "0.16.11" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "backoff" }, + { name = "beautifulsoup4" }, + { name = "chardet" }, + { name = "dataclasses-json" }, + { name = "emoji" }, + { name = "filetype" }, + { name = "html5lib" }, + { name = "langdetect" }, + { name = "lxml" }, + { name = "nltk" }, + { name = "numpy" }, + { name = "psutil" }, + { name = "python-iso639" }, + { name = "python-magic" }, + { name = "python-oxmsg" }, + { name = "rapidfuzz" }, + { name = "requests" }, + { name = "tqdm" }, + { name = "typing-extensions" }, + { name = "unstructured-client" }, + { name = "wrapt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/08/c3/5bd80074a63c972f0f9adac5276955f6cbcceb71ac05ae72cc524ad93813/unstructured-0.16.11.tar.gz", hash = "sha256:33ebf68aae11ce33c8a96335296557b5abd8ba96eaba3e5a1554c0b9eee40bb5", size = 1664314 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/59/67/71d1e61e8127dd9ab66117d3c5ebfc6f87c1d00bf13ff3bcc837feed6e09/unstructured-0.16.11-py3-none-any.whl", hash = "sha256:a92d5bc2c2b7bb23369641fb7a7f0daba1775639199306ce4cd83ca564a03763", size = 1748042 }, +] + +[package.optional-dependencies] +csv = [ + { name = "pandas" }, +] +doc = [ + { name = "python-docx" }, +] +docx = [ + { name = "python-docx" }, +] +epub = [ + { name = "pypandoc" }, +] +md = [ + { name = "markdown" }, +] +odt = [ + { name = "pypandoc" }, + { name = "python-docx" }, +] +org = [ + { name = "pypandoc" }, +] +ppt = [ + { name = "python-pptx" }, +] +pptx = [ + { name = "python-pptx" }, +] +rst = [ + { name = "pypandoc" }, +] +rtf = [ + { name = "pypandoc" }, +] +tsv = [ + { name = "pandas" }, +] +xlsx = [ + { name = "networkx" }, + { name = "openpyxl" }, + { name = "pandas" }, + { name = "xlrd" }, +] + +[[package]] +name = "unstructured-client" +version = "0.25.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "cryptography" }, + { name = "dataclasses-json" }, + { name = "deepdiff" }, + { name = "httpx" }, + { name = "idna" }, + { name = "jsonpath-python" }, + { name = "marshmallow" }, + { name = "mypy-extensions" }, + { name = "nest-asyncio" }, + { name = "packaging" }, + { name = "pypdf" }, + { name = "python-dateutil" }, + { name = "requests" }, + { name = "requests-toolbelt" }, + { name = "six" }, + { name = "typing-extensions" }, + { name = "typing-inspect" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cf/b2/1214a9391951754a770d6be81a67093e827a198f610dbaa971fea2b65a3a/unstructured-client-0.25.9.tar.gz", hash = "sha256:fcc461623f58fefb0e22508e28bf653a8f6934b9779cb4a90dd68d77a39fb5b2", size = 39986 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/42/71/f0e594858f251ee2ac2edfe532714fd47afcc4e9294a3862a7c19ec13cf6/unstructured_client-0.25.9-py3-none-any.whl", hash = "sha256:c984c01878c8fc243be7c842467d1113a194d885ab6396ae74258ee42717c5b5", size = 45296 }, +] + +[[package]] +name = "urllib3" +version = "2.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ed/63/22ba4ebfe7430b76388e7cd448d5478814d3032121827c12a2cc287e2260/urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9", size = 300677 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/d9/5f4c13cecde62396b0d3fe530a50ccea91e7dfc1ccf0e09c228841bb5ba8/urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac", size = 126338 }, +] + +[[package]] +name = "uvicorn" +version = "0.22.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c6/dd/0d3bab50ab4ef8bec849f89fec2adc2fabcc397018c30e57d9f0d4009c5e/uvicorn-0.22.0.tar.gz", hash = "sha256:79277ae03db57ce7d9aa0567830bbb51d7a612f54d6e1e3e92da3ef24c2c8ed8", size = 37688 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ad/bd/d47ee02312640fcf26c7e1c807402d5c5eab468571153a94ec8f7ada0e46/uvicorn-0.22.0-py3-none-any.whl", hash = "sha256:e9434d3bbf05f310e762147f769c9f21235ee118ba2d2bf1155a7196448bd996", size = 58345 }, +] + +[[package]] +name = "validators" +version = "0.33.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5d/af/5ad4fed95276e3eb7628d858c88cd205799bcad847e46223760a3129cbb1/validators-0.33.0.tar.gz", hash = "sha256:535867e9617f0100e676a1257ba1e206b9bfd847ddc171e4d44811f07ff0bfbf", size = 70741 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/22/91b4bd36df27e651daedd93d03d5d3bb6029fdb0b55494e45ee46c36c570/validators-0.33.0-py3-none-any.whl", hash = "sha256:134b586a98894f8139865953899fc2daeb3d0c35569552c5518f089ae43ed075", size = 43298 }, +] + +[[package]] +name = "weaviate-client" +version = "4.6.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "authlib" }, + { name = "grpcio" }, + { name = "grpcio-health-checking" }, + { name = "grpcio-tools" }, + { name = "httpx" }, + { name = "pydantic" }, + { name = "requests" }, + { name = "validators" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/24/01/96606279fb32b5f48bef649cd36205de9d4b63649d0014c66c8267170af1/weaviate_client-4.6.7.tar.gz", hash = "sha256:202b32e160536f5f44e4a635d30c3d3a0790b1a7ff997f5e243919d1ac5b68a1", size = 634078 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/03/ec9746f437e1247e2f66dbd1e4ef157d6d2df121dafdcea74ac4d08fa4ea/weaviate_client-4.6.7-py3-none-any.whl", hash = "sha256:8793de35264cab33a84fe8cb8c422a257fe4d8334657aaddd8ead853da3fb34a", size = 328880 }, +] + +[[package]] +name = "webencodings" +version = "0.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47/webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923", size = 9721 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", size = 11774 }, +] + +[[package]] +name = "win-precise-time" +version = "1.4.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9e/b0/21547e16a47206ccdd15769bf65e143ade1ffae67f0881c855f76e44e9fa/win-precise-time-1.4.2.tar.gz", hash = "sha256:89274785cbc5f2997e01675206da3203835a442c60fd97798415c6b3c179c0b9", size = 7982 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bb/d6/a48717649fea2d7a6679db86dae9ae4b12078c7a48aa89a8f14a360f29d0/win_precise_time-1.4.2-cp311-cp311-win32.whl", hash = "sha256:59272655ad6f36910d0b585969402386fa627fca3be24acc9a21be1d550e5db8", size = 14703 }, + { url = "https://files.pythonhosted.org/packages/f9/9c/46d69220d468c82ca2044284c5a8089705c5eb66be416abcbba156365a14/win_precise_time-1.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:0897bb055f19f3b4336e2ba6bee0115ac20fd7ec615a6d736632e2df77f8851a", size = 14912 }, + { url = "https://files.pythonhosted.org/packages/2e/96/55a14b5c0e90439951f4a72672223bba81a5f882033c5850f8a6c7f4308b/win_precise_time-1.4.2-cp312-cp312-win32.whl", hash = "sha256:0210dcea88a520c91de1708ae4c881e3c0ddc956daa08b9eabf2b7c35f3109f5", size = 14694 }, + { url = "https://files.pythonhosted.org/packages/17/19/7ea9a22a69fc23d5ca02e8edf65e4a335a210497794af1af0ef8fda91fa0/win_precise_time-1.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:85670f77cc8accd8f1e6d05073999f77561c23012a9ee988cbd44bb7ce655062", size = 14913 }, +] + +[[package]] +name = "wrapt" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/24/a1/fc03dca9b0432725c2e8cdbf91a349d2194cf03d8523c124faebe581de09/wrapt-1.17.0.tar.gz", hash = "sha256:16187aa2317c731170a88ef35e8937ae0f533c402872c1ee5e6d079fcf320801", size = 55542 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/40/def56538acddc2f764c157d565b9f989072a1d2f2a8e384324e2e104fc7d/wrapt-1.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:74bf625b1b4caaa7bad51d9003f8b07a468a704e0644a700e936c357c17dd45a", size = 38766 }, + { url = "https://files.pythonhosted.org/packages/89/e2/8c299f384ae4364193724e2adad99f9504599d02a73ec9199bf3f406549d/wrapt-1.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f2a28eb35cf99d5f5bd12f5dd44a0f41d206db226535b37b0c60e9da162c3ed", size = 83730 }, + { url = "https://files.pythonhosted.org/packages/29/ef/fcdb776b12df5ea7180d065b28fa6bb27ac785dddcd7202a0b6962bbdb47/wrapt-1.17.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:81b1289e99cf4bad07c23393ab447e5e96db0ab50974a280f7954b071d41b489", size = 75470 }, + { url = "https://files.pythonhosted.org/packages/55/b5/698bd0bf9fbb3ddb3a2feefbb7ad0dea1205f5d7d05b9cbab54f5db731aa/wrapt-1.17.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f2939cd4a2a52ca32bc0b359015718472d7f6de870760342e7ba295be9ebaf9", size = 83168 }, + { url = "https://files.pythonhosted.org/packages/ce/07/701a5cee28cb4d5df030d4b2649319e36f3d9fdd8000ef1d84eb06b9860d/wrapt-1.17.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6a9653131bda68a1f029c52157fd81e11f07d485df55410401f745007bd6d339", size = 82307 }, + { url = "https://files.pythonhosted.org/packages/42/92/c48ba92cda6f74cb914dc3c5bba9650dc80b790e121c4b987f3a46b028f5/wrapt-1.17.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4e4b4385363de9052dac1a67bfb535c376f3d19c238b5f36bddc95efae15e12d", size = 75101 }, + { url = "https://files.pythonhosted.org/packages/8a/0a/9276d3269334138b88a2947efaaf6335f61d547698e50dff672ade24f2c6/wrapt-1.17.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bdf62d25234290db1837875d4dceb2151e4ea7f9fff2ed41c0fde23ed542eb5b", size = 81835 }, + { url = "https://files.pythonhosted.org/packages/b9/4c/39595e692753ef656ea94b51382cc9aea662fef59d7910128f5906486f0e/wrapt-1.17.0-cp311-cp311-win32.whl", hash = "sha256:5d8fd17635b262448ab8f99230fe4dac991af1dabdbb92f7a70a6afac8a7e346", size = 36412 }, + { url = "https://files.pythonhosted.org/packages/63/bb/c293a67fb765a2ada48f48cd0f2bb957da8161439da4c03ea123b9894c02/wrapt-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:92a3d214d5e53cb1db8b015f30d544bc9d3f7179a05feb8f16df713cecc2620a", size = 38744 }, + { url = "https://files.pythonhosted.org/packages/85/82/518605474beafff11f1a34759f6410ab429abff9f7881858a447e0d20712/wrapt-1.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:89fc28495896097622c3fc238915c79365dd0ede02f9a82ce436b13bd0ab7569", size = 38904 }, + { url = "https://files.pythonhosted.org/packages/80/6c/17c3b2fed28edfd96d8417c865ef0b4c955dc52c4e375d86f459f14340f1/wrapt-1.17.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:875d240fdbdbe9e11f9831901fb8719da0bd4e6131f83aa9f69b96d18fae7504", size = 88622 }, + { url = "https://files.pythonhosted.org/packages/4a/11/60ecdf3b0fd3dca18978d89acb5d095a05f23299216e925fcd2717c81d93/wrapt-1.17.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5ed16d95fd142e9c72b6c10b06514ad30e846a0d0917ab406186541fe68b451", size = 80920 }, + { url = "https://files.pythonhosted.org/packages/d2/50/dbef1a651578a3520d4534c1e434989e3620380c1ad97e309576b47f0ada/wrapt-1.17.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18b956061b8db634120b58f668592a772e87e2e78bc1f6a906cfcaa0cc7991c1", size = 89170 }, + { url = "https://files.pythonhosted.org/packages/44/a2/78c5956bf39955288c9e0dd62e807b308c3aa15a0f611fbff52aa8d6b5ea/wrapt-1.17.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:daba396199399ccabafbfc509037ac635a6bc18510ad1add8fd16d4739cdd106", size = 86748 }, + { url = "https://files.pythonhosted.org/packages/99/49/2ee413c78fc0bdfebe5bee590bf3becdc1fab0096a7a9c3b5c9666b2415f/wrapt-1.17.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4d63f4d446e10ad19ed01188d6c1e1bb134cde8c18b0aa2acfd973d41fcc5ada", size = 79734 }, + { url = "https://files.pythonhosted.org/packages/c0/8c/4221b7b270e36be90f0930fe15a4755a6ea24093f90b510166e9ed7861ea/wrapt-1.17.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8a5e7cc39a45fc430af1aefc4d77ee6bad72c5bcdb1322cfde852c15192b8bd4", size = 87552 }, + { url = "https://files.pythonhosted.org/packages/4c/6b/1aaccf3efe58eb95e10ce8e77c8909b7a6b0da93449a92c4e6d6d10b3a3d/wrapt-1.17.0-cp312-cp312-win32.whl", hash = "sha256:0a0a1a1ec28b641f2a3a2c35cbe86c00051c04fffcfcc577ffcdd707df3f8635", size = 36647 }, + { url = "https://files.pythonhosted.org/packages/b3/4f/243f88ac49df005b9129194c6511b3642818b3e6271ddea47a15e2ee4934/wrapt-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:3c34f6896a01b84bab196f7119770fd8466c8ae3dfa73c59c0bb281e7b588ce7", size = 38830 }, + { url = "https://files.pythonhosted.org/packages/67/9c/38294e1bb92b055222d1b8b6591604ca4468b77b1250f59c15256437644f/wrapt-1.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:714c12485aa52efbc0fc0ade1e9ab3a70343db82627f90f2ecbc898fdf0bb181", size = 38904 }, + { url = "https://files.pythonhosted.org/packages/78/b6/76597fb362cbf8913a481d41b14b049a8813cd402a5d2f84e57957c813ae/wrapt-1.17.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da427d311782324a376cacb47c1a4adc43f99fd9d996ffc1b3e8529c4074d393", size = 88608 }, + { url = "https://files.pythonhosted.org/packages/bc/69/b500884e45b3881926b5f69188dc542fb5880019d15c8a0df1ab1dfda1f7/wrapt-1.17.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba1739fb38441a27a676f4de4123d3e858e494fac05868b7a281c0a383c098f4", size = 80879 }, + { url = "https://files.pythonhosted.org/packages/52/31/f4cc58afe29eab8a50ac5969963010c8b60987e719c478a5024bce39bc42/wrapt-1.17.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e711fc1acc7468463bc084d1b68561e40d1eaa135d8c509a65dd534403d83d7b", size = 89119 }, + { url = "https://files.pythonhosted.org/packages/aa/9c/05ab6bf75dbae7a9d34975fb6ee577e086c1c26cde3b6cf6051726d33c7c/wrapt-1.17.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:140ea00c87fafc42739bd74a94a5a9003f8e72c27c47cd4f61d8e05e6dec8721", size = 86778 }, + { url = "https://files.pythonhosted.org/packages/0e/6c/4b8d42e3db355603d35fe5c9db79c28f2472a6fd1ccf4dc25ae46739672a/wrapt-1.17.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:73a96fd11d2b2e77d623a7f26e004cc31f131a365add1ce1ce9a19e55a1eef90", size = 79793 }, + { url = "https://files.pythonhosted.org/packages/69/23/90e3a2ee210c0843b2c2a49b3b97ffcf9cad1387cb18cbeef9218631ed5a/wrapt-1.17.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0b48554952f0f387984da81ccfa73b62e52817a4386d070c75e4db7d43a28c4a", size = 87606 }, + { url = "https://files.pythonhosted.org/packages/5f/06/3683126491ca787d8d71d8d340e775d40767c5efedb35039d987203393b7/wrapt-1.17.0-cp313-cp313-win32.whl", hash = "sha256:498fec8da10e3e62edd1e7368f4b24aa362ac0ad931e678332d1b209aec93045", size = 36651 }, + { url = "https://files.pythonhosted.org/packages/f1/bc/3bf6d2ca0d2c030d324ef9272bea0a8fdaff68f3d1fa7be7a61da88e51f7/wrapt-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:fd136bb85f4568fffca995bd3c8d52080b1e5b225dbf1c2b17b66b4c5fa02838", size = 38835 }, + { url = "https://files.pythonhosted.org/packages/ce/b5/251165c232d87197a81cd362eeb5104d661a2dd3aa1f0b33e4bf61dda8b8/wrapt-1.17.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:17fcf043d0b4724858f25b8826c36e08f9fb2e475410bece0ec44a22d533da9b", size = 40146 }, + { url = "https://files.pythonhosted.org/packages/89/33/1e1bdd3e866eeb73d8c4755db1ceb8a80d5bd51ee4648b3f2247adec4e67/wrapt-1.17.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4a557d97f12813dc5e18dad9fa765ae44ddd56a672bb5de4825527c847d6379", size = 113444 }, + { url = "https://files.pythonhosted.org/packages/9f/7c/94f53b065a43f5dc1fbdd8b80fd8f41284315b543805c956619c0b8d92f0/wrapt-1.17.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0229b247b0fc7dee0d36176cbb79dbaf2a9eb7ecc50ec3121f40ef443155fb1d", size = 101246 }, + { url = "https://files.pythonhosted.org/packages/62/5d/640360baac6ea6018ed5e34e6e80e33cfbae2aefde24f117587cd5efd4b7/wrapt-1.17.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8425cfce27b8b20c9b89d77fb50e368d8306a90bf2b6eef2cdf5cd5083adf83f", size = 109320 }, + { url = "https://files.pythonhosted.org/packages/e3/cf/6c7a00ae86a2e9482c91170aefe93f4ccda06c1ac86c4de637c69133da59/wrapt-1.17.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9c900108df470060174108012de06d45f514aa4ec21a191e7ab42988ff42a86c", size = 110193 }, + { url = "https://files.pythonhosted.org/packages/cd/cc/aa718df0d20287e8f953ce0e2f70c0af0fba1d3c367db7ee8bdc46ea7003/wrapt-1.17.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:4e547b447073fc0dbfcbff15154c1be8823d10dab4ad401bdb1575e3fdedff1b", size = 100460 }, + { url = "https://files.pythonhosted.org/packages/f7/16/9f3ac99fe1f6caaa789d67b4e3c562898b532c250769f5255fa8b8b93983/wrapt-1.17.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:914f66f3b6fc7b915d46c1cc424bc2441841083de01b90f9e81109c9759e43ab", size = 106347 }, + { url = "https://files.pythonhosted.org/packages/64/85/c77a331b2c06af49a687f8b926fc2d111047a51e6f0b0a4baa01ff3a673a/wrapt-1.17.0-cp313-cp313t-win32.whl", hash = "sha256:a4192b45dff127c7d69b3bdfb4d3e47b64179a0b9900b6351859f3001397dabf", size = 37971 }, + { url = "https://files.pythonhosted.org/packages/05/9b/b2469f8be9efed24283fd7b9eeb8e913e9bc0715cf919ea8645e428ab7af/wrapt-1.17.0-cp313-cp313t-win_amd64.whl", hash = "sha256:4f643df3d4419ea3f856c5c3f40fec1d65ea2e89ec812c83f7767c8730f9827a", size = 40755 }, + { url = "https://files.pythonhosted.org/packages/4b/d9/a8ba5e9507a9af1917285d118388c5eb7a81834873f45df213a6fe923774/wrapt-1.17.0-py3-none-any.whl", hash = "sha256:d2c63b93548eda58abf5188e505ffed0229bf675f7c3090f8e36ad55b8cbc371", size = 23592 }, +] + +[[package]] +name = "xlrd" +version = "2.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a6/b3/19a2540d21dea5f908304375bd43f5ed7a4c28a370dc9122c565423e6b44/xlrd-2.0.1.tar.gz", hash = "sha256:f72f148f54442c6b056bf931dbc34f986fd0c3b0b6b5a58d013c9aef274d0c88", size = 100259 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/0c/c2a72d51fe56e08a08acc85d13013558a2d793028ae7385448a6ccdfae64/xlrd-2.0.1-py2.py3-none-any.whl", hash = "sha256:6a33ee89877bd9abc1158129f6e94be74e2679636b8a205b43b85206c3f0bbdd", size = 96531 }, +] + +[[package]] +name = "xlsxwriter" +version = "3.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a6/c3/b36fa44a0610a0f65d2e65ba6a262cbe2554b819f1449731971f7c16ea3c/XlsxWriter-3.2.0.tar.gz", hash = "sha256:9977d0c661a72866a61f9f7a809e25ebbb0fb7036baa3b9fe74afcfca6b3cb8c", size = 198732 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/ea/53d1fe468e63e092cf16e2c18d16f50c29851242f9dd12d6a66e0d7f0d02/XlsxWriter-3.2.0-py3-none-any.whl", hash = "sha256:ecfd5405b3e0e228219bcaf24c2ca0915e012ca9464a14048021d21a995d490e", size = 159925 }, +] + +[[package]] +name = "xxhash" +version = "3.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/00/5e/d6e5258d69df8b4ed8c83b6664f2b47d30d2dec551a29ad72a6c69eafd31/xxhash-3.5.0.tar.gz", hash = "sha256:84f2caddf951c9cbf8dc2e22a89d4ccf5d86391ac6418fe81e3c67d0cf60b45f", size = 84241 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b8/c7/afed0f131fbda960ff15eee7f304fa0eeb2d58770fade99897984852ef23/xxhash-3.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:02c2e816896dc6f85922ced60097bcf6f008dedfc5073dcba32f9c8dd786f3c1", size = 31969 }, + { url = "https://files.pythonhosted.org/packages/8c/0c/7c3bc6d87e5235672fcc2fb42fd5ad79fe1033925f71bf549ee068c7d1ca/xxhash-3.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6027dcd885e21581e46d3c7f682cfb2b870942feeed58a21c29583512c3f09f8", size = 30800 }, + { url = "https://files.pythonhosted.org/packages/04/9e/01067981d98069eec1c20201f8c145367698e9056f8bc295346e4ea32dd1/xxhash-3.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1308fa542bbdbf2fa85e9e66b1077eea3a88bef38ee8a06270b4298a7a62a166", size = 221566 }, + { url = "https://files.pythonhosted.org/packages/d4/09/d4996de4059c3ce5342b6e1e6a77c9d6c91acce31f6ed979891872dd162b/xxhash-3.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c28b2fdcee797e1c1961cd3bcd3d545cab22ad202c846235197935e1df2f8ef7", size = 201214 }, + { url = "https://files.pythonhosted.org/packages/62/f5/6d2dc9f8d55a7ce0f5e7bfef916e67536f01b85d32a9fbf137d4cadbee38/xxhash-3.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:924361811732ddad75ff23e90efd9ccfda4f664132feecb90895bade6a1b4623", size = 429433 }, + { url = "https://files.pythonhosted.org/packages/d9/72/9256303f10e41ab004799a4aa74b80b3c5977d6383ae4550548b24bd1971/xxhash-3.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89997aa1c4b6a5b1e5b588979d1da048a3c6f15e55c11d117a56b75c84531f5a", size = 194822 }, + { url = "https://files.pythonhosted.org/packages/34/92/1a3a29acd08248a34b0e6a94f4e0ed9b8379a4ff471f1668e4dce7bdbaa8/xxhash-3.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:685c4f4e8c59837de103344eb1c8a3851f670309eb5c361f746805c5471b8c88", size = 208538 }, + { url = "https://files.pythonhosted.org/packages/53/ad/7fa1a109663366de42f724a1cdb8e796a260dbac45047bce153bc1e18abf/xxhash-3.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dbd2ecfbfee70bc1a4acb7461fa6af7748ec2ab08ac0fa298f281c51518f982c", size = 216953 }, + { url = "https://files.pythonhosted.org/packages/35/02/137300e24203bf2b2a49b48ce898ecce6fd01789c0fcd9c686c0a002d129/xxhash-3.5.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:25b5a51dc3dfb20a10833c8eee25903fd2e14059e9afcd329c9da20609a307b2", size = 203594 }, + { url = "https://files.pythonhosted.org/packages/23/03/aeceb273933d7eee248c4322b98b8e971f06cc3880e5f7602c94e5578af5/xxhash-3.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a8fb786fb754ef6ff8c120cb96629fb518f8eb5a61a16aac3a979a9dbd40a084", size = 210971 }, + { url = "https://files.pythonhosted.org/packages/e3/64/ed82ec09489474cbb35c716b189ddc1521d8b3de12b1b5ab41ce7f70253c/xxhash-3.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:a905ad00ad1e1c34fe4e9d7c1d949ab09c6fa90c919860c1534ff479f40fd12d", size = 415050 }, + { url = "https://files.pythonhosted.org/packages/71/43/6db4c02dcb488ad4e03bc86d70506c3d40a384ee73c9b5c93338eb1f3c23/xxhash-3.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:963be41bcd49f53af6d795f65c0da9b4cc518c0dd9c47145c98f61cb464f4839", size = 192216 }, + { url = "https://files.pythonhosted.org/packages/22/6d/db4abec29e7a567455344433d095fdb39c97db6955bb4a2c432e486b4d28/xxhash-3.5.0-cp311-cp311-win32.whl", hash = "sha256:109b436096d0a2dd039c355fa3414160ec4d843dfecc64a14077332a00aeb7da", size = 30120 }, + { url = "https://files.pythonhosted.org/packages/52/1c/fa3b61c0cf03e1da4767213672efe186b1dfa4fc901a4a694fb184a513d1/xxhash-3.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:b702f806693201ad6c0a05ddbbe4c8f359626d0b3305f766077d51388a6bac58", size = 30003 }, + { url = "https://files.pythonhosted.org/packages/6b/8e/9e6fc572acf6e1cc7ccb01973c213f895cb8668a9d4c2b58a99350da14b7/xxhash-3.5.0-cp311-cp311-win_arm64.whl", hash = "sha256:c4dcb4120d0cc3cc448624147dba64e9021b278c63e34a38789b688fd0da9bf3", size = 26777 }, + { url = "https://files.pythonhosted.org/packages/07/0e/1bfce2502c57d7e2e787600b31c83535af83746885aa1a5f153d8c8059d6/xxhash-3.5.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:14470ace8bd3b5d51318782cd94e6f94431974f16cb3b8dc15d52f3b69df8e00", size = 31969 }, + { url = "https://files.pythonhosted.org/packages/3f/d6/8ca450d6fe5b71ce521b4e5db69622383d039e2b253e9b2f24f93265b52c/xxhash-3.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:59aa1203de1cb96dbeab595ded0ad0c0056bb2245ae11fac11c0ceea861382b9", size = 30787 }, + { url = "https://files.pythonhosted.org/packages/5b/84/de7c89bc6ef63d750159086a6ada6416cc4349eab23f76ab870407178b93/xxhash-3.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08424f6648526076e28fae6ea2806c0a7d504b9ef05ae61d196d571e5c879c84", size = 220959 }, + { url = "https://files.pythonhosted.org/packages/fe/86/51258d3e8a8545ff26468c977101964c14d56a8a37f5835bc0082426c672/xxhash-3.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:61a1ff00674879725b194695e17f23d3248998b843eb5e933007ca743310f793", size = 200006 }, + { url = "https://files.pythonhosted.org/packages/02/0a/96973bd325412feccf23cf3680fd2246aebf4b789122f938d5557c54a6b2/xxhash-3.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2f2c61bee5844d41c3eb015ac652a0229e901074951ae48581d58bfb2ba01be", size = 428326 }, + { url = "https://files.pythonhosted.org/packages/11/a7/81dba5010f7e733de88af9555725146fc133be97ce36533867f4c7e75066/xxhash-3.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d32a592cac88d18cc09a89172e1c32d7f2a6e516c3dfde1b9adb90ab5df54a6", size = 194380 }, + { url = "https://files.pythonhosted.org/packages/fb/7d/f29006ab398a173f4501c0e4977ba288f1c621d878ec217b4ff516810c04/xxhash-3.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70dabf941dede727cca579e8c205e61121afc9b28516752fd65724be1355cc90", size = 207934 }, + { url = "https://files.pythonhosted.org/packages/8a/6e/6e88b8f24612510e73d4d70d9b0c7dff62a2e78451b9f0d042a5462c8d03/xxhash-3.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e5d0ddaca65ecca9c10dcf01730165fd858533d0be84c75c327487c37a906a27", size = 216301 }, + { url = "https://files.pythonhosted.org/packages/af/51/7862f4fa4b75a25c3b4163c8a873f070532fe5f2d3f9b3fc869c8337a398/xxhash-3.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3e5b5e16c5a480fe5f59f56c30abdeba09ffd75da8d13f6b9b6fd224d0b4d0a2", size = 203351 }, + { url = "https://files.pythonhosted.org/packages/22/61/8d6a40f288f791cf79ed5bb113159abf0c81d6efb86e734334f698eb4c59/xxhash-3.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149b7914451eb154b3dfaa721315117ea1dac2cc55a01bfbd4df7c68c5dd683d", size = 210294 }, + { url = "https://files.pythonhosted.org/packages/17/02/215c4698955762d45a8158117190261b2dbefe9ae7e5b906768c09d8bc74/xxhash-3.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:eade977f5c96c677035ff39c56ac74d851b1cca7d607ab3d8f23c6b859379cab", size = 414674 }, + { url = "https://files.pythonhosted.org/packages/31/5c/b7a8db8a3237cff3d535261325d95de509f6a8ae439a5a7a4ffcff478189/xxhash-3.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fa9f547bd98f5553d03160967866a71056a60960be00356a15ecc44efb40ba8e", size = 192022 }, + { url = "https://files.pythonhosted.org/packages/78/e3/dd76659b2811b3fd06892a8beb850e1996b63e9235af5a86ea348f053e9e/xxhash-3.5.0-cp312-cp312-win32.whl", hash = "sha256:f7b58d1fd3551b8c80a971199543379be1cee3d0d409e1f6d8b01c1a2eebf1f8", size = 30170 }, + { url = "https://files.pythonhosted.org/packages/d9/6b/1c443fe6cfeb4ad1dcf231cdec96eb94fb43d6498b4469ed8b51f8b59a37/xxhash-3.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:fa0cafd3a2af231b4e113fba24a65d7922af91aeb23774a8b78228e6cd785e3e", size = 30040 }, + { url = "https://files.pythonhosted.org/packages/0f/eb/04405305f290173acc0350eba6d2f1a794b57925df0398861a20fbafa415/xxhash-3.5.0-cp312-cp312-win_arm64.whl", hash = "sha256:586886c7e89cb9828bcd8a5686b12e161368e0064d040e225e72607b43858ba2", size = 26796 }, + { url = "https://files.pythonhosted.org/packages/c9/b8/e4b3ad92d249be5c83fa72916c9091b0965cb0faeff05d9a0a3870ae6bff/xxhash-3.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:37889a0d13b0b7d739cfc128b1c902f04e32de17b33d74b637ad42f1c55101f6", size = 31795 }, + { url = "https://files.pythonhosted.org/packages/fc/d8/b3627a0aebfbfa4c12a41e22af3742cf08c8ea84f5cc3367b5de2d039cce/xxhash-3.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:97a662338797c660178e682f3bc180277b9569a59abfb5925e8620fba00b9fc5", size = 30792 }, + { url = "https://files.pythonhosted.org/packages/c3/cc/762312960691da989c7cd0545cb120ba2a4148741c6ba458aa723c00a3f8/xxhash-3.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f85e0108d51092bdda90672476c7d909c04ada6923c14ff9d913c4f7dc8a3bc", size = 220950 }, + { url = "https://files.pythonhosted.org/packages/fe/e9/cc266f1042c3c13750e86a535496b58beb12bf8c50a915c336136f6168dc/xxhash-3.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cd2fd827b0ba763ac919440042302315c564fdb797294d86e8cdd4578e3bc7f3", size = 199980 }, + { url = "https://files.pythonhosted.org/packages/bf/85/a836cd0dc5cc20376de26b346858d0ac9656f8f730998ca4324921a010b9/xxhash-3.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:82085c2abec437abebf457c1d12fccb30cc8b3774a0814872511f0f0562c768c", size = 428324 }, + { url = "https://files.pythonhosted.org/packages/b4/0e/15c243775342ce840b9ba34aceace06a1148fa1630cd8ca269e3223987f5/xxhash-3.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07fda5de378626e502b42b311b049848c2ef38784d0d67b6f30bb5008642f8eb", size = 194370 }, + { url = "https://files.pythonhosted.org/packages/87/a1/b028bb02636dfdc190da01951d0703b3d904301ed0ef6094d948983bef0e/xxhash-3.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c279f0d2b34ef15f922b77966640ade58b4ccdfef1c4d94b20f2a364617a493f", size = 207911 }, + { url = "https://files.pythonhosted.org/packages/80/d5/73c73b03fc0ac73dacf069fdf6036c9abad82de0a47549e9912c955ab449/xxhash-3.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:89e66ceed67b213dec5a773e2f7a9e8c58f64daeb38c7859d8815d2c89f39ad7", size = 216352 }, + { url = "https://files.pythonhosted.org/packages/b6/2a/5043dba5ddbe35b4fe6ea0a111280ad9c3d4ba477dd0f2d1fe1129bda9d0/xxhash-3.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:bcd51708a633410737111e998ceb3b45d3dbc98c0931f743d9bb0a209033a326", size = 203410 }, + { url = "https://files.pythonhosted.org/packages/a2/b2/9a8ded888b7b190aed75b484eb5c853ddd48aa2896e7b59bbfbce442f0a1/xxhash-3.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3ff2c0a34eae7df88c868be53a8dd56fbdf592109e21d4bfa092a27b0bf4a7bf", size = 210322 }, + { url = "https://files.pythonhosted.org/packages/98/62/440083fafbc917bf3e4b67c2ade621920dd905517e85631c10aac955c1d2/xxhash-3.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:4e28503dccc7d32e0b9817aa0cbfc1f45f563b2c995b7a66c4c8a0d232e840c7", size = 414725 }, + { url = "https://files.pythonhosted.org/packages/75/db/009206f7076ad60a517e016bb0058381d96a007ce3f79fa91d3010f49cc2/xxhash-3.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a6c50017518329ed65a9e4829154626f008916d36295b6a3ba336e2458824c8c", size = 192070 }, + { url = "https://files.pythonhosted.org/packages/1f/6d/c61e0668943a034abc3a569cdc5aeae37d686d9da7e39cf2ed621d533e36/xxhash-3.5.0-cp313-cp313-win32.whl", hash = "sha256:53a068fe70301ec30d868ece566ac90d873e3bb059cf83c32e76012c889b8637", size = 30172 }, + { url = "https://files.pythonhosted.org/packages/96/14/8416dce965f35e3d24722cdf79361ae154fa23e2ab730e5323aa98d7919e/xxhash-3.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:80babcc30e7a1a484eab952d76a4f4673ff601f54d5142c26826502740e70b43", size = 30041 }, + { url = "https://files.pythonhosted.org/packages/27/ee/518b72faa2073f5aa8e3262408d284892cb79cf2754ba0c3a5870645ef73/xxhash-3.5.0-cp313-cp313-win_arm64.whl", hash = "sha256:4811336f1ce11cac89dcbd18f3a25c527c16311709a89313c3acaf771def2d4b", size = 26801 }, +] + +[[package]] +name = "yarl" +version = "1.18.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "multidict" }, + { name = "propcache" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b7/9d/4b94a8e6d2b51b599516a5cb88e5bc99b4d8d4583e468057eaa29d5f0918/yarl-1.18.3.tar.gz", hash = "sha256:ac1801c45cbf77b6c99242eeff4fffb5e4e73a800b5c4ad4fc0be5def634d2e1", size = 181062 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/93/282b5f4898d8e8efaf0790ba6d10e2245d2c9f30e199d1a85cae9356098c/yarl-1.18.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8503ad47387b8ebd39cbbbdf0bf113e17330ffd339ba1144074da24c545f0069", size = 141555 }, + { url = "https://files.pythonhosted.org/packages/6d/9c/0a49af78df099c283ca3444560f10718fadb8a18dc8b3edf8c7bd9fd7d89/yarl-1.18.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:02ddb6756f8f4517a2d5e99d8b2f272488e18dd0bfbc802f31c16c6c20f22193", size = 94351 }, + { url = "https://files.pythonhosted.org/packages/5a/a1/205ab51e148fdcedad189ca8dd587794c6f119882437d04c33c01a75dece/yarl-1.18.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:67a283dd2882ac98cc6318384f565bffc751ab564605959df4752d42483ad889", size = 92286 }, + { url = "https://files.pythonhosted.org/packages/ed/fe/88b690b30f3f59275fb674f5f93ddd4a3ae796c2b62e5bb9ece8a4914b83/yarl-1.18.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d980e0325b6eddc81331d3f4551e2a333999fb176fd153e075c6d1c2530aa8a8", size = 340649 }, + { url = "https://files.pythonhosted.org/packages/07/eb/3b65499b568e01f36e847cebdc8d7ccb51fff716dbda1ae83c3cbb8ca1c9/yarl-1.18.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b643562c12680b01e17239be267bc306bbc6aac1f34f6444d1bded0c5ce438ca", size = 356623 }, + { url = "https://files.pythonhosted.org/packages/33/46/f559dc184280b745fc76ec6b1954de2c55595f0ec0a7614238b9ebf69618/yarl-1.18.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c017a3b6df3a1bd45b9fa49a0f54005e53fbcad16633870104b66fa1a30a29d8", size = 354007 }, + { url = "https://files.pythonhosted.org/packages/af/ba/1865d85212351ad160f19fb99808acf23aab9a0f8ff31c8c9f1b4d671fc9/yarl-1.18.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75674776d96d7b851b6498f17824ba17849d790a44d282929c42dbb77d4f17ae", size = 344145 }, + { url = "https://files.pythonhosted.org/packages/94/cb/5c3e975d77755d7b3d5193e92056b19d83752ea2da7ab394e22260a7b824/yarl-1.18.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccaa3a4b521b780a7e771cc336a2dba389a0861592bbce09a476190bb0c8b4b3", size = 336133 }, + { url = "https://files.pythonhosted.org/packages/19/89/b77d3fd249ab52a5c40859815765d35c91425b6bb82e7427ab2f78f5ff55/yarl-1.18.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2d06d3005e668744e11ed80812e61efd77d70bb7f03e33c1598c301eea20efbb", size = 347967 }, + { url = "https://files.pythonhosted.org/packages/35/bd/f6b7630ba2cc06c319c3235634c582a6ab014d52311e7d7c22f9518189b5/yarl-1.18.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:9d41beda9dc97ca9ab0b9888cb71f7539124bc05df02c0cff6e5acc5a19dcc6e", size = 346397 }, + { url = "https://files.pythonhosted.org/packages/18/1a/0b4e367d5a72d1f095318344848e93ea70da728118221f84f1bf6c1e39e7/yarl-1.18.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ba23302c0c61a9999784e73809427c9dbedd79f66a13d84ad1b1943802eaaf59", size = 350206 }, + { url = "https://files.pythonhosted.org/packages/b5/cf/320fff4367341fb77809a2d8d7fe75b5d323a8e1b35710aafe41fdbf327b/yarl-1.18.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6748dbf9bfa5ba1afcc7556b71cda0d7ce5f24768043a02a58846e4a443d808d", size = 362089 }, + { url = "https://files.pythonhosted.org/packages/57/cf/aadba261d8b920253204085268bad5e8cdd86b50162fcb1b10c10834885a/yarl-1.18.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0b0cad37311123211dc91eadcb322ef4d4a66008d3e1bdc404808992260e1a0e", size = 366267 }, + { url = "https://files.pythonhosted.org/packages/54/58/fb4cadd81acdee6dafe14abeb258f876e4dd410518099ae9a35c88d8097c/yarl-1.18.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0fb2171a4486bb075316ee754c6d8382ea6eb8b399d4ec62fde2b591f879778a", size = 359141 }, + { url = "https://files.pythonhosted.org/packages/9a/7a/4c571597589da4cd5c14ed2a0b17ac56ec9ee7ee615013f74653169e702d/yarl-1.18.3-cp311-cp311-win32.whl", hash = "sha256:61b1a825a13bef4a5f10b1885245377d3cd0bf87cba068e1d9a88c2ae36880e1", size = 84402 }, + { url = "https://files.pythonhosted.org/packages/ae/7b/8600250b3d89b625f1121d897062f629883c2f45339623b69b1747ec65fa/yarl-1.18.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9d60031cf568c627d028239693fd718025719c02c9f55df0a53e587aab951b5", size = 91030 }, + { url = "https://files.pythonhosted.org/packages/33/85/bd2e2729752ff4c77338e0102914897512e92496375e079ce0150a6dc306/yarl-1.18.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1dd4bdd05407ced96fed3d7f25dbbf88d2ffb045a0db60dbc247f5b3c5c25d50", size = 142644 }, + { url = "https://files.pythonhosted.org/packages/ff/74/1178322cc0f10288d7eefa6e4a85d8d2e28187ccab13d5b844e8b5d7c88d/yarl-1.18.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7c33dd1931a95e5d9a772d0ac5e44cac8957eaf58e3c8da8c1414de7dd27c576", size = 94962 }, + { url = "https://files.pythonhosted.org/packages/be/75/79c6acc0261e2c2ae8a1c41cf12265e91628c8c58ae91f5ff59e29c0787f/yarl-1.18.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:25b411eddcfd56a2f0cd6a384e9f4f7aa3efee14b188de13048c25b5e91f1640", size = 92795 }, + { url = "https://files.pythonhosted.org/packages/6b/32/927b2d67a412c31199e83fefdce6e645247b4fb164aa1ecb35a0f9eb2058/yarl-1.18.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:436c4fc0a4d66b2badc6c5fc5ef4e47bb10e4fd9bf0c79524ac719a01f3607c2", size = 332368 }, + { url = "https://files.pythonhosted.org/packages/19/e5/859fca07169d6eceeaa4fde1997c91d8abde4e9a7c018e371640c2da2b71/yarl-1.18.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e35ef8683211db69ffe129a25d5634319a677570ab6b2eba4afa860f54eeaf75", size = 342314 }, + { url = "https://files.pythonhosted.org/packages/08/75/76b63ccd91c9e03ab213ef27ae6add2e3400e77e5cdddf8ed2dbc36e3f21/yarl-1.18.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84b2deecba4a3f1a398df819151eb72d29bfeb3b69abb145a00ddc8d30094512", size = 341987 }, + { url = "https://files.pythonhosted.org/packages/1a/e1/a097d5755d3ea8479a42856f51d97eeff7a3a7160593332d98f2709b3580/yarl-1.18.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00e5a1fea0fd4f5bfa7440a47eff01d9822a65b4488f7cff83155a0f31a2ecba", size = 336914 }, + { url = "https://files.pythonhosted.org/packages/0b/42/e1b4d0e396b7987feceebe565286c27bc085bf07d61a59508cdaf2d45e63/yarl-1.18.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d0e883008013c0e4aef84dcfe2a0b172c4d23c2669412cf5b3371003941f72bb", size = 325765 }, + { url = "https://files.pythonhosted.org/packages/7e/18/03a5834ccc9177f97ca1bbb245b93c13e58e8225276f01eedc4cc98ab820/yarl-1.18.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5a3f356548e34a70b0172d8890006c37be92995f62d95a07b4a42e90fba54272", size = 344444 }, + { url = "https://files.pythonhosted.org/packages/c8/03/a713633bdde0640b0472aa197b5b86e90fbc4c5bc05b727b714cd8a40e6d/yarl-1.18.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ccd17349166b1bee6e529b4add61727d3f55edb7babbe4069b5764c9587a8cc6", size = 340760 }, + { url = "https://files.pythonhosted.org/packages/eb/99/f6567e3f3bbad8fd101886ea0276c68ecb86a2b58be0f64077396cd4b95e/yarl-1.18.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b958ddd075ddba5b09bb0be8a6d9906d2ce933aee81100db289badbeb966f54e", size = 346484 }, + { url = "https://files.pythonhosted.org/packages/8e/a9/84717c896b2fc6cb15bd4eecd64e34a2f0a9fd6669e69170c73a8b46795a/yarl-1.18.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c7d79f7d9aabd6011004e33b22bc13056a3e3fb54794d138af57f5ee9d9032cb", size = 359864 }, + { url = "https://files.pythonhosted.org/packages/1e/2e/d0f5f1bef7ee93ed17e739ec8dbcb47794af891f7d165fa6014517b48169/yarl-1.18.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:4891ed92157e5430874dad17b15eb1fda57627710756c27422200c52d8a4e393", size = 364537 }, + { url = "https://files.pythonhosted.org/packages/97/8a/568d07c5d4964da5b02621a517532adb8ec5ba181ad1687191fffeda0ab6/yarl-1.18.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ce1af883b94304f493698b00d0f006d56aea98aeb49d75ec7d98cd4a777e9285", size = 357861 }, + { url = "https://files.pythonhosted.org/packages/7d/e3/924c3f64b6b3077889df9a1ece1ed8947e7b61b0a933f2ec93041990a677/yarl-1.18.3-cp312-cp312-win32.whl", hash = "sha256:f91c4803173928a25e1a55b943c81f55b8872f0018be83e3ad4938adffb77dd2", size = 84097 }, + { url = "https://files.pythonhosted.org/packages/34/45/0e055320daaabfc169b21ff6174567b2c910c45617b0d79c68d7ab349b02/yarl-1.18.3-cp312-cp312-win_amd64.whl", hash = "sha256:7e2ee16578af3b52ac2f334c3b1f92262f47e02cc6193c598502bd46f5cd1477", size = 90399 }, + { url = "https://files.pythonhosted.org/packages/30/c7/c790513d5328a8390be8f47be5d52e141f78b66c6c48f48d241ca6bd5265/yarl-1.18.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:90adb47ad432332d4f0bc28f83a5963f426ce9a1a8809f5e584e704b82685dcb", size = 140789 }, + { url = "https://files.pythonhosted.org/packages/30/aa/a2f84e93554a578463e2edaaf2300faa61c8701f0898725842c704ba5444/yarl-1.18.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:913829534200eb0f789d45349e55203a091f45c37a2674678744ae52fae23efa", size = 94144 }, + { url = "https://files.pythonhosted.org/packages/c6/fc/d68d8f83714b221a85ce7866832cba36d7c04a68fa6a960b908c2c84f325/yarl-1.18.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ef9f7768395923c3039055c14334ba4d926f3baf7b776c923c93d80195624782", size = 91974 }, + { url = "https://files.pythonhosted.org/packages/56/4e/d2563d8323a7e9a414b5b25341b3942af5902a2263d36d20fb17c40411e2/yarl-1.18.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88a19f62ff30117e706ebc9090b8ecc79aeb77d0b1f5ec10d2d27a12bc9f66d0", size = 333587 }, + { url = "https://files.pythonhosted.org/packages/25/c9/cfec0bc0cac8d054be223e9f2c7909d3e8442a856af9dbce7e3442a8ec8d/yarl-1.18.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e17c9361d46a4d5addf777c6dd5eab0715a7684c2f11b88c67ac37edfba6c482", size = 344386 }, + { url = "https://files.pythonhosted.org/packages/ab/5d/4c532190113b25f1364d25f4c319322e86232d69175b91f27e3ebc2caf9a/yarl-1.18.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a74a13a4c857a84a845505fd2d68e54826a2cd01935a96efb1e9d86c728e186", size = 345421 }, + { url = "https://files.pythonhosted.org/packages/23/d1/6cdd1632da013aa6ba18cee4d750d953104a5e7aac44e249d9410a972bf5/yarl-1.18.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41f7ce59d6ee7741af71d82020346af364949314ed3d87553763a2df1829cc58", size = 339384 }, + { url = "https://files.pythonhosted.org/packages/9a/c4/6b3c39bec352e441bd30f432cda6ba51681ab19bb8abe023f0d19777aad1/yarl-1.18.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f52a265001d830bc425f82ca9eabda94a64a4d753b07d623a9f2863fde532b53", size = 326689 }, + { url = "https://files.pythonhosted.org/packages/23/30/07fb088f2eefdc0aa4fc1af4e3ca4eb1a3aadd1ce7d866d74c0f124e6a85/yarl-1.18.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:82123d0c954dc58db301f5021a01854a85bf1f3bb7d12ae0c01afc414a882ca2", size = 345453 }, + { url = "https://files.pythonhosted.org/packages/63/09/d54befb48f9cd8eec43797f624ec37783a0266855f4930a91e3d5c7717f8/yarl-1.18.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2ec9bbba33b2d00999af4631a3397d1fd78290c48e2a3e52d8dd72db3a067ac8", size = 341872 }, + { url = "https://files.pythonhosted.org/packages/91/26/fd0ef9bf29dd906a84b59f0cd1281e65b0c3e08c6aa94b57f7d11f593518/yarl-1.18.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fbd6748e8ab9b41171bb95c6142faf068f5ef1511935a0aa07025438dd9a9bc1", size = 347497 }, + { url = "https://files.pythonhosted.org/packages/d9/b5/14ac7a256d0511b2ac168d50d4b7d744aea1c1aa20c79f620d1059aab8b2/yarl-1.18.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:877d209b6aebeb5b16c42cbb377f5f94d9e556626b1bfff66d7b0d115be88d0a", size = 359981 }, + { url = "https://files.pythonhosted.org/packages/ca/b3/d493221ad5cbd18bc07e642894030437e405e1413c4236dd5db6e46bcec9/yarl-1.18.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b464c4ab4bfcb41e3bfd3f1c26600d038376c2de3297760dfe064d2cb7ea8e10", size = 366229 }, + { url = "https://files.pythonhosted.org/packages/04/56/6a3e2a5d9152c56c346df9b8fb8edd2c8888b1e03f96324d457e5cf06d34/yarl-1.18.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8d39d351e7faf01483cc7ff7c0213c412e38e5a340238826be7e0e4da450fdc8", size = 360383 }, + { url = "https://files.pythonhosted.org/packages/fd/b7/4b3c7c7913a278d445cc6284e59b2e62fa25e72758f888b7a7a39eb8423f/yarl-1.18.3-cp313-cp313-win32.whl", hash = "sha256:61ee62ead9b68b9123ec24bc866cbef297dd266175d53296e2db5e7f797f902d", size = 310152 }, + { url = "https://files.pythonhosted.org/packages/f5/d5/688db678e987c3e0fb17867970700b92603cadf36c56e5fb08f23e822a0c/yarl-1.18.3-cp313-cp313-win_amd64.whl", hash = "sha256:578e281c393af575879990861823ef19d66e2b1d0098414855dd367e234f5b3c", size = 315723 }, + { url = "https://files.pythonhosted.org/packages/f5/4b/a06e0ec3d155924f77835ed2d167ebd3b211a7b0853da1cf8d8414d784ef/yarl-1.18.3-py3-none-any.whl", hash = "sha256:b57f4f58099328dfb26c6a771d09fb20dbbae81d20cfb66141251ea063bd101b", size = 45109 }, +] + +[[package]] +name = "zipp" +version = "3.21.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3f/50/bad581df71744867e9468ebd0bcd6505de3b275e06f202c2cb016e3ff56f/zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4", size = 24545 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/1a/7e4798e9339adc931158c9d69ecc34f5e6791489d469f5e50ec15e35f458/zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931", size = 9630 }, +] From 3fd3aed2fa8a7ed5ac291ceb4eee4c4212be3198 Mon Sep 17 00:00:00 2001 From: Henry Mao <1828968+calclavia@users.noreply.github.com> Date: Mon, 23 Dec 2024 17:08:54 +0700 Subject: [PATCH 23/32] Add Smithery CLI installation instructions and badge --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index f0aa2a280..00103e8e9 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ # cognee +[![smithery badge](https://smithery.ai/badge/cognee)](https://smithery.ai/server/cognee) [![GitHub forks](https://img.shields.io/github/forks/topoteretes/cognee.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/topoteretes/cognee/network/) [![GitHub stars](https://img.shields.io/github/stars/topoteretes/cognee.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/topoteretes/cognee/stargazers/) [![GitHub commits](https://badgen.net/github/commits/topoteretes/cognee)](https://GitHub.com/topoteretes/cognee/commit/) @@ -20,6 +21,15 @@ If you have questions, join our Discord ## 📦 Installation + +### Installing via Smithery + +To install Cognee for Claude Desktop automatically via [Smithery](https://smithery.ai/server/cognee): + +```bash +npx -y @smithery/cli install cognee --client claude +``` + You can install Cognee using either **pip** or **poetry**. Support for various databases and vector stores is available through extras. From efa2ecdf76c11ecb81ee650169512ce09c952e1f Mon Sep 17 00:00:00 2001 From: Henry Mao <1828968+calclavia@users.noreply.github.com> Date: Mon, 23 Dec 2024 23:09:34 +0700 Subject: [PATCH 24/32] Move readme --- README.md | 9 --------- cognee-mcp/README.md | 9 +++++++++ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 00103e8e9..67a4885c5 100644 --- a/README.md +++ b/README.md @@ -21,15 +21,6 @@ If you have questions, join our Discord ## 📦 Installation - -### Installing via Smithery - -To install Cognee for Claude Desktop automatically via [Smithery](https://smithery.ai/server/cognee): - -```bash -npx -y @smithery/cli install cognee --client claude -``` - You can install Cognee using either **pip** or **poetry**. Support for various databases and vector stores is available through extras. diff --git a/cognee-mcp/README.md b/cognee-mcp/README.md index bf2c9989d..824a2e701 100644 --- a/cognee-mcp/README.md +++ b/cognee-mcp/README.md @@ -1,5 +1,14 @@ # cognee MCP server +### Installing via Smithery + +To install Cognee for Claude Desktop automatically via [Smithery](https://smithery.ai/server/cognee): + +```bash +npx -y @smithery/cli install cognee --client claude +``` + +### Installing Manually A MCP server project Create a boilerplate server: From 135613de1d943ffd3bd583c17ce83cb0a72feded Mon Sep 17 00:00:00 2001 From: Vasilije <8619304+Vasilije1990@users.noreply.github.com> Date: Mon, 23 Dec 2024 17:36:14 +0100 Subject: [PATCH 25/32] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 67a4885c5..7361923f5 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ # cognee -[![smithery badge](https://smithery.ai/badge/cognee)](https://smithery.ai/server/cognee) [![GitHub forks](https://img.shields.io/github/forks/topoteretes/cognee.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/topoteretes/cognee/network/) [![GitHub stars](https://img.shields.io/github/stars/topoteretes/cognee.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/topoteretes/cognee/stargazers/) [![GitHub commits](https://badgen.net/github/commits/topoteretes/cognee)](https://GitHub.com/topoteretes/cognee/commit/) @@ -354,4 +353,4 @@ pip install cognee | NetworkX | Graph | Stable ✅ | | | FalkorDB | Vector/Graph | Unstable ❌ | | | PGVector | Vector | Stable ✅ | | -| Milvus | Vector | Stable ✅ | | \ No newline at end of file +| Milvus | Vector | Stable ✅ | | From 2747cd79b94213ca46d461ec5725722cc9fbdc0e Mon Sep 17 00:00:00 2001 From: Vasilije <8619304+Vasilije1990@users.noreply.github.com> Date: Mon, 23 Dec 2024 17:38:12 +0100 Subject: [PATCH 26/32] Update README.md --- cognee-mcp/README.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/cognee-mcp/README.md b/cognee-mcp/README.md index eaa82b20c..a83c07bff 100644 --- a/cognee-mcp/README.md +++ b/cognee-mcp/README.md @@ -1,13 +1,7 @@ # cognee MCP server -### Installing via Smithery - -To install Cognee for Claude Desktop automatically via [Smithery](https://smithery.ai/server/cognee): -```bash -npx -y @smithery/cli install cognee --client claude -``` ### Installing Manually A MCP server project @@ -50,5 +44,14 @@ source .venv/bin/activate Then, edit the pyproject.toml in your new folder so that it includes packages from the cognee requirements. Use the pyproject.toml in your cognee library for this, but match the syntax of the automatically generated pyproject.toml so that it is compatible with uv. + +### Installing via Smithery + +To install Cognee for Claude Desktop automatically via [Smithery](https://smithery.ai/server/cognee): + +```bash +npx -y @smithery/cli install cognee --client claude +``` + Define cognify tool in server.py Restart your Claude desktop. From 262deee26e862861057d4a0c76cc07b9bb293c9b Mon Sep 17 00:00:00 2001 From: lxobr <122801072+lxobr@users.noreply.github.com> Date: Thu, 26 Dec 2024 13:53:38 +0100 Subject: [PATCH 27/32] Cog 813 source code chunks (#383) * fix: pass the list of all CodeFiles to enrichment task * feat: introduce SourceCodeChunk, update metadata * feat: get_source_code_chunks code graph pipeline task * feat: integrate get_source_code_chunks task, comment out summarize_code * Fix code summarization (#387) * feat: update data models * feat: naive parse long strings in source code * fix: get_non_py_files instead of get_non_code_files * fix: limit recursion, add comment * handle embedding empty input error (#398) * feat: robustly handle CodeFile source code * refactor: sort imports * todo: add support for other embedding models * feat: add custom logger * feat: add robustness to get_source_code_chunks Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * feat: improve embedding exceptions * refactor: format indents, rename module --------- Co-authored-by: alekszievr <44192193+alekszievr@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- cognee/api/v1/cognify/code_graph_pipeline.py | 16 +- .../exceptions/EmbeddingException.py | 3 + .../embeddings/LiteLLMEmbeddingEngine.py | 21 ++- cognee/shared/CodeGraphEntities.py | 27 +-- cognee/shared/data_models.py | 1 - .../get_repo_file_dependencies.py | 9 +- .../repo_processor/get_source_code_chunks.py | 164 ++++++++++++++++++ cognee/tasks/storage/index_data_points.py | 9 +- cognee/tasks/summarization/models.py | 6 +- cognee/tasks/summarization/summarize_code.py | 8 +- examples/python/code_graph_example.py | 2 +- 11 files changed, 229 insertions(+), 37 deletions(-) create mode 100644 cognee/infrastructure/databases/exceptions/EmbeddingException.py create mode 100644 cognee/tasks/repo_processor/get_source_code_chunks.py diff --git a/cognee/api/v1/cognify/code_graph_pipeline.py b/cognee/api/v1/cognify/code_graph_pipeline.py index 8e92d08e0..3d31b4000 100644 --- a/cognee/api/v1/cognify/code_graph_pipeline.py +++ b/cognee/api/v1/cognify/code_graph_pipeline.py @@ -3,6 +3,8 @@ from pathlib import Path from cognee.base_config import get_base_config +from cognee.infrastructure.databases.vector.embeddings import \ + get_embedding_engine from cognee.modules.cognify.config import get_cognify_config from cognee.modules.pipelines import run_tasks from cognee.modules.pipelines.tasks.Task import Task @@ -15,8 +17,10 @@ from cognee.tasks.repo_processor import (enrich_dependency_graph, expand_dependency_graph, get_data_list_for_user, - get_non_code_files, + get_non_py_files, get_repo_file_dependencies) +from cognee.tasks.repo_processor.get_source_code_chunks import \ + get_source_code_chunks from cognee.tasks.storage import add_data_points monitoring = get_base_config().monitoring_tool @@ -28,6 +32,7 @@ logger = logging.getLogger("code_graph_pipeline") update_status_lock = asyncio.Lock() + @observe async def run_code_graph_pipeline(repo_path, include_docs=True): import os @@ -46,20 +51,23 @@ async def run_code_graph_pipeline(repo_path, include_docs=True): await cognee.prune.prune_system(metadata=True) await create_db_and_tables() + embedding_engine = get_embedding_engine() + cognee_config = get_cognify_config() user = await get_default_user() tasks = [ Task(get_repo_file_dependencies), - Task(enrich_dependency_graph, task_config={"batch_size": 50}), + Task(enrich_dependency_graph), Task(expand_dependency_graph, task_config={"batch_size": 50}), + Task(get_source_code_chunks, embedding_model=embedding_engine.model, task_config={"batch_size": 50}), Task(summarize_code, task_config={"batch_size": 50}), Task(add_data_points, task_config={"batch_size": 50}), ] if include_docs: non_code_tasks = [ - Task(get_non_code_files, task_config={"batch_size": 50}), + Task(get_non_py_files, task_config={"batch_size": 50}), Task(ingest_data_with_metadata, dataset_name="repo_docs", user=user), Task(get_data_list_for_user, dataset_name="repo_docs", user=user), Task(classify_documents), @@ -71,7 +79,7 @@ async def run_code_graph_pipeline(repo_path, include_docs=True): task_config={"batch_size": 50} ), ] - + if include_docs: async for result in run_tasks(non_code_tasks, repo_path): yield result diff --git a/cognee/infrastructure/databases/exceptions/EmbeddingException.py b/cognee/infrastructure/databases/exceptions/EmbeddingException.py new file mode 100644 index 000000000..ba7c70d80 --- /dev/null +++ b/cognee/infrastructure/databases/exceptions/EmbeddingException.py @@ -0,0 +1,3 @@ +class EmbeddingException(Exception): + """Custom exception for handling embedding-related errors.""" + pass \ No newline at end of file diff --git a/cognee/infrastructure/databases/vector/embeddings/LiteLLMEmbeddingEngine.py b/cognee/infrastructure/databases/vector/embeddings/LiteLLMEmbeddingEngine.py index dce12b318..93f59cc77 100644 --- a/cognee/infrastructure/databases/vector/embeddings/LiteLLMEmbeddingEngine.py +++ b/cognee/infrastructure/databases/vector/embeddings/LiteLLMEmbeddingEngine.py @@ -5,17 +5,19 @@ import litellm import os from cognee.infrastructure.databases.vector.embeddings.EmbeddingEngine import EmbeddingEngine +from cognee.infrastructure.databases.exceptions.EmbeddingException import EmbeddingException litellm.set_verbose = False logger = logging.getLogger("LiteLLMEmbeddingEngine") + class LiteLLMEmbeddingEngine(EmbeddingEngine): api_key: str endpoint: str api_version: str model: str dimensions: int - mock:bool + mock: bool def __init__( self, @@ -33,7 +35,7 @@ def __init__( enable_mocking = os.getenv("MOCK_EMBEDDING", "false") if isinstance(enable_mocking, bool): - enable_mocking= str(enable_mocking).lower() + enable_mocking = str(enable_mocking).lower() self.mock = enable_mocking in ("true", "1", "yes") MAX_RETRIES = 5 @@ -43,7 +45,7 @@ async def embed_text(self, text: List[str]) -> List[List[float]]: async def exponential_backoff(attempt): wait_time = min(10 * (2 ** attempt), 60) # Max 60 seconds await asyncio.sleep(wait_time) - + try: if self.mock: response = { @@ -56,10 +58,10 @@ async def exponential_backoff(attempt): else: response = await litellm.aembedding( self.model, - input = text, - api_key = self.api_key, - api_base = self.endpoint, - api_version = self.api_version + input=text, + api_key=self.api_key, + api_base=self.endpoint, + api_version=self.api_version ) self.retry_count = 0 @@ -71,7 +73,7 @@ async def exponential_backoff(attempt): if len(text) == 1: parts = [text] else: - parts = [text[0:math.ceil(len(text)/2)], text[math.ceil(len(text)/2):]] + parts = [text[0:math.ceil(len(text) / 2)], text[math.ceil(len(text) / 2):]] parts_futures = [self.embed_text(part) for part in parts] embeddings = await asyncio.gather(*parts_futures) @@ -95,6 +97,9 @@ async def exponential_backoff(attempt): return await self.embed_text(text) + except (litellm.exceptions.BadRequestError, litellm.llms.OpenAI.openai.OpenAIError): + raise EmbeddingException("Failed to index data points.") + except Exception as error: logger.error("Error embedding text: %s", str(error)) raise error diff --git a/cognee/shared/CodeGraphEntities.py b/cognee/shared/CodeGraphEntities.py index 23b8879c2..27289493d 100644 --- a/cognee/shared/CodeGraphEntities.py +++ b/cognee/shared/CodeGraphEntities.py @@ -1,5 +1,4 @@ from typing import List, Optional - from cognee.infrastructure.engine import DataPoint @@ -7,7 +6,7 @@ class Repository(DataPoint): __tablename__ = "Repository" path: str _metadata: dict = { - "index_fields": ["source_code"], + "index_fields": [], "type": "Repository" } @@ -19,29 +18,31 @@ class CodeFile(DataPoint): depends_on: Optional[List["CodeFile"]] = None depends_directly_on: Optional[List["CodeFile"]] = None contains: Optional[List["CodePart"]] = None - _metadata: dict = { - "index_fields": ["source_code"], + "index_fields": [], "type": "CodeFile" } class CodePart(DataPoint): __tablename__ = "codepart" - # part_of: Optional[CodeFile] - source_code: str - + # part_of: Optional[CodeFile] = None + source_code: Optional[str] = None _metadata: dict = { - "index_fields": ["source_code"], + "index_fields": [], "type": "CodePart" } -class CodeRelationship(DataPoint): - source_id: str - target_id: str - relation: str # depends on or depends directly +class SourceCodeChunk(DataPoint): + __tablename__ = "sourcecodechunk" + code_chunk_of: Optional[CodePart] = None + source_code: Optional[str] = None + previous_chunk: Optional["SourceCodeChunk"] = None + _metadata: dict = { - "type": "CodeRelationship" + "index_fields": ["source_code"], + "type": "SourceCodeChunk" } CodeFile.model_rebuild() CodePart.model_rebuild() +SourceCodeChunk.model_rebuild() \ No newline at end of file diff --git a/cognee/shared/data_models.py b/cognee/shared/data_models.py index dec53cfcb..2a8bc8c91 100644 --- a/cognee/shared/data_models.py +++ b/cognee/shared/data_models.py @@ -210,7 +210,6 @@ class SummarizedClass(BaseModel): decorators: Optional[List[str]] = None class SummarizedCode(BaseModel): - file_name: str high_level_summary: str key_features: List[str] imports: List[str] = [] diff --git a/cognee/tasks/repo_processor/get_repo_file_dependencies.py b/cognee/tasks/repo_processor/get_repo_file_dependencies.py index 221af6cf6..b54c1f152 100644 --- a/cognee/tasks/repo_processor/get_repo_file_dependencies.py +++ b/cognee/tasks/repo_processor/get_repo_file_dependencies.py @@ -71,7 +71,7 @@ async def get_repo_file_dependencies(repo_path: str) -> AsyncGenerator[list, Non path = repo_path, ) - yield repo + yield [repo] with ProcessPoolExecutor(max_workers = 12) as executor: loop = asyncio.get_event_loop() @@ -90,10 +90,11 @@ async def get_repo_file_dependencies(repo_path: str) -> AsyncGenerator[list, Non results = await asyncio.gather(*tasks) + code_files = [] for (file_path, metadata), dependencies in zip(py_files_dict.items(), results): source_code = metadata.get("source_code") - yield CodeFile( + code_files.append(CodeFile( id = uuid5(NAMESPACE_OID, file_path), source_code = source_code, extracted_id = file_path, @@ -106,4 +107,6 @@ async def get_repo_file_dependencies(repo_path: str) -> AsyncGenerator[list, Non source_code = py_files_dict.get(dependency, {}).get("source_code"), ) for dependency in dependencies ] if dependencies else None, - ) + )) + + yield code_files diff --git a/cognee/tasks/repo_processor/get_source_code_chunks.py b/cognee/tasks/repo_processor/get_source_code_chunks.py new file mode 100644 index 000000000..4d0ce3200 --- /dev/null +++ b/cognee/tasks/repo_processor/get_source_code_chunks.py @@ -0,0 +1,164 @@ +import logging +from typing import AsyncGenerator, Generator +from uuid import NAMESPACE_OID, uuid5 + +import parso +import tiktoken + +from cognee.infrastructure.engine import DataPoint +from cognee.shared.CodeGraphEntities import CodeFile, CodePart, SourceCodeChunk + +logger = logging.getLogger("task:get_source_code_chunks") + + +def _count_tokens(tokenizer: tiktoken.Encoding, source_code: str) -> int: + return len(tokenizer.encode(source_code)) + + +def _get_naive_subchunk_token_counts( + tokenizer: tiktoken.Encoding, source_code: str, max_subchunk_tokens: int = 8000 +) -> list[tuple[str, int]]: + """Splits source code into subchunks of up to max_subchunk_tokens and counts tokens.""" + + token_ids = tokenizer.encode(source_code) + subchunk_token_counts = [] + + for start_idx in range(0, len(token_ids), max_subchunk_tokens): + subchunk_token_ids = token_ids[start_idx: start_idx + max_subchunk_tokens] + token_count = len(subchunk_token_ids) + subchunk = ''.join( + tokenizer.decode_single_token_bytes(token_id).decode('utf-8', errors='replace') + for token_id in subchunk_token_ids + ) + subchunk_token_counts.append((subchunk, token_count)) + + return subchunk_token_counts + + +def _get_subchunk_token_counts( + tokenizer: tiktoken.Encoding, + source_code: str, + max_subchunk_tokens: int = 8000, + depth: int = 0, + max_depth: int = 100 +) -> list[tuple[str, int]]: + """Splits source code into subchunk and counts tokens for each subchunk.""" + if depth > max_depth: + return _get_naive_subchunk_token_counts(tokenizer, source_code, max_subchunk_tokens) + + try: + module = parso.parse(source_code) + except Exception as e: + logger.error(f"Error parsing source code: {e}") + return [] + + if not module.children: + logger.warning("Parsed module has no children (empty or invalid source code).") + return [] + + # Handle cases with only one real child and an EndMarker to prevent infinite recursion. + if len(module.children) <= 2: + module = module.children[0] + + subchunk_token_counts = [] + for child in module.children: + subchunk = child.get_code() + token_count = _count_tokens(tokenizer, subchunk) + + if token_count == 0: + continue + + if token_count <= max_subchunk_tokens: + subchunk_token_counts.append((subchunk, token_count)) + continue + + if child.type == 'string': + subchunk_token_counts.extend(_get_naive_subchunk_token_counts(tokenizer, subchunk, max_subchunk_tokens)) + continue + + subchunk_token_counts.extend( + _get_subchunk_token_counts(tokenizer, subchunk, max_subchunk_tokens, depth=depth + 1, max_depth=max_depth) + ) + + return subchunk_token_counts + + +def _get_chunk_source_code( + code_token_counts: list[tuple[str, int]], overlap: float, max_tokens: int +) -> tuple[list[tuple[str, int]], str]: + """Generates a chunk of source code from tokenized subchunks with overlap handling.""" + current_count = 0 + cumulative_counts = [] + current_source_code = '' + + for i, (child_code, token_count) in enumerate(code_token_counts): + current_count += token_count + cumulative_counts.append(current_count) + if current_count > max_tokens: + break + current_source_code += f"\n{child_code}" + + if current_count <= max_tokens: + return [], current_source_code.strip() + + cutoff = 1 + for i, cum_count in enumerate(cumulative_counts): + if cum_count > (1 - overlap) * max_tokens: + break + cutoff = i + + return code_token_counts[cutoff:], current_source_code.strip() + + +def get_source_code_chunks_from_code_part( + code_file_part: CodePart, + max_tokens: int = 8192, + overlap: float = 0.25, + granularity: float = 0.1, + model_name: str = "text-embedding-3-large" +) -> Generator[SourceCodeChunk, None, None]: + """Yields source code chunks from a CodePart object, with configurable token limits and overlap.""" + if not code_file_part.source_code: + logger.error(f"No source code in CodeFile {code_file_part.id}") + return + + tokenizer = tiktoken.encoding_for_model(model_name) + max_subchunk_tokens = max(1, int(granularity * max_tokens)) + subchunk_token_counts = _get_subchunk_token_counts(tokenizer, code_file_part.source_code, max_subchunk_tokens) + + previous_chunk = None + while subchunk_token_counts: + subchunk_token_counts, chunk_source_code = _get_chunk_source_code(subchunk_token_counts, overlap, max_tokens) + if not chunk_source_code: + continue + current_chunk = SourceCodeChunk( + id=uuid5(NAMESPACE_OID, chunk_source_code), + code_chunk_of=code_file_part, + source_code=chunk_source_code, + previous_chunk=previous_chunk + ) + yield current_chunk + previous_chunk = current_chunk + + +async def get_source_code_chunks(data_points: list[DataPoint], embedding_model="text-embedding-3-large") -> \ + AsyncGenerator[list[DataPoint], None]: + """Processes code graph datapoints, create SourceCodeChink datapoints.""" + # TODO: Add support for other embedding models, with max_token mapping + for data_point in data_points: + try: + yield data_point + if not isinstance(data_point, CodeFile): + continue + if not data_point.contains: + logger.warning(f"CodeFile {data_point.id} contains no code parts") + continue + for code_part in data_point.contains: + try: + yield code_part + for source_code_chunk in get_source_code_chunks_from_code_part(code_part, model_name=embedding_model): + yield source_code_chunk + except Exception as e: + logger.error(f"Error processing code part: {e}") + except Exception as e: + logger.error(f"Error processing data point: {e}") diff --git a/cognee/tasks/storage/index_data_points.py b/cognee/tasks/storage/index_data_points.py index 857e4d777..12af2d2ef 100644 --- a/cognee/tasks/storage/index_data_points.py +++ b/cognee/tasks/storage/index_data_points.py @@ -1,6 +1,10 @@ +import logging + +from cognee.infrastructure.databases.exceptions.EmbeddingException import EmbeddingException from cognee.infrastructure.databases.vector import get_vector_engine from cognee.infrastructure.engine import DataPoint +logger = logging.getLogger("index_data_points") async def index_data_points(data_points: list[DataPoint]): created_indexes = {} @@ -30,7 +34,10 @@ async def index_data_points(data_points: list[DataPoint]): for index_name, indexable_points in index_points.items(): index_name, field_name = index_name.split(".") - await vector_engine.index_data_points(index_name, field_name, indexable_points) + try: + await vector_engine.index_data_points(index_name, field_name, indexable_points) + except EmbeddingException as e: + logger.warning(f"Failed to index data points for {index_name}.{field_name}: {e}") return data_points diff --git a/cognee/tasks/summarization/models.py b/cognee/tasks/summarization/models.py index add448155..5b0345015 100644 --- a/cognee/tasks/summarization/models.py +++ b/cognee/tasks/summarization/models.py @@ -1,6 +1,8 @@ +from typing import Union + from cognee.infrastructure.engine import DataPoint from cognee.modules.chunking.models import DocumentChunk -from cognee.shared.CodeGraphEntities import CodeFile +from cognee.shared.CodeGraphEntities import CodeFile, CodePart, SourceCodeChunk class TextSummary(DataPoint): @@ -17,7 +19,7 @@ class TextSummary(DataPoint): class CodeSummary(DataPoint): __tablename__ = "code_summary" text: str - made_from: CodeFile + summarizes: Union[CodeFile, CodePart, SourceCodeChunk] _metadata: dict = { "index_fields": ["text"], diff --git a/cognee/tasks/summarization/summarize_code.py b/cognee/tasks/summarization/summarize_code.py index b116e57a9..9efc5b6ca 100644 --- a/cognee/tasks/summarization/summarize_code.py +++ b/cognee/tasks/summarization/summarize_code.py @@ -1,10 +1,10 @@ import asyncio from typing import AsyncGenerator, Union from uuid import uuid5 -from typing import Type from cognee.infrastructure.engine import DataPoint from cognee.modules.data.extraction.extract_summary import extract_code_summary + from .models import CodeSummary @@ -21,7 +21,7 @@ async def summarize_code( ) file_summaries_map = { - code_data_point.extracted_id: str(file_summary) + code_data_point.id: str(file_summary) for code_data_point, file_summary in zip(code_data_points, file_summaries) } @@ -35,6 +35,6 @@ async def summarize_code( yield CodeSummary( id=uuid5(node.id, "CodeSummary"), - made_from=node, - text=file_summaries_map[node.extracted_id], + summarizes=node, + text=file_summaries_map[node.id], ) diff --git a/examples/python/code_graph_example.py b/examples/python/code_graph_example.py index c0b91972b..44ab33aad 100644 --- a/examples/python/code_graph_example.py +++ b/examples/python/code_graph_example.py @@ -11,6 +11,6 @@ async def main(repo_path, include_docs): if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument("--repo_path", type=str, required=True, help="Path to the repository") - parser.add_argument("--include_docs", type=bool, default=True, help="Whether or not to process non-code files") + parser.add_argument("--include_docs", type=lambda x: x.lower() in ("true", "1"), default=True, help="Whether or not to process non-code files") args = parser.parse_args() asyncio.run(main(args.repo_path, args.include_docs)) \ No newline at end of file From 42bb83522c7c99d969010f6255603391336e414c Mon Sep 17 00:00:00 2001 From: vasilije Date: Thu, 26 Dec 2024 17:55:19 +0100 Subject: [PATCH 28/32] Fix diagram --- README.md | 4 +++- assets/cognee_benefits.png | Bin 0 -> 361133 bytes 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 assets/cognee_benefits.png diff --git a/README.md b/README.md index 40005fc09..97dbfeb94 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,9 @@ Try it in a Google Colab Discord community - +

+why cognee +
## 📦 Installation You can install Cognee using either **pip** or **poetry**. diff --git a/assets/cognee_benefits.png b/assets/cognee_benefits.png new file mode 100644 index 0000000000000000000000000000000000000000..d435bed05cc908d7c0c0eb90302ca8afa5a1a9f7 GIT binary patch literal 361133 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�WC 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� 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�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

P?Q|o?KRt!#Co2gAM~H* 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

-why cognee +why cognee
## 📦 Installation From 17d8ad08cdbc2a3c6f90a694171f109343ed56f2 Mon Sep 17 00:00:00 2001 From: vasilije Date: Fri, 27 Dec 2024 10:45:12 +0100 Subject: [PATCH 30/32] Fix instructions --- cognee-mcp/README.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/cognee-mcp/README.md b/cognee-mcp/README.md index a83c07bff..8e4b01572 100644 --- a/cognee-mcp/README.md +++ b/cognee-mcp/README.md @@ -12,6 +12,17 @@ A MCP server project 2. Install dependencies +``` +pip install uv +``` +``` +brew install postgresql +``` + +``` +brew install rust +``` + ```jsx cd cognee-mcp uv sync --dev --all-extras @@ -25,6 +36,8 @@ source .venv/bin/activate 4. Add the new server to your Claude config: +The file should be located here: ~/Library/Application\ Support/Claude/ + ```json "cognee": { "command": "uv", @@ -42,8 +55,8 @@ source .venv/bin/activate } ``` -Then, edit the pyproject.toml in your new folder so that it includes packages from the cognee requirements. Use the pyproject.toml in your cognee library for this, but match the syntax of the automatically generated pyproject.toml so that it is compatible with uv. +Restart your Claude desktop. ### Installing via Smithery From 57a274909c5ecde424bef6ef0bf1dd5d917f99a8 Mon Sep 17 00:00:00 2001 From: vasilije Date: Fri, 27 Dec 2024 11:51:18 +0100 Subject: [PATCH 31/32] Fix instructions --- cognee-mcp/README.md | 45 +++++++++++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/cognee-mcp/README.md b/cognee-mcp/README.md index 8e4b01572..4ffa41e8f 100644 --- a/cognee-mcp/README.md +++ b/cognee-mcp/README.md @@ -37,25 +37,40 @@ source .venv/bin/activate 4. Add the new server to your Claude config: The file should be located here: ~/Library/Application\ Support/Claude/ +You need to create claude_desktop_config.json in this folder if it doesn't exist -```json -"cognee": { - "command": "uv", - "args": [ - "--directory", - "/{Absolute path to cognee directory}/cognee-mcp", - "run", - "cognee" - ], - "env": { - "ENV": "local", - "TOKENIZERS_PARALLELISM": "false", - "LLM_API_KEY": "add_your_api_key_here", - } -} ``` +{ + "mcpServers": { + "cognee": { + "command": "/Users/{user}/cognee/.venv/bin/uv", + "args": [ + "--directory", + "/Users/{user}/cognee/cognee-mcp", + "run", + "cognee" + ], + "env": { + "ENV": "local", + "TOKENIZERS_PARALLELISM": "false", + "LLM_API_KEY": "sk-" + } + }, + "filesystem": { + "command": "npx", + "args": [ + "-y", + "@modelcontextprotocol/server-filesystem", + "/Users/{user}/Desktop", + "/Users/{user}/Projects" + ] + } + } +} +``` + Restart your Claude desktop. ### Installing via Smithery From fe672ce0e40f1e2af72fcb4b566aeac1aaac1924 Mon Sep 17 00:00:00 2001 From: Vasilije <8619304+Vasilije1990@users.noreply.github.com> Date: Thu, 2 Jan 2025 18:34:44 +0100 Subject: [PATCH 32/32] Update README.md --- README.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 727678b9f..f35829783 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ If you have questions, join our Discord
why cognee
+ ## 📦 Installation You can install Cognee using either **pip** or **poetry**. @@ -261,11 +262,7 @@ pip install cognee ## Vector & Graph Databases Implementation State - + | Name | Type | Current state | Known Issues | |----------|--------------------|-------------------|--------------|

(iYHN!%nC- z4RH?%8|-*lfy1~jq6X>|y@aH(D>d=wk!F|!M%6+arwx|sT0o$nIpL^~QD_X*vZUe9 zWTXGgHBqJN^zZo3L>g{bfqm3}u11&9U-2Nh+iMQik6+A z`{+dxQ(p%aH&0RtHchDdmE#r$5k|64m_z2O;$<^T&II=##*T>z{c4|3p(bPHH-1MFtbqKWHi-nNpYr;@g8Y?g?Da&uH+1 z{O$jMs{w+K{+;5yXG4HfmuprL4UG7IP!9gogiAG+FCW(|^z}E{j1&kO495r>gtDHP zti0e1v}>80J}o5Wx(zOLgDb)|@pCpiR$jL$8eOXQI3A#Scki=o7|gq7`@h5E|3}C> z7t-m$9WIzt?17_yf|nEWi{stINlj_zx%ZL+rS}Ul0+eq&0+GmnZG_$_oTW^6Mh)Fl z)MUJ0B?M}O)P@5D@4Q}uDVV2~{|+X-1xs&S_a}v?3sPPAkaiEA_8w{{Y=8q^I{@Kx z1IS6M$CIn1%>zjMG^mgRo_u6VN&gfzf*~}0D4rtpxy$lzdPXmgYi=$HRdNq9FH8SHgGsTs2LrqOIi>_nr<2P zdaZK(8Dkm!(|tEM77GqCZyGvRMCSH3R-2MEw~R_lyM?K5?Frw8e{%RJGyuyqCN5ms8ybR8*;4>EzmjO--Cxnp2jK|N92$ME%Fck^Swxp63jXMtRvkbKLo@48_ki*~)1T>PlN-hQKGz^zopEil-kCikjv#B_$!No(hF`5h<=D>YczV9Jp3 zsio3J#tGCHD7l$2=J>}CCs6K9jB=HqU;gu}zyA$&zJv7xoVpJJ=z?fveC~_iXLHv= z=$CgVPE)5s>V|Ilukmd%K3vGuPv2)$9hflwHle@Wb}M2Fglii+Z(vN1L_tTs*b@Br zfk0_Bmf!{U;t<%JTN}Z>W>6{~OpRBMlWK$`TUvA=FC}v zQXuwsfb#s}Q29@=$X`A#Xl>2c6b?{Y<5vFi*GI|$a7f?IoGU#U7`SfMKG*7IC5-of z5uE&LUV6ky(tBdV*V=kF{&xAva#>iqe>!nOYO!r%Bs5N5G}#0c2paxB_`vWo(n`g~ zFXcciO`J-URnJzoJCQvTD(=+dIZIzj@$d#qm*8fR)KdZzDGWJ7XJsK@c z4}N|+z3kN63riO-J&|8@*K!0TrOQz94MoqCi)+s(Z5iKI@2W!i|8dXY?uS5U{;3!K zt3Q7IghG(L9!<3RZ0dZyq!#S)jIMp=iO91}Wu*$@hwvJ7`hkt*yWN7v-8UUI{{8-; m{#(MLU-|#NYXrntEVd@N>iwB|$+z3UKLcHp^QC89qW>3CHTlc{ literal 0 HcmV?d00001 From 69349cd744070fc09fc3b4fa154d47d171cf5555 Mon Sep 17 00:00:00 2001 From: vasilije Date: Thu, 26 Dec 2024 17:56:08 +0100 Subject: [PATCH 29/32] Fix diagram --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 97dbfeb94..727678b9f 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Try it in a Google Colab Discord community