pax_global_header00006660000000000000000000000064132632133320014510gustar00rootroot0000000000000052 comment=1b2fd54e4dfda2a44f950944c5229db2f12828d1 pick-2.0.2/000077500000000000000000000000001326321333200124375ustar00rootroot00000000000000pick-2.0.2/.gitignore000066400000000000000000000004571326321333200144350ustar00rootroot00000000000000*.o core* pick vgcore* # Generated by Autotools .deps INSTALL.md Makefile Makefile.in aclocal.m4 autom4te.cache/ compile config.guess config.h config.log config.status config.sub configure depcomp install-sh missing stamp-h1 .dirstamp test-driver test-suite.log tests/pick-test tests/*.log tests/*.trs pick-2.0.2/.travis.yml000066400000000000000000000055301326321333200145530ustar00rootroot00000000000000# TODO: temporary work-around permission issue with Clang sanitizers. sudo: true dist: trusty language: c env: global: - secure: "QI0qw+0hitEfPcGNrX8pjw7peRBlO204z7bmHWNsvg/pCkzFVsGPsMm2nijn0Ey8gn8HyRR6wD6F4i4n3NTh2D4E03TWZmNtfxWjKqmalXQmQswdkByJeC+H211MQMrcQg8MaXPNbFzFeDWWn+YIkNbYySJO8IjYNfpGwxQ51kU=" matrix: include: - os: linux compiler: clang env: BUILD_TYPE=default CFLAGS='-fsanitize=address -fsanitize=undefined -Werror' - os: linux compiler: clang-5.0 env: BUILD_TYPE=default CFLAGS='-fsanitize=address -fsanitize=undefined -Werror' addons: apt: sources: - llvm-toolchain-trusty-5.0 packages: - clang-5.0 - os: linux compiler: clang-6.0 env: BUILD_TYPE=default CFLAGS='-fsanitize=address -fsanitize=undefined -Werror' addons: apt: sources: - llvm-toolchain-trusty-6.0 - ubuntu-toolchain-r-test packages: - clang-6.0 - os: linux compiler: gcc env: BUILD_TYPE=default CFLAGS='-fsanitize=address -Werror' - os: osx compiler: clang env: BUILD_TYPE=default CFLAGS='-fsanitize=address -Werror' - os: linux compiler: clang env: BUILD_TYPE=coverage CFLAGS='-coverage -O0 -Werror' - os: linux compiler: clang env: BUILD_TYPE=coverity - os: linux env: BUILD_TYPE=cppcheck addons: apt: packages: - cppcheck - os: osx env: BUILD_TYPE=mandoc before_install: - | # Don't trigger Coverity unless it's a coverity build. if [ $BUILD_TYPE != coverity ]; then COVERITY_SCAN_BRANCH_PATTERN='^$' fi # Disable all builds while submitting to Coverity. if [ $TRAVIS_BRANCH = coverity_scan ]; then BUILD_TYPE=unknown fi install: - | if [ $BUILD_TYPE = mandoc ]; then brew update brew install mandoc fi script: - | ( set -ex case $BUILD_TYPE in default) ./autogen.sh ./configure || (cat config.log; exit 1) make make distcheck || (find . -name test-suite.log | xargs -t cat; exit 1) ;; coverage) ./autogen.sh ./configure || (cat config.log; exit 1) make make check || (find . -name test-suite.log | xargs -t cat; exit 1) llvm-cov gcov pick-pick.c bash <(curl -s https://codecov.io/bash) ;; cppcheck) git ls-files | grep '\.c$' | cppcheck --quiet --error-exitcode=1 --file-list=- ;; mandoc) mandoc -Tlint -Wstyle pick.1 ;; esac ) addons: coverity_scan: project: name: mptre/pick description: a fuzzy search tool for the command-line notification_email: pick-maintainers@calleerlandsson.com build_command_prepend: ./autogen.sh; ./configure build_command: make branch_pattern: coverity_scan pick-2.0.2/CHANGELOG.md000066400000000000000000000314711326321333200142560ustar00rootroot00000000000000# v2.0.2 - 2018-04-10 ## Changes - The repository has been moved to [github.com/mptre/pick](https://github.com/mptre/pick) (432611c) (Anton Lindqvist, Calle Erlandsson) ## Bug fixes - Remove Werror compiler flag. It's generally considered bad practice to ship software with this flag. Issue revealed while updating the port on OpenBSD. (8008d1e, #272) (Anton Lindqvist) - Make the cursor keys work in the rxvt terminal emulator. (70e9a92, #275, #277) (Jenz Guenther) - Limit usage of malloc.conf options to OpenBSD since the options used have a different meaning on both FreeBSD and NetBSD. (6e91e29, #282) (Anton Lindqvist, Jenz Guenther, Mike Burns) - Define the `LC_ALL` environment variable instead of `LC_CTYPE` when running the tests. Makes a couple of failing tests pass when running in an environment with a non UTF-8 locale. (43a9f02, #281, #283) (Anton Lindqvist, Jenz Guenther, giappi) # v2.0.1 - 2018-01-01 ## Bug fixes - Typing a query fast could yield incorrect results. (494ce29, #268, #270) (Anton Lindqvist, Jenz Guenther) # v2.0.0 - 2017-11-07 ## New features - Add `Ctrl-O` key binding used to toggle sorting. (d36423b) (Anton Lindqvist) ## Bug fixes - Inline `CCEQ` macro since it's missing in musl libc. (21f16d0, #249, #250) (Anton Lindqvist, Michael Gehring) - Ignore OSC escape sequences while calculating the line width and filtering. (e821307, a380b41, #248) (Anton Lindqvist) - Do not ignore return value from `mbtowc(3)`. Fixes an issue discovered while compiling using GCC 4.7 on Debian 7. (274969a, #255) (Jenz Guenther) - Fix exit code for `-h` option. (f833b3a) (Anton Lindqvist) ## Changes - Optimize filtering by safely reducing the number of choices to reconsider when the query grew longer. (c0c18ef, #251) (Anton Lindqvist) - Replace example in manual with a more portable but equally useful one. (ad57355, 031817f, 871ddd9, #253) (Jenz Guenther) - pick is now available as a package on Void Linux. (dce2ddf, #257) (Michael Gehring) - pick is now available as a package on CRUX. (26eea32, #258) (rtlanceroad) - Only redraw the choices when necessary. (1e8fb53, #254, #264) (Anton Lindqvist, Jenz Guenther) # v1.9.0 - 2017-09-19 ## New features - Add `-K` option used to disable toggling of keypad transmit mode. Fixes a bug causing the arrow keys to stop working after running pick from within Vim. (6fca1c4, #246, #247) (Anton Lindqvist) ## Bug fixes - Fix a path issue related to `make distcheck`. (9034255, #242) (Anton Lindqvist) - Do not reset the selection on redraw. (58c5b46, #221) (Anton Lindqvist, Jenz Guenther) - Explicitly handle `Ctrl-{C,Z}` control characters. The previous `SIGINT` handler was broken since it invokes functions that are not considered asynchronous safe. Instead, do not turn control characters into signal but instead handle the relevant ones. A pleasant side-effect is that suspend/resumes now behaves correctly. (9886750, #240) (Anton Lindqvist) ## Changes - Make `Ctrl-W` implement the ALTWERASE algorithm, a sequence of alphanumeric and underscore characters are recognized as a word. (c1e0a91, #231, #234) (Anton Lindqvist, Jenz Guenther) - Add clang 5.0 to the build matrix on Travis. (2092491) (Anton Lindqvist) - Recognize `Alt-Backspace` as an alias for `Ctrl-W` and `Alt-Space` for `Page-Down`. Borrowed from `less(1)`. (7d0a568, #238) (Jenz Guenther) - Improve the semantics of the manual and clarify a few things. (6713d37, 964b75b, 78a02b6) (Anton Lindqvist) - Fallback to pkg-config(1) while looking for ncurses library. Makes pick build on Gentoo where ncurses and libtinfo are split out. (615c536, #241) (Anton Lindqvist, Mike Burns, Tim Harder) - pick is now available as a package on Gentoo. (99d5a6f, #243, #244) (Tim Harder) # v1.8.0 - 2017-08-28 ## New features - Read arrow keys from the `terminfo(3)` database. (0c3369b, 2d57016, #206) (Jenz Guenther) - Add support for `SIGWINCH`. (7cdafc8, 5491427, b630f0d, 5969e96, 50e9645, #213) (Anton Lindqvist, Jenz Guenther) ## Bug fixes - Declare functions as `__dead` when appropriate in `pick-test(1)`. Discovered while compiling using GCC 7. (bf666ed, dd29ca2, #202, #204) (Anton Lindqvist) - Make sure `$IFS` is not an empty string. (e894dd0) (Anton Lindqvist) - Disable `IEXTEN` to solve `Ctrl-V` conflict. (8a70fe7) (Anton Lindqvist) - Declare functions as `__dead` when appropriate. (91d7bba, #210) (Jenz Guenther) - Always pass 9 parameters to `tparm(3)`. Partial fix to make pick compile on NetBSD. (d3a158d, #216, #218) (Anton Lindqvist, Jenz Guenther) - Ensure blocking read in non-canonical mode. (98a8779, #219) (Jenz Guenther) - Prefix `UP` (and `DOWN` for consistency) since it's already defined on NetBSD. Partial fix to make pick compile on NetBSD. (1cdf592, #216) (Anton Lindqvist, Jenz Guenther) - Use compound-list in `pick-test.sh` for POSIX compatibility. (716fc0a, #224) (Jenz Guenther) - Fix and simplify horisontal scrolling. (1ef7970, #230) (Anton Lindqvist, Jenz Guenther) - Fix scroll up bug. (50e2748, #232) (Anton Lindqvist, Jenz Guenther) - Always favor the shortest match. This bug only occurs when a choice contains multiple instances of the query and the right-most match is the shortest one. (d7d25a8, #233) (Anton Lindqvist) ## Changes - Use `reallocarray(3)` in `pick-test(1)`. (58b17e0, 478e715) (Anton Lindqvist) - Run `cppcheck(1)` and Coverity Scan on Travis. (1560686, f493b93) (Anton Lindqvist) - NUL-terminate the input buffer by assignment rather than using `memset(3)`. (3e04320) (Anton Lindqvist) - Update documentation on development and contributing. (50e2176, #214) (Anton Lindqvist) - Lower requirements for autoconf and automake. Makes it possible to compile pick on Debian 5. (054b323, #220) (Jenz Guenther) # v1.7.0 - 2017-06-30 ## New features - Add support for HOME and END keys (10f04ae, 0a545bc, 1402ecc, #195) (Jenz Guenther) - Read keys from the `terminfo(3)` database, currently limited to HOME and END (19ff2ea, 71f9505, 1ee1a1d, b8857fd, #197) (Anton Lindqvist) - Add support for Ctrl-V/Alt-V and Alt- alternative key bindings for HOME and END, and Page-Down and Page-Up respectively (128418a, #201) (Jenz Guenther) ## Bug fixes - Don't move the cursor upwards if no choices where printed (ecdca3d, #196, #198) (Anton Lindqvist) - Selection bar vanishes on Page-Down (92e492b, #199, #200) (Jenz Guenther) ## Changes - Refactoring and cleanup (74aa733, 5b237d3, bfe26ae, c16475f, 7b99e29, #189) (Anton Lindqvist) - Run `mandoc(1)` and UBSan on Travis (f37e5e8, 368d37d, #190, #193) (Anton Lindqvist) - Update test suite documentation (9086de2) (Anton Lindqvist) - Enable `ICRNL` input mode (61a5ae5, #192) (Anton Lindqvist) # v1.6.1 - 2017-04-24 ## Bug fixes - Fix tab output bug (db2d9f4) (Anton Lindqvist) # v1.6.0 - 2017-04-19 ## Bug fixes - Fix memory leak (63c7da5) (Anton Lindqvist) - Postpone initial pledge call (bb0ef4f) (Anton Lindqvist) - Don't match strings inside escape sequences (3c0b407) (Anton Lindqvist) - Calculate the width of each displayed character (369350b, #184, #185) (Anton Lindqvist) - Define `_GNU_SOURCE` in order to make `wcwidth(3)` available on Linux (ffb4ca4, #185) (Anton Lindqvist) ## New features - Test suite improvements (5c339d8, 2a5196a, 618a490, fd824f5) (Anton Lindqvist) - Exit with `0` on success and `1` on failure instead of using the exit codes defined in `sysexits.h` (e3a5207, #183) (Anton Lindqvist) # v1.5.4 - 2017-01-23 ## Bug fixes - Fix undefined behavior caused by shifting a signed integer (b4c8656) (Anton Lindqvist) - Only define __dead if it's missing (#180) (Anton Lindqvist) # v1.5.3 - 2016-12-07 ## New features - Favor linking against curses instead of ncursesw (#167) (Anton Lindqvist) - Improve performance (647b734) (Anton Lindqvist) ## Bug fixes - Cleanup man page (#172) (Anton Lindqvist) - Fix off-by-one error related to query memory allocation (485b436) (Anton Lindqvist) - Fix underline spill over bug (#174) (Anton Lindqvist) - Fix shortest left-most match bug (42c8197) (Anton Lindqvist) - Recognize carriage return as enter (#178) (Anton Lindqvist) # v1.5.2 - 2016-10-13 ## Bug fixes - Refactoring and cleanup (#164) (Anton Lindqvist) - Disconnect the controlling terminal if present when running the tests (506a393) (Anton Lindqvist) # v1.5.1 - 2016-10-04 ## New features - Improve readability of tests by adding comment support and cleanup test code (#161) (Anton Lindqvist) ## Bug fixes - Refactoring and cleanup (#162) (Anton Lindqvist) - Fix issues on ancient terminals (#163) (Anton Lindqvist) # v1.5.0 - 2016-09-19 ## New features - Add FreeBSD installation instructions (#130) (Neel Chauhan) - Improve test coverage (#137, #150, #151) (Anton Lindqvist) - Improve search performance (#142) (Anton Lindqvist) - Add support for vertical scrolling (#144) (Anton Lindqvist) - Improve test suite #148, (#150, #151, #159) (Anton Lindqvist, Calle Erlandsson) - Add support for page keys (#149) (Anton Lindqvist) - Improve escape sequence handling (#155) (Anton Lindqvist) - Improve cursor handling (#156) (Anton Lindqvist) - Add a changelog (#158) (Anton Lindqvist) ## Bug fixes - Fix building on Android (#128) (Fredrik Fornwall) - Fix output of tabs (#141) (Anton Lindqvist) - Fix issues on big endian machines (#143) (borstel) - Fix potential integer overflow (#154) (Anton Lindqvist) - Refactoring and cleanup (#133, #137, #150, #151, #152) (Anton Lindqvist) # v1.4.0 - 2016-06-03 ## New features - Add a test suite (Anton Lindqvist, prahlad, Score_Under) - Add an `-S` option for disable sorting of choices (Calle Erlandsson) - Add UTF-8 support (Anton Lindqvist) - Add support for using the delete key and Ctrl-D interchangeably (prahlad) - Make use of `pledge(1)` on OpenBSD (Anton Lindqvist) ## Bug fixes - Fix compatibility issues with the Android NDK and the musl libc (Fredrik Fornwall) - Fix issues with newlines caused by colored input (Calle Erlandsson) - Fix standout rendering of the last line (Anton Lindqvist) - Refactoring and cleanup (Anton Lindqvist) ## Removed features - Remove altscreen condition if invoked from Vim (Anton Lindqvist) # v1.3.0 - 2016-02-12 ## New features - Highlight the matched substring of choices (Anton Lindqvist) - Scroll query horizontally as needed (Calle Erlandsson) ## Bug fixes - Add Debian/Ubuntu installation instructions to the README (Scott Stevenson) - Improve error messages for missing terminfo capabilities (Anton Lindqvist) - Don't clear the screen unless using the alternate screen (Anton Lindqvist) - When the query is empty, preserve the input order of choices (Anton Lindqvist) - Performance improvements and implementation simplifications (Anton Lindqvist) - Correct Ctrl-K behavior (Calle Erlandsson) # v1.2.1 - 2015-10-16 ## Bug fixes - Prevent flickering on some ttys by explicitly flushing output after drawing a full screen (Score_Under) - Prevent segfaults on systems where `strtok_r` sets the context pointer to `NULL` when the delimiter is not found (Artem Chistyakov) - Make the `-d` option behave as it is documented (Artem Chistyakov) - Prevent scrolling (Calle Erlandsson) # v1.2.0 - 2015-08-07 ## New features - Allow users to pick the current input query. (Ross Hadden) - Add installation instructions for Mac OS X via MacPorts. (Chunyang Xu) - Sort choices with the same score lexicographically making sort order deterministic. (Calle Erlandsson) ## Bug fixes - Improve error handling. (Calle Erlandsson) - Don't drop user input under high load. (Calle Erlandsson) - Fix build failures on systems where `ncurses` does not exists but `ncursesw` does. (Aggelos Avgerinos) - Fix build failures on Cygwin. (Gabor Buella) # v1.1.1 - 2015-03-09 ## Bug fixes - Fix checksum issues in Homebrew formula and AUR PKGBUILD. (Calle Erlandsson) - Avoid "Illegal seek" errors when processing many choices. (Calle Erlandsson) # v1.1.0 - 2015-02-27 ## New features - Automatically disable alternate screen in Vim. (Calle Erlandsson) - Add the `-x` option to enable alternate screen. (Calle Erlandsson) - Add Homebrew formula. (Teo Ljungberg) - Add AUR PKGBUILD. (Calle Erlandsson) - Improve README (Matt Jankowski, Calle Erlandsson) ## Bug fixes - Add missing options to usage message. (Calle Erlandsson) # v1.0.0 - 2015-02-26 ## New features - Emacs key bindings. (Keith Smiley, Calle Erlandsson) - Descriptions support. (Calle Erlandsson) ## Bug fixes - Handle SIGINT (Keith Smiley) - Fix build issues on certain platforms (Ruben Laguna, Keith Smiley, Calle Erlandsson) - Fix issues related to Vim `system()` and usage of the alternate screen (Keith Smiley, Calle Erlandsson) # v0.0.1 - 2014-08-18 ## New features - Fuzzy select anything. (Calle Erlandsson, Mike Burns) - Man page. (Calle Erlandsson) pick-2.0.2/CODE_OF_CONDUCT.md000066400000000000000000000062611326321333200152430ustar00rootroot00000000000000# Contributor Covenant Code of Conduct ## Our Pledge In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. ## Our Standards Examples of behavior that contributes to creating a positive environment include: * Using welcoming and inclusive language * Being respectful of differing viewpoints and experiences * Gracefully accepting constructive criticism * Focusing on what is best for the community * Showing empathy towards other community members Examples of unacceptable behavior by participants include: * The use of sexualized language or imagery and unwelcome sexual attention or advances * Trolling, insulting/derogatory comments, and personal or political attacks * Public or private harassment * Publishing others' private information, such as a physical or electronic address, without explicit permission * Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. ## Scope This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at . All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]. [homepage]: http://contributor-covenant.org [version]: http://contributor-covenant.org/version/1/4/ pick-2.0.2/CONTRIBUTING.md000066400000000000000000000053521326321333200146750ustar00rootroot00000000000000# Contributing ## Pull Requests We love pull requests from everyone. By participating in this project, you agree to abide by its [Code of Conduct][conduct]. 1. Fork and clone the repo. 2. Build and make sure all tests pass: ```sh $ ./autogen.sh $ ./configure $ make check ``` 3. Make your changes. Respect the existing formatting and indentation, when in doubt consult [style(9)][style]. 4. If your changes can be captured by a [test], make sure to add one. Changes that only concern the interface can be harder to test but feel free to ask for help. Again, make sure all tests still pass. 5. If your changes for instance adds an option or key binding, make sure to update the [manual]. 6. Submit a pull request on GitHub. This will in addition to sharing your work run it through our continuous integration which performs both static and runtime analysis in order to catch bugs early on. 7. At this point you're waiting on us. ## Release Internal documentation on crafting a release. 1. Run Coverity Scan. In the case of discovered defects, perform a fix and redo this step until no further defects are detected. ```sh $ git checkout coverity_scan $ git rebase master $ git push origin coverity_scan ``` 2. Update `CHANGELOG.md` and commit the change: ```sh $ git commit -m 'Update CHANGELOG' ``` 3. Update the version in `configure.ac`: ``` AC_INIT([pick], [0.0.2], [pick-maintainers@calleerlandsson.com]) ``` ... and commit the change: ```sh $ git commit -m 'Update version to 0.0.2' ``` 4. Create and verify the tarball: ```sh $ make distcheck $ tar tvzf pick-0.0.2.tar.gz ``` 5. Create and verify checksum: ```sh $ sha256 pick-0.0.2.tar.gz >pick-0.0.2.sha256 $ sha256 -c pick-0.0.2.sha256 ``` 6. Tag and push: ```sh $ git tag v0.0.2 $ git push --tags origin master ``` 7. [Announce the release on GitHub][announce]. 8. Contact package maintainers: * Aggelos Avgerinos (Debian & Ubuntu) * Chunyang Xu (MacPorts) * Fredrik Fornwall (Homebrew) * Neel Chauhan (FreeBSD) * 6c37 team (CRUX) ``` To: pick-maintainers@calleerlandsson.com Bcc: evaggelos.avgerinos@gmail.com, xuchunyang.me@gmail.com, fredrik@fornwall.net, neel@neelc.org, camille@airmail.cc Subject: pick 0.0.2 ``` [announce]: https://github.com/mptre/pick/releases/new [conduct]: https://github.com/mptre/pick/blob/master/CODE_OF_CONDUCT.md [manual]: https://github.com/mptre/pick/tree/master/pick.1 [style]: https://man.openbsd.org/style [test]: https://github.com/mptre/pick/tree/master/tests#test-suite pick-2.0.2/INSTALL.md.in000066400000000000000000000006161326321333200144770ustar00rootroot00000000000000pick installation ================= 1. Download and extract the latest release: curl -O https://github.com/mptre/pick/releases/download/v@PACKAGE_VERSION@/pick-@PACKAGE_VERSION@.tar.gz tar -zxvf pick-@PACKAGE_VERSION@.tar.gz cd pick-@PACKAGE_VERSION@ 2. Configure the distribution. ./configure 3. Build and install pick: make sudo make install pick-2.0.2/LICENSE000066400000000000000000000021251326321333200134440ustar00rootroot00000000000000Copyright (c) 2017 Calle Erlandsson, Anton Lindqvist & thoughtbot, Inc. MIT License 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. pick-2.0.2/Makefile.am000066400000000000000000000030671326321333200145010ustar00rootroot00000000000000AUTOMAKE_OPTIONS=foreign AM_CFLAGS=-Wall -Wextra AM_CPPFLAGS=-D_GNU_SOURCE bin_PROGRAMS=pick pick_SOURCES=pick.c compat-reallocarray.c compat-strtonum.c compat.h pick_CPPFLAGS=$(AM_CPPFLAGS) $(NCURSES_CFLAGS) pick_LDADD=$(NCURSES_LIBS) dist_man_MANS=pick.1 TESTS=tests/key-alt-enter.t \ tests/key-backspace.t \ tests/key-ctrl-a.t \ tests/key-ctrl-c.t \ tests/key-ctrl-e.t \ tests/key-ctrl-k.t \ tests/key-ctrl-l.t \ tests/key-ctrl-o.t \ tests/key-ctrl-u.t \ tests/key-ctrl-w.t \ tests/key-del.t \ tests/key-end.t \ tests/key-enter.t \ tests/key-home.t \ tests/key-left.t \ tests/key-line-down.t \ tests/key-line-up.t \ tests/key-page-down.t \ tests/key-page-up.t \ tests/key-printable.t \ tests/key-right.t \ tests/key-unknown.t \ tests/misc-match.t \ tests/misc-realloc.t \ tests/opt-d.t \ tests/opt-h.t \ tests/opt-k.t \ tests/opt-o.t \ tests/opt-q.t \ tests/opt-s.t \ tests/opt-unknown.t \ tests/opt-v.t \ tests/opt-x.t TEST_EXTENSIONS=.t T_LOG_COMPILER=$(top_srcdir)/tests/pick-test.sh \ -e MALLOC_OPTIONS=@MALLOC_OPTIONS@ AM_COLOR_TESTS=no check_PROGRAMS=tests/pick-test tests_pick_test_SOURCES=tests/pick-test.c compat-reallocarray.c tests_pick_test_CFLAGS=$(AM_CFLAGS) EXTRA_DIST=INSTALL.md INSTALL.md.in LICENSE README.md tests/pick-test.sh $(TESTS) DISTCLEANFILES=INSTALL.md INSTALL.md: INSTALL.md.in sed -e 's|@PACKAGE_VERSION[@]|$(PACKAGE_VERSION)|g' \ $(top_srcdir)/$@.in > $@ pick-2.0.2/README.md000066400000000000000000000036621326321333200137250ustar00rootroot00000000000000# pick ![pick(1) usage](screencast.gif) [pick(1)][pick] reads a list of choices from `stdin` and outputs the selected choice to `stdout`. Therefore it is easily used both in pipelines and subshells: ```sh # Select a file in the current directory to open using xdg-open(1): $ find . -type f | pick | xargs xdg-open # Select a command from the history to execute: $ eval $(fc -ln 1 | pick) ``` [pick(1)][pick] can also be used from within Vim, see the [pick.vim][pick-vim] plugin. ## Installation ### CRUX Available in [`6c37/crux-ports`][crux]. ### Debian and Ubuntu A package for Pick is available As of [Debian 9][debian] and [Ubuntu 16.04 LTS][ubuntu]. ```sh apt-get install pick ``` ### Gentoo Package is available from the [official repo][gentoo]. ```sh emerge pick ``` ### Void Linux Package is available from the [official repo][void]. ```sh xbps-install pick ``` ### Mac OS X via Homebrew ```sh brew install pick ``` ### Mac OS X via MacPorts ```sh sudo port install pick ``` ### FreeBSD via Ports ```sh cd /usr/ports/sysutils/pick make install clean ``` ### FreeBSD via pkgng ```sh pkg install pick ``` ### OpenBSD ```sh pkg_add pick ``` ### From source Download the latest [release] and follow the bundled instructions in `INSTALL.md`. If you want to try the latest unreleased version, follow the instructions in [CONTRIBUTING.md][current]. ## Copyright Copyright (c) 2017 Calle Erlandsson, Anton Lindqvist & thoughtbot. [crux]: https://github.com/6c37/crux-ports [current]: https://github.com/mptre/pick/blob/master/CONTRIBUTING.md [debian]: https://packages.debian.org/stable/misc/pick [gentoo]: https://packages.gentoo.org/packages/sys-apps/pick [pick-vim]: https://github.com/calleerlandsson/pick.vim [pick]: https://mptre.github.io/pick/ [release]: https://github.com/mptre/pick/releases/ [ubuntu]: https://packages.ubuntu.com/xenial/pick [void]: https://github.com/voidlinux/void-packages/blob/master/srcpkgs/pick/template pick-2.0.2/autogen.sh000077500000000000000000000000711326321333200144360ustar00rootroot00000000000000#!/bin/sh aclocal && autoconf && automake --add-missing pick-2.0.2/compat-reallocarray.c000066400000000000000000000031771326321333200165540ustar00rootroot00000000000000#ifdef HAVE_CONFIG_H #include "config.h" #endif /* * This file needs a "translation unit" - it needs anything for the compiler to * compile. Since the point of this file is to not exist, declare an unused * variable here. */ int unused; #ifndef HAVE_REALLOCARRAY /* $OpenBSD: reallocarray.c,v 1.2 2014/12/08 03:45:00 bcook Exp $ */ /* * Copyright (c) 2008 Otto Moerbeek * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #include #include #include #include /* * This is sqrt(SIZE_MAX+1), as s1*s2 <= SIZE_MAX * if both s1 < MUL_NO_OVERFLOW and s2 < MUL_NO_OVERFLOW */ #define MUL_NO_OVERFLOW ((size_t)1 << (sizeof(size_t) * 4)) void * reallocarray(void *optr, size_t nmemb, size_t size) { if ((nmemb >= MUL_NO_OVERFLOW || size >= MUL_NO_OVERFLOW) && nmemb > 0 && SIZE_MAX / nmemb < size) { errno = ENOMEM; return NULL; } return realloc(optr, size * nmemb); } #endif /* !HAVE_REALLOCARRAY */ pick-2.0.2/compat-strtonum.c000066400000000000000000000035361326321333200157660ustar00rootroot00000000000000#ifdef HAVE_CONFIG_H #include "config.h" #endif int unused; #ifndef HAVE_STRTONUM /* $OpenBSD: strtonum.c,v 1.8 2015/09/13 08:31:48 guenther Exp $ */ /* * Copyright (c) 2004 Ted Unangst and Todd Miller * All rights reserved. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #include #include #include #define INVALID 1 #define TOOSMALL 2 #define TOOLARGE 3 long long strtonum(const char *numstr, long long minval, long long maxval, const char **errstrp) { long long ll = 0; int error = 0; char *ep; struct errval { const char *errstr; int err; } ev[4] = { { NULL, 0 }, { "invalid", EINVAL }, { "too small", ERANGE }, { "too large", ERANGE }, }; ev[0].err = errno; errno = 0; if (minval > maxval) { error = INVALID; } else { ll = strtoll(numstr, &ep, 10); if (numstr == ep || *ep != '\0') error = INVALID; else if ((ll == LLONG_MIN && errno == ERANGE) || ll < minval) error = TOOSMALL; else if ((ll == LLONG_MAX && errno == ERANGE) || ll > maxval) error = TOOLARGE; } if (errstrp != NULL) *errstrp = ev[error].errstr; errno = ev[error].err; if (error) ll = 0; return (ll); } #endif /* !HAVE_STRTONUM */ pick-2.0.2/compat.h000066400000000000000000000011271326321333200140740ustar00rootroot00000000000000#ifndef COMPAT_H #define COMPAT_H #ifdef HAVE_CONFIG_H #include "config.h" #endif #ifdef __FreeBSD__ #define __dead __dead2 #endif /* __FreeBSD__ */ #if defined(__linux__) || defined(__CYGWIN__) #ifndef __dead #ifdef __GNUC__ #define __dead __attribute__((__noreturn__)) #else #define __dead #endif #endif #endif /* __linux__ || __CYGWIN__ */ #ifndef HAVE_REALLOCARRAY void *reallocarray(void *, size_t, size_t); #endif /* !HAVE_REALLOCARRAY */ #ifndef HAVE_STRTONUM long long strtonum(const char *, long long, long long, const char **); #endif /* !HAVE_STRTONUM */ #endif /* COMPAT_H */ pick-2.0.2/config.h.in000066400000000000000000000016321326321333200144640ustar00rootroot00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* Define if ncursesw is available */ #undef HAVE_NCURSESW_H /* Define to 1 if you have the `pledge' function. */ #undef HAVE_PLEDGE /* Define to 1 if you have the `reallocarray' function. */ #undef HAVE_REALLOCARRAY /* Define to 1 if you have the `strtonum' function. */ #undef HAVE_STRTONUM /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Version number of package */ #undef VERSION pick-2.0.2/configure.ac000066400000000000000000000017551326321333200147350ustar00rootroot00000000000000AC_PREREQ([2.61]) AC_INIT([pick], [2.0.2], [pick-maintainers@calleerlandsson.com]) AM_INIT_AUTOMAKE([subdir-objects]) AC_CONFIG_HEADERS([config.h]) AC_PROG_CC AM_PROG_CC_C_O AC_CHECK_FUNCS([pledge reallocarray strtonum]) AC_SEARCH_LIBS([setupterm], [curses], [], [ AC_SEARCH_LIBS([setupterm], [ncursesw], [AC_DEFINE([HAVE_NCURSESW_H], [1], [Define if ncursesw is available])], [PKG_CHECK_MODULES([NCURSES], [ncurses], [], [ PKG_CHECK_MODULES([NCURSES], [ncursesw], [AC_DEFINE([HAVE_NCURSESW_H], [1], [Define if ncursesw is available])] )] )] ) ]) AC_DEFUN([AC_MALLOC_OPTIONS], [ AC_CANONICAL_HOST AC_MSG_CHECKING([for $host_os malloc hardening options]) case "$host_os" in openbsd*) malloc_options="RS";; *) malloc_options="";; esac if test -n "$malloc_options"; then AC_MSG_RESULT([$malloc_options]) else AC_MSG_RESULT([no]) fi AC_SUBST([MALLOC_OPTIONS], [$malloc_options]) ]) AC_MALLOC_OPTIONS AC_CONFIG_FILES([Makefile]) AC_OUTPUT pick-2.0.2/pick.1000066400000000000000000000076341326321333200134610ustar00rootroot00000000000000.Dd August 17, 2014 .Dt PICK 1 .Os .Sh NAME .Nm pick .Nd fuzzy select anything .Sh SYNOPSIS .Nm .Op Fl hvKS .Op Fl d Op Fl o .Op Fl x | Fl X .Op Fl q Ar query .Sh DESCRIPTION The .Nm utility allows users to select from a set of choices using an .Xr curses 3 interface with fuzzy search functionality. .Pp The choices are read from .Pa stdin , and the selected choice written to .Pa stdout . .Pp The options are as follows: .Bl -tag -width "-q query" .It Fl d Read and display descriptions. Input lines will be split into two parts by the last occurrence of .Ev IFS . Both parts will be displayed but only the first part will be used when searching. .It Fl h Output a help message and exit. .It Fl K Disable toggling of keypad transmit mode. Useful when running .Nm from within another interactive program which already has set the correct transmit mode. .It Fl o Output description of selected choice on exit. .It Fl q Ar query Supply an initial search query. .It Fl S Disable sorting. Only filter the choices instead of additionally sorting by score. This option can be toggled from within the interface, see .Sx COMMANDS . .It Fl v Output the version and exit. .It Fl x Enable the use of the alternate screen terminal feature. This is the default. .It Fl X Disable the use of the alternate screen terminal feature. .El .Sh COMMANDS .Bl -tag -width XXXX .It Ic Ctrl-C Exit with a erroneous status without outputting the selected choice. While this command often being defined as Ctrl-C it is determined by the .Dv VINTR control character, see .Xr termios 4 . .It Ic Ctrl-L Redraw interface with respect to the current size of the terminal. .It Ic Ctrl-O Toggle sorting. .It Ic Up Ns / Ns Ic Down | Ic Ctrl-P Ns / Ns Ic Ctrl-N Select between choices matching the current search query. .It Ic Page-Down Ns / Ns Ic Page-Up | Ic Ctrl-V Ns / Ns Ic Alt-V | Ic Alt-Space Move the selection to the choice located one page down/up from the currently selected choice. .It Ic Home Ns / Ns Ic End | Ic Alt-< Ns / Ns Ic Alt-> Move the selection to the first/last choice matching the current search query. .It Ic Enter Output the currently selected choice and exit. .It Ic Alt-Enter Output the current input query and exit. .It Ic Left Ns / Ns Ic Right | Ic Ctrl-B Ns / Ns Ic Ctrl-F Move the cursor left and right in the search query input field. .It Ic Ctrl-A Move the cursor to the beginning of the line in the search query input field. .It Ic Ctrl-E Move the cursor to the end of the line in the search query input field. .It Ic Backspace | Ctrl-H Delete one character to the left of the cursor in the search query input field. .It Ic Delete | Ctrl-D Delete the character under the cursor in the search query input field. .It Ic Ctrl-W | Alt-Backspace Delete the word to the left of the cursor. A word is recognized as a sequence of characters for which either .Xr isalnum 3 is true or the character is an underscore. .It Ic Ctrl-U Delete to the beginning of the line in the search query input field. .It Ic Ctrl-K Delete to the end of the line in the search query input field. .It Ic Printable characters Added to the search query and will refine the current search. .El .Sh ENVIRONMENT The following environment variables will affect the execution of .Nm pick : .Bl -tag -width IFS .It Ev IFS Determines the separator used between choices and descriptions. .El .Sh ASYNCHRONOUS EVENTS .Bl -tag -width "SIGWINCH" .It Dv SIGWINCH The screen is resized. .El .Sh EXAMPLES Select a file in the current directory to open using .Xr xdg-open 1 : .Pp .Dl $ find \&. -type f | pick | xargs xdg-open .Pp Select a command from the history to execute: .Pp .Dl $ eval $(fc -ln 1 | pick) .Sh DIAGNOSTICS .Ex -std .Sh HISTORY The first version of .Nm was released on August 18, 2014. Development was sponsored by .Lk https://thoughtbot.com thoughtbot from the start of the project until September 2016. .Sh AUTHORS .An Calle Erlandsson Aq Mt calle@calleerlandsson.com .An Anton Lindqvist Aq Mt anton.lindqvist@gmail.com pick-2.0.2/pick.c000066400000000000000000000574101326321333200135400ustar00rootroot00000000000000#ifdef HAVE_CONFIG_H #include "config.h" #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef HAVE_NCURSESW_H #include #include #else #include #include #endif #include "compat.h" #define tty_putp(capability, fatal) do { \ if (tputs((capability), 1, tty_putc) == ERR && (fatal)) \ errx(1, #capability ": unknown terminfo capability"); \ } while (0) enum key { UNKNOWN, ALT_ENTER, BACKSPACE, DEL, ENTER, CTRL_A, CTRL_C, CTRL_E, CTRL_K, CTRL_L, CTRL_O, CTRL_U, CTRL_W, CTRL_Z, RIGHT, LEFT, LINE_DOWN, LINE_UP, PAGE_DOWN, PAGE_UP, END, HOME, PRINTABLE }; struct choice { const char *description; const char *string; size_t length; ssize_t match_start; /* inclusive match start offset */ ssize_t match_end; /* exclusive match end offset */ double score; }; static int choicecmp(const void *, const void *); static void delete_between(char *, size_t, size_t, size_t); static char *eager_strpbrk(const char *, const char *); static int filter_choices(size_t); static char *get_choices(void); static enum key get_key(const char **); static void handle_sigwinch(int); static int isu8cont(unsigned char); static int isu8start(unsigned char); static int isword(const char *); static size_t min_match(const char *, size_t, ssize_t *, ssize_t *); static size_t print_choices(size_t, size_t); static void print_line(const char *, size_t, int, ssize_t, ssize_t); static const struct choice *selected_choice(void); static size_t skipescseq(const char *); static const char *strcasechr(const char *, const char *); static void toggle_sigwinch(int); static int tty_getc(void); static const char *tty_getcap(char *); static void tty_init(int); static const char *tty_parm1(char *, int); static int tty_putc(int); static void tty_restore(int); static void tty_size(void); static __dead void usage(int); static int xmbtowc(wchar_t *, const char *); static struct termios tio; static struct { size_t size; size_t length; struct choice *v; } choices; static FILE *tty_in, *tty_out; static char *query; static size_t query_length, query_size; static volatile sig_atomic_t gotsigwinch; static unsigned int choices_lines, tty_columns, tty_lines; static int descriptions; static int sort = 1; static int use_alternate_screen = 1; static int use_keypad = 1; int main(int argc, char *argv[]) { const struct choice *choice; char *input; int c; int output_description = 0; int rc = 0; setlocale(LC_CTYPE, ""); #ifdef HAVE_PLEDGE if (pledge("stdio tty rpath wpath cpath", NULL) == -1) err(1, "pledge"); #endif while ((c = getopt(argc, argv, "dhoq:KSvxX")) != -1) switch (c) { case 'd': descriptions = 1; break; case 'h': usage(0); case 'K': use_keypad = 0; break; case 'o': /* * Only output description if descriptions are read and * displayed in the list of choices. */ output_description = descriptions; break; case 'q': if ((query = strdup(optarg)) == NULL) err(1, "strdup"); query_length = strlen(query); query_size = query_length + 1; break; case 'S': sort = 0; break; case 'v': puts(PACKAGE_VERSION); exit(0); case 'x': use_alternate_screen = 1; break; case 'X': use_alternate_screen = 0; break; default: usage(1); } argc -= optind; argv += optind; if (argc > 0) usage(1); if (query == NULL) { query_size = 64; if ((query = calloc(query_size, sizeof(char))) == NULL) err(1, NULL); } input = get_choices(); tty_init(1); #ifdef HAVE_PLEDGE if (pledge("stdio tty", NULL) == -1) err(1, "pledge"); #endif choice = selected_choice(); tty_restore(1); if (choice != NULL) { printf("%s\n", choice->string); if (output_description) printf("%s\n", choice->description); } else { rc = 1; } free(input); free(choices.v); free(query); return rc; } __dead void usage(int status) { fprintf(stderr, "usage: pick [-hvKS] [-d [-o]] [-x | -X] [-q query]\n" " -h output this help message and exit\n" " -v output the version and exit\n" " -K disable toggling of keypad transmit mode\n" " -S disable sorting\n" " -d read and display descriptions\n" " -o output description of selected on exit\n" " -x enable alternate screen\n" " -X disable alternate screen\n" " -q query supply an initial search query\n"); exit(status); } char * get_choices(void) { char *buf, *description, *ifs, *start, *stop; ssize_t n; size_t length = 0; size_t size = BUFSIZ; if ((ifs = getenv("IFS")) == NULL || *ifs == '\0') ifs = " "; if ((buf = malloc(size)) == NULL) err(1, NULL); for (;;) { if ((n = read(STDIN_FILENO, buf + length, size - length)) == -1) err(1, "read"); else if (n == 0) break; length += n; if (length + 1 < size) continue; if ((buf = reallocarray(buf, 2, size)) == NULL) err(1, NULL); size *= 2; } buf[length] = '\0'; choices.size = 16; if ((choices.v = reallocarray(NULL, choices.size, sizeof(struct choice))) == NULL) err(1, NULL); start = buf; while ((stop = strchr(start, '\n')) != NULL) { *stop = '\0'; if (descriptions && (description = eager_strpbrk(start, ifs))) *description++ = '\0'; else description = ""; choices.v[choices.length].length = stop - start; choices.v[choices.length].string = start; choices.v[choices.length].description = description; choices.v[choices.length].match_start = -1; choices.v[choices.length].match_end = -1; choices.v[choices.length].score = 0; start = stop + 1; /* Ensure room for a extra choice when ALT_ENTER is invoked. */ if (++choices.length + 1 < choices.size) continue; choices.size *= 2; if ((choices.v = reallocarray(choices.v, choices.size, sizeof(struct choice))) == NULL) err(1, NULL); } return buf; } char * eager_strpbrk(const char *string, const char *separators) { char *tmp_ptr; char *ptr = NULL; for (tmp_ptr = strpbrk(string, separators); tmp_ptr; tmp_ptr = strpbrk(tmp_ptr, separators)) ptr = tmp_ptr++; return ptr; } const struct choice * selected_choice(void) { const char *buf; size_t cursor_position, i, j, length, xscroll; size_t choices_count = 0; size_t selection = 0; size_t yscroll = 0; int dochoices = 0; int dofilter = 1; int query_grew = 0; cursor_position = query_length; for (;;) { /* * If the user didn't add more characters to the query all * choices have to be reconsidered as potential matches. * In the opposite scenario, there's no point in reconsidered * all choices again since the ones that didn't match the * previous query will clearly not match the current one due to * the fact that previous query is a left-most substring of the * current one. */ if (!query_grew) choices_count = choices.length; query_grew = 0; if (dofilter) { if ((dochoices = filter_choices(choices_count))) dofilter = selection = yscroll = 0; } tty_putp(cursor_invisible, 0); tty_putp(carriage_return, 1); /* move cursor to first column */ if (cursor_position >= tty_columns) xscroll = cursor_position - tty_columns + 1; else xscroll = 0; print_line(&query[xscroll], query_length - xscroll, 0, -1, -1); if (dochoices) { if (selection - yscroll >= choices_lines) yscroll = selection - choices_lines + 1; choices_count = print_choices(yscroll, selection); } tty_putp(carriage_return, 1); /* move cursor to first column */ for (i = j = 0; i < cursor_position; j++) while (isu8cont(query[++i])) continue; if (j > 0) /* * parm_right_cursor interprets 0 as 1, therefore only * move the cursor if the position is non zero. */ tty_putp(tty_parm1(parm_right_cursor, j), 1); tty_putp(cursor_normal, 0); fflush(tty_out); switch (get_key(&buf)) { case ENTER: if (choices_count > 0) return &choices.v[selection]; break; case ALT_ENTER: choices.v[choices.length].string = query; choices.v[choices.length].description = ""; return &choices.v[choices.length]; case CTRL_C: return NULL; case CTRL_Z: tty_restore(0); kill(getpid(), SIGTSTP); tty_init(0); break; case BACKSPACE: if (cursor_position > 0) { for (length = 1; isu8cont(query[cursor_position - length]); length++) continue; delete_between(query, query_length, cursor_position - length, cursor_position); cursor_position -= length; query_length -= length; dofilter = 1; } break; case DEL: if (cursor_position < query_length) { for (length = 1; isu8cont(query[cursor_position + length]); length++) continue; delete_between(query, query_length, cursor_position, cursor_position + length); query_length -= length; dofilter = 1; } break; case CTRL_U: delete_between(query, query_length, 0, cursor_position); query_length -= cursor_position; cursor_position = 0; dofilter = 1; break; case CTRL_K: delete_between(query, query_length, cursor_position, query_length); query_length = cursor_position; dofilter = 1; break; case CTRL_L: tty_size(); break; case CTRL_O: sort = !sort; dofilter = 1; break; case CTRL_W: if (cursor_position == 0) break; for (i = cursor_position; i > 0;) { while (isu8cont(query[--i])) continue; if (isword(query + i)) break; } for (j = i; i > 0; i = j) { while (isu8cont(query[--j])) continue; if (!isword(query + j)) break; } delete_between(query, query_length, i, cursor_position); query_length -= cursor_position - i; cursor_position = i; dofilter = 1; break; case CTRL_A: cursor_position = 0; break; case CTRL_E: cursor_position = query_length; break; case LINE_DOWN: if (selection < choices_count - 1) { selection++; if (selection - yscroll == choices_lines) yscroll++; } break; case LINE_UP: if (selection > 0) { selection--; if (yscroll > selection) yscroll--; } break; case LEFT: while (cursor_position > 0 && isu8cont(query[--cursor_position])) continue; break; case RIGHT: while (cursor_position < query_length && isu8cont(query[++cursor_position])) continue; break; case PAGE_DOWN: if (selection + choices_lines < choices_count) yscroll = selection += choices_lines; else selection = choices_count - 1; break; case PAGE_UP: if (selection > choices_lines) yscroll = selection -= choices_lines; else yscroll = selection = 0; break; case END: if (choices_count > 0) selection = choices_count - 1; break; case HOME: yscroll = selection = 0; break; case PRINTABLE: length = strlen(buf); if (query_length + length >= query_size) { query_size = 2*query_length + length; if ((query = reallocarray(query, query_size, sizeof(char))) == NULL) err(1, NULL); } if (cursor_position < query_length) memmove(query + cursor_position + length, query + cursor_position, query_length - cursor_position); memcpy(query + cursor_position, buf, length); cursor_position += length; query_length += length; query[query_length] = '\0'; dofilter = query_grew = 1; break; case UNKNOWN: break; } } } /* * Filter the first nchoices number of choices using the current query and * regularly check for new user input in order to abort filtering. This * improves the performance when the cardinality of the choices is large. * Returns non-zero if the filtering was not aborted. */ int filter_choices(size_t nchoices) { struct choice *c; struct pollfd pfd; size_t i, match_length; int nready; for (i = 0; i < nchoices; i++) { c = &choices.v[i]; if (min_match(c->string, 0, &c->match_start, &c->match_end) == INT_MAX) { c->match_start = c->match_end = -1; c->score = 0; } else if (!sort) { c->score = 1; } else { match_length = c->match_end - c->match_start; c->score = (double)query_length/match_length/c->length; } if (i > 0 && i % 50 == 0) { pfd.fd = fileno(tty_in); pfd.events = POLLIN; if ((nready = poll(&pfd, 1, 0)) == -1) err(1, "poll"); if (nready == 1 && pfd.revents & (POLLIN | POLLHUP)) return 0; } } qsort(choices.v, nchoices, sizeof(struct choice), choicecmp); return 1; } int choicecmp(const void *p1, const void *p2) { const struct choice *c1, *c2; c1 = p1; c2 = p2; if (c1->score < c2->score) return 1; if (c1->score > c2->score) return -1; /* * The two choices have an equal score. * Sort based on the address of string since it reflects the initial * input order. * The comparison is inverted since the choice with the lowest address * must come first. */ if (c1->string < c2->string) return -1; if (c1->string > c2->string) return 1; return 0; } size_t min_match(const char *string, size_t offset, ssize_t *start, ssize_t *end) { const char *e, *q, *s; size_t length; q = query; if (*q == '\0' || (s = e = strcasechr(&string[offset], q)) == NULL) return INT_MAX; for (;;) { for (e++, q++; isu8cont(*q); e++, q++) continue; if (*q == '\0') break; if ((e = strcasechr(e, q)) == NULL) return INT_MAX; } length = e - s; /* LEQ is used to obtain the shortest left-most match. */ if (length == query_length || length <= min_match(string, s - string + 1, start, end)) { *start = s - string; *end = e - string; } return *end - *start; } /* * Returns a pointer to first occurrence of the first character in s2 in s1 with * respect to Unicode characters disregarding case. */ const char * strcasechr(const char *s1, const char *s2) { wchar_t wc1, wc2; size_t i; int nbytes; if (xmbtowc(&wc2, s2) == 0) return NULL; for (i = 0; s1[i] != '\0';) { if ((nbytes = skipescseq(s1 + i)) > 0) /* A match inside an escape sequence is ignored. */; else if ((nbytes = xmbtowc(&wc1, s1 + i)) == 0) nbytes = 1; else if (wcsncasecmp(&wc1, &wc2, 1) == 0) return s1 + i; i += nbytes; } return NULL; } /* * Returns the length of a CSI or OSC escape sequence located at the beginning * of str. */ size_t skipescseq(const char *str) { size_t i; int csi = 0; int osc = 0; if (str[0] == '\033' && str[1] == '[') csi = 1; else if (str[0] == '\033' && str[1] == ']') osc = 1; else return 0; for (i = 2; str[i] != '\0'; i++) if ((csi && str[i] >= '@' && str[i] <= '~') || (osc && str[i] == '\a')) break; return i + 1; } void tty_init(int doinit) { struct termios new_attributes; if (doinit && (tty_in = fopen("/dev/tty", "r")) == NULL) err(1, "fopen"); tcgetattr(fileno(tty_in), &tio); new_attributes = tio; new_attributes.c_iflag |= ICRNL; /* map CR to NL */ new_attributes.c_lflag &= ~(ECHO | ICANON | IEXTEN | ISIG); new_attributes.c_cc[VMIN] = 1; new_attributes.c_cc[VTIME] = 0; new_attributes.c_cc[VDISCARD] = _POSIX_VDISABLE; tcsetattr(fileno(tty_in), TCSANOW, &new_attributes); if (doinit && (tty_out = fopen("/dev/tty", "w")) == NULL) err(1, "fopen"); if (doinit) setupterm((char *)0, fileno(tty_out), (int *)0); tty_size(); if (use_keypad) tty_putp(keypad_xmit, 0); if (use_alternate_screen) tty_putp(enter_ca_mode, 0); toggle_sigwinch(0); } int tty_putc(int c) { if (putc(c, tty_out) == EOF) err(1, "putc"); return c; } void handle_sigwinch(int sig) { gotsigwinch = sig == SIGWINCH; } void toggle_sigwinch(int enable) { struct sigaction sa; sa.sa_flags = 0; sa.sa_handler = enable ? handle_sigwinch : SIG_IGN; sigemptyset(&sa.sa_mask); if (sigaction(SIGWINCH, &sa, NULL) == -1) err(1, "sigaction: SIGWINCH"); } void tty_restore(int doclose) { tcsetattr(fileno(tty_in), TCSANOW, &tio); if (doclose) fclose(tty_in); tty_putp(carriage_return, 1); /* move cursor to first column */ tty_putp(clr_eos, 1); if (use_keypad) tty_putp(keypad_local, 0); if (use_alternate_screen) tty_putp(exit_ca_mode, 0); if (doclose) fclose(tty_out); else fflush(tty_out); } void tty_size(void) { const char *cp; struct winsize ws; int sz; if (ioctl(fileno(tty_in), TIOCGWINSZ, &ws) != -1) { tty_columns = ws.ws_col; tty_lines = ws.ws_row; } if (tty_columns == 0 && (sz = tigetnum("cols")) > 0) tty_columns = sz; if (tty_lines == 0 && (sz = tigetnum("lines")) > 0) tty_lines = sz; if ((cp = getenv("COLUMNS")) != NULL && (sz = strtonum(cp, 1, INT_MAX, NULL)) > 0) tty_columns = sz; if ((cp = getenv("LINES")) != NULL && (sz = strtonum(cp, 1, INT_MAX, NULL)) > 0) tty_lines = sz; if (tty_columns == 0) tty_columns = 80; if (tty_lines == 0) tty_lines = 24; choices_lines = tty_lines - 1; /* available lines, minus query line */ } void print_line(const char *str, size_t len, int standout, ssize_t enter_underline, ssize_t exit_underline) { size_t i; wchar_t wc; unsigned int col; int nbytes, width; if (standout) tty_putp(enter_standout_mode, 1); col = i = 0; while (col < tty_columns) { if (enter_underline == (ssize_t)i) tty_putp(enter_underline_mode, 1); else if (exit_underline == (ssize_t)i) tty_putp(exit_underline_mode, 1); if (i == len) break; if (str[i] == '\t') { width = 8 - (col & 7); /* ceil to multiple of 8 */ if (col + width > tty_columns) break; col += width; for (; width > 0; width--) tty_putc(' '); i++; continue; } /* * A NUL will be present prior the NUL-terminator if * descriptions are enabled. */ if (str[i] == '\0') { tty_putc(' '); i++; col++; continue; } /* * Output every character, even invalid ones and escape * sequences. Even tho they don't occupy any columns. */ if ((nbytes = skipescseq(str + i)) > 0) { width = 0; } else if ((nbytes = xmbtowc(&wc, str + i)) == 0) { nbytes = 1; width = 0; } else if ((width = wcwidth(wc)) < 0) { width = 0; } if (col + width > tty_columns) break; col += width; for (; nbytes > 0; nbytes--, i++) tty_putc(str[i]); } for (; col < tty_columns; col++) tty_putc(' '); /* * If exit_underline is greater than columns the underline attribute * will spill over on the next line unless all attributes are exited. */ tty_putp(exit_attribute_mode, 1); } /* * Output as many choices as possible starting from offset and return the number * of choices with a positive score. If the query is empty, all choices are * considered having a positive score. */ size_t print_choices(size_t offset, size_t selection) { const struct choice *choice; size_t i; for (i = offset; i < choices.length; i++) { choice = choices.v + i; if (choice->score == 0 && query_length > 0) break; if (i - offset < choices_lines) print_line(choice->string, choice->length, i == selection, choice->match_start, choice->match_end); } if (i - offset < choices.length && i - offset < choices_lines) { /* * Printing the choices did not consume all available * lines and there could still be choices left from the * last print in the lines not yet consumed. * * The clr_eos capability clears the screen from the * current column to the end. If the last visible choice * is selected, the standout in the last and current * column will be also be cleared. Therefore, move down * one line before clearing the screen. */ tty_putc('\n'); tty_putp(clr_eos, 1); tty_putp(tty_parm1(parm_up_cursor, (i - offset) + 1), 1); } else if (i > 0) { /* * parm_up_cursor interprets 0 as 1, therefore only move * upwards if any choices where printed. */ tty_putp(tty_parm1(parm_up_cursor, i < choices_lines ? i : choices_lines), 1); } return i; } enum key get_key(const char **key) { #define CAP(k, s) { k, s, NULL, 0, -1 } #define KEY(k, s) { k, NULL, s, sizeof(s) - 1, -1 } #define TIO(k, i) { k, NULL, NULL, 0, i } static struct { enum key key; char *cap; const char *str; size_t len; int tio; } keys[] = { KEY(ALT_ENTER, "\033\n"), KEY(BACKSPACE, "\177"), KEY(BACKSPACE, "\b"), KEY(CTRL_A, "\001"), TIO(CTRL_C, VINTR), KEY(CTRL_E, "\005"), KEY(CTRL_K, "\013"), KEY(CTRL_L, "\014"), KEY(CTRL_O, "\017"), KEY(CTRL_U, "\025"), KEY(CTRL_W, "\027"), KEY(CTRL_W, "\033\177"), KEY(CTRL_W, "\033\b"), TIO(CTRL_Z, VSUSP), CAP(DEL, "kdch1"), KEY(DEL, "\004"), CAP(END, "kend"), KEY(END, "\033>"), KEY(ENTER, "\n"), CAP(HOME, "khome"), KEY(HOME, "\033<"), CAP(LEFT, "kcub1"), KEY(LEFT, "\002"), KEY(LEFT, "\033OD"), CAP(LINE_DOWN, "kcud1"), KEY(LINE_DOWN, "\016"), KEY(LINE_DOWN, "\033OB"), CAP(LINE_UP, "kcuu1"), KEY(LINE_UP, "\020"), KEY(LINE_UP, "\033OA"), CAP(PAGE_DOWN, "knp"), KEY(PAGE_DOWN, "\026"), KEY(PAGE_DOWN, "\033 "), CAP(PAGE_UP, "kpp"), KEY(PAGE_UP, "\033v"), CAP(RIGHT, "kcuf1"), KEY(RIGHT, "\006"), KEY(RIGHT, "\033OC"), KEY(UNKNOWN, NULL), }; static unsigned char buf[8]; size_t len; int c, i; memset(buf, 0, sizeof(buf)); *key = (const char *)buf; len = 0; /* * Allow SIGWINCH on the first read. If the signal is received, return * CTRL_L which will trigger a resize. */ toggle_sigwinch(1); buf[len++] = tty_getc(); toggle_sigwinch(0); if (gotsigwinch) { gotsigwinch = 0; return CTRL_L; } for (;;) { for (i = 0; keys[i].key != UNKNOWN; i++) { if (keys[i].tio >= 0) { if (len == 1 && tio.c_cc[keys[i].tio] == *buf && tio.c_cc[keys[i].tio] != _POSIX_VDISABLE) return keys[i].key; continue; } if (keys[i].str == NULL) { keys[i].str = tty_getcap(keys[i].cap); keys[i].len = strlen(keys[i].str); } if (strncmp(keys[i].str, *key, len) != 0) continue; if (len == keys[i].len) return keys[i].key; /* Partial match found, continue reading. */ break; } if (keys[i].key == UNKNOWN) break; if (len == sizeof(buf) - 1) break; buf[len++] = tty_getc(); } if (len > 1 && buf[0] == '\033' && (buf[1] == '[' || buf[1] == 'O')) { /* * An escape sequence which is not a supported key is being * read. Discard the rest of the sequence. */ c = buf[len - 1]; while (c < '@' || c > '~') c = tty_getc(); return UNKNOWN; } if (!isu8start(buf[0])) { if (isprint(buf[0])) return PRINTABLE; return UNKNOWN; } /* * Ensure a whole Unicode character is read. The number of MSBs in the * first octet of a Unicode character is equal to the number of octets * the character consists of, followed by a zero. Therefore, as long as * the MSB is not zero there is still bytes left to read. */ for (;;) { if (((buf[0] << len) & 0x80) == 0) break; if (len == sizeof(buf) - 1) return UNKNOWN; buf[len++] = tty_getc(); } return PRINTABLE; } int tty_getc(void) { int c; if ((c = getc(tty_in)) == ERR && !gotsigwinch) err(1, "getc"); return c; } const char * tty_getcap(char *cap) { char *str; str = tigetstr(cap); if (str == (char *)(-1) || str == NULL) return ""; return str; } const char * tty_parm1(char *cap, int a) { return tparm(cap, a, 0, 0, 0, 0, 0, 0, 0, 0); } void delete_between(char *string, size_t length, size_t start, size_t end) { memmove(string + start, string + end, length - end + 1); } int isu8cont(unsigned char c) { return MB_CUR_MAX > 1 && (c & (0x80 | 0x40)) == 0x80; } int isu8start(unsigned char c) { return MB_CUR_MAX > 1 && (c & (0x80 | 0x40)) == (0x80 | 0x40); } int isword(const char *s) { wchar_t wc; if (xmbtowc(&wc, s) == 0) return 0; return iswalnum(wc) || wc == L'_'; } int xmbtowc(wchar_t *wc, const char *s) { int n; n = mbtowc(wc, s, MB_CUR_MAX); if (n == -1) { /* Assign in order to suppress ignored return value warning. */ n = mbtowc(NULL, NULL, MB_CUR_MAX); return 0; } return n; } pick-2.0.2/screencast.gif000066400000000000000000012154041326321333200152670ustar00rootroot00000000000000GIF89aw! NETSCAPE2.0!B,-?-?,,+>>889MZdm+M=Y*m)v=cM=XX*K~=XcMYL>Y>cluc,l,v,x>lMbX<}X(uX>>LLXb%k:bblu"|7}8|U|st`|sGFTrƉ5FʒEŒS^ʑSΙRΟ]qΥp֧fܶxƁ΁ىݐԗΗ؁まꏿቾꪵίʩؿĉܿͪŧĨζʵʹɨɹӭҹʇʍΕΛӕʍΔӛĨʹҪاح׸Ө٣ڬ۳ݺcH*\ȰÇ#JHŋ3jȱǏ C ɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴiJPBuJիXjʵׯx)U*سhӪ]'qvr&AADFKI|ܗZ rQVe٨m#KL %ŬeoᶯK4O)VrΟ?-O̻&k~gROt9O%ȉ.0쒱"%rνN{c5h.N%l `B+۵2agzJp@ >?9s &AJ2g2X)F1D;etIf! a?q?pmaL:Y}^?9L Yہ'dISF?t )IP'7?`j&rh'h  !Kusg1c(崣!TIC'(cRj(c ?j* &3>pyd3K#B+}( [ض iY'?i33' x3(U&#.@j[( 6>4Ifq5>Ԅ%#')mH=; \ˠ78 b&1No %\G\`*&BpT&!'T?M6^ OϥC(w?%ꋈFlB3`eL -"G@ q dḳH: G6C$G:hx@Q@r<HGJSHFRE6RI"Lٱe,p .HD7K` 39SvXHhp#.EI7#^02b & )IJJM+ |jOOSɆ R-? Zpl%a PrҒv6 EF7>Nئ@K&(A T.xXpU.8R&@W'nƢ @)+^o2W5%HA $f%d5kL.칤`GPV6EU3@(R@+Z~eMjWZlgKͭnw pKMr:ЍtKZͮvz xKMz|Kͯ~LN;'L [ΰ7{ GL(NW0gL8αw@L"HN&;PL*[Xβ.{`L2hN6pL:xγ>πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbNf;ЎMj[ζn{MrNvMzη~NO;'N[ϸ7{ GN(OW0gN8Ϲw@ЇNHOҗ;PԧN[XϺַ{`NhOpNxϻOO;񐏼'O[ϼ7{GOқOWֻgOϽwOO;ЏO[Ͼ{@OOOϿ8Xx x{! ,-?+M>MK~YL>c```(Jj%sIIH_iԄ>>LL6FƏʯɺ۸n@p(LF"TGgU5s(Xdd"U22 1y"3 )1rT 3+)3a33$hX-X2"&3#WT /30!PVXA!,L>LXL=XXXLK}LXbbXKkkW```kbkkkt*Wbjbj>zĿܭӯŎʍʍ͡Ө[@p(|F"TG@@YB d B\Zm2 qYΧ̒<|M#Ox(gB%j'C NJGA!,``` o܁K&,ry8y[! ,u>}X(```;s;{%:Iƒ>LLΙRɹH `&I(AO0g!M2ӃhPM YDc .ET5qD+ =T 2R\7^ ! ,-?M)v+>M*K~MYlXbbbbW```tbbJ)abja|7|UF^ݨʵZ@p(dF"TGgʐt2I@ƴt(`@3J, 3B퉓f $X% !$X"\]}M v~RXVTA!, ,,,,,+>+}b;```Jtʍ2)RWk b/IrL#=+#UD65! ,->=YMYXL*LXXXbkkbK```kttJJ)a9˥XbJkaʫyضͿY@p(LF"64y.B"LBMǰ* 3Fpx@, )c~ETLBJ}dLA!,}X(```;s;{%:Iƒ>LLΙRɹH `&I(AO0g!M2ӃhPM YDc .ET5qD+ =T 2R\7^ !,,?)v=XXL>c,l,u,XXX```bbk;J:Iƌ>LLثfӁꪵΉŤΕʹ׸ء_@p(LF"TGgTFɨ@`bPlC*N֡"Q,X 'JX* !X"t*#BSPVNTA!,4-?M)v+>M*K~MYlXbbbbW```tbbJ)abja|7|UF^ݨʵZ@p(dF"TGgʐt2I@ƴt(`@3J, 3B퉓f $X% !$X"\]}M v~RXVTA!l,A-?,?-?,-,,>,0<;MZf,M*h)v=cY>M+>iug,w,{>g4*MMYML=MXL7lMcL*cL=bX<}X(uX>=KXLXX&e-LXde#k#u"z7WWwSka|skjt`|s7sFTwhzNJ5‹FʒEʔUӟ]ɒkĕw̨tקfؤpܶoܶx}Ƅ̅ېԗΖك學˩ؿĵĿ܊ܿ;ɹܫΞŧƪζӯٷӶʶ鿢ɹɨɹӭҹNj͖ӕ̍ΕӛĨ̴ժ׶͡ا۴H*\ȰÇ#JHŋ3jȱǏ CBj@($N7IvJY@ Jv\£N"OY8d{4p:rKY¶ t/unnwa˷oE`4{vA\Њ?m` &i7O/x Ry!bŌU%/0;"`L^^,w08@U h*0$³AW8Q(č# ݟe{˟Oq<~hɃ_rOcpF#Z/IW&P  B!?p},ȗc0*~ ? PX9BG!@#$وct$r#:\\v9c*ROc'S((bJfT9$Y&j^@ 5Zj壐X4Z 7?t鮼b@j%'+q ?:y@H^  (ˬ.> d(cʁ+\W2>֊`pٜ׼{ <8-H @s aŸnd/˨ Kd U2A6P!,4l8<@-D_$H@3 4uN0I(@NO=Y|M?9]SMO-=sը]TxdNP@*^(CBZc/xE[,)D)-MjPI !i FX[3$m&AIA Vnq΁ .̚'9j$i'T| ZhwJ:>HHpptcd$ܗ~KKvd(Ez7DuARt X#Qb +'H((=w].|# rQZ5RO#]v %D; IC~! C S2D/ P8E\qclG7PAEQ7-+׎f:Ќ4IjZTvQ|")I"?@@R ,'(5T- 21DZ&;5h0`YٱE-/pRǎdtHGHhtlZ QA?').(\FDZ,:jȆQ(r $11 72b.qJbS`*sDgnHQWCU {)?0U @/aʕt2P+Dt-ͤ<U9"F RJ rJ>U D <\*Zд R@@ʖّO47-o1d ^$Nu9gkY>2TGjIu)`k#`MYo[5(>U.h+[ %v4Xi0~e+Vn*7ZH8. uKXJ ybX̾8IF)#D.xDՃTP`c4щwtC cQ ?\d #_qE]5ӊI1 THNPh%AIsM#uq-=K> fi`༃Xi εw^mmv@."tGq^H91FPGӠ @F bDhR<'bLf=1 ydvն_sXoW XGepT"*Qaq 1p~U)7Aw{eK!2'7W&ZZrsRdarEray!uHjwe]uuCRLJ'-9n}5xT~!eiwuUw"6QviH8s8'G0Z*QCPzzǩ ژ.Gz<R{ȒR,(Шi9hi3}Ł?x(Y8DLw/|!h}4}|Chx1 k2.~JY)J<-:4Z6O5/#"(;yz11J`|SP)y,'^!yǨh;z3&jzRe!1WʡI Uqe$i@d 9 z[Z:R " s})Ș@&rI -DtH&4 #xL$ yQ"WB_ڪDf7|ȉ4`"&k&#(w8㡛{((SF)׋H )*Y@Y=h~mswN2W+:DK .We` 5/,r-ٲ- -C`I1"m1N"*ahõpҵ~94@RQT1;u#{+ f;[{7Ma;o&>F[EP-i-Qh0`IsCG;6o YRlXPlP)P@8YMZ3I0w*AƋ:& ڨ87T1mH@pi,D@:Ev[*>Efi[6r?9` r XBS"-]Z6a\#jq8(x'U`05:2),+&0g=,VJ̌TR`ێi<q; sWòmt ÙDR,7hmԳWy ׂB ]!tF;NpҴqm^vt >Q~n^:: 7X - +$h.j0.@7ΖLxP-r B[Rnr5{eTբ_\~!U*m^c^$l}Gyml^o^YULGʸٰ²R\Y^Qi^Ǘ.썙7kqܰ)R3Nn~./?_ 혏6fN}>.Ьouam _ p6nH|3w{`DH,t YVYNz#bNDHEPA .dC%NXň^Gz xp:o Dx_ɡoN(t ˃_uꔩ5r,(FQNZժU axOAq=asYkē#bGa֭-lȻaĉ/Fd_( V6} ad`B4sn @yg5M' B@xpR'1dɖ,AڛC0fqϧύ/|ne]v9@wҩOr 쫎@TpATz` +Z`B .B  z0Bl`!!KlpFkFsqG{G rH"4H$TrI&tI#?IdvC'1*K0 @I)\L2tMNFF^%'6ƊvA.ሿ2(EApIY;h'z=I >UI+=k1_QFp=sf2R^G<+I({=%Xᆀt G͘5ٚyErݵWGZjmwFj-%` BO(~4 Ϥͻz}(ᅅwdU? 6@:h̕>ӯh9MJ@f(|Pn%O#i ⫩g3(ROin0**ӧ.*(Kpܪ"H3eALNKmz->v"8 Gvrܧ;@;w3dZ#۽:D,8E:frQ-0:7ʮBB/|G~kCv18,PI8#BM\1$c_Jn:8/'opE <(/C+LҔF5 f@ F:Qei 3J\zBI9og7hF։ѡ-r-Q\#yjkjBa&jPOApbͥnA:ʏj-5KR%8 j6@5DT64@vy%kܶnKj&w{#7s{t3o8is7\ÂDHEjҷYlExR0츂')2R(29@:;8 9EƟ8`\' :;)9`:* :t4:=pL8|< ӻjrȰ+Z"T;1øȳK \@Ԝ"<<#˒G <<ˣɗD=ѫI0(bITs>#cC .>+0k>>=>>Ծ?;X;;ǔAȿC+A"@T@LM,Mº)`ŒHS N]6,JIû˘ɛ, p:=L=̼1JKa ShZl\=JlM #˄=\KkKH>KJ>.6ӞL?410KLc˴tyWQL:LH44$XQxuX $آR YY-aAYpMf= 2Yĸ)eElIFtA\\T L/4BGC33'ܳ(3B34eD4$4GsZ0!JlO4dYYACP:T?;A=PW?5d͵=DO# PxxXDPN Ͷa"Qn3o3gRQ|[E~S7Ѓx[Q"uKFb!],5ҍC|Qg'Gn^*F#G)ҁ+ E0}B5G}2]ǩkGcxMǂdDNdE^P,FƠHƠެYZ/BZOWABM3SEN[ōC#>oP;D Qybшڋ"U"+JV# ߻a:[USh.!EȻ{ؐсUɥeEg,'(!vwgi1׉@̃X؂hX~hhhhGxًIfP~Kd4O ڷUCVUd<"5ep}Jit5]܃6 Fy"j0EfUfDæ_F if)e66 jRˆ,E% &U:k unUawFx.yJ Ế |Jg.ξ.f V)̇Plllm8Qمxd6]f>m!)iֶO-%szWѢAȅ6zO1|m8\;eL=>S^QjsNJtpQ ;vUuӑ JzaΘö"=w I h=ɶWƼq"/r#?r$OrTYVrvrqm)GnS1C/d~St#7i[> ~sX\%5 n:lLmnsxf?_qij~Nv^tHKpArks^v, կpPVoY)/wgۣpVL%W~m ^?vdOve_vf&f (鑰i*>++.rL^5% hXW4s5]Nr>8FDJ)oyCtx_rHv wRg=H۲wnukvrYsK[uǞM?¬WvlOz_zxz0&g_`I 5 )`J 4ArŠjգDzK4+8ڂ`p|^QoXAV8|Z/ٖ=znο7HSTȇIn$C|3J#3B4Zu4#CU#2DΩ 62w1y\?>#>~jv? vn8G#VbSZ=nΎM$"[ „x0lP!Ĉ'Rh"ƃ_?9{p:|蠚{ ƎC,y2J EɭD*& {4L*#F+םnT?GG >7Dy@KHuH(0K0eέ{7/8#0ѡÌ7slqI[ ? iUϴBG-jz<wxҒJqYGW͟!Hb8\~o|]* Lo=֯??i!bn?VtAO?kh -?DORTY?r)|,H 4s9B?cU[GA>crM/X)Cj*\ ;Al_eyPO_ifb-=q"VmAT\'"ڒv`y`#&Xi: ]K`V V&%\zE:0:5UlMZ#??+?Qdž057AJȺ&'pFhNKT'ȑ jH;"O(@XW|T2,r/hD2VD1 EЏAP 1#4?5ߜf?L4AA?ٜQ/5A=L;vӺRB`Gx5AZ4yk*!]I{s T0/CeX8WՑ5 P W>{V~`1hPw:F+4A :lw'yD*C~`ʲ!~g}@! ,-?+M>MK~YL>c```(Jj%sIIH_iԄ>>LL6FƏʯɺ۸n@p(LF"TGgU5s(Xdd"U22 1y"3 )1rT 3+)3a33$hX-X2"&3#WT /30!PVXA!,L>LXL=XXXLK}LXbbXKkkW```kbkkkt*Wbjbj>zĿܭӯŎʍʍ͡Ө[@p(|F"TG@@YB d B\Zm2 qYΧ̒<|M#Ox(gB%j'C NJGA!$,``` o܁K&,ry8y[!6,``` o܁K& lry8y[ !,``` o܁K&,ry8y[! ,u>}X(```;s;{%:Iƒ>LLΙRɹH `&I(AO0g!M2ӃhPM YDc .ET5qD+ =T 2R\7^ !,-?M)v+>M*K~MYlXbbbbW```tbbJ)abja|7|UF^ݨʵZ@p(dF"TGgʐt2I@ƴt(`@3J, 3B퉓f $X% !$X"\]}M v~RXVTA!, ,,,,,+>+}b;```Jtʍ2)RWk b/IrL#=+#UD65! ,->=YMYXL*LXXXbkkbK```kttJJ)a9˥XbJkaʫyضͿY@p(LF"64y.B"LBMǰ* 3Fpx@, )c~ETLBJ}dLA!,}X(```;s;{%:Iƒ>LLΙRɹH `&I(AO0g!M2ӃhPM YDc .ET5qD+ =T 2R\7^ ! ,,?)v=XXL>c,l,u,XXX```bbk;J:Iƌ>LLثfӁꪵΉŤΕʹ׸ء_@p(LF"TGgTFɨ@`bPlC*N֡"Q,X 'JX* !X"t*#BSPVNTA! ,4-?M)v+>M*K~MYlXbbbbW```tbbJ)abja|7|UF^ݨʵZ@p(dF"TGgʐt2I@ƴt(`@3J, 3B퉓f $X% !$X"\]}M v~RXVTA!<,<``` o܁K&,ry8y[!,D-Mub;Wk}```_ʍΔ<)Re8]$X [3  (VDiwRf$1ҪV]!6,L``` o܁K&,ry8y[!,T-+>>Zlu}Kb```'s's:|IIHUτ>>LLXb%k:ŒSӥgŪζ_@p(<F"TGgzDȠA,WjU:uP#2Qd'>k'} $t (aPl(S'OTrJXTVXA!,\XXK```JVI>L|s܁᯺ʍU@p(\F"TGgU@cC"qXXB :, EPc3$ a]$#aB WTVNtTA!,l?-?MMYu```VzzqΥpܶx΁ٗΖʍʍΔӨح\@p(DF" HJDBrjv.HS(k+ঌFAKB{^ #t|g #u`#eJCRLeA!,t``` o܁K&,ry8y[!,|-Mub;Wk}```_ʍΔ<)Re8]$X [3  (VDiwRf$1ҪV]!,``` o܁K&,ry8y[! ,--Zd+MYuu,}>XXK```JVI>L|s܁᯺ʍU@p(\F"TGgU@cC"qXXB :, EPc3$ a]$#aB WTVNtTA! ,-?=XcMYlbX<```Va;{IU{{rzݒ>LLbl꿺ĉӭح۳a@p(DF"TGgU:uX@dEʄFl0%05q,$%rFrP + (&X +"(+)X++)aKTVNJXA!,?=cM```||jbj%zԄ,>LӨܳF "a&I:[„ 5F)8\8`4%Ad:*ܗ܅2]o.!,``` o܁K& lry8y[ ! ,``` o܁K& lry8y[ ! ,``` o܁K& lry8y[ !$,v)vMl```js's9izzل>LLLu"Sř^ܶx؏່[@p(,F"TGgZg"pX&I.W*0}04T9`1IL#!rL#pX"B #XVRNJXA! ,-?=XcMYlbX<```Va;{IU{{rzݒ>LLbl꿺ĉӭح۳a@p(DF"TGgU:uX@dEʄFl0%05q,$%rFrP + (&X +"(+)X++)aKTVNJXA!,?=cM```||jbj%zԄ,>LӨܳF "a&I:[„ 5F)8\8`4%Ad:*ܗ܅2]o.! ,-?+M>MK~YL>c```(Jj%sIIH_iԄ>>LL6FƏʯɺ۸n@p(LF"TGgU5s(Xdd"U22 1y"3 )1rT 3+)3a33$hX-X2"&3#WT /30!PVXA! ,-?M)v+>M*K~MYlXbbbbW```tbbJ)abja|7|UF^ݨʵZ@p(dF"TGgʐt2I@ƴt(`@3J, 3B퉓f $X% !$X"\]}M v~RXVTA!,``` o܁K&,ry8y[!,u>}X(```;s;{%:Iƒ>LLΙRɹH `&I(AO0g!M2ӃhPM YDc .ET5qD+ =T 2R\7^ !,?)v=XXL>c,l,u,XXX```bbk;J:Iƌ>LLثfӁꪵΉŤΕʹ׸ء_@p(LF"TGgTFɨ@`bPlC*N֡"Q,X 'JX* !X"t*#BSPVNTA! ,-?M)v+>M*K~MYlXbbbbW```tbbJ)abja|7|UF^ݨʵZ@p(dF"TGgʐt2I@ƴt(`@3J, 3B퉓f $X% !$X"\]}M v~RXVTA!0,-?M)v+>M*K~MYlXbbbbW```tbbJ)abja|7|UF^ݨʵZ@p(dF"TGgʐt2I@ƴt(`@3J, 3B퉓f $X% !$X"\]}M v~RXVTA!,-?,=-?,-,,>,,,,+>++>>>,,>>>MZg-M*h)v=cY>M+>iug,w,{>g4*MMYML=LXL7lMcL*cL=bX<}X(uX>=KXLXX&b%k:LXcue#u"k#u"z7WWxSka|skjt`|s7s_FTwhzlj5‹FʒEʔUӟ]ɒkĕw̨t֦fؤpܶoܶx}Ƅ̅ېԗΖك學˩ؿĵĿ܊ӫΞŧŪζӯٷӶʶ່鿢ɹɨɹӭҹNj͖ӕ̍ΕӛĨ̴ժ׶͡ا۴ApGi$!B $á`@ˆCP $S\ɲ˗0cʜI͛8sɳg$ vBVs_@ڣsԟLU;T0KٳhӪ]-~PqWou 4hp!~{]=QB_yşض3k̹-#uh#I0I2J̍סn /~K;,^μ9`cxAȐAawƀ PK-7v*mC>_14J<(o?<@bI-䑆?tk?"n v I?qwp (4hcMo?aǍDhl?X[.?]?9dJp#:l F7ihF$Fs;s?zr|)KP㥗cd裐F:hli"E=锣?pLjġ[h b$iCX%Ae뮼$Pxj3F6V]<$uI-1"~zXXmGn@I#[͙zc7肵[_~3 ].ʗ9Ah)3pSr~|ޒwx#k`^|B<(#zq~t (R&V-er [a0 WU P 1?]SZf^Th |\C(P$=?lQ @DX˼ESk'^&ᅔtBl B.cQbnjDíl\v4zd;hf#^eR=&p;Fz$B )np=+ AI5RT 6Sf<E9PaH#B%( (L r1G 'fd.DTp]>qn|"?NQQXњ6'B(8r`Q")x[tF8Y!a<CC6 !b84G(JT &|Rb$AJ4@0XͪVծz` XJֲ`V `hNBֺn(bNWH05hc;!?;h%=>!= (Aa/:Wa긧/ӭogAk̐^E19LœtB cB1L`4m?HG(abFGk9Ht=T!FxodptL$ApMmHyd2 "(FָMrN}pQ&7@7pd2W<7˞&6IP h 0Sx;M\6󢧒#%ϸ:Dr[o} \1wiJi*p >ϐ#9sim2Bpa! 5jD}ғ!{go~S^j?2$ bނ$xD:*Sw-|ݹ}wX{N"tƏVc$NHl>mxhq8**F\n4>̡59͉9ΩG]sOB=mc,j,DrwJ$V˼5/(~׺NR"m$>vlז &Lxm&n؀8unF 'pt" 7&eb"xӇ+E_F6dKb5cy~XyN07*wK5vc96#Ab4Dd5zt'e7##UJdcWe$@d{$g@gv6[`zT҇|zfifg~hQhM]PNۈ_u}C}n#jVR~3~V1vQiQTkghwi8t[%lvlM6!l1!k!inX/ 6n3:<ٓ>B6A oX `S?)fr `Ϸ$qZz7"S6b6IA%e\ÁE8#)qp+/!嬎3Ig 5u#9E,#xYrٗd鮜×3q'd@#< TǮC1I?aɚ[˵걽1?WBL?hzSLT"Ѥ{1&Ή_ib:*?uԤ9tQ!yyѰ8%%[2E)Zf\%tbZDU4Z.XZwb  +j*y7 dp''GX8{x;=?bak{(-+K]z}*h~++Kh ǻ8 ^HFhN3"BƋGB~wZj]1 xIQ ~}*Ӫ#T1!.AIC @*,1VдnP@XeG)JyƔP),KUyWI])_paci-Kh֖qs2sZCQrS}{,*jCToC Sy}ᔊᖚ0M(ngWL$* |JS 5=D^F~HJa-ceO։׊4T1o=aBm>l*#cL|?zM%Y=!Qv>6kNc玽B.q-sN^FS!]{8h[.-Ύ~Kw.n: ә!ξ)Wy9 o;K=M=8>gSm)OMvPAO-BC BXE5nG!E$YɊQQzde)/QtrM9uOF!~VDtSQNZsTpM6+{S;HLOiI Tk+~imvu=Z^mDAZBk^5oܹs^ -S.x_4ŞT8~B@`TNfAݼ[+9ТIvpŏ'_޼G@[- '¡7ԟ`$? * ۤ)Ho=P@CC [q ( RAq;Lc &h,'~z$)QErJ*$鋬іz6iȃjD)(Q L0GRRIR+K J+tPB`{/ "rG#uA(z  He/s|D 0uBcuVg @E59 l`-WCO&LXg@Qg[qՕт Xiw^z` . |+%? <`l5/ʩ.|XU§jzK6d.a2-"^"l(a湠 d YFPVzivizjjzkk{Bqd3lި͟&!1vyp#ۊ d3HS:l-dx_xk"hǟ|`&T@+x8BKs/ ϺB|Pk֢Ccs{CN9a̟'q fq[*l˞T5HOREpS<Qaa,8 UExO|!?yA:u?&GcMQ; #T;- p6@&T!$,M䇄rX! '@`&eOE,rb73V?7k2k^^ =bs^#9D6*?@JFBoS+J^d N|tQZ4f-!G9. d`FV] p|'2!L| ']rNufURB%*jMnRдp)Sr0|~&=EQ$/TIxd.TR <7 SRr2YrjWSD!,b*?%-Hesokt#G1(7H< h(UPc+6<ol[ ׸`RtmŮ}C-5!MbԭaYS6_(&_(HplVNPԆ`W ^˨jqkcꥹc KHFThdF 9Ee pCfؙu e ђXԺ- 4$SZB QVmo}[WI4c\H`n\A٭'rCZd @G ]Jp?FI$3W# 'r+9}<:ёt@X:Ɏv;'d4Ϯv^ ~A]nba C#{R f<'9H>o~?F.ޑr@?{_5rc 7 |SB ͜* UBQW ɤ Ї@AGhzaEANy6! g9ĸ(NAyD6=9.aEBW[$%Zs$3)W"hjcY"duA}.*7ڵ+Il= 5LRv,H*fI [ rSD<~yp -Ĕ3Rs:z"低~ G_ +/z?kh2Gsk]!C[c_ƎւYaGUOyլꏫ?:ֲ~ IzȪBl 9Y:G`/&gYzk{ aw4#-g"y !{gZz^{-Fzԧ^g}]z!*r\ N+Ucwn.k/{maOې7i/z!d.e\_"@}.t]NgC^ ߾o2CY˿ $&3 Q ˱ᱭ1Jp2-32.K2Z@pQZs l ,22 K.3l+34XR3r*xsXʺ9!FB&DEZ=3,4L+74X[c8ڦװ κ5J5.2j35 /;5tC'Cꩶr6@Ac&a96X%q6OBE6Y)6gq;&2D t9/W&k&l:no{'~C7lm[÷`7}rC\Eq9tqŢ۹J+zh鸏 ʨ)Fzt99Ӹ[KG*iCjܛC*mk:;;:êd˺ꪮ; ȉ d;;;;;<ȫC,<2m,ɲ<,D4k;>;J[J|JJJ=JJ=@; KخՋ>0A/pK>?۷ ?#0Ss??? +@#@ [;*mcK!*2뱭 , a22.1 2$PJ0MC3H?AԴqS`CItCRCSãAñlVcW#K#E[+XxS|E̶/Nl9O>D\L6]f6S1,P̤dP>R%fk 3`7r۴ VDe/ k*ITz'34bL8}5SFX<=1u=3ވJ˩0 #0{N;N4Mpc *h*d+E68Oq/ܢУe˵dLM~e >Q6*D JE~uJZeZFކŔ_W!_[\78j)T6bnԧCQflKIɪ*ifVZfal6ʰ^knk~kkvu/0WcyggD0ˆ&zCV169hcbMa~쬱譅?8CgK[H6!eAQCAlLfid&6It]pCinT..EF捆AxY2馚n4GXijlGu~~*l` f d5~l6mppp p B뻶=i ϭp Ȥc~cc˶YDlo=~qAmTm$)HCd>C~!O7Ln ]>9nP &'wr){zXh<.^(mӛzfӸ5vUGں+Mo)p?pHpXhpCtItJtKt'ptutpN>w qgR/XlcWglTcAqu [A#OQb$/%o&'Hh$]DP6]Qrlwv?AE4K9sU!j~Jwu6Ǹ8ϩ2wj;wonwsj?:@/jFa_a;E7^GxxxxԊ ׉pK8v5'O.f0Hn8 tPPHGz zzj8}퐭/ uzEp7' >vz{qm-κ mS8؆8h< P|HYX&Ӝ}n wcFX|z@>DU,9lTldžl̝鮻K9.~9w1C7(K | Ë~7X7ڷ}|@|Wv=`M6+{9|r?r9Oۈ1jTy1Foܿ{!* RG0 O7dFᖌ"дS'O@9 GԨujjPǡEEa8]=Cz9b5ū/7 `c[{o&1Oz0L.d^ @͝?#Uic%g G,-Ʌm0h͜=N#o[wo?u7syZbɚ~: OċLW69G?9`F~&?tKaE#BGd#CkCx .E8aGiMH!GJMsu?<<8CyѨ?S(# ވMv`>o7riB^ɑ!HICQ1Ovel9e`; < 3:pg] ?o:&z֭݁) %>bآyv?ALxs$Zr)fs#Ѧ A\cUɴ,TΚ @u7rmP%,GY`O>6?>n@(Թ=O& eaeC )SUK K&F҈[ׅlV#y 7PnYpK'*5;#y!UZۂ-i2K3F?4BGy)@V5a-Od0KvGkx.y#xJ* ߕޥ7}o$g}iSO?F64CS";8F2D?D'麼߈^xJ~lPq?%[i|mKsT#;w xwn{1?pT\Qpis_BH=я DHC"2,ciS|MՒ(LR/O+_)`PfY[D%NJp(!$cA 7LgBFd#gآLL#@L)V3wL 0u9 [rLLGJўd!KIrco | Bۀ0U$S!g5;|ri4Q rFJWrUp=ΆT)--}cdJS ;'|3Ӛ!GG6P`d9T֡xH2[$,ǑũjHRWWYfd+7HNV8H;Enm1Ѫ\c#cUc9q;џwP3Rԇ5 -zl>fTEVpl]ѓYrsngf87 %7s\<7BKwť|74E3ю~4#-ISҖ43MsӞ4C-QԦ>5SUծ~5c-YӺֶ5s]׾5-a>6#!<,-?,<-?,-3,596MZh+M+Y>M=Y*d)w=d+>=KLX&e.Sdu0UUbJkI}I|Uka|j|skjvc|sj7UpKzihy„NJ5‹FɒEʔUәRӟ]ŕs̨uקfצqܶoܲso|}Ɔʄڕ͖ق屹˵Ŀ܊ӪΞͯίʶͿؿ鿢ʹɨӭ۾Nj͖ӛ̌ΕәĨ̴ժ׷͡ب۵Hp *\ȰÇ#JHŋ3jȱǏ CIɓ(,˗0cʜI͛8s\IPϟ@ Jѣ!yDʴӧPJzS)XjʵךVKٳPâ]˶۷p+Kݻx˷߿A L|#^̸cKLrU3k9)ΠC}02ӨS6lYÞM6sͻ Nȓ+_μУKNسËOӗ~\ bWO_?{nLBo߂ 6F(!t1OdLv ZW!oϤ ZSO3PLnϊ-['XP@CntQ X?tR^\v`3n A*-= /Y&yfԣjh?+nt# $& L馜vxcvI,SsxO:T:jϩ*n2@; n`̤HO6A*f? .S@TAn.n֠gIg& =s 1P& k5F 7K`fnn:N&HO8osɠ+0âe4lG>{W?(q\ o;?|K6N`{(71g%N+rߨrvM3G,yuָ .4CµbWn^Ql4߸AAN:nKNGLj&,OE13/|NnPɳ%D=?7?W#w\~[Ro<7~ǿ,r0\/ `H0lI:AC,dd \ ,@ xd O =‚@A ?BH0Ĉq:XYrA7@?$EAk7U㢘;Qm@؝pY7袪6>*JM3F$L:qh( }dvc34!-O@ڡ  ,Dєl##Mv򓆼)>)C"^TP.v ja}z1UL 혉AlR)yj&ěRL6K5b"@ ?zS&kTB|!Mg#\?@enԟ|MS:g@ZP><,9==WRsŪ) e6"A1:~jl(Bs2B-?nDYx+h8 "C2QxctmX|*@4;)B!7fXZYTyHLaRLAYk+OQ,sDe &R\T(H}ibEHڄv XҮRAԴf >+:X"]D p!dӧ$øeo 3ckL\Ia%2PE<ā H`P@0QՃXhOH<_q\xI'vdcQh 0"2Vt*B9\C-nQ[hT?u##A>H87jU8jy{82ɀ; !5RD27ЈNF;ѐ'MJ[Ҿ4@nhRAkȃB V5x`h5up^ cmD8mLsEy"\f8.7sH}MnLR`G=|IO" rg1WmJ B58?ܩv2&-mˌR8i58bj/;H H>1mi^$DΙu\g>gTw\ ZkgCynAtѦ8`RyVubCJ%'M)ͷO2R܀)JsfWQ *#HH4TbUj^kNx9oG80!y̠xxǧoJZHe՞nc,(k»16`{cktϲ7.KNjPŸZ-}+ 3(?@Ԍ&> +ļzc5n~OG7`!bK1# 0>8 32`v``~%&afa*K-b1FE_gc8cч&X'gW.#^d2.؂kCEVPFr`84fPf fJflf'؄ag|~hXZ\؅^`b8dXfX6&CP CjajdjjkEg8[уmmdde30lhtlmmT S؉SQp$EMg{kH6pyF牴X''N\y݇$S]}j,N$o$Omv oja x@tK/bXyUˀ "euXg(f0 ,5ÈXew: xTrЏ&hzpUYU]UVQPApP6a[XqZRNM`4bzR6WUQy0a[|[`օgS*wLeV\LP0EqRgQեL}cF0P~Y& ~4W_tPvWcS9"ab T $r (U`C25vc7BԘ 1(ܐ &QI8})C]u 4(MI;Dhg/IkFLYY(X0aB? QX&W ٜ9YyY|ij CFjVkqXD♝x=ll8Fll)qIp}TwodJx%8k:%qtLWL(bćQ#a'Ow ;suaՍ8t**2$Z|}aWw8uwmWB8Bj5ZX◡xeXR"d7TZE jJ<>}UY˅lhL bʀi'fa_` b`zɗ~Z|M2FE~e;)Q *q6g!ę:ZzJsB' 4Nxmh@D2:lw 1l`pW2! vbPǪA-i v/ 5Ԡd pmu$p:P50PjՌϨrk P.`H4bpI-V'ݰ 'ss!MA*˱E;떎$ ; @,"W"SJ,W84LxBƀF#KO@ r7~e/ۉ puʰUHǮ&S6dP#O8Qihf_Yu Twt0P! ~)Tm AvN> ѷ vB'`0*R YgŸJ7f)E;R 6Z WLJ/B/) < pJj˃pmː +PɻK O-{Q q`Zv,eyk"{HG([Z3Ж |KUxl\|\igjvœ&B:`4YlAl| W3lm/fINvnV" )1Ąhsn,5O R1{0MIaX} 400ds WG)&ŎZgS?6@mK 2Kr|G xLVW%tf(yZ˵[/-9_S,Z̭A969o{{܊hЗƯ̅ϔ][ٕ_lZ{й`ZjYŜܧY GU Șkf!9%ڼNdL y+xibFfgŢLֹV =]}=0 @ kt?DB3Cԝ֪E'ѯ7cF汔GLFb4noԃ8Ӯg a-eo7p4 AGoMMI*vNhk@cevyCe @%x&KRG-ͤryM8eTWcO&[gh)K)/Z> |;Z8ʹtM7(UzQe .=28!|`-iIOow;`[rP%UEEUQ` ۇo2Sg&Y*[:(5i7y3(`CYՅa|~՛N9l =fIhy KRg'| L^[ވܢ,^mhq+@놛qK{=~t^GjTUIi}E[fc 7ݼ8 @ `sƗ;j~aFb"F Y-cK0*\E+9gp[>[eWm+*M}S\  2D - 7|g:^~芾茮hэu0 :ڑ.qF:ՙ.iiGe6ߠ@JZ;@Ut0\;8xB%Tw=hnHӽ``HF%۱ZTj PmA5&:<:z7A7yuw~\ҭ3%ELzbڽ `<%"o;l 'CZO˔krk IzDz-]vLg_c[6 U* [S?Jn#(| ˼I_5bUp|`@ i3\5r>9lЇ#EVA.]50MQ5B =ƭ0 K9OzAkڬqi >&Sv:EzΨ0P xa.+EٖnI xoÄaihEH <*d0iK1eΤYM9uOA%Zі p?L џp PC?v8,¯$"m@KX}Ylܬ[_&\ѓ0{eO uEgF0bKȒ50tчUfkرeM*eeӥEi8sHQ-<޳O^u/.pWC$Co/9|>I8/١7,\p@yQǞEǻ;ϲIU.?,,4 qFkFȅ %{,҈hH 1CIr9"1) n ކJsL2˜d !ja͟ ȡX)O3O@ sfTYUtQFuT ٨e xRL3tSN;SPCuTRK5TTSUuUVrb|'މU\suךNsiȱx5XdS-?uYh<9qc#ado `8XȍwGg] 8PǠ"(-_p`#]b{,xb>V)J*Ҋ+,Z8Bj2ns#{t餱@RRznq">#4 SR7 }$1'~bdn3/rcR7N>Ϊk~Zh谲!aV\s{ה|8o-xCMjb9 v 2``.rĖ9b7E(C!ʊ[""5JuQc$cxF4Qkdcݘ9VP"cqa N6yUfZݪ!V(9A7&RM'O.I;&I_KX C1g$eQ2 $CeLTHЎVdY͒[DYJ\& ?q ` [X.'5LiE>fh\:W.X!bͅ f.ݙc#P4,%#s1a '>7l xe YeSyg@9ϊSH =$lۤ6%i?@ yn4K-mTJXG]@l'Mi,Gzh"h6jT7|*_ dS* +N(Ӿ? B钶M\*,zجf_ݕrD甖+KU[2Y=u[WqvCTnӕB*bm,.mGL,[z>ek'bps(営mww]kp5QW" .,k^>gx mhrH Pe/  ' 8O>We0rR!,5d+_6 U" *I Y@JbbS X;6c3Q"Rd8>Hqd(GYSr|e,gY[r"9/ dLǚkUnd޻aIT2gOr:ygAd3)4?ӗ&¢iLpCYibj  `>dxT|sHE IOjH;Q=9O8͙<͐vTvD'@ʊ],HBqX[TQҨZZirfwmsiSu4]␸?,Lnf]j`JݽYf-,X6XI@Lת]5 ^kYLڳ oSz:yR;N(̝~{M[sJC[~'9K\:[hu6x~ @P |bCv2pj}$18~~<8!m%ËQc &G&F4lE+ağM_5C~ d?~@]"E(YG8Q~}_'cG5+wlə+YV!![k~g=$:OK@8TZ%@xCٗ~-4j&w"@'i]/)'m"sAuaY. 's 4J cfxs79(-6`/skꙈ*(J zBz3 e"6'!;j7~멅bꊢ88 r*xw4̿t0j;Yݑ8:a9+DZ+tBEߘ[ L_0@,ʷ͂-2-U $=y"IJJJJJ6a (3< 9 3|˽H>˝@~[^@&mL̦L,?!$B#DBYŠ~VbBq}6 Cz 5l9:ݔ QCͥXD,EDJDQ9 )@NĈVDN?[(E [O% XNYj ,Fkl:3αFeD Pz|F! j<¬:>pQ@Щ N|*% eՈNKLN$8N+Va;OEVL0Ѹr ' :teWHOiU5ЏCPtDuutP#:4zG|,2Q  Qa~DSQ؊яQQ҈%2RI}&%J)塣 /} +RhZRҢZZZZZ6= 9 [SSpK@|[ DvFuIHFIPLeM5G=O ۗLmRLTULٴU9M![\͙,T!4MkU VyM8bEj5fB|]RNׅ eVl:oUl t9W0ޗO.wEvސONNU^1E1P UPͫ8iXXFyЇ}_X }lQP- qU`@YЌk"`z# ڒ[a$7%`:Z,U(,)Rna#>b$Nb%^b&nb'6ӱu:-C)~b-S[`ۖpۢS,ֲ}(0%ĝTļL5DŽ[\@j;VM3~=՜IUXkkMΝ ]WL]5]$U 6 ۄCٵ7d fݳV@TDN& R%M^#=mD*^r^^|eEb_։WWW{^NbcdK27_=؄P fňmbYmN#`ňPEX ~ UYݫvV#Ha{=a &R%=-9f (-vZa-]h.Ni^ini~iNbՠbn -F   0c$dڿ0c֕4V5K5Xč1:f  &Vs5XspHtxzX\N|L$fT@~Td4H\E܌qd#6z҄lm2ֳDn%!݇¡zK.LSie7 Gd+FĀ/p8*.D` [VnW%mReÙN[@oE_q%YF+e\^!nˠ^`ne.dW _ׅ:]glJ -1Pߠo~uMoTff_:gq;c(7^jȂiP ?XUpTgg f`gȧ0<3B0J^g g#7`ȀNp&"m\-|s!h1Mhu( ֙6!F rT1i=ͫh>tʋXʙl-m%i!DtJ2[NyLuQuR/ui@C2* jƈu863v1@ju s `Oj]T6c7ˬV(^4nW8 .Nj&kFeTnvsw\e\ɾ&6g[ǎlazlͤ [݁Ox:W|11m%V4~m{}k)ˠmmMN6NMٮmHmnn^eE&IPYnmunݱy@Y]eۀ ϸo@frzG7Npp v)z{G|/GPMߘȨHqrfxn~} }hwɿ*F =./ɓ 2يN~3wɒQ ,}Efڏs At0tw WhZwhtM,h „ 2l!Ĉ'Rh"ƌ7r#Ȑ"G,i$ʔ* raKVʑbda~^'РBX埦-Kx4)¥M^aR&AZ+ذbǒ-[TAqR&p !Z ۾mH+E d/dݿ ˻</42%e): =$8睿|4 ܈% r pz>cȒ)x m7p v8R׳oO41^CWb{,k>Y t? ԟ=;,??(TW=PdS$v= X@Gz&iI ( f="(#*Wbӡ{M:$QB@2xH~@?| @_y?4O ?{$cMxUh .hC;4TZIj}he`&Ay矁ZxWRz*vKb2/B=5rHlS,^PV狟P+A?4j+JAs'*;/Jk Oԃ.,WRkn=K6"kO |iZdobu+=~_ՕJ/1<3D} uFFPi"p;tB1.#f?d3RSm#G @4ZUP T:6qӛ>[.% 9 x1~.8?,?$tL ?{s?PB1A<ƐYeu߉SLbq]$OdXB "(!qn+"% ()RV"-r^"(1$&D1EfR͐n$N sTHU7X Ir.nq]E22^Q cL2f5dg;)iRּ&6Gmp9yNH9tKf6c*d&eEnhGCS AHB!yHB*ьh4k03:G,Z6!lC8U=Gu%XIjK]”AUv:iZS8}v|“ƩF} Rh5>`*vѢ + 8VQ>)F-syV*Yq X",f\9S RGJ RQSnx?,qS‘n}D8/s1O LP,aK4Qle;S`/?KX:C X1# g%cb&l#`cd D$T S B|lCND.C!D V1{ X,S1&q"gPI;t3=~3-ASB14EhЎcKrG])ՎLaH_摮ўc!Q2H ^H"G—}ěe$CI $/EC5akSrީxl-X/v?~UG{݂s SΞ=.jx $@)،ИXI] aHCX!ė`ْ8Yٕ)YÖDa v aa{! ,-?,?-?,-/,+>++>>>,,>>+>>>MZfz.M1t,M0=PK~:VX9UiMYM,L>Y>M+>hug,w,|>l++MMYML=OXL2lMcL*cL=bX<}X(uX+>=KLLXe-Vde#k#u"z7WWtQuk|H|sr7sFTpńƉ5FɒEʔUәRɒkŖv̨uרfئpܶoܳtozƃ˅ڗΖ׃嬷˪׿ĵĿ܊ҫΞŦǬζկضӷʸ鿢ȹɨξӭNj͕ӕ̍ΕӛĨ̴ժ׶͡٧۴8 *\ȰÇ#JHŅ^ȱǏ 1fLɓ(-$˗!WIMb 7 EߵY\9ӍGE(_Oju?|ӃuYgCŊ*eud%q) ?b<@#ty.DÐ]ZAȘ]^Π=~MӨS^ͺװc˞M5ڸsͻ7ХG89ዝ:+q#S:uj8Ë"ս+@{| @?:Wc@ 0t x 6H[yz WsO X~<~sJTa`9(㌶%ajb j9xT01a46iWi9nO5@HL?P9eO`z$WAEA7x!͘"P9Pn&8RIQ43I5>ucũ(IǔBV"=bݣGJꮸ1j@wI"+m"}*mm:@rH 3!섈zq $|<9Z30pt@fm@'fJ ;˜=<M)*q thG-$-jD'b[rd:؇r:(9\RR(κp= !a(\Xp6xЃ>!A %*DJ$ W&j}iN1ծkS'p,]$t?AUC‹I:h,Gǒ-_2'ݦ$$./Cg gȺT`a/L^sB:җN6zpT'<:>=9 iDi|c9[RӟJ(PУ@f患 Tu]`WŐJ٦ӱ Vke)ۗc^CPȂExl =xMeREܮ@[am8ztÊ.pޕ_@^(*o,#ʗ83Bl@9bzWǖаW?ؒ٤yGa-L(S%YD*Dt,qy(Cz RVϽvH\rO>3Jc"X"'P`mn #R3oG.x_^>HDׄdW:CԢ+1fZ>=B /чÝx׹uD1)Im`DuvRo;ۇQ~OC8BêXEB*69V4tT?4~ur89$@Xx+,B0C5X\na>^s}d5X7C;}PEWAEceLT@pupE6nQ[ 50EZwy  kf] q|Eq3qץ wVuDd${E^+F_>7EW0P se("Vv Xy虞ƈyg aAꙍީ: )%Xiď(xbRىx}AAAPJhUy7) ّD ;I!ZEek I%'TҶ,*#cQϖ ѓдFj3DYtVm99Z 4X tSj3]Iw_:p䖖(9UYpM9{A#yʗFXsc!5p%byT4~3i`vXwIymꙂ:m0_yQr!V?VuaǙ a1WМ 8N'*[ɩL7i3)xI։v!@@&٭y0y(QzpzSy h+&||hh gzfPPxiEq}u !zjJ4j i6eXv١Q#BzteWϤHkVXu8j7HJpUKژprv>WjXoh5n:+n֥1ʗ)1rYؕ6Ysڄ=ƗƘzZaqvT#k[(7 e~?(se^G_6`uX(zIګ0bTAt"uxa3 Qt8aw2IZZ4Ygv{EnG ;kgvWex;Ԟ qD a)餟zፙܧV&{ ]9 i*ӇiǾ ɡ*{G+'WJk^1UFf5(EKZ<46F1=ʓRQmuf39^QOJRzV rQnʖ@|K^nӤ3Q#g olʔojejK 7vIۧ{|q†buɨc Ik#:8''G{s|<̴v{Jj:kKuWى[l *zͺk׻ɭ!LJ˾|ֻػ[⋞H' {sKz Jy(վ N j"'SɱҨ3eb P-Ugq6©Zr&d#7_a5P=ppQ5!1 :uÉwSa{Q7Biz#3~C8-lIh8& H+"!`5@Q8 GyY3Z3[[F{4n3ŧF*X#0 gjsYuA$s;;;[`u1<1+DJ>4XYU\%{dk9kg>SBZBLF9~=BYq  & rQ!ӠOVp @@E8 `z#CBj s9|NCby=ӅVn7?H0LG߃ $XA ^Pg/\0|Âo!@" f#&yiͿn컄0ĂH=2x3k"I)WFSQJM, '4(_B8O`GuBUԾxT+6#T:=g g^~d^m㽍Sj& @I(Nb[׽; `7Rcs#@LN3Y Lڬv>P:/)oKJƎ#A/(mAnhTpAtA#pB +B 3pC;CCqD" t͆J{|d'Y *Jr*Y:(XIfGp"}KP z3#5®ѼL_I Ay#91H#?vPA1`s WQX@{`> )08Ԩ tP;ԓOq .δZڹh5QHMa.^k.-5$3]Sn&jWMC_tDr%9wT P~1ScGIM=%CReɒzT1h(zKiG ^Ÿ[F#`:=W5m \ ?0laa@X lƯe0f,c< RO#&P˨eEçї"f!`6h Apq$I@(6bNmzt}A.PKoc*fhFmi{jTQ:]u4c0Ǵì {N KOxprRȚԢCF1餯i"G}MlbCJ\dQk@d `[p11KYb$ ؟uf<е@l7>,v4UJV39|%,c^W+ ò(b8?j9XErTzI6@n`{)>̋^J [F傪юk`#٨6,lh+@ zJcp}L'V6i>$04 z|?B 8y P~47BhILf |f4Ykfsf8Yss|g,,+?MZfz+M)v=hM>=YWu=XX*K~=XeMYL>Y>ivc,l,w,v>XL*lMuMcL*cX<}X(uX+>=KLLXb%LXek9u"u"x7WWbJ|V|Uka|skj|H|sHFThȌ5ʒ4ŒFɒE˖UӜWŞrӥ]̧sتfؤpܶxx΁ԃٗΗԁ篯ͯӿĉܿͿع۫ΞťدضӵʵͿؿ鿢ǹξӭҳȋ͕ӕ̍ΔӛƦʹ׬ָ٧۳H@"4ȰÇ#JHbE -jȱLjG=b ƄS\ɒ o1yF˛8sJ| ͓: (S>: 'ơPN,/(̖6=XSׯo&?1 ۨMg/Ljf|7.iҔCڭj|2%e*G+#pkjd"qW̨=6'߹dm)P18}R8#G޺УKNسSËo䚯;_nӯg_;ϗQu%5(?XbI4-È9e3 kAij?aÂr@3;ɍ9 TC>Ѕ\ARb3 Z;O0OOc=rE\d¥`x9CcƈTƥOaR ȵK n7\I|b,>mٚ/Ee)T^!W""0ShR/@#(luS@鸤D yfkQխxATQ-<+ 4A>nvE`ΰc"c&uS 6b؛Zͱ)PNxVM{Z,+| "X?FSz4,l, ت*kUK42 >xy2"\^S*U.lF,%Bˌ4E`hPD7i ҂L;u">Qlt#+2:ޱzHH2aL!iER$s+yɣ!s6Yo~e)IiRӚ3ayx#` 2$6Rb+6 C".-iigZJ,89"tsֹ㡶MڶG-m)9mpJ\m&%r%\}֯~]AKK@B9DYFyHJLٔNPR9TYVyXZ\ٕ^`b9dYfyhjlٖnpr9tYvyxz|ٗ~9Yy٘9Yyٙ9Yyٚ9!,yR-?,?-?>,,+?MZdmv~)v=mclu}c,l,u,u>uMkX<}X(}b;XXXXbbbXX```bbk(;;;JJJVVais{*W)a)a(j(j's's's&{;s;{;{J{&:%$:999Vj{{IIHUihrzݍ+>+>>LLXXb%LXbk9u"u"|Vt`|HHŌ5ʌ5ʒ4FŒFʒEř^ʑSΙRϛ]әRӟ]Şqӥ]ϥpثfܶxxԏܗӁまꉾ毯ίө؀عۣŤʯʯدؿĴĿɹɨξҳŇŇŎʍ̕ӕ̍ϢʹحԻ׸أܬHA&*LxÇ#JHq…3jehyxQaǓ(Sb>/$KPIfG#,iρ&'l@(9 F8ŏ_ dI&'~0#v4įUӞTqJDS~o^wڿ47%LtvW79~K:F 90+N8_s閁U4Ġku+  {4Ǯmܷlkʯ\H(^v_N~" Q[/>Eį'(h& u,F(!ͅ΅sN5f! sH!Pw΅ ԋ42(#?$38 pLA ?`APpNTZEb&`O.ObWggC%r 賅3OSҔ[(ʨM ;c @O #`)Ϣ s4NުMgƏh~z?l, βjt笟Z?@I[0;)mz\(AV@r[=<ґ.s077 0ődE("nEA b1 0D ,@(LB2B1<3Udp080SjJ#6x@ *tBD3YIj@8-b@@?"B:0VhE=~'bX' M>Zlu}Kb```'s's:|IIHUτ>>LLXb%k:ŒSӥgŪζ_@p(<F"TGgzDȠA,WjU:uP#2Qd'>k'} $t (aPl(S'OTrJXTVXA!~,-?,7-?,-=,,41MZk+M>M=Y*m)v=dv,{>u>=L>LXL8lMmX6yb;PPOLQoVchbXKbXX}KbhfTgfg(';;;KVaaf*W*W*a(j's&t;s;{L(NsJzbka{8$99Tvajr{IHHVUU_{hwvzy+>+>=KLLXX,c'b%k:Udb$f9u"t9v!{7WWWbuRsf|H|s7iHFT_rńƉ5FɒEʓTәXĖvӥ]˨vקfګpֱvxƄɁԄڗΗՃ毯̯өؿĵĿ܊ܿ͵Ҿɹ۩ƧƫζɺӮضԸ˸忛ɹҾɨξӭҳNj͖ӕˌΕӗŧ̴ըַ͡ا۵H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cD(Mpv DEJѣH*]ƾP>e*Gׯ`ÊK}i7$XʝKݻx1$ʿ<zjC]<,,J;P.?zjXwO2_PL۸sٮveFG.2BWAn:m߼ |Tz2@S=8r 4YV}#@\MU 05YC;ڸ(4HuTsUbN1HلBVpc"b0i`)\8* ƒI'p\iWkf7E}U)gv}c6裐tV SX@:\pdZd $_s%l:$ ܄QZC;F뮼 Y`? ?9ir#%=v<9z4X<kサ?@;60T d&TgSq(/7NY\?x+$lAC))i 0sD ʯw@-4AS8P9NDA-OKQw`-dmhlp-tmx|߀.4n^8/79^o3wR(=>:馏^騳鯫>{|3Y`.h;<3;=6iثԊC=x~s/>_~C>C _@PC`x~'H Z̠7z GH(L W0 gH8̡w@ H"HL&:PH*ZX 2 Kx `Z(B!E0z-E\uȯxX00o q `@` l3 M'y[D 9NrW bE'lM,apA2PlؤG(qCFK0y I=He/C%z tY@:5MT3 ՆhU &6 ,`S.q=rOȀz c!KY̊?PU)րSqeJ(L` P-=eIMF*U @MѬԢfjU3RԦ:PTJժZXͪV W*VU cjYն"d}w@ խxWG@}+`W앰ka:d'KZͬf7z hGKҚMjWֺlgKͭnwv)HOdANxr\wJQDdh!ɉl( [q|Ҁw( *T9u@I3{S}ը({0зs;B@zbb}t/n pӚ57Ԅ@1w>Ac#;ϟޣ>Oj@߽I?, ܇X͑0mw I8|VsRD1P"aw'!OW27 -8*bQXQ\.w-."/ꄀ-wd[E(|FhP,5E` edhh(nkJ88Q$ P.P0-(G{rH.uR)R;2D G 'H1с{$r(ՐQ0%cQ`0x(hrrRRQ)R7RP"猃0#3 US165-@S.ph8討/3?S?؏9Yy ِ9YyّiNG}#zq`C`$7QGOweZeH6H&fbQHqkmo4972NFo>tnVV*all616r yҔt4rCgo/sB"7r-#/zr6&%"(Mzo$O[rju x( xWxalӒ{{yyzw'~g{~(8G}v||P i5+H6XP72NIр4(_XS8/y Շ `2B/†ԢXR]aN($7$%eƸ'(2Yыvğ 1bQ(Ht(933-׎ 1ȡ4J4g2t5Y5<B:DZ]`]e_UӒ8dfgIzeBFd6fA;y4feggfmV`im&(lPIkjJkܦhCsEgs'bRg p"/RAq9' T6y}ёxaguo6vwhW雱49'w·YB ~ hwOC"B*y5+Rșw5)|Jox癄yz.I-E- *i #Z*xxC Plj]!հB# 7Í<3m%0jK46[B>Zc;B;DZE^E;BJ+uL AOeSVee[vFhօf}skTW 䖪fI^`qLv5xsJrk8nwrb*L73ŚÄb L<6ۧyj{0w(ybn!{wNTXrH |ÄLXqb꺟3 Q;[{țʻۼ;[{؛ڻܛJ;# ϥfNڽBs^S`1_Vk(&sb`_5Gaa5G;#kcAljar6;&33J*` j9!J:|t'`٩*"g$\З.2 Ҋ}g%z(=7#'J!] JsG%I+j#\żqbp @;/҃imja,ƪ$y렄"m{\v' 0ۢf:*iӳ?kɚɜɞɠʢseu˵=˳X%XXČl<\|؜ڼ<\|㌎4 1$A!;LJʤA 1IZ.ALI]K*M71L WGjT__ kj,1mLp%F}%aovFb>,ѥԄ2c/EA!!}qєT{ih9zF}&µKL<Q+eTfe{gMdHwJ\k di d,FfGf1igr  CtZIfQe*cq٩qد٬=h W; Yca&MfS -em cnj&i_@ l$7rm k])ݖgoLr(͖ngn|51{"5Qlplo3nikޒ駺nQhI>d!&ߥ0ފ17l ~l`k]m =.ZԈ/ܭA´ԗ8gTs l.pwq_nws-q刉x'٘)kD%ǪitYt騎5GH5$Ixp$]IR.ϡ^`VqQ͞Lq@lBgvjvÚ>r5t'1švo}#GT (x#^ /su_U0^wjviAp64>M#.N#}Mv"8 :oD 1 A#>(SP{"_{:|]ֿ$ *3R H1Fܯ>>J1{%4rdD 13H#K8LD.Ôd7 ";W<žIylʉvGٳ?]KM"YDӥH4oTRK5T,p( Z2V['z5֗xEռ_eHؗpՕ"ekl} $*vTRXaQYpnݖTp%ds J0+߼\nɋ7}Iw~W{6ZV}a#xb+;*!&qibCydK67[vec.Zpceyg{;mg6hVzivizjjzkk{l6lV{mvm{nn{oo|p 7pW|qwq#|r+r3|s;sC}tK7tSW}u[wuc}v#``=wvϷvɗx)Bww^m觧~{{|7|W}w}~~P$` x@8FeP@:bC'p1 `u@`&X"A8>*P|߀P"|Q1zPJ:$pXA\aljA@fzڸ@x(=q[| :&98fF0"8&H@IF\$v`I"[X?7^T >Av)ExӞJF‘ iLziuH#As{ -,{?hiW$X̃WEh&B}8]j)b Xc1cd噎k0iNvb &t EAG _ c&{ڀK"#Dd83 _jfd%oID^yӃDE ZR&JI b:B\әIS"GZQjZ4 mkͪVsW uq+`ĂUU,o۫KОHn}mlg[vmp[&Y w:~ivd}ARYB.$}[u9H m<* 6 HK5RzK+;E{gX$)KdI|T9.2B(<χ|r) %1qf:Tr5mvs()Yt?z67cQJ> yNxʓ/y2:QѠH  |7$T[]-eQҡ؇.?̚bIʨ24Ԫ?x*$@"*BZ:{٬3t`3,-ٚ  Aj-ȫ,|& Ќ %̫ %0Ͳ+ !Ђ, ʲ /ʺ,?&LxK:Cp[;0C@DBBQ/0$0‰X.7q.R 0`Kԯb0#ė9#GZ h>;/W="/dbp&db'D(cdFFSC0<1  U [Ǔo}.n GA`0ltl'*H;F(h+9(qy G{B ȗHt  pzȂ"Hlj @2̸,Ĉ2ʠ2ܰ%+H )[ ? Ā&8-# ' 3:;84[3Y!/{F J5Ūh J EY5Z{QEW(QJKشb|lM}55%_LьDY/!5SC%L˔Rˬ# ,̱kS3 V<\fzk{ i`a3ڌ_ˋ4@Mhh@6Vy -/{ANHZNP?`̶N၎RNlOOH<448. :OOpЃQ[OOO P]ѝPQ9]P 類 P PPP QQ-Q=QMQ]QmQ}QQQQQQQQQ R!R"-R#=R$MR%]R&mR'}R(R)R*R+R,R+P7-ޓ +0]!&KiX"#3ҺYS?*;:>%96`sbmnT:TD~((.Q?r)?T!w#u$¸U"!|[NX G%-ߒDHfNl.FEhb-&ͻJo@q0,pXͬ$Ah lWt(Z* AJaKE{Ŷל]Mb =XXX8FXXX Y\.]MY]Ym(U9YpupwYwUxYE&kJ8rpU͑eCkYkp8FuMĻ$3 X۴EB& I#yP芜9q0`eYII\ٱE$f${H… \(0I t*3z;{\ _YUY}j%14%@83cAbQR_/^@A(S`0&Z94M QA(a?} F,EE^dM7XW1X*ed ] NB]9] (e|@@. 0eD>XaMÓK8 ]>=TPJabi(0K>c؆Y0+NhN޶e^kƓ$(&jfJogXTMIޫ@i čjXcNìU~68қfX%Ê0hqY46cDpduj6a-&Qjjءjkj>kY.k !,ڋ޼H扦ʶ L ĢL*̦ JԪjܮ N (8HXhx)9IYiy *:JZjz +;K[k{ ,N^n~/?O_o0 <0… :|1ĉ+Z1ƍ;z2ȑ$K<2ʕ,[| 3̙4kڼ3Ν<{ 4СD=4ҥL:} 5ԩTZ5֭\z 6رd˚=6ڵlۺ} 7ܹtڽ7޽| 8 >8Ō;~ 9ɔ+[9͜;{ :ѤK>:լ[~ ;ٴk۾;ݼ{ <ċ?<̛;=ԫ[=ܻ{>˛?>ۻ?ۿ?`H`` .`>aNHa^ana~b"Hb&b*b.c2Hc6ވc:c>dBIdFdJ.dN> eRNIeV^eZne^~ fbIfffjfn grIgvމgzg~ hJhZ!r,-?,=-?,-,,>,,,,+>++>>>,,>>>MZg-M*j)v=cY>M+>iug,w,{>g4*MMYML=LXL7lMcL*cL=bX<}X(uX>=KXLXX&b%k:LXdue#u"k#u"z7WWxSka|skjt`|s7s_FTvhzlj5FʒEʔUӟ]ɒkĕw̨t֦fؤpܶoܶx}ƄͅېԗΖك學˩ؿĵĿ܊ӫΞŧŪζӯٷӶʶ່鿢ɹɨɹӭҹNj͖ӕ̍ΕӛĨ̴ժ׶͡ب۴4tq PlP!Ć C<(و(S\ɲ˗0cʜI͛8se~[A5/H1A&EfszKٳhӪ] ?Jj48АLP?½`(/]z/,˘3k̹熂n4zߤ~!FQNdB:?~?+_μhF0qѻ d p;c %ĕ]-@RK[7N9R?y՚%Ï&ȓ\58R|OD7(4ָ[tq#Dt =,O&6?¤h@ -5ZF$di晝ܓ`n!A?s`m!鶒-t٥odƘh6裐fZHQCO:>qV?Y~H|tIiYkA΄vC )4B,pM):FMC;l>$knZRU=#߭1Y# HsB0u4n L])R+A@$ ) 0ct Vlt -iQ ,$l(,0,4l8<.w#@D?Z&4)B@=m?@=EXDQ,ؗ%Q_J6 RWčPO|e"EQ7~=xC[P/rƘbf BxSyL+ew@Q`틫a\>lX~ w?%HHQn_$MHn&~ ^~!bSj,s~$=IJӦS9?tӽ܇nI;a/qOt?#>] h,T3S?aXia+d-u+]BH*Qn yb@QpmFǟ |!Ioa'>B!'j ğm)(A+`bLe"P؉5b- R UODⱅwr `7Ђ J ?69PThʃGF>ݲAd~Tҍn`R?| R [xR78|3*#N[$!@te#j31y|b"*,.(W7>(&ǏgE Ypl!90^-`"#B, QAH0pAA_ *<=(B r UR% JժZXͪVծz` XJWgeM c0l"R\-fi-qsͫtmPH Tp `Ͱ|#QxPqx^J`' gy ^W#HHs 1dD'? K|$v0((Fzd"D-YK]舐0n Vx7z/!]?襢[Ga(C3$ %`kb8CUwkoNAaAC 2^r9F񍤦 ĸG{3#]~̭EaG!JQyyK@N[\Myó}/mޒq4E8nuJ>t[XR< }gr@N%ȩ/Ro4#A`$-揁Qī%x2Ώ3:_X껻{gg= ÷ƑkO1oy64?slHk,X6Z_e 9,'Lg'VIr+Л﯒? ˷}YDuqJ! ]eX틘gdee-}Z5qa avK`mmV ؀hUnaox4ooW,p x<2q"rqr!$wY%X;3R3^s#!p 01f$ 3)U|J1F-hw"20aTad 1tJ!!-^gYU!"[u*mYu-X0r!c+awru21ObCNJ'"PRS^X\J9%BGt- (ᚡM)C"&(}%_o6,v!!Ѱe !@ uvbW aa)_yI$y"c*\h`(>ftM$Q%]dh(w+艝wI]"Y(8btcaIVc}')$ Q%E5vc w3$J J*s]Bd&ds* >? :"(X!~OQx({G&< :j2YJ bFfwRc _z.v1-Bg~֢7|}G 7-fѥ[z0)2yDR ` Z  &(6'A Z9 0ӒIT/*= XfzګA3;<:ZHZJ6yC#:]z[*64qPP'NRj1"g~)ZLڙ{;} s'*XPm}P@9 A3@$pAnu.Ibٚ? Nj_S!0q4DOz9B؜u_tC<" \gMO8!h Ѱ9y%%ZRzEI\%0R*DR$*X{Z)YZGb*ny[%-ꡓ'bd$&FU9{xk8WAB=?x+nB*ac J",){rW++^j~g{$¹yh ǻ8 ^GAXXN4BƋGRd~Jwj*j\1 wHQ }DRxBHJ.*J\1t/cLg(eaB)vE˺nMOSTdXi!.& ASk jn9>/!,A>2%";[mKtj{рbeMi]dԩ0 l/.q#!;NmV}XZ\gr"Ao.^}Mj8řZ֮t#pl8KlZXPܰRޢh-]{ζMhkؤ"! MQgkHgqڽ>ǧכ-%%8ާ~Ϗ*nj-~1-a)$_ C "?$_1OUS^$O ,1aH3o1hvQysXm Ay9m~8荍B=وٖ&ىِB&X;囙>%i_s0ۢ>vTQ8h.ܯE-cgܿ5a4BH쌗^0z?ߥ;ߡ[~w !{֞3an.8{3 #G~8m-E"aG 믒$XA .dC%NXE5nG!E$YI)Ud)0#vyݢ2iOA6$FNQ*2ѡQNZ*@ߤ^^%[YO5٬g.#A0?=%RVŶG|xղu0bѮfu%#'[l7b-hN+[q1Y+\S˛΍-vg׾}_ϧ_>B([-#+|D8H"荌$?*Xo?PsEb-r|! H*z7ʫ!$( ɇ&gFLs̖X"mg4(+o M#27:R (R)%TP 3*=;cLH#4$ ֹ2[as/S>9BSvYaDlu(d5k\xtXvuj *X,(W .n7b_8³,v. d:, ƽ؟yfH/a9"vy!l+yFZ d q.hjzkk{l6lV{mf饨I'N{OŘ)'ΥMrjҪpq1Gk˲檫e4Uʬ/dx_܂xk'hǟ|`&T(s+x8BІM<-2R>;|{ԣ6r7jenqfq[-2ΟbT7HPpUpU atc<uFOA @Vu?&G #O$BS; +;-,8@FT"$LU䇈X" >(B`eD#/G; 77QN7kMBo*f ?x9d8̢?DjUT+ʌJ>JGcB5G Y p2Z" ajP^A+NF*”`%ͅꚤVW\G R%* X|ՊW`i]_fAf,d)ky<514]⇷)p0 )GX%$wE^FI ]׏j]*%/Ts+XFʁbcAږlL7y pC .ؒ3< 1jgP)+[ su ^٤WͭeKR̖zؕD͔ πhGSief8=HӞĴSb]۵0#|mm d (m}[W%nq{܂M(ʭ f=L7!ĺ.CHR%/I% EM:$奯A$WT.v4' sk?ҙuc;v|Nќ4]""\NȀ[['|!osD#No~? ##5x(@q @j #fUU2 /rhD$*q L~D?13.! gωtBljKj|'ԸQx<8PXQZWiu ^ JL֓i)GM82ͫ4+5j[%tY^d6A, YɎQ~-5iS p%h(9N|gA-r]*n+R-{h8v!Hm%t!?%B뵩1>t}|Z.7e.]+ŸR;=[%62q\uW*Ǭ@Z2Z+[XD` UKײm-Ju06]mHd? YIh'e1kE 2yDV =B5h^HlKzԏ -K}]z^}U\~"΅tCB7w$oc'Hr 'z3ɾiݗr \ So3Jwbu{@N"R4ABAJKF+G#p B@[0ZA6:65BZ#;#X#?Ҧ@7:>5N\36B= ąDõ6(6`6]5<)$J@9hYr\B7l+%m;";,7j tsF2G\w9#8Qn qʘr8D838K bkj<8;a88jY4w9;nDj@y::F"ƞ9)ӹ{ɗ}YFY**㺯ʷ+Cȳ!HK+Ⱦ,~xH0:ћ, ʬȻ<ϊɂpɁ<=ΓԈg XHKRc?|?I[L0mr[1K0|d@P ќK'K@ ";L/k2ۄ2ܔt,Zd}BOB3N촳̳C)\a4,cpOOW1bđAO㋒8SCU9@U%d B5ŭ >LZؾm cQTW%pEV6Q$ SMEQ&Qnтε 7g<҂sF^7E`ƀR\d|3,g-e./G ^ e1oQ:_(qĨ7sltS>M6Sk_?@l!TCj^eF:I=XŪԮTUITQ;4զ f*<`(\\ =]݌՛<ʻcdefe-&k]"lּbpW&b*b+b, 'X1=@̙荌ɨ X13,4MC@Ӥڷe3U[Wݐ md[\RòD \pDR!]{]7N-R1 0^y5\=e"+U_r965}<*UTZ& Ղa-vaIUxVhfofpgqgr.g⛘y5gLLwfg"chXy3465 ʰ8{ ;nZ|:2"4m%4 X>F6#hdd9lwfD&id}PQV|e _vTWW6^Y3/ieTe]~D嗤V)G:de^f;rfhUk&4kkkkuWb6.{U0gV|1/̌X 69]ОT–ͧűJפAOih;^NCK-ڈIB;;MQd^[Gn1iEQ;$Md>CSmiecQSOsR[n!-F_tRF065G6_V:\^ojJHHfWmIAmVk։fp p p pwG_ "lgÖ9Ig7f9Nqa  0?qa>VI&V$ranOYhQ(dRdz7KM`&}~*e6`iov)qNxsHo4H䫻 %?Af@p?W  otLtMtNtOOgXOR{^uYqg~q^D~(hXw@Y_Kr]C0EV$mr[V3ZvCv1rFܑuݚssjrw 4/^Vv6'i^yw/ :(4󟺩+#`} Ao);+FNxxtKiɅtxyyxvPyWׁyyfhHnu|. L yPP`z ׭xToj~׈wz;}{$qg8Kv{{`qq׈ŧ mT(Xh|5G#@$0JTXZ?!HefFx19L=!ȦXF(zbJ/+U]e @amVVM> k X@ >@ FMq7A ta(6jÏ7i)$Uyh T9i{Nm1iiVbMBPYlК*yh]k JC/ ʻ`9 4q݆-% HK$ڛ܊g|[,qpB(˺.{׆e?Zߪh?:V-|0򼪑9ﻳJ 5pDPa r;Кxck?sC%O)'xN>@ <|@f O偾vn1?KYR!y>ts],@T|'16@D3.nG΍6jȞ t&缯;ٵe$YAI=@4~;uxb ISKAE LR37 D3#b q Rl6/ Ɏ֑09;TXe@Xh @/Ƶ! Ǐl!}}GFmڧ{<n12|Ə64#Tt^'V$(a/xF9 &HBT$G/\ ,Do6 V>C01Bs.y˩j%+] ΡW;}"VYk)$35 _ T34)~0xhQrڴ&6ǚy2%0w9ܓD׮Axe*Gr+$S#| I@2_)}$ьIAc2eJ @8 T8fᶷcLP)N7ӞU .ԧo@T3 +*IW3ukY3 $J/EG7T!|]SJp/yR%y%Nh5$uq}W 9̦Kj lkBUY}l>p*Webs0-j2ڿ,L찀&=`\08t[bY.!/4&2@B _pRB.`J L+^!z"\d>3.}F8%Ȅu/Eo A8e~)0qvl>1ĀP@>2$3ټBNdBAr<-s?.lҏaPffre0j~3,9ӹv3=9=3AІ>4&ЁN4#-'#<["W\R7X|:ԣqEjfiȑx hIӺփXq}[y @|  J\-!-i9>.TB dmXhLZY=6c(#}Ԏ|У%;TbVT hnĉH0z'&VL7(bnu3MGDH:l8.VˆDo P|{[%Oc c}̭3CAYsG6YWy-r[pa{`(Gw,[ wh2dx4!M *WfpH9n:#WHVꢈLVݒE.U._FW;¼D"Hr9GX KH0)YZ ,9iDS'? J<%/.ԭ~sƚ]-WOSW2]U`C*HL.k'[ĦF ȔE2Mh!`Yd(ݘ_%8[ ebNlEﴍ@N|LN R!9 QRQAѠE_5Va!Ma0Pdِ 3i[ Z 1T'S(I(y%)%e],'9FDة!RHT1K /M@_ɰT#լLII5LA!8u"J8S!,&ZMMhelTP V).Z՚TEU5oUXhS0YiũfWFV1#]=`qqQi=` `}ątc b `,E]t}ue%wW=6 ?!{WAJB1$iJ%<ʣEْqYF^d"G~d$HNG$JJIK2Y@! ,-?+M>MK~YL>c```(Jj%sIIH_iԄ>>LL6FƏʯɺ۸n@p(LF"TGgU5s(Xdd"U22 1y"3 )1rT 3+)3a33$hX-X2"&3#WT /30!PVXA!,L>LXL=XXXLK}LXbbXKkkW```kbkkkt*Wbjbj>zĿܭӯŎʍʍ͡Ө[@p(|F"TG@@YB d B\Zm2 qYΧ̒<|M#Ox(gB%j'C NJGA!,``` o܁K&,ry8y[!,-,+?>>>Zlu}>```)a::|IHUϒ>LLXk:WbŒSӥgŪζҾb@p(DF"LpJaDF)r6H D`Qc  i$pEIBwp%"y &fX &&EXBCgJRLA!,?=cM```||jbj%zԄ,>LӨܳF "a&I:[„ 5F)8\8`4%Ad:*ܗ܅2]o.!#, M```<;JI_ل>>LLb%|sTŌFʒEʑSإfK `&I:[‚ P597Z!P20 b r(FȄX-9j8[\6wU! , ``` o܁K& lry8y[ ! , -?=XcMYlbX<```Va;{IU{{rzݒ>LLbl꿺ĉӭح۳a@p(DF"TGgU:uX@dEʄFl0%05q,$%rFrP + (&X +"(+)X++)aKTVNJXA! ,M```<;JI_ل>>LLb%|sTŌFʒEʑSإfK `&I:[‚ P597Z!P20 b r(FȄX-9j8[\6wU!,--Zd+MYuu,}>XXK```JVI>L|s܁᯺ʍU@p(\F"TGgU@cC"qXXB :, EPc3$ a]$#aB WTVNtTA!N,$)vc```;JI_Ԓ>LLb%k:TŌFʒEˑSőzإfܾP `&Ih@1*{=GM.Mc p(ȠI`yX3J8Q5Ӌ;^7!,-?,=-?,-2,,,,,+?+>++>>>,,>>>MZg+M>M=Y*j)v=ciug,w,{>l++c>*L=LXL8lMcL*cL=bX<}X(uX>=KXLXX&b%k:Tdue#u"u"z7WWWbxSka|skjt`|s7sKnlj5‹FʒEɔUӟ]Řhĕw̨t֦fؤpܶoܶxƄ͆ېԗΖك學˩ؿĵĿ܊ܿ;ɹܪΞʭʶ່鿢ͯNj͖ӕ̍ΔӛĨ̴ժ׶͡ا۴H9HPԢ6zq@!:bT (~@:zIPK sɳϟ@ JѣH*]4}t6j߾(xU}|@5W fmTź=:K_-ozRn_#:@ T>( 6k7nOT! L6E!6+BnR[3@ЋUM \1PQIqJ) O69`G$& vޅW^XX DgHh%}9zcBzlfU(kqtښBj$Hf+,SlSER@؟HA0#n'P\"P.@#B dN$|+ %Q≹D:j-g>goRO ǰ+[.v,L>;XZ ;xҍ ", @v>ڜp><0@!l ;p)">ՠ$mوU֠,,XGU7Z#]3uӑ"V +ug]wC]pLhgIyO I YCR 1:q0ĥ.n/o' -/*/4Ug$^1X/sAW9 q6)Ƞ@\O3 Fu5Hshb%}'< '( ̓Bor˷ @`HF-t̃X>A=*$[AȥeLD!RҪdm;^"H8Z`M*U%Lc BM djCGaY454 ~p{┺¸}C"9bJX qV4v`+VA!``zLY&F2{LT )3yu GcG"H 1HAB |Pa 7EP&H< S[;C8'nML G)@f~f@65,%sbi2:|XJDѺEo:@Wz<ĥI" @2  d2HNnd;KԁVSJUh VG2Zծz` XJֲY=,AJ~ָ;K Q=q(_J'K^a6pUW<Ȁ!c="ѿ1Vvel!"$!_A*#dcewլnuҘδ7N{fU+[RWPZXzU_XSZQ}}t',nmAF[o}RNuә*:!sT[LJBf=o=h綺`'L\4)`:z XœX{mZ vF8%o|bEn`UF䅀V->.AX+!vtǪxGq9bRI "s8CbGLy0,I\ (mG A< du%^c¬O| 4bU2 '>Y79򑓜u,&dSM'dx3Q 櫨5 ]h>6#Mh^#yC~|tMohԧ0 P*Es!hHƩ>U;ЏO:d&r "XL(nkot2tRIC"zUH~_т$i PŠ%mc@U0BaP+`Z@D@V5?ZP&l;H C*V! nq7 ܢ-? XB-'6\L: =x(9(>Ǡr1y]ct&_+ iXf S +Egp6^pa~EEwx%cXgha= Pps,cr) Ơ W0C:3Gt6'e5}b04xb N,B# h P<(|tDJhaFKΨ(AK$Xub^xH#t*F(6*uv/83P0M)NB7Cݳ. YMKmwx(g$V&` /_axSj>1 wP{C.46zt6@Ruz#7qHbzdm&5ɒ(l{9a:@;{M!{2|ZjlٖnprIV9Q91~9}w9,H!mA 1X9A>a#-VY3vAH=q2$S8ӶkHX'7XZywu;2 т #V1y <^(>8!@()Q` mHP"`nouM9@fSqÈF(BTfkX_쉟51 @pq͇ٞ8'sfat"[$sK<эXqyPth)e &z^(Zr]:-;- kGKw-8ʤ/[)JpqUm@Giǝ y2 .QvqOP_ Ppd _PPLEwr2=fryH 1U)"cuړ.c*`XWB7]B Dz #t/:<`y^ hJq P:!|CUTgbavL>:ZzG^}Gk%~p5w~w_~RdW_2REF  @]ZA2Fe%ƁyvY*l4 I94dC8!q;#.EHG\{&\V\xWxeSF%%&p(thyyȠ1E p8Hص@teֈ H2tHs)RW+(ȡ2)}4xcFxQk9t,-sɸi+XJmax2Jg!K2ˤ(⎘&28gǝf?Zv cBE"pk6O)xr) (sJByK*Y!9ՋxIxKjZe@zpPs4$@ VfJҔER)gT E3IfsTI=9AKG\|֪1W>:8ɈI e"ʢ۹OMc׉ZuQ4RBu(9K|Lww,3̉dPb.輾X}us7f䌔S)fkۊb,Z/ AWJLQрqʾ$m$ =J3L +k/-lCnk$J,@BV"p\ M=*& ?q,N=tPu3~`J2;F OrB.ח, ]|׋sn,#b^ɉM6X[00 mbIq櫬(P˶(At !2uDnڰݼ1oZ譍%ɑb? Z`Nz3ۗfNgݪ\CQ;}ؽî?ɾNӃ!_=<N>7)}k.%Kɛ<>3?ia?cll.O RN>mo`<ą\nȵnn_'Fnb"D XA .dC%NXE5n,sV@>:K*a,A6tLcW,}t+yއ Tec-a -IܣC0"D glYg?]{TFLR&\aĉ5ڷO`AH#%lR̛EslMS-3-I1G;&8&0b={{%n|ryUMZuٵo!rE`h*Hvֺu8$e/?^ʻ-bBg/ჸAVV!Az* +$AG;K4DStJ. HG Rc Fq&CG(ihK`n1Gا`*/3 ҫK|N!B(H/ނQE8sN:ϻǔ h< ew*-@%4y LRhJrδwB(rg*n)=GP5k>0fdz:`uZmUW^ RbS:uYhƈm @jf&mm.ty 2(d `ƬA4%\ݧ8ƴi%yF ma:WY|~/Z;c2a"NN lAʅc f96vNhԙgV`yj:E1+ͫke {V{mvm{nn{oe9 oi&Wݶxj\#gs;Nr΁tQ(H7ޔHc%#Btb-F* i^IF} )F?'aţ5Ǟf>`vIA"}O6t}6}(~C_C%o>qo(,83y!. EF>AS}4 :hj5E @J9HeA7 `Yf801QB0B)PvHCH.ib'>kb0=xJTR$+bHbGXe%9IcF,)tTDŽ rcL2AB&%TE4jTÚ! 7D qnO |LG`)MZdJs#8$#d 4 g>T*С? yHw( ܇he&:&A9C%ŤXTDhFU$ɣ@3S#% Kjғ4%+] 1숟 e@(4$ڎp0<A8GQp- c8'FC; \(Df}0M@m)z!zi 8!}"!Ÿa6HM~'?EёxV\@R:.`,dD(r Wϫ>-1\r$3ERr5%+ [ꆾ$C]zj00)F9Ǔy=އ4OSЃ'im|$:<7"༗&D*R 4@p%$: L>/zMh>ڧ-+ߪRX:AdrF9 Rߩ|0TE5ҥtOU1Օ:'Sw,\%_`w5=Hf5Wtյ]+E}u~mk`uM+ۘƮ.a-[Yi TlA2ؒYTAK%x6-AFx?k'[zԧ^g}]zǾ!U-^1u{ v|N;>|W1gOx)5yћ^y$q XioaF?uqbs0M+"6p@J2!")!z32"2!33c@@: Ua|K N3ңAs+CKD[6 GK QsF*5HA4S ?3$#4G,I"LB6Y'P/[H]K^_ g˰ƨ%> 2ܤ]ZYS%`.DgBD1du lOs&P6o+%p&qy3vC-hzKm;ʦ 48E|.S9+~(C9"ɏ⸆\kz88u#eT8`ő:x򹤣)KK k9:bG::+9tln +B;H+k;8r9t ";0;B;#CH Hd| @' z+S. .kҢ<+zZ˃(>}C/⯏{t; z?ѿ0 01kC1?? Ӟ ̱ӇsL-J3 25C2%cA' T!2+@(AA1kND3ST3,r+}&MM0t 5R46j4-DB9RB)l=z%/´IB0%:&BXs5ً !CX3C̀45ĵ6<%^[%9%:Ê<|:dID8,B<ą6diDxlSnPK^M&N'U71N@&UVtŃh̩QٙEeE,K_T`D,ESWBE|EPFIjK*MmTF)0)ux> ƃ8X>\l@oPX#O* J3"[OD;5Y1tcCX=cG YlGt;иUXwSS%Fa߀ӧZ=De|oPNX$)( GTԪN|UJIE>ib-IւM\]\m\}\ȍ\EW|TK~K%ˀ ]#X컿>RXu 1%N"=!騳]C<ϒtY=CӉSKPL5UXP4%h^3QHaNa^a&׵lmEˆW>ѽaC]̿!M0q݆s8_]X=} Vh}ͣ%=fifjfkfl~aWm~=&ar1^E -k=bps.(VA]9E.]{.)3VYO8n-zcOZ>YEdED 9S'zdk 8b,0/d|_RNi.)T[ET|Yqi.Zߙ.\z`໴c bJf`ghvjjjjjzf\p*E*=k2g(]t6Xlwx6bNڭ˝k]2g#g .^k&9BJ虰|jh{clh]c9栋Dcv6m5dnF\%l eKMvκ5_iBᮛ.F|_ ܩoNo^on<gV^I,fPlňonM߈>po p8pikg i +}/4poqq q,qfq!)$&߈'1 .X+GX<`Ξ%W_"GsgrxKy˔bm 7X,sp{p1"f6OOEUݩ+twVb&EȄLŰJ_bL2v2ޱv='lī ؅zjux>EWss8]>?@`7sH{ Y)TgTUWzGtqW0/'Y+stCTral(E1-CךZ0 xXꔶ~ V0)A1%2BxOy/'{l!Ww_"w͎l“,@Wyo Ёŗm Ϛw'!){?_U|TY{:0}ҿ<D{eӮPqqrYnmHW`Q|^2AfM%rH OU"fBv`%[[~H(먉}x?]VqP2[F}çW !D9h1>HthFGU@n,ZX%4:a.z!0:r} aB7OQy|]w :`& p#!L$U$="VsSID#sXF3Sb:RRh! yP&fL:>":$0*KUNiQ1`gs֥p}#B8D(YV;tDMFXCeu&DrLy%E95,I7&<ISO FsjάN mJ0-۬ O( >3=ej'/$L`̰=|r离.B[pt*O(x{=AE,0:ݚ;R3O,ۯ!>Pq [ ⺛얜ps,'2:rj³N[-L73;+7{oG^A3. 3V 426}LaڴrPkL!-P*ŌLLnz?WvGos9Ut:76;K_L~{9vӇCb#y <oR9G@D p@A@%$\Al@H O8‡-Hl@$3%18 " @8ċg:\ClHC$2) ('PH*6{a0D@Zt xÇbFıv#X1C@M(A2qh'EcZI&#6X i$V8/fLuK>~ NFHRW V0N{X `F d#7\zygedz.*+QI >jt_|c*hq:f䨥vgLncΟR"{! wBDA(U&l<$)Ѵ~c<1LTRd{*Q PVaY9S֬<<)6lv4 V7##O2dsplɓwm j獼e.xy2K3t&29tMjp]|昡m7[ֹI@SDV M֐ 49P&RT[dPJFA8t@%o HՎ;ۋ|iIOSt%(K_ K)\mv,[*_\YH{ +gژW:*ieVФE-gOGRKkbb x2d_k>H0< X,݀[K~G|V|qC3n4é,nt _PaQ=PMP]G5QiPuQ0G&Q' m}!$@\yt9 ""&"."#6 $F"$:"%V%ƒ$J%n"'vb#eb$z(")2(Nb)*"b",&,֢-*"-ޢ."/"0/#1; 1&22.3>+5#4N#5b4V#6f]6v7)~8#q#99#:7!x,-? +,=-?"6,::MZg+M>M=Y*m)v=cY>jug,v,{>L>Ll=XXL8lMcL*bX<}X(uX>=KXLXb%k:Vdb$u"u"z7WWWbxSka|skjt`|s[_FTolj5FʒEɔUӟ]Ėv˧s֦fؤpܶxƃΆېԗΗك學˩ؿĵĿ܊ܿ;ɹܫΞŧũζӯٷӵɵͿ່鿢ɹҾɨɹӭҹNjΕӕ̍ΔӛĨʹժ׷͡ا۴HAHGI`wJ$AWFȱǏ CIɓ(S\ɲ˗BS6@'"$N/ JѣH*-AAZJիXj݊˻ g Yw?P+*Ժ[`wœ#1$YoJ^_k&J˘3)W,hث K<BBq=lJ?;oD۸XkУKNvH<@7D@|roSZ~'o^DʍWyUg&]L4?EU@c7 >ry@$! ?~X,A1?wDNQMbfHІUX`+(!8PHPF9h?{#@(P@d3Kפ@k9@](x`+C&?k i!af =V3bF: izj꩔lp!P+ |)݈ꏭ[ rZ,Ȣ*ŀ205ܠJ @R@6QնQO2Ozrp cl' 7G,&PChDKL5ݔ[$|pSORzXdZj\re^z`ɱVmpD= pܔQO4>֦,w5g&i&l62oA#m=6NvYh^7umw hz|}xތZ=(5*@㸫,#A!oi$`ΒODY>2%YgY?}ǻwxڇɡ_\}b)H} tk%F%+ d7g9LgJO 1IA%,E8#(G1> P" KTT.npB8Ȑ  CX@я (:1ab`uY=KEȢ]5;7Xb~;d K.b6Ԡ(}Ocmu[) ׸u.x Ev# HIʋ^^%7ɡ `(GIRL*W}\j` G3NbFh?kH$pG>FqdNXGM}]FnI$<uI2xBհ)J{H8S3{ DW9 }4iP\r0gӶMj '=OxT%zG{B{JI@ ^`iPK_ sZ@8F6A%+@ҕ*X !Ӏhg9 ;RCQmԣG M-a)_j’酇^ avZvhd9`/5qSZ?t(^~٦%*/EpLg@#QAHE2%~.#:ЈNF;ѐJr"0r\ғ4gU"ToD~hJ#>CoN$kb,#vͮiJ)?m6$M>? C%E.ꘂhM,@C1fkg{feURmž)RzdSicL?2)ǩGԫmq(qP1lx7ީLWjXd@oDon<+roQ+9NӨr1rq2mW͎ 軵PՉӥۜD odA1"^GxA(ez .0P)^2)^3߃kd$ͳ֓1|d9OW>1O?k+udǷAZX oe%=#$yuH#dP$x,؀8J6KtK KKLDLwȤL$)V2פT[%qNdPnNN5[I`/oH4Q 5p%6EP/5n8Q5Q;cQA"Q3SІlA8@ " z}'6VS8ePW%)6qCUTPuTlpg=TQRS5o[i8e;:vyrkVorc!tw3Xz9}9u&jy:)wXqT` ><@jZEZK#Z1[u7Vu4x=ˈXt(@_@2 hdww\''vUyg{][H?X^vzՍ7.DyEbӰ_x `fu;]`- A`)aX; =C]D(T{)e%z'|fc/&2)Wc7;&'2Gtb`'d5i@qFV~}Q6g|Jve[ekfBffAFlGMqV}?;P9yo.H7vyxz|ٗ~iQujKk"r> iCxGF4K_5ܖ=83gWQ9Bk؆oTru8:=9AQU6a63#4(>:v@e9~A5s Hɜ#ċ<@622t` !QuhAWgO9%qGF# 2> ]hɟ# oy@K')7:`*#!@AR{'Lt B8{.z6 c1DD7&;AC9r*w$H9F)W+*{C>EO*_!C;eyz-2gJq)(tZvzxz|Y ڧ>&ZJidW$sEٙm)pV3FZ:1 n{3cIbzBds68vP3r:Y3rqѝPs׉ze$A$Ĭ%Ȟ uYtJ Zw)=)^ 1ksj`I# J,Ac&[08: ơKEGT0( Y:#)%ɠ1{4:x1(rV{ɷ=c )0EzEפmC&Xʴk)2 hi}1hZd o qʵnpr;t[v{J! xƄ ƨj~[L [JZRp٩T&0*34F)A;2j|ƪ Zi{Jr(lHK⬖a:Y<ꝼf)![*語؞2YN g[ ;zү;$Z>2۰?˾R, %x<' "Z@zZAKqB[ 0KoH!FM>YVMuL՚y:)4sm&nQ@ (0y1CsPFӹP4 ^-̛+f9Q& p*fo @ ݇jy%rc7cN%8us7 XËʶ=~2! :$rSN#ܘ1 ^eX !dCO-.17^N+DY@H^ܸce0iv9q=u}Nvz\ p-.1$w|]'٩Aّ`p҇dpkH5k؈,$֋ۼt=Xv0}mlƍܩL۰H48?=*R罔餘^ 譔;\ߍrQӎiO MߍLEr=)~ݚ$n&xtq8v[G9.@NUh C^"z14->n-8-kJd0S dCF .dC%NXE5nGdYI)UdK1M9uOA%ZQI.eSQNZ'FCvl".\,!cY=dS.c׶m6.D'h7i&R;pc&hg;/TI@7ۢw&.H3Ϳ=cϮ-g B__uYm𺡘BD6 v^˺e}zٷwwym@ eE{kHqei 1\yo x~Jc*|F`yh!G|ӐCLp}FlM PC$ {tQI \h34Ƅ-|H`:΁A@`П;he$"yQ|> xa“4LL77ᔓL(I[TM9o/<H#3{եTH3Gf'"!\h˜`ko`m -F0Y* iv`v t2Ye `uJiAshJu`SbŞW!bifnC3FrßsIWO$`ҦeleTQ7>Q#YY3.xh; Q5wy@ScQt=̭1ml~dNk&sm@6Kʢ}B! .ZgB6 iv'CG "vOZl"ʝw0Z|! \Vo av'[ZyX^^T:QbmԸx&S@=7-.#k2@lPL= .{HA(!.̛jp1>x@@48 .d> D!q 6x xEdJXbc$cxF4QkdcF8d+BFQl\LҐ>.^GD2LdIfH4f"9d"- 4Q k\#Чz9lSG81r:uslPʃ(Oi49䆐c<$d5cb$1A +t)UCL"u/?fD&,iGKb@ l" \"MҜn 'dD.ғCNkF%bS9R@ :JӨGV0USL}KM͋(tRGd6JT-i׻td-+gTa!kE[(Dpa_JY-4XWZ/M zшZ.Z[j_U9h|*"W=bۘ輺3#+YRF&2SWd^K֯-Iښ46[;FǸSMlda)ZMdk{[V}̣8X7vjF;ęw 1^jg"osx;ҝ.uP;v ۜ;D+_lb-J`ݦ7NR4)WAL?Z`ayi1fH?vb԰?Ha$G,A&P 6bCv!K,bC*[ĉWa0*.ĉIfS(7Dv"eԖ)6Bh]L[㍭vNl} \ 7ĝ6ڐ&.tE{zQ׺z[g^8_i<:K0} !~_#w`|J ?. _d/!ˠ˿?1 *32 2Kp"(k5Kr5V!-#\L.È1>~83H3A33;1rYJE0EѻқYЌLL} c˨sӚɸ;\F+/FDbTnlo|QbLGq6)1 RːۻL"3G!U$z|A`AG+S2-S3=S4MS5]S)̈́M6L܌S)M;5&^kÐC?ӈ΅&@i *OLDTkRT DhOTL&=e> Pm*UkPŰ4:>htXU{=h<ۣںHPbEetK_U=mn:Qt?3f$"?$% ^@VҨ5*0xDRA2SGxW~WW XV78}AӁSXJ.<65HahA]NL~3RTdN 852ԎcO{OVmՇ\ٕY,:U4UmUˊʡ%+E[݌\WYJ"2.c =g nUТVkmu0nJ][+ W#r@tUlא[/W5z-|U\ʭ\˽\\ͽ"f=XݺXI0 I&h` 6&ѥ$@8j[HݏO@]A"]^= U u^}k0Pyڍ^pOcňfehbņ Ƙތxޅ_ߣ(2IA YKֈB S(pX{_ = }Eߤ``FB 6C/x6`YTn`@}]gKK`M.VCKatND0^"MHF%^I3pЇxkH |1T^a4nv.8ހaa<`X} VN^b0;֡9!bM6_: C(5Op{SNOF_opCQF'b68dVHe~'LBDE[^|BlA`8He'VW~W;myU{J~ Q9l(Jvgo YjBAxBQoP6b& ;$-޻S4o妙4a{ĩ]³ʞ Q0S(םE 5Pq12ZX<;H@)!m0`f+LZWQmezlр0`>ugvi' &>ֱ<{g}Vuu3aWDʇ0Evlgxw;8xg'k/w~ @[wu)SQ's&%1z ׄz| S $җ1C9xiW<2@"u˲WX{#H8}4k 1MmYIdOFTc%uʗ)&`,\W,hʗzh9 JОC?džkU(xTꩩz%^[zZ[1=~J2iܣD'~@릝vV+?M-IQĥ;`<?~$'L`瞕[tn|ٓBk|S+9}k5 "c_kV5?Tc cqߜ3A ~%К?ńЌu5ywOD“2UR1?G?R}VUC@PACy)%ݎr9;JڡxA;77=5A+O0ldw#tvBm>AxzT3)R?~[n4AҠ/$`>/!Bmm=`Ex}Sf)nBGDK2;y" F< 3i "Ѹ"t+g? l$ʗx#OZ(x0Ah$L^w$Lȣ*ޫ^<;M:dqqb=<ۨ4 /lM64cD8Np{ T$e,giZ2rV0'<<IqIO75#`c::0r3DV8Mm '!#=?OTb/A)h%BO2 1#l,HynS[ 5miMP$?am` M#|D,-6ũ`XMs*4PbhUJ`tu7!W%_G|_!Yeo9<7oG2׺nϨ9[̽B+[UQM*\FHx@@ nZUBXZqF:0Dĭo!܃P9@A\ ! Ҁ0VCh ۆ YCz[ L{6 DK)KX.ӏa@~0#, S03 s0C,]Lxi1c,㓤%,/DHda;Qh4cMZO0tKAGDhY=a m i 2u`oѺhsfj#.} V\~7ނH7/}7.?83D"R* x3^/P£+$r!R·F^r3 (?[!`OB`K P+\!9IN_P@ LO:C^\ѧu|`ӻn]0 uKO;ԩDz u*__:m7>گ3u_p6C ;A;:I>v[}=~sW/HWOrݧ^ՏrYyW+a/ #GwOϼ1K}~]j?=osG]``_ɅuYD @h\`AJ$v\UN ``͞6`m֑QɠAC99 ~_] !`A]Q0Y@i@q_i5U@% V]Za aaR`_Ya΍) V]a}"ѡ$_p]ATAhAp"nE&z'F(N"*6"+ Z ]+Ƣ,"-bK."."/f@4.b/OE1.IQP0cN8cF1N\Ac.cTpB`VEYH8EFESZ-66t ~<Q#FRPe`7%;@<rrspqLA*HsDaDu\B\v~Yz IGȒ쇎 Aŏ9Ad=O?=8[A?қBC9DĘ)Ue͔T_OO LYV`9g!U(U@S=B|֯fI;*V[Y9+vZUVdbո_A*O bOa b&6j*yWkLVumֻ:zUDUpYD.֛AlAx~]o+_H$*ɀEV^ǒ~li!,X-?,?-?,+?>>>MZd+M>M)v=ccluu,}>L>LXL=lMbX>>LLXb%k:bl}8Wb|s|sGTz6ʌ5ÌFʒEŒSʑSΟ]őzӥgإfƗ܁まꏿቾ꯺ʿĵĿ܉ܣܿ;ɹܩŪʯζӯɺҾӭŎʍʍĨӨح͡Ө۳۸H*\P`6Hł#*jE2ixA *3JLHC$bDX[RE 1 Ί,|QSvjT.XWe0Z((tYN"IL +Bi# f+:`1@q 0B p IE !'D00! rH{r.r!,,``` o܁K&,ry8y[!*,4-Mub;Wk}```_ʍΔ<)Re8]$X [3  (VDiwRf$1ҪV]!,<``` o܁K&,ry8y[! ,D--Zd+MYuu,}>XXK```JVI>L|s܁᯺ʍU@p(\F"TGgU@cC"qXXB :, EPc3$ a]$#aB WTVNtTA!,L-=XcMYbX<```<;JVrό>Lb$ʒE׳ҹܳQ a&I:[† Ƒ1r 8ħ!lAi!<3yMT f L> E +.p!!,T?,?-M+LYY}>L>LXL=XXXLK}LXbbXKkkW```kbkkkt*Wbjbj>zĿܭӯŎʍʍ͡Ө[@p(|F"TG@@YB d B\Zm2 qYΧ̒<|M#Ox(gB%j'C NJGA!*,\``` o܁K&,ry8y[!,d,,,,,+>+}b;```Jtʍ2)RWk b/IrL#=+#UD65!,l--Zd+MYuu,}>XXK```JVI>L|s܁᯺ʍU@p(\F"TGgU@cC"qXXB :, EPc3$ a]$#aB WTVNtTA!0,t``` o܁K&,ry8y[!,|?-?>>>*m+>Mll>}>bbWtbK```kkttt|;;JJajWkW{sLk:u"ta͹ʍh@p(dF"T84J\T0a_"5BWOȅ: ܛC&)_ J -",%,X.' G  CJToIA!,,,,,,+>+}b;```Jtʍ2)RWk b/IrL#=+#UD65!$,``` o܁K&,ry8y[! ,-Mub;Wk}```_ʍΔ<)Re8]$X [3  (VDiwRf$1ҪV]!,``` o܁K&,ry8y[!,-+>>Zlu}Kb```'s's:|IIHUτ>>LLXb%k:ŒSӥgŪζ_@p(<F"TGgzDȠA,WjU:uP#2Qd'>k'} $t (aPl(S'OTrJXTVXA! ,XXK```JVI>L|s܁᯺ʍU@p(\F"TGgU@cC"qXXB :, EPc3$ a]$#aB WTVNtTA! ,?-?MMYu```VzzqΥpܶx΁ٗΖʍʍΔӨح\@p(DF" HJDBrjv.HS(k+ঌFAKB{^ #t|g #u`#eJCRLeA!6,``` o܁K&,ry8y[!,-Mub;Wk}```_ʍΔ<)Re8]$X [3  (VDiwRf$1ҪV]!,``` o܁K&,ry8y[!,v)vMl```js's9izzل>LLLu"Sř^ܶx؏່[@p(,F"TGgZg"pX&I.W*0}04T9`1IL#!rL#pX"B #XVRNJXA! ,-?=XcMYlbX<```Va;{IU{{rzݒ>LLbl꿺ĉӭح۳a@p(DF"TGgU:uX@dEʄFl0%05q,$%rFrP + (&X +"(+)X++)aKTVNJXA!,?=cM```||jbj%zԄ,>LӨܳF "a&I:[„ 5F)8\8`4%Ad:*ܗ܅2]o.!,-?+M>MK~YL>c```(Jj%sIIH_iԄ>>LL6FƏʯɺ۸n@p(LF"TGgU5s(Xdd"U22 1y"3 )1rT 3+)3a33$hX-X2"&3#WT /30!PVXA!,-?M)v+>M*K~MYlXbbbbW```tbbJ)abja|7|UF^ݨʵZ@p(dF"TGgʐt2I@ƴt(`@3J, 3B퉓f $X% !$X"\]}M v~RXVTA!,``` o܁K&,ry8y[! , -?+M>MK~YL>c```(Jj%sIIH_iԄ>>LL6FƏʯɺ۸n@p(LF"TGgU5s(Xdd"U22 1y"3 )1rT 3+)3a33$hX-X2"&3#WT /30!PVXA! ,L>LXL=XXXLK}LXbbXKkkW```kbkkkt*Wbjbj>zĿܭӯŎʍʍ͡Ө[@p(|F"TG@@YB d B\Zm2 qYΧ̒<|M#Ox(gB%j'C NJGA!,$``` o܁K&,ry8y[! ,,--Zd+MYuu,}>XXK```JVI>L|s܁᯺ʍU@p(\F"TGgU@cC"qXXB :, EPc3$ a]$#aB WTVNtTA! ,4)vc```;JI_Ԓ>LLb%k:TŌFʒEˑSőzإfܾP `&Ih@1*{=GM.Mc p(ȠI`yX3J8Q5Ӌ;^7!,<?)v=XXL>c,l,u,XXX```bbk;J:Iƌ>LLثfӁꪵΉŤΕʹ׸ء_@p(LF"TGgTFɨ@`bPlC*N֡"Q,X 'JX* !X"t*#BSPVNTA! ,D--Zd+MYuu,}>XXK```JVI>L|s܁᯺ʍU@p(\F"TGgU@cC"qXXB :, EPc3$ a]$#aB WTVNtTA! ,L?-?MMYu```VzzqΥpܶx΁ٗΖʍʍΔӨح\@p(DF" HJDBrjv.HS(k+ঌFAKB{^ #t|g #u`#eJCRLeA!,T?-m<~YXbbbXX```;'s;{J{jUhzݒLXXbu"t`FʑS؏ʯɨܬ^@p(DF"TGgU¦Tɔ<tBJ.Jyi"T%BkX "! # X "\!`PBSRTVXA! ,\-=XcMYbX<```<;JVrό>Lb$ʒE׳ҹܳQ a&I:[† Ƒ1r 8ħ!lAi!<3yMT f L> E +.p!!Z,d?,?-M+LYY}>L>LXL=XXXLK}LXbbXKkkW```kbkkkt*Wbjbj>zĿܭӯŎʍʍ͡Ө[@p(|F"TG@@YB d B\Zm2 qYΧ̒<|M#Ox(gB%j'C NJGA!,p-? +,<-?"6-77Qg+M>M=Y*m)v=cY>iug,l>v,{>L>Ll=XXL9lMcL*bX<}X(uX>=KXLXe.Tdb$u"u"{7WWWbySkata|skjt`|s]_FTplj5FʒEɔUӟ]Öv̦r֦fؤpܶxƏ؃學˩ؿĵĿ܊ܿͿӾɹܫΞŨũζӯٷӵɵͿ່鿢ɹҾɨɹӭҹNjΕӕˍΔӛĨʹժ׶͡ب۴HAIWIvJHŋ3jȱǏ CIɓ(S\ɲ%A"%gL\ɳϟ@ JQ\9ʴӧPJJw3 >0a>A1TmOA17nyF P6ݴ`WnʹϠCH=SQ߰Vuzd}C[plcU:w#0Vo3lbScڕzbKN|ӫ_2:|#I~@ 9 >@@@@X[ 'j3XtrA3@AF!X|0(LKu$~D]6~ PZ}FJH!tB@ZdO>1gPi{T?5(difJ45~d9Џ#!!?|x n&)r dՂ[gF*餔x%AbgY~ T?ΞqA0|]="\*V+찝Y{ړXC_=6% ~7; <j0L 9`(GAjBzND%2[(YLj-bc3K6Dɖ?}Q &HP1_Z&~Ph+2'[Xu^JS]LLR?Ը>LNtQJWi~  yx\vhj#i_)W"v#_܊l1lG>2(,a0gNQh6#cC 2yt8OL:u ǃ]Ff7ܫHOɕuOxSA{]y]O;{p6l01͈2|N_pw] ȗ}GGUU^m\tLCGZb0=ExB5alRC7·YaP"'$[;ޏ|2!. B&EøwM=DG @BPIz꣱y1YGߛ$/ *(M##9J9Hx$'jwgJJ[rRe_v~ 8`va Bt<LTL9hLCMM@R֤%Thg !kd$ O4ktPD1FP#5hN*ȂL(; = /./ɲ,&LCO&.ݖR7RGV&S@S6R9%S%%WഅM8Vh $C\4cpsoTUWhoUpv2c%p6hu;V;VWVotx153>4ge8"7؊8Xxe gV{Q[øR[1h@vvs5Aw& #^bqxUxs(wy`WGmsA>mFC7Bq('|ķ|6VEb ۇr}!~Jfc I~~Rb7gcF-7Rf8)) Xz@gATC&+s;:<%(M?AY."jslȑj`OrhrHOSa r,Wx-oym冗ˢR8RS{mHh}nI( #Ng5U(V g3YGɊȉqA!4D3H(8YyșʹٜyX#1ِW8ǘ?a{vqr׍XwO]]/㘞7Ȁy'L$&S1Q6z4v9|Bg'L)cyey~E"tF%='3J%/ OY$Jeq QY=Id=I7bthdKI&ĤS 1hqDibn[vim BPg>jzsr R$fbٗPem}bȆ;e/8')"~:h0RUC7(i134 g9 )ZzȚʺڬzi2pҝyK٭øwٕV@Yyy\v5(R jӁ!#6 gK! [*e%i|9+j.ʣ1n):8zp|ʕ;g@ڒB~\RRWW9˓X3[}Rfh7ǫqUs5;[{{: D)IɭɈ%ċrڥN[Yjq躍Jj xz3U z݇򫰼" [*ס [ľױ6  #ˑyJ&dťs}ɣ,YC .iE;ZI#99BG$<XX'Y[#6 E8,H0[ÎյnJq Oowfey|ZXöȖČ%uy|7z+Bas9ʘ[ŊyXɇ CyV4rXqI 8ɚɜɞɠxջEA>1G` 0̛~::rkի7KMl_]4]^5|G4܀3 x|!(x=⌯:wڿ˿䁿ަ{8aaMszoqj!!Q!mj{,Ւ,l7l L6Z~@~WdhtD  : Bk3!W% ^"ӮIV|60y=6b8Wv;jvX6v$5Dӗɱ$AB:*;73iGLMvh;h7$y'}rIeJA2:0k[%`Ye]P'gl*BB\jy-(jkjj|6^LUX8Ƣ VFm=҅@ -.A.Ikǝ 6t̸긁0&Ho#H."sL2-2Ѫ<"|lq}\#ˤwXA5I4SSk.X&$ q+g&eCat*ʯ,uP.nc.ˮg43lYF+^@\ל́)K֌L In/SVNcΛ7ˡ bjϲϒ,| бl/ #ΐy`cRr+i50 f }d#m!%})ٲ&*`6餎ZNJ>&=]?&D- FEfȱG8MMLiJԀHZbJ m-%.۲Mu  ?LgXSx,*':ܞZ3̍ s%2]ٝḅ\"ވ FMcn%i1ޞ85[ q ߠ`1d/l[vv|~7"$^'ʁ/0(3~-/u^Z_c-(Qvy1Üa R^U9jy#8滏Ώ+@vav`zlYdѡ d8GDfdȡ:vP@-|# &VOA& XNA2>.\~A"Ee /5"eOA%ZQI.eSQN߿r 'Ƴ?IǖK''hcuZ]id"RZ`ٴbպ]Z.#&]iԩUf)sWƪ"f }3̌x "U /ސt Ɵ Lxwoe/\zf˸ :^Kz@iF {ϧ_}u>`lPz@ "@49j#!x ?ö(B2DA )DG rH"4}DAl6VGB8 ~IJ*Ē{ !j t-.y>矷jDWI%NsxQY$1G'1}DҰ?C[dsZ3\TW)QAG,O}K]o$=*w&p"hPb*5 a gG#n(BB\?dGE'B$(Q K\2 C ,^$#-C"@/Ho8釀+ImxGKo#F^.Dj42GOV.2D*.%$%Iv 'H5NJ|&ĝ&ҜZv>eepM:4ft, Ǟ'k䲚6t.v&N`V'N33ʩI)h;?S$\ aѣqdѦ}qIONRAtZ_(>ocM<5i)(Fb.(QNKVR6ƍγ볤tWZ'WqZeHҩVl}ۭl\QWBrWV(a X [D2Q2؎2,+ekx̓ڼctyЇ^'}Mzԧ^Yq>jCmo^p_kЎ|1?F^ߤٗt --T g8}ma.BVM釾9#-j@R%R ۊC*/@[@6eg@5@āӜ~xd#s@ĩ 9 l؄20 9/iA!Sj:#`^u!B*㗻,;3* C1C2,C32k+DK s3>-? 3KlE"Yh75 ȴ/W N4CB5=DE~)FiL6VA ܥg&iTLa:A8g8`$Gz48i"RsQFqG<"\#$%,\:X;glj:H4+, u@[14L13O - #K Q36yVEq;x?b ˆ@d4 ( R",todMJA\(DތA}α؆NJsʩ ?|΅ φtچ]\aB(̫)SB,O+T ,TG}THTITJTKTOϟCL5IfTr4УDSE>>tPeJ GE~DU%C -CQQRN^C%BQ&^_l1QcQ֊rRu̹ 4<$u%k 6p,:t)e K&]Rz]18䨙4U~m*؁?:e:S>}gB|BB CO"E Y]YmY}YYkDYTٵQJʚZpf hn,ãڥHsHJ(ڨPHY% Z"ڣUPdk[5 =W8 U(dQ[ Hq xۤ`p[x"i\7 d ΍]R JSȹXݣ== 5-֕)[HL xo}uDU|ZЦĝa+HmPZQ^ dqJ1J ^)ʪU){k8j|9U0 J |%(^]㽉iQ  6ȇPz@鵍}_[!z``e_ UJ$[-!+! H)KOuCbLK ߂̈l`a,b`}&k˷ THP b"c284# Z cb- %/ad. &'ζw=Pc-c5@abDfcEDZ6E$<H{ZK`\bȒiPZafgE+9f+Vp /KElVuIb8E[fZ4-3ZQ g Ax}h9xVbneZW`q~Jf;of0hUf&or$x44QQz$\bRZʌLfG-|ȇij(Ob7Q2'6pӋS+DbjqlStM X +tRi#嵑XiVii@`!PAjv i֤X&rCNf$n ЀZ.f"2ue R@T8.m}u두@mn) Dض2І.jl6(A &m.?lzl:kSZnM>Q鞒Ԯnܦ%j88R|eG{G//e'Є3>"fHe u3 X/#A"d7'wr hgMH; pT|ka~ '(c/^,~oo/nw ٜT`֎q)?pABЕ96 J }$ν ;_P9u=s?;sJO`{2x^( 0Eo46Mq ta?7uFn#/67o ;hx#|J#D'tGX咧w}x w~yoI\;B2wY`zG /H2@h(pzZ`ş(٩z0{3Y&Cz/牮z{/R@{z+.38O F¯GħoҠ]~v˯|ηY/}'G=`}۞ E[IڥfpPf0xTܩ lCy\mO %ܳ ? >TpmoM=ݧPۦPUP6J 5 f` vAw2LUm#q0Ċh92ysϡG>}'jT68=Ө]m~0ֿl^_Ͼ[w樓dD&ǯ6 QS?d-p?~ƚk{ݧ4g} yhɢH7iqvt^z{!~!χ8#5x#9i*O%$E4K?АE$CIkeIF㍘c\yh=?dVqHء?i&@?m@Q[(0P*ɤ~j(F1 (8% q ;ChMz9hMA&Cu;{,*,Uz  uO<>4-CJN߈:qݚ#;ݛZO>5!U֊@R.Z5)0q#C ?|]u-4J0%0FZނȯFp,#n`f93=KA4w#Ml?AcAN-MT |!W&i *Pi[KLٵ`{W$'$Ұԁ?& $x @.Z|-UCq^?]kin @8|:ꩫ^# ]ItZAO;hr?69{6K׶K:];:kd`&i@~?tbaV<$8gvЮf2"( RGX!Bp'?q0G:G>L0`PA$ЄNs`CU'Ж<>1f.0::@E+bq!13 D%F/'A"C=B4E3ю~4#-ISҖ4]P(F*PgԖB dXaP֦5PrY2. fͳ_؎.BAܳ P+ Xk B0`M@~h{ۯ1pl;43dώMmWKo{;Uxm8n{c!8r%B"c@v0) t[9'EySpKlz^_0/+aO&o\}Z5?ֵMnF,t4Gx}8[ !`T&Y(A;ǎ0FDP8A83X!jdpa~!3,ۍA7b@c(A3x!<@.EblZe*B <B*PBfRʡcLhK#FlY<:xAX"&R&b\zH#*F$BDj( ,$%j?KcL"dbFcb).0>,ȩHE44F؈,*tQFlx⌄b<|@a#;3cccc>ڣa0=ZC[hWxA^Pņ47D?$[ VtT ?9B>a`5I `r]riDst-oD]A؄ODO WP,?R]0S@bTUdEEzEqEYZLdK>W\\P$d_E`Ea`pJl4q9W $caDd@R^^d ldG\C=UN%\ RbpAb*eA2Z>eap_M$Kne^j\r$PIee"Y؆?hgLҬo HkukFrYX7rlWΘwtyGzxI G|xW~|FmvȂaLJ+!C츜`A!D,LjTlyLάB TL⴫AliԔll"A N8&-.ØN L쌹g.*9ċ 4vVu4tHμvmqG(؊a-TXl+@&&حbp, /hmo*bɳĮr咪vn.a.Ś JMzYﲮ*0 S0p* a?9X4șAB.4C)GESTO[0a46BPuG+Y*P@b,:GEuI SX5a`.20CiT,,,,,+?+>++>>MZd+M)v=c+luh,l>v,}>L>LY*Yc=cXL=cL=bX<}X<}b;LLLLXLXLLXXXLK}LXbbXK}KbkkW```kkt||j((';;JJVVfis{*W)a(j+>>=KLXLXX'b%k:LXbllkb$k9t8WWkJkJtjkj}UHTizń6Ō5ʌ5ʒ4FʒE͙EɓRʟgzϥp֨fӪyثpƁِʝŘӄ窵οĵĿܹ۪ťζӯӵοŖ͹δӭ۾ȋΖӛ̌ӛʹ֫׶͡ף۵e(*\ȰÇ#JHŋ3jȱǏ CIɓ Dɲ˗0cʜI͛8Yϟ@ Jя; ]ʴӧPJTԫXjʵ̪^ÊKY`Ϫ]˶۷KݻL˷߿La+^̸1Ď#KLjʘ3kތ2ϠCyӨNͺk_˞M[۸sͻ Nȓ+_μУKNسkνËOӫ_Ͼ_oϿh&aF" FL >CA?|0=s?ܦIʜ0!(R?$TЅ(qPl|G`O?t#ndAp?`m4cG i馜visB22XbPY 96~j&#U00mP,2TmnE2(ʦȬr/iàS PӇ]c@Ej'F^ Dh#B+d3 F"+ل?|J7Ō02,4׌$?p")aqW9ѐ SgcX#9C sM験C8m4  A_ϟ=`@@ L $420ΐ@;/OBL.K?`=~Q:,d>`O<p#pGh`,A @Ѐ %HA ̀(@:@pw#G68 0̉1x` G "lzj6A  >n~nȢA#ZA~R+HD#І? (`#XF 2x| kxCt8A9 Pu*܆Bl@h`G4$"mA3R Osy,Ib?xAPH+ KC. bFadJT"qL4;D 8d3aĥiBg3gvnZB>EH]6`Pc'(Ax%E$aCЁt?yq,C H/PixJc0$QСOph# ^'a:@h@*Qi?L9T3C-HU\%Mgnq$T 3tG @ܨi y5BW~`i͊V@œqzv] B;,@B4 4ђ d%bZȺbkgK[ uͭnw pKMr:ЍtKZͮvz xKMz|Kͯ~LN;'L [ΰ7{ GL(NW0gL8αw@L"HN&;PL*[Xβ.{`L2hN6pL:xγ>πMBЈNF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgMZָεw^MbNf;ЎMj[ζn{MrNvMzη~NO;'N[ϸ7{ GN(OW0gN8Ϲw@ЇNHOҗ;PԧN[XϺַ{`NhOpNxϻOO;񐏼'O[ϼ7{GOқOWֻgOϽw!,?=cM```||jbj%zԄ,>LӨܳF "a&I:[„ 5F)8\8`4%Ad:*ܗ܅2]o.! ,h2-?,?-?,-??>,,+?MZdv=c=m+=l+u,},c=ccL=kX<}X<}b;LLLLXLXLLXK}bW}uKu```||j((';JVVjis{*W)a(j+>>=KLLX'b&LXllk9t8WWkj}UHG_TTińŌ5ʌ5ʒ4ʒEΙEř^ʑSΙRzϥpӥgӪyثpܶxxˁِŐʝӁ找ĹۮدӵӵοؿŖĩ۾ŇŎʇʍϛӛφ͍ӛӨ׸ܧڬ׳ܳH "4ȰÇ#JhPB3jbB C|qȓ(94%J(#'m Pč$.J@C>"G,Cy#7AftDV"䐒iOJ5)(ibކ-IG(*b ށ|;1‡&&6ʻ'T>cL"Ҩ N]z5̮_$J۸sͻ NxqY}_>rQ{(гKwebQ1ҝJ#7Z#Q P( 78` QQ?<>_~ф L0 AcwmM* <s ݰQ ݐ3LB !e(@ݔU^IԑI.%BI 0"%Vb ܽ7@'NV.D1PRq.K/DűzC۔8x \馉.JN Z(9&]0 HwgT]5,Ǟc@"P@h89y1LË7Rkmh}&+[n0N3̋D^[jgVR)Q[6 " (nj$d Qo,0O\1)ooAļI /MCR牃EX,4GL}Bmo2mC}2>[41*koO6T@ |.[9@!_+P^^r,"8^/lnQF+|{uuHk'pmr)E!L15Z t2qm^dΟ+s8V8ANNT3<,&ƽ6~m`ÍqO[]y\-$p (L:'H Z̠7R0 !N,?)v=XXL>c,l,u,XXX```bbk;J:Iƌ>LLثfӁꪵΉŤΕʹ׸ء_@p(LF"TGgTFɨ@`bPlC*N֡"Q,X 'JX* !X"t*#BSPVNTA!,"ڋ޼H扦ʶ L ĢL*̦ JԪjܮ N (8HXhx)9IYiy *:JZjz +;K[k{ ,Y>ju}g,l>v,z>L>Ll=XXL:lMcL*bX<}X(uX>=KLL(e.Tdw1WWWbzTkata|skjt`|sU]_FTpƉ5FʒEɔUӟ]×v̦r֧fؤpܶxƂ΅ېԗΗك學˩ؿĵĿ܊ܿͿӾɹܫΞŧĩζӯڸӵʶ່鿢ʹҾɨɹӭҹNj͕ӕˍΔӛĨʹժ׷͡ا۴H=-c`, X% !%͛$ D œ(S\ɲ˗0cʜI͛8sɳϟH]C`ҕDS6( N`ÊKٳhӪ]S:pe4O.LÈ+^l0U^GvE$]!\)*ߞrXήe̚;$+>XǍjC 4V&H&0ܻ{ycȒ)3νzwqՃՎG }'IמY@*xcyڸ D'=@8s1@ :Iyx(,y}ӏLc>@+t Ty=t t="0Zi(qpI#(#z|Yx#: :  4K?R"Ps ls05"U8E|cA:ШzA蠅箼bORߏ<[訤:" H_ (Ro,@[el}+囗h$>nΕ@V)h^ozp³arƧ@[Џ{@Ql T1 4l8̃ZU`M t [tLf9ԉMg>az nfo`9 0tִQi†汣)SRI3qnlXɶ}UКܮ4Nn1ke:[5N4LM(+#APsҐ @kΗŌh ;I3 a 'ØiYj%H6ָg8(MJg27Mh RT @2{|k3 1€G^ێ%MO6?UJUf &g8)n<+p CS$42\ yr3E9WMIww0q :e-X3\9S3Ilbx 'a-+Tq)Ѓ,rb[YridDypeA * jLY ߤڂDGg>&Lm푖h5 R=ُa@EM|gsMΔ&Ԅkb(  lClQ/PPl\&rQWmVhlv&%&xvnCVT'otT0SQ @T.n' p6U5/T'`qG}p'|AeW0mTk":@:`pr65l5ws*ss!(!5pev8ALA Wu=m1 G)8Ii%a[ʂV RT~VO;*6Wd8^[ئfZ{wsʠNavȧzp1e{xz|۷~K[?!p dQ Z Mpi: wWX1vBBDDF46@ (0a+J_t` 19a1y.IG /Wd tdGx5C@W T*[@B@ o S5F:|J|q)&wItTޠ;pf .@#%ר.#|ï h j]K"MwK"X!LWèb1Y~#L3!ij({NrmkDaI"#ˡ..9/$Ũ093is3;ɲ; 'Qd ԛ6 tT2D#7R!x|0v|KꓴRI>4S:" 32TE(5T 1IAܰ ʭTob- l>PSptV0(WV#Jhud AfxlfHÀCsj;趛KOG74 #%Y! r vK&ZEl,oZQ &="A]ѭ=+)]@T@qk0I[CCTD`;{ǿ:wԶ:۴A͛KMU:7[cԋɞثڛwt0c$5S{g͑Z|:ֶyIٿ8ƄJ= L| f$v}Q7& yM4C6<cǯݯ'-뱈۵sz{j?ė|4TpLLkZMTlvò*n|L՟sl6vY;it5[w]_PwR[qܵE2^.L:̼!Dah#mrib-,J+WWxcΎΈy 7I<\|acpkTH爨t~xz h*Ƶ\JB+q0{X/<-w+>ԫKJ]aTԤqLZVXmI ]Ի.[R*Jzm]oͽu$+[~]ɾ!kn[ˍh컢ؽ{J|'|@٧to ڝJ諾Ǿk/ +=mLѤۙ 4=i G-D" ]-wPޝݡ6/6'v퍣@-}(qluMS즅1K̴Eo.=?Z)p4B"JJNF6'~){bd"2^6^Su0wxBNMO^$QkJn_aP~8Os6GWN?|`g^f0aNl^n4_yv~ʿ/>nя?^%ҭ }=!ao;;խ~xĩ2aQ 4uC1Cۃ :@@ Al_=:!vߙp2Gya`LR A%ZQI.eSQNZUA,ԸDgE$2IWa}u~$T߾~  GXyѲ=o"kʖѬۑnEe{0bŌF_to'^q klr7]Q#=lGGX?;¦=ۊ}awtaR;vcΤۯ?n::Wk㩻CCqDK .#Y|0xz6h9 loP! j(TFBRnG]QUq Aɒ KtM8sΦĀȟgÄ4:p FFHf"G!4HGeQ@5ΈvL@ӝӤQHr 5O:kV\s*SkZa3SHVSQu֣Sgk}@_)$cWnuI0Evb皖CZ(P8!dww_~C"*|pt7A4 6xzcɞVHk"& (x:YYX.4 Fcąx)naI3!*wjjPDz~nS`k:|0!` >*YP/-ˌᬖaA%܉螲@kC:1-[:G{CsCM jӢAoa(YOHn6~@8hA(luJ?y_*oG]yh'^ѳ~{G/]MODqGW}u"w}?~'yP$` x@&P d`E R8ьȃ=A>Q.1 ',JҁaQ a mxCj8P=)]_oGPKC"Gl#Oeˊ+g$E?%1I|DHA.f9Q"#F(EK;"K\zȄ&NrDIB"`b%-9x,b!iš$$bs0+#k<Lh.Q -#ҔA"e]Z؄`6K n6rd9f5m%ir:ҡx}xsiBw|c?6 isA_8%TBCB;dhCM4*EK1LY4A=QԨ#%YЕd8@tE7ys&%V\ʉ&wH,!GD1STx ؒ&NTBǦ(uEԥJJ?^"KeU\+f=31aPV4 E+!j8 GqZʥT;1淯[Ikk|d$'YKfrd(GYʶ LY[^_ }R.YX|fq"H +!A`>Exw J!g@eLP'ϢֈF8tʽM-}i' 9tIO$OcZVi^Dљ"X8 fZ׀j뤚rˬ]'[̋E&ם{exzw/gY~pMl8b62Vcˌt&4q[Lo]ȅόZFd.~6 ¯KʆWnx-~qg\x=q\#Grl$gLä-h#;H*\|ga $%J\tIDR3;b TN~sӝfAQ<A{_%jP0et|g|z]`[&w ]lsvm|l,0HDlK(.LM{ȗz |-l=l<$Ï̬#I9ۼ,NKɼZIr<IIŪ >lzGL $LtAdqJAũXtŘ|İ< P]PmP}PPdFPZI BŠ (h7K M %@;K Cx Ф &Qp!ΥR,= Nl!Z!R/Pqp$kDӫҧxҝS8SՌ "ӫԨpPԦ0=h-]ߨT/ LG25BZǺ3cpohOe#Q%$T@|ѡ#>V nXmUVλ@ 7RoR w3pVwVE>,o {8q_u;YաXDJt՟UYUWh|XV|#\oHWUzhWt+d%Dz;IkXY;BoxAJK" mpझYy&~⍚ 4M\z0$Y8hړX= E_ x  Zy-] MBԡ@0ObYMY+[x~Ѓ/e@% C+ eZۋYH۵Mb\br35 {?˝̵OT3qѡ4tY{jɁݐPn}; ?H݄Ҝ~0 ])yBQ$^0@M8]إW ] 5 }ܕ=Nۧޖ]Լ^E]@_ή0U4jB™Ryi.L%A.M.|*oE᳀-B`Q*eBը5!`0ءhZ$bU(faN[*y*+z4sN:⣪b1ZCK^xS0R HEn1|A"d" ;CxcL2؆2*2MFN s](1LLо{bydEfd`䷵l`R@ 3KƔtMv_f\]Offbp D4Kg2vj.& HꀺnaJ콾ѾXvφ뾦lf;.7O#$0F#K CEUt ӄn/.oOn1nOVN;ĥT諃f>05B0* 4l>pXuү-nΊnQnn p^ǰnbo~oׯ0p ^q{YE3^T1Ek_ŧ؀ r#o !/%G[/2f(0r[0;HЬ@rrKkq2W&*rxrө_T1-3fstetڶ F2 bzIt tOPPߞ!͊R1#%U HQ`8[wX u:Ŋ_ +U =c. 0 0K3rCu7TG0TD F 4 dP~ 5 RoSM7TUCbwOBY% [uX9CU_VVt3g@WGeO~ֳ'3yևgVlVn5 x-׌h\?ՄGduxkeV [ټ4Ŗy~R[ۺ]YUBܠ$L•ڤMܦe[^zښ;Z_ڢz0ۮ i XZxzhJz, ބq("'u̍_ҥӍՅ)O`'܍-B:m`Mc?=|U^ ٤|uJ|n |ͧO{|po `˛[m,h .!,)5Naf&|a8}.1Ta76<&  b޾a;vB.JᜩOcbNƭ:f>fcNf"u*fHe]f{;Wg-z{4L; TqtM Ǝ $@, ̶^=ҜXq&CH4HC\f.l}>=| *֬Zr+ذbǒ-k,ڴ[!T y\nϑG <}tŻS3ڸ߾H T)aRI,{ `sOḰ `w}+et&OڶqKS/p =7j5sqe硫m=ӯϕ?ba4N- Oz4K?P X!QOF$x9(J:)5m1Jri?Mi=.tE,]OTm0>%Yy *6lť: DF:ΥPlrOȢ{>!wЀ|sJDʪ3;Fjg s4}ftnJ`)a@qjR;P %bt0mkZ|1k)Dy "W pBh$3p3|S;eW@$A 9@F_wX1V ζt (o] =6eUɗKg(ÉFP}7yw{N0}~7jst;8K>9[~9k9{9衋>:饛~:ꩫ:뭯..Ǹ>;n;O%޾;Nv*401O41ь@;ݠ0  ܐ@6TO=~>OHئN'K;xܡOo0mEj:Զ2I;ZZ3  P5*] c(n:ig8HJF j>𱏢cxG)R5vä Z @x5C0E)gXn|۰EuLc<)Mh#ɠ(ARRr#QAeK]@USMrcPmꇱ/T ]2=)YR,_HҤ葬g%0)a<&2e2|&4)iRw"3+ of5)N!F ha9Y4Nwl6]eZB<3{TE=dU(`A ZGivDZLE'N MI= юn,ѓ´>%&6DG+:S^AiӚW;SZѧP*SҚjX ܍tYgXq@n&)u,e˜,M0ӄ?1wKZi ,gZxvs|&P<~3-AZ> Y&a"UH=PG8a/\:ӛFK5 f(t>n?0v\3'LeYV&]iqNKgMaGE“k' XKh[aM3|>+dp;ʴݓnXMsgE]w y Bƍnj{ nH-^6Zp"|8JKqTttO#lg3̼r)Ks| NzAYhvl? yЇ~B#'Ko j |6+_+5*5и{RՒyB: )#bP޶'+xF~:6PCяtLz˞Cpʇ<'G,HBJͷ{>UoFJo=e\˹|`D2|;Ja,Vo.@㍷λO/|i]m_̍hA^E!?,Q9P@@.ûUH=+؅mPb>~tyC, z ۵7 ODFÃ^ԃ),` ( *W\aF nJ]~Ռ^OnJF CL! `P&y^J~ V4(\yD CvF" @ OLU8n28aajV"f$& `!! !V *Ha8bj@"1~\D+DPwDqx C ',Bx#88E\#e8zahr[ >H` 1ancCìq0t9AcDN$+%14GX$e0; "㑴B:d?6DEA>&FOZ=F'DPj%GLP ip jFBI$FFFr]dI@4LcUPF@$Pf#M9$R`>UEiDxaxdFuE$CWH;܃g "vv&ivNjv%vD@I&w&u'r" f>[{n|&sAmb[iNII8d\hh(QTj#}PinL%r QNȱhQU*BJ)Zg&Fҥ(rdf v@i'wƜ=ȎgW㻥\MHiIXiꁩѝjŇ) |(<2>ԩ&v`Zc܅o_xo #@zcdLƛDlxPШfH?hQJt)uo*qfr0sx۵,dGjaTe }+yFjQnűCXQQjEa+"ƻkȰnIC;\.cJt@9Mm`k^뽺JF.f慷cUj $ H4ȃTLHll)HҺ0RHXm%]Ґ%Io&.HI\I8Ҙ ~Ϟ>I@ZV*"mkƒrK H lZD"HTp&Ȉ[F޾W,.4C X$,ZHG4m NlVh}&dt@Ɩ4@U.KBm2JFDznm6㾮N\J˾ ĬLHTʅJ`ŮJJ)Kx( ]+oP/L ʺ@ \GpG V@40Q6Lao E]JpC/Ps/X0SFK:PV VIҝ%h7.0kE'J  +Q@/dp Rt ،L0OL˘qȠn ZYMر-V@.plP XFf/mkÌ cE#Ed$YT2wWt2%[rTg!"k K2&k*c L$&=ԍs 3݀X828J5$5WN6✥V|s8+93::3; ڤ0ѳ=M=;YT@tI:Y$U,8W,t@tf_GfN+FYl4žƀ4Xt*V􏭡?\B" ۅO?A-pCe$0 CV(^UaD54V_QDUZTSA OV{*RY1bQ!Ώ-PI$X:` a nEU`co|b(z^5'35Vu.N6-cuϵ`G6Z~[$I7\^JE.>GH.I0Vv#FDlGkw@ekVN)j@pIMCrht,l PFQFwƃ92ub2 n(Xvo籘7Hy{Dy ~ xwzG o7i\?Fx ^j7_dD:EwCjFrxDP*~i Ҩ&G)Q4ЎI:C>Ʋ"kyk&d.:ᢸSlaxGD^>+nuFSw!yY+o*k ILHzU0/䮸,A>/A9jmy"Q<-XA1nD-0lVxW1ht+_Ҋ@1E\,i7Rkz@r$GrT4W{RL1Ml_L{`po{V첳C{(mGiOJ7ϻ;O<;Сm |SӱG?4Y@s{X>s|@Ohȯ"AʵŻwDe|Ȼ3R\ıt!^v^9"aRc`b4v=pd_zCc;ǣec w$t#fvs3KHdE^$_%u"?&cd6SIHJ0w.{ewi w78|L;spBQ:.*ʟ?sI,D"•ЄVaN:xhPC5ziRK6ujTSVA4+)BbHd4-ĥPZz؜ GOѸ: 2h_Ȇd@٩=栅6nι)Y' j &:'M> Ԅ8㨥ꪍ*D߰.ꮃHN춟垛fޛT! ,--MZMl}```(JJ's:hےLb|7ΑSΙ]xܻŎ΢ء\@p8DFTGg f#j3X@2JBZ@p:(D@(I$zTB#"WB%%PC LVV{RNXA!,jug,l>v,{>L>Ll=XXL;lMcL*bX<}X(uX>=KXLXL(b%k:Sdw1WWWbzTkata|skjt`|sU]_FTpƉ5FʒEɔUӟ]Öv̦q֧fؤpܶx}ƂΆېԗΗك學˩ؿĵĿ܊ܿͿӾɹܫΞŧũζӯڹӵɵͿ່鿢ʹҾɨɹӭҹNj͕ӕˍΔӛħʹժ׷͡ا۴H7BȰa 6$ҮPCP9X!Ǐ CIɓ(S\ɲ˗0cʜI?F+woA8&y1j uIӧPJJիX *X筀A+W)FV,٬pʝKݻRMO/xi/3 :ϟg_ FcXs,dЛ럽:tG/0A-BR! =4ȓ+_μyJX5&u+w6OXӱ]t]Ͼ]a'C/dzC[5>qE epB=܄Vh]/O7Ji;Gd@A|p!"h"*@&@9[HZi4XEAf\vqp#:֌ #$y@@)&fߚmyq) zv /uQ_6裐Fj,Ԙif!-dHKn͕UN4fi|Zj'*nj :9X'kZz= *.wZ-AB@ ݔP?0%P$ccR3!1DmIɂ(Ȣ[6e,̏"y @V4NTQY0R?m:Ӓ]?- 9H ^Ihq-TP *砇~n騧.nP4  ' F! qm@E!7ˈwߒMAFv N1 d?B:hP/{,B fl4ntTP *@10p#THGd=MmFV0 1f*ӗƁHLbs t\c7B@DB%錄6v6P3S4,*m) Г Iz6P H ]U:$?HJ`?" y*G%:dHet;1[U}>$;:! 򖸤A= k + ,? )V Z|~{*Ry?jÚ<3#1TL:…<H1 2+ehL-1e+NmCc!QB@dPI"MA*YbL̨Fgu$Vi׻<{Is&,hs^j#?RvHa-t]R:&x65d&j 2i4$aę|`B`@%R7*K`{cn&6mJ 2מExaXj;3nY 6h8$ U%lg+b2ȅq! w ;m:ЍtKZͮvM"i.`y=I 9^D~鍯|/"*͵Uy!(ATwsZK!p"V:χ6ƿĠ=4`SK:02d&B'FFTb,Anncxo_Rusk쀗KD.B"+(?J{Oe;05fAsNQJr~&P~*~gzKޡ5tTOD X ^Ȼ S臉T㬕U=TMda~B격άwmAm-w0n0nQnX o65Ubwp#YZ|n$[98)[ pWp*HGW8:<؃>@B8Dh!)W0W^QL4G:8ׄT(>|WZF7AtLof-QvUCV\CD]uu[}egbhbjcZvwqWc@w: @B9w-4DكO+<^Q~Sٔ8x!trVIrs(_`[ttdHf`hxulCA]? v]rxbibkQ(w6qUwpwzdl}4bxOn؉GJguxXv?qH'LhKrv|iXX&ؚ 7{zz82AX'WfRgǎ(k r\G~ YXނ1lv%9YǞ&Xfn)U ʑo!HIGp)y.0*Pu[u02:4Z6z8ʓF;JLM!@ !S@_X FUf(YKTtKaFRgak>ADrBt #8ĥ7h eqauyUW?֗=v W~3}t-ac oQX(a Hw2})d;jrQdNRƙ\6K7r&$dI 85@C$S d1!J;pdyYGw|w.SNtr*dvcLD 0ܪijU[IEhGx%:+q@QO}dn7"!Q"'%|Y㊰6}c{&H@%T R: 5""dauߡP%!(WlGU$c2(\U13 Uۡ ޠWq;bWٶWiRK  tn4%k3UY!o7+UG J4 a[7:5 ,#ZCfe\1\z/S* e . G: ::I0 I۽ӣYA"a=س_H:DjѾN$1\MOjf?k@-tI'vcibjDe1ikڦoXR_n `Y*a apiSć~a&9P{ Mdv!ej(bzԩJjI.l;jZ)竓d$Ī$Zɺ]7PH4꬗y2wsW\;抮*@W;'$$ZZ4슲PVRArhTL; Kds6|xr+JkA|HjsoQ\;0 2۝Hj6۵8):-*>9سVJ˷Ch&Y1'&cUe{i[Lfc"Wt"zrgJTβS+/r$2EYz"{7*! ZЧZo;[3qq k_k&qq;]B\6I+L-R=T]V} aW ?Ӿ2^aBQ?b87ÙjHQJDlUK2Č R4 $<Ỽ|m4K,Ǭ,rz͚ϯ+8nH>Y+"yjk缵a ju||,<~=3V]>JN4 Mn ʸ-o5ls^c/b"MAaҕрκگEԶ-X97WF[@}$AԚNμIGԨQy\]^NdjMU)~@xM=ɾ{}}C`eٍ\ac '}ĜLX u^M L? q(ͨXč >|S Nl:8)mϭx-yx }$٭odqud]d 0h^)V|ߌ\'ɜN|aI^KR%P;(ΰIgb,(>nOg#+vK˚OWs՘߼޸Z&6> ͦ&U@U,f/C/ìXZlS^V`}EBM1X w` K}b 8OFԵPA .dСA &5nG!E$YI)UdK1eΤYM9uOA%ZQI.eSQn:$*I$-:RŎ%[,#Pôk}0:~_`50bg~oM"`lM'QB<ױg75Wi#fb v=@Żm#\@X6УK];wUC$_<,m$Ul!fG^!͐ 4@3 `$B e4{̱ BYe ҁh  9\an ~HS{:@ Zq bm{X#rH5 ;tÂF,1mı1 /'t(Gǃ&ƀ+0|

OT0_yh0GT~ 0`np%TN: TQIN<==HRJ-cw@: V8Uv٦L= 6hzQ 6IiKB-X`k΍TL,;X8҄5:Y! jw4AWp xbB_ W`F]us 1Jß!9d.-H޸[icޫP˰!42XW5D {kv6;QDe׉Z3ۂXSGvҚk6{֗mt4oD6( L.r=aNp`b_% UǏKɄJ?=.mϥ`@ǕG߃şCp%v7sO~G2EKR tUw= 2 #|}/uG.Up>(Toc`_<,M %HahH(}F2G >׿O!ښDBbQk7b 'ށA6Q{TID}Y#|$d! yHD&Rdd#HHFRTUӎQRI5.vR$BRRl iLԬ5lh4#xz8[e1%9BP auֲE8wEL&MpUU$7B!T?8h(Dd g=9|KBV>{IΝ(r{&TKY$d <;Hy hG7)`3RAІ$o߁gA gzT3<!ucq KHS>bv4ejSW? i.ΊIjPRUN%kYIE6VFXŃ1!k5k]zWU{k_WV%la 'Ks~r|K(!{Y$QlgUr=0oy\RMLyVLfI uSk@5"4[>ruǝ̩8ubT[jS(*!qM6^C6TcSo *_9ؾUtl-KaxXj)B'ŽNu/PlH}0;a$TTU\էBq) њ^ѭID\{|d$'YKfrd(GYSrebI(6V ˛vY\1оR=t ls 8y%tC :PG jۆ̃ImY2EK^T<>RoAmv"n i,WZ͍9XuQ4 MW%CX]PZ'ޕ?U߯r\J5YԼAkhD]})m3͒_ζvk2`S.nNyM%l5wURa J0quPCx#M0a{pW}񓬘4R ?b`敡 cxܪI~ U#H|\C'zэ~t']KgzyehS7ʗfg'ez[Ē=t-Wz4Xs 췹-S4Oӻ$;+,AJ+3C`ͻ ˆkpk6,5S3/o0$2<0)>(S`>r1S:48E[ +9DPS?b?ZDR,ES3@.w d-`T;ˡ "m MB \ɄIFPQ ~SS.R AN]/MN99[) C)J/`?O,ȇ|pGmniiBc  i9XBKւt0iuUУ%dYB 0PZVn%~}&qVL#hiO]M|&x>_3|Ճp w}RRBC1GLV`mA.DnC5NOQ%Z5=Cw8‚(=ĘbŒ/G5֜iuSKx[Kйkٵ ڡ-ZMԤY}H}ȋU6-}MZAڻ]ڬЫMr9ѽ۷c|)\};XJ?d-xrCڕ ٴ+w@{ـ2+1B=u8~}m5/8c^aX]T-\wם^%LԖ=u}81B|A`r+QaN(++|&aȞ9u0aV^&n2M ;t`ۀg=U`BFc圛:0'֞>^;lU [ ) .2߯ _aq%8cnca+!z0Jd C6D>~-PdC!}4OQJP^M8D+"ՠZ>*֠WhbneG[STrX*dnfg֍DLUvXdžxHVEdd2f8WIXe8#fc憠Rfy0^Ăx"CYq"}?~ ŐCUYh@hDNe`șj.Nl f^p?h?H鐐hhވ>֡+Η<8)0hL >>v(j\~& jEk.kxEVndFoE Gr ő Fl dhfa~*Hkh@v45gH$ {l|,!yGxȆ"l(cI jmɑ,I@Dǔ͞\J3-J4ʂmdJJӔ@JHTJg$K#f3n3$AK˨Jҁ\3fy >ic n;`??^a] 㟿gwCo+eFh{z{ q&dHdbj~RkOfVv}X.Y~fyeb9`n7fDdV"b^~EN}'1bi78hX>ݟh?""hhԁnDlX~jNjf__o*G:֮h0Вn@Żm#\@@*~}p&[vq#Ȑ"G,i$ʔ*Wl%̘2gҬi&Μ:w$ kDPzwSBb zoVFs,k,ڴjײm-ܸ_ͯh?u3@= ~wp@?iUdr3ТGn uRGL $h̗جhoʗ3o9fƟip@еOF{ӯoO뢱@cGsCxSG=IHȆZx!4]uP?hT= L]V„+"?:dIȢ=#A:a^,eSX S?D9$;ӑU_ %a9fZ0ԀG/Guy'y'}' :(z(*(:(J:)/ !;Ami*$CM4DꨵhUV 5Z[SHLASHAx*:-0@@*O`[S@. v*R{,DUyJ r;E[QTL^+qOw|oj-|a2 $%Pppb, z4έ&s,+ճoK5/=v|I7_uQj۳o}[ Ay- S7Ҳ,݆M6G.݆*n/ pSD1:@PCP8HNwyKzs,42m45Ju{=7&={}r?skx`rV8Nu~~8Ċ$Gׯ|G֧=PQpŦ+]K޿F?`0\@hR SU]aG`\01 iXCP>Z!QxV%2N|"(E1LS"tE\$P Xz IDR*'MBj$ f`JTd4Ó%j(. GP b$IlQD,K0%| .ILL:|._O:1哀 9It Sd ) yq/';"T2N$f@  =hCJ} DaBQ3Fv!-iVwt@hHCR$+ AFKħ`),:H"Dul#GT@@ .,D3V! p?`j50 GFZғ$! iHC[G"֦jgM+JUzmI2jn^E64X0%IRӡ$)eEӓ:Ajj};3CJkY\a;2׸U,O2ǮV[*izՈd5?=.RVomKj-!l$G] Za 7x.QSzYV2{ayb(A?s"caS"$?%*P0̍@Ss!ۣM'Rt {,:|qD$ud*eNɟO<ivIEBa wf;tE!tHr;dpțUlc6^\W9pnx_Lctz3@ɬa/$'|x#QELl-H)l{D@<~^ 焌dL2/ƌYoF@+@XI` o7w$ 0${'8Զ8,|ȯd\ A2t@;bS pM2S+iV?I?⚛!x[not ?2? NP9Ia,/x;z^;7O:x5.;d C# q l~7X|Vb89yΉBk./U6[O,?[>yK~1D3TO^D>rIގG I+nI` n\~ 2?eǝ 9 XdaCF`EH uv^T)_{|zpa{d9UvpE?yUmwhwnD!#yd.]a[y!T !#!n` H8"?4SGzX'Z &v'I` C$ S"^:D!. b&+EAG{ `b=:%&ޞ.?%G(R|Đ9DIe77:88QBCˑ;zȀ61:Gt`?z>v BU,yc;Ȯl8.-䑹P@bC"D_;^XmcA棞idC82]7䡥^KJ3$?cI ڭ<㡉D}ƒ;AHCCFdEWd d^I(X8@>NSc=^d)OYwYX0l:@5X LF%|@=YL>k_&? faa&QLIBg*&0X=&k>ȍKjinՃ&TZHc:&d¤8/LDpfeyDoLr< b4ag:6`DН Hi§b,C cJQfbexvz~榅&Je&Sݕj%pgrzG\*(ar'~~'Hgdm&ng5c?g}饨U0ܟ@\@IG,AC?\ C$$DU 0fD@| STq< :DÒ?`vΑB@řC @(iZک| 4 D7 GPxUH@daD)?J7DVFj.x6)RrHZ(*5jI$ꬊD]$l*vi)pSH@:Hz*?)KynDjȶv?DH0 HĀ !kHЫȄcK,J8GɚD k/e",I :DՍlXJK)ʚ#ʂl0 ˦"kJlKlHllGǂlI̬I-I$,HPH\Ab@"N|:)8E&G1bVm|1nmVC]@.HD?ӪmHm- .K ?.FN.V^.f *MLr.K.e.℃$Cք/dGLH\JnoMq ^NZ}BpFV @LBRueVYfIS],Ȃ6TB1ġgZ7kpRRl!mA.-bfu{f/UƁ)CA/UݱZD/Y WX#Hn5H(QY̙Il 0=ۤ=Z Y)E!Vt ؎Z,-!q9 o#?\ f<]`^:œ}[qkJ]k@9SFGx]yqeqO]!G2I|A@ *__"* dIq`y26Cprp,22TFj~$YB8bW2v-rG0bpCHL#!@uW"!VXLswd㹥3VD)r).na;9+~~Ds"?C:>"9g+U&dX6H己g8TOj*[CB^[4>"m4k?Dn"4llbXhv>Z.I'}#FBON;[wȋ&QMh;MF7z7du/h+lȻ[FbS Njʁ^&M.*fPϤdRRknf;>Ah5pr(vr"'ottRSĐm'է>]F)!R?uZ*`vkj`sGujI)Kb۵*6Fӕh~Cˉد-K|zrG𫿂,,",ih/-Nl.k; YwY??x34xaB 6tbD)VxcF9vdH#IBxdI+YtfL3iִ%ʛ;yhPCF̙hRK6uȣVzhkV[qNlXcޜlZkٶu{m\s n^{o` \qbŋfrd%O|s慕5w91gУI+tjիfvl!, !r, 7*<)+9) =0*..***,+?)=++>>=((>>>Njxy /J3s,M3y-8N%1gJ!U$1G2Q59w$K\Fv/PU3Vj4bW1fsPJ;iiutg,l>y*y=YMK)ND"tDGSO2TxGx"lMcL*cX<}X(vXG^SX$nmj-TУ7 `b0*SJվӫ_^ @ܾϿ(h& 6F(Vhfv .hRohґ,0(4h8<@)DiH&.9%TVy"gdiUa`gS5I@S%tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駲99J(Zr饩9fg{ 뮼+k&6F+Vkf܆gl٥Yʚ @sk,l' 7G,ąz gl殪!+$$/%,0,4l83MH0AP=C>sHQ? D`@B+M3` ]O9Q#=4$eO9=vg ?@m5 %_i?d?a-3xM^ d?'nܭO UN뙣t.CO;6|\г5أ@;|B5\x-۩{=*X:q^; njCs 2W@p{=6 c6=pn*:3@;kY c:T7G/!"$Hb C C$ ? H:+vc?±9D H D?kqLURa/Qݰ? l  9G>0mRt)HBp{l7 4ӨnQkf|~b@Gj]=('aHDFK^d0yIHb^A:xj0 'f0q0ZNdBV"{AӏPDGy$m=|)0{q C{~Ќ$jx3k2?PXd$Xڱ#"E@҆d@&EJYN~X?2Ї DM(t6 vXBn8kR6i M[v #_mL[8D"!ÖosjHjn>1F\;Eh )"BSc!b! 'pbEKnc\`:?KҚMjWֺ-Ho.-n& pKMr:)ԤA2DTɁ",*D [o=,|B&>O~^Sz ! 31"N(.,iXJlZCPf:jT؍l3$AV\fD# x.a [=pL(pNDAc/Dc{íǶUSr|O2?8Pnihga!w o-pq<':q7=6`)3(bg7]Eh"pZʽHrAH7N8E {S&Um}, jHCijS#K_u <Dn ,8˫CZzKHGk"dQ:PŵC:3_:$H~@(h'N[gP =ՐxA`Ng.lEbLnV|dJq׋ghC|Xy{(M} ,aPXC!/yzX.  5 By˺l?4LN^cTC/Ѐ:h?-: ]fBLk#Y{:c耈}?D =\_}tpftAO`|iOHD2P:wTkF0eUveP 8sdDf&p }KG+b)GG8`67g BJf `8(TTdOpP;4Hui}JJdmDK3P2XxqWv'`p'{;?7wxxA?k =7`*?Zu4v_I Kع^Iyz7 v`z=_v`FXx*1?3D')+D%vb);z|l|5VOR3 7N а||4T2d}q^c#ElB~Ar{C3;MCObRHw}CCZAAbJ}җ=?UZXK}$"MCNVg`y8d[C~;xx? dHFj x~IGEFte6Gԉ4 Mp4h jd> CnQ$(jV:*b:j]d Ċ*蠁ЪZT~#k8.H}i Op~tqB7#IWf)p g %J|SIAVtEe!uf-1 ;?[d(8[Gf;@'TVOAڄIu$kA#a"V Ihcxh}o{ iC{QW/Qs;:XKNNXcN+?U!섴dh{;AдYHq}T?/OPufh6;F؉[x+P8FhF}k,ptfjoUHQƘp߻jP.qWPċMK SsVS7EkkllREUfȫkVPHc`һ: ɠ3 UUZ.,l9lU 㻤Ye|lPy6c(T4jCn'küXR,); V5ne;P&VlVE-ycW%5ƪH` [zxBiyP%H\۴Yom5v< qݠSz<*д zBm:cH`ꨶ#Ci2ƌ\EWkJ@i,f$غ}{}sЩf7Ѐ2LJdmdiݱ$֭6*ˮ;zuz}Ѯ_ ; ;{m RЁBK B]kR n { βOgIJokAb ޅG [Ld)]uIk%NY~a;BM{wޖH4"ni] '~Ӻ*h喀R2.N\{ܜ;+KNlWHm۽Vc|лu~3䱴[<|˾; @UMaո\\!?T}#*ƒl7;'5\J6L&G4L菰3îZ;8}Ru<~ ՞S3Znof‡响&l nuTFu㾓ɰS˱F>𬡍EZy '&pY c Fp#=D AKU12Rՠ6 4_6Q ϘD"@/)23tZF-IM=s6SD|fdb\Yh?!uD!(QͣP0E|z:`'A+S)*zjv%@zecz _֒҉iOX7ZX0p@8`&;^+0GI] Ϥsmw& C9*`o߯/WYzA{u8ݓ A5Tx+Ag D-Yױ= (z@L#1RMG $3A3 =ABI.e)GUXpOtNho?J6Dh_Guꩀ$UX%PDhubl_pfU`ڐN%O\e̙:@ϚE&]ڲ 55ixBNK/ݑ0P a~47p/Ex;KsxB GX5|Z#,1'o> L9rJ$!i@( R BP?@6HР :8~ [&]WAvΡ8AR2%e8X=(Q0N*ك)JC5SI%܉&H817u-,Nqam ggeɹZC$F{MKaizʤt 2zlu &(`<2v<=7*V)x<GA WR2OO&*TFBNڃ >%/mf#n>_=qdnk ~ S|IUқwy\5⳺H?'Oj"v ,v _˯]d|`{^ 9tAmy"3^vB0b,OA}Hr"<%3#:_$r)YIK^d>ȉz (F93Yї?61"n!mQT2a8 PUjVȆ.n3w21NbBDtO!gvGg?OT$A6aЧ2zH4w?ĜDiz.y2?Ф&6 O.##@yRQĥ2)]TEHN*U :Jje1 EH4#Ret.-UQCEah$Xc )g2rh$3LVVR` &|UBhZj6!ŀ`/VnK"A$r%Y⭈!dsKȽ9!C]횔#Egǹ\gO)F=t{\OG2x.W"Q v$ ӶYc Y"M`.?% ^k&pl8F˔qGG3r>49.VF>2$I%)MQe vwҳ,PLhfHOqܜ췼N|&Ě1>O^"}bá(;0c_'~_g_"]xAF-#Yʶ, BS-X ӟ??, y@k?J-ec/`gÌЂJ: 5<1*1 uP D֢ = D(r8@ڲ-b yqJP1Ìل0ɐL( ӰBZz2gP.t.i`ˊr>BK*J/Sa//C/S/ 0tP5z)-( P0_a0GIhD(`Q6d@C 0GkWE1$5È: +L'#4#X2tX16 K  6yF) ; #{  2Fx@ >@2ƨ2XQ"ˌ0{GW;ƨ%@!md^|lDmh+-;Ms0 2c83HŦ`3bt29s;!4#yG5c9#tDCsʘ<A  |HxKFPء4EtɼH4TO 6jC3I5YFBi9A(@qV6!YKM)95TUabp9_L"DĄp Y Q1{TqL0F!cʄLٛ CGo{Aq; . ϼY7A"ˑ7 !M@&\,c-=PF=Gjٸ2TRIS9^$<=S5M' -*=6BP+J@;A[ɐ<8>K`c{cdc;4Jcl <&eqdQV\LÜS[\|0N\LT5W3=xNpMh>RPdCFP]K^_#M0WIMMh6gy`y;b6f@f\fgfhnN^!Ml|6YPTs 7쌓[hh?FOrqhfsv# ͕mm 7mPɰhf~9δ  %QЛBѰyK8Q1[N@ш"lJ`!8v`+e'r@ &QC)T R+) RCk3TPkL-45<_{bßUM ;l!n:[>q0l؇eh5XA'nTBe D;E5T* Q!S]޲XSֱ٦mvr"gzgnRlUeS{W_yof}# x.v QVH\$N%|-%_AVOEem=+Qׄ`W߹Ob 'p3T3H׉pp%f[X=&q-YY$`uwE O !'rhrzȆ-r/)ك)"/?s4Os5_s6os7s8s9s:s;syN!,&  -?*<* +0;Acu|3^%s3yJ!U$:p"9&=Xc2^?aMAMVJ*Y>cqs}%},K OA!pH$yFQ2TxGx"uXaCMӨS^qqǃ#O|9ΟYͻv 1dɔ-ƬyžA Nس&n<6rm;-]ӫ__;lnpt)'sA[& &wW}6hf}'``g`yh(ba`7x v_4h㍤Xb͈Di$E:ţ"RHPF)eIdx7\v`g]b#zihWbi)眼IU>Y&|'bv._?硈&RC V{**餔hNv韗WX᧨e&JUAꬴ*G.k`B֊f(+k&,4[@< @2v"-֖p 2I(}k. !؋/Q\@ r,oګL_$Z[1QxA%2) l/khl ,#3BoLqWEH9O!OJY͵P㻵[;H]bt(j\@q p` %̯! RH!2wn `NzzꀭW5L҈UhE{ e dY |K%&~9!, M```<;JI_ل>>LLb%|sTŌFʒEʑSإfK `&I:[‚ P597Z!P20 b r(FȄX-9j8[\6wU! ,M```<;JI_ل>>LLb%|sTŌFʒEʑSإfK `&I:[‚ P597Z!P20 b r(FȄX-9j8[\6wU! ,?-m<~YXbbbXX```;'s;{J{jUhzݒLXXbu"t`FʑS؏ʯɨܬ^@p(DF"TGgU¦Tɔ<tBJ.Jyi"T%BkX "! # X "\!`PBSRTVXA! ,$?=cM```||jbj%zԄ,>LӨܳF "a&I:[„ 5F)8\8`4%Ad:*ܗ܅2]o.! ,,?)v=XXL>c,l,u,XXX```bbk;J:Iƌ>LLثfӁꪵΉŤΕʹ׸ء_@p(LF"TGgTFɨ@`bPlC*N֡"Q,X 'JX* !X"t*#BSPVNTA!,4?```=Kt8WWkjΙRىӵŇʇʍ͍ӛܧJ `&I:[‚ ,`\B5 PQbR`\ -pYCp6Lp!!,<-+>>Zlu}Kb```'s's:|IIHUτ>>LLXb%k:ŒSӥgŪζ_@p(<F"TGgzDȠA,WjU:uP#2Qd'>k'} $t (aPl(S'OTrJXTVXA! ,<``` o܁K& lry8y[ !,<-?=XcMYlbX<```Va;{IU{{rzݒ>LLbl꿺ĉӭح۳a@p(DF"TGgU:uX@dEʄFl0%05q,$%rFrP + (&X +"(+)X++)aKTVNJXA!;,D-+>>Zlu}Kb```'s's:|IIHUτ>>LLXb%k:ŒSӥgŪζ_@p(<F"TGgzDȠA,WjU:uP#2Qd'>k'} $t (aPl(S'OTrJXTVXA!H,L``` o܁K&,ry8y[!,T?+Y=cKv+Kl*W}MYY,```Jsi˟_ŘhӣةخŪʵӺŎΔӨF b&I:[Š е48iLL@l49V3c ^4A$nYBu GY^]m,,! ,\u>}X(```;s;{%:Iƒ>LLΙRɹH `&I(AO0g!M2ӃhPM YDc .ET5qD+ =T 2R\7^ !,d?)v=XXL>c,l,u,XXX```bbk;J:Iƌ>LLثfӁꪵΉŤΕʹ׸ء_@p(LF"TGgTFɨ@`bPlC*N֡"Q,X 'JX* !X"t*#BSPVNTA!,l-?=XcMYlbX<```Va;{IU{{rzݒ>LLbl꿺ĉӭح۳a@p(DF"TGgU:uX@dEʄFl0%05q,$%rFrP + (&X +"(+)X++)aKTVNJXA!,t=XcYl,bX<```(Jj;s%:sIIH_iԌ>LL6FƏ͹۸c@p(,F"T&6Q0QI4OiDb){ z&a6HB}R& nX&! &R&&LBKgJE^RA!,|?)v=XXL>c,l,u,XXX```bbk;J:Iƌ>LLثfӁꪵΉŤΕʹ׸ء_@p(LF"TGgTFɨ@`bPlC*N֡"Q,X 'JX* !X"t*#BSPVNTA!*,?=cM```||jbj%zԄ,>LӨܳF "a&I:[„ 5F)8\8`4%Ad:*ܗ܅2]o.!H,?=c=m}X(```jrϻT؏܏شʯӺؿؿG b&I:[‹ xaMp,L4p6nD<„nƳbx j*ch6!,?)v=XXL>c,l,u,XXX```bbk;J:Iƌ>LLثfӁꪵΉŤΕʹ׸ء_@p(LF"TGgTFɨ@`bPlC*N֡"Q,X 'JX* !X"t*#BSPVNTA!$,``` o܁K&,ry8y[!,?=XcY>c},uXLr߽B "b&I:[ˆ 5H1"FDEM`I, nLt0Tg:…! ,--Zd+MYuu,}>XXK```JVI>L|s܁᯺ʍU@p(\F"TGgU@cC"qXXB :, EPc3$ a]$#aB WTVNtTA! ,-?=XcMYlbX<```Va;{IU{{rzݒ>LLbl꿺ĉӭح۳a@p(DF"TGgU:uX@dEʄFl0%05q,$%rFrP + (&X +"(+)X++)aKTVNJXA! ,u>}X(```;s;{%:Iƒ>LLΙRɹH `&I(AO0g!M2ӃhPM YDc .ET5qD+ =T 2R\7^ !,u>}X(```;s;{%:Iƒ>LLΙRɹH `&I(AO0g!M2ӃhPM YDc .ET5qD+ =T 2R\7^ !,``` o܁K&,ry8y[!,-,->,Y}>L=YcL=Kb}WkkkbW```kkktkk;;Hiԫk#ΙRΫyŴŇŎʍΛӡ׳X@p(\F" $ Š4>@lZAx׌am h;]^W CuJujK^UJ^TgUA! ,XXK```JVI>L|s܁᯺ʍU@p(\F"TGgU@cC"qXXB :, EPc3$ a]$#aB WTVNtTA!$,?-?MMYu```VzzqΥpܶx΁ٗΖʍʍΔӨح\@p(DF" HJDBrjv.HS(k+ঌFAKB{^ #t|g #u`#eJCRLeA! ,-?-?d=Y)~=WuL>l}>uL̀yH C5 FA:"LYm6N4td#'( K]+&  f"Z*B JTLA!,?-m<~YXbbbXX```;'s;{J{jUhzݒLXXbu"t`FʑS؏ʯɨܬ^@p(DF"TGgU¦Tɔ<tBJ.Jyi"T%BkX "! # X "\!`PBSRTVXA!,?```=Kt8WWkjΙRىӵŇʇʍ͍ӛܧJ `&I:[‚ ,`\B5 PQbR`\ -pYCp6Lp!! , ?```=Kt8WWkjΙRىӵŇʇʍ͍ӛܧJ `&I:[‚ ,`\B5 PQbR`\ -pYCp6Lp!! ,-?=XcMYlbX<```Va;{IU{{rzݒ>LLbl꿺ĉӭح۳a@p(DF"TGgU:uX@dEʄFl0%05q,$%rFrP + (&X +"(+)X++)aKTVNJXA!,M```<;JI_ل>>LLb%|sTŌFʒEʑSإfK `&I:[‚ P597Z!P20 b r(FȄX-9j8[\6wU!$,$=XcYl,bX<```(Jj;s%:sIIH_iԌ>LL6FƏ͹۸c@p(,F"T&6Q0QI4OiDb){ z&a6HB}R& nX&! &R&&LBKgJE^RA!N,,-?-?>,MdMYlKbu```8(hVa`V!.K. sRQf=q4#% ~T+I#(bj+)cC $+& D J\A!,4Mu>```;J;s%9`H˄>+Lk:} ˃F͹A `&I(`LN" {JEXS@8\?Pa ($K5֊޶.$OZX ! ,<-?+M>MK~YL>c```(Jj%sIIH_iԄ>>LL6FƏʯɺ۸n@p(LF"TGgU5s(Xdd"U22 1y"3 )1rT 3+)3a33$hX-X2"&3#WT /30!PVXA! ,DL>LXL=XXXLK}LXbbXKkkW```kbkkkt*Wbjbj>zĿܭӯŎʍʍ͡Ө[@p(|F"TG@@YB d B\Zm2 qYΧ̒<|M#Ox(gB%j'C NJGA!,T``` o܁K&,ry8y[!,\u>}X(```;s;{%:Iƒ>LLΙRɹH `&I(AO0g!M2ӃhPM YDc .ET5qD+ =T 2R\7^ !0,d-?M)v+>M*K~MYlXbbbbW```tbbJ)abja|7|UF^ݨʵZ@p(dF"TGgʐt2I@ƴt(`@3J, 3B퉓f $X% !$X"\]}M v~RXVTA!,l}b;```JtŇ-)RWJ ³ E5 )!,l``` o܁K& lry8y[ !,l,,,,,+>+}b;```Jtʍ2)RWk b/IrL#=+#UD65! ,t->=YMYXL*LXXXbkkbK```kttJJ)a9˥XbJkaʫyضͿY@p(LF"64y.B"LBMǰ* 3Fpx@, )c~ETLBJ}dLA!,|}X(```;s;{%:Iƒ>LLΙRɹH `&I(AO0g!M2ӃhPM YDc .ET5qD+ =T 2R\7^ !,?)v=XXL>c,l,u,XXX```bbk;J:Iƌ>LLثfӁꪵΉŤΕʹ׸ء_@p(LF"TGgTFɨ@`bPlC*N֡"Q,X 'JX* !X"t*#BSPVNTA!$,-?M)v+>M*K~MYlXbbbbW```tbbJ)abja|7|UF^ݨʵZ@p(dF"TGgʐt2I@ƴt(`@3J, 3B퉓f $X% !$X"\]}M v~RXVTA!),Mu>```;J;s%9`H˄>+Lk:} ˃F͹A `&I(`LN" {JEXS@8\?Pa ($K5֊޶.$OZX !,?YuX(```)a;{;{a|:h݄,L|7ɨܬ> "a&I:[„ еۻN?lId1I)$ j P<.\!*,``` o܁K&,ry8y[! ,Mu>```;J;s%9`H˄>+Lk:} ˃F͹A `&I(`LN" {JEXS@8\?Pa ($K5֊޶.$OZX !,Mu>```;J;s%9`H˄>+Lk:} ˃F͹A `&I(`LN" {JEXS@8\?Pa ($K5֊޶.$OZX ! ,?YuX(```)a;{;{a|:h݄,L|7ɨܬ> "a&I:[„ еۻN?lId1I)$ j P<.\!,``` o܁K&,ry8y[!),Mu>```;J;s%9`H˄>+Lk:} ˃F͹A `&I(`LN" {JEXS@8\?Pa ($K5֊޶.$OZX !,?=XcY>c},uXLr߽B "b&I:[ˆ 5H1"FDEM`I, nLt0Tg:…!B,?)v=XXL>c,l,u,XXX```bbk;J:Iƌ>LLثfӁꪵΉŤΕʹ׸ء_@p(LF"TGgTFɨ@`bPlC*N֡"Q,X 'JX* !X"t*#BSPVNTA!6,Mu>```;J;s%9`H˄>+Lk:} ˃F͹A `&I(`LN" {JEXS@8\?Pa ($K5֊޶.$OZX !Z,?-?MZd*m+=Y}LkX<```<;JV's|>Lc'|7ذxʗ܁ܨصĴʍʍ׾ܧb@p(\F"d>%xبT4 dTIM񁺠CC   M,BuLD mHD*GC*#I*'bSW" Z[ J|JLA!<,?+Y=cKv+Kl*W}MYY,```Jsi˟_ŘhӣةخŪʵӺŎΔӨF b&I:[Š е48iLL@l49V3c ^4A$nYBu GY^]m,,!,--Zd+MYuu,}>XXK```JVI>L|s܁᯺ʍU@p(\F"TGgU@cC"qXXB :, EPc3$ a]$#aB WTVNtTA!$, ?=cM```||jbj%zԄ,>LӨܳF "a&I:[„ 5F)8\8`4%Ad:*ܗ܅2]o.!Z,?=c=m}X(```jrϻT؏܏شʯӺؿؿG b&I:[‹ xaMp,L4p6nD<„nƳbx j*ch6!,$,>.)+:1/+/-,,,,+?)=++>>>,,>>>KTKixx/K*h(w;d;y,M.8N%1g1G2Q5K\Gv0PU3Uj2bY1fsQL:ng,f>w+y=YML=MDGTN3lLcL*cL=cXpDg  5%i'x'MP(Bd= >'4;f?z?l$)bjPp򐦜z ҄?@JbhC HڪA G RD**>;䪫XzK >*:*ˍ,Gt E=Dnn:AOcO (b3%<50ʦ;"(By$6q&C U" >r >WfGBcJ؜Eˢ1y d"#1 簌?}qbPu4C4:kd ZbBZ5KsLR *5Es; IrT=Њ͈4C CanqT<)"7鉋zj"5rԈPlX&X\]Pj+Oy}2R9Pz^&bZنJsD` "^Nx &Bo^%mK]2(] K{JSڡ(Q-!,t`P@g~-*N1r0֓f hǀ y`#HP#35[#ˠy30Dmn|ѡLGA΅ʠl_>j yG4e~Cyu0"@#&/ycEprΞ]_9;/_&rL_cLߑx,6>$$FY`kOwpd@pbAa=oâ/ӧcoҥ qWlՔ^MӤ{;T  <@"DH^ \c!:f0@)y\aH;cTAd3L9u)!ā@Z4OGφC!i=썿>A>`aӧW0)Ԫ=_u -&V@5-uN %Cc!KB 켢VCLdI2Ǝ7C|@C$y|yx 5Xf6M*l5;;WlٲhP w67d*"⇫|!*@|uKQ*c /̐_L#䩩kLaYosm  CrI&@'E⎑cH<0N~Y ~E~bq?L3TKiGS@1<3LH#?&Q ="m< 2 S/PG-NROTL*`S2ՕLhO3&IIB #j( ÎD3a]b챪՘"WTMX+>𻧛ih * `/n;_r1 '#(W "V,H(L G>$HaHЃAp @fxle3/̡ 5 p=Ѐ|@2 0GG?66)Ў|Q(@SQS8 { WգcUQЪɱn!YH3RL024-pŤd"wD$N`ɀ@O=+q_N6ZB ~"Ԇ-*+Nꑇ* 2*JCUTP3YHb$[0 Ml⺩~e.u W ֈ*}Na[6|)1h"3~T9 ?NsUE6M֗7qZ,!-uEHx*xf#F;Ɣ h-)q$D! azᐇ¡zR琊t1$ $D%0X K.9-F'%AtZr\Yb#5@-!3RL**Ő/BbAXS,XZyíݪBtҪ@\đu!d(/֊~\ /  PfV; @Hf%kNԬ+KY˧ȶEar|f4Ykfsݼ ‚=B8 2ezCb@P=! tp0Jjus='s qIQPx;9_d jr_ bcX4Rl}:u@e/DKI?p/A@ MVV%%lXyedNA`j1Nm ᦠ=(u .adHCPOa!ۈ}7d $B3$M8hl8L)FTO"h7O0q2?]xˤ)y|1 {-/ʞrG=V)?\H, #O"YD%y$E.yLn20e)iisz/KhKt-AQL}Qݻ,g uʬ_?Pv$Bj^[2޷|'NP?4O2Zh՛'9͉Nu3{e ,C&P&B(b:5h ɊL*@ B/@)b bb'i )* (*c҃V4: 'فb8mq$ 1apB|B œCpOXCAč :| mbªЪ  D 87u R6XB+ J[ʶ@m)/O½ RP \*0^4`C\ C*D܎\,DF1@z)ō̅1ȜLР˷CwDĨ$0OY(1x2;: #cQB0ANNͿ0N t*˲7N OO,OT`Q >Q릉q*s $'p˧?X;}M?فp@Z- -Ĕ?Z* êC͎;CYEVk1P[#C3ܕ(E@C5l+A\)ur)ҷ );#).TAI" )ʱ<Ɍ4˝<59}H!>JJ9܈.T󮙬lLӳacb23Fc56ic+F~H}{XPA0\0or11iM1 tFܴvވ !h2TD{xfy!hiN+1blh2Dtvhhhhhhii.i>iNi^ini~iiiiiiiiijj.j>jNj^jnj~jjjjjjjjjkk.k>kNk^knk~kkkkkkkkkll.l>lNl^lnl~lȎlɞlʮl˾lllllmm.m>mNm^mnm~m؎mٞmڮmUmmmmnn.n>nNn^nnn~nnnnnnnnn-%rAN`^ono~oo_jܦ!ܶp(.1Q 64<^poppnCݞSmP;m  o>H/q?qObmpWWP O` BHňQqWq'r(r)Pݮ+nwoh"5qO Zx,Po`)s?t> r%7 6?>j={0assPuQƄ`j -?T_FtH;pDtG>q=i ;'uc?vdOZI)t2mfwvh>G (oYmǎ;tGrW !OWvywzrqk$w}_F…Zvqud;p (Gw0.zxx Osp 1;0X~ &T8N/xxynҀ`Sy\e.U 0P70^wK5rV2O?{O0z-?p܆Z) n{HuQ=y|/GopQr#W| jrï|˯|bb "|O{kȁw}?}Wv^} l(P!u׉'z` 2EM\` @(fhύ}P}ph w~ J~vh{mX[y04ZRPv( '„ 2l! _2"jjoCQqR(Qe#.dB.Ad#ϞcQCUD tj*֬!$5ְX.$?hxGu z-J_(2qsiB͎5ؓJg@N3SGrB&v6XoQ.i/Nh/R*vu [6oK ,{'Nz CX] ø#OEEӵ!ڹF9in{qJ>d C3fnMx[n&_ ETPu`( \C]u 6-J9PЂ"?`# i+mFb/^ť0Uc$zQTs-!B_wRfKa?jSO D?mQCBj((*Ϡ"=W1),䩫[]SD>J*S*dC!t*!"NO q)67B/jCR4%D8zN!ћGB[ҫDCg13CG\i FTWz? /\NqkB?)*?kG _EG{/32 @+/FRS`?셬l%]xCWU_mX7KcBb# CRIBOY#M&7-V*D0v㭐oGq!?=3 M[riG_U\R`e8!X7C !DI=K=  .eRn{Ktۚ=~<}Ԋ^6hJKCA-5? *-dN`i#I?O[(|}{@|aON1GҿC>}k"$-I;n)TQF‰/r!@-18BDHtG4m4("B&04PEQ<X;R8Nu" `} Zn)P UZLC{?*HGOl>( $ H>F niHD. Hp!XE(@ r3 \&Y,zP!hdR&@NI!O@W!?BR.<rC!2::x(.d;bMHLNS d"fIVB'y*@bL2!rUrT>CgS?,w Gba03z`3DN|RDGx+ ĨF<:DY AKKƥ1ޱja28ъ^TD"K]ʹ!a=KATܢ0(CDvjk#IqU!VԤe*B@z>-V3AMMPNYmu dxZNv8?%Y? d:VFȚkY/d$2g7k&mv2e(f. l` L4Զ6m|[+l  >{nwÄCة|n 0wBpJ !0@P2$| ~{҆ZjeJ]ml`4Vɼ)op.9c.s4=}O1NQ$|μiTk }~F'C{J:ԣ.uH k!5s}%^a]?;Ӯn{H!,+ -?mYWt}|kJVIH˒L7hܰpxء)0@iPQldKHWU%h1$8~C!f,4 ?)v=XXL>c,l,u,XXXbbk;J:Iƌ>LLثfӁꪵΉŤΕʹ׸ء:@@bJy @&>TT2 hRP S$hRBڔ IA!,-?,<-?,-3,596MZh+M+Y>M=Y*d)w=d+>=KLX&e.Sdu0UUbJkI}I|Uka|j|skjvc|sj7UpKzihy„NJ5‹FɒEʔUәRӟ]ŕs̨uקfצqܶoܲso|}Ɔʄڕ͖ق屹˵Ŀ܊ӪΞͯίʶͿؿ鿢ʹɨӭ۾Nj͖ӛ̌ΕәĨ̴ժ׷͡ب۵Hp *\ȰÇ#JHŋ3jȱǏ CIɓ(,˗0cʜI͛8s\IPϟ@ Jѣ!yDʴӧPJzS)XjʵךVKٳPâ]˶۷p+Kݻx˷߿A L|#^̸cKLrU3k9)ΠC}02ӨS6lYÞM6sͻ Nȓ+_μУKNسËOӗ~\ bWO_?{nLBo߂ 6F(!t1OdLv ZW!oϤ ZSO3PLnϊ-['XP@CntQ X?tR^\v`3n A*-= /Y&yfԣjh?+nt# $& L馜vxcvI,SsxO:T:jϩ*n2@; n`̤HO6A*f? .S@TAn.n֠gIg& =s 1P& k5F 7K`fnn:N&HO8osɠ+0âe4lG>{W?(q\ o;?|K6N`{(71g%N+rߨrvM3G,yuָ .4CµbWn^Ql4߸AAN:nKNGLj&,OE13/|NnPɳ%D=?7?W#w\~[Ro<7~ǿ,r0\/ `H0lI:AC,dd \ ,@ xd O =‚@A ?BH0Ĉq:XYrA7@?$EAk7U㢘;Qm@؝pY7袪6>*JM3F$L:qh( }dvc34!-O@ڡ  ,Dєl##Mv򓆼)>)C"^TP.v ja}z1UL 혉AlR)yj&ěRL6K5b"@ ?zS&kTB|!Mg#\?@enԟ|MS:g@ZP><,9==WRsŪ) e6"A1:~jl(Bs2B-?nDYx+h8 "C2QxctmX|*@4;)B!7fXZYTyHLaRLAYk+OQ,sDe &R\T(H}ibEHڄv XҮRAԴf >+:X"]D p!dӧ$øeo 3ckL\Ia%2PE<ā H`P@0QՃXhOH<_q\xI'vdcQh 0"2Vt*B9\C-nQ[hT?u##A>H87jU8jy{82ɀ; !5RD27ЈNF;ѐ'MJ[Ҿ4@nhRAkȃB V5x`h5up^ cmD8mLsEy"\f8.7sH}MnLR`G=|IO" rg1WmJ B58?ܩv2&-mˌR8i58bj/;H H>1mi^$DΙu\g>gTw\ ZkgCynAtѦ8`RyVubCJ%'M)ͷO2R܀)JsfWQ *#HH4TbUj^kNx9oG80!y̠xxǧoJZHe՞nc,(k»16`{cktϲ7.KNjPŸZ-}+ 3(?@Ԍ&> +ļzc5n~OG7`!bK1# 0>8 32`v``~%&afa*K-b1FE_gc8cч&X'gW.#^d2.؂kCEVPFr`84fPf fJflf'؄ag|~hXZ\؅^`b8dXfX6&CP CjajdjjkEg8[уmmdde30lhtlmmT S؉SQp$EMg{kH6pyF牴X''N\y݇$S]}j,N$o$Omv oja x@tK/bXyUˀ "euXg(f0 ,5ÈXew: xTrЏ&hzpUYU]UVQPApP6a[XqZRNM`4bzR6WUQy0a[|[`օgS*wLeV\LP0EqRgQեL}cF0P~Y& ~4W_tPvWcS9"ab T $r (U`C25vc7BԘ 1(ܐ &QI8})C]u 4(MI;Dhg/IkFLYY(X0aB? QX&W ٜ9YyY|ij CFjVkqXD♝x=ll8Fll)qIp}TwodJx%8k:%qtLWL(bćQ#a'Ow ;suaՍ8t**2$Z|}aWw8uwmWB8Bj5ZX◡xeXR"d7TZE jJ<>}UY˅lhL bʀi'fa_` b`zɗ~Z|M2FE~e;)Q *q6g!ę:ZzJsB' 4Nxmh@D2:lw 1l`pW2! vbPǪA-i v/ 5Ԡd pmu$p:P50PjՌϨrk P.`H4bpI-V'ݰ 'ss!MA*˱E;떎$ ; @,"W"SJ,W84LxBƀF#KO@ r7~e/ۉ puʰUHǮ&S6dP#O8Qihf_Yu Twt0P! ~)Tm AvN> ѷ vB'`0*R YgŸJ7f)E;R 6Z WLJ/B/) < pJj˃pmː +PɻK O-{Q q`Zv,eyk"{HG([Z3Ж |KUxl\|\igjvœ&B:`4YlAl| W3lm/fINvnV" )1Ąhsn,5O R1{0MIaX} 400ds WG)&ŎZgS?6@mK 2Kr|G xLVW%tf(yZ˵[/-9_S,Z̭A969o{{܊hЗƯ̅ϔ][ٕ_lZ{й`ZjYŜܧY GU Șkf!9%ڼNdL y+xibFfgŢLֹV =]}=0 @ kt?DB3Cԝ֪E'ѯ7cF汔GLFb4noԃ8Ӯg a-eo7p4 AGoMMI*vNhk@cevyCe @%x&KRG-ͤryM8eTWcO&[gh)K)/Z> |;Z8ʹtM7(UzQe .=28!|`-iIOow;`[rP%UEEUQ` ۇo2Sg&Y*[:(5i7y3(`CYՅa|~՛N9l =fIhy KRg'| L^[ވܢ,^mhq+@놛qK{=~t^GjTUIi}E[fc 7ݼ8 @ `sƗ;j~aFb"F Y-cK0*\E+9gp[>[eWm+*M}S\  2D - 7|g:^~芾茮hэu0 :ڑ.qF:ՙ.iiGe6ߠ@JZ;@Ut0\;8xB%Tw=hnHӽ``HF%۱ZTj PmA5&:<:z7A7yuw~\ҭ3%ELzbڽ `<%"o;l 'CZO˔krk IzDz-]vLg_c[6 U* [S?Jn#(| ˼I_5bUp|`@ i3\5r>9lЇ#EVA.]50MQ5B =ƭ0 K9OzAkڬqi >&Sv:EzΨ0P xa.+EٖnI xoÄaihEH <*d0iK1eΤYM9uOA%Zі p?L џp PC?v8,¯$"m@KX}Ylܬ[_&\ѓ0{eO uEgF0bKȒ50tчUfkرeM*eeӥEi8sHQ-<޳O^u/.pWC$Co/9|>I8/١7,\p@yQǞEǻ;ϲIU.?,,4 qFkFȅ %{,҈hH 1CIr9"1) n ކJsL2˜d !ja͟ ȡX)O3O@ sfTYUtQFuT ٨e xRL3tSN;SPCuTRK5TTSUuUVrb|'މU\suךNsiȱx5XdS-?uYh<9qc#ado `8XȍwGg] 8PǠ"(-_p`#]b{,xb>V)J*Ҋ+,Z8Bj2ns#{t餱@RRznq">#4 SR7 }$1'~bdn3/rcR7N>Ϊk~Zh谲!aV\s{ה|8o-xCMjb9 v 2``.rĖ9b7E(C!ʊ[""5JuQc$cxF4Qkdcݘ9VP"cqa N6yUfZݪ!V(9A7&RM'O.I;&I_KX C1g$eQ2 $CeLTHЎVdY͒[DYJ\& ?q ` [X.'5LiE>fh\:W.X!bͅ f.ݙc#P4,%#s1a '>7l xe YeSyg@9ϊSH =$lۤ6%i?@ yn4K-mTJXG]@l'Mi,Gzh"h6jT7|*_ dS* +N(Ӿ? B钶M\*,zجf_ݕrD甖+KU[2Y=u[WqvCTnӕB*bm,.mGL,[z>ek'bps(営mww]kp5QW" .,k^>gx mhrH Pe/  ' 8O>We0rR!,5d+_6 U" *I Y@JbbS X;6c3Q"Rd8>Hqd(GYSr|e,gY[r"9/ dLǚkUnd޻aIT2gOr:ygAd3)4?ӗ&¢iLpCYibj  `>dxT|sHE IOjH;Q=9O8͙<͐vTvD'@ʊ],HBqX[TQҨZZirfwmsiSu4]␸?,Lnf]j`JݽYf-,X6XI@Lת]5 ^kYLڳ oSz:yR;N(̝~{M[sJC[~'9K\:[hu6x~ @P |bCv2pj}$18~~<8!m%ËQc &G&F4lE+ağM_5C~ d?~@]"E(YG8Q~}_'cG5+wlə+YV!![k~g=$:OK@8TZ%@xCٗ~-4j&w"@'i]/)'m"sAuaY. 's 4J cfxs79(-6`/skꙈ*(J zBz3 e"6'!;j7~멅bꊢ88 r*xw4̿t0j;Yݑ8:a9+DZ+tBEߘ[ L_0@,ʷ͂-2-U $=y"IJJJJJ6a (3< 9 3|˽H>˝@~[^@&mL̦L,?!$B#DBYŠ~VbBq}6 Cz 5l9:ݔ QCͥXD,EDJDQ9 )@NĈVDN?[(E [O% XNYj ,Fkl:3αFeD Pz|F! j<¬:>pQ@Щ N|*% eՈNKLN$8N+Va;OEVL0Ѹr ' :teWHOiU5ЏCPtDuutP#:4zG|,2Q  Qa~DSQ؊яQQ҈%2RI}&%J)塣 /} +RhZRҢZZZZZ6= 9 [SSpK@|[ DvFuIHFIPLeM5G=O ۗLmRLTULٴU9M![\͙,T!4MkU VyM8bEj5fB|]RNׅ eVl:oUl t9W0ޗO.wEvސONNU^1E1P UPͫ8iXXFyЇ}_X }lQP- qU`@YЌk"`z# ڒ[a$7%`:Z,U(,)Rna#>b$Nb%^b&nb'6ӱu:-C)~b-S[`ۖpۢS,ֲ}(0%ĝTļL5DŽ[\@j;VM3~=՜IUXkkMΝ ]WL]5]$U 6 ۄCٵ7d fݳV@TDN& R%M^#=mD*^r^^|eEb_։WWW{^NbcdK27_=؄P fňmbYmN#`ňPEX ~ UYݫvV#Ha{=a &R%=-9f (-vZa-]h.Ni^ini~iNbՠbn -F   0c$dڿ0c֕4V5K5Xč1:f  &Vs5XspHtxzX\N|L$fT@~Td4H\E܌qd#6z҄lm2ֳDn%!݇¡zK.LSie7 Gd+FĀ/p8*.D` [VnW%mReÙN[@oE_q%YF+e\^!nˠ^`ne.dW _ׅ:]glJ -1Pߠo~uMoTff_:gq;c(7^jȂiP ?XUpTgg f`gȧ0<3B0J^g g#7`ȀNp&"m\-|s!h1Mhu( ֙6!F rT1i=ͫh>tʋXʙl-m%i!DtJ2[NyLuQuR/ui@C2* jƈu863v1@ju s `Oj]T6c7ˬV(^4nW8 .Nj&kFeTnvsw\e\ɾ&6g[ǎlazlͤ [݁Ox:W|11m%V4~m{}k)ˠmmMN6NMٮmHmnn^eE&IPYnmunݱy@Y]eۀ ϸo@frzG7Npp v)z{G|/GPMߘȨHqrfxn~} }hwɿ*F =./ɓ 2يN~3wɒQ ,}Efڏs At0tw WhZwhtM,h „ 2l!Ĉ'Rh"ƌ7r#Ȑ"G,i$ʔ* raKVʑbda~^'РBX埦-Kx4)¥M^aR&AZ+ذbǒ-[TAqR&p !Z ۾mH+E d/dݿ ˻</42%e): =$8睿|4 ܈% r pz>cȒ)x m7p v8R׳oO41^CWb{,k>Y t? ԟ=;,??(TW=PdS$v= X@Gz&iI ( f="(#*Wbӡ{M:$QB@2xH~@?| @_y?4O ?{$cMxUh .hC;4TZIj}he`&Ay矁ZxWRz*vKb2/B=5rHlS,^PV狟P+A?4j+JAs'*;/Jk Oԃ.,WRkn=K6"kO |iZdobu+=~_ՕJ/1<3D} uFFPi"p;tB1.#f?d3RSm#G @4ZUP T:6qӛ>[.% 9 x1~.8?,?$tL ?{s?PB1A<ƐYeu߉SLbq]$OdXB "(!qn+"% ()RV"-r^"(1$&D1EfR͐n$N sTHU7X Ir.nq]E22^Q cL2f5dg;)iRּ&6Gmp9yNH9tKf6c*d&eEnhGCS AHB!yHB*ьh4k03:G,Z6!lC8U=Gu%XIjK]”AUv:iZS8}v|“ƩF} Rh5>`*vѢ + 8VQ>)F-syV*Yq X",f\9S RGJ RQSnx?,qS‘n}D8/s1O LP,aK4Qle;S`/?KX:C X1# g%cb&l#`cd D$T S B|lCND.C!D V1{ X,S1&q"gPI;t3=~3-ASB14EhЎcKrG])ՎLaH_摮ўc!Q2H ^H"G—}ěe$CI $/EC5akSrީxl-X/v?~UG{݂s SΞ=.jx $@)،ИXI] aHCX!ė`ْ8Yٕ)YÖDa v aa{! ,-?,5-?,-6,681MZfx.N*d)w=cw,{>i/*L=PXL-lMkV:ub;VWOLQoKbhKb}WdfWk}bXS}KbhbQccckktjtaktttcctkt|zjxzx(';;JVVad*W)a(i's&v+>=KLLXX&c'b%i:Sdg#k#u"z7UTbJ|V|Uvl|H|sm7qFTkńlj5‹FɒEʔUәRĖs̨uקfئpܶoܲso|ƅ˄ڗΖك學˪׿ƵĿ܊ܿͿھɹܫΞ̮ʷ鿢ɹɨξӭNj͖ӕ̍ΕәĨ̴ժ׷͡٧۵8 *\ȰÇ#JHŅ^ȱǏ ST0cB(S\YH%MI&M'mSvѣ4#FP~@4jJHUЫUXɪ؜kBj 8E՟?Hxe 5-= #^\S1*C<ѯ˘3k̹ϠCMz3ҨS^ͺ5eG69ٖ:m#N]K.@?8T/+@Gq{x X?7 _Q@ο?itu?đ?8O?s=: = \N߈$vAef*b@fdE g\+㏖e1V qX% HL?CQ`I.I!\'dfE)AБ(YH3e?FfDfx%=yIV4#IL5!ppqZېyVZڞ)h6'f3(eБ:aZ*jb٧=0N[:%Lbő ,1Gx_;Dv -63*=ٌ`+ނ[컜YWATͳM2;WЬW$:@(_Om6ܤgYw0L,"'e(C"2c/ŐK:3DS7fj7}`Atĕ D=oEsɍ@{{C:UF6y5--4Jӏ2L&= ,>?uRJ1sYȅO=7 0 .@ yOxgmG 3 vڃ: c֓YyU@b>{G^0]8.{ qܳN;|Gx t[&>[ eViW 8: D'AzȆ'Ӎ.wHa/#Dp*XEHbA7t . aO@H6<|qPF&l" #4$) .z` H2e0"b9/`'Cƶ~ q[N7ɼI&ɳ\" Q\*gKEtumAK!u]>FIv?X8*SLl3'[h>њdWe[W $<שqo1XD;j\+jAz c@M<ξv u!=:𖷽@z,,lM!*)"`@PNlSħ4L`$xZST@GSEU6dPeX!)ɾuo}e&/Vub(kCJJ:N_AWvaז2%ibM3[5skr$FY{ilMpR=8;Z+Obg\}8yP\fW8 FÊyI>M|oCKR%H|LRԨNdlZBu_`U?8zhaA"!Bx!Ϧtm-uLed* j VvJ_r7&^?с0q : )^Jv,.jh|,gKVbOwejtRRG ?`c-kf_5ZsVnOڙxNdqPM%i'\P'4 x~$Z!D;&)XИ?Qu9.Q݋8߉`#Ȩ_;(+$@/[! X4>0xC2C&X H Jמ _Y]X'*{ t f</Vn'>52 Ud7 @۠A f0?Xkp" J:F4#F|wuq%q ZZe0 Y"! E6Ӏ227QG%@]qMA=7 |]fcn`w/@4i6?C(Dk[d6ZF`7B Bd0vPXᄮ\]S(W4 ^P9@Fp+=@xx,FDV^Cvh!E D,p_X Q_SFd07p% Z FP (Hz2KqSjt:E'S37yyT0"zGR{6HU1` {l{6mm6}rE?s8|u59З4 'd;D/pCp'~YXt8Kg*eX'WItg6?ut?tE@LMfufctTs7\NI/A]W[X'`W"DBF]IvxwpPywܐubYezix_xj؊؋ q0虤Y& bjL bSwoI z (3%@@*(ל)oU8jplɶ)p!8y|<݉lk6lv3y,#$&F6.0z c4}S}=G~n` *opr QiY'(cp A|Goo   q.T48!9AJ>Wq4 h @rsiJ6:|@49 A/g/Ts**GrAC_ZD*SgҗEzGWt:yr]ʟ:҉uZw2z)nrhՅ( E q8o9PAz,ju^oorGwChB&Z{'VQ2wZwto=ؚWتyx:j QqȴZ3k;@%cTkDQq*sk—kNkQ5UaG*k9Ŏ8IdebvI\(}c1Fз*m Z~t9Im֐C I%2א,z&=W(pcJe, hXfQYTJ#Zq'7Z{V1dVqX&m4WsOKIh[Q8XmbfjY4LW\@ zz[bɆcu)vl E{QvgC~v^x7 vY5̺wEy^xiR)x"5JI;[gRF! fůO3|٘[üFh Ѽ1%FIgmMVb8f;-+c qoQ4{,6kX`8Jd2Bws\+eAٴ~R+=$'Z7wHZֵm䵓t rA:f+Zh{affƶho[f& t;wstR;hy~#![ HzK]5T.iK?B24)CP[뺢ȭ glrN-T`ØjVݠX_^=+yukf֛l[xVW٘ɇzw%m+ɜH3/{1J357+sŌ-=}Kv  2Ȝms!L@ !ǝ$2}|OfĒ]TD&/=4Mid|  c ƾ>2i3p!60 p%0] @4 `ݪK'90= HBv?X' 0zJD4^ W@0!p@^q`A.e0`f{6/>5#?(Ύ";H?q)2_3˱{ =L? 3*/;QL;%,Occ^ & B|Np @BPR3OKpY@d}[θAc?xDЊ2ҏ=SOlzTߒW܀&eDQ8#t O77V/o"+}W:'O·ڐ07_9) 8/wmLuyk@ڬ ?Pg9%mD?K] 8}rǍS" Su)@]C4!E$YI)E645o\F㣐b!fI Gjnr)p;!_Q@N8$8VWnd- )6J)*ަlcܔv(aĉ/fcȑ%O\e̙5ogСxA4(u#XӀ Cj3a"vD3FRBB>Z }]HSO_8PGbs_& *Xu1aB2å>;&&\1-d/3%ぃ.Ñ %M$D z%a!~) vGC~`yt t 酧E6d Š1g,4z ʐzp'c($EM< =t,)_a<5 g 3R:ĝi0+I5P4a$%499nԫr&z>~ {%.r~j wD@Gڥ J/ϒpFuaԓI#b}XRSNT.pṕc+i}V(W8ܒ I#HvۑT$i_{R A|"+ ).)D%^@8ZI}O`j! o5$Y I$"袻(bBX^uYzPrri{Vk8A!U f9e8[oRNB&i/!w:[u:^OIiȼ%۟~2 <$|s;sC}tK7Mar Zu$'XY厐H3mVkxHEBF8o'z&,jn'j]nK$ղ0,=cqyƪ>h ,(\P ~ßi `E!m_"8-k/lHF*=B#J|bigW2pd$_*TYN@.P:gm4>Qb v7~0$nҠ%%*$ZmA7NK|R7p{XZS&/X)ÄFaW:; F69"1I6թODTtm/Û?,AH$lHp"D9 # ֏YJ& 8,f9 Pk4H0\G;(FJɰ?@{4 T[tLv cИWOBrQ SQ Җ36cbDV%չylR-?L[MtY#AXd'TLcS`z8m֝83&RȂ?PE>TBw볙hֲ^{Irj@bCsu#qQE=Tƃ4Z}.TldىF-pҲ B>L($ˆ o@0#P|&%Hƽ}-(\ W\L3~x3y:wMeo(#h%0 Y*ZCtO-!K.}Zݰ|bY̿k35}_"IIL" '\D UѤTm $CD$#Nؒ~ ?S揤XMA=?~$|Ë0 p #˕̘1#UћT1 ,@Y?a1+ 93ZK `aClsJ&h!Z;,[@AO<6H9@TPӘb BT6"ԇ{R;q   6mӗq=$Dv C93F1))f<-ڄn 0Li8 6&7@D+N0{ \K.8a88`8KGDIԸ㛫˹ :P ;CbŝsEX8K/(q{9x *  xi܋K/DCƒP;1q$H9GvlGw|Gx$+Ҹ"8ĂNJɊG¬i,nYb-almɔɏ<"?6)?+ !0 0˰ 0?,S/>JCIJM!3hXk@{1< " 2.*  r2鲒@K`I@}IA3;óܳZF{4 [1B$I+dLB\a+‚BQ#5B&LV۵YJ9쵓aD0|Bl6}4|7n6t$;m<7p; >NmC@4El"D-ZQăE #8Mܸd踗) LZԹE}]E9d;.Ob }R2uEWFFǓ@pQG`xQQQQPIٝ@(ɍA,I"5#&E" mŀϐ9 %S@xƝ *[S{2%8jH(-ĸ!(( u01Q'x J z}0yIiL!!TCCۊH !!}JC4O[UIK"H C$~)UqhӑOUa-iM#: &K産8)+,+:BB1r-t3at,*`nq$zuW$SC+KLMbʀgY[WxrהOPE!q%ݥ2_ZdPWI7>!jzTyJFw㕍=v@ 32ăp*/sY a{ʧ=(YkaY2dpH1*uBʆЀT **Jۭi q`}NX0}Ґ) P)0F i*xb M{hS %é%f3U4QЁuC+V `QQ^^^^^^ __-_=_M_]_m_}_________! ,ys-?,,,?-?,-5,884MZhv+M+Y>M=Y*d)|=c=Y+{,{>l++M+YL>LL=YY*YXL3lMlL)cL=cX>=KLXLXX&c'b%g:LXdk#k9k#w!y8RQhJkaxj|skjyf|s}j7UpHGTwńƉ5ʒ4ŒFɒE˓TәRęgőzͩvקfתrܶoܰpyƋՄ㬷̩ٿεĿ܊ܮؿ;ɹ۩ȬʯׯضչʸͿŖɷɨδ۾ȋ̗ӛ͌ΖӘƩ˴Өٸ͡ا۹H@"4ȰÇ#JHB3jw ^Lرɓ$r0cd̛8 qޟA#5s*Y׸z.:?g@|mr]{R,Xb7 OZx7(ܺw (V̘߯0lVE ⑍3?KկXJLҨNͺְ_J۸sͻ ȓ&<7Yƿּ:r֩zx5nݟ#ӫJ|^ Q4E Q)I ,  2-$ CWP S@Ɵ?z`J+ҙ@,1P@bTÁ/Н\"X2Ԇpgو<u m,55ccGcV@1yYSUTܳA=r@0_nkna"V c9WmEnuG$GyYL0٣jTM#@a飼1{A$X)n?`*(("Xc뢸k3WLjm!mX[Ϻ(cZ -=@=)bN9qk.P-13#+yX|D+0^#80&KS|r@O%&@ ˷yP8#mETpӜ̠ ~ Ŷ@z0_ !~a<HEU9DMP\B2 [nh򄕠 "C",9!?Pf2TaN0#O %d[,0 CxP8 X8J1coҝy AaCt* #2&>&2@O=J c /ɰfp206[_L08v @S \X+ (8:ꃁ2a@τ hy1]TCDms jK]BdMG!j $`5U?5$`HKu`H@xV2`5X7W\.5QeYm:ͯfX8҅ k-rHZEHYԹu KXAEPT]  "a?Z5~@[HE*PQ#YpX 5 q0-w ^Vg%)+h1]?BXc"FN;8"FHP .Oȓ!RpE+ zNpHT :P$tFdd|FU:# N1U:щ IEm q%էC:)J|yH ( bnP=2ie~$95FLjq(.zPx L7ͰałB WUebbG!c)#K5 \WJ)-YdK[ݰ"QBuQ>{[  P6KpFb JE`l]),W cL2mv-"'2AVVdxMaib̓ f5[ &7 M5 ?Uxm N0"?P5Htm]Ӊf0T`Lq´Em2@*EƭCS(kԟ3nEmdZo*+-*pfυGt+TŖ%@8Yvk(,#du P{PhC)V/Ur'=-͚t&5  v)AFX {g:r!Foop!tE TgDAYY5bԴk&Aȅq 'V WED<{Ars%[IY.NEuwv~xJathSr{.qUDa[Ɗ AvPbv2 iFo4Zh$G(]^3^h^Y@d}\\5yI-!gIHJAGz __p(4#Ã@ g(bdd{Ago'*DHQ{\Ma| aη ِ ! &-=Db5;)9J9GM=WLb?Q p5!d(BTuOd bYg@m F:@PbK"5H_jEMDZ!y :gPPW@+HD uEgYTBK,q Nu= bE)XkIxdS2w4iz$_ԀH!IXII$D TP 7˙yJTHE3r >P PKяDLecKXBEKrD5:$M@M62f9MLPXMęQ$NWNN(N6&z(0Ob#)P.0=0Pзb&f0b5. +!~1eQeHV!~)e؀c5c@QRTp~O~QPehkfoAgQeR`1!zgJhEuj 55~S UA~aH %CDz8k.3 EsiiQFj?dUfk}Vn@* Bzn6n4Dl,WܱDX%I60ZsيCQn Po4$e5 YnXb!'3: TCuІGCH{؇=Zr1g ' jn*Ap=` Urs>v8tE[ U'W]y*IuB3$FƚXE^eawA$h,jBu]E7xg@5x(0 D2T0 [gxAxy܈Ig8IYb$yG{HX$I MZTY WcK0裸TbX{[Q{{[Ga[{ۻ;[{țʻۼ;[{؛ڻ۽;[{蛾껾۾;[{ۿ<\| <\| "<$\&|(*,.02<4\6|8:<>@B,+>+>,,>>+MZj{+M*d)zMK~=LL*K~=Ku=XfMYY>L>+L>>cl}l,l>y,L>LlMeX+>>=KLLXb%k:Xk#u"t8|7}8WW|V|Ukj|H|s{jisGFTƉ5ÌFʒE^ʑSΙRΝ]әRŞqϥpاfܰpo{Ɔچ⪴ϯӿ΀ܿͿګܯ׺ʵĴĿ͹ξŇŎʇʍ˗ӕ̍ΕӗĨέ׾͡ڨۺH1*LxÇ#JHQ…3jȸ</*HIG )2ɗ0c>lR͛8Sf mtRGlkͧ1%r>.CWhYriKh_gU`|2˂X>t/l6$2>%G _)n ."# kh[< G6Q.%I{^ܧp0%U3N`k,.L;$˟OϿǎ6ć8.\LR h8JUUI%(qCrӹ@6$7\@,xAPI?] e@8~|dAsTSOR8"@7ÅYqKƉ_O)Sv{Eg&uGg- &>pws?LQpMa\iF$9]@38̧!Pm*Ph| }1M4de&8,ȧIL вZl?ٍ;@7C$;e ?bD1sRJ‡4ChI(CRA,JRPD8DBs=h( ]ԱJ=ƌP0.LAЉ] "!4AoR @ 2Ч|D#=c 5҈hl6-%B/ +t2 @]P0q˶yLu&")Ւ 0a%-kI?J1!A7@jcj P |s )p hRjW_͆o%KjE`2=A_l}CJ?rY!?[ZAr'AJQ4>`bpBZxA}@n`YhKDJP)Ď* mX!R ep" LM?``({ ?f"xi؂?ͯxC,1XʈxP-qK] ]('),P+@P10M r digq6 a',P58H Ҁ|& 0?)#)<Ս^ @ƆL41F 3vC9$+gC> x]Gb>ne 94}-iDF#TH6 ̸C`CQИ$p|jbAF efLh;aI t=mpJFV$sx *W E2R3 wykR:iPf,v1$_Jh9($*À`5(bZ\p``qa*ݦJժZXͪVծz` XJֲhMZֶp\J׺xͫ^׾ `KMb:d'KZͬf7z hGKҚMjWֺl!Z,h0-?,?-?>,,+?>>+MZf~+Y)v=mMK~+LY*K~MYL>cl}l,w,}>L>LXL=lMkX<}b;XXXLK}LXbXXbXbblLXbXKuLKuKbbbWkkW```kbkkkttbb(<;;JVV`iw*W*W)a)a(j(j;{zbjbj&:$999|{ad{IHU__hhrqy>>+>>LLXb%LXbk9k#|7}8|V|U|a|j|H|s{HGFThzŌ5ʌ5ŌFʒE^ř^ʑSʙSΜ]әRϥpإfܫfܶxox݁⪴ϵĿܣܮؿͿڹۣӯʵؿĴĿŇŎʍ̕ӕӛˍĨέ׻͡ӡӨاܬ߽H](\Ç#JH1!Å3jD\/bI!0*E&c̘gH=ulҸ&GԿ~w5 'ÈD6 Rxc_SgUʟ,Jմn< Z]t[pƾkWy]j#䈽"V;p!R3703̀5ڟO%f.#]ş3go V%#009!p17Iad =SSw nJ{s8Vߟ><^߁Ep TB IHYiaDu($h(,0:85NIcV;S$O:6N]Y:8Ȥ"H9'B*(@2 X4%,"lє20@Q_̠Oy'b@IFȣA;eO=xq="T?clg;6|֕u"B*O:*@UꩦXHt(pJ ,!`@ #lS@ 4ʮ:@?PI@WQQú `@T <"%tRZ:QA6`/@PZr[+G!6f(1/w[m9T;$?,Q7$ɺMH~Mʺr|0 L}! dN-3WTiDj> CI""&:PH|X̢.z` H2hL6n1 !,"```ڌoڋ޼H扦  L ĢL*G JԪ5 \ܮ ߲N 6P;(8(Gxg(YiyՔɴ :JZj @y: +:k{ ,N^n~/?O_oY!,,>!2.24,-9//75Nm3Q1u,Z3y/<$8(KTe*V*a(i's&v;s;{q#u+~V5l;H)W2RtJybla{Jz9&R%tw!o%x$z&t|:1QRnmJ]Txrs~s;=KJXKWPR1qe.Sgs-XUPguTvhuZ|su}!_j&7 moFTp%!ŎɊ3ҭݠ8ȒOĘn֫mUxxƄ˂ٗΕׅ岹ϵĿ܎ܿͿҾɹܩͭ˵່ʹҾɨ͹ӭƋ̗ӄˌΕԋ՗ŧ̴ժ׶͡ק۶Hs(\Ç#JHŋ3jȱǏ CIɓ(G2d˗0cʜI͛8srdHQ+ ,ND>Q$jdr⚙4ԌLujʵׯ`nr<6' ]-FET?9|4b+^̸'*e)S"QQi.Zo̺҄װcbj!,3P(.<=ǼO^ Ϡ !qX?cy񼡘bwI ЌiS |wq5?xv}lF(t)Hp(d?@/帅pܲ6?wЉ)@0g?p0(K9Fܒ(=SWJ.O8(-4@Xp)gp) Bi|Gv> ?wp>n(pL= |;c#*i Vzs+rug!P#)z s8( S]:}X[m.w_@ҧ(auA-,{tHYpAgjD૩?@v:r.aeOtq1L%1n pJP$e)OJVRe*Q)Wƒe+eYK^沗ܤ0IS\ ȇ2 d.S|&4hJӚդ&39MiR&6)Np4'1Nt!J⹒yʓ g=}擟 g?-(BzOyEH%/YK5CZhFA&-)JWQv)DP;!;HfӞ"`=O*TuDEQS3PjS*է&թQjUJUzuJֲhMZֶp\J׺xͫ^J,{ `âiM,N kd_bL5%Βz#`gGKZ찥Mj 4Ԯ,lgKLIci f^oKMr:ЍtKvP $R]D H"$#yKR!U#KCUB /Av"kb="eD^=@ &8]  7X*pd`Ley5qHd̑Մpihn!8H?ˉC])ƕ1'A ($ f` wxc2g0Y|D30APu#jȇ]j17G=7L6Rss9҉'r u xc ZtO:6"+Q32e% x 2 MpuD"Ye3yI[rԡ,AIJw:gX6]x[ƺz.N7"94l&)i4 +R$;yWoc?Zȍ$| kQb"ю]87a٘sTRb9첫WJU;P x ~#r]%*zTu(V;ݻE)KRhE.}V;vq .BnS^(cm>JSUI2; ."3ؾR]G27oUg[F/Ukan=gs ν^zr`׋ZDOEΥnv?`E.sIDG~*8GW.}8oq{13 Jb38 (Qi{ Iјv%rp0 7#E0A95BwC/Ch9*] 0s,YAQY)I $B!A!YYA9ٞ9YyuU AG $<1 t 3 ԠZ00:J,*p'vo\7Db"z*P `2&46!5z:<ڣ>@B:DZFz$=S_!:_^RgWYT*E IYj]e _1JlNzs^xZsZd 50*1J :^9p9AB_aAa=i66XA#&q "a.Ԫ az~r:jŚ+j}?"Ԡ#5$x`&Z{ +?cv!ci 4:3ScJc#(%؇ Af*RczЯ@6˘ΚKzK?ֱp *xP165oa9:aJ!Vh@j kAz#ݲiVj G07 _jrlφwh Y"RiVfCEk|Pf  ~P –%h ض ySfglfirKS[RW =+x!Q`{kkk6^[+gpYe]ea6fkfo7zŠ B>3 ! #P S-CRA!/ ";qp%hB% {+l6q%"0s$sH/na#g@' ry~hLzz~Bv "cbwxxfCu2${p /ʑg+,Ϸ+;0\wx~+!4+2Ҽ6l\:5(vw:z'zzw)ϖW{llew|tItM'vO*,uZrFO` p ߀%5cL(̡_`3a6a2~RgQ*[}Vrښ;+&X] b ]("8C֞Aӌi< SZ. Yw0oW$ؒmc;d0Ց= eBIҎH3>:` ,qc߸\RӐ֐$:x3=w o/T"O:y9lYc;/*/l\X?H_U9_>8 S0h) )Yo(qO=0>n pљ!S~[ia1:(3 i.ln>I@cO?F>a Da%2/gf2?+$b~D)Y?Ao 32޿+Oߵ s/ #5jcO~@#A,`XI)U$ nj5`Y1mvaC''5pA ~d`P4̏ ~lJN5|z+ʴk9Xj֭]{4Q^vZI0OfaV!t1R-+ɸ#ݎw=鎞S rDX0@ S 8#ms8-F:*i±E8*WHHI9;Z˘hLB2RNQd )'ΝG"h皕s b ZE#=R=R&?+$⹦EsQB`TEiSJC4FCPB E74YhĔ8RaA?/ KSTRX"P S} ![2%H^x뽗 Ă$`֓NF<@wp*``n XHŇ;-7sEmyg.8% !oPapǟ|5q'y5᳖y(F(& >>yn.^x!yJ6\Y򱹣VaT¸ ~VGO"M 7!1`΍8|! |_QqmHhF vj2 x SQMpJ}[2n}{ٽ|G5<] Hצ NV C_U-!oi WG[ mp5 H14/q"ʠN Nv# coCpz 0i"$ Ws_VXP寃ޣ~QW3P (-A[1I"J]?Q;Am"X0,dXW1ӱ,R0G> 5pTq d!j % %0"f)uWx U:GIdDpDJNxR9C" !a +c%.uŎ1ҜɯCQ`G 6a[,+>ZR9 /|%93" URsFSC(Fx t#"Q[T$ܢah'Leȏs#I=$S @|9B AiHX< !:N_X ` Tp u<FQ;%LS>Th)"SlBA~(1ݣbv*<$XV 'b4N L*;Y,X?& p)T9iXZU&7YuJZewwOD8voosE$OBَX6}+ks J|&p EPt:AyY-lUìe%Ӏ׈D&Z%ՎBM"c2|XKϾݍ ڦ7 WNҤGD0kː4݉h%! X:(J9 Bh冋vI;9\1Wj$! iC`G 36~1}L|"7MIH&>-pG9p8}܈n&>GzC,^s:0F@Jc웴5y lpr$wW!D͓@GvVV)wЇ{Ɨ^wP{X_ǜ}m{^}}{_HN?( @$"|DL*"ҋb ݈FQ?!I&Qh%')J"' [E&RDc"~ Y5 @#c =SI d)CїJGY%QYKɔMq J@XaUiWiS$Z\]db)-тc\A:2>8SШ2)@sAuaw{A~'Ԕ($Y5rYɘ!X!AQ%@BAC:2S|ꡭ4'қyh(C k1H%ɔaљ۰$1Ba.Z< C^ԙi6c#7- P۠:![N!zB&:!oL $Z }:t+b"p"{)+",Ңj"z^H !IA\bJ3EWX[ʥ]_ abƑSHIgh&&l)jopb%r=S䈏+vʢwy'<S)04>!BXlIq)*"<*Z"IS*ҡ*J+뛵*z+*!ʢ}4,L?T$rt-8\Lә-A?V!.Ib._3“VZ0`$F/3/O@/@[/LRD,NA=T1|BY3QjoY%0IS1sϫ#O ˊ! #1B%`Y2h2z+$)2ߺ22,)q~ٴN3ԩ~{LJI3MKôܑ0N4PH@7SClIV˔WY}595Z^5Z6b3QJ`fۗgik˶moÇpr9Qu3P'@1~a; };㕒9B94cK9RzS:95ͪ9:":49E:c:;Y|REſC"SFu ۉ; p<ɋz% ]Iɭ˝%ÝhE4B ┊3,Y! 7G3cmX_MU<_sM30_:rMUq#dέ_F fM5-`^WQ-0Gjs3p$P̈)؁ K2ERI@aǴ;SHJJ}'K$% >R:#C@J V;~U ԣG8ȓj5ݓur-5ʇ8b"/ʉ*|P Sd*x䭑DK9w(r"D."A:cU%0}M9+%d9,{;l2ҬeQXiR:gfSת2Ձ/w[2+BNf$羕Afa>UZNiN#;6NLY Qx\IC X ;F6(3˻<+ ;NSV=oooooXE0>pB6ስ @Epi#ہW@SpۃH\IRjppCP\Hq<K73 uqqׂ /УW(#orKܘ#ur+,(8Ca-r2V52os"s7s:s;ss?@V}F?XǧFv~ _c,b2Ezc?e_TMwvNP*bTFb1^b~b'`-w ?wtO)W>X&>dN.bE^fRvddxw[xO -v>iB&,b~PbHf?V(of9]\ucb懻hF$ny[-r.W|C&"[ UQj!燰jzhj6Y=E{'&O8சFƌldKm̞-1{'ը ËHnnŸXZo||}}to}xtX"Vv}G N,8گ}T#7~xt]{ro~_~or3E p|W8m5o6t`C`E,@ +Xl0@9lph;Ī$FX,irH%1j<$G Qv"˓h}'РB-j(ҤJ2m4S< p<%?=@_Jy"d?r,7wiݻ׶*W2o,(ߓ ]{1Ȓ'SlOLr SJ Qqi@wv` ?kBvH[oێ~Tc.n8ʗ+a)r?>Y^Ouna|4S`wT#?; |9z T:]@4 3@}'{IGsC0sǁgt%O 7,2#s=#A !D#HcI ?0]k(v =4K9l"&¢{ a-Y]O=iϙie}?s0(K9bVW]pgoD&AO\D)bVj-!ltaᐭ*Wt@UaR]O nyt9{9CUpNE ˚?(BA*pL=S|#C-r&@2⣮ӬME %:0K @)Z$E<ˏ<4(ʁe,{uZ|-?7,̲Z֬3N݇Ȍ2;LU8 O5]{j sC<]w:0k1ʔ7g?tR'=dE!H!.D0h!ZьP~Dozg)@d,XEY‘2mJ*^`z"?BVO)3 ZA+r@Il.L~0i +8[ HS% ;sE +DX ,/"#΂2E э`NX&84pUhǶ `Y'"xP k;nreaT` ǁtѶ[[|%,c)$< ՐQ(/i_ބL@ LP L{95w)LYr&8p<':r񤳝|'<)yҳ'>}'*T=(BϨL iB#*щS31&.JэrYttjH=)JSڵ_ Jc*ә Liӝ2a)==*RZuQJ}*TZ *P*a  @^*R'?`=+ZSԫdt&M+\*׹ҵv+^׽~+`+=,,ZԲFuNzJTZ!4MEߊR*b>ڞT, z}ZFEY,ͨhE,b< ESd-NUJ(-j1iU Y;XEXC%⎻Yb1bؑOwQ/t%}#зDǃ.A`?nKuBXÕ0IՆh\c`ɨ| YSF!Ԩ"plBpUR!b1/ +@5^zUyGY~s< [. X=~3-AІ>4( Yp"v%˔<%Fcbbdѫ쑚W)5Jb=Zi&9,77ѵcmJǥm%v>< aP<lk{ mho{p@?dE,P.DCvav]Y5e(Di$KwU'9OEE;)=Ug]ZS~8 C%ʺrtŗ{{aBkB\P-<Sk2A{w^Ep<3ϲU7sK]r.[/dI-7lذ~kB#Z,uIu,`xf>8ekl-`iݽ6좩)۵uE5m;~ ܒcPh@p'B5^#6f6n#7v7~#88#99#::#;;#+")c.c("#-.#%F3#-J#P#@A$B&B.$C6C>$DFDN$EVE^$FfFn$G,Ar&L^*fڎ%jZw鄾驚E(p'4@êh֪]M,q(Y*6JE?j*V2槞e^+Y6g*il@5tT?y*kY*T4%Nr.,嶖6lW1ktŸ+",ץk$Dtvŭdke ,?.@s6e:z,YFX-Ò캜f,ƦjWRLk͊$~F Ll ,4AtFCNjFl,-F6CX RVD"2B@+׵=,C7|@ުgy\DD `**׺lkt'rb,Ʈ꡸nlNn,dWovu,)1N& w)>HW<j zgg|mxDv%*' /4ky@v,e:-f_'Ziǯ?p*B0W_Jb0wbf * 0 0_z% pA45% /-԰D@/ċAhDF 0 0DQX@HA$ +aQx@]WxwʋȞM;QZIyB\Wﱵ LeiWhD"m-ES $#]$@ҸRxG@WP ͉T-#E 'rIH 02Qh,7@tiddsQ>A(/]jtH3KPCڴfHYmG|Ȋ~i37?A̗1 I'vY16ڌ0 papqT4C2CՠK; XL\[(Pǐ4Px@g\Ŝ@$Md|?wXa(F ֘s] I4Jz mM/?вI*'0܃LJQWR-xYGU5Y݀ɘ,^DY?tM3P,'0Ā.C,u33]GwCmwTfda[v9WW/^IڸV ʤviOi0`kG̓:>͹_I{3A!=c{yNPpְFgxlA@pB AN3qsGB*@$1vrW^_ ݅ *Q D骂1C+8u?@+yZLEv h,!20-4,-:0+76Mn2Q2u,Z3y0=PKJ!Y"h#8S;h1u#BtK~1PW:Vi?aMKIXUP5W<*jiui+i;y)y=l4*L4MD"tWW UK7XnGz"jQjW8np {b;NNMLQoUekbXO}KbhfTggg9:#><8(LRe*V)a(i's&t;s;{r&yY3H)Z2PtKybja{9&R%tw!o%x$z&t|:1StoIHHUUW]V{sm~q;=KIXKWPX&qd+Sks.XStQuhwE|sv}#&7 moFTn%!ŏȉ6ҭȑOÙpիoWrvƃ˂ٗΖׅ岺̵Ŀ܎ܿͿҾɹܩ̭ʶ່˹ɨӭƋ͗ӄ̌Δ؇ݏՙħ̴֫׵͡ק۵H*\ȰÇ#JHŋ3j1DP4B8=$icA%=K1L#Ki0 L\oB=$jt_.YߜS^= S`L %PJTNZXH9b ݭ Kp(:|2ɼ|?y(غ@+_'!Kc _EhDe ؈mE ׸/Zb Wn޾eӶ;td YiԪ.,4RH]B8_sh\a7Z>}SBc9AL+ċeSN=@\AV<az@ 2g@ve@%J&`?ZiF7,4C@2@S; ?4=u8 p%bF@fHQNY%qEPw_%e4v~a]N6?B >:oWz@Ԑ (A$ zPpodBO[?!+mn @E=kYA(jAJ=k$Cb2PŎ)eN ,nPLx WrPk,1)l义;Zr@ Y?ڜ@\*`K|А=BS<_LK DɃ| k86]VXk>la.OFeMp ٶ*?:/-{,;WD!*PyM$(F " FYmo#MJWҖ0LgB8AC6P8؈Mf%<1*R !$#.#YiE-p5#O\XZФ !lI"$P!H.2׍"zH `J<љp Hf5݂tA7 n〶4@D,NRאboPNmncnLіi}(BV%gh)ZQvTxhj.\B:\!{XCޕQyӻޮۘ.b<DdeY&"zNbdC /L'PI[jpy&38JUPb/l@ ~7rRW&AL&^#C^&mʓb 22~*l@*qGMyWT/͙=H,DҖT#/Ԁ̢zpDc_= !&.vmb D`o-E`  EZՁyá<\! Yb:ʥgԜ 4aDP]CyUSE26K-C6Y@FH'vҠ,,q!0$`82𡊸]@ WT-C[04$n6N7 lsq=PP_|mO8UdhXGֶh~<prx)_Ϊa7f&nšuW ?1P[:q>9a&VT`֥ AR=Qz 2x~!_jD{'O[`y%z j,{u >ؕ_@8i?bלּZLb)@@XΏO[~BZ/t@bW%ah?(I85'*|gidDj8n6kp,M()q|W@X20̕k@-GpfuAk )6,2-70,-1!bl20un314ia(x~ Ap{bo404E ݠ60w!qr_cSimCs"snc388"5Tc5`"pd8V -oA# 8-l'tcSvA/0M#<yaȓ@BW`An M7@ VK@"M?/zĂaE\[aH[5pp ) p g}[qAxU0 w@ ѕ"V`X "T_`A*f a" <a/My(&.'rtmXc=sgUxŀ~0d‡oB,E2 Zbgfe~WIr! `r I!1l% +V3!/g_xA(jfpȊ8k1g-x-Bf%M2ԖA!8Fn[=tdX&HT84\sjSȶ !#rk4H"3pCK(`Rޔ_7wor1hw2Bc$ AXs8 ;M/ @2I q~7*?>Y#}3pT *`jR:7@'Gzg` S";TUy a:`Jh: /&!y`F!&פK;-+OuNk*Щ] C2 p1y!1p7w4 Y |Ԙ!egႇΡm!4@9` ^pNQF Qc IlӋ59q^qGQ 'e-p&̐b[P`ɝ%b{؇[q.Ȟm4alhP  ߰R0>9;8{WğHsu.jKB35P- fR{v38jm;j3 j, 4 SHid{r`);FnON5:߆m/B3"WLK0 T+7$.B0p%ZMUJ4) r׶P3 4@#4{4N{ 4a uF 2͂bI)v1v8:9y {2s3r%LBc r[P ѧ=;,, Q¯G (.0<@@Ga!3@68=.q|zк@YaP@J4 I +bXaVrP?f\kpr|+^Ir/J4K32^~7b؍n;姾! |:?f+QNbuLWAt>#ӾN-X\άZь֌αE}ľ鸃+^"]`Ж!! ^ fBNN{$KM'497]=u.N eC'$t* -z&+c=ܟ¶jޯX~s qع]ևv֣Ԗ)=A!4{2Vf nm/K%yA;pvҋ[4pwޑ-Vrmr]!t2).>;Ψ-n's."J*S3S1w<h?F>6`XAO+=>>tŮ9n;`, ]ugQNDm?K% R%=(?_oS8 N Xn؁BFA*g) PF! vR"E)EZĨqŌ*!"5A tRȿ#~@#rɿMo1UuƧQkYʩU:Q5;lp)Q xH=M; _5kƌ!TJ3a`˨)Ҥ?\^quo֡|#`wԆ\<_4 p ν Q(6y[QE@Ʌ@$Q!^~`A+x~)C{dQG:֠0w)᧞4B jAI ixQ 0C !ݒ/4EQxzg+CE!%26C)p۪ |L Ey3N@4"oE~`M+r#z!Q)x4%AO2A63BĀ:'0PUGYk飠>SURu/W"EH!ՍV`FMۭKSddVG\^Hp "7Z^OW5*3s$^"M鳇ރjD6V|PT +U3uŏy5hvzp  F]uA*ŐAb;/? :-'jFT K~9%"Y8Tl)Odގ{(3mbVv"Цd ]R;l]mkɝHEq "$t+ZfC_U1(pfi5ֹQny۽=*hi(M([aEPn< G_җ6P$` x@&P d`@FP`X@`=H@ wMxE. QB3A>P;4.9PhB#F8&0:AGCLP*!/!P ]$pQcE,G/"qHE1JA)2!V\ЊFP@&h?/VqvC4}Mj*A-QsJډ(P ΋S?Tt&ZJH|_J4PuR{k_WVI"rF Iz% !)!dCz_XVB1^@]~a(6o3(Ш,B`)KZ2=I-xK`nx9PgUI (FF9zd" YeP6߹eڭzSY\3 Y^F8obUӟ3XiNJĢdW'}W{^W|{_'~|'_g~|G_ӧ!Awaza`Э={.~~8D_/j2Lq?63Xy^P H{@?7>l@ $>@ @@ TubP`A> @ACAh~<0Aۄ"3qeз {H3P/?8LCSB<4 =6`) (=>A@h.=|`2, xQCH kXR.!\:DH'\B=4EC4hB6x{0E䑇@BD_,:@MTiPO Hp@)CT@P7Y ZE0!^Et`R)ш: 8`iT}@XpEf\E^p\Dottlds{xǀH HhB IKH\\stHtdVW(b,7wCkr؁AJR I`؄ы؜Mdۼܤ̓p?˻<HI(bX<```(Jj;{%9sIII_iԄ>>LL6FƏ۸c@p(,F"TGgZU*$X@ExN' i"( &rT(# (a((PB LJhaD "NXA!{,-? +,;-?#6,77MZg-M2s,M+=MIU j n$%N)s z K~5RX6SlMYQ>juh,l>v,z>L>Ll=XXL;lMcL*bX<}X(uX>=KXLXL(b%k:Sdx1WWWbzTkata|skjt`|sU]_FTpƉ5FʒEɓUӟ]Öv̥q֧fؤpܶx}ƂΆېԗΗك學˩ؿĵĿ܊ܿͿӾɹܫΞŧĩζӯڹӵɵͿ່鿢ʹҾɨɹӭҹNj͕ӕˍΔӛħʹժ׷͡ا۴H7BȰa 6$ҮPCP9X!Ǐ CIɓ(S\ɲ˗0cʜISV (ކ7s2Lbv@ӧPJJիXT[ WOA^1زZʝKݻx2ߟ^D_gt T?C`o߿>xqT1ȓ7C?{uh`Z/DXJ{P4iy+_μQa9縨׭Ѓ?qdO\9˾npBNPy_7gS@^*5Íx!tVhfXtyD?*Oт!X)IX4P?rOPp5#A᠉ \v]XCf4R*B"K Tcyf覑q oE*Bp%niq%F*餔B 5g?nDKY*.fha&kiʩ#*L9P >9С)VYWk͙b?tPLJf,eF;-Ac٩E@ P?4%P4/wi%&--q؇(S?'KE%É%&8\Pl?{5 ~\ p7_? {rDm5 ! nٔ0?.SM?OSWͧGf"Xn(pOK"'0PnxI+I'8`9C1p砇._9騧F.n/|K e@@pBmFY$|wQ;!ItTu2#QP&~/6 G`9#9v!Mhk R Ю0Ao" BYc,(lhc51aCP0D8'ט#Nǁ4pI;3Ͱ 2t c %jilt#CÞ 'ab y!EգN8 D:HBkёP*]ixMULgP*u$4!Ḁ̏.cA‡ 2|#DxZiDHYa7d6U*G6yhJHLd2Zvvޅ #cVDsMu ꤇R((|B*DUT֙юj%4!Ԯw05m ZLkr(?ֵ7%nu``åGT`BƜf2%1F`sz0X5Te` "* K#hU+[c͏ba]Rզ+i:&@zlnlCڨDu jRSPe7(leA p7B})4^[4"`P~1s@B8`rq;uDqtKZͮvz x{] HG)2xe Z6M.)x fp oX+r%X7 V#^xiOfS$>x?dx6(v(E*WdR@w #c o mFCfl;yDG$QZGtaIn$(YY %,e=/9bړ 3\0Xɾp5}q6 zݔDZO *jI'IClЉ.!^R6j0Jn aNy V *ݕQZwOT֗#f3@l`a @lhYӺֶg ~Mn۩1&-#if.,;4\Xv{v kCﺕmo?ܯ ` "$YnA[# GN(OWܼAz?^8]| 2ߐz%=ϹG_T*G4`!|b8&) gx<0֩3 z 8Sc.yD1iygB#$3d0m)Dʎl3$vfvE`AfoV>ͯ4ś~9r|Y;ρs,gM{Sυ2{pivq!TQ@kXYP I:AwPq rTtc)ۅukهj8v_W|qD3GDA/0.C'u-\Am}`fGb:$&zia\j]ydwMvUqЈ8G2FQFG"uw"0 0'ۇdn*M:ՙGHXVyy#hIq KL܀8Pš59 t1v'!Y7;kFYz*] z{gd'kQ B1(q`Nq7HBo C@V꺮Ŝti8Xwb+Ppq$ip7"!!GQ('+;}bٝ 9UI.Ex 2052"eўNPk퇠4[g@ɟѳ@2&2V#pL _[;Sbڀ {zK/}+{mY{[ uIB[8m['B`|Wx1^ %N`{Zj+[2[:xq+d]V9υ/{/ï{0 U 4Z8W:3'\:I0܃;[EY"={pO:KڤCN$qK^YV(pѭ&T^RaKofZhzHĦ tjx*j \w`Gy |"\b/U4]!}TsOwfcj/c(ɷר&| k;[|;̓x\o˶f[Z̅/̮S2#: 帳y+,B[yk8e, )~ (@:|c.L0f{2 XkmPEA ͵teWUV {_n8n :#]4ҚӜ0 2M0¸6B+=/7A=>5c7 3ꖳ19+TeU]@8XW=P3զ~]aSH~ȞʾUu1ע~+T=-= @ڙ]uWg!l7͖ &ڰ4 bGۓM|ݙ:=E m/ām-L";H4 nhor#Ϫ=ƞqڪF5onHSj ~'ɪakN@~qb%T_4#N=㶌ͻO̠lb)%i$ }<׍s4B7|䊐<#X.$ "%S_+_$/C/YD8`[9hp.lI~Џ)uty>n0![ҎӲҘӯ;ә̜.uһBsO4ޢԭ^K9NY 2 pAa Nx``&MbŌUdK1eΤYM9uOA>/PE";|NZUYn+N#|v,C[qΥ[]y_&\aĉ/fcx7;9'pߖ@WȡE&?FX"tꊫ[LQ=Po yh5;jWy<+uٵ$r?x֤?{g/D3 \}^ߛm`ʘ.%<#A@;v xmFp  )C36Z>  @m ^:G^ϐrHşc< `spPVgE)GV'<Ծq@w F#TI>?'ыr)8܄S id594TTJ:r'ᢢ[U*4Udp2_yhGT1~`m 0`nppuV[mXg=(҃vvvq]`?M0q! G^'ٵJ Nvat'go;gm;o #w{ا^>HoDt"_|~ ~,t2-hdM0> WOnң.?r&{0,u{_WMSxw4Pk:بm @*N؆] !-|!*{0tԧadFF#w|0aL!J w, 64P~ vKYA+ƥnkdcd Qd#)A2Dd<Ď{CB2d%w`)N ,IP2&f )eRde+]JXRe-myK\2jrK`%-XyLds9}Lf3 G<%*ys>A;Ai?TEgS)TԤ'=qT[#aSΤGz^i%(buJVZG⭄QTb֤9 bX8фe̤ !)G]R jMZZ.=Z&5Usx̕)?A Uԏ;HRzUnջX "Թ%L}6`geUsJ Oš х]'B,OQF֐e,N G 2&#3%;6Vlg=YІV%miM{ZԦV.KxFAhҗƘfVΌ懨ykn]*7 ΄I?zf7<<%sPgI&31SyUYU MC6J(/W(@0!>=i1bhi -,JF- [/|Uի 67DR=U=R XǕܪwԷu|D+Y>} 6Fp~)>xEЭ\iFi*9>/8VH#$-<rմ5EFȒUV (Яe̓]PY6ú[{ j@ @ @@@ A[ A;;-+㪴ij Xȓ+<.; ;6?)=x $e˽ž=|AsktSڻ#yKC5,9z6;<,9퓱A8>s*۱RC7 xDӠcĆ?ü3: @2;04*T, T3$ 4],Fcӱ@j; :%ʁz.<`QTF@BGH}(l.XU"!>A<@u6H@R7]2#9]LJ͕~;{XHp"K ԅ{!&k2+|ȇWP7̚ƉW\ 6=r]I SԔw5X+QxMC6<x#j}Wd]yBיכbНu 39<373يY{ףHX10U1Et}W,=E{yQQZ=G>ڶT8 ;{̧'驆-Sl|ۃ[;y zS>%ŵS: !۰ۺe dY}ZPzau-[ɥ%(]SٓD+0xބ8q/]ބyJ4 7yx4T1 +=Jޤߕ q׌eߊp\M _]mZ8Eu0^\^ep`^K9,ߢQ =  饹Z92RR'!ŝ !HJO u!.#N} fXazЄ$2LDN @ߐp^(b,s hĕ_6c!&b#F8㘍"D^af1NٔC,*^=N-dV "1Z\Z0[R2K.؃@IP T^[,HM:te#EI(R(' :'+.!fi浑qgh^YZ6@jxVSe,"qfPEeW>S?Z[&`|f &;e cNpg{^ u^g燶]h$J`3"4⣗0;0 pfV0he`Z A^ N頦;^8jxiin~NgҤJu$@Y!jc 0SB֨ ȅ5`0S˜뺾kikl hHjDkƞ8Hpor LHGnt "`40ן m螸ɛmkHHy I-Vމ\_צv 4J܉LIF7pJ75[!.v6m?n6728O痿7-{ׁ L 8H#* 5}W{Zx!Xa4^sx` v15 dvy U=cP"i@\bb. $<2($]zepBN4b@@B$ b"}g_b!5I#&>ěL!L" CҞL:*%|,eSH ? $;3pi*{V(, 5H 2).pp,j-z-;.{.骻..ZlBKD1X /N bJPqCODA0:5kvsly=4ϯ7Ltq#{Dî`p |^sk-8 ?seS,7;̼+<Q/T !н,g<@a[v?6@yop>;:ui@L=iycB Ґk  .; h 1p сhUzfpG :xG7ֵؔApkAzC3͔TF6&?fSf7e?#(!…s41hH|EPk_aDf| o\Qָ!H[NF7FI-hXZծ R >X]mh@i F ,&qoC]voc^: U*Ψ-QܡpsXؗ5һ&6%&Xvܑf[bz4?[SM(V8,+S',%>Ld#@DH_qCT 2I{09-f ;Nxƃ{%qȚۼ;aGt3t:ҡ}TO27 @zIWh{,:V[vu侞?9ZCf%aV`";hw"^C[ nȕ܁!ώO3/d ?쐅$C v Q:C8p[ecvsn2kPQ {?~z͝ X><@3)6Ȩ6q`\ BIi2 2s> &hAw ;GB9~TdU|ʝ?5O@raUPV cZ]:p SK@2CZqPq:5`vj<Zs @ryҙGBwx6y<ݐ @BqȺ7>!>N i=GRt?Qr -J(Y;IdRHo>LrH蓍ЉHRIl_?@`vG?S_4Y`?GD@_Ȏ8`= NM--D_䅊`DbD(; a_ *V C^AAH .` Y J!A(a`mx|qx_ !fR!Uaᡜpf!|5 !* R`dIwQ&&ɒi!Q$J8 ֓"6"#"dCe`fŢ$;bfAb*'f!S``AHcFa,%t%(D(7~cՑD$!R?XbYBC5#'@Ȣ@ТYY]1 6B4f(*!c=pbC6A R%@4 D D\K2r$G$;A%?Cd ɚ#^ IPdfH;씛4J$R*S6\% ScT!HԜp!@$V2YL\.2Mc}pEeEExJ:K `dMdU#22dyR/S%ALcffVYFZBbF¤LM$Nbei%_ZhZj? R]%\7@ pU~fo 'qq"rdCv& 0XPzƉpAlJ| f_zUy&JeՃ&H0@~Dr6s8/Gkh&vĤTʥo@짢ܥxq&]z=ĉ܉6`BSr3MċrgC28hTهZCj'rwJ^fv@?.J$QDvi.hx|§}hr>i-s:MJ XJꦪ ^bX |=,dʑeꠠ V@$8ĤF JPv>T,V @"ëR gߑBji ǩ@i\&ca4iAj7jFP 2bǣ *?jBTDlĪ6°8+6a<(+HC? r:ĤdrH*:CDlB+?L+CkF*^yƩ+2rF  @n.A$AD DCmFTJfDLD8 AD X"#\,$DDjJbD #"ĴmAmFmC<@F:DЭE-Clmײ -z->B6D.l6vIDjKLDf}[L$EZHQPlR4S[̮S@En/oz0N/qEZn/C܉=e!OD'lBRIMEZr/vܩDFo*U/EoƯ~?L2ԅyWhmaVЖ?́,hC_%@/CopŖp͗Xa#xWjWu7 S p. ?$IL 74D .BҫEFb9,shddJ(9z#n>Zt)~D, J4H>C;#o#C:>YP"eOXBe?j=3l܊N+ltYZ&QLM ,ɠ Mt.BKRH~Ag}Ę^(BifBw/?hTgH饴iY#lv|^߱U: YǧVo/ܽѽ*xȆ@ÞR-ClNSDgo6J,*e1DfvjUJI`f?6pS䢤7G-E-lAq3p_uKC\wpwJ'4$K7zg\7|Ƿ|7}׷}J)7M7CSI0.ْ:/7oE\o1a2~WD/~?S #Ge8璯JTvDLajD DT\O#Px%vt%˱_`Հb%d5~AeufT7gVw=3j0{MD֗gTXpWqW{5ԉU[fKkY-C^o۩y-ܸ]AS9G?y"oZI1۽AڦW=\Ym02gb#ytry\GUk˕q$_vެ}D۔-3+L2aq}׽%6WrڵCgr|pK5߯ #"j(Q;Nb*9ZR9s'4B5e_EJЙ &tܝ$7j:x;4t;&;DAK&ǴC<D5{mt>^=I͔D#C,?4/C# 2;Io<ǣ;[{bi46mhK5&Nfq]MmCfuBXeRuP5CyfgZWse}eB\Yfs uugq6irHFt޵)3)©5{gE5aJ~>n (C8(?@~&A$eQ?\+jBh+j#N+l?djCx,nelKme6ȮcgO**?kkoCBYwǐ ?tpa„ p0xP PP A 92t$H3y#ddIe*|7s&8q&/т5ziRK6ujTSV8WflXcɖ5{mZk٪5طqֵ{o^{p` 6|qbŋp1cɓ)W|S&QBthѣiWhi(rD oD =v۴"Y!n:Oz~Lyrȓc4s UD?k v_}?A~|&XG),jw9%'R(=|²g]th'zPH wԃ'Ef6@Hw +0 ;0G >Jtăhǟ| sҧTG@J*L#&ڹ.(:2%uP'Z@;8G=pNOLq3\ c!D]t{:hpKȋ CYe8`aXX+tJ/HSN㰏L!ɐ2gNPVܩgEh@XfRRYgPBs;`ݠ)znVjY[1gg6P/|6Lāc3m|ڥL-y[!g\]ﯢcui?m>8H ?HqE#^xy~6e9/xhrDGOFE2mE_ 5`z] .:`ILA ] (!#9 pHB>Et[2`Rb>?qCk ?$e!ʝNX<.G؁9<#;uÇ^# W+%ƀAhqb2-Kd5,apf@p!\ ?Q"cÎx#?DŽR"UJuU`r͑&tPYbAM: HC+_˭<1W* JRqXd=4`d*3+!n9 Ӡ9~ɔz10M=@RA` ޲0:6\ ?$N:!G6 S!}UA"QԢ%R"$T= VWO FI:Tjuh,l>v,z>L>Ll=XXL;lMcL*bX<}X(uX>=KXLXL(b%k:Sdx1WWWbzTkata|skjt`|sU]_FTpƉ5FʒEɓUӟ]Öv̥q֧fؤpܶx}ƂΆېԗΗك學˩ؿĵĿ܊ܿͿӾɹܫΞŧĩζӯڹӵɵͿ່鿢ʹҾɨɹӭҹNj͕ӕˍΔӛħʹժ׷͡ا۴G H*\ȰÇ#JHŋ3jȱǏ C ɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`Ê 7ZuI]P9vݻxz (ކLevd.|˘3kޜT:ox&X_= *=.ZѥOsMQMO/xLi/3 :ϟgo‰GsXs5tЛ럽:tG/8J-bkKWn& Ks4טN=?f^|`iF=b~f,C&}?SX Nc'y^(hP7c F)T`/O7Jy;HdI`%^)&fIObI9i,K}Vi饘f,5F#t!U|W\ eMBn(JG JenpOW$ν&s~`eLN@7t 7L -ŠWo_zwJF3o觯/CUV4 '\393 -&A8 _$rJhG1L˜E%A8RWWBRَ2 CLT"9!Mh{f% #֒ Pg89L Yc,(A|SaK7hD8 cUBtIPrb*t KB̓%L~AdKN (h@,gbգ)y8l%:HBSƤHI D(8> WǴ7hj|)Q4p,mɆL:c|K%2|K*Uy2YA?G E:mKGB>SUkю Cd\d{]¤DsNjY jfL(!e=4HK(t GTd`hJv2($Iԫ1Q!An_=ȶOì(IZ,bm^8`T5V1-m"ڰxh h9cV&ԡ.c3Pa,g18MP Ij {59!H[=q))NC(Nt_Y.:mKu>5YK<o& \3̷'^J[LN;?YJ ΰe&%ܰG|@#,D"I\Iךc3OW49~q'9i1]G@ !EPR!`G.T$7\fFN߳%.O^R%d:V ""eD-&4YbBk;9z%gkE4X*ğPщ%ƴRF[i=PЕOEmSu%Ԩ.UM*h8VtZ j,+Meo~`YmjI opa9T\Keœ ؟5*9زӟoC醻YMoLp N)oJ|HOҗ;Pԧ;  }u{YN (KTd_OT󴦸)VJueP} lD2^786Y+NyT9!)f;HXu&3f5ͥ =S9gH{쳢\Ͼ48HhJ?F;hU4<_$Ozz) 5JjCZ]j$2%OZ-QǽJu.~vFn0ݦMvUYm%n+!n6؁Hn5XRoW2#oUoeX&pEp7Vv~؃Apq)1q\Crqqru:H&\5;J9>EssSssmD@Bnpr8tXvxxzV]wan8akVv8l|ouWD0w{wr0'yBDFGdqdx*QweeHoizGzif>fw($gG@,z胵gKgq{P|hhHM:Y(}f}$(jvj@"~4T~ -l؃wkMkQwޗ57TrԏȎ8$'w XU:06|VVpWP2h n%((oep)ւV36Zq"BDrFQxqYWrHyUrWiȅ37Gdhc9&&!l8=C`Yvyxz|ٗ~s؇(ZFAH/ hx؈'Xwvh(c~7m=6y7xxRETYx)uypy\zgxzz9tȨ{t'W(W&(|g|hi yhI0<\sS4@ iZ~ ,# b(p|`/l/젨/8-,Kڙzd5ƪʚjx'1PzWPʙ'W,Oƚ;>Ěe6O9#Jj;yvcǜlYf]+k|֊1Y~&Kcx$(j(Z;{(k)rfi<-A>"[y+k(.0}ǜ9G*}9^>@CFCFێkqb(MSQ(PKAZȢ6Ok0լ>d;UIj;l1*r =IQEsV()и>+`h'ֿ)1kiM8Atrx_rixFm \؈؊،NQ2 ty+Dq%e,+4HË4l.7j}==ŗTDhGׁJMjX?' IVʻ'rlg.+BW5>̅( )Lvo)Ekλf{jRN|S!]~Y>R (vY2dhOynr. Vt,C3m_%nC+j>!YKҙ4+ ,:]XZ66+RJQ'uFM(ԯd8yG_]<(`Qd U4PFRa H%)dqOA%ZQI.eSQNZUa(- pB(X1VtEmɚϼt W`=MCOY%O\e̙5o3/?C POlfkرeϦو: &^qɕ/gsѥO^uٵowŏϺlQLꐧ_8QbPP?P&sA#JuAء&( -* "Avg STq8 P(lh{| 3{^jfL1F%F#ASv xmFpaQL2Dm'L#B,҆Iz)&(y%#CXtQH `$B {%{BYe=u'@GVᦀM'#qw |%SQMRK1YarS=5-OT5]y1T(AHw~X6ƀ+fi"&Xr<6%$~g_&j i`W!E&d_Un3XxǛ` x& Uzi2 rHh6hsvz&XLAX`kΦ\@5aطZ߶ ;uPr;4Agnr3qHz7\.у--Xd~hza 'Z1vUo&tX6%mlLQHBgz-JdxyD&uM}jTZիfu]jXZMgRKYzW6 uÎ~Z'ȿ%)\&Zы@Qf[ܱqpI5ᔆ lh.aكX0Lvɐ9Swoؘxj(*ALbT=yơ~xjq|licEA2]&uPvk\WCv^OrC猗|Sy4?O&욁[L#{tΗeC f4ݬ(l@SD,z%shc>1 2EyiRw{ix/GSFM8^|=yЇ^'}S]kGIk~6–}/clک-iCpQzo{ZkҽR t4 Vxɷ TYف񡈟4`+?c*r?k>:;+S1**k1iCt{ۭ/s;P9$D?Й22@?<2LDE;ɚ@XBD$ IJSš9S A`A0-b4c7 E;$ A٭Pʹk|9%W<\tGzG{G|G}GaxˡBȠTpX8-PH dH@e8n HȧsGPȪMȟ0H< TI0I¬əȐj A=Z\ L%hKb JP @p85 t $<`CKPKXo8lp* 9 d  J(K D,?{7+0Zxn̒6\,|I8>j(Ҳ TmH@MdMdbѴm9.dΑ2̍6nSɴ0xhT8)3! *C|@<3rdM \,=1̡HϠ0|@T64dStΏ8K\M̈́"А _D~[)ⰚjST8( ynطy#LMUsQC `b|s {t@;̔" Q}) RiI%=9RR0~Qnx1ˡq CQmY1QASX,dPQ(8R,=1#%TI􋲡1I(5FxTH+M)SjSMՏP ģy&AK>IeZ%H,a0UoUGDh)$D$V#>GUŘ6H3 ̜LԜJ: t~XUEL1dU{9 ST]וQ$ŵB ScV 2ӑ+ |YѠ:,S̓@2ا%riMMQ$/% rNYXXyڢ0 NĚ=E YZY18)L;Kط [F99Ry yQQU\ƵU\ܙ՟C2 ٚ[Pl\\Mv0WʵSK]K< $F]'x-۵ؽ[x]h\ݿRK4 +Ԛ!]]Tqڪ:$Uf 4RB :x0Z_:×=tT#:u4ЕwH/ـK+1DN>^mMX. `\`u%_ߔY_Ϡ xp_Cf`Zn $^ȡ_:@ b.bzSaPXF@ ږ) *jM_bu`;>*Rc`tMh@Fd2 V g%B>䭭"2x @N  \8l |nVؓh$FOvId$ngqϑ&I(as>$m|vh~f#hD "&BjMHd8 "¦@ꦐj%P+/a(xYXǬjvkw,Ц&XZ v Fk룀j쏊&PJɄalpcl1n ȅ[`xWlm\mnmf |m`əpɄdTT^hH֔ $m fnBٞ.ʖ˨0JHʎʭrJ`\n K֣ 1,|S "tLeVUJTIcUthTՍU-U WNe|}ټWU[UV?RTTa͈b}]uug}:%81u̝6_Nضۆ%ۨuʪڟ;,WY=[N9M[2IYbٺZMm?%F2Bv,[O޾ejnލ]Uٜx̥EuoMܸx=]L^- xM䏻oLs` w#`7_],NVE!%ϗRߦ .'vbk zE !'ܽ .;e2F4fd-F1Ң)Z1^ )ccEc`fPN8^=nec~dN|BdLNdgEbzd~Id|bc+Nv"i{?I4{&injέkƓhN|_(B:g^gw4gFF~hƁޣ;GV衸H Ymך8~FN;갦#j>j, *4`!J,F /f$( ~6 κ$!O"@ fDhqS'РB-j(ҤJ2mq>:*֬ZXsLr-k,ڴjײmԈ6fuk L#.l0Ċ3n1Ȓ'Sl2̚7s3ТG.m4ԪA El5زgںw)c@4{ ݶ.Jdk׳o2|c@ Vm'@,h=6Í@gTYx!_/O7r RKa;C 4\x?Wi8$Ey,5KF?wD"HH@VO>T >l&m 5N:?nDK=td%P(",y(D#FKeN7?$BjJ$5I#&>z!L" 3թz,ji,fST s? $;#(*-[YNa@2tPB/ <0|0 +0 ;0K<1k&dA4Ʊ<`[[Y>5D25ۜV K<1E:#CLASHA 2- 5R0@@2O`]S@6k _w2WSi}4?_kPK us.=E~]QT>a_-yЛOw~w~k୻ޅ !.1D 5\kd;ۘ<@м?M{ĕ zp8-s2?=ɐ %a Y[[W pr+ vMÃ޹/} #*QP@iF9"}q#iGM" ùrPVqUE, ?|;咀c*A/ьjnY{v DjJ29ٛ @*aʬ[Bj@ " ba} nV,!Չ@+ &?Z9&I+≞] 2ʂi1I$U]UmWh,"#` dpt4n. ğ+Hc51cpm>֞!#?U ;@(%,%@@PT ($C:.%]"0:_!=c466 7 Y8;$B b3ʡ|8 9ARI!A`VvW*6s&e.?\]%̊\7 pA։Cg{g'}} ~D‚槬Њ0XZaz AK, ZuhJqfX=hBH HJg3}fA"m"h[{`r}槕hb)6`__)˰ ŗf,C LPuiA⟒^):]HQ)"&䊎A$*|.))A)舂bj~?i S@Ɂ b="-ùYj*̪*@HD*xh \HE=MlɷT,H},?lTUډ)t˵N}P Dȭv@^tùZz 4z+?k oFL t(k.˿jžAܬܫQH*?fbZNį~H6kH+SD̮>DȶĚ%~k̾+z jI&SPOH\^ 4~mzخH@Q0BKQI@pGNIJ@K(C M-N4LmQĀE>nOL>̈ bچmEDYDH(I-AlC|DBBb /;֌WX YEgoXP8o ]E\^_ U/gdo_P>//o@3ɢ:SR:) HRZ .S  ;QEEΘ)RtĶ]pP|^p?L-w\@HoIwȂ6VB1yׂvɬTyU]G dy\\r wTpux:! [/NaU-eIˉ5Cܜ[Il o[1kWrMک]#/NJir "qCAb[ qY)X 9^Ǟ*6K-KE-_42'spH4\0Acl ~Gya="&rghD1 ³MVJ*fb| (#A@3*a,IH ;8/Y8Ibd$LNEpCC8\2PΣF47s 囍43N$C6dHM2#OTJ48QCcFq-C:>d$NZqZʹ5f^T~CgmiMϴy%فcv\V'k%P$稰e\zKRɫH]G`Bmv&禖hT@*IZ(hbA)zhZ?Ĩ:Υ*|(cӬz((iC6uSb`_@hq.ӆ@V@BmNkf5f,֞4lmel-ZCdkApOEq4m7QRDf P2n.nL.He{{;{k}]0Onax/o8w80oCmʼn;D9S7RxVD]`V,S@ywfaEJd넏Ql@PW9LSYSXklE+ziVdؘ3֌C1Xaxlq4yWTYx):PW|YX/\Mp1,f1q}94ܜ n+5[-Z Cr'&2){yڨ]EEs<ڱܯ ;7 9\E|";1c@SrwL]Ց%{i C24M38],V-ཟT |/7^KYD rs?L?o;n=k;C$<~W&[源\t`4>K@WNb͗ʴ^:ҍ|gg[* 8G NFbAOjYj$qb=@8A cF'#PS# Ϣ3O#JIK7B}Ls:Dx #6'=bUF&vuDCTum%njnovgi\Vo=wDrF@TK(__\>y^vfb/y_)fd2~x9Kjz~*K'?)jz>isZUm/3j;?vިt~ǏCi3}/uۦ.-,7b~- @*I+AY$x1†&V_X2HI -beK/Ȓ;~ )PA/$؍THM.%O咁T(BlwpZH ,j n\sֵ{o^{p` ;wh2 ["bŌW (cp!i|Gm.ƞ}Q2e_xpÉ7~/!/ztөW~{vҍkSɗ7}zٷw~|׷>0@H $|.")8 )KT1 pY櫃:0DF10$`3M/m$Qi8y+v1, ua"|N0%mwvƃđ.2魰+<)K30,,lNƉbT<8#A@vpg&" ,n:8O@%PDe||kFByԔT҆E\J#&ڡJ8a  "u*ÚX.㟠HlJ{-z;FEۢ6U͔uGnkj Bʬt&: 6F4Rn ]grϳ_|N $}+ޢsz oI|~#M)e+'%~jap1eb_VH_vA=Xv$It4Χ%<=!P1|OpIEXfa_#JPh=~!_ g~(>p$.E" Q1"2 M:Z|A ]" `qH",20]hhV*AxaȹARByh  &Ĥ&>"F=xǙ2{8e {W7W*(18zpyuT2ӯ`l@a h%!\ɂ|exf4ɏj^(03u즎䡉`Pj'B8:pЄ.T$߄!Pӟ /CRzhJ!>:&R#-I'pq3x1ldNy~-d9KA|G*E`;US٢QH"rFz$J*GĬ5IvdP UqġP STX+?rdՎf T&7ʻ؜ is an alias for end keys: \033> \n # END ENTER stdin: 1 2 3 4 stdout: 4 pick-2.0.2/tests/key-enter.t000066400000000000000000000005431326321333200156730ustar00rootroot00000000000000description: enter selects the first choice keys: \n # ENTER stdin: 1 2 3 4 stdout: 1 description: enter does nothing if no choices are present keys: 2 \n \033\n # ENTER ALT_ENTER stdin: 1 stdout: 2 description: tabs in input keys: \n # ENTER stdin: a stdout: a description: carriage return is recognized as enter keys: \r # ENTER stdin: a stdout: a pick-2.0.2/tests/key-home.t000066400000000000000000000003231326321333200155020ustar00rootroot00000000000000description: home selects the first choice keys: \016 \033OH \n # DOWN HOME ENTER stdin: 1 2 3 4 stdout: 1 description: Alt-< is an alias for home keys: \016 \033< \n # DOWN HOME ENTER stdin: 1 2 3 4 stdout: 1 pick-2.0.2/tests/key-left.t000066400000000000000000000005401326321333200155050ustar00rootroot00000000000000description: left moves the cursor to the left keys: a \002 b \n # LEFT ENTER stdin: ba stdout: ba description: left moves the cursor to the left and handles UTF-8 keys: åaå \002 \002 \002 ö \n # LEFT LEFT LEFT ENTER stdin: öåaå stdout: öåaå description: left arrow is an alias for left keys: a \033OD b \n # LEFT ENTER stdin: ba stdout: ba pick-2.0.2/tests/key-line-down.t000066400000000000000000000011051326321333200164450ustar00rootroot00000000000000description: down moves the selection downwards keys: \016 \016 \016 \016 \n # DOWN ENTER stdin: 1 2 3 4 stdout: 4 description: down out of bounds keys: \016 \016 \016 \n # DOWN ENTER stdin: 1 2 stdout: 2 description: down with vertical scroll keys: \016 \016 \016 \016 \n # DOWN ENTER env: LINES=5 stdin: 01 02 03 04 05 stdout: 05 description: down out of bounds with vertical scroll keys: \016 \016 \016 \016 \016 \n # DOWN ENTER env: LINES=5 stdin: 01 02 03 04 05 stdout: 05 description: down arrow is an alias for down keys: \033OB \n # DOWN ENTER stdin: 1 2 3 4 stdout: 2 pick-2.0.2/tests/key-line-up.t000066400000000000000000000007331326321333200161300ustar00rootroot00000000000000description: up with vertical scroll keys: \016 \016 \016 \016 \020 \020 \020 \020 \n # DOWN UP ENTER env: LINES=5 stdin: 01 02 03 04 05 stdout: 01 description: up out of bounds with vertical scroll keys: \016 \016 \016 \016 \020 \020 \020 \020 \020 \n # DOWN UP ENTER env: LINES=5 stdin: 01 02 03 04 05 stdout: 01 description: up arrow is an alias for up keys: \016 \016 \016 \016 \020 \033OA \033OA \033OA \n # DOWN UP ENTER env: LINES=5 stdin: 01 02 03 04 05 stdout: 01 pick-2.0.2/tests/key-page-down.t000066400000000000000000000012341326321333200164350ustar00rootroot00000000000000description: page down scrolls a page worth of choices keys: \033[6~ \n # PAGE_DOWN ENTER env: LINES=5 stdin: 01 02 03 04 05 stdout: 05 description: page down, first choice not selected keys: \016 \033[6~ \n # DOWN PAGE_DOWN ENTER env: LINES=5 stdin: 01 02 03 04 05 06 stdout: 06 description: page down, all choices fit on one page keys: \033[6~ \n # PAGE_DOWN ENTER env: LINES=5 stdin: 01 02 03 04 stdout: 04 description: Ctrl-V is an alias for page down keys: \026 \n # PAGE_DOWN ENTER env: LINES=5 stdin: 01 02 03 04 05 stdout: 05 description: Alt-Space is an alias for page down keys: \033\\ \n # PAGE_DOWN ENTER env: LINES=5 stdin: 01 02 03 04 05 stdout: 05 pick-2.0.2/tests/key-page-up.t000066400000000000000000000011371326321333200161140ustar00rootroot00000000000000description: page up keys: \033[6~ \033[6~ \033[5~ \n # PAGE_DOWN PAGE_UP ENTER env: LINES=5 stdin: 01 02 03 04 05 06 07 08 09 stdout: 05 description: page up, selected choice below the first page keys: \033[6~ \016 \033[5~ \n # PAGE_DOWN DOWN PAGE_UP ENTER env: LINES=5 stdin: 01 02 03 04 05 06 stdout: 02 description: page up, all choices fit on one page keys: \033[6~ \033[5~ \n # PAGE_DOWN PAGE_UP ENTER env: LINES=5 stdin: 01 02 03 04 stdout: 01 description: Alt-V is an alias for page up keys: \026 \026 \033v \n # PAGE_DOWN PAGE_UP ENTER env: LINES=5 stdin: 01 02 03 04 05 06 07 08 09 stdout: 05 pick-2.0.2/tests/key-printable.t000066400000000000000000000010651326321333200165360ustar00rootroot00000000000000description: printable characters are added to the query keys: A \n # ENTER stdin: BBB ABC AB A stdout: A description: printable UTF-8 characters are added to the query keys: ö \n # ENTER stdin: å ä ö stdout: ö description: UTF-8 false positive keys: áá \n # ENTER stdin: íš á háh háh stdout: háh háh description: UTF-8 four byte wide characters keys: 💩 \n # ENTER stdin: 😀 💩 stdout: 💩 description: changing the query resets vertical scroll keys: \016 \016 \016 \016 \016 0 \n #DOWN ENTER env: LINES=5 stdin: 01 02 03 04 05 stdout: 01 pick-2.0.2/tests/key-right.t000066400000000000000000000007421326321333200156740ustar00rootroot00000000000000description: right moves the cursor to the right keys: a \002 b \006 b \n # LEFT RIGHT ENTER stdin: bab stdout: bab description: right moves the cursor to the right and handles UTF-8 keys: åaå \001 \006 \006 \006 ö \n # CTRL_A RIGHT RIGHT RIGHT ENTER stdin: åaåö stdout: åaåö description: right arrow is an alias for right keys: a \002 b \033OC b \n # LEFT RIGHT ENTER stdin: bab stdout: bab description: right end of line keys: \006 \n # RIGHT ENTER stdin: a stdout: a pick-2.0.2/tests/key-unknown.t000066400000000000000000000001621326321333200162520ustar00rootroot00000000000000description: unrecgonized escape sequences are ignored keys: \033[1111111111111111~ \n # ENTER stdin: a stdout: a pick-2.0.2/tests/misc-match.t000066400000000000000000000011351326321333200160130ustar00rootroot00000000000000description: matching is case insensitive keys: a \n # ENTER stdin: A stdout: A description: it favors the shortest match keys: aa/aa \n # ENTER stdin: aa/åå/aa aa/åå/aa/aa stdout: aa/åå/aa/aa description: do not match inside a CSI escape sequence keys: 32 \n stdin: \033[32m33\033[m 3aaa2 stdout: 3aaa2 description: do not match inside a OSC escape sequence keys: example \n # ENTER stdin: \033]8;;example.com\aOSC Hyperlink\033]8;;\a favored match since the query is not inside the escape sequence example.com stdout: favored match since the query is not inside the escape sequence example.com pick-2.0.2/tests/misc-realloc.t000066400000000000000000000045661326321333200163530ustar00rootroot00000000000000description: query realloc args: -q a keys: bc \n # ENTER stdin: abc stdout: abc description: big input causing realloc keys: deadbeef \n # ENTER stdin: DEADBEEF I2lmZGVmIEhBVkVfQ09ORklHX0gKI2luY2x1ZGUgImNvbmZpZy5oIgojZW5kaWYKCiNpbmNsdWRl IDxzeXMvaW9jdGwuaD4KCiNpbmNsdWRlIDxjdHlwZS5oPgojaW5jbHVkZSA8ZXJyLmg+CiNpbmNs dWRlIDxsaW1pdHMuaD4KI2luY2x1ZGUgPGxvY2FsZS5oPgojaW5jbHVkZSA8cG9sbC5oPgojaW5j bHVkZSA8c2lnbmFsLmg+CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RkbGliLmg+CiNp bmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPHRlcm1pb3MuaD4KI2luY2x1ZGUgPHVuaXN0ZC5o PgojaW5jbHVkZSA8d2NoYXIuaD4KI2luY2x1ZGUgPHdjdHlwZS5oPgoKI2lmZGVmIEhBVkVfTkNV UlNFU1dfSAojaW5jbHVkZSA8bmN1cnNlc3cvY3Vyc2VzLmg+CiNpbmNsdWRlIDxuY3Vyc2Vzdy90 ZXJtLmg+CiNlbHNlCiNpbmNsdWRlIDxjdXJzZXMuaD4KI2luY2x1ZGUgPHRlcm0uaD4KI2VuZGlm CgojaW5jbHVkZSAiY29tcGF0LmgiCgojZGVmaW5lIHR0eV9wdXRwKGNhcGFiaWxpdHksIGZhdGFs KSBkbyB7CQkJCVwKCWlmICh0cHV0cygoY2FwYWJpbGl0eSksIDEsIHR0eV9wdXRjKSA9PSBFUlIg JiYgKGZhdGFsKSkJCVwKCQllcnJ4KDEsICNjYXBhYmlsaXR5ICI6IHVua25vd24gdGVybWluZm8g Y2FwYWJpbGl0eSIpOwlcCn0gd2hpbGUgKDApCgplbnVtIGtleSB7CglVTktOT1dOLAoJQUxUX0VO VEVSLAoJQkFDS1NQQUNFLAoJREVMLAoJRU5URVIsCglDVFJMX0EsCglDVFJMX0MsCglDVFJMX0Us CglDVFJMX0ssCglDVFJMX0wsCglDVFJMX1UsCglDVFJMX1csCglDVFJMX1osCglSSUdIVCwKCUxF RlQsCglMSU5FX0RPV04sCglMSU5FX1VQLAoJUEFHRV9ET1dOLAoJUEFHRV9VUCwKCUVORCwKCUhP TUUsCglQUklOVEFCTEUKfTsKCnN0cnVjdCBjaG9pY2UgewoJY29uc3QgY2hhcgkqZGVzY3JpcHRp b247Cgljb25zdCBjaGFyCSpzdHJpbmc7CglzaXplX3QJCSBsZW5ndGg7Cglzc2l6ZV90CQkgbWF0 Y2hfc3RhcnQ7CS8qIGluY2x1c2l2ZSBtYXRjaCBzdGFydCBvZmZzZXQgKi8KCXNzaXplX3QJCSBt YXRjaF9lbmQ7CS8qIGV4Y2x1c2l2ZSBtYXRjaCBlbmQgb2Zmc2V0ICovCglkb3VibGUJCSBzY29y ZTsKfTsKCnN0YXRpYyBpbnQJCQkgY2hvaWNlY21wKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9pZCAq KTsKc3RhdGljIHZvaWQJCQkgZGVsZXRlX2JldHdlZW4oY2hhciAqLCBzaXplX3QsIHNpemVfdCwg c2l6ZV90KTsKc3RhdGljIGNoYXIJCQkqZWFnZXJfc3RycGJyayhjb25zdCBjaGFyICosIGNvbnN0 IGNoYXIgKik7CnN0YXRpYyB2b2lkCQkJIGZpbHRlcl9jaG9pY2VzKHZvaWQpOwpzdGF0aWMgY2hh cgkJCSpnZXRfY2hvaWNlcyh2b2lkKTsKc3RhdGljIGVudW0ga2V5CQkJIGdldF9rZXkoY29uc3Qg Y2hhciAqKik7CnN0YXRpYyB2b2lkCQkJIGhhbmRsZV9zaWd3aW5jaChpbnQpOwpzdGF0aWMgaW50 CQkJIGlzdThjb250KHVuc2lnbmVkIGNoYXIpOwpzdGF0aWMgaW50CQkJIGlzdThzdGFydCh1bnNp Z25lZCBjaGFyKTsKc3RhdGljIGludAkJCSBpc3dvcmQoY29uc3QgY2hhciAqKTsKc3RhdGljIHNp emVfdAkJCSBtaW5fbWF0Y2goY29uc3QgY2hhciAqLCBzaXplX3QsIHNzaXplX3QgKiwKCQkJCSAg ICBzc2l6ZV90ICopOwpzdGF0aWMgc2l6ZV90CQkJIHByaW50X2Nob2ljZXMoc2l6ZV90LCBzaXpl DEADBEEF stdout: DEADBEEF pick-2.0.2/tests/opt-d.t000066400000000000000000000001411326321333200150050ustar00rootroot00000000000000description: do not search descriptions args: -d keys: b \n # ENTER stdin: a b aaab stdout: aaab pick-2.0.2/tests/opt-h.t000066400000000000000000000000421326321333200150110ustar00rootroot00000000000000description: output help args: -h pick-2.0.2/tests/opt-k.t000066400000000000000000000001511326321333200150150ustar00rootroot00000000000000description: disable toggling of keyboard transmit mode args: -K keys: \n # ENTER stdin: xyz stdout: xyz pick-2.0.2/tests/opt-o.t000066400000000000000000000001311326321333200150170ustar00rootroot00000000000000description: output description args: -do keys: a \n # ENTER stdin: a b aaab stdout: a b pick-2.0.2/tests/opt-q.t000066400000000000000000000001341326321333200150240ustar00rootroot00000000000000description: filter using the query option args: -q a keys: \n # ENTER stdin: b a stdout: a pick-2.0.2/tests/opt-s.t000066400000000000000000000001371326321333200150310ustar00rootroot00000000000000description: with sorting disabled args: -S keys: A \n # ENTER stdin: BBB ABC AB A stdout: ABC pick-2.0.2/tests/opt-unknown.t000066400000000000000000000001321326321333200162610ustar00rootroot00000000000000description: unknown option args: -0 exit: 1 description: extra argument args: a exit: 1 pick-2.0.2/tests/opt-v.t000066400000000000000000000000451326321333200150320ustar00rootroot00000000000000description: version option args: -v pick-2.0.2/tests/opt-x.t000066400000000000000000000002641326321333200150370ustar00rootroot00000000000000description: enable alternate screen option args: -x keys: \n # ENTER stdin: a stdout: a description: disable alternate screen option args: -X keys: \n # ENTER stdin: a stdout: a pick-2.0.2/tests/pick-test.c000066400000000000000000000116331326321333200156540ustar00rootroot00000000000000#include #include #include #include #include #include #include #include #include #include #include #include #include "compat.h" __dead static void child(int, int); static void parent(int, int, const char *); static char *parsekeys(const char *); static void sighandler(int); __dead static void usage(void); static char **pickargv; /* * Mandatory environment variables required by pick to operate correctly. * Any existing value will be overwritten. */ static const char *pickenv[] = { "LC_ALL", "en_US.UTF-8", "TERM", "xterm", NULL, }; static int gotsig; int main(int argc, char *argv[]) { char *keys = ""; pid_t pid; int c, i, master, slave, status; while ((c = getopt(argc, argv, "k:")) != -1) switch (c) { case 'k': keys = parsekeys(optarg); break; default: usage(); } argc -= optind; argv += optind; /* Ensure room for program and null terminator. */ if ((pickargv = calloc(argc + 2, sizeof(const char **))) == NULL) err(1, NULL); pickargv[0] = "./pick"; for (i = 0; i < argc; i++) pickargv[i + 1] = argv[i]; if (signal(SIGCHLD, sighandler) == SIG_ERR) err(1, "signal"); if ((master = posix_openpt(O_RDWR)) == -1) err(1, "posix_openpt"); if (grantpt(master) == -1) err(1, "grantpt"); if (unlockpt(master) == -1) err(1, "unlockpt"); if ((slave = open(ptsname(master), O_RDWR)) == -1) err(1, "%s", ptsname(master)); switch ((pid = fork())) { case -1: err(1, "fork"); /* NOTREACHED */ case 0: child(master, slave); /* NOTREACHED */ default: parent(master, slave, keys); /* Wait and exit with code of the child process. */ waitpid(pid, &status, 0); if (WIFSIGNALED(status)) exit(128 + WTERMSIG(status)); if (WIFEXITED(status)) exit(WEXITSTATUS(status)); } return 0; } __dead static void usage(void) { fprintf(stderr, "usage: pick-test [-k path] [-- argument ...]\n"); exit(1); } static char * parsekeys(const char *path) { FILE *fh; char *buf; size_t len = 0; size_t size = 16; int c, esc; if ((fh = fopen(path, "r")) == NULL) err(1, "fopen: %s", path); if ((buf = malloc(size)) == NULL) err(1, NULL); esc = 0; while ((c = fgetc(fh)) != EOF) { if (c == '\\') { esc = 1; } else if (!esc && c == ' ') { continue; } else { buf[len++] = c; esc = 0; } if (size <= len) { if ((buf = reallocarray(buf, 2, size)) == NULL) err(1, NULL); size *= 2; } } if (ferror(fh)) err(1, "fgetc: %s", path); fclose(fh); buf[len] = '\0'; return buf; } static void sighandler(int sig) { gotsig = sig == SIGCHLD; } __dead static void child(int master, int slave) { const char **env; struct winsize ws; int fd; close(master); /* Disconnect the controlling tty, if present. */ if ((fd = open("/dev/tty", O_RDWR | O_NOCTTY)) >= 0) { /* Ignore any error. */ (void)ioctl(fd, TIOCNOTTY, NULL); close(fd); } /* Make the current process the session leader. */ if (setsid() == -1) err(1, "setsid"); /* Connect the slave as the controlling tty. */ if (ioctl(slave, TIOCSCTTY, NULL) == -1) err(1, "TIOCSCTTY"); /* * Set window size to known dimensions, necessary in order to deduce * when scrolling should occur. */ memset(&ws, 0, sizeof(ws)); ws.ws_col = 80, ws.ws_row = 24; if (ioctl(slave, TIOCSWINSZ, &ws) == -1) err(1, "TIOCSWINSZ"); for (env = pickenv; *env != NULL; env += 2) if (setenv(env[0], env[1], 1) == -1) err(1, "setenv: %s", env[0]); execv(pickargv[0], pickargv); err(1, "%s", pickargv[0]); } static void parent(int master, int slave, const char *keys) { char buf[BUFSIZ]; fd_set rfd; struct timeval timeout; ssize_t n; size_t len; size_t written = 0; len = strlen(keys); memset(&timeout, 0, sizeof(timeout)); timeout.tv_sec = 2; while (gotsig == 0) { FD_ZERO(&rfd); FD_SET(master, &rfd); switch (select(master + 1, &rfd, NULL, NULL, &timeout)) { case -1: if (errno == EINTR) continue; err(1, "select"); /* NOTREACHED */ case 0: errx(1, "time limit exceeded"); /* NOTREACHED */ default: if (!FD_ISSET(master, &rfd)) continue; } /* * Read and discard output from child process, necessary since * it flushes. */ if (read(master, buf, sizeof(buf)) == -1) err(1, "read"); /* * When the pick process has flushed its output we can ensure * the call to tcsetattr has been completed and canonical mode * is disabled. At this point input can be written without any * line editing taking place. */ if (written < len) { if ((n = write(master, keys + written, len - written)) == -1) err(1, "write"); written += n; } } /* * If the last slave file descriptor closes while a read call is in * progress, the read may fail with EIO. To avoid that happening in the * above loop, this copy of the slave file descriptor is left open until * now. */ close(slave); } pick-2.0.2/tests/pick-test.sh000077500000000000000000000032311326321333200160420ustar00rootroot00000000000000#!/bin/sh set -e # Strip leading spaces and trailing comment from $1. strip() { echo "$1" | sed -e 's/^ *//' -e 's/ *#.*$//' } run_test() { local _cause= _diff=$stdout env $env tests/pick-test -k $input -- $args <$stdin >$out 2>&1; e=$? if [ -s "$stdout" ] && ! cmp -s "$stdout" "$out"; then _cause="wrong output" elif [ "${exit:-0}" -ne "$e" ]; then _cause="want exit code ${exit}, got ${e}" _diff="/dev/null" fi if [ -n "$_cause" ]; then printf 'FAIL:\t%s\n' "$description" 1>&2 printf 'CAUSE:\t%s\n' "$_cause" 1>&2 diff -u -L stdout-want -L stdout-got "$_diff" "$out" return 1 fi return 0 } usage() { echo "usage: sh tests/pick-test.sh [-e env] file ..." 1>&2 exit 1 } # Default environment applied to all test cases. defenv= while getopts "e:" opt; do case "$opt" in e) defenv="${defenv} ${OPTARG}";; *) usage;; esac done shift $((OPTIND - 1)) [ $# -eq 0 ] && usage nerr=0 in=$(mktemp -t pick-test.XXXXXX) out=$(mktemp -t pick-test.XXXXXX) stdin=$(mktemp -t pick-test.XXXXXX) stdout=$(mktemp -t pick-test.XXXXXX) input=$(mktemp -t pick-test.XXXXXX) trap "rm -f $in $out $stdin $stdout $input" EXIT for f; do (cat "$f"; echo) >$in while IFS=: read -r key val; do if [ -z "$key" ]; then env="${defenv} ${env}" run_test || nerr=$((nerr + 1)) # Reset environment. args= description= env= exit= keys= >$out; >$stdin; >$stdout; >$input elif [ "$key" = "keys" ]; then printf "${val%%#*}" >$input elif [ -n "$val" ]; then eval "${key}='$(strip "$val")'" else case "$key" in stdin) tmpfile=$stdin;; stdout) tmpfile=$stdout;; *) printf "${key}\n" >>$tmpfile;; esac fi done <$in done exit $((nerr > 0))