pax_global_header00006660000000000000000000000064146636577200014532gustar00rootroot0000000000000052 comment=d83f4c307c66932fd74f37755947648378ddfd8c pytest-watcher-0.4.3/000077500000000000000000000000001466365772000145215ustar00rootroot00000000000000pytest-watcher-0.4.3/.github/000077500000000000000000000000001466365772000160615ustar00rootroot00000000000000pytest-watcher-0.4.3/.github/workflows/000077500000000000000000000000001466365772000201165ustar00rootroot00000000000000pytest-watcher-0.4.3/.github/workflows/release.yml000066400000000000000000000010731466365772000222620ustar00rootroot00000000000000name: Publish to Pypi and create Github release on: push: tags: - "v*.*.*" jobs: test: uses: ./.github/workflows/test.yml pypi: needs: test runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Build and publish to pypi uses: JRubics/poetry-publish@v1.17 with: pypi_token: ${{ secrets.PYPI_TOKEN }} github-release: needs: test runs-on: ubuntu-latest steps: - uses: docker://antonyurchenko/git-release:v5 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} pytest-watcher-0.4.3/.github/workflows/test.yml000066400000000000000000000017271466365772000216270ustar00rootroot00000000000000name: Lint & test on: push: branches: - 'main' - 'master' paths-ignore: - 'docs/**' - 'README.md' pull_request: workflow_dispatch: workflow_call: jobs: lint: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.10' - name: Run pre-commit hooks uses: pre-commit/action@v3.0.0 test: runs-on: ubuntu-latest strategy: matrix: python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12'] steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip python -m pip install tox tox-gh-actions - name: Test with tox run: tox pytest-watcher-0.4.3/.gitignore000066400000000000000000000040341466365772000165120ustar00rootroot00000000000000# Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # C extensions *.so # Distribution / packaging .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ share/python-wheels/ *.egg-info/ .installed.cfg *.egg MANIFEST # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .nox/ .coverage .coverage.* .cache nosetests.xml coverage.xml *.cover *.py,cover .hypothesis/ .pytest_cache/ cover/ # Translations *.mo *.pot # Django stuff: *.log local_settings.py db.sqlite3 db.sqlite3-journal # Flask stuff: instance/ .webassets-cache # Scrapy stuff: .scrapy # Sphinx documentation docs/_build/ # PyBuilder .pybuilder/ target/ # Jupyter Notebook .ipynb_checkpoints # IPython profile_default/ ipython_config.py # pyenv # For a library or package, you might want to ignore these files since the code is # intended to run in multiple environments; otherwise, check them in: # .python-version # pipenv # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. # However, in case of collaboration, if having platform-specific dependencies or dependencies # having no cross-platform support, pipenv may install dependencies that don't work, or not # install all needed dependencies. #Pipfile.lock # PEP 582; used by e.g. github.com/David-OConnor/pyflow __pypackages__/ # Celery stuff celerybeat-schedule celerybeat.pid # SageMath parsed files *.sage.py # Environments .env .venv env/ venv/ ENV/ env.bak/ venv.bak/ # Spyder project settings .spyderproject .spyproject # Rope project settings .ropeproject # mkdocs documentation /site # mypy .mypy_cache/ .dmypy.json dmypy.json # Pyre type checker .pyre/ # pytype static type analyzer .pytype/ # Cython debug symbols cython_debug/ # vale vale_styles # tmp dir tests/tmp pytest-watcher-0.4.3/.pre-commit-config.yaml000066400000000000000000000011151466365772000210000ustar00rootroot00000000000000repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: 'v4.0.1' hooks: - id: end-of-file-fixer - id: check-case-conflict - id: check-toml - id: check-yaml - id: debug-statements - id: check-symlinks - id: detect-private-key - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. rev: v0.3.5 hooks: # Run the linter. - id: ruff args: [--fix] # Run the formatter. - id: ruff-format - repo: https://github.com/pre-commit/mirrors-mypy rev: 'v1.4.1' hooks: - id: mypy pytest-watcher-0.4.3/.readthedocs.yaml000066400000000000000000000006601466365772000177520ustar00rootroot00000000000000# .readthedocs.yaml # Read the Docs configuration file # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details # Required version: 2 # Set the OS, Python version and other tools you might need build: os: ubuntu-22.04 tools: python: "3.10" # Build documentation in the "docs/" directory with Sphinx sphinx: configuration: docs/conf.py python: install: - requirements: docs/requirements.txt pytest-watcher-0.4.3/.vale.ini000066400000000000000000000002061466365772000162250ustar00rootroot00000000000000StylesPath = vale_styles MinAlertLevel = suggestion Packages = Microsoft, proselint [*] BasedOnStyles = Vale, Microsoft, proselint pytest-watcher-0.4.3/CHANGELOG.md000066400000000000000000000040701466365772000163330ustar00rootroot00000000000000## [0.4.3] - 2024-08-28 ### Fixes - Fix watchdog 5.x compatibility issue ## [0.4.2] - 2024-04-01 ### Fixes - Fix bug with consuming abbreviated command line arguments ## [0.4.1] - 2024-02-06 ### Fixes - Fix termios, tty import issue on Windows ## [0.4.0] - 2024-02-06 ### Features - Implement interactive mode with keyboard shortcuts for common operations ## [0.3.5] - 2024-01-28 ### Features - Add `--clear` flag to clear the terminal screen before each test run ## [0.3.4] - 2023-06-24 ### Changes - Fix `tomllib` import bug ## [0.3.3] - 2023-06-11 ### Features - Configuring `pytest-watcher` via `pyproject.toml` file ## [0.3.2] - 2023-06-08 ### Features - Add `--version` cli command ### Changes - Fix main loop delay ## [0.3.1] - 2023-06-03 ### Features - Print information about current version, runner command and watched path on startup - Log all triggered events ### Changes - Fix typo in `delay` argument help message ## [0.3.0] - 2023-06-03 ### Features - Allow specifying custom file patterns and ignoring specific patterns via corresponding flags (`--patterns`, `--ignore-patterns`). Special thanks to @[@aptakhin](https://github.com/aptakhin) for the contribution ### Changes - Reduce default invocation delay form 0.5 to 0.2 ## [0.2.6] - 2022-12-11 ### Features - New `--runner` flag for specifying alternative runner command (e.g. `tox`, `make`, etc.) ### Changes - Drop support for Python 3.6 ## [0.2.5] - 2022-10-30 ### Features - New `--now` flag for triggering `pytest` instantly - Support for Python 3.11 ## [0.2.4] - 2022-10-30 ### Features - Support for file move events from not watched path to a watched one (e.g. renaming `test.txt` to `test.py`) ## [0.2.3] - 2021-12-31 ### Fixes - Fix python classifiers on Pypi ## [0.2.2] - 2021-12-31 ### Features - Support for Python 3.10 ## [0.2.1] - 2021-09-18 ### Features - Added short command version `ptw` alongside `pytest-watcher` ## [0.2.0] - 2021-09-18 ### Changes - Migrate from `inotify` to `watchdog` for events monitoring ## [0.1.1] - 2021-09-18 ### Initial release pytest-watcher-0.4.3/LICENSE000066400000000000000000000020611466365772000155250ustar00rootroot00000000000000MIT License Copyright (c) 2021 Olzhas Arystanov Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. pytest-watcher-0.4.3/README.md000066400000000000000000000121251466365772000160010ustar00rootroot00000000000000# Welcome to pytest-watcher [![PyPI](https://img.shields.io/pypi/v/pytest-watcher)](https://pypi.org/project/pytest-watcher/) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pytest-watcher)](https://pypi.org/project/pytest-watcher/) [![GitHub](https://img.shields.io/github/license/olzhasar/pytest-watcher)](https://github.com/olzhasar/pytest-watcher/blob/master/LICENSE) ## Overview **pytest-watcher** is a tool to automatically rerun tests (using `pytest` by default) whenever your code changes. Works on Unix (Linux, MacOS, BSD) and Windows. Example: ![Preview](docs/_static/preview.gif) ## Table of contents - [Motivation](#motivation) - [File Events](#file-events) - [Installation](#installation) - [Usage](#usage) - [Using a different test runner](#using-a-different-test-runner) - [Watching different patterns](#watching-different-patterns) - [Delay](#delay) - [Differences with pytest-watch](#differences-with-pytest-watch) - [Configuring](#configuring) - [Compatibility](#compatibility) - [License](#license) ## Motivation ### Why not general tools - Easy to use and remember - Works for most Python projects out of the box - Uses native system monitoring API instead of polling on supported systems (see [watchdog documentation](https://python-watchdog.readthedocs.io/en/stable/installation.html#supported-platforms-and-caveats)) - Listens for new file, delete file, change and move events - Runs your tests with latest changes in case of post-processing events (see [delay](#delay)) - Has an interactive mode with handy keyboard shortcuts (Currently only available on POSIX systems) ### What about pytest-watch [pytest-watch](https://github.com/joeyespo/pytest-watch) has been around for a long time and used to address exactly this problem. Unfortunately, pytest-watch is no longer maintained and doesn't work for many users. This project provides an alternative for it. See also: [Differences with pytest-watch](#differences-with-pytest-watch) ## File events By default `pytest-watcher` looks for the following events: - New `*.py` file created - Existing `*.py` file modified - Existing `*.py` file deleted - A `*.py` file moved either from or to the watched path You can specify alternative file patterns to watch. See [Watching different patterns](#watching-different-patterns) ## Installation ```sh pip install pytest-watcher ``` ## Usage Specify the path that you want to watch: ```sh ptw . ``` or ```sh ptw /home/repos/project ``` `pytest-watcher` will pass any arguments (excepted [reserved options](#available-options)) after `` to the test runner (which is `pytest` by default). For example: ```sh ptw . -x --lf --nf ``` will call `pytest` with the following arguments: ```sh pytest -x --lf --nf ``` ### Available options The following options are reserved for `pytest-watcher` and will not be passed to the test runner: - `--runner` - Specify an alternative test runner - `--patterns` - Specify file patterns to watch - `--ignore-patterns` - Specify file patterns to ignore - `--now` - Run tests immediately after starting the watcher - `--delay` - Specify the delay before running tests - `--clear` - Clear the terminal screen before each test run ### Using a different test runner You can specify an alternative test runner using the `--runner` flag: ```sh ptw . --runner tox ``` ### Watching different patterns You can use the `--patterns` flag to specify file patterns that you want to watch. It accepts a list of Unix-style patterns separated by a comma. The default value is "\*.py" Example: ```sh ptw . --patterns '*.py,pyproject.toml' ``` You can also **ignore** certain patterns using the `--ignore-patterns` flag: ```sh ptw . --ignore-patterns 'settings.py,db.py' ``` ### Delay `pytest-watcher` uses a short delay (0.2 seconds by default) before triggering the actual test run. The main motivation for this is post-processors that can run after you save the file (for example, `black` plugin in your IDE). This ensures that tests will run with the latest version of your code. You can control the actual delay value with the `--delay` flag: ```sh ptw . --delay 0.2 ``` To disable the delay altogether, you can set zero as a value: ```sh ptw . --delay 0 ``` ### Screen clearing Use the `--clear` flag to clear the terminal screen before each test run ```sh ptw . --clear ``` ### Differences with `pytest-watch` Even though this project was inspired by [`pytest-watch`](https://github.com/joeyespo/pytest-watch), it's not a fork of it. Therefore, there are **differences** in behavior: - `pytest-watcher` needs you to specify a path to watch as a first argument: ```sh ptw . ``` - `pytest-watcher` doesn't start tests immediately by default. You can customize this behavior using `--now` flag. ## Configuring You can configure `pytest-watcher` via `pyproject.toml` file. Here is the default configuration: ```toml [tool.pytest-watcher] now = false clear = true delay = 0.2 runner = "pytest" runner_args = [] patterns = ["*.py"] ignore_patterns = [] ``` ## Compatibility The code is compatible with Python versions 3.7+ ## License This project is licensed under the [MIT License](LICENSE). pytest-watcher-0.4.3/docs/000077500000000000000000000000001466365772000154515ustar00rootroot00000000000000pytest-watcher-0.4.3/docs/Makefile000066400000000000000000000015561466365772000171200ustar00rootroot00000000000000# Minimal makefile for Sphinx documentation # # You can set these variables from the command line, and also # from the environment for the first two. SPHINXOPTS ?= SPHINXBUILD ?= sphinx-build SOURCEDIR = . BUILDDIR = _build SERVE_PORT = 8000 # Put it first so that "make" without argument is like "make help". help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) serve: @$(SPHINXBUILD) -M clean "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) @$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) python -m http.server $(SERVE_PORT) --directory "$(BUILDDIR)/html" .PHONY: help Makefile # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) pytest-watcher-0.4.3/docs/_static/000077500000000000000000000000001466365772000170775ustar00rootroot00000000000000pytest-watcher-0.4.3/docs/_static/preview.gif000066400000000000000000017661541466365772000212730ustar00rootroot00000000000000GIF89a%Zw! NETSCAPE2.0!H,%Z %6&8$%-035  ''. 0&'"70 .7 70.55 :($($ :%3$ 9;: :777?A%F(U? @?@,c' I+!X >@-!b1"j4#yGWm | pmftv I Y#Y i {&k )y!AD DG"MR"TX$\a%di&ls'sz@ >@ ?G FFFPPWWH!HO#PP#OV#V_&``_hhoppots`%_g&go&pp&ox(xUSQ`][b`^igepnlrpnwts7%)| }(  #*+!!,!,"'$- 1$2%6I?Q$%0- ":. 1"5&&':*=0<+>0(@urwr@-A1*+,-0..002  (4;3LTf@[\]OSba]bkrx)~}{>6B9IAMF^VaY`Xg`*'+2-23--1-+11(&2!5 7:;~ߜ 9-B՝ϖИ H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲe}ԥK?8sɳϟ@ J@zJJEJ9t3gg?XjʵEr͚˝?mfm F͝uW݋P]'N;yiԨjJp BXO;g 5;92Ө[E˖k[nL/5m]˦O>;l Ǝȱ˔IL&M6I$]S&u>dv}˒e@ȣx.7qُ,\ E 9|5% HR .قK-&Y66X8P?)"Ł; ;,"?A$OPO:Q{]M2~C^UY= ~s_,()fDaBܦană:lh"l3++NJ8[G\]V:\(#5p!#9r?p1>rlhi?ɣE;< ɐ=\$|7͖_(&\ت9]d!m}_d8xUԛq,曏IҎ~u|]eFNg<<3[R}tsK^FG:tˍ5X:v*!Dv#H *UeKߨاHb iQѴc-M }V&`Gx% Kʔ@ڑ, m)c#F1 A?sN/ 4$ >p97쑫,#Yh,4i챤/CԊZhdb1Ԇr,LH:jG^"?*KOK}%twU(#~#k(zQ,8IΫcqDZ葳}I9IIH$!s#o#N~}hxޓS tsrMZȥHR3EjB߁dah_`T}Piޒa愈vP# 8%CAX,;ݩDe:X۵xtDcRO &rxEÏjq#$J^Edk`dCT? Ph;|h4՟#yK\lP!"lg3zX>Uə׋%p'YMk^&6, o|b p*ہUf*6aUq!1ArGoq4X\ 05UV@6 Xn1[-[Ьu^Cʧ2QqS qFHq?`6pnL:G|>!Ct!6F;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհZָεw^MbNf;ЎMj[ζ}n{MrNv; z@η~oz3ϸ7񎃛ǷGNk<00gNst@5Ϲ3 f@ЇNHO{;PԧNVϺַ;GK X7 d= h X+ 9P0}! V;ƀp Pz9I 6=zOpS^ Gꋮ ,]J|>S NA .|[-{{:Wor>{;2ysocM[+U,_ @7'm ɗ 6p mgn, u pm `xgu&|݆|xx-y_mun, -8n&@zgz`}F+`G*'m!}KH*w+ 膅Jm*ЄV|;h}luwnq(xu2 xv~Uxx~zxWn, vx}mx }ox}vχ("gx|#(x:n=@(DXLmYmmPXn*`ކgah!KHU6ߖNJiHndž熊9vxHק閎,yrhx&}(/ 0w6~FmⶀrqWxwz,- H| H˗(w Y}Ѝv&Pyȋ`PzwOh!7m!ГAm1ɄϘV'+zPz*ɒvw In P(y HXy|hi{Mn[90H0hs~ } ~ّx7-@f0F+in.~7@ɔ໤ˢuGnG186):ƭw'm۩j8j^Idm6`TZW}x˼z;ʛ *e-`w8(aZx4:Ww` z[InY c\Yj0}n6z) v& g,*LnCl,hM-XD; x9j0z?yۏȏ'Ǿ{V;6X n+(||ʢ Jn~G)vϊZ!#f"ӫǛsLǏ|x"nq f2)HGn cط 9nnC+^||,闎&Xz8N(n;nnnNAրڽiWy웎>p$:wrǴWsU]sns7G@G G~$﮾rf^y[r`l"/Ai _wuȷL;gۖ_movɂon;sp25o0OagwzEX\G_9GށZ/n^ssPb_tCnaoq;.tYqFFqF&opfo76znm'07Vkqfpfq&on~?}ppǏnsk PW&_Շ#7gp$OO_n v$XA .dC%NXѢA5nر!'FcI)UdK1eΤYM99OA%ZQIeTڔNNZSAYhWa;29n*UGGe[׮Lq؈Zms AaudaGWq M.Ģp'sb?eLo Y{phر.cm5Y|Il6w-4q- '^'m,Rc0N :x_ޞeB-2rn^]^Ac^xaAdt_<2< ;lkh(Dj>d8QZ>Rá9j49Oˡ|s6XG"?DdFpa-Us0!S2z QR%P `3@T_ @ A G]8@F5 ,ʡ;dL2%4Ta. SqbO@9Wuޙ*ޕj/{*N󫸠ȁ-4L]P`GYz"@$l*.>} N(N.5$ oǣލ/n 4[sXEDZ;Y0|0|꣒y-^4DH`/آ»3p!x$@{^Q "nĵ>'bdd'_s2d8phi$o9im{^A #8A/09r%h-}Vf&1 z6B { e5Ri`ae>!<.7I}|#zmNډu7)-΁d:țk)!ZZN7;|8/ &]Kل8Z&9UQ"@qNYFA NX^1ľm[Wɱ7Z {cl\2ƩUlYŝ1ye!'Yɴ-rC I$nKradLUVrCe/YL|fkf|lN|g@g@Z@g=Zyt TduMEg0|~tӀnȜq$% `>g 5}kxZם&@vh ѽvI1RuB+FZTu-kuC oo4B 6Ȩ`vw_yw 6I|uvm'<O jg}}pp4A}7` OB-[@2n( ymz=-뚋zr" @G;s}J!GMCȰ=#Ϗ~N|!}۾g6{8c&~"QQ>A3ZP_ǐaC ˶8k=øO;= L7X?GP:,ƍx?>#Cɗ0APi`HB>A@ɆJ< ʁTlUlB2FzG[>Ccs>ܼ;贳dp3 b \R>ѓ0Ml=`B\DK=hJ=xJ==ʅLǃ*11l9˚H58_; Ú;P> h)KJ2܎<B޴ߌǜȔ:02\@rɆBEƃ c )Tylk=(QLǤ!QD%MD=2߼MLܿzЊ!J?VlΪTG/AP 2 -*ٓ`9TR(=R&]QHւRŒTa<TNɌGŗ-S2bЎh,u' ȂЎ2SG 9-IɁ3SB#4ݞE0 XBT9ITLThPI3Qڂ PUNUTR=UT=SMUVUmUX-gUZUxU[՘U]U\麺X:A3VgE @>Ջ>$|:$֛r%b}$;0ʢ\㘌o 3Ac'Nt Le ?%=,>T hU:D8Ĵ B㯸p(Riq0Y4A©8>($y]3I&r%ag WՓ O/s  fa 8 ZgɕF[aCX \tB/CWH })\rlډ Z[ޙ[VAVѲ*;SWOH<%15TOȵ8:VèI` ÁV  $!#И'DlH560^|#" XBp=uMVX,Vļp@ެ F8E8Z5\e0Gr͌_ DE%y `_* y,DB&c1$oo "Ґ\P>2X2r t 9hߠxaxx>NצdSaXW > x eKa))[Eґ]:"f .n * $"R`a xM\g3d-4+[,>EV15Ȫwb՝66 chf=ZdVAh[h iM}LjSNihn0rxgriN -"3&iމV^jաV0NjYݱ~jf%j&0ney냸j>c &k6"b#Fb%ik-/8/@kj.kN%l֐fna얰Πpˡx ̻^ 9#4N7U-3 , 8 h~ L@p6@Kȼ6~ 9CV7l1M]64&XoSn8,oֆY SK0SoS5։n+Km28,8 8o8p=L@[: FnĠۦ$om2h3? pREJq7lqqqOqqrr!/w!r#O Ar%oܒl'Ҋj)rbr+rŀr-rr/sr1/s5s4,0Os65os8lj7Os"s; ]mڶ< x؞m H:]ht]*sPX n,n,qJ&ۮGNjp7pnR_W&tq\5 Ȉ _CvKˮXS9Ti4u @mKm=s;T8 t{`5kKo<ݫ `7_fU@3LD{5X׼sωrSP?3\;SjֳFsw|wt;z!L8|sq́#Kf /khCNx3i_cW{9>%xG׺3|r<7א9'zoHzzCzzrzz{zx/f?{/u_{Jo{t{;,Ot7= sw{P>soFwt,pI_|X Ǐt]uWOuGwomwtW&tvuG}w.}r*}ޏr&~Or/"?~r_o~q~~~~p~~Wl{-&׉WU}n󞮖{Kݦljx,h „ !Ĉ'Rhb( "Ȑ dhQ c$[>ƌfDt$38i@ ,2e(s/4聥 @ AMN8u,ZCiҭ̝t>>LdF~5K\UWE :xG^$@G`qUS^i"P+bB)s0x#9@aDz:xOBy$I*$M"ģ %UZy%Yb ]z%a9\y&i&mNdq9'u"w'}By:(z蕂"(:sB:) 9r)j)z):*z***V:+Mz++++{,*,2K+!;-Zj-z--]{. .mF./k/ {0뢅  [|1Ƙb)QUc!WQcB&o3,o!sp|!kHssTll#H_Ztr @.֌#qJl.K/o:+;H+"2344LҚ] 4݁ 2 ã }jv oj5LNJh[2żk1+2N̴_]bߺ\M/| ]ٯּ)6η q" H#SiގH*=sv/ko~ݾLOlq泲q3 ?Aj$Ǒ 3!sZfB]n cJqHPli$bf lU m \lİU1zQ× |7 W@?xI{4 ibcvx*ь` c 1{PWE3D0e {[ڬ?X/c#ЖmTN#"6 ouTS9]D") ҭ% cHgцM\30ы`4ŠVLg:qȄ$YD :< ~H fXN NlfDg&7AtD<K,;EOr1~*0fO(HQx);QJĔ9Yo Ab#%ZL=1%JYIٌ&3c CsMjfd0ǴJ"^Gk̮u-VCY|IM0;?>͑xQ߹&3HuȘCVͺ q]Igu"=a/ WHcvhX-D) qXީ[@dۭi4Y2Ϳ12X \i4-xbحq^;I\ei yYl"L O1q _|՜QYm!KFA"":"L͡G=S6 J]̵5.V`Beh,|[-8bꝂY!%ЭI)z -S} ؐ 5@E֠@9MLPeW!!vIL%^bq%c)#< 2Z}͍r!:K}x!2];$ʱa>ݩ`;5aui@,iU[`! Ok!BC @ y8D ]A!Tm$`b&jJZJ2@C/%2Q/d!2PuNe3bu[L6Uѥ @CI"Ol!08Ac;!SƄe2\W.MALQ!.ZW:&avuUaVcb&`:>Nu1:!k!DeqAXԸBԄ-=$$BiBzr0KNh#"mv!\ڸ[ЦSɕb-*Y}M20N2Q+ b.&rYB"R(J:e¡#Y2D$%RpZ2##uTVn_NQ(QazqcaF& H:2uLE!*Tʬ` Mk]]Mk$Jb]DiƨjUZg&D"ǐ[[pՐfH,bN^Y]'lq"RVKx*đD(o {]pTWH9Nh:ꑥ9hEm'Y*=L6-\icAEbB DjALRoVj*Q@xA*Ej+M*sK3i쪮<ZAlZYa85!ȡ L7VC#4$A|.ǦH ՘hT&t (%+| ލ@Q_Ff 9Q:lT fbJ cIM҄&WlǁljKΔԂcz]ZGvkIĂQFivJi!LVXfBO$ƊI=ӪՐ^mfLyalnTOFaԗ{ "ymښWۦ`Q O@IU޺m)`-..6>.FN.V^.fn.v~.膮.閮.H, (*(. @ @,@@ FD /A $AH/A,@@ (/Z(@@~/Rj6ڀF A@t/V/v/҅A.B@o@/NH04pB0C/ DkpA\GD /0 {. o/`op/D, t @///o 021/N@@C 'H/BApC@/oӰ@@ D0# :0.Bw/%/Kr/B/q'4)w@Rq~ 2#nDc `.2./(D+o)Sp!@ 3.{2p,1,)729/n/qVrK:@ Bj>0Hto 1AED3B0@/CqB ?p= /slFq:#rpIP/o0n4&3G*/>rzqGFpKso.Epr4E 0*@n@rBx8@MWs{@ЀGJ/?gt Iur+@1/2Rwo62N=BtN D5;3Hp2KnX'G+v0/4JqrKDOϯX6AtT5"5[jK/nn6/B̶`SBp?5'p^KfS4\F{Brq#A@vk/lig"yOPJ@hS7wI 3`/CZuwgqz[Dx4.5D7TxP13mD42,'tK8|+t2y8 t8q~i'o 48g Nto68kw*_3_G_׸A@/%C1+61?/ku$7FKSoEO)M8;%g)GswAx(+1qv( 3:Nt0p&s^t3:T9O'svrp4#]r)w: FAzBDzAz:gGx]7E{ ;:cn!_/E~rC_s_;(3zaoxlj>;ǻ;׻;绾;;<<'/<7?=_==3>}s>+>7>~ڗ=?~د~}~Kq!??'/?7??GO?W_?go s???ǿ?׿?w 4xaB 6t)Vx@E9dH t$Ƅ)Y(eņ_ZDI3fN;yhPC5ziRK* TpkVWTmڳk^^ڑ@.8n\sֵ{o^b˳d'N 0`kb|VLuĵ/C8uȣI6}ujM/{UdŜ] w`ɏXo;&Sw윰:ccO {[iW^}}zٷ~|uVc3:tͤ% - CÍ@1> M<U)E E. [uܑ=}C΢$\Ih<Ǟ.&ܒ.{B0G#sCs|8ND،q;3A|?9P{2ѭRʳ J<4HCTӬ(%N;RM=4L#k ? TuVb4:T=XTEd?8tM,^ÊHMW[(ooLL \%ۿ$J"+!UJB7Vd!>gUe)P.`Kn\㌅`˨]N՘]H:ACxXw2 ݗ>eXfB>i"%S9;^$ J> #O.Q6H~9{G0䑧!; Xo &b!?"dHz8H,;kU_u38\{d7b@ >sGquہ1?ћuDRoWէ=p 鿤#v>&rB&Ew>~wH-z_~70TmN Liʀ2~bqyө͐(`E;NJwfEЃfUC}\DoY*T}|F?8RiUk!7x(p$II-1]^ں !`&0 A B׾>c%[Y^f9Y~hI[ZӞUjYZ׾li[[ny[p[\Ur\>ѕt[]^v]~x[^wBsOIR4J D 樗Z_b%e"m z%`i>!c֒`ˤ% Q%tIi]SjɅAE10J3`H*UrnH)ߙK^+1n16;ro<S=ד==>S>>>?S???@T@@ @ATAAAB#TB'B+B/C3TC7C;C?DCTDGDKDOEE .E5&]bJēRF˶̳b,pE1b%:ElêsЂ%):td@e743(|4@JC +$<') @ WHJL,F*"M4Jt(0$2X(NҿNS oIos;P}Z $X %p 7'0 $0  pW#r%s) a$WrJ,8Cs{7>@y4!w 50W9Bp rd"l$P7u%`v vMfW vs>vw}` xy~?F`#rW1 ` Ir p|-r`t/bnSWuMb}Mb !0`(VdX#f 7 r~ x7"Drw(?X-zX+$o#@ ?H |_bY|I}7b7um#`A-BAXm%Bp!<@"nf>pw+zXr *X++*8 Y{ , z7?9+"Fِbb:X@$9r7xGyE"h97+1#@y t;"j )b8%0oU8&Py"!$ ny،Ay\yo F +29%xwWkY@yE+&7$ r!?YX;+Wy8+X59r5*14w ` "X"4#rt9Ϸ%5B$@tRW$`|: xzYp:%81wsx`_Z#3(WZ% ړ;ysUzg%zkZ9Ÿ@ `t!~zzz#FXx#Z'|a!%pa'b~' IxlZ+xﲱ®ؓ ڣcڳb3K&+s8 :;**zAb盕9[+W['5:pXo'BjY"d`Y`%٪Ss۹#)ۅ<>9uݚxSO ۯ[Q{ 6yHؗ۶ A{ǣ{+Y wʕ8r{wV&[+* q'B)B< m^97'y-S؅k7voWK}ſoۺZ{8=zww14݀exqkԧ]W]] ܎|(|" [-bpY/૛ |"؍M"R `qw]۸#A ӓiѥOҷ'yqݺ;wܾ9:1سɟ9c3-}zV]|}\r<7@ jO?WK9f/ۂ~7 `K(@}@ ~#[Oz?_S$b?.`}i4~'_RV)d+>6.W 48$$",+<32:;$$.057 &&#### -++++ 3":7 7663378:: :'''$3! =?< <111<<<$B&I&Q(S)Y+b& E' J( K* S,![ >A-!a. j0"d1"l3#s5#|8&BKDCKKR[TRZYns ~ cjcekmsz E"R g b k k s r } |&j )z! DG!MQ"TX#[a$ci&ls'sz@ ?G FEEPOPOWVD DK!KV#V_#`ggss{zc%ck&km(mq%qs(s|%|{*{HHHWWWhhhvvv7$8&)|'(   !!!!",",""""&*"'#++.#- 1$2%#$,-$&- 1"5&&'(''((9*<+{yrnurc]jewrD8@0ODWO\TRG*+,-.0112ƀ**2-0*0&23 5688:H*\ȰÇ Hŋ3GCȓ(S\ɲ˗0cʜٲM4sܹ&΋y 1ѣH*]!Q>JJjp߬jqׯB۴ٳh:q۷pO\ܻx}9pP ѯÈSX7ʹ#Kyp2_˜3kly"B;{mqNxtO]~,v+ꘕθcvх'up66һ1ɔvvq'|6Cl1jaqя̭9 'pp_3D(b`54Fq=vdž&P.UYH6@$kWX!NTY?Pfa٨]L*@zx#y4T!2%>HCAqVVmi.V0U_™Fxy^#ygl~Г2[ى AY:*go:9QQc!AYdczF::RqF Ep-APS(lAMZ!cLq4 >">žPD @>@x"AZ o D/ 2D @D@k.C*p qlK ߪ묚NY31A(묵:P $֚֩,Dmj˭@Y";qFai9C<@ w@A}DEH u#

WWQ8+7 5Ax`M?AB`o;O7*Dc2?)`_X4%9}a<Y֐B5A! AɐRZ^Ox?THt8w,3Dmy1E&+1obH8WL) [yeI Bd&dd׼إqEa6 |"VE1!6XD@")McӜ p04!;Ch5 ą00Wò01)agIfcLk.{NjM_WJ]J;8˩tshgA2Uy@ ՃP!\=H!D.Ԟ#zEtlU(CwPR{Cm G%_w%T d%00RjTU&K2f1s$B A}F+-͜4,-iUXi(ϖE*d̒A0$".?*b:NP yP?"$@ AͭBJ! ^m=r̅,fIZRtJЃ~*]67Zej$PK⬵1lKK umAx?a"WE<mHЮ8-fXjVx&W TN //4|V!v'JἌM*C\[.wcwY `,WX8*zggz[F6*0z/ e'/uwnEV htr2@bKbX  A*PVQ#W1O5zFGD02?HVoiA0mJ;>'NWGQ5G[q'#2%}ygmSX}pG_PLYJ0|`Dȓ>=cPrBEQxd fp<'A97@!PS`]P=p6`H6Dpo;:{1'P$U'0F_X7U]nv-La` whN8QЉbPMΣ[)ziZ?s|ӗ|Qh_}FăLU[Ť5SAxMxv5#=9-Gx'hSa s P/05*Q^[be;9-K8Sfє+z˺;iQ6am+<K{țʻQA71ӛн'A!1{蛾[k۸.ѻ"˿"!ۿa[||xc^ѿܽ"p< "[!{\<)Al#\6|5l”:..ѹ8\F|+ҍJ;!Df%T|ŴۯqKLc!T12AMB j#f | xXp{Q,0ޱ[9|'a"k*.K b< 0 M"BlMP[ LPfLX,S˸;, [̫a̪μ!=`  $ZK` 0 ˽"\_ў\qK5ss 1 f( ]Af Q ư΃Brds-sJ&H@2RO*W YҼW$Vp 6}(-! "h  P1ʸ:d Ǚ ` 3*cS2+@DjQ=PW- C= tML3E}I- X1s:Z,Z37}jaBxuddEK Ѧ; P!#T1;بmǃ ^-ML| ` hP>=lj%CCC2;EoGDM,` :m íP`-2۽-MNԡ` ]ݜ֦Jg4gܸھقqx9S=[ V4]I #mY} ڿQ,b1Zp ƀ ZPֻ  aСI]ЗR e~i.wߍ!3^ޭΣE.^p⼐~C_W&R-U;^f6~ KMV@nbmzNKjcjSPcd H" 0n > ) qFjC>>ޡSn4NXT-n{cpFGm_)JpbN}>u~yz!1c `},褮nwqhF^c:>| n5F^ %1!q_T jQ9'sOp*orN2EKmJKn>^rK'/2)ꨀG_hiQ<-MANPj>#1vN#L9%k)#_~%_>͝:*479?;A/mBOPA臗a ӷ }+:"I~\6#Uo^O&iԢ@NfZ۞~OkQ1!=K`NWF ` 8Om 9S6휀 nyDz`[j<g8( aR*$B%LbŢE'9T#WP`QƉ)UdK1eΤYM9;&2dr&7cj DLŘB12 R )Kg4((#F3\ (/ZUA.q٤iST fk(cØ{0T 6m\r8/C)n ;ټ>UfkjUVqo{>;%cW(ZJS.|t./d'Hwŏ'_yቧggtϧ_}e?=|p@ 4Cp״@C9#pB +</pC;CCܩ'K4DSTqE2dEcqF{sqG{vqH"4]DrI&trJ*ʘrK.rH-[b 1K4TsMM3l 6Np|O~uAfv7z~Еx Ђ˧F%R.B(EeT0#Sr"r"(geq.01+C$#wЖ+.Ha%t(31H%B1$ cpa K YرxERpB a$faYPUL8wS 9-  +.Kd9M/D[7TDo!Ũ:Ƒ{0 )̗%)SFq #[k d M 5c爂=l>æ2-bHn: $p P36c0!\A%B\:T84ڄB-dhMBLh& . | <[1 p:Mrhb0k KBcXBD&| Ђ(T0 Ђ@QD)h ,S0b0SЀ8&=J [LK2L3h)^P ߚsYFf\F2Qm2ZF廀b( 0<D#3s(8Rb` \^1@ <+ CE~쭱ZL0 BVtpa̗d lc 4؄"Gh)c`I*GH 3Ȋ{dInHG @ "hXVHpM /.Pە^Hm̾)3hԏ|]0V4#̌{1{T | h8Ȱ~gPd~\ 1S 뭐cz&L䦙XM-DD⫀{Q æMJMٔ?c3;óxLHJZJ~}~3P LpW$ʉňΉL}Sd>勬:" ` h̐)7Z5@HFlJ ~6: N%O3꠩b P 5+ e#2MHƠY|Ec $2)QD[Tі2h(,ʱ||,MX-*Q:FLh&TpS0)\M6䂷 Ӧӈ@:` 茿Ј- LԌ(N ,[C@lG|S:&)Y?[ME񎕠~ɓ [Z-@aS^65la}[Faa-ŝZ b=b'N&>[!>\̽\}I]b,!Z)%-6q &❋.bѹF/"3b][ʍZ&96[#Z:.(yڟCvHd-d6V[Eٻ5Z+C~!3,XMqZX˳e\Oe^e`Xb>d^fTef~fhf~fjf噰flf/mvfg yc $P EgrNw3 m?vdS.|{@hXsWfPFh<}>eB@0^6]V^%\yk^^0h]oio(=h0^_U%%ie==0?i=i&i<^ ;@0fV<Ѓ`^` s_kޑQawi0$ExR`n 5>kn̑+υA%y]^RV贎!Eܿ6gƮ]̳l!ˉ_:lF&vb Nvcb2]`֦k6i7a&D~\~Inn#9hؚJnܝF7ն܎%~\^h"FNgfKNlJgo . q։/e7Xnzcp?MN>eqnNqqkYqqGpDqq"qqq P"7hhVW<&Nj(i+ro.Nꥎ.s3Wjfsj9o ss>_!s@?tBgA/tD/COtFEotHtJGGtLgKtN?ItPMuR/uTߐW(GuVuט9Zun4 g%iuFvV1>nm_o2ckgdvu?h.o`w|nwxCw~)xNxox~xN[gގڍax6Hr^m܎a矼5v~~`^.nak)wr+oFx H-;Xy0TmΦz !'{7{1_{Ej꧷{Ʀy6{{/^7OsvjWO` `eg|\ʯ|=s&}on_5xٯO]ii~Wwwۯ=a;`ggx~/ϽkO~7w?~>fdu'qgrx(h ƒ2T`C F8"Ŋ'jd1cǐ"G,i$ʔ*Wl#B2gҬisfsA&L?-j(ҤJ2m )ԨRj'ƫZr+ذbvJƧhײm-ܸrÚk.޼?/.l0Ċ3n1Ȓ'S Y/_q3ТG.msO˪Wn5زglӺw95‡/n8rø3?9o&n:ډ7ݦKn<o^/dk? /((k+7!M󍗎92 +v/b*x2 z4H 9zEdxN:qXJR"lb9Y]vbb^lU2w̘jK|)#2IX"bcyS! Ry JY~f8XJiSnJ2ɛMv > " eؔwRvlqJ6&[XV,zy J)앪b-)pY +cb"b\)-b" 3d %M+HzL,ZΒ|&N O8!äfe,g `C yFFIR){l;D Beǐb'Ȩ2$J;`y&t)׳vM2ɀ# {Ct36caÝᒖ:,q:Ȼnxc:Р (aH.e54 Z MG`nߖ'ƛ:ʙair̵w 1\],K?fFݗ )ƨivNy4Ձq^[5\n6ː2ȏy( 7?GPԦ(= z(ZB"BA `` AAA)JQ^ϓ׊Q*"H z_Ǘc|h0Ȧ/!Ap!L`bO$rT% H̲8 mӌ f~6(6d&XoSٞunyLߖ$# ɔIT_ .yQygG,)EIhQ⨜ƫ&-)J@ FhJ%4rq̑ե-1M(缠hR- R0P$S%+ɖYa~^^&@&BdrVbrμ(Qֱ6 G&Wk$je[Te !ZEµ#9lb@~C<EaId\dXXӚ#N9ʑ19T뛩cO-G0'C4*ͯ/ŅFʊrkoqe:>w0.L:9BrޝJs P4u`帊XQR-鈌Pwx%FQUUqUF+0zlm;,ʶmG cYYm$~GbbX-Dpg>b&JT@N=}-?pvqrn;ņva^<  ,Ό/휊:TF../m);3^k,.L`4R.24NІ{-W7FR[^T_j&Wqc Uʹg[,bPđ\,Zé'Oɑ)z w6ش fu^s싯YkT8kӼg>ڶW /zBsfZ.+m:ʱP_i[:WPTT DNIɺlGHי MR*ەȺ\L)Б%2B(xO`%&H/}u(@+T L)F"AILF˩XUdZa]<ݪ%_0y -_Hx`8^﹚@uDU"X!ɡ3Z5QPr0 ,N0"8"g`ƀƶ D  ZXVEiքͺ Ndu KQ^s R(ȗ(86c)MD#R() 5W]$fў7!Bȝ7@7m_UJd!\=7iBУoA#7%_%[ ˴Bn]"FǘCň@CVolbGȀ) )"!p`@W8:bu، b~9#R6cQ&,UcLNcC0?VUcDLvWn;%LEhe22 pD[ TaF^^ tt]Kp`iцz 3&%eVE$:1DUT|?B: [Eg.g# IxʷIGy`f`,&PXo&_Dj](2CD(V^(fn(v~(((((,pThVAAdp&ID2D4M\@h@C@)Cp@|ih)QT)zh6AMĩ^iH\6D)Mh@CiHA)hCiDHjVD\CiMj^dvjIL~΄BjC.z:)S**z,DLfA H İH/**^**2- VJznjr.FiADRD(ljon~kH .n*\m٪jELn^/ӆmon0k:햁oEh@ .nnji/V**@V>*.+@Wӭn,B.ҖpqDDpqlpw0KLn>o,- kD1;° oC/kЖIlqjnq*q.H@1gA*Nmڱ1q1'wHovo(/(F-ўo ?nk*Ɩ2KhrF~D,IdO.󲑊i)/kjЖA$#/o'38D/{VN.ApH;s+V8'@)@⯢~).D.AB$Ni,7#f*@h>k/A68CdzJS9.F3MqAkKk0CtsF@/A> -krk@l/pTq*rCnoun$ u5\4t&jM5MWIW=G~'S>w'+~>Wȧ~Ƌ~~{~C>twA(G +T@ndHk 8ts'zP>s8:?ϻD1<1f 0d UTBzV]}XeUK 0mdL7? J4+$G#7b"ٵ (ЉhtO麑 2 cpN!>ǐO_Y|% ZUV*uY^}j.$vM F7ؔ 8EjkF㔔:I܉40tmICKCmKp a= ބa8( ꚉ׍g|𧬃Ҷb$\cU` sU 0`=&u~垛nPPJ+Y_1 ݖM"5>t 5ذi&63&ĘJB)ރWfO!D歛mv닕fj 3dbє4YMk^6Mo~8YNsT:NwO@ ZP.ʠ Vnƪ82Cb"@Q7%ڟ>E~F$NAUZt"W-jcS*u]ͪVZViUS˵q\ZWv)Vz & 9+_JX4,`ׁp!Y;٧Xv0maC 6+lh5 ժh+ Y}lFFٖV1 hr[Fv#i-Zj巵q?+[(+mn1{:$ pK\J{-rgb$Qna7f쭏w -sn[I V_xS:w9 !ު; 5*OxJ_y|JԩիLmXI K6nj1K(jT 6:+(j&7:oI-^/\VO"R62H\g;yg?Ё ]hCщVhG?ґ)]iK_ә9iOԡI]jSթ5UjWֱV4e]k[׹24B]lcVlg?v6̫Hmofd^Vnwvyyo{LA]p Wm( )^q_I=f1q!9\L`)WYrx 疬i^sĎgsAwsIWnr/QԿtbYֹ_].veWٞ 3m3u/5} 2W2)29ޏ&39y^WMKԯ{uzf:{>ϥ_|\$|'wqz*A~}YJ?ޏw}|~f+we'[  KLP'0p(3>O"P?P-KEHWPpcP\P`Poh0l{txЍPP 0 vT pp pPP PȐ ۰p PNP` NsOin '%3P?18@,u[_bkoX w{JԂQQQQQǑQבQQpD_L ^ 2VD!_BR"#K&# *#?Rʞ- A!%1 %[!_&P& &-&o2!sv'q (2 Ur%-()(}2*))RRR+֫$M(;, 60R!#.22K,.2˴/" 0S܌001112#S2'2+2/33S373;3?4CS4G4K4O5SS5W5[5_6cS6g6k6o7sS7w7{r7w"4& lJR899J1L3, +Ǫʼ; .`,J&s99-RSv ÓB#lӿ<@ @٪;T8AC:-`"Cm$A1,,DM*4*2*/5TDWCj)8rNͷȋVRGMkt!cTFϋF-f*tArrCY1JTKHGH[m^:KujAHL]?*ūI˔MQ-A?TN<->%M"NMtΔ Ub=l'?ܴQ; U9L/Y SOQ3(e,<Ue:#cU81=53S8>8VsUWwW{WXUXXXYUYYYZUZZOsN[tQ[[h \Ǖ\UNQ].M5 r]UR^ub_Uq,`[A_ Vaɏ*Abj^Vb1`B-F@?0B &Vdq5?0,FށCBvdk#P6eBcAedvfmB@iCf}iUQb g>" 8$tvgWbaKb,Qh`R`~+Ri6j p@dnpSi&.` #. `kVm$8NBBmʊVoVn9@!of@vog7om7@vhb (wr-" $sOȁsvtO"ֶ"u'blAl @mw_wq7!p׷ww}vxu7vuXfC`v=&4@ r= N{$L t{OA6x$F9v"AVa|@mBV}B}ap}~+׆7!f׈W ~qbwpC`fV8#yBvv*R`xXwe6pn8!ˀ7bE@|cy\Xf$*؂Iȡ{UeaC"Wma"Ye5YmMثJ6A޶uv{x\~u7!}WwvS ŸvypeWw@f}7vo8vWw9}ٗنVf]Wik7yA  a+ @"8$$@$8$8&"Z@{97 AA^[ٕax 9m9]~ɹe6X㚟ivqx:no `LNW& "8 ~sY$YO $sEgVz|_XF&{Gyؤ ϨSږy:!Wdɘ{i y WzgٴI~xvqvwxq@Hvy" z+@C7٬'y%ZGe"Z@x|ڃk9b[7[Tڌ˱[ E۱ ve7;oq׻dنͻy |Ϲ䀍p'[!N;!H*g)r;z:{;%>ڒK{=R\'ګl߁ۯI:[(0v8ؿmvuE wȕeډS{V9v{eyErv[}[4޼ 2W;:$L@`G<?"6@ hq׶e@m\!}hy ܰ8ȝꥋ\Dž $*ګ=zq1v&]3ѱ[jco6bVI:m۾x[mZ훵yCK飾GiWϞwv#{̯}kz!'{k~'c \?ֱݓ$ׯF@+kE,Jl#f!ItjBg=,6EK;Od1eY_,z`6ɹk_+0te} d g3m%(B[uL/ !$,7 ,&*=Gn ""!"##$$&%''((8'9)?1~|{rovttre_b[njjegbhcqnG9B5F9H;@1LAVL]UYQRGTJPDK@@pHHlbE:NL+&z[ .e5\ "E"iG"N.  4""+4prs.4(*44)340ss,42/1-4/%&!! !##"41.$Ʌ !'2/z 1(,pZsvp! ,7 $!.2NQ[bhp u }  !!!""!#$#%$%&''(8'@pH HlE:NLk(np+.6j6x|x5 A)@^ ^ ^ ^ ^Z V Rrrq^A!,7 8';,?0~~usd_qnF8H;YQQGSIjؕw8IAJnL]n 0&, 2yT1dxY˳9@8 pb&@lE9VE!,7 ",6PZ p!~"#''((8'T $d(h {£<Ӭ: H#Ҩ8 J+֩vj`@7G> ۻ~b:!! ,70 ,$#,2=""'(+,.013689< 7 > =? >AELPZbkpx A!M"R r ~ }%d &l (u!*|! AD FI!HL!MQ"QU"TY#X^#[a$`f%ek&hn&ls'pw'rz(u}(x)|  !!!",","-#!!##.#1$1%2%#$$%%''((8'*++,,-..0001123¾ƅ˟Τ 14 σʜޏ3``R騞 ԎDxWM ^G&LILwHđ$J% jc"i&4Yŋ""ͰbC VhYÊ\d )^HH' T|*EN/TR Z+B+l~P]xrB+6K,0((P, "(B숔 #xy$+2gnBWWġP@sfr%V p`  f.NcJ (OQʁISX gFf"o*8 Ÿn+r1 W R %r!(rPK Cy`pA8x| `Z8W  &ņiA`eH$5r %A"E"BCP\EHYhc:v RSiAb[  j6Ȕf ߗ =2vf!N yc?2522߀\)҂8V堓% ଳ ]ȧ@a %RHJ4Hx@`': >Q4(`o i L#ĚB c"} PȭǁO4a(^A(<֛jOFHKȒ`T1H<+9 ,qQ2sCd sP`&52`a2/\#Z6Z4Wx΃(0f4t(`@ wsA&p :=B`LPcƃ 8vi܈NQ"􆬳 H# <`&L! L0;q@A"ʇln nMPp,'[9JoWilJ# ~K / 4( /AƮ_&E'Z1B =,aQ04 cHC̰8 sc찇@HX H$ PHCLXXZo\:l0>C"@ hFXxc-FSыXG_cKB"!T,OX`      $* ! $- *285 3 ; = %+!+ #++93;22:< D B I J TT [ [BL @ACKLR ] TRYY b g lmpsyd k ddkls z ysvz k t } {              ! !!"!"""#   ## !$$"%%(&'((8'H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧ#?|JիX)FSi A~fKR&85aA=4(Hoq#va5z1T*^OMFv j Q gНۆ ͎a̺zF'm\ĝQ8Ais4~ = P;abORqM zk@@a!PW$BK:/,#h> ro220d4WɈ9 :sY1Lo$a;sTREeCX2)k:&-Bx ;L:Ȥz5A+6 0 ŸvPdQ0L[PȪxKE+y@= 1_a @N9 1e`7 ˘p֦@>Yt%-I|zi-pdkܠ-FP@V Ɲ4kN 5NԢ#i `nAK*$)/gG{"_";MYԽ𕯀Lxe6x.A .{ GL yockX 'gL87q{L E1|";qLb''Fn'gl%wra;eV58 : `gy|v3a;4Ј =b8g]s+˙ϟ g1 F'-j,cʎ5jFY{v5Z-]bV3y5=}kҦ#^{gN؀uw kdתvMj9~65wa,+ܝ58PQj?܁7~Kyٕ-[*u`Rp}nos o-mON[99(KD;(Q$E)Ϭv]̙BJń& NrSK[1O 5Eo=)g93#3 13/#s1&0bF 3D7 8D0m! 11oxh/E0NgBPT(22|7Q{WQ& ED}t9{NBvc8Bd18~I x#TбExch@6l0Q(0H'GQmg,4jT8xs5t8ĵ/DXk#}>==Us[W*K @ȉddzɓ H0,Bs:&:3CJŇW4r*SK؁($05@7H3~#J&xeиOE8px@'T@XBA=B.4h!O qӄdH9xG02TIdhx;Gm3GZ҈)r&ww`fY$[DF^FiT*wHgG혒DË `/${UȄ3 xXN8t"'lPҗuH9TMtр1iK6܈uVbKKg9ˤML9~ǔLmM*ٖbE~`Q8CUV"VWVaXe;dzuTE7yK 2UUz.)&3XSUE>@CUTGeUnDZ\a[0W)Dƅ&sZu4u \9 Bca_)ؙmIaY*v5by虞깞ٞ9Yy֟JlxAT `Npk !F fҦw_ѡZ(qjЛ1%za&tOaI3n$~ 1B棃-5^p^@U7`B p= H] F_xsoc*|HL!A$XSF4U@ l&xڧ~d1@NCb0`]@dvp꧆Zg" {hzʧZECP@D&Nt!JD-af`SX-V!2SQxx9oz*Zd\PNjAdV0֬JjeM0M ?એ*@fG5Gღ A am q&=[ +ubffDfefdp8}?fDf(K+hK0adAdE[g{-c/&h۳;ke8e?dL̶DPR d=[G˲9dT;@t1"'e$zq:;j;$1xPxkW;(JPi$H$i#ly+||˷g[d6*h["czw@t@dUEKdL^+.c dK{pY d ${p˹;i 3 d5k dkzQL06ϻ+DdPdE6{KDvN@f7O+K{{@D z^@[{0:zK`e l@uv>{ٻ?&Kdt [d+!c l 1pqLh07)r'Ē)H}>{ם~R|S!ϗ,r2T+*>+Z\;;d6Bcp!Pv|ucc%[P:x0u~0ar`ǁ\` U0~r  ǃ BȮx|c0wȑ\ȨӅI?{9dkvK tܯ<+P>u\A`Y%Mu\E:>NuLCנ=W>W^c\˦mǼ ^a~Y?^̎ _>x=|$=)0/bW~vL]nǂ~Hрw>y@0x\v< ΀0<ެWn~w^Ǭ^ɉnMcLul y{\^-9vA^Ҫ>s!%ip)1<4Qw [;2N:^=1~C|DzѠ-Z^x|}^pr_v=u,FN ξ m^oOoyx *ǜkw|~)m&?=_s`uw/뉾Xeoi?k>mp/xn@w< h_r+R;BQ#鈋)t(/)،.$u75++?>P`#yL}P/PQ栽% ӎo_ɿU.yȯ$?vLNL|0=OĞ/.O 2(KA)l1Bd A+R$gaÇ-b#&l@"4916ZfC+ b 9p" t W8 BpCA!m3ڵ~-ܶoPd&+75L%LM׺w)ɚfК()\yPyg0`Deamgȁ@ {xS6m9/!fLk;j5ğA#`(C8X3pJA>@4c8Ѓ+*B 6 )5`-̬v=P20IAh AHc< C 4\ > A |j0Dêc?#:$ +FD>.9CشO#0#AK+b} sJIA!ctct5`K$KXc ڞ"j, zK3WX:iUXeoxo"b>p5A|%S rI*Ơ]"1[- ߐ!B @ =_u{]XQK=5H69+8Ml`&H+'c4jn-D3+)A#ˌC#;K .ˎ#RI$ @@0Ș|<$H[$Hg C]l5ȇac*h֧n>lhIb37#wd9<<o|{;\u>Tg/&\dks@޲Ȁ&HG]9 = +MҝB0[VHeP,56& +##&0g@ &W"BYF @qB-@"oBE/ZQVj4 q6*I hLjlQ@^D#D39uhŜ@YNȷH*K| ?fW yDT,BB zRRdPI\9C ,Jìd`>b&s=Tf3hLd:"ДfL@[y^ Mp~S9L&b7@Qe;˲ p'j)u*, OT%hAINbN,YnЇ:WuSف`(p#=hub`U JRT3MZ0)6CsnSe'IzTŤiSTFUS@fUIjW}ԪUc%kY*֫jU^ek[ ֳUsk]j5n[zWV%l>WBU]kaXFvb-{JVlgJٵ^VͬgM{ZԦ6h]ҪV-jY6mo}%ny \&WTnbw {]45tBWxw]VźPuћ]}Wg[ז5o' {`&~/{uZ`~>g}a w%qD,`&!F0}ӛW8u fnX1!ls q=\b$VqDt| x1v Qn޻cfYFvAl UdX[o|\9ٙt#>y|!"_.9Ɉŭ 8x62Tkh@VWȒ>}y@73~VtBڎ1QԳQ[UZ׻o\Zެ=`[}d3[>hS[ۖls[㎩WfT!,DTRQXVUZXW\ZX`][c`_ebaifejhfmkipnlrpnurqxut{xv}zx }  "*470 t5qGΜ?ӐZ9#T$`@  @FNA 2:xB 9(`ZGX1@@!J IH+BHV&Qq)CM,`@(Aa@@# IY Of^n7MPЋa܆S{.{4^e><<@ ?A AL K@@POQPPOWVRR[[E EM MR!Rbblliipptt||b#bk%kv&v|&|' * *!!,#-%-0&**0,-22.23486878:  )7>>)QQL;EKE69===JJ;“ć,7̥!PJ֚%M ԠH Xn\R5heGzQ:d^~;*4h*h$#FnG4`B#J99BPN(Mh$ȋK ,Rl\c|%"T!MXi0XHX0AG7ojW%%' =P> B2&t`  x{eݻAB% "νBG!+V\E$ $bmHbHVD*TmƧ! Zb\1&s#.HcP_vvD2"&s%I=PЏ&AW),I`uAQDz  <C[J$`lF"BJ`@]&tY&-W!&G aU_˼ IPQ̅#$Y]$ ‚y@=KPDYPDK칄ezrPp"(:QQ "$,g͙o5D 4D2D^@HR֜j“Q t+Z," ]@Hf5X 0j^0@'lc XUB2{&&s1$^%sp TyBf%qn^nծ%Ewn2&Em^ RLH@Bmv!`l"4@`rĖ49nlBéJ@G4"bP>@,, :p :D;A-!b1"k5#z G WK GTW j | e fv x E"R i {&j )z! DG!MQ"TX#[a$ci&ls'sz@ ?G FEEPOQPPOWWH!HV#V_#``_hhssg&gx(xTRQ`^[c`_jgfpnlrpnxut7%)| }'     #*+ !,","%$.#- 1$2%6I?Q  $!%- 8'?1"5&"%'09*<+(@urwr@0*+,-.011  "*476B9IAMF^VaY`Xg`**2-0*0&2!57:~ߜ 9&-B՝ϖИ H*\ȰÇ#JHņ؉ ܻ|CIɓ(S\ɲ˗0cʜIMDB(n8rMLӧPJ%Ϝ.Ztǐi͚MCuqrȐ3Էpg㴩.N<}"U*o(vQ=7_YQZs2/.zgἏ v̹pպEV-\҃,4iќA^3}c&O 7J0eZiJNiᆽI& 9$h"U>ANP4O~ {bJ/xT>iN{*5?]Mw  ViLr bB8#Τ8fl!fs囝J,tBNt H6O@7N@ ?S@%>PDACnC62@"7r@@=BqͣL|u'D8QN{5S(w92'7PL6PO* JڄCr361E;ti?ϐBγqӄ6pwM?8]?LAX?pӏh,jFTXjwS,E?4 q^91 єhKGB1wh E{ 0 Č2Ir#\2ɯve?ÎXӄz;>L#w;/*znpXРܔoQۄO MN>{{3@s"i뇺@(߀ ;Y X.H iO7^λ%,v0FGZujZ!?.@LD2".wCW?٣ch?%M@@ѳk$\Sx; C -vbX6vb$Ó2c*ѐu9M d?G]G=걏΋9@v@hJ2pܣ@0 m{f9Qd~Lr{һX2=[>>߼&83zOYnҖ /!bB3q4M0 jDLe6|v'@lp6) $>/yC`NԺ#3"q,Z1%kpRlJ'SBAjSHYv>8R*rDP" F\5|\.jը*&|B Td .Bǃ$F!n3CkhgpeínY;m琉/@GmՄ (KЉ\ׯGHzc%CT25*n0EG{9W7 hJs$d5lhF7}(oဩp]8 C&+Ơ\ /d qhAm CryWCS\`[ :he㈃ZЖ%#8's*,fU"PeC6hhDuQ/xγᒑrB)GQ N4!u`!x'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^ MbNf;ЎMj[ζn{MrSNvMznwobNW7'N[8{ E/@N(OW򖻼~gnd8Ϲw@ nHOҗ;EԧN'}3*X]Mo ހӀ pF@' ('v˝v{sWc pl* PH}0 |9/o/C?zzþo O|ÛY/8>{*|F \ zCgSτeW>gw`?O}ˇO?Gwfnn(0xW g}.uXGzXyXvX'ylygP~F$zG#@ n z7nw~#0ƴ]WF}W-֝oȔk/2|Ѐn9nuyoabo_n)f?ܹ4FRV^pOv|2-\KqÿLr9^΃gn3w`@p阎׍o'82g 76wtRr蘡 ~&3N<.7>2w TŽql^r3ٮ~p[uӾrO*jrJl&7mp\.o7oWsPn/tƖoܶq&p^f?no poot"/F*SWlqv/sF7:fB?D}'q0q8/t@ 0o@_T_V4I#_!-o(b?d_flnOjr_Nn|@hl{rx kxp:o쎟i7WLZW֚s3 L*WZJlHstp s GF_ v0Cp?s4 *p?qLۓ~h+yxOv$I*\pA .dC%NXE5nGgАEA.P0Xƞ=.$ 6Aqpƞb*h@JC.`p 3ZD1)Ւ0a Тg͜;ɺ)yh:R`j=A> cȑ VrKQ(pKKJDiƧ^Q`i؇/Ϧ]m=~مĸ:uvsoM:tθ{n`)`#&44@q ذ!%tқX (3'n\85Z̓Z0뜺N;"pB,l$ː#kjD^c V3ML44ܛpFkѶj쎰\@ ~C頜85S]<M!+(Ͻ$) %% [}hn+?K#~Y=Na!1=_ԉ#QɈkfr8UQ"jd'Y6(7)1!HNQ&$e-myK\>䊹dxK`Sü.9?_Sdf3iLg*N*f5yMl f7Mp*s$g9yNtRmdg;Nx>FɈg=yO|jg?OVs%hA z  ehCJ#>ThE1Ql&)ԴhG=Qnb1jGAzRPRlRTd5Sn+;%TM#.!0Z*'TƧycR{SuR/i0 R*YՍX$m4)Xa͔լkmX96UrukF:W5uHTU)_/.ѼeB XFle- S^V@g=φ͈X;KZ^SemkS;=fkm{b$ki[^Vp 6ru+[]"nuk9\eB{FEtːyfe/'^W!ٍz]!|!Jv&~f0w4ە}[a.}az&1)XȊh2V{c x"A&268bcI6U!q;< W.rE dٸlF6؅)Ow#Tz7R  /7˸MqUe?X|Le5KMiAp;x1tv;3>0i#sR %&JK!bJ;iO|b$CepeboXfpa h$D=&qJN9wq߁Ai;x'N7 w!=Y@ s0}kPNBe:1}yq$hO'nQ`2$q>qmCjC<0nvԆ@A*QJuR 8VrlqƸ%CP`xJ~x i rt@ȷT:F|{D c P:iH )d/rqMMz^}UV#Ⰳ$GyNަwO.On,x9W^(4+it[ {kG{~ /3lmd{*!'6s~285:!wtȷqc7<@Hk ӷ >lɾ,*b=r/){s6V?,<㣃v@`Yi 6ak,%+̲t`9Sj;H>7Gʡ\ H/,0@C1 @^k%CwB PVz4@ KP9‡qȂ :Y#Dk:Yc:A!̨Vt%DYL'A;BB 86I|S7Yc9/P>Eq4Z WB 8o {9 0t [\G . ~GDr̹䈃HgjHkHȘH I(C(I<ɑLI$lICXI_frII4+4ɜɽ `ɒJt|I^JãʰJ`ZʦLHޠ2ʩ| 9E܃96k#)T"FB+ޑ5MX L3[Rр29s"P e&&P4IB }ILK$R=`"޸yGѿ[I$!ؠ 83L>a'&"  4pR9*J@` ?" lQ͒FRpɆ~XD(D~ dHUQXzPX,c\ TqJU9SC_F- 1 (4DWQ;yH*~ w ~ MU 7΂""E4T\M0 6D,E ױ9lS¨d|{o( (o(UaGW`C3Fj= hHؒpub5_,W蠸 }!8ՏGjRz!}K1*uu `-Ȟi?S: 3XzZQA(j(k!4s%$a&+(=6aeUR^eW.(}eY~Te[ΥZe]\e_^ea`fcb>feNd^fgޙf~fdih&af afp u&0mրs )f*fAg1^%Xg8g 5fc7a"H2 @.#gzaOh'=3>i9.⪡hi.ji"%JQi^ŸV"Y2k^kN~kkkk6Xkfk.lkN^lƞk~췎l^k^fsfnr춒.&o&HunwV Vgxghާ6ގ~N>nnlfninvfnen6fnaneo].oeNoYk~o߆oF^oeOodoLj  -sZ"'3 7ζV > c qC9mNY;h rԣqbV,3jo='fgwmi#Nq&fpg)zb+>)q Gr6gu菚r"5nc*(/vsvp*noda@$pKgdLtDtN_bOt uQ`R/u>uMVVouWuXuYuZu[u\u]u^u_u`vavb/v`_dHve_vfovgvhvid cvlvmvnvovpvdvr/ws?ep_wvowwwxwyqGw{w|Wyw~wwgzw/xiOx_xoxxxG}CpV/xVBy^_<#H%H͚x7b WwC7pBk/_owyv7u^pm^"-xb_05n5xl5_{bɤ\oxouC/?{7>Zo]{\z#(omf(V笟eygvb`'}G}ca zso}Wv#}ݿm`'{b8u7bWo`{uv~77ȞWCP_7X L3Ƽ,;} ϲD-$*.M rF_3QXBy6JM{l e,!l7GGr4x|z-} ISD&1 2\[&?QewjJS y$ I LreHa2˸bEdaf|HdJF$yXӫ޿SZ{ !2kPQ\_*P%k^M6| 3[{`D5U($gȺe9٨MkU;ZS- d 1Xp;1ZۻV2FmkCܠk[ϼYW.@X>f`C"z]&;-.(r^dTVh\ Uh .j-4v7g?1?͗=c{Sa=FeAkӆ0L8?5 2BŚdi0-0 o}ﴊUdJqA\&ݠ1H6b%dMř>f,1Q:sd%;-9[}|p*7荸"K照3[nW^?|ϲ^gPWomuA4k gzQFMY1V7+ʘ@&Y¼O*GDx^ȡM6G3ژ@76 l^1ư~enH)Awp"?F! qݺ$^% vVjh&2~]ig X $ س,sdgxK~ՙB/zv)Ŧ(.ZzW:%[{%=zsDCԊ|yx~ת8)3J/}$Nl c˻>5&?1I1=ǎ`4_+5Bӿު\g?RDaD}} v#!NؽuT``n Jeш Wr EeqB ԉ詖  `R `OX 7%L 7 &.D:!FN!V^!fn!v~!!!!!ơ!֡!!!  "!!@, ,@,!*"#:# %^"&! Ѐ 4!nb'~"G( @q( A"A4 " b- @&"/bn" )%G1" 0f.A@%G @cA4#*6F-.AA/#9cIM2z#AXp#0cF3rcp=.@5ڢjcA9AdHL,Ҁ%l&/$Qf2>F&Be#_ B^&)Zo6m$K"gFZkboNk&5ʣsbH Q`2b.6@p>'K#?@Jgtm.q2l'|N bz'U"'rn~ekp"qC'bQksdgGx7 cF2(vf&GJ(E($a&xc="|~b&gq2h|(NRg.ezb.:胢D4Bgbp>'ci"fH):Z'~'#U"i2#NNd2@5΢.&brN#6jQ()x>*k$aʥyVbqy)0'H6z0&; *5 nDp"'S"*V"*J?)f"[}bĩD02e橧$%0NcR䪂-Snqj~2aΩCz(wri(R:Z*gV")bZbe~'BT)^_ D:h~+BgpN%-RDk,B0bweF© tj"z("f+@Pi^^.JeIRj6jAtlp<%f],qg jD~F,gDR#g .)&"VȞ,nnj bNkY$fG\Ap#_zViMcbfmoR۾J,,miQ(m&ݥ--W*m*..6.6JN.V^.fn.v~.膮.閮.ꦮ.붮.Ʈ.֮...//&/ -6>/FN/V^/fno~/z///@y:/oJo00+:0&/0o?pG0o/x*0 0 0 0 0 װ 0 0 q ˰'q7 L1W_1go1w1111wϞ.ı1q11  2!!2"'"/2#7#?2$G$-1qбFԱ&kr%qFl+)!)[(A+22&&,2B)޲/20s0c012G2/.3c!3G4s.O5rF\633w3n38s83E3:7;s@6;<׳'3>Dz=:?[A3?3A@4B39';C2CGDSBOt8?4FØEo4Gr5w4@gH2HtGOIKHt&K34114ML>g2NrM<3P'3G L4/;|36DC03;xSD ;QAk~>ր?|k5$dD#53>b6AG»{z ^L,N;~;(L@tkdc\{A@kA@ ă ppBABHb5T,@q9rlcH#I4yeJ+YtfL3iִygN9{D*9~-H1}ű3DPVzkV[vlX~:z8ѢeZVbֵ{o^{ݻق&* B 42C#L#PIxo6(3͂P&l7.HL< 3LHJI$8sc;T4VtCGCs=)![!&2%3 % 6L5;υXcYEV?# QAg6pc6Z;-6?4Ak6_k_#1@d֍p<{ HBMEʒؔU>m"Gq@bdV#l Jv*R4k~AEbUEYש9|@WޛoU T(Y(5?/*~y<"OD\qþ\C7-:u Wu|<h d-{)k/y!RdHRg :{C@h< pt%MS QVTɒ."}"+w/$7d(m ͤAo&B)BS րQ,|i W8` CS?N|P[AX4PqJDM)*I! PŜUaV"A|=Ed_(V ӞW6 GmFE!ZLG[ƁB^t ēCDc#x4 i YLȵ8QddK>A0xJ diYKk ٟ< &t^'e D~L@h`>4DfӄNHYSDN@ | )eHZ:O>24RVJYL^Aj)d{Q.p6[>.!wX"m2UfT/A!_>p=|/2M=Wk/#Oꑣ=TZq,(O. n:nǟ#3ٚ6l/jÄ~*E"?҄l֗ckM[MVt5GdGuVX [ؐ( X>V5 [Y^3jΰY~mnPZtƴ=]TەGl"۪Ķ%YmAlܾ%owK$=Jۖ4emrc\ĴpnV܎P&݅nMFDnJ+]U/xK_$uIyK\ &|Ջ/y^E}0TlM=^V83UOas)voU┼ʜ.e\+lu x h5rD'R09= X!?9|]#AQ]ܢ.QUq򖁄1CͶ2PV.-V5UG):wʩU %I %3ס'RhλwRh(4a\9"rP)ФJSjSZY5E!Z–6y^lN. MN[h:6Glz`e4WQz;h- R_vܶwޢTOm#[=:8Lb+G4QW!wCs_q7Nx/DrоVFڴ&Y!DAYSx6MTu7 e{+Ώp$et*#oZ  aG*u Z˚VGxt𙋍ѓ9٦>J/\I2\OB*{s٫ >뉇ޚ/tݦ D[F5s'?\t, #,!iDi5;oI'_%Ǒ!SE?ul?Om&rS˳Z4M2Uk_~,e㩦=zCZȉDܜVHliym;ЇBs-EG$ )vɫe\Gc E&ϛJ[v{0ϊhSRo-WaC^"-hɧMJG 6g4ʤ> UzD\®`O( *"0#p 0 BtD&Y_P44:Q#Q'+/3Q7;*~aE+Nq'TQ'X);ԯ$bS IZ8 >m_/#Ăd o9 /%&.NFoX[g)'MB6&yK !Q1N=cˉ  rҺ{!q!r`""KKr#M#C$UKރ#K%[%_@Fą0mf3 ES2 L*QST+4ӺD54+R&4)2sf5{-c77M.S3R77I8S::O,%児fyfUXpTNsU|&ҘnE U,U&ET#sS:=1U+HJ@Cƀ+R x LPLK 4^_J+@ф@MLE ;*BߣAB25K*KkDѤDMCTD4F{DE3FSbT2DM EsBTA14B'TD4ԴZD.$-=T@C` rt+M+NIBM+H LUK;4LѴKTC-HWJTCT3O`GT2+۴:3US(R~шebEb-mM}djbNM O(c0ax}ҮV kI53D>K+N C^T)AKK@ 2LYZKK # HT+=ރZ/I ` U2C[UZ`5T5K\5 XI`]uM5]Xa.`CY^@ZZM_uaU^J[#Lu` Cu5RV24 @ l]uf9=k\$μ\ZLɴRY e  VIIy6cS\W}@w gպZ ] zлKIY\%=kvϫT)@ T4?vq_@)ab%ι2tg@J=lWK+A GJ}ye}s WYۑ]Ye\ӍdO= X۽cbY[=^} ]SWB^捀+ edi xС^pP`$ABѵ+S`׹r>GW)I~W]?=ya b_WûcK "Hce^-;^nY \m<6Q>sg%T݇}D5gU;X)c=ޣ탗-g8];枸~PDҶX ׵]Y#?Sob *ud Kn]'?34D]57@_:;\3{[|8I3a盋ַ`b0K@3L]k_:G\>-,!LJ  ^S`?$?$ ߟx8C].J80… 3h +Z1ƍ;z2$K<2ʕ,[,&A*^ڼȝ<YСD=4BYDdpP &"Jz kαd˪Tq͙ ̺}2l,0!7޽|V4"P;, ~;~<ɔ+[.9͜;{ :诗K>zլ[~ ;gԴk+;ݼ{I?<{tԫ[]hf>λ?ۻ>|ۿ??`*_ ` .8`NH!R^(\na a"mHbt&b#e.Hcň[6c$Y>IdMF.d^% eKNNIe EeJVne e fI^IfaYfjx&k mfgvj8'wgyFg'苅"h^(NJ)rYiv)~ jj7jj_jjފkdkz+K,EXl "b>k̂mNKڲ-~kjނKnf[n.Kċoo pLpp /p? qOLq_qoq r"Lr&r*r. s2Ls6ߌs:s> tBMtFtJ/tN? uROMuV_uZou^ vbMvfvjvn wrMwvߍwzw~ xNxH/θqYx䒗8)5ynygyb&z^nzYzTzP.{Mn{H{D{F&|E/Q?FOE__Bo}~O~柏~~Oߏ p,*p lJp/ jp?p$, Op,l _0s_ߤg yᡸcÇq%ZFR-p;ړ- k*!J6#c%idŃIqRC#dTD$_>,J( rI? ~!D*rl# HJr%/Ljr'? Pr,)OTrl+_ Xr-8zK.se19!s]3YM[ЬĄ_f腁 T\ eh6(20 LQ$qs¦2in*c ?iϡ3* @N%*hKu0 $CF0 S 4hC4T` )M9R%8M;U<'O; DY h@d4K@Ҝ,aDiJWZېfL}zԛ‰JHBBmLM򃺊$vi^EԎ MSw`Z5 hі5/KY֛AɰYZ$ះB*W;uM^7r[ДkWID 5i[$[Ypu6,g[2,Y2]JaZ^L/A;^1A_ec!?㪐]Sx6 {S=Ȅ@JvpB6a+kp/aN8 ->a'$\Sd B_X %,=IYXE;d)+Y& hMn$WNg{/s @2J`pO -Br: *^+\dtmb@T#ёszc|VDm3LW7+Q[H#҉'/MM`q " 2M6 V UhV͠KBp h{c`ۥwIb#,dk%0&^HP)Z* fOzcd/ftS=i% !A%…}ー8 >j1p zHdzM@}Ў(W?1J5Y#gًpxu% /Z XQeL~ ɲʯ1vnrex$:G;sesYKwn+zjpui 5 qpspN#x7]}+5$ɔy ɲd̾sN.֞yv{_3s;z>tQ/rgcHW7&xtg}1\z\fa 'iwW(T %o!Ɛ :^I$QRCcƓysvށ$NPȓ;q̟K~-:ؓYν;Ëews/zo <%߯('G;2 }, ʷ~b^hɄ\%!"!0 RBȢ{8t2֘#6xcfX :)!H&-dN.bTVVf4nɢ^)VbIJJf@p.hftxXru~7'~'KYnF*銇i+4`VbjiBa@F6髰襦٧-:WC뇈^- %EWqvm"4ϝg&i^'oJJ(o$u(_"q68\~/0%*";6qs5,q%2^&$ۢLNiB9 - 5x9#0' 6B҈$L; JM蕇\ ^`Smud;7vhwvlctk-Q#_sR8Sr% s+=|/k¯3;;#}Ox]v69މ\Z[ i1.|4p;S p'4.JKK>`B>ib "Fi_r) `7<-Hb7AN*J`':"IpҠ%B~t_FB Fpd{J8ݮThcѰr .PR=\A%FC5iH*h>cXM, dZcQY"Ә(.cn05q+kc7rEYxC5p"GCۦ$$ $RƸ1t$JBb2dy eR2kӘ'f9r&\*I_׎L䲙TfܢI<ؤ5tl7INls+'53΋u:v]@h/0O X_HZѯ>-ю 2)Ғ&M9QҖF.).Y*Ӛև6ͩ/`Ӟr> p*ԢFM,T mr8ܜ:g${Ug8͈3OrtH0qtWvd 瘘;4f3$y׿l1IO$e.˒n"KXAf?tzRx\"(D3ɋ[2]JKZZ'R[B=lAT UJTA.UzVI lv^ }њFі[Gۛ9xL,u[IJ R+̦Qg ;# aJ=ec`a>>qMVQm +b Gu01mU5n&3Ȧj#D6Y%;kW%L*[Xβ.{`L2hN2'pL:xγ߬>πM-ЈNFЎ'MJ'H4`i*_AH质GMj*/  VFE==. ց ܃#؋\TCA(M`$Ep$؀qF°\qYF7vUش# )[^Bf9rA]3A ֱ$( Ol>p6Z(ye\ny,<^y{`\8 v$!Gkptz۠:Ёk_ւm.+,hv aqO gDڿF|͸|N2mBy)_GPvϫ΅)Ԡ6v u%p|*\z r-[`.^h{'E؞{Ѓ*A|c{< z Utԏ@p_ؿr߹|$!6 p`A½.{U(l-VAps/x-s nߧLs@5pVLlB0xteG~]GeXVkpfWq. UvPp )p<,jcq&N.618EX;؃_(OCK8G}=)nBGe|Km:Ixf`(lTQnp(~e_zS>Upm{(x\5`Ey5@yWP wS!X ?lEl: B`5Z5u27z-f&xeWpkevc&{_pv3P5P '8Pu{tQ='QӅSmcSzK7e~舏*XeLJV*uzbǏ爐o萐zXixjfJp50\ )IE txW6^bvkhFqHPX9X v%{).qdz9IwD  pm.Ɠ$7e]`SySuVwV֕ꨂc`SZfz&^WKȕ{[lZ0"JgRrnQI3)W8i4x&s-_`Vp9Wl@P v{8w< ۩Py<6FI;:U l 'ngeIpsW|)8zeV{'nJo=uUPB2s:YTA0xZ] ijH84ЧUE@aL nI'uJjfd)%4 %Np1iaDj+iЩ)(_s 쵏Gz9ш#^e _`Op/?_u{G_䨿4p.췯LqP7~,SZr  NeDHZAio%l[ 5Sq$PZ%XR䡰1P5 (Cv q1 MgQ)(ˡ EP34ŷHF}]1D*x*pH:Yṿ1=# IHKL$#IH)򑆘#!ImhEC% YK hFCdֵֶmJy2nsvBt"8Җx~IL`d$2Fe2\t&4@iR󚣳&6 0mr&8.q2': 1KcPx/"- E)OJ1 *Rm蔈2.KSB=5&o-LUz|sRXKS?y]פbodg&8]ʽQ%׼mq'"Z>liS{>bkp)+ұ}RA'HT:[RM=WH$%' }*rWG˧0]5](w=<ӓ SwaGi֘4l)G)nziz{0^44B"{?9wfUCW@Rt\iaxvTk3\ a6Z(NW0gL8αw@11L"HN&3yNL*[X1.{`,2hNL6A jFL8xFpgAf @@:p Hvd&8Z8`rN T0LmPܠ7]R4"E&B]ib Lx`! n7[VBpQ8܆qLHXVA @ (H kgɚ@VlpYLsl삇zƆ;ó(p :~3=Ё@r)Dޞ6s4ctkMx@SPwbfЯ@L,w[q֋?^ؽW'vj JA~k*`FP]XnmhobV7Agw7vNpu'~'~~jj:~@@7@Rp7}Hr w HcbNhbF7x@4&74KH5 ؀@tGJ[y/،(4[3hXRX5VyZPZJ`xWusVxEpb{bTbƏGp{wb oɐxbg:i 9p*Wusv]GHm}Gwh~.vygFFP7~T@6EAqW+26h<&EGo57ODE)y-2oZOtZ@ej2&2 uUhsyZ45(5y@(Д2A'o'Vxbkwb)bمV׏89ə ybzHwV~GiY((5R0rr/rXQP; p7QR`;ljlIv 78cFIc 9Ȁ)*#K 0JPy)H4ZjjٗR9ٸUZVɄ(h5j @j`x阰VP'6ybi:)桡y)ciV(|k.bM})pRx(JH7PQ?09`RJ֊:/YWc<=Py86I闁i8 Js[34 8s :HY7 x:٦?9wuȣx((V-(i4Zq晚ّ ׈7T@Dj5`@ZlDʤ.9礠f%'KP@0;P6PZ&IWԊcc)gb9@p yȘ|Z0);IECitJ4U)t jZJZ:C$hjq@i&{b:VG* p7}V*pQplD*pI~L+Lk^W*i7R5SZҊB%GTݪ7fqq(d纔2 4"yɰ H v }j0J\y4Iw0J WȧM'\i˘*Řu{N{KtHnv|*wkX֢v:Ћ ɪVkFlgsLw{>FP7I5@[Rv+~`YrE`9X60.׊yAi+5HkE8scZ>@'X~jZV~I5H̰ʁkH$x*Kع J&̱ٶ&;x6wIsb+x6. 7j4{fxkg,)ĐPZ۴I`} Kj~ jM5P9DrK`As׿-fWz06jjKڟ`Iu* p\3ÌZ:|9(*U<ʤʑK藞+Ãp ,Lʂ kHm-桃lcbNcUҜb|,A M `l؋BKFrkjnxhiYek鉗pʈxIlMБ{ωЅ0Üm*rK,r6x(ejP ܬ*--&)ܰg\ LϺ 7Ӳ4ќi&e"mG+LEbӄ:=ֆ҂-׿4؎/ 3bؔ=O=ؙٕٜܲ٢]-أ}Rږڬ,ڰM,۴=+]۸%ۼ A `"B@$`$ P@ȭ}]ν]$`P?@ $@0] #0] ! OХ "P=~  ݦ=$pM* m4@m=.8n P9,^@>˰D~`H丠L!$,wM7      #+" $+ *294 3 ; ; $+!+""++83922:<""'(+,.013689<####++++663399 7 > =?< < >A D C I K XBL BBCKLR \ UYVYVRYZ iuc l ckcckls z vysvx A!M"R g b l k s s } {%d &l (u!*|! AD FI!HL!MQ"QU"TY#X^#[a$`f%ek&hn&ls'pw'rz(u}(xKKQQXXD DK!KS"SZ#Zd%dk&km(mr%rs(s|%|{*{)|              ! !!",","-#"""&*"'#++.#- - 1$1%2%  #$,- !$$- . 1"2#4%5%7(8)"%%(&'((,05%7(6%9*8';+7&5$8';*8'<,@0@0*++,,-..0001123ƀ++.2478:H*\ȰÇ#JHŋ3jȱǏˉIɓ(S\ɲ˗0clIf8sɳϟfIH*]ʴR4:RիXjJ*WTE~KٳڷpŪvĶvwe݌T+nl9M˘3llQ)EwT`O'DpDʚc˞3#ؐ-'.H}#7S7|Yհ2 2d]H!fEnB 7j8W 5*&M>Zaa#bK|ao6Kq=p` b ]5=E-Ɲ@r, nEZZnQETR\B}U8)ظ2POF9@`@Y2 2CGAer0H# 7ƉōEiH )VN$6M'6&gD~zmafwR7e͸cNxNz>T\I2 \6 䫇>0Yj -@mJ=񄨯v_Q]r䗦DA*@`cNA% ,D!q^{պw'RmYV(!)e< Z1l5A0f# ,F GƟ[[6dq%ʹ@"GD' ,+B]A J-]0I +BypD zkU&9_>[o|OE7RG/}Oohw?` xo)H"ш)<Dʯ?H X̢-N0^ x+hL# F=pc(:1G}$ؾ#" E:r6‘xd>Zsd"r6p$! b'7YGqT9UNä.H^jҌ$9LCS.X R*LL/H>B@2X1QEgfӋt؝'S3'?)Ђ6xuahP1tItB(EP;vq`@ vŢIR.]iLUZ^ N5=LB2Ĩ5uR:BՍC`WBzzJz2^= Xֶen\պs+^פh ,W'6xMb}:i,d'VfDͬxz݉UlXFVxee%FЂĒ5THAnDYe*7oTVhE[2ՠo[->ԐMܱ hD pElv)oWZ'8%)MJp,7| E`t~\;RĄ1!V+G"j*"0iGBz,fz)af8D"njT'WyPP3'I40fk)@=1No8$hM$uoCr9d"+?5H#FW}eV&rdYan3\D/j3&L7ֆvFq=5g0|iy> >JZ;CynK=QÙe.,)~՜va\ZOauk~Vcɨ럢6k U!-gk[6|vsŊfk9Xsv=?kF%e_o>ف{?§;y [\v)q wふ'{n \Srr׻|{_/2/&x m>׿v,ELb}}KӧqwS8ַpsg:Ǿ|1;מW?R;^[;n} oaކIsXC&6G*o{ƍwJew6mUF=ŝz%bӵz*[޸W$nvK;7psoVۡ7>1//IO}2B>xj9&'b1b6q #? O!#a,?WM>Y~d+}і湴~SOgEGEtUJ4P~Xg8F9G_s$O'}!D`&JvCxhwFGt0tD#}gaNd}6~}8uM^: HDcLHDXRVCwG}S|zZeDZQS%}khT45zgqR |EDG;u{D={i(Oyzoxa&Z8oڦkXy҉x|qwiXZ涊؃8Xx؋8XxȘʸZ8XxxΘ؍8x蘎긎؍؎8 P 9 qR I$H` 0 ސ ר @(`h 6_`"') ` @hF+KȔPٔ X X ΰU Cɋ.TyH I8`qwғ? lEy䐘ɒV`Iɔd 9 p   y ` +IH) qɋΐ") Ps)_g8Py2 ќaɌyBɏYPy橙Oٞ ) ˰ )p [yț i E阿1ש$Jѝ  9p 92:j 菵 gɢ@j㹋 P! # 9ĩ liHʋWy ސ +I L ð鞑Ynr GJ W İ}* oz ʤDz9h6*0} 0t=: ]yP_# ! A ]Jq ū aȪCGp:*JA) Cih3 Ai Y:xɣYIIK  ̀JlI` + )sm:&;w:++i zJ + @. hZ0i Z訶*ؕ $ZU5KI3tW;_( 1Tq7еtZ;_)Lۭe *_4ȴ=]ʯlj xIj jȸ+Ƞi 'ɸY9P_٧hڧ[zqZI;  kj ɧ@ ˔I0p  0Jp LYZ I볾ȸ"ΫЫt3 syc,t]5b ;`l~k [_y+{l3ez;e,_ ,j{8` @ ¤\Ƞy)B;T0Cʶ ečI A||C ;H< L Ѽ4k lW K t$F<#wKoLM+@bLy ]3Ы bJo` ˼ @ | pԮ栧 μ8JKh3]`;O+V,|#]K+Nۡqn ȁԉ<  \Ή ң91J·XҰɶɸڣۤ dzԍ9[L̍i s:AGۍ1 |IM?ĸ/ \ i1a?,-!\駧[_OAz/ƧI АύБP_)_/ˏ 0"//)i|OW$XA .dC%NXE5nG!E$YGF8ˑ)WYd5hlOōI-zb$8"I)( B-"$ZGpFYiծ847bQÑ.ۉne8A6u7(M~HuÆMY1]{2^̙5o͑(nF ̱4gA~85iO6z4Уq:ypl_Kثi ;`)Bc5T*/yCص?8 5HQ ߅ߧS A-ZM{!Y~h#pZ( b@<꣋.cλ4lܘnP@SqE) ^$h56J ðjl2jL¨hR$^ )j,K J )Ͱck$7F$q2 ̓rS?C!4P HH: .6&kQH#]4S<7s2$sjJ 41.Sӊ|0`%+BC( ԈT*UU$MRlӽFJ8zqTGTĆ v `"ϨWh7ѥRW\Y{e [h)X@6aC۸7MQvdtjb`\PhWvIL+6m!v(:w  o?(2&K,I6s}kmSWJDc# 읨JG":NS6,P#cD!) BAfM% Ic#} h%OQJJ|CX\Oʤ0ebƓ$6`q71,IqOW8]T+@uqpZge\QcY4uey#N5@$d!9FQHĨ $E`O!$HORd.x(,r$=+HxRfP/MSK`S*a&Sdf3LhFSӤf5yMlfSf7MpS$g9yNtSdg;NxSg=yO|dg?O&? z4!UhCЄb hEn<< <{@w@ȃ\<KrP##ܚ.Э-lж5790@.\y{x >r: xwp rsh{8`Ar<{`83ӹXB$a@Bi(770Bl@S?,BB]d: C:,C໇>HrCc>8$=x`? ??|K>;{@EܸpDdI†Ti†PEnVh:^FHE1$C5t0d =t>` {`޻聵$wxAL?r{ T.Æ-DjtZ-JԈ8` K0ñDHϼxhdCw9Bdˁ`u=A{Ԝ{:8Dzw7!Ćj-ixLR(ݺJʆj˼NEWdv\C`ؤZK;pX; ϣĔHH@qN A Hy4I p ?wOL`ЌD @OX]QI\Ԉ>HQQQQ R!R"-R#=R$MR%E4NZR'͌5Z#J|RػҒ҄QlI Ћ@XWRqIc@` T`@N,U$Ԉ<=Ll#xΓi`H8ԉL@82;M>e"QJOO)Gxjkkr.rNr(O:/o/_3j՝4s3s:s;s<׮=# u<tAtB/tC0r:t0E6Fr;GotSC'Is 0% t +89:zSt1tztss+9Y79vI/XC[O1P/uS[`O1X_^'vUGks]uu9_7S/Z/v$oKuarlukwvtG'uZvBOKMwE/0uwh.Zwxww\?qbX xOxGsO7y'77gZn&8ox_s1xw2ݚdl'紐l5GOq(g_/X3UYmz$ylr9cC&dy-3GGq#{?/zDO=%/:7{>sﮣ=~{זNX |#gy ز]zNj؇Վ5U,k\ʯ|>Vp ¯9ni7ST< X0KV+°jբ)[j& pbrZ+-x*ŒQm6ܺw>*7pI |8Խv''yA'2aY۬ FI S޽ZTO7b;5j,bMr4Ax=p[MS c uQ1\,z!!8pVs)w4VAfQXS]E!c=u Is5Aa=bOh1}4S&@4>F%i&m[ReySv^)S9lfrSR#c6^QIYAهe N"hyYʒ T㢃o:+ b $icce,⊰Qvy!+6]BY#,@e(lA%e%!L0ThAy[Ps(%, *XTW, <0Cn2YT2gAG* ,8+:Q3K]1*IU/LrJ_M,qfӜ1b oLù2l1 EIJ-xq.4 *!L;m0]{5o!Fp[6԰Ŷ5cS M($6H ~4婗IPKsJ5\M]MDEVSt )wA̾ hcCgr]Peb3 N`~;4BBO!$!KG up,F[>??$j?#{; 2| #( R 3 r C(! S.|! c(Ұ6!s>! d "XC0b8'FQI,n1=d"}rkL0cUԢ0Q7*H RT|\EDTcUA(2 ,,'" EDb#AI@aP@&M.O n EY26w,RH^ջ[J?W@ea 2e26iRּ&3 `d(p`lBg7MpV4 xD2IzN@iM @B> \q3 M/9BEyWehGW2tYd($Ah@\$p2"S~1'Rl;OlHU&jv̧JB z!ںErwSpfĖ0YLri,8jֵ Ȁ4!ԙ Sl|"}S5ҵ{,bb3C&^36,3/V]fTK[P*SVe&iSj۩&s2WF5#E~c-xh5D@b%%L%0zT[D'KvDXb1 E_" ^<&#m4ë]d]/Z4\ʈ\"^#a.&R @88cZCd.&q4Nr$QAhFi%Aĵ]#@ Yf^_cjfAd`$D9&6l&Fr`ɢK*LN2lq^v$ub4]&xi~#UCl'bQds6&][GEīHM"L,G4[$YDZDR|RP$[&ur]N^ :``;E6(L«d#fe(/6=|#}ێ(舆`;(eiGZYJ&@4`pےV)jjr6) H^F§MC4vHrg?ꤕm~e]'^*EbAj=!hihs`htK,(b񠥄VJL Y+D.]b&5ʢN r@F(^'D& k/"rJ&enk:>rebI+i+(d6Ng>Rj4+6`wiD[v\4TFfyv牮=ŦyB54L)V+JD}rE&Zko+@K}4Ќ@DB̂*Qc,MԈ* .mV.p4 +|eK\CʀDp܄mҦ*2-M'X;ƈ/5kM'h뷮}%<@R1`EڭmZ`q6kA%.cQ,kIN~4B-#Nb+z䮛ܥ1L n&d2d5\& &g$cy&6, .2/nnǁd4Pm-ka*Q/$zaZr*쏮o쾭 _4/NFnh>DJ( H,ȭΎ"(KRMA-04 Ȅ>IqĎ *4g--2υ)ÆYC(paVg.6D~Bb`f(/N.Z@Lf4ݥ3o9$|[%h눮s'qtjo'XC1 [͂IG}G'L5 ޱOBC짟1``âUAM1H5T>;f^G‚B+bEm J=B8X@:ۿs>gD1lUȹϖ/-k% cBuV 6!c59,jL 篹X2kȎ-T ֬y>9a c` \V O&0C_> h-^y%56Q3W!E7`[O m 5^3T&g = 1([ynliaO>,LRf" l¯P:1ƚ P? p, b*0dKAtJ0E`["NC<š**`5|(,6t0)y,dACrJȤ\)HlJRhjh.%RLBI%, dI! :3T(5 JTpH$dP\υPR꫰r 5mƓ/`TT€b+ lh˓XMoUl(1 _J + _k +Od,V? Zk6J"FdUJB]=Փjw, dCbP5!W9cn]z6yۋ,]qph8al.LȲcGVBYD0QÔjrTLJ&5g*VFDu66%e$g_@ !+dEKj 2ajӤ7y#MlP!t;Sғ5e?kjj yc:"%(FGjcNJ'ӿ@"nPK,MDӰy7]l`/(D;T]*Zp9Q6WwǾD1-@Ѽ"M^[' 3r5+Z_}d^YETFdp%@ ҇d,d a <uC\Ӏ#eGTTv4*,dF3O|Z _@X@A+CI؁|HG6AƑVD), Jh&:0 M0&g >Y` b >1(:V7<2Oiç|"P_KPꓨ76ͮriY` 8hN0W4lh;Ie%ʸz{)1^Ql)o0 PD!(Cޫ]w+1H9qW=8JJ?R`* 2,֖ c0:IBƊѫű/d~vBAsZCA҆ CQh#8C19ԒBJJ HϷD*p. I /;B!τ jh@P;DJcM!z !ASDrcD :bcjL6T6pԆб!-`%h >%6Gb%B p%p  s* |0`+G HE@ElqC|`rqh6f,Ȟp,4i)`;kL0VQ"1-NClQI9\Qd>](~qq CLLLB/wq\QQOP1E ,10 @h ꣺<2 Q@ 6A rC!  2 ! "7#W&ކCR$G$K$ґ7:R%Wr#/2FE&i!"R%{&k2|T';d(s$*$Q+*r1 K|g#} +-W&,]q,r+.!,X     $* ! + 394 2 ; *!+#+3?4=29;AL A L T[ T C L BKGCKS[ R[SYZclmrzs z b l cigdjlq | wzsv{ d k s |     ! !!"!"""# #$$%&&(&'((H*\ȰÇ$(3jȱǏ CIɓ(S\*XʜI͛8sɳI&&HѣH. ԧӧPJI&P *Sjʵׯ4 UJٳGZ˶"؄+׭ƪt;7ݿ )v"ÈU[q:V9 D噞M:pᡊS^͐Ұo83mg޸K2uo$5MuYk%#c22  PX%xя?z'_{ayQ~{pU 7 }Wy BA! Bb}#ge)DiH&L6PF)TVie"$U\Z%6t ɉli U%`)cb&peIfZ&ҝV_af {ph_zH9\馜v駠*2, Eꪬ꫰*무j뭸(HF7Y(+WP!Wls)ˬ{ñJvm]6[6TgF V{۞Hb -bT&c _`d€]FpPo]mG,Wlq ?,w rL'sl2+2)%L)9C7@3D MtCtGOCJS4HGmuSc=Hʩ aZa䡃qt~&j'6\]^Fe)U{4j@V!l%DQbG!Xe[tAZ{@>RW_Ǯ:\׮{>GĻ|r 0̏7|OO_o=G߽s=_=`>Ͽ~O˟do۟?C?El铮 :$I4'KYQҜ(hbo¹pH] @m ޔp¡Fjx ` DN\"HFU\ vQ[2.0}[ Lu6pi(\Bc@0((RUG?r>c ! VF41!9/!]=+T%A%(@: veI'>y3bU)xʓtAAy@z5\(Є|'`<0Sa"U?=#38N)Nԧ;fOSUCEjQzTn&թ9%1XJծz` XJֲh%P4ȫK{"K|\TWKq+*Xu\CE(ץ*@UwR^=2jfZXMjWֺ-X6-Znwꀭ{x@E@0?@'巀.X@4"MqۥrKc5[KU(r%ٶuE  CVW\ʷNV':F0 tu'.P&avu6+G`bXYqc\:#0keU{"8 @5ΰ&;YlOOβ.{`S{+Gh6pL:xγ>πMBZiNF;ѐ'MJ[Ҙ7L{ӠGMR}洪WVհgMZָεw^MbNf;ЎMj[ζ˂ lǭtY@0mH <4` ǃ\j2 BbH0v0!@jkr!?rB ipoz5/yw\<7Qp C#[i݄ C~8D!N4 wA0` !&F|7K"y' @ϞwoSCvE>ay~[dC#^ c>#HA>w.!OzK!G4" C\ !2xcu !`x NtH5@uxz~ ~7 7|lo`O`р1wtvgw0 D-s6q` @mxhonp s0(4~:Lg'z:gn'HwU7'-rQdhrqu@CE8mqhv}0ǁ 0 rk5{Hq)Pw8yׇT(-pWwgpo|sX{ s~7*Ȃ eGKp(1vU 1Hx%kXG1wxxwpq0xNJ7sDxGpxgv`pW~x Ih׃ Gg x6ixWoWqh( q`(Fɉ H+HєѓsoB qx`gt@B [ qx]pr'nzw`i 1 x` k(꧒( uB`m (s·#xx~Y=~(|7:p G 'hݷ)rXx<zGr~XqW pٹ'pF)!h) Hwyv8  Dqtٗɞ)1xex! Z)d-Jv֡Njipp8*|xv$xq~<=7Iؙqv/١rmP q e*uTQID*F:h 1h Qk9yrn6tʨvуm03pq>yЇj'ƙ kD8ʌZ x aXw*Z w aJ֡˺QwWxg!ɨTڤO:A*x՚6i3' 1svn5znyҊx@1g*^x)~+kgt 8hxNАsPGJ/ɱ  ~6w+)9庑(GNqC[{[lX x(}ˬ֡Kq׃jj?J*P:j)jy93H-ȳcsx (7@{olXXWiw}*iy벐;oP[ oq/ !} xj˻dY+[ wwn=8t~ qFIFȍл IwHIɳ珟{H9jv0e>\NlnprlcAQ6xzTfg|肮{6~hʆjn^邾sg!g@]eQꬁꯆO>o/yoϬx]Nfx`f^0^prw~n{nfԫ.e.vGf<~Z\W][^]ٍfeeeAI17WF ݾ ?lk'ޫyɭ @nabx?6VNe~Vj%/ )j;X+2/a|N|fqqT8 jQ3UEgPnV Gd\U ܋'o󪛻GxU5{ }1?hH]x@Fx~HWgsI8c!>_yXj^DL(I0Xc\x/)D\eM?bzs/ q\`) k b 0v|UڊXvwXch(LTxRH%Ə-]x(p/tih/7GiV(ycekgْD  \Q#'.\RH!s<2ԈDL)Ex<*zL=< ԴA7,tFQH Rs 1C5tMȑ%ObAg!s;q>9Q!(Psp^Fwepƍ/PWyddw`;!(r\Wƒ~qɕ/gsѥO^uٵwqCt7z1+DtQ ۨW栐Ji ("Ȣ Bo;zۯh lR$ zR#n: !AhD 2-)EY4#=^#OBpFr"-0`d2B\r&4K,OVRʈ6$02h so;DUtQFuQH#.?hb ]0mDSN 1!EHO!JT! X&&u.Rk'%H6f0h5!^i#`FAR\EȀUqr,XpAUZXSVXbjaDӁJTM> O]5E>NUEJ/] ӐW 'CXRkfs9=6)h9$CYGٺF#v 4^ziBhiQ )h#uBEs44X;h h)b SACq-C` t!m)RwI[Ԁ1C?3zvft?#ЦFMg6&*L>3R3gTgTIM8di[V$+٩7LUk͙AZ3Ti\̆ vFĩϭB%G6#|ck@DaaZɸf(,&<r mGȩ`MA>]qDC73҈n8 +mQ9 $< o5€E,qC]v]]%mIqk3Uek}{_2T~xlv<0̀/\XTpdH T[715b 0\aS=]'+gʑrT`8:w3Dʄ{ q~|e,gY!zi] 1s˜b4@b(7{Y: [H'fwC:pJ-'ZыftufHGZiƉٜ_A[DžtꄦttM}jT:9fu3fKcYOtZІZgֹ MU[&v#WOE.vlhG[8K}mlg[6Cmp[&c]nt[f7nx[w}o|;*xݻ 7w ~p@ p;|gC 8yD `D+t'yM^D2t~PHU`@26s@?,{ p<kn3 !rb=a'zխ. a +WHַ[G 8tn'*8 V S{ ʮ)t _]?nq=qzg20w_; =z@L8Ln `WAr@"!qy'|} "?8`Uv_'/`y>H'Wx`Εs#??kAD =B;Ts@ =\;=L81 { 3@<`8K)A <.D?@`>:CA99=|AA);@< 3DCDESW? [<@h=s #xDyT9`@ce?/:HG\|}~d8kPB=Sȉǁ?HE_QILG>XGsɎC=rIĎ P9` @#Awd<;>0 Ɏ;C0XHS;c`ȅhʺȋB'ԾlCC=Ds>)X=˦I8˹IP@I8\¡+xlG#DŽ+PlKˀ=Jh˄LK# Is|ƎSFHLI4d;\L0l="\IVܼ8+HgDPJTOT9OK2 A4 0LOKsP}lNюCNmQ|BB<%HQb\dÄMQ(BQHLM ;"e;!QH1BQB pV@R ]"]4U5uQ8SAq9ƴ$=U>Qk|N:;u(׸A%8 dAB\F}HX: m#BN]1e;DG}9LųUS\S_u $ P8Xa%d]0:VK֚օO萹p VVd%KIWn5VrUvmWrltWy" !T,w!   ' 8 $-"+2=2?<$%.057& * %5 : 5####++++6633999 $3! =?< <111<<< >AP E CBJKQ \ UYUYVSYZo } m ckcdkmvvvx g b l j s s } | EI!MQ"V[#[a%ci&ls't{BH FW VB J!U S"^ Z#g gqf%w t(KKQQXXC CK!KS"SZ#Zc%ck&km(mr%rs(s|%|{*{ppp)|   !!!!""""&* "'#++- - 0!#$,-%&- . 1"2#4%5%7(8)&&(&'((,05%7(6%9*8';+7&5$8';*8'<,urwr@0@0*+,-.0112ƃ#+&(,+00-1253 5 6 78 +2-00+)&(#24! 78:􇇇H*\ȰÇ#JHŋ3jq]9 CFEI(S\ɲ˗0cʜI͛=yФO]< JѣH*]::2JիXj5:s]EJ-ٳhӪ][U'ۊcIKݻxߺ0.PkD@sB +^X*1"SC̹g1vRVL pbD2LL-BitܙN2OjeV:m_dp”"4{lľSVuk@ `B&@D y2@RE$"zCf3g| ("LM4er+۵JQ񝄇(v8 J'= D' Av54>D15{<OlxnA TREr@9xTDBFh.\F$|We.h+Z2HbDi$ ҐSDC H6PO,$AS8ѐ5k`A5b *&CA;^'DŠ嶕Ol_B@n`%J#aluC3Lo b 7k 7B F`G)BԝJ Lp ⼀Y@CP+C0,ѷ2-.P2ۛAM}BR@!pǚpS&y J+^ԱL4>A`, wR`s"icEvۀB@8ymM4C`j7>@> z)DHD33Uc"K"bVy`b#Xݰbt(TP @YH/! C6 2 D#24 I|q!NB 0@2 UEx ûe#1ZQ!".e M&ؙ-1]!C ڜkE-+ȡ— (fIg;LZLuj;KH>V}@!e Y ŒTZ~y/}O\T]JL5 O"mby%Z0ȘNTt 7e(@b` zȆB ё8-Jҵ8E% 5HM*^vJ(RJU2u.NM FZծzWjEU +Z!rupk|"וx+d^K؊5_+:V!=Yaأ la7z6@B٣|֯ 9hU[ڙ|!}}} EmAZB k#ۋ6!p5n \4.u;]p]xYr.(w \j!}H{Wow3wmq(ǁח ήl /}+b(Nc0gXwa@\`&`3PU mX1Ld.ǎ]L!:>c,7uɴul9xV =~5P r0tYˌs# Gt,- ˚wR{CLOŊջ9m=gO{"w[:Ewt!rt{gnܙ٬9ϧspW{[w׬/t؞ Wڋ٩<bẬ(rZ}Ùک~Qʞ׹{ tُ; KY)y'{pձwlQ {IAs!(۲K.{04[6{8:<۳>@B;D[F{HJL{PR;T[V{XZ "Ѵ^`b;d[f{f[l۶n+]r;t[v{x=o۷~q;[{s˷;[۸й K๢{K0 +p@Kr@st0 p P b[ M; K ` ; ۺ H)qxK۰ PdۿK@f; k@ 0  `3 ۳+- ; 4S] K 0 <.N K9.\m/j;k8nmŘ0 5<~J.λ0 墽ώ@ϵ3;٩l}xl~lٜ@现 p玀^. Ϋk<е }0ʋC+Ѡ<]X%0͸NXI" .'Pz@Ӭ}v:A} p7& )쳼0l޶9 #.K|6; = 3{i53[ LkM ҫcڌ 7k^؝M^pno̺KP掰ػ@&P ǜ]7>B;H+í?hyJquzx?J1'@j1z+#zEcϩppI)Apz,nQQ@5] &}\G?H̵G-X>,~ T>ה`^-3+S3k m P > E^?湰( L?_!ᅧ磀 P b 8 P 3?k@9{w#p hf t!8mx4(P Bmp,n(8GsDmz!g X˔/7B8`:G(ǦEQjs)FGNZU鴦ms^q&kƖ=5ܶo[ΝK+:yq-ٯSGCms)Ƒz+PC=jh_.\GS$3cʖV ZgҤQE))ӵ(=j8ؒN.тkQ\79Uˑ(ŏ'_yկg߾<+9"EKjT~r܊sn_A,B H8J (Nh@&0d"hC 8C#*q#Qa)#qG!Ohci DjK.RKm3"L4Ҫ+q&꺫Nf,L⨱\3@[GD6L4LcK&d*ܭL7T6,Թn6.R!EnuO=_vXYΑQreNdF}D\C4+A҄< 3iI9P")Ekz"hF (9 F!"gRr&J))tc^{Tye;tچJfKj2ʮm:e>1UԽ,LF-UmQKtW% Q}kдG4EUE-m"L,X˵pqdJ(\qrуKordXZ\rt`aV]ۯ3[1rA/o6Cw]=F("J"1R-n@a<'dRSrh'枪'z rʢ,Z_%^j@eߒp)tٙэL`: hH ^0ā#(&=R0,ê_Fk(f1-o ,\H6j V*܆|%U#T7J>6f=r3rgԢDAZTE#$aՒ%'J;(`'p(L!ƄBv!xG=LI)ؔV#MkGs^ѤÞUD#xRz"RcRnIKIcOX6i=顓Lh 0J v&ߒ2mc$&4i"(Ct%CSCT0aEJ 1kv/6cRMl#0!)! cZcxQN%QV泈,FpD4N.;)eiK9<С%ItVudFNJ;&I!^Q $/ߝH.#HW|tʖLi$I‚Z0:Ln"L=Ah*UW^1t@#Ob8L|cλU Yw#yC=q2 G9gBhQA qe0k")d|f4qaf3Ort9M#I\YЃpb!T S8'nh k 5gZ)t39ȁpC}jPSsG]jTǺ&ubhOZb^nn6k`g׎u}ld#^v#@Ӧ}mlg[vmp[T}nt[fwnx[w}o|[wo\'x ~p'\ gxpC{3f odx7"'4#'y>)SQrc-Hj >@Gf @5y%0)\KgQ^LyYux?=SRޑ(X@x5Btykb]{G60La 3 n^W /i7<>Ey|68Q~ ӯzչ"ga/᳀&X=<@ѓ ŋ90k;#;@@;D:0; )<;P@亩 Ak< [@9;sA|;C@5\CA"=)4tC<,3(=B?"A.qDC·+Sģ+&X9瓊=$;+Sx;BG{CB=tcCYťí k{%T^% DCCC9- c<]<{(`9DU ĸ+kEFk#0Af k A$|FZGt8;T=CGM~ FDcC(XS cl+l*cěU\ۈ$9\(ÓyDőƑȁ\J48;xLfx;-Tȣ`JCFfgI9D-H<Ċ& Ÿˁ|;ə,RATCHЁ ѶFvʊ$Ac>CXCME\KPdɵ4̎@ESR^K4QCQ*PѾL R/EHaLôے 1=Lub#ؔ5ӣR=Ӄ H oSE]TF-Uˊt2B%P:FTMT{?AeJATQUR-US=UTMUU]UVmUW}UXUYUZU[U\U]U^U_U` VaVb-Vc=VdMVe]VfmVg}֎(7iVj~6dVmR-7k֥V֩VsVmVX#W8WpU zW{W|W}W~WW XW(X偁׃W׃؇m؄،]X0X׋Xeؐ׋m؂X%mٖ̈́IpYY}٘HYٚYٙٞڟ%ڠٜ5ZEZ]ڝUZmڨڤeZڪ}ZZڡگڢ۱ۣ5[YOTm[}[[[ۺe$HU[ \[\[M\M\m\m[Ǎ\E\ɭ\&(Ǎ[\µ\&XV]-]=]M]]]m]}]؍]ٝ]ڭ]۽]]]m7a#>>a$^a&~b!o+b(b,`,bsb/a)b16+b3b>c(Va5nc1k+c7c6;fbic>^9lMc>dB=.6c@^vdD~dHCdCcFScJdN.I%cLe'dP>MbT>bE&eW6S^eYseInWg`[<.`_c\ebW^'cdV^N[bf/^ v-Vbe&V P:v;vWi` PwV6aOb等a}>sV23kȆlH9gj>磨hRi?肮 6Xhlhvz>ish~i=3fme}qhfa.jvY fjxu3i3lxiHhVi`j2k``j hjh5k1؈Pjhj};h2jK7 V\f6kvlln5lk쐖lngNkϦkPeP騾ijghɦlћp^.i2lPkhxVlXgVnnܶFaVW.Άfkg1on轞nopnim6ﺾm05WXi؈ g'i'Άn/opplnrYk0HqXql&r#opmo.p!Wk6>rlgh12ojik'm,On0Wi05pj22 l g2`> &oΆA/tjDt W w2gV3 kFtW'U3vl5gq'XZNlfujn\eHd_k.m~ulvvtV/wq/wrvvtlxlpowz?zw~wwxx/x?xOx_xoxxԻw'ffl?FEgwx˦xKg6FS lv~g矚w3貆PglyS?0wgG6]Xh4SGh^wh:hilhslG0jƶߒ7iG8,? 6׶Oo^EVrg|h3w5rn:/Ƈҗw|W{*gꪾ?ulj뼮jjVZi.iggftwjKnkwy?OggVyiHWe lksN ࠘ilQ##j9aYA3Ř gӮe,cg<(- kdLZ6ilh6HÈC(flZZfR>{5kYM9d0MMiԪWn5زgcYes5jgLF dCv:nV5[x-Ɓ xp;oZ52?:nݠ7i:w]lf5\65`&M5֨cAĜ55cM ؕxtc W}MS[^~ǡ 6oQREL<[z Di`cԥcm"^3Rh'})d f`A]ژ ٓH.&46ۑxJI56(z(KZ&4P܆-Z5U`I&s`Y%ԡJARf5e5ɑi jd6'dgF!FԠAtȶA4kMyFc><<pg$c{;ݙ]{x NY3 Log"IX3ER5AA[`̈́55UA-nŜnmk'`KA[⧳d} !9yQAܟ`A}+ejF<5T ! BCPXAiu_AKq*tL e')Rx  ER#[X=]ov4&t4NՄ7'sFئ<،PP8AQ948F5JZ"xEoፕ7)7^"E+"T xjak^=Qe$uD%2WeGVҕe en$:Vּ&m &B.OlTʹ)A0dQJbsZ7S0#C263`B50A*PXAذ)뀇$2OtjhR0+B $Q-R3(ИFJnF,CÁth2P F  (LYikTr4D4ͭrY1E( yi"qNJZoTP:֖:4Ȑ׿"@WlP+HA 5P%sazk0IĐ2[fn3"E ]Aj`h !rcVZ$37x=C HE+7lHh7v3`\v*Y:LdDSօ,˒լjQ50wG=kz@;)0WF!EXųTY`v!nd5Kڗg /Ȼ41ϺdnWS75I1'fmiF{w䜥S }A񂾌zטCw>99\kZpWP-t&dh3rrzJzcS7.AKrۈZdo# /Pyf2Yd:uͲcnNwd(%gRҊzԗ1;]T͊c>GУֲQfO&0ʱ eԜ9,qO-;˚5{ >洧F!ٮަ@67zR fz!y-A}z߻LVRӫdVzi(w p{޷$Q8#4w3f)o7C`i䷠RV71yzi'FEBwj=V:CpOMO\9dy׽jHøzk ٙVa|kRx0<Ŝ!Ҕ5OdǫvG}=}^»~:;Uq=ٛ1 7Z{s{ C/S?QE ^pÞ}??3?Oӿr~_ WF:5"V v`}"@_^  b`M  j ` ``!a ֠N!j^}`6>a  9aaia>`!N!ޭB `]""aa!#>$* r 2$]"n"'f]&~"(("$~!)]'*)48)\ mV".ߘE"/6*0YEٛb!2KA-/Fc4V#6$͆4l@k)53ZޑY:U^<>.#Mb=<_6J̠lIaU:^{jcٵDT8AFHdyčC(;E d6KLvDKLFQOxID4 Q0DEܔPCŎHEŋ9AeAנNF F<%Rpap5x%LUCʠR&8"ӎdTK(CCNaLZ]F%JB9BM tHHa|HejG||8Hu\hʞd})PdZqnjDeJf6lFXIvJG2ILdN#u^$l'(vRFw0KDQD(ŀH ,I pBfC5#y'I C-g h`'G&(v( DRkH(,'rv=D<&Al `hjTjhJ<JP0N_V]((ix\ tx͆c 윐V{J(zVذ"}!HP)i5i2iPwFr;ZkToɉE^yK*1ih i]3SODS~*OZ7mJՓZSB"iCs=4菝T\jXҧ%VPȢaHaE;5E `$KLTmU@ġ*fidE%b5VIb1`sZU6iF֤oL}5ZAʰt~8ázmٖF0OepQ[ l%%h|+u~,Ȇl\$Y[m%fTYjDc,9~GFKlc[itƝ9$k8͆A}Ŭi[lu,f@IZۅȈ-݌RSA䄏.F.OqߵJ.fn.v~.膮.閮.ꦮ.붮.Ʈڭ5֮.)..//czraW-E"+¢N/V^/ڣy8֑j\n \///Ư/֯/I~LY/:3/07?0GO0oJvJ!IpT00 W"XDSlDG|B(T&EeeT^(RNvc7r@PP4tA4PDe $C8_t#|3`C@3SPv20D4A4o/DOq0  2!!bVyGz&w[Hkx P$nb1n0@6dC2d6$0CC.U,6М3gu./3333@3P/r622br+c+783993::3;;3<dz<3=׳=3>>3?s 2`` h˩RL~Ry:QI@``s6g2%|5[TU(sHg,8303OC4H4. 226ksGt14GQ5R'R/5S7S?5TGu=4z_BMQ۴F_WoͻTҏ#jF/s*LM5c2.O2u2tn24;s6PJHuG[tQKc?6dGdO6eWe3U[rUSİ|\|Я~ua'v[H2.C13N86;4FIl#Z6c_6r'r/7s7s3wXghk/%S0a6nz`ZrqO2pt^u{Knߴ; O57PsA6(vzs88Z5Mdw%oe wGjY6G7aN'CgCpis4LC;4.G ˸2{x[xk'88; 2QVXX׻hS8XmFJ%Q#|27O75rKtA~OC5@*;CT33rp48/43s@opv9'/:ScpJZPSv_׀c &X mm5tt/93wA1Gt]{1pD*2:54Hy;'/;;?z-¤ _;;38t;: s3;;;p;׻3ߵ;{@;7?<#xG_}3 >˳73 ]-lEx`ÿ4'uKx4F/C3S;:r|SϾN.S*y=8=?R#;kLφ ͌u#Gkh~#;s@358)55:4.R?>3@x~]S2T3j4xl6LaDl%[V<GJ$p Xtl`ִy5i8y`Η2i4R%F6uhPVEhTV u@ڴ4 u ۭqG~8C45+j޽#2$ A1j| G\h9R46Ԩv K5L_Fef֨= ̴ib@iײVr3ܻ{fo,evB%0Ҥ _|q*i [3XD PSdHs0lcC=@ j"jﻲʫ, @80ڈ?=kiF0C6P2i*P"qb`?i >䳐 J l>h.<=*R˦i԰ o>0=jflhΦʡ&#..,F@0<3E$R=hͲ0:<4=cSJFP. 1K?KF-h 1sX7sPr׃uGj|4@eVjxJ>kla#|vgbknӌ`יlN}` fl:v-|_@`wl0=.1J2I (S㌀1H!l9CH(@#i+H;4B P1zD&d+(d*|v4chj䯘zg peHm%iafSG$2" HWk .I%r#yXM:RH4$fl*Ǧ)2:= Nv"BHF|D# 5,,X[fR8?{5 Ha՜?oB;YnACWV <' Ѐd8=hr\,Il5d6`̠: 6 8 5Ӯ@. L6x06аl&D"+1R`v18Fwd p؏h3PfЏ] ^alHS)ҖgQHZQu'YIǞo QIr.&E]B4e!@7Ɠ #Qb4+z]$.k81IOt`L2|eHbYa’- !MCRF@r+eDI҈>']F~jH| LID!T3pkȸP.Q/%Sp%2"InY&BOd"}(!l@&:0HWrq ׀ C) LTa6M0щ?E>+8#4.|aga4 F^W I WDGMleH?2*0Wl yN@.XOE. Hi2 KL`q$Ad,*+*>e-˥P)t5r]1UYBUHDf تXj† bMT 4H>`/ΛpK"ĴT#4Q7l\m5W}4x@\A^犷 `u`k!\Bv/pFra4/h6:l]js`i5DKv8'1 Nw$m5~HwUY}R?y-!f-Zf`Rf3DXfVy2 Xg(kr:YzvU mCr _ }%7=Oq4f,[!Frբ$ lʷQ35z%1՛t(GCڽ1v5A53yt3iE!+%-=i~xy _/&xPNK8 C>-J5!bf&i rÄ'=#{G<v=]vAiQJ_C9,lƭ'A\DM@*I#f~2^a4CLCjEc|!A۬F*EH*7jhz+mdPK@y22)Bu! 4Vl@繱h짥[اC=Pek輾i~ecȆ@jhK'Ge`$.lCy.)ɭ&N6԰"@EۇRe)x5xbҸ67%pqt7>#"'TVd5:J-]kDs!kw^vJz_aCBY kqB PO b0ii?0hixs-s<Z<8@@A'*SBAǣBGhg@B@"DCB%DB}gE;t#pDNTDT {j).=("LH&%2TI43IJTJJ7B@,BG4XK"K,41Kt)B7VRޔ HHN3;K0̔OPUPTLPUI*P!a6<3@ RIOQ;?=UTGTKTOUT%>^˞>>짞վyb^C1& ?_&_ճ5? `+% ͭ`#}k>?ԫ]?qb^?~??_ǟ_ןc&} ^ґ͋A92c T)&0! ʕ +Z,! &(`ȶ"bF)^|I$J!d)L-:s"۩Ӡ+V|)xP@5o|r+:E`Ì%4f,̈́[4Z1ҵlۺ} 7ܹtڽ7޽|V(U+Y \Ċ nXqÓ?|rfˍwxsϢ%6]3ԧUc& {uch jD&,K>"pXcK 0--iJH^Qv̛[ĮcS#kг|BXq /{U?uzS[Uğp wik=` B8Qxa5Xa!!L*L0+*(#.H9#7#AXE8IdH:٤8F@25n t`Y!q\&6Ɲ~ũ[yPuv'' Yf9cz? ZhP>)L|Ke@_Ytf fsUhꕩ *.9+ҺZk*rYs}l.lu~Wܘb!0Uw}ΙUtmNۅ+'Jy:=gamA@YejxOyjmkw>Kq_qzE[E(",$%<2 2,<2r/3:s>2-0ZWåÜW `V@*v TM V@]2Xd.-t[5ޱ݀-u&AQ0PMXkmrrF4Ao6 52P/u\НѠy颛Nѩ:駿:6>{|O|GQ.LB!vAۧRR*EnWkjj*wmN+%PP%e2lQd p,*xЂ#SwGsP 2-|ljA6DŽ `AP c~;_ '"5gQA&wQy\(JqT !C[X `]c6P De#uE.^ c 1RǗT by@ r,!D*raHHJr%/Lj"F7 Pr,)OI, l+_ Xr-oYK"%. ` sĬd/d"l3 hNԬ4ljs7LpS,9ωtdl;xs%; O|s? ЀFRHf>zP~*ԚmC@a%CA@Q6"F-24Cd@E::яKL4iLkӜ4Oj<d(j5P6dRSԥ6F6Al<"JeSU9+LӴul/ ׸ʵ6BmTQj5yUVT6@0_׿ǬZ$ؗ0wEjv=\? ZPqXf 4*jH#Տ&<ъVx "Vt)rCD\ n )4 +PS̩<OI<jo>=} ^ l@#p@~V"@DE,pJ 0B+T1F)lax"nV Th!PVL"8nfSA8XE yȄ}Jy4(*XfC aPU e.{ Ö-Ҍl ]&[Ds" rV,"/=11m|3\?"4 >Bxr}LPZB]-5 :YVꪭ!X3"Y?7@6Aj $K ƶHiCm@Jmr=OT,Gt  j5[a@0aRwɶ*r pVD ͭ".k/}ciSnVpm>;ъ(ߪABUlڗ\ !k$\?FG ]㈷bվvyɍmwC+@|^nʖ:׸ƚvDx{ wĶUEd+cA7Ã@Ev|c?}w0|A%$R:ŭ#GΧ;M_E*Nv}ߤP!oy!== y[&{j/g@BAf\M4"oq+VM&|DD!xO> *V"''"%Kj߭Rff`U6{ś;fp [xp@р [Xc%q Gq$dhJPI[i5ǃ=HK{33w1EXPG;JȄF}rrLP7•kS>He_?0 ii8MBvqJoE@PaPf{TRpGtnHM1VćeHM>?LP:ȈȉHtY uS2h!;N(Dȋ苿(H(LE(OhtČ3eQ`xQ@ш Ө t0Pax鈎Xh8ُHp i]Ru3 ͘I9<5[fEp"[$9<y )@ 9혐I3i2ٓ1PaFFEsGIٔ1NYLRٕ\Wi_)Z g; ǥ[0m  ].ha詋pCM}W|C۸jh?G2Na~[&3ׇ|vpr&ǵ h10.l3\5@ cx6iɦI~ߗ智$  *=[ ͮ[ ;vj.a`a&kf[}U^ WtrNvn_)nᨾ.N>n^z/뼎>Q~칾ynҮnξh繗&:xyp"[$an\LpzX bN퇪˵h\ԝt; o,p7-+ P씙0I'Qą Rl"l)S`Q Ɗ"I!۵&7ZTY33EIS$2QTPEETRM>xSTU6JrP]D(leC~Ed,4itKn{Ѭ CEXbƍ/NYd)nyYT~>Ye]dk@lnǸkʲPd5?\p1F^:srWft3jל35]󂠙3ޯaG@5j l ;@~i&hF lM jI T#(h͌1:bDOD1EWdE_1FgTQ i1GwGf<+ "l,<',+<3>+Iz*RDhn#HAԘnI6Q6W{3N/h iPc5E GCE4QEeQGsT#!أRK/4SM7SO?5TQG%TSOE5UUW" X&/XFIvWF7ҕW.MRA{jjF% V 5k9&;Y&e]w߅7^y祷^N1ߧn__C'X"‹iCiu 14p,˵1Rڮ|gƌOu*c=E/s{^I&E:(E %-(amD̰6m)$ =$ ba!B6PIAB<6Bp{øԊXPTQ-p$IlNDX5fdF ^h#fhѧWOr@LI`#l:zF"@X*;k ,Rt`0!"tH4Vp[ZI[#% D<9rJ6$a ס -P 2E-R`"H}4H$ IxI *qI\"<"9Z2Ë8b$K-BI'!E`#9VA9S@ɱQ )Q9)RIdIUhP(v5eVSt1גs'BI3ȭyJ@nb.ħ)Hoȓb^Y^K&R zn1U敄pji_~B^$¦}1NauqȄ0 @BoxMlkbB%yD/ Cj!t8D\" -LDgB)^d?/hdXgQ/<85(F;T" H1 (""8/,R=R~T$'yMzR %UN#l,a9YΒ$ϰ}mg8-cYW.#~1LQZD&!iRجf2Yb% f"4#lrFsb;Iz΄$>K7@2p0I} 5!І:D'JъrrF7юz !Ғ(MI1 p40Ui$aJS1(Neӛޓl `)0CqZS4LjN'*pۮV#*۴֞em: fr 2שg3nt)NJnvKO]t\%jqMPVͧr2 7~NLoNY;0'` S07_ s]|ALU#to:Kb8Ѝu9bV.Eq1 J^x7~PzԤ?g*V=2>d {X7Y)ז1d%0m,LR¦UP7Yn f;cqlejvygF eC.HKДN=wt~qy cVɠpzGOz2N,Z5=^׾W-bNv3fΎ6'-j_B8 ] -`qoƠ(@ߎ=m )` ڭz;17N6ѭo6#.S3qcs8}-&Oy 8.9' H"; ^Ԏfgw^8vyq9cO?o|a f=WG3b|\Gz%Dtf?f+1iaDNwnhGÕwǻIv){#4 4H1+;G{nX v@<=*y&|UXr<(o=f3jIo{D|| ~4O\z%(3_Ǡ?RSrtE~c_#Ȟu{i>gj[g~;Q 'Jkz]WtOsQjs|u`u`yrbJǂ s0_V:8_a@B8DXFxH?<؃PR8BȄ:OHZ\VXxI]8d_TjKhp++reZdxpo@pt /nQpz|8\0Sc((m/ '*nZ([pWA؊W?WP8(__n (P8 ֈpQƈvT@S VS@Aa8xhQxSP膃H&ЌxH܈haɐS`USQQh@8QP/oq(o)+qhn/n +1!(`8Y. Q + pv>9'<*mG3Q9U)qh_y@)(ٓ " o%)(*ɒn HapIAXSpazx|Uy쨎xIHgIƈ )n1Ɉ(EnyF)yno*Ga9aaXy) x))ynƛyș,Yvpi9` ֛np yaТ\v_Y鸋ɣɋmȄPʘ Ќə&nHP*RNJ $zn)_o-$m(FJHʡɤ5j ITj,ڝ٣JH YY&@j*oRzɧD٥HF٪IIrJyZ) +-Jh:?Zpٍ\p8Zߦ0 & (0 UZOJ% nj(ЏʧVzHʬIa@Sȍ`n Vz jHz)h0 *(;K=;B>[q*IGZ4^߶wD9JYYc[@hYy{̉r Iɓ:pxʈUJ0njFٚUZX;(n,;з)蛣ٴsK(JxnXVyغ9ܹҪPHAڄ )`n:꺥 v:W*)pNj kW۹u[k!;x;;ʺI+%KZJ+KZ9\lK`J&l#,¦Y)ž`BXCTT򫮅ʻ ,p¬Aȅh\(xj,HH Ąŋd-8'urwr@0@0+'-1',%,00%*$)%*#23! 689󇇇 H*\ȰÇ{"Jpŋ3^ cG 5zI!S8YRK.W~IMr$Rϟ?o RgH*]ʴӧPJJիXj8랊Be eʓdŲXoʵ3'HxνW@H[ LÈ+^l+E{#,q/k3c.oΣS^ͺװ:V۸m}D]~d38H+_μgͻzLֳk';)D ӫo*}: ŸO#gG(!HeA \C4BT߅Wf5y[-DU4sT(#T@1-B .HՃ]$JEe@MIM Tn8@TńpXg[&)tpCanfSi`*3 qB;: gUDYKD\i饧Q~IQT .r:ĄPsU<*jw:`:ֺP.,tB6ЊPj &>T"PCRؑB.$RUɶU ptf@ .A .&t"y0IL1GXDVy+׮vjC dP'p hqBh؁@TgUsP*@ ) 1A1t-sMP;,2l@elGFAruL7L#:2{,h@,¾,@6tAà@ P D衧빖%4Tŝ۱ }nu4q|# {p)vjA PA8΍n+@m!<<77CAkBC/ F#\n= =yOn5 .0t"Hz@"g#)&kA`1! &0Ap2 ].(xKx5.,Ph V/}OHJ Bh&v0"8vi p+fqŢaz"/ޑ_C7b .@.A 2T*cd_tHw;+H4rHl K@R>Q3x ^`&!mi\ď < ,D*A"2U2X2u*L{Azɓ (Kyib'K;r340<s$`PgQT7?ґ1}E@6*r ACKJ 4y4=XL8I*%)MJu9U ڙYU0H`b$zLVN K Ԙ&dw6퐾A s_F1׃UX Ogm Tr*k ɪC- ;@աmkJk-[ Bde'Ȫ@Ӽ*$}5VܧaX;dS0h*̥lPpa{LI[, PX8J ((sm/APPmbXZZx1 E*-Vޘ@R Wꕸ4}c S g0:~BL\G!7&T! IAཀ%:;_^x5ݝ!rHdچ`u]fF=ն MM fQ LdU{AAPqx0/ 2'\סO iM[ԍnBiK?:wbSqT3zd%Tp4 :b({0;ٚ3"`Vʷ]{.LTݰ)罸u y7U#}{F #/h3'N6ϸ7a GP(OWPd0g8ym9ЇNV,@n;ńbH1CXza4vZnd7:vp*lg m5rY\AN=*ri ( '铇.fw <қ~_HֻWʩJOWeZrk$).' "d:|F) ϲ3BG!G4x *X^Xb8<WȄie3q6HdpA gQ8_؇asyȆx؄jqU؃(~X񈍘zh!88Hr#+4n(8xO ؁|9F>6"%y=(z[ȋ8HxV苦 wE&pbEyRюxhfb(؏荵~ HG *"8 b B )E:D;h}葳h")7R*b1>b Qy cF/h`v~YoɔPy'w4)m--dqP3KD?T&gPE)\.^a[m)^:__0uqzɗ~I=pY_D`BFЖFaTx8wevH o8\HKmXU) [p'RCt3ij&;8#_UǹP)S ``\0)qH D Gwv1Lit8ȏkQ9ٙE/?av GC>DBd.!@ )ڝ> @=z"*$jb)a`b09a !Ux#x"IiqHɟI韸q(&i8'DG+ rC^_&\i"^e[uZz:*˲ՙ=@`{B[Di)[ۅjK}WK76ך8v&n 1/qSXv| @0]ੴpr+%˩߹jƊ1R)QnN] ꭻGmS(Ir'h9RPisp;A<®)]#@p_`:`pCp ٻ" 02';ЁcK.lyl;><2['SB[x{q7m) ;{`yU`[0>IG҆0Cg $\Z1&* &.©r0<4\h[8RPъBnjCI{gk'#(N7ckMNph0aY0d\éz+ dvYU3r'KKfsh|2 ɦC .7CM4K^i&Qf5~zuSeUdb+ódoR윦75S;sS4@]T=D q*i q7=ьfR`-3CIHVyPupiQ|^$8  ꠵GGtND=MN 4HJWQ6t*|wǸ"C4x =mot( L+mi?/`,g}2e:YjG9NOLcҕ`PiCO7T=KmK@'&, y" yY޼N0ͱ6s&$-;N\ɦGjhdX ~Na7n>DLк6Q6Sf?V e4e0fbFl 0܁RRR@K]fMs0 3b2EDݏ^z< 0`#ј'1nƽH+qnQ`]˞yͮs~y.sH7r7W`[OsV13S§ _P!4d4D&V *O݊ @_ܧ$ԧuѥ ȥ5@ ,0 йg/8ZFyM3HW_oXkYN"4o|YkI_^mrOpegO!vvO%uϵᵐ?s!@_!]tj!Zo?OSk?ȟ H.m{є߁["[W:Џ/[w'p([@974 a%5ؤ  XA .dС@%NthE5n@Ǐ#>^XI)UdC1eΤYM8!sbO tèQ9tHQN5)UViRuU0] b Ge[]]y j l^xJL<@֝.%8,綒E&]n_ Jk2)f\йuoqɕ/s蟇gduƗlw^y9&/>vgw_~Nt?6dHƻ/!A:I,#p{j@?; m>Dd  H?E(N1%WDRDžsХc0#'ܱEpC(ܭ9)JfJ;K14DsM6ԲM8sN:N AhP(6@jd.`X{+(5Yl+ *[zY 剫}-+pXs;MJ_ GoP{.Qpc%1?*/Kn\T=97vU>! zvG=rɱ=&eڹyTmpѽapzf]'wгL~x#dN}6{a Y?Z;_HӺH +&'a12.`'WS(h ` m(1,9:4O"CHaȦ 'DSbxE[y [bC/QcxF4XZTcnQs#GXG<摋w#0ꏀD01O!3-4t&I(5$ vI,6iQ@CjR;vz%dyK\ꋏe/K_S0yLUdfLhFQϔf5)(j^S۴S6Mpɛ$g94NsSi:N,QqpI"*?'tzI[t֕0^9!*_ Wh?x!@oEϖH"}aDj%m`CRܜB.IBԀMRAm: 0tӍr:\oZґ6_Q*rXUbYjWT7[kYF?ӈi-M:Đu/֬Rέ5 Rmw5&xxaübb4><-nt5eG"2`f=jN4=1P:Nl閗XRv2ht6yy2Xn}v5Ўb4A7k<$›n[! 訒0r2^rUku߻l|ZZc%0c]7UX`OE&/g1:xpLgؓ [4TMZ EU2=hXQ4E"Sk:!KzT3*Ǎyj鏥eѕBy9-j,bcFr)"Kb2H\RY{TIRTzˬ=-S]sPσ ]+O$ZыfthHGZғt-}iLgZӛt=iPZԝCM}jTZիfu]jXZֳum}k\Z׻u}Q[&v}ld'[ulhG[Ӧv]eg[vmpS&w}nt[ݰwnx[^w}o|[wo|&x ~p;їXDQ +_&} G\&*qz #_nj<| 'gy]k7A߉ l>Eu"n>K8Ǎ~K_0+d! x6_AW˽gA 3+b#b%.p:.JXf!]ѕ8NJ+}Lt.[B>3>8{AlQoAT9KAFN(B;F4KE[˹M?5?{6,/@4;0@-8S<8,9 6=D@X@Y<35=$5lF@DhBO`[EDh#JHDDӄE@P,۹CEkH[EXdI,A8EET\T$J4|F4hFjFk+[4[NP:A8+AG;BDc>I{BJ>S=F>Qd ?KDT{,6T˂,55C5ܼ;P7x5+=SHAHIۄ& MF;k4CR K0@Dtͻ6`<:SLN35\6pTHW3NKNR@l: Md:UBtČ4vUBRKKzm{Mp# G XAHFƬjT4FF]Lv}ͅ5e]\TA إ4E-YSe|4]Zջ,8_u?|Yh-ʍ4+ԣmDUUmZ;uZSK^BZZU;O-^U]?XC5Zm55W-K8[n\e;C­tM\?w><Mȵ׺=˵RW|~RkӅGѽa|A~-NaA Np#Fm4$m 4.<٪=HQZZ9YT^MMc7ƃUT_0ո AO7|9^.Zu\}IB- SXWh^=O-AKkMJ Y1EQ`D RE|E]Wn5IwmK{Gr,I  3uwLffL]MaFNinL'EN݅ޭg\4|S]?ZT۪U4ZZ1FcT452UgCYE@ ]UU9I-Dy-PI=6@=[Y{c#SK=[Qº9ItD9`Ye99ޤz|iWv|\̌mfjkGmū49E`?rgl;f5=TNcۀ3v֝mv:k=+hTdldU lDdN=^B+޻&>.퉶U{7<6x?:|S=|+SNvLDTϫT3A=™n=ˤV˽阎F[ݲcK@kc ^43=SCA"~o\fomKxGAGSaq^kJosbDn~4SmCE5-@tT~NUI?p5?FE9 @IVGm5plu[Aͣ;dmVV=HmH;=dr nrVnX#qe^8uM4JrI K/ϴ*kN;gNGIoo;gfIs,Uk165gӂ=ZUetZÃdH[ZJrB5~V[D_EIL\dikS3-WŶlum3}A׭R:?;х4Rpdr#b7=HNhvKE5-8'urwr@0@0+'-1',%,00%*$)%+#23! 689󇇇 H*\ȰÇ @ŋhܸGCI2ǓJDɒ$˔_ʜI#8 gϚ3YѣH*]ʴӧPJJă@)̪Uɒ\a6LafyӣϷoZ+#Ѫx˷߿^5(EzML-H2?ydҵ{hϠCMS^$ǒV$=5ͻGL+_55m3YسkL8޿?@r S^G :,05V 1FyZdsuRH PeQ4~-~ YŠ.tWw UIqer Pu@EQ@`DmD7yG)t@CZfPPi浂cPeBi^Jdڙ*蒐*G *CI|nNebhj'^Lɦ}B`'Gj뭸ʨCJ(&+SL= mTΆT-o%p t,P @8 B9oA0x^NkZ -oPl/! F} `h bHiB * D,%.Z f(/ ęQ%Y)\֏|6M(ߙ>eC&r̠=:*|ULH&G)M?}iP`*t0mLS8qEQn4oV vAPz L.fX:t*_:dډF<ǩQV؂L ,+A(vTj B)Vm@\mIMp!m}/ WT҆`kۼ ~dU׿6tY@@/4nQ 7 ]O] @ۀ(UI~eھX>'- 5또=6N]%WQ;رK WY%feȃ7D nrlg)oMn`PTO8{_PZm3WH׵u:01*{b"pʱ `"؋^~}72J׊J^v  b7TOz\U]QO '9(tq@zjel<V<:Σ g&X&fݘ*uJHrx,g4e}0_ޓ<52f2״Ɯغ٣(=eSyy6#m{)qc/םp )7Mzۛa򾷾~&NpdOp`" '^pS8-{8GNH@mAS#8Ϲ@d*s:AsLt,6җGL(FxqSu%nWc@{ pJٗ"}T@Tw])E{O(*| (*&ϳ[)a<'мռcP(W#h n/D8br@/4 @3!?+".)"/4Qm ?_GM{71Ɂp~|'#|'gX[qȁ H{  &&%1 {ǂ P6(#(~䗂@/b( ȃ=|?\H[h~_хHbHQXW؄hh^dqzY]t'8u)zx}ȆU#<4z}XV؈E8m"E"!bwt<(x~x{c؊8 8G V8'Z%o[aYzȨ|a"{dųT8XX N\r)k=^OюOu#wHHt{ !'7X̣,8ST "Tc9D/>8аzAꩠz!ٝdj;2Hg-˧qŇ6%s"l -jٓWn毆X @Y pHu YڭPIuR)@(s{w#2#{J1M v-Pb*ʎH(s?)P + Y ׊[p P @Q@g;nq&Bf Qu<qY& rQ{m!q;n[^v&l[ 7▤)_z!/ɽVy/ ;&{kxp<oW; bg'Xg,~ogBXb'b=Yw+`bW112&Hq4{G1+kQ2q<)#-@PKdkp"ī7wZR`Rp;/:"q<&b.?I;=51 #6v,f#bh(j64^C&3"7=(3m{Rdbzqfps`,R=Ȥ`b[",I6s:#>Q> >?BXl>ȃ?j qW\eUWvnpLò2P\68j3yF/LVk#[MǼoFҜGPUN15tbzיvJaW& I0l=/*¯£>WiTF,3ML[@`g L06FLf*TN:-971a`g.\Mj Wv)B)0&qS& )24RE*P+${]I!5  P jQuB= }ɰp&I@:>(=)A;Scw|cߣc<>aA!Dfd `.s&ndKѮMpq^G,MqocI5pf㢃XCU"q6&.FFժj,%j+BjHL`v M=+ l(x& `^Cv1æť` ӛ)[)~r~ | r hC-c~srn闞ęsr>,NYWfKǾQq5R+00 0 `k 7 4j =Ս @{Ҏ~+k1+{wn{ژ~j+OٞmNn}.ξ2:/N > <0<0 ~m_p*"wK,0p2Z8?DH?ҒIﺋZ誄g88oNO:974ơhѡ"&?P":/i/w/OقxϜzAvI2o.?0065k:ɸp?CUO7p*a/B?3Ni_ oo/_i~{.$̏>$XA "4BN4ŋ5nG!E$@KN<•;1%C'[zL RB@M* jeC<*PS1m5q)Ҫ/qWN%[YiT-˨oezUݻ46k_^ɖaĉ/fcȑ%k4k# eRh5zhVOđi :ݯ쪹;<9{QZ \zƟjk8Sb½jo|rl|sα9:}t[tSWݫWwu)$vko}wsw+=xrx0yInӑGzX` {SL-?1n>C~6{` P kK!68RirWIM:F`}RHyJTڋde+26W2c>*e 2ZffI%0f뗷X.b̑2#ȅIt9Sbw L))lcz&6af0IU{8~kM)#) 1էVNy4E)s _؇!i&Ԑl'=O$MqtPa4\ 7Y&шsȼH3(HɉE2=OGeRT! Lizԝ MVR#dQL_QjЮY՝}dU1^lbՒ"K򬫤cº/$3io+=tF|n9e~sܻ0g.5cY9!Jസ ]_o.lAO7CS8}{\ȭ0rlFnD!@nD u׳|m!_[țfaF=7un]v/^΅7n]OzP8} p@oȌ1c;0!+)1*?s2L/k4+;`@(@(@:?g,|4((:k?@[;2@9@+kߣ$C9˺=`裳A62c3@5%3<7"dڋݛzC9CS}#B:F2E =>9}k3 C*5:QCn.@b6( 39g 9";f2(;/LHC/;R,K9U6R@B+S2=XD CCHI2<7;TsD.Fǀ[IPBۮJ3K8DIIz7{c8JJgLD/<*J˶|KndNJKh9`|?BD*$ϸlDKKFĿlJKKkL.4K@9Ix erTܵ,#@[9LBLδG@BPӔ#F C6=s. R9dJ>=xCQDh#9AH9vN{ud<;MN-OBOS*HeT9<-S)Pϴ +]SKPj;(SOU>?v/B^c_mJccJfS>ecN<%3}ȕa6Uw4e邷殫2LJP֔*M9V&eU9_)Er8+(EF=2eg~iv8(ïifŕfn~@ ghddJV" [U1Y_`V^g.Il^l@^X>H l^l8оހ^ @l֎؎mF؀؎m6n^m0nnxmڎm@ H6fmlvn&n nvnoHnVoowVoNoo솈q@8qGGmNnoq'Wgqg'q&G xض?n o>)ql  r+rr&osrq^זn Vހt˶p?s9_s7Ѱsئs0pNttQ't;sp8 t,Wq'n؞p3Quސޞ;7_GmpvZVt^ھno8.nllgvsgs_w!$,/ ##++22< e@C SdtKB%HdA#sɳ'H)\ JɎF q0ARE|JJիX%=0FHYÊKlNNl5˶۷U+v"ܻx+]"h Lf+̸ nvYA˘3_+i3-ئemB"$ͺ5\ Tصc4\bmS=ȥzNμΣKNسkνËOӫ_Ͼ˟OϿwG^*e#`aTS%|K䓋?U •F ޳INⓉd!ᅵP!ȋ#b?HNԈ"&Q|£BD\!xҊ!IP<1cKvLI."eR&Ul pz)ŒK\!&&=bf|a g]i( Hv"*H@@jo)饜&egvIiBi}i 騙)*뭁 + Nk g &ki"ѮImV,Nlfˬ^ z* k1~i@痴Z$* -he@4ip~JF ˚Y6ɽP), Fœ$::35۬a"W"[sz(%N3,F Vg\w`-dmhlp-tmx|߀.nሗ` ۆ!ٓ7O=O&ndG,+}#I3s&2;1c-׮(^ěLq4Ǿ@/зOo==ιo“^W>|W//ToўS^Ü$7@Nk :'H Z9Y ݂?t:Nx~<=}Ug9VO*ćzO@aX DL"| $xJW%+ EE(i`U<:F1]l1ed姦"jbDE0bvx4xTωgb4P3"%"ȠO&OxI&eHzraǹf.Q9vѢ`~)b.oef:Ќ4IjZ̦6nz 8Ir,Fʝ] %}Ws dK|qeQ\B˅:|DWЉLDc-ymc ṂP:R"0'u$@R0jў> L*Ԣe%` *:!GO~Ԫ?3j9Š̰L#]w7Y밽^umq'Wzs;JNa[.xA\V(纂]޼qZ_ӕ53wGJ|AE}[&ЮXnf/4vZ/0A}y#MP{Gk'y~q!,/ $-2:  $$,,119 9ELLT\c g c j u }B!BK!KR"Rc$cn&nt(tz'z{){8'*-1-&+00%*#($(!! @pHRyl:˨tJ<Ъ˥rɯxLv5n|ZUоc~igNnoWqtaZ~WjGpHlNOmGOF  ºOd eԠɆcC" Xz\teWލ D*\Peoŋ(jhQ 9aF4Hɓ(J˗0)2ٯ 2\`GX FpHIѣH*e2LIXjʕ$ TyеٳhS&x!gXa>K\tVp;pA >, :tǐf +b #4D |`gr;^M@dзX]@O}C6MVr_GͣK?iz cνËOӫ_Ͼ˟OϿ(hyt%ĂuJ΢s$g.JK)#\eB&sLpl\)/P'c8LHR7l&6 Qz TWmXg\w`-dmhlp-tmx|߀cς3g"4QOwL56297'n84~꬧r.!LRo4; oÿ5 GO97Fo<ή[P+ߓ4k.5ؗt>پ~oWr~VgȍE;Qv>٩΀KR2VycGB=PCK!6۝ ةą'퉆׵lBr*D\d-Iq\>鐸.)͈W!%8\`D1(}: u7"HSd X1σAB[2"}Pad(eсשc, ;qh.'RL*WV򕰌,gIZ̥.w^S$Ԅ)L< L!A8Rу d) 7$@B#8Ir$ME#ɨxu F`Dw2;QESb=EPw3MBІN2ؤ^5%$NJp{;wdJS\19N65)JnB08Ӛ8ͩNwӞ@ PJԢHMRԦ:PTJժZXͪVծz` XJֲhMZk`p+SqP@xkQm,`_uV6@_q%pQmp)`S@ PP-- rҖ`hAO3uEyjT᪵s R@q 㐶8 4M!ȏ>{682Sl .w95x3s\W6웃KcPI^n7-}/{9 9-7I g|ڏ>om,~/n)X1ә>"]SW !>y L0j=3gT%йP-,vƚ3r]{)9ک;4էǪfz5w}}x{< k!,eLv#$**11<;##=== =BCKKSS[Ycks| g b l t }D DO!OR!R[#[d#du&u(*,-.0126789:@pH,Ȥrl (DH)άvm<|=z^~#Fd!)i~Zb[oF`hwhY mapET FxL%,/11+#D B~ bfNBiԈL*1!B`x`φ^~#fĈr$D!V:!f//pP4ĒfD i(a"8>"vDb2@h|Z8dCdC qC!D@ B$9Dz"ʞr쑅!8]f13_MGFHrAb K]{|EZd[B6K;PB U+9DB |B0 М4& F:DP 6'd" $tPA܋7 yA~  1Z~A! \``d 耂 &` P8_Wkh``Ol=.# EPP@h6cY H^hL6Y#` %`ĒHA!,/ #$+*12<;$$,,119 9CCLLST[Ydjt| g b l s }B!BK!KR"Rb$bn&nt(tz'z{){8'*-1,&+0%*$($(! ,ƭ,ΜϻդÌǚèګȢ( [ *`#(@Do)jd(<$xG[,$+ 0ż51VǛ8yO51R"VɴӧP-nJ?uX֯`U`-"T]˶۷RKݻY9t3A p+^̸,AߥX ϠC7Lᝃ d6װc^+TKDba7BnJ+_۹3Fܼ%30=w$ZNr"(Pq˟/|3B~mu&cG%FYHhT ($h(,"ĘM1 c.ŅvOQd:XLZE`>VEǞ}*E9e"`IJ%Y0PJ%h:#B  g=u@m D)0}IA"0ɦjk&hyhH!PcO]n ` (* ̿/=KF!n/:w Rݛ<σ:AE0{]RB]Dۧe| F89kT/ F u? O\0lweHDB0Eꫢ DnqOkW99gbTX)|S[5XXxqA[F w"kmJYXG2 R<"F:򑐌$'IJZ̤&7Nz (GIRL*WV򕰌,gIZ̥.a]^% ɸ1QkA&\8bDU̩l̦14j&8IN챜L: .bIzΞ">~&@M1qtѠ}\O9:e Mbiz2R񚾜GSҖ0LgJӚ#NgQʅEsFEt(4va堪ǑR(EU|^`բOJּ]&,Yԇ( B鹓 OjgP˫^1~n]\ٚV/U],G&oTk`D" d1Ո6t#RO[ڮ*k<ǺD˚ѵ+5jϺMfmm&ҶS-Ut|64Ͻ6vԖvͮvz xKMz|{RU>nbp[ʶum R▵i'L [i-E8}_=\x !^!0)FbCc88αw'oepVo6\)[e=Ų\o4ɥoDL2hN6pL:xγ>πMBЈNF;ѐ'MJ[Ҙ~L{Ӡs^!Ԩ~l55hm X2huj: k:i>vfȀ/P my~`mExvqYԎ6`n4k~7\z~6pN:'_">6^@ǹtA}kR A67lԀu 0߷cNۜ~8 z^"2p8]Pn1>g`^3ofcFz֍Es7◯ EOghF~F~GzGjjWx|:@D|.s7vjfwyc~fgy7'sw*oXo.@j֦v0W HxhGsxg!li|X{yN=|GmAwht!7^HHjHg>]Gj\'mjv㖆kk6z7skwfDŽ. z=hsA8g?qnfnHv^hv'wPȇ(}~yht/0{)9o<{4~@hFgmȋw(XȨir<Hwwi!,eLv;ڋ޼H扦ʶ L y'xThȦg1*!H,e/  #$**=11<:##,,  $$++11<<22==< <CLBCKKSZSS[Yns ~ cjcks| g b l t }CCKKVVB BK!KR"R[#[ddh hq qz zb$bl&lo(ou&ut(tz'z{){8' **-1,&,00%*$(01$("2! 6789: IÕʫѲָڽ˪ӳ|Id?( ȱct\=| B rDȍyf$ WԦI$B(w-ѱApJ:mթf jg6"F dhӾ+G[ʝ; ݻs*A,M4LCL*^̸1\wb $b FQY   Ar6hH-sͻ7 AS$`!\AC$Z@Ä6N;YË? :F~r+</āSH= MAT/QT/jMSўnRKwQXiU֫5x+R {BUxOٚ׾B~]jj]kb؜:h-Y!łԲelS3VrvtM+f?֧͒=bЪV}-aS+۫v[cۺҶe][Ub},dیMȓnWFtj ic+T֒gkX:\薗 /Ntɫ^70M.G)j^ۚoQk 2p/8c`|u ~/=#OQ8$-F 6VSvQQh!K 3b@Qy:^u`b?Z^4j` BU|l C%ǹuR~~:(M H|NW~Nq"WhRC^Nh?;؆5<:180l8tL횷X5wq<ټ/+V` *^ײ}p l_ߜJ1`>8%h ez+NרwT:>X-СvWVx<ߚƹ1>aßl5{~kKͭu ŸؔxXi\`mvh ~lٖn蒮xV\ 8rP\XВ/\O)爗7Kyo^0Lo8prI(Yn8uXP8ٕ\pi9oxisy0 Y Ǚ]4nP)n))fJ  khԈmwiuk`-ymu ڠ[)+Y荻HVgcepO ٘{8YqhrPGmi xKtX O:ynؠfLYX"2cP9YOpqoy%|TL0`ov؆=zJE*iK ڨl)Ʃ+)qԩEJpqbWplIfhkoa9RɞmУmPp{*}- Xz r਋چ }zVP j `z:]9Xgʝ?؆*r0쩒Xw٫ꮮKVp b ++{k9˚i '{x ?@ |ګ*iLb`cY8 e*:nYxu X9 ɞkz@Bk' bj ML]P~iP`":F;9k djPhdkָTH);jkk ieg`ip놁!,/ #$**12<<$$,,119 9BCKJSS[Ydkt| g b l t }B!BK!KR"Rb$bn&nt(tz'z{){8'*-1,&+0%*$($(! ,ƭ,ΜϻդÌǚèګȢ( 1kN?:J뉒H[$|, (0VƗ0M54߃'v JMFN4&NPsJjԝ=hAׯ`ÊhdճhӪujtM01ݻx `| L0جP0̸xC˘3lϠC,ӨST"I mFo3VAw&ZHμ^#B̺մb=OËAìƫ_O37ǟOϿE1``6#КqDQКnfH Z@D!)šDۉ n TI:0$H#vhF>FEIRcCb#% lBN@A I?rese@8!nytB)\ (t k hFv!|cI4EnaqZqb:t*鯥:oh'UPHŠyylr, \ 0 됳|)JVTpA#L- Lp Z :tlF PC0\J(P2f|4^,RL0\v$#ЍYW%!]T#EJ]'1J tu\d7`u. asT۵63ZMEw}܀+M0=< ^-4G.g2[wny9q~uz⚿.WN츛wB'|3N~?/7#G?Jˎw??yn>|^? {#x:U}ߓB<|f | `?ePpY Fg;my]LH#x,@>.(6!Ç-|握L%!c!dKY~4a*B` H2hL6pH:x̣> IBL"F:򑐼#2&jBXDN~uִ8B)"q Ia'= DSRZ)aXr.w 0a!2̬x&4IjZ9%6e̜7 N`q|3ZLRMm$7JjRDJ.Ir󞔬+JЂMBІ:%D}?%LӞ\'@RDwG$gHϏtDkL1(Nw 5<$趖zc[ :er t`5 BÙV ZL*yEe'*EeVG6թfPJB~ͦAKQvx!MӒ}g*XbGIYbv]+}Zji٤]\lgKͭnw pKMr: tIΊ6JɬNGJ+N6&k^n=z|U%df` U5`~ U \?x`5 'L [’5gz┳SSZYr).&_O{^V2un>u;@L"HN&;PL*[Xβ.{`L2hN6pv~8x~r^!π>lP!5(m D 2(tj&vh&oAtGmdȀ/Njyը~`YE8u|]+YN5k C>6\fonnMjKɵ5m:9泷_">5^@k'LAh> A5jԀ͞t `m;ڧ>7 v*^"207]P.S`2o dÜFy̍EQp#?җnmov_PgVSA}Zs.hY!\8rdBv;܁\ܲn8^ϥnrF(|z9b}O{\d YE zk]] dm9=G/ Exd/@}qFp}.'RЃ";@л~id~Bۉ<>[_8ml.g&t0`vWGv@p~igjAzx7Gw&8=7zjA0u@gr|6gd>h5g4jB8tCXiͶ|R8\w|VqC>G.g'xpd?0oglkkȆFt6st(H|zVxQq0`yw9 m`<@y4 |胞ƆdtksH{؇(AXp<tf! ,eLv;ڋ޼H扦ʶ L y'xThȦg1*!,/ !+,1=;##++229 9GCLOV]Yfj} b s }B!BK!KR"Rc$cn&nt(t{){8'*-1,&+0%*$($(!! @p(( JƤ8l:rF5+hr0w@.:T"V!*ƽu;JfdSkiYo~rZt}cKuFgjhbH "_byKH!$EҾYòbF% \֫~uYcՀDu*\ȐUѷŋ(jx_{}0,ɓ(SDdƗ0cʤq>2tȰ@VLXIѣH&С d5ҫXjʐV :\*MhӪ]{)HV0%bۻxu˫ LJpNm ԰ǐ1UC<gL9H!v?^͕醦}a۸x+ȡ G* ȓ@ BNwسkνËOӫ_Ͼ˟OϿZX'M! _;zWA M6fQ%FBYbϊՉCbܱ"{lb@#6HE)J$ IB6aSOJeKHEE&T &|niP!gLI$ zxf吁'^z碐YcVzc^>j馗駁6#ne*Ꞥ驮:'*kުkꡘVj+ǭvk*|*( .joBdr&Sjh$jGzk,:X!-oꛠB4Rd29"6~؇Nؿ"3·8ԮW۬UI`9MR`vY_[B=M Ve |[Fɐ~/dn6Owz?v{kCq:0 stqhohL6pH:x̣>tX#HZl[lHX0{8~'ɲAqG+Nz (P|!P\\)kZY,hz\eA0Ibl[&uәnD#xIJ6i(*r4rH@Lv~ @JЂMBІ:D'JъZͨFz` H#MJ׉|ԝ9p ^` ^%EOE=t@+j V`RT ؉ժ`>xWQPu *Z빃Z;X:Zv(pA@}Q `Oz4GM (A Rp-kZM*Wy, vz<`A^a`'lg ~m`:Y6y]I%= $K`'A`IXޓ,h; vbWmh?Jx궼8+AB_jJkeϷeG WB CB }{|GpDCG#21%D f bhyF oofC!]j o!EDȰBH21.0Bgd!EB D!CӝDΒo~EZ &]V(BrB``ApE^ . gCT͂6o@ ajač!~ќ!8I$?#(%P "^8Xլ5-ijk\ 9jPBx0WP g"hn1B6XQň#LCXIX 4y*t<@-3tSX]IDqf|h-%@Ӌs28)DHP}@ ̐X ?F6W_/ɄP<-xdc"]cE@c>Jqg  $<O Ʊ#Nf(ÉEW`tsM(^2j[!;7a_GCنbHDTP xHAk~b\o~c=2U4G -K0%QKcJeY).`ˆj=ETBLN~2j K>aFZfE8BeD#˦OJ NJI:w'(I D u5Vj22GA6b1[ `dpk~f@BޑN^fF{l)1@p0.Dṣ2"qKLS\ES(hʤA21^k,*φtJDGD@@XtSRjCD!L3Qve2 [btMsa \!'A+ ݌7G yݳ`~xӌO.:nXADD_!,/ $$*+3=;  $$,,119 9ECKKVT[Xchp g b k s }B!BK!KR"R_"_c$cn&nt(tz'z{){8'*-1,&+0%+$)%(! +ëʴ˽ѝìܘ߃ר▩ 'n') 8p>=|牡pj_E = ɋଉ(S2%/)Z Yc:*Jɳ'IM>Z3fˣH](MF իX{δȴׯ` >,Hd]˶۷p x˗''NLaO8̸U}LetѪ̹ttEtQ,>ͺ^$XDpM[R7;(F{ ȓTΜУKNسkνw0ǐూ?ć Ox"D _ξxS s(~X}~{qX|^>!W&n_ X_ tao#k"$A)֗c>5b} XhA8PhAHS `*:APb% |Np.l A:L'!HY3cg*zp!ezϞh:8y(N*娧!xޢ*"@p%!l{CV)Oe>ꈡg4vRhO] S::%ΈN֦chR@]@ ا7i LP4*Cڻ,{}[j"d!p R00d{m6(!0 hd_%v 2bljsA{bO(oA J s>¼&+dsY3j!z~^A0 !U 7dt,MvFD[) %+m@= /ц8gj*]0p!In  ,^0c 4̡jy9k鐈8.&@m{Ծ z7{Elr ލ#x! m^>FW hq9T@@K<9Q]o Р\4ZVC.l4y`8!F4t c؍hZ<١\"1"$ B-!L" X Q+Ķp#x3ĨpqA9c'ZXlG sE-&FF8 ">zpc d42X$%Nq'C Q*Rt%S9Jf,򏬌,Y+_\0K`Vr.TSl4)j5Imzڔ3ng8[YdbӒtg; LQBs,;MH_4<{T&8˄BM>0$E CPUHńL'JXҕ#'=dJRQV(hhT[^ӡDB8eTRsJԥ:50=SF|PXͪVծz` XJֲhMZֶp\J׺xͫ^׾ `KMlvXϔ4R"8٪-h)cKԥF e8ڛ􎦵cjWβuHPcK'nwIֱ'JMr1家usAZjvs(bWJ7iOLJcè!"إLS:XŤGS΁4fiUF^S Mֱn=+ݩ gXcIVc׬0y+sSϬEfp[bر}b[\'MJ[Ҙδ7N{ӠGMRԨNWV i*d{'7#?]]MY[4)7{ GN(OW0gN8Ϲw@ЇNHwy|;P8\!DIA Ѐ\x bv \ z`򩻀(nrӽ>A l'}1 8ރ >/]x"Ԁ.w$ `^ƃ Ż%'҉ֻg}xkLzߋ{/xA̠Cn{.Ǜx@L/}CÞvA4 [ zoA^q_w}TqgGxp}q'~&87zMgx2P$x$5'WrB`40G} X/X1yh{G'r@8Dz3PW|.SgxE@-$D50;0-xr9qA`u2wqE} ׆p8G18p)Vz:0@H~_hrf2h}T}E|qx71Gç|890C@Gx[7~n)RW'Glzz-@u/z'X[8GT(gE@}wqبqnƋ<[hx@$<@5ЌG(HX'=xTg pWv㘐 z7pi8@u|gTH:pXGHrgzykgv|'B qؐY/Ѕ'@[8~Xw)v#7v>}gu(2yȏݷ:z<CBҷq!,yLjڋ޼H扦ʶ L ĢL*f)JSDj*U b; |ᎫWh%ҽ (4aQ!G,/y  #&$++=72;;""++3366= =CLGCLLTZRR\Yns ~ cjdjs| g b k l s r ~DDJJSSYY__A!AT#T\$\ddl l} }g&gn(nz*z!""$&&'(8' +-1-&,00%+$)%("!  KŸΗљիߔϯ⽖ H>KB\p ŋ 5L -AC(Q0KScؖˍ@dx` v.ixkw.*HH0`!Gҡ޷zѡF7}.gخ2ܗo,_/o HL:'H Zp~ѻ 8(| !(Z@ X8̡wobJ""HE_5I; d~_K(AƑ"x y|1, xDLx6ɇtr|MbG* !26IL|L"JYFÖt%(yIKh%aILNn(f#LQ⣙%+LhZL5MLr3Ҍ5Me,:sɍu*spg3yKzS'1Obә'>)Og4u泡}b@! N^s'A3* jТF(/JX͆>1:Qt` (HCY*diBGwt`$a6xSjOЊ2C_BjH|N7jʢԛ@]Od2!Q:L]Xɽ$~ ǑV[ ,%x指OIGoXıK$+b}p5,hG;vMֺlgKͭnw pKWd=q_A.WVCunq0*7ͮvz xKMzf(_6&|-$jq7m'YTRVwUL`_&X aJV¦_{{i?L I%NWԂ* G/bCR2ݱ(Ld< A.,ZD2yyN9(xR aS8˄re2`f e#;X3r~MBЈNF;3C,Bv}f[b;Xc~38AP`;WV7j!' pd"W#fwb Q@Y,;,2i^]S/! = ^N#]a{M5CMDu'wX]O[NB փs1Zp{4h="NnyC|}V5q [&,K.9F/Q޴S,'<晆ێ9/5Θ{ƹ%]_6vxk7NhOvskCNi{O;񐏼'O[^ksOK=_mn橓Hb\kgDA#z-^ wE>ߎ}wr\׺ua%[gqwd?A0v2}_'Eߩ xϿin?,Fe+4'bI7eG{zRef 8tzfuEdd(zyBuydzrGs$k%u?(.284X6x8:<؃>@B8DXFxHJL؄NPR8TXVxXZ\؅^`b8dXfxhjlxhpfІ3qi@ht؇~e`sHfZh Lh0|x6hfQxQ`LhRHfHg8[`rHf`efp؃ǘNpM i (؄iTȈMlf8Vp4Xx[0QlPȃx<7(h3hpYm0JQp}yȄّA")%9hT@e0cY`hHh9i387C R4h\pX2xpZXňfW3Zp_YpV68z٩ZR鞽j꩚*ڑ h l ګklХ^U9c@z湔8p= !;u*vبyx9-{8ijii4/:ɒ do*:V P0IZlTk0UХ *k!;7# %kZ" Q8kXX{+x{;8F0 8HKdд^PPWU[V۹ڹ@ji dۥڴPAAJY2xy_}z(yh  #z8ظ-z dK労i[ﻞj )P ۴ڥh;8YS\x0/ʾĩZ9y뽌ihpD+jKy;[Q@q P<oǺQжm7Yl_QIċ;XlCؓ],T:WlF Dȥ9bdbXCZXj`ۯlR+ȠLcm8xz؅ܑQꪡL};fPǩ\˰<˲ZSL Ƀ\銩Ł0i$<\|48#%#++33:<"#!" .,, 4!:2299#B&I'Q(W+\,b& F' J( L* S+ [-!b. j0#d1"m2#s5#|DCKJSSZZcmr{ g d j s }BCGHHID DL LS SX"Yc"ck#kr&r{%{7$8&!"#$&'*"#++,%&- . 0!0!1!(3#4$7&8'&()*-1,&+0%+$(01$+!213! 466889: H`A\ȰÇ cG3j(% 09±IqxƋ.`` .BtӅ \hDĠb0Ѕ +VqeF&Xx3a@ȅAlL %7I4 !5N*.!`8I@-BX!8DfPQ8iѕ*lІ-e!FRCㄶ6f(pbY A^$ of8h`7=ZҀQ3Q 4vL8M !7ߨMPN P@'\TP3D4Lא A%Fq\r,?@ UۡbG_t#HDc&)NAK$) g!  %2 j@0 ՐpDys P 4<쫝-I,#B T1A)Py j p #m 08`~߼T M;V<` YPp!3X4 $9X4X]`ũ dp D,T#i$!G$MP8  pÀ5ݴ " M蓏Pd 콹 PM/]镘?<x!:(0i c;EM7Uo 0xzIPNH="g;L@ 3TO w9τ< "Jx!`^!:Qȁf@Tf"PEm 9 H2cJ z!XExcap!&ӣ I9qLXRe#!'s%7Nz8 7yCI<*WV2 @豕̥.IJ1vĥ ]Ib sT%'f:񐺴Ij1$&2 IjSt.|4<&$$7p>d~Sd'5O''By#!Pk.=3ZH2t"Qсrԉ dEz~1J `-m#Vk_ۜ(־ 9ګL c7,v! @8[R7+LFDC+~[\Q4Nw;1b!v#d 3:M!*Vru.^j,2?fNЬ6nL7Sxs8#3};NI^Q;TDЋ*:i Ї~]wqEHM=Wc`5JT'$֬檭+Ħ)ԶzY)lyĎeL0VRITYVSɉU\ UƐgk&A{ny9 9rɖiIL{y({X]X[ɘg[[~f"VXzՙf8d}_E6h5ћyZyɜ֕I1i}9ﵝD֖YXz}X`l9KQ}iYDXkik[ZP:w^IpwՓ=zנzy6InW)NaȠ*)$j(b,:-XE*X|zџ_iJXilJkYi:j雺 9ɥљb:dZfzhjlڦnpr:tZvzxz|ڧ~:Zzڨ }~0*lP~0J rpc:ocop }Ц~ڦbZkol0}bڬКs@l0ڭkJκeJ⪬d:Z :j m}@{q 犦t0Jc:Ӛ+h";s:&{(Kz:mr ro`rkjmpJJcJ[K #{){l\۵- peۺnkns F˦rPb+y{+;c"۸o Kꬊ0knsn{w릆[jK'kX;o xлsznNjۦ˦ӻk+et+w0n '{ [[kнC+< {;;mnsӫJ|+[|0{ e@+|s ƫΫn}0@ۭ@,K(PlwTx/ Üz5k=L b*ji|~ƺ ({Q|dz;Tܹ mPq:; rnLpo! ,/$$-79;FJQTZZdht d h s }8''+278`&`h l0t|fP0(rCmEQSU jX1$=+|sdd W6k%w@Ddf}M@"oyI~`& ?@ye& v8`ԼbBCލȱk<d П'`HÇ#bQmŋ3򻧱@(Bē(S|\ɲ]ʴӣ~aപի."d!֯`JW Ī]v?ʝ[խV0,˷oPV=(鷰ᖀ14yc?Ly!,  "+1:DJPY c!~%0YAi%=gHik/$xF]! ,/8 #+=2;####++++663399$3!> >111<<<AKCKP[S[Yms { ccem g c k k s s ~ |KKQQXXB BI!IT"T[#[b$bj%jn(ns$ss(s|%|z)z~4}{;zwMuzCyqZouUstZqmjikrgmpii{dppp   !!!!""""*##,- - 0!#$$&0!2#6&7'7(8)&'(''((9*<,?0=-8'9)^V\UYQSIb[urwrI=B4@1@0@0LA*'-1-&+0%*$($,!23 689󇇇 (p aC"JСŋ3PȱƋC"(ҠÒ(S,IK!Ȝ9sʚ!] ȳϟ@ JѣH*]ʴS68;j*+C#Oٗ-9\lB:|JݻxkmȪVE~#ad+V!%+AJ 1|3k̹纋iYOF c%Y)SϸsU,(Ŭc+УKΗ # (q=uZL+ #*{A-yd^czi^xat@ 'ؕvWKEH SII=,"qQRnA#*c@\y2KA yxT|飑~UgR(B \bYT{dp uetvSQD<ߦuꪃ{R :j{t EQJP@ <0CMU#D%t@la­&H V@*SԁGB)B- + B iQᆺxLм+ @lǺA)l@|0n7\S6 #V[nXmt@`G&m?SF{q `Gl܂pa Ath4\O t r=Y 4k}evYtѶV@Ђ¥x7]~ƃ C&S 1Y7ּUlwRPA mpXޗB- . +D0⊻D\^=} о-0@!|ȊWQ2Q*wD(?O3 O" Yȫ~ V(vl Jӣ  G<@pWU"x#$Y@øD┷aT\)sNԳD K\j#k%a. :w p~amX L,gsìZ@DHHؚ{z7Ջj9W7D@k)?' ATGŮ61 уATh挑ނ.-J y^@(0o3^֬痺`M7, hjP-J[Ҙ 3N{?4GMR0Wj@gMNQָεtl^{5MbEwhc;وFv] %?.6M'PmrN }]V+Ղ.'|sMys̼k'—RpGOĕ(h˸"K\) A W 41˽urhNR8SfP=#s8B1gBCykt%I0R 7}8t;gVRcI xnx]gO>4Sfc#_(?vWO!k<?g+x#|T Ǐ$|)_wqPDJ W[I=VP{,#_G>+LAx֋~/{7o~?_w~~w}W}o#,`09|[7|0 } 2@!lD8&8cq2|58h88r-ATb%{Zq0LЁ7i76x!(Z؃GwCMIQD(3DjMPrHЁ?a5Xb}LJ~8:8H[hAAFleoAqupSXeC9!,0ViYh燶NJX hf0( e8,[v.#:]@%mpOS"0f0i0cͨfg0g`XD~P` O`M0QЌQ@ipS(O+\Ofhׅ\H~~'(Yy~7"%&[p=l.m%'6*H#0$9 !Psq%90*').I08Bs@39"p?-PEz!A x(}((WiY IA8RU WdiU `=أ=O0c " &B)|tJP 7tixi Г?iPjsqC?V'P_8~q[ z'tL2@a%e"7T>sx=)9߈j@I`7X Qɓj@y0 ~nB|اRGU GrX !wxycɎhDOAi`Xq%9(Έ-Ej؈iܩ )HE ևߡ{xs`1vgzP2bYU[T<@SE1!jFj߈P8BZ!sh١j)Je!-Ђ(?Wg*j (gjwr5J2@ $J<D!S!p\JP)~jZJ@ܘ߹j?1rPP|< zkٖATAG5A^$P?EN SpaOa2u1+ȂlpU<, 'B5 U\#ɫ85ButGt{QgeTz>EF6s<Džg 6,| ' /m_g#;bascL^CL\b@mE ` >4tD#zķr8ˆ-TbR, @T"9;ڣ>SQ F ` ` 6Sš=<! =ړ^Â`64>=zN`85ͽ` P` \l7B9=V}XM!=q˽L-U`6]`ah &:@uV\Ǖ\A\\2;U]g% 0 j[[DϵˊY,[fqk{¾V$:gc%fͺ6^p:&=B'F blV ?<ϒG * x'IJM\h p:`7*x!ieUfL=[ =G1;0 ݗ;>EA0M0޵G3wRq =V7 w& ߾.nk}fz"nC* '&Nd+/~5 3?gU'vt1 A=E Pr7+^1 UsSIbvH_bGt2jwEN mUDW XwiRI2~Aq一szצn瓾 a걊问~騾^k>n~븞U^i8`wѧ).Ny 974nnzqWϾ~N1p`Naמ~\; `^'e8{_ 0yή./4_`n63n=?片D_?FAR/:62:n*FO3PoaQ0wbg{m{s}iHOxSws;O锯q-i><-O*m$>O๿C{yKakV>ѯo&? Navo}OO yx"7_j? $XA DC%:\XqD'*ePB7 @cF)U|hK1eΤYM9uOAmс :Ѵi N UYnbUaŎMhO_x=[WWy \naÇ=0ڎOǏ ,8e_СE0ΊQ6zԫSZjgig~r猤'޵5mf^Dr6sJ~q:ŏ1DǑwúO{k'߿xˏ,.(4SAoB A{ª"D0A bC\BK DoÞR$C14qF n*' FqH"o rdOx IzH|H, G(L/J#([lhZ.{$I&N<41ܴN=UtQ<)oM\iQJ+RLԫVLSPCuTE%TTSUuվLeUXcVWgV\sͳV]{W`5Xb5XEvYfVYgvTmZlvQ^)0 \tqjuVKGhxwkw` މWs  va+6b+.xb3\7f;yddSd[vyT_yJcf9g{.qgZ0OjUTf$PUt6\BЇAp(.XUs)X:PQd&0Wjf(*WR`"$ NQތdWA MTB8g:*Ɓ N(JWԦv|h*P UUD%* j¶4u{[IV$2 >U.7O[Z͕soKMLW0gچA -ij{סUm{E7p hm7a{_ƶi~Uή@*&1P}UfSڵ&%q jnD% 8bCJF|qCk^Vbk׼>%0 &6dSrkweUpj$*`GD(lMzٱ޴%Rlju3aˆC7Aa:t! 5k!Z>7 tXgT7}49yJҌ^Ppxj.TBYhЍv>V.a>4hK9'@7\D$rCήcM+fw^B˰$[Kޢ@LDf7Qr[S Wkz)Z.A%m|9FA_CNkdħKN֋We')rDi>\ek#pNr3$:^t :ey|15ANbr$H gvpp gw79q{/NXnWwR{*8 OP"H&8 jׄ|5MCԓNlZMcyOO=x99~6ӹqJض8;m/O޻ꍐ:Uԛ'Փe+> ~}u;~+w?D% GHPBrYn@i*@?F9 {"A80K :B>lS>KLl0xӶkr03C2q?Q67C7&')S?z"S8NHTPţ%kcj1=.4:S1ҚF0X@lړߛ4ji#"+=/9Clk<l&7c+xw+Dzz\q4M|>Oo,E<_4.UIW;"dHoۄ\;iȊtHsH-R!c3{L8ƻ;WE(Ko P(7ܳCzI {rS̼\$ġ,J3Zo:BHK+ۄㄮ6s3G tu8Db5>/x:t| ',ZAc//vڔ7ޤK4JGGDLK|:08>[H?zHdK"5N}"F̸BSOZO4LO'EO%u7l.1(9:yGt02>(Iw*?K2ŧ7mS}Ӧ,<";/N>dB([|RCO+iOPo$)MВtJS@H3;Y4?'CHWUF&OJRݧ Ot}&R"QPUE7 WBfY&2v6Oke'l=('wWJe-tVlWw}Wbb&zıW|W}W~WW XX-X=XMX]XmX}XXX$XXXXXX YY-Y=YMYY !,  #+2BLPY g a m!~(a{ED)'/r|"A$KA pq!6,/ #+=2;####++++663399$3!= =111<<<CKCKT[S\Ynt ~ cjdem g c k k s r ~ |KKQQXXA AJ!JS"S\#\c$ck&kn(ns$ss(s|%|z)zppp   !!!!""""*##,- - 0!#$$&0!2#6&7'7(8)&'(''((9*<,>-8'urwr@0@0*'-1-&,00%+$)%+"23! 689󇇇 H*\ȰÇ HE2jXŏ6Id(Ceɖ*3œIG8s@)O6iE@ģH*]ʴӧPJJ*ĠIZHsI&fQز0E]+V'Ώ?e[QE˷߿ J$W2 ]8Ɛ/iѮ喀̴CM齑)Nͺu꯮#OkyhKLjھ N6"_\lm↬3سk=6yJӫO9-r#b, zPPdpC BބSjUu{-T0vT}O_ `C% ,6@8A- T@ 6p V[ 1MVi[]ie\rLZ⦥{YeDxB#>qg$q_h bU+g 4P.t О^G @7W$ju嘜vꙦi:G *HCK}n@NepchlgUN)(~ոB`R)A4ீPf:f 2Pq(в J@FoJ(V-P ,x`(B  oB !p#p o0,,.x  J*@kZ -qp./A H}@bh dPbk1B , .%(=Ȫ f(ZB mtT[Z E8ANC-@EtFoݳfn{-`_vLU,h,;6tŴ 0B'  4pK,,=v:n Qqy3~9aqal@hЪБ4zDSf}3Ȯv Mq(n=miOȄ(`9Cɏ~N6F<0-@b !. lwCb~' bGɬ ěSиmU4L8 & $A C@OK;@܅c*0 $Ytn 2Ўf4@(AY $XQc$ @ǁ1m$/7)r =G@ RYٙU ɃALb'@ƃlv#ArD߉DE!z h4Vܢ6OEd``t,5Ȳ*ZG9h6sK#bu ї~fvM:oֹ=4q~ D{`;]T>?; "s/'OS7>GO-OWMdgLHϽw}/'>V($[VSTHccRߔ5{OH&gpOӐ?*)Ry7"NX`GT;L$L5Qeƀҳ D3qM#ԧr [ XRL7$h,؂瀂#+4XOI*%<66Sa@0xbC ~1$5|„THaG$1py[GU8Q b-AMx qzAAt.g†OO(QR!w3QA{AS1%!b($hbhXZQ88Hw)롇qX(6A̘yxd/ƸDט ]،hИ1HQyH8X ؎XH踏)qɐ8IhP89 y`ё"8h1G@`|q&i X: i>yhNH!!@H)3248*iZ>*YqG'r-F5ORo3UQ^X9:鍀BRsy2+?`0O19F׃}ȑyɓX" I (:qhY.iD91ufy@\.Ж^\*8Ɏ+)9<) )u-@jl4rtAS'cG>aC\@_Y \;]@]@9 z?iFE`CGG_9 Ci}Y>ٗ)iJ4yeI `>Fs>mrÔ1Yy;!`YiY;Jz ѤE D^`ZSh D 1w։nʗ$x9 I))3J42AqI`;6FetFi/!P_*@s::*p`Y [ڥ_ `@IA XpC${qx=(*]A2 YY} c h!'I@>6G!9!)L ZS Ѯ& \ ]z?.vh'C{]ىȢ8Wɢ(9J!QNE )>Tl$AFɟ Fs:`*gw"X#ͺ OKȇ+G(H'Z@N')KDJBkF94p+\ЪX[\qqlÜ8J ++qU4 .9A6&l6!1V@`Y :F1@3{;ٺ}{EC~@lj@lH񴚈|ii(^KAbo+;r !QPkciۥJʳ{EK(%"}% Kx* ܼX[;QK 0@js,e+7"0sAFJR)4\6, [@yۥ]pCCy|8ƙp [Gk X|#<"']n VrMx|Qy르[*eǜױ+|uyͤ~zh|yɑȔyEXɘSȚɘɞqz\ʦwʪʬʡ%蒠 K(蔢Lu</z}B5+c@aPq Qz5hUJ+yLa>k`;y͋@Բsaue4aU#-UK;lmpteWbT?/`>#'d=>|8H4L8Mj*9e59|*6oV}9г{&pT@h"jqBN=; 9J>$!4BSPBۉB+J5?CCOmЃv}vcj@ȗppFU8ck9YaJntQLt?ūOd(JsI`[N7ufI(tׂG׆" K`mpA/,ҭߚ]rEJQ!^f q:g{q%۳`M١K3#->MJ>{WϽ5X]X p` 4,Qr\r[lmMpB,@#/ p)b;a8]D5 `` ` ?S!B- tڮ̇hFJMyr`>{GyĹXF]>)dE P >䋢@8b~R{|Ne4K`%g>_-Bl)*K Dkmkkvi"Vl6 @/.(pl OQeLJqq-yK7p+gۃc¶u#'ξJ-ws5s:RsVQ(:a01LC˿T?u `uU R`m '$bo,>do~@񡰛A9N}G9w?,Fͤ!G{O'oRH̊nPK-@ @  ;QN5akrs^ bMb`OMAj/vh¸(!. H?x>P <ǁoog(|{[_OQOl |_ÿa{Kؿ{?{˕U[贋kϿl $XA .dC$NXE5nG!Ez PH"M"O@3PB 5PDUAuQH#t,5ɄRL3tSN;M(I<uTRK5uFOUuUV[uUT_uVZkU5V[suW^<1\{vXbˬXfEtDN%tv8o%3qLk2#:2[3$q _ @^M{# ]P"2xbr5< b0 a0Y[k@-xp\kxe9_d,ڢh,jٞ$7Jj䋃2-'v́ɾolv{宨{4Ԏ+Go#G-#ǻǟ&ܱ*κs.G\q3&j@kJut uG_l<|co=rY`W/z~z֫{ۥWsq|Hÿ¾}ӷ]o5 ⧨k Y#O~u~pBAʽ0.EKWhf,v $6H j'QbNx %a }uR5a3ERʇC$b_B#&QKD(ЉQb7E+fQnfuc$XM kTHFO)a( ȱa'4̏kT@aeπf1HJrRU&ب>rғ$XJTUPe+]SRR,iyK\މe/kK_Sf1[Sl"0Lh.$Ѥf.wXMlVSrGv-+S8Ti> lI BiwJBw5>u3SbupQH  D՟(Q1c(OKJ:O4gJœQf0 6:N}TC鶈zK SS'|^]ꕩ vɪOATuHoQtᥤrY&mrk VNsEZ8G:qXM:>K^4$=gA4nt'\ZD)-יR0P x,^)[#gH3$ a|\08m~fG[~wB[v =F}H:s2;\~9 !s6K\ hxnO!$'{C-vrʡr7z1m K<׋܈;YnBDߛ>?~̓|< g~2!6kuwZ.=[ov˚e0y}x{c'~l|U_/>/p?t  KX"0C>ߙ39O|#Ϸ)rBBz&>zM[_M=,=k?.9CȲi6n#jk:sAԲI @@623G6liS9dm >,3+cG>`EHK0̾4\$3M}> KNHG?GFD(E>(Bd3[\ƿг3K :O۫3TJ)ϯdK4; E@[:[уF33ճ̃lKL=O%<0LOT4L@oθ[IJHu=.,LMM:T@2 3c9t$M,MM#}M>H2|R)B$Θ@xF>>@,H#>E?N32m:4;Ou{:4ĉISDG5HDӵ8FEP ;M<=EPiPj$L{ݛ뽸Sѥ;7m| R[/QH|nQ%L!CC".u}&)U(Vne*.EDJ<ke¥[4kS[u39OPQMKN?PJ?͎'zW2{W~ԳӃI -I3-SXATB39 9X@Sۃ < eTu5F,UFA <׵U٥Q3ѥCUBpF`،C2-Ż|B@GD~T[ߔVZy7z-HɓC.k:m$$3WƵ\ٓł%PS3s HhI W]`c$`Mݾ\|{C@2p@ޕGYZ ^b%| GǬVe֧G>ib)C`b~\NDȷ|d:EXW-St(kǣc9d9KŚ403Fvd?+JJA ܑW<S&45P;5NȜ9f]j%S)g)b+S/ >4B&FHw^3[-3i6S}&7ɣ0\z>rvZq M[E(>FLS:,KKʭݳ9IFiVֳ.ܵN^4V:m]Sbd!]>D@RB.^jE@{dLFh C;hY3ٙ^\>40{:|AGHj4jn),O̳gTF9ho<{^4n=3(;f31o?pg2'%sjpp p p p p ppoq 0X?H `qXq8߀qp!ߕ X0 x 0 0') P+-!s[(r؀$7hr@  $7+=s- q#sC(Pr7GFՠ;s$PHtK?tPwO_t#GsN'J/L3o P@Au]G\\r5/t)/t;rhvNH;Nu_u_u[vIt#p 5vkFO;;7@u#Ovpw+/wow ppag(r3 N XgqT7seso'xrx 7r3V'LtxEy\xxrw^Ou8T^, $s0y_37r$Gxxz@v#xr7z Yoz7_rhw)JW3WO{H?> !,/ !,,1<  $$,,119 9CMNV]Yf b j s ~B!BK!KR"R_"_c$cn&nt(tz'z{){8'*-1,&+0%+$)%(! @pH$Ȥrl&ZիPz``L\t@k5!>^_-v']}֙K|x}`[wI#,i[٫ _ n36*Vq+ %5$Q.S`,Ay$_:A}^8!+DN/yrkx9]@(αtrF&:PH*ZX̢.z` H21,@D[lB!xKCNpΎ2̇G9$IBL .B~#G!re˒{럛% ^R$19 PNˑL*WVrcce8]sU=R&#;~HDbӏڳ%h/.ЄIjZ̦6nz 8IrL:v~ 9mpMh5sp@ \`Pk-h5]V*hZ`o2% po>A TDT4PACOPMt*OwzE= zӔvN~k ӜN-fڃhMkYʼnTum-hCmꃸ`=@ lPTf}jC|w=iXVs+(WMZ6弬f7T =+ ꃓmAju& lVl)dz͟lOSX^&r\`,mYzt> j&p \zsmoX>PoU^쾵6-_OA L֠1p R`0׼/6uPljؚ]MJMZ6&N1sl&X*h jX&xpYg`@ǝ7?>A`bZP,J]栭=xkb=0 (r4'jY=,hYMРek)/)xz憦9oAca:HOx>3}Ԁ9Os@]F1Aw]`h/8ǭ iȷmo{zTҺ洰]VACG;زݝUc+Z'xt7UN`{ɮ`u&Ulc;9 P`a10xM ȚEKōRnr%d:ozs-K毐iR3!,L!$#++32;;++00= =CCIKST[Xckq{ g b k t }A AS!SY#Yl$lz&z(*,,0235679:pH,Ȥrl:ШB ؤjzXl}<8A@ߐjBkdeϯeGWB CB }{|GpDCG"10$DfbhyF oofC ]j o EDȰBH10-/Bgd EBD CӝDΒo~EX V&BrB \`ApEȄ^,ͅgAT6o ajaM!~ќ!8I?#(%P "^8}Xլ5+īkW\ 1jP@t0Pg"hn1B6XQʅ#LpCXEX y*t<@-3tS]IDqfxh-%@Ӌs2]8ԩDDP}@e ̐P?F6W_/ɄP<-xdc"]cE@c>JqgM Y #<Ʊ#Nf(ÉEW`tsM(^2j[!;7a_GCنbHDTP xg=s "{)跟1{ \nzc=2U4Y , wH ,eD-f)ET B #bzcnc,8FHi: ,c>)Hc+zV6)ޕH' $0`]XɘlCofiT`V4К!_$9w4,27* [D]B l @w" A84 Ti2h8z!.8 wcٴ17 0I8lH'8,"hFRu(J,L${pתLG(kcmTUͮR{l.рnB |6W~tp#Jh2! ,/y #&$++=729<""++66= =CLCLJTZRR\Yns ~ cjds{ g b k l t r ~A!AT#T\$\g&gn(nz*z!"!#$$"'*++$&,- . 0!0!1!&'(3#4$7&8'+-1-&,00%+$)%("! NŸΗљիߔϯ⽖ H>KB\p ŋ 5L -AC(Q0KS<ƅ=M:`Inܩ8\+-҅ -ŇB0ho'Tt%ϯ|el OUBpQ.HTZ\q|5ȉLzBY%6ǐ e%][D+׶etEAE`E'C E Ռdeu3N71;VQq7lg8p#UO|G-kÍ!pCsA >=," !l#l j0J(0! VuDPFxR.p݋0ƈ{" *\%*{oֿ$LLh@]{dF:< 1! X. ә,CJC:~6G(R{[}@`v4uXFi cDwY[i;:-HHlWz<= z qPi%")>'Ҁ!L R|$NH"º껴҄>g1!sGjmo+""(HL_iL HL:'H Z̠7z GHBz(0DҢj&PԁF`*H"HLb&J!*ы #{wPJ &J43ƌeY,G("d!4G8w爎$/# Zt+w"jcd5Ư#$bjhĤ*1y(7G:)E4D*Y^ҕؤ&q anDf2?ɐ_>2IMcNӚǬf ppdrf,:{u$;yNtsT0x ڼ'8 Ђn4 Pvm(7s)V(-QwR|b8A:P>JtI9yִ#GBS)+2JU&e#YTefBJaPjBMm%N߹}Ԕux!r*X8Tz.5nd!T1B,':yRubD'5l`X4ja9Fv 4Ѳ$!Y (F(7}1 -lg"ֶm4 pKMr:ЍtKZd'u{BnwVQnu0jMz|Kͯ~0jZױ-KD hq*ql,H 7&bG bޖxz,q_L451jX: #Ocw@]24LeC Qrq0b1fO8͒\(%s0jpVJ>M$`|[: z6sC.H;'MJ[Ҙδ7N{N4yh~6~_i7[p΃}G;˓o{3#>΁X{[}Vrw`,0ᑭlf'Y%jqS< d'oGw GnWs׀uy(uD7fMgG}F[u"v|iug%vhDVց {'H25r(H{*|g@B8 FxHJL؄NPR8TXVxXZ\؅^`b8dXfxhjl؆npr8tXvxxz|؇~dbGedЈXa bXPd``hdp8JHhbeXQ@`HdXfȋȊˆbc@xY@b@8a Hb0؍e Z x_X؍aXhè_@aȎihYPx eQeАFQ`Xh^Q( 鋑8(+)*0UHؒ4i7ydR ap_W لxШKH8FhQiHZPVi0hbوXV@ٸb`UUHHo% b`xٗyrtybi[wOYbpXX11)*?))ȎhP@> PpP2(iiRɄT`YyHx XA9霛x iؙGO؈ٝP9PPp\9șL( _pW`XȏU9PPɐRhXJ&ʄٜ#Xf* ى,J3h J8Haxfpy= d)>yMإ`W(9fJ) hYSYHY!e J|$- *?*&ʎ:jYY:鄼)JE*Hڤ_XZPcT bH^ʥZeڋT@4C \(P0hiTQGFGX ̙ )x J Li:yHjZ9j b Fh/I[1ڣHh gph0[PSy_jkr)Ԫ츧zZ+iX.K* I}*0IXp YX*i`T{*::RWu*{:c*ر:Iڕx7a` JiZX:թy7j;;={ȤC 抟Yp> RNKʹX V[W빨ȏFIe;Q˙;GGÙKG(Oi9JHꉲˎ蜗xڞ )]U` i(o+p:iڛ yY*ʼ-;>i1KKYxɸʽ7zbT@Uʎ$ګ( +>[\Rp\_PWln˗ IhJO*\Ka aPNcOVkhRA?ǥ{1^`ʬv>ZG8k|(/W;|j,\m(Y{+kɨʯܨaIH)ʫʵT{ƌK *)ujD?1X؜ڼ<\|-8'urwr@0@0*'-1-&,00%+$)%+"23! 689󇇇 H*\ȰÇ HE2jxōIǓJDreK,cʜ͛N ɓ'M>O,ѣH*]ʴӧPJ'ƑV+n ʬUbv̮dficϷoV+Px˷߿\+bD1E9-ҝ2t$ϠCױZ;S1d$ ΚIͻS[DZվ(*m89N~) ",wl!5pt8>|@С4aCA=CyCF^Bqބb)7ty-DU4uS}PA_ _C% ,7(DA,T 4=4@xI$SUiAh@VYlM,}IۗyeA PoFS!~) TІ-hCЁ@zdB @vVd^e9&j E *蘧CL}^@LepgmA(UOyh|8Bi`RP) >B+P袪$鎫T"0CRB.lTU ltR@ .~ %Dz+@ ]"#@%|#=09p)RGҐ9HpPr+Ѥ;Z -r//Q I!}Pŝch eTlAB - z/%L=H f(ګB Xmudj DU9A^-@U_Vݴv_n߀_ou',,h-Ԛ,;6tċp  0B' P5ЀJ 4Hҡ[BCU)r真^l/S@ 5b<4ҟZMK:&/( Tߌ0'@?~ e/Iߍ:q T4 cS.Չ^d%' k.l!$p-/d_lD-lJ%gр B=ag6d&`d~C %A ȭ YB `a  rN| G8AL,)4ҕ@)E ؜N9d'?)-(*%21Np A6@\ D y"@ƃD5޸򥱝Ɂ;~EÈzn~[ V  dل&F#bA NL8m. eGr n!H%J5CISd& %0"/xY$0ɍ6cyTQ x r/r ':HNsA `fY=юTT( ⿁(t5D PL"5j3}8+LL$I_ dBv *i[T"7JJ4z#& JPfDn~Qy[g9yFeuo^ OZ7*tLQU0ȡXT-5YQ掵d &罬K0A u^ރT;T*mTj%Dm7!u6@hx9U 5\49=hͱR(p.w j'H`*=6$bsAm}_9eVE%i$+YL&hߠMhA M\mb @ PdF`&Nm&Je,Yx d:Y|`FU(&T! IA%lgѥHsq|^SLݬ[|Q0osEww :P7%SW|Wodzh}?cL}gzP_Ə ^p;ߟu/[Ͼ@{$OGۄ&IOۿ)ܿ|7xrg'͗ I6pTӁ$X&uy,PT0h]3"d5!(:<W3FF>foGxGY2#ЄT>9U4ܵ`(Waxh|cx9bipzkhRpxzHdyFqtX懆R )E%-G Q3(DZ'xw%KfqcA!S14!$ȊH$1ƈ!XVь(!`QCrY1QҘ qrV؍e^A$4a(᎘ iXHˈ ) dё y()& ( ))9) ߈$RҐ)9$|Hx9təiɛT+@a@M Gcy' 9R (;AɚQ/ǦIrZWTy:wB_.paF+.ȝy ) Z8O. ZH.DuB4H65 Z Z0!a3AEM,j0* =Gpo1j@Z.[^P[L(w@8ෛ Q)gK锛ɠ0 'R Hc5#'e'?9# **eγj/L*_I.Qr7L#~9/މ9J!ٗZ*q{te0B"r`KiHDH/!`ҩ *ʩAsZJJa`@aPYQ 1[7Z~**Hkgqi*l:$dZXYq'*KP@IY9!M[ 3+'* ^ҩ@QzO03y O۔zcI؇¸S) PX5$pdFg҉Q:/` q ͳZ@+a@*˴48{](gTKeihd"v"mKsQ9+Eh!pz q=K?C[/PW7 ({۹RdZ3B"*Df&d'" ]"so{{#><˾cK`@=ZZ˥Z]H;Rmn(L"Bcus+<ۣ1* l@f 쩋J{{[6JA7)j8帵ݩH=<״Rso? &@º\p#C^< _pEPt{dž} PUw7~mڙP/A7"b#b/P!+-i7ٗSD|ky.+`,}\ެ<|r ~7l|mo |9 dpv'(Q#g )N9b0vHN@e "Z8+mw`~5'KoL"͍s5-sG' 0htRP6Kfa7 kX^%00j\k=~RL#@I5Z53e :F:b:Qvon0I/yr q(l}AS~k`UB5kk,3nvR}| :Zs?6T9;C?ĜeȴZ AH qwz qx܉98qpW}fk:ɥʬKSCRTy$Qɴ(tLJ^L87uIE8_$I0Kw ./:p0Ӣ=-!;fSYSAA@`tz?GC1{N@Q[C?#-?>LG@5Z6ZZ p ,ORI,`**aed8`5 `p ` ɋ@QCn;wmm8THZ'q( 0,YKWfGapV  0 P0 Tܕ3鐂"BQ9Үؚ|Jm!HTouCMC)>~r+*#ndn0nl"on /]~(q /Uo6#PЧ|r-~L8pc#u#:'Levv:vS21):_b1c9ԨBG.e:bSQNZjȠYnڕU7%[6Siծe۶WqVHyE_8@aY/q,@q佗٬g Ef}8k1`;z`0 MkώVs=v/^+lk/ֱ-ʑˮ~#{x>}=$?0(b`n*ZȸpÙãn n dDs2 E J,f,6sѭ{0iGp /j$rɩ|t::'&2R/)3J.z֪.dHJj'JF|iK $ :-SNsP5J(8D~H($UT1D휴3фJ(K#]=S+PU[uUBD58g3!]{jT_:Y5XdUvYfXgvZjZ'v[n[p6\r5\tӝkMu]x㕗[M&^|w'_x`%`V\va#f Xb3XM+Ђ6y:Rp7Jێ5ѐIU!-}L5tQDfv\TZ™be¤9a0 ?ENMx .5=ᆯ)иnw>5z81φp{f@O.h!G#I#*сVnvIχ AׅOx?y߳_5b{8ݗ>;^z0:}^{u(z{?(k"OecdæApwT=x(эk`0H$+Z" 0'tXxC T H"Hհ8$9hiZ YeDAb!׊xE ZdK58eKNT aĺ-}[ G@,ZcGXl{#s19Pa.A&RHHFRY$-yIEV$5IPR{e)M93RRX*YJX̕ThyK̖|62㢀/F6 \[ߔJmE`r{hpANry6W-A7e:ԙSJ&:NxFkg={5O{Sz>O%(kZP&.UhC>T]HD)zQZ-F9Q"##2|hK'tm3Y20 XU@E1Oinģy*4kՇ22`O6tJ6~t$|RMUӧ5\*41y쵆xla2E&m2SlcXFv$ERP2Kd(;l Ï|EC҂Vj!^zFC dF zp*@zHuҕxPPow(f͚k-xڗvAUJ8,{]w5/!2NnZγl6Wg$p*'i2;`v]`g)fq[ X`eZJ&6i싫R!$2k#P!*hi$Uuޔ(&9YCgԗET.o]] kL՜Pxԫl+Ohͧ)̜hHO2t-MI_:t=iPZԣ&uM}jTZիfu]jXZֳu]\Z׻u}k`[&v}ld'[fvmkhG[Ӧv}mlgvmp[&w}nt[fw]r[w}w[w{\'xo'\ gx pG\u$ qB<> AkG'yWGh\~:PC~zԇ{0ϵkM Sp6%~C;{911|x q Gԏ)A|?BA罝,:w鍍o?w0)p׮ 6;=<@޳l7l@DUc>[@ LÄ TH?Gx;FB095>KJC ?=:6S?7+?!9,ȿ{A˸CAAL4)B AțGA+AB8 /ļ $G84l4B1?̓:#@L0ċR>>pDC5C%4CLxE>Oû598B3\530\3,?;F=9?,X]9+3`_jF^AacFg4F]3 mԵ#,Arg$vw̵_=:F=G4F4_ )bF=H!t6o5@NE84XHS99AE\CIQsA9,INsAZ<ɼ+5L>>xD@HT\DQDFD5BH#JIC$JCJ5ïCĄٛ^ܵЛ3H˵;F5=+@4 F\k˷$\˃lK5L G:K\ҳ\L;=h̼a̼)õ"$"K;#Ìe\̺lnH۹D˺=㴴Mګ;JE?:D͞SN@S;HGpJxLIFKIQDULD5O$4<#>LH?FD0E>0D4U K3NkN\<TH\Hp ԃ 4)͜F\S mQULc+Q\K+B5 6ԃ$e?_ =-Kf$Њ @EÄ9=RO44,5|/O2RT>(PGDOOD]TI T@ tDԬS\>K(PIJUT#ZMP̵5,L]!-҅\LW=[]aң:<ƫsKȬU,0d=e+":$H%ԃ]Ue$QZ*TREL?J(WS5 S\0IR{SLS0;AOW=m@5ĞGɠONcTTtԧΣK@@UKKODPP@xXF|F|ID\ =Ξ @D`CH]\XɭܕEOal<.V=^sҤ5,0b WV_5? V&ReU^ecQ=@/j ߰}͔"PoMU+[EeI(ۘ9T9=fS\I Mڥ1T?~N=`I\X`KdIDHMI۽М\\O֍حm3S:.ddkd* ddԸGWS|`R&eO5@ T`LiMO]?=HNJf%P]F5Z69[~TY=«ݵ"g\Qi^$;{)ֵ6ZGvK H]j_es:,(cK =kvy>dWiLK]h.5G(QþviV}OFi4i>&i|@FXlNJQջdҴ^\+^cm`_ldmNk>dmfk4Wu;N8>uDT6CldFޛlV@o5Eqء\紙G^H5g{cTKJSKT;qG\7_r&7*Mrz3)r+r,r-r.r/r0s1s]3?s@30؀847s 32/t x80  ؀DP 0tt0tQO D `8G8Xtt]MD?Ds5uc'IXDWGfGu s\'E0 Hvk?vpo_Dgun?j l7SϐnpjAw}G||W wOvtJ/[thxH\www{IDUxzHv\Wy ADO?pyyL/y x @Sx¸x X/ t?uwe7Iz? Ht?Sv_ls{pwW@ztW@Oy~wMEt{SOEGzx|@DI{_wkyF|?t8|N|d'}۟h?}g !,/ #&",,72;;++11CLLRS\Ydks{ g c k s }@@TTZZk kp p8' -1,&+0%*$($(!  ++¥ɫαӑԦٿߑˬEz"Z©})H8fa(A:x4 oZŠ0]\vJЄX*8t %3PR+v3_n͜JTh*p $D2 Jt [>}n+Wx.˷o^-, %"zXm KLY"{}3k[(xЃ$JYy#'{P",%$ \&1\^l]g!+Ǽkνc2fhfξ{ Բ`` GPHqD! %'jc'V9)&}m~w ֍]((%&7iM`<"d*)dw'%`0ycmD 'c"8`b!47e :֜QNg& Ni:'fr5p ,!&R➓f衊VjLmoi駠&Zg*ਦꪬ꫰*무j뭸뮼+k&6F+Vkf[!?.{th>]6VS0lɶU/]PB1yR_MԾ$oC NKHҍX n}q kbKLS "-l8[3<(o/2M͖ݼ9&>W'c /)&R`Otٝ$gӰk}2Rm4o `.4)wc$GђxM;ŘNK9_ㄓhzޜsMۢߞizqCIN>{ C.N=ݢl=~=L\jWM I7ov<1O>E@/SD?Nx 30ޥ"r ї`rhf}C\ m gH8̡w@ H"HL&:PH*ZX̢.z` HFSPIRT~ Y fHFp| @B Ldӧ@*򑐼 EHZ2v&)? qL >P\X)O9S|,gAGғc Җt*{YI>3%E6Af^&bD3L3ґA%/gq[@xFK-L:vu^E2IlB08f( zP`ˑ=}cn2 EfC' Cjsh- Ғba$iRiRry )J˧=n2s)bzȨُ6zNzz**sRcОJw:J뱔=i@U4y{iK ԣ1AXETy]+[Qң,\atjH*H^zf_9XRPZv%rdzd4NMjWֺlgKͭnw p9Pα(B_IYz3̍aO8a.(W;:6{cM>MoJ5 ]FrWuL%Vߊ㥜Y]Yil_uk\SZX\7-{3aE .|z_cb"%nF|ÌSOqUaӂuDn:H&&;PL*[Xβ.{`L2hN6pL:xγ>F8LB:IA pF;G`M.#`I؁:G@U@ ܄&&u Z;vp#4;;` GKٱۛɉw#V9 @7@߷Yt\ʦOuvr<IH4s]oEhBx0gz'mFCK:+`&>AY/gO_{w}qx0/}r7hB]~GXgL |;So?Wkrd~GvGr}H|(~vhgFxG}BLw rueed@md-}zԗ{EPvz.@DhnXk0hvv6g w7xXhd^8l6bh<`0`EGkv?PdtHm}mXkwqE~nSz>r)eF`׈UhTkXp'@FdWs@x{aWvvw.vuVk(00!zWrhepd&j 'F@nPLxjWnn8ngNJ~=1`Or6xH1T |8N n|4tDЎƍxبYnD0V wWgDP!*,/r  #&",,=72;9"",,""++11;;44= =CJDLLVYRS\Ynq } ckdfkos{ g c k s u ~ }CCKKRRYY__A!AS"S\$\ccddllnnq qz zg&gn(nz*z   !!"!"""###$&&&'''((8' +-1 -&-00%+#)&(#! H*\ȰÇHE2jxō C)I$E\9r%J.cʜy͛:Fɳϟ?ib )bʒIxtҡ0]|Ju)N ʵWUv(jʲB][EZʝK'ۻx5՜o L`3"^ت[#KĈ0Ϡ)zq]Nma ܜe79E %HgA7P|~̖,Jۧ|J@q&ge8tcy,P Bi!hy0p((34 `{-ΐ`AFަMvXXf'~Q Qgfb]eԁ <j'jj$FT^6!-C'ƞ*{ọݘFn]IBL"H!)JZ&7Lr 'CIRjL*#U2j`D$5 U .uILW= ] v%b:cdla>Qj2hMlzS6TxC2rF)"civ΅Z+!9IOP@WT";O|@W3e?a O:T![;ɪaZT.1K&T.iRӊ>iLEJ)9YR┪T^O?TUG9IO?StOK[OBVL+SzĴĭsMgVb*zMYT($M QWľzaynծZgu)=-hR˦kR`KҤ Ik][Rp/.u5nfW \*}Q5Ůui튄޵s¶ՈJZ>م{=^|+;^&׷k\**P bCSmc 7|p) $+H J~+7*L82@,1A_-Zt<R5Lau9q%pޯ^ٯERv8cô4i#vbIG\ԙrj Ady>Ef>yѐE"MJ[Ҙδ7N{ӠGMRԨNWVv5`Ub׮s/Yl.3#S 'x>#~~3z͎nExϻO]w?@hҰ{+^8AWh2 `c|?vͻ~;]9:$ @`ꪷ}ﲁ:JB9s  A(u4 6xj~ɢүe$OdW.{|7ꔝmǜ7awe[e)~b~erW^Gd~~ygo7eCu1y pǁ`vxpׁCUsgrHzvb|Wg}V7xgqo#\y"y!>hRdWRvZ؅^`b8dXfXIwz{}jHL{7|qL|{w΄}}~8Xx؈8xQYe'x\P;XWSPxy2+H B|Hc8Dht؋(g_WF~}&t)a'e"(Slz7{7ψVs{uXć8d@׍d+}7H}݇Yh&(t9(oGFH(kilq4NHUhؑXƄIy* .0294Y6y8:<ٓ>@B9DYFyHJLٔNPR9TYVyXZ\ٕ^`b9dYfyh)PlY/ymYPpzyq OI w0wPMi G9y{9ɓsypM)wHi pNiYq`F`G0 09y. Grx;9>< ;)wp)Iy }P I𝌀)@:yʼn;P2)Y.yJ H)Zz0iyGs F0P0ɉi~E0@ lI p.t٤lY9lp0/y ]*lХ2ɠigڦh k cNZ0Yp^zGj@ 餗7 @:Z`009@ Py! ::2 ə^Z9 0̪ J :kjɬu9.}z4ij:w0 J:yE iqpPEPCZړ0K ztة y@J j*9#{-z wԹ ` ʪՉ 05{j ߉R+2ɯZX\k/$󉙒c[y`|94Y;9 }p.Y.) p_j2[T䪸 7k);KHj0Ywp6 TIv@ ]39˵`{t@2 +t:9I z ˠ.EK J{ j=[ :+ZvPkvz|ܡ̫ 38929 r@2I" rY;깛i: ˙ k+ ;ܤj[ \\`P 9bLƙDk;)@2i˱!\5 XJ,zș狭ۉ oĐj/ SʺkŬʚ p{ȫ LB Ļ *y 1 5;:ˌ. x*L;+[:);6;ꋹ,Ąɘb ʿ Ж*YKj 9Y [* Ԉ |z@G-sN ;3lfykW,Yʼn\}:0K! ,fG(  "*4>"",,11;;BRZYe b j!u!~CCKKSSYY__ccddllmmq qz z8' +-1 -&,10$*#($-#23! 689#4(RJ¬ʎŋҸ͊ڠՉ݈   HY.D0P#: JŅ:ɭ#ɲ%9(UIQ1.LP`Qʚ@I˙A?AXʴSAz4imӫXZ*ud9˔UDYuKchݵҊz#+VM+pcz"w.#UtϠ.Ѩ-oJ Qz mâ.{zom {kCF|pΟ3z?-sڗNtϧ~zNb\ףg>6~V!U ns(@KW E߃^]!wV$x߆*b! aNHt4X`:hXHTfhD_:)LJ8HFV褃YWUv !b~e9er_!nB%qC*{ '}w!ZTy㐆Wan|&r1gm՘P:ژ)vV>V;N*~cy.(^ګvbhA:]z(ƺ&s:^]ڰ`+Ujߊk5ho=5SenYo+[ {%*d kߓppo3q'3 l24r-)*-,3)1l'5߬3&9$=,43m%A I/tN uBOMV_sZu2 brfv!6nrMr;MxY.;">[j}nV $B.`3yK MKp/z.{s&{j&'?;ҾL'9ies9> 9uJ*Id?xb& SPft{J&êg!զJp8 "L0IYKQ&-zĂ8ٯ#=G0nbė:ࠏhE87rv>⋃ۣYP'?nzrpaFRlS"C5 z\SxAd1 N"!M2ORSӥ6Ns eIJx`7G,SsICN,dM!KxE*Ԃtc$JmҲp2GX)~ͭKjM<Ԇp;>pڷ+q{+ٱYr\8JV2$_Y],s:޲6[nZ9lSH/W'2T PLN;'L [ΰ7{ GL(NW0gL#8 Lw DqXHNM@ A*!`@F0 A(AW'3Nv 8 0@~Lh`MhA?`tZn~`8yHt1P`p$5,dAՃp[ Zv--"AM _ 0!,O'8@m`{dwppP@Gºq@o* GL#@2ȁpAf­|놿z'N'0 @<` ';? =;/.o0\4!C/nOy2(r al o0NvEdXxvm`C&0ޕ=`D` l$Ct3}L(2$Ti 訓>.ֻPPc0\ExAoG /~`3&0 mU7Ynt7n7 \'  )8zw& @ym?M{hW``jG F{s aHt7y}*}')pzwu)G0u]~1F`,c7O@n+kBM6k`dGxk? |&O'MNUj?zH`H`FMiF*`DWHWMxTGuY$Hq%|{N M&i; h:0u@0vj/{njEp4I|g#a!,pG  $)1:"",,11;;BJQ\Xd b l u!~CCKKRRYY__ccddllnnq qz z8' -1 -&,1$*#(##! $Ǭ͗Ӆ `aXBA#.!EI/4r "{H% )͛8stɓԁoh*IhQV6{nȨӧ7)mzVv.bJק訪:USpKWػx jٯ2*HgÈ]w(A#?$YXPkl7/8M:zZ[֯*{j:ή.ۭ(l9]>;rĽ}Nu[C[qɱzg4Fk_/3޳su W^]@!{ЍE!~ x!{G݆Zb{*8yȢu%X6(.(+꘠|96c5ɡ2yX#JYaHZd|A )Z8b!Y^6`}5 %qV%rl%Z晘E&dޙbl ҈[JXFh裙HeZᩛ9٧~AVs^JVXjRY Zl,3.F+Vkfv+k覫+k,l'Ln K+efivZ K rsV'*3LU`gI4笳,@iBm:}G/ LG-C-zWgtZwuV=b)r`93@/66,rwOs\w%lЗq}i#X wWngw砇nlǢw.o$OtMmws}] >7^k쾻l>ZsO*}7˟qrJ}8٤嗱ƛ~'T4wz?_;o꾖O)o(iLP+>£_d=}$ժ`V O5S:eu"p[I(4P>{!Bhԉ*d- ¡5#xDQ R&Sw".z` H2hL6pH:x̣8E(k|=< 7J1Y oA^"%8ϐta\Hqvd&=)R^mL۰JPg)%㦯 43A|inNO-1K,-?].33[IM*+MJB6rv^c51l_iNq<'RCEST>ɡA>"MB:D'JъZͨF7юz HGJҒ(MJWҖ0LgJӚ8ͩNwӞG@OJԢ:%(rj@FToz 9́S0ծ"D d`Ex(Y͊ֆ a0AZWbW :Ѐ a lXP#!KXWkQ,Pc!"$4e@KK*ͩmw[ۂlj*`V=Ab  ЫUM[wЂ>݀67 4A0_#@2Ab` !zk:}'L / K@faK @|  MEKQ}(;Q ժSU_`CoEe898-{AȺժ%U ;fs 4樏O9Cw&CpGVAPz29G“d$ɖpD`rӠ-$w*^pT, 2p;O4-ԇ€5!C?4hS]%`:3pem mI~hE-m{Ԥn 4VulnteQ\g%A*`,d)8S#8َ щ[^@A=.y/%hox["ZV ADMc\?g<,LWCN :DP;%A\98kFcGd]\AoU\DXiKUxyP9 7}9E; z @45Htdوx d(vnoaaݨv5t%D?:HOΆUDM: pu]=ɆAmoy|5yKW,P[n+/^`v6Q[GQC@kREopK0&G[=d?eS'0x/}j4H[D gkRE{ ! ,=GK    % + 5 ; "+"+$#++3;3:32;<""**33::< <@ CJDKDCJKT Y UZSR[Xd h djbju szs{ g b k t }E EK!KS!SZ"Zb#bk$km(mt&ts(sz&z|)|8'**+,-.00123 466889:LȧԸ>>ܣ?ث&>@0?@5=>0./Bd".4G0@0ࣇ @P0 I[6(Sd! b ƒ&3ƍeXɞHn˜P 2Nի (G[HxFj?>xu/ⶫ1T]E+^̘q HE4Ƙ3gVX5fCo4äc^$VEmlqwGN|1l+_޹TlNqF\[pȳkμy^y7xûW_#/vr'Zf_lh\q%r`i{ h]8f*Bx h{ S, ^(b/#~.',H`fDI@1FȤ:؏OVy"i-bV `ЀL"™)0SRed6tJX;` ̙1Āu暅&'|6&莉YB{"!B'@ڥ@h|PDDP.Z㫰rv܀ 2p 8ٙZh!,M1 (f;LکpŪ) @6{* |W\TFQU̐ӗ9>NNt-]n{1k B ,D$_ZFEl iԳT D:X6(;*ߐºCÝʧ: !DK#Blasa3Cr0 keQGEfI+#/~fxJ3h@ 9/iv$M(2oA`ZQD2 T?ݒ/a1+IbܬXQOv "`*$+Bc+p|"7$Qp/:<B CG'R^4yxB G1zjR4ʢ RP̬ * mCBv@MlCso| "H`I hZZ0!!63t !L ͆7H>29HCDXi@j`Kl4!0- TL`xH,hyhP27bLohFB@-e V< %ASJez<#HKpk]!.A_㇌&CBx!tXɀ ']`),oT ^ rdX# f#>$I` 6B7GϊlBHF*TaA+es@>1Frr HGJҒ(MJWҖ0 Ɍ4 Ș#߈)aE>] I"MCH= &TMH+*d#ԥ,T)D  xi+sI!:tE=PMCh5QE_ 0AxPA$ zdM,PQ  cXK+ <uUEșLf8_H`HB¿|@k@/uҳlFG[R-Dqi{\qJx$m*`W noaس,/${d yYF45!>Zel k / kb70vkG<&6 Lf.Fl[x(2A2vQlw AfĄq)<0\_]'?OdHE6Y< ?"ȞLPO(C-JSEc kTPq QT0!R by'̤[H! Dwà hZRZ_6AexaB6*^1+W1>z‘km- $KmDoo",4KARfLd3V-jI 4lõP-$@B Yd#c)%Bt!L[Սv a]* \/ hIe(Q/:bjSӘ7|Eq?ca<arOt ^ ;Nx]FI O!2` {$u'#nF ]PPF^F5 [ϼ7{}L##baz@z NyMB%sc jzA m@ܽG{g$#`%c)gEa\LNP`Ly(O 0щjWǯ^3{#u_WFQ'$.dM~W`W'V|ˁ'x835D &uN'YrpY0S0 ]`$ZeZpOfS '-@M#@M5`T"!G4 >;P5}-B{D\4c3U?;B]qumH(#pr'1'Qxc~6`,'xrD x16f38:#;c;rvQxYV[dMvl%4Qs4!9~  Qi(fj9@gG3/=(lfpc?gyfhxh>0h er8_@S9QFII)=QsH&A+YA09j%$j(BjVk/!kEiq0p(_88EMaYau(ɶl'$T$3l8!msEmgwG(Dѐ^5=p;@FGId85F't4an&orpo#3&avqew pH$M|9"7}~PJ:pJNl~-G(r2.`s23s/~ֵssi6 _MM;XGoX@}b}M x MyBWu[ ]7 lFbw)*;P'%MёݧD} hG P9|gc8w{R*}w+IoZeJI'0MO"kp@OzWwWک:Zzz`}SabSOpWy@uCwl<| ꪗF0JUREUb}  &y:M6pk Fl@P?'Nb: HjP;}'`XU@qT@Y/5Y8Y@pEs/baՃ~?*YX5P'pW%ЉJ5p#%g' F.嫂p_HدuJ9wr\7c9Ç(Г6!^8[XK:W'JYVI~&y~lXo$SJ3A8z~If`6lh7xVq!nxЋ[DS1X NdOX:شbŲBA$(3::V=c/ץteB^Ə>Q114#qT9Y;r;)zׄ~T,JL 2fog0g8ig:IB f4ĸ?h=y]-p3FTGB5,(2R9\ #ľ5{;0mkk[9jnyj^SDd? VrT\959QيNhr/ЊKYg˘WR@4, A yCWʶv>ΆE nEol?`it$149IQˌY75:i 4)@#|) \A :hFp%M1ߦC0tHr6>O^\gw&]$ivejfChpC݈[W0ȁ Mn-r:FP EmYjojGjj7qRAVn.VFrT).L:;lə{ m_b5@eέb?#ASmoHOOkqI5pn jQq7 fyVqrѹ&N N~rMs_: fBqs;zMwTOwFnnG:K࿒ԑ՘ n'Մ {; B_B0E@L/Ex Phpr?t_vxz :z٢ }}ۡ]ۿCč֫&W ٩]4ͧy'r Ƈ|uOX؟Yw~q~L @VF;-A l;b6L%3Up {-$)(( j w?;BY :u6R>>&>@><@6& ;'86689!,9 +9aaUF]a_[ZDEE.@?..(@@=ތ@@/'?@œď'V%^MpYRcr2&2!BEYeBg?=#gPf0<JɠWE3(Mn*0#G0E4~f2c/ E:"C0RH0 IB9@06uJR: ʕ&X*A[3ZC@`- lj cH\W6ȹsf9)}s略z*" K` ufA( LZ5r{z='k#EE }g;ww[zl8W3>0a#\N_⊝ XP%`I;$I ;4[YŘ'I82Ao@Q% Rj0X3 `L<&:š-'dP9Zr;xɘņ81d6/9]ԆS T!/󃈎4a~ j!bl(Ѧ}'I;B:pgZVDħVM@6Fφک(Fb[JH9ٰtRHj6,)+ֻBÿ?ȯH%' mG,Wlgw ,\l(r3%0Ǭp2l8<<2>-MH L4]F <,, O'sN1 0Ê,.z@THĆpbysN.Pl &lLE+kJH,> v3xDHxS&iBzU;[wȗBy|k{Vy?yH#A[F(HTqET!ka5Q`TM30 8~>@~H"L-Ygvjɍ *>T(Ua{F=bf0jl@\JvU qm`#ߓ7PP%qtRXIJvC~(ApiYH"L$AX.y : T`1`ּf)y K\RD }n<-0;A qlcS Z55%tl耷E9aaupps AtPO`7IG]@ w?"橅 8H@zVlB2 i`6cx$NO>B(Q *p1A`7p`ĠR" b]pDC C~p3ܓ#ݐeI㤞4-Y餏2)MyVƕ%"[ast !L fb!y@w* 5d{7C WNv5sXHu+#l7 be qh>&ӱI?`Hv~, @,9V,(@؟g|" aD Mdyhp0t`HJj+J:©``)DĂtUgJ#ZwV"Uzpi8Hܘ ،j&@C ?k,Dp,΂ CяT9BSo 1栓#CDs!d*q H9Eaf ^zp#p!9^ `P:(n#? :pU+:6Ըs~y*HاCHخ+bb ?KHP_H <6>@H0Ԙ7z Ha(L W0 gH8̡w@ H"HL&:PH*ZX̢.z` H2hL6pH:x̣> IBL"F:򑐌$9IZsZ!h _"a'+2d*S'6|eq=Bx̥ZҲ0KWӄ<2LT24IS:f M5 g0MI|SLgYigj2۹Dy<'>ɽ}RSL&8qӠ( kB#jRJ|/aII!e'tfB1P"PQ^`)LgJӚ8ͩNwӞ@ PJTcZe*EbQdLg,?9UbnDMHE xt m@gѰr*uhAI1[VQJW}-^Հv5[8)ѩMխ]VJp)ۺ6MXSG"Q܊;W),X-zUj$ٶ"6t_[1"VWN]D9ʵs:ץ1n(ϻ̺8W݂ƭy͚սiKzUB* wA"D!~kEN;'L [ΰ7{ GL(NW d4z?wgn7_"3In{a8KmY+eVY+-{]r9;b.̼5mE5VӰͲfιt|g51휵bN Fю4^bȽ4|ݽ7t0;ncJ:]mvVy] ~MbNf;ЎMj[ζn{MrNvMzǰ~Am4 iB`rga ĵ]O|[h8~; 60&vra[6Y>hv]so x5[ P@Jg,L ֝sgo W`t']fй#;@NwWNÇra Zҝaop@1PzY.l5@Bga6C*;g@+T!V> [ /IӇ aPz*O<ݗ]淝ΏO}7A >7| O0ӟCAZw㭀}GЮtO ;*?0v2ȖIgVtyuGd0tSf0S ?O@x}V}l$x(X}S}fu?zO`xX0/H1~p7w&yц6UyfDg{GuF7wlW0Y؄P}Otb}"Xl)XwʶnlȖxlgw]zxlht1GuĖf@Y='wNu8}>)>@>ߡ/@=@?@@0 >=@  to8 Ci>B 68LԐa(޽ (A(S\X,QIS*/)֜Y'I1ĕ g'*y"hӖi*2hժrWXÊYj'Q2z׷pVSBt=悹q +k_+^i㕃#)'NbeS̚F)tܔGyo='|:lԸs\䚬]YǺ #}ynޥ;`:kCLZ0$ d`9}swW_3d`8|߁`vE%Bp  + Vĵ5Xv XR*Zg[RU~p53̀Z1 ;[#-.UνUp : ),l#H$`!9qL*`GU<%`~V,WE*fNߒ~F[ \9 :d֜Z`WywiqaU% JC4蠃 rz)e+@{5l&ԩCvպRI5!09':P +XiX :-qsمKS:"%/JR"J.Zvq^k1b5E 7 $ (IO.qN<3V1^,; ?k*p#A=ŌXb:dWXa92*$H 7$dt5CueE<); ESK BoIX tڣ(f/ ;u㜧5w.-Pn騧ꬷ.n/o'7G/Wogw=b1c$uR'7/>yW :Cg<􁮁  Z̠gf zGHBv  W0`cHý=06 o@'H-+_raPvs 6>` H2hLF9"P+>ΉaXD>S8H:2Wa:,20 "!9E !3n"e#PjqyXf5RSTeH:Fc+]%.cKp0(_də}s1fO]xn&/R}T4=r.2K1}pFr'+OU@?ӿ|^O¨F7юz HGJҒ(MJWҖ0LgJӚȸtzɜq!'~?}VA%ϟ0 'PwZkRVծz\&ui`߼y?ДimVU:V )*UP`Vg)S5$(ZXˣ~HeR!bRZ: FTq>ֺlgKͭnw pKMr:ЍtKZͮvz xKڒ NPCy  K IXBmӰ  40!OXC-!y˭:!39 X/AoADCMp»޿EzY ph )t!ކ4nz"7 v8!C \Y]F!;aAC["e[{>Vt?Ge}'kXP8g~K=7<B7Vߺ^[ p~1-xc\ e2Ѕ#ƿ01bvpT`bc_FP}Wayyf8tkW[([q'v\ |!R74hn7d׵r3k!M&wyy6}ztCVd%!@C_=vdP{`\pqQ1HxXi5X]w1f!aU elQoTYkBzG}1~%Sdqtb(Tngx[kYzekREPH[OekmLjYw|dXA!,{i **88= =L!L[#[d$dk$k(0344689;+`(Ȑ<@PðPA4 69u7SvNXK!,G      # * 2 = +!.$#+,1= 022;<##,,22;;B K S C M FEBKLS Y USZc l ekfkt t y s| g m t }CCKKSSXX__cceelln nrrq qz z8' -0  +&)%(#! L” Ͷҝ)=??+?׏^Tз߼#SСA) 3 @Ŏ p!0aY+M7cJIsfN/꜔P] zzz3(SJ-hB)טLJSS;IJ6Ppլݻ˷ھT 7zqXȌ1: 'k*p ALm<^$ɂ86r"/0*$8LБ ?)LP004S>`/Gun f#g;`: Z0-.eP g WAVhGF`plhpؽM> H"HL&:#N WDOq0#5>XB{3cRV8/"Ċ5x Qcp@!p IH 2{D2F>&IB~$BgRH#;ٿM ]ddRy.V R%-o[R:# ILc}&,fyŭMqܣ0>jȔe0Z/6| 1f4IlB/K"[O;F̧>~ @JЂMBІ:D'J۵Qɸφ)6MГ$'7gHJ.;\9>iǰY)Ӛ8ͩNyڒdDz q JRa.UMj#J-cWݩVծziPj>!l a Nƭȫ$Y͏l;ÉW:;gE7pb:d'KZͬf7z hGKҚMjWֺlgKͭnq+&4 p'Y r& A =B%DwUbϰ8! nB[Y"O 6A u{: 8.{7~4ȯ%/e0`n,~aWmqiۀ(N3XJ8p'X4`TV<W6 dT9~bPaRymb/x *~qdLshNQ=,(n3`gŏ++ 2fl,i7Êm󛏛.Dj 5NUl#07L:nup6ABYH똱H1c5z~62x RPCj2K7M|O!MC̍n IpaW–UÜ\bߌvc(t!\š07Cd@ 1`^@m6Ķ,k}Y nې(Y8ymq) Vr[l6 nB5C8'@._,@2! ƹw@O~? sΆr¿>}`5<scZvp>OC0oamȠw a8nu* r[Y+ b }_|! Q|SU?w b{ O쉎`]wX,| b``7d01v6@'hb6mpU}GYWa'YWaVwbj9vYph*v hbi'VH{!B,i ##((33~(~**,024678::0rC>h h >S>̊F!,G     $ * 2 = + .+.1= 02;##,,22;;C K D M FEBKS Y USXc l ekfks t y s{ u }CCKKSSXX__ccddlln nrrq qz z8' 2  -0+)&$!  B˳бԤَނ .GPп{BM:@] rx0F3jE[!@$z5\JO-](ɛRɓfz  s(;q*jANJ(rUJjz&ΫI'" ʶZGE++v6D7,ܿ WduX1C +d'/ (u?^@4 x/ͺ+oA/`~ +%Hp P@d%lk=so).xC/ P78lٻȒD zzUZ}1}=8M'@ /(p|'9]vB]^|1S%9D]駣XYRC )P0@I I`qU8.Z1e_cm6NP 10H~a $X؈Ybi7Uk=j .h 1&1B $ؔ 1fyf\D&wJփha]b f%Q%xz -A ht iZ HR ̞0  !SPPnTTU; "C P f[OR TU|oO8CXYT^hE#fw$~^Y1ǯi> IBL"F:򑐌$'IJZ򒘜MvlB=K)}+o$g=Z̥.w&:`ek˅Q2H9h$&/nzl#JrBw@*])0:Oc4g,a8ѳ#,ς1@ 1MBІ:D'JъZͨF7юz HGJҒ(MJWҖ0LgJӚ CBlӞԡEӢՠC lA`Sb! Ā 5AD .H RQ ł]ﺁ؀°a Ѱ~7,l&06u+Bpv6  M@Қ%mE XB BZv(B P,6 Ai!؈:! % =(${/@Qu1ֵ xM=mPմ Ծ!6} P.Tōh*! .^VWbBg]24(GL.Z,J[ A Z<08 =kao0SEhP'` *f W*/|v6]w&|"Lv*Ȼ55b_ . }s K<~:)"3] w%=9B*8MYm86Bz隝'c:\Nr~*g)2^'7aOgw/o觯/o HL:'H Z̠Ի /sc$(iN@&^;FoKЙp'CT6! C/h5! oHL">*PH*r5EP\ cEx^gL#6Wl|q(G1N"BW%Q!wxGҩ4TS)B0SR/!&Yω}XBFS|#CIRL*WV򕰌,7YjOe=o#Ta&(INzRq'L#v2Ul 8*K#a(MCqU7OpswģGsɪW٠6|sѩU<Jb(?Wz:ԑ2ƃSjgZξ-ԝsӨDOE (}G+gb4@(Λ*185a0YQPԦ@]\R(TKt#UnҪYB .z Q}E4:p\J׺xͫ^׾ `KMb:,)ZR0JIʎZfAqRiE:F3L-lA9[bnQs[ۖM\T?no饈6;r6 /~ι^EAG.nv[-i.z Dkvt{Ӣ!h NA*V*Z=my!V.]+Z 5n7aU GL(NW0gL8αw@L"HN&;PL* BȲ.{9EhA G۸(P`.a% .`Bf;xuf H-PA܄ӟvqS ~2@gX u@Z LB @kP8Š1mqlϺ -:ίacr/yN]zOC2pBA '@A2p3 yO @A:6~p7AEoz.{O Ng @ T!-BpZ;{zqPߓ "s s( #^~ $F\ˠOqN$ WxMun{Jgb {v6FgL8l47pGgͶbMqdb80!}"@Gx2j~x2 Un Pxy!FV'Fn1LTfSb XX8uj0poJ`DFJ@{ҷb7|,Ƃ!pW:hU!~%x:ȃGM"r7(GNG1zTG{ v궅T0t~3nTpv HgI0S@C uob#@g&0bM18btbG@hzȇx;؃DX~XE8G؈ ؄&FttX8nUlp(VSlw(,Ћ#r(bè}t2ȈxHba"Gyh{/wtT1`?< a*L@DCT3pj.D@g%`Hq)~ wLyv)bLLr 0|M} ه9b)>yP{f㧑ʘ;ttHnA#ْ~G}vkjk0HF~ƏQ%fm(P!xyZ ma~H(2-b2ffF1|nK8YkGj@֜n7Tpj8b myb mʶ &T3xfwyln70 n uYdG!,Gy  %"++2;<##,,""++22;;66= =DDBLLVZR[Xo } ckc} g b l s u ~ zCCKKSSXX__A!AT#T\$\ccddlln nrrq qz zg&gn(nz*z! !"##"&'#(($*+$$-&- . 0!0!2#&'''((2"6%7'8' +-1  ,%,00$+#)%("!  H*\ȰÇ#>CE3jȱǏ CIœ`J\ɲ˗0c̛8sɳ'͚} Jѡ@]ʴӧBJ՝IS^ʵ"O8aѵO0S(RѬ[ pr !o5@Dh4a ,KS %`E+M D .bd>XAB]0mLbuɬp!&+bϠ3E%VX1uȟ>EjXœw- G@Mv5HT\, i +h8dW}Uxa7 D1;iMXh , Pz (+x@8Q>$p+8-+!#`\F[uՑpkMihHߒV"?L")L aVx=6@H$'(AIz&B[ZFؠA]@Aqf vF9E鈮 _*GdnıHxؕЀ{)@;|DI1,m   ,A1-;e]!."@ʦG|p T@p g\u1DuFt&/$r+;0\E^\GY1A21 e4K?7 sD;-u0=R9aK`qd pVSJNsR'uWk\x㍶|-8nm-y78؂m8ׁOnoT+ݏס7S:bgw؞ߍq\:4j]xӎ>=79sN߽|o곯>7{=CrW?/K/ud_;rO׫7 oѠ'o p` _Bk CЇ4T(DAK GB%掇"S8@-!!1jP,"A'"A2XĢh/ ͌otHwFMQhl7Em`#ؐ폸dMr}# Xbdπ7K4<6GRQ,[*r#. X2m`f8iNȦUs<@YEsSҠnr 7f:v~ @JЂ5Л`QbC'8`!#E7C&R J>J(MJWҖ0LgJӚ8ͩNwӞ@]4P^ԜT'Le!뜊͡L%VZLRu[}e;DYU6}YWw\evz xKM/ܘ^}WJ~"veV{W汕 hfLCoqٛ =(@ gxgq  \rİ30.g 401g9r 29Xj>1X7}4xҨ7G~W G~o`o@fJy ח7hȉPpNȅ.-z2 Hy8 8 y:~?{y:x@@Q~iP'G7spy䗖g@yǏf0HȝI~*)y晞y]ilfy@ ~ZyyiYyyw?yy8ڔ8yz~;FߘGTi8lIY׹y ht;ǐYBZ ɞH@ kL* yОjЗyɘzT g}GI≡9(y*眊 Ȝ (oZ9f@`pvН}IyFjDHx/h0ha- ٥g'b@'YU*w0uʚBءQ "j)ڢ7:zJ : :h89hh7p z zy 'hJ V9 gYy9ʡK嚭}yʢZa٧әH*:i{o@pWy xpдhMKy5*Whkg kyh۴h痔ꦹi~tji~(gA}ʨǹײ:ZFи`k}v`>[}ٙihi'+N *ʅyIym'+W~W ׃Ǜ+[~Hy3{#ك췔g@UIy:7ju o @ۿBWHxilhhl`.`iذGKwΛ3ؚ'$y(z;`Y}7A+8Ln@ ۛ;GĻWۇv iyE˿9E-|9IGŁf`کF^rLGyh{(pš+v #L6d9䔈%y ҩީꪒªibpE Ld+A Aڊ%^2+W*نʈknrn*h+k,l', +6찱J Rk.z ,$l(,0,Ⱥ쾌:3>pAA]tW]blP{m(WeZ tVr bV5V|n-tmxtc+;0`T^) d &X~y$@>M:d$N6[;:c{:ܻp5!7G/=ނO+θG>y :t ~/oܳK"%F@%!i iBF MX#%!zΨ*?7F5A!ZRTW!D #` t+[!ܩP)P~}'9؃RRQliK*C:{j UEk@WS@E-hzz *`P'Ն fPՄҰ+aв̬c ̮*6n${%܁L)S($᭭u- aX-B@JXߚwQ@BcXLJheypYcA;ZP8)j׵mDr4+nF_%()ldž!r1+K^&kt![rQ =~"K8coOݧ{++oqͪz N( }I9n;;qƤeoH66uYCOa[LCnJrD(Z^N qFSI=6-oTB6JJ ޵kGφ,&ŵbio"ךasvJPӼ"(%xX!yS%کL9ȷ <'Eb[z3 %pyc.08<3/0yT=  =^|o8A#qܼy?g^З7tn!, &+2;DKR\Xd g a k q!~8'n $d(h {£<ӬN-UC-8'urwr@0$'**,-002ƈ*+0-253 6 78 +-1 ,0)$23 689󇇇H*\ȰÇ#BFE3jȱǏIɓ(S\ɲ˗0ch氙8sd)rϟ@ Jѣ l^Dʴ)KyJJիX*W}Kٳh}nmўnʝK׵7u w߿ ވwa}+^$K`XfEY8Z32{BӨv+._& R%'ENY*]mjԠaRrJ,~+_,O5_Y8  IZ,M«_@ |vk ` z Qa\1~6P_r ڇ0d0 x6LhY.cu@D_QQqD`?dy #qy\?7_Bd E' ׈2%`.$/Ѝe4R!P?DEYWPC"U$A0T2,]a%L=dADFC/Xhqu`Z7vdQArDyvi)$B92L i\dEYgZЀ^3t6AӞ럗@B(0j',]dq.s&YgXp֛@J*?k0d!.#D GYEr1AU\my\ wXYUn{ơ̓ۋ&&PCjyPAY\ Yx000ݹ" $Œ3V3d\?CgǭltW6 qQM4u<4۵@44n$5/wwfMUa9D7{謷7`nKԸ|5Qo_<-tAt:s/D@37_I甾C+t=w/_44J彤| !gWݯz9Y_7h~  ="B1:BhAN0,0H>0CaA!> TA 0HLbF*h&~M")Rr9<hE^PyD /2!Lt[ظ5fq6b(D6 T|"j;yCcIHaэLFwQ#ۘ?INa3 v4r,(LҍNC|-J(w CWD$$IDz$1mRN~M*`3^Й|e*Ulzs8uZTs"gE *RbUĩ0*AE Yj5BJ/ƾc*ϪWUzJUj~t$ܿp}Bv"D g @ b$8U*H1z !fMĪ8ځF[멑ؤ1 t ^&qr:57MW%XW@n],׾6C+x sko+a!;oKB:VEbxiF%|'B^a- xGb Hx}n2A X8ZD:f c:{}11 \z z1 y< YD   $" $$Ykk1T23bU|#!]fQ,He=x>xD + p"X 4`V' YA?r2#KbВvAEii6 NPZq6 96d `-S$2We pe qpA(?$b'c1&e5pq2 *cC`X_cS5t_Z@ W&q_0ÞIk9X` рE1aW&fxR)q 5y/akP@QXvnc?WU $X hY. yYCr@ /A,BP,dhwFhZVzXS*Qj*23%e70 n:}QtHtI&a >z4PP4pv..%amz)I |*fave ?2`C7xwY Ri$!#Yp 0 GzG1W!X+ ^8ZJYPЩژz pzi Z j) ѧ_b0T ۺTp?7PR# :3>c*aq_; eV6 pح(+P  @ P 7K79KFpd =E7/k/CyW-#jXp/;H3VwZV` Ӄ8!Zt Yah bd?`tKAs)XT*S&:;Az˶궄"帚{FV$q{8ѹfD#1sU [F[ۻJU[(ƻ[";Q+T h^1FK+_:!|{w ASv'vwSP=Cۈګ[o  0gs| ;"o Dw{۽qGZ'+D(c0%̽<0|8q'g|l|bprƾ3s|jR\XTJ|I3bڽt{aԃװ=y-?Y|D-՘shiնgc#׶-[w}c -2ܠ ЭipqRlɘɜ(ך -r<3wˀˀpڞ lOͼ\J({/."Ӷ}5+t9z\,ms/JRTˁLM?N>ic|XJnjIdLl?CDANP^Z^Xŧ\o֒JLne%$[~{U]"]dxelON<<瀎z0wQ N#pCG1nfŎMnͭ8ܥ^D 묘3!4/ҮNAn~}nC.~s8r?1#!~f1 m1 ^oOe6 d<(/*/M-!>%^V7O:c@?KFM¿{V/D̟ҧ/_Gjs˯Co37$XA,d@B%N(aÊ /nLJ=L2)Ud˗2qӢ >6aOA$yФâIJQNv:޺/yURҲgN49rS.\[-šy]r 2&\p޳i.&qm\F6x`l}!v]ŔAϒSfrmܹ]oGZ4?6+ױpՐ'n>l ŏOyV 7=$= 4: T)AsA c\к "pBkCZ"4D{%=i!Щ{FCqdq!ed# "KI(\a RQEJ'#%iL3317"RNs9S/O@{-PB J2t+dQH#tRJTRLD4SFSPCuTRKtSS3UV[uUXcUYkV)uW^{W`vXb5XdUvYfuYhvfZlv[n[pw\r5\tUw]vu]uw^z^|w|_x` 6`Uxava#&a+b3xp%cCyd96dSVyIvecydkfsfuuf5h]>GmIkgzatgzkז_V)^uҦq!}}~zn}f!qZa8$PZO8zqƽEk&v%Ǜq-|dÏ^Å;Htp֛~.nl=&t?Tߵq~oN 'Nw~zmv[[{}Y7k|v.7z3ws}_~aagȅo!.pZ?ҹ0t7;8{?e#٪e)]w=xA\$ t z018N[7 Ee No'5>r"WoOZ t?q[l+?,$x ن1(@:o r`ıS$V4]iCw5{`FSG?Bm"p,ߵXiC͢<'g 4+V$%L[2LKĉB8%GTMP OCAO|p>VL9-85N6 k& 'IQG4S~U7|u9NT46t#d`ײ G+t_dux'c{`Uxэi6 GAʍaO ,W^,ZD\ż y6lOЂۃ,j8lEU~Vwl[vQZJn-ln7\}{r&e^Rmݪ6vʖVJO7ĝx%nYsX|QW_>/غʯ3Y,*VΝ:YXް9a4'[[p1Kո8~GÁ,+;@^]us<[X0MQ- y6ZB?+XhkRyJTW-HWu}OI&Ĝ&U?7z0x #55h8[FVTAjn-fU_],|}{beƺ] ʲq;FA~W`uaMyW݀'-*KqT \ptd.9v YXi6lw,9ҢݴVcZ$CUVz\ CkvGioWbZ^ayuwtM*UuvmnޮnFϨ7kSvbrᅕ_%gVN{vlx[+rj:an{r%gs;!x/p;" >*(^ux&ח>i!¾⎼@!|>Vk!#+ZH=qA:nɽa_xmS‚3e{;,:{Cι?%,;kC#׉2^)qj@zIs0غD]o8<D2 <ˣ77ڧa!8a1<8W2D^qErE ,<;4BCC=*5,֫8a,=EWKD{&ÙaEEBo9FDm Zx[%K <%ɵ56#+1c1nS;eSt+ifJC:;WԠni .7z :I0 </ ^ (ls@,Z=G[8C!ՓGG% 9ÉkJ㰥a_tlǬ|FJɤ ̤%9>Gb44JBJp<[Z(JˡS/.I vك%b;[+Ҭӻzr?hj]1,Glr2;-,Etd ^ țT\EMlQ"L"4$"Ǝ[ƛ6BNNLON' Fc|ϳκa˽P@!$)9 3LZG::itaPdyH]BuEwM ` ┭γ2κAQЮН*KCs9 Rq1cz5&d8^Ccb` >5bV.g^ WۙY ۝PYud#Z@e^VeIf UX}]Z>\~gx6]QZAv]d^[_9)>ѵr΍f] 6ba+^#h4`M|\snYSg[g.iLg?݅N Xb_Cgܕ n~d[> ܅܆&d+苆 rviMi6ijHAi_neb eحV #PX+e߲ڐ!.Yikx&_X"`Zvvܳ^k&Ym]^5bj؎QƀY+>`uVXm}i^em^Ugm* NnMVعn؅U m/cKVn\u.זm(I_Wb 0nFNeE1nuo?pdP~}op pD~in"j ppז8q?qOq_qoqqqqqqqqqq r!r"/r#?r$Or%_r&or'(A (r*UA=r.>) e,'-34r.7s8s9s:s;s!s@>@wsA@ XtFoEOCtIB/@9tLtCtN(uS7uVS?T_uTWuWVYwZ_[guX]^X_`uba/ucWdboewvdvjvkjklmo?Xnr/ws?wtOwu_wvowwx(xw{w|w}ywwwrxy?xxu_xxxLxxxxxxyy/y?yOy_yoyo  iKi@HyO zz/z?zOz_zozzzzzzzXx@ yנώ*  6{,'`h{ʸ{{{{?|O/ o|wǏ|_+|||?z'?}|_}}x}|ԯ}P/||}G~ ?~|_~7}~}~~և~~~|~O)}o{G{&oG,h „ 2l!Ĉ'Rhp#Ȑ"G,i$ʔ*W%̖2g"Μ:w'РB-jtg̚J2mt&̨R]z(֬Zr+ذ@V-k恳jHm#,B*.޼z뷧SK&KO&&)Xct h-P7-uE7WnՍӮ-ձ)ɂ\AJԢ.N L:٠vi%lըQ[śo<!^vV/^vPD!ji'{u7 nDmM5B܄FGL(\sM6 DРrnU"٠'dcN_%4!dۂo$K+tdmhpLIm7cD*_cA%J#qBt^@ZtQeyF AÖm:Ir"JYDl"^hR(oePrZZyԸ4x *^#MP"u 4Yn*PdnG 7٬ $5J DMܚMa5-@ @*EjYQrneI}q^yرA;@{n/5k@ @Us  Y09P/OK-M0p2z_5iy>}ۆX͌AEE=4\CTٰ|*{M4ڲ5x v|hl-@-GLJK84 _3# /y˚ ~ , Xc>xݽްJCxR9ZmjrxjNpd5@;]pдxw(+7>5H=䠗< M }G74#t@yú?ꑉQ!*AV}(@+@ٯhPuǼsawO~|` cpH&CDkSph%jجyB^ˢ1O-kW@HG(#LrS _EIdD)1#k[lzH ?Qa.5v.t>wCxC]IFB~v5D,33əMK2)'H_n@>X9)[~_X! +4-y\sXQְɖ'\.6+󄳼UXf@d<ΕPj@^K[^o+.>b[VݐVBqRo3o DsCB@FV.iJ޼X"<n͸#ހ{yGyˡ r#8OgۭǨ^˼Ǝ*fx!<>UR.U;OzP[O?dJe=g>JmD QNEuED2 T: RS D:9iO)@DV`C_A 5ΎJ+ r 2T+YWGI B`+5ᮬS-~ 25UadaOC`na`PEaJ PX ȇ|Fצ=nb`ǩY Vׅ({J.D!*#!y!bNbV\T$"4h~\"&"*p!D@t+b*"TW"A,"//"00#11#2&2.#363>#4F4N#5V5^#6f6n#7v7~#88#99#:#NqV|:#=֣<):^XYHt٣@dREd^(RD2AFD*BNDEJ  . -DaA5D$KޅpKMېͷ|ҶtKCd<˯Lj C,ĴLLfaC uKOBDjeàH Mއ5Q闯dG[eP@ ON\b9ЎP,A_dC QυSN_" 0OQNb{`F,euZ=V%kfV\%R*)CQ!0'֚' c*G%M)ěeCJzKYdY͕۸&wvN\Rq$dx`"QaƔُFPi[B JgQEWiB̡TF~z'6C\Qq-D_焙$<+),hB }f_>QaކRWZ!F(^Y樎gAXp`{'q*)nb"ۨ 4 h̴Ji|Ij`xde_ϧR5׀g%&ܝ$8@z^lq\tu b֚.4|zFIib*UՋ{(4DvAýA Bg% %T=5Dup)ξdXF_E(OB+->jB|UUh&UĩZS! ]!T h-Qu>PTZE ]e]ut]8ꎁDDqx[lʞki ވ2DG%Rx δE,FHT( HHlk>mT vGA.1:] O1 ,_qWdECa-Iݚqd-" -_sEb"m[\{MDVT4D["q!'m#3z$"qj u VA X %"g L*oMЇTRȤTR%WELPW x O JP2*h/NriQ,5C"g41&o2Wܻ0xl*gmPP&T +af,gpϮxω_ |gH>{kDC#c'  $6Į"9'Tutnqt#=Qo̥R &/Y)JfDdt3&"B)LIHdI*id!BeCyB*5Ow4pIV]UV3uVQߕ5W!ENM*z5__*XwY vXZeC.{ D`5FБ"j>5g_''q^Q?6YRh:ckI} M'ݣugw桵 řl越vӍ\j+c ь6Ū^i$BjM5oww,A,ajh}+urbI^ᝧ5Cj]7v1z76wl0wxO4888Ǹ8׸8縎8k_-$/97NG Ɋp핓m@: dݎ ƘN9gpmqT`ggǝ'o@CdғO%*SLC5GTyDu=k>fI@wDW'>G' pX4AG>t~@ ~w/?叾D??G~7SK>HIDj4xP բ6͠h9h5&"RM4l J8 Q%lxZ2C>lcЄ@l(,ʕH Z65@3@`H"dZlPAN5jjU+f[S4VZ@=4i "4Ë7vlo]-l(\NlڵY}s7e+=v!XZ5(JatVgMG$Ai lؠѨPT*p=. +l (S&"Q3\3 $Iw̱o.ώq Yshrܱ] rjβܤXEM ְ)b0`wCvgw}֡!R툮N#bcycܷezCƗ?t^e.b H!5>{FE{Cqi s>] _'ЀT42 lzΛcl`p /{cB` A4J2_I8áJ 4 %ńzJiQZZԈH 붥-1l'zx/ &jiv謳D`\xUL{,HUJcLJZ'ӫ&8Q[ ;V MM^낍Ru_v}"^%#Rh_WjBϰŏ':2PЄlm B7ȤtmFQ9zRYlLi5X 0.`+r4vCڅ]SVʒO驓lG!CdU$" :d/ҐV svT{͵v ~ׯ;+O;@bKYQv чÞ6N a<2H:#-LL_W(㱎f 9(9FhU􎷎A}apŭ:Թa,F5RH w$ejc6ɲ3s\9Y`,1jnDzՠKTs|ƲAHQ0}'ӛȨQj\E.mы6QvLi,NXٰf<pw4njrkTX%lޫ495V@.2m)8y&2h$(*y5*cjHtDsIVfKMYf˶p*$vP <4y{k}ǺB^E;ɾùݿySIzjg{|t2^_kM^RZc73P7^~-=~~' ^3w;u"ٿӡ@vNQ1+Lrw+fvҪe P5&gSfyPI'B(*z.Lp{Nv0O"@P`:g#NSHsyˎrۈ2P%l P P BLp = pIP  V@3 E zv 1~ 0 PpPHXGO e pqIR@Q'+/g3/CQ 3OSQW[ ocQͰ]osQwg1jQ%QVq1QǑˑQ Q1 M Q!puPzPKR"'"+rc3D\.`vx!,$O%S1rWyK#!%i\ZjTR'w'{?X9'& #oA|)))(#Q3b W,,n"V`"#`u$u /.A6P[U_u4W.UάC,YV4 ҂@R62:,VNKG43d Z@vJ3V8:`]UK 2v.>Ӗ GaP<1C ~IS37`er[A5Iە) gc?9^RV1`@S` eg%x Rcfۯf=)S:i@h)EdykBDmU U@$ӄUhjOhq3aeR 醮l˶" R` W#0~*lnPVo5j$ovowspqQp q)r#q+(Or3WsSV-s9p7WtG";sO1BtWurQpUuwr f7 _vVv#S nwfj@ a pWuwwݶw!x!A {3p{qx f |yz(17@|W~~7k7|gD|1}շ1w~w"x ؀U x  $X W  x AWyA`Gn8v b;uxxI<@y׊X r8yv዗؅7g@y `wDBy H؄`DAPXYoPˠ"YA'y+ْ#3y-/2YCY?YMyEIYٓ]3!gٖmoAwg9{9uyo}y9YxG||WijB`Gٚ@xלQĝ9ęxQ Xk~Bx ~x!Q iٙ9YGz;Z=MZ9ڥKzcAZazEizca9ǠڨZکB~ @| W9~ŀx D@x yG تڭQ䮳wɘ~ ;~D D@ [ XQ a`ڵ_c[gk[@w ̠ x}w[۸{;{۹ {ś˻ [᛼{ٛ;;[`zQyܷ xa Xc B[Mؿ~S&7|A AxC Gz xA Z|I ܳY3E x\?@;;|[ɯʳ|ɻʵ̽<|ܻ ۸G_<]ϑ ]< !/+/]7ҏ3C719}==E=?[5y}  ~8%|I$WAoXc}=Gm\OxW<@9Ɓ]y׋ ]cx<Ƨ "-˙W]c]]]Ya}= >}}]ڶ3^7;㑚Q Zs~ x֛}S~c nyWgjv`۱č ʝ U5&{\聼"W[^Ǟީz XA۞^A~>>^پ#+^}#'_ z)m WwOثq-dATQ 33_ V:l|AY苿ݞ›}G~ZEǫ> @Dw(%Ͽ?տ?_? Y2d , … :|1ĉ+Z:z2ȑ$K<2ʕK<{ /YGd1_,Ώ z*CY4Qaz>Cә\JRjOɜ,)%'Aa%f]{y3Gϖ' >8Ōo<1ɔ+[c͜;-4汘T4ҋR'e_}u.7CDʂ-\t+{˱ʥ?.<6QO֍Z/AX ۿqYf H a#Pq' "8J !H#PG&x*m M$K_фc28~ވc:f4dBn 0dJ.dRNIdP^eZne^~ fbIff&7Bn grIgvYezН~ hzgh@h.h>gh^ini9iJjjj kJkފkk lKll.l> mNKm^mnm~ nKn:FBnk 4мBkoEtp /B6X5t$dd0 [5't15d#B_sq,/ s2&K'TPۍ< 8.h" OD}bDBZI ݯ.=D ݑ CBF pdVè!nŎ&>nȆ,PF[Yb _h"!!DB( L(| EP„|sl>_E„p !%pLl"fjT#&XX1+^choB,^".LH+G"/00VxBh E*C?E+NWbRs# U͎!B6FKb6UK2M-),̍n`H'JSr{c?2"@" _1=Mr!F̣5l ٚQ6$07„|`|"Iiq5\-}G?6?l@#2R!%d t2k\CHKBAV Vf }B:E|ALH:į}-dE@*rT 9;bAs<EA ԠJ䀙̤rI%ȤBU,x'p:Be UDZ ozu\s /LOa~jG V\%M-!mR&V!Y6'B*U"Z`ee9ə ]uaS1$ ׷ sro:,B? wĽ  ` P.s-5Ĺt\td5BvRw-7k -X5}_S g޻~4.)p!=u Kx$x$șJXN _ ~JK1%`{ڷ|B <2ɣ^"JL4Q}`{`=9Qe, "2b^r憤yaFsf6q6s<焬ĎXh#H h"?ω mh#k JӒqe0 V4WL!}`S=ٔ\upi:93ݜg{Yϻum_ؾƵ,d[sC|N!Ц}mTimmyv kgF:nxݸw-\`Gm)5e0__(1XL@a Oq).;rk"/9O.+Gy_W 9,bs;OHΧ39Ѝ^t1`7, ywA2$)H^՝IRZ Bٖ߹GWfF@ c`)C9H jʚy*.ڢ/*1J) 6:8Z>@BDFHʣ?ڣMʤOV#1" @XjZWZwԜptiZhWbړ^S95Jp1+#g@i t2٧mU'@4 {RL*mwJyxZڝuJGN:Zz Zz 빫ѫrɫ jŊ @0*:J_ M,$)gMN vڞѮz溩RO{ʯQ=:犠ZjЇdEj:[ ;_@JZz$&۲(*,;.[0{ ѳ:?BDFHk9A˴<۴ zT:\iwdRdSV?嚶R RtSzQz 175? YwJ>< quBZwmڶo+ʦy =\ 5sFBRQJK*JTx%@봻볹;[{›ĻCK7qi˫Ϋc E[G{I+PM@7p黾UK7MW> Ȩx>`U5[U5dVt C8oզ)Wdf|Zʼn5t@ ~!Ԝqeg 1?L8 ”PO p>Z ܉ nÛp ;t ss ?GV3\7P ;uk<žPWL,NFJCÿKK˽z ,yL~\kȉȋ 7H̍ !V qɑ ɔ ɜ<ɞMʤlɣCP=9P=ʭ<˻ ˶7 ,i Ux wZeJH7+Zt[GY=ŜYYq|N \_5̞Z̖ Ύ փь[+$: Їm d -Q ЄYtjĸ 7JΨɢ\ʩ-)mʘҧ3-547vw@Mm?MA]CmIKl0t,p![  aA]\]ݕuf\myRap]sq V_FuW׌8Wnf`]GLJٕ=ْ n}ٖٟٔ٘DsX+Fa Be}*R4v [a lJ۔Bw%ZFVؿ % &"%m5oݯ& ["m4c -]3@M.v/;׀\Ar413 ~`op V༲ed ;aCQ PX-6#CkA1!. 1n p 0 @+ .@.Dn s A>E~ .Ԁ@TQ4bI^$aXdTT8>O/q.sNunwy{}.Nw~A/+L&>nZd/V$/2`Eu 11bH @O5P4~ aI. !.Nnǎɮt>4(p R.Nn׎ٮ.N.c 12` s鏮A00n6tE;Q1.4 qA “ӄ dM ;nI !/Վo>,> u㌅170pSAK322o61]d6h;E G4];SCoEY[]_a/cOeogik](/^⋵r\1v/cNQn/u6OI@AM P>;/\]1TWe3o/Oo_qK/P+NE 2CUPB;LKI6uOo_%\/OoB@ DPB >@DQqc-[6(*VDqm(x(m㊏*c5n6VCGdA'7H'5?IN( DL8R;O4"De͞EVZmݾ=+V\uśW^}ύU:s#4 S0 oq]oDFӡ+o3T P+ܠ#@D0AdADύHBWТ %/`BG$DOD1EWdE_1FgFo1GwG2H!$H#D2I%dI'2J)J+2K-K/3L1$L3D3M5dM7I9a8,D3E), ԸA -)}QG'\t8-D _:xOS-U Nz(S>2"rnU_Y ]z@9^\*xWU։zPُ>O(U"DثV#2RK[<4/-|D"V(x |^xp׊0񥈏+`U,|AdUbX0U{ خRa8׃ c6WŀA'zٗ+!]2U"#U.ܼre/v7 _X(%.VU f_ .lNja)̶m_^jBYbCo؞Uyq'\%RrL$*Z" Zas府e^iKoN$z뉺q#ߑ=}){m 'y+vz57?ya_:5WUzwGUۯ~|Wzg/?ɛE?uWԦ /=8AA$`q]lp"tŹ(BXhiA'2 iPNPDeHC#.H֊:U .0!_|%U70F, } *ijJo !,4'QY.yDB +ƻҐ@"<ʄjk##G =:xBV !H rV3 C&r]bWE<SU|PBR$+< TVVR m|9'<`/lt,SR`@gap"#}!-LtD'*!V|hE"e.XD`;9!ЄԀXMNB)J'R.SZ/:GԳŅ'<5Z5x\WW*jU%* Djlb5U9Uc[UN_]9kpլm'~+f.p)PZͺ@ի8Ƞ!pMDv/'4(]BӑJw&b2X 2 "X DB_ ⪊94M#TZU*8+5^UEG0x,f-Y~е0`]1~ed͍,&1Z "7)afp(^Z_5lqYfX/ß}L%_$Ջ}Ѿo,zh)Ulq[60Ͷd%TcHмmB<j"ph_Mz)^} W"}}Qz"J7G{~F*D"` 'lOT$~T+gf.&>ab_ݑ}$vVФx;`U=5[h<dd ]ycSro@k@.va>%/t'4!+7Y>Aģp<'m?nDY7 B[a7Nc7}TN~/ТޢWU "]#-kڽ%Z1PPqw]ubw}؉D8SfCOWa<,{YG=kȔܭ,+w7sO#ʪ蹹i_bV>G]ܬbٯJ(_;ۍ {Yy[1Y\(NmsTvIq>r#1_?7۽ ?۳Qd;y; ܻSA> Ьc:£3[S]sy+0j̅@6,ԝқL5,#B#Щ+)̯X'-#1@jB>wD p7"%ۅ<,B ." 9++FD[@vCxR'Uq#8OYQ7A,D+'t8S@C(@{#8vQ|7#RHlA#¿:g;@D!!FA_]@"CHž(͓,x{逰</أ.<M;Rs7G@X>h7 wc6CMD*"CsD KdɊ;:\3SIRܫګ(Yd5zeVL2g? Iiz+8$]ȅ= ; ʫ3U !@ƽH|"\  c/[lM2r<'MOT#QAqg\w`@4lvvjvRݶkÍqM{v}w-xބ'nxs3^DjQBB'aC yj@^2 D2ΩPP :4 f@2bc. ?w|;~s7뛟>?xNC2J$ǿ _W@6Pd 80 gAn`A@ 0',!ݴ1 T'-DJVG>n<*NFQRx"Hf"K%PH h$xF5fkt6ڱx|IxG=nzIB򐈬ZXj 9r%-)GFrdQP,@Ȥ#(%Ӥ(q.. D8kX( #b %IbG>qp3)jBs#̦IGkRf79I!RH )8Ž\ WH։gs;Oy j&xt>4Z4?)_H d4$#UB9f$7řoiPSӨ7%9ԦrхA+UzTLTMu %5UWeUf1 Vua*}sLN;'L [ΰ7{ GL(NW0gL;B6αwxǞ-OR QbBvD h!>r'I L!Ȣ8Z\(E$UY(ClOԢH'ZUXrPA0aJB qO4J[ 4+ E233D/!~tkHKss!W Dąf7eL Z|9uW'X| Rtŵ͊pv-4i9wn@ܽ~6nhEטqfHǍp\SB Z&s)Cd\ dd.&kBD)ZĢ!=6bH 862jPC]T? !2!,@o׿;wρnq=Aw8R2 0Bu/V8[쨙P $C`E-0!hwif9h,\ԡW Ba!Cy/m . bSXȶ,DVB 7O@p{ 7^\ E(`Cd Ry)@h d8s+.quB^Ew~P /' wwyG{GkX z_eV ؁! }W ߷7~g} тmr vʧ @n @  0Ё8vAiig) "fQ:zFؖl|czfZ@xf[Fa`@F}<[pQ[BAFA`UPARnW(L6_>1揱fNekfJVN1B~QDZq%2-a-x)p`4莎xAA~ތ^gmwnjY!^뱞t>n.nUwW޴.~"I^ ly``^NnKjOfkަ[ OW @H }V _*=iџ5*glf ha1a!n!,=MJ?"N_ۛ1{0B.󖑰ZYtZJX;Jwo1+?S- `k {!6_?fѢq GQġ@/t L-!QjٍmOݩ^ޒa €~ !Q poƇ_9aw`yy6 }7WX!zhWzH{Zzz9p 5D`Z j! 5X8$Z O$X fT'kLkٴӓ2Y͊B !Q)ȌZBOj1bʑ_OPk)U2,0:a5j3 DVYC)WSY]TU )h(d7iZ_` 7[xTrSO_w[8kdyGF( JR#}4fkfa5&/(Zer!OiVBຨ\eh?Cew_M" դ`} UƆJk6zX钁c`XOCdQlO[mZKN)ZOgY$ħoͷEqa%sJ7赥 M}!G6l\:yywy+SesR^>(\&ۣ:@UPx˯(}kn% AG5GV? {:`䗑RBĹ} &Dk] ?!G]Q2 .ARՂWxD$&QK]ݼgP-](0Y0 V Zhv2Y%K`2)'(7EU&zA4:#̈ƅYtF72"RDЄPgIpu&h2Duwpzpm MZuɤ1Qe/}VDOX)0{cjPUlB,4#PJ(:**k؃ՅGOt$Hz`cVKngj_ԣř& PvVl{B1sX;je+֬4.2~_B05)(Eח爟8ÿo @ @@\<xKQS=SxZ T=SX <\  T X @ <;=QQ< '(AS` Hh lQHSB)B*B+B,<@s?T?p?l1T(®)XCU8PC1lC H=/?(#B [HX9\'Th :T(KDLDMDNDODP EQER,ESk&: SЀ33HJJJJJLE-܍:pCCe35\:){ tPJT,ȭ\LlL|LȌLdȿ; TX:;>HJ;Ą\NlN|N[ˤ+*R0 T04 |)A\:̽?H#x\#;lϥ{\DD#pGLx'AU' O OS(X :>` lʧNMQ]QmQ 0;(Į?>4ƓQCϤQ1<:R`> wCL 8@R; @XR SUL=S4MS5]S6M@Cԡs=1(%ӮS(==N8D9$-T)`P")u? IÏ|D݀@e1,mSS=UTMUU7-#>#h X=ZU 0WZE;^uUˀU}VhViV[lՒ e;jVnVoVku ;p=WtMWuMQq׾(Wm]WyWzWlWw x;{WWE|ׅWXMX]XLXJseXXEW%XXXUՋ׌XYeW·?ؒmY}YXw YYوqYYY=YKقV~ZMZEV]ZZmڒ{Z\(ZUS58׬DKL[ XL[k[PT[ڿڱ[,ۂ;O[V%\D[XKܼĕ[m<ĭ][ύL%8DM\\TD\-;mŮ$խۼ\Q]C] ޭ ݁]]¥UT]Lݾ]V]uɥݸEE=<^ Z%ڢ]xEŅȝŴu^Ml\^Ĭ\_ܯU^ `V%_;=ZRKT[^E]mEeE`J8MŬeS֭J^aʡ5fa5 ဋaana@ٔb!L8 b$Nb,;b%~b(H&7'b+b~b,b/Z./.c3>E-72>c6nNL}[c79c}c:c3|c=c,c|c@.[Hd[`1Hޅ5dKZXbaF5a0cP9SFʃ=heW6=Ked7D2D3Hd1e_D3cHcc X>`YenZ[DeX\XN^9sNu3X^(b_ Xfh>;g丳 n^hLRrDX[DcPĊhzveP7P _f/PXh`6shWHpiAs XfhYD eLԃe`x[&x^[g8e cЃ]xDQ>#1%(A'ٚ1)7 0VmVljMjD_0K$K,Nm i= M& \*ah1hmc|Qq)|56:n:ltdPE_0D66@7x!J9`k:~~~SmkSe~~IO_o ,h „ 2l!Ĉ'Rh"ƌ7r#Ȑ"G,i$ʔ*Wl%̘2gҬi&Μ:w'РB-j(ҤJ2m)ԨRRj*֬Zr+ذbǒ-k,ڴjײm-ܸrҭk.޼z/.l0Ċ3n1Ȓ'Sl2̚7s3ТG.m4ԪWn5زgӮmvh 7*{/nʗ[<9ҧSxn:rڵS}[n֯'~<'`=~CZ[~( *q @K@A^DaAhB*Fq@)l!u!+9N=#6,r J-`BP&Ҥ+t1P+eI'FN٤ $t"%hq:E\uyg{ KB4A_z\*PWdA#KR*E'zAK,$(e}R+ v' K"2l+FkVlJ "[n%N"I"&R/o*Hv ,{{.0;ll&PrA*A f-WR`ŗJ-tЯ˜4G|ls s353G+s 'E 5$Yk5]{5a=6e}6i6mŵd2w&C ,!J ZhZ 'Kl"& k TĘhBg}9k9{9Y4饛~:ꩫ:뭻:챿|;#p+o;.;[=ǝu$Ѳ@~Rq߀f֟(i,=`\K,//=??(@ 8 5 O$0 l A2pAV98A p'%D _,, cʰ  oXB>! eȮD,\"`#K$!K&BуR"-pr+IQo@Df0iBc2Q!b=|<>ꑐt iE*,# G%Gtq$(C)ʴi cZ8UVU+j8Go![C,7]򲗾%06:ԝ`uT1SLbt2g:pm^6 qryC@Nrbwy:ySg=M}Ns<]) =V EE-FJU$ĩU2Zeq Y'&S!'?A|t4)>QR"u)K_*ӘT%%IqRԦ0LZSFSqdql tX Y,C(* Q MZ QiH:+yD(^ѕ(E=*^{T$Vj"i[@2'#5Y$U1]bQ^8+V>l^Ԡ`| AL? ~'uOS&-t&!o{s =JrwRw).v)h-J+񒷼=/zӫ 8_׽lH2淾Uoߌx=xq b]#PAp 8 C!氇`B = #{1z_:i0@N)P A2C dS@Ƞ | @fC,5APC)Pe$# E^Ɩ)0 mŎlf47d˨wle,kl13z9@r a "o6X ~H7AgΆ&L.ѮΧ" ~r=-`H7^2rMBwժf}X  #2ak dئ.veZ 002c`O6,J ,SV:ֳs^:.f?;s4`A?L[8~?<3: S<3s/}cֿ>s>/??ӯ Uӿ?O?  &. 6> .qlhEkC\ BWC QLJW2JAG r`u Ft`" ~`xI ooADr  FC`Ex ` >u` V ^jAl!.barDᐘ!!^BF!֡! .a >Gl !~!! Ǐǧ " .oQ$^!{\&V!#6"k&ܖVgEWn}""vF8Gbhx")#"br"+".+,f->"-b1B^4#1/)>#&c&cb/^Ri#95:ơ72:ƣ?Aƣ@v@v`"$D. FW@>#aCGndTk%we$a!`$|( L*Ddt!,<  ""*1",##*54=3;<!!'(*+.023689<' !!#*++6 3 ; 5 - 1"<:  =?%C&I'W(R*[+a& F' K( N) S,![ >A-!c0"f1"l3#u5${AKDCJJQ[PR]Zmxcbcklw [ b k s } |EEIILRRUSXYYcciirryy EI!MQ"V[#[a#af%dj$hm&ls"sv'sz zz(v~BH GX TH!U S"Z [#efspa e%k!k%l(r s p&s)|"y'|*6$7"8$9&;%>&=(?(%|@&A)C*F+H,K-N-O-P-Q.Q0S0U1V1X2Y2\3   ! "!#"$"'"'#((' ( ) #$%&* * + , &&(''((, !%!)*"!,-"".#$0012$&&''(($'+&(,,0-1263 6 78 H*\ȰÇHŋhQŎ CcF"+\$K*I`ɗ8_Ĩcğ@ JѣH*]ʴӧPJզ̪X'⼘3e֯XqٳQӪ]˶۷pʝ[ݻwW3$޿ <È+^̸qc#k /k6븳ϠCע͂ Z勺uEL۸s]t;yNȓ+G,УKNuT <ËO~aӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8Ee`<)䐉2 5AM-D6$|.4D;@I 542d׃)>8&R)S6$Rs5 54A2PQ柀Rwf ` $2$\LA3z覜6C3$E\PBPEARDLj+c=lRJ(9P R& B C 142T2LA-T ]K3ҾRN[-Cނe V(s 3V3@`"yRPԼrB) 0I)\R( ԫ)+T,d1TK/"O 0S,T$"l2C0LRaQ  ]M-ђ[ I@ 2aA4D'Peb q#!f+Ѐ B Z+լ|wQJm~+ tF#4J7L44\gQ2Ч $C -`%CK5WQ"NEt5V( 0{]50D 5Wo=Rp9Ğtܱ&  d/6ߥB~>t#8 PX l ĺ/MEp/XWiL1 Oؙa3PS|=7!k`<,&sF8 E8B H"fTi0(UEz8H Ԡ2!nD` 0ET` 9 mh` 8(uBu: avuPwF3y0G(+.m0 *dQV|"E%ȐC,@ 1ł :6mX FGvGq;j; D@1o @op @oFHXDhJs ,`N =,F 0 Asx@qhH1&5y 1AFǔLL1LI,@Ӏo@o0`v\ו䠄Z7GJB R;nm *p>i 89A:|醊P pykgRYp) R'RrIY&LE BF0)` .w9YyșʹٜYNVyؙ)W*9F"y虞깞P@rih1 "@_ĵ w  ڠ:Zz5 z)  :/Z6z8:<ڣ>ơP |&g"NQjp*Z\ڥ^`] ѡ!@`x@$sZmQE*+pP+@#w@bک=ahJ I* x@ x_z+AЬЪQ~@ںڭ޺Ы  :*:jxZ*}`$az`+2ڢ ";$^Vz `k|p1˨4{+`zz@$Ѫ&] Ajʱ$t0T[VK( %b;d[?JaгzpѮ+ + s*$`F[P0(kQv``9A,jf aѪzpz[K0 vZ #!`8۹ۼ$ a!Z+붾ʢ; @'P6qp'k!( }`! Q:<Чf*{*/` ;P' I˨PkJ+>@Kz!ZIJJ$*6*+sPt <lnƱE$K;+/`x|F$Pu` !p6*k ǎȐCl!ɖ|ɘ :Rɚɠʢ|Xɣ|ʨlbʪʰ˜ʲ|˸Kb˺a|Ȝ6Jb 5*+Uʇ !:Πu!p9Z}ࡓ,ԬY \ū` ˿ 1Ђv+ ! L\g, Y8 =Ez0x`J!QN[bP1*j P=[pV~b-;}$P@pʨ t@t=k Bm LL@pՑ*ݠvtBͿBЃ`@˨ Pݥ<<K;ֲ e}ӁDA¿Q+!P*P܈ kȪ($+&m{z!* ޳=ߟ\媫zy' GJ;!.), ;+Ļ!@`K(]"QɊͽ Az= AZA @&ʨ;)=Jk*L+ٙW;+q;W,ʪz>+5 Q@>\k۳DMHm  k=,JWҪ$+1N(+j}qtv9,)㦾gNɵ}L`NV~[LbҿޱM!/U-ݶ>ɪ`Q=[~\{сCZK՞@NM:*4n .(}n> //1m\ /^ P'x95l:4[\9aM2JG>N^sP2˺ @0 ,ZǺ } acj-=rÛ+l(տȞ?,|!>(!j"tO⿹ s쎠.?o t [X $XA .dC%NXE5n#C!$YI)UdK1c$MOA%Zъ4e.eS-i"ZUYn+HQŎ%[ԯiծe[q *5[]h_[a!/fcȏ #\ٰș5oٳɖEiԩUk0M]mA]'^|nc7s荑+.ytٵo:׹'_S0OB 5PDUtQFuQHtA#RL3tSN;:)uTRK5TTSUuUV[uUXcuVZkV\suW^{W`vXb5Xd}I uYh"yivN ,oME0Ƙ b \zق[|՗%='T,% wagT*"ݨx!w_;Ɨ dG=&P"gwAٔhxK.GrFI蘈h']}B{^ zJwI$4$$a/,w Hy#`J2IiA Iv9Ć#d*%GK^.LF/ Mjr#)&.uK2S!HCz۷H6{ao 9]μɓ$ tCZ$8?JXA `$y+ʧy0ۜ圷y^D;+-8ϛ(^0DrU@.T*`#-F i5|WK_JT*#)+RSSUN9K?em~}#g! А U `*@t|X,][Ls ѣ2EhЄc()Id0 HOU\F$=euYeh:# V݃$} rKփSg ZzDb;!qh ƒ`Ah]Y\"u4x7X4AMhe.yɞ#vg5{AK[{`F! Hʅ-#l[?Kdh[b ,l H6U%~4_[i##|B^4e (Q$@&ɒ% `4=F"[ⷈejb$]25|e4'Xs x>*C^о$vF_Ug>+CKe۟\ѧ> y'Yy.+$V C,T"0fXбNΛ/|Z"yPiBrXb~1j1gBڶXo' ]ڹ. 䝂@6 !#G2"%x׻."]'e6\Sƭ&!XxG^u9ŗd=yзhH"}]z^ghD{^ b}{ '>U'_|KMT8Ar+$R`6mn * oh# ݧ?SD=7Ҕ4~s0 ,8WI 6P?<@ɑ ?t@X@tAAl sPmo8 q=р#   L< < 4"|%,&'$%;?@aJs 5t8m@k`4o(*?` <6CH@# /0T?CoÖHD0CJCrND6 Eho8ÑCoC;t;5EE6( s984T8FX6|C,50hFs8sFiFkFliFnlGkkp4qDrndGrFuGwGh|zvF||M4HƓ *<7EӀ!%tSq4_%_T|}ZUߖp_\ Mm`uA hΨ]!NmpW, mC=^`a.&6>VVfaaa^m^|?AISmE4=5ȾƄ$[pMhNZ͑Hӱe(@e۸u[.+f"bIM ΒJn B7xH)ect؀#_}ק4o@@8c=F>. M䕐䤔4ohA@4O4QJxHqM4d;m;c@- A6HB9?? 6 3HfcLc~Bh>F0fd>3ЀpJ4n E]enf_=2ygEtfzgH;}!EgCv5sNhf2;94yhh%h6hg.iVy>i^ini~iii6D`X^.3i.;F  *NAH;XjW!H{ jhjI[;(zI9}h~k: [k~@86k lU9b(V Vlh1앐񜡲 PRd;kZakx mmjb &eY^l ކ6Niʶ7ln^{(.& ՆkdAՑѹ6lIYo5 ,H^Xph`o8艆dX"H(ZȂZ!aHbax /ap8bHlbh!P p@qgqpW2WVWpWb %8'b!+ҩϑoq"b"Xn7^l 2kH0mԞ$ء ̙!2!J*i! jj!?,J)F;~r,kĚm" ,jHo,Q+҄. 2lTbFX!,sD"5r8 )Vؐ"N):T5gȦQ0K2j-DgJ"S1Ϝl( E2ڴj*b,jҭk.޼z/7c/_OxBڐ`&a!V4j<z{:jP{6Ѫ΢dQ-+\R)JETҥ QUai޽]Ɉ)W|̐SgxiԪH-ʵ.AUT *x]PC aJ8!Zx!eXCٳ+ӏc8Ye)$?L4)- ]`c RB0h9 m U@nv46#5)[]@M2@# ., I(^1dD+)p+ILKY̚m|* AEtL2q7@%3L <IMo.ğV1U P9dW\*zYATh++!CB, ?ΞЈXH!Q.=H>X‹ 132-d/@\ޒەO T 5 4/"!<@UՐc*t&;E#2G5$ry`"K[p-0qKo#IRKR\*,]{5a3DBCBz!-nÏrs@!hӕ@A@RËT$3>R.NM I84`3ef1mijA9~PL3D M lnQ+ 4;:$.vs-3DW~n8ťAMMH0Y‹=??MPߐໆ6 \`kTjұC&0!`PI6h@ rP Bx SB߅pK! 8 R@.H hF<"h&Nlb04nA*ߟL&%r^"(1 $ ŤH/ SD"G@9ұv#h?)lz7Arz<$"E2|$$#)IR$&3Mr$(C)Q<%*SU|%,c)YҲ%.{EB +%0%DaP1):$`ķ¢B!x 6y{ȣo!A>d<ȩr]Y'1..$#јs|eRT B҅2$R@=mN™d:fQu2BD'HC~&=7 ljړrVL~kW/~ `e8 VpOo"a g= xĈ(Q b$ΰl0NW\c-iaV6*.tY.%#]x"@É,1VB"(i,?i^-;gB~q[/cA4.t|aIGMaLs;PzԦ0 c~5c-YӺֶ5s]׾5-azo2l7>< DwE0c+6/7dm,X(F\2I04GIb"zWAĜ7J0gb5ZM38#.\3qet8+z؊A61=|s@]]gȼƳbg#4`O6v`P}U783/(W~C#:j_ [f'D!~YhoÝsw{naY8<^OۺŌާ\z1f*]> 2ˆg>e{Kbqg n>I#|5@7/w;` .]Bڭ] fn v~  ?^@^1`1A[6a`W _1!1)01-[T"W- SbW1 `eԽ!!b) !ơ!֡!!"  "!! "&" !6 #6"$F"%>b%^b$:? 9b^MASqaƑ%]I>@"|b[ # "C&~c%!8#L"9:#;;#@40. 7mB56V3Ld_=NL$}?N@#{0۔"*!0>h ec):qܴYFI)c @z:)ִ%'JUZfɕ[MΥK$%^I!@%t9Ŗ`Τ $1b f@ceae]NH@!$,/J #&$++=72;;AJCLJZRR\Ymq } edekkuvy g b k j s s ~ |  ! "!!"!#!%"*##++#$,%&- . 0!0!1!&'(''((3#4$7&8'-1,&,00$+$($("! bÕƚͳʽل԰ĭޟ:%h)\؈Bmrd@ aCE .(%…QXP/Ex4 Ńر'*B%G|e#'V(] e!tfj(+x+XDZZ_Ҫ]˶۵޶ iQD2]RhO̔[X# a @˘3-wER :B(.5DXJ #VŠՄڱoD?UN h`B_xX]R06@PҤ 0br3 0R#IG(1j!hw"= 2Rf<Ѓ)P@u$eu RK5By,6aD DDG"p!H]@ARQ" AL Z 4 XVi"n+z#5C. 2h#M01Cy2)ȓflUpr DaW&#Y(}Z+)iT&rgyG[uč9*Ay c< C+yV=讼(? "Z(* >A2jg5JYPY :6+!j.[6.x$40Q^-DM HR$[ !R/;I "4T s"b1Ĵ,pAWu 7"Pĸ!+u\ ] nuvT"5ҁ#k?bXwJ l;XaŒMry`H~̓Z·}؀]"D2AHLo |` J_" m̂n{"55 DKrZo͈'a(<.i.2 D>}o`.o`/pO HL: JUA R 辺(v0)x X8|h˔G Q=ʏ91ڕX# =^qDԅ@ *`D$ "\F8 ((vXFbV  )ĠaBƇ#w5] aB4` &(+=`OhrXx0%1BR^@ >BQr,X-pA<&G+L*HcK L"!^YC kT&5oKFBh@ybV,DXGR !9K/3"ֹFW3'>B1HhNiR'A Aڀb^w+կ{]"c-;ּpx%kU/aCFWL_|fUaƋ8%]cY@qy0frCy~r[e,طT2zŜ)aUY&sQ s_~ule9n@N\;xp_n8,z7/ڲ z54kh%ZUkrӖnUkmk-NduT-b_N6iC]*4Mj[ζn{MrNvMzη~NO;<2};ng:@-YW>XZqVknv-MT~=&r>2_oD>l#H7ӜK7;VVϺ֥^G{q<%tOQujw":~} ^=1G"q½񐏼'O[ϼ7{6iym.5 x~4w=ks\o>B^ }_g#soAbGvN7тz ]\_˥{Mw8|??w\u]Agkw(tGxtgZ#(v`xEGmŋpexXso1ظx!|8Xx蘎긎؎8Xx؏9Yy ِ9YtYّHu y#xpgh k 2w@d dp-,9BxvpGg$up$yk@Xd`Xv:|<>)Z{C)l`pIwtpqɓ{v{`iX蘒pɎx`bI=2lY d96y{Pe@;)d 6)qIHk|`JvIiUdYi0 x,gys9gy hp)$Iʹb*)w9yrpepogkٟ6Ie@k59gP99t8vɒٙ߸I$p8u@Y9;yaw u⸢-긢ew`sj0PRZV i uЗcyccZ0":e|+ڙyc#weY 1zMmi㸢?*(鸢o0]cp+9Wj8zəpY)Z_oq`c RȦ0:y 6ɓj؛PJjg5xЧBe*fZQjQ|d:Iq0f:*H;d@lڬZժtYMZuگJʤs 2[| eکK:pzKjڟX)8 ۙ *6yi!;0zk")Z J%㺖n`-;t{)dPk) jezfdyI7:Ti< J:Yɵ{cYe ;v[nefxkv{ușoc*KkHtZq9: Ij۰ꭜ+K"*w x`xkں oc r0Yʩc_?dмg{*` N٫OyZK+ tɦɝv:`i%_Z+-k/[:kybکI);X HvW"٣!\2zft)qspUHS4ʒjsB|J<|Ƅܮr鎁!, x   !*%*>48#%#,+=32:;##,, . 4!:22;;#B&I&Q(S)Z,b& F' J( L* S+ [-!b. j0#d1"m2#s5#}8&AJDDLLZSR[Ymq } ecellsv{ g c k j s t } }CCKKSSXX__ccddlln nrrq qz z7$8&     ! !!"!"""##$%&&'(''((,05#8' -1  ,%,00$+#)$-"23! 689H*\Ȱ@(N:tA`HthcǍ C!H)D\ɲ˂fipC NPPE0q:@@ ?H)rNrD*Ղ;rBRAG9NU%Z+#!41!dh!2JX^$d|8,D 1P /^laI649A̚7s|ɻƘl֔#e/HYpΥ̮ĦSR}.`Rv<5iԪ n P$4Bv_aP a 9C $gP)PE C 4u@(})T=H>PJR'o@p9*Qwҵ'{is@+MTS|RW 䜗] PqPD ͧ N&4~e 1(B 4 ]Xᅖ)@-TBd B& UCR0CIZ(:ys )KD: ERV"N@iZ,i\?}@ip`&\|٦"fA5Ch.A]a   %VhF*P`p(' KnsQr) VU] \ǓA@&?#&xoЌq[\ߌBq!ѐ`t5a>DbGAV@젦g:Hp<;z tDK@H (n$s =19rR*<*  9nB>Ar` \E^\hrH`N@%61 g4 ـ& F`&PtI@ tK(8Go;׊ǒ$` q+¸ $8)TsDH aQ=-Nll/S+Rc# P0M0 :jRs7 @>z$4XgGH@T3O ` K8N) wc $x#?h(JS"KY<@JҒԣ*)HW RĤ!@ XR]PcEԸ# 0' `~Q 83 'H%c R΢x ϺArqHIlU[x;``A Ay݇`{$,(SIt~XI!Kc'O!_ʣ 9\qPD8egА <0?{yrgnroPvjd A'x~@&;ALѱm3TCDDʇEN$ 3duv'@qr cB}`wg'AzzЌ:86`{1&u1CzWX=`wB1xSp7`0<`s!QV46#SRXX-1#X(! K*o,a.1 wy"Y&)y,ْ.0)641:17= -iJ9 fKHOi<9/Ri=YZXٕ[W00*Y,Œز`1"WinpxP sI1qpo3}pIzLHfS0l rK%G"S2v0H0Y(n0w[q閊W+XHv"-vjlyv@v`p0לovy񋊐 YYy&m-`zGz`zѝQ}|yɟhy *|; | O ח}}zJyʡ*J]89A!܉ `I'1z*i7ixI.2HD)ZmEʤkQ:%R9vd ZjZȅ`zyJ IuZKiꠌnzEPZ |@@oXvywar7QɨJzU2wmoנQon-r&jز y:ZƖpRzɕC-8A k:fړ>&Fp?]i 9^XB$$d]F5`bW1K+}H|Vb ]Np+a~aUv[J[| R˶;F{ kkۺYۺ[۳K빷`۹ֻƛ;;[ ;ۼ{Ȼq[{Kk6 wػbvۻ_˸b;\;[` ] AeWŻKUzY\[e+| |'\;a8k$\/ዾ3TvoƲ7G[k*>V1ܮY QB[L&+f? ĬcbJu6` 3;alXĚẖm8g,tu|ǚz| ~DǂM9Ȇ}|ȊbȎȒЍt]2,lmͰ3 "5& ^'}*}F>-2=9e@&)}FfD]: I}eK-3O=Q-7 8ijv P[Ցe&Mi -9eЫI`z=ׂDŽ]{|؈NJu͎ ْͅ}̖֔}ΜٚݨLM2S) Ich]p7fnH)mר۴mxmcaS=2-и}ˍ>TYҽսݓ0)`L݈ L6%ݩ=5),l/l;ĥ;ӑ m#M5W),m7yAN\z|7>Y>]nO钮^BynǛ>ʚy ^ ^mLc9N~I~ȓUnrq6k ^+m=pL33i߂~eN`=;X6nO?h"O #M,g%#o7U&}LNZktMeO~w.kƞ[JA/D9UwnY^1 d_fhjlnpr?t_vxz|~?_?_ 0 {/ P}_ / h w O oO?^p#@_@֏@# 0/q X V o@ @ `_r $XAI}JСW%&ąkE5n(QS! $Mt+ ^pb.VY AM6 ~4YP%HEutX ),( dpaUL+nj1kA_v%[Ɨ+z KHp ׀NZpeDtJ.\*vqA-= ڒ*j!Ze9ιDyB s\R=TZ>ٓ-ٞd!*Ojy5+SԜ*AYs'NTm4/\f%cyw`@\%)$\WN8+*%$:i=(`yJ#(yM4^y%) EJ 1OlcrJ7` Q` GJ QH&Qdᄓp eN<#"/,Lp' Gr0\|7q¤$ .Mxͤ(*(e>hi_HxWZlbٷIhGVF1fPsz¸gU@cI>hpo/^zi>фFp@B5y(F xS! tga1vA8Kv+'?MBpD 8Mcģc19fǕ"@,f:s+w.2tQ*0ΐ{H"{CHR$З1 Fؙ.b'X$&^lx4f?%܊+$|dhC6Ć^D `D-*JA,HLԂ iQ$ !*,G  ##,,22;;CCKKSSXX__cceelln nrrq qz z8' +  ..23689pH4Ȥrl:ШtJZX*q{zxL.Ezn$zv5M{}]l}VsFh\v[ei|Nt~ƩʤΙґvڄsVJ_ONxfRL Fw[p!bJB3J28HSt"B-`?3 #K5b*//ԂdMI41i ^9bfj 5)50c瞲z)(7N&Dh> Ngމirni~fIjadnkJ3޺Lg ,]~LtV%ςχfAc2a9UAk=Iѕގ7-dԺ% .櫯ޛU/W7<_İ;qG|,r&S 2HroS 2oD;cϒB{V+2M(+os,\-Zo= ^ vجMͪjjv۵ 7rϽ,atm:An($ҀP RK;so?}x^ks0,G tk^zz^2įx1&Kjk %Gp@PK 6Q9 Tlt7J>F݂ qFu3#tX 7 Ԡ1!Tg OBOdd>g:ba|P\8(B8D'JъZͨF7юz HGJҒ(MJWҖ0LgJӚ8ͩNwӞ=0H$P(&P XU*2t@NRQ <  @G1PJv^-*0U_ P d2HPѵ @, QP6}+h Xʀ2HjW֦EiZZLmm[h@ 8@lFG4` >4(vQζ jA*E@vZw2obe@ PNډV=\gBT}z[ZLnx)^j kA d.00`*ƀ \, 19`Bt&Ђ Fhy%* PUvLee,3m|PTMrDQB40)@P[Ltl Py2PAwxt~h?lgLg @b+:WձMA b b@ (y)Q05mA6@ME F]2٭-5 cWf*jYǠ Ȭ%3oD}9gXȾ(Ey?&0PG`@S =L;fkFS\Xp#j}[gl=֬-O T75E>TP OvEg9;)G, RVUk fsnn\h5KٵKA!5,Gz  #*>2:##,,""++22;;66= =CJCMJT[QYnt ~ cjelwvy j t |CCKKSSXX__A!AT#T\$\ccddlln nrrq qz zg&gn(nz*z   ! !!"!""###$%&&'(''((8' +-1  ,%,00$+#)%("! UȐϵԏCKMJ)՛  MTONTT@MI(TMŻPF)ūk#P9 8!h +;/V\ayq`Kk*-/S]QvzZplqy<8u"ȴZǻo ¡;̃ [C@+, N\'Q$..!(sgށ6 5O) bGKDq&D#"„ŶUMP 0QNo M$qVaDC  U$rQ&R@W]<04$#y@QrK!&#Mҩ N(=LMJG'hAY{&H9%V&D(JQL-I+ /Y4=aO̦6mތ_7S[B0(F9GU YCOn)AJvҒ,^8J>1D'JъZͨF7юz =DCO t@UC\B 4(&?Ms_)B/٬hA0bThz;%?-Xu10Ϯ.r`U-Ā^Mk A`V13tTU^Xyy*8W"T&yZlGJk#leU{];Y];:U3eiYjP4 M{F3 k ֖=enPҗ֏r_;ҵs2W9SR5E/-+R60m"߻҂ͯ~p!p*`JejIXVju#+YzVq7{ GL(NW n/.1em u VxͬfZ vX2yOnk Ld>X,Kيr~$0u7o WYhgu.X}kUYe6]g5V.kaLCs*_!M^ҘVq3VY1)yʤoTn}jBж(5+N-ஃMbNf;ЎMj[ζn{MrNvMzη~5\ xx'\`+axƹs`3aj`Wgc5=g͆-P,7 pp/Ȧ"p; _jc`m]z`ؠdg CC=_7?b`l:~H2o ֥@+[ x|v#=oڑgosX@6`|aC^ښԀ~eCSs.ܼ68zj ~s5Ah`p{gwxg`ȶj`rlg|fv̖wfg`#ww st$Gr˦(m(Xf@f gkp}mm<@0s7YsJ~Єo+l}7mo0v`ŧlDX}jXGHxGoplz gwpqvpzzgȖqlmz8sɆpizxzƈ5WrӖqdz@dx~[P{XRPv, Dpƨ|:WL L pl;?L8<μ`=Ѳ!,G  #-29##++22;;DJLT\d g c k u }CCKKSSXX^^ccddlll lrrr rz z8'  @pH4Ȥrl:ШtJZ׬vzN#xL.T1zn|Nw>{G}tfPBDK  y B~Bu ĿfnB^DHHz_G$sOC( H3TDg_NHrJ\9p ˅$|)sˋ)o1 k)h͈FC-YtA8הeRjo+שZUGbUz]5([H,ٯY-VoǾvL40ἆL.ǃ;~L2V׆8dϜCV+il^8&וQk 6ڸ?Ս8w۾|p+Z|7e竡 mU~74{giH^]_Qnċɻ}y  vv7MLwS]9&D!N DvtNOd4SydexF PN2a=ꨤjܡN ꫰+Zj뭸ꈺj誏V*bObR)n랑x+k覫jmm@kc?t^2Y@NBxfm[š;W,g,|N1Pv2\|j{ٵT?L!q[h ˠ*su~ s@wZ-ˇRJgu~:wUS1O]<+_N[|r*/oZ;G;k,JԶ ;ԀĿ߫S/ӹ.+Q@)'H Z̠7z GH(L W0 gH8̡w'8|H")bp&" o@hSu(AV&j0K` <' !potba% 7@>> @ 6F3fp&IJ~ Mf=*WVRd!Q@(%Pb jy\ <nH`%5"p&ZA_R $q@Lc_INWL: Jd%)7%A=ɃnphJ rAOpu'<AxJT8׉ r E BL` z 'AKy?2r Eh@t`R J-#ҎZP*MrTbbpլ@, 4Tܠ9 , h*97׾r4&TЀ7pAF [S̠ > tk$~5CKt2P"RW K`m'dfJuRP2Jϖy}t[y=x`]%2L4E+ N rDNts0U]WP઒*? ^ n+ "5p[(J0tpt~WbU4ŪWJ 2mj'TFW W3I24 F\g2mC@h@X,oy5]^ 3 .9,4&B׹Stc@Ẃ̫ XH5! ,aJ   " , ? ","+$$++3;2:33;;  ""++4433::;;= =B CIEKDCJKU Y UYSS[Xd l eibkszs{ g b k t }FFCCJJKKVVTT\\D DL!LS!S["[bbzzc$cl$ls#st(t{&{|)|$*%)&*&*,,0,-00-124668789:jfɲЌ «ܧ˼Ij+,/`hGA]ӈT Q  pㆎ*4u1Tܙ $x#G8-X@ @PUX() fj=纮9z(kJ:Jd:(rЃG=tTt5֙`6.>OI"- G-vLHŀ=P/̿D@&\)zR͛7aհbnCc8E*PqG޶ʕ)W\A]oWX9 ~#ލ6błq庪\py7Ek\l18} ;ԠN1#ذ6@!6AD`{ D/5ACH8wC R1T‡2~r}![/!ߋ䳅l!z?ޙb~P ghkAn_<  u@S Ѕ`#Q@ "15d D*+`VDB/G.1D7lA 7tAcf@! oMA@kB~ƴ=L~Ycz4 =|AhIH FJB.4P@1KT ٴ fAtH,2~ɞYҒsDm \< l(Eq `Ǽ O){[21-f>L,cc$7JКMĦ65;i)8cT TPu2g  <()X7oE=T`m`5#>@xK#?y,}$-(4}` ka4q"51h.}ͩXFLtmY XJֲhMZֶp\JWxV=exY7.(H, ` FewK pR3"VvAԍ+Ѫ,be5sm*>YVBd.lnk[KL*&@5ưpU>2Ew)=Xnd;vex+v+^r DVYZl~{CPaN\7^w;큟4j;  Ks |BBx7A3h bHB xk˧[Vȁ8!n9;j*N<X%\N6!BoP=0c-I* LibQpBbZNwbeJ8(":af B'D9,3>&S97&`Ȼ֛wπz󲟽A\` ><ٛ5n ~6PΛVHG?QTcX}k6C\訠쨽r[6-ޚEέӠ0Ei(9Юv2}![nt Vv8Pi}nv׮M(dBiʒm,uE<(Es{6mJzOWֻgO ՝y{+Xl=61S@qlt͝23]n(!%Qo{~cU-{ЙDU0CcP@$ S@Y-,bPۀA'APB'O 325wd;@P=Uj;#۠QuE5MPR+R0JE:LäO*&UuLɚ6 NڥJG׊ QW`)AN/Ku* :dGy4%WT`aP P5!QAp@)R+3%F(DQ]cQ<3=Ţ{3JS1R:5SRr;tSFôB. 6uSrC;SS)c4QTIc4!:bO]"J\5;7*&_6rz|۷~;y+yyeKX8ys}))GA:32'sٜY[YI^u^IkZ< {2N։N1}*`Oಹeo}* g(؋`{^^U'64ybv9i@šRa`aM*WPb'bP-q/;,Ph0hxT` I#ܛc  ?F_ihp'!,P:%02@%<0"p]2V5yej󫚆e^f"AfFl& c(gtf - hU=.@6KĪ$V$F"#<(fligoibX gi<TKEvyA`36; {$CŊj7 hHk<, yȊfߐƖR3sƼ'"<,8 fmŧ2`Rhg፟Ǜ| +Ɍ|cvh9Fhㄏ,`f]oXh=0p+Z'ͤ"DŽ{R0w]00@h<] a8`麶+e'ə`\V3Ws`҄/OY2Stm-QW3^Um6ջ; @36`9c3Ww%b֣Ў4x) GEvg[/Lɞr}t Pnx`%}i6t[qhMtM}ٜ٘ٚٞ٠ڢ9{3ڟSJ;9 г<<5؇ER#27eIy8 KB鳢-> +&M(~9iS[ Q"V\!؇NdBZ׆90_9#\8PuUnx48Gী ۠‰L@n>T!:c\7#׵0 St!n'+§།=\Q9eTg<fi* 3lA^vW[ʩ)ȈȌl.暰"V |9`?FS8MB4\]l|svT; SQ n*6mHΎ9$Ȑ7NZ+8i\~]"d'%ZAz!,G 8'#^&>҉NA^X&xJ>+ ,!,aJ &+3<'$*28##""**++662299= =@ S ] DKT[\ f j u z fo c h l q!~ {KKQQXXA!AT!T\#\c"ci"in(nt$t|%|z*z """#*#$,- - 0!$&&0!2#6&7'7(9*&((9*<,>-@0@0+-1,&+00$*%(#.!23! 689rpɲЌpj«ܧ˼pi틖 n${wtZʼnߥ3 t]<2%GY.c~j|6,0Kd̐jL s(Ǚ,[P< 4ZljUT1j)&vepjTjyZ[&6U>$55ܑB5Ȃ.絙,{ϢMŗ clѕB)tSɓ7wrԺk$ vlϙPMSON&# 74k0`툶H!*[>ҒOw˃w6|%Orw_Pq#\7v6mB. d(lvX ;rRyrU"$cIaNՈ2c>ƑDiyPbSFi%N^Df di&blSn)lIxq矀j%ى袌hFz磒Vj陔4viBdB<|j&Mt꫰*NM뭸 2k7:4a"ė밗L0lCfC9Af , L{Cږ((ĺ6.."+ Mj96'`sM@q~: tJLmZfj_z VLK 2^i˟ephv'H6h??t&L%'Bs}=(RŢR!a\cm6GmhuVͶ!-sM7W=|~+wLqfi{G.E73L j$x֓.|{F:,dN ]^ 4 5inr z03/ 8տygw6/~ݫ.#pSo~ؿ>ٷWRJQqğF5}h 3 JiN٭f j0WQ0U: TP*{ 4PG- s SD 0*])^ o"49 тc;ָ3uB=y͌l 'Fo`Qy@}\>G;Qغ v4J]:|tMs,Q'|jW"zLr>6NJD+O/вQ0syf* cW):Y0Td)Qyfrr˔e8OL̒\t!Lo;3Jq#4; jBѐ#g擞 @?a<%P5}ڴY9GYDh(*:ɏ*1Kd=ZB rZ'A#30&) }G #KD(ѡG!QFbpP}ReVʲՓq#*X?&ֱnLQ0+TTLA ^W0M^Pv+]0D{}A`k.b;Y ,f򫳞hC[ђ6[=RaR*le?te I;ߘ\-NTJ]ҎFb 6(KѪ9i)7r6%Ѷ{fd{;t)SOٗ4qS=?c7uw겼s'3U[0.PCpKqB@cc01 Bpx^ ;YL!,pXOβ뽄zv7{FM#F`>! ^63J]R(fyE(@a9sS˦DJXٮFN{ӠGMRԨNWVհ5@Zָεw[Mb[ؽNc;Ў lf[ɦn{kr}tF nZFkz>k)@a>o]? Q6'.5 F0oP ^ç3|z-qi}p$4G؁j7@tP UȂ' U0P.\! >BTT [BU e`k7Bp/>ϻ>l{Y-hac{r{z^9Գu4T OKuTol`|Ph.?sRP8u.R! cÐ,Do oj_> o}t[靮@* \:p]CY-xtnv=m 8!;PNPk@`VE@kE; gsNPF>P;gjW~hpW@>Tw||Ǘj,0x|ҧwViYz|Ws7H>xuXu/~vVYPzV7ojns;`HЀ;Gvp9Gp >8GkX}T ut8Wj1h|ևwYuho};H\s`\T0}gQjNiiU6;p;`Rs G@p;PxywȈDć~ȸ,8u7Gny'u8a@~zƉMxXp57{;WXkHk@&{Vw T׈ygn@uȂȌj <!(Wa0mБn}|j]@vfH{zhkhk(X>)x@(7|| ٔPw ~Tg&ֈVБmiWƒ0LqiKGtp蓹Hue8C'|hTthyw\0QIhyW0|yh@ bБ'n߸j' op}0.iyf`s395YAPH3s?ًzawH9YIru'hXW T ay^xٝrq zvt9>Nv'FЀYkYHG0=9RWrI] swc}JLi }$j~JHtY>G~݇ޘ}Hxjo Uj8Jti/ɓ;W4ikQ@ H i8苗wg0!ڥqGJhAWjnchwCq{G&ʥ^QYrgjj4=kO{ {VjxJ|ا| 9kjkHj6Mx̨ʐ+jkPWvjw[Z|wl*kZ7!,G $++11OIQ\ b m t!}@@TTZZk kp p8' -1,&+00$*%(#!! @pHȤrl:ШtJجvzްxL.3zn;7~ϯfSWOCCvq {Bim ltIQ;B{fmdwPZpLKD |e:k(` †#ڋ&b˨bBŁĆ/ 9rIo-_N؏̘[{2ΓEo oON;ŒJiիRb:uBUYzKiβBy(ڷkUm]tFofX3a‚B=xze qsN;v_ώ/=rdK&ZmJ˜C.,iWZ~2._ٔsMlІJn_m#45A_d{t$'/ަpO>:~߀G& 6F(Vhfv ($h(,0(4h8xOr TAi\yX_ ;MdMGe@]ISnZ> di晿pUixIwFg]ϠWvzѓ%*OPN!KZ*ꨤjꩨꪬd]8 T(M8ĨvDbzn9lja'X zJ>n4zGeEj6'KnH*rw[ZkRjԼJ0byzp>Ge U605@נ 1 4؞>^>vI/@l-8 9xAR00%^0 ̰vw@ 8<Aj7L D߭w vFD mCPpdX9xcf A 2@ r1;+ An i .ӣ*W?iGBb rYB o71wd7Rc4iG2%Ha LA8(P$LK&w`>kfC?h`%#49P+"¶üɤ#٦ס,ݝ*ߟy;X)!#2H!&4Q#Ə #^ )aG=\_0R(0M oxΟmY̡HeKJhwL QFM"pVbU贪S k uV)Si7#郕5[5:O\b 7 Vc>b3sy"!Nƒ83= i"I) WsX Nȓ+_μУKNسkνËOӫ_Ͼxvs5nXiѠGhL`h,`iF(VhZhNvd"S(⊙)b㌏Gc fX/Ġv9bWg2ߓPF)TViXfA"e=!p .y J L 6yf-f@ oI harNF(5֣DͤxZ;U)u4Jr%Vf^XjꡬP"jfp։l{Lezc#, ц1^fy覫+kL^Ҟ[v;*p7ܺl,V[qw b]ʫ^AEꡰ>+z2ʪ.r8-dP{\`-dmhlp-tmx|߀.n'('}4.80A8`Aؓ-yۗs9맏 4{s7P@@ (P@lA4p@7۫@ $P}}݇m+з觯軍 >`WP@_=(@8?zj2p5b{_6n ^z뫀8*w LKٔ5- < L. PW9!XMчm˞*P!1l 级CMx` MLSHl Ph\׶7|SW -0g όu (y=Ϗ8DD0Ќb-͒`W 脢1xK ݩJ Ԁk{l4I66Blr錨ש*s+M1J`@ %T[76k ՞8 HR@^H&0KzԴ~j3hT.l0>ow1ĩX;h5`P(W1"P=0Y0ݫN71s\[ ʀ:.I ! ,G  #,0=##,,<<CMNS]Ydr j s }GGLLRRm mp p8' -1,&+00$*%(#!! @pHȤrl:ШtJجv>ްxLz}^pj;Nrn{YG|GB BvoB hBpib [TNDOtoVnd h/e@8&D1j GB>v$"ɏQNt(˕"]P&4Pr94ϛ8t)˦5yT?ʓU#Wuٝ&Ϫ նpe*,ֺh*ž LxˆɾM̸*Ɛ_.x#eȃ/c>qfe+sYtł?e+=M9Ԗm&5B>JXZn*lEΝ{JNdãDs}!¼m%s}(h& 6F(Vhfv ($h(,bG,HY$y7{GQRyB&$F-PF)TViXZ\^GT`Vi_ihIfv)y?i'7Rwc6N!YdG 6裐F*餔Vj"xhxRvQjߌg(=ZD:)Dk։뮁믝6 I$\PVնlQ*[_9,*u,ۺV-f7-zYsѾlfQ+*ڮtj* ,ݨuQ=Jqfw ,$l(,0,4l(B3?t_yf쯽[.PG-Bmy-25Ls=_.eSl}N{0HzIDݦ:J#~͌7rG.Wngw砇.褗n騧ꬷ.n99ﮧē 6P 7>9.@2ps.3AÓa) rR +jo !?#h! "?p\'grz@|ȃ * J3#``$r?υr $f:te+'Բ0.38܀2 SPEsǜY$*5Jr,td dpqr z~ kYɅ`\<'*yf#xdN?2f45 I!'P-`1EwEO"mt3h7ap\i9RqK'D0 H`-d),8%wV(Bꂓt; ҚfOr98rGL_ +XCƮ\_ l4$3;\F˹ю6{4Xź։sb 2gw6h!,a7   & !*#+$$*+4;3:33;;""##++++5533::;;< <@ CJCKCBJKT XUYSS[Xe n ejckw szs{ g b l t }BBKKQQZZC CJ!JR!RY#Yddmmd"dl"lm(ms#sq(q{${})}$*%*)')'*-0-.00%12468789: mh ̊""ͷڼڕ݉Bty@! yiKvܘqǏaƂaȐ"E"ʜN6 g1Q>YB  8H#F 1(dш9s:87V(Hf} Q4INzٱÇ  rMeKk-zE'@0z@>Pd𧭄e$$Gv|%N1T.qOǾUT@`ȄXSC$J(UT˦wb(mKy.>{N N$D=pbD YnhsPILQ aٔy 9Уy(SzG#$`6 Xb,?&<pp 6: Xad[8ʐӆXX|(1Qي:@E x!dMaM!1 h x:d$|IK2g  b @ar!htDA" bb rM,޲(puaGa3aB{M̎~'D E ]j0rL|`M[wށR,ҩ@~+eȳ-J W@E1 ,Q vkˬ.k XʁFJu +,[/J0-L ߆LL:-t0L`-<0KCG &RWmuD5D\-L~|hlVrp-tmx|߀.n'7C41CE`AD.<RL~笏.50 2 B0;},vjQnҳG{1,5L4}|rđS,\ L Bor`1[_<9 x P]P!t}{,AA' v2I>ᴗXN- Z0b0q. aV-![5DE sCPq9 xT@rFB;hX<bQD ^qYe?`2m#Hl:͆ZQnYۚ)8ͩNwӞ@ PJԢHMNߦp1*Z59 -e 27#QEO[9gUOHẄ́< eIG_OmkVM1RYځJFh.~\.L9la볫kR.P%II-g- 2t`4t0}=ЁgB ,-uG9\]FpFfBArYw.FcEIDIș~4< 0X a}~1K36Ă/0.1`AzɿMXd |W P@? 3^(k \<"Iԧ3Bw 7"mІ8d! `c./00l=n X; B B.n 3:UA "D>GɅBq-Kv*ڀHm<x%ӌ PPR!PnĪ` -F>]k_Kn^*3 jMJ $F.(f ~A$<`yčBmf |μa9TAP wR妶-H`(9Nc=C0S`:]6Q0Ij]Q:-؇3Q:7 3 E,<2 (6]`4P(n#-ˈU q} ` s3CF-1`a0_ t_ [:pUu BFyTUnU2"tG ܲCg Āc#,(?"c0E<{(YeC؈uY+9 f!20)4rbMd(Xbw[v,?,z*r*'V)s] I._,2, njQEj,d!Xpi*Y@0"!i]YŐBU'zp=@ ~]4@&Ͳ*$Ҡx'PGp`'P&pr Apxh"P:E;@atC`H9:*Ķr&prvO>Pלω pR8/,ln*қ'q2Pj @f']p[0`jZڛ #h, 9raxX>[_W L5X *U2˪$ PVڣ)Zmӈlc UC#ZWDcÔI;;X9:ӊ73V;6x::Ë6!0RSk5ӄ;;;CSc?#OjVгV < : BE.P50= @ 351IZAE+D6Pг= .+/4%+GdE~[BD́RRg Ddx[b9i63=1$B4E?SEEp;`ka4FX5JJldT:]a0#JJK }=TATV˽G $r^[P٫G{5G3IC2>LQ@H[F  >$ c8@Q5b޴ % 2dDCPp²G{;HTA3̿K[N 50]3F50DC @K4T0Os+4K@@1 (P GEEK3ڃKn4Q U3t\W=+KRVHB3 +&5;, M4 1Kə3P,l\80 6, 55Ӵrlʧ( ˴\˶|˸˺˼/{zu"Y8ڮĜ!)̈ j< Μ>*[ a9vLEIHi^5W>CP9sOg5{=bmPa rϻyt\2ι^xʰ9&,iy6^/lQg195r9Prs49gi`v` e0ԧ6'|6Mmi);) :t/)m Gprיh muo7i1a&:K]ZrfrGd&|MdoBV~sGjNe̡Id g9fy8nrg@ NBlrdksjdJҒijRji}i_mo>1 'lǦٴڡ͡]oVms|nڗ ֯y Ќio}k% >nu pf n's&tѢ":%~v-ԍiٚ6!Y w-zt,rJfQさK'mZuHt2 x!> jpiw6 }bvdY9VّPv@PjfMz Tj[_@ )`_ޝugjnyJnPymnt^2 0ZϲsU{3mZ~"i@)duv.d~;i_"sJX:H/g|P,V%vN/'e}Zy[V}5~.[Ah Xe/Uxy(e w!lENήL@esťY/܎rbupv6 [pMXH #?s܇E0z\2І]P u\|3B[c\0*0C7 ʾ7L7fhjnωp8tvUs, +6vGk 5 8Vl:8sɴ_PD @P}O m;;#<ÃWE:i2ؠR@ [pD2c-8"'`]q&x\F81 sPSMAc//j*4Va;n:]*;:@;*4?* E-DCE:E4gEE2,@@rreE22;E˄*?,,,@4*@ʞ| HPV^ڥc(ZʥiWc yXǬY)>BM5l}#Yiǎ}cTA*4@(PF~ȴZ a0$ؐ2A_ Hd4l7YAi!Y5M+d'ͽ.02?BQ{t%uԆ[E8T@k !fy֒AcAY`LJ~۱=Ȃƒ1KMz*B"e9wRK]lǏF4|kM#mU@(g|-cspA'EhbUv(Jfle i!`[rq4(6:f >fIy_׉ >PX(D8݄hYqUT=%uE3`$Ȁ :DiH,\cr>` e :*xvi`ž d#K>$A D̠ l + B%z*FP`SB'n(/A A2P X#!Óa!,`s>Z*vb0*AUZjDl80RLZppЛQ:Np{mWjZe/,JVup&7(ApOYWa^z+LȪd" 4W,笳S(5cl+ctM)T_! ,G &+3<'#+1;##""**++664499= =@ S ] DCLJVZR\Y f m u } ckdflwvy g b k j t s ~ }KKQQXXA!AT"T\#\e$ei"in(nt$t|%|z*z! !!!"!#!%"*##,+- - 0!#$,%&- . 0!2#5&6&7(9*&'(''((3#4$9*<,7&>-8'@0@0++-1,&,00$+%($,"23! 689 H*\ȰÇ#J(ŋ)jȱǏ CIɓ(Cb\ '˗0cʜI͛YfɳH=t| JhI*]jP"PJ-ԫ=bʵȪ-Muٳh Q ˴p=qA+ZԠ;l-Ň>hICfL4F;y`†;.X 2`Р-PH rx`n ~3\xKt, B+8FZ 2y@ O̤a ٟ ^ -3b=wFgIcfI(@ Xǐ /8J V!wr5 h]f@ X]h@$>-FA@vx}.i0|j @E Q>ӀFFlh5pe!Pi4eIA.H@ 2e\j%.I{) 6ACaA3i@C{Cqi3 2~Vy/8csMZ@i DD 5(ì B]D1) <5@FEFes tf*Z2 lB ijNP DK@P XVD\ZbI~F pJ)^ۯAZ;CAvH.j6K.Fybf" 5B/@Q`jJf'PǢM,VLvh MXQ-"  5~So+5+ 4AG|EO -4ӳR9P]rx)`y.  P3 A *Gp`jyG7]D+Ժ&jnz!G}ҍFnins7/߳L yOP%KPѯփM)D~_'d'Zz`Y` $A6F W^7PFEB7\QH'CPCHEІ.t"Ӻ$z"XXEQ]`W3.Q -rQ_#IG&BOhL#8:ΰY7H̑2#]JZҍ!$vc&EK*"hDjPi)gQj\$sGrkSFp / ]̌3'MWVs,9IeVse8IN*`$1Moѐ( 3+O|\g6?ic*D(DUO}g3 Qrd-qcahCQP Iyѕ.S)_C5 >$7"IPRPR/[*Tajs^<2d!dSNxϢS>UPZͮZ]c*:ѤBDQSH.xK5/x rS/ BƴUz$k% zʱRҗ fPBZP"puQqRԤW5a ֘<+'YD^ʶlaeq;0"m0 X&H-DPƈ*E7B60eթ aD%:ɀ*†5_z"=xH>$ { p8x=_'lƯ—})G P6F8ayS<мeq;[(@x4p2GE t'& B7I|óL0!;EZM 0: l"ox 3+:~;ݽD3ѐƊ#MJdҖδG2 IlӠ$R$>W-Tաv5giY sm-A=yMLSȎ05@9. IL7_%h{(^Р\'-iKo'^*24}obk̀J"_ldqD0"Bu &0es{|4wOkL&O$C.9\`.󚏅6VpG>Q:-FO: ۓJom8Ep 8ݪD&+~&Viw{e!pޱ˘~ooŇO|xCVn'ESʏ/[W }Л9Ig=76`۞U< /t^w|~ X8=vOJu6  `|K)|@LwxWj~gxvxy(wyg7`|WaBC`xLPa1g _ v]Qcu3Ux(vw}GE-:m'gG;E胙bQNsH؄rRXFVPZ؅^AtbX҆tfYj؆/nrrQHtXw@:|86h(ׇ&V؁o$(c!eG;Chgv炗?@i灃8t7=1vzs@:4؈x{'|W~sPAXwdhw}@}@8;8Gc~}uz:0/Y'{[l=}: V7XZhK_HE?rDK_'My^4)DtKES z#y T)D IAF℈AXXa(9ɓ7LljHyya5uyN P|uW(u8x_Ɋ]eTwz[ɖ ƥڭrq;ڮq:vm ;[{۱ ";$[&{(r,۲.02;4[+8:<۳>@>kD[F{.+JL۴NPT[V{RZ\۵^WbK_[f{h];l۶+~~pj xKu|k}k,oඈ mP^`k~pz{z{~Kz+NT@m,`nNฐ{˳{`zй?˹{`p+@+p`[˼߫;`.Npk(K9;@+8]kvp,z ~˽ vz`{v@k{۶UP/++˷=z~nḿ]ޱx α.t^lp qwu>n ]n\薮"L?9}ã .nlnC}&$cP,Pփ`<`eޱ,۾o?/ NN]PT}nrЯoY! +=Un. -K` }c*/Du@އ ԶmDԜ_y=ʓQ: CTEJ1FH~d萝CYԣQ"={@Τ I7N)狓(bDq'N F)/mn4*678fh8S޼)R'v`;#r+Sю5sI0 Hfk!NEC~,lg;*"qb,>:TO:xE$PDܸ+oFl6yn? Tgz:}OL_i̹*Iyu,8]: #jr # +@&  I"h&C&T/C,2CpDK5;7<Ρ^qFk|Q5 YѡAl|;D⋪|+I"2A)쩍#p"-D4lH2-J=+sOj.B1sO>06%( @%*>DtQH24 j#1tSN9u3꘭N|"SS%u7U JV\ C.(CTuXbK$ AvՙlUhu{b6Ę 1[p{v\r7 V\xk w^z%^|w_~_x` 6Vxva#xb+b3xc;=ydK6dSVye[vecyfkfsyg{gzh6hVzivizjDjzkk{l6lV{mvm{nn{oo|p 7!,T 0!7 ߘ0(!,G #+1<""++66= =DCLLZQ\Yo ~ ckdeltvy g b k j t t } |A!AV#V\$\g&gn(n{*{   ! !!"!""###$%&&'(''((8'+-1,%,00$+#)$("! 2:<9$Þ#=CC/Ǧ՜˖<8"C<ؔۅוژAC$<<-z bpȐ d!B?ߎ!@h4"p!Ĉ- Q2NR 8I(@~C@F7b 1D!-)m#Ӄ6 h0GDɔ]r1EhC!6AH!N:(<ūWd[:J@)9Z"!HToӧQ-K =Z`A-72IFB?+ q:4+ER01<ҦöK|L7= n|MAdlrm,q2og]l߱n^8+HWngw砇.褗n騧ꬷ.{JγT[mnMػv/7'7G/Wogw* ;=BK~!F/[{,]G@aNl+k5<)o׿pAk/ .~{)nob O-D<-W38̡w@ Ƚ("p$KV(B  t"A'PA`A-(bNPF3O%0AkuMc.Bg/@"M/"Fq23I#r1M$ *!1#[,gIZ̥.I]BT"} /Qd$&ШF6*q3IjZ̦6nzc9뉙8%'ŧM3%&)UƳ >K}._f@,_  jP~]^t&CwHQt':%Q%r3 I ґzq$gQr:.*@Ӛ8ͩNwӞ@ PJԢHMRԦ:PTJժZXͪVծz`+uUZzֶ~p=+YP: n lMj,daK8 Z,\ޕ],T{*Du [lQ'W4uhy ֺ6NmUI+ֲ6 zX NP\0Vr!V`rK,8Pn* 9O+,A y][\^ zM@]bק읂)V Oh-pZQi[մYkn*Tq-0x Z ^֦ikִX2^a$< H@@# 0hu*"%0fj:U,Mk!K%` p f4rlո,s\Դ6sU6=q|QsMh>! EB{=Ef9 |i]K'm;7:N^m׹ Uybf{nJ %op;+%W7l\) wG)y\ٻN 6WN`<)0>9v6oZBŻLڜzֽ{n7U,5)LO7S(ROjZoghSWPXg87`Uhg}GƀxThh>}Z@"8$Nd $D`J'x *X25/81(35(]7597>CN!EMi!(KM@8.U1.4$\MMhTN!aM@iMmMoMqMsHM!, &+2;DKR\Xd g a k q!~8'n $d(h {£<ӬN-UC-8'@0@0+-1,&,00$+%($("24! 78:􇇇umy}}yŮʠӢvuun5'Ai}0AL{1ď=6,4e 5J$˖@:j HMfX&zigЗH(LJUeNaׯQaeh[Wƅ9ݻ`˷_n{)cZKV/˘3k68fO?MҨSu_˞-4۸ZUA8@  7s㯟KW[É%pAPÇ6Lȡh|<q(swpࠃ2WdH~m 4hGh"  : @Y'n!~X @"(䐙7@L"u#u@djMZzVfYR6oiIVbe)!iFmlgo&^QH9 [ LE{戨TYԢmeE蟁N }) QTztZIw *\.Qij#% i+zҭ( 찶,D&,.kVkmG^ܮO+n6k m&+*o 駚ܫ+Vk%Pg2p>d)%4 %Np1iaDj+iЩ)(_s 쵏Gz9ш#^e _`Op/?_u{G_䨿4p.췯LqP7~,SZr  NeDHZAio%l[ 5Sq$PZ%XR䡰1P5 (Cv q1 MgQ)(ˡ EP34ŷHF}]1D*x*pH:Yṿ1=# IHKL$#IH)򑆘#!YmhEC% YK hFCdֵֶmJy2nsvBt"8Җx~IL`d$2Fe2\t&4@iR󚣳&6 0mr&8.q2': 1KcPx/"- E)OJ1 *Rm蔈2.KSB=5&o-LUz 1ߣ_PVTh&}]e];4`wa]NbqJys5l[@B_ rl leW.6hYev>EN?h K=aKUɀP\LNltoonNa%ʻju{wy,'ÎҬ1iR SbARr`hh8D~}/=[`U [d,kN] 8(g<lgL8αw@L"HNld+8PL*[Xβ.{UfL2hN׬f0pL+xγ>uMBsψNFА'eG[ҘδMN{Ӓ1@0a3NV}jT՗f`'#H \#a.Րbg! ffZ7t ^0Z[7BMc'O?Ph(( u~`;.dmf/d dmn;oPCl̆1a5fpA ̞ö{m xi\p7 VB]  ~,, ޸=f}9b04ý͆{ YPp-tAa9'1d ]Ȃcg4NC >90)F9^g-k<|:wdyO>,i¶-ȋaHِ4pq}lpA6&ua}V2>gq䃖mOgy1ՠ/l{a@8gbPveG8 Ey . ]pZ{ώ=ǻg.\^szcWGd b0Lz:'tyY~(eXrOgx7s0zB_pŦ}sju֗0q!'eL O0>pOdBkOvGdG >FV@rOpLPk?Gw;R(T(eeIMeS얅PhC@{cȄCelnod;hrPVIpIe;؃?N6ExGcfl{Ŷm>y6c&u~w46~;&sd7cVp7cs5Flm=Fl$[hs`gy c h>VȘ[ c[sGt\tȨAu5]l7y7}wdw{>J&'OmD$IK(dUpnOFr )enVGr?dP J fɏeɏvN>,ɏXHH؈Xlfowsp@lWll`4Gly7(qc8k87-8.GcP)j6cJwfIli6cp9t){l m'ϦՈ`sd` X ?&w48cmfDQFrKdL_Hr&Bp{ -dPdKvdaedv,vI{RVȚgr,钧 wT9VЙP2(c^7t32wo2Vlu_ɖ2vW8&\Wqg}Mi^rɖ|n9ct9'ZvOg~Alɗd xfgPd,dHc>w|Xd e*iUOP)id'J%:e.rP0SDm8[&H7z,Inٙ9e%Z)zV )AWl\۹wȥ9^wcYcc왂1H}Hy`ئs`9&j \x(hx5js Z`*\@ة BFvcʊ]9fd#d*z -j$Z8j?PvKJe.KVڇRnWƅKXVФzPze%j*m)[:>GJ;IsgFg:qj4_z֩Fn::js0*cW yi]𠋪ڸdi dFȮꈱcښp7jPvWRHQڜ솜ҚeLд4۳Zejڒ9ku1蓬xuDWy-(v`˦76:Rq Ǯmyx[(t ۸y(slfJhrp ddGhJ*qkgٚɒiG0*,ګ0GjQFVGۢei]L ڜWC𑮻:FZ3f躓6yfʥ^f tkcv[_iulDsor˦! e*x۸ e ؔN'xȹX:"'yMٔKlz٫?O kI<?Ake9m얤X?8QV8UvM@z(1|Vr꓏Ȳm̾+u^u=־Z~7ckoc sjw ۰ \%H9:7Ɂychl>6}3A6e,i49[e:C;XV\}hX˪U̷<6]|_ wL$g֊6i+ha:cziۖlܨk,xh ɞK'oh7w*ke ]_MSU6m_/ rT-ɥ }&uK q<7H|?0̺>HşW{ ׏N" iePpOc@)|(w&ӃXJcfQ@0+n. 4D ' P/BJ=0ẽP Q d]h ߝl kp ot !#,G  %2 ) 6)"+$"++73;22<;$%.057& ! #5 9 3&(!544: $3! =?= =888%E*X& H+ W >A-!c0"i4#x H WH BJBCJKV R[URYZ i y h ckdckmv tuy Z g b k k t s } |GGUUggss EI!MQ"V[#[a$ci&ls$uzCG FW YG!W#f grqg&r u*KKUUA!AX"Xh%hz&zppp8%=')|B)G+L-O-P.R0V1\3       ! "!#!%!'* "#,(' , 0!  ##,!$%+ * + 1"5&6&7(8)#%&(&'((, 3#4$9*;,7&>-8'urwr@0)+,-)#0112$&'+,0-263 6 78 +-1,0($23 79󇇇 H*\ȰÇ#JHŋ)jȱǏ ݥIɓ(S\ɲ˗0cʜ)Mb4s|)rϟ@ Jѣ1ofD;wMJJիX[*Jw꼊Kٳh#nÞnʝKݎkqޥ w߿ JW*a7'HBT(%֊ʯĐ2iǓC^]+^lhp͝?du4'T@Bȇ>`I^>8m Vo`;CΞA'iϾL t +VH5І\@v&7 H2@/~ % =PT@} IC2 #–{Q70hJ h8@7Q }%& D /?@K#l>%bB @(vF&8g7"%L!i9KscY0*"$X2(/tAOFI@S'/"(OJ)ř'6,B'z)Ԝ0@ł*A8tiY@Qʔ=)V(RRl*P5iC؀`J-qBxCE%κ.5"k [P?v@:৽: Q@N`P= {#L&m,Y~IPkACåigH:9QLglӫyo.$>@I"|sA93 7p@ڙ/RIMLݬŻ%|[sV?T$`Xrʿ&HdNÓ^@bT` ? ACK,n‰wK4\8>+cICmb=6@ $˓JL:bܺGĤ&q{JDew 4? I .HHP-k9G:yyF( Z,Ƞ @&`D(x (W$)d 9)iwh‰t蛛D\"qZqJQTS L!8w'ȴjI㶕,4g")(U%T JC:dv(嬖n2!Ege,Ӗ(M;Ӆh+At@"s<8\ԇt.JL r'}^,t}H!riwC謑[Y!46J+_tMy q_A!iHвiH`/DG&p2{.!͞o)ApMF($|U=[Rn)Ц| +G3~Y$G)UY_Mȿɪ/E $\Zg#b,%d~EA7bwpO[|yB[TX: t=x@bqR7]̼!3X/)#.\}*n޹+}c?7uN]=ZEk^Q|I&E{7m Y]xm!O|P>'^i(@._8K &C6}kp*1UUs7%nOO_X"U#wxUHx ؀ x>8x#Gx@`с u"X&h.PD$|'hM$0b<>P7K?Ƒ&d GRIIuH x8j`іt18 -pV ]S>Y rI023(NQR{ɓ` P  /"WTuc՜;PhTIl] +$b AI,20#DYiT6"ّ}I''qT% 'S] Ô Qv*wc7F(0`7=,#:%8hM_c5!uޔtYpP©4xP r 1%%x(9LڤNz`M9Z_i @<"L$)` bO8(38$8TO 8` S1<``@̳R$}7[i׵70$ј0U*`YX #<:J#c?"#Y&]E:v{ѝcyZQp R|V9r22_80sUn| !1~bAj~;yغ#1zUh1j U`:fA+ZD @T &["C {.X|4a~3[:+` ;;^1:ʣINK=KSXFBHku@u`=dk[[h+glk۶Qp{F QAaTohdrDasnB+4"@t0 @" +E&jk~a{fpTYfgv/{HA ฮ +{Q\+gyWG>Qj]gBt 0+K HBqjKo+p 'TPD[曾!۾YǾ[4Eۿ^ĿE\1D \ "\ L&*v.ý4L&@K7\<<3U!ߐ@r&`SttP\r ;J̼Y#{Mѽq X@'of+ѽ"kUQhl'&rDΫq5kSon5Bs&%+LKTȐ1~ǡ$ ʟ\[gklʷM3vAʬ,ABLǛ ˀk˼|<ǜl\6\,\L|4 <@|Q |9ÑK-@6C HL MI[_V(D <k& wl0 +=4 6}:}<@}B=\F HLR>7;V-W&Z\`b=\5%ofmF,7k\rj=u,mt@^Q̹0ѹmמk؈˺l_fHu- ] -Alsglِ]@]|=أض<ۮڲ:aK׺ي b-MBt1`aܸ}׽ǍN41^`Bܬ dTʕ܆]/գ1݀$^&~(*,.02>4^0~ 8:<>@B>D^F~HJLNPKnT^V~XZ\\.`b>d^f~hglnpr>'v~xz|BN>^o芾xn>n~阞难P^P~>ꤞ>9  9  C> 60@\>p8> @ ` WN0V^оϞ '~*)"^ێ n汀 氐^&@<> ;8!? *?1o.A5n^L?@K. @`^GoOOWO~Og, ߎ p 8 P9o Ev@O@DFBOO`쨿Wp$(Ppk\?r/~ /{ o@P:N!O8n0 ^#:> 9s…kW`rʑ#Wr"Xn$n: [Pq$}4raK-}\9zrq0ѥ\2f̡瀚38NdAGNZUYlg.ƃ_ ׳XsҧWjIN9 n]ta;6 ,‰ &XVc>arXLKq0X81Ҋ]{ΟK uќ0BLX3gϘm>O5>6=j`c-W1dɄuWyկz-L,?6sq>S} co<M#̰{h:hB G:gB Þ,i(bzɪh*kvR–ЙI*jǠ H$T**v>1F(?ǡ,\ &Fl L-47l8%لESNL8=-N N4A fQYUN<ӛJ17`D;&T; } ==݄S9sUXc >; 5L\%=%4`e3,`ͼ IBt(Ŏ̶uȊ(/j-ZRƄ Fh.b)i B3eʭW 'x`J+Ʋ6'+ z4zJ]VbhJ$lf!,ĴcB;`d -<+05UbV B-:=m TQCl5]nQ1I>]kÞEP?1mb,?aCODE0;/= !PsH[Tܱ/u.ܵ"q( 6t)(uDis .*ސN <&H'OfC<\~`fR̶&gⳖ,Tj'xŖWiSP;'Nf HnAY|ZK8  IB$,fXĢ3k*\Ny݅s˗P* X lx%)Ҕ~\C|$.+ iTz.Id)~V)guQ6CO`)6ϳFN䉋Qǝ*6ˢ_@geJ W<&P \ΰCքegY6OR0VN1/~!\NꫵP ^֎" _޳Y\leE Z&8pb/Ɖ` 'Ǒbga.#`<&%K`%!#!9&jm&{xضTcLY[\z/ P8}I-{n FC)J1W$,iU:M+^J<īW1QdFvxfV+p3c4ͪo↍p匧9*jG3Pʚ|>ќI5p mb\ ohT㥣,AFzvIյ6I.8N%_9]kFtsVI!sr;s'Qp,17w;mFˑ z{=^r}p66f(pD Nfft]Lt܍\tIȗ ը&*3y4G*\M~t'~LjI3ҝt,~uńꢷ>xmc]c?ȋF]IvǽoNv=w w/V'| ^g|?sD^|-yg^|=yЇ^'}Mzԧ^g}]z^}m{^}}{_'~|'_g~|G_ӧ~}g_~}_'~_g~6xl7 N=,@<@D?(**l<' ճ $ɳXA(k L@AA[@*pA{=Aļ') @;B+B(@B*+#LB# |A{CC2,C3= B,|KCXCK"<&L=Bx*)9:<8Կ Խ;DTB+A$HTA*0B;CCEB6GQGz =j\B`d=>lHCp@%<<[EE,B\4K\|C#C'A)DH|GJ4@&4H<)3He4Ȓ< CBJdi,Eː'p<jO >G $HBLReMDf]Bk==@< EkֳO(H[ [[[[[[[ ܻ-\\5ܹ=\5\ȍ\Ʌ\e\ĽU\(\\]e\ \%]=M`]u]mם]M]]حߵ%^5^ME^]uU^m^^%_qM_]_m_}___*`$HU___ `_>`>`^`V_~`5``&v_ ``&^aa.a>aNa^ana~aaaaaaVaa bvy3f4&"=!<4⸝c1c;<;c>>>.cDdOdJ6dP=LdU>TneWa=~W[T<^Feea^\.ffdfKQ>stPpޮuN&~*\^Huv%ɣ(hT=< ^GYt_wbgvcdtOiʋ]v?Coqr49гFKʹT;(ܒЄT@ Y1;5 Ck޻3=L2ŕYLA&o/,-(H-u#$1D r1n/0h0M-PW4tħqsDDq3yN6%`@Ht k 8:XG; tcR9}M /$}6BFr QD DɸڎC=8߽;mb$Z> [~4 5ivl&9yMmttHAP{9Asӟ'=P:,m;@!5ESR#@U*g+)NsSt>)Pь lRZ tL}l,,gP*RPԭr5X NpTVodDZҵk6jhu\ ֹ"H ZaVnX a6̺j|` ,gbjhH5ʆrg5Vmu 1k6涰`,c+y9VKp]iWoʍks`VvS ̰\o7!+ VX=/z[k l8[+ۘj6N{3!pl>5%@ʍjV #7Y3.C+N7v[/S+ {Cր@hlcl=ku@W< Skwb SV~nPUU1 Ra1s/Xls{Z"{CNM2xa^f-A u*E3-sd dӽFqi$CA#DVB@ⵎ!Fuc-kw}hzcvS, e99y58`gd𗵌mcuZ V_Ϻ gYt{V+#L p70;>sXas3 I=i޲ \f|UXo#n+C*noa.Kl;7#~iO!89ZN3N:ԣ.SV:ֳs^:.f?;ӮCU<.@ywݟ1"b}?Ic @M's <`7rls נm)kX=c/Ӿ=sKt^.φx"Pu#?5xǠs>/%x5*3X7X`K1%i6hCU- 6> FģsQDpjl~iiC5,UC A `<6@A6 `6R) }`^5$̖/yEay-i@7Ԙ~!!IT \ LU5Rvh6xaZa9i_@u;a~n,Wva6r`4ZyC7X-(!))"*I~XvA5𚓥YXZ6XZE"hX%ZiCt Ac9Q_,A$zC ~6'AHYIyb5t6/U">>#?*.mIz6LYla\6Ȗ!!Xՠ "8BDS#z X4A$IB=̖ v#[}c8cZq9zHR\`?P%Q?UɛyZDT7HV Znv%trd3]T\Z%=nl7@EWaCLZAWBc3"^ Z\dQ&b&b_p΋s]keUeCVg(8vgeXE"i;Y5SָR\e]ޥZ0Ʀ/1  f>ekޒlb'r&rʞcխ!DK@XIUX1f Yu MhޒZu=g(Fm-·t\)Zv6tfCzb RMSG;֞։'\(8e~$RMXpR)#UL(6es.ׅMiAX[јCj,"o-)!U(ed[7,u@Y]zmRez- ƓXn>.*!Pmv 3n:6iR#6*vߣ-*W )A7hêʪ*^^1Ub^j6>FDN^+ްf+v~kO++n+++b֫+*++k꫿,,&lM6>MN,>,V,fl^vǎ+~Ȏ촆,ɞ,ʾɦ,˶lƬ"'άެP,,Ϟ,ђ.%->-ΞF-Vfn~m~Zm؎>mٞmڮl۾lέݶlvĝD*LB (@@4.<.^(nnryd&DO<%~$A݂*H0~Ԃ p*YLZB$ D<~Q,B-.B<9/Yo>an/Elm]C΍ViUeeAVm5g/p@ȯA6p٘UVUE5<蕋=@$4OD B".Ȯ,+.Bk0$-) ,*W(P0/p"R [,"B. B .B! ۂ,5q pp?1vqBpIZs-_Za`A ܾeg@.vs5$ Dd A.|oS!B $/B"dp#G.q B.n , K.R!n.$B"t0* .,~t2))$—nR/}r((0S0,,ײ'1GqY%X1A U3s]Bt3Z".ƙSv#.4@]*S9B.@3B', BR'r @"/4./ -A4%+(.BW-7rB!*_nǴ*p4,LgLKOK-G ؍ŗP3R9GX1[B _Vi5@ /A4/P?3Rr SnrX[/B\(B /2L_2A t47HCtFrH/trr.K. L6f@b'bj`4i^c:1v؛ټ9ĚisRU'e"AAXKB@$0") t`S4@.zMô_-1,L.EBH5du3-/-7hLowi׷Rwڠk?D@Tm޲љmuW DqP4釧 —􇇸,c@7w{/,b#4x c{6}Ϸ1xŒ}y!-<xBq@s6vXٛM@x.)4@mX %i1E 2?X0N_4xI?4hWv˒-BZ]AByRz/z5/8:8E󸐇zEqtU/Ī.Tg9u18{DALY™a,tr"s7 <;/1(/*$4 $2+ ¢߲) "htx$B!;'.܂7Kt!t ,;B{‡TPSiڙUR;Bt?ۥY[nᑍmOcՆJBĦLR鰍װd~܂s׼0s*.d:4|2//t{J&R|.BR"ˀS swJK74/3I)]A ]v\vܻ۟{/tڛ9@PD ~3$61S䟽Ge6X6OeX]>鏫{9o1ž3S~E@>??'/?7??GO?YQoA2$%C4DD2(2pf\?M3?DxD44xaB 6tbD)VxcF9vdH#I~ G/L\%Ǘ1Kϗ  LMC5ziRK6zaRqK &0+ůbvE8٩Мun\sm'U< 2(-ɔ)!@.9۸Cʖc6ȅ2.K`ee;1 2.ν{e*.1d_& \ClLdb0‡5}.ط {巧_}|>?/?@l#0(Br%KDc QD㈣+Qz1PedhhdCĔ 1삀j,hgZh"`rrĂ1J9kh= ;\S6 |sN9tN<N:@DD]F}H%J-I8v/rD -8+1 8UH.0˫W5*eEuNXg}WOHzԓC.gЀ 8;.l"H `4A zs|HXB)я. z@Q|g+״C A bx\(k)'mYT[^ /@z.Ml1DF0RF7RA9ew#Gю# BQ"HG~dd !YIIFҐD%Äp|6E 7ȧx% KYK]@PrC~)T(KǵMJFohVgkTF9One$)J s$'7yIv.R|g#IIwslg>OS@9O UDz4&I8ɊX"empTÆ 50:B>lhZc3Xҳ٭D^DArRpᒉSAPN/W3^ ЉFcQJGs+W6*"d2/S(xX3UylD$71#SJTUb++܁WCS\ 4f6"mUB`YK5.R eli[[eV"[p[ܑL0Ur\>^j[]^v]~x[^Uz^|[_~_ \` |`?qÄ)솃|`8*< lP:3 f%B |CapA\c#91@i v`x"+XQ _a+7eƖ8Aؐlxf6A1m!RV   -Ю$( r B1  Ր ڭ(V !rAӰ! Ƒ1Ӑ=b k    ռA >!xz  h!N!"Br` xAon!m@o@&l m/Lо..M"2 vz~h(` ˱ Аr"12# r!/r3"rA\//]!!S#R V ִfİ άBo '2"DsI##Cr$Ku RRX!V41ll' "R2"h9 **K*-)A;1" 2Vx 53M5 O?a 3, p(`@r"uRWs b\SEcE@rfOK2 Yn!r@,VGuIc.$`(a@ѢHt"X/.X4:#َҨ R "SSr5KyL&s!&!ӌL6!/S7N!`P *Lμp ٠-lPN!6_mP8o)v4cd#d y<`E !TM x!~T9hs2-%Wl giݵ -/*[#8O L ZeזJ6Әc+-d*A 2vc!,cw$xp"$` `TrP- ,",@ ~Lu oAmt!Xw] tqTnOgg3 V@X",b ~`ƘǸmxu@!@ ׭r: {AA9̸,s" @Os=Z δQ. mlos[w{۷۸[۹[ۺۣ#BƬ`,Qsr'[ 1 JMs*w>l`(߼!G PӺV!;#\'+/|i|.9 uZ ; s9`K{ @rY!!pA-i|r'&yÅ #ɛɟʣ\ʧʫʯ˳\˷˻˿ܰ9[A7Yr-lag ܳYm/G ]]7'+/3]7;?C]G=5!?|2\\}sZ![[t"Z‚ qIٟڣ]ڧګ+}\۷ۻۿ]ǝ]םٝɻOC,⛙aWb`- j>xe͞> 9ts,N ɾ!䛛 xbdn`l齞̠9@쩚 _;!x)>?޸^GKOS_W[_c_gkos_w{)$Dx!`_)b $!5b?#ߺ? xJ"n.K3- $%$ 4=3' !Xo zGzG=PvBtLW/f  `IJUЂk ԃ7Pu^yCj"$!/FdIBAeމ2Hr+UŠXr!*NJ{/[U$٠Id$Ў HRRɊ@)M VPC E*y'&H@-zXAb'5 AFr@ ɊVG`!!0*Jԩ@nRTIGB*:~}nfUѩ@j@(pA9G矒 :tr+G Jޏ:-{l⨊;gup /GԀ 7쬤5^qƢ)9Y h.h@0D*PpLf4/e~1%I YMH8X;sA5Ld.)@lXEǑ Jl &FCAGLbY,0-47#|bkԤ* G--*-@jE>@E -DFud+Rn߮D-,D;I[Xo^iɫXQؒUi;zd=U65:/>|M/d|ċ A,FY# 2 h8{MwQP⠒, bW2h` 8d/!-db!n8pB/e P+?{"y9`,|ZbAT+@??5):,BhU$SLzG"^$@M0D &4FӔ 2`meL T TQCbŵ"!DbTodp\ z.JF"Egӂ 0C]Ċkg`*,i<˽! UR'*ȃjAaiDŪ?AOA 29u-{藑&i =T ɶIFDO\d9)$j7 M]i قl ŏ P@22<O@f @='¸So ! 9Vv=rHO~-HHy#t.m ]3$=.dxJf BjZ )daˋh1L FƫW{j`7! *Yf+&+X݂X8;uXx6MiFv?S *l[Dy#"#L==\AhՂXqj  MjPGʘ[O"29:\X z"0E$ƕQ^!=G Ѕ.& D'چ#y7(lC؟ aKdfy[ISבQv}a(HynTjx-Hnyt@"!FbΜYhFde6/nQ6f!0dd!7Cf!k@)bZ%@p `5g PO0+CQȒ"tl.zI*^2|^Ӹ-;;"K=WV?aq!݀u陂ڝEOp |tQ]NM:HĚymrcNI {,&&NGJ*C.҂+K@V29;A\OTJ}$dgYrQ=Ib3aWL‚$f=䤷0">aГ=A'd`Htv'lE ^FOyqy'?|1G`Xs 3GR $p2fCg}iv}\c(h3`J&5u bno2TP]pNu _h8crH}a1)l( b!/>52g:zg@OB@+0V(N!E#RESg'](>w@'FW!J"8tBS}2PU/q%D4(uZ5d8wb dC1n5~w`S(CǍcUG:$8.èIqp &ib iz Q1 6Pqa9 PmE0(0 O0c[Ycsau 0,@<q&R:0vqq@, Ӕt5ᒰ&og Ey?Ni) qI8tNc>uy !Y@ y)#)s[9p70pJF>p2BG@2E9#)@&隯X)ՙA|S9  31@yIřnFP(i˙F)< QCɜ)!,;      #+ " # , * 3:3 2 ; : &+"*##++;3<32:;# #++12=: >: M C B I K W S T Z[ GL AKCCJKS [ Q[UTYZcj bb jl pps z c k cjddlls { sv{ B!J U ^#b#l!s }!|$d %h &p '{ (v!){ C@HXB K!S"_![$f!e%l&l(p&r)x'{+                !( !!") *!+!,"!"" "#-".#0#0#1$2%   ## !$%"%%(&'((+---0012463 3 5 6 8 %H*\ȰÇ:Hqŋ3jȱǏ Cv(ɓ)\˗2͛8sɳϟ@ Jѣ;Y*]*ʙ'l RTG2U)a(jȥHӪ]˶۷pʝݻ^S|=!om:@4,(޺ atCMӨK_^ͺYR5ZD!PT8zsyb.Cpnuto}Hq ս]7h{ËO^u®1?~p9}<!q:5C e=:茳N"=N7u ("o\މ% m(  9Rs8;BHX`7`:40d$J2IPc8hXf*TDC9Щ Їc`C N|x@8ĦA~xc:9P"B0(9248}9}2Xq:Fp:))Ax8嫰!zH"j+k 쯽 [2,BR+mN-˭{!Knz-~P2sfCɈ1)2rH 䇙ch" (@!yCH&d@4fBK@8B0̫l<4L4J-uTm2c\w`-dmhlpDP88f8l!z#!,D:}a&:; 7!X<"B=:PqSNލZH e/l-2ue91nd$', ʌSU~޹@yP9H!sBOCѐ:1: @ $!@ R/A f#8Bt` Ohbp.T!cp9C۾8$`^ R>"b$-}ǐq\uCBx:Q  |3UFK=D:ṿG<" )HF҆ HJZ̤&7Nz (GIJNCv#Ȧ@O⪨5c~gE`Q}[\GI`MSH1L0LF( 8)d̦6nz g%O83L:vIȝ1~CRD@ eSG:4$V90إKh4P'J }@8n&ȤLUP+#>wӞ@ POs\uQ \ǒ~Ӥ(~8$0ETyF@|c>*..$k8ʰ:lU\b$C!RMbT1U+H7*uNW4b~sdbЯsi A 98u!)53㘭„9?H pKZ ~ lp.3v 2@^׸ xKMz|Kͯ~LN;'L [E56L % nY5%>qR#![lbب70klX FÆ; Pd%+-7 Di2 "^H'ZFJclljsNkK]@惴@,,U'qay Em"nB xAh4 a376 ܂rʥUd9PPMlx0O=giwn['H6=g}ܸňmh<'V6z$i.rldAM^D!npZA@^g\ M\nn<'4[T G??iɈc\&_z~Tr6>hPc:4qj a]qm\+T]y%25Ȱ=ԘAe^&H ҂oXܟ4 \  yg]!@0yO] u5 }Nh3+c]\=ok2 /غw} ]>|uv?.g=k_:5- :&[4҇z԰|| ~gxـxAz=uv6o @Ht~'TgTV7&~Ntp ۰ ܧd+ а_}mwqp( (yv|9z( vtX/z88}j&)] &V&NahshjFiYYH}SMCIܠΧhFq(g+1镾ꢞꈾu)q봞!VN1-o"anJ/^x1.7>,Q~>!}(bZ? ^~^%Q&* /?4_`"<1Ou??D ]`LApO?x) V& l'Y\O ~d ~UQq ^  q| nb]Rlي.JQ!|&"ܥ>w`.f..曟qH/( sJb~ae` H 0 F0[` X@ H P/oد//0˘"Aa"R60A @(Q2f̒}*"0c%4b1̆48*a"Ř-1L/fرOA%QI)5J4RQNZUYJWaŎ%[Yiծe[q5Dy3ڕEo-U)/aIfm,pazGQlwYA:9o#l`Je7aI錕vo'^eɕ/gsѥO^u QJb\8R@e1vҨCU't=g<,{so"% B!PF(\P#< +@ ֘ ,ˈrb4O)ܴFsqG{ԑ"RF4H#D2I.L#$R&r+rK)K.J03'ь4):LH>fa#M*<Ӱ \@Y",(ҁ^Ȉ jQ H@Ɍ%I&2ϊT <5oV^sK5U]}5_Vb=dL/DZQ[lZov[q\nsMuW^u^zﵶ}\| `-4QC;#T%*b>Cn;$ָ)T!TU2N8+5&F6Pf^I䣪Mxw.`7飕Ɨ饝jz૵Zjql6l("HۧFI`j 3"令p!=b j'Tf?a%0?i>>KtSW}kjevgZ`oށv~o'kiP|bd; .w4M>=3z_0[N)h~$oY4. '&_hAEh /{C;/xˠD~ /0ȩB/hM"5B1 ")2ļaF8QscxG׾ӥ{{~%]z⽮;GXp-|8EFhr kܸWZ׺ ʅ ܅R#.u庸5M\ K5dnX5m&?R-| (S¹^?+) B+<"_7H;$scns%OT%ʡqQ*- -<JpCxqc.%4aɢ汑o[n@cl; nӺ5nYui¶^5 mip` =rGX憭k]n.wa[ jA+hltcL]@H1j6PDN 2x5xQXVX# mI#\`ǝCc!5b'ScA5l|Zߞ-j:tQmj84t m%atݽ3,tJh1U1HE[Fhς@j9I#f,1804Fn&r̵8G 0) 8Fy) *Z7OFGL<LI5IRlHT3HK4D3hAmG;+Dm5gH kFIDI Au[ɋHJɎ]ItD3Tĭ_ ʡ,J L7Dl@ XK4ʌLD4ě܄䆝½˿tH,LƟuZ-kDsnZ]/*Ȇk[ڱԆ %jCT[__ A-OE[_ _V=DL`.`_ H%AFa6ACW fW $`URHA b _i߾_}= `>$J`V]- Ɣd,M6Xȅ]x`9R=^ R@\W(44MY5mيh2{F5fzc c@v1?+Y]3KOMأ=Q6VTe_„YU_X>A͆R,^LdEL 8ckڒ$EQ>OՆDn_Tc`eΥ"CR8mhUi4Cn(ay%1k.i^ERRagcehl>nTiAYI8ՁhȄhԢTSNe'4fdVf|fnEh~2#\.iv/ 0kdڃdWX9hYޭUP N 1As͏E\9آf9~d`Z?^^ DUXYfVT_n(WRM[VvJ]-8-miT) CTVЂW\?[ϒAR\PҦ2jbk.\5fgkT*hIՂ/AΆ~]Nn>_n'T"&AT0,FO*@T8gWoumCl6~oΖio^081KSGk@"E $?"3 7- 8a>A#vH,ɾ!>[.A[ohp  8muB wOSqA$AȄUm&rQ3P/!' q s1?AX -1'+ s8mNe67-s#s`̆j D@tB/iaKJ)hSAUpA [X0(83o@ p *@@i; 4Q@Ҍ[TMuAD2Mm#RpQOy)Q4OM8UT`>о> &$xCW7pZM"=C&͠9pR<+e DGHx57Ό?PyHix`/L ($4a%,CV@(JLnZa; 7!\#:k.Z]@6!= [@ 60!ѲIp9ZEOx4#|e L0P 8Kz:,z['Q4(@H6Y\J@7e8%'(c*WؤLg $٨~YeM^/T%_Coe 7fF9a}E/N5 fJP"ʼn9\q7:%btdG:n1` |QD>7X* iG 4:Py1~ӺFByʝ>i*2dbyABkbT$59Z6˚r}D Td㨴@ ZUR86hD?D_th6"ڨ] uGnbrNAP"}AX@r @ЃPIJsɶdTGnW"#RV|1Y"(g a$y+C긁tyPT)v(\+N Fpk/ya^v'?̦ڳ1R4A'U7 $ ieHpUm0 2OM1TkU ma r-,,$NrÞ .8!wQԸ!F6B[[5j PPhDFE;mHxrWe'o8nu5P%v r.\XsBE~G>).@! ecH^ ܳg㕀Ү'EUv! iɚP`A [dhNzJMW$A~r!KmV&6kĸ^P)8``9i B6\dm;"$ L86j{!1 T1ZVv(;-mlB qn˷쑁|1Ai1 :;^v{SL ֆhkڸ&! T69{*qr*ai$0Co hde$B_7x6~69N” 5`M?:X!Yivc  NH*?L3\?qZ i :@ P&!XCV\q R^%6ⵁT8= hb 5`/@{CӣK='//cU-HoZ% !/, * Q o@%ȟ,4ar sG\Elc|^ ` mnDlcDV D@q~@E Itc IP"c@lD``Ԡ`p_ !-|bUD@&]O1`!`A|NFTdCu!!ơ&a(aJpAНATbb f6"."#!$F$ơ6JP4H`&`'Z)"*HL$+bUb*"-֢-bb"/b/".0#1#"2&c163>#4.2V5!3F6n#7v#58D6z9#:F8c5:ƣ<3;#A(DB<#@@Z=!B$A&B 0+30C$?$GvG^_A(\E&M$Id@8 E**501Y$3>3??3@@4AA4B'B/4C7C?4DGDO4EWE_4FgFo4GwG4HH4II4JȎ.K?1L4Mӳ4N91O4,_r5Q5)1>Q/*-<5-t-/TςD욫=۽Mpڠ+P qSaguw/d?-u=ڷ@B =D]F}H%J-L5ݔN=PERM=TU]V]}XeZm\uݕ^}`b=d]f}hjNSΣ7"Zr9p)ԎZQH$ݢHc,*뗥L !x]7h5 > ̥vNJ-V^mWŋ=` 9ns i^C×c(eYczf cy݉4?3JiTn^6K~;Z.*$~ x@6[m*F2|`-˲ZZjyÎ`Ck7jY /%rCf&EmR`hܦX9fmjj Cp,7vm0~Y 7uU؞:'?}w~G_8 8@πo(8 '*/@ Px"] ZWQ,r,PH<*tZ(òuCa/8B* ↵@@M|;rGgk0dELQ,/G`n;H98 bxCHF4qLWq{c><Ϗ} GH b`<"$c2IHVҒ̤&3IKz'E HT&QV2\e'gIJYޒ$N4:qY@ò؄n` 3 "-hNSkkD%m6DD!ބ!Ӌ^!!0[ܩxγ|<³ (. ˁ%BP]64uA'ЈRuB+ эZr>vҎi6䝟\z~x9U8, I (p1T%(!sPBN: C Mhx0k1ap[F-lUh6AANR5h"ZW7v+^ZWy_JXv-b6E_Jtf7Y)XtC8Y7ִhEWֆֲo]_ [ -eUmNXZ`6S!L 3f Y퓜g*s.ժ.Չ0@vs6a{ ]Ho[ Enq+[B6ͭc;[u`-Xz 1#;XċYb*^&9ycA\d#Iq0~صI Q`L_@! L G-C`LmMʋΩ:#˂kL|ުy֡\dG?ґ)]iK/#$9iOԡI]jS՚ڪYjWHi]׫o_k^k]M\-x&Z0DZ"ˆݸ3oH,ql:=Suze#zn|N~iWFC*s27LO1ƵǑѮХҿۢ>!AM &E`SF[BZ$^ZȐ(0)r$ɓ(S\ɲ˗0cʜI͛8sɳO8h0`~* g iU2@תt85ZJy텹=P[}ug]w 甫x15)hdjiBM3Cj!,  !,%ü¾'dihlp,tmx|pH,Ȥrl;8جvzxLa'+#/~{&,}' ] J#>/"U%W R x&%żvۂ]/5 ==X!`VBv$ j#p` R..8 E'hŌ6v 0cʄ٦ˆ +UTpƆ}<7sٳWc J?x`ArjI Bh jݰuKmM"e R@@Ѕ P,C'h  h0ЃSPՆȩJ˸ BP J7EfkP@ 5F|XȯP \c YD<r)пnHC]5X{ĕ"1`wEؠ1AY@^t[3P~D5ez#,Eu StU<]ЎU\nACGzPbt@TShb<`$z l0Nz A1';28|O>PAhxehFJf Vh) jJzÆ"T  @Bo(ٖLg i영<Ί-LPA~F@%0U@YPLɁQ+ض% W惙Һl˓,JQE dmC@_ (źt)V*$h\!†ʁP V4D @/0eˣmES0^toL*:A^1 TE3'A,3xmS'dO&",h;W4#F*$l0@Asl_ɀgMtm&ft`%YTBq;l`%h(:' D8b+"Fl{\ X09苁AJӚ88@4 ljRsԦ:PTJժZXͪVծz` XJֲhMZֶp\J׺"!!,"B   !"+$)6' 70%#'*(#"*+337<;33:; #5''. 0%'!70 .7 70.55 :9 &&&$ :; ;111%F(U? @?@,c' I+!X-!b1"j3#r5#|8%~ H W[J BAKCCLKV R[TRYZ h opvs z si cjcckkv x H S T [ \#K $\ d!b l"l s!s!}!{%e 's C@ >F!W#g&t)l( s* G FOPEEPPXW_`C CK!KO#PX"X_&``_hhoppott`%_h$ho&pp&or%rt(tw(xx&w|&|{){6$8%(     !!*!,"0#% $-"- 0#2% #!$.!1#6'"%';+?0;*>0@.A1+-0, . 0 252 6 '77 *',2-2-2,.0()01%)$#20"!6 6888:;H*\ȰÇHŋ3c hIr$Ȓ(S\ɲ.K&8%8stp`Βt1hJ?*]@S7yHKdP5ׯ`ÊK"WE=tڷpDRMߋ<8ޤEY˘38ۜyT|IkM}fWo *`/j)璩EO{"~} Q+EZ7Z#̽_+j/9΄m?R^]gXUYœF~ ħy (Y~alYw`t]8x0(#xesHfhEj.DFD/Rc8 &8!eWaXXbĚEnMvCE7"c/JF ,PUT: Bٕ !&JyPw_~zvUci#GW!PG>Y1A扑[ X#gjEfeL.ꌸJr ? ie[ Ro P>(A5xWBK+JUm-~q{ JQX "{鳶{CFNz%ydW:T)pw+ᩱþVFM4qBy`Cpb3;XvEir/D-.A4 !/ 1pe4 ^+5D5RgOAvY PZD5wbse7[BQm8YK 63ayvY^6w67$m9\AUnYqhwt^VEaݯjes/4 A4θ%늆dnݝC\F}AaOn8nax? rNG sرAqr )ǿ +^= (W ^] O]v '=L@6"Po;ÆQD@PÁx !Bx!)8AUc_OP*}2qc' KA}p cCP=P:ASwaA6H<#6 3HRB *d@@@Z)DyE\e+{FX.8$""̅Jtb8C_"3DzP!D hEte@"h$C-A Iorc?;X! 8W>/P )Xvg6Q VO0 QxN`Uw8}g5Pm Q`u q`)3TӂX"A=v⨝B'0M[vⅶ[b) @ );h%);a a$ g:Au Q=|!)˰5^fxqE Tv^׉V lf7j1р#gRjѥdJS3I]SU!*Rwۉح _6vD zfYL\'N$*U֮`3,jXxvJ]!%m׽Fa*B~j :"tiVᶌ4+[HFUЕ~?#6]UHY:+!?jBj g(\AD"pN,$Br [r"g'LN oC 0( O1ck|^ŰlX e&X *nW1xX q823js, 94kchA`T޾nn]"6:IM![,Sh\]6 Q*e6̧FBԼ;8!+Hgx v@Lm~lŇ4B@z ]g,/CCdb^0z 0q7lUTrlas ڝ9{R% F2;!}Y.W> 7gCo"E<vXYo;{ߝ@vNcx6 8**dۢgxBkM&O Bmhxs,`l0vXF95m'$E;C|l80mvm~#td! P:;n<]뷻ϖENЇ~ @F;v^%'[ T\;>U vuc_N@T sUhJSs@$sVy7JS%jCA&q{YghW(`|R}oVuF3 409 @GNYܧF }Zb=F~w~ib/bZjA{@6Fug;(trkQ7d;DeH5MUz]MPG @DNVkA7fv(@ ~vv2u}'wSߗgxf}h@v ``] P#42hp%69% }N25rwY7v89Xkjoj[5k]Q3U0^QBs8ZvLÖ4pz`erh[Np|pccpYN@hP5A(p|h|TagEG h+ׇه(bhd w8 vqt1n[T;we/00B!4z^C*]5lrPFz̘dJT'ippc#qv O=}HGx'EP^PP= oZ=f'ug9iF9d p.;PsYhqueˆBZss)l+7sz(HJt0qCs eȖr6^ =4Exf4Mb3(? p pogjAD(bm&Q!vvmX}+ifG][ hyGLDe\J5M]WlOlCe&=, yo%{%{s !tuYivhhg~/sb >O0Nq~~ggqR;m0_t=#>QVV0B!B)qBA<) 0<[6< h @0E0Lr0TQ]Z4ZJc*\ze31a&`wqHWP sp(`Fhh`p!h !6F8X)Xh TYEq)>v>S_&R 0:9G6RU/PH%&ye0&y@03KŵLFUI3rXmGņre7TcBW[c)@rd:b-YOPuIa8ޔ c02:vvbC`oヰW?4%Vgd&hStn=:Eej=ӥb.QpNzbz7qcXrP;T L0PP[[YKN BV7)qt{ăvAaexۨxK(p(`i  .[a.4 40 ꏛ@|V=٧Ld#P47+9E/ó]FU; FTIrwL%g7cx8DVB͛[F5rڵrGJv$EIKHOrKK8J hod6u&9^!q;V,2B` ,La[ N$& IP,9$ˑ 2QEL**E̸I.F*&zyaI좸@ e 4@DswWڧ[@Lk\ ?,U@˵Y(5sT432 mU;+HPri{RkϬ;.~|dYr 1G|_kc\aHal¥a9׌;M.l;%8]'>]EP`maaCҾ7cvS3#mkHѯgXF"n׸(Mе9(Z1"qQlA5}غ?=4` Չ%Ԝӵԕ]MlRI0זahr ڰ!A"Q+A'Cq ƍܞAI:H}$׍m، MLm›ݞ-SŲ !a0M19qBqa#Q(! ֝-QΓ;]N]8Ϭ=$^&nX08!E+bC3m+m+1="|~]9"+^ ↭!SJ፾(ՌZW$،n魾1-1?*,n^ ~ m݌M؜K\ԼܼI2:r`c` .JO\-wp Fxǰ1B /m~./m䥱=^\FpPA/JVvgvK Wh  112:Ib~S!'ޑX:ԐIl|4`L} C.Đ0 ?L|O^WFձ?=msQ2b ƐJQ?4tǬ8 X @ dxAyEP,XŎ ʔI)UvocLli.!:KV5/(VIpcF]uUhOҕO1 SjSy]];`/x!C"erN y"߽Ŭ߿:`;F6KB#f| dJ(-:xs 6`u"(xP[@Uv hkB> ސdC·Sٝ͸ח93b(]9\2,d J<Ѕ7Bp"H' HMMtA' cO-"]2id]t!$ k-yR m*e*Dz~1QH.IiKh9c1 B Nd{'H07qr~CRg: !ϓ;U*V  a",Bԥ3O\\*RY$``d{3,xE+` ʊbE/B6S%YVR;Č{z۹\/gCtU+bP!IY.,3F2z&Aj9`F*k`FaGq{>U.O'8!U` bR RE[ 1V.2`hĻvC bseT~:!}a,){Սw[g h^a^k4 f!:,˲ʬV71f2#$8Mΐ9s8KGcpLRnr<8&%3rX3Y.OZgK|#6;sJ]J6#Ćy[TV:fh#F@97l{k+1-:ʵDxx|~ QĥRB9 $Odq>3;я ?'˻"i,@iy?3$)K&2C9 [@$'P3?z& D(4(4p@ (P 40ӈpʔ (A,Y+JA@$ٕlbk nYgנX)5Qs]TmKR,RheIe%־ES[ӔW Δhًـyǘ&Ӱ[hŅ)p) ݓH]X (@ a !j-aDԖҹ%ڡmV0M{=w=MÍ^@N/MhdU\t4\D8F~Se y6ԏ;YQ%)* ..ٟ}&蛟 0™%/Ȃ@*XJmZ_O ܵZN5N-ٔeL[FEUu=K }TÕZfGl_Z*X[j=vQ2#/X,z +,Wzb.hB ٟ?Ob/,ތaOeU>MX^.FT5ha<E[Z޴D6,ɰE(KPe#ݯu*В3،0"ۓe }qQ*/>fP$^T4m[iG`]Mb gUSPvLe\L$e$ΠɻD":ZeP1@Xq5h* MHX|[t/MiOQUߎ>i8=i4N"yVgȡT{7yeh1P/ 1"`B1қ-ij< =h˯p~FJN_TGOIegTL.Iv4@tqԑ6-+-.5OHg"cB&e0l[l~bgfiZ(Rj`P_}tHqQtH eLDtk|Ɠkla̎lgJm\ dڄMDI.TzƖnu\Ȑ<U*h':iB%^P1:`)V(m" ;N1EwkpOPnГ} K F4w I̙VL ^ osK 6 bJ #@.`e)ac)2rq1hŸ'-m=mr2[>Gm1ۈ2hHXA" &`%c==e`#*-rBOu.ToZlE;U*tKWqstZ埚H24tRWqKIgSUWRouWW|uYFuZu\G6Tu^uT}uaUS6b?vd4NOvfouC cg¼|e(}$)>dޫ`"vQx{=c/sէ6hLj*  B _z{)7=q;>3#j!:p<Uq0l0ʱcORh!`a]C"Ȑ")&eeND,#WleE*^f:w'РB-jh|;&ʪc&"LDcyhXgT_#eؔl` uј'ةKA SI t<( M =ԊE;Gzxb2'i0wuɪ< ;X2ůԪWn5ll?mc1{S0qWai1eQ@{+KdHe [T*U2-1)["ǣٱ=3A'EEqHq|$F;4QU[}5Yks[{5a=6RT}6i]6q=wC7y7VC =8_̀ 8pnK ;@H ,8 n4Cn8饳@+C~;0cY{+ޒ.{E, @r3Q7.{#'yXR]5FwPJ(siBV掂K]-2K?2q̝˅Қj#8&s% ү#6IIwrK3OX|n|e>܅ȓt|4!OY0Dly%e)H0=$'`)K<>aE9҉hL+32d4, eЩV)sI\ѦW*X˰F*Y%իdjhښI" kLǦ~V*=,XDfyCÉBV}ke3Nx fs 6ZĴsU\S+JעS5KI*4-nE,CZZ﷐Up7wUj9{XBxt] m.]ĺv8T[]KེDn{kV]{AԤ&Mзΰ~a༕g_ ox :t [ĕ/XIb*WS Qx]s,IȄ&b8r·q1^>8,!4ALË,֛ҖO^y[ P&H ̆m]Ҙ f0YΆvk־D:ox>@Z Wmݠ ДYu\5DÕ.W[=AzKV|^U6'.V(-%c>0ipӆ@M@KN&EmbWE޶ V~(7A'Pq *Z M˅KS 7:Sy]|r:x:7BR@EwEmzMuUA+7?~r JzEud 򐃘S-XoVgrlv<([bAۏQ%\) tKv^9vKޟADaAE]^ΐ/zw2ȱs]UC(}ҜgYӸ]BUw2Wq:|rԯ+EBw{Яg}l!(k:}" S9], QOPG=_]IOUMY1E_(=_ E"\4L`R<` Ơ  ʆ   !.!?CFNa ^!f v~p!!a!E!ơN)KO^09 P  DX2ՊR#jq7qRN%.ءC^\ˍ]ƙ5eO̒VaV$F%Q-~R:%# HaDcډh%@T5R3SQM"1[K,JX?lDT!P4`Q4I#Ja71Ml6\Ѐv N76*_M=ܷ$܉)BvI%jUumu)ZMRx!b@ lNn&HA@Pdi9e6[$qTP%hii钻RVd,6h$$ εY M}>?m1$՘Uaqi\YL22",P$9AcnЛE[PYVd$$  V`kq`&L^͗lr$>itiZhUX ojT,:~reIZjׯyUi&R&y:VNY$f{{P|O#~eLhrVV{.xYZgΕ'IgVr@$Q}I\}$=UNV wx'7&_fh`gv$}VxҪJM&XwI=iU]I|nV"Q&.]qdQ7:XfqTM5F!41@ű`7U!TqAN5ڞ@('U>[~c15(?( 62 K(Ų WSeF\XMiNZ3YU%VU.(JϞg9EdꐥU77+u[!Uj\h"P/AkRo^)De8#C'-0J# EY_a+%aݣp9)J0[l3uK״SeMezDTaq}T~z W4SQ giTPgmȳ.֦YUOXcZե!Z}V5XY UDiXZj(W`uH'q5uzc`^jl%(0V 7W}ݧ.[zC4DYiC5)X@xATl#A8UjSraW}kOq#%g5j'f:E0CzkWiOl@N$ @nx&$=wTg]M7Զ4bG؟Wj1ws{V_jPCp flnZ$lOP~u[tSOjǶ  d~_ց2Uӂ#vvތqufItJtnW Az^)8ͤSCYT񸧡UKE\sX s4Qқϛ( 9my(RLWϕs(1pr ?hg> ,bO6Q7U걶NOGgS82i\S~ EJMೡ[ [:p]9ajۡT1ѱ])(Nq-'idQjHNIUQ(@\V59vgU\_DPr%{sֵU|a/*F{#!|+:ѸO\aH]31]3PQ4op߯QR2bEo+;γ̃ā\L,,njS^ 9 Q / ;8|Ģ*( ,OmU|b|,j!_!J}?=,>7?>GO>W_>go>w>臾>~3>ꧾ>뷾>Ǿ>׾>>>>C>?'/?7??GO?W_?g?w??W??>?׿߿?D3 4xaB 64=)VxcF9vdH#I4yeJ+M:tfL3iִygN;y QsCϽcy"s"ujTSAGa[-25{mZ.![wz;]^ƍ+WP 6qH’EۯȈ)ۉ ,Xo9wAZdC?(nޫOykd/}$=-]M9u)-Qq u7 EV[6cYb,txcNVճ'LYW޳]ߐXaƝm%zZ;Nq*6=:./op /h9q-r$Bo$ؒI eZ {[v Dh`jQ+Xl,f1ti4dodSVJ6$Ypv*:'CꦝTōgOE%0 ȂpiG,mԩ!= X`PIիFHTˆT(˗q e KUe&mL+JՂKv ]41Zr*g'bs#5ѯډ͛nÉg[u9zq1g+~ tNEo7$YU$}C;xTdHU b"ejh+i5d.2Ē>^= Z,(S^Eydl_a@g^~fR-̈3YnNh擇?-K,)$T,{;ԫJUJIb!GG=@hq-<5$X iJTf4͆t!pqfWރ.RauC~[j t_s<憢8mnPTH8)$"1vK쐺QKiG7ю"n$1x $e$yft{Tָ03H&eTHrk (ǖHpnl6J|Fr2lFQ٨U_QFQNȂKoVBo4q\,kF E5a'E!̤\̆8a-,3|&ER'{}5Mx\XF U9")3^U>Ѡ(61|.,yȑ"PII_ɦXJbzͤ"V+ S[~p o%7wh"2Ŗ<utl冔 Lt$"xZV,U]v*X\8s b71Nx"8xU`U"ȯF)QzNHc35!؂Sаq#Ġ<LQD֦o<,JR)iK[R?;YT3vn8 eA)9 `S4sFX=&=1ED<9jW^lwC. ؟>d׬u͈QtW^]u_kqGTJ)n'4| h&2qѣ}bi6A5vRZ! n 8\Cl.ٛ C([Hua+ -Sט‚<]z(B\3+]"'ԍA;;Nv}Qw\} P2,~}V6U&jpGkUZ5Ӱ e"M'O1lFjעFt|G-mB|zع9A7thy-(1"q4rY)4Pc"f'])83JWTSTy0n"vwâ%^쭈 o|r%Kr b5`{;|tuxJ4^PIgǧ'mČ&EYb-HPqQ\T2gyΓSFvДG28Bz$XF$6̭z9yA;߁EK~9WS!-b!+?L(#=Bb0&.%m!n'L"nc\Eȋ"ΥOF"bfo!b!"͵RU5'3@a q & `ٲ&vD v0_V]C#UnMykyoVo" h)+ k W3@O M1&YA6+vA`PA 7kVSu&k+25eX'`4n}gwU`RK q+012 $wn\t017b;* w6CE n3+a —KIòwqU"CR7=})+r R !]$"Rax/Tx.yS"N]S,%Rft.ٶpr)6EG3,Ix) 11S:2/+ q!'2r!}XUs؆]2T"uIXZ wf3øU=X;wӔ&=VEuqq?,X!QejeNؐݲnQ*}1h7#Y'yP ،)Y7;ٓ?CYGKٔOSYW[ٕ_cYgkٖosYw{ٗY٘yo" pY ٚ/QyUyGq`YYq-Q@{#q`ٛo @ ڠ : ! :R:z K# &-Z?:ZCZG/ڢ ::^+zZ ZکzZZ @ ZڨګZZzϺz'ڭzZڬ f~Az;:ZeaS۰;/1{37۳[AE;M{Q;3c[gk۶os[wi ;۸; {{ۺ{;[[{;;mۻ[۽{۸A \#\'+/3\7v?C\?JO `ĭY?| yg[ƭo@ȇ< A\ɗɛɟʣ\ʧʫʯ˳\˷˻˿<=\Y guq|K\1 @\ %%/q`< ε-ί},EI]qM;=K\w@l}ٟm]ŝ E\,Efݚķ}ؑǍ@/Qϑ}-1]SгVu>= [>#^=ݚ'^7>9)>C/壑K9[!g~=o3wu7q蕑܇^ ꉱ~~͜iQ~?|7>~ Y^y>ߵ~|eq'@5V=?ޫ/]ő]\M `iS_U}׹١}OI\=o?G )>^   :x1ĉ+Z1ƍ;z2ȑ$K<2ʕ,S6| 3̙180B<{0(̠ $Z0@ϥLe.8P!?Μѳԙl~O/tg=| 7ܹtڽ7ޕ 8ߟH 4ZTf-6gY3=U3 2[cB52p,Z~9=ݼ{ <.L _8hʺ1 nj}f .k^Zfϰ|>U3& ,@ E 2}6֨F RàD6l6\^ankP=u=T1WC>@wn@XQq2 0 aև!P,BD 0VڠQjk1 5و!B`IQ6 @$3 A hcCDd(h.sI4x@."OrM5M |B f8D~@ 41~5<*DPs}Tj TC i-M>y4g5~ h~cAnk{T[n .[o4 ZEok..̰ ? qOѷ4qkѦiӠQjvFd5}Y5i 6z꺞rL4yV'_CAS86}ǰ6\CY!x+R*|6{1kA5Tv &BÈ˛P&t ٌp\bƳqd,ψ4ql(7qtG3ncb|J(k!-g-ϏbD#KM +«J"f66c YAOT1/d%XXL%,=Dr/ ` s,1d*S ܈ hHЇ WH038'M@$FjE)dIP7չ<xL3*CΊ+-s? Ѐ tl&VЄ*t mC шJtE/ьjthFiP~SIˊjvl֫!ؔTf&ڄ Mc䦨VdB1;hY|TFZjⲴ|}JwԭuvS3l/1j:^ֺm{ w}w x.+x n Kx/ kx? x$.{# pԁ Ќke1# fl GH1BqXYH ` XB1,.9"XPfP r 2g<8a =I+d! VCHdZ YP#8,JCMKm=OV,蕜"w8*P2k\%6 "ɒA9vU!m3Hi.YarH~p8F0"{#n5a,y">#b cd݈zBK$QhG_"$hu;inS 8H4Z)!n y"+ȳ[.mag<Dj\ 9">1s\xEG$QcAH?2u'`!èn`'Wy0P{69Nv,ƁִM!)͎Ŵ!rB8~5+j,{ʲP8.xl".f2ݙ m(6:cSN͠w&˥;^u?6= `L")nn;@$0){>"|W1s_|;g}w?W>nWtw/pq7q~З}wg}~dlW*p)VQBQ'x{m7]7fn6Xzhn)pw{rH Xn'eRv 6wFLeE pO6|SV` eEׄ&u8ezygmpo:( VkEW|Xelh\h=zeWmX8eVLjHbzn膁de ~GqHkroW|6pSnHыe8i)`j]m((~8e(vjpgujm0SzDtyH6 m`iG{`wk9v h`l 鐔'yx1gqLFxy؆ j. ;}X+֒0 8fUVA@i 9)0jވ!ivI9hx_peؔEYj$X q*Gd@w޸֖ƎYǸdppf%gn5iwƗVbu0pϖHgXsk{'p08֚9)Sc6V`Jٙ\VeYuvp IYVQkf)ٙ)v9>)( Vp[ ҩyn)x+ hƟɝѸd'ebWkFw=֝Sxx ~9СYk((܇*wxQjܦxw{xaɡI-ʋlw\LZylwGw! 䩓ؤ8*:t()r(ʥٟX|=pVly)yltjDgڹbٙxe'+J)E hDztQn@xPɧn{)ix{X`Xy{v!SkYX|X"J喒l͚JZozgZ9W*ګrnfǠjWʫf:m1ʨʭ2 ndy U࠺x @5xhjj֙뫬:3ikNJ/ ڪ]Ģ1=ik6Xvtwy7)_XlH;&q'IٱZge8ִi kI{锺uƱWeWqʲ(ڨ\oˌ+ `w nIIt =i*t+*B91V~i u􆦛KsW{/)jt'E1Ȉjk6+) iiؘ& 2xqHz7z:笃hl`y*}ٮUگh lkbVzǨEW ~ƚ[ ؞h;eW&+ɼ≯qj6(fE ` }P Wj s9Gw4ڵxhyWx,w!IwZq@# x3OI'l(&lhh2\C td͸q&'>aM0QBu-2q"%d 2}"O.5MD2)Y.1Q"d! &nnP@"$i!)rZ~1 #nUY$"@"gQ Iq :-`q&Kv>~hYNh LR QN<1Q[굞`aV-I侮;n׎~~#7:1LAAK ^ !$ >)J~@#O O $/1&o o.1HAKԞ}~N;` IoN  A9OXMnE#n?#KVoa7o6/:4#[_A!Ȟp=MoLrS;KaIFQ/z^y..GP #"AnྟNE!a$O/ /c2~#!@:p`A \ĉ ^ĘQF=~RH%MDRJ-]n< E,bHaN؜Shy@g"8zAЦ@"iT& DMbY^@u=)S^ !S \`` zb̆j)tZqÙ/-_ƜYfΝ=TB`k .L7fHHr 1L .1ek"eQG4RH&n^nȴ\^⥔%4M; TTUPG-^R]!YwP8W<RNŅ%;WV1ՔSOc[HEȔbVW]AcȎ°R{]Y^_O] F8af߃}a'a+xb7c^ MGF.Fn _Qԁ0X䏾YVyHmֹfm˔RY`nfmeT 4,䞳I_=.8`9&l.68m>~e^f;ooN5OiHxqEZ'T ".za /Cb$ CE%4hmq ~ ɂ%4Shl0$Kp+r$cȿ5|#GnTc٨G<σ.3E )A!HE.|!IrLd%1)MR'EPr,%*O)En- "Hh2RmOe/ˑ !bX#)X"G)cY,Be,d/D-?SSd%:3uL9Ozs;٩Owz+cI>ԠEhB gWbmOD{/$H -D7Dl-T2R]Q@bR zP EAKըGEjRP@ޓN'T*NN5QUէf_'W*Vv|BH**td''R@R;pwxq* n*^AW-@]+yE] [,!MEhv DcW\d PR* CH_?!'UjVގemp;\S'ruk\+;]V"K@/ʄӑ]e,k!vG]|eI.G],۫F{"^ym'd,`7p%L!/, 'u;}ĻRN |IzL4k'E uWWzֵuw_;pKR_Ȃi'd<xb2b {|?xD )XA7񏇼}dV( ~'npUp& C^@_V/{@_KǗ)>'0 |ǐBo>?{E0~! 3?=P)0A x_@۾??ݻ=>sd> ؀= @sK?d@ 4@TL >S@<>A@KA|瓿_ X?TH $[B#۫@!A BB{A.A,B ,0D1,42|{͸># c0`c2 =#Έ33SEdFtDF G=>\DT>KN3_? OE[[\DR>gFg4EKN\ŻWllEnpq$r4[6ȻC;hG7[Gq+,w X=sH ˫NEMHOHG %N|ȻC;W #I$IEcxĉlȒL``?K`ȯ\DĽI Ľ[`8#M,χ5S{Ha |I]8=_T_ J|ȌMYODP6ńTO\SOdY3Eȓ5YKY݄YLT+NYgLHlŏi|٠- \YHUY=IԐڎt֢ĜIDOnۻ%EhsVcu݈KD1[γ3cI6tE}\<=#W+( M|^DPmG4SVIAUDS`T``a|o]tCr]03c<cm'ňѻ\0a|̇]Fԃܿ+8SL;]^ [KQ+>$+_G4eL]OevfDfWLŴ|D5[ 7͇g}ecm^l9Ġg`|ӭĄt P<}NG38>}cUϧ}hY;hGdډ`bPP狮ل~ąT}]Xՠh`FDoqWp%Wy\Mą挸˧Fg m؏DΥBꬶj=g0FV(Q#&W,06DeiմFO`8di9a٥U2kÊA3Sc\HHȞfD$nćDlU;}ToV0%oV0W% Cd4RiH^lF {VPp_}3}HcGlSIރT~c+TeT 4 53 iq˅c=[: A&qNF K\:=uXe^V47_JEodT3S_|g?hDTiWOv;ipPUwGLq/e<<7_SS$`dcգwZ, _Dti=_=_gs`߾Acn`v1qc2MT>΂xNvNwS=_S.Fv~H=A̒(1<Kx" x{|&G h?gDE>GkTiHFbdwEeħDжEwFzUްo{HW@Hb1#szz|G_[]#`kV{;xW͠v`r;$#H7GX|ؗdapF~lNȇEs<}EX|xp.{e$肉%_.]uOP>o?v p "Lp!ÆB(q"Ŋ/b̨q#ǎ8ɒ&OLr%˖._Œ)s>̩s'Ϟ> *t(ѢF3ـ&ӦNBҦVbͪu+׮^R*ٲf2M2,۶n+w.]BDw/߲jo ,x0† /Ǝ].I1ʖ/c|c9I'`&]XL_;HZIORj(v9VUq @UP+0`(@GK^*ƶ(ops@b\0 ZL*傥T˾Po**kqp!#YȪƒq Z L0B1 Oڴp%LsD 3:[K"$aA,@ efT`B^3AvIk"KRqQ7Ia)d,TA.(} =x 0D71$@HH^.ykgwGKA4 ꧜"Gz3XK|sƉ/ q PyJ* 9nƫ''wLTcSXC@D0Sw[J@=Ky0cL pmU8$ogs~LD*H3WB=B@@tb@>%3 tz!"e 64wAHA"D&O1Q ʚ0%;HG* v WAȿC"(] DU9DU²/"y aY!k&.I;T$I#7a/v TwҧVa+ȧ$0 rG;`Wc: @8WO *pPn:;*ic<^p#he "qwrǐ1|$vG @G,EZ@/uX`dK# F%ⅱ g";ѝ@j3 .;Y<'}&K>8OJEUVxK)4XmZKoZ _V@HqaAPPTpU"kbHB.`WFdꩠe'\06D{( P{1"MDAj5:Q="'66:plFB*ҘU(@Қ$l1JB&$mTSGXaSIR MUBi$6\ Bsc\F)6H! 47BSAKOGrqf=_*H{'AZW0 Ccsmt BQrLb1+_b8,h[ c o8ۧB $cdc2)/~|j'QE,p t@OV6`-FՊ>1;|e U Ot9 ȯ`h0@QC NA>ׂBz ]e6@@TXxU]t8+m@14i #FHbA&rX! HR+8`[R Vlh@[?%i-I58f[0ͲMv%6|_֙wISk=ZckHD2c$, Y[N1ύudw1!$^AU x8^U2R:x}G2=Y'? `&D!R9VIb}$O9!?D>GYONi/d 9 2(h>B#Rs ?Hb~Gފ`L,Hcԉمs8 G@r4uFdqxF^U ` `` iDX F,O ICE/_ ! a.`RGpDT@KC nd" _ aedraR abaa !ML!2b#:D""J"TP#Z%b@$rbL4A)B fb)"4B+I+.B)-B/ J)c0a$).I1&Tx P #LL-b.Ix ) c9ccA),c3:#Y|."M@51 c/rA"dER8 @_ lM$i@@#J@yc/J.c?FF/  &dLdzcJ@)-AI|/".dI@EP$JIPMN66-4AItRJ;%JHIK--|BIDRY*$U`e)I.^eE:%2@cPWdQed/t Hz@/ʯ2/oo/opzޯFKxnp p p p p pp1 #q+3q;CqKqdEmd0,Ed8_EH("*toqs;111{qnqr "q?q q1cr k w%2"g"s2#{!q*O*W!_2**r++r,)Cr"r))$o/s0r2#3#3)204Sr#.K;s5/5{35243s/s9"s;;s<>s??t@ @tAA#tB+B3tC;CCtDKDStE[EctFkFstG{GtHHtIItJJtKKtLLtMMtNNtOOuP PuQQ#uR+R3uS;SCuTKTSuU[UcuVkVsuW{WuXXuYYuZZu[[u\\5Z,Jm]^tH w_5_at"cCGu 3vM/@a6"C2v+Wdvi3 + qડilK"0m@+v+H+cAoOpA@THfs# B-Pw,؂-{w'tk b&D{ |:6tJ7DyDBϊ+^+pLVTDxA7AHD|aOd}s8wJԀ+luS-AOv-x-+98ML<8ȄDV@ EvᇟDl8I- lpTgρ-OyIxLʪ ) xp9V|PK0yyJL=A0Mw\+K: :I@+B;u-to~9kzęÄٜqJ9:K q6qKhRۡ\LGI8IBX9I|x+Š8ĄMI8'PIL˰ˊGpx@޸yJЈQ֑i<:\l8CEWDz#=_LIhz_|;;u{K=xAKL8ZKн1伎|KL18HD׻q~Joِ֐Đ!P-FpyTP?JɈ(ԏ6dR,iB"{3,+G,R9;tZ!PҥU:<ЌTe&SM9OA S2VYrUZCOH8I%,IE[qU]yuOV= h "UX@38Xa{kVmV+`vsMWu,SjۍWy^]D@{<WNXn!X)1X9AYI.QNYYnaYiqYy矁Z衉.裑NZ饙n駡Zꩩ꫱Z뭹[.N[n[[\f "…l%8`ΈD\'b[|*%2V"2Xb;sLgj'{c8LƏy\EH]LOXɓ i@(RJPdw )Xpd+{YO2V cg!ԡ5AZ`UA?AN˾J+(LV 1u\kurMR_5j_\Z7Zk_^NUN%oyz^&Uus%TYΗ}_`(cb3ଭgQ7̭U+⋉m6`@}`R*JjQ΢in-H81ƅM|L`%/Mve)"CNB@GT"Y*Hf5\1sԈ6υmJc=*VL`WD! @ в8Ϩ4f ) b+4=p[Eh9iP@1a yʱ< F9׾F kd>v}=l`zٿ6Ml^KԎñ 8 XHqm6 m l=vmHmo{V7pq;w-o'xэ <w}o7<8+ZhyV8~>깟 17aF\Y96a[liC:ӑ24@tO#wqW 8G{ڿpzvMmf=|76icnv%޷M#~C|yo|$Vڴ<ފXjZl}>iI;i kEfa[]ПHSnNiѺU$7ѯxwϟ iP  0 2`+9<0pR2 R bdojˤpR T@τO2Ҷ"tP$ŤМ `+Pq*l: ``RD CX$ po1NָS# qQ;+Q&"E+k胱p(*(>M` 6줬 xof!D+Jh$㋒j!玬Ӭa~I]h@1I%eΤ\pQR@ґ$蝂MNb1q+RE+R* bNq`_)"%R+1,20Ԩ֌l#U^d? `  ? N@f&_^rEN @rE6W$'pE$z I*a%22]r$*(bM g`gz'%Uz*0R͆j.h+R⧖h\ X"2^-R.rӇ~+N'_D)]2U,3|L'57}e^(򋶧66cr{Z3Zns4ŧ!L~s3Ah3U8 4"b"9%7P2Z+RHs.FR;%;58H<饰1E6qfIv)6:t!>k+ʒ}sB`|T>5&RWA S@G?U%svE$Igg<1KI4LtLɴLL4MtMٴMM4NtNNN4OtOOO5PuP P P5QuQQQ!hV+3GyER$2QLv>RiiT7TT1USKSQ5VUUTiUX\SqVuW9,oRUWIWm3SXYVYU:UVZUY[YW[5\5X5TuX'u\\]OUZuVU\\\]^_+_^u`ߵ\ V`vƚs+%vb)b-b16c5vc9V0gF:vdIdMdQ6eUvedcEZF\f-fJg6gm;+gfCg+ViQiiuhvg{viv6Fkgkkdk6kljhVmk6m6gknjoߖfpVppVnVjmvMlvpVmpn7rvo7o;s'Vt/7otoIwuOrqauGWu7te7nD4mF$xwxxx7ywyyy7zwzzTftz{{7|w|ɷ||7A_vз}}7~w~~,fhGV8x yeS x!8WFe{$85x9=x~)H.a}d]a8exCG*H<^ acA,Ty[ ZxxxwH(p>ٱ=,+&agxㅛ VA:W-P.4A_˜-y}sٟiBZ^Ň^~Yy| ɽ! \eEY|c+rA\~ŷQ[~`.p2~/U0T"b]By!+!!V ? H`$ wC-"IIË3jȱǏ CIɓ(S\ɲ%AC *(#Ś$@G1Xâw 1OB(i6 F24PP֦980bvb$B izm˷߽zb R)Ăipt!M\RV &@%چ`LJ b vcMơچf_ܸWkln,7o%L6PBZ[WPyWSpZ~@P#VM9v<5rf C)јVE%mtIwWXVE>d$ѐ&LኔVh馈ϋP$EHFꪬ꫰bt(qR\nD 놕@ͯ氏?l_ JFVkfq}QbѠ.lKI+ͦ ~ 3ʒJk 7C/N/{&n4D,$l7t~4l"@j]+2@jlH's? -ԍ%@Xg\{Tʔ;pytest-watcher-0.4.3/docs/conf.py000066400000000000000000000020031466365772000167430ustar00rootroot00000000000000# Configuration file for the Sphinx documentation builder. # # For the full list of built-in configuration values, see the documentation: # https://www.sphinx-doc.org/en/master/usage/configuration.html # -- Project information ----------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information project = "pytest-watcher" copyright = "2023, Olzhas Arystanov" author = "Olzhas Arystanov" release = "v0.4.3" # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration extensions = [ "myst_parser", "sphinx_rtd_theme", ] templates_path = ["_templates"] exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] # -- Options for HTML output ------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output html_theme = "sphinx_rtd_theme" html_static_path = ["_static"] pytest-watcher-0.4.3/docs/index.md000066400000000000000000000110541466365772000171030ustar00rootroot00000000000000# Welcome to pytest-watcher [![PyPI](https://img.shields.io/pypi/v/pytest-watcher)](https://pypi.org/project/pytest-watcher/) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pytest-watcher)](https://pypi.org/project/pytest-watcher/) [![GitHub](https://img.shields.io/github/license/olzhasar/pytest-watcher)](https://github.com/olzhasar/pytest-watcher/blob/master/LICENSE) ## Overview **pytest-watcher** is a tool to automatically rerun tests (using `pytest` by default) whenever your code changes. Works on Unix (Linux, MacOS, BSD) and Windows. Example: ![Preview](_static/preview.gif) ## Motivation ### Why not general tools - Easy to use and remember - Works for most Python projects out of the box - Uses native system monitoring API instead of polling on supported systems (see [watchdog documentation](https://python-watchdog.readthedocs.io/en/stable/installation.html#supported-platforms-and-caveats)) - Listens for new file, delete file, change and move events - Runs your tests with latest changes in case of post-processing events (see [delay](#delay)) - Has interactive mode with handy keyboard shortcuts ### What about pytest-watch [pytest-watch](https://github.com/joeyespo/pytest-watch) has been around for a long time and used to address exactly this problem. Unfortunately, pytest-watch is no longer maintained and doesn't work for many users. This project provides an alternative for it. See also: [Differences with pytest-watch](#differences-with-pytest-watch) ## File events By default `pytest-watcher` looks for the following events: - New `*.py` file created - Existing `*.py` file modified - Existing `*.py` file deleted - A `*.py` file moved either from or to the watched path You can specify alternative file patterns to watch. See [Watching different patterns](#watching-different-patterns) ## Installation ```sh pip install pytest-watcher ``` ## Usage Specify the path that you want to watch: ```sh ptw . ``` or ```sh ptw /home/repos/project ``` `pytest-watcher` will pass any arguments (excepted [reserved options](#available-options)) after `` to the test runner (which is `pytest` by default). For example: ```sh ptw . -x --lf --nf ``` will call `pytest` with the following arguments: ```sh pytest -x --lf --nf ``` ### Available options The following options are reserved for `pytest-watcher` and will not be passed to the test runner: - `--runner` - Specify an alternative test runner - `--patterns` - Specify file patterns to watch - `--ignore-patterns` - Specify file patterns to ignore - `--now` - Run tests immediately after starting the watcher - `--delay` - Specify the delay before running tests - `--clear` - Clear the terminal screen before each test run ### Using a different test runner You can specify an alternative test runner using the `--runner` flag: ```sh ptw . --runner tox ``` ### Watching different patterns You can use the `--patterns` flag to specify file patterns that you want to watch. It accepts a list of Unix-style patterns separated by a comma. The default value is "\*.py" Example: ```sh ptw . --patterns '*.py,pyproject.toml' ``` You can also **ignore** certain patterns using the `--ignore-patterns` flag: ```sh ptw . --ignore-patterns 'settings.py,db.py' ``` ### Delay `pytest-watcher` uses a short delay (0.2 seconds by default) before triggering the actual test run. The main motivation for this is post-processors that can run after you save the file (for example, `black` plugin in your IDE). This ensures that tests will run with the latest version of your code. You can control the actual delay value with the `--delay` flag: ```sh ptw . --delay 0.2 ``` To disable the delay altogether, you can set zero as a value: ```sh ptw . --delay 0 ``` ### Screen clearing Use the `--clear` flag to clear the terminal screen before each test run ```sh ptw . --clear ``` ### Differences with `pytest-watch` Even though this project was inspired by [`pytest-watch`](https://github.com/joeyespo/pytest-watch), it's not a fork of it. Therefore, there are **differences** in behavior: - `pytest-watcher` needs you to specify a path to watch as a first argument: ```sh ptw . ``` - `pytest-watcher` doesn't start tests immediately by default. You can customize this behavior using `--now` flag. ## Configuring You can configure `pytest-watcher` via `pyproject.toml` file. Here is the default configuration: ```toml [tool.pytest-watcher] now = false clear = true delay = 0.2 runner = "pytest" runner_args = [] patterns = ["*.py"] ignore_patterns = [] ``` ## Compatibility The code is compatible with Python versions 3.7+ pytest-watcher-0.4.3/docs/make.bat000066400000000000000000000014401466365772000170550ustar00rootroot00000000000000@ECHO OFF pushd %~dp0 REM Command file for Sphinx documentation if "%SPHINXBUILD%" == "" ( set SPHINXBUILD=sphinx-build ) set SOURCEDIR=. set BUILDDIR=_build %SPHINXBUILD% >NUL 2>NUL if errorlevel 9009 ( echo. echo.The 'sphinx-build' command was not found. Make sure you have Sphinx echo.installed, then set the SPHINXBUILD environment variable to point echo.to the full path of the 'sphinx-build' executable. Alternatively you echo.may add the Sphinx directory to PATH. echo. echo.If you don't have Sphinx installed, grab it from echo.https://www.sphinx-doc.org/ exit /b 1 ) if "%1" == "" goto help %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% goto end :help %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% :end popd pytest-watcher-0.4.3/docs/requirements.txt000066400000000000000000000000531466365772000207330ustar00rootroot00000000000000myst-parser==1.0.0 sphinx-rtd-theme>=1.2.2 pytest-watcher-0.4.3/poetry.lock000066400000000000000000002550561466365772000167320ustar00rootroot00000000000000# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. [[package]] name = "alabaster" version = "0.7.13" description = "A configurable sidebar-enabled Sphinx theme" optional = false python-versions = ">=3.6" files = [ {file = "alabaster-0.7.13-py3-none-any.whl", hash = "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3"}, {file = "alabaster-0.7.13.tar.gz", hash = "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2"}, ] [[package]] name = "babel" version = "2.14.0" description = "Internationalization utilities" optional = false python-versions = ">=3.7" files = [ {file = "Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287"}, {file = "Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"}, ] [package.dependencies] pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} [package.extras] dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] [[package]] name = "cachetools" version = "5.3.3" description = "Extensible memoizing collections and decorators" optional = false python-versions = ">=3.7" files = [ {file = "cachetools-5.3.3-py3-none-any.whl", hash = "sha256:0abad1021d3f8325b2fc1d2e9c8b9c9d57b04c3932657a72465447332c24d945"}, {file = "cachetools-5.3.3.tar.gz", hash = "sha256:ba29e2dfa0b8b556606f097407ed1aa62080ee108ab0dc5ec9d6a723a007d105"}, ] [[package]] name = "certifi" version = "2024.2.2" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, ] [[package]] name = "chardet" version = "5.2.0" description = "Universal encoding detector for Python 3" optional = false python-versions = ">=3.7" files = [ {file = "chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970"}, {file = "chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7"}, ] [[package]] name = "charset-normalizer" version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7.0" files = [ {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, ] [[package]] name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] [[package]] name = "coverage" version = "7.2.7" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.7" files = [ {file = "coverage-7.2.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d39b5b4f2a66ccae8b7263ac3c8170994b65266797fb96cbbfd3fb5b23921db8"}, {file = "coverage-7.2.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6d040ef7c9859bb11dfeb056ff5b3872436e3b5e401817d87a31e1750b9ae2fb"}, {file = "coverage-7.2.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba90a9563ba44a72fda2e85302c3abc71c5589cea608ca16c22b9804262aaeb6"}, {file = "coverage-7.2.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7d9405291c6928619403db1d10bd07888888ec1abcbd9748fdaa971d7d661b2"}, {file = "coverage-7.2.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31563e97dae5598556600466ad9beea39fb04e0229e61c12eaa206e0aa202063"}, {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ebba1cd308ef115925421d3e6a586e655ca5a77b5bf41e02eb0e4562a111f2d1"}, {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:cb017fd1b2603ef59e374ba2063f593abe0fc45f2ad9abdde5b4d83bd922a353"}, {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62a5c7dad11015c66fbb9d881bc4caa5b12f16292f857842d9d1871595f4495"}, {file = "coverage-7.2.7-cp310-cp310-win32.whl", hash = "sha256:ee57190f24fba796e36bb6d3aa8a8783c643d8fa9760c89f7a98ab5455fbf818"}, {file = "coverage-7.2.7-cp310-cp310-win_amd64.whl", hash = "sha256:f75f7168ab25dd93110c8a8117a22450c19976afbc44234cbf71481094c1b850"}, {file = "coverage-7.2.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:06a9a2be0b5b576c3f18f1a241f0473575c4a26021b52b2a85263a00f034d51f"}, {file = "coverage-7.2.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5baa06420f837184130752b7c5ea0808762083bf3487b5038d68b012e5937dbe"}, {file = "coverage-7.2.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdec9e8cbf13a5bf63290fc6013d216a4c7232efb51548594ca3631a7f13c3a3"}, {file = "coverage-7.2.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52edc1a60c0d34afa421c9c37078817b2e67a392cab17d97283b64c5833f427f"}, {file = "coverage-7.2.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63426706118b7f5cf6bb6c895dc215d8a418d5952544042c8a2d9fe87fcf09cb"}, {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:afb17f84d56068a7c29f5fa37bfd38d5aba69e3304af08ee94da8ed5b0865833"}, {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:48c19d2159d433ccc99e729ceae7d5293fbffa0bdb94952d3579983d1c8c9d97"}, {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0e1f928eaf5469c11e886fe0885ad2bf1ec606434e79842a879277895a50942a"}, {file = "coverage-7.2.7-cp311-cp311-win32.whl", hash = "sha256:33d6d3ea29d5b3a1a632b3c4e4f4ecae24ef170b0b9ee493883f2df10039959a"}, {file = "coverage-7.2.7-cp311-cp311-win_amd64.whl", hash = "sha256:5b7540161790b2f28143191f5f8ec02fb132660ff175b7747b95dcb77ac26562"}, {file = "coverage-7.2.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f2f67fe12b22cd130d34d0ef79206061bfb5eda52feb6ce0dba0644e20a03cf4"}, {file = "coverage-7.2.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a342242fe22407f3c17f4b499276a02b01e80f861f1682ad1d95b04018e0c0d4"}, {file = "coverage-7.2.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:171717c7cb6b453aebac9a2ef603699da237f341b38eebfee9be75d27dc38e01"}, {file = "coverage-7.2.7-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49969a9f7ffa086d973d91cec8d2e31080436ef0fb4a359cae927e742abfaaa6"}, {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b46517c02ccd08092f4fa99f24c3b83d8f92f739b4657b0f146246a0ca6a831d"}, {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:a3d33a6b3eae87ceaefa91ffdc130b5e8536182cd6dfdbfc1aa56b46ff8c86de"}, {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:976b9c42fb2a43ebf304fa7d4a310e5f16cc99992f33eced91ef6f908bd8f33d"}, {file = "coverage-7.2.7-cp312-cp312-win32.whl", hash = "sha256:8de8bb0e5ad103888d65abef8bca41ab93721647590a3f740100cd65c3b00511"}, {file = "coverage-7.2.7-cp312-cp312-win_amd64.whl", hash = "sha256:9e31cb64d7de6b6f09702bb27c02d1904b3aebfca610c12772452c4e6c21a0d3"}, {file = "coverage-7.2.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:58c2ccc2f00ecb51253cbe5d8d7122a34590fac9646a960d1430d5b15321d95f"}, {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d22656368f0e6189e24722214ed8d66b8022db19d182927b9a248a2a8a2f67eb"}, {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a895fcc7b15c3fc72beb43cdcbdf0ddb7d2ebc959edac9cef390b0d14f39f8a9"}, {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e84606b74eb7de6ff581a7915e2dab7a28a0517fbe1c9239eb227e1354064dcd"}, {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:0a5f9e1dbd7fbe30196578ca36f3fba75376fb99888c395c5880b355e2875f8a"}, {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:419bfd2caae268623dd469eff96d510a920c90928b60f2073d79f8fe2bbc5959"}, {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2aee274c46590717f38ae5e4650988d1af340fe06167546cc32fe2f58ed05b02"}, {file = "coverage-7.2.7-cp37-cp37m-win32.whl", hash = "sha256:61b9a528fb348373c433e8966535074b802c7a5d7f23c4f421e6c6e2f1697a6f"}, {file = "coverage-7.2.7-cp37-cp37m-win_amd64.whl", hash = "sha256:b1c546aca0ca4d028901d825015dc8e4d56aac4b541877690eb76490f1dc8ed0"}, {file = "coverage-7.2.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:54b896376ab563bd38453cecb813c295cf347cf5906e8b41d340b0321a5433e5"}, {file = "coverage-7.2.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3d376df58cc111dc8e21e3b6e24606b5bb5dee6024f46a5abca99124b2229ef5"}, {file = "coverage-7.2.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e330fc79bd7207e46c7d7fd2bb4af2963f5f635703925543a70b99574b0fea9"}, {file = "coverage-7.2.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e9d683426464e4a252bf70c3498756055016f99ddaec3774bf368e76bbe02b6"}, {file = "coverage-7.2.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d13c64ee2d33eccf7437961b6ea7ad8673e2be040b4f7fd4fd4d4d28d9ccb1e"}, {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b7aa5f8a41217360e600da646004f878250a0d6738bcdc11a0a39928d7dc2050"}, {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8fa03bce9bfbeeef9f3b160a8bed39a221d82308b4152b27d82d8daa7041fee5"}, {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:245167dd26180ab4c91d5e1496a30be4cd721a5cf2abf52974f965f10f11419f"}, {file = "coverage-7.2.7-cp38-cp38-win32.whl", hash = "sha256:d2c2db7fd82e9b72937969bceac4d6ca89660db0a0967614ce2481e81a0b771e"}, {file = "coverage-7.2.7-cp38-cp38-win_amd64.whl", hash = "sha256:2e07b54284e381531c87f785f613b833569c14ecacdcb85d56b25c4622c16c3c"}, {file = "coverage-7.2.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:537891ae8ce59ef63d0123f7ac9e2ae0fc8b72c7ccbe5296fec45fd68967b6c9"}, {file = "coverage-7.2.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:06fb182e69f33f6cd1d39a6c597294cff3143554b64b9825d1dc69d18cc2fff2"}, {file = "coverage-7.2.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:201e7389591af40950a6480bd9edfa8ed04346ff80002cec1a66cac4549c1ad7"}, {file = "coverage-7.2.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f6951407391b639504e3b3be51b7ba5f3528adbf1a8ac3302b687ecababf929e"}, {file = "coverage-7.2.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f48351d66575f535669306aa7d6d6f71bc43372473b54a832222803eb956fd1"}, {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b29019c76039dc3c0fd815c41392a044ce555d9bcdd38b0fb60fb4cd8e475ba9"}, {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:81c13a1fc7468c40f13420732805a4c38a105d89848b7c10af65a90beff25250"}, {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:975d70ab7e3c80a3fe86001d8751f6778905ec723f5b110aed1e450da9d4b7f2"}, {file = "coverage-7.2.7-cp39-cp39-win32.whl", hash = "sha256:7ee7d9d4822c8acc74a5e26c50604dff824710bc8de424904c0982e25c39c6cb"}, {file = "coverage-7.2.7-cp39-cp39-win_amd64.whl", hash = "sha256:eb393e5ebc85245347950143969b241d08b52b88a3dc39479822e073a1a8eb27"}, {file = "coverage-7.2.7-pp37.pp38.pp39-none-any.whl", hash = "sha256:b7b4c971f05e6ae490fef852c218b0e79d4e52f79ef0c8475566584a8fb3e01d"}, {file = "coverage-7.2.7.tar.gz", hash = "sha256:924d94291ca674905fe9481f12294eb11f2d3d3fd1adb20314ba89e94f44ed59"}, ] [package.dependencies] tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} [package.extras] toml = ["tomli"] [[package]] name = "distlib" version = "0.3.8" description = "Distribution utilities" optional = false python-versions = "*" files = [ {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"}, {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, ] [[package]] name = "docutils" version = "0.18.1" description = "Docutils -- Python Documentation Utilities" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ {file = "docutils-0.18.1-py2.py3-none-any.whl", hash = "sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c"}, {file = "docutils-0.18.1.tar.gz", hash = "sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"}, ] [[package]] name = "exceptiongroup" version = "1.2.0" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" files = [ {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"}, {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"}, ] [package.extras] test = ["pytest (>=6)"] [[package]] name = "filelock" version = "3.12.2" description = "A platform independent file lock." optional = false python-versions = ">=3.7" files = [ {file = "filelock-3.12.2-py3-none-any.whl", hash = "sha256:cbb791cdea2a72f23da6ac5b5269ab0a0d161e9ef0100e653b69049a7706d1ec"}, {file = "filelock-3.12.2.tar.gz", hash = "sha256:002740518d8aa59a26b0c76e10fb8c6e15eae825d34b6fdf670333fd7b938d81"}, ] [package.extras] docs = ["furo (>=2023.5.20)", "sphinx (>=7.0.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] testing = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "diff-cover (>=7.5)", "pytest (>=7.3.1)", "pytest-cov (>=4.1)", "pytest-mock (>=3.10)", "pytest-timeout (>=2.1)"] [[package]] name = "freezegun" version = "1.4.0" description = "Let your Python tests travel through time" optional = false python-versions = ">=3.7" files = [ {file = "freezegun-1.4.0-py3-none-any.whl", hash = "sha256:55e0fc3c84ebf0a96a5aa23ff8b53d70246479e9a68863f1fcac5a3e52f19dd6"}, {file = "freezegun-1.4.0.tar.gz", hash = "sha256:10939b0ba0ff5adaecf3b06a5c2f73071d9678e507c5eaedb23c761d56ac774b"}, ] [package.dependencies] python-dateutil = ">=2.7" [[package]] name = "idna" version = "3.6" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.5" files = [ {file = "idna-3.6-py3-none-any.whl", hash = "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f"}, {file = "idna-3.6.tar.gz", hash = "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"}, ] [[package]] name = "imagesize" version = "1.4.1" description = "Getting image size from png/jpeg/jpeg2000/gif file" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, ] [[package]] name = "importlib-metadata" version = "6.7.0" description = "Read metadata from Python packages" optional = false python-versions = ">=3.7" files = [ {file = "importlib_metadata-6.7.0-py3-none-any.whl", hash = "sha256:cb52082e659e97afc5dac71e79de97d8681de3aa07ff18578330904a9d18e5b5"}, {file = "importlib_metadata-6.7.0.tar.gz", hash = "sha256:1aaf550d4f73e5d6783e7acb77aec43d49da8017410afae93822cc9cca98c4d4"}, ] [package.dependencies] typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} zipp = ">=0.5" [package.extras] docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] perf = ["ipython"] testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)", "pytest-ruff"] [[package]] name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" optional = false python-versions = ">=3.7" files = [ {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, ] [[package]] name = "jinja2" version = "3.1.3" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" files = [ {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"}, {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"}, ] [package.dependencies] MarkupSafe = ">=2.0" [package.extras] i18n = ["Babel (>=2.7)"] [[package]] name = "markdown-it-py" version = "2.2.0" description = "Python port of markdown-it. Markdown parsing, done right!" optional = false python-versions = ">=3.7" files = [ {file = "markdown-it-py-2.2.0.tar.gz", hash = "sha256:7c9a5e412688bc771c67432cbfebcdd686c93ce6484913dccf06cb5a0bea35a1"}, {file = "markdown_it_py-2.2.0-py3-none-any.whl", hash = "sha256:5a35f8d1870171d9acc47b99612dc146129b631baf04970128b568f190d0cc30"}, ] [package.dependencies] mdurl = ">=0.1,<1.0" typing_extensions = {version = ">=3.7.4", markers = "python_version < \"3.8\""} [package.extras] benchmarking = ["psutil", "pytest", "pytest-benchmark"] code-style = ["pre-commit (>=3.0,<4.0)"] compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] linkify = ["linkify-it-py (>=1,<3)"] plugins = ["mdit-py-plugins"] profiling = ["gprof2dot"] rtd = ["attrs", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] [[package]] name = "markupsafe" version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.7" files = [ {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, ] [[package]] name = "mdit-py-plugins" version = "0.3.5" description = "Collection of plugins for markdown-it-py" optional = false python-versions = ">=3.7" files = [ {file = "mdit-py-plugins-0.3.5.tar.gz", hash = "sha256:eee0adc7195e5827e17e02d2a258a2ba159944a0748f59c5099a4a27f78fcf6a"}, {file = "mdit_py_plugins-0.3.5-py3-none-any.whl", hash = "sha256:ca9a0714ea59a24b2b044a1831f48d817dd0c817e84339f20e7889f392d77c4e"}, ] [package.dependencies] markdown-it-py = ">=1.0.0,<3.0.0" [package.extras] code-style = ["pre-commit"] rtd = ["attrs", "myst-parser (>=0.16.1,<0.17.0)", "sphinx-book-theme (>=0.1.0,<0.2.0)"] testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] [[package]] name = "mdurl" version = "0.1.2" description = "Markdown URL utilities" optional = false python-versions = ">=3.7" files = [ {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, ] [[package]] name = "mypy" version = "1.4.1" description = "Optional static typing for Python" optional = false python-versions = ">=3.7" files = [ {file = "mypy-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:566e72b0cd6598503e48ea610e0052d1b8168e60a46e0bfd34b3acf2d57f96a8"}, {file = "mypy-1.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ca637024ca67ab24a7fd6f65d280572c3794665eaf5edcc7e90a866544076878"}, {file = "mypy-1.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dde1d180cd84f0624c5dcaaa89c89775550a675aff96b5848de78fb11adabcd"}, {file = "mypy-1.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8c4d8e89aa7de683e2056a581ce63c46a0c41e31bd2b6d34144e2c80f5ea53dc"}, {file = "mypy-1.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:bfdca17c36ae01a21274a3c387a63aa1aafe72bff976522886869ef131b937f1"}, {file = "mypy-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7549fbf655e5825d787bbc9ecf6028731973f78088fbca3a1f4145c39ef09462"}, {file = "mypy-1.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:98324ec3ecf12296e6422939e54763faedbfcc502ea4a4c38502082711867258"}, {file = "mypy-1.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:141dedfdbfe8a04142881ff30ce6e6653c9685b354876b12e4fe6c78598b45e2"}, {file = "mypy-1.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8207b7105829eca6f3d774f64a904190bb2231de91b8b186d21ffd98005f14a7"}, {file = "mypy-1.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:16f0db5b641ba159eff72cff08edc3875f2b62b2fa2bc24f68c1e7a4e8232d01"}, {file = "mypy-1.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:470c969bb3f9a9efcedbadcd19a74ffb34a25f8e6b0e02dae7c0e71f8372f97b"}, {file = "mypy-1.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e5952d2d18b79f7dc25e62e014fe5a23eb1a3d2bc66318df8988a01b1a037c5b"}, {file = "mypy-1.4.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:190b6bab0302cec4e9e6767d3eb66085aef2a1cc98fe04936d8a42ed2ba77bb7"}, {file = "mypy-1.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9d40652cc4fe33871ad3338581dca3297ff5f2213d0df345bcfbde5162abf0c9"}, {file = "mypy-1.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:01fd2e9f85622d981fd9063bfaef1aed6e336eaacca00892cd2d82801ab7c042"}, {file = "mypy-1.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:2460a58faeea905aeb1b9b36f5065f2dc9a9c6e4c992a6499a2360c6c74ceca3"}, {file = "mypy-1.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2746d69a8196698146a3dbe29104f9eb6a2a4d8a27878d92169a6c0b74435b6"}, {file = "mypy-1.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ae704dcfaa180ff7c4cfbad23e74321a2b774f92ca77fd94ce1049175a21c97f"}, {file = "mypy-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:43d24f6437925ce50139a310a64b2ab048cb2d3694c84c71c3f2a1626d8101dc"}, {file = "mypy-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c482e1246726616088532b5e964e39765b6d1520791348e6c9dc3af25b233828"}, {file = "mypy-1.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:43b592511672017f5b1a483527fd2684347fdffc041c9ef53428c8dc530f79a3"}, {file = "mypy-1.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34a9239d5b3502c17f07fd7c0b2ae6b7dd7d7f6af35fbb5072c6208e76295816"}, {file = "mypy-1.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5703097c4936bbb9e9bce41478c8d08edd2865e177dc4c52be759f81ee4dd26c"}, {file = "mypy-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:e02d700ec8d9b1859790c0475df4e4092c7bf3272a4fd2c9f33d87fac4427b8f"}, {file = "mypy-1.4.1-py3-none-any.whl", hash = "sha256:45d32cec14e7b97af848bddd97d85ea4f0db4d5a149ed9676caa4eb2f7402bb4"}, {file = "mypy-1.4.1.tar.gz", hash = "sha256:9bbcd9ab8ea1f2e1c8031c21445b511442cc45c89951e49bbf852cbb70755b1b"}, ] [package.dependencies] mypy-extensions = ">=1.0.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} typed-ast = {version = ">=1.4.0,<2", markers = "python_version < \"3.8\""} typing-extensions = ">=4.1.0" [package.extras] dmypy = ["psutil (>=4.0)"] install-types = ["pip"] python2 = ["typed-ast (>=1.4.0,<2)"] reports = ["lxml"] [[package]] name = "mypy-extensions" version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." optional = false python-versions = ">=3.5" files = [ {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, ] [[package]] name = "myst-parser" version = "1.0.0" description = "An extended [CommonMark](https://spec.commonmark.org/) compliant parser," optional = false python-versions = ">=3.7" files = [ {file = "myst-parser-1.0.0.tar.gz", hash = "sha256:502845659313099542bd38a2ae62f01360e7dd4b1310f025dd014dfc0439cdae"}, {file = "myst_parser-1.0.0-py3-none-any.whl", hash = "sha256:69fb40a586c6fa68995e6521ac0a525793935db7e724ca9bac1d33be51be9a4c"}, ] [package.dependencies] docutils = ">=0.15,<0.20" jinja2 = "*" markdown-it-py = ">=1.0.0,<3.0.0" mdit-py-plugins = ">=0.3.4,<0.4.0" pyyaml = "*" sphinx = ">=5,<7" typing-extensions = {version = "*", markers = "python_version < \"3.8\""} [package.extras] code-style = ["pre-commit (>=3.0,<4.0)"] linkify = ["linkify-it-py (>=1.0,<2.0)"] rtd = ["ipython", "pydata-sphinx-theme (==v0.13.0rc4)", "sphinx-autodoc2 (>=0.4.2,<0.5.0)", "sphinx-book-theme (==1.0.0rc2)", "sphinx-copybutton", "sphinx-design2", "sphinx-pyscript", "sphinx-tippy (>=0.3.1)", "sphinx-togglebutton", "sphinxext-opengraph (>=0.7.5,<0.8.0)", "sphinxext-rediraffe (>=0.2.7,<0.3.0)"] testing = ["beautifulsoup4", "coverage[toml]", "pytest (>=7,<8)", "pytest-cov", "pytest-param-files (>=0.3.4,<0.4.0)", "pytest-regressions", "sphinx-pytest"] testing-docutils = ["pygments", "pytest (>=7,<8)", "pytest-param-files (>=0.3.4,<0.4.0)"] [[package]] name = "packaging" version = "24.0" description = "Core utilities for Python packages" optional = false python-versions = ">=3.7" files = [ {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"}, {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, ] [[package]] name = "platformdirs" version = "4.0.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." optional = false python-versions = ">=3.7" files = [ {file = "platformdirs-4.0.0-py3-none-any.whl", hash = "sha256:118c954d7e949b35437270383a3f2531e99dd93cf7ce4dc8340d3356d30f173b"}, {file = "platformdirs-4.0.0.tar.gz", hash = "sha256:cb633b2bcf10c51af60beb0ab06d2f1d69064b43abf4c185ca6b28865f3f9731"}, ] [package.dependencies] typing-extensions = {version = ">=4.7.1", markers = "python_version < \"3.8\""} [package.extras] docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"] test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"] [[package]] name = "pluggy" version = "1.2.0" description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.7" files = [ {file = "pluggy-1.2.0-py3-none-any.whl", hash = "sha256:c2fd55a7d7a3863cba1a013e4e2414658b1d07b6bc57b3919e0c63c9abb99849"}, {file = "pluggy-1.2.0.tar.gz", hash = "sha256:d12f0c4b579b15f5e054301bb226ee85eeeba08ffec228092f8defbaa3a4c4b3"}, ] [package.dependencies] importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} [package.extras] dev = ["pre-commit", "tox"] testing = ["pytest", "pytest-benchmark"] [[package]] name = "pygments" version = "2.17.2" description = "Pygments is a syntax highlighting package written in Python." optional = false python-versions = ">=3.7" files = [ {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, ] [package.extras] plugins = ["importlib-metadata"] windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pyproject-api" version = "1.5.3" description = "API to interact with the python pyproject.toml based projects" optional = false python-versions = ">=3.7" files = [ {file = "pyproject_api-1.5.3-py3-none-any.whl", hash = "sha256:14cf09828670c7b08842249c1f28c8ee6581b872e893f81b62d5465bec41502f"}, {file = "pyproject_api-1.5.3.tar.gz", hash = "sha256:ffb5b2d7cad43f5b2688ab490de7c4d3f6f15e0b819cb588c4b771567c9729eb"}, ] [package.dependencies] packaging = ">=23.1" tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} [package.extras] docs = ["furo (>=2023.5.20)", "sphinx (>=7.0.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] testing = ["covdefaults (>=2.3)", "importlib-metadata (>=6.6)", "pytest (>=7.3.1)", "pytest-cov (>=4.1)", "pytest-mock (>=3.10)", "setuptools (>=67.8)", "wheel (>=0.40)"] [[package]] name = "pytest" version = "7.4.4" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.7" files = [ {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, ] [package.dependencies] colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} iniconfig = "*" packaging = "*" pluggy = ">=0.12,<2.0" tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} [package.extras] testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "pytest-mock" version = "3.11.1" description = "Thin-wrapper around the mock package for easier use with pytest" optional = false python-versions = ">=3.7" files = [ {file = "pytest-mock-3.11.1.tar.gz", hash = "sha256:7f6b125602ac6d743e523ae0bfa71e1a697a2f5534064528c6ff84c2f7c2fc7f"}, {file = "pytest_mock-3.11.1-py3-none-any.whl", hash = "sha256:21c279fff83d70763b05f8874cc9cfb3fcacd6d354247a976f9529d19f9acf39"}, ] [package.dependencies] pytest = ">=5.0" [package.extras] dev = ["pre-commit", "pytest-asyncio", "tox"] [[package]] name = "python-dateutil" version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, ] [package.dependencies] six = ">=1.5" [[package]] name = "pytz" version = "2024.1" description = "World timezone definitions, modern and historical" optional = false python-versions = "*" files = [ {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, ] [[package]] name = "pyyaml" version = "6.0.1" description = "YAML parser and emitter for Python" optional = false python-versions = ">=3.6" files = [ {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, ] [[package]] name = "requests" version = "2.31.0" description = "Python HTTP for Humans." optional = false python-versions = ">=3.7" files = [ {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, ] [package.dependencies] certifi = ">=2017.4.17" charset-normalizer = ">=2,<4" idna = ">=2.5,<4" urllib3 = ">=1.21.1,<3" [package.extras] socks = ["PySocks (>=1.5.6,!=1.5.7)"] use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "ruff" version = "0.3.5" description = "An extremely fast Python linter and code formatter, written in Rust." optional = false python-versions = ">=3.7" files = [ {file = "ruff-0.3.5-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:aef5bd3b89e657007e1be6b16553c8813b221ff6d92c7526b7e0227450981eac"}, {file = "ruff-0.3.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:89b1e92b3bd9fca249153a97d23f29bed3992cff414b222fcd361d763fc53f12"}, {file = "ruff-0.3.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e55771559c89272c3ebab23326dc23e7f813e492052391fe7950c1a5a139d89"}, {file = "ruff-0.3.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:dabc62195bf54b8a7876add6e789caae0268f34582333cda340497c886111c39"}, {file = "ruff-0.3.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a05f3793ba25f194f395578579c546ca5d83e0195f992edc32e5907d142bfa3"}, {file = "ruff-0.3.5-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:dfd3504e881082959b4160ab02f7a205f0fadc0a9619cc481982b6837b2fd4c0"}, {file = "ruff-0.3.5-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:87258e0d4b04046cf1d6cc1c56fadbf7a880cc3de1f7294938e923234cf9e498"}, {file = "ruff-0.3.5-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:712e71283fc7d9f95047ed5f793bc019b0b0a29849b14664a60fd66c23b96da1"}, {file = "ruff-0.3.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a532a90b4a18d3f722c124c513ffb5e5eaff0cc4f6d3aa4bda38e691b8600c9f"}, {file = "ruff-0.3.5-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:122de171a147c76ada00f76df533b54676f6e321e61bd8656ae54be326c10296"}, {file = "ruff-0.3.5-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:d80a6b18a6c3b6ed25b71b05eba183f37d9bc8b16ace9e3d700997f00b74660b"}, {file = "ruff-0.3.5-py3-none-musllinux_1_2_i686.whl", hash = "sha256:a7b6e63194c68bca8e71f81de30cfa6f58ff70393cf45aab4c20f158227d5936"}, {file = "ruff-0.3.5-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:a759d33a20c72f2dfa54dae6e85e1225b8e302e8ac655773aff22e542a300985"}, {file = "ruff-0.3.5-py3-none-win32.whl", hash = "sha256:9d8605aa990045517c911726d21293ef4baa64f87265896e491a05461cae078d"}, {file = "ruff-0.3.5-py3-none-win_amd64.whl", hash = "sha256:dc56bb16a63c1303bd47563c60482a1512721053d93231cf7e9e1c6954395a0e"}, {file = "ruff-0.3.5-py3-none-win_arm64.whl", hash = "sha256:faeeae9905446b975dcf6d4499dc93439b131f1443ee264055c5716dd947af55"}, {file = "ruff-0.3.5.tar.gz", hash = "sha256:a067daaeb1dc2baf9b82a32dae67d154d95212080c80435eb052d95da647763d"}, ] [[package]] name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] [[package]] name = "snowballstemmer" version = "2.2.0" description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms." optional = false python-versions = "*" files = [ {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, ] [[package]] name = "sphinx" version = "6.2.1" description = "Python documentation generator" optional = false python-versions = ">=3.8" files = [ {file = "Sphinx-6.2.1.tar.gz", hash = "sha256:6d56a34697bb749ffa0152feafc4b19836c755d90a7c59b72bc7dfd371b9cc6b"}, {file = "sphinx-6.2.1-py3-none-any.whl", hash = "sha256:97787ff1fa3256a3eef9eda523a63dbf299f7b47e053cfcf684a1c2a8380c912"}, ] [package.dependencies] alabaster = ">=0.7,<0.8" babel = ">=2.9" colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} docutils = ">=0.18.1,<0.20" imagesize = ">=1.3" importlib-metadata = {version = ">=4.8", markers = "python_version < \"3.10\""} Jinja2 = ">=3.0" packaging = ">=21.0" Pygments = ">=2.13" requests = ">=2.25.0" snowballstemmer = ">=2.0" sphinxcontrib-applehelp = "*" sphinxcontrib-devhelp = "*" sphinxcontrib-htmlhelp = ">=2.0.0" sphinxcontrib-jsmath = "*" sphinxcontrib-qthelp = "*" sphinxcontrib-serializinghtml = ">=1.1.5" [package.extras] docs = ["sphinxcontrib-websupport"] lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-simplify", "isort", "mypy (>=0.990)", "ruff", "sphinx-lint", "types-requests"] test = ["cython", "filelock", "html5lib", "pytest (>=4.6)"] [[package]] name = "sphinx-rtd-theme" version = "1.3.0" description = "Read the Docs theme for Sphinx" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ {file = "sphinx_rtd_theme-1.3.0-py2.py3-none-any.whl", hash = "sha256:46ddef89cc2416a81ecfbeaceab1881948c014b1b6e4450b815311a89fb977b0"}, {file = "sphinx_rtd_theme-1.3.0.tar.gz", hash = "sha256:590b030c7abb9cf038ec053b95e5380b5c70d61591eb0b552063fbe7c41f0931"}, ] [package.dependencies] docutils = "<0.19" sphinx = ">=1.6,<8" sphinxcontrib-jquery = ">=4,<5" [package.extras] dev = ["bump2version", "sphinxcontrib-httpdomain", "transifex-client", "wheel"] [[package]] name = "sphinxcontrib-applehelp" version = "1.0.4" description = "sphinxcontrib-applehelp is a Sphinx extension which outputs Apple help books" optional = false python-versions = ">=3.8" files = [ {file = "sphinxcontrib-applehelp-1.0.4.tar.gz", hash = "sha256:828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e"}, {file = "sphinxcontrib_applehelp-1.0.4-py3-none-any.whl", hash = "sha256:29d341f67fb0f6f586b23ad80e072c8e6ad0b48417db2bde114a4c9746feb228"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] test = ["pytest"] [[package]] name = "sphinxcontrib-devhelp" version = "1.0.2" description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document." optional = false python-versions = ">=3.5" files = [ {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] test = ["pytest"] [[package]] name = "sphinxcontrib-htmlhelp" version = "2.0.1" description = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files" optional = false python-versions = ">=3.8" files = [ {file = "sphinxcontrib-htmlhelp-2.0.1.tar.gz", hash = "sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff"}, {file = "sphinxcontrib_htmlhelp-2.0.1-py3-none-any.whl", hash = "sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] test = ["html5lib", "pytest"] [[package]] name = "sphinxcontrib-jquery" version = "4.1" description = "Extension to include jQuery on newer Sphinx releases" optional = false python-versions = ">=2.7" files = [ {file = "sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a"}, {file = "sphinxcontrib_jquery-4.1-py2.py3-none-any.whl", hash = "sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae"}, ] [package.dependencies] Sphinx = ">=1.8" [[package]] name = "sphinxcontrib-jsmath" version = "1.0.1" description = "A sphinx extension which renders display math in HTML via JavaScript" optional = false python-versions = ">=3.5" files = [ {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, ] [package.extras] test = ["flake8", "mypy", "pytest"] [[package]] name = "sphinxcontrib-qthelp" version = "1.0.3" description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document." optional = false python-versions = ">=3.5" files = [ {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] test = ["pytest"] [[package]] name = "sphinxcontrib-serializinghtml" version = "1.1.5" description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)." optional = false python-versions = ">=3.5" files = [ {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, ] [package.extras] lint = ["docutils-stubs", "flake8", "mypy"] test = ["pytest"] [[package]] name = "tomli" version = "2.0.1" description = "A lil' TOML parser" optional = false python-versions = ">=3.7" files = [ {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, ] [[package]] name = "tox" version = "4.8.0" description = "tox is a generic virtualenv management and test command line tool" optional = false python-versions = ">=3.7" files = [ {file = "tox-4.8.0-py3-none-any.whl", hash = "sha256:4991305a56983d750a0d848a34242be290452aa88d248f1bf976e4036ee8b213"}, {file = "tox-4.8.0.tar.gz", hash = "sha256:2adacf435b12ccf10b9dfa9975d8ec0afd7cbae44d300463140d2117b968037b"}, ] [package.dependencies] cachetools = ">=5.3.1" chardet = ">=5.1" colorama = ">=0.4.6" filelock = ">=3.12.2" importlib-metadata = {version = ">=6.7", markers = "python_version < \"3.8\""} packaging = ">=23.1" platformdirs = ">=3.9.1" pluggy = ">=1.2" pyproject-api = ">=1.5.3" tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} typing-extensions = {version = ">=4.7.1", markers = "python_version < \"3.8\""} virtualenv = ">=20.24.1" [package.extras] docs = ["furo (>=2023.5.20)", "sphinx (>=7.0.1)", "sphinx-argparse-cli (>=1.11.1)", "sphinx-autodoc-typehints (>=1.23.3,!=1.23.4)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2023.4.21)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] testing = ["build[virtualenv] (>=0.10)", "covdefaults (>=2.3)", "detect-test-pollution (>=1.1.1)", "devpi-process (>=0.3.1)", "diff-cover (>=7.7)", "distlib (>=0.3.7)", "flaky (>=3.7)", "hatch-vcs (>=0.3)", "hatchling (>=1.17.1)", "psutil (>=5.9.5)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest-xdist (>=3.3.1)", "re-assert (>=1.1)", "time-machine (>=2.10)", "wheel (>=0.40)"] [[package]] name = "typed-ast" version = "1.5.5" description = "a fork of Python 2 and 3 ast modules with type comment support" optional = false python-versions = ">=3.6" files = [ {file = "typed_ast-1.5.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4bc1efe0ce3ffb74784e06460f01a223ac1f6ab31c6bc0376a21184bf5aabe3b"}, {file = "typed_ast-1.5.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5f7a8c46a8b333f71abd61d7ab9255440d4a588f34a21f126bbfc95f6049e686"}, {file = "typed_ast-1.5.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:597fc66b4162f959ee6a96b978c0435bd63791e31e4f410622d19f1686d5e769"}, {file = "typed_ast-1.5.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d41b7a686ce653e06c2609075d397ebd5b969d821b9797d029fccd71fdec8e04"}, {file = "typed_ast-1.5.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:5fe83a9a44c4ce67c796a1b466c270c1272e176603d5e06f6afbc101a572859d"}, {file = "typed_ast-1.5.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d5c0c112a74c0e5db2c75882a0adf3133adedcdbfd8cf7c9d6ed77365ab90a1d"}, {file = "typed_ast-1.5.5-cp310-cp310-win_amd64.whl", hash = "sha256:e1a976ed4cc2d71bb073e1b2a250892a6e968ff02aa14c1f40eba4f365ffec02"}, {file = "typed_ast-1.5.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c631da9710271cb67b08bd3f3813b7af7f4c69c319b75475436fcab8c3d21bee"}, {file = "typed_ast-1.5.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b445c2abfecab89a932b20bd8261488d574591173d07827c1eda32c457358b18"}, {file = "typed_ast-1.5.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc95ffaaab2be3b25eb938779e43f513e0e538a84dd14a5d844b8f2932593d88"}, {file = "typed_ast-1.5.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61443214d9b4c660dcf4b5307f15c12cb30bdfe9588ce6158f4a005baeb167b2"}, {file = "typed_ast-1.5.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6eb936d107e4d474940469e8ec5b380c9b329b5f08b78282d46baeebd3692dc9"}, {file = "typed_ast-1.5.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e48bf27022897577d8479eaed64701ecaf0467182448bd95759883300ca818c8"}, {file = "typed_ast-1.5.5-cp311-cp311-win_amd64.whl", hash = "sha256:83509f9324011c9a39faaef0922c6f720f9623afe3fe220b6d0b15638247206b"}, {file = "typed_ast-1.5.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:44f214394fc1af23ca6d4e9e744804d890045d1643dd7e8229951e0ef39429b5"}, {file = "typed_ast-1.5.5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:118c1ce46ce58fda78503eae14b7664163aa735b620b64b5b725453696f2a35c"}, {file = "typed_ast-1.5.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be4919b808efa61101456e87f2d4c75b228f4e52618621c77f1ddcaae15904fa"}, {file = "typed_ast-1.5.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:fc2b8c4e1bc5cd96c1a823a885e6b158f8451cf6f5530e1829390b4d27d0807f"}, {file = "typed_ast-1.5.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:16f7313e0a08c7de57f2998c85e2a69a642e97cb32f87eb65fbfe88381a5e44d"}, {file = "typed_ast-1.5.5-cp36-cp36m-win_amd64.whl", hash = "sha256:2b946ef8c04f77230489f75b4b5a4a6f24c078be4aed241cfabe9cbf4156e7e5"}, {file = "typed_ast-1.5.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2188bc33d85951ea4ddad55d2b35598b2709d122c11c75cffd529fbc9965508e"}, {file = "typed_ast-1.5.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0635900d16ae133cab3b26c607586131269f88266954eb04ec31535c9a12ef1e"}, {file = "typed_ast-1.5.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:57bfc3cf35a0f2fdf0a88a3044aafaec1d2f24d8ae8cd87c4f58d615fb5b6311"}, {file = "typed_ast-1.5.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:fe58ef6a764de7b4b36edfc8592641f56e69b7163bba9f9c8089838ee596bfb2"}, {file = "typed_ast-1.5.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d09d930c2d1d621f717bb217bf1fe2584616febb5138d9b3e8cdd26506c3f6d4"}, {file = "typed_ast-1.5.5-cp37-cp37m-win_amd64.whl", hash = "sha256:d40c10326893ecab8a80a53039164a224984339b2c32a6baf55ecbd5b1df6431"}, {file = "typed_ast-1.5.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:fd946abf3c31fb50eee07451a6aedbfff912fcd13cf357363f5b4e834cc5e71a"}, {file = "typed_ast-1.5.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ed4a1a42df8a3dfb6b40c3d2de109e935949f2f66b19703eafade03173f8f437"}, {file = "typed_ast-1.5.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:045f9930a1550d9352464e5149710d56a2aed23a2ffe78946478f7b5416f1ede"}, {file = "typed_ast-1.5.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:381eed9c95484ceef5ced626355fdc0765ab51d8553fec08661dce654a935db4"}, {file = "typed_ast-1.5.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:bfd39a41c0ef6f31684daff53befddae608f9daf6957140228a08e51f312d7e6"}, {file = "typed_ast-1.5.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8c524eb3024edcc04e288db9541fe1f438f82d281e591c548903d5b77ad1ddd4"}, {file = "typed_ast-1.5.5-cp38-cp38-win_amd64.whl", hash = "sha256:7f58fabdde8dcbe764cef5e1a7fcb440f2463c1bbbec1cf2a86ca7bc1f95184b"}, {file = "typed_ast-1.5.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:042eb665ff6bf020dd2243307d11ed626306b82812aba21836096d229fdc6a10"}, {file = "typed_ast-1.5.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:622e4a006472b05cf6ef7f9f2636edc51bda670b7bbffa18d26b255269d3d814"}, {file = "typed_ast-1.5.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1efebbbf4604ad1283e963e8915daa240cb4bf5067053cf2f0baadc4d4fb51b8"}, {file = "typed_ast-1.5.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0aefdd66f1784c58f65b502b6cf8b121544680456d1cebbd300c2c813899274"}, {file = "typed_ast-1.5.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:48074261a842acf825af1968cd912f6f21357316080ebaca5f19abbb11690c8a"}, {file = "typed_ast-1.5.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:429ae404f69dc94b9361bb62291885894b7c6fb4640d561179548c849f8492ba"}, {file = "typed_ast-1.5.5-cp39-cp39-win_amd64.whl", hash = "sha256:335f22ccb244da2b5c296e6f96b06ee9bed46526db0de38d2f0e5a6597b81155"}, {file = "typed_ast-1.5.5.tar.gz", hash = "sha256:94282f7a354f36ef5dbce0ef3467ebf6a258e370ab33d5b40c249fa996e590dd"}, ] [[package]] name = "typing-extensions" version = "4.7.1" description = "Backported and Experimental Type Hints for Python 3.7+" optional = false python-versions = ">=3.7" files = [ {file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"}, {file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"}, ] [[package]] name = "urllib3" version = "2.2.1" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.8" files = [ {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, ] [package.extras] brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" version = "20.25.1" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.7" files = [ {file = "virtualenv-20.25.1-py3-none-any.whl", hash = "sha256:961c026ac520bac5f69acb8ea063e8a4f071bcc9457b9c1f28f6b085c511583a"}, {file = "virtualenv-20.25.1.tar.gz", hash = "sha256:e08e13ecdca7a0bd53798f356d5831434afa5b07b93f0abdf0797b7a06ffe197"}, ] [package.dependencies] distlib = ">=0.3.7,<1" filelock = ">=3.12.2,<4" importlib-metadata = {version = ">=6.6", markers = "python_version < \"3.8\""} platformdirs = ">=3.9.1,<5" [package.extras] docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] [[package]] name = "watchdog" version = "3.0.0" description = "Filesystem events monitoring" optional = false python-versions = ">=3.7" files = [ {file = "watchdog-3.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:336adfc6f5cc4e037d52db31194f7581ff744b67382eb6021c868322e32eef41"}, {file = "watchdog-3.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a70a8dcde91be523c35b2bf96196edc5730edb347e374c7de7cd20c43ed95397"}, {file = "watchdog-3.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:adfdeab2da79ea2f76f87eb42a3ab1966a5313e5a69a0213a3cc06ef692b0e96"}, {file = "watchdog-3.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2b57a1e730af3156d13b7fdddfc23dea6487fceca29fc75c5a868beed29177ae"}, {file = "watchdog-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7ade88d0d778b1b222adebcc0927428f883db07017618a5e684fd03b83342bd9"}, {file = "watchdog-3.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7e447d172af52ad204d19982739aa2346245cc5ba6f579d16dac4bfec226d2e7"}, {file = "watchdog-3.0.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:9fac43a7466eb73e64a9940ac9ed6369baa39b3bf221ae23493a9ec4d0022674"}, {file = "watchdog-3.0.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8ae9cda41fa114e28faf86cb137d751a17ffd0316d1c34ccf2235e8a84365c7f"}, {file = "watchdog-3.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:25f70b4aa53bd743729c7475d7ec41093a580528b100e9a8c5b5efe8899592fc"}, {file = "watchdog-3.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4f94069eb16657d2c6faada4624c39464f65c05606af50bb7902e036e3219be3"}, {file = "watchdog-3.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7c5f84b5194c24dd573fa6472685b2a27cc5a17fe5f7b6fd40345378ca6812e3"}, {file = "watchdog-3.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3aa7f6a12e831ddfe78cdd4f8996af9cf334fd6346531b16cec61c3b3c0d8da0"}, {file = "watchdog-3.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:233b5817932685d39a7896b1090353fc8efc1ef99c9c054e46c8002561252fb8"}, {file = "watchdog-3.0.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:13bbbb462ee42ec3c5723e1205be8ced776f05b100e4737518c67c8325cf6100"}, {file = "watchdog-3.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8f3ceecd20d71067c7fd4c9e832d4e22584318983cabc013dbf3f70ea95de346"}, {file = "watchdog-3.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c9d8c8ec7efb887333cf71e328e39cffbf771d8f8f95d308ea4125bf5f90ba64"}, {file = "watchdog-3.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:0e06ab8858a76e1219e68c7573dfeba9dd1c0219476c5a44d5333b01d7e1743a"}, {file = "watchdog-3.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:d00e6be486affb5781468457b21a6cbe848c33ef43f9ea4a73b4882e5f188a44"}, {file = "watchdog-3.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:c07253088265c363d1ddf4b3cdb808d59a0468ecd017770ed716991620b8f77a"}, {file = "watchdog-3.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:5113334cf8cf0ac8cd45e1f8309a603291b614191c9add34d33075727a967709"}, {file = "watchdog-3.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:51f90f73b4697bac9c9a78394c3acbbd331ccd3655c11be1a15ae6fe289a8c83"}, {file = "watchdog-3.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:ba07e92756c97e3aca0912b5cbc4e5ad802f4557212788e72a72a47ff376950d"}, {file = "watchdog-3.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:d429c2430c93b7903914e4db9a966c7f2b068dd2ebdd2fa9b9ce094c7d459f33"}, {file = "watchdog-3.0.0-py3-none-win32.whl", hash = "sha256:3ed7c71a9dccfe838c2f0b6314ed0d9b22e77d268c67e015450a29036a81f60f"}, {file = "watchdog-3.0.0-py3-none-win_amd64.whl", hash = "sha256:4c9956d27be0bb08fc5f30d9d0179a855436e655f046d288e2bcc11adfae893c"}, {file = "watchdog-3.0.0-py3-none-win_ia64.whl", hash = "sha256:5d9f3a10e02d7371cd929b5d8f11e87d4bad890212ed3901f9b4d68767bee759"}, {file = "watchdog-3.0.0.tar.gz", hash = "sha256:4d98a320595da7a7c5a18fc48cb633c2e73cda78f93cac2ef42d42bf609a33f9"}, ] [package.extras] watchmedo = ["PyYAML (>=3.10)"] [[package]] name = "zipp" version = "3.15.0" description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.7" files = [ {file = "zipp-3.15.0-py3-none-any.whl", hash = "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556"}, {file = "zipp-3.15.0.tar.gz", hash = "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b"}, ] [package.extras] docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] [metadata] lock-version = "2.0" python-versions = ">=3.7.0,<4.0.0" content-hash = "b85cd68e6f3373c50d91aafd93f92785c88a39e65e92ec33c26503527508764c" pytest-watcher-0.4.3/pyproject.toml000066400000000000000000000027651466365772000174470ustar00rootroot00000000000000[tool.poetry] name = "pytest-watcher" version = "0.4.3" description = "Automatically rerun your tests on file modifications" authors = ["Olzhas Arystanov "] license = "MIT" readme = "README.md" homepage = "https://github.com/olzhasar/pytest-watcher" repository = "https://github.com/olzhasar/pytest-watcher" documentation = "https://pytest-watcher.readthedocs.io/en/latest/" keywords = ["pytest", "watch", "watcher"] classifiers = [ "Development Status :: 4 - Beta", "Framework :: Pytest", "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: Testing", "Topic :: Utilities", ] include = ["LICENSE"] [tool.poetry.scripts] pytest-watcher = "pytest_watcher:run" ptw = "pytest_watcher:run" [tool.poetry.dependencies] python = ">=3.7.0,<4.0.0" watchdog = ">=2.0.0" tomli = { version = "^2.0.1", python = "<3.11" } [tool.poetry.dev-dependencies] pytest = "*" ruff = "*" mypy = "*" pytest-mock = "*" freezegun = "*" tox = "*" sphinx = { version = "*", python = ">=3.8" } coverage = { extras = ["toml"], version = "*" } myst-parser = "^1.0.0" sphinx-rtd-theme = "^1.2.2" [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" [tool.coverage.run] source = ["pytest_watcher"] omit = ['pytest_watcher/__main__.py'] [tool.ruff] line-length = 89 lint.extend-select = ["I"] [tool.mypy] python_version = "3.7" ignore_missing_imports = true exclude = ".venv" pytest-watcher-0.4.3/pytest_watcher/000077500000000000000000000000001466365772000175665ustar00rootroot00000000000000pytest-watcher-0.4.3/pytest_watcher/__init__.py000066400000000000000000000001141466365772000216730ustar00rootroot00000000000000from .watcher import VERSION, run __version__ = VERSION __all__ = ["run"] pytest-watcher-0.4.3/pytest_watcher/__main__.py000066400000000000000000000001211466365772000216520ustar00rootroot00000000000000from .watcher import run if __name__ == "__main__": raise SystemExit(run()) pytest-watcher-0.4.3/pytest_watcher/commands.py000066400000000000000000000101371466365772000217430ustar00rootroot00000000000000from __future__ import annotations import abc import sys from typing import Dict, Optional, Type from .config import Config from .terminal import Terminal from .trigger import Trigger class Manager: _registry: Dict[str, Command] = {} @classmethod def list_commands(cls): return cls._registry.values() @classmethod def get_command(cls, character: str) -> Optional[Command]: return cls._registry.get(character) @classmethod def register(cls, command: Type[Command]): if command.character in cls._registry: raise ValueError(f"Duplicate character {repr(command.character)}") cls._registry[command.character] = command() @classmethod def run_command( cls, character: str, trigger: Trigger, term: Terminal, config: Config ) -> None: command = cls.get_command(character) if command: command.run(trigger, term, config) class Command(abc.ABC): character: str caption: str description: str show_in_menu: bool = True def __init_subclass__(cls, **kwargs) -> None: for field in ("character", "caption", "description"): if not hasattr(cls, field): raise NotImplementedError(f"{cls.__name__}: {field} not specified") super().__init_subclass__(**kwargs) Manager.register(cls) @abc.abstractmethod def run(self, trigger: Trigger, term: Terminal, config: Config) -> None: """ Modify runner_args in-place if needed and return a bool indicating whether tests should be triggered instantly """ class OpenMenuCommand(Command): character = "w" caption = "w" description = "show menu" show_in_menu = False def run(self, trigger: Trigger, term: Terminal, config: Config) -> None: term.clear() term.print_menu(config.runner_args) class InvokeCommand(Command): character = "\n" caption = "Enter" description = "Invoke test runner" def run(self, trigger: Trigger, term: Terminal, config: Config) -> None: trigger.emit_now() class ResetRunnerArgsCommand(Command): character = "r" caption = "r" description = "reset all runner args" def run(self, trigger: Trigger, term: Terminal, config: Config) -> None: config.runner_args.clear() trigger.emit_now() class ChangeRunnerArgsCommand(Command): character = "c" caption = "c" description = "change runner args" def run(self, trigger: Trigger, term: Terminal, config: Config) -> None: term.reset() raw = input("\nEnter new runner args: ") new_args = raw.strip().split() config.runner_args.clear() config.runner_args.extend(new_args) trigger.emit_now() class OnlyFailedCommand(Command): character = "f" caption = "f" description = "run only failed tests (--lf)" def run(self, trigger: Trigger, term: Terminal, config: Config) -> None: if "--lf" not in config.runner_args: config.runner_args.append("--lf") trigger.emit_now() class PDBCommand(Command): character = "p" caption = "p" description = "drop to pdb on fail (--pdb)" def run(self, trigger: Trigger, term: Terminal, config: Config) -> None: if "--pdb" not in config.runner_args: config.runner_args.append("--pdb") trigger.emit_now() class VerboseCommand(Command): character = "v" caption = "v" description = "increase verbosity (-v)" def run(self, trigger: Trigger, term: Terminal, config: Config) -> None: if "-v" not in config.runner_args: config.runner_args.append("-v") trigger.emit_now() class EraseScreenCommand(Command): character = "e" caption = "e" description = "Erase terminal screen" def run(self, trigger: Trigger, term: Terminal, config: Config) -> None: term.clear() term.print_short_menu(config.runner_args) class QuitCommand(Command): character = "q" caption = "q" description = "quit pytest-watcher" def run(self, trigger: Trigger, term: Terminal, config: Config) -> None: sys.exit(0) pytest-watcher-0.4.3/pytest_watcher/config.py000066400000000000000000000045541466365772000214150ustar00rootroot00000000000000from argparse import Namespace from dataclasses import dataclass, field from pathlib import Path from typing import List, Mapping, Optional from .constants import DEFAULT_DELAY try: import tomllib except ImportError: import tomli as tomllib CONFIG_SECTION_NAME = "pytest-watcher" CLI_FIELDS = {"now", "clear", "delay", "runner", "patterns", "ignore_patterns"} CONFIG_FIELDS = CLI_FIELDS | {"runner_args"} @dataclass class Config: path: Path now: bool = False clear: bool = False delay: float = DEFAULT_DELAY runner: str = "pytest" runner_args: List[str] = field(default_factory=list) patterns: List[str] = field(default_factory=list) ignore_patterns: List[str] = field(default_factory=list) @classmethod def create( cls, namespace: Namespace, extra_args: Optional[List[str]] = None ) -> "Config": instance = cls(path=namespace.path) config_path = find_config(namespace.path) if config_path: parsed = parse_config(config_path) instance._update_from_mapping(parsed) instance._update_from_namespace(namespace, extra_args or []) return instance def _update_from_mapping(self, data: Mapping): for key, val in data.items(): setattr(self, key, val) def _update_from_namespace( self, namespace: Namespace, runner_args: Optional[List[str]] ): self.path = namespace.path for f in CLI_FIELDS: val = getattr(namespace, f) if val: setattr(self, f, val) if runner_args: self.runner_args = runner_args def find_config(cwd: Path) -> Optional[Path]: filename = "pyproject.toml" for path in (cwd, *cwd.parents): config_path = path.joinpath(filename) if config_path.exists(): return config_path return None def parse_config(path: Path) -> Mapping: with open(path, "rb") as f: try: data = tomllib.load(f) except Exception as exc: raise SystemExit(f"Error parsing pyproject.toml\n{exc}") try: data = data["tool"][CONFIG_SECTION_NAME] except KeyError: return {} for key in data.keys(): if key not in CONFIG_FIELDS: raise SystemExit( f"Error parsing pyproject.toml.\nUnrecognized option: {key}" ) return data pytest-watcher-0.4.3/pytest_watcher/constants.py000066400000000000000000000000701466365772000221510ustar00rootroot00000000000000VERSION = "0.4.3" DEFAULT_DELAY = 0.2 LOOP_DELAY = 0.1 pytest-watcher-0.4.3/pytest_watcher/event_handler.py000066400000000000000000000032421466365772000227570ustar00rootroot00000000000000from __future__ import annotations import logging from typing import List, Optional from watchdog import events from watchdog.utils.patterns import match_any_paths from .trigger import Trigger trigger = Trigger() class EventHandler: EVENTS_WATCHED = { events.EVENT_TYPE_CREATED, events.EVENT_TYPE_DELETED, events.EVENT_TYPE_MODIFIED, events.EVENT_TYPE_MOVED, } def __init__( self, trigger: Trigger, patterns: Optional[List[str]] = None, ignore_patterns: Optional[List[str]] = None, ): self._patterns = patterns or ["*.py"] self._ignore_patterns = ignore_patterns or [] self._trigger = trigger @property def patterns(self) -> List[str]: return self._patterns @property def ignore_patterns(self) -> List[str]: return self._ignore_patterns def _is_event_watched(self, event: events.FileSystemEvent) -> bool: if event.event_type not in self.EVENTS_WATCHED: return False paths = [event.src_path] if hasattr(event, "dest_path"): # For file moved type events we are also interested in the destination paths.append(event.dest_path) return match_any_paths( paths, included_patterns=self.patterns, excluded_patterns=self.ignore_patterns, ) def dispatch(self, event: events.FileSystemEvent) -> None: if self._is_event_watched(event): self._trigger.emit() logging.info(f"{event.src_path} {event.event_type}") else: logging.debug(f"IGNORED event: {event.event_type} src: {event.src_path}") pytest-watcher-0.4.3/pytest_watcher/parse.py000066400000000000000000000034761466365772000212640ustar00rootroot00000000000000import argparse from pathlib import Path from typing import List, Sequence, Tuple from .constants import DEFAULT_DELAY, VERSION def parse_arguments(args: Sequence[str]) -> Tuple[argparse.Namespace, List[str]]: def _parse_patterns(arg: str): return arg.split(",") parser = argparse.ArgumentParser( prog="pytest_watcher", description=""" Watch the for file changes and trigger the test runner (pytest).\n Additional arguments are passed directly to the test runner. """, allow_abbrev=False, ) parser.add_argument("path", type=Path, help="The path to watch for file changes.") parser.add_argument( "--now", action="store_true", help="Trigger the test run immediately" ) parser.add_argument( "--clear", action="store_true", help="Clear the terminal screen before test run", ) parser.add_argument( "--delay", type=float, required=False, help="The delay (in seconds) before triggering " f"the test run (default: {DEFAULT_DELAY})", ) parser.add_argument( "--runner", type=str, required=False, help="Specify the executable for running the tests (default: pytest)", ) parser.add_argument( "--patterns", type=_parse_patterns, required=False, help="File patterns to watch, specified as comma-separated " "Unix-style patterns (default: '*.py')", ) parser.add_argument( "--ignore-patterns", type=_parse_patterns, required=False, help="File patterns to ignore, specified as comma-separated " "Unix-style patterns (default: '')", ) parser.add_argument("--version", action="version", version=VERSION) return parser.parse_known_args(args) pytest-watcher-0.4.3/pytest_watcher/terminal.py000066400000000000000000000040521466365772000217540ustar00rootroot00000000000000import abc import logging import os import select import sys from typing import List, Optional try: import termios import tty except ImportError: pass class Terminal(abc.ABC): def clear(self): pass def print(self, msg: str) -> None: pass def print_header(self, runner_args: List[str]): self.print(f"[pytest-watcher]\nCurrent runner args: [{' '.join(runner_args)}]") def print_short_menu(self, runner_args: List[str]) -> None: self.print_header(runner_args) self.print("\nPress w to show menu") def print_menu(self, runner_args: List[str]) -> None: from . import commands self.print_header(runner_args) self.print("\n\nControls:\n") for command in commands.Manager.list_commands(): if command.show_in_menu: self.print(f"> {command.caption.ljust(5)} : {command.description}\n") def enter_capturing_mode(self) -> None: pass def capture_keystroke(self) -> Optional[str]: pass def reset(self) -> None: pass class PosixTerminal(Terminal): def __init__(self) -> None: self._initial_state = termios.tcgetattr(sys.stdin.fileno()) def print(self, msg: str) -> None: sys.stdout.write(msg) def clear(self) -> None: sys.stdout.write("\033c") sys.stdout.flush() def enter_capturing_mode(self) -> None: sys.stdin.flush() tty.setcbreak(sys.stdin.fileno()) def capture_keystroke(self) -> Optional[str]: if select.select([sys.stdin], [], [], 0)[0]: return sys.stdin.read(1) return None def reset(self) -> None: termios.tcsetattr(sys.stdin, termios.TCSADRAIN, self._initial_state) class DummyTerminal(Terminal): pass def get_terminal() -> Terminal: if os.name == "posix": try: return PosixTerminal() except Exception: logging.exception( "Unable to initialize terminal state\nInteractive mode is disabled" ) return DummyTerminal() pytest-watcher-0.4.3/pytest_watcher/trigger.py000066400000000000000000000011651466365772000216060ustar00rootroot00000000000000import threading import time class Trigger: _value: float _lock: threading.Lock def __init__(self, delay: float = 0.0): self._lock = threading.Lock() self._value = 0 self._delay = delay def emit(self): with self._lock: self._value = time.time() + self._delay def emit_now(self): with self._lock: self._value = time.time() def is_active(self): return self._value != 0 def release(self): with self._lock: self._value = 0 def check(self): return self._value > 0 and time.time() > self._value pytest-watcher-0.4.3/pytest_watcher/watcher.py000066400000000000000000000036521466365772000216030ustar00rootroot00000000000000from __future__ import annotations import logging import subprocess import sys import time from watchdog.observers import Observer from . import commands from .config import Config from .constants import LOOP_DELAY, VERSION from .event_handler import EventHandler from .parse import parse_arguments from .terminal import Terminal, get_terminal from .trigger import Trigger logging.basicConfig(level=logging.INFO, format="[ptw] %(message)s") def main_loop(trigger: Trigger, config: Config, term: Terminal) -> None: if trigger.check(): term.reset() if config.clear: term.clear() try: subprocess.run([config.runner, *config.runner_args]) finally: term.enter_capturing_mode() term.print_short_menu(config.runner_args) trigger.release() key = term.capture_keystroke() if key: commands.Manager.run_command(key, trigger, term, config) time.sleep(LOOP_DELAY) def run(): term = get_terminal() trigger = Trigger() namespace, runner_args = parse_arguments(sys.argv[1:]) config = Config.create(namespace=namespace, extra_args=runner_args) event_handler = EventHandler( trigger, patterns=config.patterns, ignore_patterns=config.ignore_patterns ) observer = Observer() observer.schedule(event_handler, config.path, recursive=True) observer.start() _print_intro(config) term.enter_capturing_mode() if config.now: trigger.emit() else: term.print_menu(config.runner_args) try: while True: main_loop(trigger, config, term) finally: observer.stop() observer.join() term.reset() def _print_intro(config: Config) -> None: sys.stdout.write(f"pytest-watcher version {VERSION}\n") sys.stdout.write(f"Runner command: {config.runner}\n") sys.stdout.write(f"Waiting for file changes in {config.path.absolute()}\n") pytest-watcher-0.4.3/tests/000077500000000000000000000000001466365772000156635ustar00rootroot00000000000000pytest-watcher-0.4.3/tests/__init__.py000066400000000000000000000000001466365772000177620ustar00rootroot00000000000000pytest-watcher-0.4.3/tests/conftest.py000066400000000000000000000033561466365772000200710ustar00rootroot00000000000000from pathlib import Path from unittest.mock import MagicMock import pytest from pytest_mock import MockerFixture from pytest_watcher.config import Config from pytest_watcher.terminal import Terminal from pytest_watcher.trigger import Trigger @pytest.fixture def trigger(): return Trigger() @pytest.fixture() def mock_subprocess_run(mocker: MockerFixture): return mocker.patch("pytest_watcher.watcher.subprocess.run", autospec=True) @pytest.fixture(autouse=True) def mock_time_sleep(mocker: MockerFixture): return mocker.patch("pytest_watcher.watcher.time.sleep", autospec=True) @pytest.fixture def mock_observer(mocker: MockerFixture): return mocker.patch("pytest_watcher.watcher.Observer", autospec=True) @pytest.fixture def mock_main_loop(mocker: MockerFixture): mock = mocker.patch("pytest_watcher.watcher.main_loop", autospec=True) mock.side_effect = InterruptedError return mock @pytest.fixture(scope="session") def tmp_path() -> Path: return Path("tests/tmp") @pytest.fixture(scope="session", autouse=True) def create_tmp_dir(tmp_path: Path): tmp_path.mkdir(exist_ok=True) @pytest.fixture def pyproject_toml_path(tmp_path: Path): path = tmp_path.joinpath("pyproject.toml") path.touch() yield path path.unlink() @pytest.fixture def config(): return Config(path=Path()) @pytest.fixture def mock_run_command(mocker: MockerFixture): return mocker.patch("pytest_watcher.commands.Manager.run_command", autospec=True) @pytest.fixture def mock_terminal(mocker: MockerFixture): return MagicMock(spec=Terminal) @pytest.fixture(autouse=True) def _patch_get_terminal(mocker: MockerFixture, mock_terminal: MagicMock): mocker.patch("pytest_watcher.watcher.get_terminal", mock_terminal) pytest-watcher-0.4.3/tests/test_commands.py000066400000000000000000000015441466365772000211010ustar00rootroot00000000000000from pytest_watcher import commands from pytest_watcher.config import Config from pytest_watcher.terminal import Terminal from pytest_watcher.trigger import Trigger def test_run_command(trigger: Trigger, config: Config, mock_terminal: Terminal): class DummyCommand(commands.Command): character = "0" caption = "0" description = "test" show_in_menu = False def __init__(self): self.invoked = False def run(self, trigger: Trigger, term: Terminal, config: Config) -> None: self.invoked = True command = commands.Manager.get_command("0") assert isinstance(command, DummyCommand) assert command.invoked is False commands.Manager.run_command("0", trigger, mock_terminal, config) assert command.invoked is True commands.Manager._registry.pop(DummyCommand.character) pytest-watcher-0.4.3/tests/test_config.py000066400000000000000000000103471466365772000205460ustar00rootroot00000000000000from argparse import Namespace from pathlib import Path import pytest from pytest_mock import MockerFixture from pytest_watcher.config import ( CLI_FIELDS, CONFIG_SECTION_NAME, find_config, parse_config, ) from pytest_watcher.constants import DEFAULT_DELAY from pytest_watcher.watcher import Config @pytest.fixture(autouse=True) def _patch_cwd(mocker: MockerFixture, tmp_path: Path): mock = mocker.patch("pytest_watcher.config.Path.cwd") mock.return_value = tmp_path @pytest.fixture def empty_namespace(tmp_path: Path): return Namespace( path=tmp_path, now=None, clear=None, delay=None, runner=None, patterns=None, ignore_patterns=None, ) @pytest.fixture def config(empty_namespace: Namespace) -> Config: return Config.create(empty_namespace) @pytest.fixture def pyproject_toml(pyproject_toml_path: Path) -> Path: pyproject_toml_path.write_text( f"[tool.{CONFIG_SECTION_NAME}]\n" "now = true\n" "delay = 999\n" "runner = 'tox'\n" "runner_args = ['--lf', '--nf']\n" "patterns = ['*.py', '.env']\n" "ignore_patterns = ['ignore.py']\n" ) return pyproject_toml_path @pytest.fixture def namespace(tmp_path: Path) -> Namespace: return Namespace( path=tmp_path, now=True, clear=True, delay=20, runner="tox", patterns=["*.py", ".env"], ignore_patterns=["main.py"], ) def test_default_values(config: Config): assert config.now is False assert config.delay == DEFAULT_DELAY assert config.runner == "pytest" assert config.runner_args == [] assert config.patterns == [] assert config.ignore_patterns == [] def test_cli_args(namespace: Namespace, tmp_path: Path): runner_args = ["--lf", "--nf"] config = Config.create(namespace=namespace, extra_args=runner_args) for f in CLI_FIELDS: assert getattr(config, f) == getattr(namespace, f) assert config.runner_args == runner_args def test_cli_args_none_values_are_skipped(tmp_path: Path): namespace = Namespace( path=tmp_path, now=None, clear=None, delay=None, runner=None, patterns=None, ignore_patterns=None, ) config = Config.create(namespace=namespace, extra_args=None) for f in CLI_FIELDS: assert getattr(config, f) is not None assert config.runner_args == [] def test_pyproject_toml(pyproject_toml: Path, config: Config): assert config.now is True assert config.delay == 999 assert config.runner == "tox" assert config.runner_args == ["--lf", "--nf"] assert config.patterns == ["*.py", ".env"] assert config.ignore_patterns == ["ignore.py"] def test_cli_args_preferred_over_pyproject_toml( pyproject_toml: Path, namespace: Namespace ): extra_args = ["--cli", "--args"] config = Config.create(namespace, extra_args=extra_args) for f in CLI_FIELDS: assert getattr(config, f) == getattr(namespace, f) assert config.runner_args == extra_args @pytest.mark.parametrize( ("work_dir"), [ Path(""), Path("test/"), Path("test/nested/dir/"), ], ) def test_find_config( tmp_path: Path, pyproject_toml_path: Path, work_dir: Path, mocker: MockerFixture ): work_dir = tmp_path.joinpath(work_dir) work_dir.mkdir(parents=True, exist_ok=True) got = find_config(tmp_path) assert got == pyproject_toml_path, "Config file not found" def test_parse_config_no_section(pyproject_toml_path: Path): pyproject_toml_path.write_text("[tool.another_section]\ndelay = 2\nrunner = 'tox'\n") got = parse_config(pyproject_toml_path) assert got == {} def test_parse_config_parse_error(pyproject_toml_path: Path): pyproject_toml_path.write_text( f"[tool.{CONFIG_SECTION_NAME}]\ndelay = 2\nrunner = invalid\n" ) with pytest.raises(SystemExit, match="Error parsing pyproject.toml"): parse_config(pyproject_toml_path) def test_parse_config_unrecognized_option(pyproject_toml_path: Path): pyproject_toml_path.write_text(f"[tool.{CONFIG_SECTION_NAME}]\nfoo = 'bar'\n") with pytest.raises(SystemExit, match="Unrecognized option"): parse_config(pyproject_toml_path) pytest-watcher-0.4.3/tests/test_event_handler.py000066400000000000000000000066651466365772000221270ustar00rootroot00000000000000from typing import List import pytest from watchdog import events from pytest_watcher import watcher @pytest.fixture def trigger(): return watcher.Trigger() @pytest.mark.parametrize("event_type", watcher.EventHandler.EVENTS_WATCHED) def test_event_types_watched(event_type, trigger: watcher.Trigger): event = events.FileSystemEvent("main.py") event.event_type = event_type handler = watcher.EventHandler(trigger) handler.dispatch(event) assert trigger.is_active() def test_event_types_not_watched(trigger: watcher.Trigger): event = events.FileClosedEvent("main.py") handler = watcher.EventHandler(trigger) handler.dispatch(event) assert not trigger.is_active() @pytest.mark.parametrize( "event_class", [events.FileSystemMovedEvent, events.FileMovedEvent] ) def test_file_moved_dest_watched(event_class, trigger: watcher.Trigger): event = event_class("main.tmp", "main.py") handler = watcher.EventHandler(trigger) handler.dispatch(event) assert trigger.is_active() @pytest.mark.parametrize( "event_class", [events.FileSystemMovedEvent, events.FileMovedEvent] ) def test_file_moved_dest_not_watched(event_class, trigger: watcher.Trigger): event = event_class("main.tmp", "main.temp") handler = watcher.EventHandler(trigger) handler.dispatch(event) assert not trigger.is_active() @pytest.mark.parametrize("path", ["main.py", "./main.py", "/home/project/main.py"]) def test_patterns_default_watched(trigger: watcher.Trigger, path: str): event = events.FileCreatedEvent(path) handler = watcher.EventHandler(trigger) handler.dispatch(event) assert trigger.is_active() @pytest.mark.parametrize("path", ["main.pyc", "sqlite.db", "/home/project/file.txt"]) def test_patterns_default_not_watched(trigger: watcher.Trigger, path: str): event = events.FileCreatedEvent(path) handler = watcher.EventHandler(trigger) handler.dispatch(event) assert not trigger.is_active() @pytest.mark.parametrize( ("patterns", "path"), [ (["*.txt"], "file.txt"), (["main.pyc"], "main.pyc"), (["/home/path/example.txt"], "/home/path/example.txt"), (["*some*.txt"], "/home/path/something.txt"), ], ) def test_patterns_custom_watched( trigger: watcher.Trigger, patterns: List[str], path: str ): event = events.FileCreatedEvent(path) handler = watcher.EventHandler(trigger, patterns=patterns) handler.dispatch(event) assert trigger.is_active() @pytest.mark.parametrize( ("patterns", "path"), [ (["*.txt"], "file.txtf"), (["*.pyi", "*.pdb"], "wrong.pdf"), (["/home/path/example.txt"], "/home/path/wrong.txt"), ], ) def test_patterns_custom_not_watched( trigger: watcher.Trigger, patterns: List[str], path: str ): event = events.FileCreatedEvent(path) handler = watcher.EventHandler(trigger, patterns=patterns) handler.dispatch(event) assert not trigger.is_active() @pytest.mark.parametrize( ("ignore_patterns", "path"), [ (["ignore/*.py"], "ignore/myfile.py"), (["ignore/**"], "ignore/main.py"), (["*pytest*"], "/home/project/pytest.yaml"), ], ) def test_patterns_ignore_not_watched( trigger: watcher.Trigger, ignore_patterns: List[str], path: str ): event = events.FileCreatedEvent(path) handler = watcher.EventHandler(trigger, ignore_patterns=ignore_patterns) handler.dispatch(event) assert not trigger.is_active() pytest-watcher-0.4.3/tests/test_parse_arguments.py000066400000000000000000000047421466365772000225020ustar00rootroot00000000000000from pathlib import Path from typing import List import pytest from pytest_watcher.watcher import VERSION, parse_arguments @pytest.mark.parametrize( ("args", "path_to_watch"), [ (["."], Path(".")), (["/project/"], Path("/project")), (["../project/"], Path("../project")), (["/project/", "/tests/"], Path("/project")), ], ) def test_path(args: List[str], path_to_watch: str): parsed, _ = parse_arguments(args) assert parsed.path == path_to_watch def test_delay(): parsed, _ = parse_arguments([".", "--delay", "999"]) assert parsed.delay == 999 def test_now(): parsed, _ = parse_arguments([".", "--now"]) assert parsed.now is True def test_runner(): parsed, _ = parse_arguments([".", "--runner", "tox"]) assert parsed.runner == "tox" def test_clear(): parsed, _ = parse_arguments([".", "--clear"]) assert parsed.clear is True @pytest.mark.parametrize( ("args", "patterns"), [ ([".", "--patterns", "*.py,*.env"], ["*.py", "*.env"]), ( [".", "--patterns", "*.py,*.env,project/pyproject.toml"], ["*.py", "*.env", "project/pyproject.toml"], ), ], ) def test_patterns(args: List[str], patterns: List[str]): parsed, _ = parse_arguments(args) assert parsed.patterns == patterns @pytest.mark.parametrize( ("args", "ignore_patterns"), [ ( [".", "--ignore-patterns", "long-long-long-path,templates/*.py"], ["long-long-long-path", "templates/*.py"], ), ], ) def test_ignore_patterns(args: List[str], ignore_patterns: List[str]): parsed, _ = parse_arguments(args) assert parsed.ignore_patterns == ignore_patterns @pytest.mark.parametrize( ("args", "runner_args"), [ (["."], []), ([".", "--lf", "--nf", "-vv"], ["--lf", "--nf", "-vv"]), ([".", "--runner", "tox", "--lf", "--nf", "-vv"], ["--lf", "--nf", "-vv"]), ([".", "--lf", "--nf", "-vv", "--runner", "tox"], ["--lf", "--nf", "-vv"]), ( [".", "--ignore", "tests/test_watcher.py"], ["--ignore", "tests/test_watcher.py"], ), ], ) def test_runner_args(args: List[str], runner_args: List[str]): _, parsed_args = parse_arguments(args) assert parsed_args == runner_args def test_version(capsys: pytest.CaptureFixture): with pytest.raises(SystemExit): parse_arguments(["--version"]) captured = capsys.readouterr() assert captured.out == f"{VERSION}\n" pytest-watcher-0.4.3/tests/test_watcher.py000066400000000000000000000114501466365772000207320ustar00rootroot00000000000000import sys from pathlib import Path from unittest.mock import MagicMock, sentinel import pytest from freezegun import freeze_time from pytest_mock.plugin import MockerFixture from pytest_watcher import watcher from pytest_watcher.config import Config from pytest_watcher.constants import LOOP_DELAY from pytest_watcher.terminal import Terminal from pytest_watcher.trigger import Trigger @freeze_time("2020-01-01 00:00:00") def test_main_loop_does_not_invoke_runner_without_trigger( mock_subprocess_run: MagicMock, mock_time_sleep: MagicMock, config: Config, mock_terminal: Terminal, trigger: Trigger, ): watcher.main_loop(trigger, config, mock_terminal) mock_subprocess_run.assert_not_called() mock_time_sleep.assert_called_once_with(LOOP_DELAY) @freeze_time("2020-01-01 00:00:00") def test_main_loop_does_not_invoke_runner_before_delay( mock_subprocess_run: MagicMock, mock_time_sleep: MagicMock, config: Config, mock_terminal: MagicMock, trigger: Trigger, ): trigger = Trigger(delay=5) trigger.emit() with freeze_time("2020-01-01 00:00:04"): watcher.main_loop(trigger, config, mock_terminal) mock_subprocess_run.assert_not_called() mock_time_sleep.assert_called_once_with(LOOP_DELAY) assert trigger.is_active() @freeze_time("2020-01-01 00:00:00") def test_main_loop_invokes_runner_after_delay( mock_subprocess_run: MagicMock, mock_time_sleep: MagicMock, config: Config, mock_terminal: MagicMock, ): trigger = Trigger(delay=5) trigger.emit() config.runner = "custom" config.runner_args = ["foo", "bar"] with freeze_time("2020-01-01 00:00:06"): watcher.main_loop(trigger, config, mock_terminal) mock_subprocess_run.assert_called_once_with(["custom", "foo", "bar"]) mock_time_sleep.assert_called_once_with(LOOP_DELAY) assert not trigger.is_active() @freeze_time("2020-01-01 00:00:00") def test_main_loop_clear( mock_subprocess_run: MagicMock, mock_time_sleep: MagicMock, config: Config, mock_terminal: MagicMock, trigger: Trigger, ): config.clear = True trigger.emit() with freeze_time("2020-01-01 00:00:06"): watcher.main_loop(trigger, config, mock_terminal) mock_terminal.clear.assert_called_once_with() @freeze_time("2020-01-01 00:00:00") def test_main_loop_no_clear( mock_subprocess_run: MagicMock, mock_time_sleep: MagicMock, config: Config, mock_terminal: MagicMock, trigger: Trigger, ): config.clear = False trigger.emit() with freeze_time("2020-01-01 00:00:06"): watcher.main_loop(trigger, config, mock_terminal) mock_terminal.clear.assert_not_called() def test_main_loop_keystroke( mock_subprocess_run: MagicMock, mock_time_sleep: MagicMock, mock_run_command: MagicMock, config: Config, trigger: Trigger, mock_terminal: MagicMock, ): trigger.emit() mock_terminal.capture_keystroke.return_value = sentinel.KEYSTROKE watcher.main_loop(trigger, config, mock_terminal) mock_run_command.assert_called_once_with( sentinel.KEYSTROKE, trigger, mock_terminal, config ) def assert_observer_started(mock_observer: MagicMock, expected_path: Path): mock_observer.assert_called_once_with() observer_instance = mock_observer.return_value observer_instance.schedule.assert_called_once() observer_instance.start.assert_called_once() path = mock_observer.return_value.schedule.call_args[0][1] assert path == expected_path def test_run_starts_the_observer_and_main_loop( mocker: MockerFixture, mock_observer: MagicMock, mock_main_loop: MagicMock, ): args = ["ptw", ".", "--lf", "--nf"] mocker.patch.object(sys, "argv", args) with pytest.raises(InterruptedError): watcher.run() assert_observer_started(mock_observer, Path(".")) mock_main_loop.assert_called_once() def test_run_invokes_tests_right_away_if_now_flag_is_set( mocker: MockerFixture, mock_observer: MagicMock, mock_main_loop: MagicMock, ): mock_emit = mocker.patch("pytest_watcher.watcher.Trigger.emit", autospec=True) args = ["ptw", ".", "--lf", "--nf", "--now"] mocker.patch.object(sys, "argv", args) with pytest.raises(InterruptedError): watcher.run() mock_emit.assert_called_once() def test_patterns_and_ignore_patterns_are_passed_to_event_handler( mocker: MockerFixture, mock_observer: MagicMock, mock_main_loop: MagicMock, ): args = ["ptw", ".", "--patterns", "*.py,.env", "--ignore-patterns", "settings.py"] mocker.patch.object(sys, "argv", args) with pytest.raises(InterruptedError): watcher.run() event_handler = mock_observer.return_value.schedule.call_args[0][0] assert event_handler.patterns == ["*.py", ".env"] assert event_handler.ignore_patterns == ["settings.py"] pytest-watcher-0.4.3/tox.ini000066400000000000000000000005101466365772000160300ustar00rootroot00000000000000[tox] isolated_build = True envlist = py37,py38,py39,py310,py311,py312 [gh-actions] python = 3.7: py37 3.8: py38 3.9: py39 3.10: py310 3.11: py311 3.12: py312 [tox:.package] basepython = python3 [testenv] deps = watchdog pytest pytest-mock freezegun commands = pytest --color=yes