From 1eda3a64b804d69cdccf070300b9f53c018e9e64 Mon Sep 17 00:00:00 2001 From: Admireux <1071526655@qq.com> Date: Sat, 31 Oct 2026 16:41:15 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E9=99=84=E4=BB=B6=E7=9A=84=E6=96=87=E5=AD=97=E8=AF=86=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crawler/pyproject.toml | 4 + crawler/src/crawler/parse/__init__.py | 0 crawler/src/crawler/parse/image.py | 31 ++ crawler/src/crawler/parse/image_test.py | 24 ++ crawler/uv.lock | 442 ++++++++++++++++++++++++ docs/design.md | 4 +- 6 files changed, 504 insertions(+), 1 deletion(-) create mode 100644 crawler/src/crawler/parse/__init__.py create mode 100644 crawler/src/crawler/parse/image.py create mode 100644 crawler/src/crawler/parse/image_test.py diff --git a/crawler/pyproject.toml b/crawler/pyproject.toml index 76ad4c5..c4058c4 100644 --- a/crawler/pyproject.toml +++ b/crawler/pyproject.toml @@ -5,12 +5,16 @@ description = "鼠钟的抓取节点:抓取、初筛和抽取" requires-python = ">=3.14" dependencies = [ "httpx>=0.28", + "onnxruntime>=1.31.1", + "psutil>=7.2.2", "pydantic>=2.14.1", + "rapidocr>=3.10.0", ] [dependency-groups] dev = [ "datamodel-code-generator>=0.86.0", + "pillow>=13.0.0", "pyright>=1.1.400", "pytest>=9.1", "ruff>=0.17", diff --git a/crawler/src/crawler/parse/__init__.py b/crawler/src/crawler/parse/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/crawler/src/crawler/parse/image.py b/crawler/src/crawler/parse/image.py new file mode 100644 index 0000000..e62f959 --- /dev/null +++ b/crawler/src/crawler/parse/image.py @@ -0,0 +1,31 @@ +"""Read text from image attachments.""" + +import logging +import threading +import time + +import psutil +from rapidocr import RapidOCR +from rapidocr.utils.output import RapidOCROutput + +logger = logging.getLogger(__name__) +_lock = threading.Lock() +_engine: RapidOCR | None = None +_process = psutil.Process() + + +def image_text(data: bytes) -> str: + """Return recognized lines in reading order, with one OCR call at a time.""" + global _engine + + with _lock: + start = time.perf_counter() + if _engine is None: + _engine = RapidOCR() + result = _engine(data) + if not isinstance(result, RapidOCROutput): + raise TypeError("OCR did not return recognized text") + elapsed_ms = round((time.perf_counter() - start) * 1000) + rss_mib = round(_process.memory_info().rss / 1024**2) + logger.info("Image OCR completed", extra={"duration_ms": elapsed_ms, "rss_mib": rss_mib}) + return "\n".join(result.txts or []) diff --git a/crawler/src/crawler/parse/image_test.py b/crawler/src/crawler/parse/image_test.py new file mode 100644 index 0000000..49b83d0 --- /dev/null +++ b/crawler/src/crawler/parse/image_test.py @@ -0,0 +1,24 @@ +"""OCR a generated attachment, without storing real notices in the repository.""" + +import io + +from PIL import Image, ImageDraw, ImageFont + +from crawler.parse.image import image_text + + +def test_image_text_reads_generated_attachment() -> None: + image = Image.new("RGB", (1600, 500), "white") + draw = ImageDraw.Draw(image) + font = ImageFont.load_default(size=52) + draw.text((60, 50), "APPLICATION FORM 2027", fill="black", font=font) + draw.text((60, 160), "DEADLINE 2027-08-10 17:00", fill="black", font=font) + draw.text((60, 270), "SEND THE FORM BEFORE DEADLINE", fill="black", font=font) + buffer = io.BytesIO() + image.save(buffer, format="PNG") + + text = image_text(buffer.getvalue()) + + assert "APPLICATION FORM 2027" in text + assert "2027-08-10 17:00" in text + assert "SEND THE FORM BEFORE DEADLINE" in text diff --git a/crawler/uv.lock b/crawler/uv.lock index f1660c4..f451106 100644 --- a/crawler/uv.lock +++ b/crawler/uv.lock @@ -74,6 +74,100 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/32/d1/a3652fe2c19134d0d15922177821d863cbd7e842d53a21bbe7e8e3a1b5ac/certifi-2026.10.23-py3-none-any.whl", hash = "sha256:e9b54de76e530bb6cf0ccd036787103acb58fd42ba930ea8bf948ddbaa2f61d1", size = 135082, upload-time = "2026-10-23T11:36:14.763Z" }, ] +[[package]] +name = "charset-normalizer" +version = "3.5.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/33/1c/f41d4e74c28ab327ff3acd36053f7ea506c55872d7a90b0fa71aa3ab0c89/charset_normalizer-3.5.2.tar.gz", hash = "sha256:39de2a259fc954455c57274dc94c79d5842774e1247a016aff30bc0efed0f4ef", size = 172659, upload-time = "2026-09-30T04:39:23.398Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/58/ca/7aa91362a2f77ac8e9e28a9b902a74f7d0e11a851ef0d27a74308da8cd90/charset_normalizer-3.5.2-cp314-cp314-android_24_arm64_v8a.whl", hash = "sha256:1afb975bd5d68d5ce9f6b6d44fdf2f7e34b895a35e95708a7a91b20a3b51d187", size = 226010, upload-time = "2026-09-30T04:36:27.669Z" }, + { url = "https://files.pythonhosted.org/packages/a8/cf/ac8878d0322cf88a1aad4c7b147db32ca0bd806eb0060957b2e31486dbe6/charset_normalizer-3.5.2-cp314-cp314-android_24_x86_64.whl", hash = "sha256:bbbfc8e28816f19d7c0f1816664980c0a9875d01b27cdf8eedddb639d9e108ad", size = 239266, upload-time = "2026-09-30T04:36:29.434Z" }, + { url = "https://files.pythonhosted.org/packages/c9/6d/9a08d7e0b29b7208e2c6c01dc56c8e0520e7c7beadbbfb024b58fd69c8a5/charset_normalizer-3.5.2-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:7967d08cf06dee78443b874f98c98036f624f3a4e73e11f9f64f5be4d25393cf", size = 206783, upload-time = "2026-09-30T04:36:30.872Z" }, + { url = "https://files.pythonhosted.org/packages/82/44/b0aa350280e6ff5a5492d17cf10460dd39d5ee848f872f7ba2df10607f60/charset_normalizer-3.5.2-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:4c2b5031f63e331e3839b40aed2dd6f191e9c07edbde303e7876846ea1946995", size = 210449, upload-time = "2026-09-30T04:36:32.625Z" }, + { url = "https://files.pythonhosted.org/packages/7c/8a/40db9aa9f5907bb0e6f8b6d64064bf8852fb33d4b813ff9414911df7647c/charset_normalizer-3.5.2-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fcff63213e8e6e47770541a4607175404f47cbb3ebea7b6058cc82d524a0e424", size = 367815, upload-time = "2026-09-30T04:36:34.197Z" }, + { url = "https://files.pythonhosted.org/packages/7f/72/9c5e7707b57c8ddfa9ddf7b0b1d009d7fbab9e9e887d5b721060f37e307d/charset_normalizer-3.5.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8d86d6fc60743dc916eb79e2eb1ec4818e21e427731543af40a3021851174a13", size = 247095, upload-time = "2026-09-30T04:36:35.803Z" }, + { url = "https://files.pythonhosted.org/packages/83/09/71e453691e927de4ddf792770cfaab3f49d494e222f66ea5e404bbd5e39c/charset_normalizer-3.5.2-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7a881931aa470808df94a8c380eed2bbbc76cd9dc622310f99665658c821eb6d", size = 233942, upload-time = "2026-09-30T04:36:37.407Z" }, + { url = "https://files.pythonhosted.org/packages/9f/86/85c84e4da8b27dd409577d9437926ff581c5f9d3c66038dc68c1a526de51/charset_normalizer-3.5.2-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8024d00c3faf3fc0c16e07a69f4405e8eac7cc0ab15f65fe6cf43827c4cf72b4", size = 273762, upload-time = "2026-09-30T04:36:38.904Z" }, + { url = "https://files.pythonhosted.org/packages/92/08/564955a4b5f2ccb410ab480bbe8c6a18063ff27f2d35458731c4a5335df9/charset_normalizer-3.5.2-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4d48f2d08b9de5864e2c8744d4461b862fb149a18274abc8b698c45975573438", size = 269514, upload-time = "2026-09-30T04:36:40.469Z" }, + { url = "https://files.pythonhosted.org/packages/18/24/bad3ac4271589df29cf5ce2f5ae490518a5739358052bd0d61209e6fea54/charset_normalizer-3.5.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:34276fd796040bf0993ab33a369aa572e6979c7aab225a88893667ad8eac8f7a", size = 255056, upload-time = "2026-09-30T04:36:42.02Z" }, + { url = "https://files.pythonhosted.org/packages/d6/3e/350d89ad49916b86554d6f5f2d03ec1152148f87e5ff735106c6a03b1a36/charset_normalizer-3.5.2-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0521c5665880b33d603717defa76c094048900010897909952397feb3039da56", size = 251311, upload-time = "2026-09-30T04:36:43.577Z" }, + { url = "https://files.pythonhosted.org/packages/56/5b/4970a2d154df502e133402906dd04e3ae7cada7b3011283c88d0479a2585/charset_normalizer-3.5.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:eff0ac9dbe711a4aee69bf04a83896aa9b85f19641264053a9f6d48573abb7dd", size = 250190, upload-time = "2026-09-30T04:36:45.185Z" }, + { url = "https://files.pythonhosted.org/packages/88/8c/f1a91bddc8fb47c2889e29ea7ea49a194eb0d9868675d786806519c00d76/charset_normalizer-3.5.2-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:1503bccbeb36d5527790c3930327704c39af22de3112f1b1666a9f3ce15ee204", size = 237098, upload-time = "2026-09-30T04:36:46.689Z" }, + { url = "https://files.pythonhosted.org/packages/24/0e/bb5dace3cc7e79068425386a6589c19b5a2ab5fefc2a46abea6919683332/charset_normalizer-3.5.2-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:52aa6992700996af31f375de0c6bacd402b0097fe40b53c426b9f51a90ebabc7", size = 274228, upload-time = "2026-09-30T04:36:48.31Z" }, + { url = "https://files.pythonhosted.org/packages/9d/79/b849ad523017ea9f5a45581bbebed91439e0cf42fd2860a6f64e358eb5a6/charset_normalizer-3.5.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:e09a3942ecbdee5cce73ea9d42da82b81b72ac1bf031ce069b93b5adf4eac8cd", size = 252401, upload-time = "2026-09-30T04:36:50.091Z" }, + { url = "https://files.pythonhosted.org/packages/89/8c/75469d690cf47200bce8f6cad7655724fc23148e147abfc5ce78b5f65863/charset_normalizer-3.5.2-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:c7c9ab723cde841fefb34efbad91e87f00a674b1fe1cd0784fde742bf2c154dc", size = 271846, upload-time = "2026-09-30T04:36:51.719Z" }, + { url = "https://files.pythonhosted.org/packages/26/cd/6d52d3c7437cdcf2e310ce9f28f282e733d4ef60ed19105d1819c356255f/charset_normalizer-3.5.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ddc7dacc8ece3a182e7f15cb862d1fd616b46d076cb1ae9dd232b2c38b655874", size = 258151, upload-time = "2026-09-30T04:36:53.234Z" }, + { url = "https://files.pythonhosted.org/packages/f7/4c/070b38bdb5f49a70199fce923ec0726a49536a63ab262abbfcaaf351110b/charset_normalizer-3.5.2-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:ee43c17b173d46a3212baa6ead3ae258eeabdae48c263a01ccf0218c366dd655", size = 143570, upload-time = "2026-09-30T04:36:54.816Z" }, + { url = "https://files.pythonhosted.org/packages/81/84/9ebfc8ed6c8c4fcd8e726ff6bf220cc8deb3966e31dce9be8dd8aa017e64/charset_normalizer-3.5.2-cp314-cp314-win32.whl", hash = "sha256:4f87960d57feabfb618e4e0af6e7371645fa26a277860739d6e5d6e0012c92f0", size = 186412, upload-time = "2026-09-30T04:36:56.643Z" }, + { url = "https://files.pythonhosted.org/packages/d1/78/5ed86f743d4bc350db307e7636419a0a5ee1d91806d30c7f667bd5c80dae/charset_normalizer-3.5.2-cp314-cp314-win_amd64.whl", hash = "sha256:e4e81e09c1578b8df602e3db08b0b3ea0a6947ad612f52bf8dc5ea8d47691f0c", size = 210965, upload-time = "2026-09-30T04:36:58.205Z" }, + { url = "https://files.pythonhosted.org/packages/53/94/a3a7698e9b1a395e1eb99ccd9a324be9347973bff4e72db2a06496d7cd27/charset_normalizer-3.5.2-cp314-cp314-win_arm64.whl", hash = "sha256:80d02b6f04e92601a081dd97b23d3128033098bff5d35d392ddcc0476ea11253", size = 200406, upload-time = "2026-09-30T04:36:59.764Z" }, + { url = "https://files.pythonhosted.org/packages/c1/48/c5dd00d5ef7791f02666de250a5bb6071e29b7e133cf4b835800b6d3bc27/charset_normalizer-3.5.2-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:dca9ab98072a5a54ebacebdc45f53e645336b320c667410b061be1ca588ae709", size = 396871, upload-time = "2026-09-30T04:37:01.543Z" }, + { url = "https://files.pythonhosted.org/packages/12/c8/8379554b42e8368161d898476686947a0fdbd3e8865170d7909dcabfdee8/charset_normalizer-3.5.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f0aa869112ef88429ae17820d99c3dd9504c9e9c671d3c246f3d7442cb051084", size = 249711, upload-time = "2026-09-30T04:37:03.111Z" }, + { url = "https://files.pythonhosted.org/packages/4a/eb/2ddb1035d17320caa9f41682935123a9a250277b261c3efc86b2d2a21343/charset_normalizer-3.5.2-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c0afc6800ba57ccc350374c5bd6150419915d95ce93cdbab2d783d75eaf30ecb", size = 231146, upload-time = "2026-09-30T04:37:04.721Z" }, + { url = "https://files.pythonhosted.org/packages/4a/24/2ecb4bde104322cd7859d6594fcfa74649f8d90b3221c9feecbef149875b/charset_normalizer-3.5.2-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7dcd882da75ef9adf94903b1e3b9419e8aa8fb4c7396822b834b9ef7fb96954f", size = 271552, upload-time = "2026-09-30T04:37:06.295Z" }, + { url = "https://files.pythonhosted.org/packages/3f/98/9d5f6ebc3aee9fef5d30b4aff11fb2ab7a1222b4064f8ef2c7c87cde217a/charset_normalizer-3.5.2-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2e06a3a98f916dd41d27f3105e02e7a40181c98c94b9158733d03a6f80506c09", size = 269810, upload-time = "2026-09-30T04:37:07.905Z" }, + { url = "https://files.pythonhosted.org/packages/09/e1/a3b06a10461b1b7628853c934c644e03bc28e42767116afb52f19a56519b/charset_normalizer-3.5.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6bd128f206a7752ae1f2ab6c61bf8a24ba28913a10df8b14c2637b973ff97a80", size = 259845, upload-time = "2026-09-30T04:37:09.554Z" }, + { url = "https://files.pythonhosted.org/packages/fd/d3/6f561f74a296cf27d61775a1dc665ad13f3bff6a798810ca05907f37a7c4/charset_normalizer-3.5.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c8f3d67aeaf55f017982b73683f0e7342ba2f6635a78f69ce89ebb26aa411e5c", size = 252825, upload-time = "2026-09-30T04:37:11.274Z" }, + { url = "https://files.pythonhosted.org/packages/26/9f/69e13ca3b18f43e0eafcd34c04a45b732ae22a43b54a5fc9e119103356eb/charset_normalizer-3.5.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:fe9753dfee015c570d73df76f899f18444d41388bffcde097deba51c4fadbb9f", size = 252659, upload-time = "2026-09-30T04:37:12.941Z" }, + { url = "https://files.pythonhosted.org/packages/73/a9/ace29806a0dae18939919c76ba526472d83214afa101105fabff2cf30625/charset_normalizer-3.5.2-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:92888bb3187c5ba50500b00b3b310c9f2c651709d28036077680cb5255450a03", size = 238819, upload-time = "2026-09-30T04:37:14.659Z" }, + { url = "https://files.pythonhosted.org/packages/f8/c1/6116d52a2e3311ec80f21f5fb5e17b27405f10b9608af8f6e69516841a1b/charset_normalizer-3.5.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:d008d90a7f2471519aef0c90dfbe73b3e6e4d5e66ac48e19154c17e89e98b604", size = 272973, upload-time = "2026-09-30T04:37:16.346Z" }, + { url = "https://files.pythonhosted.org/packages/19/aa/9955c7e93bba10a9c7e8f7a5031b7ced66f3a1883a55c00712b8d5850ff3/charset_normalizer-3.5.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:31f3930700408d211f13378ccbe1c40845d8da54bd0681fac3a9b5aae81c7aa8", size = 253692, upload-time = "2026-09-30T04:37:18.212Z" }, + { url = "https://files.pythonhosted.org/packages/bb/33/2a6ae7fdc1b10cb581cef91addd8cdfc5f40d50abb5702309369d5834579/charset_normalizer-3.5.2-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:2a925889534b3748302dae5dead07cc13480de1dac3aea80a941b729b471ef93", size = 268757, upload-time = "2026-09-30T04:37:19.877Z" }, + { url = "https://files.pythonhosted.org/packages/a2/22/80992720a0282cd39bba1db35868e6b9c22f41281160143a836544bc1d8a/charset_normalizer-3.5.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f5ec61164adcec446f8969a3358ec3f9b26bbda3b9213e5586d219afa8df2915", size = 262220, upload-time = "2026-09-30T04:37:21.583Z" }, + { url = "https://files.pythonhosted.org/packages/92/9f/181fd07e1bffea1d95cd80c84ac537354f50699c22cfc4d3c02b6fc16208/charset_normalizer-3.5.2-cp314-cp314t-win32.whl", hash = "sha256:598a11a2c7ebaa5334bf698bf29568c9c390abac6a154d8170fedecd1cea38c5", size = 197797, upload-time = "2026-09-30T04:37:23.235Z" }, + { url = "https://files.pythonhosted.org/packages/49/1c/25d8415ec1c4f2f41f1680435e4c87cfb378ff2f677d950946f2a45d0632/charset_normalizer-3.5.2-cp314-cp314t-win_amd64.whl", hash = "sha256:7fdde2c9fd9e3eca40631e024664cf2584272cc8f96308cbe5fdfc930f51d8bc", size = 222765, upload-time = "2026-09-30T04:37:24.891Z" }, + { url = "https://files.pythonhosted.org/packages/3e/b4/46b48f013dadfc0d0d33b375438e31bdf5a989dc68389c6bf627054d4df9/charset_normalizer-3.5.2-cp314-cp314t-win_arm64.whl", hash = "sha256:d1befeed746d247c81127bb14de9dc3d30edb6e5976d34f83f86ed262b1d9105", size = 210985, upload-time = "2026-09-30T04:37:26.634Z" }, + { url = "https://files.pythonhosted.org/packages/ca/e9/34e597dee616d0b8ee4b34d29399e85c2204ade174157a48505d42baa4ff/charset_normalizer-3.5.2-cp315-cp315-macosx_10_15_universal2.whl", hash = "sha256:87475fabc8d9996fd9c27debb395e642e8c838d78a00b6e932227a0e06b81e26", size = 367676, upload-time = "2026-09-30T04:37:28.329Z" }, + { url = "https://files.pythonhosted.org/packages/60/9f/a5d1c91c0263745e2cd344c5a4415d787c575501ab1d449f1148ac6b495d/charset_normalizer-3.5.2-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9409a8bf35cf78353942504b24a57de3d75b708997a1e4bd8db71ac8633ce364", size = 248414, upload-time = "2026-09-30T04:37:30.167Z" }, + { url = "https://files.pythonhosted.org/packages/26/79/e697f77464748a3ee3cf490c83d592459400d4898380d66c38366b03080c/charset_normalizer-3.5.2-cp315-cp315-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:498dc3188ca05a68231ac3fdbfc7f57eb67e1343c30e0fea17f8218c1599b253", size = 244775, upload-time = "2026-09-30T04:37:31.964Z" }, + { url = "https://files.pythonhosted.org/packages/ca/87/3d42a42e18ea066e2513936fd678a00696e77878b5ae04528976abdbcb83/charset_normalizer-3.5.2-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e242bb1c5e76e97dfa9e7f209a71e93a01d7f19ffdd5cfbb2e2d55b4f08f8ab0", size = 273877, upload-time = "2026-09-30T04:37:33.661Z" }, + { url = "https://files.pythonhosted.org/packages/c3/76/8a28136f3938ba9836f84280ce0c4d61ed1cf15a036b2034900c62634162/charset_normalizer-3.5.2-cp315-cp315-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:def79fa35ef0cef8d2accec024f4fdc7ead3012ff02f5215c783f39f03ef8cfc", size = 269455, upload-time = "2026-09-30T04:37:35.573Z" }, + { url = "https://files.pythonhosted.org/packages/a0/a1/4fbf5d0f0f1b2a080474c1cf9a2f12c4c6531bb0e8ba591055e846d2b4e9/charset_normalizer-3.5.2-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3df041de8887954562c9b261cba85ca0e9ded74048daf125f45edcfaa4832229", size = 257336, upload-time = "2026-09-30T04:37:37.397Z" }, + { url = "https://files.pythonhosted.org/packages/ba/a2/8b50aa320adb880ad579518e6f718f24944804b42a88b83d267d5d444125/charset_normalizer-3.5.2-cp315-cp315-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:04851f73ae72b8413dddadb16a49dfee95263553741fd42d546f7d66907e6be5", size = 257584, upload-time = "2026-09-30T04:37:39.522Z" }, + { url = "https://files.pythonhosted.org/packages/a5/57/50e3fed84e175f40349bd0da7a4fce94c87f0378f52d74f511d89e0bdc20/charset_normalizer-3.5.2-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:183b88127acdb4fabe59d951ab424faf1af7b63cdbb5f776186c1ea2ffcaed98", size = 251854, upload-time = "2026-09-30T04:37:41.23Z" }, + { url = "https://files.pythonhosted.org/packages/d6/54/f7fbb3493c9f49091213b9c2d6dd65800696f1ce1a3f196a4205f50417b1/charset_normalizer-3.5.2-cp315-cp315-musllinux_1_2_armv7l.whl", hash = "sha256:16fa0eccf81304b79c5cd87f9271c3b85dd9dd99245e4422ae9c0dd45e0f99d3", size = 248767, upload-time = "2026-09-30T04:37:42.883Z" }, + { url = "https://files.pythonhosted.org/packages/d9/37/b3a6385acc5a1e45b39ae9c90bfb9cf838a09b9dd37ef2740ab4c6b4a2eb/charset_normalizer-3.5.2-cp315-cp315-musllinux_1_2_ppc64le.whl", hash = "sha256:7441d755b7ab94f8d4eb3e43ec05482d760842fd263d003a99102d742cd835e2", size = 274479, upload-time = "2026-09-30T04:37:44.658Z" }, + { url = "https://files.pythonhosted.org/packages/89/44/809913e2cfd279e635a9294fdbbfb1b1dc62a8189d473d561f649fce98d8/charset_normalizer-3.5.2-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:ca403d7e4798f525fdfc78e258820419cbbd0f0ecbab9de7840e3c017cf6b8cf", size = 258310, upload-time = "2026-09-30T04:37:46.529Z" }, + { url = "https://files.pythonhosted.org/packages/af/a2/f28400ab13359d91bd39179df8e149376b9bf36588e739a3a4f9de2b84b2/charset_normalizer-3.5.2-cp315-cp315-musllinux_1_2_s390x.whl", hash = "sha256:df29a0a7107f7011e77f4eebdddec4c7331e24d787a0b21a46d63bdf7445da95", size = 271100, upload-time = "2026-09-30T04:37:48.399Z" }, + { url = "https://files.pythonhosted.org/packages/e9/89/9bab37955edf0adb3b66f8a3a6617d9f2f487e0d56f295a6a286cb640aa6/charset_normalizer-3.5.2-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:f3c96f633825733f735c5a9cf21d21a257d8e1edf0b1cee0a064b9c424ca0f7d", size = 259936, upload-time = "2026-09-30T04:37:50.023Z" }, + { url = "https://files.pythonhosted.org/packages/23/b5/4459e08d45a679f903d50fea08bc52cfa728cca4d7bd02c757b5e5abda2e/charset_normalizer-3.5.2-cp315-cp315-win32.whl", hash = "sha256:281cb91036248400f4cc957495cccd44c275c2e0c5854f7e45ac5cf7dc193847", size = 186301, upload-time = "2026-09-30T04:37:51.722Z" }, + { url = "https://files.pythonhosted.org/packages/98/e8/55d5fd3935b4bce6da4fe0df61898e8c82653e317e677bd58aceb9c60f13/charset_normalizer-3.5.2-cp315-cp315-win_amd64.whl", hash = "sha256:89b53f3cda69831909888e0494f4fa0bcd3537e3e138dabeb620bd6ad946bae8", size = 210858, upload-time = "2026-09-30T04:37:53.427Z" }, + { url = "https://files.pythonhosted.org/packages/a9/5b/974423c2fd8e524c7a7f64318c1e02240ef954912fa2b4d70344107b9c68/charset_normalizer-3.5.2-cp315-cp315-win_arm64.whl", hash = "sha256:6be488a102b8cf28d0391d8c4ba7748938ae28b78ad901f8585520fca33ead1a", size = 200309, upload-time = "2026-09-30T04:37:55.015Z" }, + { url = "https://files.pythonhosted.org/packages/ee/f9/00ee0195db1013d8f7c416fd770fbeb560bb46eb2e36b054d05cb56f6cfa/charset_normalizer-3.5.2-cp315-cp315t-macosx_10_15_universal2.whl", hash = "sha256:915563965d418f986e7e145accc592eae9e1a1be3566ff98a05d7a9ec42a76e1", size = 395343, upload-time = "2026-09-30T04:37:56.743Z" }, + { url = "https://files.pythonhosted.org/packages/04/3a/c00b50e94c964cf934c7899cd47c97952fc11dad71cc5884b3c61795b09b/charset_normalizer-3.5.2-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:65cd72beeeca9d3aaea1201e5923859f308f952f9c71de93f06063c79f0f7a3b", size = 250114, upload-time = "2026-09-30T04:37:58.607Z" }, + { url = "https://files.pythonhosted.org/packages/50/27/d102dc880bbcffd0479ab64dfc1fb96777a854355a55e2bda72a71efadcb/charset_normalizer-3.5.2-cp315-cp315t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b7fd005a73d9e657273b7a10dc71a9e03c8fb9ee6999798d6918ce095b81ac7f", size = 239997, upload-time = "2026-09-30T04:38:00.511Z" }, + { url = "https://files.pythonhosted.org/packages/a5/4a/bf7ef45794dd293fab5f98a9309817977fbb845b9998f171b8cc5d8437a3/charset_normalizer-3.5.2-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e54da4baf05720032d527874d40b65fa4d7e5c6c6a43d0c3adbeffcaf275a2b3", size = 272313, upload-time = "2026-09-30T04:38:02.509Z" }, + { url = "https://files.pythonhosted.org/packages/e8/ee/008a2837737991474c5754bb3191010007663860979701990982a502cbaf/charset_normalizer-3.5.2-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:124fbf1a8ff966d87ae05bb8bd45a71f966055ed8bba320d0c7cf450bc5f4d0e", size = 269986, upload-time = "2026-09-30T04:38:04.435Z" }, + { url = "https://files.pythonhosted.org/packages/93/ad/bd74a283940dc910c5b14f8e4f80a248082bc9c0fcbe1f54530cb6d9cc5e/charset_normalizer-3.5.2-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:28b4f0d66fb834ff90f28209ac7bce77868c45d8c93e26f906709d9b7c2e1af9", size = 260202, upload-time = "2026-09-30T04:38:06.549Z" }, + { url = "https://files.pythonhosted.org/packages/8a/7b/ed341c66f69f688723501fac752be3d63c7159ca0d0d4174fc611e5710bb/charset_normalizer-3.5.2-cp315-cp315t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:58ca3755ee7ff7f59b57789ec9833c9de9ea275405cdd240eda1f193112e398a", size = 259083, upload-time = "2026-09-30T04:38:08.311Z" }, + { url = "https://files.pythonhosted.org/packages/cc/9d/e41588b777965e5031a43128a1e96173ebb35ac75fc53ec3b517e7c21cd4/charset_normalizer-3.5.2-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:443eae2bf318abeaf6f15d785138f71fd6de770e99a92158b8b814265e079115", size = 253081, upload-time = "2026-09-30T04:38:10.402Z" }, + { url = "https://files.pythonhosted.org/packages/81/35/b761eb6d8c1eb218b9b42b9b4d5ac902afdc399fb6dac6f9a9aac7bda589/charset_normalizer-3.5.2-cp315-cp315t-musllinux_1_2_armv7l.whl", hash = "sha256:58f361dcbab699cf8f42db3f47c8e7fd1036f138c23a5d08de9fde5f425a730c", size = 248712, upload-time = "2026-09-30T04:38:12.317Z" }, + { url = "https://files.pythonhosted.org/packages/4d/2c/147169a041b747759f37405c0a97157e8e92de967968373101ff14915cba/charset_normalizer-3.5.2-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:1b4cbc7c3491ccb4aa17fcd8165649d01cf39f76de1696da8631b5f71b85401d", size = 274176, upload-time = "2026-09-30T04:38:14.138Z" }, + { url = "https://files.pythonhosted.org/packages/f0/2d/0ff8db0d373ba8538db686db11cd7e8912031490b9e4f383b41912e8d594/charset_normalizer-3.5.2-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:ba0b1d2620edf869789c3879223f52bf2afc5d31b3cb47cc57b3a12c05e2aa9d", size = 259413, upload-time = "2026-09-30T04:38:15.841Z" }, + { url = "https://files.pythonhosted.org/packages/8a/8e/b4a085fb47c9d3a7e43576a4784fdd8fe23f907514a972de8086edaf7a48/charset_normalizer-3.5.2-cp315-cp315t-musllinux_1_2_s390x.whl", hash = "sha256:5e2b6b57e9733d39f0c9fd3185efa6b8e29652c4cd8fe94180272cf6ed9a78c4", size = 269434, upload-time = "2026-09-30T04:38:17.626Z" }, + { url = "https://files.pythonhosted.org/packages/83/1c/d8d8d7322a7c3eecdf3237a4a419cf41d2eaad8e006ce7dfdd9d4c8fa2eb/charset_normalizer-3.5.2-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:51cf45226a9b588d0d2b4880c62d686934b63ab0bd79ca23ab0e9762eb27441b", size = 262716, upload-time = "2026-09-30T04:38:19.214Z" }, + { url = "https://files.pythonhosted.org/packages/a0/16/0e4c6ba9b44e97a2da150e52d331e8f9c968b21b358fbffa6c856cebcd89/charset_normalizer-3.5.2-cp315-cp315t-win32.whl", hash = "sha256:5fb29fb8cd1a46c27a1bf9613ad5ec2599310d46b4025d9556404a6b6a292800", size = 197159, upload-time = "2026-09-30T04:38:21.037Z" }, + { url = "https://files.pythonhosted.org/packages/be/33/e90bc2b1374f7f36ef106f56620de5a783907e19ca857efe2277e31cac3e/charset_normalizer-3.5.2-cp315-cp315t-win_amd64.whl", hash = "sha256:a192e2c40070d92c3ccf777e3a5c4ff515573cd2bb7ed0c537fdadbbec5bbf21", size = 221322, upload-time = "2026-09-30T04:38:22.886Z" }, + { url = "https://files.pythonhosted.org/packages/66/89/dfa6dcb08c200b7830ab56439e8c1890f2971d51aafbb3937894a2e7fcfc/charset_normalizer-3.5.2-cp315-cp315t-win_arm64.whl", hash = "sha256:749e97e1b32313717a565abbe321bc2190bc8b35f1a67e4cdbc7c56c8d8ffe58", size = 209192, upload-time = "2026-09-30T04:38:24.648Z" }, + { url = "https://files.pythonhosted.org/packages/8c/ab/176fbfd5b64939c55d652366aa5b9ef1d767af207a3aa6ebeb0d226c484d/charset_normalizer-3.5.2-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:4275811936e2f06feff5e598fb42a1b7ae852da8e39605211892b56b81a34efd", size = 331815, upload-time = "2026-09-30T04:38:26.216Z" }, + { url = "https://files.pythonhosted.org/packages/7e/84/371eac6b30bdbcbf2d632a1a01809103459216fcaae61b8b8d922c1bfb8a/charset_normalizer-3.5.2-cp37-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:1c50fe28bbc2ced33386f298650d91218076c05420e6cbd790b913adc41659e7", size = 253276, upload-time = "2026-09-30T04:38:28.032Z" }, + { url = "https://files.pythonhosted.org/packages/43/6f/c4fbae58febff71709c51bc7e18fdfa55341dc382704740f9f0cbf03817b/charset_normalizer-3.5.2-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d19fbd981a488e22cd04883659ca6b08f50b5974f9fd7c95655ef6a043e5893f", size = 241239, upload-time = "2026-09-30T04:38:29.732Z" }, + { url = "https://files.pythonhosted.org/packages/61/71/458c3f42164a07d0c5210798e9e704b39e540a6793b05aba67f3a35243a9/charset_normalizer-3.5.2-cp37-abi3-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0fed1d06615f022ee3b13caf5e8b180cfea32bb2c5aded8a9d44277afc040f93", size = 231121, upload-time = "2026-09-30T04:38:31.462Z" }, + { url = "https://files.pythonhosted.org/packages/09/54/ab9e89367076f6331bb6c65c4bf14a5361fa5191cb6561bf534f18504e1b/charset_normalizer-3.5.2-cp37-abi3-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:838dcc90063569a0448120554591a1d6c4a4ffe11babf048908793154ab86ade", size = 260350, upload-time = "2026-09-30T04:38:33.239Z" }, + { url = "https://files.pythonhosted.org/packages/7c/c1/061431ecc688d9d76602502cb57cc01e691e682c18f1beb45f9673b5bbd2/charset_normalizer-3.5.2-cp37-abi3-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2ce45c6627b22c47e390bc91a41c3d13032192e699fa0bea96e9671b373d69b0", size = 255430, upload-time = "2026-09-30T04:38:34.865Z" }, + { url = "https://files.pythonhosted.org/packages/8d/1f/20c8949f0676f7ab811abdeb7f4d7f1cbc6e61ff20bef08b44edeb092bc8/charset_normalizer-3.5.2-cp37-abi3-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0774bf9bf620249fee3e0b8b9fd3065de213be30f3aa94ce2494b3b638949e26", size = 250612, upload-time = "2026-09-30T04:38:36.649Z" }, + { url = "https://files.pythonhosted.org/packages/2b/9e/46f2fa4c431fc98c4ae76a8cb5bdca54e0341e3cfc3fcfd8e82740250818/charset_normalizer-3.5.2-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:1db38f4c5496827c1a501846d64d14c3b80c7e6714e406cd7dc36a9899fa1011", size = 242083, upload-time = "2026-09-30T04:38:38.26Z" }, + { url = "https://files.pythonhosted.org/packages/bd/39/559be29a0c0f086e0bba6922babd38916cc5e0b58ced4de13ee01ea05508/charset_normalizer-3.5.2-cp37-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:304d8e4d493af723536393eee0c689eb7813f4a474c8b479dee63f1fdd98f621", size = 232738, upload-time = "2026-09-30T04:38:39.81Z" }, + { url = "https://files.pythonhosted.org/packages/ff/6c/387b0e4f756a282831c1d9fc6aeb6c51ca4507ca202767c8de15ce9b12e2/charset_normalizer-3.5.2-cp37-abi3-musllinux_1_2_ppc64le.whl", hash = "sha256:9b7f416ff0978e2f2249330527f0ad6fa02f4932e6199692d3b52da2048c19e4", size = 260703, upload-time = "2026-09-30T04:38:41.346Z" }, + { url = "https://files.pythonhosted.org/packages/96/92/1fdf015f09ef449f50d3ac4b67c90887c9c318b727daa95cc4f866e6521d/charset_normalizer-3.5.2-cp37-abi3-musllinux_1_2_riscv64.whl", hash = "sha256:01077390b03f7988f11d700a2194e69b119741a86b1a638b1db88891e3eced8e", size = 247622, upload-time = "2026-09-30T04:38:42.937Z" }, + { url = "https://files.pythonhosted.org/packages/dc/3c/8e7b8a5671ad5d433669fb2a76f1a0164df2d9b1718b0206bc2a16d840cc/charset_normalizer-3.5.2-cp37-abi3-musllinux_1_2_s390x.whl", hash = "sha256:7e841fb9010836c992c9f12fcbd43a831de93a5f726fc1ccd8ca1d0268c5014c", size = 257500, upload-time = "2026-09-30T04:38:44.604Z" }, + { url = "https://files.pythonhosted.org/packages/b4/f0/45b579df5cabc1d5d53ea1cc35e8437d3ca768c0acccc7041517cb6fbb32/charset_normalizer-3.5.2-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:9cae88599c7219005d879f98e5ed53341e9a122af585e1091200358a3003d2a0", size = 255100, upload-time = "2026-09-30T04:38:46.289Z" }, + { url = "https://files.pythonhosted.org/packages/31/68/fdec18a343f5fb3f310588dd478b09ac4799e0b187dbade3a8cd776f03ef/charset_normalizer-3.5.2-cp37-abi3-win32.whl", hash = "sha256:01b0c0d2262a9e28e8484a278c7e1b5d650e3ac8cf2683d2967e25899f208bdf", size = 174499, upload-time = "2026-09-30T04:38:47.999Z" }, + { url = "https://files.pythonhosted.org/packages/9d/8a/b618149cc5207943a0242068d7a27897f56a62947b5a039085f2a22029f8/charset_normalizer-3.5.2-cp37-abi3-win_amd64.whl", hash = "sha256:9f56f72050826f63dcee7a7f55b0a77168cb3bfc553fd405e7f8f9ece75a4036", size = 200092, upload-time = "2026-09-30T04:38:49.707Z" }, + { url = "https://files.pythonhosted.org/packages/03/cf/4c66866fa9e2b1c78e3c911516d1de497a677b7ac60f1eceda74ce777ca3/charset_normalizer-3.5.2-cp37-abi3-win_arm64.whl", hash = "sha256:40ab6bffa02ae10a0581e6c198be7d2d8ca5c2a0c64e4ed3465d766df457573e", size = 294363, upload-time = "2026-09-30T04:38:51.312Z" }, + { url = "https://files.pythonhosted.org/packages/fc/ad/d07d7862a62ffa6d79d68074d14823243dd235a77c45262acbf6adeb28bf/charset_normalizer-3.5.2-py3-none-any.whl", hash = "sha256:b6b751274acb69d77b3323d6b7dbaa3c7fdfc1eb829b7eb61d262f32e1af9685", size = 68872, upload-time = "2026-09-30T04:39:21.828Z" }, +] + [[package]] name = "click" version = "8.5.0" @@ -92,18 +186,34 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, ] +[[package]] +name = "colorlog" +version = "6.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8c/55/ba79756cb90c8d69d599d57785398ac87bba7b19c80e87f4e8a562197c93/colorlog-6.12.0.tar.gz", hash = "sha256:2a7924c1dadf18b22a0eb8b06d1c7b01d5341707ec1641eb6fcc4fde0c3e8e5f", size = 18151, upload-time = "2026-07-23T13:40:40.71Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d4/19/0b6647bf5e331521e55d2b63bfbdc210bd9cd605189273f03614a05f702d/colorlog-6.12.0-py3-none-any.whl", hash = "sha256:30d392604e9110045a2c2aeefc27d7a017abbab63f3a8aee594eac0801df784e", size = 12239, upload-time = "2026-07-23T13:40:39.562Z" }, +] + [[package]] name = "crawler" version = "0.1.0" source = { editable = "." } dependencies = [ { name = "httpx" }, + { name = "onnxruntime" }, + { name = "psutil" }, { name = "pydantic" }, + { name = "rapidocr" }, ] [package.dev-dependencies] dev = [ { name = "datamodel-code-generator" }, + { name = "pillow" }, { name = "pyright" }, { name = "pytest" }, { name = "ruff" }, @@ -112,12 +222,16 @@ dev = [ [package.metadata] requires-dist = [ { name = "httpx", specifier = ">=0.28" }, + { name = "onnxruntime", specifier = ">=1.31.1" }, + { name = "psutil", specifier = ">=7.2.2" }, { name = "pydantic", specifier = ">=2.14.1" }, + { name = "rapidocr", specifier = ">=3.10.0" }, ] [package.metadata.requires-dev] dev = [ { name = "datamodel-code-generator", specifier = ">=0.86.0" }, + { name = "pillow", specifier = ">=13.0.0" }, { name = "pyright", specifier = ">=1.1.400" }, { name = "pytest", specifier = ">=9.1" }, { name = "ruff", specifier = ">=0.17" }, @@ -143,6 +257,14 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a3/5b/f76dac052451e88fc0b622c3d996fa48637da9fa1e3c2b9ca2b84aead28a/datamodel_code_generator-0.86.0-py3-none-any.whl", hash = "sha256:1a3d6f0a14a33e334b4251d04e67b0b6ef05c96d4625fb99bd09d716e30ea084", size = 1605265, upload-time = "2026-10-18T15:43:27.808Z" }, ] +[[package]] +name = "flatbuffers" +version = "25.12.19" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/2d/d2a548598be01649e2d46231d151a6c56d10b964d94043a335ae56ea2d92/flatbuffers-25.12.19-py2.py3-none-any.whl", hash = "sha256:7634f50c427838bb021c2d66a3d1168e9d199b0607e6329399f04846d42e20b4", size = 26661, upload-time = "2025-12-19T23:16:13.622Z" }, +] + [[package]] name = "genson" version = "1.4.0" @@ -359,6 +481,108 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/54/c8/12811c9b48fde162bb72b6f2e78fada9a247a09d7bb5be2050a5d099c77b/nodeenv-1.11.0-py2.py3-none-any.whl", hash = "sha256:edaa16e6c14d7cf395d75d4bbd5a26390f4dc06501a33b4e76282b02cc688a25", size = 34277, upload-time = "2026-09-26T11:29:19.933Z" }, ] +[[package]] +name = "numpy" +version = "2.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/95/b0/c7453d0b6e2073c3264468b106ee1563750cecc910965e67357e3698c83e/numpy-2.5.4.tar.gz", hash = "sha256:9a94cf751c9ad8ebaa835bcd3d40dacf8534ad086b88c38029b65123c7999d2a", size = 20866315, upload-time = "2026-10-10T20:05:31.422Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/99/ba/005cb5edd580d2f84d7ca3206b92dc17d4388e56e6f87ffe8f2762f83139/numpy-2.5.4-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:c668b2f0d651605b58892644b0e302c7157f7159544227758c896982ef384b18", size = 17005499, upload-time = "2026-10-10T20:03:37.961Z" }, + { url = "https://files.pythonhosted.org/packages/f3/49/fee7587c33ee35f7977f9051d7f2023d4e7246d62710c80f20c2361ea232/numpy-2.5.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ffa6ce09a1c6a08e9667dd9c97aa0b14184e8d18f2a14b78b2a2328c9147f076", size = 12019666, upload-time = "2026-10-10T20:03:40.606Z" }, + { url = "https://files.pythonhosted.org/packages/d5/b2/c6ce165acffceb15a82c07b9cc77d391f86b3f379ba62911908ae5d34b91/numpy-2.5.4-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:956555e0603a4d38019ae6925711cb9dc43195c076a928accf7ea5d50bddfe53", size = 5455617, upload-time = "2026-10-10T20:03:43.138Z" }, + { url = "https://files.pythonhosted.org/packages/77/7f/dd85ce260a669a89be06842cf355d7353a33e6cfbc590fb8ebb947d88dc9/numpy-2.5.4-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:2c2c4afffdeb7920e445028dd71eb932cac3e704792e964bc2a232426d4f1255", size = 6791932, upload-time = "2026-10-10T20:03:44.874Z" }, + { url = "https://files.pythonhosted.org/packages/63/d6/34b0a2b0741386a63025a65a2c09caaaaaad6d0ca95b66cd65c30dd7fcb5/numpy-2.5.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4054173604cd8658796053f1f3bc0befb68ec1c0762c57fdad61e199256a8617", size = 15710899, upload-time = "2026-10-10T20:03:46.839Z" }, + { url = "https://files.pythonhosted.org/packages/16/d5/928078d2b28f26829b138b4a6c3980045022fb409f570657a224ae60ef4e/numpy-2.5.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d549420b8858885cea8838a727842249218b9c1da24dd517e25c9c7a948310a3", size = 16721710, upload-time = "2026-10-10T20:03:49.489Z" }, + { url = "https://files.pythonhosted.org/packages/f9/cf/673fd1b8f4cd78eb6320e87ec4c90ac19c095644259e3749853a405c70f4/numpy-2.5.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:823874a507a84af050493b622affde94b6f7c3a0dc22cb2801381bc03b871c00", size = 17066182, upload-time = "2026-10-10T20:03:52.25Z" }, + { url = "https://files.pythonhosted.org/packages/f3/92/a77b5061b1b3e2643928c37976d79ee173e1b171ed158b7a3c61056b41bc/numpy-2.5.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:4e263278bfb5ee6409db8aedbc4cc32973b1b82bc1e8d3c668551d04d83a7e37", size = 18480315, upload-time = "2026-10-10T20:03:55.39Z" }, + { url = "https://files.pythonhosted.org/packages/bb/1d/1486ef3d3fb2279fd93c4c43c1bbbf1ca389a19816696684409f71babaab/numpy-2.5.4-cp314-cp314-win32.whl", hash = "sha256:cfd73180400042a7c532d30c5e287bdd03c59ff9ee1b4c0316af0539e29dfe23", size = 6185739, upload-time = "2026-10-10T20:03:58.186Z" }, + { url = "https://files.pythonhosted.org/packages/52/9a/e1e512ebc948d5b9dd33b08736760f0ebbed2848fd4eda1f553088a6dcee/numpy-2.5.4-cp314-cp314-win_amd64.whl", hash = "sha256:2ca144f15135b6212a5c47b1e2aeca6e412f102f95a2d5d88d8aec77eb255de3", size = 12703552, upload-time = "2026-10-10T20:04:00.28Z" }, + { url = "https://files.pythonhosted.org/packages/2c/05/de709a982d7bbcd688a3fad71f002e9ff80c2db39e03ee726609b610f1d1/numpy-2.5.4-cp314-cp314-win_arm64.whl", hash = "sha256:468397ba3c64427474706e5c9123fe266395496714dc684294eac75cd4930d1e", size = 10803901, upload-time = "2026-10-10T20:04:02.659Z" }, + { url = "https://files.pythonhosted.org/packages/13/34/083570ada3bb2a30fbe5d77c8c6fef9141144a15d33e6f793a67e9749ab8/numpy-2.5.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1ef3aa6d7e29bb13677323114280b05acc57607fa2300e66432d665d5418a162", size = 12138695, upload-time = "2026-10-10T20:04:05.012Z" }, + { url = "https://files.pythonhosted.org/packages/94/06/1f9c24db48eef0c2d1207e3b11fffb0478e39dfd8c1e1be7476936885eed/numpy-2.5.4-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:98b053943e5a0474ec0da309d2cb9d3f18ea57f8a2067c2ab7b5f763d1068380", size = 5574615, upload-time = "2026-10-10T20:04:07.316Z" }, + { url = "https://files.pythonhosted.org/packages/da/0f/593fba2e1560e949123bc7d2fc48b5893d56e58cd4bd5a273d2fbf60b220/numpy-2.5.4-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:b64a85f40e154983960a4167d4c1d57a50c7f109b3d3264a3a984154e90a8454", size = 6889383, upload-time = "2026-10-10T20:04:09.918Z" }, + { url = "https://files.pythonhosted.org/packages/eb/9f/b799dfdce4e05e80ed4bc815c71ff343a11533b2c0ffc221cae8538cda63/numpy-2.5.4-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a813ed7719bf45463c51779e6a98d0385fe905e48447526938a4b8337333d551", size = 15753763, upload-time = "2026-10-10T20:04:12.278Z" }, + { url = "https://files.pythonhosted.org/packages/34/88/16c5f12f86f5ad2817c4d103205131fc6c8acb3d1878af05a1a4f23ec859/numpy-2.5.4-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c9b80cdf5cedba0e90d93fa5f9a333c4d65bd545cd669b71bb97ce2b703c9d73", size = 16757212, upload-time = "2026-10-10T20:04:14.799Z" }, + { url = "https://files.pythonhosted.org/packages/ff/4f/a1fe40e18a898e6a5089f4f0d891f0a493eb0574d5b34458f0fbe5aa3e5c/numpy-2.5.4-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2199ed071f460487c8db2c0e5c0b564494190edb4772fe80f9aad88b2604def5", size = 17116471, upload-time = "2026-10-10T20:04:17.58Z" }, + { url = "https://files.pythonhosted.org/packages/aa/46/e923a11c78e65c1722e7aaad817c06bd591324174b9d28ce5d31eee4d432/numpy-2.5.4-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:64f9c9878c1938476365e11ccfb6b770f3b9e5f045ccddc514235041e6959365", size = 18524063, upload-time = "2026-10-10T20:04:20.365Z" }, + { url = "https://files.pythonhosted.org/packages/5a/fa/84ab064514440c1f64a1b21088f2c82756defdd05e07c75ab233899565b2/numpy-2.5.4-cp314-cp314t-win32.whl", hash = "sha256:64d1c8ac28a4077cf987e0a71a7a0ef7e2df70722f07f0baa42dbb7eb6938647", size = 6340926, upload-time = "2026-10-10T20:04:22.865Z" }, + { url = "https://files.pythonhosted.org/packages/7e/7e/6cd886876f435b10685db9b9f7eeb70356f99e052116f4e5f11c5792c714/numpy-2.5.4-cp314-cp314t-win_amd64.whl", hash = "sha256:067374eb538c34c745436365cf7b0112595c1d326f21ce4ff340f61230239fbb", size = 12901584, upload-time = "2026-10-10T20:04:24.99Z" }, + { url = "https://files.pythonhosted.org/packages/38/1b/3c1684f6a06f7307f2335fca6e486cb162847fb97e91d65f8eb5cabad213/numpy-2.5.4-cp314-cp314t-win_arm64.whl", hash = "sha256:e94aef2c639da4a960ad0db8e06471208d8589974953d78b61d345b4eb99e394", size = 10891152, upload-time = "2026-10-10T20:04:27.52Z" }, + { url = "https://files.pythonhosted.org/packages/08/f4/3224deff3af2bef6bc0b175369698d8cb348f3d91d9bb0286cd5c9eae9e0/numpy-2.5.4-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:8dddfbee2e68d26d0d7d7d9cb247b1fd4409241cce32d815a11d97ec2cfde179", size = 17003231, upload-time = "2026-10-10T20:04:30.021Z" }, + { url = "https://files.pythonhosted.org/packages/be/75/fee0b8c6d94b44b2fdfae74f6a4ad5a138739589a8aebaec28ce4e713ed5/numpy-2.5.4-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:81e3420b27048b65eb14c3acf0c174a8cb0e023277716110347d2dcb26026dad", size = 12018300, upload-time = "2026-10-10T20:04:32.519Z" }, + { url = "https://files.pythonhosted.org/packages/47/c0/d0b335a499a04b65f532c3f034346ef390f81299060f928492dabc1e0272/numpy-2.5.4-cp315-cp315-macosx_14_0_arm64.whl", hash = "sha256:0b4724a19de67bea8cfc4970798efa78bcbbe2ac2613cfac16721a42d44de2a5", size = 5454250, upload-time = "2026-10-10T20:04:34.943Z" }, + { url = "https://files.pythonhosted.org/packages/5a/0e/461b3783c03d668052e6a21b01b673db6ffcb7831fd32d9aa5368c1cd426/numpy-2.5.4-cp315-cp315-macosx_14_0_x86_64.whl", hash = "sha256:2132418bf8dd124a427ca9e6a1daf9ee1a87185344c95119ceae868b99466da1", size = 6789644, upload-time = "2026-10-10T20:04:37.258Z" }, + { url = "https://files.pythonhosted.org/packages/b3/02/5dad269b02166965a7b4ca14adaddd75dbee0de42435bfecf561b84ba5a6/numpy-2.5.4-cp315-cp315-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:325518d4245b9e331387702aa58c2ce1dc4cdcbb41dfb4ccd5dcbc7e08db1266", size = 15704353, upload-time = "2026-10-10T20:04:39.616Z" }, + { url = "https://files.pythonhosted.org/packages/93/3a/01360c8036822ed9f7aa32189a77d1476567ec1e8e1383522389e4faac45/numpy-2.5.4-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:56733449d2544178beaa4545cee357370440cf056c197f9c7bfb19dbfdd0e86d", size = 16718648, upload-time = "2026-10-10T20:04:42.383Z" }, + { url = "https://files.pythonhosted.org/packages/7d/5c/b863a2c093c4d6f21a597fcaf24ead0835c09ab16a8312d5a5a8868af683/numpy-2.5.4-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:5ec3753760c1a6d8bb91200666e545c3a9728e6269dfb5d6ce02340996698aa3", size = 17059053, upload-time = "2026-10-10T20:04:44.976Z" }, + { url = "https://files.pythonhosted.org/packages/0a/60/ced4f57f9a1258a0af74f17cb0b0c2700b5c67cd6678823c803b263e4df3/numpy-2.5.4-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:b1185012870173de7ae33d370bd45b1cf5baee747ea4b97036b65f4e93016877", size = 18477406, upload-time = "2026-10-10T20:04:47.863Z" }, + { url = "https://files.pythonhosted.org/packages/f9/bd/0ef22dafaafcc7d4bb3ca26b8d2afbd55dedad8eaba99a8c864e1997456f/numpy-2.5.4-cp315-cp315-win32.whl", hash = "sha256:298eca75243f2cbbfdb460560b9fb2a1792a33cf2ab4286efd43d92e8d3df508", size = 6185133, upload-time = "2026-10-10T20:04:50.467Z" }, + { url = "https://files.pythonhosted.org/packages/50/bc/d2651b155ecc608a77e6f4d15495c11f14f19bb98f8bf0c5b0d38f86dda1/numpy-2.5.4-cp315-cp315-win_amd64.whl", hash = "sha256:332f3378fe077dd850e677ec01bdcc4f22368fb5d50ef10b2c79230b1bf5a592", size = 12703085, upload-time = "2026-10-10T20:04:52.63Z" }, + { url = "https://files.pythonhosted.org/packages/dc/d2/45e404f8abb26fb9eda12b94012936873e827b1be76f2ee7890be128312e/numpy-2.5.4-cp315-cp315-win_arm64.whl", hash = "sha256:d4cccbbc78717966f764cd3af4fb70276fa01fc7a2688af11c78901fa5c04f05", size = 10801451, upload-time = "2026-10-10T20:04:55.677Z" }, + { url = "https://files.pythonhosted.org/packages/c6/c3/2ae14e09cfdb67dc187a342e15308a21c15bf4d2071f8079e6aee5fe56dc/numpy-2.5.4-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:950ea81d57ef070665581b6e1b5f6a029306423cd1739c5b95fe78aa30db6b9d", size = 17097121, upload-time = "2026-10-10T20:04:58.403Z" }, + { url = "https://files.pythonhosted.org/packages/f5/cf/305ae624ef8a039414317224abe9ec9c2fe7ea3c2e1cf204d43ff6b2ffb9/numpy-2.5.4-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:c05ede731b03fb1b7591faca9389ade3267d2bddf1ad8882bb3f2cc5e101694f", size = 12135439, upload-time = "2026-10-10T20:05:01.65Z" }, + { url = "https://files.pythonhosted.org/packages/a9/a8/f75c63813aef95827bb2c0d13b12803016853056e8792c280058cdbfe783/numpy-2.5.4-cp315-cp315t-macosx_14_0_arm64.whl", hash = "sha256:5fbf7141bbfd63aea22f435c9062a032b9ea0082fe9845dad7f021d3f1234e71", size = 5571451, upload-time = "2026-10-10T20:05:04.135Z" }, + { url = "https://files.pythonhosted.org/packages/6f/0f/f17763f983868b5c49b4101ebd7e00760bd1769478a6bb6a8de6e085bbac/numpy-2.5.4-cp315-cp315t-macosx_14_0_x86_64.whl", hash = "sha256:3573cd22564692a5b899ec344e5d5b9cc4576f2985b96f22af3564ed54f2710f", size = 6883356, upload-time = "2026-10-10T20:05:06.249Z" }, + { url = "https://files.pythonhosted.org/packages/67/a7/8af04c5a79e047996cfa38854dcfbececdd0343a7c933a46fdd03ef6f5da/numpy-2.5.4-cp315-cp315t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6c109eac9cd439193678f69d70733c1108487546ca8eafc107b510ae10c1aecd", size = 15750991, upload-time = "2026-10-10T20:05:08.376Z" }, + { url = "https://files.pythonhosted.org/packages/57/7a/648254290d0c504faa8f2d07aa206660c728802c781a6f3fc68ab7cb5d71/numpy-2.5.4-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:80d6ef6e8620eb2c2b4c4caad50b5935d6db3cde2d51581b55dcc79e14016d1d", size = 16757675, upload-time = "2026-10-10T20:05:11.393Z" }, + { url = "https://files.pythonhosted.org/packages/b8/fe/4a8c3cdb0c70400cfe4c5bec42d3099a5673802a95064614b33e07b82aa1/numpy-2.5.4-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:77045a4b175bbf5316ec08003880804336c78f92281a1b72222b274ea85ec5ac", size = 17113846, upload-time = "2026-10-10T20:05:14.49Z" }, + { url = "https://files.pythonhosted.org/packages/1b/7e/619692bb67778702c0e9eb2d468568a7573f4e269386ea61aed01ee4e557/numpy-2.5.4-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:0f02a46e49cfb6c73bdb7aea1c0d3461dbae9aba613542b65f657cd3d17b9fab", size = 18522915, upload-time = "2026-10-10T20:05:17.33Z" }, + { url = "https://files.pythonhosted.org/packages/b7/b5/4da41c328788f575838f97a098fe8ca691ebc6f6fd73ad4a262ee40b184d/numpy-2.5.4-cp315-cp315t-win32.whl", hash = "sha256:ad62a416ddcf863bf44bba76fbf6b53366ab0692e294f51cae4b5fbe0d246788", size = 6335804, upload-time = "2026-10-10T20:05:19.921Z" }, + { url = "https://files.pythonhosted.org/packages/98/94/6482ddfa3d312490cb9358f375bf2ad56427dbea8769187158e94d653753/numpy-2.5.4-cp315-cp315t-win_amd64.whl", hash = "sha256:38f47be9f74ab870d2633b5456ae519c43758a8d1fd05342f0ce4ecc034396ee", size = 12890095, upload-time = "2026-10-10T20:05:21.875Z" }, + { url = "https://files.pythonhosted.org/packages/48/7f/c2d1b436b6e7cfebac140c2579a298344b85f2991a2ce5c3615cefb29400/numpy-2.5.4-cp315-cp315t-win_arm64.whl", hash = "sha256:7a14a461d9340f1b46b8648578aed9cdb8b3b018a8fac6c1dde2c9192a01a87f", size = 10883718, upload-time = "2026-10-10T20:05:28.547Z" }, +] + +[[package]] +name = "omegaconf" +version = "2.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cc/10/1cabf3188a4d9684a06568c7fd76f9536eede625733c8399cf1f5337b83e/omegaconf-2.4.0.tar.gz", hash = "sha256:7e219a70bea371da250285b9c01c7db027bc421722799c2cc4ff14bc4a2a753b", size = 3544508, upload-time = "2026-10-09T12:44:02.326Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4f/bd/0d9f8247b0819385213d09564eda5c52d3673313c2414d51f72883ec24cd/omegaconf-2.4.0-py3-none-any.whl", hash = "sha256:f141a664c777582405e3cc6e0545ecc79429e79f844995b1a6e71c35946a025c", size = 254152, upload-time = "2026-10-09T12:43:59.764Z" }, +] + +[[package]] +name = "onnxruntime" +version = "1.31.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "flatbuffers" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "protobuf" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/55/b511099a435972b86b5d04ef374cdca8de920311cc979180029b80145bf5/onnxruntime-1.31.1-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:8536ac43682caa7492c46d6cfd4c3c8db288dcf0619508431a22170b670ee1d0", size = 20883427, upload-time = "2026-10-26T19:26:54.067Z" }, + { url = "https://files.pythonhosted.org/packages/06/ef/98f0060d6cf58f9f663268fef65fe729120b8fbe26ef35eaa2c8d9030d33/onnxruntime-1.31.1-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:c878686b75cade1ed59131aa018ab004b1e64368b0d54041912450b9642cf04f", size = 21421619, upload-time = "2026-10-26T19:26:57.332Z" }, + { url = "https://files.pythonhosted.org/packages/aa/74/a891a659ccc427469de0d7bdbd5ff770a35f73084ee590ce02456cf61f7f/onnxruntime-1.31.1-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:c20d7f15d84427db070b163f78c2c7146cc93edd6113fa7327671259a24184fe", size = 23762999, upload-time = "2026-10-26T19:27:00.865Z" }, + { url = "https://files.pythonhosted.org/packages/e5/e9/9112e9322aef42bff80e805915b61cdcbb82577589bdd42dedf73a5ff9b6/onnxruntime-1.31.1-cp314-cp314-win_amd64.whl", hash = "sha256:0a3998e18cb667ef54287556bd62291a788ed235723dd90c83b2294b24e71d81", size = 15268752, upload-time = "2026-10-26T19:27:03.629Z" }, + { url = "https://files.pythonhosted.org/packages/ed/ee/b69384d9b94c6bf3beb030bcba25dc573e490d3136117be0f78d79078d35/onnxruntime-1.31.1-cp314-cp314-win_arm64.whl", hash = "sha256:fc01b4e7c0a81778fb741bcf5c16b7871d196275f6240720a8b8bfd9f0c0af14", size = 15153930, upload-time = "2026-10-26T19:27:06.159Z" }, + { url = "https://files.pythonhosted.org/packages/2b/5b/beeb6acb5a9e17311b4ebc36fe91ac4893200ddb290257fb072509a7c26b/onnxruntime-1.31.1-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:564d7b83fb3e94fb3d18629c6b339e9bce10966dd29a8442c433175aac3d60fd", size = 21432341, upload-time = "2026-10-26T19:27:09.131Z" }, + { url = "https://files.pythonhosted.org/packages/c6/3d/a5b15c4ab9d67a384da5a2c10fb569e643076c28179fe1a265af7d8f1b87/onnxruntime-1.31.1-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:4d5f5fcc01f0c334d282a8991eab44e7752ad01c47b336d848ba43eb38084958", size = 23772582, upload-time = "2026-10-26T19:27:12.025Z" }, +] + +[[package]] +name = "opencv-python-headless" +version = "5.0.0.93" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1d/99/76b7c80252aa83c1af16393454aafd125a0287101afe8deb0a6821af0e30/opencv_python_headless-5.0.0.93.tar.gz", hash = "sha256:b82f9831daab90b725c7c1ee1b36cb5732c367096ac76d119e64e14eb70d5f3c", size = 81817738, upload-time = "2026-07-02T07:01:06.039Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/53/7c/8c8097891c509d98cd128493835c95631c80be6a8f37ed9d25716c2e16f1/opencv_python_headless-5.0.0.93-cp37-abi3-macosx_13_0_arm64.whl", hash = "sha256:030ca5e0837a2963ab36ef896baa9767eb8d2b83353fb28af5a521e40dd8756f", size = 48322581, upload-time = "2026-07-02T05:50:34.207Z" }, + { url = "https://files.pythonhosted.org/packages/90/8c/eab2ad388c3cbab2a350c10c2ef19ce6bd099240afc31789032c996bab52/opencv_python_headless-5.0.0.93-cp37-abi3-macosx_14_0_x86_64.whl", hash = "sha256:1e55af3abfb462eeeabe5c775f12bdb36216d8a93a3583d69e6bd6e1d6ba7d00", size = 34782894, upload-time = "2026-07-02T05:51:39.856Z" }, + { url = "https://files.pythonhosted.org/packages/ec/78/afca939f40ffe2b2380bfa86f812b2f7d4acc5a27b27dc41b49cad7ce7b4/opencv_python_headless-5.0.0.93-cp37-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:10818d91510e05c04568ae12b5cd120779c70c01bf897b001a6221fe430df80f", size = 36521085, upload-time = "2026-07-02T06:55:24.429Z" }, + { url = "https://files.pythonhosted.org/packages/2b/97/8170e9819764c47e436c130d3ff6cfb73b58f923eae9d3a03d8982b04aec/opencv_python_headless-5.0.0.93-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:09a872a157c1376ab922a69bbf22f9a95bcc7b658a9d8b436a60212b02b2eeb4", size = 56563598, upload-time = "2026-07-02T06:55:47.355Z" }, + { url = "https://files.pythonhosted.org/packages/3a/98/1a28a7101e31801042b3098871a74b76c61581d328ef40774ff4edb53a56/opencv_python_headless-5.0.0.93-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:840bd717c21e5c11cadadc022a823315ea417f961213d06b4df010e019eb16f4", size = 39648433, upload-time = "2026-07-02T06:56:04.255Z" }, + { url = "https://files.pythonhosted.org/packages/9b/21/f6ef335f6e65724aa78b8d792b48d40a48c381715f1e62f5a5049e09d07e/opencv_python_headless-5.0.0.93-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:ed709fdf9aa0bd1f2ed8549e71d19449b03a675bb581eb292285f6861953be37", size = 61204038, upload-time = "2026-07-02T06:56:41.823Z" }, + { url = "https://files.pythonhosted.org/packages/d0/8f/b8756467ea991449a293797f6b3fa80fcfdd29598a0a60d1cd5715b96e61/opencv_python_headless-5.0.0.93-cp37-abi3-win32.whl", hash = "sha256:c6bcd96b185975ea240d22cfdb15a1f6d080cc95264cfbe2621f21bb144d89b9", size = 35411237, upload-time = "2026-07-02T05:50:12.901Z" }, + { url = "https://files.pythonhosted.org/packages/b8/88/763b967f7efd7226b82c9fae16d560cba049b1f0c036647e65c610fd636e/opencv_python_headless-5.0.0.93-cp37-abi3-win_amd64.whl", hash = "sha256:829717b6a95554f273e49e357cee3b3a2a26b6f4842fbc1bed2b45bdd8f87e0e", size = 43825962, upload-time = "2026-07-02T05:50:09.627Z" }, +] + [[package]] name = "packaging" version = "26.3" @@ -377,6 +601,56 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f1/d9/7fb5aa316bc299258e68c73ba3bddbc499654a07f151cba08f6153988714/pathspec-1.1.1-py3-none-any.whl", hash = "sha256:a00ce642f577bf7f473932318056212bc4f8bfdf53128c78bbd5af0b9b20b189", size = 57328, upload-time = "2026-04-27T01:46:07.06Z" }, ] +[[package]] +name = "pillow" +version = "13.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ce/a4/9cc30690a394a8305e8be4c9036aa16d0dfddadd09079860b582f562496d/pillow-13.0.0.tar.gz", hash = "sha256:cdcd1ba258178f7356d74170c9a81ba4eab6a5d55748bc402a5a2a6fe6be3510", size = 47058631, upload-time = "2026-10-16T22:18:09.718Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/45/fbad9c7f5e2f1745c373a434d46072bc84eddfefaa28b852425ac957fda6/pillow-13.0.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:44629d4498c9cb6b2051806155f22141df0d8a929c56134b166655232dfb2f8c", size = 4190721, upload-time = "2026-10-16T22:16:27.524Z" }, + { url = "https://files.pythonhosted.org/packages/a2/bf/2074902a259a90692c5dbf132885d21671644cbbd3f690047516243a55db/pillow-13.0.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:bf97ba1b5542050e9b0c74e632323b6d8136cc99d64e193abebee22fe6013c76", size = 4290236, upload-time = "2026-10-16T22:16:29.562Z" }, + { url = "https://files.pythonhosted.org/packages/ff/a5/3d1bb93b8ea38d15d21356c1b8e9f50971ac592aaa248f7fb71739094c0e/pillow-13.0.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:aa694c49787040943570d61c9b8fc01271bd2a2cfdd55f0d896f8aecdce1a981", size = 3723093, upload-time = "2026-10-16T22:16:31.249Z" }, + { url = "https://files.pythonhosted.org/packages/84/a1/be060135d85187b25fa8b2573786c0e45c62ae27527fff5257675eb97f4a/pillow-13.0.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:49c12af515073e9bf511e4ef736743bf70d531a643668722279314b937742ba4", size = 5572253, upload-time = "2026-10-16T22:16:33.103Z" }, + { url = "https://files.pythonhosted.org/packages/b5/f4/0bf6f1ac9ba7ee2ffe9914aeb410a1035a0c1a3c42f122388d7fc950bc4b/pillow-13.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:d9b0a2bee3f3e03e9f29057aedb807dbf1e1d96ee1b9d0f422d9db6c8583271d", size = 4852269, upload-time = "2026-10-16T22:16:35.102Z" }, + { url = "https://files.pythonhosted.org/packages/83/16/b603274617b3e6728da3a0133d4fba1ea8d7fbe0c4ea5fef9cbffa398b8b/pillow-13.0.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5933fcea5a5ba64c686f55c886a115cbfd92f2900460784a1e79909fdbafd7b6", size = 6516058, upload-time = "2026-10-16T22:16:37.228Z" }, + { url = "https://files.pythonhosted.org/packages/1d/f2/1371707ce438ba9a43f9d24089828494ec6f9396e28cd7903aa704dd6306/pillow-13.0.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e91c2b1cbeae768c98752e67e717e283d68dae45717b41f2d91eaee648e37b7d", size = 7142574, upload-time = "2026-10-16T22:16:39.172Z" }, + { url = "https://files.pythonhosted.org/packages/b9/a9/62cf68587f910bc87c5951bcb6e9430c7643a65076adf5f18b4bf350e2bd/pillow-13.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7f6299e494e46253d40c34653cac369412f44ca53b5f85d848d3f95b1ed0546c", size = 6614295, upload-time = "2026-10-16T22:16:41.117Z" }, + { url = "https://files.pythonhosted.org/packages/6c/c9/9e9b48178649730299be0bafbf5f810a5b6977538f5a92d47e4ba5f5d608/pillow-13.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f9bd7d260d986f3553518c5d723544346fa48031f8aef3265d786aeb59845bc0", size = 7224841, upload-time = "2026-10-16T22:16:43.118Z" }, + { url = "https://files.pythonhosted.org/packages/8f/48/c44e91384b1b6c072a714a63d00608acc16a6a968735e478e4be4384e5ac/pillow-13.0.0-cp314-cp314-win32.whl", hash = "sha256:2e31c4e68cffd7b1f116127626813b82fcba19edf6b940a7b0c266d6484d0055", size = 6508694, upload-time = "2026-10-16T22:16:45.883Z" }, + { url = "https://files.pythonhosted.org/packages/50/e2/7ad17747517e4c813dca78257d6bb593466f8231baf1384bc98d92745edb/pillow-13.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:f7cbb7a64e7ec664775195e4f81923bc8a93d9451b963f844e59118f63147a7a", size = 7281830, upload-time = "2026-10-16T22:16:47.725Z" }, + { url = "https://files.pythonhosted.org/packages/41/9f/e5b51f2ce8ef4563215334035403ce61a244f93a2e65c24a940131618f87/pillow-13.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:a6aaa7871aebca081eb5c45f83e845bbd9712ae99fa9286dbfdcee835e63f4b4", size = 2695468, upload-time = "2026-10-16T22:16:49.515Z" }, + { url = "https://files.pythonhosted.org/packages/97/73/a53502f731f6c84805a4ce87a8881e86d07a65aee64728b900d112dc703e/pillow-13.0.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:7b999816b5850a35ada08443e6e03945f1f6488144a83afe2d37b240a552aafa", size = 5578196, upload-time = "2026-10-16T22:16:51.291Z" }, + { url = "https://files.pythonhosted.org/packages/21/50/7e949959a56b5559c78ef172b70fc6025706acb289f3f648a15329e4fa6f/pillow-13.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:67871a13cf47275201553b536c025da777f997fa562a19eb798af4ad4b97c18f", size = 4857276, upload-time = "2026-10-16T22:16:53.399Z" }, + { url = "https://files.pythonhosted.org/packages/c9/52/43ded0ac08e77e39d17bd6d894162572201b5e8fdc4a022b14c55a1960a4/pillow-13.0.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e8ca8f69b7c77fa96dad99f8638c1fc4f1c0bed4acaa1baf7a3c31bdb80a0ab1", size = 6607008, upload-time = "2026-10-16T22:16:55.525Z" }, + { url = "https://files.pythonhosted.org/packages/0d/2e/4a57ed216d5bf877387cba4d44c02aa87abe51ad2e06404aa6b597c4da39/pillow-13.0.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6bce6a29c3898191f4c9998e4d4e8f69790caeabde46e54da4bc235ce5bde683", size = 7224281, upload-time = "2026-10-16T22:16:57.738Z" }, + { url = "https://files.pythonhosted.org/packages/5c/3d/2929b248e135752d63aaeabf53f6de797e905b7b6263f9c1e2adade20aba/pillow-13.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:816752a5ef76a80484c8c441c85593b7ea9304f6231fc5776ad1fbff7e773058", size = 6695600, upload-time = "2026-10-16T22:16:59.842Z" }, + { url = "https://files.pythonhosted.org/packages/bc/33/fb0da992cf084ed1ee6ee05e96b6191e35c351eb707ca2df874feb24ce47/pillow-13.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5bdb38ba220b61b4ec31dd1046dea6b016d3c6850a23f43ed8b58332b2fc668e", size = 7300589, upload-time = "2026-10-16T22:17:01.686Z" }, + { url = "https://files.pythonhosted.org/packages/bb/af/c30dd9ef6a3dce84ecb1b2393cac629047a32e66279056c6cb46c3ffd65c/pillow-13.0.0-cp314-cp314t-win32.whl", hash = "sha256:06903aac074d00c988e77a1fc435286dc498506d4ca8d6f69df9babddf4ecc15", size = 6517204, upload-time = "2026-10-16T22:17:03.722Z" }, + { url = "https://files.pythonhosted.org/packages/85/d5/ef3a8ae7609c8ab26570abf18194882534b480d245a9148b895a2262c004/pillow-13.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:9a635068d9793c7f0d929f39f18b58f1bd86c236e8e7b64167b86af9232ebca0", size = 7286695, upload-time = "2026-10-16T22:17:05.543Z" }, + { url = "https://files.pythonhosted.org/packages/84/3c/0861db0c69a03689ebe3e7599d35668a414deb5aaafd8255215e4e62e3d3/pillow-13.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0d1a9cf7bc6917538b20f8d06b9ab2147e542f68849e96fc58eb66bdf6acc692", size = 2698098, upload-time = "2026-10-16T22:17:07.674Z" }, + { url = "https://files.pythonhosted.org/packages/6e/eb/e86a41962a3a31ad495a3d6a912d9002b01bba4a6fa71c28703abdca7f69/pillow-13.0.0-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:7d5e097eabd5d4915c27ac9f6e9325bb1e01a7c94d7348b5c4451d3fc30e8521", size = 4191213, upload-time = "2026-10-16T22:17:09.449Z" }, + { url = "https://files.pythonhosted.org/packages/dd/04/7e7445e706afec84ef06dc25b2c77f9cecff242c23730c62928ad1089d4a/pillow-13.0.0-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:51ebb529fc5e8abdd55302f6c3f8943037348ec2384329a3e55677f69ae2fdfc", size = 4290650, upload-time = "2026-10-16T22:17:11.196Z" }, + { url = "https://files.pythonhosted.org/packages/46/85/d534089068ac40c0f61f650389a296c812eab745a8a733f81feec39ae955/pillow-13.0.0-cp315-cp315-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:c87a04e7f152ee4db5dbe15f0bfa3fe628a1aeedbe66b81c43b87f52c813f9ac", size = 3723078, upload-time = "2026-10-16T22:17:12.772Z" }, + { url = "https://files.pythonhosted.org/packages/ce/2b/00b5c3b401df538b5dbe311d3899730fae5ba1e21cb8b80a128887ac6747/pillow-13.0.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:20722cd5375533ad754053363a80b8fb30c79d37930a6f7228030e237ce3bd5d", size = 5572292, upload-time = "2026-10-16T22:17:14.539Z" }, + { url = "https://files.pythonhosted.org/packages/72/f5/a6b0610f946e9b54ae888ba7ad29d6e2f8d9b11f69e212d70416b7186c09/pillow-13.0.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:04a63720f79e22fd54d897c233a68314c50ca0603360f54ce2bd5db8f0f43782", size = 4852222, upload-time = "2026-10-16T22:17:16.521Z" }, + { url = "https://files.pythonhosted.org/packages/1e/d0/c0ff25bb0427ec70f32aac995453321fc3c4494a46c7292ff02d9d260b04/pillow-13.0.0-cp315-cp315-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4f8db54177035a2b5f717f94475b74907e12a96dc74f6d487f3966b0a4694071", size = 6527349, upload-time = "2026-10-16T22:17:18.534Z" }, + { url = "https://files.pythonhosted.org/packages/85/11/e46fa0bcc0fc117f1eacc206b3d51f04d583fab328b4b740672d0438d83f/pillow-13.0.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8f36aa77f74b14a2103622b196402c71330e4e7cf4122ee45c854e9a01e0eecf", size = 7152873, upload-time = "2026-10-16T22:17:20.415Z" }, + { url = "https://files.pythonhosted.org/packages/7c/53/2bdeca705f3a58679fa9201233193c86a30238340ca29b3a152c3fcc719b/pillow-13.0.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:149a1c323ba366f90b48e6f1a6db6582eb50512df374588de56fc909abc0f0f3", size = 6626871, upload-time = "2026-10-16T22:17:22.361Z" }, + { url = "https://files.pythonhosted.org/packages/14/de/3829030f209722ade3753bb456b805a0e7f885cf885b483407365c82e9ca/pillow-13.0.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:e892354a424b1e82a78ba16785822bdd40de06f19446a3d4a28047df1a4f8932", size = 7236439, upload-time = "2026-10-16T22:17:24.352Z" }, + { url = "https://files.pythonhosted.org/packages/44/b1/67fc37388382bc036a74f04da5bb6fcbf90ec3ac1f45893e06176c373fd3/pillow-13.0.0-cp315-cp315-win32.whl", hash = "sha256:8e459b613cf31f8980f584387b4fe47bf08e076e288d61aa8eba1f7fd4ddbb81", size = 6508688, upload-time = "2026-10-16T22:17:26.314Z" }, + { url = "https://files.pythonhosted.org/packages/44/05/fdb6a79aee10861165526b41b7b440e36ee1ff58613b2fbefe3acbf06d4f/pillow-13.0.0-cp315-cp315-win_amd64.whl", hash = "sha256:d4737f50d23ddd11d6685faacbb9252887dde0bc7997127757247983d74399d6", size = 7281107, upload-time = "2026-10-16T22:17:28.198Z" }, + { url = "https://files.pythonhosted.org/packages/e6/9c/6c6f7dc2a566467baf121394e83de25ac287cffe34cc030726beb4be0224/pillow-13.0.0-cp315-cp315-win_arm64.whl", hash = "sha256:2310e2adfc13c6d457d7d0f2ffdd5c56a74a317650cf765887df8d515a647ac0", size = 2695513, upload-time = "2026-10-16T22:17:30.013Z" }, + { url = "https://files.pythonhosted.org/packages/23/16/e9120defdb8bff693b582d035312acc6f530cdc2bc5238a87f410efccd82/pillow-13.0.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:21c32061a5512dc13f87cc7303e120e4d77c2f70df89a35af0e3ce246e5ac57f", size = 5578129, upload-time = "2026-10-16T22:17:31.642Z" }, + { url = "https://files.pythonhosted.org/packages/47/22/76faf2bb2448f48a84cf894c1e2bb1090d7d2b1aa521ece131cb2f05d631/pillow-13.0.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:1c774b9c0ba0d0b356f71530677b39028878a2cae5a93e0a13779cfd17120f88", size = 4857428, upload-time = "2026-10-16T22:17:33.43Z" }, + { url = "https://files.pythonhosted.org/packages/b3/64/0861ea4e03c50b14af9ed9dd8b9f388ab42f445c623a9fcbab19aef7aa55/pillow-13.0.0-cp315-cp315t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:20822140c9a2ba9c5e42df342b0a892ab2e102fc0e3db967a133bb9ce3f898bb", size = 6612582, upload-time = "2026-10-16T22:17:35.415Z" }, + { url = "https://files.pythonhosted.org/packages/5c/20/cd1e9b3f60a9f3d5ebe46da36955c26004092a501f7f2c42f9fcc26611bc/pillow-13.0.0-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ffea6b2986a797c84b6d1d27d4f43e0b83c73fc16281a930891cd237cf0d08fe", size = 7230176, upload-time = "2026-10-16T22:17:37.362Z" }, + { url = "https://files.pythonhosted.org/packages/b6/ef/ffb0a2fc85690714fb7ac662956949645d57f15bf4426f520da361e7b6e3/pillow-13.0.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:05cd2cd39055d0b9650060e4513ef4a9a0aea870083950bd046a0d6490f93a22", size = 6703640, upload-time = "2026-10-16T22:17:39.313Z" }, + { url = "https://files.pythonhosted.org/packages/e0/c2/6402ee3ccb3363aeed8fdb3f9fe56703ac5377a539f0b81b53999d7e121f/pillow-13.0.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:c6fd031333dedcad7ce3e03d244093f43504f209e86925ebdb2b868fa4037630", size = 7309231, upload-time = "2026-10-16T22:17:41.021Z" }, + { url = "https://files.pythonhosted.org/packages/fc/96/d6b82e8b8c06ad143b66b12e0b31051e4bf489b4fabca1f390a14fe1ebde/pillow-13.0.0-cp315-cp315t-win32.whl", hash = "sha256:c50c80e3591e5cf9a8dfa6007d4f10732f02e32263850999286e56ccd650cfb2", size = 6517200, upload-time = "2026-10-16T22:17:42.886Z" }, + { url = "https://files.pythonhosted.org/packages/60/d4/0062e6005e9b270b165015aafd343364ac378ec5a685431ea42baad33357/pillow-13.0.0-cp315-cp315t-win_amd64.whl", hash = "sha256:adb3c2124c68e480f4632d06cb7caa3b48a51678475f483b4edb1c6dee29ea43", size = 7287488, upload-time = "2026-10-16T22:17:45.56Z" }, + { url = "https://files.pythonhosted.org/packages/e4/81/b8eb349746be7bce47dd95337c6634e84910af91b59aaa9159c034c614fa/pillow-13.0.0-cp315-cp315t-win_arm64.whl", hash = "sha256:4a25756244bdcce3b50580baadf320fa48297f0eeb8e114ba64139a40d4d0fc8", size = 2698073, upload-time = "2026-10-16T22:17:47.556Z" }, +] + [[package]] name = "platformdirs" version = "4.13.5" @@ -395,6 +669,61 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/40/9e/2b38731e0fc536806f16490e1a12d7f0dc2a1235aa8cc07bcc75416a7daa/pluggy-1.7.0-py3-none-any.whl", hash = "sha256:7dd7b0d8832ba3cb632c306926ded123429211b83641b35dc5c41ad2d34f9bec", size = 27082, upload-time = "2026-10-15T09:50:56.808Z" }, ] +[[package]] +name = "protobuf" +version = "7.36.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d9/89/5b8517baa72f84a67b8a307ba953c91057af618bf40bf676f3c03551f8f0/protobuf-7.36.2.tar.gz", hash = "sha256:497d0463ff3316681da6c0b9e8d06cb465d61abce00b613ab42226175644d1bb", size = 512737, upload-time = "2026-09-17T20:07:59.326Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/72/98342feb672507c8f3a69e34b4fa8961f608edba5c1a48a6f47156d92cb5/protobuf-7.36.2-cp310-abi3-macosx_10_9_universal2.whl", hash = "sha256:cbc70b17ee27e28894c7fee8bb04be1abead49e936bc70eb60052531eee2079e", size = 456039, upload-time = "2026-09-17T20:07:51.542Z" }, + { url = "https://files.pythonhosted.org/packages/b6/ea/91fdf7c2b8bbd49cde056f00a9df6773532987e1c00fe2830b895af95c7e/protobuf-7.36.2-cp310-abi3-manylinux2014_aarch64.whl", hash = "sha256:e11e1f0180583a2af89db6a2ecd9e8dc40aa6d2988ca175bfd0e6d12ea72d74e", size = 344219, upload-time = "2026-09-17T20:07:52.914Z" }, + { url = "https://files.pythonhosted.org/packages/17/ab/5fd5f8ece73fad885c5a09aa849b32d70472f954ba3a92d3bb5974ea953b/protobuf-7.36.2-cp310-abi3-manylinux2014_s390x.whl", hash = "sha256:f4fee11ec330d238b34a05c9b675f693c20415d1c5bd7d5320cc2f8a798eb9cf", size = 357223, upload-time = "2026-09-17T20:07:53.985Z" }, + { url = "https://files.pythonhosted.org/packages/db/f3/3996583dd2906297a637af12114deddf7658af6e683fedb83be061983fb5/protobuf-7.36.2-cp310-abi3-manylinux2014_x86_64.whl", hash = "sha256:89f23aa53c24553a2416fd4fd1ec06f74fa42b14b546d8883128813f775bbfd2", size = 343223, upload-time = "2026-09-17T20:07:54.931Z" }, + { url = "https://files.pythonhosted.org/packages/fc/1b/dcc64f358fcb51811b58ae40b3d28f820725f116d86487cc20bd4b130701/protobuf-7.36.2-cp310-abi3-win32.whl", hash = "sha256:912c1221170e16c08d1f086762f563dd61ff83c18b5fa6652952dfaded66f728", size = 442998, upload-time = "2026-09-17T20:07:55.826Z" }, + { url = "https://files.pythonhosted.org/packages/8a/55/b77bda4e5e5f5971fb51b07663694690e9afdb9402136c16a522bd621cad/protobuf-7.36.2-cp310-abi3-win_amd64.whl", hash = "sha256:a300819d441e078a5608c0d3c709796bb548136058fda017ae51d425b44fd353", size = 456514, upload-time = "2026-09-17T20:07:57.188Z" }, + { url = "https://files.pythonhosted.org/packages/e4/04/d52c7016b04b6c5108f26691f9d33ec82a9b65d041f1a9c771137693d618/protobuf-7.36.2-py3-none-any.whl", hash = "sha256:bdb3a345d48db958e6ce1f18e508beb0cc981d64f24088427549c866cd039f1e", size = 179806, upload-time = "2026-09-17T20:07:58.211Z" }, +] + +[[package]] +name = "psutil" +version = "7.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/c6/d1ddf4abb55e93cebc4f2ed8b5d6dbad109ecb8d63748dd2b20ab5e57ebe/psutil-7.2.2.tar.gz", hash = "sha256:0746f5f8d406af344fd547f1c8daa5f5c33dbc293bb8d6a16d80b4bb88f59372", size = 493740, upload-time = "2026-01-28T18:14:54.428Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/69/ef179ab5ca24f32acc1dac0c247fd6a13b501fd5534dbae0e05a1c48b66d/psutil-7.2.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:eed63d3b4d62449571547b60578c5b2c4bcccc5387148db46e0c2313dad0ee00", size = 130664, upload-time = "2026-01-28T18:15:09.469Z" }, + { url = "https://files.pythonhosted.org/packages/7b/64/665248b557a236d3fa9efc378d60d95ef56dd0a490c2cd37dafc7660d4a9/psutil-7.2.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7b6d09433a10592ce39b13d7be5a54fbac1d1228ed29abc880fb23df7cb694c9", size = 131087, upload-time = "2026-01-28T18:15:11.724Z" }, + { url = "https://files.pythonhosted.org/packages/d5/2e/e6782744700d6759ebce3043dcfa661fb61e2fb752b91cdeae9af12c2178/psutil-7.2.2-cp314-cp314t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fa4ecf83bcdf6e6c8f4449aff98eefb5d0604bf88cb883d7da3d8d2d909546a", size = 182383, upload-time = "2026-01-28T18:15:13.445Z" }, + { url = "https://files.pythonhosted.org/packages/57/49/0a41cefd10cb7505cdc04dab3eacf24c0c2cb158a998b8c7b1d27ee2c1f5/psutil-7.2.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e452c464a02e7dc7822a05d25db4cde564444a67e58539a00f929c51eddda0cf", size = 185210, upload-time = "2026-01-28T18:15:16.002Z" }, + { url = "https://files.pythonhosted.org/packages/dd/2c/ff9bfb544f283ba5f83ba725a3c5fec6d6b10b8f27ac1dc641c473dc390d/psutil-7.2.2-cp314-cp314t-win_amd64.whl", hash = "sha256:c7663d4e37f13e884d13994247449e9f8f574bc4655d509c3b95e9ec9e2b9dc1", size = 141228, upload-time = "2026-01-28T18:15:18.385Z" }, + { url = "https://files.pythonhosted.org/packages/f2/fc/f8d9c31db14fcec13748d373e668bc3bed94d9077dbc17fb0eebc073233c/psutil-7.2.2-cp314-cp314t-win_arm64.whl", hash = "sha256:11fe5a4f613759764e79c65cf11ebdf26e33d6dd34336f8a337aa2996d71c841", size = 136284, upload-time = "2026-01-28T18:15:19.912Z" }, + { url = "https://files.pythonhosted.org/packages/e7/36/5ee6e05c9bd427237b11b3937ad82bb8ad2752d72c6969314590dd0c2f6e/psutil-7.2.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ed0cace939114f62738d808fdcecd4c869222507e266e574799e9c0faa17d486", size = 129090, upload-time = "2026-01-28T18:15:22.168Z" }, + { url = "https://files.pythonhosted.org/packages/80/c4/f5af4c1ca8c1eeb2e92ccca14ce8effdeec651d5ab6053c589b074eda6e1/psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:1a7b04c10f32cc88ab39cbf606e117fd74721c831c98a27dc04578deb0c16979", size = 129859, upload-time = "2026-01-28T18:15:23.795Z" }, + { url = "https://files.pythonhosted.org/packages/b5/70/5d8df3b09e25bce090399cf48e452d25c935ab72dad19406c77f4e828045/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:076a2d2f923fd4821644f5ba89f059523da90dc9014e85f8e45a5774ca5bc6f9", size = 155560, upload-time = "2026-01-28T18:15:25.976Z" }, + { url = "https://files.pythonhosted.org/packages/63/65/37648c0c158dc222aba51c089eb3bdfa238e621674dc42d48706e639204f/psutil-7.2.2-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b0726cecd84f9474419d67252add4ac0cd9811b04d61123054b9fb6f57df6e9e", size = 156997, upload-time = "2026-01-28T18:15:27.794Z" }, + { url = "https://files.pythonhosted.org/packages/8e/13/125093eadae863ce03c6ffdbae9929430d116a246ef69866dad94da3bfbc/psutil-7.2.2-cp36-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fd04ef36b4a6d599bbdb225dd1d3f51e00105f6d48a28f006da7f9822f2606d8", size = 148972, upload-time = "2026-01-28T18:15:29.342Z" }, + { url = "https://files.pythonhosted.org/packages/04/78/0acd37ca84ce3ddffaa92ef0f571e073faa6d8ff1f0559ab1272188ea2be/psutil-7.2.2-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b58fabe35e80b264a4e3bb23e6b96f9e45a3df7fb7eed419ac0e5947c61e47cc", size = 148266, upload-time = "2026-01-28T18:15:31.597Z" }, + { url = "https://files.pythonhosted.org/packages/b4/90/e2159492b5426be0c1fef7acba807a03511f97c5f86b3caeda6ad92351a7/psutil-7.2.2-cp37-abi3-win_amd64.whl", hash = "sha256:eb7e81434c8d223ec4a219b5fc1c47d0417b12be7ea866e24fb5ad6e84b3d988", size = 137737, upload-time = "2026-01-28T18:15:33.849Z" }, + { url = "https://files.pythonhosted.org/packages/8c/c7/7bb2e321574b10df20cbde462a94e2b71d05f9bbda251ef27d104668306a/psutil-7.2.2-cp37-abi3-win_arm64.whl", hash = "sha256:8c233660f575a5a89e6d4cb65d9f938126312bca76d8fe087b947b3a1aaac9ee", size = 134617, upload-time = "2026-01-28T18:15:36.514Z" }, +] + +[[package]] +name = "pyclipper" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f6/21/3c06205bb407e1f79b73b7b4dfb3950bd9537c4f625a68ab5cc41177f5bc/pyclipper-1.4.0.tar.gz", hash = "sha256:9882bd889f27da78add4dd6f881d25697efc740bf840274e749988d25496c8e1", size = 54489, upload-time = "2025-12-01T13:15:35.015Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1a/20/04d58c70f3ccd404f179f8dd81d16722a05a3bf1ab61445ee64e8218c1f8/pyclipper-1.4.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:7c87480fc91a5af4c1ba310bdb7de2f089a3eeef5fe351a3cedc37da1fcced1c", size = 265167, upload-time = "2025-12-01T13:15:20.844Z" }, + { url = "https://files.pythonhosted.org/packages/bd/2e/a570c1abe69b7260ca0caab4236ce6ea3661193ebf8d1bd7f78ccce537a5/pyclipper-1.4.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:81d8bb2d1fb9d66dc7ea4373b176bb4b02443a7e328b3b603a73faec088b952e", size = 139966, upload-time = "2025-12-01T13:15:22.036Z" }, + { url = "https://files.pythonhosted.org/packages/e8/3b/e0859e54adabdde8a24a29d3f525ebb31c71ddf2e8d93edce83a3c212ffc/pyclipper-1.4.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:773c0e06b683214dcfc6711be230c83b03cddebe8a57eae053d4603dd63582f9", size = 968216, upload-time = "2025-12-01T13:15:23.18Z" }, + { url = "https://files.pythonhosted.org/packages/f6/6b/e3c4febf0a35ae643ee579b09988dd931602b5bf311020535fd9e5b7e715/pyclipper-1.4.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9bc45f2463d997848450dbed91c950ca37c6cf27f84a49a5cad4affc0b469e39", size = 954198, upload-time = "2025-12-01T13:15:24.522Z" }, + { url = "https://files.pythonhosted.org/packages/fc/74/728efcee02e12acb486ce9d56fa037120c9bf5b77c54bbdbaa441c14a9d9/pyclipper-1.4.0-cp314-cp314-win32.whl", hash = "sha256:0b8c2105b3b3c44dbe1a266f64309407fe30bf372cf39a94dc8aaa97df00da5b", size = 96951, upload-time = "2025-12-01T13:15:25.79Z" }, + { url = "https://files.pythonhosted.org/packages/e3/d7/7f4354e69f10a917e5c7d5d72a499ef2e10945312f5e72c414a0a08d2ae4/pyclipper-1.4.0-cp314-cp314-win_amd64.whl", hash = "sha256:6c317e182590c88ec0194149995e3d71a979cfef3b246383f4e035f9d4a11826", size = 106782, upload-time = "2025-12-01T13:15:26.945Z" }, + { url = "https://files.pythonhosted.org/packages/63/60/fc32c7a3d7f61a970511ec2857ecd09693d8ac80d560ee7b8e67a6d268c9/pyclipper-1.4.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:f160a2c6ba036f7eaf09f1f10f4fbfa734234af9112fb5187877efed78df9303", size = 269880, upload-time = "2025-12-01T13:15:28.117Z" }, + { url = "https://files.pythonhosted.org/packages/49/df/c4a72d3f62f0ba03ec440c4fff56cd2d674a4334d23c5064cbf41c9583f6/pyclipper-1.4.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:a9f11ad133257c52c40d50de7a0ca3370a0cdd8e3d11eec0604ad3c34ba549e9", size = 141706, upload-time = "2025-12-01T13:15:30.134Z" }, + { url = "https://files.pythonhosted.org/packages/c5/0b/cf55df03e2175e1e2da9db585241401e0bc98f76bee3791bed39d0313449/pyclipper-1.4.0-cp314-cp314t-win32.whl", hash = "sha256:bbc827b77442c99deaeee26e0e7f172355ddb097a5e126aea206d447d3b26286", size = 105308, upload-time = "2025-12-01T13:15:31.225Z" }, + { url = "https://files.pythonhosted.org/packages/8f/dc/53df8b6931d47080b4fe4ee8450d42e660ee1c5c1556c7ab73359182b769/pyclipper-1.4.0-cp314-cp314t-win_amd64.whl", hash = "sha256:29dae3e0296dff8502eeb7639fcfee794b0eec8590ba3563aee28db269da6b04", size = 117608, upload-time = "2025-12-01T13:15:32.69Z" }, +] + [[package]] name = "pydantic" version = "2.14.1" @@ -565,6 +894,42 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, ] +[[package]] +name = "rapidocr" +version = "3.10.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorlog" }, + { name = "numpy" }, + { name = "omegaconf" }, + { name = "opencv-python-headless" }, + { name = "pillow" }, + { name = "pyclipper" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "shapely" }, + { name = "six" }, + { name = "tqdm" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/59/07/203065283bba0c5e9c10af3602dc25ab3e59ee54dc2d1d22c8faeabf5ed8/rapidocr-3.10.0-py3-none-any.whl", hash = "sha256:2fc34e26cd0f48514804a94f8832283039c7334076bff60768b1fed9ad068050", size = 27288134, upload-time = "2026-10-08T15:07:45.98Z" }, +] + +[[package]] +name = "requests" +version = "2.34.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ac/c3/e2a2b89f2d3e2179abd6d00ebd70bff6273f37fb3e0cc209f48b39d00cbf/requests-2.34.2.tar.gz", hash = "sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed", size = 142856, upload-time = "2026-05-14T19:25:27.735Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl", hash = "sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0", size = 73075, upload-time = "2026-05-14T19:25:26.443Z" }, +] + [[package]] name = "ruff" version = "0.17.2" @@ -590,6 +955,74 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/81/60/a3604c79cb02777b6cb84da894104021986f06c4bc41375102cc95049a32/ruff-0.17.2-py3-none-win_arm64.whl", hash = "sha256:195ad918027f817c119310ca89a42d347887dfc28934aaa869325e9c5dc9d962", size = 9827036, upload-time = "2026-10-22T18:37:58.031Z" }, ] +[[package]] +name = "shapely" +version = "2.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/ab/924b6e202f796d270a3041a230151f7908db5ea48c74effe6f8023e9bd05/shapely-2.2.0.tar.gz", hash = "sha256:e8865e553d874a1ec4a032057ea81fca9def37b188cd8fb550af3b3480b3f88c", size = 380326, upload-time = "2026-10-07T09:18:01.001Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/eb/a9/83531b7a5349568c507c5701179b1727e21f238af318ac55ba8d0800e764/shapely-2.2.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:000c0ce2a3ba49427e6288b7add9de5d8525d4e65d6ebc8840103040d4d57b86", size = 1785489, upload-time = "2026-10-07T09:16:48.795Z" }, + { url = "https://files.pythonhosted.org/packages/a2/c8/e8117528eb96feafcd5fced50a939ecfdc6242b3782959d202755536bb9e/shapely-2.2.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0a63e6b68ec785ef3aae3935c4aa9fb8edccced94e23c79d5d85276442c60859", size = 1585345, upload-time = "2026-10-07T09:16:50.527Z" }, + { url = "https://files.pythonhosted.org/packages/53/66/289a7055e3a383680771ba59764712db822fa406bbf52971a76e51d160d6/shapely-2.2.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:770d4db5cf0bfeed931a1c4aaf4f4eadad0f43f5fc72c27c88fe1f07904ae767", size = 2177801, upload-time = "2026-10-07T09:16:52.393Z" }, + { url = "https://files.pythonhosted.org/packages/d2/54/8f3d60050a703dcab48f7991ec4fb111772731d20ce6a1bf649465033476/shapely-2.2.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:74f4313af38d6e49ea83532d6cedfb4fe5e6c5485d7c40202bd61b19d6ff09bf", size = 2299593, upload-time = "2026-10-07T09:16:54.462Z" }, + { url = "https://files.pythonhosted.org/packages/cf/ec/3389afd3919494f479347a83db7b5672c3c73a339173426a902d9d295152/shapely-2.2.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:9ee11aeba1759d15a525ded58e17916d3edfa60d52110fd8df6a7609a871f066", size = 3246048, upload-time = "2026-10-07T09:16:56.477Z" }, + { url = "https://files.pythonhosted.org/packages/6f/b5/d0d4e3eaf232425a11be7af1a24aaf9c6792bc7a17dd17d722e42892f91a/shapely-2.2.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:24b175c570efc91d1180ac6cd527dc80e863bb7de37f8b2771703d822c65e023", size = 3389241, upload-time = "2026-10-07T09:16:59.055Z" }, + { url = "https://files.pythonhosted.org/packages/3a/3d/b9626c58982a3cf4278ad978644c7a315968c7e03cd7a8a6aaadde911074/shapely-2.2.0-cp314-cp314-win32.whl", hash = "sha256:4e5830637c080bdc646c5982ad6f7cc296b93038879649f7a6acd8e0f1c4db04", size = 1658287, upload-time = "2026-10-07T09:17:00.857Z" }, + { url = "https://files.pythonhosted.org/packages/0a/c1/b3acc1c764dff7e47485dd47fc7ff5fdc230257f02006fec049bf2b9449c/shapely-2.2.0-cp314-cp314-win_amd64.whl", hash = "sha256:48dd1d961391f314ab7fa8812c86ca2a727bee2bdca1478730eacaea007da18e", size = 1843568, upload-time = "2026-10-07T09:17:02.662Z" }, + { url = "https://files.pythonhosted.org/packages/53/12/3b4977cec6bbaee5d4538d8fbd8ffc75bf764fe3519aafb09d5eefb41daa/shapely-2.2.0-cp314-cp314-win_arm64.whl", hash = "sha256:c4127c064bc71f8b7f9b3f341d6627ed39977fd0b61a17c68d09179f5e0089ae", size = 1936825, upload-time = "2026-10-07T09:17:04.886Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0c/8a8f59e344dc3b53c77d99e35e3eb81b8c46cceeb3ffcd44b41ed8d17d7e/shapely-2.2.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:c2915ae1b858e73d5832be7fb5e89497cc5140fa505da40a45223029dc6deace", size = 1793948, upload-time = "2026-10-07T09:17:07.07Z" }, + { url = "https://files.pythonhosted.org/packages/af/1e/76728b192507909866d7eaa398c9a558d326ca9a7dd14bc929362cce99c9/shapely-2.2.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:74028f468e05e461b30a479b08c1fb5094fa45062abeeec8e7905a6711761436", size = 1596025, upload-time = "2026-10-07T09:17:09.141Z" }, + { url = "https://files.pythonhosted.org/packages/11/be/e4b4219ab6414fe17f60d064693f31d5acd25bd8c98def75c4c2a1108b18/shapely-2.2.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6ec5178a39803fa8626322f69d298037f182461dd28e3ae96c2c7a4309a6bf30", size = 2177914, upload-time = "2026-10-07T09:17:11.011Z" }, + { url = "https://files.pythonhosted.org/packages/f4/36/c007a564ddfeda1aff3c79435d4beb2c0baf41b37d1ec212269ef62f8da8/shapely-2.2.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:593e51cd04fe1122f1ab3fae87b306c36b2be0184a5e0d9c26849c55ff4580dc", size = 2297494, upload-time = "2026-10-07T09:17:13.089Z" }, + { url = "https://files.pythonhosted.org/packages/cf/74/dd289ba822b8c50a2b47dc70f87a6f4933a6402f5fe4cc5cb999fdf1ea4a/shapely-2.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:3575a323b7665d7a2e391b16a626caa6b6f6348f399183aca3fc656febd7cf04", size = 3245678, upload-time = "2026-10-07T09:17:15.165Z" }, + { url = "https://files.pythonhosted.org/packages/04/d8/bd58de9c4f325369bbc7edc4f7cce1a56cfab61e2b1c534176ea58d89db4/shapely-2.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:776cc8571d53e42be8fa6d42ad52a599b8e2186dd0c752922831508099af71e2", size = 3387773, upload-time = "2026-10-07T09:17:17.685Z" }, + { url = "https://files.pythonhosted.org/packages/69/4a/6d6e41cab51bb8aa1256ddc28d94d74d016683312e6e0e874afc8b874f3b/shapely-2.2.0-cp314-cp314t-win32.whl", hash = "sha256:f8cd733a66a2a10f461a70dde9fad7b2b62c6a48c7a66cea57ee6f1cd9f2bd2f", size = 1676626, upload-time = "2026-10-07T09:17:19.523Z" }, + { url = "https://files.pythonhosted.org/packages/22/06/6ab21f86fc08aa95b6eb3dc8f8d64701359ce89aae471c15b896e5be5afe/shapely-2.2.0-cp314-cp314t-win_amd64.whl", hash = "sha256:7f68c1fbacab81c0c066d1c3051eeb0f680b7a7a2c511e741f77741640187896", size = 1868388, upload-time = "2026-10-07T09:17:21.376Z" }, + { url = "https://files.pythonhosted.org/packages/07/85/5c0452ee08cfd72b8945ac26fbd5ae559a7af7184aa989a0d83f68f07cf9/shapely-2.2.0-cp314-cp314t-win_arm64.whl", hash = "sha256:9147ebc3b116a0511dca043937f85caf1a41690815643d5b89c8bc472f51c850", size = 1946897, upload-time = "2026-10-07T09:17:23.413Z" }, + { url = "https://files.pythonhosted.org/packages/1d/d0/c994c26df87119e530b715f7109960036242861dba37db17a1b9f44b6e56/shapely-2.2.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:715561ceda03b09ca1c6baf9922179392d8c2bc53a1b877965225f0dfb487a58", size = 1785017, upload-time = "2026-10-07T09:17:25.31Z" }, + { url = "https://files.pythonhosted.org/packages/0b/60/2a8975ee00697cb33b17e140def38f2600323760e52eaa6423183a522f06/shapely-2.2.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:556f20346a7d96fefbb71b74640d84ca14041703d60f0d2ff47b29d9b3e0093d", size = 1585001, upload-time = "2026-10-07T09:17:27.622Z" }, + { url = "https://files.pythonhosted.org/packages/26/07/45cd192ede49dd821c804fd53177ba5fa2739867ceeb542cfeb259ca4314/shapely-2.2.0-cp315-cp315-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ff9e87b534edf35af65758fafb31ad3b797354cba9323899e263f450c69a2ff2", size = 2177659, upload-time = "2026-10-07T09:17:29.501Z" }, + { url = "https://files.pythonhosted.org/packages/f1/7f/55a7f6ae91c10aa58005e985d01756048b6e4ff82e731ea39003e1eeda3e/shapely-2.2.0-cp315-cp315-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fdb599ec540cea5b635ac47bf24fca4cdfd1c39730ffc0b6cf0d2666b0dd9a33", size = 2299128, upload-time = "2026-10-07T09:17:31.352Z" }, + { url = "https://files.pythonhosted.org/packages/58/2f/49eb352f7c0c0c6ec17bc0bee33f9f449d397f8bfc9c2694c384e752f25e/shapely-2.2.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:b8cb04906b74db26f848f76744fa995cd6abeae9145d27cc405277de1f949660", size = 3245354, upload-time = "2026-10-07T09:17:33.291Z" }, + { url = "https://files.pythonhosted.org/packages/1a/c6/3f4f736d615013b2c117cec4d716e775659b2452bb039643c0411d131750/shapely-2.2.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:d9b11d712ac72f1d869f2b6964dea5bd9f20b89901adcd796d6712496144ab22", size = 3388587, upload-time = "2026-10-07T09:17:35.261Z" }, + { url = "https://files.pythonhosted.org/packages/27/ea/cb26677d3e34e1663a00a1395fc17c4a2acb5fef638297f94d5cdb9a63f0/shapely-2.2.0-cp315-cp315-win32.whl", hash = "sha256:1af6935acde1db0b6a1bcbea30cbad5ae900723dfd398367ae1488470dc53667", size = 1658324, upload-time = "2026-10-07T09:17:37.362Z" }, + { url = "https://files.pythonhosted.org/packages/14/7d/351c43d812b94197fe279dc3e0defc6886e4be5a144fc191b8635b0fd839/shapely-2.2.0-cp315-cp315-win_amd64.whl", hash = "sha256:96e5101ad2d73df869255bae4c55537f372d32066e2328c376e09841f0f66800", size = 1843506, upload-time = "2026-10-07T09:17:39.336Z" }, + { url = "https://files.pythonhosted.org/packages/82/de/9b62659a23fe8b9d590cf8e4698051d8eab5c5cdddfd86c531019e9d0d2d/shapely-2.2.0-cp315-cp315-win_arm64.whl", hash = "sha256:446b2d5a323bddd1c2a27f41325fdb3a3e8e33c1f8f0f840bdb63e8c1515b29e", size = 1936521, upload-time = "2026-10-07T09:17:41.121Z" }, + { url = "https://files.pythonhosted.org/packages/91/c9/5e16b2ac8853ec587406496a85cbeb1f3465b53c5e8bf0f222b4a39a44a1/shapely-2.2.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:c88b21a0e9599ebb741e08f71a95c8f07a434af909efb088828a9874d234d06d", size = 1792605, upload-time = "2026-10-07T09:17:43.211Z" }, + { url = "https://files.pythonhosted.org/packages/19/87/ebaf70f25565ed82d75ab84b1d0eb3a8b803302020c16bb98234f67c0477/shapely-2.2.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:cbe184e1946cfe115a9dfeadd2effd88ab4a237ab1a4335d106defa80fbc2d82", size = 1594776, upload-time = "2026-10-07T09:17:44.972Z" }, + { url = "https://files.pythonhosted.org/packages/e6/a1/e6210ff8aa7d065c2a94d2a3486342675bcb3f4d740ec686a414ace0c3b9/shapely-2.2.0-cp315-cp315t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8bc985ad731da2f2cedde9c3cfb3c3d946fe6fc63d2ca557673dc33dd1e389b9", size = 2175890, upload-time = "2026-10-07T09:17:46.92Z" }, + { url = "https://files.pythonhosted.org/packages/96/19/4df2a474cdc24beb06ef557d433dbe936fa274600d4846ea19877ae47094/shapely-2.2.0-cp315-cp315t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c3caa4c6308e7eaf18f4661134a1575eb290a56df78d0ae1b02f919a4cc7bd9d", size = 2296432, upload-time = "2026-10-07T09:17:48.895Z" }, + { url = "https://files.pythonhosted.org/packages/c5/29/2b38bbe8b9b2dba0838b7718819e8751490e3d946cff232049d0e707f98e/shapely-2.2.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:2fd87e55d7a7d310553b527378545cdc6ef8702473ed9294926b892c3cfb2ba0", size = 3243397, upload-time = "2026-10-07T09:17:50.885Z" }, + { url = "https://files.pythonhosted.org/packages/e8/1c/5430d8d6559c944ac673984f25989121abfd2bac4254ec3fff1d7673b7bc/shapely-2.2.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:7416db8ff3a1003687d4118e741343b3cf9ac2a4a925a59d44d98a865ac4e9e7", size = 3386299, upload-time = "2026-10-07T09:17:52.969Z" }, + { url = "https://files.pythonhosted.org/packages/5b/00/feaeb392e96063717387ec09e6c8e38b29fe4088ddfe976470255c69792e/shapely-2.2.0-cp315-cp315t-win32.whl", hash = "sha256:778421a19085bef1fb38bc0699db1ee9b08fdd0e30a8768788d601a4371f2de0", size = 1675823, upload-time = "2026-10-07T09:17:55.022Z" }, + { url = "https://files.pythonhosted.org/packages/0e/30/0b77618f33fecbc2209c767cecca58bbf83947fc0018571542bf2b859865/shapely-2.2.0-cp315-cp315t-win_amd64.whl", hash = "sha256:287ec7602f7a114b862ae0123880e57160cebe059843a4c7028aaee9e74287f6", size = 1866197, upload-time = "2026-10-07T09:17:56.991Z" }, + { url = "https://files.pythonhosted.org/packages/06/2b/9837e94408335520f778b09067fced0a5d4b2feffa5ebf7119412eb18b00/shapely-2.2.0-cp315-cp315t-win_arm64.whl", hash = "sha256:e414c78bc81aadd76a429111a350f4ef3d05fc13019805617b524951258468e5", size = 1945749, upload-time = "2026-10-07T09:17:59.116Z" }, +] + +[[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, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "tqdm" +version = "4.70.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0d/ea/b2a5bd54b28a324dae8211928b2d730b6547500342c7e6c6dea08bd0a485/tqdm-4.70.1.tar.gz", hash = "sha256:cefd0eca11b2a37a3aee776544d4f4ae913f02688135b5556b8788dfa474afc4", size = 171846, upload-time = "2026-09-11T07:25:16.601Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/03/921a3d3c75785aca9ebfbfcabfbc3a1be12e2ab5265deb026d55a5a3f83e/tqdm-4.70.1-py3-none-any.whl", hash = "sha256:c293e525e6fef9c20e8728fd4612df02a0aa31bb5fe91ecd93e123b1b7bffa73", size = 80199, upload-time = "2026-09-11T07:25:14.599Z" }, +] + [[package]] name = "typeguard" version = "4.6.0" @@ -622,3 +1055,12 @@ sdist = { url = "https://files.pythonhosted.org/packages/a3/26/b09b8010994eccc3c wheels = [ { url = "https://files.pythonhosted.org/packages/67/81/4add07e5172b7ac40d8ed5ff580409a7801a4fe26d529bdd915401dabfbe/typing_inspection-0.4.4-py3-none-any.whl", hash = "sha256:65b8397ba37ccbce054456aaccddfc91e6e3083c92824df348d96ca832f3f147", size = 14750, upload-time = "2026-08-12T12:37:24.648Z" }, ] + +[[package]] +name = "urllib3" +version = "2.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e3/05/b17359e1cefb4f909b5e40b1b90a496d987258916dbbf88e842c729f510e/urllib3-2.8.0.tar.gz", hash = "sha256:63bf2ead4c879426ebf22ef2a781eeb4aa3b4ae798a0435506f8687fd5bb9b63", size = 458972, upload-time = "2026-09-15T19:29:36.253Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/92/9d/c4e665119135114480843e7ab388fa94d8480650450e6f8e26b70d323a4c/urllib3-2.8.0-py3-none-any.whl", hash = "sha256:0cf3cae568d36aa9576b28dfb35f11328f1cb974ca7647d9475ebb86c75ac6e3", size = 135717, upload-time = "2026-09-15T19:29:34.577Z" }, +] diff --git a/docs/design.md b/docs/design.md index 31bd37b..0eb68ee 100644 --- a/docs/design.md +++ b/docs/design.md @@ -81,7 +81,7 @@ | 数据库 | 服务器上 1Panel 的 PostgreSQL 18 | 和鼠洞共用实例,不加新服务 | | 抓取节点 | Python 3.14,uv 管依赖;Ruff 做 lint 和格式化,Pyright 的严格模式做类型检查,pytest 做测试 | 浏览器抓取、正文提取、PDF 和 Office 解析、中文的文字识别,Python 的库最全,代价是多一套工具链。3.15 刚发布,文字识别要用的 onnxruntime 还没有它的安装包。Pyright 和 VS Code 的 Pylance 是同一个引擎,编辑器里看到的错误和 CI 一致 | | 抓取 | httpx(异步)请求网页,Playwright 驱动浏览器(Chromium 的无头精简版),lxml 按 CSS 或 XPath 取出列表 | 各自领域的主流库 | -| 正文、附件和文字识别 | 候选:trafilatura 取正文,pypdf 或 pdfplumber 读 PDF,python-docx 和 openpyxl 读 Office,RapidOCR 识别文字 | 都关在 `parse` 模块里,换了不影响别处;在[读正文和附件](https://github.com/mousebaoyan/mouseclock/issues/40)和[文字识别](https://github.com/mousebaoyan/mouseclock/issues/47)的任务里用真实的附件比较后定。不用 AGPL 许可的 PyMuPDF | +| 正文、附件和文字识别 | 图片用 RapidOCR(PP-OCRv6 small,ONNX Runtime)识别文字;正文和其他附件的候选库:trafilatura、pypdf 或 pdfplumber、python-docx、openpyxl | 都关在 `parse` 模块里,换了不影响别处;图片的试验见第 5.2 节,其余在[读正文和附件](https://github.com/mousebaoyan/mouseclock/issues/40)里比较后定。扫描 PDF 跟随该任务选定的渲染库;不用 AGPL 许可的 PyMuPDF | | 接口的类型 | 网站用 Zod 写接口的定义,生成 OpenAPI 文档;抓取节点从这份文档生成 Pydantic 模型 | 两边语言不同,接口的类型也只有一个来源。抓取节点用 Pydantic 校验网站的返回和模型的输出 | | 判别接口和 LLM | 实验后定(第 8.5 节) | | @@ -109,6 +109,8 @@ CPU 不是问题,要省的是带宽,做法见第 14 节。 **文字识别**:RapidOCR(PP-OCRv6)识别一张 20 行的中文页面约 1 秒,进程峰值约 690MB;抓取节点只有 4 核,会慢几倍。 +在 Windows、Python 3.14.5 上用 RapidOCR 3.10.0、ONNX Runtime 1.31.1 复测:Pillow 生成 1700×2100 的 21 行中文图片,识别出 21 行,3 种测试句子均原样识别;同一个实例首次调用 3.49 秒,重复调用 1.42 秒。另试一张本地图片,识别出 23 行。三次调用期间每 10 毫秒采样一次进程 RSS,峰值约 762 MiB;没有把图片或识别正文存进仓库。这些是开发机数据,抓取节点上的速度和内存仍需实测。 + 抓取节点同时开 2 个浏览器页面、一次识别一张图,峰值约 1.4GB,3.6GB 内存够用(第 16 节)。 ## 6. 账号与权限 From 8257c534a96626d8d817cafe647e062a6f424b0e Mon Sep 17 00:00:00 2001 From: Admireux <1071526655@qq.com> Date: Sat, 31 Oct 2026 19:26:45 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E8=A1=A5=E5=85=85=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E8=AF=86=E5=88=AB=E6=95=88=E6=9E=9C=E6=A0=B7=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crawler/examples/ocr/README.md | 10 ++++++++++ crawler/examples/ocr/input.png | Bin 0 -> 43221 bytes crawler/examples/ocr/output.txt | 3 +++ crawler/examples/ocr/test-output.txt | 23 +++++++++++++++++++++++ crawler/examples/ocr/test.jpg | Bin 0 -> 187026 bytes crawler/src/crawler/parse/image_test.py | 19 +++++++++++++++++++ docs/design.md | 2 +- 7 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 crawler/examples/ocr/README.md create mode 100644 crawler/examples/ocr/input.png create mode 100644 crawler/examples/ocr/output.txt create mode 100644 crawler/examples/ocr/test-output.txt create mode 100644 crawler/examples/ocr/test.jpg diff --git a/crawler/examples/ocr/README.md b/crawler/examples/ocr/README.md new file mode 100644 index 0000000..f1d0c9e --- /dev/null +++ b/crawler/examples/ocr/README.md @@ -0,0 +1,10 @@ +# 图片文字识别示例 + +- `input.png`:用 Pillow 绘制的三行合成中文图片;`output.txt` 是 RapidOCR 的完整输出。 +- `test.jpg`:一页通知图片;`test-output.txt` 是图片识别函数的完整输出,未人工修正。 + +在 `crawler/` 目录运行下面的命令,可以重新生成 `test-output.txt`: + +```powershell +uv run python -c "from pathlib import Path; from crawler.parse.image import image_text; image = Path('examples/ocr/test.jpg'); Path('examples/ocr/test-output.txt').write_text(image_text(image.read_bytes()) + chr(10), encoding='utf-8')" +``` diff --git a/crawler/examples/ocr/input.png b/crawler/examples/ocr/input.png new file mode 100644 index 0000000000000000000000000000000000000000..cfcdb4d8ec64a5e09698369de88b23c061b63957 GIT binary patch literal 43221 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复 +旦大学研究生报考服务系统>>>推免生报名。 +3.申请流程 +(1)在报考服务系统注册,务必填写真实有效信息。 +(2)登录后,申请人首先须点击“申请院系开放查询”, +查看招生院系的开放报名时间和《报名须知》,如不符合招 +生院系的报名条件,则报名无效。 +(3)申请人填报相关信息。每人只能提交一个申请志愿。 +1 diff --git a/crawler/examples/ocr/test.jpg b/crawler/examples/ocr/test.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fcb266eeb7ed3b0985cd6a88add48ca5b05f906c GIT binary patch literal 187026 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 None: assert "APPLICATION FORM 2027" in text assert "2027-08-10 17:00" in text assert "SEND THE FORM BEFORE DEADLINE" in text + + +def test_image_text_reads_chinese_example() -> None: + example = Path(__file__).parents[3] / "examples" / "ocr" + + text = image_text((example / "input.png").read_bytes()) + + assert "2027年夏令营报名通知" in text + assert "报名时间" in text + assert "7月6日10:00至8月10日17:00" in text + assert "请填写报名表和个人陈述" in text + + +def test_image_text_returns_empty_for_blank_image() -> None: + buffer = io.BytesIO() + Image.new("RGB", (600, 300), "white").save(buffer, format="PNG") + + assert image_text(buffer.getvalue()) == "" diff --git a/docs/design.md b/docs/design.md index 0eb68ee..50b726a 100644 --- a/docs/design.md +++ b/docs/design.md @@ -109,7 +109,7 @@ CPU 不是问题,要省的是带宽,做法见第 14 节。 **文字识别**:RapidOCR(PP-OCRv6)识别一张 20 行的中文页面约 1 秒,进程峰值约 690MB;抓取节点只有 4 核,会慢几倍。 -在 Windows、Python 3.14.5 上用 RapidOCR 3.10.0、ONNX Runtime 1.31.1 复测:Pillow 生成 1700×2100 的 21 行中文图片,识别出 21 行,3 种测试句子均原样识别;同一个实例首次调用 3.49 秒,重复调用 1.42 秒。另试一张本地图片,识别出 23 行。三次调用期间每 10 毫秒采样一次进程 RSS,峰值约 762 MiB;没有把图片或识别正文存进仓库。这些是开发机数据,抓取节点上的速度和内存仍需实测。 +在 Windows、Python 3.14.5 上用 RapidOCR 3.10.0、ONNX Runtime 1.31.1 复测:Pillow 生成 1700×2100 的 21 行中文图片,识别出 21 行,3 种测试句子均原样识别;同一个实例首次调用 3.49 秒,重复调用 1.42 秒。另试一张图片,识别出 23 行。三次调用期间每 10 毫秒采样一次进程 RSS,峰值约 762 MiB。这些是开发机数据,抓取节点上的速度和内存仍需实测。 抓取节点同时开 2 个浏览器页面、一次识别一张图,峰值约 1.4GB,3.6GB 内存够用(第 16 节)。 From 27cf2e97c7e2a20a7a2172f6517fcb89a7de37fc Mon Sep 17 00:00:00 2001 From: Admireux <1071526655@qq.com> Date: Thu, 12 Nov 2026 23:19:17 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=AF=94=E8=BE=83=E5=B9=B6=E9=80=89?= =?UTF-8?q?=E5=AE=9A=E5=9B=BE=E7=89=87=E6=96=87=E5=AD=97=E8=AF=86=E5=88=AB?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 用真实附件比较 PP-OCRv6 三档模型并选 small - 删除真实通知示例,测试改为现场生成 - 在构建阶段准备模型,运行和测试保持离线 --- .github/workflows/ci.yml | 1 + crawler/examples/ocr/README.md | 10 -- crawler/examples/ocr/input.png | Bin 43221 -> 0 bytes crawler/examples/ocr/output.txt | 3 - crawler/examples/ocr/test-output.txt | 23 ----- crawler/examples/ocr/test.jpg | Bin 187026 -> 0 bytes crawler/ocr-models.yaml | 23 +++++ crawler/src/crawler/parse/NotoSansSC-OFL.txt | 93 ++++++++++++++++++ crawler/src/crawler/parse/NotoSansSC-test.ttf | Bin 0 -> 37284 bytes crawler/src/crawler/parse/image.py | 24 ++++- crawler/src/crawler/parse/image_test.py | 19 ++-- docs/design.md | 25 +++-- 12 files changed, 171 insertions(+), 50 deletions(-) delete mode 100644 crawler/examples/ocr/README.md delete mode 100644 crawler/examples/ocr/input.png delete mode 100644 crawler/examples/ocr/output.txt delete mode 100644 crawler/examples/ocr/test-output.txt delete mode 100644 crawler/examples/ocr/test.jpg create mode 100644 crawler/ocr-models.yaml create mode 100644 crawler/src/crawler/parse/NotoSansSC-OFL.txt create mode 100644 crawler/src/crawler/parse/NotoSansSC-test.ttf diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bb6f939..2b6dc5f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -61,4 +61,5 @@ jobs: - uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2 with: working-directory: crawler + - run: cd crawler && uv sync --locked && uv run rapidocr download_models --config ocr-models.yaml - run: crawler/check.sh diff --git a/crawler/examples/ocr/README.md b/crawler/examples/ocr/README.md deleted file mode 100644 index f1d0c9e..0000000 --- a/crawler/examples/ocr/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# 图片文字识别示例 - -- `input.png`:用 Pillow 绘制的三行合成中文图片;`output.txt` 是 RapidOCR 的完整输出。 -- `test.jpg`:一页通知图片;`test-output.txt` 是图片识别函数的完整输出,未人工修正。 - -在 `crawler/` 目录运行下面的命令,可以重新生成 `test-output.txt`: - -```powershell -uv run python -c "from pathlib import Path; from crawler.parse.image import image_text; image = Path('examples/ocr/test.jpg'); Path('examples/ocr/test-output.txt').write_text(image_text(image.read_bytes()) + chr(10), encoding='utf-8')" -``` diff --git a/crawler/examples/ocr/input.png b/crawler/examples/ocr/input.png deleted file mode 100644 index cfcdb4d8ec64a5e09698369de88b23c061b63957..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43221 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复 -旦大学研究生报考服务系统>>>推免生报名。 -3.申请流程 -(1)在报考服务系统注册,务必填写真实有效信息。 -(2)登录后,申请人首先须点击“申请院系开放查询”, -查看招生院系的开放报名时间和《报名须知》,如不符合招 -生院系的报名条件,则报名无效。 -(3)申请人填报相关信息。每人只能提交一个申请志愿。 -1 diff --git a/crawler/examples/ocr/test.jpg b/crawler/examples/ocr/test.jpg deleted file mode 100644 index fcb266eeb7ed3b0985cd6a88add48ca5b05f906c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 187026 zcmeFZcT`hf_a}U*p(9N?L5d(%dMAL=M5;>fMWlw_dzIc41f_QoBGNlZiHJxQr1vh6 zNDC0cyrAYi7;NAHOxT=DArr|J;+4yU*EYpR+&vv+wQi+g0Gs6E#gW00$Qb zNXLGF+XdheKtxCgA|xOJfk4E>L?mRi3euwTLSo{g|8#;wOiWBhO2$A=&LDb^<(}yO^mW?{P!SPk;aA|{ zZ~(YeICxYzw*vqe0B{I!{&fNW<-)-&f~#S9R1wq6q?ce%vZxRL*;_Akx;#}teDU()RVQSATKYaSrO!@*7- z9u)uqF0Ob>B1rx%{~m*X+rYnV;NLdzZyWfx4gA{%{%r&Qwt@fCY=D12J``DFfH)o? zm}rzUb2)Iat~Vd}uB9m=|1o1cLTNW}jBX#pI8!Hab64)VmhD0_H^H!})1r>(NN!^> zB4AI6nO5Ie_Ba_0S<6@X3OAm%Ysy1qP@q@sI@l6LJ+t5kO3c#+{DgYnl?_CRc3s2< zOmA}H#QF2>^hHUvLJMqC{2!9_DZ_uo0?zv8XYr|Mp6WTczuUT?_`pV*=$f6)pBJy$ zZ&Zz;^Z`!K>yZ?107l4O#x0NnxK5Z0$At-@)CXmg_Re!gp}yO+2|}|YCzrjv-q8iU zYh5+%MYxH)SV87{Z?LtMpr5oMKA95KVub9X7P*FaLf4)|!8suh{}2RoxgJuBC)9tB z8u@Ujn0u^5QIg0Dl(dD@2P{wZ={hLZIC(NVJJdsm1RRZ|1Mut$85k;$bx#GX(B&=|1!rU z`dL{;b(uNiAK&yBR&w(s#&_ewywUZgFk$^lsDMK7|7B zj(6)Ri(PGy#CcP>Q>K9bRepZy=fxWN14hni+*i0~bZNH$v18mVuxmZpgOG$EKZS;` z$H&Oa&~@gR4$xfwbtQed?x(->?!hYMEnxTx?{mpVr}q5R`pUuZN()tAmxtfAXxyLO z0<-6bhTOL49lQilnK)-fpb1Me#K`*S@c_By`d4iV=I1T(qnSSKf-3+4|Ie_lYI!KK zV5N^u1T)w=$##T;t8t?G(8yqJ!-+xOuJu5Ptx{EQ!dG>sG09EUO{n(nn$#yL&zKB# z*9aZH8-P|{^}j8KJV_y1E^Cxz%P#(&jrC>(H}iKGM;_`ChK?E_E(RzmQSX&=j6WCH z;o}SJj*Dd8S9q=Gea1+OGp%o)4<8rRNo4RTB-=gty3Eb-VzN5Yvd8AkXq%SY7jYWS% zuvMAGizfc1N0H~**qRb6E8SK%GivB+CHDAi4lNkYT2YwRID%izVVAPtPsbJUh$fi9nuyNloChjiXYopCNl2u!Hj zquyJ#AmDLL6W2Yf$xg$RcuQ{@!lZ5IbbfYv1xI$MMn`nqy7wsym%p zAKba}-G;zu$9(sfDkXLW=FC3U7+{Qwn%cmaRu%d@t_}Jx#AhHt=MGje=s+_2Evc zs#*81#zTR7(-Nd+%J=<3OB~YtWH-1RYXS3;&g&sCLx{wh)ECu!UrizKjv1pqy6U=K zW+)UC7Gz{m5fHCABR&$UHiRK|bEgS`c9JD;6mQ;9#`j|%C(Ng_Iy?_Qxd7du>2lV= zcXyW=$B%r?uD_w*(aUjK|NIlgm;6`r7LYC?|IS~Ch)+I+GCM(_lRScrv3bOVT(MmY z;T+Nu<9ax%bQ_w;x?@%3*;t&scBR>+r$r#{`H0slwPd{-PZSXkC@ly$H~p{s7Jn{s zC7He#!-AR1>^tT#$>e#Qeot@i@{96uWLl6e9%^|69weXlHYI6BE!M`TrA8-2~EUj1{tSAa4bs~jUs>}x6U~H!jIW7K--TduYvg}4vR@#^}w^QW1 z)GY3g5ZqP)6Dk)x$!6GpaQfq? z`^CLX->Je67yHB9czi{In!N=8Cw{*>TD&GOfZ-~BIj@44Fhd>gb58(j_mO8JrP z7MRz*1xhxGDD@HNkxpy*OssrETJcTsipB-c?&$^N1_zOBb&KBu!<@6>OYygWy1K<- z;Kk7P0wT!_y!?<7oyH1y7dE`n?}=!l-u)Eb1kMz@1q4c9)_?Ea0tNcFzzRp_qg9-l z_{ig1pdq`r|EBD^d;BM}e-2o?v_ixZR!Dmbj43c zw>1V58Tf1LAC7tco}E7X3-6n;L3Z_T1Tz;c1UZrgz^ZqFk}tw*NSdVvr}?-X@@B&6 z*7{6!P`8PLUN~RvIg}xM-00CQ&}YAb4vUZ{9r$Qht=mmZ79@Mr}-Jp!IWJlJu-L0+)=w`5wROzE@ispNi>ecop zU2{ifOjp^A?S2>1Dl&|AN$dO;IP5YdQ)?-F`Fog=9qKT=Xf(U4!f4tX$3 zqZ(VcWf(9i*cL9z7-kI|`DH37vo%E`m>7^HhYg^Qpms4x<8MX(`5(e z9E>`IFe5%Hua2r4BEfOl=tcAR7R^7CCQA=-tXUlKKVa}@g9PLsDnSr1*{i)f;~;uO z=~_Y8sxb9_UUP#tlrG9l{?SO5f1VWKvbr^HLFdT}v>;*=wK9;?t$>VC6>zT*oBKU7 zv>Q(}8N{piP;P@KwJW>)79jG=s#x5oFTmBPt=$mSI4)NL@Q^V1$xfR!2%A$&82Aff zD51pVqNlYX+st@gUZn3{l)bcp2E%4#v=ZCgTF;$bHuldi5jTfTgH0WQs_d5`ogReC z52ZJfsV2*&eFvuM9t&1FKihf)YHo5eI$^!3NkmxnrGWcp&#&Id)>TRtgI9dhRhd&) zi&$Xw_q!;L&S$sPG)IP=W@%8VPZ#jwZI6+;82k?LMM{>tlv`Q;RGmxwDgFBG zyU)GWVaIKUmbq(V^Z}_S{Z}2Rv3}9Llezg(Pu973*Qb%1{69VV&+rxs`Nri<+{)0t zvl1?HTKN`26|Jc=asX?Ez-pAtbt`LN-Str3abl;gHHNI|b5p$W^f}{U?Uv{*;JDz( zH72~Yxaa}Glh6MeArn3a@1Iz54r=c3bWLsk)_i_+@IlVL-b#fYZ}(T_^%HaTyM=4l zTrUhWP0HEHJc^ZWf$@|e_xNJr{vN#k%01bT`48C}A;YA6nsSBR8=gR+azO+M!otP0 z9o3I?(QHW4&6}B|H-1X}cbKVp&*X+eROAl<5Iki6r>TCsU7zJML7RSCHyeuam3?t*QQW_Am}9%CQ)fZ6zN*u$G5sOi;Hr*zBM{PS!! zbM^-;c>T0+G)Y?2)jG;cm~Q{Q)(AyG2}AF2reSDRk^jgY2-9g=TsK`-uW3c9gdt?U z9Zj$8ot6JZ_{|=8n)gkiS12!DYbPpcO;Ax-^w=bku5SpnPj-+K>LZ) zMIQNCGCj5J(80({P1>7rbV%7%a%wnDU)aQaZU>Srq2y6c0J~EnOvZ_U7i^Vv2J=I7 z$GWY-$c>#OKbL7iNoxLp1Cb{pXIz`(gk3LD(PqtvqgekM3;s^Sz5LgrlOpVVyk`PR zVAIKu7k-kn2P8|6xr`l5(y2XIb)H|Zo{R+n$m=yE+%UFDOGf;LPgH8K0+wx$_nCV- z`NlYu;8lnKsxoxl!eFQ0lB?M))cv=J;q$p|H)#h43_WYWYBEA(?2}Q#9+TcLh|`kQ zvoGeRd+E`h95++^Dx3>v!_e!^aZpu2$DpJl1!8HYAv`;k9rtl1Ie%e$>A@9Q!LO0M zyWMg~%J_|0dnA*Se~$j;dApCFXD3xLqiXtRAx(y1d^-i{I_C3)uI%IIh?$7g$6jJj zH-6s3YYMgArMHZW|ctq_NbMYz9vbKcMV2T_=5Ho87euUp`Y z21JGELS|VI2~L8Z4Ts3Ax@ag)xqh6Te>)>zEkjTr6(COquOwX?$({&z7PS4! z*(~^Il%gv^gt+1C8zdLz+gRURe}Wmklf3wJ>bsYwzk=r2IAsxTggpIoWZ|H0TwZJw zJTaxYw*1GnRtdXGP&(_2C(W|%4CnH*?XRwyD%wg-ott$`XZE?XMFZHW#;>TxZ}<~X z8{A()cz@kpeGte-7s1wn9+VGWm0HW2LxmTOl%l03#e+{3t($JpZojlL2X&|XASA%a z9@+@$IKWiCwG-3$j#*hubZ%63sKDMXVzmQTdB}@U=F?&DU^tV!Sn24;{h2(st`FRg zdX9`Y(+L4DU7n`kMb9!3E`5%&SH&-$Tl2C4blX=4mX_N_Q}DH;87n_Tm~7lh}@7Llo5tv}N)-RZx29Dg;M7BM$JBj@4+cCwal^xL6kD^B&NNe)?D zZ&h$ydlQC}WrVbtO%^&Gc_y9$b*so?nIg0`5ZpZ5D}0kmyvwh(deOg-w2*^@CuST$ zg}Q^KkGlQ(Zh`FDg3Zts_uyo}J4}L@=TNF5iY^1@DlH%V)yVT&<=_^W>n4oWOhF1& zdeFsx@?3j=3$V>y&gP;Gub&sPZr=snh)OoU^1MMZiDFvoZh@g&fU*gia8(e!t}XSV zCG>s(rw!Dj^;-5J*?`;iK*BSQ%n_5H<;dQdUFp_pu)onlyBo*7f==spJIqZZhCYF zkLTVLi&3M?vKZnPh%J3ox8L0C^#yt-M`$xB7SEFr-;uQnZ|69^{cz|lQfr8QMpk>f z*q=*EjZ~vlZiG3O9de;`6ddY&JP2cTZtsa~%m`Y3S)IFWmYfn#p{gBZ+t1){w zkbu&%60+uAUbTd_nW;l7xIsOjhFhH@mAn}$Q~ZH36vj6bjdsVr3^iaTalyyGAFbEA z8`8JrXt}t!6HbtSDW%HDihFtadU)Z3{fBW-={zjn$127f<#~U))~#%+OcPc%Q5Qv+ zp|i*E4w+nN`EI)n8f)YiMuI5l@~zPIU3b|lvl3c(^0_UbPtPxE`yp-qoMNw?#BWr? zAQKrjbZ?T=@J*s`b>l4=XsEVbwiHP|tCL#mN%L7D3}F`iOds^R{f(*}O&D^Rlb}Ao z25uhKT12Ud03|i0(Hd)0bgeBtQk}K|i)p%Wc|M`^5t8P-E-SPQ9BSWX%1j2+yJ#QT zHrxW6L9kUA<8Rc0>b38uXJ*=r#GY=VYb8*aM=%=(&hhCMu-$Lt!BFR`!vM1d&s!iJ zJN(-IvW|yT@;O1Z^RiM3pvHXK_t3~I$p%OYF_*@aS>$eANn<-|QVo@Fd zThn9!%~w;(sM9Zni1%{~&J9)c6*6wdghvtW*}Z$SSwDI43T_G-7dl4y%>yJ{4iz3F z@y_jI;^oX>xy+~MaMQyk-IxN_=@7lV?BaFpR|no;(Fcliv|jn|wt!@73dP;tTH!-- zPTdCELMod$qBr%%^CJL-4v=vL%iy-un z84To!#W15v;mcg_2cg0KWhPoOdCPzOU$!}njWnd|5EA~0+$(q+zH!nVA6V{`=XPF9 zEA>$0;$ahdQXtxcH2p^?c~DO@ni&d?X&jpNCAap2NPmHQNPD$b z>O3Y%Pxf@?DmeplPN#hCEq1@R_I?1@9ls4mI6Km^dOaA`SV-m^RQ56ckKdQ49TAX+ z25Jh!y%o2>SDv+=EBaFy8aEBiABDQE&6ip`aQeLSbDI0Pb?MQ-CsL`;OZDNaJ~;8$ ziUG1jjb>@IR%V=wOB%L~f%M#*mW=V&qga#`=b~88%fvs z&sJX+hX=Z5&(g~VJwcQnlNeX8juV1TGGm%PcH;xrfSApIRc5bd#%*i5r?(nCp-j?K_(1yRzCP=x*6Y}EZ<+aTvcQiTZ z#n|-o-%$M}5c1m$%9Mt8IOPq!uT?tP%bB^z;EIz9;G&?5*Yh+s&F_hkr^xAkP^kN* zA^(eIz?zk$5p>OR>)knPP@yR>ill!H>*SqrsYUgxHA-bNtSyy(^HMkPgaGzl0h@+` zw?MyK=%WEo)Xa(b1e;Z+mCPsbpCdI~nOi`k58~fV$zt>#^5g1?@id$`Wj- zQS^Gq()V>Uoq^(#mr4CBJKNhoJ>>CGWr%@!|CqYG^FGQe6?1yKws<5zc3}qq6pc7F zWNi1_k~KjIK2CNDjN%p6;Z&ZM>gD@Zbi!!=DwiN!&FVctsW;@kch9qi3We+py_8nd zziXb2aa4!AKoA^93f%&0{0N^5Nl6`4TjGqGRYU!*8YH6NVE`yK24~NT5N#8_K}nF? z#QVm4?uT1)RivRForW|E-cKTyFdv-dc}?+Vk6~{h%0IL@akM4! zZWCmP%BE;#S=k%k!(>SCrMJYUG3~d@Mok$KvCo5;!%q# zPt}-v>$fqzPmGTq5NLek?DCw2kjT>ndvlM@#5IiF8yOKC`1B)GQ#i{)?R}-G6O#{9 zXtL#tPo!UXFYeBF=W^u%O{%n5wC+Dz=yEo>5ttY*(X=l@EU z#7TzNyU;>9q#(2133=Mlh)UW>5Jm^CYn<*zg6|ocSIMiz6X>f~%j~pq%}&YQty!(* z*Ge2y{pDlqx}isB-H`@1@E*R99|vh$dLn-{qj{#`7v&M*n=c@f9S4F>;QH#p%nQNg zkD7i^*TgEugAz9}d?=^^(kkKzy9;mzw`5B__a`DU#Qz&mM4@%=feo-hSd8s+Db`(8 z)%>pcp~!$1vLZ)WYC);Y7REv)MzmjV+Hx9v#ND*x+2TRgjbZNG;9(;F*>>D8;y5R1 zUkw+KbD)dz4lwE<@9JZxe_uFZojmsj94RqV?>_Tce2iAV7{8{5@?8NvPQyyM|1t~m zIIh#k*W0CZKSS5keL(y%-AmwR3v?{pT11igabN2E$}rcr%A$KD_*I@0^Tc!eTY#_0 zk_M?hL?0$S{j67!>{-yHwA3sWI4kPRO)Gj!YjNy)PwSo^|6E?*lU>W5}Bs> zWY#xP-8Mh$vkLNTSwH)#@Gn9z22fNDH@Lh+A9)zMWhA*Sj zVa-sb2a)w^gOiaSiFXSW8}2eNu=3*`!`W!-O)yjI+I*5N0$++dRQCI;<|(}4PhUnT z2BHGjA9UK(HYaQp(#W^tQ!!_epM6s;P<0@xy?5{RWs;rzA}&NfL`OTo>dz4hl@XY>KIH(uq!zQ%*8^puLAT7|u(ZH+bsl4Ac zU+v5^lv^g?R_!dAt#$7n`HuqzSKpy^F(t4Z`u@cFc(<%`p149`iZh`)Xutj^{B?J|(F=gD8)*f9A<#BubQ z8-;@6h2Ae{MaEjx93k$d(%qLl5f634-tIF&}w{2+obUY z*`db(AsagHOgQ=T@&Zb2VSour-_H8SsLJyLjIZ}Pq_@!8<;N}XvgeZFtmo=f_lBYa zmdM7{J+ldo$Izx7n%3?g_GC~FyAbcQw&SW>LA`kKese5dQ4 zo8x(v@VAi#EmGF*>uEZ88|R)9>nN>}!iF$i{~9^*@%+#Ab3Zxu=9c6J4b+j6oO(5+ zdOd=Y4i%@(G|8_mOXXW5sE4DG)k32*D`nL;S zZoS{zg;YyyCu0R{jqD|_I zU*$n#>rNZIAJSMZQh()*|A8U^evT_~opDAhu^hv9wPC69530Y3;8^4y{?%Z>r1J0b ztt&o2v7>grQaZUcI!li3%!{$$_F5M!L{liXDtt^$LO#-JM*QkDU2AJW5_GEYr-&4J zdvbjg`75MoJz!4-m(K%M8{fUxzo~&bCOZh4s(H!bK(}rINxD-~(UNRi+{jGLRgx2{ z*f8>G@sV1q!Msy8wT9ZKlY#h~3j?DaP8U2Zek5|6Mj}Ykb@SQ0*>mo?*pExQdTsQh zWKbGQDr}mi-%UDAL1U}kLx!C-#4j9CAEN70^Roe$>`ouD6-z&(d zcs5ZLIk`?m%@785_JlLVJ~rh02=oF(D7sxXV8*wQYS+LeXb|?hdsZwoZ-k|v8ePg2 zp~)pOe3*=*#A*?k77@N)hDusrp>G+5(w1u0yDxC|c_}22gwt3UrFAM}v441EQ>d}z zTuH?g(hmW@)1Tr&dVzj5&A=1t2o zA7b|G-dgqhdYR51;@MR?8yU7+#kv>V0;7K&uAd1!wa{6-(~)#1V93Qr{>6q1CD~Fy z%b>PP**u)_nk@q#+|`;9M`bVATBpfE##Xk$z|P{H;2iSeTGv_XqtwFQ$uL*S!i5Hh z6*|}r>Qo>Ty;e}TUP!vHPP0dG@@n@M_`Cc-$4>bms$X&77Vw#=?C)Y4SxbvL>Qr9u zXl$DHy?=6)XLrK8`N`T>aF~n2%X7XHKIDPQS>HO_NjNQ}9A?X??Az-7Q=}O#x z2xAIb48X(csBw_Z z`k~d+thKw9B+im44>p(=_Z4MV)4ncqg?$#;W*8YNBbVNV=XaJ^M;m_3R+Q4fSOO?5)Cx|$kzTD!!lG$k(n z#@O_e*VBdV+=RfFP$Rz)k*hr5a%I)HQ4@=#o<{o^NJkTr~XM zC}I`m-;?~(sQ-awQ2)H(|r!Von@>!D&{W{X2yaTbbt-*v>UcgLJB63_~3a*}i2 z!7AA<50 z($rCAh=xH^dogqK{u&Kptpp)^j)wt++GV_kn_eOZaEYBl%3ARy^^N6XcWRl_OCjh} zGxN9h1c~X&n|5@^Q)n4P==6|F8l~~*gZ;nv*TZR)m~%eP25Ent|01W2NAynW`#^Qy zSmhI>ZVZGR?XqT}uGighSJozvilp{?XjRYXhe(#B)O<}e|H3C%H=hv(*H1+ng2fi~ z1JNX<<3{{QFx+pM2yybg+~JqIa_Z1;FN-U8&g)W{i&g(3%7SizWoJcBRIac6l-Y`Q zrIPiM8|mYBDW;l=27kiLyLH0jx~$g1(?V>JIKl{VLB;t2jyN+Jd#+{=ksUHJindST zL?P1c2E!ZD&nQ87PAHnyD(frH(bvN&G0vP!V zJP%Ba3iuG1Lgx#qpyfhZUQv@e`cuYX#jmYBaTu|BBrGXJzsl?z;R*+-abdjVUe6A^ z*xxo(6sL&7?))tl+`Jo&4JAdxcR9MOo=$!81(Utn3w3bwsdk~^7^7}|_Ss8RT4Dp- znA+sP@5IC*_x?9y9hX52uNs4;E+{=H=y^MRvRR+3V&OW3rMoz=dd19b($zMZ=}#Zqa@ z4ixVhA!|2Fx3@wYLM&N>7;6m(Qd0Y9bcAqbPkPb_#GOZGT}T1CpK=939%cSyAW8 z(E6foC5C?&uP5jV(%;VA6E81kQ#$`)(2-<-A^9$64cN;ooayp-P3s7CT_bf-aB&Mf zDx!ResO*POqJ;G_FVv*!i&Cy;d>vy%`)CW1!lp z8;A2PmrQ#23`eg`u^?hI&Cs!R+vnl_S$ z1|8trE?b*&+u~_FDa>)sR6fIvkmw8~tPWo@OW{#Ve!rxVr2ODIozpS6{tqr8S_3by zw&?fZYA6RK44v7r za)rWDY97&9orm56nf8!_bLdTW1n>Mo4+96%=VA(F_H)7^L@=^7LR>#J*2>S{U*;S3 z|9{hFD?NG3<><7p(E9NzuGq2MSUWV_o3-f^f4io=D_^1+|AF?CpK=|{@7&$W88vM@ zzW4u51nU38p&=|3Wi0!~lD}a8@s#^%u$HYyrY@9g(vH=GRn5E5bh#u#nt3JOG_{i? zAZ;kGYY}v8X2NGO&_D53nJZM=73IHn5gQ`#;xwOW`N1s4l7*2Q&H6=sEphKv5e0a# zhq&{>2C?P#{%9?8b&A$rRsVM>|C2*c}2DGTY%o|jUGtOf3;Q!Gij#Pkz(o+_@*qQ zyV~Q$^cg;M(@-%V5#A@ORt~K)-t$)Wbzj#gGn@NT7T$XcJUOZ=qL8vcq&BT5CDfil zs5PBR8tw=*e(S7!tHAX(foD7dsD)7mn5iPlqnq(|V6dR|38+n5U54J-C;-qw}1Q@qII-U2K>odJ4BoNP3cYMtVY@mf(ec1h5NK z>MId=f~gf*=K>Ctvw7E=ZGEkv~CCPOq>`y=vzx?Si(l#l5^3eu>%v2UZ40nCGs#UNBP! zwu{RCp6K@Qh%>2QRt7nGJtFTil2y1=6+GIw3Pe6&Xvf$>?pd)0d>=C{G`f~(e8?rL z^x6F-$)80LX~w10cqB}xBtir`Ei{Og8`3Ky430X6ZZu$aO)++T2}}PDs69=%_x{I8 zt>B%z4D8iI(mM*lM!~9p1Ik;a1u+}%>f>U>&Wyxa$YWVx+yMSnuGqu zOpp%tFfO!d{FFPZ5!VCd22ie|!$^|!I0xvx7MF+W#hZ}=+;>>g#X7PM`dB{))*U=X zoWEULP-~w2RNA8M_V?k4eC^GSUAEnkX00qQ9`iu=-AQ?ivgY@nOa%~GZ*2O9R+bI_ zgb$A@udaZc3W&yyo=iOwJr?Gg#Myo_aAphaJ_LQPi%JA|OaA|&_QEqxPraD75j$D5 z`bsQYu*eVvr}dE@n(`>gYAqTj$xbGCYSC|!+gUuUS* z4}E-HO7ig`aEhCcZS5T*fcVrc7LSc?tcm>@g~sdTbGZ~)v%mqq8!RU??fK81Hq7{p zq{!(-@-(%oWU6hjN2Ak<4-I#VD5X*1h;S{${TiXFyx76B4bI2O`<#yr)WY;X6o6#V zd}G*7;|PqpUQ$Q!jMKeXh-_PQJVim313}ra>J`%`jCvJBp8V{SKR{_Nmm&uN}ggVvEs=pQp~^W}D1%eQN`Iwyyq= zsUK2Pz6Di?h91C5A~@Qc;F&+>S@^Y^-wFkW(ilbhBImhm*?jE5W1DANL>aW{ zx+7Sy!5{XdBtpjOE(%W-`S$3ofAwIl_+?8n&h_-Z9rOhc=;TZyc%b0UguEHliLl|N z5J%HHZKh3_^biFk=7JT$@0AFoE-y1{1soo(r83y*RkJwLJ*SAk8GrspUx`g~eI+7@ z^0lvwFS+cw1&7nS#(MajOb&Q8X-118ob79u*rUnP@l$4Uz6bVsa?;cUnU7AegnHdA zqunABrl#gne}~Pz7Ub_AqjC8~Cr|1q{Gyb|r|>s}nTprOh@31LXog>AY6p8Q)WPbk zeiZnfy~IT0&9_t);dVCkg%j-{deUGa+MYFV>9-YsS5v7exMW7CgM%o4cIhMnk3O(q zO?>uVbpS4y>IZB+)bQk4B(vA=;%kK}h19{zceg<2PzMPwZc|*LWBDB1(Z+?mw$YB5 zmY2>5L3g*Q-0Yy8`{=EYx!JPH_%}OgYX&>^t6%%Pc)i;%i0gDNjH6mgO|GCwWHcMYUU>9t~J4NJ(qi1h1VCxW2zi_t%CBJ+!hg_2~FX8H1X#99NjLM zNrEtKE#+`IKWJE@Yg$PQD#Xa5fy4N$k8Zm_VRAERV<+CV@Oe*exn%UA&@T7W@BLeR zMP$A#h8F{A@mE$+iVO#$PX6t0lKjQlT#dxyRhF&gkc}Zr4acWN6eDZj55hPQgjpY# z17L<`2^*n(oXwnDe)=OS#)#5tiES%zEzHNwrGM6?&e=%nzD!7)!>jSZM%aTb4j{~3 z*Ai47^vBwOS+{Fy&@AK#pOh*HJ|8m!2cC=5F)9=`LqE%U-SburQ{ zluPcOMj=R`mjG0M^aP1bfbN0G;okIdJ_DVdnSXcwOyml20piKesdXS@GfjNVa^YW0 z%oYfjHiznu&U%NOv)gL>isy(680#F<|FkrE6U#%VVP9wjnh5Cl~a2c-4M2Okw~rz5(-s3$7Am}X;cGyq|84yOxIr;I^!lVv##-}mYaEsjSw+Mz{Y zt~a{Ucyrh)9>sbDMf~}z#IY*fxQ=%C3iK#Vl{J22IYN$F^kIwGQn-I5iDTt! zgJo^)UaE_mf|k5!_F6j6Q+H4$JDZ4=mZ9yzyg>WL9-cvin<3qB^9lW^o>~BFkoTn? z9@NLXYLvBqpDCpVpJc+!{EbQ|>R`J6gZ8tzX^CJ>;9ciU$iF zcRl|4UkxNR8qvT6jU|hqD z^Q9obojti=PP*1AYFPjYNNGen3JB#Y>eE=42e+XankzEic^o z*ZfLs-GFb*2sM0iVTv8_&%Kt&A1I&T1jRFdQI?kO z!vhtMQHN+ulp}YN8ik35jE&74^?z|$t?Im>hb%*van8n^PkIuC1J_m(nA9RmoagHb zD@NShyC2h^*!XLV3>j}kfGTNmj>$J56qO0sQ$0(l>5{Ko(M^6TF;B@(#nH8QL6Bj7 zbGcohJi^ScQ=(a(0q7#Ane-(NDQ|S4Bq11ub!&8qsaf;{nC9iBP6L$U*2RUwgX``cwTA=&c4)dE$AB@E=-sVCfl?&t!=KgL@i%y=!){k+s zg;5t~$_F7o`0F-?@e91Cjp{;-5x)xKFjOmCV&+Rr+Mb|!Vd#C)Q4#W?ZH4w#G92^c z0p5+~n-X~*T9GnO&fk0-WCU!U03b_p)UEg-MCe1%k_zM*Hh`xHTXDmlcnH7BYgf;i z?7MiAz{w2D?Q$)0Y3XBAiA-d(eu|{NEkw?oJVzYml+6#WciFDHr8!a<-Q=d`^-43G{*<>yk-(rE%-mpd-P+|zQC_s|Ie&#qN`k@`Q zfa{+vH4T75_M-O!Mp=&tgCQxlH&Nbdx+DQQ=gM4Py8V|TyeJm`%Eg+qpK(14lSi3p zAr322Bw+K7-5uF>p8ozGQ(C-wt;2S`%M`DK0nwD=aM=O|*?UrFzipCstv)qQL7?fo0i`erD1cBbIe%9D zs8O6v&qWdRz&$d}T1S_yr0f=m5&qh9D)?#zg+qS}&{#=^=ui4AKvP8a#^;ow*2m5; zd?HSZPxOAc8;rx7dZ4MRy7+RJ1ZwBJ(604?g;JU!h6j5?E<3f}N|U8G$ovrM_>WvYt5g|z05S^g0K$%2fagW!Ezm`YNhl&wRLCZ{ zDHCAYKKbLpxd3fF!40%?_ijbVo>h0tEbh^uf}b+^V_j5J8NGdDxLayyw9O9b)RcGu zugp!gIC9U^8SBn(p`+77MX!&rLRJSW;(ejPtiR54otq~EWfGqf{a!ms z1$G0^YpfcA!w1Q$VHIUqpy{4Eh8AZBL-Q=c7S|5n&JZ!X&b_6^+ewW{St&JMcUD$-YrQ zE_$dRSX!(RE?w(6J7Nl;pv_vPySIQ-Aqs^UyUv09tG zv48;lArg`trnq+;SO%w?$qL3@OtKiI^;Erovz1o$Q`V8)PGZlh5eME+f6*C#HCq+? zf-3@thX=3rk-wu$xckgS_V{A&@B1>P6qRi7L;#5;@curqypMWT8W8qlq{7LKHYv1< zDuMeEXBG?IA`87d*{b~xEgFizT@KjjMEE4Rcv2I%XqL&@vxjbZXEGo3DZV`t8TtoW zN_<^J@PYvd!qF+BLY@ z*r$)3*>}B`$``ZK6~2=Rj4}w7&edlqu@nxHTMe|+M{iBbi?HZ=GFQF#QB!{|@2)(a z?m5jyd|HR6gHl-U*ohy^OG~t*yo+uaV!N})h!^91y1HuZ(+Be|iBNR^)#z9&W#6{{C96j7)T zUNzVHWTO1PPSF3_vBcYSTWCsFMCJo%V-bV19n<`z%TyM}Nl zXBw>*zeT!bGrZ^zb}go7qyLG$vkHo{d$)WO+ylWqxCeI)!GgQHLmFsYg9V4i0tpVm z-QC^Y9U6BUxA0AW|5G)0b2+DKYR*MpclF!*eQNKu*ZM7?h4T6_1sT%`1SVp$>10*z zXRWmVKlfq(KkhyM=Qsb)TK}Il@IPzd|JgN=m*oWn?qxwVqlo6~V981?_!8P%{4q+R zip7SV?6W-bi{uLQA2%|Zc`|Jw7ot($c76@z zef)NyFGY9_Z-E3Ne&FgE^zq3JDcrq%)oFEBni7=qxtw%4%+MdZ3imNjW1h!|L`l7O z!HHn*p^0GqGLcFQ82-}j8jJ-3bEm;1jdaqd1e$ZJb+|qZoVy}ero`;T=jFJQX~r$3 ziA$=K^`w?+1S~htG4(>{>AD(n&54@2P08bk^ns+T5d-Zrp`-=6HFAuSN z=GHusJe%nbL-XcH)^A=+V9BW-6AQJzIWJwcxf7;~hA9)scq3_Mt*EZwpRNW9=`#{{ zPwD?3-iK=5I2@Q&O6h}iLj%7K;l-tZ#`t^YjA4JI>yWJWpb4pf-3fG+1+0`QU$NYl zp9TiHN-Q<-3`B}#@34)-dEjPe3?IVVbtog;*}hJ)eNwG|fs3{DZC>CSZ)*%nltk0K zIbq3#VQc#4?;hsbwQ`Sf<&!6kpLY(VEF-%C@PnOnZ_dI@2T7{Ur~SB76kNkYYCz!{ZjN&y5;^m zz>RD%7J#Q=nLr(zpRj-8hcrALiPGsmPj0BEiguJ~I%)u;W`5is< zjJR;Js@L&%Z_|7bvZb8auSbkHtjKu$bXeea3s6&&az`9ftRAj3OBzd}>|I8tOu&yT za3GvJT^&p=*7N>6oL_B})9)%pf8OE4b>%qlw=UKzN&yelH(UId*iGJPpI6Oy~2v*MIr0qg%6UAb*-O*Qo? zCnuI+oA{q-!OnPC`LlZKe`{xj#F2$KkoFm~#SIYh7tSelhO2}-tz1@q z#cZ!@zq<01B8vvsUqYf){GMR-$yHraG3|> zSKn!*0z7TLswzwx-I=rfA3Q=aiJz@D2}i9yZ)e>1HtmAz;p(J8FuKG==FTH4ZPPr@ zaem4hBVA-=JPs)?apcrk(4-2P?_x!GjGu6+iL6c0$^DYXFsd55lSbTqIAs+NT#Gb} zh{fiz)|ZC4S?1;vPp{7TP~h782fPmkJj1>pe^k$Fa!mPZGaUpedm+VC)&vV~e_+93 zF?GgEin%!x%HsZaXsIg0@gioPH|E;^(smsZ!G1928y4$|`=*L;tNkhB?%?Xx$8F1+ zd%!&aKRr~y>IPNIEDL*Fhh{phzV#r@y>Mpr*kb;jcQis^o?P?f-qaR+i{UQWG*T$u zl6$OzFrwOgQXmUV2^rWVo1N~sZ!403gU5DBeXUCato&&yyCgsIptQZg%B5;jpKT`r z_D7T=c{*vbG?5(&42d$)Kogod{ge9AUXMSTZ2HH`Tk%>^2Tb%0 zDU3zF-sEWI!+5p0u*>uJat{bPnN>lrp5DZ7Gmp_CO6@UvD?dgLL*n}oVsJToE_|ku z^XGN=wePj3T-`-fC5gtySVFZZ^0N@VpZ%B;HEC3#Q&AU@r*CQR-lUb8YF=@!B9q43 zf$C2kj-O!28LKr3ikN@1ln6NSvOfAH1;;6Ae5p=Fx`Q*TYlXuJ`8LcQVY-O{LREhr z!{wm(WroKjKlniIWB^lBLgoWOwDjg1wzxq?`N*~p4lxOc` z!E@@@!7%)f{JYvQjD&LyMhWEuLyyu;E~rsw)3)!?t7xI&l&R&9OvyjjY;}hW8yjJM zStt3vi(BB_&c-Xux7+|aBi@xY1Y=V*K7pdD_f;7jK3@AyvdS3x9XWn!m1> zWCg7)$*RLx*>H*)j%oL|m}W;!cN(%KC7%bi6~%jw0nur73$UJ|{m^tZY|d3`^s3tH z4_3MEqCZ&%Z$59B&E38R(=<))CqQ3;8QT@&C*(7ALw9FLrfFTxV4sKRn&nR|g~rxt%? zA-Zm{u4+pu(EKg)C6fA0r4fz6-k3bET}BC-Mp@pY5A~4qwE3x{F#uf!RGco5-x#fuh!{1wkXl1Ic?9pI&8i~|7KW1` zS*?>U@sqjwp

EV&~-f{VcZm8)MDKDZgI=qE`-eG*mGOS&;TQc|AYD-8Nz0Pw29R zvETKKcMjWi7!y94*OXc^uCLW(Sj8!C{=BHk6DDI0mcP%z=1kJ;T7-cg)L%3hms}jQ znJ==38jl#wg>jMO$SfC&A`Mg*{k#iw?T`kxWMiue4Tem!EQ9jmLWyayId;K0hlO6} zENb(gM38qFE#{0dg~;v4+!v-s=QvvtyzS>N%Wh+Zb%_U( zWKFg*kJNj0>;Vx$^*#j14c`3VH^P-i@xCPrmaER961|hv@ATf5E$lXifoqYMlm6IL zV28ESXehAFt9Q@q>q^{mNPcVo$@e|eFkQ*Fmw4>jYoC}vo5$>-C4GjTHIolSi=xWU zv)FWUPug~>WV_Rt6LIz->Q|cjPJJcrEZS~RrGo4=<+6-*d7;XCjKdU-;5KC$?60GL zb1NGCMCZP!g*Jt#N4qd~YhCZbU!6ZL6?mm+s-T>Hz!hnzPOV#`(BpxdveO^T+r11I zvN}k2{>Csb0lt9X!W)Fre$@~iF)BN5r&#Foy4i^>3K0<(j}~Err8s>mv$SE3$?dMJ zfL|P<2IbKQ-8Ps+)laHZT3ot7yj|UfIcN5e;&2du5p## zmqmP4SWqrs=@mOs&?bb`X_EO&eU-T!^te<gSDY)HRKRW&zMzkDs1N85f<`%|+y zn#Uy!M3WcU#hYL^b{B8B5Z(p+zd2Pa9quYE6wtZC6Mp@nDTi*6ZdF~ z4wW86R^)t+iu*kOsszC%I??}0Kw_a_1H|lTX-$(`ppGZxqW)p=(p&0H6^bTwP|y+5 z-&z#=%Ie-yaofe~IPUT6>XgX2Unw=Zi;#spnn$+%EbFm~Uj=^s%v&L=+7L%zhr4F9 zE@LgG;k>Da2uAWgtm*(5U-f#0>oj*Q<~GmptW-K>p;x51DBk?djFE8UDuze%wX|+K z?V>qz^)GW;x#v&sDqMHX{-%@g25 zJ>iQF@TRY_y6QdXMLq8vRiA~h6g5YUDpW&db~5#X8?}DE_kM;BXkWed>D4qfC-pp_ z+VWa=G$<%>T5##d)T8M&R&B1XOmZMseDkU^2bQZtl;*wUY$L||B&RE+dj*b%Xcbp~cG>!fUE{0n#l@)eb-qu#y6M|(DBFcGypLWiwWv%nnngjbB z9IZ&B`cbzY_`_)3>5z#g+&ejH79B;TcN{WF1lot$9YsbCW3w2Ob3iwtRNJ>?K^Z9MbH&Z_uW zby>FPi8Z7Bi>w_I`Al*J+MYrI1dEt(VE1%{bD`6!OVk=Gb^cn0r zw1GBpqf66#fD8lh9)Q`V5q%y0OBHByt zW84)9Is=J#R&JbZ0+uSyUpXsSoh+E_4(0x6!pYNy#S0D!A<|bI3GrnY_PEo@dtKeZ=L8Oj~;VqJ5`A&YoA5803C?e80U(}W z*}{JoKaa!Z`vu!lguBhp<)yGRBsyH*&{PtW<68{Mwz;6dk$3DLdK_WoHm%1xBJ&sD{*wR8xzVU9vIK8`lwAe5P- z?U5~eveihccafy3pPYW7(%m~ZY}Nns4*k5NxO*2)e<}ZKc&d=;j+_Wcg0z#;J#O%g z*VDAPZZ*YP0N|hMU0MCU`@JM`ytH>?=ynyBk=M{b%96gO4o44fb*!UaK{p4JxL3x_ zsc|^a&dJJ#ydZAfCs7voU4*fR9s9efk(ntgv#p!J@iiv`3<8 z(}%mU_swhIl|dm7z_|#M+4f%@O`*+5D=UP1TVUrH`JW!TyzH(H0D@pQ*}Vq1NVGvC z{A*3q0=v5aFj06dU+ys3iwj|L{hroQTIWi z{^9ULGfU}fN8MZlz|%)Is@}-w!~n?t1u9z%NYJV2J zPs0h6^xQv?1n1E3iIaI$2myB5<$c^$A}PpWGpzy4u;4iN=JQS140&06B2Ei`eJO1n z31-32Eu1V&5R)<|{E0^mzIlMS$XLK?-}k?k+4Zms6;SoALTZ`j!65`~qzSQN3b z4#oL4`C?2dyak4kKFCwz`03GIhFUE;ep%c!OjsV`jPcJD*nC94od5ujSB=6N*!n#> zg%)`k8ciAAn|x_QB?dgnH5a}zHt52DP4DFMeaFU1Rt}Q$t^eMXCd$8^R4rAgU7a6a zJ%qkmm8rn2B{r;{zX%h$r*N46(4ytbjN^A20>%Ecnjq_9BKM?Wr82BAz z@e5ECg^5ep!pmySThE!wQ_Wtw6L_xeuX_82w``sOUL8WF@BHmVtRQ0%w~RZOqPf}U zO(T@?fAGnEVxbO+kohhFt4^oAzK^ie*LSws(c%nYCf6xm4CU+w-O-{!+Ie^@oCZ2s z?I3aT!Fs^X86Y$34bC1TddBZTok}V9p$>p5^fe1PPBM8;eXg=Wrlk?5{$a~56D~{i zg`b-%wymxSp15-Q@kYv8y5ViQgS97M`gUa>K(SY90e@=f(Et&}*1Wn)&I-vlLH(fC zV0ZrQHdWk3}8@ojoe`n4{q~B7_0qv47Ua(-tyq_9&KdO^u<4pa^#~G0kzqLqq&Cm2B zFU8s7-!S5;zFzprmf5Fim1E`~Y1lt}kl&A(wTiUZy%eU1zJROzJUV39`IuE?*cr8H za^`%1$<5s6ciBAoWPO-XIRyoT^e$zw%vat0brj`Sj5@xUs1Lq}C|$|omdFK{;tbx? zUhMyV(f$==zIf?2#%9fuNj*5F=~}$5FJ(g`&mteZ51FTtLI1{R~7 z&rQAa&1T~%!u>*U`eFr961KTq)mbg=ENJt080T$%Bi8ExH<35g^%Mz@aTTWB6b#$0 z;1iGHJgmsk?$R8|R&g`uamV9fB>KP^TlrS#KQ;}KST$UxVuw@7JF)ILBY4(*(e#c{ zk(+N`O9&IW9h6}5GTl%B<`|zCW49A7s*PVu+ZE9QMz@%84Rf9>Sh3q|8a(fX2CKY_ zY1JR?PbQ~BIvt{m(V5P#X&M8>Sc0MKb-Bl3oAgls#VX$MF!B(?_fN{++U`xuew{hH zS%L6rD_5}(;UfIzX&!0Mg9W1VZ&nkty6dA9GTSZY`OH_y#)0lIGc(B7A6Nv_9z7YO zh=#_8vQ1%1i!uN{Q5n(uAUA-b3{t!cr3fuH`m>rID=rV-u-1~HBhd>39eDKYNZrw9 z_-HV9@-qqu5|d+s^#2yNcD-l4BWGMSkVyLio$&TWmq&x>uGyiDN?BwnbCAvjV!2F9 z`tITj$p%`6v7zb^JT^40fvER{cP2dw`F2HG7!c6TU+F4Ogzh>E*z?RV6B;`c7X^0H z#|0GM>270OOsT*U+u4uC0UwmgR+Lv;C9;?jPaej@2Bet#Yx05NY@wEbph+$v*g?!w zf`X#9xry*Wrvl_kH=nqUfb5$&5g3(&vA4T5_b!l+C9ctkQWA&LH{&q8FENQAE5`fAe+H?m*S6H%$5>=lRE`|U{6K#ke$cJhmEheaTHOux{d?83mJBS!%m z{OxQ4EO;wk-%r_5Lv#;Rhx^tkSVsIfAx_A4g!+dOhx7Gi4lHfS(JFIniCo8c0d2S_ z^G=A9%A9k^$HzYR$)JiMf-Gy@`VsjTTWxB2RSO(!X-7}8LwNX0OK(Gd?b=tdc{e3) z#m=;I-lkPHo{?0M{I0FH8Vws1Y|=LKK>l`(;!~20PKN2%4KZ?x5B78Gn+mkw;z!F` zMVKj2wGktUu>84rZw7;gt@&y3pm%mb(YaoArG5p^F{H|CKnr z`3De161q_oj+K_CSi5Gd0z}{^*yD(O-Fvb$MhixQBSyFa4f;gZqc}B4`j(735zucq zd^?RW6W?5WRe75^Uj8JwOhr+zik$4AKd{wjf_c)aHO_CNfFtJy{EW!@aUE-!mgXn3 zGJY!#SQ7t4Z8+&mVlGAuJPXz~xc*Q&ftXy11q0tKUK*`53SX1CxEo*!Cqd@Fu;-DD zN1Jt4(UDI=aL|$*T*Q6N^uPu zbU!slv2?z~<^J?}6qPLGwOc$?UV;okj5(=C=#Q6gzuM-6rHtFTx_~|qiv486KCOJW z?Knh(u$y*KQEArR2!odYnT{a9~!XRv}3JwO*zH6M`v?bJjh1^8w z)YUsbv-{sm0%kWiPwuzyFVmG~Fz_!P3UYQd) zEUsLPVuVkCzTjBoGRgv1?*d0-Lf=^liiO0DM;Q#K4=%}nYoQ85g+{z zKrx7z?e&W(DAA{c8f>}3YI{Ni^9x&&h1?;)KWZdv;V~Eg8wBo#@w6|1pzoxQF~?2Q zhWz2Y40dNl!SqRIE+0~ms}3;Nb1f^j$g;B2k9&c8|R&7E)A|yW`gI*pRo(mRT6IlM|R?W71!(doDYi~SW$pIcObw1)jxn>V7&=~zQhtoKN}?R zK=ltk{IBC1{^O*iBX1+l@2p4ns5Uk^URG)@16kh0nUQ0{xKGv$i7NVcuqXVfull6= zNITCUm2Q4TVV&p=QitnNRlCRdtgW1ox78Hauo0jZGA4zmE#zUO`&;MGV>`pqb$a`? zVFC7f>vSr#ures1nund`z8~Qtly>YdrlEnB;i)2HyYH;E8F(2(PJmAR+>OhQj&pxW z#&=V-KVDO*4WEoVb5G%{u8=Dzg!dU!c$-cCLHy)yv?V&JY-H{Pv7x<4${86{Q9hBI zwcQlNG3H0q)3xM)H9-6<&DCTM#KQm}15}YSjO0OAYyG7>e@U)y`bdh{oQk?F9Y{j~ z1e%oH-S1?JX?-Z(dY{>3X4uUXe#jg(5nQ6jl?q^pGuOc)+WUi5p1x2UiP=k@5nxeW z)U^o@`SipG=1@z=mMKKJ?dLrb10@ahS{VGPq5kUb?$OmY7m~<0Z_c{+3)Hg#hC6bY z#sJkvf0X88{HP0-5Ew?@g1^p@CK;Xmp+*BB4%`dMc;{amAOzU<6U*YBxlNCj^Aof> z81n_WRJoQQYT=Gf!lA@wAPwoCRi0&Q&LwW1$g@2J+9=q4f1u=Y>K1lg2QsWy!9vg` zk!Hb5{oj$Qo0@cU44yn_?S4ob=*esfkb6-KmcB}LO}~n7Pgtm=jQ|l3vPHBf$eVG- zm}KDK)cR}?;A8G5v4l&gqHH4fV##y;p((_S%Pa{;&i&u%)7|ZW{*J(lb4V7hB|DS!{5Jy4xe9f^r!h2C?!RXkZw(d&_+(eo?oM@=V@k44|33Ch`8E-0#toTpP?@t+Pv#v#;!nixXJC3hd+CgNepa zKH?0gM-U4j{$kkTUH$W~+FAOC5$-=~C*BEQ_wtSU(d0$wba-J_-mh@EX7H?kH^$80 z!J+p7cjHk(ra40(&49>QVmk~&^+U$Pgaa&z3o1R{WN3jNbg`#9&=}tL9~Qvw)5Muu(8pzxvPbntz4x2CK+%}UI&x2;1lKWvdCwOstG-x zVWEH)dXn4I@zwox#_5~2a|uO+tdNmtXZyH3PyGQ))@ zD>|M~^9@0Y^(8$;-8^{;X=$v-&2E?F<23p(;RxC=Eljc~wfP4G(|;#K3q3SlA;%6p zlApqP;uD;Kr1p>#0m~my#Po#{lQqGK`0gFIvPX-jSX5Up0BL{!!L9C%jqS&Z5_r}z z!QeFLjqkyg#dK1lAbnH3}i*xI{xrXXW8MQc3bk<>qwM(+) z&MwXed{TgTAl>qojrB{V8LmUt|uu zV3gbHkFMJ*c6sDroN6%&4% z9y6!ga-|21S0u|0=!`ak5>(#S%L9NWqP?0 zk59!t$&zyNF4g+53?-?Gi7|_UeAL(cA%Q^S8ykUc15P`3|bCbjc{zN7O#Ngj%)#r;hw(s zE-8jf93#UKscju1VY2oVKtonnF*A%^UH3Zro5D%g6~_JY1lCsi5&%Nhig<7=7a$|c zsytZSyoX1e$C<+U7$pZA%96;)(}4kKX@LS&c7ShwW}2^s$gPxak9Vo7q8;VO0^ov4F_ zS1np0Yqt^JkIeca5afC6UnHho!e(%uWG-8t^OWi^PR%)d&%@%Zv620AeH`8SN_)!W zKnw@%55~dEJ1|E`3E<{>i4EfY$qzNx-bbQ7%^&UF^x40krCG0T7`>0`tc6vp18UqL zH%k1q8d0tX!PyqhfdiAFkHoTEpG8mTZ2$`vl$^YZo{{OZt`+v`KvMB7Le5L1lbl(Os z))*Y^laA!m)EFklJ+@s_J_lC4{p595pTJ`#(Zl7?Wn}NR%mTp3gZ>|> z+^N);aG=abV`lkBs$1y7nJTK$4==&L%|m}wQ89q|7@w zE05MSYX!mmQUb>-$vFFS%XA{CnoBDl|F%gJs}+6L@usPbIAv4O>j_pmK?^&YzPz=|(7W_oEhH#ge~d?$`#FUFKD z-*Clj&`wb1vZT{$FZ11+8Hvp45E*%S8aX#FzotB)wv_`>Pg#;8XHh)rZg(deYuy29 zeO>n3Oe&2@yIQ7J)Jvc|d?$;!KwcPa6s_*A1iqTgyP#<}V|OUG)pcuY;~Z_;`MxwXVC_!w;b|V(mqyY_;eZ5 zkU3~dW5O%y(!>dK>tu<0qF~*wtKFBJ??SMBIS9j(AljuxsoQin_n_odNKpx5M5-jT zSqjWzVsH59Su#QN-om~FiuxMSb5C18e0(&tvOHA)v~UVkpjU9nFb=@ga z@`XbM0oGwHiPvm0BUy|UbbfFkQvdBX7g=TRZ7d~#4-VBk`EGJ0?^&g0>lj z<5#OSR0 z&%^YmnEdKyE5{9K{ceHcF4qN{e+oC=Lxk?qIBkOO&N&NNZb= z`grnFT*5IYhjC2CAJyC}8B1MZ99=w7#fv!oi8B}!g2RYE#ARodY$V@Cb zbZYFsv*9uzf>UL$pVH#+!GYUo(?Ea9Im#@u2d5a}kQT7~55VD6->_@|G) z!SP12s5?;_$=cnFB)9-}GPuvddW(u$g|M{gR+^d5d<~jTW|pI&3Hev#_z!)GSvWeP zf~}w>vsVg@nAUYh6C>$KGg(6uu0DN$hN^ozDh$w7lfjUW0o9)5- zcnaW?h^)>$0fLc(zTHv&AmK~m%C0jy=0rZEC6wq7Sq^p)6(}Qd->m!N$K%_DBNwhw zU7LE4pzQf%)>tD}@Hy$i7G9w@i>4835_ZlTt!caHEH$|P)16Mwbqj&QcVRH^vHSAW^Fq%?8e2)3t6&`rD3-wqWK@dw_@wR@|8i!hGsuGPJ_86 z$W|VMcD~`J)hZ%;Q74-GMO32px|DB@HJ)A4ZbELyIs?qQAh$+8=t~0xgGnHJ0 z;zH_+fMSRZO&tpjgoLW6bKOm-BHM&+@uq>X6z4gXrl8=QbR7cy_lvx87b1fG-#yah zfag3#azMz5hcI*DJp;%}^j)CW2;g`d+7;$_hr$ZvO?POE%r-|?w>EsKeMbnTZbgH< zGE|+&>csUCt}300Th3WzY#L7xrt^=h63DFtj;MdX_u6wc606w9WZoYC<@DaLcI6jt zyfAw&skpK&JVSpcSIyPc3lB)4_!O7jbdC+_DPJ@aUYKwpj?y^Up#P12o~MIQCT+AQ ztf0hrZLQ#EzauI57%w57qjdcmS%0_wuZ%EuB$wmerQ+_LJ7&3y`$d2+RMEJxr`<@D}{^a?qZ-QR@BW{hp^!i ztRP`B8|H2-cicBP%5if%DC+W)WlPwo9qailWJmM&j<-nl z;hYDSI5S{m-u)QX^Fe5vCfLX&RWju4H*or)A3rQ$g(~50s6rMZ{$3^DzLT=LzL8(! zM5j}uze5`kW2|_;>ha;pop<>3moZ!RpfOqUSv`<_+hFr|Op}vKDc?|YCk|&&jA?cS zx5T`NN|jfi*8EQG9KzzXBoKRbF9E^1^^&z1FJoB392EhObBzhRkfrECYPvuA{GVvR z>c7zdj=lH3W$Z*0+t0x)#_gBAB@j$wg$hUE2|}gBi>KXI-80MN!xv#9P)h+3k@DD} z!*u?C8Rlsu^isj^g65MXFj|_!CRYv8Bh?wHKVQoo!f9e8suZ$-VOm;Th0WF9#X1Oj zx)R??QHla5>u9ZLmF{w(YcqIxWOuRdRiV7H!n05|z|5Z^oZS&k5&_3CNiA8k^+H|p z{f<2RW7OUbsEtJ%JfyM6T8}BdbKAHxGS9wiTLE14nh8Ua%3w5_bf$$*^Tcf6< zX}+B8vVsnG%}}PcfA{fcOo%p1%Cv}N`H3;(e0_(MTvK)M=pr#klbAzFd?#Etdd$b& zCUVyy4G9!Eayk6S;?vsWH?|p`xH|9n6VSS~^uK>pkoZ}=u0KdO8}~vn%{Vo;&j%(V zDm?yFX=Vx&`2F?zo!65G_CTmQ6g%ow7&%Ua6GY!u7?Bfo^%cf?`ux6@%5WQ+K?ZXp z|54M`cZzYtG*MF^7kf3FJTg)Q34TU4$%gHL(l&C?9+qTACk+yuc!yH>iFQ;cW&N-o z$#zSIh(*-Q0vt+~`+Tj0RDfI;;4gw0;#2lDu%UjM^aoZVgd7%sUfa>AWV|Uh)AEsS z=w;%@0@hs~0;6>z=|s9O`*H7#ZCFFNX|*Fe;>ig1FtESdzw$dzS&&2csJ!}ff8#&N zP0ERYSpuPK2UV4ie@w8X@&at_7C)?Qu0z}+gp%n6)|m2HkFmKC}_Zia7NM3Y*+s5e9_>sK3cqvuX{Y^`^@Oet-xg< z3xmq6#aw0O<(%q5MY{moxANPnvxrsg7KxbsWomBA_Sh-1q%4pG`9s)UOGC8pep@5o zgEnEJ-bA2>oDPDJ&EwbFY)4sviEpyh3M3<>WqE+nQ5O_Z6yAfRBM<#EeiAnVV^(fM zDe58b5+lQcc1IaFOD>G(T}LbqkkMOg{;I7IZ(*`|C>ziMXApIy`$DDURD!S!TOAr6 zep}*~o~caGGKpBxX`LEpN~73xti#(dCzAl;tN8YdK=osq?&b%M-k79n`0Ua4MyL0> z3a%EV#$K*Ejk6V%c*j0k4e>#R*^ic{1N==7YFvO3+IzsoZQT3Qw9eM|kLDLc($~NL zR^ES+*H?_eX2k6QWwqZP8;QDPQO>!y!GP;H4xUbqm#D#*)P$Ji^_F4d;g1CZ#54dm zV*G{acYGe1`S4&=;&Kxd2UoASUZ3w3AV;>t=9p9(jd&v5{5Xr4I17~p5v?5CCh9e{ zMb`5RISeXq+24{!9@y!(mDoL-0@bsfqqAj$et)_CB}{XJcD~*p$l;UW zo`coZD@N76RJ61R!87p1R5uXz{`n7}TyxMx6fEQWhCjOmx8sjJsIL-UaXakj#-bXU zW{_BGBu^VNkQsr*fd%mz85CaF0*sVSe2Uo8TG*ebjn?wD+#vZw{pZuV+MM8?Z;AlDQX@M2y17@!;1PeD<=uoEU{(H>;2yZ17dkfBBS-oCY< zblqUZ%je{t8;*Y8@gqze^?FM8kbP+weWc^vFzD9j%d#fnaVY$J|BLUJ9qk+-&??Vs zSZj|0%hx(km<4F=3Q3J=Dzvr1Fs>uCS%KOJZ+x>ju6FkmU-sbcN#*H2%Xk0XCPh*f zYS4$mdb=($2CUc%7^7Iq5*#a4(7x7LzW8+&SF-3XRk(Y#D_9`@-QQ2ivn;WWKVH%x zV&|((B&HECrZKy0{wu-j_^JRYTB!d$CtEkm>R8z?IDa9fB(OTJrOh@P+dzs?bNH?; z>PEcL=!E1g!PRr;JV3Q^mQ6N(%DRTe>%AO7R#fSZoqh67^dpnEmy=S`&|v} z57qan*!Y`SJ5qEUuKKfajwsW7Rn%qO;;s@~t_7;O_5StC{j>2eAd8gQ{g0M*&()BL z!HtCNMDC?RWWy`C>6KThtBr|L;S-#KDS4m;CToI#fE9CKMlj0pguPclzqT=5U2|(S zc;75+=X|6&^bhN>vmE9m_Yf5Ymb9xe(fp_SF8Cf#hr-TWG^5SbouKdx!gH?cC@(yQ0a}^kNrK zOdlwWjpP-4+TTf{WPCkvmSSgV3lHtY92)bpiK!HN{xBW2C98*HM8w50TAL9pD(x*B z@yf+(^pz4t*J1U1e?F?Jc!KT*rTn~W^~-AL)}IpOm_!bix%v*SIhon>`ZbjHG6UOw z5WReFoa;yqy4(L{rA3wp$cigd+pc(`DffFl^@0m!_yMV<|H^MX@7$OPirME$y-$t& z_V*8@)n{O#U52Nuq48~K;nL`rvxBe+r#Qhd;N^n^naiWFLO|rKzTsHOh76BY5Jd4fq ze$tS#Pki$UHV#f~d4?#tI+Kv7im~R63^x>^B|F3UEWz0nyN^*z`pt=ajJ@O($JMe3 zHe*Al5@fNL5j@4Oo;xk|704Rbkl?Ft(ejD#^k2M~$u+1<_wJ`UJkwuiO< znP`kmyekpj;mv53{okou*c1#~JD_2qrTUK!CMlbvr1`)2j14|e#jwNI{#!({_Lyyu zK(y*bscSt%Y1`Zo@!|4iHsCAZ#J-*+G;^W<{>n&-_Wr!lHo3=k%CxU|Hw$(}tpu{c zXyTi2;AZ>;FH|G7ZsjGezuRuI?b~59AVe5ZZ?HFaM~a&4Xt?Kn|Ade`WW0+U(hRfl z{0A$JAL_nqg0?(h5#l9sn6*FYqj0`DZpP#Z{fn z;bPY;58&3Dwt>1vZH`=f$Q=UuI_YQKE^$uhzi|tHh?e}(nY^S*xezCCr($P(pamg=t*b0^(GIf}~HL@pnnYs8_-_@w) zlKu%u+hlPh;mn0y{N_I5r?r?@ch&!Fx!5FJl}2=4sJTHpY-JLk@L&MQaz;6lhXgV{ zrih~+dFZ5GCExWgj_v1>$}4J&4xzSw27R<<=Eqgx&D>e8_kTAeJ>&EWCwkEVLZ{?8 zzPFv@!kkp#2?>hlTAm`G@Sx!6oV_4GM{I7*)@saTuQ=z~(<{Jb_xPob7J4Y?pBEF1 zfPTK~oftpqPo`?`gk>+9WUs6@DE?VfOLaSNr8!A+w9F5OTWe3=lQab_Ba zKT95b>G@Un{Ve|9-;=%DVWKqGPE#i3?GHp)BG8bH-3zzH~kg+QMhe=7#h?(pC{Ru(QUZuQ;Z}uO>m}r9?~pZr{Yd%j!3Xfsv>CGx1EF$A~(GoMkBtHiq=FWfuH5xceW%ag7p`u>fwv zxk@_dLdET`B9$7La)7w*Lf!gxwjXp8EOr9zIdX^ySG{@&cPl$;hGizQ;s*hLp)$xR=0FGJ*v;FSVtU?>B_%Hu-5{$Gf3Tj(`Wn`)D5T2LB zAr7Z3y6wWb8`7ASHGeCLxM`hHW_Q1pbU=m>U9-3o1|?wWfGRWx648ktBr?DJ94E7Z zWJ*+_GrG*72)GTf-rD;<~e!Ym#QDNbp$Y zswnbe_sS#0$!^EU@u(oSl@JwAEgnbG)L44>Lg1kCBe!m(O>e{z{ zkPOJfH2D@at)Dz>=Zz+Rl$Vs~1rMv)Tm#D;MAAhr?7CxA7JUpllDuGANZN`0c#Dm0 z=kq1Wd&&k##zu8CAc0J=nY94R)oaan?GbwZ12Ck7d1!d;b2>sVzOhrqF3_gXOM4jg z$P*#N#Qf!Agpa*i>>xpZY%iv z_?J|N_{vxv{JDZ7@oQ^S4firjhfuhDy7a4dOt6dk{xY*r8R$c$$C-bWQP4;>5Q6>z z=%5A7-wAdzyleHR>~nCqAM4QC?V7(sT=QgM7^%zn9OWa!<#m~;ET4n9fQE+%U?j6B zWO9hP+KjF6vKaVqtU9_RhL^HYSbt;Sx*|s`n~1uXi;z4e!MT<-8Hl#+N1Cha6~4nB zYE%40@B4TaS;T;4XpexK*=Y40{>H?|C{$YA)z4A7)OX*oLN;3h!tBSc=K5a3Q0p|} zV7ci}KY)G;g$-}%RU4JLh;6wwT~w&_F(JwE*bqaEtfwj7IoOWDTRM4RG4{%S^hT*U zZPS*QEy}`#Q^H}xxLUM2cH1MV-Szd1G3%%JCID}okGcY zzrc}}La9yCYcU)w<}_l^0TX=iyWZl`S}}DrUmWO`s0IL2 zPCO&qFEPBn9+0!hzWgut-YP1N{@wm;0!c%#Kya7F-Q7I|4{pJw)3`%|CAc*N2oT(Y zyGw9)2+~M!clUSdJ->5iZvJa7&)m#Kt-9#7x>r3_U0-?j{%rZAr1-v5#09Tx(cP)q z821;)_5CjnPDq*gw^6rhohHQ1Gq8U^>$3N-QWxW{yt>>UGsrYIGEZw0S70G>ou=Xy zyL*Af+A?Mpb8BYWh9GT~wPyZ}J|VJ;em>pqBpjn#WX0)|EPa{;ksQQl~=9)t;hMDiLy3Uf*eV7WsH&s_~%)G4+X$DJiQVX ztU`=ZhPbn|OcoiVo{WBts^rLc&>N)Z3Jh?L$8sHm&J)WN>41uesA5pdk-H~u=M*L_ ztAZt`Wh>mB1>+AisXr+3C?b7`t_hewK(x$9h2ZfpL-OUXQmY=Id ziHSrgrF;yJE3AaIjI}CRF<~fCnL7xLl9LR_NVFk?!4c2sAhOh;I`Y90yL7gm8b4Uv zl9BxHaZ7;Gm`BEs@(cBu6F)gfs&1$?mn2%uiLOQ>FnnR(Y#wDcr=QC+$42s&z|gx4 zM1?=+1$8UWlB#=?}RR|lqpKp7>cqm%ieaw^7fMv-w|y`Pk;91<5Ono)ZdDD ze3k3hTDmGjY>oG*z21mciLG9Ir?yE@>P2z9{?LJ7>zx{4Cz;}+`u=7ypmWT791khk z*QQWxHh-NGU*9_^n82g{98tS2sC{mfrL(n!{L}5jNoq&?*{cM~7*QVn#BBR7Mj9)a za64{E%b_e%nd0Mq|91ylXMNuj1~ELEM|yyyTU%(KTvyN!Kr?{yhp zk9Lr?uv?8bixGT~>n)Yce7INJGsgcuy`(S0HdK(}1|1nNdqZ2lAPiDrjHvMU^Pa+FotJ z44;Zzyo!zXcNLETm#P3xIMea3R-2~5EUXxSi-3iF*xcLS^ zY*$USiy|$Cwuxmq;pq|HO~g*~v>qcBe>wef?Qu4$>}awouGy0KiF zjlXzHdr5Y_qB? z#d+W|DGCdGI;j1pu6BNM=()afrzL6LcMMq^mmh8*?6NYinlk`kj$PrB0eEep^b_+quzP@7lx)~wMiEX zdV@~U)!e0Mk{)rsB-5vISI60Q#pB*)pRJ>d-pvmBqD7BDn80?ME{5k>nCbSPRTmYS z(iCbUF4VQ3dT@ugO6q+ZrWyVc4IG%jFi*nVT2!Dtp7lOrD-{K@e?P@5@1!b%q^M&A zd+e*qr?8N5{lmk{PxNNog{(evNH>h`ft0+3DQRYKW`Lw1g??&q{W{o$p;zagBcPq~ z;NG?0jo}Y#;oqW>mgfbR-EOSz<0^&#NwTvHz!~_NRBvvRq&{VxTzuFt0xu37$`JmO z`&jW9KOZ*ay6hsj)(8u?( zA|vzlv3!HUV&~?(fu641wa0h0RK+V$rC-lF^6h&##J`d3V{n73SuDQe+9`)cxzVcm zhEbb4Z6hw;KcEH1Sy2tERXqf`bT8}Wx3Dy(qiGxm?eX{yYE_JdIidx=~PgD#qw>5dUM;fTMOgmB5Dr3vCeL3h@`Gy2&d2W(j&Hv zQDNwzABWkh*eex+GCsfXf}lMJoR4UN8P zY&|v7X^$C#tY8tf_W{m-W1y+ilWPlD78f{;gmUel=)Or+%13d$RpY&6WU-{?mj#liwr_bJ^;M|ZQD*8u`uE$D zl}6K}>svd_`jiUU(Y4JNq-;8<)ifrNWV^XR!eEV%OEBM`-Dk!LKPh+~lt8zf&=>Ny zL^xKnX<#4FMaK3BAg=P96tec-{2k}Pw_|9+Q2;$(IO&I0N6pc$wc#G0tYe2|_7LVA zZ!@wQ=hiL1Y=S5UXgRMCk~uIG3GT&8{!ZOq8PYFf`|?K^qm<&K^y4{_s10$S6Iutv zoy;`I-HY#p#H&KRK4KjY&BozusmB5ikxOui^NsHCQGZ1cZ01goVCL;yX79W^M>rQZ zPWCqJTTNOD%BR->9t5kK@#t6!{W7OF%7HesSG$(YNg@w5m^DjAgFL)%9s?Uh-d+g8 zL#v3^t6F(no*}2qxBlZsYUuOi{gtq2u#xHO<%-}dJ$7x_ z8%*JI5o@oVhTXu37x;6es!muuK#T&W^vcw6m#yO;iixP9YBDB`@zJAxs#66Mz}#gM zBb%z(nWJBeaPJwkp)Z~-uzmA;2t@0 z?KsEgQhJPW^|55!raRS}5LbSeVY%~Zi)5A|w&)ph0$mePY+_v^fkRJLCu%QXdAEi= z4e>+U`o|7zQ%vl1V#WwvnS^_{7Y&c(6-!>3UDv6jyanoHSRnU+G%bnS| zD8LT65H}xL6yHV?ld*_W2P^;AHW!d+_rH18psU3hI?ux?jq&6u2I*}OGyKM9`>)J5 z&<9s3%$_esXON;s{yBAdDHJk_RX`XS9|5Ycv9K%b+|)Pdh7q_{6LqnFc4F=XMd85Z z@IYaaB+NA5w25B70#STlFpu%dV6xDsb!Xn)pbp$eJ!ZO8e?h})`wKAQd}Jg7X-)zf zI14e`oPgJ5?q)VV*C*~Uym3dWBmy`RSL5#Rt~U^y_J1r$;Ln@?0W%iJVCbBda`wUd zf?tPmg0AuI{|nOhLhxh6iUd2+6ks{{)kqA9_s3Oww13B#g-Tmp7jo{~ShlX57Er=l zoW&dH+TeT=_4Bj64`UWG+4g_at6u$>7^ue6-2Yb_E;um0DnTt7O&}jf6Z#RElkBJ4 z;J+Dn{D5g9<9|#OZ+wE7X4H{sLIkN5&7x_;@tA2CUuU_2u!1sy$^bcf|EB|qEa_C4 zS4#=QkrnbI{X2oQJQ}!Osvn;YPaT;qglU6o6jw2nSXW)Db71vhdKah^BX9(rk1eX# z#!sEEh(vnJ&qZisl!|p0?E-|r|AYy>zM17uP5+tXIXh{zsK|NtE<3Sloa*5Z@G**; zJ`Q|_yRuW08}+hy7T7Wh7SUfYT&(@EGAaAZkPKthRR_qtN)3Yt;b=?Ig&`9&#M{lN zqhQ-W=@7&X%``B}A z4M`Hbe|sRhJVm!jzG@V^85DK(57PhA>=sNaX^v2L=IeEu?E(2z5n!UU{vr8$2F8X) zOlg~LF>tjx@e;xEwedF43cB8C5ot78;U={1%G2#s#+DZ$_>gz3bJ-^~F4$3az(Hh3 zl9Y{^o@VlX`h|{mRoW2wU0nHOX2oR|CgR_xi3Ll{!Sq&@eu4s{|0yH6>V4a9FO9_C zbhKxe_|@nAq%^HzWwbEKe$p7Ujw?ZwXFSk7V=;m7N?MVLu|8rsciBLEa8*d3Ry=!qG#geJqvPQbMIW}BdveQ!dJV}F6F9w;ZWn@qr`#nPk(N&M%j+Dt6}n^j@CwH z4Tv`b&U45@g4h2-_X`GTEYYoJtvu!5K4%SMK7BhbdrA?< z0#moUJ6^xDnGC!q`CEJTD$N@ptSLFyXf$jcS!u@Ok7H#$ZAq*UQ^w*U70Tg{@82(v zrLB)+?+s$7ITk(T2yqI@%jxQl7a+foKmg1B35^eYNi(@qg~>{amTggvF-+};jhh7u z?_-b-6$QnZ5aLADUVy-Pjas>4i(`FABdLCF|Blom=L!(mUiOF9MtYZ)wg36->ie>;t@41$hV;7+IRFzxCgy{x z&aJl3Ua^rVju6h$>Gc`XDE_p9Xf07lk%!Sv#9{g{7AUhi^_&mw!*h~6EdsJ!l*GS- z?pZ=lPhyWaKJl^X>a|u?PDc;d|D0C+b-oA!nSb4hCyLqR+?Xqyx)M==D%a1H(p|vV zEpTOTX_-IA(gd(g%29vJWtAlE=LOa35M-B+T5MnvDm)0JyvoPy_AZ&F52N0BiYJOS zT5qrg;%9o!2*Y8mg7=C|(aY|nm(|8U6In}TKDraDW6$v-HOQHJ{WcaSKF!E4Er!I} zVO=VWkynFE#FSptm05WoQKu@JfaCeB!v|QuMkNYv(B^~wd&HaAANjz^DjeXA2ij-M zTWYy>APpGf8Dm7U%}FKKj|f4jP{)1;a{s?Iz`7h8nK;I~By!Dm8f<+vp8+aGbk#qg zq$oXt@tm)i35yZH_Y`;sn&T>m^>Hu8BA@+Yy<#Dk9Ad42mA_}J*1#x!Af2oPnopoQ zIsDMF+jucbgNfR4>h0tYjb2qmbh&cU%BvpWj|`PUN0Ox9b;XLkf?yoI_wql^_o8a4x zLPKEOSv@3<3ud8z(0CtWTTXjH4Yzy`Z&H<)>ZA-rQAge_C8srPX*wgQ$T2mzbJhQp zO1uFcPDK;=BzpN#`}=+3z$IzmWJ;pGG6x3I=4V@^84aWSljyZ+QC-jMWj#|h8pB?9 zq^jC@mx12z$Ea9K+*g8N+Nl8HW|kBnMWxFI5NY|pzKw8v@QC4fBBq)46IuVPYvNPvFYfJmzBctXG4B}>INBw3)a22B#+}_dqx{BuWCC?|WE(Ne;9LL&Np)Td4qWph z0k<{wRcrih{Ym!`j7Iroo@XSdkb=Cmk?)%!uN|5Ie#Y`IpIwfzDG;__WF2kX3kO~3 zz}TdHYpS26uzpKp8=V!wiszU236ltJxCY&=YL0N224lVGT(5xCkfDFynEzYHwx1ed zbcR>xw_`WPRi=l(N2psXW&8O`C>B*@7VTbpzp}7}jIr1Ac6hv6lKU4+vazhZZGH`D5= zWELj#zqQzSW~?#|Z4SY!vV(nRzWTHz&nY2%$P#-tDKIBaHj#Um*Y<}dRqh{90VgHj z;Pp_}KcK+Zpo!*Lw4+N577yX|I z>U2#`uYbndw^PSZa%g;JhU$}Jp@d1AHG0xIAYDRy%*VfyTb$Ad9Xgd17{-4Ff3HPq zGID5mYRTPeXf7{Ye}F2ZJ59X>w!Vt5i9J6xNKMB>i=hW@)6aif>l%``L*!WBZP0=+ zGP8)w6||?yTcvE=ix1R)d^-9VuT0K&`mVh@yrBQ(KcMC|!V0ztU|U(JpQWM4f|~*&~s4#2h{aB*Wk{BvjT2b=zW7@1|I4j@oU`uA~oiP|7Vw{ zY`jPLZq~mRJaHJCUSs_aXhm&oWdVpGtnV8l7w#h!apaVF{Z$H5Mhgz8$3we zE;M81-Zu~rgrcQn2OX%-%ww!(OuT7&?NhlI(^x*$m>E7`eR>oxpCB4pyukl4?A=+c z&=**v(D5s&!Sw(k!7C(!*rMIpc8=2#{^aTw)H191!$sNv62a?AL@O7_ZOJ)?#jyM4 zKBh(t7~x{^6l{4Pyzc5IC?L_;ukj1uO(0J)z!b|SuvoygSl1s_@HZZwRb4wKB;x<4 zUV@};?W(=%%%jG)SpO*mQ@du>D zF4?mp@H*iXyhg+u$D7DeF2avp0YYZKY=L;-cqKpAU#8tp--{h!^eVlrvrqF6q83rE z0X*Xdv!6+2exKO{oqQV0cOltc|9l_aJKT7_E_g>T!A_RFiWO841DG8CMH>5KA>=qG zHBbmiLV7=3q+vGEetEROFR}rLJ3LeET|kov)DZ~1rB)vOcjxpsUda{&+IImuLj6>i zs}o>5NH{Jb{LdSAYrz*yu}5lPN@Dc7nNo@RsV-R?rBH&k#58X*4E%8h!SPRXO72ic zUnpJO5{{Z9^HDsLI(OqG)hRTldiwBFJIgS6dU{)}`YzLXH*QY!MZ-slz05sHGVC6G zQGudG`-|OkFP(e+4Gc(BUGHQV61FxXlVFUDOYHB_8#AWaVZcI@xi4ZeNj9SD%H?t8cyQY z(BQLu=LQWo_^X*gqw#f;@y@Kv&D@{k9q1CBwC;CR$evjS4s*!)F%8#1`$%CNbfnea zbo&mXHo8uE{)k;PQm*+g87>MecR1|jfZ$dq?QENRT(Q!w5Z^YCKNt6axu7Q<{h;i008;+yVSuUBZ#@PD0_hw>#Q7XP?BIA9tk1qX>` z|ItGRJn`m8d*eo~#*m6)d*SP}FQOE2EBuI6XJT<)uLQZ3Uv$v& zzB&N>F_#x^`=R*f$P4uR#@X;1Uc@IVW@AAui@~9^n%v%ki{egufhmy*$ z%5Gm2yK{u$F)Ie`uMdzU${sWa{%-}hHp;=hCF^2PEiKo4XaZ_kndLtq9oX6(uGA6% zb((mZ3dmE01l>4}{aUsQ4I;sX991>==q+Jz;g7%U)qK3s{R+mRH2w2{Y4cT^ZxH2R z8fizg{E|(sO}@{oGEY~te52)sc_n{mTmogiB^JfcNTSxQC#I(O0CkZd*^s|kmivG! z?C4Y4XadV9DX|yponSpGx3Iv0Z^oJh6;a2TWyUuT!z}4M2JC~H1-tV zC_{c7i%2KrdpqrH-Kh2LUt1rmqx`NtHD~gu1kvJ%>VW)w5XOjqC8qkg4pRJ=8hnY(laq?zutGtVY#8{#+Cv?g~82tXa=s)OlssWFDK zaJi6Jf_#1x-Fb@xBU}(SwuMneEGwVLk%SV7tm2%y{p_@Z8+#R_IeK*vnns2s?Z5W( zlj?oKdK1d3Q1&IMANb>r?4d!pyeCF58b{uV2i0CZL zA3$^6Zr2}TT$2tw7og})U2|9d{kAZSkImb?#LmAuuVD(MewG>^;hlStC{q(vV6k~K zuz|mOuMlFWGF$HM8x4#?>aC3p%AOC>UB7UMs@F6KiC6(cUD(4%;hyHo1h5`5Br}Cu->&B9kH}ecJk9_^UQuwvVFi3u6fYS2c*R;Yz~IeW=HP6P$*=sd?D+B;3nZFl&Z<^<4$#umpdRl6+l?lb$8a^Wmpyss@gcG7Hpe1IpA-55tTCUg)u;dq;7a#oO*ui#7`5@~MT z611RSp4Vi>{jMmz-2i+2s(1zE^pWrxr?vG#u1DABTklj^k7Gyx+ssHB*YhN+>(5Ie zGA%x6wDnE52}#4;s$$*Sby6=nt|-SJ2%Co&vynwNT45o3FzNpPc zS_SqaU1$$A0h{VM0zVvejUFx~N_iaJPw_`f^Hi=r{dC1}QJd>FX=-Ezut>z--uZqr zJ~U9x<9g}wGm6Y2V&o}@%Hs67bJE`(E1%d2jO5n@dj9x@Z;t|!^0rI3bu*S#@BQ6T zENd!gyEa`DP%bcZr_*mw?H!Ul-uZk5REdg-o@k=KrAM-m=lOkgvCqJ3<(aFF*bi9dl$+Y0QL=H?o8mq1#Lr~IbFx*EuOA#5}4O*umH=Zr1utUaGH zl=iOHS7{1nV7dlR#z^X(NeFS21nt|tSSc#}>owhR%^%`1{ST-%``d{LJ0ylXdjVi0 zcU?^2dhZ#5Bc5@+w7SLL&eVm>@YO>NJuET3#Jz>79@_q;6W0cSKp247Zmrc3=u%YR zdRcTGTqy8O&NzY{>9HgotzB|YvoJG}cVpN7qU;G9^+ug826I^?YzvG$0)g`?Zor}$ z|HSd*^x6Dy^YHZaDsQ%9$P;F(tcC_B;6w8aA}Fz{nHIAh~Q0GGQ2F@SFi zH<10knCf>udk;g@bTcM;wsgICY})*05i1E*=<>-3E!fxEOH~;wa<%amibv3zNx*H+ zqq1BYKQKVBf(6U{jRW~8i7-uA`|&ec3hg|`aTcS$rGB!g;=z+RhMP11;&v|rRk74Fm$xuZ^b!tYL$Jf!bE9OuhRK9+X9+_r=U$_(GZ@ExP@Q`h%y-k3()1@(h{l_D?7=DsbxHyHRGows=3l{_6d&_wI%jVkLj1u@VOGV z4!(JPfv=Co8-O$MG+4(oEA;(dPpjH3Y)hUQb@ho%H5R<;nDEd@^8XIa!<$RR>Rm&Y$bKB7m=owQOU zN}QS+4oXK>AySaAPMQVgmxF?4bA>1rJjNB@M0F|Z>8BkH82J|8Rv#}I zhFm5|=*_?BxE{j<*&nz_ry2!qC?{)u3)8KSpo^;1` zYJ1vE9zFV}t%)c}0sMM2Fk}~rwwx>Kp1rPQao5K(IT>jw2$#`<*gH>@nd-O)h(w*m z-%d6CN^sMA4}4S3gWPpdZnv)ot%LcGQAUlo6yNYQqyQMK*e-HIW3u$0x+m^wO}+KG zPily=RTu3}rjYab0Ejx;*iwwpp7t{_AXyZg01}{py_AV)8M5Z9`AV-xTB6he97op@ zd(?O)X7z^SBvnNQ(F?tHQ1zMi-+)Wg8mO>GrfpS-dJ-FNX?Bd1wNtM6aHg{)MT&`Q z*}|T#|64x7KUZjnhwGDUUqeLZ>UBq^A4`WiG7F$BGj+=3B)t{xERAKbxPYml#Sd?% zQ`b%PZoLH}B-Uto&_~r}t003Yb1yiXIwgyxGkjwAT|mnU%7%X_YzYj$0rdS=gbaSkH@lS|OoJ`0RH>rJ+0;o;>#f#Zu@6R|BokWrb8u z0GB8^=2b&5uOaN+tB`AS!JJfns<@$SH7fWbAG8M-wN;>4aRE^uU)3?#A%m#3L&ZR) zdgDbk@e2E^=i;OIM1-^@oVUe=Rujo$ivwAZm|?a`l&{3_z#sSOAo4@HXf*%Siq}q9 z-2Cs|bReCp9!h=><$5Yen)u6kGmC%$9{$Va`hr$%%b7tQFU=W78@;tqy( zZh#$yU9PKKH{*_tds_^XW`dPL&RJovt8^@7t+|4>(u&(9e=%$@knA)PWtFtE+!nDBpPbuH(=CUK_7lwC6V$+?09ikIV=L zKMd`w`Z^dKGeu%3(JEHuw77rFdV4#8LIO*fzHCvZb!HoE_(sF?e!-hRK!EF5mD}DG z&)VuoUx>D5F~B$bFDm5Z9rnA=ctA2UtwbM7-F&CTggI&0YJ$k+V@c(&_E9im^zZlI zwp@2#tc4bTZtSHd1-xE!^rI^}pu}E`m!I;H1Nz0ejjoC z?^H>zp8+{ZlYw6`w`n8RjQO=_+~swT^E z*H<&p`w& z%5qR}y;a3?v;SW*77KJ#j`F!&61O6Xao7*EFrvgjN~@v`xwsEW~3{Psq7Ly%z@ zU7hq%;aEqKj>bTA+BSyx9)zOr-+#mC>Cx%TBTv3*2s=Q`Pj(h!a6x{8V)tlyi;J9= z3(5Lxzoj5PuILxBfT}1Ynp~=3s*MR zw?-XDD9)mJvUuu}hLQydfh#YCp)_2YLufLI5H~?u+Ed6EUZl>yfA@9#@ykv6WtwIr z)>Sb4TapAjMyANN=AHWl2gmJsZT)NtRmz561s1Z{>mGT8>}XQS{m2Cj@{1Dt7l2=? z^?Z8df}i~nwjATUm+B7EtrCc~K%1cr5*f`MHT2{la(GYzZS1okYyPRIOUa+|<6l#x z7b#PZoi*X?ZqP)OHA+dZT1E>THd&xNavNZ)~{=>z~!s6-m!4sC~ z&aAZ4sZqjA?=3wHD^McWTo;14#^_fP$GVQ1QsRiR>e6a@YzP`Eg+JC?Hv<69^i#e= zL}>6~c{#2n9AQE)T@lC<7`GGyI(VPZcW*xm(a<|c#wNvcWKd|LdgJ8H2tF`o!$aEf ziD~fl-M~cGt~+i2P1p8aK#7sRg!C;{tOIg0V20bS|J&327^YGYc*X5}{#0;0OQqHh zF_&Q8x6MLj-OBJ4v}&s7pRNvu&~+b*^(lY>wt4dElLM1GeR9v-Ea!O9xF;FEMrTmz zLo(}be*rg3YV!_Pu=xHl;pwc=PN?YU5B*2+;78LUt(5d!!qaXfRNg#M;1w0}pm z9Y3JAhbFTN1ApD9d+-BRq&+RNEKjSPE-M-7(1_`^+m?L0v-t%(ahwRE&i-*Ob2Ykf zj`*Hv`he9z!IdUeT7WJmlJA81nitf%_3Gy>uRmG1h*;R*S?824-p(({jSaKVm4Q<9iuCycdK2v3(J%2mN!b*@G6MgeJ8U?UOyFyC>kfDd0a zM`T|A4qqVF(rd!BC;Ir5%7=#251R*`tH3#Zi1X;%US^iQeQkJ%4Dt-lk_MR_9+b?s zhy+wz%!!8;@ESCDCZ6kDxLb|>hE%he1~G{3of)839aVL$rKhuE5}8%;O{>dbEY|`C zs`u1xI6p=*O{qSQIv!+LNAAtr=T(SSeDBRUKXl@(bv&OT}>(@Iz>r~>GBf# z=A;eN)}KGK!gkL#Vi>?_3JxiwHWqz8{Q#^2LhinYrz(4IXWWC65b zz{0m|Jp3t@B58|{To&&w5+FF8IEDOp2ykjIRrs_)*jJBZ+m16)c6mUY-!ScNEHNDP z@@0ML5NI<-?R~<`h4CM9TjX($&ABUVoZZy?&|vn}h(4vwIAfzlSxattty|+57Z+Du z-oTQTN2U0GKp&>$LgBe#>UqyD{CDAN^)XJtwD`byMT{snn>ei=GoJqo(f8*iH zn)d6!^Wr`vqC;o+Rhf!mrwRESpO-sKMn#_wRUP7q4%{Ckh)b!MibI}8pHU8TGHm37 zg>xVGXI0Q+(F~IAgYe8aR79@b@B z1j-cF>O7fk-givOa7?T68*TC2_~~Oa6#$08Yt~{WRPih`v&wbXewdy9m0rqMY8WH> z7*)kLt7Q>QBMHyR!HUQQslSLr?IiwpJCZCm$Wp&ff=Drx<*9iu(>>^ozdE%1*T>q1 zdhZofP5#D&(eJ1y>9NCRr2sh zj;Ne(%j-_6V6CUZ*iG=3@p1mTt=m5!pznYUhfLcu@gzmP-7H25`6$f9Kn%ppB6#GS zDa2ar>eMi8D^1abtbP;Ls5N4%XxOej3%yna0x=fxL!c2>E7}?2(DMrg2Rq!E3&mJrlNxx|W@q zX+D&u6s-|)1O6pnasJG#f8&1{i&OI-4RjK`e~mvEOo7wSp8ja|->D<37CAnZHd~r) zHKJ|5dt)gbD#-3@8HF@+?i`@lVieo0o#g+@(EcXW{keS9-<9DeGV}Xq{1=QALCyOh zmdLZYXv%H@1b$-Hw_`^~!f}070+EkS$D@z5tc?sYb!`;~*DI9O`c_H|O)0G{hKll5 zjS1Dio^7%KwY)?P9~-jj?=zh;GlGf|6A&M|-m@d~+_RTd2CC6!@XeU_9zXz^jkxe? zRe`Ri?H%ddxl>|v3{{J2dROngY~NRkO29evsgQw308QHmG1W=-L-y?E2Is^iLaf3w zJS6kVR;>!)5eMr{ z9}@AnG|DHnwOt?23yH7{nlpo?Jrc51kLc^76Si{cPFL0(wg#NAk*_&s`U56n*!dt| za{Ru%==D)w<(MN;nF9TAB%K&?x~RBD2zUGiPLtjnuYHzZ)3D<*x7&|xZ2}FbjlRJ| zQ3Idf#eml&iQ746ZB9?Vaa=`u%_`Jrf6w(N2_a41*QKH~Sco2}gajIJ?_4qtE0wrbVS}NAt~Q zJC7hV3$y-(W$O!6>rY7M!3j(1V6C-f1E3=&aGjc;4EHTu^2Vk?-co%XqW@M534>dx zbA!JAV7yLDjQ5HDuTI+^KV4VLT}b1imwD>4BG@^GPg8Qoi7ZxTOgIz6(2oBe4=mdh zzoVAM-OsWt)^~W-E%J7*q12eEuq|>LN7-5pE9~q%nxB(xTJgNHr+y4#1jG&XZqvF{Qk}*8r}n(N z|JHu)-`eB$S>7+MqFieRaQu1xBC2aS2oMJorX~tD-gbqC zX1T2`Uwe{qRugC(IuTqm4h#_r(b%fZj7Hk>?vyMy3Bzs5j zZN%!Wnrg;@Qv6@#VAV*0Ah#b?+Mq{xlHf^3?$5vo&|KRYA$%S4#ngg%bIqTx`}EyRdI;eCzQ9LO1w=-|o6dUfQvK<$>%?C{pq}=V}*-&atwKiYx zle4VK-g}gkA%=^UY%RSq+*YDaeh(uH-MPkg1&Dd@|0QXkHSQoUoAD)acjY+4?qYUI zy~^)gA|%Kg2a*+>D94)Br9i=PKI)*JZxD<)LF6`#sXAX{6EupY>OqVUrqwuDJTX|? zZ2nUG>l-PmVBLf9M+Fx@p)<8^pRWv`NY>laeR6ZF111_CI^ubDfvvj0|M3#&eW9A& znRK}1jajydRG%RjlKRR0O5x*1!%HEGkoxo~MuZZv1|EU6MF2nut`Iy6jd~Pt^Yc*Yp)@TFH7^@`XI-+n=%e@63W6#>o<7n5Amb)F46CcUzVO^)eul3&eLAJ-EJmI zK|pL&Vm=VO-?6(K_qnKev!8I=tucA|ggdyjFviF7qmFT_28DVNRV1#Sc+l+p=bfeV z7-3)aEn>J!;AXtcuAcM-qcW+kow$wmy6zY88}*cXb#Sg0N>y#y8~FP$WNzf4;Gei+ zr~b4`C@}n1=hh0IoNsnypfSmPC(z*ai^k77W1nT#dps)blMz1kA(n}y3rGo{Zq+?m zoCF%)Q}_Tw#*>A*n(`^@s`Eb9z^X9Rj~cq3R~OSus$UoANaMZfZTW#! z*QKUP6n|%*5xFcUV!iHR)Ivf3xQ>Hx5AnGi63@6X{l!C$xPyZlWBw2<_6=m}|90dH zt-{(5Hql)|H33}#peevgRR4y;H^A#)K#a$j&zrnGveecDcgD}E44T^G6OG7UeyYm~ z;>Rh+|Byf|k|eQ)g0bm5+d?EtYUYbU$g{sf)hxfrjOH$sdxKJp-}xw*g;icDDpz5& zo0=4ep;O|FmG8&8wS!5a@q_cIZyLVRP!$+>KbPj!?uf5edTY+adI@#B{drtZv#%e{ zg0a+iK8Ng}1}QEnrsCf)!HIObEsr4H6 zRdlNVuwNY+u9fHe;yEuZ8!Q_uRwXq2z_YZO^AbGDxJ26HBN>0IddeDMC8uKvP6P`w z9MnE*(|Ip1NAYK{&ed_?-ok4mMN+6^dbKnNa`dLS;=NJUQbJ8l?Lqr7O{^50##rlr zT3gbzT%pb+@r7nDWc{VlnZVi0F}dmb$7M&_Bc}G1rdM;mIGB1q>=$i&4f*VOB z>{xQ2N0K614u7Ya0Pb6|-%cOiDpz7)V6cC#fM1r|7lEum_Vt+2Gzs2_0m{ObE>&jp zJ{C1Dw&gZRe1N=J>KFc5l9xgx9^FKGS}w766YeLF?Zr*xj*X+=?RKNfL1SWy%tY@A ziW|+41Q!a8`zUje+OnJx8nj02Lw{IJ!*F@*psZUdCN7ewg)_eD-~t`vmETrorHH-c z{IboK^;!K_v?&i+4&#T;KLHY<;dDjrOeuA11WQ=F_JDGj0TbbTE=b|-$VexXua(=Y z??fBdSkI260g)B<%fdm2Xv5A(Lu~AQR^RP_Aq~^@s0Y@k@z($<7-$Jm<%AkjUPyHqh(kzqp>*J({@DsQOoFq4B0z?cL%Y}D(d@d>YX55r9naSm7>x1?%lBKa3 z#kZJMXW52q3SEyR2~X-;7S$;1NLZb^>C&(A&Ifwp&Umey6n=?x^lxNv`Y@kgHJv#W zo+(9n2=ld#rRN>FL7V7hFY-_ikVx&&r~KNKNx(ovF2m2ki)ic1<;G zi(jO2>9`w(UQpe845(?=1gaR8ZMn~9TyzOSg9DGbzZMUYw(Lg@YaB!s10I*$?7~;H zfM8#3qXNTlNy!1x+cNqV&ueWYs#G`#?`>+N;@NCM`E3l0R5jvWpX#eJ?~xtESzb++ zE`U00(>X|(WQWh6@b9uM$#S=?&sS$VLIK9PS%In^r0^dOpnAitKJD*8pY27^|KfSs z&vn;3=G%oKGIHQ1D@txt%1+0n$6L|?L|;XZshmLllGrMxb90vi?zNLU&3cZT#;3iE zOgmT)XlnzlG3dxAaacrIs!f2dWVQabWY&u0q_#pB*(G4{>AvNJ>{1Mg3{hT7Y^ zq{+V3s33uNq!&hWbOeR#0=H?uhGA<1NxQqV2b)X#uK~i~g~5UT20*1^McdpL zb=;{fulzOuTqb3CsAPtU8v^Y860wllJ9W(9= zhoUw)b`)wUjzyg=%8c6#VYDy&7pTMT*XwtjkBy3XQOL8?lqOzI?kpHTQfe^3fUO5rQd8 z?;#<^JU4S;3VCO^4)5?5kXwRVnOvCC_{1jZN43)#{^mWiOgWmiY`ub%} zm8TC)6of6G15lAtza2-erbU*ZI#}Z!vgST`@xk-~q;eWZvXD_bKg)*98|C*{#r@ z%GLGM1JNsU{GF|#7Rb`U^&f(=kUCMEjRd}3{sTfm_jX^lX5++Eee}1M^OKE&TSD}( zm75$AT7 zVglVh*0I^B*8dlKZyD8A8>f4RLV@B?+$C6%;_glkBv8d(hi_M z#qp)StY3|C(UKOo0)#R9(&zW`Y<$xjOO{wGS<@G^4sjPj5pRV~jJh|jcg(hGWUCI< ztQAV6%XH0u`rMn&kMRw0W*R#fw=o78@U6Oq{zSA>i%0tw zAjR@p;8krr3-(@d4~0X7QdpY`jyr?vD_Svpq(7+(Ao`J-7GUc=j^#-XK63E!e+yvTYS{fqga+v-&X;)iz4#$zBnoI$N2iU zTwpdWjbXw;Z?wR*_Gb#M)_GljLFqZJo#;508ll>~-~+tHXrJvyXPjdw&iyS^C%Eq` zWy*{&tBodrx?*p-OQ9p>H)IP-hb0XN%q1k5Z}@$YJ-LlIF;=_(Q~2^7ZVoEEJ?6#Q zNpT;FEY2a4#it^W^z%aRr`#oM2pr$QI!cu9{6<2SGG1=@7Ob`;33R@L*u>AoNW1#1 z61O)?!pM**wWTt>%TGj0x#zMo-Kr&fy%i_FvC^HNN6NceB=65!sAvO)6&L1VaAKt= z^-&Wk zQ1Rquk?BOU%iCI!R(@d8LGfyABTMjwF^lzbNNvsyd8ef_Wd`fwgMTmJ}!ShZk+W7qWYFVIGW!tyCk{lz$xK-_x|Qw_7Oo{hp5>OTec z@~X6z-SIcwdx(`nObownu{!%?_21M;HB3>)Ug|yGJ^DRGnsST=+d5^J5j*4gc_*!8 zGbLSg1{WOaeu*H@$kXZDvq@o3va^n=_1y($VuTSsNrPm0W4O@i`?ZLRQ!8}W4mmkk zE1PECysivGNrflH6QbEJ8TNBIh#$x6XXN4lCkTYf%DmPl|AsxMt_37}G`-bc=}y!g zCyJB{|Dz+y-U(ss9X&-;XI3;LPEX3Sbb8?I~IThzt9S3 zKoS-i{{p2(jG$ckw-qpS7Sy`i zwvEQwYnpN!-K?% z*!tFOhE+B`MWdhGTpQ!%STZ+NcT9siurFSEPA2pEgtXYe=N}RWs6*wkgPGu`f&?PX z$CDd(qZhQWz$x`Iris)dnyPFvO!R$g7*kL0LWS{{ZM4HF2X6m9!VAv-9AWN@*E<(1 zDS4ZZG7hymu#SleflRnY)FF`Qnh9RUwCtlqs$?xOS$0(Ap)OCJmy3UqBznJQqEvi6 zf<&Dh85BK0W&=ZfsK`~|q^dY!!|scqrBI9N=;mlH^REx=;2Y-tOZgGH%6oOwUSdjN z>2DMdESB)WT~YeY7oS6nYNuQ~z$6(XRI=?>;vNw{#@ga zEgM82vrF4q8f*K>DAd|ME{KL_0FsDc8szRb#T!`WRZw;+p% zWya&Xm8#t(rUXI8=M~90dy+-}x`O+P;EUptjm-^%FYD6NOXikoUMUaY+I*f<1^L|& z(*3d;sd3jix8i36^(i<`siu8^C?NLiFw1vJM(h374zKGQ`ssI30b6K!)%KRLz)T3FLg zbF}~VW#sI%8<~QNJnYld{!Anrc4hqlV}hT*`w$ZBaO5{!nW5bUBRVv?lR`)O*N`SJ zA(^`jUfPSsAzF`m?F49~d)&EAGft#rtNFsP1XaTH8_X)DTExiK9IlNWfa9vd+UvR?JJ7mtEO1_ioalFU(cOJs!jH)uocy zAj7MHnCIdWQ@oRyUs^o%tOvUh!AzJY?*?4HB2JO?b&~PKyn?;4|I(_bVb{B4Fve_j zx6FpYH{oPJ3&QL7d^jDF6T!2}7W6b-D6lIRV2Ct~O(ir3MjuL1(qpGHB18kB65nPxjz#L%=ZjJLAQQJ>OB&RBArA#?INUobsG)R}yD zUh}Q=d_Cyq->&|QXmz_hu-8HA;8)T5-u5AS{2eUQF=1ascfW;*=z6R5M6#dfh53R$ z%oTYvW%&iF!kZpbSg_xWMP)u|Qh7qYK#F}og;b!0&i!+~lhFqMn1*^_^WY>~iqFi- zJpSB=6c8^ea%rB+3r*Ax5T^qE@p43Y?!JT6Q~}d98xH}xGB=MJ#oK_UsR}PPN>mh) zJrbpE!r;~66ER#nH$MgaSpe5RfJ!EVF5U1fjpc|N8f$vJN-VkoIR6$BjRp zUuJQV<$m2DuR>g9wCodTcCg*Yv}8rP(33_-hj5J9di{$OM=P_!7u$_m@P1`R;l4!vw*7>Zf`{Rr0}b0?J7-T9WQMZuhKOfOkZEp%7J#EzYLeX%pw7XlIsS} z4uY)rBcAn(FrCND@0Je$6}UCFot@BUNY*!;pFesY1Mo<+YFuJL*8%ySTH{e90j4AY z?%9wVBE*(6QUl?xa9?uMhL%?IuJq5WSg1TOov)t~5tTdjb0x3bal+kht6wJ;2wgtzcRJ~ zQ1mCpGAkZK>^Vx_rV|_mFBkhjXMtoL!k6T7=o)uAb<+c4oGr}Lr|J_7>3J?J=kX{& zK*toP|02a4tVzVq`aMI3*-l1PJo3L??Yupf~9<<9X*s4zV!--=!j%HpvT8_i5q(|uyN?IEwLx}nhWcmVAOTr^<6lFx~_crGb3qUKz zMP~n<#G;@XrauGkxDJx!`;H&%$hYOG1 zpx=u}Nd}e=kz_Si{Y&jxgrBYb& z5{R(O?3Qs4cde%7m~#E)540gK#{rK10z1r|WXtm9HqE*as0XS~X+|jy(_x-i`&%L@ zqoQC&P`uKsDMZeCAeaO)AWAN1aMyW&=D(<`u>8va7%8TqKp z@#mBF5^S`te;VQ(mRZN~bC^bG3dv9Zb>UaHlK$|nE{}IF?oL|%`WD{`!c;l|T!(Du z8@I4fDMvBmTTk`4yuAQE)bX#VU7;>|^if4~r>9(j_UYzT`E?a_a6z9G?8*3zXF5;^ z&PdBP8L1~zmgj3f24SE%n+6Y8=P1{PeVny(eKhJt)mA0!Bh4y*6%FVK-VO-d$n)QtbqPF3PPT)>8 z;~5re^URZ0sp4%R<*8gegZ9aeVQik*Bq=-Cr;o0r%*NRh?&ENhk&H&(rbkd2Se zmau&wL-;g8B(&Mwg_ID)-;;|emrk2aL~XKZ@F6i)BS7SvGiJ+Pi~JL9p7#B5-#9I# z4hukLHf!PNbEUq+t^OG8DB%??Jm}dy>Eg_aUYS3iuMiYAYNcL>I7AXanUEvF^gToR z!hEo(1KG{ zHk&YPQr;x^4y<)9+GjC2{azlvHxR9*o5j1i*MH+6GQGFAY}>phs9du-a>6o^#GU%> zrUPDWsu8zwp0?%3X#*!M>XNwN3-NIf&JC9%1!VM4_7;%^?jwC zBOle9#5$beF5KFrei=2!j(>$4Pd75?%zqrbsDfDB)YhQe6ysL>)5bh2zbjI9Ia`uS z#Nu&u6vzVej18@?>e{KY_P<2{v|7`%vo-IZWC3EQZcZ3WqmQg=U6z1x>-Tfe71iApVK~wf&3sc)%GSsAkxw=|e5WzO`?j7!6jE#}XC4dq&uxZ6yr zATRK@CA&U351$>2#g|?wtjCcbCKAFBK#A(bIr{p3{^ZHR`BLXFAFwy;yn6GUT@764 zHmD=^=^!`9?=R53Y^n-RP5J07Oe`U-^1~LbBhs(!7hSf$wYAaFP?qw~`o8>OTJkKX zX6GkUDO)pJOQB2foX0?g5O%N0j zJ;LuvMA6y4Ma+_Bck6@51-;8sB20Bq?kpYRZDr_td>cI-L_DgfH@LwqUyw=o51VQ} zKi3S7x;|>8K>KP2=3zl`-dWq>ZphvQe8ZbAS@YS;$4>%tCNtbjKCMr}fVeEeZ3mlc zaLyx0jAKCdJRvETA3)nrF_ho(E-WXf8!XH3N&E$JYf7Hn5aTuhykz6={M?e1eth$m z1VP31_FML!wdzQHhssDjxOdZ~JAXLk-@8MV&!1uXddDB{QhAom!V#=5qa%U>76nC) zaYRvWm-kCNeYuPK3Jx@b^hQuK6h3aMx!|+z-$nd8g z*5TesF|8#zD-`;pnzcBgq^;FBm}`8DM-U?bqZ@9yP6$ML*w!~fB4f62mSN)tKVc0z zEDH9k5XX(PM>)}oB2q3Erzmo4+ktkzJwI)^B`2?q9pp1hw1H(wL&k!%&PZi`oqGHB zy9_!RJaXi70?{-?;7kxxOiQdX**ff9nKGL0ulj~)_U8g>(%esffrP|CDKFHBd^-Uy zYvfS_Un!K~4meh|b#;CfDx&cW6dJ{+n!B3@$R7vr@6+d9N0Gf7`j~j~yDAY8lDVQ> zA8?5UXX}a(LNsL9VUv21{M?kVRfBSr{w>F1b|Z0@w$L-|UO0~Y143X9zO*9gN7hr>O_h?49G8OI>r|laeG7qIni4O$APXO%3 z&wGcyDOgt|^H#?~4LI>gJ~V@Nnxlyq;a#*uDN3%to3uML)p1d0+`~~{5+&6+p*|kz zbFw)7Io>4Tz49s?=Cre@){oP6waFLdB*cXq^K|KVPw9MrA(cW-F~1wD!_p*+m}$a* zKV1&* z`<=ktf&9E)DXbkqR({0hr2h1ktKM2qCJi~A?nH&C4E4p1iD^c90GkC6+5cUv-G8_V z`yY87bw_c$Du|;vjx-t&myU=hb^tn21?X{qBceF8O@By?5zFNzce^1VB4B;Z4Ulaq znf_-Zx~sgY<&K7{ai}H{f;YAVwG6Vf20~H@;ZA1KA0R#bAFA9BX7*o!v@u|n(G7th zct!+@QcCQ!m(3e$CPm3_)Fy5-1mP52$GS({19tN{WnApoXmj%Rq3PL zA*GOjdwTcbA1Wf~_-{$br!;ELh+lH%@RmuID@etD|GKf1x~?(kXlswevmkrhDqUKI zSg`=!=`3(S8HjHubwBR|PvXkOah@fAH)^*-O*(Qc7YR@Y_WVh~4&kzo`6tk?W%vB? z9Vc2`Rs6T3+{0T{;DeW8*(6|brWO~Zj2?+gD+T|ppZ@drcoi4h$4*Fw2Yec zzrO(*sL!Z!^X9PzvI=#OM4Gg%mo93l|O04j%i zyT$y8UekfC5N5c3u}r?D_>|BCFe8Bs9S|FmH8O(H<==QB;5r(}y8|t5%b99#NlSeK z2$djjIK@QdV#+Zb5k8Xdr2d(hqlN#5>?9UR+VZI-0M#@R(NR?G&kXQJIQR;}*<$c` z*}p8aCwk{pi9~`zPiNL1ma0zkHEX$D%)}he>(bU5I^dT2MeDH`kX%xk^PN%Kp;F~Ron`nb)|5KGYkev~* z?0qN94j|P&=_lR)1yT;Z(x~+zQ_@=%FeQy&)=?1IY~X0RF{p@_MU%nsaSE99@8FOjo{@3u}q;6bLgO=!~D7NC3jRNd1P;Hv+>)9b=cA$5h zrUn0NNCg#fNQqq!-(w;D8=VbPnmskfbZST+Xw*?g*3t6S0Is?g0hX@BtiB>C`};L7 z!gq0HTyQLSqbv7!3eM*T@dn3GrYB-sLo=h>RmOgszd(K#%Z(6WuZquB*ppR3>>$Gw`Px!>a$h=zH1x}!>Pr=bDi zesC*~pW%XNjNEqKUe`!LQY@MGQkGX%eue8$Vc-t?pk*Wa9shcgCx~?OIRCwT2;@1M zFBqxU);VA0y?bhS0?E>#2m(i@0w3@d3cC1{h25r2-D{IQCHh{)%B=|Bi_VlxQ>ZKm zxpolk{+ReooYXLIUI*Y_jemTj}uM!jF_*`m7% zWauDojrloz%{l-#P%Dm;nkd7EQcxx`KYY~5biPpIK1peBjPLeq-d;pQ5`St?sM=(^1?Gt7%vZh|fH$z8|a>5*O#?r+r= z0)$d_Pfp$b0%0#%E_;N#k$teK@Ce%4KJjXd8xgZ`H7QDCvkMF}exmMR5^KrmYa{ix zkJ~u$c5ZbCp18$1>}8RVuD=_n7JR*pH+ZjkI{7h4yH` z00!10-7gvTC31L~s2=xJfz?w|)=dHPpQ7&DJ;JSMW--|MEqxJ#>O| zF1>3L_ab>Bu-N*6Y#>^|?T82?xm+HczslkMN40b{h|Rr8;`SOuo}+IOeM3es)7qT$ zf<1WxWLRO_)%6rJHG}H;R5fH|#P(qwZYiM$%XuAgs@wPd%sQg4#6*jn$%Q&EgzEx} z`|J>-bJq&( z@6n@#kreCN>$7)+oW{KH=U{tY-_k~g9Tmts9u{gsA)=L*ZH3M-8_m1)*S~B}tZS3y zNPaoIdQr(dNKE__UpeH!n;tj5~!QwRtEy++$$iL7)f9<}F&gT*6{Yw6fB_cT^ zHT$X0G~7*UL8Xq-ig!G}&qL6bQne-8+#GzP-ZUE}S=_@Gy2jAXRmizhd%#xs`rxan z*qd!eH<$vKg0R1;owB-Jihz`(?zs{#k|_yU_?s~cGDNR&y)fCjwgt1PGl=*WZD$C+ zYseWSkIUEhzyviJy@wP__9J%YxT#d)`W8llBQ(7X0!^1YrHp(uY7AxQ!-_2@u{52f z#93Mb}QCMt8XwaYI0=t*`7RQ;eu4 zq^+?Y4OkS<$&B~ZH#!~Z9>h>$A9vOgK@R#0w27FUf1iG*7QHN*9tDRk_%ylOuZ84- zV6G3>Lmt$j1XwM(2;H*YcI%oE@SK$%Ei5Dy)_RRro&+Xzw1B;nCYX}jAr~5x{T2Al z(+$T8lfP{eh*#G+tJeicYZtS`yJ6YRUWEJYPzP>7GOqDLtIx|G=0TN+o5qBq{W|TK z6D@MrS*EJ@8AhG79Z^09cQ~ka?1drNQd2P@SFJr0%3_XugU)bOn};`oE?Xlfm3eLL ziWVHON*KI(>)?=D3& zB-oUH)+kJK*}TWJTxe6uB8r_^;*qHwh${nU@9aRSHem-`O!73d5Z*02iPPODSjET* zJ`pSU<%&p$O%QGh15_Q{(@EKSAsRMV;ZpJ(_A6UG@;#T_2byGrgl>MMI0tXgdOk2k z`R{P45xh`>Kt<@!*Mi+jR&>|>ZHI&uW6md0z~9Yov;WJ`GRT4@OTn z?J(yi1D^A#jfDGj&=$9_H9F_kw_vlRl`K4b675h!3#$y2j;?Qs%Ai;Bugbi1;{tBp z_$v6L8cJ8n6==ndlI_huNKFUua)8`f%;dvs#$ZbCW|{3d^CK&i8KPxayNF&Jo3JCBpab51Yt^wk&D}~ z78xV;$uZle+ld|2S6Xj;ld;T$%e>W?Q2xrsPu*zmN~X5C)3m%0{Cce}X_LD`>Q7Od zJNUT>>8_6*!F5^oqnWpODD_2a46h8b%rZyr%}|j@0Hc+6{5*5Yj;^8ZelXq&9WO=T zOL9WBjfa{7YsBV8{n0O;5gtywaM2;Ems|cfa~D%C2DIW9<~AiTmX0ilqeNkRLN%hY z+NrY3S^ysf)=|m}!g=8Nd}GY|50_iM_B)h!BiULbw z_mppV^-ZxLS-)}u(IWjshFuhJj6M@0T&SZg<+HR%01;Oi0*4}vT`V{A5K%X2`t}VO z-PI6tSs851W^;H^j`=eq_alb-sA!PT#<$1*=ijDyO8_9n$Es5M$RD>MiiFR+DMNAQ zbY^QtyNSEyJ?K;HHzP;&cv(qZ$-al|;H_i54n*>a{m`>p6M=Q%9BZbGx*5t03zOWs-$6L^JRA=Fr)p_koET3du*0y z0E7mSwklkf;kbQJ_w4?SR`;quJ55?GJ9%l2Qx~=(kCr4(8i(o-ktNQsI4GMp=#`71 z)<>){zSc+|UX$C>9K-T5QmkhnH_7Fg0vNcp6Uipl-VAGiuHreka^70Lkj3@4xmSHn z;jJn+7$;SGRe7-Q%yBVH8I5h2APqA0l(|%t>}g|Jfk6%{jjecZ)_>YhZl^B+tq8M0 z=^&X9yj_$JG(1z|v2c8UYm2)Nb+>GC@IRp^&u7ht#&CJ4=oh1Kj$`Yy4I4=$B7?CF zgFjvtTtUuQgjU-iZB=3q9Xf~lpci#CB#j_o4_Jo^-J_kI4M)%oSI zt&#?P!(svz-$1{a5oVG5_mRBFEnxaPBe!Ur0Hu7vg&U6}Fi;q%`34bZ7v_~jqq(>O z>#IJA&fcH{K`w5gWnb(Zj5KvjIhb}*=qbx+kbrneF(MJ#IMt*+s8t~WK_P2*G~Vbb zNpDiONqYc&9(CzG5aUwVbwxdAJo_Vld8kauJd+3W#})n;SXK*~OV(q z)c3#V*iDXJaHiaj3tQ*84o-`t7g6g?$u~$T`c)7^28&EBavIiPJ+Ym(HM$y<7)MTLWM)Pcia0266x8AA9h|s(Y3gkopQ}z#56pm$?tLDW_4_w zC%4hHBvUX`mXYmEet6p@IiEQA4G$gowJuqi%H!}R;O&5^lY$nB_{i>SNb2Xfh=klK z6+~m)1P>HrO7)`nLl3pNT0dXA5)Bc8EcVXy94*tihx#$!tS|X>`d=%+svbfH`V-MR zRo{=X(|W~U1U{9*&%O)Is5)$G*QbqHR$!@5+mA|4q`NlbGk=ohcGfWs;sn=$Ed}bE zKuD~N{Q?2(IRNY#&P^0=ZcQWB*$h2Ls3ES;Rl@)p0 z&au)%J%-XTJ|bdGu<4v@%HOl=;X3Z-O^Cht#*9J7z9{ zfMZrMzXCjCaMLA^8qs=u!3h3n(d9QQd z0KNq*!TV;F^WEP*toh-Fy2H6A>8r6Tj~vaTexAa^BsY7@`i4~VPfpc~@>@g&aSD-y ziZ@lsZGxQDR}>R*-3a83t(ajfH#G13dyT8s(!g&RBL83&M3YtRzT3FO0041S`3W-f z@Zb$o`YNN9qcv&*)d7pm*5H-3?&@w>43{vYNu+|X5>w1? zdCa%{d4c4)!O>s&fu`SQEIk{}b=^u%nBn3F>el8gwqd!^co|713~{8AA}4ZM2Yg^% zN^O&AWOLef{Uk}RS5wCxmn&X${g3J7>NeSNdENArRCkf)o(b{6>-iY)iY0~{**+{gK#~v(73s3?bch`_y zOcZS_`O=oI_Cp`C^A9TUZpMrH%fGcfL(ML?CzVs}{fR->HK?AkpK)LY20VZh8&(Lj zOF!Wu2|s72R2xRvkNZge9{C@@m$%W?_2D&BiwE5k038BOCu>MNT=(J=wq#GV!M> zXRIY~uJC7b0S!p@Qn>!pczI{SW@#gt1~@rCg!rV&n58+ewbv}GAZbtzPx6KFSw2a9 z_We^-hdXT$$s;pCybReOM`ZzsjW#S-XhY?7m4^;w`UaiCykyz7#y+HQmvc{I@{VGv zlrr>eSoo(0(pxk1haq++gt7$TtIN4lQ+RB8USVm3#YQ@_`C-T|Kr;H%=ZoXYJ+)z;ss{A##TJOC zdNwYOQXGsUIQSE0`l&G&2-z6>ZILLFqmrq}yWl2)XP1PK@z|3dyDPnn_>f8~6;&TU`|0%&e|sTgaZS~F z$8usnBh4_CRX7Y26ImM~s%Uc0rtZ90&2IK7)YH)sH|5UL?6?BIUL|ovNdq!sj7){E zvf0E0{|T-5&kFJQzqOx<1uh#uYvj$Amd=n*cV8wh6`WUGX$f(JD`Z+Nx-RIVP?$-dN39s9lw>jQdt6f16$4`nU3`HPHl6RyX9 zfpB>H?d+-=P{Emp3)a*6M}n^yyqYo#9Wr+=VB|Ly1wC7gFOejKCJwS%R(oJvE1L&gSGjuo4Ly!t+{@<<@F zJRP@pWyp$T|HO{ih=^}u0Q{8oX3!allF*$vyOH*^)e56%iw3>A%n6s>>cN-ewIVDi z!dw+%Plvyib|{MGl`~D>2$8uJ>OV=f2TNY1%nV6Ku5M-gT1UwC{WjRE zoQ8e)M+K>HURY1PaoRPb>cg#K%EI&y(!1{8!tw`5&ek^VV?Ly*0C$Z&OZ8;fmVjK|O4KkkN4=*zptVypYYD!1% zQf>IwXe{`#PlS9c8ok}iUhtQeVfQk6848xUkpQAL3kQsnC$z5)!syX(I*H5}Y?};s z7343PxgMM|X^rl|Oz3Z#{ka_7cVECPBiHlU(R1beG>#(diNC}OJ8R6sJ^}yb0zTzQ zNqJk0*lp;3kIZCJV*VzB0^3lRwkT;LrB?Ed>TqFZJ(Vq~yJ(#CZ>AtfGXOx?=$biW zKJgXK|3$v6X+glNmN%N1)=Nnvl$m1<`qG#;X}94%Z_+wve}ifftf_r^8a-f0O_sn1 zGWVzkf%c0$G*ea9b$UGPC==go>(Dq&Cx?nZ#e6vwA)dXCmdkdVpHgOCHT+=yy(X7F zgcLJbjC{WL80wwVmxFffjtyIx%>7G5|+1y7Ou=!hw12|rgcB0@*x ztCw$$)BB5yh4AzWZtL>c@#Fh)*_4q3y|_*8!$G{cYu88}TJ>z&wdqz(%D{w#;mMD& zUfX!%zOu2X6rsA`v7~Cn5(aRc2GcaiO+X;B*C3Pob(y*A8sz(GLVHbR%+B=79{4NT z%G{t&m`_)Oauj`2MoyX{V1Nxg>xraQ7iTbQc(jGdXcT)$EVClUr{Xe|{u?5m54(@+ zyIU593G{eiNBqDba+!+D>#5*r^Gi+)w6bsj!NZS6zrVzV<8mOar5PN(s0*qrp$wji zv);Nk5L9lx_?l;7Wrbr!%u-t$3u=uX=fC$@?W!7uiEOzPsZp6alvSH#W0xdH9I#E_o(_7Thj?cOCrv7KZEh=gY@CQ3T`D&i z$kEKTL05CYQ@81JoHkp7_Aal;=zgSC?@(uZf8^tuZn z5sG`KQXus6Ro4)IjqdZk5By|xZFK}~vom>djQms^x2$cuB{3FWW zZA(d}tJ?BMzYo)GqPju<2-DN~)q2VNGRcoJ>K`%rtNVJ>N2}zWWZB_)MuwYNyewm^ z^g$mQ2d1OgQ$@ywf7%-O+|1@Jpi{SQPleyr*Hh@Z;}=cHMQL6zBso7?wo=@R>Uc+J z48zDlKPqENx`GR)I*x7G`soXL;At%J^gj9n5%;g+lK9e=q5uuz2kr0CkLq9YZCsyC zet7}U>1yivBOR;O;k2)w6c}Qf%$mjZ{(O3u%{~R8Dz-e{Y?l-+YU?%2Q9~&Vgd#^f ziIF|yp;zd07b<#?e$r1SH<6}t)jWmAdP9DX$Nm4%_x_c__ut`Ks%eULB~<|@Vplq5 z2R=oES)C%!{b?LX!}~`9GrSpzv&S%v7SnMXZSSCVHXsR51bOcWruC#!wNN6sM*q$$ zZFsv*5~GtJfK_T73W^RMX8}Y#|H^t12clTxErD%-2F3^@K#e|#DUJNimb^*Ahc!!Qh^6_X893f!%A+7{*4&s|5gR_pT6Hp1$3uV zU!95rXYsh&0fdXu4iq`$p1(jg&b%A4MIgIrMb^lp=ux811NtNYI|wKJY4#>YP{Ze2 zT|1z-%N!CC+uSl<`hM9JzE|&SRb_DR(Z^}M;KV$mH--V6nYnePWmJ4fd6DK&KnD!v z!D>Hk=IaQW)@|Hae|lByVF|>yPQ2FpmlW6jnVbEt3%b^V5o=RB_BjDQcXnOR9zi+J7#{#&0q{K)dU&yU z^baRqVcZfgwA$)jxRgoZTav_2&! z>bhE$+%LNK_x6Rf6#V_12nGyf7`RBPK7E#Ij+K(csTMknRZcrX-Y2!lD_@q$tBDI2 zq2$RX38CfDd^e^1wKlw)b7L0|Sn7i>7CwMuakZn~-=Ytx`CZM8+Rg01+TRRS8}377 zfTB|U5qWe9e9$W5e8>2OO5F{-fwIk|{Uq*k@ye#dMX9j~f7v1#HzkRyR`dt!7B5HH z3W6yOd02;A>H@y^-(kYHKUejDFyW7Z^PRaxPC?V@2irB=b}O?;v13mt!E4CCYWSdr4BP}JjS$LNL(F@nhWnh# zqO6#zMhG!?r6MU?`TI%c{&Pfr6j3T|O@Zplw%86+hcX*R^x_gO$3El2H@9VdudfU~ zpy5+89cU>OA||t z>ZPVzCcgmW)ZfyMBE+$OzET&ariV5&W=LJ>!c;xy2G`uzR4K7YF~4@$Of$ewJaOl* z9c}B%`^s19E$bdZHP4rqM@X&1DJbn1Ki{|fX(2@k+uV-=dT>ud)0>?ac;B>GuoLA@ z-)j`D{Ljp_59Me4S1gGgQw662GNxtwMVFKoQlo3RD8qb_V7kuiH2`3-jXp zVD*KMsXT2W9WE@b<|}qu0Uz$VuYjVS9zNh5i(Y^B>sgjFw^AV?w>MXN3f!I1`#z*- zKYqNrbQ-Y^*}m$e@Re8EJ60W9L zL(u2jUB^N0FJN`zyC5FPowB*iKR#kiFHyV*7@P(%&W4OeFErlF$&f#f=Nqu10THxQ=^k;KJopi9y*dGK#igYIPOBzST!)PA7$8WD;Oi%h2G}L9D7E*DV ztrr?A&EEZTZL6cGHhRs?n2joCcJG{>pd!hKc%&-QsB+UX;pTpqc!Vp9@bv4Tuj+97 zhHu-Z_wVCqJHx;ycINrWX0e;QR#fpT>Q zqb*i=e^*3A+|~hn!lIj1QDml%CN^ULk8|9EBGr$}vU~^2x6!CQ3|LxaDhgVKaBlht z3Nq=`Bq=w=!VzPEU8PauG2m>`wrRL)q(P3^NDH=r%H#~+TGyw2xwaw7WpG%s(ymp` z2$?by+hA4P!Q94%rN8O+LYlVkPZ9?MqD(hQ+&_y~2k_zNAyrMaMV?I)M>Mom3ynT# zrQI>3j>YXvmN*LwB%bxV{gF{g6QJ&*$TdQ=P=*Awnmv)}nDGD(zjLHrRTZSHqlY^f z#A8#K_;f~3Q5E&i7t3%K(gakiupcDbXssgsi_>w=)cO({QoQCRHI900#sdA_Bm1Vk6*N+=rdBhT|@xpOKgREJ7kx?Z0Oj zbsWME_ujvzo)lCfYCj>xg6|cfYhQ4Ed^T0nw!JQ^PCIm9vbAUifqr3rjMw(zE#{oE zN^i=kTqddFxJ7MuJfZl38fpN@sHMFSnuyH@^L?@H@+{q7s1ugx=Vrj3o55%HQC=1} z$$Z%R@5Du2;SF2!4;IKNW>~H}cvg*og15AsUu5TwzD)Sw)de5Iw&;gFv-_w`WUdys zHxO}CQjYSvf)7FyK7=plG%Z7<`$eudJIi=6kWS3=azz9t8`|p`xnH?&N_4<%GW(B3 z=gvO)aa#az59;Q{^%n^Jv-PsGw5J`7RkZOXSX~sNB70%PMjlpW*whiaH@JL82he}W z5W1LryRndO_KUnyVvJd{^0b$Z?_QYvlspy32a0phI`!>nII%mq2Azi}TlvQ=bv*?Y zFAxh#R!2&XQ_c_XK3n>q__P*!Eot5PXcQU|(9`Gr5gUAyiz!oD%}Uu2QrwcxXYv_x z$p&a!t#!ABEJ_arxW^$m=du3Q#~xx)b}8uW1}(3D^d^>ba3G1S9=sZ#jB_1&j}h^D zt;4yir+8pb2GedPQ>N=~!4JsBf~Gg##*sd(rM1~z37$6Tq^MN1ocsyw5p>G&g=QbL zW&PID&CbYMTpQmK?5MNW?aVDrxn03(m3G#$eqQ_uB#{m(dJ}{-giSRF`UxmX>^*O- z=ISWDS~Tn8#OUSERue^h;)Py~P{~Y@p}OSz&;4 zmYG2ZXq<(RRARfWO{IKU+FQTn2-)q#^sNU!zw^VpK{p-JBF=hAaw@LQF}|hM88!wd z%6BaDka7T-z8gUH4RS8VXe3k01#4rO!fgyeA9m%#P|C-89HDk@8p>KB0@2=_h~68} z*Nm+QZe`M=HkPWgB<0!MXa(;sH+y;7{5!!9*#cNDb6RqBH1*{IwUUhi{L79Qm?a1l zgOINaL(wh607_gh*eMQtD;NTHo$*R;#qt|*U>J&FguFx&iV1Ptu68&mF*mT z04BMh-bq>42;H1M9fPf`l-bC{8?&;B7{xqqt}0>h6XAIS)v4`ftK43Uxk?XxM1k9_ zxe>C+V2c6q=|rEx1!7sHS1Nv+Oot0ILaC`WaX7WZp`vt7_ z0uYbE>F7j*w|t<6Ux8lRnF}=$fY0L%QV?=@KSlx7jYc-5>u5+yyd+jVkw}lJS)|!N&qbK>7+1dz( z_5=v=?!m*oi2x1Kzrr&JDmJ}6*C@W*vnPvtLU4wU?~a-@6;BwL32-ky%Upz})*KV0 z+h;dN-zI?T6lm**h%hrj+VI)J{3n^Dj>LA~m^McsqGqu(N94?DWD_%@Nw23o+`oV` z!5=u3X~SF$n5@w^&nRr5yt-e?gm@PgLe~@oiRiT$z-Vv8BoY#!KoUV~d9!y+R&>+F zs?yI!K%XdmkM=CFU#x7r-YC#}cCx@`;Fs;=&kgUz`=(Cn)_4)hzcp^!OW^JIKZtv) zs5qi;-M68!;E>=NBoHjPYj6k_+}+c-y95bN6CgMQ4|EgUNeJ#P!QHKK2#{O(pS{O^ zI1l%phcoU|z18T^RW;XI-~8tHJB_LzG3hbzxmI-EiA=>)@08QScaaCC{hSREl$r9M zL?uett8@7Dtv@vc-VWxQt)3*fUyXgB4r_}X>L!lgjK>vJt%k`L*o{ya$(9a}-Vml5 z4`XbyQc$KO_~klQCidPmQnOFiX`S^JI1_Csvo4v4x_*`cGtkvOA7b96@*hXHmL)Rz z3p$opYa$jw{T=`Dm0Al8&<|Y*hh5zJ4Rr7#}02)_j+!3gqc={M*64QM&!)7-%DHpIJBeeTadC z;P?KNB6)wD*825vCq4bnrs#zlHGg|nkFZ=KO{6C&eaCZ=F~5nvdU`OU7SDfvqR-d| z3Dl8|(($S}x!OtM4xf~ucpRjhW3 zevZCu;(@)$E|hw9#^eZF?6~jLi9u{gVU=r43^Aqzn$OQhR&!v^$ACEHchp6m%xb5t zSP{z8QAWP!#&}>UDXp>><}rj9ml-b94}T?>hF`+5)`7E|hp}#F!<_Ef(vnc_ zHow@>ia|tEvLwOj0vc%V^*w+f31GJ^yVb6XXHr(AFp+`k(Y;+|dta?%K8C8bmYc7R zUOe$nx6GTYFg2h!ly4*vAnv^7HvF#JmoF%IpWrwWghG}W;n^wH-AD*;7OtylwhfTS zA7Cm6o`q@>z8}87tBE@T&#|9 z=VQ#0M}8nRO(WZ$;O8cL3#wT~_L^V##M}^U8yP{D3JTamrx(oE%em7?t6|S*36f{i z+PeBOajL>ZX+`DNV||XU*cmsylhH@K$;{v>)HSwVZoh@dNJ}3i5yOXTFpND-UXqnp zP*PYijo*tTgiqHPGVrAgTPLw2!{zGLG^UW$egIm_lA7@Fo7AUndypaiV8S*3E z)NAls>KbIylvXDCINkicmLlPmDD!WNVRUVciqq8j+~MITJTahl1wCXW+UHX%h0VT} z^%?7G+}d)?c`F}WSO=d-tD*ud*U7GMys%WHjV`R8rl5C3MbRgWuC1RXn|e9X@LcS` zvvzQbb=mF5)9`KRiGE4F^8V&j$rtFkL3s24Q_6$n^Lfk@I}rSh^8f2cVO;E+9=3zf z+|xZQ)ZfQ)x-UMI_4IXr$s~X`_PKl0;wgi4>;um7`=0^3KJdV z(3Hw-n9@v|4txE*_&M2fvw{bt{BJs1#$L&z)q5)C+h)uhiqAS6fuAl1;OQfp=)Y)OdaHZLEp8jo?;9( zkDaFaR*CB4xvymINumn%da~mB_=YG+lKuFX1VIR3$ZeXrio5y;kmMtkKcv z&RF-C>yl}gy9=NXx2h!i3#1h|F{q=MUx$VWV}edSRs0nvg2o<8f$uKxs|L1-W5m*K zKCmjy#{1?)2XL($vW{W%rxfkm(>o$$8NPQ%oLBev=(k*{yQrC)WB^*Mw*R80zrz_; z#_`RWRcKg;7!vK~flxjc+1Iw(HI1w%f>V69o99MKEld5A!`nG$$#GD>T-HKFUKm~i z$I)?BJw=5I%gnnhwk5U{C7-P%Nlf%ok+FB`=;pFM5&(JFE>pHQ%Ch9ZU^@N2BtMB| z#DkPgk~sD31@#NR8=_;~`;v^WhO(~;{2|t0;Vud_W?42rW~LuB#UPU+6hcXQdYFp@ zv8bAV!Co4} z&6k0n#vIfreVpbxJFpeCLF2jt|CfbXhk3U9`iQFQa?$PnU+bZ6N(L~XSL zkEPbY+QSh0k=7~+%{2~+rjU<)<&0AmH5zZZZXD#uy<%rIRU9eJWGXP6Zs|NGa*^jZ zayAzKV2qYkx@79(s4?r2wZ&~K>>TVw{5_veuy!e~mWz_uavo5?kKImHZnZ>(S7;D~hxq$d zR)p-_Hl_mR>M|ja#caxON$P4NwZu1VY9I3Lzb{G^GT^XZ{aLvqq$L|HpYQS6ba%*D4IJG(qw+Z zxCncG`uwIkP94oiwU?hJdXrx_({$U^J# zLG=fzyFqMo2Ehck-cl`7C+tiVaL4cR}!nQ$$oS>S-W%IeT3sEF#n)ZOfT#1l?MOq%-r7E^t9iPi!S!v=YA&3k%Ed|h5y-1c)HsH2^Vf9wK&aBJkxloo`v| z4cc;jg(7A2D~)YTXx{=9H&m20Cg8lc_0P=wgN5yK8j6%Y;wQ`tp*-;-&CO-q8cI$& zor=m=E-jM1f$$AAM9QTi$c)@bM5MMZVlHFW03T|kpF5zMnxDWkFElbwxYKLp3XHY_ zVmhU_xS>#CmVhU`wlx(9$hOfc~{4_03uC(x!~;W~Im)dSg+I9G2oeL7Bm ziglQYTz=qNk5yKt(05KzYfK=DCw)dm@OIn1^8;=M*%jRR=fX%{w5Z|6h_aeJ`R~k0 zwgC!ybiL7SmY?`ig1kt}a~X;>S!Wj;Z-b|1i{z)}GcOl5L|@uND(%JDYFj@JIC{cN zx)_`=mWm?8FOm8Vg|8Y4)}Q4k_UL9Vj|_Y5vB4^(<(g8-5-j7gfkp%{k_tcUVWa8p zz_cEvc%Kv(7d%usGi~@Yt)bemFDIE+c3>A|rki)LaAkz?D8T{JUfi?yNVLhFR25mmB%c_WMi6m`Fh4{4vsdU3*kT@a>gWKe z7vtk(a9>|co3udHy^L${Uej!0*7{DkH$kF0 zGDNo<%CeS#bhY&00t4(h-+2s; zk^~52gyO4{B%(-nLnOuC7Gx^>E0nZm6n-MW8e%mw*Ln^O1dT|QIy5X4r!TA-MsH9B zO+gs2C7!*Y^uMg6C}TiW4q&0F;q-PEF@={Uxq&XDL{lCDJ52Pzc~kXS%Xn&ey>n@J zd};MQ3{6^^yNiadRJEv2j95c&Ojm5HiCSI%oW?d_EiB69jLq!C;XQ($w9BhZP51HH zuj&&Qk1S~R`K#ZY0;8WnTocvH!nu9)=;)mb@l`Pax`3+lOPW7#3z(0rIc9C5wYOTk zxG4r7l!S=H04-u6wdniod+#u3`dW$on{AIjvgj#neP(@4D0#mcJs=!7Br?^L$5AH` zS_MrYSB~sH+oqbYo&1j;;z!iBkNmax7sfVk4sri5ez{inywAiRHi@Rkk+iNLa_sc- z?bD^Svi9KNJF!&7r&PD*Kqs18B~PO9lpO9A*>ug6x{v12B|oUk$X*jo&rdY;@V1v5 zq-|s+odU6MKBU=+?z105%yr_6U&&D{>+Q1nZq&iqsk{1e@#_7DVtZq{)J^M*Qn@8K z-FhTZo``-cS?L-5iaAFWAio?b3HY}k{poEcWWwUI=mCxJQ@mbl2xsKuIy zoMu;?qgE++kDn{00Ss#|G;#rgNdEdN33OezwQ&G9)jIBa?qAJj_UOuS8h9yJiQmjWfTyvCAe(=2C z=3kIxLOaKaeSU*I`*G%u#*Kxp_Sl9GaCkS30>V2n^$v8%d-KS#TJPTI*f|l+c(cS8 zxdca*UFBn|;rC7iO$EKkG`e%MuVMJ$=Y-{&e4jW9dm2|ISPkqc7ZvouaHsJ{-?z6TDpvU=~{%TwHXNw>*$L;PMS)bs(3S#x6Zm&4? zA4>OF$3tJ8ox!!ZJIyz50~2W<-4{Zb1B{a`ZnZbioFY+8yIVpZ4u?Gb^hBq?+h3*sf((Opc4}%h7TjUFhZRZl#grqYej6TO{;MXHL}zqO`(eZ zfOvyeYK(SkmqOKX@Ja&B#Ak)#l*Z>RX=Ts^Jw_!drGrKx{xR+7QtO)~dK6q$75|>) zO5It_1=VLUJ_}5sO_nb7OTM04c{K!j*d^oH#lEdpW1TIrciKg7)+U?YGopSLIfXlK zb=0vaajvM|AX38uJ2v>S(W0?IXy}U=bW9NruF%Egg_eVz0E+cbqGGtE?j93V(%S9N z`z`4d$`5@X-%BzeErmiA;h7Wcci{3|H86Zw9?0FuNrxv!ao?j?r(H3x29NpakUiSJd(+DX8- z6~&+Xzc)t^ZDD$`@{g;Tsp6t{;DB5ki4)B?$Iutrw|h2a&CA{_a42Qad=aw9M-Ik3 zb{w7RR(A|0;$`K6xH|@$Tl-(P8b+T@IB_1oj2ayD%I0Ly{i=>+wdVW4uF3MjJ)PKF|4=OY%q~Tn+;MJ81d2q>1Nzg zbav3pcu>UV$iIs@a4$Eh@Esm*Gg1KR+Dh)se(Fyj|4#Db)SO`f6V~Zt?NcWky$_p> zpo+m^3U|3a27HAvKyZ;Tp5TSi8=iUQrj#t`^}YIT?a>fniT!@TNp+mt7k=JUf5tZM zQ!6_g*<8Mg#q@cI=&JYX?yD7c%nMZ7MnSO9HGDDzlex@kI}^(mie=OMIdDETEaf&O z26Q12x_XX+c=H$qm$-aU^}b5@)(}u8@qG+dwQ6U1_a>a3x7zg!nsl+6B^Tt;Z~YPt zF69|DqThF8M^LHNgIunI5#qP4fnGt5rg-|WB9lD3tX(&;U#OZ_@ThJR;)wu#dmMP9 zRijH6b0#0hP$U_ZRsyFQ6|2Ng1NM{n^?e%ccunnTj*^acZL^<>^d2ZKE(P-IYKX$y z1~K93+qbN*IYtIQ^-TOEaL;xV*%U)eh6tL*5!BosuD1{2UHV+9!~K!1J|>RS47QBL zavEB>Hk-DGd|513G*e5L3 z5c+K&Veh5J;9RcS$jX#mCjH?fu8STxtrxUs2Ohoxidr2__;Xc^NRiJRYLZmzKzwhX zRF&av1zpcsYd706PPu7!68c32HSd{qV@w;VkZS~o}DXUSlYpP_PW16 zV!%5J8^c%)?O0sH@waPq(1_Z^gZM+MpoZ~kvSHTYI@?|+#j zznDi4r;sKMhJ0(*NJS?DU5}z~tNo90mG%!+bqC3+ZS1iH4@Q>V>h~nCT{t%q5NG!S zq)E-ZWo1trTy zFC$rf(wHq3Hcg^qLnJT*|I2u*-f0VgFq}&PY5OiuR>Lt!$=}g-t^`503njqMNnob? z*l+O(zyHtDw@r65>^#j72^PSG%kr9iEzPb3O1h$_$kocsmO&~gRwGz$_g@ZB=6n=u zY|ftqNxoD)fWsFV6_XPLuKI^aCKy4{<*eiBhIV&hC*+4;p%noQ1r`cNWk==(5ksGR zIj`h2UQ8^mA!-q*n~KW+V9sB}#Dqks=R;M|gv3zr%Rks=s_(lso$v zrYq)}ge&&V;Qu(f0*QzS39~?o0ia0uWf}nOhe2}O$r;M&uAR&iYTY(&@VWexBs**wjcg7jdO2}8mXVm1Y?UD zSD3tF9p-rj10T-;`hsOHnRVDU=|c=cNS;OQY+FrYU6R7%Ju8~}pcIM~!OG_(B!)HI zOOS>Uuw(NELwv32qd z_uC|&i=VSn6{7zr26=o2M!8<-vTmLd3w*3&c7ko{S24B3Fq>P(Z@SoX`y-JCXXUSD z9%zT>ThmrxhvB+0BiR8jH*;kokt6H+DW*eaD|fj4hx1n_5s34|p6?RmwO?0^4#=tE zw~q@AjMb18*;_s1qfrt^L*8h}s?XH>s}K&GnAXZWkg}zqGFqS)iVJhN@QmALCc>e)ilHs31Tx#L-nRiJb9vn`aJb+s;B)LQ=El6)5#{U z5!*0f`f(9{rlq8|16O`+KE=F+?sf++lx!-ds}c*q9Lm|goy==n=y6C&aIQVSf(@LQ z)vMe*@52oClgE@W0Hwuj2CrM#%|5aIn5^4tiHFI z&Sf{u!@u<#Q&2cPs#k!&O0yfgFWX!IUo5&q=;6T9=lS1#>;GJJc`AIqZ7LyT{AB#Z zRtk522bM6_K5HWitZMcDc6?XZCtjbvp+@SHrEqqa*@vtB zWMH##5M%X96UD|__H)?^{?>ARM1or+tz;DS1I_?HbMqPqw zthULFTwy(A&#;>)w=7GyXG_C;fH$G3F_ke=8yEU=uqHW4>Vz3tiIqedLDf;b!R{e9#nBYfm6Ad~h`KoZGA(U>NWhV7Sd%GxL3PG1Zxvsu| zM-0!?xH<@{e$(WYNZBz5eS%P-4ns!rId?wx+2GFvf4^~bDOvXg@3_l$Llbh@&)#DK zzefhrlojdXn9bUakbT8MsjtSzkz|QN*B{*uHD?~AN|zSD{RP>WU|4405wg@w%v3=FwSYAp`hxG%|#`__QyFIp;o+?nYFj@(d)iwYO#owCX3T! zfK+=_YW^?ioga{n*+bOVx9OkJrd@1TvEDAX{ASknkL;#A^-LVHg5I9Td9>Y0yQD6~oJmmfzg~hg)m4@%fvzgQk ztUbUtZ=X39{oyhgF9-5P&7$O$JsqTL$Xk1bD?5b3n@Tbt$ALAo4$+%l<`X$4R}=Z< z>tq2n6WfRoJ=waFysks!{U{anp9ylM_5#b< zogvNzJo-yruA~+b8!l^{KtNIxFOt{`jpS_GOrZWr5FgguI(D5qOe{Q>o2R{Gpk2?P zmX&U7kUP5AH~b9J&{$G9TU2ClsT+;aw|I}_CW7q39e60Ah``N&*~5bE-8z&+WSP^q z?5s@N67X2MfV-E=S{VEEb@9uSh`*ft>U>haWuCa6J$dWj<0l^@duY$oHef4|O#dZA ztAXbnDnzr})Q>jvLfbG!n3lE>arVkI_vqPRC8uRh)et&3C z70qVVz|7maT3dN|!-y(v`M919c#c}g|1*8W41cbI=(%hWZ>?Ig-+>TMK29#!W$pND z-C2F+5I3tNYqheS%3WC4p%_wdf)(qVWe_WDX(kQINdXf~KneY?Jmmk2S6qq>u|MC( z1NbP2o|dNxS2od67T=68(`ZE8bHUfOHIV84#Ry}ASVubOSfvrq*Jloc%a!leEEfY} zLgn`yC(A%p5_1m{*3KKtRPcmSf6H=ZQO!P%0ugzvqYHwt(_dxtn^fY?=Efu2MFQ7u z3r6T%O09-gaq)>Z?=i&J=5mya?741B)hCW0aO^7v>|gK{-Edc+>VrX~K)PQuMG_wA zgCvhfSpZY`7p#7A2u6SHG&x4<#BNzv%PaO5GsqS_0p+D7u#Yd#}MLnPbnLGFk z%blnrU3ca(BQKQp3B-Qq;e}7j&9HxLBzzOgW_$J&U))prJ3_WvWYN8Q*lqEJ2kW@& zsfz!I`0iS@lv~)T%J_N{=?6uWa^!*Mq0@jN(hsl(?ad7O^u2HYBD)U5xjrO^;@eQh ziUcL{_+M)*CsxA_?N8ty3QoklhRu+fUy4ZugS+UIp_#*pT`FifZuB!Juq)P5eWxpC zs08<05zxV489K;vo9Y58$ze}TJ;ker*H!R)p_h$5c95$kdc)M2CXq#X=o`aq95D@-<6pF;)L0rhWXgv-k~AaU;ffH3a$@P z+sxc#Xql<3U!^j#C--yUE*|Ol^M28IdO=QHdWs&7v1MgN4l0KfH{|%1ub3De@-GAe z9gKV9hRB4y*@<5T6kO%B1i3}HIO4m%?t?$U;2!l;0cr#pAc2)x4UQuLQNGBW+tj5FVt zO8H_>h~o#IB8Q0sftH=dvWz#*M3#S0@Ur}6-Yeyw3=2>;k})7Ao964;9lI7@m2c>T zE3~$SSvUS@5#Tmna>D)A4^o(Ud(tmU8^pv{?YVyJbbTLaD2JfVL2Gt;J3>^SCHtZ; z5xR~IkOU|IE=qU|=#soDIM}gxUM(+umAY$SCvzc1(K$0U5eJMVb8)nmfCWiuyIZ&CL~|NcZnJ*K}PediMrlk zs#_Qc9DP$A|8`-s%WaS@a^rPsZx)Z+%cSu0-qoLK%YRDav?0oxXN3-DW4>!5S@H7f z=|eHfIs7P4TTE4?jL*B^JAduPFI60uvF-e;>(j1=#sEo=>;$&1OZ}t~JXV&EyM-@F zyG1@Qb94oe4xa{Rjw|UfWxguE5&CjXd#Wx$uP=^!W_||CCg`ekBz#NXS<~8_;Ik?C z=Uc#cNviLX*A*6pQT9lx1nySBiA073f7Q&`%Yl4sUeJ2kz{^Bc4O^ovFi=jU0bUD@_>v)$rXm(hd=mS=ShCLcz?+?O2-rJ$>4LJZX+pV%bGt^&c#UbOym8i3GudiN^xmWcwU z^kjtz8fmGkt(gH}OZKxP_7KXHFJ_;qCaQijtk<|FC+GUj3Loft1;2O$uUEtO34Uj8 z?odORl_qmx^SIF3vUZ;x?42OgT<$Qmkw{@5TZ}V1EA08O@1e!5q*N*OnVQU-7?ewa zPU+@eSvq4j89?vrkV`T3T(7Bqm{{135MvoTj(a5ZCw;`}Y=|&GG{$!leJ|B7d^9g{ zJ<5`@!IVxC%BMUVxuDNh_(x0G6>~6R`~*}^g=m~ZS&K>Rlt5f;RQJlp#LEQttnY#TUZr(;$=K-N{AbwphJQ2T1w*eI zcDDEH%Zj3_qVR*c(^7YV-YE9&GH@-P96IdAMvOC z3G+=6)L!z#21*pxrdHw;F?FQ1v2p643m%#+1EV+#ksvljCu5{y9 z5I&~ndWtL7F)=un3VGU&E{i|qrf47-Xw8dZ=^{#jrk-bOcSGa?;#JdBp_euLR;tlQ zC*0Znef2|cVXaKc>r8H+QmvLIAnw#stoW$V%DoUOP%?9;b=m701G;J%oxRF}pev<4 zZHb`%>U&}NhBqoghH5?+R5>qd;N;A{7TdLOJz#|~rEI%hWcC;I+=+H`564lZ*kI|P z;XdwQQsqOjnU0Xcz`@U8p9G$HD{QMRU{opgpvErc@E!t-EPy%8IeF658Q0N`muQ=> zlO~f=0QhYNEApMIV4}m-vqq12?)6JY{ z7VEn8yU>U{xkg#F_kp4rzg@5w9i3{;->z_`%~BZ7kYea*nVT<7 zKpCj_QOpcMse3z~0yo>RP^P~u-$C?Z4444pRTZR^c_s0Zg%&rH%G_TE$r zY$CZE{QXcl#vKM1ncxcW6}lLIJ>I?(NsVpza%ku?Q?X zelIticVB`g%AAKDb4^I;D1qnsydT^lm;1#tc{5OJsW{f5P^Olxnx_(b#d8dlq=ziB zwz*PWKO{kT(6ah*wOey>zKg$PFiqI;yU&k_Z6W*fXCIKo)zO)9ulQjFD~)lUcA^sA zuGW0;Si1=+>@1z&RU^X6zMX+xbo#V`5s;IQ%c?`in;E`#Y2~J=fC{_1J@ckcHmy1+ zcanlN<217HvG_(y#Zaq1mXOm)u^w#w{kg(2k^FndQIF*}%5$PX@{HaxP*3k66{hdz zyr+~KY+nf`74j2A{#FEmlaQ)p+B@o|02Ao-2CL8WN+_qsk$A^6(ttw;^Vv!@wnh)k zp`WPHX)?cwu~(QdIs0Eo{PsD9(^Vq=yj_dx5C3w-;OBjwuGi364PT8!zU1GEDK3zL z>T&lFRKJ<+zGzWptj@yp2{t2w#{zd;C(7U{<^+Dc>pb)c|GB(drGp{0M6GI|O4jNr z>pABN>Z(qCgc_xSL~De99Sx7QqI*j+gKNi6oB|{YdP?kaF=un=-g_^rK*&>FV2tmEbmo8UqzI02aOi4I$$V1MgxIPcGUuI}iS!#`Nh6uU9Jp8m>p z=i-J3LX0)qN>clR4=p!>0o!XeIJ6_I{)Y^tcD}AWtf}g~em_-x0MqH4Z=~0n4n)5V5vzIW6 z&dIS7j$~Z;+_Rkpd4?Kc{VGh8b?&#_xO)9)dMEv3BgT=9Fvm$lRzp1#`&l%VI9;;2!YR80BU%hkUe zhZGm$O^tSzmcB0b%<}sm(ORRY`;C(q+Rv+ZSx7>{C0G(b4=Ns4+kPk}ucnJ;Jn^t$ zB@x$wO3J#ECre|FuirVFk$hQnm2g?R_ZCkq&QV_gKF{ADdU}Jm$E&3Q^alWJ9z|H) zi$$h97FOCby;t@^W`>R(6OvefFq;Gc25RV3<{Hd%|0M#oq`-5%U1!rc_f?|ul%-4< zgJO#$4_9J_ zk`o&<$L5o-{si6|7@0oXZqHT3j%2G|B!2sYLKlSB!VIoEgU6Tc@BC4pxzY?Qb0B0L zp|mBw{^N!$BfRFpaPFE7HYRf6^6}S&=sEf^MSno;Z+;f&2yw7zY(ff28Gd^rlW&XD zdE~Rds*aw0+tuB|U%J72mbyK~UfeL0qskkpNN&bCfT8_ffeE{>1Vq#AYO!eA1b}Pd z0kV(P{_D%+EBZ2;44lcHPECu0Lh4Za^~d)+qx&f7H#)K8 z&nyR!X}EGEM=>n3Bi8V;=n~^E2i^ow@s|cu^~O_2Io@Y%cZ?cq`Xp}QkCJFCYwDN<N0xv-oCWM_p9$x(6*MX)7$LUqS!!jf%_3P@RPRX`lkcxt1%RIM|jQeG46Ia`r|?*Ut1CAJc$xHj3+64DrTSVIuq zf>b~UX*{uS8H1-2)|oW``+YGx%geg}ievfp?gm;*c59b7#knTtF!F zJ1Y4z!S^?QhoV#)j;qhR%11nl_%j>QCk^DPxckRyBS%+|aFRRem!^2d6fYk=+g^$# zLK_;w9G|VD52pQAki@$&c0;1NkF!OliK1yc8|hhf9C?4g7Kqaw63hZxM4&-EVdVaT zCkzcu^nvZewm8^@sjin|@~+7%O%TVPmL*fXlS+p8;B^*50p%0|Y9mH-LgiOd5}x{g zuI z+6b|XCOqj~YIDdjBd2be(4GASbzwM}&D3?*#Z00oE7Y|y%d->_o;Ubdjtap`B`3Sd zL+sl0U4t52F>pSkLknp)fZ|XM#M*|gjspU)P>;V_sJFPISKh&T9Jc^HL*FcBV>mv_l zHKHP|uwkQeQa3wAjg4WG3#^WImXR2r8C-h{v|o6DaKl0v|0ntQ|G1U?|ApEBM(=qd zPwWxK(!1+jIe1OHF}a2Pg-QBz@Lu4jiWc_m?UU?Mjao;cg=^QU;@_8#sKt zl^o2QY|WI_mc{%=q-6#IjAf|%Mrl=ibFq^uG>YD_N-0|%({myF4;qrepA!GUN99~o zejaSaGsbTw6K%R^r$$PHrwR6zK-!r3AVH85g7YKBdQ)z? zPM2g($^r(EaAMF*;TnV*g4O9~95MG0SZQM2>vsoN{_!N*+gKdQ8vW2*sQ8@r*b~Ky z66h63N<@eQe?=WxN7sfah3NqWJA2O-`f&31R^kP&R`I`}M~5SOs5E8%GkW;mr_VKLNN|H8(Np)X;9p zce{uiyopD=8N_8yihGVq6mE!J|AN>B2XNv-`@ji5dRE9=rZ>n-B0N5bN;~}6o5Q-X z2IsM8OeFoe6iv9>bAqr}Sr8aYQBFkZV$nq+eGV(lT?=t=09BbY4!3w#rYE!MsuA)| zl=sWiI)V4x-%Vd(c;s;Gsy7pUVK1~dk|p!{NhSzR(b>z#E~uXI{4M}6T^(Czy>o@(7^NNMk3JpX}fdT}zx_y^v#B-_6&y>~j2B%>` zk;E6XE_iFYUK~{LD$-S;BTeIzQihMYNYajj4+Tuej~*1iF4+r5WnCM_f0cUvnE?%* zj4DCs8pgs5PCeU6M;%$I`sVvq#4)5LFq3JJa28(+(kD4;MNic*1qpch^;TEDA&{v{ zM<6{-BcBk%Qu&it2o^f)P_`|U+dt+YnUHx_a6;n+sRxGB`$F`(~NJ3W#C%rN8ZyO;JER=FjElibQ7HpH&ugp*Oq_X!AsqbN;Zq z0=K&_NlOzpG`ih1O+Ma?%d&%L(Y}<^_~>%$1z_T}E#vFtU=fyte3O{y8ATbfCzD zD6+G#huXwrmlbRGZ%g$`ir>;C{(PdGgO0qZ>ql5^9}nY>lMWn)lf4(l>(^N> zuJqEWUhJN%bBzP@!dQdYwyGcgS*v`n8b87U#5US>dkmKM+jy4iGOdeTtIu=B!SzDR zuQAc&t(g*BTg?lX4-DE2PFg}4!zIkWW0OIUNIAM)CV_241SR&lnxZVoRk$?j%9y4n z&2Kl76w808C{b@}{^>-<0x3t{R%4*g$bD6;{soW_bV$CH4w#8bK6#fK>92MLv-c{j zVpp@b75XU%ihf@Ukvi5~a6ftCGuKFgcZmR+(sa7Zqi@NmMr>)5)>Bjbof>bM;yx+r98<=5=Az+e`$O^=ZOS`4;-(+0JoQG zOJ5?yLnGMS^}~dtYvLs<#}6kCSF&hCE1RS_fZ6GNcJ!_8-ZORNxPI&U`+&P+Yk%rE zajZ)hM68AxEb+^a)hGDZHTefPLsN{{93kFj>L+^&gpH+cy~u4HjN{37ol5W z=2AGF@{_s*Hpv}HYKAfD0@NulEYG!7v>sPiYsRBLE2o;oyWHqW>B-~4)U#sTxD&k! zptEZMZ=Ds2TX(*kxJCiOmE{o>Ni+W2-PcXPj=w8R&FtAO(NR53GAJGr%mg(62V|G)8%I;sMb+B!0VI zclZZwlXInKyXjFuBFAn*lC)(tnncCArnb@X(ZqU~ScBSi%0D+cyp<+@VB;@O`tZIb&kWZT2VRXAsfUge=INy!D`i z4&d~$jg-!B^?8@q9J>i~OO`^H+q!-pH(hSG$=wS?K|Js<=J(I_IA=c?%u29*&XL(0 zUhkEnzYWJr4z;uP~P+QcIr> z2s;HRHa@h8N_v|L7J6T06~_Nn_qz9@7?qWu_U&f5Y%JUEtbFBCp!YOL|)$}&Di)Y`@ zbDF-X|;b&cv%dKztIRE7%Qt{uEj5FeMPTUIM^ zZMzR>SM0vO39qb=^{=WK;Yjy&#ge??55eQYJYJ*=oFf(7vht#95eBNQTHNj#QG9(= ztVi=kZ5VGDyFt&p*>ezxqHiU>JzDHc#iIo;&V%N8h=>1dGm5RaOf=V(HBr-E&1+rt zLBB9=oHt6Koi_7z%Z(Dr z{}$!j1Ofziw?HGo-95oV2n2U`Z`?JwLxAA!?oNU>?v}>gT?2&QoZLH8Z{AeBs#o>i zt(mHsKf1apXgeI)-@VuRtlNe8#)G0r_ZCYqCf5)df%=MkqI2@?UORA&oA9H3h@hI@ zo2p^n58ArhT4gp}otsGx&G} z&CB^%oi6CVR;F*8+jmT{B%YCxF3N!Oj%IiJtnJI9o#A~M@z_+azjs5M#B}(}nY6ca zfaj0U#VPA_x3*Fkmq^t@0|d;fT4wfJ+R>97Q~Q*W-!ODl%P4|I-P{RV{B^{zusb+W z0i-^6%g^0m#GJR2Ffjx`(-SRD%7t>K&=SQF7R;maSN;K6$=BG>QmUm1w{E>}7vgu$ zVZn6zjLPSPWXR;whn;1?k(Z{L3xsy#Z6xG;2DHuq%%oqGC#ffY=eT)ixzULy_7ySyaqJ*ds-YHP*QSwpHzRI4i<(fcT5Z_DyfnpUpm9SRsaimBOES+3$e!j&fxsC$fk{E~Ze1%w=4-Fs?)4Fhz(JLdu1)gz!u& zYEu{~p2hB7yDW>a;eEWEYo+Doa>1Ua;cOwD)EQsnim&+b@k~2{R17}0BoOp12=_S` z&49paF})_VhJ~3Yb-Kh1{ceYtgMq3A5(`H>G@yQgmma-_JPQUamF?}O4mS~mHu4mA zS1WPK8H(FFE$S)v&8H5oC<>_CE>5hw|BmQR2iyq%mrnfuJpP}!Ee00HT?@gLzD{KomTiDy-pv`)x2B*) zbk-k8bUpGQqDB6+r*v9 zb*yg>KzMKmE?;!jfOTa@mb>1}iOVYIF85O%$;zs}Fuz6&SZ%4U*^!cXXhMtxv^0C$ z5tT!9EC{Z}WSk)N+)DHBpfYOex{8({k82TX+VfKO=yeDerTHZqX5)M(Ps#t?EbG;t zZ-<|$z|*hECIg2DIlC8X55GZRtnf~xvH4yDN5aOON_q)f+_oW+i_YsV7vrwJ$w`p))%RP-+X!n^n?iak>Nz3;T=p;{Jz00szO%Yb0^7=MV_O6O_tatDz&BjOhh?YSR>jnRmD>i{=&-V zr2iY@8_g);%Z;Mh?<5;D$1y0l7a*u7qdd>-^QA~f%GADbbl0OOk>eVOOsaMA!Z%7d z5g&ApoJ)M1U}xNE+%REMdN{pdshY@fwe!6DUZXow ztt73qC+R3*GFjvTGZlRurV=^%F{-c3e-w&eE(!ka9ng6xPA=l?>~Y=arqPlj7+Ygy z;bi*5N@ zD7d8`_rVG#w^%;P*=}cBnndy}ePs9@6}LKwY9=FA<6AIZt#}u@U~6kf=y*i{J1n;A zy5GfvznL_!7w2K3*IKN)c~_}$^{t^jb%;;vw^96`pKFm&8h3F=Ox>7w`;o9U`G{4M zNHFUeG(?G0?wM)AxO?G+%Hz#uPG9`ES-JF+S>hi7ICai2T8vgh90x6BS$F$n95S4$2d*>1%7 zSadm)JU=$NrE2hTdgw^yoG94b4bBy&Xc`H}x5apF)2!na2^+iE5sdb=r$nG9Po~6= zTNu$)5*)Ryx9u=RgFwrPnl3v5m{JM-kcN0!rO$Y#IYrL(&*B%~NPN3ay5G*u5cd*Y zv#+_EP_nI&dv3=%13bGn6h15+vUm=CnOsfr7t{+)-jpp~oX>B>5$-LCdPozNvc{9v zc*qApz`U!ejN2bw--Z`LyY(wCU3R|v#?s$2NGzPeq2IWPx-C}6!+cok`>Vjg*`XmK zkv|oqHyOCa2fQTqZRHR3dU93jHc|4VR%n(6;Od7hsItT;g+vu8C9>7ySxvDun@x2e zL6+le?flukMT!(iT1{{1^|1K~5HE%>g_N%$CKlWI&f#rLr&MucK`@yHDh=iXN}`SD zDvjjXNNEA>_YIT{VaV1hm-IBPf|&Y@Nvy>$cRWIlsv#Le3fa&N)Bv3zp?zV)0NZ7s z4;NJvSq?t!jgTJ4iQ3<#BQv)AcIDE*9Du~eM{-JkwWwZCQHhGY%&b`Vqi%2z+?y7G zTk1NyPH)5Xs_d{$(%18L%4@R9OvZJ{`frITx#Cgq{UAxn_vM0g6;&P%5*On!DRCv? zJWK~$DYxfeyPbzfa_MzBQ^7($N^XNt42p43Ch`8QXR;;)%30|K@gy zMOenJVD()@4K^t2)1Q>#sP=E>TO zfe6cQW{GLVzM;|?`jD-1tFq!9eIqi+Se>`+fU@+vcI6@NW31UoqxmUc@a${n%*A&b zl%$rtVwjCg8m(<9Tclu(NZ5!~xS;?gHSmqv2QS6K^Dep*+hh816fj}bAt|hy4vuZ` z-CQ#@hl|rkUOs#YQV^Vv9betq8{HrO#1t7ym_TP8ko%v(WRDixSZf0ki2|+8hG@+@BB1- z11?yvCWy63ejVZ9UT~)Vh*O72q17njMD|3shh}aH@sFuT4&ZzJ>fG0&-4-<#yJ#}f z_1twt7Ux))aQ50}@$IGT_GVbP$mz$pGAa~MtuVxlk5~J1mj|YF+{ZM$KWLHpsl6|Z z?UxiKmCM6GZ|}nDs*v#>qhoahk*YkY1@7CeFkcPc0o`ThBJZF)I>y8t`}McgQQ_zx zCtKVo{(?1|l)o__Mqhe?bf>~8B_u5+9sT7s&vlDrQ}&NjBS@-{Im$6V_c)?V7yZ%S4Q2kA|MqU=aTkv?sU0C^6sk71EN>N<7oijJsPZP|?7L(j+F>e zrhbXxlONzD{+-+OCu^W% zEO0U`Y1e(H?kmO1UI+Zv546K{A3wj2VhJ)xX`dd|&!0p97tO2f2lny3*XOp)4pe#9 ztR|s_P*q`UoWZdP%qL+=N91!ILa%5yn9+~ecQw>7a;bdJ$|Em)_;Ww}{qrrRER`+L z+*?4*D=f$oB~|y8gJ|!21sCscLdp&)sLC~kpeg*!Fba_2hXl@^581@TYKe4#E6*?w z5};2r8v2x4b%jo2~Q<{Cc=0xC2owE$w3)7a1ep^rKk?R zwn(#`SJCiHUXG)|w|8ZyuB|+j7z0&S@#EfT7jHHrS<0_oae`LFk&dJsQy-z>v=4Db zibx?arjVKHp!c4>IEX4>0psCLGzj!Z6Ue>&_I4pPU(W!h6P3o2G-1gVOwGnj_@}B3 z+RZqhHRry-dk;avo+KFwT(kl8(a_ZGwRU`G+qqOvvv96HMz^cbQQ%~0Oh9PyxWnm4 zWdDfufRMR^sa=q(b$D$f7+X?qqrqb0P>S4`(_}sSjus?i>lvs?%m?DVo>T%z8VY6r z)m3Jel>~P5^42LA*MY(`6{%z>x8+c~X}>+JpPWf!+U|_o&Wh!HW|vH+Zg(Vtx4nH3 zLqcJRqC*iu39)mHWv)goweN*!j*SxRx!BqeqSy`0jr`yk?}Km2->YAYSKXD+er>_E zx4U~iCgo0M;)sAf^%S{v<{DL6?eoPscllTYy&_zyoHf}o!hx=bEOB>Q8WJ4fxg=u! zlC|}Av-MeQGlstBvGL2NE#&c@PF!&W|^9f^eZpc zvgQ_CmqoM@;^N#%srD<=oy>dTIeHYgp6(u$th)`l8TYJ-Y7)a#)1rsqNoylb=&W zeZG@Mo`L>gh#dLCoj2u>t{>f}t1YBAyUCRlx>K3$u$snKyn4@y;6YO(!V&ow@!2MZ zXXEv4)VaXJm`1dehHlGsaG8fjL=jP0^vFBNQ7}NU&?E0Qj`&zxp{dMQOd*yZcI$Tz z6JVq8jz_sUcyCc!9ivB9tFF%IxFpbXBbMcfKmZU)H!_4`X!k6I*>+6J98y1xjwI^kaplyStN~Qh`9AXI}hceqf!zUSPJfrKgc?`@TLp( zld&ohXefEYj)O!C-Krcg3=FLONM~!Bgv9FBCSP? zOjA^JdV-@@vkXqFPID`#@hNrNRS~Hz;YV0_tcf+dv^W`aI1w5$TFg4&#sm@uU?73&=6ab!j1?hBoV7WQ|%#vjRd znWo10#J9vWR}|l}krJqzF5!ocqW*Mwa6;kJ*csrfE5%Ol70D3p;o#vJUtJQvo2T(W4BQ_44W2r_|E`Oc1T zCn!07QR;5*-kgh*$LvS@a2YPMHvQpzC+KN@$d{A9Pge%>xc@Nc^WG|dscCg!V9bFb z!Om23T7xXbkY8X>TG|nVlPPO)BjWZ4npJc&FCn(>KOkG{76O@(m@jZj@{SOiRa zwMcQD>>ETpYHdg*zl;-Yfuv#-n?f2I#QbazJC?$1PaGm@$+I)bat2~>_D>Yh-tOf~ zVp0!+Tl!f23Qle5Oo<|UU{Z@$wIiIcT9g5fHDP*ISEnETe14Npgncy{NBAF%buI`+ zD=|fA+aGM2%aZV|%b1(UbiLrN?il;Y#&dd`PumR~o2oZN+jL!s|Is!bR(x)vIDA_* z+m?D!318n2ES)ULxsMCVwu%Do9E0NU!s*9sH^(gM<0rSMvaF{$=TgE(b1#Uk-Up3s zovUm;6y!6e-FtjLbYvG6#%{p123gR1LgCv1kfg9ou>{&8;ScO8wq4%p{6T^iRdc3Q zRl*5KTzaL4%)p~`#)b&SukK}@@$QUQa<7}d&a}G5NEjp|Pk0>bu@r|0ixM}@?9S~I zI(~?Bs0xVqHD}_fFEQ!(3$dQtAIoOJk6sboBX$_<}pg6SQBo6ih zGWXQ7X7qpcxg?AO)klybuJm#CSS1|N(jvBr&DN7Y;Y0D(AoP>GPDN|F02^IAAu57R zGD;yfRQPu2RPPoKZZBO`lr41&GrU*-Amv`nwC?&lOrF#3&&z7Tm`YAp=97km-DZsC zL;k4lT+^|48jDdP9Gam2x5`9(mf?hO0ja%$sU5aUv4K95Qh5atr#`sW%pI>-$Sq>~ zBPjAXO76#ThCk!gsOH01xX$n zl=fbPb1l$4Nb$#TaWml8Tn9TVQm(#cDWcSO0`ycV`vcijwXK&Q2-2lT#H+Djw=2;7qt4f4eBY58lR|1F87fTtRVkHtI5f$ zZqS(vO(@Va@HE$m5Oc*kX8yW~<=ub}f2_NZu_=_sJ*q&c481dJrfmlWxsry8nxsHw zTk3=qnLYTwT!TC-DR9D+E+YfE!Pb&f&FnHr3^LA-Z)v z&us=~ljO{x+j8$pd3(}qG2{q&tHVaD303w5z@PK~9s_-)U!t%X-@YWSy>y5%Y?PmD z8uzxxk!@U#iVx6{u3U;i24gwCAwHf7U^+GdG{fWh!xg%EGWp_*gt&)ZPWH`-Y77M? z4Jkr=iHKWpL}ZIkp*t%*_->Ljj`WSyx240>yCNSPz!*P1{&{hS8ob{4Ke?Zs;1;hmBu=TS3boE1s`aN6|enOu_~DYu3C&b#<=upRC& zNrQCXYdK=7KTMO)zBQ+UZV}!l5C>OCrIv4^lnR&+r3HC~pOOhApbo!GlMd?gG_xoI zx{E7HwE%uzgEK{pi|}fcbD&5$ zv!6j4s{3!QHbwp1NYLpowdsU8&e|RTy`r043GegiqSG3Lt+_rNxco;lZqKH)xmCVG z)1GEBm654h8UuN#ntp&pEW(wN(n`hhtl3SzWc>9+u4Kap3fW=ovKLM)!+7ywfJ$G_ z+dTdIS_XlM$+V*!)V~cls5e`llN2%h7rz=jqTBQt+2kEK^;qGB@)x)ZrzT4G&_)P1 z;I3RLm_G9pJ=ksb`~y;Y@V~(pCzo&$(nHLuo+ihv9-`dNXaZSDWF`a4h#}XWTKInU6yO?p1*aE6_NbiJ?pg_ zI;18uO5|{sf0?}xITt633#ZhZ>*QU-TilMRVY{`orEY6^{d&HZiD|UuK~~CfX@erG zqVyuRgbQ^X{>!)Sl0yE7)yK&<#E}jUI2Zmf_2Pq+BpdBzkNiizSPtS~`IdM?=o_lW zN=%s~c!01;E{C7BoyDZnJn!-Y-$Q>&?Q+|ZMn7@>z7 z8-a(4($wC!{uan74qR3=vKjvwJlp`tBW6DcC`NxtY>(sgt~MT;l7vi#={Q5tJVtom z^l=7#cI3q!6t8i*m<(qTR@)q9u^wU%Iuhy8DQ5?B<~T}FhL~6_ioR>QxY1Ud44VN0 zBN1L5=*is4A(Ot(%wdP0iwT=)^da8--buO1gpTp<)4KWlZe@&1bO4HJfIkfV#{@)3dq)p<2~1Ddzkjuk^jf3X4S_3E&LH z(u>~|N*DYwCKO|E@b}P(0f_C1Myy{P^xT-eStDgn{gA62G7DmUq~r&8K>h0u zpy+OXqctZTt#`zi>29rIc~D^w0py%|6KXdOVDB{8 za6q?QN8?Gd%RP*8btrBnq@ETY?-9K_u@E4huxY8Ex{30jW`vY=lgIowi?&(F>i=LT)ODpdmklH*f-waQ~$09yjvODgT5 zZEma98);trV7}&-_SI7TbJQ-h`7)$7o`64?G>bp~YmkqfC!aUb{yn3TZQ*M4Jw+c0`waW&&3!u4i5 zd80WeXlMjEpxbo6nQg3)kC8hyY7b>tQ@?~pl>mEVg>#s)dR;9PN zn_Jtm+3&FO2?l95&R%~%m0Y=fRd}J_fDz1+6MU=3d#yOXa}Cxi61CO1a=MbOkFE4H zMn-UCfNxF2_ATz@ER27%$#6h~q|k?8CI^bXMQmG+p+4`+Mr){>cGwGI;ap+*?PddE z9;%p_2mAD2um8ZG*AVmGf`Dtxa<#Lx|9oD!TDI#%dPyIhGI=UsITa_<2(P+DS7u?7 zpY3!gUt6{L#7pW=&9L1>Hu~;r8$Cc2=*Ns9Re33Nr`p(oamu;IU$-{PnK_-|Mn@;j z#lI2xjOe9-i}dx@|INzEL#hJ%QF_&aj&dV*r99`p8_T3BRZsHDb&yw)`%g+E? zBEogO;gGlfm;(@rDidaN8h_g@-mm~gGn_AU$zlOibEJ4F&;9V*^Jb5Z-beKDn1SNl z^q;NbqwVkVWX(nkgM;Tx$*{A(?*&jTxXAwldicb8+9_13`%AYcZ}5_Oh;-6H^nKH6 zAD{5^FC=<;V1*zE)w|3Nyi<@@?+BeBoU0C5J&CEiGKnDOYSQsfONf3siQQ4pdTBz; zxRks=@Qx}dkRao&L+h+3E_y4o!6~em5HPjP%mP!3h6`i5_)A2T)~X!&}$-NL-H`+wv9{|gui^05HQE)I$085!j?OyJ_plD0Qta)*CgX zr^?kqp=ASXYrfPA@oc>L%@()*7C!V>%qDfqdjw(ulM8j7gjG5oaf5yg^W6V{I4VD= zyY*!AzTeAD&H|!Lnf4gOKAx4r6ZWSkuVzKUtSsxT7Yhe0tL~M6%UI1zFNR_bdgn#O3-w(u&0RNBsLD#}Ttl^1gh76dWCMn7{J0 z?5HJI(iD>t8ZrL5dQ1WSf>zDqW_CuYgp+A|s6Xf4;O-))?kXP(+E=(#^Ib(q!ZX>i zhe|K@p%+0AkE8>S9WS3*Tm18MXTa}B6&uy!PeI3Aa#fjDwlP=fn z&qt&af&5h2rRLeQbNw?|;d0x`D+%CNIj%^Q>1@#6s83AkH>WaNw2$(T^3`Rl6pr3;(Gth;{f`49!9N19l@ez6i19r5dPGUO!nFC) zd77r9v^!!%r;2qMf57ie*fd?-MRF@}_g<4mwe8qM0iz=GwC-z@+6|Bp2+4Zr0@=Ur zI1X$_?CW$BV&8g={PGR1q{cc`n8KWMPFDz5VFI}=p8!v9W>@x3aO2=kaf6wf+#^9MyF~EZ?0t7EdZ;t;s ztwTlGUnYRHJ8av#0ek8>>DA54gG;?~x+COhh7P;dw%2Khl^yIKeGLiF=@V)s(%kSsMW2 z;aU+~vbr>EQM9bRBH@(FDYrMaGz4a++QII@gIl&1OfF8gxr-Whd;3-uq?HvXrAF33 z@$;1p>J#04|2_7K%`~YmD=#L-H(5GK0Zd03B=Qd?j6x~G7-NRy(n|zqy4+XjBXNlqY`>uk*<`66!q+KN3&kQm5FdJ6H29BlUeVHts;Ls+6#UhC z3-S+{(I8;2d_m*T>5cCpk-|YQ56@GR$%QWx{r9Nr@3RhDcN78+ziW!yD#CBZc6}{6Q`{4cZL*h$4YW{27aTdIEW(f zIx)E+`>}2jB$_?QJ5IUVRFpoLBYy$B|81=H_dZ-lyhXw3ZL}^YGEAueq9g~(Zbirz zIr{r%1y91FPUAb!z4BxY7$3+hz?Yvg8SsDn3*$LV9jlZtJKbArw!#%8hTXT7Qtxn+#jDU_;*|;#kAX`K-A^=Axik-KS73YvX{`e zk_VMaXUfuUnI<$-8#xnMQXm;&tW}-i*Zp$LobNPZ78!ruB2eU~5E-|Gyba}!1rw=C z!Kr$I1pktw^W^0%_pB1vXp>{LdO`h9>FGckV;q|DFj?Y<*h>z}U*B-P2E9S5>!CSN z0Ct}Mt!31`ZY-I*;%G_pfd#LAK*9r+6aJmzBXmw}E^DTNcQ=4jLG{k0t6-`|5KFZ7vOf~!HO~p z`OgMYJ2!ZAGn|>XM15GSrl4mS6cOo76d|rfzDN2iNz(o5$JgFIPdCdVOkdfx!U3KE zPugLrI`w@1)HTv#d#OP+FRUVRgR(}_+|tPMbVxTB=t_A~p7%H3XnI=8_#vtP&E}{# zQ(11JC0&QS6#|34L?>2}suR?2I`H^ZoK#hV+sA+jxF)oOJiiw!dE}G=7DD9K25%l> zxBHu0t|yCzOMKJsbfjYCQlw3Y`*2$V+)WK}XUlRif+Cr42Sgd_F0#L+E-tT+rBOu^ z4eG0#!=nhrbNZuzmh&5U9Iy@^3BLiBl(qTd$#33%5z5b^?VJT zZT(S3{1K3&U0#4p3=nZk@^AuaO&CXJZ9j5x+VxbZpCArWGNvo_HqvtS<1kuq zxnQ05gOC!d_~K8~k2DJ_L;8+Z%Bv9zht<5tQj^~r@0siRNadI+ zA*G{SWN^3Kpht#slIAMJ7)v(R1qtg)gjt565dZGgyVxBI;^7S(5ZknDY&~^5yO~k^ z&mHVz`TyuC{(l`z`2Pd49P+q&)|xF;KkHH@4Vcigc(sb2^g2F8nk0Z2;fvo~dkR3| zBaa+dQ${9qN@A^WXqlCX#$sjaW99Df_XO8UOsXHAKI!}bpw=NRcX~rlwBwOwCVRc_ zUnhSvG${inad2I2bq|4+@}&>Q3iUJ!P3ul6)6$iE<5!@wmDn!1-ytsDh)+5mVFN6# zRVzmo>DNDKAcr>s}dfz}hmI#P$yt-E^S5iPw}_~yzUfqmIJ_$y!E>&_$oK}f>*H%z zx?)9QHOoA(a&ffaOf-5zs%|Dgj|9&@3?bQ=d5wk3}yOaceOuC9CFjfk^0ka8u@ z7vaD>(coleP!E%gVMZ2i&A5+za;nJ0=vPk-wxth-zA#%g*~u&Ee6h13)thX6WpYir zt3)VZGzCdIvV`wU&N6n3;cHb^lNhe4f|N4kZ*X9;c@z8vbp+_-{XdL+6i3X{b ztTPND@R=%5Zz0c}Hmg7$y>d~-l-aRgz+8k=5k*99Lj#>Ww#?*GNTPF&jXL}KOJk=_ zc<&wqjUq##<9PnL=jm~@b$B` zZ%^hAlA+HMT^*^i6l61mWAjZRmS5hV{z9hga#|9SUjIgUE;xlq8OX!pr$BP7(r_^< zcuY8Jjmk2A;#elb|C!L+F*3Nwg|}IsL1(`$a=q`-dgXKdnx_KG=y(9$b@)$P5LfK{ z=tr1YPKarWh(*8Cs!si{zJfmuCs&0##{9hfc(F@V@v8O+u{L!Ve4!b=-2^SOd)ad5 zWNBx+p2YW`o|{oA(ze%$g_Fd|v565ZC_ircNR_aL6!Q#BhWkkQx^n$iPf1vN{={mege=+<7`#<*(j zZ0)8L2;`D!rf;!N4*;n}HTM}yh9I=LA0s*jys@VL|gX zzwZX!7HYl4>@1D45^6}~gxpr~GuxhuGD`rseu6`cu(wQTMu_?@P@v=fX&mH+C4t|F z-Gd;9$5Hwr29L2kFaSgjDv=|RCzYYDC8ld5?Z+CHuwvOdTZT)5p#~N$7?6jNK5D46%z(3^v4`2QN)78cQx7XKr z>tyC1_2}fuN*(vU&FI}z<)@3Ff)zu`2dwJuBZTP9eAr`Rg z5a5iO*rsYA^D(2-O>)g4_Vf%wvbh$?ZQ>qW%VM1V0S%;=Yp*QJ@RpYC>J|@U14Xx) z(NYjodvT>@$Ov_rb6YskiX)<8*-v2Gs?Rwngk*e5nbjSU)!Ynmnt9D8|^eC~}fOFJL2N)V@LXoKq?6c#_& z1aYxPNYx2pq(%WzChv?;aF9r=NQHJJXzTeyy#BM?#d!3zXI)dw?_^>>^PfD!nz>;f_^G@!pHd?$4@z>we!uOjB}2=PAU>_d&t|3s(Y|FEt?`9DAZN9A$PN|#a#pE_ie6%o!jHxbFu z>xHL9{I$`Njnj%pi{>b(}HOBqD6{#^@!1dW@ZAK5(>U zl}NONit-~6sLmJ0gM3Te=yp-GJT0%x7B!1zT6%^3j*M-J1wwWFt zCf+Vr=H_F;G-PsF-Mt!(?+57v*~u=8)cg)u(vsQ--MDSxp|?0@VV?zlK57(d>$0pC zYM_$URhANgr@y&QnyU?4rJ*jn0A~a7g4>OmK^!v`CIYQ#SgP4TA zT%Koa*pPcmHzri`Fn!OhYi@@_D;y5a_IQn-Ari(D_NNALducA(*>QJ>F)3ZXS{@LY z?<+%R#@-BK#M0QM7ivg~hN#&+zbhNa{UuswXX0M`;Dl?N;?BNlKkbq3kh!S?LSX6X zqksKZ9b8*O4ik>t;{2((qwJHILjY(BP9hN%m>~#uQSHgfYADb_L8<#V(FX7WUM1>nXw57P!s+n^_q+*;TkS{a9T33`C#Xyc*cDF ztir#6y=XW}`N>%vF>1Sush@(TZMyM*2Qd+b%{)75c`5yM+d6B5-55h!8ktN(Q5Q4p z+_n>??%?skTW9naOk>{6ZfbpECDHWf(pvaWLlB&O)B69dGx*Bulb z(>ObY!*5S#8)pxBP(tuxrl8J&&H~~f_4umpjNSJv86EvErT|qQ!G;s_X3DLx5ubV;*n;G+q)a|J}4ox}=i%B2f)oK}Uy9evNex)3oG#2FjNydQ?sr^sQB>B}j{Nu>9^U76%rq%Bu#6ua zrBvZpt#~)H?mTTi@Eanb217repK6bHC+sPfEUz4aPc`k#sW}y$Cg79=CK0xa74c*8 zVaFO20$mGDul8kQ&^@&26A%{6!H`VO{!uPVX4sRdw_!lg~lsa0cpU=79 zeX)6(Ddv~3`a|A*!&+PM~aoQPd1nRpB> z)jB1=jEw95mQ0yO#_?f>8YYrqvII{*w*mJzlM`hcxRCktJOjYom4mub&Qi3a zHrSi<==6raftzSw8q1iZLqEL!H*!s+A@DblpZTxWgGuK7e;C*K{|4##ztG=IF1ltY zVp?jncU_0HG=>kY+(M-&b~Z4b0e`m!K5*!#^FTuzmt&l@W=?tJ4Arxj^ak~GC|3~@ zvRjY1B4M+gIt53tpkJD!5bo%Zz9_j5KK{)b_WmTmydrXPfv18Tah#3k-B*H8wTOLt z9BL@2?WFDJq;2%&IFMqg+w%~%$tfGA9kdho`$i)NNFhheD)v}bToC@i?JXpt=>IEb zID2bEmIj50?YR*JSbh_2SAkp_|4t;;6#=8wgN!hrZzU1hu?1!NWoVBXf(6ndamAgx zoUe(4JIPR)unl!(q*?$C6%ZcfrG#+vuO}isgE8G%8;XAQC)lJQ>kD~KsH;(ZU%`&9 za1mP-K+2ua&)d$U4`6?9bL2jtkRh{7 z|L?4CCjYX&SvX~ATt9BL3xXI*6OZ1onl;Pe7k_1v4K5Fz;JWRp48Qe$cm{wd&ZgQE zItEQT`qH9mFg1O?$xG89b`qjg;u+-_sT5b5*D~|K9_4n`~+E4+eiZI zw@SbzI^*FrGIGii(<|?b-WdMF+cu^a{~k@_cyb|t?_WdZ+?(wx=WfzVRY7RT=KOiT z8L?{{zh##~LF-~Y;>1VI0^(jG z<5c_J@$RW4q+m^>Ov!W5V;_ks2#9T;mLlE(^-w;9Hxc(pLYg$kyU0v`FHf_81DA(Y|=C>1-Oe`6I!SF>F`bUos!rmBe`v3gu-KNbSSQr7^uLHXB1l-#k#}4qj1E^*D&54Z6RwYyJzh@-9hc@O zWGR^~F@VvMVPW`S7nDRVGkqLX_iSuOslt@g{A7UYoZTiSom$p7vw|GIrjvCNGq zO8*ec^E7b+qExp0FYLW#P+V`juh}>R3j_%6lHl$df`{PRNN{NycbA~S2@tGt3l^Yp z5AH6(Y20bt!vFNU-!rp!?V6hTbf)H1&4;e)FD=!ppS9L=-}mpjkgm0i7x-;FU&UZq zTLfd27b_SL7?bjHkJM#{O2`2?{_8pJU(bn6RGx&ZlNVH)31Mn2Zxm6QraT19|Glkd z<%f`2CJXN>cu!F2gs}Q<#?Sw^&)0TS!-aD2UlwU_t$TgR3s5TmZ>ZtS>T2FtQe=6A zyL~fZBImzdU-a1EDE(a*QTINMc?82{MrxEKi9Rb%qsI1!K*=Osc zSkM;TY*7m3Anxyx-ir_Rw@ENuDPz0-kY+P10JO30V-@7cSlaA54_EpB#i|GeV>A(% zF}|D}d2Gy?2(Kvfa)U;#3?xaD-iL`QDxW1z_y;(S@q^2BLXLNsMvGK)MK9E?Eg`K# zX_^Ufm#y>f;e-P@H`CWZMN>4>e*oZhC6Lu6kGI-6c147a%v!WMk2K|JXJN(9pFm^# zca=Sgbr+RsJ@URU_Ye$NU_;9$pYQGCwyC|I&?RS$3*oQ`C94@g9q>w69LY%T>tlFA zBwh5ASQ*C?C-e5 zkO%29e(bxDvTPtuYV$+>YIK1#_PpGT3QX-^k&-R zaLgJ}UTr5zsl-`T{%5H$nV{N6|BhhE^6Fma5kxP!c2osDGm70r3=n2K%flBVxg@DU zX$!vDUcBQD=4z}$9;2@%FG#5ZKqUzSx}BO#CEsA!;W|i)GrO?_h~FQ1o`!6YCaPiW z&2ONtKE$ld{++yZQ`D|bWZ^J0fVe{T_oAAGi^mpdn5>$A7uWvG)duRw;Bdzl8XKTZ z1IxoTrqOJkJB5JaSg$^_?&^wlWc~0otIeWG5J=soA(+e?ES9l&-P|?DwcQkh+x^z) zEKm()7uBXw&V4?vX4TfvrEcD%F`lbVIdGgWLX7Hr4e6N-eXz*WH*la6!ODH)3&9%i z`X#m=l+frHP0xb2X^ezq;#IcWvwZD$fG$)^-7N}}=` z^p`5=9oeo(P;15i0pMRuVd!n0->a0uIr9Z;1FV;|U(rU8vS$*oXOkq7csk&mPB{B) zTCfz&AxO^9htnFqTbmDz^zyMG$1REsN0^nTY=&KPHAOK&c=n11uo8xq}2)TZPYfc2n(l-YXGTDu}A9!5M~;#K^6i8KA74K$kQ3oXe3L~9hw9cuh^y7wlbCE zZXK7lG%e_Z0|f(Dh@Wddv@Z_BF59xhdBl+yuc;;3UBxyb9!k+ zbvd=Eo&hmmLwZ(u-=Vnm5Hjkn)A>+o$ai=P@pSL@d(7{3;$Eml)R-@f?a97kZD?G2|Ue>O28R31M^`N4QO+JjXq2!Z$zh&H*kRi=t zhguC386v%YH4&!J2s}3ayeGUjpWpbzXM(ykQHmCULCT)Do$Yx9k`ER+r#vc@ztF94 zZy%c?1uu$2>-?jn&P#}gKzEPUahnOac3u#=y5`opIsR$>1lJ5YX4NsD1AsWBH}lBj z8`^wBU%FP4^)&Q5pN|uPi;LKMvX!tF4XhK_$)kpT?=1a`%tKL4TT%WVEuC8Dg=O~I zd<{{m{4p~nhG0HKzWLvNR=>Ua6w{xM&kv>6X+Pq6a)6jqmm7ecFe&%yPNHtqG z_i<}vcqRDk`V{xtv#sT-5Tcicm|Rgz%ziK3f}8Cz1c0v;&D}U5)~4&hBXc5xO{-Hp zU-R%4z{&!M(ID z$x0Jw01rtV$bu7rcb4(fC+9!L%Jg-SW3Q^vT2FjZeTli+_O4MDpps-C4mZWvqKPWj zhXu~?i|X2HUPMRr?`{+C>wn)Gy57H0Hx{svZ{YHBLW&dI1hX-4qj@t>hJp$%IO{!X z?sX}iD%kuuW=4tBfh|`0(|?HEDW99S$p*+z-(bgL(p@Jr%2`AI0Wo&9zh zyq<}Wn|>k7dSX_|C>~}vsvG#T+8@1Njwt^2yzpO4zf&GH{9_ z0F;S-e2!!7plFE?i>rSc}M|6 zidyZ}Gor73^$M4aRJ<&3`)-q$Rp@uC_E=5$4wRFn7^F$qCjD7zWVg-%c6aI1b%z5- zr#7t^^s8AJf@!2rMHg!33Z#q)A8I(Jdyl&C-TwjL0Qbk|9XS_vBcJOU-tziX2Iiem zpF;+MnbQZz<7$527cb1G=*&R}LGKwzudMu|wzrFZ*iLqhC$xe-k6@3QBCvZK>djB8 zCnnU*N_zw1gM`2cr@jSB6Qa2r1W*NCLRYQ!fQxIXrstu!Ro)CkVu7jKVy#Z<>q29a zPf*ad6Rxp+TAW=FSLB&$9}Z9L^Ag{nqb*8D^2Zp#WO>XeY(AcDfCqDP4Z0}}IrN3K z1$F7+oFoM$U@i_zi-+cF`Um&qMM%ip-bUYXxkD$}eT1zN{;klb_?}L!$2S_!Y|(W0 zrdvDG0Kt&^8*`<7nm>O4T4^ zrf#W?e^TQj$ZkQpbn29ac=t9_C#~j5_C5{!Uar6O@RvyVL);L7h3oYf(M@sv+(+H2hVjImP`X!>CIw(;CyjjCZ`B zenx-~klEgZO0Q-6K9PHt!)X-i;R`ui&^ZnyGsg6K@t=gRU!Q*H+vIVe^h8;2=^*(% z-esFWC=I6N;Y=aWAG5HPYTYMlolh-zQJuYiq_#U1m5t*MJBEiI`!+z=d`Qvp@U7ueDI#N#pyq<4A75Tj!q z-9d`dvw3q}$weI0H>fprjWn`m^tXB^Xcm+E`H2ii<(j$XV4Y~%9alkXj(?O6ZK9Yf z%YAF<+##i#1tpCIWueU06wVL#Y^$U;Z(=K6p|O3jQ+ym+QTywbhvB`oysr@UF*+*U zphbn|`z5`IUBcf-y=TR$wzgwj=6TEZ)~5R4*D*6g1a5!i{hoA*OyPp}(c&H8YZaMS zj{yb#e1UA_rGK9VM(q~~R|2ODdFDT_NvaBL&l>y#n2#P7`{nDzkYGfNAeE+xPGpo1 z%;?(-rYly}W|F1eHs$whK52PSxhYMLS!m6joQ!3><7C!ei*Fv@C*Ez1jC4P>xs5_| zUjeNsUN@v@UeV*#j;CQ|U;AVJh3ER#!oW@j_W^KxO*qqDoMh?Nn*2IuTz~WGtvR== zLt+&Pc;Gg7Ecv@nyB%4g7JozquyOO~AdivDySS*Ea_PGP%X>K_vXx zz<&UdLRSiey>7*Fw{0Q?6ox1?QtzpRQ3Fjv5oodBaIdJUc7d&q505Gp-qjWjnTVO< z#P_N5SV%JBSMeBCvYS-a`+d|X(+w&Ujy8?dAPb5ggvDKyHt@0+dSI_m@5bx)UjwJq zSXBmCG68`s%=R=E*&j*#8oJ__Y2JQ z^{bH`VN&1hN#QgQPa(eAUuEI%->5!cTE*g^)FPo=_q%stahSK?`{7l1lN>!6_}Fx2 zN|TQD|8Wio4d$70lO{!YY&Rp8gUEWo3G^KH9}{qMzY}6e+}B9A!c8L`YRG4fO=f9Z zbeE=;++#-8LQpRPDkffV^!x1)SJ%#5hflA2D^*bC)ZP`c@>~<^Z2p?<#0Ra@Oc$n` zG&ME0CLil~=;!hJPw4Y74vh{7o{?#!5h0!MtpQhn0^@yfIb_^%_IP6H8%B7{LisFljoKdwSxsI%3>fgPomV+OleZL5E`bN2 z)LvMBGj$e-LNOXAiggZ@xeA{fqSmpBbUn2g38(#ngFiNfQH@L{`yQ1bQNh=6yOY>R z#qFZ4_wv*3D$rqAA~hyq>Qy=1OCM1l$N9aig>AAXYke8PR!jN38lRyq?`It>stwnR zES^K;ZY&nv7dqE|0jp-nuzkT3Zl{KIqm(@2b*+PlP4>yZHrbH*{XotO$r@M~cAV;f=NeSmGh$MQ{cED{ z4no}(G;pfW+qxf)2=$$6PTbzEKN9zMOr_XU{R8-o$F1h?Nx4`vUS+3yH)q;@HFj{tw_YGzi^pu>|!k$>UdzL0VGQSPHi5O_vka!TudB7^3qC zbs|5J78C)rx;(xDT!X4W%C#*(P{-$qb+3V?k{peA-!E@6J4_7V^F;T4z17-|^6%M3WZ$tr>vvOeUaq)5@MIo^^G#%<9NNR4$eZt2DYj5{)^WV4n1I8R@gz_3k z(g@&wG#q>|*U5^V>Y9o-Uqzo{-l1I(2QX9a+4i(g?n zjm-wH0-QgyjW|Aw6^%cA{KjBKXlP_RV7D3P$vEB~){ftfhc0s*@1|SrzQTcV8#To+ z12(IRxl{RWBIX!QV#xPi3@D z8m=y32)NZ9js4<<=eO#E1viB%5MmSHhl0bxb!+u zTvc!Z$ywp);o;2-x}3GQRikTXpp7tilQ;jXUA@d_*?KrNV;{^Et;U z)pvcKWhF|*xB7D=PThLMZzCGOvO21=y`H?@qHDSSGh(5O4C_;G$oHSdWZhi&8+SFiS zil*M~w$>-tM(gj;Bd3A^W$a@}zo&=E#P3yvh+$Y<#=iRz^?nLJ7F`$-38@3fMalO=^+{ zOj6mRyzT9zHYOB{-fu>z1aJD%o8p^!e~|+4x8x{UZ>e`O2kyg4?Ljsmm>T}?nPWpS zGKO&N6gTWIN?0faOq8~WFVN%=l)_|z^r1E_*g8thNh zcYnwA0T3u}QT(|VcPP^EJ*EhB(L`~X_i^{|)tbwm#iO3VC&j{VUTHCHD{f%Y;Ty^8 zN5G!I>E}DGG-H(B$!`M>oafym`gD{Ccpgy^O{$pXn~>NkczhgQ$_3<3X_li1B<1uCh3R>N66{V&?HF`)MUd+WHLUR=C?&x$gbsz@n>6NU$&s;j`k!?7f=q%P^d{ zGBeCTnL~5^)9BuJF>VaneH!J{O3uJPr9fja+y2KoFazlj22GVdLLAdT^Y&2G_-Sbs zSLRF|S#v|RIV)@`G)m_ANskBC^;)vY!VE7r&pT8vQVZG&ezdIhPa3P<@W*q;^<^SL z8VmYuP^Q%16(%l2ciMF_jsNUx_FQ4A(9zXZ$9p9Dsnv38uKm4Ume_{Jz${B}Bf;*0Sqp;thMKHmNCps;W?MeiNDQ^?yz^^cd)U=K12X-OMg z#(wWRRJ~$t=N{a4EL0vw=e*_Gf?&kaBtjZEFf9Fs5eZ$&yXdH%heqq12}oxJ%S@06 z4$eTIu?vqxF}_y0cW8j+#&8}$b_VldJPywzMU=JMkQ`7U04bOojR;9id!B>ekGZ|W zP8W?%MFD$6MjY?;n@3%iXBI<5@O7{=r)Cvj{~DAiB`D2SS`aLL{QGh3B^A9a*;}iR zFe~Tt-jPHaymXi$&FI{tXVCtTz2Vdvp@e@g&QNA(C@H(TYP7N|At{#>O|zeQV4H`G zn9VlSUbgvK)wyB+>&Ri2qX#?erBfG0V$O*%z-_&C4Oq`DT;=F<`%-OU>-pWKw|v>z`@j{6_~83m^qxwKMTZu{z#~Ql*X+W*A&C^Tp_l^z;ZueWaNMT;Q(*sF za?O&QAp5kRXd`3{EA@M3*%rIv$U)?9WZ;1Np>Jw~T-A04{ivm`4@h9e?+n&7W175G?g{is>&k8qoYciSw(N8=0HV`YoUei0RcYywKQ1xYM z+Nw^mB$|_eNl9n*OnT@2RPmjEboFlt(rUF;d#h?sqgWGGqN12O{e{|E zHQT^2%vfR2rN2PmPV_W2HR|g6c>7X@t+qFNOC^<*%DJtXB1E#-2o2%qZKzOtV|v_4 z3>Q0`IbyHz0(m&H#K@xnVzX-=_9@lTO|oEWq}~=IFN^m<7NrN{td&=G=>#vwZfNTk zno2vdi>mwgS)bvOzf9!=)IPR)udfU>N2!nz&^NO&yjxa={B`RYmr}b}XmDZI^v*RU zPyTq!Y6x7ee0{E!YO_1Ntn*dZkBN#AuS4BB?8T`@4ITvGCXD!~2$ka!y!BcFdv zP;PFEmGSXi)EFkrf7%n!)KBIM?s0*r5pQTnQw5#i12Q)9#`81a{wy-`KX z4|{&A(0_PK;^JfdG1Ww;z;yk@20C8*(8Viy&^Gc-0E8JYLGuV{C+me*=(COmM(nA8j1?HK zMWT05Tr-8fK2m*4URtY}AZ_Se-BywuzC(lOBu?yRR&3apR=?68a2rOKVI)XIOGyYk zC*&4cR`uN_LfX|0B!j#9lV|;26b&d{F@GQ^v9x=n*^p$l8z z44wC^{y8>DMR*q9#`7o8c;6uaPyP_9x>**L<{b~v&G%ZQPP2Go`2d5K!vPQo_BKLX z7AAo$*I5@c`Q)Y4p)%iOpcL}~apDcVd*w4IYZ8fgE0%bE8fx!t>6tJ)UD1I4&SIi} z0On8n>9*Sb!;C*DErW?=qST6`wKUknIy5n9xa)z3EpeE}tbFJkfvp;8U9HbvnV5 zGAkj)Dv*QS_tx~Sd(fMeL*+-$957RTm~*I-5C+9}8`6hJO{rJc2)SnXeH(x2*3Cke zZG_6Hu5Bf_fXaBShvDS`2c$gOohfSjC=rp5v0^dHVG%-~y7YT2&uYwPc}&d}k4@EG zI~{0j_$cEdj+8ttxWzHwnkX`w)Z_FS0LVU?Lecn_DRo|h$V^8bKpm_jp{LZiP#KrA zm34B`lVhGyxQ=m=TtwJeC_aDm4!JtFWa&`Q&aTv;$Ida=^Bn_b;RUhybaZ|){Y1!I z^^ODg&=J0cT0t-`Gzj;Q9Mi4TfYEjMrO}gV@B3qWTpFT3P(`GUs)y|6MB8Y);96>- zSp1zv6A3lJA)(6otd-r>WM$=#60F1iz{ks#SXUz~F@f&y>N|Wo42cUhfmI`5ub1QP z9S`Hw(Epj368#SvKqzC(zi0sezBfgg;PB^yA&BI1F!W1t88;%;*T0f&@a@PLQ=5{8 zS6zZtg7x3+xL4&+z;wS=t_uA8b1b+RwZhnx_2~x`yvif@Me2=l+<$If{@14H|NqbV zfBJoOIcs3!Z+q{imXF^~>u131=#sZWi?S4P^1Ir3OQ|Dcui}2f#7%uOo#MqAyf2I< z0PP7@P!6{2fzoi3pon08sjV;fV1yiR{cP{#_K7L>YX9Y4R`*#5<}I#9b)B}Lw=lhI zlx6O?b(ygQ_)K)k1KA|Es)=@V;>ruB_I1+ zvT*)`M!lXF|1Wy5=+Af6fyaZABy|YpEZBGOlz_*8E?$G7oJvM#7-Kn@a-C8C*}ap@ z&j4Gc^xM+DOe(2sW!2%cu*6lur*pmZ(pYH53%iO3h`P`_>EIh42lQdBiR>Fqy0vt- z=@0m%;ZfHXM{8;lSp0pBYD+LXTn-bZ*noD9EH0Ehbjk9LF?p6L_j=jAeu$WQw<_^uWL0VH+_o!Imd0xu z_Lg_j1d^B(E{Q$}3RdH&i48okaO=218}grCs2A4FuoKsN zLe)Rk;t9(DO)muNp;0=`gW+iw0S z`OR+Y6eu4tvOlVCRX1x?DLB%y*0RHp_X>SAd98&OWxBjhg^~xF+*)MMJ2nWw*R&%; zP5iOji*8&sfOJ#C+%PMSBd&y~Xl464Pec1iG&rsy&dF8}CH{&^=2+TPKDx+=(vAk) zDe}6a*3Pd2DCaJ1hJHFBvqM$LT*lSMf$rB;_XlBUG?^eH`PewiNi%{w{o|yYN^PrO z8*cLlsCMz)Hz+Nw4kQ?;@aIM6vfBp9Vs*ICll@;Y8A!b2bsqw^q9*P7gzTsjZq|CO~#O{S^N`T_YntQ`=EDNz0 z$yOq7+Xtaf2;mUK2k%vR+t2`%FuDkxb;9i{%No`kHL*`JP@~B9PiFJ) zzNHNg7?5+vGq5oK))LIf>5_7odF4cEZ^GCbgm-pvLh@tbi*4t08A{7-Ckm>3_wf+R zp){3aA?z=W{DP_KJQrPk%8(Mw&Xn5L+KNs=Q${2AE?mKC8%(2#(5(4!HH?d2wEtGC z8%hfQgsj3%wi~=H;b&<>-``Mk|9N#|(Clvsza$Ap5M!?RcCrwDApUjvwZfc00_ECK z)1&G@W+MrGKcOpTvO>U_MkLM;#S8D_sn>D1oRW*-c(%ju;64k3mt!W(=ZjNQ{qv!QSW!_23 zY&BFeNWl^breFTD_1!KHMl}SmE|8J&PjWD}qVPbglBdIFSq1lVVYf9T))B|rizocX zQhh?L*_p{o2rjDqcsBF9?u?|Ey-yJ<%_!Z&-Nc8jRIBSWQ~9&}YG}vFjLM3B(HsT5 zEjw-XD#?A9pAk^VYNZ!iyNh-EMlOr;QNPkp7ReMU?`>8EBXrj*8eB2AqIxDBLFJ(e zY3m}4;rX8GhC;O8g%1=NE&V9-kFG(-M)EMIaC|^LoP{jlx-TFGtT1T|`(Cy3+22KUV|(l^pZpHs7|! z_RdLSOL0i&OCcr}BcaO#euEn|<;IRb@8z1tKY&_C!TRdW(&2BYv9Sq#x?Pbr%|XyP>P3$)m`#VDM#>S*h&j>wp zLL(gZ06gt|O1%nizusl1@M~ZIn{tyrIG;L~ugTM5Edenzo=QAE-;s?gFb9_*yzwz& zP3W6z=(``)oVoTp_+&!yGP_tkct+)ZoArg1B4=LdmGGw9Y>AsR$(g@jsZyr|`ofiI zi;3Xj^jQ@3N{Mi6(8k9n-GLB~pX&!xlT~)ZrAIixu|}nj`RLnCdl(qIgWH)`Yi~6= z27Eh*6voA5e44|zdP1F?(U6zx_rIo27$W4K2Fa|k!+l6mVs}_W77;W{wm#p~fw(;5 zBhLlc&N535qXhOqd*{Y&<4%Gm&w7oav0Q)^+A1oPZ=f!pflQZ-G62`-F1C0P%s$P2 z^H-@sRijb=ke~)=Vt!jbJxwlCmFML%+EkRsa&$B0UMBr=$J+j;qQ8h(`@ z#i=cXU_?=I%S(%mu<;q>>NP;)jj2c0A3p}I_wesAyZ1cBg$mhFIg4JhNvXjbQ$4&h z11@rv=CVR;%1Xaa1T8t7q`V-j0^HrT-$oo5d~*28d~A04vF|HKyb!?z-=Wcr_Zt7c zzPLuITK>@IX&1UHFy+&ycCKff_j!1AF_v0#;_umc8IzhvTDj>W%NVK^+y^_HkYLG3D*W0K z&|A^ss-K-HCA~pB&gAbM+k-KxPpcl((Kv)mlCSzR*Q1$gHNN~(p*+4bU^I#Rn>Vr% zAt6%g1@l{aHuEc7I;;wyDoMX>dBts9mnO!*GXI^@Wy!PpGp>Hx|`TDf}Y{Tm6Me4eTp)I@7@L?DljoQ#Wau#C?hA9g>c@ zj%gNR?6ugowLh(^(D10$y%StK;uKdKb|6C)C4%Z3(`6JHcHLnzurMn0sBP%=-Rfl$ zTI)eOq;hset}C*t=0F{Um!dHThE@o+w7R~2{qturL|%ee+jYzjNt&#a8;h%)p zc4{@-`SV+Z@AE1>(njvo8yy%Nl44_3JXmG#Dfn2tk&3+{Cpz@;1V9U(B%4GuC(|KE z5-RBSmE#J7c*of$&H!ZM}l0k>O68`|cvCKgeQ1~_M zQ2)qaD>*sP|0uH~Ypl0wta~@$Eab%qz}G2g`3Haj@_M12T1Nocp`i=1UgGa5dEZi4 zB&8%v@3RKBQ}cyPsUut3kda+is^J~i9rGP?tAckWv&xk0Is#9E0V4{X3r0^bvN;L5 zjp?wG(g4XCw36K7rQ$HgdRF$?dY?E%KN|UjM(c)H>vtzVLiuDjzKa4H|$CHU81*4oUfR3^-y`QD5W#RA(om zD|HhgQC{_fofxl%YI_OOz1)I-qARh?5{GTp5E$JTN`rM_{ipQFFw?qp(kpN;4d*8h zG9!;OEJ^~S^mqYTm@2cn$u)_Um_Q15!g0jv7>d$7`QPWCpA`I59k`~#^CgG2#`hq2Sr$;!J7 z(%5a;0B#Y+zi8YO94E1N2}Jb5cVkb#qC?UUHAc7LYTdK-^FbVrHRk$@2{+D7P2-P2 z?s(-`XP?PhokeIV&vLB10yA^_fbWdYi`uR#VJNr~UqQPM-iQf&S>b;GAhQ~!+4Iu| zRnhgA5uLPUm_XY5w}tP?h{ausG%8&Rifoa8mUXL(0@%jQ+7{YTV8>OQxELDq;ynI) zXMax2cqv%S{fFSQjwin;ExgF`@D-cmMXHKpEH~cd>lxXwD$qCk#aV3qeaQk9kJ<`g zi?J)9Vi!-k)}B&G1LW5L{hkX=*j`}DW6Ih{vOoM*lmXh8?=Le*-ty45hbYNeFO%M) zZf+lkNmI*~Ddn4bN36(4{`TUrJ%8PL3BDF=O4}UhCY{(dT??JAmADG)sosAf4ER)p z5RX>bb+bzO-cJ3j@wYa*5c`+i#OZZE!ft{n4|i0JH!P%EdH#ppA!glzahJpr5LR+E^``rHg4_R_#tgJg1)tJ8NcrOA?roK8 z;&MYH1g`^NVg|1r*MGB|G6( zqP3jDps4V+_&opYlDAAIV8HNRu+$Cp@#}p!@`Fp6@%;xw*;$NTvswB$njRC1+(8IS zW6R8!mI%_yF_2q^vw^9UclJI?l}9J_^ck25F?=YmFyDY&0*-wDiqrE$WNWpW#8T~f zh^!1DO%#O7Ixfjm|0mDEru;s`3JXn09$wnS$l_;c{LIKQ1;{pnA%X}qMk07qPl7YI z%ucjo_0UkFG2g>Ew{yQ51f$&sm-Ubuy}k1$yG!IO;WTrQuW@O!{IdBU}@aazgfLj(Hz2T z4%pe!&i!3>Ujvi>D$W(?Zfq@lm*PbDW|w(hm$ff>Froeagsq8??IR-@tDbYW$ly#%;r2LFG|8>+?l5ZD&cWhG zWYJ3t{HA+KiKeG`)Yh3I-sP0 zU^lDr8*ltQ=83$--!43vo6#13KlFNx2!RJM!tc=_br34JK2wNCl^*-PstGRHLI1{P zGe9T73A$$3Cq=0|h?vWZxirYD&jf-E` z(hWj12Zl!{zE(VsO92Rme#id>&2D=AYikpY*xHO!yjCU@K@F8xsO|Up2N2`2*8-P{ zxTdI*ge^QhS&P6NoFcq67@6h=$tbNpV@|q^1LUe~g=_|Rm%RgDU;}$pIPG+nLmAI7 z7lvQfh~aY*w-ku4Hp!!7ZjESeWvUC(I=OI;WqoGj4tt@QF>AG zg}IwD{>d0Z++;OZcWr&JIhjvRi398H3!#!Y0E_Wek@=iBMwto>cyD;iVJ=7B?x}t* zSTn;Mi`0^cQrngifs*_VrK_V8I$LFObPHqiesiwGhK6!g?RvT0N6j3*IsNS*jT7@_ zx;2uo`5!=udN!EmR1&}7uIgANi^_Zfdq`_M4(PAS&SU^29l}AvKz;G>3>Me=Ez~H; zZLe!FK>l5KYD0-qR&{nk$#luhE60Uoh)EJn1AEus z&R!2wD)IB|`C!0D`k-<5^*njFnOCZaEB+jWW1d2L?sO|xH%C*<;JL_!u+oPScksK} zA}R42X!+ZrDAW9o#zXy2a46TqAsba~DXd>%+vxdB9A#6*wx}`la%KVjZPRQ2iOTM@ z@1-7``i%&81}37pqcFV!oa!V4D&Rt|6pB^()r|-0WZBp?sNyjhFp?mJB2;Yo7e?eJ zE!*F!oIXt#%vQONGSyzn)%6X#pSD`jB8>pP<+{b=S{aU(>&skBU{f$>sf)57lQ+{5 zWWJNOk@#-I(nU&{WY{E%SAKB`1cPKk&kd9=GUp5YXV%0B182gXwtj?)f@xi1gYiGM zwE)HRatboln;+<6+iF<=0I9#S<=xeMz2CQ>xnsgLy=G>HB%=r?s#NpH7zbq5?~PVhk3xf7UOFw}FDc5CCHNI%juAxVDt z;YHAkmvqZpLSrkl=IHBAYq z;otvWFea4t7xSM9XziIC1u-vJC3Brcd_mF}0196NPS_?KxI8$3eL+r67)RycQj$p3 zP&3?i4Np5on_-J7GezvF=YbA9Cw^I$#Mh(H6Ff!Dwfgw^!FCe{AejI@v3Ja@5;WH8 z^tuclvP5Qy7A?UYQ!4Qe1z&%fvFSdn$VgzX%t>I+`;0c`=}SX|aPRB*pA@zhv$TZk z4MO4KeCQPc%;jDJqwBVnY6gvKg-?W_jKJf2ePr;A_isuFPQ^n`rpAoQJ~uyy{X zC*};W2ZQ+ZZ=l;Sow=eHoi_`eHp+zb(2T!Y;k~C6;o)+_qyBnhxfj37r&slbIYXm^ zw4vMxDYBd^`9{<=t^xD(=4{s%bC#GTv@zN`4*xHIQkQ3L^kjod(cvwkzQ`Q9-0r5F zV24xx!OERbDh-JcAitIDEpF4`jtE^W2o8hooQT^AVi`4PfW6~q1*YS@+oG@7|)GjsWADg&aR1UNWv^jSnfZ0h;B4Q5y^uvr=SOnICZF-10_-7!WJd?qBHlWDjd5{^O!tJh)2%y95?hwo<*Z--ahBj zU>ODr!>{d3HQbusI9;)oj!#F{xN-%J@qYEMCEd4x<}~a$@k*qd`yHMy=<`+!{x-0c z7U)wJmb$^pDB6G!TY=;WK@VjpzOziF1bTp<=DnFu!LqmcNdwHZkCUl6f?qeypp68v zc6zoO08ZWn{G`QS4x_}T|Ql4z?I^5)t0FH#rLuYvbpVr&`GDUh#Mfn^6_{1VUS-+RnkoDxT1AO5mRK8a2l5@M z_xRUwTA+Bxf<#=03W_emOFW1oEiUU$aa?;$iTqR#!)B=q)?^Li2{9XOUUW0QTh)|SKFjOLJBnr)p zfpd0H_J|FUdj7iCgXpzwsK8OTYgNg&WS$Ms%)Ffp=G<4}JXU`DJ{LS``IUM068c97 z&)N8Y3;WKGw0hX2wSEXUGS*i$<4ed~x0bh*+{MDUdj476lt^iEYgeB*RjiiUT5x7q?9$U2p~UG%;X>fx~rF)!CQU z1dD#Uj1?zm?;cb_OmXsxeEXDjgr15)9*g7eK&>~mp6c}SV3%Fepj*#!Zl6LPBf$8= zI>}+3WAUb$r5%Eq;XZ1|>9~{KIGL%7wghiK-45B!)iN%=X{cKJK4nrMQNeYtGeK0g z6LEV(g?ZfX{K#}|itku(k$NKJRD8-+VyfUcgIu&*kp5*Wj8N7Bl>p*<3SCo^R)X93B;7I>cK!h?Je zmvA(no!bg(>aMU4b>8liIQMBUFfZQKwN)UarqPgZ8?-t%U0N8q(qBD;{rNSOc~X1Z z6MZy}RaAeU4FKOP`>Ni_5putpz+lALd~=%ekm*4Lh|Qm>z^T9?&{zS=*np`zpgg^(7WN9{ z;X2g8uMjW$uX>C32}G{^4)8*La0~W3rq75PpfF<~Gr~w9d#e)E__uy2;Z)Kzb?=m- z(MHVe5aOcsKam|exvI4-U5%ZP88XgOFP}HO$kUFb;L=7pLxl4{UgrzSJ7Ezrssk&W zVtwSIFJV(N)6zKHeI`OY%m+P~EAraZ&DW*V2;~J@PHJ_oL*uO{yysQ&2l-|)3AGl9 zNnc0|z%ohUod%=*mOeKQUnoLV@&5YXSf|(6VrKqMa_t`u26xFq<97LST8?9{Vju|a zZJBjLQ*$yIbEpV4$;KPeP>tHy1liatt^aEt6fQwQo3I?-(rUM>%Pc>m9bsx5F;Vi8 zM!eFnR5ati%nAjN<@G}iN80!=@r)Yu=&yS7$<8DYnvws`7eWes*Eh}`hgz9$fS7GY z9EbznAihsc&?e|r;3TSxPaT=%Ql6t5!uBEAAn@5p>(%_ud zLBanP|IUBYL`xzycTsSAllg}7F#bKu@qb6@OvD{|AIEM-FF!-yp0QN4*(f4Rb$AWX z(B?mNQk}PIi5NL$gv^h*{dTSUxN%C?L){ner|T5gP|<~VZvr+PCNuySfBj*!sa!>0 z$mvJP({m!7hZhl3khze`^r+8VY`s`roVI48MTb(3ojrd9cvm^j(noIH#5AU>Csxft zGuqtb@t&RIWriEoruM+kx&rh#z8B|JB<`7OSKrnK6pPEaqW>T4y;W3O?Z37gihFT) zEn3{I6avKx6t}i$io1KEXs`k;?jAe@m*VcB4elBW6f01=^Zwtp4)*vC_QBrcTl?TU z;(#$2Gn33`&S(Da>%N5DQi+z8Hb31fUiSf3{!?Ss_LJmxSmSKNnBA^pk#lQV3rcs& z<>dARtoRq;aK=M*o+IsLs&jpnIF#*Pp?Kjh`D?<1b7lCxUY%WB3B5q7Z!1hXfH%AG z91>l)MdwVrHvEQk8Y8V{{)a3M30_2~A4L)$HsFe4?*CLbqGUFha(eK+8|@4P90}pb z#Isk*P+@oBJ@`IFY#lizWGQn_w>gx%nJ6%Ac^1>ze2!;1NUsSKR=d$gCNK=_+*~r# z$6X&?)Wx9!ljP4O;xDbptnd?=#l}oV$j08F?;|LHD${E#Y9o_?fX|lpsd+BzA`Yvt zvcRo;6GjR+(*Ps+9MqqUWYpi0ek!uyz0`1vXWUW&vD^ZCd&_NPE!P7(r08({$2BZX zhEGK~BbEQhX9`O;-Jjv+i_wJz3W--g?9a<8196+1m)-53uL@x~)!j)GAh!X;TXK%& z-CdoZwpt1@vgq$(oJrRtblKf&We>sH7s67*GzTAAGDEjiZ$E8Ow#@LQ`ZP8WQ%n`T zRz=GPjj8^g(qU*=7X>U^kg4Wx2}b=qQF+)gwzTliiW(e9C7>?0%6R|k&-FI?Z=(`* zKDQy8^u?#%c9Q7lwK6J^1Nygjfs;OCa}==opbFb2U%&i`Om~{ML>p}8f0VYx;AN7+aNb1GNRnNisZhIQO31G0n>p`&f_ahDfoarabE1T|P}<(oZHX z_0Lbr?$7!dkbsc!(>veG;4)z)^z<;Bu=tLjjvkrAsCtSSK=l8%!~R{#{u2{G4LL!s&GCz)QF0`|~v1K(Ug6U85ty&(hqZx{H^ zEEU7o6Cw&Kj7HxLJrBg&5ir%LBUdJnf8L$+qG|Q|etA;qy~#Q?$+y>BJpOhE#0*Ll zGa%aFkB?$q4UNz^Io_8o4wL{9n$|W~aZ72p4nO1`iTQMtHMDuLxq1Fljul@f*ZwuC zG7FjMmHd(+<;GejJfUJ|$9um33-*cQY^Z4qj^1L19TpCBCTC>GR}{a$52e|33KG!DPS zQKrCRH9)n;ocPsY?J4qvZ?B_09pzIZNL3q-dM&I4@E45nuGXS6J1cBCE6LJED(zcA z$DLhVh*MZ|QrMn)GVh)*F=%;7m!5VbrlY-aAEYO}(k!@sAYEpc991sT*qj09^WV3{ z5<^SWt8QWa0gr9Y_p7h|AU7ModhjFVC&fuJ@27Jo*Wi}5W%}ra`T>_H) z*L~%K0aZQ;n+=gHms9S80ON+{bBdoy{Lqe7PQ=(0FRs&A_PVg5$>I&5GHC;y=4bwg zlj?EVCkXK->&@ei{w@4JpaRr)*uKk;?X!T+gwE%-{c`N`ASV6)e~rifhsJdTNu;B7 z%0=T`(FKk9dWL!_YZ)Ys`+EmK$-^n${MPuvHQpK9IWd0DC1vob2;t7LA6F<}f+T9F z!Y3>|jB21=MgbBx*S=YDS#~)si#y`aXQnA7NpekSY8A;n`_ivNaj)4=5Ys&PZFQmRwq*U% z&RavAYN)T`fVZCGCU(#>63Zp&4)Xa>rdUmeGBj)WO7nS4RG~}P`a}e7bJomYXCI_E z(#n65k91@=vgGY)&DhuNNczH0i-K&8hZi_kD;GB0sMtTK7ZTDLovG%RFSpg#2Yv+U zuroEaVs?GcV88q0*o0T54tS!ijjgYt$Y^A}56|GWw9LH(%hAaI+FIl|v6 zmNp?`UFGaVVC3$)kfCIv9K-A?6MLa<{LNs$ru#@oVlT@^~@8_x_Sz-Zzg`$l};2HzaARVdX zWV{n^H~td$8jw^#@lQiL#W%lCui=+6pi^%JDq~Y_b&hC!XOWxKs$}un-*ld~pRE~; zUt`rUa%Jsr@vld3Hvi&xc4Es5Oh*9AKX232&M9CTkFtxbe8{?*XTyD}RXG*LIQ*e8X%4kB z+3z%gtT|Y#W=v7`yG2JCx8}k3>BnuxD%-L`eS&F&*?zvkmvs-)?=ddjW3(S zUqE-13TQi+?DZ1ASNt;p`_?wFItl#8z&m{!ju`aT!@S}$RS&*pQ+c^WD7DwsLUgRa zA}oD^>*g4?XGj^cN@&E?GGoEiJ zKr|H>eR{e!G-p;_nM&vPxj9wMtqR)%^$6!}MRDtB6fKE-&lileoRB?7(%>ae*Z2ta)`N4&*2%GoYNeOV;{&T4lOV@iF@0h!UAVr92F%8}}G8zg;C ze`hm^LRP=uSpNmU54h1Si}U=P3qj@Stg-&~DG}jUoFym{Gz*+qys9|4xsJ4OIbmuH ze>=ZTjrldA!GMMaJ>TUL&EqkA-wJ5||a zxP%dP?$z{_n3;co6s-Ft4d|{7lWHc@HGkBg9-gF$rDA6K48|GOBuOT^uIjHe(Wx*u z2D(LGtng~!N_y)_Ix$uS18Fe4v2uOADRbX(OguWO;GKG;G$)2HAYZFLV7`5h8dy{~ zJo2`5$CalTKV7+ zK_W_?VwXd_C`J$!3RF-D^s?9w#M`3ln~KD)Ooz^!)SWsQMtUHKN4?PV#`Z|=csEVk zu=kSm`E}$ij}mb|2PtX!OvS76o#ISX1}EFX-vD6>yqht<#-^d;_+FAZa)kLzX@_>=3>I5- zE=rp=j6VdY{dlddCSx`3f&T0iZ{wamZltHF`3%pmY0zD5&0xoU`dTQr2ZWZ%956Bw zb`Sp)(R}bAwV5mUvaL1#US~vtY{=ZzpE@I@VIgrsHRLne931$-{!}pjFJP0w%eK{# zB#`WisAKH;_3-%BD$>-K>Zz&Xua!yq=LO@VY?ua&J7>I89Ou#Df`b$ph_es6@+sHW zfAYyJ9){kk$s4-}jTR7%4`y{{5l4y1nKJQ>+q=y3jLwcFARpY5hKl8d&K^|fcp=t0 zu=X~dc$XzLb15d@$m5{^yUw1$3|d0yT33NU(q^`i@l0Q6rNzlt!{wm4VENx%cJO_6+)rV|M=V8ddXxAfKyPwuWQ1 zNoQu9iQ;>oY8wF$;AFyfh1i@?{yGR|iGS<8jSuUw>&nwuJ~(BQw6&j3pTcI_z5ZwO z?;QHA_iR42sQ{iTew&pM3>E$oTVSu@`Wy`M*q>XIqO%wv_J%e`Sl_ znMfJz@Wm+FXc#)}ad$xXNKP(DRYY$qt&>F+Eq5vu-i91o>JT5oJp0|rQ#rP!vZ)JmhF@gdbFdV`Kk3K1OM?!njb z$1H7ufxJb3?iN6;pRb^BJ*;AHjaJ_c=P=CR z^N%6s%~K75^84>)ZcYMC7G-rSkJb^C^YR5VKbDm$CLQVPhvF&*hLrj}JR?zDfZf7X zpbmvnxw$d_&{seDzCbLc@Xz)(Rh|pz(b&rjM^}%q(nC)~UnnYR!oN~PO$r2zph&Za z>#I5*xKs0W{Hq@YmS*dOA%xOL%Wpa}ywVw{Q)?|?0yuB`+b?8{?0Sfrae{QpKZv&r zWIJQV$yCIxDvyf1cBNBIx^I2iCw9sI|4M59(Fbkt3qFu2n-7RPYW3 z$q3{>%`}FGu;YkLYUyc=i2mlcNap?qe1wc3h;XQBrs1&W&oiC+Rh9>5$B#T+;%9tm zvT5V4Gz4n+>2LOvw1Ju%8|ZVq_=BdG-8A!5Mvkt{pfkyP2hHCpL)x-~4A*(Z^IWoT zkCi^Oz@Ir1q=wT6lB`aEC3`utIg;8Y-O0*I6=I9d2G`@RaLe+hG-4me-#L+ru8?D| z({1~h(J1tva-(;ENLYoNoK-9a@}BeNpK(G%w*)Z{+gnOq>Q`2VtnmD7M-ktVDUnG5 zn@}y4d5tBf!bR`wd=hoMA4>M_UPpY3WAx+5oPZ~Rw9px&oFIJ--=4ENMA6*NCu9?rg+a@5 zXhn$m#tk~-Z2@7f;1G%VG2&=-?eGjl*~CZLq%K{o&RX}=PwtHb%@r0*G&uCt(souZ#dOsndEK-htMcr6-K(lhPDb-y$@Tr%2Df|(-pL~a zDD}qQwtj_4SLr2iyfr4F>`aP# zec)4tLUjq4QbqQ+cZ`eq5KBu0Xb031{U6KaCl-pB`#FiTf}_B^NcM0=dWHUG z;RjSKCM2hivyiYoZ+Y90K;eATGR-)T{A@>_YNmL8JH7mCZh2elyXZW7DPINs-vCVK z84L*{pKI~PRSV7JKGIWv`VH4l6NbCmG}e^qt%-TccNLR*k*XcxyjKF%}+uN}hb z1#7N6?2>l&IEqE%Cq&ft$sWY}=0*vE>`mvek2c`3y_4bVADTW#_~I->SX)>jE?-X^ z&}Ft5i?^OVP*tfuGNGy}32DEUE}*@~sE(j`y~8M->=uf5RD;5_gI{p<(DI2Z%R9Nz z*d*V*1J5Y@%-Vm@ci&87-?|_DCLk!S39y5F25=xMQ%m*%a^J%obzv zT==K}>9UjC>w}7!cXYJWLsR!I{0d-7nW=_&1%YYiyQ`;NTauQ97!0hF;Y^53H!`-+ zC2nov2i)@$V$+r8w)v|LH9;1GJdWUV(UhkKVMpiyrJYCbfG}B|Z@w)7?u#d(o1&f3 z)UKw_;grwVZ=3+@dpqHtyom9Q4{wMVk#9yl zwr|UP1X)n8K)%dit@=-e7q+z3_`&q0Tgn{?+MB*LAT-&Go(`p?s#&c28@ss=`rN^b z|D+XLSm8`GzRYir@lI9##(ZPPObmIey5Gx)*L<(l33D?m41VEV0r+1yAR)JAo4FP1Lf8c#ABWi1akg)1F{y0c!ZN+G z7GeYA1^GMX5f~+lYL_2`mN^PqEV*FR6+7U-q~~jKWe4quADTa3U*X?m*AJ-yHf0%n z*?mK}leErSssjtBy_mrWeSnHr0{f6MU-;LrO?h2X`(mEoxP~MGh;nQELd>X}$0w)% zq*sky{K-YFm(Sj~^Z|k($ua@>2za&Q+0Sp-FTikQNuc2;oi-eEi&aTkAtoPHAO2|! zvIu|l`m@u|q6&ndtk=wcz;H=ihOr8aM=s7V0Tbx5X<;`Q=Tsr~ZE|}EMp)>p9a-Pd ztw7f_Ef_3PMU4Q~9%+Tc{#xX-or)IS(3XL`#pZHCMPYDV6&P2uSOA{%!e;zk$dT?MM3z_Na02U?5V$($vb-i!-k%iJ#4S=z>x$roM@w0?O`jQw?w@ zF{`*N=hDv}{Q~(V7C?7LJ{3mP)Qy~Eo|^ut8e5@QA!B5fU+5sb=|CIR2x~F;n76;% z5?uPRA=HZ!KtXS_<v#=s#GBJcVrOdZO%$AvJu>Fo)&?MoGw~(ZPJ~sc=9Q5(6!5 zvGvk~Ac9K>Q`lKXnf^(j&7BdW^|??}#$Uhy;tCvZOTBV-Sb>ZGxG)!a`TGr%vLdzV zX`(2j>};LsjlsQ3$1_+eoUXSBj*-yeX7QZ}OU5|AVgJ=`VBd_eK8223VO1z9U$zG7N1;8F7Nt){k`p0r^nVn6PO!fYqK#7^k&P&sLW?|oqfdT~4I z2Bq#?0y5yxtC>}sZN;Ab96{VFwl6Ia+047nber`I$$@G%kDkK3*P3Wz*tJ;Z_@36! zWp!-v=dqOWYl%jMB^!6#^GVvE3F9-8VB=H(!zjfRsGA<{93;gDzd5wsq8tCz(`u*7 z&d>W7FwVvBiYH1lf_OaTKv7adkO-xhf?QH2sm>1~PoV@@?oN5u+@0(Z-$&`5CKc4~ zole20w?aRqA`sM6_u}_4$=vrd0fzR`qPz#CGoq-*3%>481TdHx(a!yw!EfAG2nb64 z87>GhhXuRbZ`tJ_qT@MAe5AeSpbH-U8NXcpe2`90h{rr?&=|L~0H+_Kz|hhoUn8Fu z=_u&LwQJ*+WC_8nL^0ZY;X|TTEpPuLMPvQ>S~=vf9W;;3qJjlQlpWcn1&%gf>NW%X zrp)NyCKJI?lU^K`Q^UE%eXk4^rJHw&C7#PsuhnZs%;92fJ8`(qSNuFvZf<J|H!YA5~ z36|7Xf$^jKD+!_>=6W*Lb)yubeD!{ZX#8Fdf|Q3menAcKcUY;Y?rdn8J|-Ww^9jX- zHlO(=5IDmK$LT}Il`n4Sk`xKF1ohf)W2+BaG7Tp&Ya^Mn4OOX0tqOS>hz<1c_sgGI zxW;+ONesX%OI9altSJ0XPFXnY!qXgt*@(UfwC(4>MN!fCqB#WJI`&#id__NX;;5B4 z9h82{Tfx6kXF7K!530A=>F&P0ie=&W0vb05=lx>eRo}i&_B*ard#Jx|lKMEm3$+UY z$J&OvZjQ_FyKKoEFN6U-xlxGjb8Q@&>A5yDr1m)Qwvyn*GY0Ud-9cv%t}oXV2B7*z z6f8OwF9SrgH&Pz$^KkM8Y8l z)69&;@V1|{egWI4Cb?i9LY;d#jucvd*%TIsg`GNfYj&dGu4Bt}t)}LABkc%G@Fd#> zoZ^6LCeTQMsoxd5Om-4)Z3BFxIiLR!lm(b-gT`U2EXs4PvyE($P?||f2yFl`{HM2d z{q!}&*GW57t@Ib_R1!;TP#2Tt7hxBl?eHH$!!+{HK$H2)I$X1|Qu|FUaSQRMA@CL- zwWfidU#O(QTNyBs6wT1H5XNDSU2yr9da;eO&sA-q5%oJ4a(1b^qG;55@EY6N{L|o5 zo&Mmr2|IjF&qe0m$jK}jcs^M*(?IWxX?&)KVmqP(qv<10QH~Xr%~d=E)5$>Oo29F- z^EcwY(vXR;JK46h530l-SnlCzg8){+7>pxaE)&D1L(DY0& zrddv=@0-RSYaJ*^P|)t3*cc04tu0$bu#oPd0>0?I75*|}efiKRVC93xy4L$9Ht{Vt zgNs+&_7Z!k0)q~*|sI1_(I&px{t~Yci5j(b{=TeMO^W(_g`ms828;FQ(_*f_$B(O z^v$gtrMu<_A(ll$bs#Rv*Og;~G;DkO8SL+poZcFcZ3X-GTQWDy1p#ef84|xBU1be+ z9l$Tccxk`~zF?)k6X^}~+SK39UehgWs%OrMbE?>1#&piY+EzT=hdcs|NVal0kIhlV zm^H^K{<>zMCBgE;8l?-fG1s+mFu|7ttQY7*I${T?ov=TpAmBE3S(4UySSkOv-2z&_ ziC>|!D4k?dQjmxZCC*=f=eu|NQ$5@pNn(w`A+HWQMR=ySd&o2!YsNWh^S-^LCjOk3 zEQ4+qpmt9jRg=YQ=%b-Ford#z!Uv3{Mst_7AH-0FIJT5Hw?(GOC^t@V{$g|ZVPU8> zW)Q}laKVk<*df6>XVt)`); z6X(~i{*4bTp(<8kpjR~ z2osihKBZr^?s;;An$ut-C_|lR^Q=5*AnESF=P#g_5Lj}k{}*6y?&sT2<*8iQH33E> zDPd@Pylr_rpZb}9S|RK5Zh%Ung$ehnmCeDD81F;2uI2}Gla;FQ8BgfKlYrbY9ZyAu zwZc-fqeK^h_|B&z9MA1{Qa-H;$b|W$m$~`()-aGgzEX%+IF9=C7|HLIA#t6Ro8#+a zM6zNwdSjE=Naz`WH~ANUPc=Br&QI&_!%N5X+u@14aiC4g?Q1NR=~xJ7TORN>#k%~P zjje`C1ZHbYWV9hEC3^(UeNo-5jLE#97({hwe898?Dy>34ukK45ljhEh!AlG9JCKyW zl^i|GXz;aHh_P-u>n;zNgsj5ynNmotLtogWm|a482oR3SgNWFh5c^0eUA*S`3JkxN!%M!REc3_r!V+MFwPVZRV|0}Xa0 zs?S`Y)BDq`&AE22b3o-DJ8m)c!@%%bLh}SlbTiD>N^kh-(?-)-aB2Cc+ADq0U*mlB z>Y^_c#B#?QBjojd*hx;g1-KhG`4z2ebvC-vAIu}H4yPtvtIU>1#i}#(qSBK|vp?q) z6Gs-o?W7L zT|GLb#-QcCMjmgW^=f8KrK%X;&_cJaoS1CI)~A_SsCViwp#2GwjZLzEXzhO}2=~8q zWfc3drW%*}rIf^^(NT=PP$eRE!KL8%H-)0l9{ns!JeA!i5mso6?f4eO5kvsDQ7xCu z;yy#SmS5N;G-zV9V0$>)KKt{s3;%^CPzZQ+;Ex|`EN83Pwm0!P?|NYt@jds+`$6Fn z$Bjlq(Mwbq#=MbmA%zwF`af&I(?Ap#LGmY$VOAoI@!em5p-)m;g8Shx>M&lT8JyHO zdmV?ePOV9@t{7Jd2oG1vm)vlr8KPo!8U*^>Cf4dt>fIQW`q7g^3c^7DjYkAWFCkGo z_5Fs^8uFCgtm z$HQOjJ&N9_9~6$t5KZRAMq8kNj>0!^u>ScgBq@<||NZ|jY-@&feeCzf&>v8HpITtc zP9GV0p!(0TpdvOJG~ky;sz)`##GBgx#YLzXsNfawgogoopP(QXo-RlfB;_llKn-Cp z{Hix-PUv*FQo(Y?0L6ineVG|)B-cB_iymgCx3NECN-oz`B*@_2kJ?P9*iL!XUO)2I zk9i)|e&FN`Uz!_4bY>)Dm@Z+(3c*qjGhdH zpajoGyp=(!XH#G8J-wD1&4EtDU#~U%IRW73CPofY+o_lquyc#}{$MeL#@mb(pqt9v ziBIeTMQ|5zvQ22oBL(~!twY7`Kss@%x_Eib^6&z5Lt5$S$ou4=O-6kfb!kh3bE{v4 z;qhYq1z0XX>TIFS|GXn=qRwT9sb#Y@_$&S4CAK=Zj~AU3b9sLTt>HLj2`7XX(CwwF zD2f;5T^?^81~ERx6P7Q3M}j9{~7gyHefnNa#?pI!>9qVU~Oh$>2 zDPHWG&euSBo#l^CB?W4gp0l^_6or^y2vKgSO^4_n>BCX#P{ixFQI)!|ucz}o|efN!wj%MNy zn(erMZ0-NO#tyVCu|v;uqhrooqwnTSQ1ObP*~Zh=6XjaD;T`~;7fN;>gOZ&;=~J>! zNOi-8qioX@FBlxP^9}P~X|z7B<3$JhjCIe?hAH?552^Z<9WO~xhA=MF*8DKs!#ClG zX&pN?V7Kw5AxA4#d3Pw!UEe(?nq57ft-%XXrQXpn5uozff4vM;5ZZ&G4yo<;gZpN@ zu}et@`~;#^)2PDdIYFvo!%k9v5#Sy^!p7kEVqO1}(JbOdr482li**$}?eoeQjW5~= zDr$v|6(-7ElSJ$|d)!Ua47UkC$#57~Cm&|i#fZkZvtbMbJ6eX}J*zz=6&V?eDdzaH zfo8tD4!)GMb9AIBUHl19I6#=&?Y17L_V8RW`NaVa9cmN^j{?>zDOTF2qP>zi25X$9 zU;Sjn=5J0W@*Hl3jG@@BRU@mpO9kHhSLgf_12O$iG*T7_h#UnJnEXOE@l8i7EW%#x zEoroUwxK6UPXObHqRs1?ca?+ry~&~3+Ot>H9ge9TE~FzR?{v<0N5=jLJEGS2xT&R| zr=k$78{L*Lb9G0WFa4{t{%;i!JVbKm`iJdNEs!$PBXQI_qa|IwS#hECcPWaL6}6sy z(tnm>E@=d73tv9-mnCUuGQM5!zjJz(WLv4?!AaP! zI$PCPFZU}I=LQ=J@Otx)e7qey?@g=*Ccz0gsWxE0O$_BHH?)}QvbU{698v`qW}M@j zj{F69*jaUkUB7+q77#h)=AOSb8FKtGUnydUA}?53AG}y3r>SDxL9A7P@{qmaE=WdW z-@rqiuKe3qqQoa{-b#?ey>DC>J8e|l)<%zqPTR6zxnpgbqSgqhjTDYJ6(Vo~USpmT z28tlP``_pu|CcBH_Z}}98cQ4bn^y4CJ0I00C=Qa7$4#Ym&z#Bo+aKyBr}t#@xpPZ{ZP$-kc2S$v(vZ#PXE#nH_qFp{IEg(YQOgu>r{id|( z&yefIuT;>&=b_THTcj5p#&&?|d$qStG+TBXeop$wKSJvTowpoppoThh`&);zDe7tZ z^)krS_gV(X)RV;;bfM6m^Uia%jjbMg4?vGq=qt9?;ssF+gedo;)SG**(59?C^^(^R zhNjQ@9oDvA@>&(uoxjg5UC~YIZT0KU$#PXqR~W0=B%T(4$-RarJ_TaY^!DMYy)9p$ z_O6asAoeSp2I`Q7eiJKBW0&P3F zp$G0oCl|1V*uoLbUJbdH`f15OS=R9N^LTUc6&refyPLLA7}^>LRmJOCx4B+mrc|Cf z&i5C9;AN{uPrx)_-iW|ieW)(3sUtk_k!P5JT&_y1m$YcMrh+sRcENk^bt>7$goD|q(0WK8qEd9iqC7?@nTB{SjnHtwLoLQ*$P*UeV-%`62e$*o7 z2c-?5?aK#uM71-5D;mzM#%vD~Rd{=yQnglo*1g?Nz2+^iuKaBXUFmqnEM0}YSiVFJ zo9}?zkdbZGe%XT=refEHOi}y=8fN}nb{z{#%sd$id>?)s&b!^sV4bE{uOCTxlsqzZ z&m+^(*>CieGo3CvbiXH==ZECjTQ*(tW_PTj>$LY68=g9PrRoy-VDaD%`45Y|zq^~) zY|Og8+v0UJHu6dx>oWkhiK4xatFsPvtTa&$w0370Y#wiydXIXN`Mwwj*a=}B^>*Dn z*65%sgSJQNK`(Z7b31m8v)Njg*$9m2w&Ry2iyEL^x6v*x?-wDm%W7GRw9K3q)6mzg zyrVnkV5Qogt)NNb2#eG;la+N7XSMU3_%G9XiZnyQexnqz+j2nT)N!qMn?}uo5aaIO zwVPN#GR_$v%HuGRDNKO=Ie7^ELMP1@5C#`pRduwG28D+DdNojf_c^~9de{bsq#v4! z=ToMm6fkE6YDmZ&hwgWtaC7_ko=uU3OB$zq<$2OMWD)G^+wN4*XW6*Y^Ih&6>XPBfQUU1yn)Hdkssw33FT=>g_gxpS) zESwkmIVm~8d7H)Ea=h@^r~R8|MvL$D`EqicON~v75%oraHw{Bq56`b8(%L%j&HJyX zVmg#B>sJs?fgfSeIISg;O2Eq^&9EQ)^nZAl900ZWTNKFpr69U;bNNMQ6IXU8Qj+%= zPu3!XQWElbJK1?M-UH}U1C2;F?FEB&BRlu?*wN|A_CrGqs1fo%wJ*`&hj*ON!sQV9w?s(!w51&g{OlSEkAC9{{j*{r1NrX9M^a<``VLY>dNagwW*BsOwG&&*f=$La>s^q zOU^upO99@x#<$-bD>&MhL@QW;1ZQTTsUelq(ltx@0=z@sX<3G1t*ua;Lqtn82T|{-evHoSaJ-o*n`FsLxVFly;1WN2jkc>hHdOya&V2Xwww4>Ek3FmdUE0y zD8QoRKX<^=AFA)oo!ZPk+ZpuU7ruIS>4dg0gLzD{73i2xy8cpDHtTDq_ww(#iL;6X z>f)h+4HoQLT)w~!Z+X1#?nPO$q9fYRhjP1%C7$Z6zCs8 zZYQT+{V;%A*kT(xs(XqbZV?*APl&20))1$5;A4(Sa;Hr?RHQXB5;8$(c?H>pdvS*%uL=O7HT#aYfLSjd*BIasBLg2GRKL^th4Djw{t1)_Hk)&&QE%??n;Y+`Cg?$$n^V& zahf|dlZ*zKhBLJ&ig&~}&oNi9YqgxZ`tB^GNU`a_i6@b@vfBQ*o+3}ER*z3L)1Y&uB zNX8?<9hr4dlt&XEQ>sqj+;CklW9%b|5+BCGA0##z2>EP#=E^$ajxJ=hmZ(I`DeOn| zl$*$Yy$z8euOLodfWQIgg+ZuH2AxeL~oF^{XW61ef1ZhH@ka&nmiw* z)Y_fsr6odPszY8;M;B3(AWY3z0KP<e#ZOq6J95)DM3qMeG^K`*3Ha=EFz=sHSp6M;m$zE8b z@c{u|40Q=y=PwOkt88X#fY{SxT3hqnX<#}A7*EyrQ;8JX9nl;(JCP1D8ha~PW;GhqXG1OOn& zhr=8{&IKt{BaT|`hT`jtHQu?43pzO?Cw!(lPyH4;PSWJu6lM3bP7eUJbekvejP{To zzO=!o*#lG;K^JI$0sLw|FDU}<`{bWOTiScN<_i6ajq(h?u6_&8;37~%2j}wAZLWu3 zqHQD!oc;y$x0|i4vRR0XgXpAVsoQJSrt!vvkcz~&{#y*_8n?k^D&94qmYO2HQT{m= zjFI7Fo$gRtWb>-tut`1mUb7?m6s~!a!L?G(;9sk;S(Z|Ul67O3PX5UU?KO5=jam%f zB(5`l>p&??Ulc{@&T#h@5D^cyqo}-Qh9~>Fsng0A0}bCYj^?K3ey3uf=kwVU=7i8x z8);SF+N-rK2waUzw9Gqw9m)lj*YJesu~}Mt_jvx?4b&|LO&T!$3;5Lee0hRj=7U6@ zS)*`2&bNyal6IixQ>EWJrEd?`aObZQ^#|QwG7?H%NkU3kjfC5k@mgkfGMKvG{+K@7 z3S%lZ_bdJe51~B^gU#`~xFAa}_UtqE_Z1mcz45+`dIY58iL7<8ev=ugVbOZw=OVD^ z&R0KRttwxrA+8|3(aFXEhi!LM{%oNMlCu4iF;Rn);Tt^3OtV3*b}NVf9BCQpzMt)n z*^r>qd?Nhh4dV}VRA+7ex#?lXYXBoJGae1*@Bc9rm#vX$H!h?gyidL1RXaZ<%`z{`1aX|RnDnh(HkGZn z93B2K_V7Ixn*=Q50bJuZY5Xk#6TgeJy4}`q4>x)5*9>hzFwsRcM9ULlhb*9peMZ?L zp=y^&6n>tn^^0_ma;J7MBUlGxgW3kt^^J8(o`iQD5X2fy#@5cR))7zoq$+$#F3NxX zV~}8}BV``fC&LH}ZCvk6MZsN=83_;1mF!brf&_Z^88nNbv?5RzLm_nTqzD?8^V>ZE z53qNoKz7SzvUuq%uJvMBxAWd()PbLFiew@zS%XvY=hD(VyZvf#2dY^s+h`ujFOC>j zGHQ&|Xiey!c9UJgV-N~^@`;o*QL3-tF5+*Bab0B!&Bme00lnsUU zt!L644eVx-Q3Yh&E&m6G^^q{cpSj7yYLP2BiM@X8=!PrAa2RD^sPTD4Y3me)(vX&EwNBC@rUtpKu+*4}a4QnFWUR$%X_n_p=B8eRab(_pX?z2dak` z^3y}w1x<|(|8pkaT7PwUK}W&GjYHB7>oiV=?=xB646qr>v|i(!#O~42D9#^5%I-*0 zs6nr-77$y29t{-onUS+#xH&{Q#z7|6?)R9@h3R@6m$et_+8U!3Guasj79HIJ2jH*? zPnEMPKK%4!2kaF4pBqzXCR~I?s8!T-I|;DJHV|FG7dYcMR!eKe1vKTsWweQmvIx@; zWF`;3J=k<_*6yF1=T>px25FO_8>CnYZLA-&RE^fmbJ*iYS~DC*(xM;xNL_avfFS!i z`d-6aD?^bX(^s>o{Ni;*qM>v-?2&~5kz657sA?wy&qPRe7~fC5O|VL~>CUe}khvdU7HOx89o_e+bg8wB3Bcg}TI9Kw2AvvFMRmKuC z@F*7+ynXOh)en?(fFLft*ZWZYUN)}CI2}03h^mNj!ExgN=GWwCXCFJA+9^PK zLSP=O7UjWWO7VbFvd*V|7eeiD9JN@cuiHI0aX;LpBZR%)Bb0Vn&=O^?ZRS(;YLsH9 zO4t`80QcaASQ2}bq=JYmcHbm+XullOW&%0!ehnQ}vH{9XJ=0g^<767scCvC6o`}!R zzM!At*eGN#Q-Gmd_8BrNFs}MGeAu$^?Z=wlJ$gZE^+e+X@iPre_@r5I(}hj7mC8f? zBT<#Ya^~mqN_*qzMx~KI{X=bXq+D#hb_n*}MEy9{@7^K3Dk1=3bOD`UM+1S$8-^3+ zx^>JVf!l;W1!rLvu;?+Rol1wP*SBey{`r20-OY~}Yck@Q+LYVfm&vMJ&Vbs^hzWqFdM!-3sX(<6djM)C=GzM9;CWdG+ZC*lu%I2<( z*C8S8eHrn^l6$s4gf$^T;6%+VVW1tC){BNKs_Z zNsw3d?#P$ij=|vIJnVQbo`H)lyAMKVNSY%s{WVLY*KKSU0Dh`E2t6A8b|duJ7xh4s zNXOuaC_Q$x>_{!Nd?#8E8~!zxMMel8Ss`7Ujn2Z7Heu@08ht9zfgi{wB)Bt~$%1M9 zQ`tTXxmF;DKb+%DZ3~307P(vadwq}Gc5y}2mO~(#22yWG4M;6CbzOSmNL50rgTz4^ zdW^47HlkCTUteeN?5Q*NWmz!=mkz$E5)H*Qr_c3gCsEC_6nIbn53eVnWZhaIeacGU z9b2OyOC7CVe&y*~@^;n+siW0|`Lu!a(?q+?aZGKR*?TeLAj!n&^oOek;}+(u)_%Ty zz9XwwB{gg+s4f&P*%)e=$SYRO2=<4bwUx&xHeOZ*^KZ2-O3Yfp1N_F*K0p{N#7>XImdR9zSdUL2e(qxCbS! z-{%`I@KQg3kC|qw%dqQ=v?`HfE`V7HRp}a<>@#Cm_lpPXWWIh;C}}ru9a-6GCy=3id4+13Ml! z=8#%g!&((La|(Jlcye2ff7Sz!#Q- zSOgoHJpCpcdnalzdEpUbWs%Mta!b_7Pjv?@E-Olsk}9qxJ1SIi%-s}oyAS_eE0e?jkBr642?w|Mm$0^UH! zyL*`t?V}96I0Xh0Cd`vrnj+M~V~z`3poH_=6-T)&!Xx_VLn`QsKI=pMee`A<_~Vm} zTa4bCq8sAQv>e3-uRZ4T1Yl zYW&##^Ol%amp9pDa=6p2?D7LsAEH$M9W62;Bnw7}c$z+dA9ogZd1iaujeH3%Z-tfW z>-Eev+tlP$4N|(iKX`L3JkaYbf)w{+h-hV@UZ1&i@@3&dk3mzv?2{?E3fwa!2e=nW zHJBy)WFO5MGK_OXhh1F7<;s&=9pHy@4)kuwo!`1?kd=DnEkV{W&tZWHN!W|lU9u-c z95`K-Nd^PVoasZSS*F$CkGC*0vz-JDH0qIk5?N5iy@mgsWfUzzsuQ$Y*}v zgm42>cmv>Ot5_FeTG8g#kQl;{18UU)<3V_2p*O#QyMmuo->@$(gJ>o;r*vDjg#|i57Y@syagwRbEW%uzeKQU zvh*XbHHU}JEiGxU@N3O9q2&MY6NDQS=}Hf&DxXm)5v1=ZR6!c~yglh|8!PmdKCszM3~#S#Tn$t` zKs7QEJ^@f*OXc4jHo~Ez+UISNz0dUl12fE@PE%j#zKj5-4xEzTdgQl1oXf}MXZlJ_ z8>q%ECo-!HBureMF|SL3oeugo=3C3h@nCKk66(X;sXKKYt+2=zG)kIHg7Q(r^9cW{ zNWIK`>@$2|-Gs&hd7qZk<9yzv7zt9K@Obb^`PP&-<5u{5Q%X5$MPY-Osjb#-9-^ZM zA1*MLOg&enz}>PuaD*!HJ3rl7@vTOvM|)@3w2cRcqr(KN@8>l|5TV{*)M zqw`!UU?MIbntYtGy#W~G=9P$=4Uw&Lv4qm|A3sQYMr`=GS11;l);1*V5vNc@?gzUi zg6Wykf-o>`?uv{4!Q#FmZZvAF&P4t3z5Y^qkjc!=PK`|(SubjK#2vfa!4mH=eQr*4 zajxM`0^&t>-d9zE-c5(LtnhBx9ytaA`~MOF_x}&qTF%&;t2AxOA?E_qKhlJS3$u)? zrGgo^?KWMP_&}}5 z?@np8`uAi@KX&5OkkAv-HY%F*>frA7XzI9y)*k54Q0^)Ut^N{SH2SLNv@n4k*$oA73x>sxhQ)AEPL+?HHZGC7=FA!n*bq}tzjM}I_3%;tx zual6iSo}hcKWI>cWP;l+XvQkGER5PsrVA@4Irnri6i(SVip=QOK= zm^P#e3ZbXY_orlI3RbJU#2$-ol-FPKgSTD-s0!w@uv3@zH-ub@JVWBe4RO>nI{Krx z9_~g}XlSN8*kee76UbJ8%c**eC~ zRBefsYDhmHNT>KDFmxbnVA*5hMsB0r5I)nfB)T>mUm!I(*1wZ8CM1ZaX!^3wJ4oQD ztdzm2=~7=ebMqGjZ*_}LwTE(Q@HDC|G}4d8^ex@tF#INcWcZrHhqz{LIR{nYN@GR0y|Dh)J~xd>}cy_=PcZV$K9QzW|xupfzUm? zC!w(K79{*CfKXVB7-3VclaCbHb9eVXcH@9+!EW~gJxu0(DU-R18FAGd`xTl+Cf}L9 zqK8O;6;3Ald7J{8g7ux_KyNZC^H9qJ%KlUS!}wjSj3?+C-AgN3`F!-YqL5lM(lU}g z+6{}z;w}v3U_k?Z;uePLwO~WaoWTJeW zl%kc}&3$e!MrhsuaH=2nN-GxY-22Tu`QFI_1!+0j1`Q!B@`EK1&zMM~2EOebO&eST zJQfrJx`@L{R5t{l*mkeyBOkVTZ zLU*v~PATGQ9I|bIa7|`ngMmr*`h9#4QR`P~JIrpUTX(XdF*!R8`tH|+=J6oTSG_pS z8>|3e!Ejsj?ck;_+Gt6)EsMFFag?C<#*l%Oe(pNLRzpIPihLrq1#(dZoxonxwwCw% zT!p&SEyhr8-6G0H1_IfP++e1To39Q5Sxhg)kEc!BjQCT@zdf1#*N)hhZ1J)5+0f*K zY$BZ1*MXx|bD6$+Z!>MUt zC#{Z8HMW$76Du$7=%f|lsc-K7S(fL;WAm5hOy5a8_TA(>&rB(l+P@E$3#5va?sWa` zhs1_M@*)9@cy(VWwF7PIu{4ZgF5@zADpVeubC4cr(}L1 zu|72n3}ti+k?|9jWA_LYhEo7tmzKs__&*hHw@z5ggHF4C`NPj+-~3NV+x`^6*UgnL zb&Jo~sdfpsmBp35i+NMb|K~j>+L0U4eBgDP+UY8Ezojn9EmTP&NyYscsC4WI=_A$t z!ke+loBugu>!P9f9@V))OO2n}h+xOo_&bx5TnFiUEpBC;(XH1)%+^ahDa`o^n#5Ct zwy|KQPqcCo7Q3ecWI(XMSMMzBrt}0$5&ide)aRC2s+vq*z9CrxQ?j17n7>e97kgzS zCvirt8&I@`XM4_@3f_yL+%4VQ%}u)C6DT`O_eaEI)bI9DKMBf?yTL~lWZh!-cG=0g zf@v3pq7#zkyz`od#|iC(K#;|M(1d{fn@)B9q}Ge;SCYq8oLOSoP83CP#Pb-^*K-n! zqA?Ce+JR%k^GxyvSn%zSN#a+pUgSi4Nu@W><{v*jGFl5XMA^FN%gALZ>Y~2;63&UF zZ5pR|I$61y{F)3CISvKki=W_o`f`Py$G$@MWF6MPiQytD@;ZG6I4C~h((8>8nN@>D z#7g#<*Vl$PiZJ(X-DxPy?a?u$9|kAq$m%+mrV;Mm3&1&w#pcF@3wV@ zdhi#7>8z^&a~%?_sCkI%n5W#;_@cGzsO2&yd@vYjHX~wsLUy{ zFd*u}_w0}gx?UPe?!j|yeiq3q%a2ZebSEUdKKJ5Q~>+6H7_?`o)_?*V5z`f{;mUy{}Bt>Sd27rts(F5 z;mNkx3>x*zrHfXSQ>)?vzbinss$oBZ5${*lQr>D+dFsyDVBak!oXGo}5ZZp1w^CFXc{RB7vnORqB zx>i_3;Y96{Si$mfkkQBox%ieOwZ=inwf<6>6E}>TW#^SWvidgz-fbU+&hbsia3lIl zVKIN?mtRe_jmcIV3|+E=yZtc&EE7O``nny}JB69=tB03KR-0$-*#^A<~oYYm| zv{1JVF&lzeg~Yhw{v=z0dzt%_7SLd|8z#(ypm*u}VWann<$8w(1Wy=0oXV^(VS!-* z18y7bm7fR4O~Q6hof#o*PTjufzoq|xKZJ6lf7%Wu@GX_TbEO%$=06c5gP|1*y&EN@ zp;j4^1!6K$m{gTQk}yLnfwN%dliVmRZsLZz43dp+yU7@sMGNj{Svj!7r4RlxLF`On zc_nzujkkm+26kJJzaZ>Y$Qm}Ccy&#JHH#5GQP6Yy;_jwDWk;WqxR9UV4#*|>7w2Sc zoB6)N%;|P*V<x{!DX+St6)yEFLhXtCj2N@rkbg$rVMQjIu44_dL_8Ay;kOKvu+Kj2cdv-o%Bf@`{`-m9$Ge;7T8i|n9iUS-Ne{3IhMkr&ag-0pOv=*AxE38-nLzLviS}vfYoZgSwbQq$ zO*f1{7{RI+<;ev!EAh)m1%hII9{3*{7rsf$t*I~&oMJE}{bKczg3?Ss3zx1ett1*d z)l)}+9m)4%utfZuqOpzy#tN2RBI&1sqRo758}NA>FbOU5v{pWR1{>GbK$&ANZ(eS! zSaP<~?8q&3^iSqea3gzRBNcX5@FWjjpobqjj@tzAIRpFzpwrUymJ9S5(YLi{n36WM z4Vhhle-Igov@D0<2|KZ0FZKZPlbW772DB4zpzh$aMeO6^ty);09^)SLh|V#w+DRRa z+qhaagRC0#u+#qpu(>Ow9Ojq$DmI=JxsImm8|_#lYq(+AL1OxZG4E|VJJtC4yD^pI zgdjzczS7gkfi9?KGZya8%Y!+JMMc^_-V2hk@$rq%`3VSHXjM&cg-5EZC3IWZ=H%H& z+#`IO6c?5)vh|kA*DMyl?S6@8@$9`StTScj;YQuBP#|Sp2KI~I$&Yv4eLH{SqO7ASxThi(0kpWq4UEPzykxuYpUIYnS^suW1 z$zRaxH_DaVr6tzLAFFw(hEA{0@P}$61h4uWVteiJ1x|Czyk)B5mb;e9!gICdz*6Al zzG3Q}_f;c5`WANX_6zv4F+cun-B-SNf$;`j!yJ9+2XEVSbjfRUtCN$228xE{-Vkv3 zIojJRJLnKahquZ=9P;~t-A`q$!tp)KZOx!h7Cr8()}2$GZu`C%Y2@e#kL%RRiYz#Y zhUIh>S4ItzWk~LBD~5(&qZcr-v^dW5HSO(QvrgFF9x9`@t*x1?Q6TCdIQ>06A$4Y# zAAd@#Pob2Poo%yu{gqw~6UvfJEFlVUh#?z`Jsh|7e2+lgTA|&Wdj)m>!AqK!rqorT zc8RyLTG0mIJ&E>frGooJD3l40)Tlk7;dS-V5HOU!=fo-xIk&3gvoI3hV1-2XtENbc z9!(8kC30544NdxxbgXKHfxxo?RnP2cBDh)lTGvo~#D3_Cr7s)JK%li1VYchk^)p({ z{f{#4-Y?4Yx_EKh$LhoB`+4oAD=66!B@_LH-c2XGGlMku*r40>{1hq;^b1 zx7nz`?I(DjQ5UMQY?hJ#w6v_p@L-DzLJSsN8yHv0yqTQOShKn{c%>lc&FWxTK}3yx zh^6;F?K~G$p#1oZ(cU|8+i$oDl!UD^>89rXf)pCDq?P8Si4EvTRp(18ud~s0x}cs~ zt&W-GUeHO!!nDQ$@jLln^XMm6w4y|_?MX+dg!$EVx}}MFdFZT3B#*Y8y&fwKA}o#f z$?&u(dD?5FL@LG1zvJnZ1%%@3x%c_D3phtXF7sb`&f5}xeR`po{;=4eko@K>>+Vzh z<7ZtvvV*%d%IZm*tr^<=-(m*{2?@b`qfReWpBrbqIr9~15^D#Y z{?wJMYJWYV38S#@t%)IBK#N~&+Nz7U&AD(M#ePjSU8^58|B8kcrhEhnjlVBI*q+U&_G>5#Xd!;2y739j-9Ljgz$YNSvRv zF4NSA0JeaC7n=!8q_lxF8>;=cHStkdqv%o(sIgaDUyU$XYZd#(ar$XDqg|=plXnT= zHJz_ZLJbweo}1gI>eft+fa9}czmPxQ;W~`HoYi(V335iN&xnQ-t`s!uaNh@eoJ$Jz zD6;faEJ)0|=hgS(V+)&aNb2}$QEx`Q;Y>i5u7a#@Wo41C1#2r~*VXBHjgo7fee^YP z-|+2?qJsXpK`Bc-c%A%O|9$_8J^n8EqY4rl#O>C7tHGC4|0m*yNamBW*-s7~ z3}hhEQpwI#Z`ZFp7j9=~ba8Zb--TC)LQFb>w)Q_=Xymw`Zahl@K|nem9RS1f;2MAcxMY@Aoc= ziNg;mB><%hT%59T9P-09UD#EI<8lvCU(F`Jw**yHLzbFRDl`GMC-V}`Fg%7r)7Xa( zk8lZ@DII^7grR1I7~oFQ)HM2^GE3-w|I!p?DbxiV}F(1D4#5yr|1oCHaUO{bQ1GmY0-s@%v z_BOYNa*@g(D^31BsU6%&%+;5W)9>yx;rlZb;nx%GD-Sw34)O9~nG?)<>t5bjkfxG> zpu!!#O6)!@A`kui1vY5%G98yJ0WH0u%tuWcu)STkHqr~W41R4K8 zg?8i)06xfJ9~dC$8F{T9^*u_sv7E8fGr<$HTbNc+o*!#Bpk%49Wj9U|oW+deIQoK+ z4pIcEwFev85wiIIqMtRDo;GWZ)0$dhr9ML?bHLLglQCE<6+xTCHaMRPtT=LeY;B0^ zCLQZ89^DP@*Dn$4yr#GTr!JiDMSBrj>x`9^q?Q*+AAD{=wM=+NB6im&M{TbiZKH{A zR&KE1%|u2dLUKWL{LU)+3!X5KM5b+5b|`4MfsY@_PuRRMnrzKIb(Os^KmS)S36k#d zA?rshdcvV%lwN7}0mLYKo=iw-U5oE;cRNmrh!kp7%P<>r~F$@k&-g47cJSd zu${W|>yOlmB9isGdnCnaPa&9;0`bEp1leef6)yUCx5M2M>tfS3woC<08ey+(w@`kp zwtQTvdqdBt+Q~s zh8bmP>(i8`Y~!}3wCcGC<3PC+5g2dcP!1q+-onKP2CQ|h6K3!q+G6|i3#%TezT}1e zB=1rH5ny0AMQy-WR*0S>X4Ws!v`!w~P8?3IukFofo2^RCWCz8xm&;O0^Nl%-XKNzo z+_UP}PyHHo*h+g6ZqVc?!*dX?*-u%((k2X{tO2Ytbs+U~{9wfKZeqC;JG#1=ifp;< zX7v%KrUlTcUlNUyQ(K$0?h{P;Q*?*wFDu?2RJZyz4HhAU_NuIu`yRhpK=3%#Ruo4NdbD(*~W@T5VU6_<~Hqsn1 z>h@=!@)KMx)v|+{)i*}Sp_Qo4+#$8@_h(|9|BBy;l-Gs60nEw~x;lh#vCoGnk!)J= zF;2{SW2t~M@99b4XOcL%1IDDFIbYo4q*U09GDc)!dzvvq*ymI8K7`+e zrzQTb@Pl*?{Wx%uTYo`F_g>QXhGpSUY(<4|9}Y1(1=-o*_dX{b7Q$Ehbx|qCh_$rD z#Fk^7cT}p&3mU9F1upkiTO6@Mc?i&7Bgoz2PURrH*KB$rJVP4Io9rOhXv_OAu)g7?2?lhup$25N|0I@aN>f> zk2m=;>r%7`r6cqB@xZdrZ}zT8&rQ>M?cT}RTau??YcE3TPoaP~j(GQjLq`jH?9ra& zb?2E{K?YCm&!u}q={N-_#u7qZ^Nh^UG*x5)pO0K0kx~F1A^$Q`j-A(rzU$JR_@phX zv%;)`*Dxy1ux>N`YYx^N72IZ@*?lg!<<&tU9w#}d-EHXPYgxDNYhGxXNIsB}RypLb zI+M-Ay1V+R6SFz!EEAJn>tM`E?X!1xRwJ@O9RS{4w^ZvI3!ZM%LF)T;W`s6x_zt`*@lXRE4?{2-Sr~LZX1WE*MXYiYU~UrCjB2HV*C9raL-@BX4Uv`}HhS^e`lLgoz2e~ZQhjrmxQ3Y{H zcfrL>$u^PQ)NC9>b%fP>+?ERBX@YM9x0F%hEO);6Q%5i?^t|G+sPF_GLq=O!v#szo z$*AYbp$H8CA#hugv4xze!oI0P*rV4|(LRYBt+xJU{$=6njOJ)D6EunMMSJq z5-m2}HT%skTz#GHPJ>rz^1-8FS~+1aOhz88cxPOhy>B8sPr;3_4EPs$On_Q{GW-`L zMKl+Me7+w9WoBZg`K5sBzNwYyKX4F+zdMdtDPRhJ#F%={Qe(A+iF;q8UdfSW5jV#) zOf20wM@1-KiSSkl9pvV+$I-v{%zq!%etlD%HOTpgak?}FVA#}G<=&S}onq6#=IVTK zVjIDZNlQMxAV;FH2D>76HLWifB8BDp`png+d|ZDf>9KOz$@H`bR91DfoWf4MRXU$l zHwp+lXUxE07IDCTUJH)+7Py%RE$Nunmrl?I*cfYBCHtM9=CDAD|313DjAl-;QJ}5jyAqVfg#8 z3)$sar^k7_0nz)iHovDDH=-eILIyjxoC7qtqwtr5Ly8 zBKw_v70f?eBudYJ7_T24;;dkYWr^P`ye!b^Le^)>$2cZVE`g|9Us+R4P*>{@cZg%` z8v(>gUnG zwOkKqfe!Ja!Re!w1K0OF%g<>j9ZY$CaAR<#m&aDd7p(eWYxphgP@W-rX7vE@Sw@pE zF33p1nec{!Xd?ftyL7wApr0kztZc+|CaMMITHt47AC-unqx6IalO_D5wq!2D z7=h8oR%4_^A5SVqq?g^M51Tb}LB|<=0~{3g8II2Dnu$%RcbM${Sf8{vBRaH&))mdfjBYbw0Vi;LVq7+idC|)c-z zccq?m%Iy&+p?Z!l_!{JwO$0j9YmAJrF54i@iGmZZws&~Y#D(?J1ziKn2bRGItG5)F zp;^^u!z6x^Ek0xQh5FZYNqtHn;Anj}VKo=+WN-Lo1MvgPh%($~8S3~2O;Ko}vR83M zsF2L=GEHiYwzgnoQkcvrQ{=>e42gX%1$LY)@@v?iWH5>Mibz3u57Py%h0$qL7E1c0-`#V(mqFy8Nx$=% z9mZxx9w<$M;yan{ATv6B-)^1NAJtgasfa7bXq5vB%0^ln0u7qsbTNyJ3)_BhQ%CH2 z%7uDTR=0M-6D6oWhI@Qc#1R6fVIFRgQBBY?_bf&yz`HCcuV3_*sQl8D_u)wDPR#)UJzv*6m{(p7`AUZPrb^wAlKwXr$zD_xy{ z7y@6P@saL^Awd-+vbsXybWil_Osclo?WVc1RRh=HA^5#caUyz9z>zqN+5B?OH#8GF zkj2p>Z*P*+3m1H zrdICk!)m4^0opVOReGtob%@NwH!-5b-CNIm*m^Y3cJMG9oUA3Lo%WvDK4B^J{{9!_ zW!3dC0gvNs4cerTcYWD$z*i*)cwtF9EA>Pes{0cC?g z@P3HQATXO0Qx76Mb$kb|r0l#i?Cb2QbB4s)ErJuV5C#DfX~}g+ob=>CPV6_dJkz(H zVLRTKn`uytZOyjo>7W#|uNOX5-zSV@PFPh!KD=+6mPDhyVJ=;HiRqc zO!4@h)e}2?rK7um+2L^vZz&@!al*BH@~Bk4V=fRK2^#@+maiVSyMd3RxTHSU&ZGo3 zVrSp)UElE*?0Vd2D-_iNh%B5n$j|_ul4CNDCsGFP5a}>qgF01~N{_`&HafbDdhHbK z`<){$+OjIHf>7k5sti;Aga*OnnYWx1=~_E^Y++C5$#q6&1KW3e+(#b?_i%I`>zZ-F_+^6WRw zQ8|!&tw9er+5wY(F}W}9Z?YY=(m}}7>6&o4=n##ImpV5uJE&E$WP!wzWjdi$f}>Ct zBR!a98SV>l6b=@mCsT|hXU|km)FjXSFg*=1f~hA77UwA>c}h9uLb9hHg2|{{`7zdS zkuyD7b^I#(P14~Osq7Kne(yQctYMyQq?|}7w#Gvp4q(cT$5m`FPtaW ze?^_V;hk`aq`g!9WjS}h;*+G?WQUrhVR1Qg`DWV+PHZ_^{4lW-A`ovyjteVCN+~jU z?JVX7=1~f0Se!?Ol-J)Xyn)CA9+{3lEb4dyV z5e8=6%OA3_$F-fNg-a)}Pg#c>qFWA6#0Zw=a*7T-h3J&0PH$SOhu;)AOUS+O6Z_%M zd|S`Azp_e&?e`F@_b6cG*gMOaDGCfmr~u!S2$aQ?c6a{4)&3_T&7$;;?f7Nx4l9AF zV{&{lu!R%E$pi>ruz&oqFe>mah=e1C1La546Wpv_8b7Vn1nOW~y4Bs~o0_g$KsoL66)}HG7gX72i@K{2QfaRMD z@RXfZmlVQwk6fT}ofs1nbzu^{t7)K0M18}_Tl3$ZR3IOg7NC8~`SAz#Z)U^J| zvh@=Dq!Q7)4<){}5OkU+BZRnf(l5C z!k+^Z_!AX)eY_8*E@%;K0Q)9dQt4+Hi2gqhhG-l|4$hxdkqwl_fcEE~FQh1u4-OpW zBJ^ePww*>~diTM=c0JA9sX-)Vui!t=G6mumZzR#INMv(V-x|@Af=G-1!#PBhM9*)l zjUPmK*LT&P!bs(3Y6I8QrUW9qEe3E-xlt%N90a)^IC$=s8dnzJ>1NLVf$e>;*2G^eB|sZa-b|R?RHLpR{7Si!ygXWADstCP*8_aYi$D; z5%AAN2)^+F?jESx<`7WA#o!0syhvW=|EHl~8OF|#K=lwPk=##>wqY?H{{R3G|Hte6 zw*m>JEkQpkmknZt>@&$BUnUg_(|R&|zn7&E@K&w-c!oFvATfdyHG3r_d&ac*EzIxP z)08u`7l_~OKb8y-8Mp8Cab&r>>__pBv5S#1yh%$ z27)ghyvd42VB3l&kL#USg50DwLV(pnkQjJAGXYK*=N}kXEi>0;o+>NTC7X&!-ULE| zCZo&tDt&UeRM@dWlYvkh2P-#_7`8UNf!x>ol{8rq!DZ`^ z5YHIn_0~130|?_!Ols+5h1dGvYrc%n+8I@we=`raf!Z+73)3~6N8k&G;lv&^%npZkHG47bzC5c$u^xpIsw>;`rekm z$Y))Mjd6RHYz&+$@j92-dc3fjI&W@Z5Rbs#TJ`UySQPdZGo}{EqzA8b{;PRbZYDx; zuhN6Iw42zvnL;+FouEj}@P26EHHAOQi*`0fYS{j@9g$_~ZH})+;fn0Zm#W$+p^u?g z`<94)`_c0eGpR{UELmG^nDUoG1Kiw=YTIRYM5X?|i(vc5Ek9oRpG|-r%Pp0r&mU?W zWqIbp_q#AM3Pn@n;oFT`_IBeyHbzib=Zv>uuH{nqVKeNeEg@4v`CY2mFZ(YYfuwSX z{O~iMTt#>$U4&iHsd`T>8dLGp`RZLF-p9OV>cA)yu(%-v9TfeuT9!lPFC>rFc;>jg zAnLSP1-(RVM}HS6$%(V)O$Ay!VicZdqYE&mk_n$*$8ovd@oFk%W7Q|&W0QIM^awlX=!n#&4vh^O z7cHS=Sw2BaB}~cJR90di$gM%sKY`m>qn$N~>;6Ww{_6T557ny@n_9L9jw*T!lqsV} z67_?Ect)Kzg~DGhPtYV%q3RlBI*0kqB~r47?9J4TzS=5fOVf8j1R=H;yxW1!ejwH- z`F|j!`~RB3OHU@scI5FdD2U75Zf;Du{x8Ttg~-dt7=V_Q`&KdkC#W{OQgpEB`C zLDAbUhvT~~FO|D64=y*5vnnuzjZ_u>a0Nq`)9rhpqGFK1;2xq+&8m=Q?7OYaGMx`c{8;*0#*=Q!DRO*_aJM{I7dms3LUFL6q7pSs=ed31o zt$VOecu(YJMJ=i&+1TjPDc=?bN!cY_l5u0UYCoK^-h82E*8Qt_Jpt0%D(fVb!>aW) z^X1M>^p}8)3p^m}Dgt@nI4EJY{O>AaATyPbsCH#a| z%=e;yb>#D@_v4>{=`9@sJ9OqEqS@kzmG#1r%@-9{qz;kR?TPtZy+J0P>OnMgp`!13 z@|_Bq-E`lwJg+dZF>#OC4xAwD%a(JF5T24G*C~&N_X<9H$*09+VVHA%Jih@8xk%uD zEaW19g?tJ7>3TT{u#jUS&o32BQ3D!sFWQ{{MMG}>uZCRiUky3Cw$56h8&Cs{aP>sW zcQSS%3+3#4F>>O380?9rFz*zW<-a@mY%&c4B6RQWt=E`kG#f3oZ;0YJtB42 zo2Ep&HhhbptIb3M7@cG$UOH69ZENOVQ6uNH?4(Zej_Z$uz|POY%5T=+9xXXHllEm{ zWX3$-apc5iblTubbT|aeJWU`g>+RL$t+^)wIm_5vC?WeE17+$(b07s76*3_qVpSCK z+DdDtE<`hlSlc#_U>QwHl2@cm><=X3g4lZf%acYM?&8$>$9f{6qDB>tk5>Z+uG{>m zwXW1*pzR1Afy5Mz>YHzK5^TUEPpQ{STuEWgfp^kt- z_yzn&Qz(m%$XZVmvcfEj!GTy?YjL8aN&Vc0i9b-)>$qb{<{O2oPPYPAj5V2obv#4U0r15=Dz=G zbRr99piM;Lf$XU?hP3$ZenZ@Gp9n{N5JR37S1HaVY)5OglNVG{W1klhaS^RL=f`)V z`$;zgx&Lu-`bJK)o_UQ?JGa3JR2TXNocz?zzP8o~o@>LK@A0gS)yZ!Us52qM5voyy z5}-!Ol3CFme$xXGPGkyLG2-bi+%1L{;jW zQzxHWz6YuF(Ow$~IE%(!XQN&NCkkAkj<`A=^!(1NSgVtyCJSrj!z3@6b=xr|;ct6) z;VOe114*K`z387-io`O^cj30S2D}7}XuMcMJAZhJfRKias@VQkr*Z7Hfw`Kb*fH(##bjXQHEjRm%)0!2!q#Bq=#?C4t?$*WRJwJ(kJG@T|NGG% zX6TkONUS3$3iUh1E!D~!(8&%k)k}3|^cpqY^wGR^x%V+Eq&)w8?F_x&Qo0UR>NZ1M z#A1;a=fQe`)MLL;{#s$MprJYy;$_~P^0r#63}?U#qzr#i!FfUQm0^zNe5HA#eu~*_ z&RFYr*$#&uB?H~av^^Z?T_7m{+MErCh@NN4&rfLiTBD1ZkPBB`;jReZi$*Hv z2;bIhr;X~|$v01H^!3`{vVa74+}0_j5rRH4xeH${6O{QtB!Mi*_bx9(Oly1|UX=sm ztyf}eULL<)2Tlo__#eKFDJgk=(s*=9Y5`j6n9Sw5rK>X5(Z#E<)!&i3)mbcji=1`3 zBkQrz52i9sVq{r*6`?n6@=}eH-t72Ur6_}`wmjO!gb4ASG11Lg683GLB|CMP@2u8H zgSHhXocCwy2m<79U4u{AfkEQnK)Q+%1+tC_WPGSep5@x>`j)9y$t{IWAIAKk4BU=} zBrpFS4xV20MmE8POg80w*BAJ6Pj|@=mb(C7Qn3H(?37IU|7!0ngWCGLeV-I}X>l#q z7D$V`w|FU9TuOs`aCetr1&TxQVufM>ifeHxuEDhgFSPXT|MP#&oae=J?|F01ow;-S zB9lFtxlw2{iu_%2pVIr0Nea#JShPeV3`-jwZ^wx9gJt8rx51PNLwwPJya7>S;C-jZ zXk&b1wAb#cQO!rY2t*Uq(%#mpp}}R??DfhiU1>>vBBts^Ro`ka^7s-PaOY^R)mgAi z?deI3*ItqCAE(}^gE0B1Qg~|o25E+}m6Zip?+fC}bBo1b;{b*?fNK-=`EB`oyCaL{ zrUZHP$7YFRvT8gkAPHH^xNn99#8OURc0Vs<)06w^2$YED+wZ*@p;L-xv%HxGc;;~w zPOr6>X*N8D>%@uMt^5+$^2ZvFo0bhg1LzQ6b~eFc@zpDh+6 zWS(xP*?hg?6zFIC4KgF8uskV6ceU>TysYw$3TzvQZ8CbtA}!Wl|H9&ox1WUHAIl4|Lo;8!a`sraoO& z7=Oyw5?O?p;M-l9TvMPqN;XT1T|FDJb~BL{0GKmG7={dFo|#&xyl91r&0uknPIIFw zbsTF&hKuo(-=IKh(DB9!RFhHdnkG0a&}VI`^nY&Z@n4Oo|0j+~-m|9)cTlYXCl1IC zj$=1tJl$eavCyRpmIWnEo{>#WNYT4591Z7)$LNK08#AU(xHi^H?y?E2m}}Dt8*>rZ z4y+ziJp9^GH)l03JTEOO&hLx&A~x2xrY(8dPEzLeA2I8MT$I_m6&8RJfW z7;mH8 zogsVLR#Le?QQ=)&7PN`E1j$!>0kcF3yy-MMo)4~-lkki*o+ z=Yx^=?bxxMT3}hUA(LNhqCsW$p0DBwj*xr=mu{)%un?-nRCFH~!-juiEjhgY##$!- z18eEq39$P%{sFd}b>KEC0;Kpe`Xk|GDAkvrYvH=)Q|B?I#}M<#0)uUZd%+@5v|t=` zSGGFlaW_?>>*h&6oX+uQ{|-u-tutruzk2x_^tt!4on!FqGVYc)8*vaDi!8~z*95`q zykn}Llo*kWI<^a5S{h)iZwxIX;{C*$uAA`Ok_z3DuKWvNI^;^nb|7_PkzFJ+uIy!Q zPRm%sB$%j$Hl~I{2fNmJW?ChS{2uA8FK;hiw?Ot~IPK(B6W16pH^n=?<=cnuBuC&) z_9As$9tP=pPCdq@&Jvx+8#c=0v+;;QAC%hqz4r!y^IB08e2eR?->`K*?YR95&a22- zC4~M@IPVwIbQbQH6LmGr?-#wv)!ZAf2hN2a<$8mVZhjVv%GbFh0BtwmEl;l_@o=)} zD}j&j%_GM*;76eQTJ+-boz$^+kZHzSC7Vh1{ge6L)&=Ol!gi~r0jSLn$Co6TMX^0> zi)ZMMSY7rK*u6o6l5bIRDKwoP?hWvHD4rMrWB>9aaL1-==SH=g`a;80{x3Sj`y{%d9y_^R9wnEuJ~~TZ^fexDgOE-o^#R2Y>*`vJO5YP1g`=Usd@u zj~&Wpddek60^eW^>Etgj+RfOB@KvY#5;oX;Qr{)aWhk-7NlWxju4gOZe8Hu0PDcxp zMWf07c`1 zx|4KCysIzR^0mB^u(`&6SdMHq?~Ex z2(hR~M41PhaSzhqhih<2UosT|!C6gktv&P#)lgRP7j3eV{=S1&aPhY0L(63A-2%{) z?}M~&a%TQ6u!kQX;{lm+RgrF9l!s`e6i3$Nc@)2&{zeaVZ>el5W_@irT*&p2khte2TCX?c#mu<) zq!AxUX5>U7E4v_j7Abfi-0?FEq-^Yg^z%6~esVGs;sS-)`Zs@7rPp!Qlt~;+lc%LM zGY3%A#lqDuip98g z&37irddi>GqK+f~;3H*CpM&2WSR(D83WOi;+0!+02W4O;xSS>jcKC659>hkc*xB*L zk=y!+DjXd_qsCIuJ&(rF$|Tb(aUY|N_=1rQAsy5Nb;b;{4l5i& z*QiycwC)_*mK+F1Nn)mk7$p*#j8P-$Q$}woixt;js6!nV(UtAa;l*Sn#_{ou3{+;w z-1#Gzl1kJ_%HcPN3%ZnX4q%hOfuibC50GEtH7Da{Qe5!6bQcHS(G3_R@W%Vs4|%?V zSo1#y$^v!PmjcvL(~n4*m$n4nJN2XevTzS}o_@Br~{(oANI3X`d3N1-R zbBbTc%@*orQ)M4R@?e#07M>adQO zLmw=MH+H+#11Z@ZC)zE-V$6Kfns#~jFnpgCuI|QCYt+(YNY}H47^9`7jRsvV`>u}jnuh4TD3ZsgJtD_nZ7k<*_#T2U))j*<4w5>_iv~s@udm?h%|W& zJzZd=CHOH|{a*+DYy+>MJ}e9;37*FCmPUALR*)FlM7tkW?{eQ@-++yNfykmh*e2QN zHy}z>FbDZsieiRMT9`yQW3B_|By)WU6)l?^Q1a0mnZ50E%|`W0gyF9va3{Me=DeiQ zI4L*iMqF;57UTsudgd5ZQ|&jZ*Kf+Q)Mm16dXWUL?(Xu2r2K$g`8ivm&BsQvl2Dj% zmAy&d42sS2c9s;;aKbr1uNI%+6X#)w4zRBiba^*EDVut_ZJm2n`w8o+Lg^$F3NML1 z$FYE84<`*I=IxJmfUn0fRG#Tg)t9^HzG{K5lSB(?hQ~#`HWw==k^xtYk=uHBKk$BW zIZ;?9QAALPszH0gro(v2m?9}9?_Cc4=*cr>Jo~JYUqwW;AC6Y0@JKC?ppz`TX%F1&i_Z*E1tD!>MyGw#>okliILo0-~;2u6Gwd?%v4H(s4{O!&q#Y!oh)z zJSk!~Ap+R$i;|r5AFoM?vJm> zi#N|cD)B6ko|a&-t&wKlcb}cnc3(d{T0u(S-!}5xBl9;M+{lH(q56&E>xk)dg}Qj0 zxiQnyF7oYtm&-D!cJv$cw}Od5nx7iJ>w_+WfD!{Co!sgxBM()dq44gn^491CCdS3{ZPVeM;NV$A40uZJ^`)u)bsfwZ7dW^yzo1V`>B|^S1o%| z%`slnjoEn~J_E6>PP0y=n6SO$1LwtkK@Edf6;3)==G`GjHBH|$+;(Emf${)iieGfj z?)a@%5?|tvbV^ztcnO9sG4Htd>?5Sg^PXA%hbM_Zp~Qb?)HL8psF4j#h~RwDdTX5> zh{tn`k?;p~hVlX41_V|T-g}{5IF|~4LMt<}ZFoW%*Fka!`z}R8Z5dma4K)%`iEK?W zb#TCsw?Xw$xUaUZne9w5hm5$A^PrBmS@@T@H}>k2cS$l*F9>B2{Q){Z%m~&lHkk6@5%_ z_&nAp-g`zl(kw$)L)My!Q6cXXK}GeGV~C%Dd|%U7ZQ@OQw~KTDeWo+CzV%BmFVn!p z+Lm4ifRtQvyF_ODd10eASu6tcB>Mq7w4Kg2;-Nb63v?+Q+@ zI>5`@+fd74x`YYcYDIg6^L8dvZlVSIVXE3an00&47msgpz^28uxX8ErRhr;*3wDqk zDDLvQe%>w0cM(qocjj)?Q%T`$)r&EFfL*RnTrwM`?S6BIpuToqRGByg?llPwJ0Bz} zdT<^HE2L~__|^|-45+@Wy>SDb6A>BO2pZE(m3%vzSyfM3rbe=gactz4Of@P^R%Ek1 zBWCRxt1z;zmH8@GdIVX|q5d1|Mv^_{HaJqi!;hzs$+V=FX?ou1Ux z709QP1CILTt-40W(g9hSJcn~ENXQfi9GQuPSZv7LjWv_s`Mqm|Ei8qixB5ddY$D)B?M%N`yA~F=gg!kq_vF+ z)lkHzTC3GCwZN}U*T{m4_3J{4K3Nu~542CSb!AJ9b+5xkGp!qC_>JV8_vPhZlcrGp zBr@ix&%<@GN!7lIb-zEFXsCQ&g&NU!p@H`1s&8v-T8BU1b7toBK(A?EI@I`MsZ$ z2=W7P4m8i)f*YY%;RvURns zNUI>Gvc;3yNuh=Zy6OF3kF1;u-CQY^&hO*<12 zSnsE5auQcn{xQ>0VsF#c!0n;7_~zryvyOv)$4ZcEo%+iR-L-JVA}2ujl^rhy8sr1V ztjCk~Bl*7F>o^%KvEiLlOgu%zeWFtJjb(slELTyi^Y`fZ1TL7tEhe2wsKJ`|Wf|QM8fap+?I+bdWt5zGNvp$Vlg2 zR;5znnJF_xKBr7rY#EnD%V!r!%OKN)PvoDgGz;IxDaoMRmQTHhURs$H8XF6rN2flc zYOkC4iTPCQIRFl|XnpZ5I9yS!@0NxNgm~$}>~Ym{LCv%4&oGOeC0LMoJ3m0KWp|5mtSw`{jV#>7yQvVnO@*Ief))TXR9G+m^_%fEM1rm`$MV zr?fKUpJI-&HM%BNc8re~GJTA@EY5B01$9Aswt68&Go$JV_=<``jKr#0CMvu#DWO|y zzYdc-0E8un34_5hP2`6Ox3XjVDwc+HNX7hwnH;-R!aC8*i(NUGz64;t(8e}t-k$s_ zsRuGW&Z5y|!6f)384ey`rV&9Lh z_YkD6rc*GP;|b2w@kJtN$m||q`#geFW+1lmhO|f3;|;a^h%xN7wzj7VpSwqG*eozk zS;ae>05r`ryZs;C&9zMPl`p#3R_wvcJV1kT1YZ>*nz^Xx`k#NF(82n64ZUU8EM=># zTwPtZk5-tu5n{_G7Bv-M3V(w~jG(p5K&;aQ5ZE{aTDv{!@B%M4Y%3ND@38JxmJ9i) zRa|EgvV9(LE3{Alm`4KGnT7v!<4`tKjd6VH``i!kez1t+U>?rfpM?Pwp(4b7`fpGU zTnO#cAkbLKK|=-nWYc#j@UCI+#?0q$CFQus8ud!OCM%>4-fn#HO(%Q4tHSZ=&xd9Z zemY!eiJ>lckKlM8PqYE$a$RucH$}!x+F7IZ?uGbXgd@=mNrm z@(64mSMy9cR6%l0ZXM$SYFuyaZG1e@%RzlILv><#zd>WqgWy1H4Rz~pW-N&$WDq?y zAdvB4V?G|NX)?XgKwOR3MG=2}OW5{Ct(SKIOGxN^?e6u41ZDfl<%rqxb&GDUf2FXr zId878B4zR~IxG|Qp!2HoE^mN_hob38)BfOL_W5&^c@sd9BV0S4x29|qijM_Ad;3V& z`i4}b(TbshQNu%*KprO$%P-K#^Aa0(kuOQcd$Uf<28vhaVckzIH`?o!#fQmjex%)( z#|`k7$CczYtV%1prtVucNE*_bMAqm0h(q~=>9$_UqMIcMP(fgx0@dOj6pP zpG&e^X_iBjihazs%)+hgUnEwHYeA$H`~>d___0<44zc{G~+} zCC?vGOSmDUF1eK;ZvrxcsU>+^j)ksdL-u4^XT=)bON>vji_R)nm5s7K+4zXV&ciEB zLz0UgD@lD&OP+15&1}X<;mn<3v-z0;1#q8}LKy0EWIonDi{{We*0m52?cf$b1~sYq z4Eu;Q#mq8s`9XYIv?)Z{(TSDt%B$m`?g&q_ep=)7s+T(D@*Bscdo=dC-A!05Ej;h| zmrx$T{wAjw402%H%@E;cn_lsqtuA4q(1K?IVHoaVT!6JGRMpn%;Pu_^NOmN2HgQNY z*3mxOo>gJxg()LP+7F3y8!w>jzVM84U(h?dFVlA2r^d^XTA4+MB6at*iKybj(X4f) z3e#B+h0fG(ko8_Fd8(;YY`6E6a(k2MClHsPXTLA1tGfido*9B1w5J=+|8CKO((Gjh z-3w`;#bg9`GQ#4$7q3;xB2Vnnw0W3+Ro(4d>zVV={-}6Bswg~nzxpDNaQh!r-~W2z z^xl8d`-u3j;nWQDKSf&|9;zrQP+qPwm8#!RpMUH`1%wx%v;!|Op^h%JF)(Xq%$N7` zzY5*S&tU)^W~>e?cIc#vGktT_*?_C%CQ26dtXmnbjC-e>sN@rV7r`p=>q zwfz|Rm)tejy=*|D(MRe@6p}tLW@fQjAEdC`fUDx>$<~+bzT%>nFrylhPh-rCa9EZz zM|SSreWLrjn%05~{0&i;rNe?cCU$xQap5#WvJ9TVQcH5YIWQ@jHsYDp9)IG=`Y0&L zkcVBZLd>{;aDRhK^uotxhg<-H1{hIh`5V<&08Wy-AGst`q$`b97WOu+Q;WCnpj#c4 zJvKdldqn1RsxISZiBhzZ-F4P&jJ_}0jo&1zg)ghxqc|`bu1~5JEB;T&1$#BD>_w9m zc@$djiGip4jz(P080_rf3v}58e|Pj-Vj`uO?zB5r$NQdj3s&SZ@@=65jrvj2B)5E0 z_=S!wvGn3F zxE{afsZHRlN^U#5aFOz*^-i|3!rtx>rBJ>tY{m&bc#7SxZX|w}3H`X}m#JRc*b?I8 z$c}u-wCO6uOa`=skgd<4=2)@5RtXD>y$)=3Awvq^H191NP|^m_xroqLS1nm<^kw8m zZrzHH^pNzM7WK^QZn>)O3>WFH%L{L`Gc^-1cj;%XaL>9yEM$#%luu<=u4EW-Kg zYxA#wG(tcQ7BWyZt2wRtvhFOFSCzS8ATP{AtjhcGp$I*oUrUmD0FK&-Q$o_Qi_@t1 z+T3&l(-Lm6B)5aAwQR5aoJ7C*X)3GY>@B#L7j*PN=$Gw}8KqM*hW(C3o1vZ;KO#`t z@Q4qFvH=o^3LfS1rIJ)KLTG)AFo}Fl>*>f(`Ed~D4=PIW$M-mF-#bFyHaDaI{R2{Y zCfabI=6cyHqFa!`7Ogv@FlU<5CryuRJ?{M}y=FqZWOdn0uwA(xHMgYqCEw^$HVQ&c z8K^~@IM5+}Ls+gm^#~;w@c<{FY)Lol(&(&Iajp^!{+c=5 zr#y<2Q$q*>U2!h<-8?A;nGO*PlchLa#cY_6FD{H#=OrPrxUI=+Naq_OT{xpNLvDfm064U&n11Lss-uX}T!7%c5;t*sf+zzGbdP z&IavQCWLJEQ$p@f zy~^?7VEclQ9d;jL>NAtb%nZ7o%`)7jCXA`>gd(32{rb45nQnh{!7VmbfDlqB)^TU| z>aa@)nBOE)0Xk2W8^I570KNmUtC|Qd=nV39s;3!H9I~u1Wvp~jRd3;#7Z0qMne0yf zr#2Pqi(;8o8*nn8O6Mc>UYmbRLi5}tk1`9*SpS^H$fYq<>) zhG)*WA>ZOWxGUkGQa#r3%kNV$KCNgmNNln07nfo&Gux;Hc@_FoP^ZP)IfyCRRC`p; z84tq1cE57?ZD9|j;Jd<0l94rZ<*!)3oLt3!sBf%kpS6gQ3V$X#5@psk@@V*oxk~YJ zkiW*?EFeaN{r!8n4A~7FQBt!&k_%e@x8?iVZA^|)M6g0UN>h=Su=MZDUSyH!gCLG) z%*^fHpx{g7-EChEZkqa3z~^K1#-7fdiY9tF@KUQw?%7OBOmUNep8kx`W)tp9YmRr? z4jl!+!ecmJcBAIi{O zS!-i!_p2-SLOBmf1aFB0|p_Y0eCWsKaWATe-lgd4{MW zJzkb;B9&GkrAr9Beg$X}tyhVeZ$M*zgGvm5^w}X%n+hcxHesEKv?E6;dC1#4Iy!vr zX- zr@#Mss`bg!50i#0@`pzv=)6^m4^`z%mk43Oezt|x5|g8V4zbHSrEZpp-C#c%&$bT3 zEH+~GezB7r*|Z;+Y+--M_lEz}8Xi^3-x@r>dR)=+s>|fLND|3c!eH20qBC`fkR5zby@JW7ypyJUZ?K`(`5k_qV)>x7|(d!aJ z$jtB27zWyt1v%XcWA8Iu;n8gGP<10$?aqWQu`u|>p4*^cFk1l0e#QVwpb~BMeP{II zSJ@ZRVTSMCIw{k0Um?cyLA_JCdTC0t^~{w4mdgvuk1j(Mi{&Cl;jF?-dLj2Ru^l$( z&%a|_Yib05tsdWT%s}4SJ~k)TFKR~r8ot=nqYL-RvCTnE_L@5StGpcZ{e|?YH|hixjULH# z4VM!a?pF@c1ugVg2u5me%rLfW$Y@dNaHIanF~RUYS82gxwek1E5Na43`vj`&@ITJ2shJXN>pm* z8hGQ$7_W3TLU_=VLomH_vbjK*Uv8z=;CgUtA?Nu)oXKgJx3SnI3k*#9@_X&XAD-*_ zD(9Q58W_K@gM!*nQLm&Dw4557C- zy7UmJ$z2^{VRFF@@C_ei7u`q@-X(Br;IL>Q-%usSlZ5yNIe_9Vgcjl4@b_f{_(i(+ zusgB7IMb7yZ0E20IqKC!ORdl(6!qnj2n!tdwhqirNP~i=wkZM2nK_+stA-4fZ^01>6cT^Q*Q{KBC|Fb8A+y-GKHz|c$>8&=_@XMNlX%`} zb)PycEwrL8j$er_)49PKy%8tm%Vi*yRu+`ejJo@Dt#(p^dS4`^V93cWWBG&7* zC5otvbgXhP<4&()n@A^;P4Tw#VP~y74y%uyFo`&a;KF&BLtZS+lHv6+DwaK`i#7`}y)bkO{!}UEcS#=} zPYGLfF8^9MXcaEBzS1vk@#E+@QMEnmcKNtE-1)f^{Ic>oI8V!C1$;MV|MZ}n=ZECH z3(m%rWx}r<3zAy5PVO3QF*wdOuKrYBL$#rqmx6oXRoQ0`w)6M3nQS3Iyck+o>!H=PdolBzBhn213 z#rmGX-whiZbgPe%x+RI8q!_~J@g@PLx`M_;A_Q3!Z6tATrz^(8qjf~x&<8CPbuXM1 zAC5hYI#ehScGn=) z2~(p^7Rbp;R(8or&_75p0}&q_zfDLKpAl{#=>PEfB~(37ws6Jf1_tZJy^ZG zX8H}9u&G&al(k(`)$eijLD$*?5c<`i{j>k9~u1X3*5x%_CIpM58d~xS9p1 zfD`H(`^KOt$5s_!)DWZovZ!buKZwmw0!BRs50_I8XBvgx@+~xZ>x5qqeI2jqur<^qkjpOA0@F|>R zV$s9CBdm|oWtKkvC7kkum$A?Uwf5@6*Pxa+PgTphf^wzAAES+mG58_F<4wp#=yMVE znIA?xN^7xKnK?qE8lkhy{4Hxu{LoTQ_^rWb_{^!#X1pDzzM#Td-1B@!(!yhjWl>ED z`T>gu6n+sEn(b^8K9>_M(VkHlNOPJmPEecVX+g=t3bujoTO?Tmvv+Jrh+#yio&BpA zWa$hgGTg`l^;%sfY%!FwUq%3CwCuGSAqFYiYshG*M3SGeC}$3pi(35RBDj))q6*yjpjA z?Y6cStBbcm-&t2WyhsFrUajsq$o0Gea3FDfX%bG&e^)Nh;^E+W&62c2vvgPBX%y9YKL%;r4fpr^a z#@Cho#nEsMTTinyE&HMJ=0-}lpJzH^x;Gy@RkcJoCEN?`m+hy7L}wFZZt8}%;A>STy>g0PYshTE`Kk{_NF-XjtRv{-O|2r{3dn% zp>^Lq9JQW6o`jDQntfbS{51u()bbIIA5Ok3n&=rR9NNFicbbCCsQ&z%5;f+SuompC zMQ$v1vY8QTvN(`I*n)3=|9KghN=<>2RP(f%G;fpMNvJ%BzIDpiW&J>OXyE90yQY<~ zHY*enc0#AHmxW1rxbhA>t;i%xqsWZ$0wX=D1LVfPsWxBScyiPKDncJE#$hIwLClp3_-`h`OUas6&a{o0*C_{dd9 zFR(^7e#BbSwuDCajR4U!FrabZ%8w#Tt(M3w)8DJL{=m#a(V$?;T8r5qnH=6ZD&0@l ztc_6}#VNV|G~DON=p1h?j=rE^pY#Y0jb%yX^({g7+q~^AMOU|GosG(vGCnyv=dzj6 z=^E0G796HfFAsB;b9%L!O;bh4D@7kBYkmzES27_oE>6%jdGKpx2Dd-4>4_L7M*_|o zDTioRjft%I-L>0ezM0dJI`6DIyUvpp%VE7t%cYJ-RfjOZ_|xj2`uYD*-~ZoyW~Z!t z6Rfut&8qm6R*?fd^hqr*_ZqkKC%et#zX(yF()Dl-*C+Va)Z~`zA!sh7!~TUys)(}3 zdAKt-e%VDMBO~>7>ME|CJFaT@v6x^-&FIhnG#~&R2EY$48?KB^78s))0j2ylqkV-4 z*VyyH?IPd{+kQ|0xoLyK!Qoz5jCZd4kMl73)LWyN{1MKD7!peU61@-RMh5C+Ac>r+tUal+zv{(A!}eM;tS z)P4xgxL>IUID4kdo-!3o)%iVB(4%-cWp@}FNc@V}1%4mfJ13`xL5BU&loqwMq0!~Q{U!XRg{VhV1c|7)WX;mw>Z zC<|K62jJ59=kZ_fL6uZ$i$kN^pcz%-j?ihFDv9LIKS$B9c~C$Sxe zI4;;Rw!sZBrkmb-FQN;91VTu6_h;XoKuCZ^{{JWTmA$>)nc3Ny+1Z^1!!Zn#z=euc z=jPNEyh2}IjA7NUV;IgZs;;X0UcYoVhSmHX!-#7|b;EL>n=gsdq=brx4V)%Y9yf1Efv}NY2PrU+-H9`GY z;<%|TGmKZaL3>qC!~2B^@ckcNp7S`=T@LRLO>CJp1MVDv=S8?PCr)`{!b1h^>*4$F zFsx8D5z7DY^zh42-x3USZ=W>23Dt{t4OF|An&67)EKE zF@4tT&?;^rN+U#8MDH7)1l0CC{+ig zra>L(DUYmgB9xp0xibM?E5L3C*wX>xd@L8Mf~UUU_Wct5E*Yx_cqT(l;gVHQwg77& zA)5vH2qr`cR3EC%30DXC=Z0qoNg)?p)1e$Hn+&aw2Pnn^90FxCj)_WkzGZQZKr&fgDi@y_K?kKLm1oy+ux z_0A>wFu2>dsQ(aNASNJ1V+7pA7z1NJHgVEyz#Kz~@;uxzoQ1Q)?>GnN!aK-KoQFrj zbu=VC9t~HJ9k>7&!WEsTe9DFkh$x-%gys_?Q-?s=fo=wb^Y5%S# z9#Jx+yg-?r#0oBZ03tOi?I$AbGt9TZV!)$IVtwx2e0^bxqfxIgJ&^5huvWY=S(Bl@ zCY%1vJNdRst2;rKl;LXfSAFnV3qjEX9D2ZYE7WWy>0&bbq*7NOhMw>PVA`)GhD1Xk zIs{T`Go&(IbD6Wk;+{UDer!^8zN0}cGd5+qhdHa#ETzdQ5AZZrnbMG!SnhIHS&YdQ zR)0mZPHAu^lzU2>L{yfu%I$9k)q!KEXIp_D(ARo_+v_vZ=?scqqW9n~0p3ULh85G+ya`z&~nAj6{eR>VsDW634`v%BiWS zJwLQ}0O)2%9AbqY@k4u38RHgX+$1BA5BjW+e{ij*E=`+I-0ZX!#K>iSW7@ck`1;(W zT(hn)HGZsBnVx6xH(K4pc($hB*3Wo%R6?vqp;j0C^QGq3>pUa8DI?t8>|~uy;T~U> zI}y}2j$pv|1MVlw|qxs3Vttg5t;bWcU1DXTg$t;|->b2a*0bs0jcq9)Z{mFyhmjW6~IXhLV9(^==h ze`{)RBoXvC;am*_M(dge$#cGrqb$ruX zQyYF?;Thrcjqs#oSv9s8&xDfPN$HkhPgXtp;aCt-L|CfeT_9CJaESWJ6-vM7J{c1o zku~`HQV9|^5^1phrr4olqeI=4SBR4!5j4;zPRtA181umhFbdFMkhlbTF`YrD8%-v& z)ai42JpvaFh%ulafCBIWW#b}gG+y;)j66H>S>jLJD1N#fXHXL|*&K!@xR)unnF$t? z>a;~^a8>XZJPnd7xXG!}5FhenbXnkik%&em=t2gLGugyf!7JV;pMAnZVKIpO_dh7W zqk?rB%`S~*uSSDmbSyOjw;HU2EYQS7AZ0P1pK`m9LLwt9qx5k@M5}RLt^g*koEZJ)oCuU9_QS|4}rVxZiGjt^Bm@R^% z6>QOJur!8aVEg)j!}`ff<2}Wt@jkG=>?rjJWifS`3Hb>RPb+9lDD%aaDP@{Em%SuD z&lQ(tvekHqzYUcDY^_x)F{H$oI4Z`dY^900CCPeOtTUn1RXAKoWjQKb8I891p_2pp zJT5|yXv`4dRFENfL~Ju6V*7qj#`AETDs{_W#-|3y;aatZC>bhxgj1QMPpnTktrFrp z1KIc0uL%)6jF<1he9eNsqiUDj`lI)u;;p`EvHu8jEw7tKmUUj@9OKjw#G)Nl6?! zL4c$E5sL6JJ?It>mWsg)7Nl68HoYHww^5X~LTm7I{7G+#RZ7tlKMoZy@zihLf2%?x z9rlm+7f!klPG(|R5%_ha6s`g58_g%ChPfHpuLCrDpJF$PZqw{CQ0+eNP0jAQ52+Ob zB^sBa)}_Q3T0F(EE~CbwPN+&xGFvohiLPRMr6tKz93>Q|*Cbi<1>he@aNrJV~;e9ZUDz)UeT~*2WtoSCEDL0`s(_ZWm1wV0`-8ESbv3^8Ba;b%P zUp$aQ((n{eu-~WvDSrnm0~r|-(8V{63^X|aqvJm4wKF+SDV1gDWAofvQ>n+46`NmZ zY)UjV*_>tZw({hR;WlGtMH2DdP|3uPMWZ3E;kC&PFO)m$UBkzvW+z+I$Mcikeyef0c164fi@74P{UaJz-&KpAmQd}43nbGP2~-87{cU{ivu z|KH5Exg=_%iyridl44_>0x37vuJPxjwD?7_qW6RC#FzgA((*Z9z2=88ooN=UT>6R4 zMQ?vPfgp6Mq4y{iZ0ugj3&bw4v7^Bop@P2bZ(k$h85z;Iz$nl|x@AQFCin$j7W@_; ztqHEz^fQzV8Vz0mDI;Jdz6lf%`@mzIO15zn=IVMZ4*W>>wuJ{Yc@Kj(qdyFHF>15# z0FNyKPk2rNcG`W~tpgw&nsNI3{=g2&04*H^I?ysM(qE{zsQpnHI zH#@Bg_vrtHO*8<)`!;-@=#RnwZrs@JMB5w^Uu45XIO9I;mjSp9)kvA&AElufB1mf9 zE;;E~Jiz`HaU7(x8te@V__b0<&c5lb9c*CG`YGUkpo7aqfWLJoTOxRg)J+sl@FXq? zUc|MU^O`%G3i4Z8b}(aMv@8n2SRM=s z>2f!k?*aTgy)T|85v5v^{bkiozuJ|kaSO%L%s5Y>&y;fAi2Ben}w8TxlM7pd+;LpET|F6Pv3QNd& z1y=-D>@;YC%Lju<>M3cmEVw}}MqZ730o0Ed4PbAe*(=Ol(QLjSeMzO|k{J6r!Hxac zbr6p}Z*uCRBw~lvm6K&t#YvRX{mVq+Sd}3wJ}%c1!UluPj!BYAbnZzl4~$jGqVXb4 z@Ulph)KXnG(K{r19)a;5wy?o}78qsr4M^WrRNnmB)K@aSNaSc&ydR?T|1$!yffwW`7oU&@+VoeVRp#ujI;)t2gN z0Y8I}GsM2(V@mMs8ej}yao|@lhQ0Jg<2_)XOo(GWu_0WakYW%J+EareyiNbz3lK&` zULm{Gf@P3i+A3IejCg%+`Uk=`e`Ms*@8BIkZe4Q}xYS{x=w8zI?c@TJE?J_nl)AF= z?Mk!L06uh$NoFy``}ApXnv_(Sw966{8gE>%Z7^a?M`Mb&!YiWc%2LaRk1hALn5ep% zB3LlMAGg%HO*si=>GnLQEcj7fR$8%BA#>%~lS?eZd(ogz4jl!Vjr=<~;PLA}n}fOR zEq|^RRuIVLjayUw@G@X{`O7$P#5_;pu+8Wdiv?DtDcc+kT&A-rJ#JNjR+%4{S!DE^ z5HBWI+KIG&+NYn)XKHnFZA{@mU&@(MWpUQI8ppYT&wSG-=d^edYM-k4%jYGG45C+3c{2}}lw zQOOZ=bV;i8bl31yfkE(E7v*>T@Vm2iji?coRe9TN&OZn}kZ#t9U7&&82S~ob0^F^M z>K)*}2U}WigV_=jhFLH8V;BAxvIFt;{Xp+ib_1atlD0bmqaE>B0eF>R#P==Q-T~fw ze>u>sDHw!;b3~Zz!4tQAb=MwAz6{Mk#f`h&zMIR}$QHOiTu2k(AvjUQPiZ_vmP@Ixw~#!O2?tM!oJMW z2v@XzPcChQ*YA;byMwKPd|~&A_ZFQiPLx=XsI?0u(Xldx#VC%7NsLj07O=@ORk93S zdInN}BZfu-Rzl5FwSWC@iBT)psLc(pPRyQKZE@7Q8y<}4iToDl(3!U%HTaPgXYda7 zw@vPkao;7x2AAOqE;f7g(S$De+R%`?&4d{`+rnO=zWE}uXwtEf*l5_#2KyYt>sW&< z8d7iH)1YzPAHFM-vW==Fu___ok)91I(IhF%R;pqp30jjwS=|m|(T9k8_ZxA-t+FlH{9vSWL9r=2O3> z-3Cws-*iU{>fr5aEk!+8tx>4`h;V09%J}OVZLklqPlF$Yu@hd|C<^<t@X5r(9?x9pSD%I=V^}F>*q7k*X$W{G zP!`%cLouVhLa=KKj9}bFKAT~3hL_3`hE*5H<+A*mVLuZO1>Qa@)n5+MzodymKsEF(VB;y6#K67keB>2N1brTLnLLNP<2QgDMl4Oge- z>7w*n3O4`uzt^ch)x4qJ%wSWVeXmZ)W#SYnBbq^@Q0V;ne>{tipr*d~Y_jdSm(aeT zlF$#7zf<_I*DMUX1$H!HA{ZEP5r`4={h(%mr0EZJTm+`RXh6g-6wIs?`h@W#sJa zXf_=u5X5wVn3pwc#D8eoJilC-lMgWF0=&hPED~N3W&%pPVV;a3XwmKupNviqZ?&Q! zKB17$R39zEP&Bafa3}_jN1!)h3>>P$*9KEdjIM=G6HF$x=J^)h^ zsb28$J5R+2ajCI1Pa>7%mf@$=>Oe0M9cWjpV2|Z7_4D+q&vK~@29Y>vijUxq{otu# zGAf%*5v12WG`HjoD* zux|xsh6qeN0=D@k_oLB)@I<_XdWM2ffh0mDV06&X_kbh=7z&XBpH7$q`|#lsLs6Dk zD$Xj}YfzU~#!|RcV@3XV#H_%pGw?qLrxEyHf|DueiHrYR9ehi@M$Zz9IWcUpD6krj z37&dZqj}aia=eRH{Awz(LmhZuDD`?I5{cJmijGNji)m3*vC~_r#%HT*)O8wsdeDY{ z9jqW0(Bm3wG<0o!!yYxx3rx30nJlsxeU=h~*}V;Du$;mH8t}pMk5+N|R&PPdAuL58 z1^@|DtjQb~?oK2ED89HzFMGWr^knvWX~3~4q4|ECUO>{OhEmx3!)f1&(Cah~^|cVT zE)Czyq>G&M*X8 zFACZz9ChG&)r@=|UBKWMKU%LP_yv4PPMvX zqywZ7%{8)2LA(|i$0gnfysTb8dAj#`{E$XN$z_(jI6IjD4zxV-yBzfrb+9{Hjo%1F z0cWLz7E>03q-DXgAmRZ>oQ8b%)v!Abc6ayj7~&isqB*3#Kg3BgNR*rOMi7#N$0Ze# z#y9Ll2G%ngtW?=eCXGXxAgzhLVy)i`HnrCu$fL~aeKiqZ7R=4ZpAJ4xCSbSM)M~F< z{b!Y?(MGV@RL3wD{@dU)u+8@e4K6l$3lroLDosGAMr&1xg}ww8|6GiA?DO?h9;5F0 zmSB`jq-Vu2^b~Ql*zJ^vB_8(*^?%jDS?bZ6(Q1k%*!pJh&-htJ@$YRwAKW%KQ4_4k zzfj>H{v&v8+nW{DW2j7`xIQl9k@wfMwy`F!{ZA^5P4&%R{SHf-BIb(0g~7xUpvS%= zM`|>1X$H9itqFGSkRucgP#Ag8dnAK~bri)%aoNQn;>mxcybRL{N%_dYB!!hr(0`L9 zZ1F+4(CKS{-^zxYpMGxy@DpYD`@f0DAEq6eeZR1Ver$cuj}!be2W9%_za!PZg`#8C_i1yl&r(pVG-@$_bK zj5Wv_U@H*T5=Lr`H95wh`LEF`S4E9OMv|z)oDvi?7Nh7))w*xrs~Y zG$N^VY#sD1#a@%j5%MTh^=|b(H9-#^&-v3^ucRYUllH=^uVmqx-kul*>;9+4<4>c4!TB12&8tD;$ySQLsg{bK zz4p&;3OqXg;Go5g&@i=4aU5f#j;9+QjPn2fi6k12YJT(uWM}$AXJOY<=w|;afQn!T zky;ZdgXAO;xNK_MhVB7?vF9%y^zP^v2?^kI2C_m>nja52@%o+6Ev-Ad_}N~c#*HK zt=0?mwRQ8UJRX%$irKd8G822)8y=iOXHex)dIq1yo~}?6!x#PauXw%snS%!pf@XAuexxjkSd?f+q5+O{ zgO3gTYlxbN%loJac39Y=q}-DGG|~crc?pmcqLab}V043|vPV&-Q-r;3Zel^8egv|M z@pm*DzC8B9nR7e@lR@>)d1UPH*k?YSNMSN46F-}4#%IW_b6gTbWl7){32vm|6Q1xZ z=s2BDVTv?NE{{p>_f=K`aAcNFW-aKIx-V-#aN~NRbzwFZjG3B(#4gR{HEwV!qvL z!J|JQ7?iZ4xajwnEqfOUK8{fxEsgHNUkX0vM>8KOek`bU5!Hb&o6ty%4(qO0G#oxZ z+Y7-G);zXwHJCs=k<{%J$;EDO?;)*n4n2yR?9oIMahgB}GR5g;Exszqj}nRSBn=)? z4_CLSgCA+|M0Kzh-w>QA5Q6Z;Y0;#Z7f`B$3y=;P2Ym4X*iK>DCj%cuKB!|gEb|DYY>hzTl;Lz*j9bK$u>?Fkr9y0u)pCjXf$_vMf!X*g>fm`b zh4x9{3!-+qx_1|)n25^zptSS}uOT~%!6XPAhtLoTC~z8$*;DWUn;jJa^>83`)&e4eDO9lY!^%e zLzHSpF)TqQt_>c8v?{D_zuD5H#z65DMefynM;X*9i;Bw|pmG%-+}$;OMm_~MrZ z3)I0Xj3EAwy-wj0*TV5Sc)u00{_#4*PKnVd>6eHXRFO}R-S-5d1e=SGrA)$K0DMWg zLYWkh<1fUDkF+|rwox~N`^)j?*!_LxKIXSaR z!`GZK9?zJZ>=uuwg*)uy-#q>Ay1IWq{hN=687khHIrHt((zj>Md!Sv>_gS{3Bl@g!1T!nM$TGI#8+u=x>mvkE5Mgde6W>9&(>E1H9#W3CtaarWHwB$;6ezSnea8G3zbMyW<^YQs(lah>zcujoM+tXW~%eFP=WYi@UW!qA-RlZtp#lv2p zUoY@UdpPb;59&V>cZh#Ojm>Gv4*K!V(g|5Q>eR*m{71cBHu~TH{PJOB!`}c5Ex z_aXGf*A5C#AVnShR@@;O+cz-qu)AuezosBPHFd1NXuK!YpIwnMg`ID;)MdD9tcA0P z+$OuNYOK4Y1O|wAq^D@2fvT?ZI&16@dE**up{j>vyBpm2v-SqNxzG}y7w?0h!`G6E zlPp=udVbt!e^NOxDU1lRr%9>g+N`9E?#Id~BW+Ad$4E@O7l-r-|l@Eanjlh>+g@lDzaBnGwclMKDNSYBDeX^^+ z6zhw2-ZVt{L(6Tp+naN9n{Bq{-2Tzd4fE&B`LMqJ!#Q*2H|Q(gnlkl`va&a(PI(K- zAM63RtR|L&U2wN(=O!}RxdkL5#Bjr953vb2MT+`O~TWqn$S)$pf1``tA0Bu-$t~p8JV*PAGA>%9D&qB^G~~Rj)9* z%w?XU1~8`_<*v-(5V+bG?Yw+w(avmHkxUXV3vPsH=iPy9^!sqM^YZ`K(az2h=_AJ9 zigvb*ttguW9EW4+5Ouo`dW4iZ_Z97|CWC5=n_ad7rA(G(OdCr^JLj485bfMzyA|zh z8TM2aickqhJAd#};|mqA)5=rtAfug?&X%IAv1H^mzyQ(C%Lhd}tK1b{6z!Z<=a5sU zEPnruGQDKjd;k1$BFLO@wDTtH|5vngO5DAoogJ0w0;-}q#aW(YuXV>4c?DFFE!U2s zou4obv&ZKrR;Ii2lY?(Tv~yBsk|A2(xH%l`4AJEf>+Gy|yN5Y^*;d#b=Y+j&<5Ezp zGYUaRJTMz4@VU4NSvw+_I?cwp;9&sOhhy8p+A+YMqXE{=4HWMTi3{Fbg#s=hyTHrd ziGM|Ggt9QY0jHZQZsBtk(5|bn8oNLa>L1T~}1%EIqz42FNOv;{jk)O%J|~vM{3eEJEc#4^|C*?ILT#}CT7?h(~JJ}DMS_Ppk^yz_$ky3 zksrSoekADLwSeW0R{tLw*qJZcHiLB6tcmJ;3}iO!)FA?;979kM0SpB z2FnJvnj-4N0}fxn@1dRnINa$p1qgOb?HG~PI57r=tr~)zLMcd>(y(+Xgw{}B0L2E`G~p8lB4;U}#{0#f;=GIz&e+WA zq~v^sT$--8*STVgJ?0EUZoXl7q7m40wHteI$cS znQ;H!GG&mRAcFXP7oT1FI=dK;bA z9CIPp+353B`XCmvGSvZ5vsDi7IEaOWO#;qpEB<(Vqsx>XUy=?z5`3#JGp)oa(>D|V zpQ2tx@P2WVGtDsVj?lF)VDHve$9_kiL=oE|Qc*5Ti_q7UX~@enHYOSxZ6tlI86zFB znN{3@^mS)jt!ZeB>{uW4Kv;?pVOfD+2TMQ>awI(d9b}wY|0!6X=s@BFCH#Xv84|4T zdjgDzGsGV$!zmObd2XA{=_0ld@yA;;EgZwJ$B1Hx-bWwwcBc;)c)lLat@$f<5bMR= z_>=gXcst=EM#10rlqAa6R2lURnu_)`T|@tfVPd?-?%+$Q2*`PVD?+4vhT|h6^=ji9@|E1q=P#L_2*9=K*PJyIlVuf z$@7sqL0flX+acvbs)gi(WQAma6c4Eo63o!Bj7ZuJaGgOsK{*qGs2k3Az4|~mXXc=B z@)+>RA>aTSDD#(z;lL1O;X9nw_AG%)u;;qh52!5*r8EwCx--M2Zc7=8> zZ2aP13knxF{#!BQs99RDzuGO1sKeU%fo?jD&Al#lDV2Fnv^@O3A3w=!antaCL83#yl z>~ZqWC9hJrLT)zvksJZfr((!bIB4l&3>GW!CvStyL{h>uh!Q5i3O+zd;997Y04S&! zZBok=IHm64@iV7krWxqj@+f3s&PU+|MV^sRplcX5#FaQ%6Ar&;fNhn6&BfluzQNXG zC&@Ad^pp~w*cdHD4-?6y)0>pB;KJ6dn2lBy@ih(i4$q^!^N_m%{H*9*5oP%>V(y>=qSJJ#6@sg}x+{ zI&w$v0!Y$+@96nfJqR-3i_j0DApC{UGeA}ku{BLlN(}FG_+tV!qhTeAMZVX;nJW!& ziqHtywMxMHF6v1ZSTP*9hg0}^tCcW)+2B*&cpJ|rl02U{i02cLR}yN&M;6!VFdfPL zNEqMbet?NV=E60SOC$4`Eodw_ADl9IB9=1YvB?i&{z>SX4=008!AfVK=junt&zy}l zJUVl>6L#H(VMABM1E>XbMY0W#j5yTeM7TxBL(~xBZ&F55R#C0gm#H687e`71Z{iQZ z8W}o2@=0tzb`)#HE?`%%>lmyS;%qz`M%)Y7E7+gGK6?+Fk9`WKgf7OGU@Ne7*k)|! zoqmB!aTRXB<8dokb7^=sUWk|DwfJy+H2xsK#0QEJa0bp~xYmM%C4i^qz;zOd2g)TN z7mdJ&pL7qKroeR=)Ik6bOoMA9)Ik6@%z*0%sDl8mm#7Y?!o`1s^_Bu6`(R>}h1umGr5 zjE}^p;LqT%;~zo^bW$kV-;)i}w;JFb15}y;GJ7ueBK8{W{XudpANHJ~dm-$gqX2CA zAmPxx5Z2?-IL?Q)SadHWbpZq36X2Z*cO(Z{a7XJ$Y`9zC&VhR}+_`YK!kq_qG+Odu zED=x#7ivclbxzn7nF~94Yk_iT5BLmNvkpUJhdYA80e9586Yi*07u->+Zn&dXJ#a^@ zdf|>*^}!vrngVy!s+w$7K(eE+&;xwv+gjk1dQ#prMkG!X z@YJX~=H9D3;yk2%Fc|TOpTlFluO)Q$>O;WaQ-H6h0YA?GKAs8uI~&U0>$^MsBHU7# zGbaKLw_5T;@82%LkX%JFlMC1*m?F9zXbUBDt@^F?1d)j;x6&7)f3jL!+VJUI0qK2PeSNCr@g{*1|oUN5R2A5Aqhn5%%Fc zDtS^XXaf9?kvv%SCeLhr9r8MEmZQULgFL~Nc==`?1D)fF-YL49c}#RNEP4;05KBS~ zKg5{JvE@(*86fOTF(!UWj>)g-FykIL;P^r|mW{p&_Yz!jDx6b{GQw6U1IBDT$gOdp zKUQJ~a0cjt2K*oR9=sdxCen#N5}lMZ%A1ty)J*EvGzIN(+Df{Co=bn6zKnj7p=FF` z{DE%oma!jW|H9F59^fqED!47&?|53?c;4QqjHvgcF7ea& zPxF7^2czqv{}ugCaDpJ{&U7O41bl_c7@-U=Q`6JaqseS~ z=9y=ju*aXHhC&H>&AHg~=#SEzmk5sP<)ErOVBZk`W_D zjL!#4U=EhWcMBV2P|MbZxpM159Ap;P&!K+kl$&8r*-Sgpg5l`Ed zGInp5(`}-69on>M(+P~j={mG++qSFGD!1)IKqPlmH8(d;pEm8`u_H&0ER2V`t)Wm) zFLmUoY15`PI+XNN+qPLOvTLU{K~syr<4B+>Ua+0QqJojm0-npE+v%hmf}}-ELpPT zOi*gi7&$WEq@+L>sWc!vaTefc9>K;A1c|=2fgbydOt~|P(slVV-Ctc@RasS8DHH~JuU+ZrCe*$Ro17LD z3R5?4PBs4cqfz+LN5TldzYj1-FRc0Wldr%2dd2Z>W{mO3`4Cl>l$4YmR# zrMi%u94BLUU%hf{?}l~j*8TF!FUgIK!)mK43X_E_YN)rjw=op5+pk}bi$iH%OqII5 zwe8B;4c~n8&G#!=3Sc!(FD~#;o%YBhk35%rpMa9%Y&pQ0b*W597II+&A=-Ih5Ia%J@zH8B< zMJv__mGF@;gN!KHghypC>3AS82oKdzDE?c(#J^+5&fU9@Un6Q&s?N?AGc$KsEU{A7 z_0G#j_pD#Lb}bOu($G*}Q(0bM5ilu15cmzjpv~6R6&s7vyr{Q7*mL;svBRfRQ@3x= zP%7`6s9|aMDWWQyMeXUdn4_bO>1J89CS+GNQU z_`%lQ*ObZy3sMv1=p*IRLZLzQ>qkDpT{-qA1amNW5q51JJ=29p>kUWFcVA~a%gf7) zyprxSYZoqDxTlBVt}f3sXymYSODAOn&1S8D+HvW^f$ghTtXQ#frFx~grlzXAq$u0W zr3AZSoY!=BCnjFGqSc}_@3)COgH#}fKBwc07ku^ASF5iYWbtLd8D(Zw?}iN1Sd6%D;*%Ub7x2hjy8Op4{`RMf7lpzYlg*Q|R48QkUOK#g&zhxQe*XFA&>g~z zj5MFynI!CLJA3ljv11u0Pf8?*4zbxN&6~^ZJn-`uAAhV=uGo6ABXHk~I61Ur}>p9tTZ0+~|`E31F zR%}sGQL4Nr*C&a3WenxzrA7I<=>|ryyYuqp%jKP&ad8(fDwQZ9 z4haT>UFTcRoH^ayOBct)#3%%89ENb5JW3o*4~2@oGVJm;P?9HuB1=~Bs8LlVcG~fE z%Qv^NRe7UE-LDu40~gMm+PPsFfU{(YdWo*Iw74KQJ5@*P?YeU5(xuWXSB%E<=jC#g z=4JKv3gqLb0Jk*fNIJWBfBEH?8{2!dwY9Yt+KQbZciKC8SQ0c0m{&0x(c3$4B&dfZ zyT3uWfQmiY*4EvHXJu()1Oh>f)(FDesMWI0?%uuoEKBQYfI-;c(JGZvE|tPz-MDgS z&C2B<5S1fF3?Ei4tthfdcpN63P9H%KCQ~4wR`>SC#LSzUbq=H~MvGD^u|R;}NTG*h z93l{yF{47w>E7`1#~*L#=BO)X%qa0lIM|IFylkX+Dl5u_LOzck>J3SlI$ws%Ac?-C z=6MxCe-u9F&RxA4N>2x^-P+#X(@n|AQK{rnbQ+J-+j(T&>J=b7R837I8*8gd95OzS z&15p0sMPrQP)Mt#1cM-L<}z=B`ke3PBX&2q?gAD$DoL6`_n)|U@%lB)?e)kv=Xi&NuouPd@#qLP6XGQ0W~Y4FlSbrj<5k=cVH-VT}KHacmggP{(e=(FsIfzhhFs7d~5O!r)V#A+Brn|2_V zwvej`kB)KBC-<-hBw=fywNKD!TZ$cgIf0Ar^+4#N*HgLBTK;d8~MN-hk&i7{rmSHZoL|c(&`SK?YhRamzI_mxJ6y9tHDs()lG9& zmZs}eQn^N>5z~4HL2!R+Z*a#Bq9!?Agag$2s2S0BVQtq(&AB2{i-mRA0BU}O@cO^i zP5eQK_SZhao7#smbnSCD+@DAA-miWc4Bq`Jkh^e2IZRGtNv=lIb{vHP^!pD>}`6;UmxZEeZYWmSRLAcZRfp$9h8BbAyP8$bDE z;|)#aBR`R9g6ui^LS96cSV5FX!u=1U>9)os=Q=w>0Y<@q+9i>C22@AN<)?tIQuft@ zFzG+g$&{LsdMRvCOhR&Ua@K@g?0492vFA0<==JP=>hSbwo2{)aIaw-Qwydfu5SW*8 zZ;^}L(i}I*NvAJd$m2yM)}K+|@_0Nh%i~hf+rh)p#bjPTwrkg}%XCqEa*)bq>0K^Y zc2-sv+_bzq!a|Dx1B3NyTYE_Z%;z&z-P^a@?FyJ{fYG;XgC2CXlF`ZL(Wq30gxcGC zN62Uq(86O5RzPE5H52tO>Q#u>yq)CAwzl^6j;A7-`>GdCfIotqp@bpuw1Lv=5RR7D&-w9jv$=b3$xK{ z#SJjo&Jni4jDFqviwebuA3DrRWsFQL;bM0|^fo--Lw%r7$@pLeuvpwEc>-_(R~}#T z!06G9MG3;-QJ6Si5b29Y*A@8^by}m*XwWDIz{R_63X3hhsIp=}kIYqG-1@_(|5mQpc;XsmV3&~NVKGSug&h1w9Mt737E7qt!tiz4 z?GBsG7Oz%tdccfnXKTFRd&}2zR9#>XUJ#hvRV^(owQd#AL>6f_YtT^1qQE4VL+QSH z^;%~)MGW(54WA`98WRm#8Jj{W^QdW8cYzIgma6vT!L-OL3!K=sVOJ|fXRn?(5$Gf9 zGaUyFr7(ToMez6QmPB0?FF!3=$8X!ackj{5{J7NNlP6Cujg?;9d$JwlNzpzs*r}+A zgAt#Ulo$q>)o*b3H&=Ulgo5U&4?p~Hh2lE3V=MIMmX4qr+;G|Pr$F>{wg8M13?YO)PcSB`90wQAL- zW1T$=zOc3JYJkoIvp&9L{J00lL`Po%FuAwOAegz5B9xS&!6{QJ_1vrLk=yAS*H8(s zH;uxDOIC|w)B~(SfRr0HrEZ55ElZ?cKeY{%O6(>l_~|;+*g9qylKJGGV} zSm|sg5i*&C*f}tnPG1iOuO8pCXHOf((HXA=Fq#yG5=5$`!dyzjrQZSam;wDfpqoLa zw6zxxn?8MdhK71#=T4VPM_kznM%db&@h0$x@vn0QaIgtO#)Zk%9q@?hKN+~o73{Y4gd`Sp7{tK z26&UM#VDAUPpw|P`fv|Js_3~Y6lN4T?e8ThBAxMS55bcsrGwKp+Xedf0Qg@|Glia_ zOt)Dh1wWE3iZ>8=&ENq)h!MKFIR>>7fMqe4e+5JR=VNSx6hy@M@n!KU9F)u6c8?u= zNfwoWI+zzUgGIodBmg;^YCU~;+w$)P0;N)&;K@jD9SH5O0Xvs_aqIV=%%2bLB&2x$ zSIWYEQ!IKCD>-a1=3~`TB`**t@dGcB}S8Y8-sNCbnBW6zw&&2O0bnirQQi}Wvg@ugHD@LV=dE>~&jT^Tgy%D8L zhY6XLM;zX`=UChIKu=6h50%Lf0!?HB;ULb>`jv5r^jy=FJL1zp=E30(R(JR1(}(t(&Yd{Z(ZMMm)96o#i%YnE@#N7%Qkk4k zC{>ZwA94lih)(y>N42#_TnvUQ_0XZzjy-!iR{4BBkK31);!P4#gT28(>z=Kfw{P9P zYscnwD|Z%`R1Ir5di21ad1=YXhYqb;b?A^-yl9cpxN@c0{L@chb4w@zDlK^9;?YC< z_wKro;Lpm=&d$xxNl%jO*}QJenw2ZpZrB=uVJ1+(4fnm*nSUeZOSoFY~d&?z2bMeZ648qAeF9Z9fBTXSkOx zbsyfi@$k>NR-Kr8dB>V{E0@pzeuK`C>@>2em-cTtcx>;gFXn$Q5kyA|KL7Ho#qY`G z@6{|`TvK!KVDh{SuXo!vjpn=Ww8XiK=exDJ<@t7<2AqXw4{l%g^R{lS#hRP||HbE$ zV6gZ4)i1tW^n=&i+KPU3=FA0e1db07cL+=-!ST2_duHy9>uo2+W1Gv;y$Qsnt2p1F zRvUamp)XY~PxVr%URrkc{{7>}(@u{W(=@EU`}&o0of=IicUwlrwi9Q2`0_-Plrt~O z?>~EXB}ZhiI*uRNwO+7c>;BdYy(X{CDD!ys?&b4OokFg7qp_N-q3gJv3{gQ6*dW&38XUASK6HM^sdY#iEnQ7^e%csxoTT)z9J&_m?e03Z|k1c3)kiDj3jC&arOM^){E^sn9Ln} zdAz+_DU_{nYQVvRG}?+45%_X}lA6USyTYbL$`(xLpy5nU;YwYfg zt5@%)NTYiXZ}{n(ufAQj<`=ikVoB0=9^1cl{ZY5eX+Lo2=se?PvpF#->GI|F%V}vx zjuaQSw-dz1jezA|nQYZ6Scjq?Ir5yp_xREM`%mgBdyHtr02Ue_bMyqh1k={Defd5gW!tA)Sk-+HgDauVdI8%t5=?D z>(YlXK9AaShQ&Iw%^ya7>)O?;R{XS`DMx;AFke(LLV8tMo<7z6 z^SWJoz23EJ6^a@cCwTenIU=XAv0+$!eVs(|`R5n^w%ej(GnX)*YTOj2rB z;KupATYg%!Xz`-Oi&1-v7h5bp{gjfjZk^eD@nY-I<7Ydi?hLz#ypFMuO zLs!u>ayZbUp+3^y?KB8om!B_OTe^i&bzsz4ZA^xNq=6K+8MFH6L=Y_Vf~o`i6ONiQ zSF)t*K3=O>n7BlKiY&PiaY<08`}EVPQ-jxeyz8!0r(At$Ut!@sZ)#d+SuPlP$Ih{zn%Qg^UYh0~iAdy^H>hmoaM(EnHAN;|?@GeA<$Fb@{mRy)(;LqvY%|mL&@%Qa#0oLlOQe7Na#YmiHkGRFtWa&nT`=XcG^%F9Dy?D+ANlmiFk^7eM!)k|ki9zA%Lo1Bv3vcz5?G!9P! z?a=1!J9Z!BEnmI&gibAvYAtE0&j_5qbh+&;zqM28FRmItg~Q3rbZVIG5xmLuwWV|h zA1szlYnE;P{JYlk7_;Zh{;e0UUAwq>!}lM(_wV`h=YypdII+2K-@ZclZ%Hm+7mKf7 zl1eY-ZQGXDx_NV@w6b-r)9H+tvu^ZupF6%80AIT$CkJe!Gs($`afaRdj-1+_QZ!?P znuA?Dy4!62;fL)L8;js6T|O5!r^S$;&h%nXEvWYm6UY+cy#pEtzz*nzetZC z7mK~hYZs3nKGczzk)DyB21-{Th(HhfBeARlI^B{bKo|C|U2OirgZ!WEFk;uQ|9Q`j z9d7rY<-1OLQu50)!119HMKNh?*gVAOxx9PRhP7)}fNmWyQptII(o; zi4%7F&YhK&moF<6r%$t3r%#*BOO~K(Vt2>?Y3!wiHqN}Oaj!Hkp4ZZZi>vw!SPFuK{z7>!0DtHxQ!=Q#KnL1lTP zpn#yF6nRu?rBF&K(00G)w)oiDN3xlo+!wd>{LVS|oZmUW^ZA`S?&S%>CM@PB-CbQB z9oEDZ>FFyW(GsmXJlGy&9rMthfMh!%*}|5!Yg?N2I=wEjrnbJRm&fa^%gV}1OIBmj zbaLczQ$u}S-Ktgf^<;Z&Fg!LbwA-!LQGKFD9?|*m*$chCx>~Paw?IUV+iXG0H{!El z!}~p%nLVwksjUeKR%;-(MTo70v0%_R+cU!tEySm(bMOs># zg75AM{5KB-DX~;zU8kq1>{AR+A<}xY=4+apqtoTArb?+}2&J^H;PXs?gMX$!FVOjI zhei^6jJ*d2_#QhYjZ02Wj+0X6>tKSeo2eKhx_ibLliKIw3eb3xn;MMg!a zw++UmHgBlHSQLqN-|b=E%V#Hd z16<<{{N{pbN8kOsVsZFL?@xH@EAQUF-|!=%XtVmnyjyLfV?j|#Nl96F%O)`pD1uF( z8nKeqj?Z93&r6kY`&wH;HBOJTBI%be@T7=oPOyi|qiHV{gjJPhX|;I7B_)cjqob|1 zcGu#?X7itNb4?|ZzZ|K*bEoR~;f))?G&0O=6L{|qT#-iVU8bPuEPTmC7&Y-ekBE~ z4@ZZIUFB});G}O}^1#@HR}i0pQRYf!y!RTi;B5O;=#t!xOEee{D=}7!=9@q?3blr4 zi4=4ok3N4K;K9`=k;~FI@7%dFS0C!`K%{quKQw?;(rOgaF#c?+wMez3>gKgG2g{y4 zQz~N(85=eMnVA}Dy;xDfFjXz)mu`QGS*_reZ`FgO1RI#d&!-x=5=3UQ<)Yv?3upFYqj~ITXeuq`-)uq~KGJ z+f`yA?Rs<*Ow(Do|3VlaICA;ct;*vE)6(wUTmEKk{J#j}q;MOorHzeNhAA&!m;fWNZ0=lX@T?px zVVsyK=YmI?;zcSK=NGBx#p}}YV6)!6RwEw6?2(nPTb%#JZ;J}Iu3NXYu&^+fV9cnG zGhPvv^PYnwf;>He3R&fdQLO}4n-i}L?St{9>*b<_gu;x~D8;Yp|9>QmZ7n~XC@+Wc zrOxc)`fKDHgt7Zy3FA+;ZTsX?KVi&;6(>L#e=tiJ(?2JSDaWwYI_7lJL}W%1jQI&Q z7W!lf<8*_>{h}3I*E6U1oivs(<^dUPc{uZ$FlO^=h1P9<&tO;(?Rg6@UZ5p_v5S_7 z-vW&Db65NGDgYR7k8{m*k(tF&@WrrlvV5`A=>%UajD%E5xxmF0yegep9chtsR`s$v zQjOYHA~a*-)J$oNMx(}5O6!dU0q~zLFzWp|mqET4Wkbtg!;%fLu@RK{$79EiovD3J z$#K(h4xt`p{b&xRg8phC9H0fl`mmd75PVrZ|lYO${Wp{eQRPuirKmT zfL_c-Tr!KL_EdR!`GpP#txkA4;t_}mH3DqjgV5Bq9R& z3h`7e&B$1qh+mL;O{Mx7FR!2gE#CGNC2z33JtZZ|YwrMYckKqt>4Xn%VR*1o`NlNIT4qt(}u(nqtL#a-S%JfZk_Q>GqR4 zLk=$ccnT^~=rbzVnyP9xMCWW|K-)$;+~`2`<`w^Y1541aMLRHwjs> z-0iTyq2NJdLqjbr)ek^_lDR`|T$~o!tzm*Oc0YIS_Mk5sBiKaubTfpkc7`Uy*t?6^4y8u-UOA18mc;Z@?_Tbes0ZA%}A)7SDX zMb^xqxW)8FZah^6kMlBiPmYJE15_F3cidw5G`$_Z30xnh_9GldAo~Ng8`Fqe str: with _lock: start = time.perf_counter() if _engine is None: - _engine = RapidOCR() + model_dir = files("rapidocr") / "models" + det_model = model_dir / "PP-OCRv6_det_small.onnx" + cls_model = model_dir / "ch_ppocr_mobile_v2.0_cls_mobile.onnx" + rec_model = model_dir / "PP-OCRv6_rec_small.onnx" + if not all(model.is_file() for model in (det_model, cls_model, rec_model)): + raise FileNotFoundError( + "PP-OCRv6 small models are missing; run " + "uv run rapidocr download_models --config ocr-models.yaml" + ) + # The 2000 px default loses email characters in long tables (design §5.2). + _engine = RapidOCR( + params={ + "Global.max_side_len": 4000, + "Det.model_type": ModelType.SMALL, + "Rec.model_type": ModelType.SMALL, + "Det.model_path": str(det_model), + "Cls.model_path": str(cls_model), + "Rec.model_path": str(rec_model), + } + ) result = _engine(data) if not isinstance(result, RapidOCROutput): raise TypeError("OCR did not return recognized text") diff --git a/crawler/src/crawler/parse/image_test.py b/crawler/src/crawler/parse/image_test.py index 0ed5d1f..cd6a552 100644 --- a/crawler/src/crawler/parse/image_test.py +++ b/crawler/src/crawler/parse/image_test.py @@ -25,15 +25,22 @@ def test_image_text_reads_generated_attachment() -> None: assert "SEND THE FORM BEFORE DEADLINE" in text -def test_image_text_reads_chinese_example() -> None: - example = Path(__file__).parents[3] / "examples" / "ocr" +def test_image_text_reads_generated_chinese_attachment() -> None: + image = Image.new("RGB", (1600, 500), "white") + draw = ImageDraw.Draw(image) + # The bundled Noto Sans SC subset keeps Chinese glyphs available in offline CI. + font = ImageFont.truetype(Path(__file__).with_name("NotoSansSC-test.ttf"), 64) + draw.text((60, 50), "夏令营报名时间", fill="black", font=font) + draw.text((60, 170), "7月6日10:00至8月10日17:00", fill="black", font=font) + draw.text((60, 290), "请填写申请表", fill="black", font=font) + buffer = io.BytesIO() + image.save(buffer, format="PNG") - text = image_text((example / "input.png").read_bytes()) + text = image_text(buffer.getvalue()) - assert "2027年夏令营报名通知" in text - assert "报名时间" in text + assert "夏令营报名时间" in text assert "7月6日10:00至8月10日17:00" in text - assert "请填写报名表和个人陈述" in text + assert "请填写申请表" in text def test_image_text_returns_empty_for_blank_image() -> None: diff --git a/docs/design.md b/docs/design.md index 50b726a..fa9f7b9 100644 --- a/docs/design.md +++ b/docs/design.md @@ -81,7 +81,7 @@ | 数据库 | 服务器上 1Panel 的 PostgreSQL 18 | 和鼠洞共用实例,不加新服务 | | 抓取节点 | Python 3.14,uv 管依赖;Ruff 做 lint 和格式化,Pyright 的严格模式做类型检查,pytest 做测试 | 浏览器抓取、正文提取、PDF 和 Office 解析、中文的文字识别,Python 的库最全,代价是多一套工具链。3.15 刚发布,文字识别要用的 onnxruntime 还没有它的安装包。Pyright 和 VS Code 的 Pylance 是同一个引擎,编辑器里看到的错误和 CI 一致 | | 抓取 | httpx(异步)请求网页,Playwright 驱动浏览器(Chromium 的无头精简版),lxml 按 CSS 或 XPath 取出列表 | 各自领域的主流库 | -| 正文、附件和文字识别 | 图片用 RapidOCR(PP-OCRv6 small,ONNX Runtime)识别文字;正文和其他附件的候选库:trafilatura、pypdf 或 pdfplumber、python-docx、openpyxl | 都关在 `parse` 模块里,换了不影响别处;图片的试验见第 5.2 节,其余在[读正文和附件](https://github.com/mousebaoyan/mouseclock/issues/40)里比较后定。扫描 PDF 跟随该任务选定的渲染库;不用 AGPL 许可的 PyMuPDF | +| 正文、附件和文字识别 | 图片用 RapidOCR 3.10.0(PP-OCRv6 small、ONNX Runtime,`max_side_len=4000`、`text_score=0.5`)识别文字;正文和其他附件的候选库:trafilatura、pypdf 或 pdfplumber、python-docx、openpyxl | 真实附件比较见第 5.2 节。模型在镜像构建时下载,运行和测试只读本地模型;都关在 `parse` 模块里,换了不影响别处。其余在[读正文和附件](https://github.com/mousebaoyan/mouseclock/issues/40)里比较后定。扫描 PDF 跟随该任务选定的渲染库;不用 AGPL 许可的 PyMuPDF | | 接口的类型 | 网站用 Zod 写接口的定义,生成 OpenAPI 文档;抓取节点从这份文档生成 Pydantic 模型 | 两边语言不同,接口的类型也只有一个来源。抓取节点用 Pydantic 校验网站的返回和模型的输出 | | 判别接口和 LLM | 实验后定(第 8.5 节) | | @@ -107,11 +107,24 @@ CPU 不是问题,要省的是带宽,做法见第 14 节。 | 厦大信息学院的列表页 | 浏览器 0.7 秒;普通请求 0.22 秒、39KB,标题都在 HTML 里,用不着浏览器 | | 电科计算机学院 | 用了瑞数的反爬:先返回 202 和一段脚本,脚本设好 Cookie 后重新请求。Playwright 默认带着自动化标记(`navigator.webdriver` 为真),无头模式的 UA 里写着 `HeadlessChrome`,有一处就返回 400;关掉自动化标记、UA 里写成 `Chrome` 就能通过,UA 末尾照样写明鼠钟。首页 3.1 秒,内存峰值约 425MB;同一个会话里再开列表页,不用再过挑战 | -**文字识别**:RapidOCR(PP-OCRv6)识别一张 20 行的中文页面约 1 秒,进程峰值约 690MB;抓取节点只有 4 核,会慢几倍。 +**文字识别**:用 `data/sources.csv` 里的 9 个来源各取一张真实通知图片,另加一份 4 页 PDF。图片覆盖普通通知截图、海报、长图和密集日程表;来源是[中科院自动化所](http://ia.cas.cn/yjsjy/zs/sszs/)、[西电计算机学院](https://cs.xidian.edu.cn/yjsjy/yjstz.htm)、[中科院计算所](https://www.ict.ac.cn/yjsjy/zsxx/sszs/)、[东南计算机学院和软件学院](https://cse.seu.edu.cn/49475/list.htm)、[电子科大信息与软件工程学院](https://sise.uestc.edu.cn/xwtz/tzgg/ygk.htm)、[厦大人工智能研究院](https://iai.xmu.edu.cn/recruitment/zsxx.htm)、[厦大信息学院](https://informatics.xmu.edu.cn/zsxx.htm)、[电子科大计算机学院](https://www.scse.uestc.edu.cn/tzgg/ygk.htm)和[北邮计算机学院](https://scs.bupt.edu.cn/rcpy1/yjspy/zsxx1.htm)。PDF 按 200 DPI 渲染后逐页识别;它自带文字层,不是扫描件,只作补充样本,扫描 PDF 仍留给 #40 按选定的渲染库验证。图片、PDF 和 OCR 全文不进仓库。 -在 Windows、Python 3.14.5 上用 RapidOCR 3.10.0、ONNX Runtime 1.31.1 复测:Pillow 生成 1700×2100 的 21 行中文图片,识别出 21 行,3 种测试句子均原样识别;同一个实例首次调用 3.49 秒,重复调用 1.42 秒。另试一张图片,识别出 23 行。三次调用期间每 10 毫秒采样一次进程 RSS,峰值约 762 MiB。这些是开发机数据,抓取节点上的速度和内存仍需实测。 +人工逐项抄录日期、时刻、网址和邮箱。一项信息只有在同一条 OCR 文本行中完整出现,并且字段内部的数字、字母、大小写、标点、斜杠、冒号和空格都与原文相同时才算正确;不跨行拼接,不纠错、补全或规范化,重复出现的值分别核对。一张图或一页 PDF 只要漏掉或错识别一项,整张(页)就不算“关键信息全对”。PDF 第 2 页没有关键信息,不进准确率分母,因此共比较 12 个含关键信息的样本。 -抓取节点同时开 2 个浏览器页面、一次识别一张图,峰值约 1.4GB,3.6GB 内存够用(第 16 节)。 +在 Linux 容器中限制 4 核、3600 MiB 内存并断网,RapidOCR 3.10.0 和 ONNX Runtime 1.31.1 顺序识别,每档模型只创建一个实例: + +| `max_side_len` | PP-OCRv6 | 关键信息全对 | 13 张(页)总耗时 | 容器内存峰值 | 模型文件 | +| ---: | --- | ---: | ---: | ---: | ---: | +| 2000 | tiny | 2/12 | 85.19 秒 | 784.1 MiB | 6.58 MiB | +| 2000 | small | 4/12 | 289.04 秒 | 1151.2 MiB | 30.28 MiB | +| 2000 | medium | 4/12 | 842.72 秒 | 2077.9 MiB | 132.88 MiB | +| 4000 | tiny | 3/12 | 137.21 秒 | 1694.2 MiB | 6.58 MiB | +| 4000 | small | 5/12 | 354.25 秒 | 2058.8 MiB | 30.28 MiB | +| 4000 | medium | 7/12 | 1112.38 秒 | 3305.9 MiB | 132.88 MiB | + +默认的 2000 像素会缩小长图,small 和 medium 都只有 4/12 张(页)全对;若保持 2000,按同等准确率选更小模型的规则应选 small。调到 4000 后分别增至 5/12 和 7/12。medium 最准,但单独识别图片时已经占 3305.9 MiB,无法给同一台 3.6GB 节点上的浏览器留下可用余量;tiny 虽小,但只全对 3/12。4000 下也选 small:它是满足内存约束的方案里最准确的一档,模型约 30.28 MiB,单张(页)5.69–38.52 秒,容器峰值 2058.8 MiB。`text_score` 先保留默认 0.5;当前样本降低阈值后的漏行变化还要补测,不能沿用别的数据得出结论。 + +三档模型都不能覆盖所有类型:tiny 会在网址和邮箱中插入空格、漏掉整行报名信息,并把破折号识别成汉字;small 会漏掉两张图片里的整行网址,把 `logon` 识别为 `1ogon`、漏掉网址末尾 `/`,并拆开表格日程;medium 也会拆开表格日程、在网址中插入空格,并完全漏掉一条报名截止时间。密集表格、跨行网址和日程图片必须进入人工审核,不能按上下文补全。 ## 6. 账号与权限 @@ -452,7 +465,7 @@ L3 以上可以不提申请,直接修改,同样要写理由、附依据。 | 部分 | 放在哪 | 说明 | | --- | --- | --- | | 网站 | 香港的服务器,和鼠洞同一台 | 容器部署,前面是 1Panel 的 OpenResty;数据库用服务器上 1Panel 的 PostgreSQL | -| 抓取节点 | 上海的机器:4 核、3.6GB 内存 | 容器部署;浏览器抓取同时最多开 2 个页面,文字识别一次只做一张,内存峰值约 1.4GB(第 5.2 节) | +| 抓取节点 | 上海的机器:4 核、3.6GB 内存 | 容器部署;浏览器抓取同时最多开 2 个页面,文字识别一次只做一张。PP-OCRv6 small 在 4000 像素上单独识别的容器峰值为 2058.8 MiB;按浏览器实测再预留约 410–450 MiB,仍需在附件接入时复测两者同时运行的整机峰值(第 5.2 节) | - 抓取节点每分钟向网站领一次活:到期要抓的来源和管理员要试抓的来源。抓取节点停了,网站照常能用,只是没有新数据;抓取看板会显示抓取节点多久没来领活。 - 为什么分开:实测 11 所学校和研究所的官网和研招网,香港和上海都能访问(浙大要用 HTTP),但从上海访问快 2–4 倍;浏览器抓取和附件解析吃 CPU 和内存,放在上海也不占网站服务器的资源。判别和抽取都调用外部接口,抓取节点不跑模型。 @@ -489,7 +502,7 @@ L3 以上可以不提申请,直接修改,同样要写理由、附依据。 | 事项 | 现状 | | --- | --- | | 名称 | 「鼠钟」暂定,帖子里在征名 | -| 正文、附件和文字识别用的库 | 用真实的附件比较后定(第 5.1 节) | +| 正文、附件和文字识别用的库 | 图片已定 RapidOCR;正文、PDF 和 Office 附件仍在 #40 用真实附件比较后定(第 5.1 节) | | 域名 | 待定,用 `mousebaoyan.cn` 的子域名 | | 鼠洞的授权接口 | 已在鼠洞设计好,待实现 | | 群汇总由哪个插件发 | 扩展鼠洞的 bot 插件,还是新写一个 | From 5af612e23392ded08d66cf7a1ab24bbe6bcf9925 Mon Sep 17 00:00:00 2001 From: Admireux <1071526655@qq.com> Date: Fri, 13 Nov 2026 23:05:13 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=8E=A5=E9=80=9A=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=9B=BE=E7=89=87=E6=96=87=E5=AD=97=E8=AF=86=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ci.yml | 1 - crawler/Dockerfile | 4 +- crawler/ocr-models.yaml | 23 -------- crawler/pyproject.toml | 1 - crawler/src/crawler/parse/files.py | 17 +++++- crawler/src/crawler/parse/files_test.py | 29 +++++++++- .../parse/{ => fixtures}/NotoSansSC-OFL.txt | 0 .../parse/{ => fixtures}/NotoSansSC-test.ttf | Bin crawler/src/crawler/parse/image.py | 40 ++++++-------- crawler/src/crawler/parse/image_test.py | 50 ------------------ crawler/uv.lock | 24 --------- docs/design.md | 22 ++++++-- 12 files changed, 79 insertions(+), 132 deletions(-) delete mode 100644 crawler/ocr-models.yaml rename crawler/src/crawler/parse/{ => fixtures}/NotoSansSC-OFL.txt (100%) rename crawler/src/crawler/parse/{ => fixtures}/NotoSansSC-test.ttf (100%) delete mode 100644 crawler/src/crawler/parse/image_test.py diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 14cf39d..63655c8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -66,5 +66,4 @@ jobs: - uses: astral-sh/setup-uv@07a047e608db84b3d8c06cd9a7c7dcc9c355c18e # v10.3.2 with: working-directory: crawler - - run: cd crawler && uv sync --locked && uv run rapidocr download_models --config ocr-models.yaml - run: crawler/check.sh diff --git a/crawler/Dockerfile b/crawler/Dockerfile index 910f4aa..031167a 100644 --- a/crawler/Dockerfile +++ b/crawler/Dockerfile @@ -15,7 +15,9 @@ RUN --mount=type=cache,target=/root/.cache/uv uv sync --locked --no-editable FROM python:3.14-slim-trixie ENV PLAYWRIGHT_BROWSERS_PATH=/ms-playwright COPY --from=build /app/.venv /app/.venv -RUN /app/.venv/bin/playwright install --with-deps --only-shell chromium \ +RUN apt-get update \ + && apt-get install --yes --no-install-recommends libatomic1 \ + && /app/.venv/bin/playwright install --with-deps --only-shell chromium \ && rm -rf /var/lib/apt/lists/* \ && useradd --create-home crawler # The pages it opens are untrusted. diff --git a/crawler/ocr-models.yaml b/crawler/ocr-models.yaml deleted file mode 100644 index e05b5d9..0000000 --- a/crawler/ocr-models.yaml +++ /dev/null @@ -1,23 +0,0 @@ -Global: - model_root_dir: null - use_det: true - use_cls: false - use_rec: true -Det: - engine_type: onnxruntime - lang_type: ch - model_type: small - ocr_version: PP-OCRv6 - task_type: det -Cls: - engine_type: onnxruntime - lang_type: ch - model_type: mobile - ocr_version: PP-OCRv4 - task_type: cls -Rec: - engine_type: onnxruntime - lang_type: ch - model_type: small - ocr_version: PP-OCRv6 - task_type: rec diff --git a/crawler/pyproject.toml b/crawler/pyproject.toml index ec0c386..fe2ecf7 100644 --- a/crawler/pyproject.toml +++ b/crawler/pyproject.toml @@ -10,7 +10,6 @@ dependencies = [ "onnxruntime>=1.31.1", "openpyxl>=3.1.5", "playwright>=1.64.1", - "psutil>=7.2.2", "pydantic>=2.14.1", "pypdf>=7.0.0", "python-docx>=1.2.0", diff --git a/crawler/src/crawler/parse/files.py b/crawler/src/crawler/parse/files.py index c55f508..c7722ad 100644 --- a/crawler/src/crawler/parse/files.py +++ b/crawler/src/crawler/parse/files.py @@ -1,5 +1,5 @@ -"""The words in the files notices attach (design §5.1): PDF, Word and Excel, the old binary formats -too. Images wait for text recognition (#47); archives and other files have none to read.""" +"""The words in the files notices attach (design §5.1): images, PDF, Word and Excel, including +the old binary formats. Archives and other files have none to read.""" import io import unicodedata @@ -14,9 +14,20 @@ from legacy_doc import extract_text from pypdf import PdfReader +from crawler.parse.image import image_text + _PDF = b"%PDF" _ZIP = b"PK\x03\x04" _OLE = b"\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1" +_IMAGE_HEADERS = ( + b"\x89PNG\r\n\x1a\n", + b"\xff\xd8\xff", + b"GIF87a", + b"GIF89a", + b"BM", + b"II*\x00", + b"MM\x00*", +) # Old Word files keep their text in a stream of this name; old Excel files have none. _WORD = "WordDocument".encode("utf-16-le") # Some PDFs map common characters to the Kangxi radicals that look like them, ⽣ for 生. @@ -26,6 +37,8 @@ def file_text(data: bytes) -> str: """Raises ValueError when the file is broken.""" try: + if data.startswith(_IMAGE_HEADERS) or (data.startswith(b"RIFF") and data[8:12] == b"WEBP"): + return image_text(data) if data.startswith(_PDF): pages = PdfReader(io.BytesIO(data)).pages return "\n".join(page.extract_text() for page in pages).translate(_RADICALS) diff --git a/crawler/src/crawler/parse/files_test.py b/crawler/src/crawler/parse/files_test.py index c949177..67bfca2 100644 --- a/crawler/src/crawler/parse/files_test.py +++ b/crawler/src/crawler/parse/files_test.py @@ -1,13 +1,39 @@ import io import zipfile +from pathlib import Path import docx import openpyxl import pytest +from PIL import Image, ImageDraw, ImageFont from crawler.parse.files import file_text +def test_image_reads_generated_chinese_attachment() -> None: + image = Image.new("RGB", (1600, 500), "white") + draw = ImageDraw.Draw(image) + font = ImageFont.truetype(Path(__file__).with_name("fixtures") / "NotoSansSC-test.ttf", 64) + draw.text((60, 50), "夏令营报名时间", fill="black", font=font) + draw.text((60, 170), "7月6日10:00至8月10日17:00", fill="black", font=font) + draw.text((60, 290), "请填写申请表", fill="black", font=font) + buffer = io.BytesIO() + image.save(buffer, format="PNG") + + text = file_text(buffer.getvalue()) + + assert "夏令营报名时间" in text + assert "7月6日10:00至8月10日17:00" in text + assert "请填写申请表" in text + + +def test_blank_image_has_no_words_to_read() -> None: + buffer = io.BytesIO() + Image.new("RGB", (600, 300), "white").save(buffer, format="JPEG") + + assert file_text(buffer.getvalue()) == "" + + def test_word_keeps_paragraphs_and_tables_in_order_with_merged_cells_once() -> None: document = docx.Document() document.add_paragraph("报名截止6月30日。") @@ -80,9 +106,10 @@ def test_files_with_no_words_to_read_give_none() -> None: with zipfile.ZipFile(archive, "w") as files: files.writestr("说明.txt", "自编的说明") assert file_text(archive.getvalue()) == "" - assert file_text(b"\x89PNG\r\n\x1a\n") == "" def test_a_broken_file_is_an_error() -> None: with pytest.raises(ValueError, match="BadZipFile"): file_text(b"PK\x03\x04" + b"\x00" * 30) + with pytest.raises(ValueError, match="UnidentifiedImageError"): + file_text(b"\x89PNG\r\n\x1a\n") diff --git a/crawler/src/crawler/parse/NotoSansSC-OFL.txt b/crawler/src/crawler/parse/fixtures/NotoSansSC-OFL.txt similarity index 100% rename from crawler/src/crawler/parse/NotoSansSC-OFL.txt rename to crawler/src/crawler/parse/fixtures/NotoSansSC-OFL.txt diff --git a/crawler/src/crawler/parse/NotoSansSC-test.ttf b/crawler/src/crawler/parse/fixtures/NotoSansSC-test.ttf similarity index 100% rename from crawler/src/crawler/parse/NotoSansSC-test.ttf rename to crawler/src/crawler/parse/fixtures/NotoSansSC-test.ttf diff --git a/crawler/src/crawler/parse/image.py b/crawler/src/crawler/parse/image.py index 012859e..92a255c 100644 --- a/crawler/src/crawler/parse/image.py +++ b/crawler/src/crawler/parse/image.py @@ -1,18 +1,16 @@ """Read text from image attachments.""" import logging +import resource import threading import time -from importlib.resources import files -import psutil -from rapidocr import ModelType, RapidOCR +from rapidocr import RapidOCR from rapidocr.utils.output import RapidOCROutput logger = logging.getLogger(__name__) _lock = threading.Lock() _engine: RapidOCR | None = None -_process = psutil.Process() def image_text(data: bytes) -> str: @@ -20,32 +18,26 @@ def image_text(data: bytes) -> str: global _engine with _lock: - start = time.perf_counter() + start = time.monotonic() if _engine is None: - model_dir = files("rapidocr") / "models" - det_model = model_dir / "PP-OCRv6_det_small.onnx" - cls_model = model_dir / "ch_ppocr_mobile_v2.0_cls_mobile.onnx" - rec_model = model_dir / "PP-OCRv6_rec_small.onnx" - if not all(model.is_file() for model in (det_model, cls_model, rec_model)): - raise FileNotFoundError( - "PP-OCRv6 small models are missing; run " - "uv run rapidocr download_models --config ocr-models.yaml" - ) - # The 2000 px default loses email characters in long tables (design §5.2). _engine = RapidOCR( params={ - "Global.max_side_len": 4000, - "Det.model_type": ModelType.SMALL, - "Rec.model_type": ModelType.SMALL, - "Det.model_path": str(det_model), - "Cls.model_path": str(cls_model), - "Rec.model_path": str(rec_model), + # Find lines on a smaller copy, then crop the legible text from the original. + "Global.use_preprocess_img": False, + "Det.limit_type": "max", + "Det.limit_side_len": 2000, + # A batch is padded to its widest line; one line at a time keeps the peak low. + "Rec.rec_batch_num": 1, } ) result = _engine(data) if not isinstance(result, RapidOCROutput): raise TypeError("OCR did not return recognized text") - elapsed_ms = round((time.perf_counter() - start) * 1000) - rss_mib = round(_process.memory_info().rss / 1024**2) - logger.info("Image OCR completed", extra={"duration_ms": elapsed_ms, "rss_mib": rss_mib}) + logger.info( + "Image OCR completed", + extra={ + "elapsed": time.monotonic() - start, + "peak_rss_kib": resource.getrusage(resource.RUSAGE_SELF).ru_maxrss, + }, + ) return "\n".join(result.txts or []) diff --git a/crawler/src/crawler/parse/image_test.py b/crawler/src/crawler/parse/image_test.py deleted file mode 100644 index cd6a552..0000000 --- a/crawler/src/crawler/parse/image_test.py +++ /dev/null @@ -1,50 +0,0 @@ -"""OCR a generated attachment, without storing real notices in the repository.""" - -import io -from pathlib import Path - -from PIL import Image, ImageDraw, ImageFont - -from crawler.parse.image import image_text - - -def test_image_text_reads_generated_attachment() -> None: - image = Image.new("RGB", (1600, 500), "white") - draw = ImageDraw.Draw(image) - font = ImageFont.load_default(size=52) - draw.text((60, 50), "APPLICATION FORM 2027", fill="black", font=font) - draw.text((60, 160), "DEADLINE 2027-08-10 17:00", fill="black", font=font) - draw.text((60, 270), "SEND THE FORM BEFORE DEADLINE", fill="black", font=font) - buffer = io.BytesIO() - image.save(buffer, format="PNG") - - text = image_text(buffer.getvalue()) - - assert "APPLICATION FORM 2027" in text - assert "2027-08-10 17:00" in text - assert "SEND THE FORM BEFORE DEADLINE" in text - - -def test_image_text_reads_generated_chinese_attachment() -> None: - image = Image.new("RGB", (1600, 500), "white") - draw = ImageDraw.Draw(image) - # The bundled Noto Sans SC subset keeps Chinese glyphs available in offline CI. - font = ImageFont.truetype(Path(__file__).with_name("NotoSansSC-test.ttf"), 64) - draw.text((60, 50), "夏令营报名时间", fill="black", font=font) - draw.text((60, 170), "7月6日10:00至8月10日17:00", fill="black", font=font) - draw.text((60, 290), "请填写申请表", fill="black", font=font) - buffer = io.BytesIO() - image.save(buffer, format="PNG") - - text = image_text(buffer.getvalue()) - - assert "夏令营报名时间" in text - assert "7月6日10:00至8月10日17:00" in text - assert "请填写申请表" in text - - -def test_image_text_returns_empty_for_blank_image() -> None: - buffer = io.BytesIO() - Image.new("RGB", (600, 300), "white").save(buffer, format="PNG") - - assert image_text(buffer.getvalue()) == "" diff --git a/crawler/uv.lock b/crawler/uv.lock index 89f2aa6..ab60c31 100644 --- a/crawler/uv.lock +++ b/crawler/uv.lock @@ -222,7 +222,6 @@ dependencies = [ { name = "onnxruntime" }, { name = "openpyxl" }, { name = "playwright" }, - { name = "psutil" }, { name = "pydantic" }, { name = "pypdf" }, { name = "python-docx" }, @@ -250,7 +249,6 @@ requires-dist = [ { name = "onnxruntime", specifier = ">=1.31.1" }, { name = "openpyxl", specifier = ">=3.1.5" }, { name = "playwright", specifier = ">=1.64.1" }, - { name = "psutil", specifier = ">=7.2.2" }, { name = "pydantic", specifier = ">=2.14.1" }, { name = "pypdf", specifier = ">=7.0.0" }, { name = "python-docx", specifier = ">=1.2.0" }, @@ -896,28 +894,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e4/04/d52c7016b04b6c5108f26691f9d33ec82a9b65d041f1a9c771137693d618/protobuf-7.36.2-py3-none-any.whl", hash = "sha256:bdb3a345d48db958e6ce1f18e508beb0cc981d64f24088427549c866cd039f1e", size = 179806, upload-time = "2026-09-17T20:07:58.211Z" }, ] -[[package]] -name = "psutil" -version = "7.2.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/aa/c6/d1ddf4abb55e93cebc4f2ed8b5d6dbad109ecb8d63748dd2b20ab5e57ebe/psutil-7.2.2.tar.gz", hash = "sha256:0746f5f8d406af344fd547f1c8daa5f5c33dbc293bb8d6a16d80b4bb88f59372", size = 493740, upload-time = "2026-01-28T18:14:54.428Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/81/69/ef179ab5ca24f32acc1dac0c247fd6a13b501fd5534dbae0e05a1c48b66d/psutil-7.2.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:eed63d3b4d62449571547b60578c5b2c4bcccc5387148db46e0c2313dad0ee00", size = 130664, upload-time = "2026-01-28T18:15:09.469Z" }, - { url = "https://files.pythonhosted.org/packages/7b/64/665248b557a236d3fa9efc378d60d95ef56dd0a490c2cd37dafc7660d4a9/psutil-7.2.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7b6d09433a10592ce39b13d7be5a54fbac1d1228ed29abc880fb23df7cb694c9", size = 131087, upload-time = "2026-01-28T18:15:11.724Z" }, - { url = "https://files.pythonhosted.org/packages/d5/2e/e6782744700d6759ebce3043dcfa661fb61e2fb752b91cdeae9af12c2178/psutil-7.2.2-cp314-cp314t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fa4ecf83bcdf6e6c8f4449aff98eefb5d0604bf88cb883d7da3d8d2d909546a", size = 182383, upload-time = "2026-01-28T18:15:13.445Z" }, - { url = "https://files.pythonhosted.org/packages/57/49/0a41cefd10cb7505cdc04dab3eacf24c0c2cb158a998b8c7b1d27ee2c1f5/psutil-7.2.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e452c464a02e7dc7822a05d25db4cde564444a67e58539a00f929c51eddda0cf", size = 185210, upload-time = "2026-01-28T18:15:16.002Z" }, - { url = "https://files.pythonhosted.org/packages/dd/2c/ff9bfb544f283ba5f83ba725a3c5fec6d6b10b8f27ac1dc641c473dc390d/psutil-7.2.2-cp314-cp314t-win_amd64.whl", hash = "sha256:c7663d4e37f13e884d13994247449e9f8f574bc4655d509c3b95e9ec9e2b9dc1", size = 141228, upload-time = "2026-01-28T18:15:18.385Z" }, - { url = "https://files.pythonhosted.org/packages/f2/fc/f8d9c31db14fcec13748d373e668bc3bed94d9077dbc17fb0eebc073233c/psutil-7.2.2-cp314-cp314t-win_arm64.whl", hash = "sha256:11fe5a4f613759764e79c65cf11ebdf26e33d6dd34336f8a337aa2996d71c841", size = 136284, upload-time = "2026-01-28T18:15:19.912Z" }, - { url = "https://files.pythonhosted.org/packages/e7/36/5ee6e05c9bd427237b11b3937ad82bb8ad2752d72c6969314590dd0c2f6e/psutil-7.2.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ed0cace939114f62738d808fdcecd4c869222507e266e574799e9c0faa17d486", size = 129090, upload-time = "2026-01-28T18:15:22.168Z" }, - { url = "https://files.pythonhosted.org/packages/80/c4/f5af4c1ca8c1eeb2e92ccca14ce8effdeec651d5ab6053c589b074eda6e1/psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:1a7b04c10f32cc88ab39cbf606e117fd74721c831c98a27dc04578deb0c16979", size = 129859, upload-time = "2026-01-28T18:15:23.795Z" }, - { url = "https://files.pythonhosted.org/packages/b5/70/5d8df3b09e25bce090399cf48e452d25c935ab72dad19406c77f4e828045/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:076a2d2f923fd4821644f5ba89f059523da90dc9014e85f8e45a5774ca5bc6f9", size = 155560, upload-time = "2026-01-28T18:15:25.976Z" }, - { url = "https://files.pythonhosted.org/packages/63/65/37648c0c158dc222aba51c089eb3bdfa238e621674dc42d48706e639204f/psutil-7.2.2-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b0726cecd84f9474419d67252add4ac0cd9811b04d61123054b9fb6f57df6e9e", size = 156997, upload-time = "2026-01-28T18:15:27.794Z" }, - { url = "https://files.pythonhosted.org/packages/8e/13/125093eadae863ce03c6ffdbae9929430d116a246ef69866dad94da3bfbc/psutil-7.2.2-cp36-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fd04ef36b4a6d599bbdb225dd1d3f51e00105f6d48a28f006da7f9822f2606d8", size = 148972, upload-time = "2026-01-28T18:15:29.342Z" }, - { url = "https://files.pythonhosted.org/packages/04/78/0acd37ca84ce3ddffaa92ef0f571e073faa6d8ff1f0559ab1272188ea2be/psutil-7.2.2-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b58fabe35e80b264a4e3bb23e6b96f9e45a3df7fb7eed419ac0e5947c61e47cc", size = 148266, upload-time = "2026-01-28T18:15:31.597Z" }, - { url = "https://files.pythonhosted.org/packages/b4/90/e2159492b5426be0c1fef7acba807a03511f97c5f86b3caeda6ad92351a7/psutil-7.2.2-cp37-abi3-win_amd64.whl", hash = "sha256:eb7e81434c8d223ec4a219b5fc1c47d0417b12be7ea866e24fb5ad6e84b3d988", size = 137737, upload-time = "2026-01-28T18:15:33.849Z" }, - { url = "https://files.pythonhosted.org/packages/8c/c7/7bb2e321574b10df20cbde462a94e2b71d05f9bbda251ef27d104668306a/psutil-7.2.2-cp37-abi3-win_arm64.whl", hash = "sha256:8c233660f575a5a89e6d4cb65d9f938126312bca76d8fe087b947b3a1aaac9ee", size = 134617, upload-time = "2026-01-28T18:15:36.514Z" }, -] - [[package]] name = "pyclipper" version = "1.4.0" diff --git a/docs/design.md b/docs/design.md index 6c2318c..a8ce068 100644 --- a/docs/design.md +++ b/docs/design.md @@ -81,7 +81,7 @@ | 数据库 | 服务器上 1Panel 的 PostgreSQL 18 | 和鼠洞共用实例,不加新服务 | | 抓取节点 | Python 3.14,uv 管依赖;Ruff 做 lint 和格式化,Pyright 的严格模式做类型检查,pytest 做测试 | 浏览器抓取、正文提取、PDF 和 Office 解析、中文的文字识别,Python 的库最全,代价是多一套工具链。3.15 刚发布,文字识别要用的 onnxruntime 还没有它的安装包。Pyright 和 VS Code 的 Pylance 是同一个引擎,编辑器里看到的错误和 CI 一致 | | 抓取 | httpx(异步)请求网页,Playwright 驱动浏览器(Chromium 的无头精简版),lxml 按 CSS 或 XPath 取出列表 | 各自领域的主流库 | -| 正文、附件和文字识别 | 正文按建站系统的模板用 lxml 取;pypdf 读 PDF,python-docx 读 `.docx`,legacy-doc 读老的 `.doc`,openpyxl 读 `.xlsx`,xlrd 读 `.xls`;文字识别候选 RapidOCR | 都关在 `parse` 模块里,换了不影响别处。正文和附件用真实的通知和附件比较后定,结果见第 5.2 节;文字识别在[文字识别](https://github.com/mousebaoyan/mouseclock/issues/47)的任务里定。不用 AGPL 许可的 PyMuPDF | +| 正文、附件和文字识别 | 正文按建站系统的模板用 lxml 取;pypdf 读 PDF,python-docx 读 `.docx`,legacy-doc 读老的 `.doc`,openpyxl 读 `.xlsx`,xlrd 读 `.xls`;图片的文字识别用 RapidOCR(PP-OCRv6 small,设置见第 5.2 节) | 都关在 `parse` 模块里,换了不影响别处。正文和附件用真实的通知和附件比较后定,结果见第 5.2 节;扫描的 PDF 用哪个库渲染成图片,在[文字识别](https://github.com/mousebaoyan/mouseclock/issues/47)的任务里定。不用 AGPL 许可的 PyMuPDF | | 接口的类型 | 网站用 Zod 写接口的定义,生成 OpenAPI 文档;抓取节点从这份文档生成 Pydantic 模型 | 两边语言不同,接口的类型也只有一个来源。抓取节点用 Pydantic 校验网站的返回和模型的输出 | | 判别接口和 LLM | System One 的 SemIf;DeepSeek 官方接口的 V4.1 Flash(`deepseek-flash`),按编号抽取 | 判别见第 8.1 节,抽取比较见第 8.5 节 | @@ -117,9 +117,21 @@ CPU 不是问题,要省的是带宽,做法见第 14 节。 | Excel | openpyxl 读 `.xlsx`,xlrd 读 `.xls`,样本里各 1 个都没问题 | | 下载 | 7 次拿到的不是文件,是博达的「请输入验证码下载附件」页面(北科计通、厦大、电子科大信通、国科大杭州等);先打开通知页、带着来源页下载也一样,是网站的设置。按第 7.2 节不破解:附件照样列出,文字留空,不存文件 | -**文字识别**:RapidOCR(PP-OCRv6)识别一张 20 行的中文页面约 1 秒,进程峰值约 690MB;抓取节点只有 4 核,会慢几倍。 +**文字识别**:从 `data/sources.csv` 的 9 个来源各取一张通知图片(截图、海报、长图、密集的日程表),加一份渲染成图片的 4 页 PDF,在限成 4 核、3600 MiB、断网的 Linux 容器里用 RapidOCR 3.10.0 依次识别。只看日期、时刻、网址和邮箱:同一行里和原文一字不差才算对,一张里错一项就不算全对;有这些信息的共 12 张(页)。 -抓取节点同时开 2 个浏览器页面、一次识别一张图,峰值约 1.4GB,3.6GB 内存够用(第 16 节)。 +| PP-OCRv6 | 设置 | 关键信息全对 | 13 张(页)总耗时 | 峰值内存 | 模型文件 | +| --- | --- | ---: | ---: | ---: | ---: | +| tiny | 整图缩到 2000 | 2/12 | 85.19 秒 | 784.1 MiB | 6.58 MiB | +| small | 整图缩到 2000 | 4/12 | 289.04 秒 | 1151.2 MiB | 30.28 MiB | +| medium | 整图缩到 2000 | 4/12 | 842.72 秒 | 2077.9 MiB | 132.88 MiB | +| tiny | 整图缩到 4000 | 3/12 | 137.21 秒 | 1694.2 MiB | 6.58 MiB | +| small | 整图缩到 4000 | 5/12 | 354.25 秒 | 2058.8 MiB | 30.28 MiB | +| medium | 整图缩到 4000 | 7/12 | 1112.38 秒 | 3305.9 MiB | 132.88 MiB | +| small | 缩到 2000 找行,从原图切行,每批 1 行 | 7/12 | 240.87 秒 | 726.0 MiB | 30.28 MiB | + +选 small,在缩到 2000 的图上找行、从原图上切行识别,一次认一行:默认把整张图缩到 2000 再识别,长截图的字太小;把整张图放到 4000 仍少两张全对,检测还要多占 1GB 以上;medium 在三档整图方案里最准,但单独识别就占 3.3GB,给浏览器留不出余量。把 `text_score` 从默认的 0.5 降到 0.3 没找回关键信息,反而多出两行乱码,因此保留 0.5。三档都会漏掉整行的网址、拆开表格里的日程,图片里认出的关键信息不能当作可靠的原文,相关字段交给人审核,不根据上下文猜。 + +抓取节点同时开 2 个浏览器页面(约 450 MiB)、一次识别一张图(峰值 726 MiB),合计约 1.2 GiB,3.6GB 内存够用(第 16 节)。 ## 6. 账号与权限 @@ -591,7 +603,7 @@ L3 以上可以不提申请,直接修改,同样要写理由、附依据。 | 部分 | 放在哪 | 说明 | | --- | --- | --- | | 网站 | 香港的服务器,和鼠洞同一台 | 容器部署,前面是 1Panel 的 OpenResty;数据库用服务器上 1Panel 的 PostgreSQL | -| 抓取节点 | 上海的机器:4 核、3.6GB 内存 | 容器部署;浏览器抓取同时最多开 2 个页面,文字识别一次只做一张,内存峰值约 1.4GB(第 5.2 节) | +| 抓取节点 | 上海的机器:4 核、3.6GB 内存 | 容器部署;浏览器抓取同时最多开 2 个页面(约 450 MiB),文字识别一次只做一张(峰值 726 MiB),合计约 1.2 GiB,3.6GB 内存够用(第 5.2 节) | - 抓取节点每分钟向网站领一次活:到期要抓的来源和管理员要试抓的来源。抓取节点停了,网站照常能用,只是没有新数据;抓取看板会显示抓取节点多久没来领活。 - 为什么分开:实测 11 所学校和研究所的官网和研招网,香港和上海都能访问(浙大要用 HTTP),但从上海访问快 2–4 倍;浏览器抓取和附件解析吃 CPU 和内存,放在上海也不占网站服务器的资源。判别和抽取都调用外部接口,抓取节点不跑模型。 @@ -628,7 +640,7 @@ L3 以上可以不提申请,直接修改,同样要写理由、附依据。 | 事项 | 现状 | | --- | --- | | 名称 | 「鼠钟」暂定,帖子里在征名 | -| 文字识别用的库 | 用真实的图片和扫描件比较后定(第 5.1 节) | +| 扫描的 PDF 用哪个库渲染成图片 | 在文字识别任务里比较后定(第 5.1 节) | | 域名 | 待定,用 `mousebaoyan.cn` 的子域名 | | 群汇总由哪个插件发 | 扩展鼠洞的 bot 插件,还是新写一个 | | 第一批来源 | 先收对四非友好的学校,名单在帖子里征集 | From 89f1b10db07cbf0f2ef107d1527a7a6e5e387007 Mon Sep 17 00:00:00 2001 From: JunieXD <1240840076@qq.com> Date: Sat, 14 Nov 2026 14:19:15 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E4=BF=9D=E7=95=99=20main=20=E9=94=81?= =?UTF-8?q?=E5=AE=9A=E7=9A=84=E4=BE=9D=E8=B5=96=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 锁文件以 main 的为底重新生成,只加上识别要用的包,已有的依赖不跟着升级。Playwright 留在 1.64.1,它自带的 Node 不要 libatomic,镜像也就不用再装。 --- crawler/Dockerfile | 4 +- crawler/uv.lock | 268 +++++++++++++++++++++++---------------------- 2 files changed, 141 insertions(+), 131 deletions(-) diff --git a/crawler/Dockerfile b/crawler/Dockerfile index 031167a..910f4aa 100644 --- a/crawler/Dockerfile +++ b/crawler/Dockerfile @@ -15,9 +15,7 @@ RUN --mount=type=cache,target=/root/.cache/uv uv sync --locked --no-editable FROM python:3.14-slim-trixie ENV PLAYWRIGHT_BROWSERS_PATH=/ms-playwright COPY --from=build /app/.venv /app/.venv -RUN apt-get update \ - && apt-get install --yes --no-install-recommends libatomic1 \ - && /app/.venv/bin/playwright install --with-deps --only-shell chromium \ +RUN /app/.venv/bin/playwright install --with-deps --only-shell chromium \ && rm -rf /var/lib/apt/lists/* \ && useradd --create-home crawler # The pages it opens are untrusted. diff --git a/crawler/uv.lock b/crawler/uv.lock index ab60c31..232d7c2 100644 --- a/crawler/uv.lock +++ b/crawler/uv.lock @@ -23,15 +23,15 @@ wheels = [ [[package]] name = "anyio" -version = "4.16.0" +version = "4.15.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "idna" }, { name = "typing-extensions", marker = "python_full_version < '3.15'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a1/98/7e457a3b014976887a050561955c0b76e1e7e2d6e27b78ecef2ef80518f2/anyio-4.16.0.tar.gz", hash = "sha256:59bb03251907983d1603d27c3087ddb1e93299ea2163adcdba37899a4fb12ffb", size = 310971, upload-time = "2026-11-01T11:20:07.282Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a9/d2/f4d173e22df740bc37b1db102b386ba719b66e95b0f0d751f556b387e6d2/anyio-4.15.1.tar.gz", hash = "sha256:9f28306018cbd6d329e64a36d58256edff76dd996fe423bc957326e578b82a94", size = 276966, upload-time = "2026-09-05T10:42:39.44Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a9/16/7757fb84c819accc7d7e9af5291b261e4abb8627ee040f99e7d35ef2457a/anyio-4.16.0-py3-none-any.whl", hash = "sha256:c66ae634e0b8228396b801741beb3294326d4b6102f7bba4041c0dfb58c29026", size = 134521, upload-time = "2026-11-01T11:20:05.59Z" }, + { url = "https://files.pythonhosted.org/packages/12/b8/4bd346e22b28902df4d651910f5242c28d84e4a5c2435ca5c3f797ed7e2e/anyio-4.15.1-py3-none-any.whl", hash = "sha256:6152fdbbf9a77fdec97731721bebf7c4c44f7c29b424b0065826173efc7ed101", size = 132079, upload-time = "2026-09-05T10:42:37.923Z" }, ] [[package]] @@ -183,11 +183,11 @@ wheels = [ [[package]] name = "click" -version = "8.5.1" +version = "8.5.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/45/37/edbf1b0707709013c0cf2e8317e03d97ed29bf4cac709fe328904ae92a38/click-8.5.1.tar.gz", hash = "sha256:9bbfada76703fd1d784b83eea012e3e8c6a001a876543ef104fa56aaaeb072b4", size = 399151, upload-time = "2026-11-06T17:37:01.021Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/0e/7fa0ef50764b67090eca4114772a2abf8b6148198475e54c660b97caeee6/click-8.5.0.tar.gz", hash = "sha256:ba0d2089de75ea0310e2dde03160e6ca10009947fb95a182f9b54021bb272e34", size = 382235, upload-time = "2026-08-26T13:33:14.56Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/31/7d/164b7ffc8624fe9efb4221bf9af485d5c1e41b9ae118045d2b6dc5457d8b/click-8.5.1-py3-none-any.whl", hash = "sha256:8bb5376d2006950386f8c6427613334a2acadc5f559cb80e638d00b4df957e37", size = 126163, upload-time = "2026-11-06T17:36:59.287Z" }, + { url = "https://files.pythonhosted.org/packages/58/50/6c0d534c5f134586a8e1ba4e330569e32f057e33372ae556463212fb4cd3/click-8.5.0-py3-none-any.whl", hash = "sha256:255bc9599cf7748b4b1a446ccc735421bd08a2ae529a8b88597d3de5664ee360", size = 125251, upload-time = "2026-08-26T13:33:12.928Z" }, ] [[package]] @@ -279,7 +279,7 @@ wheels = [ [[package]] name = "datamodel-code-generator" -version = "0.95.0" +version = "0.86.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "argcomplete" }, @@ -292,9 +292,9 @@ dependencies = [ { name = "pyyaml" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0b/f6/c26bab1339e56606d1d61c25f3fa22e4241516ad02e894e32c07e0a821d3/datamodel_code_generator-0.95.0.tar.gz", hash = "sha256:81971c2cb0a219d5cbcd98b25fc9d6045cdd781bd85ae6416cacc39c2bf2373d", size = 9795993, upload-time = "2026-11-12T09:08:59.021Z" } +sdist = { url = "https://files.pythonhosted.org/packages/70/69/56726c1ffd4790f90dc47630f96baed1a29a8f25375982510fce3b3e61af/datamodel_code_generator-0.86.0.tar.gz", hash = "sha256:1834ba0e84307dfed625eeacfbb07d790ede01a3adf5414a1c9947c5b9139078", size = 6255349, upload-time = "2026-10-18T15:43:30.016Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/51/8f/1a443487a88d72a16182a265de593557e034500ba9822d3e4aa3bd369a2c/datamodel_code_generator-0.95.0-py3-none-any.whl", hash = "sha256:7b5d5071de4f66c60ed56c2232338bb8db888dd308bb1ac9611104184ee271cd", size = 2445615, upload-time = "2026-11-12T09:08:57.002Z" }, + { url = "https://files.pythonhosted.org/packages/a3/5b/f76dac052451e88fc0b622c3d996fa48637da9fa1e3c2b9ca2b84aead28a/datamodel_code_generator-0.86.0-py3-none-any.whl", hash = "sha256:1a3d6f0a14a33e334b4251d04e67b0b6ef05c96d4625fb99bd09d716e30ea084", size = 1605265, upload-time = "2026-10-18T15:43:27.808Z" }, ] [[package]] @@ -644,20 +644,20 @@ wheels = [ [[package]] name = "mypy-extensions" -version = "1.2.0" +version = "1.1.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d0/6f/43edf3be2748d0e40974a5ee046a8bb4c9961a4bdd3e7d5c6dcbf32d1af6/mypy_extensions-1.2.0.tar.gz", hash = "sha256:c6e275a07f1c2fc096b62940452d0eaa3f3af7de45d704787866240a7c6d5a51", size = 6566, upload-time = "2026-11-03T16:26:33.692Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343, upload-time = "2025-04-22T14:54:24.164Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b5/99/7b1adac7e97ce7bbda34792dc6e9b2f5cc5cffd1875883f78a818b2a2687/mypy_extensions-1.2.0-py3-none-any.whl", hash = "sha256:993e7a20aa5671eb41a7132cf555af30062da99729601601b9a8382b11cae768", size = 5114, upload-time = "2026-11-03T16:26:32.731Z" }, + { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963, upload-time = "2025-04-22T14:54:22.983Z" }, ] [[package]] name = "nodeenv" -version = "1.12.0" +version = "1.11.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e6/99/d27cfc9518f49e4cbc25c683ec7cf8704a9d31311341c291c0e78ddf791b/nodeenv-1.12.0.tar.gz", hash = "sha256:4ea7f88339310afebc3253f2c7a91b94bacf97d73a36a5c108962abdfaca501e", size = 131292, upload-time = "2026-10-31T19:03:18.847Z" } +sdist = { url = "https://files.pythonhosted.org/packages/9a/8e/105de02c1322cfada6d9710d9146ef8026419d433c9d08359a2d35805811/nodeenv-1.11.0.tar.gz", hash = "sha256:3ce8fe5b71d16e8af7039ca65257354100bc772965d6bc549070649e53b1b146", size = 99301, upload-time = "2026-09-26T11:29:21.367Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2d/6a/8a9ac7d5e2f7cf53c459bfef90ebc17a2f8cd54b665af96799d4c534840e/nodeenv-1.12.0-py3-none-any.whl", hash = "sha256:80644d65c10cc2be12e3e4b54b3367ff288c7ad24ae75c2dcc65454fc7449d4d", size = 39442, upload-time = "2026-10-31T19:03:17.427Z" }, + { url = "https://files.pythonhosted.org/packages/54/c8/12811c9b48fde162bb72b6f2e78fada9a247a09d7bb5be2050a5d099c77b/nodeenv-1.11.0-py2.py3-none-any.whl", hash = "sha256:edaa16e6c14d7cf395d75d4bbd5a26390f4dc06501a33b4e76282b02cc688a25", size = 34277, upload-time = "2026-09-26T11:29:19.933Z" }, ] [[package]] @@ -844,30 +844,30 @@ wheels = [ [[package]] name = "platformdirs" -version = "4.14.5" +version = "4.13.5" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d7/9a/8475be631fb33ca1466915e70fd594c42a4e84b512db650eaa14f90fe75d/platformdirs-4.14.5.tar.gz", hash = "sha256:32e9921db7385aa8169bee4fe9501923e5715ba9fb7ea3b9c69b0d8e0639f7a1", size = 71464, upload-time = "2026-11-04T16:54:50.358Z" } +sdist = { url = "https://files.pythonhosted.org/packages/58/e6/d0abbb256b44e6a05748c6942511ff67db8dbb068de0c35b24bf1b395b09/platformdirs-4.13.5.tar.gz", hash = "sha256:05831adf87d392760f4b5c3a0a95579ab5a10b18b9b9bd43680dcb47544788a0", size = 62362, upload-time = "2026-10-19T01:02:11.778Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7c/ae/ecbbbfd0e4343a6a521d49b3c8656fb4643dee2a4f6eaf941cf3280391a8/platformdirs-4.14.5-py3-none-any.whl", hash = "sha256:8e778c6fa421516f4d3369449f8df3b0e1b72c0e0005fe88e3ec772d0a14e750", size = 35402, upload-time = "2026-11-04T16:54:48.875Z" }, + { url = "https://files.pythonhosted.org/packages/6c/8a/1d8cb3842909dc193a73835adedf412e32e18f8ffd59f43983949622fe6f/platformdirs-4.13.5-py3-none-any.whl", hash = "sha256:53d3ec4280b815c1e0b02edad7f9ee8fda1ba9c0865dd9c2e6e63849ce82fc1e", size = 32779, upload-time = "2026-10-19T01:02:10.17Z" }, ] [[package]] name = "playwright" -version = "1.65.1" +version = "1.64.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "greenlet" }, + { name = "pyee" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/bb/08/18637433ce895625586a1fcb277921568007c631edefcb5c86773d4f8acd/playwright-1.65.1.tar.gz", hash = "sha256:a6c0db1447bcbe0493dcd23c84faf8e993fa7f8c1573b146a5c786df262f90b5", size = 10224475, upload-time = "2026-11-11T23:48:57.962Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7f/6a/f9209357831450dea440bc6f71cceb28e485c4f0ee4ffb48267a3d4c832e/playwright-1.65.1-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:cd0eabebdadd45bd897a5465b358c26546cf0d7298492d66f609eec012a68de1", size = 50333789, upload-time = "2026-11-11T23:48:18.278Z" }, - { url = "https://files.pythonhosted.org/packages/a6/cb/098c441446b7d468149837b7f490934072fa29bce302c5f1347fc7ebc305/playwright-1.65.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:5f9542db4d3bff9943510297c1de4252bf8ee62c47fd5f5af3213645035ba6d7", size = 48815926, upload-time = "2026-11-11T23:48:23.663Z" }, - { url = "https://files.pythonhosted.org/packages/b3/8d/c795dcdd6e68f82835e87600c18cec132fa6f07fb4c6395fc2b1df4e39f3/playwright-1.65.1-py3-none-macosx_11_0_universal2.whl", hash = "sha256:4ffb9e62ee226130ec9333a062a3a30d6a12ee5e4d164a9076c2b54cd15cc14e", size = 50333790, upload-time = "2026-11-11T23:48:29.139Z" }, - { url = "https://files.pythonhosted.org/packages/f7/6c/11b3900a7fe1a70baf539a90a4ea217762c149a37ab70b61e7177fa981ed/playwright-1.65.1-py3-none-manylinux1_x86_64.whl", hash = "sha256:5660e0b050a5bd5672bf8e366ed2580288a3d3640ff9444436ed2d890d3dc442", size = 53474168, upload-time = "2026-11-11T23:48:34.296Z" }, - { url = "https://files.pythonhosted.org/packages/14/fc/c1c491e57e36a6eb6f6705450ecc813e2a12bc1ac44f13853cd05a2d8067/playwright-1.65.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0178cec62bfcc9c202f7d2c2c79c14ebac620c672f36ba31f0d7f0ee5ce87032", size = 53145932, upload-time = "2026-11-11T23:48:39.472Z" }, - { url = "https://files.pythonhosted.org/packages/d4/a8/e5213ea8d8fe308b00412a1c21f51229e295faace74423375830c7b200a8/playwright-1.65.1-py3-none-win32.whl", hash = "sha256:43541b89fa293819eb98383feea837368ee681e67cc105b19f3dd58f1409f1d6", size = 42673459, upload-time = "2026-11-11T23:48:44.428Z" }, - { url = "https://files.pythonhosted.org/packages/6c/cc/f09f7a7f3ae3c4cd3cd2e6dc11b70f269e7fa018351e30339fb0d7c33ca4/playwright-1.65.1-py3-none-win_amd64.whl", hash = "sha256:f9ea4f4b4f70ecc27ef0bd46a1b929798f1a8bf68b3e771261fc098bc98e1a0b", size = 42673468, upload-time = "2026-11-11T23:48:49.783Z" }, - { url = "https://files.pythonhosted.org/packages/b9/c4/317b9e97cbacabd85704c6970a2c09c221bc84a93bae8ab616ef483175fe/playwright-1.65.1-py3-none-win_arm64.whl", hash = "sha256:d50ad4dd217d4ee9e4672efd7ec4ab0523b5e73f64f6e0c5eae258961fa73a49", size = 38404959, upload-time = "2026-11-11T23:48:54.745Z" }, + { url = "https://files.pythonhosted.org/packages/8d/c8/cc677856d89a0c077673b40ab915ed5597bf1347b205cabe70121c431ca9/playwright-1.64.1-py3-none-macosx_10_13_x86_64.whl", hash = "sha256:29453ff76e25c17d0b45658cacd6b92e9eec46e8db21e134fb3b7143df50f013", size = 44508971, upload-time = "2026-10-22T16:29:58.12Z" }, + { url = "https://files.pythonhosted.org/packages/72/4f/572bbbe60a5787ca61a84bad934c3ce19c08c2bc9c0e9781bf0d99cad1a6/playwright-1.64.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:59f7b041284ce8d1b72098ae50ca48a2d83692eec25154ab5ba79d4b6b4fe8a9", size = 43155232, upload-time = "2026-10-22T16:30:02.415Z" }, + { url = "https://files.pythonhosted.org/packages/44/fa/468f313a56d33a6420705147c8d47bef558f087856edf38c5b13eef8aa6c/playwright-1.64.1-py3-none-macosx_11_0_universal2.whl", hash = "sha256:6a6f99adad1ae40e6ee62efe89785db861ce7ddd57651521cb31894183cc4ae3", size = 44508977, upload-time = "2026-10-22T16:30:07.632Z" }, + { url = "https://files.pythonhosted.org/packages/15/b9/e481a34572933b5cf179d5637c98da488c732ee339dff5b73a0624d2e42b/playwright-1.64.1-py3-none-manylinux1_x86_64.whl", hash = "sha256:577b8d88778c245cfbd145ae17cf53044f084b1b46c55c69081d4069d56057e2", size = 48471931, upload-time = "2026-10-22T16:30:12.831Z" }, + { url = "https://files.pythonhosted.org/packages/0c/11/545f25e47ec54e1e8a2892ef9994fc2b298f909ab37b88578e3a1f87ac2e/playwright-1.64.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a29fda44725e11b0b625c4bff6458a1f6dbee97b88c9788d12e18a8344458c2d", size = 48150994, upload-time = "2026-10-22T16:30:18.297Z" }, + { url = "https://files.pythonhosted.org/packages/33/87/8ff7af99387ee72ae9b46a66ece7a0c0aa63f73320ecf6dd3dd087fa840a/playwright-1.64.1-py3-none-win32.whl", hash = "sha256:d3c48b31da426c2f3562d0919cb9ea4e5415f6dbd29d7211fa4d66cca24fbd2f", size = 38801828, upload-time = "2026-10-22T16:30:23.154Z" }, + { url = "https://files.pythonhosted.org/packages/96/0a/64db6851aa1852a4f76be28eea71d4e2bf9f3ce493ee2e66939426729046/playwright-1.64.1-py3-none-win_amd64.whl", hash = "sha256:5e240a79464434c9260957b9ef59a5808e02e96e3fcabdc717fd7485260b9730", size = 38801836, upload-time = "2026-10-22T16:30:28.092Z" }, + { url = "https://files.pythonhosted.org/packages/c5/4b/d7ddde9467a5fcfe6a0d3c954732332e98a4f4a9025fd42c8d091c16e5f9/playwright-1.64.1-py3-none-win_arm64.whl", hash = "sha256:983ccd085453ea5a7588193657fc349a6ffbf7bf7ba663fd58dc81e4aa3af9d9", size = 34693875, upload-time = "2026-10-22T16:30:32.724Z" }, ] [[package]] @@ -914,7 +914,7 @@ wheels = [ [[package]] name = "pydantic" -version = "2.14.3" +version = "2.14.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "annotated-types" }, @@ -922,81 +922,93 @@ dependencies = [ { name = "typing-extensions" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b4/fc/1203d011145c98ddce3cd2f505bb54375ef8d43223053df6bfcf3c746f46/pydantic-2.14.3.tar.gz", hash = "sha256:1054f237f4d4733e5a30e1e2333bd33a2004ab9ab1510bd053a9a31bb48e232d", size = 925636, upload-time = "2026-11-05T09:17:04.686Z" } +sdist = { url = "https://files.pythonhosted.org/packages/7c/0b/8e10b2e693af8ec54346a14caf36221334775975a747c9ceaa3f8371d96d/pydantic-2.14.1.tar.gz", hash = "sha256:94f478203dd03404682a1ada216965651dd74b1d2d5ffd62e00e0837caab5c26", size = 900362, upload-time = "2026-10-11T18:37:55.396Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/72/b8/b864503789ef5c58597d2a7b4adbee62c26440ab1e682581fc6838df8947/pydantic-2.14.3-py3-none-any.whl", hash = "sha256:3f7b347782ab7e4cf4c798496ae3a82787d9f21ec12676a9c564355eeef8daa8", size = 494071, upload-time = "2026-11-05T09:17:02.426Z" }, + { url = "https://files.pythonhosted.org/packages/35/ea/a56b9fe5066f3537b7882f77e9c5dfb26d8c2eefdaed9b5fc73d57b4dc22/pydantic-2.14.1-py3-none-any.whl", hash = "sha256:9195d967ec791692a04438115466764fb8b9a27b31f14a760437694f40d6b454", size = 488106, upload-time = "2026-10-11T18:37:53.437Z" }, ] [[package]] name = "pydantic-core" -version = "2.50.4" +version = "2.50.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9c/0f/34f9ce4ba701dd0b815033ef94d99b56f66200e578ee6052aa3ac26f064e/pydantic_core-2.50.4.tar.gz", hash = "sha256:aead3b74b68396bf0feab5d57e050b730ded7df55853c1e048a87e00aaf033c6", size = 522249, upload-time = "2026-11-05T09:15:26.774Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ee/ed/c9a4982ac3bbc78f27498d9efb85b3dabd739a1724db53c35cc4c018e1de/pydantic_core-2.50.4-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:5c074454dc6d4f6f4ba6561a56bf33a14db7651d882a5a5321ba3ae8868e082d", size = 2236841, upload-time = "2026-11-05T09:12:56.111Z" }, - { url = "https://files.pythonhosted.org/packages/56/32/92c174c17bfc5fc52d0c064e6a7969a727731e25829ede752fba8bacce0f/pydantic_core-2.50.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:a4bb174bd65f795c39ad6642d9d5bdc43351b306b7d0a654ab0d0abb38be245f", size = 2108348, upload-time = "2026-11-05T09:12:57.638Z" }, - { url = "https://files.pythonhosted.org/packages/cb/cb/9f637d424a04d3edce7dd527da941950cce05a74b025eef3d54427b86c8e/pydantic_core-2.50.4-cp314-cp314-manylinux1_i686.manylinux_2_5_i686.whl", hash = "sha256:0ec20aca2b067369913716847f7dfe5f4dddf16a46965b7a70bbad5defaaba86", size = 2261331, upload-time = "2026-11-05T09:12:59.154Z" }, - { url = "https://files.pythonhosted.org/packages/91/ff/1117a3cccabb67305bd98d992a84eaf275939a9a043b4f14126ed7252e4f/pydantic_core-2.50.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:70dbc9f83c41f37a4faa62dae5203853847223a891da446f48ef2efcfd5df806", size = 2128667, upload-time = "2026-11-05T09:13:00.614Z" }, - { url = "https://files.pythonhosted.org/packages/93/45/6de1b4a6e8c415cd547f90d1408a711e7975116423e3eb3046061c62d7c7/pydantic_core-2.50.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.whl", hash = "sha256:3de6c2a4df2af0ac9ab4dc1488746fe8b1a90e27955d870d9edda3187d20092b", size = 2198183, upload-time = "2026-11-05T09:13:02.259Z" }, - { url = "https://files.pythonhosted.org/packages/d0/bd/c6e64c315d35cc0783a0ea033a3dca062bc368905d0217eab6f6f63007de/pydantic_core-2.50.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:3a48a5254d15a0ad050318bfc7a9566d4ec740118187e8f303e47a6840287eb7", size = 2386279, upload-time = "2026-11-05T09:13:03.988Z" }, - { url = "https://files.pythonhosted.org/packages/33/ab/0d56280c89d3841381e9c699c3fa80e3dd3288edf5e7fe4d149136835dca/pydantic_core-2.50.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:0af56dbf8822ba9f4efcbbfdc15478f8b6fb08f1609860cb50aa2cc8476b3c34", size = 2464343, upload-time = "2026-11-05T09:13:05.98Z" }, - { url = "https://files.pythonhosted.org/packages/56/9c/621ad8f88590a92a086b1168dce09369d9c5e079e2e635e6646d248af55b/pydantic_core-2.50.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f1d62fb172db35c6478c9323da34ff37d1f3d37d7d44337a9d94ba8c583e5730", size = 2265388, upload-time = "2026-11-05T09:13:07.808Z" }, - { url = "https://files.pythonhosted.org/packages/f3/7b/cef68a667bf29b86e293a80a601d488a84c8f45508915ad6201fcfe1a798/pydantic_core-2.50.4-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:5c1013647be741647895c102831dcf79c34209662dbb683df9efb864417ed7d5", size = 2267012, upload-time = "2026-11-05T09:13:09.273Z" }, - { url = "https://files.pythonhosted.org/packages/4b/9f/3ae4d163d8feda2b52de88b5cd96b1c40f79d11503003b061136d2ece6ab/pydantic_core-2.50.4-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:aeb2e123cbf978a905e9f55155c1b8316fbbfa7cf64d04521fe174bab302d100", size = 2300478, upload-time = "2026-11-05T09:13:10.758Z" }, - { url = "https://files.pythonhosted.org/packages/e8/72/41881d31f6452430ed6792679c5391795910f0a27a6aebd424683e504ed6/pydantic_core-2.50.4-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:523466eba8ee10f7480f3c2057563145978011c583130d2cc01fb1e7af808e25", size = 2474874, upload-time = "2026-11-05T09:13:12.188Z" }, - { url = "https://files.pythonhosted.org/packages/05/ef/099874dd6d5ca1e49987dea87eecc05610183249450b1fff883d87f1e8eb/pydantic_core-2.50.4-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:c9e70012926e97069cdd09221861aff412aa94e4cac2e019055cdb79485b150c", size = 2502771, upload-time = "2026-11-05T09:13:13.981Z" }, - { url = "https://files.pythonhosted.org/packages/c6/07/a7d8615b8677bf69e24666bbce431299850c95a7b084649342582a1c3210/pydantic_core-2.50.4-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:e6da138a1ecc1341c8b788a5ee822670b03788e1f5decf7af9d461de6e508b8e", size = 1496509, upload-time = "2026-11-05T09:13:15.704Z" }, - { url = "https://files.pythonhosted.org/packages/ab/71/fdf2c25c3a4f89968263c1d896c933809ca8d2fb13443626648a17b2e296/pydantic_core-2.50.4-cp314-cp314-win32.whl", hash = "sha256:13b6dd62b5279f5b9d72f3bf918a35443ee8bd549241d9dc52d79a2c3b6d7016", size = 2122015, upload-time = "2026-11-05T09:13:17.09Z" }, - { url = "https://files.pythonhosted.org/packages/3a/9f/3554f0148b01ddaa5e678bf5fbce4679873534e5c0985cdf6c59c41dc9a9/pydantic_core-2.50.4-cp314-cp314-win_amd64.whl", hash = "sha256:b0cdb655fbd1562c2dfc9986f9103a106f7058cd0915afc6e656d4b1d73f3387", size = 2265109, upload-time = "2026-11-05T09:13:18.702Z" }, - { url = "https://files.pythonhosted.org/packages/ed/3c/196ef237d9ec5cca5ea9b773911dee1a387b9b1d4bfea05625b3e191a338/pydantic_core-2.50.4-cp314-cp314-win_arm64.whl", hash = "sha256:df1c174796cd63eb6b139f7daf783affe1f3ed659605850e843b24764c21bfc5", size = 2165745, upload-time = "2026-11-05T09:13:20.245Z" }, - { url = "https://files.pythonhosted.org/packages/36/12/0ee82a41a3995f0b531cf14e0b823dc2365ba4a22330670fccaa72753f12/pydantic_core-2.50.4-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:edbca8789fd10f0de534b660a6b4c71f1fd18039679c918dad392ab044bb37e4", size = 2223917, upload-time = "2026-11-05T09:13:21.623Z" }, - { url = "https://files.pythonhosted.org/packages/90/2c/592f8404abbcc65a70e6a802d1dc8f11412af44913e5146cf5c345370074/pydantic_core-2.50.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:33b21f69540a12c2053cd1d95766d8bd9667a3897f7c712a642de8aa37eb0865", size = 2087372, upload-time = "2026-11-05T09:13:23.16Z" }, - { url = "https://files.pythonhosted.org/packages/ea/1d/c7111757c84b5b8c19b1e39ceb5e131e6e48e14169ec6004e0f8f28f43f3/pydantic_core-2.50.4-cp314-cp314t-manylinux1_i686.manylinux_2_5_i686.whl", hash = "sha256:ffb616d8d55965839670301dc3bae3abacff560a7e137a89056058a8a9da4d96", size = 2275190, upload-time = "2026-11-05T09:13:24.634Z" }, - { url = "https://files.pythonhosted.org/packages/3d/ae/6c49cc9b8e66e61adee782d1763894bf64a357cddae82f725059b85bdc98/pydantic_core-2.50.4-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6c5687b59b6ba0f663c4f2f15470f68507d6b45ccd3a19ee6d224f95cbee70d8", size = 2110343, upload-time = "2026-11-05T09:13:26.168Z" }, - { url = "https://files.pythonhosted.org/packages/ed/39/0ee5261d1daa9ad526371181c13696add0565251b2823f6e00a9a9af397d/pydantic_core-2.50.4-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.whl", hash = "sha256:c733087ecf7dde06b1d071679bfd5f3ba03266ba77814c1c7253bc48c9adedd9", size = 2207887, upload-time = "2026-11-05T09:13:27.681Z" }, - { url = "https://files.pythonhosted.org/packages/ac/b5/a0652c0e99590107e111088b6d059044380a787da9ffdd0b458ab4cd9453/pydantic_core-2.50.4-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:94733cb447c37b0ce6f71b39ca1288d5f966a084023a5617b4cc35a852586859", size = 2404171, upload-time = "2026-11-05T09:13:29.864Z" }, - { url = "https://files.pythonhosted.org/packages/a3/85/d49f0b8e09a0ffc40dcefb604f9e6020e0d61b51a5f64a504f382fa84c39/pydantic_core-2.50.4-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b26f39a5be3cd91a2035818be3d0ffdf5282c3e1f5f53d3b80b7024021acee52", size = 2466049, upload-time = "2026-11-05T09:13:31.658Z" }, - { url = "https://files.pythonhosted.org/packages/e6/76/f2b04d7c53edfd8136053c812ea49914fbf4091196cb7baf9ea326fa2ff8/pydantic_core-2.50.4-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c856e439a9d54d514e81a7131229ba151cdf81df7c408e0f6c89340e5003dfe2", size = 2262062, upload-time = "2026-11-05T09:13:33.806Z" }, - { url = "https://files.pythonhosted.org/packages/24/60/016f14cea883adc33df90b8df220df934de49ded9640f45c8e92bb298494/pydantic_core-2.50.4-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:cbf0777d54672990b10cb8ca9b0523499e182d7e2ea39f86b138519a902aa601", size = 2263713, upload-time = "2026-11-05T09:13:35.337Z" }, - { url = "https://files.pythonhosted.org/packages/f1/3f/b05828e978512973e7e215bab69e65e70d223d6309a17bf48084a50692f4/pydantic_core-2.50.4-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:edc17549ab592e33cfcaf285f047bb75fcd98f608aa9309af1187fd736ce9641", size = 2305044, upload-time = "2026-11-05T09:13:37.043Z" }, - { url = "https://files.pythonhosted.org/packages/91/c1/fca6c5f623ac45ba284713c614b30173aa0794899a0a457f866fa6f5e886/pydantic_core-2.50.4-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:23a9ba564b2db709ff16eca990992ba95a19069972b34bff87c81d4b473cd755", size = 2483506, upload-time = "2026-11-05T09:13:40.524Z" }, - { url = "https://files.pythonhosted.org/packages/94/c2/ec41f68d1208e53e1a73ead940c050c4316bbb555ba42676a5e949fd529e/pydantic_core-2.50.4-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:41f4f8ae714e4fea1d635880f8a1af715ecf080eed4d13c5b04a0f3210f9c61a", size = 2512832, upload-time = "2026-11-05T09:13:43.361Z" }, - { url = "https://files.pythonhosted.org/packages/43/22/58583b86309f70cce854e0e77c412839a56ac6c682d6060f5794afeff315/pydantic_core-2.50.4-cp314-cp314t-win32.whl", hash = "sha256:601fce6cea9ddeaa85329e12e7f351def38d233075f42a3012b9c48071b02941", size = 2101977, upload-time = "2026-11-05T09:13:45.735Z" }, - { url = "https://files.pythonhosted.org/packages/6b/28/193bc0994f7fe15f2874c1dfe2f3bc7872aed8283ffda2cf05fb9a5a06b4/pydantic_core-2.50.4-cp314-cp314t-win_amd64.whl", hash = "sha256:22e874666bdbd96d6bf629d32cd8ab376fedf1fd62585b52a42b9fa9fa6c20b6", size = 2240461, upload-time = "2026-11-05T09:13:48.38Z" }, - { url = "https://files.pythonhosted.org/packages/00/ed/5615cfdd5620a4926440eb1a2b73db0dc895824ba565ccaa8d9eb3a8e974/pydantic_core-2.50.4-cp314-cp314t-win_arm64.whl", hash = "sha256:71395a43da5584bb70556f380387e15f845c0dcf76373c1afbfa0025737576ac", size = 2168505, upload-time = "2026-11-05T09:13:50.762Z" }, - { url = "https://files.pythonhosted.org/packages/6d/9f/e6673535165d965a11c1d5339f53995f90234019827eaecb41a57e6e463d/pydantic_core-2.50.4-cp315-cp315-macosx_10_12_x86_64.whl", hash = "sha256:7ac2769a7ddd661e07e26c12220adc31b17014c48234b2a5a88993b8d4109e09", size = 2241950, upload-time = "2026-11-05T09:13:53.055Z" }, - { url = "https://files.pythonhosted.org/packages/6f/02/65951efadbf7826e6a270843f97e3da2ef726de2b6d9cd7c5dfa4c48807e/pydantic_core-2.50.4-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:930ad463d3fb7a340d323bcc496ec32dae469ec9974c29ff569f19806b6b03b4", size = 2112412, upload-time = "2026-11-05T09:13:55.309Z" }, - { url = "https://files.pythonhosted.org/packages/c9/d3/4fb6e2e4a9e4951f1e05b198366ed5330e0874e83d52077e8b985350fe0e/pydantic_core-2.50.4-cp315-cp315-manylinux1_i686.manylinux_2_5_i686.whl", hash = "sha256:b867f9fd183d76977f810c626d539265183c25b2284762893a31e8d6cacc81c0", size = 2263220, upload-time = "2026-11-05T09:13:57.555Z" }, - { url = "https://files.pythonhosted.org/packages/63/83/42e70436c523357b49393b73f161f2741acf36003c8efd2f941d2be56bae/pydantic_core-2.50.4-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:49eb1241a969a5994db6880c18c012b6cbe2340343d8f529721571806583e500", size = 2134716, upload-time = "2026-11-05T09:13:59.413Z" }, - { url = "https://files.pythonhosted.org/packages/36/66/ed9b87f4751fd07e472c62cfe151f575abdf4c452fab943d35ba8efdc6c4/pydantic_core-2.50.4-cp315-cp315-manylinux2014_armv7l.manylinux_2_17_armv7l.whl", hash = "sha256:477af785d1846e4e96bf56983b92ea7553aaeccdeb8acdaa55c7cee9eda0ae32", size = 2201901, upload-time = "2026-11-05T09:14:01.472Z" }, - { url = "https://files.pythonhosted.org/packages/2b/21/ff2e6ac7202b6d326e9f007c6082f6e6f3aaa063790ea2a355bdc985addc/pydantic_core-2.50.4-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:29358a8ca74e7d81158d14e2b10c904bd18773293ae3788716c0626fe0342347", size = 2389670, upload-time = "2026-11-05T09:14:03.431Z" }, - { url = "https://files.pythonhosted.org/packages/b9/34/e9348bc13d549641791a51843ed140fbb311d9066628e27477343412d5ad/pydantic_core-2.50.4-cp315-cp315-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:300753f71c73302e218124baf995f00058e085cd01869bd9610bcbd0bd4500c1", size = 2468951, upload-time = "2026-11-05T09:14:05.028Z" }, - { url = "https://files.pythonhosted.org/packages/ac/5e/145a02bf2b9f66981108caf6cc9e78917e31e4caca14d1e3ccd3ff2c7293/pydantic_core-2.50.4-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:26cb012c4b8ca9f847bd0ac15978bd3d0f55b050bfbe6c47355edfc7e945029b", size = 2272957, upload-time = "2026-11-05T09:14:06.587Z" }, - { url = "https://files.pythonhosted.org/packages/fd/38/b71c5b245e923f6cf144e948ed2a9d6b7fb97d8905784db8d860f5176b8b/pydantic_core-2.50.4-cp315-cp315-manylinux_2_31_riscv64.whl", hash = "sha256:9be1cfe715ecaa060ffd5d599ef410b94ef2697a0eed4cee562f788a2aa2175b", size = 2275028, upload-time = "2026-11-05T09:14:08.219Z" }, - { url = "https://files.pythonhosted.org/packages/ba/71/2504dacdc5cd3ea3ec5e68c9b6e097c979500bcff220b97046cc8ea3c1ad/pydantic_core-2.50.4-cp315-cp315-musllinux_1_1_aarch64.whl", hash = "sha256:c81e35862aced259177a537ce1a6264c3a97bae1ced184ca9dc10ea754563688", size = 2305447, upload-time = "2026-11-05T09:14:09.795Z" }, - { url = "https://files.pythonhosted.org/packages/2c/90/904233a6c148bcac9f30bb96a2761e5fb52682d0d6de31a40c74a3714ceb/pydantic_core-2.50.4-cp315-cp315-musllinux_1_1_armv7l.whl", hash = "sha256:b2f2d13239487cecaae98c9f4d5904ad0737643cdf8873c88ec6a78b12214f20", size = 2477852, upload-time = "2026-11-05T09:14:11.443Z" }, - { url = "https://files.pythonhosted.org/packages/72/33/1cbdcbf343ca23b507e967b21dddc4c8bf17a74c8b5cad59228c85ba4efc/pydantic_core-2.50.4-cp315-cp315-musllinux_1_1_x86_64.whl", hash = "sha256:e6b4b08d09054310a4dc389fa61ee22a7a5a292cb23ab8a985136ca8828bf924", size = 2506352, upload-time = "2026-11-05T09:14:13.165Z" }, - { url = "https://files.pythonhosted.org/packages/91/24/3ad9ea0876e6624c90967e5f1446e751b275cfdfaaf798a0d8e0b30025bc/pydantic_core-2.50.4-cp315-cp315-win32.whl", hash = "sha256:6619d49a89a15cd04334f76fec530c155923bfc60da74ff5d815a52629e1aa6c", size = 2127780, upload-time = "2026-11-05T09:14:17.52Z" }, - { url = "https://files.pythonhosted.org/packages/c0/3c/0582532b90a12492471977bdbca1317eca5144f6342ea581d2cee73ccd35/pydantic_core-2.50.4-cp315-cp315-win_amd64.whl", hash = "sha256:e5bd109d095aaae989a0463d5ef0fcc43e9ddd5de125e656d3c119a79e466380", size = 2270596, upload-time = "2026-11-05T09:14:20.955Z" }, - { url = "https://files.pythonhosted.org/packages/6c/50/967cfe4f7043a993c0c80cd3563c598b5281d2276aa775d0f6ff7f714271/pydantic_core-2.50.4-cp315-cp315-win_arm64.whl", hash = "sha256:6118e5a5550e36582e19bac1a403711a748f9f18251b054c326d3db02aaa7a18", size = 2170880, upload-time = "2026-11-05T09:14:24.822Z" }, - { url = "https://files.pythonhosted.org/packages/9e/71/3ec5bd8a82f792482f16d79fdbe8ce85aa71bf7147e556c5fc5f8546818d/pydantic_core-2.50.4-cp315-cp315t-macosx_10_12_x86_64.whl", hash = "sha256:d8201c9f9035520cdcc7dcad383b039ec8123969b87e01cf27c3dd883c02313b", size = 2233053, upload-time = "2026-11-05T09:14:27.942Z" }, - { url = "https://files.pythonhosted.org/packages/6e/2e/614dc37aedf8e9f811c1f2eedaf8eb09a7c196e2d137fe82bcc9d5662ca2/pydantic_core-2.50.4-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:1de7be9a66fc8536770481ab64a05aae5067c725f2b29a09543af00e6a417b97", size = 2090776, upload-time = "2026-11-05T09:14:30.281Z" }, - { url = "https://files.pythonhosted.org/packages/f9/14/aefc14e3e05013070ee959fc0b8703f6860a2776ed6e75b9c748f61aced0/pydantic_core-2.50.4-cp315-cp315t-manylinux1_i686.manylinux_2_5_i686.whl", hash = "sha256:789a6453e5ffd18a7ab6b8c3a0dd8403053829197ec258ecb90c604c21ffcc99", size = 2272481, upload-time = "2026-11-05T09:14:32.578Z" }, - { url = "https://files.pythonhosted.org/packages/13/c9/d56999aa7236dc9303091db2b1ef7303f0b022baf25ebf33cd200c0cb933/pydantic_core-2.50.4-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6348ad12fa741bcc9c2f173e99fbf27cbc038826d8c31a4a7d836eca27878ba2", size = 2113069, upload-time = "2026-11-05T09:14:34.69Z" }, - { url = "https://files.pythonhosted.org/packages/b7/d5/a62da9e72f272f198f6118c5457332bbd4b9fdc4b77858448120569756de/pydantic_core-2.50.4-cp315-cp315t-manylinux2014_armv7l.manylinux_2_17_armv7l.whl", hash = "sha256:d49127f137f871cde3c5650af33bbbdcee02679dae76e020902fa106f522b8ae", size = 2202754, upload-time = "2026-11-05T09:14:36.49Z" }, - { url = "https://files.pythonhosted.org/packages/37/4a/e7f21577f96e42ac3082cd014df398c1c913d482afac1c8ef17b9e039198/pydantic_core-2.50.4-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:2f5cc5bcb94063fbbdfd285a2b302da34af07491337c10bb35de1d5220fa1583", size = 2411472, upload-time = "2026-11-05T09:14:38.63Z" }, - { url = "https://files.pythonhosted.org/packages/38/ad/c57c5e13bbfd3404ec1af519764aadbc52ee01e39f9f9ae9d28317f982f2/pydantic_core-2.50.4-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b99bed995ed7c41515c11fe2beb86f8a6cc298e5537cae2f736de2f982f74ef0", size = 2475330, upload-time = "2026-11-05T09:14:40.519Z" }, - { url = "https://files.pythonhosted.org/packages/6e/63/65cf0e1f1fd8cfaafee3c005712b8020e063b0f3e3571493ea68db5ec44f/pydantic_core-2.50.4-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:faa4e96385c820ce9d7f7a623486e23d4134ae3c9ba2071e44e0ab5a5a5002c4", size = 2265718, upload-time = "2026-11-05T09:14:42.379Z" }, - { url = "https://files.pythonhosted.org/packages/72/5d/fd9fdec9b25e2ef1f788970a84f749f0e28f166573c87654fd5387d8e5ce/pydantic_core-2.50.4-cp315-cp315t-manylinux_2_31_riscv64.whl", hash = "sha256:d6a166978f22f10cb91413f70519861605219346decf65bc79008f9257c94afe", size = 2273454, upload-time = "2026-11-05T09:14:44.286Z" }, - { url = "https://files.pythonhosted.org/packages/34/8c/19705c6d5eb72ff8c25006df8a375da7466176a5968781789e5415384f65/pydantic_core-2.50.4-cp315-cp315t-musllinux_1_1_aarch64.whl", hash = "sha256:a70d5effebd81ebd8e15a8aabdc7980832367b2b00c36543bac378977004cc80", size = 2314862, upload-time = "2026-11-05T09:14:45.97Z" }, - { url = "https://files.pythonhosted.org/packages/b8/fb/acefa27031aba2646b0d3026c4a1602e526489d39395ab17bc47f03234e3/pydantic_core-2.50.4-cp315-cp315t-musllinux_1_1_armv7l.whl", hash = "sha256:f8fd23653a252cefabea11cd041efd7b80bdf403e43a36dea53f9cb0aaa21f0f", size = 2479073, upload-time = "2026-11-05T09:14:47.526Z" }, - { url = "https://files.pythonhosted.org/packages/ef/e1/db08fa1e5edf1779fa0612f8d09f9030bdc513f593687c883cb781b86caa/pydantic_core-2.50.4-cp315-cp315t-musllinux_1_1_x86_64.whl", hash = "sha256:7646353a5a7c553c04167aca628e2550b538f492765b03ccf34321a560acc43c", size = 2521328, upload-time = "2026-11-05T09:14:49.042Z" }, - { url = "https://files.pythonhosted.org/packages/0d/51/bf1ec5b96c076d8d514b08f3bcffb3397df7a0fcc729eb960838a8bbe27f/pydantic_core-2.50.4-cp315-cp315t-win32.whl", hash = "sha256:65376dbe1ab4dbc768ca2b72b7c13993562c035f5925fd3bc7ff9c8c585c515d", size = 2107629, upload-time = "2026-11-05T09:14:50.891Z" }, - { url = "https://files.pythonhosted.org/packages/18/32/43d5db1824ec2314f737ff8d9962ff59954a74616d8656a8cc78790e45f1/pydantic_core-2.50.4-cp315-cp315t-win_amd64.whl", hash = "sha256:f08ee8248aad2d054e5bc4c73554d4505464698f6d754f16198dbc5764e9821d", size = 2244906, upload-time = "2026-11-05T09:14:53.056Z" }, - { url = "https://files.pythonhosted.org/packages/3a/c0/38c505004969c4641c3a077a8e72e354f02d5c06d8f51d7a103699704772/pydantic_core-2.50.4-cp315-cp315t-win_arm64.whl", hash = "sha256:da779ae50b46f3f7d1e1b5f362fdc0ad376a49fd55f6f3122dc2b6149936cdf7", size = 2179018, upload-time = "2026-11-05T09:14:54.448Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/a6/24/af4ec4be49fbc810f35b0bdcacc3d433b56bbfa469fd3bfd4ae116cd9bf1/pydantic_core-2.50.1.tar.gz", hash = "sha256:e50d7b94baac6c7d09927fa5ca5800a0c7ee5015c7fcff65beb3a1931b5a6e09", size = 513515, upload-time = "2026-10-11T18:35:44.82Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/49/33/28b96e81677153715e3eafb9f26663a80841e859fde282a380359b0d3fa1/pydantic_core-2.50.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:1cf41f1ae3fa155cf167a72689ad044bcc1e3c97e064123677149bdfb5dafc4a", size = 2224428, upload-time = "2026-10-11T18:33:07.153Z" }, + { url = "https://files.pythonhosted.org/packages/94/40/15c06410c9b7b8da5805d27b64e09bd3f900e986728106db2689dbc51513/pydantic_core-2.50.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4df197990c15b5a37c5a277d131d9f2c67de6133f2e5dafd80d9bba4b99f46f9", size = 2023740, upload-time = "2026-10-11T18:33:08.763Z" }, + { url = "https://files.pythonhosted.org/packages/a1/4e/5eb629f6efc2a27e421d789dd4bfacbb5f6d09c80c28b13d1e87d73163d5/pydantic_core-2.50.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0036473f5583e6a60e50b8b21651511564277a3f05cc5dab8cf579f552cd5f6c", size = 2049435, upload-time = "2026-10-11T18:33:10.366Z" }, + { url = "https://files.pythonhosted.org/packages/ba/8e/f195aebec49ad12318876ac2368c197a7939f5d52f8e156d2238ef8a4588/pydantic_core-2.50.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:992c3514ec891fa7858099183e4d64e6bd5a5d4ff452fae29df22faa77a006bb", size = 2172975, upload-time = "2026-10-11T18:33:12.368Z" }, + { url = "https://files.pythonhosted.org/packages/e0/f5/7ad9fb83010cd5ea0948409db105676ed779c4e709e2d3d89b9fe2558794/pydantic_core-2.50.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:739dc730e6be3bd5ec2f4ab5cfc7eb047cc45fc1497b3bafec74ff2ed07df597", size = 2364197, upload-time = "2026-10-11T18:33:14.244Z" }, + { url = "https://files.pythonhosted.org/packages/ca/fb/bf0aab3e78301d202b82a0322ec968cd703b11fc0623fde9a28708936f62/pydantic_core-2.50.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:32fad3a91e51b6d2039c572db04a5a873260b399f6bd62c3552671fa7a4a2899", size = 2444259, upload-time = "2026-10-11T18:33:15.79Z" }, + { url = "https://files.pythonhosted.org/packages/45/35/38f6d6564fae57d9b12e5676dfa947e0e7d5c46dbeaa7eb3352261d6d299/pydantic_core-2.50.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42b54c2c90ad348b5e3a85e03e715d572c1fde357ef104cdfe3b03b697a404ea", size = 2159857, upload-time = "2026-10-11T18:33:17.51Z" }, + { url = "https://files.pythonhosted.org/packages/65/a0/fb0a3ca10f139dcf765b2d312d10cf0f65c57c59993229d00ad12b14ceff/pydantic_core-2.50.1-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:2df1ff41884de2bc4b307bafd7c40a691094fad2ff8e767e5b45a319257bcf4e", size = 2233954, upload-time = "2026-10-11T18:33:19.591Z" }, + { url = "https://files.pythonhosted.org/packages/8c/6a/e63842252702aa4ec6e6b7178ca85e541a77459076592c23ebe2d9840b33/pydantic_core-2.50.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fe90228920fd8ff2be62622b6bb8a2b11acd65046d50c6b130614b5879605a20", size = 2243876, upload-time = "2026-10-11T18:33:21.393Z" }, + { url = "https://files.pythonhosted.org/packages/39/25/5991cf8318b37e0dfab47b87541619a1df8501a793cba0d978846cba37a7/pydantic_core-2.50.1-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:844b869f118e22a41a091bdcedda8a71bc1b0f62c38d1a0c3211cece47e1d8fc", size = 2277908, upload-time = "2026-10-11T18:33:23.324Z" }, + { url = "https://files.pythonhosted.org/packages/a7/3e/3ee8baaa6cc25a6961c69168cf9ff0f002d56f4e0d541ad6724c18fb61f3/pydantic_core-2.50.1-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:2eb75304506894a281d346220a4f7481a1b8729577c5ed2a05395991966a8396", size = 2449285, upload-time = "2026-10-11T18:33:24.942Z" }, + { url = "https://files.pythonhosted.org/packages/c0/c7/acbec6deac13fe697a80c275a9b6661db62c4d323bac8a47347b1f39c7cd/pydantic_core-2.50.1-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:6b20a4bffabdad0db2927ac034ae3b8a681b1f7a0182f3e60b479ad2fde21ebb", size = 2479013, upload-time = "2026-10-11T18:33:26.925Z" }, + { url = "https://files.pythonhosted.org/packages/10/08/21a3f237b264389f6219d053ee78fc1b5c2fd402c1b1cb2b6cb8b85f9834/pydantic_core-2.50.1-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:99ba9bc2b8062ea0c326a990f7f00e6530c23579de66dd246e72c4cafef950a5", size = 1484400, upload-time = "2026-10-11T18:33:28.693Z" }, + { url = "https://files.pythonhosted.org/packages/09/ce/077a6d262d12ef09108377ac0717f029f420d773ace63cafd6143af75568/pydantic_core-2.50.1-cp314-cp314-win32.whl", hash = "sha256:cf356f70551d40374eaffb1aa63f1eb6d2006681cbd7a9faea173ce0f4dd7cd2", size = 2103222, upload-time = "2026-10-11T18:33:30.326Z" }, + { url = "https://files.pythonhosted.org/packages/14/4c/350a2415209c43d670eb71d3c040f332c04a30583d39e311b05c7ac15762/pydantic_core-2.50.1-cp314-cp314-win_amd64.whl", hash = "sha256:d32f3acc081cc3923386d88f422cde8892335e95f034e0104bb4cf9310d9915f", size = 2171586, upload-time = "2026-10-11T18:33:32.139Z" }, + { url = "https://files.pythonhosted.org/packages/bf/92/9bea6ca96580a0902fed366f064f0829e404f41889b34543279a1162b888/pydantic_core-2.50.1-cp314-cp314-win_arm64.whl", hash = "sha256:bed5163e03b98bc1fa2eb05d74c63d9c5c95d8ed6254985481640fbf5e237dea", size = 2155773, upload-time = "2026-10-11T18:33:33.896Z" }, + { url = "https://files.pythonhosted.org/packages/86/8c/f121f073cf32bdd5cba7e6230b1ce0ac845b0cf43e44dd597d95af272db2/pydantic_core-2.50.1-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:9572c1369e9c9da2d64a7b7992c786d90ff295abc93964cfe3125e4290768070", size = 2234017, upload-time = "2026-10-11T18:33:35.588Z" }, + { url = "https://files.pythonhosted.org/packages/a4/69/2bb2bcd6146cffe98d760a46c42ae71efd5151d9b2f9c9bf6619a3b32083/pydantic_core-2.50.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2005207aafe1231315718bf6ed5d064a7300fb4772754af35ee72fc68159492e", size = 2001016, upload-time = "2026-10-11T18:33:37.57Z" }, + { url = "https://files.pythonhosted.org/packages/20/b3/fbf854c7d07ec114260c26e9e2071a4381740f9ae09641dbfcbdf2a18c45/pydantic_core-2.50.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64f6047f62a6c5ae08d0a6afb035667aa2d97c3d20d69762e034c5ea144d92a5", size = 2023015, upload-time = "2026-10-11T18:33:39.433Z" }, + { url = "https://files.pythonhosted.org/packages/65/20/6de55b2f92cdb614b745c6e9ced639fc4fd7e1e77604825a88bdece6fcbd/pydantic_core-2.50.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ef800dd7d85bcdadf4c3076e4c94e43939493558a3b69a1ea830c706d4617bb", size = 2192543, upload-time = "2026-10-11T18:33:41.381Z" }, + { url = "https://files.pythonhosted.org/packages/0c/d9/19e91c94bd5c405945ce2f15526808aea37e162c253160de8ed7bf70b406/pydantic_core-2.50.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b0135bcdcaa0f23573f286e4cb5e0fd2962700964ed13df085b85f2b97aeab9e", size = 2388704, upload-time = "2026-10-11T18:33:43.167Z" }, + { url = "https://files.pythonhosted.org/packages/b6/bc/2e24c8415eae1a25ee5a5484946a917123bad2e9d01689a759236928175a/pydantic_core-2.50.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0b3a6f334c6a2345ca15318ff894502a90012536404b37c844a976c76c846e0b", size = 2464118, upload-time = "2026-10-11T18:33:44.856Z" }, + { url = "https://files.pythonhosted.org/packages/bd/1f/945b8053cb061c64e102bcaf7bfb9ed740c0bd4349f9bb978a7d4ddff4ab/pydantic_core-2.50.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06e01fbbfdb9be777b316a71b6c49efaf4a08b615d0a98d678cda3023f79d019", size = 2150142, upload-time = "2026-10-11T18:33:46.661Z" }, + { url = "https://files.pythonhosted.org/packages/2b/78/96a3e50bf0d64aaae781107eb9335b7529d05a85793ed6e7241c4cd1d931/pydantic_core-2.50.1-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:a29a061fec0b4e2d714f277e70a3a18125ecff803f2fea6eade2f2e53711d112", size = 2245577, upload-time = "2026-10-11T18:33:48.574Z" }, + { url = "https://files.pythonhosted.org/packages/7a/5d/a6038a0322232758a6ebfa709f4ca14a60bf5b93940cd0b345056a557da4/pydantic_core-2.50.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f5187624823423e1d1b82b1072ac41dc837389e18d3d0572cc19bbee46cd550a", size = 2263728, upload-time = "2026-10-11T18:33:50.527Z" }, + { url = "https://files.pythonhosted.org/packages/0d/4b/76ded3333a457a9344c4f2d63f2d82d0101654b05178fa4ddfe7d3627674/pydantic_core-2.50.1-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:3e46a9eb0a0901dd6275e6b06ac3a464885ef350ec4121fe486869de8053e4bb", size = 2293630, upload-time = "2026-10-11T18:33:52.362Z" }, + { url = "https://files.pythonhosted.org/packages/a9/00/9eca378335c9c1b72bc779bf6e4c2a82ce784f14ec48a0e87102c9870e05/pydantic_core-2.50.1-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:756d669f04e62ec4148ecfe22be6a4484d9b1181a6ef32e205ebfd200540858b", size = 2468048, upload-time = "2026-10-11T18:33:54.118Z" }, + { url = "https://files.pythonhosted.org/packages/35/ca/e3832e9cf93651251de43c8c5c029ed680a3c1a0a1b17ee26c81bed08cbd/pydantic_core-2.50.1-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:c516cc5367ca3448995d42cb994bf3f4c9002d2a7c22eac9622551269ad1b807", size = 2512159, upload-time = "2026-10-11T18:33:55.99Z" }, + { url = "https://files.pythonhosted.org/packages/4b/f2/773469b5a10a39116a2cb17edaf6d722f017dd8da07161b371465311c542/pydantic_core-2.50.1-cp314-cp314t-win32.whl", hash = "sha256:9d1bed94af6a63835461f3cf7502058eb166c58c4778e11d0f433cfb1bd69e19", size = 2098406, upload-time = "2026-10-11T18:33:58.043Z" }, + { url = "https://files.pythonhosted.org/packages/ee/42/0bb74f8f25204b259b11ab7c12dc7f180893b6bd706118b385147fb6efd5/pydantic_core-2.50.1-cp314-cp314t-win_amd64.whl", hash = "sha256:c8dce1f1e0e5358b682a6ad3fa5e31b31d4560997b8e61417e9217c8d60f8a0c", size = 2148481, upload-time = "2026-10-11T18:33:59.913Z" }, + { url = "https://files.pythonhosted.org/packages/47/0d/d801646c9679a4e630e15cf521d4108b93854b42a6e6e02391bd4c6b1095/pydantic_core-2.50.1-cp314-cp314t-win_arm64.whl", hash = "sha256:ceff0acc940be2715bd6ad17b24c0e5304abf44f6efd0f81ee8499e640f9dc86", size = 2174972, upload-time = "2026-10-11T18:34:01.875Z" }, + { url = "https://files.pythonhosted.org/packages/b2/84/23984b763d8862a02a13d27a44b6e8169428fd85ecfed88f54c29108604d/pydantic_core-2.50.1-cp315-cp315-macosx_10_12_x86_64.whl", hash = "sha256:8a6791afa2245e6c6b180122d105941644f5bd410bb18623b408808cc41a3102", size = 2224599, upload-time = "2026-10-11T18:34:04.016Z" }, + { url = "https://files.pythonhosted.org/packages/4d/90/a63cf8586abc1d1a3f6d9b18f0224789ebf003851f092ebda3c7c863fd32/pydantic_core-2.50.1-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:84f34323a61a365b4e9295de6028474754829aaddd59c7bf1a040e7487ef8f3c", size = 2024191, upload-time = "2026-10-11T18:34:05.901Z" }, + { url = "https://files.pythonhosted.org/packages/a6/6a/f34bff9808ffb4907fbf5f5040457d253cacf2da7fce9efbc99ca1b1a44d/pydantic_core-2.50.1-cp315-cp315-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23edad659e8dbd8ca7e4e877fe6c81573abbdf215bd25a68b53e1272f58b80c7", size = 2048252, upload-time = "2026-10-11T18:34:07.757Z" }, + { url = "https://files.pythonhosted.org/packages/b2/54/13f419bf1eb59852003818e25935aaf175687d978f4c4bca70e08fe40a3b/pydantic_core-2.50.1-cp315-cp315-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3a5fce22f1e87d181e924e12da7d81cfe031fb3881a5ddf26ad28f141756ca43", size = 2173376, upload-time = "2026-10-11T18:34:09.592Z" }, + { url = "https://files.pythonhosted.org/packages/6d/6c/b5a34d24cd0c81669d8f8339d74e6815abcf2f8fb48ab4b49b84c09be1d5/pydantic_core-2.50.1-cp315-cp315-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c73622ef819328873b53109ee4f77ceb598bffedd02daf916102be3228866b78", size = 2364559, upload-time = "2026-10-11T18:34:11.534Z" }, + { url = "https://files.pythonhosted.org/packages/eb/8d/d64d6216a8df365082665927ff923f183056f9049fee08e9777c9ac05296/pydantic_core-2.50.1-cp315-cp315-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ce8c25ca38cc0e3d7753ba180808de2c0c8cb24eae0df64491e40921454e9831", size = 2444697, upload-time = "2026-10-11T18:34:13.535Z" }, + { url = "https://files.pythonhosted.org/packages/b8/0d/1b1149f60a00ea21ba5f70e28acbd40feb4598af414f80f53c921fac07c9/pydantic_core-2.50.1-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7689580e72a642ab5ec64d5f55b2e33636fa43b4ebe63c0c2c965ef307c7d1aa", size = 2159961, upload-time = "2026-10-11T18:34:15.56Z" }, + { url = "https://files.pythonhosted.org/packages/1e/35/f236549299dcc78e71e945495d7ec67e78d20844d0999c60601685003031/pydantic_core-2.50.1-cp315-cp315-manylinux_2_31_riscv64.whl", hash = "sha256:d5c0e32fdbce7f1e8ef4d11f655694bf5f4175c757a9f1dc2be09b8864e5bcf5", size = 2234581, upload-time = "2026-10-11T18:34:17.502Z" }, + { url = "https://files.pythonhosted.org/packages/6a/85/26901a490522b7f75ef9bb9a7afb73e5bb550f0e1cb5b99a0069183e2eb9/pydantic_core-2.50.1-cp315-cp315-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:40f523349960fa30f3ea51404308ff50f9997a90df639590f47a057c1f32b415", size = 2244090, upload-time = "2026-10-11T18:34:19.402Z" }, + { url = "https://files.pythonhosted.org/packages/ca/2c/481bcfc70ceeb77a778ca6e5b705fe592cb64735c108157f81b7dd9c280e/pydantic_core-2.50.1-cp315-cp315-musllinux_1_1_aarch64.whl", hash = "sha256:d4193206b6587047437f6f11d7e776df23e1c1e23af2a54d9347275614791e10", size = 2277948, upload-time = "2026-10-11T18:34:21.317Z" }, + { url = "https://files.pythonhosted.org/packages/24/eb/f1e09333faa7ba447cde967310f758430cc7c5e987bdab5228816c70030d/pydantic_core-2.50.1-cp315-cp315-musllinux_1_1_armv7l.whl", hash = "sha256:84bc765b282a9d5b7fe0348b8648904f25a6a04b2139da52b1dd30c8ac3a2c8f", size = 2449688, upload-time = "2026-10-11T18:34:23.321Z" }, + { url = "https://files.pythonhosted.org/packages/d1/b3/036bde636db8f76d92996e81aefc75678ab5cec4a07eea1ad0c72a893fc3/pydantic_core-2.50.1-cp315-cp315-musllinux_1_1_x86_64.whl", hash = "sha256:ed1e728b39a383c81035b2459cfcb35d99dfb01f7d6ebe3a913bc1cc5b81e459", size = 2479286, upload-time = "2026-10-11T18:34:25.214Z" }, + { url = "https://files.pythonhosted.org/packages/d0/a3/07f018294ee18d144afeb6df1a47d9e92960f014be45c5ed13519fa5af95/pydantic_core-2.50.1-cp315-cp315-win32.whl", hash = "sha256:bc94f474417604bd383d2cd445d071b07dd55fedceed3ce33407bf1fcc107290", size = 2103683, upload-time = "2026-10-11T18:34:27.42Z" }, + { url = "https://files.pythonhosted.org/packages/5f/98/f9bd7e1f9b6709f155acb9ef826d9c3884fe925f811fd8e55b9b52280bad/pydantic_core-2.50.1-cp315-cp315-win_amd64.whl", hash = "sha256:983a662de2571cb2502fc8ff47b6770b03d025d2eb314c92f77b3f07c74720ed", size = 2171681, upload-time = "2026-10-11T18:34:29.508Z" }, + { url = "https://files.pythonhosted.org/packages/10/87/4bb3e1e7f385c076ab5af4d6dd0571b22042cd8207eb810d5b9fef15ae31/pydantic_core-2.50.1-cp315-cp315-win_arm64.whl", hash = "sha256:94845ff54dc5193f228cab81b2662a04bfbb892e95bdc15edf7399000ce57d54", size = 2156251, upload-time = "2026-10-11T18:34:31.455Z" }, + { url = "https://files.pythonhosted.org/packages/47/47/83643225b08f2aef6c8cc4bbe6e3f79c5e139c4364a6e450d0f399d87774/pydantic_core-2.50.1-cp315-cp315t-macosx_10_12_x86_64.whl", hash = "sha256:4a53d13cdfbedbfa87f08b83c1a0a5efcc767d785a4b41934fa9cb672670493a", size = 2234363, upload-time = "2026-10-11T18:34:33.65Z" }, + { url = "https://files.pythonhosted.org/packages/5e/66/127ca649ba2f2462039dc1e694c6c01e00a3689f023a617364d3507e6d97/pydantic_core-2.50.1-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:efbecf43d321f7b9281441f1f213f7c21c66988b0e06c2730ba13ed47a46bb08", size = 2000972, upload-time = "2026-10-11T18:34:36.037Z" }, + { url = "https://files.pythonhosted.org/packages/5e/4f/e421e0a5d653b1203b090b2e48745976988d7338a647940704b5b9c2b399/pydantic_core-2.50.1-cp315-cp315t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc1f08f68dac9f9e83845a8039880aba2ab553eb9b2259c3243a313182c253fe", size = 2022925, upload-time = "2026-10-11T18:34:37.972Z" }, + { url = "https://files.pythonhosted.org/packages/d5/4e/ea5568e2491e1a71100f15ae8c2d01ef52db42a184a2d4e716bc79e5eb8f/pydantic_core-2.50.1-cp315-cp315t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5dfe41f232befddb9c4377f6cfc702b51595e2d78ed082672adf8758d2c4619f", size = 2192867, upload-time = "2026-10-11T18:34:39.921Z" }, + { url = "https://files.pythonhosted.org/packages/ae/5e/3b8c3a35acbe219909ada5defad5d7d9fed845fb2b37bd5ec518f453c119/pydantic_core-2.50.1-cp315-cp315t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:adc06d218a1cadfd2ec4628424d7d79ce4eba69c2965e7e7b55106f0da5208c8", size = 2388687, upload-time = "2026-10-11T18:34:42.184Z" }, + { url = "https://files.pythonhosted.org/packages/b6/aa/7889b4e515f91a2e8c0ae6b5081fec0feb30c4398d1434e14793c60f173a/pydantic_core-2.50.1-cp315-cp315t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2cf91809d0721ab81592ba67bea7694821679c10b1a2e3c3460082b286c1918a", size = 2464415, upload-time = "2026-10-11T18:34:44.384Z" }, + { url = "https://files.pythonhosted.org/packages/08/78/93449e628eb8a6fdcce3eff9043081179d1bc7ce6f1bff32dc5006f41e00/pydantic_core-2.50.1-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23923ab9292c40da026330b1ecf4dc2618c8e86e0422e5d1fbf50d94d64ca4f8", size = 2150823, upload-time = "2026-10-11T18:34:46.392Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f1/72c5bc129fceb0d00f05dc1e67f518c1728de1928c55f81fc13d7690de39/pydantic_core-2.50.1-cp315-cp315t-manylinux_2_31_riscv64.whl", hash = "sha256:f3377c8c2b3ce898423c5e5dd94c7982e30aa7717a7e6ab2470b9de364963709", size = 2245806, upload-time = "2026-10-11T18:34:48.805Z" }, + { url = "https://files.pythonhosted.org/packages/28/2a/922a0e78f3aa6ab837b59f88190233fb8dad546c17995fde9bb3ed3b9b49/pydantic_core-2.50.1-cp315-cp315t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:455a773617b5913bf5c20d0692e5787b119e52c4d40ea644ca31f5758fd31be2", size = 2264160, upload-time = "2026-10-11T18:34:50.876Z" }, + { url = "https://files.pythonhosted.org/packages/52/a8/0f1449e3e1b20941c9372faa18e7b6a092e30cdfa841902473f7989532ac/pydantic_core-2.50.1-cp315-cp315t-musllinux_1_1_aarch64.whl", hash = "sha256:1a9006395dece0e32e704c315eff8a00bede494f6108546cfc5539c89fef4f9a", size = 2294031, upload-time = "2026-10-11T18:34:52.876Z" }, + { url = "https://files.pythonhosted.org/packages/d1/d0/1031f492857de70355fb16524bbb03efce5fd34c93ed4a1ec60be07e0d4b/pydantic_core-2.50.1-cp315-cp315t-musllinux_1_1_armv7l.whl", hash = "sha256:d2d82aa62521c55ddfb000ae70f88cdd8de974078f6024e821dfe5addd0c818f", size = 2468423, upload-time = "2026-10-11T18:34:54.995Z" }, + { url = "https://files.pythonhosted.org/packages/46/52/269ffffa645b8e47906395a39cf9db1151ae9fa4bcd7f47b960bc31baf37/pydantic_core-2.50.1-cp315-cp315t-musllinux_1_1_x86_64.whl", hash = "sha256:009634b83993777ddcd69cad0ffcace43dabde692109528e35f0fde91e386a8b", size = 2512598, upload-time = "2026-10-11T18:34:57.149Z" }, + { url = "https://files.pythonhosted.org/packages/31/5c/e47e28281f20326ff6f3c31d626f0a83e615d2d94ba41bb0ad6ec237184a/pydantic_core-2.50.1-cp315-cp315t-win32.whl", hash = "sha256:3fde4fdc6487a58d944ca87cf5adc95d5f266e872c19599f5f4c0a8a1b1f9f9f", size = 2098535, upload-time = "2026-10-11T18:34:59.313Z" }, + { url = "https://files.pythonhosted.org/packages/03/ad/759e181e69c1b472c60b2049e5f61d5da1deefdd5ce1df4bb2ebcf771f25/pydantic_core-2.50.1-cp315-cp315t-win_amd64.whl", hash = "sha256:1c8632d4ac04e6f91128fca584b3a8a507d81604c24eeaaad00d4be42765c32b", size = 2148645, upload-time = "2026-10-11T18:35:01.571Z" }, + { url = "https://files.pythonhosted.org/packages/6d/56/8a702c27e5be9f47e5f19d8669227424290e4c024e7c370279cbaf244b4e/pydantic_core-2.50.1-cp315-cp315t-win_arm64.whl", hash = "sha256:c3ede305158e75510be50869b319550ab072008c13d64d4ab1e094fb286b6f44", size = 2175297, upload-time = "2026-10-11T18:35:04.079Z" }, +] + +[[package]] +name = "pyee" +version = "14.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1d/f1/fdedc2c75c3e31a330659c85e5793bb18b3397981fbf0844c6dee5b18926/pyee-14.0.0.tar.gz", hash = "sha256:76dd0f4314ecd27f02dc73589dea7fd3853f9b6176d8ef9b122860657e3602de", size = 98760, upload-time = "2026-08-13T04:26:11.021Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/12/5347938b1f9a6453f0dbdfcc3e2388a1320ef9b9ec17fbefbc4ab647ea98/pyee-14.0.0-py3-none-any.whl", hash = "sha256:3ac2d3229a9677f7de2c33d7f52fe25b638a46b19c413fea2edc8c6d0a644e4d", size = 15553, upload-time = "2026-08-13T04:26:09.916Z" }, ] [[package]] @@ -1010,11 +1022,11 @@ wheels = [ [[package]] name = "pypdf" -version = "7.0.1" +version = "7.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/00/c2/4c34b3229abae3e2fcc7809e6cf80fdea159771a37142f475fbf1009c809/pypdf-7.0.1.tar.gz", hash = "sha256:0a78bb99efb41e9088260e9a8e5da134a5cbb9a322014744177bf29b5267ea6d", size = 7206748, upload-time = "2026-11-10T11:47:22.582Z" } +sdist = { url = "https://files.pythonhosted.org/packages/01/19/3e8223d0618bd441eb2b3e105de83ce4187e76f5823d876f60a109ee9072/pypdf-7.0.0.tar.gz", hash = "sha256:061aa78dec270854c912dde80c6bc060486fa955399d643da27ea30afeb6571b", size = 7201622, upload-time = "2026-11-06T12:10:03.447Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d5/a9/ae11deef21eaac5113f8c3848da1c42423b7abeca0abc349bfec7abf4c4e/pypdf-7.0.1-py3-none-any.whl", hash = "sha256:6131b764b046282357037309e7ef2a1b7679d4a5c53eed3db2bfbf7c673ddc2b", size = 416136, upload-time = "2026-11-10T11:47:20.716Z" }, + { url = "https://files.pythonhosted.org/packages/8a/21/e83122a25e334c718a4da67004fa94acd7215fe9f8e63a9d7c7f979eb52b/pypdf-7.0.0-py3-none-any.whl", hash = "sha256:112a2c7cbabefd8dfe498f7a13977e575e762d58cdb0d832acb8886922602c6f", size = 413949, upload-time = "2026-11-06T12:10:01.205Z" }, ] [[package]] @@ -1032,7 +1044,7 @@ wheels = [ [[package]] name = "pytest" -version = "9.2.0" +version = "9.1.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, @@ -1041,9 +1053,9 @@ dependencies = [ { name = "pluggy" }, { name = "pygments" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/79/42/bb4641652e58dedeac2ec51abc1f8cae4fee4ec63899a0999016229a0f2a/pytest-9.2.0.tar.gz", hash = "sha256:97c4f3b1f3c7414aa36465e09b8220f1d03627993bd51b1282e193753c80557b", size = 1797555, upload-time = "2026-10-27T21:30:20.728Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e4/47/b9efed96c114afcfa3c9d3fe98a76a1d14c74a9e266d397cf6eb64be5e01/pytest-9.1.1.tar.gz", hash = "sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313", size = 1636369, upload-time = "2026-06-19T10:58:32.857Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/51/39/1f5d8c8877a0fa327db959c19341d4be61660de1ab6b7391f9eb805bcd67/pytest-9.2.0-py3-none-any.whl", hash = "sha256:07acdcf88ec174f907dc01af70bf52d49b014bbab03faeeade31c96b18c2e588", size = 411776, upload-time = "2026-10-27T21:30:19.131Z" }, + { url = "https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl", hash = "sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c", size = 386536, upload-time = "2026-06-19T10:58:31.347Z" }, ] [[package]] @@ -1142,27 +1154,27 @@ wheels = [ [[package]] name = "ruff" -version = "0.17.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/84/0e/3d154514b5bad104f7e1c13169c2d09aa9959fccdc06eb47610ccdfa83ed/ruff-0.17.4.tar.gz", hash = "sha256:f32d178b50e826e00f6c6c1be3f56333068acb9b67fe167143527fa9b81e890d", size = 5357750, upload-time = "2026-11-05T18:52:17.638Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e0/61/c83c78bbb6108f6c6270a106cf12b54175f4f42da088b9bb880f18e31289/ruff-0.17.4-py3-none-linux_armv6l.whl", hash = "sha256:2b08c4ff98dc234f4a3871a3105353b922fa875ea1073ca31001eb8c06bb4d89", size = 10252195, upload-time = "2026-11-05T18:51:36.594Z" }, - { url = "https://files.pythonhosted.org/packages/0a/12/dd158708378866e8b53e145a465dbc51a7cccb9fa197a74d67eaedde7234/ruff-0.17.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:13e781c3c5f663e7fba737eaaeb70dd943dd55171daf316afb25cd5268cfe0c7", size = 10266044, upload-time = "2026-11-05T18:51:39.502Z" }, - { url = "https://files.pythonhosted.org/packages/28/32/89a94a8eb11fd505a381ae6f04e190d038d9958695209dc1786ce5cfcda3/ruff-0.17.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:7ed2f416349944f908f9574215994602242b0836844eba48eec61473033afca0", size = 9432227, upload-time = "2026-11-05T18:51:41.968Z" }, - { url = "https://files.pythonhosted.org/packages/58/de/a392dc38b215798ae72e639d228b7f6c02d826a95d1c0ad7c4c0ee49ef5b/ruff-0.17.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8ea6e0017c785f7282092b11e46338e4ebed1b9e575ebf2e55a8a1eda968241a", size = 10136900, upload-time = "2026-11-05T18:51:44.562Z" }, - { url = "https://files.pythonhosted.org/packages/b7/8f/a880f60f42005f6ffdf58f77af34c7ee327000b5607f48a2f6a69d8b242c/ruff-0.17.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7e061dcc0933c7031a616ac8d66ac540309b2aa21ab558101a8f53e9ac7a1185", size = 10051245, upload-time = "2026-11-05T18:51:46.7Z" }, - { url = "https://files.pythonhosted.org/packages/09/55/98844264108af7d5ec27ca3a9cd5a989094ca657a14599c4b69a537a0e9a/ruff-0.17.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f99e95a1515161138be3cbd1b06c06e739d8feb38ade35564556999fffc3686e", size = 10704341, upload-time = "2026-11-05T18:51:49.228Z" }, - { url = "https://files.pythonhosted.org/packages/28/a2/5edf97659c3ac7c73f978003bd314936f671037fdac6b978e9de3e4b2b65/ruff-0.17.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5f28cf0dd37cb172fa5a8d2e92e6ada3a9dbd0609f094ed24039929eef0b7524", size = 11394465, upload-time = "2026-11-05T18:51:51.534Z" }, - { url = "https://files.pythonhosted.org/packages/f2/8f/51371ae856b2bef4d15a044a574695fbc0f6ae63aafa42a2a22428070fb6/ruff-0.17.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6b21c771b296888e8a35c6f48555f4b44e4483f61675d6ed51810a5203469ce6", size = 10988262, upload-time = "2026-11-05T18:51:53.91Z" }, - { url = "https://files.pythonhosted.org/packages/af/1b/62874f14c7873f27c7887d2b1ea41de990e14ba9518801ffe8eacb5d51a6/ruff-0.17.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2cd025509b2e15721b426fc70fd946d71f43b3db3b08e946dfec2d696d911690", size = 10572829, upload-time = "2026-11-05T18:51:56.129Z" }, - { url = "https://files.pythonhosted.org/packages/98/30/860b9dae67432b16b88558a9cb2d3194825fa62838f8b9cc49f5d9022095/ruff-0.17.4-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:49b77f7b3921669466882a4881168801bdb06ec2cd83fb936049016cf5fdece1", size = 10617545, upload-time = "2026-11-05T18:51:58.172Z" }, - { url = "https://files.pythonhosted.org/packages/0f/08/781a4b41a1c83fd6e30fea610d6502a6f94e49cf94693fd37bdcbc6bfe11/ruff-0.17.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:e3b84eb74f260d1c2dbd236fd9d4c011d4fdd0a52bdf8aea57a10e3a1b71fca5", size = 10111955, upload-time = "2026-11-05T18:52:00.59Z" }, - { url = "https://files.pythonhosted.org/packages/3c/e9/94b1c7b677120f30839254518924f73a8157e9bcfa200edcd5796fecdb99/ruff-0.17.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:20e43d7a08e712e33067ba887e6574546c79bd4831596ce8f16803ac7ff9ad90", size = 10058355, upload-time = "2026-11-05T18:52:03.61Z" }, - { url = "https://files.pythonhosted.org/packages/27/5f/a825910b9f309336dc33cb8c0774126662c1d2f765699b3e0a1bd538d01f/ruff-0.17.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:0d1f4848fd2ec0499be4046db9b7dfcc952666885f00233cc7033515282556a8", size = 10415932, upload-time = "2026-11-05T18:52:06.264Z" }, - { url = "https://files.pythonhosted.org/packages/8b/b8/0796468423413ea4df1a6e2442ae26cf49b8f7dda0eecf246e0d5d0dde54/ruff-0.17.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:6007e7f3a0e55b0fbdb947af69cf24c21b4928df6be8ef3e767c69b5ccccf496", size = 10826033, upload-time = "2026-11-05T18:52:08.675Z" }, - { url = "https://files.pythonhosted.org/packages/b9/ab/d8e407669ffe5014429baf780c2df47e001968a6e4c17f615e2e7b13a9ba/ruff-0.17.4-py3-none-win32.whl", hash = "sha256:3971a78cba76298b284c8321e6d40d93045ed348bec5c369d85099efc97fb7cf", size = 9931993, upload-time = "2026-11-05T18:52:11.169Z" }, - { url = "https://files.pythonhosted.org/packages/bd/15/42af8a72d8946e3c9efd2bbf6641e462b6832783b0d043d63ef5b280ba7f/ruff-0.17.4-py3-none-win_amd64.whl", hash = "sha256:67c5a894fc054cf41f75f7afa24815de5a74329d97634126c2a1015740ff4e8c", size = 10292922, upload-time = "2026-11-05T18:52:13.436Z" }, - { url = "https://files.pythonhosted.org/packages/68/9e/f1dbffcfb8ff25dadbc21f87a8b73c3848abe4abada9d4b08ccef8bec40c/ruff-0.17.4-py3-none-win_arm64.whl", hash = "sha256:181ae38a9a8fb94925bf7d0794327b48d7fd7f4b50cfd84c0e999cc09ef8d131", size = 9889396, upload-time = "2026-11-05T18:52:15.549Z" }, +version = "0.17.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ae/58/690cf56da80c8f2c8bf12042b6017beac2c34fe961f65420bcb3fb7fac38/ruff-0.17.2.tar.gz", hash = "sha256:84d632402d14c23b488f941db23712d6736a013225162062d34558c3f3c780eb", size = 5333400, upload-time = "2026-10-22T18:38:00.181Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/b8/8b6d69c57e8fe1cc6af1aa7493b72a1a5b5a8afe34694e302025441729d4/ruff-0.17.2-py3-none-linux_armv6l.whl", hash = "sha256:96a65e755d8dba094707fb23ab602111d9a31ec2835b3a6992a1914a8fcb211e", size = 10183857, upload-time = "2026-10-22T18:37:14.956Z" }, + { url = "https://files.pythonhosted.org/packages/e8/61/12cc2ff7b2fa90a268ce1e2162c23aaf76e601d22623f6a31b0eeaa764b0/ruff-0.17.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:39c5b55c960515cdb32be16e69efb5734c589c06a0eb38a22694524a336b889d", size = 10210904, upload-time = "2026-10-22T18:37:17.985Z" }, + { url = "https://files.pythonhosted.org/packages/e8/7c/b8850a8e4ad29f64a827dd6c6902db4a9aa538fb2b9eef4e26084001a3bb/ruff-0.17.2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:92a80d2f44584dabb0189b3a6c393e37e525e04942838482010575cb81945be7", size = 9408439, upload-time = "2026-10-22T18:37:20.964Z" }, + { url = "https://files.pythonhosted.org/packages/b7/b6/6a64fae86ca5e5e29d5adc311e5481de726cedf9aee607435a16c31c442a/ruff-0.17.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7d0906677d89bbf3cf73cde64b5bbe2ab35df3ae43e49ee2627301e91265bac", size = 10047078, upload-time = "2026-10-22T18:37:23.717Z" }, + { url = "https://files.pythonhosted.org/packages/10/19/23d376547715175aa1bd46df48df6aacc7c6439d9daf19cac15975180aa5/ruff-0.17.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7cfd783590edf2b77317882631900f6a13ea2e8eacefe6ebf2370d2715299160", size = 9990478, upload-time = "2026-10-22T18:37:26.584Z" }, + { url = "https://files.pythonhosted.org/packages/93/6c/34cda32cbe13adac5c6b291a307a5570d8ebd37c0c86339f0fe628e55632/ruff-0.17.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122258f6ecde0e0dd1bb60b24263c3edde4338caf723fca711cc729f9bfd414a", size = 10673624, upload-time = "2026-10-22T18:37:29.767Z" }, + { url = "https://files.pythonhosted.org/packages/bf/10/5d762a4dbc851d8bb47863cf3a28a61bf31c804d393b70d891fac899f5d1/ruff-0.17.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7f8fba429d6ac4128ab29cfb8fa6240d2fa671d04adf7f84d3b22fc7b6b6bea4", size = 11351797, upload-time = "2026-10-22T18:37:32.535Z" }, + { url = "https://files.pythonhosted.org/packages/3f/04/a0e92a81faf5c81c1c98d4374c8401734ccf2b8cca7d0170cb0fec08c6e2/ruff-0.17.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:583bd67bb9e7061dd09bc46a0a884bae2bbd214dbcd48e509813612619683869", size = 10949414, upload-time = "2026-10-22T18:37:35.501Z" }, + { url = "https://files.pythonhosted.org/packages/c3/d8/59894cf630d2d86882457a2a6a0a1533410c5c805bfbac6f6eb4b5aef69d/ruff-0.17.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c60f93fec7142dba5b8f487f94bf2f6231dae24dc11e4c48648347c8b0720004", size = 10528000, upload-time = "2026-10-22T18:37:37.88Z" }, + { url = "https://files.pythonhosted.org/packages/ab/95/d6e30c51e851d37e10762ad91fa1e76ddaad998589b5667962a3cfbc9edd/ruff-0.17.2-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:c555a877f8f41447e318101cfefea9bf12dfa9f82eedf90c376e57e069f917d0", size = 10571779, upload-time = "2026-10-22T18:37:40.444Z" }, + { url = "https://files.pythonhosted.org/packages/f4/5a/a7e1d74fb464250137d3d4eca645d323536533b672004d04ee0e46e0caf3/ruff-0.17.2-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:ba405cbd5ec7bda1f555d5e52be1fd68d02608d4d95d24591bdac92cfacb579f", size = 10051707, upload-time = "2026-10-22T18:37:42.812Z" }, + { url = "https://files.pythonhosted.org/packages/6e/f2/02fca29ca7999380f0350a7212fe755c11ab9c22d61327356cce8decdbc6/ruff-0.17.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:8c21b4ab24485358f17291a4f8dc5399b834e963b8efedd920fe4fdb02081bb4", size = 9998227, upload-time = "2026-10-22T18:37:45.224Z" }, + { url = "https://files.pythonhosted.org/packages/d1/00/55aa604a093dfdc1526e570fae0bb7d37a2221c7b4728d5f080b2add16ba/ruff-0.17.2-py3-none-musllinux_1_2_i686.whl", hash = "sha256:5875a16b0de70b43cb81eabea5ae5e8f5d1b2fd1b5e6ed07f80cfe5019d0bd5a", size = 10377692, upload-time = "2026-10-22T18:37:47.704Z" }, + { url = "https://files.pythonhosted.org/packages/e4/5a/a7a640f47bb906ec8fa233ea84319d503e6dee02b59e3901bd312ebd1f9b/ruff-0.17.2-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:2d086be452eed686aa51271ecf2cbe5037956517cc6ee39a17b4489ac12f8bbe", size = 10790587, upload-time = "2026-10-22T18:37:50.191Z" }, + { url = "https://files.pythonhosted.org/packages/2c/d4/c3b74e1b4808438ea7f14bb914478025e2d51261f60774a54a0fa222ec46/ruff-0.17.2-py3-none-win32.whl", hash = "sha256:6bce7d1f5165701ae18f5df85c65afe78cddfa6c5fb4b9bdb0014d60388f3edd", size = 9870537, upload-time = "2026-10-22T18:37:52.486Z" }, + { url = "https://files.pythonhosted.org/packages/1c/9a/c7da96c2c96d20704cf9027f7a5121da272a8c05f1d1531ba949e3b3df04/ruff-0.17.2-py3-none-win_amd64.whl", hash = "sha256:1b59d447f197bef9ef48a22ba1a6016137753c6099e9bac9c36eb566e422424c", size = 10282826, upload-time = "2026-10-22T18:37:55.2Z" }, + { url = "https://files.pythonhosted.org/packages/81/60/a3604c79cb02777b6cb84da894104021986f06c4bc41375102cc95049a32/ruff-0.17.2-py3-none-win_arm64.whl", hash = "sha256:195ad918027f817c119310ca89a42d347887dfc28934aaa869325e9c5dc9d962", size = 9827036, upload-time = "2026-10-22T18:37:58.031Z" }, ] [[package]] @@ -1223,11 +1235,11 @@ wheels = [ [[package]] name = "soupsieve" -version = "4.1" +version = "4.0.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/95/48/21a393ff731b8f928fa4f8176f9a7ceba2252ee60a5149f25b45c292aa5c/soupsieve-4.1.tar.gz", hash = "sha256:ca9abf7126667010d8f6e9b39bfc1bc3b23c8aed9bcb0f54a754dde969bb8aab", size = 161955, upload-time = "2026-11-10T01:59:50.399Z" } +sdist = { url = "https://files.pythonhosted.org/packages/01/7c/a64eedae0b7776cb9602d2da9cb8f8caae8e1b4c1da5e8e87bf1e68121ec/soupsieve-4.0.1.tar.gz", hash = "sha256:7621e3c5f6b371ed2c5eabaac5de300ac3d66d05e6d7f34783e31b63c4f90c75", size = 153302, upload-time = "2026-11-04T16:36:27.749Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/88/73/6a2087c72975cfc07394623bca8d17654342ea4055ae368deafe5a81a542/soupsieve-4.1-py3-none-any.whl", hash = "sha256:e4d667b3974ce6e038e7390486b8093369854a1d345ffdd4c121dfc4a782e809", size = 52302, upload-time = "2026-11-10T01:59:48.571Z" }, + { url = "https://files.pythonhosted.org/packages/2c/5c/4f68370847b561a389dd9a2d7eb3d19fd8cbb8acbae543a0c6b8d0d9700b/soupsieve-4.0.1-py3-none-any.whl", hash = "sha256:2e68cf7dd5a0f29d81f9d485275ccf294e6475f615e211895d91cb81f8614f04", size = 50688, upload-time = "2026-11-04T16:36:26.158Z" }, ] [[package]] @@ -1319,14 +1331,14 @@ wheels = [ [[package]] name = "typing-inspection" -version = "0.4.5" +version = "0.4.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ff/50/0195198eb1d75bab716bb0a813abea4cc394bfa17a92a189f021a34859af/typing_inspection-0.4.5.tar.gz", hash = "sha256:7f16c411e7930dc79596d42ab44672a3fe5f60eb34b781a1647e7872363120c7", size = 81194, upload-time = "2026-11-04T14:13:23.774Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a3/26/b09b8010994eccc3c09092e6b34058f36a460eea2d4c3e8b910c695975a0/typing_inspection-0.4.4.tar.gz", hash = "sha256:547274fa6b0a561ccf549cc9524b999a578e737d015d8709d021f9d0d13bea47", size = 76928, upload-time = "2026-08-12T12:37:25.997Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/de/0c/ea2544850a7c135e15033a5c7a8e7211136184b7ae63e2239d557c2b3019/typing_inspection-0.4.5-py3-none-any.whl", hash = "sha256:bc210535442b39e1bf2805e0c7a17dfd6a4ace760c84c7f7d16245d23a6b1c39", size = 14874, upload-time = "2026-11-04T14:13:22.616Z" }, + { url = "https://files.pythonhosted.org/packages/67/81/4add07e5172b7ac40d8ed5ff580409a7801a4fe26d529bdd915401dabfbe/typing_inspection-0.4.4-py3-none-any.whl", hash = "sha256:65b8397ba37ccbce054456aaccddfc91e6e3083c92824df348d96ca832f3f147", size = 14750, upload-time = "2026-08-12T12:37:24.648Z" }, ] [[package]]