From 03c281241c5c291488817c732985e19e91f0a17d Mon Sep 17 00:00:00 2001 From: smthem <2102561739@qq.com> Date: Mon, 2 Jun 2025 20:31:57 +0800 Subject: [PATCH] init --- Bagel/EVAL.md | 78 + Bagel/LICENSE | 201 + Bagel/README.md | 199 + Bagel/TRAIN.md | 168 + Bagel/app.py | 256 ++ Bagel/assets/arch.png | Bin 0 -> 168377 bytes Bagel/assets/emerging_curves.png | Bin 0 -> 372807 bytes Bagel/assets/teaser.webp | Bin 0 -> 1104072 bytes Bagel/data/__init__.py | 2 + Bagel/data/configs/example.yaml | 45 + Bagel/data/data_utils.py | 177 + Bagel/data/dataset_base.py | 620 +++ Bagel/data/dataset_info.py | 39 + Bagel/data/distributed_iterable_dataset.py | 58 + Bagel/data/interleave_datasets/__init__.py | 5 + .../data/interleave_datasets/edit_dataset.py | 72 + .../interleave_t2i_dataset.py | 212 + Bagel/data/parquet_utils.py | 89 + Bagel/data/t2i_dataset.py | 128 + Bagel/data/transforms.py | 287 ++ Bagel/data/video_utils.py | 165 + Bagel/data/vlm_dataset.py | 195 + Bagel/eval/gen/gen_images_mp.py | 0 Bagel/inference.ipynb | 535 +++ Bagel/inferencer.py | 309 ++ Bagel/modeling/__init__.py | 4 + Bagel/modeling/autoencoder.py | 360 ++ Bagel/modeling/bagel/__init__.py | 18 + Bagel/modeling/bagel/bagel.py | 1030 +++++ Bagel/modeling/bagel/modeling_utils.py | 144 + Bagel/modeling/bagel/qwen2_navit.py | 1157 ++++++ Bagel/modeling/bagel/siglip_navit.py | 402 ++ Bagel/modeling/qwen2/__init__.py | 68 + Bagel/modeling/qwen2/configuration_qwen2.py | 179 + Bagel/modeling/qwen2/modeling_qwen2.py | 929 +++++ Bagel/modeling/qwen2/tokenization_qwen2.py | 328 ++ .../modeling/qwen2/tokenization_qwen2_fast.py | 123 + Bagel/modeling/siglip/__init__.py | 98 + Bagel/modeling/siglip/configuration_siglip.py | 287 ++ Bagel/modeling/siglip/convert_siglip_to_hf.py | 401 ++ .../siglip/image_processing_siglip.py | 230 ++ Bagel/modeling/siglip/modeling_siglip.py | 1557 +++++++ Bagel/modeling/siglip/processing_siglip.py | 131 + Bagel/modeling/siglip/tokenization_siglip.py | 364 ++ Bagel/requirements.txt | 18 + Bagel/test_images/meme.jpg | Bin 0 -> 59919 bytes Bagel/test_images/octupusy.jpg | Bin 0 -> 35825 bytes Bagel/test_images/women.jpg | Bin 0 -> 86746 bytes README.md | 34 +- Storydiffusion_node.py | 120 +- .../storydiffusion_workflow.json | 3645 ++++++++--------- images/bagel_img2img.png | Bin 0 -> 370836 bytes images/bagel_txt2img.png | Bin 0 -> 432755 bytes 53 files changed, 13446 insertions(+), 2021 deletions(-) create mode 100644 Bagel/EVAL.md create mode 100644 Bagel/LICENSE create mode 100644 Bagel/README.md create mode 100644 Bagel/TRAIN.md create mode 100644 Bagel/app.py create mode 100644 Bagel/assets/arch.png create mode 100644 Bagel/assets/emerging_curves.png create mode 100644 Bagel/assets/teaser.webp create mode 100644 Bagel/data/__init__.py create mode 100644 Bagel/data/configs/example.yaml create mode 100644 Bagel/data/data_utils.py create mode 100644 Bagel/data/dataset_base.py create mode 100644 Bagel/data/dataset_info.py create mode 100644 Bagel/data/distributed_iterable_dataset.py create mode 100644 Bagel/data/interleave_datasets/__init__.py create mode 100644 Bagel/data/interleave_datasets/edit_dataset.py create mode 100644 Bagel/data/interleave_datasets/interleave_t2i_dataset.py create mode 100644 Bagel/data/parquet_utils.py create mode 100644 Bagel/data/t2i_dataset.py create mode 100644 Bagel/data/transforms.py create mode 100644 Bagel/data/video_utils.py create mode 100644 Bagel/data/vlm_dataset.py create mode 100644 Bagel/eval/gen/gen_images_mp.py create mode 100644 Bagel/inference.ipynb create mode 100644 Bagel/inferencer.py create mode 100644 Bagel/modeling/__init__.py create mode 100644 Bagel/modeling/autoencoder.py create mode 100644 Bagel/modeling/bagel/__init__.py create mode 100644 Bagel/modeling/bagel/bagel.py create mode 100644 Bagel/modeling/bagel/modeling_utils.py create mode 100644 Bagel/modeling/bagel/qwen2_navit.py create mode 100644 Bagel/modeling/bagel/siglip_navit.py create mode 100644 Bagel/modeling/qwen2/__init__.py create mode 100644 Bagel/modeling/qwen2/configuration_qwen2.py create mode 100644 Bagel/modeling/qwen2/modeling_qwen2.py create mode 100644 Bagel/modeling/qwen2/tokenization_qwen2.py create mode 100644 Bagel/modeling/qwen2/tokenization_qwen2_fast.py create mode 100644 Bagel/modeling/siglip/__init__.py create mode 100644 Bagel/modeling/siglip/configuration_siglip.py create mode 100644 Bagel/modeling/siglip/convert_siglip_to_hf.py create mode 100644 Bagel/modeling/siglip/image_processing_siglip.py create mode 100644 Bagel/modeling/siglip/modeling_siglip.py create mode 100644 Bagel/modeling/siglip/processing_siglip.py create mode 100644 Bagel/modeling/siglip/tokenization_siglip.py create mode 100644 Bagel/requirements.txt create mode 100644 Bagel/test_images/meme.jpg create mode 100644 Bagel/test_images/octupusy.jpg create mode 100644 Bagel/test_images/women.jpg create mode 100644 images/bagel_img2img.png create mode 100644 images/bagel_txt2img.png diff --git a/Bagel/EVAL.md b/Bagel/EVAL.md new file mode 100644 index 0000000..a2c268b --- /dev/null +++ b/Bagel/EVAL.md @@ -0,0 +1,78 @@ +# VLM +We follow [InternVL2](https://internvl.readthedocs.io/en/latest/internvl2.0/evaluation.html) to evaluate the performance on MME, MMBench, MMMU, MMVet, MathVista and MMVP. + +## Data prepration +Please follow the [InternVL2](https://internvl.readthedocs.io/en/latest/get_started/eval_data_preparation.html) to prepare the corresponding data. And the link the data under `vlm`. + +The final directory structure is: +```shell +data +├── MathVista +├── mmbench +├── mme +├── MMMU +├── mm-vet +└── MMVP +``` + +## Evaluation + +Directly run `scripts/eval/run_eval_vlm.sh` to evaluate different benchmarks. The output will be saved in `$output_path`. +- Set `$model_path` and `$output_path` for the path for checkpoint and log. +- Increase `GPUS` if you want to run faster. +- For MMBench, please use the official [evaluation server](https://mmbench.opencompass.org.cn/mmbench-submission). +- For MMVet, please use the official [evaluation server](https://huggingface.co/spaces/whyu/MM-Vet_Evaluator). +- For MathVista, please set `$openai_api_key` in `scripts/eval/run_eval_vlm.sh` and `your_api_url` in `eval/vlm/eval/mathvista/utilities.py`. The default GPT version is `gpt-4o-2024-11-20`. +- For MMMU, we use CoT in the report, which improve the accuracy by about 2%. For evaluation of the oprn-ended answer, we use GPT-4o for judgement. + + +# GenEval +We modify the code in [GenEval](https://github.com/djghosh13/geneval/tree/main) for faster evaluation. + +## Setup +Install the following dependencies: +```shell +pip install open-clip-torch +pip install clip-benchmark +pip install --upgrade setuptools + +sudo pip install -U openmim +sudo mim install mmengine mmcv-full==1.7.2 + +git clone https://github.com/open-mmlab/mmdetection.git +cd mmdetection; git checkout 2.x +pip install -v -e . +``` + +Download Detector: +```shell +cd ./eval/gen/geneval +mkdir model + +bash ./evaluation/download_models.sh ./model +``` + +## Evaluation +Directly run `scripts/eval/run_geneval.sh` to evaluate GenEVAL. The output will be saved in `$output_path`. +- Set `$model_path` and `$output_path` for the path for checkpoint and log. +- Set `metadata_file` to `./eval/gen/geneval/prompts/evaluation_metadata.jsonl` for original GenEval prompts. + + +# WISE +We modify the code in [WISE](https://github.com/PKU-YuanGroup/WISE/tree/main) for faster evaluation. + + +## Evaluation +Directly run `scripts/eval/run_wise.sh` to evaluate WISE. The output will be saved in `$output_path`. +- Set `$model_path` and `$output_path` for the path for checkpoint and log. +- Set `$openai_api_key` in `scripts/eval/run_wise.sh` and `your_api_url` in `eval/gen/wise/gpt_eval_mp.py`. The default GPT version is `gpt-4o-2024-11-20`. +- Use `think` for thinking mode. + + + +# GEdit-Bench +Please follow [GEdit-Bench](https://github.com/stepfun-ai/Step1X-Edit/blob/main/GEdit-Bench/EVAL.md) for evaluation. + + +# IntelligentBench +TBD \ No newline at end of file diff --git a/Bagel/LICENSE b/Bagel/LICENSE new file mode 100644 index 0000000..f49a4e1 --- /dev/null +++ b/Bagel/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/Bagel/README.md b/Bagel/README.md new file mode 100644 index 0000000..f6e79a4 --- /dev/null +++ b/Bagel/README.md @@ -0,0 +1,199 @@ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

YNY z9go@8G?RMcC;x(}X3#{+y~pTqHeOA};qr#GI|spM^L`6a(LEfMoQ7$I{))Aawn*~@ zujJWZ8@IR~uD!3;*6EZ1#!dkRY;TOcmwP5`jP*h#KhTJzv>>+AH%^@o0m*@qYQamv z?G>HW^IQoh91YS8#b;--#~rs2%@2oZzV;IPA|>?@2eU&WeP&e{8;^uBr>rn(XJISt z$Z}6OY}f)@*o8=+e(e3PkjE{~nC+h15j3PdX4ka4@Y;(?evHbY6v0oj=Z<1*Gqlt~ z-s&B!0?(yd?!K%Wx^6H_);Eu=0x9M&5(R6&yy4j13Cin(A )+54otil|N`{->L)Ly5bT^6_b-yIyDd=E`Z-8UA(BHJjp4E#ud}K2d zJ06&4D?mZ8LIm`t3;0$J2;oKF9dcRgz(8x>33FWJ0(YW!7=ao8l3eHUvw#T}?4kSE zAWDBHt#;Uu%eRNIMlFFp&XxM}dj3VPGfa|Y`<1cVaKBh8h|z~wHk?)djH&M6=NCx1 z(8tWm=I|haQy9_{fFIYmCSIKE;TqIF@wkEjvFwj1>kk_T`Q89KJ1l~!gnYPvALqU! ze$82Iw4UknWvX-tU`r7?d(Zo)#MV^GUe`uFlBmQy0z1t4*`zikE-7p7dpGujv=cUd ztsF0N87E6R*+%UBQ(c&AMa98LLHQdX2e?-2=h3R8r?R0`n%??qf6N)# }kbN zn{E2&D1p>%EWOmkLP)>ylVUwCv@LYukySegX!h|JizoxF2KeN+$Fdzs6n%60LX%?l z7`Z-Qai|{Ce5ayKm^}3YKG17>ghZ&AW@?usTSs+_ICyG$=kY{IwY;eYkSY;$=cxU= z`~|omUNv #6>vTDcoyFa86)N-H&dzO{m?q|5Y;^@lG>wQV3_O#%Y8zR? zYm2>IkEx4Naf|pHhHCdLm?d=KK3lCiIWCzY7rum{c!0%+@oD#oSq@vYM=4}?2~^F2 z8EMSX?b^R7R_8lxTwfN=5yss^Fo;Zcx&F|C<+5<$e||oeZV8wsSft}nY96NM_Sn_F zRC}yDFf-QaBAZ;Jr_@Hz-+z4``S8A1M#^E${12CG(06#1bywNGwevWsLV^xHO;{ts zTJkK>m{TMbC(m0wglpZl;mKU@28#5zWwGz|eYD~8c{qxXL1rjWq&gcNG_nbkyV&CV z=GJLog=Y%)slm+%LBK)7gA{m6yeXffs0yr_b;p_pvuRU!yUwobn?`p$`mJW~;x1>r zD$fL@fl=b1>_k)JV;hGJFA$%TdyP@1*Cpr*S+>R2tK`dE^()VEa+v~E-lVFIo9^xH zn2|=LXwT`u)D~}MVx>n eH;gJ;tiFwAA|Dww04U zGvyWR9KWLyAr@p+`=^ojui70)nUqmHjzaVf`kM*`Zw5c>E}6GEF4Zd9;Id^5`-om| z5f=+eb59yJDKwUH0am`5<`-1^o-x$}(j&ZzcHH>@Wmu42Eu;v5TCQ^=;|nvxZh^7R z<(h%>7njv-qN+wxhp{NnM{69z0vlKjQsmqR`B^vP%3rwbmOA5c+Rqx&6zq6F+d54e z=_r_h;?<_%iR1P0T4Ujht+sGikWo}``e&$q0a82|6#h+qb+KXV%*Kmd&1HUD=x=9># c%uyeOUdwM8Bb$>9uzID>w*v^(ERsgs9lhu4*NN zZ |bdp=_B=2o>zx!|`0AJOW1*(!fk>1MEcivk?)XUN+{K@BK zUl!=*wBEh!zcm$jF_ijI?2*CPWZHW64)^#iVwBd|Wpz$Lv}(Ue^^LG!`{M7t7FYv! zDfsPRrU;0gbu%;-1MGF6iI&)`L4KH{X?6?s(i27JfcpLh&!db{6p4;*2mTtw;%}V7 za@yh)*QG28IXNQG@5PCcGWLqxY@E_hgmlZcez(kT_}+gxUYpa+=v;gz-U#A~H*)JE z5$moXp6?VR%e%7460B^(p<3VrwpB$E9Emg}-P6#L=tq#*ks(%pgME9|A-FX(I)hi{ zc2V;69vm7HR<^zhm`~Zzcdu%G9af134}T9$I%67+)AE=X&%XXSx2mXwKAJu;xIJ{>6NUn~h0= zzNbC{uZ_UDMX7(zp!H(UkN911g0CzsZGA^qq{`U@4sj_s$Z`ucUY_ms5YO?3D##Aa zIaD%*F0B5nL^Tb_;B$mRe~Qr>85c}M`_4=p>VF3rAJZD04mK)AQZF?~7TJ>@bJdc7 z!4az2-#sh!8G9~Pt{V|p(5nv|i<(!%BZbJ_vp`76$zeoTV~5~7oj{>Seop3cy}; zme}Lw1&HsDYnU8R(T2Jpcc_~ot#YkNZpRT!z+%=($=7{jz73pQM-}G;bH8H8yV?w? zc~}TW-~79Wsqed_N9clu6b;R#MQM?skGao!DWLn6^Cx^m d4J;xi_weF-pTsupF)!>@o%oRU?~RKmOGi^Jg{$|v2ejKqT;&)?{t)7B-~C9uy_?I; z>2!rq_b@GGro52xgF-((nJXHouhpb|do^P9UV}ZneS3OeZnz|Ly-V&my@wUHx1S00 zzJE36_AsC@>EcIYX4 ZFeXkJe7!?v+v?Si~IA8fJ^Zi)1g@F#|1+knd@MN2o{ zf@3_~%0mNPaZT?o8Zq}3PNvDjuL+ul+MF6-?CaMDpLc1-)7EO;4u1>5*PTy4PQIFz z7$BveAY>I7gI>>&>hDghFbuUhq^A`xi8>uu8zMY(dI`@F&Ss{r5ExwRe2zvUV~=R( zfQM5>!Cnb|3$_z-U)Rjz@a)NZhKePGXGmXqUlJK)jztKW)*L9Fx!q|2 n}Cm{9}s{k}==z)Ot_AM(FCDg{4rGX7+>KxA^c) z%$0+avVqN7rD>i-eUFR;ziAy0YUQ#-5QLP1{xvwy$Ed!cBvczCZB6q+CUD-uw2od1 zzPo6G+A30{L(AFaylycR%wEx;u4?X$(rX9?3F3E?F>E1?^Fgt~V!4OMNcHKXrKwac zWf>XIHqK;&&8|yXa8$UQxnyq>4s7Ex8~0P$R JcWeW7xhKauw5r;3ATP?3VGV#d;6yZ?$1%( z(9K%(O`z{ZS4EeY-%j4|@=>4#O^sEH#r@E5li8``GO$QcZR{cVWwy`B)Hyq~6L;6! z9`s(t2?2xeQeaK*!#gX#*}GjMgHVf5E;|a>(H_MSU?H~WurNu7KaZ>`JhMxg3CLh_ ztdm|oQB@9z({8YSoo_WNSZ3hE*wEdIIne)dzHsb&gh5%2{5eyzhQO(3U=?JUBDs zg3On3Z~;v@!|z=EdhBO#R7F19WbXiu6Kw`a&9HfM&X2C~R18%c&Hchxqz*-@*)Pu& z?f@2>9=rNC>qI|{Z?Ao#`pJY2Ebl%OacXqYa#Y`0fD0N^xCeHZAvUOAUi;QQ8n2uW zT>bK5H#@nvcQk^$F|er|hW#3*e5BxJH5pLexAc7H4qqa~O?-_1oC?*1eb6=Mh+l9N zb3>yU=K~-t`?&0qjoZNj&lhf(EncErnysFrrTc@{_d3A{8b>)&T9bVI?*_!NN{L1! zU}SW|w*s1UoHC5?8lnnO0~F k z@SRaf@K`hA^wp;4x&x%rI;DVb+{UvWx@{+$29E7=g)MY(q_P!Sv+1;TOP>!%C70We z`(8cO8Hre&Ua?2bHcqt~RP!< GMe)xmXo?WugT z={l26VX4FXgYDIkGuJCnzbE8)i~BGUcjwLI{R>m|UYzXM6Xy$d4FnLiR{N^>lKSl| zd}8n3Tfbvrk_lD5%g6zcJD)9)hGFelWr;AKb_KwTJ>b$Hr}q-IHu>^ouTrgo@}Vbf zuLeC3R5t8!*4+D?uC5PaS8UW~J*lq@VdZz(2a~**iVZhtXn?B5DZBc2y}`_mFY3&( z1FpQv5ZG(gN!Re%(aIY7s1EO9jqR2blrcn3a|egNx^SiGrPto7g4m^8QJMD9AwQf& z8Xa=G&Na-2VUo1rMFT^>Go>I!;2%Zvfe2oNJ)GQFKy{r+C=Y|$0p%+l&|;9E^R3nL zt=qHUF%Em$;#WYaZ_V~MHf?svTTP^s*D@dAU*7;7g= sovAiGeLuHyO zV&??li@=|j9RZvIpo}rnpV0dPB7K0Wkj~9#jV0N8{0Da+&>q6z!uF4)Xy-T2_&F4s zdX6t!_6k^p<#9lye{>I88`HGu-wa21_J$Ke4xF8@%p_5PpvHK_PIpNy&wO1DDWZN_ z@TY}(^;c_TRZ>?iPM|-Y@Ce9fWbW9mA)7ra;Q}01D!uU4@vnXnv>Wx3P0n)-6fK)B zjN3nTBJ?K$WM7-eIz)KlI^jj(u=y~K&Sfck 4JXrw zTc#-%e9S0>;(2TnEkFJ%x$9RECc>BG5mw!BZx3HjXAS+O__?;D|H1EVdc8D%_3WPF zL2OcGnpEQBmUp~3wZ)y$exY8iwCakKeG#%@+3xVsl+ 3&McMfhJUq~MS5HD)T)r$_=c(*|kwVGM9Y!17tee@ljPTv>IILC(~md^?x%{=%q z{e?au7J^Js`7B|)GpNiQ0TX|6{QwTCpGiaV0KDVT^Fug|uTV|8zP$mqw$nbkE;}Bz z0I;Gx<&WHtPX}mugDQ6duPPM-DO(P6qtT9^TH<*nxZ6Vm6m`bxA&MF{vJ-}(4*cwE z-)l?EcXxqd3rZ0DdfKW0xJYDX%TSj6id$FO+Z()Md(R;YvU7J(9of+@@Z^(+-OTri z{YG5;otmjB#0o09>r8zNdc4L)HtjyLLATO7UgY>oKP`G2Ep~W3Hq$0gVSPdqLLWaV z8vfj9Gb4i~;{GF~kkPorpvwWFuRo8A_?-XB4NRT_aOci%>s=!hQ< 7pgX?Gpj^+5MOVN zCiTZ^bGlVdOk9G`wFV(1Vx(5Ib!!6m*|wC+7?sWFJGY1D*4XWo07cSPk6f%uHU?6C zS{i{*t-#WB^Is)@nk!c8XU|#WO4i)RE~ybZ#BSG=db%TmuCE$_L0EH(Ce1cjoC6Uc zN>}{6CG?K;9$?)@J)fVlE+X?cQfcst%rC?kkFIeM^u5n}8u!abw3qor`qlxh@2`%8 z9U&7w-v}!IV$lr5Qu=0BThX5nnj8EX>C2y=u-BiJvKJY@z4?-GK7Az_a7IR4pm%-} zX<8bp%~dzL%2gVH)0LYM;WR(fQRg~M<3tO0I*}jm5NYt*Bp10_0-3!Sv0wwPTpIek zo+YH7LN|C(+fSc#I)1g;&;jNq`7w4I;kV>glZADFPyV$Pf}gUOzxLB)0kV)ZrJuL) z1>xcy0k-SV6Eq+=I|Om0x1r-Fb461JSQ6>1&}Mk%632~ahJ&8T?Y#lQ6DTc5HncP> z*1@q9F!@JhQ=)g%N5rDH4CN`ei7!k#)MB8W53mUYb35xEuoztV* Kzc&p^Ir4fld)@0K;BXj(?qy?hDa0dy9&NfIS68zX+~fPX%WwHx2Bc{G+3qZE z$6?dPO5oX*f{^bX5C~W_Ji~S?kb~jPwAfoJ01?#fDyp(7rwB1sLrcSeJ|VwMBe;0z z{PwLkf{0B4J1y1daC>Zq5$V ZvB~bELi~M!`G_x`Zlc$r z`@{~jl7rN=C;3rHuu<%4hEU(=Yw6lml$-UoGD(GU{o%NV>H?piSB5OnePsrJ;_5 chVRtm?f0W{cFc2c}9A|10+PRKM zySxVs{&>n}&p5Cf (!HQw}KNr-G)*{)US S8wacGs zwK>LHZWd;dy1~)6i&F@VfliesyYH>)3m*i -pOyLaS$IsX;M~&((c8cn|YyDMp0DVQf*L)s+`TG*c>vh5FS+YrwgI} z1};YRZ}+iezgbehO%7nTnA;~VGJ?28{&p1a2*lqt*t6VorHkA7gN4i_%EizDwF57B zj{KGfP5hg+qp!2%Gx@``b@o0-COx8C=SUO5^5Aa2iyF`^5U2y;Jojner3g;dja91E zP76@X(*?F0$Rm3oQ1ZZ(>M OOD}Iv zoZjQ_{gc$JvHRjOr+eqeu-iT0#y})VbV8?CY|bm{P|)d#Qae$~zBM<*2&Pkpf$fc_ ze?*7i@p^vK$l5DZH2fxIa}SEc&rR5Zb_pqri1-^~zi z@8+EfCC=$)_N#(dKyg8 z_fAS9VBK z+QS&s;Mm|Grh7Zc5Zaqlp5i3TZ+-q;ugOU@uY?^~wbUU^>WCda?Y+Msl9^|bmq4*v z8aEZ~xZG0*neQ|@vly64crrCJ@V)x>;L)Ag_s;W};+?*)2b4-sClUSRC%7o@@b1wM z#kBg-5AV$$$E+swd^~&WI-Z6Zt))AYDp1eukVqpz<7G?ohUvYDNsuY&q90x|J?qaR z#GwyX+i^eAY#h*WuqcICuUVMpBANo7VmHsH|Gr2$2uot6%Gpsrw-fAm9aKJ|g3C=C zeV2{(YMoWr>uz6NdL0lpXo%(eE6UYej3Q`QZ4UYdP+DJlwvFH&5P~_+9)Xv6hF@q| z&UCgkIlvfKUhj6$C**T|X&J?Ihl7AC!C(m&=*mYq8?k?IF};+33HP9zsDC=D?D~J~ zy=6dD>-q<3fFK Bo?}^@^xf71sP5r{ z^6lAM@hi@rI;A_Dx6GA(oN8!N5fyH@Zb<*65v{XQD&{aF8pqsCfUso6K^`dq5JwC- z@~SLIuL9IZEB7F7G&y!r#jg?1y-iN|24DH%RCv}RNV(QT9VRFDvVffx#yJSBvxLC= zQ3B8Bq-*5hWO^zKBK}ccCqk kbx 0+z@bPwL@$g@RT5hKQxppg!_zvy?*WClc3V1b^brWl{&9J-K`OQ8WATGmq20 z-6DGMg|UwIN`{0yXk@WI%=*`>8Irmjv|=G8Do!%Hdbdh!GOFtuRsWnkdLZ%kbY_90 zcPEE-Ar9*it2iH_JS7wNs))Rd2Q9m@Ft1*}>6~}KpH}rE18yz^$N)Ef*t;RCzlz9< zp8DmWH2(xN!L&fz(}*ouRCC* Qcy?&OKZm;KQnt!LTz!#rf^1lJ{YI}t R$$j**fQ>oS%G)+w1)@Li7;*{$K@j`Lt-k1}x&R3*$UQ!+d?aU5-RLvLOsI%@ONZ z&5S?)4d?2rZfIjw&S7qV0E;MNr<$TZxR3W#fK7SY$-+1VZLV@bMjNRNdH%QdBL =YhVEb~pD;)jgf(x=%#6W@HFE zV`6FXnQ$8pD=X)}aAVEbxSWgdiv=r>Scp7lNI%IWkTC)P`Kz!OWCjNc3w@uC;BX(; ziowvZ3Pp}|1+VIKlRaU9%O=GBPX`sSZk=I1(@eF1VqYD3)qB#W*!`%)O9CEAIUoR? zaQ;RuSj0L_y8zKK;ba7EF 6@L2%HDnMnHFOT z-9_sl7W=ox>wGEAT&ND6Z?=*Iyhu2}l#O-gh;LL$x<|d9ISZ--^Z1*;%oE8fChI=# z*3Q=hvAd$eZYY5ZfSwsgGF)Mov@{&qCF4-9soZ;?V!Jy4YMkzIGS`zep$gJUx%^WD z5e~|OA9CP;#VXf#gZXO>9co5{ip^aZ GFfKLGul ZC9`rhqBk-pjs znN_vGWl6V8+9%z?C3CSH%!OB 9XCBr>3kg*Lie^mP=ddB>#)iZ z=MHAto+p1?n(aRhWR0MiISgWhluoNw!#E(weFDG1f|9^|wSzA9S{ x{r^a1D>B5CkPO` zxvgaIw^S7w<h@X<{QS_A-&ejBw z@pcPPGurlkHtzG#u+;V650HAb{V@3riv8}{c$%lj!C_-Ij`i(+pR7os;(}{#<;mQp z!%h-&`O;Ne!$TwcC_T>@hMD;8Ww)@7&X$zd)eBAHTK+6ImLnH{kJG#MSmzbixEXk} znmA*ceZ|w$LdTf9AQ2B_?#o8#^1dX wwX_`>vxX%P^6<8c9Fm2^sscISg{l> znHr(Ph*)*-oa+-a9us@5OtB5uK+2k~0l;HO{Yf_-t5B-Te33~|t}IuFX${~_k$&-L z@_elz?6$27*lBL3kcX=tLT58TW2NIbf7ZM^GrWP;7d_=J#zbwQY(*cgG+O%1ylS+S zzPiveKkk_RLu@U 15+F*K6 za%o0BgHBew|8U`JS-U&go9dvub{Jl|a>!k&IMj+@HQkh)1d}9Er SJ5#_ z2r}Q~3l@avX)rAeVDYwp!$&wTCq66%%Nxt +jl{3pKNArhC!S&Ci z`j16rh7<=!0}&{PCR{rZbi&7ME+A@CzZdg4?VdWVv(#xS)yx z_ejmkN@uGfO=8Z2OPm}^3FHjnJ)}{^Zz+wShwACm+`3h*t^qJ~vQZZ9~m9crUl{ zKvAhIv5l->*EAF?bhod 4lU8R!#q8 zbrfe%M>*3SZg=s{H)9uDhU8sf@Lj2vk#iuOr^{KG*PCh<8ACQ)EGxjV;KETwi4RA? zP}>_Z^>`rKnnKpGGBd!Xj!UFCPYANH1bUE4?LGJR%!Ao0=ian^8Nkcf?y!QzeadVO z7SH~SR>beTcAgN~LD3ELM`aWwm*K9ti_!fu$n+CJTuxYsbi6Dl=W&)6^vD^0I9PP~ z??4tvj|8k=!KKU}R$E@*6;^g$m3F3vT~65fJ7f=n6jCmCo>0`*9Zf6K^JzWHLnmq> zG+QLDi-|cU@=by`HoVhu@<_G5q3IKu)waV;s<3ZnImyLfY1uED5oPS3saCbYO84Az ze_uuE{{w= +3`-i&rh@)2W{}r^Tac(i_ KS(dqvOL>Vh#WH+dLLMZ$*V#!8@qAVEaLhGa7Udl#FtO+;rEnBTF!AA%;3~ zaIx$aiH3qo4{}{CFHo`KbXM1Eu>HxhOIF*0HIpH$N)D@{@(-I>RU;s@!PNTzOX4^^ zq)Hjt|IyX^k}%Mw%XD5j(0;3shcW4Uv5Tb3b`hTRSRHiW*&3yCV*wQyvNc%qLv}|< zlNabqcpQ!TxE4q-(<(o=u=@N3a%oJNVmZO)@JtjTiprOF-Tpc73xIdj(&$wA8uW@g z&Aegd2ZR=rgfqI8R^FNFQ{P|(9SX@zeo^?=T;&pF&n-pPATbSP JejZGHqm!)<|Oqj^Ot&N1` zcUbG<(JmVKu%_7H^4F4g2mda1nSixTAz< DCa#dPlg> zWFgiWb_KS> (Lzuc||Y{`25R&vL=MWbIXx*dGK-38U-I>>&UtuLmX zSN*5Ng@BTRiW@F^x8v5A{4o7ThFo}MM6Ht%qE(jpE}q(zkllL5EQUg8GPnLqX 83kU+Gk<{98Z1dxU|&VM zDy`;my~Icf#rc|13>2;7SRf2Xc%$D2LvMC@Z6}Xt Q(|yTTs_R-ETWwWf-Wo2E@=MTI*JZW z-ebwTq8RO(w$}B7a@4`(WN6A0;Vp<5^Cvt~tr)-ja3#4(#O5b*)Y>ZQz0IY;5)^>j zHtpc@VA-Ab5!?0SzWlHNH1 LUSgaV;S?o6T8(Ld8c&XD#n+zQvlzD@d=plag-XFKW zJzC*7#-xL{UcbzApy=WKvoa?QjY|Qa_dq_tP)tA^NIh-}X_Ufx#00cl^zzAo_<20i z<~x3U!Mk( (!%04Pm)5&QM+87 zb?1V`;47{`=r=}MmQ8)-sAVh80wva((c9&F j}^qX!!A*j|=Z_?u;<(nZYb2v_Gp2b>>*x}gpm|C4p>{u&* zmB;#96Y>$Dj5m~%`|NVyG4AObOgYa&{_3?leR6GQDj{x1Uwbp%l25aB?H+$#W6XEC zcC_CBY9l1{;cjKC5u>#hpL;J|^8uQg>bGR`;;0ZXi8#PeWTnK~{r&u8yYvo~AOmH| zM={IN47wCJ5Bt88!NP9=RGQ=?$$24M@yE_Ba`i@o`&Z)6W~hsbo!orDpCXN)muCp@ zInniJb-w}MEkDNTi_KWfQZJ{fO6u;jM^T0JmB;8SlLbJo_f^GSLqmZyxz4TU^&=<5 zZjd1wOeCE^R@r4cJsjdEwJPHUzi8IiKw_C=H}qbkC*saS!O?CUc53hMGl%+}x#YW2 zvuGEqNQd(`2yonP^-11nl#z=!YVqFor=s7a7$uaPQXMbAQs4j{Q(C8VZC@pEr2O4T zV93_g?xME;=@@5ugqx8W!tEJg;^ta^(sHyNPAf*K9nEX5`<(8-AL?q`05Iyv85dYI zmLIpb=UikzdR6mK+mQ44T8*EZpkGUtjZI5<>igFVX}PlGJ1)KpSKQHT!~Y1>F&%dj zs8QI5MR_^F&MC5ksQBeuQFml8R 0o4r}it=191!IB}04Ue^@|5hYF#rY}~bU<*P;`~#b+_a=u1t!ww+Cb7AHE4P{g z&FfdtMWZ9$ooMzzw9bW6uH4d!jw&sr8I-Aj{<-bvv#)#M0?^*rqsa{wy)%OqG@#{f z_p#qoF@L{6MZs5%O-F($wZ@qRbG0*jiL_|b26p&FUb8+`$79oK#DQl89`x4Xm$D?> zZC#X#ul)ReChp-=*~_`vTwt*3l)JFRdIX )AgXNaJ`WethY2>T-#XV3P4AfPXGZtbce0uJH)INq2K3g+q!!RfAqkB?a zliTPGLO2VRW}Q~ v4Vb{I!;N*R;n2X&8d^rLS4_*@ z>!yY>T|v6o Kd+LJ5SyM#Sb;t)Q%aogwJ^wY_PjpD<}XT+P&ez~Jy?QNED1DP_30eDCS zucIj(9wqyAkjy_I;OWlH=Pm*EREwWhZ*F+J!ff}s%Z?(JYMwcc6Q1FcI}P^@Jx0q8 zdcC{j%JNkxH(i0s`wOCFFFP?v4H3q1bx1^Eq;66fs3AcIS!facK&^T@tCf`HyzsaY z9M9ZdWPa+XS7_+J7&zrCw92|_^SQalc6s`P!aZ?k?WZlLOKt%=P|e_bMdI2x3LNtL zA38`EO5oPRdyiARM$dL%+Z%}xi0qy$u)bZflIS#A@rvw@4tnNWVcJE=@)^E;t#RX# za!PhIFfcgSdQR-i-MeqeG;&p0IN0S$=8xBKUg&dpT{#o?3-`9179$XDjX+mB Y2Rp#Yp-S#0F(7yHHg!$%GnL zvemqjuI7H%O#Z_$-36@61 OAtzYhlme_r#p;xV_9-tXay|6o!_x{t0bcvEL(EO_C zdJzts&z!^2LCbGIHT^;F$qQUYk8vQ*USh&nS|``#R#df>O=LG)Va5qwx(*C>*%uGF zaT2ZfW8J(Q5|y}4Na>tb-NUC1^R<~gdLM(rKfp#&jFWCWl1;v><3Ta~-Q-O}-k%*I zN*{BDMHGU!0E0*j-t_^owll5c`lvGUcTV||s%+P*J|V7d^5q~qXpr$_{Q(B*fZN$3 z{ob?1yoA_%uP`_#^s6JY=ug>TNYVs_EIXfCJwFxFn4_OH79q~teLv5hak)_y`P)c! zww!ECUn+l`*@>RyTwmT@1(~RObx+u!2Ne8gi&GJGt(xID0Zt~a^*DX3HFT7ZBA(93 zNh++zs5>wTbANZC#irojc)Z7~`lKJSFziMVBlTu`?H*GFcTpJI`#JkU1bMV;i6@9G z^c@u{6e#}18A|o=v&bcGT7BmM2ntgp(_IqZY`9h|G~4g`xVVUS;4cvP*GgJ0kYb*P zO9*M$=_PsuoM}5Aer=##gRg{?&0pFoJ)?fYVVk;?6m+@<0^-7x#^%rH5)4<=PL9ho zm~}Tx0&A6rposCYT2=t2+L7q=+$S8hV4+dLk(_7!u`Ai=8!mv8hq)PlJ~
{m8m+)d_%V;hdNT(g1p;Gg5eHURkT& zJ_=2NS+&zNJtYV-0^ jiL%bbzIiZTt1IHt|!iI zdx)3YdgrVDYF0R02a^6xzh2^1B_QdXOMCHdNU~Z$G#kfF^+tITrH0A{lWRN4S|z{a znC;w9G< P@Q*&(A;rypX zv!TEfl1~4IYh&li7Gd(X5u*N{Q*ExEaX*yr{L28#iz(Lham%@C9%&gq(7?Y3pWvt+ zlRI*m=e7=B?Y1yTNdRc!jBXMlY~=+E ^Ps`o4RFVrJ{%mC5rXg_8*7q3M z8&|#vchoxe#Dt8v%8>L;m`+Fb1sNaICHv?^SIwu}$yA?~Y#Fjuo!8CM`sB+k#(Sj_ z;mFzCinJcFFPIGo>nZx9>(#oa7HCx{L|+b<$1K ^A@e!GWB{>-t61 zoQ%v_&~b-ye;(+>EG{3N((*^LOl#Q+I6U-*=4d&8Ml0pQLe hF@AI?G-jq+{FWy9*v@P2QaTO?`B;*pbbohfw+Ows^V+y)8lU0 zoYV=G&i6+y6T36ic3f7k6taF`Qz06L3||86t01@*-M{OUlYDd ziLaFm|EM=!4jzjX1+W1f+$GRIWnzUNOi=jTu~U6I=Yt>Tp_>ZmK(9D~?rOg;P!47g zllX%T{4)`;`$Zy}@2~fi&*S3=I0ln2NE7ZFiepQe(0?1gBG|z$Z_9+feEj5D(^?S+ z5{q8Vi+sfPCu(Eb-&ox)u3Ru<-6UG!oN=piiEp+0lz7Y26e$_T31*zGKCfmmf5Pw1 z+@1xLXr;*Y#jvc{L%(;Y2r{H!u}SPkni*RV`GToh?QT|$z{Y3FgSt5KNq?pkyPK1> z11c%NiZ#PQWIokpm$L4 -H}cF#!lj{{1MmKf!1Jc*{Q@Z~ilZKMUlqkK&&v@c%9!Z>0Y&p|Kamu6ue@ zo@a_2+Idr(t+fu&hGf2pZMo;*>w04uYH-$SB6u>*XI99}zHg2)BZ2D)L09(DL);(g zZ~8F0SflT|xNwX(`@`Bj816vk@h`W|b+)M%xh&4d*)Ocq>01I8HTG(}iZ66-30~Uq~0- z=$aRJaLPV-p?G=6-ga%+Nn7;@X DX-E4TV<^#Sy+q+dcoc $SB} z`qiqJfHNk&ZnAdc!JdA1#uUjn59n;ZT`R_(t@Qwv%aulDC-Z4US24{U8T{x=Kyz#j zgO9YRsqdwqXimLzG1B3$@4n%7i BK0?YEzjZj({WMdmX0(j2Cgv7N7OSz= z8$aQ7ke{1aP~u2g4y2bgJ$czu7!~xBxD)~%8ROi{Lk2Hu`AptIIU(j2b)}HAG_>*C zwVp2ki70ZX>t9uwbp$HV{Q0u6VQ*pO)@8>_`ppSxL=r^nhnS$7VZzl->y|!Pm))(t z?sl60eD3yCbT+VgYXEB17caBcvyydNYl#Y@mDh>8)c=gzQ*yR^d&yO8+OCKOD cqXvwh^*%s@ z9XvyKE>{Le3^*6l0t27IO&d%k;~M|I{M)_m12=31?!itvgcdNqu37r>&t3pfmhnLY zq`dqFA3!si0F= vtFd%#`N0Pr3l-+FGyQHk z5YupCEDXx>&gNZ6-N~?(;RKgs@ZbDN%CAia)Hy3zm$z~?r;O1Tn43XFb&?wWDT0h} z;O!dN6xUJaqkj2LGd~v~(a_sdsZR^}TVu7RkDM3;lo=jM5q4YMO!z$;{hlmARnC%F zFEZ`a6#;)pI&1fq{C14lw#UQp!;}! ;^(;NJ)P*FS_wXBAanB!yzPCBmbx9z2VN5^V`)*x97Uo|H#nM?52O zi`=ICo4+pn^7r_VAGfvs-{E1f!9d2&@V~>uAx>f&^Ep??PbFMf;Z WZa-|TZJ zpC<$Fq^0xqB4A>Y7N*CI#`*R{6@(*VYPylITjPIwxy`oM-`hVA+1r`3x>^Jd>)sqC z>sHMyGz_5MM-{&J0LS|t66L+W9yZW>r;Ty#k@OS)A1D0rvi*#EzUr(?%Y%RX fJ8YTFo?=r9~@PGa8U+z#x2Mi f z^^_L-cU6;u{@Jsa>-wve^mNLtEUPWo$iSJ6&~48Ca_VU;r`9J7(0R~#&Ol0{@5p41 zLM(!;ZA|2E+T@e>J(NOEPtTRq7VPHysJQ{ngCQA 6FWja{v)e-zIaqY$ zN}(a>e*b+o)_(VbVD!rT)LvM+az~cj!6-?`8)@+m$Da-v68!p(qR+ %=`FuQ(#aAafL3JW?bh=61T+(yKqH+%83LKXtF$Cr>DE z&Xm_TRYc6g>Ck%(3vDO=_gxtmSszRY-+Hg0FRn5YQ8X&rV`$*o9r+CM|8ZKX4@gTN z1(O$&R$a8L;ER~sGocieG%SYL`Tti`|FMWoVh?Ntbgq8}y~+s64~qOUirs2h)ZP}2 zs(JA8^qXgqjmPi9r7S_WUhFmwz(0!1^&8L0;C~fVu-=^bSznZ!>u m3RKrV2 zo?H0X_UFpydqmh_p_16@9mmB){~fD$EmBpGxnf%CQ_(hEDeJ;H@n_|SPBexe3}uad zlWY06|A$2sw#8kvZ2{(XKAa{Wvbfq7{QLu3hU_azGifBQhdF;xTkq+bmMd-d#@i5? zo*C#MHmv+#TPTeG!yp$cc|V-E$L49i#Pa&%^3N)pH!S$1WY-w?^GPCx{$TFC&5<8G z#Gg2Wh0uWEhfUI*n;_frN5Ai+-#r&$Tl`l6unZ?gC_%dsJ kiOmWunNlo&q z$A8)>?ke6L7Vr}7`s;e>A`}>Dp=5_RzGvNOAJOao;Wz<5|KQ<+P6~tkJaOPTDoAv_ zm;L=o1KWGw;XalYj|F^iOgmP?Z+y~3fu4p_{VFYrV!!_6L6gnjrPw9n?N;$9Sh=Ok zVM#$RBLk %X4WJ1t7O&Zw*UCl#*DVEBP1kI_%0|H|XP&yAmIk=1ux7`KY1 zGQ_ReRzcl;K%jcgMThnGb@Nv6fsYTrMezF4=C3YB5k^sU>;+>|tiSKW`?21Qxr~JC z6wwy!z<83hBhUkW-veEGz$<}~kwb-2zVefoxAVhoo7qz8BuUZ#$9+)W`mEqpghstj zIW_tjEqAzT_~^f9QNBZW=CwEh4-zwawnRyGCVtazs^Uf!raVCBCpc+Ar1B|jMuEEF zePW*cwpC;!a~)9|qd&H6qprTZQPSKTwdLXI $%hZzRnjqhs3x-!Eo*Ak=iwur}82qK9)QQ`6SnSEtsxXuUfJ{UjN(+y}5rA#~_EA z^)9vBq;M!ZOa*fM)>#LarTd##pOnPU!2lJFxEy-B3XC`wKPMqpUavzm38@Z;8|he< zxYE^5x&iDrINrj;Pxg(T8AKt&P_<%L!w58x@1vfjG{x7Rt|z|? eBXt}nWZm~P>MG{4A|3Cx%nOLm zJvKda@28a tG{o6HQh)3VCqdm{c3S1>?x+@cR1tk)dCI zFiaiZM=WpL%ypFZ#o*T{#VEV1l;(fLy7Kr+(|GA;QMi`GoC|6#wdG+OD9}X^F(;Sk zr7W#?3FN*%(6QALX!SWv&_^g=YcMFiPdn|Yi*hl1q|3cANmS6I$}BoY5|^zUj}|sK zb~%yZ==jldBB7Q2dKq3Ca^G-Tx!UaK%Hh;9bffit8QgYD? BQ+eMSN(pfAt9 zdMgcf6CE@rz_vH%*0)5qIB>bW>P@M2>s OBYlNMcgjU6dXC-jD{o zvq!1%;$$@6-BGXv8CFrJk6V7R-GfPs1?Z5btq1o%)Q#U$`tdwZ)`n_J1-FzYp0UM2 zxXIzc?2-LqeyTa~_N^xggZ|tN>%1*>&}mA>V=LCU9pmnV6v1S^;H#_c{HHHTf=y_6 zkYKg9+@k0?S7vC1IfcaU((`6jHt5MehUI*H42o~(9`stC<5Vpb6)}!i5TdC_i+9WS z6oM1++HJqaJg<5fPuN`HDLVL_sQES0rzl~?XjJXFtIUQOKXn$RF1YUjbN9+o%g=bx zdk;din?Qq!G{(}2gVkYYK^+xdF77 4x7f0a~_U`XrOa`{X)eU zJ$n85xtwhT0$*j&Z0nLhB!5Pqko!)d`MhApd4dBzRU{4}@OLY<9Uup^xpzs^_JGE4 zBqj UPHuz5FWdKBFE9*!b9d=K z-YsxvHDFTRv}*az?_6Pl5V#I7B>|@+8joW4FLl_Fk6>K8LTLgf1Kp0{A1iL${0qb8 z%etSW2tFL6Gh@liEYJ{A?}Sc3mUW+pE6a5BZTXG!e<@SUdeFYW9_dLeGqhxqq>W8J zSkeRCm|vD6#KZ#6#&yHHASLrq^%qad$*b){+HXrG^*&L oV<2)US~0_0J|xsBhi_dawYURLDL>kc3mC ztXYF`zSONwC3C)HnFu=z !2uFf;n5yB%r!Sbc!;VSwv`M{psmf@+nT*iw} zU;KT?(Q}H1KR3KtnR47-Xj4T46 #m G=7y zsHjLjZBfT~+F0zGzu|8#%AGcr`9<5JzCb1xCFB_r-eU6V-O*S`zHQdM(=*T784dfR zZrv%1Q-i)d$yi(4sf1_O&PDv>Yl|g2kg2hB2(U7Kz W+-pAYf$rHMpDnncC!B88m zIh)!+nmhks4H*v&q!RS)TZk?m3srd9ScRKU+88ITl_gwuuzT%#j>2oO!cd9>x}W8Y z9T1Q`TyT_yj09`2ue2`w&Hq`H_POWf#ip0v$e48eR{JS*jJlWmEgs&P!-gY>(>${- zL-eKHNN&g+yp;J(D#jPFoJgIxB&?fafq0jaU>(O33}1DPu<7v>&v12Mz*#3 `UR;3L9RJL`D?oNTNQ)k4W^jS#e zqcm;%J9)4z+%0I}vIVAXe>p_WK-c}!gaGas-=! BgjW{q6D zLXI4T^s?7e7Qs5Xv(wkR8_q|YWHlbkg2w#`B5~<*Rx0#jCcf${cJ4cekb_fkrhv6> zans?zZaXKV)uC3@53QF@6knzR4V9uC_=s;fZk9Ih1gyrgJ?Ue2{4?04J7dG9Kk$^J zM-m+uSIPcng+Mx<=B060ijS}Fg9y%%g5^tFcnjvp)~lqa=$tRw4hBHaQ^be*%$+uT zsye3H%xOF%kM V)OM4#v8GRMaD$QlgXlPilB zGTofWmAm7b+fEtiI-MBJz *?Mc{y4}Sf! *3k4oumxyOo{Kv|qU&p%H9ky*55h>V^mKRfOpUcC5Vi(p1lTPc`jw=$}_0 zfI_wTjvgP%$sQ-TH>h+Sr*Z_?EyK2Rmbr5-$nB}VD;@z?VemzpsKh-jO8&1Gqj~0N z)MEpAYY %I|1B-8~2qp=A*x^AUYTrl5c{0mFgG9{pa%Bb276HR) z_R$(;g72S&QZMNHt`6sFO H;b9z)dpeHxl=$0|FetYuEeX8zU z{Mjn#AkdzWkGQ~^6AY)h^yEu&)^Ro7Wa!UF9F;f|?M#Yz@$VfZvZyg!lzX5gRu~BE z2-!(S(sy4Pubm1f^JXvVm GHd3or9 z37(7|4r?@d^)KzcM6mw@ucagd!%Q{q+@zw7G3>@DkqODZ9m7tsn uGBMO)?<7vtE!3tyR< P(RZ61xx>f!V5p;%EalgGZv6wD(fu)^Jk2k4iE9PS{GO!mYAZ>z7bdpT(P^2z z3J0R;F*!^%lFc|hnx8+JE!jw;OE*Ul?|bsyg(39T7sa=-Ba_*Z%U>9p9o*PhHls37 zUI&fxBL^#PCU*%y(C|#W8a~NW)EZ4k&A8nrP0+s@L@4%5k;9y<1k()2Xg)_4U0F>l zSoOSj?LSkqKeW~v05{w^Bx>L+PZg#oCq>aEC6OnU7s>bWszNX66;cE|zj$8S@Fnxv zNT^^Xr4A&%39qU|FzTAAXc8U~na6uXkVkFvF;8EHMeg#zToOB=%vyp%Kh{A(kzxDJ z7acwDqlfL~S+--LU2sMst6_~j=7gR;-tli{nBhW=zua8G6OX44XFPe&pe~ayjZHkg zM)8d6Nh J~VjZcU!G=%fU%jwOWnr?cHN)&dD s-Q2y`tcwHWpJLtB&xg_yC{r5=3ZcFywU@j)D-` zzumF28c@s!d!Z#ZGF~seGQGwogU(*PLdNCg&@_h})cV!XeMyQBn*+(v^DDQ|;vcp? z4 4MUpBA>kr58!ZwLqNRN~o>q?JQ(L}z2$P($vi0lFJ z`K6H#&r2*5KJ_Ab^h$_Ku`U*i6o-|FRvXbH(qtXna>Q3QUAscRME3O3>Z8x{rkfX- z<$D&hta+sC(B9-EL`d`)*i0Wr%)#`G2wbyNpDFmLl52M@6&9G>U2#Rs@Uq{g5fwfD z9YwkA8J{tX$H@KPab9V)`wA<&EN=Q?Gw^QinzN76!LPik)-iiW+I}=nop}C$|LEJf zsj{PmU7IwndLFoDhUn|Jww c#c){RvZzz9kJd|o)@Zc?O>EY+tJ0I^739)wu&8}+{-;EPcpt%4$dR1FM0vD{T z924nW?c3E@f9)(W(z t`&0ANC^mLDwO3gWo^@N!eJ MQ+-UvUjbva%k zS5-u+C!NOvALQv+K~_(kKttpDh~dWDudzwTZj~Hr1zMskBz@~{EJVyn(D{ocj!ZdN zp&cjqTH*NBwf;a6$IgJ>Df#*NK@RcKk2lABxaE4U`X(&ZBMWuvUi!)|4=~f*aEmr@ za;IH6bfuOb)-K3hwx0@NQPg5WEYS`NARRl*UoX%hT4e*%G}$MlRqA;fk|bZZeAThM zgh*d$SB%tX2$(U5I$s|v9+#(_OiA;Wzxg!~=Dgr}Yc4@x9?#Cv+PqP{e7lh}$^`uG z{ITa!yZ~`{`~X3bqPJxD785l7nMQ-t**sHHeb*?vS4nzD60__t`!>TK)_%s0wT=(Z zk#?`uWu$NUnbd`XT!0M)gq- {EE LhK9=~iAKL_n*@w&``YJExMTCrHTNy^FVoMULNFT&=e*2n{Q z@>NSFS<_#Iip@PE;Q}LMXkAZB-avQM6k`2zVD}SCDNrhw`J7757M01$8D^$0KEI1o zaLgtuEdyLP4$nQQBNTS``Pf>AO!j7~Y#Buq*nuwoZK43ogjGe$2oO!2VWeKEc-(e< zCe!rEI* 5X39gE3Z0p%gNUE9j9>G$yh*i+&25*_Ab)M<%OfBj>QUs)r6pf z{Q8%p 9PEF5J)ft1(fitvshCSn^Gdf8}2AU^Rw|5@8w7Cy&plDr?r) zH^5S!SN$S)y9jZ!-kr2oY~-Cc-aS9tEf;)Zrg(E2zRqzrBy0!Hw(Okduzq^luTgJA z2WAF)Jog>H;Y5OYNB}DG)FeWi3R^$h440U{qF#qHQLFNb74&+JbRR){9=gtBF K34AYt>euSm@#sG)mz*Jix#byRnvK;L z4yhdXbqIx$_ef!;%7C*Pr1Akz4!T0d==x@%&Xy~Em1BUBs-9WIJb4wK*OT@!`x^2X zq ^^K?3xowT}QQ+!|R0v*60ERT`3|_hI#sISvmicrKl;bO}8cfpVjmh&}1E-~K z0?-RrpN)rUxP6J{-NClhjilVdJrd^zC*OAOcWw#k)+fpb+opB5)l+wbD8s%;JUyjU z4yQiaFL}CfOyg1OQdasHj=QYlSfn;n{#7{+X9=Rq!Gm8e2qZm!p*K|0L8fzMwZ4O@ ziu0gkQTMAgjtO-Tr&w}PMuN9dGmbbfzx;svETMxUd^0ifMh1f*)0*L#=1=a~1z&(* zyh{znIq!$;j?+yrlx8e3IWFzc;K-pSaWfB(`$MWWB z|3zz%Y&~ i8v3^%BNIdk95?}Ih4|L!sk V};T@aEH deWe|;b3UbknMV<$&Av)udN@6 z=4$$WKhok!;3W*_PSF7$ZvP*~-a0JGZu=h=1wlnZ5Rnd%l1}MH>FyMPp<8ljL0aih zx?$*)mXaP?8tEQt==j}(dXCRI-*dh1KXZ*TbMLj+`s}q=&mG={e4@QG7K%d*S>og6 z(Teo9Tgror`(bgNd&>5S&)i%(xB^zM-DHP9*L{6kZ28RRDd5?Wu)!N<^)1{49g0Vb z{1!c7i=x^Ov|idWsqkQa;d7Z?n!Ik{RB4p38=kP%sSLrBJ(qP@nYPXtQ*EzlGEDDo zQT}Rwbr*7Km?ZAP^G-s)J4Ud;L>~;Z_Kb8_ug0P(t!-mNUC6;m$*ILrv)Cye`amhX zdC_I@LeKA^9z>=xNfpazC?KJ6&GGDqxE4*3vTlB&t_$B=4D*aOjT}C`!Xby~fz`^i zzFe`>n)~_}XFrdh$^+q!B2Spc1Fci(hY&H$eZKc)NsX=^``=Ntnig#OIQCCHdA!Js zv5y}C8K8LqpHv}1#r!Fb?K*Z)*rNu`FoDkweR=7RZ`^0w_d*`Ro7 zN>|Sv> zj~e!$zuPt+yu*@~3SaR *lA`>IruhZT4~=BorrckfEb@nXO>Q25Q)W3 zJP<7v)TxwGUWpM+`@~e8dRwzh<1-y<5$Sb>lK;DiWrv^ZY*6a$$u8sMQap+6$4Dy` za0`wpdo*r|P~HSqW`*)(*!aiO19twHkmaSwV%Z>ApyvXMa1)ME4IPfn-us$rkAdhe z8qhLH53JJMSkXLQUppi2BK2M>Jub~Fn~{j?JJ`z_XOfbBW93}d&}qS|k`sH8(+iYb zFTcC{%o4)%fo`P1O1)`s3N@3tk aIB1yriqP!joZZId?{xI+6EwV0)E8b~_pV&`o{9w}7nY_=(mw~R z4m%_g>HRMx!*B0MeaHxXNSERwkOA}Q;^%p}_27|U&t{J5K{a$>&L*b7wXnB^)R}#Y z!)>vfIFZ>6DX){3_+=X5W7-(WofHMA8?0ZHVALx3d5P7YmX$eUN2f~nNOwnDXk!kQ zVCPR0Yt;xnaB8OjrP%t+X9|yD`Biznv{IYik-{tUcI{{$S*c(qkm@@q>JMf0uxRpx zvc8M10*)-JIt EUpm?hm;1DD26QHUIh>^kQGm{-s(RU+OwYO$bExJT zYTi$5-H5o`KUB{Z5Vk2sMUTs_I}{#<3Ial|(LEXDq|T{BF%>CDdr^BRkR2BoJ_;me zGd4BZrYh6>mQ`8n@nME=ImdCTaW&6~j)(B=oAZctg~s;m#{dhwve%w6oib( zwoRb`ci8DXp*ZG mmi@M-Bgkcmf1K9wbSRB+UM;^k&p z1VOvU$4$p%WEG5;(gZjzo%S5=5O8JLyY^Dahkc_Vv2n=9w^6=i(H%Qn2WFQ}j o7wkr;KKA?8oX7qyxmV@ zg`4WkCV+U>rAt0hk=%N}u?2%5`T`C!9jTQKG#_)kRuYSpt*zU_ztxz8S}Wm%$Q156 zbJ$XK tMJMd^o(L3q<2|vX9niXF`3) z`Z+9=X5QG%vBvQVq|{#Sl80&32o W{u<}=rvfNdhP>y!) 7(PSudl zbydNsOmOaNdFhqJsP#>yPh5ZLY7iR`s_lLwL8@a98&4y3ik4 zuxT3GKPzMrxAn2WJ=7&3pUbVqSa>rp qdi^JP<6zQe(!6>)y#_--D%>|v<#DQhV zUa{ifkn3pD5B6eAEmxT-$EV8LTjw&-oQ+ tdIXXpq5F$P>_mJM1E<~kT9A$%Vo~qW8{h)nnZn(6;bV+$5RY`v(uJv%> z2?oo>{w*$Bkx=UMJbZOE{t3d0BHZHP(FJ(E43SWyKz?NzXfM}myMS01yW;C&gAs0p z+=(H6)I7Y>9bis9et?_q z3E!lZ@9CT|?H>Xrv;#NCPj7mO(0c_kd7^C^sk%JMsVBBFf)fPOYsU_6HA$K27UiFh zjD3=h16?p#ESc!U0<)-|v#*POJxfQmlN^lFNH{c987JV7 MNG3sqyo~l|8{5v*1 9RTsxq9mb)n`!NF-oJs*J*0$$~4!@eAb)^6UNIlE9G;-FHcSS&8S!A|y*PU_5#+Vtv3aN=B+v~8^u zba|GMRbjfx;@W$1+sHU$ifd>1LpV;1_yWmS{cHB_ieBTez)C` +PG z8zziFWo<;ZCO8dDwWubFgAQ!kMKX*C1L%2%yUgIBH4!35^f=386z6z|Xx6j-g+tHk zRr|LzJbw1kbB&~NRLEGBG>9KH-pKSQ!!aGb%xwr2G85P&!$HuLIxEI@y|Xz75}7{v z#%tW!>Ml3vueicgRkg+FCLK&t&bKZqakX&E%ZIG-wO9YqUC3EvKPmY9uJOQ^i4F2v zK6o^XG>soxO?mLRa^trNV^ERTHP6tmxI7lXY$R|X7lC$z#AO^C-3Xn8%|$U}bbAjO zu+0dN)Wb$MB2zhz67ZAYr-2ehwR{z~Z>nB)9zju6bOa8{k5+67_wB4`$%*u#-OHTr zeV@sheB8_X)<(4%wUcV?fPC $?l@ L5`S9a@ z?ev`EzVqW{Lzj!;H*a*tPM(9A&1|4NpjkfIh`G|edeTK+OwazY yuZW0F%Yc|nw!S?y?srm2 RPpd?SBCQ%4c)s#f1!H3>d}y2Za5h4k{hX()d9hV)eXP%R zoMzD7>BsTGy4~B%_5-T|m5h!o$n_%&0EmMncjym=!yx=xaHGL@MT&kKc-2J3VqQ{i z=jeIuOblOmy81>8qjmC C%hXrcM0#f5#)L;l(d|6`Np?-2a=85ogD=sGI?(31 z>gD7ZD&(we2}c~Z>zE$rA`;c;QE~ n!mHZT^&JKj2=9&IZH{8k*vK30DY3kBf zJh<|oEu3va<@U>@X7<`AU^!aVb2XG$6u&BSA!JA?*R;-vZjYf?VLOYg&(GOPRE={9 zV* ekRrjT3M8478letA1rmr@%)I#9Ke_KkhPw)10NkA1GFF z8O1sV0PPi?5fYAxZ%=?}V59nvp!zASMb;kM>-r%_$dEIOc`Uc3xS0iBo%(^7goqox zmAVj93pLzInn`68BP^?t8T>)-cf`vLrx(asTR#HwjbDfhM%Po}2`6;MK#Vhq5xWnl zX#uR<0u;-KTBkKAemHkR|&zQ-Z s)1!b{3H-DI+F z+!^!CN-8C5)ZHmx-zXi^ji5sA5OAc~yB=upqaT0Uerfd8V>U+EqLQM0ZP~sfEAc|< zL@_^_T& 77L(j{2wddO38vLFx4LwurR!`V^s5M&5 z28J1D$!e2Yft&Ip@-VfCS>_Lh<7fwf_}DC%%K9@A7;4TQTX{u*U9llvf{v&}az?)0 z&b@fGu !?dx2a{h3Ax|txjCX12SW4mdJeWQ}L?9!eic+mUU zlAiah2h(e4--fFTd>-mKI&vP{iL|^Y6!RL)XZ!^cQ3TX($KzaAf56!0qs6@58PQ|y z^*Chqy<2r5Bd}`uF$a@EQg%a5(=jVJ#_tsML|JMtako0dB3c0SrSeF(;QZQsmk2E2 zk!;T$NIJ@&99VHG605Otch%BGu;txAO1+5DTs&=cIW=e$R Pgr5pF_Ah-3?mi* zgP~{r>il^^ESo9oz~Fg)!tfaN@KjYLgS)p$u;)`p6JRPl#1#@DB;uv=M*Q}r+-NtM z4sIp`d8oOH2)D|i(B~hO^pM%Ql(DTTO8Hm1lViDDh11afgcFgpy{0QENk+XA&|c+a zWuDrnbiB=&$5nT^x{vz#cnB&sM6Cg@pKLE}{xG>=i7FR>4pkgqgB>in4CJ;{Qfj)b zmFQG&d%S0)EdM5inn)uJLm8-oX$F4X_dQ=Nq-vv|1i} cn38|?f9bV_xSli7e^p=$DIU4&)N>{IQz;*IgD0$(*S?T+uy36Nt5UbZw8 z6*3xvmqAkbVvcQNQyiK<)_hZ~J@;tdYv8u{JwqG$=|w75DG!1Wppx9S*88gm4OdY# zboo?Sl4*$AuTL~?1W1Sg37dZTr*dbu{kD{ZYE|pQKygf-`6Mf#o6lmV4&SLeK+WY} zWx(>Lj=!j> 1NJz9a3Kw>c_B aD)ygR^SDLhS)YqKl<7QYS59PC^BXg|zLeB2 987{g(I<+8;;W*G>_;$rQl-!tYc#%d?q~@dWJ;R;X z`ByFxopX+FyCXRnP(sM!sgWUez6jYX@o11TPZCxf;VkY+NF>oG+d{iZ6?j=E&OB9{ zst_2eby!z?>(6(gGPudFa_A`!8j8bUj4Qqc >LZIZYEUUP8T2cjCyi02{lnEFmoN=Kh}p}FDfNUKcF7r-QJ9d z9ZH6DzSZX2F^RS8XqxH{LpM>%#`x4=0w+)65ejvo=y3L!;A_nI%3dg3o~U{@)I!;~ zCe_}vlF{Hrl4WM(6+Kn8qZ*M|RlpdxonYq#C3yT;R&>(iHFm^ez^k9$_T9msvXfI& znqEd+U9NuSYdCQu=?Pm%KvV=~IgGD2%+7r;XHc!haw0yA)Twd`$nY;&T@Heen@X?G zM@ce55sq=|1W>V5cm5$D*gZ$4ogOz8dy$7e agUb83 z!rtZ)h87~z1KcA3G6*a7W5RSxef#HXifX? p~HzVK9!9~ z?oJ<$kl?q1hndKxBzIJ@kqmqro0pi&rtASw08~n6>mMa}eX>!>eo^VZ*N!YNOnS9O zJYt9&hjz75S%VdOElWz*Q4ii-3gWvPanRKe2dDB!?Msrxr0ksn50;jXDrj@YHlzEF zag#aMJI`v>f3TiyVuCe)FzL&42`93j0IeWG{-Z@-_G#Vy#;W69WN$k6HDq>HZVG7* z=R|Ek?fYEg7IVdYRBTp9^z>Wqt18=J{Kl$A{n278Ku=!nFFWq7JapBt(5LuF$d@wM z#5n3Tus&z8Hkd!&%K8f|&HP%#mkS>Y*eNJdg34OZv~-t)-jSu^K~aUIx+ZdS@v%3+ zv*?mGSy7Z5}}MN>q#FK^_vdhJ0*52&+EntLYmNe#+6nQ~QzIJYQEU zbU1*hHcKN&?W^q>UD!IWXi@QaI)xJfR0VK8Cdy1A%w#r0HHQ^V6yI U4n2m6d!@CvBl(5txsD}5?Dj9;vUe1 Zc|U3pml!&wbU@nvs#_9--ZrBKI6~E>tf7+Ge8hbGFyZa~iYW zmm>=NKlY*!-P5Yo+4_JoXVKw0!j^vr&9msZFd@C7{&Wsa`&$iAL^{Nk#Hj?b#WH@p zY P&nqAYiW*RsLOs#wG6{(ALGwce~y1}m5=0DR% z3goQ%c)+`}X yyHmxEC%(0X)t+7xCFUzpDW2)d z>c!tV8a79B=ujR+LSW-3dQ-z(R_VGqa@|!HaWt=W3p#C@2{)Tmpm`Fq`ResGdBn(& zNF1QX_ZD(wn0Iv#YG-g+iy{r-XG=Ys8U+}d$H87ig?o>p>+U`2fZ_Mb*MphPcs)+U z=Ui!L#Tr-1v|LzhXS+FyQ* d6ek&goy3Zsauz9dY8Mq8}*oUcwTMAAab0ZpMX>_I2EbbBimAnXamgLpkHtF zW2WKMJHRQP>{#)exid0kRqjHP^e}}gVzfqA6&ovXxX_M%=_{8wZ2C>Qa}k^J8=!ES zC*Z*x?>Eha5vrmXr?XDfW0K+S+N2=&SEk*O$z@CE8IPEjxU8z|XJHG{NGo(Ez+Ui* zVcloX*?R;(d~|Q1TLL09mqO7P0@PAy^uzw70g7j#cEt|HU#{#_j%gjYBTpSti`662 zKYk<&IiCC&!K<(?6`Mi{2g>0&^I+nefMZ6ACS0)8fsX7U(L5)Jf`Z~k1xzD47IjX+ zZVN&f&95YG1NUlg`RNZut=+)WKpXx90TA(ND+S9=PVE!j#=@V6JM_hC&ciP@MMW52 zUKn@EC0ZS3@tt-JrngxMD=xfC6F!|f)~d{|Phd5htZ_N#Y`9)jsttEv#jr8Qpj^gb zj0fWD4R+T^VLJ5+4tMXpkB~U8A1uLE{cd{I&f3TvjLGS6U~+bzc{){CZ@tvRAO`zp z$!C$+h*RumwE$0*;ltQk8vokG+T861UreEvgMOal>QTKg>H)I%Vo-v&T7jvmLmz G-=b$&_n8cXlN$9cS!Wh<$5!9NP(ePqug#cL^pBD9S~5t71Wq51v07bxD$^O#M_A z>I-GHulOYp762c=EIbh~tkPO;BXs3k%K5(imO+*Q8i|V*pu?y}etvgWnf<5L0n88) z5dzHcOhL~XCQKgJ)1>I WPnYG_ z0wAinScu#xH6; SQKggan+ICdP1kpbf7t0H zdx|Wg90U}s*rcU2aa~)tQUwNjjtq_jTvaA=f@#2Kmj=ooXfe|hYu%;&*SGr&c?6At zc#7$T{Nd`P*V}^M*<7GjuXj|s8svDKXJ6@tzR<);I^@3zga{;!3vgqm=n&TdV9}6) zRG0S9kmj&$vpq^$`L$|QWS@24J?}3-HoXt{GxN3H8N&3iB3M_h#3 y$qq zWl+;;NcueIyu&A}dz_@Rl2BA>uDG4vzQlu})A7Mu<#JEyca?dzRn5gV^Wecz G1qrRYyvb z4zr9$t&mp}_u7TQvXpFst^gZwn^UK+vNnakY1@3AkQh@SRIFB*`of$f=YwALxoU&8 zL(uG&k#;4kmC@!oN8>oB{y3SPfV`NdgE1X`a@ef-tWIN54E*A|;X(Z49(I`D=cjBy zTypArA6A9b{a!?l{*~HoVI-f#6bPT|-lue~P36IY$G@_=KYrvKs;#~*>ogcFa}DyN zF@6DkvKf;pVAFZ|IT5P4CS8U{pOSJn+{_f;V9(Cf^Q+EqlA2(@IiOs(36IUhI)f62 zH`vZp-Ad(X`*@6h9+pZU?xotqh!0bu_5fi~vT>_(D^f6*VWkct2r+w6NS`GYrBtMB zQp2^mmaLrhxcJ)fN{EFMVwL6h#EU@+sdze%U6OQQU4Fvetcjf=#Y3RnZd8t?Xh-YP zeAqsus4`bPZZcqCqMWr91!5YZpN)yyJEkMzfmAaHCgCi?i78Zoj@(txAe|AN(vEgF zsNNohrXRC5$u;4SuLEr=9G%r%pazetyA4yD7P5q-{hogIOI?MUoew;E2PAtlq5}IK zM~y7vY<51{;VgVPYN^zp{^i714Y10vDzv6=7kYckqh+G+Ijr#!V`!b;DOl4uK+VP= zCg%NRQg)&MN$Ev;av;2M`b|KmGPqx_F27a+!^LehPjp?W 1q*`=-5<^dssV5mh zK^fgA69LgH6k&>?&Cq RpT6Vz5l!A9L`W*(N&p Yj__PFI8Bev}go+)+)V_?MAc2j$chcmHr9H>9{+ygmWUq{=A(+{?Jae18f z5PUt@^)cZ^RDUmn$4L0Zq_0_zDVCkG_LtK1DmN7pKVs=+qAqaoIt-iixeU~M3N2=< zFv?peKQ6YInk~N9P<8y7UsAt#+!HNI&cn=5VX-5c$zhu5@Zxyz-QanmJFH;N*@NV4 zb`MQU69tiI^I4*vhpo!{q%Zh#Wq h;v*CJ%fG1Y+w38Os zGuev8vV#?^i;741gTD81d&E5lI(-(mW5IQwj;`!v%B`BNE7OB3dqpdNUZ4H`CdL`L z9uupPis4jaWAoW8yev f*g^6%|=%~<97az69{lzmglUp_3^BtI%!o{xi~y3Sy7PBl!3;chtfT> zbq5~ il}ELNed5nuHFc}CupZ7BiosqAXJAzMX;L-IzKKaca!#RQMY=M)H!{labR-X z`81U+FS_T3nZ~U6JfV|tg|;y@CdC=OM3YS# zG4)lLw#$`Q*4q-3ERFc<)s%|m?}mNm;0fJJ?)Z(cru7N>S=O2jE1X1UpijC=J@`>! zfhv{8Xy;;bw!9dc@sb5Z#X-a{dZ^JeR95dgmWEvC(Dk07z)A_MDaSp6l(z1>Bu1yG zpQsqD<(1}rH33?a(Ax&c5OZ=0M7?3G;3Itx?u_$=JA$1sag4{K4e~MIXh}(5wOQxf zHA7F>r)3NOh%S9xg=1#ba8=3Blu2 Y=_ z<<21>WQc^41}bpjk*z=2ZPNF-TEY6JtRA|j$xjuwC?s_8g7MpzPr8j|sq@}@!?k|w zNHOgaUmpvGK;Om0K&uRbbPnfdDf?=ox_5}e-?_BvAbl7I3hE?)*4Fc4FQXsNQv?HZ zufH_q5lI|?AgJqmqO0rWh7KH4`yxQ2r|}bhEE~OA(PLO*fz+OZN8xcc{L{}Opr|Tb z7S-%1hu+mWBo9$yP_L{*MSmHkET|!MUS%d~j$sDmcZ=pm(w5us5uWxd{}X+)+bYWo z+^=M#7$58Mxc4o%Hk!iZwyl0ById`CP}I*9uv3!O@?%&53(}9Tn*x54tH=B&-RIh$ zDXaU^yq2P9TE|&Zyc#JcmT9N!->Dypq`Zh5Wt*nFgfQu`L8NFvP6$vHoXHuG+-{`A z!usfYyPedX8bB2zVej%yp(fzI+uQ>xQTInZX{17u8$4wleggG2Hnu<+O(IQ)y-LJ* z{)A$6^L6w?>$68O{V~!44!aBDiHDm^_6er>A(7ws#mo#dg4~-h9+S_DVlU9)pz;D$ zs-KKl8L<{Qtnn5(31rV$UWZkcI(-2ORY?O|tujd7jrIR*7kMw+5D+ulys>S0FT>@$ zGresCOOZr_xY4eJx70%YJ}&=DmxcWjHcp##zt#SPSgTY0#WE&^sqPpCPI0KY@IvHq z_*Yd7W$LS=BypG`oU_{lvOs0Fsdy0g7|5-qh)E8PzzNx@N@9%g`D3wQz;D%E7N=Oc zHcjqNt~3#zgy3(m1i(9$m=5M7i7iGl-P#$XlPN)}(uO2JR0B|YyB*vR{1gt?h7Q}x z*(WEz-S8DLt>b)2*(ufW!g6Du&W{&BV~^D7PyeI5i9?hPo|; XZV^y^Yb_se^n-uh` zF=m|toofFz@hPpUoaDi}T?c-NdYMte1ZlE@>S|{Jmb(y-hdTMLv(ftOi rKblIj- &a`Hp{ief?9N)E2?9Al==tbf?=!( ^E%Z*VFU_ z(+yza`OMu>lu%Cy?a) VY`}LMas%)IjVlp+YX2Lg{_GM8lJ9 zGx?_NL)j$IcwUq}oR>jA3n-fVzU*)E*%gLg*>JjstySqBu@ZvT{jSBwXG9Y@#Ff<~ z{n%3{y%2BHTw!Km<+u$|>`+g`Rw%>K_M>N}9lv)hdz)GwN`Y-l05@0$4}DNt;NKh> z^=J{9Qxk!yyX#FMq7& PFXL3SYvu zdx7@M#%D$wbC`?NEHLwFlM9XU_vkTle2n(kUM*_3tmF!Un%F{>k9v3woDcB0yw)|q zC9Uq_K_k_DR7#74UNOhKHJkou{hVgqSNT&tz%Oo(n(2MY=b*FTwk~wjPWIa8j#TTN z5S!v6Dsg*ABr*O3h|l}p=BTsLsgzdE*O;SMoH!YSyR$n?-|utzd_i< ^4d4 zjE~nK7};>>dnv2=GEylkoIb5!;)l=sh`W8+Y@Lif{7o9%@vOm-6-9}SF6Zt%RmY)u zFB#o=*E_kk%@f^k7vu5gj2b76KD7PuL#DpSoU1@6Ev;oE2YvO_soZ2R#c|`ic*yF@ zXxNDaPIn^1ov=0b*8;_)lt h=ajz>Q3}ngyL2pV0z$Ys^zMR7h3 BkPERAGtc%v^=P`4sv%7v*vdJ5uCHt)l~DDSmXldwd*C4 zdXsa%PLuEx>$yyeH =BOSW|>0OEV`TTtzky_7P(AN%`i}lJuF|DRf{1 zndIGjAqt#%D7;CUOP0#{C3-Jzvd_1&> kC39zO~Q(w2BY;t?Gk7$ z0$kino;y-F+wiCMJh6sC3Y^7HVkX(~==1}dDDO-?CE99f=yVi~ezrmj?qH8*d{H@C z1q)&Q3Ixt+weu!Z+2L*lSvqozY>JA5*(LDc8YYjF*0Ss;$1jQB8_Q95@>O>F>a%%Z z){L7;49d-Zd#Qt`r_CGD89^atwn^v+Uy!|zaWAv*C7WU_ks&7-+k496a6V|=gR-5w z&5SLRwc*`iT2rMFA;h`Uy>pElVX!=7^!aEYxR)h$-rtp$$|2#wjE6&LH20~51F*es z&g2bye!tzd1F9z^fcX;zqfx_AXpW}vOfE!2^+|a1N{aI^V5)ZGko>L%W&AVa!~ikI zfOO)#fjrQ6Z0(1}-~;lpWQW$OzaNYc0b-5jRg?=cn=vw=TS*y5-QYuL1*eODPXFyr zAB3%Wf{Ykt0n}(m89TUo{1{kySXD=@v{1+T8T;nzF4Dh8vK+~vX>AXF`@fcWW`RV~ z!}}_9cq1>U(`1?DSH9rY&TYQroD}`(z&SpXEoU6hbbjrK*RgVU5)~ToVwPADz48bJ zb#(vaJR}8vhaU@Qw%Myp7HGvhJ(?x6{A=3NAFct@Q8KZFElN=R#^QgN;u43EKpHRe zTPA=6coA0o<*5`;{W)$HuF;fUoul^fTg1SQ6GQIzndn1>orpjbf*T}AB;?ODqA{yX z?Q bH{^!H$kokc0YA0U?{vPTtH;l0aXbaS0F)c?C zJ?Q7iTefg|F=hn(oXQQMdPu-nl~03%hcXv||HnWp0B2l2AB6^DvO^yk`x%L!{+bpP zS=W3Tr4AY%;9cJeq6c!=B3bm0GaoHKP?-HT5yktki1dbDooCHPKB%a!2BBlG6nRdb zN}<-RRi!<>DMb4x7d&2jcY>CaA<6O3j8U9!?z_Lp`^BQ~hism&O2C4vynspLt5!e# zTc&?=@>S98mUPJiFliGv<9iZF_>`gi-^=` f<(zC?n0h0>Zj3<+bB3XIxf`Ua6kC_ zk%;gS@cAtu6>>k_Qj=A=XzS;@?bY?LC^zWYGYVhE3+MONvyI{d$@~ZGOyR$7=$jQj z`XeuRb_|HrmKh%e6-aRkZ^E^!%~tA3K~w$OxGWogW&wZ?2U;iv>>O+(|03+q+aJ#r z8ZBw_bs-e+wI2bj@3X3{s4=Z#aQ((E10$dpq`>46UHA2ic4?BxHp9O}6&WRT%9@p@ zHYzoeA*#K{<{2R7x(*D!Bj$3w3uZIL7MBpG>Q3^Gy6IQ?rv_{0xJ};D!k($`OmKE) zQDg>1fjr9sx)`>3*_SROK#MT18lk(gzxi^rB$*)+FwYL`KJ;;R250t1tM;??R1ON( zNH_GSvPo52yUg?$fAQsyNW8gF2)J^^4;s%#l5)r*zNq+)DX;b`Ch6T-?;b7KpJe`P zkk>6F`Frd|`hhEQXVc1ohP `iFnf{E#WP_7u?X|z zKic762OlBSMslpDPsOPRKIbT#_7C>!qOMKC2@`STUl>{_p=mLN*j5TpF*=?f>4w?W zvKr^A?4_%4dwF(8(NmwEW 3Yl#R57A{y_~w#*yL88ItmAQ9*Oi{FHGEM)NlB*+Y|S zl0>Iuy lyVOV<%)~+t&vvWX z`(QIQS{I?DMVhN&@1H%bIC^?Ta(TFUcl}fX)<2?ulQH;DUI-06iD$OL0Q1`9)kEd1 z^waJcNp>5{51iOT&rZ5<=;n5fzdCg4u%6_gIONHczDYJ|+xr{vrOi3YjoIrCtFL|J zth9zsjwO4HZTg o$)ITH_UW!Gi8K1rFMKd29A*!d_1ablYg$1FZ#~L-355fDj zry=7ZCbF4sqxy&4DChRjNz*panJc8${KueRwGyZstC)Ks^^bx8*x03Qurp-LzEaNg z?AwJIPOc$@z |?KLCl(%^zUk<;C$LZ@_%kWPs?<$rD6V6KI7Bx~H(H7z6HD1#jQ z72te7z 5*K9xN|3%2n>_-+3$7JVBs0!J)WGJCcW`KS0`4bTsn3# z|F!ll kDw)JR*+LK3CTs%7N8yKNcmz z{rl2*p-`sA?{>1Ab}vIR=iOmfF1Fr#Vd#dcClS%#ANwsK=X+!zCp|pjf`b4M(!c)> zbT9+u1*T>{9=TNzlo?R{7b3|f5MR8Cr35+6Vln*1yc)S%!UdZz9%_p~&A z=*}FfpXk>axFlG)>G~tuCq;k-67)-18