Repository: hugsy/gef Branch: main Commit: 0c95800c3ad3 Files: 205 Total size: 3.4 MB Directory structure: gitextract_tg8j9h13/ ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── CONTRIBUTING.md │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yaml │ │ └── feature_request.yaml │ ├── PULL_REQUEST_TEMPLATE.md │ ├── stale.yml │ ├── tests/ │ │ ├── entrypoint.sh │ │ ├── run-tests.sh │ │ └── setup-dockerfile.sh │ └── workflows/ │ ├── coverage.yml │ ├── extended-tests.yml │ ├── generate-docs.yml │ ├── notify.yml │ ├── tests.yml │ └── validate.yml ├── .gitignore ├── .pre-commit-config.yaml ├── .pylintrc ├── .python-version ├── .readthedocs.yml ├── LICENSE ├── README.md ├── docs/ │ ├── .markdownlint.yaml │ ├── api/ │ │ └── gef.md │ ├── api.md │ ├── commands/ │ │ ├── aliases.md │ │ ├── arch.md │ │ ├── aslr.md │ │ ├── canary.md │ │ ├── checksec.md │ │ ├── config.md │ │ ├── context.md │ │ ├── dereference.md │ │ ├── edit-flags.md │ │ ├── elf-info.md │ │ ├── entry-break.md │ │ ├── eval.md │ │ ├── format-string-helper.md │ │ ├── functions.md │ │ ├── gef-remote.md │ │ ├── gef.md │ │ ├── got.md │ │ ├── heap-analysis-helper.md │ │ ├── heap.md │ │ ├── help.md │ │ ├── hexdump.md │ │ ├── highlight.md │ │ ├── hijack-fd.md │ │ ├── memory.md │ │ ├── name-break.md │ │ ├── nop.md │ │ ├── patch.md │ │ ├── pattern.md │ │ ├── pcustom.md │ │ ├── pie.md │ │ ├── print-format.md │ │ ├── process-search.md │ │ ├── process-status.md │ │ ├── registers.md │ │ ├── reset-cache.md │ │ ├── scan.md │ │ ├── search-pattern.md │ │ ├── shellcode.md │ │ ├── skipi.md │ │ ├── stepover.md │ │ ├── stub.md │ │ ├── theme.md │ │ ├── tmux-setup.md │ │ ├── trace-run.md │ │ ├── version.md │ │ ├── vmmap.md │ │ ├── xfiles.md │ │ ├── xinfo.md │ │ └── xor-memory.md │ ├── compat.md │ ├── config.md │ ├── debugging.md │ ├── deprecated.md │ ├── faq.md │ ├── functions/ │ │ ├── base.md │ │ ├── bss.md │ │ ├── got.md │ │ ├── heap.md │ │ └── stack.md │ ├── index.md │ ├── install.md │ ├── obsolete/ │ │ ├── docs/ │ │ │ └── index.md │ │ ├── mkdocs.yml │ │ └── requirements.txt │ ├── requirements.txt │ ├── screenshots.md │ └── testing.md ├── gef.py ├── get-pip.py ├── mkdocs.yml ├── ruff.toml ├── scripts/ │ ├── gef-extras.sh │ ├── gef.sh │ ├── generate-api-docs.sh │ ├── generate-coverage-docs.sh │ ├── generate-settings-docs.sh │ ├── new-release.py │ ├── remote_debug.py │ └── vscode_debug.py └── tests/ ├── __init__.py ├── api/ │ ├── __init__.py │ ├── deprecated.py │ ├── gef_arch.py │ ├── gef_disassemble.py │ ├── gef_heap.py │ ├── gef_memory.py │ ├── gef_session.py │ └── misc.py ├── base.py ├── binaries/ │ ├── Makefile │ ├── bss.c │ ├── canary.c │ ├── checksec-no-canary.c │ ├── checksec-no-nx.c │ ├── checksec-no-pie.c │ ├── class.cpp │ ├── collision.c │ ├── default.c │ ├── format-string-helper.c │ ├── heap-analysis.c │ ├── heap-bins.c │ ├── heap-fastbins.c │ ├── heap-multiple-heaps.c │ ├── heap-non-main.c │ ├── heap-tcache.c │ ├── heap.c │ ├── memwatch.c │ ├── mmap-known-address.c │ ├── nested.c │ ├── nested2.c │ ├── pattern.c │ ├── pcustom.c │ └── utils.h ├── commands/ │ ├── __init__.py │ ├── aliases.py │ ├── arch.py │ ├── aslr.py │ ├── canary.py │ ├── checksec.py │ ├── context.py │ ├── dereference.py │ ├── edit_flags.py │ ├── elf_info.py │ ├── entry_break.py │ ├── format_string_helper.py │ ├── functions.py │ ├── gef.py │ ├── gef_remote.py │ ├── got.py │ ├── heap.py │ ├── heap_analysis.py │ ├── hexdump.py │ ├── highlight.py │ ├── hijack_fd.py │ ├── memory.py │ ├── name_break.py │ ├── nop.py │ ├── patch.py │ ├── pattern.py │ ├── pcustom.py │ ├── pie.py │ ├── print_format.py │ ├── process_search.py │ ├── process_status.py │ ├── registers.py │ ├── reset_cache.py │ ├── scan.py │ ├── search_pattern.py │ ├── shellcode.py │ ├── skipi.py │ ├── smart_eval.py │ ├── stepover.py │ ├── stub.py │ ├── theme.py │ ├── trace_run.py │ ├── version.py │ ├── vmmap.py │ ├── xfiles.py │ ├── xinfo.py │ └── xor_memory.py ├── config/ │ └── __init__.py ├── extended/ │ ├── archlinux.sh │ ├── debian.sh │ ├── fedora.sh │ └── run_pytest.sh ├── functions/ │ ├── __init__.py │ └── elf_sections.py ├── perf/ │ ├── __init__.py │ └── benchmark.py ├── pytest.ini ├── regressions/ │ ├── __init__.py │ ├── filename_collision_lookup.py │ ├── gdbserver_connection.py │ └── registers_register_order.py ├── requirements.txt ├── scripts/ │ ├── __init__.py │ └── test_gef.py └── utils.py ================================================ FILE CONTENTS ================================================ ================================================ FILE: .editorconfig ================================================ # https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties root = true [*] end_of_line = lf insert_final_newline = true charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true [*.py] indent_style = space indent_size = 4 [Makefile] indent_style = tab [*.yml] indent_style = space indent_size = 2 [*.md] max_line_length = 100 ================================================ FILE: .gitattributes ================================================ # https://help.github.com/articles/dealing-with-line-endings/ * text eol=lf *.png diff=none binary *.jpg diff=none binary *.jpeg diff=none binary *.gif diff=none binary *.svg diff=none binary *.webp diff=none binary ================================================ FILE: .github/CONTRIBUTING.md ================================================ ## Contributing to GEF ## License `gef` is placed under [MIT license](https://github.com/hugsy/gef/blob/main/LICENSE) which provides Open-Source access to the code and its use. By contributing to `gef` code through the _Pull Requests_ mechanism, you accept to release the code written by you under the said license. ## Submitting a Patch 1. Fork `gef` repository (requires GitHub account). Sending a patch from the `patch` or `git diff --patch` commands is not accepted. 1. All the packages required for testing and documenting are listed in `tests/requirements.txt` 1. Adjust your development environment to GEF's: this is achieved using [`pre-commit`](https://pre-commit.com/), and getting setup is simply done by 1. Installing `pre-commit` PIP package (part of the `requirements.txt` file) 1. Setup `pre-commit` : `pre-commit install` 1. Write the changes in your local repo making sure to respect the coding style (same indentation format, explicit names as possible), comment your code sufficiently so it becomes maintainable by someone other than you. Finally if you add a new feature/GDB command, also write the adequate documentation (in [`docs/`](docs/)) 1. Submit a pull request 1. The contributors will review your patch. If it is approved, the change will be merged via the GitHub, and you will be seen as contributors. If it needs additional work, the repo owner will respond with useful comments. ================================================ FILE: .github/FUNDING.yml ================================================ # These are supported funding model platforms github: [hugsy,] ================================================ FILE: .github/ISSUE_TEMPLATE/bug_report.yaml ================================================ name: Bug Report description: File a bug report. title: "[Bug] " labels: ["bug", "triage"] body: - type: markdown id: md_welcome attributes: value: | Complete this form is for reporting bugs in GEF. Incomplete/invalid report will simply being ignored or closed. Also note that this is not the place to ask installation or usage problem. Use the Discord channel for that. - type: textarea attributes: label: GEF+GDB version render: shell description: | The exact version of GEF and GDB. Copy/paste the output of the `version` command. validations: required: true - type: input id: os_info attributes: label: Operating System description: What OS are you using? Copy/paste the output of `lsb_release -a` or equivalent/ placeholder: "e.g., Arch Linux, FreeBSD" validations: required: false - type: textarea attributes: label: Describe the issue you encountered description: | Describe the issue in detail and what you were doing beforehand. validations: required: true - type: dropdown attributes: label: Do you read the docs and look at previously closed issues/PRs for similar cases? multiple: false options: - "No" - "Yes" validations: required: true - type: checkboxes attributes: label: Architecture impacted description: | On which architecture can you confirm this bug exist? options: - label: X86 - label: X64 - label: ARM - label: ARM64 - label: MIPS - label: MIPS64 - label: PPC - label: PPC64 - label: RISCV - type: textarea attributes: label: Describe your issue. Without a proper reproduction step-by-step, your issue will be ignored. value: | Provide a step-by-step to reproduce your issue. validations: required: true - type: textarea attributes: label: Minimalist test case value: | Use this field for a minimal code to compile and spot the issue: ```c // compile with gcc -fPIE -pic -o my_issue.out my_issue.c int main(){ return 0; } ``` You can also provide a Dockerfile if you prefer validations: required: false - type: textarea attributes: label: Additional context? description: | If a bug/crash is found, use `gef config gef.debug 1` to enable the debug mode and collect more information. You can copy/paste those information in the field. value: | - Screenshots - Callstack - Coredumps - If possible and useful, please upload the binary validations: required: false ================================================ FILE: .github/ISSUE_TEMPLATE/feature_request.yaml ================================================ name: Feature Request description: Use this form to suggest a feature you would like to see in GEF body: - type: markdown id: md_welcome attributes: value: | Had an idea of a new useful feature for GEF, but can't implement it? Here's your chance - type: dropdown attributes: label: Type of feature request description: Describe the category your feature request falls under options: - Additional API - New architecture support/Existing architecture improvement - Misc - type: input attributes: label: Misc description: "If \"Misc\" was selected above, describe the type" validations: required: false - type: textarea attributes: label: Summary Description description: | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] validations: required: true - type: textarea attributes: label: Implementation idea/suggestion description: | A clear and concise description of how you would like this problem be solved. validations: required: true - type: textarea attributes: label: Existing alternatives? description: | Describe alternatives already considered. validations: required: false - type: textarea attributes: label: Additional information description: | Add any other context or screenshots about the feature request here. validations: required: false ================================================ FILE: .github/PULL_REQUEST_TEMPLATE.md ================================================ ## Description - [ ] My code follows the code style of this project. - [ ] My change includes a change to the documentation, if required. - [ ] If my change adds new code, [adequate tests](docs/testing.md) have been added. - [ ] I have read and agree to the **CONTRIBUTING** document. ================================================ FILE: .github/stale.yml ================================================ # Number of days of inactivity before an issue becomes stale daysUntilStale: 60 # Number of days of inactivity before a stale issue is closed daysUntilClose: 30 # Issues with these labels will never be considered stale exemptLabels: - pinned - security # Label to use when marking an issue as stale staleLabel: stale # Comment to post when marking an issue as stale. Set to `false` to disable markComment: > This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. You can reopen it by adding a comment to this issue. # Comment to post when closing a stale issue. Set to `false` to disable closeComment: > This issue has been automatically closed because it has not had recent activity. If you are the owner of this issue, you can either re-open it and provide a more complete description; or create a new issue. Thank you for your contributions. # Set to true to ignore issues in a milestone (defaults to false) exemptMilestones: true # Set to true to ignore issues with an assignee (defaults to false) exemptAssignees: true ================================================ FILE: .github/tests/entrypoint.sh ================================================ #!/bin/sh set -x PY_VER=$(gdb -q -nx -ex "pi print('.'.join(map(str, sys.version_info[:2])))" -ex quit 2>/dev/null || echo "3") GEF_CI_NB_CPU=$(grep -c ^processor /proc/cpuinfo) # Setup GEF echo "source /gef/gef.py" > /root/.gdbinit # Verify GEF setup gdb -q -ex "gef missing" -ex "gef help" -ex "gef config" -ex start -ex continue -ex quit /bin/pwd # Build test binaries make -C tests/binaries -j ${GEF_CI_NB_CPU} # Run pytest python${PY_VER} -m pytest --forked -n ${GEF_CI_NB_CPU} -v -m "not benchmark" tests/ ================================================ FILE: .github/tests/run-tests.sh ================================================ #!/bin/sh [ -z "${1}" ] && echo "Provide a container tag as an argument to this script" && exit 1 docker run --privileged --rm -e GITHUB_ACTIONS -v "$PWD:/gef" gef-test:${1} ================================================ FILE: .github/tests/setup-dockerfile.sh ================================================ #!/bin/sh [ -z "${1}" ] && echo "Provide a container image as an argument to this script" && exit 1 echo "FROM ${1}" > Dockerfile cat >> Dockerfile << 'EOF' # Install dependencies for Ubuntu-based images RUN if [ -f /etc/debian_version ]; then \ export DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=n && \ apt-get update && \ apt-get install -y gdb-multiarch python3-dev python3-pip python3-wheel python3-setuptools \ git cmake gcc g++ pkg-config libglib2.0-dev gdbserver qemu-user file; \ fi # Install python3-full for Ubuntu 24.04 RUN if grep -q "24.04" /etc/os-release 2>/dev/null; then \ apt-get install -y python3-full; \ fi # Install dependencies for Fedora-based images RUN if [ -f /etc/fedora-release ]; then \ dnf install -y gdb gdb-gdbserver python3-devel python3-pip python3-wheel python3-setuptools python3-rpm \ git cmake gcc gcc-c++ pkg-config glib2-devel qemu-user qemu-user-static file procps-ng && \ dnf --enablerepo='*debug*' install -y glibc-debuginfo && \ dnf clean all; \ fi # Copy only requirements.txt for caching COPY tests/requirements.txt /tmp/requirements.txt # Install Python requirements RUN PY_VER=$(gdb -q -nx -ex "pi print('.'.join(map(str, sys.version_info[:2])))" -ex quit 2>/dev/null || echo "3") && \ if grep -q "24.04" /etc/os-release 2>/dev/null; then \ python${PY_VER} -m pip install --break-system-packages --upgrade -r /tmp/requirements.txt; \ else \ python${PY_VER} -m pip install --upgrade -r /tmp/requirements.txt; \ fi RUN git config --global --add safe.directory /gef WORKDIR /gef # Copy entrypoint script COPY .github/tests/entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"] EOF ================================================ FILE: .github/workflows/coverage.yml ================================================ name: Coverage on: pull_request_target: types: - opened - synchronize pull_request: types: - opened - synchronize jobs: coverage: env: PY_VER: '' runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v6.0.1 - name: Setup run: | export NEEDRESTART_MODE=n sudo apt-get update -qq sudo apt-get install -qq -y gdb-multiarch python3-dev python3-pip python3-wheel python3-setuptools git cmake gcc g++ pkg-config libglib2.0-dev gdbserver qemu-user curl sudo apt-get install -y python3-full - name: Run coverage id: get_coverage env: ALLOWED_MARGIN: 0.01 MIN_COVERAGE: 70 run: | echo PY_VER=`gdb -q -nx -ex "pi print('.'.join(map(str, sys.version_info[:2])))" -ex quit` >> $GITHUB_ENV echo GEF_CI_NB_CPU=`grep -c ^processor /proc/cpuinfo` >> $GITHUB_ENV echo GEF_CI_ARCH=`uname --processor` >> $GITHUB_ENV python${{ env.PY_VER }} -m pip install --user --upgrade -r tests/requirements.txt --quiet current_score=$(curl --silent https://hugsy.github.io/gef/coverage/gef_py.html | grep pc_cov | sed 's?.*\([^%]*\)%?\1?g') bash scripts/generate-coverage-docs.sh new_score=$(cat docs/coverage/gef_py.html | grep pc_cov | sed 's?.*\([^%]*\)%?\1?g') score_diff=$(python -c "print(f'{${new_score} - ${current_score}:.04f}')") echo "new_score=${new_score}" >> $GITHUB_OUTPUT echo "current_score=${current_score}" >> $GITHUB_OUTPUT echo "score_diff=${score_diff}" >> $GITHUB_OUTPUT - name: Post results uses: actions/github-script@v8.0.0 with: script: | const old_score = ${{ steps.get_coverage.outputs.current_score }}; const new_score = ${{ steps.get_coverage.outputs.new_score }}; const score_diff = ${{ steps.get_coverage.outputs.score_diff }}; const comment = `## 🤖 Coverage update for ${{ github.event.pull_request.head.sha }} ${(score_diff >= 0) ? "🟢" : "🔴"} | | Old | New | |--------|-----|-----| | Commit | ${{ github.event.pull_request.base.sha }} | ${{ github.event.pull_request.head.sha }} | | Score | ${old_score}% | ${new_score}% (${score_diff}) | `; try { const { owner, repo, number } = context.issue; await github.rest.issues.createComment({ owner, repo, issue_number: number, body: comment }); } catch (err) { console.log(err); } ================================================ FILE: .github/workflows/extended-tests.yml ================================================ name: Extended Tests on: workflow_dispatch: jobs: build: strategy: fail-fast: false matrix: variants: - { os: fedora, version: 41 } - { os: debian, version: bookworm } - { os: archlinux, version: base } name: "Tests on ${{ matrix.variants }}" runs-on: ubuntu-latest steps: - uses: actions/checkout@v6.0.1 - run: | docker run -v ${PWD}:/gef ${{ matrix.variants.os }}:${{ matrix.variants.version }} "bash /gef/tests/extended/${{ matrix.variants.os }}.sh" ================================================ FILE: .github/workflows/generate-docs.yml ================================================ name: Generate GithubPages on: workflow_dispatch: push: branches: - main jobs: deploy: runs-on: ubuntu-latest if: github.event.repository.fork == false steps: - uses: actions/checkout@v6.0.1 with: token: ${{ secrets.GITHUB_TOKEN }} - name: Install pre-requisite run: | sudo apt update sudo apt install gdb-multiarch python3 python3-dev python3-wheel python3-setuptools git cmake gcc g++ pkg-config libglib2.0-dev gdbserver qemu-user -y version=$(gdb -q -nx -ex 'pi print(f"{sys.version_info.major}.{sys.version_info.minor}", end="")' -ex quit) python${version} -m pip install --requirement docs/requirements.txt --upgrade python${version} -m pip install --requirement tests/requirements.txt --upgrade - name: Regenerate GEF API file run: | echo "source $(pwd)/gef.py" > ~/.gdbinit bash scripts/generate-api-docs.sh bash scripts/generate-settings-docs.sh bash scripts/generate-coverage-docs.sh - name: Build and publish the docs run: | git config --global user.name "hugsy" git config --global user.email "hugsy@users.noreply.github.com" mkdocs gh-deploy --force ================================================ FILE: .github/workflows/notify.yml ================================================ name: "Notifications" on: issues: types: - opened - reopened push: branches: - main pull_request: types: - opened - closed branches: - main env: DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} jobs: discord: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6.0.1 with: fetch-depth: 0 - name: Notify/Push if: github.event_name == 'push' && github.repository_owner == 'hugsy' uses: sarisia/actions-status-discord@v1.12 with: nodetail: true title: "[${{ github.repository }}] ${{ github.actor }} pushed to `${{ github.ref_name }}`" description: | **Commits**: ● ${{ join(github.event.commits.*.message, ' ● ') }} --- [Open Diff View](${{ github.event.compare }}) color: 0x00ff00 username: ${{ github.actor }} via GithubBot avatar_url: ${{ github.actor.avatar_url }} - name: Notify/Pull Request if: github.event_name == 'pull_request' uses: sarisia/actions-status-discord@v1.12 with: nodetail: true title: "[${{ github.repository }}] ${{ github.actor }} ${{ github.event.action }} PR #${{ github.event.pull_request.number }}" description: | **Title**: ${{ github.event.pull_request.title }} --- [Goto PR](${{ github.event.pull_request.html_url }}) color: 0x0000ff username: ${{ github.actor }} via GithubBot avatar_url: ${{ github.actor.avatar_url }} - name: Notify/Issue if: github.event_name == 'issues' && github.repository_owner == 'hugsy' uses: sarisia/actions-status-discord@v1.12 with: nodetail: true title: "[${{ github.repository }}] ${{ github.actor }} ${{ github.event.action}} issue #${{ github.event.issue.number }}" description: | **Title**: ${{ github.event.issue.title }} --- [Goto issue](${{ github.event.issue.html_url }}) color: 0xff0000 username: ${{ github.actor }} via GithubBot avatar_url: ${{ github.actor.avatar_url }} ================================================ FILE: .github/workflows/tests.yml ================================================ name: Tests env: GEF_CI_NB_CPU: 1 on: push: branches: - main pull_request: branches: - main jobs: build: strategy: fail-fast: false matrix: arch: [amd64, arm64] os: [ubuntu-24.04, ubuntu-22.04, fedora-42, fedora-43, fedora-rawhide] include: - os: ubuntu-24.04 base_image: ubuntu:24.04 - os: ubuntu-22.04 base_image: ubuntu:22.04 - os: fedora-42 base_image: fedora:42 - os: fedora-43 base_image: fedora:43 - os: fedora-rawhide base_image: fedora:rawhide name: "Run Unit tests on ${{ matrix.os }} (${{ matrix.arch }})" runs-on: ${{ matrix.arch == 'arm64' && 'ubuntu-24.04-arm' || 'ubuntu-latest' }} defaults: run: shell: bash steps: - uses: actions/checkout@v6.0.1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Create Dockerfile run: .github/tests/setup-dockerfile.sh ${{ matrix.base_image }} - name: Build container image uses: docker/build-push-action@v6 with: context: . push: false load: true tags: gef-test:${{ matrix.os }}-${{ matrix.arch }} cache-from: type=gha,scope=${{ matrix.os }}-${{ matrix.arch }} cache-to: type=gha,mode=max,scope=${{ matrix.os }}-${{ matrix.arch }} - name: Run tests in container run: .github/tests/run-tests.sh ${{ matrix.os }}-${{ matrix.arch }} ================================================ FILE: .github/workflows/validate.yml ================================================ name: Validation on: pull_request: branches: - main jobs: pre_commit: name: Check formatting runs-on: ubuntu-latest steps: - uses: actions/checkout@v6.0.1 - uses: actions/setup-python@v6.2.0 with: python-version: "3.10" - uses: pre-commit/action@v3.0.1 docs_link_check: name: Check URLs in docs runs-on: ubuntu-latest permissions: contents: read steps: - name: checkout uses: actions/checkout@v6.0.1 - name: Restore lychee cache id: restore-cache uses: actions/cache/restore@v4 with: path: .lycheecache key: cache-lychee-${{ github.sha }} restore-keys: cache-lychee- - name: Check links uses: lycheeverse/lychee-action@v2.7.0 env: GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} with: args: --exclude-mail --accept=401 --no-progress --exclude 'https://cs.github.com/hugsy/gef\?q=.*' '**/*.md' fail: false workingDirectory: docs/ - name: Save lychee cache uses: actions/cache/save@v4 if: always() with: path: .lycheecache key: ${{ steps.restore-cache.outputs.cache-primary-key }} ================================================ FILE: .gitignore ================================================ *.out *.pyc TAGS __pycache__ tests/*.pyc tests/pylint.html tests/pylint.txt tests/pylint3.html .vscode _build debug.log .pytest_cache .coverage htmlcov .benchmarks site/ untracked/ ================================================ FILE: .pre-commit-config.yaml ================================================ default_stages: [pre-commit, pre-push] fail_fast: false repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.4.0 hooks: - id: end-of-file-fixer - id: trailing-whitespace - repo: https://github.com/pycqa/pylint rev: v3.0.0a6 hooks: - id: pylint - repo: https://github.com/igorshubovych/markdownlint-cli rev: v0.35.0 hooks: - id: markdownlint-docker args: - --config=docs/.markdownlint.yaml - --ignore=docs/api/gef.md - --ignore=docs/obsolete/docs/index.md - --ignore=docs/index.md - --ignore=README.md - "docs/**/*.md" ================================================ FILE: .pylintrc ================================================ [MASTER] # A comma-separated list of package or module names from where C extensions may # be loaded. Extensions are loading into the active Python interpreter and may # run arbitrary code. extension-pkg-allow-list= # A comma-separated list of package or module names from where C extensions may # be loaded. Extensions are loading into the active Python interpreter and may # run arbitrary code. (This is an alternative name to extension-pkg-allow-list # for backward compatibility.) extension-pkg-whitelist= # Return non-zero exit code if any of these messages/categories are detected, # even if score is above --fail-under value. Syntax same as enable. Messages # specified are enabled, while categories only check already-enabled messages. fail-on= # Specify a score threshold to be exceeded before program exits with error. fail-under=10.0 # Files or directories to be skipped. They should be base names, not paths. ignore=CVS # Add files or directories matching the regex patterns to the ignore-list. The # regex matches against paths and can be in Posix or Windows format. ignore-paths= # Files or directories matching the regex patterns are skipped. The regex # matches against base names, not paths. ignore-patterns= # Python code to execute, usually for sys.path manipulation such as # pygtk.require(). #init-hook= # Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the # number of processors available to use. jobs=0 # Control the amount of potential inferred values when inferring a single # object. This can help the performance when dealing with large functions or # complex, nested conditions. limit-inference-results=100 # List of plugins (as comma separated values of python module names) to load, # usually to register additional checkers. load-plugins= # Pickle collected data for later comparisons. persistent=yes # Minimum Python version to use for version dependent checks. Will default to # the version used to run pylint. py-version=3.10 # When enabled, pylint would attempt to guess common misconfiguration and emit # user-friendly hints instead of false-positive error messages. suggestion-mode=yes # Allow loading of arbitrary C extensions. Extensions are imported into the # active Python interpreter and may run arbitrary code. unsafe-load-any-extension=no [MESSAGES CONTROL] # Only show warnings with the listed confidence levels. Leave empty to show # all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED. confidence= # Disable the message, report, category or checker with the given id(s). You # can either give multiple identifiers separated by comma (,) or put this # option multiple times (only on the command line, not in the configuration # file where it should appear only once). You can also use "--disable=all" to # disable everything first and then reenable specific checks. For example, if # you want to run only the similarities checker, you can use "--disable=all # --enable=similarities". If you want to run only the classes checker, but have # no Warning level messages displayed, use "--disable=all --enable=classes # --disable=W". ; disable=invalid-name, ; disallowed-name, ; empty-docstring, ; missing-module-docstring, ; missing-class-docstring, ; missing-function-docstring, ; unidiomatic-typecheck, ; non-ascii-name, ; consider-using-enumerate, ; consider-iterating-dictionary, ; bad-classmethod-argument, ; bad-mcs-method-argument, ; bad-mcs-classmethod-argument, ; single-string-used-for-slots, ; consider-using-dict-items, ; use-maxsplit-arg, ; use-sequence-for-iteration, ; too-many-lines, ; missing-final-newline, ; trailing-newlines, ; superfluous-parens, ; mixed-line-endings, ; unexpected-line-ending-format, ; wrong-spelling-in-comment, ; wrong-spelling-in-docstring, ; invalid-characters-in-docstring, ; multiple-imports, ; wrong-import-order, ; ungrouped-imports, ; wrong-import-position, ; useless-import-alias, ; import-outside-toplevel, ; use-implicit-booleaness-not-len, ; use-implicit-booleaness-not-comparison, ; raw-checker-failed, ; bad-inline-option, ; locally-disabled, ; file-ignored, ; suppressed-message, ; useless-suppression, ; deprecated-pragma, ; use-symbolic-message-instead, ; c-extension-no-member, ; literal-comparison, ; comparison-with-itself, ; no-self-use, ; no-classmethod-decorator, ; no-staticmethod-decorator, ; useless-object-inheritance, ; property-with-parameters, ; cyclic-import, ; consider-using-from-import, ; duplicate-code, ; too-many-ancestors, ; too-many-instance-attributes, ; too-few-public-methods, ; too-many-public-methods, ; too-many-return-statements, ; too-many-branches, ; too-many-arguments, ; too-many-locals, ; too-many-statements, ; too-many-boolean-expressions, ; consider-merging-isinstance, ; too-many-nested-blocks, ; simplifiable-if-statement, ; redefined-argument-from-local, ; no-else-return, ; consider-using-ternary, ; trailing-comma-tuple, ; stop-iteration-return, ; simplify-boolean-expression, ; inconsistent-return-statements, ; useless-return, ; consider-swap-variables, ; consider-using-join, ; consider-using-in, ; consider-using-get, ; chained-comparison, ; consider-using-dict-comprehension, ; consider-using-set-comprehension, ; simplifiable-if-expression, ; no-else-raise, ; unnecessary-comprehension, ; consider-using-sys-exit, ; no-else-break, ; no-else-continue, ; super-with-arguments, ; simplifiable-condition, ; condition-evals-to-constant, ; consider-using-generator, ; use-a-generator, ; consider-using-min-builtin, ; consider-using-max-builtin, ; consider-using-with, ; unnecessary-dict-index-lookup, ; use-list-literal, ; use-dict-literal, ; pointless-statement, ; pointless-string-statement, ; expression-not-assigned, ; unnecessary-pass, ; unnecessary-lambda, ; assign-to-new-keyword, ; useless-else-on-loop, ; exec-used, ; eval-used, ; confusing-with-statement, ; using-constant-test, ; missing-parentheses-for-call-in-test, ; self-assigning-variable, ; redeclared-assigned-name, ; assert-on-string-literal, ; comparison-with-callable, ; lost-exception, ; nan-comparison, ; assert-on-tuple, ; attribute-defined-outside-init, ; bad-staticmethod-argument, ; protected-access, ; arguments-differ, ; signature-differs, ; abstract-method, ; super-init-not-called, ; no-init, ; non-parent-init-called, ; useless-super-delegation, ; invalid-overridden-method, ; arguments-renamed, ; unused-private-member, ; overridden-final-method, ; subclassed-final-class, ; bad-indentation, ; wildcard-import, ; deprecated-module, ; reimported, ; import-self, ; preferred-module, ; misplaced-future, ; fixme, ; global-variable-undefined, ; global-statement, ; global-at-module-level, ; unused-argument, ; unused-wildcard-import, ; redefined-outer-name, ; redefined-builtin, ; undefined-loop-variable, ; unbalanced-tuple-unpacking, ; cell-var-from-loop, ; possibly-unused-variable, ; self-cls-assignment, ; bare-except, ; broad-except, ; duplicate-except, ; try-except-raise, ; raise-missing-from, ; raising-format-tuple, ; wrong-exception-operation, ; keyword-arg-before-vararg, ; arguments-out-of-order, ; non-str-assignment-to-dunder-name, ; isinstance-second-argument-not-valid-type, ; logging-not-lazy, ; logging-format-interpolation, ; logging-fstring-interpolation, ; bad-format-string-key, ; unused-format-string-key, ; missing-format-argument-key, ; unused-format-string-argument, ; format-combined-specification, ; missing-format-attribute, ; invalid-format-index, ; duplicate-string-formatting-argument, ; f-string-without-interpolation, ; useless-with-lock # Enable the message, report, category or checker with the given id(s). You can # either give multiple identifier separated by comma (,) or put this option # multiple time (only on the command line, not in the configuration file where # it should appear only once). See also the "--disable" option for examples. ; enable=unneeded-not, ; format-string-without-interpolation, ; anomalous-unicode-escape-in-string, ; implicit-str-concat, ; inconsistent-quotes, ; redundant-u-string-prefix, ; boolean-datetime, ; redundant-unittest-assert, ; deprecated-method, ; bad-thread-instantiation, ; shallow-copy-environ, ; invalid-envvar-default, ; subprocess-popen-preexec-fn, ; subprocess-run-check, ; deprecated-argument, ; deprecated-class, ; deprecated-decorator, ; unspecified-encoding, ; forgotten-debug-statement, ; using-f-string-in-unsupported-version, ; using-final-decorator-in-unsupported-version, ; singleton-comparison, ; consider-using-f-string, ; line-too-long, ; trailing-whitespace, ; multiple-statements, ; syntax-error, ; unrecognized-inline-option, ; bad-option-value, ; bad-plugin-value, ; bad-configuration-section, ; init-is-generator, ; return-in-init, ; function-redefined, ; not-in-loop, ; return-outside-function, ; yield-outside-function, ; return-arg-in-generator, ; nonexistent-operator, ; duplicate-argument-name, ; abstract-class-instantiated, ; bad-reversed-sequence, ; too-many-star-expressions, ; invalid-star-assignment-target, ; star-needs-assignment-target, ; nonlocal-and-global, ; continue-in-finally, ; nonlocal-without-binding, ; used-prior-global-declaration, ; misplaced-format-function, ; method-hidden, ; access-member-before-definition, ; no-method-argument, ; no-self-argument, ; invalid-slots-object, ; assigning-non-slot, ; invalid-slots, ; inherit-non-class, ; inconsistent-mro, ; duplicate-bases, ; class-variable-slots-conflict, ; invalid-class-object, ; non-iterator-returned, ; unexpected-special-method-signature, ; invalid-length-returned, ; invalid-bool-returned, ; invalid-index-returned, ; invalid-repr-returned, ; invalid-str-returned, ; invalid-bytes-returned, ; invalid-hash-returned, ; invalid-length-hint-returned, ; invalid-format-returned, ; invalid-getnewargs-returned, ; invalid-getnewargs-ex-returned, ; import-error, ; relative-beyond-top-level, ; used-before-assignment, ; undefined-variable, ; undefined-all-variable, ; invalid-all-object, ; invalid-all-format, ; no-name-in-module, ; unpacking-non-sequence, ; bad-except-order, ; raising-bad-type, ; bad-exception-context, ; misplaced-bare-raise, ; raising-non-exception, ; notimplemented-raised, ; catching-non-exception, ; bad-super-call, ; no-member, ; not-callable, ; assignment-from-no-return, ; no-value-for-parameter, ; too-many-function-args, ; unexpected-keyword-arg, ; redundant-keyword-arg, ; missing-kwoa, ; invalid-sequence-index, ; invalid-slice-index, ; assignment-from-none, ; not-context-manager, ; invalid-unary-operand-type, ; unsupported-binary-operation, ; repeated-keyword, ; not-an-iterable, ; not-a-mapping, ; unsupported-membership-test, ; unsubscriptable-object, ; unsupported-assignment-operation, ; unsupported-delete-operation, ; invalid-metaclass, ; unhashable-dict-key, ; dict-iter-missing-items, ; await-outside-async, ; logging-unsupported-format, ; logging-format-truncated, ; logging-too-many-args, ; logging-too-few-args, ; bad-format-character, ; truncated-format-string, ; mixed-format-string, ; format-needs-mapping, ; missing-format-string-key, ; too-many-format-args, ; too-few-format-args, ; bad-string-format-type, ; bad-str-strip-call, ; invalid-envvar-value, ; yield-inside-async-function, ; not-async-context-manager, ; fatal, ; astroid-error, ; parse-error, ; config-parse-error, ; method-check-failed, ; unreachable, ; dangerous-default-value, ; duplicate-key, ; unnecessary-semicolon, ; global-variable-not-assigned, ; unused-import, ; unused-variable, ; binary-op-exception, ; bad-format-string, ; anomalous-backslash-in-string, ; bad-open-mode enable = F, E, anomalous-backslash-in-string, bad-format-string, bad-open-mode, consider-using-f-string, dangerous-default-value, duplicate-key, global-variable-not-assigned line-too-long, singleton-comparison, trailing-whitespace, unnecessary-semicolon, unneeded-not, unreachable, unused-import, unused-variable, binary-op-exception disable = all [REPORTS] # Python expression which should return a score less than or equal to 10. You # have access to the variables 'error', 'warning', 'refactor', and 'convention' # which contain the number of messages in each category, as well as 'statement' # which is the total number of statements analyzed. This score is used by the # global evaluation report (RP0004). evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) # Template used to display messages. This is a python new-style format string # used to format the message information. See doc for all details. #msg-template= # Set the output format. Available formats are text, parseable, colorized, json # and msvs (visual studio). You can also give a reporter class, e.g. # mypackage.mymodule.MyReporterClass. output-format=text # Tells whether to display a full report or only the messages. reports=no # Activate the evaluation score. score=yes [REFACTORING] # Maximum number of nested blocks for function / method body max-nested-blocks=5 # Complete name of functions that never returns. When checking for # inconsistent-return-statements if a never returning function is called then # it will be considered as an explicit return statement and no message will be # printed. never-returning-functions=sys.exit,argparse.parse_error [FORMAT] # Expected format of line ending, e.g. empty (any line ending), LF or CRLF. expected-line-ending-format=LF # Regexp for a line that is allowed to be longer than the limit. ignore-long-lines=^\s*(# )??$ # Number of spaces of indent required inside a hanging or continued line. indent-after-paren=4 # String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 # tab). indent-string=' ' # Maximum number of characters on a single line. max-line-length=200 # Maximum number of lines in a module. max-module-lines=15000 # Allow the body of a class to be on the same line as the declaration if body # contains single statement. single-line-class-stmt=no # Allow the body of an if to be on the same line as the test if there is no # else. single-line-if-stmt=no [SPELLING] # Limits count of emitted suggestions for spelling mistakes. max-spelling-suggestions=4 # Spelling dictionary name. Available dictionaries: none. To make it work, # install the 'python-enchant' package. spelling-dict= # List of comma separated words that should be considered directives if they # appear and the beginning of a comment and should not be checked. spelling-ignore-comment-directives=fmt: on,fmt: off,noqa:,noqa,nosec,isort:skip,mypy: # List of comma separated words that should not be checked. spelling-ignore-words= # A path to a file that contains the private dictionary; one word per line. spelling-private-dict-file= # Tells whether to store unknown words to the private dictionary (see the # --spelling-private-dict-file option) instead of raising a message. spelling-store-unknown-words=no [LOGGING] # The type of string formatting that logging methods do. `old` means using % # formatting, `new` is for `{}` formatting. logging-format-style=old # Logging modules to check that the string format arguments are in logging # function parameter format. logging-modules=logging [VARIABLES] # List of additional names supposed to be defined in builtins. Remember that # you should avoid defining new builtins when possible. additional-builtins= # Tells whether unused global variables should be treated as a violation. allow-global-unused-variables=yes # List of names allowed to shadow builtins allowed-redefined-builtins= # List of strings which can identify a callback function by name. A callback # name must start or end with one of those strings. callbacks=cb_, _cb # A regular expression matching the name of dummy variables (i.e. expected to # not be used). dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_ # Argument names that match this expression will be ignored. Default to name # with leading underscore. ignored-argument-names=_.*|^ignored_|^unused_ # Tells whether we should check for unused import in __init__ files. init-import=no # List of qualified module names which can have objects that can redefine # builtins. redefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io [SIMILARITIES] # Comments are removed from the similarity computation ignore-comments=yes # Docstrings are removed from the similarity computation ignore-docstrings=yes # Imports are removed from the similarity computation ignore-imports=no # Signatures are removed from the similarity computation ignore-signatures=no # Minimum lines number of a similarity. min-similarity-lines=4 [MISCELLANEOUS] # List of note tags to take in consideration, separated by a comma. notes=FIXME, XXX, TODO # Regular expression of note tags to take in consideration. #notes-rgx= [BASIC] # Naming style matching correct argument names. argument-naming-style=snake_case # Regular expression matching correct argument names. Overrides argument- # naming-style. #argument-rgx= # Naming style matching correct attribute names. attr-naming-style=snake_case # Regular expression matching correct attribute names. Overrides attr-naming- # style. #attr-rgx= # Bad variable names which should always be refused, separated by a comma. bad-names=foo, bar, baz, toto, tutu, tata # Bad variable names regexes, separated by a comma. If names match any regex, # they will always be refused bad-names-rgxs= # Naming style matching correct class attribute names. class-attribute-naming-style=any # Regular expression matching correct class attribute names. Overrides class- # attribute-naming-style. #class-attribute-rgx= # Naming style matching correct class constant names. class-const-naming-style=UPPER_CASE # Regular expression matching correct class constant names. Overrides class- # const-naming-style. #class-const-rgx= # Naming style matching correct class names. class-naming-style=PascalCase # Regular expression matching correct class names. Overrides class-naming- # style. #class-rgx= # Naming style matching correct constant names. const-naming-style=UPPER_CASE # Regular expression matching correct constant names. Overrides const-naming- # style. #const-rgx= # Minimum line length for functions/classes that require docstrings, shorter # ones are exempt. docstring-min-length=-1 # Naming style matching correct function names. function-naming-style=snake_case # Regular expression matching correct function names. Overrides function- # naming-style. #function-rgx= # Good variable names which should always be accepted, separated by a comma. good-names=i, j, k, ex, Run, _ # Good variable names regexes, separated by a comma. If names match any regex, # they will always be accepted good-names-rgxs= # Include a hint for the correct naming format with invalid-name. include-naming-hint=no # Naming style matching correct inline iteration names. inlinevar-naming-style=any # Regular expression matching correct inline iteration names. Overrides # inlinevar-naming-style. #inlinevar-rgx= # Naming style matching correct method names. method-naming-style=snake_case # Regular expression matching correct method names. Overrides method-naming- # style. #method-rgx= # Naming style matching correct module names. module-naming-style=snake_case # Regular expression matching correct module names. Overrides module-naming- # style. #module-rgx= # Colon-delimited sets of names that determine each other's naming style when # the name regexes allow several styles. name-group= # Regular expression which should only match function or class names that do # not require a docstring. no-docstring-rgx=^_ # List of decorators that produce properties, such as abc.abstractproperty. Add # to this list to register other decorators that produce valid properties. # These decorators are taken in consideration only for invalid-name. property-classes=abc.abstractproperty # Naming style matching correct variable names. variable-naming-style=snake_case # Regular expression matching correct variable names. Overrides variable- # naming-style. #variable-rgx= [STRING] # This flag controls whether inconsistent-quotes generates a warning when the # character used as a quote delimiter is used inconsistently within a module. check-quote-consistency=no # This flag controls whether the implicit-str-concat should generate a warning # on implicit string concatenation in sequences defined over several lines. check-str-concat-over-line-jumps=no [TYPECHECK] # List of decorators that produce context managers, such as # contextlib.contextmanager. Add to this list to register other decorators that # produce valid context managers. contextmanager-decorators=contextlib.contextmanager # List of members which are set dynamically and missed by pylint inference # system, and so shouldn't trigger E1101 when accessed. Python regular # expressions are accepted. generated-members= # Tells whether missing members accessed in mixin class should be ignored. A # class is considered mixin if its name matches the mixin-class-rgx option. ignore-mixin-members=yes # Tells whether to warn about missing members when the owner of the attribute # is inferred to be None. ignore-none=yes # This flag controls whether pylint should warn about no-member and similar # checks whenever an opaque object is returned when inferring. The inference # can return multiple potential results while evaluating a Python object, but # some branches might not be evaluated, which results in partial inference. In # that case, it might be useful to still emit no-member and other checks for # the rest of the inferred objects. ignore-on-opaque-inference=yes # List of class names for which member attributes should not be checked (useful # for classes with dynamically set attributes). This supports the use of # qualified names. ignored-classes=optparse.Values,thread._local,_thread._local # List of module names for which member attributes should not be checked # (useful for modules/projects where namespaces are manipulated during runtime # and thus existing member attributes cannot be deduced by static analysis). It # supports qualified module names, as well as Unix pattern matching. ignored-modules= # Show a hint with possible names when a member name was not found. The aspect # of finding the hint is based on edit distance. missing-member-hint=yes # The minimum edit distance a name should have in order to be considered a # similar match for a missing member name. missing-member-hint-distance=1 # The total number of similar names that should be taken in consideration when # showing a hint for a missing member. missing-member-max-choices=1 # Regex pattern to define which classes are considered mixins ignore-mixin- # members is set to 'yes' mixin-class-rgx=.*[Mm]ixin # List of decorators that change the signature of a decorated function. signature-mutators= [IMPORTS] # List of modules that can be imported at any level, not just the top level # one. allow-any-import-level= # Allow wildcard imports from modules that define __all__. allow-wildcard-with-all=no # Analyse import fallback blocks. This can be used to support both Python 2 and # 3 compatible code, which means that the block might have code that exists # only in one or another interpreter, leading to false positives when analysed. analyse-fallback-blocks=no # Deprecated modules which should not be used, separated by a comma. deprecated-modules= # Output a graph (.gv or any supported image format) of external dependencies # to the given file (report RP0402 must not be disabled). ext-import-graph= # Output a graph (.gv or any supported image format) of all (i.e. internal and # external) dependencies to the given file (report RP0402 must not be # disabled). import-graph= # Output a graph (.gv or any supported image format) of internal dependencies # to the given file (report RP0402 must not be disabled). int-import-graph= # Force import order to recognize a module as part of the standard # compatibility libraries. known-standard-library= # Force import order to recognize a module as part of a third party library. known-third-party=enchant # Couples of modules and preferred modules, separated by a comma. preferred-modules= [DESIGN] # List of regular expressions of class ancestor names to ignore when counting # public methods (see R0903) exclude-too-few-public-methods= # List of qualified class names to ignore when counting class parents (see # R0901) ignored-parents= # Maximum number of arguments for function / method. max-args=5 # Maximum number of attributes for a class (see R0902). max-attributes=7 # Maximum number of boolean expressions in an if statement (see R0916). max-bool-expr=5 # Maximum number of branch for function / method body. max-branches=12 # Maximum number of locals for function / method body. max-locals=15 # Maximum number of parents for a class (see R0901). max-parents=7 # Maximum number of public methods for a class (see R0904). max-public-methods=20 # Maximum number of return / yield for function / method body. max-returns=6 # Maximum number of statements in function / method body. max-statements=50 # Minimum number of public methods for a class (see R0903). min-public-methods=2 [CLASSES] # Warn about protected attribute access inside special methods check-protected-access-in-special-methods=no # List of method names used to declare (i.e. assign) instance attributes. defining-attr-methods=__init__, __new__, setUp, __post_init__ # List of member names, which should be excluded from the protected access # warning. exclude-protected=_asdict, _fields, _replace, _source, _make # List of valid names for the first argument in a class method. valid-classmethod-first-arg=cls # List of valid names for the first argument in a metaclass class method. valid-metaclass-classmethod-first-arg=cls [EXCEPTIONS] # Exceptions that will emit a warning when being caught. Defaults to # "BaseException, Exception". overgeneral-exceptions=BaseException, Exception ================================================ FILE: .python-version ================================================ 3.10.14 ================================================ FILE: .readthedocs.yml ================================================ version: 2 mkdocs: configuration: docs/obsolete/mkdocs.yml fail_on_warning: false formats: all build: image: latest python: version: 3.7 install: - requirements: docs/obsolete/requirements.txt ================================================ FILE: LICENSE ================================================ The MIT License (MIT) Copyright (c) 2013-2025 crazy rabbidz 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. ================================================ FILE: README.md ================================================

logo

Discord Docs Try GEF

`GEF` (pronounced ʤɛf - "Jeff") is a set of commands for x86/64, ARM, MIPS, PowerPC and SPARC to assist exploit developers and reverse-engineers when using old school GDB. It provides additional features to GDB using the Python API to assist during the process of dynamic analysis and exploit development. Application developers will also benefit from it, as GEF lifts a great part of regular GDB obscurity, avoiding repeating traditional commands, or bringing out the relevant information from the debugging runtime. ## Instant Setup Simply make sure you have [GDB 10.0 or higher](https://www.gnu.org/s/gdb) compiled with Python3.10+ bindings, then: ```bash # via the install script ## using curl $ bash -c "$(curl -fsSL https://gef.blah.cat/sh)" ## using wget $ bash -c "$(wget https://gef.blah.cat/sh -O -)" # or manually $ wget -O ~/.gdbinit-gef.py -q https://gef.blah.cat/py $ echo source ~/.gdbinit-gef.py >> ~/.gdbinit # or alternatively from inside gdb directly $ gdb -q (gdb) pi import urllib.request as u, tempfile as t; g=t.NamedTemporaryFile(suffix='-gef.py'); open(g.name, 'wb+').write(u.urlopen('https://tinyurl.com/gef-main').read()); gdb.execute('source %s' % g.name) ``` You can immediately see that GEF is correctly installed by launching GDB: ![gef-context](docs/assets/images/gef-context.png) A few of `GEF` features include: * **One** single GDB script * Entirely **architecture agnostic**, **NO** dependencies: `GEF` is battery-included and [is installable instantly](https://hugsy.github.io/gef/#setup) * **Fast** limiting the number of dependencies and optimizing code to make the commands as fast as possible * Provides a great variety of commands to drastically change your experience in GDB. * [**Easily** extensible](https://hugsy.github.io/gef/api/) to create other commands by providing d more comprehensible layout to GDB Python API. * Full Python3 support ([Python2 support was dropped](https://github.com/hugsy/gef/releases/tag/2020.03) - see [`gef-legacy`](https://github.com/hugsy/gef-legacy)). * Built around an architecture abstraction layer, so all commands work in any GDB-supported architecture such as x86-32/64, ARMv5/6/7, AARCH64, SPARC, MIPS, PowerPC, etc. * Suited for real-life apps debugging, exploit development, just as much as CTF * And a lot more commands contributed by the community available on [GEF-Extras](https://github.com/hugsy/gef-extras) !! Check out the [Screenshot page](docs/screenshots.md) for more or [try it online](https://demo.gef.blah.cat) (user:`gef`/password:`gef-demo`) ## Documentation Unlike other GDB plugins, GEF has an extensive and up-to-date [documentation](https://hugsy.github.io/gef/). Users are recommended to refer to it as it may help them in their attempts to use GEF. In particular, new users should navigate through it (see the [FAQ](https://hugsy.github.io/gef/faq/) for common installation problems), and the problem persists, try to reach out for help on the Discord channel or submit an issue. ## Current status | Documentation | License | Compatibility | CI Tests (`main`) | | :--------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | | [![Documentation](https://github.com/hugsy/gef/actions/workflows/generate-docs.yml/badge.svg)](https://github.com/hugsy/gef/actions/workflows/generate-docs.yml) | [![MIT](https://img.shields.io/packagist/l/doctrine/orm.svg?maxAge=2592000?style=plastic)](https://github.com/hugsy/gef/blob/main/LICENSE) | [![Python 3](https://img.shields.io/badge/Python-3-green.svg)](https://github.com/hugsy/gef/) | [![CI Test for GEF](https://github.com/hugsy/gef/actions/workflows/tests.yml/badge.svg)](https://github.com/hugsy/gef/actions/workflows/tests.yml) | ## Contribute To get involved, refer to the [Contribution documentation](https://hugsy.github.io/gef/#contribution) and the [guidelines](https://github.com/hugsy/gef/blob/main/.github/CONTRIBUTING.md) to start. ## Sponsors Another way to contribute to keeping the project alive is by sponsoring it! Check out [the sponsoring documentation](https://hugsy.github.io/gef/#sponsors) for details so you can be part of the list of those [awesome sponsors](https://github.com/sponsors/hugsy). ## Happy Hacking 🍻 ================================================ FILE: docs/.markdownlint.yaml ================================================ # # Rules: https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md # # Default state for all rules default: true # Path to configuration file to extend extends: null # MD001/heading-increment/header-increment - Heading levels should only increment by one level at a time MD001: true # MD002/first-heading-h1/first-header-h1 - First heading should be a top-level heading MD002: # Heading level level: 2 # MD003/heading-style/header-style - Heading style MD003: # Heading style style: "consistent" # MD004/ul-style - Unordered list style MD004: # List style style: "consistent" # MD005/list-indent - Inconsistent indentation for list items at the same level MD005: true # MD006/ul-start-left - Consider starting bulleted lists at the beginning of the line MD006: true # MD007/ul-indent - Unordered list indentation MD007: # Spaces for indent indent: 2 # Whether to indent the first level of the list start_indented: false # Spaces for first level indent (when start_indented is set) start_indent: 2 # MD009/no-trailing-spaces - Trailing spaces MD009: # Spaces for line break br_spaces: 2 # Allow spaces for empty lines in list items list_item_empty_lines: false # Include unnecessary breaks strict: false # MD010/no-hard-tabs - Hard tabs MD010: # Include code blocks code_blocks: false # Fenced code languages to ignore ignore_code_languages: [] # Number of spaces for each hard tab spaces_per_tab: 4 # MD011/no-reversed-links - Reversed link syntax MD011: true # MD012/no-multiple-blanks - Multiple consecutive blank lines MD012: # Consecutive blank lines maximum: 2 # MD013/line-length - Line length MD013: # Number of characters line_length: 100 # Number of characters for headings heading_line_length: 100 # Number of characters for code blocks code_block_line_length: 100 # Include code blocks code_blocks: false # Include tables tables: false # Include headings headings: true # Include headings headers: true # Strict length checking strict: false # Stern length checking stern: false # MD014/commands-show-output - Dollar signs used before commands without showing output MD014: true # MD018/no-missing-space-atx - No space after hash on atx style heading MD018: true # MD019/no-multiple-space-atx - Multiple spaces after hash on atx style heading MD019: true # MD020/no-missing-space-closed-atx - No space inside hashes on closed atx style heading MD020: true # MD021/no-multiple-space-closed-atx - Multiple spaces inside hashes on closed atx style heading MD021: true # MD022/blanks-around-headings/blanks-around-headers - Headings should be surrounded by blank lines MD022: # Blank lines above heading lines_above: 1 # Blank lines below heading lines_below: 1 # MD023/heading-start-left/header-start-left - Headings must start at the beginning of the line MD023: true # MD024/no-duplicate-heading/no-duplicate-header - Multiple headings with the same content MD024: # Only check sibling headings allow_different_nesting: false # Only check sibling headings siblings_only: false # MD025/single-title/single-h1 - Multiple top-level headings in the same document MD025: # Heading level level: 1 # RegExp for matching title in front matter front_matter_title: "^\\s*title\\s*[:=]" # MD026/no-trailing-punctuation - Trailing punctuation in heading MD026: # Punctuation characters not allowed at end of headings punctuation: ".,;:!。,;:!" # MD027/no-multiple-space-blockquote - Multiple spaces after blockquote symbol MD027: true # MD028/no-blanks-blockquote - Blank line inside blockquote MD028: true # MD029/ol-prefix - Ordered list item prefix MD029: # List style style: "one_or_ordered" # MD030/list-marker-space - Spaces after list markers MD030: # Spaces for single-line unordered list items ul_single: 2 # Spaces for single-line ordered list items ol_single: 2 # Spaces for multi-line unordered list items ul_multi: 2 # Spaces for multi-line ordered list items ol_multi: 2 # MD031/blanks-around-fences - Fenced code blocks should be surrounded by blank lines MD031: # Include list items list_items: true # MD032/blanks-around-lists - Lists should be surrounded by blank lines MD032: true # MD033/no-inline-html - Inline HTML MD033: # Allowed elements allowed_elements: ["img"] # MD034/no-bare-urls - Bare URL used MD034: true # MD035/hr-style - Horizontal rule style MD035: # Horizontal rule style style: "consistent" # MD036/no-emphasis-as-heading/no-emphasis-as-header - Emphasis used instead of a heading MD036: # Punctuation characters punctuation: ".,;:!?。,;:!?" # MD037/no-space-in-emphasis - Spaces inside emphasis markers MD037: true # MD038/no-space-in-code - Spaces inside code span elements MD038: true # MD039/no-space-in-links - Spaces inside link text MD039: true # MD040/fenced-code-language - Fenced code blocks should have a language specified MD040: # List of languages allowed_languages: [] # Require language only language_only: false # MD041/first-line-heading/first-line-h1 - First line in a file should be a top-level heading MD041: # Heading level level: 2 # RegExp for matching title in front matter front_matter_title: "^\\s*title\\s*[:=]" # MD042/no-empty-links - No empty links MD042: true # MD043/required-headings/required-headers - Required heading structure MD043: false # MD044/proper-names - Proper names should have the correct capitalization MD044: # List of proper names names: [] # Include code blocks code_blocks: false # Include HTML elements html_elements: false # MD045/no-alt-text - Images should have alternate text (alt text) MD045: true # MD046/code-block-style - Code block style MD046: # Block style style: "consistent" # MD047/single-trailing-newline - Files should end with a single newline character MD047: true # MD048/code-fence-style - Code fence style MD048: # Code fence style style: "consistent" # MD049/emphasis-style - Emphasis style should be consistent MD049: # Emphasis style should be consistent style: "consistent" # MD050/strong-style - Strong style should be consistent MD050: # Strong style should be consistent style: "consistent" # MD051/link-fragments - Link fragments should be valid MD051: true # MD052/reference-links-images - Reference links and images should use a label that is defined MD052: true # MD053/link-image-reference-definitions - Link and image reference definitions should be needed MD053: # Ignored definitions ignored_definitions: - "//" ================================================ FILE: docs/api/gef.md ================================================ # module `GEF` **Global Variables** --------------- - **GEF_DEFAULT_BRANCH** - **GEF_EXTRAS_DEFAULT_BRANCH** - **GDB_MIN_VERSION** - **GDB_VERSION** - **PYTHON_MIN_VERSION** - **PYTHON_VERSION** - **DEFAULT_PAGE_ALIGN_SHIFT** - **DEFAULT_PAGE_SIZE** - **GEF_TEMP_DIR** - **GEF_MAX_STRING_LENGTH** - **LIBC_HEAP_MAIN_ARENA_DEFAULT_NAME** - **ANSI_SPLIT_RE** - **LEFT_ARROW** - **RIGHT_ARROW** - **DOWN_ARROW** - **HORIZONTAL_LINE** - **VERTICAL_LINE** - **CROSS** - **TICK** - **BP_GLYPH** - **GEF_PROMPT** - **GEF_PROMPT_ON** - **GEF_PROMPT_OFF** - **PREFIX** - **gdb_initial_settings** - **cmd** - **gef** - **errmsg** --- ## function `http_get` ```python http_get(url: str) → Optional[bytes] ``` Basic HTTP wrapper for GET request. Return the body of the page if HTTP code is OK, otherwise return None. --- ## function `update_gef` ```python update_gef(argv: List[str]) → int ``` Try to update `gef` to the latest version pushed on GitHub main branch. Return 0 on success, 1 on failure. --- ## function `reset_all_caches` ```python reset_all_caches() → None ``` Free all caches. If an object is cached, it will have a callable attribute `cache_clear` which will be invoked to purge the function cache. --- ## function `reset` ```python reset() → None ``` --- ## function `highlight_text` ```python highlight_text(text: str) → str ``` Highlight text using `gef.ui.highlight_table` { match -> color } settings. If RegEx is enabled it will create a match group around all items in the `gef.ui.highlight_table` and wrap the specified color in the `gef.ui.highlight_table` around those matches. If RegEx is disabled, split by ANSI codes and 'colorify' each match found within the specified string. --- ## function `gef_print` ```python gef_print(*args: str, end='\n', sep=' ', **kwargs: Any) → None ``` Wrapper around print(), using string buffering feature. --- ## function `bufferize` ```python bufferize(f: Callable) → Callable ``` Store the content to be printed for a function in memory, and flush it on function exit. --- ## function `p8` ```python p8( x: int, s: bool = False, e: Optional[ForwardRef('Endianness')] = None ) → bytes ``` Pack one byte respecting the current architecture endianness. --- ## function `p16` ```python p16( x: int, s: bool = False, e: Optional[ForwardRef('Endianness')] = None ) → bytes ``` Pack one word respecting the current architecture endianness. --- ## function `p32` ```python p32( x: int, s: bool = False, e: Optional[ForwardRef('Endianness')] = None ) → bytes ``` Pack one dword respecting the current architecture endianness. --- ## function `p64` ```python p64( x: int, s: bool = False, e: Optional[ForwardRef('Endianness')] = None ) → bytes ``` Pack one qword respecting the current architecture endianness. --- ## function `u8` ```python u8( x: bytes, s: bool = False, e: Optional[ForwardRef('Endianness')] = None ) → int ``` Unpack one byte respecting the current architecture endianness. --- ## function `u16` ```python u16( x: bytes, s: bool = False, e: Optional[ForwardRef('Endianness')] = None ) → int ``` Unpack one word respecting the current architecture endianness. --- ## function `u32` ```python u32( x: bytes, s: bool = False, e: Optional[ForwardRef('Endianness')] = None ) → int ``` Unpack one dword respecting the current architecture endianness. --- ## function `u64` ```python u64( x: bytes, s: bool = False, e: Optional[ForwardRef('Endianness')] = None ) → int ``` Unpack one qword respecting the current architecture endianness. --- ## function `is_ascii_string` ```python is_ascii_string(address: int) → bool ``` Helper function to determine if the buffer pointed by `address` is an ASCII string (in GDB) --- ## function `is_alive` ```python is_alive() → bool ``` Check if GDB is running. --- ## function `calling_function` ```python calling_function() → Optional[str] ``` Return the name of the calling function --- ## function `only_if_gdb_running` ```python only_if_gdb_running(f: Callable) → Callable ``` Decorator wrapper to check if GDB is running. --- ## function `only_if_gdb_target_local` ```python only_if_gdb_target_local(f: Callable) → Callable ``` Decorator wrapper to check if GDB is running locally (target not remote). --- ## function `deprecated` ```python deprecated(solution: str = '') → Callable ``` Decorator to add a warning when a command is obsolete and will be removed. --- ## function `experimental_feature` ```python experimental_feature(f: Callable) → Callable ``` Decorator to add a warning when a feature is experimental. --- ## function `only_if_events_supported` ```python only_if_events_supported(event_type: str) → Callable ``` Checks if GDB supports events without crashing. --- ## function `wrapped_f` ```python wrapped_f(*args: Any, **kwargs: Any) → Any ``` --- ## function `wrapped_f` ```python wrapped_f(*args: Any, **kwargs: Any) → Any ``` --- ## function `wrapped_f` ```python wrapped_f(*args: Any, **kwargs: Any) → Any ``` --- ## function `wrapped_f` ```python wrapped_f(*args: Any, **kwargs: Any) → Any ``` --- ## function `wrapped_f` ```python wrapped_f(*args: Any, **kwargs: Any) → Any ``` --- ## function `wrapped_f` ```python wrapped_f(*args: Any, **kwargs: Any) → Any ``` --- ## function `wrapped_f` ```python wrapped_f(*args: Any, **kwargs: Any) → Any ``` --- ## function `wrapped_f` ```python wrapped_f(*args: Any, **kwargs: Any) → Any ``` --- ## function `wrapped_f` ```python wrapped_f(*args: Any, **kwargs: Any) → Any ``` --- ## function `wrapped_f` ```python wrapped_f(*args: Any, **kwargs: Any) → Any ``` --- ## function `wrapped_f` ```python wrapped_f(*args: Any, **kwargs: Any) → Any ``` --- ## function `wrapped_f` ```python wrapped_f(*args: Any, **kwargs: Any) → Any ``` --- ## function `wrapped_f` ```python wrapped_f(*args: Any, **kwargs: Any) → Any ``` --- ## function `wrapped_f` ```python wrapped_f(*args: Any, **kwargs: Any) → Any ``` --- ## function `FakeExit` ```python FakeExit(*args: Any, **kwargs: Any) → NoReturn ``` --- ## function `parse_arguments` ```python parse_arguments( required_arguments: Dict[Union[str, Tuple[str, str]], Any], optional_arguments: Dict[Union[str, Tuple[str, str]], Any] ) → Callable ``` Argument parsing decorator. --- ## function `search_for_main_arena` ```python search_for_main_arena() → int ``` `search_for_main_arena` is **DEPRECATED** and will be removed in the future. Use GefHeapManager.find_main_arena_addr() --- ## function `get_libc_version` ```python get_libc_version() → Tuple[int, ...] ``` `get_libc_version` is **DEPRECATED** and will be removed in the future. Use GefLibcManager.find_libc_version() --- ## function `titlify` ```python titlify( text: str, color: Optional[str] = None, msg_color: Optional[str] = None ) → str ``` Print a centered title. --- ## function `dbg` ```python dbg(msg: str) → None ``` --- ## function `err` ```python err(msg: str) → None ``` --- ## function `warn` ```python warn(msg: str) → None ``` --- ## function `ok` ```python ok(msg: str) → None ``` --- ## function `info` ```python info(msg: str) → None ``` --- ## function `push_context_message` ```python push_context_message(level: str, message: str) → None ``` Push the message to be displayed the next time the context is invoked. --- ## function `show_last_exception` ```python show_last_exception() → None ``` Display the last Python exception. --- ## function `gef_pystring` ```python gef_pystring(x: bytes) → str ``` Returns a sanitized version as string of the bytes list given in input. --- ## function `gef_pybytes` ```python gef_pybytes(x: str) → bytes ``` Returns an immutable bytes list from the string given as input. --- ## function `style_byte` ```python style_byte(b: int, color: bool = True) → str ``` --- ## function `hexdump` ```python hexdump( source: ByteString, length: int = 16, separator: str = '.', show_raw: bool = False, show_symbol: bool = True, base: int = 0 ) → str ``` Return the hexdump of `src` argument. @param source *MUST* be of type bytes or bytearray @param length is the length of items per line @param separator is the default character to use if one byte is not printable @param show_raw if True, do not add the line nor the text translation @param base is the start address of the block being hexdump @return a string with the hexdump --- ## function `is_debug` ```python is_debug() → bool ``` Check if debug mode is enabled. --- ## function `buffer_output` ```python buffer_output() → bool ``` Check if output should be buffered until command completion. --- ## function `hide_context` ```python hide_context() → bool ``` Helper function to hide the context pane. --- ## function `unhide_context` ```python unhide_context() → bool ``` Helper function to unhide the context pane. --- ## function `enable_redirect_output` ```python enable_redirect_output(to_file: str = '/dev/null') → None ``` Redirect all GDB output to `to_file` parameter. By default, `to_file` redirects to `/dev/null`. --- ## function `disable_redirect_output` ```python disable_redirect_output() → None ``` Disable the output redirection, if any. --- ## function `gef_makedirs` ```python gef_makedirs(path: str, mode: int = 493) → Path ``` Recursive mkdir() creation. If successful, return the absolute path of the directory created. --- ## function `gdb_disassemble` ```python gdb_disassemble( start_pc: int, **kwargs: int ) → Generator[__main__.Instruction, NoneType, NoneType] ``` Disassemble instructions from `start_pc` (Integer). Accepts the following named **parameters:** - `end_pc` (Integer) only instructions whose start address fall in the interval from start_pc to end_pc are returned. - `count` (Integer) list at most this many disassembled instructions If `end_pc` and `count` are not provided, the function will behave as if `count=1`. Return an iterator of Instruction objects --- ## function `gdb_get_nth_previous_instruction_address` ```python gdb_get_nth_previous_instruction_address(addr: int, n: int) → Optional[int] ``` Return the address (Integer) of the `n`-th instruction before `addr`. --- ## function `gdb_get_nth_next_instruction_address` ```python gdb_get_nth_next_instruction_address(addr: int, n: int) → int ``` Return the address (Integer) of the `n`-th instruction after `addr`. --- ## function `gef_instruction_n` ```python gef_instruction_n(addr: int, n: int) → Instruction ``` Return the `n`-th instruction after `addr` as an Instruction object. --- ## function `gef_get_instruction_at` ```python gef_get_instruction_at(addr: int) → Instruction ``` Return the full Instruction found at the specified address. --- ## function `gef_current_instruction` ```python gef_current_instruction(addr: int) → Instruction ``` Return the current instruction as an Instruction object. --- ## function `gef_next_instruction` ```python gef_next_instruction(addr: int) → Instruction ``` Return the next instruction as an Instruction object. --- ## function `gef_disassemble` ```python gef_disassemble( addr: int, nb_insn: int, nb_prev: int = 0 ) → Generator[__main__.Instruction, NoneType, NoneType] ``` Disassemble `nb_insn` instructions after `addr` and `nb_prev` before `addr`. Return an iterator of Instruction objects. --- ## function `gef_execute_external` ```python gef_execute_external( command: Sequence[str], as_list: bool = False, **kwargs: Any ) → Union[str, List[str]] ``` Execute an external command and return the result. --- ## function `gef_execute_gdb_script` ```python gef_execute_gdb_script(commands: str) → None ``` Execute the parameter `source` as GDB command. This is done by writing `commands` to a temporary file, which is then executed via GDB `source` command. The tempfile is then deleted. --- ## function `checksec` ```python checksec(filename: str) → Dict[str, bool] ``` `checksec` is **DEPRECATED** and will be removed in the future. Use Elf(fname).checksec() --- ## function `get_entry_point` ```python get_entry_point() → Optional[int] ``` Return the binary entry point. `get_entry_point` is **DEPRECATED** and will be removed in the future. Use `gef.binary.entry_point` instead --- ## function `is_pie` ```python is_pie(fpath: str) → bool ``` --- ## function `is_big_endian` ```python is_big_endian() → bool ``` `is_big_endian` is **DEPRECATED** and will be removed in the future. Prefer `gef.arch.endianness == Endianness.BIG_ENDIAN` --- ## function `is_little_endian` ```python is_little_endian() → bool ``` `is_little_endian` is **DEPRECATED** and will be removed in the future. gef.arch.endianness == Endianness.LITTLE_ENDIAN --- ## function `flags_to_human` ```python flags_to_human(reg_value: int, value_table: Dict[int, str]) → str ``` Return a human readable string showing the flag states. --- ## function `register_architecture` ```python register_architecture( cls: Type[ForwardRef('Architecture')] ) → Type[ForwardRef('Architecture')] ``` `register_architecture` is **DEPRECATED** and will be removed in the future. Using the decorator `register_architecture` is unnecessary --- ## function `copy_to_clipboard` ```python copy_to_clipboard(data: bytes) → None ``` Helper function to submit data to the clipboard --- ## function `use_stdtype` ```python use_stdtype() → str ``` --- ## function `use_default_type` ```python use_default_type() → str ``` --- ## function `use_golang_type` ```python use_golang_type() → str ``` --- ## function `use_rust_type` ```python use_rust_type() → str ``` --- ## function `to_unsigned_long` ```python to_unsigned_long(v: gdb.Value) → int ``` Cast a gdb.Value to unsigned long. --- ## function `get_path_from_info_proc` ```python get_path_from_info_proc() → Optional[str] ``` --- ## function `get_os` ```python get_os() → str ``` `get_os` is **DEPRECATED** and will be removed in the future. Use `gef.session.os` --- ## function `get_filepath` ```python get_filepath() → Optional[str] ``` Return the local absolute path of the file currently debugged. --- ## function `get_function_length` ```python get_function_length(sym: str) → int ``` Attempt to get the length of the raw bytes of a function. --- ## function `process_lookup_address` ```python process_lookup_address(address: int) → Optional[__main__.Section] ``` Look up for an address in memory. Return an Address object if found, None otherwise. --- ## function `xor` ```python xor(data: ByteString, key: str) → bytearray ``` Return `data` xor-ed with `key`. --- ## function `is_hex` ```python is_hex(pattern: str) → bool ``` Return whether provided string is a hexadecimal value. --- ## function `continue_handler` ```python continue_handler(_: 'gdb.Event') → None ``` GDB event handler for new object continue cases. --- ## function `hook_stop_handler` ```python hook_stop_handler(_: 'gdb.StopEvent') → None ``` GDB event handler for stop cases. --- ## function `new_objfile_handler` ```python new_objfile_handler(evt: Optional[ForwardRef('gdb.NewObjFileEvent')]) → None ``` GDB event handler for new object file cases. --- ## function `exit_handler` ```python exit_handler(_: 'gdb.ExitedEvent') → None ``` GDB event handler for exit cases. --- ## function `memchanged_handler` ```python memchanged_handler(_: 'gdb.MemoryChangedEvent') → None ``` GDB event handler for mem changes cases. --- ## function `regchanged_handler` ```python regchanged_handler(_: 'gdb.RegisterChangedEvent') → None ``` GDB event handler for reg changes cases. --- ## function `get_terminal_size` ```python get_terminal_size() → Tuple[int, int] ``` Return the current terminal size. --- ## function `reset_architecture` ```python reset_architecture(arch: Optional[str] = None) → None ``` Sets the current architecture. If an architecture is explicitly specified by parameter, try to use that one. If this fails, an `OSError` exception will occur. If no architecture is specified, then GEF will attempt to determine automatically based on the current ELF target. If this fails, an `OSError` exception will occur. --- ## function `get_memory_alignment` ```python get_memory_alignment(in_bits: bool = False) → int ``` Try to determine the size of a pointer on this system. First, try to parse it out of the ELF header. Next, use the size of `size_t`. Finally, try the size of $pc. If `in_bits` is set to True, the result is returned in bits, otherwise in bytes. `get_memory_alignment` is **DEPRECATED** and will be removed in the future. Use `gef.arch.ptrsize` instead --- ## function `clear_screen` ```python clear_screen(tty: str = '') → None ``` Clear the screen. --- ## function `format_address` ```python format_address(addr: int) → str ``` Format the address according to its size. --- ## function `format_address_spaces` ```python format_address_spaces(addr: int, left: bool = True) → str ``` Format the address according to its size, but with spaces instead of zeroes. --- ## function `align_address` ```python align_address(address: int) → int ``` Align the provided address to the process's native length. --- ## function `align_address_to_size` ```python align_address_to_size(address: int, align: int) → int ``` Align the address to the given size. --- ## function `align_address_to_page` ```python align_address_to_page(address: int) → int ``` Align the address to a page. --- ## function `parse_address` ```python parse_address(address: str) → int ``` Parse an address and return it as an Integer. --- ## function `is_in_x86_kernel` ```python is_in_x86_kernel(address: int) → bool ``` --- ## function `is_remote_debug` ```python is_remote_debug() → bool ``` "Return True is the current debugging session is running through GDB remote session. --- ## function `de_bruijn` ```python de_bruijn(alphabet: bytes, n: int) → Generator[str, NoneType, NoneType] ``` De Bruijn sequence for alphabet and subsequences of length n (for compat. w/ pwnlib). --- ## function `generate_cyclic_pattern` ```python generate_cyclic_pattern(length: int, cycle: int = 4) → bytearray ``` Create a `length` byte bytearray of a de Bruijn cyclic pattern. --- ## function `safe_parse_and_eval` ```python safe_parse_and_eval(value: str) → Optional[ForwardRef('gdb.Value')] ``` GEF wrapper for gdb.parse_and_eval(): this function returns None instead of raising gdb.error if the eval failed. --- ## function `gef_convenience` ```python gef_convenience(value: Union[str, bytes]) → str ``` Defines a new convenience value. --- ## function `parse_string_range` ```python parse_string_range(s: str) → Iterator[int] ``` Parses an address range (e.g. 0x400000-0x401000) --- ## function `gef_get_pie_breakpoint` ```python gef_get_pie_breakpoint(num: int) → PieVirtualBreakpoint ``` `gef_get_pie_breakpoint` is **DEPRECATED** and will be removed in the future. Use `gef.session.pie_breakpoints[num]` --- ## function `endian_str` ```python endian_str() → str ``` `endian_str` is **DEPRECATED** and will be removed in the future. Use `str(gef.arch.endianness)` instead --- ## function `get_gef_setting` ```python get_gef_setting(name: str) → Any ``` `get_gef_setting` is **DEPRECATED** and will be removed in the future. Use `gef.config[key]` --- ## function `set_gef_setting` ```python set_gef_setting(name: str, value: Any) → None ``` `set_gef_setting` is **DEPRECATED** and will be removed in the future. Use `gef.config[key] = value` --- ## function `gef_getpagesize` ```python gef_getpagesize() → int ``` `gef_getpagesize` is **DEPRECATED** and will be removed in the future. Use `gef.session.pagesize` --- ## function `gef_read_canary` ```python gef_read_canary() → Optional[Tuple[int, int]] ``` `gef_read_canary` is **DEPRECATED** and will be removed in the future. Use `gef.session.canary` --- ## function `get_pid` ```python get_pid() → int ``` `get_pid` is **DEPRECATED** and will be removed in the future. Use `gef.session.pid` --- ## function `get_filename` ```python get_filename() → str ``` `get_filename` is **DEPRECATED** and will be removed in the future. Use `gef.session.file.name` --- ## function `get_glibc_arena` ```python get_glibc_arena() → Optional[__main__.GlibcArena] ``` `get_glibc_arena` is **DEPRECATED** and will be removed in the future. Use `gef.heap.main_arena` --- ## function `get_register` ```python get_register(regname) → Optional[int] ``` `get_register` is **DEPRECATED** and will be removed in the future. Use `gef.arch.register(regname)` --- ## function `get_process_maps` ```python get_process_maps() → List[__main__.Section] ``` `get_process_maps` is **DEPRECATED** and will be removed in the future. Use `gef.memory.maps` --- ## function `set_arch` ```python set_arch(arch: Optional[str] = None, _: Optional[str] = None) → None ``` `set_arch` is **DEPRECATED** and will be removed in the future. Use `reset_architecture` --- ## function `register_external_context_pane` ```python register_external_context_pane( pane_name: str, display_pane_function: Callable[[], NoneType], pane_title_function: Callable[[], Optional[str]], condition: Optional[Callable[[], bool]] = None ) → None ``` Registering function for new GEF Context View. pane_name: a string that has no spaces (used in settings) display_pane_function: a function that uses gef_print() to print strings pane_title_function: a function that returns a string or None, which will be displayed as the title. If None, no title line is displayed. condition: an optional callback: if not None, the callback will be executed first. If it returns true, then only the pane title and content will displayed. Otherwise, it's simply skipped. Example usage for a simple text to show when we hit a syscall: def only_syscall(): return gef_current_instruction(gef.arch.pc).is_syscall() def display_pane(): gef_print("Wow, I am a context pane!") def pane_title(): return "example:pane" register_external_context_pane("example_pane", display_pane, pane_title, only_syscall) --- ## function `register_external_command` ```python register_external_command( cls: Type[ForwardRef('GenericCommand')] ) → Type[ForwardRef('GenericCommand')] ``` Registering function for new GEF (sub-)command to GDB. `register_external_command` is **DEPRECATED** and will be removed in the future. Use `register()`, and inherit from `GenericCommand` instead --- ## function `register_command` ```python register_command( cls: Type[ForwardRef('GenericCommand')] ) → Type[ForwardRef('GenericCommand')] ``` Decorator for registering new GEF (sub-)command to GDB. `register_command` is **DEPRECATED** and will be removed in the future. Use `register()`, and inherit from `GenericCommand` instead --- ## function `register_priority_command` ```python register_priority_command( cls: Type[ForwardRef('GenericCommand')] ) → Type[ForwardRef('GenericCommand')] ``` Decorator for registering new command with priority, meaning that it must loaded before the other generic commands. `register_priority_command` is **DEPRECATED** and will be removed in the future. --- ## function `register` ```python register( cls: Union[Type[ForwardRef('GenericCommand')], Type[ForwardRef('GenericFunction')]] ) → Union[Type[ForwardRef('GenericCommand')], Type[ForwardRef('GenericFunction')]] ``` --- ## function `register_function` ```python register_function( cls: Type[ForwardRef('GenericFunction')] ) → Type[ForwardRef('GenericFunction')] ``` Decorator for registering a new convenience function to GDB. `register_function` is **DEPRECATED** and will be removed in the future. --- ## class `AARCH64` --- #### property AARCH64.cpsr --- #### property AARCH64.endianness --- #### property AARCH64.fp --- #### property AARCH64.instruction_length --- #### property AARCH64.pc --- #### property AARCH64.ptrsize Determine the size of pointer from the current CPU mode --- #### property AARCH64.registers --- #### property AARCH64.sp --- ## function `AARCH64.canary_address` ```python canary_address() → int ``` --- ## function `AARCH64.flag_register_to_human` ```python flag_register_to_human(val: Optional[int] = None) → str ``` --- ## function `AARCH64.get_ith_parameter` ```python get_ith_parameter(i: int, in_func: bool = True) → Tuple[str, Optional[int]] ``` Retrieves the correct parameter used for the current function call. --- ## function `AARCH64.get_ra` ```python get_ra(insn: __main__.Instruction, frame: 'gdb.Frame') → int ``` --- ## function `AARCH64.is_aarch32` ```python is_aarch32() → bool ``` Determine if the CPU is currently in AARCH32 mode from runtime. --- ## function `AARCH64.is_branch_taken` ```python is_branch_taken(insn: __main__.Instruction) → Tuple[bool, str] ``` --- ## function `AARCH64.is_call` ```python is_call(insn: __main__.Instruction) → bool ``` --- ## function `AARCH64.is_conditional_branch` ```python is_conditional_branch(insn: __main__.Instruction) → bool ``` --- ## function `AARCH64.is_ret` ```python is_ret(insn: __main__.Instruction) → bool ``` --- ## function `AARCH64.is_thumb` ```python is_thumb() → bool ``` Determine if the machine is currently in THUMB mode. --- ## function `AARCH64.is_thumb32` ```python is_thumb32() → bool ``` Determine if the CPU is currently in THUMB32 mode from runtime. --- ## function `AARCH64.mprotect_asm` ```python mprotect_asm(addr: int, size: int, perm: __main__.Permission) → str ``` --- ## function `AARCH64.register` ```python register(name: str) → int ``` --- ## function `AARCH64.reset_caches` ```python reset_caches() → None ``` --- ## function `AARCH64.supports_gdb_arch` ```python supports_gdb_arch(gdb_arch: str) → Optional[bool] ``` If implemented by a child `Architecture`, this function dictates if the current class supports the loaded ELF file (which can be accessed via `gef.binary`). This callback function will override any assumption made by GEF to determine the architecture. --- ## class `ARM` --- #### property ARM.cpsr --- #### property ARM.endianness --- #### property ARM.fp --- #### property ARM.instruction_length --- #### property ARM.mode --- #### property ARM.pc --- #### property ARM.ptrsize --- #### property ARM.registers --- #### property ARM.sp --- ## function `ARM.canary_address` ```python canary_address() → int ``` --- ## function `ARM.flag_register_to_human` ```python flag_register_to_human(val: Optional[int] = None) → str ``` --- ## function `ARM.get_ith_parameter` ```python get_ith_parameter(i: int, in_func: bool = True) → Tuple[str, Optional[int]] ``` Retrieves the correct parameter used for the current function call. --- ## function `ARM.get_ra` ```python get_ra(insn: __main__.Instruction, frame: 'gdb.Frame') → int ``` --- ## function `ARM.is_branch_taken` ```python is_branch_taken(insn: __main__.Instruction) → Tuple[bool, str] ``` --- ## function `ARM.is_call` ```python is_call(insn: __main__.Instruction) → bool ``` --- ## function `ARM.is_conditional_branch` ```python is_conditional_branch(insn: __main__.Instruction) → bool ``` --- ## function `ARM.is_ret` ```python is_ret(insn: __main__.Instruction) → bool ``` --- ## function `ARM.is_thumb` ```python is_thumb() → bool ``` Determine if the machine is currently in THUMB mode. --- ## function `ARM.mprotect_asm` ```python mprotect_asm(addr: int, size: int, perm: __main__.Permission) → str ``` --- ## function `ARM.register` ```python register(name: str) → int ``` --- ## function `ARM.reset_caches` ```python reset_caches() → None ``` --- ## function `ARM.supports_gdb_arch` ```python supports_gdb_arch(gdb_arch: str) → Optional[bool] ``` If implemented by a child `Architecture`, this function dictates if the current class supports the loaded ELF file (which can be accessed via `gef.binary`). This callback function will override any assumption made by GEF to determine the architecture. --- ## class `ASLRCommand` View/modify the ASLR setting of GDB. By default, GDB will disable ASLR when it starts the process. (i.e. not attached). This command allows to change that setting. ## function `ASLRCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property ASLRCommand.settings Return the list of settings for this command. --- ## function `ASLRCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `ASLRCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `ASLRCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `ASLRCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `ASLRCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `ASLRCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `ASLRCommand.post_load` ```python post_load() → None ``` --- ## function `ASLRCommand.pre_load` ```python pre_load() → None ``` --- ## function `ASLRCommand.usage` ```python usage() → None ``` --- ## class `Address` GEF representation of memory addresses. ## function `Address.__init__` ```python __init__(**kwargs: Any) → None ``` --- #### property Address.valid --- ## function `Address.dereference` ```python dereference() → Optional[int] ``` --- ## function `Address.is_in_heap_segment` ```python is_in_heap_segment() → bool ``` --- ## function `Address.is_in_stack_segment` ```python is_in_stack_segment() → bool ``` --- ## function `Address.is_in_text_segment` ```python is_in_text_segment() → bool ``` --- ## class `AliasesAddCommand` Command to add aliases. ## function `AliasesAddCommand.__init__` ```python __init__() → None ``` --- #### property AliasesAddCommand.settings Return the list of settings for this command. --- ## function `AliasesAddCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `AliasesAddCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `AliasesAddCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `AliasesAddCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `AliasesAddCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `AliasesAddCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `AliasesAddCommand.post_load` ```python post_load() → None ``` --- ## function `AliasesAddCommand.pre_load` ```python pre_load() → None ``` --- ## function `AliasesAddCommand.usage` ```python usage() → None ``` --- ## class `AliasesCommand` Base command to add, remove, or list aliases. ## function `AliasesCommand.__init__` ```python __init__() → None ``` --- #### property AliasesCommand.settings Return the list of settings for this command. --- ## function `AliasesCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `AliasesCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `AliasesCommand.do_invoke` ```python do_invoke(_: List[str]) → None ``` --- ## function `AliasesCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `AliasesCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `AliasesCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `AliasesCommand.post_load` ```python post_load() → None ``` --- ## function `AliasesCommand.pre_load` ```python pre_load() → None ``` --- ## function `AliasesCommand.usage` ```python usage() → None ``` --- ## class `AliasesListCommand` Command to list aliases. ## function `AliasesListCommand.__init__` ```python __init__() → None ``` --- #### property AliasesListCommand.settings Return the list of settings for this command. --- ## function `AliasesListCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `AliasesListCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `AliasesListCommand.do_invoke` ```python do_invoke(_: List[str]) → None ``` --- ## function `AliasesListCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `AliasesListCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `AliasesListCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `AliasesListCommand.post_load` ```python post_load() → None ``` --- ## function `AliasesListCommand.pre_load` ```python pre_load() → None ``` --- ## function `AliasesListCommand.usage` ```python usage() → None ``` --- ## class `AliasesRmCommand` Command to remove aliases. ## function `AliasesRmCommand.__init__` ```python __init__() → None ``` --- #### property AliasesRmCommand.settings Return the list of settings for this command. --- ## function `AliasesRmCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `AliasesRmCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `AliasesRmCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `AliasesRmCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `AliasesRmCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `AliasesRmCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `AliasesRmCommand.post_load` ```python post_load() → None ``` --- ## function `AliasesRmCommand.pre_load` ```python pre_load() → None ``` --- ## function `AliasesRmCommand.usage` ```python usage() → None ``` --- ## class `Architecture` Generic metaclass for the architecture supported by GEF. --- #### property Architecture.endianness --- #### property Architecture.fp --- #### property Architecture.pc --- #### property Architecture.ptrsize --- #### property Architecture.registers --- #### property Architecture.sp --- ## function `Architecture.canary_address` ```python canary_address() → int ``` --- ## function `Architecture.flag_register_to_human` ```python flag_register_to_human(val: Optional[int] = None) → str ``` --- ## function `Architecture.get_ith_parameter` ```python get_ith_parameter(i: int, in_func: bool = True) → Tuple[str, Optional[int]] ``` Retrieves the correct parameter used for the current function call. --- ## function `Architecture.get_ra` ```python get_ra(insn: __main__.Instruction, frame: 'gdb.Frame') → Optional[int] ``` --- ## function `Architecture.is_branch_taken` ```python is_branch_taken(insn: __main__.Instruction) → Tuple[bool, str] ``` --- ## function `Architecture.is_call` ```python is_call(insn: __main__.Instruction) → bool ``` --- ## function `Architecture.is_conditional_branch` ```python is_conditional_branch(insn: __main__.Instruction) → bool ``` --- ## function `Architecture.is_ret` ```python is_ret(insn: __main__.Instruction) → bool ``` --- ## function `Architecture.mprotect_asm` ```python mprotect_asm(addr: int, size: int, perm: __main__.Permission) → str ``` --- ## function `Architecture.register` ```python register(name: str) → int ``` --- ## function `Architecture.reset_caches` ```python reset_caches() → None ``` --- ## function `Architecture.supports_gdb_arch` ```python supports_gdb_arch(gdb_arch: str) → Optional[bool] ``` If implemented by a child `Architecture`, this function dictates if the current class supports the loaded ELF file (which can be accessed via `gef.binary`). This callback function will override any assumption made by GEF to determine the architecture. --- ## class `ArchitectureBase` Class decorator for declaring an architecture to GEF. --- ## class `BssBaseFunction` Return the current bss base address plus the given offset. ## function `BssBaseFunction.__init__` ```python __init__() → None ``` --- ## function `BssBaseFunction.arg_to_long` ```python arg_to_long(args: List, index: int, default: int = 0) → int ``` --- ## function `BssBaseFunction.do_invoke` ```python do_invoke(args: List) → int ``` --- ## function `BssBaseFunction.invoke` ```python invoke(*args: Any) → int ``` --- ## class `CanaryCommand` Shows the canary value of the current process. ## function `CanaryCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property CanaryCommand.settings Return the list of settings for this command. --- ## function `CanaryCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `CanaryCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `CanaryCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `CanaryCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `CanaryCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `CanaryCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `CanaryCommand.post_load` ```python post_load() → None ``` --- ## function `CanaryCommand.pre_load` ```python pre_load() → None ``` --- ## function `CanaryCommand.usage` ```python usage() → None ``` --- ## class `ChangeFdCommand` ChangeFdCommand: redirect file descriptor during runtime. ## function `ChangeFdCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property ChangeFdCommand.settings Return the list of settings for this command. --- ## function `ChangeFdCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `ChangeFdCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `ChangeFdCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `ChangeFdCommand.get_fd_from_result` ```python get_fd_from_result(res: str) → int ``` --- ## function `ChangeFdCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `ChangeFdCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `ChangeFdCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `ChangeFdCommand.post_load` ```python post_load() → None ``` --- ## function `ChangeFdCommand.pre_load` ```python pre_load() → None ``` --- ## function `ChangeFdCommand.usage` ```python usage() → None ``` --- ## class `ChangePermissionBreakpoint` When hit, this temporary breakpoint will restore the original code, and position $pc correctly. ## function `ChangePermissionBreakpoint.__init__` ```python __init__(loc: str, code: ByteString, pc: int) → None ``` --- ## function `ChangePermissionBreakpoint.stop` ```python stop() → bool ``` --- ## class `ChecksecCommand` Checksec the security properties of the current executable or passed as argument. The command checks for the following protections: - PIE - NX - RelRO - Glibc Stack Canaries - Fortify Source ## function `ChecksecCommand.__init__` ```python __init__() → None ``` --- #### property ChecksecCommand.settings Return the list of settings for this command. --- ## function `ChecksecCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `ChecksecCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `ChecksecCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `ChecksecCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `ChecksecCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `ChecksecCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `ChecksecCommand.post_load` ```python post_load() → None ``` --- ## function `ChecksecCommand.pre_load` ```python pre_load() → None ``` --- ## function `ChecksecCommand.print_security_properties` ```python print_security_properties(filename: str) → None ``` --- ## function `ChecksecCommand.usage` ```python usage() → None ``` --- ## class `Color` Used to colorify terminal output. --- ## function `Color.blinkify` ```python blinkify(msg: str) → str ``` --- ## function `Color.blueify` ```python blueify(msg: str) → str ``` --- ## function `Color.boldify` ```python boldify(msg: str) → str ``` --- ## function `Color.colorify` ```python colorify(text: str, attrs: str) → str ``` Color text according to the given attributes. --- ## function `Color.cyanify` ```python cyanify(msg: str) → str ``` --- ## function `Color.grayify` ```python grayify(msg: str) → str ``` --- ## function `Color.greenify` ```python greenify(msg: str) → str ``` --- ## function `Color.highlightify` ```python highlightify(msg: str) → str ``` --- ## function `Color.light_grayify` ```python light_grayify(msg: str) → str ``` --- ## function `Color.pinkify` ```python pinkify(msg: str) → str ``` --- ## function `Color.redify` ```python redify(msg: str) → str ``` --- ## function `Color.underlinify` ```python underlinify(msg: str) → str ``` --- ## function `Color.yellowify` ```python yellowify(msg: str) → str ``` --- ## class `ContextCommand` Displays a comprehensive and modular summary of runtime context. Unless setting `enable` is set to False, this command will be spawned automatically every time GDB hits a breakpoint, a watchpoint, or any kind of interrupt. By default, it will show panes that contain the register states, the stack, and the disassembly code around $pc. ## function `ContextCommand.__init__` ```python __init__() → None ``` --- #### property ContextCommand.settings Return the list of settings for this command. --- ## function `ContextCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `ContextCommand.addr_has_breakpoint` ```python addr_has_breakpoint(address: int, bp_locations: List[str]) → bool ``` --- ## function `ContextCommand.context_additional_information` ```python context_additional_information() → None ``` --- ## function `ContextCommand.context_args` ```python context_args() → None ``` --- ## function `ContextCommand.context_code` ```python context_code() → None ``` --- ## function `ContextCommand.context_memory` ```python context_memory() → None ``` --- ## function `ContextCommand.context_regs` ```python context_regs() → None ``` --- ## function `ContextCommand.context_source` ```python context_source() → None ``` --- ## function `ContextCommand.context_stack` ```python context_stack() → None ``` --- ## function `ContextCommand.context_threads` ```python context_threads() → None ``` --- ## function `ContextCommand.context_title` ```python context_title(m: Optional[str]) → None ``` --- ## function `ContextCommand.context_trace` ```python context_trace() → None ``` --- ## function `ContextCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `ContextCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `ContextCommand.empty_extra_messages` ```python empty_extra_messages(_) → None ``` --- ## function `ContextCommand.get_pc_context_info` ```python get_pc_context_info(pc: int, line: str) → str ``` --- ## function `ContextCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `ContextCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `ContextCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `ContextCommand.line_has_breakpoint` ```python line_has_breakpoint( file_name: str, line_number: int, bp_locations: List[str] ) → bool ``` --- ## function `ContextCommand.post_load` ```python post_load() → None ``` --- ## function `ContextCommand.pre_load` ```python pre_load() → None ``` --- ## function `ContextCommand.print_arguments_from_symbol` ```python print_arguments_from_symbol(function_name: str, symbol: 'gdb.Symbol') → None ``` If symbols were found, parse them and print the argument adequately. --- ## function `ContextCommand.print_guessed_arguments` ```python print_guessed_arguments(function_name: str) → None ``` When no symbol, read the current basic block and look for "interesting" instructions. --- ## function `ContextCommand.show_legend` ```python show_legend() → None ``` --- ## function `ContextCommand.update_registers` ```python update_registers(_) → None ``` --- ## function `ContextCommand.usage` ```python usage() → None ``` --- ## class `DereferenceCommand` Dereference recursively from an address and display information. This acts like WinDBG `dps` command. ## function `DereferenceCommand.__init__` ```python __init__() → None ``` --- #### property DereferenceCommand.settings Return the list of settings for this command. --- ## function `DereferenceCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `DereferenceCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `DereferenceCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `DereferenceCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `DereferenceCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `DereferenceCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `DereferenceCommand.post_load` ```python post_load() → None ``` --- ## function `DereferenceCommand.pprint_dereferenced` ```python pprint_dereferenced(addr: int, idx: int, base_offset: int = 0) → str ``` --- ## function `DereferenceCommand.pre_load` ```python pre_load() → None ``` --- ## function `DereferenceCommand.usage` ```python usage() → None ``` --- ## class `DetailRegistersCommand` Display full details on one, many or all registers value from current architecture. ## function `DetailRegistersCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property DetailRegistersCommand.settings Return the list of settings for this command. --- ## function `DetailRegistersCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `DetailRegistersCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `DetailRegistersCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `DetailRegistersCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `DetailRegistersCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `DetailRegistersCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `DetailRegistersCommand.post_load` ```python post_load() → None ``` --- ## function `DetailRegistersCommand.pre_load` ```python pre_load() → None ``` --- ## function `DetailRegistersCommand.usage` ```python usage() → None ``` --- ## class `DisableContextOutputContext` --- ## class `Elf` Basic ELF parsing. Ref: - https://refspecs.linuxfoundation.org/elf/TIS1.1.pdf - https://refspecs.linuxfoundation.org/elf/elfspec_ppc.pdf - https://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html ## function `Elf.__init__` ```python __init__(path: Union[str, pathlib.Path]) → None ``` Instantiate an ELF object. A valid ELF must be provided, or an exception will be thrown. --- #### property Elf.checksec Check the security property of the ELF binary. The following properties are: - Canary - NX - PIE - Fortify - Partial/Full RelRO. Return a dict() with the different keys mentioned above, and the boolean associated whether the protection was found. --- #### property Elf.entry_point --- ## function `Elf.is_valid` ```python is_valid(path: pathlib.Path) → bool ``` --- ## function `Elf.read` ```python read(size: int) → bytes ``` --- ## function `Elf.read_and_unpack` ```python read_and_unpack(fmt: str) → Tuple[Any, ...] ``` --- ## function `Elf.seek` ```python seek(off: int) → None ``` --- ## class `ElfInfoCommand` Display a limited subset of ELF header information. If no argument is provided, the command will show information about the current ELF being debugged. ## function `ElfInfoCommand.__init__` ```python __init__() → None ``` --- #### property ElfInfoCommand.settings Return the list of settings for this command. --- ## function `ElfInfoCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `ElfInfoCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `ElfInfoCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `ElfInfoCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `ElfInfoCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `ElfInfoCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `ElfInfoCommand.post_load` ```python post_load() → None ``` --- ## function `ElfInfoCommand.pre_load` ```python pre_load() → None ``` --- ## function `ElfInfoCommand.usage` ```python usage() → None ``` --- ## class `Endianness` An enumeration. --- ## class `EntryBreakBreakpoint` Breakpoint used internally to stop execution at the most convenient entry point. ## function `EntryBreakBreakpoint.__init__` ```python __init__(location: str) → None ``` --- ## function `EntryBreakBreakpoint.stop` ```python stop() → bool ``` --- ## class `EntryPointBreakCommand` Tries to find best entry point and sets a temporary breakpoint on it. The command will test for well-known symbols for entry points, such as `main`, `_main`, `__libc_start_main`, etc. defined by the setting `entrypoint_symbols`. ## function `EntryPointBreakCommand.__init__` ```python __init__() → None ``` --- #### property EntryPointBreakCommand.settings Return the list of settings for this command. --- ## function `EntryPointBreakCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `EntryPointBreakCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `EntryPointBreakCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `EntryPointBreakCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `EntryPointBreakCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `EntryPointBreakCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `EntryPointBreakCommand.post_load` ```python post_load() → None ``` --- ## function `EntryPointBreakCommand.pre_load` ```python pre_load() → None ``` --- ## function `EntryPointBreakCommand.set_init_tbreak` ```python set_init_tbreak(addr: int) → EntryBreakBreakpoint ``` --- ## function `EntryPointBreakCommand.set_init_tbreak_pie` ```python set_init_tbreak_pie(addr: int, argv: List[str]) → EntryBreakBreakpoint ``` --- ## function `EntryPointBreakCommand.usage` ```python usage() → None ``` --- ## class `ExternalStructureManager` ## function `ExternalStructureManager.__init__` ```python __init__() → None ``` --- #### property ExternalStructureManager.modules --- #### property ExternalStructureManager.path --- #### property ExternalStructureManager.structures --- #### handler ExternalStructureManager.find --- ## function `ExternalStructureManager.clear_caches` ```python clear_caches() → None ``` --- ## class `FileFormat` ## function `FileFormat.__init__` ```python __init__(path: Union[str, pathlib.Path]) → None ``` --- ## function `FileFormat.is_valid` ```python is_valid(path: pathlib.Path) → bool ``` --- ## class `FileFormatSection` --- ## class `FlagsCommand` Edit flags in a human friendly way. ## function `FlagsCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property FlagsCommand.settings Return the list of settings for this command. --- ## function `FlagsCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `FlagsCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `FlagsCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `FlagsCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `FlagsCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `FlagsCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `FlagsCommand.post_load` ```python post_load() → None ``` --- ## function `FlagsCommand.pre_load` ```python pre_load() → None ``` --- ## function `FlagsCommand.usage` ```python usage() → None ``` --- ## class `FormatStringBreakpoint` Inspect stack for format string. ## function `FormatStringBreakpoint.__init__` ```python __init__(spec: str, num_args: int) → None ``` --- ## function `FormatStringBreakpoint.stop` ```python stop() → bool ``` --- ## class `FormatStringSearchCommand` Exploitable format-string helper: this command will set up specific breakpoints at well-known dangerous functions (printf, snprintf, etc.), and check if the pointer holding the format string is writable, and therefore susceptible to format string attacks if an attacker can control its content. ## function `FormatStringSearchCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property FormatStringSearchCommand.settings Return the list of settings for this command. --- ## function `FormatStringSearchCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `FormatStringSearchCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `FormatStringSearchCommand.do_invoke` ```python do_invoke(_: List[str]) → None ``` --- ## function `FormatStringSearchCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `FormatStringSearchCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `FormatStringSearchCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `FormatStringSearchCommand.post_load` ```python post_load() → None ``` --- ## function `FormatStringSearchCommand.pre_load` ```python pre_load() → None ``` --- ## function `FormatStringSearchCommand.usage` ```python usage() → None ``` --- ## class `GdbRemoveReadlineFinder` --- ## function `GdbRemoveReadlineFinder.find_module` ```python find_module(fullname, path=None) ``` --- ## function `GdbRemoveReadlineFinder.load_module` ```python load_module(fullname) ``` --- ## class `Gef` The GEF root class, which serves as a entrypoint for all the debugging session attributes (architecture, memory, settings, etc.). ## function `Gef.__init__` ```python __init__() → None ``` --- ## function `Gef.reinitialize_managers` ```python reinitialize_managers() → None ``` Reinitialize the managers. Avoid calling this function directly, using `pi reset()` is preferred --- ## function `Gef.reset_caches` ```python reset_caches() → None ``` Recursively clean the cache of all the managers. Avoid calling this function directly, using `reset-cache` is preferred --- ## function `Gef.setup` ```python setup() → None ``` Setup initialize the runtime setup, which may require for the `gef` to be not None. --- ## class `GefAlias` Simple aliasing wrapper because GDB doesn't do what it should. ## function `GefAlias.__init__` ```python __init__( alias: str, command: str, completer_class: int = 0, command_class: int = -1 ) → None ``` --- ## function `GefAlias.invoke` ```python invoke(args: Any, from_tty: bool) → None ``` --- ## function `GefAlias.lookup_command` ```python lookup_command(cmd: str) → Optional[Tuple[str, __main__.GenericCommand]] ``` --- ## class `GefCommand` GEF main command: view all new commands by typing `gef`. ## function `GefCommand.__init__` ```python __init__() → None ``` --- #### property GefCommand.loaded_command_names --- #### property GefCommand.loaded_commands --- #### property GefCommand.loaded_functions --- #### property GefCommand.missing_commands --- ## function `GefCommand.add_context_pane` ```python add_context_pane( pane_name: str, display_pane_function: Callable, pane_title_function: Callable, condition: Optional[Callable] ) → None ``` Add a new context pane to ContextCommand. --- ## function `GefCommand.invoke` ```python invoke(args: Any, from_tty: bool) → None ``` --- ## function `GefCommand.load` ```python load() → None ``` Load all the commands and functions defined by GEF into GDB. --- ## function `GefCommand.load_extra_plugins` ```python load_extra_plugins() → int ``` --- ## function `GefCommand.setup` ```python setup() → None ``` --- ## function `GefCommand.show_banner` ```python show_banner() → None ``` --- ## class `GefConfigCommand` GEF configuration sub-command This command will help set/view GEF settings for the current debugging session. It is possible to make those changes permanent by running `gef save` (refer to this command help), and/or restore previously saved settings by running `gef restore` (refer help). ## function `GefConfigCommand.__init__` ```python __init__() → None ``` --- ## function `GefConfigCommand.complete` ```python complete(text: str, word: str) → List[str] ``` --- ## function `GefConfigCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `GefConfigCommand.print_setting` ```python print_setting(plugin_name: str, verbose: bool = False) → None ``` --- ## function `GefConfigCommand.print_settings` ```python print_settings() → None ``` --- ## function `GefConfigCommand.set_setting` ```python set_setting(argv: Tuple[str, Any]) → None ``` --- ## class `GefFunctionsCommand` List the convenience functions provided by GEF. ## function `GefFunctionsCommand.__init__` ```python __init__() → None ``` --- #### property GefFunctionsCommand.settings Return the list of settings for this command. --- ## function `GefFunctionsCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `GefFunctionsCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `GefFunctionsCommand.do_invoke` ```python do_invoke(argv) → None ``` --- ## function `GefFunctionsCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `GefFunctionsCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `GefFunctionsCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `GefFunctionsCommand.post_load` ```python post_load() → None ``` --- ## function `GefFunctionsCommand.pre_load` ```python pre_load() → None ``` --- ## function `GefFunctionsCommand.usage` ```python usage() → None ``` --- ## class `GefHeapManager` Class managing session heap. ## function `GefHeapManager.__init__` ```python __init__() → None ``` --- #### property GefHeapManager.arenas --- #### property GefHeapManager.base_address --- #### property GefHeapManager.chunks --- #### property GefHeapManager.main_arena --- #### property GefHeapManager.malloc_alignment --- #### property GefHeapManager.min_chunk_size --- #### property GefHeapManager.selected_arena --- #### handler GefHeapManager.find_main_arena_addr --- ## function `GefHeapManager.csize2tidx` ```python csize2tidx(size: int) → int ``` --- ## function `GefHeapManager.malloc_align_address` ```python malloc_align_address(address: int) → int ``` Align addresses according to glibc's MALLOC_ALIGNMENT. See also Issue #689 on Github --- ## function `GefHeapManager.reset_caches` ```python reset_caches() → None ``` --- ## function `GefHeapManager.tidx2size` ```python tidx2size(idx: int) → int ``` --- ## class `GefHelpCommand` GEF help sub-command. ## function `GefHelpCommand.__init__` ```python __init__() → None ``` --- ## function `GefHelpCommand.invoke` ```python invoke(args: Any, from_tty: bool) → None ``` --- ## class `GefInstallExtraScriptCommand` `gef install` command: installs one or more scripts from the `gef-extras` script repo. Note that the command doesn't check for external dependencies the script(s) might require. ## function `GefInstallExtraScriptCommand.__init__` ```python __init__() → None ``` --- ## function `GefInstallExtraScriptCommand.invoke` ```python invoke(argv: str, from_tty: bool) → None ``` --- ## class `GefLibcManager` Class managing everything libc-related (except heap). ## function `GefLibcManager.__init__` ```python __init__() → None ``` --- #### property GefLibcManager.version --- #### handler GefLibcManager.find_libc_version --- ## function `GefLibcManager.reset_caches` ```python reset_caches() → None ``` Reset the LRU-cached attributes --- ## class `GefManager` --- ## function `GefManager.reset_caches` ```python reset_caches() → None ``` Reset the LRU-cached attributes --- ## class `GefMemoryManager` Class that manages memory access for gef. ## function `GefMemoryManager.__init__` ```python __init__() → None ``` --- #### property GefMemoryManager.maps --- ## function `GefMemoryManager.read` ```python read(addr: int, length: int = 16) → bytes ``` Return a `length` long byte array with the copy of the process memory at `addr`. --- ## function `GefMemoryManager.read_ascii_string` ```python read_ascii_string(address: int) → Optional[str] ``` Read an ASCII string from memory --- ## function `GefMemoryManager.read_cstring` ```python read_cstring( address: int, max_length: int = 50, encoding: Optional[str] = None ) → str ``` Return a C-string read from memory. --- ## function `GefMemoryManager.read_integer` ```python read_integer(addr: int) → int ``` Return an integer read from memory. --- ## function `GefMemoryManager.reset_caches` ```python reset_caches() → None ``` --- ## function `GefMemoryManager.write` ```python write(address: int, buffer: ByteString, length: int = 16) → None ``` Write `buffer` at address `address`. --- ## class `GefMissingCommand` GEF missing sub-command Display the GEF commands that could not be loaded, along with the reason of why they could not be loaded. ## function `GefMissingCommand.__init__` ```python __init__() → None ``` --- ## function `GefMissingCommand.invoke` ```python invoke(args: Any, from_tty: bool) → None ``` --- ## class `GefRemoteSessionManager` Class for managing remote sessions with GEF. It will create a temporary environment designed to clone the remote one. ## function `GefRemoteSessionManager.__init__` ```python __init__( host: str, port: int, pid: int = -1, qemu: Optional[pathlib.Path] = None ) → None ``` --- #### property GefRemoteSessionManager.auxiliary_vector --- #### property GefRemoteSessionManager.canary Return a tuple of the canary address and value, read from the canonical location if supported by the architecture. Otherwise, read from the auxiliary vector. --- #### property GefRemoteSessionManager.cwd --- #### property GefRemoteSessionManager.file Path to the file being debugged as seen by the remote endpoint. --- #### property GefRemoteSessionManager.lfile Local path to the file being debugged. --- #### property GefRemoteSessionManager.maps --- #### property GefRemoteSessionManager.original_canary Return a tuple of the initial canary address and value, read from the auxiliary vector. --- #### property GefRemoteSessionManager.os Return the current OS. --- #### property GefRemoteSessionManager.pagesize Get the system page size --- #### property GefRemoteSessionManager.pid Return the PID of the target process. --- #### property GefRemoteSessionManager.root --- #### property GefRemoteSessionManager.target --- ## function `GefRemoteSessionManager.close` ```python close() → None ``` --- ## function `GefRemoteSessionManager.connect` ```python connect(pid: int) → bool ``` Connect to remote target. If in extended mode, also attach to the given PID. --- ## function `GefRemoteSessionManager.in_qemu_user` ```python in_qemu_user() → bool ``` --- ## function `GefRemoteSessionManager.remote_objfile_event_handler` ```python remote_objfile_event_handler(evt: 'gdb.NewObjFileEvent') → None ``` --- ## function `GefRemoteSessionManager.reset_caches` ```python reset_caches() → None ``` --- ## function `GefRemoteSessionManager.setup` ```python setup() → bool ``` --- ## function `GefRemoteSessionManager.sync` ```python sync(src: str, dst: Optional[str] = None) → bool ``` Copy the `src` into the temporary chroot. If `dst` is provided, that path will be used instead of `src`. --- ## class `GefRestoreCommand` GEF restore sub-command. Loads settings from file '~/.gef.rc' and apply them to the configuration of GEF. ## function `GefRestoreCommand.__init__` ```python __init__() → None ``` --- ## function `GefRestoreCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `GefRestoreCommand.reload` ```python reload(quiet: bool) ``` --- ## class `GefRunCommand` Override GDB run commands with the context from GEF. Simple wrapper for GDB run command to use arguments set from `gef set args`. ## function `GefRunCommand.__init__` ```python __init__() → None ``` --- ## function `GefRunCommand.invoke` ```python invoke(args: Any, from_tty: bool) → None ``` --- ## class `GefSaveCommand` GEF save sub-command. Saves the current configuration of GEF to disk (by default in file '~/.gef.rc'). ## function `GefSaveCommand.__init__` ```python __init__() → None ``` --- ## function `GefSaveCommand.invoke` ```python invoke(args: Any, from_tty: bool) → None ``` --- ## class `GefSessionManager` Class managing the runtime properties of GEF. ## function `GefSessionManager.__init__` ```python __init__() → None ``` --- #### property GefSessionManager.auxiliary_vector --- #### property GefSessionManager.canary Return a tuple of the canary address and value, read from the canonical location if supported by the architecture. Otherwise, read from the auxiliary vector. --- #### property GefSessionManager.cwd --- #### property GefSessionManager.file Return a Path object of the target process. --- #### property GefSessionManager.maps Returns the Path to the procfs entry for the memory mapping. --- #### property GefSessionManager.original_canary Return a tuple of the initial canary address and value, read from the auxiliary vector. --- #### property GefSessionManager.os Return the current OS. --- #### property GefSessionManager.pagesize Get the system page size --- #### property GefSessionManager.pid Return the PID of the target process. --- #### property GefSessionManager.root Returns the path to the process's root directory. --- ## function `GefSessionManager.reset_caches` ```python reset_caches() → None ``` --- ## class `GefSetCommand` Override GDB set commands with the context from GEF. ## function `GefSetCommand.__init__` ```python __init__() → None ``` --- ## function `GefSetCommand.invoke` ```python invoke(args: Any, from_tty: bool) → None ``` --- ## class `GefSetting` Basic class for storing gef settings as objects ## function `GefSetting.__init__` ```python __init__( value: Any, cls: Optional[type] = None, description: Optional[str] = None, hooks: Optional[Dict[str, Callable]] = None ) → None ``` --- ## class `GefSettingsManager` GefSettings acts as a dict where the global settings are stored and can be read, written or deleted as any other dict. For instance, to read a specific command setting: `gef.config[mycommand.mysetting]` --- ## function `GefSettingsManager.raw_entry` ```python raw_entry(name: str) → GefSetting ``` --- ## class `GefThemeCommand` Customize GEF appearance. ## function `GefThemeCommand.__init__` ```python __init__() → None ``` --- #### property GefThemeCommand.settings Return the list of settings for this command. --- ## function `GefThemeCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `GefThemeCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- comfortable ## function `GefThemeCommand.do_invoke` ```python do_invoke(args: List[str]) → None ``` --- ## function `GefThemeCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `GefThemeCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `GefThemeCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `GefThemeCommand.post_load` ```python post_load() → None ``` --- ## function `GefThemeCommand.pre_load` ```python pre_load() → None ``` --- ## function `GefThemeCommand.usage` ```python usage() → None ``` --- ## class `GefTmuxSetup` Setup a comfortable tmux debugging environment. ## function `GefTmuxSetup.__init__` ```python __init__() → None ``` --- ## function `GefTmuxSetup.invoke` ```python invoke(args: Any, from_tty: bool) → None ``` --- ## function `GefTmuxSetup.screen_setup` ```python screen_setup() → None ``` Hackish equivalent of the tmux_setup() function for screen. --- ## function `GefTmuxSetup.tmux_setup` ```python tmux_setup() → None ``` Prepare the tmux environment by vertically splitting the current pane, and forcing the context to be redirected there. --- ## class `GefUiManager` Class managing UI settings. ## function `GefUiManager.__init__` ```python __init__() → None ``` --- ## function `GefUiManager.reset_caches` ```python reset_caches() → None ``` Reset the LRU-cached attributes --- ## class `GenericArchitecture` --- #### property GenericArchitecture.endianness --- #### property GenericArchitecture.fp --- #### property GenericArchitecture.pc --- #### property GenericArchitecture.ptrsize --- #### property GenericArchitecture.registers --- #### property GenericArchitecture.sp --- ## function `GenericArchitecture.canary_address` ```python canary_address() → int ``` --- ## function `GenericArchitecture.flag_register_to_human` ```python flag_register_to_human(val: Optional[int] = None) → str ``` --- ## function `GenericArchitecture.get_ith_parameter` ```python get_ith_parameter(i: int, in_func: bool = True) → Tuple[str, Optional[int]] ``` Retrieves the correct parameter used for the current function call. --- ## function `GenericArchitecture.get_ra` ```python get_ra(insn: __main__.Instruction, frame: 'gdb.Frame') → Optional[int] ``` --- ## function `GenericArchitecture.is_branch_taken` ```python is_branch_taken(insn: __main__.Instruction) → Tuple[bool, str] ``` --- ## function `GenericArchitecture.is_call` ```python is_call(insn: __main__.Instruction) → bool ``` --- ## function `GenericArchitecture.is_conditional_branch` ```python is_conditional_branch(insn: __main__.Instruction) → bool ``` --- ## function `GenericArchitecture.is_ret` ```python is_ret(insn: __main__.Instruction) → bool ``` --- ## function `GenericArchitecture.mprotect_asm` ```python mprotect_asm(addr: int, size: int, perm: __main__.Permission) → str ``` --- ## function `GenericArchitecture.register` ```python register(name: str) → int ``` --- ## function `GenericArchitecture.reset_caches` ```python reset_caches() → None ``` --- ## function `GenericArchitecture.supports_gdb_arch` ```python supports_gdb_arch(gdb_arch: str) → Optional[bool] ``` If implemented by a child `Architecture`, this function dictates if the current class supports the loaded ELF file (which can be accessed via `gef.binary`). This callback function will override any assumption made by GEF to determine the architecture. --- ## class `GenericCommand` This is an abstract class for invoking commands, should not be instantiated. ## function `GenericCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property GenericCommand.settings Return the list of settings for this command. --- ## function `GenericCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `GenericCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `GenericCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `GenericCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `GenericCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `GenericCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `GenericCommand.post_load` ```python post_load() → None ``` --- ## function `GenericCommand.pre_load` ```python pre_load() → None ``` --- ## function `GenericCommand.usage` ```python usage() → None ``` --- ## class `GenericFunction` This is an abstract class for invoking convenience functions, should not be instantiated. ## function `GenericFunction.__init__` ```python __init__() → None ``` --- ## function `GenericFunction.arg_to_long` ```python arg_to_long(args: List, index: int, default: int = 0) → int ``` --- ## function `GenericFunction.do_invoke` ```python do_invoke(args: Any) → int ``` --- ## function `GenericFunction.invoke` ```python invoke(*args: Any) → int ``` --- ## class `GlibcArena` Glibc arena class ## function `GlibcArena.__init__` ```python __init__(addr: str) → None ``` --- #### property GlibcArena.addr --- #### property GlibcArena.address --- #### property GlibcArena.attached_threads --- #### property GlibcArena.binmap --- #### property GlibcArena.bins --- #### property GlibcArena.fastbinsY --- #### property GlibcArena.last_remainder --- #### property GlibcArena.max_system_mem --- #### property GlibcArena.next --- #### property GlibcArena.next_free --- #### property GlibcArena.sizeof --- #### property GlibcArena.system_mem --- #### property GlibcArena.top --- ## function `GlibcArena.bin` ```python bin(i: int) → Tuple[int, int] ``` --- ## function `GlibcArena.bin_at` ```python bin_at(i) → int ``` --- ## function `GlibcArena.fastbin` ```python fastbin(i: int) → Optional[ForwardRef('GlibcFastChunk')] ``` Return head chunk in fastbinsY[i]. --- ## function `GlibcArena.get_heap_for_ptr` ```python get_heap_for_ptr(ptr: int) → int ``` Find the corresponding heap for a given pointer (int). See https://github.com/bminor/glibc/blob/glibc-2.34/malloc/arena.c#L129 --- ## function `GlibcArena.get_heap_info_list` ```python get_heap_info_list() → Optional[List[__main__.GlibcHeapInfo]] ``` --- ## function `GlibcArena.heap_addr` ```python heap_addr(allow_unaligned: bool = False) → Optional[int] ``` --- ## function `GlibcArena.is_main_arena` ```python is_main_arena() → bool ``` --- ## function `GlibcArena.malloc_state_t` ```python malloc_state_t() → Type[_ctypes.Structure] ``` --- ## function `GlibcArena.reset` ```python reset() ``` --- ## function `GlibcArena.verify` ```python verify(addr: int) → bool ``` Verify that the address matches a possible valid GlibcArena --- ## class `GlibcChunk` Glibc chunk class. The default behavior (from_base=False) is to interpret the data starting at the memory address pointed to as the chunk data. Setting from_base to True instead treats that data as the chunk header. Ref: https://sploitfun.wordpress.com/2015/02/10/understanding-glibc-malloc/. ## function `GlibcChunk.__init__` ```python __init__( addr: int, from_base: bool = False, allow_unaligned: bool = True ) → None ``` --- #### property GlibcChunk.bk --- #### property GlibcChunk.bk_nextsize --- #### property GlibcChunk.fd --- #### property GlibcChunk.fd_nextsize --- #### property GlibcChunk.flags --- #### property GlibcChunk.prev_size --- #### property GlibcChunk.size --- #### property GlibcChunk.usable_size --- ## function `GlibcChunk.get_next_chunk` ```python get_next_chunk(allow_unaligned: bool = False) → GlibcChunk ``` --- ## function `GlibcChunk.get_next_chunk_addr` ```python get_next_chunk_addr() → int ``` --- ## function `GlibcChunk.get_prev_chunk_size` ```python get_prev_chunk_size() → int ``` --- ## function `GlibcChunk.get_usable_size` ```python get_usable_size() → int ``` --- ## function `GlibcChunk.has_m_bit` ```python has_m_bit() → bool ``` --- ## function `GlibcChunk.has_n_bit` ```python has_n_bit() → bool ``` --- ## function `GlibcChunk.has_p_bit` ```python has_p_bit() → bool ``` --- ## function `GlibcChunk.is_used` ```python is_used() → bool ``` Check if the current block is used by: - checking the M bit is true - or checking that next chunk PREV_INUSE flag is true --- ## function `GlibcChunk.malloc_chunk_t` ```python malloc_chunk_t() → Type[_ctypes.Structure] ``` --- ## function `GlibcChunk.psprint` ```python psprint() → str ``` --- ## function `GlibcChunk.reset` ```python reset() ``` --- ## class `GlibcFastChunk` ## function `GlibcFastChunk.__init__` ```python __init__( addr: int, from_base: bool = False, allow_unaligned: bool = True ) → None ``` --- #### property GlibcFastChunk.bk --- #### property GlibcFastChunk.bk_nextsize --- #### property GlibcFastChunk.fd --- #### property GlibcFastChunk.fd_nextsize --- #### property GlibcFastChunk.flags --- #### property GlibcFastChunk.prev_size --- #### property GlibcFastChunk.size --- #### property GlibcFastChunk.usable_size --- ## function `GlibcFastChunk.get_next_chunk` ```python get_next_chunk(allow_unaligned: bool = False) → GlibcChunk ``` --- ## function `GlibcFastChunk.get_next_chunk_addr` ```python get_next_chunk_addr() → int ``` --- ## function `GlibcFastChunk.get_prev_chunk_size` ```python get_prev_chunk_size() → int ``` --- ## function `GlibcFastChunk.get_usable_size` ```python get_usable_size() → int ``` --- ## function `GlibcFastChunk.has_m_bit` ```python has_m_bit() → bool ``` --- ## function `GlibcFastChunk.has_n_bit` ```python has_n_bit() → bool ``` --- ## function `GlibcFastChunk.has_p_bit` ```python has_p_bit() → bool ``` --- ## function `GlibcFastChunk.is_used` ```python is_used() → bool ``` Check if the current block is used by: - checking the M bit is true - or checking that next chunk PREV_INUSE flag is true --- ## function `GlibcFastChunk.malloc_chunk_t` ```python malloc_chunk_t() → Type[_ctypes.Structure] ``` --- ## function `GlibcFastChunk.protect_ptr` ```python protect_ptr(pos: int, pointer: int) → int ``` https://elixir.bootlin.com/glibc/glibc-2.32/source/malloc/malloc.c#L339 --- ## function `GlibcFastChunk.psprint` ```python psprint() → str ``` --- ## function `GlibcFastChunk.reset` ```python reset() ``` --- ## function `GlibcFastChunk.reveal_ptr` ```python reveal_ptr(pointer: int) → int ``` https://elixir.bootlin.com/glibc/glibc-2.32/source/malloc/malloc.c#L341 --- ## class `GlibcHeapArenaCommand` Display information on a heap chunk. ## function `GlibcHeapArenaCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property GlibcHeapArenaCommand.settings Return the list of settings for this command. --- ## function `GlibcHeapArenaCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `GlibcHeapArenaCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `GlibcHeapArenaCommand.do_invoke` ```python do_invoke(_: List[str]) → None ``` --- ## function `GlibcHeapArenaCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `GlibcHeapArenaCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `GlibcHeapArenaCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `GlibcHeapArenaCommand.post_load` ```python post_load() → None ``` --- ## function `GlibcHeapArenaCommand.pre_load` ```python pre_load() → None ``` --- ## function `GlibcHeapArenaCommand.usage` ```python usage() → None ``` --- ## class `GlibcHeapBinsCommand` Display information on the bins on an arena (default: main_arena). See https://github.com/sploitfun/lsploits/blob/master/glibc/malloc/malloc.c#L1123. ## function `GlibcHeapBinsCommand.__init__` ```python __init__() → None ``` --- #### property GlibcHeapBinsCommand.settings Return the list of settings for this command. --- ## function `GlibcHeapBinsCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `GlibcHeapBinsCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `GlibcHeapBinsCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `GlibcHeapBinsCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `GlibcHeapBinsCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `GlibcHeapBinsCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `GlibcHeapBinsCommand.post_load` ```python post_load() → None ``` --- ## function `GlibcHeapBinsCommand.pprint_bin` ```python pprint_bin(arena_addr: str, index: int, _type: str = '') → int ``` --- ## function `GlibcHeapBinsCommand.pre_load` ```python pre_load() → None ``` --- ## function `GlibcHeapBinsCommand.usage` ```python usage() → None ``` --- ## class `GlibcHeapChunkCommand` Display information on a heap chunk. See https://github.com/sploitfun/lsploits/blob/master/glibc/malloc/malloc.c#L1123. ## function `GlibcHeapChunkCommand.__init__` ```python __init__() → None ``` --- #### property GlibcHeapChunkCommand.settings Return the list of settings for this command. --- ## function `GlibcHeapChunkCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `GlibcHeapChunkCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `GlibcHeapChunkCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `GlibcHeapChunkCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `GlibcHeapChunkCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `GlibcHeapChunkCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `GlibcHeapChunkCommand.post_load` ```python post_load() → None ``` --- ## function `GlibcHeapChunkCommand.pre_load` ```python pre_load() → None ``` --- ## function `GlibcHeapChunkCommand.usage` ```python usage() → None ``` --- ## class `GlibcHeapChunksCommand` Display all heap chunks for the current arena. As an optional argument the base address of a different arena can be passed ## function `GlibcHeapChunksCommand.__init__` ```python __init__() → None ``` --- #### property GlibcHeapChunksCommand.settings Return the list of settings for this command. --- ## function `GlibcHeapChunksCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `GlibcHeapChunksCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `GlibcHeapChunksCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `GlibcHeapChunksCommand.dump_chunks_arena` ```python dump_chunks_arena( arena: __main__.GlibcArena, print_arena: bool = False, allow_unaligned: bool = False ) → None ``` --- ## function `GlibcHeapChunksCommand.dump_chunks_heap` ```python dump_chunks_heap( start: int, end: int, arena: __main__.GlibcArena, allow_unaligned: bool = False ) → bool ``` --- ## function `GlibcHeapChunksCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `GlibcHeapChunksCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `GlibcHeapChunksCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `GlibcHeapChunksCommand.post_load` ```python post_load() → None ``` --- ## function `GlibcHeapChunksCommand.pre_load` ```python pre_load() → None ``` --- ## function `GlibcHeapChunksCommand.usage` ```python usage() → None ``` --- ## class `GlibcHeapCommand` Base command to get information about the Glibc heap structure. ## function `GlibcHeapCommand.__init__` ```python __init__() → None ``` --- #### property GlibcHeapCommand.settings Return the list of settings for this command. --- ## function `GlibcHeapCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `GlibcHeapCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `GlibcHeapCommand.do_invoke` ```python do_invoke(_: List[str]) → None ``` --- ## function `GlibcHeapCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `GlibcHeapCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `GlibcHeapCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `GlibcHeapCommand.post_load` ```python post_load() → None ``` --- ## function `GlibcHeapCommand.pre_load` ```python pre_load() → None ``` --- ## function `GlibcHeapCommand.usage` ```python usage() → None ``` --- ## class `GlibcHeapFastbinsYCommand` Display information on the fastbinsY on an arena (default: main_arena). See https://github.com/sploitfun/lsploits/blob/master/glibc/malloc/malloc.c#L1123. ## function `GlibcHeapFastbinsYCommand.__init__` ```python __init__() → None ``` --- #### property GlibcHeapFastbinsYCommand.settings Return the list of settings for this command. --- ## function `GlibcHeapFastbinsYCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `GlibcHeapFastbinsYCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `GlibcHeapFastbinsYCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `GlibcHeapFastbinsYCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `GlibcHeapFastbinsYCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `GlibcHeapFastbinsYCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `GlibcHeapFastbinsYCommand.post_load` ```python post_load() → None ``` --- ## function `GlibcHeapFastbinsYCommand.pre_load` ```python pre_load() → None ``` --- ## function `GlibcHeapFastbinsYCommand.usage` ```python usage() → None ``` --- ## class `GlibcHeapInfo` Glibc heap_info struct ## function `GlibcHeapInfo.__init__` ```python __init__(addr: Union[str, int]) → None ``` --- #### property GlibcHeapInfo.addr --- #### property GlibcHeapInfo.address --- #### property GlibcHeapInfo.heap_end --- #### property GlibcHeapInfo.heap_start --- #### property GlibcHeapInfo.sizeof --- ## function `GlibcHeapInfo.heap_info_t` ```python heap_info_t() → Type[_ctypes.Structure] ``` --- ## function `GlibcHeapInfo.reset` ```python reset() ``` --- ## class `GlibcHeapLargeBinsCommand` Convenience command for viewing large bins. ## function `GlibcHeapLargeBinsCommand.__init__` ```python __init__() → None ``` --- #### property GlibcHeapLargeBinsCommand.settings Return the list of settings for this command. --- ## function `GlibcHeapLargeBinsCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `GlibcHeapLargeBinsCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `GlibcHeapLargeBinsCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `GlibcHeapLargeBinsCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `GlibcHeapLargeBinsCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `GlibcHeapLargeBinsCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `GlibcHeapLargeBinsCommand.post_load` ```python post_load() → None ``` --- ## function `GlibcHeapLargeBinsCommand.pre_load` ```python pre_load() → None ``` --- ## function `GlibcHeapLargeBinsCommand.usage` ```python usage() → None ``` --- ## class `GlibcHeapSetArenaCommand` Set the address of the main_arena or the currently selected arena. ## function `GlibcHeapSetArenaCommand.__init__` ```python __init__() → None ``` --- #### property GlibcHeapSetArenaCommand.settings Return the list of settings for this command. --- ## function `GlibcHeapSetArenaCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `GlibcHeapSetArenaCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `GlibcHeapSetArenaCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `GlibcHeapSetArenaCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `GlibcHeapSetArenaCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `GlibcHeapSetArenaCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `GlibcHeapSetArenaCommand.post_load` ```python post_load() → None ``` --- ## function `GlibcHeapSetArenaCommand.pre_load` ```python pre_load() → None ``` --- ## function `GlibcHeapSetArenaCommand.usage` ```python usage() → None ``` --- ## class `GlibcHeapSmallBinsCommand` Convenience command for viewing small bins. ## function `GlibcHeapSmallBinsCommand.__init__` ```python __init__() → None ``` --- #### property GlibcHeapSmallBinsCommand.settings Return the list of settings for this command. --- ## function `GlibcHeapSmallBinsCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `GlibcHeapSmallBinsCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `GlibcHeapSmallBinsCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `GlibcHeapSmallBinsCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `GlibcHeapSmallBinsCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `GlibcHeapSmallBinsCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `GlibcHeapSmallBinsCommand.post_load` ```python post_load() → None ``` --- ## function `GlibcHeapSmallBinsCommand.pre_load` ```python pre_load() → None ``` --- ## function `GlibcHeapSmallBinsCommand.usage` ```python usage() → None ``` --- ## class `GlibcHeapTcachebinsCommand` Display information on the Tcachebins on an arena (default: main_arena). See https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=d5c3fafc4307c9b7a4c7d5cb381fcdbfad340bcc. ## function `GlibcHeapTcachebinsCommand.__init__` ```python __init__() → None ``` --- #### property GlibcHeapTcachebinsCommand.settings Return the list of settings for this command. --- ## function `GlibcHeapTcachebinsCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `GlibcHeapTcachebinsCommand.check_thread_ids` ```python check_thread_ids(tids: List[int]) → List[int] ``` Check the validity, dedup, and return all valid tids. --- ## function `GlibcHeapTcachebinsCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `GlibcHeapTcachebinsCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `GlibcHeapTcachebinsCommand.find_tcache` ```python find_tcache() → int ``` Return the location of the current thread's tcache. --- ## function `GlibcHeapTcachebinsCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `GlibcHeapTcachebinsCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `GlibcHeapTcachebinsCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `GlibcHeapTcachebinsCommand.post_load` ```python post_load() → None ``` --- ## function `GlibcHeapTcachebinsCommand.pre_load` ```python pre_load() → None ``` --- ## function `GlibcHeapTcachebinsCommand.tcachebin` ```python tcachebin( tcache_base: int, i: int ) → Tuple[Optional[__main__.GlibcTcacheChunk], int] ``` Return the head chunk in tcache[i] and the number of chunks in the bin. --- ## function `GlibcHeapTcachebinsCommand.usage` ```python usage() → None ``` --- ## class `GlibcHeapUnsortedBinsCommand` Display information on the Unsorted Bins of an arena (default: main_arena). See: https://github.com/sploitfun/lsploits/blob/master/glibc/malloc/malloc.c#L1689. ## function `GlibcHeapUnsortedBinsCommand.__init__` ```python __init__() → None ``` --- #### property GlibcHeapUnsortedBinsCommand.settings Return the list of settings for this command. --- ## function `GlibcHeapUnsortedBinsCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `GlibcHeapUnsortedBinsCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `GlibcHeapUnsortedBinsCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `GlibcHeapUnsortedBinsCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `GlibcHeapUnsortedBinsCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `GlibcHeapUnsortedBinsCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `GlibcHeapUnsortedBinsCommand.post_load` ```python post_load() → None ``` --- ## function `GlibcHeapUnsortedBinsCommand.pre_load` ```python pre_load() → None ``` --- ## function `GlibcHeapUnsortedBinsCommand.usage` ```python usage() → None ``` --- ## class `GlibcTcacheChunk` ## function `GlibcTcacheChunk.__init__` ```python __init__( addr: int, from_base: bool = False, allow_unaligned: bool = True ) → None ``` --- #### property GlibcTcacheChunk.bk --- #### property GlibcTcacheChunk.bk_nextsize --- #### property GlibcTcacheChunk.fd --- #### property GlibcTcacheChunk.fd_nextsize --- #### property GlibcTcacheChunk.flags --- #### property GlibcTcacheChunk.prev_size --- #### property GlibcTcacheChunk.size --- #### property GlibcTcacheChunk.usable_size --- ## function `GlibcTcacheChunk.get_next_chunk` ```python get_next_chunk(allow_unaligned: bool = False) → GlibcChunk ``` --- ## function `GlibcTcacheChunk.get_next_chunk_addr` ```python get_next_chunk_addr() → int ``` --- ## function `GlibcTcacheChunk.get_prev_chunk_size` ```python get_prev_chunk_size() → int ``` --- ## function `GlibcTcacheChunk.get_usable_size` ```python get_usable_size() → int ``` --- ## function `GlibcTcacheChunk.has_m_bit` ```python has_m_bit() → bool ``` --- ## function `GlibcTcacheChunk.has_n_bit` ```python has_n_bit() → bool ``` --- ## function `GlibcTcacheChunk.has_p_bit` ```python has_p_bit() → bool ``` --- ## function `GlibcTcacheChunk.is_used` ```python is_used() → bool ``` Check if the current block is used by: - checking the M bit is true - or checking that next chunk PREV_INUSE flag is true --- ## function `GlibcTcacheChunk.malloc_chunk_t` ```python malloc_chunk_t() → Type[_ctypes.Structure] ``` --- ## function `GlibcTcacheChunk.protect_ptr` ```python protect_ptr(pos: int, pointer: int) → int ``` https://elixir.bootlin.com/glibc/glibc-2.32/source/malloc/malloc.c#L339 --- ## function `GlibcTcacheChunk.psprint` ```python psprint() → str ``` --- ## function `GlibcTcacheChunk.reset` ```python reset() ``` --- ## function `GlibcTcacheChunk.reveal_ptr` ```python reveal_ptr(pointer: int) → int ``` https://elixir.bootlin.com/glibc/glibc-2.32/source/malloc/malloc.c#L341 --- ## class `GotBaseFunction` Return the current GOT base address plus the given offset. ## function `GotBaseFunction.__init__` ```python __init__() → None ``` --- ## function `GotBaseFunction.arg_to_long` ```python arg_to_long(args: List, index: int, default: int = 0) → int ``` --- ## function `GotBaseFunction.do_invoke` ```python do_invoke(args: List) → int ``` --- ## function `GotBaseFunction.invoke` ```python invoke(*args: Any) → int ``` --- ## class `GotCommand` Display current status of the got inside the process. ## function `GotCommand.__init__` ```python __init__() ``` --- #### property GotCommand.settings Return the list of settings for this command. --- ## function `GotCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `GotCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `GotCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `GotCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `GotCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `GotCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `GotCommand.post_load` ```python post_load() → None ``` --- ## function `GotCommand.pre_load` ```python pre_load() → None ``` --- ## function `GotCommand.usage` ```python usage() → None ``` --- ## class `HeapAnalysisCommand` Heap vulnerability analysis helper: this command aims to track dynamic heap allocation done through malloc()/free() to provide some insights on possible heap vulnerabilities. The following vulnerabilities are checked: - NULL free - Use-after-Free - Double Free - Heap overlap ## function `HeapAnalysisCommand.__init__` ```python __init__() → None ``` --- #### property HeapAnalysisCommand.settings Return the list of settings for this command. --- ## function `HeapAnalysisCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `HeapAnalysisCommand.clean` ```python clean(_: 'gdb.Event') → None ``` --- ## function `HeapAnalysisCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `HeapAnalysisCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `HeapAnalysisCommand.dump_tracked_allocations` ```python dump_tracked_allocations() → None ``` --- ## function `HeapAnalysisCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `HeapAnalysisCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `HeapAnalysisCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `HeapAnalysisCommand.post_load` ```python post_load() → None ``` --- ## function `HeapAnalysisCommand.pre_load` ```python pre_load() → None ``` --- ## function `HeapAnalysisCommand.setup` ```python setup() → None ``` --- ## function `HeapAnalysisCommand.usage` ```python usage() → None ``` --- ## class `HeapBaseFunction` Return the current heap base address plus an optional offset. ## function `HeapBaseFunction.__init__` ```python __init__() → None ``` --- ## function `HeapBaseFunction.arg_to_long` ```python arg_to_long(args: List, index: int, default: int = 0) → int ``` --- ## function `HeapBaseFunction.do_invoke` ```python do_invoke(args: List) → int ``` --- ## function `HeapBaseFunction.invoke` ```python invoke(*args: Any) → int ``` --- ## class `HexdumpByteCommand` Display SIZE lines of hexdump as BYTE from the memory location pointed by ADDRESS. ## function `HexdumpByteCommand.__init__` ```python __init__() → None ``` --- #### property HexdumpByteCommand.settings Return the list of settings for this command. --- ## function `HexdumpByteCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `HexdumpByteCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `HexdumpByteCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `HexdumpByteCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `HexdumpByteCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `HexdumpByteCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `HexdumpByteCommand.post_load` ```python post_load() → None ``` --- ## function `HexdumpByteCommand.pre_load` ```python pre_load() → None ``` --- ## function `HexdumpByteCommand.usage` ```python usage() → None ``` --- ## class `HexdumpCommand` Display SIZE lines of hexdump from the memory location pointed by LOCATION. ## function `HexdumpCommand.__init__` ```python __init__() → None ``` --- #### property HexdumpCommand.settings Return the list of settings for this command. --- ## function `HexdumpCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `HexdumpCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `HexdumpCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `HexdumpCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `HexdumpCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `HexdumpCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `HexdumpCommand.post_load` ```python post_load() → None ``` --- ## function `HexdumpCommand.pre_load` ```python pre_load() → None ``` --- ## function `HexdumpCommand.usage` ```python usage() → None ``` --- ## class `HexdumpDwordCommand` Display SIZE lines of hexdump as DWORD from the memory location pointed by ADDRESS. ## function `HexdumpDwordCommand.__init__` ```python __init__() → None ``` --- #### property HexdumpDwordCommand.settings Return the list of settings for this command. --- ## function `HexdumpDwordCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `HexdumpDwordCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `HexdumpDwordCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `HexdumpDwordCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `HexdumpDwordCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `HexdumpDwordCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `HexdumpDwordCommand.post_load` ```python post_load() → None ``` --- ## function `HexdumpDwordCommand.pre_load` ```python pre_load() → None ``` --- ## function `HexdumpDwordCommand.usage` ```python usage() → None ``` --- ## class `HexdumpQwordCommand` Display SIZE lines of hexdump as QWORD from the memory location pointed by ADDRESS. ## function `HexdumpQwordCommand.__init__` ```python __init__() → None ``` --- #### property HexdumpQwordCommand.settings Return the list of settings for this command. --- ## function `HexdumpQwordCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `HexdumpQwordCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `HexdumpQwordCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `HexdumpQwordCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `HexdumpQwordCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `HexdumpQwordCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `HexdumpQwordCommand.post_load` ```python post_load() → None ``` --- ## function `HexdumpQwordCommand.pre_load` ```python pre_load() → None ``` --- ## function `HexdumpQwordCommand.usage` ```python usage() → None ``` --- ## class `HexdumpWordCommand` Display SIZE lines of hexdump as WORD from the memory location pointed by ADDRESS. ## function `HexdumpWordCommand.__init__` ```python __init__() → None ``` --- #### property HexdumpWordCommand.settings Return the list of settings for this command. --- ## function `HexdumpWordCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `HexdumpWordCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `HexdumpWordCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `HexdumpWordCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `HexdumpWordCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `HexdumpWordCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `HexdumpWordCommand.post_load` ```python post_load() → None ``` --- ## function `HexdumpWordCommand.pre_load` ```python pre_load() → None ``` --- ## function `HexdumpWordCommand.usage` ```python usage() → None ``` --- ## class `HighlightAddCommand` Add a match to the highlight table. ## function `HighlightAddCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property HighlightAddCommand.settings Return the list of settings for this command. --- ## function `HighlightAddCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `HighlightAddCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `HighlightAddCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `HighlightAddCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `HighlightAddCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `HighlightAddCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `HighlightAddCommand.post_load` ```python post_load() → None ``` --- ## function `HighlightAddCommand.pre_load` ```python pre_load() → None ``` --- ## function `HighlightAddCommand.usage` ```python usage() → None ``` --- ## class `HighlightClearCommand` Clear the highlight table, remove all matches. ## function `HighlightClearCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property HighlightClearCommand.settings Return the list of settings for this command. --- ## function `HighlightClearCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `HighlightClearCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `HighlightClearCommand.do_invoke` ```python do_invoke(_: List[str]) → None ``` --- ## function `HighlightClearCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `HighlightClearCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `HighlightClearCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `HighlightClearCommand.post_load` ```python post_load() → None ``` --- ## function `HighlightClearCommand.pre_load` ```python pre_load() → None ``` --- ## function `HighlightClearCommand.usage` ```python usage() → None ``` --- ## class `HighlightCommand` Highlight user-defined text matches in GEF output universally. ## function `HighlightCommand.__init__` ```python __init__() → None ``` --- #### property HighlightCommand.settings Return the list of settings for this command. --- ## function `HighlightCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `HighlightCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `HighlightCommand.do_invoke` ```python do_invoke(_: List[str]) → None ``` --- ## function `HighlightCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `HighlightCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `HighlightCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `HighlightCommand.post_load` ```python post_load() → None ``` --- ## function `HighlightCommand.pre_load` ```python pre_load() → None ``` --- ## function `HighlightCommand.usage` ```python usage() → None ``` --- ## class `HighlightListCommand` Show the current highlight table with matches to colors. ## function `HighlightListCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property HighlightListCommand.settings Return the list of settings for this command. --- ## function `HighlightListCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `HighlightListCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `HighlightListCommand.do_invoke` ```python do_invoke(_: List[str]) → None ``` --- ## function `HighlightListCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `HighlightListCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `HighlightListCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `HighlightListCommand.post_load` ```python post_load() → None ``` --- ## function `HighlightListCommand.pre_load` ```python pre_load() → None ``` --- ## function `HighlightListCommand.print_highlight_table` ```python print_highlight_table() → None ``` --- ## function `HighlightListCommand.usage` ```python usage() → None ``` --- ## class `HighlightRemoveCommand` Remove a match in the highlight table. ## function `HighlightRemoveCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property HighlightRemoveCommand.settings Return the list of settings for this command. --- ## function `HighlightRemoveCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `HighlightRemoveCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `HighlightRemoveCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `HighlightRemoveCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `HighlightRemoveCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `HighlightRemoveCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `HighlightRemoveCommand.post_load` ```python post_load() → None ``` --- ## function `HighlightRemoveCommand.pre_load` ```python pre_load() → None ``` --- ## function `HighlightRemoveCommand.usage` ```python usage() → None ``` --- ## class `Instruction` GEF representation of a CPU instruction. ## function `Instruction.__init__` ```python __init__( address: int, location: str, mnemo: str, operands: List[str], opcodes: bytes ) → None ``` --- ## function `Instruction.is_valid` ```python is_valid() → bool ``` --- ## function `Instruction.size` ```python size() → int ``` --- ## class `MIPS` --- #### property MIPS.endianness --- #### property MIPS.fp --- #### property MIPS.pc --- #### property MIPS.ptrsize --- #### property MIPS.registers --- #### property MIPS.sp --- ## function `MIPS.canary_address` ```python canary_address() → int ``` --- ## function `MIPS.flag_register_to_human` ```python flag_register_to_human(val: Optional[int] = None) → str ``` --- ## function `MIPS.get_ith_parameter` ```python get_ith_parameter(i: int, in_func: bool = True) → Tuple[str, Optional[int]] ``` Retrieves the correct parameter used for the current function call. --- ## function `MIPS.get_ra` ```python get_ra(insn: __main__.Instruction, frame: 'gdb.Frame') → Optional[int] ``` --- ## function `MIPS.is_branch_taken` ```python is_branch_taken(insn: __main__.Instruction) → Tuple[bool, str] ``` --- ## function `MIPS.is_call` ```python is_call(insn: __main__.Instruction) → bool ``` --- ## function `MIPS.is_conditional_branch` ```python is_conditional_branch(insn: __main__.Instruction) → bool ``` --- ## function `MIPS.is_ret` ```python is_ret(insn: __main__.Instruction) → bool ``` --- ## function `MIPS.mprotect_asm` ```python mprotect_asm(addr: int, size: int, perm: __main__.Permission) → str ``` --- ## function `MIPS.register` ```python register(name: str) → int ``` --- ## function `MIPS.reset_caches` ```python reset_caches() → None ``` --- ## function `MIPS.supports_gdb_arch` ```python supports_gdb_arch(gdb_arch: str) → Optional[bool] ``` If implemented by a child `Architecture`, this function dictates if the current class supports the loaded ELF file (which can be accessed via `gef.binary`). This callback function will override any assumption made by GEF to determine the architecture. --- ## class `MIPS64` --- #### property MIPS64.endianness --- #### property MIPS64.fp --- #### property MIPS64.pc --- #### property MIPS64.ptrsize --- #### property MIPS64.registers --- #### property MIPS64.sp --- ## function `MIPS64.canary_address` ```python canary_address() → int ``` --- ## function `MIPS64.flag_register_to_human` ```python flag_register_to_human(val: Optional[int] = None) → str ``` --- ## function `MIPS64.get_ith_parameter` ```python get_ith_parameter(i: int, in_func: bool = True) → Tuple[str, Optional[int]] ``` Retrieves the correct parameter used for the current function call. --- ## function `MIPS64.get_ra` ```python get_ra(insn: __main__.Instruction, frame: 'gdb.Frame') → Optional[int] ``` --- ## function `MIPS64.is_branch_taken` ```python is_branch_taken(insn: __main__.Instruction) → Tuple[bool, str] ``` --- ## function `MIPS64.is_call` ```python is_call(insn: __main__.Instruction) → bool ``` --- ## function `MIPS64.is_conditional_branch` ```python is_conditional_branch(insn: __main__.Instruction) → bool ``` --- ## function `MIPS64.is_ret` ```python is_ret(insn: __main__.Instruction) → bool ``` --- ## function `MIPS64.mprotect_asm` ```python mprotect_asm(addr: int, size: int, perm: __main__.Permission) → str ``` --- ## function `MIPS64.register` ```python register(name: str) → int ``` --- ## function `MIPS64.reset_caches` ```python reset_caches() → None ``` --- ## function `MIPS64.supports_gdb_arch` ```python supports_gdb_arch(gdb_arch: str) → Optional[bool] ``` --- ## class `MemoryCommand` Add or remove address ranges to the memory view. ## function `MemoryCommand.__init__` ```python __init__() → None ``` --- #### property MemoryCommand.settings Return the list of settings for this command. --- ## function `MemoryCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `MemoryCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `MemoryCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `MemoryCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `MemoryCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `MemoryCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `MemoryCommand.post_load` ```python post_load() → None ``` --- ## function `MemoryCommand.pre_load` ```python pre_load() → None ``` --- ## function `MemoryCommand.usage` ```python usage() → None ``` --- ## class `MemoryUnwatchCommand` Removes address ranges to the memory view. ## function `MemoryUnwatchCommand.__init__` ```python __init__() → None ``` --- #### property MemoryUnwatchCommand.settings Return the list of settings for this command. --- ## function `MemoryUnwatchCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `MemoryUnwatchCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `MemoryUnwatchCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `MemoryUnwatchCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `MemoryUnwatchCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `MemoryUnwatchCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `MemoryUnwatchCommand.post_load` ```python post_load() → None ``` --- ## function `MemoryUnwatchCommand.pre_load` ```python pre_load() → None ``` --- ## function `MemoryUnwatchCommand.usage` ```python usage() → None ``` --- ## class `MemoryWatchCommand` Adds address ranges to the memory view. ## function `MemoryWatchCommand.__init__` ```python __init__() → None ``` --- #### property MemoryWatchCommand.settings Return the list of settings for this command. --- ## function `MemoryWatchCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `MemoryWatchCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `MemoryWatchCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `MemoryWatchCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `MemoryWatchCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `MemoryWatchCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `MemoryWatchCommand.post_load` ```python post_load() → None ``` --- ## function `MemoryWatchCommand.pre_load` ```python pre_load() → None ``` --- ## function `MemoryWatchCommand.usage` ```python usage() → None ``` --- ## class `MemoryWatchListCommand` Lists all watchpoints to display in context layout. ## function `MemoryWatchListCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property MemoryWatchListCommand.settings Return the list of settings for this command. --- ## function `MemoryWatchListCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `MemoryWatchListCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `MemoryWatchListCommand.do_invoke` ```python do_invoke(_: List[str]) → None ``` --- ## function `MemoryWatchListCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `MemoryWatchListCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `MemoryWatchListCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `MemoryWatchListCommand.post_load` ```python post_load() → None ``` --- ## function `MemoryWatchListCommand.pre_load` ```python pre_load() → None ``` --- ## function `MemoryWatchListCommand.usage` ```python usage() → None ``` --- ## class `MemoryWatchResetCommand` Removes all watchpoints. ## function `MemoryWatchResetCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property MemoryWatchResetCommand.settings Return the list of settings for this command. --- ## function `MemoryWatchResetCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `MemoryWatchResetCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `MemoryWatchResetCommand.do_invoke` ```python do_invoke(_: List[str]) → None ``` --- ## function `MemoryWatchResetCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `MemoryWatchResetCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `MemoryWatchResetCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `MemoryWatchResetCommand.post_load` ```python post_load() → None ``` --- ## function `MemoryWatchResetCommand.pre_load` ```python pre_load() → None ``` --- ## function `MemoryWatchResetCommand.usage` ```python usage() → None ``` --- ## class `NamedBreakpoint` Breakpoint which shows a specified name, when hit. ## function `NamedBreakpoint.__init__` ```python __init__(location: str, name: str) → None ``` --- ## function `NamedBreakpoint.stop` ```python stop() → bool ``` --- ## class `NamedBreakpointCommand` Sets a breakpoint and assigns a name to it, which will be shown, when it's hit. ## function `NamedBreakpointCommand.__init__` ```python __init__() → None ``` --- #### property NamedBreakpointCommand.settings Return the list of settings for this command. --- ## function `NamedBreakpointCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `NamedBreakpointCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `NamedBreakpointCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `NamedBreakpointCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `NamedBreakpointCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `NamedBreakpointCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `NamedBreakpointCommand.post_load` ```python post_load() → None ``` --- ## function `NamedBreakpointCommand.pre_load` ```python pre_load() → None ``` --- ## function `NamedBreakpointCommand.usage` ```python usage() → None ``` --- ## class `NopCommand` Patch the instruction(s) pointed by parameters with NOP. Note: this command is architecture aware. ## function `NopCommand.__init__` ```python __init__() → None ``` --- #### property NopCommand.settings Return the list of settings for this command. --- ## function `NopCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `NopCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `NopCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `NopCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `NopCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `NopCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `NopCommand.post_load` ```python post_load() → None ``` --- ## function `NopCommand.pre_load` ```python pre_load() → None ``` --- ## function `NopCommand.usage` ```python usage() → None ``` --- ## class `PCustomCommand` Dump user defined structure. This command attempts to reproduce WinDBG awesome `dt` command for GDB and allows to apply structures (from symbols or custom) directly to an address. Custom structures can be defined in pure Python using ctypes, and should be stored in a specific directory, whose path must be stored in the `pcustom.struct_path` configuration setting. ## function `PCustomCommand.__init__` ```python __init__() → None ``` --- #### property PCustomCommand.settings Return the list of settings for this command. --- ## function `PCustomCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `PCustomCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `PCustomCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `PCustomCommand.explode_type` ```python explode_type(arg: str) → Tuple[str, str] ``` --- ## function `PCustomCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `PCustomCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `PCustomCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `PCustomCommand.post_load` ```python post_load() → None ``` --- ## function `PCustomCommand.pre_load` ```python pre_load() → None ``` --- ## function `PCustomCommand.usage` ```python usage() → None ``` --- ## class `PCustomEditCommand` PCustom: edit the content of a given structure ## function `PCustomEditCommand.__init__` ```python __init__() → None ``` --- #### property PCustomEditCommand.settings Return the list of settings for this command. --- ## function `PCustomEditCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `PCustomEditCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `PCustomEditCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `PCustomEditCommand.explode_type` ```python explode_type(arg: str) → Tuple[str, str] ``` --- ## function `PCustomEditCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `PCustomEditCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `PCustomEditCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `PCustomEditCommand.post_load` ```python post_load() → None ``` --- ## function `PCustomEditCommand.pre_load` ```python pre_load() → None ``` --- ## function `PCustomEditCommand.usage` ```python usage() → None ``` --- ## class `PCustomListCommand` PCustom: list available structures ## function `PCustomListCommand.__init__` ```python __init__() → None ``` --- #### property PCustomListCommand.settings Return the list of settings for this command. --- ## function `PCustomListCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `PCustomListCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `PCustomListCommand.do_invoke` ```python do_invoke(_: List) → None ``` Dump the list of all the structures and their respective. --- ## function `PCustomListCommand.explode_type` ```python explode_type(arg: str) → Tuple[str, str] ``` --- ## function `PCustomListCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `PCustomListCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `PCustomListCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `PCustomListCommand.post_load` ```python post_load() → None ``` --- ## function `PCustomListCommand.pre_load` ```python pre_load() → None ``` --- ## function `PCustomListCommand.usage` ```python usage() → None ``` --- ## class `PCustomShowCommand` PCustom: show the content of a given structure ## function `PCustomShowCommand.__init__` ```python __init__() → None ``` --- #### property PCustomShowCommand.settings Return the list of settings for this command. --- ## function `PCustomShowCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `PCustomShowCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `PCustomShowCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `PCustomShowCommand.explode_type` ```python explode_type(arg: str) → Tuple[str, str] ``` --- ## function `PCustomShowCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `PCustomShowCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `PCustomShowCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `PCustomShowCommand.post_load` ```python post_load() → None ``` --- ## function `PCustomShowCommand.pre_load` ```python pre_load() → None ``` --- ## function `PCustomShowCommand.usage` ```python usage() → None ``` --- ## class `PatchByteCommand` Write specified BYTE to the specified address. ## function `PatchByteCommand.__init__` ```python __init__() → None ``` --- #### property PatchByteCommand.settings Return the list of settings for this command. --- ## function `PatchByteCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `PatchByteCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `PatchByteCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `PatchByteCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `PatchByteCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `PatchByteCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `PatchByteCommand.post_load` ```python post_load() → None ``` --- ## function `PatchByteCommand.pre_load` ```python pre_load() → None ``` --- ## function `PatchByteCommand.usage` ```python usage() → None ``` --- ## class `PatchCommand` Write specified values to the specified address. ## function `PatchCommand.__init__` ```python __init__() → None ``` --- #### property PatchCommand.settings Return the list of settings for this command. --- ## function `PatchCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `PatchCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `PatchCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `PatchCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `PatchCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `PatchCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `PatchCommand.post_load` ```python post_load() → None ``` --- ## function `PatchCommand.pre_load` ```python pre_load() → None ``` --- ## function `PatchCommand.usage` ```python usage() → None ``` --- ## class `PatchDwordCommand` Write specified DWORD to the specified address. ## function `PatchDwordCommand.__init__` ```python __init__() → None ``` --- #### property PatchDwordCommand.settings Return the list of settings for this command. --- ## function `PatchDwordCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `PatchDwordCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `PatchDwordCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `PatchDwordCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `PatchDwordCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `PatchDwordCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `PatchDwordCommand.post_load` ```python post_load() → None ``` --- ## function `PatchDwordCommand.pre_load` ```python pre_load() → None ``` --- ## function `PatchDwordCommand.usage` ```python usage() → None ``` --- ## class `PatchQwordCommand` Write specified QWORD to the specified address. ## function `PatchQwordCommand.__init__` ```python __init__() → None ``` --- #### property PatchQwordCommand.settings Return the list of settings for this command. --- ## function `PatchQwordCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `PatchQwordCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `PatchQwordCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `PatchQwordCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `PatchQwordCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `PatchQwordCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `PatchQwordCommand.post_load` ```python post_load() → None ``` --- ## function `PatchQwordCommand.pre_load` ```python pre_load() → None ``` --- ## function `PatchQwordCommand.usage` ```python usage() → None ``` --- ## class `PatchStringCommand` Write specified string to the specified memory location pointed by ADDRESS. ## function `PatchStringCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property PatchStringCommand.settings Return the list of settings for this command. --- ## function `PatchStringCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `PatchStringCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `PatchStringCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `PatchStringCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `PatchStringCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `PatchStringCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `PatchStringCommand.post_load` ```python post_load() → None ``` --- ## function `PatchStringCommand.pre_load` ```python pre_load() → None ``` --- ## function `PatchStringCommand.usage` ```python usage() → None ``` --- ## class `PatchWordCommand` Write specified WORD to the specified address. ## function `PatchWordCommand.__init__` ```python __init__() → None ``` --- #### property PatchWordCommand.settings Return the list of settings for this command. --- ## function `PatchWordCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `PatchWordCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `PatchWordCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `PatchWordCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `PatchWordCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `PatchWordCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `PatchWordCommand.post_load` ```python post_load() → None ``` --- ## function `PatchWordCommand.pre_load` ```python pre_load() → None ``` --- ## function `PatchWordCommand.usage` ```python usage() → None ``` --- ## class `PatternCommand` Generate or Search a De Bruijn Sequence of unique substrings of length N and a total length of LENGTH. The default value of N is set to match the currently loaded architecture. ## function `PatternCommand.__init__` ```python __init__() → None ``` --- #### property PatternCommand.settings Return the list of settings for this command. --- ## function `PatternCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `PatternCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `PatternCommand.do_invoke` ```python do_invoke(_: List[str]) → None ``` --- ## function `PatternCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `PatternCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `PatternCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `PatternCommand.post_load` ```python post_load() → None ``` --- ## function `PatternCommand.pre_load` ```python pre_load() → None ``` --- ## function `PatternCommand.usage` ```python usage() → None ``` --- ## class `PatternCreateCommand` Generate a De Bruijn Sequence of unique substrings of length N and a total length of LENGTH. The default value of N is set to match the currently loaded architecture. ## function `PatternCreateCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property PatternCreateCommand.settings Return the list of settings for this command. --- ## function `PatternCreateCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `PatternCreateCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `PatternCreateCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `PatternCreateCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `PatternCreateCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `PatternCreateCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `PatternCreateCommand.post_load` ```python post_load() → None ``` --- ## function `PatternCreateCommand.pre_load` ```python pre_load() → None ``` --- ## function `PatternCreateCommand.usage` ```python usage() → None ``` --- ## class `PatternSearchCommand` Search a De Bruijn Sequence of unique substrings of length N and a maximum total length of MAX_LENGTH. The default value of N is set to match the currently loaded architecture. The PATTERN argument can be a GDB symbol (such as a register name), a string or a hexadecimal value ## function `PatternSearchCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property PatternSearchCommand.settings Return the list of settings for this command. --- ## function `PatternSearchCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `PatternSearchCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `PatternSearchCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `PatternSearchCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `PatternSearchCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `PatternSearchCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `PatternSearchCommand.post_load` ```python post_load() → None ``` --- ## function `PatternSearchCommand.pre_load` ```python pre_load() → None ``` --- ## function `PatternSearchCommand.search` ```python search(pattern: str, size: int, period: int) → None ``` --- ## function `PatternSearchCommand.usage` ```python usage() → None ``` --- ## class `Permission` GEF representation of Linux permission. --- ## class `Phdr` ## function `Phdr.__init__` ```python __init__(elf: __main__.Elf, off: int) → None ``` --- ## class `PieAttachCommand` Do attach with PIE breakpoint support. ## function `PieAttachCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property PieAttachCommand.settings Return the list of settings for this command. --- ## function `PieAttachCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `PieAttachCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `PieAttachCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `PieAttachCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `PieAttachCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `PieAttachCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `PieAttachCommand.post_load` ```python post_load() → None ``` --- ## function `PieAttachCommand.pre_load` ```python pre_load() → None ``` --- ## function `PieAttachCommand.usage` ```python usage() → None ``` --- ## class `PieBreakpointCommand` Set a PIE breakpoint at an offset from the target binaries base address. ## function `PieBreakpointCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property PieBreakpointCommand.settings Return the list of settings for this command. --- ## function `PieBreakpointCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `PieBreakpointCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `PieBreakpointCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `PieBreakpointCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `PieBreakpointCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `PieBreakpointCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `PieBreakpointCommand.post_load` ```python post_load() → None ``` --- ## function `PieBreakpointCommand.pre_load` ```python pre_load() → None ``` --- ## function `PieBreakpointCommand.set_pie_breakpoint` ```python set_pie_breakpoint(set_func: Callable[[int], str], addr: int) → None ``` --- ## function `PieBreakpointCommand.usage` ```python usage() → None ``` --- ## class `PieCommand` PIE breakpoint support. ## function `PieCommand.__init__` ```python __init__() → None ``` --- #### property PieCommand.settings Return the list of settings for this command. --- ## function `PieCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `PieCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `PieCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `PieCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `PieCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `PieCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `PieCommand.post_load` ```python post_load() → None ``` --- ## function `PieCommand.pre_load` ```python pre_load() → None ``` --- ## function `PieCommand.usage` ```python usage() → None ``` --- ## class `PieDeleteCommand` Delete a PIE breakpoint. ## function `PieDeleteCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property PieDeleteCommand.settings Return the list of settings for this command. --- ## function `PieDeleteCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `PieDeleteCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `PieDeleteCommand.delete_bp` ```python delete_bp(breakpoints: List[__main__.PieVirtualBreakpoint]) → None ``` --- ## function `PieDeleteCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `PieDeleteCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `PieDeleteCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `PieDeleteCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `PieDeleteCommand.post_load` ```python post_load() → None ``` --- ## function `PieDeleteCommand.pre_load` ```python pre_load() → None ``` --- ## function `PieDeleteCommand.usage` ```python usage() → None ``` --- ## class `PieInfoCommand` Display breakpoint info. ## function `PieInfoCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property PieInfoCommand.settings Return the list of settings for this command. --- ## function `PieInfoCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `PieInfoCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `PieInfoCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `PieInfoCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `PieInfoCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `PieInfoCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `PieInfoCommand.post_load` ```python post_load() → None ``` --- ## function `PieInfoCommand.pre_load` ```python pre_load() → None ``` --- ## function `PieInfoCommand.usage` ```python usage() → None ``` --- ## class `PieRemoteCommand` Attach to a remote connection with PIE breakpoint support. ## function `PieRemoteCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property PieRemoteCommand.settings Return the list of settings for this command. --- ## function `PieRemoteCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `PieRemoteCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `PieRemoteCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `PieRemoteCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `PieRemoteCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `PieRemoteCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `PieRemoteCommand.post_load` ```python post_load() → None ``` --- ## function `PieRemoteCommand.pre_load` ```python pre_load() → None ``` --- ## function `PieRemoteCommand.usage` ```python usage() → None ``` --- ## class `PieRunCommand` Run process with PIE breakpoint support. ## function `PieRunCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property PieRunCommand.settings Return the list of settings for this command. --- ## function `PieRunCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `PieRunCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `PieRunCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `PieRunCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `PieRunCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `PieRunCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `PieRunCommand.post_load` ```python post_load() → None ``` --- ## function `PieRunCommand.pre_load` ```python pre_load() → None ``` --- ## function `PieRunCommand.usage` ```python usage() → None ``` --- ## class `PieVirtualBreakpoint` PIE virtual breakpoint (not real breakpoint). ## function `PieVirtualBreakpoint.__init__` ```python __init__(set_func: Callable[[int], str], vbp_num: int, addr: int) → None ``` --- ## function `PieVirtualBreakpoint.destroy` ```python destroy() → None ``` --- ## function `PieVirtualBreakpoint.instantiate` ```python instantiate(base: int) → None ``` --- ## class `PowerPC` --- #### property PowerPC.endianness --- #### property PowerPC.fp --- #### property PowerPC.pc --- #### property PowerPC.registers --- #### property PowerPC.sp --- ## function `PowerPC.canary_address` ```python canary_address() → int ``` --- ## function `PowerPC.flag_register_to_human` ```python flag_register_to_human(val: Optional[int] = None) → str ``` --- ## function `PowerPC.get_ith_parameter` ```python get_ith_parameter(i: int, in_func: bool = True) → Tuple[str, Optional[int]] ``` Retrieves the correct parameter used for the current function call. --- ## function `PowerPC.get_ra` ```python get_ra(insn: __main__.Instruction, frame: 'gdb.Frame') → Optional[int] ``` --- ## function `PowerPC.is_branch_taken` ```python is_branch_taken(insn: __main__.Instruction) → Tuple[bool, str] ``` --- ## function `PowerPC.is_call` ```python is_call(insn: __main__.Instruction) → bool ``` --- ## function `PowerPC.is_conditional_branch` ```python is_conditional_branch(insn: __main__.Instruction) → bool ``` --- ## function `PowerPC.is_ret` ```python is_ret(insn: __main__.Instruction) → bool ``` --- ## function `PowerPC.mprotect_asm` ```python mprotect_asm(addr: int, size: int, perm: __main__.Permission) → str ``` --- ## function `PowerPC.register` ```python register(name: str) → int ``` --- ## function `PowerPC.reset_caches` ```python reset_caches() → None ``` --- ## function `PowerPC.supports_gdb_arch` ```python supports_gdb_arch(gdb_arch: str) → Optional[bool] ``` If implemented by a child `Architecture`, this function dictates if the current class supports the loaded ELF file (which can be accessed via `gef.binary`). This callback function will override any assumption made by GEF to determine the architecture. --- ## class `PowerPC64` --- #### property PowerPC64.endianness --- #### property PowerPC64.fp --- #### property PowerPC64.pc --- #### property PowerPC64.registers --- #### property PowerPC64.sp --- ## function `PowerPC64.canary_address` ```python canary_address() → int ``` --- ## function `PowerPC64.flag_register_to_human` ```python flag_register_to_human(val: Optional[int] = None) → str ``` --- ## function `PowerPC64.get_ith_parameter` ```python get_ith_parameter(i: int, in_func: bool = True) → Tuple[str, Optional[int]] ``` Retrieves the correct parameter used for the current function call. --- ## function `PowerPC64.get_ra` ```python get_ra(insn: __main__.Instruction, frame: 'gdb.Frame') → Optional[int] ``` --- ## function `PowerPC64.is_branch_taken` ```python is_branch_taken(insn: __main__.Instruction) → Tuple[bool, str] ``` --- ## function `PowerPC64.is_call` ```python is_call(insn: __main__.Instruction) → bool ``` --- ## function `PowerPC64.is_conditional_branch` ```python is_conditional_branch(insn: __main__.Instruction) → bool ``` --- ## function `PowerPC64.is_ret` ```python is_ret(insn: __main__.Instruction) → bool ``` --- ## function `PowerPC64.mprotect_asm` ```python mprotect_asm(addr: int, size: int, perm: __main__.Permission) → str ``` --- ## function `PowerPC64.register` ```python register(name: str) → int ``` --- ## function `PowerPC64.reset_caches` ```python reset_caches() → None ``` --- ## function `PowerPC64.supports_gdb_arch` ```python supports_gdb_arch(gdb_arch: str) → Optional[bool] ``` If implemented by a child `Architecture`, this function dictates if the current class supports the loaded ELF file (which can be accessed via `gef.binary`). This callback function will override any assumption made by GEF to determine the architecture. --- ## class `PrintFormatCommand` Print bytes format in commonly used formats, such as literals in high level languages. ## function `PrintFormatCommand.__init__` ```python __init__() → None ``` --- #### property PrintFormatCommand.format_matrix --- #### property PrintFormatCommand.settings Return the list of settings for this command. --- ## function `PrintFormatCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `PrintFormatCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `PrintFormatCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `PrintFormatCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `PrintFormatCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `PrintFormatCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `PrintFormatCommand.post_load` ```python post_load() → None ``` --- ## function `PrintFormatCommand.pre_load` ```python pre_load() → None ``` --- ## function `PrintFormatCommand.usage` ```python usage() → None ``` --- ## class `ProcessListingCommand` List and filter process. If a PATTERN is given as argument, results shown will be grepped by this pattern. ## function `ProcessListingCommand.__init__` ```python __init__() → None ``` --- #### property ProcessListingCommand.settings Return the list of settings for this command. --- ## function `ProcessListingCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `ProcessListingCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `ProcessListingCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `ProcessListingCommand.get_processes` ```python get_processes() → Generator[Dict[str, str], NoneType, NoneType] ``` --- ## function `ProcessListingCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `ProcessListingCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `ProcessListingCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `ProcessListingCommand.post_load` ```python post_load() → None ``` --- ## function `ProcessListingCommand.pre_load` ```python pre_load() → None ``` --- ## function `ProcessListingCommand.usage` ```python usage() → None ``` --- ## class `ProcessStatusCommand` Extends the info given by GDB `info proc`, by giving an exhaustive description of the process status (file descriptors, ancestor, descendants, etc.). ## function `ProcessStatusCommand.__init__` ```python __init__() → None ``` --- #### property ProcessStatusCommand.settings Return the list of settings for this command. --- ## function `ProcessStatusCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `ProcessStatusCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `ProcessStatusCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `ProcessStatusCommand.get_children_pids` ```python get_children_pids(pid: int) → List[int] ``` --- ## function `ProcessStatusCommand.get_cmdline_of` ```python get_cmdline_of(pid: int) → str ``` --- ## function `ProcessStatusCommand.get_process_path_of` ```python get_process_path_of(pid: int) → str ``` --- ## function `ProcessStatusCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `ProcessStatusCommand.get_state_of` ```python get_state_of(pid: int) → Dict[str, str] ``` --- ## function `ProcessStatusCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `ProcessStatusCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `ProcessStatusCommand.list_sockets` ```python list_sockets(pid: int) → List[int] ``` --- ## function `ProcessStatusCommand.parse_ip_port` ```python parse_ip_port(addr: str) → Tuple[str, int] ``` --- ## function `ProcessStatusCommand.post_load` ```python post_load() → None ``` --- ## function `ProcessStatusCommand.pre_load` ```python pre_load() → None ``` --- ## function `ProcessStatusCommand.show_ancestor` ```python show_ancestor() → None ``` --- ## function `ProcessStatusCommand.show_connections` ```python show_connections() → None ``` --- ## function `ProcessStatusCommand.show_descendants` ```python show_descendants() → None ``` --- ## function `ProcessStatusCommand.show_fds` ```python show_fds() → None ``` --- ## function `ProcessStatusCommand.show_info_proc` ```python show_info_proc() → None ``` --- ## function `ProcessStatusCommand.usage` ```python usage() → None ``` --- ## class `RISCV` --- #### property RISCV.endianness --- #### property RISCV.fp --- #### property RISCV.instruction_length --- #### property RISCV.pc --- #### property RISCV.ptrsize --- #### property RISCV.registers --- #### property RISCV.sp --- ## function `RISCV.canary_address` ```python canary_address() → int ``` --- ## function `RISCV.flag_register_to_human` ```python flag_register_to_human(val: Optional[int] = None) → str ``` --- ## function `RISCV.get_ith_parameter` ```python get_ith_parameter(i: int, in_func: bool = True) → Tuple[str, Optional[int]] ``` Retrieves the correct parameter used for the current function call. --- ## function `RISCV.get_ra` ```python get_ra(insn: __main__.Instruction, frame: 'gdb.Frame') → Optional[int] ``` --- ## function `RISCV.is_branch_taken` ```python is_branch_taken(insn: __main__.Instruction) → Tuple[bool, str] ``` --- ## function `RISCV.is_call` ```python is_call(insn: __main__.Instruction) → bool ``` --- ## function `RISCV.is_conditional_branch` ```python is_conditional_branch(insn: __main__.Instruction) → bool ``` --- ## function `RISCV.is_ret` ```python is_ret(insn: __main__.Instruction) → bool ``` --- ## function `RISCV.mprotect_asm` ```python mprotect_asm(addr: int, size: int, perm: __main__.Permission) → str ``` --- ## function `RISCV.register` ```python register(name: str) → int ``` --- ## function `RISCV.reset_caches` ```python reset_caches() → None ``` --- ## function `RISCV.supports_gdb_arch` ```python supports_gdb_arch(gdb_arch: str) → Optional[bool] ``` If implemented by a child `Architecture`, this function dictates if the current class supports the loaded ELF file (which can be accessed via `gef.binary`). This callback function will override any assumption made by GEF to determine the architecture. --- ## class `RedirectOutputContext` ## function `RedirectOutputContext.__init__` ```python __init__(to: str = '/dev/null') → None ``` --- ## class `RemoteCommand` GDB `target remote` command on steroids. This command will use the remote procfs to create a local copy of the execution environment, including the target binary and its libraries in the local temporary directory (the value by default is in `gef.config.tempdir`). Additionally, it will fetch all the /proc/PID/maps and loads all its information. If procfs is not available remotely, the command will likely fail. You can however still use the limited command provided by GDB `target remote`. ## function `RemoteCommand.__init__` ```python __init__() → None ``` --- #### property RemoteCommand.settings Return the list of settings for this command. --- ## function `RemoteCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `RemoteCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `RemoteCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `RemoteCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `RemoteCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `RemoteCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `RemoteCommand.post_load` ```python post_load() → None ``` --- ## function `RemoteCommand.pre_load` ```python pre_load() → None ``` --- ## function `RemoteCommand.usage` ```python usage() → None ``` --- ## class `ResetCacheCommand` Reset cache of all stored data. This command is here for debugging and test purposes, GEF handles properly the cache reset under "normal" scenario. ## function `ResetCacheCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property ResetCacheCommand.settings Return the list of settings for this command. --- ## function `ResetCacheCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `ResetCacheCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `ResetCacheCommand.do_invoke` ```python do_invoke(_: List[str]) → None ``` --- ## function `ResetCacheCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `ResetCacheCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `ResetCacheCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `ResetCacheCommand.post_load` ```python post_load() → None ``` --- ## function `ResetCacheCommand.pre_load` ```python pre_load() → None ``` --- ## function `ResetCacheCommand.usage` ```python usage() → None ``` --- ## class `SPARC` Refs: - https://math-atlas.sourceforge.net/devel/assembly/SunUS_isa.pdf --- #### property SPARC.endianness --- #### property SPARC.fp --- #### property SPARC.pc --- #### property SPARC.ptrsize --- #### property SPARC.registers --- #### property SPARC.sp --- ## function `SPARC.canary_address` ```python canary_address() → int ``` --- ## function `SPARC.flag_register_to_human` ```python flag_register_to_human(val: Optional[int] = None) → str ``` --- ## function `SPARC.get_ith_parameter` ```python get_ith_parameter(i: int, in_func: bool = True) → Tuple[str, Optional[int]] ``` Retrieves the correct parameter used for the current function call. --- ## function `SPARC.get_ra` ```python get_ra(insn: __main__.Instruction, frame: 'gdb.Frame') → Optional[int] ``` --- ## function `SPARC.is_branch_taken` ```python is_branch_taken(insn: __main__.Instruction) → Tuple[bool, str] ``` --- ## function `SPARC.is_call` ```python is_call(insn: __main__.Instruction) → bool ``` --- ## function `SPARC.is_conditional_branch` ```python is_conditional_branch(insn: __main__.Instruction) → bool ``` --- ## function `SPARC.is_ret` ```python is_ret(insn: __main__.Instruction) → bool ``` --- ## function `SPARC.mprotect_asm` ```python mprotect_asm(addr: int, size: int, perm: __main__.Permission) → str ``` --- ## function `SPARC.register` ```python register(name: str) → int ``` --- ## function `SPARC.reset_caches` ```python reset_caches() → None ``` --- ## function `SPARC.supports_gdb_arch` ```python supports_gdb_arch(gdb_arch: str) → Optional[bool] ``` If implemented by a child `Architecture`, this function dictates if the current class supports the loaded ELF file (which can be accessed via `gef.binary`). This callback function will override any assumption made by GEF to determine the architecture. --- ## class `SPARC64` Refs: - http://math-atlas.sourceforge.net/devel/assembly/abi_sysV_sparc.pdf - https://cr.yp.to/2005-590/sparcv9.pdf --- #### property SPARC64.endianness --- #### property SPARC64.fp --- #### property SPARC64.pc --- #### property SPARC64.ptrsize --- #### property SPARC64.registers --- #### property SPARC64.sp --- ## function `SPARC64.canary_address` ```python canary_address() → int ``` --- ## function `SPARC64.flag_register_to_human` ```python flag_register_to_human(val: Optional[int] = None) → str ``` --- ## function `SPARC64.get_ith_parameter` ```python get_ith_parameter(i: int, in_func: bool = True) → Tuple[str, Optional[int]] ``` Retrieves the correct parameter used for the current function call. --- ## function `SPARC64.get_ra` ```python get_ra(insn: __main__.Instruction, frame: 'gdb.Frame') → Optional[int] ``` --- ## function `SPARC64.is_branch_taken` ```python is_branch_taken(insn: __main__.Instruction) → Tuple[bool, str] ``` --- ## function `SPARC64.is_call` ```python is_call(insn: __main__.Instruction) → bool ``` --- ## function `SPARC64.is_conditional_branch` ```python is_conditional_branch(insn: __main__.Instruction) → bool ``` --- ## function `SPARC64.is_ret` ```python is_ret(insn: __main__.Instruction) → bool ``` --- ## function `SPARC64.mprotect_asm` ```python mprotect_asm(addr: int, size: int, perm: __main__.Permission) → str ``` --- ## function `SPARC64.register` ```python register(name: str) → int ``` --- ## function `SPARC64.reset_caches` ```python reset_caches() → None ``` --- ## function `SPARC64.supports_gdb_arch` ```python supports_gdb_arch(gdb_arch: str) → Optional[bool] ``` If implemented by a child `Architecture`, this function dictates if the current class supports the loaded ELF file (which can be accessed via `gef.binary`). This callback function will override any assumption made by GEF to determine the architecture. --- ## class `ScanSectionCommand` Search for addresses that are located in a memory mapping (haystack) that belonging to another (needle). ## function `ScanSectionCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property ScanSectionCommand.settings Return the list of settings for this command. --- ## function `ScanSectionCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `ScanSectionCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `ScanSectionCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `ScanSectionCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `ScanSectionCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `ScanSectionCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `ScanSectionCommand.post_load` ```python post_load() → None ``` --- ## function `ScanSectionCommand.pre_load` ```python pre_load() → None ``` --- ## function `ScanSectionCommand.usage` ```python usage() → None ``` --- ## class `SearchPatternCommand` SearchPatternCommand: search a pattern in memory. If given an hex value (starting with 0x) the command will also try to look for upwards cross-references to this address. ## function `SearchPatternCommand.__init__` ```python __init__() → None ``` --- #### property SearchPatternCommand.settings Return the list of settings for this command. --- ## function `SearchPatternCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `SearchPatternCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `SearchPatternCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `SearchPatternCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `SearchPatternCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `SearchPatternCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `SearchPatternCommand.post_load` ```python post_load() → None ``` --- ## function `SearchPatternCommand.pre_load` ```python pre_load() → None ``` --- ## function `SearchPatternCommand.print_loc` ```python print_loc(loc: Tuple[int, int, str]) → None ``` --- ## function `SearchPatternCommand.print_section` ```python print_section(section: __main__.Section) → None ``` --- ## function `SearchPatternCommand.search_binpattern_by_address` ```python search_binpattern_by_address( binpattern: bytes, start_address: int, end_address: int ) → List[Tuple[int, int, Optional[str]]] ``` Search a binary pattern within a range defined by arguments. --- ## function `SearchPatternCommand.search_pattern` ```python search_pattern(pattern: str, section_name: str) → None ``` Search a pattern within the whole userland memory. --- ## function `SearchPatternCommand.search_pattern_by_address` ```python search_pattern_by_address( pattern: str, start_address: int, end_address: int ) → List[Tuple[int, int, Optional[str]]] ``` Search a pattern within a range defined by arguments. --- ## function `SearchPatternCommand.usage` ```python usage() → None ``` --- ## class `Section` GEF representation of process memory sections. ## function `Section.__init__` ```python __init__(**kwargs: Any) → None ``` --- #### property Section.realpath --- #### property Section.size --- ## function `Section.is_executable` ```python is_executable() → bool ``` --- ## function `Section.is_readable` ```python is_readable() → bool ``` --- ## function `Section.is_writable` ```python is_writable() → bool ``` --- ## class `SectionBaseFunction` Return the matching file's base address plus an optional offset. Defaults to current file. Note that quotes need to be escaped ## function `SectionBaseFunction.__init__` ```python __init__() → None ``` --- ## function `SectionBaseFunction.arg_to_long` ```python arg_to_long(args: List, index: int, default: int = 0) → int ``` --- ## function `SectionBaseFunction.do_invoke` ```python do_invoke(args: List) → int ``` --- ## function `SectionBaseFunction.invoke` ```python invoke(*args: Any) → int ``` --- ## class `Shdr` ## function `Shdr.__init__` ```python __init__(elf: Optional[__main__.Elf], off: int) → None ``` --- ## class `ShellcodeCommand` ShellcodeCommand uses @JonathanSalwan simple-yet-awesome shellcode API to download shellcodes. ## function `ShellcodeCommand.__init__` ```python __init__() → None ``` --- #### property ShellcodeCommand.settings Return the list of settings for this command. --- ## function `ShellcodeCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `ShellcodeCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `ShellcodeCommand.do_invoke` ```python do_invoke(_: List[str]) → None ``` --- ## function `ShellcodeCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `ShellcodeCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `ShellcodeCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `ShellcodeCommand.post_load` ```python post_load() → None ``` --- ## function `ShellcodeCommand.pre_load` ```python pre_load() → None ``` --- ## function `ShellcodeCommand.usage` ```python usage() → None ``` --- ## class `ShellcodeGetCommand` Download shellcode from shell-storm's shellcode database. ## function `ShellcodeGetCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property ShellcodeGetCommand.settings Return the list of settings for this command. --- ## function `ShellcodeGetCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `ShellcodeGetCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `ShellcodeGetCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `ShellcodeGetCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `ShellcodeGetCommand.get_shellcode` ```python get_shellcode(sid: int) → None ``` --- ## function `ShellcodeGetCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `ShellcodeGetCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `ShellcodeGetCommand.post_load` ```python post_load() → None ``` --- ## function `ShellcodeGetCommand.pre_load` ```python pre_load() → None ``` --- ## function `ShellcodeGetCommand.usage` ```python usage() → None ``` --- ## class `ShellcodeSearchCommand` Search pattern in shell-storm's shellcode database. ## function `ShellcodeSearchCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property ShellcodeSearchCommand.settings Return the list of settings for this command. --- ## function `ShellcodeSearchCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `ShellcodeSearchCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `ShellcodeSearchCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `ShellcodeSearchCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `ShellcodeSearchCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `ShellcodeSearchCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `ShellcodeSearchCommand.post_load` ```python post_load() → None ``` --- ## function `ShellcodeSearchCommand.pre_load` ```python pre_load() → None ``` --- ## function `ShellcodeSearchCommand.search_shellcode` ```python search_shellcode(search_options: List) → None ``` --- ## function `ShellcodeSearchCommand.usage` ```python usage() → None ``` --- ## class `SmartEvalCommand` SmartEval: Smart eval (vague approach to mimic WinDBG `?`). ## function `SmartEvalCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property SmartEvalCommand.settings Return the list of settings for this command. --- ## function `SmartEvalCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `SmartEvalCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `SmartEvalCommand.distance` ```python distance(args: Tuple[str, str]) → None ``` --- ## function `SmartEvalCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `SmartEvalCommand.evaluate` ```python evaluate(expr: List[str]) → None ``` --- ## function `SmartEvalCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `SmartEvalCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `SmartEvalCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `SmartEvalCommand.post_load` ```python post_load() → None ``` --- ## function `SmartEvalCommand.pre_load` ```python pre_load() → None ``` --- ## function `SmartEvalCommand.usage` ```python usage() → None ``` --- ## class `SolveKernelSymbolCommand` Solve kernel symbols from kallsyms table. ## function `SolveKernelSymbolCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property SolveKernelSymbolCommand.settings Return the list of settings for this command. --- ## function `SolveKernelSymbolCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `SolveKernelSymbolCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `SolveKernelSymbolCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `SolveKernelSymbolCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `SolveKernelSymbolCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `SolveKernelSymbolCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `SolveKernelSymbolCommand.post_load` ```python post_load() → None ``` --- ## function `SolveKernelSymbolCommand.pre_load` ```python pre_load() → None ``` --- ## function `SolveKernelSymbolCommand.usage` ```python usage() → None ``` --- ## class `StackOffsetFunction` Return the current stack base address plus an optional offset. ## function `StackOffsetFunction.__init__` ```python __init__() → None ``` --- ## function `StackOffsetFunction.arg_to_long` ```python arg_to_long(args: List, index: int, default: int = 0) → int ``` --- ## function `StackOffsetFunction.do_invoke` ```python do_invoke(args: List) → int ``` --- ## function `StackOffsetFunction.invoke` ```python invoke(*args: Any) → int ``` --- ## class `StubBreakpoint` Create a breakpoint to permanently disable a call (fork/alarm/signal/etc.). ## function `StubBreakpoint.__init__` ```python __init__(func: str, retval: Optional[int]) → None ``` --- ## function `StubBreakpoint.stop` ```python stop() → bool ``` --- ## class `StubCommand` Stub out the specified function. This function is useful when needing to skip one function to be called and disrupt your runtime flow (ex. fork). ## function `StubCommand.__init__` ```python __init__() → None ``` --- #### property StubCommand.settings Return the list of settings for this command. --- ## function `StubCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `StubCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `StubCommand.wrapper` ```python wrapper(*args: Any, **kwargs: Any) → Callable ``` --- ## function `StubCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `StubCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `StubCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `StubCommand.post_load` ```python post_load() → None ``` --- ## function `StubCommand.pre_load` ```python pre_load() → None ``` --- ## function `StubCommand.usage` ```python usage() → None ``` --- ## class `TraceFreeBreakpoint` Track calls to free() and attempts to detect inconsistencies. ## function `TraceFreeBreakpoint.__init__` ```python __init__() → None ``` --- ## function `TraceFreeBreakpoint.stop` ```python stop() → bool ``` --- ## class `TraceFreeRetBreakpoint` Internal temporary breakpoint to track free()d values. ## function `TraceFreeRetBreakpoint.__init__` ```python __init__(addr: int) → None ``` --- ## function `TraceFreeRetBreakpoint.stop` ```python stop() → bool ``` --- ## class `TraceMallocBreakpoint` Track allocations done with malloc() or calloc(). ## function `TraceMallocBreakpoint.__init__` ```python __init__(name: str) → None ``` --- ## function `TraceMallocBreakpoint.stop` ```python stop() → bool ``` --- ## class `TraceMallocRetBreakpoint` Internal temporary breakpoint to retrieve the return value of malloc(). ## function `TraceMallocRetBreakpoint.__init__` ```python __init__(size: int, name: str) → None ``` --- ## function `TraceMallocRetBreakpoint.stop` ```python stop() → bool ``` --- ## class `TraceReallocBreakpoint` Track re-allocations done with realloc(). ## function `TraceReallocBreakpoint.__init__` ```python __init__() → None ``` --- ## function `TraceReallocBreakpoint.stop` ```python stop() → bool ``` --- ## class `TraceReallocRetBreakpoint` Internal temporary breakpoint to retrieve the return value of realloc(). ## function `TraceReallocRetBreakpoint.__init__` ```python __init__(ptr: int, size: int) → None ``` --- ## function `TraceReallocRetBreakpoint.stop` ```python stop() → bool ``` --- ## class `TraceRunCommand` Create a runtime trace of all instructions executed from $pc to LOCATION specified. The trace is stored in a text file that can be next imported in IDA Pro to visualize the runtime path. ## function `TraceRunCommand.__init__` ```python __init__() → None ``` --- #### property TraceRunCommand.settings Return the list of settings for this command. --- ## function `TraceRunCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `TraceRunCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `TraceRunCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `TraceRunCommand.get_frames_size` ```python get_frames_size() → int ``` --- ## function `TraceRunCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `TraceRunCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `TraceRunCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `TraceRunCommand.post_load` ```python post_load() → None ``` --- ## function `TraceRunCommand.pre_load` ```python pre_load() → None ``` --- ## function `TraceRunCommand.start_tracing` ```python start_tracing(loc_start: int, loc_end: int, depth: int) → None ``` --- ## function `TraceRunCommand.trace` ```python trace(loc_start: int, loc_end: int, depth: int) → None ``` --- ## function `TraceRunCommand.usage` ```python usage() → None ``` --- ## class `UafWatchpoint` Custom watchpoints set TraceFreeBreakpoint() to monitor free()d pointers being used. ## function `UafWatchpoint.__init__` ```python __init__(addr: int) → None ``` --- ## function `UafWatchpoint.stop` ```python stop() → bool ``` If this method is triggered, we likely have a UaF. Break the execution and report it. --- ## class `VMMapCommand` Display a comprehensive layout of the virtual memory mapping. If a filter argument, GEF will filter out the mapping whose pathname do not match that filter. ## function `VMMapCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property VMMapCommand.settings Return the list of settings for this command. --- ## function `VMMapCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `VMMapCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `VMMapCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `VMMapCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `VMMapCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `VMMapCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `VMMapCommand.is_integer` ```python is_integer(n: str) → bool ``` --- ## function `VMMapCommand.post_load` ```python post_load() → None ``` --- ## function `VMMapCommand.pre_load` ```python pre_load() → None ``` --- ## function `VMMapCommand.print_entry` ```python print_entry(entry: __main__.Section) → None ``` --- ## function `VMMapCommand.show_legend` ```python show_legend() → None ``` --- ## function `VMMapCommand.usage` ```python usage() → None ``` --- ## class `VersionCommand` Display GEF version info. ## function `VersionCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property VersionCommand.settings Return the list of settings for this command. --- ## function `VersionCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `VersionCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `VersionCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `VersionCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `VersionCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `VersionCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `VersionCommand.post_load` ```python post_load() → None ``` --- ## function `VersionCommand.pre_load` ```python pre_load() → None ``` --- ## function `VersionCommand.usage` ```python usage() → None ``` --- ## class `X86` --- #### property X86.endianness --- #### property X86.fp --- #### property X86.pc --- #### property X86.ptrsize --- #### property X86.registers --- #### property X86.sp --- ## function `X86.canary_address` ```python canary_address() → int ``` --- ## function `X86.flag_register_to_human` ```python flag_register_to_human(val: Optional[int] = None) → str ``` --- ## function `X86.get_ith_parameter` ```python get_ith_parameter(i: int, in_func: bool = True) → Tuple[str, Optional[int]] ``` --- ## function `X86.get_ra` ```python get_ra(insn: __main__.Instruction, frame: 'gdb.Frame') → Optional[int] ``` --- ## function `X86.is_branch_taken` ```python is_branch_taken(insn: __main__.Instruction) → Tuple[bool, str] ``` --- ## function `X86.is_call` ```python is_call(insn: __main__.Instruction) → bool ``` --- ## function `X86.is_conditional_branch` ```python is_conditional_branch(insn: __main__.Instruction) → bool ``` --- ## function `X86.is_ret` ```python is_ret(insn: __main__.Instruction) → bool ``` --- ## function `X86.mprotect_asm` ```python mprotect_asm(addr: int, size: int, perm: __main__.Permission) → str ``` --- ## function `X86.register` ```python register(name: str) → int ``` --- ## function `X86.reset_caches` ```python reset_caches() → None ``` --- ## function `X86.supports_gdb_arch` ```python supports_gdb_arch(gdb_arch: str) → Optional[bool] ``` If implemented by a child `Architecture`, this function dictates if the current class supports the loaded ELF file (which can be accessed via `gef.binary`). This callback function will override any assumption made by GEF to determine the architecture. --- ## class `X86_64` --- #### property X86_64.endianness --- #### property X86_64.fp --- #### property X86_64.pc --- #### property X86_64.ptrsize --- #### property X86_64.registers --- #### property X86_64.sp --- ## function `X86_64.canary_address` ```python canary_address() → int ``` --- ## function `X86_64.flag_register_to_human` ```python flag_register_to_human(val: Optional[int] = None) → str ``` --- ## function `X86_64.get_ith_parameter` ```python get_ith_parameter(i: int, in_func: bool = True) → Tuple[str, Optional[int]] ``` Retrieves the correct parameter used for the current function call. --- ## function `X86_64.get_ra` ```python get_ra(insn: __main__.Instruction, frame: 'gdb.Frame') → Optional[int] ``` --- ## function `X86_64.is_branch_taken` ```python is_branch_taken(insn: __main__.Instruction) → Tuple[bool, str] ``` --- ## function `X86_64.is_call` ```python is_call(insn: __main__.Instruction) → bool ``` --- ## function `X86_64.is_conditional_branch` ```python is_conditional_branch(insn: __main__.Instruction) → bool ``` --- ## function `X86_64.is_ret` ```python is_ret(insn: __main__.Instruction) → bool ``` --- ## function `X86_64.mprotect_asm` ```python mprotect_asm(addr: int, size: int, perm: __main__.Permission) → str ``` --- ## function `X86_64.register` ```python register(name: str) → int ``` --- ## function `X86_64.reset_caches` ```python reset_caches() → None ``` --- ## function `X86_64.supports_gdb_arch` ```python supports_gdb_arch(gdb_arch: str) → Optional[bool] ``` If implemented by a child `Architecture`, this function dictates if the current class supports the loaded ELF file (which can be accessed via `gef.binary`). This callback function will override any assumption made by GEF to determine the architecture. --- ## class `XAddressInfoCommand` Retrieve and display runtime information for the location(s) given as parameter. ## function `XAddressInfoCommand.__init__` ```python __init__() → None ``` --- #### property XAddressInfoCommand.settings Return the list of settings for this command. --- ## function `XAddressInfoCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `XAddressInfoCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `XAddressInfoCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `XAddressInfoCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `XAddressInfoCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `XAddressInfoCommand.infos` ```python infos(address: int) → None ``` --- ## function `XAddressInfoCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `XAddressInfoCommand.post_load` ```python post_load() → None ``` --- ## function `XAddressInfoCommand.pre_load` ```python pre_load() → None ``` --- ## function `XAddressInfoCommand.usage` ```python usage() → None ``` --- ## class `XFilesCommand` Shows all libraries (and sections) loaded by binary. This command extends the GDB command `info files`, by retrieving more information from extra sources, and providing a better display. If an argument FILE is given, the output will grep information related to only that file. If an argument name is also given, the output will grep to the name within FILE. ## function `XFilesCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property XFilesCommand.settings Return the list of settings for this command. --- ## function `XFilesCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `XFilesCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `XFilesCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `XFilesCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `XFilesCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `XFilesCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `XFilesCommand.post_load` ```python post_load() → None ``` --- ## function `XFilesCommand.pre_load` ```python pre_load() → None ``` --- ## function `XFilesCommand.usage` ```python usage() → None ``` --- ## class `XorMemoryCommand` XOR a block of memory. The command allows to simply display the result, or patch it runtime at runtime. ## function `XorMemoryCommand.__init__` ```python __init__() → None ``` --- #### property XorMemoryCommand.settings Return the list of settings for this command. --- ## function `XorMemoryCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `XorMemoryCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `XorMemoryCommand.do_invoke` ```python do_invoke(_: List[str]) → None ``` --- ## function `XorMemoryCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `XorMemoryCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `XorMemoryCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `XorMemoryCommand.post_load` ```python post_load() → None ``` --- ## function `XorMemoryCommand.pre_load` ```python pre_load() → None ``` --- ## function `XorMemoryCommand.usage` ```python usage() → None ``` --- ## class `XorMemoryDisplayCommand` Display a block of memory pointed by ADDRESS by xor-ing each byte with KEY. The key must be provided in hexadecimal format. ## function `XorMemoryDisplayCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property XorMemoryDisplayCommand.settings Return the list of settings for this command. --- ## function `XorMemoryDisplayCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `XorMemoryDisplayCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `XorMemoryDisplayCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `XorMemoryDisplayCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `XorMemoryDisplayCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `XorMemoryDisplayCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `XorMemoryDisplayCommand.post_load` ```python post_load() → None ``` --- ## function `XorMemoryDisplayCommand.pre_load` ```python pre_load() → None ``` --- ## function `XorMemoryDisplayCommand.usage` ```python usage() → None ``` --- ## class `XorMemoryPatchCommand` Patch a block of memory pointed by ADDRESS by xor-ing each byte with KEY. The key must be provided in hexadecimal format. ## function `XorMemoryPatchCommand.__init__` ```python __init__(*args: Any, **kwargs: Any) → None ``` --- #### property XorMemoryPatchCommand.settings Return the list of settings for this command. --- ## function `XorMemoryPatchCommand.add_setting` ```python add_setting( name: str, value: Tuple[Any, type, str], description: str = '' ) → None ``` `add_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name] = value` instead --- ## function `XorMemoryPatchCommand.del_setting` ```python del_setting(name: str) → None ``` `del_setting` is **DEPRECATED** and will be removed in the future. Use `del self[setting_name]` instead --- ## function `XorMemoryPatchCommand.do_invoke` ```python do_invoke(argv: List[str]) → None ``` --- ## function `XorMemoryPatchCommand.get_setting` ```python get_setting(name: str) → Any ``` `get_setting` is **DEPRECATED** and will be removed in the future. Use `self[setting_name]` instead --- ## function `XorMemoryPatchCommand.has_setting` ```python has_setting(name: str) → bool ``` `has_setting` is **DEPRECATED** and will be removed in the future. Use `setting_name in self` instead --- ## function `XorMemoryPatchCommand.invoke` ```python invoke(args: str, from_tty: bool) → None ``` --- ## function `XorMemoryPatchCommand.post_load` ```python post_load() → None ``` --- ## function `XorMemoryPatchCommand.pre_load` ```python pre_load() → None ``` --- ## function `XorMemoryPatchCommand.usage` ```python usage() → None ``` --- ## class `Zone` Zone(name, zone_start, zone_end, filename) --- ## class `classproperty` Make the attribute a `classproperty`. --- _This file was automatically generated via [lazydocs](https://github.com/ml-tooling/lazydocs)._ ================================================ FILE: docs/api.md ================================================ ## Extending GEF `GEF` intends to provide a battery-included, quickly installable and crazy fast debugging environment sitting on top of GDB. But it most importantly provides all the primitives required to allow hackers to quickly create their own commands. This page intends to summarize how to create advanced GDB commands in moments using `GEF` as a library. A [dedicated repository](https://github.com/hugsy/gef-extras) was born to host [external scripts](https://github.com/hugsy/gef-extras/tree/main/scripts). This repo is open to all for contributions, no restrictions and the most valuable ones will be integrated into `gef.py`. ## Quick start Here is the most basic skeleton for creating a new `GEF` command named `newcmd`: ```python @register class NewCommand(GenericCommand): """Dummy new command.""" _cmdline_ = "newcmd" _syntax_ = f"{_cmdline_}" # optionally # _examples_ = [f"{_cmdline_} arg1 ...", ] # _aliases_ = ["alias_to_cmdline", ] @only_if_gdb_running # not required, ensures that the debug session is started def do_invoke(self, argv): # let's say we want to print some info about the architecture of the current binary print(f"gef.arch={gef.arch}") # or showing the current $pc print(f"gef.arch.pc={gef.arch.pc:#x}") ``` Loading it in `GEF` is as easy as ```text gef➤ source /path/to/newcmd.py [+] Loading 'NewCommand' ``` The new command is now loaded and part of GEF and can be invoked as such: ```text gef➤ newcmd gef.arch=<__main__.X86_64 object at 0x7fd5583571c0> gef.arch.pc=0x55555555a7d0 ``` Yes, that's it! Check out [the complete API](api/gef.md) to see what else GEF offers. ## Detailed explanation Our new command must be a class that inherits from GEF's `GenericCommand`. The *only* requirements are: * a `_cmdline_` attribute (the command to type on the GDB prompt). * a `_syntax_` attribute, which GEF will use to auto-generate the help menu. * a method `do_invoke(self, args)` which will be executed when the command is invoked. `args` is a list of the command line args provided when invoked. We make GEF aware of this new command by registering it in the `__main__` section of the script, by invoking the global function `register_external_command()`. Now you have a new GEF command which you can load, either from cli: ```text gef➤ source /path/to/newcmd.py ``` or add to your `~/.gdbinit`: ```bash echo source /path/to/newcmd.py >> ~/.gdbinit ``` ## Customizing context panes Sometimes you want something similar to a command to run on each break-like event and display itself as a part of the GEF context. This can be achieved using the following function `register_external_context_pane()`. Here is a simple example of how to make a custom context pane: ```python __start_time__ = int(time.time()) def wasted_time_debugging(): gef_print("You have wasted {} seconds!".format(int(time.time()) - __start_time__)) def wasted_time_debugging_title(): return "wasted:time:debugging:{}".format(int(time.time()) - __start_time__) register_external_context_pane("wasted_time_debugging", wasted_time_debugging, wasted_time_debugging_title) ``` Loading it in `GEF` is as easy as loading a command ```text gef➤ source /path/to/custom_context_pane.py ``` It can even be included in the same file as a Command. Now on each break you will notice a new pane near the bottom of the context. The order can be modified in the `GEF` context config. ### Context Pane API The API demonstrated above requires very specific argument types: ```python def register_external_context_pane( name: str, context_callback: Callable[None,[]], context_callback_title: Callable[str, []], condition_callback: Optional[Callable[bool, []]] = None ) -> None: ``` * `name`: a string that will be used as the panes setting name * `context_callback`: a function that uses `gef_print()` to print content in the pane * `context_callback_title`: a function that returns the title string or None to hide the title * `condition_callback` (optional): a function that returns a boolean deciding whether this context pane should be shown ### Context Layout Mapping API This API is designed for registering a new layout mapping for a GEF Context View. It specifies the interface for the function register_external_context_layout_mapping which operates similarly to the previously discussed register_external_context_pane. Pane must have been previously established in the layout configuration. ```python def register_external_context_layout_mapping( current_pane_name: str, display_pane_function: Callable[[], None], pane_title_function: Callable[[], Optional[str]], condition: Optional[Callable[[], bool]] = None ) -> None: ``` Registers a new mapping for an existing pane within the GEF Context View. * `current_pane_name`: the name of an already registered pane in the layout * `display_pane_function`: a function that prints content in the pane using `gef_print()` * `pane_title_function`: a function that returns a string to be used as the pane title or None if no title should be displayed * `condition`: (optional) a predicate function that must return True for the pane content and title to be displayed; if it returns False, the pane is skipped ## API Some of the most important parts of the API for creating new commands are mentioned (but not limited to) below. To see the full help of a function, open GDB and GEF, and use the embedded Python interpreter's `help` command. For example: ```bash gef➤ pi help(Architecture) ``` or even from outside GDB: ```bash gdb -q -ex 'pi help(hexdump)' -ex quit ``` The GEF API aims to provide a simpler and more Pythonic approach to GDB's. Some basic examples: * read the memory ```text gef ➤ pi print(hexdump( gef.memory.read(parse_address("$pc"), length=0x20 ))) 0x0000000000000000 f3 0f 1e fa 31 ed 49 89 d1 5e 48 89 e2 48 83 e4 ....1.I..^H..H.. 0x0000000000000010 f0 50 54 4c 8d 05 66 0d 01 00 48 8d 0d ef 0c 01 .PTL..f...H..... ``` * get access to the memory layout ```text gef ➤ pi print('\n'.join([ f"{x.page_start:#x} -> {x.page_end:#x}" for x in gef.memory.maps])) 0x555555554000 -> 0x555555558000 0x555555558000 -> 0x55555556c000 0x55555556c000 -> 0x555555575000 0x555555576000 -> 0x555555577000 0x555555577000 -> 0x555555578000 0x555555578000 -> 0x55555559a000 0x7ffff7cd8000 -> 0x7ffff7cda000 0x7ffff7cda000 -> 0x7ffff7ce1000 0x7ffff7ce1000 -> 0x7ffff7cf2000 0x7ffff7cf2000 -> 0x7ffff7cf7000 [...] ``` The API also offers a number of decorators to simplify the creation of new/existing commands, such as: * `@only_if_gdb_running` to execute only if a GDB session is running. * `@only_if_gdb_target_local` to check if the target is local i.e. not debugging using GDB `remote`. * and many more... ### Reference For a complete reference of the API offered by GEF, visit [`docs/api/gef.md`](api/gef.md). ### Parsing command arguments ```python @parse_arguments( {"required_argument_1": DefaultValue1, ...}, {"--optional-argument-1": DefaultValue1, ...} ) ``` This decorator aims to facilitate the argument passing to a command. If added, it will use the `argparse` module to parse arguments, and will store them in the `kwargs["arguments"]` of the calling function (therefore the function **must** have `*args, **kwargs` added to its signature). Argument type is inferred directly from the default value **except** for boolean, where a value of `True` corresponds to `argparse`'s `store_true` action. For more details on `argparse`, refer to its Python documentation. Values given for the parameters also allow list of arguments being past. This can be useful in the case where the number of exact option values is known in advance. This can be achieved simply by using a type of `tuple` or `list` for the default value. `parse_arguments` will determine the type of what to expect based on the first default value of the iterable, so make sure it's not empty. For instance: ```python @parse_arguments( {"instructions": ["nop", "int3", "hlt"], }, {"--arch": "x64", } ) ``` Argument flags are also supported, allowing to write simpler version of the flag such as ```python @parse_arguments( {}, {("--long-argument", "-l"): value, } ) ``` A basic example would be as follow: ```python class MyCommand(GenericCommand): [...] @parse_arguments({"foo": [1,]}, {"--bleh": "", ("--blah", "-l): False}) def do_invoke(self, argv, *args, **kwargs): args = kwargs["arguments"] if args.foo == 1: ... if args.blah == True: ... ``` When the user enters the following command: ```text gef➤ mycommand --blah 3 14 159 2653 ``` The function `MyCommand!do_invoke()` can use the command line argument value ```python args.foo == [3, 14, 159, 2653] # a List(int) from user input args.bleh == "" # the default value args.blah == True # set to True because user input declared the option (would have been False otherwise) ``` ### Adding new architectures Support for new architectures can be added by inheriting from the `Architecture` class. Examples can be found in [gef-extras](https://github.com/hugsy/gef-extras/tree/main/archs). Sometimes architectures can more precisely determine whether they apply to the current target by looking at the architecture determined by gdb. For these cases the custom architecture may implement the `supports_gdb_arch()` static function to signal that they should be used instead of the default. The function receives only one argument: * `gdb_str` (of type `str`) which is the architecture name as reported by GDB. The function **must** return: * `True` if the current `Architecture` class supports the target binary; `False` otherwise. * `None` to simply ignore this check and let GEF try to determine the architecture. One example is the ARM Cortex-M architecture which in some cases should be used over the generic ARM one: ```python @staticmethod def supports_gdb_arch(gdb_arch: str) -> Optional[bool]: return bool(re.search("^armv.*-m$", gdb_arch)) ``` ================================================ FILE: docs/commands/aliases.md ================================================ ## Command `aliases` Base command to add, remove, and list `GEF` defined aliases. ```text gef➤ aliases aliases (add|rm|list) ``` ### Adding/Removing Aliases `GEF` defines its own aliasing mechanism which overrides the traditional alias that GDB provides through the built-in command `alias`. To add a new alias, simply use the `aliases add` command. The "command" parameter may contain spaces. ```text aliases add [alias] [command] ``` To remove an alias, simply use the `aliases rm` command. ```text aliases rm [alias] ``` ### Listing Aliases One can list aliases by using the `aliases ls` command. Some sample output of this command is seen below. ```text [+] Aliases defined: fmtstr-helper → format-string-helper telescope → dereference dps → dereference dq → hexdump qword dd → hexdump dword dw → hexdump word dc → hexdump byte cs-dis → capstone-disassemble ctx → context start-break → entry-break ps → process-search [...] ``` ### Using the Configuration File Users can also create/modify/delete aliases by editing the `GEF` configuration file, by default located at `~/.gef.rc`. The aliases must be in the `aliases` section of the configuration file. Creating a new alias is as simple as creating a new entry in this section: ```text $ nano ~/.gef.rc [...] [aliases] my-new-alias = gdb-or-gef-command ``` #### Bringing some PEDA and WinDBG flavours into GEF For example, for those (like me) who use WinDBG and like its bindings, they can be integrated into GDB via GEF aliases like this: ```text $ nano ~/.gef.rc [...] [aliases] # some windbg aliases dps = dereference dq = hexdump qword dd = hexdump dword dw = hexdump word dc = hexdump byte dt = pcustom bl = info breakpoints bp = break be = enable breakpoints bd = disable breakpoints bc = delete breakpoints tbp = tbreak tba = thbreak pa = advance ptc = finish t = stepi p = nexti g = gef run uf = disassemble ``` Or here are some `PEDA` aliases for people used to using `PEDA` who made the smart move to `GEF`. ```text # some peda aliases telescope = dereference start = entry-break stack = dereference -l 10 $sp argv = show args kp = info stack findmem = search-pattern ``` The aliases will be loaded next time you load GDB (and `GEF`). Or you can force `GEF` to reload the settings with the command: ```text gef➤ gef restore ``` ================================================ FILE: docs/commands/arch.md ================================================ ## Command `arch` `arch` manages the loaded architecture. There are 3 available sub-commands: - `list`: List the installed architectures. - `get`: Print the currently loaded architecture, and why it is selected. - `set`: Manually set the loaded architecture by providing its name as an argument, or let gef do magic to detect the architecture by not providing arguments. > [!WARNING] > Setting manually should be done as a last resort as GEF expects to find the architecture > automatically. Force-setting the architecture can lead to unexpected behavior if not done correctly. ![arch](https://github.com/hugsy/gef/assets/11377623/e364ecec-0b8e-4bee-b3cb-aae83eaca439) ================================================ FILE: docs/commands/aslr.md ================================================ ## Command `aslr` Easily check, enable or disable ASLR on the debugged binary. Check the status: ```text gef➤ aslr ASLR is currently disabled ``` Activate ASLR: ```text gef➤ aslr on [+] Enabling ASLR gef➤ aslr ASLR is currently enabled ``` De-activate ASLR: ```text gef➤ aslr off [+] Disabling ASLR ``` **Note**: This command cannot affect a process that has already been loaded, to which GDB attached to later. The only way to disable this randomization is by setting the kernel setting `/proc/sys/kernel/randomize_va_space` to 0.. ================================================ FILE: docs/commands/canary.md ================================================ ## Command `canary` If the currently debugged process was compiled with the Smash Stack Protector (SSP) - i.e. the `-fstack-protector` flag was passed to the compiler, this command will display the value of the canary. This makes it convenient to avoid manually searching for this value in memory. The command `canary` does not take any arguments. ```text gef➤ canary ``` ![gef-canary](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/gef-canary.png) ================================================ FILE: docs/commands/checksec.md ================================================ ## Command `checksec` The `checksec` command is inspired from [`checksec.sh`](https://www.trapkit.de/tools/checksec.html). It provides a convenient way to determine which security protections are enabled in a binary. You can use the command on the currently debugged process: ```text gef➤ checksec [+] checksec for '/vagrant/test-bin' Canary: No NX Support: Yes PIE Support: No No RPATH: Yes No RUNPATH: Yes Partial RelRO: Yes Full RelRO: No ``` Or specify directly the binary to check, for example: ```bash gdb -ex "checksec ./tests/test-x86" ``` ================================================ FILE: docs/commands/config.md ================================================ ## Command `gef config` `gef` reads its config from a file which is by default located at `~/.gef.rc`, but which can also be specified via the `GEF_RC` environment variable. In addition, `gef` can also be configured at runtime with the `gef config` command. To view all settings for all commands loaded: ```text gef➤ gef config ``` ![gef-config](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/gef-config.png) Or to get one setting value: ```text gef➤ gef config pcustom.struct_path ``` Of course you can edit the values. For example, if you want the screen to be cleared before displaying the current context when reaching a breakpoint: ```text gef➤ gef config context.clear_screen 1 ``` To save the current settings for `GEF` to the file system to have those options persist across all your future `GEF` sessions, simply run: ```text gef➤ gef save [+] Configuration saved to '/home/vagrant/.gef.rc' ``` Upon startup, if `$GEF_RC` points to an existing file, or otherwise if `${HOME}/.gef.rc` exists, `gef` will automatically load its values. To reload the settings during the session, just run: ```text gef➤ gef restore [+] Configuration from '/home/hugsy/.gef.rc' restored ``` You can tweak this configuration file outside your `gdb` session to suit your needs. ================================================ FILE: docs/commands/context.md ================================================ ## Command `context` ![gef-context](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/gef-context.png) `gef` (not unlike `PEDA` or `fG! famous gdbinit`) provides comprehensive context menu when hitting a breakpoint. * The register context box displays current register values. Values in red indicate that this register has had its value changed since the last time execution stopped. It makes it convenient to track values. Register values can be also accessed and/or dereferenced through the `reg` command. * The stack context box shows the 10 (by default but can be tweaked) entries in memory pointed by the stack pointer register. If those values are pointers, they are successively dereferenced. * The code context box shows the 10 (by default but can be tweaked) next instructions to be executed. ### Adding custom context panes As well as using the built-in context panes, you can add your own custom pane that will be displayed at each `break`-like event with all the other panes. Custom panes can be added using the API: ```python register_external_context_pane(pane_name, display_pane_function, pane_title_function) ``` Check the [API](../api.md) documentation to see a full usage of the registration API. ### Editing context layout `gef` allows you to configure your own setup for the display, by re-arranging the order with which contexts will be displayed. ```text gef➤ gef config context.layout ``` There are currently 6 sections that can be displayed: * `legend` : a text explanation of the color code * `regs` : the state of registers * `stack` : the content of memory pointed by `$sp` register * `code` : the code being executed * `args` : if stopping at a function calls, print the call arguments * `source` : if compiled with source, this will show the corresponding line of source code * `threads` : all the threads * `trace` : the execution call trace * `extra` : if an automatic behavior is detected (vulnerable format string, heap vulnerability, etc.) it will be displayed in this pane * `memory` : peek into arbitrary memory locations To hide a section, simply use the `context.layout` setting, and prepend the section name with `-` or just omit it. ```text gef➤ gef config context.layout "-legend regs stack code args -source -threads -trace extra memory" ``` This configuration will not display the `legend`, `source`, `threads`, and `trace` sections. The `memory` pane will display the content of all locations specified by the `memory` command. For instance, ```text gef➤ memory watch $sp 0x40 byte ``` will print a hexdump version of 0x40 bytes of the stack. This command makes it convenient for tracking the evolution of arbitrary locations in memory. Tracked locations can be removed one by one using `memory unwatch`, or altogether with `memory reset`. The size of most sections are also customizable: * `nb_lines_stack` configures how many lines of the stack to show. * `nb_lines_backtrack` configures how many lines of the backtrace to show. * `nb_lines_code` and `nb_lines_code_prev` configure how many lines to show after and before the PC, respectively. * `context.nb_lines_threads` determines the number of lines to display inside the thread pane. This is convenient when debugging heavily multi-threaded applications (apache2, firefox, etc.). It receives an integer as value: if this value is `-1` then all threads state will be displayed. Otherwise, if the value is set to `N`, then at most `N` thread states will be shown. To have the stack displayed with the largest stack addresses on top (i.e., grow the stack downward), enable the following setting: ```text gef➤ gef config context.grow_stack_down True ``` If the saved instruction pointer is not within the portion of the stack being displayed, then a section is created that includes the saved ip and depending on the architecture the frame pointer. ```text 0x00007fffffffc9e8│+0x00: 0x00007ffff7a2d830 → <__main+240> mov edi, eax ($current_frame_savedip) 0x00007fffffffc9e0│+0x00: 0x00000000004008c0 → <__init+0> push r15 ← $rbp . . . (440 bytes skipped) 0x00007fffffffc7e8│+0x38: 0x0000000000000000 0x00007fffffffc7e0│+0x30: 0x0000000000000026 ("&"?) 0x00007fffffffc7d8│+0x28: 0x0000000001958ac0 0x00007fffffffc7d0│+0x20: 0x00007ffff7ffa2b0 → 0x5f6f7364765f5f00 0x00007fffffffc7c8│+0x18: 0x00007fff00000000 0x00007fffffffc7c0│+0x10: 0x00007fffffffc950 → 0x0000000000000000 0x00007fffffffc7b8│+0x08: 0x0000000000000000 0x00007fffffffc7b0│+0x00: 0x00007fffffffc7e4 → 0x0000000000000000 ← $rsp ``` ### Redirecting context output to another tty/file By default, the `gef` context will be displayed on the current TTY. This can be overridden by setting `context.redirect` variable to have the context sent to another section. To do so, select the TTY/file/socket/etc. you want the context redirected to with `gef config`. Enter the command `tty` in the prompt: ```text $ tty /dev/pts/0 ``` Then tell `gef` about it! ```text gef➤ gef config context.redirect /dev/pts/0 ``` Enjoy: ![gef-context-redirect-section](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/gef-context-redirect-section.png) To go back to normal, remove the value: ```text gef➤ gef config context.redirect "" ``` ### Display individual sections You can display a single section by specifying it as an argument: ```text gef➤ context regs ``` Multiple sections can be provided, even if they are not part of the current layout: ```text gef➤ context regs stack ``` ### Examples * Display the code section first, then register, and stack, hiding everything else: ```text gef➤ gef config context.layout "code regs stack" ``` * Stop showing the context sections when breaking: ```text gef➤ gef config context.enable 0 ``` * Clear the screen before showing the context sections when breaking: ```text gef➤ gef config context.clear_screen 1 ``` * Don't dereference the registers in the `regs` section (more compact): ```text gef➤ gef config context.show_registers_raw 1 ``` * Number of bytes of opcodes to display next to the disassembly. ```text gef➤ gef config context.show_opcodes_size 4 ``` * Don't 'peek' into the start of functions that are called. ```text gef➤ gef config context.peek_calls False ``` * Hide specific registers from the registers view. ```text gef➤ gef config context.ignore_registers "$cs $ds $gs" ``` * Hide the extra pc context info from the source code view. ```text gef➤ gef config context.show_source_code_variable_values 0 ``` * Control how source file path is displayed. When displaying the source file name, above the source code view, the following settings can be changed: ```text gef➤ gef config context.show_full_source_file_name_max_len 30 gef➤ gef config context.show_prefix_source_path_name_len 10 gef➤ gef config context.show_basename_source_file_name_max_len 20 ``` In this example, if the file path length is less than or equal to 30 it will be displayed in its entirety. If however, it's more than 30 characters in length, it will be truncated. Truncation first splits the path into the prefix part and file name part. The `show_prefix_source_path_name_len` controls how many characters of the prefix path to show, and the `show_basename_source_file_name_max_len` controls how many characters from the file name to show. * Show better definitions for call to libc functions. ```text gef➤ gef config context.libc_args True gef➤ gef config context.libc_args_path /path/to/gef-extras/libc_args ``` ================================================ FILE: docs/commands/dereference.md ================================================ ## Command `dereference` The `dereference` command (also aliased `telescope` for PEDA former users) aims to simplify the dereferencing of an address in GDB to determine the content it actually points to. It is a useful convenience function to spare to process of manually tracking values with successive `x/x` in GDB. `dereference` takes three optional arguments, a start address (or symbol or register, etc) to dereference (by default, `$sp`), the number of consecutive addresses to dereference (by default, `10`) and the base location for offset calculation (by default the same as the start address): ```text gef➤ dereference 0x00007fffffffdec0│+0x0000: 0x00007ffff7ffe190 → 0x0000555555554000 → jg 0x555555554047 ← $rsp, $r13 0x00007fffffffdec8│+0x0008: 0x00007ffff7ffe730 → 0x00007ffff7fd3000 → 0x00010102464c457f 0x00007fffffffded0│+0x0010: 0x00007ffff7faa000 → 0x00007ffff7de9000 → 0x03010102464c457f 0x00007fffffffded8│+0x0018: 0x00007ffff7ffd9f0 → 0x00007ffff7fd5000 → 0x00010102464c457f 0x00007fffffffdee0│+0x0020: 0x00007fffffffdee0 → [loop detected] 0x00007fffffffdee8│+0x0028: 0x00007fffffffdee0 → 0x00007fffffffdee0 → [loop detected] 0x00007fffffffdef0│+0x0030: 0x00000000f7fa57e3 0x00007fffffffdef8│+0x0038: 0x0000555555755d60 → 0x0000555555554a40 → cmp BYTE PTR [rip+0x201601], 0x0 # 0x555555756048 0x00007fffffffdf00│+0x0040: 0x0000000000000004 0x00007fffffffdf08│+0x0048: 0x0000000000000001 ``` Here is an example with arguments: ```text gef➤ telescope $rbp+0x10 -l 8 0x00007fffffffdf40│+0x0000: 0x00007ffff7fa5760 → 0x00000000fbad2887 0x00007fffffffdf48│+0x0008: 0x00000001f7e65b63 0x00007fffffffdf50│+0x0010: 0x0000000000000004 0x00007fffffffdf58│+0x0018: 0x0000000000000000 0x00007fffffffdf60│+0x0020: 0x00007fffffffdfa0 → 0x0000555555554fd0 → push r15 0x00007fffffffdf68│+0x0028: 0x0000555555554980 → xor ebp, ebp 0x00007fffffffdf70│+0x0030: 0x00007fffffffe080 → 0x0000000000000001 0x00007fffffffdf78│+0x0038: 0x0000000000000000 ``` It also optionally accepts a second argument, the number of consecutive addresses to dereference (by default, `10`). For example, if you want to dereference all the stack entries inside a function context (on a 64bit architecture): ```text gef➤ p ($rbp - $rsp)/8 $3 = 4 gef➤ dereference -l 5 0x00007fffffffe170│+0x0000: 0x0000000000400690 → push r15 ← $rsp 0x00007fffffffe178│+0x0008: 0x0000000000400460 → xor ebp, ebp 0x00007fffffffe180│+0x0010: 0x00007fffffffe270 → 0x1 0x00007fffffffe188│+0x0018: 0x1 0x00007fffffffe190│+0x0020: 0x0000000000400690 → push r15 ← $rbp ``` It is possible to change the offset calculation to use a different address than the start address: ```text gef➤ dereference $sp -l 7 -r $rbp 0x00007ffe6ddaa3e0│-0x0030: 0x0000000000000000 ← $rsp 0x00007ffe6ddaa3e8│-0x0028: 0x0000000000400970 → <__libc_csu_init+0> push r15 0x00007ffe6ddaa3f0│-0x0020: 0x0000000000000000 0x00007ffe6ddaa3f8│-0x0018: 0x00000000004006e0 → <_start+0> xor ebp, ebp 0x00007ffe6ddaa400│-0x0010: 0x00007ffe6ddaa500 → 0x0000000000000001 0x00007ffe6ddaa408│-0x0008: 0xa42456b3ee465800 0x00007ffe6ddaa410│+0x0000: 0x0000000000000000 ← $rbp ``` Just like with `x`, you can pass a negative number of addresses to dereference, to examine memory backwards from the start address: ```text gef➤ dereference $sp -l 3 0x00007fffffffcf90│+0x0010: 0x00007ffff7f5aaa0 → 0x0000000000000000 0x00007fffffffcf88│+0x0008: 0x00000000000204a0 0x00007fffffffcf80│+0x0000: 0x00005555555a6b60 → 0x0000000000000000 ← $rsp gef➤ dereference $sp -l -3 0x00007fffffffcf80│+0x0000: 0x00005555555a6b60 → 0x0000000000000000 ← $rsp 0x00007fffffffcf78│-0x0008: 0x0000000000000020 (" "?) 0x00007fffffffcf70│-0x0010: 0x000000000000000a ("\n"?) ``` ================================================ FILE: docs/commands/edit-flags.md ================================================ ## Command `edit-flags` The `edit-flags` command (alias: `flags`) provides a quick and comprehensible way to view and edit the flag register for the architectures that support it. Without argument, the command will simply return a human-friendly display of the register flags. One or many arguments can be provided, following the syntax below: ```text gef➤ flags [(+|-|~)FLAGNAME ...] ``` Where `FLAGNAME` is the name of the flag (case insensitive), and `+|-|~` indicates the action on whether to set, unset, or toggle the flag. For instance, on x86 architecture, if we don't want to take a conditional jump (e.g. a `jz` instruction), but we want to have the Carry flag set, simply go with: ```text gef➤ flags -ZERO +CARRY ``` ![flags](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/flags.png) ================================================ FILE: docs/commands/elf-info.md ================================================ ## Command `elf-info` `elf-info` (alias `elf`) provides some basic information on the currently loaded ELF binary: ```text gef➤ elf Magic : 7f 45 4c 46 Class : 0x2 - 64-bit Endianness : 0x1 - Little-Endian Version : 0x1 OS ABI : 0x0 - System V ABI Version : 0x0 Type : 0x2 - Executable Machine : 0x3e - x86-64 Program Header Table : 0x0000000000000040 Section Header Table : 0x00000000000021a8 Header Table : 0x0000000000000040 ELF Version : 0x1 Header size : 64 (0x40) Entry point : 0x0000000000400750 ────────────────────────────────────────── Program Header ────────────────────────────────────────── [ #] Type Offset Virtaddr Physaddr FileSiz MemSiz Flags Align [ 0] PHDR 0x40 0x400040 0x400040 0x1f8 0x1f8 R-X 0x8 [ 1] INTERP 0x238 0x400238 0x400238 0x1c 0x1c R-- 0x1 [ 2] LOAD 0x0 0x400000 0x400000 0x1414 0x1414 R-X 0x200000 [ 3] LOAD 0x1e10 0x601e10 0x601e10 0x268 0x330 RW- 0x200000 [ 4] DYNAMIC 0x1e28 0x601e28 0x601e28 0x1d0 0x1d0 RW- 0x8 [ 5] NOTE 0x254 0x400254 0x400254 0x44 0x44 R-- 0x4 [ 6] GNU_EH_FLAME 0x11a0 0x4011a0 0x4011a0 0x74 0x74 R-- 0x4 [ 7] GNU_STACK 0x0 0x0 0x0 0x0 0x0 RW- 0x10 [ 8] GNU_RELRO 0x1e10 0x601e10 0x601e10 0x1f0 0x1f0 R-- 0x1 ────────────────────────────────────────── Section Header ────────────────────────────────────────── [ #] Name Type Address Offset Size EntSiz Flags Link Info Align [ 0] NULL 0x0 0x0 0x0 0x0 0x0 0x0 0x0 [ 1] .interp PROGBITS 0x400238 0x238 0x1c 0x0 A 0x0 0x0 0x1 [ 2] .note.ABI-tag NOTE 0x400254 0x254 0x20 0x0 A 0x0 0x0 0x4 [ 3] .note.gnu.build-id NOTE 0x400274 0x274 0x24 0x0 A 0x0 0x0 0x4 [ 4] .gnu.hash GNU_HASH 0x400298 0x298 0x30 0x0 A 0x5 0x0 0x8 [ 5] .dynsym DYNSYM 0x4002c8 0x2c8 0x168 0x18 A 0x6 0x1 0x8 [ 6] .dynstr STRTAB 0x400430 0x430 0x96 0x0 A 0x0 0x0 0x1 [ 7] .gnu.version HIOS 0x4004c6 0x4c6 0x1e 0x2 A 0x5 0x0 0x2 [ 8] .gnu.version_r GNU_verneed 0x4004e8 0x4e8 0x30 0x0 A 0x6 0x1 0x8 [ 9] .rela.dyn RELA 0x400518 0x518 0x60 0x18 A 0x5 0x0 0x8 [10] .rela.plt RELA 0x400578 0x578 0xf0 0x18 AI 0x5 0x18 0x8 [11] .init PROGBITS 0x400668 0x668 0x1a 0x0 AX 0x0 0x0 0x4 [12] .plt PROGBITS 0x400690 0x690 0xb0 0x10 AX 0x0 0x0 0x10 [13] .plt.got PROGBITS 0x400740 0x740 0x8 0x0 AX 0x0 0x0 0x8 [14] .text PROGBITS 0x400750 0x750 0x842 0x0 AX 0x0 0x0 0x10 [15] .fini PROGBITS 0x400f94 0xf94 0x9 0x0 AX 0x0 0x0 0x4 [16] .rodata PROGBITS 0x400fa0 0xfa0 0x200 0x0 A 0x0 0x0 0x8 [17] .eh_frame_hdr PROGBITS 0x4011a0 0x11a0 0x74 0x0 A 0x0 0x0 0x4 [18] .eh_frame PROGBITS 0x401218 0x1218 0x1fc 0x0 A 0x0 0x0 0x8 [19] .init_array INIT_ARRAY 0x601e10 0x1e10 0x8 0x0 WA 0x0 0x0 0x8 [20] .fini_array FINI_ARRAY 0x601e18 0x1e18 0x8 0x0 WA 0x0 0x0 0x8 [21] .jcr PROGBITS 0x601e20 0x1e20 0x8 0x0 WA 0x0 0x0 0x8 [22] .dynamic DYNAMIC 0x601e28 0x1e28 0x1d0 0x10 WA 0x6 0x0 0x8 [23] .got PROGBITS 0x601ff8 0x1ff8 0x8 0x8 WA 0x0 0x0 0x8 [24] .got.plt PROGBITS 0x602000 0x2000 0x68 0x8 WA 0x0 0x0 0x8 [25] .data PROGBITS 0x602068 0x2068 0x10 0x0 WA 0x0 0x0 0x8 [26] .bss NOBITS 0x602080 0x2078 0xc0 0x0 WA 0x0 0x0 0x20 [27] .comment PROGBITS 0x0 0x2078 0x34 0x1 MS 0x0 0x0 0x1 [28] .shstrtab STRTAB 0x0 0x20ac 0xfc 0x0 0x0 0x0 0x1 ``` Optionally a filepath to another ELF binary can be provided to view the basic information for that binary instead. ```text gef➤ elf-info --filename /path/to/elf/executable ``` ================================================ FILE: docs/commands/entry-break.md ================================================ ## Command `entry-break` The `entry-break` (alias `start`) command's goal is to find and break at the most obvious entry point available in the binary. Since the binary will start running, some of the `PLT` entries will also be resolved, making further debugging easier. It will perform the following actions: 1. Look up a `main` symbol. If found, set a temporary breakpoint and go. 2. Otherwise, it will look up for `__libc_start_main`. If found, set a temporary breakpoint and go. 3. Finally, if the previous two symbols are not found, it will get the entry point from the ELF header, set a breakpoint and run. This case should never fail if the ELF binary has a valid structure. ![entry-break-example](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/entry-break-example.png) ================================================ FILE: docs/commands/eval.md ================================================ ## Command `$` The `$` command attempts to mimic WinDBG `?` command. When provided one argument, it will evaluate the expression, and try to display the result with various formats: ```text gef➤ $ $pc+1 93824992252977 0x555555559431 0b10101010101010101010101010101011001010000110001 b'UUUU\x941' b'1\x94UUUU' gef➤ $ -0x1000 -4096 0xfffffffffffff000 0b1111111111111111111111111111111111111111111111111111000000000000 b'\xff\xff\xff\xff\xff\xff\xf0\x00' b'\x00\xf0\xff\xff\xff\xff\xff\xff' ``` With two arguments, it will simply compute the delta between them: ```text gef➤ vmmap libc Start End Offset Perm 0x00007ffff7812000 0x00007ffff79a7000 0x0000000000000000 r-x /lib/x86_64-linux-gnu/libc-2.24.so 0x00007ffff79a7000 0x00007ffff7ba7000 0x0000000000195000 --- /lib/x86_64-linux-gnu/libc-2.24.so 0x00007ffff7ba7000 0x00007ffff7bab000 0x0000000000195000 r-- /lib/x86_64-linux-gnu/libc-2.24.so 0x00007ffff7bab000 0x00007ffff7bad000 0x0000000000199000 rw- /lib/x86_64-linux-gnu/libc-2.24.so gef➤ $ 0x00007ffff7812000 0x00007ffff79a7000 -1658880 1658880 gef➤ $ 1658880 1658880 0x195000 0b110010101000000000000 b'\x19P\x00' b'\x00P\x19' ``` ================================================ FILE: docs/commands/format-string-helper.md ================================================ ## Command `format-string-helper` The `format-string-helper` command will create a `GEF` specific type of breakpoints dedicated to detecting potentially insecure format string when using the GlibC library. It will use this new breakpoint against several targets, including: * `printf()` * `sprintf()` * `fprintf()` * `snprintf()` * `vsnprintf()` Just call the command to enable this functionality. `fmtstr-helper` is a shorter alias. ```text gef➤ fmtstr-helper ``` Then start the binary execution. ```text gef➤ r ``` If a potentially insecure entry is found, the breakpoint will trigger, stop the process execution, display the reason for trigger and the associated context. ![fmtstr-helper-example](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/fmtstr-helper-example.png) ================================================ FILE: docs/commands/functions.md ================================================ ## Command `functions` The `functions` command will list all of the [convenience functions](https://sourceware.org/gdb/onlinedocs/gdb/Convenience-Funs.html) provided by GEF. - `$_base([filepath])` -- Return the matching file's base address plus an optional offset. Defaults to the current file. Note that quotes need to be escaped. - `$_bss([offset])` -- Return the current bss base address plus the given offset. - `$_got([offset])` -- Return the current bss base address plus the given offset. - `$_heap([offset])` -- Return the current heap base address plus an optional offset. - `$_stack([offset])` -- Return the current stack base address plus an optional offset. These functions can be used as arguments to other commands to dynamically calculate values. ```text gef➤ deref -l 4 $_heap() 0x0000000000602000│+0x00: 0x0000000000000000 ← $r8 0x0000000000602008│+0x08: 0x0000000000000021 ("!"?) 0x0000000000602010│+0x10: 0x0000000000000000 ← $rax, $rdx 0x0000000000602018│+0x18: 0x0000000000000000 gef➤ deref -l 4 $_heap(0x20) 0x0000000000602020│+0x00: 0x0000000000000000 ← $rsi 0x0000000000602028│+0x08: 0x0000000000020fe1 0x0000000000602030│+0x10: 0x0000000000000000 0x0000000000602038│+0x18: 0x0000000000000000 gef➤ deref -l 4 $_base(\"libc\") 0x00007ffff7da9000│+0x0000: 0x03010102464c457f 0x00007ffff7da9008│+0x0008: 0x0000000000000000 0x00007ffff7da9010│+0x0010: 0x00000001003e0003 0x00007ffff7da9018│+0x0018: 0x0000000000027c60 ``` ================================================ FILE: docs/commands/gef-remote.md ================================================ ## Command `gef-remote` [`target remote`](https://sourceware.org/gdb/onlinedocs/gdb/Remote-Debugging.html#Remote-Debugging) is the traditional GDB way of debugging process or system remotely. However this command by itself does a limited job (80's bandwidth FTW) to collect more information about the target, making the process of debugging more cumbersome. GEF greatly improves that state with the `gef-remote` command. 📝 **Note**: If using GEF, `gef-remote` **must** be your way or debugging remote processes, never `target remote`. Maintainers will provide minimal support or help if you decide to use the traditional `target remote` command. For many reasons, you **should not** use `target remote` alone with GEF. It is still important to note that the default `target remote` command has been overwritten by a minimal copy `gef-remote`, in order to make most tools relying on this command work. `gef-remote` can function in 2 ways: - `remote` which is meant to enrich use of GDB `target remote` command, when connecting to a "real" gdbserver instance - `qemu-mode` when connecting to GDB stab of either `qemu-user` or `qemu-system`. The reason for this difference being that Qemu provides *a lot* less information that GEF can extract to enrich debugging. Whereas GDBServer allows to download remote file (therefore allowing to create a small identical environment), GDB stub in Qemu does not support file transfer. As a consequence, in order to use GEF in qemu mode, it is required to provide the binary being debugged. GEF will create a mock (limited) environment so that all its most useful features are available. ### Remote mode #### `remote` If you want to remotely debug a binary that you already have, you simply need to tell to `gdb` where to find the debug information. For example, if we want to debug `uname`, we do on the server: ```text $ gdbserver :1234 /tmp/default.out Process /tmp/default.out created; pid = 258932 Listening on port 1234 ``` ![gef-remote-1](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/gef-remote-1.png) On the client, when the original `gdb` would use `target remote`, GEF's syntax is roughly similar (shown running in debug mode for more verbose output, but you don't have to): ```text $ gdb -ex 'gef config gef.debug 1' GEF for linux ready, type `gef' to start, `gef config' to configure 90 commands loaded and 5 functions added for GDB 10.2 using Python engine 3.8 gef➤ gef-remote localhost 1234 [=] [remote] initializing remote session with localhost:1234 under /tmp/tmp8qd0r7iw [=] [remote] Installing new objfile handlers [=] [remote] Enabling extended remote: False [=] [remote] Executing 'target remote localhost:1234' Reading /tmp/default.out from remote target... warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead. Reading /tmp/default.out from remote target... Reading symbols from target:/tmp/default.out... [=] [remote] in remote_objfile_handler(target:/tmp/default.out)) [=] [remote] downloading '/tmp/default.out' -> '/tmp/tmp8qd0r7iw/tmp/default.out' Reading /lib64/ld-linux-x86-64.so.2 from remote target... Reading /lib64/ld-linux-x86-64.so.2 from remote target... [=] [remote] in remote_objfile_handler(/usr/lib/debug/.build-id/45/87364908de169dec62ffa538170118c1c3a078.debug)) [=] [remote] in remote_objfile_handler(target:/lib64/ld-linux-x86-64.so.2)) [=] [remote] downloading '/lib64/ld-linux-x86-64.so.2' -> '/tmp/tmp8qd0r7iw/lib64/ld-linux-x86-64.so.2' [=] [remote] in remote_objfile_handler(system-supplied DSO at 0x7ffff7fcd000)) [*] [remote] skipping 'system-supplied DSO at 0x7ffff7fcd000' 0x00007ffff7fd0100 in _start () from target:/lib64/ld-linux-x86-64.so.2 [=] Setting up as remote session [=] [remote] downloading '/proc/258932/maps' -> '/tmp/tmp8qd0r7iw/proc/258932/maps' [=] [remote] downloading '/proc/258932/environ' -> '/tmp/tmp8qd0r7iw/proc/258932/environ' [=] [remote] downloading '/proc/258932/cmdline' -> '/tmp/tmp8qd0r7iw/proc/258932/cmdline' [...] ``` And finally breaking into the program, showing the current context: ![gef-remote](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/gef-remote.png) You will also notice the prompt has changed to indicate the debugging mode is now "remote". Besides that, all of GEF features are available: ![gef-remote-command](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/gef-remote-command.png) #### `remote-extended` Extended mode works the same as `remote`. Being an extended session, gdbserver has not spawned or attached to any process. Therefore, all that's required is to add the `--pid` flag when calling `gef-remote`, along with the process ID of the process to debug. ### Qemu mode Qemu mode of `gef-remote` allows to connect to the [Qemu GDB stub](https://qemu-project.gitlab.io/qemu/system/gdb.html) which allows to live debug into either a binary (`qemu-user`) or even the kernel (`qemu-system`), of any architecture supported by GEF, which makes now even more sense 😉 And using it is very straight forward. #### `qemu-user` 1. Run `qemu-x86_64 :1234 /bin/ls` 2. Use `--qemu-user` and `--qemu-binary /bin/ls` when starting `gef-remote` ![qemu-user](https://user-images.githubusercontent.com/590234/175072835-e276ab6c-4f75-4313-9e66-9fe5a3fd220e.png) #### `qemu-system` To test locally, you can [download the mini image linux x64 vm](https://mega.nz/file/ldQCDQiR#yJWJ8RXAHTxREKVmR7Hnfr70tIAQDFeWSYj96SvPO1k). 1. Run `./run.sh` 2. Use `--qemu-user` and `--qemu-binary vmlinuz` when starting `gef-remote` ![qemu-system](https://user-images.githubusercontent.com/590234/175071351-8e06aa27-dc61-4fd7-9215-c345dcebcd67.png) ### `rr` support GEF can be used with the time-travel tool [`rr`](https://rr-project.org/) as it will act as a remote session. Most of the commands will work as long as the debugged binary is present on the target. GEF can be loaded from `rr` as such in a very similar way it is loaded gdb. The `-x` command line toggle can be passed load it as it would be for any gdbinit script ```text $ cat ~/load-with-gef-extras source ~/code/gef/gef.py gef config gef.extra_plugins_dir ~/code/gef-extras/scripts gef config pcustom.struct_path ~/code/gef-extras/structs $ rr record /usr/bin/date [...] $ rr replay -x ~/load-with-gef-extras [...] (remote) gef➤ pi gef.binary ELF('/usr/bin/date', ELF_64_BITS, X86_64) (remote) gef➤ pi gef.session Session(Remote, pid=3068, os='linux') (remote) gef➤ pi gef.session.remote RemoteSession(target=':0', local='/', pid=3068, mode=RR) (remote) gef➤ vmmap [ Legend: Code | Heap | Stack ] Start End Offset Perm Path 0x0000000068000000 0x0000000068200000 0x0000000000200000 rwx 0x000000006fffd000 0x0000000070001000 0x0000000000004000 r-x /usr/lib/rr/librrpage.so 0x0000000070001000 0x0000000070002000 0x0000000000001000 rw- /tmp/rr-shared-preload_thread_locals-801763-0 0x00005580b30a3000 0x00005580b30a6000 0x0000000000003000 r-- /usr/bin/date 0x00005580b30a6000 0x00005580b30b6000 0x0000000000010000 r-x /usr/bin/date 0x00005580b30b6000 0x00005580b30bb000 0x0000000000005000 r-- /usr/bin/date 0x00005580b30bc000 0x00005580b30be000 0x0000000000002000 rw- /usr/bin/date 0x00007f21107c7000 0x00007f21107c9000 0x0000000000002000 r-- /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 0x00007f21107c9000 0x00007f21107f3000 0x000000000002a000 r-x /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 0x00007f21107f3000 0x00007f21107fe000 0x000000000000b000 r-- /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 0x00007f21107ff000 0x00007f2110803000 0x0000000000004000 rw- /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 0x00007ffcc951a000 0x00007ffcc953c000 0x0000000000022000 rw- [stack] 0x00007ffcc95ab000 0x00007ffcc95ad000 0x0000000000002000 r-x [vdso] 0xffffffffff600000 0xffffffffff601000 0x0000000000001000 --x [vsyscall] (remote) gef➤ pi len(gef.memory.maps) 14 ``` ================================================ FILE: docs/commands/gef.md ================================================ ## Command `gef` ### GEF Base Command Displays a list of GEF commands and their descriptions. ```text gef➤ gef ─────────────────────────────────── GEF - GDB Enhanced Features ─────────────────────────────────── $ -- SmartEval: Smart eval (vague approach to mimic WinDBG `?`). aslr -- View/modify the ASLR setting of GDB. By default, GDB will disable ASLR when it starts the process. (i.e. not attached). This command allows to change that setting. assemble -- Inline code assemble. Architecture can be set in GEF runtime config (default x86-32). (alias: asm) bincompare -- BincompareCommand: compare an binary file with the memory position looking for badchars. bytearray -- BytearrayCommand: Generate a bytearray to be compared with possible badchars. [...snip...] ``` ### GEF Missing Command GEF is fully battery-included. However in some rare cases, it is possible that not all commands be loaded. If that's the case the command `gef missing` will detail which command failed to load, along with a (likely) reason. Read the documentation for a solution, or reach out on the Discord. ```text gef➤ gef missing [*] Command `XXXX` is missing, reason → YYYYY. ``` ### GEF Config Command Allows the user to set/view settings for the current debugging session. For making the changes persistent see the `gef save` entry. Using `gef config` by itself just shows all of the available settings and their values. ```text gef➤ gef config ──────────────────────────────────── GEF configuration settings ──────────────────────────────────── context.clear_screen (bool) = False context.enable (bool) = True context.grow_stack_down (bool) = False context.ignore_registers (str) = "" context.layout (str) = "-code -stack" context.libc_args (bool) = False [...snip...] ``` To filter the config settings you can use `gef config [setting]`. ```text gef➤ gef config theme ─────────────────────────── GEF configuration settings matching 'theme' ─────────────────────────── theme.context_title_line (str) = "gray" theme.context_title_message (str) = "cyan" theme.default_title_line (str) = "gray" theme.default_title_message (str) = "cyan" [...snip...] ``` You can use `gef config [setting] [value]` to set a setting for the current session (see example below). ```text gef➤ gef config theme.address_stack blue ``` ### GEF Save Command The `gef save` command saves the current settings (set with `gef config`) to the user's `~/.gef.rc` file (making the changes persistent). ```text gef➤ gef save [+] Configuration saved to '/home/michael/.gef.rc' ``` ### GEF Restore Command Using `gef restore` loads and applies settings from the `~/.gef.rc` file to the current session. This is useful if you are modifying your GEF configuration file and want to see the changes without completely reloading GEF. ```text gef➤ gef restore [+] Configuration from '/home/michael/.gef.rc' restored ``` ### GEF Set Command The GEF set command allows the user to use GEF context within GDB set commands. This is useful when you want to make a convenient variable which can be set and referenced later. ```text gef➤ gef set $a=1 ``` ### GEF Run Command The GEF run command is a wrapper around GDB's run command, allowing the user to use GEF context within the command. ```text gef➤ gef run ./binary ``` ### GEF Install Command `gef install` allows to install one (or more) specific script(s) from `gef-extras`. The new scripts will be downloaded and sourced to be used immediately after by GEF. The syntax is straight forward: ```text gef➤ gef install SCRIPTNAME1 [SCRIPTNAME2...] ``` Where `SCRIPTNAME1` ... are the names of script from the [`gef-extras` repository](https://github.com/hugsy/gef-extras/tree/main/scripts/). ```text gef➤ gef install remote windbg stack [+] Searching for 'remote.py' in `gef-extras@main`... [+] Installed file '/tmp/gef/remote.py', new command(s) available: `rpyc-remote` [+] Searching for 'windbg.py' in `gef-extras@main`... [+] Installed file '/tmp/gef/windbg.py', new command(s) available: `pt`, `hh`, `tt`, `ptc`, `sxe`, `u`, `xs`, `tc`, `pc`, `g`, `r` [+] Searching for 'stack.py' in `gef-extras@main`... [+] Installed file '/tmp/gef/stack.py', new command(s) available: `current-stack-frame` gef➤ ``` This makes it easier to deploy new functionalities in limited environment. By default, the command looks up for script names in the `main` branch of `gef-extras`. However you can change specify a different branch through the `gef.default_branch` configuration setting: ```text gef➤ gef config gef.default_branch my_other_branch ``` The files will be downloaded in the path configured in the `gef.extra_plugins_dir` setting, allowing to reload it easily without having to re-download. ================================================ FILE: docs/commands/got.md ================================================ ## Command `got` Display the current state of GOT table of the running process. The `got` command optionally takes function names and filters the output displaying only the matching functions. ```text gef➤ got [--all] [filters] ``` `--all` Print the GOT for all shared objects in addition to the executable file ![gef-got](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/gef-got.png) The applied filter partially matches the name of the functions, so you can do something like this. ```text gef➤ got str gef➤ got print gef➤ got read ``` ![gef-got-one-filter](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/gef-got-one-filter.png) Example of multiple partial filters: ```text gef➤ got str get ``` ![gef-got-multi-filter](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/gef-got-multi-filter.png) ```text gef➤ got --all str get ``` Print relocatable symbols matching "str" or "get" in the executable and all shared object files. **Note**: Because gdbserver does not canonicalize paths, the --all option does not work correctly for remote debugging. See gdb bug [23764](https://sourceware.org/bugzilla/show_bug.cgi?id=23764) ================================================ FILE: docs/commands/heap-analysis-helper.md ================================================ ## Command `heap-analysis-helper` Please note: This feature is still under development, expect bugs and unstability. `heap-analysis-helper` command aims to help the process of idenfitying Glibc heap inconsistencies by tracking and analyzing allocations and deallocations of chunks of memory. Currently, the following issues can be tracked: - NULL free - Use-after-Free - Double Free - Heap overlap The helper can simply be activated by running the command `heap-analysis-helper`. ```text gef➤ heap-analysis [+] Tracking malloc() [+] Tracking free() [+] Disabling hardware watchpoints (this may increase the latency) [+] Dynamic breakpoints correctly setup, GEF will break execution if a possible vulnerability is found. [+] To disable, clear the malloc/free breakpoints (`delete breakpoints`) and restore hardware breakpoints (`set can-use-hw-watchpoints 1`) ``` The helper will create specifically crafted breakoints to keep tracks of allocation, which allows to discover *potential* vulnerabilities. Once activated, one can disable the heap analysis breakpoints simply by clearing the `__GI___libc_free()` et `__GI___libc_malloc()`. It is also possible to enable/disable manually punctual checks via the `gef config` command. The following settings are accepted: - `check_null_free`: to break execution when a free(NULL) is encountered (disabled by default); - `check_double_free`: to break execution when a double free is encountered; ![double-free](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/double-free.png) - `check_weird_free`: to execution when `free()` is called against a non-tracked pointer; - `check_uaf`: to break execution when a possible Use-after-Free condition is found. ![uaf](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/uaf.png) Just like the format string vulnerability helper, the `heap-analysis-helper` can fail to detect complex heap scenarios and/or provide some false positive alerts. Each finding must of course be ascertained manually. The `heap-analysis-helper` can also be used to simply track allocation and liberation of chunks of memory. One can simply enable the tracking by setting all the configurations stated above to False: ```text gef➤ gef config heap-analysis-helper.check_double_free False gef➤ gef config heap-analysis-helper.check_free_null False gef➤ gef config heap-analysis-helper.check_weird_free False gef➤ gef config heap-analysis-helper.check_uaf False ``` Then `gef` will not notify you of any inconsistency detected, but simply display a clear message when a chunk is allocated/freed. ![heap-track](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/heap-track.png) To get information regarding the currently tracked chunks, use the `show` subcommand: ```text gef➤ heap-analysis-helper show ``` ![heap-analysis-helper-show](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/heap-analysis-helper-show.png) ================================================ FILE: docs/commands/heap.md ================================================ ## Command `heap` The `heap` command provides information on the heap chunk specified as argument. For the moment, it only supports GlibC heap format (see [this link](https://code.woboq.org/userspace/glibc/malloc/malloc.c.html#malloc_chunk) for `malloc` structure information). Syntax to the subcommands is straight forward: ```text gef➤ heap ``` ## `main_arena` symbol If the linked glibc of the target program does not have debugging symbols it might be tricky for GEF to find the address of the `main_arena` which is needed for most of the `heap` subcommands. If you know the offset of this symbol from the glibc base address you can use GEF's config to provide said value: ```text gef➤ gef config gef.main_arena_offset ``` If you do not know this offset and you want GEF to try and find it via bruteforce when executing a `heap` command the next time, you can try this instead: ```text gef➤ gef config gef.bruteforce_main_arena True ``` Note that this might take a few seconds to complete. If GEF does find the symbol you can then calculate the offset to the libc base address and save it in the config. Sometimes, the dump might not contain proper info to help GEF find the libc version, which results in failure to parse the arena information. In this case, you can try to provide GEF a specific libc version to use with the following command: ```text gef➤ gef config gef.libc_version 2.31 ``` ### `heap chunks` command Displays all the chunks from the `heap` section of the current arena. ```text gef➤ heap chunks ``` ![heap-chunks](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/heap-chunks.png) To select from which arena to display chunks either use the `heap set-arena` command or provide the base address of the other arena like this: ```text gef➤ heap chunks [arena_address] ``` ![heap-chunks-arena](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/heap-chunks-arena.png) In order to display the chunks of all the available arenas at once use ```text gef➤ heap chunks -a ``` ![heap-chunks-all](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/heap-chunks-all.png) Because usually the heap chunks are aligned to a certain number of bytes in memory GEF automatically re-aligns the chunks data start addresses to match Glibc's behavior. To be able to view unaligned chunks as well, you can disable this with the `--allow-unaligned` flag. Note that this might result in incorrect output. To get a higher level overview of the chunks you can use the `--summary` flag too. ```text gef➤ heap chunks --summary ``` ![heap-chunks-summary](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/heap-chunks-summary.png) Sometimes, multiple types of objects could have the same size, hence it might not be enough only knowing the chunk size when debugging issues like memory leaks. GEF supports using the vtable to determine the type of the object stored in the chunk. To enable this feature, use `--resolve` along with the `--summary` flag. ```text gef➤ heap chunks --summary --resolve ``` ![heap-chunks-summary-resolve](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/heap-chunks-summary-resolve.png) Heap chunk command also supports filtering chunks by their size. To do so, simply provide the `--min-size` or `--max-size` argument: ```text gef➤ heap chunks --min-size 16 --max-size 32 ``` ![heap-chunks-size-filter](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/heap-chunks-size-filter.png) The range is inclusive, so the above command will display all chunks with size >=16 and <=32. If heap chunks command still gives too many chunks, we can use `--count` argument to limit the number of the chunks in the output: ```text gef➤ heap chunks --count 1 ``` ![heap-chunks-size-filter](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/heap-chunks-size-filter.png) ### `heap chunk` command This command gives visual information of a Glibc malloc-ed chunked. Simply provide the address to the user memory pointer of the chunk to show the information related to a specific chunk: ```text gef➤ heap chunk [address] ``` ![heap-chunk](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/heap-chunk.png) Because usually the heap chunks are aligned to a certain number of bytes in memory GEF automatically re-aligns the chunks data start addresses to match Glibc's behavior. To be able to view unaligned chunks as well, you can disable this with the `--allow-unaligned` flag. Note that this might result in incorrect output. There is an optional `number` argument, to specify the number of chunks printed by this command. To do so, simply provide the `--number` argument: ```text gef➤ heap chunk --number 6 0x4e5400 Chunk(addr=0x4e5400, size=0xd0, flags=PREV_INUSE) Chunk(addr=0x4e54d0, size=0x1a0, flags=PREV_INUSE) Chunk(addr=0x4e5670, size=0x200, flags=PREV_INUSE) Chunk(addr=0x4e5870, size=0xbc0, flags=PREV_INUSE) Chunk(addr=0x4e6430, size=0x330, flags=PREV_INUSE) Chunk(addr=0x4e6760, size=0x4c0, flags=PREV_INUSE) ``` ### `heap arenas` command Multi-threaded programs have different arenas, and the knowledge of the `main_arena` is not enough. `gef` therefore provides the `arena` sub-commands to help you list all the arenas allocated in your program **at the moment you call the command**. ![heap-arenas](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/heap-arenas.png) ### `heap set-arena` command In cases where the debug symbol are not present (e.g. statically stripped binary), it is possible to instruct GEF to find the `main_arena` at a different location with the command: ```text gef➤ heap set-arena [address] ``` If the arena address is correct, all `heap` commands will be functional, and use the specified address for `main_arena`. ### `heap bins` command Glibc uses bins for keeping tracks of `free`d chunks. This is because making allocations through `sbrk` (requiring a syscall) is costly. Glibc uses those bins to remember formerly allocated chunks. Because bins are structured in single or doubly linked list, I found that quite painful to always interrogate `gdb` to get a pointer address, dereference it, get the value chunk, etc... So I decided to implement the `heap bins` sub-command, which allows to get info on: - `fastbins` - `bins` - `unsorted` - `small bins` - `large bins` - `tcachebins` #### `heap bins fast` command When exploiting heap corruption vulnerabilities, it is sometimes convenient to know the state of the `fastbinsY` array. The `fast` sub-command helps by displaying the list of fast chunks in this array. Without any other argument, it will display the info of the `main_arena` arena. It accepts an optional argument, the address of another arena (which you can easily find using `heap arenas`). ```text gef➤ heap bins fast ──────────────────────── Fastbins for arena 0x7ffff7fb8b80 ──────────────────────── Fastbins[idx=0, size=0x20] ← Chunk(addr=0x555555559380, size=0x20, flags=PREV_INUSE) Fastbins[idx=1, size=0x30] 0x00 Fastbins[idx=2, size=0x40] 0x00 Fastbins[idx=3, size=0x50] 0x00 Fastbins[idx=4, size=0x60] 0x00 Fastbins[idx=5, size=0x70] 0x00 Fastbins[idx=6, size=0x80] 0x00 ``` #### Other `heap bins X` command All the other subcommands (with the exception of `tcache`) for the `heap bins` work the same way as `fast`. If no argument is provided, `gef` will fall back to `main_arena`. Otherwise, it will use the address pointed as the base of the `malloc_state` structure and print out information accordingly. #### `heap bins tcache` command Modern versions of `glibc` use `tcache` bins to speed up multithreaded programs. Unlike other bins, `tcache` bins are allocated on a per-thread basis, so there is one set of `tcache` bins for each thread. ```text gef➤ heap bins tcache [all] [thread_ids...] ``` Without any arguments, `heap bins tcache` will display the `tcache` for the current thread. `heap bins tcache all` will show the `tcache`s for every thread, or you can specify any number of thread ids to see the `tcache` for each of them. For example, use the following command to show the `tcache` bins for threads 1 and 2. ```text gef➤ heap bins tcache 1 2 ``` ================================================ FILE: docs/commands/help.md ================================================ ## Command `gef help` Displays the help menu for the loaded GEF commands. ```text gef➤ gef help ``` ================================================ FILE: docs/commands/hexdump.md ================================================ ## Command `hexdump` Imitation of the WinDBG command. This command takes 4 optional arguments: - The format for representing the data (by default, byte) - A value/address/symbol used as the location to print the hexdump from (by default, $sp) - The number of qword/dword/word/bytes to display (by default, 64 if the format is byte, 16 otherwise) - The direction of output lines (by default, from low to high addresses) `hexdump byte` will also try to display the ASCII character values if the byte is printable (similarly to the `hexdump -C` command on Linux). The syntax is as following: ```text hexdump (qword|dword|word|byte) [-h] [--reverse] [--size SIZE] [address] ``` Examples: - Display 4 QWORDs from `$pc`: ```text gef➤ hexdump qword $pc --size 4 0x7ffff7a5c1c0+0000 │ 0x4855544155415641 0x7ffff7a5c1c0+0008 │ 0x0090ec814853cd89 0x7ffff7a5c1c0+0010 │ 0x377d6f058b480000 0x7ffff7a5c1c0+0018 │ 0x748918247c894800 ``` - Display 32 bytes from a location in the stack: ```text gef➤ hexdump byte 0x00007fffffffe5e5 --size 32 0x00007fffffffe5e5 2f 68 6f 6d 65 2f 68 75 67 73 79 2f 63 6f 64 65 /home/hugsy/code 0x00007fffffffe5f5 2f 67 65 66 2f 74 65 73 74 73 2f 77 69 6e 00 41 /gef/tests/win.A ``` - Display 8 WORDs from `$sp` in reverse order: ```text gef➤ hexdump word 8 --reverse 0x00007fffffffe0ee│+0x000e 0x0000 0x00007fffffffe0ec│+0x000c 0x7fff 0x00007fffffffe0ea│+0x000a 0xffff 0x00007fffffffe0e8│+0x0008 0xe3f5 0x00007fffffffe0e6│+0x0006 0x0000 0x00007fffffffe0e4│+0x0004 0x0000 0x00007fffffffe0e2│+0x0002 0x0000 0x00007fffffffe0e0│+0x0000 0x0001 ``` ================================================ FILE: docs/commands/highlight.md ================================================ ## Command `highlight` This command sets up custom highlighting for user set strings. Syntax: ```text highlight (add|remove|list|clear) ``` Alias: - `hl` ## Adding matches The following will add `41414141`/`'AAAA'` as yellow, and `42424242`/`'BBBB'` as blue: ```text gef➤ hl add 41414141 yellow gef➤ hl add 42424242 blue gef➤ hl add AAAA yellow gef➤ hl add BBBB blue ``` ## Removing matches To remove a match, target it by the original string used, ex.: ```text gef➤ hl rm 41414141 ``` ## Listing matches To list all matches with their colors: ```text gef➤ hl list 41414141 | yellow 42424242 | blue AAAA | yellow BBBB | blue ``` ## Clearing all matches To clear all matches currently setup: ```text gef➤ hl clear ``` ## RegEx support RegEx support is disabled by default, this is done for performance reasons. To enable regular expressions on text matches: ```text gef➤ gef config highlight.regex True ``` To check the current status: ```text gef➤ gef config highlight.regex highlight.regex (bool) = True ``` ## Performance _**NOTE:** Adding many matches may slow down debugging while using GEF. This includes enabling RegEx support._ ## Colors To find a list of supported colors, check the [theme](./theme.md#changing-colors) documentation. ================================================ FILE: docs/commands/hijack-fd.md ================================================ ## Command `hijack-fd` `gef` can be used to modify file descriptors of the debugged process. The new file descriptor can point to a file, a pipe, a socket, a device etc. To use it, simply run ```text gef➤ hijack-fd FDNUM NEWFILE ``` For instance, ```text gef➤ hijack-fd 1 /dev/null ``` Will modify the current process file descriptors to redirect STDOUT to `/dev/null`. This command also supports connecting to an ip:port if it is provided as an argument. For example ```text gef➤ hijack-fd 0 localhost:8888 ``` Will redirect STDIN to localhost:8888 Check out the tutorial on GEF's YouTube channel: [![yt-tuto-hijack-fd](https://img.youtube.com/vi/Ss_QFeYkEvk/0.jpg)](https://www.youtube.com/watch?v=Ss_QFeYkEvk) ================================================ FILE: docs/commands/memory.md ================================================ ## Command `memory` As long as the 'memory' section is enabled in your context layout (which it is by default), you can register addresses, lengths, and grouping size. ![memory watch](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/memory watch.png) _Note_: this command **should NOT** be mistaken with the [GDB `watch` command](https://sourceware.org/gdb/current/onlinedocs/gdb/Set-Watchpoints.html) meant to set breakpoints on memory access (read,write,exec). ### Adding a watch Specify a location to watch and display with the context, along with their optional size and format: Syntax: ```text memory watch
[SIZE] [(qword|dword|word|byte|pointers)] ``` If the format specified is `pointers`, then the output will be similar to executing the command `dereference $address`. For all other format, the output will be an hexdump of the designated location. Note that the address format is a GDB therefore a symbol can be passed to it. It also supports [GEF functions format](https://www.technovelty.org/linux/plt-and-got-the-key-to-code-sharing-and-dynamic-libraries.html) allowing to easily track commonly used addresses: For example, to watch the first 5 entries of the [GOT](https://hugsy.github.io/gef/functions/got/) as pointers: ```text gef ➤ memory watch $_got()+0x18 5 [+] Adding memwatch to 0x555555773c50 ``` Which, when the `context` is displayed, will show something like: ![gef-context-memory](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/gef-context-memory.png) ### Removing a watch Remove a watched address. To list all the addresses being watched, use `memory list`. Syntax: ```text memory unwatch
``` ### Listing watches Enumerate all the addresses currently watched by the `memory` command. Syntax: ```text memory list ``` The command will output a list of all the addresses watched, along with the size and format to display them as. ### Resetting watches Empties the list of addresses to watch. Syntax: ```text memory reset ``` ================================================ FILE: docs/commands/name-break.md ================================================ ## Command `name-break` The command `name-break` (alias `nb`) can be used to set a breakpoint on a location with a name assigned to it. Every time this breakpoint is hit, the specified name will also be shown in the `extra` section to make it easier to keep an overview when using multiple breakpoints in a stripped binary. `name-break name [address]` `address` may be a linespec, address, or explicit location, same as specified for `break`. If `address` isn't specified, it will create the breakpoint at the current instruction pointer address. Examples: - `nb first *0x400ec0` - `nb "main func" main` - `nb read_secret *main+149` - `nb check_heap` Example output: ```text ─────────────────────────────────────────────────────────────────────────── code:x86:64 ──── 0x400e04 add eax, 0xfffbe6e8 0x400e09 dec ecx 0x400e0b ret → 0x400e0c push rbp 0x400e0d mov rbp, rsp 0x400e10 sub rsp, 0x50 0x400e14 mov QWORD PTR [rbp-0x48], rdi 0x400e18 mov QWORD PTR [rbp-0x50], rsi 0x400e1c mov rax, QWORD PTR fs:0x28 ───────────────────────────────────────────────────────────────────────────────── stack ──── 0x00007fffffffe288│+0x0000: 0x0000000000401117 → movzx ecx, al ← $rsp 0x00007fffffffe290│+0x0008: 0x00007fffffffe4b8 → 0x00007fffffffe71d → "/ctf/t19/srv_copy" 0x00007fffffffe298│+0x0010: 0x0000000100000000 0x00007fffffffe2a0│+0x0018: 0x0000000000000000 0x00007fffffffe2a8│+0x0020: 0x0000000000000004 0x00007fffffffe2b0│+0x0028: 0x0000000000000000 ───────────────────────────────────────────────────────────────────────────────── extra ──── [+] Hit breakpoint *0x400e0c (check_entry) ──────────────────────────────────────────────────────────────────────────────────────────── gef➤ ``` ================================================ FILE: docs/commands/nop.md ================================================ ## Command `nop` The `nop` command allows you to easily patch instructions with nops. ```text nop [LOCATION] [--i ITEMS] [--f] [--n] [--b] ``` `LOCATION` address/symbol to patch (by default this command replaces whole instructions) `--i ITEMS` number of items to insert (default 1) `--f` Force patch even when the selected settings could overwrite partial instructions `--n` Instead of replacing whole instructions, insert ITEMS nop instructions, no matter how many instructions it overwrites `--b` Instead of replacing whole instructions, fill ITEMS bytes with nops nop the current instruction ($pc): ```text gef➤ nop ``` nop an instruction at $pc+3 address: ```text gef➤ nop $pc+3 ``` nop two instructions at address $pc+3: ```text gef➤ nop --i 2 $pc+3 ``` Replace 1 byte with nop at current instruction ($pc): ```text gef➤ nop --b ``` Replace 1 byte with nop at address $pc+3: ```text gef➤ nop --b $pc+3 ``` Replace 2 bytes with nop(s) (breaking the last instruction) at address $pc+3: ```text gef➤ nop --f --b --i 2 $pc+3 ``` Patch 2 nops at address $pc+3: ```text gef➤ nop --n --i 2 $pc+3 ``` ================================================ FILE: docs/commands/patch.md ================================================ ## Command `patch` `patch` lets you easily patch the specified values to the specified address. ```bash gef➤ patch byte $eip 0x90 gef➤ patch string $eip "cool!" ``` These commands copy the first 10 bytes of $rsp+8 to $rip: ```text gef➤ print-format --lang bytearray -l 10 $rsp+8 Saved data b'\xcb\xe3\xff\xff\xff\x7f\x00\x00\x00\x00'... in '$_gef0' gef➤ patch byte $rip $_gef0 ``` Very handy to copy-paste-execute shellcodes/data from different memory regions. ================================================ FILE: docs/commands/pattern.md ================================================ ## Command `pattern` This command will create or search a [De Bruijn](https://en.wikipedia.org/wiki/De_Bruijn_sequence) cyclic pattern to facilitate determining offsets in memory. The sequence consists of a number of unique substrings of a chosen length. It should be noted that for better compatibility, the algorithm implemented in `GEF` is the same as the one in `pwntools`, and can therefore be used in conjunction. ### `pattern create` ```text pattern create [-h] [-n N] [length] ``` The sub-command `create` allows one create a new De Bruijn sequence. The optional argument `n` determines the length of unique subsequences. Its default value matches the currently loaded architecture. The `length` argument sets the total length of the whole sequence. ```text gef➤ pattern create -n 4 128 [+] Generating a pattern of 128 bytes (n=4) aaaabaaacaaadaaaeaaafaaagaaahaaaiaaajaaakaaalaaamaaanaaaoaaapaaaqaaaraaasaaataaauaaavaaawaaaxaaayaaazaabbaabcaabdaabeaabfaabgaab [+] Saved as '$_gef0' ``` The equivalent command with `pwntools` is ```python from pwn import * p = cyclic(128, n=8) ``` ### `pattern search` ```text pattern search [-h] [-n N] [--max-length MAX_LENGTH] [pattern] ``` The `search` sub-command seeks the `pattern` given as argument, trying to find its offset in the De Bruijn sequence. The optional argument `n` determines the length of unique subsequences, and it should usually match the length of `pattern`. Using `MAX_LENGTH` the maximum length of the sequence to search in can be adjusted. Note that the `pattern` can be passed as a GDB symbol (such as a register name), a string or a hexadecimal value ```text gef➤ pattern search 0x6161616161616167 [+] Searching '0x6161616161616167' [+] Found at offset 48 (little-endian search) likely [+] Found at offset 41 (big-endian search) gef➤ pattern search $rbp [+] Searching '$rbp' [+] Found at offset 32 (little-endian search) likely [+] Found at offset 25 (big-endian search) gef➤ pattern search aaaaaaac [+] Searching for 'aaaaaaac' [+] Found at offset 16 (little-endian search) likely [+] Found at offset 9 (big-endian search) ``` ================================================ FILE: docs/commands/pcustom.md ================================================ ## Command `pcustom` `gef` provides a way to create and apply to the currently debugged environment, any new structure (in the C-struct way). On top of simply displaying known and user-defined structures, it also allows to apply those structures to the current context. It intends to mimic the very useful [WinDBG `dt`](https://msdn.microsoft.com/en-us/library/windows/hardware/ff542772(v=vs.85).aspx) command. This is achieved via the command `pcustom` (for `print custom`), or you can use its alias, `dt` (in reference to the WinDBG command) as provided by the [`WinDbg compatibility extension`](https://github.com/hugsy/gef-extras/blob/main/scripts/windbg.py) ### Configuration New structures can be stored in the location given by the configuration setting: ```text gef➤ gef config pcustom.struct_path ``` By default, this location is in `$TEMP/gef/structs` (e.g. `/tmp/user/1000/gef/structs`). The structure can be created as a simple `ctypes` structure, in a file called `.py`. You can naturally set this path to a new location ```text gef➤ gef config pcustom.struct_path /my/new/location ``` And save this change so you can re-use it directly next time you use `gdb` ```text gef➤ gef save [+] Configuration saved to '~/.gef.rc' ``` ### Using user-defined structures You can list existing custom structures via ```text gef➤ pcustom list [+] Listing custom structures from '/tmp/structs' → /tmp/structs/A.py (A, B) → /tmp/structs/elf32_t.py (elf32_t) → /tmp/structs/elf64_t.py (elf64_t) [...] ``` To create or edit a structure, use `pcustom edit ` to spawn your EDITOR with the targeted structure. If the file does not exist, `gef` will nicely create the tree and file, and fill it with a `ctypes` template that you can use straight away! ```text gef➤ pcustom new mystruct_t [+] Creating '/tmp/gef/structs/mystruct_t.py' from template ``` If the structure already exists, GEF will open the text editor to edit the known structure. This is equivalent to: ```text gef➤ pcustom edit elf32_t [+] Editing '/home/hugsy/code/gef-extras/structs/elf32_t.py' ``` #### Static `ctypes.Structure`-like classes The code can be defined just as any Python (using `ctypes`) code. ```python from ctypes import * ''' typedef struct { int age; char name[256]; int id; } person_t; ''' class person_t(Structure): _fields_ = [ ("age", c_int), ("name", c_char * 256), ("id", c_int), ] _values_ = [ # You can define a function to substitute the value ("age", lambda age: "Old" if age > 40 else "Young"), # Or alternatively a list of 2-tuples ("id", [ (0, "root"), (1, "normal user"), (None, "Invalid person") ]) ] ``` `pcustom` requires at least one argument, which is the name of the structure. With only one argument, `pcustom` will dump all the fields of this structure. ```text gef➤ dt person_t +0000 age c_int /* size=0x4 */ +0004 name c_char_Array_256 /* size=0x100 */ +0104 id c_int /* size=0x4 */ ``` By providing an address or a GDB symbol, `gef` will apply this user-defined structure to the specified address: ![gef-pcustom-with-address](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/gef-pcustom-with-address.png) This means that we can now create very easily new user-defined structures For a full demo, watch the following tutorial: [![yt-gef-pcustom](https://img.youtube.com/vi/pid2aW7Bt_w/0.jpg)](https://www.youtube.com/watch?v=pid2aW7Bt_w) Additionally, if you have successfully configured your IDA settings, you can also directly import the structure(s) that was(were) reverse-engineered in IDA directly in your GDB session: ![ida-structure-examples](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/ida-structure-examples.png) - (see `gef-extras/ida-rpyc`, which is the new improved version of `ida-interact`) #### Dynamic `ctypes.Structure`-like classes `pcustom` also supports the use of class factories to create a `ctypes.Structure` class whose structure will be adjusted based on the runtime information we provide (information about the currently debugged binary, the architecture, the size of a pointer and more). The syntax is relatively close to the way we use to create static classes (see above), but instead we define a function that will generate the class. The requirements for this class factory are: - Take a single [`Gef`](https://github.com/hugsy/gef/blob/main/docs/api/gef.md#class-gef) positional argument - End the function name with `_t` To continue the `person_t` function we defined in the example above, we could modify the static class as a dynamic one very easily: ```python import ctypes from typing import Optional def person_t(gef: Optional["Gef"]=None): fields = [ ("age", ctypes.c_int), ("name", ctypes.c_char * 256), ("id", ctypes.c_int), ] class person_cls(ctypes.Structure): _fields_ = fields return person_cls ``` Thanks to the `gef` parameter, the structure can be transparently adjusted so that GEF will parse it differently with its runtime information. For example, we can add constraints to the example above: ```python import ctypes from typing import Optional def person_t(gef: Optional["Gef"]==None): fields = [ ("age", ctypes.c_uint8), ("name", ctypes.c_char * 256), ("id", ctypes.c_uint8), ] # constraint on the libc version if gef.libc.version > (2, 27): # or on the pointer size pointer_type = ctypes.c_uint64 if gef.arch.ptrsize == 8 else ctypes.c_uint32 fields += [ ("new_field", pointer_size) ] class person_cls(ctypes.Structure): _fields_ = fields return person_cls ``` ### Public repository of structures A community contributed repository of structures can be found in [`gef-extras`](https://github.com/hugsy/gef-extras). To deploy it: In bash: ```text git clone https://github.com/hugsy/gef-extras ``` In GEF: ```text gef➤ gef config pcustom.struct_path /path/to/gef-extras/structs gef➤ gef save ``` Then either close GDB or `gef reload`. You can confirm the structures were correctly loaded in GEF's prompt: ```text gef➤ pcustom list ``` Should return several entries. And remember this is collaborative repository, so feel free to contribute too! ================================================ FILE: docs/commands/pie.md ================================================ ## Command `pie` The `pie` command is handy when working with position-independent executables. At runtime, it can automatically resolve addresses for breakpoints that are not static. Note that you need to use the **entire `pie` command series** to support PIE breakpoints, especially the "`pie` run commands", like `pie attach`, `pie run`, etc. ### `pie breakpoint` command This command sets a new PIE breakpoint. It can be used like the normal `breakpoint` command in gdb. The argument for the command is the offset from the base address or a symbol. The breakpoints will not be set immediately after this command. Instead, it will be set when you use `pie attach`, `pie run` or `pie remote` to actually attach to a process, so it can resolve the right base address. Usage: ```text gef➤ pie breakpoint OFFSET ``` ### `pie info` command Since a PIE breakpoint is not a real breakpoint, this command provides a way to observe the state of all PIE breakpoints. This works just like `info breakpoint` in gdb. ```text gef➤ pie info VNum Num Addr 1 N/A 0xdeadbeef ``` VNum stands for virtual number and is used to enumerate the PIE breakpoints. Num is the number of the associated real breakpoints at runtime in GDB. You can omit the VNum argument to get info on all PIE breakpoints. Usage: ```text gef➤ pie info [VNum] ``` ### `pie delete` command This command deletes a PIE breakpoint given its VNum. Usage: ```text gef➤ pie delete [VNum] ``` ### `pie attach` command This command behaves like GDB's `attach` command. Always use this command instead of `attach` if you have PIE breakpoints. This will convert the PIE breakpoints to real breakpoints at runtime. The usage is just the same as `attach`. ### `pie remote` command This command behaves like GDB's `remote` command. Always use this command instead of `remote` if you have PIE breakpoints. Behind the scenes this will connect to the remote target using `gef remote` and then convert the PIE breakpoints to real breakpoints at runtime. The usage is just the same as `remote`. ### `pie run` command This command behaves like GDB's `run` command. Always use this command instead of `run` if you have PIE breakpoints. This will convert the PIE breakpoints to real breakpoints at runtime. The usage is just the same as `run`. ================================================ FILE: docs/commands/print-format.md ================================================ ## Command `print-format` The command `print-format` (alias `pf`) will dump an arbitrary location as an array of bytes following the format specified. Currently, the output formats supported are - Python (`py` - default) - C (`c`) - Assembly (`asm`) - Javascript (`js`) - Hex string (`hex`) - For patch byte command or GDB $_gef[N] byte access (`bytearray`) ```text gef➤ print-format -h [+] print-format [--lang LANG] [--bitlen SIZE] [(--length,-l) LENGTH] [--clip] LOCATION --lang LANG specifies the output format for programming language (available: ['py', 'c', 'js', 'asm', 'hex'], default 'py'). --bitlen SIZE specifies size of bit (possible values: [8, 16, 32, 64], default is 8). --length LENGTH specifies length of array (default is 256). --clip The output data will be copied to clipboard LOCATION specifies where the address of bytes is stored. ``` For example this command will dump 10 bytes from `$rsp` and copy the result to the clipboard. ```text gef➤ print-format --lang py --bitlen 8 -l 10 --clip $rsp [+] Copied to clipboard buf = [0x87, 0xfa, 0xa3, 0xf7, 0xff, 0x7f, 0x0, 0x0, 0x30, 0xe6] ``` These commands copy the first 10 bytes of $rsp+8 to $rip: ```text gef➤ print-format --lang bytearray -l 10 $rsp+8 Saved data b'\xcb\xe3\xff\xff\xff\x7f\x00\x00\x00\x00'... in '$_gef0' gef➤ display/x $_gef0[5] 4: /x $_gef0[5] = 0x7f gef➤ patch byte $rip $_gef0 ``` Very handy to copy-paste-execute shellcodes/data from different memory regions. ================================================ FILE: docs/commands/process-search.md ================================================ ## Command `process-search` `process-search` (aka `ps`) is a convenience command to list and filter process on the host. It is aimed at making the debugging process a little easier when targeting forking process (such as tcp/listening daemon that would fork upon `accept()`). Without argument, it will return all processes reachable by user: ```text gef➤ ps 1 root 0.0 0.4 ? /sbin/init 2 root 0.0 0.0 ? [kthreadd] 3 root 0.0 0.0 ? [ksoftirqd/0] 4 root 0.0 0.0 ? [kworker/0:0] 5 root 0.0 0.0 ? [kworker/0:0H] 6 root 0.0 0.0 ? [kworker/u2:0] 7 root 0.0 0.0 ? [rcu_sched] 8 root 0.0 0.0 ? [rcuos/0] 9 root 0.0 0.0 ? [rcu_bh] 10 root 0.0 0.0 ? [rcuob/0] 11 root 0.0 0.0 ? [migration/0] [...] ``` Or to filter with pattern: ```text gef➤ ps bash 22590 vagrant 0.0 0.8 pts/0 -bash ``` Note: Use "\\" for escaping and "\\\\" for a literal backslash" in the pattern. `ps` also accepts options: * `--smart-scan` will filter out probably less relevant processes (belonging to different users, pattern matched to arguments instead of the commands themselves, etc.) * `--attach` will automatically attach to the first process found So, for example, if your targeted process is called `/home/foobar/plop`, but the existing instance is used through `socat`, like ```text socat tcp-l:1234,fork,reuseaddr exec:/home/foobar/plop ``` Then every time a new connection is opened to tcp/1234, `plop` will be forked, and GEF can easily attach to it with the command ```text gef➤ ps --attach --smart-scan plop ``` ================================================ FILE: docs/commands/process-status.md ================================================ ## Command `process-status` > This command replaces the old commands `pid` and `fd`. `process-status` provides an exhaustive description of the current running process, by extending the information provided by GDB `info proc` command, with all the information from the `procfs` structure. ```text gef➤ ps --smart-scan zsh 22879 gef➤ attach 22879 [...] gef➤ status [+] Process Information PID → 22879 Executable → /bin/zsh Command line → '-zsh' [+] Parent Process Information Parent PID → 4475 Command line → 'tmux new -s cool vibe [+] Children Process Information PID → 26190 (Name: '/bin/sleep', CmdLine: 'sleep 100000') [+] File Descriptors: /proc/22879/fd/0 → /dev/pts/4 /proc/22879/fd/1 → /dev/pts/4 /proc/22879/fd/2 → /dev/pts/4 /proc/22879/fd/10 → /dev/pts/4 [+] File Descriptors: No TCP connections ``` ================================================ FILE: docs/commands/registers.md ================================================ ## Command `registers` The `registers` command will print all the registers and dereference any pointers. Example on a MIPS host: ```text gef➤ reg $zero : 0x00000000 $at : 0x00000001 $v0 : 0x7fff6cd8 -> 0x77e5e7f8 -> <__libc_start_main+200>: bnez v0,0x77e5e8a8 $v1 : 0x77ff4490 $a0 : 0x00000001 $a1 : 0x7fff6d94 -> 0x7fff6e85 -> "/root/demo-mips" $a2 : 0x7fff6d9c -> 0x7fff6e91 -> "SHELL=/bin/bash" $a3 : 0x00000000 $t0 : 0x77fc26a0 -> 0x0 $t1 : 0x77fc26a0 -> 0x0 $t2 : 0x77fe5000 -> "_dl_fini" $t3 : 0x77fe5000 -> "_dl_fini" $t4 : 0xf0000000 $t5 : 0x00000070 $t6 : 0x00000020 $t7 : 0x7fff6bc8 -> 0x0 $s0 : 0x00000000 $s1 : 0x00000000 $s2 : 0x00000000 $s3 : 0x00500000 $s4 : 0x00522f48 $s5 : 0x00522608 $s6 : 0x00000000 $s7 : 0x00000000 $t8 : 0x0000000b $t9 : 0x004008b0 ->
: addiu sp,sp,-32 $k0 : 0x00000000 $k1 : 0x00000000 $s8 : 0x00000000 $status : 0x0000a413 $badvaddr : 0x77e7a874 -> <__cxa_atexit>: lui gp,0x15 $cause : 0x10800024 $pc : 0x004008c4 -> : li v0,2 $sp : 0x7fff6ca0 -> 0x77e4a834 -> 0x29bd $hi : 0x000001a5 $lo : 0x00005e17 $fir : 0x00739300 $fcsr : 0x00000000 $ra : 0x77e5e834 -> <__libc_start_main+260>: lw gp,16(sp) $gp : 0x00418b20 ``` ### Filtering registers If one or more register names are passed to the `registers` command as optional arguments, then only those will be shown: ```text gef➤ reg $rax $rip $rsp $rax : 0x0000555555555169 → endbr64 $rsp : 0x00007fffffffe3e8 → 0x00007ffff7df40b3 → <__libc_start_main+243> mov edi, eax $rip : 0x0000555555555169 → endbr64 ``` ================================================ FILE: docs/commands/reset-cache.md ================================================ ## Command `reset-cache` This command is only useful for debugging `GEF` itself. ================================================ FILE: docs/commands/scan.md ================================================ ## Command `scan` `scan` searches for addresses of one memory region (needle) inside another region (haystack) and lists all results. Usage: ```text gef➤ scan NEEDLE HAYSTACK ``` `scan` requires two arguments, the first is the memory section that will be searched and the second is what will be searched for. The arguments are grepped against the process's memory mappings (just like [vmmap](./vmmap.md)) to determine the memory ranges to search. ```text gef➤ scan stack libc [+] Searching for addresses in 'stack' that point to 'libc' [stack]: 0x00007fffffffd6a8│+0x1f6a8: 0x00007ffff77cf482 → "__tunable_get_val" [stack]: 0x00007fffffffd6b0│+0x1f6b0: 0x00007ffff77bff78 → 0x0000001200001ab2 [stack]: 0x00007fffffffd758│+0x1f758: 0x00007ffff77cd9d0 → 0x6c5f755f72647800 [stack]: 0x00007fffffffd778│+0x1f778: 0x00007ffff77bda6c → 0x0000090900000907 [stack]: 0x00007fffffffd7d8│+0x1f7d8: 0x00007ffff77cd9d0 → 0x6c5f755f72647800 [...] ``` ### Advanced Needle/Haystack syntax To check mappings without a path associated, an address range (start-end) can be used. Note that ranges don't include whitespaces. ![scan-address](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/scan-address.png) ================================================ FILE: docs/commands/search-pattern.md ================================================ ## Command `search-pattern` `gef` allows you to search for a specific pattern at runtime in all the segments of your process memory layout. The command `search-pattern`, alias `grep`, aims to be straight-forward to use: ```text gef➤ search-pattern MyPattern ``` ![grep](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/grep.png) It will provide an easily understandable to spot occurrences of the specified pattern, including the section it/they was/were found, and the permission associated to that section. `search-pattern` can also be used to search for addresses. To do so, simply ensure that your pattern starts with `0x` and is a valid hex address. For example: ```text gef➤ search-pattern 0x4005f6 ``` ![grep-address](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/grep-address.png) The `search-pattern` command can also be used as a way to search for cross-references to an address. For this reason, the alias `xref` also points to the command `search-pattern`. Therefore the command above is equivalent to `xref 0x4005f6` which makes it more intuitive to use. ### Searching in a specific range Sometimes, you may need to search for a very common pattern. To limit the search space, you can also specify an address range or the section to be checked. ```text gef➤ search-pattern 0x4005f6 little libc gef➤ search-pattern 0x4005f6 little 0x603100-0x603200 ``` ### Searching in a specific range using regex Sometimes, you may need an advanced search using regex. Just use --regex arg. Example: how to find null-end-printable(from x20-x7e) C strings (min size >=2 bytes) with a regex: ```text gef➤ search-pattern --regex 0x401000 0x401500 ([\\x20-\\x7E]{2,})(?=\\x00) ``` ================================================ FILE: docs/commands/shellcode.md ================================================ ## Command `shellcode` `shellcode` is a command line client for @JonathanSalwan shellcodes database. It can be used to search and download directly via `GEF` the shellcode you're looking for. Two primitive subcommands are available, `search` and `get` ```text gef➤ shellcode search arm [+] Showing matching shellcodes 901 Linux/ARM Add map in /etc/hosts file - 79 bytes 853 Linux/ARM chmod("/etc/passwd", 0777) - 39 bytes 854 Linux/ARM creat("/root/pwned", 0777) - 39 bytes 855 Linux/ARM execve("/bin/sh", [], [0 vars]) - 35 bytes 729 Linux/ARM Bind Connect UDP Port 68 730 Linux/ARM Bindshell port 0x1337 [...] gef➤ shellcode get 698 [+] Downloading shellcode id=698 [+] Shellcode written as '/tmp/sc-EfcWtM.txt' gef➤ system cat /tmp/sc-EfcWtM.txt /* Title: Linux/ARM - execve("/bin/sh", [0], [0 vars]) - 27 bytes Date: 2010-09-05 Tested on: ARM926EJ-S rev 5 (v5l) Author: Jonathan Salwan - twitter: @jonathansalwan shell-storm.org Shellcode ARM without 0x20, 0x0a and 0x00 [...] ``` ================================================ FILE: docs/commands/skipi.md ================================================ ## Command `skipi` The `skipi` command allows you to easily skip instructions execution. ```text skipi [LOCATION] [--n NUM_INSTRUCTIONS] ``` `LOCATION` address/symbol from where to skip (default is `$pc`) `--n NUM_INSTRUCTIONS` Skip the specified number of instructions instead of the default 1. ```bash gef➤ skipi gef➤ skipi --n 3 gef➤ skipi 0x69696969 gef➤ skipi 0x69696969 --n 6 ``` ================================================ FILE: docs/commands/stepover.md ================================================ ## Command `stepover` The stepover command simplifies the process of stepping over instructions by continuing to a temporary breakpoint at the next instruction. This feature is particularly useful for stepping over call/rep instructions. Ex: Step over call instruction ```text stepover ``` ```bash gef➤ stepover ``` ================================================ FILE: docs/commands/stub.md ================================================ ## Command `stub` The `stub` command allows you stub out functions, optionally specifying the return value. ```text gef➤ stub [-h] [--retval RETVAL] [address] ``` `address` indicates the address of the function to bypass. If not specified, `GEF` will consider the instruction at the program counter to be the start of the function. If `--retval RETVAL` is provided, `GEF` will set the return value to the provided value. Otherwise, it will set the return value to 0. For example, it is trivial to bypass `fork()` calls. Since the return value is set to 0, it will in fact drop us into the "child" process. It must be noted that this is a different behaviour from the classic `set follow-fork-mode child` since here we do not spawn a new process, we only trick the parent process into thinking it has become the child. ### Example Patching `fork()` calls: * Without stub: ![fork execution](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/fork execution.png) * With stub: ![stubbed fork](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/stubbed fork.png) ================================================ FILE: docs/commands/theme.md ================================================ ## Command `theme` Customize `GEF` by changing its color scheme. ```text gef➤ theme context_title_message : red bold default_title_message : red bold default_title_line : green bold context_title_line : green bold disable_color : 0 xinfo_title_message : blue bold ``` ### Changing colors You have the possibility to change the coloring properties of `GEF` display with the `theme` command. The command accepts 2 arguments, the name of the property to update, and its new coloring value. Colors can be one of the following: - red - green - blue - yellow - gray - pink Color also accepts the following attributes: - bold - underline - highlight - blink Any other will value simply be ignored. ```text gef➤ theme context_title_message blue bold foobar gef➤ theme context_title_message : blue bold default_title_message : red bold default_title_line : green bold context_title_line : green bold disable_color : 0 xinfo_title_message : blue bold ``` ================================================ FILE: docs/commands/tmux-setup.md ================================================ ## Command `tmux-setup` In the purpose of always making debugging sessions easier while being more effective, `GEF` integrates two commands: * `tmux-setup` * `screen-setup` Those commands will check whether GDB is being spawn from inside a `tmux` (resp. `screen`) session, and if so, will split the pane vertically, and configure the context to be redirected to the new pane, looking something like: ![gef-tmux-setup](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/gef-tmux-setup.png) To set it up, simply enter ```text gef➤ tmux-setup ``` **Note**: Although `screen-setup` provides a similar setup, the structure of `screen` does not allow a very clean way to do this. Therefore, if possible, it would be recommended to use the `tmux-setup` command instead. ### Possible color issues with tmux On Linux tmux only supports 8 colors with some terminal capabilities (`$TERM` environment variable). This can mess up your color themes when using GEF with tmux. To remedy this if your terminal supports more colors you can either set the variable to something like `TERM=screen-256color` or if you don't want or can't change that variable you can start `tmux` with the `-2` flag to force tmux to use 256 colors. ================================================ FILE: docs/commands/trace-run.md ================================================ ## Command `trace-run` The `trace-run` command is meant to be provide a visual appreciation directly in IDA disassembler of the path taken by a specific execution. It should be used with the IDA script [`ida_color_gdb_trace.py`](https://github.com/hugsy/stuff/blob/main/ida_scripts/ida_color_gdb_trace.py) It will trace and store all values taken by `$pc` during the execution flow, from its current value, until the value provided as argument. ```text gef> trace-run ``` ![trace-run-1](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/trace-run-1.png) By using the script `ida_color_gdb_trace.py` on the text file generated, it will color the path taken: ![trace-run-2](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/trace-run-2.png) ================================================ FILE: docs/commands/version.md ================================================ ## Command `version` Print out version information about your current gdb environment. ### Usage Examples When GEF is located in a directory tracked with git: ```text gef➤ version GEF: rev:48a9fd74dd39db524fb395e7db528f85cc49d081 (Git - clean) SHA1(/gef/rules/gef.py): 848cdc87ba7c3e99e8129ad820c9fcc0973b1e99 GDB: 9.2 GDB-Python: 3.8 ``` Otherwise the command shows the `standalone` information: ```text gef➤ version GEF: (Standalone) Blob Hash(/gef/rules/gef.py): f0aef0f481e8157006b26690bd121585d3befee0 SHA1(/gef/rules/gef.py): 4b26a1175abcd8314d4816f97fdf908b3837c779 GDB: 9.2 GDB-Python: 3.8 ``` The `Blob Hash` can be used to easily find the git commit(s) matching this file revision. ```text git log --oneline --find-object ``` If this command does not return anything then the file was most likely modified and cannot be matched to a specific git commit. ================================================ FILE: docs/commands/vmmap.md ================================================ ## Command `vmmap` `vmmap` displays the target process's entire memory space mapping. ![vmmap](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/vmmap.png) Interestingly, it helps finding secret gems: as an aware reader might have seen, memory mapping differs from one architecture to another (this is one of the main reasons I started `GEF` in a first place). For example, you can learn that ELF running on SPARC architectures always have their `.data` and `heap` sections set as Read/Write/Execute. `vmmap` can accept multiple arguments, either patterns to match again mapping names, or addresses to determine which section it belongs to: 1. `-a` / `--addr`: - filter by address -> parses the next argument as an integer or asks gdb to interpret the value 2. `-n` / `--name`: - filter based on section name 3. If nothing is specified, it prints a warning and guesses the type ![vmmap-grep](https://github.com/hugsy/gef/assets/11377623/a3dbaa3e-88b0-407f-a0dd-07e65c4a3f73) ![vmmap-address](https://github.com/hugsy/gef/assets/11377623/4dffe491-f927-4f03-b842-4d941140e66c) The address can be also be given in the form of a register or variable. ![vmmap-register](https://github.com/hugsy/gef/assets/11377623/aed7ecdc-7ad9-4ba5-ae03-329e66432731) And you can do all of them in one command 🙂 ![vmmap-all-in-one](https://github.com/hugsy/gef/assets/11377623/b043f61b-48b3-4316-9f84-eb83822149ac) ================================================ FILE: docs/commands/xfiles.md ================================================ ## Command `xfiles` `xfiles` is a more convenient representation of the GDB native command, `info files` allowing you to filter by pattern given in argument. For example, if you only want to show the code sections (i.e. `.text`): ![xfiles-example](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/xfiles-example.png) ================================================ FILE: docs/commands/xinfo.md ================================================ ## Command `xinfo` `xinfo` displays all the information known to `gef` about the specific address given as argument: ![xinfo-example](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/xinfo-example.png) **Important note** : For performance reasons, `gef` caches certain results. `gef` will try to automatically refresh its own cache to avoid relying on obsolete information of the debugged process. However, in some dodgy scenario, `gef` might fail detecting some new events making its cache partially obsolete. If you notice an inconsistency on your memory mapping, you might want to force `gef` flushing its cache and fetching brand new data, by running the command `reset-cache`. ================================================ FILE: docs/commands/xor-memory.md ================================================ ## Command `xor-memory` This command is used to XOR a block of memory. Its syntax is: ```text xor-memory
``` The first argument (`display` or `patch`) is the action to perform: - `display` will only show an hexdump of the result of the XOR-ed memory block, without writing the debuggee's memory. ```text gef➤ xor display $rsp 16 1337 [+] Displaying XOR-ing 0x7fff589b67f8-0x7fff589b6808 with '1337' ────────────────────────────────[ Original block ]──────────────────────────────────── 0x00007fff589b67f8 46 4e 40 00 00 00 00 00 00 00 00 00 00 00 00 00 FN@............. ────────────────────────────────[ XOR-ed block ]────────────────────────────────────── 0x00007fff589b67f8 55 79 53 37 13 37 13 37 13 37 13 37 13 37 13 37 UyS7.7.7.7.7.7.7 ``` - `patch` will overwrite the memory with the xor-ed content. ```text gef➤ xor patch $rsp 16 1337 [+] Patching XOR-ing 0x7fff589b67f8-0x7fff589b6808 with '1337' gef➤ hexdump byte $rsp 16 0x00007fff589b67f8 55 79 53 37 13 37 13 37 13 37 UyS7.7.7.7 ``` ================================================ FILE: docs/compat.md ================================================ ## GEF Compatibility This matrix indicates the version of Python and/or GDB | GEF version | GDB Python compatibility | Python compatibility | | :--: | :--: | :--: | | [2018.02](https://github.com/hugsy/gef/releases/tag/2018.02) | 7.2 | Python 2.7, Python 3.4+ | | [2020.03](https://github.com/hugsy/gef/releases/tag/2020.03) | 7.4 | Python 2.7, Python 3.4+ | | [2022.01](https://github.com/hugsy/gef/releases/tag/2022.01) | 8.0 | Python 3.6+ | | [2025.01](https://github.com/hugsy/gef/releases/tag/2025.01) | 10.0 | Python 3.10+ | ================================================ FILE: docs/config.md ================================================ ## Configuring GEF GEF comes with its own configuration and customization system, allowing fine tweaking. The configuration file is located under `~/.gef.rc` by default, and is automatically loaded when GEF is loaded by GDB. If not configuration file is found, GEF will simply use the default settings. The configuration file is a Python [`configparser`](https://docs.python.org/3/library/configparser.html). To create a basic file with all settings and their default values, simply run ```bash gdb -ex 'gef save' -ex quit ``` You can now explore the configuration file under `~/.gef.rc`. Once in GEF, the configuration settings can be set/unset/modified by the [command `gef config`](/docs/commands/config.md). Without argument the command will simply dump all known settings: ![gef-config](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/gef-config.png) To update, follow the syntax ```text gef➤ gef config . ``` Any setting updated this way will be specific to the current GDB session. To make permanent, use the following command ```text gef➤ gef save ``` Refer to the `gef config` [command documentation](/docs/commands/config.md) for complete explanation. ================================================ FILE: docs/debugging.md ================================================ ## Debugging Debugging GEF has a trick, let's see some examples ## Debugging with pdb Open gef.py Search for **class NopCommand(GenericCommand)**, go to do_invoke method and insert: ```python import pdb; pdb.set_trace() ``` Open a gdb session -> start -> nop Done! ```bash gef➤ nop > /home/dreg/.gef-7c170cf6be3d84b2672a22e43b9128a23fe53c3b.py(6075)do_invoke() -> args : argparse.Namespace = kwargs["arguments"] (Pdb) ll 6070 @only_if_gdb_running 6071 @parse_arguments({"address": "$pc"}, {"--i": 1, "--b": True, "--f": True, "--n": True}) 6072 def do_invoke(self, _: List[str], **kwargs: Any) -> None: 6073 import pdb; pdb.set_trace() 6074 6075 -> args : argparse.Namespace = kwargs["arguments"] 6076 address = parse_address(args.address) ``` Learn more about [pdb](https://docs.python.org/3/library/pdb.html) ## Debugging with PyCharm Install [pycharm](https://www.jetbrains.com/help/pycharm/installation-guide.html) Create a new project: ![pycharm1](https://github.com/hugsy/gef/assets/9882181/600a9522-208a-4f2e-89b2-707136ba020a) ![pycharm2](https://github.com/hugsy/gef/assets/9882181/4cf51b17-6aa0-463f-b538-200dd9e9b5e6) Go to menu -> Run -> Edit configurations...: ![pycharm3](https://github.com/hugsy/gef/assets/9882181/6fdacda8-c4cc-44e0-8fc1-3b18cf118fbe) Create a Python Debug Server: ![pycharm4](https://github.com/hugsy/gef/assets/9882181/09f99b28-5716-48be-8a0c-8ed69920c4a0) ![pycharm5](https://github.com/hugsy/gef/assets/9882181/814fe019-c390-4ca3-8605-e3842be04df1) Debug your new Unnamed: ![pycharm6](https://github.com/hugsy/gef/assets/9882181/f0f1eee9-fcaa-4919-8985-8d7d09907ebd) ![pycharm7](https://github.com/hugsy/gef/assets/9882181/039e8749-b949-49e8-917f-b592f9cf6dac) Copy the info from output Window to gef.py: ![pycharm8](https://github.com/hugsy/gef/assets/9882181/be24ee23-3101-4b71-b62f-70883c9135ad) First, add to gef.py: ```python import pydevd_pycharm ``` Second, search for **class NopCommand(GenericCommand)**, go to do_invoke method and insert: ```python pydevd_pycharm.settrace('localhost', port=35747, stdoutToServer=True, stderrToServer=True) ``` Open a gdb session -> start -> nop Done! ![pycharm9](https://github.com/hugsy/gef/assets/9882181/b22ec431-57e7-442a-835e-5817bdac7687) ## Debugging with VSCode The approach to debug GEF with VSCode is relatively similar to that of PyCharm. Make sure to install the [Python extension for VSCode](https://marketplace.visualstudio.com/items?itemName=ms-python.python). This will install `debugpy`, a remote debugger that you can connect to from VSCode and debug anything in GEF from your session (breakpoints, watchpoints, etc.). Debugging a Python app from VSCode is [extensively covered in the official docs](https://code.visualstudio.com/docs/python/debugging) to refer to them if you're not sure how it works. To start a debugging session in GEF, manually run the following Python commands ```python gef> pi import debugpy; debugpy.listen(5678); pi debugpy.wait_for_client() ``` Alternatively a convenience script named `vscode_debug.py` can also be found in the `scripts` folder, which you can invoke easily simply using the GDB `source` command: ```text gef> source /path/to/gef/scripts/vscode_debug.py ``` GEF will be suspended, waiting for a client to connect to the debugger to resume the execution. Then from your VSCode, edit or create `/path/to/gef/.vscode/launch.json`, and add a debug configuration to attach to GEF, by specifying the IP address and port (on `localhost` in the example below, but the remote server can be anywhere): ```json { "version": "0.2.0", "configurations": [ { "name": "Python: Attach to GEF", "type": "python", "request": "attach", "connect": { "host": "localhost", "port": 5678 } } ] } ``` Everything is ready to attach to GEF. By default, you can simply hit F5 on VSCode (Start Debugging) ![vscode-dbg](https://user-images.githubusercontent.com/590234/260521923-b730e2b1-8a17-423d-914c-2be0a1abfed4.png) ================================================ FILE: docs/deprecated.md ================================================ ## Deprecated commands GEF is in itself a large file, but to avoid it to be out of control some commands once part of GEF were either moved to [GEF-Extras](https://github.com/hugsy/gef-extras) or even simply removed. This page aims to track those changes. | Command | Status | Since | Link (if Applicable) | Notes | | -- | -- | -- | -- | -- | | `cs-disassemble` | Moved | 2022.06 | [New location](https://github.com/hugsy/gef-extras/blob/main/scripts/capstone.py) | Depends on `capstone` | | `assemble` | Moved | 2022.06 | [New location](https://github.com/hugsy/gef-extras/blob/main/scripts/assemble.py) | Depends on `keystone` | | `emulate` | Moved | 2022.06 | [New location](https://github.com/hugsy/gef-extras/blob/main/scripts/emulate/__init__.py) | Depends on `unicorn` and `capstone` | | `set-permission` | Moved | 2022.06 | [New location](https://github.com/hugsy/gef-extras/blob/main/scripts/emulate/__init__.py) | Depends on `keystone` | | `ropper` | Moved | 2022.06 | [New location](https://github.com/hugsy/gef-extras/blob/main/scripts/ropper.py) | Depends on `ropper` | | `ida-interact` | Moved | 2022.06 | [New location](https://github.com/hugsy/gef-extras/blob/main/scripts/ida_interact.py) | Depends on `rpyc` | | `exploit-template` | Moved | [c402900](https://github.com/hugsy/gef-extras/commit/c4029007994d5e508cb3df900b60821b0b61e0e5) | [New location](https://github.com/hugsy/gef-extras/blob/main/scripts/skel.py) | | | `windbg` | Moved | [a933a5a](https://github.com/hugsy/gef-extras/commit/a933a5ac43933742d91f4e299eadf05e3e0670be) | [New location](https://github.com/hugsy/gef-extras/blob/main/scripts/windbg.py) | | | `is-syscall` | Moved | [3f79fb38](https://github.com/hugsy/gef-extras/commit/3f79fb382aa9052d073698d40237f98982c5d2de) | [New location](https://github.com/hugsy/gef-extras/blob/main/scripts/syscall_args) | | | `syscall-args` | Moved | [3f79fb38](https://github.com/hugsy/gef-extras/commit/3f79fb382aa9052d073698d40237f98982c5d2de) | [New location](https://github.com/hugsy/gef-extras/blob/main/scripts/syscall_args) | | ## Removed support for pyenv Support for [pyenv](https://github.com/pyenv/pyenv) has been removed after `2024.05`, for more information see [#1078](https://github.com/hugsy/gef/issues/1078) and [#1062](https://github.com/hugsy/gef/issues/1062). ================================================ FILE: docs/faq.md ================================================ ## Frequently Asked Questions ## Why use GEF over PEDA? [PEDA](https://github.com/longld/peda) is a fantastic tool that provides similar commands to make the exploitation development process smoother. However, PEDA suffers from a major drawbacks, which the code is too fundamentally linked to Intel architectures (x86-32 and x86-64). On the other hand, GEF not only supports all the architecture supported by GDB (currently x86, ARM, AARCH64, MIPS, PowerPC, SPARC) but is designed to integrate new architectures very easily as well! Also, PEDA development has been quite idle for a few years now, and many new interesting features a debugger can provide simply do not exist. ## What if my GDB is < 10.0 ? GDB was introduced with its Python support early 2011 with the release of GDB 7. A (very) long way has gone since and the Python API has been massively improved, and GEF is taking advantage of them to provide the coolest features with as little performance impact as possible. Currently, GEF is optimized for running against GDB version 10.0+, and Python 3.10+. This allows for the best performance and use of the GDB Python API. However, GEF can run on older versions too, check out [the version compatibility matrix](compat.md). For really older versions of GDB, you can use [`gef-legacy`](https://github.com/hugsy/gef-legacy) which supports a lot of older GDB, and a Python 2/3 compatibility layer. Therefore, it is highly recommended to run GEF with the latest version of GDB. However, all functions should work on a GDB 10.0 and up. If not, send a [bug report](https://github.com/hugsy/gef/issues) and provide as many details as possible. If you are running an obsolete version, GEF will show a error and message and exit. Some pre-compiled static binaries for both recent GDB and GDBServer can be downloaded from the [`gdb-static`](https://github.com/hugsy/gdb-static) repository. ## I cannot get GEF setup GEF will work on any GDB 10+ compiled with Python 3.10+ support. You can view that commands that failed to load using `gef missing`, but this will not affect GEF generally. If you experience problems setting it up on your host, first go to the [Discord channel](https://discord.gg/HCS8Hg7) for that. You will find great people there willing to help. Note that the GitHub issue section is to be used to **report bugs** and **GEF issues** (like unexpected crash, improper error handling, weird edge case, etc.), not a place to ask for help. All recent distributions ship packaged GDB that should be ready-to-go, with GDB >= 10.0 and Python 3.10+. Any version higher or equal will work just fine. So you might actually only need to run `apt install gdb` to get the full-force of GEF. ## I get a SegFault when starting GDB with GEF A long standing bug in the `readline` library can make `gef` crash GDB when displaying certain characters (SOH/ETX). As a result, this would SIGSEGV GDB as `gef` is loading, a bit like this: ```text root@debian-aarch64:~# gdb -q ./test-bin-aarch64 GEF ready, type `gef' to start, `gef config' to configure 53 commands loaded, using Python engine 3.4 [*] 5 commands could not be loaded, run `gef missing` to know why. [+] Configuration from '/root/.gef.rc' restored Reading symbols from ./bof-aarch64...(no debugging symbols found)...done. Segmentation fault (core dumped) ``` If so, this can be fixed easily by setting the `gef.readline_compat` variable to `True` in the `~/.gef.rc` file. Something like this: ```text root@debian-aarch64:~# nano ~/.gef.rc [...] [gef] readline_compat = True ``` You can now use all features of `gef` even on versions of GDB compiled against old `readline` library. ## Does GEF prevent the use of other GDB plugins? Definitely not! You can use any other GDB plugin on top of it for an even better debugging experience. Some interesting plugins highly recommended too: - [!exploitable](https://github.com/jfoote/exploitable/) - [Voltron](https://github.com/snare/voltron) ![voltron](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/voltron.png) Src: [@rick2600: terminator + gdb + gef + voltron cc: @snare @_hugsy_](https://twitter.com/rick2600/status/775926070566490113) ## I want to contribute, where should I head first? I would suggest thoroughly reading this documentation, just having a look to the [CONTRIBUTE](https://github.com/hugsy/gef/blob/main/.github/CONTRIBUTING.md) file of the project to give you pointers. Also a good thing would be to join our [Discord channel](https://discord.gg/HCS8Hg7) to get in touch with the people involved/using it. ## I think I've found a bug, how can I help fixing it? `gef` is only getting better through people (like you!) using it, but most importantly reporting unexpected behavior. In most locations, Python exceptions will be properly intercepted. If not, `gef` wraps all commands with a generic exception handler, to disturb as little as possible your debugging session. If it happens, you'll only get to see a message like this: ![gef-exception](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/gef-exception.png) By switching to debug mode, `gef` will give much more information: ```text gef➤ gef config gef.debug 1 ``` ![gef-debug](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/gef-debug.png) If you think fixing it is in your skills, then send a [Pull Request](https://github.com/hugsy/gef/pulls) with your patched version, explaining your bug, and what was your solution for it. Otherwise, you can open an [issue](https://github.com/hugsy/gef/issues), give a thorough description of your bug and copy/paste the content from above. This will greatly help for solving the issue. ## I get weird issues/characters using GDB + Python3, what's up? Chances are you are not using UTF-8. Python3 is [highly relying on UTF-8](https://www.diveintopython3.net/strings.html) to display correctly characters of any alphabet and [also some cool emojis](https://unicode.org/emoji/charts/full-emoji-list.html). When GDB is compiled with Python3, GEF will assume that your current charset is UTF-8 (for instance, `en_US.UTF-8`). Use your `$LANG` environment variable to tweak this setting. In addition, some unexpected results were observed when your local is not set to English. If you aren't sure, simply run `gdb` like this: ```text LC_ALL=en_US.UTF-8 gdb /path/to/your/binary ``` ## GDB crashes on ARM memory corruption with `gdb_exception_RETURN_MASK_ERROR` This issue is **NOT** GEF related, but GDB's, or more precisely some versions of GDB packaged with Debian/Kali for ARM > > Original Issue and Mitigation > > gdb version 7.12, as distributed w/ Raspbian/Kali rolling (only distro's > tested,) throws an exception while disassembling ARM binaries when using gef. > This is not a gef problem, this is a gdb problem. gef is just the tool that > revealed the gdb dain bramage! (The issue was not observed using vanilla > gdb/peda/pwndbg) This issue was first noted when using si to step through a > simple ARM assembly program (noted above) when instead of exiting cleanly, > gdb's disassembly failed with a SIGABRT and threw an exception: > > `gdb_exception_RETURN_MASK_ERROR` > > This turns out to be a known problem (regression) with gdb, and affects > gef users running the ARM platform (Raspberry Pi). > > The mitigation is for ARM users to compile gdb from source and run the latest > version, 8.1 as of this writing. > **Do not file an issue**, again it is **NOT** a bug from GEF, or neither from GDB Python API. Therefore, there is nothing GEF's developers can do about that. The correct solution as mentioned above is to recompile your GDB with a newer (better) version. The whole topic was already internally discussed, so please refer to the [issue 206](https://github.com/hugsy/gef/issues/206) for the whole story. ## I still don't have my answer... Where can I go? Discord is your answer: join and talk to us by clicking here [![Discord](https://img.shields.io/badge/Discord-GDB--GEF-yellow)](https://discord.gg/HCS8Hg7) If you cannot find the answer to your problem here or on the Discord, then go to the project [Issues page](https://github.com/hugsy/gef/issues) and fill up the forms with as much information as you can! ## How can I use GEF to debug a process in a container? GEF can attach to a process running in a container using `gdb --pid=$PID`, where `$PID` is the ID of the running process _on the host_. To find this, you can use `docker top -o pid | awk '!/PID/' | xargs -I'{}' pstree -psa {}` to view the process tree for the container. `sudo` may be required to attach to the process, which will depend on your system's security settings. Please note that cross-container debugging may have unexpected issues. Installing gdb and GEF inside the container, or using [the official GEF docker image](https://hub.docker.com/r/crazyhugsy/gef) may improve results. ================================================ FILE: docs/functions/base.md ================================================ ## Function `$_base()` Return the matching file's base address plus an optional offset. Defaults to current file. Note that quotes need to be escaped. _Note_: a debugging session must be active ```text $_base([filepath]) ``` Example: ```text gef➤ p $_base(\"/usr/lib/ld-2.33.so\") ``` ================================================ FILE: docs/functions/bss.md ================================================ ## Function `$_bss()` Return the current BSS base address plus the given offset. _Note_: a debugging session must be active ```text $_bss([offset]) ``` Example: ```text gef➤ p $_bss(0x20) ``` ================================================ FILE: docs/functions/got.md ================================================ ## Function `$_got()` Return the current GOT base address plus the given offset. _Note_: a debugging session must be active ```text $_got([offset]) ``` Example: ```text gef➤ p $_got(0x20) ``` ================================================ FILE: docs/functions/heap.md ================================================ ## Function `$_heap()` Return the current heap base address plus the given offset. _Note_: a debugging session must be active ```text $_heap([offset]) ``` Example: ```text gef➤ p $_heap(0x20) ``` ================================================ FILE: docs/functions/stack.md ================================================ ## Function `$_stack()` Return the current stack base address plus the given offset. _Note_: a debugging session must be active ```text $_stack([offset]) ``` Example: ```text gef➤ p $_stack(0x20) ``` ================================================ FILE: docs/index.md ================================================ # GEF - GDB Enhanced Features [![Docs](https://img.shields.io/badge/Documentation-blue.svg)](https://hugsy.github.io/gef/) [![Coverage](https://img.shields.io/badge/Coverage-purple.svg)](https://hugsy.github.io/gef/coverage/) [![MIT](https://img.shields.io/packagist/l/doctrine/orm.svg?maxAge=2592000?style=plastic)](https://github.com/hugsy/gef/blob/main/LICENSE) [![Python 3](https://img.shields.io/badge/Python-3-green.svg)](https://github.com/hugsy/gef/) [![Discord](https://img.shields.io/badge/Discord-GDB--GEF-yellow)](https://discord.gg/HCS8Hg7) `GEF` (pronounced ʤɛf - "Jeff") is a kick-ass set of commands for X86, ARM, MIPS, PowerPC and SPARC to make GDB cool again for exploit dev. It is aimed to be used mostly by exploit developers and reverse-engineers, to provide additional features to GDB using the Python API to assist during the process of dynamic analysis and exploit development. It requires Python 3, but [`gef-legacy`](https://github.com/hugsy/gef-legacy) can be used if Python 2 support is needed. ![gef-context](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/gef-context.png) ## GDB Made Easy * **One** single GDB script * Entirely **architecture agnostic**, **NO** dependencies: `GEF` is battery-included and [is installable instantly](https://hugsy.github.io/gef/#setup) * **Fast** limiting the number of dependencies and optimizing code to make the commands as fast as possible * Provides a great variety of commands to drastically change your debugging experience in GDB. * [**Easily** extensible](https://hugsy.github.io/gef/api/) to create other commands by providing more comprehensible layout to GDB Python API. * Full Python3 support ([Python2 support was dropped in 2020.03](https://github.com/hugsy/gef/releases/tag/2020.03)) - check out [`gef-legacy`](https://github.com/hugsy/gef-legacy) for a Python2 compatible version, and [the compatibility matrix](/docs/compat.md) for a complete rundown of version support. * Built around an architecture abstraction layer, so all commands work in any GDB-supported architecture such as x86-32/64, ARMv5/6/7, AARCH64, SPARC, MIPS, PowerPC, etc. * Suited for real-life debugging, exploit development, just as much as for CTFs * And a lot more commands contributed by the community available on [GEF-Extras](https://github.com/hugsy/gef-extras) !! Check out the [showroom page](https://hugsy.github.io/gef/screenshots/) for more | or [try it online yourself!](https://demo.gef.blah.cat) (user:`gef`/password:`gef-demo`) ## Quick start ### Automated installation GEF has no dependencies, is fully battery-included and works out of the box. You can get started with GEF in a matter of seconds, by simply running: ```bash bash -c "$(curl -fsSL https://gef.blah.cat/sh)" ``` For more details and other ways to install GEF please see [installation page](https://hugsy.github.io/gef/install/). ### Run Then just start playing (for local files): ```bash $ gdb -q /path/to/my/bin gef➤ gef help ``` Or (for remote debugging): ```bash remote:~ $ gdbserver 0.0.0.0:1234 /path/to/file Running as PID: 666 ``` And: ```bash local:~ $ gdb -q gef➤ gef-remote -t your.ip.address:1234 -p 666 ``` ## Bugs & Feedbacks To discuss `gef`, `gdb`, exploitation or other topics, feel free to join our [Discord channel](https://discord.gg/HCS8Hg7). For bugs or feature requests, just go [here](https://github.com/hugsy/gef/issues) and provide a thorough description if you want help. _Side Note_: `GEF` fully relies on the GDB API and other Linux-specific sources of information (such as `/proc/`). As a consequence, some of the features might not work on custom or hardened systems such as GrSec. ## Contribution `gef` was created and maintained by myself, [`@_hugsy_`](https://twitter.com/_hugsy_), but kept fresh thanks to [all the contributors](https://github.com/hugsy/gef/graphs/contributors). [![contributors-img](https://contrib.rocks/image?repo=hugsy/gef)](https://github.com/hugsy/gef/graphs/contributors) Or if you just like the tool, feel free to drop a simple _"thanks"_ on Discord, Twitter or other, it is **always** very appreciated. ## Sponsors We would like to thank in particular the following people who've been sponsoring GEF allowing us to dedicate more time and resources to the project: [](https://github.com/nkaretnikov) [](https://github.com/r3zk0n) [](https://github.com/merces) [](https://github.com/nbars) [](https://github.com/maycon) [](https://github.com/jespinhara) [](https://github.com/therealdreg) [](https://github.com/mikesart) ## Extra Credits * The GEF logo was designed by [TheZakMan](https://twitter.com/thezakman) ## 🍺 Happy hacking ================================================ FILE: docs/install.md ================================================ ## Installing GEF ## Prerequisites Specific GEF commands rely on commonly used Unix commands to extract additional information. Therefore it requires the following binaries to be present: * `file` * `readelf` * `nm` * `ps` * `python3` Those tools are included by default in many modern distributions. If they're missing, you can use your OS package manager to install them. ### GDB Only [GDB 10.0 and higher](https://www.sourceware.org/gdb/) is required. It must be compiled with Python 3.10 or higher support. For most people, simply using your distribution package manager should be enough. As of January 2020, GEF officially doesn't support Python 2 any longer, due to Python 2 becoming officially deprecated. GEF will then only work for Python 3. If you absolutely require GDB + Python 2, please use [GEF-Legacy](https://github.com/hugsy/gef-legacy) instead. Note that `gef-legacy` won't provide new features, and only functional bugs will be handled. You can verify it with the following command: ```bash gdb -nx -ex 'pi print(sys.version)' -ex quit ``` This should display your version of Python compiled with `gdb`. ```bash $ gdb -nx -ex 'pi print(sys.version)' -ex quit 3.12.3 (main, Jul 31 2024, 17:43:48) [GCC 13.2.0] ``` ### Python dependencies There are **none**: `GEF` works out of the box! GEF itself provides most (if not all 🤯) features required for typical sessions. However, GEF can be easily extended via * community-built scripts, functions and architectures in the repo `gef-extras` (see below) * your own script which can leverage the GEF API for the heavy lifting ## Standalone ### Quick install The quickest way to get started with GEF is through the installation script available. Simply make sure you have [GDB 10.0 or higher](https://www.sourceware.org/gdb/), compiled with Python 3.10 or higher, and run ```bash bash -c "$(curl -fsSL https://gef.blah.cat/sh)" ``` Or if you prefer `wget` ```bash bash -c "$(wget https://gef.blah.cat/sh -O -)" ``` Alternatively from inside `gdb` directly: ```bash $ gdb -q (gdb) pi import urllib.request as u, tempfile as t; g=t.NamedTemporaryFile(suffix='-gef.py'); open(g.name, 'wb+').write(u.urlopen('https://tinyurl.com/gef-main').read()); gdb.execute('source %s' % g.name) ``` That's it! GEF is installed and correctly set up. You can confirm it by checking the `~/.gdbinit` file and see a line that sources (i.e. loads) GEF. ```bash $ cat ~/.gdbinit source ~/.gdbinit-gef.py ``` ### Update If your host/VM is connected to the Internet, you can update `gef` easily to the latest version (even without `git` installed). with `python /path/to/gef.py --update` ```bash $ python ~/.gdbinit-gef.py --update Updated ``` This will deploy the latest version of `gef`'s _main_ branch from Github. If no updates are available, `gef` will respond `No update` instead. ## Using git To contribute to GEF, you might prefer using git directly. ```bash git clone https://github.com/hugsy/gef.git echo source `pwd`/gef/gef.py >> ~/.gdbinit ``` ## Community repository: GEF-Extras GEF was built to also provide a solid base for external scripts. The repository [`gef-extras`](https://github.com/hugsy/gef-extras) is an open repository where anyone can freely submit their own commands to extend GDB via GEF's API. To benefit from it: ```bash # using the automated way ## via the install script $ bash -c "$(wget https://github.com/hugsy/gef/raw/main/scripts/gef-extras.sh -O -)" # or manually ## clone the repo $ git clone --branch main https://github.com/hugsy/gef-extras.git ## then specify gef to load this directory $ gdb -ex 'gef config gef.extra_plugins_dir "/path/to/gef-extras/scripts"' -ex 'gef save' -ex quit [+] Configuration saved ``` You can also use the structures defined from this repository: ```bash $ gdb -ex 'gef config pcustom.struct_path "/path/to/gef-extras/structs"' -ex 'gef save' -ex quit [+] Configuration saved ``` There, you're now fully equipped epic pwnage with **all** GEF's goodness!! # Uninstalling GEF ## Prevent script loading GDB provides the `-nx` command line flag to disable the commands from the `~/.gdbinit` to be executed. ```text gdb -nx ``` ## Disable GEF To disable GEF without removing it, go to editing `~/.gdbinit`, spot the line that sources GEF, and comment / delete that line: So: ```text $ cat ~/.gdbinit source /my/path/to/gef.py ``` Will become: ```text $ cat ~/.gdbinit # source /my/path/to/gef.py ``` Restart GDB, GEF is gone. Note that you can also load GEF at any moment during your GDB session as such: ```text $ gdb (gdb) source /my/path/to/gef.py ``` ## Remove GEF GEF is a one-file GDB script. Therefore, to remove GEF simply spot the location it was installed (for example, by using `~/.gdbinit`) and delete the file. If a configuration file was created, it will be located as `~/.gef.rc` and can also be deleted: ```text $ cat ~/.gdbinit # source /my/path/to/gef.py $ rm /my/path/to/gef.py ~/.gef.rc ``` GEF is totally removed from your system. ================================================ FILE: docs/obsolete/docs/index.md ================================================ --- ## The latest version of the documentation is hosted on [hugsy.github.io/gef](https://hugsy.github.io/gef) --- ![redirect](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/redirect.png) ================================================ FILE: docs/obsolete/mkdocs.yml ================================================ site_name: GEF - GDB Enhanced Features documentation repo_url: https://github.com/hugsy/gef/ docs_dir: docs/ theme: readthedocs nav: - Home: index.md ================================================ FILE: docs/obsolete/requirements.txt ================================================ mkdocs>=1.2.3 ================================================ FILE: docs/requirements.txt ================================================ mkdocs-material lazydocs ================================================ FILE: docs/screenshots.md ================================================ ## Screenshots This page illustrates a few of the possibilities available to you when using `GEF`. ## Multi-architecture support `GEF` was designed to support any architecture supported by GDB via an easily extensible architecture API. Currently `GEF` supports the following architectures: - Intel x86 (32b & 64b) - ARM (v6/v7) - AARCH64 - MIPS/MIPS64 - PowerPC - SPARC/SPARCv9 ## Features ### Embedded hexdump view To this day, GDB doesn't come with a hexdump-like view. Well `GEF` fixes that for you via the `hexdump` command: ![hexdump](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/hexdump.png) ### Dereferencing data or registers No more endless manual pointer dereferencing `x/x` style. Just use `dereference` for that. Or for a comprehensive view of the registers, `registers` might become your best friend: ![mipsel-deref-regs](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/mipsel-deref-regs.png) ### Heap analysis #### Detailed view of Glibc Chunks ![x86-heap-chunks](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/x86-heap-chunks.png) #### Automatic detection of UaF during runtime ![x86-heap-helper-uaf](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/x86-heap-helper-uaf.png) ### Display ELF information #### ELF structure ![elf-info](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/elf-info.png) #### Security settings ![elf-checksec](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/elf-checksec.png) ### Automatic vulnerable string detection ![aarch64-fmtstr](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/aarch64-fmtstr.png) ### Code emulation with Unicorn-Engine (x86-64) ![emu](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/emu.png) ### Comprehensive address space layout display ![vmmap](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/vmmap.png) ### Defining arbitrary custom structures ![sparc-arb-struct](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/sparc-arb-struct.png) ### Highlight custom strings ![highlight-command](https://raw.githubusercontent.com/hugsy/gef/refs/heads/main/docs/assets/images/highlight-command.png) ================================================ FILE: docs/testing.md ================================================ ## Testing GEF This page describes how GEF testing is done. Any new command/functionality must receive adequate testing to be merged. Also PR failing CI (test + linting) won't be merged either. ### Prerequisites All the prerequisite packages are in `requirements.txt` file at the root of the project. So running ```bash python -m pip install -r tests/requirements.txt --user -U ``` is enough to get started. ### Running tests #### Basic `pytest` For testing GEF on the architecture on the host running the tests (most cases), simply run ```bash cd /root/of/gef python3 -m pytest -v -k "not benchmark" tests ``` Note that to ensure compatibility, tests must be executed with the same Python version GDB was compiled against. To obtain this version, you can execute the following command: ```bash gdb -q -nx -ex "pi print('.'.join(map(str, sys.version_info[:2])))" -ex quit ``` At the end, a summary of explanation will be shown, clearly indicating the tests that have failed, for instance: ```text =================================== short test summary info ================================== FAILED tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_large - AssertionError: 'siz... FAILED tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_small - AssertionError: 'siz... FAILED tests/commands/heap.py::HeapCommand::test_cmd_heap_bins_unsorted - AssertionError: '... ======================== 3 failed, 4 passed, 113 deselected in 385.77s (0:06:25)============== ``` You can then use `pytest` directly to help you fix each error specifically. #### Using `pytest` GEF entirely relies on [`pytest`](https://pytest.org) for its testing. Refer to the project documentation for details. Adding new code __requires__ extensive testing. Tests can be added in their own module in the `tests/` folder. For example, if adding a new command to `gef`, a new test module should be created and located in `/root/of/gef/tests/commands/my_new_command.py`. The test class __must__ inherit `tests.base.RemoteGefUnitTestGeneric`. This class allows one to manipulate gdb and gef through rpyc under their respective `self._gdb` and `self._gef` attributes. A skeleton of a test module would look something like: ```python """ `my-command` command test module """ from tests.utils import RemoteGefUnitTestGeneric class MyCommandCommand(RemoteGefUnitTestGeneric): """`my-command` command test module""" def setUp(self) -> None: # By default, tests will be executed against the default.out binary # You can change this behavior in the `setUp` function self._target = debug_target("my-custom-binary-for-tests") return super().setUp() def test_cmd_my_command(self): # some convenience variables root, gdb, gef = self._conn.root, self._gdb, self._gef # You can then interact with any command from gdb or any class/function/variable from gef # For instance: # * tests that `my-command` is expected to fail if the session is not active output = gdb.execute("my-command", to_string=True) assert output == ERROR_INACTIVE_SESSION_MESSAGE # * `my-command` must print "Hello World" message when executed in running context gdb.execute("start") output = gdb.execute("my-command", to_string=True) assert "Hello World" == output ``` You might want to refer to the following documentations: * [`pytest`](https://docs.pytest.org/en/) * [`gdb Python API`](https://sourceware.org/gdb/current/onlinedocs/gdb.html/Python-API.html) * (maybe) [`rpyc`](https://rpyc.readthedocs.io/en/latest/) When running your test, you can summon `pytest` with the `--pdb` flag to enter the python testing environment to help you get more information about the reason of failure. One of the most convenient ways to test `gef` properly is using the `pytest` integration of modern editors such as VisualStudio Code or PyCharm. Without proper tests, new code will not be integrated. Also note that GEF can be remotely controlled using the script `scripts/remote_debug.py` as such: ```text $ gdb -q -nx (gdb) source /path/to/gef/gef.py [...] gef➤ source /path/to/gef/scripts/remote_debug.py gef➤ pi start_rpyc_service(4444) ``` Here RPyC will be started on the local host, and bound to the TCP port 4444. We can now connect using a regular Python REPL: ```text >>> import rpyc >>> c = rpyc.connect("localhost", 4444) >>> gdb = c.root.gdb >>> gef = c.root.gef # We can now fully control the remote GDB >>> gdb.execute("file /bin/ls") >>> gdb.execute("start") >>> print(hex(gef.arch.pc)) 0x55555555aab0 >>> print(hex(gef.arch.sp)) 0x7fffffffdcf0 ``` ### Linting GEF You can use the Makefile at the root of the project to get the proper linting settings. For most cases, the following command is enough: ```bash cd /root/of/gef python3 -m pylint --rcfile .pylintrc ``` Note that to ensure compatibility, tests must be executed with the same Python version GDB was compiled against. To obtain this version, you can execute the following command: ```bash gdb -q -nx -ex "pi print('.'.join(map(str, sys.version_info[:2])))" -ex quit ``` ### Code quality To ensure a consistent code quality and make it easy for both contributors and developers, GEF and GEF-Extras both rely on [`pre-commit`](https://pre-commit.com). The `pre-commit` tool is a framework used to manage and maintain multi-language pre-commit hooks. These hooks are scripts that run automatically before each commit to identify issues in code, such as missing semicolons, trailing whitespace, and debug statements. This helps in ensuring code quality and consistency before submission to code review, and therefore is triggered automatically when submitting a Pull Request to GEF. This check is treated equally with the unit tests and therefore failing to pass will result in your PR not being merged. `pre-commit` is part of the [dev package requirements](https://github.com/hugsy/gef/blob/main/tests/requirements.txt) ```console cd /root/to/gef/repo python -m pip install --user -r tests/requirements.txt ``` But if you need to install separately it can be done using ```console python -m pip install pre-commit ``` And to enable it ```console pre-commit install ``` By default, `pre-commit` will use git hook to run the validation checks after each commit but you can modify this behavior as desired or even run it manually ```console pre-commit run --all-files ``` By default, `pre-commit` will report and attempt to fix the code to match what the coding style defined with GEF. ### Benchmarking GEF Benchmarking relies on `pytest-benchmark` and is experimental for now. You can run all benchmark test cases as such: ```bash cd /root/of/gef pytest -k benchmark ``` which will return (after some time) an execution summary ```text tests/perf/benchmark.py .. [100%] ---------------------------------------- benchmark: 3 tests ----------------------------------- Name (time in ms) Min Max Mean StdDev Median IQR Outliers OPS Rounds Iterations ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- time_baseline 612.2325 (1.0) 630.3416 (1.01) 623.7984 (1.01) 7.2848 (1.64) 626.1485 (1.01) 9.9971 (1.81) 1;0 1.6031 (0.99) 5 1 time_cmd_context 613.8124 (1.00) 625.8964 (1.0) 620.1908 (1.0) 4.4532 (1.0) 619.8831 (1.0) 5.5109 (1.0) 2;0 1.6124 (1.0) 5 1 time_elf_parsing 616.5053 (1.01) 638.6965 (1.02) 628.1588 (1.01) 8.2465 (1.85) 629.0099 (1.01) 10.7885 (1.96) 2;0 1.5920 (0.99) 5 1 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Legend: Outliers: 1 Standard Deviation from Mean; 1.5 IQR (InterQuartile Range) from 1st Quartile and 3rd Quartile. OPS: Operations Per Second, computed as 1 / Mean ============================================== 3 passed, 117 deselected in 14.78s ============================================= ``` ================================================ FILE: gef.py ================================================ ####################################################################################### # GEF - Multi-Architecture GDB Enhanced Features for Exploiters & Reverse-Engineers # # by @_hugsy_ ####################################################################################### # # GEF is a kick-ass set of commands for X86, ARM, MIPS, PowerPC and SPARC to # make GDB cool again for exploit dev. It is aimed to be used mostly by exploit # devs and reversers, to provides additional features to GDB using the Python # API to assist during the process of dynamic analysis. # # GEF fully relies on GDB API and other Linux-specific sources of information # (such as /proc/). As a consequence, some of the features might not work # on custom or hardened systems such as GrSec. # # Since January 2020, GEF solely support GDB compiled with Python3 and was tested on # * x86-32 & x86-64 # * arm v5,v6,v7 # * aarch64 (armv8) # * mips & mips64 # * powerpc & powerpc64 # * sparc & sparc64(v9) # # For GEF with Python2 (only) support was moved to the GEF-Legacy # (https://github.com/hugsy/gef-legacy) # # To start: in gdb, type `source /path/to/gef.py` # ####################################################################################### # # gef is distributed under the MIT License (MIT) # Copyright (c) 2013-2024 crazy rabbidz # # 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. import abc import argparse import ast import atexit import binascii import codecs import collections import configparser import ctypes import enum import functools import hashlib import importlib import importlib.util import inspect import itertools import os import pathlib import platform import re import shutil import socket import string import struct import subprocess import sys import tempfile import time import traceback import warnings from functools import lru_cache from io import StringIO, TextIOWrapper from types import ModuleType from typing import (Any, ByteString, Callable, Generator, Iterable, Iterator, NoReturn, Sequence, Type, TypeVar, cast) from urllib.request import urlopen GEF_DEFAULT_BRANCH = "main" GEF_EXTRAS_DEFAULT_BRANCH = "main" def http_get(url: str) -> bytes | None: """Basic HTTP wrapper for GET request. Return the body of the page if HTTP code is OK, otherwise return None.""" try: http = urlopen(url) return http.read() if http.getcode() == 200 else None except Exception: return None def update_gef(argv: list[str]) -> int: """Obsolete. Use `gef.sh`.""" return -1 try: import gdb # type:ignore except ImportError: if len(sys.argv) >= 2 and sys.argv[1].lower() in ("--update", "--upgrade"): print("[-] `update_gef` is obsolete. Use the `gef.sh` script to update gef from the command line.") print("[-] gef cannot run as standalone") sys.exit(1) GDB_MIN_VERSION: tuple[int, int] = (10, 0) PYTHON_MIN_VERSION: tuple[int, int] = (3, 10) PYTHON_VERSION: tuple[int, int] = sys.version_info[0:2] GDB_VERSION: tuple[int, int] = tuple(map(int, re.search(r"(\d+)[^\d]+(\d+)", gdb.VERSION).groups())) # type:ignore DEFAULT_PAGE_ALIGN_SHIFT = 12 DEFAULT_PAGE_SIZE = 1 << DEFAULT_PAGE_ALIGN_SHIFT GEF_RC = (pathlib.Path(os.getenv("GEF_RC", "")).absolute() if os.getenv("GEF_RC") else pathlib.Path().home() / ".gef.rc") GEF_TEMP_DIR = pathlib.Path(tempfile.gettempdir())/ "gef" GEF_MAX_STRING_LENGTH = 50 LIBC_HEAP_MAIN_ARENA_DEFAULT_NAME = "main_arena" ANSI_SPLIT_RE = r"(\033\[[\d;]*m)" LEFT_ARROW = " ← " RIGHT_ARROW = " → " DOWN_ARROW = "↳" HORIZONTAL_LINE = "─" VERTICAL_LINE = "│" CROSS = "✘ " TICK = "✓ " BP_GLYPH = "●" GEF_PROMPT = "gef➤ " GEF_PROMPT_ON = f"\001\033[1;32m\002{GEF_PROMPT}\001\033[0m\002" GEF_PROMPT_OFF = f"\001\033[1;31m\002{GEF_PROMPT}\001\033[0m\002" __registered_commands__ : set[Type["GenericCommand"]] = set() __registered_functions__ : set[Type["GenericFunction"]] = set() __registered_architectures__ : dict["Elf.Abi | str", Type["Architecture"]] = {} __registered_file_formats__ : set[ Type["FileFormat"] ] = set() GefMemoryMapProvider = Callable[[], Generator["Section", None, None]] def reset_all_caches() -> None: """Free all caches. If an object is cached, it will have a callable attribute `cache_clear` which will be invoked to purge the function cache.""" for mod in dir(sys.modules["__main__"]): obj = getattr(sys.modules["__main__"], mod) if hasattr(obj, "cache_clear"): obj.cache_clear() gef.reset_caches() return def reset() -> None: global gef arch = None if "gef" in locals().keys(): reset_all_caches() arch = gef.arch del gef gef = Gef() gef.setup() if arch: gef.arch = arch return def highlight_text(text: str) -> str: """ Highlight text using `gef.ui.highlight_table` { match -> color } settings. If RegEx is enabled it will create a match group around all items in the `gef.ui.highlight_table` and wrap the specified color in the `gef.ui.highlight_table` around those matches. If RegEx is disabled, split by ANSI codes and 'colorify' each match found within the specified string. """ global gef if not gef.ui.highlight_table: return text if gef.config["highlight.regex"]: for match, color in gef.ui.highlight_table.items(): text = re.sub("(" + match + ")", Color.colorify("\\1", color), text) return text ansiSplit = re.split(ANSI_SPLIT_RE, text) for match, color in gef.ui.highlight_table.items(): for index, val in enumerate(ansiSplit): found = val.find(match) if found > -1: ansiSplit[index] = val.replace(match, Color.colorify(match, color)) break text = "".join(ansiSplit) ansiSplit = re.split(ANSI_SPLIT_RE, text) return "".join(ansiSplit) def gef_print(*args: str, end="\n", sep=" ", **kwargs: Any) -> None: """Wrapper around print(), using string buffering feature.""" parts = [highlight_text(a) for a in args] if buffer_output() and gef.ui.stream_buffer and not is_debug(): gef.ui.stream_buffer.write(sep.join(parts) + end) return print(*parts, sep=sep, end=end, **kwargs) return def bufferize(f: Callable) -> Callable: """Store the content to be printed for a function in memory, and flush it on function exit.""" @functools.wraps(f) def wrapper(*args: Any, **kwargs: Any) -> Any: global gef if gef.ui.stream_buffer: return f(*args, **kwargs) gef.ui.stream_buffer = StringIO() try: rv = f(*args, **kwargs) finally: redirect = gef.config["context.redirect"] if redirect.startswith("/dev/pts/"): if not gef.ui.redirect_fd: # if the FD has never been open, open it fd = open(redirect, "wt") gef.ui.redirect_fd = fd elif redirect != gef.ui.redirect_fd.name: # if the user has changed the redirect setting during runtime, update the state gef.ui.redirect_fd.close() fd = open(redirect, "wt") gef.ui.redirect_fd = fd else: # otherwise, keep using it fd = gef.ui.redirect_fd else: fd = sys.stdout gef.ui.redirect_fd = None if gef.ui.redirect_fd and fd.closed: # if the tty was closed, revert back to stdout fd = sys.stdout gef.ui.redirect_fd = None gef.config["context.redirect"] = "" fd.write(gef.ui.stream_buffer.getvalue()) fd.flush() gef.ui.stream_buffer = None return rv return wrapper class ValidationError(Exception): pass # # Helpers # class ObsoleteException(Exception): pass class AlreadyRegisteredException(Exception): pass def p8(x: int, s: bool = False, e: "Endianness | None" = None) -> bytes: """Pack one byte respecting the current architecture endianness.""" endian = e or gef.arch.endianness return struct.pack(f"{endian}B", x) if not s else struct.pack(f"{endian:s}b", x) def p16(x: int, s: bool = False, e: "Endianness | None" = None) -> bytes: """Pack one word respecting the current architecture endianness.""" endian = e or gef.arch.endianness return struct.pack(f"{endian}H", x) if not s else struct.pack(f"{endian:s}h", x) def p32(x: int, s: bool = False, e: "Endianness | None" = None) -> bytes: """Pack one dword respecting the current architecture endianness.""" endian = e or gef.arch.endianness return struct.pack(f"{endian}I", x) if not s else struct.pack(f"{endian:s}i", x) def p64(x: int, s: bool = False, e: "Endianness | None" = None) -> bytes: """Pack one qword respecting the current architecture endianness.""" endian = e or gef.arch.endianness return struct.pack(f"{endian}Q", x) if not s else struct.pack(f"{endian:s}q", x) def u8(x: bytes, s: bool = False, e: "Endianness | None" = None) -> int: """Unpack one byte respecting the current architecture endianness.""" endian = e or gef.arch.endianness return struct.unpack(f"{endian}B", x)[0] if not s else struct.unpack(f"{endian:s}b", x)[0] def u16(x: bytes, s: bool = False, e: "Endianness | None" = None) -> int: """Unpack one word respecting the current architecture endianness.""" endian = e or gef.arch.endianness return struct.unpack(f"{endian}H", x)[0] if not s else struct.unpack(f"{endian:s}h", x)[0] def u32(x: bytes, s: bool = False, e: "Endianness | None" = None) -> int: """Unpack one dword respecting the current architecture endianness.""" endian = e or gef.arch.endianness return struct.unpack(f"{endian}I", x)[0] if not s else struct.unpack(f"{endian:s}i", x)[0] def u64(x: bytes, s: bool = False, e: "Endianness | None" = None) -> int: """Unpack one qword respecting the current architecture endianness.""" endian = e or gef.arch.endianness return struct.unpack(f"{endian}Q", x)[0] if not s else struct.unpack(f"{endian:s}q", x)[0] def is_ascii_string(address: int) -> bool: """Helper function to determine if the buffer pointed by `address` is an ASCII string (in GDB)""" try: return gef.memory.read_ascii_string(address) is not None except Exception: return False def is_alive() -> bool: """Check if GDB is running.""" try: return gdb.selected_inferior().pid > 0 except Exception: return False def calling_function() -> str | None: """Return the name of the calling function""" try: stack_info = traceback.extract_stack()[-3] return stack_info.name except Exception as e: dbg(f"traceback failed with {str(e)}") return None # # Decorators # def only_if_gdb_running(f: Callable) -> Callable: """Decorator wrapper to check if GDB is running.""" @functools.wraps(f) def wrapper(*args: Any, **kwargs: Any) -> Any: if is_alive(): return f(*args, **kwargs) else: warn("No debugging session active") return wrapper def only_if_gdb_target_local(f: Callable) -> Callable: """Decorator wrapper to check if GDB is running locally (target not remote).""" @functools.wraps(f) def wrapper(*args: Any, **kwargs: Any) -> Any: if not is_remote_debug(): return f(*args, **kwargs) else: warn("This command cannot work for remote sessions.") return wrapper def deprecated(solution: str = "") -> Callable: """Decorator to add a warning when a command is obsolete and will be removed.""" def decorator(f: Callable) -> Callable: @functools.wraps(f) def wrapper(*args: Any, **kwargs: Any) -> Any: caller = inspect.stack()[1] caller_file = pathlib.Path(caller.filename) caller_loc = caller.lineno msg = f"{caller_file.name}:L{caller_loc} '{f.__name__}' is deprecated and will be removed in a feature release. " if not gef: print(msg) elif gef.config["gef.show_deprecation_warnings"] is True: if solution: msg += solution warn(msg) return f(*args, **kwargs) if not wrapper.__doc__: wrapper.__doc__ = "" wrapper.__doc__ += f"\r\n`{f.__name__}` is **DEPRECATED** and will be removed in the future.\r\n{solution}" return wrapper return decorator def experimental_feature(f: Callable) -> Callable: """Decorator to add a warning when a feature is experimental.""" @functools.wraps(f) def wrapper(*args: Any, **kwargs: Any) -> Any: warn("This feature is under development, expect bugs and unstability...") return f(*args, **kwargs) return wrapper def only_if_events_supported(event_type: str) -> Callable: """Checks if GDB supports events without crashing.""" def wrap(f: Callable) -> Callable: def wrapped_f(*args: Any, **kwargs: Any) -> Any: if getattr(gdb, "events") and getattr(gdb.events, event_type): return f(*args, **kwargs) warn("GDB events cannot be set") return wrapped_f return wrap class classproperty(property): """Make the attribute a `classproperty`.""" def __get__(self, cls, owner): assert self.fget return classmethod(self.fget).__get__(None, owner)() def FakeExit(*args: Any, **kwargs: Any) -> NoReturn: raise RuntimeWarning sys.exit = FakeExit def parse_arguments(required_arguments: dict[str | tuple[str, str], Any], optional_arguments: dict[str | tuple[str, str], Any]) -> Callable: """Argument parsing decorator.""" def int_wrapper(x: str) -> int: return int(x, 0) def decorator(f: Callable) -> Callable | None: def wrapper(*args: Any, **kwargs: Any) -> Callable: parser = argparse.ArgumentParser(prog=args[0]._cmdline_, add_help=True) for argname in required_arguments: argvalue = required_arguments[argname] argtype = type(argvalue) if argtype is int: argtype = int_wrapper argname_is_list = not isinstance(argname, str) assert not argname_is_list and isinstance(argname, str) if not argname_is_list and argname.startswith("-"): # optional args if argtype is bool: parser.add_argument(argname, action="store_true" if argvalue else "store_false") else: parser.add_argument(argname, type=argtype, required=True, default=argvalue) else: if argtype in (list, tuple): nargs = "*" argtype = type(argvalue[0]) else: nargs = "?" # positional args parser.add_argument(argname, type=argtype, default=argvalue, nargs=nargs) for argname in optional_arguments: if isinstance(argname, str) and not argname.startswith("-"): # refuse positional arguments continue argvalue = optional_arguments[argname] argtype = type(argvalue) if isinstance(argname, str): argname = [argname,] if argtype is int: argtype = int_wrapper elif argtype is bool: parser.add_argument(*argname, action="store_false" if argvalue else "store_true") continue elif argtype in (list, tuple): parser.add_argument(*argname, type=type(argvalue[0]), default=[], action="append") continue parser.add_argument(*argname, type=argtype, default=argvalue) parsed_args = parser.parse_args(*(args[1:])) kwargs["arguments"] = parsed_args return f(*args, **kwargs) return wrapper return decorator class Color: """Used to colorify terminal output.""" ### Special chars: # \001 -> Tell the readline library that we start a special sequence # which won't be displayed (takes no column in the output) # \002 -> Tell the readline library that we end a special sequence # started with \001 # \033 -> Start an ANSI escape code for displaying colors colors = { "normal" : "\001\033[0m\002", "gray" : "\001\033[1;38;5;240m\002", "light_gray" : "\001\033[0;37m\002", "red" : "\001\033[31m\002", "green" : "\001\033[32m\002", "yellow" : "\001\033[33m\002", "blue" : "\001\033[34m\002", "pink" : "\001\033[35m\002", "cyan" : "\001\033[36m\002", "bold" : "\001\033[1m\002", "underline" : "\001\033[4m\002", "underline_off" : "\001\033[24m\002", "highlight" : "\001\033[3m\002", "highlight_off" : "\001\033[23m\002", "blink" : "\001\033[5m\002", "blink_off" : "\001\033[25m\002", } @staticmethod def redify(msg: str) -> str: return Color.colorify(msg, "red") @staticmethod def greenify(msg: str) -> str: return Color.colorify(msg, "green") @staticmethod def blueify(msg: str) -> str: return Color.colorify(msg, "blue") @staticmethod def yellowify(msg: str) -> str: return Color.colorify(msg, "yellow") @staticmethod def grayify(msg: str) -> str: return Color.colorify(msg, "gray") @staticmethod def light_grayify(msg: str) -> str: return Color.colorify(msg, "light_gray") @staticmethod def pinkify(msg: str) -> str: return Color.colorify(msg, "pink") @staticmethod def cyanify(msg: str) -> str: return Color.colorify(msg, "cyan") @staticmethod def boldify(msg: str) -> str: return Color.colorify(msg, "bold") @staticmethod def underlinify(msg: str) -> str: return Color.colorify(msg, "underline") @staticmethod def highlightify(msg: str) -> str: return Color.colorify(msg, "highlight") @staticmethod def blinkify(msg: str) -> str: return Color.colorify(msg, "blink") @staticmethod def colorify(text: str, attrs: str) -> str: """Color text according to the given attributes.""" if gef.config["gef.disable_color"] is True: return text colors = Color.colors msg = [colors[attr] for attr in attrs.split() if attr in colors] msg.append(str(text)) if colors["highlight"] in msg: msg.append(colors["highlight_off"]) if colors["underline"] in msg: msg.append(colors["underline_off"]) if colors["blink"] in msg: msg.append(colors["blink_off"]) msg.append(colors["normal"]) return "".join(msg) class Address: """GEF representation of memory addresses.""" def __init__(self, **kwargs: Any) -> None: self.value: int = kwargs.get("value", 0) self.section: "Section" = kwargs.get("section", None) self.info: "Zone" = kwargs.get("info", None) return def __str__(self) -> str: value = format_address(self.value) code_color = gef.config["theme.address_code"] stack_color = gef.config["theme.address_stack"] heap_color = gef.config["theme.address_heap"] if self.is_in_text_segment(): return Color.colorify(value, code_color) if self.is_in_heap_segment(): return Color.colorify(value, heap_color) if self.is_in_stack_segment(): return Color.colorify(value, stack_color) return value def __int__(self) -> int: return self.value def is_in_text_segment(self) -> bool: return (hasattr(self.info, "name") and ".text" in self.info.name) or \ (hasattr(self.section, "path") and get_filepath() == self.section.path and self.section.is_executable()) def is_in_stack_segment(self) -> bool: return hasattr(self.section, "path") and "[stack]" == self.section.path def is_in_heap_segment(self) -> bool: return hasattr(self.section, "path") and "[heap]" == self.section.path def dereference(self) -> int | None: addr = align_address(int(self.value)) derefed = dereference(addr) return None if derefed is None else int(derefed) @property def valid(self) -> bool: return any(map(lambda x: x.page_start <= self.value < x.page_end, gef.memory.maps)) class Permission(enum.Flag): """GEF representation of Linux permission.""" NONE = 0 EXECUTE = 1 WRITE = 2 READ = 4 ALL = 7 def __str__(self) -> str: perm_str = "" perm_str += "r" if self & Permission.READ else "-" perm_str += "w" if self & Permission.WRITE else "-" perm_str += "x" if self & Permission.EXECUTE else "-" return perm_str @classmethod def from_info_sections(cls, *args: str) -> "Permission": perm = cls(0) for arg in args: if "READONLY" in arg: perm |= Permission.READ if "DATA" in arg: perm |= Permission.WRITE if "CODE" in arg: perm |= Permission.EXECUTE return perm @classmethod def from_process_maps(cls, perm_str: str) -> "Permission": perm = cls(0) if perm_str[0] == "r": perm |= Permission.READ if perm_str[1] == "w": perm |= Permission.WRITE if perm_str[2] == "x": perm |= Permission.EXECUTE return perm @classmethod def from_monitor_info_mem(cls, perm_str: str) -> "Permission": perm = cls(0) # perm_str[0] shows if this is a user page, which # we don't track if perm_str[1] == "r": perm |= Permission.READ if perm_str[2] == "w": perm |= Permission.WRITE return perm @classmethod def from_info_mem(cls, perm_str: str) -> "Permission": perm = cls(0) if "r" in perm_str: perm |= Permission.READ if "w" in perm_str: perm |= Permission.WRITE if "x" in perm_str: perm |= Permission.EXECUTE return perm class Section: """GEF representation of process memory sections.""" def __init__(self, **kwargs: Any) -> None: self.page_start: int = kwargs.get("page_start", 0) self.page_end: int = kwargs.get("page_end", 0) self.offset: int = kwargs.get("offset", 0) self.permission: Permission = kwargs.get("permission", Permission(0)) self.inode: int = kwargs.get("inode", 0) self.path: str = kwargs.get("path", "") return def is_readable(self) -> bool: return bool(self.permission & Permission.READ) def is_writable(self) -> bool: return bool(self.permission & Permission.WRITE) def is_executable(self) -> bool: return bool(self.permission & Permission.EXECUTE) @property def size(self) -> int: if self.page_end is None or self.page_start is None: raise AttributeError return self.page_end - self.page_start def _search_for_realpath_without_versions(self, path: pathlib.Path) -> str | None: """Given a path, search for a file that exists without numeric suffixes.""" # Match the path string against a regex that will remove a suffix # consisting of a dot followed by numbers. candidate = re.match(r"^(.*)\.(\d*)$", str(path)) while candidate: candidate = candidate.group(1) # If the prefix from the regex match is a file, return that path. if pathlib.Path(candidate).is_file(): return candidate # Otherwise, try to match again. candidate = re.match(r"^(.*)\.(\d*)$", candidate) return None def _search_for_realpath(self) -> str | None: """This function is a workaround for gdb bug #23764 path might be wrong for remote sessions, so try a simple search for files that aren't found at the path indicated, which should be canonical. """ assert gef.session.remote remote_path = pathlib.Path(self.path) # First, try the canonical path in the remote session root. candidate1 = gef.session.remote.root / remote_path.relative_to(remote_path.anchor) if candidate1.is_file(): return str(candidate1) # Also try that path without version suffixes. candidate = self._search_for_realpath_without_versions(candidate1) if candidate: return candidate # On some systems, /lib(64) might be a symlink to /usr/lib(64), so try removing # the /usr prefix. if self.path.startswith("/usr"): candidate = gef.session.remote.root / remote_path.relative_to("/usr") if candidate.is_file(): return str(candidate) # Also try that path without version suffixes. candidate = self._search_for_realpath_without_versions(candidate) if candidate: return candidate # Base case, return the original realpath return str(candidate1) @property def realpath(self) -> str: # when in a `gef-remote` session, realpath returns the path to the binary on the local disk, not remote if gef.session.remote is None: return self.path default = self._search_for_realpath() if default: return default raise FileNotFoundError def __str__(self) -> str: return (f"Section(start={self.page_start:#x}, end={self.page_end:#x}, " f"perm={self.permission!s})") def __repr__(self) -> str: return str(self) def __eq__(self, other: "Section") -> bool: return other and \ self.page_start == other.page_start and \ self.size == other.size and \ self.permission == other.permission and \ self.path == other.path def overlaps(self, other: "Section") -> bool: return max(self.page_start, other.page_start) <= min(self.page_end, other.page_end) def contains(self, addr: int) -> bool: return addr in range(self.page_start, self.page_end) Zone = collections.namedtuple("Zone", ["name", "zone_start", "zone_end", "filename"]) class Endianness(enum.Enum): LITTLE_ENDIAN = 1 BIG_ENDIAN = 2 def __str__(self) -> str: return "<" if self == Endianness.LITTLE_ENDIAN else ">" def __repr__(self) -> str: return self.name def __int__(self) -> int: return self.value class FileFormatSection: misc: Any class FileFormat: name: str path: pathlib.Path entry_point: int checksec: dict[str, bool] sections: list[FileFormatSection] def __init__(self, path: str | pathlib.Path) -> None: raise NotImplementedError def __init_subclass__(cls: Type["FileFormat"], **kwargs): global __registered_file_formats__ super().__init_subclass__(**kwargs) required_attributes = ("name", "entry_point", "is_valid", "checksec",) for attr in required_attributes: if not hasattr(cls, attr): raise NotImplementedError(f"File format '{cls.__name__}' is invalid: missing attribute '{attr}'") __registered_file_formats__.add(cls) return @classmethod def is_valid(cls, _: pathlib.Path) -> bool: raise NotImplementedError def __str__(self) -> str: return f"{self.name}('{self.path.absolute()}', entry @ {self.entry_point:#x})" class Elf(FileFormat): """Basic ELF parsing. Ref: - http://www.skyfree.org/linux/references/ELF_Format.pdf - https://refspecs.linuxfoundation.org/elf/elfspec_ppc.pdf - https://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html """ class Class(enum.Enum): ELF_32_BITS = 0x01 ELF_64_BITS = 0x02 ELF_MAGIC = 0x7f454c46 class Abi(enum.Enum): X86_64 = 0x3e X86_32 = 0x03 ARM = 0x28 MIPS = 0x08 POWERPC = 0x14 POWERPC64 = 0x15 SPARC = 0x02 SPARC64 = 0x2b AARCH64 = 0xb7 RISCV = 0xf3 IA64 = 0x32 M68K = 0x04 class Type(enum.Enum): ET_RELOC = 1 ET_EXEC = 2 ET_DYN = 3 ET_CORE = 4 class OsAbi(enum.Enum): SYSTEMV = 0x00 HPUX = 0x01 NETBSD = 0x02 LINUX = 0x03 SOLARIS = 0x06 AIX = 0x07 IRIX = 0x08 FREEBSD = 0x09 OPENBSD = 0x0C e_magic: int = ELF_MAGIC e_class: "Elf.Class" = Class.ELF_32_BITS e_endianness: Endianness = Endianness.LITTLE_ENDIAN e_eiversion: int e_osabi: "Elf.OsAbi" e_abiversion: int e_pad: bytes e_type: "Elf.Type" = Type.ET_EXEC e_machine: Abi = Abi.X86_32 e_version: int e_entry: int e_phoff: int e_shoff: int e_flags: int e_ehsize: int e_phentsize: int e_phnum: int e_shentsize: int e_shnum: int e_shstrndx: int path: pathlib.Path phdrs : list["Phdr"] shdrs : list["Shdr"] name: str = "ELF" __checksec : dict[str, bool] def __init__(self, path: str | pathlib.Path) -> None: """Instantiate an ELF object. A valid ELF must be provided, or an exception will be thrown.""" if isinstance(path, str): self.path = pathlib.Path(path).expanduser() elif isinstance(path, pathlib.Path): self.path = path else: raise TypeError if not self.path.exists(): raise FileNotFoundError(f"'{self.path}' not found/readable, most gef features will not work") self.__checksec = {} with self.path.open("rb") as self.fd: # off 0x0 self.e_magic, e_class, e_endianness, self.e_eiversion = self.read_and_unpack(">IBBB") if self.e_magic != Elf.ELF_MAGIC: # The ELF is corrupted, GDB won't handle it, no point going further raise RuntimeError("Not a valid ELF file (magic)") self.e_class, self.e_endianness = Elf.Class(e_class), Endianness(e_endianness) if self.e_endianness != gef.arch.endianness: warn("Unexpected endianness for architecture") endian = self.e_endianness # off 0x7 e_osabi, self.e_abiversion = self.read_and_unpack(f"{endian}BB") self.e_osabi = Elf.OsAbi(e_osabi) # off 0x9 self.e_pad = self.read(7) # off 0x10 e_type, e_machine, self.e_version = self.read_and_unpack(f"{endian}HHI") self.e_type, self.e_machine = Elf.Type(e_type), Elf.Abi(e_machine) # off 0x18 if self.e_class == Elf.Class.ELF_64_BITS: self.e_entry, self.e_phoff, self.e_shoff = self.read_and_unpack(f"{endian}QQQ") else: self.e_entry, self.e_phoff, self.e_shoff = self.read_and_unpack(f"{endian}III") self.e_flags, self.e_ehsize, self.e_phentsize, self.e_phnum = self.read_and_unpack(f"{endian}IHHH") self.e_shentsize, self.e_shnum, self.e_shstrndx = self.read_and_unpack(f"{endian}HHH") self.phdrs = [] for i in range(self.e_phnum): self.phdrs.append(Phdr(self, self.e_phoff + self.e_phentsize * i)) self.shdrs = [] for i in range(self.e_shnum): self.shdrs.append(Shdr(self, self.e_shoff + self.e_shentsize * i)) return def read(self, size: int) -> bytes: return self.fd.read(size) def read_and_unpack(self, fmt: str) -> tuple[Any, ...]: size = struct.calcsize(fmt) data = self.fd.read(size) return struct.unpack(fmt, data) def seek(self, off: int) -> None: self.fd.seek(off, 0) def __str__(self) -> str: return f"ELF('{self.path.absolute()}', {self.e_class.name}, {self.e_machine.name})" def __repr__(self) -> str: return f"ELF('{self.path.absolute()}', {self.e_class.name}, {self.e_machine.name})" @property def entry_point(self) -> int: return self.e_entry @classmethod def is_valid(cls, path: pathlib.Path) -> bool: return u32(path.open("rb").read(4), e = Endianness.BIG_ENDIAN) == Elf.ELF_MAGIC @property def checksec(self) -> dict[str, bool]: """Check the security property of the ELF binary. The following properties are: - Canary - NX - PIE - Fortify - Partial/Full RelRO. Return a dict() with the different keys mentioned above, and the boolean associated whether the protection was found.""" if not self.__checksec: def __check_security_property(opt: str, filename: str, pattern: str) -> bool: cmd = [readelf,] cmd += opt.split() cmd += [filename,] lines = gef_execute_external(cmd, as_list=True) for line in lines: if re.search(pattern, line): return True return False abspath = str(self.path.absolute()) readelf = gef.session.constants["readelf"] self.__checksec["Canary"] = __check_security_property("-rs", abspath, r"__stack_chk_fail") is True has_gnu_stack = __check_security_property("-W -l", abspath, r"GNU_STACK") is True if has_gnu_stack: self.__checksec["NX"] = __check_security_property("-W -l", abspath, r"GNU_STACK.*RWE") is False else: self.__checksec["NX"] = False self.__checksec["PIE"] = __check_security_property("-h", abspath, r":.*EXEC") is False self.__checksec["Fortify"] = __check_security_property("-s", abspath, r"_chk@GLIBC") is True self.__checksec["Partial RelRO"] = __check_security_property("-l", abspath, r"GNU_RELRO") is True self.__checksec["Full RelRO"] = self.__checksec["Partial RelRO"] and __check_security_property("-d", abspath, r"BIND_NOW") is True return self.__checksec @classproperty @deprecated("use `Elf.Abi.X86_64`") def X86_64(cls) -> int: return Elf.Abi.X86_64.value # pylint: disable=no-self-argument @classproperty @deprecated("use `Elf.Abi.X86_32`") def X86_32(cls) -> int : return Elf.Abi.X86_32.value # pylint: disable=no-self-argument @classproperty @deprecated("use `Elf.Abi.ARM`") def ARM(cls) -> int : return Elf.Abi.ARM.value # pylint: disable=no-self-argument @classproperty @deprecated("use `Elf.Abi.MIPS`") def MIPS(cls) -> int : return Elf.Abi.MIPS.value # pylint: disable=no-self-argument @classproperty @deprecated("use `Elf.Abi.POWERPC`") def POWERPC(cls) -> int : return Elf.Abi.POWERPC.value # pylint: disable=no-self-argument @classproperty @deprecated("use `Elf.Abi.POWERPC64`") def POWERPC64(cls) -> int : return Elf.Abi.POWERPC64.value # pylint: disable=no-self-argument @classproperty @deprecated("use `Elf.Abi.SPARC`") def SPARC(cls) -> int : return Elf.Abi.SPARC.value # pylint: disable=no-self-argument @classproperty @deprecated("use `Elf.Abi.SPARC64`") def SPARC64(cls) -> int : return Elf.Abi.SPARC64.value # pylint: disable=no-self-argument @classproperty @deprecated("use `Elf.Abi.AARCH64`") def AARCH64(cls) -> int : return Elf.Abi.AARCH64.value # pylint: disable=no-self-argument @classproperty @deprecated("use `Elf.Abi.RISCV`") def RISCV(cls) -> int : return Elf.Abi.RISCV.value # pylint: disable=no-self-argument class Phdr: class Type(enum.IntEnum): PT_NULL = 0 PT_LOAD = 1 PT_DYNAMIC = 2 PT_INTERP = 3 PT_NOTE = 4 PT_SHLIB = 5 PT_PHDR = 6 PT_TLS = 7 PT_LOOS = 0x60000000 PT_GNU_EH_FRAME = 0x6474e550 PT_GNU_STACK = 0x6474e551 PT_GNU_RELRO = 0x6474e552 PT_GNU_PROPERTY = 0x6474e553 PT_LOSUNW = 0x6ffffffa PT_SUNWBSS = 0x6ffffffa PT_SUNWSTACK = 0x6ffffffb PT_HISUNW = PT_HIOS = 0x6fffffff PT_LOPROC = 0x70000000 PT_ARM_EIDX = 0x70000001 PT_MIPS_ABIFLAGS= 0x70000003 PT_HIPROC = 0x7fffffff UNKNOWN_PHDR = 0xffffffff @classmethod def _missing_(cls, _:int) -> "Phdr.Type": return cls.UNKNOWN_PHDR class Flags(enum.IntFlag): PF_X = 1 PF_W = 2 PF_R = 4 p_type: "Phdr.Type" p_flags: "Phdr.Flags" p_offset: int p_vaddr: int p_paddr: int p_filesz: int p_memsz: int p_align: int def __init__(self, elf: Elf, off: int) -> None: if not elf: return elf.seek(off) self.offset = off endian = elf.e_endianness if elf.e_class == Elf.Class.ELF_64_BITS: p_type, p_flags, self.p_offset = elf.read_and_unpack(f"{endian}IIQ") self.p_vaddr, self.p_paddr = elf.read_and_unpack(f"{endian}QQ") self.p_filesz, self.p_memsz, self.p_align = elf.read_and_unpack(f"{endian}QQQ") else: p_type, self.p_offset = elf.read_and_unpack(f"{endian}II") self.p_vaddr, self.p_paddr = elf.read_and_unpack(f"{endian}II") self.p_filesz, self.p_memsz, p_flags, self.p_align = elf.read_and_unpack(f"{endian}IIII") self.p_type, self.p_flags = Phdr.Type(p_type), Phdr.Flags(p_flags) return def __str__(self) -> str: return (f"Phdr(offset={self.offset}, type={self.p_type.name}, flags={self.p_flags.name}, " f"vaddr={self.p_vaddr}, paddr={self.p_paddr}, filesz={self.p_filesz}, " f"memsz={self.p_memsz}, align={self.p_align})") class Shdr: class Type(enum.IntEnum): SHT_NULL = 0 SHT_PROGBITS = 1 SHT_SYMTAB = 2 SHT_STRTAB = 3 SHT_RELA = 4 SHT_HASH = 5 SHT_DYNAMIC = 6 SHT_NOTE = 7 SHT_NOBITS = 8 SHT_REL = 9 SHT_SHLIB = 10 SHT_DYNSYM = 11 SHT_NUM = 12 SHT_INIT_ARRAY = 14 SHT_FINI_ARRAY = 15 SHT_PREINIT_ARRAY = 16 SHT_GROUP = 17 SHT_SYMTAB_SHNDX = 18 SHT_LOOS = 0x60000000 SHT_GNU_ATTRIBUTES = 0x6ffffff5 SHT_GNU_HASH = 0x6ffffff6 SHT_GNU_LIBLIST = 0x6ffffff7 SHT_CHECKSUM = 0x6ffffff8 SHT_LOSUNW = 0x6ffffffa SHT_SUNW_move = 0x6ffffffa SHT_SUNW_COMDAT = 0x6ffffffb SHT_SUNW_syminfo = 0x6ffffffc SHT_GNU_verdef = 0x6ffffffd SHT_GNU_verneed = 0x6ffffffe SHT_GNU_versym = 0x6fffffff SHT_LOPROC = 0x70000000 SHT_ARM_EXIDX = 0x70000001 SHT_X86_64_UNWIND = 0x70000001 SHT_ARM_ATTRIBUTES = 0x70000003 SHT_MIPS_OPTIONS = 0x7000000d DT_MIPS_INTERFACE = 0x7000002a SHT_HIPROC = 0x7fffffff SHT_LOUSER = 0x80000000 SHT_HIUSER = 0x8fffffff UNKNOWN_SHDR = 0xffffffff @classmethod def _missing_(cls, _:int) -> "Shdr.Type": return cls.UNKNOWN_SHDR class Flags(enum.IntFlag): WRITE = 1 ALLOC = 2 EXECINSTR = 4 MERGE = 0x10 STRINGS = 0x20 INFO_LINK = 0x40 LINK_ORDER = 0x80 OS_NONCONFORMING = 0x100 GROUP = 0x200 TLS = 0x400 COMPRESSED = 0x800 RELA_LIVEPATCH = 0x00100000 RO_AFTER_INIT = 0x00200000 ORDERED = 0x40000000 EXCLUDE = 0x80000000 UNKNOWN_FLAG = 0xffffffff @classmethod def _missing_(cls, _:int): return cls.UNKNOWN_FLAG sh_name: int sh_type: "Shdr.Type" sh_flags: "Shdr.Flags" sh_addr: int sh_offset: int sh_size: int sh_link: int sh_info: int sh_addralign: int sh_entsize: int name: str def __init__(self, elf: Elf | None, off: int) -> None: if elf is None: return elf.seek(off) endian = elf.e_endianness if elf.e_class == Elf.Class.ELF_64_BITS: self.sh_name, sh_type, sh_flags = elf.read_and_unpack(f"{endian}IIQ") self.sh_addr, self.sh_offset = elf.read_and_unpack(f"{endian}QQ") self.sh_size, self.sh_link, self.sh_info = elf.read_and_unpack(f"{endian}QII") self.sh_addralign, self.sh_entsize = elf.read_and_unpack(f"{endian}QQ") else: self.sh_name, sh_type, sh_flags = elf.read_and_unpack(f"{endian}III") self.sh_addr, self.sh_offset = elf.read_and_unpack(f"{endian}II") self.sh_size, self.sh_link, self.sh_info = elf.read_and_unpack(f"{endian}III") self.sh_addralign, self.sh_entsize = elf.read_and_unpack(f"{endian}II") self.sh_type = Shdr.Type(sh_type) self.sh_flags = Shdr.Flags(sh_flags) stroff = elf.e_shoff + elf.e_shentsize * elf.e_shstrndx if elf.e_class == Elf.Class.ELF_64_BITS: elf.seek(stroff + 16 + 8) offset = u64(elf.read(8)) else: elf.seek(stroff + 12 + 4) offset = u32(elf.read(4)) elf.seek(offset + self.sh_name) self.name = "" while True: c = u8(elf.read(1)) if c == 0: break self.name += chr(c) return def __str__(self) -> str: return (f"Shdr(name={self.name}, type={self.sh_type.name}, flags={self.sh_flags.name}, " f"addr={self.sh_addr:#x}, offset={self.sh_offset}, size={self.sh_size}, link={self.sh_link}, " f"info={self.sh_info}, addralign={self.sh_addralign}, entsize={self.sh_entsize})") class Instruction: """GEF representation of a CPU instruction.""" def __init__(self, address: int, location: str, mnemo: str, operands: list[str], opcodes: bytes) -> None: self.address, self.location, self.mnemonic, self.operands, self.opcodes = \ address, location, mnemo, operands, opcodes return # Allow formatting an instruction with {:o} to show opcodes. # The number of bytes to display can be configured, e.g. {:4o} to only show 4 bytes of the opcodes def __format__(self, format_spec: str) -> str: if len(format_spec) == 0 or format_spec[-1] != "o": return str(self) if format_spec == "o": opcodes_len = len(self.opcodes) else: opcodes_len = int(format_spec[:-1]) opcodes_text = "".join(f"{b:02x}" for b in self.opcodes[:opcodes_len]) if opcodes_len < len(self.opcodes): opcodes_text += "..." return (f"{self.address:#10x} {opcodes_text:{opcodes_len * 2 + 3:d}s} {self.location:16} " f"{self.mnemonic:6} {', '.join(self.operands)}") def __str__(self) -> str: return f"{self.address:#10x} {self.location:16} {self.mnemonic:6} {', '.join(self.operands)}" def is_valid(self) -> bool: return "(bad)" not in self.mnemonic def size(self) -> int: return len(self.opcodes) def next(self) -> "Instruction": address = self.address + self.size() return gef_get_instruction_at(address) @deprecated("Use GefHeapManager.find_main_arena_addr()") def search_for_main_arena() -> int: return GefHeapManager.find_main_arena_addr() class GlibcHeapInfo: """Glibc heap_info struct""" @staticmethod def heap_info_t() -> Type[ctypes.Structure]: assert gef.libc.version class heap_info_cls(ctypes.Structure): pass pointer = ctypes.c_uint64 if gef.arch.ptrsize == 8 else ctypes.c_uint32 pad_size = -5 * gef.arch.ptrsize & (gef.heap.malloc_alignment - 1) fields = [ ("ar_ptr", ctypes.POINTER(GlibcArena.malloc_state_t())), ("prev", ctypes.POINTER(heap_info_cls)), ("size", pointer) ] if gef.libc.version >= (2, 5): fields += [ ("mprotect_size", pointer) ] pad_size = -6 * gef.arch.ptrsize & (gef.heap.malloc_alignment - 1) if gef.libc.version >= (2, 34): fields += [ ("pagesize", pointer) ] pad_size = -3 * gef.arch.ptrsize & (gef.heap.malloc_alignment - 1) fields += [ ("pad", ctypes.c_uint8*pad_size) ] heap_info_cls._fields_ = fields return heap_info_cls def __init__(self, addr: str | int) -> None: self.__address : int = parse_address(f"&{addr}") if isinstance(addr, str) else addr self.reset() return def reset(self): self._sizeof = ctypes.sizeof(GlibcHeapInfo.heap_info_t()) self._data = gef.memory.read(self.__address, ctypes.sizeof(GlibcHeapInfo.heap_info_t())) self._heap_info = GlibcHeapInfo.heap_info_t().from_buffer_copy(self._data) return def __getattr__(self, item: Any) -> Any: if item in dir(self._heap_info): return ctypes.cast(getattr(self._heap_info, item), ctypes.c_void_p).value return getattr(self, item) def __abs__(self) -> int: return self.__address def __int__(self) -> int: return self.__address @property def address(self) -> int: return self.__address @property def sizeof(self) -> int: return self._sizeof @property def addr(self) -> int: return int(self) @property def heap_start(self) -> int: # check special case: first heap of non-main-arena if self.ar_ptr - self.address < 0x60: # the first heap of a non-main-arena starts with a `heap_info` # struct, which should fit easily into 0x60 bytes throughout # all architectures and glibc versions. If this check succeeds # then we are currently looking at such a "first heap" arena = GlibcArena(f"*{self.ar_ptr:#x}") heap_addr = arena.heap_addr() if heap_addr: return heap_addr else: err(f"Cannot find heap address for arena {self.ar_ptr:#x}") return 0 return self.address + self.sizeof @property def heap_end(self) -> int: return self.address + self.size class GlibcArena: """Glibc arena class""" NFASTBINS = 10 NBINS = 128 NSMALLBINS = 64 BINMAPSHIFT = 5 BITSPERMAP = 1 << BINMAPSHIFT BINMAPSIZE = NBINS // BITSPERMAP @staticmethod def malloc_state_t() -> Type[ctypes.Structure]: pointer = ctypes.c_uint64 if gef and gef.arch.ptrsize == 8 else ctypes.c_uint32 fields = [ ("mutex", ctypes.c_uint32), ("flags", ctypes.c_uint32), ] if gef and gef.libc.version and gef.libc.version >= (2, 27): # https://elixir.bootlin.com/glibc/glibc-2.27/source/malloc/malloc.c#L1684 fields += [ ("have_fastchunks", ctypes.c_uint32), ("UNUSED_c", ctypes.c_uint32), # padding to align to 0x10 ] fields += [ ("fastbinsY", GlibcArena.NFASTBINS * pointer), ("top", pointer), ("last_remainder", pointer), ("bins", (GlibcArena.NBINS * 2 - 2) * pointer), ("binmap", GlibcArena.BINMAPSIZE * ctypes.c_uint32), ("next", pointer), ("next_free", pointer) ] if gef and gef.libc.version and gef.libc.version >= (2, 23): # https://elixir.bootlin.com/glibc/glibc-2.23/source/malloc/malloc.c#L1719 fields += [ ("attached_threads", pointer) ] fields += [ ("system_mem", pointer), ("max_system_mem", pointer), ] class malloc_state_cls(ctypes.Structure): _fields_ = fields return malloc_state_cls def __init__(self, addr: str) -> None: try: self.__address : int = parse_address(f"&{addr}") except gdb.error: self.__address : int = GefHeapManager.find_main_arena_addr() # if `find_main_arena_addr` throws `gdb.error` on symbol lookup: # it means the session is not started, so just propagate the exception self.reset() return def reset(self): self._sizeof = ctypes.sizeof(GlibcArena.malloc_state_t()) self._data = gef.memory.read(self.__address, ctypes.sizeof(GlibcArena.malloc_state_t())) self.__arena = GlibcArena.malloc_state_t().from_buffer_copy(self._data) return def __abs__(self) -> int: return self.__address def __int__(self) -> int: return self.__address def __iter__(self) -> Generator["GlibcArena", None, None]: assert gef.heap.main_arena main_arena = int(gef.heap.main_arena) current_arena = self yield current_arena while True: if current_arena.next == 0 or current_arena.next == main_arena: break current_arena = GlibcArena(f"*{current_arena.next:#x} ") yield current_arena return def __eq__(self, other: "GlibcArena") -> bool: return self.__address == int(other) def __str__(self) -> str: properties = f"base={self.__address:#x}, top={self.top:#x}, " \ f"last_remainder={self.last_remainder:#x}, next={self.next:#x}, " \ f"mem={self.system_mem}, mempeak={self.max_system_mem}" return (f"{Color.colorify('Arena', 'blue bold underline')}({properties})") def __repr__(self) -> str: return f"GlibcArena(address={self.__address:#x}, size={self._sizeof})" @property def address(self) -> int: return self.__address @property def sizeof(self) -> int: return self._sizeof @property def addr(self) -> int: return int(self) @property def top(self) -> int: return self.__arena.top @property def last_remainder(self) -> int: return self.__arena.last_remainder @property def fastbinsY(self) -> ctypes.Array: return self.__arena.fastbinsY @property def bins(self) -> ctypes.Array: return self.__arena.bins @property def binmap(self) -> ctypes.Array: return self.__arena.binmap @property def next(self) -> int: return self.__arena.next @property def next_free(self) -> int: return self.__arena.next_free @property def attached_threads(self) -> int: return self.__arena.attached_threads @property def system_mem(self) -> int: return self.__arena.system_mem @property def max_system_mem(self) -> int: return self.__arena.max_system_mem def fastbin(self, i: int) -> "GlibcFastChunk | None": """Return head chunk in fastbinsY[i].""" addr = int(self.fastbinsY[i]) if addr == 0: return None return GlibcFastChunk(addr + 2 * gef.arch.ptrsize) def bin(self, i: int) -> tuple[int, int]: idx = i * 2 fd = int(self.bins[idx]) bk = int(self.bins[idx + 1]) return fd, bk def bin_at(self, i) -> int: header_sz = 2 * gef.arch.ptrsize offset = ctypes.addressof(self.__arena.bins) - ctypes.addressof(self.__arena) return self.__address + offset + (i-1) * 2 * gef.arch.ptrsize + header_sz def is_main_arena(self) -> bool: return gef.heap.main_arena is not None and int(self) == int(gef.heap.main_arena) def heap_addr(self, allow_unaligned: bool = False) -> int | None: if self.is_main_arena(): heap_section = gef.heap.base_address if not heap_section: return None return heap_section _addr = int(self) + self.sizeof if allow_unaligned: return _addr return gef.heap.malloc_align_address(_addr) def get_heap_info_list(self) -> list[GlibcHeapInfo] | None: if self.is_main_arena(): return None heap_addr = self.get_heap_for_ptr(self.top) heap_infos = [GlibcHeapInfo(heap_addr)] while heap_infos[-1].prev is not None: prev = int(heap_infos[-1].prev) heap_info = GlibcHeapInfo(prev) heap_infos.append(heap_info) return heap_infos[::-1] @staticmethod def get_heap_for_ptr(ptr: int) -> int: """Find the corresponding heap for a given pointer (int). See https://github.com/bminor/glibc/blob/glibc-2.34/malloc/arena.c#L129""" if is_32bit(): default_mmap_threshold_max = 512 * 1024 else: # 64bit val = cached_lookup_type("long") sz = val.sizeof if val else gef.arch.ptrsize default_mmap_threshold_max = 4 * 1024 * 1024 * sz heap_max_size = 2 * default_mmap_threshold_max return ptr & ~(heap_max_size - 1) @staticmethod def verify(addr: int) -> bool: """Verify that the address matches a possible valid GlibcArena""" try: test_arena = GlibcArena(f"*{addr:#x}") cur_arena = GlibcArena(f"*{test_arena.next:#x}") while cur_arena != test_arena: if cur_arena == 0: return False cur_arena = GlibcArena(f"*{cur_arena.next:#x}") except Exception as e: dbg(f"GlibcArena.verify({addr:#x}) failed: {str(e)}") return False return True class GlibcChunk: """Glibc chunk class. The default behavior (from_base=False) is to interpret the data starting at the memory address pointed to as the chunk data. Setting from_base to True instead treats that data as the chunk header. Ref: https://sploitfun.wordpress.com/2015/02/10/understanding-glibc-malloc/.""" class ChunkFlags(enum.IntFlag): PREV_INUSE = 1 IS_MMAPPED = 2 NON_MAIN_ARENA = 4 def __str__(self) -> str: return " | ".join([ Color.greenify("PREV_INUSE") if self.value & self.PREV_INUSE else Color.redify("PREV_INUSE"), Color.greenify("IS_MMAPPED") if self.value & self.IS_MMAPPED else Color.redify("IS_MMAPPED"), Color.greenify("NON_MAIN_ARENA") if self.value & self.NON_MAIN_ARENA else Color.redify("NON_MAIN_ARENA") ]) @staticmethod def malloc_chunk_t() -> Type[ctypes.Structure]: pointer = ctypes.c_uint64 if gef and gef.arch.ptrsize == 8 else ctypes.c_uint32 class malloc_chunk_cls(ctypes.Structure): pass malloc_chunk_cls._fields_ = [ ("prev_size", pointer), ("size", pointer), ("fd", pointer), ("bk", pointer), ("fd_nextsize", ctypes.POINTER(malloc_chunk_cls)), ("bk_nextsize", ctypes.POINTER(malloc_chunk_cls)), ] return malloc_chunk_cls def __init__(self, addr: int, from_base: bool = False, allow_unaligned: bool = True) -> None: ptrsize = gef.arch.ptrsize self.data_address = addr + 2 * ptrsize if from_base else addr self.base_address = addr if from_base else addr - 2 * ptrsize if not allow_unaligned: self.data_address = gef.heap.malloc_align_address(self.data_address) self.size_addr = int(self.data_address - ptrsize) self.prev_size_addr = self.base_address self.reset() return def reset(self): self._sizeof = ctypes.sizeof(GlibcChunk.malloc_chunk_t()) self._data = gef.memory.read( self.base_address, ctypes.sizeof(GlibcChunk.malloc_chunk_t())) self._chunk = GlibcChunk.malloc_chunk_t().from_buffer_copy(self._data) return @property def prev_size(self) -> int: return self._chunk.prev_size @property def size(self) -> int: return self._chunk.size & (~0x07) @property def flags(self) -> ChunkFlags: return GlibcChunk.ChunkFlags(self._chunk.size & 0x07) @property def fd(self) -> int: return self._chunk.fd @property def bk(self) -> int: return self._chunk.bk @property def fd_nextsize(self) -> int: return self._chunk.fd_nextsize @property def bk_nextsize(self) -> int: return self._chunk.bk_nextsize def get_usable_size(self) -> int: # https://github.com/sploitfun/lsploits/blob/master/glibc/malloc/malloc.c#L4537 ptrsz = gef.arch.ptrsize cursz = self.size if cursz == 0: return cursz if self.has_m_bit(): return cursz - 2 * ptrsz return cursz - ptrsz @property def usable_size(self) -> int: return self.get_usable_size() def get_prev_chunk_size(self) -> int: return gef.memory.read_integer(self.prev_size_addr) def __iter__(self) -> Generator["GlibcChunk", None, None]: assert gef.heap.main_arena current_chunk = self top = gef.heap.main_arena.top while True: yield current_chunk if current_chunk.base_address == top: break if current_chunk.size == 0: break next_chunk_addr = current_chunk.get_next_chunk_addr() if not Address(value=next_chunk_addr).valid: break next_chunk = current_chunk.get_next_chunk() if next_chunk is None: break current_chunk = next_chunk return def get_next_chunk(self, allow_unaligned: bool = False) -> "GlibcChunk": addr = self.get_next_chunk_addr() return GlibcChunk(addr, allow_unaligned=allow_unaligned) def get_next_chunk_addr(self) -> int: return self.data_address + self.size def has_p_bit(self) -> bool: return bool(self.flags & GlibcChunk.ChunkFlags.PREV_INUSE) def has_m_bit(self) -> bool: return bool(self.flags & GlibcChunk.ChunkFlags.IS_MMAPPED) def has_n_bit(self) -> bool: return bool(self.flags & GlibcChunk.ChunkFlags.NON_MAIN_ARENA) def is_used(self) -> bool: """Check if the current block is used by: - checking the M bit is true - or checking that next chunk PREV_INUSE flag is true""" if self.has_m_bit(): return True next_chunk = self.get_next_chunk() return True if next_chunk.has_p_bit() else False def __str_sizes(self) -> str: msg = [] failed = False try: msg.append(f"Chunk size: {self.size:d} ({self.size:#x})") msg.append(f"Usable size: {self.usable_size:d} ({self.usable_size:#x})") failed = True except gdb.MemoryError: msg.append(f"Chunk size: Cannot read at {self.size_addr:#x} (corrupted?)") try: prev_chunk_sz = self.get_prev_chunk_size() msg.append(f"Previous chunk size: {prev_chunk_sz:d} ({prev_chunk_sz:#x})") failed = True except gdb.MemoryError: msg.append(f"Previous chunk size: Cannot read at {self.base_address:#x} (corrupted?)") if failed: msg.append(str(self.flags)) return "\n".join(msg) def _str_pointers(self) -> str: fwd = self.data_address bkw = self.data_address + gef.arch.ptrsize msg = [] try: msg.append(f"Forward pointer: {self.fd:#x}") except gdb.MemoryError: msg.append(f"Forward pointer: {fwd:#x} (corrupted?)") try: msg.append(f"Backward pointer: {self.bk:#x}") except gdb.MemoryError: msg.append(f"Backward pointer: {bkw:#x} (corrupted?)") return "\n".join(msg) def __str__(self) -> str: return (f"{Color.colorify('Chunk', 'yellow bold underline')}(addr={self.data_address:#x}, " f"size={self.size:#x}, flags={self.flags!s})") def psprint(self) -> str: msg = [ str(self), self.__str_sizes(), ] if not self.is_used(): msg.append(f"\n\n{self._str_pointers()}") return "\n".join(msg) + "\n" def resolve_type(self) -> str: ptr_data = gef.memory.read_integer(self.data_address) if ptr_data != 0: sym = gdb_get_location_from_symbol(ptr_data) if sym is not None and "vtable for" in sym[0]: return sym[0].replace("vtable for ", "") return "" class GlibcFastChunk(GlibcChunk): @property def fd(self) -> int: assert(gef and gef.libc.version) if gef.libc.version < (2, 32): return self._chunk.fd return self.reveal_ptr(self.data_address) def protect_ptr(self, pos: int, pointer: int) -> int: """https://elixir.bootlin.com/glibc/glibc-2.32/source/malloc/malloc.c#L339""" assert(gef and gef.libc.version) if gef.libc.version < (2, 32): return pointer return (pos >> 12) ^ pointer def reveal_ptr(self, pointer: int) -> int: """https://elixir.bootlin.com/glibc/glibc-2.32/source/malloc/malloc.c#L341""" assert(gef and gef.libc.version) if gef.libc.version < (2, 32): return pointer return gef.memory.read_integer(pointer) ^ (pointer >> 12) class GlibcTcacheChunk(GlibcFastChunk): pass @deprecated("Use GefLibcManager.find_libc_version()") def get_libc_version() -> tuple[int, ...]: return GefLibcManager.find_libc_version() def titlify(text: str, color: str | None = None, msg_color: str | None = None) -> str: """Print a centered title.""" _, cols = get_terminal_size() nb = (cols - len(text) - 2) // 2 line_color = color or gef.config["theme.default_title_line"] text_color = msg_color or gef.config["theme.default_title_message"] msg = [Color.colorify(f"{HORIZONTAL_LINE * nb} ", line_color), Color.colorify(text, text_color), Color.colorify(f" {HORIZONTAL_LINE * nb}", line_color)] return "".join(msg) def dbg(msg: str) -> None: if gef.config["gef.debug"] is True: gef_print(f"{Color.colorify('[=]', 'bold cyan')} {msg}") return def err(msg: str) -> None: gef_print(f"{Color.colorify('[!]', 'bold red')} {msg}") return def warn(msg: str) -> None: gef_print(f"{Color.colorify('[*]', 'bold yellow')} {msg}") return def ok(msg: str) -> None: gef_print(f"{Color.colorify('[+]', 'bold green')} {msg}") return def info(msg: str) -> None: gef_print(f"{Color.colorify('[+]', 'bold blue')} {msg}") return def push_context_message(level: str, message: str) -> None: """Push the message to be displayed the next time the context is invoked.""" if level not in ("error", "warn", "ok", "info"): err(f"Invalid level '{level}', discarding message") return gef.ui.context_messages.append((level, message)) return def show_last_exception() -> None: """Display the last Python exception.""" def _show_code_line(fname: str, idx: int) -> str: fpath = pathlib.Path(os.path.expanduser(os.path.expandvars(fname))) _data = fpath.read_text().splitlines() return _data[idx - 1] if 0 < idx < len(_data) else "" gef_print("") exc_type, exc_value, exc_traceback = sys.exc_info() exc_name = exc_type.__name__ if exc_type else "Unknown" gef_print(" Exception raised ".center(80, HORIZONTAL_LINE)) gef_print(f"{Color.colorify(exc_name, 'bold underline red')}: {exc_value}") gef_print(" Detailed stacktrace ".center(80, HORIZONTAL_LINE)) for fs in traceback.extract_tb(exc_traceback)[::-1]: filename, lineno, method, code = fs if not code or not code.strip(): code = _show_code_line(filename, lineno) gef_print(f"""{DOWN_ARROW} File "{Color.yellowify(filename)}", line {lineno:d}, in {Color.greenify(method)}()""") gef_print(f" {RIGHT_ARROW} {code}") gef_print(" Version ".center(80, HORIZONTAL_LINE)) gdb.execute("version full") gef_print(" Last 10 GDB commands ".center(80, HORIZONTAL_LINE)) gdb.execute("show commands") gef_print(" Runtime environment ".center(80, HORIZONTAL_LINE)) gef_print(f"* GDB: {gdb.VERSION}") gef_print(f"* Python: {sys.version_info.major:d}.{sys.version_info.minor:d}.{sys.version_info.micro:d} - {sys.version_info.releaselevel}") gef_print(f"* OS: {platform.system()} - {platform.release()} ({platform.machine()})") try: lsb_release = which("lsb_release") gdb.execute(f"!'{lsb_release}' -a") except FileNotFoundError: pass gef_print(HORIZONTAL_LINE*80) gef_print("") return def gef_pystring(x: bytes) -> str: """Returns a sanitized version as string of the bytes list given in input.""" res = str(x, encoding="utf-8") substs = [("\n", "\\n"), ("\r", "\\r"), ("\t", "\\t"), ("\v", "\\v"), ("\b", "\\b"), ] for _x, _y in substs: res = res.replace(_x, _y) return res def gef_pybytes(x: str) -> bytes: """Returns an immutable bytes list from the string given as input.""" return bytes(str(x), encoding="utf-8") @lru_cache() def which(program: str) -> pathlib.Path: """Locate a command on the filesystem.""" res = shutil.which(program) if not res: raise FileNotFoundError(f"Missing file `{program}`") return pathlib.Path(res) def style_byte(b: int, color: bool = True) -> str: style = { "nonprintable": "yellow", "printable": "white", "00": "gray", "0a": "blue", "ff": "green", } sbyte = f"{b:02x}" if not color or gef.config["highlight.regex"]: return sbyte if sbyte in style: st = style[sbyte] elif chr(b) in (string.ascii_letters + string.digits + string.punctuation + " "): st = style.get("printable") else: st = style.get("nonprintable") if st: sbyte = Color.colorify(sbyte, st) return sbyte def hexdump(source: ByteString, length: int = 0x10, separator: str = ".", show_raw: bool = False, show_symbol: bool = True, base: int = 0x00) -> str: """Return the hexdump of `src` argument. @param source *MUST* be of type bytes or bytearray @param length is the length of items per line @param separator is the default character to use if one byte is not printable @param show_raw if True, do not add the line nor the text translation @param base is the start address of the block being hexdump @return a string with the hexdump""" result = [] align = gef.arch.ptrsize * 2 + 2 if is_alive() else 18 for i in range(0, len(source), length): chunk = bytearray(source[i : i + length]) hexa = " ".join([style_byte(b, color=not show_raw) for b in chunk]) if show_raw: result.append(hexa) continue text = "".join([chr(b) if 0x20 <= b < 0x7F else separator for b in chunk]) if show_symbol: sym = gdb_get_location_from_symbol(base + i) sym = f"<{sym[0]:s}+{sym[1]:04x}>" if sym else "" else: sym = "" result.append(f"{base + i:#0{align}x} {sym} {hexa:<{3 * length}} {text}") return "\n".join(result) def is_debug() -> bool: """Check if debug mode is enabled.""" return gef.config["gef.debug"] is True def buffer_output() -> bool: """Check if output should be buffered until command completion.""" return gef.config["gef.buffer"] is True def hide_context() -> bool: """Helper function to hide the context pane.""" gef.ui.context_hidden = True return True def unhide_context() -> bool: """Helper function to unhide the context pane.""" gef.ui.context_hidden = False return True class DisableContextOutputContext: def __enter__(self) -> None: hide_context() return def __exit__(self, *exc: Any) -> None: unhide_context() return class RedirectOutputContext: def __init__(self, to_file: str = "/dev/null") -> None: if " " in to_file: raise ValueError("Target filepath cannot contain spaces") self.redirection_target_file = to_file return def __enter__(self) -> None: """Redirect all GDB output to `to_file` parameter. By default, `to_file` redirects to `/dev/null`.""" gdb.execute("set logging overwrite") gdb.execute(f"set logging file {self.redirection_target_file}") gdb.execute("set logging redirect on") if GDB_VERSION >= (12, 0): gdb.execute("set logging enabled on") else: gdb.execute("set logging on") return def __exit__(self, *exc: Any) -> None: """Disable the output redirection, if any.""" if GDB_VERSION >= (12, 0): gdb.execute("set logging enabled off") else: gdb.execute("set logging off") gdb.execute("set logging redirect off") return def enable_redirect_output(to_file: str = "/dev/null") -> None: """Redirect all GDB output to `to_file` parameter. By default, `to_file` redirects to `/dev/null`.""" if " " in to_file: raise ValueError("Target filepath cannot contain spaces") gdb.execute("set logging overwrite") gdb.execute(f"set logging file {to_file}") gdb.execute("set logging redirect on") if GDB_VERSION >= (12, 0): gdb.execute("set logging enabled on") else: gdb.execute("set logging on") return def disable_redirect_output() -> None: """Disable the output redirection, if any.""" if GDB_VERSION >= (12, 0): gdb.execute("set logging enabled off") else: gdb.execute("set logging off") gdb.execute("set logging redirect off") return @deprecated("use `pathlib.Path(...).mkdir()`") def gef_makedirs(path: str, mode: int = 0o755) -> pathlib.Path: """Recursive mkdir() creation. If successful, return the absolute path of the directory created.""" fpath = pathlib.Path(path) if not fpath.is_dir(): fpath.mkdir(mode=mode, exist_ok=True, parents=True) return fpath.absolute() @lru_cache() def gdb_lookup_symbol(sym: str) -> tuple[gdb.Symtab_and_line, ...] | None: """Fetch the proper symbol or None if not defined.""" try: res = gdb.decode_line(sym)[1] # pylint: disable=E1136 return res except gdb.error: return None @lru_cache(maxsize=512) def gdb_get_location_from_symbol(address: int) -> tuple[str, int] | None: """Retrieve the location of the `address` argument from the symbol table. Return a tuple with the name and offset if found, None otherwise.""" # this is horrible, ugly hack and shitty perf... # find a *clean* way to get gdb.Location from an address sym = str(gdb.execute(f"info symbol {address:#x}", to_string=True)) if sym.startswith("No symbol matches"): return None # gdb outputs symbols with format: " + in section of ", # here, we are only interested in symbol name and offset. i = sym.find(" in section ") sym = sym[:i].split(" + ") name, offset = sym[0], 0 if len(sym) == 2 and sym[1].isdigit(): offset = int(sym[1]) return name, offset def gdb_disassemble(start_pc: int, **kwargs: int) -> Generator[Instruction, None, None]: """Disassemble instructions from `start_pc` (Integer). Accepts the following named parameters: - `end_pc` (Integer) only instructions whose start address fall in the interval from start_pc to end_pc are returned. - `count` (Integer) list at most this many disassembled instructions If `end_pc` and `count` are not provided, the function will behave as if `count=1`. Return an iterator of Instruction objects """ frame = gdb.selected_frame() arch = frame.architecture() for insn in arch.disassemble(start_pc, **kwargs): assert isinstance(insn["addr"], int) assert isinstance(insn["length"], int) assert isinstance(insn["asm"], str) address = insn["addr"] asm = insn["asm"].rstrip().split(None, 1) if len(asm) > 1: mnemo, operands = asm operands = operands.split(",") else: mnemo, operands = asm[0], [] loc = gdb_get_location_from_symbol(address) location = f"<{loc[0]}+{loc[1]:04x}>" if loc else "" opcodes = gef.memory.read(insn["addr"], insn["length"]) yield Instruction(address, location, mnemo, operands, opcodes) def gdb_get_nth_previous_instruction_address(addr: int, n: int) -> int | None: """Return the address (Integer) of the `n`-th instruction before `addr`.""" # fixed-length ABI if gef.arch.instruction_length: return max(0, addr - n * gef.arch.instruction_length) # variable-length ABI cur_insn_addr = gef_current_instruction(addr).address # we try to find a good set of previous instructions by "guessing" disassembling backwards # the 15 comes from the longest instruction valid size for i in range(15 * n, 0, -1): try: insns = list(gdb_disassemble(addr - i, end_pc=cur_insn_addr)) except gdb.MemoryError: # this is because we can hit an unmapped page trying to read backward break # 1. check that the disassembled instructions list size can satisfy if len(insns) < n + 1: # we expect the current instruction plus the n before it continue # If the list of instructions is longer than what we need, then we # could get lucky and already have more than what we need, so slice down insns = insns[-n - 1 :] # 2. check that the sequence ends with the current address if insns[-1].address != cur_insn_addr: continue # 3. check all instructions are valid if all(insn.is_valid() for insn in insns): return insns[0].address return None @deprecated(solution="Use `gef_instruction_n().address`") def gdb_get_nth_next_instruction_address(addr: int, n: int) -> int: """Return the address of the `n`-th instruction after `addr`. """ return gef_instruction_n(addr, n).address def gef_instruction_n(addr: int, n: int) -> Instruction: """Return the `n`-th instruction after `addr` as an Instruction object. Note that `n` is treated as an positive index, starting from 0 (current instruction address)""" return list(gdb_disassemble(addr, count=n + 1))[n] def gef_get_instruction_at(addr: int) -> Instruction: """Return the full Instruction found at the specified address.""" insn = next(gef_disassemble(addr, 1)) return insn def gef_current_instruction(addr: int) -> Instruction: """Return the current instruction as an Instruction object.""" return gef_instruction_n(addr, 0) def gef_next_instruction(addr: int) -> Instruction: """Return the next instruction as an Instruction object.""" return gef_instruction_n(addr, 1) def gef_disassemble(addr: int, nb_insn: int, nb_prev: int = 0) -> Generator[Instruction, None, None]: """Disassemble `nb_insn` instructions after `addr` and `nb_prev` before `addr`. Return an iterator of Instruction objects.""" nb_insn = max(1, nb_insn) if nb_prev: try: start_addr = gdb_get_nth_previous_instruction_address(addr, nb_prev) if start_addr: for insn in gdb_disassemble(start_addr, count=nb_prev): if insn.address == addr: break yield insn except gdb.MemoryError: # If the address pointing to the previous instruction(s) is not mapped, simply skip them pass for insn in gdb_disassemble(addr, count=nb_insn): yield insn def gef_execute_external(command: Sequence[str], as_list: bool = False, **kwargs: Any) -> str | list[str]: """Execute an external command and return the result.""" res = subprocess.check_output(command, stderr=subprocess.STDOUT, shell=kwargs.get("shell", False)) return [gef_pystring(_) for _ in res.splitlines()] if as_list else gef_pystring(res) def gef_execute_gdb_script(commands: str) -> None: """Execute the parameter `source` as GDB command. This is done by writing `commands` to a temporary file, which is then executed via GDB `source` command. The tempfile is then deleted.""" fd, fname = tempfile.mkstemp(suffix=".gdb", prefix="gef_") with os.fdopen(fd, "w") as f: f.write(commands) f.flush() fname = pathlib.Path(fname) if fname.is_file() and os.access(fname, os.R_OK): gdb.execute(f"source {fname}") fname.unlink() return @deprecated("Use Elf(fname).checksec()") def checksec(filename: str) -> dict[str, bool]: return Elf(filename).checksec @deprecated("Use `gef.arch` instead") def get_arch() -> str: """Return the binary's architecture.""" if is_alive(): arch = gdb.selected_frame().architecture() return arch.name() arch_str = (gdb.execute("show architecture", to_string=True) or "").strip() pat = "The target architecture is set automatically (currently " if arch_str.startswith(pat): arch_str = arch_str[len(pat):].rstrip(")") return arch_str pat = "The target architecture is assumed to be " if arch_str.startswith(pat): return arch_str[len(pat):] pat = "The target architecture is set to " if arch_str.startswith(pat): # GDB version >= 10.1 if '"auto"' in arch_str: return re.findall(r"currently \"(.+)\"", arch_str)[0] return re.findall(r"\"(.+)\"", arch_str)[0] # Unknown, we throw an exception to be safe raise RuntimeError(f"Unknown architecture: {arch_str}") @deprecated("Use `gef.binary.entry_point` instead") def get_entry_point() -> int | None: """Return the binary entry point.""" return gef.binary.entry_point if gef.binary else None def is_pie(fpath: str) -> bool: return Elf(fpath).checksec["PIE"] @deprecated("Prefer `gef.arch.endianness == Endianness.BIG_ENDIAN`") def is_big_endian() -> bool: return gef.arch.endianness == Endianness.BIG_ENDIAN @deprecated("gef.arch.endianness == Endianness.LITTLE_ENDIAN") def is_little_endian() -> bool: return gef.arch.endianness == Endianness.LITTLE_ENDIAN def flags_to_human(reg_value: int, value_table: dict[int, str]) -> str: """Return a human readable string showing the flag states.""" flags = [] for bit_index, name in value_table.items(): flags.append(Color.boldify(name.upper()) if reg_value & (1< int | None: section = process_lookup_path(name) return section.page_start if section else None @lru_cache() def get_zone_base_address(name: str) -> int | None: zone = file_lookup_name_path(name, get_filepath()) return zone.zone_start if zone else None # # Architecture classes # @deprecated("Using the decorator `register_architecture` is unnecessary") def register_architecture(cls: Type["Architecture"]) -> Type["Architecture"]: return cls class ArchitectureBase: """Class decorator for declaring an architecture to GEF.""" aliases: tuple[str | Elf.Abi, ...] = () def __init_subclass__(cls: Type["ArchitectureBase"], **kwargs): global __registered_architectures__ super().__init_subclass__(**kwargs) for key in getattr(cls, "aliases"): if issubclass(cls, Architecture): if isinstance(key, str): __registered_architectures__[key.lower()] = cls else: __registered_architectures__[key] = cls return class Architecture(ArchitectureBase): """Generic metaclass for the architecture supported by GEF.""" # Mandatory defined attributes by inheriting classes arch: str mode: str all_registers: tuple[str, ...] nop_insn: bytes return_register: str flag_register: str | None instruction_length: int | None flags_table: dict[int, str] syscall_register: str | None syscall_instructions: tuple[str, ...] function_parameters: tuple[str, ...] # Optionally defined attributes _ptrsize: int | None = None _endianness: Endianness | None = None special_registers: tuple[()] | tuple[str, ...] = () maps: GefMemoryMapProvider | None = None def __init_subclass__(cls, **kwargs): super().__init_subclass__(**kwargs) attributes = ("arch", "mode", "aliases", "all_registers", "nop_insn", "return_register", "flag_register", "instruction_length", "flags_table", "function_parameters",) if not all(map(lambda x: hasattr(cls, x), attributes)): raise NotImplementedError def __str__(self) -> str: return f"Architecture({self.arch}, {self.mode or 'None'}, {repr(self.endianness)})" def __repr__(self) -> str: return self.__str__() @staticmethod def supports_gdb_arch(gdb_arch: str) -> bool | None: """If implemented by a child `Architecture`, this function dictates if the current class supports the loaded ELF file (which can be accessed via `gef.binary`). This callback function will override any assumption made by GEF to determine the architecture.""" return None def flag_register_to_human(self, val: int | None = None) -> str: raise NotImplementedError def is_call(self, insn: Instruction) -> bool: raise NotImplementedError def is_ret(self, insn: Instruction) -> bool: raise NotImplementedError def is_conditional_branch(self, insn: Instruction) -> bool: raise NotImplementedError def is_branch_taken(self, insn: Instruction) -> tuple[bool, str]: raise NotImplementedError def get_ra(self, insn: Instruction, frame: "gdb.Frame") -> int | None: raise NotImplementedError def canary_address(self) -> int: raise NotImplementedError @classmethod def mprotect_asm(cls, addr: int, size: int, perm: Permission) -> str: raise NotImplementedError def reset_caches(self) -> None: self.__get_register_for_selected_frame.cache_clear() return def __get_register(self, regname: str) -> int: """Return a register's value.""" curframe = gdb.selected_frame() key = curframe.pc() ^ int(curframe.read_register('sp')) # todo: check when/if gdb.Frame implements `level()` return self.__get_register_for_selected_frame(regname, int(key)) @lru_cache() def __get_register_for_selected_frame(self, regname: str, hash_key: int) -> int: # 1st chance try: return parse_address(regname) except gdb.error: pass # 2nd chance - if an exception, propagate it regname = regname.lstrip("$") value = gdb.selected_frame().read_register(regname) return int(value) def register(self, name: str) -> int: if not is_alive(): raise gdb.error("No debugging session active") return self.__get_register(name) @property def registers(self) -> Generator[str, None, None]: yield from self.all_registers @property def pc(self) -> int: return self.register("$pc") @property def sp(self) -> int: return self.register("$sp") @property def fp(self) -> int: return self.register("$fp") @property def ptrsize(self) -> int: if not self._ptrsize: res = cached_lookup_type("size_t") if res is not None: self._ptrsize = res.sizeof else: self._ptrsize = gdb.parse_and_eval("$pc").type.sizeof return self._ptrsize @property def endianness(self) -> Endianness: if not self._endianness: output = (gdb.execute("show endian", to_string=True) or "").strip().lower() if "little endian" in output: self._endianness = Endianness.LITTLE_ENDIAN elif "big endian" in output: self._endianness = Endianness.BIG_ENDIAN else: raise OSError(f"No valid endianness found in '{output}'") return self._endianness def get_ith_parameter(self, i: int, in_func: bool = True) -> tuple[str, int | None]: """Retrieves the correct parameter used for the current function call.""" reg = self.function_parameters[i] val = self.register(reg) key = reg return key, val class GenericArchitecture(Architecture): arch = "Generic" mode = "" aliases = ("GenericArchitecture",) all_registers = () instruction_length = 0 return_register = "" function_parameters = () syscall_register = "" syscall_instructions = () nop_insn = b"" flag_register = None flags_table = {} class RISCV(Architecture): arch = "RISCV" mode = "RISCV" aliases = ("RISCV", Elf.Abi.RISCV) all_registers = ("$zero", "$ra", "$sp", "$gp", "$tp", "$t0", "$t1", "$t2", "$fp", "$s1", "$a0", "$a1", "$a2", "$a3", "$a4", "$a5", "$a6", "$a7", "$s2", "$s3", "$s4", "$s5", "$s6", "$s7", "$s8", "$s9", "$s10", "$s11", "$t3", "$t4", "$t5", "$t6",) return_register = "$a0" function_parameters = ("$a0", "$a1", "$a2", "$a3", "$a4", "$a5", "$a6", "$a7") syscall_register = "$a7" syscall_instructions = ("ecall",) nop_insn = b"\x00\x00\x00\x13" # RISC-V has no flags registers flag_register = None flags_table = {} @property def instruction_length(self) -> int: return 4 def is_call(self, insn: Instruction) -> bool: return insn.mnemonic == "call" def is_ret(self, insn: Instruction) -> bool: mnemo = insn.mnemonic if mnemo == "ret": return True elif (mnemo == "jalr" and insn.operands[0] == "zero" and insn.operands[1] == "ra" and insn.operands[2] == 0): return True elif (mnemo == "c.jalr" and insn.operands[0] == "ra"): return True return False @classmethod def mprotect_asm(cls, addr: int, size: int, perm: Permission) -> str: raise OSError(f"Architecture {cls.arch} not supported yet") @property def ptrsize(self) -> int: if self._ptrsize is not None: return self._ptrsize if is_alive(): self._ptrsize = gdb.parse_and_eval("$pc").type.sizeof return self._ptrsize return 4 def is_conditional_branch(self, insn: Instruction) -> bool: return insn.mnemonic.startswith("b") def is_branch_taken(self, insn: Instruction) -> tuple[bool, str]: def long_to_twos_complement(v: int) -> int: """Convert a python long value to its two's complement.""" if is_32bit(): if v & 0x80000000: return v - 0x100000000 elif is_64bit(): if v & 0x8000000000000000: return v - 0x10000000000000000 else: raise OSError("RISC-V: ELF file is not ELF32 or ELF64. This is not currently supported") return v mnemo = insn.mnemonic condition = mnemo[1:] if condition.endswith("z"): # r2 is the zero register if we are comparing to 0 rs1 = gef.arch.register(insn.operands[0]) rs2 = gef.arch.register("$zero") condition = condition[:-1] elif len(insn.operands) > 2: # r2 is populated with the second operand rs1 = gef.arch.register(insn.operands[0]) rs2 = gef.arch.register(insn.operands[1]) else: raise OSError(f"RISC-V: Failed to get rs1 and rs2 for instruction: `{insn}`") # If the conditional operation is not unsigned, convert the python long into # its two's complement if not condition.endswith("u"): rs2 = long_to_twos_complement(rs2) rs1 = long_to_twos_complement(rs1) else: condition = condition[:-1] if condition == "eq": if rs1 == rs2: taken, reason = True, f"{rs1}={rs2}" else: taken, reason = False, f"{rs1}!={rs2}" elif condition == "ne": if rs1 != rs2: taken, reason = True, f"{rs1}!={rs2}" else: taken, reason = False, f"{rs1}={rs2}" elif condition == "lt": if rs1 < rs2: taken, reason = True, f"{rs1}<{rs2}" else: taken, reason = False, f"{rs1}>={rs2}" elif condition == "le": if rs1 <= rs2: taken, reason = True, f"{rs1}<={rs2}" else: taken, reason = False, f"{rs1}>{rs2}" elif condition == "ge": if rs1 >= rs2: taken, reason = True, f"{rs1}>={rs2}" else: taken, reason = False, f"{rs1}<{rs2}" else: raise OSError(f"RISC-V: Conditional instruction `{insn}` not supported yet") return taken, reason def get_ra(self, insn: Instruction, frame: "gdb.Frame") -> int | None: ra = None if self.is_ret(insn): ra = gef.arch.register("$ra") else: older = frame.older() if older: ra = to_unsigned_long(older.pc()) return ra def flag_register_to_human(self, val: int | None = None) -> str: # RISC-V has no flags registers, return an empty string to # preserve the Architecture API return "" class ARM(Architecture): aliases = ("ARM", Elf.Abi.ARM) arch = "ARM" all_registers = ("$r0", "$r1", "$r2", "$r3", "$r4", "$r5", "$r6", "$r7", "$r8", "$r9", "$r10", "$r11", "$r12", "$sp", "$lr", "$pc", "$cpsr",) nop_insn = b"\x00\xf0\x20\xe3" # hint #0 return_register = "$r0" flag_register: str = "$cpsr" flags_table = { 31: "negative", 30: "zero", 29: "carry", 28: "overflow", 7: "interrupt", 6: "fast", 5: "thumb", } function_parameters = ("$r0", "$r1", "$r2", "$r3") syscall_register = "$r7" syscall_instructions = ("swi 0x0", "swi NR") _endianness = Endianness.LITTLE_ENDIAN def is_thumb(self) -> bool: """Determine if the machine is currently in THUMB mode.""" return is_alive() and (self.cpsr & (1 << 5) == 1) @property def pc(self) -> int | None: pc = gef.arch.register("$pc") if self.is_thumb(): pc += 1 return pc @property def cpsr(self) -> int: if not is_alive(): raise RuntimeError("Cannot get CPSR, program not started?") return gef.arch.register(self.flag_register) @property def mode(self) -> str: return "THUMB" if self.is_thumb() else "ARM" @property def instruction_length(self) -> int | None: # Thumb instructions have variable-length (2 or 4-byte) return None if self.is_thumb() else 4 @property def ptrsize(self) -> int: return 4 def is_call(self, insn: Instruction) -> bool: mnemo = insn.mnemonic call_mnemos = {"bl", "blx"} return mnemo in call_mnemos def is_ret(self, insn: Instruction) -> bool: pop_mnemos = {"pop"} branch_mnemos = {"bl", "bx"} write_mnemos = {"ldr", "add"} if insn.mnemonic in pop_mnemos: return insn.operands[-1] == " pc}" if insn.mnemonic in branch_mnemos: return insn.operands[-1] == "lr" if insn.mnemonic in write_mnemos: return insn.operands[0] == "pc" return False def flag_register_to_human(self, val: int | None = None) -> str: # https://www.botskool.com/user-pages/tutorials/electronics/arm-7-tutorial-part-1 if val is None: reg = self.flag_register val = gef.arch.register(reg) return flags_to_human(val, self.flags_table) def is_conditional_branch(self, insn: Instruction) -> bool: conditions = {"eq", "ne", "lt", "le", "gt", "ge", "vs", "vc", "mi", "pl", "hi", "ls", "cc", "cs"} return insn.mnemonic[-2:] in conditions def is_branch_taken(self, insn: Instruction) -> tuple[bool, str]: mnemo = insn.mnemonic # ref: https://www.davespace.co.uk/arm/introduction-to-arm/conditional.html flags = dict((self.flags_table[k], k) for k in self.flags_table) val = gef.arch.register(self.flag_register) taken, reason = False, "" if mnemo.endswith("eq"): taken, reason = bool(val&(1< int | None: if not self.is_ret(insn): older = frame.older() if not older: return None return int(older.pc()) # If it's a pop, we have to peek into the stack, otherwise use lr if insn.mnemonic == "pop": ra_addr = gef.arch.sp + (len(insn.operands)-1) * self.ptrsize if not ra_addr: return None ra = dereference(ra_addr) if ra is None: return None return to_unsigned_long(ra) elif insn.mnemonic == "ldr": ra = dereference(gef.arch.sp) if ra is None: return None return to_unsigned_long(ra) else: # 'bx lr' or 'add pc, lr, #0' return gef.arch.register("$lr") @classmethod def mprotect_asm(cls, addr: int, size: int, perm: Permission) -> str: _NR_mprotect = 125 insns = [ "push {r0-r2, r7}", f"mov r1, {addr & 0xffff:d}", f"mov r0, {(addr & 0xffff0000) >> 16:d}", "lsl r0, r0, 16", "add r0, r0, r1", f"mov r1, {size & 0xffff:d}", f"mov r2, {perm.value & 0xff:d}", f"mov r7, {_NR_mprotect:d}", "svc 0", "pop {r0-r2, r7}", ] return "; ".join(insns) class AARCH64(ARM): aliases = ("ARM64", "AARCH64", Elf.Abi.AARCH64) arch = "ARM64" mode: str = "" all_registers = ( "$x0", "$x1", "$x2", "$x3", "$x4", "$x5", "$x6", "$x7", "$x8", "$x9", "$x10", "$x11", "$x12", "$x13", "$x14","$x15", "$x16", "$x17", "$x18", "$x19", "$x20", "$x21", "$x22", "$x23", "$x24", "$x25", "$x26", "$x27", "$x28", "$x29", "$x30", "$sp", "$pc", "$cpsr", "$fpsr", "$fpcr",) return_register = "$x0" flag_register = "$cpsr" flags_table = { 31: "negative", 30: "zero", 29: "carry", 28: "overflow", 7: "interrupt", 9: "endian", 6: "fast", 5: "t32", 4: "m[4]", } nop_insn = b"\x1f\x20\x03\xd5" # hint #0 function_parameters = ("$x0", "$x1", "$x2", "$x3", "$x4", "$x5", "$x6", "$x7",) syscall_register = "$x8" syscall_instructions = ("svc $x0",) def is_call(self, insn: Instruction) -> bool: mnemo = insn.mnemonic call_mnemos = {"bl", "blr"} return mnemo in call_mnemos def flag_register_to_human(self, val: int | None = None) -> str: # https://events.linuxfoundation.org/sites/events/files/slides/KoreaLinuxForum-2014.pdf reg = self.flag_register if not val: val = gef.arch.register(reg) return flags_to_human(val, self.flags_table) def is_aarch32(self) -> bool: """Determine if the CPU is currently in AARCH32 mode from runtime.""" return (self.cpsr & (1 << 4) != 0) and (self.cpsr & (1 << 5) == 0) def is_thumb32(self) -> bool: """Determine if the CPU is currently in THUMB32 mode from runtime.""" return (self.cpsr & (1 << 4) == 1) and (self.cpsr & (1 << 5) == 1) @property def ptrsize(self) -> int: """Determine the size of pointer from the current CPU mode""" if not is_alive(): return 8 if self.is_aarch32(): return 4 if self.is_thumb32(): return 2 return 8 @classmethod def mprotect_asm(cls, addr: int, size: int, perm: Permission) -> str: _NR_mprotect = 226 insns = [ "str x8, [sp, -16]!", "str x0, [sp, -16]!", "str x1, [sp, -16]!", "str x2, [sp, -16]!", f"mov x8, {_NR_mprotect:d}", f"movz x0, {addr & 0xFFFF:#x}", f"movk x0, {(addr >> 16) & 0xFFFF:#x}, lsl 16", f"movk x0, {(addr >> 32) & 0xFFFF:#x}, lsl 32", f"movk x0, {(addr >> 48) & 0xFFFF:#x}, lsl 48", f"movz x1, {size & 0xFFFF:#x}", f"movk x1, {(size >> 16) & 0xFFFF:#x}, lsl 16", f"mov x2, {perm.value:d}", "svc 0", "ldr x2, [sp], 16", "ldr x1, [sp], 16", "ldr x0, [sp], 16", "ldr x8, [sp], 16", ] return "; ".join(insns) def is_conditional_branch(self, insn: Instruction) -> bool: # https://www.element14.com/community/servlet/JiveServlet/previewBody/41836-102-1-229511/ARM.Reference_Manual.pdf # sect. 5.1.1 mnemo = insn.mnemonic branch_mnemos = {"cbnz", "cbz", "tbnz", "tbz"} return mnemo.startswith("b.") or mnemo in branch_mnemos def is_branch_taken(self, insn: Instruction) -> tuple[bool, str]: mnemo, operands = insn.mnemonic, insn.operands taken, reason = False, "" if mnemo in {"cbnz", "cbz", "tbnz", "tbz"}: reg = f"${operands[0]}" op = gef.arch.register(reg) if mnemo == "cbnz": if op!=0: taken, reason = True, f"{reg}!=0" else: taken, reason = False, f"{reg}==0" elif mnemo == "cbz": if op == 0: taken, reason = True, f"{reg}==0" else: taken, reason = False, f"{reg}!=0" elif mnemo == "tbnz": # operands[1] has one or more white spaces in front, then a #, then the number # so we need to eliminate them i = int(operands[1].strip().lstrip("#")) if (op & 1< str: reg = self.flag_register if val is None: val = gef.arch.register(reg) return flags_to_human(val, self.flags_table) def is_call(self, insn: Instruction) -> bool: mnemo = insn.mnemonic call_mnemos = {"call", "callq"} return mnemo in call_mnemos def is_ret(self, insn: Instruction) -> bool: return insn.mnemonic == "ret" def is_conditional_branch(self, insn: Instruction) -> bool: mnemo = insn.mnemonic branch_mnemos = { "ja", "jnbe", "jae", "jnb", "jnc", "jb", "jc", "jnae", "jbe", "jna", "jcxz", "jecxz", "jrcxz", "je", "jz", "jg", "jnle", "jge", "jnl", "jl", "jnge", "jle", "jng", "jne", "jnz", "jno", "jnp", "jpo", "jns", "jo", "jp", "jpe", "js" } return mnemo in branch_mnemos def is_branch_taken(self, insn: Instruction) -> tuple[bool, str]: mnemo = insn.mnemonic # all kudos to fG! (https://github.com/gdbinit/Gdbinit/blob/master/gdbinit#L1654) flags = dict((self.flags_table[k], k) for k in self.flags_table) val = gef.arch.register(self.flag_register) taken, reason = False, "" if mnemo in ("ja", "jnbe"): taken, reason = not val&(1< int | None: ra = None if self.is_ret(insn): ra = dereference(gef.arch.sp) else: older = frame.older() if older: ra = older.pc() if ra is None: return None return to_unsigned_long(ra) @classmethod def mprotect_asm(cls, addr: int, size: int, perm: Permission) -> str: _NR_mprotect = 125 insns = [ "pushad", "pushfd", f"mov eax, {_NR_mprotect:d}", f"mov ebx, {addr:d}", f"mov ecx, {size:d}", f"mov edx, {perm.value:d}", "int 0x80", "popfd", "popad", ] return "; ".join(insns) def get_ith_parameter(self, i: int, in_func: bool = True) -> tuple[str, int | None]: if in_func: i += 1 # Account for RA being at the top of the stack sp = gef.arch.sp sz = gef.arch.ptrsize loc = sp + (i * sz) val = gef.memory.read_integer(loc) key = f"[sp + {i * sz:#x}]" return key, val class X86_64(X86): aliases = ("X86_64", Elf.Abi.X86_64, "i386:x86-64") arch = "X86" mode = "64" gpr_registers = ( "$rax", "$rbx", "$rcx", "$rdx", "$rsp", "$rbp", "$rsi", "$rdi", "$rip", "$r8", "$r9", "$r10", "$r11", "$r12", "$r13", "$r14", "$r15", ) all_registers = gpr_registers + ( X86.flag_register, ) + X86.special_registers return_register = "$rax" function_parameters = ["$rdi", "$rsi", "$rdx", "$rcx", "$r8", "$r9"] syscall_register = "$rax" syscall_instructions = ["syscall"] # We don't want to inherit x86's stack based param getter get_ith_parameter = Architecture.get_ith_parameter _ptrsize = 8 @classmethod def mprotect_asm(cls, addr: int, size: int, perm: Permission) -> str: _NR_mprotect = 10 insns = [ "pushfq", "push rax", "push rdi", "push rsi", "push rdx", "push rcx", "push r11", f"mov rax, {_NR_mprotect:d}", f"mov rdi, {addr:d}", f"mov rsi, {size:d}", f"mov rdx, {perm.value:d}", "syscall", "pop r11", "pop rcx", "pop rdx", "pop rsi", "pop rdi", "pop rax", "popfq", ] return "; ".join(insns) def canary_address(self) -> int: return self.register("fs_base") + 0x28 class PowerPC(Architecture): aliases = ("PowerPC", Elf.Abi.POWERPC, "PPC") arch = "PPC" mode = "PPC32" all_registers = ( "$r0", "$r1", "$r2", "$r3", "$r4", "$r5", "$r6", "$r7", "$r8", "$r9", "$r10", "$r11", "$r12", "$r13", "$r14", "$r15", "$r16", "$r17", "$r18", "$r19", "$r20", "$r21", "$r22", "$r23", "$r24", "$r25", "$r26", "$r27", "$r28", "$r29", "$r30", "$r31", "$pc", "$msr", "$cr", "$lr", "$ctr", "$xer", "$trap",) instruction_length = 4 nop_insn = b"\x60\x00\x00\x00" # https://developer.ibm.com/articles/l-ppc/ return_register = "$r0" flag_register: str = "$cr" flags_table = { 3: "negative[0]", 2: "positive[0]", 1: "equal[0]", 0: "overflow[0]", # cr7 31: "less[7]", 30: "greater[7]", 29: "equal[7]", 28: "overflow[7]", } function_parameters = ("$i0", "$i1", "$i2", "$i3", "$i4", "$i5") syscall_register = "$r0" syscall_instructions = ("sc",) _ptrsize = 4 def flag_register_to_human(self, val: int | None = None) -> str: # https://www.cebix.net/downloads/bebox/pem32b.pdf (% 2.1.3) if val is None: reg = self.flag_register val = gef.arch.register(reg) return flags_to_human(val, self.flags_table) def is_call(self, insn: Instruction) -> bool: return False def is_ret(self, insn: Instruction) -> bool: return insn.mnemonic == "blr" def is_conditional_branch(self, insn: Instruction) -> bool: mnemo = insn.mnemonic branch_mnemos = {"beq", "bne", "ble", "blt", "bgt", "bge"} return mnemo in branch_mnemos def is_branch_taken(self, insn: Instruction) -> tuple[bool, str]: mnemo = insn.mnemonic flags = dict((self.flags_table[k], k) for k in self.flags_table) val = gef.arch.register(self.flag_register) taken, reason = False, "" if mnemo == "beq": taken, reason = bool(val&(1< int | None: ra = None if self.is_ret(insn): ra = gef.arch.register("$lr") else: older = frame.older() if older: ra = to_unsigned_long(older.pc()) return ra @classmethod def mprotect_asm(cls, addr: int, size: int, perm: Permission) -> str: # Ref: https://developer.ibm.com/articles/l-ppc/ _NR_mprotect = 125 insns = [ "addi 1, 1, -16", # 1 = r1 = sp "stw 0, 0(1)", "stw 3, 4(1)", # r0 = syscall_code | r3, r4, r5 = args "stw 4, 8(1)", "stw 5, 12(1)", f"li 0, {_NR_mprotect:d}", f"lis 3, {addr:#x}@h", f"ori 3, 3, {addr:#x}@l", f"lis 4, {size:#x}@h", f"ori 4, 4, {size:#x}@l", f"li 5, {perm.value:d}", "sc", "lwz 0, 0(1)", "lwz 3, 4(1)", "lwz 4, 8(1)", "lwz 5, 12(1)", "addi 1, 1, 16", ] return ";".join(insns) class PowerPC64(PowerPC): aliases = ("PowerPC64", Elf.Abi.POWERPC64, "PPC64") arch = "PPC" mode = "PPC64" _ptrsize = 8 class SPARC(Architecture): """ Refs: - https://www.cse.scu.edu/~atkinson/teaching/sp05/259/sparc.pdf """ aliases = ("SPARC", Elf.Abi.SPARC) arch = "SPARC" mode = "" all_registers = ( "$g0", "$g1", "$g2", "$g3", "$g4", "$g5", "$g6", "$g7", "$o0", "$o1", "$o2", "$o3", "$o4", "$o5", "$o7", "$l0", "$l1", "$l2", "$l3", "$l4", "$l5", "$l6", "$l7", "$i0", "$i1", "$i2", "$i3", "$i4", "$i5", "$i7", "$pc", "$npc", "$sp ", "$fp ", "$psr",) instruction_length = 4 nop_insn = b"\x00\x00\x00\x00" # sethi 0, %g0 return_register = "$i0" flag_register: str = "$psr" flags_table = { 23: "negative", 22: "zero", 21: "overflow", 20: "carry", 7: "supervisor", 5: "trap", } function_parameters = ("$o0 ", "$o1 ", "$o2 ", "$o3 ", "$o4 ", "$o5 ", "$o7 ",) syscall_register = "%g1" syscall_instructions = ("t 0x10",) def flag_register_to_human(self, val: int | None = None) -> str: # https://www.gaisler.com/doc/sparcv8.pdf reg = self.flag_register if val is None: val = gef.arch.register(reg) return flags_to_human(val, self.flags_table) def is_call(self, insn: Instruction) -> bool: return False def is_ret(self, insn: Instruction) -> bool: return insn.mnemonic == "ret" def is_conditional_branch(self, insn: Instruction) -> bool: mnemo = insn.mnemonic # http://moss.csc.ncsu.edu/~mueller/codeopt/codeopt00/notes/condbranch.html branch_mnemos = { "be", "bne", "bg", "bge", "bgeu", "bgu", "bl", "ble", "blu", "bleu", "bneg", "bpos", "bvs", "bvc", "bcs", "bcc" } return mnemo in branch_mnemos def is_branch_taken(self, insn: Instruction) -> tuple[bool, str]: mnemo = insn.mnemonic flags = dict((self.flags_table[k], k) for k in self.flags_table) val = gef.arch.register(self.flag_register) taken, reason = False, "" if mnemo == "be": taken, reason = bool(val&(1< int | None: ra = None if self.is_ret(insn): ra = gef.arch.register("$o7") else: older = frame.older() if older: ra = to_unsigned_long(older.pc()) return ra @classmethod def mprotect_asm(cls, addr: int, size: int, perm: Permission) -> str: hi = (addr & 0xffff0000) >> 16 lo = (addr & 0x0000ffff) _NR_mprotect = 125 insns = ["add %sp, -16, %sp", "st %g1, [ %sp ]", "st %o0, [ %sp + 4 ]", "st %o1, [ %sp + 8 ]", "st %o2, [ %sp + 12 ]", f"sethi %hi({hi}), %o0", f"or %o0, {lo}, %o0", "clr %o1", "clr %o2", f"mov {_NR_mprotect}, %g1", "t 0x10", "ld [ %sp ], %g1", "ld [ %sp + 4 ], %o0", "ld [ %sp + 8 ], %o1", "ld [ %sp + 12 ], %o2", "add %sp, 16, %sp",] return "; ".join(insns) class SPARC64(SPARC): """Refs: - http://math-atlas.sourceforge.net/devel/assembly/abi_sysV_sparc.pdf - https://cr.yp.to/2005-590/sparcv9.pdf """ aliases = ("SPARC64", Elf.Abi.SPARC64) arch = "SPARC" mode = "V9" all_registers = [ "$g0", "$g1", "$g2", "$g3", "$g4", "$g5", "$g6", "$g7", "$o0", "$o1", "$o2", "$o3", "$o4", "$o5", "$o7", "$l0", "$l1", "$l2", "$l3", "$l4", "$l5", "$l6", "$l7", "$i0", "$i1", "$i2", "$i3", "$i4", "$i5", "$i7", "$pc", "$npc", "$sp", "$fp", "$state", ] flag_register = "$state" # sparcv9.pdf, 5.1.5.1 (ccr) flags_table = { 35: "negative", 34: "zero", 33: "overflow", 32: "carry", } syscall_instructions = ["t 0x6d"] @classmethod def mprotect_asm(cls, addr: int, size: int, perm: Permission) -> str: hi = (addr & 0xffff0000) >> 16 lo = (addr & 0x0000ffff) _NR_mprotect = 125 insns = ["add %sp, -16, %sp", "st %g1, [ %sp ]", "st %o0, [ %sp + 4 ]", "st %o1, [ %sp + 8 ]", "st %o2, [ %sp + 12 ]", f"sethi %hi({hi}), %o0", f"or %o0, {lo}, %o0", "clr %o1", "clr %o2", f"mov {_NR_mprotect}, %g1", "t 0x6d", "ld [ %sp ], %g1", "ld [ %sp + 4 ], %o0", "ld [ %sp + 8 ], %o1", "ld [ %sp + 12 ], %o2", "add %sp, 16, %sp",] return "; ".join(insns) class MIPS(Architecture): aliases = ("MIPS", Elf.Abi.MIPS) arch = "MIPS" mode = "MIPS32" # https://vhouten.home.xs4all.nl/mipsel/r3000-isa.html all_registers = ( "$zero", "$at", "$v0", "$v1", "$a0", "$a1", "$a2", "$a3", "$t0", "$t1", "$t2", "$t3", "$t4", "$t5", "$t6", "$t7", "$s0", "$s1", "$s2", "$s3", "$s4", "$s5", "$s6", "$s7", "$t8", "$t9", "$k0", "$k1", "$s8", "$pc", "$sp", "$hi", "$lo", "$fir", "$ra", "$gp", ) instruction_length = 4 _ptrsize = 4 nop_insn = b"\x00\x00\x00\x00" # sll $0,$0,0 return_register = "$v0" flag_register = "$fcsr" flags_table = {} function_parameters = ("$a0", "$a1", "$a2", "$a3") syscall_register = "$v0" syscall_instructions = ("syscall",) def flag_register_to_human(self, val: int | None = None) -> str: return Color.colorify("No flag register", "yellow underline") def is_call(self, insn: Instruction) -> bool: return False def is_ret(self, insn: Instruction) -> bool: return insn.mnemonic == "jr" and insn.operands[0] == "ra" def is_conditional_branch(self, insn: Instruction) -> bool: mnemo = insn.mnemonic branch_mnemos = {"beq", "bne", "beqz", "bnez", "bgtz", "bgez", "bltz", "blez"} return mnemo in branch_mnemos def is_branch_taken(self, insn: Instruction) -> tuple[bool, str]: mnemo, ops = insn.mnemonic, insn.operands taken, reason = False, "" if mnemo == "beq": taken, reason = gef.arch.register(ops[0]) == gef.arch.register(ops[1]), f"{ops[0]} == {ops[1]}" elif mnemo == "bne": taken, reason = gef.arch.register(ops[0]) != gef.arch.register(ops[1]), f"{ops[0]} != {ops[1]}" elif mnemo == "beqz": taken, reason = gef.arch.register(ops[0]) == 0, f"{ops[0]} == 0" elif mnemo == "bnez": taken, reason = gef.arch.register(ops[0]) != 0, f"{ops[0]} != 0" elif mnemo == "bgtz": taken, reason = gef.arch.register(ops[0]) > 0, f"{ops[0]} > 0" elif mnemo == "bgez": taken, reason = gef.arch.register(ops[0]) >= 0, f"{ops[0]} >= 0" elif mnemo == "bltz": taken, reason = gef.arch.register(ops[0]) < 0, f"{ops[0]} < 0" elif mnemo == "blez": taken, reason = gef.arch.register(ops[0]) <= 0, f"{ops[0]} <= 0" return taken, reason def get_ra(self, insn: Instruction, frame: "gdb.Frame") -> int | None: ra = None if self.is_ret(insn): ra = gef.arch.register("$ra") else: older = frame.older() if older: ra = to_unsigned_long(older.pc()) return ra @classmethod def mprotect_asm(cls, addr: int, size: int, perm: Permission) -> str: _NR_mprotect = 4125 insns = ["addi $sp, $sp, -16", "sw $v0, 0($sp)", "sw $a0, 4($sp)", "sw $a3, 8($sp)", "sw $a3, 12($sp)", f"li $v0, {_NR_mprotect:d}", f"li $a0, {addr:d}", f"li $a1, {size:d}", f"li $a2, {perm.value:d}", "syscall", "lw $v0, 0($sp)", "lw $a1, 4($sp)", "lw $a3, 8($sp)", "lw $a3, 12($sp)", "addi $sp, $sp, 16",] return "; ".join(insns) class MIPS64(MIPS): aliases = ("MIPS64",) arch = "MIPS" mode = "MIPS64" _ptrsize = 8 @staticmethod def supports_gdb_arch(gdb_arch: str) -> bool | None: if not gef.binary or not isinstance(gef.binary, Elf): return False return gdb_arch.startswith("mips") and gef.binary.e_class == Elf.Class.ELF_64_BITS def copy_to_clipboard(data: bytes) -> None: """Helper function to submit data to the clipboard""" if sys.platform == "linux": xclip = which("xclip") prog = [xclip, "-selection", "clipboard", "-i"] elif sys.platform == "darwin": pbcopy = which("pbcopy") prog = [pbcopy] else: raise NotImplementedError("copy: Unsupported OS") with subprocess.Popen(prog, stdin=subprocess.PIPE) as p: assert p.stdin p.stdin.write(data) p.stdin.close() p.wait() return def use_stdtype() -> str: if is_32bit(): return "uint32_t" elif is_64bit(): return "uint64_t" return "uint16_t" def use_default_type() -> str: if is_32bit(): return "unsigned int" elif is_64bit(): return "unsigned long" return "unsigned short" def use_golang_type() -> str: if is_32bit(): return "uint32" elif is_64bit(): return "uint64" return "uint16" def use_rust_type() -> str: if is_32bit(): return "u32" elif is_64bit(): return "u64" return "u16" def to_unsigned_long(v: gdb.Value) -> int: """Cast a gdb.Value to unsigned long.""" mask = (1 << (gef.arch.ptrsize*8)) - 1 return int(v.cast(gdb.Value(mask).type)) & mask def get_path_from_info_proc() -> str | None: for x in (gdb.execute("info proc", to_string=True) or "").splitlines(): if x.startswith("exe = "): return x.split(" = ")[1].replace("'", "") return None @deprecated("Use `gef.session.os`") def get_os() -> str: return gef.session.os @lru_cache() def is_qemu() -> bool: if not is_remote_debug(): return False response = gdb.execute("maintenance packet Qqemu.sstepbits", to_string=True, from_tty=False) or "" return "ENABLE=" in response @lru_cache() def is_qemu_usermode() -> bool: if not is_qemu(): return False response = gdb.execute("maintenance packet qOffsets", to_string=True, from_tty=False) or "" return "Text=" in response @lru_cache() def is_qemu_system() -> bool: if not is_qemu(): return False response = gdb.execute("maintenance packet qOffsets", to_string=True, from_tty=False) or "" return "received: \"\"" in response def is_target_coredump() -> bool: global gef if gef.session.coredump_mode is not None: return gef.session.coredump_mode lines = (gdb.execute("maintenance info section", to_string=True) or "").splitlines() is_coredump_mode = any(map(lambda line: line.startswith("Core file: "), lines)) gef.session.coredump_mode = is_coredump_mode return is_coredump_mode def get_filepath() -> str | None: """Return the local absolute path of the file currently debugged.""" if gef.session.remote: return str(gef.session.remote.lfile.absolute()) if gef.session.file: return str(gef.session.file.absolute()) return None def get_function_length(sym: str) -> int: """Attempt to get the length of the raw bytes of a function.""" dis = (gdb.execute(f"disassemble '{sym}'", to_string=True) or "").splitlines() start_addr = int(dis[1].split()[0], 16) end_addr = int(dis[-2].split()[0], 16) return end_addr - start_addr @lru_cache() def get_info_files() -> list[Zone]: """Retrieve all the files loaded by debuggee.""" lines = (gdb.execute("info files", to_string=True) or "").splitlines() infos = [] for line in lines: line = line.strip() if not line: break if not line.startswith("0x"): continue blobs = [x.strip() for x in line.split(" ")] addr_start = int(blobs[0], 16) addr_end = int(blobs[2], 16) section_name = blobs[4] if len(blobs) == 7: filename = blobs[6] else: filename = get_filepath() infos.append(Zone(section_name, addr_start, addr_end, filename)) return infos def process_lookup_address(address: int) -> Section | None: """Look up for an address in memory. Return an Address object if found, None otherwise.""" if not is_alive(): err("Process is not running") return None if is_x86(): if is_in_x86_kernel(address): return None for sect in gef.memory.maps: if sect.page_start <= address < sect.page_end: return sect return None @lru_cache() def process_lookup_path(name: str, perm: Permission = Permission.ALL) -> Section | None: """Look up for a path in the process memory mapping. Return a Section object if found, None otherwise.""" if not is_alive(): err("Process is not running") return None matches: dict[str, Section] = dict() for sect in gef.memory.maps: filename = pathlib.Path(sect.path).name if name in filename and sect.permission & perm: if sect.path not in matches.keys(): matches[sect.path] = sect matches_count = len(matches) if matches_count == 0: return None if matches_count > 1: warn(f"{matches_count} matches! You should probably refine your search!") for x in matches.keys(): warn(f"- '{x}'") warn("Returning the first match") return list(matches.values())[0] @lru_cache() def file_lookup_name_path(name: str, path: str) -> Zone | None: """Look up a file by name and path. Return a Zone object if found, None otherwise.""" for xfile in get_info_files(): if path == xfile.filename and name == xfile.name: return xfile return None @lru_cache() def file_lookup_address(address: int) -> Zone | None: """Look up for a file by its address. Return a Zone object if found, None otherwise.""" for info in get_info_files(): if info.zone_start <= address < info.zone_end: return info return None @lru_cache() def lookup_address(address: int) -> Address: """Try to find the address in the process address space. Return an Address object, with validity flag set based on success.""" sect = process_lookup_address(address) info = file_lookup_address(address) if sect is None and info is None: # i.e. there is no info on this address return Address(value=address, valid=False) return Address(value=address, section=sect, info=info) def xor(data: ByteString, key: str) -> bytearray: """Return `data` xor-ed with `key`.""" key_raw = binascii.unhexlify(key.lstrip("0x")) return bytearray(x ^ y for x, y in zip(data, itertools.cycle(key_raw))) def is_hex(pattern: str) -> bool: """Return whether provided string is a hexadecimal value.""" if not pattern.lower().startswith("0x"): return False return len(pattern) % 2 == 0 and all(c in string.hexdigits for c in pattern[2:]) def continue_handler(_: "gdb.ContinueEvent") -> None: """GDB event handler for new object continue cases.""" return def hook_stop_handler(_: "gdb.StopEvent") -> None: """GDB event handler for stop cases.""" reset_all_caches() gdb.execute("context") return def new_objfile_handler(evt: "gdb.NewObjFileEvent | None") -> None: """GDB event handler for new object file cases.""" reset_all_caches() progspace = gdb.current_progspace() if evt: path = evt.new_objfile.filename or "" elif progspace: path = progspace.filename or "" else: raise RuntimeError("Cannot determine file path") try: if gef.session.root and path.startswith("target:"): # If the process is in a container, replace the "target:" prefix # with the actual root directory of the process. path = path.replace("target:", str(gef.session.root), 1) target = pathlib.Path(path) FileFormatClasses = list(filter(lambda fmtcls: fmtcls.is_valid(target), __registered_file_formats__)) GuessedFileFormatClass : Type[FileFormat] = FileFormatClasses.pop() if len(FileFormatClasses) else Elf binary = GuessedFileFormatClass(target) if not gef.binary: gef.binary = binary reset_architecture() else: gef.session.modules.append(binary) except FileNotFoundError as fne: # Linux automatically maps the vDSO into our process, and GDB # will give us the string 'system-supplied DSO' as a path. # This is normal, so we shouldn't warn the user about it if "system-supplied DSO" not in path: warn(f"Failed to find objfile or not a valid file format: {str(fne)}") except RuntimeError as re: warn(f"Not a valid file format: {str(re)}") return def exit_handler(_: "gdb.ExitedEvent") -> None: """GDB event handler for exit cases.""" global gef # flush the caches reset_all_caches() # disconnect properly the remote session gef.session.qemu_mode = False if gef.session.remote: gef.session.remote.close() del gef.session.remote gef.session.remote = None gef.session.remote_initializing = False # if `autosave_breakpoints_file` setting is configured, save the breakpoints to disk setting = (gef.config["gef.autosave_breakpoints_file"] or "").strip() if not setting: return bkp_fpath = pathlib.Path(setting).expanduser().absolute() if bkp_fpath.exists(): warn(f"{bkp_fpath} exists, content will be overwritten") with bkp_fpath.open("w") as fd: for bp in list(gdb.breakpoints()): if not bp.enabled or not bp.is_valid: continue fd.write(f"{'t' if bp.temporary else ''}break {bp.location}\n") return def memchanged_handler(_: "gdb.MemoryChangedEvent") -> None: """GDB event handler for mem changes cases.""" reset_all_caches() return def regchanged_handler(_: "gdb.RegisterChangedEvent") -> None: """GDB event handler for reg changes cases.""" reset_all_caches() return def get_terminal_size() -> tuple[int, int]: """Return the current terminal size.""" if is_debug(): return 600, 100 if platform.system() == "Windows": from ctypes import create_string_buffer, windll # type: ignore hStdErr = -12 herr = windll.kernel32.GetStdHandle(hStdErr) csbi = create_string_buffer(22) res = windll.kernel32.GetConsoleScreenBufferInfo(herr, csbi) if res: _, _, _, _, _, left, top, right, bottom, _, _ = struct.unpack("hhhhHhhhhhh", csbi.raw) tty_columns = right - left + 1 tty_rows = bottom - top + 1 return tty_rows, tty_columns else: return 600, 100 else: import fcntl import termios try: tty_rows, tty_columns, _, _ = struct.unpack("hhhh", fcntl.ioctl(1, termios.TIOCGWINSZ, "12345678")) # type: ignore return tty_rows, tty_columns except OSError: return 600, 100 @lru_cache() def is_64bit() -> bool: """Checks if current target is 64bit.""" return gef.arch.ptrsize == 8 @lru_cache() def is_32bit() -> bool: """Checks if current target is 32bit.""" return gef.arch.ptrsize == 4 @lru_cache() def is_x86_64() -> bool: """Checks if current target is x86-64""" return Elf.Abi.X86_64 in gef.arch.aliases @lru_cache() def is_x86_32(): """Checks if current target is an x86-32""" return Elf.Abi.X86_32 in gef.arch.aliases @lru_cache() def is_x86() -> bool: return is_x86_32() or is_x86_64() @lru_cache() def is_arch(arch: Elf.Abi) -> bool: return arch in gef.arch.aliases def reset_architecture(arch: str | None = None) -> None: """Sets the current architecture. If an architecture is explicitly specified by parameter, try to use that one. If this fails, an `OSError` exception will occur. If no architecture is specified, then GEF will attempt to determine automatically based on the current ELF target. If this fails, an `OSError` exception will occur. """ global gef arches = __registered_architectures__ # check if the architecture is forced by parameter if arch: try: gef.arch = arches[arch.lower()]() gef.arch_reason = "The architecture has been set manually" except KeyError: raise OSError(f"Specified arch {arch.upper()} is not supported") return # check for bin running if is_alive(): gdb_arch = gdb.selected_frame().architecture().name() preciser_arch = next((a for a in arches.values() if a.supports_gdb_arch(gdb_arch)), None) if preciser_arch: gef.arch = preciser_arch() gef.arch_reason = "The architecture has been detected by GDB" return # last resort, use the info from elf header to find it from the known architectures if gef.binary and isinstance(gef.binary, Elf): try: gef.arch = arches[gef.binary.e_machine]() gef.arch_reason = "The architecture has been detected via the ELF headers" except KeyError: raise OSError(f"CPU type is currently not supported: {gef.binary.e_machine}") return warn("Did not find any way to guess the correct architecture :(") @lru_cache() def cached_lookup_type(_type: str) -> gdb.Type | None: try: return gdb.lookup_type(_type).strip_typedefs() except RuntimeError: return None @deprecated("Use `gef.arch.ptrsize` instead") def get_memory_alignment(in_bits: bool = False) -> int: """Try to determine the size of a pointer on this system. First, try to parse it out of the ELF header. Next, use the size of `size_t`. Finally, try the size of $pc. If `in_bits` is set to True, the result is returned in bits, otherwise in bytes.""" res = cached_lookup_type("size_t") if res is not None: return res.sizeof if not in_bits else res.sizeof * 8 try: return gdb.parse_and_eval("$pc").type.sizeof except Exception: pass raise OSError("GEF is running under an unsupported mode") def clear_screen(tty: str = "") -> None: """Clear the screen.""" clean_sequence = "\x1b[H\x1b[J" if tty: pathlib.Path(tty).write_text(clean_sequence) else: sys.stdout.write(clean_sequence) return def format_address(addr: int) -> str: """Format the address according to its size.""" memalign_size = gef.arch.ptrsize addr = align_address(addr) return f"0x{addr:016x}" if memalign_size == 8 else f"0x{addr:08x}" def format_address_spaces(addr: int, left: bool = True) -> str: """Format the address according to its size, but with spaces instead of zeroes.""" width = gef.arch.ptrsize * 2 + 2 addr = align_address(addr) if not left: return f"{addr:#x}".rjust(width) return f"{addr:#x}".ljust(width) def align_address(address: int) -> int: """Align the provided address to the process's native length.""" return address & 0xFFFFFFFFFFFFFFFF if gef.arch.ptrsize == 8 else address & 0xFFFFFFFF def align_address_to_size(address: int, align: int) -> int: """Align the address to the given size.""" return address + ((align - (address % align)) % align) def align_address_to_page(address: int) -> int: """Align the address to a page.""" a = align_address(address) >> DEFAULT_PAGE_ALIGN_SHIFT return a << DEFAULT_PAGE_ALIGN_SHIFT def parse_address(address: str) -> int: """Parse an address and return it as an Integer.""" if is_hex(address): return int(address, 16) return int(gdb.parse_and_eval(address)) def is_in_x86_kernel(address: int) -> bool: address = align_address(address) memalign = gef.arch.ptrsize*8 - 1 return (address >> memalign) == 0xF def is_remote_debug() -> bool: """"Return True is the current debugging session is running through GDB remote session.""" return gef.session.remote_initializing or gef.session.remote is not None def de_bruijn(alphabet: bytes, n: int) -> Generator[int, None, None]: """De Bruijn sequence for alphabet and subsequences of length n (for compat. w/ pwnlib).""" k = len(alphabet) a = [0] * k * n def db(t: int, p: int) -> Generator[int, None, None]: if t > n: if n % p == 0: for j in range(1, p + 1): yield alphabet[a[j]] else: a[t] = a[t - p] yield from db(t + 1, p) for j in range(a[t - p] + 1, k): a[t] = j yield from db(t + 1, t) return db(1, 1) def generate_cyclic_pattern(length: int, cycle: int = 4) -> bytearray: """Create a `length` byte bytearray of a de Bruijn cyclic pattern.""" charset = bytearray(b"abcdefghijklmnopqrstuvwxyz") return bytearray(itertools.islice(de_bruijn(charset, cycle), length)) def safe_parse_and_eval(value: str) -> "gdb.Value | None": """GEF wrapper for gdb.parse_and_eval(): this function returns None instead of raising gdb.error if the eval failed.""" try: return gdb.parse_and_eval(value) except gdb.error as e: dbg(f"gdb.parse_and_eval() failed, reason: {str(e)}") return None @lru_cache() def dereference(addr: int) -> "gdb.Value | None": """GEF wrapper for gdb dereference function.""" try: ulong_t = cached_lookup_type(use_stdtype()) or \ cached_lookup_type(use_default_type()) or \ cached_lookup_type(use_golang_type()) or \ cached_lookup_type(use_rust_type()) if not ulong_t: raise gdb.MemoryError("Failed to determine unsigned long type") unsigned_long_type = ulong_t.pointer() res = gdb.Value(addr).cast(unsigned_long_type).dereference() # GDB does lazy fetch by default so we need to force access to the value res.fetch_lazy() return res except gdb.MemoryError as e: dbg(str(e)) return None def gef_convenience(value: str | bytes) -> str: """Defines a new convenience value.""" global gef var_name = f"$_gef{gef.session.convenience_vars_index:d}" gef.session.convenience_vars_index += 1 if isinstance(value, str): gdb.execute(f"""set {var_name} = "{value}" """) elif isinstance(value, bytes): value_as_array = "{" + ", ".join([f"0x{b:02x}" for b in value]) + "}" gdb.execute(f"""set {var_name} = {value_as_array} """) else: raise TypeError return var_name def parse_string_range(s: str) -> Iterator[int]: """Parses an address range (e.g. 0x400000-0x401000)""" addrs = s.split("-") return map(lambda x: int(x, 16), addrs) @lru_cache() def is_syscall(instruction: Instruction | int) -> bool: """Checks whether an instruction or address points to a system call.""" if isinstance(instruction, int): instruction = gef_current_instruction(instruction) insn_str = instruction.mnemonic if len(instruction.operands): insn_str += f" {', '.join(instruction.operands)}" return insn_str in gef.arch.syscall_instructions # # Deprecated API # @deprecated("Use `gef.session.pie_breakpoints[num]`") def gef_get_pie_breakpoint(num: int) -> "PieVirtualBreakpoint": return gef.session.pie_breakpoints[num] @deprecated("Use `str(gef.arch.endianness)` instead") def endian_str() -> str: return str(gef.arch.endianness) @deprecated("Use `gef.config[key]`") def get_gef_setting(name: str) -> Any: return gef.config[name] @deprecated("Use `gef.config[key] = value`") def set_gef_setting(name: str, value: Any) -> None: gef.config[name] = value return @deprecated("Use `gef.session.pagesize`") def gef_getpagesize() -> int: return gef.session.pagesize @deprecated("Use `gef.session.canary`") def gef_read_canary() -> tuple[int, int] | None: return gef.session.canary @deprecated("Use `gef.session.pid`") def get_pid() -> int: return gef.session.pid @deprecated("Use `gef.session.file.name`") def get_filename() -> str: assert gef.session.file return gef.session.file.name @deprecated("Use `gef.heap.main_arena`") def get_glibc_arena() -> GlibcArena | None: return gef.heap.main_arena @deprecated("Use `gef.arch.register(regname)`") def get_register(regname) -> int | None: return gef.arch.register(regname) @deprecated("Use `gef.memory.maps`") def get_process_maps() -> list[Section]: return gef.memory.maps @deprecated("Use `reset_architecture`") def set_arch(arch: str | None = None, _: str | None = None) -> None: return reset_architecture(arch) # # GDB event hooking # @only_if_events_supported("cont") def gef_on_continue_hook(func: Callable[["gdb.ContinueEvent"], None]) -> None: gdb.events.cont.connect(func) @only_if_events_supported("cont") def gef_on_continue_unhook(func: Callable[["gdb.ThreadEvent"], None]) -> None: gdb.events.cont.disconnect(func) @only_if_events_supported("stop") def gef_on_stop_hook(func: Callable[["gdb.StopEvent"], None]) -> None: gdb.events.stop.connect(func) @only_if_events_supported("stop") def gef_on_stop_unhook(func: Callable[["gdb.StopEvent"], None]) -> None: gdb.events.stop.disconnect(func) @only_if_events_supported("exited") def gef_on_exit_hook(func: Callable[["gdb.ExitedEvent"], None]) -> None: gdb.events.exited.connect(func) @only_if_events_supported("exited") def gef_on_exit_unhook(func: Callable[["gdb.ExitedEvent"], None]) -> None: gdb.events.exited.disconnect(func) @only_if_events_supported("new_objfile") def gef_on_new_hook(func: Callable[["gdb.NewObjFileEvent"], None]) -> None: gdb.events.new_objfile.connect(func) @only_if_events_supported("new_objfile") def gef_on_new_unhook(func: Callable[["gdb.NewObjFileEvent"], None]) -> None: gdb.events.new_objfile.disconnect(func) @only_if_events_supported("clear_objfiles") def gef_on_unload_objfile_hook(func: Callable[["gdb.ClearObjFilesEvent"], None]) -> None: gdb.events.clear_objfiles.connect(func) @only_if_events_supported("clear_objfiles") def gef_on_unload_objfile_unhook(func: Callable[["gdb.ClearObjFilesEvent"], None]) -> None: gdb.events.clear_objfiles.disconnect(func) @only_if_events_supported("memory_changed") def gef_on_memchanged_hook(func: Callable[["gdb.MemoryChangedEvent"], None]) -> None: gdb.events.memory_changed.connect(func) @only_if_events_supported("memory_changed") def gef_on_memchanged_unhook(func: Callable[["gdb.MemoryChangedEvent"], None]) -> None: gdb.events.memory_changed.disconnect(func) @only_if_events_supported("register_changed") def gef_on_regchanged_hook(func: Callable[["gdb.RegisterChangedEvent"], None]) -> None: gdb.events.register_changed.connect(func) @only_if_events_supported("register_changed") def gef_on_regchanged_unhook(func: Callable[["gdb.RegisterChangedEvent"], None]) -> None: gdb.events.register_changed.disconnect(func) # # Virtual breakpoints # class PieVirtualBreakpoint: """PIE virtual breakpoint (not real breakpoint).""" def __init__(self, set_func: Callable[[int], str], vbp_num: int, addr: int) -> None: # set_func(base): given a base address return a # "set breakpoint" gdb command string self.set_func = set_func self.vbp_num = vbp_num # breakpoint num, 0 represents not instantiated yet self.bp_num = 0 self.bp_addr = 0 # this address might be a symbol, just to know where to break if isinstance(addr, int): self.addr: int | str = hex(addr) else: self.addr = addr return def instantiate(self, base: int) -> None: if self.bp_num: self.destroy() try: res = gdb.execute(self.set_func(base), to_string=True) or "" if not res: return except gdb.error as e: err(str(e)) return if "Breakpoint" not in res: err(res) return res_list = res.split() self.bp_num = res_list[1] self.bp_addr = res_list[3] return def destroy(self) -> None: if not self.bp_num: err("Destroy PIE breakpoint not even set") return gdb.execute(f"delete {self.bp_num}") self.bp_num = 0 return # # Breakpoints # class FormatStringBreakpoint(gdb.Breakpoint): """Inspect stack for format string.""" def __init__(self, spec: str, num_args: int) -> None: super().__init__(spec, type=gdb.BP_BREAKPOINT, internal=False) self.num_args = num_args self.enabled = True return def stop(self) -> bool: reset_all_caches() msg = [] ptr, addr = gef.arch.get_ith_parameter(self.num_args) addr = lookup_address(addr) if not addr.valid: return False if addr.section.is_writable(): content = gef.memory.read_cstring(addr.value) name = addr.info.name if addr.info else addr.section.path msg.append(Color.colorify("Format string helper", "yellow bold")) msg.append(f"Possible insecure format string: {self.location}('{ptr}' {RIGHT_ARROW} {addr.value:#x}: '{content}')") msg.append(f"Reason: Call to '{self.location}()' with format string argument in position " f"#{self.num_args:d} is in page {addr.section.page_start:#x} ({name}) that has write permission") push_context_message("warn", "\n".join(msg)) return True return False class StubBreakpoint(gdb.Breakpoint): """Create a breakpoint to permanently disable a call (fork/alarm/signal/etc.).""" def __init__(self, func: str, retval: int | None) -> None: super().__init__(func, gdb.BP_BREAKPOINT, internal=False) self.func = func self.retval = retval m = f"All calls to '{self.func}' will be skipped" if self.retval is not None: m += f" (with return value set to {self.retval:#x})" info(m) return def stop(self) -> bool: size = "long" if gef.arch.ptrsize == 8 else "int" gdb.execute(f"return (unsigned {size}){self.retval:#x}") ok(f"Ignoring call to '{self.func}' " f"(setting return value to {self.retval:#x})") return False class ChangePermissionBreakpoint(gdb.Breakpoint): """When hit, this temporary breakpoint will restore the original code, and position $pc correctly.""" def __init__(self, loc: str, code: ByteString, pc: int) -> None: super().__init__(loc, gdb.BP_BREAKPOINT, internal=False) self.original_code = code self.original_pc = pc return def stop(self) -> bool: info("Restoring original context") gef.memory.write(self.original_pc, self.original_code, len(self.original_code)) info("Restoring $pc") gdb.execute(f"set $pc = {self.original_pc:#x}") return True class TraceMallocBreakpoint(gdb.Breakpoint): """Track allocations done with malloc() or calloc().""" def __init__(self, name: str) -> None: super().__init__(name, gdb.BP_BREAKPOINT, internal=True) self.silent = True self.name = name return def stop(self) -> bool: reset_all_caches() _, size = gef.arch.get_ith_parameter(0) assert size self.retbp = TraceMallocRetBreakpoint(size, self.name) return False class TraceMallocRetBreakpoint(gdb.FinishBreakpoint): """Internal temporary breakpoint to retrieve the return value of malloc().""" def __init__(self, size: int, name: str) -> None: super().__init__(gdb.newest_frame(), internal=True) self.size = size self.name = name self.silent = True return def stop(self) -> bool: if self.return_value: loc = int(self.return_value) else: loc = parse_address(gef.arch.return_register) size = self.size ok(f"{Color.colorify('Heap-Analysis', 'yellow bold')} - {self.name}({size})={loc:#x}") check_heap_overlap = gef.config["heap-analysis-helper.check_heap_overlap"] # pop from free-ed list if it was in it if gef.session.heap_freed_chunks: idx = 0 for item in gef.session.heap_freed_chunks: addr = item[0] if addr == loc: gef.session.heap_freed_chunks.remove(item) continue idx += 1 # pop from uaf watchlist if gef.session.heap_uaf_watchpoints: idx = 0 for wp in gef.session.heap_uaf_watchpoints: wp_addr = wp.address if loc <= wp_addr < loc + size: gef.session.heap_uaf_watchpoints.remove(wp) wp.enabled = False continue idx += 1 item = (loc, size) if check_heap_overlap: # seek all the currently allocated chunks, read their effective size and check for overlap msg = [] align = gef.arch.ptrsize for chunk_addr, _ in gef.session.heap_allocated_chunks: current_chunk = GlibcChunk(chunk_addr) current_chunk_size = current_chunk.size if chunk_addr <= loc < chunk_addr + current_chunk_size: offset = loc - chunk_addr - 2*align if offset < 0: continue # false positive, discard msg.append(Color.colorify("Heap-Analysis", "yellow bold")) msg.append("Possible heap overlap detected") msg.append(f"Reason {RIGHT_ARROW} new allocated chunk {loc:#x} (of size {size:d}) overlaps in-used chunk {chunk_addr:#x} (of size {current_chunk_size:#x})") msg.append(f"Writing {offset:d} bytes from {chunk_addr:#x} will reach chunk {loc:#x}") msg.append(f"Payload example for chunk {chunk_addr:#x} (to overwrite {loc:#x} headers):") msg.append(f" data = 'A'*{offset:d} + 'B'*{align:d} + 'C'*{align:d}") push_context_message("warn", "\n".join(msg)) return True # add it to alloc-ed list gef.session.heap_allocated_chunks.append(item) return False class TraceReallocBreakpoint(gdb.Breakpoint): """Track re-allocations done with realloc().""" def __init__(self) -> None: super().__init__("__libc_realloc", gdb.BP_BREAKPOINT, internal=True) self.silent = True return def stop(self) -> bool: _, ptr = gef.arch.get_ith_parameter(0) _, size = gef.arch.get_ith_parameter(1) assert ptr is not None and size is not None self.retbp = TraceReallocRetBreakpoint(ptr, size) return False class TraceReallocRetBreakpoint(gdb.FinishBreakpoint): """Internal temporary breakpoint to retrieve the return value of realloc().""" def __init__(self, ptr: int, size: int) -> None: super().__init__(gdb.newest_frame(), internal=True) self.ptr = ptr self.size = size self.silent = True return def stop(self) -> bool: if self.return_value: newloc = int(self.return_value) else: newloc = parse_address(gef.arch.return_register) title = Color.colorify("Heap-Analysis", "yellow bold") if newloc != self: loc = Color.colorify(f"{newloc:#x}", "green") ok(f"{title} - realloc({self.ptr:#x}, {self.size})={loc}") else: loc = Color.colorify(f"{newloc:#x}", "red") ok(f"{title} - realloc({self.ptr:#x}, {self.size})={loc}") item = (newloc, self.size) try: # check if item was in alloc-ed list idx = [x for x, y in gef.session.heap_allocated_chunks].index(self.ptr) # if so pop it out item = gef.session.heap_allocated_chunks.pop(idx) except ValueError: if is_debug(): warn(f"Chunk {self.ptr:#x} was not in tracking list") finally: # add new item to alloc-ed list gef.session.heap_allocated_chunks.append(item) return False class TraceFreeBreakpoint(gdb.Breakpoint): """Track calls to free() and attempts to detect inconsistencies.""" def __init__(self) -> None: super().__init__("__libc_free", gdb.BP_BREAKPOINT, internal=True) self.silent = True return def stop(self) -> bool: reset_all_caches() _, addr = gef.arch.get_ith_parameter(0) msg = [] check_free_null = gef.config["heap-analysis-helper.check_free_null"] check_double_free = gef.config["heap-analysis-helper.check_double_free"] check_weird_free = gef.config["heap-analysis-helper.check_weird_free"] check_uaf = gef.config["heap-analysis-helper.check_uaf"] ok(f"{Color.colorify('Heap-Analysis', 'yellow bold')} - free({addr:#x})") if not addr: if check_free_null: msg.append(Color.colorify("Heap-Analysis", "yellow bold")) msg.append(f"Attempting to free(NULL) at {gef.arch.pc:#x}") msg.append("Reason: if NULL page is allocatable, this can lead to code execution.") push_context_message("warn", "\n".join(msg)) return True return False if addr in [x for (x, _) in gef.session.heap_freed_chunks]: if check_double_free: msg.append(Color.colorify("Heap-Analysis", "yellow bold")) msg.append(f"Double-free detected {RIGHT_ARROW} free({addr:#x}) is called at {gef.arch.pc:#x} but is already in the free-ed list") msg.append("Execution will likely crash...") push_context_message("warn", "\n".join(msg)) return True return False # if here, no error # 1. move alloc-ed item to free list try: # pop from alloc-ed list idx = [x for x, y in gef.session.heap_allocated_chunks].index(addr) item = gef.session.heap_allocated_chunks.pop(idx) except ValueError: if check_weird_free: msg.append(Color.colorify("Heap-Analysis", "yellow bold")) msg.append("Heap inconsistency detected:") msg.append(f"Attempting to free an unknown value: {addr:#x}") push_context_message("warn", "\n".join(msg)) return True return False # 2. add it to free-ed list gef.session.heap_freed_chunks.append(item) self.retbp = None if check_uaf: # 3. (opt.) add a watchpoint on pointer self.retbp = TraceFreeRetBreakpoint(addr) return False class TraceFreeRetBreakpoint(gdb.FinishBreakpoint): """Internal temporary breakpoint to track free()d values.""" def __init__(self, addr: int) -> None: super().__init__(gdb.newest_frame(), internal=True) self.silent = True self.addr = addr return def stop(self) -> bool: reset_all_caches() wp = UafWatchpoint(self.addr) gef.session.heap_uaf_watchpoints.append(wp) return False class UafWatchpoint(gdb.Breakpoint): """Custom watchpoints set TraceFreeBreakpoint() to monitor free()d pointers being used.""" def __init__(self, addr: int) -> None: super().__init__(f"*{addr:#x}", gdb.BP_WATCHPOINT, internal=True) self.address = addr self.silent = True self.enabled = True return def stop(self) -> bool: """If this method is triggered, we likely have a UaF. Break the execution and report it.""" reset_all_caches() frame = gdb.selected_frame() if frame.name() in ("_int_malloc", "malloc_consolidate", "__libc_calloc", ): return False # software watchpoints stop after the next statement (see # https://sourceware.org/gdb/onlinedocs/gdb/Set-Watchpoints.html) pc = gdb_get_nth_previous_instruction_address(gef.arch.pc, 2) assert pc insn = gef_current_instruction(pc) msg = [] msg.append(Color.colorify("Heap-Analysis", "yellow bold")) msg.append(f"Possible Use-after-Free in '{get_filepath()}': " f"pointer {self.address:#x} was freed, but is attempted to be used at {pc:#x}") msg.append(f"{insn.address:#x} {insn.mnemonic} {Color.yellowify(', '.join(insn.operands))}") push_context_message("warn", "\n".join(msg)) return True class EntryBreakBreakpoint(gdb.Breakpoint): """Breakpoint used internally to stop execution at the most convenient entry point.""" def __init__(self, location: str) -> None: super().__init__(location, gdb.BP_BREAKPOINT, internal=True, temporary=True) self.silent = True return def stop(self) -> bool: reset_all_caches() return True class NamedBreakpoint(gdb.Breakpoint): """Breakpoint which shows a specified name, when hit.""" def __init__(self, location: str, name: str) -> None: super().__init__(spec=location, type=gdb.BP_BREAKPOINT, internal=False, temporary=False) self.name = name self.loc = location return def stop(self) -> bool: reset_all_caches() push_context_message("info", f"Hit breakpoint {self.loc} ({Color.colorify(self.name, 'red bold')})") return True class JustSilentStopBreakpoint(gdb.Breakpoint): """When hit, this temporary breakpoint stop the execution.""" def __init__(self, loc: str) -> None: super().__init__(loc, gdb.BP_BREAKPOINT, temporary=True) self.silent = True return # # Context Panes # def register_external_context_pane(pane_name: str, display_pane_function: Callable[[], None], pane_title_function: Callable[[], str | None], condition : Callable[[], bool] | None = None) -> None: """ Registering function for new GEF Context View. pane_name: a string that has no spaces (used in settings) display_pane_function: a function that uses gef_print() to print strings pane_title_function: a function that returns a string or None, which will be displayed as the title. If None, no title line is displayed. condition: an optional callback: if not None, the callback will be executed first. If it returns true, then only the pane title and content will displayed. Otherwise, it's simply skipped. Example usage for a simple text to show when we hit a syscall: def only_syscall(): return gef_current_instruction(gef.arch.pc).is_syscall() def display_pane(): gef_print("Wow, I am a context pane!") def pane_title(): return "example:pane" register_external_context_pane("example_pane", display_pane, pane_title, only_syscall) """ gef.gdb.add_context_pane(pane_name, display_pane_function, pane_title_function, condition) return def register_external_context_layout_mapping(current_pane_name: str, display_pane_function: Callable[[], None], pane_title_function: Callable[[], str | None], condition : Callable[[], bool] | None = None) -> None: gef.gdb.add_context_layout_mapping(current_pane_name, display_pane_function, pane_title_function, condition) return # # Commands # @deprecated("Use `register()`, and inherit from `GenericCommand` instead") def register_external_command(cls: Type["GenericCommand"]) -> Type["GenericCommand"]: """Registering function for new GEF (sub-)command to GDB.""" return cls @deprecated("Use `register()`, and inherit from `GenericCommand` instead") def register_command(cls: Type["GenericCommand"]) -> Type["GenericCommand"]: """Decorator for registering new GEF (sub-)command to GDB.""" return cls @deprecated("") def register_priority_command(cls: Type["GenericCommand"]) -> Type["GenericCommand"]: """Decorator for registering new command with priority, meaning that it must loaded before the other generic commands.""" return cls ValidCommandType = TypeVar("ValidCommandType", bound="GenericCommand") ValidFunctionType = TypeVar("ValidFunctionType", bound="GenericFunction") def register(cls: Type["ValidCommandType"] | Type["ValidFunctionType"]) -> Type["ValidCommandType"] | Type["ValidFunctionType"]: global __registered_commands__, __registered_functions__ if issubclass(cls, GenericCommand): assert hasattr(cls, "_cmdline_") assert hasattr(cls, "do_invoke") if any(map(lambda x: x._cmdline_ == cls._cmdline_, __registered_commands__)): raise AlreadyRegisteredException(cls._cmdline_) __registered_commands__.add(cls) return cls if issubclass(cls, GenericFunction): assert hasattr(cls, "_function_") assert hasattr(cls, "invoke") if any(map(lambda x: x._function_ == cls._function_, __registered_functions__)): raise AlreadyRegisteredException(cls._function_) __registered_functions__.add(cls) return cls raise TypeError(f"`{cls.__class__}` is an illegal class for `register`") class GenericCommand(gdb.Command): """This is an abstract class for invoking commands, should not be instantiated.""" _cmdline_: str _syntax_: str _example_: str | list[str] = "" _aliases_: list[str] = [] def __init_subclass__(cls, **kwargs): super().__init_subclass__(**kwargs) attributes = ("_cmdline_", "_syntax_", ) if not all(map(lambda x: hasattr(cls, x), attributes)): raise NotImplementedError def __init__(self, *args: Any, **kwargs: Any) -> None: self.pre_load() syntax = Color.yellowify("\nSyntax: ") + self._syntax_ example = Color.yellowify("\nExamples: \n\t") if isinstance(self._example_, list): example += "\n\t".join(self._example_) elif isinstance(self._example_, str): example += self._example_ self.__doc__ = (self.__doc__ or "").replace(" "*4, "") + syntax + example self.repeat = False self.repeat_count = 0 self.__last_command = None command_type = kwargs.setdefault("command", gdb.COMMAND_USER) complete_type = kwargs.setdefault("complete", -1) # -1=allow user-defined `complete()` prefix = kwargs.setdefault("prefix", False) super().__init__(name=self._cmdline_, command_class=command_type, completer_class=complete_type, prefix=prefix) self.post_load() return def invoke(self, args: str, from_tty: bool) -> None: try: argv = gdb.string_to_argv(args) self.__set_repeat_count(argv, from_tty) bufferize(self.do_invoke)(argv) except Exception as e: # Note: since we are intercepting cleaning exceptions here, commands preferably should avoid # catching generic Exception, but rather specific ones. This is allows a much cleaner use. if is_debug(): show_last_exception() if gef.config["gef.propagate_debug_exception"] is True: raise else: err(f"Command '{self._cmdline_}' failed to execute properly, reason: {e}") return def usage(self) -> None: err(f"Syntax\n{self._syntax_}") return def do_invoke(self, argv: list[str]) -> None: raise NotImplementedError def pre_load(self) -> None: return def post_load(self) -> None: return def __get_setting_name(self, name: str) -> str: clsname = self.__class__._cmdline_.replace(" ", "-") return f"{clsname}.{name}" def __iter__(self) -> Generator[str, None, None]: for key in gef.config.keys(): if key.startswith(self._cmdline_): yield key.replace(f"{self._cmdline_}.", "", 1) @property def settings(self) -> list[str]: """Return the list of settings for this command.""" return list(iter(self)) @deprecated("Use `self[setting_name]` instead") def get_setting(self, name: str) -> Any: return self.__getitem__(name) def __getitem__(self, name: str) -> Any: key = self.__get_setting_name(name) return gef.config[key] @deprecated("Use `setting_name in self` instead") def has_setting(self, name: str) -> bool: return self.__contains__(name) def __contains__(self, name: str) -> bool: return self.__get_setting_name(name) in gef.config @deprecated("Use `self[setting_name] = value` instead") def add_setting(self, name: str, value: tuple[Any, type, str], description: str = "") -> None: return self.__setitem__(name, (value, description)) def __setitem__(self, name: str, value: "GefSetting | tuple[Any, str]") -> None: # make sure settings are always associated to the root command (which derives from GenericCommand) if "GenericCommand" not in [x.__name__ for x in self.__class__.__bases__]: return key = self.__get_setting_name(name) if key in gef.config: # If the setting already exists, update the entry setting = gef.config.raw_entry(key) setting.value = value return # otherwise create it if isinstance(value, GefSetting): gef.config[key] = value else: if len(value) == 1: gef.config[key] = GefSetting(value[0]) elif len(value) == 2: gef.config[key] = GefSetting(value[0], description=value[1]) return @deprecated("Use `del self[setting_name]` instead") def del_setting(self, name: str) -> None: return self.__delitem__(name) def __delitem__(self, name: str) -> None: del gef.config[self.__get_setting_name(name)] return def __set_repeat_count(self, argv: list[str], from_tty: bool) -> None: if not from_tty: self.repeat = False self.repeat_count = 0 return command = (gdb.execute("show commands", to_string=True) or "").strip().split("\n")[-1] self.repeat = self.__last_command == command self.repeat_count = self.repeat_count + 1 if self.repeat else 0 self.__last_command = command return @register class ArchCommand(GenericCommand): """Manage the current loaded architecture.""" _cmdline_ = "arch" _syntax_ = f"{_cmdline_} (list|get|set) ..." _example_ = f"{_cmdline_} set X86" def __init__(self) -> None: super().__init__(prefix=True) return def do_invoke(self, argv: list[str]) -> None: if not argv: self.usage() return @register class ArchGetCommand(GenericCommand): """Get the current loaded architecture.""" _cmdline_ = "arch get" _syntax_ = f"{_cmdline_}" _example_ = f"{_cmdline_}" def do_invoke(self, args: list[str]) -> None: gef_print(f"{Color.greenify('Arch')}: {gef.arch}") gef_print(f"{Color.greenify('Reason')}: {gef.arch_reason}") @register class ArchSetCommand(GenericCommand): """Set the current loaded architecture.""" _cmdline_ = "arch set" _syntax_ = f"{_cmdline_} " _example_ = f"{_cmdline_} X86" def do_invoke(self, args: list[str]) -> None: reset_architecture(args[0] if args else None) def complete(self, text: str, word: str) -> list[str]: return sorted(x for x in __registered_architectures__.keys() if isinstance(x, str) and x.lower().startswith(text.lower().strip())) @register class ArchListCommand(GenericCommand): """List the available architectures.""" _cmdline_ = "arch list" _syntax_ = f"{_cmdline_}" _example_ = f"{_cmdline_}" def do_invoke(self, args: list[str]) -> None: gef_print(Color.greenify("Available architectures:")) for arch in sorted(set(__registered_architectures__.values()), key=lambda x: x.arch): if arch is GenericArchitecture: continue gef_print(' ' + Color.yellowify(str(arch()))) for alias in arch.aliases: if isinstance(alias, str): gef_print(f" {alias}") @register class VersionCommand(GenericCommand): """Display GEF version info.""" _cmdline_ = "version" _syntax_ = f"{_cmdline_}" _example_ = f"{_cmdline_}" def do_invoke(self, argv: list[str]) -> None: gef_fpath = pathlib.Path(inspect.stack()[0][1]).expanduser().absolute() gef_dir = gef_fpath.parent gef_hash = hashlib.sha256(gef_fpath.read_bytes()).hexdigest() try: git = which("git") except FileNotFoundError: git = None if git: if (gef_dir / ".git").is_dir(): ver = subprocess.check_output("git log --format='%H' -n 1 HEAD", cwd=gef_dir, shell=True).decode("utf8").strip() extra = "dirty" if len(subprocess.check_output("git ls-files -m", cwd=gef_dir, shell=True).decode("utf8").strip()) else "clean" gef_print(f"GEF: rev:{ver} (Git - {extra})") else: gef_blob_hash = subprocess.check_output(f"git hash-object {gef_fpath}", shell=True).decode().strip() gef_print("GEF: (Standalone)") gef_print(f"Blob Hash({gef_fpath}): {gef_blob_hash}") gef_print(f"SHA256({gef_fpath}): {gef_hash}") gef_print(f"GDB: {gdb.VERSION}") py_ver = f"{sys.version_info.major:d}.{sys.version_info.minor:d}" gef_print(f"GDB-Python: {py_ver}") if "full" in argv: gef_print(f"Loaded commands: {', '.join(gef.gdb.loaded_command_names)}") return @register class PrintFormatCommand(GenericCommand): """Print bytes format in commonly used formats, such as literals in high level languages.""" valid_formats = ("py", "c", "js", "asm", "hex", "bytearray") valid_bitness = (8, 16, 32, 64) _cmdline_ = "print-format" _aliases_ = ["pf",] _syntax_ = (f"{_cmdline_} [--lang LANG] [--bitlen SIZE] [(--length,-l) LENGTH] [--clip] LOCATION" f"\t--lang LANG specifies the output format for programming language (available: {valid_formats!s}, default 'py')." f"\t--bitlen SIZE specifies size of bit (possible values: {valid_bitness!s}, default is 8)." "\t--length LENGTH specifies length of array (default is 256)." "\t--clip The output data will be copied to clipboard" "\tLOCATION specifies where the address of bytes is stored.") _example_ = f"{_cmdline_} --lang py -l 16 $rsp" def __init__(self) -> None: super().__init__(complete=gdb.COMPLETE_LOCATION) self["max_size_preview"] = (10, "max size preview of bytes") return @property def format_matrix(self) -> dict[int, tuple[str, str, str]]: # `gef.arch.endianness` is a runtime property, should not be defined as a class property return { 8: (f"{gef.arch.endianness}B", "char", "db"), 16: (f"{gef.arch.endianness}H", "short", "dw"), 32: (f"{gef.arch.endianness}I", "int", "dd"), 64: (f"{gef.arch.endianness}Q", "long long", "dq"), } @only_if_gdb_running @parse_arguments({"location": "$pc", }, {("--length", "-l"): 256, "--bitlen": 0, "--lang": "py", "--clip": False,}) def do_invoke(self, _: list[str], **kwargs: Any) -> None: """Default value for print-format command.""" args: argparse.Namespace = kwargs["arguments"] args.bitlen = args.bitlen or gef.arch.ptrsize * 2 valid_bitlens = self.format_matrix.keys() if args.bitlen not in valid_bitlens: err(f"Size of bit must be in: {valid_bitlens!s}") return if args.lang not in self.valid_formats: err(f"Language must be in: {self.valid_formats!s}") return start_addr = parse_address(args.location) size = int(args.bitlen / 8) end_addr = start_addr + args.length * size fmt = self.format_matrix[args.bitlen][0] data = [] if args.lang != "bytearray": for addr in range(start_addr, end_addr, size): value = struct.unpack(fmt, gef.memory.read(addr, size))[0] data += [value] sdata = ", ".join(map(hex, data)) else: sdata = "" if args.lang == "bytearray": data = gef.memory.read(start_addr, args.length) preview = str(data[0:self["max_size_preview"]]) out = f"Saved data {preview}... in '{gef_convenience(data)}'" elif args.lang == "py": out = f"buf = [{sdata}]" elif args.lang == "c": c_type = self.format_matrix[args.bitlen][1] out = f"unsigned {c_type} buf[{args.length}] = {{{sdata}}};" elif args.lang == "js": out = f"var buf = [{sdata}]" elif args.lang == "asm": asm_type = self.format_matrix[args.bitlen][2] out = f"buf {asm_type} {sdata}" elif args.lang == "hex": out = gef.memory.read(start_addr, end_addr-start_addr).hex() else: raise ValueError(f"Invalid format: {args.lang}") if args.clip: if copy_to_clipboard(gef_pybytes(out)): info("Copied to clipboard") else: warn("There's a problem while copying") gef_print(out) return @register class PieCommand(GenericCommand): """PIE breakpoint support.""" _cmdline_ = "pie" _syntax_ = f"{_cmdline_} (breakpoint|info|delete|run|attach|remote)" def __init__(self) -> None: super().__init__(prefix=True) return def do_invoke(self, argv: list[str]) -> None: if not argv: self.usage() return @register class PieBreakpointCommand(GenericCommand): """Set a PIE breakpoint at an offset from the target binaries base address.""" _cmdline_ = "pie breakpoint" _syntax_ = f"{_cmdline_} OFFSET" @parse_arguments({"offset": ""}, {}) def do_invoke(self, _: list[str], **kwargs: Any) -> None: args : argparse.Namespace = kwargs["arguments"] if not args.offset: self.usage() return addr = parse_address(args.offset) self.set_pie_breakpoint(lambda base: f"b *{base + addr}", addr) # When the process is already on, set real breakpoints immediately if is_alive(): vmmap = gef.memory.maps base_address = [x.page_start for x in vmmap if x.path == get_filepath()][0] for bp_ins in gef.session.pie_breakpoints.values(): bp_ins.instantiate(base_address) return @staticmethod def set_pie_breakpoint(set_func: Callable[[int], str], addr: int) -> None: gef.session.pie_breakpoints[gef.session.pie_counter] = PieVirtualBreakpoint(set_func, gef.session.pie_counter, addr) gef.session.pie_counter += 1 return @register class PieInfoCommand(GenericCommand): """Display breakpoint info.""" _cmdline_ = "pie info" _syntax_ = f"{_cmdline_} BREAKPOINT" @parse_arguments({"breakpoints": [-1,]}, {}) def do_invoke(self, _: list[str], **kwargs: Any) -> None: args : argparse.Namespace = kwargs["arguments"] if args.breakpoints[0] == -1: # No breakpoint info needed bps = gef.session.pie_breakpoints.values() else: bps = [gef.session.pie_breakpoints[x] for x in args.breakpoints if x in gef.session.pie_breakpoints] lines = [f"{'VNum':6s} {'Num':6s} {'Addr':18s}"] lines += [ f"{x.vbp_num:6d} {str(x.bp_num) if x.bp_num else 'N/A':6s} {x.addr:18s}" for x in bps ] gef_print("\n".join(lines)) return @register class PieDeleteCommand(GenericCommand): """Delete a PIE breakpoint.""" _cmdline_ = "pie delete" _syntax_ = f"{_cmdline_} [BREAKPOINT]" @parse_arguments({"breakpoints": [-1,]}, {}) def do_invoke(self, _: list[str], **kwargs: Any) -> None: global gef args : argparse.Namespace = kwargs["arguments"] if args.breakpoints[0] == -1: # no arg, delete all to_delete = list(gef.session.pie_breakpoints.values()) self.delete_bp(to_delete) else: self.delete_bp([gef.session.pie_breakpoints[x] for x in args.breakpoints if x in gef.session.pie_breakpoints]) return @staticmethod def delete_bp(breakpoints: list[PieVirtualBreakpoint]) -> None: global gef for bp in breakpoints: # delete current real breakpoints if exists if bp.bp_num: gdb.execute(f"delete {bp.bp_num}") # delete virtual breakpoints del gef.session.pie_breakpoints[bp.vbp_num] return @register class PieRunCommand(GenericCommand): """Run process with PIE breakpoint support.""" _cmdline_ = "pie run" _syntax_ = _cmdline_ def do_invoke(self, argv: list[str]) -> None: global gef fpath = get_filepath() if not fpath: warn("No executable to debug, use `file` to load a binary") return if not os.access(fpath, os.X_OK): warn(f"The file '{fpath}' is not executable.") return if is_alive(): warn("gdb is already running. Restart process.") # get base address gdb.execute("set stop-on-solib-events 1") hide_context() gdb.execute(f"run {' '.join(argv)}") unhide_context() gdb.execute("set stop-on-solib-events 0") vmmap = gef.memory.maps base_address = [x.page_start for x in vmmap if x.path == get_filepath()][0] info(f"base address {hex(base_address)}") # modify all breakpoints for bp_ins in gef.session.pie_breakpoints.values(): bp_ins.instantiate(base_address) try: gdb.execute("continue") except gdb.error as e: err(str(e)) gdb.execute("kill") return @register class PieAttachCommand(GenericCommand): """Do attach with PIE breakpoint support.""" _cmdline_ = "pie attach" _syntax_ = f"{_cmdline_} PID" def do_invoke(self, argv: list[str]) -> None: try: gdb.execute(f"attach {' '.join(argv)}", to_string=True) except gdb.error as e: err(str(e)) return # after attach, we are stopped so that we can # get base address to modify our breakpoint vmmap = gef.memory.maps base_address = [x.page_start for x in vmmap if x.path == get_filepath()][0] for bp_ins in gef.session.pie_breakpoints.values(): bp_ins.instantiate(base_address) gdb.execute("context") return @register class PieRemoteCommand(GenericCommand): """Attach to a remote connection with PIE breakpoint support.""" _cmdline_ = "pie remote" _syntax_ = f"{_cmdline_} REMOTE" def do_invoke(self, argv: list[str]) -> None: try: gdb.execute(f"gef-remote {' '.join(argv)}") except gdb.error as e: err(str(e)) return # after remote attach, we are stopped so that we can # get base address to modify our breakpoint vmmap = gef.memory.maps base_address = [x.page_start for x in vmmap if x.realpath == get_filepath()][0] for bp_ins in gef.session.pie_breakpoints.values(): bp_ins.instantiate(base_address) gdb.execute("context") return @register class SmartEvalCommand(GenericCommand): """SmartEval: Smart eval (vague approach to mimic WinDBG `?`).""" _cmdline_ = "$" _syntax_ = f"{_cmdline_} EXPR\n{_cmdline_} ADDRESS1 ADDRESS2" _example_ = (f"\n{_cmdline_} $pc+1" f"\n{_cmdline_} 0x00007ffff7a10000 0x00007ffff7bce000") def do_invoke(self, argv: list[str]) -> None: argc = len(argv) if argc == 1: self.evaluate(argv) return if argc == 2: self.distance(argv) return def evaluate(self, expr: list[str]) -> None: def show_as_int(i: int) -> None: off = gef.arch.ptrsize*8 def comp2_x(x: Any) -> str: return f"{(x + (1 << off)) % (1 << off):x}" def comp2_b(x: Any) -> str: return f"{(x + (1 << off)) % (1 << off):b}" try: s_i = comp2_x(res) s_i = s_i.rjust(len(s_i)+1, "0") if len(s_i)%2 else s_i gef_print(f"{i:d}") gef_print("0x" + comp2_x(res)) gef_print("0b" + comp2_b(res)) gef_print(f"{binascii.unhexlify(s_i)}") gef_print(f"{binascii.unhexlify(s_i)[::-1]}") except Exception: pass return parsed_expr = [] for xp in expr: try: xp = gdb.parse_and_eval(xp) xp = int(xp) parsed_expr.append(f"{xp:d}") except gdb.error: parsed_expr.append(str(xp)) try: res = eval(" ".join(parsed_expr)) if isinstance(res, int): show_as_int(res) else: gef_print(f"{res}") except SyntaxError: gef_print(" ".join(parsed_expr)) return def distance(self, args: list[str]) -> None: try: x = int(args[0], 16) if is_hex(args[0]) else int(args[0]) y = int(args[1], 16) if is_hex(args[1]) else int(args[1]) gef_print(f"{abs(x - y)}") except ValueError: warn(f"Distance requires 2 numbers: {self._cmdline_} 0 0xffff") return @register class CanaryCommand(GenericCommand): """Shows the canary value of the current process.""" _cmdline_ = "canary" _syntax_ = _cmdline_ @only_if_gdb_running def do_invoke(self, argv: list[str]) -> None: self.dont_repeat() fname = get_filepath() assert fname has_canary = Elf(fname).checksec["Canary"] if not has_canary: warn("This binary was not compiled with SSP.") return res = gef.session.canary if not res: err("Failed to get the canary") return canary, location = res info(f"The canary of process {gef.session.pid} is at {location:#x}, value is {canary:#x}") return @register class ProcessStatusCommand(GenericCommand): """Extends the info given by GDB `info proc`, by giving an exhaustive description of the process status (file descriptors, ancestor, descendants, etc.).""" _cmdline_ = "process-status" _syntax_ = _cmdline_ _aliases_ = ["status", ] def __init__(self) -> None: super().__init__(complete=gdb.COMPLETE_NONE) return @only_if_gdb_running @only_if_gdb_target_local def do_invoke(self, argv: list[str]) -> None: self.show_info_proc() self.show_ancestor() self.show_descendants() self.show_fds() self.show_connections() return def get_state_of(self, pid: int) -> dict[str, str]: res = {} with open(f"/proc/{pid}/status", "r") as f: file = f.readlines() for line in file: key, value = line.split(":", 1) res[key.strip()] = value.strip() return res def get_cmdline_of(self, pid: int) -> str: with open(f"/proc/{pid}/cmdline", "r") as f: return f.read().replace("\x00", "\x20").strip() def get_process_path_of(self, pid: int) -> str: return os.readlink(f"/proc/{pid}/exe") def get_children_pids(self, pid: int) -> list[int]: cmd = [gef.session.constants["ps"], "-o", "pid", "--ppid", f"{pid}", "--noheaders"] try: return [int(x) for x in gef_execute_external(cmd, as_list=True)] except Exception: return [] def show_info_proc(self) -> None: info("Process Information") pid = gef.session.pid cmdline = self.get_cmdline_of(pid) gef_print(f"\tPID {RIGHT_ARROW} {pid}", f"\tExecutable {RIGHT_ARROW} {self.get_process_path_of(pid)}", f"\tCommand line {RIGHT_ARROW} '{cmdline}'", sep="\n") return def show_ancestor(self) -> None: info("Parent Process Information") ppid = int(self.get_state_of(gef.session.pid)["PPid"]) state = self.get_state_of(ppid) cmdline = self.get_cmdline_of(ppid) gef_print(f"\tParent PID {RIGHT_ARROW} {state['Pid']}", f"\tCommand line {RIGHT_ARROW} '{cmdline}'", sep="\n") return def show_descendants(self) -> None: info("Children Process Information") children = self.get_children_pids(gef.session.pid) if not children: gef_print("\tNo child process") return for child_pid in children: state = self.get_state_of(child_pid) pid = int(state["Pid"]) gef_print(f"\tPID {RIGHT_ARROW} {pid} (Name: '{self.get_process_path_of(pid)}'," f" CmdLine: '{self.get_cmdline_of(pid)}')") return def show_fds(self) -> None: pid = gef.session.pid path = f"/proc/{pid:d}/fd" info("File Descriptors:") items = os.listdir(path) if not items: gef_print("\tNo FD opened") return for fname in items: fullpath = os.path.join(path, fname) if os.path.islink(fullpath): gef_print(f"\t{fullpath} {RIGHT_ARROW} {os.readlink(fullpath)}") return def list_sockets(self, pid: int) -> list[int]: sockets = [] path = f"/proc/{pid:d}/fd" items = os.listdir(path) for fname in items: fullpath = os.path.join(path, fname) if os.path.islink(fullpath) and os.readlink(fullpath).startswith("socket:"): p = os.readlink(fullpath).replace("socket:", "")[1:-1] sockets.append(int(p)) return sockets def parse_ip_port(self, addr: str) -> tuple[str, int]: ip, port = addr.split(":") return socket.inet_ntoa(struct.pack(" None: # https://github.com/torvalds/linux/blob/v4.7/include/net/tcp_states.h#L16 tcp_states_str = { 0x01: "TCP_ESTABLISHED", 0x02: "TCP_SYN_SENT", 0x03: "TCP_SYN_RECV", 0x04: "TCP_FIN_WAIT1", 0x05: "TCP_FIN_WAIT2", 0x06: "TCP_TIME_WAIT", 0x07: "TCP_CLOSE", 0x08: "TCP_CLOSE_WAIT", 0x09: "TCP_LAST_ACK", 0x0A: "TCP_LISTEN", 0x0B: "TCP_CLOSING", 0x0C: "TCP_NEW_SYN_RECV", } udp_states_str = { 0x07: "UDP_LISTEN", } info("Network Connections") pid = gef.session.pid sockets = self.list_sockets(pid) if not sockets: gef_print("\tNo open connections") return entries = dict() with open(f"/proc/{pid:d}/net/tcp", "r") as tcp: entries["TCP"] = [x.split() for x in tcp.readlines()[1:]] with open(f"/proc/{pid:d}/net/udp", "r") as udp: entries["UDP"] = [x.split() for x in udp.readlines()[1:]] for proto in entries: for entry in entries[proto]: local, remote, state = entry[1:4] inode = int(entry[9]) if inode in sockets: local = self.parse_ip_port(local) remote = self.parse_ip_port(remote) state = int(state, 16) state_str = tcp_states_str[state] if proto == "TCP" else udp_states_str[state] gef_print(f"\t{local[0]}:{local[1]} {RIGHT_ARROW} {remote[0]}:{remote[1]} ({state_str})") return @register class GefThemeCommand(GenericCommand): """Customize GEF appearance.""" _cmdline_ = "theme" _syntax_ = f"{_cmdline_} [KEY [VALUE]]" _example_ = (f"{_cmdline_} address_stack green") def __init__(self) -> None: super().__init__(self._cmdline_) self["context_title_line"] = ("gray", "Color of the borders in context window") self["context_title_message"] = ("cyan", "Color of the title in context window") self["default_title_line"] = ("gray", "Default color of borders") self["default_title_message"] = ("cyan", "Default color of title") self["table_heading"] = ("blue", "Color of the column headings to tables (e.g. vmmap)") self["old_context"] = ("gray", "Color to use to show things such as code that is not immediately relevant") self["disassemble_current_instruction"] = ("green", "Color to use to highlight the current $pc when disassembling") self["dereference_string"] = ("yellow", "Color of dereferenced string") self["dereference_code"] = ("gray", "Color of dereferenced code") self["dereference_base_address"] = ("cyan", "Color of dereferenced address") self["dereference_register_value"] = ("bold blue", "Color of dereferenced register") self["registers_register_name"] = ("blue", "Color of the register name in the register window") self["registers_value_changed"] = ("bold red", "Color of the changed register in the register window") self["address_stack"] = ("pink", "Color to use when a stack address is found") self["address_heap"] = ("green", "Color to use when a heap address is found") self["address_code"] = ("red", "Color to use when a code address is found") self["source_current_line"] = ("green", "Color to use for the current code line in the source window") return def do_invoke(self, args: list[str]) -> None: self.dont_repeat() argc = len(args) if argc == 0: for key in self.settings: setting = self[key] value = Color.colorify(setting, setting) gef_print(f"{key:40s}: {value}") return setting_name = args[0] if setting_name not in self: err("Invalid key") return if argc == 1: value = self[setting_name] gef_print(f"{setting_name:40s}: {Color.colorify(value, value)}") return colors = (color for color in args[1:] if color in Color.colors) self[setting_name] = " ".join(colors) # type: ignore // this is valid since we overwrote __setitem__() class ExternalStructureManager: class Structure: def __init__(self, manager: "ExternalStructureManager", mod_path: pathlib.Path, struct_name: str) -> None: self.manager = manager self.module_path = mod_path self.name = struct_name self.class_type = self.__get_structure_class() # if the symbol points to a class factory method and not a class if not hasattr(self.class_type, "_fields_") and callable(self.class_type): self.class_type = self.class_type(gef) return def __str__(self) -> str: return self.name def pprint(self) -> None: res: list[str] = [] for _name, _type in self.class_type._fields_: # type: ignore size = ctypes.sizeof(_type) name = Color.colorify(_name, gef.config["pcustom.structure_name"]) type = Color.colorify(_type.__name__, gef.config["pcustom.structure_type"]) size = Color.colorify(hex(size), gef.config["pcustom.structure_size"]) offset = Color.boldify(f"{getattr(self.class_type, _name).offset:04x}") res.append(f"{offset} {name:32s} {type:16s} /* size={size} */") gef_print("\n".join(res)) return def __get_structure_class(self) -> Type[ctypes.Structure]: """Returns a tuple of (class, instance) if modname!classname exists""" fpath = self.module_path spec = importlib.util.spec_from_file_location(fpath.stem, fpath) assert spec and spec.loader, "Failed to determine module specification" module = importlib.util.module_from_spec(spec) sys.modules[fpath.stem] = module spec.loader.exec_module(module) _class = getattr(module, self.name) return _class def apply_at(self, address: int, max_depth: int, depth: int = 0) -> None: """Apply (recursively if possible) the structure format to the given address.""" if depth >= max_depth: warn("maximum recursion level reached") return # read the data at the specified address assert isinstance(self.class_type, type) _structure = self.class_type() _sizeof_structure = ctypes.sizeof(_structure) try: data = gef.memory.read(address, _sizeof_structure) except gdb.MemoryError: err(f"{' ' * depth}Cannot read memory {address:#x}") return # deserialize the data length = min(len(data), _sizeof_structure) ctypes.memmove(ctypes.addressof(_structure), data, length) # pretty print all the fields (and call recursively if possible) ptrsize = gef.arch.ptrsize unpack = u32 if ptrsize == 4 else u64 for field in _structure._fields_: assert len(field) == 2 _name, _type = field _value = getattr(_structure, _name) _offset = getattr(self.class_type, _name).offset if ((ptrsize == 4 and _type is ctypes.c_uint32) or (ptrsize == 8 and _type is ctypes.c_uint64) or (ptrsize == ctypes.sizeof(ctypes.c_void_p) and _type is ctypes.c_void_p)): # try to dereference pointers _value = RIGHT_ARROW.join(dereference_from(_value)) line = f"{' ' * depth}" line += f"{address:#x}+{_offset:#04x} {_name} : ".ljust(40) line += f"{_value} ({_type.__name__})" parsed_value = self.__get_ctypes_value(_structure, _name, _value) if parsed_value: line += f"{RIGHT_ARROW} {parsed_value}" gef_print(line) if issubclass(_type, ctypes.Structure): self.apply_at(address + _offset, max_depth, depth + 1) elif _type.__name__.startswith("LP_"): # Pointer to a structure of a different type __sub_type_name = _type.__name__.lstrip("LP_") result = self.manager.find(__sub_type_name) if result: _, __structure = result __address = unpack(gef.memory.read(address + _offset, ptrsize)) __structure.apply_at(__address, max_depth, depth + 1) return def __get_ctypes_value(self, struct, item, value) -> str: if not hasattr(struct, "_values_"): return "" default = "" for name, values in struct._values_: if name != item: continue if callable(values): return str(values(value)) try: for val, desc in values: if value == val: return desc if val is None: default = desc except Exception as e: err(f"Error parsing '{name}': {e}") return default class Module(dict): def __init__(self, manager: "ExternalStructureManager", path: pathlib.Path) -> None: self.manager = manager self.path = path self.name = path.stem self.raw = self.__load() for entry in self: structure = ExternalStructureManager.Structure(manager, self.path, entry) self[structure.name] = structure return def __load(self) -> ModuleType: """Load a custom module, and return it.""" fpath = self.path spec = importlib.util.spec_from_file_location(fpath.stem, fpath) assert spec and spec.loader module = importlib.util.module_from_spec(spec) sys.modules[fpath.stem] = module spec.loader.exec_module(module) return module def __str__(self) -> str: return self.name def __iter__(self) -> Generator[str, None, None]: _invalid = {"BigEndianStructure", "LittleEndianStructure", "Structure"} for x in dir(self.raw): if x in _invalid: continue _attr = getattr(self.raw, x) # if it's a ctypes.Structure class, add it if inspect.isclass(_attr) and issubclass(_attr, ctypes.Structure): yield x continue # also accept class factory functions if callable(_attr) and _attr.__module__ == self.name and x.endswith("_t"): yield x continue return class Modules(dict): def __init__(self, manager: "ExternalStructureManager") -> None: self.manager: "ExternalStructureManager" = manager self.root: pathlib.Path = manager.path for entry in self.root.iterdir(): if not entry.is_file(): continue if entry.suffix != ".py": continue if entry.name == "__init__.py": continue module = ExternalStructureManager.Module(manager, entry) self[module.name] = module return def __contains__(self, structure_name: str) -> bool: """Return True if the structure name is found in any of the modules""" for module in self.values(): if structure_name in module: return True return False def __init__(self) -> None: self.clear_caches() return def clear_caches(self) -> None: self._path = None self._modules = None return @property def modules(self) -> "ExternalStructureManager.Modules": if not self._modules: self._modules = ExternalStructureManager.Modules(self) return self._modules @property def path(self) -> pathlib.Path: if not self._path: self._path = gef.config["pcustom.struct_path"].expanduser().absolute() return self._path @property def structures(self) -> Generator[tuple["ExternalStructureManager.Module", "ExternalStructureManager.Structure"], None, None]: for module in self.modules.values(): for structure in module.values(): yield module, structure return @lru_cache() def find(self, structure_name: str) -> tuple["ExternalStructureManager.Module", "ExternalStructureManager.Structure"] | None: """Return the module and structure for the given structure name; `None` if the structure name was not found.""" for module in self.modules.values(): if structure_name in module: return module, module[structure_name] return None @register class PCustomCommand(GenericCommand): """Dump user defined structure. This command attempts to reproduce WinDBG awesome `dt` command for GDB and allows to apply structures (from symbols or custom) directly to an address. Custom structures can be defined in pure Python using ctypes, and should be stored in a specific directory, whose path must be stored in the `pcustom.struct_path` configuration setting.""" _cmdline_ = "pcustom" _syntax_ = f"{_cmdline_} [list|edit |show ]| 0xADDRESS]" def __init__(self) -> None: global gef super().__init__(prefix=True) self["max_depth"] = (4, "Maximum level of recursion supported") self["structure_name"] = ("bold blue", "Color of the structure name") self["structure_type"] = ("bold red", "Color of the attribute type") self["structure_size"] = ("green", "Color of the attribute size") gef.config[f"{self._cmdline_}.struct_path"] = GefSetting( gef.config["gef.tempdir"] / "structs", pathlib.Path, "Path to store/load the structure ctypes files", hooks={"on_write": [GefSetting.create_folder_tree,]}) return @parse_arguments({"type": "", "address": ""}, {}) def do_invoke(self, *_: Any, **kwargs: dict[str, Any]) -> None: args = cast(argparse.Namespace, kwargs["arguments"]) if not args.type: gdb.execute("pcustom list") return structname = self.explode_type(args.type)[1] if not args.address: gdb.execute(f"pcustom show {structname}") return if not is_alive(): err("Session is not active") return manager = ExternalStructureManager() address = parse_address(args.address) result = manager.find(structname) if not result: err(f"No structure named '{structname}' found") return structure = result[1] structure.apply_at(address, self["max_depth"]) return def explode_type(self, arg: str) -> tuple[str, str]: modname, structname = arg.split(":", 1) if ":" in arg else (arg, arg) structname = structname.split(".", 1)[0] if "." in structname else structname return modname, structname @register class PCustomListCommand(PCustomCommand): """PCustom: list available structures""" _cmdline_ = "pcustom list" _syntax_ = f"{_cmdline_}" def __init__(self) -> None: super().__init__() return def do_invoke(self, _: list[str]) -> None: """Dump the list of all the structures and their respective.""" manager = ExternalStructureManager() info(f"Listing custom structures from '{manager.path}'") struct_color = gef.config["pcustom.structure_type"] filename_color = gef.config["pcustom.structure_name"] for module in manager.modules.values(): __modules = ", ".join([Color.colorify(str(structure), struct_color) for structure in module.values()]) __filename = Color.colorify(str(module.path), filename_color) gef_print(f"{RIGHT_ARROW} {__filename} ({__modules})") return @register class PCustomShowCommand(PCustomCommand): """PCustom: show the content of a given structure""" _cmdline_ = "pcustom show" _syntax_ = f"{_cmdline_} StructureName" _aliases_ = ["pcustom create", "pcustom update"] def __init__(self) -> None: super().__init__() return def do_invoke(self, argv: list[str]) -> None: if len(argv) == 0: self.usage() return _, structname = self.explode_type(argv[0]) manager = ExternalStructureManager() result = manager.find(structname) if result: _, structure = result structure.pprint() else: err(f"No structure named '{structname}' found") return @register class PCustomEditCommand(PCustomCommand): """PCustom: edit the content of a given structure""" _cmdline_ = "pcustom edit" _syntax_ = f"{_cmdline_} StructureName" __aliases__ = ["pcustom create", "pcustom new", "pcustom update"] def __init__(self) -> None: super().__init__() return def do_invoke(self, argv: list[str]) -> None: if len(argv) == 0: self.usage() return modname, structname = self.explode_type(argv[0]) self.__create_or_edit_structure(modname, structname) return def __create_or_edit_structure(self, mod_name: str, struct_name: str) -> int: path = gef.config["pcustom.struct_path"].expanduser() / f"{mod_name}.py" if path.is_file(): info(f"Editing '{path}'") else: ok(f"Creating '{path}' from template") self.__create_template(struct_name, path) cmd = (os.getenv("EDITOR") or "nano").split() cmd.append(str(path.absolute())) return subprocess.call(cmd) def __create_template(self, structname: str, fpath: pathlib.Path) -> None: template = f"""from ctypes import * class {structname}(Structure): _fields_ = [] _values_ = [] """ with fpath.open("w") as f: f.write(template) return @register class ChangeFdCommand(GenericCommand): """ChangeFdCommand: redirect file descriptor during runtime.""" _cmdline_ = "hijack-fd" _syntax_ = f"{_cmdline_} FD_NUM NEW_OUTPUT" _example_ = f"{_cmdline_} 2 /tmp/stderr_output.txt" @only_if_gdb_running @only_if_gdb_target_local def do_invoke(self, argv: list[str]) -> None: if len(argv) != 2: self.usage() return if not os.access(f"/proc/{gef.session.pid:d}/fd/{argv[0]}", os.R_OK): self.usage() return old_fd = int(argv[0]) new_output = argv[1] if ":" in new_output: address = socket.gethostbyname(new_output.split(":")[0]) port = int(new_output.split(":")[1]) AF_INET = 2 SOCK_STREAM = 1 res = gdb.execute(f"call (int)socket({AF_INET}, {SOCK_STREAM}, 0)", to_string=True) or "" new_fd = self.get_fd_from_result(res) # fill in memory with sockaddr_in struct contents # we will do this in the stack, since connect() wants a pointer to a struct vmmap = gef.memory.maps stack_addr = [entry.page_start for entry in vmmap if entry.path == "[stack]"][0] original_contents = gef.memory.read(stack_addr, 8) gef.memory.write(stack_addr, b"\x02\x00", 2) gef.memory.write(stack_addr + 0x2, struct.pack(" int: # Output example: $1 = 3 res = gdb.execute(f"p/d {int(res.split()[2], 0)}", to_string=True) or "" return int(res.split()[2], 0) @register class ScanSectionCommand(GenericCommand): """Search for addresses that are located in a memory mapping (haystack) that belonging to another (needle).""" _cmdline_ = "scan" _syntax_ = f"{_cmdline_} HAYSTACK NEEDLE" _aliases_ = ["lookup",] _example_ = f"\n{_cmdline_} stack libc" @only_if_gdb_running def do_invoke(self, argv: list[str]) -> None: if len(argv) != 2: self.usage() return haystack = argv[0] needle = argv[1] info(f"Searching for addresses in '{Color.yellowify(haystack)}' " f"that point to '{Color.yellowify(needle)}'") fpath = get_filepath() or "" if haystack == "binary": haystack = fpath if needle == "binary": needle = fpath needle_sections = [] haystack_sections = [] if "0x" in haystack: start, end = parse_string_range(haystack) haystack_sections.append((start, end, "")) if "0x" in needle: start, end = parse_string_range(needle) needle_sections.append((start, end)) for sect in gef.memory.maps: if sect.path is None: continue if haystack in sect.path: haystack_sections.append((sect.page_start, sect.page_end, os.path.basename(sect.path))) if needle in sect.path: needle_sections.append((sect.page_start, sect.page_end)) step = gef.arch.ptrsize unpack = u32 if step == 4 else u64 dereference_cmd = gef.gdb.commands["dereference"] assert isinstance(dereference_cmd, DereferenceCommand) for hstart, hend, hname in haystack_sections: try: mem = gef.memory.read(hstart, hend - hstart) except gdb.MemoryError: continue for i in range(0, len(mem), step): target = unpack(mem[i:i+step]) for nstart, nend in needle_sections: if target >= nstart and target < nend: deref = dereference_cmd.pprint_dereferenced(hstart, int(i / step)) if hname != "": name = Color.colorify(hname, "yellow") gef_print(f"{name}: {deref}") else: gef_print(f" {deref}") return @register class SearchPatternCommand(GenericCommand): """SearchPatternCommand: search a pattern in memory. If given an hex value (starting with 0x) the command will also try to look for upwards cross-references to this address.""" _cmdline_ = "search-pattern" _syntax_ = f"{_cmdline_} PATTERN [little|big] [section]" _aliases_ = ["grep", "xref"] _example_ = [f"{_cmdline_} AAAAAAAA", f"{_cmdline_} 0x555555554000 little stack", f"{_cmdline_} AAAA 0x600000-0x601000", f"{_cmdline_} --regex 0x401000 0x401500 ([\\\\x20-\\\\x7E]{{2,}})(?=\\\\x00) <-- It matches null-end-printable(from x20-x7e) C strings (min size 2 bytes)"] def __init__(self) -> None: super().__init__() self["max_size_preview"] = (10, "max size preview of bytes") self["nr_pages_chunk"] = (0x400, "number of pages readed for each memory read chunk") return def print_section(self, section: Section) -> None: title = "In " if section.path: title += f"'{Color.blueify(section.path)}'" title += f"({section.page_start:#x}-{section.page_end:#x})" title += f", permission={section.permission}" ok(title) return def print_loc(self, loc: tuple[int, int, str]) -> None: gef_print(f""" {loc[0]:#x} - {loc[1]:#x} {RIGHT_ARROW} "{Color.pinkify(loc[2])}" """) return def search_pattern_by_address(self, pattern: str, start_address: int, end_address: int) -> list[tuple[int, int, str]]: """Search a pattern within a range defined by arguments.""" _pattern = gef_pybytes(pattern) step = self["nr_pages_chunk"] * gef.session.pagesize locations = [] for chunk_addr in range(start_address, end_address, step): if chunk_addr + step > end_address: chunk_size = end_address - chunk_addr else: chunk_size = step try: mem = gef.memory.read(chunk_addr, chunk_size) except gdb.MemoryError: return [] for match in re.finditer(_pattern, mem): start = chunk_addr + match.start() ustr = "" if is_ascii_string(start): ustr = gef.memory.read_ascii_string(start) or "" end = start + len(ustr) else: ustr = gef_pystring(_pattern) + "[...]" end = start + len(_pattern) locations.append((start, end, ustr)) del mem return locations def search_binpattern_by_address(self, binpattern: bytes, start_address: int, end_address: int) -> list[tuple[int, int, str]]: """Search a binary pattern within a range defined by arguments.""" step = self["nr_pages_chunk"] * gef.session.pagesize locations = [] for chunk_addr in range(start_address, end_address, step): if chunk_addr + step > end_address: chunk_size = end_address - chunk_addr else: chunk_size = step try: mem = gef.memory.read(chunk_addr, chunk_size) except gdb.MemoryError: return [] preview_size = self["max_size_preview"] preview = "" for match in re.finditer(binpattern, mem): start = chunk_addr + match.start() preview = str(mem[slice(*match.span())][0:preview_size]) + "..." size_match = match.span()[1] - match.span()[0] if size_match > 0: size_match -= 1 end = start + size_match locations.append((start, end, preview)) del mem return locations def search_pattern(self, pattern: str, section_name: str) -> None: """Search a pattern within the whole userland memory.""" for section in gef.memory.maps: if not section.permission & Permission.READ: continue if section.path == "[vvar]": continue if section_name not in section.path: continue start = section.page_start end = section.page_end - 1 old_section = None for loc in self.search_pattern_by_address(pattern, start, end): addr_loc_start = lookup_address(loc[0]) if addr_loc_start and addr_loc_start.section: if old_section != addr_loc_start.section: self.print_section(addr_loc_start.section) old_section = addr_loc_start.section self.print_loc(loc) return @only_if_gdb_running def do_invoke(self, argv: list[str]) -> None: argc = len(argv) if argc < 1: self.usage() return if argc > 3 and argv[0].startswith("--regex"): pattern = ' '.join(argv[3:]) pattern = ast.literal_eval("b'" + pattern + "'") addr_start = parse_address(argv[1]) addr_end = parse_address(argv[2]) for loc in self.search_binpattern_by_address(pattern, addr_start, addr_end): self.print_loc(loc) return pattern = argv[0] endian = gef.arch.endianness if argc >= 2: if argv[1].lower() == "big": endian = Endianness.BIG_ENDIAN elif argv[1].lower() == "little": endian = Endianness.LITTLE_ENDIAN if is_hex(pattern): if endian == Endianness.BIG_ENDIAN: pattern = "".join(["\\x" + pattern[i:i + 2] for i in range(2, len(pattern), 2)]) else: pattern = "".join(["\\x" + pattern[i:i + 2] for i in range(len(pattern) - 2, 0, -2)]) if argc == 3: info(f"Searching '{Color.yellowify(pattern)}' in {argv[2]}") if "0x" in argv[2]: start, end = parse_string_range(argv[2]) loc = lookup_address(start) if loc.valid: self.print_section(loc.section) for loc in self.search_pattern_by_address(pattern, start, end): self.print_loc(loc) else: section_name = argv[2] if section_name == "binary": section_name = get_filepath() or "" self.search_pattern(pattern, section_name) else: info(f"Searching '{Color.yellowify(pattern)}' in memory") self.search_pattern(pattern, "") return @register class FlagsCommand(GenericCommand): """Edit flags in a human friendly way.""" _cmdline_ = "edit-flags" _syntax_ = f"{_cmdline_} [(+|-|~)FLAGNAME ...]" _aliases_ = ["flags",] _example_ = (f"\n{_cmdline_}" f"\n{_cmdline_} +zero # sets ZERO flag") def do_invoke(self, argv: list[str]) -> None: if not gef.arch.flag_register: warn(f"The architecture {gef.arch.arch}:{gef.arch.mode} doesn't have flag register.") return for flag in argv: if len(flag) < 2: continue action = flag[0] name = flag[1:].lower() if action not in ("+", "-", "~"): err(f"Invalid action for flag '{flag}'") continue if name not in gef.arch.flags_table.values(): err(f"Invalid flag name '{flag[1:]}'") continue for off in gef.arch.flags_table: if gef.arch.flags_table[off] != name: continue old_flag = gef.arch.register(gef.arch.flag_register) if action == "+": new_flags = old_flag | (1 << off) elif action == "-": new_flags = old_flag & ~(1 << off) else: new_flags = old_flag ^ (1 << off) gdb.execute(f"set ({gef.arch.flag_register}) = {new_flags:#x}") gef_print(gef.arch.flag_register_to_human()) return @register class RemoteCommand(GenericCommand): """GDB `target remote` command on steroids. This command will use the remote procfs to create a local copy of the execution environment, including the target binary and its libraries in the local temporary directory (the value by default is in `gef.config.tempdir`). Additionally, it will fetch all the /proc/PID/maps and loads all its information. If procfs is not available remotely, the command will likely fail. You can however still use the limited command provided by GDB `target remote`.""" _cmdline_ = "gef-remote" _syntax_ = f"{_cmdline_} [OPTIONS] TARGET" _example_ = [f"{_cmdline_} localhost 1234", f"{_cmdline_} --pid 6789 localhost 1234", f"{_cmdline_} --qemu-user --qemu-binary /bin/debugme localhost 4444 "] def __init__(self) -> None: super().__init__(prefix=False) return @parse_arguments({"host": "", "port": 0}, {"--pid": -1, "--qemu-user": False, "--qemu-binary": ""}) def do_invoke(self, _: list[str], **kwargs: Any) -> None: if gef.session.remote is not None: err("You already are in remote session. Close it first before opening a new one...") return # argument check args : argparse.Namespace = kwargs["arguments"] if not args.host or not args.port: err("Missing parameters") return # qemu-user support qemu_binary: pathlib.Path | None = None if args.qemu_user: try: qemu_binary = pathlib.Path(args.qemu_binary).expanduser().absolute() if args.qemu_binary else gef.session.file if not qemu_binary or not qemu_binary.exists(): raise FileNotFoundError(f"{qemu_binary} does not exist") except Exception as e: err(f"Failed to initialize qemu-user mode, reason: {str(e)}") return # Try to establish the remote session, throw on error # Set `.remote_initializing` to True here - `GefRemoteSessionManager` invokes code which # calls `is_remote_debug` which checks if `remote_initializing` is True or `.remote` is None # This prevents some spurious errors being thrown during startup gef.session.remote_initializing = True session = GefRemoteSessionManager(args.host, args.port, args.pid, qemu_binary) dbg(f"[remote] initializing remote session with {session.target} under {session.root}") if not session.connect(args.pid) or not session.setup(): gef.session.remote = None gef.session.remote_initializing = False raise EnvironmentError("Failed to setup remote target") gef.session.remote_initializing = False gef.session.remote = session reset_all_caches() gdb.execute("context") return @register class SkipiCommand(GenericCommand): """Skip N instruction(s) execution""" _cmdline_ = "skipi" _syntax_ = (f"{_cmdline_} [LOCATION] [--n NUM_INSTRUCTIONS]" "\n\tLOCATION\taddress/symbol from where to skip" "\t--n NUM_INSTRUCTIONS\tSkip the specified number of instructions instead of the default 1.") _example_ = [f"{_cmdline_}", f"{_cmdline_} --n 3", f"{_cmdline_} 0x69696969", f"{_cmdline_} 0x69696969 --n 6",] def __init__(self) -> None: super().__init__(complete=gdb.COMPLETE_LOCATION) return @only_if_gdb_running @parse_arguments({"address": "$pc"}, {"--n": 1}) def do_invoke(self, _: list[str], **kwargs: Any) -> None: args : argparse.Namespace = kwargs["arguments"] address = parse_address(args.address) num_instructions = args.n last_insn = gef_instruction_n(address, num_instructions-1) total_bytes = (last_insn.address - address) + last_insn.size() target_addr = address + total_bytes info(f"skipping {num_instructions} instructions ({total_bytes} bytes) from {address:#x} to {target_addr:#x}") gdb.execute(f"set $pc = {target_addr:#x}") return @register class StepoverCommand(GenericCommand): """Breaks on the instruction immediately following this one. Ex: Step over call instruction""" _cmdline_ = "stepover" _syntax_ = (f"{_cmdline_}" "\n\tBreaks on the instruction immediately following this one. Ex: Step over call instruction.") _aliases_ = ["so",] _example_ = [f"{_cmdline_}",] def __init__(self) -> None: super().__init__(complete=gdb.COMPLETE_LOCATION) return @only_if_gdb_running def do_invoke(self, _: list[str]) -> None: target_addr = gef_next_instruction(parse_address("$pc")).address JustSilentStopBreakpoint("".join(["*", str(target_addr)])) gdb.execute("continue") return @register class NopCommand(GenericCommand): """Patch the instruction(s) pointed by parameters with NOP. Note: this command is architecture aware.""" _cmdline_ = "nop" _syntax_ = (f"{_cmdline_} [LOCATION] [--i ITEMS] [--f] [--n] [--b]" "\n\tLOCATION\taddress/symbol to patch (by default this command replaces whole instructions)" "\t--i ITEMS\tnumber of items to insert (default 1)" "\t--f\tForce patch even when the selected settings could overwrite partial instructions" "\t--n\tInstead of replacing whole instructions, insert ITEMS nop instructions, no matter how many instructions it overwrites" "\t--b\tInstead of replacing whole instructions, fill ITEMS bytes with nops") _example_ = [f"{_cmdline_}", f"{_cmdline_} $pc+3", f"{_cmdline_} --i 2 $pc+3", f"{_cmdline_} --b", f"{_cmdline_} --b $pc+3", f"{_cmdline_} --f --b --i 2 $pc+3" f"{_cmdline_} --n --i 2 $pc+3",] def __init__(self) -> None: super().__init__(complete=gdb.COMPLETE_LOCATION) return @only_if_gdb_running @parse_arguments({"address": "$pc"}, {"--i": 1, "--b": False, "--f": False, "--n": False}) def do_invoke(self, _: list[str], **kwargs: Any) -> None: args : argparse.Namespace = kwargs["arguments"] address = parse_address(args.address) nop = gef.arch.nop_insn num_items = int(args.i) or 1 fill_bytes = bool(args.b) fill_nops = bool(args.n) force_flag = bool(args.f) or False if fill_nops and fill_bytes: err("--b and --n cannot be specified at the same time.") return total_bytes = 0 if fill_bytes: total_bytes = num_items elif fill_nops: total_bytes = num_items * len(nop) else: try: last_insn = gef_instruction_n(address, num_items-1) last_addr = last_insn.address except Exception as e: err(f"Cannot patch instruction at {address:#x} reaching unmapped area, reason: {e}") return total_bytes = (last_addr - address) + gef_get_instruction_at(last_addr).size() if len(nop) > total_bytes or total_bytes % len(nop): warn(f"Patching {total_bytes} bytes at {address:#x} will result in LAST-NOP " f"(byte nr {total_bytes % len(nop):#x}) broken and may cause a crash or " "break disassembly.") if not force_flag: warn("Use --f (force) to ignore this warning.") return target_end_address = address + total_bytes curr_ins = gef_current_instruction(address) while curr_ins.address + curr_ins.size() < target_end_address: if not Address(value=curr_ins.address + 1).valid: err(f"Cannot patch instruction at {address:#x}: reaching unmapped area") return curr_ins = gef_next_instruction(curr_ins.address) final_ins_end_addr = curr_ins.address + curr_ins.size() if final_ins_end_addr != target_end_address: warn(f"Patching {total_bytes} bytes at {address:#x} will result in LAST-INSTRUCTION " f"({curr_ins.address:#x}) being partial overwritten and may cause a crash or " "break disassembly.") if not force_flag: warn("Use --f (force) to ignore this warning.") return nops = bytearray(nop * total_bytes) end_address = Address(value=address + total_bytes - 1) if not end_address.valid: err(f"Cannot patch instruction at {address:#x}: reaching unmapped " f"area: {end_address:#x}") return ok(f"Patching {total_bytes} bytes from {address:#x}") gef.memory.write(address, nops, total_bytes) return @register class StubCommand(GenericCommand): """Stub out the specified function. This function is useful when needing to skip one function to be called and disrupt your runtime flow (ex. fork).""" _cmdline_ = "stub" _syntax_ = (f"{_cmdline_} [--retval RETVAL] [address]" "\taddress\taddress/symbol to stub out" "\t--retval RETVAL\tSet the return value") _example_ = f"{_cmdline_} --retval 0 fork" def __init__(self) -> None: super().__init__(complete=gdb.COMPLETE_LOCATION) return @only_if_gdb_running @parse_arguments({"address": ""}, {("-r", "--retval"): 0}) def do_invoke(self, _: list[str], **kwargs: Any) -> None: args : argparse.Namespace = kwargs["arguments"] loc = args.address if args.address else f"*{gef.arch.pc:#x}" StubBreakpoint(loc, args.retval) return @register class GlibcHeapCommand(GenericCommand): """Base command to get information about the Glibc heap structure.""" _cmdline_ = "heap" _syntax_ = f"{_cmdline_} (chunk|chunks|bins|arenas|set-arena)" def __init__(self) -> None: super().__init__(prefix=True) return @only_if_gdb_running def do_invoke(self, _: list[str]) -> None: self.usage() return @register class GlibcHeapSetArenaCommand(GenericCommand): """Set the address of the main_arena or the currently selected arena.""" _cmdline_ = "heap set-arena" _syntax_ = f"{_cmdline_} [address|&symbol]" _example_ = f"{_cmdline_} 0x001337001337" def __init__(self) -> None: super().__init__(complete=gdb.COMPLETE_LOCATION) return @only_if_gdb_running @parse_arguments({"addr": ""}, {"--reset": False}) def do_invoke(self, _: list[str], **kwargs: Any) -> None: global gef args: argparse.Namespace = kwargs["arguments"] if args.reset: gef.heap.reset_caches() return if not args.addr: ok(f"Current arena set to: '{gef.heap.selected_arena}'") return try: new_arena_address = parse_address(args.addr) except gdb.error: err("Invalid symbol for arena") return new_arena = GlibcArena( f"*{new_arena_address:#x}") if new_arena in gef.heap.arenas: # if entered arena is in arena list then just select it gef.heap.selected_arena = new_arena else: # otherwise set the main arena to the entered arena gef.heap.main_arena = new_arena return @register class GlibcHeapArenaCommand(GenericCommand): """Display information on a heap chunk.""" _cmdline_ = "heap arenas" _syntax_ = _cmdline_ @only_if_gdb_running def do_invoke(self, _: list[str]) -> None: for arena in gef.heap.arenas: gef_print(str(arena)) return @register class GlibcHeapChunkCommand(GenericCommand): """Display information on a heap chunk. See https://github.com/sploitfun/lsploits/blob/master/glibc/malloc/malloc.c#L1123.""" _cmdline_ = "heap chunk" _syntax_ = f"{_cmdline_} [-h] [--allow-unaligned] [--number] address" def __init__(self) -> None: super().__init__(complete=gdb.COMPLETE_LOCATION) return @parse_arguments({"address": ""}, {"--allow-unaligned": False, "--number": 1}) @only_if_gdb_running def do_invoke(self, _: list[str], **kwargs: Any) -> None: args : argparse.Namespace = kwargs["arguments"] if not args.address: err("Missing chunk address") self.usage() return addr = parse_address(args.address) current_chunk = GlibcChunk(addr, allow_unaligned=args.allow_unaligned) if args.number > 1: for _i in range(args.number): if current_chunk.size == 0: break gef_print(str(current_chunk)) next_chunk_addr = current_chunk.get_next_chunk_addr() if not Address(value=next_chunk_addr).valid: break next_chunk = current_chunk.get_next_chunk() if next_chunk is None: break current_chunk = next_chunk else: gef_print(current_chunk.psprint()) return class GlibcHeapChunkSummary: def __init__(self, desc = ""): self.desc = desc self.count = 0 self.total_bytes = 0 def process_chunk(self, chunk: GlibcChunk) -> None: self.count += 1 self.total_bytes += chunk.size class GlibcHeapArenaSummary: def __init__(self, resolve_type = False) -> None: self.resolve_symbol = resolve_type self.size_distribution = {} self.flag_distribution = { "PREV_INUSE": GlibcHeapChunkSummary(), "IS_MMAPPED": GlibcHeapChunkSummary(), "NON_MAIN_ARENA": GlibcHeapChunkSummary() } def process_chunk(self, chunk: GlibcChunk) -> None: chunk_type = "" if not self.resolve_symbol else chunk.resolve_type() per_size_summary = self.size_distribution.get((chunk.size, chunk_type), None) if per_size_summary is None: per_size_summary = GlibcHeapChunkSummary(desc=chunk_type) self.size_distribution[(chunk.size, chunk_type)] = per_size_summary per_size_summary.process_chunk(chunk) if chunk.has_p_bit(): self.flag_distribution["PREV_INUSE"].process_chunk(chunk) if chunk.has_m_bit(): self.flag_distribution["IS_MAPPED"].process_chunk(chunk) if chunk.has_n_bit(): self.flag_distribution["NON_MAIN_ARENA"].process_chunk(chunk) def print(self) -> None: gef_print("== Chunk distribution by size ==") gef_print(f"{'ChunkBytes':<10s}\t{'Count':<10s}\t{'TotalBytes':15s}\t{'Description':s}") for chunk_info, chunk_summary in sorted(self.size_distribution.items(), key=lambda x: x[1].total_bytes, reverse=True): gef_print(f"{chunk_info[0]:<10d}\t{chunk_summary.count:<10d}\t{chunk_summary.total_bytes:<15d}\t{chunk_summary.desc:s}") gef_print("\n== Chunk distribution by flag ==") gef_print(f"{'Flag':<15s}\t{'TotalCount':<10s}\t{'TotalBytes':s}") for chunk_flag, chunk_summary in self.flag_distribution.items(): gef_print(f"{chunk_flag:<15s}\t{chunk_summary.count:<10d}\t{chunk_summary.total_bytes: None: self.print_arena = print_arena self.allow_unaligned = allow_unaligned self.min_size = min_size self.max_size = max_size self.remaining_chunk_count = count self.summary = summary self.resolve_type = resolve_type @register class GlibcHeapChunksCommand(GenericCommand): """Display all heap chunks for the current arena. As an optional argument the base address of a different arena can be passed""" _cmdline_ = "heap chunks" _syntax_ = f"{_cmdline_} [-h] [--all] [--allow-unaligned] [--summary] [--min-size MIN_SIZE] [--max-size MAX_SIZE] [--count COUNT] [--resolve] [arena_address]" _example_ = (f"\n{_cmdline_}" f"\n{_cmdline_} 0x555555775000") def __init__(self) -> None: super().__init__(complete=gdb.COMPLETE_LOCATION) self["peek_nb_byte"] = (16, "Hexdump N first byte(s) inside the chunk data (0 to disable)") return @parse_arguments({"arena_address": ""}, {("--all", "-a"): False, "--allow-unaligned": False, "--min-size": 0, "--max-size": 0, ("--count", "-n"): -1, ("--summary", "-s"): False, "--resolve": False}) @only_if_gdb_running def do_invoke(self, _: list[str], **kwargs: Any) -> None: args = kwargs["arguments"] ctx = GlibcHeapWalkContext(print_arena=args.all, allow_unaligned=args.allow_unaligned, min_size=args.min_size, max_size=args.max_size, count=args.count, resolve_type=args.resolve, summary=args.summary) if args.all or not args.arena_address: for arena in gef.heap.arenas: self.dump_chunks_arena(arena, ctx) if not args.all: return try: if not args.arena_address: return arena_addr = parse_address(args.arena_address) arena = GlibcArena(f"*{arena_addr:#x}") self.dump_chunks_arena(arena, ctx) except gdb.error as e: err(f"Invalid arena: {e}\nArena Address: {args.arena_address}") return def dump_chunks_arena(self, arena: GlibcArena, ctx: GlibcHeapWalkContext) -> None: heap_addr = arena.heap_addr(allow_unaligned=ctx.allow_unaligned) if heap_addr is None: err("Could not find heap for arena") return if ctx.print_arena: gef_print(str(arena)) if arena.is_main_arena(): heap_end = arena.top + GlibcChunk(arena.top, from_base=True).size self.dump_chunks_heap(heap_addr, heap_end, arena, ctx) else: heap_info_structs = arena.get_heap_info_list() or [] for heap_info in heap_info_structs: if not self.dump_chunks_heap(heap_info.heap_start, heap_info.heap_end, arena, ctx): break return def dump_chunks_heap(self, start: int, end: int, arena: GlibcArena, ctx: GlibcHeapWalkContext) -> bool: nb = self["peek_nb_byte"] chunk_iterator = GlibcChunk(start, from_base=True, allow_unaligned=ctx.allow_unaligned) heap_summary = GlibcHeapArenaSummary(resolve_type=ctx.resolve_type) top_printed = False for chunk in chunk_iterator: heap_corrupted = chunk.base_address > end should_process = self.should_process_chunk(chunk, ctx) if not ctx.summary and chunk.base_address == arena.top: if should_process: gef_print( f"{chunk!s} {LEFT_ARROW} {Color.greenify('top chunk')}") top_printed = True break if heap_corrupted: err("Corrupted heap, cannot continue.") return False if not should_process: continue if ctx.remaining_chunk_count == 0: break if ctx.summary: heap_summary.process_chunk(chunk) else: line = str(chunk) if nb: line += f"\n [{hexdump(gef.memory.read(chunk.data_address, nb), nb, base=chunk.data_address)}]" gef_print(line) ctx.remaining_chunk_count -= 1 if not top_printed and ctx.print_arena: top_chunk = GlibcChunk(arena.top, from_base=True, allow_unaligned=ctx.allow_unaligned) gef_print(f"{top_chunk!s} {LEFT_ARROW} {Color.greenify('top chunk')}") if ctx.summary: heap_summary.print() return True def should_process_chunk(self, chunk: GlibcChunk, ctx: GlibcHeapWalkContext) -> bool: if chunk.size < ctx.min_size: return False if 0 < ctx.max_size < chunk.size: return False return True @register class GlibcHeapBinsCommand(GenericCommand): """Display information on the bins on an arena (default: main_arena). See https://github.com/sploitfun/lsploits/blob/master/glibc/malloc/malloc.c#L1123.""" _bin_types_ = ("tcache", "fast", "unsorted", "small", "large") _cmdline_ = "heap bins" _syntax_ = f"{_cmdline_} [{'|'.join(_bin_types_)}]" def __init__(self) -> None: super().__init__(prefix=True, complete=gdb.COMPLETE_LOCATION) return @only_if_gdb_running def do_invoke(self, argv: list[str]) -> None: if not argv: for bin_t in self._bin_types_: gdb.execute(f"heap bins {bin_t}") return bin_t = argv[0] if bin_t not in self._bin_types_: self.usage() return gdb.execute(f"heap bins {bin_t}") return def pprint_bin(self, arena_addr: str, index: int, _type: str = "") -> int: arena = GlibcArena(arena_addr) fd, bk = arena.bin(index) if (fd, bk) == (0x00, 0x00): warn("Invalid backward and forward bin pointers(fw==bk==NULL)") return -1 if _type == "tcache": chunkClass = GlibcTcacheChunk elif _type == "fast": chunkClass = GlibcFastChunk else: chunkClass = GlibcChunk nb_chunk = 0 head = chunkClass(bk, from_base=True).fd if fd == head: return nb_chunk ok(f"{_type}bins[{index:d}]: fw={fd:#x}, bk={bk:#x}") m = [] while fd != head: chunk = chunkClass(fd, from_base=True) m.append(f"{RIGHT_ARROW} {chunk!s}") fd = chunk.fd nb_chunk += 1 if m: gef_print(" ".join(m)) return nb_chunk @register class GlibcHeapTcachebinsCommand(GenericCommand): """Display information on the Tcachebins on an arena (default: main_arena). See https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=d5c3fafc4307c9b7a4c7d5cb381fcdbfad340bcc.""" _cmdline_ = "heap bins tcache" _syntax_ = f"{_cmdline_} [all] [thread_ids...]" TCACHE_MAX_BINS = 0x40 def __init__(self) -> None: super().__init__(complete=gdb.COMPLETE_LOCATION) return @only_if_gdb_running def do_invoke(self, argv: list[str]) -> None: # Determine if we are using libc with tcache built in (2.26+) if gef.libc.version and gef.libc.version < (2, 26): info("No Tcache in this version of libc") return current_thread = gdb.selected_thread() if current_thread is None: err("Couldn't find current thread") return # As a nicety, we want to display threads in ascending order by gdb number threads = sorted(gdb.selected_inferior().threads(), key=lambda t: t.num) if argv: if "all" in argv: tids = [t.num for t in threads] else: tids = self.check_thread_ids([int(a) for a in argv]) else: tids = [current_thread.num] for thread in threads: if thread.num not in tids: continue thread.switch() tcache_addr = self.find_tcache() if tcache_addr == 0: info(f"Uninitialized tcache for thread {thread.num:d}") continue gef_print(titlify(f"Tcachebins for thread {thread.num:d}")) tcache_empty = True for i in range(self.TCACHE_MAX_BINS): chunk, count = self.tcachebin(tcache_addr, i) chunks = set() msg = [] chunk_size = 0 # Only print the entry if there are valid chunks. Don't trust count while True: if chunk is None: break try: msg.append(f"{LEFT_ARROW} {chunk!s} ") if not chunk_size: chunk_size = chunk.usable_size if chunk.data_address in chunks: msg.append(f"{RIGHT_ARROW} [loop detected]") break chunks.add(chunk.data_address) next_chunk = chunk.fd if next_chunk == 0: break chunk = GlibcTcacheChunk(next_chunk) except gdb.MemoryError: msg.append(f"{LEFT_ARROW} [Corrupted chunk at {chunk.data_address:#x}]") break if msg: tcache_empty = False tidx = gef.heap.csize2tidx(chunk_size) size = gef.heap.tidx2size(tidx) count = len(chunks) gef_print(f"Tcachebins[idx={tidx:d}, size={size:#x}, count={count}]", end="") gef_print("".join(msg)) if tcache_empty: gef_print("All tcachebins are empty") current_thread.switch() return def find_tcache(self) -> int: """Return the location of the current thread's tcache.""" try: # For multithreaded binaries, the tcache symbol (in thread local # storage) will give us the correct address. tcache_addr = parse_address("(void *) tcache") except gdb.error: # In binaries not linked with pthread (and therefore there is only # one thread), we can't use the tcache symbol, but we can guess the # correct address because the tcache is consistently the first # allocation in the main arena. heap_base = gef.heap.base_address if heap_base is None: err("No heap section") return 0x0 tcache_addr = heap_base + 0x10 return tcache_addr def check_thread_ids(self, tids: list[int]) -> list[int]: """Return the subset of tids that are currently valid.""" existing_tids = set(t.num for t in gdb.selected_inferior().threads()) return list(set(tids) & existing_tids) def tcachebin(self, tcache_base: int, i: int) -> tuple[GlibcTcacheChunk | None, int]: """Return the head chunk in tcache[i] and the number of chunks in the bin.""" if i >= self.TCACHE_MAX_BINS: err("Incorrect index value, index value must be between 0 and " f"{self.TCACHE_MAX_BINS}-1, given {i}" ) return None, 0 tcache_chunk = GlibcTcacheChunk(tcache_base) # Glibc changed the size of the tcache in version 2.30; this fix has # been backported inconsistently between distributions. We detect the # difference by checking the size of the allocated chunk for the # tcache. # Minimum usable size of allocated tcache chunk = ? # For new tcache: # TCACHE_MAX_BINS * _2_ + TCACHE_MAX_BINS * ptrsize # For old tcache: # TCACHE_MAX_BINS * _1_ + TCACHE_MAX_BINS * ptrsize new_tcache_min_size = ( self.TCACHE_MAX_BINS * 2 + self.TCACHE_MAX_BINS * gef.arch.ptrsize) if tcache_chunk.usable_size < new_tcache_min_size: tcache_count_size = 1 count = ord(gef.memory.read(tcache_base + tcache_count_size*i, 1)) else: tcache_count_size = 2 count = u16(gef.memory.read(tcache_base + tcache_count_size*i, 2)) chunk = dereference(tcache_base + tcache_count_size*self.TCACHE_MAX_BINS + i*gef.arch.ptrsize) chunk = GlibcTcacheChunk(int(chunk)) if chunk else None return chunk, count @register class GlibcHeapFastbinsYCommand(GenericCommand): """Display information on the fastbinsY on an arena (default: main_arena). See https://github.com/sploitfun/lsploits/blob/master/glibc/malloc/malloc.c#L1123.""" _cmdline_ = "heap bins fast" _syntax_ = f"{_cmdline_} [ARENA_ADDRESS]" def __init__(self) -> None: super().__init__(complete=gdb.COMPLETE_LOCATION) return @parse_arguments({"arena_address": ""}, {}) @only_if_gdb_running def do_invoke(self, *_: Any, **kwargs: Any) -> None: def fastbin_index(sz: int) -> int: return (sz >> 4) - 2 if SIZE_SZ == 8 else (sz >> 3) - 2 args : argparse.Namespace = kwargs["arguments"] if not gef.heap.main_arena: err("Heap not initialized") return SIZE_SZ = gef.arch.ptrsize MAX_FAST_SIZE = 80 * SIZE_SZ // 4 NFASTBINS = fastbin_index(MAX_FAST_SIZE) - 1 arena = GlibcArena(f"*{args.arena_address}") if args.arena_address else gef.heap.selected_arena if arena is None: err("Invalid Glibc arena") return gef_print(titlify(f"Fastbins for arena at {arena.addr:#x}")) for i in range(NFASTBINS): gef_print(f"Fastbins[idx={i:d}, size={(i+2)*SIZE_SZ*2:#x}] ", end="") chunk = arena.fastbin(i) chunks = set() while True: if chunk is None: gef_print("0x00", end="") break try: gef_print(f"{LEFT_ARROW} {chunk!s} ", end="") if chunk.data_address in chunks: gef_print(f"{RIGHT_ARROW} [loop detected]", end="") break if fastbin_index(chunk.size) != i: gef_print("[incorrect fastbin_index] ", end="") chunks.add(chunk.data_address) next_chunk = chunk.fd if next_chunk == 0: break chunk = GlibcFastChunk(next_chunk, from_base=True) except gdb.MemoryError: gef_print(f"{LEFT_ARROW} [Corrupted chunk at {chunk.data_address:#x}]", end="") break gef_print() return @register class GlibcHeapUnsortedBinsCommand(GenericCommand): """Display information on the Unsorted Bins of an arena (default: main_arena). See: https://github.com/sploitfun/lsploits/blob/master/glibc/malloc/malloc.c#L1689.""" _cmdline_ = "heap bins unsorted" _syntax_ = f"{_cmdline_} [ARENA_ADDRESS]" def __init__(self) -> None: super().__init__(complete=gdb.COMPLETE_LOCATION) return @parse_arguments({"arena_address": ""}, {}) @only_if_gdb_running def do_invoke(self, *_: Any, **kwargs: Any) -> None: args : argparse.Namespace = kwargs["arguments"] if not gef.heap.main_arena or not gef.heap.selected_arena: err("Heap not initialized") return arena_addr = args.arena_address if args.arena_address else f"{gef.heap.selected_arena.addr:#x}" gef_print(titlify(f"Unsorted Bin for arena at {arena_addr}")) heap_bins_cmd = gef.gdb.commands["heap bins"] assert isinstance(heap_bins_cmd, GlibcHeapBinsCommand) nb_chunk = heap_bins_cmd.pprint_bin(f"*{arena_addr}", 0, "unsorted_") if nb_chunk >= 0: info(f"Found {nb_chunk:d} chunks in unsorted bin.") return @register class GlibcHeapSmallBinsCommand(GenericCommand): """Convenience command for viewing small bins.""" _cmdline_ = "heap bins small" _syntax_ = f"{_cmdline_} [ARENA_ADDRESS]" def __init__(self) -> None: super().__init__(complete=gdb.COMPLETE_LOCATION) return @parse_arguments({"arena_address": ""}, {}) @only_if_gdb_running def do_invoke(self, *_: Any, **kwargs: Any) -> None: args : argparse.Namespace = kwargs["arguments"] if not gef.heap.main_arena or not gef.heap.selected_arena: err("Heap not initialized") return arena_address = args.arena_address or f"{gef.heap.selected_arena.address:#x}" gef_print(titlify(f"Small Bins for arena at {arena_address}")) bins: dict[int, int] = {} heap_bins_cmd = gef.gdb.commands["heap bins"] assert isinstance (heap_bins_cmd, GlibcHeapBinsCommand) for i in range(1, 63): nb_chunk = heap_bins_cmd.pprint_bin(f"*{arena_address}", i, "small_") if nb_chunk < 0: break if nb_chunk > 0: bins[i] = nb_chunk info(f"Found {sum(list(bins.values())):d} chunks in {len(bins):d} small non-empty bins.") return @register class GlibcHeapLargeBinsCommand(GenericCommand): """Convenience command for viewing large bins.""" _cmdline_ = "heap bins large" _syntax_ = f"{_cmdline_} [ARENA_ADDRESS]" def __init__(self) -> None: super().__init__(complete=gdb.COMPLETE_LOCATION) return @parse_arguments({"arena_address": ""}, {}) @only_if_gdb_running def do_invoke(self, *_: Any, **kwargs: Any) -> None: args : argparse.Namespace = kwargs["arguments"] if not gef.heap.main_arena or not gef.heap.selected_arena: err("Heap not initialized") return arena_addr = args.arena_address if args.arena_address else f"{gef.heap.selected_arena.addr:#x}" gef_print(titlify(f"Large Bins for arena at {arena_addr}")) bins = {} heap_bins_cmd = gef.gdb.commands["heap bins"] assert isinstance(heap_bins_cmd, GlibcHeapBinsCommand) for i in range(63, 126): nb_chunk = heap_bins_cmd.pprint_bin(f"*{arena_addr}", i, "large_") if nb_chunk < 0: break if nb_chunk > 0: bins[i] = nb_chunk info(f"Found {sum(bins.values()):d} chunks in {len(bins):d} large non-empty bins.") return @register class DetailRegistersCommand(GenericCommand): """Display full details on one, many or all registers value from current architecture.""" _cmdline_ = "registers" _syntax_ = f"{_cmdline_} [[Register1][Register2] ... [RegisterN]]" _example_ = (f"\n{_cmdline_}" f"\n{_cmdline_} $eax $eip $esp") @only_if_gdb_running @parse_arguments({"registers": [""]}, {}) def do_invoke(self, _: list[str], **kwargs: Any) -> None: unchanged_color = gef.config["theme.registers_register_name"] changed_color = gef.config["theme.registers_value_changed"] string_color = gef.config["theme.dereference_string"] regs = gef.arch.all_registers args : argparse.Namespace = kwargs["arguments"] if args.registers and args.registers[0]: all_regs = set(gef.arch.all_registers) regs = [reg for reg in args.registers if reg in all_regs] invalid_regs = [reg for reg in args.registers if reg not in all_regs] if invalid_regs: err(f"invalid registers for architecture: {', '.join(invalid_regs)}") memsize = gef.arch.ptrsize endian = str(gef.arch.endianness) charset = string.printable widest = max(map(len, gef.arch.all_registers)) special_line = "" for regname in regs: reg = gdb.parse_and_eval(regname) if reg.type.code == gdb.TYPE_CODE_VOID: continue padreg = regname.ljust(widest, " ") if str(reg) == "": gef_print(f"{Color.colorify(padreg, unchanged_color)}: " f"{Color.colorify('no value', 'yellow underline')}") continue value = align_address(int(reg)) ctx_cmd = gef.gdb.commands["context"] assert isinstance(ctx_cmd, ContextCommand) old_value = ctx_cmd.old_registers.get(regname, 0) if value == old_value: color = unchanged_color else: color = changed_color # Special (e.g. segment) registers go on their own line if regname in gef.arch.special_registers: special_line += f"{Color.colorify(regname, color)}: " special_line += f"{gef.arch.register(regname):#04x} " continue line = f"{Color.colorify(padreg, color)}: " if regname == gef.arch.flag_register: line += gef.arch.flag_register_to_human() gef_print(line) continue addr = lookup_address(align_address(int(value))) if addr.valid: line += str(addr) else: line += format_address_spaces(value) addrs = dereference_from(value) if len(addrs) > 1: sep = f" {RIGHT_ARROW} " line += sep line += sep.join(addrs[1:]) # check to see if reg value is ascii try: fmt = f"{endian}{'I' if memsize == 4 else 'Q'}" last_addr = int(addrs[-1], 16) val = gef_pystring(struct.pack(fmt, last_addr)) if all([_ in charset for _ in val]): line += f" (\"{Color.colorify(val, string_color)}\"?)" except ValueError: pass gef_print(line) if special_line: gef_print(special_line) return @register class ShellcodeCommand(GenericCommand): """ShellcodeCommand uses @JonathanSalwan simple-yet-awesome shellcode API to download shellcodes.""" _cmdline_ = "shellcode" _syntax_ = f"{_cmdline_} (search|get)" def __init__(self) -> None: super().__init__(prefix=True) return def do_invoke(self, _: list[str]) -> None: err("Missing sub-command (search|get)") self.usage() return @register class ShellcodeSearchCommand(GenericCommand): """Search pattern in shell-storm's shellcode database.""" _cmdline_ = "shellcode search" _syntax_ = f"{_cmdline_} PATTERN1 PATTERN2" _aliases_ = ["sc-search",] api_base = "http://shell-storm.org" search_url = f"{api_base}/api/?s=" def do_invoke(self, argv: list[str]) -> None: if not argv: err("Missing pattern to search") self.usage() return # API : http://shell-storm.org/shellcode/ args = "*".join(argv) res = http_get(self.search_url + args) if res is None: err("Could not query search page") return ret = gef_pystring(res) # format: [author, OS/arch, cmd, id, link] lines = ret.split("\\n") refs = [line.split("::::") for line in lines] if refs: info("Showing matching shellcodes") info("\t".join(["Id", "Platform", "Description"])) for ref in refs: try: _, arch, cmd, sid, _ = ref gef_print("\t".join([sid, arch, cmd])) except ValueError: continue info("Use `shellcode get ` to fetch shellcode") return @register class ShellcodeGetCommand(GenericCommand): """Download shellcode from shell-storm's shellcode database.""" _cmdline_ = "shellcode get" _syntax_ = f"{_cmdline_} SHELLCODE_ID" _aliases_ = ["sc-get",] api_base = "http://shell-storm.org" get_url = f"{api_base}/shellcode/files/shellcode-{{:d}}.html" def do_invoke(self, argv: list[str]) -> None: if len(argv) != 1: err("Missing ID to download") self.usage() return if not argv[0].isdigit(): err("ID is not a number") self.usage() return self.get_shellcode(int(argv[0])) return def get_shellcode(self, sid: int) -> None: info(f"Downloading shellcode id={sid}") res = http_get(self.get_url.format(sid)) if res is None: err(f"Failed to fetch shellcode #{sid}") return ok("Downloaded, written to disk...") with tempfile.NamedTemporaryFile(prefix="sc-", suffix=".txt", mode='w+b', delete=False, dir=gef.config["gef.tempdir"]) as fd: shellcode = res.split(b"
")[1].split(b"
")[0] shellcode = shellcode.replace(b""", b'"') fd.write(shellcode) ok(f"Shellcode written to '{fd.name}'") return @register class ProcessListingCommand(GenericCommand): """List and filter process. If a PATTERN is given as argument, results shown will be grepped by this pattern.""" _cmdline_ = "process-search" _syntax_ = f"{_cmdline_} [-h] [--attach] [--smart-scan] [REGEX_PATTERN]" _aliases_ = ["ps"] _example_ = f"{_cmdline_} gdb.*" def __init__(self) -> None: super().__init__(complete=gdb.COMPLETE_LOCATION) self["ps_command"] = (f"{gef.session.constants['ps']} auxww", "`ps` command to get process information") return @parse_arguments({"pattern": ""}, {"--attach": False, "--smart-scan": False}) def do_invoke(self, _: list, **kwargs: Any) -> None: args : argparse.Namespace = kwargs["arguments"] do_attach = args.attach smart_scan = args.smart_scan pattern = args.pattern pattern = re.compile("^.*$") if not args else re.compile(pattern) for process in self.get_processes(): pid = int(process["pid"]) command = process["command"] if not re.search(pattern, command): continue if smart_scan: if command.startswith("[") and command.endswith("]"): continue if command.startswith("socat "): continue if command.startswith("grep "): continue if command.startswith("gdb "): continue if args and do_attach: ok(f"Attaching to process='{process['command']}' pid={pid:d}") gdb.execute(f"attach {pid:d}") return None line = [process[i] for i in ("pid", "user", "cpu", "mem", "tty", "command")] gef_print("\t\t".join(line)) return None def get_processes(self) -> Generator[dict[str, str], None, None]: output = gef_execute_external(self["ps_command"].split(), True) names = [x.lower().replace("%", "") for x in output[0].split()] for line in output[1:]: fields = line.split() t = {} for i, name in enumerate(names): if i == len(names) - 1: t[name] = " ".join(fields[i:]) else: t[name] = fields[i] yield t return @register class ElfInfoCommand(GenericCommand): """Display a limited subset of ELF header information. If no argument is provided, the command will show information about the current ELF being debugged.""" _cmdline_ = "elf-info" _syntax_ = f"{_cmdline_} [FILE]" _example_ = f"{_cmdline_} /bin/ls" def __init__(self) -> None: super().__init__(complete=gdb.COMPLETE_LOCATION) return @parse_arguments({}, {"--filename": ""}) def do_invoke(self, _: list[str], **kwargs: Any) -> None: args : argparse.Namespace = kwargs["arguments"] if is_qemu_system(): err("Unsupported") return filename = args.filename or get_filepath() if filename is None: return try: elf = Elf(filename) except ValueError: err(f"`{filename}` is an invalid value for ELF file") return data = [ ("Magic", f"{hexdump(struct.pack('>I', elf.e_magic), show_raw=True)}"), ("Class", f"{elf.e_class.value:#x} - {elf.e_class.name}"), ("Endianness", f"{elf.e_endianness.value:#x} - {Endianness(elf.e_endianness).name}"), ("Version", f"{elf.e_eiversion:#x}"), ("OS ABI", f"{elf.e_osabi.value:#x} - {elf.e_osabi.name if elf.e_osabi else ''}"), ("ABI Version", f"{elf.e_abiversion:#x}"), ("Type", f"{elf.e_type.value:#x} - {elf.e_type.name}"), ("Machine", f"{elf.e_machine.value:#x} - {elf.e_machine.name}"), ("Program Header Table", f"{format_address(elf.e_phoff)}"), ("Section Header Table", f"{format_address(elf.e_shoff)}"), ("Header Table", f"{format_address(elf.e_phoff)}"), ("ELF Version", f"{elf.e_version:#x}"), ("Header size", f"{elf.e_ehsize} ({elf.e_ehsize:#x})"), ("Entry point", f"{format_address(elf.e_entry)}"), ] for title, content in data: gef_print(f"{Color.boldify(f'{title:<22}')}: {content}") gef_print("") gef_print(titlify("Program Header")) gef_print(f" [{'#':>2s}] {'Type':12s} {'Offset':>8s} {'Virtaddr':>10s} {'Physaddr':>10s}" f" {'FileSiz':>8s} {'MemSiz':>8s} {'Flags':5s} {'Align':>8s}") for i, p in enumerate(elf.phdrs): p_type = p.p_type.name if p.p_type else "" p_flags = str(p.p_flags.name).lstrip("Flag.") if p.p_flags else "???" gef_print(f" [{i:2d}] {p_type:12s} {p.p_offset:#8x} {p.p_vaddr:#10x} {p.p_paddr:#10x}" f" {p.p_filesz:#8x} {p.p_memsz:#8x} {p_flags:5s} {p.p_align:#8x}") gef_print("") gef_print(titlify("Section Header")) gef_print(f" [{'#':>2s}] {'Name':20s} {'Type':>15s} {'Address':>10s} {'Offset':>8s}" f" {'Size':>8s} {'EntSiz':>8s} {'Flags':5s} {'Link':4s} {'Info':4s} {'Align':>8s}") for i, s in enumerate(elf.shdrs): sh_type = s.sh_type.name if s.sh_type else "UNKN" sh_flags = str(s.sh_flags).lstrip("Flags.") if s.sh_flags else "UNKN" gef_print(f" [{i:2d}] {s.name:20s} {sh_type:>15s} {s.sh_addr:#10x} {s.sh_offset:#8x} " f"{s.sh_size:#8x} {s.sh_entsize:#8x} {sh_flags:5s} {s.sh_link:#4x} {s.sh_info:#4x} {s.sh_addralign:#8x}") return @register class EntryPointBreakCommand(GenericCommand): """Tries to find best entry point and sets a temporary breakpoint on it. The command will test for well-known symbols for entry points, such as `main`, `_main`, `__libc_start_main`, etc. defined by the setting `entrypoint_symbols`.""" _cmdline_ = "entry-break" _syntax_ = _cmdline_ _aliases_ = ["start",] def __init__(self) -> None: super().__init__() self["entrypoint_symbols"] = ("main _main __libc_start_main __uClibc_main start _start", "Possible symbols for entry points") return def do_invoke(self, argv: list[str]) -> None: fpath = get_filepath() if fpath is None: warn("No executable to debug, use `file` to load a binary") return if not os.access(fpath, os.X_OK): warn(f"The file '{fpath}' is not executable.") return if is_alive() and not gef.session.qemu_mode: warn("gdb is already running") return bp = None entrypoints = self["entrypoint_symbols"].split() for sym in entrypoints: try: value = parse_address(sym) info(f"Breaking at '{value:#x}'") bp = EntryBreakBreakpoint(sym) gdb.execute(f"run {' '.join(argv)}") return except gdb.error as gdb_error: if 'The "remote" target does not support "run".' in str(gdb_error): # this case can happen when doing remote debugging gdb.execute("continue") return continue # if here, clear the breakpoint if any set if bp: bp.delete() assert gef.binary # break at entry point entry = gef.binary.entry_point if is_pie(fpath): self.set_init_tbreak_pie(entry, argv) gdb.execute("continue") return self.set_init_tbreak(entry) gdb.execute(f"run {' '.join(argv)}") return def set_init_tbreak(self, addr: int) -> EntryBreakBreakpoint: info(f"Breaking at entry-point: {addr:#x}") bp = EntryBreakBreakpoint(f"*{addr:#x}") return bp def set_init_tbreak_pie(self, addr: int, argv: list[str]) -> EntryBreakBreakpoint: warn("PIC binary detected, retrieving text base address") gdb.execute("set stop-on-solib-events 1") hide_context() gdb.execute(f"run {' '.join(argv)}") unhide_context() gdb.execute("set stop-on-solib-events 0") vmmap = gef.memory.maps base_address = [x.page_start for x in vmmap if x.path == get_filepath()][0] return self.set_init_tbreak(base_address + addr) @register class NamedBreakpointCommand(GenericCommand): """Sets a breakpoint and assigns a name to it, which will be shown, when it's hit.""" _cmdline_ = "name-break" _syntax_ = f"{_cmdline_} name [address]" _aliases_ = ["nb",] _example = f"{_cmdline_} main *0x4008a9" def __init__(self) -> None: super().__init__() return @parse_arguments({"name": "", "address": "*$pc"}, {}) def do_invoke(self, _: list[str], **kwargs: Any) -> None: args : argparse.Namespace = kwargs["arguments"] if not args.name: err("Missing name for breakpoint") self.usage() return NamedBreakpoint(args.address, args.name) return @register class ContextCommand(GenericCommand): """Displays a comprehensive and modular summary of runtime context. Unless setting `enable` is set to False, this command will be spawned automatically every time GDB hits a breakpoint, a watchpoint, or any kind of interrupt. By default, it will show panes that contain the register states, the stack, and the disassembly code around $pc.""" _cmdline_ = "context" _syntax_ = f"{_cmdline_} [legend|regs|stack|code|args|memory|source|trace|threads|extra]" _aliases_ = ["ctx",] old_registers: dict[str, int | None] = {} def __init__(self) -> None: super().__init__() self["enable"] = (True, "Enable/disable printing the context when breaking") self["show_source_code_variable_values"] = (True, "Show extra PC context info in the source code") self["show_full_source_file_name_max_len"] = (30, "Show full source path name, if less than this value") self["show_basename_source_file_name_max_len"] = (20, "Show the source basename in full, if less than this value") self["show_prefix_source_path_name_len"] = (10, "When truncating source path, show this many path prefix characters") self["show_stack_raw"] = (False, "Show the stack pane as raw hexdump (no dereference)") self["show_registers_raw"] = (False, "Show the registers pane with raw values (no dereference)") self["show_opcodes_size"] = (0, "Number of bytes of opcodes to display next to the disassembly") self["peek_calls"] = (True, "Peek into calls") self["peek_ret"] = (True, "Peek at return address") self["nb_lines_stack"] = (8, "Number of line in the stack pane") self["grow_stack_down"] = (False, "Order of stack downward starts at largest down to stack pointer") self["nb_lines_backtrace"] = (10, "Number of line in the backtrace pane") self["nb_lines_backtrace_before"] = (2, "Number of line in the backtrace pane before selected frame") self["nb_lines_threads"] = (-1, "Number of line in the threads pane") self["nb_lines_code"] = (6, "Number of instruction after $pc") self["nb_lines_code_prev"] = (3, "Number of instruction before $pc") self["ignore_registers"] = ("", "Space-separated list of registers not to display (e.g. '$cs $ds $gs')") self["clear_screen"] = (True, "Clear the screen before printing the context") self["layout"] = ("legend regs stack code args source memory threads trace extra", "Change the order/presence of the context sections") self["redirect"] = ("", "Redirect the context information to another TTY") self["libc_args"] = (False, "[DEPRECATED - Unused] Show libc function call args description") self["libc_args_path"] = ("", "[DEPRECATED - Unused] Path to libc function call args json files, provided via gef-extras") self.layout_mapping: dict[str, tuple[Callable, Callable | None, Callable | None]] = { "legend": (self.show_legend, None, None), "regs": (self.context_regs, None, None), "stack": (self.context_stack, None, None), "code": (self.context_code, None, None), "args": (self.context_args, None, None), "memory": (self.context_memory, None, None), "source": (self.context_source, None, None), "trace": (self.context_trace, None, None), "threads": (self.context_threads, None, None), "extra": (self.context_additional_information, None, None), } self.instruction_iterator = gef_disassemble return def post_load(self) -> None: gef_on_continue_hook(self.update_registers) gef_on_continue_hook(self.empty_extra_messages) return def show_legend(self) -> None: if gef.config["gef.disable_color"] is True: return changed_register_title = Color.colorify("Modified register", gef.config["theme.registers_value_changed"]) code_title = Color.colorify("Code", gef.config["theme.address_code"]) heap_title = Color.colorify("Heap", gef.config["theme.address_heap"]) stack_title = Color.colorify("Stack", gef.config["theme.address_stack"]) str_title = Color.colorify("String", gef.config["theme.dereference_string"]) gef_print(f"[ Legend: {changed_register_title} | {code_title} | {heap_title} | {stack_title} | {str_title} ]") return @only_if_gdb_running def do_invoke(self, argv: list[str]) -> None: if not self["enable"] or gef.ui.context_hidden: return if not all(_ in self.layout_mapping for _ in argv): self.usage() return if len(argv) > 0: current_layout = argv else: current_layout = self["layout"].strip().split() if not current_layout: return self.tty_rows, self.tty_columns = get_terminal_size() redirect = self["redirect"] if redirect and os.access(redirect, os.W_OK): enable_redirect_output(to_file=redirect) if self["clear_screen"] and len(argv) == 0: clear_screen(redirect) for section in current_layout: if section[0] == "-": continue try: display_pane_function, pane_title_function, condition = self.layout_mapping[section] if condition: if not condition(): continue if pane_title_function: self.context_title(pane_title_function()) display_pane_function() except gdb.MemoryError as e: # a MemoryError will happen when $pc is corrupted (invalid address) err(str(e)) except IndexError: # the `section` is not present, just skip pass self.context_title("") if redirect and os.access(redirect, os.W_OK): disable_redirect_output() return def context_title(self, m: str | None) -> None: # allow for not displaying a title line if m is None: return line_color = gef.config["theme.context_title_line"] msg_color = gef.config["theme.context_title_message"] # print an empty line in case of "" if not m: gef_print(Color.colorify(HORIZONTAL_LINE * self.tty_columns, line_color)) return trail_len = len(m) + 6 title = "" width = max(self.tty_columns - trail_len, 0) padd = HORIZONTAL_LINE title += Color.colorify(f"{'':{padd}<{width}} ", line_color) title += Color.colorify(m, msg_color) title += Color.colorify(f" {'':{padd}<4}", line_color) gef_print(title) return def context_regs(self) -> None: self.context_title("registers") ignored_registers = set(self["ignore_registers"].split()) # Defer to DetailRegisters by default if self["show_registers_raw"] is False: regs = [reg for reg in gef.arch.all_registers if reg not in ignored_registers] printable_registers = " ".join(regs) gdb.execute(f"registers {printable_registers}") return widest = curlen = max(map(len, gef.arch.all_registers)) curlen += 5 curlen += gef.arch.ptrsize * 2 nb = get_terminal_size()[1] // curlen i = 1 line = "" changed_color = gef.config["theme.registers_value_changed"] regname_color = gef.config["theme.registers_register_name"] for reg in gef.arch.all_registers: if reg in ignored_registers: continue try: r = gdb.parse_and_eval(reg) if r.type.code == gdb.TYPE_CODE_VOID: continue new_value_type_flag = r.type.code == gdb.TYPE_CODE_FLAGS new_value = int(r) except (gdb.MemoryError, gdb.error): # If this exception is triggered, it means that the current register # is corrupted. Just use the register "raw" value (not eval-ed) new_value = gef.arch.register(reg) new_value_type_flag = False except Exception: new_value = 0 new_value_type_flag = False old_value = self.old_registers.get(reg, 0) padreg = reg.ljust(widest, " ") value = align_address(new_value) old_value = align_address(old_value or 0) if value == old_value: line += f"{Color.colorify(padreg, regname_color)}: " else: line += f"{Color.colorify(padreg, changed_color)}: " if new_value_type_flag: line += f"{format_address_spaces(value)} " else: addr = lookup_address(align_address(int(value))) if addr.valid: line += f"{addr!s} " else: line += f"{format_address_spaces(value)} " if i % nb == 0: gef_print(line) line = "" i += 1 if line: gef_print(line) gef_print(f"Flags: {gef.arch.flag_register_to_human()}") return def context_stack(self) -> None: self.context_title("stack") show_raw = self["show_stack_raw"] nb_lines = self["nb_lines_stack"] try: sp = gef.arch.sp if show_raw is True: mem = gef.memory.read(sp, 0x10 * nb_lines) gef_print(hexdump(mem, base=sp)) else: gdb.execute(f"dereference -l {nb_lines:d} {sp:#x}") except gdb.MemoryError: err("Cannot read memory from $SP (corrupted stack pointer?)") return def addr_has_breakpoint(self, address: int, bp_locations: list[str]) -> bool: return any(hex(address) in b for b in bp_locations) def context_code(self) -> None: nb_insn = self["nb_lines_code"] nb_insn_prev = self["nb_lines_code_prev"] show_opcodes_size = "show_opcodes_size" in self and self["show_opcodes_size"] past_insns_color = gef.config["theme.old_context"] cur_insn_color = gef.config["theme.disassemble_current_instruction"] pc = gef.arch.pc breakpoints = gdb.breakpoints() or [] # breakpoint.locations was introduced in gdb 13.1 if len(breakpoints) and hasattr(breakpoints[-1], "locations"): bp_locations = [hex(location.address) for b in breakpoints for location in b.locations if location is not None] # type: ignore else: # location relies on the user setting the breakpoints with "b *{hex(address)}" bp_locations = [b.location for b in breakpoints if b.location and b.location.startswith("*")] frame = gdb.selected_frame() arch_name = f"{gef.arch.arch.lower()}:{gef.arch.mode}" self.context_title(f"code:{arch_name}") try: for insn in self.instruction_iterator(pc, nb_insn, nb_prev=nb_insn_prev): line = [] is_taken = False target = None bp_prefix = Color.redify(BP_GLYPH) if self.addr_has_breakpoint(insn.address, bp_locations) else " " if show_opcodes_size == 0: text = str(insn) else: insn_fmt = f"{{:{show_opcodes_size}o}}" text = insn_fmt.format(insn) if insn.address < pc: line += f"{bp_prefix} {Color.colorify(text, past_insns_color)}" elif insn.address == pc: line += f"{bp_prefix}{Color.colorify(f'{RIGHT_ARROW[1:]}{text}', cur_insn_color)}" if gef.arch.is_conditional_branch(insn): is_taken, reason = gef.arch.is_branch_taken(insn) if is_taken: target = insn.operands[-1].split()[0] reason = f"[Reason: {reason}]" if reason else "" line += Color.colorify(f"\tTAKEN {reason}", "bold green") else: reason = f"[Reason: !({reason})]" if reason else "" line += Color.colorify(f"\tNOT taken {reason}", "bold red") elif gef.arch.is_call(insn) and self["peek_calls"] is True: target = insn.operands[-1].split()[0] elif gef.arch.is_ret(insn) and self["peek_ret"] is True: target = gef.arch.get_ra(insn, frame) else: line += f"{bp_prefix} {text}" gef_print("".join(line)) if target: try: address = int(target, 0) if isinstance(target, str) else target except ValueError: # If the operand isn't an address right now we can't parse it continue for i, tinsn in enumerate(self.instruction_iterator(address, nb_insn)): text= f" {DOWN_ARROW if i == 0 else ' '} {tinsn!s}" gef_print(text) break except gdb.MemoryError: err("Cannot disassemble from $PC") return def context_args(self) -> None: insn = gef_current_instruction(gef.arch.pc) if not gef.arch.is_call(insn): return self.size2type = { 1: "BYTE", 2: "WORD", 4: "DWORD", 8: "QWORD", } if insn.operands[-1].startswith(self.size2type[gef.arch.ptrsize]+" PTR"): target = "*" + insn.operands[-1].split()[-1] elif "$"+insn.operands[0] in gef.arch.all_registers: target = f"*{gef.arch.register('$' + insn.operands[0]):#x}" else: # is there a symbol? ops = " ".join(insn.operands) if "<" in ops and ">" in ops: # extract it target = re.sub(r".*<([^\(> ]*).*", r"\1", ops) else: # it's an address, just use as is target = re.sub(r".*(0x[a-fA-F0-9]*).*", r"\1", ops) sym = gdb.lookup_global_symbol(target) if sym is None: self.print_guessed_arguments(target) return if sym.type and sym.type.code != gdb.TYPE_CODE_FUNC: err(f"Symbol '{target}' is not a function: type={sym.type.code}") return self.print_arguments_from_symbol(target, sym) return def print_arguments_from_symbol(self, function_name: str, symbol: "gdb.Symbol") -> None: """If symbols were found, parse them and print the argument adequately.""" args = [] fields = symbol.type.fields() if symbol.type else [] for i, f in enumerate(fields): if not f.type: continue _value = gef.arch.get_ith_parameter(i, in_func=False)[1] _value = RIGHT_ARROW.join(dereference_from(_value)) _name = f.name or f"var_{i}" _type = f.type.name or self.size2type[f.type.sizeof] args.append(f"{_type} {_name} = {_value}") self.context_title("arguments") if not args: gef_print(f"{function_name} ()") return gef_print(f"{function_name} (\n "+",\n ".join(args)+"\n)") return def print_guessed_arguments(self, function_name: str) -> None: """When no symbol, read the current basic block and look for "interesting" instructions.""" def __get_current_block_start_address() -> int | None: pc = gef.arch.pc max_distance = 10 * 16 try: block = gdb.block_for_pc(pc) block_start = block.start \ if block is not None and (pc - block.start) <= max_distance \ else gdb_get_nth_previous_instruction_address(pc, 5) except RuntimeError: block_start = gdb_get_nth_previous_instruction_address(pc, 5) return block_start block_start = __get_current_block_start_address() if not block_start: return parameter_set: set[str] = set() pc = gef.arch.pc function_parameters = gef.arch.function_parameters arg_key_color = gef.config["theme.registers_register_name"] for insn in self.instruction_iterator(block_start, pc - block_start): if not insn.operands: continue if is_x86_32(): if insn.mnemonic == "push": parameter_set.add(insn.operands[0]) else: op = "$" + insn.operands[0] if op in function_parameters: parameter_set.add(op) if is_x86_64(): # also consider extended registers extended_registers = {"$rdi": ["$edi", "$di"], "$rsi": ["$esi", "$si"], "$rdx": ["$edx", "$dx"], "$rcx": ["$ecx", "$cx"], } for exreg in extended_registers: if op in extended_registers[exreg]: parameter_set.add(exreg) if is_x86_32(): nb_argument = len(parameter_set) else: nb_argument = max([function_parameters.index(p)+1 for p in parameter_set], default=0) args = [] for i in range(nb_argument): _key, _values = gef.arch.get_ith_parameter(i, in_func=False) _values = RIGHT_ARROW.join(dereference_from(_values)) args.append(f"{Color.colorify(_key, arg_key_color)} = {_values}") self.context_title("arguments (guessed)") gef_print(f"{function_name} (") if args: gef_print(" " + ",\n ".join(args)) gef_print(")") return def line_has_breakpoint(self, file_name: str, line_number: int, bp_locations: list[str]) -> bool: filename_line = f"{file_name}:{line_number}" return any(filename_line in loc for loc in bp_locations) def context_source(self) -> None: try: pc = gef.arch.pc symtabline = gdb.find_pc_line(pc) symtab = symtabline.symtab # we subtract one because the line number returned by gdb start at 1 line_num = symtabline.line - 1 if not symtab.is_valid(): return fpath = pathlib.Path(symtab.fullname()) lines = [curline.rstrip() for curline in fpath.read_text().splitlines()] except Exception: return file_base_name = os.path.basename(symtab.filename) breakpoints = gdb.breakpoints() or [] bp_locations = [b.location for b in breakpoints if b.location and file_base_name in b.location] past_lines_color = gef.config["theme.old_context"] show_full_path_max = self["show_full_source_file_name_max_len"] show_basename_path_max = self["show_basename_source_file_name_max_len"] nb_line = self["nb_lines_code"] fn = symtab.filename if len(fn) > show_full_path_max: base = os.path.basename(fn) if len(base) > show_basename_path_max: base = base[-show_basename_path_max:] fn = fn[:15] + "[...]" + base title = f"source:{fn}+{line_num + 1}" cur_line_color = gef.config["theme.source_current_line"] self.context_title(title) show_extra_info = self["show_source_code_variable_values"] for i in range(line_num - nb_line + 1, line_num + nb_line): if i < 0: continue bp_prefix = Color.redify(BP_GLYPH) if self.line_has_breakpoint(file_base_name, i + 1, bp_locations) else " " if i < line_num: gef_print("{}{}".format(bp_prefix, Color.colorify(f" {i + 1:4d}\t {lines[i]}", past_lines_color))) if i == line_num: prefix = f"{bp_prefix}{RIGHT_ARROW[1:]}{i + 1:4d}\t " leading = len(lines[i]) - len(lines[i].lstrip()) if show_extra_info: extra_info = self.get_pc_context_info(pc, lines[i]) if extra_info: gef_print(f"{' ' * (len(prefix) + leading)}{extra_info}") gef_print(Color.colorify(f"{prefix}{lines[i]}", cur_line_color)) if i > line_num: try: gef_print(f"{bp_prefix} {i + 1:4d}\t {lines[i]}") except IndexError: break return def get_pc_context_info(self, pc: int, line: str) -> str: try: current_block = gdb.block_for_pc(pc) if not current_block or not current_block.is_valid(): return "" m = collections.OrderedDict() while current_block and not current_block.is_static: for sym in list(current_block): symbol = sym.name if not sym.is_function and re.search(fr"\W{symbol}\W", line): val = gdb.parse_and_eval(symbol) if val.type.code in (gdb.TYPE_CODE_PTR, gdb.TYPE_CODE_ARRAY): addr = int(val.address) addrs = dereference_from(addr) if len(addrs) > 2: addrs = [addrs[0], "[...]", addrs[-1]] f = f" {RIGHT_ARROW} " val = f.join(addrs) elif val.type.code == gdb.TYPE_CODE_INT: val = hex(int(val)) else: continue if symbol not in m: m[symbol] = val current_block = current_block.superblock if m: return "// " + ", ".join([f"{Color.yellowify(a)}={b}" for a, b in m.items()]) except Exception: pass return "" def context_trace(self) -> None: self.context_title("trace") nb_backtrace = self["nb_lines_backtrace"] if nb_backtrace <= 0: return # backward compat for gdb (gdb < 7.10) if not hasattr(gdb, "FrameDecorator"): gdb.execute(f"backtrace {nb_backtrace:d}") return orig_frame: gdb.Frame = gdb.selected_frame() current_frame: gdb.Frame = gdb.newest_frame() frames = [current_frame,] while current_frame != orig_frame and current_frame: current_frame = current_frame.older() if not current_frame: break frames.append(current_frame) nb_backtrace_before = self["nb_lines_backtrace_before"] level = max(len(frames) - nb_backtrace_before - 1, 0) current_frame: gdb.Frame = frames[level] while current_frame: current_frame.select() if not current_frame.is_valid(): continue pc = int(current_frame.pc()) name = current_frame.name() items = [] items.append(f"{pc:#x}") if name: frame_args = gdb.FrameDecorator.FrameDecorator(current_frame).frame_args() or [] # type: ignore symstr= ", ".join([f"{Color.yellowify(x.sym)}={x.sym.value(current_frame)!s}" for x in frame_args]) m = f"{Color.greenify(name)}({symstr})" items.append(m) else: try: insn = next(gef_disassemble(int(pc), 1)) except gdb.MemoryError: break # check if the gdb symbol table may know the address sym_found = gdb_get_location_from_symbol(pc) symbol = "" if sym_found: sym_name, offset = sym_found symbol = f" <{sym_name}+{offset:x}> " items.append(Color.redify(f"{symbol}{insn.mnemonic} {', '.join(insn.operands)}")) title = Color.colorify(f"#{level}", "bold green" if current_frame == orig_frame else "bold pink") gef_print(f"[{title}] {RIGHT_ARROW.join(items)}") older = current_frame.older() level += 1 nb_backtrace -= 1 if nb_backtrace == 0: break if not older: break current_frame = older orig_frame.select() return def context_threads(self) -> None: def reason() -> str: res = gdb.execute("info program", to_string=True) if not res: return "NOT RUNNING" for line in res.splitlines(): line = line.strip() if line.startswith("It stopped with signal "): return line.replace("It stopped with signal ", "").split(",", 1)[0] if line == "The program being debugged is not being run.": return "NOT RUNNING" if line == "It stopped at a breakpoint that has since been deleted.": return "TEMPORARY BREAKPOINT" if line.startswith("It stopped at breakpoint "): return "BREAKPOINT" if line == "It stopped after being stepped.": return "SINGLE STEP" return "STOPPED" self.context_title("threads") threads = gdb.selected_inferior().threads()[::-1] idx = self["nb_lines_threads"] if idx > 0: threads = threads[0:idx] if idx == 0: return if not threads: err("No thread selected") return selected_thread = gdb.selected_thread() selected_frame = gdb.selected_frame() for i, thread in enumerate(threads): line = f"[{Color.colorify(f'#{i:d}', 'bold green' if thread == selected_thread else 'bold pink')}] Id {thread.num:d}, " if thread.name: line += f"""Name: "{thread.name}", """ if thread.is_running(): line += Color.colorify("running", "bold green") elif thread.is_stopped(): line += Color.colorify("stopped", "bold red") thread.switch() frame = gdb.selected_frame() frame_name = frame.name() # check if the gdb symbol table may know the address if not frame_name: sym_found = gdb_get_location_from_symbol(int(frame.pc())) if sym_found: sym_name, offset = sym_found frame_name = f"<{sym_name}+{offset:x}>" line += (f" {Color.colorify(f'{frame.pc():#x}', 'blue')} in " f"{Color.colorify(frame_name or '??', 'bold yellow')} (), " f"reason: {Color.colorify(reason(), 'bold pink')}") elif thread.is_exited(): line += Color.colorify("exited", "bold yellow") gef_print(line) i += 1 selected_thread.switch() selected_frame.select() return def context_additional_information(self) -> None: if not gef.ui.context_messages: return self.context_title("extra") for level, text in gef.ui.context_messages: if level == "error": err(text) elif level == "warn": warn(text) elif level == "success": ok(text) else: info(text) return def context_memory(self) -> None: for address, opt in sorted(gef.ui.watches.items()): sz, fmt = opt[0:2] self.context_title(f"memory:{address:#x}") if fmt == "pointers": gdb.execute(f"dereference -l {sz:d} {address:#x}") else: gdb.execute(f"hexdump {fmt} -s {sz:d} {address:#x}") @classmethod def update_registers(cls, _) -> None: for reg in gef.arch.all_registers: try: cls.old_registers[reg] = gef.arch.register(reg) except Exception: cls.old_registers[reg] = 0 return def empty_extra_messages(self, _) -> None: gef.ui.context_messages.clear() return @register class MemoryCommand(GenericCommand): """Add or remove address ranges to the memory view.""" _cmdline_ = "memory" _syntax_ = f"{_cmdline_} (watch|unwatch|reset|list)" def __init__(self) -> None: super().__init__(prefix=True) return @only_if_gdb_running def do_invoke(self, argv: list[str]) -> None: self.usage() return @register class MemoryWatchCommand(GenericCommand): """Adds address ranges to the memory view.""" _cmdline_ = "memory watch" _syntax_ = f"{_cmdline_} ADDRESS [SIZE] [(qword|dword|word|byte|pointers)]" _example_ = (f"\n{_cmdline_} 0x603000 0x100 byte" f"\n{_cmdline_} $sp") def __init__(self) -> None: super().__init__(complete=gdb.COMPLETE_LOCATION) return @only_if_gdb_running def do_invoke(self, argv: list[str]) -> None: if len(argv) not in (1, 2, 3): self.usage() return address = parse_address(argv[0]) size = parse_address(argv[1]) if len(argv) > 1 else 0x10 group = "byte" if len(argv) == 3: group = argv[2].lower() if group not in ("qword", "dword", "word", "byte", "pointers"): warn(f"Unexpected grouping '{group}'") self.usage() return else: if gef.arch.ptrsize == 4: group = "dword" elif gef.arch.ptrsize == 8: group = "qword" gef.ui.watches[address] = (size, group) ok(f"Adding memwatch to {address:#x}") return @register class MemoryUnwatchCommand(GenericCommand): """Removes address ranges to the memory view.""" _cmdline_ = "memory unwatch" _syntax_ = f"{_cmdline_} ADDRESS" _example_ = (f"\n{_cmdline_} 0x603000" f"\n{_cmdline_} $sp") def __init__(self) -> None: super().__init__(complete=gdb.COMPLETE_LOCATION) return @only_if_gdb_running def do_invoke(self, argv: list[str]) -> None: if not argv: self.usage() return address = parse_address(argv[0]) res = gef.ui.watches.pop(address, None) if not res: warn(f"You weren't watching {address:#x}") else: ok(f"Removed memwatch of {address:#x}") return @register class MemoryWatchResetCommand(GenericCommand): """Removes all watchpoints.""" _cmdline_ = "memory reset" _syntax_ = f"{_cmdline_}" @only_if_gdb_running def do_invoke(self, _: list[str]) -> None: gef.ui.watches.clear() ok("Memory watches cleared") return @register class MemoryWatchListCommand(GenericCommand): """Lists all watchpoints to display in context layout.""" _cmdline_ = "memory list" _syntax_ = f"{_cmdline_}" @only_if_gdb_running def do_invoke(self, _: list[str]) -> None: if not gef.ui.watches: info("No memory watches") return info("Memory watches:") for address, opt in sorted(gef.ui.watches.items()): gef_print(f"- {address:#x} ({opt[0]}, {opt[1]})") return @register class HexdumpCommand(GenericCommand): """Display SIZE lines of hexdump from the memory location pointed by LOCATION.""" _cmdline_ = "hexdump" _syntax_ = f"{_cmdline_} (qword|dword|word|byte) [LOCATION] [--size SIZE] [--reverse]" _example_ = f"{_cmdline_} byte $rsp --size 16 --reverse" def __init__(self) -> None: super().__init__(complete=gdb.COMPLETE_LOCATION, prefix=True) self["always_show_ascii"] = (False, "If true, hexdump will always display the ASCII dump") self.format: str | None = None self.__last_target = "$sp" return @only_if_gdb_running @parse_arguments({"address": "",}, {("--reverse", "-r"): False, ("--size", "-s"): 0}) def do_invoke(self, _: list[str], **kwargs: Any) -> None: valid_formats = ["byte", "word", "dword", "qword"] if not self.format or self.format not in valid_formats: err("Invalid command") return args : argparse.Namespace = kwargs["arguments"] target = args.address or self.__last_target start_addr = parse_address(target) read_from = align_address(start_addr) if self.format == "byte": read_len = args.size or 0x40 read_from += self.repeat_count * read_len mem = gef.memory.read(read_from, read_len) lines = hexdump(mem, base=read_from).splitlines() else: read_len = args.size or 0x10 lines = self._hexdump(read_from, read_len, self.format, self.repeat_count * read_len) if args.reverse: lines.reverse() self.__last_target = target gef_print("\n".join(lines)) return def _hexdump(self, start_addr: int, length: int, arrange_as: str, offset: int = 0) -> list[str]: endianness = gef.arch.endianness base_address_color = gef.config["theme.dereference_base_address"] show_ascii = gef.config["hexdump.always_show_ascii"] formats = { "qword": ("Q", 8), "dword": ("I", 4), "word": ("H", 2), } formatter, width = formats[arrange_as] fmt_str = f"{{base}}{VERTICAL_LINE}+{{offset:#06x}} {{sym}}{{val:#0{width*2+2}x}} {{text}}" fmt_pack = f"{endianness!s}{formatter}" lines = [] i = 0 text = "" while i < length: cur_addr = start_addr + (i + offset) * width sym = gdb_get_location_from_symbol(cur_addr) sym = f"<{sym[0]:s}+{sym[1]:04x}> " if sym else "" mem = gef.memory.read(cur_addr, width) val = struct.unpack(fmt_pack, mem)[0] if show_ascii: text = "".join([chr(b) if 0x20 <= b < 0x7F else "." for b in mem]) lines.append(fmt_str.format(base=Color.colorify(format_address(cur_addr), base_address_color), offset=(i + offset) * width, sym=sym, val=val, text=text)) i += 1 return lines @register class HexdumpQwordCommand(HexdumpCommand): """Display SIZE lines of hexdump as QWORD from the memory location pointed by ADDRESS.""" _cmdline_ = "hexdump qword" _syntax_ = f"{_cmdline_} [ADDRESS] [--size SIZE] [--reverse]" _example_ = f"{_cmdline_} qword $rsp -s 16 --reverse" def __init__(self) -> None: super().__init__() self.format = "qword" return @register class HexdumpDwordCommand(HexdumpCommand): """Display SIZE lines of hexdump as DWORD from the memory location pointed by ADDRESS.""" _cmdline_ = "hexdump dword" _syntax_ = f"{_cmdline_} [ADDRESS] [--size SIZE] [--reverse]" _example_ = f"{_cmdline_} $esp -s 16 --reverse" def __init__(self) -> None: super().__init__() self.format = "dword" return @register class HexdumpWordCommand(HexdumpCommand): """Display SIZE lines of hexdump as WORD from the memory location pointed by ADDRESS.""" _cmdline_ = "hexdump word" _syntax_ = f"{_cmdline_} [ADDRESS] [--size SIZE] [--reverse]" _example_ = f"{_cmdline_} $esp -s 16 --reverse" def __init__(self) -> None: super().__init__() self.format = "word" return @register class HexdumpByteCommand(HexdumpCommand): """Display SIZE lines of hexdump as BYTE from the memory location pointed by ADDRESS.""" _cmdline_ = "hexdump byte" _syntax_ = f"{_cmdline_} [ADDRESS] [--size SIZE] [--reverse]" _example_ = f"{_cmdline_} $rsp -s 16" def __init__(self) -> None: super().__init__() self.format = "byte" return @register class PatchCommand(GenericCommand): """Write specified values to the specified address.""" _cmdline_ = "patch" _syntax_ = (f"{_cmdline_} (qword|dword|word|byte) LOCATION VALUES\n" f"{_cmdline_} string LOCATION \"double-escaped string\"") SUPPORTED_SIZES = { "qword": (8, "Q"), "dword": (4, "L"), "word": (2, "H"), "byte": (1, "B"), } def __init__(self) -> None: super().__init__(prefix=True, complete=gdb.COMPLETE_LOCATION) self.format: str | None = None return @only_if_gdb_running @parse_arguments({"location": "", "values": ["", ]}, {}) def do_invoke(self, _: list[str], **kwargs: Any) -> None: args : argparse.Namespace = kwargs["arguments"] if not self.format or self.format not in self.SUPPORTED_SIZES: self.usage() return if not args.location or not args.values: self.usage() return addr = align_address(parse_address(args.location)) size, fcode = self.SUPPORTED_SIZES[self.format] values = args.values if size == 1: if values[0].startswith("$_gef"): var_name = values[0] try: values = str(gdb.parse_and_eval(var_name)).lstrip("{").rstrip("}").replace(",","").split(" ") except Exception: gef_print(f"Bad variable specified, check value with command: p {var_name}") return d = str(gef.arch.endianness) for value in values: value = parse_address(value) & ((1 << size * 8) - 1) vstr = struct.pack(d + fcode, value) gef.memory.write(addr, vstr, length=size) addr += size return @register class PatchQwordCommand(PatchCommand): """Write specified QWORD to the specified address.""" _cmdline_ = "patch qword" _syntax_ = f"{_cmdline_} LOCATION QWORD1 [QWORD2 [QWORD3..]]" _example_ = f"{_cmdline_} $rip 0x4141414141414141" def __init__(self) -> None: super().__init__() self.format = "qword" return @register class PatchDwordCommand(PatchCommand): """Write specified DWORD to the specified address.""" _cmdline_ = "patch dword" _syntax_ = f"{_cmdline_} LOCATION DWORD1 [DWORD2 [DWORD3..]]" _example_ = f"{_cmdline_} $rip 0x41414141" def __init__(self) -> None: super().__init__() self.format = "dword" return @register class PatchWordCommand(PatchCommand): """Write specified WORD to the specified address.""" _cmdline_ = "patch word" _syntax_ = f"{_cmdline_} LOCATION WORD1 [WORD2 [WORD3..]]" _example_ = f"{_cmdline_} $rip 0x4141" def __init__(self) -> None: super().__init__() self.format = "word" return @register class PatchByteCommand(PatchCommand): """Write specified BYTE to the specified address.""" _cmdline_ = "patch byte" _syntax_ = f"{_cmdline_} LOCATION BYTE1 [BYTE2 [BYTE3..]]" _example_ = f"{_cmdline_} $pc 0x41 0x41 0x41 0x41 0x41" def __init__(self) -> None: super().__init__() self.format = "byte" return @register class PatchStringCommand(GenericCommand): """Write specified string to the specified memory location pointed by ADDRESS.""" _cmdline_ = "patch string" _syntax_ = f"{_cmdline_} ADDRESS \"double backslash-escaped string\"" _example_ = [ f"{_cmdline_} $sp \"GEFROCKS\"", f"{_cmdline_} $sp \"\\\\x41\\\\x41\\\\x41\\\\x41\"" ] @only_if_gdb_running def do_invoke(self, argv: list[str]) -> None: argc = len(argv) if argc != 2: self.usage() return location, msg = argv[0:2] addr = align_address(parse_address(location)) try: msg_as_bytes = codecs.escape_decode(msg, "utf-8")[0] gef.memory.write(addr, msg_as_bytes, len(msg_as_bytes)) # type: ignore except (binascii.Error, gdb.error): err(f"Could not decode '\\xXX' encoded string \"{msg}\"") return @lru_cache() def dereference_from(address: int) -> list[str]: if not is_alive(): return [format_address(address),] code_color = gef.config["theme.dereference_code"] string_color = gef.config["theme.dereference_string"] max_recursion = gef.config["dereference.max_recursion"] or 10 addr = lookup_address(align_address(address)) msg = [format_address(addr.value),] seen_addrs = set() while addr.section and max_recursion: if addr.value in seen_addrs: msg.append("[loop detected]") break seen_addrs.add(addr.value) max_recursion -= 1 # Is this value a pointer or a value? # -- If it's a pointer, dereference deref = addr.dereference() if deref is None: # if here, dereferencing addr has triggered a MemoryError, no need to go further msg.append(str(addr)) break new_addr = lookup_address(deref) if new_addr.valid: addr = new_addr msg.append(str(addr)) continue # -- Otherwise try to parse the value if addr.section: if addr.section.is_executable() and addr.is_in_text_segment() and not is_ascii_string(addr.value): insn = gef_current_instruction(addr.value) insn_str = f"{insn.location} {insn.mnemonic} {', '.join(insn.operands)}" msg.append(Color.colorify(insn_str, code_color)) break elif addr.section.permission & Permission.READ: if is_ascii_string(addr.value): s = gef.memory.read_cstring(addr.value) if len(s) < gef.arch.ptrsize: txt = f'{format_address(deref)} ("{Color.colorify(s, string_color)}"?)' elif len(s) > GEF_MAX_STRING_LENGTH: txt = Color.colorify(f'"{s[:GEF_MAX_STRING_LENGTH]}[...]"', string_color) else: txt = Color.colorify(f'"{s}"', string_color) msg.append(txt) break # if not able to parse cleanly, simply display and break msg.append(format_address(deref)) break return msg @register class DereferenceCommand(GenericCommand): """Dereference recursively from an address and display information. This acts like WinDBG `dps` command.""" _cmdline_ = "dereference" _syntax_ = f"{_cmdline_} [-h] [--length LENGTH] [--reference REFERENCE] [address]" _aliases_ = ["telescope", ] _example_ = f"{_cmdline_} --length 20 --reference $sp+0x10 $sp" def __init__(self) -> None: super().__init__(complete=gdb.COMPLETE_LOCATION) self["max_recursion"] = (7, "Maximum level of pointer recursion") return @staticmethod def pprint_dereferenced(addr: int, idx: int, base_offset: int = 0) -> str: base_address_color = gef.config["theme.dereference_base_address"] registers_color = gef.config["theme.dereference_register_value"] sep = f" {RIGHT_ARROW} " memalign = gef.arch.ptrsize offset = idx * memalign current_address = align_address(addr + offset) addrs = dereference_from(current_address) addr_l = format_address(int(addrs[0], 16)) ma = (memalign*2 + 2) line = ( f"{Color.colorify(addr_l, base_address_color)}{VERTICAL_LINE}" f"{base_offset+offset:+#07x}: {sep.join(addrs[1:]):{ma}s}" ) register_hints = [] for regname in gef.arch.all_registers: regvalue = gef.arch.register(regname) if current_address == regvalue: register_hints.append(regname) if register_hints: m = f"\t{LEFT_ARROW}{', '.join(list(register_hints))}" line += Color.colorify(m, registers_color) offset += memalign return line @only_if_gdb_running @parse_arguments({"address": "$sp"}, {("-r", "--reference"): "", ("-l", "--length"): 10}) def do_invoke(self, _: list[str], **kwargs: Any) -> None: args : argparse.Namespace = kwargs["arguments"] nb = args.length target = args.address target_addr = parse_address(target) reference = args.reference or target ref_addr = parse_address(reference) if process_lookup_address(target_addr) is None: err(f"Unmapped address: '{target}'") return if process_lookup_address(ref_addr) is None: err(f"Unmapped address: '{reference}'") return if gef.config["context.grow_stack_down"] is True: insnum_step = -1 if nb > 0: from_insnum = nb * (self.repeat_count + 1) - 1 to_insnum = self.repeat_count * nb - 1 else: from_insnum = self.repeat_count * nb to_insnum = nb * (self.repeat_count + 1) else: insnum_step = 1 if nb > 0: from_insnum = self.repeat_count * nb to_insnum = nb * (self.repeat_count + 1) else: from_insnum = nb * (self.repeat_count + 1) + 1 to_insnum = (self.repeat_count * nb) + 1 start_address = align_address(target_addr) base_offset = start_address - align_address(ref_addr) dereference_cmd = gef.gdb.commands["dereference"] assert isinstance(dereference_cmd, DereferenceCommand) for i in range(from_insnum, to_insnum, insnum_step): gef_print(dereference_cmd.pprint_dereferenced(start_address, i, base_offset)) return @register class ASLRCommand(GenericCommand): """View/modify the ASLR setting of GDB. By default, GDB will disable ASLR when it starts the process. (i.e. not attached). This command allows to change that setting.""" _cmdline_ = "aslr" _syntax_ = f"{_cmdline_} [(on|off)]" def do_invoke(self, argv: list[str]) -> None: argc = len(argv) if argc == 0: ret = gdb.execute("show disable-randomization", to_string=True) or "" i = ret.find("virtual address space is ") if i < 0: return msg = "ASLR is currently " if ret[i + 25:].strip() == "on.": msg += Color.redify("disabled") else: msg += Color.greenify("enabled") gef_print(msg) return elif argc == 1: if argv[0] == "on": info("Enabling ASLR") gdb.execute("set disable-randomization off") return elif argv[0] == "off": info("Disabling ASLR") gdb.execute("set disable-randomization on") return warn("Invalid command") self.usage() return @register class ResetCacheCommand(GenericCommand): """Reset cache of all stored data. This command is here for debugging and test purposes, GEF handles properly the cache reset under "normal" scenario.""" _cmdline_ = "reset-cache" _syntax_ = _cmdline_ def do_invoke(self, _: list[str]) -> None: reset_all_caches() return @register class VMMapCommand(GenericCommand): """Display a comprehensive layout of the virtual memory mapping. If a filter argument, GEF will filter out the mapping whose pathname do not match that filter.""" _cmdline_ = "vmmap" _syntax_ = f"{_cmdline_} [FILTER]" _example_ = f"{_cmdline_} libc" @only_if_gdb_running @parse_arguments({"unknown_types": [""]}, {("--addr", "-a"): [""], ("--name", "-n"): [""]}) def do_invoke(self, _: list[str], **kwargs: Any) -> None: args : argparse.Namespace = kwargs["arguments"] vmmap = gef.memory.maps if not vmmap: err("No address mapping information found") return addrs: dict[str, int] = {x: parse_address(x) for x in args.addr} names: list[str] = [x for x in args.name] for arg in args.unknown_types: if not arg: continue if self.is_integer(arg): addr = int(arg, 0) else: addr = safe_parse_and_eval(arg) if addr is None: names.append(arg) warn(f"`{arg}` has no type specified. We guessed it was a name filter.") else: addrs[arg] = int(addr) warn(f"`{arg}` has no type specified. We guessed it was an address filter.") warn("You can use --name or --addr before the filter value for specifying its type manually.") gef_print() if not gef.config["gef.disable_color"]: self.show_legend() color = gef.config["theme.table_heading"] headers = ["Start", "End", "Offset", "Perm", "Path"] gef_print(Color.colorify("{:<{w}s}{:<{w}s}{:<{w}s}{:<4s} {:s}".format(*headers, w=gef.arch.ptrsize*2+3), color)) last_printed_filter = None for entry in vmmap: names_filter = [f"name = '{x}'" for x in names if x in entry.path] addrs_filter = [f"addr = {self.format_addr_filter(arg, addr)}" for arg, addr in addrs.items() if entry.page_start <= addr < entry.page_end] filter_content = f"[{' & '.join([*names_filter, *addrs_filter])}]" if not names and not addrs: self.print_entry(entry) elif names_filter or addrs_filter: if filter_content != last_printed_filter: gef_print() # skip a line between different filters gef_print(Color.greenify(filter_content)) last_printed_filter = filter_content self.print_entry(entry) gef_print() return def format_addr_filter(self, arg: str, addr: int): return f"`{arg}`" if self.is_integer(arg) else f"`{arg}` ({addr:#x})" def print_entry(self, entry: Section) -> None: line_color = "" if entry.path == "[stack]": line_color = gef.config["theme.address_stack"] elif entry.path == "[heap]": line_color = gef.config["theme.address_heap"] elif entry.permission & Permission.READ and entry.permission & Permission.EXECUTE: line_color = gef.config["theme.address_code"] line_parts = [ Color.colorify(format_address(entry.page_start), line_color), Color.colorify(format_address(entry.page_end), line_color), Color.colorify(format_address(entry.offset), line_color), ] if entry.permission == Permission.ALL: line_parts.append(Color.colorify(str(entry.permission), "underline " + line_color)) else: line_parts.append(Color.colorify(str(entry.permission), line_color)) line_parts.append(Color.colorify(entry.path, line_color)) line = " ".join(line_parts) gef_print(line) return def show_legend(self) -> None: code_title = Color.colorify("Code", gef.config["theme.address_code"]) stack_title = Color.colorify("Stack", gef.config["theme.address_stack"]) heap_title = Color.colorify("Heap", gef.config["theme.address_heap"]) gef_print(f"[ Legend: {code_title} | {stack_title} | {heap_title} ]") return def is_integer(self, n: str) -> bool: try: int(n, 0) except ValueError: return False return True @register class XFilesCommand(GenericCommand): """Shows all libraries (and sections) loaded by binary. This command extends the GDB command `info files`, by retrieving more information from extra sources, and providing a better display. If an argument FILE is given, the output will grep information related to only that file. If an argument name is also given, the output will grep to the name within FILE.""" _cmdline_ = "xfiles" _syntax_ = f"{_cmdline_} [FILE [NAME]]" _example_ = f"\n{_cmdline_} libc\n{_cmdline_} libc IO_vtables" @only_if_gdb_running def do_invoke(self, argv: list[str]) -> None: color = gef.config["theme.table_heading"] headers = ["Start", "End", "Name", "File"] gef_print(Color.colorify("{:<{w}s}{:<{w}s}{:<21s} {:s}".format(*headers, w=gef.arch.ptrsize*2+3), color)) filter_by_file = argv[0] if argv and argv[0] else None filter_by_name = argv[1] if len(argv) > 1 and argv[1] else None for xfile in get_info_files(): if filter_by_file: if filter_by_file not in xfile.filename: continue if filter_by_name and filter_by_name not in xfile.name: continue line_parts = [ format_address(xfile.zone_start), format_address(xfile.zone_end), f"{xfile.name:<21s}", xfile.filename, ] gef_print(" ".join(line_parts)) return @register class XAddressInfoCommand(GenericCommand): """Retrieve and display runtime information for the location(s) given as parameter.""" _cmdline_ = "xinfo" _syntax_ = f"{_cmdline_} LOCATION" _example_ = f"{_cmdline_} $pc" def __init__(self) -> None: super().__init__(complete=gdb.COMPLETE_LOCATION) return @only_if_gdb_running def do_invoke(self, argv: list[str]) -> None: if not argv: err("At least one valid address must be specified") self.usage() return for sym in argv: try: addr = align_address(parse_address(sym)) gef_print(titlify(f"xinfo: {addr:#x}")) self.infos(addr) except gdb.error as gdb_err: err(f"{gdb_err}") return def infos(self, address: int) -> None: addr = lookup_address(address) if not addr.valid: warn(f"Cannot reach {address:#x} in memory space") return sect = addr.section info = addr.info if sect: gef_print(f"Page: {format_address(sect.page_start)} {RIGHT_ARROW} " f"{format_address(sect.page_end)} (size={sect.page_end-sect.page_start:#x})" f"\nPermissions: {sect.permission}" f"\nPathname: {sect.path}" f"\nOffset (from page): {addr.value-sect.page_start:#x}" f"\nInode: {sect.inode}") if info: gef_print(f"Segment: {info.name} " f"({format_address(info.zone_start)}-{format_address(info.zone_end)})" f"\nOffset (from segment): {addr.value-info.zone_start:#x}") sym = gdb_get_location_from_symbol(address) if sym: name, offset = sym msg = f"Symbol: {name}" if offset: msg += f"+{offset:d}" gef_print(msg) return @register class XorMemoryCommand(GenericCommand): """XOR a block of memory. The command allows to simply display the result, or patch it runtime at runtime.""" _cmdline_ = "xor-memory" _syntax_ = f"{_cmdline_} (display|patch) ADDRESS SIZE KEY" def __init__(self) -> None: super().__init__(prefix=True) return def do_invoke(self, _: list[str]) -> None: self.usage() return @register class XorMemoryDisplayCommand(GenericCommand): """Display a block of memory pointed by ADDRESS by xor-ing each byte with KEY. The key must be provided in hexadecimal format.""" _cmdline_ = "xor-memory display" _syntax_ = f"{_cmdline_} ADDRESS SIZE KEY" _example_ = f"{_cmdline_} $sp 16 41414141" @only_if_gdb_running def do_invoke(self, argv: list[str]) -> None: if len(argv) != 3: self.usage() return address = parse_address(argv[0]) length = int(argv[1], 0) key = argv[2] block = gef.memory.read(address, length) info(f"Displaying XOR-ing {address:#x}-{address + len(block):#x} with {key!r}") gef_print(titlify("Original block")) gef_print(hexdump(block, base=address)) gef_print(titlify("XOR-ed block")) gef_print(hexdump(xor(block, key), base=address)) return @register class XorMemoryPatchCommand(GenericCommand): """Patch a block of memory pointed by ADDRESS by xor-ing each byte with KEY. The key must be provided in hexadecimal format.""" _cmdline_ = "xor-memory patch" _syntax_ = f"{_cmdline_} ADDRESS SIZE KEY" _example_ = f"{_cmdline_} $sp 16 41414141" @only_if_gdb_running def do_invoke(self, argv: list[str]) -> None: if len(argv) != 3: self.usage() return address = parse_address(argv[0]) length = int(argv[1], 0) key = argv[2] block = gef.memory.read(address, length) info(f"Patching XOR-ing {address:#x}-{address + len(block):#x} with {key!r}") xored_block = xor(block, key) gef.memory.write(address, xored_block, length) return @register class TraceRunCommand(GenericCommand): """Create a runtime trace of all instructions executed from $pc to LOCATION specified. The trace is stored in a text file that can be next imported in IDA Pro to visualize the runtime path.""" _cmdline_ = "trace-run" _syntax_ = f"{_cmdline_} LOCATION [MAX_CALL_DEPTH]" _example_ = f"{_cmdline_} 0x555555554610" def __init__(self) -> None: super().__init__(self._cmdline_, complete=gdb.COMPLETE_LOCATION) self["max_tracing_recursion"] = (1, "Maximum depth of tracing") self["tracefile_prefix"] = ("./gef-trace-", "Specify the tracing output file prefix") return @only_if_gdb_running def do_invoke(self, argv: list[str]) -> None: if len(argv) not in (1, 2): self.usage() return if len(argv) == 2 and argv[1].isdigit(): depth = int(argv[1]) else: depth = 1 try: loc_start = gef.arch.pc loc_end = parse_address(argv[0]) except gdb.error as e: err(f"Invalid location: {e}") return self.trace(loc_start, loc_end, depth) return def get_frames_size(self) -> int: n = 0 f = gdb.newest_frame() while f: n += 1 f = f.older() return n def trace(self, loc_start: int, loc_end: int, depth: int) -> None: info(f"Tracing from {loc_start:#x} to {loc_end:#x} (max depth={depth:d})") logfile = f"{self['tracefile_prefix']}{loc_start:#x}-{loc_end:#x}.txt" with RedirectOutputContext(to_file=logfile): hide_context() self.start_tracing(loc_start, loc_end, depth) unhide_context() ok(f"Done, logfile stored as '{logfile}'") info("Hint: import logfile with `ida_color_gdb_trace.py` script in IDA to visualize path") return def start_tracing(self, loc_start: int, loc_end: int, depth: int) -> None: loc_cur = loc_start frame_count_init = self.get_frames_size() gef_print("#", f"# Execution tracing of {get_filepath()}", f"# Start address: {format_address(loc_start)}", f"# End address: {format_address(loc_end)}", f"# Recursion level: {depth:d}", "# automatically generated by gef.py", "#\n", sep="\n") while loc_cur != loc_end: try: delta = self.get_frames_size() - frame_count_init if delta <= depth: gdb.execute("stepi") else: gdb.execute("finish") loc_cur = gef.arch.pc gdb.flush() except gdb.error as e: gef_print("#", f"# Execution interrupted at address {format_address(loc_cur)}", f"# Exception: {e}", "#\n", sep="\n") break return @register class PatternCommand(GenericCommand): """Generate or Search a De Bruijn Sequence of unique substrings of length N and a total length of LENGTH. The default value of N is set to match the currently loaded architecture.""" _cmdline_ = "pattern" _syntax_ = f"{_cmdline_} (create|search) ARGS" def __init__(self) -> None: super().__init__(prefix=True) self["length"] = (1024, "Default length of a cyclic buffer to generate") return def do_invoke(self, _: list[str]) -> None: self.usage() return @register class PatternCreateCommand(GenericCommand): """Generate a De Bruijn Sequence of unique substrings of length N and a total length of LENGTH. The default value of N is set to match the currently loaded architecture.""" _cmdline_ = "pattern create" _syntax_ = f"{_cmdline_} [-h] [-n N] [length]" _example_ = [ f"{_cmdline_} 4096", f"{_cmdline_} -n 4 128" ] @parse_arguments({"length": 0}, {"-n": 0,}) def do_invoke(self, _: list[str], **kwargs: Any) -> None: args : argparse.Namespace = kwargs["arguments"] length = args.length or gef.config["pattern.length"] n = args.n or gef.arch.ptrsize info(f"Generating a pattern of {length:d} bytes (n={n:d})") pattern_str = gef_pystring(generate_cyclic_pattern(length, n)) gef_print(pattern_str) ok(f"Saved as '{gef_convenience(pattern_str)}'") return @register class PatternSearchCommand(GenericCommand): """Search a De Bruijn Sequence of unique substrings of length N and a maximum total length of MAX_LENGTH. The default value of N is set to match the currently loaded architecture. The PATTERN argument can be a GDB symbol (such as a register name), a string or a hexadecimal value""" _cmdline_ = "pattern search" _syntax_ = f"{_cmdline_} [-h] [-n N] [--max-length MAX_LENGTH] [pattern]" _example_ = [f"{_cmdline_} $pc", f"{_cmdline_} 0x61616164", f"{_cmdline_} aaab"] _aliases_ = ["pattern offset"] @only_if_gdb_running @parse_arguments({"pattern": ""}, {("--period", "-n"): 0, ("--max-length", "-l"): 0}) def do_invoke(self, _: list[str], **kwargs: Any) -> None: args = kwargs["arguments"] if not args.pattern: warn("No pattern provided") return max_length = args.max_length or gef.config["pattern.length"] n = args.period or gef.arch.ptrsize if n not in (2, 4, 8) or n > gef.arch.ptrsize: err("Incorrect value for period") return self.search(args.pattern, max_length, n) return def search(self, pattern: str, size: int, period: int) -> None: pattern_be, pattern_le = None, None # 1. check if it's a symbol (like "$sp" or "0x1337") symbol = safe_parse_and_eval(pattern) if symbol: addr = int(abs(to_unsigned_long(symbol))) dereferenced_value = dereference(addr) if dereferenced_value: addr = int(abs(to_unsigned_long(dereferenced_value))) mask = (1<<(8 * period))-1 addr &= mask pattern_le = addr.to_bytes(period, 'little') pattern_be = addr.to_bytes(period, 'big') else: # 2. assume it's a plain string pattern_be = gef_pybytes(pattern) pattern_le = gef_pybytes(pattern[::-1]) info(f"Searching for '{pattern_le.hex()}'/'{pattern_be.hex()}' with period={period}") cyclic_pattern = generate_cyclic_pattern(size, period) off = cyclic_pattern.find(pattern_le) if off >= 0: ok(f"Found at offset {off:d} (little-endian search) " f"{Color.colorify('likely', 'bold red') if gef.arch.endianness == Endianness.LITTLE_ENDIAN else ''}") return off = cyclic_pattern.find(pattern_be) if off >= 0: ok(f"Found at offset {off:d} (big-endian search) " f"{Color.colorify('likely', 'bold green') if gef.arch.endianness == Endianness.BIG_ENDIAN else ''}") return err(f"Pattern '{pattern}' not found") return @register class ChecksecCommand(GenericCommand): """Checksec the security properties of the current executable or passed as argument. The command checks for the following protections: - PIE - NX - RelRO - Glibc Stack Canaries - Fortify Source""" _cmdline_ = "checksec" _syntax_ = f"{_cmdline_} [FILENAME]" _example_ = f"{_cmdline_} /bin/ls" def __init__(self) -> None: super().__init__(complete=gdb.COMPLETE_FILENAME) return def do_invoke(self, argv: list[str]) -> None: argc = len(argv) if argc == 0: filename = get_filepath() if filename is None: warn("No executable/library specified") return elif argc == 1: filename = os.path.realpath(os.path.expanduser(argv[0])) if not os.access(filename, os.R_OK): err("Invalid filename") return else: self.usage() return info(f"{self._cmdline_} for '{filename}'") self.print_security_properties(filename) return def print_security_properties(self, filename: str) -> None: sec = Elf(filename).checksec for prop in sec: if prop in ("Partial RelRO", "Full RelRO"): continue val = sec[prop] msg = Color.greenify(Color.boldify(TICK)) if val is True else Color.redify(Color.boldify(CROSS)) if val and prop == "Canary" and is_alive(): canary = gef.session.canary[0] if gef.session.canary else 0 msg += f"(value: {canary:#x})" gef_print(f"{prop:<30s}: {msg}") if sec["Full RelRO"]: gef_print(f"{'RelRO':<30s}: {Color.greenify('Full')}") elif sec["Partial RelRO"]: gef_print(f"{'RelRO':<30s}: {Color.yellowify('Partial')}") else: gef_print(f"{'RelRO':<30s}: {Color.redify(Color.boldify(CROSS))}") return @register class GotCommand(GenericCommand): """Display current status of the got inside the process.""" _cmdline_ = "got" _syntax_ = f"{_cmdline_} [FUNCTION_NAME ...] " _example_ = "got read printf exit" def __init__(self): super().__init__() self["function_resolved"] = ("green", "Line color of the got command output for resolved function") self["function_not_resolved"] = ("yellow", "Line color of the got command output for unresolved function") return def build_line(self, name: str, _path: str, color: str, address_val: int, got_address: int) -> str: line = f"[{hex(address_val)}] " line += Color.colorify(f"{name} {RIGHT_ARROW} {hex(got_address)}", color) return line @only_if_gdb_running @parse_arguments({"symbols": [""]}, {"--all": False}) def do_invoke(self, _: list[str], **kwargs: Any) -> None: args : argparse.Namespace = kwargs["arguments"] vmmap = gef.memory.maps mapfiles = [mapfile for mapfile in vmmap if (args.all or mapfile.path == str(gef.session.file)) and pathlib.Path(mapfile.realpath).is_file() and mapfile.permission & Permission.EXECUTE] for mapfile in mapfiles: self.print_got_for(mapfile.path, mapfile.realpath, args.symbols) def print_got_for(self, file: str, realpath: str, argv: list[str]) -> None: readelf = gef.session.constants["readelf"] elf_file = realpath elf_virtual_path = file func_names_filter = argv if argv else [] vmmap = gef.memory.maps base_address = min(x.page_start for x in vmmap if x.path == elf_virtual_path) end_address = max(x.page_end for x in vmmap if x.path == elf_virtual_path) # get the checksec output. checksec_status = Elf(elf_file).checksec relro_status = "Full RelRO" full_relro = checksec_status["Full RelRO"] pie = checksec_status["PIE"] # if pie we will have offset instead of abs address. if not full_relro: relro_status = "Partial RelRO" partial_relro = checksec_status["Partial RelRO"] if not partial_relro: relro_status = "No RelRO" # retrieve jump slots using readelf lines = gef_execute_external([readelf, "--wide", "--relocs", elf_file], as_list=True) jmpslots = [line for line in lines if "JUMP" in line] gef_print(f"{titlify(file)}\n\nGOT protection: {relro_status} | GOT functions: {len(jmpslots)}\n ") for line in jmpslots: address, _, _, _, name = line.split()[:5] # if we have a filter let's skip the entries that are not requested. if func_names_filter: if not any(map(lambda x: x in name, func_names_filter)): continue address_val = int(address, 16) # address_val is an offset from the base_address if we have PIE. if pie or is_remote_debug(): address_val = base_address + address_val # read the address of the function. got_address = gef.memory.read_integer(address_val) # for the swag: different colors if the function has been resolved or not. if base_address < got_address < end_address: color = self["function_not_resolved"] else: color = self["function_resolved"] line = self.build_line(name, elf_virtual_path, color, address_val, got_address) gef_print(line) return @register class HighlightCommand(GenericCommand): """Highlight user-defined text matches in GEF output universally.""" _cmdline_ = "highlight" _syntax_ = f"{_cmdline_} (add|remove|list|clear)" _aliases_ = ["hl"] def __init__(self) -> None: super().__init__(prefix=True) self["regex"] = (False, "Enable regex highlighting") def do_invoke(self, _: list[str]) -> None: return self.usage() @register class HighlightListCommand(GenericCommand): """Show the current highlight table with matches to colors.""" _cmdline_ = "highlight list" _aliases_ = ["highlight ls", "hll"] _syntax_ = _cmdline_ def print_highlight_table(self) -> None: if not gef.ui.highlight_table: err("no matches found") return left_pad = max(map(len, gef.ui.highlight_table.keys())) for match, color in sorted(gef.ui.highlight_table.items()): print(f"{Color.colorify(match.ljust(left_pad), color)} {VERTICAL_LINE} " f"{Color.colorify(color, color)}") return def do_invoke(self, _: list[str]) -> None: return self.print_highlight_table() @register class HighlightClearCommand(GenericCommand): """Clear the highlight table, remove all matches.""" _cmdline_ = "highlight clear" _aliases_ = ["hlc"] _syntax_ = _cmdline_ def do_invoke(self, _: list[str]) -> None: return gef.ui.highlight_table.clear() @register class HighlightAddCommand(GenericCommand): """Add a match to the highlight table.""" _cmdline_ = "highlight add" _syntax_ = f"{_cmdline_} MATCH COLOR" _aliases_ = ["highlight set", "hla"] _example_ = f"{_cmdline_} 41414141 yellow" def do_invoke(self, argv: list[str]) -> None: if len(argv) < 2: return self.usage() match, color = argv gef.ui.highlight_table[match] = color return @register class HighlightRemoveCommand(GenericCommand): """Remove a match in the highlight table.""" _cmdline_ = "highlight remove" _syntax_ = f"{_cmdline_} MATCH" _aliases_ = [ "highlight delete", "highlight del", "highlight unset", "highlight rm", "hlr", ] _example_ = f"{_cmdline_} remove 41414141" def do_invoke(self, argv: list[str]) -> None: if not argv: return self.usage() gef.ui.highlight_table.pop(argv[0], None) return @register class FormatStringSearchCommand(GenericCommand): """Exploitable format-string helper: this command will set up specific breakpoints at well-known dangerous functions (printf, snprintf, etc.), and check if the pointer holding the format string is writable, and therefore susceptible to format string attacks if an attacker can control its content.""" _cmdline_ = "format-string-helper" _syntax_ = _cmdline_ _aliases_ = ["fmtstr-helper",] def do_invoke(self, _: list[str]) -> None: dangerous_functions = { "printf": 0, "sprintf": 1, "fprintf": 1, "snprintf": 2, "vsnprintf": 2, } nb_installed_breaks = 0 with RedirectOutputContext(to_file="/dev/null"): for function_name in dangerous_functions: argument_number = dangerous_functions[function_name] FormatStringBreakpoint(function_name, argument_number) nb_installed_breaks += 1 ok(f"Enabled {nb_installed_breaks} FormatString " f"breakpoint{'s' if nb_installed_breaks > 1 else ''}") return @register class HeapAnalysisCommand(GenericCommand): """Heap vulnerability analysis helper: this command aims to track dynamic heap allocation done through malloc()/free() to provide some insights on possible heap vulnerabilities. The following vulnerabilities are checked: - NULL free - Use-after-Free - Double Free - Heap overlap""" _cmdline_ = "heap-analysis-helper" _syntax_ = _cmdline_ def __init__(self) -> None: super().__init__(complete=gdb.COMPLETE_NONE) self["check_free_null"] = (False, "Break execution when a free(NULL) is encountered") self["check_double_free"] = (True, "Break execution when a double free is encountered") self["check_weird_free"] = (True, "Break execution when free() is called against a non-tracked pointer") self["check_uaf"] = (True, "Break execution when a possible Use-after-Free condition is found") self["check_heap_overlap"] = (True, "Break execution when a possible overlap in allocation is found") self.bp_malloc = None self.bp_calloc = None self.bp_free = None self.bp_realloc = None return @only_if_gdb_running @experimental_feature def do_invoke(self, argv: list[str]) -> None: if not argv: self.setup() return if argv[0] == "show": self.dump_tracked_allocations() return def setup(self) -> None: ok("Tracking malloc() & calloc()") self.bp_malloc = TraceMallocBreakpoint("__libc_malloc") self.bp_calloc = TraceMallocBreakpoint("__libc_calloc") ok("Tracking free()") self.bp_free = TraceFreeBreakpoint() ok("Tracking realloc()") self.bp_realloc = TraceReallocBreakpoint() ok("Disabling hardware watchpoints (this may increase the latency)") gdb.execute("set can-use-hw-watchpoints 0") info("Dynamic breakpoints correctly setup, " "GEF will break execution if a possible vulnerability is found.") warn(f"{Color.colorify('Note', 'bold underline yellow')}: " "The heap analysis slows down the execution noticeably.") # when inferior quits, we need to clean everything for a next execution gef_on_exit_hook(self.clean) return def dump_tracked_allocations(self) -> None: global gef if gef.session.heap_allocated_chunks: ok("Tracked as in-use chunks:") for addr, sz in gef.session.heap_allocated_chunks: gef_print(f"{CROSS} malloc({sz:d}) = {addr:#x}") else: ok("No malloc() chunk tracked") if gef.session.heap_freed_chunks: ok("Tracked as free-ed chunks:") for addr, sz in gef.session.heap_freed_chunks: gef_print(f"{TICK} free({sz:d}) = {addr:#x}") else: ok("No free() chunk tracked") return def clean(self, _: "gdb.ExitedEvent") -> None: global gef ok(f"{Color.colorify('Heap-Analysis', 'yellow bold')} - Cleaning up") for bp in [self.bp_malloc, self.bp_calloc, self.bp_free, self.bp_realloc]: if hasattr(bp, "retbp") and bp.retbp: try: bp.retbp.delete() except RuntimeError: # in some cases, gdb was found failing to correctly remove the retbp # but they can be safely ignored since the debugging session is over pass bp.delete() for wp in gef.session.heap_uaf_watchpoints: wp.delete() gef.session.heap_allocated_chunks = [] gef.session.heap_freed_chunks = [] gef.session.heap_uaf_watchpoints = [] ok(f"{Color.colorify('Heap-Analysis', 'yellow bold')} - Re-enabling hardware watchpoints") gdb.execute("set can-use-hw-watchpoints 1") gef_on_exit_unhook(self.clean) return # # GDB Function declaration # @deprecated("") def register_function(cls: Type["GenericFunction"]) -> Type["GenericFunction"]: """Decorator for registering a new convenience function to GDB.""" return cls class GenericFunction(gdb.Function): """This is an abstract class for invoking convenience functions, should not be instantiated.""" _function_ : str _syntax_: str = "" _example_ : str = "" def __init__(self) -> None: super().__init__(self._function_) def invoke(self, *args: Any) -> int: if not is_alive(): raise gdb.GdbError("No debugging session active") return self.do_invoke(args) def arg_to_long(self, args: Any, index: int, default: int = 0) -> int: try: addr = args[index] return int(addr) if addr.address is None else int(addr.address) except IndexError: return default def do_invoke(self, args: Any) -> int: raise NotImplementedError @register class StackOffsetFunction(GenericFunction): """Return the current stack base address plus an optional offset.""" _function_ = "_stack" _syntax_ = f"${_function_}()" def do_invoke(self, args: list) -> int: base = get_section_base_address("[stack]") if not base: raise gdb.GdbError("Stack not found") return self.arg_to_long(args, 0) + base @register class HeapBaseFunction(GenericFunction): """Return the current heap base address plus an optional offset.""" _function_ = "_heap" _syntax_ = f"${_function_}()" def do_invoke(self, args: list[str]) -> int: base = gef.heap.base_address if not base: base = get_section_base_address("[heap]") if not base: raise gdb.GdbError("Heap not found") return self.arg_to_long(args, 0) + base @register class SectionBaseFunction(GenericFunction): """Return the matching file's base address plus an optional offset. Defaults to current file. Note that quotes need to be escaped""" _function_ = "_base" _syntax_ = "$_base([filepath])" _example_ = "p $_base(\\\"/usr/lib/ld-2.33.so\\\")" def do_invoke(self, args: list) -> int: addr = 0 try: name = args[0].string() except IndexError: assert gef.session.file name = gef.session.file.name except gdb.error: err(f"Invalid arg: {args[0]}") return 0 try: base = get_section_base_address(name) if base: addr = int(base) except TypeError: err(f"Cannot find section {name}") return 0 return addr @register class BssBaseFunction(GenericFunction): """Return the current bss base address plus the given offset.""" _function_ = "_bss" _syntax_ = f"${_function_}([OFFSET])" _example_ = "deref $_bss(0x20)" def do_invoke(self, args: list) -> int: base = get_zone_base_address(".bss") if not base: raise gdb.GdbError("BSS not found") return self.arg_to_long(args, 0) + base @register class GotBaseFunction(GenericFunction): """Return the current GOT base address plus the given offset.""" _function_ = "_got" _syntax_ = f"${_function_}([OFFSET])" _example_ = "deref $_got(0x20)" def do_invoke(self, args: list) -> int: base = get_zone_base_address(".got") if not base: raise gdb.GdbError("GOT not found") return base + self.arg_to_long(args, 0) @register class GefFunctionsCommand(GenericCommand): """List the convenience functions provided by GEF.""" _cmdline_ = "functions" _syntax_ = _cmdline_ def __init__(self) -> None: super().__init__() self.docs = [] self.should_refresh = True return def __add__(self, function: GenericFunction): """Add function to documentation.""" doc = getattr(function, "__doc__", "").lstrip() if not hasattr(function, "_syntax_"): raise ValueError("Function is invalid") syntax = getattr(function, "_syntax_").lstrip() msg = f"{Color.colorify(syntax, 'bold cyan')}\n {doc}" example = getattr(function, "_example_", "").strip() if example: msg += f"\n {Color.yellowify('Example:')} {example}" self.docs.append(msg) return self def __radd__(self, function: GenericFunction): return self.__add__(function) def __str__(self) -> str: if self.should_refresh: self.__rebuild() return self.__doc__ or "" def __rebuild(self) -> None: """Rebuild the documentation for functions.""" for function in gef.gdb.functions.values(): self += function self.command_size = len(gef.gdb.commands) _, cols = get_terminal_size() separator = HORIZONTAL_LINE*cols self.__doc__ = f"\n{separator}\n".join(sorted(self.docs)) self.should_refresh = False return def do_invoke(self, argv) -> None: self.dont_repeat() gef_print(titlify("GEF - Convenience Functions")) gef_print("These functions can be used as arguments to other " "commands to dynamically calculate values\n") gef_print(str(self)) return # # GEF internal command classes # class GefCommand(gdb.Command): """GEF main command: view all new commands by typing `gef`.""" _cmdline_ = "gef" _syntax_ = f"{_cmdline_} (missing|config|save|restore|set|run)" def __init__(self) -> None: super().__init__(self._cmdline_, gdb.COMMAND_SUPPORT, gdb.COMPLETE_NONE, True) gef.config["gef.follow_child"] = GefSetting(True, bool, "Automatically set GDB to follow child when forking") gef.config["gef.readline_compat"] = GefSetting(False, bool, "Workaround for readline SOH/ETX issue (SEGV)") gef.config["gef.debug"] = GefSetting(False, bool, "Enable debug mode for gef") gef.config["gef.autosave_breakpoints_file"] = GefSetting("", str, "Automatically save and restore breakpoints") gef.config["gef.disable_target_remote_overwrite"] = GefSetting(False, bool, "Disable the overwrite of `target remote`") plugins_dir = GefSetting("", str, "Autoload additional GEF commands from external directory", hooks={"on_write": [GefSetting.no_spaces, ]}) plugins_dir.add_hook("on_changed", [lambda _, new_val: GefSetting.must_exist(new_val), lambda _, new_val: self.load_extra_plugins(new_val), ]) gef.config["gef.extra_plugins_dir"] = plugins_dir gef.config["gef.disable_color"] = GefSetting(False, bool, "Disable all colors in GEF") gef.config["gef.tempdir"] = GefSetting(GEF_TEMP_DIR, pathlib.Path, "Directory to use for temporary/cache content", hooks={"on_write": [GefSetting.no_spaces, GefSetting.create_folder_tree]}) gef.config["gef.show_deprecation_warnings"] = GefSetting(True, bool, "Toggle the display of the `deprecated` warnings") gef.config["gef.buffer"] = GefSetting(True, bool, "Internally buffer command output until completion") gef.config["gef.bruteforce_main_arena"] = GefSetting(False, bool, "Allow bruteforcing main_arena symbol if everything else fails") gef.config["gef.libc_version"] = GefSetting("", str, "Specify libc version when auto-detection fails") gef.config["gef.main_arena_offset"] = GefSetting("", str, "Offset from libc base address to main_arena symbol (int or hex). Set to empty string to disable.") gef.config["gef.propagate_debug_exception"] = GefSetting(False, bool, "If true, when debug mode is enabled, Python exceptions will be propagated all the way.") self.commands : dict[str, GenericCommand] = {} self.functions : dict[str, GenericFunction] = {} self.missing: dict[str, Exception] = {} return @property @deprecated() def loaded_commands(self) -> list[tuple[str, Type[GenericCommand], Any]]: raise ObsoleteException("Obsolete loaded_commands") @property @deprecated() def loaded_functions(self) -> list[Type[GenericFunction]]: raise ObsoleteException("Obsolete loaded_functions") @property @deprecated() def missing_commands(self) -> dict[str, Exception]: raise ObsoleteException("Obsolete missing_commands") def setup(self) -> None: self.load() GefHelpCommand() GefConfigCommand() GefSaveCommand() GefMissingCommand() GefSetCommand() GefRunCommand() GefInstallExtraScriptCommand() # At this point, commands (incl. extras) are loaded with default settings. # Load custom settings from config file if any GefRestoreCommand() return def load_extra_plugins(self, extra_plugins_dir: pathlib.Path | None = None) -> int: """Load the plugins from the gef-extras setting. Returns the number of new plugins added.""" def load_plugin(fpath: pathlib.Path) -> bool: try: dbg(f"Loading '{fpath}'") gdb.execute(f"source {fpath}") except AlreadyRegisteredException: pass except Exception as e: warn(f"Exception while loading {fpath}: {str(e)}") return False return True def load_plugins_from_directory(plugin_directory: pathlib.Path): nb_added = -1 nb_initial = len(__registered_commands__) start_time = time.perf_counter() for entry in plugin_directory.glob("**/*.py"): load_plugin(entry) try: nb_added = len(__registered_commands__) - nb_initial if nb_added > 0: self.load() nb_failed = len(__registered_commands__) - len(self.commands) load_time = time.perf_counter() - start_time ok(f"{Color.colorify(str(nb_added), 'bold green')} extra commands added " \ f"in {load_time:.2f} seconds") if nb_failed != 0: warn(f"{Color.colorify(str(nb_failed), 'bold light_gray')} extra commands/functions failed to be added. " "Check `gef missing` to know why") except gdb.error as e: err(f"failed: {e}") return nb_added directory = extra_plugins_dir or gef.config["gef.extra_plugins_dir"] if not directory: return 0 directory = pathlib.Path(directory).expanduser().absolute() if not directory.exists(): return 0 dbg(f"Loading extra plugins from directory={directory}") return load_plugins_from_directory(directory) @property def loaded_command_names(self) -> Iterable[str]: print("obsolete loaded_command_names") return self.commands.keys() def invoke(self, args: Any, from_tty: bool) -> None: self.dont_repeat() gdb.execute("gef help") return def add_context_layout_mapping(self, current_pane_name: str, display_pane_function: Callable, pane_title_function: Callable, condition: Callable | None) -> None: """Add a new context layout mapping.""" context = self.commands["context"] assert isinstance(context, ContextCommand) # overload the printing of pane title context.layout_mapping[current_pane_name] = (display_pane_function, pane_title_function, condition) def add_context_pane(self, pane_name: str, display_pane_function: Callable, pane_title_function: Callable, condition: Callable | None) -> None: """Add a new context pane to ContextCommand.""" # assure users can toggle the new context corrected_settings_name: str = pane_name.replace(" ", "_") if corrected_settings_name in gef.config["context.layout"]: warn(f"Duplicate name for `{pane_name}` (`{corrected_settings_name}`), skipping") return gef.config["context.layout"] += f" {corrected_settings_name}" self.add_context_layout_mapping(corrected_settings_name, display_pane_function, pane_title_function, condition) def load(self) -> None: """Load all the commands and functions defined by GEF into GDB.""" current_commands = set(self.commands.keys()) new_commands = set(x._cmdline_ for x in __registered_commands__) - current_commands current_functions = set(self.functions.keys()) new_functions = set(x._function_ for x in __registered_functions__) - current_functions self.missing.clear() self.__load_time_ms = time.time()* 1000 # load all new functions for name in sorted(new_functions): for function_cls in __registered_functions__: if function_cls._function_ == name: assert issubclass(function_cls, GenericFunction) self.functions[name] = function_cls() break # load all new commands for name in sorted(new_commands): try: for command_cls in __registered_commands__: if command_cls._cmdline_ == name: assert issubclass(command_cls, GenericCommand) command_instance = command_cls() # create the aliases if any if hasattr(command_instance, "_aliases_"): aliases = getattr(command_instance, "_aliases_") for alias in aliases: GefAlias(alias, name) self.commands[name] = command_instance break except Exception as reason: self.missing[name] = reason self.__load_time_ms = (time.time()* 1000) - self.__load_time_ms return def show_banner(self) -> None: gef_print(f"{Color.greenify('GEF')} for {gef.session.os} ready, " f"type `{Color.colorify('gef', 'underline yellow')}' to start, " f"`{Color.colorify('gef config', 'underline pink')}' to configure") ver = f"{sys.version_info.major:d}.{sys.version_info.minor:d}" gef_print(f"{Color.colorify(str(len(self.commands)), 'bold green')} commands loaded " f"and {Color.colorify(str(len(self.functions)), 'bold blue')} functions added for " f"GDB {Color.colorify(gdb.VERSION, 'bold yellow')} in {self.__load_time_ms:.2f}ms " f"using Python engine {Color.colorify(ver, 'bold red')}") nb_missing = len(self.missing) if nb_missing: warn(f"{Color.colorify(str(nb_missing), 'bold red')} " f"command{'s' if nb_missing > 1 else ''} could not be loaded, " f"run `{Color.colorify('gef missing', 'underline pink')}` to know why.") return class GefHelpCommand(gdb.Command): """GEF help sub-command.""" _cmdline_ = "gef help" _syntax_ = _cmdline_ def __init__(self) -> None: super().__init__(self._cmdline_, gdb.COMMAND_SUPPORT, gdb.COMPLETE_NONE, False) self.docs = [] self.should_refresh = True self.command_size = 0 return def invoke(self, args: Any, from_tty: bool) -> None: self.dont_repeat() gef_print(titlify("GEF - GDB Enhanced Features")) gef_print(str(self)) return def __rebuild(self) -> None: """Rebuild the documentation.""" for name, cmd in gef.gdb.commands.items(): self += (name, cmd) self.command_size = len(gef.gdb.commands) _, cols = get_terminal_size() separator = HORIZONTAL_LINE*cols self.__doc__ = f"\n{separator}\n".join(sorted(self.docs)) self.should_refresh = False return def __add__(self, command: tuple[str, GenericCommand]): """Add command to GEF documentation.""" cmd, class_obj = command if " " in cmd: # do not print subcommands in gef help return self doc = getattr(class_obj, "__doc__", "").lstrip() aliases = f"Aliases: {', '.join(class_obj._aliases_)}" if hasattr(class_obj, "_aliases_") else "" msg = f"{Color.colorify(cmd, 'bold red')}\n{doc}\n{aliases}" self.docs.append(msg) return self def __radd__(self, command: tuple[str, GenericCommand]): return self.__add__(command) def __str__(self) -> str: """Lazily regenerate the `gef help` object if it was modified""" # quick check in case the docs have changed if self.should_refresh or self.command_size != len(gef.gdb.commands): self.__rebuild() return self.__doc__ or "" class GefConfigCommand(gdb.Command): """GEF configuration sub-command This command will help set/view GEF settings for the current debugging session. It is possible to make those changes permanent by running `gef save` (refer to this command help), and/or restore previously saved settings by running `gef restore` (refer help). """ _cmdline_ = "gef config" _syntax_ = f"{_cmdline_} [setting_name] [setting_value]" def __init__(self) -> None: super().__init__(self._cmdline_, gdb.COMMAND_NONE, prefix=False) return def invoke(self, args: str, from_tty: bool) -> None: self.dont_repeat() argv = gdb.string_to_argv(args) argc = len(argv) if not (0 <= argc <= 2): err("Invalid number of arguments") return if argc == 0: gef_print(titlify("GEF configuration settings")) self.print_settings() return if argc == 1: prefix = argv[0] names = [x for x in gef.config.keys() if x.startswith(prefix)] if names: if len(names) == 1: gef_print(titlify(f"GEF configuration setting: {names[0]}")) self.print_setting(names[0], verbose=True) else: gef_print(titlify(f"GEF configuration settings matching '{argv[0]}'")) for name in names: self.print_setting(name) return if not is_debug(): try: self.set_setting(argv) except (ValueError, KeyError) as e: err(str(e)) else: # Let exceptions (if any) propagate self.set_setting(argv) return def print_setting(self, plugin_name: str, verbose: bool = False) -> None: res = gef.config.raw_entry(plugin_name) string_color = gef.config["theme.dereference_string"] misc_color = gef.config["theme.dereference_base_address"] if not res: return _setting = Color.colorify(plugin_name, "green") _type = res.type.__name__ if _type == "str": _value = f'"{Color.colorify(res.value, string_color)}"' else: _value = Color.colorify(res.value, misc_color) gef_print(f"{_setting} ({_type}) = {_value}") if verbose: gef_print(Color.colorify("\nDescription:", "bold underline")) gef_print(f"\t{res.description}") return def print_settings(self) -> None: for x in sorted(gef.config): self.print_setting(x) return def set_setting(self, argv: list[str]) -> bool: global gef key, new_value = argv if "." not in key: err("Invalid command format") return False loaded_commands = list( gef.gdb.commands.keys()) + ["gef"] plugin_name = key.split(".", 1)[0] if plugin_name not in loaded_commands: err(f"Unknown plugin '{plugin_name}'") return False if key not in gef.config: dbg(f"'{key}' is not a valid configuration setting") return False _type = gef.config.raw_entry(key).type # Attempt to parse specific values for known types if _type is bool: if new_value.upper() in ("TRUE", "T", "1"): _newval = True elif new_value.upper() in ("FALSE", "F", "0"): _newval = False else: raise ValueError(f"Cannot parse '{new_value}' as bool") else: _newval = _type(new_value) gef.config[key] = _newval reset_all_caches() return True def complete(self, text: str, word: str) -> list[str]: settings = sorted(gef.config) if text == "": # no prefix: example: `gef config TAB` return [s for s in settings if word in s] if "." not in text: # if looking for possible prefix return [s for s in settings if s.startswith(text.strip())] # finally, look for possible values for given prefix return [s.split(".", 1)[1] for s in settings if s.startswith(text.strip())] class GefSaveCommand(gdb.Command): """GEF save sub-command. Saves the current configuration of GEF to disk (by default in file '~/.gef.rc').""" _cmdline_ = "gef save" _syntax_ = _cmdline_ def __init__(self) -> None: super().__init__(self._cmdline_, gdb.COMMAND_SUPPORT, gdb.COMPLETE_NONE, False) return def invoke(self, args: Any, from_tty: bool) -> None: self.dont_repeat() cfg = configparser.RawConfigParser() old_sect = None # save the configuration for key in sorted(gef.config): sect, optname = key.split(".", 1) value = gef.config[key] if old_sect != sect: cfg.add_section(sect) old_sect = sect cfg.set(sect, optname, value) # save the aliases cfg.add_section("aliases") for alias in gef.session.aliases: cfg.set("aliases", alias.alias, alias.command) with GEF_RC.open("w") as fd: cfg.write(fd) ok(f"Configuration saved to '{GEF_RC}'") return class GefRestoreCommand(gdb.Command): """GEF restore sub-command. Loads settings from file '~/.gef.rc' and apply them to the configuration of GEF.""" _cmdline_ = "gef restore" _syntax_ = _cmdline_ def __init__(self) -> None: super().__init__(self._cmdline_, gdb.COMMAND_SUPPORT, gdb.COMPLETE_NONE, False) self.reload(True) return def invoke(self, args: str, from_tty: bool) -> None: self.dont_repeat() if GEF_RC.is_file(): quiet = (args.lower() == "quiet") self.reload(quiet) return def reload(self, quiet: bool): cfg = configparser.ConfigParser() cfg.read(GEF_RC) for section in cfg.sections(): if section == "aliases": # load the aliases for key in cfg.options(section): try: GefAlias(key, cfg.get(section, key)) except Exception as e: dbg(f"GefAlias() raised exception {e}") continue # load the other options for optname in cfg.options(section): key = f"{section}.{optname}" try: setting = gef.config.raw_entry(key) except Exception: continue new_value = cfg.get(section, optname) if setting.type is bool: new_value = True if new_value.upper() in ("TRUE", "T", "1") else False setting.value = setting.type(new_value) if not quiet: ok(f"Configuration from '{Color.colorify(str(GEF_RC), 'bold blue')}' restored") return class GefMissingCommand(gdb.Command): """GEF missing sub-command Display the GEF commands that could not be loaded, along with the reason of why they could not be loaded. """ _cmdline_ = "gef missing" _syntax_ = _cmdline_ def __init__(self) -> None: super().__init__(self._cmdline_, gdb.COMMAND_SUPPORT, gdb.COMPLETE_NONE, False) return def invoke(self, args: Any, from_tty: bool) -> None: self.dont_repeat() missing_commands: dict[str, Exception] = gef.gdb.missing if not missing_commands: ok("No missing command") return for cmd, exc in missing_commands.items(): warn(f"Missing `{cmd}`: reason: {str(exc)})") return class GefSetCommand(gdb.Command): """Override GDB set commands with the context from GEF.""" _cmdline_ = "gef set" _syntax_ = f"{_cmdline_} [GDB_SET_ARGUMENTS]" def __init__(self) -> None: super().__init__(self._cmdline_, gdb.COMMAND_SUPPORT, gdb.COMPLETE_SYMBOL, False) return def invoke(self, args: Any, from_tty: bool) -> None: self.dont_repeat() args = args.split() cmd = ["set", args[0],] for p in args[1:]: if p.startswith("$_gef"): c = gdb.parse_and_eval(p) cmd.append(c.string()) else: cmd.append(p) gdb.execute(" ".join(cmd)) return class GefRunCommand(gdb.Command): """Override GDB run commands with the context from GEF. Simple wrapper for GDB run command to use arguments set from `gef set args`.""" _cmdline_ = "gef run" _syntax_ = f"{_cmdline_} [GDB_RUN_ARGUMENTS]" def __init__(self) -> None: super().__init__(self._cmdline_, gdb.COMMAND_SUPPORT, gdb.COMPLETE_FILENAME, False) return def invoke(self, args: Any, from_tty: bool) -> None: self.dont_repeat() if is_alive(): gdb.execute("continue") return argv = args.split() gdb.execute(f"gef set args {' '.join(argv)}") gdb.execute("run") return class GefAlias(gdb.Command): """Simple aliasing wrapper because GDB doesn't do what it should.""" def __init__(self, alias: str, command: str, completer_class: int = gdb.COMPLETE_NONE, command_class: int = gdb.COMMAND_NONE) -> None: p = command.split() if not p: return if any(x for x in gef.session.aliases if x.alias == alias): return self.command = command self.alias = alias c = command.split()[0] r = self.lookup_command(c) self.__doc__ = f"Alias for '{Color.greenify(command)}'" if r is not None: _instance = r[1] self.__doc__ += f": {_instance.__doc__}" if hasattr(_instance, "complete"): self.complete = _instance.complete super().__init__(alias, command_class, completer_class=completer_class) gef.session.aliases.append(self) return def __repr__(self) -> str: return f"GefAlias(from={self.alias}, to={self.command})" def __str__(self) -> str: return f"GefAlias(from={self.alias}, to={self.command})" def invoke(self, args: Any, from_tty: bool) -> None: gdb.execute(f"{self.command} {args}", from_tty=from_tty) return def lookup_command(self, cmd: str) -> tuple[str, GenericCommand] | None: global gef for _name, _instance in gef.gdb.commands.items(): if cmd == _name: return _name, _instance return None @register class AliasesCommand(GenericCommand): """Base command to add, remove, or list aliases.""" _cmdline_ = "aliases" _syntax_ = f"{_cmdline_} (add|rm|ls)" def __init__(self) -> None: super().__init__(prefix=True) return def do_invoke(self, _: list[str]) -> None: self.usage() return @register class AliasesAddCommand(AliasesCommand): """Command to add aliases.""" _cmdline_ = "aliases add" _syntax_ = f"{_cmdline_} [ALIAS] [COMMAND]" _example_ = f"{_cmdline_} scope telescope" def __init__(self) -> None: super().__init__() return def do_invoke(self, argv: list[str]) -> None: if len(argv) < 2: self.usage() return GefAlias(argv[0], " ".join(argv[1:])) return @register class AliasesRmCommand(AliasesCommand): """Command to remove aliases.""" _cmdline_ = "aliases rm" _syntax_ = f"{_cmdline_} [ALIAS]" def __init__(self) -> None: super().__init__() return def do_invoke(self, argv: list[str]) -> None: global gef if len(argv) != 1: self.usage() return try: alias_to_remove = next(filter(lambda x: x.alias == argv[0], gef.session.aliases)) gef.session.aliases.remove(alias_to_remove) except (ValueError, StopIteration): err(f"{argv[0]} not found in aliases.") return gef_print("You must reload GEF for alias removals to apply.") return @register class AliasesListCommand(AliasesCommand): """Command to list aliases.""" _cmdline_ = "aliases ls" _syntax_ = _cmdline_ def __init__(self) -> None: super().__init__() return def do_invoke(self, _: list[str]) -> None: ok("Aliases defined:") for a in gef.session.aliases: gef_print(f"{a.alias:30s} {RIGHT_ARROW} {a.command}") return class GefTmuxSetup(gdb.Command): """Setup a comfortable tmux debugging environment.""" def __init__(self) -> None: super().__init__("tmux-setup", gdb.COMMAND_NONE, gdb.COMPLETE_NONE) GefAlias("screen-setup", "tmux-setup") return def invoke(self, args: Any, from_tty: bool) -> None: self.dont_repeat() tmux = os.getenv("TMUX") if tmux: self.tmux_setup() return screen = os.getenv("TERM") if screen is not None and screen == "screen": self.screen_setup() return warn("Not in a tmux/screen session") return def tmux_setup(self) -> None: """Prepare the tmux environment by vertically splitting the current pane, and forcing the context to be redirected there.""" tmux = which("tmux") ok("tmux session found, splitting window...") pane, pty = subprocess.check_output([tmux, "splitw", "-h", '-F#{session_name}:#{window_index}.#{pane_index}-#{pane_tty}', "-P"]).decode().strip().split("-") atexit.register(lambda : subprocess.run([tmux, "kill-pane", "-t", pane])) # clear the screen and let it wait for input forever gdb.execute(f"!'{tmux}' send-keys -t {pane} 'clear ; cat' C-m") gdb.execute(f"!'{tmux}' select-pane -L") ok(f"Setting `context.redirect` to '{pty}'...") gdb.execute(f"gef config context.redirect {pty}") ok("Done!") return def screen_setup(self) -> None: """Hackish equivalent of the tmux_setup() function for screen.""" screen = which("screen") sty = os.getenv("STY") ok("screen session found, splitting window...") fd_script, script_path = tempfile.mkstemp() fd_tty, tty_path = tempfile.mkstemp() os.close(fd_tty) with os.fdopen(fd_script, "w") as f: f.write("startup_message off\n") f.write("split -v\n") f.write("focus right\n") f.write(f"screen bash -c 'tty > {tty_path}; clear; cat'\n") f.write("focus left\n") gdb.execute(f"!'{screen}' -r '{sty}' -m -d -X source {script_path}") # artificial delay to make sure `tty_path` is populated time.sleep(0.25) with open(tty_path, "r") as f: pty = f.read().strip() ok(f"Setting `context.redirect` to '{pty}'...") gdb.execute(f"gef config context.redirect {pty}") ok("Done!") os.unlink(script_path) os.unlink(tty_path) return class GefInstallExtraScriptCommand(gdb.Command): """`gef install` command: installs one or more scripts from the `gef-extras` script repo. Note that the command doesn't check for external dependencies the script(s) might require.""" _cmdline_ = "gef install" _syntax_ = f"{_cmdline_} SCRIPTNAME [SCRIPTNAME [SCRIPTNAME...]]" def __init__(self) -> None: super().__init__(self._cmdline_, gdb.COMMAND_SUPPORT, gdb.COMPLETE_NONE, False) self.branch = gef.config.get("gef.extras_default_branch", GEF_EXTRAS_DEFAULT_BRANCH) return def invoke(self, argv: str, from_tty: bool) -> None: self.dont_repeat() if not argv: err("No script name provided") return args = argv.split() if "--list" in args or "-l" in args: subprocess.run(["xdg-open", f"https://github.com/hugsy/gef-extras/{self.branch}/"]) return self.dirpath = gef.config["gef.tempdir"].expanduser().absolute() if not self.dirpath.is_dir(): err("'gef.tempdir' is not a valid directory") return for script in args: script = script.lower() if not self.__install_extras_script(script): warn(f"Failed to install '{script}', skipping...") return def __install_extras_script(self, script: str) -> bool: fpath = self.dirpath / f"{script}.py" if not fpath.exists(): url = f"https://raw.githubusercontent.com/hugsy/gef-extras/{self.branch}/scripts/{script}.py" info(f"Searching for '{script}.py' in `gef-extras@{self.branch}`...") data = http_get(url) if not data: warn("Not found") return False with fpath.open("wb") as fd: fd.write(data) fd.flush() old_command_set = set(gef.gdb.commands) gdb.execute(f"source {fpath}") new_command_set = set(gef.gdb.commands) new_commands = [f"`{c[0]}`" for c in (new_command_set - old_command_set)] ok(f"Installed file '{fpath}', new command(s) available: {', '.join(new_commands)}") return True # # GEF internal classes # def __gef_prompt__(current_prompt: Callable[[Callable], str]) -> str: """GEF custom prompt function.""" if gef.config["gef.readline_compat"] is True: return GEF_PROMPT if gef.config["gef.disable_color"] is True: return GEF_PROMPT prompt = gef.session.remote.mode.prompt_string() if gef.session.remote else "" prompt += "(core) " if is_target_coredump() else "" prompt += GEF_PROMPT_ON if is_alive() else GEF_PROMPT_OFF return prompt class GefManager(metaclass=abc.ABCMeta): def reset_caches(self) -> None: """Reset the LRU-cached attributes""" for attr in dir(self): try: obj = getattr(self, attr) if not hasattr(obj, "cache_clear"): continue obj.cache_clear() except Exception: # we're resetting the cache here, we don't care if (or which) exception triggers continue return class GefMemoryManager(GefManager): """Class that manages memory access for gef.""" def __init__(self) -> None: self.reset_caches() return def reset_caches(self) -> None: super().reset_caches() self.__maps: list[Section] | None = None return def write(self, address: int, buffer: ByteString, length: int | None = None) -> None: """Write `buffer` at address `address`.""" length = length or len(buffer) gdb.selected_inferior().write_memory(address, buffer, length) def read(self, addr: int, length: int = 0x10) -> bytes: """Return a `length` long byte array with the copy of the process memory at `addr`.""" return gdb.selected_inferior().read_memory(addr, length).tobytes() def read_integer(self, addr: int) -> int: """Return an integer read from memory.""" sz = gef.arch.ptrsize mem = self.read(addr, sz) unpack = u32 if sz == 4 else u64 return unpack(mem) def read_cstring(self, address: int, max_length: int = GEF_MAX_STRING_LENGTH, encoding: str | None = None) -> str: """Return a C-string read from memory.""" encoding = encoding or "unicode-escape" length = min(address | (DEFAULT_PAGE_SIZE-1), max_length+1) try: res_bytes = self.read(address, length) except gdb.error: current_address = address res_bytes = b"" while len(res_bytes) < length: try: # Calculate how many bytes there are until next page next_page = current_address + DEFAULT_PAGE_SIZE page_mask = ~(DEFAULT_PAGE_SIZE - 1) size = (next_page & page_mask) - current_address # Read until the end of the current page res_bytes += self.read(current_address, size) current_address += size except gdb.error: if not res_bytes: err(f"Can't read memory at '{address:#x}'") return "" break try: with warnings.catch_warnings(): # ignore DeprecationWarnings (see #735) warnings.simplefilter("ignore") res = res_bytes.decode(encoding, "strict") except UnicodeDecodeError: # latin-1 as fallback due to its single-byte to glyph mapping res = res_bytes.decode("latin-1", "replace") res = res.split("\x00", 1)[0] ustr = res.replace("\n", "\\n").replace("\r", "\\r").replace("\t", "\\t") if max_length and len(res) > max_length: return f"{ustr[:max_length]}[...]" return ustr def read_ascii_string(self, address: int) -> str | None: """Read an ASCII string from memory""" cstr = self.read_cstring(address) if isinstance(cstr, str) and cstr and all(x in string.printable for x in cstr): return cstr return None @property def maps(self) -> list[Section]: if not self.__maps: maps = self.__parse_maps() if not maps: raise RuntimeError("Failed to determine memory layout") self.__maps = maps return self.__maps def __parse_maps(self) -> list[Section] | None: """Return the mapped memory sections. If the current arch has its maps method defined, then defer to that to generated maps, otherwise, try to figure it out from procfs, then info sections, then monitor info mem.""" if gef.arch.maps is not None: return list(gef.arch.maps()) # Coredumps are the only case where `maintenance info sections` collected more # info than `info proc sections`.so use this unconditionally. See #1154 if is_target_coredump(): return list(self.parse_gdb_maintenance_info_sections()) try: return list(self.parse_gdb_info_proc_maps()) except Exception: pass try: return list(self.parse_procfs_maps()) except Exception: pass try: return list(self.parse_monitor_info_mem()) except Exception: pass raise RuntimeError("Failed to get memory layout") @staticmethod def parse_procfs_maps() -> Generator[Section, None, None]: """Get the memory mapping from procfs.""" procfs_mapfile = gef.session.maps if not procfs_mapfile: is_remote = gef.session.remote is not None raise FileNotFoundError(f"Missing {'remote ' if is_remote else ''}procfs map file") with procfs_mapfile.open("r") as fd: for line in fd: line = line.strip() addr, perm, off, _, rest = line.split(" ", 4) rest = rest.split(" ", 1) if len(rest) == 1: inode = rest[0] pathname = "" else: inode = rest[0] pathname = rest[1].lstrip() addr_start, addr_end = parse_string_range(addr) off = int(off, 16) perm = Permission.from_process_maps(perm) inode = int(inode) yield Section(page_start=addr_start, page_end=addr_end, offset=off, permission=perm, inode=inode, path=pathname) return @staticmethod def parse_gdb_info_proc_maps() -> Generator[Section, None, None]: """Get the memory mapping from GDB's command `info proc mappings`.""" if GDB_VERSION < (11, 0): raise AttributeError("Disregarding old format") output = (gdb.execute("info proc mappings", to_string=True) or "") if not output: raise AttributeError start_idx = output.find("Start Addr") if start_idx == -1: raise AttributeError output = output[start_idx:] lines = output.splitlines() if len(lines) < 2: raise AttributeError # The function assumes the following output format (as of GDB 11+) for `info proc mappings`: # - live process (incl. remote) # ``` # Start Addr End Addr Size Offset Perms objfile # 0x555555554000 0x555555558000 0x4000 0x0 r--p /usr/bin/ls # 0x555555558000 0x55555556c000 0x14000 0x4000 r-xp /usr/bin/ls # [...] # ``` # or # - coredump & rr # ``` # Start Addr End Addr Size Offset objfile # 0x555555554000 0x555555558000 0x4000 0x0 /usr/bin/ls # 0x555555558000 0x55555556c000 0x14000 0x4000 /usr/bin/ls # ``` # In the latter case the 'Perms' header is missing, so mock the Permission to `rwx` so # `dereference` will still work. mock_permission = all(map(lambda x: x.strip() != "Perms", lines[0].split())) for line in lines[1:]: if not line: break parts = [x.strip() for x in line.split()] addr_start, addr_end, _, offset = [int(x, 16) for x in parts[0:4]] if mock_permission: perm = Permission(7) path = " ".join(parts[4:]) if len(parts) >= 4 else "" else: perm = Permission.from_process_maps(parts[4]) path = " ".join(parts[5:]) if len(parts) >= 5 else "" yield Section( page_start=addr_start, page_end=addr_end, offset=offset, permission=perm, path=path, ) return @staticmethod def parse_monitor_info_mem() -> Generator[Section, None, None]: """Get the memory mapping from GDB's command `monitor info mem` This can raise an exception, which the memory manager takes to mean that this method does not work to get a map. """ stream = StringIO(gdb.execute("monitor info mem", to_string=True)) for line in stream: try: ranges, off, perms = line.split() off = int(off, 16) start, end = [int(s, 16) for s in ranges.split("-")] except ValueError: continue perm = Permission.from_monitor_info_mem(perms) yield Section(page_start=start, page_end=end, offset=off, permission=perm) @staticmethod def parse_gdb_maintenance_info_sections() -> Generator[Section, None, None]: """Get the memory mapping from GDB's command `maintenance info sections` (limited info). In some cases (i.e. coredumps), the memory info collected by `info proc sections` is insufficient.""" stream = StringIO(gdb.execute("maintenance info sections", to_string=True)) for line in stream: if not line: break try: parts = line.split() addr_start, addr_end = [int(x, 16) for x in parts[1].split("->")] off = int(parts[3][:-1], 16) path = parts[4] perm = Permission.NONE if "DATA" in parts[5:]: perm |= Permission.READ | Permission.WRITE if "CODE" in parts[5:]: perm |= Permission.READ | Permission.EXECUTE yield Section( page_start=addr_start, page_end=addr_end, offset=off, permission=perm, path=path, ) except IndexError: continue except ValueError: continue @staticmethod def parse_info_mem(): """Get the memory mapping from GDB's command `info mem`. This can be provided by certain gdbserver implementations.""" for line in StringIO(gdb.execute("info mem", to_string=True)): # Using memory regions provided by the target. # Num Enb Low Addr High Addr Attrs # 0 y 0x10000000 0x10200000 flash blocksize 0x1000 nocache # 1 y 0x20000000 0x20042000 rw nocache _, en, start, end, *attrs = line.split() if en != "y": continue if "flash" in attrs: perm = Permission.from_info_mem("r") else: perm = Permission.from_info_mem("rw") yield Section(page_start=int(start, 0), page_end=int(end, 0), permission=perm) def append(self, section: Section): if not self.maps: raise AttributeError("No mapping defined") if not isinstance(section, Section): raise TypeError("section has an invalid type") assert self.__maps for s in self.__maps: if section.overlaps(s): raise RuntimeError(f"{section} overlaps {s}") self.__maps.append(section) return self def __iadd__(self, section: Section): return self.append(section) class GefHeapManager(GefManager): """Class managing session heap.""" def __init__(self) -> None: self.reset_caches() return def reset_caches(self) -> None: self.__libc_main_arena: GlibcArena | None = None self.__libc_selected_arena: GlibcArena | None = None self.__heap_base = None return @property def main_arena(self) -> GlibcArena | None: if not self.__libc_main_arena: try: __main_arena_addr = GefHeapManager.find_main_arena_addr() self.__libc_main_arena = GlibcArena(f"*{__main_arena_addr:#x}") # the initialization of `main_arena` also defined `selected_arena`, so # by default, `main_arena` == `selected_arena` self.selected_arena = self.__libc_main_arena except Exception: # the search for arena can fail when the session is not started pass return self.__libc_main_arena @main_arena.setter def main_arena(self, value: GlibcArena) -> None: self.__libc_main_arena = value return @staticmethod @lru_cache() def find_main_arena_addr() -> int: assert gef.libc.version """A helper function to find the glibc `main_arena` address, either from symbol, from its offset from `__malloc_hook` or by brute force.""" # Before anything else, use libc offset from config if available if gef.config["gef.main_arena_offset"]: try: libc_base = get_section_base_address("libc") offset: int = gef.config["gef.main_arena_offset"] if libc_base: dbg(f"Using main_arena_offset={offset:#x} from config") addr = libc_base + offset # Verify the found address before returning if GlibcArena.verify(addr): return addr except gdb.error: pass # First, try to find `main_arena` symbol directly try: return parse_address(f"&{LIBC_HEAP_MAIN_ARENA_DEFAULT_NAME}") except gdb.error: pass # Second, try to find it by offset from `__malloc_hook` if gef.libc.version < (2, 34): try: malloc_hook_addr = parse_address("(void *)&__malloc_hook") struct_size = ctypes.sizeof(GlibcArena.malloc_state_t()) if is_x86(): addr = align_address_to_size(malloc_hook_addr + gef.arch.ptrsize, 0x20) elif is_arch(Elf.Abi.AARCH64): addr = malloc_hook_addr - gef.arch.ptrsize*2 - struct_size elif is_arch(Elf.Abi.ARM): addr = malloc_hook_addr - gef.arch.ptrsize - struct_size else: addr = None # Verify the found address before returning if addr and GlibcArena.verify(addr): return addr except gdb.error: pass # Last resort, try to find it via brute force if enabled in settings if gef.config["gef.bruteforce_main_arena"]: alignment = 0x8 try: dbg("Trying to bruteforce main_arena address") # setup search_range for `main_arena` to `.data` of glibc def search_filter(zone: Zone) -> bool: return "libc" in pathlib.Path(zone.filename).name and zone.name == ".data" for dotdata in list(filter(search_filter, get_info_files())): search_range = range(dotdata.zone_start, dotdata.zone_end, alignment) # find first possible candidate for addr in search_range: if GlibcArena.verify(addr): dbg(f"Found candidate at {addr:#x}") return addr dbg("Bruteforce not successful") except Exception: pass # Nothing helped err_msg = f"Cannot find main_arena for {gef.arch.arch}. You might want to set a manually found libc offset " if not gef.config["gef.bruteforce_main_arena"]: err_msg += "or allow bruteforcing " err_msg += "through the GEF config." raise OSError(err_msg) @property def selected_arena(self) -> GlibcArena | None: if not self.__libc_selected_arena: # `selected_arena` must default to `main_arena` self.__libc_selected_arena = self.main_arena return self.__libc_selected_arena @selected_arena.setter def selected_arena(self, value: GlibcArena) -> None: self.__libc_selected_arena = value return @property def arenas(self) -> list | Iterator[GlibcArena]: if not self.main_arena: return [] return iter(self.main_arena) @property def base_address(self) -> int | None: if not self.__heap_base: base = 0 try: base = parse_address("mp_->sbrk_base") base = self.malloc_align_address(base) except gdb.error: # missing symbol, try again base = 0 if not base: base = get_section_base_address("[heap]") self.__heap_base = base return self.__heap_base @property def chunks(self) -> list | Iterator: if not self.base_address: return [] return iter(GlibcChunk(self.base_address, from_base=True)) @property def min_chunk_size(self) -> int: return 4 * gef.arch.ptrsize @property def malloc_alignment(self) -> int: assert gef.libc.version __default_malloc_alignment = 0x10 if gef.libc.version >= (2, 26) and is_x86_32(): # Special case introduced in Glibc 2.26: # https://elixir.bootlin.com/glibc/glibc-2.26/source/sysdeps/i386/malloc-alignment.h#L22 return __default_malloc_alignment # Generic case: # https://elixir.bootlin.com/glibc/glibc-2.26/source/sysdeps/generic/malloc-alignment.h#L22 return 2 * gef.arch.ptrsize def csize2tidx(self, size: int) -> int: return abs((size - self.min_chunk_size + self.malloc_alignment - 1)) // self.malloc_alignment def tidx2size(self, idx: int) -> int: return idx * self.malloc_alignment + self.min_chunk_size def malloc_align_address(self, address: int) -> int: """Align addresses according to glibc's MALLOC_ALIGNMENT. See also Issue #689 on Github""" def ceil(n: float) -> int: return int(-1 * n // 1 * -1) malloc_alignment = self.malloc_alignment return malloc_alignment * ceil((address / malloc_alignment)) class GefSetting: """Basic class for storing gef settings as objects""" def __init__(self, value: Any, cls: type | None = None, description: str | None = None, hooks: dict[str, list[Callable]] | None = None) -> None: self.value = value self.type = cls or type(value) self.description = description or "" self.hooks: dict[str, list[Callable]] = collections.defaultdict(list) if not hooks: hooks = {"on_read": [], "on_write": [], "on_changed": []} for access, funcs in hooks.items(): self.add_hook(access, funcs) return def __str__(self) -> str: return f"Setting(type={self.type.__name__}, value='{self.value}', desc='{self.description[:10]}...', " \ f"read_hooks={len(self.hooks['on_read'])}, write_hooks={len(self.hooks['on_write'])}, "\ f"changed_hooks={len(self.hooks['on_changed'])})" def add_hook(self, access: str, funcs: list[Callable]): if access not in ("on_read", "on_write", "on_changed"): raise ValueError("invalid access type") for func in funcs: if not callable(func): raise ValueError("hook is not callable") self.hooks[access].append(func) return self @staticmethod def no_spaces(value: pathlib.Path): if " " in str(value): raise ValidationError("setting cannot contain spaces") @staticmethod def must_exist(value: pathlib.Path): if not value or not pathlib.Path(value).expanduser().absolute().exists(): raise ValidationError("specified path must exist") @staticmethod def create_folder_tree(value: pathlib.Path): value.mkdir(0o755, exist_ok=True, parents=True) class GefSettingsManager(dict): """ GefSettings acts as a dict where the global settings are stored and can be read, written or deleted as any other dict. For instance, to read a specific command setting: `gef.config[mycommand.mysetting]` """ def __getitem__(self, name: str) -> Any: setting : GefSetting = super().__getitem__(name) self.__invoke_read_hooks(setting) return setting.value def __setitem__(self, name: str, value: Any) -> None: # check if the key exists if super().__contains__(name): # if so, update its value directly setting = super().__getitem__(name) if not isinstance(setting, GefSetting): raise TypeError new_value = setting.type(value) dbg(f"in __invoke_changed_hooks(\"{name}\"), setting.value={setting.value} -> new_value={new_value}, changing={bool(setting.value != new_value)}") self.__invoke_changed_hooks(setting, new_value) self.__invoke_write_hooks(setting, new_value) setting.value = new_value return # if not, assert `value` is a GefSetting, then insert it if not isinstance(value, GefSetting): raise TypeError("Invalid argument") if not value.type: raise TypeError("Invalid type") if not value.description: raise AttributeError("Invalid description") setting = value value = setting.value self.__invoke_write_hooks(setting, value) super().__setitem__(name, setting) return def __delitem__(self, name: str) -> None: return super().__delitem__(name) def raw_entry(self, name: str) -> GefSetting: return super().__getitem__(name) def __invoke_read_hooks(self, setting: GefSetting) -> None: for callback in setting.hooks["on_read"]: callback() return def __invoke_changed_hooks(self, setting: GefSetting, new_value: Any) -> None: old_value = setting.value if old_value == new_value: return for callback in setting.hooks["on_changed"]: callback(old_value, new_value) def __invoke_write_hooks(self, setting: GefSetting, new_value: Any) -> None: for callback in setting.hooks["on_write"]: callback(new_value) class GefSessionManager(GefManager): """Class managing the runtime properties of GEF. """ def __init__(self) -> None: self.reset_caches() self.remote: "GefRemoteSessionManager | None" = None self.remote_initializing: bool = False self.qemu_mode: bool = False self.coredump_mode: bool | None = None self.convenience_vars_index: int = 0 self.heap_allocated_chunks: list[tuple[int, int]] = [] self.heap_freed_chunks: list[tuple[int, int]] = [] self.heap_uaf_watchpoints: list[UafWatchpoint] = [] self.pie_breakpoints: dict[int, PieVirtualBreakpoint] = {} self.pie_counter: int = 1 self.aliases: list[GefAlias] = [] self.modules: list[FileFormat] = [] self.constants = {} # a dict for runtime constants (like 3rd party file paths) for constant in ("python3", "readelf", "nm", "file", "ps"): self.constants[constant] = which(constant) return def reset_caches(self) -> None: super().reset_caches() self._auxiliary_vector = None self._pagesize = None self._os = None self._pid = None self._file = None self._maps: pathlib.Path | None = None self._root: pathlib.Path | None = None return def __str__(self) -> str: _type = "Local" if self.remote is None else f"Remote/{self.remote.mode}" return f"Session(type={_type}, pid={self.pid or 'Not running'}, os='{self.os}')" def __repr__(self) -> str: return str(self) @property def auxiliary_vector(self) -> dict[str, int] | None: if not is_alive(): return None if is_qemu_system(): return None if not self._auxiliary_vector: auxiliary_vector = {} auxv_info = gdb.execute("info auxv", to_string=True) or "" if not auxv_info or "failed" in auxv_info: err("Failed to query auxiliary variables") return None for line in auxv_info.splitlines(): line = line.split('"')[0].strip() # remove the ending string (if any) line = line.split() # split the string by whitespace(s) if len(line) < 4: continue __av_type = line[1] __av_value = line[-1] auxiliary_vector[__av_type] = int(__av_value, base=0) self._auxiliary_vector = auxiliary_vector return self._auxiliary_vector @property def os(self) -> str: """Return the current OS.""" if not self._os: self._os = platform.system().lower() return self._os @property def pid(self) -> int: """Return the PID of the target process.""" if not self._pid: pid = gdb.selected_inferior().pid if not self.qemu_mode else gdb.selected_thread().ptid[1] if not pid: raise RuntimeError("cannot retrieve PID for target process") self._pid = pid return self._pid @property def file(self) -> pathlib.Path | None: """Return a Path object of the target process.""" if self.remote is not None: return self.remote.file progspace = gdb.current_progspace() assert progspace fpath: str = progspace.filename or "" if fpath and not self._file: self._file = pathlib.Path(fpath).expanduser() return self._file @property def cwd(self) -> pathlib.Path | None: if self.remote is not None: return self.remote.root return self.file.parent if self.file else None @property def pagesize(self) -> int: """Get the system page size""" auxval = self.auxiliary_vector if not auxval: return DEFAULT_PAGE_SIZE self._pagesize = auxval["AT_PAGESZ"] return self._pagesize @property def canary(self) -> tuple[int, int] | None: """Return a tuple of the canary address and value, read from the canonical location if supported by the architecture. Otherwise, read from the auxiliary vector.""" try: canary_location = gef.arch.canary_address() canary = gef.memory.read_integer(canary_location) except (NotImplementedError, gdb.error): # Fall back to `AT_RANDOM`, which is the original source # of the canary value but not the canonical location return self.original_canary return canary, canary_location @property def original_canary(self) -> tuple[int, int] | None: """Return a tuple of the initial canary address and value, read from the auxiliary vector.""" auxval = self.auxiliary_vector if not auxval: return None canary_location = auxval["AT_RANDOM"] canary = gef.memory.read_integer(canary_location) canary &= ~0xFF return canary, canary_location @property def maps(self) -> pathlib.Path | None: """Returns the Path to the procfs entry for the memory mapping.""" if not is_alive(): return None if not self._maps: if self.remote is not None: self._maps = self.remote.maps else: self._maps = pathlib.Path(f"/proc/{self.pid}/maps") return self._maps @property def root(self) -> pathlib.Path | None: """Returns the path to the process's root directory.""" if not is_alive(): return None if not self._root: self._root = pathlib.Path(f"/proc/{self.pid}/root") return self._root class GefRemoteSessionManager(GefSessionManager): """Class for managing remote sessions with GEF. It will create a temporary environment designed to clone the remote one.""" class RemoteMode(enum.IntEnum): GDBSERVER = 0 QEMU = 1 RR = 2 def __str__(self): return self.name def __repr__(self): return f"RemoteMode = {str(self)} ({int(self)})" def prompt_string(self) -> str: match self: case GefRemoteSessionManager.RemoteMode.QEMU: return Color.boldify("(qemu) ") case GefRemoteSessionManager.RemoteMode.RR: return Color.boldify("(rr) ") case GefRemoteSessionManager.RemoteMode.GDBSERVER: return Color.boldify("(remote) ") raise AttributeError("Unknown value") def __init__(self, host: str, port: int, pid: int =-1, qemu: pathlib.Path | None = None) -> None: super().__init__() self.__host = host self.__port = port self.__local_root_fd = tempfile.TemporaryDirectory() self.__local_root_path = pathlib.Path(self.__local_root_fd.name) self.__qemu = qemu if pid > 0: self._pid = pid if self.__qemu is not None: self._mode = GefRemoteSessionManager.RemoteMode.QEMU elif os.environ.get("GDB_UNDER_RR", None) == "1": self._mode = GefRemoteSessionManager.RemoteMode.RR else: self._mode = GefRemoteSessionManager.RemoteMode.GDBSERVER def close(self) -> None: self.__local_root_fd.cleanup() try: gef_on_new_unhook(self.remote_objfile_event_handler) gef_on_new_hook(new_objfile_handler) except Exception as e: warn(f"Exception while restoring local context: {str(e)}") raise def __str__(self) -> str: return f"RemoteSession(target='{self.target}', local='{self.root}', pid={self.pid}, mode={self.mode})" def __repr__(self) -> str: return str(self) @property def target(self) -> str: return f"{self.__host}:{self.__port}" @property def root(self) -> pathlib.Path: return self.__local_root_path.absolute() @property def file(self) -> pathlib.Path: """Path to the file being debugged as seen by the remote endpoint.""" if not self._file: progspace = gdb.current_progspace() if not progspace: raise RuntimeError("No session started") filename = progspace.filename if not filename: raise RuntimeError("No session started") start_idx = len("target:") if filename.startswith("target:") else 0 self._file = pathlib.Path(filename[start_idx:]) return self._file @property def lfile(self) -> pathlib.Path: """Local path to the file being debugged.""" return self.root / str(self.file).lstrip("/") @property def maps(self) -> pathlib.Path: if not self._maps: self._maps = self.root / f"proc/{self.pid}/maps" return self._maps @property def mode(self) -> RemoteMode: return self._mode def sync(self, src: str, dst: str | None = None) -> bool: """Copy the `src` into the temporary chroot. If `dst` is provided, that path will be used instead of `src`.""" if not dst: dst = src tgt = self.root / dst.lstrip("/") if tgt.exists(): return True tgt.parent.mkdir(parents=True, exist_ok=True) dbg(f"[remote] downloading '{src}' -> '{tgt}'") gdb.execute(f"remote get '{src}' '{tgt.absolute()}'") return tgt.exists() def connect(self, pid: int) -> bool: """Connect to remote target. If in extended mode, also attach to the given PID.""" # before anything, register our new hook to download files from the remote target dbg("[remote] Installing new objfile handlers") try: gef_on_new_unhook(new_objfile_handler) except SystemError: # the default objfile handler might already have been removed, ignore failure pass gef_on_new_hook(self.remote_objfile_event_handler) # then attempt to connect is_extended_mode = (pid > -1) dbg(f"[remote] Enabling extended remote: {bool(is_extended_mode)}") try: with DisableContextOutputContext(): cmd = f"target {'extended-' if is_extended_mode else ''}remote {self.target}" dbg(f"[remote] Executing '{cmd}'") gdb.execute(cmd) if is_extended_mode: gdb.execute(f"attach {pid:d}") return True except Exception as e: err(f"Failed to connect to {self.target}: {e}") # a failure will trigger the cleanup, deleting our hook anyway return False def setup(self) -> bool: # setup remote adequately depending on remote or qemu mode match self.mode: case GefRemoteSessionManager.RemoteMode.QEMU: dbg(f"Setting up as qemu session, target={self.__qemu}") self.__setup_qemu() case GefRemoteSessionManager.RemoteMode.RR: dbg("Setting up as rr session") self.__setup_rr() case GefRemoteSessionManager.RemoteMode.GDBSERVER: dbg("Setting up as remote session") self.__setup_remote() case _: raise ValueError # refresh gef to consider the binary reset_all_caches() gef.binary = Elf(self.lfile) reset_architecture() return True def __setup_qemu(self) -> bool: # setup emulated file in the chroot assert self.__qemu target = self.root / str(self.__qemu.parent).lstrip("/") target.mkdir(parents=True, exist_ok=False) shutil.copy2(self.__qemu, target) self._file = self.__qemu assert self.lfile.exists() # create a procfs procfs = self.root / f"proc/{self.pid}/" procfs.mkdir(parents=True, exist_ok=True) ## /proc/pid/cmdline cmdline = procfs / "cmdline" if not cmdline.exists(): with cmdline.open("w") as fd: fd.write("") ## /proc/pid/environ environ = procfs / "environ" if not environ.exists(): with environ.open("wb") as fd: fd.write(b"PATH=/bin\x00HOME=/tmp\x00") ## /proc/pid/maps maps = procfs / "maps" if not maps.exists(): with maps.open("w") as fd: fname = self.file.absolute() mem_range = "00000000-ffffffff" if is_32bit() else "0000000000000000-ffffffffffffffff" fd.write(f"{mem_range} rwxp 00000000 00:00 0 {fname}\n") return True def __setup_remote(self) -> bool: # get the file fpath = f"/proc/{self.pid}/exe" if not self.sync(fpath, str(self.file)): err(f"'{fpath}' could not be fetched on the remote system.") return False # pseudo procfs for _file in ("maps", "environ", "cmdline"): fpath = f"/proc/{self.pid}/{_file}" if not self.sync(fpath): err(f"'{fpath}' could not be fetched on the remote system.") return False return True def __setup_rr(self) -> bool: # # Simply override the local root path, the binary must exist # on the host. # self.__local_root_path = pathlib.Path("/") return True def remote_objfile_event_handler(self, evt: "gdb.NewObjFileEvent") -> None: dbg(f"[remote] in remote_objfile_handler({evt.new_objfile.filename if evt else 'None'}))") if not evt or not evt.new_objfile.filename: return if not evt.new_objfile.filename.startswith("target:") and not evt.new_objfile.filename.startswith("/"): warn(f"[remote] skipping '{evt.new_objfile.filename}'") return if evt.new_objfile.filename.startswith("target:"): src: str = evt.new_objfile.filename[len("target:"):] if not self.sync(src): raise FileNotFoundError(f"Failed to sync '{src}'") return class GefUiManager(GefManager): """Class managing UI settings.""" def __init__(self) -> None: self.redirect_fd : TextIOWrapper | None = None self.context_hidden = False self.stream_buffer : StringIO | None = None self.highlight_table: dict[str, str] = {} self.watches: dict[int, tuple[int, str]] = {} self.context_messages: list[tuple[str, str]] = [] return class GefLibcManager(GefManager): """Class managing everything libc-related (except heap).""" PATTERN_LIBC_VERSION_MEMORY = re.compile(rb"glibc (\d+)\.(\d+)") PATTERN_LIBC_VERSION_FILENAME = re.compile(r"libc6?[-_](\d+)\.(\d+)\.so") def __init__(self) -> None: self._version : tuple[int, int] | None = None self._patch: int | None = None self._release: str | None = None return def __str__(self) -> str: return f"Libc(version='{self.version}')" @property def version(self) -> tuple[int, int] | None: if not is_alive(): return None if not self._version: self._version = GefLibcManager.find_libc_version() # Whenever auto-detection fails, try use the user-provided version. if self._version == (0, 0): if gef.config["gef.libc_version"]: ver = [int(v) for v in gef.config["gef.libc_version"].split(".", 1)] assert len(ver) >= 2 self._version = ver[0], ver[1] return self._version @staticmethod @lru_cache() def find_libc_version() -> tuple[int, int]: """Attempt to determine the libc version. This operation can be long.""" libc_sections = (m for m in gef.memory.maps if "libc" in m.path and m.permission & Permission.READ) for section in libc_sections: # Try to determine from the filepath match = re.search(GefLibcManager.PATTERN_LIBC_VERSION_FILENAME, section.path) if match: return int(match.group(1)), int(match.group(2)) # Try to determine from memory try: mem = gef.memory.read(section.page_start, section.size) match = re.search(GefLibcManager.PATTERN_LIBC_VERSION_MEMORY, mem) if match: return int(match.group(1)), int(match.group(2)) except gdb.MemoryError: continue return 0, 0 class Gef: """The GEF root class, which serves as a entrypoint for all the debugging session attributes (architecture, memory, settings, etc.).""" binary: FileFormat | None arch: Architecture config : GefSettingsManager ui: GefUiManager libc: GefLibcManager memory : GefMemoryManager heap : GefHeapManager session : GefSessionManager gdb: GefCommand def __init__(self) -> None: self.binary: FileFormat | None = None self.arch: Architecture = GenericArchitecture() # see PR #516, will be reset by `new_objfile_handler` self.arch_reason: str = "This is the default architecture" self.config = GefSettingsManager() self.ui = GefUiManager() self.libc = GefLibcManager() return def __str__(self) -> str: return f"Gef(binary='{self.binary or 'None'}', arch={self.arch})" def reinitialize_managers(self) -> None: """Reinitialize the managers. Avoid calling this function directly, using `pi reset()` is preferred""" self.memory = GefMemoryManager() self.heap = GefHeapManager() self.session = GefSessionManager() return def setup(self) -> None: """Setup initialize the runtime setup, which may require for the `gef` to be not None.""" self.reinitialize_managers() self.gdb = GefCommand() self.gdb.setup() gdb.execute(f"save gdb-index '{self.config['gef.tempdir']}'") return def reset_caches(self) -> None: """Recursively clean the cache of all the managers. Avoid calling this function directly, using `reset-cache` is preferred""" for mgr in (self.memory, self.heap, self.session, self.arch): mgr.reset_caches() return def target_remote_posthook(): if gef.session.remote_initializing: return gef.session.remote = GefRemoteSessionManager("", 0) if not gef.session.remote.setup(): raise EnvironmentError(f"Failed to create a proper environment for {gef.session.remote}") if __name__ == "__main__": if sys.version_info[0] == 2: err("GEF has dropped Python2 support for GDB when it reached EOL on 2020/01/01.") err("If you require GEF for GDB+Python2, use https://github.com/hugsy/gef-legacy.") exit(1) if GDB_VERSION < GDB_MIN_VERSION or PYTHON_VERSION < PYTHON_MIN_VERSION: err("You're using an old version of GDB. GEF will not work correctly. " f"Consider updating to GDB {'.'.join(map(str, GDB_MIN_VERSION))} or higher " f"(with Python {'.'.join(map(str, PYTHON_MIN_VERSION))} or higher).") exit(1) # setup config gdb_initial_settings = ( "set confirm off", "set verbose off", "set pagination off", "set print elements 0", "set history save on", f"set history filename {os.getenv('GDBHISTFILE', '~/.gdb_history')}", "set output-radix 0x10", "set print pretty on", "set disassembly-flavor intel", "handle SIGALRM print nopass", ) for cmd in gdb_initial_settings: try: gdb.execute(cmd) except gdb.error: pass # set fallback 'debug-file-directory' for gdbs that installed outside `/usr`. try: default_dbgsym_path = "/usr/lib/debug" param_name = "debug-file-directory" dbgsym_paths = gdb.parameter(param_name) if not isinstance(dbgsym_paths, str): raise TypeError if default_dbgsym_path not in dbgsym_paths: newpath = f"{dbgsym_paths}:" if dbgsym_paths else "" newpath += default_dbgsym_path gdb.execute(f"set {param_name} {newpath}") except gdb.error as e: warn(f"Failed to set {param_name}, reason: {str(e)}") # load GEF, set up the managers and load the plugins, functions, gef = Gef() reset() assert isinstance(gef, Gef) gef.gdb.load() gef.gdb.show_banner() # load config if gef.gdb.load_extra_plugins(): # reload settings gdb.execute("gef restore") # setup gdb prompt gdb.prompt_hook = __gef_prompt__ # gdb events configuration gef_on_continue_hook(continue_handler) gef_on_stop_hook(hook_stop_handler) gef_on_new_hook(new_objfile_handler) gef_on_exit_hook(exit_handler) gef_on_memchanged_hook(memchanged_handler) gef_on_regchanged_hook(regchanged_handler) progspace = gdb.current_progspace() if progspace and progspace.filename: # if here, we are sourcing gef from a gdb session already attached, force call to new_objfile (see issue #278) new_objfile_handler(None) GefTmuxSetup() if GDB_VERSION > (9, 0): disable_tr_overwrite_setting = "gef.disable_target_remote_overwrite" if not gef.config[disable_tr_overwrite_setting]: warnmsg = ("Using `target remote` with GEF should work in most cases, " "but use `gef-remote` if you can. You can disable the " "overwrite of the `target remote` command by toggling " f"`{disable_tr_overwrite_setting}` in the config.") hook = f""" define target hookpost-{{}} pi target_remote_posthook() context pi if calling_function() != "connect": warn("{warnmsg}") end """ # Register a post-hook for `target remote` that initialize the remote session gdb.execute(hook.format("remote")) gdb.execute(hook.format("extended-remote")) else: errmsg = ("Using `target remote` does not work, use `gef-remote` " f"instead. You can toggle `{disable_tr_overwrite_setting}` " "if this is not desired.") hook = f"""pi if calling_function() != "connect": err("{errmsg}")""" gdb.execute(f"define target hook-remote\n{hook}\nend") gdb.execute(f"define target hook-extended-remote\n{hook}\nend") # restore saved breakpoints (if any) bkp_fpath = pathlib.Path(gef.config["gef.autosave_breakpoints_file"]).expanduser().absolute() if bkp_fpath.is_file(): gdb.execute(f"source {bkp_fpath}") # Add a `source` post hook to force gef to recheck the registered plugins and # eventually load the missing one(s) gdb.execute("define hookpost-source\npi gef.gdb.load()\nend") ================================================ FILE: get-pip.py ================================================ #!/usr/bin/env python # # Hi There! # # You may be wondering what this giant blob of binary data here is, you might # even be worried that we're up to something nefarious (good for you for being # paranoid!). This is a base85 encoding of a zip file, this zip file contains # an entire copy of pip (version 26.0.1). # # Pip is a thing that installs packages, pip itself is a package that someone # might want to install, especially if they're looking to run this get-pip.py # script. Pip has a lot of code to deal with the security of installing # packages, various edge cases on various platforms, and other such sort of # "tribal knowledge" that has been encoded in its code base. Because of this # we basically include an entire copy of pip inside this blob. We do this # because the alternatives are attempt to implement a "minipip" that probably # doesn't do things correctly and has weird edge cases, or compress pip itself # down into a single file. # # If you're wondering how this is created, it is generated using # `scripts/generate.py` in https://github.com/pypa/get-pip. import sys this_python = sys.version_info[:2] min_version = (3, 9) if this_python < min_version: message_parts = [ "This script does not work on Python {}.{}.".format(*this_python), "The minimum supported Python version is {}.{}.".format(*min_version), "Please use https://bootstrap.pypa.io/pip/{}.{}/get-pip.py instead.".format(*this_python), ] print("ERROR: " + " ".join(message_parts)) sys.exit(1) import os.path import pkgutil import shutil import tempfile import argparse import importlib from base64 import b85decode def include_setuptools(args): """ Install setuptools only if absent, not excluded and when using Python <3.12. """ cli = not args.no_setuptools env = not os.environ.get("PIP_NO_SETUPTOOLS") absent = not importlib.util.find_spec("setuptools") python_lt_3_12 = this_python < (3, 12) return cli and env and absent and python_lt_3_12 def include_wheel(args): """ Install wheel only if absent, not excluded and when using Python <3.12. """ cli = not args.no_wheel env = not os.environ.get("PIP_NO_WHEEL") absent = not importlib.util.find_spec("wheel") python_lt_3_12 = this_python < (3, 12) return cli and env and absent and python_lt_3_12 def determine_pip_install_arguments(): pre_parser = argparse.ArgumentParser() pre_parser.add_argument("--no-setuptools", action="store_true") pre_parser.add_argument("--no-wheel", action="store_true") pre, args = pre_parser.parse_known_args() args.append("pip") if include_setuptools(pre): args.append("setuptools") if include_wheel(pre): args.append("wheel") return ["install", "--upgrade", "--force-reinstall"] + args def monkeypatch_for_cert(tmpdir): """Patches `pip install` to provide default certificate with the lowest priority. This ensures that the bundled certificates are used unless the user specifies a custom cert via any of pip's option passing mechanisms (config, env-var, CLI). A monkeypatch is the easiest way to achieve this, without messing too much with the rest of pip's internals. """ from pip._internal.commands.install import InstallCommand # We want to be using the internal certificates. cert_path = os.path.join(tmpdir, "cacert.pem") with open(cert_path, "wb") as cert: cert.write(pkgutil.get_data("pip._vendor.certifi", "cacert.pem")) install_parse_args = InstallCommand.parse_args def cert_parse_args(self, args): if not self.parser.get_default_values().cert: # There are no user provided cert -- force use of bundled cert self.parser.defaults["cert"] = cert_path # calculated above return install_parse_args(self, args) InstallCommand.parse_args = cert_parse_args def bootstrap(tmpdir): monkeypatch_for_cert(tmpdir) # Execute the included pip and use it to install the latest pip and # any user-requested packages from PyPI. from pip._internal.cli.main import main as pip_entry_point args = determine_pip_install_arguments() sys.exit(pip_entry_point(args)) def main(): tmpdir = None try: # Create a temporary working directory tmpdir = tempfile.mkdtemp() # Unpack the zipfile into the temporary directory pip_zip = os.path.join(tmpdir, "pip.zip") with open(pip_zip, "wb") as fp: fp.write(b85decode(DATA.replace(b"\n", b""))) # Add the zipfile to sys.path so that we can import it sys.path.insert(0, pip_zip) # Run the bootstrap bootstrap(tmpdir=tmpdir) finally: # Clean up our temporary working directory if tmpdir: shutil.rmtree(tmpdir, ignore_errors=True) DATA = b""" P)h>@6aWAK2modQMO=`r3jO*3003hF000jF003}la4%n9X>MtBUtcb8c|DLpOT<77h41q#LNB_YQx$P _LBWgQMLc*D8D`sbcc9G-N$OJY$D3Aa7|8JQcznE$^8g`qqmGOrKpIMBg-Db&YRV+eh476m_P6^ZR5y 42%3oK`xfVMZVxsfN2iZZNL_bCO3x41&6PkHm8@POeM7nceQ&rW+F$vg|&=^hb5v1W%RJ>aPU(6cYHqEdW)S|}J%LND`994_#>iUrMIPQIuhq_E9)|Oc(krAcd- ag#>m2BDFT!}e+Sn2$z7U_|cr;<&TwWo06SPJqV3Zu11|Kd{1#{B|NO9KQH000080A>M2TyOWU*SrA$ 09FG401p5F0B~t=FJE76VQFq(UoLQYT~bSL+b|5i`&SU@!Oq~iIS)&L9d|8u8wNv=>6nNu38Ea&`}HF gyJ@GB9{e8sD4K$g2|O2c-|@;t@dR%;`5Qu6f^i+#IYx8|79X$VF3?d#n|xfMkA8wQAoLVDffU76;J# O)CYUtTKs|(rtOUt}xq0efX64y=-}wYe4gv+Rewsv@!47DzwFn{pMIm#X%sAFClIW>99{f@Za2e3a^U Yte1H%y3GHUTlK2Lp_T}m3nsgC)$#bX09kug6MU#nM~&r24-0~c2yu2!TgU+z6 -O~;x-O@YkJ|0dA=sY-F^F})aITrzTyS?O7N5T~%P_vE*{#XPt(tDzVC+>eZ42i!91eGvPx8>ysJFuZ iRYzlCqu4no3L)R_c2M{&P)haML0zYtRpKw0?HZ~t=E9}0<93*a^reKp2wsiXosqFv#$q{3!PIV@d3Fa6TvSqmUyJeY&DcVg-E}? LbjUB1cn%!C6%kRp-;$05^P^$8se4pYUP)h>@6aWAK2modQMO-Bu+MCq^00625000#L003}la4%n9aA |NYa&>NQWpZC%E^v8$RKZT$KoGtAD+Y6@Eg2UujN70@J3Ari?w5UCxep1%xiq>fmEIFl6B?A3x Sz!*+f%5d4fHxHF8jFN1eGgxmyrJk!>JJ`PlvdTodP;jzGLU-v4$e!DeT^^-gWwoG9{qx@+7nu*j3%O 0ExlT)Qu!9LHDH>L!H(!_=TwzaVV^*pl)kx9tbG)rYeKk&*k^&wU| $S++58k3m8Lmp1|ig2!b4ofsJt9M%#5f0yqZW);I!nuZ_h3=&|S?TPxwZ$eyWfgq*)nizNtGA>RzSi7l{Y^XYU+CfY_u!@m%Gi-d@I{#hxVgPE$YI@mc<6gykr_e}b+f9t|3q=xfugZ)@gfN(Wtk;Ae`plH gH3naii$Ja*F(o1`fzI*wHS@|Is4%u)thLF4yj@}qyYiY&_b_ZOX8r%fBrv1Y-*UW9nT9_LmT00^xl2ROe(l1bGhRx+qTh)+F%!n@6aWAK2modQMO@9tz%{@C 0015V000aC003}la4&FqE_8WtWn?9eu};M>3`O^T#obt*`VR~YY;QnfHmzwbC3ciJh5S8E87&>(bBYv 517WkANp~bsMyYmG$}2ukNeuDHNG^#ptMd*~JcpmA56q`#0W5TpB>IYnZ>tlx>JJR-$h|q#9KFT3l$T hGovM`Z`h1@k{0zqrjTIlGh#re*%w%#go%(3HWDhs}=jz2OtQ*5LjXNW#DIpx4DusYoy!{s5eCbN6)& t+MoumghxP_Ew!2Ru`@Lf_lF*R=M@&`~$0|XQR000O8W&uT94Q=skH~|0v{{a9182|tPaA|NaUukZ1W pZv|Y%gD5X>MtBUtcb8d3902O2j}6z0X&K^|A$>UIcYPkDkPnH<2>irfpz4GbE`?!H+ksuHwO5@(7QY mzSRN1WnV=Ix{v6&{Q%jgp{%drJTgMe&rM@zM-VZDMUXjMLCn3mGKjpdOy)FFJHi-B!6Xp$ye9WBWs{t8H%Aoj)?NPZQs-QU#tW48fd@H2B+*w7B)Fj?> 6vg5~1s84KhUNP=n=m34#ctYLP=-52WLK^lhH%vXoF;&^3w7DD}j7@R*dBl5P6?mJ_cT@ |P7x`*8XhZs}C+6HrS71QY-O00;nP0YzLt7mdF;7ytm5RR91Q0001RX>c!JX>N37a&BR4FJg6RY-C?$ ZgwtkdEGo~Z{s+U-}5WDYAjlwwKb0qhl4S`LqF2f!ObQ?cY5~*L7qOaJxGb9Xs2g p?|``g-H9c#Sgdyyiw=U|b)OfRI4$q;rYd)`>_p$nOl+z~zlm16>XNcomk@x_!tDi$;q avb|Q{9eb+ZKjzzw!tELl4Symm*ZBI_rv!c4ag=zX@)#|_Mq}vwxT7PWwP7Z(Xhf$q;=;ljn$huKT@B3VB|w8Ym2GjiGUvx(zg<3XTY!hS=n|;QJgkS)y!$Y+dR1~tG3J2%e*$8tC4@-N?8 yPt>i{+?y490ligVlF=(MFl98_ C#dp!$)_4o_1GI57V7!|RKWr*n}eHEFL_(1QR588WxhfD+}6JdSbOuj{5tWjjza1-8WFqR0sx}l uslU%K>7a|?aSv86v^lnKRW~o2#){Y0m=4Y*7)NGgB=F}fMM?umuQ`|0})=s-yiT57>E;^n-&Q$?DPS UR1P8>Obk#SEPSzgmlUm>F`4m4;%F_#OOe6QYp|ko0sq~coSdML!G2fT9Yi2QKhm=>j>}{R24@DtKtT j(N!Hh4vJ?bhO}}Si@o%E*>p~*f8}Z-c2VR3wX(WhrDZ&Ki%>+nABL1`zYasz!e2Q!E_TtM%Zt@47M# }=F@-B|URu-E%d8cvZ^Qx5NW^qJ>17JV+%YM-U4mG?X5{<9OP{8BSYJ@=m>kt|%1T(YYtn-o-V5R0pZ QA5@*V?1N65*&8hAG0S(Sw=NpV@|KDw7WPWr;2^20;mFpRixvCV2TDBsg?|&H#80`vjuF??hbgyDeBC `5@E2V~+~Y0hZ`MwbH(6KnRQd0->YPKq+Lwy4vPo2wDy`)SQHT&u9_m9D}e_<8;H&z~mC9;WDH~1k^B {kw%?eA&VZeWHsc9$196N35alfrI5dR)1@Gj(>LG^OCN(%HoYPi2339 ?aR6A!ygze;+guVWPPk^Ek=q>Cc=?s`DDB@h)0|}E7Nks2KlhEcB`)C-cWE@x(GKRAgQ}(Mi+O(NWt4 yl*;%gDa$YWxOY~nbo_raiUB#`?SENYA~m@;;)5(r6pd}B!kkEV!C=;4gRr?v;S?RnSu9`)RW%077Ac VYtrG29U#OaCzZYB>AaaJk{^A4uB1Ozx7rKxrcYApnkmtUyxWeg}(!7>Kly=nBPpZ#@0}yKfYMJ`jOg ;BB)@iu@NC3ELCZ25AZWYHj&}Ww%M2bVz5|!CVB+UIIfT3<9Dm`nDdjexoTeMajVbd-2^jq5?a7-w+& vQt!om4jR{!-!%amKuls9v@|Ih8N)lJh@Z>qzC=yj<*40TB*L7y({53?%a3sJX=5y% XXOspj+1gI=*B@^Kw{Nqk%hv;@~3Bp`hl5k^+`D4|R367APh+Ie}l&lAtX29D7{xn#A4hTo9p*$#fA{ |oCmX;u#p$FYSbncoaGC~-Gae$gjWuQQRIf+79JZ`84_oKjumUW*SN(;Vw}U#`y8|#v0&DUU ^J6vL#+f!z92O;ngDH$vuR$!6aTBiACFQ&_Iq_$X0#0LoH!4r4(`qSBuZ;ky$;;Mo;twqMO YgM8>IBpN1r1W8f@yKEU!QVp3)9TCcdWm>_`gj_@JAHNa>BH$NaOVXtk5TXzbQdh?D){bSqVEFx9fSt GT-i2o_6K!bj+s1a*k+?93})Ie+QZAFxwYH|L@^fqAPR|$WXY!cBnz|O2a385OM=BBzlFd@F4TLOO-G a!3Q{wD!PIu1^Fs=$e2`G07o31Dbow-ftdwAZxrVAYE{K@U&==xWJEn1_g-07KYfM<1q?n7mdx_cvVc e!KAW(In0Ma1hyBc#;2@CEigq;gX`c9chqHH?8RjI23WLIT9%qJtYmXw@+t$=1|g?3fjarhf~2%|<$H h2ZQW11@ClVi?%UxA>M5a=Xp2#z6f-uA6Cu>*MmE1+x3oBWn@aL{|q5$=*k1?Pw?OF`!1#V}m{7@x;@ 0lWs+X3)Ewvg^H*KLWi9h~~c^3pQ_0Uw`_+b{Hu65v9Lb7%cAY3}*xZ{BwX+A@V3l10seG8_e7~RMoD 55DS|mMbun)v+E&Hqg1V$ZU$9eCQCpi4mSYQS1oBUmU2Ba#>*zBif 6=(feWYJc$0Q%1g-P8}!3^6F`f{U|FI`3!Y}4$u`=CDFe2seM6E3j$Dq^WKFT{B>udBv>xS;&RK{AR1 j(;SeH9VdW?qVC8CvstRw{p?rsNx)&hl{XHL|EGf*x)t+3)1k}U=03>@!9c >FL2y~#sNn7`^GEJkR(3rk3*s%0K}YeW8=6*Yd_-HH9a_=EXK#rps9u~a44*Sziwt8JX07}?c!86-En |8Vno)M<_8PPfw9Z;U}>NWeVpxuj;>5L%CsKkJ&#;yBRq2Ig?JApp^($C_t&Ra$9HJN�i2P}q^5FU r$iaNWp?)^|Ogi%Y7Fqh)L%^Y6CaoiPZ^Jtw=Li?-rgFBrC=WYj|BoJ#PR4v53V(-Le_4Fd-(gnh{ly |OYAZSDeg?2m8ygz`Qhqgk=fkjw)pu%VAnzaa}pf>SB~%UFE2L2uSb*ocIAo&*hRqhsKDnA1k_LF3Y4 mEvBq)NtSiJihIVq&WgerNMSR(Ttd_@fHb@Xo2-4Si+MSbH%fBmBya^aDMUO)W~K(!l2;W;OWU{WBa< Ok__x&-Q|S_@b*ugEN5?!4^5Z31^0AIo2g`-l)aQEYno(3?4w`fG2yt_8(!+M=)5#!LGwpSaYrht3&@e$m|ErMxFNv|I@YAl74k%i@QV^nn*9xl)2QDN B0)SC_pc|h5?2^wwa#^-~{NX9uhrpNnZJut`5hhMPVOf=8n>6SFGTd7$B`rorxocTe_p{$n(l=^CUsT ;!WM5ic7ULjdL`;lW8XX}=&j@q}+4Z#Wg!Lb@iUV9*S8d+ymxAlL-yEz-9d93jxT+?8a@&TnrtZWg(ABYA9&8d_=VNt&Wjk60uOy1STkv>L|EP#3!QMMDS2F0q0w1My-36xq5e|gGs mTa%APxin;09V6b(^{2E#v9C)?=Tw&i;{P248i#psOFIK%PglNrd8FoiP1JG;T}vXV($k_Fwiq3+pfx 4cu2E0?A6Q$j8+^&27+!^qdlx8QL#r*AySDw*speFoX_bW@F=$pFeP3mu!U-~nb!3#-d-&6lzYpSO=^ %G>Tw*7aCggKDbqwqrLyYK1?}oss#8{l6LvY`KBK c*{dhLBHZ<7>*2JR1Yhy3A>0l@L-(`Xpo?CT0o#{@U{g1+}%-FK=}5}AN*QeyWgNC4!rSQj;q2aT3WG ^dz(s2XVAo^l%Su4+P6`J53r%VMI*)W9GBHQ~9r%6qJdsX(P2eY@fVAF)E%;E7Wv+AsG*^&3PPf+f;> ?4B#tZmTry8)v3QF71G2c4zdp?sG5@N31?5*iTwffk=oP?ae+zQeU7mSrs|7s+f@D SRv_DndLf1FiP%a=Nt)TgeaqAc<|h8!VnYQuJlu?tzI1M>#gvu5ti- q0OWMQGb8TQv$wmiuWH(Lt8KM%J7-EaU%B6IFqLrm%v$m)88kd2WF7e+{PAA%Ymt&?&ErhDjVYCO6n9 WsJQMYxg9#|Tt$d?uZSH*I=$(y#rihTjGBsYE;r%E_BI>-Qhu^<9-4OFO~+8HLmt{m#=7wg>h*2(uutKGNtu%>b3Tn+uy!R6So2O0Zx|$4ulW-3-lP_y=t7lWw=56w!hJaFL#s2?RypT?Z#A|~GLB$aRwm< _mW_^|o;vVc{L4zAC_?`P3EV8W+)D}3!w;Z_d#sFu>ZR9lG4=3-j?tYBh9)>piW6-diWCMtA^E-5L^5 ^!Mi4iAeJ*Ez=3k9zR;I!D1eh(nd+K49O1qAL=977Mp1{)c?&_farjw*Xf4pe4FF)Zz{w0L)81J*^m1 9_++Lptu%ofk0{BZg?yuqx_N7Gnd=YM3|lchkCal>#8rbezg@Z+kSY)Ok0hZZO5%SG)u9a(kmjL?SCo BC}{(LTjHtw{cf7EhY^l4bzpWdH_7m9t4!lD+Zms!vWgJh*%Y+;!TnlU{8naKeTX}PZR$+W|aA6?@%q @H~^O(L*&1g71|T6LsX?>fZbGGyp*SQgV>CM`LH)MNjGz|KE8u-s0HSC=dMjvb)KAcTkYJ&D*VA-o0x lThN}v{DYyIIZL@)p4m=?D^?}rJ8%=BV(b!a|_X^0b&AiQ^rMy#jXpG&27@vfSefmPo%#uxIn#FQ;#B hhht2r(-n}k9`7^fx}`LAP|hOSuidX?>(sCG-i@cn4$P}4EM>hc|t(DF_%#E+DZ8^!Sw`Jpb-Qxn{8GAIg^Sxq=HY|ti8F%INBMV!3n`hx$}Ubsw$QSk51A%6bdy)6`Kx27&n{wG 8>JMKCxClNj;umGCgGRZRhjm %|nG1gice@_=wYnWJhm+@aE^bU2d7cxBxkg5s6W*#a{VfyHN?OmB(n#)h7dZ&Rd9k?lpDmGq{BqB{9O t+vnjVe7sz$1VkC4`C)PXiYP2Ar94Pm_ZP9!@q4lZ(NMkr7j6VmG6}A4{sV**qvw*r|tK(Nc92Hh!@L PPypQ(3xs14^2s5nIEv3mC;?75sv?W6L3#(*ysmX!K@YYWtULwzP(6Yx&^jP#Wo< TSa~P~u&Nlrw<1m9*eVrw)5r3S@0%5!q~KtQW1Xq$(GV6bg*DDQtXnVbFFJbefEI=DE@@ask*`B{zbz;caBeqg4GxRzs t$+crYhmD(2w)4)m%Eb)C-Sf=klXjwsROjg+Qm$JyJ$}U$Svq% QIYd4Tf54xz7fGJh1@44W|f2-Bheb5@T&t3g0ZUFrj^vQ+*rXx%zc+LJevV*=B9q#EfF2FunPF_Z4bn XU>F?uk7^Emqf_XbZ}XF?kYiG-s^p%dFD#+2+;3S5)wC%xFT~&F%LbcIz}%&ISL}sE$xAwY2bB);@m4 dRR`P9?xhmj|-%wx!HSb-khUg9*@m-!#XZ2p}BsQhw?T#`CiA_!VvRle4d3-!`G1?^!eF4&V>1b%y9$ !alA2L*p%xD~grvv9~c<7#&{q)F=zQ1mT8=~Scer)nJm7GG|)9aN8#0E$E*Hbc#;lW|%97W7NOT?A** R;*`7qlJN>sZ9p(zFtr;Bn|*UacNYa8J|tWY>+i8;t!Z5fE- ;RMaO)~uONN8X+N=U-2$%>=)WL>D~8rw>2=yIWE;mYQoWPdc5B*>MBl7q>mdNvrCSPJ7euZGN)8z{2B VRpDdhRD7;ow8kLJ45GPQLEm}hKpegZ3z_QX_7-6*ZmDk}FzGoK!1Q0bJW5x@;^{Z0|XQR000O8W&uT9#Uk5%2MhoJX(#{y761SMaA|NaUukZ1WpZv|Y%gPBV`ybAa CzNYZI9c=5&nL^VynOiRmeQoaNJgaiaO3YcHx)6cHj?(1F;fU()uVa!zE8v+Wz-GGrJ_0B6U7DOnz&ig#G)MPSwDpy-2Uddc;)K2BqWHLEBTbE`hl4M<1b*Yj>=v`sTO2|Anm8`VM?b(?h+e*95^s;& UXieUH&&+0{^G)+;tfO1Vigq+af54-gs15~|H{(z8gJ-1BMV#EIJT+xp$knwZs&OSZwpsgLZe~K~l`4 x;;ct@5o$8O=sM3P*+bGtR&RUWynVVd%WTt;sOfF=G3Fk74)u)vzSRu{67x@kLq#w3QWzTe`c+@<5ZVwRV8(qH3Yunksr(KmR*_7ubcHR@%@&idt#(n%Uq2uX3^tH?TQ2(wQ9w)W5<+-nV@ORCf7Po? P)5IrPT)6I;jlFcXmepph~f593$SS>Lrgw39C3sre|kw-oE($#p~p6@7}ylUO#ztf%OwpYHWzfx!|2= salJK91qN{swkZc`v1~aXSGwbUsKoB{$i^yP!AQ }B*H5O?c&k38dZTO=K@n%GOj;{AKwC+kK#CN3?EPR$?IrSFP7+ITAq_UENtwnBw$R $#9;(zCMkjdxbJ+_v{RHT&(-+3x-&UL$3@vyh9k|eS!ThBrYV2d^X+T@;LR%Ttmz|*+hH*KfDzJik=s dQunI5svW$BDIttWi7FZKR{)Zp)&-oz4&Vg_k96p1l!*SJpF63Yl{RG2@xG>_t}{_YnPiMShG;q#61G ^~g%>YFmk=YMK3Lbgojd*VVRTr_~&Nz7ijl*vlLQjM%7L!Gjc%s-Wn{P;K#qQ|i)N5)L;Ldsx)uUsuh }fZRu7p;WYwEcWBumtbfm=~;t8z1dQJz5$PzMpPq!5t%tJUYBx1`92^g^Rzo{B};I#G&PB9toH=^fGe j&=>6{#@IINdA}R0_5+8e#hWtO%4DS> n!E$wO*?dtO!o@0hv@4C~#Czjk9=hfNApfbPOR}EK*Yu7Y9=LQqk(N&aq>50 KreNstAn7@90vrpRaMye`S}JC)yo)*&x=DL&rvae?v|S$0nbX7|Xfvm?EH-VNurGzbD2hNx9_4zFKq1LVWgCf *u_fPpGmrk_H`NON37xVJr{89JtX#Ti+cs#$l>ZJ8mokg|H<-LUd&eY*TVPs)4YetD|GYn^|Hb%#J;}{eQtP35L9lR{Itp(kBFoZJy^S#TO5T(yoFMgIpFG$jGcnjnH {*su#N=<7P^w7iDS6CcSv(q8^UvGHu`_fzFRyMErxxVz&bLilDYi6H2>t=RRnNuG|t9m1vI0YAG#HD* -uWC?lB<=}dj1f-`gQVNb%9ejf$`76IdY^$yRtn_fK1eWz)T`x6Gd5&xZbxYw6TL^>Bb2W?%03WEUGX J|eCvp_Wfp1*-_1!8fSw%fn;^`+w6N3iTwxLD=~K?sV`0mDV#4}_<+#0XrlB0&vi&SzZR@jx{k-Am@t ZO7-H<}zchDN)x&kduhaR#zzX?I7~M$+H7lL@`jtCJGoF+x8UXTzEJ*Xj)_tPE%9Xbm$GOyxuJ_M9r7 usl%owuOzS(C5MhI*HC|=Ute}!O6jl8^-r~m#YMb{MSSjKD+J1^`58SNd0FFAbfhbgy2Hw(vj%}RcnW (S#1G;)rb&nhZfQxyi@lAdGaN&RuBHQ~L9r;lq+ycBQp$FXJC#YVFzBH!QLG7MEER@Tidanp?fa(A`6 Bgm9NfO2WB*`5_FKK$I_$CszHHRTE;Sy(O}XUMKi*LF)4%WR`ZX%3#qZejy%&?=d{@E^=x~Ei@?onL^ =YF6cht~}|31Ve|06lKLj;66f}#rBl56(P9IKN3oN%JdFNW7vQMjNpkn;m5%wLtc?|k=@_srY^nd}zu a#Yx>^3WfkkMrk+yMv0lv!}h4?m}(!7Hvq9@_^23)tk`1Ld2|*-z`qztpPQ6Jr$>FS#P4jEPW;~Ht63 dO2eEj?zu#a{}7odo0IX)sZp-2-N}mMPeIxOSr&vSHcO38fHDa)eh<}bHcBWk+vt4ObLQ|9%0FB&y|a Ev2&dyV5TbraOo!_IN_@-dkZV@Zx4O3UT$ZctxvExoW1{oRSQgah4h=SL!XDcw^r`xk>?oV`+5h)6-v -g=lsg^7e<#o#qCc6Ph}{L?}tG&No^slb_u0Yq`gD0&5O1WS=qC_0iStMc$^%o}^z=un2rmD<7h0{8+TB oF;B?UZ?3kkhWhO%?zw_>{<8h^H(yAIEiob;b5k9rSfB@V77S=ym(4Wx()JU>NKr*PVxLr{%))oAp7G EE$n0(JeH1(WvOp3ohVVaB^x||6(AV~&{}`g3z^OcUJ{e{`7Y_WVQ-0)j%mS787v-lUK8oD`3yGh}%p QqMo4Oa*f3@^Go7GOCH%i-JLs>Runxw$ZnF0K8^*ZVokC|xab-p$MVjC$dzT$@vtt$|BLu6kH!)`@jA 0F@$R0*t+N^C>5V-_dn3pnyd)=^ZPJ!qso1$>3v3Zs%HH< `R>h}-|uy5S3lJnp6Op6=OeprdvRL;N1gxS!8eZ|Q7|BnZRjrYm`3X-^y>h+jp;cj4Gy`b&s~f~pUE3 %A^PpZ&_MU-`nGrL(j3nl#x2KW@7dUaNc_w6wE|?6^lK-vtT%#hFx)u^$g*}`$8WMvxdRhrmk9l!xwB RxS9<|lfWQgYpiigC(`&jL(UVICCKz8j9m^6iv+lyOPp2|2g!yMs#~snX08mQ<1QY-O00;nP0YzN!qS k*(5dZ+_H~;`10001RX>c!JX>N37a&BR4FJo_RW@%@2a$$67Z*DGddBt1*Z`(MQ|J{EDSH++<)=_uv7 Ka-HzTM0u?F5r1MbdU=5Exp;qGN4kNf2eH-fZq~zt4LlB~p@;Y_Y%vMPp0kzDny_<|56-k^zZTnn@L6(Js!mwCXe c7O_&rGL37Qi2Jl&i&z6W5?|yVi!Sg55H`1IZdauBYXu~hjMvzF2x-@Zp;u{~*Mx;oX?~YUabHx4NTg a;DZt!``?aiq`dS*)ER8tvh>;UzoK|8832ITEux?)VyDfM&_9YTg H`=m3@{K%Q%zvTcPYHwO1PSvdA(`iwfi0rG(h(l_orAF5O!&v1|nTqLWRtf)NknAV03!%IimH~(b>C;%d6 89+PIUIf(!sVSj()0{=E_(p|M|Zpc2K(S6xNg44sZE8IJUlIa8~}{ptGjY94Gs4d8*EPej*sDVOOgUG j=|=a)YopU;E4thkLcz3O_eYPk`=ritV=*JmG3=YdLVso&pxPOEwwXA5zf@6xKs**kb(LE1c!`A%gw#|G`hSxIlTh4Om(Q~n3``yxBX1m+s`=9 `AA2PJ|CZ-okZuC$0yO{#rf|IKo^7$oB)nS8LJ|eH)=VKBJxF11dV{uE-pWw&cyq8e=7wfz;35toBS% `x`s>I)_7Woyr?#Dmi|MMA0h~FmWf=6sCmI~$MoNfHBKD;5B;7o58t+c|v}UU@?R_|AO`1gQiJX$uf(VQ2B^-@+g?}R#tLT>||NVRr+-t9AODbvB_CWLy|Z9imqx3KIZAaupUTJs6YIGm5hq@h^7?9gK6m(-0j)tx^3m89)Z*Uhb a)(IZ2CEg@9$hU4IWgUPg6!07cobx4ofRUI_+3u6uP{wYi>U+8FuFNQ4#2sA=}XwG+i(QHU|)6Pp1NFUd!5*jHiLKLkPyiW`L_`?}oFtU#t&QgiMrjL~Skzob!Hv3EmJUml;uBwYla*Wl< YcFX{k@Wyr3uK!o@ORjtwcPj;ds^Tk8)tB_iVY|R=F(#Ur>Zb1I{LQ2N%X;WP4)jDPix8G%T&72q}5Cnqqa45r<|#yvX2nkU& Nh4Q7I~sDFx!A}1T6U+kjjL+irTw&cLmfSrt*cd*e09HB*SoS_lg?HdysI2WRa^e?g1zy hXm{?JM!4T*ef~?kN?KrKqcT`Gu&_g%cj%ffJ2(aEaud5b0D}&3aJ>m18C;_Dn@5&t5DRz~{lE%+zvl N(*MS`A#zR^S@@-V+Rqf-X0$OkuhjLp^$p={D;SHJbzOpNQPz7a^zVyQ0QH>Rz(tGiyANym>-p8s%yo %oa`AkTZfbP*>tZ(m({_ICF6-}b2(>7j*j`J@!km&s>5daGBan$nahQp+AE^sDj2Kc{|z-lJT(Peb3h1Xyi~j<>})K6i=&(X;`h}os 1e+BDhmg+TPYvp2$n6%nrvVcD*~R@6^`(!?Niph2avh#=y6U<**wuxDW=W9k-5EWRAAI- T|{Qi{m8eEglW5gV@I&Jx1OR{%-zom-w%&nISy~V;q?nPQ!vr?!rhIVxcU--YMVQZ J&`)fyUh=&@36{#qV+G=*l+is|G$dtXWE3WsRLdh7jLU+{k&v*+u3DhY+{c`GN ?BG!Z|!q-CX0f_EOubl3aNmZNQdl4=;z*DD0Oo&w3rs&phAK*mkd4^GMUJ{xHo~#W?u2N_B!4t_ ?1@wj_RB;GRU(k2#>IqUs3)kUpd+vsDuazk2B399r(Kv7G7`la(R2=wP)6)a`;i9T2 Wp1@6xDO^|D69Tj`Y~F{M~qkg0Y*hGuUSI~i0rEh{rqbdz6y?WW7frzRU#4hYpw`eaSV60MBmUg#0RG K5j8#oemv+9Ug`hEhbrAc^+Z){ainRNy>i-M!y0%%$QRE7z%}W?i}ktB#LgOc=BRGJ2 dy_&+Fenq{miMfHU*$4L#oQ%$dfaH1Pd4@tw4zm^pgrmFWX@okaQQhc!E;@SGKX!jl}LZ8T1>`mK=1( H(316IP0wl}L$!$X?$V)Ri|U*wT#?XH_esn;^t4Y?~(t`#SL6uB6s;V%NB#~R;y{h 8GHRDEqNA#$Ukr=Ad)RxLf@tXr$Ghp*}0U4JrKkeH6OrG5k4sYsX?RZOldyYMu<;u6PIW?uNz9A&Q|) WpGIJ;!CP&k>>hjn)|lzvbk|*Yd36hm>+%NG-1Kw{g0K3?*r2EK8t)d5Kg>HThXaW3hZ=dZ`+EJIdM( CH|MfdHu`zaPkLkC?>4z?J(|jvOy|{Y3P%sek4&I3AbK23MVB21_(uZ857&=Q&3LTz tXsT?#@O~}xHu2E+r}55OwwkuLNQ{~T&L*x6_mI^X+TD=S-s4j)ZS<}iJ80Mrnb@*mdgtazcqeN;i-O eAz8$|s;D1Sm+|*@pQ(;*c^UjHb>F}pK#anqI>HmS+Nps;^O0ll%QqA7HxkECxy`_PTH^z0Lc-T#C)G&>BcDl2}*Ic~0Q)kc%kJ%UYL}emP$IUpU2NysshCBrlwl1G%HcahDUauV {=9xXDj!PPhZe~ZQfY?Br^yG$~kG6_5Fqd~Un8(5v9IXgl%9_s(%HEw6#o?yKO_5kLwAUn^H_`f!JXi O}!O274blWqXhIZFd+C~1&pQkBLUS~S9YKCfiof!jCjtw=4)Z^nwY8+O9Vgj$<=|M71_FcvigMfX*AH ){}VK`Ao2%>>NRmWAW2=F*ykOQ4O)04&Wn?KJMc9wD|wdR$k(cBvd9?qZlsYG0EL~FVf;Oke#5kq%y(3i&Vgh|^nAhjPHKj=+Ob?vI1pQ$-DN%Z}+Hdz>nYp9`aC07Z& um!@lNQ0e}^Tewa6dDE^^Uyc|ARDgI1c9IS(gZsD-@2m7`!wQ #4FN?9Edhwa~+nCjFtjyNmr5~MT8Hu|vk=|JwxXwrOhckqREynl<*J%Cnq($&rqH$Xb>-~cM!3w*KwJ +JBhl?{>J>N@E&hbMXOF7hC`T-Out13ae}9>;fj{vQ;X<%3exgZBgQ=*7aj>*})a;H8%fpNIKxI$NFF 3gq_BZC?0+Nsn4Yshz19s>Gj5IA~hM41kzUCeLEJ5;!zaOqIw|(8_g6%8Kx@s^`i12KYRVmUR`eTU$*M|^Bf4O%#{`3Xf@E Y3_>w$JFhKMc%%xJOycP|cKSHXimBH{t?C<^VL;yjKYx-(dRs2(T5=>GsvO9KQH000080A>M2T%{KmV jUy^0Hu8Z02=@R0B~t=FJEbHbY*gGVQepDcw=R7bZKvHb1ras-97DcBe`+^^%U@IQX+li$al7{T#R{T omP9h<^513?b$A!LJem?a;)JDJs3*MV_22SGdPvk$UEds{3PiQ0E79WsP$E)64l+390CoX(dh36JivB_mNR@@zd{Wa~n#g77|=OaJKTdJ!wJ%%XK7#k-GJ*W&$$YfXKgw1z4+`lEf(if0Pb(P~IC3VYQiBVoFp>dz5+sS3#fek~Zn2O@YC Y8xgf`Ito~_kDD42N?i8L!jBv&$xL`Kb*{*mW-M@Iy6GMTN5buK3pGy5Qg9s!}@=tw^cvvd~ES3$01? mR2xry_}`=1G!;K_bgf^Es^Fd|U;^!fBh^c50){+aeD_Ifa$*+`=qL03SFLKbVGQf^PtYh?D`pE3%xM $MC7hvP7AN;Ub9BftbTCuBMv-jJc9Q!HtW}3O7f$y#CY0`Q+^N`PuK^y#H<>-Xf?V(I}#gdjR}pxzA{ Zo_;R>vW|1PlxblHe3L!|NgQ34U+shNAaez4t9AaKpEf(@ak%gS=_*SMX^1oaI52NMF!>I|CG?T`rBv &rWex;t8RYltm4PHx7_4MRQ`~2ZDtHfcF{|QibR^)9dM^Tn8*SQ8Uc=|3^6Lt4K$KL4^5Hzma^Egsqk >!#9^q?TjeVn5us&IbXO5M>ltmB)MPNXE8z}iQRz)69*NB?Vel!6;iPL-2^)0;bYM#pCG0X4$D0@tkE Qsu4U%}CQsULQAhE?PL@IV!KobCS8N0)ex@C?aZjLl*4=dyT9&w7(d8Z6=1_K%K^UL3s;S79)lWl4lb ?!{3gXJQho$vqsW=_CX!^wdZI9{OVVjhMnI;T_8*9R3tufE`rC56UbADksqp~#v(+_CI2#;qBlou;PT^h oo2J}^*zr#PG)v-|Y0QOWizS47nJ-{Qd+|KYa_RNO7j5nBpfm4>bj u6cc`f~^Vc-9A7NO9Z0yl3T=UOsU3>xC3k*li>^A +eQDyk2*G83!<`D&o)rF>gv3rz!VDIT94OJBpZGWIMwK&9Zz+LIPzK2o;o=xzAW6afadn*sl_Sn6A@s A+i}#aU2e?hfGPV0qmmKm?0P*w9D2xPl3QKrBWc;lrPQ$fJ0vhI0y)OoyNc#VBcmEkRQrQn=nX4kSLJ LX_%}dNzj5QigBDEF%oP5a6poxp% ~n;Y}i4#K3>RqE-ltB@rNxL4cyMT5}JQO`tTW70m3@5T&*pPS$YVwhCU`%|ee&No joJ_TiIWuEJCDpGrbuh~=Nbjh8Z}%Kp*!R^YmUy6veP07ZLVrv|;e4}(ZSM7bdx&PSrIU=Fct8D1L;d)-JsU3G*o5#=c9c*i@wZ^q>t3S22)M(c&^{ 3XB7X7-d{oLBx?u2e_KSS$kTd)63`JjqYV9gUPc)NLAyWW9+8LP^py6Rl=09S_|IS>;RPh&i+k%uSUI R}s?P{-%ekoKi*|GlF_|0h|T(LH{W#r^F+{_Agl{kLzPw?cS&&$D(0XPw~&ED>5Hg89rvHde{biYKX{`EcgFB?WkE!R$QkMK}$MHCRSu5h{4XX5$&T| JFGfXkBLGcQQrmK}chjq5%`SJzYywdpn*9F;)G74jD06xY ^f@-%lI@xfYW)Ij5{lwgn=1dQ=FkI(KJCe2E7m*}`$Utea*$FJ$?HUMy}X6B~or0SS{K%?uF|U5>jNpT+g-~{0zcOjx?FfpS`>}4b)RsZEOYK>;i! (knc0O66d>1R&;rYepBG3LT!{S?9j`s4YUehDfPMWLDio5$owoK4&6nBJ}q1wQ3%ew*KsQ?E1>eb%H4Ui%)EBg(VqlWahzfH70Hd55<;!(mf3x_O;3qjdg;Sev@l^bQVll 1o0IhM2*jwHi_>?LZjP8_L`!8PB{b_JP*7yz1Tm1Ny}MdZ#6Dmnz{>Vi4j6;mHkz8yh-S!h 3gqefskB`qV>(+q?Mvcf&XDUw!agxvt`Q3R9ALORTFm+*pY$D{uu&GhQkbWsBf}MGo-{6RSe@1Ih)N? ?8??RdIKRp``a&@hV%V5v}I#&dBsWGy9l>9Hdu}-UdnrF(=YrvS^LY$AVq)usK>iSOyzZE}}KJlR5D* 9U3FeLLIIT*iR8Gc+?2Dxo%)ytfMt_DFdFPw2nXt3zi!CX%(&6lnA=swl)%Sa1#94tcvxiBoZKEkWqz 1dl)$Y9CeXH-*25PDFirG;8XZgcXm4SBA2K0*+n!gvC~)hLVQHxKU0<4DHhqta~kI9+{`x<`Q=ffg=sm;f|aQGzJJh+m%W@EHHQVbuE7O>F }pwI7B^G*pR9cI<_n+>jAb?rVnwRrO2g-cVSis^-*yl{Ti+B+XB6C59i6Twg}j7NWx!RW14Hp$g2y{s }LhOXW4QZr?isJWj#HSshr{FflM3-j{}Gpc?|l5=>W-t@EhcFbu$`%dE0Mp-Wg?kK)XV08QzZedt3H| jyvEKa|tw&yP?E#Ck>lA)XoYjbbuBXP67@b6AG{;1t8Q6*qN(;yQZEKCRfNQFEBTSx&OhFm>c_&qi`QatfKvrltfI_i&;%wn@T> C(BA_W$LZ28G&HxGuI1GYlB;;O(a0&k|U=8&Uv5Mp&wTi$PCHtTH4-s<$$Z1X3bVmSN{UOfQinPj?ae nYn$BM#n+?yN?NgNiqb!;%&Q|XTOo)b6DvNYw)qORdyUteD!P~D7I^el-;Jtj*vccdMkJdE~0k2|gmRkMV Vh|eG_pTePsyA21bn{i*R=65wdF2Ee4NO?pK%>wsHFbOo{ZZTSW<{0RGzMx|6?T0CQ4Xqm^`9x4lnyA D2y7U0e^^MFAm2nuy^mw+_IU0j8_L+D!hAlauo_HZk_>hqIHxUxtUz)ncgUoA(x3ZqO7ncZD*7(K5?> YD&!{ol^0T_Avz6=<)$J(rs-`@#+naT`=csO0=F;-S@zw&`9rGw?Iu*t%tB2jOACcDUmzXm4&YRNyDE 46txoc4>WHvd+v0o}4!kQy9uS>25AebPKs@@U84xS?|(fZovfz?GBoj%GoBT%ke(r|OIW3nm2H90bhv }!|r1M9dPA~hwTXo0=-LeA%7u#spc0}^kkRR|qfPP2Q4#}m5!Wz>?LH-P!bBr=}P35=`XFYWtIe`k@PzLDCHC3r7uvgptN>}T^=uBY5B<#f4El@>MdR$+!z)+osdh@SveW d~4VvK?*SJy^0I2Gie@?!c4*y))cql)CX%!7opBS?K^jXPiT8Er~xf5c@>t8(#%aC$E%Ij-;-0->Pl^502VyY rA%*)Pql?2`j{O9IzKCS`5LsKHMw?X>m=EvC{b)p`6YJ*r(kUu}% $@f1al N#(6&0{uBjYx{1|(3F!5QOuNo!O5QlRMa>!ip^H`b*L9(A)?e~Wsc5J+Jkj!hWF#rTH5j`%@Xet=jGI0^M<&qp$jw1eixaO3!lT&KgFFyXmok=;d6?xL`}sA&hQRXF=$ua2=!ig*RcwatYoN dRRT%a$V8+@xp?XC1`{4DtnIAH!fPsY8nMB(P!7S4jl?NhQiV`V!_>~n%At7yF-$igfM>Hfgwp{Q+{ {^1h;=U;(W4X%9eP;=L=FQ0Yb!{=K9njwE@1uW4{3kmxX6rL^-9KjVsZ 1Z0&28_h3Q8D$7j=nll)#!+c)Eh+`BfLq!e`%#R8klBLKt)}V1rgi~3#GJ%InKWc;O&w8WgCsLp6i1Z G6fUJ18_W@!4V>`OF*(>Q94x2|IRt4HU>W3KoSU*B$6jbPxT?-fYKe$L`OEaIi4iGrEQVi}XNt~nJDW n!F`p<@p+Kd`kupKPR5oLcnclQ?y;Xjx5D~&)lmMt2YxNSEEK3iCpRs-^PN^Kp)t5NlSmK9w1IfT~Mm Xc>@a2=+iWMN)ePvfUal68qF#Jaef;xBrl(t$Ya7Dp7C4OxfU#Yl!A1ag#j)S#V%74e0C*J)SlvPVQTBu!hL(~C5gE9Fu7~qUtq>=lEz&%R f*2t?ds{tT@dbP+H91g;%QJHdrt8{?j?Eb<%+@(5;(MSNNB^3)JlMFN1A1{=<~fCZ b-nqD1obrlz2W`Ri8HJDClQ%8qU8~5!8k}M37E-d;(dilq IU%W68NKAR#etwYk!-I#&9c7l&E98X79$VrX*0hI;i_>&;F`S|GM}7HP8j*zcSzt90j!*CxtI3OS$nO jSTskQoq@um+Bv1H6q<+2KlYG;{KB5kJ5;4jh}*vj`&4Orl6D-6lgrkz%*Oa->GAn$nHjz02hTvAkfp A}QpH-kTYAwoVgWliR?Ti<}^(84b8ZmiT83K#3co3b8IS^yRZ6z+v`uV^z+|8ATN02!7v^kY)8%5A8f FKueln<1TM(OU_WG*R@8y;m|!e{wki5)|JE|1|9ll58x11MCqTg3bNd))-j1oJ0k*RI-d^GR9=XeSp- N5;~W%dQ1JL(fHJ*iF5g_APhOv1y)I>q*@JO4B|tQIj}lrtdI8J*+YlBPlT+qmh Qponxh45|%IQXh90SRx%~&h_N2TVOrKP2!d95*`}fY_~Q!`?bhQ2DL<`it`yOnT~a<(rnqUI=1Zk_4(DgxHvug{pok-SK{Rdy1D7y>Gj!b0pAHEN_hV2^ 20m&e0l!QAKzS_zdL__edTW2t2b}YeW7J1?dy6KkzwWH$ZYLEfaQRvo*TJ<$N5RxyrZkfB&TSP-|0y9$7mmni1e`RaFxj9CnB9^LR_=Fnt>^NWwL*0vZCx )XP4cXP`0DdF3{SCkpbkR+XMi`m^Q KgeC@6m@c2MKq9D$MB2)wQu#uq2SDEMT}sB4nXQluXC|>ml^dncT^(`Y1_10^whS7NBuV%mKZyV4#wJ QUSlgELXY)MpZQlb2So9uyv@cKukQpC8WFz}lFz!I7=UtD8DmJ><}mjd! sD(=^rj$%kg;t*BF({2zuOST)x)MPEaPY{V0RDPxM2^kJv`7t;;Tur&33R(vbpk}=h5mKK-O`a_vkj7 B;KLUdFUZ81*Mu9O%Pvwl{Zu2cPmp61ZrnKLFo(JNGbF(db?wss{W*UsXoXDAFSN?8e9N$Pj&Vh1IPFd#A pb>jx4^_c!U8s~vFnM|Y>h$B=>&f{aug@>vpT2$jr^&n1_nHuJ@1Dj)ROgiaBEChU)ZX R@|mkpCg(CpVHgydY{8=|1w|-oZcKDX&?K(8>ZwLsTxdlSO-OCL2)ysodaFn(7`-2pNM=VxIXSmzo-Q jzCjv-uqa$K4!I{4hpYVr~Qr>a$fe>TM3Ft3fFm#kSn7o2Nec8Pb8ln36d0D!huBTJX09dbDF2~c#s^$~djruK&*6?<=P p#|nH@czCqF|^|Fm#aAodQ`VI%+P}o)l*n*gXB^Rb7-<_T=f=ml9WlRcC;QWy4%I=(&wTI`UsyFX!2t x~0v*sZ3&NZfPJVG1$UIa4)SHND0$$=*Vl^lC#xzSOMuDuBs(dI?w=Ip#{dDU?!;cVaz>;Ry3Uf=9ZH ~ELQiZz)ykF?vZ!URP?wl(3(>j;6Yji>?a=%36P0xn1KBL!uPHkU^tl1tO3TC-zkjCg&Zp>X&lwqNxA 0}z2_6Iinx~>P$`kl%`L(;wflv5dp3D@esx9e0t$qSiw{?C{%CGmV04}d439^kMKeR8qApBctJGTpuP D%AW|H6~OE()=WQxHWfVr+C{6m~Z*`uPG;#@kQ)`WIWkI)@r9n&$l0~=mK7c$2`S|$eS8)Cu*mgYdRe 48@c3p2DY@D66fyZBb;VS?$ud~dJyzz~aepz(#9U|L`d30TumqA?g0WyzfefVU`Sm@*QGR6ar<+N2_W aJ;icUc0!=VrQ)9uIy_!G?)fsw9)=e9`Hg# Px+PIbO+{yO-9jOkr!%3;cEM!Y=in(Cr2l{ek?hW@Z;MKiRn2zo~eWY9&tKoc&WT}<2PDpj5d5@H#Rm NOyT=j`J2vGw-N!??RAVO2Np~v33m<@kZOM*6uKx5tarbSeHw+#}|7dl`b+dd1mGV3x90hG)#6xCR0{vt83w ^1Ll_!jqPqlx}xl@P3K{n4Rh)_B+|kxLz?oO3bk{E$+q#IL5 Tk>Bz8&Tlw};iswVeH{BH(fYQ=cZj`j!9Xz{%;y=VmT#jJ-NPMWRf*?lo?)O!cs%>Ro5t$z)dBQY3u| zCHX1v;9zGgfs!>V}1dqtKPQzN*J4FhADlaq>R9sq?(CML3x8{Vn;xbMQm=Z(n(ckEDwioWje>Wo5HVRe#>5^>-3JH-&8(EBpISoLDqb@sG~$1?T{QnTwC#w#EodiwQb~)~b=%1yth<(6a yuzY~r0sJ}aDZ-$@xl@fLH4o;qJ1?E9f$mObN)(hpEa%MA+vtYI@9pPwxxfAwNtHz6WP*EO|S}#!(Ey xoDqRhCjDa(J2moYFLk;Kcm*c*w#J=8yHM6-=cPX;H5Mvb_zyCkoDqIk(Z`YW~fs%_3X{WK~^hZZaL` B|9dFGe(Z>&&w==c+!jbtktoe2$lbzwD+DRsG_EM@fidN)Wwmjih${#!nL9-(e!5^$v8yBxl~o%eNzk 95CMyXd((Q_&izXN&ObdE=3goo-DZ3zhY&tIeLhTO;@F*y>?4w3F!ydS@u%O)n~9cQ+>6uB`D-0z`#F WrTQseuCWjX@8hCdpXI7pba1lVPH0$UXnx7na|$dE3nsj*O__c0JZY>O(KDubc7zmKxt}@a$+X8-!s^2Z7xt~t8 Y32yGW$JzIbqtNGxlM!!**8s`qY+d*(RM9C^(J7>Dc6tGLCR!#;bG1HO=IFKAh>Ud#S=8p=q#=@$6l}lpw+z8XO1T>@ ;&Vc$vm}BB;1ZJ^Gjs$(eTOlBmcslbar3 UN<>b$GDdD?%!>4mt$-x(GBlcn~`7%H2}@j3*?p}8p;^*Ks31MKtQd*-FnY#S|TtF_>^KlQBZh$glQg i+A%^ADjC#9q^J)j!&^8GE8YGf$s&T+H@Z9P@O_(@nXztU<+d&C$-fKNZ$fY~b}fjOaiCf4 POT1@4hCvgvGFe&?|hTfI@{Z=1QY- O00;nP0YzNwp3pDp0000|0RR9M0001RX>c!JX>N37a&BR4FKuCIZZ2?nJ&-|51ThSS@BI~FPA+JB5!3 -adi3N?q;#k0OrX=2B%=)YDA&~G0FCQ;)UBUab>Bi_i(Ap|1gi@*orCP)o6EVRWsN4jeWrR$kAE NvTKk!xy!t*gsaQ6aKbTrUw7>4(S1bR0{LH@!BsWQ|YVd}m$Bgn+mR6v)Y{lgBTlrx+W7!xv*suiYZVNEfz{A)*G#atne8i)xe6xtVm?&UUJ+YkLc>QFA1+p}2?pr$>7QJZ8Ei&@Zg-?8x2JZk<9b 7UjLwuF5qQ|IMK_c!JX>N3 7a&BR4FK~Hqa&Ky7V{|TXd6idPi`+I8eV<>UIuARBS(8Fbmw^eiG!KEaEJ@zNVl=j#QP!4RN#2bK`R_ efvTS)~H))qZ#`gWzx#wOrMt7_%o52l6lqHj0uZ?3|DebtETG`EJdZ+ECA?ZrDt*HFBD6V)XYB%()2q JFmrTP@V{;tMNc;CyuC?ABXwJCaD-SbZnD~$MOkVbSux!K|y^}t(Mzgs?~CZux0DBc$0OC|bMDBBIg- y3BeZ(E7IUVP3!YJ3u| G-sh-#0v21o#Q0X !X!`J@(Xc63>!f{lM9TKdCqs}g+vK{-FO{JuV>_}c!O+TxXsP2<@KC$d>6Vq-ruamSXmf&ao&L@llBF P@&(<6MA6rX?G_M@vPfv@a?%^gg*GA&3d}AdOa@8B(FSg?!=`yfZTp>4pG9X4~oMnk4hxg+C*RFdqcjNMOK>)~= YP^9W!6|B2hBThN`c-K8bOY}Z)LXBCgDOYw-w2?023jG;3hL}u}=mtO#4I34%}_peX9$-YMXeq*&3)? 4F!FSw!1j|7?9(Vfr_lg~ZN&P*sF31I9hHpmsM;BgI}D{$+e>LN>u7ZY10wWRO}yG-{&ot16}007>A$ srqDbA6M6)`8glDzLr}oN$Qaryx4B+Xge1*V{awr9G%h>v;*{lVX7xw9Wjt>+mfLDx$Sw|C}=Q<(${* o3#GpqWJ=+$x*4#x7nN*e;H4efC^5mU9lFr?zWfeT(9W9fgdyB%>sZxlD_R) u2A}~44UNQ%GrX2$p0`sMEp#Woh-wI~32#$Nv&WMVExk#jVGp3^i9M5ed>nS@sTZfGDa47}pQz;5)oC sxY>#=in0|Hmz=^NSy?3T LyW(hBU}*~tnTDUjq%5e>ihM>^6VxUlQ^v87keH)AqLEV~yY;YfznEy8T6jn_atX(`Vs;k!%SHf&)>2bngZzfh>Jo#6>;$(4YCs8?V#&nZ79CjAD9Ab`HDaD!#KVc$@rQ*ek64Ph1ix4!=#TjsEW %{{d_YkfkR@3bF>}&G$llhjd&E;W4``AOtBcH8-lrnT|^gNaK`|Q(7$@HfU`7Y@By=3 n(@DTvGgYL%}qcMo5h&(KOSiubFvsPDbBJB}~ii;8LKMP%t?2#+F8j)7Y#7{DLf!&#wNLFz&4yaAU1U o1GKzmfx4z>6%Wc+xNfG@FeE5jgIyu8=z@j@3L7(#3KO(^Vb6CI)sD@X(Nzz+S?m}ZF)gzaNQ3~`T3H n<{@{6I$W4^|!dZME;kM{VvG_tZ;1w{f0~D2o-oMrV}-ErU#H`0hg3B_||iXu=Set#l)W8IOLo{5qYO3L{m_GjGK3b;HWs`k)a3c!~qjO@nyo7Q@GUIj^NFe>_ }grQq`L%n;wC*X7IW;ye>}OILY=yH(5Qn|}dNO9KQH000080A>M2TqZRYD6I+r09+sd03-ka0B~t=FJ EbHbY*gGVQepRWo%|&Z*_EJVRU6=Ut?%xV{0yOd8JufZ`;Tfe%G&<$|yn=G9MNNS_tKKw~5mRo9+g2c Jp8u#F!jf6H^@SaA;Xg{onhYxsV)*_9k0B*y8YH@l&Uo@V!>Ix3aknkE%5-*WEx$b!p4ZHavERZc!0qxRMt&?>f=3kqdX ^Ak3i!-SF}yuWNo&i-mjH$~MjKMN=vb`o$e59@2ZEI|vqVesPaqfnix^ymMdj`=d+s0D{!p*f>f9SFU5$1mOKGx(h#(O{9h)uI|4= Q13>!>Q1sDMU9%r4eSY^c~1_Q=`9=?WH@JL+Xvh&4t>*jRVHVH$T4m>Eq?o;31$QzshB&@*&io#Dxm= p;b5?1WXnTAJX@Y=nN33V797RFIG=qU&&e^N{!gXxAXE7FTh)Fc5O~T?z&< tio2XbJXiZhXn(5OLtaX49r2L2Lhq#2aOd7@(bk~$EF-`uViqnQ96){eH*eso<;CcAQ*Oinm+u^)dn= lbQX%-Fix>IFi;EvvHe|n){=m-+PfC91vcCX^vKvAq3u!Kedf(c!B+nbZLt+Kg0%5>%(tL;1Do8u_Wp XDD8`c@UV&~t||BdAXr}@pnAoFGP9TqR(-^t3pBs`q^jGJ~_{>?XkP6m`!x)l$lyoH55f)+^djl}~eH i1$^R4+*vm&A{|)$#}>OOxjbBB@%lfBYQsudm@B}o3HTa3etw(-w9=D90D`D3 2B0(cK_8e=P$n;#*$O5eWM?SLTg(AaRuk5S(`WASRVMv}ut_2W>lK04nk|Wd^^)a!)?)SoXnPe=iJuU ko0CiS5}c@3G|3!~Yi5lMQL|-ls`I}tS5#&Opi_EB(n3h8x+$qH8PHipbcAwgF>*qV5Mqa7`Eq)fhlKb3A%-;-jEr|$X5M~*kuwat- 0s5EYlOrmMXtJ{jSweq&A1aZ($It);Nynr&SvJbkaXMtS8p|CDXmTT1T=+0K*lU8-!U8w+9u^UzCUP~h q;%8{f;v)NWYddGwHLE7voiq+->@t+q5azasop-G$WF-sl47T4UsDd}_Q{R~*DhkTAoWuTrzo)6LBin 1BHEPJ$){N;<&9+#w|LVpqb;s^#Y|7?P6JBRjW~$ymuTgNmo9{?>GsO#A>zP 8Jm6%c~p6dwq3H9FTOD(xjEUO~h%B45hexAKCY$cIIbw rYf6F;7=2&9mTLeK1vXHi3IqzyM?O#~a@D A`6%nCZ$_{~gu-QNGxkI0h@s_AI!Aj`vDqgq*5mEO;yIr-==|CJ)NgRz0qQaYDPK^b;S9DU*&8jOPn?BA SoYjhGk@G2cd2;+vuOMx58Lm$15;WdM8{)wOX&?Uyy?IJgf~nOQM#|T|RE(vUm}fx>jIxV9)gEQ=Z|> {~uq3VJvS{Zg+RC3@*GQI`-dDCWYqIK0om0PL$bejzmTM!7#3M{VlBwyywtt2kE#c;IM*FsaI^gYRhJ ~Y@yAtYRvme=Z57EUjJa^m;}PP`TJ8?)!f69 -hIpw;7C^UJi8qbT*!IRJ!Z{ngd=dJ=EfYZrl0)sJE^CX^Fu=D4R6lT4Xi1?A4*%qVz2H(ekIExPiK0?{Q!e99a%%O#JFToVP@di%&yuUfjK+ppI|y`2Wwkiv`MqN}5OF1c!~WQz !Hy}+VZSBsI6-#Uk>_}pDTyCfPB1=OP+eHfT>6oIq@jv;R6zgk?wz}1@E9sWa{#jeNeS| ODDb#L 4hLRiekSDw#eqONzR&ru)iHCdrYnHIWbC0|v;kMAp5OiHsr@F E@a8D-wzE`I-E=z_i6IXP6}PxsC^Rs67(N9S=yUoLL&12EY@SF%p>$^eaVI&)>HVjk-Uzln%`)7*F)z R!eg9D)^V60>2}h2Zzj^%gu3UtK|`1 y?APN8gG9v&09smFUaA|NaUukZ1WpZv|Y%h0cWo2w%Vs&Y3WMy(LaCzNXTaVku6@J&R7}E$!AzC&z;$ 8$OKx?lH14$g%PV%rYh*@eRu}hIOXSnN)oB!VL%$*l$7XkWG0(;@iocnbSlO%cD6$c?z$5qp@9e%F+v f7sQp4}aUs3hBU&5^ySrQ%ifPJHUiP8>z8WR@h!Vxf2QeAlbK6M4?cW7~9!@w#plS7lSn#lo&t&3+HO ?zNFw%hkcXcEaE)nyM0ohRpbN;Sj!2qT|<TT13T5-d PgREC21hcROuba9ocvb!;@|qvTYPfVOItgyh;j>3Puk|fJx4)Rx6|?`uER{9nsd<$Z9O`#~zmmpZ(#q UX@wpJKR?LWy273*4818?rW#7`iFgtU&jzaM*SKMJDXn8N8R}Hdad!cge0Qt6rca+z?8Y&^6YPN8btS ajphwXd(f99yhJCJ$qaMQx##t*bh4#D)2<**g)i)Vj*JdRv!OGVB!hs^EGq3gsa`oV&ZhG2$qaLfT~r ^{>*IMA}*;&_hL(;&xE`Y;f%E#hojb}M$^@{m&$oCfW?;O7)mpN{v`fgEQnFjv5gDc3?A{l UQ2TwCV9SGEON2m1IMn(JAt#E$cpCJf~T}g(kp)P+cy_~&$EwTFE7H|ldmtZkgVwRn}7ZI_TA;nf4sj 0vVW2p-U-=P3b<6?R^qCH_gzgD{Bgxj?R;D;7F)4ndC}C0!&IKfRIV9(dC4xmW7kbntrrXr(%35jB^= 9IP|i~ah>c%#lq^*>&5Z=L8-c9G9IkAkf!8hX_>lqehXA1(D7%v)W0%=JLsD%no@dV-G5xm_$d|R|B8 _#JNx_kjQ@LC^G324?;hj2Bq!#$oddBHi3ojY_5BssH#d<*VouTPOeT9HhouUCpQAn^OV&BY1X3kP+e4z {8_8q*SwNq5fjrniq~8Jl9e)tx5s3DdHJ4!L~+yfDr2u2&6TDa9qMbOOT-JJszC%vGC8OGf9wrkh=L< _DMT|52Q3MNmlM-xn$iAH1%4NN=GQ1WC_ab|yir8Dl^m5jmtgXU$aBJ(_vILWgvf6}LD4d)#mfS(yv? 0P0&=90)ri$)&|_qV4_zjL`b{K9(0 w0S|tj;|VvzZridD1XY`WO*~(=bN?A~J!;3X(B3QmZaW41!mr>rx|h}%nP2-dr1hlxeZ`UyvOU7*i{TFY$;xjV)~R)br1QOGI_f!N$yXym13K M~D{=$;PHDw;-^<{k)9yWuV3z|$#)s}auK%rOBWBL2)iN`uS=YZi)^o7elmBUrjCY-8PC%hZ2agUikM 9v_@CP1E ^wbb%bq7oo%g7Elv3XY>Ou^>(ck(et~4P$GQJaufet%@3|B(3pDur5-+ucI^XL&oV@D!Gf~6$#6`SbH 1&8w7!}SYQzU`Inz9`1bqREtNT{O&!>t5WNt8U}gQ#bXjscm2A`eu`oP20S)0mYhKC~fBWin1o*BdfS QL=~#fxWe&Hl{;Qg!bu!+34!@$kxB|nG~Q(Du;FTz1{DmP^6mS}t^+@a@F-Z!MJc=EU5(fnTGL2RA@h ~g!xj3Yd0*q-D5_%thO4f83|GZCA(*4O%#pfWw_}ZL)wUHan${X!Lg+9;Z;_IZy?FLFTcS#J(8P`Ji2 62&95OYO9h{5q#pPDeS*m)g$dy*!3ZbY4Bos^5!#s_FZRi$oxp6Z^l#km(>RL-)I;D&whDaE3}D5Og7zAw+B3yhkmw`TRE5FVp0kdgYnPtvYbUWM33W1a=;zk@2XWsz;zO`u6aX(XE|f2GxwUdG&FHAJ>K&iTr R_8ho>1IdTBgciE4E;K+P*6LRDV@ZQ8^Yd>xwIJ}Uf$DA%##E`mgVV`neBNi6M9YQ}8KFXxg?ah=|ty {D#a%C4tQ@A%sq;@N_131CJFfL9tPxQn?uhAGXYJm0PFksDw9zAR(m%sQSG?PV7Wx8b?c)C8Ak9RL6TaA|NaUukZ1WpZv|Y%gPMX)j-2X>MtBUtcb8c_oZ74g(rfczF|*SohJr-pVWe08mQ<1QY-O00;nP0YzNLRWc!JX>N37a&BR4FJo +JFJX0bZ)0z5aBO9CX>V>WaCx0s-H+Qg5`Xt!!BZbrLcMB}M_*kaNEdg(<(fs3;vNh`=E}6qMkaM6wY vuHkG~myNTeihlKLTQlbr9F-wc^7%ihZ)uZcNPLt6R7lqR$@vX<8)oceUrWSq3J 4b&kQA8M>#21_noFsy#cVX*$i@F9~Q$Zt~Im_W%0KadW+a-tg7wd_=lNkH|fir61`!%E8m2(tTk_tl#}K7Xj*e) #wO`@7F~8G#Id9D*>H-YTaweiVar5m&{J5;1ZLd8CSCDriqk6|;g`#WXt2>w`;!;1XP%XQ)~ApAR2@` ;-*~Ty^!#TRfB%v+CAQQbFw35#=W4ye)OxaFZ9CSF7zn0R#}Cd_v?zZ3}x6B00#cJEhRzwHLW@d~V4r $Cf?UtcB7Ld-i;%lvH!1SfRM$^L#y%;<=MOBnTSUaBcD=vE3=3J8)vNUHAwLlp{u!pl7xs+9>iro3uc Nf9x^LRcjDrh%<1|AL19bBDIG788N^bNs=QEVC$EOlEH?MDPu-l+r$`(%rj_N&1pkws==n46KmR=m@5 hRk_YTosF9A&sm7l`j!I?_pV6kLr_rvi05xzuohKt*+Tu$f6oZ*Vb5{Fe R)iqo24r<=HJ1Ns1iaKZ0x$#WNI|Ez`ALezdVoyfUXw>Jg|E(C-R5=0$S0sWG{|84b3x(Sg|HRDb-S2 g{lYDL6RS8ag?H{>5|X0Z^pGHZ-VS;g;eLosEBPgH%b;T-Kje$BGFzaKVhwI08*QrNV&BkOipqND+`{ >UjM8fU?br0dP9-^!d}9vLpxi3wU3DAtt1B)L2r#9>|sOjeYjQG5oX&0TK^S&5mp1rG&PP0Ro&S9KJW hu|Pxi_Kb?JB(D{nT875A)SS?G>}a8RvI(LaFk4%iHP)UezinX O{4W$dcvlDDwjUx~HB|;hb+q$3b%1?jX-+#RO^r`yi-TV8gO`(PSI9G@G$>Br=wY0SC1yx5~1T}Hp&J ?gyHBuZa_y)Y(0)#~wyE0+CT|}S?lMB=?k)0hI9=Yr^;Hib$1804QAa-`6kCfZ!POu$moqRCm+4ucyo fVs(w^rfjxF*Sp3>|!^$f%>{&r9;?O!Z%#rFI{@{T#}?7rdP@%AbdkJ&XZdw4Iq1_@x(!-$vrT#Kq!y 6|qD>=6KwM(VLMYe`LXCTU>+tuC!qM3|uP9#i2gteKp!jE8EFgPS?_Io0xP(rNX40 T)NVIYa<_viB4V`L{er~5?siN34&?9^Cs6o-M#8TcT}Ir}60*<%4tfz#MjTS`h!X(mmgMIm!79saJ4O h1BMj85G0O^q%o?)x2cQH-O^3EE1K-`OZ-%C#$UpEsRKZjn0T&~UuwfKt;-(P=yV>&Nz-00{oNu&6lWd?E1-a2H8_o`%OVCJn|M5~ Kx--|J*%*HRI+Pz0+qUSX_Qavcu4X?LychqW->3%z7Ld$<`wrZ2^fBz^z1z$G%t56f4#N3Z(xAgdf%+@Nx)7yuo<4XHgCjbyRh#(!^OFO?fC~p6GnFzMtN|M9fddF?X c6hMgx7ueZf<%;UF{bkQJmOJ@?9Kgc!KPBKPQ;1y|4T;sT6@cMjjNVkY0i!#;bYJe(Uo1L-6av0>CFR =dmm%Du*{CdON*e47WnJHs1*8_a$oufwy@=*i{v_Bt#$ZPJGg4-qLa#DK8=HbAJQFkE!QUDPtS`DzqG SP`bqpTef?p9_VxDe+H^-knz=E~<=4_Z&>)&BcI+B(ogEr2xAEX;6AIs|F{e<9({s 1`JCS%hf8v_CW@?#6qz;6xk(X(C2kWu0Y$8A{J+S_@b)Os_J7=!Kk^&p*$`@OamgpORMgfjBn74=2E9 jA*?E64!S*Xjfep%Y{{*_Pa5{3FK3efCu*8Q+?k51ADjeql=Uorpg>?UjXHUgI?iksjmTH_Ss9W}fxy X8EVxy1F4)rWu0zZ}mPA*4Fv%U&M#f@*ypIZxUDq_GhX;SK~IL-D7ZrQ*krsK0?k+y);cDi;=&#@aj= G2ErP6+Oru>=YCP4<;k{4JO)7n|kRm6h1n?LLPHYNm#_$P{g;iK7MI(*$LFWa`_kC;pRmT!%caPQ(UG gpV3XuU)~`9)7zetGb?5~^5Ar6@zPyzywO~vAdB%SC|)>g_JiZ1;V%j$*BI$*#A$2-CqQk0M2T!gicbBGH70MH`<03iSX0B~t=FJEbHbY*gGVQepBY-ulIVRL0)V{dJ3VQyqDaCyyIZI 9cy5&rI9L1>Z22E0PskBjpa`<9$>IqzcEn`;pS1TE1v8(Gwm(mHOM|K4Xvy<6Vo3iMFnkd^r|Gn|)aW ~d8-;7VA@uJvvw(wIewuy)Gm)yPET5`T4(t5n(`2u7o|(L2WZy2uM7IcI8@X_I4ps&kPmo!Zf;982_O qtZ?9XBg>pt?E&o<(V*6*1v7_W)JmiZbT$kBKqXnS9>bv??qBb>*w-A1}4?awMY`NN@OW_rm~Pf%QV& |G%DIw%Z&6w;YcqptOa4hGMeCxXsw+p&81025=M!twnn=caytbLFN9*82{>fQ<>$OUgCD;3qra%n^Yj !2rxnv|q%++)ruS}U%AT?qR!TQFaxID^w?D}wd!x-xFYcE7&E3=DW;&V-2_Zj6((A6v{z}B9c09@Q$ E`8i_>mhWHmSC`itbg`8lR^)6nuk-wuTon-)r*;noDKWo4YsiS?R)F6)K5ulqshM1xCOmHe9Pj!i#gc tDRsgqfa~&`IhT_I;?TOw~Ur*goUDevpXw&jE0J&-#wdp=#fF@=8Zh6a_^eD`h(xB(b!Z o93dQgujiuqu{Ak2E8~_M5V;_Rjae|Md5or=JG^_Cn+Ir{4#+;{O2hf|0Mk9xlmBWn(Vsvuhyr!@?!v %xbAPE4aF$I?dcpCXz0UZ*~JYTSt)(Mup5edN1EsNzENUKtnb3V2*S;Jo7?})+f1z4Ix`Ab>tz`9Fk! p?tW3!O?Y3q7{TaFR(_6P}EkIq(RH1@_aQ?nKEDbLCriy2PH@0PKwGm9<7@ZjXDNc4o;hXY1fg<)h=t SN4U3`5JT=t}E19DKB>YK7zXsdvt=xq(?tf cbNsF-wjikc2AdSsjQe#SDuz7P&uU74T;z|C*YUBOGLO#(sfe01HO4y&NFoH#4<%6ADoL*(>zO?q^JZ NM@v!Y2I*yk|e;KMBECCz&7J@=adDh=8k00(mY^)SZ640%?7^`MA!!e*+-{Dq>)C4Mkv&l3!Tq*St55 3MEa7V1S!@$mwB2r4=QPH2^h2a1?|2}maaz#ixRIvLvOlsOJ=t Ev}b`fP{y3r~&HP^r411GqZ7FaKZ#`_d7R?{HWFdm-SkX!5@j_f+%HKS3AoPZaUh)9((d=cOW_p2`1( N(Rs0Zg9R!%G&+@P%%$+D_vR7*wum3AJc^?C35!;dk8P_b^wo^P*lFNowQUdQgzd#VRIDrhOJ~I3c$8 ?Opz%-F(ry*Y8!SoWd?DNW0U9?46!V!XexK^q1Kg?9}1ujZiW^v^jx}11pKu@pZ(DE3^%t|Pj8O_wgE yX0*AWBM=ZWu%RkG*N(&RusRuGemVd()?vSjUX<0-dm?Sc$5&&8=!5`}$!pfTHH-v81eILWlMMIOYT| vhw7nbRIC>5iTPUMFwS=VzP8xhagT2Rjm&5^G_8)!}eLMxT1ylIHq$+#>fTLSouT#H67{(?}Q^naB6_ A1|cK18OvIvP)2E)clm*{uu)tAfg(?Y2O4?9+B}%YTpHXY5zWc7;V2M%$@eli}Nxm4p_hD-6qqh}Dh1 #;Dm-HHMcKt?IVUd-LA4KvWy902@&Rs8Fj!l5abzYUj$*D3Ky%s5!f|dQ2On80^ug`=xOz3Qeu<{;F{ +E1WTk&y*x3{nCAnLvCRbcUzL_Qe2eh{sJU9oO@wnC!99zUi*y2<-Lmn8d9+=o`rIkoWApuur$=HeXU J*cD*BYMIXL%p#!vg#-^046fo@1UcyHl5w+t=TLeYjcBq_ihinAIiJ3&-y@z@G;x!v*b#>{-Bs;H1ek +vBe@`KLMEkFuI`+7$pvwnn((;u6Ji5eG@n}!6*^C9E$aT==H@ubwIt_?lPn;iT?9WakSg>9PqZX3XH `8PEIgw7ZnN_r_fyUW7`DoU?8|>CjHSbwhl-^ayDVE)3ltPFNcgd_;i-Ez*50UJ}!E%|B)5d%)1$|5K o|RV?2&>_0-Gu$g&7bP{FW>!o`Hx3_ySTi1cYDL%++Hr99&R58I((@Agb0JVXfI59q&|9rB?4@%lSJ> SM5)i=g3>WyC4&q0%7(0Wf#pcR(ZYXf!clF|W{yt?HtF4Bb;7M_zFnMA*q@(ghkOfcL~It+!J_#|U+2 tbGE!@W@DppGKo1ISu`2HdLV|0G)*NNRv@WioxtcQ7Nj14?iwdB&yp_^vLN%O-wjSy;95g2)d-)pDmR GaL2p+1i5-RA*gYY3dpR)ayKEohP-CBM>zvmB6i^Y8Lmd_Xb@#*UR;qLnO@ewM2Rz|0E=oYDGVU)v2x KKER8@>9!%R4%k7y*n~g8DFSr$o9$Y0ToTCWD?Qw0}_@DL<=x?8={x mn`pY?x^WJP@33C=O-{J72sq9%I?g6L33%t@%vkAzkjISpvnh635TVPpw=jZerZ 8a|-FQ@yU)SXpN=5()f(8eEc1CP{e;HQ-PQqSy(Q(wFuYkjK8X{ *kX?Dt5_esGOKco{XD^Cz}xu-rzNX{xh%cyW5K``c9l_J(tcF;wYBTi6rtvuG gw(R^Twob$*97vz^99ijj*|GZ#IZgK)3!I{B%>bC=lhL_@s`FT8HgLJ%M8(p*gCrH!kU}37#|~Dm?-q ~Chs*h5Nwq*PQd~Cj+)xIhvp~m{H#z8Ad?&xNo|&iT*bUZdnN9WYz(G%$CPAYVUAx{ Hwx?OnfoO!=jRcIu2FUA?FA_*grWcJbV5dD}Pk?J{}FdROIjgX?d?sVB;suQ#!ZT#q}g|KE}i12+a!= S}UKgZB3l5Trn&WbQuKm5i8A9M-9+{zy}X&FZ|I9i&*E^vl=Le*jQR0|XQR000O8W&uT9Gpdeu86^M! M2!Fd9{>OVaA|NaUukZ1WpZv|Y%gPMX)j}KWN&bEX>V?GE^v9>eQR^u#+KlB{ffSDZHb%_U^|{nrnpg RbrmJ{j$^ANC3o*?RR}~jB}5>=0YJ&TUjO$!uYLib9#p)$HLgS?f$r1Yr%#_(pFSN$(N1%n)q19?Wt& %Jqq1_QuIg&FY<70euC-d$c{$COg;v+P)+%pQTdA3z=cTrFs&cCL)a9yG|5R4(KdHQI+N^BztktT$){ C91qPonAVx6duP_5QkQV*p%c^c+P=NM~dbzVB&x-2m3i@GwR*m_#%-ZWBzcfEv{i(gHvn9 ixugYm#RYjw0=^Ey-;J45lLbQ2#`s?xW$@!N;eG6v}~Zw^b 8Ot@77C1qP#gMVdf5DF0#u)?{Ep2^(4Io0;%d`nN4pp9Br~{bJuquoT|*HS&{!kr)9PXsv4q5rbV96s A^O1uqx;ImEZB9div8;3uV}Piv`fvQC(MqHHvDQ1r>fhJvvDb4-VfRr9Zwq*#q)z)25!L%No|#ry&rF YNm@OnOF59Yg3@qwyp{T?k9SB$Pe$SotHEH$y7RCAHTb&Y^@7et-9OP2|s?gtv0K1RLgaH4eLy5pV7l (dNx#-W-*z;nr!oh_DB&rk~dXq-fXUWoi*3m;`#LK*H)LX5_WcQB>{ 2lnk&2Q(fGdvRWzsB*yd90l;~m#|86CVf7++*J7U3keM)Y^0X23qr0i%1! Judd_==+PCaPIM}4(c`V+R`C|im2-H4?S(E0JW!794ines|7Ilmc$5lfCbtv63H%!o?Q_pyXr=-8*gM (zjPc{_>SKbf0TeauRB6yd)$}v2-}M;7;(TV4Ap?Bkpj|-=)%xO2tCPWGePP|K4cnd#)e;5CSrQ6r#I ;g1ZP@nmR_!UGZD_eC*_zeOcbs#7z;_aKJEX6(g=HwgP3Vptc$!Pxd830nikh_k+sMTo&Ew!N`^vM&t wfu06Up2Fd;b|EC6|v_@%>c{_R==xkJfXfuzL=ruW#7IOamA8L>vQYOra4=DJu(8z{dI^SvHf{GZ!zZ Z?{P`6kFYSnt3mhRX;Fn&H>kWxnAJu)0E{l0s6+mARmAW5(WPUS{<=t;%AJ6XlDT5e#EA-cz5W31EB@ ePJ4DXt*E5 Gv3JUwj7BYhl&BHV*`RGLkeX^$Pc@aVb5L%rdW=uvW~rz7JfEt&YYl=9RK*5a;+hB$fC-SR6_68%8Os (>2>?wL+X7822Ze@d1xRU-Oh{qfh*7tGN%RCN$S9cf2xz!;<3@pDmJT*Sq7d{B_)7|K3-HR;;4BJ3#W B-mZ0HhJfq{nKf#miO^>N%Gu`VE;)3S==vWj7NG8KR&7`Z?|Du|gP_KD1FnGP(2ECR+A+{`jaH3E=c6 F4OuD3cNy&^U3Ag|hN_$P?^)c;OT13@Eo=m6lKjC)BSX8qzGUCqY*pno#QQA;=5_wj%Xl?XkmJ!7M0C rG`DO%0h$96ZJvmyl`;3Z}Uv;8pgJ(tcn58V0bYMZ#M)m4urtvDlcZKM@3yJ@BpX31&tk4JZzCb1q5l C^%lI{@MD-VP!O}WtxeB>GJCy_#xz$3Lht=X65x`cs4^GYVp`*vV8pI9G-ia5QNFNZ!K6+lZEHzyX3S UMjjY>}ArGXV-BvjuH?OCwA~V)cW6KZd$t9THReh6yt=;5KpFhr*r~Kr;%C-Iv{67U%&+7C@`S_dIKU #lYZ;vuiv5`}fsO?h%!I656R}Ta+Q4lb2_AcB36R*JBSMw|{Pz$<4R@l~Sw2xgqE7ko*pfsZvaL!#=* 3}dSYb(-BI1G%&CVVrb4Vwj-qP1`IV;bG4YkI(MGClSXYb)){5cr$~ N*|~i01XV^C6F#qVLhT6UR!8}v#I?jwb?V_U6a!Soi~7Z20G%8F;_qP`|;7KRgx3_`Oj(;;RqsF?S5a Qv8|JWEq?g#M<-!b^E8=O%k`*V`aA@80ktk;+69s;n)4>^t!sEuL(RJBPm?2u2MArx9Uzz^@CnGh@HNG1p vBWTd%Y&KhIW0%ic1tla9qk??D8w%4?wD0+zJr#DR6a%&yR7S*_Y8pONbl>`Pdo&FT^?9S}&`*I-Cu> I@{r+_(nF+lh>%X=h-n3NIcLUJM&~25Jn506PKPKLJ4}puC_f?C9jf!Ta}rkAFG%aPafdkLp?f`Zh K{IBH?X-n9Hi!ZuNRZDPV#ghR+Owr`4)#J5>0}AH~o4EifsV1>{=GRhw9!9jwOLEN|gG?|R@iiqRfdG &64$I#C-LTUmitQJ|M@8=Qk8O0|PA8Iaqqujq8O1pI@TCos56#e=l7K}yy(9sVttjVABVOZe;oawiEW H3-$XxTTN4WYB@MMGybO^^kxB{qvtZmR3A&MN~tE;1*Ql@pdL41!`yw)3mJ0841Bk{q5l7!@CbZ@2R7 claD71>hR><*}KDo_eNOya0-2^i)I{fJ`l)PIQi*iwk1&-2r)ni*?|XIUbO3_1{_{j`P9rV|7iBlqio eys5K%*z~A{CKkDo*x(LxN1qX3{O6+Bg#s@h)TH0LYekkaNw^K+SMD?yzy9jUBM-+=;Aqn1+Y|J9T%} O6)llV2y5f-T4sD97qdtiv(U8s@te4_B}*hfFi(j&2Mb#RM#s2lk|Vl+IQf ZdZqA<^h_1`WsOe0e9k&2A&5Abxc`0XcdIX-UIT$m!2-w|($&#-CX2(2Wl#JQd&-UDB7o->&VP|_;|} lowBDL&eOh<9m3_j?0Le?U!^b9s&S1$DA<;!!#+5|%&?q>h(f(j<^$0T~6o3W2$s16hRjKdP+q1J{^sbbe)>|?-Loy=Vr c0kWFodyTd_MT+4wIpw3l{yz83lX5bmHzo0g9>J-AKgbiZ%`#MRm0m3xx4XWyit=cISm<+>M?FNC}HE Hs;XpEW$>h+}Rc<`yEif5t-&+V|cLC>kMSZHSZNpF8|>iGMP~MSWzQd(VuNVd>|=wNujThzJ`&A;0 EfX9EL=h2rtQQ8Na+X?neS=nT4Cp{FSE2mfxaL@I)yFvc?N{+X!>il1t&c27^=t3wa$Z@T8MF uq;n&uEIys_DvZmiZu1{*#fHm%Lrtb)`&;9O|Xd!!E%XK(d3q3D<@qaZl#~>|2~8Mi{h@Z!i@U?lplH VEy|UZ~7yCg~=`J{1&lzqj`sz6b28wfKQlG#kdltKv7TWsxG$TfVpFR1SkeT?$L6+%)KY#m@^G_3G&y I_Z_@p5LVLAW+_(i(e>91)Dx(IUPc_I_$H3oaRWvI#&Y#I;@HZAGmKOe(}E)oNn5Vf2XutUMtGOkMLU9UQ+K(nw$4(Esz>u_V!u$eHy aNB9nj4XQ*={tFB2W&xI8^a*a*%~gA*j~G)0Z-#%P!51|+K*CN9`=_NggRr#wqG#8i-0ugJC9Y^vvRS 28`|`PM!hs@=C{+{33^Gw(<|gs4#?a*?89k1IQC!J?hRo4Cl!n}*RT-t|DHW0{o7Jb_T=-b6-zJ3WeV ;I}0TOIRU63MS?%talho38va%a*zUHLwtv1k^j+Gu;J(b89--^`JiD%uyF@cVwA+d;q$I(UN}M_hvx99iE~L#UM JKZHby8X9lPYXuUbIrrkx}vPoAf65~W`(naMZq8nla&n3_^VE {)R$EI5`bt}eA0Ny|39qnU|PX}1RjVgF1PT751&5pW5@l~$6z-6VI-__Lq|_5BLmx9<_CuW+5($Y7sKu<0(n;q~;RbRc-q6qPi!`qO|2K|*GBgcP197(=M4w _T><%*1}8YXGM^R-`X{>0C+$B_mFo{HKL1jGfv-^eOVSB6nuENAImi9PdzL~sOl%(M1JHgVYdl?%h(_kxT2yygk&NslA+#7z(UkcMJ#Ga!)+8}hA4d9=TgU3Lvo=SsqV9RrDm^0B0F# S-_#Ya_=SiyTFek*VVX;MFjrlRwbwE&)UbQzW#;%{@bM8zS7fI{E3@=A^6-DI`2l^=e#FEh4kEdrJ4t_a$ltTMUR^Ra PCTs{78h%dX1V&DbLAtW1G)^`!_SF>#l-8H@vkFj%0{uDzyfc$Pu2QbaQ+L`G?|!u4<1sc3RXYcyhdn >8@4332x0&Jac4!(fJAo#4)~$+e@LHf6`Lf#IbX!0-==h!8tM$>=54C&(xpiXA=< Ki{hg^=q^FyJZgytuqdeicj&=K_1JO$r%NUR=|9^(BLz7Dxcm^`yQhdaOFKZ{0vm?^fGHq$y^K8;p=A Ta`o8OXNS>Ek)*+7KJP7moo&imQfE$`A>ez8TlZA=;U`T$9h`yKmlr>?!bEt(7pUgGxQiao0mX0dqQ} Is>8aEs+<`r#G}IUk=#6oi%MRmsvv)mbd8z?Q^S9o&W)Yp1oS~q1138??y8W8>p64IvO)EThmsc8WT4 oqZ1t_yPFoaQJR{1Iux>+Vsz@`jLMEp$u`Tr4WZ308~pU`4HzW_qz4+jQBV_{BWV>o3mx3r%?ov%0Qh{n31e%x@^n?#=-q~)OZ8pn$x11dJ2?8p)ZiVJ3rUbj> Y!X(FU8Mzm_&7sPw~OT#MsNi7OsT22B@k_`(>5#;hBwol_xBNu5X2Ql2BUj4tcno m4c;NtY9pT!4L$;eoV889o)b>bdUsZyO{9`{Aa{XZ~XUR&fvyTOHU$o2y?^PLHY>JmJSGid!VcDu?-s 8(ncPjiu;tMfbtd$27I{x^;wU*M;&yd5y{1>Vd(apQ+tLY5WTK2kEobTEEGC wAa&A`wTPQ@V)2%&o=#A=N;K7>Rdw5@l6tLxbDwP8uISo_P>ABc{Q~@MJ9K>< InH3v9qZOUP--W;f@@FrEhV4dW5I8|LoSVu?G0zA^=PTV!iK-vdR256d|pPiYk=DW?3u=DV7zzrw#JJ $q*wzYawYuH`?4rsYuV|8F$i>DE0oZHd;S>BrMAQH|Mr4R++PG^!l3y24Y#oH}MBb$VbPN2nwqI;lCf Qy;qdJ)W&Uz{pI`n*SSOvWta#`&DhA{E~HX~Q3gRX$G1`Ob kkoP+|YM#WPp{cktY0NFzX%MuuC5s*&{e3*T({7hZ^PwALEK-nwHDE-SI9+t&zt(nGW8S_sJTLI`Jcg $~z{ow8{~%A#__&bQIqn+_#bftR(N{JoDIUvz0>2NHltX(C+e4UtBpb#ts8{d;|GIQbiiN*+{%oopTF }p+S=yfA=_jDd5&+`-UUC&0^(NstXGil%E-eSh)27jGIBVW7+`=3IXOdTM wpp5`K^99NdtY_R8)Lukuu;cYa4%H+V?rAm&n5-9g5qlv$CP6bOBNVhB}ow=?4e-&j82Jqh2-#-e~G( bO4Ca*yQYy#|b>_1`X_NScs-d=Z$H!^Ei-a9Izd}cWdX~tSu3vVmRN!eP~T0n*`_Vv3MOCc`y)61vL` lM?$j6hPFK1Al1Y34F+Z}ayKkJ=#K7(o_2$LiOHbt!kK!!%sY(L?@cp5Bub*8Erambi%YG--u-%2Qdl aVq)jMP#J4p=F4T$QYUF^1Eo5=vBA{?%02?y-rTo*Vys+7w_=4kn?tn=wvYEyJT8(K@TFvPkb4jbRD) TnRxEoRhR`s&N`DINMrv6sfCQqNqH#O>HXJ}W@)pP!vV|q-O`HMY#t^PN$ii?m}95PfsoJFT2dADB`` 3>Oq4Mw)V`7RqH%>Z(=Sm62K`&)9f)%N-=_C4`&-F|9AW7cVJO= 0)QXKA0%dglDr^|5`x{|SFbxGEiti5M%;xJF4Q ?;#$aA~LcfdL(98}9fjfV7VP8lyytM(ne;vj`nUSAU0jMYj(E01h#l=9NmroCvUl6GTG~kxT!Ab;vql kMNnHV~q@TUzZBrU?noXsYc@p17hT^szFiXnx{qz3k1XVHBH8_>}0TWXNE-01v*>ZbDYNz&BXu*T4!y pL~K>U1@7UIJmrn@JXFV#$WP)Cn##Aip@Kx=omukeC-U7mftioHzO%lb9fV&e`+M_(EA2fbR*!p|_9S G8@Vzxal}yN1AeKUQeb*(f^_!XYNFTpFz%GPvYO_HYS<8fhWA{-o#v!XV6IH9C(}Ld}=~@?4-y{*Ewc Vw!sS`i<#g&IZ6F9wIpJ}#j$eW2%lWWMC>DfIR -As^djoR<*y9s4H2~P(nbC5+I2qLc_Qcp*OBwznyWoK1B}*bM0-JVJ3hP9%mVPWhrw*#pmi~LR)^)ou DE0efawa;7^FJ-Q{u@Ot3%J_;-rm{lmNH3donc5^~)-l8^{|l4i1d8|3?O6yE8EiN02(2JSA`yGT?pV N<=i^Ko`nfBH^KV@R5%|+w96= -2?To8s5{r5kH>V?E%}YfvcZ6)jS|!U9H%`UrLrw(?ED$r;`cO&zQ++D?3t;wg*gX+t4OKNG{|doz2o 9;kHP_W;9(;Lf^)y36wUtqa>Ize)eB$mKfjDV4+a>-%~O~!hI!iPVl{#?Xld_hBCS%Q_z+4|S*a|Q)D `0eY7L-Rzvi5C=BhKp|=yx!-u{o^5(^{!BAP2sWXEYbfoq)Oldz&qK4VpD=&xquiVc%fzpky(%B{kW8}g*K$M0|2w(FcV`3w=@gx*jRe{#U?t Zrc}b&5#EQ9OBR4C8(zanp`6wsds{u|qhDAPW#9yF(2NQ?Gjgz)o6uem6TpXs2Pe?$RNCEtincuHhc%y%sSGoMx{15&=H0%Odyb!niw&&7eHS!66r3%3UPbBkQ-WiKs~rj V8`{O_rZtI+;Ki+E-DCAZ`Fm%|M=UtT%RYH!QwOCoXs&)m)In7hjpmIDh;oIbPKo^OB74!8oB_|E1r9 P;9Z^GGf$YMY2Zk=|`x!{yFZ--n1la$B#xl6?PWHmgNnm#mTq0vr^Zd1cmeDz<MF-bly5x~|}6_KLVi*gp!`gd|{uX7L-L G4CequbQhipC*vbtIksc~3(zFvN7Jm*2krZh~>G5A+{O$6Pw-u>7K)Kv+mC!{>)ot2j}DAoi%jaXbnT0!LBsDb5aQpD{=Wa)!FvIZ2!-aa9z4fpdqXv P888IS=P&ljV~)lJfH5r?=|@d?Pfy;Mo9ssT?i|Wp>`|hcaVXmDTO&=OP0y+gbdaDt?o@lAq1wfO+Ts _7BIuS1>13-ldgu%S1{WJ};UW#2ik>5wJFq%(xzmI_C-1HUF!p*QX0-TaB>0BcJ~jwbV7cb0t&-j79x ?uU#F04Gx!*&Ey+K3ZL1T0ctgV4J^Vu#)U$!u*F6g@Z}B8rAT*O Hlu$2_tTFb!t8e9#z|pZcHe;HEB jc+EDJOfM$K!%IcL*u2eh8b06ZX!F;;TX6KQyV;5|v6wW(Rn?}LuvikRZke_hpr9&Hhe=x{Lb}sL2Q| @MR-0!oSt~zOqA8m!trC&Xv3I#0I^7G0MmaXcNvqEhfZVI1{e0~Bd_3SyS?Kyor+B~ZR|*vRnd1?}i2 @2KYnoYcRZV93mB!RGl4M;nzTq==uofmmE@hfzPEHGkE<=^wRD?vvQ_=~i3oTo|!ndcV1aF<55cs6Ag +0@;PShN_bzVOh^%W>ZfvA5_L&`7``I@c6&R!K~c4XyV5G)@3IL1o*&2{$8xBoinRLd@>GYwSU&25FT i-gOH;@N^*jvq4=J~9H`p$;Rc8rI%|gV{fSp{=yfUy?|!=@QfHfntQS%nZE$(jIV#L!;m@lfNyDk8w;y^fYX+jL)&1k^$Cb~&N+rnLa am`eag^lIOz~5QREy+k{Oh_Oi9-4vu<$;&=cO(G>Ey!%QBfpvqEjA2#V_TQo*R~Dnlgf(LxXm)nI~Vt dy8E4@r<*GY_L5!qZS3E3r^a9`kU<__V`?;G KOLmIyovo}oV(ON2o~A>`O)UYK|!il_9fWyhu2YWI-~*|(S~JE26I@+rbFN#_@`LF1;gLi=(ao|bl)H^|4_x%60?wBSH&!*a1@IGabJED|L}&7F6F!f!ly8P0{ *b7%{~z)w7oNXqv-ZKP|{o83uO(7H%a;0XingI@cwTHe?Lu+J{-tEauYb OEyO*v4R$@<>-g*`aIm_2Hk~HE@`M!nDx0qH?v$#y)j>Kud4)OrEy_Kljto{^p9hg^B7Z=vY3HUkjrQ(r<7hVGK2=cR+A@~y# +>+2C19`#N~bAo_aZ@6aWA K2modQMO+999AP~H001!q001Na003}la4%nJZggdGZeeUMV{BpR!@yo@_uqU%kJAu`hSKiAl6PmvGb5MeDw#WDAZK*er+Sl1tZ GLrpTGiXb|lIUWf=}^aMJ_sH=ar7yzC|~+UhOPOgM2Tu?R+ONIyl08|+O03rYY0B~t=FJEbHbY*gGVQepBY-ulPZe(S6Ut@1=ZDDR?E^v9RSZ i$&oZQ#bIWKmX);sz30w@LsHbHC@L7RMBdljd +uxI^ZD#r)t1ZJutM$kye?T$abtvGhn*~TY|oEO)>ddb*b&#Yf BKVrxvk-t&Ct-x8N%f0QQq^t81r^UN35C<o;G`mz_ KlvHI;iLUJB7zcI%$rXsz^#VF#{j*mK4-BkMxAK%2I4qNxT*_`Kf!*G8Q~cGC0zF* f?Kskq$$SiytAa#4QC;KIHDJ4slUqQ1cKv-cm~J-oYqcb7lheax@#Zg1`%mXR^56fbc$EjP!!QiZQ6i ;%e4VJEa$EIoNp3@(7tRcsa@9I_8-C+o#TDh5nZMWg@U`+ARHfS%#FCw+jbC3z@+Y-LsEA$Jzbtdrxu xHJHKrOoq&5!J?lKH;1`a3S(&nRRr@lf;ol;g|hF?2`pvOW;yTV+;MM#+h np?*4>s84({R(~GkVK~eO?^y1;iQ0r-M-n{%fegKFw0f2$^%pNci|%yE)7b!{KYdQmHw>ME!Ax$gUIf +^o7c+QJzufE@XCl@+S3P;An25>(*r&_$8x|0ZFn`5G_)?`O@l;Q;Co^XW}j*Uel+j-_e7~zXoebl+8 `ikGl}UH`;bzIX^yV0(b_rnUncgAJ-R@Q6RziCAT|Mma6mA?f8JKM11q6x8Vm_&0~ov&XzVPAStB3#7 SRskhSA;(u}hV0h^iBK!@usgpuW^K2~RRivS9IY7}{4f{AlqSxv6Lv5WN|M;Sb{$j%Q64PPSs0r=)#t MpAfd)gD|0uc{-9MZ%p`fBL>Yes)99&~y|>wMSLJ>(!}IHQQO+n9GZcEk?!mkw%1z#`U9%{joV-pyb1 }i$8q($8Xt_ES}K8>wy@mIn;T^E~U(IaULOIK-jB9Lq876OtO0fh*e)WMnAm3=rAlmiH1f;%$a9t&cf ?|8%!d%8#?k*(u@+TPxq{&3T`B?B?hF5G8m!kE~CDO5*c4DXMH@+E3xIpaZR1a%$*SQhN!F*jYfw=Bg {7#dN2!{T-0czq8wp9O+c{qw??FnRiFZXNl?mmAJCXm$ytj5w>#ujJorBq+G2NZ)HMR^`uTVBC7nF^i mVs~ya$Y{@Sk|PuL-1{J31^7j0Kq%!(^0~X#0P+#y@@X>akg>X~&UyQ)_dOBy !19Xyh!TNCu7D9hb-~wg}8xfTn=q{2vd70F0Q_w^i<0>M-ORK1Z~BxA`ioV)-$Q`XU|n0cyAf#GMA_s{WG_-G3mvcKzUq3ZkXk`7K8oX0H@RjPPeOiatuLr$7UC VGz(94}0~HO>se4q;_fQs&vGzx5^h|wy?)(OJUi31aKJWz1Mk rL!DL|xw0WQ%mKcne>d^C!>7~MmF>|!0PrT^+>SV_`m5pFO=vJI=J|VYUeW4TI*3Lfz_YIgtbxwhkaa IGVCj~bz6AF4RzgNsOqM*JNoqHLh#`+o`k8u?l7Yb69@VIlmz?F+}r8u|$oGiczVrn`M;vQSNyAx4n= }0cq6sR?-nsMyGZs2jppCwJ8fm^v-7s|ktT&Jk~i9ZQu(ALi7IOE#+%Al4fAz}R8adU3f9!|X7Z0pZ- >OnU<_sc$H4CC(ulB5o c!JX>N37a&BR4FJo+JFKuCIZZ2?ng;rf}+cp$^*RSAI43h_2L0=7cK+$$sfuJqA4tppHg_f=)E;1>Ql pS~5f8V(zWyM{(1xP}X_w(FyFPZ20d#eu8o`oF8LDkYLqXlVi&!bV=mwBFNS!>NfR8>3q$x>Abbr_BH LTYV%&~RCn_6AeSftIhXQ@Wc!jhk2Qd|95P)sTS+mL@B9vs&4azYTjuRcU#E>s6Lz&%`Su;CTt75tAc vkV+RT(I`u`AI{&2-yDnx!XipMWmSBj5433j{=c?E3P+n# !PRK^O^!i?`>ww-hx&armW{tx&Q-iW%Fx`VpIQVzot@gNb{;6&tpAcSX)bC76TvZw<`C5{M&Q7$?8H; AEW6gyiBJ81?lNGZJ;t*Hs>usdltjcgXl1%$MdEpbYU&tZrLxi?m_fYPENWIYJU(e&PrZhLbBtL1neW vR>!=^Gb9yaCp>>L%6D&9jLi-au}{9NC-!CkN44c_?A%V=s}dsiy;{A_u^L(<4+FB~;c0_5ec2x!z1e BTmNNix%K&k~Y){z;S_Xl9QH14J}x)0nk7LUPUJG>MJe;;C?YD0+MTSB5|+HDO#(^a=DX(lY%bo8Tg8jF~Q!H1=C RB+YRD^jZy=*q>#ewzU(Si&fdg(NFl8F &(KnYj!njVlr(Q+YL@8*50UoeI0l9Y!SG%@q^l2hAhMfMvCkq!p+Sr2}f*L(gJ;kZBpS(Dzt`B)fC)_ M5QZQZ<$&zZh-Iz;vcZX^4YJv9d?&-Kwx-$jBEFkU!H_DSnT$rzO69&zY9nY!?0Fu>mDCJAXSy*7m|c-o{1bL}muCI+eET^|@c)WYWVw+7QSQ46A826U{Mi0{U(Y<{&fLs3mZ_pl%<{);8+;oY %-^KQP7=F#j))?pcf>R^w!G3@g}Dm(q}foE0u!R96nnlCu9brD{I)1tH2}ByvsmB=m-a4K9bzGjAS6k hvFF{ZCFS3v+Bzk-%fCu359U@gjxUXFRfiT3IDQJcfCW0o@ulc{Yo@Lj@$ut=jYm4A(zsiOp-Q?{lq- _A$84VWFzJ_i*N3KxFBo2>>R%B#%%uodWZ{K+LOR}Bj4^AR$8~4RlU4B8=C40|c=ur|{)F7$`Rdz}#+ 4YLGW;wfG{zhL(kbBE^@oX3|WzX1UT9z&=%>DusRSNx2p1V$!c)}%@WKg&P_~o}N^37)c$QiZ=1QY-O00;nP0YzL7TIQvQ1^@sv5dZ)n0001RX>c!JX>N37a&BR4FJo+JFKuCIZeMU=a&u*JE^v 8`S5a@C5G_QF@Rpv!gX4qrSI^PHHtoBExN=uVT hZZa6Mr?whH)bH9fF(^tbp9Z$^H09)BQPm-}6m^vbj-vLj?L>tyRoT4^?jOP|>Ft7(rH!xlknIQ>w`J *|R+(3iCjx7S|;w@M4HEsSmcbOZlbkx_Nf@glr^>XHXhI7_G3dxN*K5j`-$6s?E{JxXB>FRNkyP!3Rn cg)2gJ1E&UaUgVNIzi(682OH29PRd}^e$;>J;GQIQ6+amKIqVp#lV_;Q7yw==G3qi;RhiV^Oicq`7$C E*Otc+F$Hjk;?@tV9K2g#M?3O8*$&x_5EAy}w36b0!QMS#0#`r$^t^q$BTpR}#qKc3O(|2|!izdBo}& ;aHt`7wH3{5hRP8A@tj2uep4}+Hvs+pbV0 >Gc@Rxig8!6bz1@x-4sX_k>QgUb&>=A;h6DTD{xJd^+ZlEG5DY#;}k?NEXsv#WA3+}lxEdUNEnky-4a 0|=a8K|VZv!TM{0u|VLZM}qpS>75fgYHmXLQerwHpjH{$z5l$>O&u>a1D;V)aVZ1bMdwlSr={ve@w`Y 4X$WvMDmwiH%`RT3PsMD)YKWy%FJ(Y~W8Gc{kMuQoA=|1TFaQ8vM8`D&<_NG?&P&dU5U~h3hu2XniLv ZfwvM*|&YeZ6X`71SYcdFSt8o*UYCYb;jWj?UPBn+trpYV(ns|CrOar-NV$G3jPdKohaOhDIE>>~luF DMvq@w}6yPP6ivS*Neh9Xac?cNiY9lU_LA+X3_7|&S8`T| L}3SgnCu@bhWwqB4wrLJHOjgxN~f52rTWwV={{ZQ29T`&nzc{1xS%&w=Ul{*7#qarRCDW%Hj6RR_f{% BNb)WSJ&C++s)=`^Luu+$!>0cz5e{^;^WOtWPu3f1+aIlGC=qZ`OKDF+)JoV=#@Zee$MSd>d7ZS@W3t ss@Jdb?6mKTkf%apfTw|j`&y$M!WPbT@r$}GqoMdJnPV$_=|6dzb|+|A_;ZP{RRwbdw0vxnBbC5tG7_ AR-r)?iJ2wkVWSA@U;LtbZhCzcMWknCZ1oI=z_@t0bi@AY<^vUB!v#Nv!OKl1R8x*fzVnH%&G0i}~10 c4q;b(^}_x%u>j<9lBAcWub%SN5X>B27@&=|gTQV2-wuDqCFQD+jh(_v*GUpwNHI52qAKUz2>@VEc-Pf{C=en+YM)my>OAJp(cm?FuVMc%@!)7sw{GP8R^dAFYGh5D0@x;fP>`s2 Jj^b>tq3`+xL}$!6TbBx;kCYgwSVl02`!{ia6voVyMYV*#G)Da30OAn-?r}n27m+H5LwEpm>9$h6uuA osHe8`Q>Oj1gfnnI&RSLiK*{h0P!W1E^A7iNM{%QZa&YF*0z%vu!THBz>}>>vSL*{-dO2?ej^Mpr5

M2T(NCR@~99100TAv02=@R0B~t=F JEbHbY*gGVQepBY-ulWVRCb2axQRr&0B46<3^JH?qAVIBM3Q>IO7ESMTmo)%i9K*8xM@k9S$0SXpt?6 Yl_XVNqe+j|M#t`eqlFBd1jLPutMSy$?EFvs;6F?ilXR0xe`n^T`6nU@K%YIDbe*!6h#*oyH*}qmhJk kZ$*}|^4Q3>W4x|q$8m_dxG?uBx!;%d-d+Mn;^wZE{nomB>d<#(<*rVSq!S;yhn6>b{#;g-$Z58eZ*# kdpG7TN-pSTd)i|swx0XQlP16dc^z-i2!1C;~*Y#<^-pE_nX?sNRPa|>l-^nsG K+A3~6@|M`0;{!wa8j2}^5hUZr_erV1q2t1Op=PYtN><|hkYlNw>|0Uryvums9Woq{^=-9as%tyBm9o0HK>mQFYYU5XFS=jp UYun$KLVJNi;IiA;!3f%t?0Vb-$d2?B-jPVpC{V4vTulFE31NSt6t 2~9Yx3Qd5eT6QC0H6P(9J#L%Bax@P8LBxsBedc=>qsw0{4v`3n9lH!l)oG3;Q$*yS*sEh|A%;ffIrL! vRiuP6N6R>$m?53(&3vO|)A+mjY^A$H(I%DU{bELNi0E!YdBS!pwT@#5~mT_$Y#9T;XUR&G6)TA7VhC 87V=tB!32<1l+I3ieQT2gg4pL4rV43ig$^C3!Z-OV6~9j{HN0TrIc{L#{34XvlZ^5YRj_9r? WDjN09q5^MYKZp?M0_m4fHGD7L&VAY)rKwE*KREMCjfeqI?<3&26-fd^fZt&?WQxZGcYM-M5%AC26*4 l4H6_!4srz8Yk$W$c+2CFFO`519E^)qCCF6nY#=Z*fTJ&%!K5OyvAj^gu-WzI!rdzE=rkix;cC?|yB( GCrUAzp@1ph8)HaV(79h5#^~+6^%*}*&`;3V!f`@q=gV|{+QKKhP3Hy#+%}i0&5HGv;n-owq>MSDi-Y2&=fBG_;_# z6?k+GG$92_z19Gx|#QFtDOS+hQOvT*{wLrd%++fU@a{iV+`v!SkqR3gapfZmG>1yX>gT#vZBZ3cuX* pVVD68#F+iC*OijM5xL+50M9)PZ)wVcb&~Po@8BJMPC(Z1qM%@3)1{~&K5koHL*6ntBajF{q=1dLV37 SbZln19dd-*rNH<@--z5KptM@PA3nD!t#j3;`4!g`?mzi19wP!m^`fg{K7?^tiM&=YSH8x-weeptlq2 AXK`+~(Ys_<5Zd#~m1e8t|qef7;%z|HvdUD>K`R?&_cMYUq{pG(*@2lJ)iggz6p8t|jFz&MC&IJ<-83 k7(8b`NHTb32&-4Cwu8qL8t|X5{c{WJT6zgaZf9h8qvnL_#F&8mWp84TO*koC61ju^yOA$Dr6yJT~!9 @lWj7Ej%63216F%as!a~Thx*r<^zwPJc|><7Z!kg*HiQbpwaA+bMkrG!`zf`1NP~y?rOE!BpwpA;MID 0wPF7ONP>l|o)ZH+PtG}RO`1$RX+3e~2f@*I7;kQ_R_HFKE*w^92-r0&PnW})=`%rgBD@?))f?M&e>1YcQKC-@^+EgncGThTp0>aQ76K7=k*n~YhMzk kQ5mdwjP)7i>p&X+u)_(tLfP7{fGJ 1}zf?vQlZKPgw43i%RTJBK*9>#K@3+RBPSlxlqz7_oZg%g^T@`YON{S5VBg+Vpg*0>p9TB>;UjF|dkn MTH)BBAD+n_pJ+svWbFm^6JW*qJl_He)yIG2@dp#)ZJS3w>ez9a+#PDgu-d~|f>x5wvNb%+%(E!C-o `_|_!@@j06O6zlUG}p!1;tl79q{u4WS6R@Dm!iToAHA1u8!@F-m$0x*I+Iqx7 qn?i;bg`Ep*FzQLEK+@ewhTTaWiO+{$k5|H~%KFkR)NCWHDNEZGZLeu+QZ4k%SwLuFCtB8+ rXL5JSZBTh3dbh{trb4u;aWN!9PX+})8JI5V6V6n$72~6Hq3C|jQ&`%l7iXm*&3&EuG-R-Z@By;dY8g ikY^-S_G+2K08vl&PFUtp3>i;EK^7wkbGa{H=ae5(&l3WmkGwOEH>6vcSO$mp3>;|!m)?9oEeZs8#sP )IxFE~H91f~HA+g|8-r=q9 Z`tDzwR)W2CCnr+F4e^wL^Cdq)vcWs+k$^UVaDEmR>)1Gk!PdKC#LKJRxOJ(+glR0BWk*5zH}1~S+^Z qPA!5AWQ*cfqVt8b#6CE4s&=m}!?!@wg$nQ*)BR1i2-ma{SLlgCV*~ %IZ8o)}yr%eK#36a~*!VWH7>p*2Tci=>4h-<0@ PXbYJPM8`V>`8{7889OyMfQAACi!iKP`kW*qu0;^b8!*8JX8Zvw$k~wt;3)3PFfwO|j{zLvWs*2PJjQ|qGZ#>y#cpfF&LIAHUV3O% Pc?L`*5O>PH?)s(@YZ4hqX|o_C=)W7k$_aE$eo~>d6&f&j(!Ms!U{Hhu@08u(HD!B4n?&joL+CYQB#Z Wy-0~_~3?PA;a0M2#io7Uy$=)KIF}NCcgyBH4qTKBSwpon}@&>#E55<8X$5X|eV_y4!4Itf7FORToG) Ud}0YBFrfW!WPN84r2_zn}|x3}!->#tv3d2Am*!AH^V@r07RgKN{z^4YnQ9OdaEA5@g#3RkpFt%czm> SGg}3FAi_{o@m{CL2XR90=CYKMfK@>WskL4|SD>%zRCS1MEtz9pFIXFbtVw7-kIFB1Hhl!d5ydX!|Oe 45WlQ*Kb0McQj38<^{Pnw>E2-4`m0d^-=T&YL4yzq5i>vLt>5x<5?rxVeufDdvsj@6&nl5QhbE{H@|~ q5F3raEtiO>PCy-_5y8Z<=}ye%wR>LH^9VSj;dOimGEYbk_)RNqvSB3NSaqNb?>7@QemY7n+5eRSa$C Ux**fFVRax1((JUP8;pAg_I}vZH-GZGst$ChpuGCq$@VgqB2|2a!R*==a^Qu*yIMRggD{}p +(jQyJ9?_>O>lN_SBUIE-+C@G8N*qG(^UkK#N8T?PCAT;5Y2_!Og(il9Y7Xr{@av@B0Uu@uPuht2 L={YV>Nev*_stBxZ&p3b@!UvXmQYKOVyT$g^5V%d*DoPDD#4st8|F*(+dRGstwcod1x3^|F@FvOxj9B)Q=`9#=14Vfot$U ZnGbLh0D!LQgr^9m!>1chOWzWVH5u$#{_GjK=WuNy_;{JTd*9h!PzwU+6K0wk-?CT#M*26}aySqr o(%$H^bNJxgU6z?pibb6lF#tNQsF#?aPx$cmk5~W_~;}Q_9uStOW;E(twdz~8AR#R<{3z7eZpUp%uQ9 QDb_l_3~Dzy6lpHAxi=~0=96#^E_2KCyP0)`4$cyu?RDbE#X#)l%=a|y2VcR!Lm>B_mWeOsjia+tu*= cOq$w)RxKUwgKbPz$N1pW43WMJk)5`X(zubU8h*=GmA^0aQAiL)(rlWes*jm}v!=a;J})=a9!DP{N+<(2N`9Y IBEi)LoKLQ-f#d&2dk7rhR*9r%4I`!-B&hBnM|8LXG6{wjIlW$W&Zc~HG+v-Fh6<@8&K9kwa x{`pRjUldosJ)Sgvrf=g@$ER&)7*V?>_zeIZOvFI#_tKpzjWNuh^0)(-TsEgzzu^QT4D)cC9Qs)}Sg% QiCt3IB9}dww10OpHGC-Lgbeubv`F!_!&Iio&@SL|YVWoS=#RNjkH_O~XZ)+sgo?3 +s`m8z~lrH4dw@PK>;_&?DLAZ~We4bNK460j_#=B9B&vv1eCgW4L9(e*W!l3Or{TA@6aWAK2mo dQMO@K<-&>Uh003eV001HY003}la4%nJZggdGZeeUMV{BFa%FRKUt(c$b1ras#aP>J+%^z>*H ;kgi`G$uG(h?gKz*p28=3}zvnWt(76L7eyll9nLQ>vtT>pEABB|@Tb^-)l!)s|s4(D>taOhgeJt>O1H LZf8AZ*`AWe62Q8fusnI*PokZbfON}F^5vJ6UIfdEB~R4I95@ad9+e?pmCX^ssO S7E{W&-X8i^VcuVe|z)pRZ7k&=WfwkW>@i)td9-+K~>~dH>}BuYY>%GnPTNGYm~fFpmk7~L3;5hJ1$$H+MQf6W3@7nAUPU3e7noyEpm02ZVzUXD+N`(R0ax}d! i-xzINc*>6H5`NB$jn;|0sHhw^0;TP?N$Ur>HzAiU6VF5{>A5Vt$|JJ&HG%M+186GIQqs;Pe8~jI;da POK4B&j|*D{6pSJ;iZ^f!zk}J8_z(a-NY4n{PVyew`c0cy6>$EIn^34o?(BI=fpd^-Z4$|PPV)vQt%_ W1kxhla5G|dK+t>IazpmAf-H`lWi>(OJF`21{TQqT9PO$xLMDlss4+KTu{?8j6LvhoMFY4#5i }dhd9c1qK>9K_H+@?0zQy;EbmOWL{a02-eJzxs)b2NyT`tw=Y6G3& U_S8qM$~}u4q6N8n9SZ`7@UbYh}SIT-HaER#joeL*!%pIU~uewk0d_h&)}TE`xdZjW07-^B4?`qapjq oH?xt^3Sr#vULDPZ&2G*Se6rSYD#EzO+^X$T#eIzU}o2^9kkU_k#g6HPnOkvshZ^AXp`k8P2~3)!a*e 6veoK->z4t-A~7zp{s4GbgSJH_Pb_dzI7PWT0qtNgh4D#VEt`Y!=u-bF;;y`X-4T oSjSk$z!yiNRVC4Ul23>i7Y#U2%hAugJbvl0_uUTc!d3y%*P_;Wz6CljKbX2hDDnSz(_9Nx7L|cs{vM gKW^|b=~hfZCmrD=dFw2@v*x6w7Iqdkah6UiyEU1vQ>(LG!=kTZ^F#B(Xh9ak4rP02OW3=xyRq*#7OR 6(s%mS7WdH%F`uBSfcUjAT{EA2&C)kr8wcx7&EwbqMQ}Z8&+M-_xqwV4wy)d~?t7{hJGG;z6M`y|x6? t}yTOsgZFIaX(IE%$MqK=G0*MSR6LLPqK#O#t8=I9wdm`;nia6`W$d`O_NH}2#`8zW$FfO@?I%fN??Y9eQv08V0pyDoZ=1QY-O00;nP0YzLmE@?;p4*&pSKmY(B0001RX>c! JX>N37a&BR4FJo+JFLGsZUt@1=ZDDR?E^v9}8{3ZCHul|L!Brk=2e#1eJ}h8B-KG<_8Eh`IlWB?~7zn aN+w91aLP<06X7lfR4lfc(QMM=Pq7UmATO`jBdF~fF2!e~UXcAV`q}fq&O+U1Z(>*Pki*mnDij1t2nv yh6>N=cEZg#Ae4+MU&f+VD-Rl<{ol6{%AIVE)|Fr^Y4(IySaN>Y>!N%Du}P)`a&i>&1El8jdHlNKqX^_Bm=z7>MUsc>mgQMYi+c?_oe=o^h{LPmp7F9k#$6 V51NbPPi|Nav;w4h@#Jacb`t-t?Z(k|!pgZZWJ4*8l9PuvAnO>OgGoX?nwSQsQuh202UO1~#KWU$KuU{+*Drp_in|LvI1X1yMT<95(-g3!em-C@12nJ0nj(JKTU>Fv se2--VL0W6a?nib<-fvW@mk}!5rbEw{4Z$pQ1Uz2g5XTIb54jlgujGsu0jD2;VW4olMeaDl!lWj~uqsC2m}aaIhQmLdgJ~R@66PtxXT7bFh4=%u114)k%5c jSt^WSkzjc&eUBS~zOZ=S3>3C0@BukoP3=6)hv)G4ti<)Yf*P0Gyy|SZGZCFliaO1Q`Ar%pNyCEJ87W #qfGH>y~q41enWZ?HTPTl)C4iF&dQrQf@00uO@(;KdjSUU;d(0vtWjN9^Z1EXL;grXnj!y)uG*L2H(z iJxs0Gjv?^t(oePtgB?0z}#ohM;>d#n?2Ci)0V(6IM+!x*_$hY(Zz(wgBe~d*8Ns!ec4U5Mng-RN3>T a)>js_@1o6i!Q~>(KQR3h-W8kLlg>PpinO%YapTYxr%RAudbe7UdK1TU9H{%58e-%6iS4v*Y7+W3|Ch#R< Gh;U#wOy2Xi0cr%`Q%JniOp%MG@nrW f$nYf8XJoD_NM69OUpl5cu|X4h(E=LHtlY9tG10(sP=YV2Z)(ZAvbpQSbyH!Yl;_NwH{32q+4vbx06c &kq7VQwjo6qr+T09Eib&Z831vWaLVRruxTnT+hUrUY7-xTNSi{9X2Sle!lk$rFcm^;NBXrhdFKNw3(B ilDwv~ev=P8slXXc!4Gei#Gss`f^*Q9Ej)FE6#D~G_HRWY2a|%BLifa|D;U}1fjR)tT=kZ)D5V(KXE; JZ?_1QlgyaHo9eN0LL-`WG-3jH%X5C^Lf%(HL8|4!s@*GqSQc8a3ECrjKfLf<%%gMuz79!07yThd!K* Iv>s9+^)9CXrrXsJ2~^#B6}A;N-wgcG6!Zps`Yst}xwOqo*jAz;q3(m{sgen^T24F Ym#6HQ`qh+ahnmz_gl%O-Yv0bm>@o%P72VEp^@X)&$WLGgnb Q#7!9|Sq3CHBObI5gr9!Rd@!e-t=?m(2VxB6hwD*sV$5c820+4k*^6fG<~vGaFU)PYBY61UcO%>0zN!1*mZbUBHYA$x`uJ9jj=~>lhTWpr^i`Q0Q~ER+B#n QE})aY7T}-#VWDmy?&&*p^_pJm&qeo)uk^6$B);(;m685msZ9(H~8-{gnIIbRaKf7OYLI~U5fC#pUld KA}eL003-e_Pn5{^#0z@P{t!Xn;3x-%COJ;3p&y#;2;s-3g!P|mOQa 20Gl-g1qS6?gy@Wvj8ja%RsDPQ=I@B*Thp>GgefXoyr*47x%05&Y$YKa2f7pV30i<_G(68Q1(q}Wnn$ 7u~78v>njjYaCdo(q9z0b;Qi#g=dkj|k%+CZn9~MU>=A@tPf&*X?c$$6^7>vQThQM_7?YvPKIC$Z>WM f;xf*vd^p)m9KEP!U$49kQ~Miqzyxdao$T=G^f#`o+l7r$o8Hny9CKW=w<`8Cr!hrT^oQYk=6y AH%P%rr%U{U%Ka!z?V}gbu!H&i7$KZjqDq8JxF6EhygmTu&;q9jz6vLeyiIw|}DjynIPh*RXQ$=1n4F NkB7C7_NVh2$HK< X&IV{Q|KLiGa5AnThkH#1)E=ki?Ieib-XHLQ}y!FvSWG`mN=49HUqOvc{RfMD%wHWD)@g9L~-i~(Vtc 7QmVS4}a2P7+4FNM&q?7LT@q=pf4)?z_al-pTxU#7z1iJ+O%OxEDRE8H_6oq_Jvp~3)POma+}A&+Pd6 &1D)dr;&J(3n3kY_ma}DGCi~xvz3e67ZHtk1M$DstB?Yw5FJTaCki^m+syO+C4Vs(!Is8Hee5^fAWci KzX;vAPBDqcBK<|Wj&&5U`F)kMBHQsE5`5PLRW4hcfeclJI{;@%1RqzUf<~@dN?>;gf$Rg+2LlDQLMee{5#4%}+^E?(po|04P9SsXx&Wd0zV%gDJ f;!&mPMRY6XfJB%njp=)k!xDhQA{3A9%ot~`TDDoUiN(nhtB2F%y)qENNf;JZ%W_js~^+6)j($o^Esz _EVcezS$#rYzqwg0iNBrzA;JOsknn1h>cv7$FVr-oBUVk_y%^wNmG*m}0gt;NAfWUm0Vf6;^!wfFj7_ q~YS1~Ye*7G3_v7b(rBL{B#mT=zdzYc!hq!O&irY|4yK`(jNJdvoII*6BVUUxAxP`XC S?o*nk>_6&eMx8N2W05wy^cKUfUP9Pe;U8qTiJ%S#qemZiyx02>^V91&xvunvI*Wwx&0&$@E88MI~qw y#x~;r3m{UezUgoLN>rc5&hlAM7yQL1KbhdIe!LE=j7Y*OcxI+5o1g#Ban}=axdC-Lm=L0OjR8TQ-^k {a9PCPurf~)o_<|5th)^Te|5q~DVQ$JH`be~*I{a=1XpL)f*oAuhsf?XEt{QhP-z_^oWozO5VKsYud*qfFolTL7jQKyLp@Y-U8EznMZb3 I6VY=qT2R#kCg&^GWRTbMTMZH=(?rGHzj>KFwGv%IV@FJHSN&3Bun?);sY2-V>S>DO(-^ &X|FPUSn%r*L)Vgcd4Lf&_r-uK`=5ei1;5d{-qFj9mg8Jn|NR?lW*%)ojy3%(sW{Q~Q| HxO1W&`uiZh%Pl|f*usT`_|81|yP6n(+bjsCi$*xo{9atX*DcDI23VAU-S=|ADr3rUlJ+zaZW=MiQjB +uz4X>)mvPIOiMB8scy{=cG;{WsAt6^Ebd>j7?xYF$mX{`eVr|MTfMvpg>!;zLs0dA+?9Uo2ZTyv(~e !X9?-8K9w}0~lxAz2<=Xi`T43_`$g6V2u7DW&5E~v!qYc+Ezu2J(2zBUgfYj5IN8GVoSg5klSq?$XlF %gq0j(s*XT|8S|w71yD-^1QY-O00;nP0YzN00%$xQ2><}X8~^|v0001RX>c!JX>N37a&BR4FJo+JFLQ 8dZf<3Ab1ras%~@@a+qe<_u3teYIK<9*wMnl%1dDFkL$YZWO?QKJf_z900xi)tv9zd?(mK9g|9hVysT a%EZgM>o-4AO^91e%``pkG~^oFJBvaV_)(v-q%Yt6bTdEm2ErZ_pM3uHGV3E7u^e6 O_Yy??e!NGQ7gHyF&`C$|_AK?HNv*_Gu%mfSD;!mG>cPk8$?`_)MarO`)6MCwViH8=h`Sl_co NBD?cY)T2|;!5pi>^ZB;oL9o0S^@j#u&}5+EkdhHN(n)@DfNs_R5DC1V<)f&e??fgFVti9jg@A2?xNX ?My2UqTUkKu@l?HWek;?w9#u!UG^WVOYPEqHcoOP*0?sWhwBw1|vR;KhuQBvcMMZbU0Ak?K2PoTP4(R ym{GH$&yg=}oc6nytq-))Bh$>f7?y^vh=whReA`^&&5Hc-D8tpqIhp=HZ*yg=`7op6&rB0Lr1^3*wi3$Ddd1x+F#j!>dCx=IM_}y6~kiR&8_;P*8C@4 n!`QXHXoKf`Gt~E}=*9|WaIVK|Rx)g=0eU$q83C$hWHol*RS#jnuzx)5Qm*-Kx17U$DTWQpVTpG01s0 jcl9cD&X12knQO9N5~0#gRBLymZa_jp{b9SCb$L|+tUY*AB-PqiZy2s}`RSEx6NU0%Juo&_#45eZfwq dFCkAeXjOda&Bk79Mk?3IyYJmDe&yJCSC!v1nhrD-M$BP72`eaF&h;l`&4Mb|B`|K {<2edxUMo^=DoX0W6wEJ?zM%?x1={s58$ZQ?-_}EEBLHyWhmc5@YeO KYl`8T>rkL+Gd`0FmGXD;jEnqA|<;q;Mrg-=;s%tr2ZJNQ&tEV60b4RffQlp_q#~Z8yI#%1am@s4ao}qtQK7bci?iv&vE9AMXOAq1-g{ObFL*7D`O|elY8K>Z}=u%#Iv3hWY MCdx)QTrAr^`Zsbsqp{cWRpsm4hA@L^hfj18>JTe;?0=%z*4$iF_{LlsSp-1fx3kT?;ha!Rz8|ZH@3N m#58nvQd*m~9C5qqVJ$FTbvAgsxqU~_Wv&sqvsfLBOtp{%x{GBB^VOf#!LZ@&Q!^ybmQo4XP?Na|h%p 2$@@8o*Bi`3y%b0q53f30ruecYZLZY)(E8pS_#z71P6uJX|1qvfo!EomSc+*JFL8SRP|JESN|5?G?^r Jlf*<=JM4=`trlg{QAa?)xJDieEQ2D{-ok){^t7Qk(G7)u1uunGv~rKAQkAXV0V(!FHqX>4NurygB$s^TZ8FaSQvg!IXmLdZZhMyZ8- `Q@OGwZLbHC9=_e)5Gf68(qpYtv0XRU277+(lVMOYtif)uWqiB#Ge$c !JX>N37a&BR4FJo_QZDDR?b1z?CX>MtBUtcb8d7W2FkK;BBzWY}Y?xD#dllB~73T&s_c7Q$>=(ar!79 Pc>V_{^;mE_F2kN;j$vJ*S;Z0pU%5ucw(ilWjqP2P(9NgNPzqrH$?>H`R+ppgxc>RRZ+B`L`zr8PBVS =sv5VwQod8)H2Pt&JC68tsy#r^Szw`>2!~r7#a7gO(OG7QSs1MiJjN?78Q@)?M$9U~Ds~Jz6c)Hdk`H 7Y?%?*&u%xmr2t9x!0wE+mVx1I^v`oNNZEH3bRJ|Y6H0v&SfmU0oRh8?b3CUd7bASIuW5T=s>` })p-S`gbKy610_q(;7enPq8c!*Z(6@212^zSi@jp4qme}jZc)f!Pr)iT&Z}rZU{}x5N1mf?LwXVCKJh8pB0Q!1un Dqd%ay@aYVkyy^5_Ck6i%Xrm1{7UrOc^-I(V)K1bLQaM>1sTaWI>4NFPD!U;rFaj^GPg2wRwEz1}7h$ z4dngY$L+qcpy!4F8n?{ZgrES4yS3F@F_!fj_^y?Vz?fOWsFPZ)S!=+Yjf(ZF}ZAeo|%fr=&OkZwUc^#b#6NKDxe=f$(!U=+NW9b5yvtE&kC;i!~kQa8BvSUIHXVIx+qe>NcoNtCLCdb<3P^ew&V(f(Fz_X^m!NS5+ +CVmLu(T*b7W0m9^&P+cN$m3dx@An1%-{X***1WYCbF&ET=LF~dlja42NS%TAI!t^tZw*s$>!@jPxetW1(W@~5_wC{)5tYVM02BUCgC% 4%GX`wI$blxot3=Xf7AKN*#)+i$OL)R~Jc`aZdH*CyQeX+WMVhaMXT^%20y_u;=c`vw&%z$ujvpm!xc O=Tx{K)PWyIgRV1Q11Y~wmdE*rjc?}nW4BjY@FA0*G{>}WeN^j{AX8hR(g@dI<;k5ozE^!(b!e_7w_XO9KQH000080A>M2T>j@3X&MRu0Jb9l03Q GV0B~t=FJEbHbY*gGVQepBZ*6U1Ze(*WV_{=xWiD`e%^7QN+c@%jeg&bTh}76h+ug$f#<_<>x7}Ny$O cXCzW5A9mS|h8ENVr{t}n=c-Lp?T0-Bi7j$wI4{mi*{&3oVnUu}`j_J0)uD>ZvvnnQOq8mOE 6JJJ{db(#TRRVE7AJLW@GiE6^Gvyy&|;nph4TeNkSb9t1C?@oe-x!7zhEo`{@1S|Y B@o<;Pq&-1YyI4gs`!DD%Cqy>yi1<-d#5*2E!P(halE+elnv*Rz^7!UEn4K~Bc%Db!zZA0MiDIZ{*p4 ?G`8b#Cu;n~w2~r5p2=u028H>o7UYW8qt7hzGD-KL;xrW9ypeU+iXn?X}EesU?L@7YwEMAFPb$AVQo= G)hpWr{~6lIc3tXUZ+-+(>IB+%yI6~z#@;ybbDGxnLjnJD0|Vmp9u(3$qeK4Mu{n+^}WlVxB@Ie;ec+ uOgDu|hk&yS;^-f~^3DZE~?<{Cin(DN#N+Ic|?dF~U~!^ds98z*toA-)hiUwCBYh?D?gtIc?Vx@#d|i @bj{)#0C}ITS2wQuh#&r%LBzkW%*@`UTa_%>~%rm O-0vB@2^K$Op@EorUx&?S}SvOac#XC`KW{jvX-<%ncBN%!ex!}xI3q{T<%nJCgj9#KmCF;_DJ#jS`bV }dCZOnNU?c%aidYUC_Ar(ZgCeAJvIu=jJEpTtSoRD#r%g#I%S9MjeJJ%ZEZQe{X0I?>bix9!0s~Hbna 0rL1JwW830VIPNNW5=7Q0<5fuzq>~oE)=(rUwn&f!%kStLlO@HetqTXROgtTy5Z~)fDLz;&P`bOY3k! ={VaEmT9v!D}-u}2wUaN9L{wx4>=|p--GyTB54zDDaIh3bzRUUU@|L`Cf;TeEH2T^Y3KzGVPjEBgB?> Z*iRfT_AZ0)s4rEYU(^7(EqpItFKG?pttI3G0ysNlm@5wP8br{CG5@6um=dhy6<(aMcO3}@?qK*;WMC smeLVH8ql4b1e2U2CiBUKPM$ZbtCK&A3ac3$JX@&fB*qO3KMizGJA t?@gvcGw6%-M_WMgUAhk&!l3J&^$hefX1*$SR7zo3&>p^9a;si8&oWqw%F8QBNDl{28KjID11 EY+kbHy~&@oX2THm@*LmJ>6nC1%cTRdYQ{_^_G1KHDf?$E_XY&RcS8)otohM%8U9}?&pd)|8gRSyf8-z%Ww7#4VG}|w%doiYwny`)i6U0k>{r=;C~sn(LcoB%V{iUw0v*l6rtP$f wPpvD#ZSRPg6!xv`S^i^YA^$vm!|Zv`bahh(z-2lPbShP&cjzkFg_g|Jiu@t%`}D$Vr#PjWoVW@pJU0#tk`EkyOGVnuxtLmy8 cbK`8cWToP)ElvJ(3&Mr>+ne(5R_o3(a4&lN*dBSID(qYUhq#KWbrPJg30pGXH}8T EMMZb09$3%dkb#G90&N>nv$Q*CyNZ!Xco+FB~yOT8Rgu%nSC9G^M7sIR)BnMdjJ1DKi~}z7F8<^*LSW hJbfxWWM*#2Npc-riZvHfT-U)z*7I}sJM)@o2H=r*UyP3F7gEh7JL!Vg#~!jBXb)Kpy~p;{ck72hhcu ttCf)4_dc5gUP^DmIuy5!fofm6!AjOET#OEx+KO5k`#siQ^}38F&^10jOf*kx!n$APsKu*Rpb2}`abb ;3&^DS4vok{Z?*z+i~99S*+7Jik`NWtj^=IR39_ tX*)S4VnR)S|Qq5g|O(fV;FkxB4+TIg_Y$-=*5K55Ve6*9Uu&BO$+0geo_cC1zx>kcNSkjdRkgCJU;Z(9yw#cKd}$rgI5H Nt5E4N7})i^nvU%!vC+fnyjFSLsco-_;pQ0ws)8S$j^~cYjG%Vqi4vF$Z1JN@(o`T)KN4raN^F>7{xp~nI3xwg!qU;dE|XCNI1ejl{l3!h7=n#!F#my *WM6C8)~yn|eTBNeb%-fb4igE`k-}kAroyN4o(e9DbJfT&6u~*oh{FU{(VZMfoZg~$yf-XQHP67OL#X 4~9A|80DFSmwo{NLdst|1z)%;jdk6Y0={ESLIIlH_(91fxO;!sqZ%ardgOI}L+H+>C|mo0KPt7v{*Fy ABAJxmMU)I-N@HjxKd)BD57KOSz{OK%N0eg{xX0|XQR000O8W&uT9{CjFqzybgO#0UTY9{>OVaA|NaU ukZ1WpZv|Y%gPPZEaz0WOFZLXk}w-E^v9ZR$FV^Fcg0GuQ&t>He_bcf$b&qt!&V4eF;G*_OYW?mONcj ^6z)#tI{~_OD6)6b*|rcJ~sqKfsf=zwx31;JB8cAj%%w-0^u|`SITOmEQC#MQ6#0Q$WQA@ TuF5fF+dtk4v5q@$DX2s{hTK0s{(M}+)9>x}{^@BcvO&j7?)Vr{qhlpj+)Kw$orKYxBNi`XiZlUQ-4Sbf@xp6l7Tr2J_R9J;IAb{+8{`gScNQvAF@hy!aLbl@@J>i7ubY-SIS47-nK@qD7| vAcc7jIOVhnjTf;!ROwcaI37$O?@Hcm6Aj1S#e%9!E}GL|JtQb=wsYy-GqOzH5QZ90If)#@3IsLn7!f &s0CBR?UGAS6PGEvgb#A<*U&nRF>ct+YXA@UIv2eWLMDU%!mU&g?DaqJ!WM-MVXyu3<;g3q#sZiD^gY%szuJ->GT08L|SzLxrGf;)PMIgQfBxPBP7=L_~XtT@!XyNl`d@2r1r 5Cyn-VbR?oMAL=)qY>QI6G>3IV?P->i2F%x4uckA! S4qEAQ+Yeg6%8g_B$J|BE8;zEH*N#`j2W$fk(OMC;aISXrbXMsM06vKWEuSZcFL0C}Q%_7fN*Ib1ax3 KInKw37=xOQLn*DfE>9LeodsqWEqyRrMg(VLQ=M*opdBM7SPra%&fv-bTfrE~jF6QII3NAph3n45*Mj k|7Y{Rjek(Ivj*>wT^Uo(4_MZws2RJJM+@xuZ(W0z*Ub-0;^MXhx4kG&2%Wjn@tcQ~aXqAjU6GI=Bhc pz}ucKj@PIrNwvnSpCp&F!}{mEE7xQdPNsATPiUARrm)`O9KQH000080A>M2T%?_#A+7}g0M!uy03-k a0B~t=FJEbHbY*gGVQepBZ*6U1Ze(*WV{dJ6Y-Mz5Z*DGdd8JrwZ`(Ey{_bCKP>fmXET!qUxzMoIbAS L{W7zJB!ZtKTq8%*~rIM8M;`zVtNJ-YK+s@O6L?Z7V-uoRLL`lp9@Mqo&vR6T##3OT)-iE~y#ED2;#t G!Rf4X5xcrV*bg2ZwHDhQ))XnA2^-MO4NUK~X(^$V79_IZkh3s;^@Y4XTLwb$|sCHH-ww(x!oVYY9&@HI;auIgJ+ZJhcC7ceO-M zpKoWs&uy*0-u8<5A>eNpJVd_wO)GZ>G+>Pm9~axD)#dwEmR_Z+^Y>$?lS-VF(74Djp 8U*W3gI%ou#Kann$MdEGP*?4=7cF0|q>dwFSD^+K{B446~tu;pv>7i)b{8ePKbM%~1c#r6G`?H*(1b2 Qp%lU0qS>*G(e+2rHGyfTcF99@>m54u{{&DCYBU<1n~^igkz?A#CyL}flMO=Pxh3>DXRQxR`c>cM*b7 Q{WF6+tdQ?n)|9sk2F3aX$o%uMi}Uva}yC;)(FN!l%rJ9{sH}GzmGWAxn8Kd7LtjTw0Ll_z)P`1{`y< #NWgWLKl}BE|6Z!4np4zO6Qfqz6l!s-vq4yI3D9Ta<>Q}B7tiz;RNF>e5$y-%V~P9NElFzP}55pBUG3 ej2__}S48|kXz-G43ey#mhR3Wk1WuqSj26IYX|t5nBXpjGOsRl=sfGb2Ty=A|q7SY*=qlBX*S0bGxL^ U@0v_$%gZUK(Z>(1X=rzt#sdDTsnX3`EtTZG> pi52VKlqQj8Hcs=8YiHsdJ$NsH+GaQ>@CY_hnEIp&zg)*JVeBthO0s>~@^JESaEg|dNarNnVD|qCA7e^JN7?1F5L~v!uMi905=WG^%6q)VmT8Y=WQwDU;Bt&_2_A3M@;1P#0-5lYNkc7gEH>?1sr5jfd8O4T(xL >(){K7B;OA^z*(ZAo@EE*L6JO83jdgXd$@#64RuPSAe#q|9ct-Ifg5?t*C*XSA$frYWyvOUcQ-)|E!$ JXZ8r5YVwTr91Zqz$z{VS11)f+zs6gZiPcJ^)?wcAnWc(LUO9KQH000080A>M2TxRSO;$jN`0C^_> 04D$d0B~t=FJEbHbY*gGVQepBZ*6U1Ze(*WV{dL|X=inEVRUJ4ZZ2?ny&7w8+q(6;e+8$ahz!WO?LHd U7wFQo3)b5fO>_6bGX&Y9Y^}1Skx~*P%YWZFhonU6ku<&N0<^Y7p7)z{D#{~^qO_?S!J~*}$Ep-Hi;J SH<2ow~Ih*NsdAZ+b#oj!Y(tMN6wi4xzOF2ssU0KytEF?F`{)qF2>$Un+0S>eBrZ@%cJkIlYoAa64QD s#aWktfU OzzBnJQDLvRe?QlJEx#*mf)+cx!pTvFZ^c^M~RogF#E27CQV`Eic`i(v&I;6=jB-m=I~M2D~ %R9;I`yZL3xin8FWOxa@5NG<~S)M0_jT`VL-CX0be1-`(O0I1z$qHf}x5by$?%HjxtKkCVn0ai$rDMK >wsG|mvn-Ecm?!bLy$UebaahpjVkcy6F0>QIW`JWx)s^SH!OM*py6`AdcaDZpUO)YF%2UzAW#1p iNy!RHOI47ug2(7xYDObV+uOW@y2OiOJ2D=WOvC`v{g^w)pUMxI5B58Fm1EyMwSAy?KH29%^R2@wcEHqpOORs+uhufh**@-r$TWY-ch*B_Tx*Ka;B*mv>v^6RHB%o`%I1L7t Y8MYG={U5p*$VBB$mhdEW0p}f$^V#z?r}NsF=F}4P0FS9Jsv#OCboegL<(Lw^Yg81b*^{jKad8WRjim t0MBbkh5CeTwJY4v>!cmU-IZ|O}9hC|fey&uzMhJA!C$jewLQ-cfpdP~iwU#p4i?XTwSAnaCd6zQ|ka Th|+cB=XoRMU^dM#_wwczWu>eT~EySTR51e9Agn=ZQu4#Psh?p@s?gtt^2;P*&%97eb};gokqJub~~irp=kE@QRX!}>0t~TC0mDoWt)K*51m#;Q;;?T-4DqnGy03g9-dk)lD?rU @04g+1nMABwT)z%{RMl=p`AZM|E9gMUD6p2iD81o&-JSfy@Phv!nbsURlR=5anKk^%O5$%E>9C<{!2N >HpEh5V7|tk<3>B-LBwz(7Sozh;*P?>C*5vbna_ qqPZJ=XjGoR3+njzc45vB*mA2Bx%wNAgs4lmdTkP^Djg5SD|?qy!b1}k@}a21isGRJXZrL_^77ZE5O` p;IatM;3f3#X}uxZMpKr4MpNoI6w>3;iq?Ku5=jnJLR+p?y|9Vsp!_*9vOmw^k*+zFuzrKc>-d&1puP llopbk)JvjT(WIh=9HlDM1%de*GnQ6({F-l*A8zmFgnjT{J^_FPqLukVHo&yA`)I-U3_U73)`k*KFlr };QfbBe|z(x1F_nyX`rjiuNNIiTjU?jNsv|Dj^4^YI^)_(S@wZ(gQedAYua?EW@im^8}$;pBZk7<6p+ p&da2-Nkk=SZhSVK9pgaegCBX?o*obyD;Wq9=u%R# )dWU3{U`IWK(M9CNl>vDeG75VE&9RYk-w`?hh~YZ|E>@;iuk$n`i-lSaTq(7)ix2x}@xdhT%H`Q2oX% Iqe5x0LqVJd9wgd3sKFF){&0)Hy}C+sFR`-K9bJuU=WHau~I`jE|&Q5atL*@7Z<|13gaw;h%j7>3c8b >Lm;v7Ai|GrVadYr2yKtSPxZ$Cjo0DuptG#?m|NewHm8Bh=!JZKyInDFPArz$8B2wlvIJs;)rmv6^^Z GuM+aFkCs$v3+D>Z`IwAvxSJS!OUSO@{#j;I2P@--8<9ydG-k5z5ob6U{J2=2=h5k{K79mc7RriMoC! R$6D6d6Xhc&kx>-?mxc0f(lw#CG(~osEL<*QiA{azL2w?>2)b@g1)+)7?H|->DohcJIRywFlCv}Jzn8 QU2NnfH$aEXGbw(Hm;NJ=LY(E&~Y7!|>%vXQV0)iBBQ193@_NEGIS6qceFAw|M9lCAKRySs7mM-m#L! aAc0E;w$l0uzm4*&X9G&ROD4 0A8>39mT!NDN{WDR#cr2yGs>OAfOx^a9x`*YSe(^*7H{X9TMp9Tof`Jc#ATj+!&B3^4tt0$Q+jQt` 2b+g65@^1ohcxxnmlKC^TZ`iYIivN*FZmfOyuDlbaoyWqyjW`cQ>pq5>;v1^yoE1pL`&V&K;y;}A =F90bh3?lA;qJh9-=bZd=YD#2ugEht2ZVg< _x(#>K)~9XBfJezZ`K+F%_~_|AH8(+5Egr0V?FBe~XZTwVcF#jK%i+_5XT_u40I6W?#a>|UnW-2-TeQ RjS&GOv#mUKtf9H9{>0as>gBwb`@3l_|_ocd}650L$qkePT!fq^6V&7nzbh4u!QIVTD`^yUGI;uFzJt %s_{k-=;r78Gb#doNQ5i%%}UcE0K!jYS?^vrLi_U_GZKOp~^rtV%ZgD(3n`-s7S>A8C*GCg#gBiz*adXmDQ@?31DfT*u86$Xt@eJ9Vitz+Ix;5#Hh&P17v{%3<41mG b>sm4y1*LS^63&|pK~6AF$AaI^I&4b2#XnX`~54ro8kC{Y`bM^ZU|QO)V9wffwgm1 l<&2aZWp#JETTnc8_v>L*fi7BC{Bbnx^4dUcddSrE@pF-Bs7L+xJBlZ_uewp!{{v7<0|XQR000O8W&u T9BySK1`v?F4l^Os59{>OVaA|NaUukZ1WpZv|Y%gPPZEaz0WOFZMWny(_E^v9BS>12jx)p!-U%~03s0 6q|i~BUAF3=?@c7d+9yGgc(EFfr!wz*28Mp8+QEdTq?;fF-Zb{i}Yu}q%x^@>a=~P`Vw=pg5&Ow 7pb@u&$Ga86i8pSopO@R;=OEx7|*3yYN-&@T3oVu|-tbo1Q7n1Li+iGjP9W4n5al<8QJa8h!&y<0c@7 -H+X26rmS=NgsGuOXWzTg|gzxh^+{Gk9)58F;&m1Zww_bAGp$>V4!!hGVLCy-(5rqqBC4|tSPHzJf&) D(9_!KG-0`6fL6)2WnCS(F5K61EE8y8XxTST4O2UAXn!z!5bO-E2Dc3w4y-2wU*BF_TwPzEWRcxg>;` 3hJ&6}Bp5kh`VKp->FrZkxdk{)?E$_@JmcfWd!*OlTOkk5e@2KJ54OLvrK~?-br;oS5D!LjDqOf|Nr4 _o0B?Owut%%1JS%*L_f#S1W%PH+x3&~I{7K@s1iQdac`hd}!}bndb5^DN3!I56`W3wT+9iMgHR`-OZRAQ?ypK^yW|_q-C @0|rSWI(6B*kG_ aFTaj4;LA$JlvN#Fz&C6U8Q5Zs5k;gBijQg}uW=h3r`d+XGxV3Yqwf%=Qzu(3`m){zY-L*H{%F>Q~XJ Zh!U66nAn8ltjvN<`;@nWJw|03IPX3ou~cFpQQr7$ek2KLo_bn~T4Kj9`V{NZCO3(}Y!KU`=x%vV(v9 x7`?RK0Lq$$&qW4O$gZ(aH(8bf|NOT8FiTGDRqU1(tI1ob@>z_J%a|jMs8RG(Xez4);;kD-mKpiBb@g wc#0XL@(6Gli{=>k_loz1{ALBXQc9{gasCMj(10;V Yb2K)@+_tiEd@@x5Lg8hv%)d(n7Bj*YGPRC}J2TPQXW{O3QyeIju5V3EgdKB3J<887F6Pib1>`PF9i^ BPIB*SMC!j1?${KA}Y1`oNo9v$RJFg{0FC^#DrDi&$rSsTE#6;NVd-Kc~03>4|{5J;n%Z-%aJcpV_nY ?IBI)*NRByH~<+CmK82X?sj!KWN%s*{FTzcT&TgWcFn(RHX3;RoqXJSqp6d0@$&GQv9mKX0VOy$WUH! BuafdSrFKB+z%n)&E=gxw(qHdx)h&zUguFW3TvxbH=6a?EX!a3AZE{f*%+ll5A_O4Fr=1I%$ghZFgRj @T`fB!I7>Bf0`?QPI|r)d&^Tvr!dT4fGMsKdu`Wh-Tf&jh*MN*h0dPXOQW)OqxQAO=Y0I@{J6p7}DME tHqPTrw?j(*xO;W7Xt#c9bWY?-q^4rc96NqyxfMztBk8KaUB!hew{f4CCx+F39s)qs&Iv_4<{z! )p?dsp892k#uIB<>ZeBTSp6yYs5w|sC#49X1)ZR2zoHvnc4G21MbU9N1~QtJDvLr+R9&RXQ}}SZA2@u G`@T5=Y#nAhQrO#oi2bD0Rt6GC~S?@wrn^tiZCi(3K;j;!B!o|Lc$%=?BUAwh@}c50Sc5bI14HHAnH( kaK?njWl=5f{9H#scLI##t?NeSsjxtX%wZyX2V#iH+;5VnIXy%)3yX)o-3QP}zb>Hbb;b=G9n1Udt VGW8?o!C8n^Nphm%A4YtMuJMn8AEKz^NAv`}B<;!tJF@?oqI@Bor;<@Iu#n4&KI&=ZpGff>=RzWoVFnIZ0V# h7U@3L^31WvYCFPgOo*^Bow!Qn)TO&9=Yg__M=-QN`EMz@+!3R{s|KUx62{V}RM_IKl 4h9EAk{-%5;R_F))jmJn;NpkVFDd!Nl8!iLy&&^6#L_Mbs0+Xfy&w%UD+L{`_-^W~a1+gYu~zv+!ziP TB$OL+0!94_doY1(Dm`Y{P`^!6Ndr{vJ*ZEQk%v%6H>53o~luO qZCCOmz?*>3osh?BPBzzLwPPg4}Y}xvRN#kbN&k(rnKzr47FUivnWULdFIoog*zb>V%g?#0Enee1^sZ EHkhg?n|NpWq`cmwt30H^n~%ZVs5dh}`w?$Ke+z^i!rjxaA yGe!4RV2Zw-C+FXJH5eRoJ;$_go(aT(2w+2FcvnfxaL;_a@gq@z8gFgzXz=yj9O-!P3|MM!_hSG8;5# %ZLA;)@XYJuEWnL_Q;vf_f3WmWt;bjhAXAGy_qb^QjzQ!L4Ui${(-pB&$RI>F2DMSMHcgU^=;eWa9b6KiiK-= V;Hjmhd~p{{T=+0|XQR000O8W&uT99UUyd%mn}dIurl^A^-pYaA|NaUukZ1WpZv|Y%gPPZEaz0WOFZM Z+C8NZ((FEaCxOzZExE)5dQ98L3k)81Gct(7zPAYFd*H40mV=(UB3hYOG{^q4Mi#><<$H2J5tmOEjg` |0I@Cd?s)gyE5)l?X-kCK@44JBc>Ac#Vy9I_RBdaf4Un+@iHQcxqTQ@{ol-6>XvsvH3*J%XRe_9LNpp rU9Vj}Uiah|eOz*+c`e;if&+%$_q`9gpCX0^wA9!rIh6<#;X?ND-iQAIq0+?*-bE1r8wlOHJfL@W?e{ XL7xV@cYQ8j4hwNAGU7e)I?t!DWH=uUvMAljG{)mSb}T5*$iY#>deffih^iB!5`g8v7!X0}9IG`B!iW 9!DAmu8`=9e*eBBR;=FSaPfMaj|eNMlG|>*C{Ic-mfK;N>%}-tHolG3uX*?r=FxxtO#%>Q-oJn3xa>k <Em7*vJmK|C=vQ;viosS^N_vGy?XxHQ}cw pl(-t_conx2ug(UGv$z?TSmd&te$Q`gVYipYB|(4Qp_PIF>^>WO=}3fK`=6g1E$2E=YfHrM2DCE+T_B *ZPd;^XK{Ixr+dK}vJ{z|6(uGRbOn5o??FuMjZy!fSY`i&|=O&FjkrNkt2&FJ?13f1%2>WTu3R4|EZt !5F$_`UN(&&f-Q1U(+v@&={=FQ2+YNZ`ES;%BjGz1Jg(|*}?>8jj)+Q{2J}LWVBs^sI%p?31Jc{@)pUj(~-atQX^ a)Owj}qRg)gh5wkChei1A6NRl6B+6TJVs;Oh#$G-FuJWXtnKhn=$dRA}TM~r!^zOM?kGEVT+Btly%~=-=mo@L>1AE^bTH=fXY=EbJsX1?D0u(WACt{-}{Dw5jFIalaxeVEE56>^ v6ftKu`Arfr4AM6|Uohkw01-Ns#jB=U!A6jUYQ5R6e_5q|1=cYqD){QYe9J)e{IalBafleKeQd0#4pI $#%mO?lbH9D^9KUm`-%=G;+ancR!mEZKW#Eeylc#0Qb&F!uIMs%d`=Gn@6Lw85ULKvRVlWUvq)e;Q7%X9!2(W(@A*0Y0i+fe7V@hOHSDqe_CT(+kcNlby>G-JKIq>~gf-j8i#C$in w&-g@1#@EvbPnq<*aOgP_dGWBdTnynM@Z7CQD?hfO94qt6DxjRK&t?w%?y~dZD7?c77$wDTT?c)U7y- )ktv`bLfg$aHliWUm5{!&tb>Qwoo_}`Y7JP?24H-=j6~6nAU4)t` ob*1b=E_){{A?L0MDYQ3j(UOEDHw44jH9YHkWHLxtpx;UsHp(-t14jnn6r(0KHYXdCWXg{o@($;DmRW ;My+6Sat|!-H-3K@L7CcnL%E&BSmc;=-6X+s^<-JO4vK!ot--Y=VZfkFCb}+h=aI~G=rTa>w!zdkHp3 KnzY3_T$Q1qPbFYy^4T#H&1v{S1(y#<9bHl?v^zODIJ(B92j7U}BGBKMN1eHCVZEdLjsFo_^{H9&(yw B7?HpHXaF#WAqb}(7NVqwzugXnIIOC )3b?kHK_HhGTOyKCI+F|d#~?tR9REYmNF%VgMCMImAvE&CT_{{v7<0|XQR000O8W&uT9{#IW~@B;t<8 w>ydAOHXWaA|NaUukZ1WpZv|Y%gPPZEaz0WOFZOa%E+DWiD`etyWEs+cprr`&SSG3dpD}r0s1{^|DQX T#~~ky=)f(EsbS%DU#ukPPb|PdxxYXOR|k_y4}MX;(YSWjysQJ)Bp}9cOP$WU*FwbGSLPsk2w^33-H %?h4gjF#5*CepsWmcgEqQGid|(MTe|hCfjz76puKD=^u|~~tae_|=Z@Eppc>5AZ2Jq_X)SM7jQ%V*Z& g6FID$n=hyw04`EXjbgnz*thZ=g^(aRi1`7!qpRfGx(*36xf83soPbI)XY9ZXc|NDE3GZ=wL{dvG0u 4ExYgO`Y<{QCE-m|^@1Eh?qgxzX$2=(!*M}$4|-Uf4DwMUrnj}(W^uBeAh8eab5ZVc 7=%zDqgbmjfS{JaClkKC5oUPxHj96*|Ko^#CdBfWfgfCP1@M)+u{2FpT{OBSCpePri;!b^{eL@>o#Q1 NZ5mg&fqf_*p$WC=Q|w_-cEJh;gkp%v%rEg#hjc|N-){+uHy;5~W>3J|^uag%xco{HZX~# )D=w;OC6AkQ`8^`s@7GZu_*IQSu)!yW%d kP@lkMenCt4h0n=sSuC~)v*23>Gdc++qPGY+h#js_?F_3^rkrRK!X1k3sW^$u 7toG^385Etp=Fe)LBuaUTWX7WMDlx<{jRbTPx}3D*s=csP)h>@6aWAK2modQMO-Xx5>VO#0055$0015 U003}la4%nJZggdGZeeUMV{dJ3VQyq|FKA(NXfAMheN|C!n=lZ5=T}%rl|Ulao}*EzsN@dEbUeZKoX-yzyg8%G*$8z~Nv7?x7kwNUl6w7+ds8Ql`yxsDqPWHj7!*@ KM+V<$SwgmPdMm$Z+8*K_f}-@gtXKbF-Lv6y 1(0g*>Bj*)$RtP_uISM&tb9o4@N6&F(DY>B`cauE+sMZ=obF!Zl> I3gJRwxPhO&FwlZ>mQ+FlahjAG_dDQ@A0z}Mp^$Njg&*??AHDU5<|Mx8jIPN83NN&>kL06=x+Ij+A#+ hHZGerZv1d@v7`8V(3_vAdEoI3@fW(5VQnI=vw_3qKf`9xrE!yB`=^T(8Jwkdb9%pAeD=uq|+BEH%2` `Y#Id2Ah4_zJw@y>$8Vk}X^skX;_5QiG<)M7$0t*_t2$Ug+LkE(s02YA9+9#*K`!+UUMZK4eSI(^)Rls~}TGM$y(|pJ#XrYg|cT-Gg=JF$jqb H0vlTqO=?Q7D=Aw(;19m;ff_VTCnF!FlJel0oNNfw0?B7%p~Sha`d=&^g=eVZ`{xbuQEAp*&m(lo}R$dmmVX-$yY6S%MrOym1FHnszpo32+WYP|2mVNO>VHQy8i?L?jn>TNUl5`8&I3vg+ $ku3b@Iy2m+8`+Vpphocq;g0~G-=+*^dc-~xo%sb3J*Dq&;LQJ6RxuiD$sh!@%!QMay;IH;Cqh7Nv-U L|Ak0X5CnN6tc9=Gm?;oXcd`$FPZ);BT3?~&3@A0hB-e5v7&1C5Duky#b9e)MGNdc`GG#vdfUJ}z%m{ yXlJ7TEZw&iJ9gai=mO!0~EjHz@x3ZVLpFG@wpo(9OwC-dbofCL`2JUk|6$QBG*d*3BAJ57C@zJc1x! bKngu>0US;s1LnU$?<1o;H}k&y)Rr=#0`g?xaB^$lJ|aFwnGrH8&iTBw<)!2&L~u?g-%x-3hFg`D+K)EENyUvbcM0 #hzzjR)1PsG2&E4o%*Hpb>@fgk4O9sqw@;Gs)kbQ>JwWkj6vS%GHS)`f^gFvv?!Eg#sS528x15R|G&$ >Bo5&b!t|$>DrU}P0r2{sHVd<8aFaTYlTt&xq**_jc)_=^{vS|F0|XQR000O8W&uT9YSjjrfCc~nkQD #`9{>OVaA|NaUukZ1WpZv|Y%gPPZEaz0WOFZRZe(S6E^v9JSZ#0HHW2>qU%{y;AOWh-el?~7McNJpiY #cl0fS)(j6}z5WKt!mq+XW)zT>M%O9`6IA8d=fJKjC_O6>$cpr+Z4Y80et5IqcBD1;f~3M*NH _4g*-}CEh%C1*C&EE39C#@l_@Kx(&d{RW<~uSPcA8&a4kYa8aW7(IMwtedHtSN_0U7v%e&fYJe&iL| k~WpDDXJ^NWx3S)Y<-rym3Jg%>EWpMQ%rp|i x*~XiI)*|$Hfh(AmdO3q%Q5s5|fGe>Of`4vO7T)Y51syQLR=wF9C(xCujvKd^T%&W0In2iq&e>_E<_A na+FpEKG~F36U(z%sNHU-xD^CiG eh?YT$xXbY;CpBu^iH|@sN9}3DSp2OEEH|U5T8h*2wDvxdBf>E2BTupv7cr_oTgnsP74u1iBYfg7*!y iGGyymgJ5u@?``M#FSA#Ml7Oyf!-6Sd*vC`MBRO+)`~UT@7BW$_W~1UOqDE25iG8nFh }b3!^8e%xUwe<=&3I2wr1RjKmtkC6r^*<f#`X`lG}#g(FgSW4X58VKxdjZ`RvMZQJ}qH%C|^@&vx5az^}&;cnHBIw4G(tC 99yllJ*MNz)1C(@2iUOix`${dL+*dcivB+~^;Zkl+vfGqEfe`!%}aykFumDU?hl6K-+KI}-#e@L*`BZ mt1W3l8I&-h_bEUN-d(x%sbJlm=mP(@c|9oeou1YYxjDHlYsG^OSu7y2Hc(g^S-cN6cYRjy9fQzkpP%y`n}lx5k^_44v!=W=nK_}(L*rcUClI(?jV%NWu 6Qo?cQIqu-10CC1eqj*4QwllL-XX?{E=qGv&-2Ao+lN*%!p0HdK7U-86y-7=sz!c&zzJ= u3UwlMN*K!C?J-5=`5sDX7xc-QAYJ#lsK$yxRN2OEzeAr3$r?%$VzmG&5m+JN%ReRgzTq$$;7DVVW>g !V)uQvDVg!{2V=szb(JnvZUs9K(u!Dk1Ian5prJUtYjw#DSp2h2LWLD;za`4*s<8w?l!j&_hv;Z_d`J +11dXtApFPXm>u37axEZY!SB2g1+bFZX-|{LN(35uItS*i0RB_71{{FV-`y!>wk?q=>*66JA%aiO&r{ ?zy5e(r6~ISVY)FmdgF(-0tWAIXA&3-qMAC*`i%`&Jk4FcCV+G_-zCj30%h1dxO|RwqU|SEr)@tiLBA nsy3(asA-3jLEFVI_Kf!h8_DIR9QU~Hz+1Vvh)A2nl>P3Sm9GM&WQOM2T%(Zr_(TK%0BH;W03iSX0B~t=FJEbHbY*gGVQepBZ*6U1Ze(*WX>N0HWn*+MaCxOx-*4MC 5PtVxaZoW#0vus`HQ*In+5sJgWQa6o I&E{Zq3%YY1Hx@w*%73}+(GEIy>IfG#zpK+`kawah*$b*#o3i88GxzSwmYZiZHo|K>@LoEG>O~l>T2$ `R+KB2H4LT!~V_&RRQ<$h@WMHh&im{m!!lO}KmX#C{S+zBlL`ZuDSUz!!tkP}ERUNHvho9F>tmCe?WK ?6S@BZ`c?fd)tHIo({uesw9`UgdPC#*B#srRXEp}}j7NlpkUZAp1{+(k#$)lxjM?zvg5ZZPSMOi7aMk vYvsw%Pc(qk(-SKuKBr9b`FUinqvEvDs`Y$*qMC%63?}u`&7hS?o4Ie_57=&k+Rfh)`)tLpjg~;PB7M 9kqg4iQv248C~}k62M@{Pbm27{_Z0jv}w63lk@OJG)fy}2EX=#K8Z3fl>8^tV^H^&H%Nk*48Tw1zk!E w{*TEKQ4x4uvr&;-l!pRteuIx%;cher@ZysA<8ii}4Dy5s>D}B&U2&Oh7h+y{=svT~=j1h+oAiMN5pylaCDB`k|NV5nJ7j 3zO7gK7*k9VfGXfEouZlA3v{&&Z+J0(w`d)M_Yl><|S)H@&c#tMgJ_Cs||Tcq?YW&R!I#hGE)o2I0IX xwPY8l(Fz|7E-MT}(tYy$S@}!WdyU?%XYK)6g#;@PU@aW1uKK?untZw5lUk&nzVu6Cc%6rZpify^^zy 6M>~SE=uZW~*L=i~dn1bN94W1mI0x9IZOR$FD?IN?2fTheVj3E2*^U(cw M(PCties(_2aH(cOJ%o{k;{DF7Mdfn;qwwn~G}2QlH1zSz&8)NJXyx?f#nR#pe7bvg2aY%PEm#_6i*F O)d-^ur#M~d0{m_c3H3nU8RJuipWXmE3x_Qy=;uZyxd6cKz)*t!D-ON4lajCoY3$1 =|uHw-5j33bp(xLxVQ8^Rg7HU5;9w74A(yYLlh_o<)#Qhf1WUzOCnX5Js<+^>UhoyIu__cNcv87jaEM Q2ISfNj{L6iJ(U*dfzGiP@L4*A;W3zJx+1Ndk$(95+T-o}RJU57`9F9)rtNa~$S0e5AFwJ7d-Rwx=R- 9?+9lV#BKwU@aVflBpfGT$o2SqdWS=o5z8~;;sS~Zm8btp01XEtp(pMP=QHay_^4klV6Q__Vkhq3KV! ke%6BoRCG%y|F6foukV-QIdvn2%*2T(iLG6M9L_W=bV<6NG(CmSm*eD` }G3=0TR^A*sfGmTiy`~G#ZWWM!x`UntCUaWYe`>Ba=iFyM5iXBCV>rP1~Zb)X9l{CYz?J&6i(PU75e@ y=>C9ZtQnu{!-hnElT^XXywTU2dww)K5djV!@Yj{^5v`Z*RPYmoIiWH5Pwh0PAYD?Pup!-tWC?8@byH $DfV%4Evvk4;(eOEORtLRD#ihoX`Q82T@_hc7XK@gD&5I(&qn?VW3?)l?=!il8Jpfut83_)zijIFhqt eu1^O1*)->KXMb#!mmXinKJiU@lc`z@PEH_ErwRzggJju2)dnejjq}O$ki>yi2R;pOMXt%PtDU@6Qgm zmfv8(g0l;WoD%3Q1sxnwSWn{Ha!{1&khH>nbh+?Q!4^9B5+y0QgI0F0tCz(uhEh*DJYCWwp~2tXB8R _}o7#k!OLO218s`9ky`Sr=`SHV2W_ xfFE;5TH2`wUrb^2=G#~LmRQ0dvnfTLxeEp5HaJEyHLPN7WKO&Zo@ky|0Sy+D BbFD<(kuU0UU)b95r$^9p#hXyi^-?PGqwpy#+YNmk0V>h_ D1`4n8BZ`-K^32w1EfA#9cs|5(&LjK))5K~fjv$3)y8x}r2)f_Rp7mU@FBxf HC(F1RK;*`~1GscHQ~s^ocfT{LxtR9aAX**^%v0D6=vE*$I=;6Mat6+r*$6}<_;VfBZ&$7`G>|C<1pX YXX=&c}Ok3n=De-T84{ZOS5RpTM+1y)6X2O*HDTviv&8mB3Zu`JkRy81YN43Q%e=|6iwo5PKS7^*BO< b+~k5kx4hltX{0_J$?S<#g9P_7loso>sgh !oG+mXXDrxGv)h}Sq5>?&4J5FLC)*ewZ6L|yQpTOE=uuC7NyMeg0U0Q`Ez7=EDe^ 079xhm^*T25d`+X0I~FB$ap_5i=s~%)t*PhGH^Xz>bSX2@HQ-!oU>pD~JVts#WhtgX`G(wN{`J-Mug#FMqwuH;&Mx=S3==Kp>EOW8^UOcZWd8T0sGI`K|z; -I`J4C%v5xX>r=JR{?g>6E?=2Lt^SKhfk1AvP+t3Z`C#s2<)K*i*8Pu=d-Pv*Q|+-W@9g7|;A%$vg!l ;CXPy+|``yqYPHZ!qziP7WG?z16N}&^Z}*2A)V^177_Jgk1WswzAx>d>jamCv|n&;;0>NL)LIkE3hg- D=fq>ozjj7$Tn=T#&3wlYz*x&=mik=PJugtjzYa#7Zq(tZ1XRd#Z?6pTUvDxf&v=j6g-2vyq2fhP3RX o_B+h`Y2JSg+5!DwRoJKw(p=lypnV6g(Qv#@8(5XmE3+afly_T@(e472uf-n$^!GuM|8OvauzPn?Kxc 5Yjr#^(QlVN>@TkonZfe{o5o`#W9_KB%(aUAGziLu&s9^jNFb6$GE(DF%9Nj~0xZG*+9QneP^Sm5S+u 0Sqi_{L+8CZ0@R=CRWBEgplMi%ZXoVP71P!jq1B~1p!q_GlbHuZzpz&3t>{X0ZaScMke?_%-hu*V<-$ n5_;Bu}S&NUri%k6ylf^61T@uYUST4^szM`bV}7V-dZU(#0yTvkoPV#TJo4O2ltppTA0ec=Y-_1Pohk I-CVN6Y=~DO6jtyzr=EFP$`Di%MTQN4x(sP2eHH#3GU%vOmkS4k|0~Gt3gQ74ZD`iW(CGl$VLWx5E1B EES`PVH200%6z_u*<5>N?ki8yHBj)q3L(&jW^4G32m3ts?~mPc}QV2<#w4wWqkD(ZMb5+45ivssm&e- 7>vDC1=L<5<+1fdBln;59a}JRGdz2MXCJ0ICRXP-(@pjP|us#TwKSAiCT%QqDs_90%dpo^UT~Of}ivE Vuzbza3ivdglvkoZ!1p-WuNOO%_RNyqmlyuHG?V6U9&|NKjFt#TlZh-eh5GfDT(=5pwH*JHWP;;M!Cf IE?y>!d+p4@AL$hXqLC~>Okh)=dIENeeDp(2%SteVy!W&tMafcHp@!NT;_vT*|sh~=2jP@X266PP@i4 i(NIPK+!Ym&a9iK>GzIbyo=9u8H9>VEf7rUc(1@Rjuk>G+A(1`R=z(+Ztsg2XO_>~Y$W_|FKuX~{p9U o HaK}rW$>^=}d6-=49B`&;u-9;9v}4qWD3ZU2yk%gT_#Xz9|sv9UIps{L73p^lO3}AF){qX4Hmu?$$~V SihX*I^xulFXVPMBXQ)n`OTNw2K7Q{@le`x`h<`O$7c%g!^z^gF9fvA_j3R3H~)F>m=XoYd3Y0-xle! OiKc*^V;o<(xeVQaaxpZVNl5gsM{7$&mJN1*64)ljdM|VtpYw5FCV@6%j datX8Jbk_c;?!*ML|u1?oN%CrF^R>vuo^*9^MfY{xO}Mmrd&r{`JBk)cii( {7K%o>*s|UIsYFN7cA}3^#RFdtOsq(B=GM3L6bkr3M&D?W)y#Y{o*;PP{ae2$r`l^h4(Q2zT3N9R8+E1+{B6xa9?If7uo6P4%^;~IoW%IQCW*+%!!WVqeNsNj) >!*EcPffRt=akR?11uGrcY@5%lI`kMj+PRcVhS}}fbt4H%+ZVk_gW)@7iQ`mf=u~BEbCT;wC;AW!aO%tRm*Ttc{t%1ToZm)B9OYdIgBJ$f9ats~2STJU P{R&2S+t-^3LWliYHylgD(Lxf<^Un|nMh$(6}^D{8=TDoBb0H^2$rN+fKewprr?%E!4BdpA6(nWFo{lFdW< vFf^)CC+tS9-aeByIlP!H_JlfQWS&!PzT@mo7bq7+6hD1`_!At3f_oZj5YAA9d46wLo KtQTysBvzyPp8d;6-#V8WAg6aD&qFzLsAKz!N+%R`%jttI{1l&SIhk`Z|X3dk2KW*ob1>Jmtom7OZCW siaF%(X%>tjZc>Dw@5edY!MZ{$)^q006cqj4i&SB;beejbR;u00d=W;1$a;8XZXg}|fQ7~4`-u>flYeU20y bmG#XVhaRg0?H5e><_fPwTGa^zf4XKgLrhA9ye4O_st^7%1(2T p}4@0iVxb>&TBHGE7fG4^yMX6{J$fXa>reLPP>Q5bQ>-Dm;Xx=-}0fV%SPBB1NIBz&x8H|RYzW*n`Tj pxQMgG$PX{?MBv+*bPkL3PBKth{dn9TN;!t_GqzcpdWo{R-(-XbDF3(w-0AbJvhT298%LTe)(#@~UQQ +n*V;RX7X46|MaaK8S|6>)ad$Cbaxjxvb(<@1Z4c4g7^(@P%2bfq-%4ET39fIR_T3HlbGoX2s6~@xo? oTq9edBelmgS&Iisz@UYlOgE1ek6iYDuJ0Hwm@ctpof5SIlzqxDTy)@eQmqaHS5c3}sg8hO =~X(OT{mN94JF9-e%R0|+QW*-WWV|?=L6m+kAFy8e mJJ5q4di9aqpSkN@qugR?gpFh(<%hWvCYIi^;B^s#h(2{A8x>KX@LP@4!D;4IhlV><`AmhKX(J-sa`n KkxK|`3y7@aRu_ZOxCF?G6EFw>JFN^BB><0t%i|e{l}Q0P(c_EMAy)R9n8wW+Yx#@>=?F=2|M(GLu!a lHmm|Ch@!z<{K{zXP4y~`ZNeiMh!uE_%h?zaS}J=oF+%0K;(jp#GoY^DxBm>>Am2O=S-#4h@nGhvq1BRvp9+>kfG5;9xb_GkLAU Zc^9Gdqsf@cs~HDFq?IQHCY86gDpEeFlp=Ujdi2T7j#;);Myz<>rsi{0Ok$W7hOxSma@`b5ZGAD@4o# *Z|%Uio3!yQ9kUC@`i}&xws)YvJa)lZ2NmBWhsD`#O3$d|dUXllxMXVn1fT2Tp&B2C#5^E0UTdu_?&Pll37O!M yA7zsMV5<$W9Ph@>vaS_E7!#%yqJor4;Ms2CTDH%brarH?_f(1zeo6tQThWU*OVGioexquRSR6CVK+YKF#2Z D)ufWJj?CtdwqV9BO-K1;4(dsi~BT8 RB!r*n^0x$8pTXZ1|h;CMQvY)O<|s{(|g)fBBqwMk$4)RtW)4^qVoYWq;|&^w^UDqhrG0Q&y)PX}CyZvp_m<48$LAWU!GxL-(# YwPd#^#!`i)PQx_DIFgd^IfkT%GbU6Z+c*Tg7-o$p=;2^Ktd^r_1j@-EAQ8CN!f`}G4jC=G4g{({LnT+XWDOpP kdqXleo^<1NG+;IZpRz=z6V>0qt>}yObx?ezS5Xe1|a|U`NI@Q@_J3Y}1}F$OZ;M@IKsLK0G(L0~lZf l#eh8HKumiR(65HF{<3p<5Nt@^jOfa;m{h4kyeLD;XPMPt1v_vV?86+8wEmpD#>N(gt8--a^k*Aeu2>?q_N-(ypy{V8L=Vptou5F|o^$T{J&Vk^k#?uK%%`vcm8A^jwYfocnt)$h(V o1QbV*`Z(978L}dgHo0czi9}WpC?*14aFW1EmaPo=sdl7ljg6+Cexsb*_WGNgLDVZJ-LC9gCYSX1FqA *m%LRSiEH3rYu;BrL?M(6W3^fJe?}tLg&}d#I|ks>g?geE7&%=HM;E&_lJG@5E?(Ers`oOZw6)DA<9s MtzWU@ej+cKd6DR=I7aci#mGw}3wO$7?GJXe3lZ%AeYzIN30=vECzb1>=j(1(*DN1>EgX?7U63IxhnEK@7VJ>BEow&ozOr83Clv8%>y6}}2WhXANhMjt_O?#|I!p|#wm*9 D$QEhdj&>r-#~nDeGK_n|r%^!z);SY!30{lFj%^+Ql7v-^|rIQ{HF^frAb_5Bf9R(CLRVD5BrP9MBhe CtKpxR=WPizw;1GtXbVIX}az7C2$3z$p=Vw=Z=DM&OGD=eG6ztLh=&IJ@s%9Mn7dKDdMrqEtpy{Dm?n jaRNbUbtN^FTTF?x*%+4Qaxn9TOe;{gC$|(WHbBVLii{?XzV_kq>vIH`jIcbx%{}8Fb8IQ6^ag#^~)K m4IMu5_)z0K@IQv6ozyy?PF{MspubFgim4`ZM*Ccn&pu33+DQj}Tu}Y(heO?c?21e_GlRM-7HkYeTtzeZcQ(1rI4Y8qtH 9=`WjVVwo{FDa7+Bjf8J;!+13jAkROzA!>WG!ACukKM3C0pE``$OK hctl)P{oVjhhI!cQTODlkdSC5*e!Lw$=dhLV=Hf*MyoxBuQpUb)$UcI9;3$(AIp(2Sxy6e;P5C)I{&( VP)=!kJGkAD;Lb!i0f!{{gJ`b+6+Cd%#C#L?!!lVM*>~offJA+Izd$-S>ggKh|w^0U#iIQ48~9|+_tg 3F`mUAPlvd#btj92p-oXaYu5*)n1-y=tiForB6`!NS7&3?FsmGm?y!$su;4bJ4d}&&ba!8MVNo><0vm $c{o~TAsa|o6Z4ceq?b(~Myl_T1u&I^|ZBOb3Jw$CV>sw^?x6SNzmt`PXcsHF}wDI9ooU$yL35^WNnG3n2Aqf`)x)C|>k27~n@6grghVLkMPDY^cqr}0! A5F4APmwVtw8}ABdGh?1ml)EE{!fP=+`Rh~&kT|iQ#^MZh?oBya^HZSvsr)tRe$J~%HdM~8q0O6=t3u bVGo{PHYptz;HMj(1ZZsVpm-oQ&GQ0VrzJb*eBV_LNXL`CsdNW-5WM6EI{^ah(6a$kl$aFcDpN$909m A_pfZ=?EX?()y>~IVL(NGGGij|AWzWd#?TimR!0L5eIcJEg_s6Fd`w?`WS44dG3}4LM*6%?r`&edtt{ #hd=mtKzz3)m-@PUB6kXxyk!9yaK0OT#0oo!1&oVHX1h?wKo}UPDVr&N_N{gyQ8*aa=GrVq 8W5r`V51COmv%y)@=W?Q3B5?EYa0@P6cGD%!&_q(ZDSax@OyF2|GPsB;8$avIyobN91lj*v`;T(f*

=Bu>d5N?Z;O; %pazW9<2xC~cpx4lchbdZ;25L@#?iIRFn@3B3dIy9j_$5KfBxu)XXgoBVf*^&n{x*g)vm&3)FD8HmT8 ICciOu*9dbu9zQWT*4vzEKr8OBQq4EAb$gOWA$aMuX5SwQ?NoZek-`-nl`?FC-Xb}w#jJSfTSeS99B+ $Lw_71^Ax+Oy=ly%rDsI$$0o+fa;S##$IOW#9Nd}ow_dm8}KDNsRii$=>kN?O@UKC0^TPN&|k;C%8JV UZOrAZoK3?|n$|teZEuXCohH#oP3<%u+nP*NyqhFw))iG##JgL$0i+hj?S|4Vq3N^``g}wkY%^GVWlkY0QWfI^5-?bkFog+@mr!yIBUwBt2U C#AQ~d@Mg8{VR|ugoCY9&G6<@vdrfmk(a+nhHDT9-eVSXOHP9ixaBsW71ma``Kx>FtX^Av- g@j_-DdlChrwcHzMq{o8i0DK9tzpl=DEm-WO%-PQA)ae44DvlrD>s{R%}~_%QD$f3f`LQv7ZuF#Ke}c EHt&6fk(!`f@mXS26j>x}}J|F~58hP$Ym+^!vFk!8Z%u>k4HkNXWR)$_5MdDTC3xMAYAjH0c75k0N<2g5 JzVK23~pjj~Z&BY11@#b-AImhOR>DE~L6F%<`8mF#tZZaF=+FxRPr`f-#g#KZM1#`U;W${jm^QX`M{^ %Jl=K1p%=g;5tI#YK0flCPOdg6&@5+l KonXS)LJMED+ND$Az!x}GmOcC|D_@0QwAy}MRMZXLh`TgfHhu`m&TmH+_=WouKEP6*QuC{3H3fkx ?K5%ULkpBW!{a{V|xI=2V2)Jig=%4a1cSqYrob(jTa{e?ddGK6IB;0^DNW$;F{t~1ivym9Q0rK$0X~B yKG55+>Iotd)^)&=|hO@LGVu;<_wpU4E)UWVa!1HwzSFB4H03&F^@J{(n$Q0|XQR000O8W&uT9h*l#$aSZ?fxikO(9 smFUaA|NaUukZ1WpZv|Y%gPPZEaz0WOFZUX>)WgaCzk#+iu%9_T67WXi!92IKs?p0MEl@(@wF$Oo4W1 um}Q`v1pr(ENMt8iQDbJ?>W4Q)Wu1f&eQrKvB|^3bH7O&(d$*`?@urrGg(EKUjVzuN7^(?`1V6zdW6QUO &-_{KTcmaHK_z&^z4!HXuI;OWf2{*ukBa@I-rBLMT_sxf4!ak9fF*l2`Q4cOu2 l`*@b{4Kuzw%&hcp2B&ieiy@*Q>p)`cNR<}aeZ8q;4jkkP+4@$tR-rnej8gplb}M=SIvwS!Ewqmpc^= 7v^qEe4$>DH{USly+T`j4>JL>To&^3waEly+l^09TZq2zNK0v6B{pA_wRLeASRu9c7nhMvcqdnA#$;2 +CX1KZyvT4Mgs$;BA%1hrmdDclKfs(k}*K)AE-ZdOdVwLv$B-seYJ~RA=1$L4>&HPN 2r1Pg0vLT4jeN%7Gh`oTMmZWS+%tcE`54x1kr)&|@JvlLeCl2FUHv^ddL1QJ<0&1u4?ISfY@;zp)&sP rId1}+uH>3j86JRK2Fa#mV8>e<(%(2LA$y#UuphV!X(`+VEc5JoJ=MRc+Ncik&0e6FLHp!%^8(1-e#x Qze?h3-MVZs!o#(-WHiBByZFUTKH=H_iZ!wm$LF)s$W@k^|CUKDGr(lFe(v!-LigHS&O@L23xG{qJR! VsA`q?ecGcGC{WhGg5Lr{Ip`Ob_WglOCJ7G=dKZn73)OpJTl#RDAi5%Rma*bB@JKKKE#^v#c*pcTjX! tbi`dwFHI)^;V8xYn)#hR{1i5FoX876Zmj oR`p3r(86~wYCkA)|DqJ0SHZfkhiqk QbDorLPO;GfgSp*i=MMos&Cu69`tO_L~mNm_)nJvmmMZi$Nq8Zz(bdTBX=#Fi`u?4p{$ef)?j26 oHi1H-z`N6CD+Gd_#jTH&ANz=+(p>oC%y;KIV6>^o^3$dvCJE~KgsTDdqU!w`(w0R1LFv*8uU7|Tfvr g1y4ZiImFR2_2iJD9t;NB{8&H9!Kkb)xU)a8&UPNB5M(l7@PP%{2uX6WQ#sjup7(EGxv+bXAF%3|;70 9UcaIVfmEdha!lL-}gH!Q$h^|mi9BrC&j+UvHS7x1ZHnhRe*Xrf=;1!kVlEu(55l))fR>sUT=?)WD}i xe&Q2P#L}Q#n+*!1EY%ln1IV)>0dX)vUmu4IQ&<^Jb#QQm6m}}kA>7Dg+*<7-raYdslb_A%-C*8+9gD =P;{QP;kW8N~m@;f66}fC~K)(Tl4q2w-zlN?HINPwLOflwJ=M$ Ml-eo(>JZ6(}NDyBJr(i5Q&{g0wIjc6|}CisYjiI{I4Bi3`PDs=;z%B@^}GSD>>>MJ;l(QZ0hUK!c!;qz;Kx2J(qdaph;m#rj+J$T2G`4C)l-$@W78tuPh&w%>VANc%Ne`FkBuw{Fq RKSLdE*rGQd1aGP5+~*khxP?stq;)09A<#OJ&kV*CJrRdR*{drqSG$LA(< u6Z~%a8IjrV)kssQJpHf#NnSw59To9DD2_K3aukWxD-*(liUzxuz5Dx&|G|+DTydpnM-x$6Jl_swwNngn4=n!@571MU=~ZH?Y`pCQ7!t4@L^d%Y_A QL2&jRUH2L$_i;K%72pcA%z6R*u8uhyA>>ztE=njgo!J2vfIL*v6M<6im@6T}3lqSC*Yi{`N`P3Eqko VS1kXviA(u9Q_l|^)p)`zrT$ecQ2xREkwi!Jwn9z5e`s}}WxpU3vj)ep+;MgGw2Jr{#lwulS-?(Rp^% K+hJfBsvJzqMm;;qKSY1zIptMppS!6N?P9y4z!a%u>yI6p_Jb*@<8T-@iqVgqjtd_Qd(YiT3fO3wioY 8-xgO3`$-MlUT*}<^=&ANJDCT+BU?6Ir};qu+F=q#ppzVW~x!eRAkxQfe_dg-0^UC&h`d~dXOuAjZ>c _8RMBSttomOSmC-nXJ1ozAFpFZ><+NK2$_525++oga4itP+a1@i1QqKzB}G-rM2T>6^W{S^lQ0E-s@03HAU0B~t=FJEbHbY*gGVQepBZ*6U1Ze(*WY;R+0E^v9J7;A6a Ht@TD1)-sU4A^S-Vcif^#fB^c0(5K8q}_m^AZY1qbEQO;r0nS5@A!}`I&xO00uoE)-SOTJ@~V-_5Z&q 7TFHvY#xzW6Alz?!Vxonx*D$jceARE=;O8vt@Ft@>s7tB(T_Y>O>Hg7v*0ACW+wgjmHJy;fmmYy@x?_ Tu)GyQKh&-+yx7{acf3T3H36nO@B 6I75D#K>gdwODK%m}nC2J=lZm%#-z0IKveB5E|ZlJb44yEJ4ord90WGy6wit*lA#NoS!(FoU2~HW=2uv>I)QuF_kYkQXS_hTMmg@R{5%;WK$7B3;`I^p<2GsLd@T?U6^g^Nf7Nin(-7s!fTkXGiqrv&U~IwLDVn*eTNa^KpIt)rI2C`GgAmhgF6@g9l%tzJ ow5Ddt;;b`~C#+_05^vk|o_&c@-JS}N$vnx;N6JwsHlF0Q3;9l*I1S`D;;=BFQjKHJ1wz#{FBf0n+{# B08x8jQi3az1|09o;g$g|ofHW3n3(-X2o?JRfezg$*)}Iro2TGl;*fTHxn5ZTu1oGUp<=AL8ij~+z80+twE>DbHYHTs}x?9?*J2~ApSRVlFt28f= &9zLursBLYxF`01Xp-I#S$IipOe}~mDdGMB$`Aui|(td%WI_J$~TmyubqFVlm MAZ>`@NA%qFV!%r$&YQ-c|W1{o;O#3|5P4rLlLfd?2k741?LqwzJ@kn_}sK-$AQ%XBVwH; f3xniGilb8SRC0;DjkwZj-Xtr~mTRLA1jO6{xM4X3%?UapdggfP|Y%3g5h6x;T3o{-W&Tt{!;mGGl_P xR&O-Co5<4PWzy5c_~u^>+ru+^)FyWsx-P)h>@6aWAK2modQMO=012GVK=005R20 01BW003}la4%nJZggdGZeeUMV{dJ3VQyq|FLPyKa${&NaCxm*TW{Mo6n@XIAXF5PR$J(>?Zul5bZLqf NYbEAwgRr9vKDP~l_`~^l6aZ_`_AD-5+$YG!xSKq$aCj+F3d)jdy-|FTGx_g8R7e?l$uZ>N=-E{g*rK LYel);aU}sEl)pFAX=CEJr %hZacVywW0CA@pJTxkYH^Gg{GN-)xD|xIRv;i}O^hzzWfw26Pv4v^ve)l!E?-T^;^y@9Y_S*x)E;^g^%hxb=pX~{p=Xviod_*bZui=5qizN^F4 +c8?f^j#^xq!v&OHLpIHg=n9NQHJc91oj6e{~m#X0iHtUv%9p?RJ;{#dbMlaT2Pa#;#Cb2=c9u$->RytLs^lc}+7v7aDFeT?b35D0vaaIilQ1wz8&g>e6Uzy4k)64UIw4eUyZAHFhAe1<%{K(vfu#%Flazy J-MSJ-7aVX0Ip$6{N46U41_AvBbp{Yg8YPV^vjQ+c4b7s7=#Faz8^$Zk9vkAujaG;w)jl5$Z`?@fgb@ ;a&mqOLJD%$u@F2Fj-a?!^?i<9N^Rjav@5Lf`ef-_bznl-lFLRz2$z>Xd&U^X;ERK+CjkpCk7T~JBR9qG!v|1t5pXl2xd$I2#DjhmA#8#QlbExKTUt;*$VGz!l6O>4Hh9yH~QjKXjQJHAzSFA&j*H8H)9Ie2B1IMl<4o8M&(I SB|h$$`0CXXYSeb+T=gXBPJNLUJX*N%!cI+pH1}P;{5&9smV8}V!+P}$hsv?4m0v##HHr`#eq<}1x46*-IV;v$Q^~+)a)5CZ9C+U-P#N7aDr7O7B?;mE?5eRK@YS^*av_Bhmq4aMd*@1sU dfatf_$J$V2s)#3Y=et^9AXCwNLU_BBcJ2q(xP_clV~j|YgB?tK-K9osZ46#JHq%U0SdrBwwNirB4m Y7;(BFcKOOz|Gl1z_vTgMMpjX1XcxIvnJ?xCs1oZP#}kI+Mv(95Pvm^AGfX->M>WEnZWClRT QhV<4{{5VNmn%cIN15IWUyeQ1w5I#0#4DVp38EGd3X=a1TpZsH5Y;TSOcaa=}h6oA=Jd=6tfZm6b<4r s9a&`xoZT41jpkKA%yWp(KR8+KOds|qv34|ayN)69A`eA3(u;eKD#dtqn288!%Kp&LpqWjGR!k_}S} Qz~o*)|Y0#uO9O-%)uc^e*)Rl`ym>aqvu;N5qJ7fLY}#$u*v}mMmlcG+k`BmDKI2MG~v_heFK_RuoB9 6Mt<&Jv;NOkidX2U%{Pl-GOX<1@VVP-dzX&UvWbs|YZPGBpIDD=I&!R2@=L$E20~ttAD<7i_6fm%^O; ^|3w09+7;`pUH<|~WjxNL5$=uo8zYJ6S75nxc*f2c&HtKQoQABW<5&Zl>;-P=f$WKX<{#9}j2dX=L+% PpKw22;Y;Yi{KyLL=E=g3XsIU2__dl;xa9wD#~PGM)n9$YGd(udMRXHAowf3N6;JpZ9%+a@)*mfQ%AS BEoUe&e{`ACi=x-upNn`Dd1?OYk!5R#U7Ro_0cDTAT;nFgf`bP)h>@6aWAK2modQMO;t^rI@@4004p? 0015U003}la4%nJZggdGZeeUMV{dJ3VQyq|FLP*bcP?;wof&Iy+c@&Oe+8jp5eX;jcK2R@aVpTurhCQ q(jsYhKLmk5OSGenENLk!iMMzE{bq(DMM|=JIHR>Ca$cPGFgw{CSeEU2)k~3OtUR=hRE*bkqqr)Yx?8 P=wW`_g%X)8KJ0?45$AZ6$^$SkstIt6DBQVNibNRWCZdr;aUfFg w@$Ac{|YTZxt4Zp${wo-d8FU^;0REdU9w>j1HR|%FY_?S(ZvLzy0M;Ec``O)%vk+o@@ 3|lVqQ7-h--Y_OC$+Q9^X`2XLZHH5r(s~(4iM4Rr3tGLLKE5?>ct-&^!-r5e~nR)(DtscDpo=Gv1a Gkg}9=Qnc(?@F;n8OiB|r(DGka5NC>HhgJ*l$^lkWU?5idkwJQ6Xv>CHOx0@k_#*E87yrF1!;M4b{Z; 1O*-6h7X(s14pbsov_Qp`)H-j*AFu+nv`uK J^QGoe}}S<)oY-Lx}tW#UhaEf`CKY@+DhbqbnE_trNft)`S=mfO=$KdTX8l}MPIY*eR5CRhxK-rUOE;^?H$iQyQInzu$xK{`ik<_l~>te&c>99+If61@ l=ixvla>_)8s@FD$9qZF!-b)DDS5KN6Chy=OR0Gj5m1gR>%=pB(3*Xjo4H6vLt}hsS;=<_(ZUQM>bw-zZM0cdM#|Ba)2Co0@Vjpq69UD-kcPQWS;9S_lId26OqOLvyzQdqy$oz;RSn)^Ny2LAva8XFNOJTPPR Tje3iDX~CfaA3?W)`asmuOAC+^93&Wb{9(cpofmlEV4Ecp3y!jYIGTLq<9Lgm!&5 )+jSz0D15gG4XJ{-~kj^#08m3xE-*@-p;Y{B&K?{R_!p0hRXfU01!?xe@j`Iq#_(jL?cA~*5&J~t&93 -IuV1Ypjm?Kckpa?L_ZbDCDPX_hBhrUZe{^(kfmvE*d;~fp~fBpVDRy3lkFBEizatFh37i#*IrK)ngn2;u`kMRT^VKGbxSNxgVAt4k+!MxAsXzL$1aN3V}N%tEOjzqfi-NAKijVQ`StJowvgXr%7TOw~D0hOFYlvsh;!Qo{omQgBcN{c{efzbJfm~a#6$(zHmqgr%t-x#2D{Ls8o9mvl o(yznQh2-C40@j_0yVrPaFp8^*UInjV87-g;yUyn0~_pZ$n@ev&BF(89fQ2$f4;oyrzMWCLba~-TevJ pUn-%2tKeng>h@{F-D9boKIocLh0g|Kt6@^X1MPdF?2YdhhGo(AyX_J#9m8q!Va%f7JeVIKSy*~p!5C w4&{uw=Yi^qGpFS=inCs8k@5n$Q%ZSn@4+0DVa-#<`Qn7V5Oz@WF4AK+tJlHRK+z;<=k9J4=p@?{laG JI8+)TS8TE%wU++d=K`++Z<5>z=U)_iUotd0=#$x7AG3$jeoBCgLhR(b34ss-5EBZOiOXoszGTUG-9E -S}QQa%dnMHl#OiMFjoRj1VtI>M6ZCntAs+E<(yPN#q#2^&YJD!uo>EstBaT*9K&-vziQ62}yi#4Z0o )Pjb0R*$F9+F1SV2g9zoYE!z#af4+U^iEnA8vlYhHl{|b2|Ob5|U97PP|q(3uig27)18%G~Ad?itXyZ P)h>@6aWAK2modQMO-k>7vS9l000~h001KZ003}la4%nJZggdGZeeUMV{dJ3VQyq|FLiEdZgX^DY-}! Yd7W2TZ`(K!e)q2!2qb}IAAT}Mn>jXv|Mc`B=9~^1X|O`&W}`v(EGI3_G`Z7e(6(FvJ+js5rEt&8OQ~=* e--og3ZuB (a?>a-EH_#QYZe}uXdvqm%68~}4QERpu*Er1E%H)W3tv>{WS8G%_qm$Od%6yalOzeB1243wM#~nhAF> 8%K|GfTPD3-$Roc2fs#u)a;1{Kj3Pyks2G^~yTlk|f2!*t+Et#HcBrO6!KW5ZkJe_4{hUGvJ%)d3s>f+>fWWdEGH3XL>V*@V;MDBHDiI1f!BJQndN|!x8P0xMe4#H%KclLs 3k7b=rZ4OqRLF<3r9?y6x31XBzslxG2Qp<)(Op{og*USL^+!Nm0IQd>q;G(>etcuK*wJ!r%5zeOq(zC _so5O#K!+*ldsJ3B`&--XwYKO?FFV03U`KZ;617Tlas|`>K-AYr1W(0aWD(eDE447icn_M~%G3L7$r; r)m+O|yJ#;*@(j4W`bw??8u7dJHR=&$Q!@tx64y?no#YD>?hLv1#c%&N%u_XmC~UC^hKH@WrtnHRf`#71sCM$6B#=T4u<33{0b!P3r%ZKoddLy=})?4y5@&+0&0ig8u1;hh1 wQ&b2A+{P6i_(DTC=b_(_@U^CKZA1KuYpmlA!jd@5{+UleI?1)~G=08@su{_ihQxE6w-wJ5?@DoydL0 AC``oX32xr~rH2bqzp2J_fK+R|BOt<<04!;w%{`oE(J7fPpBuTo`E|zgok3!P7gJ{2Pep7ysk;cPgMlO`IH+s(%TrZjfrnx<$zYl~S(Mf)P% 3GU$i4;pG@RSe~bg!x7#-7*~~_u9mTjCN4pK9i~BnXefmfri#wqlRyJ{{c`-0|XQR000O8W&uT9Zi^@ ^xCQ_K_!a;F9{>OVaA|NaUukZ1WpZv|Y%gPPZEaz0WOFZfXk}$=E^v9JSZ$BnHVporU!kQa>HvweeHa ED>S9=5fC0k>?7Hp4;UMU2I?+zCTuII~`}HFw*|8F*ZCV4Dv&A>@Aw^M=yH*>=l-_J)vzf{8scrvex1 Ez}RvW!zx^=BE7FeYHEmQ|~7Kp8Eb1oYPrV%PHMY$dL{@DVk*EBN8s$|bt?kcn)bz?6u<_13SQtx)6s d}M5;X@}4?4WV417*pcq}%dRfoQt+k}B(j>nv)k!1lUs|9buU?d|Q92z)Fd%&ljR*4`SU&6I?0!3Zyr KXg)6;g>rj%11E0mJK+b5T;b2+un8A;H;JEWwRN>=hrYe!eKdEOlhG=+I%N%*(-p?b_RGQ&5||R?1Ym 40dIxdUY2*TYe}Nl@gBe5pyASKbC?o)qVNYFk8b3=UN+f(4ArCC~g^LQw1$F6*Q#;o6o$4AS;pXr|VWN21smxwCsdidO 2O!U@UW(?xNa@#u0NPZLB^+3{4!*p=m;~t;tg{d%?1RAU!D39Ak5?^9^uwZYTN?QQ72AS= 0BmoMqT3!?5zXMd9~7(&APxv0ti9G%&>F2%O#Dk{37%pI5@XL>qc`j>uKRoTaugY6TPS5M!MtL5o?nn ynM4SKEERl8;BEzIXJ1-|gnuz{S!dMe1(Ys@8boN3d`jkJ%sJA%9+(FpDyT7EDjxYW3#wkQ)hqV9ZX( |F&~T1rk@#$W6vze+5AW(}zC0OO`CzYbp`MU1w62(kMR`u$Vb<-1Ddtmxwdj;9w9U)TP|ZllTTpG0&d bjvtV3_lQj%%*5@la4X~_7@?lsd=qtE%d5;SNiA)d5(q(xKp1t(9L7soj*J`dt?zsVaNtFW|M`Kp~Qu G4_4inq}I_`^@vO5(;?K1TCchV0ey_=B4VVtch{F!~J&ppt(5Un@6Wu-_ufX~W@EtlH}pSyNssA~(2C 0*_O$ygj(>^|^xC_BDZ~5`#u9e-MUbuPzg-Mz3(Yk@aD+DB!dvsiGuh#oRjb-I)$9l!kXgS(qpb^EbM A;aE`4WF7X?xSQds-(%xZ<@534y>Fe+ht2DbG46Q>H)c6wakqsz`tL&;hk c6}61jvd)aHB#W9zz%%y3oDz?i8Sl6m8fDXbW+eZN&Mjk *rtlANg;R4eIxr7-deRA=tpQvhM<{(w7}@7NLkf>Sz{PGunqmMoMIah3`pGB6Bt%8>by`=vr$zjq5(6 AXL?sQOerl8!VTNZpmGV;Kg@1-yiBX@}f^ge;&`3NK9;V^*LOihn+@FCO22&t=c#Hn!i{1MqxT9PsM( -)pbRRN6HBG);+9`N|ZH1L39^7l4g;}S0KI9edvj|TQN*-S_S_(@R3ZCs+I_E>hL+9@o&_wR$@rC07` 4PF3-j2?}*@@w#`^)#fiYG;aX2D%-=VN6*zaqIu2k!2Vq&geMN3x}L3Ut$7Ekp7_LJIcyRyWUNc&zGsD)Hmx~YQsfi%Grb6=69q2DXAlS&+hCy#2 QIGoHl1w&Zs2t4Y9roV~lKZZD5l%Rt=r(1$>)iq{&#!B5Dn7_sf`M8+eY@st-oEQ8<~l02$yI1lQ0c-z2`@7dcyIWj?AIiCV-z?MsWvR9nbB_#@9bIX}W)#rc Mkm&PLJtT$r|x2-Wg)q7&F1gC4-}t}@wx%lU!H~RpC@I(b*33^c>f1bO9KQH0 00080A>M2T+?+8E;|7L09pe804D$d0B~t=FJEbHbY*gGVQepCX>)XPX<~JBX>V?GFJE72ZfSI1UoLQY l~T=W!!QiK`zb_sSPNYqpohU=JM=W@20I2PQCd;QZe?eoZ$BkzHjfxe4LQj2_oGj#*)?#YQM2T&Am@`_%#f044_j03!eZ0B~t=FJEbHbY*gGVQepCX>)XPX<~JBX>V?GFJfVHWiD` etyN8L+b|5h`&SUXECv$)00SM?cEJ`5D~6$$ogCSs6D_jjN^-LR`|+cs$oZ(-(*gvDE%Lp`M^b5x?x3 pL!3_qh3Pjgywn}Ma ?Xxw0rvfSy*R8J$Rm}M1#*Me5I^oQvSr}K^W{%Invc$l9w6KX9A}lgya>fmyz7RSgIFcwDMR-bTnC(H Ii8icQr|4jXRe(^M!=tTk@i~yMOpjFY-uxb8~YCp}+{xY6DxQxC~ZBd{#>YW}IjV*%nzyeA*(IQ&};S se{|T&ZMtDms0O-8Pj0_dxUPV4r)5~aZUqAD!mhm9xmZQu?}M*z>JtExnb&qgGL*JjgyBcJ7y}a7DK- =jQcQ)c`>qjnLTTEY=ai|!fnB#8~Te{=A$+ytxf_H{k2YEE{*V@dT_}DZwKRC_*O8PKt>5OFUV`QR3Q N|tChFQ3~J#7z2exT;;0&dHh<5&hLRmU!g=#S*T2agz(2jVUJ6kq4XoBL1e3;m#HIlyc!kJAts3^)?5 La|GYlp8A={yuPwCj8LKBq?N<0rEpI7A-Xb@Bnjnm;(o2N*MG^kM^$CfrL0tk5EpmS`Lek@ Te7*NdefQM>ETd5g+TaOpHKKX@V$DQhpret>*RmA-~s;mSLY62-Gz~3wCuxZJHEptb6XmF2i P=Dz_*b76*tO-L#&{Z2)<~~TpY);*$U9hwSv2n47)9s^`8L`&uqBq#nx>o#bf~qtivwXd#;g*t+L&F< ?_wd4ZCSe#R=qh>CZq@ZNRDgVGj3&<~93|wf=A)k*bR*e?gp;w?*KhfMnBTAaVnpWS(|A2sBHhE~+gJ 2;p0HYmf2tB{t>x*s* c!JX>N37a&BR4FJx(RbaH88b#!TOZgVebZgX^DY;0v@E^v8uQo)MbFc7`#D+Zsku=NMzP}*+8b}1~S? 4>6mTjOMiEU6=T!O)NI*sAR$q&nGpZ{EClqmDxlT6aSp7_|oKW8e(N`;bkh;FD6_#K~hMe_ZglUq24| >D%Gy`^)R|KSrcjYw{V{8&_LOnW-6Ojk+-jm)g&bAg0Y*~Oah7WkJ+z^ZLq=OKR!XZ+kwZkzg=w*alEgH_8C jFvC3M{beE0}55d4AH;IYgz9Y%Q;e!f(z#1XSzcB3!XylLI8YEzVG#Scu(TE?rB43#=UtD6z1L^8E|g lhVfs0Yb#+`_DG&E1vS+?H7J%IIo;w~9?FkL%z1Ui8wJ_y2!0w{?_)n|HN`CIq*^?FrknE+mUFUE*_Y *Xc(IOZ^2M2TwSQ54yOhH0OJ_|03-ka0B~t=FJEbHbY*gGVQepCX>)XPX<~JBX>V? GFLPvRb963ndDU23Z`(E$e)q2+R1B~IS6d(24F)o7>w+%WRupT2VJHfLmW~}Z5~Y$grHV-<*tWN^Y ^emV{o@u-XsLdVB<3u@`w}{%9i-pc62y*7rn(smVX1-e%1*Z*?VYOH+%9>)7FWX*}$>o-F;I3? BS(g0)odAg*C80zbZ4xIcUl_?(mq1XkqryNP@6ov+f0O4e2YU@?=%T`Fu-yS&Gf4!z>zM!zCh0kQ*F $|E+XG>E)0*+CT)Xz#2p#$++Cz?txfTeA0yU_!UYq008|yLI+B(~iZQItvad`>lRbhoH=wy6uu9{}*0r{<^73mI` @weESa@96<60t=Yg^D0lXdw@Pwek`$v7Oj^& MDm1dS`fGSMb$RJQrGi*a!C~1!se`AYYSGF|ROx@toH3(ghOpUCC2;5aFrt~mc6ONsu)G&uQh=yCNW5 +j?j}4+Pdfl>+20hJeGzri;_ofE n&>XKQDn3ovB_9*Nn)I2uYk?bx2Sd$S_9j!_>GROrC(I4uO=t5V}s{n!&=pW)(OJU{mYRKk$-)jO%jJ T#|r>{@{R@I447t)6+!RHT@YISPUB9=i@RcTfVCqE>nEJCJmDY|HxrTWp2Zc*|1D3%?F=|q@>eO4Bj^ rW0qcmG6{tjl*`Oy*yT2cI9tc&Ca&DwPP=hJmc{PFYTC$s4-3;N8e>NqTspr#ac&)-I~TTh>vl^g`tw cvp<)e0Cg$t=-ZcC;3QjQ{_Q$iyMNT)A8Ls-Cbeyfz_|_zAvANgufK0k#ygJLKb&N;232L1)?>3knBK r4=DyYOFxH;JNG~@bIQ5`8L-4`D}`u6L`kG}KG64JJRthA1mmEG_28!9-SP1{8FyTfE=o*|RdJ<6=!U &%aM&zCN0uTOND55{8O0mdIrXRsud9h7>^({z}uO-W@_Bls5b%f?Puo0boYgu>lX61Q3(xk_d&=Wkoa mksTf*hO$fkR}$Yh1A33>njb&2TeKseL3OiBG&1m)SE=njvX M^-IZsXu`?T^!QF5Hy7xTj=pow%{Q-fY^a$VIicvmTiDo__RnfM3fwcrYidLTmb&aMHWt+nK=0Ry{}B Btr%tEChnStHp8sKb0`hT&W|q`1HId!CrTjqPJ-+p4w!!EX8q{WtxJTC9|_2{KMaWW#uk X29AlO=iTE%I@ud<*bepEd9Ym!CDpKXos@*V^RnhPx6zYa3b*tJ1vZ6U)+2oa3vEDl>}SG`@}gwJiNw gSXMc_BD=M+hW&R>dl*Dg}T$>t3v@6aWAK2modQMO=ETox(Z-002}4001Na003}la4%nJZggdGZeeUMWNCABa%p09bZKvHb 1!#jWo2wGaCvo8!H&}~5WVLsMm?oc$p=&d!7c?>pcR6ZR-7y+p0rjS+t^N5L3})8dy^)m%_$zwdww%- rgf$R#@asg4jBX4S>pn5txe!T8tsdsjX7bkQt!w6r(fT9?EcH{{_Dfz=hqA?ZN*Ngg>jYT&5`d3Q1wA 7Kf)TWjg}2p@((i2JDfwM4(K#jm5@F-S@-Grs^%U?{D+!ucoRO(GOjUn7`WhpkGQe``tFEnj@+c^C#l d6K4ABJKvX%n$G~3Vk%E-pEDN|_k|LT_uiR<-w404^gpqb{PoSu#N&2*Z!jTZ2At+ux}?h+@xQK_+8sEtwQ>*j#Xk>w@6aWAK2modQMO<)$f^{DN0012T0018V003}la4%nJZggdGZeeUMX>Md?crRaHX >MtBUtcb8c~eqS^2|#~tx(9!D@iR%OfJdH&r?XwPf1l$QsM#tP)h>@6aWAK2modQMOMd?crRmbY;0v?bZ>GlaCzlB+j8T^mGAnBE=)~^j3Ht+M3gL92p6pee!v0U8a6q9>DY-*f3J07`PaZ{dSPHo8xrKKDx_ilURtjTGCgti`Txca4&wS&M E{DzR;fzLEmIb&Zhs^z36<-@b0DO6FbDCOLmgRnxb*RI_<<5&^`Mb=z!3ny&kvXgBv@RMq4^Sx?rZp!+`{A}!`zOAZqmF%)sNk-E{A jwv_!Sw@x&sLR;#izc*FQ2mA4nW4@LjK&#I@imKtjqE$Q%Wkc)DH2CO}DLh!`94rfBEU-IgRj?X4laK ^ZajF)l0p+JK(nF$?QbH=XF+9gdF|)HrvYLvfr8C=WWw9aIE-bu351wcS(9D>!PtJw0H{DsnLYQJTWu Bmud&Zk;i8y@;;Y4BB5KNn0xBz&R3MXPG0N uyQ!wW=XhE;07Se)bT~-qK?n J6oDI!_k!FqUheC4)OxnpsWfpTVjw@Gn93c`PUB|Nm-!S}Rl(p}bVrWV}gb|!q)Y)!NgFi&1*by0#UN c9dLpMxsL#GMP87K>G1R)w}4Cnu<|pdU-4xyg;}KGN7MO=}SFGzDQcqWE5Bg=`f}50&#ubs%r>=lbO2 q>yWoZnF;f4OjxtH*zayaI^)^n2Xc@#{c3U;@hT{3(_1gULTw0RsfI0-(Ft`UIRy}!6HiW!}lMP6PgI (-M1jJ9obIULKfbFSipLODoQk^vXw8Cs2iS{n4Rc9?!=356Tmakdon`!0T_UEQZ;)Z#ykPpX*;zqyUm QJ&cUu0IOVF6wHdocaM4$b$icx+OL*%YPrMPt7HCFhOQhd6-Ph+IKm$8jceA%fMdu8R2n*6sc4<0OvR cPrL}_Y@LQCY0je$uEsd7hgM{E43en)4r(0n){h`Cz?J0|`_5Ci{bIMIgz6aAk?Mr5tfO=Y_>-H>3-S }kV_Yy1Yt8}_~4$o!V1Kojfq5)ooBC;ReiIW-G}H0tD icZO~=io*w>A90oRu4Wk+3%rp3?)`mQ_C4dG2Nyq=7D Oxzq~vjDb)_+g|R>yfYxq-d1JS;@LbRl>AV0p4HEJG?bmON;G;}xQx=omctk+elLZt{WknOfTZz1bXb x>O*}4!LG?WDBH;A|xi@34E;DxIuj|KX%Sip|$Ar|X4yV>HpWe^OK{{vC!kkVFmwQ0s}!JdAOHeI(ve Zc=J`r^rnl?~#q))S;C?4vnGDu&>J@)alvFt;dMh;h{NvhC&E37HopkS)^Sj##R>ksDCmlo|GGSPu6QrwWnO$dTDnj{8}M*bli41V^d8t5mUJq&1P7#Wi0QS6HWpJ#-R8AL17O Z{K#2?vu&Ay@s)Ec!-v9Wr+ZA*gt+qIfberp>3-7CoZH1-G?7w9j0A4t)+P(5{OX0!>BoQ&ZNVgTv3& XoQyjI(PMJmZEd~i}-o@GI@0jg7v#R@8#6Q>tJLaPIxB%4hqoJFFLW$YH~I!$j%B7UN#gECg&MN%a|m iM;NR>V}#EjKahFWgHR!t8i@68WDOZP>Vdr9VPXg@?KW9A0MPA0^#mltpwi-Zzr)N0OgGrlsshsmf2f cEG{Ou76mUIUzmbO*cXSHaJ6Nu>0Py3T_~)ya0+hUm^kx76w0e&eNWcR2N~{hbN1eu&ODVs|wn5b*bU ^(F01U6G$X!-yIkf+?1zd&r!X6tpCqwyv;nr9d^>@hE*bC6te{x78rKO&Kb) V$S|A|jtt8WyX*|)=-HqC{2wpF)zNF@#VOj$wyDrySf+WZ_l3Vc9v?gtSj%HSNWm6cSa9X521FXqC(t J-%1Na_Sm{YA|Ls+NHhnz!4|ny_Lhvda+DHKna1khJq|0D=fqORs2v_7*_1jC97Tz15#oMqK>-9+&%JqO9`F74HYmSe?|Hzw9WChSp(@7QJ; @V-)@>NlXO<`7;qpob`w2+xI!3|5vFTX4=nkvRFp|7WgBu)T`>95}j$H5$-WxP|j*U~V82z|3HaBu*h #&9<{h4@V9-X0<#xU0&(hnSMS$T4W*B$GiwjV;Z5O^%WGHh4@ex@?KA!sHR{M8jLm0O~}ZnSQ*7rpg# !9A|#1RntS4HDu1?HQtY-6&FUv`wzS)-X{upn3<^i?5$xoQR>Tw!6O1`mrtE&0Vu|IFA=?pudvF39jR 5Uf*4=1BoHGkxy6l>2>KIC@nJIz?HLD!F$YV4$h5svrbG;Brl4!+2Bbl-{2JXPJR7==wjail5o4~lAV NU)Hm`|{yHVk14N+~F%T;cYDN~<{Rp&4^XfEJuGUwt* m>-eO{B=T>kc;oKO35ExU{7EEYTGot%F=${LU;vDE<+WOd0~S!_+Bf8s8&_^G_2(GkAkk{`IIxlE9Kw5ti!MAqUbPh$@M2ko i+5f%JU$_gDM%5M&_x{wt)fAVt(R~r#E5SCFDkxBb6l@gznIC&{0r5{V`87AoAnLuW9#}$k+Fe61jgl pLK;s_>^SJ(59@6?J~(xDUbthm7pr?b6DY;nnxDDGdWfi*WDLtp&`T;2n2na^OW?+j(|$yEkLI9xw#hpK9Db3tF5$5s^3}}h)c0}+=9%;Yb4weO&fvJD?N}C Ufc#WpLv?cfrUiu}mSYRD+?HREQ!*=P_=Y@;;gP?bYJsNQMxJHADf0~tQ3+}f3hQFtVC{s(!xRo(Inh KhzY2y+sV*K0EQaCk10S_%dZ6t}>SQ+&=LZPe$)X8rO!AD!;86TYdt(>}WFaRNlVHjFjEupg4O)P&G^ zZkmlY_>!i$5Aw7XeTRKl_#6CzUeYM62$=Q@KVMY;sgyaANSMs9|t>QsH&)r9*kX@#96D-XwP&{y_}nP7BM7c-=$MrH2EXOU#OJ(XI+t^HJv)b|b75pmjyQudxt8=KncR{kamSLfw{hcLKs0JVUH8pSv3rw {no~=mQRWN_uhIi)+H9km8AB#@0kz`;)$hV#_}v0Bt9r=Ux9@^i#&jr- @W+`b54#i=rU-`{Sh7Q)n!hlL+r9>&Orou{`Oq_`M+LyfcT@jL*?RTdn?PQchDfw*RCeu0CBUn;KWYe gWk~1K1x3xPb0_hun+PAdpVFHA)E7Ni!CS)&Gx>-6E*olyBb>u_cVC2&%pHs-2;e1U@P6};5t{vEpW f1Fx2-cz4p%G`qpSQ;K6S_6w2mvW&0c0NcVjVy5D4YDD2-*o5pE_zeWLJhaCW`vu*gcuQ7$|choYgH3Obh*@{GqHXvXkM0J6ByZ!)+$_1e*ab1b-&y0C8mT)F$qCR<^*PFP~ y;^Dbw_u!?9FlX1Xb!qO;nYR@{wEW7d?h}9yBH6nEPg{W5Vue>a>Bw$znYkBaula*8pyR@N56z<uQ$a3bI5xA%N>=YWpRN3 sXWLESp(j*(aDiKl4zLe@gR(&4QF0}t}6(z;=(wwV&wtlS|dq{EjG{OB5;#ROTXQNehGypg`wWwms)c #P2Bb$t)kmN#{yuWOv1*3BuG=J<4h-QRDx_z3o_Hc$t=3v!D6ECr&*WxQf(FFWdo271n AF!G^<|yRZOnML=GIVm2?R$&p2P6V_wPC5G40_^eq{>v&sl6i)E>jH(I00p@T`}yL_+;< vIU_|EA-ICKl51ogUNF|hVlB>d#{+NS(o)YG1a$p92TJB~HyNr*2z}|k#z&5~bYH_MhGokkcc+pyGW) sF8r?3iS`?x;h;ZY@#)wjbr01_`*^c-Y^HtKhwATyyR&PdG7Vd&in_X45^HIz~R ZK<(k!dvd6!Kp(prv}GMse?wh>@yJHfGHm1 hR-$zUlAv`RtBn&xG%=|Sl4d@12XCHGSy*{ji=5*9n{W|pw@+f?^u+%c9(vYpf;GPLH`$PSTVr*-cn9 |0yjA$-?f?An&A4Yz930=sUPr$dpZWdLFVXlZUO*%dZr(&r@(mcq*;qc}vEt81@bDg^-=E@tP#>Hcu_7tO3> {uwlH)Te&o*xY?Xu+5fz9auXP)h>@6aWAK2modQMO;aD+O#Yu001zf001Qb003}la4%nJZggdGZeeUM X>Md?crS2aV{2h&WnX4#Ze(S0E^v9}J!_NOMsnZxSHMtQ0&OnNvU8Oj&s0v9SGMY8StYH{N$FG&mK-i |A^{ozwOZ@+-_wtI&j94EoRlkJsa7N~=;`U{>FL)r(lmYE?E9(~UDAq8*^6b;H_5Z>XOE{zRWHRm(WP m6ax})gA8Bd7X9@OfUBF?Ndlkq|9W;-JpBIb;a?v={ ccK^e%xVC<%WO#RKt(y$wX3NSMBoRt*DnxoA1iSoAS~E+3m!lT2-R$MjGdRd8sixFE7WM!sKjp+ow&t EjQJ#V)?Y(ifOVa>!z+2bg8J}(io(-fD{ZwldgUX&n^GPSEq^oQhZZ(LjJk|yj|ILA}KrmQpmeD&8iw ^3#gilcMCxj?%bL9Ms&UG_`#+XSB-2K5hC(&Ayg*WJ6-bv$kzob(seF^IC |_qiQ3NMru;K{SNyUd>7|8f-0?nTykI2Dtw<*^_z$4;#3ZK0~fm(kge!TWJJv*0v{|cfRsSg=o8ISY` PrgcUj?jGLvS8`B2>)0kA@b>5D~E_ieLLP#)3MhkSA5X&jI};*q8xJOr?f-_vuxe7LJll{_wv%)|2XGq@^RQ7=S%ZWu~mwwIzWcGvydu=F`yd`8zsp1nf;QO^)F#TvKb7jG7y i(mFtE4HHUV-L{E&kGQU>N!B>35ZA04mV!`lY@{m0`TYW&(59{Xa9MA_VmT$AD<3Cxh}i4dF*@oHQZW ?Y1JH;N!=r^!;fsMPRs3!eYIH@wdgm^V)%(bx-QmY@up~*Zk?R1;pg`?La?5H@zb+sKR!P{`_>TT1?* cZcMq76fUx$9LcHrm-Pr=`9BBOAzHFB#Cq)5s30vYkd6_yZE1f1OiZs1YpNnq4>GAS28ku;6bZgUBCn qNxnpgm$Cpjxfq!$HjJl`O_V5fllv>Uzb_q&aFnN40z6aETApC%w3U%fif{k;H80sX&|6G7dQYWwo`!x^{{v?+bY*q=c+eB|u9Vijo9f(fQ7m};0UneDDe79qGayfRV{9u~E*0C4 )3EiE6h%dL^h#n+gozke1W`)B+9SVd{2TK8&4pEW9BaxqN`H!YO-BvaIU9^ox540{KZ*F%tM3|q|U>n (l`U*y%yQPsNz~>{>sqgj{fpUk&eS1CAz^bmW2sw{0%1k#`jFEdSrcMi+uygx|X*Qv6tUFkGRxbDW7w U?^l-E?g6c_tT7oqeql8qz-Kb?5AOR`VfNdnuaWa>}5bb7-fZS*>@um?`ID7i{NeRc^ti;)GWoaSl%k EW`#ZMn-}olhN-O(xD`3UHi#oTe6?0N_Q_i7dEJ6vJhmC{VC;meq>()jrV_>$q27P#|7}X5OgcHxCmw PGFbN_NQeDL1N^@ouWYop&@G~S(UJ@hCD)??~i+oX+{Ts+`z*@Pk2mnl;`ap26;j@4~b&jsWP;|@-z4 |;n_Ee<(%xZyxjLq#-!5|3kp^94^W~aZLZ7u4G<)}Ar;QO(XNLZsihY-*nx(NjSA2ipygs6Y2#69tSN }-rd$?aXBM0Im{kifTM%NqUCzv;@uH--)^%s0bt$kqHDhLs(=Q(8Ussg}z$sH)Weh0vlmVUt mPae1f$Lc(fu%0RcRiwdv{ZI(vEV%dcMjJ^zoFU!4Bw)qhO>C6zpIC;7HPIbPL^&3*~iSe<}w(p(jCz F-$GK?9Nd0qh>z@{LG3FzFLf0_nh#+(Gbw00ZDZq&q~!4L=OtTws}0UZN+;@xgjEh@y9b|&l|skH#TdJ0`ufYMrQb_&o=G`QIUE_H(Dq1t4zJ=2iX6kx2 XFAB4u!9-Y@H6w{m%GC^2CUZ;M)AFWgZ|iowHrIOR%yo61<=L5Br2Yr` eX*#vj$R#%JUY#d5TwdgM9@B2QkdoBd{qELOt2_l~3_rSI-VRhRAc-2@)J+co=kA?W)>12=&Yt3E)%p G`o7FR87M><-ZUde+H+FvO%z=bkjsx>mKR`fIs%;2%7@oU-_MS8jpbLBVevK)ma)(dhu0qW9%WY&P^i E)r@wpo-#0?L~>mFLSGr);q-ZLM(x$kT9$*CoAbjaR6nA?;y#5GAS?13QS!TL*JkO@I-3 cNh8gS1N`0hSR-@py&HWt ueg=9+0LH!amRp|(CV8iPWMny3%~jWkXgD`mX4!GuBk;F?DkTVO+T`{#+?ETvRp=VeA4rDev`&cJrNQYG2R5Z@`jMF9xLtvrDM(5i{ !=q)O(VwmrSvld>D4ZRN{b4!=Pr#d;ao4>Ag1AuniSz8*;J3J7_E`{Op!)!*{)I^UmCIjdvU3)PAG`e W-`uS=1(n8=(Onj6O7@rb&vAm$b8`0ch->jnJr*bGXZ>Wj%&R^nq1sTYTuYhdGvV52g#S`w%gOgHfcc o26LwdWp;qJomY|BN{y}S2CilZU!fE|Brk0i~ 1t#;{cSwg`_aS>;VV~FLr_v{ZVnR5d=%B8@FD_jTMP~i }OX7prEd*&zesMatv7|n23Z3BCba-I;V3>iAYZj+GTY|3Z?1U?zVasdF%9|eV(=P`97$FIOjrd<}L2B OUr(NHrN{v=M0JHQ9*gTOtBK)^o7aqrsNV&#_StCa>!SAh`(I~Xu&vj?rJ @Ia6&8xBoM9N5s9JZ1~LZzIfRR0yW04*RPHcan!>ud=p!NWJ~?5X3BpUiqOT~@0>C0r_K>89muj9Wi;W0+YmFc7o&LL+pQTC++Y)HDG={XzaNriBbc-x?% q})MQrv_=@j`vl|pP{G`~L|n$X*-NuGmwXox>ivxJa%@1ymB#v5O_t5g}^auW$rkLyiS4Q~TtA^5JS}4D!ZG+Km)6dkl!WlvhJhH;nwZ CG@NO@wl3_(GYTlHVDF9IigAUahzjtvq<)X3{)shL!tdqR8u-uNHG;%;gL8o3Yor>$t%uC=&>RC%5N` c+$`@vO98{_mDAjG1y69hOHc-O*}XvHwVHksSA0y1+b;HSdyKYE!~6qu`L!)f$oN{7Y-{Vjdsm?`moN42>}i|R(gcai+CaW%MDrNkjv#f9Bw+@9b^Xg|Ql|_i@`E#(k0+ydd@B;iBxW9g>Bg%cu^QgMPH#mwuGVN+$ZSBcQ81n ?hcTs%UDBaUYH>wyutT(W3=rwiMdv6e#4r~<`7@256u|4?H0<-(+Z2@%y5wL}^=pD9Dt0Kl5207FZuq O>`6XFaj3q{;lOOTPtE!W9Ga(DBALkK?JsGe%#_Zx0>6IdGJvpbzfFV{SNQ5z7x+>e6tzA^Xh$ojaEl WRzv7sI1thR7dcT0fcJ?AP34nceL(~gN(e10jqs+H3|ansY}_9E9xe9b$O B>j%&Us6(ZI{OYJfR(GE6su3$nWvbi%c@(HEpbQPSOoX8#6+E$o1V0_7jSIXyp#N((=)EbUHFTmZ1q% Q{GF{OVSGYKB6i#dgD8O{6n*uf}(V_qPB`aQFvvY1cK?jZXR51)2+noBl+qXLq71C0!QU1zS8W3 G579edA`WJK!L0AD3dlgz!hoX6IZc!?_uTGGD024^k)!nmqc;Z9-Fjip2Z3`(vGM@c8|L1wKY}`MeC- *FHzU6FuM6LtDnUVvGptN&EqC4rN-Blh>$t2{f# ~m_uEhlcyCN>#T>X>YUY!a@XxQv?q4WR{Ljn<_RJ;cS9Q~s5%`d&`Wh7qERKy1yZc@GWZy(^r*Ob>~c )bX_=XKPR32raz>nS#@QUxJSTGakuwH*^bf3)bFPjy)%p%Pf?hi(67m)NS6tA1s|Q|7wTS#k+%bG1uP UZL)k~c!Ly7>%IXX=Uur+QvZ&Ie*zecz9z879k+2l3)_}0zRO}@ut7Pj*I01W(J_BeMqGE{uZw`H}#^ MG!;4o2!7K`vP&?3L9t5RQ~Ws^n7j~ALXIP {PD&4{-2UHY4uXlCFlaZ%DhDXKqRXWPiE5bx1L($Q4A-^*K@0hGicX;M-5zblAT9vxfY69xwfc@Zv?L=Wqd5b8n^pFE-s#S+gU_u0y G+BLdPix{;JLk7?h>%yxs|K_~4B8G1BoZHKwCL(?fq{E+Afwp`dw?iY5#({Gq!s?$Ba+)}W^X&@QfQI sh-0b|}h;Alf)G?HW9V*}wzt8K3VO+n-ucm(6!P=^Y~p8*uT+mT4#?b|4?6lnce2R`2r~iP JOJN>1UcYp%C;<+$CbvgVHR O9x3<^9un}!jB*U~ng8|6Kk|lTlEh^6k(tq%6)o{VZ(5>*a%HLMN#-eAtEvUdBEB#=PT`+TpZiqu+Dp @FE~(<(b*6#xYOUWv+u;;kw`Fuq`)z{69_NB(+`p)hQb=A3sw-m$S}BL14~%@c^7w%TsH98`3^CLB0v M}Q*~!1Tlbb_ZFK0=$e8+0h^4(O86 tjXwi%N}`w4@*ZV3s-x!l)WIwDxc0$Un|C?=!GG+}saYCOiRU)CC`dcPIIYLdLYbt9pe;yYz-`Z99OX D3_5On4r#s$$;^6W=axEiJn6h3sy={ZKb{4!2?Tun@}j=LeL31<7?;W0=w$aYg8}M(auR4{eDL!bodbW)Pg 7_DXDRo%n=lC$>rI9v@@*doRJKdelbsX=G3SKh6+*0qfJ-kHKGrQ;JA3GBwawDY#Ta0QnHe}SeNysEj id(M`|n(v+JAPAkk&I&@v)J@31X}2?p|UcqVDC>M24621}N0vs2NMo>J@jHkYGio~psS!8$m4*m=g^#w >w7sX?%|5h-V*d;n!I&8aBzymudQW04;K1R#*L-)Mz;VQ`+|o%ju0{l-B%Y3J(LGCzR6%{d@O1lPR=| EC#vAudd+YQY97keKqtnJGz(->!uYVJlt&eMz_^=(CmX?CdA;BoR+cp+m8hjYilP4Q)P9npSkWy(B44Vt7QFt|XaZ0a~9sZ@$IgW0bSXilsY0 kd{CAm%$uId5PY_^>eFKtWMvwL1Q)A*l_JoB*y7d9@&PJ!)YEV-?HRZOUX?uA2$yEU#BdBT UVw&+E?ZfnOroey!gH-Vhdu;KhruvdcvFxin((qNIqfbK0W3DDJt3W_!~% hO0c-5ZaZy)X^jMEo7>Mvo|OZ^L;*I;s?GwzP3)cIUJg`*9gfSa(CV?zr+%4B;0z7$d0Uly)I^;&C^# p0i!rx|31n-0U*$4?RGmKR?9sSJ+Z8MWI_#=5P9!20ZORMaU6qn*@yF8!g;UiN5XBW7`k=$ooSMFAE~ ^FUcSN%%cJx|KYq*#@&blR}Om&rRiMl=4mUBVq)QAqvOFa#or9liSk1iW51)c|t%1ZJQyC+5l%u6*lU |S^|)-}(X8Q}_FWSLpTt1Lek&xK{z=?nq<983UE@qC&&SAV%f+FV}fnR Z`9HqPUbVzoQ_$+(dQ4P;mI>vf5Uh_l}U^w!4lp4@`!PCSLu5-NG90_We}E@r$-*f(xn*Ui!t3jr&?sWQixhkUR(!Czg(!Fh#ZnWYN5NaAHeAEw1dZHI5{>|JnV< FCiei=l{(n@ynm^lZ*7kIkc?3g+d3=FGb*%>aRqb+camKU4hQVO`jVrf&>3_Jb|FKCHrLhrIeO1cNog <)o9Acp^&P0nC;gHM--$}?%_sJ@Oo{#s8?oWMi&84+mMOBfAP2b3ouF>a0r!vm`;GM*s=(Oq9r_{Z3g E}nDur?XgPwA)D~(SdH#@NqNL#dK# t+E6<>)rb6GHAh0U4Tv9{53Zh~P&_{DLnkqGRp6Od4_G(*=rT}l{oa{dxpyd-qbG+e;?AP^Q9}>^jtW n4rjZIgH)L->4_i>1!4TBkav?ajAOlJ=i($e!N*WmFIX4sT%NE{wzb1b^U>oISTw?h&(wy$BM`Iv =VtF=T0&=yRrjkb9@O!qu8!sIZ(>!kG<@!#Jfpv=GLzgDL+}*4MUD1(-7Aa&X{}WGTdErCRyD#iP`Iq j{7K?QpYKta|QW0K}Zh$k44gnUZ(WK4o)@qCg&|-W9L?$CU+gMTb1*WG;BE|EG%t9iX{;fK;I89-|Xn 6_Zm`jr*hIn(geFkcS&E*K*xl`EfnI%N5gSIDs!sm7%FVY9|XCO9!%Zn)PA1SnDKCE(L_Yl-DAX)}^_ ^$%b223##2W9n(e-gZCdiNbWwUK)EZI#zfE$WFk%7$ongI2afFdrh!E6gz57Cy#C|O^V*Kw$-OG`vuJ (!k4lOAs7*AYa^c5LMspKUgsP+dI~Ptme^uGna9QdaNdGt Y(;$Du9Tv*Yc=ERT!w8zgG^j}9ho9g(2s4P@^94(oIq2{3nmPKOCOcYb-smL+wAk=Zxh$K1^~c+kCl> `840#Gy0W_zAdp9$X1#<1c7aiMGGiQrDr5$q2W3Z{|;AMCTa-Z@)0aK(}5QG63A2Ugy0dvMc)%-0ypt L=f$D>Rg)H2t=%#gD8-y6JQh!o_xwAN6gSke{pLwjt$&^80v&$FZ*_Ld?ya+%=1G%z=e0$1~{iSxD*? oyNU-QQm;iN3bS;J-^xHaOVm>sKu96?fK)bD}fbPtQVeSpK0)et7i can{Baxi{k_WO-*9Lg_LjyP-msdXa_Sn$#Cmb${!~W{h@A>7cZVzaOnAJLAviGp;G0tI2YBd<0v_yl{ |bPp~!7HPk!d`tOagCs^LY$5v^o{6}DQli%D$f<5Vyb=jrnN@V-AkmP3LvSJOKQd0r^S8{Fa9J7=q2#bTwoU42*5S_-BrBOJ{U %s@+Z(Yds|KsZEfE%N1{Zg$7f&+#0@?Otstqt~Rq$M*VzlD(?){`_PYm2qOOfimE9N9dW~OkU<9IWXsI$DpZ0U3~zN_!|h@2{){QA-CX`ZrX@#ox^Z3E^W FW11&QzzDz^h`C4L-)A~#0!;%YHqEo)r@r{R@ZIrMWZh6ua$M%KG%R?;?9Cm*JCb{*^L%hTYPs5MRW1 xx5~($du$OJ;~owFN;#uHNOI;ybn@%*Fvgb=XURU#M=wRMl=^xT0qF9F0Re;w(0h6&q_w2!9pRU0owi M2c?V)x2CTDTo~{LVBRAvpp77IUx>fxaOgxK>TsJz!a4}r=BdH04b*BXS9sE5`Z(yv&o{+2pCt4!ysv &$TrsFx(2#!{&P#G3ZLU#b%uKlr}PWI2e^q+znvn%20a-ji>GAxdM+@US (7Jc(^{sJ4J`nTS2eHC0*M%r{Y~&VeYEWts+Nu20+|vqxy%4-R>MV+CHZyrn9M5Vja;e>y*>X-!?Y_?`?-uQUcL%HO vNETIPwo-1JV+w!xaNUCg))4?}zqHbAm=yHaD?$`xj>N^9OSYKQw4=7ehqheYhsqFHb8FW+P%{jSw*b RfpCj0}8-JRuTWW_Ko%tJ1@krsXM?xl^tExJfBf>8$s>{vwuR5+7d3&FQb+pJO`MX*!Ry_!06f!ZN+N+mWg@y$Folz9poGL39#CF@ymnKF96n;VRyZ#A^W= ^$a)jU1V7Sa;NtJ61?wpv)^O6PE;5jV9~mI`}!)RmwZdo60#T+Wl%I$OGt1pCgj*rm@NrCR{Tyjs%X% ImIB{73A&dd~}N?e8(k2FxW~J)Qu+#9e9+CXlIam;V0*avleS!m_5d}v4$^gXck+$tfUw)X2ZMIwh_p @{$Q6@Cj|$Vr~Iax-PVp)N5iOGG_v@7g=dlQlx9xve=H*z)v9E(FFoT+#|(Ntw$j4dV>A+6NEV(I`Zz 1tRvE>`x~%G)kgw!k>z&^t^5h;E?;R3UjaHHyPt5sqFwmH|DAJ)kwYNBUq-ghGhQj**8CZH<1$2EmY-gK >ga&r4+fGT1=xr@FTtR?zxg278#iqBB=%E^>IQ|^3(Gt0f@o3hG%47v_x^BX2xTpP2V%@P;F;Z}XNE>UQF!Ua555k`pv)SvE%(ejwMCoy2%p((~b0hhIPU*Kv6 M^vDfFyL*jOUW9(qw|Ls9e+}(YYPbNQF=2u#enNr}F7FvNPV$GwkM;jK);Pb4w1ymu^^#=y2 7bNcqIyC8r%aTR}RoUHjMMB`Ny}MYlQ4AEuT4E~|hUEY0gCZ*x)vb~i`kwDLTsatB*4x -i0X(`=gTcb9Fs6nsp>tnZ_p)#vRsuOE6JDq4=_h(2^`272~xhi)&tIJK-%3mK9K5}&EbLD3LQVT3q# u%@_bs(Awaw_WmW)$u!^q50FM=XW>&i{iSK{>KNLf&N%mqIYZ6%fagJGG+^7$(?h-DutumI$Aa;MZpA 3C}|lFxysV~^uECpPY}yaWIYc`7b+;ZwHE!HD!5taq8;ujl(XGh%tITC8q&~eLlkbi;(~K*Q8e?|Awm 4;cLV5`?<56oWU7FWTku#vMR^K&2OQF&SHHNp9`;=ZT}YzaPlvCkqX3?azN`I#7CTvcma94LF;Zzmez 1ddj1Ldix};1iQxSm6G2zlwb|vK}V@?smc8fQ8z;0DT$y84Ap xv&H5`G3>wPZ|>s2OzVO*rq}+DC4MBAU|=p*ux=@D!{wSMjEY4%y=e-*$}efpib9yM}SdvC_>e^Qq()*%0zZ{gS*x?N8_&vK(W13Nc1-r0-zWnVXug=&XT>=h2rns9DVYey&hMzFACjJ`QXbORa2B1q 4H*RM8lwgW#dc@zQYj8qiUqd3Pi2%z38hX(-OcX#X&0%9kY=>PP2sRlyGi67Vm9*OUEH #Ri-GKm%XO~|_n@nu`k`=ZY`4znHGf*MSXxb_znflN2Z%av_U6PJdUN4eNFP5YSUalwSUVi$qyxRa+n 4R~U|aw{V=H&?opO}$=RrAUgjS(SE*vHMlKUZ=!RrsDo<;&EI;erYc5FgibRzEu9uCi`PkQFn4 Z`9;5~&P$-&#NR+8HP&!WCopyVJfoB}!Z4i!US^qfd@_vpDg?w*HGrV*=*-VUcP`d%lC|_3V+ZO-U_X@QD_0-iuT6=XG`wqRanD0Z37CM2($m;Gwu#Z_(Irb7NOKHiV+Eqa rQOkkoHFkmE=6l&J7;HHL3mYMrL6NA8mD3jxIv+u0*HcO jfhIfB(K79q40sS4~qC7iD{TFaP4MZV{wmW4lvmW||ye0)PIQ%l=(W{0T3^XVU3Oz2LG_i)ITJJ(a6s zTj#UsL7*LLgNh#>pW2@1rl1bSnOMMM0Q1OME7Tv7pD>`Yqaial4Dh`ow3ebNOScI_D<*1`l&u$ _j+B>XBBdiv*fXJ|Y+m7e7+$}-(!tDIp(R=T&s;}YcDa10eYZShdn8T!s~C48CRJ0 uw*3tPP+i*Y8#viw1q*^Bvc?yDG`;HX|`RCIZM<29IkE{n5`l&$m2T^Z+(<}wG38Ap(ZUa{?iGbheyN BwV5O9KQH000080A>M2T;IUe#p(wD0KXvs03HAU0B~t=FJEbHbY*gGVQepHZe(S6FLQ5oa${w4E^vA6 8QX5#HuT+JLAV%d7q+%%Z!T7B%N8IThBn6KlEC w9ZS>o-tIL|Qzmwm(w1dqscdG2D$QtApGmdZh;q|>-H9Ey_Z2tIfij~tQp=T;JSW_ST*24bUfM$Bb^w !PS9t?>YPrs?BzHhS9r!hO-(*tKox7|=m83VkER;^FEWgfBwq$RGY`IQG4E|2bn@o!0O(Bdu5t5hLj? cO`ziv5~;Z2^EsuVfg{?1c>TxHtu)F7pF9U!=yTcp&vnRaCrB`8;BGTEtuOOpVPLKK*+fIK;r5KqCMj7eO+o7u wJ(cS2Ls@ZXD^~!t{etx5dh=CYUBx>fQ&z98xAl{I9xcO*}FKbMu_+eIy|#V$0%GWC0C=-D3_TrWYRZ kuXDa27k^!8RdH?a=^I2eLkCO@m+L8;za)6}C;Lg2H3I&P$K%%=QVUYSZaD)Txt8}B)rdS}VvXmTKQ| 2U5&&;ebtVi4a`tprNxtLYl;S(Bm7ais8xbndDQzRkcxieb2qfw_W{qI%>Yf4^#mY*S>3l10I7nzL9{ q6s;~B%Ce!O^ym7=D7$;i`zP|o+QJf`BgSd*n{c?>IrhMFPoA1=oTg-9WGw|3_eb3!6PC@+|?ngl|(J 5e;b%2&2zv**U7__@WKAs*DR?CldP(sClbm4BU dFP^uD%s^Y@Hl?_;~Yv22?`-e-*3BBO4`Ku>CT%r`rasjzt6Vgkarz;2;YY>|r*Q06Fg!J5o^1DGwc+q1re8pY-{rir(at{P7Zu{DAYto2Cdg2jU;v5pjXUUYB3|?bT}AzWIQhM!v6;b;!% h`Ft(PVov>a`4twDxm9xz?B(TU;)FWi3In5>x_0vi1{ee_Q#5w?;yI&g=%j}pMW`=;L(lw|mkZ|lG#V 1bP$lEgwET#G)i9u(w6v&!hO}Naojs1#c0j79Cf0spJr+CBAAd!9XOIxSlzEv_oPjCk7Hl|ldW^RHc8 )sE?pz)0&oQPTckK8`M|K$Dsxs*UbYk-v`<`2gf%8IOorP^>+vtYg5C(UB#qsrSetsOhII0(>zikqlHlEIZ%Q^hyx5lT)=>?v-t`D`5oT%0qcr+x`vV E?dvnxc$wK(m4tFT!%Uz7=?cdqSIZVa8{iU$;j+S`Fsq0hmNix3DoR8E0&4IL#1(mB>{=wZ3+DZWQC4| a{m%hxqlleVw(D6SD143PK;EOH`;Q-MX2u$j0W6o<^qOA;o*`T}^+ @US0Jb@{*Ve5|Pd1QA=y+di>g?S(8-x1~DwNf_L4>gnu4FWTQ$9^u9ZR6~AO0WvP+3wq0K*yLNMOIp8 ecW)!>8Yye{mE^cu)-IZLeg>$I>e02`0qbK30vh}Au6bULTtP`vh93PAw^~gaOHCKJqn+Z586HXEkhC Trz8|)T!Cp!~&A1C^9SJO(lLU4?ZOyH)+sT-Q*s){#id?^-fwspopw{8i`R%AD3bAxQ7g=Jnf3&J4uOjwha!x 3By0E4j^d2_z;U+>8yq&?JY8AN+sXD%q?Fy&~j(X6nY;GBQL3%Ei)X89NN$Y{Pt7hF?Qa%$;Sklg%Ot wHzKzXA!eC264ZhxXv}|XM-^KeBOIFhx<-;hdX_1r`Stc0Qv-TIg{0o3X!W$8CiC}grMFOk;jczk7%? 1kcvFfp`j*Gr#ck_uhLf0bF0_6zu$j|5dXMwOB}*F&>|eEOs*7_Z7rh5Qn-VU{?&8b8C_~h_24oZ$m8 nD-%v{f1QY-O00;nP0YzL11d6ZY5C8y8Hvj-50001RX>c!JX>N37a&BR4FKlmPVRUJ4ZgVeRUukY>bY EXCaCyyI|8v_mmj7LU1&(fKrCphdlWf{}>fGjw+j!PVJ#n&WC+DFk36fA#gpMHXXnXzN_k96CkfLO#+ nc-0Zf%3W!+Q^(_Z65IdL@!%UX@iLlSHW1S{J2A^IVr{sdR37Jv%n9@@c7cX52ug7Ymgy+@IQiSf}MO Qxo^6*_hzhsm|wW(d*4|=e1hLiONe^MN)saV#aP>QY(NzOj6?|?e_ %y`*3;sE_wMJq)uL)y&KZlLYB!Y{Y4kaO6Bn18(A3Ox&CO1X##xD)n^`4Ceh||GB47Vyw$}uj~Z3VWS vg0(}grVR2kqG$A`T^ua_igmH`S*#3%Y1HJOQcO@up6RBm@{k0Qx%tb_6J^EyjQ083*Cu-F=6Of*Kk$ ZoVDo*VQ6!oXFp*F(_C0wlEPje*uVjrEfx2X!S0D595KoIihme)a;SJ{G3L1u!u!%c2iQI24g(d!|5E 5h1szKhRfl`Saz=AK!j|_CxaO^!w)@&fmjYSQA^>0Zel(o}GyPqoFu@fSb+a9FVcpRW?KI)gb8)#Njh B0i!!+X`<-;QW-Wy1no=$FhRA_h;k{#O`26wXrR_$B<|7b7aN#APphmPBCPT3O>L0^$X#s8CH#04A3g X>%xkLBjm{M4K~1Vs7e-9eTxgJ}P%{Zz15YzKRVbgBY=n_z3A$yb33+apIJr2xXmSVYd0znABk_Hj8A )s2kxhaL36+awS+33TXtYq}vYMcckJg)YIszF+%9u);(b0n^kH29lNkQ?1-iw)>!21HY pr4u+HR+^=h60i!XP@`GKs%yDG&ttE5AYMoiN*N$J(a1&49$e8$DZnR4P4Gf{gL7ONuyaySghy8y-1| TTCqTj&AwRD(HB}|(K(7&u0_h{`v?kCL@+#9=j0)aiz_@Ie?vpoXmv5fGfB8B&KmEt)dEi+-K7aT2?C lRdh-vb!xvx%NeE7k+f=ugclVs{zCX=;J9zXu}$%9T;AVJkeXBC|)95u{7q}k$DWto^R(|lpg6E#}^0 !m>$mvsu4Qi|`Kg-xo3iPvQAu`U*DT}1F%(+cQFy$aDJSD>TV9=kj0v$vP;pP!#69KtVo!?M`aexb_M X9^fD41h{nt3E}3Qgrpn`Q7M>Xvoh~xh}=u<>s^~bWszwW?Fj`JJ7M=iHN?!5egC=M^MOF0%ib_rGy| fa|>OR>T_s126ar!Pv9bl7%#3`$5o5R)7ydo_M*{Obx;{aXmIxLTCAFkJH3|u+LOny2ZFk5pDp!OxfQ>2YfEm(l-*8V<#uVkfLO)Uht_<>zYXvxymo8~fFb*DKJ$#HDSY2~LU 7mma$ Iw5_h^%U1THl}9HA>W;?LMM(Ujpj35nf*nJS_~Tv{^q26o@D3^=A<1+mi zt#AQ;_Sep#l(M{MkC+`!)_^8QHMTBk1S@Ur)kzT=SvW~Q|LBm$74((S<~Y&vB5*~vvhgzcx+K>7yk* DJ$Uf&uSbU*2@cWC9a?Q1q5!DJnDzjoJc+?=ClNWTMk3eZps_n88|$^CFW?DCLBN!=8Y0#Q^psT&1y; 8C&w-dhq9y*j0@n-12O-=YZ3bDI(c%`evqHjTFe#h6I(CSfp8SF#?G`da4(}Vmc|cX9E+}G-40A9F{v P`aHPKpuzqx6zTy_k*@+nML=q&B>e)zpV7`PenT!FOepEAKL1rpJI!*|x!jdKHSqpzGtziNZ0w~V2-! nA4GZ$V=4n>~hxBS2brlj)*xFM~GV85yq*L4Vb-g%0d85|yc4w5xw9|N_^UOXKKUQY+$ ig33+0%^gY2uuoAfJ-h50PEPQpx_FUv*Vv>poHFkrfG&rnF9TeSY7E^mB}WYAh7yk6Jx|%fc7ya#UIe >XcS5M%sJj2Z5uffvSql2v^5mf$T(_qkCSMvjmwdSnEHa6PKex~Gfnz^Tsar%vj@x^kc}W*vx98s7hW &-fzJvAeTe;n#qDkYy@4$Jp$AV3A0A5f&{Of@?b%O*qq5wrq-O%u5mMD+o5SCIIV93&$~S|Eex=ea!*m<0u8{#a;T?)=CRy7O}jW$Uykjc@DHVLq?ZXv^)f?U~YNik&Co>mnRPR<{O`#jQb?Uev=^y*q&d0E^;Z z=QUQ-@%Y{HWXZu;XXqvvqMbX8fH}^a;b|;O8MW?yD~b%8-gyXcby5}VDPB`zNq2XaG9Yv4UuZ?qC_X 88b5@>oRFSskb?*(q%=R|7(a2p)SsB|lkgJ3_Y1n(UV$}$7<{&5YC(hV|D8Pa!$w(WqhuD`gz<%KaOY G@3(_Sw*!~E7k8c5!zqlUM(Fc^Wdp0|kfn~^Q+0sAZrS-n}4|!ENIvqE1(CAc>`%ts%AKQgJGS^E7{-;*}-OUZd2z85#FpfbtV#vOUi&st nfG*rP#NhR13_k0&*_wn`WG{v~6PzaJL@a* ?aVFL=AH=F>4?ehCjmKzrkw~M>8{I`Yt9mArzJp37RH i~#Yg!ksOB?S2E<;vJ1r0hw!K|SAYa%{xx*lMgE=4*4l0D&)5mQ@ZHu-aUpQmyVA?mf{q3{6CInjXwm }%;=F8w?*W8VwZCu&ZtHKO-Ct)kVt`}IG&JK1I%;P48xPXT M3>8&3-qJ5>&>k@Zoz?B1oT|4jJA`v_;jw2)ZQ`{f1!0hvuK{pwmZ}HE06ZK;PONK#|bmDJ*oSyZ4cu 8th=F5cc;2K3jr8xpMroJ;uZ#m0X=so;m;1%@gYzf%k^`c3a`6yY@Lj|dn*6_QETr>>}?M2(RC;9ckB HH!r5IL!2XS9y0cDfF5+zz+XQv|xwl98Qb27~nSy(u;nCn|>^I4brDlY^T0$%J*;XUT@+2Aw8QV7U66 ^=^POsfdg(<$bz`Unq@DDT8GakL{rv6P7}k=>ft-=g-Nc!Xkv1Rh?oe}7rO20%T~V}S{^Gr3!dT(n>oc4aX+YJVrSs9bnv CiO#CmgZe)P?^hv)FUdH$9FC|yyNzg03>3XsQ!GyCMisFpmzuGyCb4htlg@&b@7@FV*I&;7X%G7Zk}0 !+I(5c7p*zfT@-$le7XSJ-QSU$1|QTpe#8Xthaf^-F*hF939sgZFQoz((uD3KOps-1Q7!)YYl4Ma5iY Slql{YTLp*;2}2VTmzDFeCUXIxzIVl5-M%X>oHr<;e#oodG{h!#wU3PjR#|{(`;|dR*X4&A)9Qqef)3 tZT>X-KFyZTcDJY9Y|CcDpv}rcnwD}Dda5%LMq4T4| btrrkk)gO}jlp*S$k?eSP=PxLBxLra`MTXpuJipM%C5 7ZTgI&+CWWe9a0K_nz)_INO=izttY@B)D}C)aarDox!l#Sj9^uR#y}}Ob@KJp}fIx9( {Q@$ZifYtKWohA_U0}|M4h>yhp{ tyduJJfH24I|R9k*Rdd#CPrRV2PYfaZPpcw9f}!UszqvQn++i4qaSS4f~hdJY1y1N;Iy$l6EPDiBy4k {`D3;qloKst^3UzQxxlPF_q)!V7=yq2yA|c !JX>N37a&BR4FKlmPVRUJ4ZgVeRWNCABb#!TLb1ras)mUwB+qxD0?q5MD7$RqmjAFpu;K3U%+T5*J*8 )q2b_fE2mMEL8ENUbb$IIH^zUS~oFHU^#ux~ShSSAn8`+3fxk|cSj3T~xp3_I+E7VIEct<+amDa{JiR B~$;Og6^yx@N|9RkdKk7D8}(C_!6vCQmLSC?!fm==5WAWFuusP=-jN@8C&%+kTm c3Na$vp=@S6}W3z*lX32KD=K4#A_o+%G-*yvb{8Ht4NGhtTTd@66#o4lYYI-Mp=^E8Ak{qg=&v@AO(c &TB}rTNTS^CEZgx10d2mB!a_-?rra6PJV>n?vL%Cw(lGp$su65+^d?2_@hmu+o!mo{3d%s!xB=_1cPj +jS=*Y`a=Ddu*KIQRYS|uJzJz5>KHLfB <+He6v}l)t=?K_jH~!xo?%W-~&JTu+L^zA6GMmPoDejJWrFn_in!9#n)t>`B3I$W;&mV$3nE0rElGd8 ?BXIupccVxaq8LzvrH7%MFAC!L{1LsBQeIOnfp&%>$9e?^GaT|7Pzg&)4qDZ)&CN*- dFw%~6Xlac#Az0M$9EnEL1AwGA>^>w4JDN@%( wN37W8rT{um-Z~?Q4GQJOU~@2_F&Yjk+oc#DS0~YNdgZ2y^#g#=#8NN4t=IvP%JwG^~$W0O?i$PeSA) 52d=3;(#f6+&|9beD2ky=Qdj#Gu%Z*xphN>rs7nY^#$?IjIj03nvM=apsWKTU=!%Y_lD2aP?JehpS0naTM_5W7xZ$W{;gE^E6GVsUrR+2vtf*zme~H{r5izTwuVtEM3`y7Z0V!iW&y{F@aQT)L1i%NS!8Rug8!1f>jBvt)J-sx3Ii^^55T*XAGQiCk$w9 {Y3xIFp!y(yY7AI7h-XZJv^kp%sdYqOCpV}#)=fzE cM;c0u-Gw~xK3O<#Y$Y|2E{HrkJxk8jEbNJ_h(o)$SYcXY!JQ@u=gBJOTm3hWcKvrNt%*KkLwyt=6;7 4;sdNE#E5flEoD}PVZxoYYoJ8+EAP>n=uWGZtiA_u5&`kc6M$t)h*S{BmQG`s#2bEcbhk?2l&KT>Zn< FPRPdOV9sm5kI)$bBA1yiPfVbHI`LX}q$oErBcPQxZIb-ZOCk;uk!0y7Mgr5-OaVRnn0>kWJH`K7E?^ $x9#T;cMj#@t_6~5!{T9nsXv1^)t%YWG6V(_KhHOQ tiGBnamV?Km*QvZm*#Eqt=8eirEg!_lGJ{;RZn5ubd}HW4eddt){O;BLgzGQ*jFehTh2One-3QIJAF; wX4r!@`%j0*KLH!4HWP13f+E#gm{v7qxDor?XxmwMN5eeeh{@djyl>XtepPgIv2|?|y5 KHb3KI+8ibvbuK=}igHQ(T#>7|A-EnZ~7388Ummnpqn{$?5K2H&N4%yxEPU+~&pM69?Tw`(7+mD6+_5 t2$zGz-vk3s~Y?H&7wAS^}W`*x0|F@!>59LUb*UXfQJjdEOty$7wV5o@aCG{uUr%Ra?D`JJ)pgOAgFY`VluN +BSJeXm8)+=p5`6htNDG2$d0baXqIWK3q9qSlt;AMaM-LoF;xw}#DXFM 9KC-7N6zl9Dc=#paL!n|M}W}+h(aY!43%ynygNZPNtS6<5K%M-wpX3s_ 7(|1B>Z<|N9smF(0001RX>c!JX >N37a&BR4FKlmPVRUJ4ZgVeRb9r-PZ*FF3XD)DgwOMU%+qxD0?q5NuA7XcovTndW1jvBgF5S&;)&xzn ZU_pQmgty`ObQ|u$LRXs_Z*UvD8Hn=+g;Emw#D<1=bY!f(TiHISe7js+tebm|r5O2#m8{ZCDl2Nm%Tzq)qH-Iy%P-XvFJ*C?FU3 l{)vLKw?nF~|XGDFej3qq!B&^&AyV8XyO==uSi+ua`=Zn8zWWQYe>vqaK{yy2pN{Bwm+BUot>Zuj48> OID)~G_%S^qrfmCm{8w#t`WJ&3H<+D_Snu-S@#(RH?x3csI3ZJa{VWZFDui<+;*TGx-G5gA+5?5wqV3 fU|7**MD-mSx#wG#b5P@3j?%X~l5v1&;HYEgF?OL#B9qrxrLy1IvkW!)7x&LLnBsDQ)JBGM>z4tdNB| vP?WnW7%9lMzBAoZ+<^zMl-t9m|>-S6f9XUxrH9Im>p$REf(_mhy}ajcvx& $1%Cm1m89(BQWyce?zGI-9$A?+G`EDemUf8~0AVSb8fTNaVe6$V1>~K;TKH_t9DO@^gqq1ZRP?XJi4r7t=IJ >#Nz5Hh|OF9~5=l?jrygL8s>LT-`yoJk+u;UJi93MR8{BFh*I6k}iaPjWq!-tE%1i9?|=JK?Qu={&s> (6i=ezSjrBT4`lNZi_bJYx8Xj+)RGcmFGG8l|yW~rO9$QmPtTn)Y+PuTIF*<9=L)Zr&d @^&epICQ@_V+Fc1Rx$60qEHg9BEq+!7)unch^eWr1VOj#EWWIZd8FP!S()DEwsM&PGYe>Ov6X>r )`u@{5ZV_qV@Rsx(S!eBFqIekktZloco~iSUU%vk||8H!hV4p9*yilx oi&a(NSQ&6^H(uLe(InV6(ZfYa!GNd<4N9+_q8Ey|$|b$|u!?!-x*eTVKM;bFt)45}HA8*vNqDq$>zY *%oAQE{!ZQOhFC}(z?O_H7W=N1cV9!^1G}#2#4HNBo*?1l=q2df(OPUWZhq{4fA=zJ=m*LLWsKwtdpW 65i1Ur%kgBebh`$I$6fvz8l932vO||^KKkOZkU-)gNZRT{1R_i34e}d|+?I$qZjoq&=~BaaXSu@+A=D QWRnTrXT}@pcifu!drA)LJ- yK}+=(k=LbbNnFq0cl@Z2Ku&I1ygp){Yq`Nj~`$UNHg||U3V;WRc7%_Y5EJ1m&yn>PLxg3?R^4noI{h CipemQfid;>5*e-eZW{Zos7;&o#NN%vKakP;ts+lu@!f6X)?qRednIDu_sjox&j)unNT!U^ob}$DFLcfrWM~dge2?to!Km$Y;W+!}Tw-C tmwta!`}DJEn2U8>T;Y%BxDKB3>Q{5;ba0hI$M)0G<+6{E0~D)XiK_{~cxt;XfzixMlt9M}Pc7x{5gX P#O&rh+-eA*L<(2W3azS=}7GU{#E#TpM;?jy)O7`Dy@oWw2=yv2dg-x2rFt6D*mbaB-Wf3yVM<;fC?p _Ke!$rq(Te#6nf?^WBLxGqoY*r`4T-Z_G#Bu+%DrCyTGI1@LV*?vrFZUj`X(^Zhc8;(KJgE9f _KsWgm2+Km8(tVM1$^`&kMt;I1Bq=*4}cgY8(F}%B(53y7Ev58FQZn0qZ6||IdSxUQM<24O~omJed0P @A=!_@j#?Tzeamb;uEzb*>8vtJgwcSo>aAdl7(>7Uw0sPgVq{g(>{`EH= |P8ZU4-G^+n-MM|&hsgSpIs^mZuaBpF*?x32vP=2jdXMfN{4iWt`vRajB>l~wp0XUhAJ#1Q>DcRj7MW m580M@4>R58sUnb$;PXh7D>$$XK&1tyBDzsyaPeOy#GsQEyo#Ey&4S;V_b|Wi>97Ng9-_w8*RP5U++~ ;ej0qMSHP&O^vAKKg7ek!MV*Ejs$(2vSpne@rg?RIqc{+IXHpWYv(?2`y!_|Xc-DRh^AetdRkbCGjE_ gIyzj!dNJKrequH#UL-3c<$SOz2wPZRPftJ>!3*0pH0OU1B}!=|L2Tnvba)&cYRACpe_mVVD;nDmUF{ &l}fM`gdOsd>t~LgfX@w?LAtyyle`Qe1<$4Qu;Lg0xOMa&nfGk<0Vxq{Oxv(GN?0U*G+VLbRSXJ2Nr~ g4~6P1G&lW~7d ;RuI<>HdXOF93bYlOYrs&Ac9lK0;gzGClmormU=s@F+l>XT9<98VzR6hzHa1+NRX;`#M$^z}d}hkYPAu7^?V{`60uU7>;KT B^hsp)MHiPv3;+C%5h@|K!S-pp#_xhG=-G!L{tZ^gW3v5E&tGZp#8M<8(ZYaXhM2Tn>>Sz<2}z0QLz003QGV0B~t=FJEbHbY*gGVQepKZ)0I}X>V?GFJfVHWiD`eomSg!+eQ$ 5=T{7<2T`p|CCEbo0WNAd3StzF0$-38aX_rdrL+;X%kD09f$M+o+2uu4Y@oH=u2uGNN;B(H 3xd6JOWluBD-QYy==P|^fJbCy>!wMrGHJy6}s2+O5@m6SCv4YEOE21kYgh05ep*j53f}7y}c 6O6oUR-{hCGW3p=)AQXR|Yy#mace$eG~#hIC7dkT>Wu9qfBulhk%);s*<2kY1%q0g^+8WkyW%T)PfbB !LyR3Yqo?vw@cdHl#JD|*|8Zfxy7wr!5*Skh=sEmWIQK#vti$rPBuc~@0M!=XQC0E{p!?A1Hw-jhW`H zN7N4vpJDrINIPLyG;Ea&snopW2z(X?Ug#?CzZ M2iUHWbL7_MWBU;bAmwk|`g3zssndmn#SLU!PexJI?(bMU5j!a$8c#yJ(58<4yPYkiBYITT#x$d=?3y GPh~Rd%Pwv|EXE<-maUbbTO~p7Yzu7a=pXGhX^5r!>H)KPML*UN=}#?=bh>)(pAyygf!IHuLaauBF ;ZD)Gh@*_0j|x1Szlc=9;BWYPz%E;e!iYSbu^TGv gXWeKV#I&%)6Q+%&y*N^8zbr;LQ8beH*N3;YzJ1W^mlSw@z-DS({EbpcGrkXn5>jp6IKuz};S5sglOd 2oKJp%i_DPBjh?LP{Az+3%}6rF~n-nt^km6?*J~qZ!~H!OL7<&3M5r&rT77AHEkh3h$t=c8CtDBBnWj @Dvpd#TZI;14w<$sZfZxh6RWqFmc%A+<<(T(5BM)E&WWr*?EjaOJ%85$#ro6Mx%;tgKR)G*+y+R8Yqk xV$EsdxSLotDSZo?EQFlIaep?n{GxOC$#x{)rCJx80o{W=knaYso09F2bjj9sY{(f9J9eWAaJV#;>%M lyY}Zx?gq~h;_ZiCowink|EjpXx| _kn-@31>*ndv=>JlbVW}oC5N#L@iuCE1NP5a!rgXr|@pk5|hhHsM3f8KqZfBJB9aXtGozxh2Jje>swP )h>@6aWAK2modQMO>kpJDMH`006)i001HY003}la4%nJZggdGZeeUMZDn*}WMOn+FJE72ZfSI1UoLQY wODO$+cpsXu3tfTAL?|f054rP7)`OHb-SQVYHaC-At+>8qGK+yD3DY<5Bu@EC2yIFW;VDzKO{@u9>7oOy*K(kqLOpsM3+$TJb7LIT)2CEs|RELM1t?B+CpkuhWZIet6r4tIV%gT5 7Qb*v?F{q>A~MXYl-r!xFx%(MW70v+|BhQEphNWAd684BXRf^ZS}HfPBF=Lhjrb^8uW#y1q^$0)H*OJ 67gGCKb(Y=?xHMae5S<+fm|7Q6m-LNQ1Q(6=dofC3x^o;s2M{z3;z2wK>0|g-c7)22nA*ou6y2#U7vDDH4nU-#tra9Ggd_`eU5#exV4Z>rmyR5B%MnK1=IhaicJzOx;1p2ip;)Tj=sE6IGP*YI(iOeWvPP%XJpGBh F(;g&0wkPj6iZ8sjrHtvOw?C`T 0Ek@arr+znH)OC|bqZj>m}1}`*G3T`InSWT!O^Xw@_@sz5%|bsvH~WZ2hYKUr-?)Kz Qah2|Gz_4oS*JplMX^!w=1f%wZn42G*CwK9JshC#F7@+gp{VGZg$<{GL*|}S}3+yB$nz8y#;4ocpDA< n2qZaszsTEf^`x}GhZmU&yaFRXO@RCaJrgE0P4qAvSyEuTzYi~dI~9Hv-LnuB0121AuSB=iO+cR37rK >Ie}DBfCC!cN{|;PWDGn{o*qpd6hgiUjJ`NQvt$doR2Dm;>dLg4A>&E2T{1WkN`hV(*_P{da0Dc%1E8 z%Teh1?DP&B3qeack^8pwpXJYgK-QSzTK1UJilIr4Fxa&hwWh8wDYl0iPL#Kx+g70ACHa>GW pyRIl0G!i9tsTtVz>(I#G;CkUql{L3NF@TWY)=_+_#->f7F1T7V>5v+UNB+A9;sr?ub?mtoXxj)tT{5 2sqo@o;TS?&UT%83P2nrp`88ryYXQ;0RCoDlHkyS#JCLB^1{5^I~&a6sDrxO68LqhYm~Jb4>mTBrvS> ncodrpbnYsyhH|(Sa&*@76{)Ji-{7XVEU0FrdCa>Hw|NusL?~{2anfOeHrT=My>$uu;Zfgrjzxu#JB> Pl#B9Fn5bJSVE|IR%ox@nx1Lhl6?2wxWPHD~7KT}fhH)`O*`L+Dim}$wnpM_LbmKrdRiZo@eNY%#bfO z3&s5VxxeD|oqd3r16*M!A{G`=yT5K>%_;?Rv;VnQ+y1U`bu1la;dxZC$P5ZiEtM90VdjmBA`F}F{?p bmixWSdG*~#Sic=Cf4V$Ed*h1PRs0gnAt?b74&^kO#kGxznV@eGP~)FE^9(X0;#%qb4??7Ba9+J(Wy8 LSJWIOF})+!m6ILeDb&p*s!QCg9LFec)4rVVnDQoF5cg)bFo&#~7daC^qYk?849JSy41J+u7LZtX;F6 b-rI7n7BPL9a5V?_>HS-pRy9cDp+B!Nv>m&td}BW(~@r3wEwfk!?@pHFD=W)Bn(-5WAr~V@9iFD-fWm wRMO2oRFF!FKVb{O7v8 0r2yGLO>c5DwJ!bRvy_vhsfKiggfQUsmxO<3t>7LLD+5?VPWl&3v(=q<~1SbcCRNk??GcgYT?l>j$*_ =H4{>LOl&<5kRduon#!>nnz!^WkOug+0a|D`F~@P_ak^4ghuz-v3*dWTy{7rh^O{{>J>0|XQR000O8W &uT9@^Ws0`U3y}mkIy?9{>OVaA|NaUukZ1WpZv|Y%gtPbYWy+bYU-FYIARHE^v8`R#9);I1GOGuMpga *?{fh-iiP{AXrjtcg;4e>Ae(zq1be+#g=rEoYuIz|9+HgH;J7L6HqiJsZS)ukJJrWz8OU`134*_s7Yy z)U(^$9W!OKO)^p6%AyuR!L8iy(i#lSsiB@TPSc_>je;~Ktd>FA)>BHycaqN(kv0U#f(=r8{j5hw{jZApU}PvmFtP(lc*tnf;pGYG~eOxh9P9UVA@<&erqw_>5=bxBp)b Ft4Wn8@dGl`r*^D5u)N!==vD0{x4v$*sK89L8_)A{D98^jc#2gE0Y+TqGopSx48}xkZ6*lbzd-39Ph Y>p*pwvpm~90P1}_zPk>GC6!Pv7k<;*ZWw3DEm^-YKTJB`XNRuHBc*M@QorHp#>@MvLIRyKUEZ8O=N$ &s&Q+hS%T0vvmq>q-2)zXjz8tUvaB!~H$+5uPKj;=3&~{?yzqquR>~yKcx6fJJ>?Kg4$gIlb3cjh)9y =VahFrikzG@~&AQ{Up8ZMN@doKpOJQnT1_A@TF2h{mkjl1;M!y5o~>o|3;`G6<`}j|M>?)3S|5*xz%l -`qf=qLZt+r2f^s3!t8prAgP6krYVVu~W*p;Ez(?jD}K~Mhq&wbmna9qLJX6KEqiP2y>t3YRKGhq !aWzLHa8#v<)ybJfx;#nishNpn;)N_;rtr~FDMk-X;2P_LW@AL6=jY)I}T||f8yJQC@rB&6RYwr=qF= DeF$M?b++>tJTjqrj;=)m~6{)is_=lB?_%LW#~ei&ubg1aH}%vI-Bm=g1e12xtlsiOA%LwQcL#7=gUT |ls-8H>j;9t^f`GPEOBG1HP)d^iz-*Jz&-$tA-3k#95DUBtz@9y0QBNbqu)3{Dd7bcvRDSb#|3W`Z!y @EG?Lt(Xe^5&U1QY- O00;nP0YzN3o@E^+8UO%HV*mgi0001RX>c!JX>N37a&BR4FKuOXVPs)+VJ~7~b7d}YdDT2?bK6Fe-~B 75;7ghGk#MrN$>o^R-DzVvr#-(;mXp+~bl{K}QiwnRivdk@9p7)i?w&Uulw>*CT2&m9z)Vk1Prs*UR& }{yNwV5D+gc?7{eff>>o$oV*i7TGnyJm)9Jp7T4mh+pHEFQ8dz wcIKWP>MAR-%vPDGZO7B%9nZ7$jd?L)_UjvQ5Z1QIatr2VS#JQ&-$aTNoUkP?$|76RqojaGhakNJd|= )N){p9^PlK!gN*6qj#rvhGXrbK5g?J$vp7MsD)U{cRuv=a(dC*H{jYt#*LQdFLiaNn(eVsRDDsma8K; LDPZ0kH+;-{x)C*PkZZ_l15FHX*npB|qdCohj*oTwFjO1<9JdF$toNOi)Akj6Fd8JcJuFUt+^u|>T}f uob^dMz1y$j)CqeKlh*%6EdLVwDvc!em#X7V$7dv0f*6R$LpH=68bfl3=$)?j`*i2C~Vd6_rdTNaK9M 3d0FE^aeWG)qw9wQ>qTCN1UKgoA(>J#`h%W4^E3!`5IcXBPA{uvH`Buf*!vH^@49NA3Q)+AZlo)bwa! r&2xG-N{AaNL#kwSryQ>CF@(U&Z VvTCn+?@B^qoESx^IpU>kM!GR@2g-G=H>z3z?Z^~_ S<_1j{Wly8{wvqt+k5SUAvBabWCYatCuTNDMPBsdLow4Z4sc3mQpef7r&R-Ha {vjqq9^6f}cGOZOP8(J$yIwO-we*p1Rmga^tnXU5ecEIhiOqYi@qK>MUf?aWY#y*_!(zWMrFm<3yl0v &ghWzHgb1=_aUMKmre7l=KK2>KtqSPOU|6ihG;j8vCG57kZy$}25*MGg}{n5ZnbSx(;(bG~d)2NC$aX u4d|L+kUKX50ed7ULPJ82n188hR@INE+IV)`1bO97?Y-D*BDq@CdFJ6;J`O`|NDGyAmQ-@=9N4pz`5k !YoJKQ*hT{3kwCiyB2!LW2F8P^q){qJmI51(K-VVO{59AezJ2b1ejcAxyS1b9Js|UJW%4ZYCnT OXg1eDZ2Tvl{w1prfjP4g5_10nZD0+o8F#RFTgYvN-nB58ocaU9I&(&NVyLVPH2C%C7>TrHQj}kBY~7 tXfqc#c87fJJoK|IrR?!E1AJ=?GO!|?z-#Uo=$VTd!3Hd&bBYzkG`#DC5hFotmY%m1-mBQ43Lw~{$t; ?c7cVq-qG{CGL_Z%Z2CHi_4Z3=A|l2fzpLYk39IBhgmjl;(5KU~q`9`z8cp#L=V7is=R%v%pS1EomNpzCdXiHBHi5+BW(g i0?hdz_}J)qxC;WzjRUN*^;4m3aSKvaWDhu1Ec1uwSQ=xWAZf@qS*=Iw0_o*pGJgb+P(9q_o>RS!#5( $8cZrBMhV}Vkn&SXf@-=7^CbyC=TC?Vh%LX8%=eG9 8JT#b_Kh_cV!@*BE&q;NKx1{ULiJP|j!(K}a!MGo@?|vLX5}JDy*oDgarJm7sHpbKY^;f|TOAECfKJj <_@l%)sFu2OWYu5Jm&Td7)9DBgbuu1wFe2GV8k*O%L;;E|LNaaEii92GwS)C~MmVr~XD)O;gF)lP7D? 8`}kD&Yl1#^CwkSJ;|ip3i;%#FaPkze;E%gSztTbmI1kZNPu0k*XDheVb3VuM?R+tGR{jI=p3bVI;GX1VHFYv<6Q>rSQW_m_M!P7J0&;8fTzU~m}PtbM692M+Dqtl0gNo~kiIdwXf^_EgYka0+~&NVgb53sB}m7gO^IXNcKhXjZgAEfUw i@c{S_&A+0Nj=VzlC%H`ykGDJlIopZhDwZ}t>|7|!z;oLT=wbB>83Zn9`Dm^IR&=UX7mYn?FC?7ToO! EgX~Zw$CRyGBO%V4b-qAFNk4{a~E2FlhbEh9JWJ5v*$Db;orBqAjnW0hldvJ=B(;(_la^G;ZMHu0b`Bet?i&rSB3?1;MIN9@oXa>?a7 +1my?Z;v!RPhQtjpQjdV>w(wcEe>H*;jgJvL>`Uv}m!Wmkrsf$3zo2b@f*f1`V~lz`+4nukX L~;B^N>%=F& e5cOTJ!D+~`+G65u7C<*0z4c)(>e$_;a+Qi9&hY#$r_uaWBCwgYh$KP*aa68_7zqV>LVU~H-khIqwZYM2;^4< R@ka?vDPnev<4GY%IrdqBp9F{Q_FN+XS6XV_5y;4Mfs==Y}r|F5gS{Pzed{_~qxF9%x;SCg3*V{{~1`9)P174LWrvCTTfiD *wSFmFOC{0oZa;9~~=qDiOu;rciKk5(&GXWd4vN8`bTxxs?h1A3vejn>Sksp8_tI{!Y?836uksWM&XktMX@% ?5OfciaV7z{Y}w&IPjAxKqMJ7cEiwx8d>r_{wx$3d79qGB@5>8(_DW&+#z&P4)%aqWWEL@q&TscIFE_ @*WwYfmo&G@n6eD6$_nN~eSdaKM^=8b1=RClywWx496E%0*aLetC!Bhw4>qWf<16Iq<=`nD~YIyh~tZ&(MHBhFSKcqu$ KOw;mM8XO;+Kq`(5AFKLQQD0^Xx*?_NK|Mw5m)0fX)4eWDj4Tow4%W;`Tz_>~_|DksX*|y;C08ylVPw `bhC-nldU{pp9c{bo9+FVk{f^?-+x3bRXDLa66FRZECc1J~j!d6%+X9#uL*~j3mS)SwE h_#}W%|d(KGc_#iTUOmie&Q)H@GkunSy1^(2h`A+Li&@oy>czEaLKyx2%T#?u?4^k=#n%v?6_3lD+_* Vhp6Q6||{I)L@D*6geAzBSjtQhVl<~j%xuSPaFQQyKV9o!&w-IHRY*>F^yXVKtXz4am>q;A5YFub8j+ f@{3fcI%C&Dsd}7l*3e$^Rk`!v;X+T?3XCtM9nCS0>!REhF3HAJ^5Qn*13^9r!QBNBx8x RWGkAF=F7$rzh<#G=>wfX)}S+D&we(`Ero#~e!RXrPlY!8l=}H>WZ{QzHQIw(W=uJP#v^Wv1Qli8{(5 XWqeC^1@+SqjBgKdFNF_qw~~*stRLxEpmXm{InRsAW!ur_#_AVn XMTdGJeLBI*8Q-x0&wjNzq^}ZCd!ulopu8?F+o*xgdY7f(52~f?!7SW%2$4LYPRszoZT;V4{a&l_L`Oswpb-B ?l?6Sq*7cy<@ybo#ShDxx4uC5>yf$<|%i`C`T?sa=RD|Vp{hF83c9%>I#d)t x2AqAi2vjfWu3-oo-5Bdlw~tqaifkJ9^RoP2woaY6$>6P{e<)|33af9mEN5_*KuqL^1x9a;m92-x-9+ -xz1pNev^NQ)*YTbh@HQc4BcaOkktZyoXN+x1!Y({XnFXcb};{HtVW--unAoO%Ld`#ofKS)`ESecm>Q =B!d4Ni%z0Q;*9NXidPd@6_yEDXRHA3>9M5(<$~de@^DU_Ug^g Q0TB#VXrzvv~?xl@6rb&{3=7aUUbAel{Wlqz`a&aICqNB*DxUmERj!iU71jQ}mq1?<*`Q*y+pDX(q4C 8mn@8zrVhUz;_2?cI>5$l(Rww4&VwcVKIfVn5x9s+hNj&tfjgAfHKRJ$aK1k&~k^rbV>P06{A5!IaSU ~#j|?s(m?7+t;N#8qk1;){I>_tU^5QgGE+_m90+Z<%SPqg)s-Nq*o?RWv6m{PKA*o)bin#Os(`ZqDgN E)6GK>JNuiJ`XtJV(@t@k4qvJ(|1g{eH5x8gXKx^H%JR$N~9~{qop^$=mH>-v82Plqi7a&4-fSsyU#?Pwys3*B;W`K(J}Lp#z7%)q&_;@ %4UNHgR@T9_=9M4RPGMa_vj>_pD7`xhX7K1h@y`Hv)Ii&PyhDn(H83%hV5JpHBvW?(EIK=GU^4R`Dk@ (5qcNE?-KJg9rX;M7KvUAlKZZ)IubpIJAD8L*TGYOC04x)Q-!1b8SU^%cWI7OwRU0XjtNTMfBCIvdfT cuX3y2>nnO#79!q0%F;*dY?){K5rpn`CeM>c?FuV60t41xn9roI(gBgD5HT28(lcBL}TGM(`inPQvWD M2eM;G*L8!}Q^qbQ}~^EPeBFoI3g$M3aXAg8R(q~{_5gcTO>ECe;RzLZ*6ZC29Kp=ZzHDf=SHQe=K@c <$LCo404WEY?)ag6ZZt-aG+5G)~{It?f5ce=pIs*WASVW|xlaTCKZ!H2UB-{iqbX9vv*)2m1OkdK6-p o52pkz8#p`Vd^()0coG+4f;hTpNt1?fQ2bRZ7>$+N^*3S63p pqP*iYb=u8$dMNrtnb7xB_#1R_t8@w3`lb|Si%*fqK_Rv{ykC#^oZ2>{U9?8Q1UB@&8M!bK*@vAqXMO l-vwje>))0uAHeSI+cGlIm*R35FK?I=VI#h*0M5_)2G0{{3nZ}6@bdnHR}Z2Y^&Z7 `IIP`AO**BOPfeuCkiL(_$Mu!24rH1i+6aHcQ6@dI5g6Gl2}*G0#^!3A#zZf4L|$!z$Z>0%X^D~Rd6z 1c`f(`GBfv#yR^^=a<1yxvy#Pa*p#_r%I=DqSAT|J;TYelp(eJ!TG5IwHDV5DRG^gKpGOQK1U~&6RBI t+v$Fc7dmO=kw0YsEl7<@TQ#sM^7^{xM68ZQ320!^9?}ZMTPtt&+zqJ?gH)M>48f3+ixMk%s%r@1S7+#>;s3{*Dlf_J^v_e7>ga8y&m_Wh>uuF&>1@GLcn7CYK$+p0LrPHs8T 73e+HDVmRR3PCM1eX2eFFYRv%Koo@7K})jxLU;fBACyZzBZWMd2}t^O@|ZkFFM7f0eSIyYdm0`FC-g%A;&#)yY>8RLwi|8r^%g?00^rk !7gVX3W=A}0~2I_sXJ%NBHz!b02ep_tHNCad7V`=cTKg~c=v7#c5Sm_nQv2JuYr*RFzx$rVA>0Et*BO dsKH%S(wVLYBMXlkvA47i@ZW-CR=g~XF7N6`ROsqlu+!OAmsxnFx?DQ;j{ItfL+fSWl76h$TQUrO8uc --{$qU&Dc#jEjG(!&3yYWZtsvfxK(Wf!+gcyf6z^#X?NuyvyN`0mx_8?7%yYU@#|cKdH6Gi97q-sdKM WdjpK;h*M;E}Wq#CoqBMBM_#h_+i0%O{86*w%Rf>fR;We2|tBue8g6)`>j_IDlZCAl3&hxse^)LGG5s 2i|Niw=yo5NHBgvfa?#laAh=;ptml!i=4qWaF8Kp4#XjUb5-tA@1^{7mpu8J&jOC>W)j=D9fmvE+sXX 2O!kOW}CXVfkycsd+H_t+9LJsaO;KSsD3*j-YJz%?NeX-(14gDImqJfGF-Y=v3*soJ&CL?xYZ2JxJ>k Aj?R%Yw>#>q9dCPuw;KGJz1T;gLI2k{sGAV+HcNdK;v__?C#Vm$_~}Y@y_f%qGfl@biuzMD?L>;n*r$*?p~S^WsS~mC}B5`?xQ(Fsj$3Ftc 62QTfP`i(HF;_fm_4XgcE$|7~2mbhPheJ)C)`^nus%SyV{jnw7j!jVx)YXkh6Qq$i;bh{VJChkgAOCr Cq#8~aeWuc3Hk12S%Sor_;e(UM;L;p^rJ$gDm-2vM(rkw)Bzj#s?nZ?s0G{Jk-Ki(7@=v;>xfk&FGls Aco$LHqZj<=sPp$BJ5&WO?U-9HbfSrIMzt`H9Z2S>uIF@8=;Lk;+Im#nE!71+VOLad1o)WV9AozU3gt $l!j2mDkdAT5fx?+hO%h)9KTD1-QetC#h9~rehbco1J=(#M7IVF&b`B@VW+%ykfV>yH_`Fk~K?0H259 >OYT-HbUdNqg!90BFS@_bT3V2a6$JoBV6Z2NJRn)ER%OkNVI$G$=t|j!s6!YV1~kwc7)2kv?zQS$`|4 p`H#g#-^vRoxg_0!6wO@I!)sw7%=sKv=nIYVS;W3?tWf#I0oEuU|x0%Q`I( g2W@gTS<{u;i#uyG0gwW{rF4(7&c{w(X$8lw<@QW6#vpBos2dpKi^1oa2ts(=#k52(F#eaa`46yldo^ WtEG(-@_uMF;AH{fC$V!ts|?#~)j*TA{nsD5D4>Ns8of3Gyf(xmzR*#S#nh91B3*ru9Z0D;zmT$`Ak>z K&ZW2dhah>J05uo7WQ(iye5=E(heYOyr@KT+*eo4ibjhsX+D2tzUg9YRDvWe|j`0ohmzUHOM>> PZL(4`g3*pQyktN(I#!G+AR}MyHzD;IMCF%dc?h-G+uaeE2 uo3m=shq#8JF$BUm| 9!ETz6W>_~q@8YfagYIT+8M~;U%S)eK#gfg=Tvq!aw=q~I-$NtzLw5V}hr7+$=8+KMp*ceQ!MsJ$8`9 SEE=S6+f=ZWnLp-$jJFYt$Uv|kS&+O;#lligH4qfr>WS9TQtAEP&Ej%t1-?nZJoBz}b-&>^q5qMa-u?bvKEh$(m}W91qcrK t=d6e5x|$VvpvxX8e@%E;?51aW;SekIh>7J3F=Vn@TG!8$}k4p43#7HFafyMPie>@S%MNt81F1J0kY~ ~k1*J%^X3HJpan@g2hOQ?4}fh2IIL_stxRhty*RIu<(dI3oYoPRtq={X6t)5#HdNFh!A5+ShoC$>H;h 1$q=ASF&qN*vVi&Dmd1hz^um~~egy$L>dK25244R4iq?rxOTbh96FmRl;J2%Q5F}mUKe0UH}enT{F=` 03x-x-!@AT&4VVZc0Cu(6rYw%n+K%`o~rKYR!v#)Gd;r=-SUzyX!79(|(-h6#bA_=|+ebb>}HHjf1;X S0sP0yRm1mU2E7-Dg>gWaUcsfrBt6q92`OnT%j5eWK@rm%UYeQ<3qeajbP^sgH^l^n6ql(&3LRw(Az_ >=qyx1kJOWg*VZaz)5q_;;4D5A)J846ZAk?7z$|Eyk-bO3Nz{VkvR(-`uH@<0o%c(6X78g+tCDcARq^ G`IOfn)Rb#G0C&0!fMj?d)=A0($<;zRX00t4v=5a*Zu|et!M>vZ$3^1$ivABQaI7`up{++rMi+MZjr~ 2cgY$0xydkBUxmGu54m5iWbB7jKt{HY8S!i}2ar!}na4@9bN5+=jJFBqR@7lH#jUz-l=f334Ebn{l+BgDeUZ=1Or>x2`GE)4Kr4S!G&}F7CybF$DmgV_UHJV o*h(#JIh)byrr0=6VZyM5=|+GdA%JbZi0(y$|XQrn#BPuxFwE9qYlKR#;C;;Z#p}GG-O1bv;1f#nX%u }r+MoNv2IpQczR<&PprUWyj?(dOK*4aY;{8H-BhqaEOyuDCiQg00`?`SgS3za;sR=Zqp(18{wPicbva yV4%ejVRZVAHwJB*9Z#Kcw~J#9M3zjk^1wYbGL$;JSQ>$XL9qn$j`r) *vsvl}$xg(80C?@5%?;o(Oh-k3jG5kz#xoqcHPv*h)7;mM(v<{T*~>-%aj#_!ERUwEYEWc!@O5D3Ju( u@w*eNrKqa4rqy0h1oZfLUw<@oOR#MrzU5Q(T!W!!w>4 8G5t-df5CnxZOtnn=$LDz9e>@FH8D6tEow0 zarH;d;V&fDy>Yd+1JT(D49u&5UA40sKFqn1`$23xF&;aE$&C25Ee36r>ZrRZv39&MIQ0(h!;9j7FA^ KyPoQgMp?m!Trsyuj|uDny^refS#KE{s!Nu#c$ms`*_Z%%&hz;K8ocM{&#mV7`BZp<3 cm7YMdtz#UX+_>T=)$D3ncJZHX_~`F#HeIZs&)@U;y85f9eqVCZ{{m1;0|XQR000O8W&uT9c|mBdVE_ OChX4QoEC2uiaA|NaUukZ1WpZv|Y%gtPbYWy+bYU-PZE$aLbZlv2FJE72ZfSI1UoLQYODoFHRnUu1$t *4@R>;gP$S*2UZ~=0PGLuS6GV}Ae(jW>_^UC1zu6bpdMfrKTsd*(_T=DUVIXUt13bqQ-N`8*Mu1Y!zO 2`I)_(&R*V!60L%7E&XAjainCMj_N08mQ<1QY-O00;nP0YzMXU#A6o1ONc^3IG5r0001RX>c!JX>N37 a&BR4FKuOXVPs)+VJ~TIaBp&SY-wUIUt@1=aA9;VaCwzh+iu)85PjEI4EDv^Ko%18&47zKy`?B(_@S4 FAdtBds4P?J82s0%3jp>;tto!At>#q%h%R*LaR@*xf Y$|+r}DI$EC_(Da*223-9TzXx@+h#I%QO-s@zN67St#oE=~kf{)7#uHUmdp( 5r%+6yBN(!t$EVzlTpoCRqMqw35N-GGZQYq`TNkAF_ovfE%5OsQ7vSbrN|n)UFT}O`ef5^m#V-h4Rk} 6JOS=1r=W2h_KBk)<+grtJM|t;~Isn2(%MU*}+qf<77Ag$U1nct!cq~nY{gDt31g^nDn%fwHUlSK^tK i`xY>_w~WS{?8NOYRMbSI+uKj7Z_3xjJ26+v$iZBRQ14|*VL^q$EHLK#5Avpb(??4 9(|B)5>INJGp8KwrfZW0bGTDHF-|4@gHZUD(gUU{QZf6+(fTYa4#+dM!H`lucB5zWy3oFC2~?@Fr=z5 Hw?qI~hC$$2> (8Y6a0MR?O6M=P6^`j6&G9gP2IKm0YXK8wrI)h^Qz94T;saiv9qe7t=Msc#djwkoPrV7c_++%RAou;AcS_%5G( -DHIsi@b;>X&5zpHW;9`H!l{Pg6ts%`t%{h%Nfl6*Pc68D?`Y%BgT9Izds54sxIC%xMg2C5!a ;Fr`2owLatbI!hb^f8u6*;FFsC#M)Rpu%WbI@G3&J 5P7NvX?b2+`HLoDtmLQQjpE-wF1-A3^u6VD|2>=l+L*=38I@;fh&Z@&l=g*p2IPZ fr?4+4WbA7vP(*VQe(^ZM;6j0)G1l3r*l&3IA5cpJ1QY-O00;nP0YzM%f1Az_3 IG7)AOHX=0001RX>c!JX>N37a&BR4FKuOXVPs)+VJ~TIaBp&SY-wUIUu0=>baO6ndBqvqZrr%_-Csc{ 50Ow=X?g*=1GuQW$riyjS)=uKfw}{kBXK-jYeYq)GMTvk_nvboN~EN*lc)N@GolX9{XW}P?OC30JJYo y&zamesx^$)wKCjDRqL~}{!Hw-tg^k(n%@a`Xg?~sfft6C+;I1%;bsTt?(vIkwz3juTO?ShsuBgE&-k WrRKFjNQ})h?mTxN2e>190*?ZnJvc5~%KgGvR)J2a?X@}qnX#QQ^_vhw_(C%G)#^A5u+N5X6nT2R%lj Wa8U8*)~cyZ6~;6l~{cG-%(sLg=+ALH3mS34uC;m!xu?s+A@i1Gv9gCGU3RV@oT%4;}!3ezXiYEXp3^ )LJQ4L2IzYQea+U-JH~FSx8hvo)_W@wpHUS;Jj^SAPOF%U^avR4Mzp)?I_=!k#SQaOTf89LNSb|0|rl k=nF!(~)t9)3>#0k5>wi*t2)_R-p~;lcf&ES|CS?&h}Cd&Qm*W=jeH-?+gla7w?40+ePzEZW^&~@=~_ $;x#Szf3;2s71Y`Mw7p6*(#mr71z#`QUBjYWAh2j?X !-OXm|gQUk8H3Z=8+P>h@v71!F@!8c$$kNV7ipR9;l6h)UcyS;q|`u3I-!ANG#NFUi5VYsZ!PIY&?Wh 5x{1Q9RLlQqEi`G$aQZ>{*!#&bn>rtHR~W=1I%Rs72_Vq4Xs314bf3sGto9|T72OT+GkXqedv_HWtzf F?qGJ5XXJm}*2#SMfby1|70WZiSJ1c)6wH(&Lk<&99*4q!;pfCueL4NU?2oB*kbSuM?gPmSW&;3PA|j UhM6eHgGkCL|!6)kU)jD8a6v_GG`ylK`FLS17s~to?9owKP{?lIy|8=^~$B-n?Ac|S5P*tl$M{#1KH* Xbk^f7a;i!dB-M&7-y-OQo&Om!W-V3$0~rN`W*3%$@Lhl%K!Rs0+F!_pL2Elz4ziNJ_YN}3TU2^v{L6 ObN>*GUp!K(9qWU0ptOY%8EIs?jxKk|zyuCS&|a$oX(Jrl?_7Mpw?r6I>g!96IaK FJ7>pY6yK^Rq8-!ffQ6Lvui08VltR#fov3ddqPg|!I+eqpw7JDT1_lOA|v701M+mjB~*Bfh!4vApt`z z+qSC5Jt~9@Y{X~Ns|2wOfkPUBPxjwQ%tJpAvO{8C`0Oq#Fn0Kp^>E+zHS9-mBn}tlMDnMpBmY31%1t Q>Rf;(3%=Y|Gp3C=CeuiQT@81v<(Zl9Tg!pVPaIuiSpf72$`|zO!VS&^aS$xC+`ods;42cIq`nX~b;t ?(T;56|_I*&rB$#~O-E+$Gdw@2wmgA%902C47m){L(8zJbRznRhS~LV4az_0DEwRw|*fyzcqE0HxHx8 ;YblXtL__zL@ph668;E{>!U(9=5)7)2zcvj*QA0(wWI7{tCYO&ed39J$7htg5GA@t@h2#*VITX@~efB D4Tb`_%|tzu8-?u!iR&z3zJd#9Pr5+ij1Kf!^h;!(6O4%Qu(Tm(enGM&jh8=6I(6#M9OHFf*IBD~$ED21i*c* 3^;16mft`UO*{?oU>G{zurGX2A!jwbkim9lybwf-f4SKicR{u>IZQaR`1g;G^?W6G4^vE*F)o-V10x> I{@{RGHac)pl^3ga?fQpkKMj7yEYyM=f0C)D9pA<_-l_iMB8`dc7_tC6_5Y3Ns?G@SSD;cyFl2&yk?G J-Nnj;S@>k*1a03^Mu$=x!g)*wtxtc3P2vKcNoJez7y$o28GVAoX`T9NHfL4uTX_vvQ?bwb6!&R22=_ T7^Wm0pHKl!G9~6&`!AXk!dT1ooFCm|Zbhm??POA9#^~)!pxtrJP87AluM+mp~44{%F(*%pqxc{7`i| b<}mc|825Z?05W0E#`TGbbkvnJ#_x=5J*Xb!3V`0^gT2}ygqs|Sn+i*g%jhNq^k?Dl&sQ #m1HTOj7=UmeX)~OIS%h(hW-_L4@xgl&rFnLZYeQAeUt+55H?!*oF3X2Tqy9#z9$+6^pj5HE5=<~PNP q57bc$DW14s+#avFk*why{mADCicnI8b-iLt~jj+u2dQiog2Bqt*gt;?Bmpu_&K40GAb!gRa2R!l{{M ?qkx1T<u6E73&%>so;AGa6sFtPj-xPqGv2_NX4%T`}yL#KYaJ c-_1P{lo2nQEcIQ$nPsv#%#pAxp$~wlY59`ZhGl*|OX4>{6wQ8Wj0y34pGwC=N*SgPv;^ocj;<_Y`ur ^d!Vq?|9+9l4c!JX>N37a&BR4FKuOXVPs)+VJ~TIaBp&SY-wUIUuAA~b1rasrC9B5+cp&a@2B8A6qNy&56~ gQHY~*oZ0WET=&&FVXz9x4LW`P6C3Uff-?^l|rDhoxAc-uIhxg;$bFW;~_AJu0Xna#snhJfcZ0&_AOY 4=_wsf0KdoTVo`XJBbRj$11o)~*P>hjoqw643Vls{oZ_t9PYC!cjyXhWNV&(Ewel!eozI%J&@Z#~t@+ j=kF(_amhS-ad{DxB7>dROsAWj66)r7M{}P?_6WRw}z!Y?*AlHm=)|Yy^JZmJiD4{Nstpyn!jDI@3Np xv}*bk3Lg=)8ETfX-l1j+v%{hQnjP>kulPu2ic8n(Iwn~eSOsAK{@Jd`2p8IYUgWxXxNW^xN}`T=-QT ND*YN#@J8}^2nF?ief;VA`seie_Yc=M@87<=X^oI+X3t2(aAN*TYe_upS0rgKj^xuEhNQix(arEcmxW D@%>pAjSYF+qJ@#RP9)Asm!fLw%7Ur35dNf{i1@g` {xh8|DnS&sDf21JOTpf_y>K?*+0tC_XL=aJM6W0ZNG(WZClTwF0)Q0XbDljP5B5VN@)!&l(EvZ%lpH8 i4VRN=NC(KugDvi*69+n}2W{)!9&(n4oadH>!^1;|Bf7#CmG!7Jtqd%UaB6042~!>sx~is(a+ac?Z5# ^wKy|Hi>P+#CQ~&PjcMb44bk#Vu;CHtwLPcr6M0?(FYJVfw7>`0mTn*hWTY#L3S0~1|ov_^9M YK@r&=Kv^G;w5#P}nz!&A@xUEz>}$AQJ91C-inI$9FIWcaz-+w*aqG*k%IqUMv-)YbCcMukMDE+uE2C nX|42so}tM>%SK7@4-oyuF#1}7YHDN8c6Y8bKX_Y=jrn{{Ub1C9@WK(pa~+$n~+?|;e|!WEDYCRJo!w 5%o?gI+0s`m%L1&aFC#E_vW7jCpyD1reDonGIRj$AE-0J 5W+Ir7wly(EPwvv?XN=B*-1Z;9G|tI=FGEESbKH*LM0**v#oBXto_Qa{?j2wol=Xx!zM72|4oU9LF74 L*gG)@t<(93(5=?^n=w(`2WHjw-vPlxvSpN$&q<|2Ni_aro(Yd}VZbFL=~)VTfoau?0ss`Ls rlR*erdrp7nI@`gu^Nh6Fg5jM1i6OYT-uic0t23_8X6U23xa4^htQxH=q4*B|^jrJEA3@CIB#e=B4qI 2bk9s!@IHG1$dSb+dQQB*WNsmWRMz@6i$I31G>F9-X$w6TB%rgxD^Srbnn544k$e7kmPR1Anej7IrjU 6%oHr=JnmODC9l)xBj(X7Oku9+d|-!*tt^D|q)li_aT^%4vJc2%opeo6=uhISE3uVbfVR)n Kz@B`VQfWZvf~sKE2569Ie44!h2(HnSj)C{`7D;g?N!bF1)0Fkl0Nw)Y@ck4!0?4HFkfu9yM@jpego7 q9cwp?!~sT!<|_Zh9L^WX0J@tV`X5wrcFt~T-g7mFO&Z>$Mla#X?4`UtV=>f52+XbB7Z$fT^6rbHZX9 tUfn5}j@50#_OiniM&%m$3z?x*n1+1Ahi#JECOWY;Cite7k13`#nV|5QCNI`HJh@|%4esjFB4D3rmPm|_#HU}FC-3~dzQR~rcB;I=JsCAJm@zs$P+}ZwSFJz y7>oCO9KQH000080A>M2T%S^lqdEWp06qW!03ZMW0B~t=FJEbHbY*gGVQepLZ)9a`b1z?CX>MtBUtcb 8c~eqSa#SctOwLYBPgN+%NGwrE&d)1J%*-oR$jwhl%_)Wm7Nr&xr52~=l_&slW=Uphv7VBW5*GkaO9K QH000080A>M2T+82UJ4XQk0Pz9<03iSX0B~t=FJEbHbY*gGVQepLZ)9a`b1!3IZe(d>VRU6KaCwzc%T B{E5WM><7M~ia_yZypA#p-N91!AykhLV6%G9wVd)ou3|BjtFNx2nYypNgP8M_OZ=1QY-O00;nP0YzM!kdbzj2LJ$@82|tx0001RX>c!JX>N37a&BR4FKusRWo&aVWNC6`V {~72a%?Ved9_$=kJ~m9{;praQwyBcdX41E0X5(@i)QZ-pb3hFvj?2xQ@9ef=B+IGNXdzByZ`-WhA$#z J4w^6KkV{lIPZLBs5DJ~z512??fJ7bO_QWj?Uv3rfECg$+po+V%Pqo+s2KRaHC$ ;wY;6}xYELKE84mi1)ZJo+rqJY)d|IKYfDt}ju$o8T4+b$mkdRB*vaP3ZC*BqDf=0BZ@8MWp!uq{9%o))E3*Oh=oGsaJ>`mJUFb4l68N2w=FB++kZT}D*+w-~?%%p&%B;o1 +=~lA6P_jCBsU&ZPIf|!cg<=^bC6f&(ON;nZ0ur}zn$WTlv0&v2j;!5rI;v%(JKhvxLPR4Qvw$s^TAX *Or^8>BJ`lIRs7JQpn)OX&1FKra9zc~xHt`z|k>JNH^&GP#FpKyGvC5VBZx2e9e_qh$kq;?B$`M=Q<{ 4$q!{&_CLD0XzmEb+{&9>JaxNk2QH=NS*o)8~-(bb0>?RwxPYzB_z@pB!4TqOHjSvgFV3Cu1mly(E?YQ2GAEA-LKayvIInAs>$Iq=vxyei9Hr@z@yKNcgU_lnsa)D=LH>oBv3XU9nxe>ucT#dp0azWpUvO_ohQa=$L?DKFzzT;mqwg` dsR5+WqbJ-F7E6af@ooHuUG`mj;a%Vy1tw!3)U~YN-6>uQ9O7mpJ|Nz0IrQ#u68_5qTH?cO#P**6qiy roj@|O&KIUJGJ6;@2JWvQVX+~(wrBjDkTbCy}Cgao$T?aw`XL?u5Zjvt2DSMtpX9abq>;}oGOdYfSJ! Q@Ps#G?6B#g?M$qeJCIrD8>dc-2u5#kjl-AVk!U!0i_-X-(EC6BT7wX6o$x&Aib^En~G41i;Im}H+iu =1kT_I?s-0DFCjgt4gTos3hPL6akyKeiIe5y84Sb%RYAx(*^IU7; nlB6FqLdwWwsUsdwlxs^o!9!wB4c%Vx~MpHkLx|E4^eOgseeQ)$fBnUi&udH;bsgPLNXgd;vWeM^9^A YBwf6=FnV+U=%6Lt-b3GJ_gWY$l%P7jcMIBNv@(G$8Xiy__LEqK0D-2agxngyyH)kco5T_n}oK+j08VhS>ntH ?;uMC4R@C8U|~4#`6))UaGd)iUz;4D2XYr;hDxXJl)^mmjvgy 8dUQVgwqY7S`giFguixH3JN^LjM^vuhfM6_{E+npZWNKmC!T@Ftly;!PV1dOH50X}%0yG~*dfi2CEjML@MCS^7%d5&lDe^5&U1QY-O00;nP 0YzN@Bv7eR0{{T02><{l0001RX>c!JX>N37a&BR4FKusRWo&aVW^ZzBVRT<(Z*FvQZ)`4bd977TZ`3d lzUNmA=8_e=L0lshAt4Z4xN@i}%S~pxrjDK3PPe7>zccpcVTYv$gb%y%Jid94_ttd4`F`+&Mb1HXy|E sI*2W7jjdn$`4>G;%D}IlLQ4_;oI&ZJw7ko1s$wc^DL=y`y 3vXceK3?ltSMC=}Al-_aIYLkbUT#v|#PoUXRAAE2BCb;W`8yZML6TdVPQ0UJ#vFq22edVq>mS(o81%K 7>OKeU$>CT@-C!9twkK(DM}(u$9=w58x<=R *@E+}>KZNZm97HT=3=wH3`wWhX#p-}V5yt^M6LlM2T;G?e&B6fy00smA0384T0B~t=FJEbHbY*gG VQepLZ)9a`b1!LbWMz0RaCwDOO>d(x5WVv&M&1iZDY-|=-g~K{Rd1`6<-$1(2No&}{UnM1|4JeQ7LX$1B$LLU>{qYp-YW*gDE=8r5M#YW{JD@D %jDJZQX^Wqv5_h4@3P|#XOX6K>1i87tAks>@9)3QWrz$L_)^A0VbWG7cpTVY_nQVQsOIEPi&l{9C|n% ?r)glBt5}X{?$w%e>h9n$kwt?u7`TxJp_xevY%#Mt I=k?j$Q*QlqPIP@6aWAK2modQMO;JNrfoz7000*Y001ih003}la4%nJZg gdGZeeUMZEs{{Y;!MZZgX^DY;0k4X>V>{a%FIDa&#_md4*POZ`(Ey{_bCKaK6NVB_}JIwFdSEYy}1kY msfAf(;Hbd9g=b8JAm8Zp9Oc0d0cc@{4h jbT!Mg~E+Wt3(O;vLI}DAf&UTIDi(raMmf^Zoo=l{b^#ykqko^oS_TYnCa%LXSrjY`qAo1C}G6$`Us7 OU^mQc_CHZWO(+Bo>kvd{AY!6AF`dHCk%3O@Yt0q$;Z;D2v)JQf-pz~I08zw#+`E?n8jJ$4_B@D0K4# 4&;0Ac&18r{K__j-aEs!9n;wo>)OgOA;YjR8Wet!30m}DoVsXAP9GiAlBHHctIeWBME^~6}rg969ws% Alk|bvsh^_H`H`N+!pybQ?Ue8)je-D 2y}hwr=PEtayDoslfiQZ>W1*op)(7z+ybR0Si5G_Nu(ppHdosd*E3j$mp?fk$vTG$B~OUac%zpW7q#E u9evtGkQbfk{E@o2rxA$N^~jRNsLzMiX+As~hEd<8c))#g%$yESr^Ni!ODT-=+xa xhb1J#wygwTKiQI{;B=a!Y;OE8M9R?xtK-hUP;~w}+^yZYf `B|BZ%nI*u8M)gmK!NqAj;CTq{i5IM+D!N4L6T0>jIMXL({kfk0fZ!a#LM`Mb`-Hq18NVqZ!<6x#{S! H-#ZMCo9^QsH$JSl8`4Ens$>@F|X{=iWL!RCA}xouWoN|-@cjBXoOExx^NvGPvYm<7f?$B1QY-O00;n P0YzM?irwnx82|w2RR91S0001RX>c!JX>N37a&BR4FKusRWo&aVY-w(5E^v9(JpFgvHgdn~uR!T0A=4 FYDal=;-rm{uDUI92_OqO(udZ$dkytGwF1aB{NgGH1d*=fH0g}6N?(SV)b@v=D2n+^;!F+?ure2H1V% fD_qZSKMtT%Pj3RzWkE8C*3^ud8?%Vn$DVy*1&WmjcwU6B4hO)l8Dyl2{vvw~wwJz>9vR&DR# zF0xvMessjcoL=tx-R9O1B3~#5t?WQe}i;DlapO_;+%%!6~T^U@WszYOS>B7r{;3qupX}`!YTd@b|3R &gkK#T&w(Tw<*=^AUWUxn_`nLiV9X*$ud=Unc5Hz7Q~C{MwUf>dUf@6Bd^w~YNy6^ZBgpf64Z{RH7^Q XFC3|Nj$Ia|0_6LJ{qW7{>9>p1|9*S=^6bT{m%B%&~eGlI}?ZVA`6XBRk+T@y`MBm}fZZx_Ta+c>on4Ez7M)hLiCKH2pcq_lGQ-Qs)dzqc~xqCsq$Rqv<#;$5y1p&N3%3X+ cr(1CegsHY-jc^)KFU7@Zp%-SD2Q-rvjs$FgjxEd%sL3i9wA~lanrv0vs2A0;zDUInE8u3~wFzW}D#! H@TmbYRXRlr!YSk2QyndFK(4W@|o3h5o*Qc+=?~b0#U>Q9QKnht@xHN_QQDnG>hKn1GCtosEaJhsYk% x9Vs~cd3wo)3n1z!P>N@OdQUE{#pm4b!_T4hTx2&_SfHbM#wz1I>rrCo`Ow9pIew~%F7->N)LE>hSxC LGRxB6Q2h5fc29e)BkF`=t>oi$(!+H7d>O^#+K?M-%@ZiI@L&g8Z4+0%W)#aRgkQV@DJdYgV2&qPWxK{Vs2?>L4cjcr2vE+7^$etUYmpNV+y NS%M$n093T{(71I%UW>d-x4vihrMDHGbd>+5gR&|jneV@$ZcYpc#{L>^#5r%C0jUsm8Zu97uDE+Z6su *@u0qz?W)0QJ!B*cyGC(b@Pe~E*duz*dNadNc;p+PcoAz=E)#M1NAa?*)QKC0IugVzzD;+|! Z4rG2Csqp>zo^$A&_PgcF@hdEUJ9Wx^Y%&lHtVQgo_ns;+Fwha6ZmJP-iPVOw49T49QHTyS0$zRo%e( TK7j7q<4+tuI}1R*YaValV+j9HUPvqaH>uxk5;N_(iob1$`(sA5O^`flJy`MP!+v!?TFFLNR&AbPU+O ?xCd(n0xmK3pL>Jm^sl#-QZMo%Yx_;aU+;i0Go;S>$q?v!x1T4xwFK}!0LVPugXA+AY{46bChd8}vnx ?W-mVIu2k(WbD>!+$J9sv-4h~es2P&Yw!HglrK7#Lh4A1YqMGwU$cAJ@_cw$jv#-RmV0w)IOyJxcwRH L|?Lp(_g@+9JND=v77i*ynejJMKY4?BDV57W=iq>n{UbT7jcoQRLCV7 +L`XVVllSr7OVN5kV~yW 7rNTLY5bqEqYV4r3|mZ!IC9`!1?qRthTjJ!2!tMjG&Livr^YHobU%Q66#wv(Fs$+Y+YQfT5G?fFlxZE gM)+48>=0Ac2;#)=ESL&ZVvIPLYtzyL(>wF@keW87@P6xu0VT`bU|GLJ_eu%4A$JBRasZVKm>z8i?k* P4Png-$B7;Hz;O(RrnpoTSI5vE58lDgWBcARlR1$9D+T4-v>K&!96f&gI7<4%8OSB%6?DJRKH8$ykCJ >w(uX%2)`VDFo=W{QPToZeC?PoTikHP5&K4#9fq?&zYrRoT23qvcSY9V${P*|(>?#oBHz0wLzx2q1iQ =cfe02PE5~27@U;O*aS8q@vA8~}FoF-IEAU Rc7^0jHh{bpQS_fq*

~x055t)rR%FxU^ll{RXAh?yfCV5~0H0q|%xGc7q$zS=e=V!P;FmM_?xi#z< ?Ec1rPpwbfqUIRyR7x^}NNy}Mnj3o9G4IY<>=0(WyjhPuU|_>Wv5OL>03BQ&f-n>BqUbzH2K2HMq@Y4 omB&31V>?Tdc-;RIO`Wp%S&5JC?gV>MTEr>^?fcR35_tkyZ2u&VD4>>A6DMZHhUX*WsRctFkE#l#--1 QQ!kq0rlKwjI`gG=ZnJL!kd(Lo2^)if8nUHkAF$m{wvG6>uQ$zRW-oQXidUDff*rsGobe`EGwyHqk5JUXeSv3!N)@sq3<9)dCL*ovTZ!N!}V2u>Y7n6HBSlbimk^LN=3D@DCS^hugY9U<)*D*0oNwSv 16|Z8wkcA5CI)q&NVOuczaP`U3GW!i&%N=!?7F#GKF_Q}(Ap)zN`SKt5t0j%n)_c&^64H|9k8$g!i&8 $~*x!c)v~;GE?Uc`s7Dmf5wuQsPCGtGiD$2mgo=(2A0Vu4zq_mvk64N)_qhnt7Lk!gYk_9Xl! un?4{B!b_H)=~k;FE(2cXO;hIE30dmx=~VxFRahY+8Uqyx80_!Wxl|~OE5hKwV3ft)YyNkuC83@$h4p Pez0+Y-2e(-xL=NedzIuCOD~Mu3ADxk%siF|R=>AzK#sjV$MiV~q6)jld6YYGdBQ%wwPVznuxz_QM+| H99j&i!l6xbkJb*kAXz&9!Coq*sDeWsjKpI2yL{dXAH|obW*SY<>HO$clet6T?D}rFRY`=9LTg$Spm;vgkh58v(LXUL3PX!f vwQ@Fbc)~Ny?TUTC@%sEg@Tu3n^=SeDn6ZZ+UI4yu#Re03`=A4Epy7eDUP7(b5Mj$~%J3#$_!rSg!$F (COTFWn$8cr3%U1p9qF&y~7OX`;g`(v% BC+vyMoYAs;F*o8B4u3$mkfLkoU^Tup>MaO_))Y99rZ41*VM(EHUY!VE_h5fZ5D)oBDX8vNK6}DZYRC9E@C!yy= yX(Aap5{uloIC=>o6w7FlF!7f=~=A@nt_^>C(Se}trfZKwDB$=g6af1iA*E{HWHo%Kji@qla2+)tfQ6 8AK*&2Toc}s!|bZZiU0}LH%gB?yeKtz!eU=7%XRSj|n1O>QpS%-BY;BRZA8{|sCNyq&v)}twmyEqvt9 +D~bLM-@4hne_$?y{umj=X9>Nj@lCc|*r^F5chc=JpUxDuKj7-<;YcW03jWm+Rs+xV*z~X4g0LX(mR# |MXLv0I^R!nEL^5^+ymhx$Z~UX>c~lB@J6BrW!U8J%U6o!3s!xuyR#T=+= JBLPN@;UM2jf$mIrzcEgBWcMkNkDKr#EVFlGFp2Mec>2Fjnmwzw=Y5wAc#(_H+i|J?skFa)e$E9%7|q yhH-$hnKuBjKORbwaHm`6#j!{XPV>*j#gSJ2tw+1XAiz9SXgA?GoKA8UZojVK@jbnln;S5WknVZN9Y; LxON5^;$jB^j?A-@g=8VhzPF~%LOKMwLE@%0HBkiS3r{DflzFp`SJKrwMR4pXt1XFjxiKMQQxM@Dryy TBwtX>g4h9V+KQ`M(6&ekrqSQ{A<0QZf`8>JI$B){7*&;0BcgvcYV4BG~>A3~nYO=P^alfnqrWo)}6mPiQ}gE< 0B}jzqjP+-Afl3_9$cJ|vh|vo$n|XF)@6m&~1jALxz1_Lw_KKiiGYJS5(PmpV6Q)B}t#A2-c*NsGDn+ ;@7=Xiyw&-(fcZE3E2f!G`^?7ROix`)vsP3o`+KooT_C2!rk?x_34x#kSMJc)-4(0OEYGPNP=gRj7%m +6G$x&Xz@=AVAtwUjhwzo}<0q3_M8CpDlZp$4p(h(HC#g kHHe>{4Ne-TLvBMvF}#Z~<~4vW1*@sXcNoFoyMrK2v%UqMsm(fJ+WX8_8$maxuGZV$~#t8B3bm~4M3n$rOm$WZzO@$} re43E4GUu7o0bR=Wx5n%bL&Toipszy{t*E^_=R(Q5Aoy&tAJo)+%HgJt;p3sDYSC%fCIU@hsMx7NJ75 z>k3F?Q=F+^snwz5GXi89R(UP|nq$&m~v9D&M`)8P71=sMJs!)UcV&T_p4S*C?R(82UyAABY#$D^#fQ xZkHv{EiZk1Bk1$M!8PTo8<7cA&GnPM1&&5$6IaeKO$)%!7gL4j5JGQvuL_l_t2skz5ILf&CH9_T{5S ED;I*tl-UAky_NR7XtB2{T)CeL27b8muqcVg@&Ox_)x?~z^$Q}NkH`=?>^=FZ%q;!;Mc&jh|6rVo1hPq5) +5n;S{f+(`|2r?6+LUF!h30>UX%EZ=AzgCSYF)>Ar3n0gj3Ir(u@J3{OG+LfvvT*-W8Wa1iL+vjMt tLLhV62Q_t_29Px^g_%sC-{ry&0tj@gCU-^@CLw!uER1vsApV@*BcyW(!{8Y!2G aY>MO?{MN)Vhs37FbLCV!pNU+$UgXLt{ZETf5su0l9l&vq7OkK-Ipmhm>_{-AA`|t;872I;dQ=$+VHO MLsxqTcX6*z#JihwijiHL8-sp=-rgI$-^tL<0olpF&e8&%h4(<>U;_R$MVurv;knY&^DIW@?ysBdp*i %bzJ1tQ-=*l;R3e=hJpzq!l)QU#ZX5n&8+J}!XxiC+?$8+uOaQK}$3PI3;s^JpDKZ5Tc>!YLLx7oi$= t3rn=6I3gHvaO?nC@`rBwMLlfkwi+QaYG?1p@k>0NLqz99p>?Z;!_aU|(|;sK*WmsFPJf?M<+EI6$4A qxxxQq34Y*MuUsB80}2jU%9=TTfG4+<{49Kly07IY8r4c$(O `>#AD?plP+4DnS6Obq?h6(F8em2LTZ2mS|dY+YsH?(Eg&4S%YHKYrrA6?0o-E#zTeac!bqR2N79(I~^ 4d02&RbtHXg#J`SDlR0Q#8oCvfCVUF4ecAe0TD@=Ww3s4jD6KkLBo+q$N#LB= t2zDpO$`O(Lh^W#X|Xc57~$IuWZ?5DG@OP|6i3(UuM6=!BmMIO59+R*Pge}92)qS94i`VLW}6yKr+Wk ubNQt@XvEkq5Fw77`QTovv=5Ywt`RTUZ4mQoB_=mNh|Ax*t3uE;VKwE#_*OGV#*updoAF`nb)ON7t43 #?{nEoQQv8J5TLLkkV%jMjzuDA83X8wuc)-EZw~+!5B82I;qI##mZVRQaeGSzsvqfJu+#D2_s3&H;k2 H*{0^toAG7H+YW^=^-d3Sg;VnjHTAynsY=15!Z&X8VU1ct>xhjFqX-hAE)9q`f~J&yfp%Ye8kx{bHfP W>rSN@dNbb}a&NjSr;jB$?1-ta)z+RG28*d}o-0fLFgU955%q$G>`a7JiGxc41bfnq3Z35X|060J>G{ptwR^nM{&qqOYGscX&Uz}BRb(Q98N}sM c9U2R?h$2jsKgdeLq&AgtvSh9Ba5kA=%kuu+0~t9q1gE~?oK{XRqd_9k0I5XQ|efd UtCqD6nNcVucHSJJe-7K2D+WfBAq%BKlvpEB_N1T=X_Jy-`W1lThm_!32&g2w}bzjaP%4VsIO5@JS6e EbXXlQ43?NHnWmmAHvz1)F(%?uHW3ex&P`zBnSaF=?`?khx7( K)yQtfpDw#FXWvjOtAMr`pn!7vUH{b$7F;m+gtDUI4S?b>Gc$bTE*5YJ30<$O`l7>ibe|I2>-t*SJbH &!)fK1B`L)GX;Nu#@KyCJUZoPkI>O7K_@TaS~2{{v7<0|XQR000O8W&uT9(+ecE=L7 %%OAP=3CjbBdaA|NaUukZ1WpZv|Y%gtZWMyn~FLGsUWnpt=Ut@1>baHQOE^v9BR$Fh|HWYsMuQ*U2B4 f6OVowv`VME$ofT9VC0DTAog^`YIVic*7lpPQK@jHi-CDC!)wE`kIBF}ej-?`M*G*A?E=R1o<0kUb0^ &qr1UU+G=TP$k6Qwc9hC7eTdx-@=TK`l{L!_8K>m1i^VIryLoeygQzNS%6PZAvmL@=hZ=5=erGiNl>H3 SL1j(bVzu~n^kEU+@BtMHhu21XYgE1fdXgmh6IF{AYGZ*E29F3dsQ p1=sK+ySNEwOC4_dI$%PIVCoK3@RUU&GtObfIl+zh>pyc0m^|lgU{sq4v$wB$D+vLmH(XVFPEtk##%a*);khw~Ww-MOSMjHHF u1y9TwV1pU*YF7ZTrixg){P*+muM%Yk(Efp6B!3+gV-aU0vQJr>A?J4@%Je3nU>mgrMQ`WnK^t&`!C( 9}E{8%9=&+~?mM&|)_y{0g&$1wc}>otdI9l~@Xhb6D1rQ_G5r&$tVEyw>f9;liI^I9c+nyixL%yp>{l E9IKLe2MMvqP@4k_@uxGCJug@}(o`n_5e<^Qz!HM <7o*9KMH*!jskvpdPZ#eKW;okyM(me>Ur0n0>>z(R+W#x!z5eA(4cxq>?l3y&?S45qQ+_QkaBPV9h4U GmULKy@8@ksz^uJn`+?_qA?R)4I)XatksqZgiRgf_*W%&0n 7zn%=#63a{cZvu6Q@=-yZ^*Tuh301NeYM{f+u53R(uj7v3*|v+}9)7%9&poIC2U@jVtr8QTBVyrEz5< hhzU`qj+Dx6h&>t+9#sX)>2jrixxcnoK}^;3Uf@%eZE*UC{(ghBVm3V6s3VYyX+-d-461oJQxe3f5WYq d-aK6o;Ufol@gGo20|XQR000O8W&uT9-{h9}N&x@>KL P*%9smFUaA|NaUukZ1WpZv|Y%gtZWMyn~FLPsPWo>0HaCv1>OH0Hs5WeSE4E3V0wg+zu3yQ1=A_(h6M 9OSB-2~I7%*?+0^`_mfU9gu-zBJz}S(cfn$e_oL1W+Vek4hEny*lu%D29OQV+&#(H6*ziE+A~ECB^`8 N4)d2hgbvd&<9)xI{yvWR-leNgN?1yL1!RD#;JBPFN!K!$-ASv*yfQp#a%IKrnRC&?z9P47?ik8wr(# CTxOylSXD`M$KvFtk?#-1koGRE Bh5ndtRIEb-cJ+)#d&HN#Mr5~503rmz>$PlsdnIf$NQ#s(%}>|p}NHYT8N;@6aWAK2modQM O+Huy3AMx005g2001Na003}la4%nJZggdGZeeUMZEs{{Y;!MjWnpq-XkT+Pqa3-Een<~TYirla*_I>8d$%dgZ|^hG`rX$SYVxv{Mx%Lo=9#f7Yi%4;P8z3 mVOJ_F6#8&b)uDaW-A1jgdZ>lV+l9syh1&627%NwMqf3?vC(=S#D=j+UpY5nBU6g!X^%GKPp}-o3_H0Hf 6Af0UXBuUn*)#_yzlNe_|%WC`1G;+Q2OYBApljb+6u I1&5;fbQi|NnE9irO}XaEPwUC2mQDQ@Wxz_yr%BvMklrUL6`($ed=@YvY|F|079kp`A?4y4>C=0k7n2fnED3Hzy0MK< t?vp0JtDkjXKDP`rDb;3By?v=~gmksKamEy#9a-c(a2o%s#NI(+EP)A8w7cAGMWSKHBQkxTJH<~$f8d ^Hg1Kpy^nA+1X`GD}*4Qs6Q&UDbv*ijk_yz#-&cR3)3Kd42ulLmn*P6R tNfhirzkiyE?g?0_x*HKYSzv`@(r|zz$J#$s#rg+qXS@v|%IxpbVkZ?RyOEy$BDHr|aVAOSB#f c{Is;e;!wii6N%d^-La$wdEwhLv-U-!-8^pTIFY{k<8R(F6tU|dcJxPQ{d?y7|_)PksUJe?&^lgO6&@ mZ78)B`~B71U&%TIyDmg3ap1xbvFN)oLI5rW*3lIy>BEnsmF}oCo_I5idDmumnhRCMeZ6jG9xVjL_m~ VJ8TK5G7ysk&u!nQprny8tY_}}RovUs1NZ37B^Lt?`xF0Xd&=bw6)`N3G$VPr@P=PFZToI!A?B?cbgL =J}C@)`e))oxitwB*Ea@VK>#2wdBsQ*EiI0{uzcKNcae`sfc>V?)TZ*PSdp+7g3kk? I6b^k(P|N?T>!@3}EU8=$*-)s>?Zvo7&LERu+3t-6--tjj#mx9F=_N(Ky@NF%|$mNEsjO6Aez+zQQ3I EV#umP)J(5odX@Kl(InL%*!KkHiBF5iAJ-5#jc1@V}K>6+M)x1)I#%Z0{x==2jU%q$)^b+0gXeBhUTpjA>FrcafDizF`(!iW&+g9JinhJA&=dPEy lk5=~7?wyX8i=ifg6;k!-v`TdJ;U-0&VOiK&;TTms6dvUUXA3FD73l+7Yt_iPw=d!tO(5Q`2Rxap~52 >s}%@YdH3kb6^=vrbVDq_kJ9|p2r3laT)wr*}1P%PkfZS+xPG}#1O_{HW?t #jlo%P!z)p$^-g^{;sJW!*~8G)GsVQTYZ#8YBjQKmUq&;Ek9jSpHF?-7MI!9`oVg;+7X4n-l)KQRkUt VA5jHrgkn6!Hi=D?Q*7b>RF!&Pwvql)%iN_$%J$J2u(F*MG`f690N0?k29$`25!2HT_W8>jro ~DlsL>KKie7ncjtS*zkAJ+(GXpCI=SpmBIL^!V+D+KEoZQ)M*LRD+r_0fw36&XAPzta9VHEXg=>=C>r G*9j;HcYSYj=J!(E46kx(_|BW2tJIf5!&6t}%H5%VMvrpc580#5Shi^~VFP?ZFRN0g)eB-K}0^Oei*` n4@$SS7V0+-9mVqo#H^WXAgRX{ZH1Sr9Q@d`hG<4Y~)jJ+yAsm&n|VO7MdZ4zuP(}|*(c#XOyea&M)# B?u-PRSzOxNwX#uR;2hVQLg1j}uM4>CzX`8A9hz2^w3dQgQAS#?y>oGIaLBPE_qA=3u1_AFZEB842X% ewh28EzSKQ$Mo+v3=*ULb8TUBHcY*r18H8*eJR|o{svG>0|XQR000O8W&uT9BQZncGXnqstq1@BCjbB daA|NaUukZ1WpZv|Y%gtZWMyn~FLPyVWn*+{Z*E_3a%E<7E^v93RZDN%Fbux?R}kr;Ezo)|?63eGQ1o $JgRa94!(b>j-Ds61Pn6RZ*pDA2*|p^+1D1w-Y5m48LK#UG5;Y6tf5faC72G$6iZ;RHkJtHz8Mx#6n5BSOuN?-lTVvQDciL}gse~ZN; Jg;;qTI!T=NZ>XcROm`_AOsqmp&h*=81tx=5tY>UAqcxL1ad+tK7v{*WC%l=@TVw3P0Y+0{0JxEnmx> 8@htQMR*RGIeAd$GRm#=$Cc-S%QVaV$y^#0XuqrJ6?xaO3+R*jh;%5YS0GCD|Ii|Ou<2gwdj qU{(gkuzR%i(xH^_~(&Tp+U~wRA;s^wK*PK|OYI+L0x!j Zx#>jI!lS|L_OC7>!K7e~fM^oy&CS_Bka?M<8r-&HbAg?Pk5V-Vyj1PCtj&<*1y+;)1)ybc&s`1ZMq< 5A*EBW7!HTnpva1_X-Gu!TedT13`l#j(QFWHQ`Gn|1&kLu2%5z)BEEfmlka!ouBxA0}R6&=dz!{e2(T 7HRp43VjaLSd;@a$Mlnb4k$@WX%p{!d5_5n;EsM66CA6Y^5ck7An1GrSe?FuBe;~!~4eN@#My9hRz9f e?5VbO%gh}v2%0oTuv1vG|D|`x@jpyp&HT;nYH`~;pT;lGBJMNtYb4eQmvPaN4;LmXpN_*gUG*M3z>6%MqW!}-3~iR|n ><;(XUQ<7hVw7)*<9+W`Rp@)Hq&5goDj^m$$M(Lx47LG*(^baA|NaUukZ1WpZv|Y%gtZWMyn~FLYsYXJvF>aCvlSZ*DGddA(ObZ|gP;zUNnP>0t@rCt&YwmjD^ iLkH}#6!=T+-lEAkv<-5BeEYi&ID(rC 9@b!+Z|_Z7)EvSIm)(511g;l(pQN_}LWAKk0|13!*srS`&Vu2}1(a;z|QgT@b1Nq@=5dPm`N*EV!7$_ !qFb?5`?S0?u+*QPZ7y4_m3;?P N_d?gC1yKsE=erwY>?mw>Bi5P1SM*r;~9?MG#D6qRwv?v<>l4ce)$XLwhTviWjS}kcdwpeaHXg)K&hq A^G&bggsKJ$y>~lM()mZ{?GyY9zfpqs;cq0Hy0-)0V$hFxE*UV!uIf>)-eEpX;SNxCNpuSzeh!bjAq^ dp=-M^h@_HQCZP=QigccDih$hz{U%n?llOpYwI0(!Q<;S%6lwAP~6L{~3r2E XH?JxhmX&r+$xTqSimu~~2p2LXpxDs)mu2E2NYvd-aFQZsl!|HQI$v=8d43t4)_JE{>QN=acK+L%kf#olg6XC$lg&Chcea3RVdWq@;0?4+z(%kmgU^^y Hs0}Z_vz{LmLPFMygg(vHC-@sQe^aGWi`}+YPK hao-#h5e`azCFujUU?wbadd)Q_oxLqxjMATlhHT%m*y{UP#!6VG3J3Q__K5a+ZAwh&eRHnc5MG6ZPNf %P#pM;=+`#L;a6Z+;k-Sn_*BPbCLSVIGJuuHcVInGrZssdqT)9S4YAc+{A;AH4zU9Z5AX3{IJY EbXPh9MS}`d%38Oa$bHOoUc~2esTuehK0O6EcK{{tzs4A4_U%7*t|0=a*$hbuUM`PeMVozr_>GE*0lF `sZeQ_$6{7UEXf6)c9@imhQ0XzO`*)VFcJ`ammA(x@2CWYcn2nCYao26VY_anZ_~`kHgkLmzltH`dT8 ;NNFev9ZuJ%tLZ*V){Fci#z2m=&**e?U}kLWA`au` DH@9yEpk3T^e>WPCVQ9M(D7K-{}Da$Zd^CPE$m!_1v+Mv8Z&;H !Dk=hT1{y?l}jns>P3>hc8P>zcYpK3t2oa)UJDwLCN#}(JoeqrNE)(}uqn2}_%Y1!b0CyjVMEhF$iAB ^)XSFPv?xia^&vVott;bE<4VTJ#Ogm#O9KQH000080A>M2T$Fc8$l3z{0B8#U0384T0B~t=FJEbHbY* gGVQepLZ)9a`b1!#jWo2wGaCya6U8~$S5PkQr5c?7@Y)l9(l!XNPkidN@mo&5wm&Iu9@va(MGLpR6{Q I7f{2kwfRg;jq6stS~i3i>BUvvNHiq1(w8jR?RH60S<{F-uR7mZ%5$Nb)>w}m+IZ=e(XO{COkGnEPBM8e2EzwWR-S9> ty}?ZrL4I_*UumvJRaT% mOW{jv@;AL8M;Q+1hRiVhR_JPg&F8MI}fJ_0PjVmbuePpn_a=asRI^q$Im3>lgbSg)1yPjEg>_;##HC `AXgh14$~KCVQvN*zXm%HYZBgEM$@8Fzc6C;CUrlxu@K_%N2^2&GpLXBE4y<(UK6lJ0q4N6lh{tq`L;o+fy3mEHq?m{#Fa&cW>IT^?4+=q(1>pXTw`z-g2faA1UMb=|Z(%&2l)%y@8W5R {1YSQK}+*% 5y5QgK3*XV#mSHsRkgJ&XjaU$JVL7tR(K&@L=fhj#UO7+m6O;pD)*MOL)E~hNm}6woFb|eHC8%}kXM5 Lud>TFA}pss4m8D^B(%`18jX&IJ0tM87}UrqXks447LPwhy}ej@wJ-gb@SpJi>G>-oC^>#uIgUZUzE$ `#nkjJjT{qn*XJhIufq@3z@6a WAK2modQMO?y-E^v8MQc`lx& nrpH%qvzXC@o6OsZ_{IEh*10%GL#P5=&B36iQ1nb23XZQ;YSKl$5vtP)h>@6aWAK2modQMO@>80SNLH 002f&0012T003}la4%nJZggdGZeeUMZe?_LZ*prdVRdw9E^v9pJZp2?Mv~w4E3j}~nat6!y-wC^)p0A 1EZeGh6`k$uR!XIUL10KC0s$@tkj(P=zh8IHdoU1b$9u=BI216`)6?(n>0unl=d8PJ+Uw|f->q5Qm3h {cO&z^v)t0sV=;)-WyR58vRMs79ms!rD$=~~`D_=Alc>Yty%N*xUqpU8XjPoWhvyK(fs_I#kHwBB9O? $L$o13yI>s6GutiXk`3SmaDDvScyAG@eoMzutzW&i3K?|5<)$MMn8vTZg|nlAgUZ&{i~(j&kIkaj@84f&M&28CfcVqFT{YV#C<+KZB;)LA9QCz2u7yf^TKwc| 53CD)Xl97XWS`1MSEfzjK(Gkq-ZL(0Mt2-K&-_d90{{w=82-c c%mTw%yw^qBq&@Lr1yXkXov&}3Jn8V6p00lh_-Twu`s0aICP!y^jeHPjuxOs;_;83rs1=KElDJaza{W y!dbPP=?%b(DVaO+<5uHV|I+~>50@yi49a4~_#b%>mSWqb465;)O=SJqf1(ff4?7K=ws4 V2Apva-q+l?Vw85Q)g&=8u0!{+v8Y49%8E@~rFHiA|2jS9Ut8w}h5rqcG?5{9vw^b}@CU89`89KdeKS<_k~TL8QiT# !CX&C8Z|Fq8mXJb(W>Q5*k4dkPA%If!2X21font*5eRNIh5~gIox0d&M?j5PWiY#=-)#?z$~Me)w<&M zdcez=wywXAo*M59QQ{i>g^XeD?G&e|`4k&)-9?v3&G+Q9OS7>`C$cvqyhovfbT#^Z3d458$6?UuGtJ1y8?1vkx+P|G!!;mk?V#P|LM!IwTQ@!1$XoXQ_pPgAt)%#LOT9+VJ< XZNcE8NZl<;n!Y_Jk5-kaOBMqhT>vHw84&azpfkYk%b}Bv-Hn+&UFo^3zJa-r%)*zlZEBF^?QSx)-(S WTzrBC`%lX+ar{^cXynu8hzJfV%-z^{fHMUs7QRsALp0s^EasBZ|rg`eayP~Y;)|3~g|2Y5k&6~j}2u $o@7iSlz?ifIG4*!{lQ=6`US|TWiC5>^4de3m0SRC9g&YZ|SPvLP}ZYMxCG`*Z{ZSmq?E?)Zu{!lsN- (JqXy{OzJB)%B)yTsTP0xB)cm+>b>fX|-{hd#%EH!*R#M|AL$uUURQN1qlFDL0|{QB;ML!;+|{Dy^HS FNU>&s6vom26^D37Yzq-Qz?(mvSm4eft*l)r(Q_;)6qCOXL!kO%BJTKyf4A2V`Krr!h*3nDoTz%Uf67 q2*1u?q(LtYY*e#iHOb*_3eVgb_aMR}t%T63raEW_?y+Vcw=Bm@l&RU?EC}j2q+C@I-Da(TfP(Fe+H eet;xio^qR!b78!}cTZ)P17je&31Y@AE>3_ZJ84FCPl2)GDLqgb_pND!;TdQJ9`<$XsnBG4lP9I6TE#N@Z 2>3r3^bB%jq~k=FlBLszM={UA-gi8nPJP~ESWbm!F!I(USAY4FA32Is}NdGrz^U|`LsJLawY${$m<{WlAi4i6cm160^9EuUK1|4!4>NC*w@Ty 2+Kx`79yh~}(;d1zq8aR30fyZ6+9V3;UMgPdEUVNX9uXfK~Xc~d@l#8hdS0_6MAPf}8KL#W3MT>3o;K >h9fB4}zdePMPJIc1q3?v&WH!UoQjcku@vbH2GDtQ1Zm^IWruqAA>?RLmTr}U&g(#R2RZrmhf7O=;&h dp9_$9Y0XrpgQ;7+kQBKs6mt?S0W^l?0CS(IlKzH;3ge+5-_u$vqM?6I0$5B=C?h= &jO6GVl82@Jm`+=RPJ1BQ5#*Gy?G$Jrwe|Lu%Twsj(BUmU&t*Fd@!D(`T!$@y |6gfe0E&fh)uvV2KzOmYq5*I!}{ESa7smone$iHK}H~gxLTF3jw&sCW+3LX0a?s#p5#z3c1o7H1y<0g *~LYmxTlTy%VUhB8i?a5l47tfsrwDl$k?v#%BT$234&J!|*R_-iHrVv#=KX@WI{yXNgN|duZAv6r@pvOztt3vSPK3LEOWbiHAbiQLZA g63DV!>OVjuWdYI$@d@QxBsu69b;R4`dEZh?g1rJAn0M=}vp^95A(9IafQsP}t|Q6HV1bBa*No=lp-O `y3jV+b1_pW8^bo(-B%9*+TF5PEaM?22wJ#pjx39TNx=v2U8D==hb bt!vp3OD##j7mur9|drL4Er`%tG3nHYF;6V_1AdaHiGnkEO4UF*$TJ8o`RkO&dL4n5^6X-Ib;~WQ0z; X*~oRSfp1mj2d41m;Chc@0Bz+EMFOVygTT$MGQa|4{{*SBw?P1faWb*yHr6}(D}R-7QJ1sa@U2f|&7c 7YY}Qg|FYrr2b=h#J|l6?V@Vi$8(@Kv+}Q0X+M?hfo8@i8dt*1N4SUvq{xu*s;cVVx1MB2;7|TphpUv te}Iz6T+5d#ZE_19!>}x0eW##ZSP~JePCJVRgXByhCazU3cM`z1rJ2#FYT2kyjT`Z*Ag?P8Il=>NVfy ;G!z^oy$m{(oelsKo8JM$hamB*7b_oN4{`E5*jk3>Zkn{Bm>)lkr&#!UXjZ3o!6Fp^>=wcVm!{m7PS{ Q93Ak1k7+;FyS-(K9Ac$1fcW*(Ak{Q4qxLNqADPatQ8>cDLzzLw)@Z14EdJZVqI}RujdJz4|g(n{m!D 6#sS@+D#l@(z}w<&fMo}_br{lrbGQLfD3Lr&ZbWDX8t;>|$cz`WA~{DA$OSJ`G!WCp^q(>glz5SJr`2 TfnB5e!{}gXPE=x3~j}fOTGyHT%%RkKlar_qAYvp~>Z=EC0B)X18{BG!~{QJC^E$Vg2em^A#+2b1T|c NAh|x!f8HKopgcV&T%y_sn!kuS*<;~??@iM83Tqs#trJ;Au$G7Dgu;>AbNn&>H+g?BQ=vF$R(y|6I1& %f3yMCl^L6aK{f)4SnC#bARkY*S+K(L1ps6aD$ndDg8{0xUWM8f9LIKOyA##n{N{6tu2rX#ph++W8KP *>La^KSWC}E8a;??hOB+*`+v%||VU5#t1ys;){BSueDq;CB3uB;qw>;_q yUq*;-D;;@;}kWKWJn$5fjq^>Ou+CHU~QU~nc@rO5hjJ8Bw46|=*jb-EjQgUmRH?Sqg5Ojh7`tVIi(Z J0O$%p)U=0A*Ul^0Ugl@j0_oZp0g3ik@qf_$x<>-!TEhTm*xBX=GpJG^40i-H!$8JF9aJk4b$F}fWPQ IHOMRVmt|6&Y5sA(#-K6(S3L+LWg?iXRjA`zIvM;LdHw(Ng<`mEKro|ejy>cKUM30xs{&AZq!9KhM_S l&fsJe=c6Y7*yr?Th=a&>>rfr?()WLB!QjJuH>%%Y;i;|4rr4JOp#WYdYk(z|`EYsf4M@*Wfwh`D0j( 5vgc?G3Apj`@-E=)z}9XF+r}(uJa+WHp{3H?3Fc&_Rx>Rv36M8d=C*My!S}iMu& bbEAhE79rj*s@W~yHjqXJ!O%2&}=d#}otjKQc?gN>mC2ia@A0^V^2DD`#?%cp5YbQ)sIaA?#C`*GSaycU!9c`efqE _u`DE=RKskvBAmNyXkX|4u95OubIxqxa=+{kijXQ@tpaAdi{iDa&i%u7Y-R-t)Rq_s!JDf3z)gWq^1} 2F4Da;?1@nE{@8Gf1NA~Hbg;>i<+j3gW^<2&p`Qnit&!@JBzB*j5)3Pb&lcUj)m2Rl0I4FtS1D$rSBu VvZvmGQ|k{uSc`MC+4){`okHr@Eir94fPlGgnyEF@iem9joxpogunyr}2r|?9s>BF$MVwAQ zyM#o5`}sG_>R(rwG9blrY8BDu@u$5e?N&Y^bLe~(CI#u-kEjb>yJo~h)k$eM&p9LGkcmHFoJW74(e! V*jdNvCz$%^3fn9J%CHT;ZUe@35fYC2=YjyWBlIzdFXY>&tkD?GAN(HKk_lU2J@SQE2 T2`1V-;n!qgj?z`*TtX=VA{9Os6n|kLpiqMtb9AireaDZu!jhUg16^#j`OW4CDTU_vX(}E=A2~1(z^e Yj?gDCV6Hz{B?%kUX?T6aB9sb~66b6hw`MjU%Iun3N$F&b-I(f{sQyK`<>q8wUeKR#Tszc4oo=p<~|D a5OfRXv+q=Muvq60g8%lH)sorI`$DsH+oLB{acgRuG7C>^awIvhcG*HVt)2O;i7E@HTLehvLjC aDYc&CW=OK-l92_|CTW$N4VrOvj|N(~t=+#XV6%Qr_*{;~xUu-glAcF){mFiBOLsm>>^SXcp18UJ+Xxwenw_M(F?ax2a!&hBFh+C032btqd&VKr{k4}DLwU-UnhSxqj(d8m EOO&J{Bpf?DV7!Tfrh{n-kOB51-55m~z|?ryH$h4$*>Dr!R=|@e;DApVsu_87;#seT ^EbN)qbYj@2PVr>gUDo%t${E}#mp;EBP1ffPJ)r672BN?p3dZePqu{NL6wo;h$MFHAM>ryYWxkT54{Q D2>3%i-al%Mk))|K)cgk8V)+&Q9W&;_`DqWMGT`3s6e~1QY-O00;nP0YzMaV)KxK1^@v55&!@m0001R X>c!JX>N37a&BR4FK%UYcW-iQFJob2Xk{*NdF@zDkJ~m7z57=X&Y^Ov)dKyvxJc0^XxaseHfU1xuviF `G+Hr{M3to1G0-31Hzf77_M)H1`mnae;c({7n>X}sx7+XEzI`o9SvDk8H?-7I@1#?@&$ip`W>Xv8i9D |l?qDd-*+v^DWZ&yxW;dJoOxy93Z4OSgVQ;D1mP&7#$)X$`d`CSQ>9iTGdPg5ztBTPeKIvpH?hH(3Z~9XzUZ`H0)6Gw*cq!Xf7A?h$1~p{)1ND_QnNOaNGrG+tB-qCr8YF_G7rHvVk d|KZ;$LxKFL`*S+NV4i`t3m0*{stQwbSmO$qvA66|@2@rk8ET5ZkPVQ+u+Gx^Yvo5qQb!oh(tx+;v0F MyY>X>fw}E%Ag|JobrK8r>y1Tgmpthi+$;4_we%e;Wc&1O?kEtJi9WA0%{OiW-urLq%OUx`B Nb|23JuX=G$Ad@qbeJZxImu)Iu$rf92#Mh5#!AIJ|FkqvlD%j^_j5ap$M@>At{ZaSuJO8~45rE}4wKx )bp#KQOE=#x)uA$fz_|(T`@$O(j?)Pf&YfLuTS7I=l_r!ccA%#Q{>&fgWEjy>4DOhFW!T#NuQ;39LCq -@LztM-11}A=c^DSpHTMQCMZ8l|#ckxEnG|?)#NY~wdb=o(A$sh_WS24q5qsj(_6Bgct)8b%B&;zHeMM?FG_z5yB>0=pna_Zt2T $%@19-mFCbgV?Z>&Ijk8uneTasvZXr(uyWH%POviuKhtaLgZcf-VsUT++g?D*Z0abhaxL=cRkqpdfC< 2XcE-*`m;|z-(^Dl>SU&kf1`&4hJr3b63EvCtns_qu1a{0_1dEUCZqXHiUm= k%u^9-~>H`IGdQ7aU$Y;h6R?tT1UjaQ{3~;h}%3KC@4qc4LBS_|fP&d`KLig>7t8d2MTmcWom7RSskA16Ug%knj>(lESJc0?+iSYzgIw~94E8DR{dz1s*qdl23) UwxrId(K0IzLVQVe~=r9E0DRI-us$9X#VyIK!C(kQg)beeyC?TKGx_D0)JVgmf7AMc;-bpglRnQMo)% EVXqyH^^RCXS@Kh)Xd$BP{=GBDFzf|Y3n0dwiydf>@haUwv#8Q9+_m9O%d$oCB%}=PM*&W7lEUnqg)Q sH8K7k6`e!J`yBZ*@yZYC^I7L-Q1F#aVwB}|pNhf+PGEv))Xyxu1p(uN6|#JPl%}#*Xgvg@3e_ri^4f }R@nvW=agZN}JT@3iWZHR!4M*gM?Khy(D5@_SnFqc}Mb|My2cdB&<4^*JaRh~iuGLAHPcv&9PuGMBz58 LR?Xg8oQghGI1ERYrO~%*Vw?Kr;~RWwc)J{zPmuUY$vZFqoamh=f1fCaY~bAKN2~>5$!SPI>_?qcJ@{ LYSYP^6UNHRu9y#gFtVYV!Pw9T(37Q4y`j*)nrk#+zV&!w7){d^07Z(zclEo!R@#&_tO>g_IA8>-lcp Ey}O_T5RsR<>!3(}9J3$hcbFSK2aH5CxLDlKJdU`^bTEncG`_57<7of8P|bI@sebs(U6F*!Y|fEAyH+ N##20a0z?0Owv*l;vriXYdH%+wbFsPPE$MIIKmGOcvNJY3`K{Z>au5gPnaT`8f@i4O4*}kVQ#Ah8{KL RAyAgMFPEb!utJLjBXPVPh7Um!;4&o%7=fm_)X6^8E~JPoed)9#$D{^qRo`NpMDzs!x+L(y o}-FbzQtm7Va6WMPL@vxAHz~V9J7apa@6``5J(@-SfzRDo(%nfhweGuK&QttljI0l=HJoS&sDhe=^PO{_iH!cxm9-G#wJ>(yCQ1)g<-FKP?-7hT#Q -&U=8@FNE?)P}U*+xtd@+y`doSo(3yH4-E4EYLH M2T%>mu06Y%>0DCb203iSX0B~t=FJEbHbY*gGVQepMWpsCMa%(SSZ+C8NZ((FEaCx0t>vP+<5&y2g0# zncvZd)HeSFYVH_auvi>G;w?dyHWcsLLVNvQccg0!uq`QN*XH%LnHRWpet5?Ek&fBOWM%jN6lzAhVDk S#BnAoslAleTMi9TS4^y5KqOn@*(5<#Msuc1=aHY&-Nr$Fhv@s%^TS(7JAV+ViFsi-ms1D$2{W0xERJ %)_$T?RdR2KPz6b{?IaE9yCHNkvC<@a!D|yo7}8((X)t&C#50<)Y4;sx4X13~c3&67qrd_f2>Es;O(mx7z6pQ KgF%kj);fCJ&!3PK+&ieQSokgYR=gYqfzir}>_l!B=$4egd<4g%1i5cSnIo{ d|A*IMknMGZ?Dv_Q ?fyCkx>6$G6UUy30V+;EnnW5XHBg6?43Zz6*FkkBfgV)hY};GYAm=BX6$hjx-&42PDtlYm!8gC4_v}`!4~L&ys~yfeA35H;0~y8>I) 3BW?k0s%&zyUQ2(GV!Q-mO$YG}xPWk1J7fU(5$ZTi?3;Tu28FRwu-Q@YHN)5oP8Q6E?kd3NLa~oVQe< lEoRvlJFJ73f1|qO4!3&>z`+TxM6uiREcKOwf_(r0yp4mqp(fHeW@XFsv{4HJvgk$?Fl*nX1Cs&^=VT 2HPT4`&Z)hbT}5n$Uy%U=Wre>tuoPX)l&EvMZ=c}#c#A;9cVAuR*wW7K?h0}3XjA(6>ki$pa8%<9c{i =pn0y<>N*jAHVGb*&d4e){MZkpQ$Q-J1MFVGoYAld}5GTuA$l0B$_-x*NQC{v6nM^tb0P$e+mbXD|MG Vr`FvFT?pQ%GWBGNwW#Uo8r>S6uAhfOgy}firPh~j0MP^PHCJefuqVW&t3bj3xXqHcy_00j9(QLseA!$Rh-MvRbhyY%$F4g8xwTGXmh0}%RsX<6P7wu$h?4(S2}>c<{($WG2u EDDjJctwBM&2D#Cr39YY>1+;$5`HJW)QH=hugM~BiecY>!+NdEt1D1mrb_{<;~y*4q_q~n!gRp4VTp! {k3Lnw?25EE2I>3j7zQcA5{VuD~<-oW@7_T^Z+@S0TU3^I@)ts=)>Y`|^BW6}78{K_CR0Dspv7Atc5m MXkxJ8&xyBMaVvn`ycOe8m6*U_Sw{GXLB9ireh1W x5GtO0WOiVGgUFFQl3pkcyalBIfXk-2CA60d9S1X}>@ax4dPsE04yse39OV>d+G~c1oWZ9z&LM5iROd AQyNo>{&R0m^|In|zOc?>BOALpV&(Cjs*N#(My7ADX&6vhRDrJztQ&wXw6&>eU+GGMMie2&oD+JU7PX D~dm!qAaH?bKX`GXcRd>?Po_)N>58ED!2JsTJq4j9QlU5iBiPcp1jO%7rW;0jEi2?;B#6~W}T03b}7N {wg}09A(wr#X9)KOv=U2W6lu*I&Um7y$iDTt1YkH&|`Xz_<$a8Zvav1_k7TYZdOfe1Rqpi43>>fk?1& E6sV+H030q<3l+l#XX?IM*T=cp@QU_a3ka&#Ey^MqW2wWN2L{#ULsphE5(Ie-xYL{vHLln5|(0B?&6A`!`_obK9v;P$_;u1Sp>n%#$B>^6FKVxxUG)Hy&Uicf Mab*HgsV8^uQl^#69WGKs`fJ);1lHHG$*9mbiPt=IVl#-dQ%i540z4vLN8}ojSMq(OJG5FJWoC!xT4P V$<*t+ccQSCKL>IY*9k`wSoABJiJt{kkgq7OukCT4Ush#o8Z4VS$a@crz!0RoxU^U~pHL;HL`lC-pAF f>~fqeb6fS&~zmhdGhjVg1nR!3j~{WxfXg-Q3&+z=S{r@sqPUX9OJbzL6=3Euboh>%7%|Mg*wDIHuZi wch5$1)}#%Y*0e)EfrC2qf&0oun`9{51f_CK_?`dC*zr4231p80!E#{bf+Sek`&NL7NLn6o~dF>Iw6e gye9)D`IcTF28;=st5jt>7_yLp;k=aM`-4sj7!;6;kY@unv)j7c~?>E aBo7;Z+7b?@@VI9UOtw(=i5^@{Q7!;UouBtS(=g7=ZjjM19gjXBh!tfG@dvx@5fYOF5u=Ce3Lqtqgvs 6Yvo#r7XtGl*&$T+CY!_`CUgm)dWOwbSIn~b_~M}mt*u7Rwsx^-n`)(UWI3-g&4ppWfj76`H-pUmslm DlrAWwSb5$5q&CJ1mSuVtY^hSm@Mc1?~^YUN(ge;~maW#45II^SpJkHnXY+< 4$lfljd-`fG?o6k=vZK7!-8;Ket9^!WBq!T?A=TAjK^jhR;5igSoJ->&0#N^^f&XR6^I(CNba8Mk=c4 E!=u^O5QvRZwfKNtIED2uGZOls}07f;AO!4{<~;a8?_1PZ-_7_WR~0ahYI<%?&}NW@c?Ce~KTo{AZQP >(?hwP9fC=9mSuJ?YwrJ-4PE_<&jrEuP+ih;axM1vB&-d1^G&?4bpq12ONMaB32^9kO9NUL%Ck2~A8z Gc$Ybi#AoXv%D!77R2s+KK=Ca^7`WCyX@7+57%!#Tu+FC^nAKg4UV8-Yo)1Df|1|Pl+5Pm2|4YDtS%; _ACr^JuVqdvM@QbtByJ?+&gVt^$Q`y4{hya$^bauoV@D9Zyevx|_YJ5IG65~#0gsGV@EI^yp=iV y{;rD0PZ^p%hfLrp}~jTt!=udU39#dFXXbRQ8WD+hm7rzk_s}n5 @U#k)SD{jJy$4L|y3}f)7KPC6xYj*k)H6H@w}+U(VS h(z?p-NB5JO>%n%%T4V}OgY%|QIFITr*UKcZnvi7Yvw1TCz)-QYe>QVhC40&k*WcXrbh#?quTC1U>I<)z|KgN}NhXBtW02~{6 xI;FX9bqLsz78}~+8^cMGc17zb#jxB;COoZ2<@)#Mj7oX;lYH_O~4Q}h=KKTly)1%9N*cfpq3ff8dA{ kIp|-uS2P!EdD`yR$DSQrVK)GPLT$fU)}p{Iqm@f(H7VJC9{DvDx|Bz=#$YWpwXY+4zXCsI$!t?LoB5 ewb`T&y(%>|PsuiQw>lpUQj2aTM@w{$4cBg7{uuvb_Z6@K?raihK*V&eX*hh2iv!kgIfVtECwC(D+E5 Ti52orVlgE#&bx1J7<`_<(ub!A4U70#u~R^B)fLR;1;(0~cV#I5@I%DBXOY@*^9U~@T&c@pF)7eWk}m 8dgZzh3exT|Xxb`dClMbz@FbWt$eg_$Y^zG~_i_6erJNqfC*kiW(Bp4Ghh_R?!oATUo5m&kMZR0}Aib s`&z$HBFmtch2gwU#`w^&iSuwbB-H7|9RjA6X){Ip24iE6Fq0EZh(R%vnT&vZX^^2Ac>W{x$%v>VGi0Axn{BLDyZ aA|NaUukZ1WpZv|Y%gwQba!uZYcFhJdU;=WXk}$=E^v93SzmA4I1+!)ry#TsEAPodvX8#?;&N$n4X)P |X^I7E1OhElHXB;fiBc11Z@>G^3@MS4Get`w{-*(yNBTV8C$t@v*%bn~UqZG|i%3nCU|Qa1_8OdhvFsH Ck`aBsD&r50(^X)wPMCGsZfe$;ZaZ47Z*Dh035fS9k-j_Y5d5H)Ygx}z!@@zf}}?g;Fg9WVGsSgJt{LO{wL4A$_lw6W*_VZD_O`G(1=5}+IUsRyD}4w?c(O+-Q~x-tc#rwf#|hBE-<-G!I?3Mxz3qxL04}AuLT2G V7=3$mrjIaz>es6tw@9%{CR_ZsMBpSKB4_ )-(T*-$%EOxxAM26A9dw09)@z$VK{8$MoX+D`!YW9j=+QN4Qg8xD`67hgLS5v7Z8i11|L6Rg1`%}4Hz9)=LYfGZz>mPz{mNEkhs(z+ikC8-gT-io=#m_Uq~CU}JHjyDgZXHc#=R;0WUp|5f*4O@=|Q;;w#Fy$WGoBI(7H6% xAWX^*1z7aYg{E!9nw-ZBBhQWD?Wob@vr?EpS;9!H9JKFxRUaW4xAh9r020$E)_m*x&`j9~90-m9ze* mCWaOC?wjIqNY|4_U^+&Y^e+;1vj3J6d|Ew;imVp+PnuwB~0?UhjFIVl6vi7_(He&$oN{9s%=D1Y}6NGLnir 5zb@D%?9=Hq9Ib94*Y-WjbXpun1RaC%K<9feHYoc0xELS9t@Cv{+Q%z!X0poDs;#tgdRIOBowqs;L#d0O8)&gGMl(<4?JzVcgHYRBkIFe|n81&S$=eZ=wa>4nP;(i<}%x@Z%Zi*d{S(ApeP)baULlh^KUcS2`1=c_`j+A$?baM^{R{1^~sqv %bHXTA}oaxxe>Qe&Pq?;DZo!{bWY_11LE+1FA5IiH~blrgoZTYn~dQfsR!cTusE2e0?L!K7Fq>U_8>iL0fB| R6SdM<0)cy?SkERlcTfp|bv7WQ8x1=yVO)%)OuDxF{LtOT5eb7Ek7M^7@g%d=Vb17)LeRaMck4O52fA )M;DwZ*CSQY{4<~*uA;2Zw#ou_eCa>G-4X(FOYYro>owgPX3Td-4<9Aczq-JMgH&b^vrc?Q7ZZ9l>x$ _u~T-3;#V1iXJVi1Vd3ef5s6{lsj_mZn0bZN{B(8%0Okjpy7-~U4#9OY*kuf)8%LVPSl$>o}d}Q>Cukb@azuE VQSM>O00+w=kPbc>!#yHxTKqCfDql^D>bIEcko(o^eFM^tV3X(d0iOhAkGL@;D7_s$kN;X=_P91dq;i ^Gw%~J^7rcOUt8BmRQB7eU @`+JFINML+IgL@_E>i!<+P$6z>4B`bJDDr3NEezx$)5X-+s>;a)1E6UK?5!}L@^o>CycL+XI&X|l~-L Dj#*$<%Jy#+Cn{kEilJuHeS1y&|*mEPnoyh}2Ui5TtNOCeWojwa7^HGS9BP;dJ7K?^uj)oSQl)qVhAu hcIJ)}{YXyU^Q~wQx2OoXf%g_Cn{Qi5l9M>&TjF4Kje@Rt#=f$e1X!J&Z5=9Sy6?u_Ep>#|Jm4hqSKo nb?1~BWf*712XupR@nWX=s~87rq`%qLoPz%n4SC|P)h>@6aWAK2modQMO*{1g6n%2003i5001BW003} la4%nJZggdGZeeUMZe?_LZ*prdb7gaLX>V>WaCzlCYjfi^lHc_!uyS1umB{pCGL=MCx;n@9%xdGYUA8 BwE1!!4k&uL#BDn-Z!|R=4zFc)E0mIH!gvxfRc2Y57cyD0Fp b0*K9hpW1RHo9vrK0DDifhx$Z(K|Vw2{NEEj(-g(`6DLN3dk7Z%)HtoV~mbAK=#4hMrpo~~ICEXtzHM G!E##>HS{k`^>c4F;x7thtQ+vXHT|O^Y%Ki!`kpWLka8cogNZ58LpEN)!7%PM1r--#)J8S`^z%RAbZX TNd+Tk>+drtX7CX^;FKYJPn;y)VBIs=5Z|Ne#UbpY}ph+n7L_ikFZ^nBA27h<|eSIFB{`LIy*V*N}F*TheTm9uK!$o+kpFSk;FdmEy_2B^h;7KG=np= qG_|({J;&o@FAM$V|kQMSYw$o0r?Nqm&L_8}*&bVU1FIOv;!K7`c fL6SABdf3Zpl)I=2h!8wCyi9;xz*0Vl4iLHEcKA{h K_nKujEg`dPcl!FwMdHIsYFsgmdT@?eF5M5h8o4<^RigkvF~9Cd6t4&NZ=S{cmjPd%_Ww#lW+M#yp^% $%fVoe&5Qu6m>J<*XB?hWR^Y4zPKZ}jPeY&_P%>d@5^v!{pr#0g-?u)gEZ@L009ITDMXYuYU&5(X8Ue rKDeNA;mZ};(FJ&ABaPR>R4`BOo8jcw$BJ;Ex5KOB$1VI#O0BEm33on`~Wyp>JxnyAParL2X_TBzz6#1ytTG@%&XTVF-*Z$}AT5A em!EA68S|lajm#;!wxK!^41>WSOM7uxgy;Tq+T<%}OM!RM@h=4??aA5$&&1Rrmv|@co61fzI~P8%lyS 1ary@u}t&rv|k4%&1;Ob`fZgzP)0d`Quy}OYI*vUPSZ;ydNDpIg4V}=;uzTxPBTBiGsKLWB u<idTx@v2?-o`Ya`wig~v}OxUU@vdO{0To!)3JvjP%zPE>lZCtfBI@E8tCO9enqXK3;Zu~t4~Z^42J&?glT;2of_GYE7E=ztQ|MWteg0USg_C XqyLhyWBI=eP&JaEgUMNx*~@5&&7)#o*vLOUm^eq+k!9vNS7Wp4&CY3`WO-;~9gVf&sX8|DJ(_fL!Dg d8FYC)5wYxnd?bLLT}69i})c9;M~RO2Bu 47b`T4PXh5l;;vEn<~)2{=C}rs*K()=7G26>RnAe-9%S2$AAlA)kV=6t9lZJB=bs0sv*7&lx7p3r<@@ u?yWqEzo7u@P7w5MiJf2~rlRr@azylUwl)xXv*5NN7W*27xea_B?mgD{=l1GpdcZkz_l4ZY%ExK^0G7 rJb%-|cCJGGM8n7xxl%;yXnZ=oU6ymFU=XRM%A!#tf;(9WN;ScX8bzEjg|KD?e?2eaFNW}(sm8w}@>K B^#=k0J=AH)8w$35S!$T6LrUjsM;V@JSM6b2x(>kAK05G_JHH~=$gmX2g#lyMk5Zu!Ez7q+6td(`$i3* -YxV_GASCTRlDQT+y~AA7h9_GOH7OZ<<(pHW9ognx%!NnsUsasq$9Wl$AL6a~vyy*`>CuRe3ig}_V9A m~pA#6J-ecm}L$*g41%(eta)iJLLi2RcIh(-7!b00QhzihNe4jvh6pas HsiaRfh)>)F{BNR9nAR`PX=9qo;r!C<*#f$U3!$Mvc{>NktGK{cnj5Dg}uwYvd|1h;$NUgzOnLxzn{L 9(t5$`zDdlkDb^U^}-*P(WdP)!Lu}x6Z<#sJ0bZktJavV0pjW4or

V#>}p@IO*b_PStfeIf!oxXY5)6gIKf21<;8fzizdCwyfnP-%j&O-Gn-$u~Cwa*faPKpx>!QPb^n*aL`c?Q~ {!(;y* 7e*=~xd;;+L_4bI0*bxpwJHD}=;C_{E*rIF2R&Vo2RTe5ejx5B)O3MLgfgWH=(1uo|)EW?T1%4{gQkE LGbdm~eI5v_QSUYSmw3Lr#M?YOdoeQJBmG1O+q%z<>HYs%5teq6^&U)^C7rW;7S5z;suD-L1g=Y_D)X 470Kcq#9WPF^L6tuFd0Mm=19S{4;35O*8PbRUEh)2cG?_>+?&9=!4(RZ*FH-mwFoPv&_hwAsK?9J5oO 0$fq7h(10@4?BS^5q!vUI0$_mGrhqfFfh<^;78I+K91TgiTYs~XA#f>%=^-#_?_vKcw*8-qT5B)bg)QCi@GS9;`;|K`{~V&2d5@Tc&H=(fRRa+$gUpwn(x=HWB@gtt$hhrVWfu d(VBKWbBtBd7S`N98(G9`%BX1O~-BAvN`eV@i+>N0?s9i{Mdg)f8!H90m+I!x+SuU0?$4?X9`o@SH0X Bbpd_LJS$z7(vjmsF5*u7n9C?M?Jm(^|+o;UI9o(j9vE{B{X4+I0cUQhsn3n(^xk?v|I69u#tpjO8?X VfuwS=HOu`2S2z4q4+%vM3(mKNP-cW(z-b%119q+kI`vr!a8}JdT$L#9ok4NCy$7l}3l2imcWRi=b~& (K3*?NF2~#)k?m5#&1Ls^+1_SM4j+2c&sEmtJ1*nK%)bZhAvl~&Ex(L;PI|d6uDJ^jL)w5`J%*fU4d7 h_qs|GDiAbVEhQ|8gy8=F4osHSA<|AHqnyJG454-ppQ76ec&HX8%Fq`(V2K?|-yS@LDeJoS*_hr=JbL yT>oQf%!3Y9rrX7W53}8yHz*>Me$!94MbB>=Qr$F&Bxp0S=Km26UZ9av@>+Q}<@uXb2E`;SuR!6TuqA XpHJ;xh}M%H$dSvEO;OR?g7A6*V+CO<4kI<&ka0gFb8aicQgm!NP?%{-RVm32yacNeOHuS@8nab1^E3$#Y&F8~WcWf A^N{}?^iKd~It-06v$bHZS(D2|2GO;wy9#k5cKzOK$Nu@Lm75QaW!3Xtyn^ElV<+Dtx%ppCY=Y;h@ccYd1WPfSYv!6`bKhU!2liwYj(R^ `!z>NAzP#?OwvTXbU8kV5(pmxKEg<-Jk;jn*#K89 {(w<(IqXlwCOqeI*zg0+bKNqc4+c(r$otk?hP~0Q(W~0fITz%0Na`b7t<~-WV67>4YYUulA@Wk3YO|# a6>hZzToS(oqX51Z@cEZb*wp47h^ebnDg-~Xq?s;f%9svyoZ7{XM sB3PTI75xVL+%h#rlyeH=5bl&6x;+X!m|*t+x~a94>ox19+9$v&7l2^PH1CPFQ|8`O$|MrcSeB(s1b~pN5j9z+3ZJPziDjQH#<55at|b5nK8VKJpQ`rHHA5GH2z8P 0gMURCo2zg+Vrl7WXrnKxeSHtScNpD>xEZNuW)l5CDzcw&Bh2R)Y4>7W(d^aF)TSkd8kQL*}Z)6OQNWrTZcbu!4p-dPv1gR3#}l@y3nr$t#&clGDU#^Gn1EKY$6m6O5$$#)^Dr|9Z M=Ok6XaNo2v1^xDev79Mdyc!39sqsu~3NdK>Wyj%x{lC2}a<^tGVn`iu*|hX9A*Hg2nOw+?u~@MO*Zg iYPP?wNf|v*)4*F`_7Er)QVCdg(My%jj*)si@IB8!)V76<6$#cAJg7dKElXci3%_A+~MjZlkuGb>B1wx= Qo@ChKR$K)Z2^Ji40MkSN_>B`>?5sK=btyjeb?+Yh6HRO-NTm5&KpsIb-uDJ=aYfMfDUoy a6Ixt4K{-Cf*j-q9A+a|?vks76g1@&qRB0`%;2zaeV01hz`1p>Kajnb%e&z~b~kdoh$^!d$UpAXpkK$ oWDP&>2-VzsAHn@Q`y5Riu`A&qr_7?8Dc^e=treTfOH@2eN|Fd{x+!6~@+SWOU(Zwe@&=0L-u9TGSj^ 8p$!$6>Mz9A#D~_9r{JEX;cho_fZT|spu9>7#g^0YL5g-=6HHZ33fn$aF8n1uh>+R0MJ4{H&mGp99`e Z9@^xkr~urCo)dLrT-WJp34wy2tDAz`WIAu0N`Xu*^`Y1hw;Nl3t0}1ica0*TqHc>6c=o1301x<)gDoo AHLH-PoG-x-s_H5gS>@+ppIH9%v#^@3%vyW+Y7HHn~0pK6ls~zILeEyuba1_)#x6t4sNvmjt*zd$N;Q 0f1f!zBUnWsTiO^C)k#V{5EvEgOjArE+Xr %%rj571NVFP7gw8}nv5OvE)w18P?1Qd(y~Xg(**JPxY^{TGT|r_FA7dzoDvd?GUFeR8Mi{~D3d+0cqi 2-QvkYq+cCRz))vQhbxbI~;tDC^yti_a6>u|)rXTyUktK6sBouqxwvb$IM3eclA4?ElJp;pgEzkRclV UJU=6T_GMf<5-0q8@O-qmbtjy|AX;WeQwSYW4ecJ9hE~+D*PdyGpxCcnpknG+b2Q!&dKQH{QJ)8u4Ip7-_at|9B!NgrqgWk36)%vZ;%z8 av^X#~o+i>>Nia|~b_!RHx;EFm$wj)SsPNnoihh1nQZp~kc?=~ ++{H`d>ytS1CxWw^o#!=)^~*Y7ye%gBfkz4PcZZ{`bs%&xFmXXqJUVuIHVsOil+d^=E6%il?Vtchs0_ _;2A9DWarAC2z!j~)iQxCRq|db+MlY`kpB=3A=%)2WI)EtizTbc1hD3s_VW?RZ;tjHK9zm`a?nYS*b$ NbRe9hJ5BnDKP9!G&f)K@R2VemY_OHo0;?*vf2=xN?iLi#;7-hsM**w7`8dHiMChOK| Gqtyn(Ktpuh4Gc_VQi^5;Os4`2|M0goFfg${s^No@GG9GMD5z|2~V-aOPzW=-^tdtm8Ik}g^$#xSRCq^5eMTKS#H=+JZ;@z0@8Z$BQHGsdTvXu Xkhx^DAM5YAY0;+>&A_1O4V@qydejf6FYeixd~Z4x624sBh9Xn%;M3k(QseoY47qK6Pk>THeu#fCm26 Du13(2V=Swpy;nsXpDN&L*?f*4Jjm?yO3II?vT7?d~T1*d(m8>hnL4YQPfX~7^TYD0l?ZPwQdyQxJ?*CLg 8NNPeBx|CEiru8TEN%K5hQKph6tw5HZglk?Prh=LFcO6V>SHG2SGP;cfpb5du_$Gr4@0y045J5+&VE> `)!SX6@tSpNTm~fX(_83xLl`xh;iEPd)Xj7lKj46BbB)Q3_!zNnLauKHMHN-`1o0jA(=#i-31d qUpzwFGJ`Bm#_ngP_QIJy!GuJ9z(L-z&yHeebxL)44}a)zZE#RZrztVMxE+OowTUjTysHUy jxv)X;LCp-Go~y(7ZiwR&jRE `d6=H#@m(5W5dxslPW{ipjCKSV2ZqbMct~BvV_+pCu$o)yI1}H3s6e~1QY-O00;nP0YzMDsPjnB1pom 14*&oj0001RX>c!JX>N37a&BR4FK%UYcW-iQFLiWjY;!Jfd8Jp|Zrer>eb-kElm}adB*^kzhzq!}8wV |%B6bjG;WnK^SminUrosFDOjD^+TSA_ze)Go>xO#uT-%N_ RRjzm~~tIDNo0QhKQIbB@NE;ZjAIm{Q~&nvAsIri4r_>Qp2{{1Rg3tdy_cqFpJyc%{R1u+?fQ$%~v}-~`C;|) xzgC6@B8)|z(1TT^L^$cfn@poI1XLICGDGrM8VEFsg<-G)9)y-i%2f<2u{NY4!i=KNDpU${wE{~~GN> O=0||#JjpZ!Y7!hn3z@1u_*Ayt3B#&+OE4Tt1O6n)M*M@4K|pTO*^%!+E+0Y$Ov1s0L6?cAxMXppJOb1N2fT Ze=}@6}KP#I%LC`WL9y#7xMv?~V=HLIXYv^|v*@?h3|oX;@WO7G<9*opn?Nh=mgBhdnCAxypR#NeC0U q~@?bYNSdNJYjGMaHBGe^TaD7u}GoeXaIhZhD*Z7iS(@IGMv*lau?AED8kXmCAs=!0$t2V&syb-k8KF EV8F4`8?{Go`@B}MXOj_b#FMlHNK%|d-wb8r$+%1nd&)k-8}f-$%!yr)@E)l|ZkK>lnW>`MDNIXFvI{ g%q+#dg`ts`f-Q5Ht8QPD=>ORodC%Axb-PR!JPM}+6qWjqCT)q8p`{&!stLdwo_qTsc@80}jqagr;EckqDdlA-%|@4O$cJ;Kj0;zyLXpU?uBfC2Z;~TK@t|S$ Cib(*{lB5W&l+d3Pqhj$H(DUV1?!YX4bIMv&j$y-D(FgaVQ$Emb#8{$q1Ef!MgA06E?^@VL+|T;*O~7 2DgnQf;C(9j{>r`Ome3FAtZ^5LX(3`Qze~1L=I&@Tf|tdWFN3K|%1byNjcOfR+23!#i@V?28Xn _9djsFR;YSzRTqo{?MCkFcTPf>x3I_<<@srR_{x7sUzq5V@8Ubrs+z2!`)DxUyzbVwOHtz*L^vaej4y WNfPZ!2}QXbZ=*#~z&HPisa0w~BAu%qcau7xWW_0jcX-}SWr{^YTDyWQ8tP_4K_Z7S31fu@V=r$|`gZ JS}Y7yym>e*t$HhEgPc{1pLBWN=tF3?DijOfyR7hFYvBN0f+G{lA*j2*g2N;Xbur2K9WlewF#93iuQ>2E&rs9@lWsx__iuXjy>xh)d*l*Qvj^V= O%a&m2&gLtANd;`ipI3XVjhD9CCdU)AVtKk_EFiwC2D}7^CP(3c4j*@VxK)@eDoPQrf1g&rsE!f#0I8C3 D?TobU{bZM@x*ZSz}h!kUzb+^VG@$K9{GRogHTTx^nC8k1CQ%Z&+QNK;yH-G=zCiB%7`Ub7w666r^zn }U8ddctsNiP{9YZIcBWz{JENp*@iuB$AS$f`4cg)gY)@DL3~z$I14rEr>!jlsR+z^%U+kBxq!C+}w3j 7k}KOdD5GI0Z>Z=1QY-O00;nP0YzNXymbr70ssIe2LJ#c0001RX>c!JX>N37a&BR4FK%UYcW-iQFL-T ia&TiVaCv=IO^?$s5WVMDSdmsrq^!ADDhE~zi-1+7?E!?4>n4-d;Ml=-c3TktopGGcrjSD$k7u4|-g| Z9I6hU<)VUOUx;0$cS{p}1RZFNqIqrm3aU4exhWw7yhl5aue%To5D{F2n^sxX)5fTBS(&&n~bB#r$OW 1zd+_Srf`@0YCAKyhGqZTz~LOC#sOA4nPYJartYaYS9X!GMvD+RgVxi?0eYqct5QVZ5%UJtMl^;3xau c&cC4rdxJEU;1=W|4@-A_?WZ`Bg;lY4K)L_XzAkTem&ekP-F?IXZGF`CdXa)-mJ;>=BB-=1Kg5;!RVQ V4}#=4Th|H-su6{$2OKQrg#O6rBM{+l3VLX{M>di2${^f8U;>6<0$OL=x0#?;beEk2)hd>kY~Yt>PY6 U1=9QPs0!^t!*~UhgdxSkF_yFu|5%V^MuaNh#Lzt}Vx7rIC)R2rQ$`wOzu*p>s9;6*T1zD2EthCDkCc +z*W^(vSdHLKjm)HUICct=4r$?ZG_A9UIQ1~aMf;Kr9j3F^DYN+z3BkGv3Jt-_%+7)9e!P(v13w$E?t +$Kbwt~&NIcjlo@{YdNHBr7A==@wy)MpJIPuV=^cl=v+Y2hQkxSR0)?ee9Q{#+KO23U1qtU?M5LPJsR j3>i-)!dF8JX&-O{SD(BxH6IWUY47&#@k9zamVdf;27qnC#4XY_FvVcmc+r|2xJD!=Za`TNaTS2PgLm ogV+0l^8(3D+{ew6YXfNrz%bQ%N9ZO8DCF@Sf+HHt-J4K0-xZ`MUgcCWJOSa>O?RG<;J>bTYm!ptC@FH ~nKjp^8OB$zV(LfQ)bpgxFg_2i@j{X8rO9KQH000080A>M2TmS$700IC20000003-ka0B~t=FJEbHbY *gGVQepNaAk5~bZKvHb1z?CX>MtBUtcb8c>@4YO9KQH000080A>M2T#FNmxJd^900tKT03iSX0B~t=F JEbHbY*gGVQepNaAk5~bZKvHb1!3PWn*hDaCx0r+iu)85PjdTAl3*X0g67rh5OK4+Mu}!dM|*rGTW&YU?j)ONf5NITw8!=)gyB@G*xXqc!u)A&5l`i35u-fp*>O{-* 2s;V8$s904I-Vah4LWPjVYS5dFTkGWEz{Oz_sb$x(+HNT6zV>pzGQkuzQWfN-fxq@0^ZSKipG?R1eyb jbK{2hT_pGP9D+j7HQ+~%E_Gxd*yU5Dli`}BtPtobkw_?){_4} 2)ATL_I*%lLk~gZ13eVP9;brkhonZs=Tp6rs)yu#W(|5=keUi9cx{&|0 ZR{Qx@AgZ&YiB0(_?&E4oOggc4fo0QG7qz1bTs<-mofuQ?*ioj5ZLWr*r#uiLq}=MSD^5$m*MSOan@So00v3EL6|7Tv&qC98VCMwPM@>hN M=E8df>(t2Ce!0p+2?nk*+zem+(ra2u!bo^IYbcRsQ93dWPJj72Eh-5d) #EW<&`vYE2;~CLX9_6G?H;I1YZ(mU{*psU%!f&;SZAFC2C1az?yszsg6JDQTxGe#GyY%=*u-g52G*G< $8Ry}e%`-?JeC&7W>$gqCVmU163HkS*Jxu0;)|-Yif%nbV`Z}{_NitAF#g;3&y~Wa1D$VV_V1ifO<3y h1$idLV*_BI`bdB&M**;CuuTw%=U&MhCP<*8M0O&O@{TG2Sj@K8h-G*zv1N~a1QhT{ZwnjNg0RKu=d6 EF;}l@UpaY9IFh$tsF^sT|A)GCNbxC6A>Z2UHrs4-76}t=_@%kFDv2(~K|3c3Zn0frQu|*J-&kTHABf JG{J9`9y%r$m)4XLs$i<@7zsbSnR0IRa5Al$fjWY0iT?K~pDiG~MU%K#M-J#oziqd;FS ?vQky2`2(0))j-Ha=ccYW!1UVTa`u#S?+t19)c`T|jqfp~ClaH0LI(v}&AZSPlRR1iU9s@C%bTVdtbK@*J@C$ |g*kMQl+?BlF>B&#T4+K)da7=4w$xT7qJ6C>Q8o*e>=t+h`bYL<3q!1;+e<*+*Zh>JN&LKOpWBi)O_o g<1WWl^**Z6i*qI|!>@n7a2TronkAqihw)MQainuiP*m__!Z#kSCouJTHvcSYJv?~S`sF}XPc<1Z0E^ !>6HRzcR9pgBultig}a~&hu)&h)E(7I#6g50qCD`2=hR=ujMWfl0h=S(aWL}p_8cAgZm%7nfBH0|H(% t*iJrpER7x|?V@oqPf{zkrIh%IzJ{FFxyJ6XVF9KX3aobLXoWK#aW>S( `jsHM}(gj9p0K~p~2%M;9w0`KZm9mM&C{^T$D*URhLZc-Ek@fIBKhx;*XvA7Q33|2}COViW;ZU(mvJZ cD0CEsy#3||$p7rbL{q{`UO&t8IQ__jCq8?q?>DOYso4Q Q)VDY(;}%V>t>u&AM;VAq(FK3irJu%csvE5Qc1aGRF&R1rW-%U=;?->s_9&H3pN};$^<1`uRj9*D!1U E#c~trTIER?f0Akj|>hU=WEakeh;-3=jPW592n;G9vNT8`e8IMdLaw>ZWn#vas(Gq+w4#|)7kHg4RE& sp+wluq<0JlSYNy`Q(6v+X0Z$MS~k4B#~GLE*l5J0_VPDTaRwvt*yDR42}6MD`DTaGm7Bt%Ackzvy+( (Pz2|`+-~Ht#^O|QoI2DOX3pRfbN)$)a>UZ22|MxZT;VWc3F8D0i*&>=T9huHKb4Xor^O??ac?xnr3Q `ZIincAZn1GqJ+5GhVM2T<13&Eolk>0DdL_03rYY0B~t=FJEbHbY*gGVQepNaAk5~bZKvHb1!CcWo3G0E^v9x 8eMPXw()&`1ta5N3EdTvBFMu68w7QI#Q}+PaIV(}*ATc86a ad~;@~T<|?flDtukU`axXea(d;w5qtGs^FDeEbLs$%aWyL&Q6v5;i0G=+)pkSIpXsmW4cWp(kosmT2x Fd$=?|Kp^C%fI|WbMl9{C$RWvQBluWv1?bMRw1uHWHs17yk>|k!_o@F1J8qk>6by3I3Bdanl;+m$PDA E}>swi8$H(cy#S$t+0u3nOqR=g@wJ(W~2HHYbu2?_i;T<@w!SeJb?vpx+)1^iXCjM;O_YAqAD=r1(8; `=?VGLS+g6)j6G@@pZu7(=mVilQ_+1d{!=kV+KW1{W^L15*jB9t**%J*(6h62blzr$B`gO$rKVsRRFDzE H`|rO^?4)2h6Rb+X0MII#ARA|%F-YZSJr^cgu}Kmw77J}tB)PT>zN>N`c6Jo4HN(I_0~??)*92syCsW WGOvp7ULHc(veGm9DmXlmC_L+spOItwlZ!o-y0d@GtNVVi(bqTM^!c2_sNES^d~KGrn1xjrITcYu{*0I9Y=hQ)M9E3jUc@x1F32? aS*zugZWW3BLy>9cqrFxB#0;EM}G^ndb)5$iFYyP4~ELUn6H5x!!5Nb|FlgIZ6{|jW}UH-ymBg7ewtC;Wjd <9R)Yz)ulqY6F3wqmcd4f192`$dF**;FGMo?sA%Lv;S3TzI3r(g{X0w|Jzdr2V8ZV0A{qTDy7Dlm 3;*gRS#!3YA;Uvl!qNW}mv(DRA0nkWGgned!EA>lhJVQbjQZthdZ4R3(Ju!kT7{?P|8Y9y^tmy$?at* 6?x7FS|L1W|w~=K}B;M&2$%nu>I1h$qzN$g=Ix1d8*}JQR;;41}g>1CGVW6BU&{?eYO4TGxz1fOHZhs @O9b`&OyrZ_n-8V1X?7XEj7H3WyLgEPK|9hVO7C=z&Q8s6F9$Dgc1jtO|Q;A_DqxGyN5A4?IpR>Io=o %i-t?9FVwZG%*H*+EdSP*zFt~{G~!kq&*BSf^*ij@RP7O=HKE7Rw7uQ0k!fZe%6BgJhXXHWh>z6lROK )I1eizWzQ=(tj`0l1v?KA5*G;$x!Q4go)iEzPnndfjDbyNkR%+wfZG*&29N$yZs7P><&0uhePY41p^d +Z#(e^Z_MVNgPI1co!HG0H`b$wAg}GUp2f#7SvJjC??}p=m*}L9!60AMrru=^Bd10^u0c$ncLo;mP&x&+Ge>k%d9(bUwxs;$)A0(rpo!<{{Y31SG_gnEYcheV-3PCX1hga5?10Jxqg-6FM)GI TrBUJo#N!5zA&92EkGzjGPqzi>yuAr8{+y>==`;8D4cM5*Ju+%n}y-2I;A;a=l}*J^FQ7b@xWzL&}p< h&Lpd$EFh;q%$ocXD}HPBtTC(ZL?BelQ*ZLV(&Gc4sWPsEh -@3%kWBYosWc0x)3580VbxT0y`ud(u^pQmFMHtaowJ!3i<#mBJPz}~OEW|_Yr3?d?w&aJ7m1=bSNp2B 9XcJ2f&D8{;s+#bP@y3 BA7ml&WK_aH?!jNPNY~YmyKUN7yf)C%ouBI-N=3$XH3vL wHtjJyQ%`&G-*6bwaniQT^K4R+s|M58ZCa2E`%)K@jSf%HT2Z@~8sW5dixhx$d;7ks3YfDo?EDwE5Tq *emKJHgEPa9AsS>${-aoh{%uRyJJP3^fK(yG4uGLJ8gVX9L&ol )vb-Q4;6%!y?B-8+w)do{6$K|5kh?u#chq(i*Fo2S^3BY&5i}(|>x&<0*)S0Cl6+!^O-c9LjFRUydDi w6!`@7Uex{5a5D!BG)9vgyX^}5wz>mr`{%kTwmxcP>$W2NG+QZg==Q_~ZZ#a7_| rAxT|<-A!-l-y?kd>>O%KFhgF`TEc9A@I(I^Fd(uBTlHk)q7E_yXbKtI?_BY5#?hP75Ay0K}~^F-%3G s5V#sm-QAV92=Q`?^uCd#H&p+9wz;mTk8>($<5CqU~Z+jGTkxO&T*D%1BZ%Wm=`T8^EBMFt@}BwIM rAqoS5@C$Dh+zeVbUPOc~8EwNsn>c` 3*LD+4KJk&&QqS6GHH~HUhC_5ydo*;jPAT4Uh-=g2@R^pVRsXg5vYtdL+?6A}(LpbKHpX^>P3(CF}0W cs&dXqe)Sa>YIF^8-m~-y9mygc-}<_$s3XC1_R_veb#~yrc$$|P6AAT0Z^TR2B+c$4&SBvsnrRMk1E+ y?0ru*M_1^^3e!nR1qSMA2lXjL0!+pf*Y{q%J_~?gWR(XAS*z}kAl7I)1(;@{cOGl{7h`l?>6T1iZ-U ia7K)2QcTj>3H93P*XWo0}J*OiMGu3atA!pL!q66l8KebN^*+dI2<-gU+Ek1`~*2e4e5w!L0~G@&vhZEFLRxA^}i4~((`fC23OjKj oC`Gyk~01vv#*G$x2IUj**F^Z$ebQOosWFpU;n9Blm0&Bl372+PUU&P3^6|>({g07aESRZf02Qb#IOf y$b|*fBl~P@ZGnh`|L%MS}+M)FHIh+jux6j{HzZ}!VYTmFrVh%P>7J5jf@6aWAK2modQMO-JKfxu-Q005qF001KZ003}la4%nJZggdGZeeUMZ*XODVRUJ4Zg Veia%FH~a%C=XdEH%ka~nr?|DT_t1C>fZ0*>OnD&ZEgk#($8v1FA@t&?)O#tooBjy0H>ogR>a6@T}QNwY{hsJ;=J2_{D5CJ3D(IF0U0ls_XW) YOchl-S1U12z}ii>aAES(W`xXqqaiAm+fAOuC3sC)rbK*9)?4&3K(X8?2Z=#r`rtYZHE)cdi6rqTAl6 sb}!138<(Z1_FdZ#LN-l1&{Fi-nfY#C?bUGXl(t{A?l*l6`>1)a4J=q~sB0nD8$05wLG^N7n;Exqkeg a+4QF8*xUaZHCx`30THB{@;UhnQCE#h8?=S!B?ep^K%jZx3bfshS(x?MwXPd2>_sZG*IU#WYiWu6IabH}PJ6P-Xa}1lpH|_ GPdBdZ>V^F!Y@x7N!%>-yX63;#trxH;($aQC+mG`I&&9XE66>X#3;)zJ4k7_4`I2I()9SOKN~$zOM9M 4x4NL&HDx@(%3ey0zQ7;_ifK#zgB}p62EFTFfS|+_Q+4(sNuHlKRj(=j7`$(FB?5t$Rf9;s@bZKhT5v !;m6+d4t@KAzRY#ro3%MIORd5)T#73-l(tnwzU*-AR@EA)g{N5_`r3~Bq~BauH|kZhYftp6tLB64@fG }jqUr6mQf~Bb@k6e0!v|b!+uNpYrQ?@p=5zi~Y_D4WbS$HZm|0$4UcP-Nn=ADWm{#dw#4LDBB@WEJ@g OFMXQu*fpiv!Kx>emb{7tS?+krx1Ngz2j(mM1&ZBKiW*h~H{Hws7`{%0jH5v6yh<&jiMQP!Z!Sj<@nn%#CJvQny9Vj;I`$=fS_+V14LXrOPIrclT?M)p<);~N yVG6vmENTL(OoT%B`S2@1g;50)b8oJ+A3xa{M4(hgdNJmaLro`bmGaK4rH@`)w8pjI7h5J7tKpDPGz|`J3HH|ohV Teb&Mjmks_L#)BEd1hI#pDBLTUHL?dhf_RflfYnHQlVV_F3tnn|zx@`?9H`fXdk{fJQr|q+aIRCeij^ %TkIgE4{L@E#?VHdg9xTS$k0}k)r7IqH5FK7sJBxSXQ{?T}`Qh^549%vqPsk8vFB;K@*;!WVsZ8coS2 VT(sanfbbd*Qo`Hd7cv$Gfp+XdZQ(Am1{j&vHbSXqbiJB0z&pvY1H|IJeAcBnQNT^wJ#vxgZm^6m`2X `~e-8;zsrBR#yYyQVT#9o)$N+^%gYKnty `I^xmcmqoDLmHQ1h{qG*L(!b&bC=K2NYCGC1OG4Wq-YF42)3@TkX+^L-S{N%zl<%@@!D?1bHI(ICt9q B5jbT50QiP-8KI2yS11>~=6hkYnz(Q+w3t)+lw0QmM^>c*Mst~Vs^gtg0lkLp|v^Y8$3NZ7d0o@M53| jz2fMvv?E24Hof4mrR=6Ja)?@ko7IQp7)T;SO)zWe9zqhT1cim$&RbU2=(Ln<&IBDY)*Lq}Akh5;w?Q 5)oQ5n!PB30jg2rMv-Cpw8HSrY(qKo)es1TE!-54n}9YnlTT~;56%Y4KjNy_p$-Bx?NrN2gBA6kVew2 O^}t-LU(FY?J6Wi<%ug~-7C30y5`^@z_VWciA98;mi{SOX3L3&zoKJsXFc7wWUUf*Bl%fIBQ4FzEzay b6C?U52?Cf&CK|i834^))08$R*;(@5u021I%6U0M`Vc+4gj^|yb!`gmkf0n$=wV{j}E{Qmmzbp8(vJ?QXB Cp_&KuR3NOoU=$`jhuxOfCb==q->A$fv=oYNWAPAAy!f(;wSnkjkx<284+(fKT4P`|5lR&~S?jl8s?7 {>t`i^e4O->Ae?yy2JJo?*PCiB3_^m|& o;K)M*3eiI%J1u!gJI4+MbK?czQ@MB3KCu(G>mR|&Es<8hnBw-j)hgyVXtY1*K?JcR`~j+mK_*AeURJ ;X4y?R%{ASo2_<=fLY_(TzIJ?{>>5@Z(Gb6Sk=z}sN0*62g5d05H{N?F4xNz{3Z?CJ3w=cI8cWrw(3) xqo@@P>a2~aJF_a#Pc@tDjB8{Tbzm#s&SP!tiTw(LpbUTFl-o=0<_dKu6s3r+p@iEll|GyoY9v7JqQ1 S}8KCB?U}N`|y?ZgD$j3rJgGvsG+?rj_R^(xIRU0Hpaz5Bj;E=J7Cn2>{PbU--Kf0BDQ-VWF;h?<{c#aVuRtEHIG?v $OPGLPIuo2El0RnKCZ>sj7>j?c4E0IIKX?sN9v?>l(BQ~+$Qaey7yY>Le!kh&H8ZyVoo*rmek#xUR8-BbozKV=+)ABu8 6N7{GTz-{%8ZU&zG=If8IVMu89dbd@rW>Mo?S+MpxGd{2GJV_Nr-rF9iN=1eDaXaOsplFsY1L{=YcF2 vt@S3Xk+6hi|Csc!;YlQC(a`!cJMjs0Yb`whalEx;%9vtP{X8S(2P=yv~mhNn23X00XpJ-8~^BkHG!i @$fE;D;E8Xc`%R|biTGjW@n-}k@nyJB{#G$xG3K(6J!EBqW}*Sjx~(NvdmE!a)Qn?zr~LopFjimd# ;I1*sNk|#7#?^8d_O$B+s3HxeCDa+_YUrWLm^sO|EcdXyteL05fXn#teW#&y9t)Mm)&E-}co2h7^o9! Bcjs$;5|9^Z_Y)4MyL9QACMbRjYv#xO+f_a!_En1rGJL+6 >=OrUCx>9%laZb2yo`|6+EnP*Kc4L0~vxODIwjR5M|SOeQ#<)?&^uwN&!3Fz(2* F`XZtnF0tE~A{us<$`QR&hY^<3I~Xk_4*&3gemCbfF8$;Sam=Md;O$Rzf9(53EzcIoOQ^p^CBA9<(X& K5P+}vQZQ|Lev=JHo%$v-l`U$#XL+0&)pJSkZTcu!pI*?=6q_ZjP9KCR6cobvi}Qv9Pl6Gd|WA|2Sc5 @W9C;|+ja?aVVom6bdE+*gz!dIHF^5;;kwenP#j6HsGFiyoBDt(UqzFce1Cmhq=dtVvf-6%S~wWm+z2 #RniN;FQS-PZ3C3a!pM$aD7*pIm>Nh4-JkqFl;bLg>MY`gt&7_q5CotGELD4wz$#?pBF*^&-YHoOD8F pTXe^}iuz483_687w5anvI4zw)h9O5Z7oI4<_oaQrPL@=k_8I_z>$B|kCn+l>7^`@9K;3}$5uzAze8yG2wOFKEt (Ua4d?(Yz}$R@u4Lhaeh*p||p=4chh5E{#O_BN0!rXahWP-Nm3|fTv0yq6BX+$(>$g1XisM P)!-O$c$>%U2m{}4420UVA*F~taJq+_ub})L$j7y@!=<*)c{$&zjc_6-|oR}D@J^Ta41UX_ 5^R$k!GV--KSsT7j!Vi$w~wXl*tUoEHV)_V!v10@Ko?z&M(l$bymWq3}0V9`D;;c{O&Ugu*O6CiXCgg L$Z1Xj=pW%wM1^ew6#JR!h4I9&udsX~YNv^Y7n%6^znL%5l*&CVGV0t%&R;IbLJff01EaqOc*;&>yH2 gR@K~9Un9HCU9wBAsVxoy&lAG5SD?S;S$?MBT(}RqU0FSCxm%BHBbjUd*2%icm^E1!80P<5N=;l1sR} ZeGZsmcc}T`EmG2Sa6au3b@k-Mv@*~^Rt*DtIdB5@5!TLd2(e?hxt&y$QPP4Abb^-i5tg}+*5c7l6e! Ol+Srn0VO=y%%4qTn2`cyP0gV6!>?P=G@|dE)!UL4CL&q*fA;cw%9qN71=xTH5(N!YiGnFd#?=^Xdk+ 29*8K^LDc8YL7=ruttiV+`##pgd+1MKAM_uS|CNp%fB_Ez(jK)pU_6#p*851#bT6QkF3N_0Vnv{Iz%f|f!LGvo!Pp |D05;6pYzURDjUGKRqI10hCZ{!{O5$MX#JEQ=2|=QUJPR=5rQOoemdeEuJ)Ab{`HHMCQ;%-M?vAkXD^ wH?%qCsEB^5Ne-Z9(0a=D6Gvp3KNoz_jwiLq=robNS2%OtEVl(zZ5_X|z48wE!EQcXMNU#%+Wsnt5jp G7J&N)B9s;B4vo3kz;{TH}^;85vC5bzlh81dveqL6df09S;=p_jE2T?;aZCmZ_=^Dhg{2V?PF9QGKw*r=%= YCdE16Gx5#hCq@4O|X+3fQGaF&B8_K=?G04nu;;-^XuoAPo6!wd}0n=WAI9X+u%u!b>7uLOgujKJL?7 })@T{l#}Tu|0#WY*+!CYq7rEV%32WhO=h5;^I)2u#XA4w4yEMvW+Pafj2~>bGgidgfzeT2P6dev1%Zn eeqQ)Flt4&Rv9VT;FreuD)wEOhJ#vBnv5wZ+Z#809f{ca(Q_m6ab0}U@=3kqzmBYwmkuH*-w;JB_`Fe ?7o=zRb=0<4uZe)Hu8AckAIdBIpCQrDxoa-)M-C!?l2GUD2SWu!0(14u&LgEyaU9ou$;WHH4g;jq%6B 7;ueJpaq{cfhS(hrqTug6AE9zR}Icc|`fb&PXw`apRDRS%{vy=QlRW6g-{bd6@8%;|!5s&V&s%dNJyA r@8VbZo*WhwJpEYI&q@J+xJs8=o}rm^PQ6D2&{GzEE(m!s7P+D@(!5uY~#ex-L@ks=t59%qMnG(4WOQdsPl>E)TSq0<&{1Ewo9Ew+!RPnU0OK$<(19Gd$tnquVFzYF* ~URLsvZ@$SVQ1l55|sGMI=hV10%YVpzwmA1ZTpBit(KQTDh{=P1|98b&Kg$8HOA%_-x{4cp#v*l-!F) _HZ68#UtX5M_i2X$k?z)^p*kmCO`|n?gC5UOV@d2uVp8cgo6o@c4#`un&Fzk9u^#Rq1pwEt6+PrhG4i K2zFpByL1uhAK<*XY_kKk+4Wdi5lvx2&XPRxFi-=hYMlU$uT^LHkEcNTOGQTqqto!YcLdnIXEAeDDwxSUK3l7j-)> LcBd1YwQdxeyNvyQLe9sF>%AG}|-cUMfZ64Na}jM5S!OYOq+2=yPar+hQDz>Mvmp$yoLlagd*IY4K!@ X?ca?BeYN7hs#aopkjT_Rlr$Mx`#sjN!qNk0vXgg;f_9LM>8d>Vf+ZIQ;9aq(T^xzcKrhQDcx<|~>9f)-Z~m4ptXL6dujpLjeTtOiOC;tyh*_QJ8DojhOkrDWFzq2E^*Z)id% {0!3~nR5RL0G9(iLKZDRs}MlPM{3m)r5@juL?fg6rw4oiWC>x{-}9h_{6*E;2b*aG~gUxDvGs6gqPrycJlUv^8t%vl-t|(s=KH5>fS$Y8_KHP6PLq$dcg%4QJTm|7mb&jlsuBD0aw2EW{Il^Vu?Pq?ya?VPeSf1rc-8%)V5M81CGHc7C@N&L`&awXk^D3Y?dUitT+yA>5 !D10=COKGJ4m#g7_%u_8NU_TIzlM4evl_CYFZp4qc+ukhQs3}D7c4Nw|#FMBrOAr2XhbT14sE+@&Cmc `4$7)$#Iue_Web9%^HrvLLZkRO?Jwk$8@03pV%97 TNR}g?;Y=}pZEn+0^d%Bl{Soj45COK*Ia1h?+0F(eKHW{u87Bd(M+b|n73^z@uE-%u7#qT9CwJI3pq< Gff66WKl<8mR$d;wdzN%d(aSRh8{PwgqN>~GXo#re8b6N2j1AiejsG79B3>fK_`?Wlh$7aYFmm#QoPAG5J< 063H`+`rrl91`cFa9_Yx!$*5FhO2*U!Gb@R?Zh>2Y-e5hMYl;6&{GLyskIzKDoqZi8U>#KWzBNIaT*2 7ynW(=RUf^s(r_m-BcZr*X>VODYRIq3*A8To-qn*QvET%guvjjR3)@03qlQ>C00M==OQ|oJuWi%m`Sg +8wRWM9aQae3_mVMjB2w&MECA85Yb$#;wvLgD^%Y$-Ro`ASi*f3}5y+R>$_V#~n=_S+<9{SB=%saL8r 5o0z=FS%J*8fCu8qV5FH6b8wJYyEi&QydusAM8eLl4ME6EVLK0uGP#rZ3J^mfqFbec=w<8(k+)>Qm+| &ajO$YW0cJCt43nvk9l*@O7wSh`lN&a5(6%;X8#=F1eluL?*mHBTI1-1vlD^lq^-I4=vt<)gw2{g<4! ~zCX8FPRVEFYbqPl9@KDZVVMj0mh8~-?r9`I_4afh)0SnXx+2GO)e^B9mnN^8(LO({Rtc~h5F?l5sdI {Z`-vJcd!gjKa20<*Ws9#u0!QSo5e7v)7Wq^}gpokc!s6uU|%f>RU4PEi|o74+{CXQA`2gvJm9 G{^+Usq$p>;_3XU?PgD@P=<*#4(We_4?jDx2RXx(_=FJbW?XLn36}LUfxq|fz7n61Fh8G?g0T(=LH`J SJLH`jrd&0wKkV#_t=vV+Y0iFO-y4&8=iJJ?^U8LlB+m#3XvK-1tCp(bU8NK&6cYB)MS^=o7aoY`=JJ *{di@GhGktrwx@J4JJ2b>EVy;zc?JbtG7r;U^m&D$J*CgT6Y>&jlzh`(O7rj^{YkMs}C_(WW3udHyPg -o>%{5eWveE+aT_#rsytw2_`nu*pDOl_*v9Zi_@dn>KfN$OgqxrSHt^*H~5xKfvMKn#~sA*p9#jF2({ rrMn^`tKzKfbDl>%$uFfK!t`)!mc%3cS{UWoRRYYAcBXP3TqEfW@_ ^=o#5gmC=VZVDvMJaZ7s@e1SPOy3z7y%OV&zR^woZ}4qG**CR01#k-V{OxY)|Oh*vIh5uF2rm @e}2g2S!Dd$OpLFhCtyAYmM1zKU$bl9aS*`PI|?H1bL)&w>hl~A^xtzwVtfv>?X@d4;wVHj<$?1E_D( 5A!-8N%Z*rpot!{1XE2xl(vG|?McX((0~4K TFpbYkux!=N?MOy`s8YAD1Li;cFAvUkYAhjdyhL0{CdGVErN7StkC=Y+JGO0USqtOwNja@5~J8x)PDy &Dg<4Vg8i14WbTV?GFJg6RY-BHAUukY>bYEXCaCrj&P)h>@6aWAK2modQMO>?H?XZpp005&B001ul003}la4%nJZ ggdGZeeUMZ*XODVRUJ4ZgVeUb!lv5FJg6RY-C?_a$#d@WpXZXd97I6ZreBzefL)oE{c^4R}aNLEDU6^ y`+nvMX^Xz>_bo}v_#u%WKt!mB;IcSea{Sajg>YJYamH2&h>ES%%~e@_ae(Sb*P=nGNJdCbwNmDY>+` )<7czxS#C{GccIkl_Q_8A-Qa6!w_9zt?N{q(8?v6;vQ#$&<`Yp3?ggem1Z=+dV_?W?TNu5*g-Z=jVUro(JT*(fJY+O *QG3h((@l4VBjf!1O+oBh$lk~aU`OCupRE7V5RRUw1Ql)1^8)2um8o;}NV(rlGq2_M`-JpaAN1yX6 ss)MHavg$Sb+mGOy_HBA!jOj75QA1B}D1^ db*;JxI6-whsKs;TXNfFBISy1l00CGUA)$TASiz&Ivwm5}Ypgi@2p7!dBD_6YZ$mnbgL=$;h`6;jlg&*z_ v{#vW@AasGO_2xi#Q^gYMZQPnzAoyb=Ejh5M=Kh4;h^wn%&?#q?EUvCnafWz?7KGo~TQ AsbUOTUEfY%Z>wU31_wTE{^7)cX@xQYA%A^_7?p1Ss0tnGg7h1#!GL9imQJt`sBwnkF$FNwt&*T^CpY z`Xrl4S|O6f2{jX5(HUi8O1vf&Sb(K_*UjW2P&I<-|-MjGW^Fe(e<6p%_=gDpqbE!(y02?5CInM}Ax{ $9_&p=@EW99>C2z!$%|EcZ}Z%jOB35WwaTsct5&)CA~UrFYz}}Be_YjuwIR~tdZ11*O!+ {nz~Ac=+V6$GUBPG2(Hy()weU7LPhkJXln#+C++%}`kj37;@1RvV7A;ADgp8B)Lo%bZ|y2FfDjZ;?$R $-o1}+&*;pO~CyS!3O!aj&QAv~0juS_{zbp!BpJR1mo-s-G?LnU>7*Bz@X`@R;(zgz?9G!)J+w*=c3s__z@wr?p~nmR*8ZIGcezL?ug-I1n9xa kox+j|#UCesAq{UGV}&f=o0;ANkRG$CJWV$|QXTJSR5Q@y5YiNc?z$~B=50>5I3yqQAW_t b3s&^mNaWes02Bi>&HSgkfxfyrc(_rTKjehltIu*RGi*!vm$9NL!eyTLeyj8=X4j@68MEI}>FD75y?< =(3c%QW}K-p4dHox%M<>!t?!4_+eLq~a>|m~wgaYk5;Y!;SI^7OvWLvio0(N34_dSv5P`fK*n*AkpZp >=~-tfdRi1w00VDcVqK7UF_zFSVx~&mT~LUxHDVSIbnT>q_J0FXA7?LP9t7GrfG!tTRY$2=zeMV^5ym #y+r>SJy{P!mHz-xO9KQH000080A>M2T-F6!v0VZH0F4Cz04e|g0B~t=FJEbHbY*gGVQepNaAk5~bZK vHb1!0bX>4RKZDn*}WMOn+E^v8;lud8jFbsz8{uP9Gm<_lFb{GZ($PV4QkHdyy>)lW+CT43(f+VNSza J&VPTV$~F19}Sl6pug&+}jCg%n=E4i#GANh|2}j#}7i3r>%=MUdpYrOg<2U7hE7meF9e^`KprZLJ=_k g1zJDyeO44#w(xY<<&d{ovqu_IjjVUW@jDPyOJHFQV_!p4*f1XqD*eO*q=1+AnNx)Sj$X11kTT5k9qO Vu+JfkpYjN%6WDb@Ah}xaBM9)cVn%#RXi{;_&y`}Ca6bQW#wyr7(?%BH!Drv?5Nnjc_iO8&QP2Tyf1c mS;pgF8cB8%x#Rg)vJ6k#LzZO{w^M46)l#78UNfZC3p^EU66e(g>J>=V;s92_sm)5b`W${%QJ52aM1e 55gwc`O@wDxPA~!e|a4i=FN+1QdH@EQd!>2ln0)Nntmeb%noP(DqDLLJ*p4`RnwBPu_1S0DtjN*ZmT< 3$9%zP?@K)o4aDd_GWjI!l!;5c1VK_Xd)g1e0ef*XXTRdu}in6f@_=SvBR^Mw@6aW AK2modQMO>Q(&2f7I0089$001)p003}la4%nJZggdGZeeUMZ*XODVRUJ4ZgVeUb!lv5FKuOXVPs)+VP 9orX>?&?Y-KKRd3{t(Z`&{oz57=X-eET2dOP(HAUkyHJ`Nj-ZFfVqm{_eW36h*P|9+Gdx$)Z67h4wjN WMq1EX$wh8E2ls9u->Vg;pT-UJS6)7Mz~#fWU?GR`heYb!}OeMIk1mtq1LjVrTUPMwqrcpyJxL=4h4lCbVbr4po36+1%37-ZuF~#gv6+q7q;rD9@js@6V{PXJAKkJL%u <6PPjU6gL(y=w#Qq`0+<5~A1^bqOgOx_M=C=Z5}(~^)V8O04RI|*%+!3$Iiw}9Dv*R!+Ee!_j5apT6m 8zvwC%kXYE@RVa<7YjP)h>@6aWAK2modQMO^Seiv95c003|V001Wd003}la4%nJZggdGZeeUMZ*XODV RUJ4ZgVeUb!lv5FL!8VWo#~Rd3{pbj?*v@efL+4BCV82#S#w)sZx1Zb`eMjR{H~%+e}jLI(D$flnVHF d}*?23;4yiIWy;+nabz8`;|3SS34M?(;Bt@%S)NI{xk)f2h{A u9TyL5tI@WmQj=g_LEav6v(@X2_JH6HO>h}Z!QLGV!%&>rF8{sAK8q5@79ah9_@V(g*uFiP43*+KwR2 R`glSQoTDW+ZX=8nd~B^0)$b!X-X@;*)pjJx1%VWrFe$2P8vsBt?PwkXGpiZ*d#?y1GM8%H&ysg&Q}% T3ve7usKI*ckJkY`d-h`X?4ZJ V?GFJg6RY-BHYXk}$=Uu9%zbYWs_WiD`eeN@|SoG=i5=PO1?kwDs7eagd1=|j>~t<+1DAFvDztP^8XU $R}b{rCC;gk4B^u|1wSGjrycR;wN;ZJl)*DFxmSN?Tx3D$6Wa(q!3a6RPXD?53mgH*JU>_(13j%0_82 oCd9)u(tG|)U%o3ZXFlREvuis*Jpom$Amz=gRuX`jR~*|FfJ`>$pmqh3qy>nJZg<*#?wwp)bz;hftrE GL+|fdhglZtL=87n!K6d`HQEYFCF^~gWtL?Pworw-=<$FkC^p=(N??(J|AOBhjMck%tWxd!w>pVVJzC Z<%V@*3r$Fh`0wE>2yeZ+`hp>Y`@LfsVN7p>hV;b-l_#%zqI@`!$<(!jv%0jx>|0B^y#I=Hn?h*ONT1b%oledGprpvSmS51HzTD>DW?`Rg`;8}NFGA<@(N2ID4tX &$7(%5_El5sl?CN(&ZjT$y}#$x)fj7-`^srvI6IF?)xvO&kWMrpZF9H2e;e{R_pcRAN;x%6twk=UqrL O@1LlnrbN0Qtr>vo^?J0#lAvf-@yc!w0Ew$?ZBCkn~U>qGiW`Zo3&{jTAo?(SB-;RK2Se?z;$oqbWv- ix0}fC;@@Nx={$@p0~OZH8H`d+xA`{0$Qd*WlhO|CC53sE@TbYQsR)#B-)xx6l_foeS6Ppw+{eWWc%| {gLjH+yflX>@CBUfkP}pm}%RJ**84?~Zc~V>!m!n^Zs?7cYP)h>@6aWAK2modQMO@7gulh6q001%o00 1li003}la4%nJZggdGZeeUMZ*XODVRUJ4ZgVebZgX^DY-}%IUukY>bYEXCaCuWwQgX{LQpn9uDa}bOR wzo%Ni0cCQ7Fk*$jmD)NzBQ~%u81&NKDR7OiwM=Q&Ljm0sv4;0|XQR000O8W&uT9g1QwdxFG-l6Kwzh DF6TfaA|NaUukZ1WpZv|Y%gzcWpZJ3X>V?GFKKRbbYX04FL!8VWo#~RdCfg*ciYC5-}Ngd&}I!f6l6P zo3c^5j;*9VO>D1aH)$Oo7$k=hA`pN9P%@)ce*50nyZ}(PyW2g>b7GOe%$>Q9xv#l1iK6IaQ`c3~sa4 geyllIyDDv`DW#v-MH+iwdAKjT&(dC)eMWp6=nKfHgXN&XfRAaYw)+JFC?d`3aYOT_AwdppEPE(by33 67JRhM;nRknM3@@!ERgryvaS2a`hxPx!= Ld!RLcB0>I0E)oS>ntylwQgIauR!>be{zc)dUjP+wC3&NEX&KOTIB`2S!G2F;DM9CnVNfa+Zy>O&Eq` zzCWs{d%G=Uu-2o9<0`%-`}FCS)=AM_zxIBi` `kak;8QT4WH?o#~@zoxqEn(eR`OD~Xw`Z+pgWm V>jtjK@UX_>9HKgk?~u_?16(eD-okM&*aE ?Z_@7IN@g5Xnb?f0NHQon-=28Kkz{DN@i5AZ-J(oPwyEVIMtye*Ex7`ttb? >5s=R9z1&R;z9c4!H>sN^@!TOY>FG;wTm;ow(@ZD@Gr+d9;bgj{`(260D3jnm-v&cEKXLbEPu@wz}>W 4*XfD`tI>6lEpC9a&Re@APr62D>z`n`*BX|fE?d-DfbvwGW$l@Oth1)eyB$nnpqmnfX|TE$o2J3(ZPr )r#`9|yDNML(mMN;#nR-q?o}qfh_eo_SFR;BoU#^s1=OP7uV2GVaKep7X^1UyQ#FTmeBOeBn1Q+M0N`Eq_1Eg&9m0r#Q#*v h$boHquE8XhDrQ@;1OYe&noU)q%hT>`LdF-zP@5Jd3CAQwc$VG!@_sx)>xz)hOb-~=N-0gwo7aS?O(Q _Nh=CkM>a(HMiq8^m7*8h2Qq!Xd^;mf~nj{TsiaL&tB8J%r7H0PFIu;BjLN74TXi;ignCTBpKbG^L;mMG}BS;NX{RadFHsbF~)TLphgl_}sNS~<<@sU*kbGzX=waHzz9^k;h&;j3syE v70e^(8ns_#gryiHHtBbNs#ORtH~2*MiC_f0wc)a_lEOP^7)tlhRT9pVZs#tSS{QarkwJeGa?okRMZX !SqG50WG*9M8L^t&0-0szpsA&`DX?C_UZFS#BALH?4nSm)=Q+#T&qnDMnNyBJ**z>+@2(Ft!zwq{n5m bjv_EoGmj?FO)-*gA+GWUZEC4OdiY%ex^jt6;)!hq2!LDX8Yk#*bS;h&&m%*QXyV{{O!*Fd6#D{n7cO iZZrdhKlO-ag_!P8&GXjQbAhn~j#_>_!4dBm^EcmX~wE-Gs?IO=32cY5g;$bY<4hVO-gK*OIvH_(W+x bk!-{Ww>vO=*C(PK;9R8@zny#~t!+8{Pgz|44qJ!up;rWuk9R3ZR5c-$U5V<0Hw;K#QW7&YV99jU8p_DVMS@FD6#nnOyHz-5lpNYLv| y%%ll$rebX_bNGUs!dJU^~R1uaqPW)<-y039v0kT=SRfb_%qe%mR&O@*iF>*8ridt f)#M67Nd#r49vx4qg0ms)BfZG9@y`2h_eRG+&n&uZOOHoD!GjB~3*|5W&Xw~nDM`on?mTU;wUih+Aur 9QTgF(;cthtG?V7KR6^xbB@m}~m-8d>K@f8xDiLvVOxrK4!0v&3;xIh-$eWau=)7y!*lusg^@#zef>94u3JhHMAY3Coy0D0SEzN5B>S %1*@072=*XM2$N3AK;fbpI8S3-htxwR6V9Dkbdw&mlt_cm8|S=WYKVKUF4mCYJ0yHq#mOvD`#m`n|Cc M`p^VTK_D#tf_L5}0tP=X&T_Ee6$Wo4N{EfBRtlVw3z*}DjrtHeEJ+1ketv;27Uxy4-3YZ33{1*p{1F uE%S(vKL~NzlG#m$z*(J(XBO*C7@)|J0y`S1u1*{1r4VCx04ZVl=Bji9&CbYf*Za^dgckOEci`Pvm;5 (zGL=Dm7b$gnUi-2DtmC aeJBD&m&vD(v{`&g*LkIwQ|swfY7)k-_ci8kcgEur`l_9{9l}mi!79syEYDvxB=}M?O;#83XjddJW)x 08O+^K>vZ{6Dy(@uvV_ze6Ir~t!`a8MqS?m2P$8j0q(vPNgN?$SO|DK8Z%w3kpOPU=pn4wd5Jo;Lcx=44hsOLr8AH|@)}}b521-tLWsWk{ms-934+A(xX!jDk Px})cQq^#kX>*1cJJgQ-k?iju>|ftqXGymY`aLH9L)n&_Mk{>gh(tg!Tw!EJ1kyA<9FU*Vt;Q=^tPs|uzM32DHkY*+bMpq_bBp;*3Md8pH&=p#e?*WV fGu)9zz=hZ~iF%Gu@Ff5)MIGT%UT5b_0kXm9XR`|mOBXF7IRz+!9r#eKjCyPa%h8wp{D5#$5*1>I4rp NlhP2aVy$MqR?{DgpoD`29sut5H 0uBrX>G!O094*nA1jqgMTpxB$!dfmIgqN9bB3MkSdEUj)KlS5 ~$Xk&zh2*B;hB&2s#O%7N`MuBCarVpo=avr+wJlT2z=SMmE+3ESpQiJv*m;^%n?YFEDuvV<7a_WP~nZ X5ySw~kTV`HU@8J=QRxP{l8~ETBum_qzF$;1Dqu{2($)hL0ew;+i6Irr4O%ipBrD WBTb!eVRxZ)&(+3CA?5ykRc6NAp3VLiaPk;x9^|sCq>%2b9+jgVd!!N(O|CO&f#GSEvD)th^l1k@9A* ~F~bdEMbSw(HnT19lYs37UkRq3jwZt;$E^c0lMTzpl@*1_K(Jz~5}(st5%>QBjz3S+^D-Wxv+JQ&AKV kXplTB@J&atYXg>sXQIKLdG(<=$w_v0iZ8*`k%A*mJInin+SXSKwG^D^W#tirZ3{2sv+!WiyzN63x!8`Ux}0C;?=%t&b- rr&!we;#FJM`n7Dbm>v?@__E=?OJloBfuYaf?J4it;(I#^zww#x8@av#oCVr*1}It7u>?|-a^A%%1~0E2MDa|RO-uKCyRelS9RP2I_-}V=CXUh(58rV1XzbVH!!B`5 RK@l9!R%%+`z+#%$V-CUs0y?&p2gFc~{7>9B=-`*~j%VDi3!nez#uR2CF=gLzZ ?<3`E^1hkgFg;N;VMho=UFs?J-uc)@98~y)Fkur!+DRDsj3%Y=+E-vfjy7#;y=Y^3IO`?Io$3g-3+eC oMplqi9Zj*X|K{KkH2gJSC92xz#FDl;A@-GT* >MsJF2g1Cwe7&KuESRU`0EV9*?F7&(IAQIPKkig#0UEejxG`^l)_*4&Um@~r!JWpjR%kNORUHmC!EoFQ05SkaO5Je$d#r2dRzVhm{L&|M6YXLHz8Gt{~&Gi*2|1wKq}BOb=!Is w+(?YzLGhT=kL#nHXFe|y@bg7G(nnMf;AZ6;|3{*Na$_m#6Vqw&J<_YPMY^BDWXExMx&t2Z5*%x-`26 )pMh~+A9CL4HB3!@~h9d+4v=l%9IXr`)#0D=d@1x-J1?}6Tk J4a5PBLr|b_gs-2o8I2ITP`VsyZhD1sCMao8u=ZFP|Sjd;BbY`s~Hyr%z7ayit-@T02MkB5QKuI0vl+ 2lG8mRmdZ=a!j%mRK8~w0xSnZ9%V%*ZKa6+{J4YK1#iNj h`g!`%10@jtTk*#asa~RbMFnxB1@z*qWX+3;X)r5A-0c{0>jA^{HlWX=ga=~u);Z9;l7fr0-)QfqJ4%Vb>(Jt9eMM5FT5Rfknv;$ssRd;0sc*=D d9{z!=9o-Lix(d`KJI&BN1P*Vjz8EyqX-Vy^?j-EzaTwCl>#*{4D+@fqy4|p8WaWfOh8-w|!yzGtizF uL}eB)j9X^#cYRU`AzyFHq!lHDQo_4B6K4&_%JR9gRTP52k&A2$e7n-+3_32A;4u+E`niLK!QoXS6X} k@c~GThz$#kg*75Qy`gUuBT-!6dzRMDCos<9{_@tCHPgGi^hCewkWW%E9!FP1`)jiSIJHtL8=YqJ$D{ yb)}3P<<ZU =*g_IubQH4}g)=4;qOG6?XV3*H?5Aoi#_T`jCs#Siwa!;uodUmvB(ht=8ctDi8L4*nq(Rib!Qo37q;y cK~-$jd1$B>fJ2UJ5*^UIlDyvndz0;*f#O^$HU`0FJi76jryH+J;hJ@*xiN=DAV=Hz}x?2un8G&I3d# {Hel>I%dY%70!SFr)=!m&QfZrsInzF*6kTM#{O)oImQPn21+FyFV|Z{vuz7ZLsgqo2;(~pYw;Waz}Pf Jkc*v0MXHcHl8b=tk5AZH`)XO#P0(4r|NCea~>$8NL+8@a252*I4i7s$GP{LIfDQqi; {}#j6~Q-uGeIr+{ShO8>KgAmIz2`j=*Vulu9orQ=h=+ssib({W7Mq%(N CrZ#@HxOaW!7V9a=9P;30x*7@z)ra5Jbd(-g`ud3jo|Y=I}8Nd1y=LeWS4q3ig>7mM-;#9(0{qx26%m Tn1h|l{w8JYPX(JzcER+j(Rb1D$GpX?h&i}*vROf=cyKmpvXjbQ>8ab->dkjk<8DzhG~oDIMUTsitjL !p(dc<4Gw|jd{A-Bh9@xZXzg(iFspBGU^xI9|VCZ?GwcVd|$G5o3JgJ(~!#)g?0;HOXLmK;l{iDNuP= p6ywhl}XzcLl5Js>Ff=mNPC9sIa`$t-WRY*Z26Uh#AsOkj+jOq`>^aka3givXy()HER!j$ZL;;s_S9i zc{3FmO|rdQY4PJavWhKf7s&37SGvVKvm8Ns)95#NGGl|; YirC5TR?TAsaLD4?R1lP4s2=%IkM+AVNEOnA+L%nihgkl&YkzP;)?#kr!fydvFGwWjrj}L!M47NG$)X 7U-ecBflFSd>8+k-gzz|PPA{mI$^Vr!dR<*;=2d(PYcp?623^7YcJZe%R&q?x*WNQ3de6PX;+28xJP^ 03WM$e}@92$`c;m?_tcoPyBO4L;`3MpBPg1b!D!PJZ8#J{uvn$C&KoqFNC@5w1Hk+x3f4p;ds-FGu{L UZmerd~FINyW9QJ&JM$Q9X*#h-kB0t}Z84gBXWgb;zkvxhS|gUHY7t(->Y18hJkJe?sxu%Jw&(A4jZG ;^mXXYO=lNcpKmQExY(%*|mrV?ShHIjF@KU2ZbUQkEq9%1nbNxF=Mtj6X<@t4odf?L8t5$_4-?>h?+peJFr>%KHH|Q}KlBS~e|*u6(pgun|*$$=WGS(u$io`0WA q_y@rbGi{UebZ_rjy h_|!s4=I)C+h9y2i4wba;@`{gv5gI-8TXtzd3gEZd)*Ca@77OTtI;b_9=%xvA|qX-hjiSj9c&da?|t| o&dJnsNzk0Sdol7leMc*h8*KgywgFw~UQ3Kiw9tPjZNk6Ar dSkvyPtl^hQdt7Nx)sFb6{MOpbK&tUs(3JU!r5q&b@Pjs)UItTD &-<&sZmQel>b$Y)2>vLc`)oyHz_6jtfH 4Cgz_4bV#=KIymE{FdZw;C1VPCp;B%qN`mq2y B=w+@;C{S5L-wa>0`_>v*xuy>i@nJx1)m>g^6vbFk^Uqxkj@p2hx9lObv!!mjhOx-69=o((>FY;!ZYR ^vQcMKKjek{JrQJQ=Xr@pBh2$7d`~+sysrw#<2Q^)qEMZiK-uXoy*SH6ZHs$`jg(p(?GbEcw(9(RTag#2;-_!zPy-1YN}qbmS6!^d41k8 S*NGMqL?tscwzu%;tudfdlVfH&R6^lLf-eBx>(I*H10w|O}%`|z(plN|i;el$nH-lb}uAMb5U4z7=jD c>>Ob6Qm@Dd^%3llt%7w_Rp9kec7IFShGqis9)Ccxp}}`D+6v-@ieKQc(gJ|Gb(VeBoRRx{_rFG>88Oz`T3s!+-*`>|>| cKl9OV?=j)=X-OBOSjrzbcJ*&#u%^pE^U9TQf6IRk;^$ZG2a9NjlHGID9bLL3+Q<|9k#UA*X(;4V;lR^o{Ey+l4$c(ZM|KjZMA6@V%uOUJX%EKHjw8Kcvryn9LD{=3Zv^ ^e7?_%Zsxg2g5JFqgHx)YpZgUO6-w3==RJn4mcRD#d_lzHR&7yzX6+)0(2r1OWvoauySRB~oT}MadgK W4tTxYIcPPoP>19h3=u86E0|JK2M^-wn4P-U5oNg215^F#h_oZE)WSKdCJodX5E?q=u&?`xo)*0x&$H NrqYxaBqBDbgdl9Ep24$>2-<=wZku8q-_{4fui~H8*br_x{-SrYUQ5+ce6_oJYe5+g<>QyPo4JXuMXe -7Ki)@5sA9JCU#c^`J1oLLbrgw0gVAbw}UFYsY}_0(N{%{NN;I`HjipIAHwr?x~b&Lj!JiKWs5_M0jU ={Pa$m%NXxDsy_DF{bpc&dh>L{Iv8?tniOly@`i=Ir1av67k{B;?v>=Q)sekTdx4ZJwPW@au)NdXkVe }gE83i?^Q)M@-uBrFm(|N<(4Jh0}254S U;Ei`QxLcweY|i1Zgx#s`-@mW^UHu;1UT#XZ|HHGo@^zh+fJ0+l5=$FrdSuu5_HDisdWIEfJ$Ksvj|a wmYEE={ZdB#)g>ppdfGo}UVXl?2*9cJ;y3<1p&7!@a=HMH7068;H7uk8|)wtXHZW-zgG#xCF<&pj7C4V`Ua3p`HLt-4+Z|< ciizA~nBx4rx-78kZAc`ZWu*xv>jNij*A?Qx65xB3nZ-;mKN0%VNxICm)xHP~Ue21A2p#7E{bSjUd|N Bhx_$il!W#PpGHU?a8>n-1_=EI92v)1e7?0>r%I>^J=}+9r$uj-MpaH~%f5d#nkjyHY` UrW8lp9MQy!>$NLPY$B%II&fkzD`wHYE&Gc^MB%U`_n)%%d}kfoTkO;>pxWqLMb&2b;A>cK_y2yEVRw zN0(Y-coHsFq`W{U1=;|r@LgmJivSQgXN|gDeewyy9vl>y|(if#5*053}GQ)I**}FUXZP!bj_mPLfpc!-PsP&lTe=K{B?6;AjM)-6z_Hf wM@$Sfd9X7L^JF?%xMw7k&22e`_1QY-O00;nP0YzNT$5?&n0{{Tw3jhEe0001RX>c!JX>N37a&BR4FL GsZFJE72ZfSI1UoLQYtyXQT+cp&b?q4BN1~%jx_BG(LjkTjNTIl-i5`&Uy5l7u{Z~E1|R>?WloL!moqUmM|%mWtJ;xiXzxrB?PpSEtrHlpSe62z4MZ-*X-0rSHFP- &8*TBs$-V5f*AuQB9f_?AOjz2%B2M@nW$UA>p`ot24m=n>9p+^ra#;V*po9@gd59*pb4o#cA!CTxg0G QrViwzJC1m1DOv-KTEi#Wa{&=CU~oXkpGL0XieQrg1A&NrGrhi_!5P+ojkpZ(2iT&Z)SZHohCCJoKf5 Jhx1X$Q_i<%SGOk34&in?_A>7KbD4Y(UF=7y;Mm>M`wvtlGu2>dTQ4~L=G?jRgzd$x0^axeqP4T?GWZ r`rg+2JFZvTN8tI! Yx0_T800KAAcYE>ODT%!R@k)6wb>X3IlJu0CHY7y 6})W6MQj=j@vh;+a5)|Ou>-TbAhCUU&bT+Vehbz043ugYZ1``NJ%;gN6TdLTcx^2gu_mv)JxY(8n=iO#qQs|2Iyv`-AlehRm+Vd`tC?(=A2I8$ME%agf}9)l uJ3(-1oop~ft!cT1m}j}-RqllfkW|fKPcoVIuvGAWn0y@``IGH!MXw)W!&QHDn+hV9-h%4|0IXd(Sg~ EyWWvcntE6{{KB7NEmg!r^tovE}5raW$GbcP mfmXDhL8&N!bNd7~i?bl+Tvb!1eo%Ud&U;2X;C8KU2bBxdKzZCNeLIpJzH3^=38_5E3<<_&u_;6L(m- dg+zP)h>@6aWAK2modQMO*|(m!XCf0000<001EX003}la4%nJZggdGZeeUMa%FKZV{dMAbaHiLbZ>HV E^v9xJpGf~ww1r@ufWmQ6KQMdG}oKyD5KV?6HoUhX+5#q`(by>KqMs5OA!n~?poRI|94-dr>yL$z{nlvSyd1YIsrnAbx7|nx4%SyW@2(Tg6fdPwO^qWUX ei_dCJzOmManHGEU7+3^PcBa}c;dyz5D_WT1tO?Pd1%j9MnyvlzTGbI;nFYgd70I_Gh%$RDcO4beRn+ cYQEKhj@P#dYI$hJ{{0K%oM(}F8C+litARBHiq6`g4^{v)QJWdzK`dwrOjTB*+Rp DKAT@xd8+=W2vkT_In|>TOg7BDV6i+26s>||@7kTDTWx<>ur@*O7r1>UyP^0pQO58*D>2J-ijuv&%w2=i w@0-H@l>f35-oGxJ%sw!K4L)q1h}+07uZr6}y@-_yh*+gy;`&5->vz9wJyAnE>qX9#+UDcgf9chB^%9 Xl0c-hVy+#V_}k%d=KUzn#oGk9PKR3>m)o*y5aa%98?(1X0uFeSOR7_uM+XGsksXA=t~Ae5xe*UYg#b !SMY0rL+qdIFR~OjOTupt&}#uo-K4v)4*n6wFQV}J>gpfYH#aY?Z=!z<7DUL1W^3@U1R>B!zF~U}2|q ;gQYPKJeY~w@TZO-k;+ilFqi*tO(wAlvu&yUS;=qg^*8)suIhe69a1C9+Vcm(kv4qiomJS_=LP|79A4 3y36WCw_r^m!>2XoCK%)mf6!=Ng7Dt58}XA`g&22Nbad*E*r#U6f%@>g3#VQ9%b^H_@eq(k4}OUOI3G _vSk@b3?Vp8_8YYnihNTXS?{;PBDkZ9$Ps_#qbL&S(t%Zjqy_)5x<+@{I&m&v(J`0vumB{D5l@zH#)iDo|fKCTNGM?J7zrt8VR;*no2ESzN|z AR^Wv>j2iX<%Bb$ P6)d~>%`rYfxOFgbd<{8V4MaFQ6GxCBSEtNC@$rk*M+R3(nAgZ|M2c_wtDFtpD>{fqVdW0ZRa69FU7H kt}NP2?w`St)m9@&P25ziK|Evz>?mIAZ}_zBD^H4~~@xN3uHiy%Aw){~@aPR#oEXd3%UM~@bFiu@4Ns RI#2V6q8nD3bf7XLGH>iUn5>k2gV#0W1e?UIg(6nU|pgPa(3fSHmbGG46ho;R2yOX&g4e1Dy8pK`(iH z+*lJofX&K0-Ph93Vl-NI70g+A3nFuvt^8GEx0QhH +_FZ|HnE08RdnHYaPvad*h%#z2zTjQU20L6mvo*Q8Z@xj6pNPjW1WIP(rL4^L!i&p5s)DsJcUlMhIT< zokj935;fUpZ;W{ebAd(J4ly9@)&}?x=~1uFhE)@gUD46 3}HoLqym$G0rXgGw-7G!Ek(4Bs1D-}SAa%R=kBu@J@uI|di={G7axuj&yCcg3(y=Khk~KQDO!dm989w UbDlul*3=U6l@gqv=JnN@|9tars$FZ}ChNn>@<0zd&N-gf#27IUZ`I8wc{EUR(yK}dgtQ*Xu~@j22V+M%z^=o%f<$B0x-uw0s=4A_^egFUIl=C^%#)FeX85b iw@i%|V_8XjF =po`7RR+qHJOh9Q8#R#FS1Afj~&qGi4<2$tLm^fh^DyN412fR?pyEaFlnq5WIr700Tx`Z)TF$=9tK$>Brm?a>A3cSAQLAc__N8f{ R{(AoaWEaCdC+zOk`~;672VYb|ibX4ZR2p{&rTv7Q@VB29uG-DcZM@iC~!&$`k=})#!*9yI2F&v#Jcg _+GJL(N6U_l&6Wt4cL5#_MnnqG^#dk0`>-B%&DF+A0TGD6rKg#w02PF2x*p{VN5z^O$W44gg9|KwRSU aw0KNdN?hv2Mo-!5PbnejGI*Scb-N9N*P6B(zxi*}94*fXrGT>LsX{Rl;l5~TEM7Oo(^_765K)1TaGHlOZI?!{Y(7_ -vHEOFr^i`+DH62ku4bE84?<`c|l7SCPN)i8uQ&};OW5Ek)EYZ3$d?zNdUZN0m(YeG0Z>OPt&S9k^ya f!LJHM^OqCdOW=oBbtY_S-E;jXR}w3R*^;fL#3H~O4s_Db&`Bp!_lTD)%hN_T%L=fcIu)M+tWU{vzD0`jQF3Qw|O4R$j>CT=|A6QMzgpD@&78^xa^zty&XFiT6sn3{NU7O1}!;=|C@a;r;rl@H{NgT2nFM KEmstSyNVP#i!dU;y$J$p7r-f0^kQ1^O4UzzHqWz~P}AA8(cdB6He7ALZu{qQv7R@1}%GSs4##+Ve!L Df=g)qm|DTftq~Fa0A|ZddLP54bBktHE#Qu%y@qLATD=wI&KFZ&gy{w}MJDp`VeV*!mfnVn6~)(5aya @gJnw0YPC1C9qk$X+xqXRR>5a_HKgK#XCA$aX~^n560IR9Z2AG7_|U+@Z&?9ZG}$AZQoM+b-b8kHn1T f*eZeAz{`WZ1Ej4MVhj`mmg?&xda6F=bBn$b82y2*!{-~>LSz-1%7hK@UT~>;AFCK7T@ pkbcbzINI^-(=u%Q!*J$Uude)#v>XgrMH;564Kf`bmMR_=1qcdv24IiHY5hr+gRve5Y+HQgQO_t6I8G 2JJs*!adG3%}}ESN8Gy}kFl-fu8AU0_g~`eMlY(9d=?AWwBJrS!z5h%Rr8=U5n2m5IuLC|ZDE(uVAGA 4}UA2D-T?qw|1JwZK>^O2qfO!f+5B=cX-n7t^3T1k{I_W_KMC;y|V_>bkiZ>?CrO2+3$Y$ 1y#Yk&V89#KJ;fB$kn9gN1lx6jt$)t@k;gMOFzR&jv%;=nEuKMejs`I>od}U;LkfZx^IuqlJkNk`#j>$0-NIpy`;R#$1pp(0PKY!I|%+{t{!-bR|P4umny$9= Dh8rK)pQ!WWa0Ga=oG}J(ddbGi_BbPV-4k{TNJ&aVUFxm{`ULCj!D =WMA8PODz8PDA@KZ6%_+JRw&}xTua2;RAFM~zb42q89?P~m!942@~%_wsHs=j?pw|IxR0%z%|kAYsW( l?bgSZl$kq>iP3>n5pWK@;DYDZ`qI$NEk1K+yFKoYl(wGHqg~IX_l0yzSSRdviaTw*#2iZkg@T$Ao#Q 8H_SPRdIbUYyipJJi@dQL#laOB0kyNjhjxMgNWi??l98jH|D#0?9)}7k)@kC`Updl7h7GELetR&U?^^ EeAvLeiTb$VyX}=&k1!RbA%vj^1kT~`BMT|vdT?MoMnR8B(t9I~W#}Drvf_8LC^vb<&V%_&OL60T%17 0kj31t5iK)Y1Hol7|D8bPcFIGny8B?dwvVu*bRWQP;i>M%z9bXla<6}@yOOJQ=%Dr_HtsUo}t6>M<0* To-@C&Q$*t|r0_s4Ut&^e&}>3Yx=Ox<2N&Yb>;Ys+O5$Y^UP{e?^6GFYPU~RkdKyjN0L 5O2|sEN9JADAA&wtEvuiU_y;J7kq*|WTtBD)%Q(=Q=SkI0ZKDBMv@8mfs9VW>=Rx}du6Nzo9*f-JegD )OZ#0?N+jkl`wik_qP^~B?|Zmf3-U6RB$!@&>T59oMzWSErU)U&u04dha&<`d`A;^ih%-+lznrg>8wz ;G#=#;QY=_nmO6+GT>SsmKyVn_lL_>`Xn$56^uEZ!JtC+4lY((#~G==y&Qc7?kL=3GSO;ut|U8Gi&8cpJJgoxi$CR?6Kv4g6U^5-r4m$Z)5~^DlR<{Q+_^jJwX7^5l_8e(QRNR;mf *VfXjpm7VP0M8pw>9r(Xwqc=YqBU&Bf#)N!Xf!=InGnweyaYJ6YlXs&RZfI~>|ZO71t-RA1hg5H6giU &?>=6NP?WnZwIybO>Zla#L6Pc!VVK?pb<{LzXNv7fdhCj&s5b6yl^PH==lKFewDnZ_J1g4$xzG5$Q2y 3pS)f1%fVT`%m$P^~impAYjoaU=E>Qi!@B=E5w2!=}7_3HhBc-EdjwkVt^vul=x0-(0=Ni|TW_2X1S1 VbAkHjhWje!_xz UhQSEd{ZGob;;4zq7Q-67&7pg59Dl}Jz82>}k9XSuRr|-FWyV;$qBY<9wo>n1m6R)>3rB c0!d8#$=SO{_U-%v{f1QY-O00;nP0YzLg8=Yik0ssKX1ONaV0001RX>c!JX>N37a&BR4FLGsZFK}gWH !?FWaCwDOOK;RL5WeSE3~mn&-Ax}H5G!`89=2R4R8@r#%XZ~WCatMsTehQ83jdw4lYJEsK19wuzHjE6 v23hy0UTzvGYy1CEA=hN&U&UFv(9d%Ef!J-bXusQ4O01{G>sKu6&p;Wlw4-n)%4x;GmOD8e%jkT&En(wiCWb%GhF^|`Z-(=OeE+MDp3)Gq4ikQ}$A3ccGTQTlK6jsGSyn3HJzP#NU!T01elO7mX*B ;NREtyRjLSzE&|!>S3F)z-azN@zmLebsu+A(MHt=wV8mw?WHc4neaL`~7l?Vb-rviNGqzwd>CCmzISW xdWEEe3Ost3^c+Y$KSau`nFgVETr#}fkz@{<7crOIQvMN34B6%p?kYN>DoL$!t({S2b&^A7MqhC478^ ;Sj>!b819m^?&R7Y;?m^R8+w8YCm@n@P4tgz^qOnU(Z`uOSGQ2FsObmX&~J1Wj@4OlvudBV##?#|dvh Yf{uv))=1VJm~rJJfZdEvIa#(_k1}_;CNH8iv#*&lr_6(RghL8JVmY-?iVbTDetLS)9Q+*2~Qgp$jv% RRL|L{+AX?%x1tuT_-3Tu^c|0q8fPb?d8(Q2g%837AC>2952$%mRBj489?f@hYvYn5*4DGnj^-=vdSa Fr-YOYlpy&69G|tM8uU(7z8f|k6?s2q3vfj?|>WLM~h|2RGf0K$yOjv6g7lmxQaQ{;OT#%~i*~I68aQ *S({oge29tpwr;(PqxWOpTF=Y#~6p*7Sdr0IxAvzqy;-O+RAEv?ekVQ8IR$7jC*P)h>@6aWAK2modQM O-fRM;K`X0024)001cf003}la4%nJZggdGZeeUMa%FKZa%FK}WMyz=Ze(R{V|ia^a&L8TE^v9ZR>5xD I1s(-D+an)0vvsSffiV_%_2Z{TV#X17=}YjRLqtpS&~XB1o`)!Aw}7WWh_v%KE$*%9KLz;<}t0+2dK4 _y!JvXSFv3U;$XD(aO1gUJIR-E<+aUP3irJc>M=$Aq53R7H^NlgC$1W8tA-m~a8>u)N2@#IQuxR5#h> *2jyo-%xIIlF6dtFTtoVL=0g2A%{1zvuAb_GSq}0fUD%! rZSmVaEfwUU~MT%0k*ZCLDL?RU;oQFxC4#HR4fY%(K<%v6_Ig1Gf&|!FJaP*=)y01sw{lwh&fJ*p>t* !Y+sHzOyP+T%?U#gptS^b1l=ha-erEdWvWTji`Mj_ktoeDeZ-JWT78PnKM1P>yTb4+7hpUfEnbI&Or3XP$~f^E=?u^nJMbf`5#1>b*q4!!pn}a9;%$G7r%x}qY$DVGYen|Im*G 5I&>1OFH7tq|L0OK8;y^+1FOwY)_?K|so3y;u`deqhkCIf&rw}Zu@tlHU5)^32*T+$~iq&sU`T#8x5{ H4{FJ4BVuM5a$a)p`~FT~I5Vg)b!bsAMhR(KNMoYGN5$<2aNf_9D)L=PLpb2>9Gual+{%Q4q@ylBTaM `=&Mq2N$$9nZ$6rbjdQigrs=DK%@hG8r6*8o^I|sPGW5CpT`Vz)`Z%DNu_ckDU&7IuR}2P $^jt8i`RXTDKITfJG9$kgx$DL8NJe+R7Y_DZ8Zh)+|9Zu^^$HyZOF }&L%6BAPAu_R;Miff8m_P0?(*PSt$EYwSo(1PR|K|bO{8V8!)r97zqP;CooWJ{6Q{nQlQxgN4hn2(V+ H@);>n>25OMU8*Sd)&{Kj@KpC6;?9~m0bh$foj=!Yk#eg5ZXvRlrYi`oAJP)h>@6aWAK2modQMO?^4z xyH>007NU0012T003}la4%nJZggdGZeeUMa%FKZa%FK}W@&6?E^v9hJZX2^$dTXqEBe8cXK;psEIT`i nQ%5f=!rJArL{DZWF-X#$)<=H1h6b$2(SC>p)v|Jmma-}16+**Y& ctFxxf%j;1DwWD=YZCRSG`>tX}f9e40+QONeItjm@~*0#J=ZFP}oq3 ~1HKW9bHWnH(cVJ5039x-^%|9(18U;KIg;xET+M8M}yR&C|vrT68r+2|?Pu&P(8zndYU7uCL*L7;D1XuDODi*n~*jKs&YW7Z+ GNVWK(wo=A4W9%n#R<4`_7@b(@idxXljHH|#mSpD^S9@LUhzMExo p21KS;j)CIbF?z}{rtasz1d@+NPp66eHjvL;8w4%%)9;(kNOu)Jgszxnj$@9EFa-W@-C{(7DseSXMp^ KQes4F^!F8!NLd2bn9|yzNjDsx_<1V#oTr=FJjVgcZC4BDE8?%CB=!D^-Iq*u(T8z=?ZYG2o7dj}vyj $wBRa09UsyH99>xJN_FGG%HtGvtla_%g$Gb-tl}sXJ_4t9X)#VBsrP@tjCXzp0N2UN0v`U^S3`E_943 b>**f>{~s>Dx%`B`aSA_NJUjT0M+Z;StMA5_pT|hAv!6~+Pu`u+U#2Ig=f@{+&!((^NnYrsOp;`xl|y nu@^^KGyh9vlBv!C)3c6}Ctl=NKCQJ9%mzAjWDv;#R6&SAd>TI6%M+5>H4P;fIM5RSue(?JM7K^;hnw ?jJYrU_oZupuv`)VbU=_YG|CqtdRGL%iJkNggV3Ctn$iP$xL+woPpsoKt~>_Ny&ew(g&hE{DdxFOSbjO#ep+gvJ6|khHFN+dV|phC(j1 M0oz`%lX+kLWj0-6^|3_IR>e2ScQTc>~!^oIccDT^1UJ3Amq9>Xf;4dJwJJK#&TsYv$C5?mnDIk^r!P zN8hKf=hz}+$jJFe?BzCj@)()`(6%C%Apt$rbS-Mh*ak9Yw^d)Pkdc5BIU%fiQ^ye^BbQAWhQ+P}78j O8Pdj!;|NVqTeYZaNeKekg>YqH84W2yS+ai5F*NqMqe1E&wR=Z+fyQA-AqoeQlwlE_eeZPN1qMK1SoC5#ySi+@jV}%^ZxhhzpwM5=Up@Qj^||g0Jth4{BlJkgPD|G`x #rz#DvQ$;?L(S^MHu}_dxkOi7yre}**Prectk~vjQz^;vV<%1fSsSbJedNTb&)NB2hhloDQ%0YYY7Cq -SCpFnyMyu@^sg2z(IMEJY_8yQee=8K&2^lAqPeHn)pPPQi>*~IB!#>?CoNp6>n4YkK9saPwY~u8SEm k5Ik+GzF8`$KpFgFVKGI{r9umbDO*(FDw598D43Q80jr@Le+s_CvJ>tSxYAeb7jT_RPE9O)2$-t7-)f (R&ICs-t&=VQLZ5R7Dg)GEnKCYG4iCbUS(jH^ ?Sz-11^QW(Pk|hpAqwhGGjUq$UXtrtN<_-Ur%RNCVnX)(ilyJHe$X=~8QGU8^g3p*q=|;q-mL{>s^^D j#-=`PsHFx*YT(JK*45!aq)A-8-Z^(Thh{Lz+kq!P)w5e(bNLV00NcOs$Y%BHN-DJ9WblNiJX~{4;U+ S=(c=^r5yxPJqf+SDf`v&M_@!MkR=oP&w-KmpsL_r2t8BG_dLXlGl CI`Eukpv=Iifdh+1(iCkjgwo2-u^ZV`X2)x?&=Z yQ0BV_fK`S8nhGPVil@?P4CyXf*t)Xfa34&!wt&&(waZD|BqhP4s#FBOs8>CV^Kz}MAAD*K>Bj#s#ZbR^33w;3HVmv{Zr%2 DPbxGus%G6Uyw6aM)407J#$5$U8){=ny~T`hQkHC!9_z-lclTn4n=NBy2Qb7%>*Q#qtF?5??(=@c00f UfF}y8>A7i5Xa(bDoKmTQjd6yjv#oJv!n3<4)nwsq@tZE546j#ONg;ku)IRY-PxFbtbrQvc9W_=-|r! 5Ws2pxNba#{VQ~`vnp(E^>(nBx?Orzv7y|hHMmX5G9Do>vedM$Q`*a&4jm7~%FYwc62LEV+@M9b$0AQ PSmWOq)jF4Ngg%x>&H3N+r9W<7IL`}4?xy8a2aGWL#EHNXB)s3xojWCSl^gwaYtaNC)$vT$Rb+PjTQz ={oHE3t0VFh`@7z$``kMN5+A39q^6Z&>DhqA?KX;aX9HF? ZIoKKNaeDzq{htpty$Vu0HU)c`?jyE{3g%GvfSnWL*FXk$pv+dF-E|F#3LeIWw=U2j>&D-l;AM9<}&( CD+~$zg?{Yd0DH4V-+^%3i!Y4NZC(_ZBoL~4l~`KECYD=j>lC>N23?|ut^y6on`KpinbAt5uL1LwEoU @KH#z6ZP&k1HbPM$K0Lv^J8VqFLRT%WJ6{bmfxpJvXG$HM=M!gUOkK?XMlZqBW=nmAeQnxMdB=4z?im ;L+bvKhZMGYbRP*Y||ppv{+GgGFUsf@2_WN)G9gs?|h-49F$#%M$aOiTza+Ha{$_0R=mu>mSyajJF2y#620+DzjB{k~e9r7m&v?&FX2UHQJrxaqW`0hB0zPwhjPMydnrfg>05kj5p# K0AMOL=x3WMPS-x^JF1wXT*I8eJVYzl8vPv)TYbjT4X+R{QeJIX#2gj!KdY;QToF3W}bIQvCOwpzszp &PkO@@1qX_L6#E#2++E-hi{(&;1F7Bjhqib)k(f01el~0tQ3$488f#dA-lR^i}m)Zlxw3#Qt&cvUA1Ny%ebsB=*!wbEyXX$6!?Cfe 3MSrGAfK|Xmlst&TSFVk~dHq4`nlG~w>e{}*brJc)2K*f8dr0{c!GzYnFeU6zlVOdrVwgd*lO2L^@;T pVENBVk-l)jIfRna2_x9rTaWMDhWcSWB3hY3tWiZJ*ki7E1j*Kbaus@@SVAKJR`@kVU;uH>U_4&(EE& j=u9ZCZdN#uoE*H}}jzhb^3=RkA5 W4?g@otPs%5PO0an1RL~xu@k4b)2q3S#Lntp+KA!-KOfVHw?57Oma!P$v6|5j$jm>(HM&r0Ru$Mr656 (SWGcTTMnfj(DB?|IikB0xn3&HN#GhoDian~rj^L=q>JVm{`gm9b1jo2cA3J|d4#A}VGjw%#z)-0)@ZpfA?n-?Esni %)yQm?@$9`O4x0v#56r<}Pm_DTU9Fc9WsVVZSzQJMa+XSq`&lZFWzut|q^V>T9V|MQ~!MhogRJa|fS2 3WOXJ)JuMD#pFdDpF`pyYOGUeZWblv71xq$WLiGFSrWq8L&ArS4~C@35Kd0l?lz2+)gur}t;D|EYV}& Xy6}sGTjcqgu_;3nAYj$x*Lc89>_o!qRX3my@Kk7sbow-@jQ1=#31ad9?Q}+)xU?1p8e 9~?E~2fyil^h@TY1y{^Il~9V9qKyf+e!z@o?i&6}|v?amp0?Q90hGYP`w4)G#I v-p+e9U2^(wGPxjA;tF0J0#nG;k*_HDnwTG7UB)gZnKv0Y`GBl))FIM#HlYDb>mfDS*1CC&%VM30)EtC#PZytf7*WTw3UT5-UW>7w&i+y`X JEwBIy_NpgO&M*AF%h0(BFcw&5(nzfXs1g5DFooH%Wb5+OD94)0zTbo=>Ds(ox<04~@kwO#~Qg7g;6O$M)f+2~m-D-2iwZ_<>w!opH;W54;i1^ 6e%EiNgS3Sv5^x%Z#pAZk;D1=BPe!Vg-u91Sdo+8jlpunH_G!HlowTRFu=5EyG^x{9mGRdUZ;nL*C1*A0`K`8)^s`M5J4U0Z3}kr@bPaS|IXqJqKsCyG#w(qt_D3Qa{ay%Z6q%T 57fE`cK07K{x|5{s^i1b-NU=Im*(;;y0tfX)ytz{v9w8a0Z3eZ#jEiMPo32rCt_O*G1Gf**#}N*j}XP l9(@=EqbSmUuFy0&=+s?m`EIt0fN_a16qLF|(_nPvS2^1<8ABKV351f2E-%3@0vK~$IoaZMWMSUDT;+ Y5DYnk>MstfNx-`kiSY*X*w!?iKy!8xp1Mke=W~Z6VP=kWld!9MYMG+<#R?;k`3il%geB=q=5c%&)2F OG2elO7WQrWBV!vU|H*o7NQekpQvR`?FnB^P-=al-6oy*WKXq)gDws0HU}H3CLWu$FQZT6Q_wyHa0C` >&$8L`dB26T4#I7UBiJYz>TtGM`A5vj6P;ef0|cJwtlfJYKHkWd_E#b+@y(##NuMl3d9$mh83tB90=_ YdmacEs}HW&S!{y{3Xcqh1&-ArO`WizY=#?Lti*hyYAp*E@*om4D}7@g_}HM@2eK$E9mxKZegFRZD}% 9n1rS{NCbdE=+?&x0(%2b1K8M)shxe((;AhH?EH_yLjuZq4NN(q26zT&KVsQ5Z5 (I%pgaPY*(IyqBo9m|P>!fO~4`IP!39;hv>Gw~cK0SK+yQfbNVQ`WBZ7?v}=AAq;OveY^uUzPlT*&Z; y-(k}-?;eo(kVF)Wdu)MHgqo;8=Eg((5X;Z`jEBMr$-g1#|nmbcoP*PHTTsz@?TyKx2J4{Ag?*c7OL* K%)6C=mo)5~LS`rf`|fu}v_JB$9p2K)h@Jm{IU9MLCA0RK@z<37^zJpDjv_F`D_D}4Q$jHw=k4eop2| x??F%^whhB;es85)A0{8jn4{I(xRtAY^YO@8hvTF(k0=MT7*#@ R`&A{y-3slZ1Q83s@@gp$2rQH$1!9G5Iwgwyjn@s^1=Quxtj^k+;Zxvz5Dq+EB(^ 0i>?VweX~$+XFel*HYuZJ%oqz@v5{TSKpWU!Mm*H1DpvORqO02Nq1!xUw!K PPs?e#Wo&aJkpbkvUZv0ksoeYMA<_Khie1Phu`LKnDZy0PG3?};y?TP6@FMQweS}uD4F79bHi7v HWry6)R~w+fhIDqq8nH~uKW;4_+nR2H;2#z5EG!u2=($C`Ed`GveBsh2AI>`xrx>wRamvaEm86UWm|$ IW-^72$*?0{RF@heC(!`O1XaANde&}8GD$nHcVt&ISVAlt0t0?J0ES}X3t%$507*%%6ZX)xS}-|yeK@ $8raxSzp5by14*a=mcF#&riQ4=#=rtbwH&9Ch1QY-O00;nP0YzLV7S>nKAOHXc!JX> N37a&BR4FLGsZFLGsZUukZ0bYX04E^v9xJ!_NO#*yFmS0GTiM4q{@<%*ru#&FKoo*iPfri=s&C!?Ekfq-@)6EXTTQhl>mO Y&*5p*mcdI9yHxA?)AnzJJ)qMimKk$)^IXX(CQEH;%N!Q?roCPEzrCzn{16u3(;OXeV@12b>Fp!+ g0+X?$1a6X$+M3REZ-onu7JR9Yz?MxczzGcl|1P-HYqGn+5{-tnTS?3|iAwr2}jy#$u@U!a==meh_21 DaTT^UR)&b_d_{|XZ0}l^?D*+r>6*MBevz#jJR^WQu7k{3N~baf={u|H+vx(@7?m;tg>}!Hq;B)o3L| 7ari63iT3L@q8T!tM=|w{>idkIyzS5RYU=i*YX1s8$C`FW*zznChyw!r?L><$M4?{%A}EE})FXa<1NF0sO9bZVa`;GVFT^L{=z$-uq3v|UoxtCL* ^f`Dw8r~T9d V-`0x3_gGg!!HMTU+$t(hQYwjCCn%wKf(8BN@T1Od<}1lk9E5_L$0aCg;>kr2Zd4Hv0fmp#;I&9fsIQ 5D8QZ@n7nx(gK=HymBYu23$!ytpXAEm$N-hE=-HwmEmsuFi;Ih@DFJ0tnp=AJiU^pdDgFBfIeH)!J#? _W_qeukUyiWRPRUxRZ7Vhjs00`mZ4Z34FR$_Cw(AeHMVKqs-83e!!+Vj8U9uHpwFhVd_@xooWeW>869 KDgla$TSfw|L;B@Bcss;dNGGJEpSJR^||WxcWcXL=#b>|zU+Tiw=UQSeT}zd$R0wz?+rLG0PP;cGwH`3=9-JHoOFH%@@ CsLKQVqU))AoG3T1s+y-$RK=b&E3*Gw>?E0y%1WU$&_8A&+O`^>ywVm+|u&{9UAoQ_dk@+V!E5soSMz P6Y2Z13DmXswsholu^gDtCGl*nf&3@k{;?l?94!kyp-NwhxEbS$!fg$h=;=rf?i*@d@$y|Gc<;8vCYW?-_oIC+%3e*QZ7`pe (abZz6rZbdM266XsEX6X`DwxG{0QgWt}wMg(LT4L9jqJgJn!bY^_F8163YgGw;Rnl#FzcwceDBATScN |s>U6O;T&1LucRL)*=|lX+ 9-Nyj0|aDC@Dpc00a2F?8kZwHmPAVHA9$Ami**O1YkiBjU#UCWH*&Pm?nbP1tt&ddayl!0YKe?7mpvn >m0o0DDVXuL087fn_mce95_VTp6tm1E0+z3!OiKCjCrI6o6Eu*k|2Gm)5QDFH*xmF O_83x+hoJZcDlGb76n_J~&GW&!(^J=ra9zuw!`OmAac`)UDLd)R`}Q>;%{K|o}N`6AKHW8Y=9SE*mwBybJdx%f)ysA+{<0~8qCjXE$-sxa;i!SigfpgB{-;j~y$ bl?6>?y9{GA0=(+Bs%uI*o45*zzuO7Oh75-O2Ha8O~=9rTOszM3T4ih;7C6CO82` J_Y<6Zbf$0HYmV2=S;qTG2YRG>}W3`>s&ItZzk8`Ex%@YTkK9@Y_9a-N>>?RC5(b9Ro9F=W8%7pP6>q c=wpdleVqXj1RM#?mZjGq3N=9-(_7yI;*5jGV)^M|0%+AvvJ>vZbKXXmn15b|0C|?p&y Afn5u`s}hU%kIELMatFgP=PZDt?5ll!Eu^7*#l~Y~%^dauVid&!ds2`Cz8XtMnS!C!MTXCOsCS{dEuC (*X&G@Ulh5;Ho3fvB8;cV!j8Tcc(_QKshcmFFlMSJrvlszF`fccDeU}EPvh6PwJ#Yg@bFK9e*nBtq)2 (tRNWYke=h7ftod-4j_8@?5PuAjW>VSK5t6JZM>$k$7{)(;GnAeozgUfJMVN6vrvDg0r3v@ziUiXYRg 0L9y>)d*5l&~1SHBIl91~I)Dr@l=Fd(WXNncZ}9^_6( |MFWW9`vjJ&Z6_uOp+bvVk6emZf2rsnttDcfVv#nSlf%{D8n&3HZe(ci4{E}NOb6+4iNCK99anp++x> dKk!)kJuZ>Fw62FC7N)sn`OqL3|AiG}gS-6Jw0nmi-@`IfngxDC7MAb`{Br5z9*~W13}$a{Z)udfJ3v >)xN!-D?eiH5t=x@-fbw*eq}kuPx?RwBD|9VaMtTA5cGA13X|KzsW|J6wB06qDd)(Hvzo)MMu3{9Lnm 7-KigGJOMZNNTU51yaaeNrX+p=Rui4r^oo#Uc{H^H3HOa>|p){(5@N;6e-pn{ltMAz#kc(mu6)9yOx2 oP1m{8`{4*y`z1v|lI!y_HsoGE&q!q&=+G;BH1&u9!)>tFTTi3!dJB|B1*(#j4(@#M}|cg`6f(Vk=6_ Q5ux@5VDI-qA`T9vuNT3k({G6*DRB0;B%wbgEZym*Z>5GiC1{G6Nc~92pjbGN-L1;h#q@hK>%8>Vt$U qGMh7Ve8U6W$f<&Ris!S~i9>ndVPe!#X8UADprIoN?+(XCtmtg@QU>+%{7Lo|PLIL-&UyKrd}m WWVp-`^d5mNp@)`m1OLti&d7eC>fLROP^P(P+gUsut%=93qKDkYEl7cz>b7vF}d4+|HnGtrCD_-chz? IHni?}fnV!)ool?Gs(P4y^w&8G`Y8fc1S8p^F`PKf~FJC!55rYfN4_Qp+(A!b?tpG%z>j%%KHlR(9lr Yk1|=>!mGtwBix7$%fgHiS$~esP=9=;;;D;%-UWgx6ZP!PI6XSZH9$nPB*6Zo}*WupP5{_`X3jer&s& _Hx&Cn?xqbph9%^xrA$NBk(9OtF9XBYoy%erIZtw5(MT?{Z7GiV1c(bqG~mi!(*LI$9pTfxg-j3F^eF 6XW3OeoaF1VpN3JUYY21Vjd&!~a0*ZiIVAzQ1e22vFWE@II2G_O@XX;P@o`DJ5oUjhDQSkHa@Fi(8th t&`-4nIYO(ilc?s+{B;v3Z8$5ZaTbZ2U#n@KFtJqcpvd$~WPKMnDri=IlJlccoyS$_*LUZVbF*ypHJ* h_;&oS<|O}QKJJVu-nc63f5Q5TABYSsnyL5CHsV3HMVRQ$17f&w2Ukqy_>W0o8?U-Lo8zWnN|UlZ#=8 zWbnrn_OB&=lqAmkM39(`F}NWgUofK=@7BZxZ66wP+1qh%Oev t}w=M2zW|s%8p+dW=Ix~U}brhWlK4hv#EW$@zDT-rAR6`xbm=_Pvh)pq`ft8v4vbr9tO9;5j&pTBN%T D&a~_!Qs>~>gaEVwVUDlde2`gyjva7D;K@GzxtTsPqo4vVa`wEPQGf<>R1bT2%LXyZ6xM~?dzHLays$vpzMgh}&$E(B6@_8(4D2zmKTwWfKsi2OR0hd_EXOzlSP9r8Bi&18+tx#QJAhKaVGJ%Sqg h2zj1vJno_bZxu=Xdj_kZsy}ohS<>#$We0zL!%UB|ie16VC1)II;1I@o;3nV>lg1Ah0&T!#9vZLsEfk ^H_xQF2J2%3==ek-tBZao|dTWCe$Y)I6~<~*(AZzC}D}$XUByVF$09=?ulqfX_pGkN~CeLW*-s$U#d=l)zIR8UcnQkempGWnv!IyJ$&EK^;fj` rF;L8YJKZBcr$K+g)*s6-ycZ@7IfEwilo7Qs?aQ<$wM0Ik#iC5Q9AP`(&}- aT?Lj_DP{Wu5{*2mZ{82>(VGJxafamrAMgmrtvF&U^H7kk ->K7}G%%!!q4=9E{DBUZ}xg2I>iHfCz+L)J>E(u6TX1izTDic6itTi$^L*rS(cDTXZ>lwxBkEwO@XvX&*q<_H4q$0oRanirE&iZ<*To`4PU7_RPqqp?fcbl oQ6HKVROt>NJeg>}pi~3V?f{p2SeNFk9tdZJW9pO^kwU8$bTPk}kiJdiH62=VfRHX@=lM_ua9tL AW)icntl4&Z`w@;@n8i56b6iQNbiqNkj?_&9bUMaB@ HL|@imD+OiLp^8#}+w`xPjm1VkPgyz-loyFZf+1a%m_CI8QEZ%^fdIfH*VaLrfhI%RGn2Y!OP oWL+ts0lmug@#3}m$zzKtG!()+nH9J$wL(y^rRAN2^FQUfmczGn`c%|$r|bJLODH%TVk1qV^KgO%htS 3bklY@Dl#XB+a+!-DG<(m3TaS#)u8r7WRU9-+#BG@GN!Y~k2U`cB+CSiz?KQ>UtZ&|ScRDQV~~IPG%$ )`%Rppw5+)4Aa_Nzo6_LRQPF-mK4cTz#_ZicnX8p|D0ti_`ZwIM+$TJUL~oj{!6X+m*xV7IkzVF)`I` 5mC4COu0*(Jah3@fxn$vtFZ>ECz9=l`)=F~aoo@L(xyY4MC<4YhcmXRq6jL=@CT|Q(5AsGqMaleO4NT _JAS90ddC4Lauw4s5REZmW9y!RC&!bBZ`9DHRxe*-3UFnkz+tKr=9GQnjOwR0Hshp%0o9Ftws>wPBWI k&f9YOr}VrFq_crJ#bk6u$J6$zT%cTq)%%ZM{GzyF-J3MH|JgqPg@5~ShLF^Q^y9?G^JPmGl_tWLRNG HQ#ttHmcIwNmJ^6wX4Kl!bb#{g^#HbYImPylvMhYfB{8v9QwF%7|f^Uas%JsJ&<(sz{lK9i*9 Y4wMiuG{prbc0zYC3Gm_FCa7yw<#?OPyt^3pl)_}?54jxPVizRsz!-H;N*E+oO3-zZDA9WLb7P*r!u< &CQLDe2cg{00yJWt>!kF(IA_@Dxpnm8*X)p`qAD;fo_UK-iLR$WlFAvaNVeLwI)pN+>)|Om^*EUau@S qnI$45M!qesMVz;}*vex@k(0-}PlI1_jccmZ-G~1?}eXUIj`(R-{VRY`?F(Sr;ixUX4vSMcLNr<*Rvz v_Ei8#bzi4%nq=I&SuH=WLf&E3@4F!CtTlSfb%HkKsG<-aSB+100+65R8v`d3?wW%hqxVTu#&lUCe-* &l|)QT1YqjcSI>ifo{hJry+DR|=z{d{F8iINXcb+1T*X3zPHyP#RPgnEE6Jl)Od{1kMTQ}P@5=o Fo4jO4~XV;r5k;mp1#|**}9+>Upk=(SzEmF;*RXgYR^8-$XeyLJc7g^^1;nuY}+zPl~U8E95plt~$W1 5jx(UbbdSP1nlJGj3d)|ZDe4HG?zW(-gDTZo6aSy=xrb@!7mjRtFRH-lw)Qb?5^9{tUatJHJqsqhxipZIen!H}E#4L;v6skeQ=Imin#S9Sry7JLv7j(<0gmli?xN%X$uSP%v!2pbpV%j3mc7=dyMIv%sOf1GS4 T4EWEi#SJIUe02&xb={Gx6E{AXH$Q~+Nuy}ss}vE^|+T3k(fpd(FI+&l-f_hATVozbK+ -N-^R46lAU%Mu=n4pY$~yZ>wfCR~F!9Nae1q+jy9VRi(Ka*;;|ojMH&r`|xvn^Zb$8JtoFej(PD=c#l ap)NFgA74bX!iG2sb)RJDBv5ag}amE(HKQAA`77sz_BQ84vdBNvKbTv386Qw8*(jYOLFHJ!^h^~HoO! o#$9Bj@_@wytUP&IrbS5yUwK{?86$rt`)>@3aak)ZEjs<fpQMWh1UdgMk-!^Qddc{F((+`UT~__6N@hltXwXq%jTsTfSpuFji1hr(Nt _OE{^f9_^Dx*Q&)YKGUFH_ub)$Rpfln3%u{Hu?tZ5&~0k&PuEz%vf=+G#Q5QZz1$BUaPQ(_w*~x-;Mx PceUU|&1}kBLX2a+<+NvKuPzFdZw)H1~cB!F^`)M#ZXE}jdqsDqfnE;bmSxqEaF{fTbkVBIEj&zVEZq jzP@4hyxl{d-4N;q$ql3Y{`^e|JM>4hNl^M7_$R+xT7fEWi=XQwgVa?JtAts8rmw|D*d>Em_v3)6zD@W6$@)_t0es*jk21#(Zg E**+`x|YIgD^G?kck?)5Iv*ry4fic4AsJmYLZSS`#Q{%>YVfiTAg_5~$oluzr|4#aNS+b~?JFu@{$%~t1 eT07_zQJO>q+ic~M&)viKeiAtnHOn|mtEZ8|JL}wGMx=IOB9%e0X=HZ!i`eY&8fpbd199c#nVS5ArVg>4-`gwsN^_W9`2*VP1w< N$Gv{CW$^z7_3?lBsVj00AT5`b5Ea{i;UWc5$EISc!mx$PK{O58Q OB?s=wxg(gEk0_k`dz_!5@oS}Z!=aK5=Sar ZrmIsX%6Vft&<)d8`WUJihz_Uzx0doV6yFufLp+?@aMFe3h5f C48*0T#)fJ4`$bC>F@|C$~Y2=knM?uTEP3svzUv`Sl4MR5f?zP`$Rx?Q$i2j?Pe=3w35|3WF>0mD_P~ VHFX!6ud0VHS5KAI?@j)T}6sBT-W?j!r8WzM{9*L(P`nJ5jb$`M&LCo(z}w@kD~UKweNMyw=KTfgyCB {JdhVYfk$Uu4bQ;UuT(^;j4bf;;o*nF_kKUag8tO{VH=t6N}2B5MW#pMMGoA>j*qAxDO`B8F9+bY*wK PD6i%OR&`|ToQZ&q5!C)TJgRWH5RkIOKN~g({`q0djCnkTUs5cQdxxq^!)NM`iGbB#T9OW&LZBkYh`0 ?$ij^puWFhV@<89IC;un|~OyXh+WX#uTEy(K-R8aS#NVV8#&7 ^EcQuAb90a5Q>?&r8F`iiW$k)kUdeesa#gb>B|~Gn3OD)5}4^;Zy+Y0uE>p&&;)T;7>3_8FbjkY5+!& PbapO>W7isB;2bqv7^`O!6dy37Cv_C}15IN^pXq}EjE!^><+Kk+aAOzKNEQ!)ry4>&idO4^wNp|rClT#l7VwoGimL^0t7k;*#5BvU0A>bfSL^};>DZZ254%$c)G$GztACGH2ooMGs>#~ y6E(UOEDOdb`N5ps%-?HK!5eVDPYiH7RGL^&_QJF@M5BBPR7S4f;4L==A6*Q4V64n!>LO`5wt%Pz^h=1Xb)fYPKL+CJGj|6G8Kdb;_e5~ b%mg*(lDg5VNw~e7z8+(PYuK~>{_F*rT1`D`CiA+w7dYbTLW-KbQ*mP8@gYMVjeg!fL 55(DbBb+yMCryYE^n9Tnk?YEzOIZr8-Fp(aT7?*9jU2#@%_qFIH#xI1-v(-~dP(}q3wx=M#7K09ONV; v+qzkAQZ@~x>=?I+7y(Bap?T?5d`;p~a(2gU=2`vV{+R*@yNqXKzy68rx4`WC%PwFR{2hO}7G2U}~6U rC+j0#+>Bp|w$B3;5k(xXhp_2fXxZ-Wd@k#qKDjc{MzbK_|sxhXg{#&Xw%dI@6aWAK2modQMO@f)P(bh+001Li001HY003}la4%nJZggdGZeeUMa%FK Za%FK}b#7^Hb97;BY%XwltvqX!+cuKl=T~s)a+z`@PLi!kUCov6l8c=^*X31qvd-3cibIKz#0*6;1T` A%Wd8g00{{UKlqZSx!PZbfqtWkfG`Q}XU6f_(eZTKSmPO^RZMr_n>$>UlzHDlFcBY=K_w}l8no8;ijr k^z_SaQYuglHZ8bPm`suC*#l;+EohW`&yi!Se*ZXUhv;oGtjJf45A%4NFm%SsPl<*Tj8a6l%TeYaAB` (snJ+__CBeE+=2tvIhY3=;ylRuiuqY!WwVH s_BXl%&J-C4#LV{mUQ Ty`3H|Hk+&}>l-~m|D6GlEfZI7W*SJq68$fY?mW-j&jbKrV0QQQdUAyej`K2#I ;ri8|j2314=7C&V;DALUzQz+T+@L#IDbw6#+&F1sxHwXIaiJlLB*tHY_wj o82W3GVF@HLs4pHYxXP*N}puwPz_mzfPPGzV}TvKqz`SZ9Dz?X{rX KMFs+R4(9-H{2(`NhceK2{Iu|9=q@0GAZRT_vJbh$y&Hw1kC<2%f)r_4N;LUM>!0zisyY0wm^g)m)uf 0C{HL7|5*6rJkEc-vCqr4l;t-tdQo%c?3iwU^o+gUx8;Y@JoY(@S#LCEwqVDd1>SReuUNEik@gci~9T q4N2Y^(~@NXlbmxFDdZK1*K36XC>Sw!-GD6x!=9HCfaG-~x(@t54aWUPZ3C`$N$9W9EfC?@&%;Wuzkm DFSKog7>J4pCEwb(VR$iQ+xB2QON52F(043|R={D!G6)P}?$~~WV)+IzjQN7I`aG &ceha!?Lnr~yXtvx!I0P6Gxllv+sc3DEigp;ADY9rHIIaQZkw}219sw6j#d&lijxQj*T-bU$rMzf>sj__aeCOHF0@JfJf69nMB9fWE@7eYc>NuAG@AkHh?4W|NT})IvEi8~h-C9SB4QsAL>4{{d0dQCv<^sH6!adK3cXY_^b9)B-#d$lFq=puA8v_opqGCY-y= (WgR0;7)CgB~XK5@rsVm}N*tDIO>fNv~9vTtH9#5* Ia^E{`}pSjd`eta8^cIw!y=lRSs@m<5wliAdTEr6&xBWO5fX6w&kMxYJ|$85#3;HUc*Q gD$B+`;kl0dT>@DM;aY&TIsX7X2WoHG^7HWQ;QgKu^$qyK&w@aNtDt8uzpBEWt)KR9P6th!!9i)7-*p Jt`yrf!}vSKn0O0+I0khb`gvZ*aXdZ3zAL=tr*cWZi(4^v>1@{sBNC7MY&#!4(&mvXl3TRG&NF4mXT! q6J#hFXD84{i2%(s8lGkuBxpzgM0!ig1JLxBR ~75T~uItD@&bKRIetpc1O>iKjWzktfwIm@&U5}V_9w>p*}K7D7$6Q25W8aFzrgG%)~?Wns>y}wq#c5?OB{GuW|eH&5RuRinf4w WLvgITke4TwucLA7}#_Ic368*iedhkoZL6uJ3XURY4%p*_E3ul_gnZQ^O PHI~w%?o{xAx`W4}4qwGavz8puGDuU4de+&O{1qbXYi~)mv 9I8tyaNiA?8C4sVX@E4QT9d*f&|1N%_JD }j6=DiT=iT_b3kKgcmH55kTfdootwrd&y*nwJV}a!yAuX|W)1`U2>|?tO%CA|QjV{!+Pfs?4 Jo2TU%nEOO!zj@em8>><+5*~W&$c;E=j0{T$Dz=offR?b8kz>))oiz%<%wIcP$qcN;+1pwpe_30?JKPDg&_kd7sO3j7cXKX+ Ex|D6QRp-5{Ro)ZlJ~tJJTVe`XS{yj>B5A7=MPVRwWWYuQ42E4Z_HYLYKB{ZcA`Pz#WJz&|IKM>a&

a<3Lpm`g_PYfwmn3G?7BVzIp(--`W{r2;Ki9PfvJaf1=jI18N(3|d+Y1BLW%Ed)JcvF|5yI7 I!V(B|<2+TO^?%|RkS!*NbiL09_l}QY@A%&!!Ojs6ejq|D3$A3Bm@m~w$OOwC69eM;Xw4}q|5a_EX(8 %O$baRDhV_3F!zr5^ Y2WkMO@#w20(!hv(s-*(MulqWrc2w(lCqT93L+rUpiR-hus)sf~}Lm{})NB r5P%kX*XMZZgGO7Ko6e@+|X6u7f}!bRSRBbg9pj<0KAOAq2%N6rk% Zn@Ao7DZHf(wj9DIzWmrhgXM4lt*j#2oa^S!`^K2o5*v}Ik4HB=iYHGAQai~EQnu!-2-@S(+xc#ssdu &VmE_q^s3(ErOJ-cinxG*PTkHSk)=A^Sm2S}S1tX+pjD82?aF>CD&%vD9jb|Qf*CE3j3iZ@RFJ~?p)K !J7}wT}PI4U+Wy+@EXdqoxBCq#t;(L9PG!Dqz9}HxU8_g!WrmB|t>gL2Ye};%q1a=wPV}!6q8*PUjav LmUq2YQf&=)k%(V4WP2 juCM=@=CX#UGO|{=i61Kpz86L5IjO+*dGT4&g*O}-`F!WIzGUMi6uWXlc7E`H8thQrK#YVsMKw4z=EU 7kbm2QncP8ka3Ud{M<=>1TwP`SPaP-@qdKvMX!(P~S_~$J6m%d)zkS8$<6a`l)2MBOPw)c#jTA#HXx$*f?K@nz-tIea5g?eFsVl OC)rcPREZ_g1Hai`?v@-ynRpyr_f?uhfK0bHL~*rJQJU5hVvGy|ThyOvs+ro>r~H3?9d`+C^yB){~aQ In%t#WXrpuPZhvvVm=YkYv_86s2KP|cum$(kvZS@O-Akh-Hv;g0Z}rT^XOJ|%LW~? {Wu(tzu~lveQ1e&$Ci*^Uvqn)T82Z81j0&T)p@S3ZB$?iNG6)dnOo-6-8fcQF&Vgz*b;x8*Ux&(#yoo }pQW%Hb5!5y!+P5krSW`%!_*GgsQ;<6JRv0sp0#!`wUb2nVpbe*tKtrf{mZj>vS?CEf=5`L7m 2-pey_)6&$5tj7ZSx)MT;c8g^SY#(yYp?4GjM{{zzK2ohDAU&*uPMgSAPp&0E`MF?Rk3_3=BCfZ?Qr7 85ip&bM%771g*n~eGKIWK^@5n0q2rzp{1^#|-;toHc8z#$!=FtKr^uagNVxR?Bo&e(h}}VRs0CqWfFT Bt0|g|f3MBSRa*&QdZ1?O$AwlL^@UhwnGQ>#f{e8$f&g?S;$}e(xlf*x=Qb)526kWL#X3+ReWdNMIly1HT1M5ao#?ksVGyK@0g05XDtWT-6t0R99CUXl?}U&P0@FsLoQJl+x-ds ~J$zvpi|F^ZD5@ea=fq{N@1&d(R6-9Fq^ZkQUOiG!BOqd8-7dk;P~6CTLb-WV;`}`7kT+DV{wf*3oje 6zYa1%++p=qFEJ~8*{Bcs8+GfB6n99nZBWSsvrYWfEy{nkcU*=@u-rT}Y@idRfAIrX|%4Iy8N1KInlOE!_yelF=01ZVbYx;I7|t6!YDTAg?%+ p3$`Hi=22!)^*4hl}FiilcZ942vVY)lDs*cKyX1RdQG5PUN+;>_SfQ7;JcG7>(?LK5(bDz`+XCTU60q `A8Jp^k7$g`+ZA=-3*b+oWp?^UiYE0i)v>X?kuwaAmyCx;0Hr~*S=b}?nWcMx|=i63x| 7X|q@hfoadp0MYfeq4@Rn+=Hg7%Gf!Gx4o2Tdvv3VBH%`pmah&^%fTRyx~=(xH#Hr++}S5FqkGZL1SG!)Vj_PJY|85dw(Xq=HoTc$1nHFjlfXS}d?VyAlh<*oC;`mnu}p1*AYAA;tM(!PjoJH}=7;QHGp{v^0~S #XO07Fs^h{0gKL|uIb=uIDY6D7{nDL5WeZFd5c$;GAcpG<3YU62%4eSB(}oE )`Z@X^*OtF5~H+0%<^sD!%|t9;KLTXZ5-VTA=;%583S$}+4n6{+P;7 N4eHtUmi}(H=ifzd(S|t@M8GoZmfgzx?tGqKAu52ICq#_v!AauQYie!Nvj)C=5Q=2h)WY@#WFK`KHqt qlAm1CWJFV-pq|9LJ~B!1+OE<;uNxXbhtYS=JK-RUTui^xA%(@_Q;~jvI&^C 2V?2-I^gNC}84=|Jib3Hlp^V|i__mNP?oPghB;ehq&6S6WmxuW3`Qxh}qc6VrR0sbi9tDw7w{~?T2tl sN46d&!F!Y6aNi}2HaJ)c=@T&#`0ew|RYntqju*NuPzz>BH4LGpG$9+aUxPh}#&Z-)Ee^aRKeZ3_og^ nn}>&S$YmVkK>eQHmf28YY=7O2qx@4hgNIeBRkHvI8X_s8-p9d~~t>agaG*GH~?-TwZN +6cMx0iaDMbs`i80t6xaxnVF6hd@&@190R38eq`4!RGs_>bx9SXMr+?HPfe2W-qoF)^MkwzS!g44pp0 aGgc&A@jtR4LcRXM#E?keT^>#xR|bfg`ZBAPW(byugpagdghn=@d}MkZS}r5^Qt%u^GS|ncOt3!Vc5sG5HzmE&qKn%N4G4=r#pADT~4>6I*k%tfCVlm+(;z8XrZhtyeiY8b~W<>LAB u-;-mgD0^Z&;vT*)%>e{6J^1)Au#iP^_B0^jP;t{gSK?^%3Ji7P(||i*$MHv3dA+TGF{Q=eAa!Y)0dk bp-+&uX*c9^g|uJ1HEhxa@>-L$_l}ly2-&X`Rx)G06ct?72Tdn)oXpQpReiAG8nxn^$~p`kn2l){Q`* ozPCYf=azM9jjq7FU5z_Ab!Ct`X(gpru*SiC*@(u+dgSCFMOWTZ#JZOhuF4+UNgMkD0iZV|j`)`atH) +VjAZJC-i5-QLQ#fZ2`Y^4^6mzbH3`hU0fJtvo96v8?<{Eeb_@qf8okDSLR4%5CM-#RsaOAqxk)MiLXX_FSmIo;xzgvgnRgo%zW3*xmfi>ON>UxW5lCXLfnHH~y H=z=5@O+=n2j;i{zW65ZYHqSG0&ThOEjLFM-wB;UElRNI2lhBw;oj?2nr|J*0-z$&3f Ocgr}KIX!{#WGYZ^Wc2KP_r89n-nw}F`wc6o`f2##^YqT$8X7xnH5_s*zt}gjjWC@4x2cKmqguv@1HG rD;&-le{6#(R-#jI1S`WbS#1j#uJ+zJ;{i180JAQNGP>!j^0VmifGVWR{=&#GgXII0Sj9LU9tRS6E;( fnf{73BfXPJqb4D|hzXkxbGZOv;N9k=9wKXnUitT4*&@YN&Nn>hIDCP7xz0o&PVvo6^=;QS{xkUZvUc 36TB6A}zEcj&;Wu+XuDoN6(0dkamcwk?^bx-Qg(FRi?$6G-W-?HiJdW|_E =T4}`G(h3ucs~LCuTXJBlF=1Xx@GeJP)h>@6aWAK2modQMO**?0006200000001Na003}la4%nJZggd GZeeUMa%FRGY;|;LZ*DJNUukY>bYEXCaCrj&P)h>@6aWAK2modQMO=9iz6ksP002P(001BW003}la4% nJZggdGZeeUMa%FRGY;|;LZ*DJQVRL0JaCwc8!EVAZ42JJ{3Lio0cz{aduxSS_+r*AlRfX1th_nv20q yOVwrV#~HqBBF`IF!Ne%DM5=x1>49$XWM6`rm4cIPpHx1f$%>y4?qZ^4CC;aWwG+KTbiohXP#$LQV+* DapTjFT Tcze`w`?iZ-5XbGzXooeYw+o&ae#`JbnlDgG0|XQR000O8W&uT9000000ssI200000D*ylhaA|NaUuk Z1WpZv|Y%g+Ub8l>QbZKvHFKlIJVPknOUtei%X>?y-E^v7R08mQ<1QY-O00;nP0YzMmyT~&N8UO(NT> tc!JX>N37a&BR4FLGsbZ)|mRX>V>XY-ML*V|g!fWpi(Ac4cxdaCxmfYm?hXa^Lq?jJc&OS ;d7bcgcsa!b|CFtD=f6t7JL;pxc5$V7P<@0yGBL6{G0CrynzzC%9`@Sam)vFw@i1@9ycrVzKyEo@86e wmge>QgzKZ)LnaZ_5L75WncBvD^a)NRG&nx#7Xx1u0P636iV#7rs*El=IRQbiJ?2)Hu6C>F!T4Z?&VR o1H2UQD>Biw%^Ch9g*wSn6gU&006cN(yWeCvtYO}L(N~RBN_2ZscJ02Y%K`rAMcWM-L4sd59Ay7kD=7 -GsJe02NO#GFke^Cf@>F2T`=J#{#idS6BL3)7{_K?Y;R^o fXe6f$%^v9BZama$k(iPyxZBFq3fCnOnE5kmfsEM6Rd4s{73{X8jU}QLzX`P UAjIy73Ig`-WiJ=uJ^U<)rG;COKmgroqgsmRJVX9ES{A`3FOs-e>q6me1lI?Lnk4afG>%Af0t_bZ$J& +yljv?=hv+oKptharUBp9YUt}7N&cH|ctt#>H~(3v!*_k(^}(Nt|JHDbht9A!AoM@Tp{RYJIgzZKnni{G_QT^F99An~lBYr?2Q?YVuJpZzlY`P}1FIa!yytMrBRiel*j*hksuf`i T7Sn3EdZfy%R(XQy7Cie4s||CZk*Hv@8m|APlaZlAlF2M#EvHV8@i5vDv8OtJx`8Jk~(DmqR{@-#mZ{ uq%gr?3?@`8(^F@H}(zA&YKz0U^v>2naL=pKzevOKjm1f$!4|Sae#0CBf*G}j=#9Y3+ySlo9X(D HgDi{``#d3^qHj$pPEW1S5h+#Z6@&iy{EzE!JcwBuCgp(osjo5*~2lQVRjY82Ew|^rW#hw~n6#oA=h@ b$KMrTV-?Y;&RF4$HX9MH!ZDFZM3Sc9)C2zi6@4g1W6rh>X<01E+{ILhpb-flqIi({~{m*TItv^fk0Y IG7{6aWIy5m}2UF)R}oh-2|v*WVuNmi}Az-Gt`Qu?%GHa&z?g#caCMLujpN2h*~&6H)IkQK`Kd9736G Q*5GUT>+ueJ^^+@!v*hh@>;w<0GsNn?$o(0(fF1imS+sG020s@7x>BeY_My%bKoF^B$a67prIs{2Ac(mKql(PxJb;<_`v_104GpX2MH>kCOr!~@2-S(#H%IZ?s8H#_Om)QR4n&qX(u2m8L)W9O5~Q I&ZzckSsBLi*OBBW|c(tNA93hBTbt8?RC;yD0t#rU5lVUGUfY-EyT&-ekYLz>hu}zb2ISo&2VC}thm1 FDvVTXC!vO!q(n%&;S5!&FV(&Ea7FncWe7D($Owb0Rpc+rakOe~PU1WyDSu@NuSVl9~9#UokJH7*n&$ XkWzw`DZ|&GCq}Nscl?zZHvYk^Kgeu{;*1CD4EE(MIzEfu{94+;t^)W4PznI2C1YUx0K(J7s1H%n(i! b#VJ6wV(kn`i0LupC~EDuAe6gX%e!G&e;*Wx&6e=&mKl!^A1rDb!4~D2fP6@AeP4Re6DbvPDmc;*(F|*^2#YbtPY1Ed@h4|FY8kNl9e |@eXiR7TdzSOGcrp_}%CRWb8Pev~e3A(<-K^jc>dOY3tMI{Z_&KtDX4xP{WY%rB&*_|d8aN1HVh?j_Y BZ%2@l}&85N(!p`=JFyLPd}o!pk3MYvdN)mhT5zLF3|w7#0-WV Bpx{X`!3a7IG%24qKqtCeE$jYEN5El(^H;D+MEz~VkYH6`s&IM#i9b9c?JyQ7b~tXQEN#>u}AF`oHB~?0}oP|A}As(c4zVHub3~#C754-&Fp@DY)ee7-oB=IPhnBAbPK~%HK}-j =m?96YmEILyRoT&Iu?gcDGGjpXh#qMrh|hR5fkD*EaZZ_J^`EQ9c~YD`w398D4n@H3v&SEE7fhb0jHN ~@z|yxTc#knQ4zpyTPgHxXpLg~duB^Z{%ibQEJ7_|_R5>09Yj^-?yiOoH?|BmipBHa9dmpwUY5g1X`Z RFA@%nV&8js?lCBR^%wub%nfRfD*oa9}yL)ROAds06ed6w8AwDw6pc<9*<00d~ciou9hX2vRDkO0 -;&CMm5-C7ZsT++(8sh!0vaHo*0=R#XnRps=I{Yqf&Pl1Mfy295=~Y$HG@K3H#vTg@evap8rn=`NGZr }}tE{7l=#DVAJ^$gF%}@Djxt{4@D!0I6TH6ljZ>gC3_@?~9Jk0jJ$W8J{ySV*`&iJ$&oXCM!;;giDyP @*)&xj1Qi366f`mqotU-gv#o~$1_4d6D|jEHi6DNG3DhT*9i;@%zkhjrAHJtrh-8xA!xD6r=(*uov~0 ca5jeISaaTy#Sb;8JI`IctSWb3$mznR2$iw;y<_8b2`t(to&n;&*oR3U5IRK8Z)`2c{D5P!%Ith_I-? @RCUbz%8R#|m`x+~HV~c|-F98ekUv|QPJffixB-azrM3ASk$ABQ05YTb;(fSGx9@-1VJ2-VrL6uAGA0|>BD9~?2h)AiI;QN)0-)5)P>utJr?odi*1)+A$uYw?)s>tNp($foYVFtsS7wQIsxEqb7ICo?3vM(q%5t5UfvPXyH`fXv+~m|AOB076QRAaf@EbRb>kdK!_u*n=QrpaTDgWT2vrar+5@1u =BsQ97+_pJ$wIOIaM!Sy+g$1Mlk}f5O8PQ8>^PKxl$85r$BnEVxvpumpuMe3;dWV@h8Xm|$D3&Mc!zx E8X`=K~$&Z4)PfnRl$W^k;E=>V+-opqKDR2GXCIg@;S5;t+zF8y$YfqK&`(;xmIaTl+E@11m6^EW{)1 IRU6x;mZ~gNH5~0V~!S-PwZ+k5MZY<00ziK3p8?%fbgelGd`lBW^;;cEHxE;J(p=JGPXdw77I4^o`Dy NBpo&QP&{D9!+;j<4t`F!Mal=!&bAn9)A@?dAU%8dNXB93#@%EBIUaB_sIeXDMr#>?oeop9l!O$Zz+l b}bNCCfdoD!VE97`a2JeTA`{&KPF{KuP^LqN?bag-KfOFNg@y|w^*#iUO{Z4kt8F;jzO>2~WFm7!P Gu&~uvq)Ww^4f;AH{COX9v44A~sF?#nMEIctqmv^vjxJ+3n|0?!M~3tQLXrISNgu!EHBD%|nYGVs2l> #sO`B1IMuj#3ZmDb<=OffN910bv{_u#(U}!<;0GmDl2>Qsa? A;a=XL>zN9BxZGMBR|seyh7+9zQF$O~NnQ3@{nPD?bLttAbc(q=eYaJQPO2Qh<@& 72DJzL>IyS+@m$SC(LJR}p#sMuuG@Ra~mGT09e_AQOp_q|kOa>|}P-e$Xq*`BYHVGwNxFuA<4Mn&~05 SHBQ|wAioz`UODa=7`sK8coAW84-CCl{uJ PV^JfQgGF*D=nck-HTU=K0rABf5iWQ{9oD~EP_$u~yPEpPN>q6JS PjVPIb2AzE&~a15><;JOXdF@}|JULjn+1>bu8l+iDRkOyYA766pk})nj<#ED@h!iM-ElEW+8`>|L2_d b)bx4gQlHqQLp7>@;epJ?6_A;;x@~-vp0ts^Y|G{%L_W7q!trG+IxE##!#wDq6CkxjGO-AvG)rB@;VT wFrvu1m(APgFb_*cb;uX~h-4=_vy2-bcWK8`RBvvNkVq@L$-D-IYt#iV}jgeXCy(2v*;l*)H!Gt G;Nb#Rh6>eQrlA!Kz+1E_T&3}G_P)V$+gPbMOK+-TqF?o=P^lRe6{979G<{R%V8v-M_=h1`|Nsk{S5C zlk#!J;SR;53cWVhZp|Gh4@pNXQ94j(kkR=c6<*wTw^Th@4aJHTbK6`)R1@uP7-t5=Jl#8O9otS(?`hP$;yvKWv-LUD-AMsAR%5uTf)ijW4%A`d(07=c4LT5F>@=mncGO1GM- joDvxuqCEC#IJKxCsZ8UsQ+9?q1W6v_xTRf^wuRdLrw8KWO{7p2UwpQHOCql;tpKIg=08C#ZBXnX<)u B<*|eS><~(&UFSbQ+lS2>$BHf=jgEWHM7OJOCIScR$+&CTfO^&%$KL6RFl#sx{=K1C1wob+m7$_Dl+V s1Je4q}=3ZKxaa{f-#uE+)`QC0pXS49wl2JPhEN`T_qq5u=4MK!qKLC^?Hp>&h-G9=KHfkbFA$I|h13-MkB(zHlnl)9dkLgh {8-9s>U^?>?l6n`HJb>R4!jwFP5%~g;DBryJbiBMZYI?8-ROMVL+&<}y}702087-J#*ayaW#9GFgLRr -)z_VPcX@h6a^u+8cZX?~>j6r6-Y!Ce_o$CG&bD~d_90Ab7F1v6q%Lb=Gni&Zr;*i5@1u9J*L*47903 HNYq1wncSei7`#m*e~oQw8j?0U$#ZFvxn$n`_8 MT>uLF^ZuYG9y^3=u8Jovko{!3+TaZ{+Wu5Sc BDs{{uX#n=W^aXhOJ}!t{V;rLUPv^%WTT92Y&j$S3>(5V!71pfp{KS#k7W8XSaws#;O)JknUY|4(Nd&G;y{UcdTAP&Ae+ eeTxEh`7}*ZZl3*j)F?vH3_+`vp3 fPAf&@lw~F)6>a?M)nnz`~=e7 OC8*i4Zn1h}uj8OjQhZa56x$%4;@H84>QZ-T)<>ykBkf5TgX>L5>NkIoR^eB&ZpgOXngG&jBJpeWtKVG r){WPTeQ{-+9uKwTGIhX%87oXp`S;i=n #K#5AG1vhvCKP>nfKY+nWZL{dHq<1;?08qHTiofsjY&v}^=OOhHh1KFo91BzD@;o#6A_A$;~Y`2>83P zuxI$j@Y1yBC*Kzz>4saPeE=nqb)5V8srBdO4inpQK!Ey&86)o8L@sPs{zK8%Snkr@li0R+(R#|N9t! WuBSR+_=o>rzkK9ZN17+`|I4qY^0nM}lR(KP@)ZCJ_O81P1(pBn$ocuqgE6=LZdKFq)VhVrRB_s=_kw *wY{{d=EP~*J9!N)&k2TjG(0c@SuVVSPMq40P27;*KT{8z7yrec3w6_6~*lg> Nq^c+e7uukMF;8{=}G>zsW=C4LAaweN)tILI5lnVuV-%*YK3z++eNUnuWc2O?j?!`O*Y!`V^bBhSuT< NGdFmWgcRHgsvx_`fdmEd&X~2h_aCdy43MRt#^VyiZk8w&fLxFE|5u_>Gp|kWa2wAw9lX4eeX;Dc!^K7#Lx`s^xWMfb1PHZ^o7p=aT?_ =WcXp7qkQgFHJ}>(+)IyY%zr*`q0ur^DTX)!-hE`c{SDbNq*=xS7y9+juWm6bH=Q=Ti7)2Tt_ AEE9f~!Ai-K-`8<>d*M49$y?3-`1IY|?S%`wZf0gvdp+>Udux_alC%gXE!DWAkl0n|r!FQX3P}z(pZH viYa|n2i?P6>tHiS(jB!BP@5PAVn$h+D&v#?Y59k)$b537?#?OpsBCoHuyW95Q^D0d~oSb34Y=rpcu-LM})aBVCKsChXCN6xw_~9_ 0gEL&)mB7nBu4@St9%WvgImNo?qxzSlEA{PZVmbwK=HLag;ug58zv{x9NpjIwe1-tXddG>@pq 8C$!q-`rzBdd^u$&46pLY|-Jieuvo#%`NeKG(d}2j$OE2lmNO+wxH$s&2faNM)J${05r^X4B+6cXi^i F<)%Olzgh5e;d0a2rkKa$t`y5$Sk{(t 4qrS+6m)F8}tIQI0oCMKt-p6lRL8MAV%VDw|7q87>>S>!k;S*6Tv^2+kFE`uP%Cd{qeM<*IAevz|D52 4kQ{QM^Gxyn9~PeqsoDHkoHhf_X9$}hAx%9+9k?!i3e!~R-FLOt_IrnXTH#FMG)f$`hY~+=|;Z$vFM9 -kaI^_TsbqneAq8XxYC~1`jcdjk}B`zp=cqsEBLz^w6X(cYH%|iXZi|X#hX#wt7pCtO?lATbhe<2cYt }H6QcSnxj$L-P0e9JQ66eZZAq5ennwl^)R%weut6%*eP)h>@6aWAK2modQMO**?0006200000001ul003}la4%nJZggdGZeeUMa%FRG Y;|;LZ*DJgWpi(Ac4cg7VlQ7`X>MtBUtcb8c>@4YO9KQH000080A>M2Tpwl99V7(+0JjqW04o3h0B~t =FJEbHbY*gGVQepQWpi(Ab#!TOZZC3Wb8l>RWo&6;FJfVHWiD`e)mUwB+cpsX?q5Nuz#s#jet>}t1&S 6c5TrwrZ66FnW~5Whh87i)O6qp~@4F)@infz1Sse@u64)Z|^|^<4R2r=|tSp<}_8Q8PiA|@pWxQ>bcv}ku9!{0I={t79Y~M*(3~(> 9D3L8^u?mYr&&%axGO3|q4WVbt7NN^Ktv(|a=6jIN7<{psn>oX9zd~!kE_NlBQ}**O%ve32F#Hh>LzW F%Zi#+0AQxK}ytrjAQo@%`V=~z+D?TgH<_437I`_NN=_Ju^vTwn__rFbz>x{LHj|`6pq;Wlwms5&>`?vzjbE|t}!wCR; @`0n-X*g;jRm!X^uauHynH!Lei=Unkz@$YdGP;{GrIU5krDxGvCEkUJZ *hir^mNgij)e%#>cCJCscL`({6w3{XS$%i?vM5WM9f<|~6#Gk6d0WC(X(oDS}THZ}%&~l$e-(ow;7o+ gWs<8B&c=Vf$r%$h3+6!-Q}ZNy7gV$PzQW0l7t2_k3%}qq@f)i }^_4G_PH1$ifQPZ$9b|qOB8hyg?-myx!8d@q9CcNMeOabuFry%j;hCvc{6!;n5co*@7^s-X`V}y_l*A FtgquQ)`6_enxau0^HaX`&`&%cY$TFSOk+to5Mh#rTK=AKM6fQIc6Tzw>UmJ&~_VH6y}Mafw8yjPPnl kS(aU58d=a{q?Iw%FphCYU&SOUToPaKw-!xiYPBeeVu^bl*LFr)5}cz1=7#QGRyhT-L}~cKyWEO2=~0afbiLc1-fOLNo?Y};9(A*J0Vyny7B ytUz&gNw7xQ?7NPu>6p^esxW=mJh1F%BI8jO>3Hqx5c>bLS-lL%FuO-A!|V974*JVnVTTN _;`mbe*vrEaok1-u{qN+}eI=b_^hF(w{e|XR_+ghWA-v+1HFSWN#@6aWAK2modQMO?}4G}luT008Ds001!n003}la4 %nJZggdGZeeUMa%FRGY;|;LZ*DJgWpi(Ac4cg7VlQK1Ze(d>VRU74E^vA6JZo>;NRr?6D|%=QEFCo5n OPig@SPT$op^SPn@fBd=N5|~U}&*raYB(AHf2Za%YVOm^rM=j6en>GdyCTt+hTWDS6A1&ie9zNMrGM* *X>%JWvbk4o3>MVT{m6cl}&9X6Z@=cZf?r@#(gz=Gg;y4Wm8ppNpsWudg(x1bh^#2E6tO-{T9}`v8%s co@YP&bpFG?Up)KsTs^7xbM>+Y2y?Z}O*i2++j5&`x4JHxHr?jSw>fT~w)(eS+3Jn1JLC7NZ}X}wUWB 1z5O!Tz`K8aAb^~kwri*9!M&tf8o=7Y`Y-+}(JyNtL!DQtez(+HB9fauohbPHn3 t6_7pSNw(^4E*nba_?L#r(3n-nPwB8xu_+LfCn_xFl39u>a6q4xsakd I@NhrUN?lM`-zcG8;R>#?EpF_)~85QvlPJ*E_^$bWKy}%A{3Uzje!ghQH?upO_3U47Q9ftiSkft###A {{_E{O$NS5@myWITXs#`BXh|V$zWE7i!)u69kSGKv2graM;XJ!0@F0C1=Rv=icrPtr#=$Ppz6eys(vRkWet<~lJ@Ey-vf4;nUasEqo`PZwTo17|Fl!Vy2BHsQHE;{vm+_PYS(KxykSjvZcdu>i;?mH!@S-{6WP8`fpHCwPx}sNpc0ax4XJ4H(ELM )2!k(Da@n!@s8QD%8k(mPQpTgpMw;i`zZsOhoOk-{CLI!wNj-a38|OjsPh9T&CWc?R)Z<3m7g*Z50Mg NST-+%q_te!l>)3&%sn0v7;kYAP o%)j-?n!Bjj+3JQVY!d!SZs;{Qe%5X_LI74Q3+ig|qV&Qj<9*5b>W}^)O4O7FjFt0QXjtPM7iG+pvI0 vmIVYz2v-WtqY*06aDGv(6==Bm8OjP6jNO$1mDMBIovyJ<^MN_j<00yOjsqk%BrPKzJvcYwQ*tNDrKQ k-~{OC76x0Zu*2rO3vI*%TGD6vN*#H0_`>7iyKsVN`8dOhTQZgaPfp!GYzhmcd4EPX9L_5oUUN2yjE}C4B@?blTK*i)f$ XG1a08#Q7D>wZxSO^ZMxuVc6ke)Fsa{bjVdu`r^|*OG)LFBW!u#3i32*S*19mNYha05>2A3OwD5W9Jh fDzFNg?ZRF0s=@l}MU*<#EG3J2YMwP^r9a2s*wN`qV6v~T|vzLl&2n40?Cwn29>-$J0dZA)@=YK{`n? F8I#J-}`%V0TNGGYDhzjkRisA=%L_+NZ)TIY8LKfsP#Nu7uDFWPy<8Jpecninb_(9!e!*rrEVio%Qe| D1i+U>l1X^B;?qqeBYKntnyYX-2yV~_`i9Ba1gPz<{Rah*8shDbZzvIW7%a6*O`hVy0y)&D%7?CDRZO }3+C{ptn7(tlCiTqB;E^%)N~essZMWFMsd5}mf-B%%u>hslOxKTnbTyR-$3|&%s~^{MQ9da5KLJXG?> xVYA*Ge^K8NlN&a{UMS09ngc&yQJaZvu7$N7Sm&~!D6X1=%!d$DG&s@G{Y#!OB5O}$>rCHxA3?t%XXr IEj-aHpQFWhl@U=1$jN`;COI;q}{q!C^fN&?XuiE#sXallCVuRAT7Q|~SacY!ORL=2z3p~Qq $q3PaQ21*)jd7g|j+xE+N9%)RoWU<(jOVHWxo*!eH%i!FH%%3xFT!h@>b7&+&qhzuPrC^U+AS@@eSC% J{}Igr1RHygxM21`Zxrq*doeh@l#v6F;lZz%5W`y!pkp}?&~1LirozzRkjPj=XJOIbLDjc ViJ!n0!$B;E5k@Qm5a|g%I%^9}w1IGs)6AFSM>2e5^6}te<>bnss@QLihCk-kl9Ja4)qEos-kB`kS!m mtY%KG>*rx6av)QU=aQ>SF^?gMM5E3li{HV1#qADNzmeZwL0@Wpe~Bo5q6$fs4EnRG6~Df$*v94QB81 j=?7;PjGB(*5EyxY0uIWDlMUi$ bTdV6k*@lvbU5WnE5*=P?63EPqNkXMHek+BviFITFd)p|hVTVnX1@t*#4TnG&OdRx7F&iD_5QpFYO~2uV6vrZe_cH#)D4x&v0hnqa 5dL63lS5QgO7q;z-XQry7_uG-{#b(gbCOpY)_6D=xtpKO2Xf)D8Qd5A(8oN>&jgT-Q l14KrA>^qMInw@ahPQgKv`X}Ow~Q$idthNFnRFS6WqMv2p~L9{Q1p3OM_3D3DW!|hf{BYH^rPI=N5P! *4-~H&^##U&CtS3w_HINM$z((t4wbrxO3!9eNFgr-?(EIAs^|I-RhwuMU^EvI(!&KS!VLl(yJwG8+sGVAL#yruZYv%)ye|h*6)SJQyUbEH9DY9!jn+quv YX3%eGP53?`ap*KcvKZ-M56-j^uzg4tDnFxb_I&ZN&6ft1pK|^ccT1Fl(-?UBLh@r+6KEDxO$U`@u>h aC$u9UQbIbIb>KdVw9wbPn`!dWpv9wwg-r)Cg}*k*Tmnqvz};O1H7>-HqLdqqA1S6+QC%`XxAjI*Dec h=4Wt{yIEyi-%y!eoLl}a^6yV7V?)I66$v88nsh{maar%-*!MDJdCoRO1ImVXw$5-upbldO45I#YDKu _Wz^Tab3dZ(P(SGE>FYc9_()jxmxFSemay?pU=>=>0kK0nL{;cOxJw%bnmn9g$_EVIWQnpXUHXp0#9V DgNJV@G59h=-m;is<-W82^WIe4m>8_>6Y}4DW$`ClW#{^dHXmj-bQ4 9KUkf${AAX;_8Vo19^ZOc%pvRH#tQ395(SKkk4K;no(Hix9CzK!1PxmZFK+=}f?)sgeU#5-*8_a|fj*_46YzJ=(UCXY=Vs5fz5!>PZv%%O?2sJv67;I2#F4!V7%8e9XVe3oH IKryhl-pwnN-NET2z}n)(?a~#vI0n6+eTc6Uc<06IXv%zwV5G7Xc^>B4!gu1_G=G^Mw$ig2{rAT4{LP R{Jypqb-BL9nnF#=nn3iewR}g1MQljJh&0`xYm^Cf(-;TqdOHfsDN!hLYxSZ=TD!Xsb8>>2NNeb*j{R mEfn?=H^?xpc0K0ky6m<$ZC+?B!UAD$#Hq~Na+_HY3zgXJl7Lv!=Yyd%c)mTT#>FPHkE{v%bPXp$#Ny 8{0z0sS^6#*e+FWCaW4xM5G0C8!dQkMoi>q;gXH*}#_=8KWzS<(|Sz&lkLHj^a+ioO^(H!7N=q}^@xu sTlsIkK5fldBF%bP>&gmV%wjM;8LLbu>kOQuJQq*KquQck{1-q8wF3}i%Nf_@(qG<+WJXg+Tk@;q9C& H+4L_34)dIMaRLH7v4?3xA+F9FOK@00y(pGsZi15FRll=flKAiV$TUq1h!uuJeK+kcpdn18cio~VEZAICR)@G6?f&TT$Zq|M`jDZ&9@vsCus 7MKxf}vss}5%;m|OTbkr$nwCgKeHC5Hz(Hl#b=CdP?+aZXLl18&=Vh6G1REmwPgL tGMeT+pj0W4XDiyo+>A5a2phF41f1KuB=~L7aclFsgyFHp#W;f;OgafIqa&a{QhcLI|0!af*8BhT%*}XSLB1QK2co0A@{&Ge}X h*&rI8lfHZHQ;grG-xA(_?EBXQ%Z-1Zew(VFSa7;^BN21V!2WQv5TF*YY{H5SxuPp?H8|1aG{=mK6hZ `V>e6U;IKIH#zZckVhkZa)h9o?TU%HzMi-CfBhJyMxT|IN?po@X@1<8nt`&mPyx#kU`*idM$vq$uT||n32mFgW p1G!jH`b?mMyL^qc|ku65B!0tMZy+;><%(Qn!7 yzzfI365Q%>%v8)O=@tOIiJv@${Zkf@jtk&7NF+IDc`fcvrf+6nrgxBbgS+aaea^s`H^ij3ov1MV;7J !4yQqNeEj*7zFH_t(x;bKqDsOMWXiT(}Lo4@BA=Xor7%5VZeiBn&u{i@kqTkfbsuM+hYdx7AnPn+-yZ #@IQu49E61kq=+qfQHayrDfBT1qYf>L1?S#7A!dg6ewX %g{3#%s%IK(6UtrQ)^OLunr!m5QC|mF%SS39B0K%soE~b(Cd9{^vSr$8I7*-ow&KNEqaJl4!8>wtkwS V%@@RMf&L)i?EE{_%*L@^Xqi1}qgwP2xI|q_ha{!13lJTe7Mykn zcCa|9hrAa3U``==kUXG<%cEN3YI)|GF0j4BLv5)ERhS;w8rsOBARG3CoRwizr_K-v!5`-sMm{qm!PEy9mS^1BcJ8>CM!?0h`Tk8_Sc_l2|G#f{wCmvP_R`)*&RCzur7{{T =+0|XQR000O8W&uT9!>G)@av=Z!?1TUSE&u=kaA|NaUukZ1WpZv|Y%g+Ub8l>QbZKvHFLGsbZ)|pDY- wUIW?^G=Z*qAqaCz-LYjfkqk>B+z5N!EGIuzD+C3QJo@p7BZI^K%2*|IlrT#5>Y$e{=e0%!~6dRa9ML8NbQsynfIx7+IPZ~JcO02luDZod_Ou6q8mtmH5|o1XD#+j? 7+_o7{OeX*^Uw-rvM=mDd;7k8o^q?tl{Up4jWEBopY1i2Nd&^#58v`C1(8xf|-nbb8bEcQEST#0 qCP1LWJTt(WwuY~j%%NcS*0EJQGYKl9UBrv8W_^g?#cy?`~>UBAL7J6zS*@IcBM2=5ZG1}5p-swtM$a wBxFm-yvXJM{Zm_RU6!h90E4iT6vfC8qJ${kOFo`udtie$x$~ce{4QtN6N=19AYqdDZt_uOHJK)myQ8 OTT#z{8KA;TSNxH?1xR)YRZLgX>Q0;iJ8^yO1xKVBFZ&>?e!cLa-Y+ ~ROdT|mhSMIN(z@Gv+PC;sF$XMN_x88s3-i_kpGlI4|9nCYfs7ZBd{};J3 ZlR=u!XV?^aGze&y#gss2@8TuV4mOfyCnwPSKR^_Viwk2qzzLK-(B|+yK%cuU5c#@p>S13F)s3MNa)9B)a R8f2ZiMOd1$`TDZFGn`N}tqxK~G@8VOKT4i@IySYg>R+?vTq%`(Eh}k2Eh~>1yD3&~z^iiDy})b3xCj h5@&{XnIkt_D23KKzfY=6g+yhst4Rh!pFpA!9$dn;E_U2vW5s=RfH{aCIb2l(`qGq5Ifl1}MMuK{8VY{u@{x&{8W5H@FDRH &efb;OO+DS3dyZ3ZXP4MH)c0N82(;Srzwlsu0J3B)=1(feX8!QDd^_TQ)Qqo>pmVo9@{CW)GcyI}LI0X=@{bhu(_7_NsVG$MR;g@Ky^k$RFx0h`#$Z Ancua-UbIQ1?7MY!hJf)oneL<-`z5ie^1C-*|tT`#Y0;t@L|8PpNj>?5?^MrK6hX2UMQzMY~N&2E^Pk 7qY*D5!4FX4(49c{AE2r%j-^Cc{G8pUkVsgjUK+PZ`!UmxFO||@6}4la!U*rw%YDXWm*BGbvMrjT;)q rRYg%;DU^X{Eaubf;(zGt+#`LVO@f7@z5iAd9A4``gYFL1ppo+}XvZ_L3I`gGsIEycy=ed`TwUIH(cT 4^;me?}w|3Cn`yLX;UrMBq|0HOiUOVWPesLCbzuwi&s$5rf13r$5d;O !a7-a_p_V-TVpDhb8#bPUF7htcgZjTmY95qPF8ejEV+ZupyMr5G-K-{tCR7H+BrL~?Xv)R4JjSlqLBC R4kNu)l!&8jHAxDB2~9F{^np_1cDXU4h1yh^f~KKlr9Ft{Lqmb9xxH1Qw)K|&_`GVQ@X@pM0$W|oPec8Q>Gi+c9?kY)Z+3=2wk8OHbQY>UcN-pdeVdlhGrP^87?t&!1*4W=``Oh b9YyeG8NQ#BS(VU_YC*A00WheaKTXEQ-$7uOw0TUZ-?|1<6P9D@LZxL`;*6!@5kDM^zcQ6jigyUK&Md h7sp<2$6?E)6DE4qY%hk^NrmX$u$!988a9F;mFR9GWfcpDC4d6f+oV87WaEn)XG&A{HEN*r*c5xCGzL <7mUlj53HjWM`4$4Tl>Nd=RZ0d54Q*d)#G01E08lYJkz5ae|;{W=g=5Y*a5uLmt$+ryvPKBL<<;Qxr~ U8o#-xkJFl9lnM2eB4rYA3Tm=3PO%F7pUEBg;Z4-HAtGNu*{O3K%k&!fJf>b*k|tE4)msiheGfiG5={ t~OIixoD*Q~#X?mSA&|@41kpYtb)^$HV)8mW(Z(ZEf;#t}~%ijI*w|@jH8bfzk#R8rg@wA$9mcd`>i) 8hH3p0SBNnuiW>_F3YdbVz=8}M|7<)-k=PY$iNX@|mF(r4K>!e9gn7O){Bz-}hj0yZ~=8DO>Q1RD?pw FrRywrkJfRR@Uos6sJtSKU-~Tcj8XspR3U*R0Sp^pVvwBkQ_7=Cnj6Z=}*)W*P@{iDROAjNG3|5*mIQ j};?Cv~Z5La8>(wD`egU$@gdz#kz}oH)9ZfrqNTiQB9JGiZDqr%|LM^=#3u^brtBok5em$&3#$*E992 T>t-i13ef@)#nngh^7+*~yWESW=^pSa@UR%J^6@zzCjJ3pk&0S8=66+pyW8gT>|MVTPp8rhKPiDT{3D WGlCt2uIE6V6IABScNrnkNR9;d*%v`--!~c0XNr}n-3x)ptM4?DLKgNKLJwb7eFvl@wM_{fF>_uG$a2 Z<;j`e5~>vJ!oZX0l>Yp!x!UhsMiY<3{{+v+SE2zB|F`)=6ZWw<+{Bf FzMOQPaRl@nl&BEjP>^~L;oGmf&+NwmaZpdFJLl5v(u2u}GaH8@={_f6{AgI`iB@qcY2F4Pe?&OHmg` Ygne<61 OOKKER!8}&OtU{OIhXEp%*HIx1p@K#?3ddLH?7G(Re=^)3nLW-;d)aq9GLCz4U_~yru^NA0ZmY@z9RO PN@{TLT=m|sZb9x@_j87pVVLpGYTbp;TF`mAFU=AX@h VYNY6V@oXpLbqI!q~s9sGBlqo6Ja9ciEn9>nZB9A~GrPK?k0f(e$9LkB^>A}psj4 Lp%!p&Xo8Y`D7k%0e{*8@1Gci^^@aH>Zp3PSu?cLRc%5J)Y%vqWI2Y9xOGSJaN1g>MO MB9PeKya&t=e0Vb}dgC)p}9BZ3Sj>Bcvp8PH#-lfZw<-1#E~d@Fp;bR?Cz7y2{QMi*t;G!M}_1DL|?Q vMjDe07rI>02r#)1jfGJ1FXG=oX=O7jaKg$_+^4*D0F5?y`kM42SlbrG6nKTOe0G`y~U(a+735ZvB+{DNuF+uAI0dX-cAAdGXi)39xBzkJqS$i$)K<0Lp^LJdGT>RqFaxGJcP e`M;42}9=s4}LdJ_Sjd<9tXi-2xiC5s+!FM$q$yTy90D6JX16FdmL^W7Vm|YS(H*Z%HhyO63$JkCexE FI`nu?Ob6VGvEXIkK7H=g5YlKS$yQI%Yulj0O&3pLk!3Mv>bX2 S_u^DVo*%5 COo)~tKCwV-N5e8(wgU#4MA5IY%P`Ey#V1+b<|GSeGbfC-KFN?7UL;P1Uy~@uIk(S0&SLHCwKbb?sl^ S@ZdFJfW9MH-c?zY4ev#g |z{|BmSu-wZ{g5nnpVA`%GF@>u14dtzP4zY!vR8yGmI0w3+m$2OeF%@;JI|f$&z_tx(MY-vAAgxvNQ0 -*^3b2Rm-p~D@gEn()kY1dleQ~|Jq2TNTKJjri$u6`A!aCiFGk2dZ%BQ!zRbdBZrn0>4^we-f-(6(|b S!13mdf+Gt&oSZ?bM5oM%N5!=SY9IhC}zAyVcfFkmg7h|0m14GY3bo-%&oS7t}6a1HJN8u&ldA;gW1E qQn9XG1vq4;j)1>vCPw9;SV&*nYVI`wjk@-oGtjT8QL;ngw{88TQ#&LVlV;4nD*#VY1FwtI~m$518Gz a!qMs|d^1gJgddZf#!q_ZHe2%HlN1v_y*-Tq(WV`T+AQ-W`skh9Px}&Mg}TU0F}96ZtP*7}+j9)wqr_xkp~5Ldodz)*{*8mzk^61@m|$Tb9N-DzEo*b6D=uMR;c8bXPNiaB`sgnXY?haZ_7GhI UYY$6;%u+FdeQ`AJwS9B=nZQvGnN$`erKd?H5x?Juu9p;TL>i@~K`?!b#@y-VTT57{NdO(15_#8iuF# bJ&J9EXz+fg>uQ;|{JDMQFX8!t1pcQM0qnbfnCbga8gUxq!3Kh&tdxT@BFs+I%6ijJ8}mj$L9>rS|+N 6pXE)OGw1HKZW_x@pYvAq=njT$5W{)4Eq7bclhyS112~b!F-lYrU?b AKQ>~Y=&vk^k<{TSp3{gZ9Y*-_Y9ty^eyEV?&q>l@8XuIB7pv82_6XMLU;%cv>NvB-@(`!BYTtBv2Qq;BAPpo8Pzx#6v2ZHm^R>o@TH$LPzD$&E7!{eh58h1oGsRVa_ZZ cSxO^P93m8t8B+r@LbtvItMgopQd*i?$B}mJpdcjS)LtAZt1z%hXQW(n?VB7(B{;28=>+^730j5g6Wa D+z|Eh)G77gYxx_yrRAf6552%tW7Xjac2TRA9V_+)-gs3$o41#8q&sQ9G#LTn+ql#O%3#&WF4+|U?TG ga4o|%)NrH()u>m7r0318i{n>}yc{QZ>*k@pE_yOOe7))gIMQJP2v>tgI+Z*xw^bXb%^xg*+5NfUt3@E=B8khDym$*^U)~^~d&l5h4YLR4SyX%$8`$bMf^dpky& 1{dIi?SCupVTnUk_#e;Bk9K8Hq-vE>3ET>AUpemtKEzcz6<7pVnJW#-wzs5u)qVy3EO)vQQNAesN9P` awkhJf1ede6`OVsYwx-4kqm4ZDMu@H?rL8_5YIeE%1=NynK>2Xb4??rJSW61H3qbKy05qzNMc;m4HhQ |Y0h6Z7^zzd4((s^N9Zy%QfQ63;DTBAPo5CE+10U0XKhbG?zv7hhws93ap>%axRt=fG65(9r=4urvee (A*c(Nb49Vtf~K0RtweF{urjO@Mr@+)4PLR1Eq@1@#PhPmJt27pU+OhunxOo$=i%A;7T+pDCg8me2_ED!hxTY7+NhDx8Tv*{%Ou$ck>LPp5LQkCCiU8} HJv_mFft=rfae&F=1keYDmWk>HM=o@r2H~L8BT!6zzyQu28ZPc>OsxdztQNbf@V&m-P&p=Eu_bCc8** JOZ(*I6x7ox!+hQT!Rr_l;U11uqihQKR6F}HPf#5_DL~)8G8(jHRB><*wjzZs~#am#24lzqR%9D->B| R`6Fj?YkWa4T>RgT?Kk~m{(nLF_BB8AAaRfMvt%S1sDp%Hv&7NI$)oL`d~ii3rUSdR3jN#$du51e5#b gP{mLNz{7`Xf;t^{x-4zBu}tE6xUFXFJ!_*u@#S+epe>xFQo&9qdYkdWrokg;;w4JSx>Ni(Vt%538&NQ6fH(+vUcw@*snMT!X-4@hj%(`AC|@~e82aD{g9 DuSgs-?!1_BxO<_H3DiV9iSMGNkCIq`$dE_a=X@#wx@Kp*Id;d0VFPBiQ7E{I{1W2uc__S6OXo GNtIb*8;kUZ*bkcA!@4HM;utvPrNiw)OHBT{sRf;b9;O1?U5?stZ<^<2_as59l!_R=cNRw%vBeI%bX$ #qDk&Pc_E(0smo_!9R<@k-MRDftpypxf_$H0QUVIhQNC5EjV#jI$)!l&vd-r4HH(k>_bCKP}JRy!i;+ iL|y>0t*miKM}qmb5a9-3aPMX!JAm&*MWGu9*QVjprNCP!EbnWHCyK~RLEqgy_rteC!P=m}XLu6|g)I iY%@qg2Df9v<4&b|gY{9VAV2cl&`{eMoy3-`OZ7;enC(*{Kavw)b+RL@Z$`_nE4Ae6XHoC9VUCH!4h0ZEqsep6AVTpXYk1i6MsmnzGRYg&CBvIc*9nl#$@XM~d&30QGiB# uSIrU1zIi-oO*V%X9>H8SyX%0t6F|vX8t5ZGWjQ 8(Vy(ZIWP-lJ|g;=S>wsj-W;(BPCu3F*27Vpp_5W2@O5t*SIJXE~tyN7H|2P`x&gl$goq80b~u16-iq f1FVY|*09))8W8V1N~~60lF)fvqNoddamwXvM5{6s1K(@dU9+4`)MtH&*g&q`|%M^3Z)bDMpMSsQMGj PJY4x&ppK9RehWH$Uz1F;=;xFZHCEWe!80w=v59~xoh3)_|k@mxd_L-s%!KvoEIDh>XGhPb6`_(tq?0 ^vYNv>;}mZvkVrJZ$J!6%55?kqq%14-XZwa2^ZQ>t$A-wry2wMrs=N10Kl6@3qG uvX&4~&PmEPz}tHx=m79M7p{zXA04J0kx;y8WT+-LenBM%{1jrWmC@PbM(rm36zpBj(us=o3!l YFgv`N;UH!Q~^3uB0Uya98y{5-=K}$S^?9iVC*_;ZmkD4s2fZW#Idk-F86r23`|LfT>;u7;n-IXrMl~ ~RgZAzLRvog!2Br8SZGkqDl+S=v{M}gY{Q^eBkPQ49XoO`P4}h|@7i%E@;mm^50>sKs>l#$SsqwUYON VL?cGon7PQZ;Sm*<=ixKljA64`3858Y<2cF{L&`*QZtnoS)WUq0{%TKOcm%4CHN}kS2>JVl2Xkqe2>* S07tbcOqi5){F#Y%70&DxJ@f=@aK_GmBzcnA50*^*yS-q_QVCU*e8KW1uWl*2 rC-@CRuEG^0ONT`3}Va>`~mHft)k_Tk_M;sI)8+3KsU0S9~~Y?qS+7&pe>Wf{?W5^3iL1roHmB!EuDu eulI?I%RRWEg3~?0sgrnF^fXc`vXo-rLltTr<0BP(;JEyN9;P6VW*=mzq&;Q743F1iHlKfehDrlI_xu gDng@6NGCgBIcakzZGI%VVxLki Vb^a33&NBpN4JfY=Mp0q!uh7?!YXhG8q`&!6AG=Cr%U-t+7%2D}2j+MLlSSbm5 j-z6htT6lFNthLPWg?a_YCjQ@g;^T8TKm*4(!@^(jip$z8K;Q^~Sw_pWuq)|o3F 6g^GcWaGx;j5@KWl`wVbBo=K&rcN2CF(^Wtj`FD)10W;%?385Xs^ ((aPpX7EWCS#nV%T3DMaJx|J+3xPRclWIn-*<;y_Fw!0vf=*BdXUa>Wa=gDfl(Idmw4nF#$Rc_`mbo3 *iS`@~sb{n7SQqxf$=OhnRKuT2_dX6dV=AQI={vasosocHnFU7ZxYJ0|N7?X_nFP)Rakqd`ceT$s2Mx )PL8G7tJ@q9-;+t?JQm1~zGb^>SP8I}0-3aYo*jSSDTjAdUmBx~ei$SOJW&_tyeD+o|8HlpQg^R6+-h }krmQI#6%O*aLmr!2kWl?-ll$`oE}1jb|Ww_TaMU3)Lu8iPE^kTFm9wAhhdNI6XMk=Ri_8==bdfJyd8 )SVBtyjXF62P*R5f`&<(b l(I~h|x5_fvbPxA}EESy6Je>+pQLa^a?F*2<_rnDDZ`&ub#!N}MDU&)-N|##SLoo^m9e-(lPixY44|- jw{-s-c+lWgwUY!)>lB@Fq=7GPOg&;X7L>A6QG+WpnOhZ)Tc!0hnV+?Qh(xt0dmO&a7{)jIh7pie;2^ >068!TN*35hiVx!L^UQyB5*Sx$N-hrjqaJoc|vTnP#0?zJevCZXR~i~>C)h;#m5#ao=+%S*OL45AA~( LyyvqfY(H*yPu_7us1Y^j97B%MU2!V31j&$R<&#s@W4vWqJG8w3Gh0WP(B6c|xMZ?cC t`MP1J>Bv?qkh%F3#A#bUa!X6pqqUJO5v-H{~rm5rlU9(#0aDLKs1FY;G@3yzZ<7p1atxC1jew^r(!p {_4H6QQFYF>^G1~=#y@b(75>36f45oVMbU1`<`Ka?xoJgdoDCa%2)shlTUybPlc1|U@I16_Y^M>rs`N `^KBD)NxT_pzEPfWShiTDv?k_Yivd5(x{-!~_#C*cJUQVA}P2)kFCzdca JK=fsj9B%rZ5&&G7cW+;8vP}%8KP5MCM>~aP14G*Wa|d#nuL{%FNB_bc%*io1eFpk|5f2CS&vZDFkW| 1dxiu{5(|Y2E0ErEs1xRZ_E@vR`%JQ-ncXRq>>Hzqw$z!DC +LHXrJRj1vxw)x^2Cb&+RlWdNaoJ0MfISsIY+K0wVwyP8Y+}?!^BAP)h>@6aWAK2modQMO;4Uw}0gZ0 04p)001`t003}la4%nJZggdGZeeUMa%FRGY;|;LZ*DJgWpi(Ac4cg7VlQTIb#7!|V_|M&X=Gt^WpgfY dF5E&Z`(Eye%D_?xF}{9u7C}DGL`~uumJ(qZos;|WPw6UruC$}lDOq6SwpK;P2kdoL7i@;ndtr5LQd$QS$f *1XktkEv8MUqX9I+=SVT}w2!pR*O%C#XlS*K7Ahm3$(_}a@dB@V+qQ56we?$|8BdpI^n0b^K&c#ubt> 4$O+8^i+%UBXDG>vT7amD@>&w~^dhUDS>sQxavt;8HuWU>${)Sx~A?kuAi-j>=9a%j1dIKg$m3JhB>I v0-tvSS+H*$0AAc+SP`VM5ukGjl&^0!bjUiQL|R)yE~4N-;(O0pwtV*a+|jMt{h*IHf!+#EE(cDTAK=z3^j@9p*VP4 Dn^xAW%aCW@kra*-%FkT7Q5QbC{HbV0qIpLVknFJJWny}nH(@WBts-Z-3wv?8NNtEz*%C-|ql$) ym?zwg8WZ6T>UqgU?IGo-B~T*%4W29UP-9?n7t2J|A1f_5vz<&H(7f0&7zSN{}&y&?ZCbF&G*eTMp;w0=*)2<(UH`JKdv!@KLK- 7pb2ROjdcWY#ShYy@P0XZ=Ob}-hX`@Tv}QlI$X@enwfja6sFbBwt-#JD`V@AAK&-AphpS_@18Tt@&uAF!|URsU*dnVpWbKm(co65l!$%BT!xD*bKW= 0;8=7VxOk5`LBCn`IPga|_Fh>BprYwDiabtexr3n-ucKt&Ocl#Kxt%Pd;6?Wn-L12u1Ef tdl2KSxDH*6)6@F*8a@I6_Hfr~wRi&gM4yR$3|TJrsI{oS@Xaqa9Q3lY-fQY3%yshJ Pwzd9t2-kzig6D0-i~jhEAC#6EKsFwh&v>6WvmOOci7IHa1I N57^r#Ai53@$+A^tMwT;`U2R%8HMUpzQ^EKt$|YWbJj!8{XJ`J+L@wQb44*L6!QF0frZJbFeQ;?+fK# Q5}6>~tncXNp%}5^+2wdI3+E*2^u!e_Asq@J+@YkN3>yNLXJ;p4OW Rv+50}{{e!PEC@ab(N#D|2D)PS9#Sob^MP)P*o~tl7{q|E;O8n*V-wQPbA{hv8wJwHQ(5_Suk2z0+=B_xHwVvs`4l{K|<;`{Z4$M!@C%D8%D@OA{az&@jQrn4{UR2{mCcLyhmcJ=BM6nXcNJa2oof>q65qye( w!{|>R7;=>sD#2*5%=Y!VEd8g1^OD`JDHOzU-$Ko8c2S;Cs_hvHBH;4N56YPa8vOEUIruZ2c`VUY`0| XQR000O8W&uT91+IQqp$-55u`B=pF8}}laA|NaUukZ1WpZv|Y%g+Ub8l>QbZKvHFLGsbZ)|pDY-wUIa B^>UX=G(`E^v9xT5XTpwjF=(Pr*4aA_qF{343#^yIzt@d+3_pl54i&aFA(>_HieRDkYucqUdMe?@v-9 DciYpz~W%u3EK9l}&$k#aH+4S-Ynb{ext}@VWW%`Z9m@&E>0auik#0+NF IhK5(5*W)pj^mUWgtimFgL)1p!3qbTJvtF?NRh0p`4i)GVlzG|=CgYdYlKzYSW0QiaiVWDYxSq?1PKi `2Fsl`@Qtvj79c_aE=uXt6+g13;wE651g05@gfDSK$uZybnwclnPWuHId~&#!;H`R4n#`PJ*ow>MXBt }frXBWqBu^uFK!#{TIZYL8)nc=@p|>NZoO;3ESy*|m(#fW>6PI4iJk)slouv){^1tsOnRGAx)3F4{1yNQm@1B+AQS3%P?h~Z6$tx %##$)4Cf9?&KYz`YDSmlP>L3bfMh6!B6B4(@Io6JS43u|Yp*nW^Q!i6h3f0QYNIiGoS1Ch}$?&Z0}%v TK>ZPauT*?-2`YC{Jqqv~tG}$dHZ_x<_6Tx?Vwmv=!~WDoE}XtGRCFsw)w^*aB#a9JY+`*DMTy3)$oi wAZYqDDvfgK?DLsXbTRUHJrspw0R+F_#NCv5*%X@-jwWiZ#hE{X$;9G>S0X~50LruhV_9EM^{j?Y_`T `=ma7lR19gPfJXSS2JK+6V9R}IZrVJ)7iB@((~8kJK_DC_YpbMnNGizcb!wi{2a&1M!}_h?eP^~jW8Yl7`u3b0PhqQEnFz8Ithr YmTmzoJdLVhbkP4PUgpFlI77p0-?ZtPOx0nCAd3W*tZpv&Xbk@%`nK@z=F=Q-)VvQBKRTfD=X$PuNTk _Qng(8aYFq8(u&DcwTXe0u&bCAJ;R0YzTTEdGg8ZCqa_5dep$g@51%{i-xyi)!Q4P9Sev%mb|&xS6zY w*OZu)6FT2g~ZlGUYtKIlJD&jjNO-2LmIqAwhArlr2Jx7Fl412s2f_ME-dY5KRuR4YX^*FBwrXy@d-q 9fwB@UL(HGP&e(figpj210yz=^uexW-PZ|8R7lJQr@l5)_W3-{;S>miYRbCqIoRM^lNw!t329#pZVEj FPoOffBJPI>-8B?;zZLst;EU2A1gk2tP@@+RL=n^KCyUU^4fH3XtaHx(IoPm85TIQw&dw@zhW*WA5rg XLjpl{OiP%*JCh5FYl {k->$@0ExnD^|Ao`(iE4;dTnJHiHe=;7+<+?Y2U8ZV7cMC{W3Xu<05tG+B5v>A||5FjIwqq^}TA}{Wi =(O0Q6g#rLkp%}poeR?k-I;1c6O}{HBd?CKIR#zFMs?bR@&OD2rY+Yfxlp48t3~OAqzVuyb2Lg)YAM= QOVqNxH}`hj|8^1VK%L&uT^!vTxujuDnk$_T73XIo8H6u!ZJqV|#AZ6sN9)HEPR=Ygh4NB}V;*| 4638^1akSYV$GV!%DE!(JA^F3wYv_s!M+T0I5ZvCmye|_J2>fF)pH-xc745QBK0V0Bhfq;Ipa^h^@)D iEo>1tJUNcSA^Z|P!ZAT}E-UA=;`j!c6rmGX%IDij?Q_(Q{f)oGAIr5^=Rt2S%qYgLwNM;1M3&eKAl7 l%0?37V=CGA1gB${pV~&T?!{Lq!6ekHEa_WyP$lY>M-=S8y9JU>*`_dsA2}gIchNAd&`Ii9QkKQY%p& P~AaAFTPMp_K>I>s0UpnGt(fEUyh+sim^^Qh#IV-UhC!jQ^yO~1%e8k*w%@32BeyrwJ&=7=S`<+-A)% )Rt4Tzr1m~ 2~lbKJcN*jkFog6qtg!(AF3~fU~=fk0y2{yCnFqQwbi@HKG3lWSr86~k0n-1`IrYVe0vvj8? _-}REsEiHg+E~LNS#)s2&ZNjGY+60%uF!*zRNmZ;dKHMYlkuxAVP1k)f`oZd%iNJt|okgQCHJ9SM=-T AGrSO*R5(`p)J-*48m7792PYaZHm}YkZ+V5A@^ZGM|59f_kVhmwTd?ZA9uTE1dQ5#%$zTpP($V(v!OT ltE-j7$}Vre|UCyR?$eT6P^oDaSC9J+R5V7W)IPA40!PAd8EZB6Y{7${eQ^9lpp`6S=etlm4azR{(x* mF0hf0BC3weY_gz1vln!bcd2(mdUaix)0G*8z+!D)*iuZlhbaph!`^7s)yVomH@NBCJ;Ld<-sjSBVu! ISjrDVX@CCc5_7NYZrU2@x9TH7bCbCVIvRaw4m!e8VQwei>!G3u6_v~|kL7ONE08C~Az}zg!5=dn}*# )}M`Fy@u1orP17mK0H=J-_>E3S*D@osGq4|>r(LiBXkL0PesTiG5XCB*EB`eLz2>1%Gke>LARWg%JYr 5HyYQVNQFrDcnb*K%EwhqOISX|H+G(;!_-_L6dU6M&;~NOz^3DZy`0<(ScIaBtNpBo&?6kWN#3lOJh< u{XjApoK_GDYj9Hh74#XytyFbJ8FLyQ=#79fu(6rJ8t}V>Tw8i{#4M0^J5-1ub+P!8tiagA@81d%m>8MeBNYd`|v}PM3t3a0#&&V%cprd?`!W?q|pAuU7Bl)IfD|BEfGG#Lh5j&U_{kAL%-Wy>C@*!| *|QZ>}J0C0MC28oSyyO0%ZyFqPwTv;Cn`yJ`f^TVq@rpzO(Ibcgtcmw~(Z`@PdAZuBUbl68-^#W37G+ !&cT4ue3dXuBFY=I|;ReKOURDa*3#4gi8;_mI?Q>}wJX!uICgUE+AU$v1}PBDBJ>?+n8r3F8XdVWVxeeX(qvK05*(8jN^g>PsW1Jn-<}t@4L2F{^!MfGL;d&&-`0|@v fY$J~FNXZvSlkN~ry{N7)e3o?AGk=R)R#S+Xz;4UG@y&_7RoewuHT^Zu&Ws7-;2vF)1ot`aJqbu}OW< fImJVgVeVt?lHX~R)PJi{;(`MRho8vjEja^Ve^G7aAl5rNZnb7+-mOQ{K6pf$EK+9k56M>7fGlyis)+ OJh{gf^OW(xOMOf&(Vw(88jiLpPU`N@=R1+UyRG=Lm)$!!Td$ZD32)jA#%oVwmX91KoSAn!Hn+Mgu~Wleu^+$b9@%V 2X`Y+$GMOze|MCLZQbsZSr`vTlt$NXnTe6U)=f^}ou48h43qQlk9eDBZSH@@TWkl}^e;z>VxEw|p9*% f*+^F7;5$E986AjUjG7zyj1~{l%UATil3dwWpzMl$+0?0J3^fTv6J2AaEV$l^FSO#|eR!iaCNdcy&En Zvc>C$D*iIrHl24f1JQc=@9Su}No0xR!{&hI@j9xC%FFl%pP?vKMfwR?A0;M$?RW8}sTQ-y`j}vU INxWn*C^wvsfplE2$K#1&CJqu?0%^K9}TP)h>@6aWAK2modQMO^i4;aS84002b~001ul003}la4%nJZ ggdGZeeUMa%FRGY;|;LZ*DJgWpi(Ac4cg7VlQ%KaBp&SWpXZXdEHlCYvV=~efO`pxCA8DRap8`1SzB` g@txowuMsCAjZ;_J&mMMXGX~yH~+n7^f|JX-RzdWRD{?X%{}+ruQPJ4RY^&bH@4B7BqYmPX-lH2loeL 0%B)to+mouI;Iv&CHf5ZPrm&ez?b)74Y|~-ikD{(+wd?j2YPZA9@NCES2duE}p4vn0J-n_Cz4uzyQS! i5rgWs)sN#VOxy4tvkM&6DTVeQJzu22bTdWPwZ$y>JOjzE~4Om(&WMwz>j{j<;=8`MBS`{rHx|+BJNm 7Xt=?Pb>RayvR=x13Eegfa=tp~O7-NDyg7_SHy@`jYlO4=j|3>WzZnH$KMc*xf+R(zUw^f$d#6@!`k2 q%RVH2MU Y>(qscfF1&m@T+#jY5+&=n{4B8bMep!A;f$(*x?>DDgnr}jUrczS===k`YHw7o16{^>rr3;KtODr2w9g3c-$aBObgvuU C=AKc|NcGlsVz(W(v-ebP$(8L$pN9sCevz6ZgaOc+#N-(O9q7op_7>yBdXD_RdC}BLS@{qBsk67Kd|L~=(*t`2v-az6D60|~B9u(>e&EG)E+A!^)aqhW&qI x+7z;&ET21Rn`&t#sg3hDY-LT7*}jpzW8_410F- !HrDKsmvwo^E^$v63g$MM^vIM!Ep)T>0DyR0(OO8NO&+Ig>*de2*eSxAEJ!6%`O1$>>ckrx9Z+kKl^1 5+H_6Bduk_UnPMk%)XoXqw}ZoIx`X@gB*dZwY$B&?qwpImwA1}o?H6=>CI$n;XtWB~;W<{KAu3saen_ 09?_+8c_KD~{&V>%wJ&xxL6ZE_*m#g-O!jbi2w=={G-D7yZ7i;?gdyn`4cFMnJ{@HB%c!JX>N37a&BR4FLGsbZ)|mRX>V>Xa%FRGY<6XAX<{#O WpQTDc~9UUj-_S)LQVZe*(o6+&vNxfJT;q{20N({OPy%s&yEe!SsLmR~ VZ$~J3gaY-*=S*99R@QSlm4Le>9Bd?g=x3kl{9yh&|?V8s7Gb>-xHA_iBg%rFnL%Dz6WTp5V)-0G9bLLU;ktuI^ME16S@~5TT;b_RZpoXc}X=0JbwH`% FC`viMKT+6<$yG7da_vsuX$lsi}FvwYM<#J|~M40zW0Iz-nA@o#(M)b!Bv8k6O4>6LR`9C{ZxG3x9BN Hm)USZr_QA47%%q4Fr632rUC&5jYlyV2O{=vgTHZD!MiZd2a5W=kN)Yk>@w@b%_0-y-6Y;e?`^G#|P8 R@NvyP8NtAV_M~31c7c9v(3Vox4vtp@!hvvQ+(8s9Hp|m(#!B2aPm<@fR&1uhi7C#k6xqZgzck>htks )Qau|5e3hOvd17WZ@F&@GU5sZ~Y%OHZtDS`8x0}%KFBV6qlH1m(&C1NOAVEm)Y>ki{Rx35g~yHTGP3Z&^a2Y$EVdBf7 K(v`7}710XwAhX+|H~>N%R`5iC-zfiPVG@C1bXTLYm4E0w@aqOlCj;T7x-?6(|P`Oa3-Tz+$7=a53`0 0vTfODw_>p4jBD26N>40mTzLvKR5>gt{0w+ncbW0iUuq04o?JjncWF>gt`e8J9Q_2$H{I5!Ieg`HsU5 *opX+McrLKoFh?9U7tHZz31Lp=a)~r`2%m2YkL`s1QtB7$rZy{BxksOl*6sH@=djT&aMd0C0hdl4!E8 VCa-o%DhYvV}uT48W3xs9^3K(^Kx`d(+vVaM48ExSImQ2G6vRJF*K(0D!89UGJUHu&;)N{OPtCOXCKZ9^a(ZBag;{MJKynZCSn7SVE8=R>hY0N3#(^ )9&g=a=HEVgcQQ3T=qSqGOWs4gU7S9CmyjPwWGoQDCp!+q$0`VHMsz-Wq+*~CyRbSMD+24waiE(jdeO H%aI)%r{DF4Ra#)Cg>?1FdXo7Mbo_RyA6uBNxy>ZJE&w1XMdXFetv3fI50Qj5y2z0|*Rx|5z@R0yr7m S>nR*^mDqGYXyL~C^T4K`txmTiPM6jI9zUZlpNA7xjU#*sLo*A<9E5$weG3w*dn<4!T mta^ibl-ssNrAkDI<^l0%iOu;9tRtBU~3k4O6h8joHY+uBWQMm{nAyX)$bg{a_Yndyu&d8 j1?S;p2Y?n~f-X(|O1ak@oRz(%0o8IfbD2)BbJ97nRs)yvfWv5VLHl6k#QfzI4?=AF7@)DKG!s^o&a4 K+{Va}x!bKIU(68h9c+`d9uOe-U}h6T2dBF>{&t=L@<5y0}Y-G5l`T1CAxU5CcLiSDO`buMw(o92B4a =hJn)2X79Tf4<0J*e)aiUXci<1H>T56_WKr&GahtQBWbH*R(BYs31T3G%SsIZ*P^9$t5#e%15o(8(S3 nRK@QoAgE#l|Yq;y>CwrM2T*AU$fXWa60DUw7051Rl0B~t=FJEbHbY*gGVQepQWpi(Ab#!TOZZC3Wb8 l>RWo&6;FLGsbZ)|pDaxQRrwOjj-+cpyZeg6v9i$m?gt8EJu2N>r9ZIbqa7QG;S1c$waLQAyGTUk^@D UL6f|NXuhk`g7$+uX}QyEa7*hx7R6L1kN;gGkeD+qAVxQ=t!)sT(27(loNsrnFaAek?O(quw=z-h`2D TV{3qOs$+7kWdRADsG{^hSPo~2Lz{OrjO&wu)UDKcrBD>tvwRg%6{Wp3)ElG%eKVoBT R!iL3}EKR91S?GVLw3G*RzOq)<6mJ#y42!;%R=rg8Rn<%JlAgD8w&!?kt=<$W9{t6br%F{HL-?f|sfD !S<&WXlV=EKe)NR&u=Xt7Yl{G5=zLwQK7K4Vc>rxg;CbPW?(_ihCDxT2D)Kv8@Qxz+1z+il;XLW7rsk OSy)jKbBm2T;09jLr;qu=r1)M8Vq+F46d)vA)U>KS;`;)n-THZRZ#ha?6{qigeU#LVrn0D&E8c5;hkzoW1YC&(t(Jc$THWtY}oTgib=MTjNlaJe&>Dyh_*x USTUQAd7J-Q#}3gJP3N!pe#J!m__`aui`ZJm?7~Lxudc2L>LAK>z`O*9{*lM#DFaiQE-)=Cq_rJR%wx +~IQCQ6hB>M{1z~Kk)5?PC`pOh91s7xHIHx3no|6f4Bru6$GZ%b=~5I4FShHBuOu3sG@Dpk>r2WVS^Y?7> q+IFc}mT4P!?Q8{0$#WSsViE?8WmJ>C0z7|K-Qup1n+;KKu69?`MQ5#wMzKt7`z{V7HJ=tOnWjqfyhz {w&#uunlIRrnhlxyCtzAf@)(uEPBWbDZnbq(0`B3e&&3Hf8$sc^B7CE``Xl};fV@;0HW{BG0n^YG2va >XKMh!GTo5(efc?kM%(xlCH7nV33{s^uHWTO+hs$;UOqC9J)P(=mE*p( ?^^w7&?M9Q-!4uV>7KAYOYLjAlVNRvdM+7p|ZZNK_lq7@@OHXOCP}p51;@uvt*~6%;cp|!N~{5RQT-srMwb$)$%8t%?gAu*AF8q-Pqy(^2~$(m(^I8GfQ600 S!}xj3%1`BSwMea&XHI=^9j#N4q%%yd7KqcIbSS^jddXpn_P-)C9;I_dhy8`-*CRaQ}E#yL}xNXl|yN 7pucYW*v#XAH6NN9BK^Qu+>1LWTyh+4& FZ#5TN`-pYyh4Z{?hM=~l7=hKWY9;3!|WS;ZPd_e8uG8WvWZo=cs{I1J!T{|CYVUau{zwo(yuJb1(Ze 6w!DA4CxJRw&nD}dKgr^R-jC`%E;sA##1L(XZ*Oo+?nh!~C_$ZMt87IMe_g2h+`GCM#75TPx*jta09` ?^Xr8Cq?~oYNdOH3jfAo;D`!$o29&cYq`1jehD%tO>fQvA>7>H89~HuaG2!Wuc!xP_oglKzHZ|jC`BO nzvQ{+OxslD+C>Lg=^YyI(%aj|qsnMIP9`qJ62c!*m`oO~q9@tpCivXBaOmT@X9-onm$7&D2OEQ1X9O-7b*L6B5j hNv%`VgP>3i<@OvJBt$|Ip_9wIb-gxJ6w41=+!J3G%eJ0X){oWpSVOhUBl8HboO-5>Xy%R_%y%W;lU;mLe~9SMgKfX}Up`z SCL8gdWcgw7xALWv7V)%E1O#5V;=PmOhjSVW3Sb9$A%7yq*283H+I~Hk>$4CuJ)Ia{)BmO)J8pSG;*O AdL%_*qe=4a@wL?Wvem&uF=dR>2=O}BW0J}NVycinrRu3SCx;9cLzS)s tXBpmKzGMZXyh3Vw>v^zL+&JYbRoMW`=WUVI`>iO-JWY?e@*HO=mH5sM*@mKCOYWsAuJ%~iVawK;3~H ~iR_eNSty-(Ga;M4$zN|YY6(=rm7&%|B3>zOuM_cI3&2AqM#tKiwxO`&Dt1S>F_q@CBIdDQAw$BnC>;=Xerbautabz*6e=_%Gfg{YPj*>j6lbtUX5m2~>L #i8fAi~rAhY3o&U_RmsRS-Dp|NQ%`_5Nv(g+!Lz*fe;4DXB|)=VQ^=oc2?qgkD}vx9UHY~} IXDvCg$CT464+HI`ql7dhdU&v{t^zp+;D%1(XM#gf?`Hj*o DVG(YKy*Y|mu2eN+fPs$%3}LVu0mng}D6=Scz`KTBmOU|etb1XG{hvIrs7BR%r)gH;D6NXz#)qykNM+7+P9!%@c#5gA+@xm1rFy+cwa$IN-KrUH*5s@ zd}MVq^C{=l4SALXfoM6w@-KF^5b&+z0@9g7pJrlkyzPm?f67sgb=!b~h-7A0}rVIfR%b{xm&t1t#^P djyJyT?@02G&rfTMk6YP!Z#4r(8vr(Iu^Y_0aF&y&8IG97NOOLX|trB-;-$qA;)rY|R-q&Psx2BjW}x T{|t^rB6^LO|&lbg~U|~YIS;)=Ecns79-|5QHhTWi;+&6eQnwuA_N_{+244hQnJqW;bCVV{xB}+Q16r vgcSK9lqrFIRuwq#l6o=`lRVzLND{!m^q!?$>+r3n+t}RiC<|+toO?{ACtMP_F>jlQ=R{sp8`{E+8z0 jow|b}YhNF`d+L)7q_ >}~|fI)QFL*s~?GrP>lC~q!IQ5Fx}eR)@bfs#TNdSY7ZMs!E)IkLRKyyv0A+K!5NukaNPxC1(z}rE%r=OL$)^tlcnH`2^P CxvG5W=gvu!MRV8CYWq-U&g1$htTlfbs2i4VbO(4%#T)R4!9 Y?h>@5MQc-m)D{u{M`*(#Sv$_6*jaKd@CWFfv@i?7DFz-M-)5so^sa_S58$x#A)(#>MLK{3bM_FM9m5 KSiDU8Def)oCE$rVkl#PQ^18L;7%T2;6UR=3A7d>he6hdGvIVFcMi&fSZ$yXuCzfyPt7K`w#|1s~o9o @pGJY_^=QX4Ig(Iv^cJgs+KMSd0MXL@9zfyo}GhQBuZp*bYMeG+Y61wBAu=Bj!%@&B;fM+j(KMA^-QMmH*xOA4o4u`0mAtKVb*rsymA(Dq^RK@8qhIohB7dcPH5% jrbgw)Pz^{Wuxb6$0GQug_?d_r+rO&-K{mdA_gT>K}X0W%>HR0AhymZIWb=%@W&d49NV$htple>0mJt $e)?x2H|iV2*pW6=MI)*w}Hj>LIm&1Zt-k;L4%G<1(A!Vp0|r$Hf$K5Huvxw{rmWRbOWjTHs!kjMo#M vg>pazbh>Nd!yr#Xx&lLsu%3JTipI?Z^2#eI^we+?hy`JKwp1`{-0J+4`b0xU@5J?t}9Y?F){$DE_@u I1}<{MiUnSMSklb_AFs`VUPj`=Skjca_1~4o^p7I?prL^KB?TxJmeL`4&5rccy{KHaziK1IQt~|I-0@ xUz5YUCeP_wBDsrGj$K1N0?t%Vp))~u*Sy*xI;Tb*T*{IH9luGzb;zLkMYbQLs8 MEFdte9iZtlAU?_Jt?kniTl9ffkTIv@4jfbOdF(BSys8wgWP4A(uNf$#z?y<|J_67l`=chY6eb2tl*- o&N;Lf1t2A%5qiwa%1m^sf+x9o2Em)z=N*hIRwrMLC9M!oONVO)>{e4BM|?U+5MuUcXL4@!J2Bm#)s| cRu(+!#8dH)t6O(mK@;D38>_*r&c#t9Yj**8o%Kq`gR`b9}=3o9d+JFSB6$?+k#CO_An}6n2q)MKgpS s!tOrzS)MnIE?vQd`z5cv`WH}30|XQR000O8W&uT9000000ssI2000009{>OVaA|NaUukZ1WpZv|Y%g _mX>4;ZUtei%X>?y-E^v7R08mQ<1QY-O00;nP0YzMdX?fAt1pojR4FCWm0001RX>c!JX>N37a&BR4FL iWjY;!MPYGHC=V{cz{Wq5QhaCya6+fw635PjEIbeRY2iXu{ZB$cfQTP)fb+a-%76i_gh#@6i08r6&pI A5RBBiq>QC7Y)Rsx0;NoYS}I=}xC}zN)fD>B`c~=+&ZVNIywKbEB8^Nf?popph?4;CX2wt)%%*Ul>W1 Zpg0cT3eY@qiH5-#jnq*DO5#|wW@;$RW;I7qI?Xf#lTLlkY&w0-=Tlp<9}pyS&3OG=}A_(HmX`sC7-4 7GF>ZaNzcLedGTPR)hm-p`{>NjtA+~k#Oi=(_r8G^RZgn0z;6^x%ViBMS!HX=bR~ZytCy1f0YV{Q;mY jUU}dwaNm&<*Y-J2kO6(N1Ggi;N0{A6V5yPR%WQ7PASsR_NGK9*x3aEubh^RFkaV+)osps`|y~Yy4@< CW#Q4&yJ>*dUP-b9+EvKFyp@zE^2_a_~J!^!j*m?mM>$L|>IA}pXZ =N}^91>xz&XfQi`W0cFc52dVJh< XkeUNel=bE-Q-QLr_go`nj`5Ss8kVs7T$e~6yN3G7m8>S?fbB R~ZNR{*Do^aWW0>AHNW4PqYi-)|^u|p-z!wos$LHyFm_!s$X_AaT#)D`;op6fpj!)NddNICA2^vW_N^ fX8{a#R(-C8yj}r=M5+-TfzZ!-KO|Fv3cp8Cz0N7DHI#0k7T}Goc04rn^eZ&V%FT&xFsl4zC)+cNq ^~aN&Bz}L9(#3cz1(e*{dBIXP6-%sQ5h~4OqM`?m jA6_QuZtHbCjeH7|cnVX!^JENo4kvbu9SHV~q85ciO$Ql)3V&Zsqa7d(qHqYTsfW$`%7NGEbUaTjIo) j&)w;A>fkMM=1s+c1oE|D&%}P;y?&6g6PCde7(6>xQ5V-1doxCvt3duBj~#qqQPZWwS* t~p6%Kl>WSKvpy-C|;T5ft<2DXu3Zdiw&M5%Ienp~WM>G+JGfVUe_q^$q$-8<;nrn?V*eBA4~)!X}TE 8QN?wLbRgcqYv8{dU8F@H-4pyQ^5~zizy%+}0!LF~Hw+l<6h+%da5qE&iJ$tugH`_k(cVRs8pL-wri5 @Y^J8^1UmK09S*m0=|A8w(;*SMZIr^zspR|Rl?p`~=uXdsN@i_*!b%$DqdXb2mn}LpXo8zua%a@ky%+W`TvZ!d;1cyg>#~j8(MiTDKJT3W(b17E ${`+1Cz*5vs4?2`K+D#Ud6^B;-f0!P^ymY3^2!xq|oZ;KI}m|!q60#+Q@70=P0T~ZzS 6Y}V0ON<-a9Q$qz$AD#>we1o8vGi_Yw+kI!4!g@?A8Bjrch?yr>|3yXX*Rnq1%aFYjZT-KTt ~p1QY-O00;nP0YzL&csW1T0RRB^0{{RU0001RX>c!JX>N37a&BR4FLiWjY;!MPY;R{SaCvQ#!A|2a5Q gu5ic$8GRH-EnTq^BK3lxNeiUeA&Y1&LvYaKhX9Z-4t9oune==u`d@%;16Ka*wI?O>hm#3zE(Z7WpE* c~2(LJRxwE8L@jy{xT;gEruf2-|qe-_h)}#hi0qY@tJU)D34$DB-G6FfX7ZCDI9m^ 40O5~BxQ8R+J#36hPUXRVkVYl83}j2Hf~})7y@*sp7t>Q`mIhSX;{bDkFyd$;ycQ~zg;dz>@DcQ^@F3 AJ9Hn23hvf7e;x>}fyd4LGkaUV+&sUo;U`>OGsdC`Z!tQ8z~V_dz9+>bm0OgD5<1(iz&gsds7-5E(Tv67@5gj3VEGF+T4Ch$%b**K0x!V{DIYn4+^ F;=QjiNi@zj`H)g6YcL3-xRfDKBRxpcRSu+f2@EA oUk)g>{tr62>@6aWAK2modQMO;&o@m-Jt005B&0015U003}la4%nJZggdGZeeU Mb#!TLb1z|VaAaw6b1rasom5S4+b|5h>sJu&rNL4gTMq+*rNAyb^|tO*6b56{u~yjW`|YFrk>+ b%w_NO4e2?Vgqmm?154C0}Y)P>3=omsx@Iq~AJ(YmYmD)2jw(JZ+u)wyD@Dw`V!V8*?7|@d{Y~wKKm4 sE+_d!MHJ+%Rxc0-00GNnpV66iL_k+v;Jdg1l7@jAR>I>xmyuRWF>8nc_jGm+Enx@Qi=fx#j3Twz-RN yVX$gVI|kF~W*fAP@3!B9k(qsIgsBnW{v3SGsZ52e3T7@s5?MylrC9X+8)6&YaOJnj=2G&W17%1dCtQLG1|ly6v_%MnA_!(m{-&_?0+;D(p-c>NPPkkCFLUdh&`$rYa^4_n FUOQ=vbtZm&;{=M%w99S(Ye(AJ4rqf)29*^!0*f2PucI5?e*3QK9TM8DB(a;E0nHri)9Zso+Y7hr#%x Kda9E27j~bj;Cvp4RBgxZx}p!2vfIJJ^#2$VBj^4#Dvv%ho#7-Abm|WNzm$PCnDjawTOSKi}To^_rfr @%dsJvGt?;dHM$tg-I^I!wu;3yki3z@uZGJU-t7m9m_zRvMgn|9-YJF#xeXM?YjnXDe+>kM;dPigM0UncxN}kkjP)h>@6aWAK2modQMO^WMzzWX<007 bn0012T003}la4%nJZggdGZeeUMb#!TLb1!3WZE#_9E^v8$R&8(FHW2=<5Gb^CvWZZlN>X-(uK#^UQj+Z~n7^2B_x9X#cM8LBY3e)&vtt#)vQ{bT?n=nbhL@XeEBg!G=pa|J0Mk_Tpw$7> MGzzj6Cz3A8Xm(9nxtZ8o76lDM-Xb0k)5P^*=V~pvJkYl%hhy#vsf*|ryvNdRaB&)H6N3jnLCS;q+|s q$&j99n8TLo#0VV?;rt`4r4*9@=x0>p7xvfsmS`;i&Y+ZE*#tiSba82Sd{at=P?xpFEa+tvnp&0cplW ny_$|eX;&ZBQm6Gb9zhYW@Nry=xbTkgi|k?olt mXTFO7G>rqcf3doA|WKm!THUi*ziO+g#Tr4VvYsVf98U-Th>tud9JjK>>pw)HwrWihUrij66faa9X3{ `Knp8Sy8rwIx=f-d|mOxVX6T`tJlwF(X=X4S8LrmSC2bq^7b=tr3juSxV#ry8kr&+tSl1_{-6DQUeCs70=rt2sMwkdZkiELkyF^(z#c6KkV)8&C3KD+3L|&CAU|wyG1 nG37w8cP-mnxIRb<~;$g=m1bX$@R9 iGUaNJn}2-P-+e!js=%#f5M%v{h(5wT8Mf35Ulu+66=Pc?J(#e5-jnz9a^}nL|D7nT8B2g()*sEL0v> @#UotL)X;WG#!&lg_SL*!nSkD9yKM(Bvox3P_n4$#%&4`Ugi>hhv;eqmzQn2db>&I3t|4h4h9}{CvE% 9e>Fr$Z7zLb8+09L1l@hRrNWjOwQ9E|t6^>O^Ixd3qs3nL$94v##uuS$W7EYWojpxnci!kNzb*PYY8@ HExc6e{YxE@hp$ZRvU3ZJlqig@yOW1+(7Q`Q~Pcd$rcssd*18HCP{^OS%DE*y?WlkG{o8N|5fG^gOaLHSd0&oIdo+WXF__2D9lOH@C}&!Eoqf $dRf3^91M(ZzE+5X)D+Zdhf|W8XZ(dI~;+QgpJD1eKLci?+Iep_powJ$$n4l^@c0V?UJbtbq$T-4~PA pQ+oE=h3|@UM3C5=L+Zs{>*Y$8ejBu(CS<^}qx0ByGG(-_;3y=W;n2>U==cd-6XR3CL#L6tmHl>choz ym@-I+J0|XQR000O8W&uT92plza^#%X{<{1D0DF6TfaA|NaUukZ1WpZv|Y%g_mX>4;ZV{dJ6VRUI?X> 4h9d0%v4XLBxadCgf(bK5o$z3W$?@S)^HrY$FN63r-`w$th4(q`IBFRq4xNk~FW5*z}Qta1I{y9T&;^HOwQKmW5;#wp^@5u+YRsp4SGFcTe C1JQKby@H*BqGgap#db58v4sjO(wRj;I?}%@*v#uES5!(v*?DcMYaw!VAjLE34zc1z23;|4_+w1nVKe ;xOxDVg%oj^Crqzok*caWvNRJOBA#u`4N#|LjmCi@f0Q9cC=$!`5w=hmfj2b;_b{lRue+EYE =mE22#ZtjGdf5FkU5aIc_V@XQarKjZcr8YqmL#C%2UbfL&rGSo86WGuDUZJiTc0{#_{oRT02mOeRsOO !6=hR+H4HB0uSRGgGK(URy5Co54XP4rHZtW2)~EHHh+!m`K+rNJjDGB0Jh2RKuQ#MS&_>DTN+$660fo a5AnLL!vDf*;Gdb&QTSV0_OVfoV5G{mQ4Ss%te0KV~7I@sk8DsmSmTi*(5ng94alK(H=knJdq41|mDl 9Xfg7A|q8lEAQ(6Ac6at+Ggu_9KdkrP`m8^6^B*onA3oXUCvl3a;f_#?L>1{T+Q!vWU100T+HV9}vr-}LCgD4B A-fvAJEy5Tjks8m{}Aq~ho4KCc1Yfjcu#webGr*hk80}zTZMM?RhclY7lJq^%rOncRG<6>MTJo7B8kosi4^qqm|KcfHuca_*#c}FYl_@#N`iQ=u$PAW851&H*F#3IhV) mFIPci)UD1)rAP;Hh5K@!=$h{~T3%RT)zim!&PBt!G}8euLESTfj=%t z(=bxNvhZ=XpPd@Kr0s=3K^D*FyULCK(}jgI5;e4WZ?~|Vth16zJaol@|kY4(^;ok7g@ojEZZj{D{mj `tFbkxvWf|c%0Z#xdHqzbFjf}k7gS`07FfA?6y#OAu``}57Pwv4(EGWQ3@RxEu(N=xJZII;DS6f?p?NgO{-ZEv4*~Gx0pXk<5Y9tVIj^PC2&4n^M5(-* 9h1s2agZ??JzWy7W{;J`tgna9UYXI1yym)2IZsG5Uz${csuVy=>xz&1^WlCna^mQz%t68`Viaarm>m( T&HQu>XnX@Z00yCY)ytXFek?4;I}#H{k5mge}YJ^L-m}&K*eOXRQBhSD(Bkvw^FzK(QUJ& X=~LuN!7{$>{3F4)ywD{gDLGxfrSLYD5ZW7c6njrH|on#Q~njKh0&r$h(Pqa{&gra0Ke;R%gTM0H%L` <26a9KH>~8+OyBdHIL^c$`!qHXS~0&{qCvt4mwAbIbL7!xbn$igR2{(BVp$B!>JE~KgMH*xF_ oO6hMlADCCTQ8v_xxrf6*;S8$O+DR(skyr_MFERu2(Y{e1gG%Ca$nh*~jb_Lgx7_B)0n?bH4jusM^XC -LLiG6soi~!4h6elcKWJ*#nWm}wO`Dkqg#XRkf?+)^Z~a2vr_|NPz$R{@3olbt @Jv%-OYJ(H^=od!!U?3IlF=E;^D4&IJ4S(+@-%bnAy;$P2RF2TL~>5vxC<2snFg+o2wSUMGp^?mT$_A D5p&#YzDUWHtwx=8+Q-v+;+QfhQ3<3Kc|E4D3%3&4PP}TE_xT?^{3q%$99|JMszRehemY#w&*OVaA|NaUukZ1WpZ v|Y%g_mX>4;ZWMOn=bZKp6E^v93Qo(MVFc7`-6;JL3lwAu*PDt5HrK&x(Qghl1a+Yzh3O2HxZ29}z2D YI&m5ayYH*em&fid>QSX_J3nAC);(B8otTzb0vg6|2P@PvTzY9!7W%Q7`i#`^RSliS_RF3YlxWT@}N+ $z@&0b*O<3!Tp-Yy+kJ0i)5rU*iBwQGw$L&&CW*hVUf@Jl=Zn81R(Mi-dSlZ$a}vh}30mkhqI1fi3x0 t5??3QoCxMgmo0Ons#H#!zIQIoVQ8Wu15?Ok-?15M!!**U1)s!`5n^OQTSM=^h>l+{H?hJES%AO~cD;d|!*JiEK(%|%n{QiKdDi&Mb8UDdIzN6fnUM8f$(S I}C@JZc5$1P2RxKPf{>;QIGmQ7i*Vh@!!H0jP=mG2|G2%GGXvnLkkUlH-|XLz6Cal=zy>^b8A8{+m*W PboqO9KQH000080A>M2T))1`w^9WF0B{Zf03rYY0B~t=FJEbHbY*gGVQepTbZKmJFJxtKa%E#-bZKvH E^v9RS6y%0HWYo=ueeYjW)F@6?9rGD1WmRD=+dGI&<#Z)&=M_krAdvXoEo10`|c$viT(&$49kmc^74M 1d(R=0=XrJm8(nvjgIhBPV$({#;mTQXT1%lC`~)Y58NG qBTy?H9ye!G5HV&9l+6BWbi)&Ih4La+8_P&D)w`(bW+`Cb`89ec??*3g2(TcVxw_MfQ6fLX1FmhFFxv ?0dKh`p1`FNmTF3V_#`7sMsXABnIF9N)Rhj&kRb8y@u6fJYr8UYd(6x;A3%Wm)9f4F;d^K}32q5S>v* AjpIa{mV`AWwGYfM{fuWY)ra(cX?weGG+8;^%ap0sggUhzCk-1eU^NY1jHWVlpQH(Eo#0SWfl|KK6b1 `RX;i4LHKRa=bA%Hsil{&aH+SOk3yK!}xh1%$VD$wu6~h|pzg`nza8iAc|0;CU@@%ASRkux6^p`q2jT3I~rTZW6}z-L$aM#`9sYi# ``U#fpZzw|;Gsd*WczxIs*cl)?G*#6fX_R*!;BApW1=&HTg)WgV7XMmJ?hV{$Seui!37lI{#7un(;8R =u1Q*2@|Ob5uTtVV!jO3q6|wYg<&6#gpkME%MYzy=3xorCC3+FHYt0L|!&qB-tju`$LyD@yu}^9>Bhx ybgr_F;LH-cx#oA*YH-d%4>Z}$*|erH=L03jTL8J)mM@=7n$s_Kz?v93*X>5UKhV{+2WkyB{L)r{Hw5 z3S4!nqRucW+^)#dLIz|=Z942tSO)?`kvk*}(apqr>Uq5j0)FHZiDm~+OU_jSUjdJ6-N_o)k+YSi5yI pw0>)Lvi!&6@QnDS+uJv>Ia$0!lGU=)4#CGKQahiB)heT3zv^eU}7!)1%*B5FA-F3A_Ww=nZ4RxU+VE !AuMF|pWl#UNfSUiZ)xG|_J!h8E+xFv@$=(s`H9rX_t3(%JTO@%u>IHT~z`REM$Z}et^Vs}Lv0JIeaj }&bKS65i@RXn-ar!Ed&^XPs~dD6Ams0*Vrj^$u_Pd`C*n5XmaxGnZoNu+==I+{6#GB$-5dkWjuwwiJWMpt`$M=LxkB(O9tvObHQNfh2P&Mwh8OwSVH{v8KB98AO}823j{->zA^!No6k> zc4*W<<6T|;-(-049lxdM%lYGO@xoIIA9K|g$+uiCewt?g0#Hi>1QY-O00;nP0YzLUDAF_P0{{Sk3;+ Nr0001RX>c!JX>N37a&BR4FLiWjY;!MUX>w&_bYFFHY+q<)Y;a|Ab1rastybNO+%^z@-@jt;LAvG~lZ QMlxFn@qGR?^OI_=I$*3G?4Xe`5M8gd1umts+ zKVlZdW^71pq(&$wYd_HW<5VUti}jT&W%`&H`@RwQ|c2QXHr@cKvhf7k& %Ns@d}@`Mh=RUNFNS4s&q{xy)aLus9nkdHZ;c+)jde&VgDxW#=6a0j9WA-yOA+X$+}Ox}*eqc;t`7Ct q&hXmfi=(*PX(S0-Y@%KNx$oVuv8q4Dva}jP+Iu^AJabLiG`QQU2Up6ir;?MV?lzz|eF4RiZb;2@HJt vFD)UUApN{&IV-Oe*kV9^rc?vI%?+%$){su{MN_dUvLn}Ro)lQp;+b7Ncsyp;Sj5b6KOJI>h*$MH?+f 7ZwsDJP*`kx*OQ@R80j78f@$P41kZ075$3pPjOA7b&qo<-5{7@_7bTHq%l&0ul?g-S!_Ez 2%Sv80#1%)ST2lJRsaJN_swD88ZBDi{JuCe5!j8OrqWvU$ddnZt&JvHMp#UB3z4f?Gx6K$h3Bk+!Mxn 7-5$Bz#WtGf;jd5lJAJ2h88jMp+KG-H^03X_^oP}-FVA{TvB+ `)8Iw@=8~LtD(tlYqZ__MY_>BqBNWn7z^b=M%{`9T+OVaA|NaUukZ1WpZv|Y%g_mX>4;ZWoKt!Y-w(5E^v9JRojl+HV}Q+R}7SgNQfSTX|{T>CGyPS@XW2YW)Fg3#+**lqoywfzU}WSj)>DZ-iSwaKbWLJ7*lcRIa#{)(5VHz8yHS1n{vzYpEL+bcG xfY7uv*Z>9}vl-Y2#Nb)3Mj4Oo~`~|KeFcnS1l+-))%5NFD!SFWmD_z_R87_v9>m*4kQ3D%cn(u|nEI -7zH8^i`SpEu1I)8;9*XxcqP2>OXM&Ak&8{Q!t_QLaudk(i;1p(gRMuFT*;s#<|z~%_NZPgJ4h!lP+z >%>F8|S4DBzpf)zThjK*cAv;LFHNk^6c2DF{$eg@&!iUxyqa3_=1?86OMpWYk5Bx| cM|DpWsing2Z0mjN)~i*6>|s-sX1{8WEniKXE9qPiZuR`)#ml^yg}@@n>OLj9g#x9_(yOn(Ex+*P_ov HO#r2bP0qGKdhS28l1k%xyK3(Xk(?18y-*@+ieEFBeJCi&34}W2pw3sK)+d*S~N0PYMT5}^xKV{8LE#&1INpFxJR@Ih{v%Jb|3Y0^WnvBkOt+0wFUFg3U=M@Tm)UxanQIF;ZvaIg7b@KC_nfXeAw~k PYB`e#}YG2gGS2kk0pqX(;}m2-EwHm(rMc#;UjzGxQ%bTztbuf!)y{!XBi<&=F%_T_15#U@2dMD~0A( nqI<-9H?|rV1Cm7hHHC!q+U`>UBytLmc^$Juivu|Z$7?WkTZJToulEiyyMem*)`Gs#ylsv>`9KoJ&fh Vy~*dnFsqDy?7L=zhW!CUjPg#jKTz*S7dX!5OP0@T;o t110o%D?X9WcAeDlf;QWwD6y#c3T)+ro*l}FVYmP4E*3)dD$#k9c$$a0C%TCfc5)?QNgs!rgY*TF@6{ W_xshH(am2nc!>tsegVme}>+zA?wcmT(bF7VK{L^MMhx&POW&UGWA{rN`p!#;Gj4gCX9O9KQH000080 A>M2T(;J3ZAb+G0Q?L903rYY0B~t=FJEbHbY*gGVQepTbZKmJFJ*3Ya(QrXX>N3LE^v9BS50r+HW0n< uNWu?YXL<*)DWnl?aSS(j*{-( !;>`Ji-kzMH9f;&T?D3emP^C96U{c&XXNfz_8J$tcO?gG|0gvwx%>=qLFnqjcH}>)m|wx;B==E8@aUE y#Oos-g7h0cLiLO@zCf&1RLXsaRRj_tK`q-n%numGigG+dKM;E{&F8#Xsis^d(~Ym|~J7uch`@v^07L W(Y;5t%yIZd(ihTp9P0EKs8pCuvl|{sSytUD{>NL1cbOB3P<&?gspp~o hn>QJ2EQdUrjJl!qs&6G-t$l-BGxCj8mV%r_88n*mR(?WLOdSDeXMS$|@r;u#VhN*GQ A;uF0!T0%V6Z-Af`Wcg9qi*K5t=df(FF*^pmMMlHiYKqQ`5swF1GWPv^HN^X fWN1_Wk*81HBD_X3XG{<(ORlT2L=5)iQSt*cAwqUhTEz4X`+($GHAUBLx#2ua`1FMIz&@^b|*{(wt?7AP6+q*Q X8e414qD61kW}p&@#$!Td;q7`8F;1wMdWP&{( _S0&}Wy>c1MzI(WeB~dv3jjP#@r9;v~oI7v?&A$qw-6am1d`m?{Zt;D81eA?6X#y;{w=DO(Z&1KB=;Iomrr_#nL?IB;BgKxh6$O2CjEtrW3@kG%K*mwygwDO$!{H8Sq&9UjPYbW(1F#if3;;ZpvE??+2qCaO6f $%D%_L{JI7Mow9{d|EdL6?!~RxJHFt*M^73=JSj;-?(Qx!|*RdP!G5*?8J>NU5qzI@Gi~JR)M+#C1*M bsp4>T_#2|drDL`qWcD{uO9KQH000080A>M2T=rTGwFL?Q0PGq703iSX0B~t=FJEbHbY*gGVQepTbZK mJFJ@_MWpjCRbY*QWaCx;@ZI9cy5&rI9!8$-AUmRt#X>xZ9_|UsFX@eF?kQXGyBGAziWiv~Qsz|NZhx _q;W=OsGWj95E+YgB)4Tr;dd7c@TjopYWD_h?-D$9i4)VA?LR+aVAYg@U=B)%)Fjr94td$ex&mDbYt9 ~xN|cGEq%otu=jNp6i%IjcSby7c9ySey9R}gviW-gvfW8~7PxyYsSlend>(@evZrjjOYy*4h*?FN=~T2{( uWLVbf;`TKg?fSEqwt-7Cr+-toFKCo+cHIhom`o;xDn-6l`Bm7_ZsEj)eqIRYo0)j{lUQ17E+zth_r$ AGY?UZ%b>EA%yjDVrt=tK3gA(D_N~p4=@Zclt7q-Mp?L^(!Tsb!udPF#IM;3zKEe&y0d }yiLO0N5n_bFFbV+HD)<$|dvREv{bgQc;=Tl)DflPx@PI})Y7CTMhNCg|FvtT~`;oNOgi4RSyCj1f`t 0DDL?c~z217_iS-KcAATPGIcwXGDt+pZ}yNJ#u?(Mt@Qz|2mcQ8(K8sBw@8=YP&VgEXsxleUfalrUns 6M5S-s`8?Red*r9pgtZhnUNRH_EiV9&7X^ky69cbD2{Pvw3rR{*=A>=V0gY>Mk|rA;JsMujJ%Fc2~fa(Q(J-lh;%Rv$z`Z?*4trwdJO7}WYF4J!#Zde1~~lhJHc>15!m$|f^F@T5^d`&_{)rmVzyTW6dC8JsA0i^p?BNc +WEdj50<+)v{QT6_;db3W@}HG@+*&$6S}8E8bvhH|RbNE2q!mqzd8S4EI8(fnB^Y{mIr8>30sM`Z{EN945n?giiO7L53f4< {7Iv)+PeLeWp3Z2TtJR;1UgJ%bBbya%FbA9io%ynP|VpRn~unlxOm{y?x-UMjEfg{fFb=cIR?pqp8H9 )#Nn=(>%c%r#7bSm_23dgL^T&n(2}lTx%NsJYiq|rUdm!*NJM7ZWzw}7u!^kV4x_eC-%O8sh+Fw!jO3 >?t!pqiEA9|E-GucU_YvCK=4uq#3$gaTzIgO#*{G=;)6V(E^C6}ax_`HM0Z) iAweD*!7=eYvKaKP4_4a1>+ u7suCx3bR?E4>n46CSv$*6O|Y_L+v7DpJ{C@uK#m^tQhZmop|7+AkgdT_3;stk(Cwd)Xvcm;$RfB=RVJJG W;2xNlD3?nFl(kg3IMaCV@pXt@ihZ1u2i^fdyp!U4Er4jG;v(AtTH^SBd4s2 MhsvN+;Ca$t4E$uc{odl**YN!=LiaL~~I1W0S7#*t%>oJ>EW4Z|2fofi6JJ3iR?z4<|Gb%|$kk7HJ0dtu$AMjK%vZ8U*772K6b }i38_)$IM1N!QBixR5Yc@9+ZSl%K$+oZ5p-jjRCQ(>Y@R1pb7tg8PI$KN=jp;A5H08OcK-bhH`7(X*} !a=z*L$`3}z7iI1)6R)Af5Gx}5s7ZA7Ei2pCfsz&z}$^M#Ir?F4R|LM#mgTS1nXNPfx9{26oau{Nskr >M#06We4(s0AFSmvN=8p%U5(9Ht8I n9M(_l+&c>%&+BzkuWYplpWcjK%&e&g`>i&lva>-QO_)KO*=6Dh!4YHuTGT#lO?)v$L?8$6z4eX$4`l iIwntP0YTpzXDb1GO$%31JPi%WKgok*eyY0UpnK0$=5ha%p%v;bdlz=vbY$ZpJkGf_xfpO&i)FPDRY- bwjzrLxNoSZqzkI&;$UT%FZ({zwM(joEZ)~-D;oWE9>O<9c+B5A$8>(t-(X%|@|PY$zs$KK{W3YYL!b -Pfd~Fg!y!g;(9}+Z-D6t-Uq7H7AB5>)EjbLKN*M|HK4Go8E4W}!oUF8GZ0B#CO3lC=VI4h@X$wW27_ uda9eD=|86PE^kBDUi40M7}G#Dg7TGtA5=m;3;`fR}$#Yv}Ze_H8`O@_VtjgD>rna&5dL}CY}cSo30n -m{#aPHU<6LO&T?m*kn+vVYfB?l@$HL|WlxHNn6 SIUxP_A9C5Vyl#*V37ac@+2Xiq(AN}?T(wabwR#k6=U0GmlqEof0>sUjIk6H_8xomx=WHHsHPTX5fqW!=W7u0o1fZHL8n&`13Nb+cC-oU3sJy{+y;(`DplSxB+ZVi+M!oL@ rXil4;U?3SZ#*9r~qA9S{KyEgyt0rzJ7+fOR1U2>BmM;s|grnKcWv}QM5GZ4HGx#ho5O9KQH000080A >M2TqAo903ZMW0B~t=FJEbHbY*gGVQepTbZKmJFJ@_MWpsIPWpgfYd5u!RY63A3z2_^2o Lp)H^(eGp%Zfs=MWq!*)~MMU$R;7lR=Z!{Syyql9&9ej3~%1NHyKK4Un&uPtN^J~<1!wk(Tq|`Na{=m R$7)w9fZ?du{=oSStk7kWM+*E;H{ED90DPqgE)Ro;@LDFO@?nHcm&G!J4MO!ymLuUx)5@!#KH&H2FBP Dfi21ccWhmBXdA1-x}Xu6&2Lo^z*ChT3fex0^|z|M5q1@391{_l58rP~ETlzwe{4o%+8h7R-d9n%JKx -)%ij29F#L#X3|P>V19#9IAtstlG0~V7A!I93kUrsVvy0OPJJf?YdG@9(R#KY H^<{FUT)YO9KQH000080A>M2T=!C|;Rpr*0FDj-02}}S0B~t=FJEbHbY*gGVQepTbZKmJFK29NVq-3F d97FPYvV=`{hq&Ka0-?|kz=Pv?ov|d{pb-expKL?ekjGPq?Nry(yH3kIfBx^y>E6`j*>WmLi53qSG#X !XWqOS7p<;ny)HW2wQ{{CRW-V`BTaxkuvmGr>rDFsj^fEV`WQrD{AuoChu3Pgs$w=kSL9&QW`_0x |L-g(5$9ZQrhZUS@Y#9W!P{+U$#Jp5n<(~XG@)tIjI`(66>PQMVkXFZE>jp)|A2)x~-_vc~^#uAJf*_ #$3$j8)dg$3h%3V)7!1C=UMolmO7mmS+U4ZPtVfg$KrHxdYZk-Pv0yTMRAs&pUTBzd7ga#MHfaYpEJ6!U2E?q>b*`s;di_4e KR+lS9LSD&sYv;ARMe{vqdyXV1kE<8@|Gls%B{eo$QrXD6F7GngSc -nJ08Kk9KeVlGWBPOx9=?gP^NX{K!~VM3IpDJ^NAX>#QlzD%2)jU6k<)jEoFz%}Y+Azi;P8v37s~Ts< ^3wkG8NhFe=EIEL6f7W3<)accZ}nAI`-89oi=rEX*$U4LDzW-;V6 Ct+Oe`4<7G5_KasC`i$pm?l>R6{?iAsH9^Z4##}RSFLvhRSbd1OSc0R!msvdsPCrLn^shlAOSnk(@w& v8tP#kPO0i!=uEENx1DZpSw;%AK?fk+*?_j&s%%S+m%3{iH)Ht$rpRpPuIeJ~^M4#p{Vu8MjP-gI9Ce b@$V`b6ju_b7%GNK-JDGLXF$=(sY5^$k5eAhxJI>>Lv^iXkZ>6&g-t9O@KJhSLI=AD1#6gmGg2@9hJ_iL%szAq>y-o{xShM4DQjd|IOZwioj@R@i!rm@#oP`qZMhp{I+w&7 U6@4OyPL#lOsZsVuyy3)K46s;kh0ytKcr)7JyB#H69@q2r8vy@WDW^yW!2c^X-Nilt(p3!5t)SIJ*l# BsfKI6P^M3s!baN1jp2#eT0*3z54N;QI`rQtBhI|W8S&-S5@IUFLSAW%9az$5r^=Oy8J$Kg NZVjRl#nf9_wUitas(Ak8kj8NZ)JX>cV#JX`uM(TRu#QE|dO6WwGBKjrG@p;CSY*1sVLZb?~2;-ds$$ 1FLWHf@08Gh8CMz3IW^exFHb2XX>lPQJveW2a&KD3tvBEoz6+*RLM3>yKY#dMwcDy{sl1wvC2yAJI4^Sn2$Tba*F6o4?PcP+%Zk!hMD`|x=QarqCW;A{~5-Y$>a-uHb6Ub5U j0mQFr49KZ87hKktjzA+ck=iVa2By`KhWq1fR8LS`A8Wwjr6`%0^QA9B&v`nGGFj+Z YbT&%X4ukz-ThTEE9%mS(-yT91^xYK%5=@3s6e~1QY-O00;nP0YzL*6J8?a1^@tt6951m0001RX>c!J X>N37a&BR4FLiWjY;!MYVRL9@b1rastypbu+cpsX?q5N;A1VWmfORhzJY-mwrL8eEDblRN5EwEoQ#Na fR7onX(e=OY?nud!rF0!ue@OH~K78)(x#Llp(FIGAta6nRNy21NYU3DJN;~ePR(3QB&$irdbGaI2I3? A2E>ap0^Ho~Un>%6nDi?l`JCssw>UVd4y}n8=UtV4QKEHl3Wxq S+nCJsORku)D1QkW?3iP;0TKfsE%H&2+{byeu@laWT8xa2~TrL6YvN8sY$q!Q)uPu@lG*c^BgFBWBZb3qpL?SJ~oEc#yn5g KnCl-(1+}++>zaYL>Z-DWAO?gV>zy0yMaP|E+&&CU|Bh9(B6memFSjOY=1=|~5mgGlRd{xPOZCO#}PL {bK+MbqHsUUmOtw?tkDHn`yxCGG<*iPxaI@@TyW)D2C1c)K5;V;%AgH(}9x+ICL$g^ocpRu(}-Mw{Y% D`Z{S}fS#pll_;F#I=RXFt=0Ctd^B*RzrvUNm?Ygopua0>u=?u+$)A%qpj8E$atS2pcr~ZN&!w0RcHX xMCglbN2C5^H65B!$6==0!|oHCTN4Crfeq;FieFBv2>!a(WE;Ve^1yez5|6rfeC&k#qfO30l-2g0gDL C0oe#9-d7w29ilYp!3Ey;z+r)+*~NHoq6snEAtR3&A;HO_0lhhKFH#^$sd61_Y)^Bk}_iMF}2?WGrH!Ko MvG*;1r3lVBvM9;}>9@oybiUzsso{aPN~M}!;_pBm^rF=PyS>U19rwko1rs3=qepD5v`$0zn=qsio$7}6#foO(#B_9a- 9W{fHy6r9AP(gUKi(mL-HJipW9-bd;~9d6`O0UVZ3s$h^xJ;k>M!2Yl2Gr%ZXY c1H?yXDxnCWeu#4f6eTg`Xc8Pj#@tA)9!~MtkB$ELS^Vu(f8+;A5=8nh5bhzc12<_g+ClqWTbk`c%cF IOW413~le9(6h7R6KHJ9Fp@9FgxEAe40I9b!=B(aYTe?YlJ=y+sjG2R3DQhtgjT>+M?pY+;4UL5w1RY)J$lzx4}%jJeIevg?ouRRSA_AM?vdqR^tgayyTn5_Ro00r9|h*2Aq|^N{P -MZ9B2!{Gy7>)uHY$Lg5XOXzi?RH=d}zTYW#*`az7yywlBN5NxP4c;0uWwa12M&v|Y|yKh6IL*w>EPM A}#Prhh1{lS_65g}eTG1}Rei1(*mqu1~Nm#@(?4vFa4*PfsBI&Grl`{eW80*;9~EXLDu{0@#CQ7=ZJ( e6E`S+g)JqE;-#x!=#@uW8sqQ-cSa{?-*__9((pmo1py=DS-p F-qVK{ho?jY0d^+-x8v+^(f*A-J?Jb8?b>qb^JKYX_#I-?$(JYWHF{82hGqN#53ZuwdV$JDC}@e`8E0 eISX?MSZ=1QY-O00;nP0YzM7lYP;w4*&pWGynh|0001RX>c!JX>N37a&BR4F LiWjY;!McZ)ay|Zf7oVdA(bEZ`(!^|6iYCk3mo}k(nkv9C|`k)ODQ1Xle(xueri!5G!#d?S&$BT+*_T `n%uE?1M{+w4J-QE?SZMn4O*Z&0}ZTMOmy_k}T?~E=7_sx!x3I#dw|<6|ZEGtI^1`&5OJew^b%*wnda >Uf7qcST1G0?7YS+o~M~8m2EHFliIn*YE=rJ;_LT5wfry7gY(=PtL~d61H%1_OaxfjWC1^t9I-gnN_x{+HJg^!+bYpM@at{UXJvLjoie^jmXoYj7vFR#U LhCWWvq~M-2XsbmQ26Ior?xXWrUlkL;tJlP0j5@Rxys;Q*qCMPw9c}3P 4mFSj%;wHcUq$Z6O>r4MP50<>(`;d)vl4$1-|%Fm4LT0=UH4=GE;E^yx6h79H0Mqc5ysrOHsWC7F+Ce =FN-shC7Bno}9iu`*<-tJQbT#%nAE;&gA*L_X(P7>%GSE$S+awQyB*C5T?`GmC^BX;mTn-xW-Sq2^*4JK8WVLb@{N &yZqXP0FS5X6Qj>?~&=C17={#*8z~9I9KeInS9|61tCuR??5b6f$3?k(A(g7d%fJ8a<*UaG{O0SwzWmm13cRyL^4=ca@JyLam=>vI4miu_0wp?TU^%$ ^2;6*%@`=fjGnuoHo?^YDF*9$t8N|yEO$dn1v;Tt-#0s(Ti%!(NZupl1?X1m++ofe6sJ_XF&Rw3Y{w2D*l4bN(!!YGPjJFt;U6G1??CI JZ-;H0PC{>E;FseKrO0vA=X1vyU9VQP_8<*pG^2YmZ-^t2c^eE4iVAo2wwD(hcz>>%g%=rIw4h}IyJh nVToc-R3#w18X({a={Z>j}J9K<8D*4>sPf>jUZc(Ba;Y#=r@VU@O5h&N(^AYc&2b49)ed5PI7=*SLHU!5k@MZ;L_H~mFolpn(N)X2y=7Bv~=jmDucz^>AS$I;(wMZ7!333 UZ{(A6qeeg8BeEM$k^ykUbi(q7j!&yt_vPzQBZBvPCF?Mgyc)5gh2ag)Aji)Is0j#e#6H0Gj8H)4X#A lzjow+0ogjgd}t89(5y?yB@Q_RFphe;37Q5To-$WfYXcnKc1!{?#q6lh4yr<+)s$sFJa8B`614bX*zd m(Q{+A_$ktSDN_64W>^$`l--BOdo|2qhV}m;f=g-kYKIhC-lI2g!Zxq!=|CLx>q0LhzJTNE%}cBeZma 8Sa>6;zne7L1s^qht__#7HzRYQiLrb9A)aC>=;sN?tfP3Y2ctFCYkOhD-L HQ~t-p^V5^lw{3T5ET=u!@fQ=@3RM*LACC62gUglBJGR^689JIBI9?2JdMhzw9|cQ`{HsbQWD>nwhf- D)pJ0=p1Pd(d{t0cuV)zRl-p#%wj?d4}&im!yRtg%_+de&wc}A`UWpJX=J8`Q(`gKlC_k-jJoT0K9$x ~jYPW}KkNF#Ja&=yK*vq6!E9Y;)C+-wIH2zf?bmUKk-oGJ;UA2barr_OB52KCk=H?(CYI2;Xf-+mlLE 1cNqBI;eVP4#)xH|ko#w4>sEhtSrpo3;o((^yUV5=Ps--Las%3WTx%{&_YK0K4o5LHzGR=HZo{PTHU_ O%IToc!ssfWJTHvDYd$ex^VM$Kl-65c=@qQq)pw(2157VsVV7nm!^^D@*@=OMmM%Dr-nmus8fCYgX!k6#6${r3d%Cm_fYi!fyG?sz3^5oD~7jxWE7zm30sPUj~wev__vbnvJLUU -bqzR_6^xd@xP)Akm!bQK!{6D{2-r9gf_gQ*zRp;j=N*b*pyzLYp&Ua1|Rfut|TE5@7h qI)xovkx7j#x_t$EoFCg02~Ls8P27j(V5%%W!+kVu|aEmi4GPRP>#&L$BIuF!Iy!uOH9OUtdgI8Tu-d s=9(Ga?O6z#|e<_)pbw8*>ANy@Y>6bTG%!OrgOif?WV4ZEjin1Cp&eWR&6~~JXzqvycBFH!4x4UN+nr(^qo84_j6UL0yHRW97wM>7nFMX17oN1 I>U{~5%46(AFyb#7eMn@qHwU`Qdt^Ux9O%$xK8`Bpdnb;&X7BfX1}=DGuur#3&)7(;o7%AK`YY(Fr#J !ty9l#X~9jFqsr{Q&!jO=#Urhtma(UHjB_L-=QNW|L73WM6IO?O@$vGcbn(^WL5fcxfkOzPFp~ZFGP5 _tX25Y5S+IeWuzXLS0-6N|6T9-f)rKyGZZZ<=$m>BFl~5!{yTp1J8vwu2iFoF7kz30(_OReUKwwFt;i@^ob44&_zUDAu7dxY N1TwkaR{$A7eI)>cH<4P!4n*)KSS3_FBLu*LWluA|VD _{V>|HHWL#?CF%f9Gq=F?--bOFg&r77Yq@2m~YBn`lf#e)4zFe`qBBx<;l_E`<`Rvz>JgAH)mQQ&N+B Dw%BxvUd*5EPCIB80bVKx7VxIFzIIp6fr%o4A^)t-Gspm+(U}7;Zt=up$eC<_ZkZ9j^oH;?AjruDBo^ 7gY769k&S+87o#UOd(^O(i=2=6aL$I+>*kWSE6A-k5zJq%&$>2pQZeHYYcntapdd?VZLMr{aK)!QUFc WxhrkDX2(;`F(uK0~$#E%iLwNy<^P?n`{=Je-JXsL3B9|j1erE1%WWw%GORN(5>n5J9>2o^{?b>%s@r u{pCm_;vEMTy^{r22ataFvj5=^H&0aufUY+?0K8az&kL1rrwZecEI}*;lU!nuB-_-K8>szM36qg0V=#Hov@ef%1n@IOG(77RH#Su`I&;DJ%yY=hg9rsuRxt9yGX XY%&{cXJBmhz(L?BJCvCyFpAH#SFzE)4{n2;(O#yza0*C!7sR|!-4>0X6UGHTKGgKJ8_gPm|VmH8?#9WMS?`%P)(4TRduxP(=>Y=5-GzV-JtW-4D1W8>;Avk?b1 Q6*X3GKHpiA8jd)($KHk4xldpXay#GUk-tCI}r;|I6%$-S?>Bp2&{DbP~zfem91QY-O00;nP0YzL*yj A7z9RL8TTmS$Y0001RX>c!JX>N37a&BR4FLiWjY;!MdX>(&PaCzlCYjfN-lHcc7Ak@`~d F?n#R<(}hvX%AbbSj!dVl<36DSg=taF=w&;D2_`u}P;b9=ot2mL{<&-m_ToaaO+x ;tAU+&JgEb9q~vb_o10am6=DtmqupPvoJFS2!r%9=eckSY@9>W&Ulq9;)PV^7AXy^a%Jvip-`PUV1UKS8yUq-J&%w`5 vUOJE}6^ZI+Av|VbN&4&HI<6djMcM%z4o6ax_AnCo3SDR(>HM^@^VPQH0n=5s1e*G|+bM)@?KTe?k;la@p@rZs#qfshnBwf JiMymX=*n0*Bq?*v8;hW|46|w;IE>(!!6aG?Wg>P=)6)p>`4ya*Voj`bD=<(n215o0r!e8Hc3oDE5K? s|w5Hk<8(4C`y?gdHaozvxB_{()YFAH(EMN#v3SGy>JddJ(txgL(8p ~eX}F5`aA|>o(ew;Wk~3c!w%^)LZH8pWATl6Jh5Z--iqHH3;(g$8|*m-G4T%qW?-3bga7Oy_{aSx7n8 @A9TrD>?|Y8s0lDdqp;@<8#y*P81cj9N5~*SN&+mm fj@=XZ7=c0JyeX^x{Rwhl2%KBdHkvHMl))G9`!M-?}OML%D4X*FBsipR&P~GdxQ}8%$>Ds}Aq6r6 }N8^r0JK!Rsn)*#jSOehJ_Kq|nE5X};`!DIbMjh>Sm`dX!4=RgNDAVijlg@j>`>OcZ CA#s|(Jegvg>1u9lXyzUb*1vee2{XM(pz^J#$M6ezFm9@|@OLLczf$m*EEvq63=oG;PzKXb=>BX->(X _AzdsUM8248||Nx}UfyvWGvAjId%F$%hop2IQy9h*^cxjTaY3>8Zt4v)sJ#Gnw&>w2js`}=8`00)wW4 $JCl|8aPDw7;6iwJPL_?!tM!$agrfYo$itw{$lcX#~eO5IR2-;ZUZ_Z^JNfmfNAQfc2>EKZ-zPV41<) =&c~}VXu=W`UAaKkHFYP`7xe|H?K|(zB+gU8v5I~lEOwBqETQAfMYd8c#|ozdbWukdteDUXv4^J(v9~ t-l$s1oicK$t*!Aef9<)E)a()ebQpY--5|2tP}ubQf${vn`qFSD&TtpRGm*PsXwkb8?0;)Bm}l1#yNb Qphq1QIkHqQBG|tc^h|{vj*I<@q0fF-_7=#L<2rVla=i&D6-Mq$-oC1^hwJh738t14 kkQ4?WJo1mrpT(d?b+$@t(nS-#T0;}05kJ;wkIjK>^QDy${kAw-A=P@eG8qj`CtRkA!6vlyeV4$V4RU 4iFUrjivqra#z@h5Gq`J#z(<=z03 I5tlAX$kE6&P0fdAcUO*OqxSr2l%x+Kx?J8P0Y%nZMb1}c2JbMi#gLW!PqXPUK-0Fo&FoR8`*OF2=|| +pZn+`?ClI(f@g|i+#->_kdBnc}ikDg&=!*j2Ngj!8*rHaAbBy7cjJ2=M%I$Bp|7;%#e+S{P=_mn;m= *}W)=(l0y5d+aHnbakCHh?v0BJ^mW2~!^9&YD-;kJA+Cj{^ks_XtL=ld++8fl;z1Tn#=qN&<3CP0vk>oTS=2v|0&FPzneD8PBi-FZf!%UK!=dTEK8sFYzxnCh_2Su^uzJMrOl;=8HlwUC7`lbvxyG3E-& }BLQOAD}9~-F<#6;Zbx!kwz|F~V%zhfm~UN6)&vA6ClC`*YHzmfSmpqS5Lf1^=gA=DC}OJzvI?0o2`% i(nxJ0i~@fP+8X!d!wGuCk>+4sl^BzY|~C=A_!U@YJ$`8Fp8LDDiXIR4oMm?u+VvOpAlSbW(-<3bR(0 0u$kFg1fu-Le8rCrXh#{X0kZrrFph%)*L&$EvhrX9AVzV=KV!Rsnv|_F0tk92iHrF-h1OJ6s1;Wm3|% ?u`uob8@TBGu2BE>v4U~y5@SXm%x8-ZjAzklb8Lz>h1#qayRW$7RfGIr;stQU;TTh1v^ymH1LG*4<2y 3apfSLx?5=kM_#+km)bs~h;BQ&LU-Xf84|o5d;c!O+M4hq8Zc*aj8U4Xl)Oj{Dy$^OnAxL#8#~OnS5S U#6xl8J+fT)mS8356Bd7%kN)eUWuw1NaegfA#ZL79m)X7q(u(;t`w{+0#)J?tnuUXsH$!)3ux;{uaW- i-d>bO_9h?hgjw91KL7tWVp?`ZF&pV3aJ?i^N{i9sGdkdWH?0oeh7wu2EWNc^TJT-UNi{rFbR|4-O6} t$lE?f!EBt<7WHxK0MGDlkjkMFMj;iYvyZ^z_pT oRjypCVJ~naz)fH0;6CW>3A)52cALe1t1UIXLs8{*NE#RUYkhaUBkADC3>DRm1?eHKFPjm+(Ac W+xxS+ZEi+JgiRfWgnF)1;)LJr4vm(+uh$1aQbmO4NH7~srw2e`rx&VI802zv(@V&}xZ$KWV2Fv|8JF wd9_jY63J(x{pc33$jcIPKah4kM-)zvjJm>Z8|ubCa(Zn4ki+OM0q|ci-`oAtbFK^hP~nw}->JT;!-L !G&p-;d1>)UO@;FdTrPX4ZyYnSc3fK27rb}4} $6-t21ms8nFCLajkS_4Mv!>wGhO*6ExwN2kvf2ayrZwmt2r)3&_{!zpZBaIg@!RmYGaITtW9>Aql6OI N7yF$*^*YBoPg8P%ci+z7M;OF3zK!93c%zVfPTH;UlUY=M-0unswc}DYU+}Pu7GQHQU%_?4}Jc5LRUl ak^SB@(f63GvtWchU-PYt;0id3~o(U)2>TdWJ#O{xQ8V7?2svV8&ephsioc18+8B@m}4i1U4mK%xv89 -4LjytRPBU&0Du^|ou}C^bM08Kz1{b<&3kzRoC{7$x6rPku72q0I%f|at(qm>D`E!?(DV(&6jKK=zM9 QMSjU(bC=Fq7FNo3*xCdY=tisN~mO9whcwrD*rV4e9?;%LnH)3Ge_+szL`9mQ{vv2 sSG8h)9lnwJW>+7cg|$(uf7o;atK6@#KZ;-rGmP^9uE1F^EgvLjB>fG@01JuSg`gOHj9&IQc+ZVti&# sGAxv&@`203H%b+xxsI=FV51ehqHF*pD Mk3fO(MFZy%x}nEFUd9b)GRWH7^f1h?S?HuE5wp}7&msN>Z?0(7Am=tIE74VrgXVHuMV0?)!^CS1GFY =b_7rhT!Ld;*l!}kQNuY>TUD2*oARcYoq2ltSkg7(Yxo(NjsH_ny6=l45U&YHMs0LHFs4>SJd!(qvMA rZ^iJw#Fg#>qnX+=>G)>mU?zcMLVZbo= NRNprV3a(1rmZDOiIeGf{~(>4b_;?I}Hc-6!n%Oa<=icO;S6e>Hzn2VPIyJ2*ZW=ZWs4B@v Bz!$)h7K}HXr{nS1LN&G#tvH&AJBl_Y;##iBZH3=J2hbU#szRXG0@nM!9sR=75TXTF>3WxxnWJZ&NCQ y!y%XpI5k8s>>TWakSh5!tRR8ABOI2$lgf)=t-Tm5bYfEDBuMw}wakUSzzQ}7Bw6RDCZt79xn(6&xNkHj?On@uV*IqoO>`=*JZC6%NPkg)6 XX`Txl{<|EssAQu$-1ZPTVF}SIdtf(@ZqB4-g5I0@j&?w%mc*9b#k5R+ARcd%22 !0eS;8be+-vc7YpFz5u`w)h3Oo$-o5EN!~(OY2Lv^MVSz!GlfUE5!n+Ly+Yna^uMO?S#SZ4Cp~3G6CZyVVAf_12VzGL=}Vs1Th68W-qT&M9%riEbC|m&Qa6I^wPy}u2EtbxB3OKE%32clT8AHcXS^}gwI~F2u={e=tw-) i1)?*yu~`}?^)_kUQ0;H!GLI7$OoiLLwBJq{4f4@750Pf|9>G749DZN`j*$j(t#&qh!b9vPxFXN>TXf kxJqe}XBiPP+7ebssIH>CKS{7Si40pGC=siLi)d7TlP{Y}^qD9?i`?;-MR=X+HZ>~9mDd;34bbEL+ly o2Br#?6J;Y`{gTH}Vz@9#{r`{#WV7uDbZD%8kmWPD?Jw5QO%H0;!t{&V`CtsuFfSfYM8>gPioE74lTa |2gf2w~zGg(@*xzk&%s*#!oI<8xK{3?gXYVa_bDg1|~LDj?S-We~<2&52#K 8(U|UY}@e&wlGawEnAB2WVR8aodha+FzgVVqLVBRIQZ9N*y<;SVTPboZ=VVV!eQ4CF4=7uR>9U6U>H$ tj*#?#`v@g;rD2EmIU%wm^bMCpIum*xHmU!r+mR6Ut-9w(mHaeHW*0b-u;Zo_XkI3~(w)k^>-?!J-cQHT}-cww}0M5d8*kd~?cxTP$= Akm*5O>3b+C9poT&}fa#`M@VvzwU7J>S*9QzyA;TJ2*iL1$|?1BUlpSFD<;J)JYJ%I0cL1+z*+plwi{ RjXuDUKN<+LiLFnhZLwogHO>5b&04u*-W-%?uexjm%p!~4I<;+QsPbb{|sS(?fM6IP6ek_ik+E2P Iq@RF1CBb%ym{X`)l WV)F=#>BI;C?FNt4G_zD6mUH97CZN-DnZ9POcO661%a9q(wc-jSIdatw4O&s5@Hs_myOal##CFfAq3r pCD{`9vDXCGDbj$3j}{&v6>lDT?q3onNLnwU<@B0AYYDoVigG^DLDSLGX2|(x|Pz&}j0tkGVr&rRS Kv_OT0jLm6&D<<6Af9M+`cEyFvS0R}f0W_TcTjmPKl*eO9c1)kV704{BA$T=}}1!kd{Vz9ZtTrcB&fWMz9)kw8}c=Ywxq%tU_ k!A`6OquFqCPxH6s|a*U#6*Y|3XcJ{HKm=UBbn464&dW44;>doV`hm*0LS*g!uHXfDsj1r68>falD>O *5KkInMxNFIH<0bfhm*@zA5o#5`{9LdwXAnu>KP)Y;Qi$i_nwhKPyx(JteHjz(s)e%vv7)GJD>=hsc& *n-&PfCglOC60sKt~c}Yb+tGPtoO9&=SRiS?%+iyppqHCcE4Xxey#BLuxoc#6t-N=CmHhXt|84!zKwmluX%h=m%_lv661&h_(QSv}^p5 &4z>#~^EUAKRlM>xI2Hj}|otXq0-Cz?3#|v;t9Cj#+RVwa%8?5r6;0VZk+Zxf!$QCyD2(IBOS!0B%Cg xLRoTfu%vyGe!S;v?N=z$)j=SB#gpbxz{(XfZkM#!#LV{qC7lMVXwJ5C@r*u?yJ^O5VGb*Zhuf3CMtn _m8dsr^qPAJ3zQ@DRl|C;)1dnD_r5%Wcm5pU-vZr|N`;iokh^whR4lrfo|r^JPM36W|{}wFhy3kkhvG 91^~Nm02_Hf6uJ92;9HQ#4Y*{&K(>W%)mufDjw$bPicjJgu;pFsB|>bpYP}#M))V`na`)f@Z1NKN;d~ Qpqo1HdviYS-3LP|>H(xbWh?$qte%GOKe33z7UX|<9l6pwu8Js|Mc}JOv5Km)tOrt0XH*Fe(G)hvm>t 7u)ubhD8{+XX@l%oAnlzJBQt#%B0`5ZDSo(eqRWd6K%-kA%1mR|Nd5A^4roCeYNF#=_KdACi y_F??+YXNoXj>X2gWp1d?K4?yBCER7+dr=`kLz$HU2^V+-7Z%O^j)Z5H6!&y+j{=ucQ%mjNpq#m_f 6`xG+S@}~?IEf5^oA#YX#!UU&=%K4xf1woIJ!eINlRk>F4c!JX>N37a&BR4FLiWjY;!MgVPk7yXK8L{E^v8;R83FZFc7` _SB%0XkyxuOw@6g2kSZZnEdp)`IVPE84T+uF&H`0`e8{8`HWu(3+-Ex?!viAie6j*rBeB<-IH)WH_7gT#u!y67Rz8R+r4#+L-x{4Vp ywc%gYy>tzz?HwsY57Tn;iVmw|JwpKL*bEEz4l@8SW@`9+8qHiQlu33{(w%i_j>l94;dE3OFcWKQ+#hXzaNRc-j3is^ zI@e8pa$96G7mMT}(x|w$0~YVr=*U`*>TvPOs@r^F^^;EQqjDtl2n@wH**YwibdnAooa>!zRdqEhlf! up#X;i=*h*4VlN|9j)W(v|{6%Ys@WF4OT*dY_VKUz#<`GPa_3fTi@mdH!#tK7OEQoGKbfv1)9nL l6^kV4R{j9;=aFrsRxPj<-WeI|%j*VRaMC-96Irqw-q_>FIoK;SpR={lVp{)G(%Xp_};BqjqG;V{$_k BIGF(!==Y6IDRX8x--GWB$BqwBUCCXRjRJh25@PcVcb)xq?L%$c}m`r5q22et%vT8lpFENxjL* ePF^Ac9g@Zs$f^o6AN340?CXk4i_u?nJi*b>s*Z#Y6HaGTKtI)Q#_4mk3a9$xG%w-?bQ*=QOh>5K3Ol }b$>p29%-CO0O9KQH000080A>M2T#AS+L3{%M0O<|@0384T0B~t=FJEbHbY*gGVQepTbZKmJFK~HmZ) 0mNaCyZSU2EGg@IAl6WG^;kW_t~IFxVafW0VcLhf<7UpBqtGawR2Q{{2p}6SUuqk}ZQpV~{$ccZ_Zw@CLVw0YbaHJOHnS%sWy&k_XBk^6tn)_2|&kMS|xviA9|Fr{P!--|TT4a}GJb+ZFwG;BT-%iz{9F4#U%Ue+cQ+aJ AEBBH)qCx%*Z^SA=!TTSS%=}!qiBW#C&Nuvzp-Ol%A08-8*ooz)-~NE7J&Mx;*D>O~rpN{*RgMn-OD) RIx^7WJla#%e%HAYUnrj@lQjYic?!(Q~I>LRGY>9#rZL{v2k2CpFX^vdZp%(9UtRBFtX)Wb4MA3G?*i}Qm^tm(q=nc?C|h-Sj8FzSUM6H%Zv)EHX_YJ3r6 9%6+zRibUFE@>UR-~5Oy=@(Huk4%o{+8EU{8pG+faUhP8vSX+k2W|>4wCmEdvuF0|};Vkb WU`8~?HC~*$Ts?zIRM`nde@Cv$Lfb=4wdp5k6pA>~QJ74)1jdwtF{54(;~#{;q$kY60BO01czrlt^|NDIIWsap_4|xOQEAUP9E>SzNXLZ5>%R5Tcb-+E0mkj9N8T JZO%H5=JMQQ#YF<@tk!j2P>axfRdV4JpMds4_WXjyk>>d-iP#S_~sPFg4|!-g_2yD&D~dSzU?b$t+;6 ;`Z!?<9;gv*!JMI+@0mf34zID1E)cZ<|08^j>mji_r{Lb(=jE;eykOu+lfckX6Mj=_Ux3Dkjs+2pEe< &{#*Lp%fOg(l{bmHx`~#M_?cKg`WmJI2*?2VR}9{H4g(<46;7GuI|El`u@y7ZMm&Io74;Za% FUKc`k5yZB$`v+b|IQ?q6|aU+m)g2N+rgZQ06T1ZFlyDdu9IYcW|el1!R^zmsG;by5+CxjQ}Gz4xTf= mF}wo7`lmu0af=HV#lJ?a&FWY?92eZc>fYTH2)Zo17SEDIdvnb)zTc$mC!p(Kr{KMxox8vg+^tsebtW ^zh^P=eHalP)a;V%Aq=q^cxKy)oqK)1bBUbs_EU4vc9neb&m#zUn4b1D6Zgc!Ap15E(^gu2iLlEx94z @wA6tiXHIFTIiheSbW)?^8Jr$#?0BBKC5fjwkz{atzc&8zvVQG(h}YNiOmiUizuWB|snG_VHsCbij`f6qanh4GPOR9*EYl<w0$z4`KsEwx(Aj*71loyE%eCSCuZ(I&Z8N!T24V`*Rxih=VHZAvtol}9U4~$E$%iCMVf8uSR6@EnTf Vj`Nh;+2mOjJ4%Z-ZcIGO(+7R6dPm4)EhvX+{+a=t7oZc!JX>N37a&BR4FLiWjY;!Mjbz*RGZ)0V1b 1rasty)`e<2Dw4_pjh;Fo@lCw2OTV>ILSK*#>BvK_=5axPd@Rbj(I3T~e|q==Q(wIftY~N=h=_T>}|g (&4#ZK2ozade4et+cvEcMZx6$piRTLQo7-d)XL6g{$8!`@1?pAm)eG3c2|op-9@`O7+nf$XItc5>be# samx9o3<9niVfdyNOZEdl9FQ$hH;?!`5WP{4OZJY}wWIuA;-Y%VJ}Y21b1M$=kQYaxDs6Hj%U!145UTKGQ(VNCQXI&<&NO8k)ERGn>b!AjjGkoBHn O(4cW&VE)8)ra=<$ejg}OzYrS?4|A8`<<*Rp>D;OW;T1L_j|6YH|E~56|1Ff*5tsoZOk&Fyt|vtW |i2oJ%12I=~m6Z;jr$40WJG?L<|=Z-vvAWXMBAzWAMqcjK1F)!5hJNOu_W#S4fLIA@ni}CoF)w@4`S_+g?CxxhtfZA3GkqY}c}1S@R5h~uBJEdNzYHSbb~`gZ^p9Fq+peU+$*lx@AHgrP1ml3~)D2U}R6OX_XaCzowJn-7=#06Zc{?k*A1ZG8S7dYf%;Ca B^cucWc_fl-yikj~^06F8^kk3?uMKNg-IyrrY0}XbvUO#MXeaSqqtS_2Y+YY)7CgWo@4+XV~8>VGK5j zBq{qN)vo2oj=Y7lOBa6p^9OA!` N>ot|`an4J;Q26w3HOkapiGzHCyX(#@>rIuZ`la|9)WY?ik8(d2x|5dF9_pllr!H@9u5Y}ja4yz4BH8yX9p#LwquoQ90_C1NtV9thO`4`#Mw$C$VGq<%SIoC!}aLwikjvI7?ZCk^q!9qR 0b7dUz{L$D6M$VMBA5J6fqt#L2+;_%^~t@9yg*0xmvJp$6i0p}2F$fUeOgkb$k+T4rga=XQ&m819`m4NNex2s60pvpB4ChVW2i!Xa{!AYF?k>@ 2&$HH^Lz6f=(<44hV52rBj4ksj_X~Zx#f%<9?ZixyLYc?A@f1cg6N})nwOZnOYjEw=A+i}3?0D&5I)^ 3L6r9M2)7wHrWfTJH<>X^5O3dZF;p;&YW3%`|HoQ=xPdjkBth0n4)9=V;Hbt*13(u*W*Rm8WbP# 3HG(s2G2)9T+h&-vqh+AZ_-35g>C=8=O+b{caGUA7WQ?^25$G-B)?$L8Ww|4G>XB4Q_PSenSwqj8_nN ?PQyy{w;9E|hRz%Xiv01DngiL+jI)C9rOuY|4UbwC9DpoefagWa;6(W;q)ySh8SoARBPN$zrA!)^LJGOa98TUsUE#(s~zsLJ&nW28rZ;FDeNQrG8B7bI{k2croDgnL1J2oAaTaQGXqq>SGvAsE3aOP yCK7PFfXy$m1t2n}}!&dy2Xq5Q08YbjJF`p&O=7m$sQdit3%dm_!L*nQ4`TL1=L2h^c1thyx(%Y)1c3wu4r`K*JNgEX+ElLo)PURqfAoHU@B2t0P5SxA#&$E$+6dvIyLk)$ XO?_t5Ct`qytZp%4UD^JvjPvu^X!8q`x17#rXZk`cI_T16^a0LSUtb-#@$%048Ngi8u$8;(C;Hqa{Fp URQJY1mb;hNRc1Bb-Gwyi)#Rs;W!NnKni7wjq;Okp04VITp6{^TxvM!o&HIZdt}&1&+_JR_*+_nMR_t KTzxFPL4>%=u&S6|6kaA3GC2*?ObvitYJ56fnQrws_p`9J>D7-3423>Q>ynws0{40La1gPI5l=_65P) ;)zw>825fNm@}sRe;WuOjqIAlGm$w!hwrGewN$Y2kIqDk5HoH`4{s?mb_H*TSWhYr^W79;2}on!Nndt4v94P-vsd7+v4#VLwBtH(deVBXrI}K&2e{!)7V&Sbcp4-=P qOLT>*?&dhJ7lpN>`V;%zJI>MiUe;Q4o2KcEu$=IwUZ+NFEr=%j?xRj$~Zk5^786l=K?2>5w(hC7Rcp qEQ9=AYm@(!M`vr60Z1`YcS}81)(P+>0Oz^?&hFh60hE$&#z$|ML(cx1dwxDHJ;S;wvH8SI<|=%FCE6 it#RSWbP`t8WVf9SN?lgW^qEhaLoP#P)h>@6aWAK2modQMO;$6$>FUF003Jg0018V003}la4%nJZggd GZeeUMb#!TLb1!sdZE#;?X>u-bdBs|7liRit{;pqv$m6jzrI;ptzgC%CY$f*8iCz1ev~%$=5D7|%DS! dMyHgYAw|92|zCfg|$xPbngHIwBi+$e*OP59;SeBKIYmCS;CJ(hXj&Y^5<4$U2XS4837^8IiLpouc)| G7^RC>3QYS;eMHm$kaw?CaY)TOLM_uKGXY*7}sB{t!`AYo?n6Co=5}6(dIY @(%A#{SE&libV*j#hMOZR0*MqhWiM29WJ-ua6s**SX(cRkdk$_j0`~7Jy#*bQD{rhKogpJ&k-a6(Ytq 46<&(cZd;TQbeDURazHMYxtc1Fmd&_KIKHYqtef4y+d7eGKeEf8?o{M@f4y)U}5Y;N@`CbIlSDU|O#A !V@;=2`bnv+RqS$lTy+(qwH_5=F@WCwZh572&m;^ab?GDuke@0$yf%Wr0u`CvA7| d_Mo2c329kE}o8TEB5?GY6BEAB1NNTkO0zU*}{sdBvYeNdjaurn%TW>K%_!c!ifvunY(K^5@TCeZ$RM h-}Nl5aDkGTCJbZof)V`RfAdworV-Oh7y+eTP3 eNQX@PPkv^~mB(}v6WNcu_XddlxKQO|Op$X?LurO`LCfT-on=DG&Ug_I8Gu=X5Z|8lOt!LLSk#3Y-V|m{)?s*QN$nj{Dj%^{I8Wmo{u4`jTS+glJ=JLBxzf-t5H-2!q- PE0o7HSPr;1;@OifoilRVIAMFk5uzCu;paN{3?Z1XzT`$gJQY)H2N{Z?6tVd##2&KfEAJ@!Fh&&<(2@ {n4H+zGWn_wAiKW-*b2vm719iycO&#K?{XC(=ED1BE$1F%ZaUSdXoAmWIR50G!l7aWIv?PE@h)+<)8! s?9b1?25rQx_EMa4RaTu0?Mu2RW~TYQsgX@2M;8-qN=d%vYC>99ISiRb-Vi?Ko@E&}5<`;=F9aID-Z4 Zu6NA_I)AjqQlZRz$lTG}op^fRlDA2mcbgvb8x_tCctg4nTs&Kmx${C%v@&JYdgCb_@Mfn6_(j486LN xpci#0O$&cK6S&%FC6Dw^ITp7{mKuIPa5YQ!JcqkVTB{7;}P)Gx+4%3uo=VCX$B*@^aP)$K5csDr^TmZg(Z2S-p16#vTv`w;X;y5T?rz$LT`Iaq|<1 ~7diNbb;X7X5#k4b4DtR0_LTrP@`|Xa7Hvh&p?Nc_p@i9^g%d1;Yo5SD1faP^c8-iT;AD@7N~*UZzQJ ol#C%KxK63)62ta`s8a#*Y`$IOlk+rjM4c1se0m*3v_qR&^izM*+Y>zl4x)H`AK&Ulvb&^+OX)Gz#m& {P?!UQU9RbR9-sPyo*!0!uygr&S&m-AZItMAbp?^g3=9|eAP1A(_~c8lPTNo;q)9@=?A2QN=EC(h9`I=)4i7yyW99gY&57~fL+!cGx82v|(E);N&I*4ag0c$RS>dnNjKZ}CY5+pa(1R&4Ha K`jgKz}IhjO4Jr~L;6L;vTPKTi+0F%ou+Amb>dADQTb|#6TA31)S3*c%ms@M?`bBC8Vvhf?;x3OxltH T{yzPUAJcu~_44-+Xb(~~kwr;tZ4Q8AMFF)hN5J>Bny24tsbcN$(+xLMzX^AEIWt5K3%s!}f+EYLRVh Z{%X<%xey0XXhlDzVIblNh7%nT+Q;Az})=6iCAV4o*$yh)nGz!xw!JzQl{nrCT-Es`UqO2ILlCeL9!+ nhi;tY!zrXYLt&^}@XfFGcFXj8CdGRdkQ1;C_9#w4-*rom*K-w!P-z1%eU1F0aT(M-@uziW8qyJ-?1d ~ytBN6PCODq!c~s9T&zNU?mQUWT6sU_5X(E_xw9hWs?gKQsD6_b3f@Toqtp8pR63t02{gnGgLz>L)Ei ^BdL#2$!eX2Z799yxt(mlz;#}98CxUv-c}ZyXxmi0m*xpuS4xvo(Areu?Efz`TbJ^lfa;IgxaS&Ek-K F=QP8A>V^gpmX`wV1c9rhn{b0rHa!#A1BLI2-ErKG?A4E4E{kuW?kE?HUKY`>B@$z#O5%5bX?>Alu^39`U;@9V!8a#^4X&YKfB{0=DqbzZl|D`5RZ+RIx+^7Q *yqav0PS{@=zn-I&AQJ@Y+>_5#WUw;lL#IMT!_)hTl_eIg{tt6RA6GQd7qq~OpWsqHzG#NazW+-`KU+ v76;Z*;p3`#GG0UE3c6P_M+dRB2eP-|jLT2Q&sQJ`6gLrEn@_Spq;)E_7LJy=egeVkK3n;b&EZS1u2H RfDovpg$k29+7NPK^c_=I|#=M?)>EL`R4M;voAi&9zVT&^&0!}>c@2b@Yf%F_?zGU?)QKAL#urla2#9F?#99yaTcI`|HMlMF Q6YPXxfUfzK{iG2khuxey6!UY{CC@bcT9o!C(i7_i+;fFQ!r8LeFI@_CXB&#?1{-9K`{~`HyqTV9Nc_lY~1}CAt``e@T6dby-!qH3=7AFQ rYme;lzcu|YXZBy#1iwyvZfadp*d895>{sz(zi6^Alma^Bb;LZFNE4P2 T-j4!b%in}S4`8ZtC+V>2ky}!#s?E=FU$0?79yOjPD3wngUq?^q@p1r=B_6#+!pKy&hH*XlLho 3F1_iz5k93QYxskf8>YVZ!pv4;Zb#8EBV{2({XD)Dg?ON}0+_n+_eoui?%348lamUK(&r$v^Dlva!REVWFW)S}`uJIKtiFW<=WBwrL}2c<0IMCLFd=UFVSQ&AGRmQ )UGWf|@0xT=b3Y#Q!D#kfelDMdRsoG`fl{N_P&{N3sCvsWk2pS_yWv(v{f2hYBHGkEmoQ#}mhw;O^E}z-EHNPFBo?33nCsE(Q=wvPyEN!YvFCitz^ 1_ahF8~p2$}G5_HPyf+-j-VTM4?cqOw9xhWE(iAUgev0mzaM338h{7*ls1UPd}6AY88gdmV)g3nPhIoEvSOIQm3#2Gx6Wf<%SQTzM*?*qM(TrhY68_`pEJ~!Ti7mf4Y5y6Gb=R}VE$ $fw{BL=FbStx5Wljuc3!^kq}9w v!cjaD|kuN6sxO7pwJ)`kyX%aRKK8G1&+)NbuBe?Z6XrNSj1B%E=2{dfbYQ~VT(l$)0!Eu0s*wBHu#L ^HpoZTc+z6MF7l+T#6n(!YM;S8dV$VGD;aUAP6T@J6hxtFm@;ldQ9B&Ag<8|IIx3DZpK=g!`+_v(^95 T%#{9{B*7XmcjCuK+BY*S_T$l%^pcJEBsgf&+;!RqChV3tMmnkMP2)>=~c#5XKTHCF%QL}ueima)%## ym2RB*?7K^oOA<&lHA9XmP#kPX9g{M#`YwZjed;aL45(y_7?sU4+-M+48iRi_Tsb1%qP8b>~xMxF_bP v8e{vO0lCDv~m5R3ffL+SKSTy?|+m-Y*_Kdc=Oq{@M?&Kf$Ymg997YfVjA>E1m+bNic6Gb+LOnKkRkJ W@Y^?e=8Wl4A_{$fX!>IGjdW*Ns!kxN>uyHs%XmntD?&0+D+3Htjq3RM>=END@t%t&~ZL5t`sXFhnG5 )&5KldOM?<cXR1gL6pupyEolgn@Vc(p7hkZ0&rJFS*%>3vl=4bL!h=($#mDq({^CD*KahBV 8N~`i7c=gSAe`>JOE-)6f=5Nv`GyKD8PGy1Oi0PL{$*xrI<&M12lN4S74f+R@P!Y6P1oAu6neyJCsAz %#@L8rkHa{J(0HYz?yKtcnL8dONIql2%8B+|47ShD+Wo{LNkIMVXS=WnMS(e`4Ys@C`?+`$eqoBi)hE 7gxEPp>}jY2!=V+qjzd@$lo-QGk+%i`8M~SpjMBnMGaAO4QX&T5c#3vJG^Uu9iz|5c*{4TjEA1?sl8* -IA7;k5AOa|GNYbaVyLL8;1|1DkERM(Ddc2>XkdF09yAf}|B8S(5r{JW9BcEJ5W0<&+Ms#*?KBR6l!4 HMZTS0>><&ifQh&Y4c4k?EHQ3er=B~_2~kngoniZ4+b;ou!!!711Z>QcMw`wwWl;4#iUsNG;{scSzLj FT#wT1f~qCTDh;7Re0fM1v<4mr4vP%+PEi2K}#j?bzlb?_yOn5ZNM+MLt(3vQR@?jg5y=+GCGOcW12(BPRFfbbo=!KP En78Vv|oMwfB>^=Hg?#$*RHqi3;@mR=O#eiQ5hb@~n>wr1; %T{iBu{OHM0T06#oMm7Gsi8QVa=FRAJObs32ax3#e}2HKxWvoq-wj8B~Yxyer$cQ}EkNqm*Xv9^8tQ* 9aP=bbULXU{|~v-Ibm023gZty5dz1TJp16@Pyi}p!FK92r7Cg#Ly(soEY{ZN%>@icT_O-)3!}3?bB#v PrnOv$%k%uWP7o34>RF#u>U+Q5Gfo5O})7HIVcyRH8OF?4MhPrU6k&NGAcl#5SB3z7Z&8I#JbJs(=pK88{X+^v)?_-kMLlue#&^>aF^#P02r-$bS wlotyqaec;Dp9-5P@}r6~j9ndq`}s6>WI+=`?u>dhQTeJQ%avaL1D}HRW-aQ~h&m7tQgIaZKR4&{0Qh 8-6gurONWR+nB=(UK{@K*G=r9c(=1?mbN6Z9n|iBI|t6@EO|WPFx*V~c8Uik*5viH!`7cpd4*k$Df1g Vz1Krlib^gM6DAEScz1h9x%EZ2IUw!0yJ6j_07j=<6k;~;4an!YE>yni;L%8ga4*mZ0HXL3tP}<(h#= 1nAD*KPzu&2p@ZpsGVag63MMJ;qk2|;z{~p|C;K7uAx?|jj-G;J9@!7_26Hs9%suZbQ$kZMYncb=zh* 8m|*bccOEW6|x6gM(2n{jvR=!L7gF4f`w{t{wyGs9NuzJ^-+srd`=un}ti;Qph}KmGl7KhpG0DAiI36 vPcCH;C|%7y!Fb4K^0dd?ITkk@0KFpEhmY!X2GN)lIym;o>!3U%D5Ge^`O~Mh{-AH32mmyc(z2wF-ih TKYBu2A1p0K?8W)PjNWRJ*kxX5Vhg4fwE7`6uI1Wskkhi!05=M% 3e6`+}ntdpMn)ai}1cIoj~~fQCIJCNh4mMSx>^31FITua11=sLR6!{0%w?NWt$PNR_C~8q>TvMuK#Nz wkuLOXJv(CHSh3FM1h#c;fbCB>=pcV>W$qQ{YDxNvC|1gYqyY4!{qp7D0q}hVm5!c&+nR*h`c4VazSvf&Z8M~;h;aRxo!qwu-l-w*OHW{ay#_v33qwup(#9^p I8>42B-4IfI$YC#GFk?rQ`)9{Vgj@U(Y`YAGJ*Nne!I98^#Z!Vc2`D&|cp2tbU ?4sFSVIh)O(TsH=yhP&L=wzL=EZXamhQ7&GFJIc6(%@2nSOndEytgdpl70kmI!wuoNlFS?TGo(I>9Mv VAJ2}9JkgoBbF*SxZ!A^S(z3BgXb+7-JUTJO@Jp1^K{Ld!?XjxP>YTA74*?uHvukQTNd=_}q3F1eb9B w%n++(jxz#6)Ss3ioiny*VbVgkHCC?M4c0nZFzjkz|OUU&k-ZE*IE__JpfOUG0@zV6xbU5~xGw6weW` -NX`bqA8zwbdt*AAv~CxpJZlC3wt!(#4amp$16QQgyISC3r>%-o9&($vQuBm%(mmKxciLoBemP?6TU< lQaLr?Z};EzhQy=ZhrRoagzGTCsXcOf%#zN2yMRQ#X0A?T4h1xd|rFYZC>A7_IGO0v!ss+N0`1*BL0` _>~8N1ba>z&@C`*VILGdHwET>)$DW>i_bpTuE1u6Y@#XNvnlGWW#7bMA9d$!YluavHV^khL^)ts0Ho} JU;wsMyKDQOX9W}LbzNfABj*9-+!%{)o9U-Q*Eozy@I5(acy1wE+brn2z!nh52Erw^BK2Lbs{obzm0V >;n0Z>Z=1QY-O00;nP0YzMJkyNwv0ssI(1^@sX0001RX>c!JX>N37a&BR4FLiWjY;!Mla%^)haCwbXO >f&U488kTaOx#SQ>W{8=nSO5kZwSMq64~i#jq8D>d3P;MRX;(K``vUkCf$nbUn<6grdYp^6^P}*`f=8 KGVJBgVXlMuwkTD1Xl2vP?O1QngEC6mA)$gpdG4P;ZDHjUlgGbW^GVB5x`J^J&V~0U4`s36=@Wo !L=$}&S1zUwh#~n1I!9k#L%|Ce_L#P3Y*d?W)#ZT0BBx045i5Nd4D1uqJR3}6G3CyX`Im@RLO=K}kF) 7*q#nOhGo~l^*-cjkj>W5bNz$C0R!N;w5ECTdL^D)%oD|S#x3uw(6Vu5`M0`Q7u)FvdHLO%r6A^oRHB0@pPPK|;#vb2Dr?_qzG}@O^e5X& qVe+JWUTyO@sl9?P(sb&BbLh6C;jb1J?NRJM@=lY!@Q{*%?^?cXq;a$m8ttJqGSnpGau|!)z$KoO>Yr (pmM4QwN2&V5cs7L{z$XiL+AeVAqr&6-Adb^h?sO}OcaKX&wa{3M{-r=nX659TH0UQaq9_vD4Od$^B? ExVto&#u|T4JL^}1zvk7jU;79=r6;u`C3&3w!8;deZMum7IeYzMl>@CN`J 2k91dPjzYd_^l7b+LDZEMqG?rKV8}<60E?9bi3+XGZ=SGD<)G^Gt (@)$GJ6;GrDc{EMktpd266HkX95q8j+BgJOEY=Bp%=fEGJDaz2`*!48c_z8^^_BP8?#so_>@QGD0|XQ R000O8W&uT9chf_09R&aYe+>WtApigXaA|NaUukZ1WpZv|Y%g_mX>4;Zc4=~Sbzy8}Zgwtkd5u?XZ`( Ey{_bCKQ$Iu=Y_%IUv?%5dLFN|4x-Mu^Y{NFFv~;q$(xgCAc8zuaeRrhwVpmBUAc!R&@9lZ+Ii|8^3w d5OzOk6+Ah)%#9)#A$3ong!lgaU&GV8U}>-N#O_LIf-las#xe4wLz1}!Yw!`T}BtMD$(b1k+MayrRhz P@_(_NQfj^T*BY@|XPPRa}GYQMe$y& (f#GVUeIs)r8OAxx4aR~szeJCGI El&yrrytY`$57eeIygNQ_g)cVQB%Hh5NCz7-Q0U-#c@5t^`X0CdC585|lh!vv0Y#M7=q+mRvNm9>4+# =IbpO=?sC~kFo6_4EB!g6v*}(FS@)WK`ambIMzob@+LbbJ0IS&0;bz`+aL1#Udu$O)V^`RCQogvwsmi izVJnX-Qf+`z!VI$n2?m=2fTk9E;_tkhyRNxBtcwwAd|LKEi9Gu`A>aiqgTqJ@EfMj2<%b5Xc$RBRm-qqkVuzxZn~@1tCg= ^v%(fBh0ux($kSfl|WKJjzsxT6a_j5)C8z#4o^WG@Bmny?2|qsU?IBhb>2Rt 1#x(0qH#nsso^c+o#zIzySx92lNag2J1ABw5DI1C_)LxME^v?E{guz83zP)`uf098O_*TpM!IQ_|Jf3 #O!N%06)3a)3#D>C@1mq%Vd^LZPOu3C!pY(tX70*qXPBTZt?pq)!6R|Ur0P|Kz#gx;yj{xvt{7_)+;n $m`wZ`_2k4_numMYrhYh_k61fSO}cy|Xs-a$qDjM@n&+6h5e9f^NrMhimhy+me!@UY*Y9zQQ=tO8g~T ^mOt;0>(eJny8FD?+K_y>rK`y&EREZJZC(6@+tOo>9u|c@eQc?%&f%*R1e^f3&_VOUe69C`D|d ^+eh1g^f~BL8LlAv}~utQk`jZH>l+MjsXsKqQ3xP)-nk{lBWF>h Jj(s1vI71*#YDyIp7~s0-wh(? `q;pGl9xa9KqMI`k(8Qmae;Le$|zzeb(#LIe<>G>eB`bP>d{}~c)dIwJrOW5WN?B}m1S+GsnK_8Dmk1 mcCFz7*)<27MzO;e{yxSf!iEEbRidM2Zq60#mVKaWfv*Ml!!^qga&%{-ny9hc01@Cm6BZ3;)z8_>>(%p&r4|si-(^0j+wU4V&(X6 8p_Cnu+#lBBG&gXIBU}x-DMp>!??5V?Y$k1X44^-t?$_D^uA2m+d|*q9{drI+np}LYZQ9c^}oON#O)b YUneZ5m}LD$?ffQ7>Y@>Osj%icP!A!9bQJp>GLi}Z+f2$@c&Rt0|XQR000O8W&uT9X2+rgJO%&&bP )gm8~^|SaA|NaUukZ1WpZv|Y%g_mX>4;ZcW7m0Y%XwlomXv-(>M_R-e2JhI*~|O!}75wR)V|b4jl^!I FN3&s@%kF4T&Au&X!X3zu$}UGdN% ub`R@J8H?J4Jzqxw*?8D3FuP(_`lAh<}aWz9KI1g~Kv+|1TinIq 7r6({p01&dAvXv29cFYxtB05O3x)0zXiI%db|m!V)2&R5il{h|A7yIBB%H6(uiy)pEiiBaNjLmeibEL zc{l!r3yG$&%^P(3$)Ej@woP7-$E>A!_CRrlm0U4Be4ZXkJ*QcLc6_hnQDMKK*rh`3gK(Rx-00gW%hw*xdDk*vQLO!xP~7vn3z%y8|NYl8rVTixe0-1a9u6OPJHm?3-!T{B_$(V=v e>@m~>*}!ooA&6TbUSEMdKO~t4xY+RG%c4+q165m!O4wc61r*YC=d>$CpH1E;-*M>_a7MMd;CB)Ve)j ~rtImazmI(>fJXP^P5(L4JX9gM%j~30lO8KX>T_p7v%h2wz40U;zG4m>B@o0f&xIcSS54{w05P)A{p)H$PvVmzz$e<19>8+PQKzPh`I{%fctqp%w(W!qX5KZ) k)kNxU092QGQ2au@XA@dkW;-M-d(#Irl%QmL3F@ekdqv-aQob%j(yx_d_D<(->+)|diZsp8|w)I|^+>v1)q~rrs(>D(c@B`l^}+^x={aZk3qvsScP12ol+h_zIjBY$c-mIfbbn)#g>*q06n#}p1rO}7 _7#pZ#fqiquQ-keZMhfVTN0c-Sxw0UqpUhdHD*+=i?e^IuJFlGn3yG|nG$xRUT=!P)lwUYN!Bk{Sw@t {(%^^O_CQaJVkQ$vd;Jw@#R3F4U6tVtb~-Q}=j&?L(uf`4RH>xumXoDN%K6fiKlb28Sg@2rvYX|1Pw- ~b~km*3@FI~m;JfU(kTI54>?6f7KOZlw+0Ku;!Y@R9^#V>V8EHD5um5v$-9jKm7I==cgSi`j>;DnloI #_fvZ=Hbk+4T`oxUNfjVo*FrJ(WIQN$rJh*cOQD5{pQ9F#*L(s-M-=cV)R!Lz^v9~Nx?7VRb?zOp)iJQ;e~A#ABy>;2EQug#PxbC> 4#Yl8e=V{1n(IP?^*!58HC%@)4@$!&6ffC^23*dH@6aWAK2modQM O-hf-o-Bg002}10012T003}la4%nJZggdGZeeUMc4KodUtei%X>?y-E^v8uQO!;QK@7g{Q#9cqB)HMU lUD2*F3M)Iuf&UV#gkGiAWk!m1>vo>PX*;4lP |3|ut(mW*2sKsN+?m!U(q#Wg|8=|&-u`6+{s9g9Ls)R7n$6D&I4)s0U|k}%Y!UDW0?d^01ZY-BIwl;r >s50KS|aPGGfj#m6TH<#t@DZ3t-&-0OCReLycTY?Q^TA{VimI{P!1M{aD_|(^*yF4phFXQFAW!Kdy=b ~!8#7{)Ij<3C52P26q;xSyO*f@LJv8^0n0Eu__2-AnV`>G%Ll7AvQPAVLJ_A@*agS}UZtn|V<<&xTo2 +R0CFvsBk0zNlI!toz*ON|9KLc3xIij?#hHDFwgsxMGW0|XQR000O8W&uT9cdOf9%me@cmJR>_8vponJ~3vkF;jCxW3yohgz$Y8`Ie+*%wYzRhF#EuJ3EK?029CY8 3_9(uPxN;uF^f@=8@@wUXV&RY2hLrm@BERj$@<^@*3t@(;?sQ%#lqs_f#cVId6RFwNiPFe> mUjOM2%~*?cj@#+`f0R6{Qs`0d&v`Qpq6iU)Wd1^lEA^N}NH|1vBB{s}7wY6S|Ydy-@R7(Oy-vDlPm2 lNP+>2E;y9{GhGd!rD4qU&_o}XiRY-$}jgWh~%Y`ki3;a_W1MKAm7rG+d^eNKb{i+iyoNaRPz&M`e;` 0Cn3h_h-`i)QW(2~#XjlHYYt4V$S&OIa1E=|KIpCG+@=Ms_<4Z9aG3)^xv|dbngDZ>33<`8@~54QPo4 mg4$27om=GYC&jo|}pejC&=R{ln1NI|hG0?Pqu!?$hPnTE#35OsZY;OymegOgz)mZY}JU7HD_#GjO9| (Uc82O(*7#HOV0f>g@Lp&lM@+3cP$*W{yB$w=noC3Hv_l@8--1pD9oNV51$=#LB<2{C7QOd*3-#4e57 rn)QN50ZBbMyek@ue|?FhvLfJ|G6fE5)&}XO7<>c;Ota=O^Si7dcvZnk-<19Ex>Q^Y8KXoBJ> twgO}720dQDH8C;84l6hW&`hDu)YuG+Y~L}UH;CMds!Bd?KkJ4M$SxP4_aDOrsVyE!u?qjN;DkxYnuO 6blV{|k%%J16ea;Y-V;3Zi;Tc{TspfEG5JYdmw+U|InH}gqV8jwzEU2R?M!Je3hewh!De->73!WTAm4 #D-*J?C$xnv_KXzD=HkJf$Dg0xw=JEp9Htvcrc@_{AKNQ&vrpT!lb0{y>4s$)5q4aN4uLfiLqiuZh?r?= 7)+vgG5E>B054%ZA*J^<=ObvfW6NzwZgDy9)eE6Kfva|t8Aj+4l`3_^>HsVJCgWT&IZ(Y`y*ppA`yZ& -&g(+e=1RkG0>vU+dNAD9QdpD##isZ;wXORBG_|N#Q}&~&2eh;5`xln9ufl|2FRPj6a3%JlnTPhcS`Y nsJuImCQ>j%S5QYt!ySx3OE|^7BsW24LK*H2`#VY-{!oOEsj1GS^vHKlYVsgr;FtCRS!wV-@@IN=U2tjoc+RWog*oEb(rng);zOKpY`3}Fe**_NFHA#NDl*FN8`c)mXb{Gih-7ppI cyF}$pM@&4ByBzdo%<*G;kH+&D8guOjS4d4u>N|7|x@1XuyjPzLIHvgh3uI9{>Im1^)q1O9KQH00008 0A>M2T$}%*p28LY0LV%J02lxO0B~t=FJEbHbY*gGVQepUV{=}ddCgq^bK5qu|J{EDj%miEBT;d B@7+7Sr)youX*|~?9@}l-jO{QG2}x`yQYA<^n!fz+Z+8KZ;5XUn MXiy&a}dXwb^<7t`|yoj?@9vtXrNw!?Z>C*hnq`%?C%KXIdNjx_{b78)fc>>R&Z7$o-a`Ag9WO1;-Nk qKhVZx;pl2t@D2@i#OU+gw8x_Nby?he%RO}z1gI4wk;^28UPLb0KFo0dQD=rmiec^Zw_c`6H@B($)zJ kRnz5@iu5(qG3iG$dZfQ6$o9@u?WGD3&m(U4ZKyu~i(209G?hN0#$Vo`phI6I%0+A_&!#`uc4{>2F0Y VUA&z7I~JKp6&sI&q-OV&eKIUqFV{!7I7NU5`!W OVE(^}un6)jD*~Kw02`ChPt_V`JUZ|W4uBEBoVZ}K#;*J3IW{QMp(gsx!NCDan#iGv7CC<@il6A28w4 p|gP_7_2S1))2fv(MUY);t8(g0Kc=o^0BNslfb`vK;F)Mf8FJUyzPv$W8gk9uf5r6Xad-pba=F#&v{I @JOk8l0@#YmPkXO|HrX3_D_R8YX3gvdq&R+vH*lUm~{2W HHV~BDfSxisf3Qg=F^vD5i%63wbUWpJ!#^BdcGZT)pmFwDbOkj~6H7SI@_Pzx(5_&p&_TKx-KM^n$rp A_OgGVYb0>vmy(##A9*=vbBOK_)PdqpB)0jz89bPdXo^{=_1P}bDsO~{O|w>?P0d#yr*v#LrN*~kwy8 C8o0Oj&%XD*(~Yl0zHPKxm2)J0sCek!yq`?(o_SN<{Cb5P!Y*S83P`rcOdf}uXo;m6`|M3A3kHf08gv h&f!mr6Pd2dbaxL;WWZ{bEJOmwNGGkmaFo3Mc*c|zlE=tMgiO~Joub>{;y`+JqCYHn>1v@;QPBgm?S( fAPTljs8zkRdtoA=YZBaeQ40~}L21iS=U{^8x#8L84iBo-k4*+&^5;b6t(%9SfVg@xoE8~=mNvn-kFu 3)@Vdf?V_;jd8$v5$xJ$h5K_^6J?O(wCF;Hf6Z$KO7u)?lkd5$J(%*$x_`m*<844H(4ZRJ0Y7y )I4umbHu)lCvDElasy7v^KA|jb8EhO2h~2rGKkmfvOoc)O$IdzKZ1#OrAQVd^pLdOfI0vs^{GC7f)T^ MnT93sT7w^YeXn=|D6Z9!#)Gxsg5x5HqX2LnPh6bzs7K<&i%uv!%xdqIVp;rTIt*N33eRxez8jrzX&; )bzz9D*M917+)&&Uz{YNrqXOA X7zYI*%GHh#6W9M!h-O{;hiiK_+z!JilVQ+A} &F_NEE0)5w-UG-r=4g|Hg8+o@YrM0=!;;{f-e=qw^Q*O|jFPjl(LJjOxuR>J}-QRSu93FrqdshB9z_; WLOY8IPhESu&zEj(=yQ#S(v6q_mu(0^@wtbPxoT65au%J%%lkh2Rm(7VP-Ne<{U=nYFBhCIWs30trdO fK8N=F9kg>B9Z4cZ_ojO%-%RQOAxb+f5-pR`tPdNz?Mykp&D%VuriW+>+!(Z$3V#-E=bPYUAEYwgxLU&T1DlOIMnQo@=DQC3mXj55Tu#~`MynFExJg9XYRaZ}2W_Q8IetK$8Wx w7sq*n;dux?a*0NTt5!vp$z50c)A5C&f?ZHGV4Fb)-2kC|AseY}*z0Z*WlgRh!nNo~^ZF9;jXr)B81^ W-`i+XV%gUP~4`ZZ5Z5KLP9RO?ifA?S^ZEZi?6SlT^{n);M!Ox8#Wa7G-qM~*b^3c>tAXuRfNL*lHI$qol3TNJA#8{-{vHK;QiT5rk%WIGR5SRwmvtuA7YyO FT&0e$v8B9vDUwBdqO2l=^KLOu?X(2)KngO3uN)gc#(U8Y$puE_@&>~MEa3luNan 7<3oUQb`i{hxS^}O7LQ>Nn622>ID(#XH!9s2|S`Ah!UvFxbkjJz>ixudiYv8ryREJdJ9@bDFqBO}?_1BZeyJ4U*S$@;cUDbtZM+2cm!{ sB^(W6b3&Hnfzve*N2~Arpk$JmHkF$!EW2OT&cNWjU_(&jVb&=46|oN=5c*P*>B9$_o_a #;W8*PS_QQt(+^1O6_3v#9@`RnJSt_d9v(c9Ki3tiw14NKzX=Um9g4`dgi7UIi0G{Y%;(U(AkfXw>jq 4v;MXC1K=)GV-9d_4ITW9c>Bmio7=m#P}!ax{YiAp6G4-eeoM1O`!$Sm243gy(UwJrCQG(chG*B RcS#x?AFOb%a3B_+oTXTdA1RGu{)&7QX(+lNpP5aDN3A3Wtmg#!HZS^f&}zdZqfXcHY!yBP&if)&NRo O9F^m?wjpg8N(*FaU^SdpXyWh(%(I=?vUx*QG}ux~aPRFyHAL5XIx-Fk9oEdHWi71vQz8ZD;&nWojsq %E2Np|TD%^!$6EncsZqb?hYyN7EM$nXdi(Rt8Ol2UJG}3usSHLXO46Kxc0w8T=s@XMjUY%W^z78mCx1)o{DNWm^ clg|E+ItecZJUmIHMLSfkHa(&nd;O^Cn1b-&1fu@;aJ97VS>T05NE3Sa-1=W`EZb_C79Z`oGe)86tGS P$^@ZNnWh43{v3w1P5_{n{Q@W3yYn8K&1eR7qLt)^_O%urDj@s`KTG+=IkIav#WZ2{wkR90>y^KZSjA ~*cX^;c{9`}&L-gX};1{%Q-ikKj4GKSq>Vsg%Dh9xHVZl}mS_75QNV#JRB){7xI>|aFLK0FVCz6ApFA _fFaKpBzx3;+0Ut)5n8b1cI(l{TX+loQ=~Or2Yut~NqMl9d}GjoUTfu|=7NxXY$~iiuMSIDpTEK3R}0 EQM>PKlUc|@zb!#owxYWW#_Kvp_gNw^_k6+Y(7ngTOQGF^}j<&?0wPA_u!|AKK4mSXZ=kFq*rF_OuDzl-(EtcAYGc-4g(37i=o_y-OiPjWA#^)mW1VZC5EHXeOvgL8X-5JWL-r>E>a+LLt?B!g UnrEdRsGgdfK&b3jw54ML*9x4kH-zq!}@w4)bh5u*xSwGwKHZ9rR6KqM>g?OGYX$Q kP(R=;+{OCkiDou+wx(tKG85dHAu8krs|geOdGT>~y+W8+tQf5%+JPGoBB;u?8Nrr!?z<{`QKxE$%u` zG$C&%qPL&PR-iw%EuQY;08R=3519#bfVS02~uoDw1Sc;xjxXm9i^6ej7LJ|>nti0QAc>RgmM${LIm| |t>zUDnN{DcBO{p10vT`Oyy{nt_o_#2+}9T+Ogm>n@zcbCz{lsKAuzb#vA4WjmM-EYA|sV;^OYLl2~f r0N5ogPkWi)3Ag`OdhM(LA5Uq|r-)scV42+ybddQGk>c);NGDFegFq8VE|7*yI>hsn)iy Xy*4E89@1^1AN1$Z}z5Ge!l$4q?{I{F}mO((l9IWXsoc)+Lu@zlzlf0>Z1X5Vg;Zu;UKCl@V2tSq?xk (Wo`!_%@Y2vf~7(gkTzJ&Kc*13?>I?S$`-$Hyd$WRFum6z!F^>G0!(b1`fQ}sg&BcUsza`U{#d%E6zo<`zRPr X}JoqNQp7QF>!m}!JKHA6J1P#{bIqFLo@VG7nR`3)|i(`udz{;?s!vqsOl^zYpq-&t&}l6T}+wA$iDn s{T5-M(2AEfDd*Est%@Q>H$z^Jj9KYmJPVB)a6^2h$T;`Fd^B| 5s*7NBBWb@<(@VxCC5HHVT%&0y%@nld<9yq<}Ft$6J=j9nOIj$8gyPD9jZ<;>rMyEA&EpjWfM#dP73N PCbc!{(D~M<8!**X7ZNZku^dm?p8GEKs$NlJ4EFT#Auh+U^wskhY>jtJ)Ljwey0T$EU!F5P*c$kUZ7O >0wrVmK=dXk@ZxG$eO{UI+fEpC^KU+5NoVSt>058g7(rTn#PnYxv)CndpCu$LLPxV|MW6ho0`)9CY8k ={MO~4VV9fGn%J1i!~k+05T(HVrST&^^)TK<@{1n& u{g6OX*C`@D2&A2akwVx4>GH(svpC3-DDJn0&^0_*?>`W6Ltia1)qQz}2-V%{J`OK$@m)XE_lS43t{v Ns-X#!X?ST;q=g4Jvy8m_RhH)0C=}SSCu=8=I!zAi^=V`j*b1^nX`H$U}Ky#^A#=gTwfnliyFo#)?tJ $K6&&Bms1R{8fRPV^DMD_phO>bSMp$Ke=psRAKUBO@pA*-WILu~*!2-v%I(LC9e$T9{@!8FdQJxt{a* KLK1sF=@DzxM0sxqO&fS9k#-FxsuRh|6MmK7B+yRb8f@R-s>JlHQKvn5$-xtyw*<0POFG5vp)7d=r@& N#5Z%}s^{>A7?x%qm!&11%cY=uyuszQE+WAtdO(1Bb)_z8iVc9V>5=fWgWT(-j0oGCknulzPCbM&4_S ~PIy%q5s^=O%oo69kQx)l2kNu<9?{QAE{oF@}C^`24Tf*=qaD6P=YeJ}H)bE?vElmRqWqXIlT3#i?73 Vj9@uqpwg~eSkjIIvX@}PvC~{J6=cr9(z;UnoITUAxSm&$M8lCFAIHWu>n7=3afoW-P}BKS+0sQ`JjA{KF%m>1>?h_ ~-~9!c%)X*=icO3`Gz-@C}THg(<8M&&#FN)RllDP5Bp#y&+)SCFmW7NXv=(hUHuH7 YD}rPYxi*C&z#N&;NM-+y*?j&JirT0BNFY?yC_1e39=)5L$4$v#xITtI(*6f{=hO(nyDEbfLGUOK}=w Q96(yl`9HQah#he8{_2*QjA0&_MU)3G|LRBxF>@+>yUZY`l}Nd9KOJ|C~8F3^UYzgj<jZEmnhN{X)4s!>y2=b7WdRE`_1RcNW2-AwDgcWTo54kWp}x A;N8r4dXR$ZslP1tUBAGO2%d^t LhXp|i)tc2k3WK&zW#?@6xne7RNkx(qQ~vl>7-Qd9@^EyuqCApsOPkI%s){ek3r%S-CWZNLrE-xAQP1 >NmKrZo_J;L_Rlad_<^jBBC>3}D?z)@u2p|_%wfgI+U `8)u!sL5WSg`d`?CJHWl%E^Bs9IF4YPw#10b$+C4$<_U76xm3C*<8m8_dcaG26$AFQ*O-s>78yt-Z21 UsjjLcsVXMzU0NT5d#~@lwU1$aQPkJysh=4g#5)#*D|73X6yB!Vn|#zKba@m7+fb4LRM`oa@M8l7cB1 +7l!=&5a}xN#1HM2Tq{0lUn~Xy0LK*o03HAU0B~t=FJEbHbY*gGVQepUV{YTRq&cFVlHp>5omAA5OnJAa !2cZpX8mH}BrKFk@(Hq|AyydzWMSRc862u#LZAWjie7Qnq_F|n%E`3kC@HD8iCdRkja&J+=gb&)i$)6Y` ?{#11&zDjWBZ_>Pb=O)vW&KBW4f6weX^%@eY#_zS=D)Ux!ZLq#wWbi*`Y=ysH;txoaB ifE%Ua`P2wxHfmVxL-|56ks_Ba#tlcH%Pnw4gdU++%G1P6_}!?0`^BIH8d3>5wvllmjofQico6ROP~E !hy;R&*+|XJVMP#0-XUw*bBtU8-BF!dp4~U$LN*;}L5xm80Awo#KB~SDdO^n3X3h_V`6ud#QClJH9_!!>gm0pe&Cp8$Va9SdOEIxU0<(Q^ec5yXXov3|O|R2?W-F*@et?mke0jmn>0_(JO3 0yTdpxo~J*`e+UsYzO#%T%9by)*Iak2SH1H; yBhp~f#CoVLqA*>oZ?JZ34)9%pjV)%wT-HRQ8KGq4+$R}fdXP$O^Nwu_RPGfwkOq`N(YS-3q%U5(gMA qX@wt4BN85PnJAKFy>lwP(o+;b1(&Se5O-XP#8DMxk%3Pu`=u#bgM_akB<_ierK2*v@Te?EPG+(NoAa 9pyC=z*Aqoa=HR9!($c|9L|P5pZyKMT)Y()CSq66yOeSpQM79-pXZZg`p*E)=xVfSn1`qCvh!7H*n7& KUTA73R+N6PzqB_VBwz*K+Tx#TK%w=zJ{a`?y@ @%c*VUGQZrrqOpq_0-XNJ`1zxiz88y6TB^12HR9e^Y8hRy9)QbGuc@naO4<%8~lLr!oRcf8%hVqhP!r 0K6g6oMLcid0%yKDO{VH+u%C}UqYdv?GSXx-yg&*p2m-fB`x@v*%^<0%}*dob1o;|i4ULXLA6&H%QFT !zqK;8i5qc4LqJmj~1&$Z&Ng?yihx*)I$`umoc_aIf-HQC632cTQv=1A~ek;SzIb(?{+OA5+HjsFQaU h?WWgHv_VBU`1ehxR2ZEX`F+(W*ePOHl4Kb(AJRy>D^T?nxrQbA6c?9{66->#;mlfU1@CYUc_HO6H=j jy6@~9pU(*!;v$;%L7@azK_Azr7BN6AYH`bGos&xgXa^;IRd8^)vB(tCI?Ds_lTdpw@>2&qU7JmXzO9KQH000080 A>M2TpZFk_-+mW01GYv03QGV0B~t=FJEbHbY*gGVQepUV{J(uleCtTwvey%irl+n#3L_U@+6_{fA2Hnxr1XRwT)UjzE;`%$`NK7S%g7=0{P^w>Uw}isU|zZnjxemswN_ OfN+UL3U{-{6h?$dH%)Uz2(EeI}G&fQtSsa%R>@Attyes@E(gkCeD%+qN!cR*M5{=;YCWK+_`d$ztVe -;TL}RRq*@~J$aC55@#HzbY5Q?h5KDC1q-Dn(g3J=*u*oYRobzz87#%Fi0p8@5%E<~SNfI2&#jPn;S- UEQf|DdqW5r9RXg`t+8;#MJgy)Bu}h@>s94^LYEvYd7qMb;Q`A`!@g#|Gq)Pr>DOTx?A7`+*QrQR%FP N;#fX!a8%c97%beebgY0f^BwJ_UAa?`lC56mLEcDPks>97pTO8TTf_PDW{Xjx2MnGi7OaBLf($vU #6G(U+LNJi;!v#D%J>|q&BkYJK50gY3)0?{><7XjD&`1x;Wf{$e9K1AN~gloia`;fH8@01T14x+^Ndx >i^UR~UMvSMDU_snEl8%kfE2kDjCO{*Ln9{AWFlb*UqorrCmoU*?S=2~6LcmCkVu7$RwOs%qQD#eQlz =BrFIs=u+3~Q=*vqo+STF)CMErraxfJ8fW3M9*Y961j2EzLlB>+Wxl;v`zG!d^ZE6_~4!jei5g8*z6& +0WN`_$4XO>3U*;#9-gI!_f0IrLiM{3svl~WiX?F3OkAk<%_IA#I+`hKpO?$=c=KU{vxGmCWts?zF2%J}iXmngg@badOoCM fyA;qJ3?ZQ(q_lm?X>vntHmjx3J`REKlcrx6Wx@)b#2KLz!4p!yS#5yGEQ8BrU7=g-V!LEeZjVmF|hb+4XU+(}mf^h6$4dgN+IX-CDjzToE>~mIR+`HXPSx +ZbI)>t!h{a)!eH^e&Q6cSGQSB-46|kL3!+Q$1q&AaGv;r589^vf_`P+3N6_&u;l+<5FbUN@PS5pJ#F %Y;`(2D_{-plL70g4+M-aPaWcia$TR6N4UeK}?KLm4G(a8&T?HA&a_<1?3x f9ydu{#8pw=PANrhR8}cKySQRCLU-=aBLa3)fCE%Dv}BbcN^rL4S(-3ZIKP0LN=mIq7iGGRnw4imaCN -_1k*5PP;lLafuN=8UZQGJ``&^FgEd;R{p8)QIqPmR1~UF44oPDrr&0mY5ITeUn!IeXqC%Lrh}2s~9) }8GgcK=~;s9rVy2YH_Dl;6+)rDC|cm@mn!F&4Wy;87;bgE9MOH-lF=IGf2$$Y|6iNeF)I6;$1w+N+~Jx-EP=}2$q^$JzqpBo &GNd^e``F027Am}EKDZe$JxzEd=_g%V|QR|8tXYASu!wz$h(sOZP{uBQSyp|u@&kCp7`ySB9lk~gc_Q 1o4q(=N8wYJ6hhPGT!(^WVCiu>xO2b{qSd=) k0aczw*B2Np{OLMywE$h~$F(gZ})X{8z6s)GAWM!*yBIJO3zXG%I$6OjUpb>bg^N+h(EG- nBkOKxS{T3FSb>MOt$I4U|xxxmT$sEx9yf&JPsazXt>4go2{kI=gmF$aWUpQySZ;Qfh ~UJ9aJ)_?$OPU#joM-^XfN*E>`%5`u_g8sSCB?|xzw&s_}X9VsPh^>J%oHi=k7ReZ64Hva3e~_5AJDr y-R)T9;{+po@Qbf*%oxfp=lUcv2OYk|l%6cEO2atkzLTe0KG^}-`vQpA|e$V b|UzZ}nqa#LJKvPz(-vo{ra`4}uvo8E&B)Wrhzw4*eMV0PR9_XPH5S`hsL Xru{?3jSqw&2J?gSiRMW&;$}`98#T)Tk0Dom8nfyumb&qo5+_UTdCT{z42J6jSVA4m5QG(deU{2yKo# ~^(UR(ana&n0b(m0uIr7oM{%IrEnBg@glFT)29ubh!q&)JKrk{-5GS=)5 `Ki5NkJDx6x79!ZI$e7DwOS_2fonV^}RQrE5MP-5&gV%)6;gH)Pflihhb?CbFR#=5=xI0)=lAXUG(0+?UB5m#K6*UAd)M!I$&OEH*V8GRpDs?GEsh>LyYAu{FmQb{Tj% w?QXYr%*?E>;odbsW=HZbZzi;r*;=;t{Xj`r^;enO_SYSXi)M1${ns(OZDZ~oh rV%%!W?y%x2#_Z@`si-AR-xqCi4yHXSNud~`ij>L}Dp*v`PAgqQjbC5%<#L?b5!OVWL0;|wqo}*aCEM F~uw$=#RyI$D}`O1axO9QUOQ#D~;*=RK=j6TS 2#HbZ*w5P(ho}tf5|OL$oPuMxpSqdmTGt_N$BDFh%2d(;KXJDDuUq^QjmLH#00S>i&TDH86QzNo^8R{ WbjFY42o7V_3Iu>a$s1sfX`V7n>*+h((=%cAO#v^@6pp!iHz4jp9Tw22#>efaRVkew^dD09RMWN+%Qg518i5|W+ &{KK?+!J+)3{Z7jdrfR{qmX$u+*$l=Riw-L|Z;?~m!y!cGOE*V!RjMMVYHpZ*1aG<-Q(c_?TBoHO9SH }4ImQ!eVN~i)cDS$h9#Rg?g|dvi4jB=yL-zi=*Y6&^f{Ffk&Yn)`sznu)18I7$~m4NpAg1LcT %->-3mx;@KkHVd{5DQ1VC5Unv|Uvl79o16s1s0IvS>ORq~ZUz@>{#lFmwE5-Er{X+Ybm553j-RbE`@L D)$hjdi7*M27ycS?A5DeQb@NKFA7To>;5b|lp$H6(8r4 YDQ)7x6R2x<@r&QPBzGr+Bm$Ej(W~gtB9jh8MO1DyQjFVbk)4MG6%Z@ioPhDLQ0sJ?qeS<*{0@Ar5g4J>}1-cCk+0cw}&NNd{ZOzM& 0~Vo5IxRb;2lwB3AeZU3V8c3Sn9bY+Y%Jd8pMfi*uU9p(c--E=Y&WKkK+^tN&?+bK!Ad% (>zSF6Sc-cS`0NDO4t*ciJnt8lzDbn_gm0!2i9_4@rqvTJHDykvy^8y8B1>J{zoDLcL(*VO(K(yO2bLmYAFM#xC$%0z*o15Gp3HtcA8O*5xg_9Zrq QL0P5<)81%=)2$JT9CqzH7CkXG4>J9V|-C^}X-9bNJvY@dRkWCHCmGn?A>`0vueU6$UC*1H>2}~nO(t cK8^jo^Of}rIil!uov5ODzieRt@$VAb?^pGk&5*!sXEFS>GzR$$muOB8dkNtFYmT6 M^X$^^_`lQ3&&}&oBb>>pG)vg$PCGn0Vot72hKKzdAs(j5V#vt&F&xkGo)l!pj!gV4|yciLPc_k&6s7 lUd7Olz#x&3#l=VtvY?$Z3fW!Jwa_>X-VxC+#L!ekH=_C&8mSz+5ZGhM(!Q$!Yjm!XDL7c)pptBln#) D9oHPqK8NOZwcb${16SHOwHzcqEsgzpbTCxbECm{3#0|sOpe=SqJ1qtTzgd8l8aa5tNMgJ1zmE4x}g> iHAV0&md?eJsK)H5AWbL1eab)V;{EcKsxyLt=ec wy1HRR&&$dgVn6+FTB>%F%B|i*PFUysS5Mi3Y7E_Zg&AFRUf7Ux4gcO9CAfd(?X-)F2Vl#K6Ypgv>b( q&)Kr<(Q*7rdOHAz1wr=Na(c@!N~Oh->@slcftW0a0{^;J#}cAxu1jxf$z*OL!7QoEE-dzJs!_<^Ux} xQ=S5si=hEaP$*l17%Bd(yP_?(&OI0b_hbYlvePmW`U##qZ;~$@ci9IL3^TKgtll|JW2N4})gQW#Uup _GgVhdF)*tMcFdsCa!H|JP(u>gmLoFY^^iT_NF$B>=oQx-8Kso||QAPSXWIQ^%0gWu!ZgldQTYje%n^{1F#aIiC$^UIZkwPi<2eahMp(DdW%e^fjPF@ea)<59K -r)e5Lp79)`_u^9IC=?i#5y#hK3-9Arimiov~p2yt>e;a#5HGBek|o1m55NN0+bt24&C7#>}T0ul6N@ LMj&?|K6+sjNoFGD7M)^n+bO!a!T;AkclaYWD&Ek=okJ%QaJri8Nk2$+P(KtQ<@9k-(q#lg~$A5V n4ExK9^l8urq9wg<)Nc$v=^CXubCq0;7Boc2cLP-aF(zA49JGcmD1DN`=F eL$pysI{RO4e)F&PINrK7{!~%9FG;9$fZWixTeGr{R~518rvX$HLL7h#Cvp5-R9iA3-#i$! 9(q$AsLRFSxlH7#PFVO>$Grc?NT-~#ycX}TI+2KS@eCELRVNFNV{Ya;y7}hlM5BJn4u|bevDZJ0Fk*2 iw{Df?+=Y_iBS}(j3seIq~P79>54>$>vR#rw&Lpna5alpNB5e(=MG=WsyKQM?TDgbs%J{ULZwuWpw>J0+b}3u7w`p$LWKE5AQE3~mZ4w=j)LJ#n{yLiqTH3cGFxengzU;vgBjy5)*e5C x*zM$ytD<$@<4OC@AJSf4_d7N@Ilb|>St>i3FzDb8QUzent1D}?06{X=TwC1tKpcS80aBiWl8+zAS29 YH-%NLnouYzqsD-BG~2=8S_W1U2CDD45wm{~ZLX?xhDq1;wCe5DN^PIG{jWm0NH;H>m{!9x4** z2R2~e_!|ACD-mNIn@RSC+!)2lx|$MfJ|{7vR#XZ9hX|x|uat9b#2xxv_qb1hc&hEm3CtEcJI^-t+}! {dg}5F}4{w|p`+$TheDsKYqeFVVi3cXmIH$^wukBFm!t+I~^P;vr$hpq440Vs5;Ul{XM;U|mw(dlWQ6 l-c^qd?sN{`}<;CHl-lj@}T&`RK@261G_Q7k;026#p!-0^-ZDl0HbdE`Y^(dGoW)wxRJE2l=K{q4@gX wPOwWbU?{v>K`sXg;1Niz5WX73Syl6`iKOMl9DclU*?B@=?}QWh4Exxe7SVqcZlvb2 QZkn_-OJUJJI?W*DnB=TzjPnQPYcn7#O?Bc*u_XCTJ>Wi^nm7M{56!62Wd1=q(avNjxkrl(ROUcW%AO xvqn%GqsXgWS@h6w0aDH(sfq#Uv$1JCU?BB-X5yk+m^NFFN6mMEWyJ0D(BN*(9pomqvS`6RZzO#TC(f K4TYllW^Wy>55w7`~KAqEG#0!)nj%6F+^Q5&@cOX@98|$IIU8YWucRXXd{l=09D2@ukI&VSEp>1(v SI4%h}DE>9)=%C918T?d`mn1oE$40A7zz-qM;Oro+yd#4tncE-^H?ygFuQb68I#9A5sx8QM=-KG^F$E 7nppL$5q2$;h8m*=4)G%l9ty1-tY=pJQ|#G_5-Hu2QNjD$oD_w=qmEVYFYyr>&*OP^|t=oM+< NvMMleP`1{Zh^$YX{OZwKIcT`xN|D(8URu#uxf(zNQ{D(vDQ PySJW+NB(vZ1W?0)@i$(`@0-khrg)|k)mBlG~TF*`ut60!Ffu+8!F$}t`3j%w33dB;8ERyu}6obV((N $)#deCIg!DXZrWG9B3tts^a`}Y#lNfeBkZE>!P=>AsslcEqgl(-eIhgeP+!*+v2zqL4+fPxC~Myd=HO lrg-HM3YUGl9k8c&ui6Dxt*x?^_k<(veqUmIbYbAZGOh-xqmP$oN2c*Rnj3c6jBvUry9*uBcPWOEBbj$(E|z^_WA;r;FnLnfMwB(QZ!$lpPhXHJ-=MWx>8<2-nLJ$BokWh4#=)Ecyj jb;rV_~5e8j_o!#UgQLT;6pZcpmBr|2&2_EO*kF~dHt6=(OlAGmBp|$0uuB|PR3f9ulDsrbs7h;kuCVqii ?p9ikMPSxlrRd8ji1R?98D(+qRk`bz4=#G~{Lw`Di8feEOx6MfQmnxpYSZId{c@DiH!9nB-d-5x5cf2 eoQ6>0fz*Vp<>Jctn YeApLX>X|cN-5KIeI?vU^1f?(|Su+PSQpb};z`|pTtVI*l)ITc-fe$g8-+ OKPsFMlg8sgSl(bW>v*80GdI-w&qy>=QvQBmb>>oy8uN_B$|B{(|Uqw6WEtZ<^B{QIunr&JO@?=~s)X p+*pOHXy^0GFSCN)UFTfUy2fsLV1s7tka0u*6emvx))Z3UJPZwAm 9ewq=SB$XXJ(flCyVP5vsAFt`W}Kz(`!8{P-*}Nl@@oc`#)qbahN>R WAqG6PfHpO7R87ZOHGfxjHdazI#pbT|8nm7QHF9cu;m1n>9ioW|*VZGAy<`o)<;^e7wqcZ9ZbyuBF}P )*ZQ%o3nHrCQc(LG*Vi5z|9Of=m1r$uOxSs `JD&p!7&I+O?Ti2k|{4*HR%}m<=j-DC-x9p?0qB*S(<--6J}$%n^Z3%Q@;&Uezjpy%QDJ8>{8J;)c5d 7l=W@8l#%EprX|c9vRQU#1*@HsE5O=K*l9s9dg+in0Kl!NGni|u(oNjXe6pZJXGzD-Po8{YMd>~3;13 mx`-xesSe4eNRQFJ8NqXQ7h5bR<9du<*{f*5W1xR@5jtS)!OFbq^dONznAFm*ZgV?p5zLL=(Yt<@Fy8 (m^%{rL)G%c$DRct$)eDBWt)H=lFmA0c SPacsqOI+5cNip7`eiB6?B@htErlw5LS!2!+YBIGu=AWKD4G0J$DZEGV39`>9jKzmSCU?K~lkH=2^jg 4d?{7cUt6OKCh7xaw)mcVsFC&6p{?~V>m`01W0Z|^ 9!y{h{=)k>D;+{pQN#gWd(Kw{gBSwec&(F?ofT6=0b>P{as+Z1ohyCHKmU7_o?CI10``=m8-b2ukmN+ KXR-dbY(ks+GMoP+2f?Tu|R5{CxruVV*t?xu0XXq4&j-SGidswTOaT$G0BHbkapwLdRO8kYf4~hhrf4 =&dEHynYpI(Lb)`45Gq)0|)_JBto>OMVvdZgD~a#Z4yuXw|?x&%C?%V%Vg>8lkHBlvsS{PA?wqv_y4x hkJ=U+Re9H=g!ip|L*G{+L8!X8KDz!f3wqk(Laz%zCmj?S3b^JYru7T=;Y_zcxqEG@(GqVcBG}M3ixv h#S^K#kkg@Dq_v+?O&;!qi)5lQH>B=Ck-A%X%{TF7%Ifhjr`h3<)Y!Beg<31;*R*E77yzE(D{rUA4st wMgqtuxxg`n`_jOFL1^I}r`I|!a)O@NskF%Sj0rJNM~dzg2ux)~jGX7)k@{5YxzE?<-n)B%9HG+FqK{ DgdyIag$NJsMbfKcDlcHl9g)T?-!!tZXv#D=}j#s~3iXte1{S}lLXw8?4!j czvv#b0Qh5w#@EQ#c7EADdHS7Lxz9R`X@wi#As(xfB&RBl=TVmkG^^JQlDtdFlK?+Po0&JW%r7o*TG?1%5R*zWJ;Z^eB%as>ZN~2lQvaR0YKI_Aonu{#Mudn*yYu %83b4vMQSAqHPYgg(^v;CijTp(CQBsVGWBSfPHDIa%2tSbbxku9ZZ#Xtmx>t)#z-6uEwbk-AId|8`rHPMq)%hTJMJ5L5SQrMX!>N25q?|ljujoJ;A`CCr)SuA&)spb$c>VVmuixTvFrg~U&}K0IlR%?xuUcKRhWo_Qaf{+^e*M7fsjXMJQPMyEO<@h8o_66_!b Wv{0dB;LsYDs)njCAtdgJRo%Kh-`nEt2xp{{0=!TS1eK{a*NFs+{0NvZb&f@=_<_6l8G9p^flq)>fm+BAB-RMX-eIhdx~bw#3(%GOKa`2D#R$ 3*5I&V+750PU5@RG)BEte>H;q{16}a5;9TN*sY%F&3-ql>9oZLk!H+%Tezrx!aq 2p~-33zOt0Dr7L{TL1BVv!`BFnPGR9Yd^_32Ol`vg{^!cTVTP{rK-OF--~fwQa V#xN7(U#jWfITFur<%!aSX@i|21Vp;uhmhl(={3DeA4^T@31QY-O00;nP0YzLdQ~Q7-4*&qNBme*w00 01RX>c!Jc4cm4Z*nhEML|SOMJ{r4bgf!la~n6ZeV<=}+80YKir#fL_rbeKmDkq2QI-5rwz8@FB!V*_i D+gpJD8Eg{Q7%NH!vJZ_9nM#Q+7orfkvbI^yv@ihaXP=EB@))D)heHnNOki<)QfD>55`ubdjq}?Ki#c y^ChCc>nX4o5jMkVK5tKno#+z#}fBgx^6Hwn%@0u^xQRs!k9RgrHgSp*7d>Mi$F8%U9FN)NJnkCX%Js%#UFq8Bpp%96bsZie#8E@&&n>-Ew+?0va6J|6W{nb>RIU)^NMe?+UY3{7WS+VQ~;dvksD_VUA*OSAR0ixhAJnfI=bKD1BlaGyo{)< Cf*2He)JRLyZI(fsAD?s%#HTMduHdi{GkZpXG9aJFa{Mi{C+n9bxqsg?!z}0PNQd@%i%2yZ4u?KEe<@iVpNtzVBV^LR&FPIy;p6Q;87d+p-=jh+VIT5bBtWiVZK*hHu( 7!j3TC-rl<>N3GY{r)THT$hCuP_=@JYx4!km?d_^N@SNha7{b=Bn1%6AJ`PYx%}s>t;U`A#-d5tr%5@ Ou+LEWFFy6v@>veR)*vZA92R!8J?XoEMA<#`w2)?%rbK{$?b`3NYff+5f_QL`DOzT`Fd;r(GdoJTAkW tv<>4%m1DLmloehE<7e&87r4OIFstM3tU4rbrkmXdnc)wXm3DGlBS8;eO1adq_g4#1-Tk<_~}O7tK7u A W3#ct0EGq@2Vpt}NJ*b#-EULqY{nhP;L*k6tfOhlv9>+@8C^N{lovrYe(?9CLl@7Na=^w7gX>?)Ia_B 31W**$f>ok<2>l&EGZ`HUW1Yp{$PaLDALED}Vmbhow>kj}D2KO%u9a7Z7Z3Je&hEVhdT1Ab?l$EEVCY ;9hc{?z2hvRk;LO*^H;e!7?atFYiv_T5e%U+aG(8mNZ*i?aJ(KwlM8ZT)1K0bl9P$7}@D^~1jglc0Bz d3nBF4w|#bA=Aus?PJUI=UQ@!$!SM7t#VX`PBo+La{#IM*aW$qQgga2fMUKRVG20uqZ+itV~O6WG%1) fcjkKOE-Yn}r7FB3n@*27@2MNOVvhqKzOv;NBPg*tWu5H2BBOy$@ro4@_KHbIaRf*-}L4KSwAl!kN7( mj6OX2CjJlbkuG;WH{i`jcrHa7PvUn0N@Ekl)AI!Qd~4taF4H6^!j^y$Is_}<<7B9n;5VPh>vX!=NHi c_&urQ6p>MkvR)H(2q_X*a``ghf=L?^C@&)uWx&?@Uhcryn|w~58R1TIwVeTxIB8GM@Cjij!9dfrDYB 3{-HR&2PFP=Thmrz+O~#v`UjmNu6aps)O_~wRWOBiad-OsdXN-FJywTsy;Zmel51qwYVH$-XKRd#qrmNdvj*RsULWvVym%TR;iXgUeI%##y4@4)R!w+o4sMPfD ;Z101wo*pT{6OyTs23jlW!N((ggehUovX$ofm608Dh4a$6E@ewSt)g~c>2N-B8+voD>0Hh%I-x0E3zFbq%J+ft$(4`@cum)DNE{>=#ku RA=r=)ez|0@*184R)!1l&AqG^fP2Fz fxV?In>uVd?k|$h@5hKeGux@EA4=YLCi?YAniOs!vbn86c3;TZls;J7SsWN0Zrb`AS&esPl^f}In0u?7U9)mWfOVl`9b*~?dsHH2mMC~(-jLT5dY}Yi^8zG9?t*P wDQcty)s0FV3Bp=rNCB&6*|2MAD-Cmv+U}523SzO65JC!-HZLCH3Z%Tx#3C&29$}wU-@(|k{i}&o@TU rbr>QWUB0^3!e`-*;PvqAB$(%{xRAVXeT8$G~o+}mF8osR#=B`D5$}(YoWt-!qLr~bAOFW1`x8kK)oq 3V!Oeo(9JwMZ=l(s~2NEc#62?U#=i7nnsuYh2NPn~V3E{LG_n-OdfHKlc&B}m%eS<2M*4(YwpB34Z=` W2IPIHYU5b<*5M2Mr4q=dG2{JF?Dkua#k2FZ7h%_m}W>}IQ~?rOZMI8y>?Z2BT| SZ)C&m1#TUhx3*B#le01R5Zad=fE0mh+b!lFkwZOS`g6O0`==+x<;jJB>9k~0z5C*q&T|)nM@=`3Yurf_%J5H5zM+Qbsab6#_f(k*QClw6{#9^NdL!l}?o#`Z#insg&pC~nK-#ucNFDFFhcl!J041>7>lOPMxkW@NMO XzBt*??!sXU)9){H>v)I~@$UQ%0I_K+h5yJDz7i#6I|s=uI#d+e|{=RRmOM&*BLu^Z;C!HIFPRI)J2L exsO^|2}P*yQ7v3_nt5@qRwmD4vbwo;K!Diw`$22pBD0r|=9dK41c2k#x7aWrfbcN}5VM`%s*}aj@|; *3;%5V3064Eojg==aIxJjU*V&3uqYG<2+gQ#0S 5tY#cZEW~}qXGGzCHfT=^e>t3qs}kO!lY=|Ltt=+JZOsBv>7K9QBQdwlphqaZlS%o #t%Ck3al*^=kEMy@p3_s5Erl`rX(o!{jPL<>JzM+Z9Yyi;ZtWY9mg=EKfLc{*$qpBr=QYDN6T6z*iV_dKeqFGj0JlAwi#ThEE-vsVZMh&AFD~L8I5Abu`JYGL0z|aw79e GBTgOm5J9tjI%jxh3r!<=@kY}W-)eh?5QpOy)r$3=^=7XK|W+Tb~zL(I0tj<}*b6Bc*!L~w#<~ndJ`A K2;wZM|tx{*o9e*4IeGVHz5-2*NU!b6mR(xkZup1;FkvEAyGQ(-E^y=$P`7?WVp?2FwYS2m}P@l5hqKvQgle i?JYGkSco|Hg^FP)2eudlg8)5QW=@UONOF0*FjqFzSd|u2@Re!j}G(qB;mHTjr)<2_gyMT1fR5wN>c| =WBEd7M$iCa0RlKGy^`SK2YQbkPC5`g45|qIL5$|zgKU&3(e#)xtI_j=%QB6nL4yY~`CBGiAwMR`=V$ <@V4KQoN?37HMwQp=otNs4sM{aClqM2Kv+~hq8b8j@PPcn_edIkJh`aa0AjMJ%o|CX;6j8Ygs8-_t1^&dzun-zE?+t d`6t>4B*8#N)? !mr8izm7bLgdrpZo^*qR~B#}chGeaxP1B_#UJ32V;Ndi%sS2-!sr2YGDJvDi0X9@ CWU+mFj&)c?r=Dnmw{K|0jn$9euqAuNMz61}pE7Zv6!&W#Sr#1@*C=D#N}$mD05qUBMLbb9h~YvlE?l 1%m>4_|3|AW!ZGWSvIyS9&Mm8$BP*&Q9(r-B+Ic=kc_Sacl&4=fdspmDB#60VT+EDuH$HF8}fKhj-VP ?>O&={?hvDIqUUJKf1(ZKXVQ~_LNnvZ&UlRbT4Q?I1~9jS0}mSgmMk&?#?&KJ}@(^y*ayOjz>-$W;Mo`a LB$)uq9e_37y{qoc0<@N2mtIu=eOJxxA1Y}a;nXb*M_^&5d`uSL*iypVU`E5#`w}5SV$2Y35L$7q~n$ y!@A5aW)yME80p@Dl2?a~u-ZIyhdUu>D>Wtkl6C>o-gP637^`ibxJxMQkw8y25ClEsHGq+yvnIiujHC MsvCx>$Vp$lrvRC~jr`7o^B)H9hrr9N?(?iv0BX{7q!~1)-VzRq=mNO9KQH000080A>M2Tmq61dT9m# 04oy!02crN0B~t=FJE?LZe(wAFJE72ZfSI1UoLQYtyoQu+cprr>sJuYp?2zMlLl>ppgAM<+QPKLnTCALBD(WrTdC6|d95_OsMe{1250-7U2S?@hz*I{1O-clP)*Z&xz Qvf+zu+H)jQ}VeOE{iC4_TJ)+v~Y(wau}o%5DtlO_usFDzwQ+56s7mceIdtQT_QjP5;U@i|F`^-7z~_ }jR&lfE7w-OeS+BXMcAZQMX0Muneh(|co`*w!kqMJ;a$xNZ8j&v#KhxPy`l5p*)T&b+iV`a0I(t_Krk=-3hI3NGzPXTMRDctyDUK=>qi0<<+adf4_W tbtzto*NBJsc&~N{x0Jp1YoU#~LB3*mg|d|6oV!2~DR4kUjx?s*T8lE|HX^X45Hy@2RNkGV-cY65mKg yPKpCLLDx4uA@2TlLOQAldsNIFLL>%CagD`D?$n{;&DW=JIaxWVJfJ@pa*#`Q&Ch$xmM23BEbF-5OqG>j__pivVP04l@MUX_;tk!X!a9Ri$zQYbIUX$X1UVgoO4 s14NvFSYlbdvS45DPQ-SG&ju!q%G>%lJfsvSo)_Y=iNouYkl#8EF(7b$RVqz5i6$+ESW*e1c&+g)_RpKK`CESqey4n+(8E>}$1eEfwLrC&Z>1!KC)sq^AZu)e a^*n`tY;vKpUSn{!VsB$Ez^=L83h}n)@EKxh?9|84FI)_|Y6zH20WS=;y0CdO;aP5pjhg4oPB+;6DEx owD9{f#OAIb+5L<_sVo_OL7k-^aS3~H}9*dFv#@uzBYR2zMVB8uWrLtHNhUwwznax7d3W33(7746(Q( uA>LAAG=A#s^0MAU+P4ctt2t(68#Xv?ETz91&8>5r(<&SmwS5n7hXlPbkv}=Gbamii9L|unEJtp(%8t *jPqSQ^eIRG<(MliEuJIgwT+4vf|2)(QZT24ZYc57mEh)MdCcQ>3)TC9EpRrc%TaRts%Pi_elK#tey% F?EJ7d-be?o)+7rk-?L7w>$LLAMY>pvXRE_@0me9@c&GUnm%g70CtjxNii1UgajFVtG?BX2bjy U$H+!W(vl%VMogX_kwQ+Xf*I+oc6x)obvLEohm&NJ0OYgPrnKOK&^uPTsWLQrz>?Dm=|Bt&^b>&Dx+f!D9Fvs$7qMj9`aena~_q< L#-ie@(G}7K`VE+8uHPb9NT2uawA?(e-mo{2G$fz?Xxb{^;F8TQuDJFjNu+7qLhyL0+H^+8PI`>B4t1 jjlXzGmfGfd`l=&)dHcx%fFl|N+5l;2ezV&-(#@Ou!7%XyxE|Bsh+v7f`?v*5d@rUnB;&LlK5tC20%> 8u#@>b@w0hEJS#lIvB^FC8;X~Zv L`5c$%XRE`l{ouu$Mju~Nyv2Ks!#(jhpu?d24^T@31QY-O00;nP0YzNMEq%k^000110RR9N0001RX>c !Jc4cm4Z*nhoWo~3|axQdubTyDca>F1DMfaSd7qG@)C!H)<fq58{0ZT&$hp0$SxWGkv44!$$Nht <{K>@pWLS!UiS-7xf{>BiHZlYfL$X$4?0Xv9o-kutF!^&>nU35ilaT5UP)h>@6aWAK2mod QMO?<*KwV`4001rm001Na003}la4%nWWo~3|axY_HV`yb#Z*FvQZ)`72Nkc_WQ$;RxcywivK~KXl42A Fc6;C^XG`i6voXQxYV(O%IfH-EY+ga+8kffCTd)zT35V=H_pX~2FFRVLyZub%C{5ri#=jk=D^ju-3eX vHU6<1^e)#y!49&t~|oUY_MccyqDAJ`hC$s8A>U~+CvE^pP*_BiMxjE(36$p8*$xFgVKMJ|F3DtmApY f}*hj{DP+^N2*fod?)m)S}g*c2YIJRnSo>$lJ&0Zf3J#7!rM=OssEb-M1>tR{3ICl*=n2RqEMv6aqZG _w2>s?g;IKqtZK}>+}HYp<7SVi+1E3JV!R|6u~xe(4JJyA$s2R@lQZMRO0lvKqArxldMEuPH>l%c{x? D`Sx-Byv1v_*<{5wUzS*Juvi!O`8Hn{QavCm-td$c_fwF>BTMMh`H@`!d5n(gM3qE;mN)hrCOE3Nk&A ZPw7qT#t^FWx#0VVu1BdZ=LC|W|@qwd`r~03rM128JO9KQH000080A>M2TrEp^6o&x-05k&t03-ka0B ~t=FJE?LZe(wAFJob2Xk}w>Zgg^QY%gD5X>MtBUtcb8d4*C@YvV8se)q2s?!#JG%{JIe;owHMu|annY !8Dmj4x3Wua0eOWxf6TQ<`KeTwr;K19k %zEdIEzoCN-k0dfZY`!2Tt!pVxV%tjLP#ms-EAE_rQpCeF(iU}Pnfo*KqbV3*&$d0H2DK4j4s<08YsH hVu;;aszXcQg0H}v1~Us`R-K3tLs)+}`$siMrZi-PIHZa;D*cYW3`rfQRqPbGno;+-+^e4YCc$vJ=^X Cc_c{(CPH($V~+6Ya|W {PstFk`Qud*VV>Szie;7^*_ru!(7|b+=qvFL*V|JL5~vHy_=8wa$&$Vj=zkP)h>@6aWAK2modQMO^uB PffW3007Ab001BW003}la4%nWWo~3|axY_HV`yb#Z*FvQZ)`7LV{K$EaCwzgU2EGg6n*!v(3}?=61OY t#o$4gW^Gv(%9_H)7(&=Lj+iZJlH9KS_0wnKq=7QOIMzKn_uPA~lnJ`OyZS!+Ogor!@hoY()ob{xOLT Gm{sUS_TB9YAinC;rOgwl=YhVgyw+%2&Hxy)vE(NK#FuN$ula1s(!gw?2K?25z_JT`|2xD9mO*vCZ64 pB2wv@Gg3z4lbnILYsldW?P+1|JdYA9o8pzgf(`+^((@j}TN8_z_scWrRuiGl0_SHKM4k> Y6hxc~_8z2o1Y!a~qrc*rgA>LEt{(_A6RzNAcDs|L*pQZC6aLgl-NiEE8m&lf7Dz9+a^Fl0D`>GLB2_ Z0e+e4N{;7frCd`j%FXxiZk#syvV{}mhcE&7GTBI;?u)*?jT#j8k?kwJ{R{|0_ku3dX|rgNYljiurCi XTF_X5Qf6|zi0Ef=?^nH`=w5ZoxXeN9v$G}3r^vMhgC?!2)^dQUsaaCe(HD@Ft#yjFFi5I2t=+ey@w% -flk8YbwvQG)ADGV4t=6JEJ4>fg<7tRG!t6m_=E$}xqQ+jLi9H@rBHA)8;V02r&P)R-gXWhblg3cV9O tOFW|mZNH%^i7sGBgG?C>Op3Vqc2W*J;OO9$Ddwr8EF(zQ7Y58swZbEM_7Isc9CcbbpI1RD1WQi8UgP W3HnNY10vBTE5^Xwf)eH`f}lkSL*SZi!kOhROf5T>wUx@*?!xj}4~|EK+FDIW +j~lz7Py*S?AXTg_}m!@`$0YJ{M#nyCvyd+SaoK96rm|o;&?!GY?4H!pX ^2ubaDxO$s+VFI92@Cvfx+9zpHnWc6XOjeAU8BOzFQdKC$*iHt4wWO9KQH000080A>M2T)^ 1=w6g~Q0J<3f03!eZ0B~t=FJE?LZe(wAFJob2Xk}w>Zgg^QY%gJCVQ_S1axQRrwODO$<2Dlh?q5M9C@ L4SknP@mG2jBJ*WF#*b`d0A^bUa`(9$R-B8xgwisN?gzuycgQSZsNKm`PmshQz$o|%V3Ub4HJcmH1eB 2rk({H(;oq1eK6v1C79z4<5GC=szwTxprjE@zik_>+hr)3Ep$Lsp1HfLgNaoJR*({1{x#5+#o;43n}b 6@(!Z$6Ts{@hp=CFNDnWY*vjWWfm1urn(+D0e@7G)IWbu#opR0&bi1QYFpd?+-$=2ht2w5A3wkM*>!g I*;=M4L}cG*zw(^KXI3{Cc@RE97E2W<_-_fi&;gHmUVzfI$q(D@&9xmHQHyAGk<1DuQ~RUVdnck|O#` nf+5ai1TJvUe`|I`R&F5`+yLtEVcC+4wciZdjm%Gg!u7-5iPUjWl3Bq?$xah|Eny2ZWM~{T;Z}t<0J? VySIb--t2FZD(Ml@V>5ifKmxvh)B1!Kh&e&U_pZtJ QcsY>F??R4BjkCxz-(Is)X@c$uqYx71BUEEx6*B|KR-R9F~ySezE jZ6#)mX63o5r&=_p+`fS`0khSc-cgTePy3z256oB_2fb*_=8@uJysb?Y*pEoaQPLQwJoX4;J%l8yQv9 Ww6Ol0Kut+Ibe3IMUUZ-DQ>eqYY?b)EE~fqZfh$@vu|hNU!{eznG-r#SjMlPQO^GGq%>x&HW5zd{^9~ eMhOV00_vQ>st4dsLy@FJO9qKB(IG}+;CpWwH+e=5$;h0p+yLi9Bbehk`AWb-Ot2&cz4`)*C6HM2EhO Aa2CY#Lcy6m@eZq<7CTe-4oUY(hFll>aYaw_vHURn+asgW-f@S{ujUpRu$d@aNgWQqC)psy@RB`@%QQ RXS!n_s>i-1SFEV>igOCtON$uBQ7+vkz+w6i(<>Gw#m?=t{Dlp*7~W1$Ohne7Ta(0x-9$4es9Pyi^N+ t%^)})STUv$i>Bld%r`R7_T7-*cZ(90@J@5KmtspI-32S6%v62DiKjQ1Mn=&7Lyq@TRR+W+Ba*;IzWm iU>QJ6rmRpFjJoC4J5@5{1?Kc|s(MNG6FKO_mz~5f)VVw09Ed~b`>J12fs-)Pc-8-T#}Yh8klX$z0Hv h*mWc?zj#$k}jnvSL0&LSV>*T%^X(L;E=J$>GW)}_3=!&wv#Xt01GTKrf872TTP4ag2P&W7Bgb3= >$%9GRf#`dml95)H~6H&O5gL6li6D7knVR-!JFEqBOef}rAdLoRMvmMr|57W}H5eN(f3U2Gj|CRSv$A *^1|X!*2@E}3}9q=I{iR+Wfh_m@e{f!ArJn(qx7Q^fbTvB1x?ctZnK7VgjN$RDXycicc#S85t^g&s69 -5zkmJc%@AL?~sB0@yvGur>sPe>UpYWG)LjbD+q%ySUi7@ORMyo?cp!t~~ojrnqElR}nlrvsR~C9B>O d(y@!#RIiJqXJ8Mg48%DmlClnDTS_Fo7Gtd3yS(H?11!k&?A6}~C2c+%=ixaQ$`X6Cj=mqYoj~K6ufz ss#ok{1W9ZK%`wiH!#4I`RCm_)2q{uc~{?P0#CPyM!VyYd1XCp>T6i@Iyn%Dzm)<;YVo??l|XF|9VVH #WeR`xVDi~~3~QC7e{;)}q9RTyZZJk&gKbPgkr7!dp;CMpD*4Gkk<<`udc)IG@Pd40>UcEg^aH?U+8u IO!05cSi;wnD7$1-eWrKfQC%(<%tt_zX=Ogpt=+O#E`fn3_;v7l_2jnmvVpVthnBms$%d-G*c&Lh3~l ffR&^wPk5!#DHCfp>E^zW{HTP@6Gw=Q 8XE@ce~uM@)d-MEy24{h_vcSkS<@uDeeQu#=!|a-1SwhsJMcq`H#BY)rgyoa$%pk5Em2q`fyphcbJFc $`{H&lc9qN0MO**#ly{YQ@MNXu~iVlN^=|J?4&OM0z?_6oQZfwsg_Bg#;925p3zkq}`Y8hEXt)7~VJx R*W;?;@oWBc$ljw8tLk?VcI4=mixwoVdkBRwCTEEbt0%$l7hDRtCyWI8kpJvA}2N7ob*$?%#d3byuhw >+~)@U@$48@!C(&Cu`O&Zj@J@BV-x(Tis+t1mady_ok^w+T_c^?C7!zL)3836e#qT3Lc6GNaSplDy`dt!I{(Y2uVzweCeClveb=S(}xE!Zhv_4b4r~+ycbX1`v%@=&M|ptV@ 3lk2btsUP*O`%bl?a&-An7ofOOH^0%=2J5bs_&4%)0Xg)?%;*sQL~{=xO*R8?ehQD!s}FX)7{oBbb9O 9KQH000080A>M2T#WG*-rE8I0HFr}03iSX0B~t=FJE?LZe(wAFJob2Xk}w>Zgg^QY%gPBV`ybAaCyB| O>f&U487}D5bY%a5~C}yi-8Sj({2maFRVFiC-yhENwE{RK@U01hZvH`$H%8<<`8a g&c2U735gR`HCilJc7~5OhU24m@8MjF6fU?ns$_@kFa%$S6ib8SX@;d0xj-GmNyXC@j*p`w#tse+*ld N6x-C$PUzl1rxtT()G>D>-Sh&P;86r#sE;_@U*V2M8z`?FG@{AdtBZzWbV4-vanMkcrCD%>li?Cd)0+ J-JZLKj$9JtaJcv&jTU8q^d1Uy%A9de=4`}I*%ZS7C5M=<+wbDm7ToKL<^uRf39vbKC7@sd|AkTH?>B Vq>hc&vtRBMnBP<$=2L8g8D%Zj8(Oej$Jv(h> #Oz#ar3XXSAsRyLGWyUXc;K?eIKYnpA1k5J#3Zt%Vjcfb7e4rx$MU51Ad{g)i@Q4911y!w1gsqh6$#u 4eMVOCLJvC0ha1h4M3llN$(oj5ICI4>F8j_)=C%6S*JMY1hZRZk6@@r^5%Jy;iOcDzD+cs6JUz2Ljeu nNaswQ>Y|0x2cK_cDzlB|GB-rft+K=kWp$?ur1z-Jn53jsci@r|Eq!u<+`vHAIm8zU;H4eW3SmL1Zj8|oq6U=43<~i`zeLJYcR>YO?ii50YB%&)YvB+#;BE~1i y2FC-;U9tJLAMZkfZ@BC0GUXIo)&O3J-?!c@!j_t++!Dr08-f--BD!+z(Q!XK7JVP#m*PB|nuT(;CVk ^(Mt1%#xP$@O5k`9;9>!x1tb|YuRjRVpgh_87vT_;u&#i`;ZMh2u@urdtJ0jZ<{$BzcjMjT>E(6*|OY ??ct`^cfBF7fo_f9o^Ros?AoO(%;|r1`~ISxiEr`y2T)4`1QY-O00;nP0YzLlrV)U96aWC8N&o;R000 1RX>c!Jc4cm4Z*nhVVPj}zV{dMBa&K%eV{dMBa&K&GWpXZXdDT2?a~nr;-|;IZ%Tf`r7b}X=F%D9+BT -b2b(E|k>AR#D8a3D*0BbIGk$sTFIsWhI?wQ${*%u-C%Bi4ACa{?4>FM_iK490M-~Y$-L!5}SY`e?j) w;Y9PvwjqAHDh$JI~{gUGluh($T@_KrX(FLy;C@dJ&1VjF+*=B-_T>N(>in0i3=V+N{8#bRWtFp?)e9qzxZel!5vyzu_mKLLtdKU6 Tq!G{c=OkOL;&i1y=0d+K<4yhkQSkd*Eaf?3!{a2V$~YJj`um&z{Cqw?`}6 tPUoJlVyU)(DBoQIv<+G1`i!0R~w(&NYKLCPR9@KX%%Df8kX7zbzybu>a&$Nik_(8mn!?FWFi1ZD!w9 KG3nL3X#V=iT_^1yVehKp!3qb?rg;1)j^cYxD+{0M&|pj+w0Yzb 3{}`SMquHrYcWBdS2^2f4;f-d?ku4@L%*C(@!Hqj1kI+$l0kDmS82yOL{h*&r`kuk(-Q0KV4nGl3WB~ w%LMmjC1ej@%Z-V*~=de?!KMOCO?c{zJ$;C@tX;Jy8W5njsFYZs%Hn|0RMUb@ALW9$G4x(Ki$l)&fi~ LouA#zuW#Po{B(VO4d;wsAHDL~>!a^r q{-l8gyO(oDG7c23^Rv=?3i&Ie9Es!mKV((bCWLF=~*z14!?j(@39Tz~X4Tu!4$~7wQ&IhE*wa;UhY6g`NFL6lv?O4|G~REKIv~wU9tu`wtPmhZOKqiCvCgU_VkBM>13LzI 2V}T#KQeDVkJGrE&&TuxUxi4Pe*KBI&Wud5|Dk)sW${mA-CUG>Rm|8T%Mw^|lULS?T6e($8@26&SAhA fig}nt0stDjbqm+M>)JG#IX6%$b!sfmc!HEsnpQ{vA_2Qjk2*HX+W-jble^4Z307GjfY9cKN)TMwe36 K`eMbafe*_TY;yxUX8C3uCWX%&eT2V;L?8p7V41X~sBb@AU8 4Mixd4+4+F01kWst>4G%!j1pFi2U?;(GaEvgn%ZQzTd8}zC?ZI4EbofCo0kdMIHC}VSHPQFjG$8;XWIgboW<>{|6LK7C@d7EM XDEqFe@9zIwSXH_6L<8UFL}>o*65rP)-fH!LEH+6@er6(z{z^UKPdrv-@b=9#4#sPHsi%G0A~7H_JeoaW*Iv;`yHXI5{kMG}Y4Ez0AE JwWBz({BHhizzT?fPcRk#R$W>5=D?9^$ugau}2h{Dyj8+_e=6;)3f?Z&znpfZ39ea-BOIQY9WBu9gwJ H8DlMjR8T-p1n2qQ#5Hir^4U8vS%|me#zMLz;2Ect7&UBUUXpWlV94`M;ZCn6&T@m{soZ*dbf=GW0hj r%jRPbAKG`M!69I^(3g6am@0`7Y+ztDS*q!HjmbU@R2tA0zqFRl;ixrq5w9r*bCoqSN<`Oe>OTPI$*^ _9B?rnnBo_Ne_uw@Wly|#Z@@74c`C=6VEzgu}1DH)>P8yQuByS)G(iiQ)yiQ&ubaWUX?pwrIoRg;#_ m-1re8%f5aIcCGsF)N3x!iHHh+a`BxXVc1#IgxDr{t{qA?5fh8Ty61DR}?xF^@E7T<)KXC_ydm6Qmd^h_LfLd&ow7$fCOs_KBL` y*k$6IPNp~fkC94=Z3^%yKVIBeV&~mFY10CMD@w1_T<$!dwMFj-88$OvxSmwQESu^)FK)^F{N`rKcL% yos=>+}O4wZ_zxVl#LQ>M~3ATb86nq}VP`3oYiLH{9CN<%4Z61krGQ^S2N;Jf)UPDJZsbNs67c9>H31 96c939XV+!!`+IfXpw(iXpy5F5f_N2&y0r5%ZDfDTtDa9uzGh)l{d-{9_5E6_KyLjnSP!TsCQIH6CZQ T58-}A^a6Otx9sY6j0rDYxk8ryQSY!pTWq+RJBWuo`B}V`}`3S$L0;_pl+R4GHQC&%^BpjiWmVZUO`sM;GUPkv2n;36F)ejsAmhRTB|T Kk)kba23v0W&5L@iFNZshLQ*((Yj_TH_kUXDq)-b%SA4BwU%8tGiE!aILpzz`7t5Abvel5a#_P7=(U} (KVo=Tf7DXc`(wcB>`T5L5tTP{)Yr&T7wO`SHqh26yxQCjl{Vbo{oS;eGyF>!o2P-lz;4P*^)g5o|?Ho-wMb)X)qC$UJ)>C^xFH!u})_qDhh(~VG$IN!_=M}#>C w=>DNTSvQx7V0VBF~VWy+egt;uH8y#Os;?=g#qAco-W&{YTNBKKF1rm40NoaQPn!~Fk*Z&4wN5e|=0r 0rbH~Mb*D3q^MJb;!!AYOr;>41g=Ruy|#6p2KXA_`gy-QehRm9H!o>jP(iy@Qt5PD`waMjqA`&$Lghl ia=|yW_Hkk%IIXQ^$BC0{o9veZ`M+>K^IBv1)LR6(?>b7w@cst#sMe&MuEly}3;q>1Kz13UCp2IkFMadl`yXfQ1`H`-5Ap)Hsy0;Y29e^ W_AD6aJ;q6bLc$%3h%eoVtR*j7`~r#|0Azr=;X9%WY+X=;D2A{Yd_@aPNMg9nvjtdbjJY$&IAt6S84u YvOg!NP>Jcl$*aA~yQNgwZof6hX@Gm)(xU_53#dba%A`6;i;J`D(+Rc#P@HTAp8TS8)WTPK3Lx>O9u|s;TC6}&2>BLp-8c@a$dK;^^QOu!`P%_sBK52vtr II`J^<3`;VI}&YiwAiWPum!00UBfw37Jg!rPpgQ_3l2M)&TA%O>?Yw_R`LPpDV&ObzFfU1y}mpg3!kS RC^10+m7zX5rx8j9C=?$bxffgHns{;ma-OL4%oz{5>;!n&IN!{r9gKCgv-G74U6x#%8)h~c9vX>{*2neHOAi0&XU4tZpV Vh$H=+>y?5U&9sNI}*RVR6JTuF}qnM>s*Z#_#cxo ^ke`-(Z7Y~t#`4UqD7c~#0elQOR)N@^BaJ4*FGWPMLFGM5e_9rUv|_-wQG8f;hTHhC4$up>~j^XEm&4 nUP=&nn87(96fx??`xex0f$$yf%k;pm`I+yrpg990S%Pos83t0Wlicsj>SnqFKq!L!y@6}&T+7J`Dm$ lL<#c<)@2ebB;{Yp4`Xsz2&{XbBcK^!AS8OW`x3&on#X3u{LM0&L-!(vCPYuTxC8Q0=Cf*_FvkDFyTM TS>ZkpBS2(k{V`fU0r3(uRhw=3?P+FWv1O&a$hTId-p%#7C@=lignmiiQJiYLB-gv?hq8s`L9wT&q8X aG~f>{B7BP+TpjlTABR5`ooed5`fVXey&ds6V`P$=j&@%c}fP58w~s4&v~2>@k*~@Te)(V+{6J`gxWE wB@W>?^kop!IfA--T?}Bv)hVWd(qt&S%@zm7aX=0Z}k*--CsooG{fKZLdvQsQKuo+dU*J%k$&%CVj48 _yNNVuR)Ezxr%jrVTX~cnaCA%g0oEV%xuls3A!$b%h(&l*E!43JM3M?wXq^P#P(b5WMGaJ}Y(;S-hei N}N>2NQNru>f6ypLkfT)64fR*=^)mTOIt5%+3;9sPysKPa2=eK*QGK=p{b_^lWJr1aFKc(%U>jTE&`o {z__MY&N=N})P92RxO1yefwZk18(Bx{vU>X(e!Nd8$)jblv{*E{bsQ#vq#+6=RZOmcyaZ@V`RguCrr? pgxGjqF7Yn5JPGhx$Fo4R{vC!?qRr+90u00CdziGDtWnfh;k{Y5RBwTz{FfxvyRC#Mgc`Pkeo0-LozF 3cyjT#dP?9bwu#oa!{X>srKFe5VqVnJChR<(@T-AaMBbDnsyz|`5JE`XI%7b1ezjQi!wv*byP)oSimf dXd++8r~n)wSYk9-;76s&k-2Y_395SmoFt*R%mP;2$6M?SNiEg$AjQwAT#ZZy;KIIfa~A@=>hs5fo44sUZ2w$$toY0>|r;!VYK_4 6;gv5TF1w^{F$@Gv(=`Er}Us-mYtUJxm&G{7>Nt&LASXI;^Cu***X{|Thi6Jy%=w|-SbexNQg4Mz%g=0fF8hG94G#r#Ul30P M*)*(`hYhJC}nJ9%?-)F|aSBCsTatBg!nVKKk^)rR&PFbfNyg*Q}*K2s@SR8f}F(P5Y6PE%O3ss%mCy YF1oaVBpgIek+*5uWZk#yN^W&8t$+NB)9{bkkMcx|{qS13N7>Rsd*?q*xL8myM-#)2og1?<1S%4b!O} d2^J%0QyPxi*Y500Z+we80adN?s*5RvP^ YAsSefY9!?LFNIQ_~*oxEe3$7S~O6+kWa)xqrk;&FiB#sM$0~2KE@9q~Z~0Oi&=Sm!v=eSII(Z4Md_Y Cmm!MB@+ks7L8)G1x9>ydh=SLq+3V!&qfyDfBgX(No*~1E%^ L+NWs_cjPY2^fgcpmGE&szi*)h^|Mx?<4TmHXf%DLzN(XEpyDiSVTeF;Yp#2mk6{Nb>yhFPxH |mo$T~7-nTV2ceYs>oF&)7rjA!a}KK6|kJat${w#ikf{rhfPO|AwF|_|2<0n||vml^@iGg|p+MBl1Ps U?>`}hnO2?_R>K$DNYfL4Zmrn9LxG#j?p-z{maJ2g3@6aWAK2modQMO?}EcGmz00006J001W d003}la4%nWWo~3|axY_HV`yb#Z*FvQZ)`7SX>4V8a$#_AWpXZXdA(OnZ{s);z57=X$ssn@Rx%CD#Xu IwxYIL@Y4il00JDpphMSg3HYXA(kW?H4`{VajQMM(=bJ#tM4{r H&3*Em=2ZhrVt-FuU(Pud4(N0+0^WcuI@Erf!^%N ?Yrqj>g$A8g_F?PMTdiwXn{c`ck{o>b;pMRdJJG+~zg{~^S g8j&pLxcH9;Uh4)t18NcOr}@)9`C2NEXg0uHZe9?UK#kgH~Ho1>ER271}m|}D6ez~vgb08ubT! T5tNII3;BMmVWGC^mD1j|woqD?jdH6$K}2mgCf}&7fmI|@^g@0YH|(k>T_|ItQ(B-_!f}dt7Fb1A#f^ ?C#V)A4a)DqU6BfNv-bTV!c}Ee?;|6O;z;b6JoD0g82`8avBYArV1RbL{D_{iBCe?WNYOn$507JnI^3 {%c3WMZLxBO`%gg8KL!1|i%75R`DXjQlt$CMyK?f^bsE+?vjzl_&-D$T13@H+?`!Fw*#&sr?F$(p&8K`Sc#o~a#h{30@8OyvYZ6W--z@f?LyBHVqEsC@U W!^@^jdpEl8g9nrPtJ}Q#b%^LrT&kFB5tooFKZ|>KznM5o-8phhyekIGQ=;=}FV-BH#~b;+JI7FMbV$+%6AsVOsAtZebI}j;>+8bhA!|^Doz0wIU%$IXMFKjMeNC ^De9}KQv92z4boI;}8shO-L_8gf;USDKmS_3~bGm~5BLzDOw^Q8>0n5&IW_U*Fo!q|%KPZAw@Iw#!sZx=lDjIuI7g{_^Z%2$RKJt@vkfdaK60s9tUjp3X 8o-D?fq{UU5Y|+xrWx)YZe$wD9f_bGx(sZK)tvN&ttrYWe4hLD@;+niGn{U;3w5%=*aOs3RVW;SL2Dg y;V0uvqb;CZenUgZ{Mc<5%Ep{{ 74KU3W>h9sA)C?Z{#*?i3PKUKNFBHzeY4u`g+qGH{k==*g=_SprSK~GRjd;G?TKkRlUzW0FH9qYyz0)UPw2leGv4DS|;`^U%Sm;1Z-Z}%KNIT6=5F` As@2C~Jh`K*o9QC6;qev0atYXm?!?(SQ|1(ge{6d(zF4+w)P>jGJsKks-jM02h~s=#tSi*)+Djy&om{ vvZQ%~mdd?l-ReuBnQ5U6qF#SBd1bI#gcfE3=i%#xgbcfKcOMyj-H2qsg(AD>C&+F|zf*-xcUTrvWM7 7wVOcgLyQNNC Tl&guhG4)x_0Y+Y#G?j-pv{-JbeDxX$Uo^T|Mb{`@IJR!K>e#2Yvcpy2SU|W|%+td`c^5FiO!}oyj0b uZIo5i|1012PCMf4UyRh`kmPbVrxb1-m8#;A$V;o9?+=Y|<}GnR^PeP>|Jt >vA_OKSctw~IggANJxjysfV)v)W%LLrNvNnQ|?5A!W+q%cl=Y&I&hJTby9X6%%Q+Y3=hc@Na_icb>+7 0Z>Z=1QY-O00;nP0YzLZ?xfDN1^@sN6951v0001RX>c!Jc4cm4Z*nhVVPj}zV{dMBa&K%eXk~SBX>)X GV{1aYo%L4p9$B;!IMoTgl1MR_V)EqgD-jHD43ZmnoS3jGKxqE}Aatp`RXB23}p@{Xrgg (R3VFISXFrxkONV5M~jC<8CZ#$}-H3SG6%XnN(;=3hP@1p7w^`+pq2e>XsT>3V=pai&E8dfa^Ow-Ee{ m5gRya04E3;pKucy4ZFmkLL4_pNP!Bd(vvnk53PR!_zt1MePna(uq)KfjVDM=g9Az`kgcM?sVR6wOSF 05xLDM1QN%Jh_3P6uLnW<;aBnc7rlpwfMNaDL&M+7M+H#5f~V$>i}InD@>SQx6M`7_jIF 7$r;sMw%BI`He>@e7v6w3P7Znw+pPX#oLZZM+}n%v$x+o*6$KgbDeDnmgR`o3Bcs9Y%b(g=?J&ZSD=I 7qKm-kpP-Lx!kCncz1xA`w!YBg`0IxveB(^qQc_WV=*eDwX-85r{JBQKDjxi>uL6C2S<(@Xd64wk1iZ kJE6++wo>-wIqU|6+tN>QE5hTT|bP5RIxRZc-=t6Z@|Cl3@v#sV8tTu!5G=}y_!tMXo%XMY8K8EB(nX gRVF6S%)u&RC!fzxL_>7}NgC)(T{d!bZcLeQm!Pd(w4!PWEoBYfuH4O9=-+>sANY^}jqvEh`N>;|_X@ 9}F{B~OBZ4G{v+}u_XvItY;wR}jwq_-~s-+8VF-+=}_I~(TtE$2koQ-wcVrrY{()3;^o58l+QqpU8Q~aW>Z?`X-Np+6zHmUAj9!t{eLV)D %q&K)HqRsC*4(j&x)rJ515=MnPn#O#$!EghFwlwoYsNkS;K`v+-k=sE+Wq8>z-NaiuGe9`s$z%~6oSoi4f#z8;87JvEP;Ild-8;7gS&tR3LiynrWFY|EX*Z&_-(fGBLGo{J-W8m1Ioky WrEkTyYqSD2zlv(Uw(ojylpqCD$f;GDizwF2lH+&KZ-PS`Nx;Il)q$@<`9=(UaA3YzRu&X6mZUkt1dT E?^Lj0VZ1D@EY;d7#}+8#!4>Th_rP3nBmww{Ene!=1sk+QGyW$LKEgpcNYu}V|W|E3r32`%(DI=fQ|V r;FKIi9Dr+zS4)k?3|C4I15oEB5D7>kazhx0yI#WYC}Y?FBI)q_Y!vZOjy{vcNau8<&ypsH!@WQ2uCU vts=Xcx!T={3NtmocGD?YB5pg|&hOcUoXtEt?gglm@Upz1KgU_qaC9ORfQ)ImF aA_6dPyOl#dQhuviCBs5oaTfRa(UG>7GDSvb@2cu-qx*B7(;;&rvyuIp@%C)HwB*O`rXYKzIZzNm@qI 0N5a&>p^@&V2XIR>?pBv@Ngfs7|H9b+l}`o3l=1D06zvZc)<)QjZ?*_dit)|0UZP+(jZC8JolYWWryB -%zr%>7YaVX)}Ge6MMKfC7v~1v{(H;S04%Bjl28kFaYg}*slOqvo_b2Qg+JNe1ojCG~-uBwHJZ&qA{J 6IGT>ubRj%Vb-;6f#(cnec$>B)XyA1#lVL6dyeI_tN;{F@+wOQ^#D~VQO3*Q>ad&vn-3G2oD~38*rbN ns(YW{`Q0|h@wD^92MhFh2e(~$0?bqXRui^0nCVt(m<9^orikt0+gZn0*B4-meIIgh?o%>c&eD3kC5_ 8wFb?-?|ejy)Q45rHd15ir?1QY-O00;nP0YzK@00002000000000X0001RX>c!Jc4cm4Z*nhVVPj}zV {dMBa&K%eaCt6td2nT90{~D<0|XQR000O8W&uT9t?6LD?*;$>D--|#B>(^baA|NaUv_0~WN&gWV_{=x Wn*t{baHQOFLPybX<=+>dSxzfdCgdDZ`(Ey{_bCKQ$EBB6rr!cAix87>oB67r^%ym %eK)vuT5i?bik&wjdi^+N>Dl<|DcC;TW{#(tp(XlqFPRTpno ;hQhU*Mgj7DjCNbCH_y`C1i)SUzsg{CIVB`G)HXFU0Xi`OxQN0{C~Y53Q0*#Ve+G_QtJGCX=*aTEkne 1S`bv7+b4IbCq#aqBI5&W)M6HCUzs^Ib`*^(o_4>$rgFk{c0>G`=)#ecZp<-QV)$OC~Dks=P5Mn z?Pv!azP{*oNCY@LY*=dA0q-Z_$(W;`ts7ilRC*5d31`p3h=v0LO79v5Z&J*Dd6^^_Eb%P1;4FP+x1~R1(!EwwNQM`grusS0WLXheL65g40k>cbOf!EAlcioyQBhl=p!P(&exUMIb<1S`$L~& ZP3{ap^lKoWE8uxx&|y{3(rq)!vyGa6GD#7;x>W}CVzyjSQx(6)9@}DYt-1kYEsx8aw`W!n@aU%o23K 7m`ZJB$v;2AxEdaiA7? N;&)Pi?$?Z~WA=XtP%ruCCA(AO;PLzxd)g_}KHIg$MQ}-jJ#xJUAc#rU6!-|?)&uoY6AaTP@qaw1+Wv l?>FwlVrMYcQ8iSDu3JL#6j7W^E{ohaqPKQ!^$FS472CB`uRSPD6v=RumzJ`*#<11h--VlD|Y(=dW|+ cD3SOorEC&olj&r5Ni|0$J0_ElXb?W&`UE(e~7CMJ-9kj=D%u1T|t|Ddd9s(duUKzbz5uK+(r8PEk!~>GbhGX+b-nl_mL-vutZAa4_Yc01f`GrJ)v2O1 5T^l=UMJ{grv_u4sWx|#?DN$Ruz-_y(r|62-tvmQ>XD>Hb (b(n`Bhjg{ph=4W23s2QQVfK_^mvMxa{-VP)y_ekN`>bJW2&4JOYBEmrZTixt}E2A6v#un0q%nn%XIE OmKR)0j*t|;2HQB)NIU+S6|>dm;@jrc#bO*Umv4lDr>F^6x6;#N)a2`4N81@^=rCUIFNqJnnK|WSRy% lKTMdeB5&F)Rc|QYQ$5mNP-PGqzj{nMwfttZ=Y;oQVg?(EI{rvhD4~#;j=UkoI?uCHD=mkLtGkkuft6 JXjEEvY2J#H^HKJMM}i@tTduKNRs+o3J@D(ia8ek!{@bofQoY8XEWC|$$xgX5#(-qW3(PJn+(d1c@VS ^Qk7Qtdy*nxd9i%TM=eo(7jYd__rk6vMObyPc{iI^f<9 A->WqsX;BBt_*wH{tK@?{+Ld|w3fnlmPQ3W7FPmm(P~Or-E>N}M2bXr_mt&K6!vMj7lS=9`s>35$7t& qvXZ+YvLSM7XIbaDoqw^x<}BqSL>$g%%fCTw@^6DM^c&K1p;PR7$R<1ZK(|cI2cTEgn!323jU_TsK|^ )>Z-{c3x%dm{b|vA|2kjKSPwhTeS>I>wEr@6aWAK2modQMO@fCe`VzX004;v001KZ003}la4%nWW o~3|axY_HV`yb#Z*FvQZ)`7ja$#_AWpXZXd5u(EYuhjseb=uL%}WA_+ZFa=aG`UvwXBpv^3YO-QSIwk ph%u{UD~l9KgF`;k9b@BV(H#GZ=P0Pxqw)eADZt9+`>DC^z!1;^%9(+4GiM)j+QNdVc-%DgHiY<8=wChIG*R_uzI((&Dg!?q{S^kYp@!4CCX%ficOk-E k=Kx>La=3Mu8uiv4pu5+oTXt!GnUP=h#7DOmjRT`P`V)_iA`ZOpUJmxEk~lvr5X?y-E^v8`j?D_fFc5_Ad5R^y+M)$7f(L&==t0zjAQD2lwF_+$HbM05wH6e?gSXw8- ESs={dRdw*VN#``8(64jt9KO3FO1k7*NNwk-f@IihfWy49=&EAaqi0dTmFyBSW@@~?>ebR2&Ht>Cm# EjL)|`iw96k0|XQR000O8W&uT9!1{oYsRaN46%YUbEdT%jaA|NaUv_0~WN&gWV_{=xWn*t{baHQOFJo b2Xk~LRW@&6?Ut?ioXk{*Nd97F9Z`?Kve!ss$yS&)j#mTa@0}jZrHA}l-X<9THwju}&olT#$*p?y5$s N!?exxM-yi1yg`o)$gQshVK6Mew0KmPIW;agF_nXI=;taEb%8?$65$3MPe=Sn2(k}EB%*}?3{hbPhTEK{;%ahx@#Q4q&Wl(kfb@v4%B8zCz_oB6q%>%0)Fb|`iGWuUAx^vM}B =+L9$b!#dG+S$vtwW!vuKSyFJVS!|O`8^0GDQMn!F^Z9ko6{MtEK#9289I;F)wvr}iofdoGO7P0)2$kICDP)*wQ3(^rft{g8Ly ;}IQ7RN9Myl?WTG-CK9*zC*og*Vge<$;V-FD; C6`29XfL*D?mMZIjxW#{%VKI&WJ(Zy8%6ztllsada}OreP3$&v`m)|OrG}3S}AN2sIkDUm2;(}8gGb) 3y&pgy2BCdn5U!-$5$V2&X??>Vp648m`1Wj12dTCKI2>2u(Hu~P#<8V-G^0a!?A|bh<(P@39s5ICJcK JoQ}m58=UG^4NuA~nY9ylBaNx=;b^3|K+gxr1P+XFHY&-et3*Pn{T?sz)rbrH*F@~Ak>vh!XA3X)Ut{ qo#r?qf`J1Mrmy}>~nRdqusszmh8+&?eapJqjQvtGU)e>o>bAEF2bFhiLS{Oz-Y*MiXZGv!cXtOG?$C OpPgePnt_!_y%vBaHQOy{yGQmQtV{RkCny!)l7}AF@(ZG&-t^s$-jj8qW=x8lW-mH)s% Oj*4g;*R7E8$3J-GDxN{ZnU#Vnm)gbx`^M$^E_>keZE!R$#bp{q6GAUC4f5w{CbhMNaC7ZinbUDI6qy nJn1%*5ClQH5iZEJ#2f}R$Bwwvq_I1`PRBifTK$IG^soyAWR~DHl_uetJORtbhCVyTDNFmoegJR399m{y6N(@NfYk^m|wHxhKK49UjnnN|1vXfAdU!SYNZT6oGX V|yh*4UiMHK45uUL%OWZ^8w^8WNjHA7mnH8WurYaI)IZs+FVIPnMU9~-r76yu3$cww1rv?j<>#|t6)- gaV9d9Uf4Ts-w|j%j$OqJ3~KU1XDB9_wVH!aHEUUQ$R+dSeX|NkVBu{nJ?b4-SZwB^&?$GwDaUHVbJnU i|w&c&mySHaMt-eZKV6<@<10PsGE$?iS~EFh!pGTlu FJk=#w`^l{*!}_t_@o6dSA;+Y=sqRJ0}wU{pm7t!P(v`mDpX-5yRi^_S&)f?#B6URKn;tB0BlObpN9< x=Sv*h}#~bb-cfe{|8V@0|XQR000O8W&uT9y!H3DMgjl;Y6SoQE&u=kaA|NaUv_0~WN&gWV_{=xWn*t {baHQOFJob2Xk~LRa%E&`b6;a&V`ybAaCv={QE$^Q5Xay1DUS9fky>j^;w93MpcFPSO%n_Wgiz!qm)6 3yBm26w6Ca*)oTOy5%R^hc_y67h&c00H>+Of{^N&j7!Zv%SR%^P$9p!L-_WBJhohsp4I&V!fO{OvUT9 s%#&aWyoq-upOhj)!E*El~HXG!hs28yEI($-;7fZ8h8zwvRGU$7oV?gK6RuT(p8@pskQP&~M!5;K{Y}mIQy EVH|R|&4DI@nswQM=Xqz8_5hy2gVbBhBYXz9Ym`HugEGXahI5Kp*=hJ{Sw|}3*78XYjA4INt?ne}M%5myHCB@0fy~l&LLedse~!?CzIv*l5YFqVgih#` Fp`NfvY|VBSklw*hyt5!~yvl?&oQ(S;9}xbkV19chxs7aH3Whu(Ga;VN(%jyiU`PFzmWDaJRd)F@p`I ij6RCYPuibWmFtL&FeDt$}zXnZ!e8K!$UZ_dHDkzIlX4MeBi4%58XIykgd{7icUF+Jn77OS4lgIbq&< e8GG>x3Kkmhyj9SZ~~3Bn#-8+v4TOYfNUhSMI8dgzm^+*cO-uSP)h>@6aWAK2modQMO+hvD>6O;007+ s000{R003}la4%nWWo~3|axY_La&&2CX)jDkLq$$gMQu}2PunmMe)q39iAsa5wOb}6mZ!C$OdW+G%ER `A9Ou$_q;X_lTG+4OIW1j~7DbBfJKufZcV8Y$8=%qVS+5a{t4Z5BfQF6BZDBEoE&5BZD<#s#Gkh$TljVX_?KdszXqf&6IgAb}DOaMLYr3M XZ!{6WJGB_p{rr{@dKLgQ!{ii?yhm|BpIeWHSeQ1jCOb;S6yMv>K`!jN<>}B-PQ534xYrz$CqjIT56tG@7I&~*r1 QJg9A?WO=?!#|y@6JH*;AJzTr=zFsL*D=nIe$u>J$1+=cBkej34gzo?2R-MZlrhN;sEe35$XaXENUHzBe*VB_T7(Aq_*dT$v 35Hu3a0s_H{*DPuM2T&Su|(@_8b0A2t 903QGV0B~t=FJE?LZe(wAFJonLbZKU3FJE72ZfSI1UoLQYHOj#XfFKM2(7RtTb`~*-Zhc9_2w5bkiz) T{MbP=ZU8R7Fq712=q8*~t&b2oS_rc1>5N$aV!3+!jh!*f;TwlLfTax-63_eWG56+Kh9#BgI1QY-O00 ;nP0YzLdAg$q^000300000V0001RX>c!Jc4cm4Z*nhVWpZ?BW@#^9Uu|J&ZeL$6aCuFR!41PO2u1In! tyDW5)V+Rhi=dfBFiBuQe#^{+VxA^q$(E#|NjTL)R1ZFD71m|MiZ>`gVEYfVdWZ}_p2O E#>H5zN~j0UUFW@lC&RziUf+ceP)h>@6aWAK2modQMO@@4SDQ&g0sv|v1OOfY003}la4%nWWo~3|axY _La&&2CX)j}8V`Xx5E^uXS#JyRwqez!6_|C5gyZ5Er)VIVu$gCci2Qi3QVEw{8N+2PD;MX_kL_|hJp7 =8Jt19cXI42a2<2cCKYwfl7_5}X-7kL<-+5PZ^)&J9cc3zZL!xyXT9$#4c3;f0SqfxCc)gw!R|NX^&# &woF{?R#V6ld+>%m4aw|Npg(nBA*rJq*DlwfVC=^-Z%adgO%0|_58 >JTLd9Nt>MMC+PAhvTl7fd-50yi$~Gv#(1AlYimqABBuoM4ndXsyF;?nR e&AbuGBaA_LwzcGjb;s#XukV!{7ZTF0ls#!W0(SEUT0)Zo{B=QG#V6H`zG3QjBqB;(56e%sLXN`y&XT &-TEL+HUdPgS6dpS)rjPd!F}RTNxnBzSX!Wb#fRRK&x?wR53R&a>%ObYDu|>J+eu7;pOseu2y=(0vbJ avRC_se`6Rc- `L~7gv5fjv{?0sI-{K%o$}6ZgPFU(+7(u?IcBF2Dsl7HtGcY=K363oG(u=W?C*g*^*Gp&*>bRnO8MqU Xx+OKK%)Ws4RMkckXl%aM0<29c?Y-^SV1Ll}4S7F(Rzpl3EE}Jv1W|=Qea7W|yC#*f32Z9r(SJA$iR2 FpTkHyLZgm6PJEp0d6wk?(~w e0;lHKf|*vm@RlJYmvtE#G_O}fA)0EJ9+Uhrw0<};kdnTxlZlmqTrI%qA$I%YDUxE&8f@J~KnspDh=D b6mhYh>=_DkjbD7TF3u6%o%g*s^aCmA8}R&rRTDSb5c!^- TX-=~QvEv?4o}VBBBNm@5I@oLEE|m>KaB>}H-B{kVQ@XNnUf!xcMO%P$sO%%@P8xM{hmGDkgYKcS3Ay vx0(49p%uETWWDi;jSxIqPOyF^cT3H=ikBP8hRP?~Eb!Cz+#7n(0t+(&Tkz(&YA9rvN|k%ziQjjn)`C Cnt7$p)ByUE`E+Kcu`}(cSo);eTFfkQaqA2KP`&sxWt2l0h%;J>mj<)!aTRvQ?fNaT$r}_r1ST_xS;f W@-{HQuNLN?8W`YL3-jH;biXxi-1<5*G>0CA2F?MdeRlV&kgAhAhP%MAf)lT=i)~^9jf*`g6cF?wsfu -TIgw4h>ReLk^XBU^eU|m*3KaWF-_scix0J44vbj7Vp>=v8t}I=0)loR}F}wQ`W~P*}ut3}GSXSwEuR fubw60qq7xq`>enPaK4P4zs67LK*m4H&1hwaAVp>*lRs~M!PQ&fXw(?6p7ARy-GE{&pu9Rc4z9qUN(p (q(gA;_2I%An(LyfN;OyAU3b;n0F6310S`T_(q!!r2}!hi>FPT2P7r2Hf?oelzRP5>bbk+7q}wrW!JK C5^_`(<{4T5vicgz^4`LeLU3m7{L$7a`)wKNq|xvs+i(XObamFwB?g#;5g*ralnSk$s6c=L|cM&{oP2 dvv{R&q3ga`-__FV%##H;t{ft#67s#M-bJO7<<-dD8>^FMBzl4%s0NpyE~0W;Q2YcwL5$fm7=M$}aCe q{4!FcL%5wYuJT?%sbClqMopU@j+dRW(WxUiknR%t*WklMNT&4t#FYH->i)nWaY!wWFuH;?O$LF$qbf >03#I8clVVGUDd{kgrMteRy>*`BRVO#)@Y>SADyNLaDA5y`cngKL294VQPO4})h&Kb}I)56_Cd*>!OG JNb)Pi*({z^fP1V^x~=nBK$)aClOWov}m!nHevF+F3PZ-q`ufDCL!ROIiq1pXH4^t0my`1KxR^`!l!$ |C*K|{{}7l%{jlNWynvo3?<0VXc@9{7wmw%85p&)7UF;-hj`^=E6++dPJ^zTCO_c$Ap=+1^(ifbRz|d vE%eQZ$OEwsgB_rBqg7FM0O3Od9^z~pZ)IB7w|ye9-dbKN^2VHoZiRef~4 uBU|)hnr7*N5|2;R&{KEjBe}+>d0}H)(=` adNl84&({+}2+P76A;mm8nAr4wRy&7cqj(yD(Jwinjg(`ZmQ4;{?hQfDFRN|2RBeiQWOPox%5}^lPv% bW)N!y{<66PQW2T2xb%0Aa;l$+;MTDV0R$_P6jw><@qi`3qh#SNh$EfSR&IoPld#tJzR~w1FkSkA7cJ eX<;zu3|A{uJ&05`@W@U0IgK{p<0bYMR@KOyPMc(5b+d~q+OmINnCADg-43Uztb|AY1h}E4*8Yn1st$aFo! m!JwvC48dTiJa+Um@ IiqXftD2F<|tz4|2-v JT*feE+7I8xXmK=y(f^e=%ku~e4K)ndAia{M}65Z!BnDg b*7LMNuJ5s8`F!>L}&dPi&Pc((>hD)p~CtEBnz#+DXB@WRzq8jL@-Go57A(lfEU&;kzc8pxex?VQCF= GptJr&=k>Chh>E~QeC5fyYNAj7tInN!X{?12G;^5P53?rnlfnXy!-pD^yiGM*YNoqR*LzP_D;%+XtPi ;jIX>2y4|7hxH2cRsfP10Flw~;6rkB;$39p*g*YEsRHkC+C;ARU2nl{+=+0YIS7b?Ht(@7aAIP`9_1_ H!0>ES_-A9t36Q_froCqcsO)qtSFowMq)4`jKzUq_sov2bdlT6{H9cZE^Ys_g6nq)>-K#BM0Z<#`Sak {Mzvg@;pYo1=~NLqBEy{51G04$IXGz6%``hvjMlMq4d(H3fF60#Ex1OJ2aJVFg8(Ei+eW5Ly8-^@G0I^_B5GN5QWb1z9gm SV8$K3P`Bcf29(5+d$aS`JiLuprI_UeJjb>r!=6ZfOcW0E={f7JGjR>gy>M^2*VV7CT|kk$Fbr9*oSrb WHaHQNtn{*@bTwR+g|`BB#{}jlml5X9zSEH4I*jo={Lfii$KE40t5edmdwqNStYF@Jo4kxad 5BGLd2djEzD=sK)(F#+&K;5;4P<3_h9Q}n7krUrh ^P(pF1JfS5$KMJ_#AKiccZ9dCYMa5?K#}|5SyJzVanfp#VjX#dc*W`=g{^vAJ|BC @n`^JF(#Xvt%VFJQX0wO2`g4lvP#6PA=rgiR5{G0ZwDBfm!qEZDHr@+@8?VGx-U }V5c;lfF`Ia5wPsuWfy%{#S{RY#GcBgOV8pnrZ<+$+y$~H+e%?~m59*Nqt&6U)m$ZyCpk{u}U-48o}> rAo(nQsCpo@{fAlS3A5(j^3KLubSRUg>bO$*l;sU3lgAYoC=Pub0HB1BP$iko1t?2LwJ~$zPFW?yX_= -!)8=Gx7qn^1vGL6XtWIxTmL;rvBMja;v-ji=Fn|h4(Z@`(~y!OKh)^y8)wF*gjVOKxx&L(jveHJ>k~ Le|LIAj%J&aTzuoS4?gnK-h{n*HQ!8v=umR;8kukTAKCUKm5Hu#!E0sKlg82SAAf6G_@CQqru}i&z`r x?A7>5xJJbF)>!RQ*;5W3K`JmQ>xBG}l0HwF(+vu#;lE#igS#YO{hH s76I!bv`{nt^pkJV$&*<$7dWbY1Ku>&S+v&btd_N^70dtCJKsmw(wJ<)~605mPu!Lqu6H2R^_edu}o_Fj }VeR}gB>#gnaj6-u9sr*sX0~p2J O3!JMd0K>J~d=(M5t0t#puAxQNAMQJz1fB#!I`lCD6P;Na1S7dWsXWa(oUK;#}==hrE+SashN7$}3ZZ ZSR@WrXSxHu$___&PnwZqp`TVSRIb?kJfmwkNr)P9#BQbm>Cl3Fy^NhAi;yC7m1%QDS7iAk8I>^>%wx -obY2a8ZAL^;oNt8x}&jaTEaW&aF+EX5i$>6bO!7?FjjnMsBs?&Oz{QYv`c3(uWN)<)Beg`JP|ogiM& +A#Z`~jUC|3Fu1;j}pZ^AciftE1?SBJ!{yPKx2{?ZqE86H1BWF%)Wyr%Z-KCGpuzN%hbOseke)yXC4N}l>bwpNl(&u^htk2AL*+cu$9!vhLX1Al`bWnD4kH-^>Wa b%#j|wtbS-DVyoFv)Da|TT<9MFim?0i#qRgC1efV%rI$k?Mmk@`gK75j%ZcD7wriQc^!9YKaNo*lY37`%SiHIzNhySmYgQTe8_z}m E~1Oxag3VeX#CJY3@TXy-g>O!Xlk=hAAeYqrZ3ltS |6+Olq6VGtu#0=3nx0_kj2-PuauC$?t^&W#>ljW;59H!yQ-w|M5)E(tdOp398kn2q)Rqxn9^67~^xD9 NBVlXZaEuT65;A+e9W~Z}fZku6s(j_zH#|T>LC^|adtNfWAX99ViHsZuMz6HyW_oqU6RCII!4rI&3j-w0D;X 1kZC_MZW@e^x%a#0C|FJp%U9;!O;)J;4Un!=LZA(fbM%m`bAUD%8O1l3lpr?DT;1h$lnmV9 7=7pGAn`^AR_t9J%@o`^MEK_Uu24>{^Ut=+uLus2TfphBfb_L#wKw=XkkYqTqFg%FRGzEJzRve1Xw%R 5Fvkr4Q$RXQ$8QmpS@{v#O~)8hres=cM-Ju=^1RFzk8z}Dl}ku!FOU{Zr_G2{~ 9b~z8cjN&8^4Hj{PvOv4)*b7hp%(1ZIN|?H1=)!0+b-Z0$IF9fy% lOXSK@`UaPWl5hj@EJE!L}IFWAACUVGzseZoZl`RzGgf%b7Hq@>HIJR^08h^8hcEjZSgPD!c}~*pl(` QT4mV%db+W$CREF4K>ys>Ix4;v!41uCXE%|u6Gfn1)<{~MCafTf4r=a0mu#320_M{9(&2WSwYJ7=uz$ yYr({wU%QJ2Mobwsk#sWG2jZNM!V83Y(n}v%Xz&P7E{x9@uJvG7vpEWw5mXgj3Zw$BZikwp-4g(DPfi=Y8n`m9<+HJ~d+H7D^b9Ff< lIbL+$J7c6hUMCm`mWr~D)*fSnJ3H9t$VB?uP-$Ms&{+!X#yiipcnwCjWBrNZA(no@dmB&KFl|IO14e #0v-S?0Ul@r)NE|Gnyxl>j=(J$G?rT_E ZgnT@}|aV%Me{0REpZ;+6*b#{pXW1x5evIp0w7^Zq~imkPZ+A6xfFGx7!P F3b#OfY0pUms?VdX!0(_ekR;_dsfz}xvNc>2C`o_RMkT&X;79{ms+lW2M+neSy<}jE&=dZBah^`(3Y|HhduK!`xOs i=;B+>^T_%GyswmNX4M8$@$@m*>0JYb^5UlWu8wa!kX>jpdOY*vZpn~>-^UHox^k>Oj;o8ubHd!-H25 Lk^JD!SZ!3D8^*B;6A%x?@H1so^)61RxU-#e!24!q^w4qngKy G4w9OUqcD<{IFTyPFtE9KX+R-UNCvZ!^w_~YQJzi4H~ CFvS-(4aV2WbPnpnN=gr%*Zh$IV4xNZbgL}?R|TB5VHuKDJfe7yh5_Wr+Vs!jeros`XR0L3hlj0hSj^ 9z>N9_86nvA2oELxl|7<*6TyC!_T9@ik{$!NK;U5+@eh8Evs7ivhU7U2-|$iMstxWU1bd11gmHJBk`S Rvo4KiWEd~41>7HD7Cm(%({*=`PD3yuSF3C7?8G~X4~=FN8dabVTuQoHco?pUr={VH-b^mLpm+=-uLMKc@IaeBw_vf5_=8-#v Hp2#6>5=H@h3Dw!9HXgtj$pNb5o#Pm_2_WAiCV+-g}W;5o)JY}yWOy}0cJLT11x_tx?#Bn+)J1J)5dw 8Zjx8@^7qejivO$mLS>iNW_yiiMm-w8UnLj}QH_I#`ffzjO8TPV|to9FfIWnolFJ-53TB7TGIp0$f9h #5chMTJw(#6 dK&bJ|^?5yZ;w|8YeGr`F(T?lJeDbJn#o#PrCkhpOT)ov}WsLU`8tEO)8VdvO%EtpR6OtLS3p)GpYM| o9xLF|CG>uPQCQ!(kEe`?>bLH>TwJdqwGw1#szKRt;HFWpByGM_zyZ*}9{{Cs-N!w4S{1Qc{D1tySa^ -0lOc2Cs@Nk&G2oOSH94B!YMBq<#jARQeC&(cpHr;-uSSt@oh>i7t)E24E-dUoXM6gmS=u`Se5?dB&f ^Wls=th!|cU4ddZyG%XZyzvf<6cC%DfsDIqhEO;^gH^NLz{LHzgb&`ZI=eqP4x$nEzX~;gbv^0JhlbJjkh czW11r`z~P=~d~ afhErXApW7GxkJ0xhrKKg!d*Mw`wr34p)R`GH^Q$V!`GVeI&Qj-@to=k |H3nG6(}I63L`dw`r_!D+>WzGJfjP=cWT#v)W$pJNtVzAhl}V*z1x41=Q!S*w45)yZXAZ(?0YTW%vQv Vi__nGeE5|At|#cffHE2fUX)*V{?^g!-G_ipPj>od*KoA#wvTDnWU#%_ijN@07_^k1k``PdmwU(@g9H vvwS-mHT)ybC@>$s|sCcd?3_z4dR %EyJURYO3$+fry>!CXF}qZy5FMs_*^LIs5;gz#g99Jv^et-rkCE_ip7=8s{&CWeXh;!TEF9m`$Pfs`A Phrc1co3AB_R~UDT2hPPeuI|vvPFP6*jb40VLhTb{yM;1C-j}af6!Z5a(}Y;`8V@5^WH-RXn_*i-b1u 9m?NWg>Ptte&lq;Tc{vG4_Lmb6YE(}{JZElyrqt95(c{UOUMo1Rv3)q0|sx9x>duzODZsM(@tROU6mV ew*V!F=mSXct;Bb|wG~>|nWb+m-fDfRzXZea4Tko2Fl3;h>W$j1x>l!{lT4oKTmN}V+3~*)hJVDKS5y |-K 1mG`uot99q{U{u(tAZ0pXN~cuBbiH69(=3>Usv7XPar52HS>ov+_n)t|wIu_l<~oQKA6#RTiXfOfA`G %?G1Q3{;Rhe^!8Z&jET}#RB93#H-Fjh $4m^nyX#($ph*VZCdpCBDRzSH=MYZ-QOosplVR5g=Q*~yL`sOOo`8vAkj>J6muCQeh^L?wRXsPZ!rUK 8WYmM~WmI<~cf)yb+0Y%ttYT9>b(O)LJUO8iEhNF4@mkQ6ntH~cJp3xL0Zz>K3QH*{rLn+-a%W!El&U _CbP3A*mhY2`F^tEGsQHH-K>u-SfOunwT^kc<+BJ?_}k1oYUXA2I&@x-9Zg&s2qjVKD?p{6S73IElpnp?z_-_sH4IuyZ$vEBGYImWjQ3gd}(%uulOK $G4dEim5Ax7gAwssS>=n| pw`U7MTRr0DE5=(mfS}%6M!W;|TfHN-okb=aWP{k|c0%ho@w@o)FZYq)rOhLnz85T-PRFlLUujW#SSb |>(M{Z*J_Ssc0g7L$7%fo#p+Ipx+N5*n3t)Jb3&-E0zGa&rR-4qkxh1;-?-O5|L!u?R#qu+4hWq9 iznYjS3lGeT{YJI7Dms0cm_XKd2R4sm}d_Jq80Dg6R}?t)&5nU8pyM1g{XC7jR@c-eC*M70OFVZltst 0^OSbPQ(g+BRu@uiN47e8Yctydj3`xMm2G1w5r>;mlNR%%kA4R9#$n0{_^mfl7D_|8y=EFXd$ab$eq#UQ$b1zpJBLEcF)1GpYN`K}HZ>W^I-jCB#I zihss`i8H*n#t2~i@rH*FUOdqx4pmlum3=LXOxeuaFRFcwI_!c!0AZiWnFfuWKBjzjvE}m1#h2fVpuO f#Bb`o>MWl6)4Kv}tLfWfT0772XR6WHZ17WGWtV*r<7t9Dkm@O&@d H2TqX<@hieUDSZbm2PLaN1l06wBFW(rPVF!8yWR_woOiFCtC&?tvp4afMkp-=;=TT8@6r8<4;ciiE3Y6)gXEKDIfsUD9EhPF)S59`&Ic8SQZw-yk %f!`i{jbMo>{r}C6UFPC&r8F!4lY9L+XUux)ti=tnG+iwczGG42BA^DQ F~{QNXdV+c`i@M5^mz*G4k2|Wt6vr0jWr`^79nLS76eW;7^~L~gyug;2mgwkJj?#qvHPD7@(X_divfP ba1_D_5+)H6CqNR%DHun{6&EQO!bpk$2?`-W>eKi=@!oA9&)+)*q#G1t$d+u4lLs`~5SSph{RdW;b%k j7^Y}gWJ{!%pz&spp^-&)?N`d({-ipPmW4a>xN(@%Fm&`UnnL;+T__qS^3b$(y3f_YMtLqA(Tf!PeY# <$_TT&aGZxMRrz0E=X9(^So+x4RN76k92u5}(Tw9Ny;wzRr+PAj?CPAC2f!r5wr@Zyg$DhbTS+eM}mf pHyL%r3AI9&7r@6vg@~*T!jM8fbub1oJV_Y#z dbYY1K>Ji`zBJ7*B|%zSGNfK)jj^zEdqaakAHQGz_0h1)~j1oBwxQ SnPCd|UYI5=7kWjnKA(jQW13u8AvhChW?O*puCg-)%kG6TlY((a6!U2|eUhA~hI>_DZRmLkm@e1~ Mmh`K1O4N}?pRnG 1Ohk(=q}d8=7+id~)TZ$y=WAHvE%FV#u!wu(Qx=4oQmN0naYWUUme%|G~W&L{iCm)F1ydMyz2owe>1c#xwxAG@z8NGdm)hSu shAo%{ZviOiUG15YTiq#)Z@bZ9?+sS+&v$5vSCg0>AY>~#MX}Arh|tYLfub#k7za1gyG5!#5~$EkrCS Gk?+5c6Yq?sy)c|e*x_BEpeOJb=jv0w=c5*eLTXq$EK;QYpF|ln2vzpV@sG{*E6>h~k(56u$`F045xB JSmEi*Y<=bHYdLU`L0!k+yj+v!9k=)|99x88r6?ZlbCW;=!Ux~@0r|4rmMy5*ylyJtQHMrZBCJ0BH$> mt|KZ=4;*$}JMM(o7oBxL|WPAkEPx-Ft_^er=odUm{^vE5G>FC;(qWVXK2+b&(HYF=F+}!dqVzAfBEk `Kx)k#+RSPz3sMu--~;k9GxTudPIvZxtF3OhKEYr&IW%WEI|q~vC5ec1x!|I0tJg^@l?K4(QigFi2bH U?MFpXNTpXhiy>NhnTR2ag8^GCHKB{PTV_doU1y*$lary)A^4JZ<=vS<56z@L)(delj74-FeYuU}IK^~kBieLBv+i+k}j6>&2GeHuwz%HatTeO ysgCLom!dSathq|CdE1vAEN1xrM05LN3+Xoxdqlg43#j~p=8k+HL6aWH#Fs7Vq)P KL?BvTB1va*aB$+}Su9TV=Ee6vGT9;$7FvLZ;CP1D<7{|6+=NJ_ZCwLe*PWx0JY2!^b;ogz4siCHQo) {Z?^&}*fyRf@w8~f9b)MS1);yr`iXH_4k3`EBhNU1ibihXQ #;xC1Ux|VGO;mzhurB}kDgw2A#<`4Y22SwHQ$3LSTY&O<86bmHM+b-W~b($w^JG8xHl)jpCytHd2no` F~i_Nk4v2yg!9SoetM5U+_m+q@X*12f3Yo~;{a68V^_sA^i;}(Jf9#W(@1jy!B6Up>kBzeyeE|I`y+|Yl uTl`~7Ls6@#a3rfyYyPIOU;Tq=DnpM^0o(pwr}L?V_k)7>X|^%&W4iITY-7}RPeg~r6{kZX2|pwR#GM PAf-~uounx`>Uq*F)D+O8t>^Y2CS0CgMyUn`GQ9jexr*(1}SRLDNS^Vsekm`XFqE?w4_;K1h}#i$`G^9egggHBeEw >Xrh=zw(#HL>DSLVC+p?OEL)@#<7Vr)tkAYYQ(?wq0v0TUR^);r{OvIM487~R07%iRzQn)2)wzK z77w{!$$2-Q$9MdXhYJZv9?sTOFs>Dyh4Q>N!Q2G~HnGK)C*yVV7VUEkxh8GHi* }8=)`V9#=1wp#2Ic*IS(6#g&2E&k_f}F$=8}?SxvM22(qEn0P#P$g&+{~nArLp?IvzPgv1E4gzOc2Lb# o(@@;8M`(}KOa+%<5}QqdC^T1i=U&D460E?cqN~rt!%p#2`;8ylfBv8RsuVH4R8Js+BD3759dx={o$9 !l9Os~+re(HuY2bTjTMWPywi!u_{oi)XnNZuW6)FyVB3%++6T%hXG|1MOkXYm|2wI3ebLz1;9RI-PQ9 l*bCCg_V++fy0Vyy8LgFpd1#F;&Q+VAUFN1ALme}21H{Zw@wX>);5MSEue7(fisk?=E&;q9^?7i!Wt1 h9un=g!qnBv?ox1&*@;T+t_)Q3*6@9elRtvgsZSymFW`>2pK_28Nlpqw9_D_P!^eucT$QD$hiZc!K3J b9XR^~NdnUiZO%ggJOd4dHo}7}%c~{u~_HJG%#pK1c8x!FSK;akDGefZ`Nv`7JYxVi{jcAsK8RQGD06 w7&2s{rrsYb=$MBQkX0a12w)U^e6gY`7V8`yZF2%R#?v>!Q)^j5`{Kdd35ZqV!wgP_g-l6}AgF4Cq-CbsY%3oH>`sbz#-yJv19Y&4$nJ}ODG% #n@kWA8Vhx$kel9bMyGULIB4gn3t-)*dJSP)&6m(HiIiiZ~Mz?`|ZQ^-c_s8@F-;!e5G1jZlf=q8pP; P{zMAc4|MAZyh9z(Fe$1Ak9PJItAoV9}&Kb*SLc!I0MJ%f N9gV}yV||WVQGqe;lZU_@-P{-Cd=ge{DO72dkaeI%fua}{kWS)Jj*5Np3^4a&bC>>v2v5E`yIN~v~k% zoA~J?I-xQdTX4J=5Nl*3d3|sp4bhf+d d8a?x>%cGNknXIB(=J3E772yaZlpov`#zTyiQ-^|>fSjpi)xmX_8<(%sKq|^nDySi9sd-T!h(Ro4#wZ 5da{CEoGGy+N|o9I(-Te{;Xfk4jQi1LPNKCivHqfmrif!Uwy8th-osXj`Vqola@{*2tFWdO|Xl&PyoQ&y )(0XtuF<6{{r9_gW8c!jBqQz?`G*PjBi7g(2FPP(f@^!B73beNdmQ5dFj2xXPPhMsk$%eXD#)@&V;@=UEzfko~0#I$tvbWp~ul&s{_;%pZo?>EWrxS;F0^=dbXZD)Gleh( D&#%fBC=IHX4R^QSSf!MfiW8AcXyY%)QB$qgb0QIOi$;X)RSIefO_*2lPFNUedY~dXNxEAPK?K7YBEX aQ83|_sG0iRWYzI!^Ghrm$AQQe|w{kr2F6RG8zB(yT~7}^()$e=HbVQM)}xM|KO9CU793c58{_~;qP+ %6+2!{R*e7G52f?}?|1Woc>lGXe2a?=LJ|Z<6AXb;=%;E}8M(1zHyarm2NT2j1}8WH%H=C+uDSe*lz0 Y;6%6yagd_!u1bDekxNOCYbxDK(W5yJ_RrWW5jTIMxx&{TVw!$Zvt@-Kfat3I^d9qFAY-NWM+4`~wSg Y84c5-YhUlgGH0gQDB0L5VTItRF(F@XEKBI3Fy&_g8vKoT1Rm}P!RUy?!Z^Yw>_hvJ9QNUj;dj}H=IT 5(ZRx*zoywJ7+rcFu#^c^6%d2fod4_gh5_OO(hqm)@@dGI5gdpX1C;(n>!X4{2G|JNL^>sw~Qh8(SLHS><`bUH GZEX@;;pB+g`wPPu90Q{`Uyq#y9=a{xHyV67{HFAqS%RdaCqQYhCq1sYK&& wUhklf4%+{;Z(V;SC1!6T7`x!AOh3*2{;XN*n H7fsYGo!V<;UZ-@cUXQvF^?4FDp3-YXC385$qB!enb_sxJMJL-j2(WO6km2Qq7wV`LICTi95p*G2IVz tz-L+j$NiV&$@-}ck)eyR~%dZ~LCkk{L#Ys{`5ALGkJUOr<2}K;*=J_RB6G47J>5=X6H%y@yxDgT *T?Y7mECt0sH~1+UJc2e9?pe=={(fi5_tjG%&CI8ASqk5N#vz@N`OZy~Gx#7OX7Xu=P)6qw$}v`cl=Og2{EszMRR;5=02t?7eDa(p=9DGO@yiV4t8VA{;oYJHUF(A!z2 oDzW6Myb*UUcqrKdND+c$SXNESL;E&2#!1V$vwP#9p6y{>c?WNT?6#;N(R0dSt< !l`)Vc&cPj1vi9v_6LKv?{!FFot2}$vGj`k&WpZO`~!uV!dMlv1mO2C|6$7S@+dBC1L`X7wmSWPzcW0 C!<_z!<+s;>Xj4Guxr6`lWh0q7I_0Qvv;&uPGl0~zZevY&SA;G$veTNmW?SZ4Y+_sGMji$pb~NaG6ePGX`h}B>Z}USb_=f&99t%KAFEEqvN2}n28Vq1Vy?pZmC47YV4fHTy-+3LJfyl H}0x}Eq&GvN8JGx0sUQ>i`&4Wz={eW~P`}}J%>}*r5V35a}tf1al#LyQSG55#8Z}0DSZV&pq`}>{SgZ }RRe&_a}{GTXsIUR9^?emb|70f6r_x0LCmz=ulujX`%?P)kYpYz$~${35&yX1HdT}vbux~-AC4zZjIb 1&9d@TeR7ynesHj||GvE}{2yU-t0Dd}H%njaAGnYBG53ui;HWH0xAmLM_#El!gO>Sw$NJ*0T;;ENfIx+0l?q^q05XS>cL2=llJ p41%QeDS4ou?@*yGh&x#5LEf#arR6>f(nc@m`E^CrcRoB)0eWASmUqL)qsC6ZUi#YL_aJUvlpH-vx8$W|i1`*FhOqYD0c_Z|7-d+~*H9GD`LmhNS5?XxH93r ?+c_p33CNFx5I4gKe9p-*0%egSPsl10w1JpPtmPcL`<C$-;abtP!7fG d!{Ig!Jvnl4cW5mcx~BNpZTF^ow~iHFPzX5S0;yeUbt#@<7P!Houft^Xg#%x9|IB|8!NN9M({?D8{EC mIn=Xtd1t~u~05ho@i`zxkk`Xnp}HizbHJ#y +;q&~Lb``PI9E4!qz6dcl}d6oD%=qV)0*WFIRi8;T?2c%jy>fH&HPg3k4A~oHn(|pt#^Kc9AxG0vs-d 3IP`;$IjrcgIIE$6!*!f${2K*#_1mxup=!T+TNK5+OaulSB0%-|%A;MfYiBukSlfl(O3vY%Ir*Q^*A9 &A{=A{Rmet{S<~!LW_li*BhYUTlTm&$Hq+k7m=&z5oT#y(X||22gQbo7gDD847Y>Y-^W;Mn1X0JGCa- KWo^ho4&)QF`aH>tQZZ_a?qql!48>?l(#OoUI|RTB7k@(5JA(r<(&fk;<)w%*dhc^|?I!sV-OvTO qcBEI>h_1!Pm-+j$bFO#)M#E0DT*9q9|81%=%GjDw(E^SKh{OjQA`-_^_H!x@VyuY3t0Ok?&m7HsQcM In)zx+B@^TY4Hhdk)-)hDMmzwspBRgL^Qa21_MbJG;C8(~rwKN{6!Ag|KJH*FZ5>y^4SKK-3sRhP65@ 1s?P`IOq|1u0&rX;}N}j93Om9Z>oh)-_K)mob1UwXg(7){*P2G2d*lyPbNRxO8pMl>8&x&DnU3U39?* QKS5$Q@sxgjXq7J@~ZiAy+X$RbaUX;oQ1|CPndCxGJH_o5LbiBd6Kg^Q`wFc=ocKaoU?+)t`Q813~uK >&WI(4T$iYvQCKrQ^)_C1?wXEPR8*Qz*Y^|U+&aRk%2T7v;hiTtyQd~~%n)*sZ%YEuMT8DRb6A6D{DJ vNF|g(2?O#{Sq{VotBIOd_-F=ciui^!lvG?^VS9KF5_i}|A6ic7uSGUO)|;W6`QX@&!V!ujSOjNSj6g}2Byk`+!~z$e6>L6r@JT3uAfU6i(W=&bjNC>=fPg;^B$ZhNG!R$lq3D0ppEJV%z j-qT2g*NN&34VVh|QP)IGk_V2WzgjW@*5UlHAB`#COs7xYYaFr=Q*Ax_jN#L8g0$XRwp N&_5Bw>s_yi`e!Jve}WZfS0BqwaL)jGYxISqI8m?zJHqm!?E&sv {8)Z)9h##3@a=1vL#cLnTFw>82a?tX!CR^(>=Q~WXgiA|7r z|4UNwn@ngdIkFWf3Vc;e3PwXvq1Ro6XO^r7q?d5B9hsI1xy+D7rdAF0~mo@B)ws4hwlkE+rjovI?>~ b<#vb#Hac2it#W9Zz~PS-g@XcGr|=hd}!)RXT>kNu-JvIlm)dWWP+43$+MPrWPj*uZ0InrHWLThc3@7 G2F#ZnHkHDHSrWNAHNe!`(9H*(fmP3l<(MV&_kbLg4~QOsZiEhfhaYNm0xuBwUH)SXb5%Kp5l$^h_M% YVAj73FJ1EZ)JB7_JSxM)0^i}Ty@c%`XarSpqphc@)N`juWl-!frl)w(G{Uth?wahrVi}tX5@ChF};Y )ANS+gyj7InzCrhlw=&owR{7|U<4$_A(VyKd-`R+y=iuRDaTdnPvCYKTZ-dO^h3V2 hID8z*ZGrX`t3V+Yo=YlfFN+7cs7m?Gy(u@!Y?9Q5oDZOYNg+leEB&iMV?en#U;lbQDLcdtJ+gdxne&)y;W_4 Beez@9l)-H|Z&+%>H<4b|{_MnSeeqRS~L@7d$K9d0JBsibD>e$P84TYdqx2ce_Y;=7PNT_d4a zmrKd9AmSso-xN8u2}XMjCH$4B=fy!TlS7EJ@TOM)ZmZnS }X<(I9Q**h^X!Jihb6qaH-zz!t-BeBQBP6k+G8^RVO7HH3@A`N{g(E0p0XAop ~87c)YfkQ@n<}fxGTtjW^eeLzckDn{4EDg}5-U!5~<2=zqJ{4gJNPl1H+WOZ7|>(GOkSlcw?}2Q*S-kZx)uF{00pk%t<-%a;Sq_(rPHH$b)u@gOZj5j^ ;c+!VbdrwE*d8RM&H8A%&fH~K&sJMKe{AKDP-F_nSA%2R-hBCW7_lg>oTvJ~PrJw4VYp&UdBbi&LnmW F&$d#;@i`xi=M+;+xwi9HEhj>_y$iqVDooMv*&L*1jX?y;XbY{JC`FBk&RC8(GCNtvH)jZx{ct01^r8 MtC07dhwsNFr81f|(^^_@=x**Y{jt=_x3P{?9gidRjNwMCT~N1mp0_`C@H8!J4yxF{FMtew>6$ZLUIh m&5q-e{BEL3fW-a*U^h^%eZ+9PNn`4-=m&_m{IzXU@ErdrZJaJ%z$^yau-S$MYNq8kLp4jiBDGnI+|X xdo~qtbdQnQF7;qM`7od$RpvQJNgxB)#F$)FywZY+)DfCe11Dz(4TG|s{~!?9*UUP8byWI1GU`*Lw@R Aq?xhZW6_<$D^dUQ=(!!#B^DE?=K5&$E7Y0@ouMQCMm4_O-8zO6GBF9R=U3S_>N!p`3%f};vqw+y;GA Zq9U*r<@^)-j(Q%FYy2J5#8BWn2e&W4&G;@hSBjO>DHM_qqDJ&%GhvFZMEi3)M#3aw>A1VFCHzUViMZ uMRdnJhD{%>HZ@na5MYq+$WphBL)fw1qHg@Oujihrl1b627Dk+OMzns@_Ao?p g|iUNkP(&eW}?qKt*ef9zg&}03zBNIg9`I(HF0%ClIAHrw_x8T3x|GI>z3m_<^ qv{o$GCaK6T@YirMBUCuEg;P!e0LpjcQcZ-Kd6?i_f2h`R03$uIC=IW3X-I+6-jD9zoNc$*mS#Cn RqPaoiiQZxsTPFM($6?0%55nd)eok$%<+Gr1!b@ULImCU{yr#I30cNv3AUhC&WI=LSg{@jWWE4a@Y;o (|9Yx#pJqb-}N0j+-!0;kTyGxM0n@|{G>}Pc?k~jVG0JQ(wyO1X^)2|BA70!ylQjwL2G;CTGBc-B)oB om}D=Vd;Mmj66_u$n^96yG|qHz?jcMG7E>icc*X3F!C@Y&4%lqCj(}3xjT&tbCy9NK_XWGI{UqxKtE_vdSaBCET;?W?93KSj|0gUkM*c=@|a{t`}sG8PLO+8MRYuN9k>BD;~oG f?uUC?J%DkihkVr9K~G-&olQ1?uUbF^~cpIp}ROpk9+~yzmw6%B>H-UM=7Bn2~aY+@IB5GSG|9Qh=x> 3m9&oUyp*)3%gP4R`|xyf0HQKbB1qzTbof9FsmxSZYXAJvv1DN3=U8ibotY*UGU3^JP`+QI>x_*)ARo +IMoC0{0E$>vW*-M`Zb9oV3rY{V!KbT?3iNt?R2ol%`s{w0NHH%XaX3~pXWd);nR7z--cJ{M|}MgUYX y5SLjE4{R_PM;iP>K*5B_SSLAu!Wt%E4m{L3gtAf7e>FN2R-J%yp(%O=1uiK0Zd EM@4EbfCbt*>O`FIg?WqI~}t4os}yJl=1@Q^cAz3aQQsCT0KW!*!IknV^)_A&a^}Z7MZiq1rde@v-+W 1Bw{qyvK|H>}xiJVt24?_-Qtod|EdEA85N g1tM{ya~sOrzQ|hwnVcq$ZdYT3dH7~wEG}yAa?Q61neleY^X^BBcRdAO|FqBX)MAh5)DYnVfz(qP>JL }r<<7lwghM`PX4*~VWiJW8!*>6x4dss&0Clpgde>nA55HBk?=hqAGiu<`u>)`meU7)B7ngk-O!lkQFZ 8wE33bqgc@>9;r_^6Cv^lt)&>QCv8r6_s0`J}xe%bWLYgimdBs)IRTUhxwji=4VIN{@)xMt6@9*TNHi e1>h*@{9%^NB;mIfu2O=lY4H!`EYYE-wkeTQ3+fmsK)V$tuR{dYe1oa_r;}vJWSj>@RO#toVIdK}-jS _iBLM8o}vP(4ORruc;Y==4Wh;dSC;(nXubVk@0f+qrn;OEAj} zm){60vub{cN29IxIcIQ!$-MEGDa4*EEDx?KbG8&s6uMfs7dSU}pHSLlg~o~rO!E|=);4|J $KojUH2{{q~8aK8ViaQFY*`hNxB-(CBcNQ}~(r4#|$)AZ(5u)^4yNCMbo0q=ZG4~vcDT>=A!&&9VekV -NoNQeO|EeGuL0@>)_8!Mek0KXk{&Y3OaWI(Tk0%|WmL1K~uYpnqRvRN;zDJ?^Tyfq>Io#FtG$xYO{* rw&zufX8>OVb4b7ejFnSgc5lu>kOakMlOCg%_K6_OFqc2Ceo-@k=DWeqwF#{~i)M3rBt+@tTc%hs58I uKzhILw}d`{(;J;>Zhm-{ax1kJE#nO3(KFQ@(5;yzo7D>e~-#oG(-6ncvxEhI3xZ&wtyX4&gkBEA>FV kaca?>)5y+SU0`z|nM%Tt8{~}Dz6=&T!H>j|yZE Y0`S}%tnD;FnnkSa?!LY#Nm3ZGN^>lnD=f|9-g*9QKIV*7 R#y>Ee~h^aJn)SkA#t8-A+@@5`uVX#X3EW8U46G)K%sOs|zE0r~-MI=olSV1B#Gxz71{e@7SSK0VXieLuXka9U%IZ91+HjfuR8K2zF0Kg0OTb!B`Jir cXd7v`L4G_LORDJ^FHl0%Io?#u9)!*5z8G8)#{m$K{8D7aq)63IO8Oe1iL(uSYV_gHT1xxq|-z$EQ-n GZq-A$JTn4m?Snm*hCdB^)=n<-DgI9vcq~txmL7%w~7PjQYj(k4_AcYlN$bwqJO^6>Mnq8|ohktUa&) +RPV<{9ktQnEK)J#g`%Mnx%O3-{IuO5dciJuP6S7ip~G%Rlb#Z`}7Lm$=c8?O?=9N%SpfzSd(O+j<$( Hf60&u3ZN{*{+lL2$#@00Bmpe$PiMpEZCncjUoiyaq3fw&NQ?!%24s_pOTKs`CE#H4B}1nE&HgM&1_T KP>|q7yHP0?dP%9=_ki!G-XBH^pteG<~d_VvNE~UU!7`2hlSAbsen%S(L@{M8v=zN>iQ})FTy7;v*5` gBr^8w8wF9n~f&|B({x-Yy1S?dE{`=h?vM(GMqr-S#>WUoD9^)toZuM^e+&1(c_m=HlSpzeI�FILjv{rF;4;k9ez0S3t M^?evNqo_}&w4k5KR}=7q?Qw&eUZO5*C7MjKL&PM<)3=9?qA-h&j}aYID2#T)O*F2@V}YgBPC?F`(8A |K5*4)~ws~^($af{5261}(=bAyP!1w2KugMI}Q>Fz4hkeRWO0M@5z}z4b&Gjp^@$<9+_-cvZT+oEl#csYpP1ueH ^v<;J&<&;pi8LZfpE|-V*SEk(b^G2(V~|f8uJcWg*_d%q=Y;v-yUDPgBdv4uv6Iz$zCzyu2+G$Y(L_) ^pH`ce9EGCsIOg;6RI_zjZi<3H#9IK?c{n%NBZv9Za<<;uJ~mP5c(L?;)6B1UD5RiNoy@1ag&Fc3p*Z cI(@n?$B=B~gtA}J7y66t=g-WMjHDlY)8PW_+QV#vNKM|LA!q9457ILVrH3b+&wg 15gnmXGx)8;jbfd8u2O)8z`INa+?qM>-5o6d9!ydi*s9bA9>s H+%=d>3~bjNFPWgwmP)N|U~Uj4?Gw|`O1>&43a%urp?-ZP8hCoSco$YY@n?=J0iGC7|fcs;yyK4$JmD C+Gcb9_a4Xm2;|U#|uU;_mbcp0!iC1RPIR)APpe)K;E9j^f*N??!{g@{S`T^Q}P$e(bta|KRVbPK%v? XP@P@8awVB-o`a1BH^y@55BnN_mlAz2t+{+p$M`0Kd9TkDfSHLe3qEawrDNT7hWIt745>WV$Yv%_p{wX|75$L?H2mkc7Ie` {h8S63T(nub_Q|doRGY)53r!|{95K}Dre%@4GTK-Bpcto*aP=O)28+hh<(uZJ9+QAg)FTPbpuf?>+RM jwGON%A2cJK;8u_LeSJ)JFS2?{N>;pTNv^BdeaoF&s+BuxeD>I>DrDdXv($IbN3P`BlAmwvTj(2X&37 N}ba)c``lUyeZNhfhJuR5eAWxZDHHCWqK2J*ezzcd&f=3TgNmdd89fq|>tv 0MN7Av}Kjr}Ao6DbWz#`^eFEPa!VqhuZ3h4> -D`mDMWzFdhsi8*e%$OGDCH<0&!=U5c*`O2(Ud%x r3BJL`vMM`&75+pQbF5wUQH+k)G$B7{px+XIZsw$NwYe5{eCTIR#Myquupnlhby^MEXiLLR9(WZwERO cUIVjzx+zoonI6W7Ofd8Ai_k@+HBszT{K?^5-?Fx{m)6od5j4%|P5Tv(1tZV35#Xug~rSSOC@lb+hke um0O>edh!C(-;1-083>XO*{v+%@q{ZlnQvqVjxM&DS#j=sG%4jrRQs&^*IHdEH_(&3}E02G9c^1!ICr sctBaPIS_2To(u;vBRBy7C!^Pl?PpmYy78JaaAvx#xaMnMxR?YjPiCXGqY0RG0;aoLACy8i1=0(%g1#E?ZM8ucV;|`udVT{A8>*~H+c#azaCQO?wM1@lq8Yd;>G4nLR{_$~Kc*;kcq8TbyYx #$dSKDe??f}AQ{vo;rDo@)jgdfyETkAeEtoEIc#K(I88QFKje&(KHqwv|5t0RCnJ@=JA-iy$X5-r?X- @8~MLWz-+eH}Q1j%{OesFMGsVHo2a(xj($bvrsQMPG+o6(b%Dw>PM&y(2};h{I=We0s^xQj-JZnTUvq lvY>~`I*`q&Gsxs|N6kaxo;Y{P)7b4h;RU;dbc-w~;tsg|^yCU3!&9DSqJ(>RM_BjeCCMp40i%`_Ki$ H6OFgsmklb#0_~0JGbwuUr;zG5}-`A{9;lx}eRq_xlJCni+qA>>f)!Nbeh?C0nI@R7qDFiw_dIMFLk# R}XPJYA=)StVuHS0;8E4YE*+~Mkod(FBlw{}=q@|2ukO!`g_DvTPE^Kh#ANDV?}g|PBKeSdAcbD&nyyZ_d<7z4)lGzA3d&!{1W&d}8_ZPhTQ5gQ4@}}k7ZD}xDdCZES94k|} nB~doGrDa@!My7SY%u&=TogT{zVn+5Wxf6u&x5}xyY68~=O=u;bj)~w`}w+zrjIeR4XY}{%^jc0$g;v eb_$+)`mV8Jf5@QzQk6=ub1u8rdsmmwC8W4HI 9-FrnP~*h9zuAy>PDrvuU4d=3l*6;v+?cvDa60&?ZjRybOl?bLa8l#k|o+yh@_{Z1l^am-^DkS$#KhL yzFUorrPSBWas)OLvOy@hx6_DL#I@!2i$Ne{%l`BkP|QLt+R^(Ldy3|Gkwy@ayka`4+z@j7EWS28|Ke `V}D&=2Jvtx7pfFC=uCGsWtamfv5bE`)u98Gy{3fn!Y8UlY7byr&bgLeLo7c7qQJuf=M=v!?#jmv6V4 X06r_0fnlj^O_hFzXe3|*tsu3o0#v9dQ1PTTAfyV=A6$V6LBXO(`tO7RZA5C*v|6{l?smOEl59C)3GQ xP4M1!O7`CA2_)A2Sx4I?uM|P$~Q}4BiDG|){>Ev$m4ao=E@FH4c#xrMqXgKj9dP^1g3B;_w(X!@`IA |%h3z)>n1d=x!W`eB6LY)z!XpW1VO3eTi18aY9FU30bshgwRWmC%wqchWhLKIXIN 9&S%aZU$d-7b@TPj_{E}%iw)n**YdrBFFV^%tKae|}=Ip6L%VQ)pk@q@#&;5CybLjClq|opVw3t$@#( S;*swva!V_7A+s!qYsFIS(x?M?^{2h@diJHFeseOBz11J=K*^<6u<5Q)0GyLiKNX~%2X;Ve!jaUnfbG haKDql3ik^0#`Is;3=9YL{c=;xko|nnS|upO_4#1=C8UaZoOL%_8>$r9IygS5l{=GOvKWXO{(5_AiBr ?q*zQ!k|8VL?XffZDqE47my+ECQ4-Gh1tEX7);l;jmNj>HR!(7Jt=0A?tA~XCp8jC$gyew8JGv>!$Ic|iw1dhuGz*!Svt_ Q2_naT9(!nx^YoRy{YZ{O1{9JQEi9E{`CCoyIcTe%ThtE-u;Zkv-q4VB&PZ5^ixQAu1*IC)eXovg}Tb !*m82&D{kj-Nw4qAuTS9(pep<=10*18DXIdy+Jd_8?NBjKw_?zu30G@3IuWuc@Gs3~pQQH5}JHNk#xp DUJp-ez6nOwNP~+)yV)xccF&#m+Hr_E~t6nkyz(hInBDJ7-We4<7tk)vAEJqd7t=XY+Xx5f5o-1UirQ *=+3Vs1&=DPC035tNUF;^plN-531`D#Hoqa&*Jqx<}djg!X-u=?^tn{V5PV~ai7)Mk+l^p8PSYT+8N)Uljj37S@mibnOeE3RHx W5UmWw+(NVZNv}K8|!F8Z17v#d8q1)67f)_BH(FxTW*O(*EVV+F;&W++mF`(v(*V`JIGJesnSkRUTS* GKifD?h3=L2*=h&9&^D7cx=n0ic}5;i;1F5T6rc2qA{;^Lu=&F4nM-_Gj`LvaMkYyVVblD8N`9TVQ1}GNy8Yw5jCxs wkV$uCTkgvw>VSZJ*uav?)O}%6YaC$H2i$J!b{O2=_7 DPp3qb(~B?Wd)`rS@=hv>Uc+u(4A^s9PY()s?ha!X%EK&|x{P4?^QeMm3XIeTj&SA0yN%ZQE^2YwR-g+7!)t#4wOuMrsFX3aL3c?af*D2Tw^ACF B?aQ;373oguC4Zg@d0USc`@OffneiLW?N!xsV^)3FvZaU-daPQTu~h1+=`m=C 8E{=u2@y`%+w}KyhJx6YWwxyh@&DJ$#2)HMTl^}CkChF0CuI2+W2> q$JOP `>rY5gROkm$2%v)%dlnS$Rf3!BCsfg8kpi|&uBnh1(=yh1e(G->8eB>r<->^J6v5)=6hZD%BN|0jNkI d#OCMO!q7~8LsrYVK?fuCZ9mqwVm6TM)g6Di!Du|AL2508q7H|YzFj$HM&GEp7s!N*3{NP{lIrmzf8o#f TD`!dg?F{*Lwh)Amc3qISd~3tuS0lWLBM!$F2x`0$R-$hPaH!{Jz41?B_Ecqi vxY<;viGKc44{x+NG9`+Q=_u)6xYOE`l@A&4@o2Y kN7U=oPt%;?GoqD7sgibHv`D&H)~%}Vta5+j5 6EesQ)`nFfk;|Es-v2xY(S^6$8w>-4A*&x=o}|`6{W;ComkE(nf7GDyD?j>K~N9v%CX7vmK_&VdC|T! kX$AbjGx@$7hRLoQ0YcfXG8v?#z?zdOo@RXgV6>3++R*54H?;qJ_r~&V+r=4>QrhK`Qf&^V^>e`y}cj JV=i_V3(khSuJQ9kW-!wggF9=+d-ud3QS${;;|KTHYm@VA6Lxo!#;1Ws)cTgHm0netZyhLymr!_)MYG hY7dx=$7uC*4I6^ApYavDA;^Ug+W9*nbc78q%qjjgb`+dQY!}=j(U6r_;ajmDOo6g>so|?z2i1f4RLf Y;b#@+3PyF1vGi!ni47fYNI5!1V~E0g+cMflCgi}kIJpSkIae4;o1yOVv5lnMqoRWr<1Kq@xwJPjHnMfSNmT>?~GfphdW>-ME4g;0P!0Gy@~zy` >+1sD`azNXt?Hn`MJ9awX)+!|V?o7NDWfSMM*Sy1C!TLzfLZj8J&_5$N|*hZWuz_sx;>dOFGe*G~iHg nb#xL*U_;1)^|zjR>z|4Xnm|4p!Tu24t*Az1oy?0-C1vi^&~l5t3cTNsCq6EQ87=jS!6?(Qk$@z|3Sl 1HRri|?tU&K#kWIVbFEh>E;%kC&-2S%TQ-X?1rlnQ1==X-%dQS&Fi;T&y*3>}A9}IQ)U1`-#nP39|95 54^@B2RI5}=-WJSJCaGI=DD8??uF#Hrf!Hl8qa+Io7qlZ3P*c7eJ~HNqdBtBW9dY(lGSU3_yPM6cWqJ AI >|JcChuFLgoM&^_oFiLr=lzaG$B9n=v7+f-tOgqr*^93<3K^Z`mq5y-;?56OtIW*NDWsy0iPX?lZIP0EzF|VIzH2j$?UxTZXy|%V7@aVErzp|@t=G$HmF+nRja<8gCv1zyKdh0#MjV`m;0A)I*2mYgaG<`1XWo;%#uCpiP!lAiMOG>5u+-Iww6=Ec<>GFb7A)yw*vJR5$jKW3XhA0KEXqRstGDGZ-P*M4Nud@!VwDO*lta+W zvXK55hGr|9Pup|}4Qo?Pzqlxi3y`Z3?Nj(*uz48+OX|Tiz+!=C%P`X$;cf5)(;v8A%vKxuB?>-IrmB 0E}zI&QIFSmKo*|9R2;eFrf&Nx=3a3JAyu^Qt(koR;a>ykCSQ9_`f% =y??DH`41xUw4nb2L(wK7tzaoC8;6m<);IVH=R>oTQ5=PR+NQOsNEgfsAB>-q>rny&^=B|XT3$^n;DRijYZ0rA)1O5knh{elo2Pkb339=gDo$t4r0DMJ&z*ECK-U-S Ds?`Z!l*?xb_sGWuxeu`p`v&3{!z2MXn%CELjT=@1vl!V#~R{e|>v}YVxw#K7V#YgYn>@POG1Z@>51I qN5D;GDSZ)gi;T_os|YM#wYJLnwYdXl*4(YQBPk~w1=^**L^W}2T0#!Y|tm`RkbHzl({VRxWtcXNQm9!?u?ATtRTJt4BPnvBD+fa&<)t&cU 6!&6LIE%(yP)m7Gf>ECN_%S@_=dn9H>lKucEKKVDjs#~!d)y%cuIMNGwoxpY!<4?>?~jBE)F(f@m)F~ Fgd40rPuV{pa{dSK-Svy?UteT*zl1GcV;E=s^#_|p>K8hK=-7Hf7 4$aZt|~PLKFoe{%c&8|I9z9%r`Ti1Q1KnEkYzppclM`S8L>0lt43Jy#SE^r+`8vvI+O(EGU|h1<*gB3 !oyfUU-e;N*qu{0Us0t-Oluvv6wh*GZN3gVS;|u<@q7#@uct#84Gv&hgeb9_dB--{oVcj&h0^ecYl9(dmmI&=vQ1*&K21Fw4aWR{?ZM)D!ODWQ~adcG4X &G8)780qVPtGS}MJ^ZXUR^!9Mo;Z14Gxya{;6R_adX{pK|p%{$`QlQ!)*(sA(lAWksknRBp@l_3}r`} N`~9jzQsWhA99T9iD7_DyvC^^upCW0K&`duLHM!C&T(J&3a86Ht9WV9h*|*xgzpyQ8vtz_mKe8eJYrE Nv(3&W%E_;KWI8_QU=gv3UN5J4-1ky&PpY>y1&&U%Xb)Zd;9jTq#mR8c90>I_3PvP9?(MsQ#@TWq6f#-n_52N7wGQ -n4f9%|4B9VQHXvV?9ZiJSoc;%f$SUy3h;>$jHed(@S%wckCSxOk|$JCJvHsI15KaBFtUx H_LQ`vEt*=O;1h86tc6MTws1fr_zi{3jZImN}Tri>6(;|rl$xxUAq`TeT95mH3Aohwp;KOa3yq3b=Os @}w*Xn6=A7Ik-3u!a)xJsEe5yD!oqWmQePl;&bFymc~9ieoje>QX3YG8v!VAj%$9hPLz6t}RrsMYBI8 %Cgt4wt(I*H!M*e+(fjf!<&5B%=|8AB(^=8o_Fi%z1k2drMhD5Hw91Jpy0L_Z?YT4|3uAB{Exs3{or5 Up&qc7`EaFKU$7w>K)N50^PiskfrWp6-uGM_oI*aeumLR1tz|;7n_DRj#s}DKU=SxkF9%c|wpjz9S^N `7WI#b9Nr5^tPJxaIj&F*0+u1;VI0b-&u>j%9ZSbEg!NA{7-R=n%sP7~M7_nIQQz8J6DQs&KZKHxDvG GO8jgv!x5=cP+6#}*ZrxalB0uW-8t*8NJ8d-pfBn|kn8Tv~L8w)_<`wvJIh2wtt)VfAOz8@RBcrx^ZM Ve$r-n=n1zrw=z_ATp^Ue==!{Zk$WO1F9jw`@xLqW0Ck<->6XFlvB#n}yn69cO+#27R`zf3hp+vu%C8 tIv6&(C0)^XZA;y@^&nGo%fW}z;P(Wx*ZHk!oGIc#P@fH6D4o`sD@lq2H~x5#drx>B|K7D72V+?JehrIV%b`;yTMc?^~^R9?3ys0-3Rsw_*?hS8*0O8^5FDT8*%9XjQYM*`1jkq^rW=;uVhNjTyt@qJeYqt {FOfJ{8tV@l`k*_eqavZ2W?JEmQY34pq7#K|P=57_u@YFu_t>sdTt+E|XM-A%DH1nFWiEic^7yq g{@)w)J?HX===J<0%9Q){9(4oQFHHs&Jg?+#Qr;z6&4-!DS10 2TkXE49^MlXz~;;iUxD^?qYh(Kw+Oli1o*UO(QWEuI)b8;a*lw!vZvG|m-4jTtR)&g&Q!RWgg-4$=@q ze&9B=^!?Sl)YRa7YWWXu?LgryHCu8Hku>qJ4YM>{xXx+kbqarR8i4h(7B$!! +zk(3~8MMH-h^3WTzf!<^&$R3SWTm2m^@W}z6%h!x%-LT?V5hR3no@ZuYYgP1 HLmG#ghwftc2iZl$t!AiR_(cu5H1Xw#VsAC(EtEox+E5eZeBGDzZH*NnHRzlx~sQXS^5cY>=Qj`8WDIzL iE$d0K&(E@YfBqdmul8;vob#!d( CnBSd8UcQU=>5ojY=?W!hgt%ES}*p@c)!eH=#CucJxC$wkp}O%?ypCUH +%ZSa>|2$&fO1k+L8>PqJh}eeh{U&NZW|j4SirSAEI5z%jXn%KP!0(3k`;q+<0h?>RKU1 9|U5KDu+LCiO!ZizhCEWQ}goN!pax1AxwM@9F1hA0){1{H36XXUeB3B6Upq}iNtA9(AQ!Y4}>u;FkKM }!Jb7U6hHhHgS+nWB}a?+zV}(pVflKnoQ@5i&=7&;(T(t_+|huvgnO_^m@kp%ZgnyPWPhjBU`k1QQPS 4=-z`KDi_8^u%(i6z>k%yHoC7hMO6ZfSBng@y2>AIhYxIC5dLRD*w{jxcv5X*E>BB?s{&=E?-D>R;EuFASo8kKFbixy?Oti;X03`#&bHss8Zz1?~ ko`9ih&jtYjz6_a1z!k<2dFB_CW^{)NvMyr(a%Np7dh>vwOAVQRVBmD{CI>;T5*H4tTz0YHXr7@W!Dd Pftt%4k3|8qO{`X1QVR!rBixD{D{_jzJj}4m&t3~4BfCI~ _q-%Evq6t=U|E05yAx9hFFw!*g1E}lN;lWX4pmAYQSbQ^fo=;I#aq&Y7*O}Op%l5CtlF-lNYbjDsc(# mmtI&*_HQL5v<61B5G)?b)1NRzP?}r7305SMnaTqfa};8COI^5fX>}Oko4-oWLEqDH&mK;Qpi!(2UB= {T5TsZc5U5Zsb!Wgcd$ou<0G2ipKuKmX?mC=1w(vRhejQ_4y#&xjs@;pAmiJ2xiKX@q-(_55l@@a_Q+ SMw_-_}u+4D3tJTrRR8Ly#?X$ckD5KDe5_H-*>*U_G4YDMW)eAi33$h`UYWpMYf$rgQ)eF>(tV}?r{_ik0gCR!5&`&>_}$O&zk=c_=%$)O#H6GoWMu+js}NM?VgAq%lqI FpHu7;{h^PN0eFP_gNI2Snh1xZ-WT5>{7C)}cleKm-i|)V;HYlz(LN;)#?Ch~(|=g)4~}313IB40z25 fOcbto!FMl1RrSFjt_#(%n%0G$1U7{Bc?o+{@F8DtR#@+VUxP5!;uS_o2%D6}O=gfaocwZP+H<@oce5 t7N(pPRKw;uLE_k*KpJ+?1WcKV)!{CVU2_^D9*0Q*17^*yiaF_|Hw EIo_hdY8a_x1I!dIOJAI>N%=^%uGn4XM+YIN)6q8h9hyZowIu qnavQy3S4k$Z_~Xpr%ae_epZ{RkL#gRRlE03~{FjmVOR3;(h9y9;6H0vyGZ8h11)mT4j5JtQ2S-Selm IhO$M^G+!>M&?6GC!0W4vm8B)N221!CH0-G>VK9F5)VmDjJu;w!*KXkaBm8*fM=>{PaCV* ~bAl^(Qm}DF;aD(pR{er~z72+Q!2sZ_$=bTq5tdWHe%RPI^k#QqZ$0irD&eJ`iU)@vwM4xiyDG3KBv~ hdg@QCppjP!Dt%hmIH-n07FeA^kRTAaRYqCT!h%Nlyw-2q*|?JhkF)eRae)V!z8DJdFSH63U}>(LZ@Z JSfAlQVmQjY(4xk6UFUz?h_7DF_BciuU6%>zPnBdU=&8p&o2I=vPH7Oeh-;?TeIRKI{4;6Hi74} Ohy#N|OHN(N=`VS8duyC?Jd2>u(={ptz7&qx<@D9a^_Izt13n-ITj`d +`b|Ty(Rjp<$oukXm+cShpru6jOw#XeYO$q0PI8p1tm2QD|NWe5%zlC6+PKv#9poDIheh)eZ##TejUB BLCL!2bl}YuS((81ViOlvp6-qPi!akxuZ|zZ1mvEyi-ccw$Bi#rZ^wjiMtU#8p?VZo>>Ycu1Rd1{38Jxs37$nnyjn?>-Uv#Na%THQg#_jL)` (x)F~<(S;3iy!k_{yepuEdTc$BXnP-s;qx=Sk{YznI!5O9RS?#_C@+pQiF`c(^d5I!7Amp8o=_=S!3s 9TWz@)xl;M*{3?Bjltd!qHjC!^lQ%ENJjovLnhq(#8V=Us>e(_Sw*ge)L54iW-nTW;N1kJ#X?Jvsdy) Orr*Cs83!FX0TwQ~v^?gWu+2MAcEMSCXJH=Qy|4-entW`B-@Mo-S~$IT>R x~NY2V}Bl6bx4;rLbVrHG)~A_MD9JXDfbF@$XnSC)m&ZpA-HFcMOJJt&Ph}lInK|ghn|m$M8yhqy0R` V($W33fyFwK3m~Iw&vnS8UrO@kBx#?knqOGlW2sxQc-q9tA9|4-{4=tJ%m5j0tuphpZPiHr`wZgC#Wr ZkhYpJG{`gpC*KX4B@Mnhbf86ss1Nhrse=1jyFo}UXEE#3`Hvf34&X9!TP7fJ}};{*EmULqhZreh 8qW=kQqehK~{f3I759Mn4!i4kd!4eGD2^GQ`mxiT$2Af+t7u1 cDDWri0t^fjD7uU@M3^x*~U|wd0_`xxBu$GT@%ERgRui%jgZkG!a ey?3fZhuGGr+RMh^si*nX1)BErV&8T^HqPStX*9h({7fZG>vodtwxA>@6YzlkW+H>ExDV(%$C9MPBT@fGro>KUx{-}Z-%jjQcZ0<78;)5H$jI!iZh5p{Y$sO AO`{#vsTloi$ikA?02jkg$yxnd+xqjP%F2(xQglK!N{~{JLH8$;H+_dyHpy^;+G4C#|YVgxYW=i>LJU |=@4K@Oj<1*OQn6k&1z`f`Qglo<^SId}kOw^cj8V_owAS4K%uP5~lvyE&Tp3?vVTr^rzf`+hCO(e@Sf h$_B(78(8Ooc6_tZQ&9sReFbE;?A+HOX1=)6JQpTGf^YDpBjU40AR5&fHt@*4Qx{1dAKGFFmK`(0q?XfU;7TcYs8b^Nly{^u&%^*1qbPr)38%It&bE{o#YJGflQ3sFvACtPJwdJtyqr-2KyO^dfJL`@6?mQtEtAi5^> R02T;xE8<3drE9%L6>Im35(j4+iyLwDPIAsY^9${lzij)BRoDd*J*OkLHL=vFfIYq$%nFr~LC=%*8#Kp!sd4Ri&r _Iy=GB`x+_h9)6AQ3Y-@zNPQu|dA%M*2|enwwboib*B931L2jR48Ps7vHBABd{s)_-% kcuw;1}AUX#8w(*FJ~X+ftYnt9T~qEK>4|L{rjATC`KSmbl>~@@ZKM{Y7z&}R1@3+5&FE0e2p>woMe>stNHGq5BjFlpSO6t1)b)VTQMW15+1wxQ*jo@gh+V|GJ@Mc&U82+CqUZ1BV)2cu(B-od<>gXg9>-Y~1(n!fd`7so?^_5dOS$_qmk|t lDqwSKutwewzZ>Fb*Xn&?Jp96K_ `#134qBZb6$GAod-Ja|7L#@p{>S33cNId4oA1<02x2hM$w+e(I7-KWWMDI&o>tq|Z084!tNM>nsmG^nNX>x8IEBLw$HuS8Q _o!X6ZtRFfYxT&Jt{`J{7u7P(2pqcBqT^a5z*%-vjNPXcg3u<)43UpIkrX2L_M`qI&CoKgO$kZg$96~ 7heJA#B+r>T+(%A{q1$v$1hpl13VhNDlAz6{;<3QaYKF%hOcwx+TN0h){|m@a|h`!T71Jx3oaZHAd=iRI9S?Y!70DC Xs1PY`}w>>rBXqSq3f?X<8tr~g*Zvp7p4`NY|0$yg`u1wV>uwFn#(xoMi8FO{7N+G%U$4c@Lb_KoL{rwwPJ P^>-BwfxQ5$l;ei-Ac~`7iU9&6mJHfvMZ>kD<{}z?(l}hGQO89An=ru~pJf9o&dXncY8<4TkpavF!R< j*_34B>IpLVB%qrf3+boDZ3%qm=_G&ERnuvN}`7pO=4Gr8C=4Y@xss{XD(?B6}`Pm-{IKIq3>1 cC8iGO<$XsDBd4#|7ljEI&Bk1oD;qM1cpEKQz-FIP`L;^tWVu_1|%wOo=ok{T*K>a;O-@a6a92@8)AqS%ozk)LH!{G)7 yLkEeTA`kodL$5vg0}B7LHv3^1t>5k2FRYCIQeo)vlOUbVM+CC%J7?e@8P>` 95MKhQx3x#eG$E4>9U&{tj8{RNSwgYUIi$Z+>jfLXWa(vU5)Gz2}XB>=>(KY!mHsPk8XouB9P%dP^@kpfK~hxfU-zM8>o6gvtB O(9tu#4xWAmD}|sChV<-Ug7A*qO%MYaF_Wh~Sew &0BE+Q;A1(;Rg~Wb;q?cQ`Py0m}0VsZJo=%g_EzcMHR=wnWX^n@!x(mcb%N%p$@LFKQ&>-h_V^1UMzg Mk|E>IaQ&jAM3TVKGgqP3|J(9QE~VQ7(!coFl;TeFoqFrdCHrQWCMmj`pO^;U&pqo{s``_R7>Ko!XMj e1|OIRXVgY{!f6zPb48F5~yxqsjgHnfBxzx;SY94Z3Jd${QZNLWNm53q1{J=ySVX?ehdV2IF>`X1H`n q1PQevCyW68+WNlxd?sA@t)RL=VD=B-$roJvM!c)#Ky2&Ix^-RS5Ix}EcLTg;#p2j;wnp1_BzX#Cm+t &t{zY1w7yA)Wb_i`=g3P|D~vec?U|+WK8?hycMIaSoL^i1lve3|jis&6)%C0h8??X2=WP*l43SYh!&> RiOfxSH(hEQ>-bgJuV!!#lugWZ0zqU{LmDLJx-hR)tayOHS$CD$*ZZ*Wui-+pY9N<~R3pE8Uq8eo~0I eBSxT60qRR+)XFud&8OIR*~i>HCzXZmm|z@g*PYb=)`+wAxG*g8+{rN7Pg-PeGew`vxiI7pCn_4|KsD9uViHnnUI_-0c~-A+(U >Ill;CC6EYk#iH@=9wN#H+2yTM{NK@f-Oog=7xpi8||`p_kwzLpPdsc#PuQ{uPAkiV(qkU=o9f7q>?k #PR&}slQBk|fV!v>isTKCIVW&7uCnVOI#^iP*~gZ~h%>&*Ds4eu5=lNGanP@{h`>g9Rfc<{J2?PhdQh _+ v!zm(%0vN)Mqc8R@H^{j)zNZBa-BM?OZDdn2y`wH%=C(T!g~3Jjtu(hocK43$j@*|w$~+^-ty-E(#>K9)Qx*6jP$M8DIb)cz~QYB-t*KK _X9sjQTWQJLZQkZFtulr*ZhDRz*oGH#pO54muT715Bf0~WgqhwDwFi*Z6%E;hCXv&jn!@}Jv@A8X+2w =!k4{z7MFgl-yDjF&QGKI7X&jI7*Kx0KmR5DT)Ca_HJznE+XBXL#;nM`#nv)Co1SXda^kkq2wVfxZmY`+cDGeRem-x0cp^Fo>)E)yJPy#JdF>2^E=RzfqG !n6#fOF~Qgv}6d>!J#=axGtZ?S>>-Ex9$WRk1{E67`~34OS=z7f^(sEOGCOhsG(IcIg2UQU;RQAi|lk yL+ekJ~#LLR7F`LLaaq>*+3X(ogR(}$&rX5l_hmIZrnK}>*qPM9YiWl=@EiqdA455%ghU{jCoC#>IijUKMA!Ahluckb#Y0j?px;9+xdmBwIX^>Kygc+LrZs~#hC>Yxi#58wueK12nQXSts9A1aje(4|kpgWQH& CF>Vj_EZFe8O=V!2{v&P0DxTs5&bkuV}BIR|*oR0-1QDR$b1OM~2zi~NE{>_((L&{v#UK}zck*39K>W X(5%Yo*B>^mFh~Nj45iM|?2F74rD!l#Dw}HD=+;ygJw=ZaNTj%B9V2(nP3YT68{?woSs?>Non9w$aq@ TJMg96X2k4{hGRE%_a0iX<36x?Cr3s+nwt1&7U%h`+>Oy{K+L?M?}+TM0*H(Qv2+3KC>1pl+P#lEHqH BLt+?^MtyDXQeo2#dSzh+#EWU*7{nyle#X0dK3_z}P1&aiB}g2+a(9+qXDSsbkVvd^iHKZCC;RE;iv* F(YXLxEsAc)mp!?fWHy6(NB|>rPl4y9n>X43SFc(k0L7=L&)ZLk_{HxqhIFxO#D`b^`rMFr1lGUf4I& FBCUd}WuO#OO;M}5wol;k>^QFe|S`bDo^i?Sh16^w;0@vJgQ40v#s1gDL)ya44kdU7A0y8m5m0dIY_t D;i(rOq`)mrO}z&nUT*EJ`|_pbV;_5kmkv>gbEtddur^OZaqM3Pq#iXJ%5UcEWCaY_?H^LPN4AJL`z? UFOU59`k#<(&6$g0r$0HjS6>fkad5+C)FGi=hRUP`@G4i1~!e#Nb3$Uv&Tv__1(JmWyh-CtC06(ML7| `WKUh}BJD-O1!Y~Zc&^&ktH~a@=s6N-;CdtU9;c$Y&#pzMzcy$V3!~q>7=9ax0}LdoKBw_6++Lm;3(5 J#a8V&(LV{ci#IfUW|lhK``fYA6sNTfpJ*hW@WFy%(nR*Po^HtL3{GCNU5i(IHxT1RkFR3_?vN1Vh_o C;#xBz@(;eJO;OQn}tVyWZfd8VG!sDfE@r_cN}#!aMwSOp^Hf)&Q&)^Uccl&MvTxP2`ED8E^57cJFO; !j9Wi*F5@r>#wTyMMd9hW7(H372W12oR3OQ(E4uur*ndwQwnz-auL3G7Yy9g`cMU3B4H{@h(_?fRxwcabGWsU^{n_W|7bb<~=@Vsk%m2Y&z%fJ8YBC(p@K2Tu&xRpQ4_h0mr0aT72zL{@RtQyL#~rm6h>g{s-#0qTdTo@6-66uYlV7!|4Ghr{dP29`9@Z`3FUZ tj!+Av=6D%v7mu(B!Ao}WbDo&kw#4uJeVFAj}`otq4K7`ro{6qT4hFO6cT$o8O#f#=1fKn)a(45Wo#p fuUG5aK`vx$jhw+QOLHkkIaE=5VV?o)XC}!oEspH!owpq)jGMURK?;${Y-C6_kb(!Hli~RNaU+85P<5 7_@6&T}#mG@rq5AQhLLt#=h_8ni*q7odS?~j_-0?PTQT1M@#LDN&^@(xpO!_&i_O_m>!z`n{DhTCcz- |Y2n(p|J>pApLhM<;`OWD{?zV;qXf3%P__um1$Wh%0lTR%GJ&q4PE$ <<6j15DM5J!D_y-574bHpC*$Pd*H`7Fa6Wr&Z)$`Px{Lk}iJk1&4N7X7vJ-cN2tlFMqcS1f72{ac>>S $WY|E>W2Id%KsdyGIMh*NI%PpI-ByD)PN+?9#p2}I0sW9SKuSh8THFX%;DS*x5`a?O<(A6by*||WB#Si^v*_?vL(;9}-`}8%RH^b+QSh$ PSEGd3jTUkhf(*9DbAah6j~u1VRh@+>8Jy#SJC{vJM3iy?lB 2z9Fmi+uC0-kmV2Q#E(pObE^vO4e_U^L}dSxg{0TaebRr88HYh?q0@;?fp>gbA`#ikjo`nH}<%7-1qX Q^@$c{Sy#CI-v3415`_QYRz$zz%?c~75N=N)mRVGI3M^ONX4#grbaW?++3M%1#E8Cx?u1X4z~rY}0Bs X7L3BHu@+Z#S^7l4LDudA>gi=fGU3c8JkLoq%PB5=&1aqXeF?o5$o*KZmd>0#GE~T4y?PGDkL(LJdOW Jk0<=f(&d`)2>fOE25sZQ7KvRnA-Ty1z5;#eC2uR!E4DnVgGXG2xXvxn>)Y{j$RGAz{nVcqx2@yHXds6OR*&V>P8DuGY*^;1X;R(d7lO}x|`g`bR|RpoGr5CM5H=P^|^ <0?_6P`wp1dUwG+23gP9)9AH}nBYnLw?mOWHg*sf{rB=T^uL5d{OkL6c@NxsQ28k={e#2 4g{WU1^5>3Z0z{AMHxA=CPQe&RAcrLph!8l4V;G9VC`gb541&l$Rbao2UmxosEIjP>(&W%+r9Mimht& `G$(({C*Evjz_UIP=GJfqD(H=UI;NWXf_|YbOAu+(LE4iM*@g_aW#TJB4XH4R^RvB!)NkI><+pYeEjU0<345-`uO@0AD;F8AU(!(1m(YsU%YqJe 8J*d{CXsOp2}~q7amio&JmH2x82fNb8#)!}JNhRK ed{*1c>9N){-O{o_vGRb?fX%ZyF=M;!y%RMC1l)@#UJK<2vgqb1&u3-aWGC#Nxk4a`ZrPqE;0P_!wJaYe q1j253R*z+_PXxtP0aGf8WJ)-A6$Cq=~z6F8>*_SObVCf`4r*`v$tX`UG_H-r&`#UDy^i}9^Jwng<=7 <48Ww_3U?!1v3eu{hri|+gM`&Rk=>jL1Un~pOc%@Qo4Xoluaifet+q0BvEjKbS64eI?Hc)n=XM!DP-t h2gY!^>@-0?j4|P;JKEl@_G#9?P@Jns|_Blv8dtCpm5;wMk2JSq#L%XqZ8TP|HI6QDNm0c=Y-0w!kAF %)ytiC{wOp2k)`NAKL+}=1hGdsltH|wy>H}poDXk;dGtzC^x5$K3O!i+)oV9_-!(Ws--!enn$_6E`|6kPDguz+#h#ZvXmj?0_<|pb?^Ls3FXah%%KfI{@$s ^1q?4WAQtb_E!0BRQS;pnA7uT}@+{VzQ{P*TC=%h$bNr22^@UxPjb40w_vA1K6!e7$n`8Hl7nZKV;=W ;73&&-z9H3uM1Lw^Yc8B89!@`Tc2rE!gWrV48NY&^*q*Jk&Gn+On|BGofziHOjwgjBh;9O1V+U_HU-2 _l}1jI9Fh)$*eXUT){Q^fMcf(_?&`7uHykf|EinOzUSnCZT4$5p)(_^nC!fOF6ZVbbHKypTYHGQzh^- gR8+(hlKEgy9=G+lOzx8B$4rRt^CsXj0HX`PfUqBh)Zg9C%Q-~uESY#NyS_^CWhGCdlWhsG9I?kW@Vc My0a9%b-xe#`+flwE0DINCKlRsOsQuU6l6B2-kZbvG NIz2CIYAMa|l!kUUUv`Y5|yG`zu^J?pJDF}?^I8yhADc$aK&;4M?#!RnZDKq{nX+*)h_D>rop_NpMYvI7Fk( 44i?xplZ&ghpWl)Ox4!F-3c4%`N|`4S6FfbJf~&r9;tr84c8bHR^Hxj1&u;XjKkz%4L2 `WgUOTT})AgsKnPdG`zNATf@Q_5(0E_-*K?;}iSXDet%pBKPPSJ+C5@o8jL5`rOk)GH)kGXz<~@kakKrwwTK@mYW=-h^g8s4p5_AxyGZng DFp0qQ;okdQDk#P;K?%UazP0CZc#9qybL_goIy%YIr=&{v>1LiCSMkgbBJAcr1TmR}4+c;sy_mw4K|m uO5Y4^OJYzK<9xG1sCG~dDQ4J|#%-T*Su_1<(w$iERB$tfsX2g5##4?({t( Nca#6$snJG%5ITWF;vz!1Za^w;laxD3avBq&^G*+41CDX1YGH__Dv-o9@HGt?N!w{iwW-ZknFISl9$g muU^9r8#F|nNyDysQ|(+w#wNd?D+{%>PcE08hZ8&85m1m8KI6-sN8KR$8mP$@HEe5ZpfHJjUu*8z=n$XhIzTT(8OQiMjrp2Vw!xGEoG9XkPt$}KSUMf4}JCs}aY7v>rxYAS<@B{K3J|FKDQ&sTBPFhZ-P`Q69q76iSu%tpo%;yJeL`xo4m{KWr(v8{OZN@W2A{i0vP05boxo1U+N G8aVV*dp76Y>V9+F{Z`0GDXDRl$S5TI67@3MSGU5VbPiM+|_>y`Bv$mGvUQ-=418x_&?0tvbJm-a&q= vz<8Fu}YyBlQITD@2VJ(=7N-p=GOt5>?3q-zouHd{i8mneW}-`68)V#-pKwG!>cn|e)b#f 087Y8Oi3#zBky-?>pdLMaG)R;?)Ew;Fuk3Y@lCUkS0%rgpeLm(DA*hJY#~(x;s)1esA6r=fxuRN%`-i D&)V1s(ydiZ&4NU6RO$)6G(vs4nYLC!>OY*g(K9CuP_+G2n0SXv>}85NeV_NjQnMT!2x^XW4R@WkHvc Y%gO|Fz#;OZd)^4a{O(h}zK){cR@28BFe7G-B`f0mN_AC DmRgs5){h@xJ9127GuKU#wK!hES_rav(QB5Ou&=-A*Wa)8vDE$Zme&mP_u0Qh88KRD5pO`#qW;k`UaH 4=HGW+Mgnz3m`fcpB-J2;Q8ESfs0tgON7Qws}+ ?-B-CHM$D=j*stJ+gB{#x}0imfQ3C=L?2EdE7P%fwRB*ks76Vr@7ef-o!Ub^6+)J0IH$aN9m+<-i6_S IeA%7)ht0~d(Of_rvMQ{u$?Q5aw>Pq!D#&!oJ6><|WPZ<$=#CE*k@$vO(025E2B18s0Pm=ai3VAQa =*C2=bIosZ?%S^L9=cc`IL+W1O&s#!bkltBToLS|coNeB_Le2IJ*sw6iU`Rn@v4BPYm-!)8Tg7M#Dg1 o`f*85>`A)!5Vi=t)MKs|6IVq5b$~`)l}t|x-?>a*;!-Fu=O=fvsk1k9I)^c{g~uL4O<<)H$@#j7bA+ SJ2_`}vF|-q~#`g#!ZtnXZs15x`RJG)(KHbVU{nS=r4t&=fbxE#|lEr^ORjiT2b^virY+Es0sunMdxG qNBl6sEZv}rG^J8&I34Zr!&nVy{I8Wh%mvN&JhTC;nq9BECOy`wRp?kv %sa1Br??Ft(+WpW5&Lg0RF+`Yb`s`Z8L{69buB!k_s^ef~F7V<;FWgkT!ugDD@?tCS@#XXS=ESQtKAx OcT&7?wdZNRsma2kQ7Z^vIsNgbjz(?INni|1TJDtKe~8J{6*bo6g!{f)PK71B6xfTjAzE%XUXVtPBf` {)HByJp*8w!tj8}{t!0WG*{FR@S3_&x$Z)=6WyeQn-*mOU2{Ztt%kwCDk8mKW>uK#0*|x^eJL4A?1K- 7If8~~=D@UH|r4foy%5mnpf9;qnzs$6k0?3WEMmwlcEE`hv9wX@7)$HxAwAM^pb8%}ab}k6^#XiNmIF W9~T=qL+z1A-_*TM=Q72e=_S{5_CWO=i)F4T2-bjI+)GS->M03G?OU?PQ%ch^T8Y6^8SLqx>&PJpNQ1 h9D|fnec+qF|CViD~6NCy9th7PoPPYfvG~m&v;ZdsL|JD|}huI=5W)Y}Zmvi7KE~O{>aJDp&Buj}8Cn ^G%!Sp^PPn5FELTXPtSkj)b(DB0=Soho2aahk09J_p228B?k>kc`(hJ_e#g|&8 B?CX;=&yaWWOYrZ@D;HUDNxI>G(fhV8iT{_xet|v07v06LuS#`v^jyyK{9p0DE!wyJSJb?I7F+(`J=u 5Z<=>y^Po0|>LShI?LO4jG;10Pcgv3ziT{-`?dkSqZ|xC=Z)jws|%X2jw@kn}g`YX^iod^!qO_ =jbK986*|I@)gbBaaJE2Qg>gVINx>9IKAlhgAciAG=5RSQaw+JYMT4;`B8+qTQQCIPyGwO2fbxP&D0(x1Q<5fV0w13xI9ujhCd)-ctrM-e#tEuP#~Q&isYrW VT@KpiCkV0nGbUPqHFi4)|W-CqR(+_QX|8nzgwZg*Q7kRlWZ7oKjQyeAlPX%_uuffyMT>H?@<^W6|U- H=WLlT2t5tS{k|A?g*fR!4X@)on6s+R1wfUuDjU*wEWf1b8Ve+W|KUV6e3qhbI$N+h#>#%ywMFMn*Zk 5s=r$D{;Fr>~m9AKHhJ7lzsQ0QZ_IDR{09VSkh!m7x6R^qCwx8VaJ%FoQ!!nLGsll 8>L=4}##)+_^ioH2EY1$iw08P6`2!=FVR@#V-|{PtgcX4q?CD3xZ!x!;bHX8Y+kAT a;#q+I#vvY_1^90q;^A3&4-9CJ9Z43+w3j?8cK4T^1n@I2u{((?c!dWvECeSKG!0j{EWtI=dN$<`Z zzCXw0?(K4PDdiAPEB9jh2PDpiLGvig0V{U$b25mkkrvAjC3WmP7a1aqlv|giavf4oW`Jegu&TJg &Y4~?Pp#$|19*29(~OZ|sqnk BB9di}e;##NXC@^TTunQh`(8*^!L{2M`a`N$mxDb_--`%VeHrRZY;l$@4pyS=eJ|(B*Zyu= 4Zpm9e>FMo)ZeA2N1GQvI(yCWoR9h)i`763gKvqWv)|IwpgDwa%N;{EBt9KuST1AsTVgm_4+%x-kB!X ySC~nD#248@`9RKj%Qa1V6A{_1k<3n3@1M=*y=03@qs-P>^H~Dmvp$pcLvHLhjy=Z9rF-3;EOPgYrZK NW)%ApT$IBBcn2!m1d}E+e}#xj9oiYjT`I2zs7mi?Bx5$c7s8H eh0P!oENPd5eZ|aF*!?scx|JR+~7vq@SJ89zN6i!cJe-kP80Ek7f GE=;e;=8J2}8sEee?~(x6y&-i|y{pxqhu1Vd1?sf;h=wS&Wb1*@8+W578@Jc8ReGJP+j!wsO|fQ)Uw5 bdLIEukU^qQ>#`7hbbalzM5R`>y6w{#N*&anUeL9tAd0Ze-sp0TSOvz06j-+2gAJQ&>kWTmR%x$XXoY YLwN|~su=^3>(3h}s`leczpL`F1B!M`{JUE}EGEjzZblCiuyFo1ks^ez%!JRvYij!Vi|-guUAp|k3kn O~SU`%z-f+APG$0b~3sBj;*WFpFwrGqN*axb88N2FAIo@ayXfIlv_#R}?|}%o`$3q32z-wtkYk7ni6S@(p+5~ CcHqC`?+88EU=el@vkp1$>}b^5u{f9>zKX(+>>9QQ1V3+>CO$pMy9*+z!^!MH$L{;^^ur0m59yiRQz0 MC@Ra(@+9nUm8FGvf{e|z_on7?lU)$Yo{^^!Ji1g$^2;0Br$kE{)efr&w5iiJ5JUtj=(NXiwfR3a{~X3- #gqM@Zb2o!|efo!|!dX7#tdc;$aWB8a!mr1VBM~o@OO3C}63xMA{gOQq~;ntP!w3@X>RC!Muf~q4eGFaFmkiOnKf4nXcO)sG#y#ZQ*NwQ nceDgG~cF(az=O<@N((bDy6R)n4Aft@Z`V^uo(nU6R7S++{Ziu%&Pu+9|?zFV%UKlT(rOh&C>>k6lqU -dgHq-J+pN?y(yi@w2oBog=LpAy)eML}LS0c=vNMKwO|L+^kuPv=#?G*Z7Sj~U5(jUy`5377&-rpr%jK7m~ss6W;E`NQ?$BzFFk>rdG%ogoX9upwt#?h5}X*NPt`WspEyCY(LSep?(Q<-mJD-NDCCJ>L34+ q%hvx;F^Nj?V$=ykS!Z+vNHE7ciYza>;nCH;C95tE;iZM8&zlYSC%1Hq$o0GkdJ;6DyS6W{Y&=LnKEP1cg!}h0DuTd_VhD%_`47MP (I6Xyv^6r67s|HY~wWHz2%=oZG1=5L^h2;TxtYKe$criDn!%f;>N?WtYXE}1I3!≦HqOqD#)GzR!b u*vRUlW6(I#TGO?ES)R3ep-1eMg2%wDTi>kVu`a0KS~MuD2DW88d9b>gOCg1g 2Q}fKmv}HKygs(=hNCYdS5m1%jP0;oB{Ir_`09ITgsw)m_jtBE`ze#~G2IuWl{Uqv5fS(NhCccA~VCP t=`VPN%XN>YG^^dHIU-&cKZTn3WKrGyc}nODV>(qwH6Vbw_tvK}@e`_q>Konqv4KJeWsI(i#5@|3 0l%D%zL`GR8vHo_-@J>M!4kUjJ$khKKl3b?}_TeGEqW)Xv;|0G|w1m{*rMS5xg*JBN eP#l4&fyJ-;44OSY1TZ}MZxey{4V{>S&TF4<^3p#pRU =bt3Y@HLRwWOkx>VEaqh+b79MFEQ0?4g1WMn;5NydX-MXduPS_p*meTc38iPuPMdkK&W4+VNiXqRhfb v8Ay+8umh&$T>>g)eCfW30r+gx3dAB)RNimxmu?vJr=o7Kx7t80)~vig=Z;jm*28&t5NRMfEABhAhJVuyGYmDSt!ZKhitUU=VZN&^yBzi|9BDblN|4i?WDh1|a1w?)UEl4va8Ok*0u3X8RfIsmtUn=eR1P%!;i+DXW%}G60 <+r6QL2?4$~pQhnIts|SjPezHORZ0xU4|5{pub|O|$#$M0V&BgBtf4ScDC)i2A^Q>E49Bo*~-@v;=V- Ou-%zpdM@}T&2sh#~JadjfuJLPN#6bk2wPo3lz%1*8BftMPBX}DTgmx*~ZA|Jux&B)C(-fkoup8ooT PhHhH{a>a<|Led?RbD00RNec3(eqT^pVhSPpzG_CSo#-a-G98uZ!dP9VvTOl^ t_;G-Ir=SLcr%0Er(&yGO=Hhzend5aipa8oyQ;b`a _J2JVJErGam~kK3cEH0Xxz7h>dqR3LbMy{}i^t2W%sMlV3G#<%zA+RL3Ver$AzlFZE0Rhg9$K(F_C19 ~A3NP*Gg{8vwgdLTY?ICEA)L+EwfzOGDdOa+RVMnbY$47^9#a9qz8X%?Fpn3a{ XMe~2{ifV?4CS_^M!VS#wHpS;azMT?em8?;|Nj+N43qliJx1gq6`QXxk3JwB1{`?q2b_l 4$1aX$EF3g1?gn*zXy+Yd=84IIw29Ivw{$4llmJE6B>N6lcKd#~186sC=ftkv4=Q6nF^Hki|vds6l&4 MeBD|>mEBzo`ZP)MIA_QGZ$6ye|sab0va)w1UoJc@HbxW@&2qi7_58OFUl-!~P%wo7K17bYOlAo0d0p +w5G35nhfBC2Ybmj=bonUm4ZN{7JN-Op)PayPh^Dee~wZ<9}#|{|)K^2iBW$ >O|KFKD>Ccl<=-{NO_R`G%Z`pK#2a;dQkg-l1hp?bTNcEP{Qzvz|` BdTLZ8jk4I_#;DU%h^kQwPkeYCuFpqy9foy`!O*}wl7n<3&3^8CFN!(C$=)NhSLSawfu%w%uOWZu@LE`iQE(&>z >r_RxyQdvX05Qfu(-h`Unu-)%>y-Il7(rZrfa_7&#QmGU1k+ICz#`K~hgdC>uy8_}AyNDdzG$m-h$1c %%6U0d_9!tGsW}XoA#uw-51km53x-s!CYiuQSL_6@i-s8(xACT^u@r?o2n-lJ9W4;ZlJ3E?&x983q>V DaC1cKI7IA0c*bvMk9)`_x%BfAOm40MHrg0zPK1y8s_$Ly)J1opl%v!J~{H7F*hreDB&*CoB9slbAS` 3G)MM(Y-5pnln{}l(Mc@O)qK4O9;KihT(5uyhV{9iK||!2h3HBo3Kz7njwusEA&ZYte&eVmagTk;c)? m5Ud4T_Eq-uV8hJ5b=;a>4W~ue;>2$qlXEa}t=c*F#JfFbk3g+^x(qqIm7)+QVNoB1!_VD=)gGz(0Ed Z)4EXF8q4^{=i*vOKKlHcwHN!ksTfZ9Wy&E_ePWwt`X?hCm4wcip#x<;XyuOb6zt}ZamkoGuCTz1&>m w};U?T>#HTK_Ywv&-yXpXZv6W&cadrse)@e!z$S?ONYp;$K?l`;IRZ+uMnNP2?Zlkb`s LpdM!*#o09a+E+&Ysw|Qb2OBw|4gd@1N0U|*9ejZ7BSwUL)cMJe%kP%+W&VXeqT&XUr9HQONoYe5a0Zh94-)mzk$)Ocn9U(*?~SDQF#d00jR*~OBwWaHcz_z0`*L$iq0Wis;6LfZ*UP~u{FxO6@dabdNr!aPe3wFR7NxnOf#dGrOFd(!Sl-TnFo40!z35 sL_2F2qAvKoaQ*=6{;Py8wj;q^(T-VIL;V&i(AQ4KV>3r5tHjG@aF$}mGB4KX{wQ{lixJLG?1}eOnn3q5E)KWs&@_e)cOk2ug!H +x|LzR4KDr3(&o@?3SyIcFtN>yT(dVPPwd%nDf;1N;KlC>bPm#;y~q7&jg(X9V$hLnN 1#&aC35k|me12?rcMsL%VfL&0lh|L&9yucbZC8#UyF0$=i9qRRQ5mgTVI%*M1yS2h)kaDuvNp|#3q!TvRtOBAY2nj7?Uh@FF7T5eH73E{bryB;n;M5+sNQL96o{mfUSa ~3u_iqDUN!ARLcW+kdND=gcC5L@@;yI#xrsIHA>R4qXSNrZ&K^-d=f$6Pyx9a>23R?fYW}4XtjrNrsz ld_h;gl#Eg{7wFlATle%WUBd0M#;^_@--z%lN^Lh8>sQiOmnwo1U_mZ4y(w%*4zNvoB{Qfdq1b>83G# sx&oyV#2feWSPp$`%T`J%}5*3Q$L#fro|Uv$21;!YrC>KU&~yDZ$5}$Y@=^s6>We<;b5m=7iGM$qY+! vW(DwP<-waoyh>MziOVLxQM5u%d?-ossu~Lizkc|IXcg&pn+5F>M81F8R=Ki^BX5>F^R$*WP%X`Tyce cP+Dz@9AD?;q!N#*MrJ6Hs`*y-H-oK%vsxK51c%bgwXn7pM6`GtCtMQK`~uYVn~O@gzi1eBGvjyg>Xk ;RsegbMd6xZuh8O?YT7Sfg|6!f)GK(+*LI?>X1PnqHg_6*Y6EU3He?(D)q6mzDAq4#?ktRC$>xV=U^% 0894#;eWibs$U&`1J|xiu`guY4!_7>h4<#NxB#;ly=KM38DL&XMXnNqy96X4e$EwLek|*}-f WJVDXnrv4aqw6RjXxj|{{YSW*lPZ1n}gtkR*Hh3sRth&OXTw?`k|=C=>anLv-aoU(NS1V;X}zeIgb3!?*iz-l_a{CqkHjiT&=@Gi`7 _`bKmCQeZ{VoWT_BYVmm!2xzJ(E;hTff4clECaFakeLU_5U>yk!^desojPH4TS2@3Gp}vxSGei)_D+-2C&4av;hHzDRjGiRu0JoR%mO7dIZn$ZDS)!+uD6U17O6$?azc_l&rO$ r9WS9MZOe4`Our#e1wy>dSV2+kRO%BU#B{L;S^d`(eDQJ_dhtl|LL%w-(*$(zkiw74+i@mFY?V&|A%L NKXaHMF@l0YYX1XbAOXWTPJ%c^g3uwDN1?>gLxuj-LQ@};yc<&J!w`hBBUV1Tjff)}M#v*#J{pwZ&$N }F*M1J34|-H*5b&t$MCidd%<@BY<;zUt=wmd~^pIHDqw9l`7#|Ns(Jw4C^r;ucpDNV8A0$2U17QBCFJ (uQFoGT$ce~#>G-dLG)01N#Lk=D71BZM*axgcc&!prm{uHjjPa_z$@AXeDw0Okyk@ef?y+CMXlnv$?@ -ep0lq7Ez__F-SQd=C3Zvd5*z6~FazfJIU;I`jw#m9*J&yYKM+OG_$rn>OPH*Vn|0$=Bz*pZjczk857 9{lbx2K70cUw8X?FdIKMRTb_&z}f1D=BV5BrrO4$LHEzr{_4(vUv2HL?hN=Deew6~MH6)N_BBy{d>-_ aFHbUgohFwM2MM=?CIQHc^u8txuH4XQfYxmqS04j?$Gbhv6o$C_$cmwDC?fJq@om}eiI>`u`7%NW&B- PMO8sT_O=p#uC34(Du(~Mk-Ojedv}Ep~@-^W3TjuRM;>0Zr21|ZD81i14{JlduA_MO?qlcQ$`vUkGeU aAPfgjr$CWH4}vN=;;hcXb)Oz29cq5yE2w{b*HWXFbGTSV&-~bf|ZDtDXZLBU7p`guLJL8B?nj-$UGrX>v=s{uPq#ClVafUZ@1d}1&EK8-7mJE2^TzNLTG>&-FB&nSx49`=8$ml`Qf%qw&V%@Z!$EmuVixj;^RF_S`jq+ uw1aKSJhT0iIYQF?jWKk-*&v^Qy~_|f;@`We{zye$JCTm5-Udb-K!>g)P5c_uMO9I 8cex}=c88oCF6{*X{XQ4fuPQdW(9dw*S8gr_YZRyC0I!*c;S88zu+e2 *vDN~_#ku3I%5O{1F?V1sAoiH>^8WOvY4q^Q3$Rl0a;#p*nyoZgKPMZSG&BkKn1x>p`}saKTesWslutzB#6Zt>j5hP4ZmX8LvSri?;EoM-TF4*|Mq)8< tR0+XdqEN0Je6Gc%!7)!YDQ>g)+Whz4W630uiP~OXI0aKPyteLbG;yEZy>7r!WF#bsa3qh#~t6zvu#A mP20npyG_h>cE+02C!SZFA=cStiiHzxAUXN3*MpnXWddInUA!;pNYVwDwH}>=q24}nP^^iPnhF`UwMK z&zS`pXDPaf>DPKTKtakV65`JLN?9PfpnyyD&nTpkWo`pG~E!@UgJW@5{yopP)fmF*r-Ym%L_Zy}G)x ~{gwhsOv0Q$EEv477nbc}G(ZVPjN&4W0fj5+CCwbHfz53`GZCsjqmbHiQXp_xci48p)fdqssZS0~$-u 1d|V86X_neci>Oh5B`^u#*ER>eMbGfZr>;3nru0GPcmDk~LWSY3v_~kzmL=bFwRw_gB42i0a0KD!K*W X}s3NqMqL5yiCB=e5r);h(>%UigKKEQs-}OrnDuVq;YMlDpatNZh$D}kPg%>0tC_^TN8Kpw3HMA^mKe *q9pKL#U+wHl|yVgJ^Jas-9b=j33!GKa`VnaHafN~iowl}$RJD5rmo(jg8-)`FiyQ2hP5Cn=>T`-HWU xy)jeC2LW{cVIyb1d)(vPFf(-V2zF>YrI1+pg%)nFt5B6V`v895N6zjWc<=D_phPd3PD@dy)SU>oOC1 EZ6zVT?~_<1&;N@(;Y!899iumO5`jec_92=7XnN%HcjcW{?z40}EObE!JRyuWeyflW1=OQCk#0_yT=9 h5jf?~Q$Z04-GT(uAT5xsq|xYKeTj|;ZIgKfuXnB0%N*F(4R0{eK1hJz~oPNf=?FaX0G5(B@C!zy_9Ww68F{yOFJcS)4>=ZpVv?DU==yLf} gcTkUC5ZnNVQpYY{s)Am{Y`{*UzBfZo2&3W!g55niZ5+_jO`2%^OaQp31uaax~c1dvVa3-eRr^Cw7;_ };Ah+VtGhao*00p0eneWZG}z?8S1+7TpX_Vw)7f5c=$!zv=02*{L#<6dj(pN@NKz4oVJYkX2)Mr-Not8*1iG{u142 (4(20JB_+FC%Ij^cVhLEf3=NboFPBVT$ZvnwgaTM^R0n=S2vJ)V65s$_BB^xZzQLo$<)hRlvB0O!EIY 8A_P797PeBv}_xu{FvDBg%U5R{mJ2XMtQ_X~0EHy(6%sj)Fa=+@g1kEgx7Jzp~3r+HD1>_4;mT*oN_ecf455{eZ*a$6cw5utfqbLWlAcZ!povRKmVe#okc1#A2 gduWm)Tz~#M`*QYNEbBsRf)!IEFOeYtp9AKGSMzj^|J3g)1&GJZRjVCA?vB&7rwqQNSryT-tUi-;3Ca ()jh3@%Pan2*G&NKDYT9VVXTrQc&32w&wJ)DLa0x!a2ONJ}#tcJO-1bC4kx@wA)uzkDKV+s4%UJaZq?{jaZA #Qlr^%C*34R?Sf^2Rw}==PL8iI}OH} 9)PgXKl$>ch-vb!+)~affxGzlo0DEcSP0myxQ6e*d*2mQEqe?&#Vv*~XAR#!zT5=HFz7egoUrKNrsqq )ID6RI`Yy&on2Xg#(kgAJVuY0VCYD1N8JPBfa^^TGs%tJDh*EpU55|*K?=6c&lz}5udT+4b^0$0vZQ) H`5Y%pR0=oP2+bwC}5*g`mZm-6cCy_ARw$qCZMLU}qKcocHxm08VVd>kISsk|6)LEzV13g!G&5{n6zW ~z7pxj?ZMt|S?*py9%1CwS-qR>7`%PKY#4y_@|5f*30p`1-_H#0SOGlVDjhfwCI65V*IE+!XG3;e2~kIWezz_^dpHGA3Y8vv>*H_ lFHztG2#GI@z?y+e$tM^j_f)7(e}g-)?Ji*>YL;t8gK~d?C=QrRjw-e(BnS6v1oQwTn}v>><|gsw+Et Mgd*ZV5~D^LFvN!9kzPWxN+l)vy#^`|<79OL}}Q8> V^`9)>XZ$n~x11^WS;|sHE=fK12$P>mLcC<-v?zXP21K%8C7%dFn1)~df3_U+eioc2Aa2);S%;xA%a6 L(oZ#ML;TUI){Wl@z=7j2{8pIlYlyaBa7X0U%fSpRX0f3`#5&$jqyI|Pm`{`D>h&iB2S#&cxOxV_6bA OegAF?Q^%3nqd$;OG~X@aBc9?|9}SjItX!ur7FT{#urJnb|s|0`;kq)$>6iE<0QSdk1Mw|Kx}rag7My E?Jx2GQ7OvH$P)8fSTPyFIBgbAryGTrYXcS #>)%VZwI|{tiRUv84{Xjpn#r*D0N*SIfGET8%9--zQCuLrlE6Y+v-(=$U8%*@>V^JG@$%=2PROjX8?o `x_`ckpF+#%1W^MpKm}i7sy8b1szRR>;Kn)|BW@>llF46;PgVU1LdFC|^@!sN+fOAt%b>Bm@>f#g=P` ;PT39$l+Z#R~yx)utE*x7 WrO3d%~S$E*3P#J&AdA*c8i!D@aXiCUAYDsUgF*HPp*1@T%B3C5IT+ZjKF!* ?sA#4PE-j-n@eR%ZA0Ca&XS9$(+a@ugGSZ?NSmIs PSoA0sSsZg0xGA@(CDly3-O-a#=qSmg3VJi$?kP`?(s5P{Rl9^LdI|(@uW~BfV)nVXE?yW9l`kOi_BU q?PNdp mkg-&ZE`wx9q9OB&o3}~_Y{71B9wI=-L#2@9V4q~2qo9KdKz4H+~`lmZg&_0WiE^b@K$lB&*zr|2lU| FL7@xDv(Yur0qZXv#jx;r;jx2q#S0UA(kd_56hCyjQbgtRV+C%QSZoCtlN%j9W3uwim;G8D!Okw$r9X xJ_U0S%=@@)F7E=vV3F6uq9a4w_-qNV?CS|X0d=-fBo4S@NIMR0z?jsw`YRJ#y5R%>E@>Hp;;lkbUVgYC2-O@#R$mu x?GSQn}tZmSOhz6K}f-E}K~z6>Sby5xqoYvTC{HnRUU}(0vE=x6qa>o==VIkOAix=IN0rZ4jPaJoCb9 cfW}fp-|Rq7s?cdUjt?tVfmCwna3&%mDv8RTn&vEYaf{OHfuP Xgs8^Eu2+ZX2rt2I=ahDxMGTPBD+I7Ueu1n`=y;2bl*1|sEZ?!`S3Py?8wv|JH-DDLq~}+!#30{^^(;ZaVPX@IRWg>60&<-d@Tey^QCgzPw^~`GY*l2j5LUX2v* +`=8!Ywp2wIZ0*pQ+RWywJ&^v!ehBUTxXU{QV0IJ~cjh-Tm#}~TI_P5|$KO>p_?$q$)%@EDzb$Bek(m O1uQO#-3}@J1Bo;M}Uk?t3cCg;Q%+%R*``fV{<84BuUcfi-{Y)KAQcd~`x%$JoNPWxIS_^hD)shy8{w 9;s-uB~;X)zZdM%+2P2w>z<^A7U%@2NF`-A1)`Kl__P7WM6f-xmBPI|cktWiw@uoZF9@i~mV-5oR(35 czwfOp!k(&q{nvl&+rwDweR0NBfx((u|VYR;pOR3Lls4LOg`Al&n|4fq3q{E^ok_O$@4~S~&^!4s!%w oOZ0Wo=fn4wXigL+(L;EA%aW5l9^7KkV8z>RETu5%B-Ax01_bMObk8D>Y+#$XOtq&F*G5gH_fxU!xLHvx~jXpW|mKu -GfGQY6v{~#1P?Vzx1x$sFisY5XWxJm*U#_a8550SU+F)2>#oz*ZYHcWdN!6m&nf@v+&M?m_^#oMd3> q97UMLw8=#GKEWrZMqu{ZkqH7oQbBNY6x_6GbcBcvH;N$a!>ecZ;AJ#|8Yna-@6T@4=m99dZchM_O4_ I4QHORkCjwGJcCs3$aAyWnEv10sx9y4!-1P&P%2pG65IZsq3@iUQQ_6VGWRmdml&7BmPrfW?s*Yl9AHw5MRfVlT1+n6cn8qdtRq*^##`tun Hm#cTbqfZ?OU(U@S;a-7KA^^k3qrxosW>2UGPfEz3*7aFR_@l0}6?$MXJ@IoThFO-q?C%WxX=oyHj-CyvEQU5wO(F$onGQXrESo%;5R-RFPU!s3WTO93PYip}y%lhg#Wc?rd| NP)Q|H=8^{NxYke#b(@2=EwJf)YFCB5?{rVTgbU0zpxXBoGoOPy`_e3?pF*hbj1{4TjLCG6WrUnxmWV )0B5;L_mj@1M$&P+&$aw9jQaZ{Z|Q(LpkE3l#b+wOG@KoB^*3h+q;8fAEJunGv7yz4)=!eg71CToU`x6A#XMc93>J^iU2l!;7kBf{%V1#z WJlOzpvka)z6i%ketjsaM*=x;N*7Pd!lupw15tpzsfSmI)|RTux H8oCV2Km3z+Q>95jDWS-078D(7LT&$7GVfJD3FcbeMgoId9Cuqg5_f|GM4W-SVroe=buD-BC{4XX?+w9tq&_l?zK;z;tKjL;J;mKW8vPmXye`2m=mjEeMM4KUT#mLbhR>F>iGt_ko@4qMZsK* aX`MUkark0bLBynSf^ir-fu$UoDm%784LQH?Bxt?%rzW1oVeeXqIId8T#= @PYI*AaHc|o)`pU6u$rcnP>dcmcDzvlse|VA3DP1p>mJKpXdu c`kkQcqiG-iJBNQxTSX2EK1v>``Q2Z|`5}aV2xpRqASMJJ(cCeJ3qRt}-7_A~PmW>(1^>b`#ve8R9R7 IO=ve4b<4le-@lU&bjvsRUhic}>0VAK#H%C9}o1YnFar6-@j*c)G{ES-N*G$19dIbMmq6s`aBk`MOG^ 8{(b_CgSWV34L_2HL_hX0}U9{kdJUvPi)ihI;ke4DO%ad-FP4{drO3-{vI(FJ?$5nms9?shms;P8g>w !5say1!!cNyQygs&t`$h>i`L`&|@Vsv+R+&V6^IV7xL;=xO) 3qxO(69YS9%oE2lPHQ(>QnQvip_S;Us)*pah79hT#k@ER{q#js&p?sKa$TE89o5&u#%Fi!659#knGf^ kMMzP7G0q$a@WjTA{B{@s=JxdK?kNu`3L^pX8-p@xUcC&MBC4P?KVItb|Va+6nIZcc0JiR5>yjc+#K$l!V+E#Z;sYTZ9)TrhPBt$hj*N e@Q~48AkScg@@TTL-u*%0qb?n&rdzasV+n1q9&B^nZAPuOsd;d5CUFwTv`LrH?1yIdxupsbdbmLNzV}!H11h@yO9J}GQ<&?U1bZ&)9Q-{{S|~OV0;q>(>_ybxZP aD3#t5ZxpXNy5-0Cm+sP|SEqC@d%y$V0yqHY-PNPhBIY-CNlI{U|=n}ESMD|---&0B{{=md|u0vwNvwH^^a-RM~vJ?0e8omQK7JPRNj2`vkhT_WW_H<6n+JW|6Kihxgi2xs >$oCO|_8ZMZytLd%GvHLB%J+K HGOf4x)bK>ro-6+qBJ%+a-g(|VJbAWYw&_j}|cIvK@8l!B3&K|QpRf@Zn9Vf%DnZ9C}8b~I3vxEkEO^ o<1ZW!4@Neokfuc2VMVa!Mq@SFx`*3>g^(Wb};P*eW>5~LrAXh 2`Vq+>%H|F65y5?gKtyU;>IVle7f@wOmd~nEi?UG#{hko`^E0#1u?HTJIGE}XIGape(**p2Z MCNf=5j0fRGG`P|}Yvg(y{?p!hrtQ1u7I)HVgy*f!E&|y`qMjZu0Di^}JaU>5x|{O!sE<9eicBpm xROVCN||JkaqH{()bV4$CesUfZy8qbttbx@mYr(gxlb0>Fspg+xA)%<_(^0P)M&mS1yB n#6_z^8?1xhRg(6jQ51;3z&6dYzffN6oz;SB)>|b0O?lDxF7Q%YzHKZ2cpkv_59D8Y9>Dhx+W5o@W-ap7GHG4yfsdTmAd_4o*_ioKcxG*R@yy6V=1Z)-fYK~cOXt|z1oo95f`bcPZ;N<5lFj1cZBFING2yr?a7PPr5rrNHB6MQF$i %xH>&b}Q&b%oCq4?%2kOl;YlxCf_t<#4{a<>+hE9V9M{;U_QzU{|nB6{^+Md!PC<@>*I6k2U2W<+bk` 3VPBaSA&_m`Ld_(s#(JE5=caM3rJ3e2oC5DW73sZr@PE?JOW voxhpOqZY-9_$qq5^-V$vu87VA?Mli{EeO_Glgod{?bF?cSirQ6xp2jmROU)+$5BF8YV$V5`7ovkvuR bw)mtqMV%|L0E(d*5-_zIHF2cL2TGrdC1D%QT2aQ9%$20+hwKB+lc>#m?mKUX-8VxdYa6Y;Xk;d*-p; F)oU`iS-wZ9ra5H*=x8M6U6~B32!srji~A;(!qj`W&vtap2M7#g`_<%iMXIX|xDoOr>&;^RH%u@Kx{x A;%Ghru2g~0@&p+1oV=snZJ@!u*FNpgus-bg4V*&TBCspv)o~>Gb4!m1j+(`moxKyeJV1YcGXJx;W{x 8P1_OT5K|~$In4c+oEheHBSXhjhn)4y(ptSKy6H6}0q*47S1F+<4i~BNgr(=6n|$r&#A|+Jl?-VF@Cf H#gqZ6S%!P7Vd#dmb&$iL-jwS&bCN55X2Ju>mkbNvBG)GRYafE$9j<@4r*|I~NmQcE$EOA4%@j=0=i_ kp}b#Qoe6F{p6nYQilRc3}#CQ1^VA#ADdxffUmthvc(!Inr`nyqP6!qtk66RF$ZvsLBs)kJgx50Z G0eIN$6J_tBlUOn=1A=dRS49V#|WEC|U_b9ks&N&8soiqbUX>t!ywk07^={i+87`5DJ1G{ma8%4`JlG p7#due7}+>1tJgGn0C+WBF(&WsUDYEcLx30+~YO}T)KFbLIvG|>u4b>d3u&%96Y=gSM~as=f^A(PtYX t7v6bvh~OS4MZpC8NSb{M)do;QD0-~@c#)l9i`R}KQp)soj7)q0?{`v=lagS_HULe3t~?7qaiw(NLJf YdhBL$|5WYJ8p}|;T%;)0@mO}*=;!~o9EN6}fLA3N_NS2c29?m4w7*|r`ak@SfB6&!XqhUZFEhKV^P) (69$n9WK6*n1f=RRX!(Y*#WVrPT7v}1X?(z{x=9EV4B5d&Ew{jxnNKtdKGGAftG!eV}bu6#n;!{OKqu E*i$V>%Q}azjMH=efR;BYku(*ISO9Hc;#OHw6M74L$S+`)FD2Kk?cv;XPq_*Wq9 PuK95u$FpH58V(WOuk1HA$tZifp=sJ#e4VJ259%5d}IfTN%|?QrPF<;5DD+IN9ngZ)rLmX_n@L(UzFU J52GD;ZWwu=BMoyBbQgCw=#Op?*ivztlcic34{t-^1D;WqmdXH+%wVcLWFgJCJrqaKJx>aORQaz9P8uhT wpI71Elve%uEL0U>IBWL%Ft{6%2}){fBzZFka6^wjEZ+h**^*4MVr*KJD{bnjXw@CTVEzG}vs`nl&pP yFJuvABWER{QR(f7QT0x$KV_NIxcD0nIiR<7@WyHA(*MdEe`}-paBbB2@kj-e2coV{FLPdHFYC ^^k0z#`M}2hJg5;(#2mA?;MTwgB@f*e74JX=@yIZZGP;!L0b)@_p%&&omrM)3I>rFR#q~=NOCpXkOKC |p1j|PK99-r6^xB5rHrL>iRIgB-^{VRJ(>&3ITYjYCgHDVfkkRV-rU%Lb?u{?tiFAyeEzUFyC-zvd84 U#acy+cQzAiot`$4Qse39g=ItX}RpE(b%|Yh?ZNnR%wWl9mpEp>YjQ76h?FsRMY7_v6DZb3`=T?1G#| Lr%@hGeCYS5TY-v!zU8rbLQiOsZz@tdVV@A^{En^cLydl~ _bcO$$RTNK~(9?+W$f}wkcVqcj0g&n7f-S8*xoCoq2ciC%Y=v!p^qpLaCt8BacA-*$2w%2#O%T^0j4G(N{932WUGnwUB;(KtdvkD*pSsFE0C5*aldMC>R|KRhcday<3KLfjO{ARtR<#TxuP%mZS3)hZKrjW%I1JTAMY= FTJmWjtyV`rreX4qI!N{DGQWY=yfvCuSi59nCv$)YckIl)xPP+$knXxx_@Sib=lrJQ+t0$Ss_=>)?8D=-O9-Im}|vS8UV^BTOc+Glo&Wr`+O{ON0QIOWu= 2zK8XEYE9Qd>gUzEW*z@CnxQC&--ix~#oy&uw0J<=F$Yo(y=Zeo;yjpbGtFV_TKdu}K5;teL5vuw?pK 5xt%9(qVCrN7cS2dluOfhiaY%(tileLQsiud~FokFb7yQOGwvIt(2d+y}L+QQ~1)~Z|<>)|<%%X|BH4 Uf}I+9P09?(I4;&Fk!}YnBha@0LPvLi;l+s{&Yq2k@>i()^fWat8Hhf-^U0i4(KdDSe4KpwusX-M^eB vsXy$_vfh>6h|Qk3?$I22J19#!g?6r@_Q6>A?P#m%ZY$)El?Ii+tNB4_R^oQHLy7qWE2RZR*#jwx3|7TP{chnk4$Ebnr>yjupxhYQdxA^J|~yVHBHPNP|}A=Y$P-In(_Q=c` `T|1IcDIpIPKR+e2bv*g=sop1p&$b2QOMvdRruxduz&s`9Cy1r%(O0ENYj{zT=X{yPUrtEY(DLOn Vhy0iI^=gWhDQ%uiL&yQ-8VVSLF2bpMGE#Q8+~sC`2I}YQiXL!%tfTjAI0aY(Q#zLE@kCiW1~^h~7D= TbLT7Z+rpoig@t5ptAvxJ-{UQ7TsMF`SX^P4dUSM_LZHzgX}@)w)+;063APF?mZb~!#a4l&x51sT}Wk %S-0QFuLPR+VEj$4-H_devY(knPY3nZH7(i|e0tO^lG0*?UrAI~S|d&)I!$u^H`n|GA%IpB>JB1R^`1mB~e`f^F52kC w&z8v6yfEQ?{-T4q;*4BQI#yPe)_+U2|lnq{>GU-p~bvy*AHeHib){rF{Y`F8f70?>bc_Wk6*A3Oa61 f=%Q?9^*{gCBsE)u%=C=@Y}b<+^ARc{iGh>%}oS6_+A(nvulY`CQ=2xnG_5W}ZU5AW++k(!t15fMuiV rgZ2vFH_uVZRdcx%XKvw|FnG(jpHJeR1Br}@`XbNIox##*3T!uEytr2zL*zqI|xDHSAIWUH!sI)39K? cb+-1M=;0a99d(-Oi~Uq1$A((I(X*la1pREBfcr(BhaKd5(CK%3=ucbkqfecz7Y3?_QwXsbXIKC0LCC ^k?ho1|VX=_dArj9&;1eOXv)q{(~-K|ulL!XHRYZK1o lDPy%Dy|RSd`&^DzAG9_p2K2$SBU35LJN4o`s4~|iYQ~`(;2w*b_Ee*^d5w_I=&iYFd7Z6M!xD-l*CZ -dbk;`RE*bn1cD=$J+Wku0RDBoI~YyVOk%?r&($?jvQX>n0u!M5Xg9MD4$pqMgB;z6|npl?-Yu37+mW_)ghe8k(PzZlTK$)j4nfK?E0r0nT2A7zArYKLyT^J+RmNt>>rGh8Gll w_Keqbw!F;MMjFWTbq+kx2zrbdmcM2@?QjA0AxW^jZY?&6cVoD1p^qcIAo&Bq*Uzrm-N!|Q0Jt4P#e> g$tw^A~8v;;e!mw9sAhgcR=+x401wG-F-}Qtk`F3&E*TuVJ;? AjQIf=|1b@rC4&J)j;M*AFD@%GZcUtJG`yxf#xa=xKoJ=#Ych2^^} igz;p5^GX?socAWG-cUuEcZ3yzd5J^hVl} Ut(ACj0(g&e+-7u}Q$RW+~tde?BU}~fwIw1Gze0tcdvW!05Ct)~qooFtElikM@v;F@A8#Y-94L>?YS?1W_;ev($ZCcIq=d*hkJYK`g@St{n58_7;VEm1Db??FK(cJ;YzPG#PJT(R>A1`)KU+g*S( i>2U19Vnuan>e3I_Pjp>?&1mAEWPvU_BKwjB5{(<2Ck;JoX0-@kQ%_Hp4Q~Pg>}2KdMA)ByWclq?FaO X{|0<)d|DmnEoUKo0aQs1D>GsOU!7}u*V;>zFUbXBbynGFy&x9mV5lFmJc rsh;dMg%mO7OVMV$Ub4Lnk49;wa8+3Rv3G6B`n-K19vS#?`~H0FuCn;b}B7RcXNBa5taL#Xe>yR8dZ6 r^M#z)`NE5YH~Q&r#uOb`|QJ5R?#@g-);mMVUbIfvZ$! }5gemP-rtQIt4m0mZ~rI^yd|qP>H`v4`!m$7lQko>! v*%4{@##^du$2$~x(@cmdeE&KQI9s4@-=pU cJj<|VILrWe|IoV{))MyytFsXwv@@vu~-JwvM^y7U-6llCY9Hh$4Kt}GkQy-0+Gqs7TeC0ibCB8aV#< B&m4PCjow^E#AZwk)SZbALcn5F7Af-vJ%Wj#mQhy@27uhr3eRZ6%!<4mI`)@Lj^u{vU#sQ|9U&QnYXi7 ;m%vps4KP0{u3U6M9lKd+R|rh>YJZ1eDBYwW9ZD+)Zn~2OYtojug2iHu)&S*RTE@A_Ivo2 fQdo>;p5&u^m3i3A{3i3A`3i63Vp%99~X#&M@n1U%3+uRF8;1rGE5VX0Q?KO&^pGNGvo51&KbM&5czJ =6VguRQDLVNWBkA5eky}br`J00S4hl0N+uP5nVWsb=&bWHqRp!gWdPKCS9*j~ZFchS@6J;5CdH@EPsf gRyn@fCR&t)tyhVbHsNf$Xbn0sQ9g(s%WHb6}g}Al{SVw~(Gf_Zx|@y@bBc1)+Dpv+Gg3gZbb+kTd-2 PN26#S$}jWQ18KcPbo+6CMK7B`=-x|{wK`5{O29Y`fG=>myLhe_Mdhr+b|`4l$o)bj4j UQ?mA@RxhHa?)1erHYHi?ab{h@`j-aeA7!(6?eO=A3Vs$p|Dt %|e21(R(fX)VSVP(sE&tL1Xsv^8RF%74X5E~5q=3Y_F985`H*fVAqn)|muzQ!rM<1suT4IQxfDc``7e8ifzO(UnN0ktclf#-FRZ3r4B^Je(!sja_CTxoS#JRQPpEVG7FZ8M!ECSv>p-r6 HMF7qoH&CW!;qYN?9bF~C=o!Fo@-7t&%=p+9d7zFQEsPOL@k&B8TVWdLQjQ*Ibd3X5jdo*OyqG2CJ;H e(HhOR2Y^`%b+UGMV?~QS2l4&wR?!C4u6jAT#gX&;F4x8b7*S2r%UfUqtIs6P`)8_BM0Eu!TpxQddu( 8h_k?13F|sKNvryh--y?%*(un|ELzLlC#&v8omRs3A9m?Ak=dpFE0djt7TAM)abL_7$ls)5-K1tE-Sz S6f@n(J-e80kMW==ZJNT;k`5Nn J>GxEJWp;oMJ&ykeRk%2NdKD-4+sM^#%0b^oc wg3XDy9A=^5X#} k;IiOsyXEag7odujpL(Vx=oU`z6DR2{$fmYG<23py> 0=+;gY6h*!xSmG1C^M1v-RHdA@@-GU57|NW`cb_$Y*EyVS7{b23gSPi#GlC52yAv5dzx}{pfK)l6}>^ R|VZmBE+w>Lf-u^d-HSp*2GHTT_Sat9zk{n3ig)8ir++!E$-h!XB6JMop&X$aECu}uv7bB{5>}f-|HI KM`|2y*!I0$yHuHJZu^D+lWQY3M9S+75jmn<3lGnx6nje&Lu1bl~qUjGyW{m>EeuVA 1Z0s(If^kTQ2v>ym+UkO`VD0gBYiD9|M?J1v4DMoL=j1}Qfq-tfeIt8-wb9q&#lvpFz8yYB$u`9@z^W`9`A%O>@9G#8wO~np6yC}Z)HG~+S7J>>_qRsv3DG}#a+?6X)b+_1KSB?$llGi+r@A{e7 h0yE#mN3#)I08hgLgT0IJjnv5QSl^ew~|G*kqHY-_-@|zMg^KVz}x9e5?P3 fxLitKVORd6qU`(K+~8t3L+7_jECD%RvTwy2Bdp47iRlHaVP+Ero7qWX;)gZosBP4JttA2M&pem%q4{ @))b`L^=9nJz6EtK_wx$+`7X~RMrCZpdur06YnlSJ>y+`-bZN9fjoIvR*hX54qZD_xBVPjmK|PDwJWp$%JM~vbTw7)2E#iI_=_g}xGjM1M%}vYX LX2RpC`*t`M!`1LC>Ak3w$Nss*dRxRc#ygeY<>Nim$9?Z9g`&?6))iv~a)Qrj0r)unWp)U*uM`7yr~s dpRE^Sht*=AOmT8$HsTtH0gBx-c13UpR(O_7HH74^59! -H^=Vt+ElsQY+gW|L??2w=kLLtf`%tE%@ztqKj^J=t$7HW7`}JMXw;#*m_S?DtxG+*>z;>V3`#s(ZVg Eq*bwuq&BL)%(=(De~5}NNiqjEfFUUj&@I %qOwp4Ew`!>8Bd5GtkctV3)%BZ{e<$B=(fr}!9=NI}2A>+pK84oyf9Ea@Ylqf4|r2$%t%?rU73DRL)< p{>oa=rm7h*F4!c$atH-e8mX`=20@OLsSdLIOZ 5#^~Hq2Qhsk(Q1JT;vR6-v+F@q)L(I0CP&ftCqooB&N8U-B*`7-*s8lVRV>dT XoATO`o)W0ij0lpCBikm79bb*R@QS@R9=3<$`0NwxRbms`dPAQTiy5DH_eij _$*<1bS70*0t?4&LtG-hD{M76V)k~O5-Jo*7%?4CZ^0?%)T)+omiR63tB5jRJfx1I4(*t5!r?Z=p;>? T7E-3w6e;qv|+Kev#c06ytzFXqAeXp}AS>A8l`M>@@)jIyH`uZPP@Y `VePZ#?h2G9_+g=aK@LnH>l2n2sV;bx15qG;C>*#H2F?Hp44-7ATsdmOWqQ>i_6!KmNibT0$_LJ@uM& 7pSY0`+d1*+V9D#|h{={X)GPClh)<13~QTZRaGhZ|nV8)-K&MJ^PG5=sj)+efLksdvr(zdng9I6Gh0^ f*GCeA=eiDZFpv%g@f!Fqc8O=^xc_>>_HeDzp1Ey*?}n(dyxj^z5)X&H5&KuU{6HbecG+#eFqSL9U&M HwmCy)`6}?L*s){S_(|f;i&aIL0XbKPuf?mav%9Fd;W+k{r>~pi@Hd~PU)18MIlQq2Yt%>RuuH14{>j `WF21PLy$|BptA70ufBh1(LHji3JwSssOMB|hm!Qp(UfcG~4Oj5l>3+E6pRXABr`63|=Q5W%esk#xj&$V`IQE2!TE?BJ1#@|}^v${QY buO)Xk9j|B)V29c0)AtPC{h)t!O2By34h~J=C#q*%GkYcEbxZ-POpGs(4Nzkp4Ve?ujwpHz!vf5|Ftl 5Y#+}vEY2t85Azh52Nli#}o!S2lPBk5)`M3(pKm{j@3MVX-VjrnwcrHQsP%ld#Qkq_z77(CkxsIXn b*roySk0<#QJU(`tKRe2H^x3OtCv6EbN5&?t!-q;rjk+Z;fx(w@!Far3qXd(!9T11giM`>2E=hD+Wc~ Q?ME)vM|I4xAOUhAdRO%(E$%b9Gm!>u5&(^PjC;FaAqlSu2!SkP&dgnGc{^{Z!NGu0H_N0na6PgCQ>1 =|K1r9a}s?X=WGGpkyJiWQ)u&^1$IOXL0I3Sa#rlFEHlu97BlqzsuTC2`=hBcTM!nwhSBSu&2-u|V77 Qxp>pD8*AUt1nZe=1Yjy$n?x$y0_ssCBEIQSPRV9U_yUYn&#YjK%CsTaQ_;U7-di5MIe^QHdWylzvOZpkh^zCt;bL&ksT<}pCY5d2M!rd_yn3G2UDLzD5Ii{qR%%{m)?B3Vq$v3 DtVF^>b6}hv6yr4c0ZPW=;T(wI{gDA%bV1BRsM78$@rK*80Ldh40>vu3<@5rXm4MngdnPc=J)L`xMxg @7fnW?adlV?C1CWTm7VtyzXp_4P%qyw9nO?fgtW7Yes3+wKpwSwb?`kc1_o-PT-QF7AMiHZuWgP&bCz a$mgSx}BL(9dneYzDXwqbLR8*I4=DQwDW>aH{jaENzGSI CmkIvOyzUce_6!QwjeR%1|NgTm|G%@)H+BBMxybiGjiN}Lz#xR)*{vuHLD;7m9E#WzH!!l(jP@~o@SY 6`-v6Sv>O~msiRhg?3U9#Z^P$e_Fi+_^{Td-gN3r=Ys~VId}0>C5gp8PwI}~&xGl>>8VltQUh_@md$!^jqVlr+d`#vk`KQKFA6bsgOWL rmsg3>s!t1wD(f{p0L`je>%rfSG7g;3W2%4GZ?%lM8Rnjy`LGIGSm-_Mf^)3SH{-JrwwVP5E->T|X%_LqZJMV`-v_28sZbkVM qEzNxuhG3s6+5t0V%N-8tC;;9O^;5QV?n7 (EZgz|cRXN|alw4o6IhTB84*J6BS4y7N_Ep>*&>hc@hk7q4_&NC(?x9h6D^>)1V&sq6o3XIr?2EF@3on iA1cdM%re!fdpJbu$QIu#4p|nAY#`0e`el>%2Mm-J!_(M+5p-zt|4Bi+J#E+8wd&pZEHU*l@cq4e9Qe 6?JpXJg>lY%G#BR`oYe~6>qEn79UMf03)ay@Kfx8MW&e}kQca%A94|9yAn{jdTfmR!}_akyL3v+%FEo if0mDWxZPzfKi5pW9P1|vnAU6%D6go8-3IKm=P#9L)Cp*-l@X;J3K%OVQBowOG_SRZG*2re<%>e(H*W L>^;&}&o=LgrV`SQFqVx`FqUDb4g62ZzP?aHM=N))tlA>lr@FNAk?rIxdivc>o67#C*B5=%S2sI$wO( B9CKb5kz$Hf@-bruVe<{(qap8u#adbn6o71&)6)7WHcZknwe5Y<7n!SLtZ${08+0bHK*A~6w>8^Ojjt t?}~7DjSEQSH8X53-A?1p`?C+a9D#s%g6RA#wdW0$mg4fvK;3Z0xV+!+5_E(MT88r^g@$?pBO5wkl32 _&0gex*t=VYS&v;)5KMzpo6q cKp%$C=iF!#&N?AFAs)Tzr4M_86FA$>;_nO7&_JfX4&VU<;9 9~5E95p3HE~H2(&N4F?M68R#mY&ZM&MiY@aX_kRPJzzzim9>N%7tI}s+@6GW={C;{b5S&fTWcy*p`xcsuPN-OFV#xeskZgWsuNsPCXV`XZx!4dgvR8pq!4-Qm vR+EC+$%4mGgwI#@&+k=ulvj!m>_WK1iMBg3XVYst8_LeB#`9?4$u+jWeQeQ 7M%vyaydpH)t3qVY*U6cO$Ze%RFfZAg>bI&EyZTa7Tr}zXJ<*R 0#Y#uy99(z$dU!Fd*$GSeQNaBlG$Z7Jh64{vBAjqe9@{frUFN1pXE*-1W^~pEEvyZpMmBt6Pn0&6rIE=R8$K}xt^f|qdhAf7BD^iHa QF2)+f(kuDQ{KHb+98#MO19!;)E@@csp`Rc^FSYFv{@81znz^ej_{-)Y4CAWDqwe(+FD0e^HGc#AT=h A9a7MOxe*3_5jGaxQ5WSAAZdg{CDOV7@RZwK)ga*AoXuzM7J--q^JG2B`nZ0c6+t_vV^FFbY9PjK)wL*?yt;r@YzZ-B^Rd JINIec4FFQYVo%*P2Yxk3#Z`^>C1Stxu2TrEm+=cc?#`X>2$c4Nl;{04N0-xcJB3-cqiv>f&CW7Z!2w v9eFqT(7!U*$XB{7@lGggK7e|QqHP8|`DiL4cDqf!MMemCue5AezN=g&d#sM6d(0odD?58^pX`+2%>~ f#UX8({zl`LGor^(#6HAkv(d%E&yT8A4d%&-XIiJ;X%9mdo=hMxK j_!1>MWlHQfCizY@)|t@01HoO_)^j}Hpqe(yH-Wjfu5 #hsnV``u9e=6+~sw-2-ewO!0rVjH_>?T7^;qAEYQH|nm(%eZam<}cqR^)Oh;L$_xKyygS}Ew=TlI59g &?Ka)>E9W`ySA7YoP|O37Y56A1it$iwJTXOp_}$J|!Cxwt>jBiJI&C0Af$&>WRiC sC#MHk%7TU)6e5ZdPCp{~tH$r(DPt|%Qy(@)+YmjLFxxS8k6uEvX}b0&D R%J2k?{HA=$8NkXd__cAbuf`-w!hO4+}r+4Y*^Z%Jr~Zj$rkaMbghB!S-_)1f4DJ91_a3h=D#Umj`Gn 9$gl60S%6^;XA_0ivtc^8}#Hp92boG?FlNNxlqV6riY21;H8S{lx&~gA@5XY!#}B_-xcffI6jjTTDE< _WI&`c{4-3^Xh;(&LuhSv#8SLo#*>k{-ksZ(V{+9>H 0{<^DpYn_i@Q%P?}pvorSnCGIfw)r#d$)oVIjBUi?*l6I*d=UV6J6&y*s2Jc!YS5hn55XNvFf#g= zmJ!2eg*`lrzGr!XIdH`s`6?>9l>7>?rzg@1+{ae7CI$a`wzhVXWh3%otJ-m+Ly~7E4Lq{0f0bNAws&CtW5%evx3;!OGJ1civn}~mf8#i!>>=m881uWkAygOYe+P5U+ euW{vqtab5_s!>}sGXa$VMYAi+aAB$y0CX8Dy84K3-UdU@7@i(hLpM?9spE^90?rP $kCmtS;1!7Lw%AP5U4fk%7U t>HSxz>n!Ds1}zWjr)X0S5l)ePKPHehE2q!e*kCq`C+Pr`lSp}4b~K%F?ef^6~y5kXuftU><*{EFoHb GUz_`UH>3YZi?9z`>OrhJMt~E`V3R;&%KT?tke9F*pUUI9UfDJ#1clV4ckI|7Y#Jwj9OMCeVAHV(vNT 2ybSs{{kmGNLYzGya!1jVV?egs_}5ovw-KvyWj&=obiwL@d4}Q(yb xI-mGMHV5d{%y%=lE5+$NipWdeI(m=;1+KR(DZ|p^;nVACNjga=&eDqgrUeeV%_HkGxIUDEsBji!%eJ 3m`|qUc#iozK#xC=2FM9mp8~4ZWKHAOx-+x%duN9R4$ql|$On!dG&rNMGNfHDBlQfB97)I}IAR8z{C< GHQjicnJ{!-ZvshcQHv0ZZS`23Eod;Z;PhS{iWWc>bL8lbO*%^`9k|zK G-7L>nr!5EBf}M+Jry+J6MkQpl!O3w||F%pQ*+k0WoR(RY`}cFq^a ^u4*`?c^CI@8Cf8R}%BT7$|LXcp=}|H})~`_F^IP>)IX%7iqfaJIb) {9)#*T3oB!N^qFyWGDL_{0MXI71skS)e^CGS;Md2#qU(9qs}BQDX8K}zex8A!4pywL+sq{8U)wF_M2b YZy!x{f`pLKMwY_;wvsv4y1ZR5*!bj(a`qN9;9{hNWnSXukdwLxBqj!knN`!P$gI6~k^&5FQ#Rhj0A? rL0`NNWd`8h@>mEfPk1|G9rN9f_E4y!oG#bb^_1&YJvFgvDeoeNTUBqIC};XZphPVcc#xCVm!Y3KS)K s(cQUS?Nb=u;}{^1>?T$W>YmLh#fs47a$eV$Y%CRWP%`R$ro}%ht>Tp%K$3`EeZD$g7n*s-L6d>#2-- 9=6h}#R=kGJv9)_TjRW;-nC2)HIH^MahEf7R3<>{UfoME$;dmEwzTL16JrM?ToU96V&+{xsdwmhiq^* MZ5Bc4N>i1U-gf;$`2+C!w$}s3hJ(pm(hKrfngTjX>WrB #r8W*4@qjY#xWf3K7|H$EceOWLCLVBNe%hz%7TI^Zso^`IzUSkr~?38{B;ijLD5;a{Bz`n%OOA=5#j0 X8!zy~uZjunl4J$b6Z-2QA&9N2+mf7ss2`E%hkqX_cmKAf*au>Cik82Au(p (;b6a7{J}a_`&DO}gqXvS%(uFy2?PE@lI)1AKQzOz(9EL%%>|{RCx)OlKv$h^f^+Z5x<>b~WjCb!bE5 gznh*=kPk=_$l+(O21u!M=*2NrFrsw99)j}97N%vQeLqD)<#6;PgG2v%XP5E>)9=HCWvJNuY=Uuv~Kr W;}p>I?0OV+N)?vZPwDZ0<9Gh2vAoZS@vC}1mHjg-;d%Av1AAD+#Oe7j3jDhOx1YejIr+CfBl&U}2}7 bAPcwjSV1!;d-tcBU7X}$WLghpV2?n?R_3l0UlbldY|FEJ*?8jh`O-K6*UuGcM$_YBDI wH&B$Hx9kg@?Uz`Vm^LFZwhS&TE3}4*~{od>R~W=GCAzb;BIwl&_@hab;Hn@ iyY5J{m*j@F_GNjeA)5i(w|zixzmnYN=7HfR}q^#1`V7rI%EpFuMutTE%Q2cv>(A+)9 23iMKPn>VqVVVW$x@T<7wkGr^xmlkE%L?K7;$s9@-J>+T>sxxce&J0M_pr35pB52 +#_OX=+ba1cIt-iMnPvVl~n9~*Y*O$8>dYc|os*}MLcI20z4Zw||bt^kKPlu^kXgLWQC^lmo_zyeq=A ~Y>!7DwJ&=~iG>vk$e!qqT5y^9_rJ%cYmQCuNabN&euES}u5OddC&W+5d^*HitHwPQ%nRP{1VC9YpAP UDO4?9SUqL&&p^v;eB6B;Nxy%{6QSy6TN7!9kti3GKQ542}w)X_j|0d%=M1 xXsa>>#3{OTMjH2H<1{m*XtLEHXt!=D`3F^IxY3?~p6LMa@hU~HdYLqXdi9772hM{xYp1bRsC{sEhOM&8b#^qc ==)Lu_X&^r&K-!3Hk@Gx@I#-DqzLpxieu)Y5T#dcjArMuYO2wU{lwR>*oJ%?svf_nly+XeCV5c)d`x7 SueyC{a=gT@f-ZKxi;)9}z+R;PQ)Cy91r6XHDu4Swf-klo>6CzKSiCvmWMD{Y4EDjUc5wiuZHCzbqBS %-T9Jq14~+*!77KChA?ua1lrQIEca2;yIi2-tB~qQDPQl(+fs8JLX^NgmWVfjc&-Bb1w>`Jj4%vmM_% ORScLfvB}UvJJ=W->{ox6UJr|jc`Z#T5rugq-v=4K$B7nVPN?NK#W2G;p{GM)3rMXfJAs@2C acROZ;x(NMh;%>-41O!xJN-nl%G&bUG7$HwG^T7+7({|joY*vg=?+FCrhqm{g!6txX#H)2XpOlZmU^D %3!M7XA!dI5ceM_Jx{LXiE={gC_Rr(sw*xj#>DkcaFC-c{w5gfBQPx|!~7bS(9L}I|Y5=h;9b-X7Jk8 >h7JKSleuBT}zJ8HZun9A~r#ynQ3PGse|l$W5A{Dewg=k~5>@&)sO8)BZJs&j{Hf?ej)=V2x?ocI(DQ H)rIag&L&0fw}{idGMwC%5|9{Q&qd>i$iz{HOT0EywP|Jn`L)&CM}W%anA0$8~{R@%`Erb-J=FBXY*< vR`h@{1W5Q`H*3z;4DwdklZ#M>j5~abqllTm3~Un>l9t-i{joa)7kD9&%}~%?`tJyb-#rb)n_pQR6yG tYo-zyWIb0kKZpK`=@h1u=8Kf`$_F07)jCuy&FA|7`!1Q4bw2Tfh0-c(C!C?!U*}P1Lh`IH|)uvT` Xc>($MkS6b0EO>OKoG+)XPtSjD$9sZa3|p>}B7&e}k6uRMBtJHgbhMYpfvmw@2AR6KmgH@9bqh&`}K{ Vsz|zxD10!ts|uU+Erw#K;}Xx4Z0h>BQbTn7xOd?{fByuPD4fca-dNF*dl~ggc7vRY)oRURk(5{icJ_ KWDJ5UA`^EH@v(g;EXi)iu4fBZ{0jNn`iPf$9SHhe>HF6ol5v<0@|~;vghMBPg39*J|+jBQDzM& TI6}BY(t4jYn>EJoNK7a^aUrO$FJtovhd(fDy4cdFXOrCq*2Y &at|ej7r)yc%=?u-ks@Uqu|u0<`nyU3~&dpo+zAuiSYbPv{ZqgDq&RO<9Q6SnCdmh#~SY%Qjv1C$=Ei if*L?r%T3V$E4c#37DR2ul?T@{i|a%%%{kX-@ZdodY2KIuri9k;&N->a2Mb(Z{)5)iK^)CFIbTHW3h> aVqTGv!9`jlc=rF^4e-5I{{eq8(Stk{Cho4?)KkK`#PP2cw@(=FBrmBxc60^L33OAKU@}zqlE0(?vNC SkY`SCcuHhoa9el#-RabC_xWN4qSkGgL+iE|j!1r|GRhI_lOX-I&lMb-6Xi)GEBz{n@knhv+Tvr{@2k>&PUb(pMPg`NQo zZTs%z0l{*Fm}FDxzfJKnPGD^OOWyhR5iTcOsC&ERRaTavQz!!E*aV=}>ICNb PX=Q@e|1SxQTMe2!TI!1vBTQyOVyh~Wn)0&^3sdiKhf@xgsP-F~>GLEQO;amS5|v?>F8O2Cj+XazO#- rew^gXobjAbgWb$HaQs@sW=udST^>Y(Yb?2f0fe_l2>?qjHxmqo0U}-C-d4@-fW=PGdNxiWXh?bwyN^ c#7j;=CA#j%U;=>hfZTIF-D#ZLU&I}xyk71#(K}xcH8+vWfibcR2N(^_(&#~h3A8__r#A{)K59+>S5} (`g|wIOQ9Ux^PQ3Us!&QouJrLjiw(s^fFNEmu?ob?qV%Wapv;Bd-C_)k!+S<002A-Oa+(c`0BIB@~4rMSU2w`i^7T&Swbi eqP4)ba2%OOiDE;b73!wjODbvrURZPey=}ieYfuz;1AK0bCYT!6|~LqMM+R6uK0;DK?Dpz2ub4jCMyXXp-FUi&%`Nmg9Uv11|lKoQ@gtm-US$*{qxH-3iNHFw9C0 {_q-(E(?xg7g=Ck8De@^}3ei0)5J9`vL*B!-khiAW)ZZo#cN02f5A|p9o8`Q71{*U=_H^oR7*q14ijd y*A^wi|lW+frZ4K1hxDz7w>yx)p=03djO~W?kmc9qP?&fy%yDS^qvmM((nB4OpG_qGNB7gP__jkqwso xlrL(7k9+W;5dOr6!b2BonPkk1&?MtJ@XV^a2b&sWAI9p8-U2&9tLY|63;IM%=V^X;2l`x4LpHWYPZO 6$)Ff_&c8#0>n9Advo()c`*(=TEE2bGiI=GXR+Lm)(Hh^wf5O%Jlorz}>iW+zXSs(F%6^$>IF5yRAbY =7~e};8VvK=`oakzrhRkIu6RP$>O^>H>C*2;_(R`#7pIn_)Uhi0y*6xS=L@ QFr35_qRvO_1>OUMgAx?KOY0PFEKWF`W2!hK0>sh?_e$=9DPyWZtd2|CgI~DE;-xFnbG~lB0gFPD8W^N&hO-QOoL>w7I1V@NUd4w=k!EZWJ> A0TcGWl>*>Tn$S32zGdRso*wGvkv>Z4{Q2d(3i2)G8J7GOdaL_KM22g`2H~!%$1j@J8)=wbo;*l{VyX9JCcs pFxR~kI47sv*Pym{5(o5q>Hhf+2BpL)XPnF(x*G4tnolH&y7SzW(0PWdii!^4}kOJUo0d_59Hol`WLy v+|oAoYr=TKNz%Gu~-JgaNrV7Hwkbv5f{QKQwqi@_o=%!qgO52jZo(0~RzfUfexBzri?63 g|fbz!mu*UmhU{Tt6EqPO(pSJY@-q$vH_JE$^*r$^S8hP@W&D3*G~(H`FApn4-KH9X71>pZw5ZJn h}wY!ndz7W8-~l^tN(2~@3Qj`wG-lC3xS $-x+07$45k0@$zy^(PA^);e8-$-#gR`c8LL+)D~801;hGU31vA1(R>7r@=b;EZ{(xyw4yUFk7_fre-Yai_v1}V5cMO8osU`J2l~*uwsVdK9hG5yhsPj1t&JWgNyN0>PQ1$?F_{ 2cv}}$;1K!rFzSF&>@ulVR|_5^t6(GB%4Y+XMrs0f6CDAU(lDb hI7myBYZdqdCkrV~e!QuRunbf-wE$_l_r4Q!+@kQA#{a6lrBp%vm%|G4&a}=UBjsu~;)?WN)clcmfzh 3<#t3n8xgfR@JC=$Xq9))29z0oQd!Z8%xXchvII01iJdI7!p2ny}7r`?M(+U*ab_&rf2-48}@*Qo^G9 ly!X9mtVnHV$_oAEfa;m=(SYKDIl&Qw9Gd{#X$w`YXq=!VhET^~X)by4gG HMh^yT6g$=J`7h-cU&hY+zt}=qjXVn#bN;9d<6Nr`eHf2+PsLS;b+-SQVCw8#2+&IgGI;?qD*emMRGw LlAANuKQKw%z3c9EjzE5rW8lnfj1g3=TVtvu8q1{IZYTE$hMQe~N4P_q7Rt>?Myyo5 )gEYhLr@04U+k)Gu5s_vI>43e*ewPz>QShf=R`A>RW%rgs%Mj_+rksL6o0zMoVFv*a|KF**yv-F9KBp%G`7cUxFm-^5OCo|6cU{y>nrVO4vs^9!4yRu?9t1n@RIVs;)1>(--m>E4#H c7Hl2KMN5-)APr5QhqJs!D5w@kxHF Yw1L?`_aB$cWN!B8KO4Q|piD5Deh`U6yew)Af<4{)M$d;1#WShG2UnJQ!3L7_V^cjgHO%{zM U+bKPI@+IzLS2`P&57cMIxI6I@HR0D`;Oiqt6K1D)*cv_BUolbqgL`(r ^L48&9r7C#azHI9DEP=P$!$b0tJi1w)PmXAbfaEO_26yRs6r;ODv}J;vB)y*UCq#BS$`DqUhhxqqPWq tNbFV7W!ZNp$ks7&@O9TM1q7GWeJ9($*3EuQEOs%Q2hYi7ke}rj6!;L( #=7&@f1hKWn_Qz}CGk0naxm7TFP4%$v#y}ey^x};wWT9#+??M=hy2FnQChWD%F5R7Rxr*Y^vtbIfLGh@dw2m^7?<=UU7f5|AchE8udTb=K4tTz#u{EvjbG7b`8xbuZqDVM~P-m96qZl6?L_2VOjK*dVE(N f0Ogp^b+gp2;q$=)m!q?|XtB*RYFcG^B2UM*2+Y4&f(F8Zu5fSAXMl?pawTf#^09rGfPM$oP(9DyOqy o0E$2q@jpQJgN83Gnve6rKQTc*Z4fhAId>eXq|M+K{u2L1KmU)ugst1Ipf?5X}tibwblCyk5Uc0DiC; U8MrmSdXiH1z9LCsqE1zy1$y_d#Yqxz$g67R6~4rU-(dC={kQI=r!B2>Y}Zn2z`A;Js*s+{1P8duBvP ?!CJ7yWTb;_PF65DBPXCKCc}P_b!dyIw9MGa$&qj@~AUW9`RB?Rgr`vPTZx8s5WyfDe DENvyJ9(ag;CLMcapzmWrcZeoQqe7l2Yux=U1e7o5%wJ(lqhH>Kjqtceh%%rb+x(bYgtJ;rD?bqb$VV +{b~xVn1F(Pm=IMmAt_b?AQ*(4(SA@=~FzfK!zAts5yq#9bp(B^0|g?FD>Y=@&lEFn{RlJHF<0#D|j4 gIM8lhE%t#9sR`s8l4k-`FG4dOm=CM=-1-5YBo>Z!4pp7EjHuM@RFTC46Wa*S96=#CK+fb4CxZ{Rrb^iAO^cYfW9>Zz46 x`%9j62m?z7!6(Y9jhb5-OG-+wH#aFW|FK7zk2EaU&*-MsCkc*mfxjJe*imo%?_39|8W3{rETc@nd(O `V}rvcm__PnThbrLSB{Ai39Qqp0{iIN{{6XodU8=lE>wFPpNZ}b*Dgj;1@JG-PU=<)gclp9hge_5IV2 pSh%l#y@=tq7kLDQlNfq7V*ScX1LGB|QO*s7KCqMUW}i^w5UaPk8Gp_nK%#~bCm!h8><>)nK2Fqt`hn+U$T|dE91(tmA?uG`eZeXE6 ##?B$67d(z0+VhY;!2kA^ziflQ-tMQZkRmAx!Y~MiV4Q>@il8wZ#y>S8-?ox% ?<0|Sd1UskoO};p!r!|_O6_T`h}wsL5ad6x&$}DqbS<8%iq;t68pxNzAKs_YTxp9dyQmwyolcOPf%>n=fUq#)9!eb>;<3b_FAxgp53-BZYvL|_b! ?2!K!Ud;kF6BFDIfu)?hlj{7SyXa@5o5D&75J;>WvI{5pOM}&uIS(URGKI=?Rg>8+k}b9i0sh4qp3^nPDRy~)NXtS86rUAQlVv~YMc-p6EFlbF!h krQQ-7U3&)I!z7)&x;LYudumN8hpX9r$Y!=@hm^|{LTdu3JzY)iHBJMDOz>@mYX#vzJ M1?_p_<+ejL%DYN&RbkWT_sEtaP=!kb$_T0T>P~?Nk6E)9yk(Km%1m}(iKqWFPqU5L|@RG#>g@W@~Zm IrrIl=wN|K%?Jd+OnjSN~Qla6gF!3c+!B_x>ed6om;0!e|_a@K0+9k~aq8$sU(R;2q{R6x*nH1nuGN4 Sy2kjd9^#XFz;jb(y}kMF#IzY;s`3K#1NG`kOAm-;O~EzT+!O{xgF2Q1zxrHVE9{6#5-P?v}yCewQ%Z Bk>ymZh#vid(C9@F6*S;!}7Kp5pRUtR!(H^p`UN>;tlGzM{#U_KI~mOumN}a)(Zr*Nt!>3g?Mi?Y`!% bYK%&r80{gftA?G)f0@Jmj&gg|Cj;xg_X-XU*LvgEhQqTB)$@^O>~Bqmh-W0e)yJ)n1GbM>e~n%1^H= *HOy}i||8IY!Ur+?=d#C@3-7;3k 2LPcKzFBjgUO`q%?4ba=cAK6qzwiElpk*1&A1QL@owHAnvTVbdCWJKI$0QKL(d~}l&&W*JyM$G=T}?x #CScEhx{NXkCz09C;bRrqqRuU?wQof!}I0!9wK$bo*okB$#{gE4oq&aQOa%1mK8iaBQp9ms<&GR#=va rcY2+QNZY6~L>|qDwi>KPp%@d|q2u0z3%W6@wC~%Y(Vu;&JYQw&cI&l!qSplm!ljwc1bgE^8|VK`D*S Ml@|eZ$%-Yy~t%4UtJf=l?2b{?LAB`W<71ew7o_rbl{@FEB_QJIIj5qaBH@)(HzrVpM}wIX9s6`fpC_GHWWPPK1ASpb{gBUK!|c=`g~yS&zA6xpJ7vYT9p`{aQRqwZ!rp!5?nr9aeNKld|PO@VqPkm;9eY|Nfr!H}CLo***6YyT>Vn#;A ?f6BvR++uj91For{)c35qU7)Rd|l+pJ{=XB4}!h3VTKNED{!M1$^Cg1RnZ+p<^?)C4O6!xC3O1~!!ZM P(oJyx}kb&cKzBia6E&#vNo_x&D<+BOp6cVmX)JwCQK-$(leF!fHvQhUmFTQK~dN}auZNyy#kbRRFc? UI`yAl~dg#P^*PeFxLFleep&bl=vX_c+4nk7I^7b>F)p@f*8OQ4z_T5EHs3zW*z`4}WF%yUEADqsOk! ${+Mt`+*)SQLE3u1~TbKbNmtcw&Cs8Bfsul>)+bDe$65OcYD|O&iifeO1|w~mTU09FR?dX|BaLAH)oL ((p*EFR0<{`qPPTf6%%P$TnAT~8>gipSgRhy0jF*;Tvvg}_o-J!HSRxK5~X=?+0gi;jb4PARrnf9V30 +H=~&vvfO_e1OvP)z)xdn8yq7G{Bk#IhDGWiA+mNlIH x}~NdrImh5v4L?3sfQj^fG;K^##f&JgAlk_taYC}!9WWHzZ o*D(U|Lku>sF`nmfs$=TTUwgH1SlQt@SOV5050CAU#1dl3-cbom`G_X)ngOdp^78zft@v^<7?X|NrCE 593c$?tgmZ7ts6bSA788Z?5>Mv6O&GXs`FBD4K*(3dbo5q2Rq}g+OSMMlq5iQIv!c3W2Ck@ehV~x=p_ aYmn$plp$odKF*Ro2(gz2Q#)Ob-#*LP=h2Prl#N#>&>oIJ-p-#p1V(S~C3Hv9-9O~*+_@(JkR6q_Z?O %Pkl*0nCLWM%w*lFQx5j(0enVm!+9M)+5Cz(Sbie-H8MRS%B7XaU5Ia($$&QN@wpYf$Z!Cwuj1$TBFw F+Y$sgyh9@icJ$n*pMT#gO0vR)dJ;guTVvsn+H8(EC~`}tG8GDW`_I@!YTL$%8GPIik|)W-V|(`T>>_ Kpo-$BZg~Ep7*weJCg1>DF~Re#{r0V0k|lBJan~5o$ocpwRnq;KvhwM4}A`Ke|m3{T=0yaf1&&x=p_w 1NMWuNd1xlD724Kmfh!5n40&q$-=n5lpkJR>;S*KK3`|gA9!!PUmo(lD0fAA@7ww*^07Y-{B#2ML-=D `;-AV~_9_?PYsK+e8rgl#soZ&xEu0%8*>u#@WSQ!hMLuC*s3*OzOz~BCD(7jzVb)*B;b;O$+QK*R&=8 Iv;QAEf(3n+@zENPqLBf!P9n7hobyh&_=yLFRDN2y>%2Gf%|B1CS;Pq?_YS3^pkGhAIBt*6zNxdX`?B |3lTfDIq+7;&I>9*p4aG1o0=F*bz`2@Go%>!uPv91iUmTrrcC3S>)>!?c0DLgWEdYU%0KWWn~j|?(fV^r(%cC35j}z=MO{sL+dNFdEz8nlcJND6>-YHmp3YW(s<|%)MT&vJ3sI|(n R*2&quE4@Y@vE;_~zetG(Q&F*u($jWvSK2t-DDP;$ZQi|fs 92Z+7#gFveYh};mUT1U#bj%X@)q-sXmvMQ(YRfo>&5SRXJ^g#s7DE%m5H?jvezdFcsf%$^t@8BTQ)!E Z0?pRYT3!~50w9=tJyCQd>jFf7w>8YVEAkZK^+o%TRV{W2WH31#%0&<$U%b)^`wqJ;;SAc{VUSHT%K@{I)##7f~(a%x6ec>1<=MaBH7wc0g&S`)WGxyx }ipx-VQqii3d1B&V|MR^PXfe9%X4W!niGNJiRvQSlTIh_mE8Y{RndI>Z#e9>3SygYzBAYQ%Fj<0*o2E %|!&YGR)1LXJw^ehtbAfa@D9q}-SR{qexK-R`{%}AW^e!;S?21NaW!A_|w)k;%kRg%q3DY-RE9mMQz4 E1u4syV_DeY-d#jB^+h ;fH!_k@jTX%yLw~ qfk$_4w#nH|GH*mQjP??f>`R9{{hp4C?R+nN+r)1t$N29Cd*FKpY@?jJSbi^TPjhXnBKM+?lz#W$BYT 8-J98fj2k(imjZnt#D(y|f6K^}bgxvKq^`7=YyoK|gWJCU_n*H6EB>C=361-&kfn{k)9@PyGFZx;H$b VJO&9A;ByLwJHQS-r=JjZXUxTV(!37~&wdm(=>F&?&m%O~GW+(od6 RYQU{;Sd_qdLQ1a$@pitnXuc<38k9UzYvjs)7Gx**~rt_)nI-ulgeu27I0ibKDmXap%rsh2>=Aj4d*a @CxrGd(FpYJw<9~;V-)lETGR%K^I8GScG#Wl4+)+Q5s%f>*Hm{_My3jLr;pj5ZpQpe5sDWT#DQ-IE)H <+Pp?UA+l;29>(-ck?TuBtdq;8I#+o-Yk#(97r)qw0pBNV{WPLWUhrm#kFpM$AvomLMYSKNbHR^>v%m KG!REro%w-ffo`v_FnP1;&lhHFg+b|V-rE2ufpPKCQ#B((s2x@%!dVda1=;{F)rOvBjK3#24^dS<-3# k~lvyF@8k-f_iwCVLtw+Dn3Lj3FI+lF21Y-pv%=vJc30_8I~2ZKD1YfC)YzGNYi3gNRapQy)}COR)5t %LrJk>}qb?mgS$e+lH+}s6 8fQDYZCX1f_uN+e#>+1e!0kAcZD{)Wybg4a7Jh+oGy^u6|*F$6{7f{(oq1Cr)m2qQRlNx3KwUY#XYeY9MSMyG&0O(g6k%ZoqAOQfYX^1@_ f+FqScH*sdf>(~Oh=v3l;dV+3zr1B7H(G#5VMl=%=sVw(mRPI)#NRHXdU{Z6?>M4bLVfqtwIr=Y60V< &-kH^tiPITwElil1=_|TPogJqY4hvm7k6!xN#u-uN%0hbym@luRFE@IpliW>tV&%a2h%Zsmv|0{!CG!dX^b7nbJ&LcRuGYspcbn7PHDo6+U5%fg!?D2{r&`7PWl&MQsY}<}7 &~!03xGfW=0J~9F3vWe{vK9ezX+(#FzMs3|E)esX;j*2$kx7>gqAP9H ZRn?*RvBn~FW=UZ7BYPH1}1MmKX1iH)m2jG0JGK-oh%|LDTS#4uVCouHIOU4X@r4MV#5iy8^H~cLM_awilbE4pvNSnM cFspQXrh2FY(ZLd0@7DwYoKVa_5lW@xM3AQ!WNp8mC_bQm>Xr&BKZ=)ed9M7Z2xy#nA=#5B%#d1TO8J FpB^0>5rqgqtE*ycg$Yr4w;zVoJ!>Vz6j%TPY2|ALuPvVFqo6dEK`5yZE0e9-55C==Nfce%ODys8?O3 2R^Cu!%^pF#?1^;?}E2FIf%mf~lkQZMWwaEo4&*cwS@;dwum%5G#K7wGP3)u5Y*lR4CC nD6->gPCRUPkPxxlU-ndI)J89Zymc7f2;&gWy{GO+_yR!eTC@M<#ObQh3bZWaV9qoTMO^w96M_!7(6D9Q5CSQnnGr6~K{I=}9@akRpx =V6;FL=e@#4vr^$nVoL|LDHXop*AUejAIfGoB@ri$phYZP4el`s-8yT@rp7rdAi;4+d}&&lFtZTSY9s 4dA{f8uH2bU_F7a=Z<96fK~|?ops+QT+fr~)koJpy5q*BV3R*XrW4On#l#OWqA_xOsrD8{xotMS{ZO*gdaExy%hAL98cB_wxLRV5c7+sd?kt>yhsDhcBKJPy+mACg%*N(( (S)ZTmNcK%W&2ZK@df!EIX-ELVoY2b(g>{Gdp23HaA*WwxK}zqoCGI~VxmXRZSa}GgieF?VO@w&;NkF?~i_kJ`wqO3J|(!Qj8)n2u2|YBexy @)2QHHlmhR)U3=%(+dOmAb2PTc-!?f&yhr*_oHYeSO1N{c_w&&d^52brXdAoR@=DSHdARdqmK?26e-@?HuU+ZJ g}ZQW5bk6AE`fPUw&0evj6kOJ2T31r_1UKx0jcMhPLGnds@luaMU$C*3+v!Z(}Wk+(d>b)iObO4d0$K e!#to1EKq+R;!f2+IMtrcd6xUWS#nkNXE=EjoXlOh-ob)%!rKpN@U3;yYsfhpPbgW&FH~@53biI7>q3 k3eFzR_0nzB4;39J$=;3*-gPeuej84$iXzH+fD3N4kJLW>Z8l0r!NGp7k&oe1|(0wtKsis4&F*5e`0#4V7>tB#DVssflPY_agD()igNpiKOqNpPTk}=Od0^li+nA~P{7_t5AtaWs}i8zHy;PW7m!jl f~_Hc-&-c3P!#4W_9cafC*EyF{Cmu^bl_@=+9O!gf3uZVGoW+-SzqqR*Vq8t_>_ Oz!3NJ(InS?Hu>Hx&I_#ne=wAkAZ{+ygv=}>x9Z^zoR4Km}F_$J+CL)1`ceOC_%LxO-g#v-J{QC4U(4#gko*)HD-Bk-c0w%K4UGQG6drqk4gxVR)so !<8j5b1RRu$oFMt*gE`Q{&IpXu=rXyEsIQsQUh(Ypz8_0nuCHAywi3t{?v*RcY&+Hb4nLMtR8xS0j`c |%5I@llJQ{3Jk*yuD*&hj+D(#pONI{hv{OHY2xl6W^j{II(Le`S07VRz$X8*b+@%`x`!SnEjv63WWE# (FZJ+4X+yzrPw-_%yTSDr+9In(Q)#DrGAQkydx0z8pjy#(VK>iYBD9>y%75lc&Mex9~zJ$Ains81Z~s I4z<0fIpxH4&0E+{q}*m91syC23OKSi5qp%Q}v#-nGLm(;H5!b>lXUBt~Y(XRK7*SIz*}50=2j3?qnC i($5WWFF6L`8jl89_P|`*16d=qtGf&mV3;M&NXcea&SDHFHd4;?*GuubGXh)T5Y)a75MU}i`832e&Lb sGLw3G&BS!={Rp?rGN)o;s>YB7<1Pd~>;l$KT7`zhuS_-D?UK4FBlQmvd^nS-`<2Ww7SR1R?W^^aMI_ 70@RfV&q%DaoJAC8iMKgiMyTuo7t7ZhA-pcxY=5XafcW$NBvR#`Q8^AbeSkq6t`c<}WF_odujWD~eeH-#8RP$H`G+VhAYcy`NNuju_^XefAx%^KV^;vi2tcT&SUqRm~xL+=ho@75I|*u-y69aIZtQF?qx)R~cDo*bv%HO-?d8(R &ZPc->fWQxO?2%Rp7SeuuIn6;!#g7f5k!<=MwUQ;5Sd^9f$Z|OtINB)_q)Hrx!P^35PHN@rMg+`4r?K A=R}fxyL#a}9z?PIH1ut``0Yy&eCv8b?+5s<=(+v9?E(t_2aevV0LkC5Tom9PT97|vJ2fVYja&azNYI DWSG#-(w`5WNssQ^hk<4v1`!aXo1slUZ`4sBSo(>OSat37Q8|B#5s6@e9cK^Zz7T~~U*IJq;qwY!*Ba=i VPt7qxm=I>$!_Hmjjy82^>_6I_BT3HlOXd#*|{c?h)==g?iYs_cS?@l$}w>=0K`5-)8t%zm2bBvI~0@ gK$L@g(uSfe%QKcj|_II&{<;4@`ig*GdA=rGv4Om7%&DuhX?rMbIJ-=`ubQ-qBCj=b5 nMM&KB1eew?hDs#PKA`*JKPw~Hr>I4kGZtw o2d$*)XmHvJh;+UvpSwMWT_3Oty`NCVWeT2ES8awsAa0tDa>{3;Zs*tjFu%{OB!Gmtzu+q^*OZd=?lRk4 wt;V)1P^wZtnUF^gVV{?5aO8V*^1nx8rc0ZFR7n;KayQSyX8hwcvfq$#buGG1BiFLp4;f`vkK^U8(tJ <20OCNm(z^CTG-y+6J(kJxAIfPSpj>rYAbrOXczW|_db5C4fsRfF|$|j|a4{rJRb+nAJg1B6Da&>+Okct$WJqZS3{=y)qxxwSPWBH1DxePpGh%hAfk^zQ(Jp+gC4I (7GgFf^<;7GAt8ThAr{=8-2@9+8R8VK-95kw-0$nXmk(H2&F=GeoChuYRfl|f74L?cc?+c(5&wZ(ZVv1n+G4hR =jEONdL0=Pw1+fo~e!8pU#Vuxa#wmRc*VXh4GyBY}ay_w*9mdNGkDHiEZqt^|{i!X)gLHG4aLhr;Y)! K!kYLD?oYksww=d6jIELzT)L*T+Wo?l+4fe#MS97V@4K_BCI&--?>_(X~)q;}GqZ7`MkXRQ`{b{`XP&-z@u!<`4m*6h%-lj)4e?KsW&rBuPRz M1H9uorZ5m>$jKLuIlqHdhE6q;Lh?ls-3<^f?;B>mL&M^R5h~qXmk8l(!k%=jv%^+OFY>d{B}u=Ee2z IZ5b!uMc?FI<^Ans9=6AMgxqfk@tf0cE2hytT1UKBiQhefFt!T{?V&f@GXZ-|DB4F1w-;_F??r8RZ_( c8q0_x|oM7*1=f9NTW9v5;w0}fpR)vKJyaWnv(;*)dp9f9M Xdq#V2!ex+S45$Uq`3hki3u{n`J0m0jteNzTWRo5PkL}6$k)yKKVE9_GnHzr}6ynM2gP8w1=4*$4ox` sf2BLt#2z}$1kH*sL^SI=v`6Q5zdx>Zs4wIjw$JaMgTfET`fyFG-vJbvPwMe5ztjMj(=f1SW?VWUgFw 16jXPzF)(+JB_2Hk;ri-)Bz|=)po#H=eev3Lz@I**j95Uc$I8DiWk%f#3CWKbKF;hxWV^ID`cLU;1q6 !Tbh5XqlQ#hN^bdxnb=u>tUtDs3ABex5%ec0z^S1rRS*0Dpu(WsI_2)qU-(2@2%Kz;(e~#`H2q8EHlL SIgB#z+-g2ONlV+aCK1VZ5y2H_Y*qUd%GgnX$pNABVbd&AAUFugZpV|xKQLiRD{^j)ytz;2Z7=~ycIx ?$)oH<7`6OVD;>K*POE4WaMW>TlpVecLm=by4GY@ZF`FlHWHBk>vieEo>+8-d(=CH@y{}ws+c9k)U^~ H`@#F+p}=ECz8{5qd52m;_=(LX*)km_A)vV?Mh1<3D|BFyK==}SI?V0rHi&dCb8+joTOG(k?bmHOFNs OH6QfAbWHG1?UCdTJ`Bs#x2s?@)3ZdtffW5)zcf8)jy!4K`=m McVVGVZxc7hg`hF-={2bDNf19#(^2y*_ROj9q+x7dgMO$4=cOIc8mY>Zpdt0;pjZ}X(zht0~t6)7(SD eyw+=Ve6UU03FvK^b@fCy2hEi^A0M}K5tpH3-UEKklYcpm*q=)Ugoep?(fKytO3w;H)r{;kRD?}OJcb QYbf>e0a6Y+qc!M6PHIrDA~s=q*s)KQ8x&`h>#VCi2m&uTS{em6t+zv~zp~9Sw&qDK@!K0uVB3aXUya {u4nDH@W8c%b~!nE`BM^;gqd+!D%KL*0kQHhij-k5N=K*jJQeCoqX_s)Yy*5w_ts6?Le$erSa}`6e;u #KID){T=f_F+5&NvrM7pD!ONjK;`fT-d&?<5l^mbUdOCNL^}3!|I+Nn7ssz0TK8~SAF}D+%(A1 ^8z+o6a56juO>$zRijNG35GtjMrU0iu1(Jt!3uNb8a#=y-_;zANGOZh}>Parcz;dY-HdAo%*(7gs0>P Msz^-T+mEUB@GSaq|1tc?g;70S_5nQKn8KN90Sj?Sf!W8EBMama+8Fm1Qp*abL6qA5xlPzT8BNs-~M4 fA{|3_;sPF~N7ptWQukgk(x_*O+}hUFm!k^eNUV`FTg&5EfRK-P^%UEE7rjg*K}eV!As(S{Q_KqP1+#d1 lbq6!UyW~O>B78Pz9SH$eVeY-*_C$HF!#NE+6_@P6cwTc$!)K=V^k^j0V)1X0nu}w9P7z32*~hCK75) I9b|)rf5Cne`{q4pdsI%_QbfrEM+0@l}`c~lcAOi?4>8gr!l+!VEpsfm_zI?v>+xk|(7XnxR>f +|qQ?44x*)v5XQEhc(OWNku04z?CPvpyKBb03e-aPaup6k~Mh9uX0o!v)cKQ1D3#LU5vj@u9Mc407Qf cr%r*~1|++0x+iRPQ{q)pP;1n%5=uleDIT6q&Lijzd%oC(^w>Z(Q{W+WvJ&6sRZavCy*l;sxXX=hJto?JAW2 &(s*;IJhrlys57y*pr*vQt1mqlvBUb`=9!YL&p{djx6^U>C13HA+R4!(Q=uJ0=k-IK!Ss#M2c*5NE#o hCiDD%Wv wYl=(2(g0xd}u`ZcoUoZ_Jcb{Nj3QGjSzkB%-<=v7tq7W0FoOV7O^Q7PKXF+Bk{xvDT>v5im;PMX-~b NG9^_dovV+$?~@`AkF?^(Q@#Ipli1+z^@1Ns6ClV#qUfcvK Q);w~TNU?G{XNyeCU{{tNH*@aStuhr@5sMZLK-xOY+RIay@q**oDz-r|~Xu^u>ib9rjd4V`8=E!7!5WWZTHb{q&dov~e*3yjL0>aU|b9~PLME?{2wRCW_ L%QsTbg=1<{t_8i9))kQ2&+lW;>pAL)0i~+xk@kmLgVvEwn|L*SjaX(aOR3F+{zdD?ZFlPp;|cBpSz3`Vda>~eS>`}z|r20G9U5E`x@ha^n suEKJaak-gRVDEBs00tdnL>(<%Qztva(y2?M742<4wvmjzvLAAw@=l)WvmZ%^_(RNT7*r*oi)37+aq#LdYw&wjni1pFwZ(julFHqhb+IawY}^Mb$P`B;M $ru089{yS(dQ`12{J9#h5FOU+|#34wYwv~pUMI5=}?vO)lS+V6XX01G2EO8rdWel^%bEg@#I%8dW`({aPd--`U_AVTuBmT)_FtO67K (3i@~5Nq_qWDIMK@24*j3jXagOJ^u1S7Ex7NRgle3=s6IP6Ad5 pWMT8>htaU38H`cixG=Cs1H?PdIL2cNZhez7{J(-hu0_9~Or@T~6@5VwK{%-Y*%xC#KOo$Zml(+THnf 61%;G0)OX9lImnoOb`b^w7+NA-F_dlt8DS~E|lkmgJq+1Fq+6Kq_mGHbyF=c0U*hljjJw|00{nDvvOWnknx*@8zWYc*@*jCb;hWZCRQo*;!~ 9P+dYZ$7zn=7+nAF?j@NEuIdjgdiCbwC(owTt*Ck4)l(^5&Iw5J9qXkEV1$B)Ut%zs<^dDj# Jyi_9_~}rf}cGCE82t9>nGWzm7bf-q3YBCEwG3C$Z!5@FhyV#Wr4nh#}}R#G!eQSF%OZZs!$jboKeG* sSeO32&eMM3zQ@cBNvgiP6_pa|XYl_O7wGB`WeTYO-98J%n%SRe %M#dZy{nXMmuB`=(Mwj3-^p@)z&XR)%cL0+5-X)I18n;a}>5s$(p+_tUC7XetWIa&=p8|E@7%G%X=T9 <Vun#_|GBSc$&sk*hqpnlC#4u#;ySy+7@IK(?RNCaf?HCWotdM@|qY9;0i6{+M=MjO_6$ <^d=o#eR8LD4R!N>;FVSM~>Nu{mxfH;LN8r+mVyl_6(?y#vS6+j~Bik1WbvOixiw6fGTZrU3 C&amcg?a6O8SaARs1qdHNzdfbrJe;x3K%~t)WEN$*0OrrP-LWWV%B-vEuwmguT~g8v@KCymJ2 -%|eYMca>(8wP+t5Tpn_2ytcR6?BUKFr8+~-)hQRJF>f1OtE0c{~~Tpu04*ykb <8T5Xx0{l!I#@M34AP;GePw**$2QGhu6tg7}=_LN^6HH*hSPnuF*ova?8Y(rRLnZERg(10lUr1H{@6j xGoV>T$FM7u @9=)rHse*kAo00irHSD3TCfQWIG&x}6GW^dwh6csn`c~FpNP#JD gsv@SpDuozf1{9;)<)xfDp-_9^b-8)R=N$)EC#AH#JTQs%~>CI^16G$Dv{82DiD)*=ahZo|1pH({}TxH+ZX)~Lh)Z iC<;Unl0r5#f>01fq6kdFC`REJLJ$xNZ)bd2Wr(mhX~TEUn526%4vFl9ai@*&Zs35RdzW??@9j1C*AQ yMNzq$#HNkc&NWS~J(`a8{qqu0e^V@A<1bI6yWV`-!^k$gkZ#84yXKa9JSG|5y$=#+V-GyN=a0f;RwD ~p&dbYTLPmYS=VJ9azFd`U)sN=f|C)8c6avQ2 ;p#_^7sY`I01D#F+LzQQafYBkunT^5w1+BdGHY4kDn?x>Xy{&;j7qAt`arVE+`4wmE=JV8$vi51+XZD &x`Jd%(MnSOxgjE&g(xF5que?G8uy6W;qf`cO>HPLWK=)cbeXnHQ{{W*H*o7X)Fl RuL5U&YUOFMb;C`;6^WE4;6tb94X2b$?{*ez)c?)mLhZf*^wK{_cAOM8E8Fgz-IypyP_-WvH9V|Xw4*YuItV;}XS&r# -*b1{l577|}OvFE<|L+g2$w{ciEhP72j_0^rVFLGMSNnWb!V95YVGyV67Vl(9_(ULKb0PR_% TMsPbLAgrkXA$zV)94SuW`O`xR)8=)PBVf{PBtm7BZ!VwJc2?2Z0iPirz98q}OUkZS0zrv+$hI lWykKMocwbK`!Ji6TBA{^oNgl%eI)aEd~cy`6s8Ge=sCN>*Fh2#wrkOFMqNH5VvMP2XM@ yLKcG+{>0an;W6Toj~$;f(et(%A|>njJiP`5O|sHme43Q-YvN~5ss$ENF#3DMI5Ki{3=-^a)B{!@C>6 rbII2en%9Ce;fwGd`h|5hwp7PZume&!!g!R}<0PH0TIaRk;9q>Gi$Es^$@yEN{r@y?b3B7@ C#_Dz#7912ft37fMa!;o=Lre*}V6IjUNp5xlHBUF;wRJYB1)(SS;WPS(-Q1UQ(R} Ty#^Sg4%Vel0!Y8Ul&?FdSSrLZkOT}-Jh%lJ0JJPVsFAuNq7Y8yP;AZ$@tVsikCZNPcP_j8dz1rR>hGM7S>Jz%F{<8fUi Reb}o04qtVL+>0t{>4XCw;WA16szyIz#=iJi-H^=eQ2S@R63fcnL=ay>K9%{iz5B{NB yy4QdJp?px6vy4%fHBv7PO`kH=I4$d3;Ln~3^e*m_3rh3VkcwMH{*5d3~dOq*xey$o&af6td~f^9!`lo6 EIaKxvcE+06BNSJ;5jt{RqSATXY7ld#TrycxLy*H(_?pAMrN@Xfo#SAEGJ99$JT*}TL?EG#haRs&3jm wTYYT;K4ZQP!nWun}f0r}k8OS`!9k-k37v+vqtm9OFcc{h*h%#sqijets#70=h8aLKhTE1K_we(7E+o `=JCj%tgeAq5PFPA&iCjYVZo^b0qlZTk|4d8B0u(E?2$Xe#!6Gb#N65fYIl>=51o=JqB2o~qt(A%^d )H^p{DxShGT+9kgey@~c(@W#wZY_HH_$POOEaHqowvxG{O+Z5xZeFBpQ}3arF?3LJ dTa)WQMiR^uS*FN~v>{Gi$K1SlUKoD2T2jQ!~ta4Ej+cHuIT rC*nc&kkRAhsQ^C9r~GynRtCkOHp`@Vt@kV?p%)}&_JIU=fl_~Cl<^xXPjj9PSJy7W_616dY0i)fP3A1TUwco9USqo2I_IJ9!ruSDidjvWL%3p4Eyqd9b SkZD3^or3ia+J1%W@rcX!OFBgd2fV6^djRC`aRq{+{G`@bBI|I6?2DJp+j{a1Z#k^m7Bgf@N;qY#A=< n|S@-AGX!f?x#4FbMs!{bu9NTa1k1UCb*>_lUL&F=qSd3iu}eTa?Anot*EbSL(~q9KRE!JO2jXAvE2S it$_MY>SN%v2%C$-P9AmbCM|bPGE*xnEoB#Pxr}}?QVe)?>QQ5FEMZ7e`E9^wa?xV;oI+)+TUh7Eq

Va<{Eti<{erh#7$77YGRw*-83%lRi;0zU8Q?`-Mk!Z q+0!rGSV<3ztkZRDg@4dTvox|SzXd#tyGrH~~6YLFM#6fTC2i&%SQGM#*8W&cnyqlReVMK8JEQ1^t1` 4;A{bD0pCL9sO5tY?Ehwj0--Q9g8-MfPGPIXm4DKh{}rA9x2%38j9So*J`vC`~1k9_`8At678+%?J=7j*ClQkmckaB8}#*b{fU v$pu1(o*j9K3MYBSmuic$*k{pG#?Pm1-S z0D>aN!bktUEbs(X6}2rtp)K@qEhJeQ7HX5O_Z6c+*K*TmXg2X0&HX^?K=_<7QEhO$b&zrlxO#FndO3 &7H!Xfq*&_H_1c3Ug+U=lqOy0a&EU`KS=?ZPBPfLe6x0Ew%HWp&P~HfYT*#?|5?mYwPvDP1S#=@!DaYAz-9crv}l%)@#fc>~>c5^Wk @1^1tTB^gTBQyc1&l{SKM5s`m78WLB^DEJb=eUzD-o8=gi`ZE{nhRu07lO03igbMJWzR^6E&C~%o8hJ >}lL}F2KbjNEh!2C*fv|8(rhm6@5kaxQ4lS6$S&D!;f$~Nh|j3D<*ogEus)n0X&EK(iIAcWKwh@@!yc =*RBSRIPHcz(jC8*E)ME5^~W(uY)AQ%y8swMcqYw*X9YG?{Y6%m^%y1VJt4VC&VXuWX`t+HDQ6wUiXs Ala63wk27AX^oqn;hcrJ8gBw(Ry!w#a6ylsPLVN`Vs??HXVJx%=UmFOKc_AM*Q$DKH9sn&+cjc3c^Q?BRKx9vXZ+W$tU0^kc3*lB~s)sm92oODr{wWUJDZ7v t?8-5s3(6xk1DR(dQVgzxyg%kn2BncZ9ijcf; u-(3iJj`b!dg=NT+%thG=Ubo=D1A0C-ISp!C!EFd6bPoZD>raO^!F#Nhx!e$egF4q4|H67dW~x7}^$RTrw>t<5VtY&A4)h2VAz_fhAs9!o?ErQpNiSH;(UbuwmEeZO5{`6CUoYe #3`gxOYTuTz&6(g!ei;3jHMr?DnD$_Jg0h{G@tl$!KL6ib9nny*dzG)g6wE_O-#O|7onw?Ws>hsMey&?<8ZT_X=<#j-_-7sNA4MIV+qriR>8lH W1A6AK$BOM5KbfSsPQfD@=YF)059TF#M3w%KdFr7EqJR^ 2%>%OjWIoZ$AFp$nSIq^<_gNjr7b6yadmo!dD9V8!GbV*;@a@#=mqvVp@9jq z_KX4EJi(PnS$wStL)4TmZc3DZA$=iz y7l}M(Na_*0DQzO1jv@H0L(BMUi)?i_$yAK1YPiD@uOuB~DxZ8SMJcK?5wE2AT2uXstBI4jJV7Gf;sT KMqg1Tb%3Np;)2i~S~1ZWSwJCACX9)l#kmq9UH<Br@*lR2wEA+ziavV|TL AG5^c7Ax}Z^`jVHHs;ssWwY5Jtm*oT&>UcN;KIzF#sV`>3TidCthYA {_Fl&K~ugWaBZ!Eev&$sMo;d2vb`%^p5u`fIFGy9i7|F8)z-@ez>Z7mhY$}=?Df|g&Chtv6su>Kxd<{ -p(BH+e`v0H(4P~2S5Ev5;QLhMp~JA6DJRP$=&2RXt-xEq+**$R4_m#ahJMOOT(^2%OUuhMV~HWL0Rt;R8VEdXFC*F^fi?INu?OM-KsU6s~jMM{eA-x#jyw0 FR4u1nH!G!j?lSsb2f^aUgjKfZ@xCJ-emqbhjkUnALRtfb<3Lo~`iqyoL3nFE>_Hl(8^b$}>zNQ7@$1 @!ZnGV?G13F(6vIqREB7LNgr>g 2i2feFs?4)G{5kVPZ%6`)35#iu`z{$1Fo5`1n2&g^SZB;18;1iuRBFD+QXHlS_`D(YPmR%e%YTX0yhGKD+9&ZMXz%9PmP_D$Mesf3N9~p|d#lm*uK0UeWV@6o*&*jXDM;DAyzGF9FEv*F09BFA3%2d;XfjocfnB4Pw@@zQ#q&x0 veCwEm-p{Y!j_FV{Mcf8wf9Y3(Q5O>JPxbDn-aLN>uA$c(t H6c&xP@q0S0N-#=ii2;LaCeC#d=t|Mqa%=Lb@m07fZ(#Io@EQV7Lpqjk;(UrQQ)+SduM&UicpXBxBOLXh6``5dmWbg_fu%XBR fb$hiD3AYQxCkrAK+mGLaNC?@?zbEp}YsGm8YR*c=sHt9$Xv3zWcZh@bn@=l4=fvQC^Fu5M#N7KS(z2 Q4M%TM)qpUq@UsSC_e*iy9oy&0%?j_Fh_$G$_}cO*%_AO2@_tyjDpEgxd(@3Df4QafYa?@un;w0g=H} 7?s@kmmBx)=Y3?Zt(u(PvBkXa*k0Bn!8=BxK-?`QNm{c`c>PQ5r7s4W+BP3Qs8qF6i9U1j>qVI-Gmk} 41#!;TiOh9i?l#XCOl4lqD=XUeSjWZ3-r}UFgeY4GUik-A)2sw2W?=uId!!op@-#srzb{^Pn x3CrRT!j_UT-D!)O_R7BzQp^b|42sNr2nEHvf7!{Bo|Rbl3^7xN+qzIS<*ql)S%nb}~t7&Rf``pxeB7 T|FRahS%hF#deebJ5c-*Tbnf%5q!X!T_P#h?ERx1L1MSClajn_tVR0%8SXK=hyhs&C}yWwS4YdeQ27>X}f_oRvK~=iXT87oDne#O5gMRI%=X>D?t<-A>9l%R~rlNB8BZVs7wySHR<&w00V95@RT{bG}0;1jZhyWQDz`W*(&x Foxhy!(}^C`h=O{PpZdG4uw35M`eyo>$_Ul@JS=CBBX?dSO%J?%W7kMT0-2eMq`TbYRBs L_ms+4Guf^gv}ZtBRR(j*U_468)C>(g03pDgBph$q2_=Js t-2(-)v1LrBsP4M9wR2|Vi(Angh>rD15idtnJdKNX#k;Oby|M_?48A0{%b`KB%dBc3a8xmg+CpY~UOi 2|HAFWI%jL``FT69D;&y$k=U36(-E_3>#Cbifn&inD-m9{c5>E$UM472GiFOXe&FF1aW;mRFWEDa3YL 78u&6LkVpT~xOKEuF9wyVmI_;g%ziI8oA0>bk>BHQa(b8fK^zN*K>ZLqX`JlCqled~A@#K!0=_ku1*X S&T;GHi^-v7aMKH>7_7=IPkv8XBKO3lz=5F^9833(&DkCZ{uaVWIfEZ33_^>blI3jwpjxrT%BQ?_Y-S|8?B=-&pz!-1m9eUxgS548kZ9!%z|gF^D8k0tE>a#bFRaF$^ORgu?N!fM1y I2{JU^n`dx*_eDr?*9y1s-W(pkCwDhox8W}e{;oBlOA{?4yH+o4(<@1PWYt3AeVYvn9`>md?5%){TA%I$=0Y3L1K31lxp!|!r0nC;+jd%rl`_W ~h%Dv)}c0)l^;1Z2G(N+kbk(g_edDXy7sz^_Oio#Q1v9oNsT5-ZbvZqoV3pl`=~z<&t(zDXwj=z9Jd^ zFsnS^E|A?Z+m=`v&@U%m@5$K;Mq}fd2&a{p@WI{0sDbEwu1MXMxM*<4epRy@J0^lw$N8jcOVJoKCMf uAm3ar}FK*gi1BEHu3Bjx|OfDZ1Mbz)KnTo3(NQBmUj>31c&wVs2$GT?gxPFNLs~XIqxSBh@9M#KSVt 1wyl)+9;g4H+`BrbZx_e7J}_A2 mmFVgnqKms|(x*@n-8ad+t8nPtzejQ!SjuN9%j4(dF+zdu*=`}r2({;I;~tI5*tT_E{`m4!cO9L6`|` fe=zWsc^5vCfaVng4W+UqUWLY(bSkV3NcLoPamt{Z)8H(>>blyc*qu>=ul6%fGi(Y5LX$kKQ_gTWp0k rj2~ftD~Lm#_-;RxCLaC+6gQ|?M;hGv`1_#e!ImZd&K_U?2_$;oGksF&JFRNaKzpdj_*;y2!1OQB6|s CW7=Er-TzMZJ|G<3BkXn>@t*$Ki!<>q%0R%oCPelQue)YB_@?FCI^kc1S5er*>+uJ#mPLeng5zO`q^} 2S+@DG+z{l{+j*&k?iQ)eBP>IY3&n+Nq;Z;(`pz_xJ;4V*Sf)7#Vc~~p_Ro{NW4DP!U;Vx5CXtVy7r% Apk5f(HAYythpK~3O4sYG~==E{@#p@+ylevI^dO!NSM8tJ(+Vt7@0|H>>89Bg-iZ#5Q~*Oh%HNH1hqT g^!?@_*(d|ELB79}9vEWeD9sBRp`N+b0yz-#D3m;H$a3cn5Bmov9}o(le;t4Q_(Xw Z1w0`n5bU0nnz*N)POkbDEEq<8Hy?xZ+(uKHBNTLPO1~S5yza>q2EVRmQhgk94%Yo$laujY6TAL(o6( YO71T{gtH}n2|bx@i_qV|DlW*Hrq4&EERrLH@;w&Y7|NmGvC6=66Ywj+D #dB#iAeh%s|pl;&AIxGuCHx>+B}xXpLZM>O)1zyM{Ce1V6OJmTZ2*M$07% 1zu~waAVagluJ^`S!w#`M kMB3+D2NmU+G=X0o_2vZF7-QB>BVV@-tvfb-$KMtjC%TFWo}vb4_@OM#n%e=@ NH)mg-8|KbK0_UDk8Em2QZE(PXju=6Or=d4NuN&~5+cA|tp7Ak+Kk9yzI#FTc&@O;_4pbdlj3m`F6PE )f~Dh6L~tGmOzL+tmX!$J6?6G@ZT(sNXdyZ0SV HuVkhw;C^xX0x<{cwh-;PK-n4Q`l79I{&Hf7EI;2l6*Y^9p9=JJ;-Ri#R~C|J5DLS>(S;3aPzq_#6oW hk9(o-YW&23ad6xwdiiFC;L|CU}E_kUQ8!_S{Ret6ik&F*IPNgtXfLj()`uRquqHM-od&t}l%fr%ylz EOahq_{m!OGTokaJp6X9r|(zt_rfbB-@|6}gWy4=L pZNYbb#eUblCHm%!Q4jQpMzjK?H+nT7BzpMu#ljA6+Zo<=<~g^jayXqC1fUfm^sPC+X3iSTVomYHib* 1ib-`zL-6-i)lW=^lPW59xqCW}0S8luwJ!fru$q{C$D%qWoCR>WMC15W< sitk|}iNQepnnG|GWe5_6Nfc*@6-(j-0_JAGP&R|nC`J?ONeuoOhFqZ 0aADdN_xLqz}$QVi%G$_OxAgQH-kW?eaWfvt-ti?@sewh3rQpzM?o06bvGhyim2cO>FV)Erw?Ou|Lly{kSj7zz%apeK~wTVMqShEp6E$G`(9{rw&8I{(4nwzeQ?4PM(6hPrF-pWV{ =NPL6cF*~L@YJ(*ZE^PO#BENU2y(Wm39$*Kd`cr% S{aZRk&B4S#z7g=pO~FZN-Cd;&}TK~eBsg}Xl2ROnNPcZ-m_;ln3Ro~?E+ybO!YRkYeB9rq%UY>9Hl4 NqsZWg#GOL8g}cETc$k=PP>OA1=4S3)Hc==I`clevJty;%C{`&qd_~tU!2q3rELVZCp`?WYshOW=Q+{ ;q32)vQNSoMpFdv%K|Zrp)nj=gBZ2OHHN}zdNXLnDTKrscoQk4KW#URX)s!cQQHvTCNH?g272R{>*qe (v;n_p6#`xSTh^j*u;txv5S>3@D4Q$5%eS@@59#go3s(w!SL4M#SH`wn#pZC|t;IVa (ngCy}`=f#akdO&WVIWMXQR?x)k|?S}S$Ba}hXojrX758)$td@?R_T#V_<1RslhjEjI{(6@tkPWY+dE qM3ueDAM@7x`PCq7cbte_jcCJmW3oDb7Q`i-Ez}ABqmgbZcldKJ5Tk_aLdvLApmbg0kiOFa$|toRK&ABn`dQ%_!7sr|0y Spbu7D&Fpo4oFI0dkE+@nE(a5d-lL}r*7Rh?_Uw(3g>imG!tCj}w>bT|I}Y!a2}J#QAOlZ4?tI7HL2_ fcaiR@r75UNp9!n*Y!os%BSLB}NX+zLmTs?)>suGE|aAghJmUe8V>1sc9{K7yqpJ)5sWoN+mCqEHq*i D+#NQ7<`hAX3F&(>rNg72}xJ4|YApdDl+)distijR#{f%5Wwy1JL6Ni~gU-bOxA%khP#{G~IyOCmMaN v^E~vN29p3Ye`eFtt^o?q7GG?kUbr#J0z9k(V$De^!8J8AoQ&}@NYK!Y4O{2q pX8yOB%)O;B=G(QJlx`K%}4h(=_jF)@c tzs>>6CEB%{~{NZpLAWt|cTA^zh=XB28v3~#5wTi!9MzdJznQj&JISGo1E?%kH$3hLesWLrQp1V91br *7J|H8AGGPI$P@3H{RltfeWV10J(%=&?vuZZo8zSkNxLEu4gOGL>WMGRgT6@TUpbf9mC%e`gH@O*U!r 445jCrPzRLyxnq{2Zxo55J)=y@8W@q7JDMt-rjwcrQKPiZKJl43eKpA2|qZrL SW;4_o%!Qi%))80@K=igx{Qg1XEjY3+VT%4&Nw4p7*ZR*O Wct4Fxc1$j4^I*Qh{D)8e=j>5h>B<^EuwYt}f6En&0XBsLU#TzG9@KP4XCd!xS;p(rTV#u CQ%T1x*N;9dUw+4q7H?H$rw^XSz71wH~lvw-ch2Mkg$X{Shh^`>$@a(eYnRQ>(vw#KCw^HoNO#9bQ80 zm|{eh>xzw&!HMN>Ef+VU8NrYV?a5CjIw`S6OZ5OV#C#7G4BoC{)`+C2`M@m9(OR1ru3sFF=-ncB?jG 8iD9jQloe`*XQA1yzT5(@{z?aBoe7{1zXj72}CFUGdMd)pAc%_N!kAQ8)_t@5_x2}eQf6E1Bzy+gkB89e{YAGD *Z|a?~qdT>vyHieoE!SF~x!b=CKKXzwz`YH=glc~YZ6KX>Ps43KbwwuratWmQj1~ptVCs;D>?C=t_YF *mrFVKH9}wnj+_##-7wLP!{vuW=e6bFNwu4?W0ik_x&=Bb#YYL_B8SAG<{g6(aL2=b7lZq(Un|sg~b* ~c6+<%u~Bc4-|ia`=V^nrutS8!#x{?T?cfEz+Tlf&=1;c^-LC(a9eKdSCv1n!+k7A$MA6^#fEt aRNNKs)5EOUL1s1cKN<0$)5=CRxNeGuMHlxx|#5W}LMOr9Pa^!w@=Yp+yx{u}V&{rNlsouF&GwD^8jH xO*tAnNG-D6^g*^-@laXwg0U@1bwF2`#~ggQ45-m&|P65AHyxX8%%d2%lSy0zHvk7XL6WfrRkKsI6hp (xpq=wG3P3!;CK2Hfzr_p$is9WGH*@bl73D*QZ>9&s Xlhu|v#+23r#@A&7~AkhAevyqt@uDwHJq>H6ofBt!M%gxdb-s7_p eWQ;@`jeTZ_tHuKXeY1v4axk|>6w@cI`+(F9EbomLcsfp^Gu?9;{+@=Js8mW?8}3TZ}fMx2|&8W{A?L 75YHV`d;<^r=Hg1UgYN97LpSbJNT=;Q$a`D8Lm_21F-NQBA?|FZLj7Tq1v^XrIF%z$Muho={MQjdM^N 1zLkK=yO@4*m`}krQ?A101RR(9)Vf3l^+8CkgYWt^sJyjHen5gAP>fDi%5P;7b8Fyk#CCjww|KxQfXn SNdl=0$FzE7XW`S1Wb5aS)+s6$zPwFw4e?i^c33GRwB?%?_VR7|>~Vda#7_ N=G8VeaDaKbXw-pu5#{Dpwn-ovFZ5M~XKwKfp_Bo`ALCU({2st^Fk}cOycMTrqVt->#JCD~W^h&=mUzIPybAjxZx;%?{X_YLzs0+(zMz0VjrRDP6IJT^;UX1!I>6q Z{Y}O*i2`l>HQQE}?(hj<7-`{ssvfAui7OpHDl9y^@tZ5a?Znn!bLeb_WUh?$n-e^Od8=TfAXC-#Zj@ KZm$O8B#S|?iQ-XV4J`Z?yad9dH(h%|dg6vN_mjpkPpdLCw;3{2$f;C)B#X6Vh*9a75PLK7)-LJ1RaD Gg^iYR;CiE2-e_9&>p?xMt>%OZn26*PeP$cPvSGRPolWWfmG}-f1`!k#0NW*Q+?p^`LpxP0QfP8IGmP Cn3UL8TQ26zwBZtg?!3)HA^zRB@SK{lvrYos;Nn!B|eoFZn&u;G;iGQ8=-CUzcU^{nX@re4J?!(0qV>t%5p|fJjplGEF1kt^OqkL?dfL{?n<)W4`(Jx{km^USrG2$hGIYQZv#C^KdEi-j~wG AP`F&`%e@lHTTo?U6(H1Ia`ten3!y78OpGv88}+E7eTu=)z{^{s} )W9UtucD(EHDDwS?u@8PT*c4Ebyy+>>C12Nt%Z+6Pmnv)RgT0=S!Sxv8MiaG`YcO1+^j`nl`hr~fRh2 {9__BwMZk6D74gOueqOf>qfJ@4e#a@QLPI%YHxJ;e2ylk2+CWDaS`dF8JbdJ+pUnH`1qy}R^`o=z-^K 0-Ep4x49W{~+@lJvPwe;m7gKFRrKf2uJTRts*ZaqFq7Zcz1J5wHOR4dhmQRid&ye^rmX6>2H7m9K$Q^^I1PC;sf*r1OgD0W^kIuQH&umieT1H?^^`M#b637HBZ5}R#plU{3#HECbya=y*1%sC|DB;)C7Nrx;PBvm(SmP*^X>smHBYmKlW(J yYl?{nOojDdqwf%;hTo>)cvSq|5JhPz{9{2Xc8CJ`AFRJk1uNT&{w(n@4jh#`{vj0eNEIKCc_h#4>5d @s5h2kgp4mL`JkZ<3%*<0pRNr0)zbcCWx>jdp&#Y+K7LUK$BjpxWnFxFKD|3SmconfP3MuYq}x~hiQv XZFjwXT_2(GBl{x3r1iyQlR|fU@{X}uBuJ*}D?Wb8OWzAhtk+^>!U1F)n^n2O}{T-{9kA2bCIjT7YIR 4=F&~AM7I|^TBZ@yoTr=Mzy2fd#b#&)t`qb&;4pK21wi*(u*?tA|toy#NU#v{g4${i$;EJ2DyG4OdnvI5J?J@^1ih0GFt})y4{7?ZVj eTH%ZZToj_KP0#Pa31W~@|o33G$+Sn>cg;5~pCHe0wgCME3?0yJ350su-?x^16{wDoJWqAZNPx&mV^- VCHzZw?@Wrhnnl?UlVHv|Z*fks)-IWQUaBA%cRg?V-|bO!;;`!Fv1s0yx(<9?Wb3^xBhwmEOC!AALsb pG*bpzoLSpH}lL=WXaS>uu52bfq`1DbZ4xzB^e>=D%Q;u5*;%h49SP>ck9@k?)5ZLaFJkzp}8#Cw=D* Xq&H*heM}b5`n~kSⅆ2A+^2>CDlY)3{T}t5l*me?2cyZnD?2xw(f4 B`HKMH%S&|)rH(zthlaulB#xy+A=kn8VD7jqA@ORqci`jX fM9ka+iX&P+hb6i4i_P#6of{s+jqiTb^@vUDL)r>1|Lw|cX?|GN{R|B6{xJYEj)cyk0)z$?L)FB3?XT^)u15n^ohNx}l--{=x0SJCh+3wtGg(u 3z%jCWz9{;K7Xtq);4kI%_?S>s=B`w=!s8a(O>a?Q7wx2V~rQQyZkxIkNonZcI1!-cM{6T9Km&*lb?t 8Y?kWE%KM~%J=@gwM=)%BdBhgPQswjXda1SogP$Vkov?v> =Q>bTQdJcfQGZYEdU{-O<;dO;gR_LQXt};aCIyPGu+`f7j*X~_SWz3ho4F_V{D6v@3w#n@Tzd1tweR0 Y$AZB>z%u}CC!rt|rW3TE$kmLuSe?zhAayZ=?1#AUOTsL5IZDYJQMJ1jQK4(|@_CsL@Ujfjq4tW&Cbe8b4}@@fEU$Jamv$C+{R~~n oTm40&Uc&}UskU}ahj}J52&sSkNUWjsS(P%;<@ffly^HvS^0W&o!lPx3R7DK4pE9eieZq>i{sw23mQ$ ijNwtUQcP9D{Hk!+>#MJKjE0wcZ1k~~G*oY|ou916%(Mz!iu_kPvxD%ub_-|0-5dXwg}u3AM(arlp}hX$~61VwbNVk(p#H*4-)&lK(I*8^^onTo;vTDG15~K KR%V)igvJ)4;@!I#-eF4v2J=O s?VEDh?~-R;=u$rrth@Kt&$oPc&k!k;HKm@)42!NrRS{RGT3P9`Ycd!mpC-M>t=o)Y9NZFGi^I~h?$i gf=K_Z7!-4G~gD3gD^`<*6(Ofe)RCEwW3^~q?EzrjXe(2ZoVx@_vVe1BU$*MHN$2)a^IWuiC>H#@nul jkWDX8jRIc*sqe2C+9?hta7N{zeIrMt%Qcso|O|4iBX7M-&s-eGgtTYXSKIpbUfMA9u`XP~__rpG%UX $mpg%d5`ReUF^zw21rYK^c#_7`@Az@y6~@)h<$LmJjVPi}O(>)uam|lB9C)6XRq*?DTv!h66@q%W^tA id^fKCZamAP1+^#RJkD$jXp0mlnU>bnCe@C3$9@$rQIesb7|e?a_*=0h;n3Ibc?V0yUKO5D=Iw?(`D| 1ynf#&!U>>5!@OM#=MM4VZgl%c^>Dht?^4F*3q>8|OwEoDYZuSj8*V1aF@5T?L$eO?Tj%L%5hPQX-CdA{;W!99AW)v;0JX`>C)-n=Vx<{_q9PoaHU>H+v}EIkmjWD L?nE^WwX00Ew_IrBc2d-HHNs@69fy$E^66)Yv-iI-fAw+NmlM9U#Iunz7I}}ir(!-9>^1cT^~ -PhR!>PJx!r(qkv{sH-m<{kOMkyk5tL$UiXqhr58!^7p=@tu@Cy@GepnP9B*U5#%=^s1Y5ypzzRi}i!QoOxln>g@SJfOo93dlayk%^78%Qo^_g$~o5m0an8P5mx%$Re!}w*e6(tA#fN$FcJ*Rz!XhT6po?rr!53n2C _CQ7$Imd?!w?eewO&ss7-)m4Vb2mHg7;69`SizDFx?J2uSasE5_QiEn)_!kkMQJRl1GOkTjTUfwxA22 nMhWCx10KgM(yNv^g7qesLNkqT+2h2TnoD6-fZ4TxQE%t+;80ODoV@*Sw-Uf&t)YT`;gs#K3Amt9rb- yGC2*`X4yDf^Ok=JMA@sc*mp`tRT*08F6Ik%{p~IBCO5{~eqJRs;PWCmH|I0tRA PJNFh-G3H9E&t5ju$u$sVl`NxFgL`SZB8Ey$d$pA2c&Fva+tSw8J2`dVQ5Y#hcXOWd+kXEJh{Cb4NW`>sC>@7_e9g3_tGvG&_jio8;q$tJB%Y6-jB!Mx#nWko-brom$Ne6==-7*05 +jpu;3j)Dt)NTq3)0mTuq4lQ3O|`9%q@)=%2x>?V_3M)m)+G2)w34)2;yA2UE=766(wYN_zxl${*NNo @2>i5#QLQCMqq28f+-S45n>Hn431JHjUw=;auJ(u^%__}af|_qH!DR04qE9ppR)BbAt{Jk(Hg+$Pb1c P>B^*llmi85)EegC&5iYo9yiE}BcQE{+HA707{s$REUqtw|7u1CD0ZitY6Y;2-lla>kXuL4Eziz?iW& &C#Ae*GxqBfP_>*i=agAPd4&oW`>e^aPGa9T9iNVR#Z)F%ijaZ|6AI{S|NnV`&No(i-@rY&r|0-hHzl &Jjk}BpiI&?+zF!5s&aE8+9?ggX9KrxAqkcVLK&rX3f4X;k8jIItr@Xe|4plQ djAg*ixh=@!QcYKsJmVX-%q`%25%n;E7b3d2|F8Ssv@YCr(=*OZoy+T)*KpBdHNd(0R1Vt&7*(Uo4jQBJq1#d&hQ37i2D@Ivk3r&Cy^B f2DI#3@=K*fyNMEmj2gI2t0v##Ljiw7S8gO~zb?Kte4SlRjsl|Hq{Bppi0=Q^*@rfvec5l LK>V%;l0(1tp-(1I0lPmY!#g2I&)NFWHzlyI#~^SJEajiB1o}bp|I?NHXEj&o$Duymw#JOcpMxC{PaJ =yFM=l17i-c*gaLa~?52i&tLn?ahi2lEQuVE^6|x 9H74rIVge~@s6_4gI!5nAZMH&lI317Fb}RHVWPO!Y%9vOs He;ie@KvHo<8!zu9VWbu$ET4f?cMt47k+3VC7ZvhTDemS2llq~{Te~w*z90jMskq6_GrMu4#$7`IwT$ _{MBouhC$b~_ABoC&3$C@#6++t7J5#v<%ZjnhxH5K<2zOOu;OC+C1Q8nj>uFp@QN@5Nq)a6MdLUPpLw Bj7xfHj$amrIv-un;G)!9B&Gz!R0qBl#%oZ*3v;>2k0f9+tPg3X{9Q+X@$=4HH=No_2Q`K k|7ySuk22ajC`VaD&P=}8MyhO`yXnq(5JS{iq;ask$67>g&ELRxlqA0?_`v>iJt}lXQ(mlC5v9tbssY ghh|8d4A-uBnBIS$iuhTJ?w1pQwa{H&Qzp~hI$UvC2pUx7aM nOxDf9)FL(2M6w$m^NaEmR@OwmYxw}mvq6@X!!OzPLf^#z5sq~n0ccPP2thlaQ3uC13eBG%Fo{7WooM $;XEw}qq5o+i85Sp2QQ7pvc(l8*FzFp+{fymzC&AvmwEw&{pT*(6Fjc4)uaaLda6%+EZx;?8-mM+&AC K*`?^utnfF627mezt9QoQ|}$^jg`qbj{&fcj!*-&3Ovhj-M%<&Qs-d7?8*$PvLFQZk>2Jk;vX|>M=oxD=Ib+R&${fGf(=`JK;NcP*QmiSs0%vfgE9{<18OPakE >NL&U^I-?(bQ4uJ(U3QIR*e7{-ke`2^;vo;oE&I>nHf_<&l f$zSz-++e#NCNbLC|Op&JULP>=}9F`%Ka;*<{;0thp}0Ga$1Ma&2=m;(SH0=%91H_vIz1V%0% 9vZu0IjHo{9gKBBG!GSn=QHVsfLhG~5fZU2V-l5W#SFEdNRq4?hi39aux QFrZRohRTN>TS67xMk%=^(1^_j54D7yZ@otN!Y^X{~xJaTHGD7yVTO`8Wn01seeZtgi5*n1dspz8fp7 Jwdd)5AP%gMQ-c)8;$%RsTZ)^Q|Ws?&+(_*cWs=)S2>(hL9cDRRBJ;O`9aJA8{Pa}- hMpHzT$Wv1wZYPz|L{&%rO{Lb^g;u865#;c&M11eCw-sYtrkUEgRqj5JWwL!qv#;kPUdrjSo<>#n5af 6WvvtE{rg4TL+t-M=4}1H)Zb>#g7KNz(k;k!OI-)l0AwNDwIr}J)SR;9jYu*#neLe}#bJLfxhJ0nzJL 4czhCmjOrLpAoeyvl*8O<9#oH4c4E4xd-{KosZ@?jl4&M^;$)xQw+5LM?818=*NLuXXV4WHiLcfDFq6 gZ+*vLZcSmRNSKiBJzZ>b#Q5zXQ3-%q70vNUw+zN_j@`?#T93frm<69~`?plEy x0IhO>-6QhfYxP#leb4z7Y$~8fcEDfJjML^5?+Q6x2{+&m-IXO4E@ZXOO@@!eRDnUuh;YL)?LHv>2aC y$5QO%hZ5P`#j}gMrsLFP)lvYBT63nHyVzg1sHAs|EvCyMGzs3(4mA?_^MgJeg`9HYq=Q#hDOMZy+D7jK0p0fqO_C&xZ9aV~t0 ov`-2#|T9a+F=bPDor6bw|Yar!GIU4!TPcfPf?0v%WwG=q@Y=biWns49RvAzSHy0ckg8Yo=Y}?nW8r!HNFmR5+?hq%SnPlCV z~u;t?P&t8qBjr0H2&LhJ{(mJ!QM(PjzUe&!95@L@XzU>|KT|A2fvT=;+F~Uzr=a(@jo8tCI27Ac}vu >^F;to03{yQhsQf!2=qKqwxqUC9VcV=P6t`0w9_rB)W%Kd^;LOjf7}bt6EzyMCBk~Fy|;`8UY$#>D7LAY7_n4I8WQGbH*U^ZP$b(;4dq0qeVmaef0}3`~ T56@1y@`%EXUK<7|7Ln;_AI^i@nT+<<1@Csmbwy;&}2fxqw5<(@+>s(E4X#KfC+VX& pjP*lSiJ6kA=3KTQ|LqEaj*JtJw#seMs0TKN7)#etBaw^7F9!-@f=;%>Pdp{%FX6pbUbLFiImNhT;qj;|M~m|56kIGX#ZT1d9D a;DbVdaXlG<*#l&&3r8df-`U4#1Q^5GYSO=g_Y^?cX$Jfe)~y5H#-)G?GN*1jAuullH&>Zl|bCaSa7~2AIB&H^&HM(*sAqb^`tf0~z0S&q~OzRVJ`ok$`f5Er$SQ_Z9zx!q mD)5Wg4r02QFixBfnx&v@?=Ef|{I2}K*uJ3qokdw!<+lw%3vEkjx =stZxcf!di1nW5eJV9uAOebSMBMEbNrQs6|hWYM;7CH=As6X*381TTKQyt?}ncai FZoa+OH_-5wMUniA+2=#{KI6ilIFVs_)8uGv&T!_Q@L(WO>zg0r|&OHJ8VxLg3hJ4};n^&V6QHb3_$K ^>tgZ1Zlkis-z>TYhmK~KrM?v!vKAwl6F?Pmy?BjlVCHlat_4jwG*}gr0pv nx`)74Z8Cbv+UJz5)&%g)=w^8+QXSy%Q1Kx#Qni74+G%{&ZD;! ytiQV9Qf8M^5+oR25lnAel>32XO~Q_rTPf{E5By1P5c5p<-{|?k__yh3NIF^~$X^?^XSJ+* qJkGfhrpYj8_dTDr-P|*&+J<_racGH-xNC$~ebvO9Ws~hL#R?;APpVdP7Xy09s7HDPxw 5~9=F=C_@RoDj?OhF{6~>E2S~b)f3PX{v(2HjIHQit>5nG{Q9>c9NQ1;L*{y5Oj{UGJGAw{FsT8bx}n 70>ZAsY!3bZIhd>GvjO&SjdsTYM+o8R~ZBj2oRTOsYHQo8Kb`Hz%Ju_88SmPewDme|m!`?UEGIhhbjG n8qi&Enmg;uDcHDlrMr$dWiZ(|2udbD=3v^;I6TIr=FHRXShw QI=61=YI~n{b4(LvBT;&p&4@-x-qIS&qZHVY7cNfYcKMWE+QA|F0MnZWPwwZEIO^{b)X#?clj9m+hzm W3yoOpd-m4$w2a+dk3LAu;$-YN=r_B*lfM_1Xy>xcTP%9u3?mU^bt0Y1ZMB3{+&G(vKC$ZEP$_V4xMt DebOGDN<)a6Rp;k5`q;TtT%3wH(cQ<%#HUkoo>`yXMC}O^G9=K-RId%?PC|_j)X!6FQXxJf`jG6}6Xh k(_O57e3NCnaCbF*;oZS&ljO&(Dvl`p)Nrt-m5#o?p|D8O1tQid;HW*EfOe?Rz|Vo^Jt%G4oa5$K7kskSodS4eR !R*i@5DpXRE|8biu%luz;QTCuz4yvCsvCRCR>=hWb)mVh}|MmA5)`NRl|eqXs%>I~4{Iz9;=X0F1u2l-{OIOB~*NAMVWWR`*Y;zZY)uWl&eN0(0$+-RpY# #yav@np1s6CQr|^(m*7`GUv*S{y;+19>Ggvai(ReLuM<-*kugw0gd2O)xa|HIWC5@f-Ja$A-7NgKV?T ka-<|sbqW*H;56Fq8X$-><5&@ErD1lHbbi#=BtsqDO!)c6085H@ny?Lc=AZdngE&wQKV2NPRrMIFLjN Hf?{`Jdjg)`{q&qrcXIT9O)9&l^7 eyWq;S{jH4Bce@oJN8qbDai8vO3cKqv+k?##RgEEE9iE~JTWr3;-e$a0bC49W$6`H6Y-aE`Srg?VLk0 Tm;_ML56A8-^BH(^0fYMrlhiNPQD0u_oar=L2V)A#w&*^@>T veEaT>2TYBGDqW$4AL_LV*qRBpss3PsZFzJ{=*#~SW(hN^p4sgr1sMqywHrF%P*nRu9cLuZvyZZc85) Y>2sxZ#^>AHxvBQ}<+epi|%a-5eO^FqT4W+>%*>XYn1JFFK-+?fI3v9o`e%U`xdA6&ZIY;SJp*pav_V yKbW^a8$TZuo*#K$*dw>Zx^Dy%7?HGN51rqZWQg=*Wx-_-r?ANa7v;}Qi*^PZjwVpdCgv)gc$M4U?o4 U$j`(*xIWj~@r7fHth)I5an!7mJW%4%^3Z61K{;xkZD>?F(Q7&tX9>-JY4l8mY35|=BPFi4&~@LYF<) cCyhe^5ByBT=H#6})o4se3yXmVC*>k7lZ9CkJ*6)TC4^41wrDOlpuf@Y*F46w6LKj;rsj!{G^&#TA^3 =SHM|p9M5y!3o_8B*&ikdS#+G?-Cq8fC1c3>k{F%dIZBW!TrAFKB@nwK*5|7H YaCK!Q#5z3GqjNuhMvUIE=~OQYiE;zT6B$c-(z@^oqIKL;bXx9@l7Pw-^qT-6V^jMZ0^jpG8^D#Aszg$k@z}@YR?$J{ X39x|e-H+BEM-ELKWBL%#N?Nxe_6)AAYw!s*Pr_PAe8u|JmDu}PuE@fdhV-3~?Az?OzZoE`@Ci<8^Pe fc$YhJ9<;iDWt-hEQkZonH%A=g5b2lbx9K26fRH;S5#T6Hn%PWRj&Xvx2{J^b>n3FX8NA=Us6hk9+MT ?4E6eo=(~M*ogPxNo#aTL1l7!@5#4{;fG1U^u566A%7(TR$?Eg_AI=oSjv`FaV+c%%5a{W;JIT~5xZSHucERMOVU!pb)VCEQrcC9p^Apl0tbbWUr24 kUGB`1{M($l!E;V%;d|l!F<%FM(G4X`PkaethfOler;d2z4ue}>$3pJ`GZMy6JJE40a$}IS{2 JV~f&kSjY4INE#{2u#=giL>@RZ+5`Tb1E2*Lh48dWNLMa4eR%C?Y 1V)h*i~_A}0w(BBb4fsBH3MVtNeVC#7>0)dpjgpRzD-j_80c?_sBL(j`P?XJ%d@Y*2V{N_P?!Xh=>z~ +0Iy)+#>plhOQoR4C5ypi!-|s7_*dd(I2f8Baxk?4)XKK(6uFJWuTW}5SrM|~wJmqWq}yaf1a6wAU03t(eyG_(y=>e>&E@IX7QD2PxKIJ33tA_j;g$p=i3PL^IJZ6_W8uMHrBD2JI9I~@GR-A l#Y9#kbOMAuH%D#gbg}y#vSuZlanZGW)F!hS)7sHqk~zB_sl^*n_Px|)zh^e(JG4I _1rA-a;czIDUl}1ytS+0uO%U2^dGk_o^cbdxSHeYKm|ava71Vd65GAiyOFpFT61ftd^KjqT8BLvSzoV PtFghLeo)I*n1f9P)(dY?WVpvw>Jxv+ny1RL^ox^d-am+h9&yXK7Bs{Y&!K^XKyf!!Ik3-To<$b=cs{ VOPBH*3=O$w1`LELdg-ZVbuw&u3Ws`g*J`G5T{-4lLJkN;2H?<2JR{$4+hh~YR%QW(ylFa=EDNCNpRv {4zLQ9x61n>Ee0wDfvprB@6Mnk&}Wfo)BI6bLJy&sfkv8xh@-?D2=|FBXITkt_!@UOZK~rc2(jR(GIg=w%%pXIoO2~s%!{NT5+fD1bFI4p*hY`G74}d<)_=b1W&9)ydH W39@(?H{293Zyjj*VE8%2H#t%K2KB&nE(91aK<1MFq`*;$n1ro3PsnNPcK&C-@+(rw+IvW$M4Vni}75^uw^&;2`2x;OMF4bk52z_h=}3@LT(I?gfR-GS2Uy{YGr~HjG-t= p$J7lAFiNb`w~9AI~uL1_^AViU>hW^XhZGUBrDVudmpTp8;6H9~H|m+|f#jyekCrj2Wl(roExD9WR?oNm8~55W1rqE6d$!=E7`f(v|uQ(%Y3ZI= 2ixpiZ(|Y@}HRd0Pb3GqAl`4)lhfE=q_CvP`%kN+d1}AW_OAe^Utu8uPZ|GR*WT59UM;jU27%SC&Clp LrO>Z?<&dpx2h#%zIn`L^qkv*3j=Esya*=J;{bFem>4d^i4QI6k-QH Us=v&`-H60=3<(bo-0a@c<8!=H0qKTumB}zlEHH-{{{3tK3v!>5%I;y#eUy%KJ*pt>ABe7T0~ncDbmU =q91<2k2&Fj`#q|u`P2FZ*R;#^=@D7wt7+gX}vIncnVuef0Y`Ntb{X)BwL~FO%_WgyXUxgT2o!m=;n- v!#YJ4JM1C#`T;CPW9c}*b6y*LU#*F o+oUSJImwWjes`Lg>8q)URb!Asf55O#@)RtnO4oIXb*3%pvtF(+y^IpWzYq#P33rMVEDnJ;=;0|mbD!mAeJWX1)A#hNI{0}{7$P;?-q}5uE;w<3jH51|sK} )#AS7Ss>}k6%C0`D0rwKRgNzsLY#p(eKhc~#4S2wmx<^^Fj?j6{WyTmkoyLg5=h?NdF?d09HfV`X!dJ %^&ZuWBH#wU{bE}CP?af7|steJSx3OSY@UG^rI(uH` 2lId^F_6Zl>tjfZf@rZR}9!oLaAuFqxF;lunUdEF`~z%$DZdd-~&*nT!Fc1LU`ApvtEXv?;974e=i|^ &aqPM(8VCx>d_&xy#UL-aHhvJVg6i7)=Y8(U0@G=#j+L+9xQe`xL%PD2w5oC^yJsgU?@6!dxEG8!lXq 5xxYjbAuKuFa2_+eBGL7zcG~i(Lj3_o%G~0faeUtjudY#CidhaKCG*tdg{|ld0z?m{g~*^Bj}Ce}D%^ s@?s9Ix^YLc76XrN(;ha(WIsBJ_H-BhbG uGCgxDqj!mzhf2zG?5iu@W~#rMRG&ObpR(>HGYj4%Xmp_o{Ui(zr$@Uh$gZe+0s*ko9F9WwxpX%Oc6hI51j9!|G$^U%kSj9JR{vmsB6_R_Af spbQ9@j}CTpRP%i@uJ7y>1#o<0EU)WH=Nbid6dfcp@wTCcr1%->D`rvjgo%5ZOI6mJRixoEvvO4Ch <)hvbENdZMXo(TZ?Y1<@r)IpDqzT1A_L4;wj+&{9X4XB23UUtRixv7%eDuflB43+jUq&07mSfX-0J|P ``Oy(-m%}a_h<=sB7C)8OU+)(9liU61Zh?P#yT9t|0b65_VQd8Knl8EV1DItf_D;!%-qYbywhuUH{OS -m#q;3v10d6+r7DYe!mQjd;@o9 _$`%S-GF1c>QwScLIWA!5rzrv-(mhI52HIy4~1UVk6PF8a<21NaAiuRr(o?hMaXOv&8IhaCeC?nn||9 @cWRMXV0FcaUFaJrCHDRPC0D`vx;Ju5uw;su?k8UzbI(CJrUq6_wEkfH{P$juPHY5T{k-d`BifGmP>1 8tdao4$y1im`Qrt{&d-3xxgzvKw!^dj;Hkh4xrlqqk#IWtNl5k+CKs+yi!n{pi!8jAOuAb7$FIqhLDw gVknKQ|4X4H^r3woitJrEdK>+2;(dHiMBWu>TaYNejXDx|!&n;qRXTE3M5I3Upy4TQ@36yjYnJXH*W-L&N(CCA5uC-HlUjT<^uV5=u(j%3f;SHXqcX1S ^=}`vSv$&1~Kb(+lA!&$}D{DNG^lECxER?e+FH$=rHdm9Pd1F|7XfgT1M_xn@?ccy{KzNDkI@{ewIKH{ Vtf;r+nq2JyKAcISW-}t+g2!CW1KbaG`|QM??X5$wDawBVv7i@hVk&hQdW2SjRAtJ2j`#??CfQW$>i{_o-&Je_I#fYoZY`0g ?usM8g^%bf6RX;Mu9LI_?=P$<#S4~C55BiRN}P@)eo3_G@L;J{)R0SW#e_t_&aGbFX9f^oG+Ef!+^|o ThvT4D$yRqe+MBRdL}%fpfEtvS1zsOR(KN@S#53Ff_}EyA_EKh5-(aIVdG5*9 Efs05eW$~|IJn)>_Qmnlq|&P_JDvdWOpE(G{%`BJ+lDy+}w7_7uDmeyC_D3_-ksR~=K=gQY4-}B_IY3 {<)WqT7Z#$}G^rW3~-;ASzaSV@;XEQVV-(c%UPW(e4fuE2{6IvB|_ncL9Aimwcm X6qr-;nR%H9@X$uX$;QjW2^|!(*E+jlBEWj|%PDy>r=)UknIYfGnl-39-HlK|AK4P6<-xa(|J-5San% 34<*a|+w)|==fho9!{CYne=K =`^&WUsxq^?PL7&HpVi+xmm(w^BDD$@m!>G$-)48-#$cnXR9!59hPSM~edAh}q?Bda$l-@{aV *zS8EC8s$5=3lH$@wjHW9`#B}q1HIZt_i5<5Sb}P@ix;|92nBrBqJw2QW8NqPh{Icd9%k}-% kTW)OkR2pLw7kJ6F*F|c2KEAV&d{8(~L|;`P4eJms*LD9)0L`?*WIvNj0JHLt@|1?o3)~oVEsYOkb}z i>HbaiO}|dtdrE8!svfnDCT#x+@t xvrqqa(t^m89&&Q>)(?_O(P+$WSlc9nre3?k*s6q~Z1ML-UYWd1-Fm8&U-<5IO362`N0hHR02px#^nJ9xI75?gr`e=UQkNI7|!DYK2FsMHT25XAz$iV>|u#7A^n!DLa}Sc 3&_W%78w*DagJ+`05f={#F_z-y^`t45;NN0o5Sk@dr?K&tQtXM%|;-xevF>o>tSP^;=JfTlsHDSO4u}(AEa$zx%wu=^&|f*^eClqL0Lxz9V#|2ojG^Rc2>C4?7rTOccl~J4wqQN0AG_0LKk6 V^UZwV~_Rty76JaULgJ%mT{1+YzzntBcQ9S@x!HXylTv~%}JB`VnJV%|8_}%mf@|flGdC*8J@vOVe5o xpj1~?{V&h-t#lMD9hHNYB*YtTD^>$`eMb-Z_g9;5NZ&S}fOAMhn+;=-^y8_79cc~z?W@LeTr%Z^9G8xw(#b+w^#qwp)cS+FV5KYh0RALh6b)eUrPf6 ^U@rl<-;Znu7L^J9Kkf>H!A)fG7yqEuCP+4UOjO$I0j81mevslZ#g;Z0(h a$F)f2thK9+h``O8Fb$|*EaTSm_KN;eMgb L4_yCaV)lzhhch45TqfDhDid!AreOj5~eW-LkSE)KGe-^p6ul3o;|*=A*AVU)st ^t?J&Iyipgy)6kosfal?!*wvlhP2eRYXHajiwt=+%vlJ2XeDInO_iowxqhZ+gbHT}`GRFSt2;!T`o XD8)55?~*GUJ!xLgGSmD jv%@{EkUUr3+vih&h`tYDL7DZKj*+Kmy5^a)kodzYiG%b<_H&wgcyA) ckQeK|^)$q9Rm>M|u#RVv3xYYmF`we!deI;_?S02xe&ePm2+G_Nk-)8K^eU+Q4fCtW7Aqz3wM${KHef Amcwe?Z=%mibPRt1w)N%R-8S$)3|uAl8EUrS$XXt5{yp>tH+iAp_3$#kf#2H(Op;H^AgOI>t-&F=$OIdL~+`zCEM&lj?5BDy-7Xm LA-2IIb%zeA*^IoKOeKR4TX&S$eDy?j|;I0yD8x$Sqj@(E`)B;1j2(ky7j*v~5)JY(+{_^B3NZ}_`Kv r>K=u8e4<{wd{RJqBoQ`uU&|Yr=a{OQ!##lTkboN>J_c$$!(X&tF#gzlB$bzy`{`FuC&P{8XLWmyPJDVg)7%BUS?6OeRjid3HHfaKoN&6gCr=|zym<(LA&kj3nB7D+Zt;< *kp$~+iq9@Sn)T^}k1$hvt2nfh<*YOClUpa3hO5~MmMz$^Fn}qQJ9W041U!UOhK&ciVLo?t|G~1fjQ} Su42qm>ntQACO-q)g8R~;>w&lmcn?Em~0iUag1U#?ed|o7Q|;>w3?Qz)B>~wA 7t6-tkG)!d$`-0Xa6DGeSGR~;qLp>eq5!1SJns7G)_V*FN6t{LJ<<9Q4B`V75hknASv=gyjwviLpR!$ P#dvI_pJkRPn2F^42?H@`jpm#!vD%Xb`^oCZ9aE|O_wfu>12)k66U_V6@A`&$zy^B%0p?Ab`)Ror*bjcfyh -EhKgK*@1--pF_{W&HJ}cys(SaX-F~aB00mbb3ZkN;EMHpJfn52egqlxZMM&>$-J|9@NhTt=R=@RI-b 4U$2T_Q6oV{`$hZe*penYrQ(RV(h6( 9<^EsOW}&PZ@he(dJ=Fsq4$)NUVdwYXn+R&MGVeB)f|(>X~QBLOYjOtPdIs$8a>5 lA{DVGT@TmzEf}co@urfBd=DHW;yoP{C_n~bx+B4OzQ{q4F$EiH>WrrVeyJz@BQGPOg)E;H>1C0s=z#6csB1VfC@EO^p Cj=5afkxuhxHqCG{LGG9F>s5H6U97^*ULOruq8CEtW{vW{BR*P|AUCJ#VU{&-AHsj{yMPLtdD{tPeIr ZJ|dSJ9&sLP1`KhWoBgtZW+rj3Z=)Tzs%YDk)lK;F7Zu`$UytG?AN+C}2DZZ8|)`YcfqRLo50deS?k! `^n_u%p0scCCFN685vh%Yzkm>C%Has=B3|LSIofYGhK!nN3bAJ&jYB>LmoXT3~A&!z2Fs}n#Lws!6`13`l-Z@WwbmbD@eTb=>R5*dO8O@;RbpK)iTh%Y3+EHEIO eqOcJ=Yc3_y#E~fuvLmSA1<_r}els8u~OLcJ27i}rmC)4Hfi&EhyJps>r(i1QiQ(CZAMfEfsT#{R0k4 ZE?xT%$ay3gCTqVIIY=_239QxDgm-Uk@dH~_|$Qm))c3Y<9aHFlk>hHiE{9Sqwz#G^IwS6FME;y@bj( _3Ejp0TPUmEBK=YkW3)poP4bs2pII>uL*?HJUQ9I$Dc3%)3Mb?0GcQqwLL(J&?E26=L8kDqQ9p0n3wA Eei0^NRgyW`t`aOhrIKVF$gNMV}H sr>mt2W`spZ12wulCsX>^*9?6#wD0Bbd4!+UF~j&9`A*|lo6cSggW)lIj@j$RLP|0+f*A0%j;mt?w 4^YTdQ-v;=*b6)9Ok;lFGWX^(U}+v&S0VWrZAK+594Bh&+HvR8D^X5=&)C_!GVl-^Q;1$Q*BI&drwUB P@9j)z=JVA(69AR+Tqu#3F?V^E(+*Di*+%bU7~jGn$V>J(3Ur(O!&8cSY$b*4*hH;X0*PWfV{;E5=fC &*gcoLJmZX0PN4R9F2L8*iwl1pw>ar<-*xl!dT;CYa?ASjBP&i7$1Wgk-v@cOmFp919C`_ye5Pba>`Jt9=FBReBU&$^rTM5vnL)(>RD`UcnO-`Hbq1IWxa- EO!AJEOcBq6pHhqVqwlC6!mUVz$p6r65UY~^_C3%2wicqdQgO V@(lMxZP2!=bG*PWNS8c#qdk_WZ@q4sg3Sz)C3b-Ae`f6iczPvESC6Vz@};{tc)<53eXt2~u@~(_4ciw98}Orsjc2q-xmKg&9pCNaoN*xgXe0v`9OBNh&ru~aqd k>Lv$*?sr=wg*MV_x@N#W#DbB3oB(Fv0 _n}`tRubH2F>L2T17&^b;@td+@A*PD2HqxKVGI8;IGLlnlmRYv)bKj{8}+EaG&{?3682gfo9oxO9(92N6 JG_3Ki_uKbAMkT|iZKj{36b<_z8tut0rAFM`ZOtFV-AX!a0CU%8%HF}*V{pz=}7YLm!K(GJ )zAGmL`N1o&m_k_uGZ!%Jw8tM;3R;clWHjF1mSm)4M=HiahiSU=n0E`Tz^*(Iy=0u|%BhtWU~Wz0Sg+N <#rh;+16o9TN55KM{W-2t;49peOL8es{Rt0?gM8hTr4T~S&QGlo1~=SU1}SWQa-)wPX4z!|T_35c{FV 2_F9mNA>E)tsnA&_)9Vi^dI_w?KrJZ{en;7ucsD-iA?oG5Xe>i#qnxXm`8~j=nl2JOUx6AquphujBz$*YmavX*m7P53Gtnh;i7$|H7pQDVA ~C9qq^E%@Xe(b1R-7rHQ@B?x{x_uyI(1Ctc^?1Mc(5p+irqwA!Tbf_D(xp$B_KtUJC9kDzDR37iKcy| djw~e9XqQN-iuFk|d5j77TVS26MldI?hqOI;h=ik(L0_hq44Nr=z-@>x!pNj|VB8= wSW4V~F4@&64zta~`g5!4!_VtMd=#J&spvTCVItl9RGri&+4aioPLUlZu#Ut3F)Lm{?WCF;oxJsJx;D )D0Na?Av1zZN*XuP=}xA%pY8rm(NMp0^%{~mG=PMUMJ~)fZbvLQ|#^^Ta$+M{=(eA_MX(UmW`Kgi+rdu`BlNa5@T;l9ZojmRdUp!9eF1G-Xe-&ncQ@by+h(a-I( N1$-=f4eKv*xj(oyV-yWO^$KyHf;#jdB@b|~m=djk7yW;W+<>@NG-W%JxwuSS^&Bb+>Xn8aoksh;kZ4 -bE{GJ6C64YS*b9q^wrJDva3c>{i6cBS%nX17fne!=WEVh8*;%x*ge`1j1t`nO(A4C78fPeB;Y`8=Ls XD%7pJeK`%@=GQoxd)9b-F3J-7{@>HyZU5{hR$4}c7r5bpuA!%y#(oq#odV M73ZtKgL&r;bjp^qLaek%gEB}>I#V;1b*qj>s<04ek9b%Xy$w2+Z>VkJzW~?Gq>1G4oNl)Hd2P?1Bp% NkW(oUC?ayX_+*W#wYY2p;|^%+^e@ALJxoLJsqB=+kTd*WX_KL0aPf%oV?)?r*R5J@}FcL?Jj#Z6=@;f+8e><0OPq ^jc>l=vq^wD20DG*jQ`eIN5Z^E1JR3Ciq>e&K1Wt#csNlv|FSVw5|DX&P*RCYpvfesLc(1En8!HpK$D nj0n8JY!+{Wh7|}gYP)K_hr+D2_UPf_B=*3-LQIn25htDWOq;hy@j5&Yh9YJgAKiW1f^D|eO>AhBW6?XhaU`b%Z~yT?;7WQ(Y oaJ(T6ihU$M*EFswfZ!zLd2-Yri8J|!)F^3(e?9Z^4d!Z4`5{_p45E %?*1Z>d|+^7qh1Kv|gj>l31~>nyaF2)WklJJ!k3eW 0yP+*@^iWxiE(h$Q^9ZbrbbsvR+^RYk;xgU@3hKsi)G_SI9#*J3cO*VAGcfddITC*3(Eg<4>TLoG0zARt-?>#Q|&wC%x#)w{M^0oigM%~1~r!=^DgnBFF^YaAmq&=2dMtbobiJca=<>ZF?Y_l^^=6K4r0Qo21) IlVn5F?F(WX2XDDu*=AmVpj-cPeM@}z3QWkYRf&G;Q$ibz$xhx6j{=hcoshStsUSo%X~{ciPxS(z*^FQ1`x(Rgh(cwyGu2+}`U!eHAmef c%C0vopeH_!@v)*b#^X#IXKWQW$}n?)b++no>tg4^iGP}FdW{TBzqNB((BXe=O?i>=T=>hXsw>T@SY8 ZN%vqm#-WBWKe{iYGnv9b^*VYDrl9eDcHRNpEFAf86Q=S0GLy`9RtcHt3i^Dvcz4ezBxtn#a7Wi}w0% C6l6GAnZ5lHAPye;R$X$&AxZA*p^GB^r10;NAOku772p8|H |z!KA)QSxHT4TqPh5kLesohXDMUaNL8sQJqMHREHW%dAU9uOjcgG 9Bx_ZlcNA7KDPbMwzC4@W)HAI$R5Qe?4b7HF#}Y{=Lk0RdVQ-3Rk NW~M>lhOC1><0J1t;x!!o)@(@>N!WUYs02g%$F8)NlFOIalj@vd4-#Cq_wY+S&u%6A3MT1!U)h XL5&`v+`8f%a(!OBR}Nn&CeG0dtnwu+9bl!MNhb)5!$sw^3N=+dj?cBDT+fz%0l*n_ox>x(%MAJBPRK {0$3G66hesX)mlB4q=ND=!pxbmlp7|#&@zUR_U_Xms5un3!&I}!~Ii%DbH{v?1VXvJA`y&YZyc6=!rf c`a;rrFMfbRGr9}+7TY6tfIlL}^&;O+(1NJox8qL;9WAJxIiTg|*y^q@YIQxnGH8$POP_#7I5cF?hg7 %Ccv9KO0iX`F%^BzDyjHsiT|Mo;G|A`#RzLpeQbgSx3*z`%i(NyLgND^sK(azvo3@gR)!8S>8S)fIU# HCQrYBTElvIv<>qKt-XVqxWub!9!@+P~TE^bm24Lc#N+|*q7nqXuv_y`g)fbO^+mphV556q@fuD`lkn )IsAh8SaW{3W2oP)DzfGL2?E@sN{)@+^%yvcEBZNbJgY@h&&HdK9_A3!tO0wB(y?F!FORyas|&8O^x_ Xotil5@on)79((@?8T+zI>rXem0hx)etN+(A44y~V@&&A2@Sc{W7PA~3{cawM^a~!3o0|IZNd>!s_+& -ehe#HV=tmLw{xaFS7syxr6wz4zu-TQXQ7T5cTIfwZf8Oi<8pHV740V+13c#?`FzrvYH9D6LL-e!^FV 3$0fsy4X6(V_X9NhT4tVmy8J3KJ?kzvjoKac^mewZs7x-}^=ANm1DSviMV3Q2UwLcxx61x)0 o?$Q7&x-^!}_2VJ%FiM_I1bUa@MAMzX>ES=v2@z#mV@%r+1xGe?M&0#zhT;A%=C43tSE?r7o=x06+am 98?LDsla+seO-+y?CFBI?JpZ-0)BXAlfD4HNi2wK0O2oj=5eA7ZBG)BWXjiEUDVWX1TUE2pREC5e3J&I@g_vhvTb=c$99XTY|F|h(v5&^JHEflXHE8P- <7wmEN%UQ$TyK9L2u+SPq+Cvglx0&m9A|vLv(wmg4~Mpl|rtUM)N(}1KF777Uq#|{Ye7et(VuIH2!VX oNrb0<=cjcc22Kk3@X;0f~_dOp5e2WxPPmf$DgZa(OZO6W7{v(&b3!KNCNSlHgt0iSA;?E%?i)8+;5v CKxDm5zY;y$*9Oat=JhWI()eh7s;6(|3*BS!qvI>O<+F|pokb6-O}7%a^%E9YNt5Zq)?hhoXnXSKgfe +cBSSR4dTXwRe6mh>F6T8^HnT{F2UHe<}qoE#xOcmGz|`NR?E}Dghr!m}G9nUS>b_E (7lTZHp85cb&}&6!{2#Q}--dKT>KhlBe!DFKG6fP^=SNKSG@4+);0Iqn mB3Gy_E~YV$v0NR8YqwtFF4ray=ya6k*_goPlAdl4}wZBYAUiW(}{23>NlPAaGUkFIJFG3S=!Us>$W_ n7?&|7vG=GL6TYUg)Fp30#TRA#)x!+Hr0kpzX&6oH{6j#3y#Aq0hBCK=a)vuVeVi k^Teg<28OK;n6Yu%dd{!%fzYn#_H_G1&kwNl<(t#*&UwJt`ft@TLmXK!Xz)Kwny3o<7dMwtg<3J^!cNB7gm(@gdPrJ)PC;&)Zp+r3&wCmtq6E<*41ikJgt!qxB- t=1r=ft;%=4o2q<)&Pm(1@gi8~WgPg7ou3Z6-WPi+>!02k@T*(^>(K?@Ug<;xoZ2^L5&8%VfKxsl^^v!`J}j8GGOZIkRAf<4Hh7t=e<3r_pvL 0a2Ow`?{*p|v`K{H6dE`smw>1iB5#r}Y_aBBGU88WBx|Qu*FfoYKUI=E>gNFBOaN(bXl&iuVb(^Qsn0 t6lCY_m<#8AdUlq~Xxi?y^%1W5pZCwnkieH_^AgIe-ba)1EXjdzksn?lz)6CJ-mGhk*?v_I+)nOUWR; aR=#D$dOkSEH9AgjLPVfMfU8MvxK<@Wx-$6Y@Sg4 5}gA8;%bl&n_HLNqp#BZ&YzPzI&thrOG-kv27B}V!vm`!hE~FKhHMAc1R2fG71h3GNgt90zPIAN7UFfbZ++d*ok 5X8 vhxTy(=&d>l1$J&)$KZM&_Pf5BfQLc>AIYuTT#yB2J)G?7eIJ@%4Se2hy{E))a@qRko&wgH=?*Ktf{E dxo3?1X*;c`xnP|4g6Q%EzXlcSMP+@8p|3YFSAx#_8Pi&8u!H+Gr(K0oPqz+FF<&C4vp*Fe$HUC)&4D jZwsgo!cK5-2|NwtU2@hiu(jKkpy4AF1?mo?l(dD&zpzoQr1yL&}TsyufXwR3{|y9avodArtj@0o5zp iYvNgO3k{@$DxC-FF85CXwn_a#{?88;pj4{Fh??NR5T@JMtoW_jUwT|y-k#!)@qSI5*6-7)K$f9qj9h v;2qW=TbvRZu&$8zSV;_2amQAm%DFp>e#0D>B=ea#V(ViFCKpc`pHB4{)mNYrv;rp)iRx1TSqngQ-Ap {$+-!)>t6zP3MBpn%pQYpb^Bap7t<8qIsTE5D69 ;#gkpKof!QVE03myv3LTs+|aZkqhTkM0!d_SGsgg2R}=S_qR|16FzcW#&a *Ib{?*npdp{5kA-X-eG1_rJLIfB%1fsYCW*{MsL$|3lo`Pv`#VX-`rViDEd0!X!i@n?8qtF$7*qVUmC e1R`L1GqBpWf@$nSj+PR84rILNS?^gwTRt_l`58d_xL{>dE92UPHf#O)@d_{*ZzJaQwdg($fs<`)yoq vlQibhN-tZoewpOG09+yq*uPLx!b2MnTKiFb}pp9W+*sdtrr^su$zLH7=+DhE@{WibTWUGW}XfN9Ht- OZ!UEp+IKTe_D^?tV}U0;L!HeHBMw;H&9e3N3o?$SFx^zZrzk-ib)W6ZthKCRfl=^NEuitT+6ZzeCy^ -H|jvC{FV@#kz`O0zCbBfg^myI2S{0xHL9+0h!m_mCGR`}2&zcjF)%e@GW9Kd;B}Th8R=4d`nD<&}#Gzv61_C$1)JTx~tZ5k@MY+v*T-njDA#Eth~ZScVW&;h=yx5yl)MYh~L%vYWSDkmaGZ53h kRsvce1OThDd*1^}I8Gw#dwnrY=Y|PBx<}A&wCv&a<7&GA(fWfi D@Lz#7^UZS=0Ih7|h(8qalMfbJ{1Mj`WJFvNeY%<2^6CYaP`{z@fhKg5_Y0BNKb! pz*D)1ShO*;((9eOeTWZTgnZ)8(T$`btly?xiR+gP^bJHFz+Gj71Uej^A+c*2kX-rxxD9f_|WfRd_8C 8?{bduBqR6DJ^U5=VzzJ9DpGnOWA=XMox?1$)e;G#X3HS7Xvk<&@#v3bQG@m2__#ukLAB%R}adD;D(; 94vN3hH0Bm#_bN^IPbmej)QQgMIxpmTt$Y?Ct4)cI}$WS$3;>zvx){T^x{A7OO^&faK+QO4Cr72fwyk t{yN9>dF$^QXpQ~pbzQg=C10HQPvlZR*-)_max?qO_5Wrw!@i#@!but;DGY}Z8lf?iq;Y89$YAnF&O= EGLMh^N&`aY-^uSM(MB(G;mHhZe9BvUGZ6=-^I~?@UZypH*=!elq|B8QZ`4h*VWM$~srAYegDE46$gn dE*KCX-O^D{>deRQtjCrtqP7xw(cX0~r*&}Y&dhCU|-^dTudMw9Sk8w`V^FCW0i3_0?Vvp%C^!$Uq+k ~DreNXF6U=odN;PZ0c&N9{i&0skvG4n+R)z~Qr*!GGAyv?*XOj814#7w;cPiI4(`h9+tpe?C|A|8+C_ ra1k5GuzI{Z?i=9*Ujwfwg2Cn+3lYkJn&G{XK>qt0AGl=TH}bycm=b7AUczwU>cR$ERBxOKH4LR@xS~ iani+IG}Pxxmd5_eiaut4}mw;wPSC```Zuq)WC;)#5SZckVFTtY6OzV5y-P8@4d0+SxMwEWW&#LZD#M9l bL@?l9?fW24?uU+haNs|iJ&Qp2t}e99l7c~^jQ=bac-zCZhswlAdnUf3tbr=Vg{TwUbF`SzU!_7CGjz |Z3Ee%703I=#45SR2?$@0sX8fa?^#jS`@U^RGvOq~IK-rSR-FwOntHnK%=LFX_{3$4U+V;#7zO2KQ8% _w&s!arqWpS;XXxq)2e@4|@vjnq2K9?&7wyf$hl~B&WQ~lkRtHL}g@_BOp79TLfw_&2GF9PtS |H4hbLBsbVr@y^64s9GUcmp6!~bs*J+(41pioVxG46ne7Dvk`d(I@~ G53;rN6BNEy>eQG^5A+{Jntm02k@JquF17oB_D_d7r$`eqDqN^3CI;x4%Av;bd~<{VdD^ zN-h$*ns+Ua4ZJ6#TIlr+BzB=EUoiyojWCkMk>%gM<*cWPV~m{ds=_GUjrMye)$Buxv%k82Y7&2x+CJ 7S)St`IuqU+ev9~q@08NaYhH8%-KYx+oj1m0*DzhBga>ur*=HPTCQizVo+j{YxN*B+?p_*dujHZa3dU 3kE|lUhp74~w(tBQF2a`-jQnzye2)rqF)d5%RGP!;Y6ZymsJEVpM#Lf`=aiA&UB#HvV- ({d!3Eg5PB54xhQ=N@r3>;vIYKujG?iPcecT?N26u{u}IdKri4QVK4i8?4`5n8_;b3JM48_Jg)s6>~% md;J?9MzxS+c=P&x;H^mVxZU1okb!b@LImfOoF2t7?2CSEfQy%bBjOy8fuW7m=7%#wfhFlUCdGpBXIa R`nvT=&{&vQ?Ox)LU^p+Jjdb(RVEqI)_g8-wT*QHj|@;IwCei3&Yz!E}BjvaenP@AOM@4g69u{(S<}a EtO8)Ew7Eo(L0GF )b+EtBLfQYdO~+7>+ _Th0{N^nB9v4L?45UI~&|dS&SX6;UiU!JmQW*@+13s9#{6S)X(`Q5+AA~@{5}+dSQFC?icA(zVdjbkM)22sh|ON=+5B}n+-oEj>jwx{ -K#4ds;F&=xRtGr?E)*ulO&=ZutIaaO1yQ|3}-nGF%oS4vZ;{ro00&@_%S>Lq~)A`ZIm_U1ij7ZDiHF z+XlPFW+R~*Y)}>;OJFxfO0pj`(1OcoMe4x;+lWPYW^Voc2?a!W18)4U(!HT?6?N}c9Cyai~Vt|hPTi 5x9ZDsx9R@1@_vf53=rWh#2^#tXn3*%e^+!b0-J7R~lsA;A% =-iuSQZW#I)EJ9^3kknd!$72?X%Bqu;LGla?w6R#qNLfCc-EaqKV0feLB*|w|a5bysTz8mq`(^(o>(K sM=Cv%{oZG2=DT;eL2PwgCabr9L3Tg4!~qGH2(2!4yxVgL0IX*QCpPucL;CTT$dC5(i0_l9yTAg*BpQ F`V-@;uY7w?Og*Wb(jeTrHonm4BPEq^Y$Z9!7INy+C0Ul8|&s1tEI (c78A&a{ZS7!Q&DP(;Phvu`X$&fr=BND>v{8qz*!q#$NdCV7JSEE59LR+;BBgrIs1sP}*?j&ggOiG@s >PlJ!i#*KtIIY4CDJ=(Aonmav19XpF}dpwivg?2-zp{;=QoKe4AmlvHbamE_}_;^ Kx@z5nK1_h_hO#B=t9uz&m!mwJmBttDMLXz_@S$vDkd0?}^err%Hm(~h~7BHLpdw)$#gdI`6R##>c`D @{|UasyeD^x3Dd&n?cN}4;1XEHghSrA(T;vuMhf#eeah21JjYlh#bS71I}@Z3Y_jGP;Fwx;U>qgA~l^ Sat^O2HiNt#P7X52D{I=kPIM8o)m7e5@ciRcZ#lnq7HQlsLXObHO{9F>%N#WV *|Z^wo4ga?+SlK#{!h*WZxmZJM{+K?XUz?=i`BYKKWs9znP UmG^wEuJ+AyvPMsybZWkUVPSX|OTaJ!SmqdCGLrj!*C$#dTY8`chTM-lH;EAXWavwEL@s*eX6DD}+{a UC2oIDA#0fu}b=4GWS{C+NBkX3GaK?dgH&`;ua##Z`vPL(sG7VHeQuM@K1+`A`ER;{TIe6mg8&cE2lo 0v&B>U+gpI-Sz)nH^k%F^xNn1up^C6x8Yb4r^PRV;7P+!*SU2>*eR_5CKZfm5<);rFGi40k_6=Fx2ds i)|F}-TfNghZIsNsm%SljPt^~5q;|MAi>KQ$Wa;qV<7L;Tf85*wr1wc#2@X*pDp%Ip5YW0;oo?i)W0*DT #H8SDz*Y^VmQB+#Rt4a1rtP2F^$s5iwNdJA`=O&GUPlZEhW=6B1Ye7Y*=g3|{B!NYw5$0FyYqO> (j0W@p*i(xx}BtE!Mgl)Z5MxJn7B}c8vxK0?OvXrt*mORn?--r4*#go1z`|orf|>yCQa_?PA&AkVG*x U_HgB^WZ_JWIbW%jHVKhNdz7)V^{lZn`-(~`bV?YzZ*^b$+Q1IbhG%!PxGUf#h;$ykFXAfp&ijd@Q&s _1Jo3R5*UR+5QJjL@#i=sBKOPK4)yS#`;_hA?#M#IK2q*4o)h@dZr*Vk@kN*T34q`6(au7tpGUuk_$S lylermu*6q|YNDgiJ4%Fz6TkDR%4jCf+30WeKhaGC|UkMl^=%BmACk$YxvJR;~cyLJ!of?Uxnbe^$*wJN5Oc1LZL@U {cni@zz##BuV%7LgjCrv^XDPi93rp9N2)4%uc`IGi=Er%f5d{{)&O4@{g{AY|3wtMl7ZcQ1c9@?6OwB -4SDTh{uDWQ6Vht|!jB;>#)<0|mMIk2fK}4Td82i!r)v+`Xn?BKt!xLRv)Vs4iL&s~k$n}A rDfX5iISF=M~^-URe=9 UMiVubmldUbUsvBNUzl)FzG7J_6(%ILIl^TF=VSSQmE8^&c0@KPJ!p7sc`)JC^Kg^=OER1u{0+%}E0!Wtc-!f28}BP@R+ =NRuhFFWX#ZUP!qoA%u^O&(IHjEg*xLcLpUiL&l(9En;+cAIKA+)$EPE8d{|f&C7x#Wpy6s4wL%} Sa}!Usg~TkF~~S{Fyy~!=Y*R@t*f=w8bTF%5^#fAjdjt)JmV=>(mU-#z}n8H=VJ@7I@?6Be064di&m# !x2vBeE!0o&MJz6wf$t)or{dUIjE+!h+0)oL1a_g))_I+iVGT*=fHoaQgHZt~!l|e5UFEA)-c!tYg<%Nf*;?Bv) =y-2wno#Ak)8|tG*iEL^m&ZUg*nH)Q3m=3JD0uwY`Z=-;@f!e#6=VH8Ew&``1+|&(qHjPyKQB93c4>Zv*I_cmK3#3jKW*EG*-QAv@b0JwUA n#QUt!riH_tcU+7KpiqxK|AkJ}uHsQp)`|cvIzR?z&Xsd&a&wUVFN3iQ6h7ZcG5lRx)j>9C?MI#^dB( 0NZ#W6#G4OTH!(sfT0iprKb)d&8u )ePm8Q@x#JW-cOx@Xa8CKi_bP+to{D`guMF-cYL*fOAzf}4yMhZX e#+!BIy(~OlbiM!q9L_h%PS$EdSff2Cmv0Y%GqZbac#kqs+{a)2#P%?C7=bH+h&V!pCei^85@-M+carqeGmx-`-(2h JLbB;KR7=`N4n4N5qYP{C9SMxc^i1mpbkrS`mTeNzay1Z28g@VwO8F9fUvlJpA8pMcf~MqZNUx_IXp` ?^_XHE>{0{TM_*Izivfnx!z*+`9eyrGrcEgU~RO1#vnw5n8@9!!Fs C|3wr*Gv7fo3+45YLd;)N4IA%y7rH`E0E^}<6>T`(@vlFGhk*}d3Gt16Wp{K)MdX_a7*SK=;@y 5LfrS4M#s6@jSgi^MagQ*%|;+|kjq)Bp4yKwW>>LCb-QRfjh%tL;9kaeLM4%FV3ikG)*2$+@g2zpGOZ5y?$WA#oyVorXn^aOS|ywe#$C^`x`L)@k!sQI`Pqj$oF*1Q^nM%Y2hVzY Dt&Zh4NOvb7tYoW?HxNYv-#eHX1?>TFE=InHkG{2wB0A3h7E@LWHvf -2qsn+*MzusQ_**7Z!aimwR=9f*A$}*)u71c+U(3^I_z_Q^1&6ULeq!rOGZura0&0)^*%KOyY9%j%w)nG;#(D~EJF(ia&9bV33MkWOY3ig{8A00a`ue(!tq$ZBzsnB_ugGp6NG_xP N%ww3A>;d$0D)O-%%Ve^Oicp< O+4xAEUh9A(0P)W_IxAVgty+cbFpOwoe!!R>w7rYGzV9=Umn>_6`yT$0aU5-meCxk|nQZlXo|H1Ja$w M8y#x_fG*_%e4hTMi3~{qOZAy+hQQy+~+LoGD{$@d4M(H{nW5j)U{cNo`Y6785{PR0i^BI)ue2;a1Hm wd&h$30KOZ<^|oD%QwfT%TrDdY>rlTDcHT%dU>BXM$Gz8A_B>92R*^gr+4q#11s;#akkOV5?iVZYVuX S)=7K-5vW3|kR!;J@WUi=(J+$Q9T_L2)GQeeC%R}_b5nL~`@rW<~B$U%y^KtwlW&0Wu_g(Jr|NhUBGx z(0&cdH{bpOHn-*j|;x%Rs*1Vuq4wIgv7*|%E?hY92er$bQaNacj6!-x>02$Vn(e7}PKBBc}gn8@sCj 3kaM6AJ%mhP3-57U|Cc}xX-3m*OxwA&Y<*kM$7*kDITS0MUg!hPuGj&G>oBVYOSBEHPm9XXoE !+rtn;7>>%h8@sw|0aPBTZcogf*tq`{(!w>IPVjuf**~A1Km;7p(DY*$Ys#O90&OvacZ1UJ0Tr*Ifvas_rD%+~{m~iqrREMAcM+ <6Q_)tSb%|n)G$}X=A_nXm4LGe!KRgvQE3Irn7Qi15&v4Wdku%Z4s<>K7#F=RP >U!y$F6i-n&-c-TLq8c7Fh&zz6f?=jqD+BRd5}u8aIaX)ds^_hJz*l@98v!QpOIldN3?C7mj=*!T0S5 $*7T5oBm#Na9z9K5fh*%T$iv9d{-H1YV#PIPX4cz9WrEpOIDFa$4stB%IsssfG^cAkB(9q++2z%@+4* s|-HozuHDqnNP?g11G_NSp>-I{rI4vibA_oX4UkmI7Kni=4v$vJEpeOh*5oa-VjudSvIrSu)A`>qRzn w9?ZlW#Hx+{nT?5gOTFzD|k#{oG|k=zUB3&j{7SqhIs$vE=exDH#4VsqoYHwiDS+Jma@brMFxcOtf+o _DmhF;xX1->A6RbdZ945B884#fzsdslg0QhTt(-JC6i?68FdLw!}7Q4{hyd{pw6|&Yi|A2K3kDl@#Yz ynDTz^h@GdPinnznodS){4l7cGpceG`lcY!+RCpK^fbnYy0Eds4pRU`mAkz88IG0=L$@fk`NWKHX&aa fyvo5ukE)Ck)qru$1vs3s-Qw@ KzQ!tmJmX#9HS8S&&9c9qe?SujB%fUMPd*B#ic%I`LJL>$I?w>695=~$y@AbPi>s>hBk*lVw&01O4mdTA}gBOX=BK3P^*f-N!i?m_BSHLYi9% )6Vytdb_MBzZy?I4+QouCSG<(hU&%4ucclVc7nirnRO(4ZC!6bE`^XW5clONvd`zGSkX$nz;BCx7}Nf_lyS)K-Y|c^ygQYCN~KLy5r{D?lAz_!4kEk19n*0ak_=yf(;?pw4!rf{pZIoe;$X_#=1-XIpRN3c)_%3>JAY `Bf@umpCL3@9CI}eCAn5S4A|Z&va1@0p9RI041VfItWc=~t3zEZ_Z-+ZO2KoZjAnE`>#|any$x{D$jv X3)+@Qnb$nJ=i%S?-{7e=3arOMQs;(TDWE`$K~b3m1>2cxTGak{zNU +~!9ELFLcxd#uHBzRE=3-1lxaRM~gVNzIyu!`jSZp<2R%%f9AW9iGY_@a;hka(~D5{rwH|eDok(^!mf 0+oswav|oMe{5R`o=M8A=my7$yVzss(F`{6f-EY><97jtIZ1PvmU*ZQ|dal_4A%eZG_Lq(0le6;eLA+ K)jbBB-9lqV!+nW(p`>$N{nP@p>GBq&8c3DggZv0C#7_CUgcz@54li-?q&Ktcx7fXM81JR-*=cpV&H{ rv|*x^avEBV8k<}%}ge3_h8p>RK~i=`p5or?}P8n=o>yj}=bz%&4P)fKj#B6-Np7LC?6p%wej@i$F%Z zy1US+#*HollQ~a+>pAYHlGULk;`=9;rdd)sH~R@P>N}^3uv-`?Js&V3O8fpdoe`zN=QREgkUrQeX8PNntzN#U_YIPK+vNa(#gU6Naz@m3h85*YA1htiP;I}UVx5-CHml)#Lul{p5 )OX*r_V=(Z(G!Rv&}ao&D|?De|aM`*R;NT*NV(zkj8lN5g~o6;Gu~q2Qei-xhK)bssC`I2@kd0At#|fV!Qpe{@N`+J$NeeyIcM}aD5-YwXYdcPx&)`to)A0 erorp{J913k1OJl;NktMB7OuPKdFf77QM9UOGN~Zl6X|a&&B&cuZX}=690BZ{KBF|)&3`D_i{he@_gC ArP9`=f&E}A^-PiD*WJ?%6<8FVQhXW5WsRUb0cslQeWNL`U&ngVaZ;!oQr4Ka%XL%WH>>x;RA>;vz5Y XxPKLn13$UuY)+Xoh)Y!H+ms1RdgliI2|DXDFG*!dTS8nB1F4DBC3rnx1W#3|yTtzA8-b^{s#g+iQK_q@y=#UvKU>zhO^>`82ay6J5yVXp{DHF)iG$rh &S>%LJPyzf$3D{r1Czn^NNWqr2dVr*D_%V@DLk`VH;X5h39r9$x)Mpnd4*j8qUNm*K4>`q}3ZjFe0v6 cAE4UiYLO*HMWJm7l9axwB9JqTQ4NZIl7gd ;4xGYV7n38&xmgJZ$u!P5aVMp2)K=+z!jD8OLDRXD|)sZCXb67@asFzV(C;?BF#Ts*A=Fcp9$HFTJ^U 1oEBFg*p!5*7XpB@@DS6tjMEK-dNX<-5)$=#M}2&vRJL^?TVf%(m!s@u%G?%fV^J!Pm@d62YQl{I`gi _tYkvReTsMJBAC5lA%Bilb_yrpB&0pC4^FPZt%`JCg%_kf!PCUiL8TxE}G&X><5G=I9vHE~nPmY7}r& SA3qP)=tg$K$FOT40tBDhn6lO}iKo+6~#&`bG*X*_$DKx!o<<7E%jx>PitPNi9O>ira|hU^cnbgstDi ;*ClG)EsZ_QcBrn~Fkgcxd}H%@Ob(mSFawdsiO_jGrH7|KQ&pMqnq;<_GV7rQV%GC+Pu;(ufJ9AZ4CasWMH*BS(;^huZB- _fWAlo8FGnrJG4|CFsRfJYB{xe`yKS>;xtzIJ76Pn2{Jx*VQ}8PAm>xTYmy^(qNpFD++atUqY%nsFhh )1&17=I3xI>W56OplYmHBUg$+_xPzNrGekgRSd*H)dNfjnjR8NwCl-{G+T15ir?1QY-O00;nP0YzM$` ~%mK0{{SW4FCWe0001RX>c!Jc4cm4Z*nhVWpZ?BW@#^DZ*pZWaCz-jO>5*v5WVYH6xzdTU@Ta2GkC$6 h3q9P!H_@*qDQLHwA0fqx=Uj#hy34&0a1ZiUM2M oKmuv$!AK@2g@iqZ|iii7$Prp7E50Ag+MbRHFGBI!A{JQ~o2h=rq3%a(>;~%Z%;BFL=|1(Jvy%+EK34 P$tg|>SKAMYUhX$v1dY;Kd@)84xy!~l)nH8T_4Kg^OyU_pU3aLK@xsGp vRbIARn`o=NBALK~lPLLP<+zR bV2J`?xlT@EC&@|8plaiG%D_o^t+-72WEu=JdcI{6iY6QP$$~oO;@pY$gSHUT =Ip$kR#w|0HDP@Y$}=`V`&q=wfS1n${6m#7df2al=db6gNlATn}MBw SiVxL-u2X$$<0i^J0=X#W*dEjZmi8;f-tZCD;o3Hw0z4=m$xJ`}yEZ#ofqn0vPMRt|^ZKmZ}Z7!WuKE +=5`KmP~=zYvj(TmETDhl+G9|2`iy}O$J7+KDam&J(DWV+0faBarq1nDH^j(bh)mEg_iaEEK3{R1J~gc35}3)w0#vmgW%(miM9z@SxP1x%1gd3O31fdLVl-w9`Tz)#k!Z9qw I`AxEXELKx1_mQMQfE>)q_d?iWH1bn4z2(+-lEEjP!C*=R1hRlHap}Jl}W=MmYT&p27q-of%)sVS7Mm 6~^HDtY3-L)EWd8ewkYsd;{t|)KRkPAq2MR|jUtdPD|l-Fv=3h0NToS)_L8h6~~Rl9}7hW)-IYsSA&O9KQH000080A>M2TmS$700IC20000002}}S0B~t=FJE?LZe(wAFJonLbZKU3FK~G-ba`-P WCH+DO9KQH000080A>M2T!|{{)`9{6080b_04V?f0B~t=FJE?LZe(wAFJxtKWo~3;Zew|0XL4_KaC0w ANkc_WQ$;RxcywJ-TW{Jh6n^Jd9P!jj8LO&2P17`!m|`s?kz>ku42eTLg*b}MQ2+hTF?4MwA;GzQH?t 86Qd8@}>Der{{0McR!-<+A~$HR}~sWSbdwx{p2S)r$san9HQjD t>3`tSnBsT#a)B4{VA!M0F$)pXPmcnj6=0;8TB9@vAg%wUEiR8XS~+Vma5INSP5HECRKpmNUErb0YuY <)hVvdR-*YkKYA&UYH-n;I%Q?%PamCNMD2M RkWz=6#$sfF@wcu$b!fe{eQz&ht+qpB$dUUxn<*Ss2m40{FW09ZtVgL=3G@Kt+pFG2uB%Y{LEi#HUW~ VTXJ;aM=kehUW*(`_QMCs^WLmgE0hY=lBkl>-sppad@oY{O-|#*!^XD%3uLl~5UBt`L+#!K4!LH f0iutt|4ABYlFfnaEZWS@?!$YJsfS1OAK!lxvozfr@QWy$t%|yx2?ev{tar(}ZJl$x#_wru<5Urs9-| O#}(suqPg_azv3~?WS(G=Angr3_r0Fc}6zkJW~?O2wh6`?{p_h9s!f0q(D|OM|g@8FY*9_cNxE;P}K0 @MR0}cZOPxXB%Gy)RnqbM<;CnTP)h>@6aWAK2modQMO=CzL!Np7008;`001cf003}la4%nWWo~3|axY |MaAj^}Wo~16UuSY}b#QYpUtei%X>?y-E^v8ujX?^+Fc3xeImM8bLh%M&sfb%IFqCwJz+@(jsnFY7+Y ~qP@BV*$-qSR}31iAkiKGlAs=!j!3LG3PInRM(xKJh;Ny2#G^G%`Oj=rt@LwD(ptJZ(LA5cpJ1QY-O00;nP0YzL*B!dT_0ssK51^@sl0001RX>c!Jc4cm4 Z*nhWWpHI~WMyt+d0%I8Z*_2UFJE76VQFq(UoLQYm6cy_(=ZUg-}5O>eo99ZY3v0}3Q`3VLK>q2_J(A 6$))vh>|i?^5#qaZPTV$4D>VGl#CN^>-QUQjHP(Z$n^stdi5%Zu?~Ir vB-ZYArrfG%WX@n~!ACe@gu!crRoh~4I3wK82bpmu`y;B0|CimgAR%)N_U&CSdPHYg+T4S%F!WMOfy6 m%!HC^lA-R(!h`q@ch8w^V@7S_Gr682SodHIShj||pQVL_qh&R1mhAYAO9tdI`jYwtWZH@~D$UoVnDI Hb!$u}@vTvYRfXX+1~|=oPxs$~Gjgm<6;tA4Lx95WNG_QE7Imu3*qug2rbhHD(nm*+`F7&SvC`31Tj) ii^m0@XtPc`Fy|TcdJh~j7*Y(E7%1+Zc()b`?kdi+vquU3rgz_CpvwJtE`?Ro@H6vx7Ivj>9bIQiHsU WbjlZOuaSp3PBad5$0|cDb9g@*2;~QFd#N`dHF#1lJ8OvwD(a5X8{6m6>Wcy}#{p1X+RmR~tu&01Gc? pOL?>e#80Zt7B$Lq{=3!65gx!xNrc`o|EwcoI^H2X$IgcLWr=fLc0o4L^a*rLpOsrQd=f3u(B`_a )#V-X$>mz!o4J)a_)DcS>Y9PJ6D5sM5NPRu4>kWa3sl2aJ7%H|SG#GAh)pzyCxVv`Pk~kfiw%xj5?}| A9RPHW_vFoz**Q+W67pVNT|DX?zdDu)*T;sR(SgTK=(6u3`kG(LOY20qnbG`J@6aWAK2modQMO@Yo{|@2@003zp001xm003}la4%nWWo~3|axY|MaAj^}Wo~16UuS Y}b#QYpUukV{Y-Md_ZggREX>V>WaCz-nTW{Mo6n^)w;Jk-go1$$G1BL(@R;pl4 Xv_a(n~omX3jduGHOPXTeUIE&wDm7lOSOdM5Vs9cfvov84*~J^5x@ngluJcgy#IlzXyz|D+^OsyBi=4)?{<* adtI?Zi(~t{C|pt$2=0!0y@Dx4fnU3y#VhC9$XoBp80hJxBY{zDMAmH)iZ|H(5i>L=X)qO04n VMb4Gz8FqA*npcM`|+*@T_<8=!(@(i>Tt_dVd;XdmcMc;w9h`>W>5@TMGWgb?V1+6Thn?EnwrGnLrNFJ(jat#Z 3&gKAp)Q*HM^clg;s`DtpXuTGD6``bnP7(ZUyPbYjoRz4SUfjttNZdw~(S-WPpyws_nKF;_cY4itSd5 +itCS_{7?A4wC61SF)axgQ+^8t0KJ=H@smDx#5)bckuNMSmGVM-Cj*B&J2q+3OOE`>us`K&Jm%=K(FCk0ShRDI+rbrIK&f)afJ*!h-B-;>T@FiQ(l nY$sja*;B4^hW5FA<;$5j5gvdti!2xOry9(MTaB)7xm!ztywdW9Y7pFA@XmUx={c3;;RFV-DM)=MmW2 XO1u_G0N+Ys9Q!Qj7)|~)#3nqA!nFCA9d%6>V>9b>!fCC*udFnPO0#KJW|4=-bSJ+L$l)YS m#d|b$JV4KWhnK?Bw{;mUovL97-k-BVhC)40}2l%F1)pDejiHt;V+XfG;N1RGDlJv1XwpodLn$_}Sqi(uBbegzTPZN|V88m0K>t5_AAw$nP^;1$z!AFR<| Tmh)P;O}TK}A=Jzi(jT-GBW$k`d`7&fJiFt`%(Ei{9?W}#zU`h+_d6?Uf2k>=LM~^aO6za)Z6CLN~!sSCwdp%t_;0voS -YB4Vy~eSsIQdOx;pSYx7~~uY-cT_&Yp_m@61y|3{R0+z%n2EuCi}d4{)&A2^>^V^^qY(P43SMHY1V* QhU_SBL3Tps-03b$0y1rPQ7q!^IoDuwmhlZ{Sqw?Nt9r}s)T$`RXBT9(v^|ZPTb5;pctT8c_hPNfOtB yX22y;x5Aouana%tid#5dwMmv2?h58i_x+o8_RV3gd`j$9xehKiYj6I%Uz+!V2&YDvVMK(Ff@w=k6J84B_Sa&(uJda{ydJ6ebBt nsX7S!GR43rIZj94{czzNCQInd9Pt4$*McjHU~9Kic_xqja=O Ky<%&f(AKL8xk(YqvtCD=-NU$9blD@woiZ6X18YeaJe4f;IqH)qcev=y9z0?9u4u7$PUoskv61vL F5oy50I~*J==lcDoJ5hO&}Evr@6aWAK2modQMO-hDIZ@RD006EA001}u003}la4%nWWo~3|axY|M aAj^}Wo~16UuSY}b#QYpUu7~=Z}_5XgtU7luzcTrtRtXD6=M@nZnhpCV^!_rvb2Ipy%i^t4t6(JtK5Q9B0bIWly9a*pISQx$-Rsc3N|@C9QUmw7JaKx2Z+mc>jswp^OlSp5?-zYGe_Vq^r_ls;w03?Ak%%h+ORQsRJcn$pdJ6W*>t7$1 1ss(J&e22bf(V=bYAoTi(3ZCgHc?FkTSN5dF+bg#g~#lerkX#Lv(ot55^Skhp_@I&NwwZ0n$yHkD(nq &*5jvrx)fN%lK-m?TG4av;RIwlc>!O=WSB`!=4Z!)Xs%_^+i1-wTQHt1va%+qWE`@;aN^Szs&trTwWx )4bo-$)hxDd6h=#Dz9VUGtk v?j%;+Fzdu)(?#t`27>t|K~j3al_!wt~S;$1M$>N?a^W myDfQ)Fv?2R!TXaEFet&269FsN9gy=KrdM2T-5bXR~3=t*vq%hyT94v(Dt`{cdGT)+Kw) BrR1~W7ByV{GOr3roblOzIUdzSLjXkfNnSxOkK&`)K-Pz1TR(kZZ?}0Sc25egSkg(wM`1NegT#C;l>A do5K7pT$lzIGoWuom*pGG?`5v4D!Czu89rg&26b2AF^G9B=$HKQpc@~^jHXBI{Wk5x)=D?Y(J@o-FbN 4iVnA5N;Q)Xx2kfBzWSu|jbQ6-@U;e~ruht0YoN)^%c0A43Oq7Sy^AF(gd#fG#=vaesaJdZ|V)spUa` H+X?>Q`Wg-cG?hl0G0o9S-ml=cXpwmx9JdeR|zO$kSQth1xM2Fh*l)0yU 5GCewyQMn$hIyDXW0O4+UbR(Nik(HqyiY7fZ2KmW`;7RA4kFIrwz^ppTnJ>Ix6TnNC`ipb7`M%OuU!J 1J(1t%5eLr1CtQDASl#G>nzXAxtVl=}n|E$b7Pq~Sk2-9?5N~|cXFHgZ5mLdsJCTC&P})gx4n_o_ui& gQsz^%P!5f8;oeUw^+M0@F _r0n0Z-+_;;pCr4eX}afZNd4TH`_}fk{}T`Y&&O~X_KF|efudUmQpmJTK!*i9 Zm2j3qpEeoP4i3RFGRXWZtY`d9Yz?Vlmg(HtX?JuyO)42y^|i}^lcfK<_CbV4@tpt2|`MK4x|)ar1&< Zv!75)0|XQR000O8W&uT92T0E-r~m)}9RUCUEdT%jaA|NaUv_0~WN&gWWMyz=Ze(R{V|ia^a&L8Tb1z ?XZ*6Q}V{dJ6VRSBVd1a2x3c@fDgztTdrCtDlqmof!TR?Itpeh&tH Ivus2dQMRrg)>|)G}cLd6u1(6*z*1dgR}lt?U9dIox&15XQ@*i@VlL2x*KEc!Jc4cm4Z*nhWWpHI~WMyt+d0%I8Z*_2UFK~G-ba`-PWCH+ DO9KQH000080A>M2T&)k(ovaW50K+%{03QGV0B~t=FJE?LZe(wAFJx(RbZlv2FHA{8MNU&iE_8Tw-CJ 98;>ePIuU}EYOWSc|+QxRzcus6=s6nVYlVI>yHNBH#xYKqkBjCgWJ(p+jGQ!?EDBZTxYW+ma9O^NveWOO=TF%Y^J0N(r7I&Zf?%C9IxfwG MpyzHHf8`XuX`vAd`L;PG(sczlg^GB=aB(^<*ZyD$Y{8ank+jT2d<|XIZxR<>SZIYSo^s!gd^;7E<~O -)R)YQ!SuFAoX%GQCcUdOrCLxCojw3MafAJMNrQE+-=KTnG_PkSW9EW2Q3z97*E1Q5XoSPTd5_32!EF ^GZ|)(IEj{1rR6+`*K(3T$#A^P!UQay(_}6aQbo6gaAUIj+REk7t6{u^^jWCoDoMXfxGeV^+(348lXQ `!0dbShNhOMVH{moN?kxq_CUQ? Nf$freUIy{Z(l@U7V#xDHAQojhl&AXUbs$6zfx=jZ2zS@1clo*Obrz;y~vQL>n01ZAdzxtu4j5RfI}v l=W^+@8QsSwbexnb_RUc{~JT&14uN2pmkZWUSI$8>xf25^Ffas);R0N=dR8zJwX9>C${;b57!9CI35F C{c6s8~6Q&7f8QTBORt*)Fnwj_lCGlmhsdK)ydGmeZy$M@3)im<>Nv>e>~;YK^ChiW|WAN_-v6T&zMq pC5Xe{46kDS=!Keu&mm3NHQAG_3jds8#OM`_My4>GC)pBq4pS(eW^1TTHf~I%ke9>)PDn7fU*ufPjYk C==HFsy?IM`R|?SYlWw>8aZaispvL|q7rGYTH~AK|aOzlLG_ ynR_vUK4Gd0g(~y4bdV%yruoLDa)|n4=wECew{W>n6%SAZ;)23>ZG+*UXbF|_Qh_}@=-%$dD1z}Mc1i WmA@4{>-3n+kzq}-L##3w3iLq&cU>uhP{;*htO{7+&Mz$PDA HTUFXa9Y3r14Xgg;)gB`RDdn;at&~Dm$xnb`<+RFy*F*;v0XfG?;^3g8Z>jv#rMSJ}|ZC&acU+s~5)$ sFGopztxhM%wMe%?!a*`TfY`O`kys|M}m!L)TRzp-~8ZNpdBb=sfy(Qf+cy6&r=_t9Q9XgdefZYGt6& iiN^_I^5wcGKQZb$f62(Ox!aJ4eu7HE1u7puKL;R%`I${5{&sMg~5{SC@@ESm(7*=gUU=t@Ap7wjsB= I)t{flXjo4HuLYHv_SSr21Kg#FG2vWHBhIVCQ8R2GN9;ys!x<|EA@e@9)Md@3j$*2P#PtIN?9AiqhJI OTtnJXI01rI+QN%b_+1rmSu#?YTqnzlsbVexK=Tx30nln*rpZ-E#VOPYzLQ`OrE)Su!3*?60A1z?UCP nSFlpFRC_x+)mADI(=KLh1s&zgN7GpIDmYS5-g&8OrsM?v#5?oW!7zHaiiRd-*eN7;9FeUUXSyAz8m 9jr*qFciRVwWY+l;5mwv%#z%vw@B+QZkGy6IntXo+f${Ii-RrtF~> LFq{@wm)bw4O0|+H11%-0|s7NRW(~Nc#tPPx8=z39(`%|d$K#|_uP>?==<_^;7PmNb$s9L-$`5yM)!{ Q)%6|u#J7guM)!mMJ1w7sK0+8iWe*90pZYzUl#mZ@*Xcvx7svDIx+Bhx_y}T}_5U=PEUAIQ(lMBww)B_de_`;836!aHu37a-0==`UXG3nuS A+eMDn)!Oj&s!X8L!1l8pK)o5-M!0uvq;%iD1C1vSga9gD6{{J%iYyi5N}KRy0qGMV3+DY>_6@K1q8$>cQe4G~=D?@Ru^;_qwz{>0 xu@%PXCePeOz5xXbl-#I^cBt&!DFMUXKFOFI9g$8=k`kHZJo>4CxLZ+M40^3FeP+;uG Z`Dp}hBZR+4*RZlSs2$C%V4PbBFxuK0J_y!tLLB$SDr97~Q*Gj~PK9_wIh=!^hXg$Ns%-NaSY+cG;gF96 1^k0iI-NY-U?_j+bY1!f&yf9m=f9rt1b1Z5ezfl#cK*Wv-nM;V!$1Dh!-#z`= ()GwptL37!jb2~+kCY%RazpK-*Y_o3mp8#A)k28;1*;0#pz4;R@%KUpz9SoD{!Fi=HAZVg)=@CdF@Sz T7?mBNhGvGlJ|v?0+2>BgvSNVJxo&E3WG?DQx#y&BZ^U8*_J9G>!-HtV~x?Y=8crCV)YE7kWsNzaf5s 7rbkUHOK>lm*v-NP@3p+BctRl_Yd^-~#chk?!M~CayeQHvQ&r|?8g|NkWn7ZGj3>~|FpyIhrI>lBb&i 8LH~6htO2qhlCNYO%uN`O@OTfeU^fQ!b!reQ1&wrJES^IfJ3oZ+8ceTd)x=lYD`8+ULhWu 7Ytv&j0&^C$H;lkyD_$ivxjLtz&%BG8cr)fP)Rl63O#3Wn}{0pU$NpAm1b}fwVEBmKYNslOmAa2=^`7 wdKwA`SnGK>%CI$JKht =<2~8Hdtwvs)!p>FP~V$9#xlZi&04`Knkj07OpsQS7g&a1mIRZcA3-8Z>5KU2k8H%VMJvatS0I% gX{1}|Tm8g}gzXMbVjA9*BFkG-IY(ekU(Zz0lreZ=5#>il@D ?Bi?R{suNP*PA$v6M~jC8|AH;6*SoH#_d=Qzea9VqjRkdqOrCn^pHe3k(#;75>-sF05QA*3TV6C9g-E Z7lm!A{O?7v9kgz$4xPJn~S$BkF)hN}I-?e6JSf90iR}Ya__EWR$!lx)$q#OuRWEfhU?0|3`kgJQ#i=5(?Nm_ >bjcd%`uXNs4$Y||`E?dz-trge7eF^;>0wxpx4@lDjaL>5q%I(Trr~>)&HMy;~CioN!pOV-$d$*p6t9Q@D-tL*1OS_F0@1 i`~$-#u7bV(pLr0pEF0pgOm98k~XAHf03;X- NU?PRfSl+V@8YGjE1V4DpsRaB&BNjP-pS!O0)N~Aw3V%Q8Ee2AWX}hyrQyNXe~_>%Q*Zu6>JOgtjnSPzQ=UVjdyTnP&!hum|{=6)A@LDesP(rSGkmR$Pb9gWSkE%AIb`7s{Xp>q(-ORHnkI5w3AQ X!!N}Fx7jpm8y(ts{bOB=)*swIHQxRI(nU4q7;Mf-@J%x{Ux!DOM9k;UD2O%%{nbrXa7 ~7e{qM^*#3XE&w5N<#4$-t=`gkk>t}oy`5E7ON%Vx|r>3Sd(pJ7?X>H}_0st?NM@;&xF|HCYG2^&m6* &Xhhjqhp7f)@!UDA-)vNj183rc%$i?nVspC|E3(W!Zg48@W2dZkv}Lkg-DZL(3c3Dj(429SF^t)g|RU J}OiyuXesIyC^@o6yI^S&=mIy@|qA*yU!Jrl8Hirx@D2pa|#(0qT{`5o01$SZd>lL;p$MshE8n>6y%Ze;t mT;77~-rX2zmdoO}jR6i?TZ-i^YV6$^U|t)gviPB`fqJDZj^7%h~%fiKf(Ft@~L^EX2IA*|GFvZr~O03(OZ$z$;VSmxB#+N_%@1~g83M94eic-9d%{=i^6U@s^O^f#}+DY4Q|$xj=+u 2XB~Ul_FR-UPhQY+lNCG!vQzYl%bVcw021EDMDRl!WS(yj-DY>93?t{`TVF>b+(R<7d&tDYf5hxKbb* dNKrZ|s@p=W)yhT;u@AI$&;8a%8)yJuz;pK!^LXSvJ<1xo17NC9BtX~b9suUf2FMx>1kjdW>(&AkJv{ Y@E0N_WvrfJR3=){k(I7D(d`Spql!LWBik3L8M3N;KbNfBlbGoB@6aWAK2modQMO<*h+nr?r0040U0018V003}l a4%nWWo~3|axY|Qb98KJVlQ7`X>MtBUtcb8d6iMYPQpMCz3*2{(gUrL1_=j4;zg{Hgn*&wwOQI}yV~w H(?Q|yot9#VH|MnT=DnFWvmT6Z#*n(q*kTR`&d2v1qCDln!Zjx{MakeV0+>$jrsL^kI)is(^$BAAVVY 2AE0dyaF#~qMCBo~8OJ^Z=Ie%+Hcy9EE&j&^Cj`X1 &`kAK!MHZQOyvQ>JblF;uQ7#JEyP@`cpOh$Mjr7)`=iI2kFW(n_~2Jeig&vyYA`Hk}Xu_Z7?)NHoF{H q+^x=j7^3a~Ni=4^{Odekvq|y&jf*B_eV(2k@XFUDSFG*2#uqNcGLm9->5@)~H8mtZfPmvO8#+6Gyd)*&?2Zfas<(zA0QLfXumfw50940J~S3Tw@iPbeGNidK?on@D 0uNMyj^#f2#0|XQR000O8W&uT9T}kCHGb;c9`=I~;9RL6TaA|NaUv_0~WN&gWWNCABY-wUIV{dJ6VRS BVdF_4ecH20T=zl*2R-UXVx6H)OOn-Psy_0sFY44=tZ0vORuG^!gNy=uMBGn{iN0aSy_BHnP?vvd506 +i)B_%y`&&)mRABiLag+f)KzEA*n#s1#Dh|44^ZjQvVneBg$zwGSp?26-Zv8uA0+eQS(BXRiT;ORd6^ O^WIE25P+kABJ)AvAlL#c5HeiD*jE+@|97s<|x-abC`vhp0-$i*i{cQIo-M@FA^41mhJ=m0d5J629G3 X*y4f24S72sd#yMeDdo2By8R_A}SJbeD><%&FNQfFV5baoQ+ 9>6E|k?8x8CT79Zg^{KvHHd(H}t?Hefrdl2C2>4S!*7;8QE>0JXIHg}ss;aDxgxD2}D!Q3RN1`ZUGWT gk-Jrdgh*xEi!pJj(8N#C)WYO`3H6;vpfA&AwMc6i>N=`Z{%K5)oA g~n58>Ie$bhYB3z$1es4ucSy}*W1EoShUdYN;dPOq0)-ed((7uv`#wb|sjEN0ow>!_-csWoyHzAxx|J M6N`=_l1oeIMheWzl~Asmu!cP%rYVk&o%K1uW056{rBdRw>Lsy$29KFUyAJGo?=epim#G{BRL9w?#Bh nNYqz)#4DEk8yGh2<1gtp5H3Yj|HKFq#ErIoFtv`xIsNS(vX4oSq;Q$q9TSTW5o-j2{9A6REKGSkAfk sz2Qi=fQc=uLQV$2@0g@#Ivl!$InqB@J8Et}h~VHx JB?D;yX>xZ&RzPXV}=6SVwnJ!64e#Q?i{l32V=B1QmJ(Bvx9%r6|SY*u#SkJ4WiXLEjFP06kQ-5wDXH8l)Wtr=xm%(~#c*XFi& 248Nkz>j3&1w-%kJ0#EC5o{EQPC4o(s FyBR0-Y7lBKckqF=;PzywyYZ|%DZAP7_?7@`0wS>0!1Xb`U5tEZ!nRo;YjT7e<|z+!?75eZ9)Jh!QSN Mb(FXG$e%$(S`=Zvh@--!)$rZ9RB0HO^93lnVEE@C+#CG?|M|^uq^LNLn)ntP>P{j3!gFm0ryq~h+N5 vc4bXfM9E`=GYA7Ega$|uIc6L(W*apR)mD{L%_}bO=@S_jT1vEK5`>u)>3oUP5P483fy{a6RQ)sF4V1 qt)baB6upg*7Xx3sQ{OT~K5#D>+KWg1LvxP>K9f3`*Ns>F>jK2l{Gy?>qNbSczPpk~_?t%BK7T8!3q_ {^fKheJ@h&;|w0qm~`Cppj|JEZuDY@+xyjhof$0;oL%rhor?bSW|@NTCKiGqnlcpTCswkDE;0#mee2J MA?%x$P`rsNu)Ri$e{D%s7aZ$+q$0wJj(J8bca$Xiz0yUYVX(Q8pqeY)?xnt&AddVQKj=JqsV2#eZ Y|)%TEVKS1mwIBxtC*gWXvc0D8{=4Oq5KzqILVBfcw6>lz%E-Gk4*`25L{i0;cQ0ge?JOhuHi?9=KV; xBQ%0yJmK8tFeTr44MMG`CS9z#Qpu1zLm|N)bk0LOc`T7u=^SgbB+sy3VuuHccEbi!#sRm5Amg40C?| 62&;D;Em$D8iK0w0U|+gH$Vuk!DVp(RB2R~1wcSlHvt&l*9C^U?e6Jy?)eh=EyzE1HL Y=LA%VwL1?tTfS_7x!t<}s-oAV;UY%WtsDXwHA~ZWM5om?9hE~Xc1l8FrLrqwShubW^H2`9it_2~!jj AX{eT5!U1q=X{DDvn!%|!_#ce)!)6%_TotsOqdfZyfJjPIf3%qT$qf# 6TF22M4HSt-Ch6RiN!<$e%JUr}u$mrl;Eb<7#?`rtN9tIjH51@ptbr> ZH5s@`K>P{tC5VU7E1t?NsX_?l;Dp`Hv^3wL<|rJ%j#-(bLQT*O2EXVv@(|Wb Egz$n22TWhCdSbmq$Rp*VQ|Ti?Mc8$idmH9OCYj1gZOv}z-o{NM0mC=XsJ6SuW?lLfkKmhuI)eyIA(* aUF)3%16Fwyyqm^s?C?#-@{t%=@H&43G|@Hj0fFK-%)CNWNP0n}8R_>;P>xUDTujeiU!0!3diD|l(GP D<{{8Lgo0I2*Rsy9H>G)(dXq5>~2ZbRRf`a@BROYk1c?FF@o&!TwAj|I3)mYpkStvshInEr=6Izg+0V D5N8ri_{X9<{B&@FxtH#?8itkha2U?Z2ks+FtfQ0vPXqm-3Jz5-R90#6du;$&DsZZi}jk-R!bng~!p) ye^cq_8MwJx991W90=|lx7ll=j@^N^4d?DUGe?*-*;VnT(G<}$n=9l6{E;Plt>O$2g?@RdceNI@PuG(tt--pGb~47byb2(jPXP(gQx+wn}o ey1^96}sO^W8%-FI>Ky|vg0c(@yoWd*YTQ9(sL1T;g7jQPxkIM|G&Ou3t*#=*KekN`(wFK)pRvk!Jkh +>L^CknVSZUN`ie#{-903bxYaB4mFat`L?}P vJR{&QjnJ82D1Jnw>{jeO*YH)t0!>unw$^=Cl?5510pc|n5oR%X10X9%|0;tJrC?VCr~?)O`I$zQfhU e=;Au(Jt~f?R$}Vao$$=A7gGA)J$tZ|W1^b1mR3e%gVn0igj6)t}o*C+o2<}HFAdbPA*s=nn8KE&3-+ |*_KGX&%)dW+Em}H}Ifgp?w0}t(0!H=f&D3}#2AR}*%Apl53lk{CyH#M{#ks#>-+Wz!AqOH1QHQ7j{_BfQ;j04DlbdsC( `gDdP^9b^0%qygJ>oJ;)CD-L>(&HztS=Y*ytM4c{17K&Jz0MT)S>IBXB;2|rX9u9oIYlrTliSAIe;cE )ZH%^UZ5V}ML1ONc^rDd5}%CQUIx~T5t8cU`wLo-DY7p@gi5(&`w&6!81(o_5AcBcgT cr{G<$TcPGO~LDjPF(QS#ID9eBbRff7q#=(NBpkh+@^f{8q2c`hQ1YQY=E$<(*B1(#LvGHclC@^FI%n I%~J>A(dA%NQD?+r$WsIn-!ykA+kjZAO+V>jG@L-khV)5+LD005gNqu LfOU+UH}*4!v^Fu?z&TAZa;`y8?Eo3qlXoo@Fe`jG(JBys!Mt `rtI6S~YA)9%j@P9;{u)L}63Eu0E^kWA5vN3oj2A`ikF_WUXpy7113->d_bzOSsjaN#wv=C6t3RnB3o {0_RQArU_|I(dg0QY-Q5wn<_-N4$C(aMU&p6K{DRdZqy2G_+f5{d+U-ml{AaDx40&2^zR0Vb$)lt(_f $=-UT+=CLc&q7jIO_LJ71W6Zbc<4gE_NsH8V5o7iy0rZzXoaCO2y?Y&45XUjOX_ai?nM#d?6!31_V_l8l7WYnfMX;xf>rR!g97@?C99== |^UJXg>wpF5Dk>Hk&d&`P+B8ERj_tDVb@81XytEVxRwZ(M`4iTg6ZgeSNMhjP)4v*D?9iy6-D~JrX#o *%5#_vRbRQ$mV$A&PSm>!pT&YNuz?OeyY4po8EY*Yhap2L`sMA)d!gy&=3-*p!~?=LDL5tp#Wp(qf;$tVvFwIS1m~5^EHx+8K>C7_-jLwMjsf5U?-qc# R%w)T)<#1r#SG>S>lNeOlFPqC@q!XjAjy)kXa>Peifb93aZLBN$ll=yo3T2QSpp)y%r)0yfInij-T(R T|DkXK;zbN6Bs?qE+-4cj!!Gh^9u+sJ1%uuYQ(6t+)vWOe*YI~=4Gf>4Ps$SkM9JVs8L@+?)oP4%jaI6}DVP1j%?_bfXk)7c6Le Z6m>mjL1W`io@c5<6juvm_+_Q5EAV)T*jSoBCf*ya>B;@Of2ybanAn2tAly!NR7TI64x0$33j5$@Pe^547s(B!QPJ(}R_RaL|#f#55`LtX}uM0kB>9k6n&GP{ddU-Ut`k~$n F860V(%T`D10x)+;p1HYr{TXvxZkLhX;YS0tlx Lc_73X!7wx^6reOoT`HYX@|Gr0@-2a)mx>vCDeDJR{9IK?9MpO;yMYZ5FLc)?3_6fytLIJbqt87KDZh |Babe#7rd00Cv%tBIPjGScLy(ve3$NCO3Q=Fz)szMNB<>LH7zi(u?J=n3LXG`JwDwYxi#`xbdtH(WBb 5(pi97OcIYvqGfeFq*if@{lNjY1r5?O>2A1nesch017jU0AC(TyM||YTCC9RH9Xb@II`S;#>%NeEYij PlfzG+BE@IWpAy;#h9{tURcgGZr83Qr)4#*n{p92il{S1{ FBQ?P0@+B<!sB#x #$PoU`YlJvZ>kp8gXEl{c`^eGV*Ux6HD9UZX?#7Ni*zo-?loNgbPt`BOkPGDkcr@0Kx_M4k2Zl1h4$k (6+Gv=x-cN`E14=$H2eAX?NwiiBk+@w=9fwH*!^(=y;z`~dGL^iyK*9Ag^d+_F;iTLyxlV7R`w R>!Fmj&7wUu+h1RH4c#wnPUgfJPoiHU<{aaWWN?W*BI@{aM*Gw^O(tbwOR@vnzD 9efokp8#HD-F>dH7DN4zgN%t|&P?~7T9^*Himcr1tzls=s-;tBD2Ji{FP|RSdv~s>wegp#h`Ra@P;mD #R*(A3x@jE=iW?B|LS08NfK5HEZML|i$@Y^D(dK3w@OEMMAkVNq9{aJx#u&+uiqUXqSG>Ubo3gmaS~t MypT+O@zZCx*%@_Y7(k2d_xE>E#2-|Nmr@8MAgrh^e1R;1j7QdBpw=B3h(5OAG2hp$keW zW*9lUfK2X`Y=th2<%+7eOPM~>J|lPS6ww4c5!bZC1tz;47FGbgR`M)fpC+xP@)1%3! j}_18l9=;r|;tu!m#tGCdw6^HL&YGgDiX&f2wViltf&Y?WxNLsJ7i)9nRan^3p)#8?$jivV;DSLw_dP (1=g1!OTx46)z~j5Xf&A~2N0iV7|7;%pITv_fniHJsf7e{`|D &a;>@MzN92(S@aeEf1UsK6^{&nqY`}4^Q@Sc7uSnb+|me8k5TgmK^%jvi_Ce_>h+8kw6XSD`(heoS&GmNc&M@_treMSPW&Zlp0Zh^TCsA0`3hZ3Ob&#GCNT&tw%T^dDegupbdAv|w8`jXAt0 `W;d+G%p1cxCJ-fzPPTx)(aDL0;C;0F8px2YJmJA_}k!B>hSS~12yWx(Dn)RIuDi9UQN7PL~(?Nz`zW ?Qlb|~|QXa&Q9w4_l@1$KyxOB9)I&~!n)>f5#XQ@Y}?fE2F-1Qq}uDqRBvjkF{M*K$epyIQ~3xaeC=2 +C!z)`7u^0I}BdLuo8!*CCe=OJ5X8-wkuv%Tbf|BSd!;crcX3MJ;7Jy^%h&E4^HBLBjHy)D@jPj4=N^ !@QUQ!=^YEhiXcX)lA&leg~yXB24Q#;BORvs{SrlAzWNr4U|*OOhdjfn)uE%_cWVFBQEt>;uNJ;yN&8 wbxZ^6l1rGXE|X}n$Tk%vVFL>fb66LetXZhn$-69|DOQ1!8x~(na66E}Rmj)ki2!}w|KNJeBL_11KkF b5-#-C)BMF*LwekNYcz^KAs6RKr^Y@*wGU#XGNdwHm)|H8cAqEpbsXB;rJeQ1VWhyV-^VD7qkCkQA%2 n3#OMQsTQJT-B-EvVtLvOkP#tpDvs4;PoaJUthiT5B#glGZ)F$37-*yDE>`4);Rky@fYvm=&2kw)P{2rK!q0z-ikouCXRELbda%yA+dYHBHse4riY4e=( G8EmQ4{QLnGq+^@ai!0z-JuAx9JocOl6S;o)Y4{hc74MY53a@F9Pns#0xlX(F?p@-c04m#ng2M(Yvhp s8)M0W*9D3_Qg*&5dWTs(`G`N41b#TLvl1Eok+nveB6?{yA{$lD?4Sqbad$x*`&h_Pfql#f^aoWo};_ }VJC3kzkjbT1jF5@5F`YAHI9(ua{d_Hw``HtkAL^sr=NcD^sxx4FVt0wUq$g9U-3IL5eP;yJwe`nwWJ VN=yKNIj^Ur*;Xj{_sk#-H`eLI!yKVY|Mvpu3#GRO{l(! $Lx*TgW{bSjb(!unfpF4zKY@HNOCQF3F^T+qidD(@aU)voy>iR|lPT!$n 2Dk1ZBWj9O6PcSQH3W%aWT>91nh5Q8g|7q+*Q0yF`<#L3q@f%*#__sIpA^c&vJUmJV9-S)?*csjjb?- Qzg*K1=(I2#4bB$APC?62yebNJA9Sh?4Jph&TcZiC57_pKzXyfF7}G}d6nKQ^Qda`7kGMhr!zUavnkh sakMZK9u|4>thlQ=;gyuj>zt~$@G=rge>s5Z3?dERX)1Ulk%)upPDdGd7@`0ND$P^-hAw#*it`*CVNe 7}-D0fz?X9p&aEmC2;U|J~Ba`fUYLAsJw~eUaD48^=ZJ-8#?@5rFd%U^7WgOZ^z=*$@ dpy@u!pjxC+-NvD&jL$%bT>6jdo6Krof0>xO);its8s ZS-?VLUo2Xe}nH2CA;Jra}zYXTjv1ALNU4uQVaFos#3BKKmLqd@IaBi}+aFVC``-+~PJ5J?<7YCQ|OJ va~ZzThy63-EkY3|GT6dmloGTo&K;U4^1zRF#Nd0k7L3AqD8;z8wD5VM7;l{>j6!t@|>J4b=!wYV-g< KU_ueQ(cYEcGBKY9*;uSb;`fuum!eEAv#ZIfsbIZ|b_i8>k08pM H%Yn9b((^1t%(pDzg^<@q?B24}bwxC!JlHSn`N3GrLcK@Gp;QB^KbHdLLgNT(vD)aKLI6o? hmZhG+Tcgp(%Qy20-jQLW^>e4;q78+tk4f>CV8xEENzx^fx+oHh!O^LTI&xJ6lJ;4Oh!(kWxf33$xbDi2e!-sV{*RULDe;4tL_R};jKl~?((oJ{c-? $d~oH?utM8jr^&im8g1lE)i1wlwom@nvwd>4ZA=W)ltHc7|B{RY-ghW-Gw6BKkw0?Aq3IThgP9b5oiA sJMG0Z=*R5l2@nl1GdDNZT7Mk!Q&7BVE&Bt4s=FS!nsWyYw{n@ZFspbimuys8*Ahb?PAyGPhXrVe{04z1RX#?2GiaztfzEy_-0RxtI)hw%t@8mhLe(aP8q@mZ cCKABau#DV+@t9lX`D$o7QUjCC$;E=5v2lr-|G_&%gy=1VhMq+Q`1Wy4`}q7|**nx_yD2NLx>O3&QQf3~`-bL+*2o=&uoeq$t#KJ`My6Uvas8Z7;)F gI^kGJgc)EcFazD4j0>gf+8C#OQZ|r`q(6swKakjinCJ#wA@rWDrqGhp+n|>^cXeuO{4gtO4o6q#fh9 }tQh3OT%r3ZkQOz(jnc&xTs#R-|E7mlGgoxuaTz=kqg>d5h!?t(h cfTCLX+**06ilscOs7=>G_m$<+Y#*D6q-F($@W_g}U<;&nJ!f#Ya^Bq&HHJS`;O;7it}wP(LK~akxe5 L$Y-wuSin~kV7oJkk<%J?#!GdCZeNv^1)E-j!4Xd5&<$S>#27EMnK!tGji7T#+n+V5Qw0JR@_?V%35?+pBx6k5JOAe U(FGVKpfDQeQbZc2A+|08@oEw)v$uY4`s&*^1eWR*1_3?vyFH!4U_`Ky5yEV;SP^j$mBJ)NAJzMoE?S &Q1`~g!!sa3S4_rhcg%mJYcT~{Do=;NrotqFD>Rd*y4eA{iXesfsWc&UDUF+*^7IZm!fY2S}kkkB4HM lL#ss_D|vdQld15`?#rU8O5aIQ7OX;A5WZMG>aeXkOuG?$yiF$QxCf;dl5pq-ABf=2oYP@?iZ>?b2{( XmvO!GZIEf=#Ak_pZn{rs;kpR{=Q`aAF|cx)N&Vo$1=dXaRT}lBD4}=v-Ow|L+(^+(RCv>)7h>W?C4j uQq&B$oxD}bHWpK}u)lBax{uDjEIfH8Xg6ndD69lV6l5qhQ5!g4ZZ1s)UGz9-qRhpRC^}hm6~K3r#)FZdEXgr$B V4sst~#<8&uCCi|=wQ`L$U`4)#P`UbepSmF-4VN`H=c+nlr d#!jmBW~^2&Csa8n?Z@N~*WxmIafTJR~YmXd~)dzA0AKNcMzyo=V7HQ)tS^%X|uCI6QmaR)wBlLR;3J SSr}v5arDqF5{w?9b3@QZp!#E{doz_GH&OKfVU9LTgM5L4aN>nbYk7AM|@bJsOfoDPQTxyv~TB<#-Fv ;B?ImC9%Qq2mu)h^E#l*HzKE)<#*9n}L||9;>^Z$JgvtqOyg#^c&)&(Lw%uFrBkRKe3J7ikOE8=Lgs# 7AEVceSvU7RMBYElg#j7-#LcE(}=r!!a-mm<@OL^Yf>d@O|NRh5(h`JqCDtA5fR*5vK^S~1`bl*>A6c &BfNuJ?hq`q{{05e7cW?;wH`V}Ch}~wN`TQlyY!*}aNcLjTqnis8(Q_3yR$dXdx7D7+dn*fGJ^k&E#v2B{lotd `um)|dVcbKf3HiU*AG|DaHoGfT{B?vi8UV*(y6i~bOZl;J2M9MV|YaWsb)i41c&kL23x>?o)*8D`K0e sG0$#p!O%uUqav`VwOjm(E_(BWKJ3^!F!T#;XJRHki#Zt;OsD+B^Fkf#Bn!)y_pLFU=$N<>pX|}s!BP fl^;j6dk|^{0R3hM3!kEI3e{Z<84y5rFl(b-Kd9{vC708qfUE{36UK>lgWHDSjoV;7OmM?u9hEACSrS >NL)_b&UPqsLQqHay(q^4vT-sO~ZH-F3*$m1Y>6-8L!O^_kJ5+2)oo2|VsOkt(&mXiC+^dfq1r!7l!) !#O={U}`2rE1v5dbsZVp>8u4&9&e+dZ>3M1tUCz+-Zu%s%8@Gm~PHe;wv6u;;ZKEIar>fE~59i)q)4E aDxZGG*uL*_*NCVPJ&SB&W@6A&Y=K9&&XxtyZ-=W`MKOo*Sbr+g$+S~635JFQ^sW;x`J=+5UCaFJ7;1 jw2wsvKx{yzZoIoJbG3*}gCnz=*s0@f%=<5o?Ibw|Zwty88kt0TzqIf;GX6Rmi8uatImg4^!N?<4iS0 E(OTO|9r0~gAw>j_TAWZ*K(=;(GYA;Dl()6!f#4y=}S3em#m|1pvBW|1VqZSFCPq%Pf-@e_k4=rav;) Ait`VsMuDFbcS54N5z>Tj)fHvjN#k6E$dmSOV`5ZtOQT@D3k;JMRciASvEjSm48DB_Mv-gDcd`^S_i* 3$+5q>|P}hue{01L4=p%XaIMkXy^R?!HJ@Wo)kF)PKWAn4g!MCxJYvN$aBfs=nI1ZJ!Qq_>_0z77uKp rmgSN)l<7BwC!xY?jFOkuyf^YMrH>NmFrh1Fl%Gm3 0_fgRMGxt(-m!w?p`AH37>~Kq#*#0l?PaCbg3^&f*den*vw;j*gV`y}1uUl=l(xtxZCV-*x2Tj1q5B5 )hvWb8D32@x*&OkPE6D9rFa$@Dzqua%S!xVZam>b#PpSFok2rjKq4@Uj!EoqHlLd8zrRvgQd3LWz2p< n;CzM4eSjf83Mg+cg=rVNC2pEVJJx@HE@;?F&3xu~fyL5HyXq~B603D8Xg9?x4!;<++R2?LN~SvTc;U GNNgMWuIAqfA2HgMl~r?&I~7IaUSFB6@dv#{-TTR}7~y$Q%Z4wY^*_`h}LUN7iD+MCH!MHVoA2wKGsS ^s#kU9Mg-`(She8fOhxaK8DHfZk78r!6lZ~NjLXSop8d)Ruxg$l?!*HtDY=l9Qa=gi`Q4;EPBqu(t9y @6aWAK2modQMO>Y|)qt=I002ZP001BW003}la4%nWWo~3|axY|Qb98KJVlQ%Kb8mHWV`XzLaC xm-dym_=5&z$xf{k&oeD$ikm+Q4Kx@|9MQUpkoLpCYU8iqn!w9Tw638K8a&f&g$XNC`vdU(BeHG-@y& J1UU^Z1d}m|c8(!PZ48^X;4+>dnQU@yTdB8nc&0d937iSF`Bllzn%3_51?<`xE=O%=wYs@Gr8Af$XhZ i(HA6)dj0}g8g)?cSX)_icNjbE5TkDhdkxAglF(YRE)!Xd0olXp)TOpwi045@)~8`2*KXIdHL$y&8xV 6s2R^w_VWF^k00K=`1JAphZ}qdbfZmG>{*g*4)viDNy6m5EUFshOE5(wnXE;{Gc_8Sft6HZUE5!>u-~ #`y9LYb&qCR6kR*OW}Tem8JeR(kjJPlYdB6XL9xGVJ%8D-3+5lOS0zcok)|iDoRn+#~ Is-I-!TjiYqZ=FY)_mggS!PuC1~$(7mN+QIh0*5B5(-qY-fe)w?1W3_fGFt^}`PUG8@xXSoomNRck%O 0f?@6^CjqXpV^fpUy|fmx>K|R_3x!l1PbcGh?XEHOe(4_>miW%%q|jn*lxdCm70M(eDIPu+;e$ql4cS G6fEG5Q;%Kd>22=nG!B!#t>fLU&etbn&cW*CN6osi@y{yk3vU9(;3bYO)6v41&vLnQzu9rz{OEuGw^_ I)7Y7cqQH;V1yUud=9w@qu(D?i)$siA?AbH-{f(jo&?`aQYy%OF&$i%++)4S{$nnfeUh%yfnX`{TJ*P #Qf3_NbW-Ea{)FBhMnNcOph~HSTp((9MCi6xukGB$#JUQ@H2Z77ks19pN+Q+?Cj&)#y*gKv{li9$+*^ XB!gLqzLV$bFmjsNvjG*jbYSjCoe2i*Ek0foRf#}pb;c6P#*KlV6M=3rXB?sbH5Am-GWPW06*E3uIeI zS*|EoZ!uSoPv2Xl1@BB4@LoQCdWQP65Lqt3fczcOxQGLv%sPprd15R_LpqDXEJjl~tsFO-*nI;$WEk (a1ATB0W(^4L0OO?MS6U>4sq%>WLqq+w)ri1jv9(Tq}b7sD)a-ro`#UxtEy1rO1tyGd8(jO{R=1w&~7_pG{0NJH2C?zLR`fT&DrNzzS NdzCe2%ZU8!jXRNi1)W{i{FK+6iaS6GD GmASgE-?w2ggjf_$>M3e19p3~k4RPWt2k3=L)ry)Ht71&tQC}m0L}==L6vRbo$H JieMfnnWMNsdv1MsYy&;5!k%Ab#7ESwCO&*R+d;mpUX1oTLeGFBgsuh;oX!3>M@rhs9Ze>}5q2i&2tq qiE1zw6Kad})%pdiEFg8q`$6CFiii#bPvhc;XFc3-52tW#pMRn{G7z pha@;(F4K)D@>j|J_~KQ)SApS( vymtcm@Wd4<>F23_Dz}RDyR|R@{p;+H^vTW{fuMch^{Xp>0sABojIkgV-F{3Wz+_J&hu++l8h*sa{8m jc%j3%LOYl$XDFBg$80AH~KEavy$~dln!8lFctb78Bk#2LN}7@y?|1lM#28lR|Jp!fZ>r^;BfMFgG^3 Tg60fBW9Kfqtc$b&VGB#S3`SwAkO`vcO-`!{62xUuMwinL*-;8;GM2bA>?s-hi_yPfv>STILff<6c!H oHV%eNs#V)k_r5kw!ez<)m-Sy~8{PinwuAe=M8vaqoQgo}91o#Ug1SYeOF0XBok0QHgi {T&v5#}z?iPea7VByuusgE|c%aJJAU{qQ6n^jV#XaROhP+NeR)!q~kGU4%Y=zvR;o8x(7gtN{ozN)&D0frI(+~njQ-uN%uhXqjtp7xfL;Fq!>*{ y{dNsTYx%9W5T|t7bjMy6_epOXPPf>AV=`^VgTJ>nirSFj9RICo$XhJK;HXPiY&e=B={F`W-W==!Z3lAty;>I&Ev@GHmsKA@|I xHKF9M6*wZm)NSGdF;8l(h@wST3F~pA3VaIQ3H!U1#@oJH1QYF=*j~^z+iS_Ra>MQVKNIlk6`fzM-3T %9Yz+4wi*(;;$e$Zo?kYE-s5Q^jBk7%u^`W=JY_jWX7(hi_7JdVVk5Q47uNn6wk&rw5UXQLm|g$ezbP%%HDV#aEFhT0kaO?BcK8hqR{zc%6+po-^+^471?w9E=?KE+e9r&xQo~{B36~;6Z$2jL pPbs=Z6^^y77NP1VbbT$*NpOTVQe^#SD7_dh(Q22@A&s4A(*$Ry*A$n(dH{aEX_Wd!{;SyTezhhWji? >H&Uu9b)^BsDtWX_w{d=t(i98Kz5ji>G4yxs$U9O*gkcYwS1{Q?f^Fln^=RW}%ZxOx j^!<(-1{16YE5imc=DW7t_qB9+Rksri2fL`_u>#V5@CV$q>_P0OMG(N)ape42XMS9rpkBJK!dP6P#7y bN*w$s~Di6Kkq?#9dE1e8vi>zF5IGGcpu7jAAs+?Bm~&yNm9%q?{9`%1qhvn{t(w|gW%hTzRI*y-m-9 sIkZxK;GBonp2}>UWBo`(*R>AHix%6p<1{VMTv`7E|9smFUaA|NaUv_0~WN&g WWNCABY-wUIb7OL8aCCDnaCxmfZFbu@lK*uIL>@m`>x)ILr;1~__N#`C1e<~%o3mja2R-xg9t=7o>5&QhL*K&C!haR7RYZveK;?)pf@8xB7KkF|Nv=Y< Ss5m&#{D3r@2+w_@;r#C#l>2*3t9ALu8P$__cC-lspPUCRHr&Aa;eKS5jdUtX)eS35|IUZkL!359qIz Rq=yNMVqn*%>b-Gkt1mzk}Oy6>)z2QRxoT;N+6B{3g$?|9z*`KQj0VV?8NEV^SbKh8(pB8w06`I>LSe 6SJoEXhG$20+!rFy90>2VJ%aW3lA9{MBCUrw%JYO%^~1A@3Y?@SkpnrC9kfbF0Q5(L0aK8dcO=hYnnq%-1ULu!X1HX=|5k{Mbwh(-9{Q8&yd@lA5gvo0&d(H!?Z>Mp}5=eQ;I<8TMqp}q 95#2%P6G$j5BcpiYRh|~w6*kiDn`85+uqvRrI^Dv4)`QZl=YbmlE6i~#RZG~LJGZ+G53u2Ef>KsolF0 ZC1lhg6^Vhl2sand9}%Aa}vy7wq}oD$^i&mW!+{uF$A?0;Y%<)`3r@8>^wz0T$9i^=)b^lJR}{N(700 04%2JB(OU>ru~_%*Z(#flyDUn-H{P>K%3%d`J)X{Y|ncBHk;tbl+EBXl5^`p#Uuiv(?Rqr=QeL@?z#^ onuLQzxh4lCRWf9MNx!>z`P}6|g=NTU?xtyHD(`PQgsz$Qxs1GWqCQX30P+#iQa$+ O2WFO+(zz7{Dmkb7VdK$T+-)3*ZlKO>SX3v@kUPD9ghejTnj?mSMwz{P0k!kbV;L?!^Nu!<6`&)YRet R>rqhSdNKWgq|thS)|)xL}}X8HgorOT>WthHnx;L&N|pT-=25oCh70tRxSJMkrXZ^ceUz-+uNPknzZ? !PBWdw5P;xk4=yl?D@eVTO_e3**eS?AliU^%)(ioM1`z2s;C5xR8L0dlWkD@1QHR skO%V>pNyK<+vK9ymV%OtY;3+_vi^;x-K{{K15WnN*bYoK=k6nGZbcGmE0YWgCo=2u2d&%&X{ZPewtH 6KOwlQ0dl}Clu_(z5Se_r}o%B^Xte}C~$CghjoN-}5U *NSthYeQl#MvQA)$A|8ULgcu29mCq2Mup%b|BOi69P0>b1G#qp?>|bEcASFzQ5nYtCAk4`)ZGxP7ff`I ^tdc$KSRsNd76h=rU^{hUY3zQ%0|Y5{%$d?>`X^c@`BGz!6Y0&(-vRaSsSTx56CtcXX)7zOni#_>ry! sRT!BiNvV3iwn%+(FfHFsS`>1Xyp2%G|9!S*L$d+(!*WYH(@41j7vs{i|=EYh)>^r-}_QPJe+_?HtF ~TA2EylV|*6_J2^L9jle7|ecTi6C-1jKE37q3dasOxg)ol9EiQ+&FFa=T6pm5D%8@ppZZ>rE|Nv2pED~RW8M-H}En<{6vkI^;c0 r-0F5hXCadzXVKw&_90T_-7zZLXl*&jv@9{r5Qwv?dP6D(#Cv^kg`24W0vA}s^X9P^q|*p!=;cbw(cB?A4olt>{|Oy^a}r6=9%c tW6l>U*E|t%af{*x{w5C^aCFv&QrBs|T+)jm0(TQ!5(w1K^9)Fo$vfZEHpNripryQf`B#e(O1?#I6c# 00@Xx&}s`V5-F}7_BNcPyfyh`q1kWCW!_csWtlWo3>i94{;Z{0W$1jCJWDib&>M6{S{_uOLlz$r*Do1 lHEwFg^YULge3I|YNZ3$j5~F~|i4&lFz!)u#Gr-Q6iAyzN>*>ZoNxCMwgTV8tl03YmKlQgH;LmO!IaL @M!v?vLwdhUf-4uRd41_Z4EQ~do$RrGqiDRTK3hY70AElfd-vu++PdDqlMF!jT-L=Bc&lGFgR8=V~_SS{jnzh|U~q!R1FM !FEk8muKafj-MZK_I%?jj)&O1AGBD{PGjS$|5NUWF{Qnc7yvF;6|s-{A-ULEf(xK2_!l+aQhrQh)N0h mMVmKv4lsph13dDC3aY*u6ffZ^u#tg@aTEN=~#gXS@A^(S{=8T@lAL;Z7ll7gJ(5MUfV+cmN=|g`@D!Sc%Bg#p4h?A6WeyfubKBT_U_@S14~;*dxkaU2@L 9bo`toyZfS@#c5yYQbsckhLVM-U&a@`rY1YD_I^uQ{ypIL2CfG{am)hv@a}P-ok9TVn#6wsI0pv! m$R$Xcbvz$aBgje!KcpaLtH4^!flknLgdDZ}EEYw=Km%7do>0xT8RD~IjZ3p+Mm?pcxFbK&Zpw!(mGv%e=({t7nj8JeB$S>>ctboLPzjw$p;btMMCl_U_7>)XLx(AR&y_QUoj%yuyf;vskZ4aSYXbP)))aY>llUz@Blmbjb$eF3j=@d5CeVT`Z@wk- dXwKLqS3f{hldHA5UQ;4RTdja%^;7Kk8DL(B${6Yw|}cpB2T;6d=y^T>??xJvkWvY1~tZiy|3i=KuTO_rkk; dvsEV<`KB3Pv0E(6m8`;p?#xI0BmysNd-Wk-C5vD`s55xuW!N#PlNCX5BG@nG7oGCnW#DnSgVXJ!~%( =YASbl7G+DgkPxI$NE~xKeh%q~&jK|E^~m&LNhv{!an=zB^AY_bMj3E2Tt_#xV?>`u_cc|p)kL6 (-TIOX=!2)axBy~;)LlL1b8@r;@a5}KGvjpJcf&&D?MuqKkCS3)(yUthC!oEktJsVT&0BQoMiSkE%Jb Z<~AF>IG9eGS3ml?7W{7;HS5Sw&0dnpl&p{y}gC~B-er~6*NeqDFe_m ?qqd)c54Kl;8PJ?rI$^J!0Z^wIkN$5Ga)6INOjgu2h_54-Aei}q_H5-)+#Y<)G$pIgaEY2p)N$eiv_- aL!&5{{5qd8`{eA`Fe=mx-?M4v?`J(z&~dR>szXtt8ry4HD9t|XG$92ds|sm7B;WwRg#OH@YLGR(N%v m=TS;oIUoIq*BycU3eu3o;wI7%6t;OUTGYpV=(f+$R^1WQ~8c-S^k2u#x8U(3gHdEgy_tiLG&_n8Zoj GT`m1S-R^s~|(Go22;YNwL>;K}CF4M$b4&xpVTs!Y*mR=baWqpKBVR|K|1^cgnoI0JN$WxCg}qoUqRS M3NlWJXq{Rq8RS_A^7nUxi!v6G!-FWb4Mu_4jGMMMN|sT$53+Nxr{d)tofdsFy>Xp6U@mbPF-ir}Bi; *k<<>w06j4D+RfF3qZ{hSr{N_Es;;07vG*20{-eC^R6W)tZ#+H%{=rySwAmpO@Y1wq<-j@OK?HpicJf v@4lwsNH>uBYAoc=00e`$FUuCAp--?W9Z8eXsTn#%d>YEugB9jM_1$N`26hkFJAK;2s4yAsP- cedXHVRcr*_G3sxKapASyhZ-D6aJ{-RI)C%W|K8)3Uw!V?NQQ4sv0N47}dZY4N6MX`>3`o?0Y(4>Z<+ ?ekouPG5HFS1^{324^d5DrgoI~p0psB4fxhCtS1U<3D-T*5nQeO#{I3VI8<#aKJd-Lm$|RN?2rKb!1#=BK>Ey3Rm70$fK6>24>}n3ShdR$LLkpsGSm VU&S-*IDS&>HN#UZiDhgh#VFdV7` ue&faw9g)NUS#W!X)rscjvj2kKx$J|N#LckCDrT}UkXh_KqwsR^wyZzXDW3s*aJ>RNkwEz*<@9T6mcp -U&!sIk*};svi>dm3|FwOYdrF*3G9WxIY2;xFE{NBRoNO?pgFupMW|dnrE>9zEvY{gfA|gChU-^@9~J @CqmX^NEryxMCY5(81o3knn(UH;Hd(;WCX`fnaPImA^wh5qEgO?(-pA}C_9avMNw2X#n%H8zjoLcx8R p{}YXT9hvZP4;1L}51cT?9b1+me;+EQhq7%y++@wOt84WfXnu8ei~UkS5*{}9WJXv&-x3v~a!XN&^c8 ATdxA_hOH@YHOqX3bg!)Y-*OMX9=UP(sjU)oxS!l_E4{5vj0c=PQWLf gug|EkR=?a+g9pT-VdZs&zvsHA6*D?{G$ s)-S21M4r`72PQ_VK=UT*zmdSzrJA8NFfM)f^Dw2wsd^v) WPY!Qzz|Ma)LFO`J)bK9jTu}-Oi=7VpoksXKD2tu`MpPentmKv;|}(+8@XpD52P6=fx}%b9Qt-VatSi (W^)qvo{kV+gJN`=4^J`Hr_TY&(5vJkweThH!i?Kbwcj0QTDv(PWTYDQ{Z(Sr*EPCqkEohh|I^U*)~> 6p~A0#GFKdX>dJvJeJ$XucA6caw9i!Qnr1?C-MkmniDc4Tc0}ir@Eu!ck}C6}+XacbQLm9utxfpa0;f a(;Y0$jm8w4xVBHs&Yn26>CIV?4QQKTC4L`{Fhw7w8k$cqmDh8IH{T9?<)4x}da+}3%*KxmB8 v5TN4Rl}EQ9UeGxp?jfMj@KOU{s$`qxoqyJk8Qm#i{=XP)h>@6aWAK2modQMO=hRc@pZp0001f0RS5S 003}la4%nWWo~3|axY|Qb98KJVlQ+vGA?C!W$e9sd{ou7IDY1lhBL<5GH8P;2Ltqdl#7b~ *WQK@Id|(`>)M7XX@Jb-@WGsinSbMKp?Jd1h>aEuHTWsZJ1t$#Vp`wVdw4g>yb&o@9C?Oe0$oZ|c&Y4 L9wzt3E@ALis{`v7C=dsV)Ywx}G+H0@1_g-r%ZhxG!a2#iaKTYGfeVqQ!#r@C!82sf-c_oK?IrGS6`% FuYTy|UF{b`$p-Cf@+xaY119{9dkaQD3hbXu&I0MM*mjlnz*_6aHom u_I?8~BPMQNCdWN{n&T$^6PiCQn1=Ta)bkG0KZd_Xymx~L_wgSY6~eY!hr<*=t*)tCb(eS-$K5@{X!| wrcVajklbuw+Xpp1b*(yBI9C#KWma!?CrUlJ@P3mXsfj)SDaT3QpqqtdG|A3~+hYOYErxbU>*;; Q=>JtE&K%npFzyT|8e9+`&|23B5ylNLK(J)VevsE0cb`?b}?nE%{naXhe`)8g5l>^e9q-y*z^BDl35}Ciw!1(gix}`QWop%j1Es;EPxmf6yP`Mj$72dw? 4}>{plTR3rl5Pkfc@9FT4byAz(*>;Q?J5HA>l(lZpLl#76VAIlp@Ea_~K-j7=xJ!OdQ1FTVv+G13hyLEoAFOZq*;=*Evl^p{<3eP|xhJFI37=tK4dJR`GRz#Fjn=I4Y}G)=)!Xupx5x5HTpPCfLX ^de>|i;bCt~fM>NUZjs;C{A~GHgG9ziwfp>RPd18--@~|ptS=y!MhZM^C%$(n!1zyP8-n9;8d^5s4q4 MgyK_Kj!uiXY5Sq+zmj^JhS7~I_ohxvY!RAp7FB1vfPCIykM?2ktl9zBZXkvBAq +t_ooaIxunC)#tjom9F;6+)QK(m(5r+_!UJpT*R)n^;c6=3W+*}3jQ~FOTlf&zM#-}vS=&wE&tU2|$;9DJ&@udCniyjDqv>seaV^$)rN+H_Cdpm$L3YMJ$9 <_gg4=fVI@pC8u57AJzbv7p2ojYFDU7oEI+Rf%}BLTrF_T6ge?f93SL8>}Ml&=^)v>#Lx&Vy$2bx)hb ?Y;nlv_5$y9SK4=SUM4ap{9;c&F1g33o;AtE3>U~g~@Wc7S-VFJ0J{B+%EA- 9?#2ZHAy_~>L+zO0q!b84?RPS~4{AI{s24^Sa6KJ$ gODn5@!#XoINbkLtR@dJEuxlKo)u4RIl(vBv77>wfZ@H)$u^pTFi3P3>6FtfycA4)!)rXsy$O`<%cIv 74wq_VA|hB2<{^EHmDr7=?bjj{A3OD33HqpdQ~!U1Qeq~OJAyPn^Fu~Q}s$iY!qh<6&uj8TAmfUxmKP tRkQ{R;%ULDa>QD>%)@T5Ci}28^ggguF7R=@FucYbABn~NLHLH^l-&ra>lg<+NwffiO{W4%@qMbuE4x nsOgy_ag!j)OQD$cKNqlj%hqrgay;iZ^*rIEOEC-seb~qxT<46)N2h)}Udsc>JEXL7OslMs#Sev(XWW )Jv(bjN2OUzi{Y^(b^ZdOl2wjRuuPua#|wn~3E)QtnEC7mlevSjk$y78ojgXlNqusy+}NmGZWkE|qE>E{896`f?1uG{2irLPrxQFi(8rSG7$gZY7NQ^yRpY(b8rKW6 q#CEMCX^*dnZSim~PjB>(=7(+B3)h)cEISO^G$44$ na##fPB5&vcsrOnwIxoefSFS0f&*c9mnVRgVTIGE)8acov9&|Be=`~1?TY(ks~fd=jb)jG mb5;!&N@Y~lP}x%@9>n!%_KT^2c1*QW%+7S$ROphZ%s`RY9lIXZCd M~?Y~fDZj+sFOFu*Aq$RRwgfR%^ea5s5lLeC)YC0xHZ1HO 7Au9?m+@-(Y9&W44=78mYK}8IP_%#(N2%EbSAvaEzDCMmPdfoFT`jXZ)22^{k7HEGl={xIUI*f_LTZm |jakZ-%h#Bp5K}x$dXG4HnQoAmrxQiwIC}3u) q~V3XyBE4o-QYV@GHZ^-4O1x23B}U_OkfDXW7EmYVgO<3rOMlPsu*c>TKkIWTWP|)-7UoRDoNdBh_}^00+)&@oRf`#FMMA!7&4rqk2 Ce1N+n{SXpY#y$6SlMw8$vukmhGC7YH3=srSW^z3R|dM{JiKiv?%AI79E8a9ToPPE@@FSwFv5U4C{4N j8eT06*b342aQ35oFdZ-ggwbgUeu8KI@f>S=a);72RSL9U04VsaWY$cBgX|ateby6%?HOts~QF46ilZ ~$bvIU%aUjA}Q^OxzWH3Mxv-q|8r0i{{F4zl0ac y0}3*!XshBT^k@AC+@lLumujPfTMwp$^(?EQ^gs6?;(7QTv=-byFJ$?u4?}k5}I=YHL0RR<(T@%li(; H7>PrAoVKaS#nE(PsqoXD*oBS-8W#%@BvVrwkd;Q_>LL(@{vGMIx}?rg4`Qc4BpH{NN}Hfvf @Gc=SCwUkqKJ@1Agc`JBCc`mnpw2_A@`QuB$-!lHGiwbRC5IMK1w-xe^<6G}2wDlgs4Fz$`)-3suY37 ?^oy<()Og&ZlN@mu&QGT_r`Om!NQ@q(NpT;NDfJP|hBy+eRhxGTAQH1@An&o)&HEm#EljWRzT64UEo% k7NGBt{w>Ua79`tq4^aa?oE4v#i?G{@U&!Z&Iwqv0C|YVdl2uKjRL(g*50N@jfHoR2?-D#2*K3r*Ifo Lx3lc?AXUxZimOrqy#3l2g?!py0-4m}s5C$JFm2^EusoU52hIe*h#@In|X58q}3)3+QU%1eloQb2xa< ;oxm9s8vW6Dan`q;)ujP2g-Q8LCyCX+Kgb$@_bVq;fX1PDl>b_@mUUWmrwWwkDUYx(Ov@KG1Tcmk6-?z+oxg~jF# f)V-jt-6KPBQ_5LtlusCwm!GF%x1%7fch@=Q;}E8@)dV?Jfqd!jix-P(M^AXf(#&W5zMkc&Qf8^-*LL =b9U63)r7OYU--cvAi=L)kCv{KVE?_0Ff#?Yz`%jR(m0%5cl2+rxCa8+#k2n=NM{_5(n4oz#YoK(vyFuX%T|pCdZtPW@eClnQh<$?H!?XLA5pwq5`ABQflDOCp5 o)QeKy57o(cLTAV@-OBJ$?$5xW`e6i{zs*rbs7CB)fQRiIgi|RU+j}R}*#tbuvVrWgx#PKh=>xvtUQE *Yimq%h!jyg0##Z#w{Pwl5*}4B{of0<>HiW`}veyPh|^gnDKVv!(7rgcVSiYu&T$ED%8#Ed1oJLlu!#dzT0(2ENh`DU)V2##8*UJ?rwUVln(&c{kALCKKM1 2>=x6RMO9@2Ml*?Ph^>bv)jHS}HaT#8W3_TjE_ZHb$gK!b0G$=;;Dt_79K4VvVstHEU4Yh4hZgsN@O6 n66-+|=2qYsHq!aP0^GDr}cGw+|8FpupFTN!9%iCZZ+`beDZ_BHVcr41D9Y@ziw7u!RZGg8Vp$Gra7T l}O&_I$`4Gf=j@Dgohxg;0Kp-V5?%X66&BOv*HW7NfJ6iiJkDOgiql0$qu}3e;=>AkK*;fTWH5`don? {@F}`&Z=+l2Fx{Su(Cs&`!tJL&q-8hNZ4Fmgl`vZWtyG=~Xr_c1e!Hn(37^D=3Y!wfdZ`t5NTIr%>c< teEx2R{%9)neMC))^ZJ4zibaL83XR{fNe*Jb_Q?KZ+aU5C6o<5xt$Ubd0l1@JPg@MR !&61x*LXTDgcXXl6en?GgrG-qUEeXn9Yd{$h-iA*eu>SgN$niwE6rq1JCXA|Cw5TJ?cs@Q&)X<7Nrll $+}3_cUB?Xpe$oWuwKu3LeDvB$X%Oy?hYxR|FV)j6=PCq#sq}YlOY?AX_a+{84Iat@F^(g{7`qc^(G| &5$q>ZT$~waOWRm!z#n#v~cv3UeTX?mj=#NTOch4aUwB@h8rGD$2NS;{yr*M&)5&(0s_h;G`&ovTY+l)Wy`x`&yii1P^Cmsv*l28UmBDYp 12*$RA9_osMKO8^`W2{XM_aXvqIkpbN5RH>S9npcuQM6vtdq_WYOHb3v}5ty^C#lQX%fb95f9!t}y1P htkk?pF>syh?ezs^%h%CGcWSJ&8YW?7Ikqx6^x}?MMMe0;Y!@o=(f1~tI=))$$b+nV-hl ^RD+rC0(DG$I`ZvATsuRX9ABBM}XjJP>IvNoZ973dw VGG-467K4b;e4t<*1bvplqzE9@ O%^j^jSR^UaMbo!L|euZp&TdYbB>TS6H|FPX&a<+;V0SZq{9npE_rXunD1Z~6zdkZtKO^5S`{)t;)wJ Gf1qPnB3X)Up`>&i}ogYRH~Wfs-Hy3h_FH>c+Dl8ZhD@%63p&LDweQ*@$fVEZ4J$hdLiotvpS~UD&CQ +HoC$$GyljwO8kR%PeYVtNSFLHgOy;sph5G!7L`v#buYOetaJncvgTJpv(qR?We|s1e3Z}#wRManOYG7I>1a0RZq188WCP(vZZXTV1B?p67?TJpPzBj??i 9}8|&1~Z61ZiU3h|E1bf}7FIOq`9kS*U!cG(dvkoBIP>;~GAF8WJovM{m(m0;>IOV5sB$ruD(n@&~&q ;Hjh8q!)d3}J)TTpg $F{hvoXl%2uCy%qP9FDuAyfS0<}cHf`ja{*yrU~nMt`*+pLUoo7U!GrI9ct>WZ{EY;n)C0~P3dT@mcEG7_+CvB;^m*{n`ih``d2J(KeAnlGgYc$tKdnQ6TeN( _ZxtL0o>%l-8^NC)b0nF_z6Sa(#i oss%)n}!$Qk&FB3QX5}NR2b9jMPP2z423W^_(xM&V5P1T6~dyhVc%~!E=#4 LHhB&Nv&X6aAZsKtLZCN-bY$|=dy5|>PE>qi(<+oOL?O>J^%!D3wZRA;Z5xqw5BKfc}%EO1T9>;NQ)_ pySzIBw@D&tSDi0aU7;2v%3Ejl<<(;@%C|O@HK#X)Z!5=1CrYXt3nB&*(gy 4Mn@eY(fEq`U^lrK{5U+$-``}He4-3b3XpQimO#ezZ$kk3s!9{o=ia5=h;Ep#DGc4>}hC%EGAIxVT4T VaV;{5W5DEb0%*_#ZJkM{8KCPX`q<?9q=yK#jBXeH>t3vqST-M{tw5WpJfgS3)XVK*Qp|tN{D^UD$fsuL>YvTaJ}}hVxWN9No+^0A{Ae?H^=>FH3YGP;g5Dugp$i7QSxjS37tx|A` |Qf(F2m_7aK?eg<_7j*V^5^x8c)e=7swH5gb(aYuq%H7blg{QJ1!ig;c;Lw4F~7-JLbZ3<33Em|2FKf}Jg)gxb4t-tA|VMI@s5-~<* 2^`=tGdlv2Bxwy#xA__8wg6xYs4Je+yj!>+o+DOP`FJnT`#8hl1NRA8-+kr_tP#o@D4Hu6#`%c_bnSB RbneB5!+;)~oC#7@`yAq(82QKkzRQD;BS2LB06P{)4r8|&rQT1M?x=#Q&=t&&H3kZMhbW|UxXJC3~M} TNi_AyjA_9UL}99#|A$rXe4l-++VT=Nomoz#uj*MOxGPuUSAR>}j1wUv$~Ag&t3& mN#~mLna`q6<6Nz^arkV1YSLjhm>%gLoP)Cuz~@m6W1yOhq?Ir{GOrg-KbGEw?f^qcin21o k>f35S7(DWfBhacMf3Lb0^wF^xXO}Iu8krQ6whyQ_FC!1wfAT;&h7-J*ETg%0TGRqgQmRXi~nar$0Xo m?6-GmT&ixkBKQcQl+9*e?##HXZX_C#Gm=r@$^qJ7j>cNc=io}rIsA@n$n*?#%Y1E6`xZ<Y7v8|5NEZ1;#i#TVncv*c{Nw_ke=y4u~1`Qz77>a@(| {mGOmMxK$4Z{kK)T-Zm;;T@vY(H=LC=t!-~2%!_SdfdecP0!*9gn}BqUrOeQiJ-+7I1HW6_TFb`077U BR=6d75D0p(RFYCz(gJTm4j=RB;|xaq2)QK-ssXxId_j;8bkOG;hJLo=XEPU{8q5fsqR;uM&lBX99Q< tJhVY9+!@@?fR@0#V4?0qOVxWOGjqG7J9$Ew4<>Oj9wP+k~C;**XOY6i{wu*kG+=h#M8?4G4WdpBln5 dN7X)6Mzg$|UIzr&+R$LRnF@cEIeb*mNinocKeiwfa4a3JB9WZ1f^Bwt*KyHcp4mcM{xmllM}F31V{` cdIByN9*UAZt=+dLo%io3+cw*8Lf0IC@vDyLwzO*V{Zkc7&44;y+RoP=WY8!8vRV3N|&Hwp*<)IiuoI G8vOu_1#0=bfh$CG!($T_yiE?d$bdG#V4cy(R|di&fNtiC^cv>jcL4(wmy{_t5U-&QB6p-r&QHQL8orts_$QWCq^t8iC}VNwqqUEtzYX`sMCRTmZ7mD PpzF#HvDdVPKpde^!89j|+odzmIBV0apBQ{0KLyKB`>j@nkywMxmx$I2SqQu|BQvgC%WA=dI~lS^I8J 7yzJznb3S);MGQg&(%#)-ED-F%PBTC0z7wZa}=&J=IIx)OvWQz}k@ HX_!9ZvxI*sV;dmH@xUkuspj^xlMpdnX7)puqY_h6pCzcZC3W&< _!W0ka`w@qgMTPt-Wtzbi#p((kpl3M7scUTVz<}rk9JA!}1ESUW_jT8VXRQn0@ q4>E0%|NjY~`f40w!$5LZ01vFURf2KE{_-@Dks(>W8TH;w~rdg!b6UZV~!q&roFq 8Y>=h*&jJQ1`mc|P|CoPeYPFMIKFl%p9iu1 ANhyU#Ye>F149Q(hjj}CF<-JaanxN}Zx^~mGgRcAN`aWFQ5#R%sMfraU*OKjsMY@Xho`*?YpU;+n`8H?!%aAT+si9q Pm+xG20Zox^uvVRC#ACwV9LF(bJ0rBG=z18h;gfK!b-pPyy@ckrd8Oryd;p<1Wp@N_!nS81J-nc^R!* !~F9>^^g@X;#Ib7WpkjlcrrbFfM8q8=;SZ`NC&q5whs(w%axwOJi=*FdNYAJ}#h!%MOd@n_D ?HZ9=dO}w$gNhrBh=0P$^ooPNE4LcAjV$ml-LSfBcQr|H96HQQ9p*WN!4pUZjEi7a2~9W9!~H_jHT3X(p=l aDNT5j5!v>*gG(D^knzHcWIph(b0J8D2@NQ(bR_c2cfNUe!6|v7U3_7e5et0ct@&~zv{DzKB#xbe*Ir`EV x(B8jT@vPD)WQiqzofnrO_+*X;K=Vg4qmg&_hrKL%0Ep6q({8U(07mF3Cd>Pm0VR4l-)SE;~BLIebXWIHY& TZnz8GxxDA>bCD4#>tL0WuQXD!}k-LT0p!+b7IO>_ALxao_JB^1lo_n8$+?RNKV333!Rse>7W$Y+|B- RK&L~BWC>O`9_aj&rLAf?|YJQl-U!^HjKgL2{laXNBr=;!cFCr3kT2-$|msrW8qVBp!uXuwuhrrM bw(uP75q#zocSA%`3cL+3Yp+0`SvGf6y9^FQtDNo|88ZVUDTA}Iwe&YJ3ZK$l^+<}KuT0;o&E$*TYM> lt&X*ECwi&p^izJ){}P&u*;-rw#^PR+5!1Jq@96bu!J8b*3^ftaroq^B7a2jR8F{c)?XcX9tS@zFp_O td@$)8(;2pb4R4o5yYh1$phr-VXT~*ZZfz))^z=ap;-zYKLTYXa@D_ZA18Ayi7v5SKntJ#uI9EM5~m3 8O^TY-FLI(3W+VT2AC{EZE2WOEZ(Nk@KuT9bSc%s6~{|S?43-FS^fLq_>O1YTr1Dv#0)uN4jq^NUPRx~0R% C~2XHh2)t|?KLUnlFB^JGa6ceq%tK&J(o8Vp)Pk-Jl<^~HYYnAX@gulbUuhK+cbl?g|tf18qzj@qV2{!>H$>4R8qsj#3>*N5sZ1~B-x6utQ4=+AFa|ADwPr+A1u~!t I=E76BlFuTs}a8P5Q1%0zGtm(_Jb}8N&o|QUar-_Iqw-yI1O-9-(d2vzrRF-M=8xQuU}fHXX{c96*4| (DBW?;@8MwDmXq(AHI5vH0s7=yC~x$H_!&8t`Kf?7!4AyG8%LV$zJQem}K$+6hC0$YrFA*J^D7zc9d4 B>Kf)=U|P~bfq$-5pL~`oL~~|a?7QeAnbVb0bniJ1L-xSSGy#k}n|dCq_3FYG4^ma*Nvfr9;Yq5;zbb ce@0Yo_^u;dj9{Ae@f3L!y1=2^{glDwKofDTYe@%Y0AmE>D-ihby)#lVW4Vb1T7-xB%ZrfUct^FFSrk |a!iVDB204x7=s7ErDfz~_Fxqh@S$PYcG4~EQ4xfBoRbGS!QldB&YI7VASVtNu4m^Kx5C@j6zgb84lT >T4}qr|B)vx;M7mMz-KMT;X6-G>nzqWebC72`%k_l?A7RRcq}i|kO0yD-u3VU6EH%);I_wOQF@MZ;;6 t@$(ii01Gn`-?BWxSuOrKz?6k6N}z{4Kr@dHEprGZjpM!k4}QugB+#tkhWCnt*K6$J`>Z19pm!@>zv1 lVVzaW+XYRgL)183_EXcgG*MUqm$S95du!-#=TWu5go37sSRCH|^?6iu+Jrq8XWRNQMa?cx_=#-%9xS +(9VEvd+t!69Icjc-NFPFXt;0wakO|83K-mcD37Uc&d!q^$niI#W>jS`?e6WE13Y|IC7UlxrXfT^i9EZDIxXrXaphzd3v&p; Y`cRKJ-lyg5(^*$&96&A+Gkome8@Nu0K+58PO3;uEKwk#XVf%ZJsnSU(;PbIVj%e7u&@*_({4}6ZCQV 1He_%kG+?s}uD5|x*2q2nM)i1h@!{+h1^1uaY)KHLD0VIB09_W`w;WCiRI`}bu81rVR?gYt%mefIsQw 77$oZ4u&k*%UY1&$t!oG>8es8RMxKkXyn(mpiI5h>YM3~dyeeuO2vPs)+vQjE(}_hqBTE}-%t0%W5Wq vrr^A+&n5yu(B}p~;7v3~mOzM}q>BZh#~jq2YxSeIE81`VStv5x1Kjwkm6FCCi!cD2|zi`o96n_fYCf UvJH6Y8RSXP+i$m1|y|C_5wEy%}+3_LB&Zx^WFAhMd}Q{c>_I#e?B<;dt wNI@yP^OFJ^MB~kE6GR&{PJA`*8;YhJ@O8<~jLta)f6ulUpzyc@jd{L8^2@TNg-;l96gzpj00x9`;l# Zq-%?ylN?q4DF+yvNdKQ^c5O@6o^wS|S&< a^YvRqzrZcpu=?5GAAz9yG#gpks&(AFygjtpCrdRlSnJAtmV~@#>?v9Dy!TQStkwbHG{>1L~t#HAtu~ $(L?dAKjsl^Oh0rO2Y~u$M9;VgGP=}955wE lIFvnX2LPy#;%4Y;X#5qmde~!>bkuljAY_=INr%Z9QhgK~S~?xcGNI&YtP|G8?E`7M=Y3k^q*BA1Qbg RW6LF-P0hJg5l>n~&76O&j^oyg^#n!=OJ0{DmMAKFuGvVv7K1QEbr|yb2%cmAQd&TK~Wey9{;lmzrf{ *Z)@nK;qM!Fdx%11vz(~m_4|#n8E?Wbd+a{QRCo&TzuUT!(!iBs(3%~Lgo P}-dsgZ^V&}O6SuiUcQ$0{{l+?*UX1`h%>p2DpJAst1n6BV8?q>klIl>8^35f))?P&U|xG4mkY89L2MW35NE?&v`gvN6a#6 M#Pl@b6Lcz1PZZ-P@S~$rZdB`+(L3N@~EYt(gSEJH{bY3p#$_NI-z*9lmY;2*LV23g5Q6ksUK&~01fU (shuqP{#55DcwA+^~{hR_GYas)XaOAJsfmAp=*%~GqTq{lOT?1^Sbb@V_ BI-sQ6OUjl5y3a;VT`tYD(Y?Q&xz^wTCT6WNO(A{jEfQo29=M>2GuOw@Lb&OMesew?+D!Nq;NX-_Atn ?T%9HCQSGo6M$U2kerY<1<)+i9gJN8X=HP6S`B$G_p{%iyOy(*T-tLRH5x- Uc|IorlBon4a*DU_t24}llprahBZ2xI#JBCHWa lKiH!mw1$mZcBZn2Tq@Osvt_NIW&j#9i1AjdbD-|DTsjNOsi_tx1n`M<=wSjxTaY9FpFB*ZXdMNC=TR7a^a&{XJUf?V hy&n+lC&+TfK%YLolWq#)ouSd`rga+HqgtTB{rXq$31$lA*n)cbXb)Rei8Z_ 3Q+y=L`BUSfFl`{z8K531A(dzDeoB%qXFaSCS0Xhjlmq!J-`%`b{q$^vg)hN|~9Jr;2%)$Jz@oVpQ2!pEiJ{OwJ7yfv5<;krQlO!Ohv1XXTf6g(SqqGaQGe( &(-EF2fwusG*T-H+<`Zp6k3@Sbj<kajqg_M?Ekz{CaCKn6cspnLYktG)Oy_7I*%>eljHq(wQ;h-Da~aD gMT)wX!cwlsbKgGEhTEb^{WJabdWyx|ZQ;0cHDn`cW^ACqu!Clh>H9@9gn>PGBO_mUB7Ve3}vq!;tx< ^GjA*{3A^zQzQQ;%wRgMrp;T38a1uI@|7>lXAAzX5&lB?^7VbmyD=}5hqg~`Ad9Z_sd4WK6LP@_OaFI f?nxpcQ)&;O#-}!AIE*Vo#gE^8xJ`<53Rjkj-<)ueOhg+OXISXatl06;j&s>m%)o;OZm0xY&vNjafLm 7jVj&3@EU4VIoGL(-EN?@lobT2h11YH&vGM2ebd{bQxE5cBN2 X{Zy#o&=`JubEX5wmKMNcy?jqs!*dzO+%8+kMhy0uYeC0%v*Z{@a>Sub(k5}MGmLffaVag>vm%}qUZ|l*s~kD&F<3K!@icD)-D{pdRX4{p

Ed 1s?@0u6U-Lut-*T$Qxx5_W@UAI6i>?c=#!n_(L=r}`%$J ;f=>3WlC%i$-?}Nl>fPuD{V0P`=+qM}xPa4z>j-b?jt40uskjpL3^C!*{FiY>FT!PDx_bq#1XW_CW|X *X;=hQk`4VhNx1)oEP_G(bwEwFZ4;W4s_COm>vEoOdR$+hw(9eEk(a(+sEj3Dgr?V6fkJjI&_R{gol8 L)Sck<+?;9-8>bIH;MtWtw~2>4Gj|U;+_^Zu<6<8o$46*}n%MQ`)LO0A@T5}P8a}f)j yIe$ORg7i{ZA}W%Xq&!uLzXxO*8x+AM1LJT%pF+B;9BP$k!BkNRT@(peI!Z29%KB)M_B3Tx*5lP_0H+ 4sqB5V+iaeJcm~qzt+b#YNQK_Xb7%jq9#l|xO2p6l_P@spc%RQP>ec`-KZ?@PtsB?xAip3;0l%C{i(a6Lf-TQQarl3m@n`fqQ+G_<)XIy2a|~d9 4k2NuGQ5)gto$4O`FdLmPMwjbN=nc1^?kIsV7ScM0`}3+HR1QM YZhaWyyGR4a9d2uXQME5>|}OFZ*n4AO<@p$A;Pn$!X=YMtJ)g>UNE2iCmM>N*7ivP>wRxze}NF6!%GIV!cJFA9Oo4d{i|lSC NTG9p<2U%2?lBGXF%`(ibjuy{w141Y+ITEgpAQfGPcEjv;)c7JE=pylXa#H*ynlm>>A^R_m N_u!V!D`(KuvJYRH>4g;7OSi_mGPz0Y0Gvwk(>baYG$UKYCZsGmRaACnY~VF%)@dLQ6WQyO-{J7wbaq rP&AmNB7cm!`w@OQlZGE5g2Tdjpt~Ulv?3QWzg~xgK@mj`O~&;6e#Ezk3!6J$<1b`+g5jaFmRXgZ&`R rAz#!ce 2)$GDlZaGkolg01D_b8_pJfp{aq^v3PY}xZI@Vs7v#U5;rMJtXQ}82paJUxvc<7MP`3Ut +2`GFw)LBjI`4%cTQ2?Z9bny0d$@m7C^^ZAm#?mUhgt?FOcW*Ll`g+_<9@h7+a^kt9UUu5$h& >Z}2Ig;|)}WM|s4gcF5FA*cxKAm|PXa?sVE5r^j{=S@c{|09z>4*09OuQLyBm2YDUx+lSn1n1MA_vjK (=AOE)(G> p*eCivBfnw^J1E{gn=rH75=d#2)T5MRYRoENq2e>UGR3W_3WcZS_EXqmC5!Q8QQFLEwA6OS~gg4x0!|7g)QGhHMhbp{9qNPWtb|u!;8|bJzRs(g dshkWV6tOOOT;mh-Q~`A0sZ6O)7=vj0fG-=wxEw^2l2KL^@%&ntUVashf(-xx1mwdZoVNpkXRBy*KL DQ||>F}I>m=`plqN=WU8H!4;CUph5Awjb-q+CRrm5hx01fB(vD^8&=4oqvfh45d`qn_qI1=2|fsbtxA $7KDkj&-y~h7KGe))_zoFS?Tmtfyz{NTB{n1{#kHG!DkJm}BipM+V9<$1`hHP6vZd0g)E_cT `oWe!;YAXA8{uv9^@tJl%%gZLuJ#EQ#+4q1*A{-cwxcjse;k!HEqF&tlZb`v5lO&AzWq7uVa{hKlPw+ (q8(KQh494Ho(4@BbBVc0I(Q+dd)Ug4y&t2AXTzQl|y>dRfQbi~QXUCCtnI{aiBkMSLtf-^eM935nzpR0b5gn6Y)p6Fy;r s{sCau=CHdFlM%1scfm0$s)wt1>TQKK^!W-M6YqCKwk|5g2{(@MwAe>r-1^mX@_B 3Bb-jO-KeLFoqIb7s$gL(hW|Df;w&qUW(u_Ad+}@Bsw=~DhV)~gE0dbZN_Z7lH0X0#$T8$8HJqv9vpW 3BnfZ8Kw%MU~A!5pxe(&O{wZ_(oYreaWlwsKm9O?{IkJb2iNm*;6xjy(S=u;}01HJ^Qs!6*TA^9Q(n2 WCURl9AMv8c#KtFAD2t(|12ou28=i5|R&t=P99=>DootHo7vpzD3tp>52jR*r8v*MSC6JpMZDh#Uj@A dTK6qzl0}3cU>?}gwjtE8GcYVj36D#B~|;_;@<)E@u5C(4)LJ!iRKIb2Wru*P&>u4hqVVEKjhWEjB%adQjwdt79^jH?hEp+rK+cDx`$!-J`wmp QdRyTIeMMtZHhc0onYEC&?RVtxvki*%Wa9~e`*G@%Ii|vM!}+9}6-7uy{}-%_b3h2M9>my70T^Sql TQ>rqEFPpH*}vU`ZPZi9h0zSu~`P%D~6+G2HHGAOEidO5<+$nLc;Pl9P4-xr#$$GfCETFu=cG+lxB6++WwTeMkWfGIDJ;iec; !OqMbNez4i&V9wp`E;-s^lH^O0W_Hdptn`WZKj;y>huewMNZKdIEKU?JyGcjC$Q-8wXvYumH&J)Lo)x>1C%}q7YileFlHqVn|c)XIu21kIk^Ae4;w 3MmBV~kL6hnpQuvurJH6pe4;E?!zXGlnVR>D8__4~8uE$yl6<0QbnB$hD^H$LtBsyP&!{`)5Pr3)bW_ *#v&~oOn(f_qT$(WG?or55hIcM#pb1@C{CzddTF|o6ec8{q&kN>Nzt#649yj$A89ch{3sY~=v k7l$Uf*igLgbU77t1z8_wS+-J>T_Klw}O8GUH*-biwV{HjV-LXh;U8uKMccj9P}!}~5Iy{o9a-B_OPU 6sr}%)6@Lg5h1&G&oW<64)@rG%7~t0!V$9KrqK}&nj%{FwZK?MV?iJZkT6P!vU;k%CRa5aEW6T^{4Jw h3)XhnyJf~(d9}Q=jixVDpo{cE#u4R1 4|kF4ZobDIykpHxZvc#JzM-`o%MDYM2AcrHg)XM`u?mNj`w%5D1PT2=w8GG@K3nfEzuTdS6`~ACKFe# #>R`hC3c3^|u1O2kE>Q&DuqTxX94po+XSnX_}gdPZ~PG>?*j0Jy8baIe>2(xeR@(5oy%}sNt#G37852 F-w!u%(F?kf?ihF=#N%FegMmfkJC|urdoUpyWt|_f0hrRpyc%a5v5RM(}U`6ofJ=BAZH{kj1Qh*I{mz 4=y80JTg>bppCR0(>q{tAyhhvo_{BA)JXB4Ue4!8*S6M0jcl>gh)IlviUe5pnyp!5S&{eeOp;wjLIMZ m9c%{*(OQ=@uzKCk_0hC1KXoU}K(lh92MQN2P&G1_-TSyIPiio4t@HVPBj+d=RV|8c0QE}D7dI9D0`T`Ve3Pg3qZKo_cIsn4dBNBfv$F-S46!Za6@EygeO`~2$DKB|t #SDrZCliPaTCkKu6qR$K!ypI25k#t?Baq8sSQ;R+O?OzGQ_U!+^<`jukRmf*FJHvUAx}^`&kN%o%zMT 7Nu?K3;)P!?HL$iwJsXOyk!4Bv|4|?KWViFUl@$s{*O(!g-O$GHkfY0UbNjjYLv}9042D2Ggxnxl7Qx $JvblI#~;ADqWyOCo9wsYp)A0D%QfsbXpvfP3x{7OmrwE<-;REJO6b>pgFzhhfDYs#tcSZG$2>h`0y6 ^#vHAOwp)AOLE8dr~-$FZ)4I@d9zE}GO?YF;XVIVr^fcTEEcdSD0hPo%SLVktHZVIsRB)SdOIzJSeen HVJDlO-f1L#m#LOFzO8*~dR8O-94u%}^HX3EA=3DI)|3l@qZG^LK7YvnF?i*L7^;AeCVMpt}3`B l*Iufl*NgpdG;xWvH;WUNvt=^5SqF%mPKbEZkseLmc?Jl>^^cyEQ>EM=&>vwK)bE*;#d}-L1MXg4~b*pOH~$nk$o^xx70 R}rFL;33ri}Hg{75*8dbY@Xdny3pOxYw-9mc?y;wg{7baA1f9wO?^c)4!<37nhBy_>e&bCdw5vriA@t hvKBK(qWUhVxO`otn?Ft48P`-b2ZiDAJjEQWa%O$M)6mW_^Zz~*$5%)t3G1L>j%u6VegSiI?{N&D(;@*75|VSy{K WZkmbcv0XA1RWB%B8<~e%#Ws3C@D{c5WWwNZE>Rh;L_=XX4XP7vlfDxHP-kBq)nPy1Z5=up9yB62Q>I +!7Pv4Pb!7RMr9L!=a3BF5%StJK|Jo6R`W|3}b26ODp#jz}KK>a_7WpSb}8Os 7E>SQd7!N6k4SQa=b4F+bo;`f)vvcNpaSQhX1T^!5e2WOMrdvPoaEM<5si?-ig8q0zN+c(9s7$S%-j% 5+c{|B)wsCs%Vi#vYzefN lyALSWe48Oa71G1COTKhN#j}juTyIF27d{(`r@Ag6+(E7z@W`s;T{qj1M^XHpQE89y+k14-yQHdL ?9rrtwr2~VipNzADuBNu;CG-^Hy%y4?HuayiBi$D*vCq67=^{M @@4Y&%_-r3DK|Tx`Tp8YA5~l{ue)jRZRC)BAUf}b4Sktq~=)X6?Y!;ri34b|CdR-$FYz)*-o`#Q{d^y *eR*-TxuUuJE9o6VZ4p`R@5DFh@RpMmQ+vMj@kb8|!%j0ovqRY|lJdGR2)zR9L9Fcy8x`dY!#=Xm1)D m7{hUusKX!7WLHsrNp-qxCx)lsj{&z_m0ZzF#({D&&U$y_DpXy$r3GpKF;2`Yy$o+TrBm^iQOdcVF-d9cBl@*v3>#Qlw(x#DmFjG*`?|52o|@NM^`CR58Pdatj*+N2i^J)Bnqzyy6FyiRS6H1wXN|S;@|jJl~XsZDt(OOB2s4S|HaY$frc3$-4t}77)MNR-QL|Yt?co=x0l&dLCi;4YIe)a%1Z0dco UNZ6W#yy+2@>LKrriezu)ig|Gfv+?0xogt-aS?`*HSOdqO6*YP(lPtykYy;XOZUgZhqk>Yf{QulkN#7 u}PhD%5xEo^#(4b&vXvJvQzkQGZt7*WmqzsI5NAdj;M*MZJpm0D8xc5xyidSI0k^>0FuV4gi5u@G^Ja Eae_2Rj+}c)PrOtH3iAj6mZLu*s?TMZU}eahoYqp>(Dcp|USy|4kdz(`8 d!NkJ(Qm8s4E*H5nLfqSqQ2X}kf+F_B+tkXKXkT@y1rLP^A)R-Gz>8ro5assw;j^zO)=X7iQ%YDW>rw 6XNLH}BH@&u`ua=ft%55Q6s^?yl$Yy7!6uv{~NGN9~AKeyd1?mK(7{r1Xa3fxZ`t(>gvxW=E zlZoR2O_aJjO5KzozT`n((*q~eq+*o$ku6}i4?~F|LQqX7ae07l?kt3L7#P=h-CKv-!ynId@ HFT(rQv22NJ)Bu->}Dwiy@f18(Dp4v*Dl=9UN7zE CafDFyTo;9Tp>0|eqh#zi?J>)`H>QzAE0!_HA~F~s#r!DX@F+$lLQ!|x21$!HsuWJzs8YCjt$YU%)d5 8n>ahaIBIa}EpgrbVEIE|zv0dxxID=YD{h@wI!KM3_1t^zA&=m2SRY_1grCpU&hieWTNvE{W3Z>S*?N -!oG1%J4{yKMuEkU*b`6Wn-CqeFbpF1&*>mwa{LVS8~-XOjD1V*#L7|lLQRu`+8C(9XERLB{V*ppnlM ^?6FmnzKrsY#upR)qm7HN4}LS|P~>oawFXx7WDW9!6EBvGreNsl$j_M5kC3_wtCNTqE21lygblSZaI% M|SiAGiv8GSy~`+Ts_WckNwp&a8Uo}$Hl4s4t9HFIaVC$VejJF^UzfIoRD`X66fv|o5@E?cb *Vo$>qg!W={EsQvN&8MBflsovaA5>s{t!{r1@X+9d_KecPFXhza}cF;>}PqrhCYK{SFSqi+;0+z@X*@ |%{4(WREzZ`f_Vq;UsR7xg-BTM=B)p4@!gTKZ*5=RQ@#>|6a+8i>zE{?<1u7^@!EV ?V8#WouQc|St%sRGEcKrWl63tLYb745e5d`L2kluFm&+ssBRvy60o=tYH )AWm&38oks^|AljLXG0IID_MmFvMYHaVT>vA$KSMvGg)PDgyC+zS>LtiNxkYiF|!(w-@9+*see`fbr&Q&RQYZugJ)D6Jw^ 7Yt2Yt`&i 7qQ-VW#N6QGnU%riFIwX2_=oWGRw{+?j#^$Jrw!A;&W^uJiTw}yuX_{T!9}?tB4xQ>s4w))-g^=2%yX ^W9T#6DK5;Q%T3Mza{%ezoWR)lEfvY}9+xC;fhpm5t5$DJXAxy|2b3mLrRri$T9T!F7R6GH-V4a%LbP ~UK!d=E^BjDVB8fx!ZuYLalNUNfZ7psnXFB<&a+ARO!Q#=4bS_mw2DibNjfe*O)>=ipTosOC_w#N{^K&r~N 3Q4PFVAwMfX`MnW2W>Ej}yXG-H^$&ow}3fO5}?;E^k8SB CRR+GW?c{MRH#)s^d9os^@4ou~+->Qa-Xgm=XfJfX37qH#s-od>h1j@$;v1ns3|9bKKU!s*mF{C(UVq 1TBb{Fl%_?O6(6ZN*Z!I0Vo6HYTpJhrTT5-LTWt%fUmf-_hJlo^$QhMC^<73!&Ms{=O<#6&jRiFIC`r TgV!XqY4U9C&>=>)8b;Dip?QjhD-A%zjSG(??Fc`kJ#y`qQSOCv&ts9q8lmZ&7~)7AGYn>>Rx3*ho>Utj)rGL#oS%O|h@s)iAR_DtxjB%XTtn43|6m+K{;-knp)IaT05#q%1mFHC8V5KUaz?gebmDH)N^Rw$YA-)C?uT7sS=0GDCt~H^W5}hW AG8@O+`CW(<=BsYyZQAJmn2a`C`QKOVNl_=X9N~7$rv4!n;<7`f J(Ma1w?YL*d{lqNbp#TU%vx7as9NAt`VP;O-HuC`lIzn97mb!J=bB^XUJ#n&LDQVoN-MLmam9Eys| fqAYAXoj}Er!Ovd-^=N$XEYiC$hoN?z0jmc>ara64%oDh2lu}i^U>uFGH9aRxKP8Wqa^3pESZB^)_QSDyq%5nRyIn+tk2ae)C`&{c3jP!kvQ1Q!qsU=6N#<= 9oc76+(@d)NKk9hcXAGt#@lioLVao5K1atbZ5QM`7J8tWUuDkg#rsb)B$ofz=_bLX+?^VXcI9v9 O}ElI9C5WV)0ltk41}C8{W6X=Wou+|Csg|$J@FRViK+MB|P4o&rA_ZmWevn+kBM8VGV&bURXn6y+v3D!x|y1;jo4Z>u^|m2`euAmaY-jv9JaRs|nV|Tv%gaJtM4fuzr`Tpqz- eBf=vY)(?br8mv2obq1{4gmpHoF9_>AST~A9g6B5V?PQzj@;CYk9n}HJ(#l++bXIHh8>_hF$u2ZDHz_ W+$u8kWzih=NPPi-?ZXA&}L{`B(5-!a%(w9QJx@$t9(Jxks7bK??Wb}(uTrTAZm##*?M8)Nl>=JDBOI BQt$}T;Pe$y0}y|RnJ=r==gc};c+G5XC`TsF%tqm6!rip!s6m$61ao8nR;yO@lA%M_P<*(KKKccOKd%jOpP@3MF$1~N=y#33@Y=1> Z_@ui3!CljJscHBQB`fdgBHg`4UEuh_E*3Z<u`6l(|=b^Q@yt00$7=n*=`Ha!nhY(T&#$;&h{o9|g^{SGB#zgzryOU$*F&V!0AR2``c52 (7uz%#DQDyb|>njf(cT{Ss>vxJ7aPS%*qLq^Qo(QB!$Le=t)!w!_%Y{`7^7xQkcO(6GDgAdGRX*-=uk uU7c$~()t`$00mFtl2ZsVmTI%9)=^%Io*s`C(-)}HD~?JjAlj_>u3@ASq?bJOj9HOmJxR=-Ek(zU9_$ MKD??vJw6Eav?tVhISf@g5Zt4IZ@G6G-;?n%!G3~W1aA| (O7H@~X3!A3?u0Y;o)ctBWJ+Y7BJ&iPwPezai=bf!9Al_FV+02-ZyS?RThrqOapeQF^CE>AmcgG;mYGG}YCQ6jIbexmU>bUg0QEQ=R?j>o^UR^ {eqExOv(pGU5o531$$?BgiHwByhYb>ZT`^bx$&b$qXj5E16x%3?h@JIO_t*q{+)V9ho{ZwPb3W*Nt38 kJ9gEf>#OlzUfsr6MPA4ueuQL&FjJ2ty$f*(06rp^2)`9pbAt4)tQP3T$WV1y6hLRC_DTvnt(p_B#9- {G8$W6D|E;obklUkQH>Et(&Vl*9 RXo`^x74Y-G2`NHaI$6A=Z(@l8yn(E)D1{VVB!63#LS3FX;i7Iu^CJd*R0kzB{sc^t#<3hEg*_QYFQmM6kIpb6sp#ER=*m1lw6m>E> uj^IvTWAdx~`bKyo=k?=y`@isD`u%5RSp`M9cmtBuuGeKPhZOnzR`=Y4HOOc1%=B3vUCSKH7k?vq?G{ B?zEMds8tqJ+lyPo4gb-P%D*%WM&+Cd}aO?()^NSVl9_Bkfy7Y%BaU =Ej5m)WGZdqI?28w`_*au>SoFcU{4ZReWI4t#n?H?`CfnUU ?wG+4M2GaoZjEqbt1(|__jJvPvOxREQZGrw-PGxVb&404Z_g1?bn@Pn2Y8ls;Ef*`0NGQma6quWw<%~ _ZG@}OBeo-dU3&kEvYA}syy6=CcKa}|AcPb%K~ktR4HP!tPZ!Ag^Ge+vt^a#cP->d%OynG$ tplj2>MJhG0`8KI%X=7!ZMqu2ED8!co0`jfzeZ#gbondV0$rC6?Pqn#?pyWStCFP;B$>^|xGIom*!#XoK{Sdo?$zJ*l-N*FQ5Jg=8Y!e HlBig*ci_)j#$vcY#C?6PCPfaEEZyW42AU2r*30#)NU9^@SW$s6QoRxr6xp0%->P-zN%P0y-UlxyiM 4~T=mkI@1TU_*28NRgj@_4$j0mJZq%JFV#=hbfIZfOYu@9^{ 8mzgIUQ6Bq&oF0&oHSPFWKN4rBHp?PPJTb)T$o^lin2KRH6{fW4Or79CffNJDy`&~_9Ws29=lmb(}eO M(}Y!*co&)?|HD-)M+vJ%d56k%C|p{v#u#KL!f6ER#@+h0Mz~dn34vgQc04TK)%5qE?xQdJpgGcUI9> Y`%7bv1F$c>c+qpnKM!&6#@0Y$G%J@47{~nsHz(2R+tSo1+OE~-P)@(%*@^6+i$anXucVN8)%3lAil; vnHrz}I$g0hLA>{by{ZtH_plI%h&2VNDzyvRDQkY#lJMKJreYczuEeLnhHsZ$$_`e6%OoZgQDAo{AMrEaEm#-y!-CX3ulHBf{8j%JrKYDVm_ YtF&#Y=iC2|rO=q@9;YZLf;GEAif!rVmjJ%MA%=pNz|Nr<#m#P5mt#Y<&n4tog!mp~*;G>TdB4Xt yfy(!{OkD%Zk_1gJFY(aSMVh_Do0g5uX}Lycj;R!RwkWr>ZILv4_2)ZHgbtdSRK->J{KKmqOtID9kYe-cIy $NBX?ZC183*nQjiS9AZX)`0lJ#g-Znw_LoE21KDTQPzN1NsJ_2vRYA_Klui$`M~tlp{*NQ#m4T(DNuq+eSv%q~XxX??XxaF-rFKMF#{G(BM9XJFWlm|ruWL qB3+U=KBYpwB8<$)Y8(e9PHSJnzMpTppwxS>r8p{4K)rc4V;-wn#iHpruBO<4(SB)szDHnQ8FISED;K kpn8c`&7CDn*(fL~XQxJytY@Tow@t*Aw`DQXdCscJj6d#Oc4xHi-xju2`Q5uk0gh@HLEB3}3V)grd0r =xAXh)U`GM#YF_SFISa_y`dKB^@$jc$9RYD1Kcr;({i{h%+uzjA)7%x;GTfh(G;)&4_4+|3=M-4_>^2 X2d&w1_rHYM#RXkHO+{@o7>Wihu=usTnb5Q(Kx51yPrkT5Mg5Qga9uib8D%ERt^=CXK@Fa?OZ(xxq%9TXV1`^JkB4Ola +ZB|u+RQP=7ayM?aAPtA(fj@u5HSlS0PEg?8bFziDUiz09kY$d8HCaSKGV3z-dQ@7txkGedt9Ho6U0X1#wp@_t kAfK4VQcDUDVqSZ0(Yz>TJw^545dnkusZ3gzm$gYsr}Xy_zi_FvLBq$CZuuJ*DhydCr>DghRFKusk1Z +J)akGAZHud%{U~&^*U|NStV?7%OHOu3BYYNV9^(VOq!6G`CHbo=s~px9!>N+NMwC-NR1vG3WH-?(S0 c!lo+=7Rsj}1zhWj0--XR-RAO+on-8e})XEct0baccA>h?s7YjfP4=|x )+-Ict^2?E>|t#f2(nNu^TI!k}La!Lv=GQxGh#jc%>Z;Gp=0NW^K%XyZ*SVIsUgdYQb!trCmPcnYy;i s^|i7qbAez5E#+bGvgng!YPZeLq!0Qj_RPW!x5EJU56dtz)usMVE?7cjX0E&_EvktZ8g)WbaLDCZexjKHev6Jsz0J>2Rlt~gN$eG osAckbd>j|`#6ImD&2pQUwj=pzKUajx}=L_%<_EynIgXbq;h*OHg+D5RX4cn%dp=t%VqBR2CieuGFB} aX*_GwQ}P|sQc|Ut{wmfkq*{x*?OZx(!E%kf``kys*?Dy=%c|9^`sG<%)1+$}V+rt82NxvZY ==@+x+@kLB`Fc7zE>ca{`5B_%C2S5uMHbxMkJPN3Ms9wbhn*}6u~3DlQ~4@gNmH^o+@ UYSi6P@zeQ6OFSM1(}&3GW?yT=46HM7)DPc1GVyH{{=*QQ-=UCYj`?1+0Qq(|?Szv{ZoJ(U~Df~9idR (8(T16v{BlG)VV9Dny_jX-E4NEK3SY_p=@@`B{Mc2Zaw0D1!#$66#@$p7pDggKi-b*1_?2x+L}gawQXg@IykR3KF#6eWQDJ*&BvsEQ;j-JlY$McVMA `#w5ysuNq0*-`_1Yvf&YXE2vOfzE}Tc)lr56B9d(9Bi sH9-A+KkJmz=9@hcnzIH02QTuY}?3VB;a~Tv01cxFm=$Ued3t+`cf!lsTlqiA1PfEEi}ns=e#(@ N}ZIm6C{@=;v6Vgn(H$w1zQd7!`&;s)ydNGHJ&oLjXdDDOz}&Ty3FM2ZO$i!xU7xXSD~Gl<2BmM1Xh13 |QcT9o|(xxdodkWU5Xq1jnE2bulY?Q2>Fkj(Q|5e3AALAbV+A>NpN=^eeYA5Gvl{CWSG_Y`#fn29IRs _E8?CiW0#dd7))?VDz25(U@O1QDJ}()eyGPKfRZ@Z?3{iIOLjAHA0C?UhxJgk *zY~uiFcmcqOr$uMNnAn^}p!LcN0FvIucBGVN>>7=)zKRNm9%c8!EaLibd5%+@dKt=6S9$TQ(2ERtVT ^%s`P#Hx14jQNt8D;wp Ltg*=>G_*`6%C3T^E9i#p19i(&V>M4H5hnyO{`yJzj;@j_}Y>O79G)d3H=Qvj{1Jswsf|Sa++)V?Q~AB!;bpj(&On(AJ3isglj*0o#PUv2JOx%Lbrj0M6;V^^_jSCN$`(+m#(rBE XGw8UFFs8_VTF4_ro>OAwHF9`q!3g_1i1u3GAVURTspix5;FZgKa#SIG8^GrVq2-08`8CQ6=%(5?A|* #9<+8I+uL2s^mRQd1v>)=B}$t-t%!wB^laccgH55l0GG6(8*#C5Sl#ZRHHEZvr5MNkag20D60Q%l4EX @{e$4n#5r*xiM#FaZKk5BZzld`)sajy5Bl;YrEO_WBtmGZ{9o?9uu-lDNxhYJRACndHewz! iLR}Vs!O0JLN_~}_4sy&x04wg*gxaVTZ;ll2@n6lO0w(y?L;QPW(z#h_AOhSO87LyoVDt9}TuS={~=kH{m-0)K)@G_ov6rIBU9T#PIO2qt5& nTEk;Iyn_&(O|P6p9Y%+OK7lJu(FUm7GeNefC1=I3_yzuE5zB6iXHe(ux~2cXNxEDf56pN*Lmkx98j? &sG>M1!G7BDwcZxus=`%O9bMNtud7(1tti&U+t1?LgRiX}cJ)q}7;mqiF*kiq^_y582|F0}-W1nPHNd sy*NFgCQnMuD>}O}z;FF=W<`dEB>T<7@){=GRIlm{UQ>N*7t|q%1W2RhRX@yyoD%oydsp_{9n{~QLn` e30`}_oDGf%UPIkTHCb)DjfdXbX8WcQPB>E}kgKyb)MVyRjf=2;jh>ZXvKi4`BIY~SF>t0LV~B0i6tq Z3~fqf^r$Kf1g~Bg{fgu1~7;K%_@Gh^;sIrKU*_Pf>?qxDGi`)=j|8;!Zc^;Jetrp5jUh>afq21W~gh a9i{%x4mY-zS;rpPpk>B4QyX&>*v_5aqQ8I`QGY3=G&z{KHrVmL$+$N?H+U7-T`-v9g5gD=D4jLR+PE br~Wfn)hvv(#0Cyu`p+hsP1%Fnqg0@PVH4=DR!hMah;Ky!$+Gf>rd_|{=y_sDP=~!Zy=`xYtI6uW-Wk MF>c3WwU1o-K^_6X3`yQS}UcCPnO5^{=qrFzct|15^xS1f4U@pNDf^`JX5xh;RGQB?FoW|$xaYX5JxbNz)G-=;01z8f`bId3F-)R-6<@=c!C)OnFLmXl ?3+_{Egssf?Wik5PU;WOK^!m*F(d45)397PcV&O9)Xo$4Z)uYo+S7iK_$Uaf;xis*K3%8U<^S5!90RH 2+9c_BzT(OHG;ha#|Rn-rs4z@J+(yhQG&+nG?$gLv#*JLHN(VGwwu^vM@=mKL6gU?@;eh7)6aBS9QE< (_~U$G5+o5E*Hal$Kioj9pFA|0Eug<5a-Ytou?g%ZHrmTRjE!W8%q-HG&L**V7Q-g9Sm6>!e`DBU`Wr *>i$s`A-EP+sz%!Q--A`D4O;sBj;uxG?chx0@%t CVU4n>m_wveER-0>ukJx|FO_IwH_=UqtQbI1=kW{`aW^lDI9SST$kg@l_LFN5MWxybmcII4K5_^3Fjd 8_%#`7HP3t>&xdspf-pGAKPe`DH3G5C+&by-y=-5u(V;EsfI26cjeOPNPuX?@5GnzE_+Sft&YxhM+~x Pt8Y7TTM?*M~#mUaAOuP9#bTkBa@!Nh9r6nuq>yCB_$2b%pAI0WRgtP9!(HySzuW_-y$k^Qo$0Beewc Z0jw#OLYwLsZC_|FvY|uI6KN#a^F>8Q7g}>f9cEY;i2Ae4x7stTa+r*KVWoVKKGH>+NDJv84T`rMX&^ r0A`VN*u-UDd86u4d)*NA*mTk8dDQ;<&%zTUTGR-dAk_z&LLyBE7Gi->9cnFVh2m^n1E48Yr#64zeaS `lhHiS4Tk^V$}c|{Yf77NT2i!C)H&o1l}z3kC>c?Ap9Hm~vV)%y7d=-RdK5ZJMkKB)6GUAlI=_PXHiJ +ANB>xSNjK7IRz^dB%VbkL1qgKru#GmQm&&!y?7l=|rTl#nKMN2xuJ#?rzspZxh1(_}4-%Mi)HNI Wc=zOIVuT%;s1K_8o<(=NB-&uc41%+2`XRYNo@^|D1F3tR%`Hk@8S14)<=`Nx0RxtuV8m+Y)wJkQKsH Qjkci^8cQnj#U0`s8?N6BxfIkgrq$A1`$ykdP9P;M3lW4S#SDE^RwO9VHzo^EqK0yc$W)MZm-i^?;t$ $IZ}M*T`UixnxCBU+qQq?+lG0gHY${olhc&2!2W<(;9VuBO}64pF8Bf*(SK9L*MejzNrgEzP*$^7a_+ RX>9X}*#+)oLKW>37fh@>naO1KAoKVyCU!lUg=A v4wSmkV;C|l3dXpJUCPp_eHkeo+GAqxSi2o=ZGBI{6CG!sCLnicg%p((D6is9%iMC-C{WSVt(3UD>zb X}CSQz~osN|ZDtP;tF8BEjsrM*%PL&P6rW5xWVfXWo17At+P92;pZ5~aD6es59grg;u#PmAay(oSxc+ 89A|sF*QCfjX|C%`9U;XS4(db-7Q_j4H&Fs)oM p+*JaF*PM~6TD$0wg2`RwTD$G-UTtK(mP^X-X~-+eFD{NO(I& mT|Mp84r)-OuOh8_xf7q4DA+{x2^~w7u|fRSOgU)AavO=l^eC7;4-9e?|F2mvIM0BK9J?RbPN@m;D|u`+6_?1~2=cz3lgT*>O9MYTxQ*ha#VLa(ZHy!bFR@W|o$dpINXp#g<{qDaeQW^dgIO^88% O0$Y53R)KY~@JN&6BxV%Zq8He5mROPt3hjl$O@5b?VM&x?#zM>Zf@NuJI!h5NjV;$0@%WdN+*Puwga% ^1ca_|=x}>Y0AC1Jy%F3wV!oy3FOUh|f6*_Qqa#{(EvuH4uoDAK2hR~Ao5{kuWIF_BAtd25KkPvP;O;u;O-EOfi&&gldmVc4OX7lo9i!&D CwaAu96zAj{(lQB~#G3=0Y}ErxFQ%LgRKv)X%5dNi;)j8-6=hrIXOLrFPQHbBD6gp1G?r%P*epeb84E0ij4T^bFmR~7$ U1a>PX16!{*r-e#1?$j#B<1r0_Io?@)uk3ZJvyp|eRBK3&y{z4& i!~@K&Dmy?|1_`U<#d;`Egj$x6#L3ArSQZ!BmJhmeKJ$ sC6sF0*cbp8W0+nG!AuP5mF0d|VeU;YK*VC>Ht+?Ua?C*bY5;#04TJ%j*Q({v#_M54De%n7|Us_~7=` f{X&m4;xGaLO;(d<;J)aA3O&qBvkG`lEgabcb%U6sePGjob;vuzPK4=KzP0{LJxW3@5VmuzW0Z)|FZ` LSZE?+b4*UC}?I_m%xa2VL2J%8gg{&m4MX|AJx7{r9%;A0A=y&{%l0sm*l8jl6O`FORyif8FTj{s&w5 PaD(Rf4`Ui^F|ZfVZ3tu&rDa&|Kn+Grw{Y#8CQ;f^6TeiuWS+S^#xa ^*O7Z=dOGIG{-SIawOz047ynAVEWfgU`|>N}G5G1W%kA@LOzg*J+V)R=%fzO=)!e^jIYqs5<$8N_`<3 y3=DjQXm%M*v`qqDDVq3auJY~Hfdt_>f-@7%r1qN$a;u+TJ^Phc6|Gs@n-8J5y`tR1z+#^Qrx)Q19N@ KmWDHaTuyJCz=oN#pU$ki%IkpJ}))eZ*^DJ_F^D=fVi !Lh4S(vY+Fs+~|aW+>oK_sBegedi|fGJRqp&^H7r$SdBa!o48wC7nS(AZ{D#$tqh%6AGz>#gFw&^O7R XUiGC+-8|pkd~8aiOJ5evIR&d1;Y}1A)=+RGPq2m(STeK>@Nzvo|LF>%#>qg%0x5fx+D6%Mt-D;jX$(%@ib!J {3V=e|Xr_!)vi71E^8my!-vnIu6rT=(}Jw}9}s-7>ZnWe-frbQ>mi|7Y@;w%}3V#^A9U)bgCDL*oEJ` Dw9Xx5RlAR{k@P!Tm6>6>WDSYo-%Jx4ANE7db7q+AYbr{~Kvh)nac1(rgDBm8XG4)hf0Y}?y6z9`l*- @b66#hPrj6j5QY9|#|eIFk!if x#Ep(gW^5G7b+S1L_V!dRsf2l^Xb03b*t^6y(~im^vz9^GC3XzpQA!LwBo_KTrMG~<#zT{oBp%{k33+{$Z{juVilE}zd$B~vc6YHg PaA66uPP|=PD|m<%0j07uhU}r{z#SMWU^fjoqV24>+W;alVNK8N^ZZtr?x25w`XP1$e#L4;tK_n0_y||cE4HFc9Y47i3>BV7Ed{+p=`a%D>cKKgDFiKOObs tCuhmEkl@p_$^|TGG$FSEYCDXD$hEIvm)3fB{-5W6$ukevh%2T>B$vv~iJ&;NBE P@ezSSs{eR2R>TeW)jHrRxe-OM{$1oE7{!mlx(hg{J6Nw*0i!jm|G}()uyAH3~eO4>XK}l6m#oUhL2X v*C_mfCr>=tgPnX*dU96V>95=~dUj)tLHh(L}Rw|7iANKr{=bxa)6>W?Xq*@RjW)?b*NdXj+)R)x9nM-x|Ix|NlJy`txi1%zRo rzRIJOuZJ3c9g3A_IE5c1f1`knC36v*@>^6?f$OU@Pu;Ui4xhZ}-YJ+z+=ZP75?&#Au8%hIqdx~6wsfre%KHN6+w$iIKnd+@{b9@O++`5cAUHob@bT_escYIOG`^*IXOAZZnw)7T2ey)CG5cmA7sxw^9+0AjW<|jWhML c(@)u@OP84X$x#HR7hIl76WV+Bmjp8Xo~26F!Ux{GBucTU`YfI_TAap@YLeR$YtIe>U?_~5|izAx+- VFBcRDtat$py*;Pf$;xu)3p5!jR#69Mfd}pU!1<9p;34vJe6yUmi=l`s)e~}3;{u5&>d-vu+0lhi%Re)Uq)Gz@G=;d-k8JR>mU3tZ+fB*h0EG&$LhljJM s3;a49nIq7<3-s`nKFf?rlzu)GiS0nbLOy>nG@K;g$r43ZZ2EAcrmkDtwMgRSh0d_w2x!Y-x0-LS!ra Bg=V&PQ4G7UAeud5HL%b(;^nSowLC^IUBZ{vvIpP8}S}zV?X3<_6M BBe9YOcM>(7F6=y{R)4$SH^vNUa@K2n5{ q@&^FKTLPSl#I#*th37tF5hN_4W0FSMc}@rT!wBF@Itj9d+96iElbkWA8)_*ubx0QG6Ji#iy|4{C4&r -@vx=m)OVrkSb4ESBl@4;)hfGD2ks*@n=%}g%p1o@66Uv{6{JN-za`1#s7%npYV!5fa04d{%sWBM)B8 C{AVftPKtks;vb>-UsC*UDSi#bKTYw^dBq<(fciI@LKV_9e!Y$Q@pUw}f0p{&YHEZZb!Pm?Fvh=_!uW ~X8UJAe{XCzx`3hH@wXFOM4kV^p#h91H~Un@e?Wje2Tw};;*Cln<@S)6n{I#-$U^!&ke^Y{z-~o>xn;@Qn-~; $e|SOrWBr{6n0SxUsDRTojLny7-w};I6HScXZ0I6JO2`A7Y=bx{Oc+HO%#6|#h*&?7f}2q6u+F}KSc4 LrueT?{GAm40L4E>@!ekWbxH|zqxjcT{5}+a0L33n@o%B{GbsM;6n`znf12X&p!i3<;x~WN<;UA8CT4 u}_-OH+fF<4-+CQXk-vJXnzR}|o;^Sju6Jo}Vi;hjdDRkh#{vi`5_ES@cjVEvVk0(oPYw#h4SuQS#=P=yBtt(+49!|NedZDE{$Drs#y|nAjMK54?s94hy>_y$Q*Lqy+VuaDDJ~=|hIdDTMUxW 9T;#@hSa;g!pj@>Akvi4<>&K5UKvmN%08 @N#>;9%>t1Bz#B#S0=Qc=AFL$#07PZOp2y*jQ8?J`mw^B+($*k7~`9J%lt#>#}XsPn@5ak;q8?^6-|8fm=@k Fq4|^4!khET;s$-mxZ^aCsQhEbbH%Mdt7EwmHm=2Z?#km7bv!q9>QpfvS!tQ*8GAgl>=ss@V`dLpW7w ;!&Fsa8SF%xiX-q+KF78v#QooVM49m#8|Ni^gBab}79((LDwsGS|wt4erF;;lxl~=@g@Xa^h6k~;dR6 fHVq4CCxG*;NPYZv?Q!w<#S;KVmyv2VWlhMhQZg1OypcIwnA_S2cuVr=m9&p)$^7ca66^_;y#?}sjU$ =RVe_%ez*I%=2e7f?sHoI1LDsH1zDb>^?KVSGEA!uPV<`C+z!A7d}^lhl9Ldc~&>F*%sxQ)jz=FvTB9 @l6yzf#T1i__tI1yD9!-6#r$4zmMWK^>hCjr~GG}^8e~MrH3K|di3ZaK7n-?tEoML`wtyD6q=@c7<%* w?$PJQ-a(x@-9UWSy>Dp${sa3D?Hr^Z)REqM^yxQnAcgH5)O%>y&@k4s?~S2Dd$k|hnF4g`*zty*efo zE?a)5-2F1Z(2)%KrP8S$TaRyz}sbi1e>uwy{L8oiq&d)D!kY3+I>)+$XULADp;V?9)ceemdK;NNwdb RUI`qu{gbfLEn{o1!{7e?)?Pyg$Edy+3j=|%69e^}411N(&y9U6w~VkrL`!@@$s!uo^>`g+oXZ?S#)$ Y1=5^^A?hBA%}TZ7uq1yuu(nHeB?U*N2Gh**p=%a78(L6_2_##NP}2lwAKip5ODy1NdSqMz`L*d!tYR I8HgBUAuN9S%gkvDk-6Ygd~O7&Y_n0ANBYu=>}e9c$6!;N3g%)@y8!eqkiYD)2B~=_v4R0eouYRH~;+ SKTneRRb5@(X_}XwICkvVOMCY0acMM~u(4yu4pnFhR?@-N7L>zpDL>RTI_7Hz3>eUlOq5lptBe~wYu2 oBBk3Xg^`CzF={+=$<~w%m;NO4$J*WPZfAYyESfJuxef1Tm`8S6@(ZH#n{X&wY8lv^~=VJpvdOx|h(Tu`s=6@XpcT7)e;y%2Ws;>8gS4Gp+Je(-O=zdM!p0cwN8k;bS|qXqy!!b{-)- h1!yH{N)I6Mp>l*IyTSpFDYzfA`&Y{NTZZ{LrC8A{^q-7y<4lD9+n{U1uWfvS98ykvre=GiH&z|Kpmf6s+U%wGlhUS?MX~0|yT 9&p!K1;7Ro(aEJZ)@#FmS&p#LMph*Q9^9Yl8uI|j4GY!Od7bs2XmtTJ2KmGL6*?;`wA8&m7?YCc1Ugr ^x=)9NO+X%v89pe60{AoOeygUH>RR9etpiWc({wf`+U4@pks6aS-fa=@>-tK_kgMW2(^;)XOzQhxypk e3EodSRG$I+ulMIC(o_1EGZIHFBZ8y4o_!-oZ+ZJ<72qTbMU5a<2(-xv6!4ypZf)WfAqm$>&s?-$6u5 &qPMZ~iU#pF4MsQ#T~|fAr|l1Hi`s;Qzq~AMm%{dW%z?a~d;?HjMH|eeBz}PXKV=yLYc>D@TqT5q8i3 832AmJ3$=*x7U8;+;WujaUXI%d>`jS-^K03oDZqweCm6gKX;PzpU<5;Ol_s-Z^3{2_U#)&LPAE+7=9h eOVo#;0r;ZKQLdl|bphOAN8Nw<<(C3rN13C%fiL&~v;c3EKkE3&Q=G?s!nx@q&W#5+AGM$Jh`mI^F3x Wx8V0<>dEYlVUw4f2#>U1+e+&L3>pcMcRZ#0fh2PUo&*Y6IX?QeSJN6d2K{QL|@{CQqVy4a2YMY1$+b?TcZQzjxt9bfp5V7kh?Tz69`Qv{BQkSr eXZYoZmvYjv*RG5Z@FYk@3$t%z4P$a+|nX{Hf32s{9B4Q-8z(E$c+(bCfIU0(=GDQ0YJ$2cLoO(JoXI ?E+8A*PKrx8WM>ACwwZ?5Ot9A$PZ*1!l^9`-pP6Bj^BI(D`}ZF~^{@`@46>y)I>75~@fXS;{^%D F4|2x)Nj*Vr6f}Inc|6fzCK_J+C%>BK48g-~;eY=8c~1RIGXM=LsC2YeC#}(O;lc%e=#9ttQ+Fothi@ Op?=LV3ByRhT^XcDmKIJ&)Nuc2~r9BhRj8)t7KDj+ZCJopwx96MQmfJK*-2H9gPxZWZ`0(L7hf>y~t=w1C&aM_=uKl|Qp|EZ=00;(sl=MbLm}P7UWX6&jMi;yjUXiu=r~J%a|NJr99QBAMEsW KtiZq4(>uY^7&aYxwu=+tKSwk?MKo-*$@mwY=6s%;XplHhJ1Mtk$fShNo7yvIP}?(TP}?(PQs`SEnfjLaqn) 9Dp>dW6K!XY`>1eHusI=hORvgJ+zH@uQZNfiIN_6PpyFES13M8mA_i3YFsoS?Ml=)ap1J>0td0sh1bg8zxHO F_$BciqKbc;N*>&(+YO(t^0sp;!3M(owvUXn2cg5bc?0fJ{=`^AjYK9<`3+4-}gCy+p%0qG1iuP)2;T $|CN?5;7^;YmD)VyLI^w{8j!p8jS;h1Mn*^FZa;Ul8!6Ua`9p#|GMg7{_ffszQZw^zooS2m%ZBaW`%} F6dL|ae6(&+GZJ=h&Hft*{Tez~Zqh}zIN?e(XPMv;tL^nFcxZ!7T}G(0kR5XA &f^cAHak5eBfz2Z~TSk8=IDR+Os;wct~l_>!~gL8vbv;{kERQI@47AZ@THGky%+;`I(uSZjz&-9-e&i Nj`bL>{|bvHYWFfd4uE-sUAuV~i# 87z6DYGU?%ENkIQs=U-#Tj&&v_C9MMg5U+2bdH;y5TerSIZJ3iEU$$%+r#8Xye(SBbiZQ~w@4hSe0k{ KK)RD?pYJGq{@E+zl7}udL&>qmHMSG@t@NUn~wrJ1$w>^$=;3HSVJdu%+_dWE`Lt-5Sc`I$1mz0#?o< `oUUq3!*&>&7@Yk>>!K-=&J(4ay~S^(fFHEqb&4<4J(-!3yz|16I&&_6%FB8G3fcOn1${nz-ppMO3~^ ?lXr4-Y>0ATKQ~J-cDU2EKar>Ys1B?KYm5mnX`d=9Pk%Km*zZ=mc({qa`g^gFrtFzDFO8wu1Et%p>83 F%s$yw6yXN`RBhx8U5DvA4I0M`$S=3;a7k9)1NK@&$P5O0cg`I4L9C+BVW37si+6^8S2`ON(b--{_2` 9<_0j)9?(Y69$L0{^x58X56qw0Z(M&v+XDX+FKt}4YSqVRrwIuO{LVY?6!icafdBaMZ|u)4)J^N2X6wvOIUA)8}P!Kv)yhN?KdVShM P<#K4i!cQ4jD(oR)O7##?IJP)+a=29 l9>F>C*W%FN506Tb-_Kp%xNR^zDaiIAfxQ^^09Uw)bY?Qee*ec<2 !{&x`%WliNIk!+hoedL{l`%ZGZo5|ljuJ-$l7{6is1Nl$waUI^#-e3Y3)Hm8J@u?U~EMB}=$X06WqJM *|0e`D}h<1Q>i8=wFpbj9Dy~jhaBVE)H>I3~b(TkIckehy2iMt1XZ(jB0VQ=0BZlDW1gtl<^-FI`6S) !lzet??_hyytTS%e4tgEOo!KMLpmhG9R)Qa*XB_; =2aX{72(1@CWZ+iO<{OcW+q)e|6mg%>QwXpA6HU7=s?@dx9M2Wm~O{Wk;hz`ln+LRWGb$m!LqS7+RJ-+ljIdsiMGMUn3t 0Xbw>e2ThnamhneSgt;%kLs@OCK`ok#4Ldr6oe!sB#?_t-~kdqK?!&8LLT>xfDk~AT>-&|z$&_2vM!4 YB2QVAOYlbL{k}ERFhmgaZ;DUTlbPR^8_?-!Mqm-mUs y90j~XZY63hTbP~iOA<7j~L%Ruvg&6k5=Qyb}@_wSRXJZ@MFsjQT-6K5C10~E3J;dqc12`F??d~fM`D U?8#%1r%qqo2k>KhHGcGCn5h=y$7(p8XrJPw%qdf*q{sIIZG+EoMgiW2oGS1IBuF1aFRc%f{`jp2R3nUD_!KLTR{wlN}xFAd3#9xpweFZ v+(apwi>yL$W8vEb?$FvfrLC|}@Rz>1L5L~cCbN94tUuK=467+0+Q@?H;!w%W(>qr2nc@rO?~di3bbY 15{qLlzP5!#~G!qc5NV&b#O43)~QR74oV}V!7>^F?<0s0el2l;qaWK^E5z-*U`XkwG W$uJO^^RpfTbrlEw46^y*kxFg6&Aww@;v)6+lleP85Vf lcS<=SRkj86)C5^eNB;JWG-MS0Oy@&&0>w(J vTOvOz^7!MAi|4*vuDSZy1a>@_TS?Vp-t*7D;7{~N+vI;71D1%qadL99$iJcw{rdG2bca3&Fp_`=f*f +d4`e6K6%-WoCSDGckAxSy5%XUurfLFO5$!AU^76I<<3WzTOP4MYj0NyDvdic30?<9+!(fg`a3)*z9n teis%s|2=f|b!D;rlTO@bUh>VR(tdLx$$9z-r3xCZ1S9!J0!Kri4v^aZql-iFRZKi_!cjfv9LVH86C$ Bi48IeYf(^dRQOIHM1}d-smCY}qo>v13Qkw;=Bq;6u0$d=uyk%u8IkawV45Y;+ZEi}ukb^v{S9Bl@5| u#Obno6>V9byUT#Eu41UX*#%fM9Nx6?CB`vq;EZ@+pDD?TRydsJFlDs%(pss?#Qj2CE)=Y~$ +vuDqOU)Z*2AMKE?5&Hj9{Rn*E6)RRmrca+Pa>dY%$Tr$fV+^ZYCp&*8Vzqsnfexi=}^4a&%oDT8`h}l3tj1z27FbDPZXYUvO7W_TmuG*I& HM512IPj>IcTJYuBy<=Y|dg9S&`o9a%Hn74al|clhmy8xT8{=d>4Xq#cYz77<;hPMs?JLCg^Wu7SG|@S(`te_4q8R|ofR+_+KrYQcOQ=xz917!T;v_`cvXYj43w9F i!yX|{K;6*GWc!E3-w!>Fexn}H0$35A2{s$~B;1QQ8@7APmMs_Ei!!v%(!_>zNHt@J^fO0rO`X_rBfh U8)sYes8j97PumW2RtZXd)!uo61Nm#EKD+gfpwVD!EH^yIBd##ov%TeuwmDg&=u1pZ?u3aCyGC{1mR! 6E^6YgHRlqU6{|FO$wnv^W|-Rwc91U=n69~3Tq8>s9gL2UlqC|U50YuDA>BvU6iOvhCS5;>dK2AU9wkleB3}~QZ!)FY9)<~07bz@0 p*$h|p6UwPP7*s%W{WCUUE^M0|DWHxgWW6pNO#ipDfGFwxDu2pA)4SRdQ%U}BQI)sGnhpL##JzdAK9Mav|?kLgrj=_NP}NqD#$o#|KbQCRGF89(mzYE{+Znc ;9wVOGJQgn@+xMPavT|I#8moSm0bm>F(en4eu*94^i+Yn@$OXlI5C+YC^eCKP5C<>%&v%hGd7!}-NUZ d0X=+|>I`{e%QwR@y%-_UF0E+O+6>bZ0mxyMJkZ*`V0p^i63_zy8!pPOsF``~mp|IlXhj=YNd<`F^qK By}VuXFyItLIM7Fn`VZSiv|?;%_(h~&_6#h8(XNjO>;8~!Z}Sn-u5y#UueAT#TAGNljaUoalr|;DN%iu-_<6$G)C@@NmvBqR$k+IBJWqe?qFdCVy%zMpJbG$j(TxGsx?lt$Dhs =7`AFR8qmX>UJR+9Cwm1gy{a;?7BFl)T^ob`$It<{`8$ELH5>;Q|f3_I5zZ*R1>+3(pO+dta>;UqhSP Py}@^QGhPjy#i>^5^+l{vq${j&>KgYh2Ac?3Mc?{1<(=g~RC?Z4 le$Aapnj}=q5i1eptaQ!wMVpGT9NjGwoTio9n@-u)KDXRq1B0PW$&_+>?`(^J;gp~pSE{7|8$NzxAMm P9^Q&S%sW$0dh>7G01c+ &8?_UPHgF|D3#sef jSHO!N%{tTfw9`yX&h&=GnjAY$N7!!5l<4EX*3{X)m7=PWGXpIzEViF^jAg_ZT2Y#luwi=)phFMR6mp &8WWlvnjKmmS{HgV^i`;aeuLgjZ=)ybIr=nxmwrU=Z1gk!Vze+jm>bN$ng`4i#Ai2IzauV7wsNc@tIR 65p0*}g>#UEgFRbfXCpMe?o4K~+v~d OzaT+I!;gWS39EADdlE%!sWrdRIG@)i^49rHAw`H%RW{ce7ipYIp@1NA&pH_Fwf^`fL3S{ $}Ej9sX{j?kD~^(6^^pHLYW@-0^x`cX%mW8&4c7{F+oe6y#s-ru42fe#KL0_V Ot>0y&7+sAX#%Nu}!`2DwF4l(GEX;gq@LhaA@xo2+pWOLG#p{XR-oer?0(+JfQ@ LO5Mv{4_wkY(3o~Ji9S{iexZzIhKW*e)(nqh6VBzwEv*BR|BcW&f=ARh1NL*TK8Zj$_g@_V&C>9Lg1J km)^jVj|cW1X?y*ko)qelY5re>9WK0p<*|!V0soY&l!U&$*^Q*k9mp$9Pmq(hxeWP#T94Ld`qqSKR)|}Ie1HdQGE|agVW>r0cBty;;+$Yc;SMTFmM}vNh7Gu*O-H) (h6l)--FDb<8?towdHP&RJQkkoaRFdx5>orm+p|Q}#PM!ER`MCu(rTL1$0>38 J0qM5XT0;AGlwMe?}CF`l2rEL{rCWq%cn_mo#x+hiD)?4T}V`1Hnk8(wEWL?boY}HOA}4W@EQ;tBFOrAs=~4fl{KBDFaE{Rw(P0 P0AK;hqu=|;2rTk_s)9fyjp$({}#Wo-^_32hXe&vgjVb27l>e^hM0uC*Z;tm8rBf>%abeQMP%cS63;e QLP{#NP^nZYJCvQuDWxIV-c+?j9iqNWws(_yNR_k(T63*~mZw!{^Rz|U7VE1)$#cq_L+%mxsQbAqd9}Q{UIUW)TWCxhljJw^ERTEbydMaBrkn;Z=`sua#@%TDexPm22gfl>Y}%O9KQH000080A>M2T$~7c0Zu* v007DY03QGV0B~t=FJE?LZe(wAFJx(RbZlv2FLX9EEn#wPE@gOS?7a~^I^De=RD^*&)a#P^ZMbtA7LiOm>Iull(A=-_*2>C{}hR_Y 0jTcW8KzY<~=Lj_RG9lZ^K5{z4v|QllRqs%C)xs)1Us#CfAyeyYAckX;;IiT{qoPn`^NTz}~Aa3AB>UGCTU_1o_A{QGy@5uW!u1>eH8%D>Y+#;!oty>+*LuGj>lXi5;K$#v1+IX_n9I^0YbZSya?5@pmPK_%BV6h`*tGnXx4LkHx OcWfDZipNZAA=$Z7(buRL}7Yd 3v-%O+eG{zMW8QQgfG)3_L`yY{|&>NnLh_MJxsO!f_2pOYq}Q}ORwk&Knh$A9;t;1pb|<@j{H*WN1<@ ;aifY#OfrG%1~W?R^{XTZ?;66VQg;h3key={~;UGe}4@B3dy8*8`K%RZLBZ|2O`wlh})CG7F^1YQ)LX M#>qh?KQ1_dF+9o2ggh-pnqSC>*9QoZZUqRZx78~2klZ2?*as ietLOlYknF$|1l|eVXYjDtTzSU-DnPuJzxorEtdit|4t2V{%Cpdb9EKLChzj#1NYt(taqysm6ZXXo00 Y=&|1o$Z8imgF1%tp?YgrTCvL&O|5h7OI^d1Vi &_bqkC4I&(u;}OO5d2|0;a!jLE`k>AKd;YV%yaNClJ595k`ovJ~|#s6=fuu5}Wtb-9k+HV?l%)fdUD^ F``howwbCUj>uTTPtLN7vIkNAp g%jjqLWor~Q@*L!d!dOZeuO$V)k|6!sr(HgWoOmrvu>v@UBL~Eis(O#$ZW1uyavsNpU;6DbM=lM`a{9 L>7Za2Mi73ZmVho9?Syt|j)hu$`sLdWqlN25CjOqroUlLOCLp%bR;Pz`kLPUzZ4plg2*UHcex?H{3Q47x@zE?(5~OjjY} z9VO~=XW>Wf--ML**5`)<-nx^`dc0ZZh_0mk8D=AtVv;ouK~VlX3O?yy7JgUb;s)7vNQhydD^{6y-n( B{B%CM`l@`16+WS|z!RrFzr*P={d)JNW8>c*i$;s^?eKn?eVcu=?shgi?{?O8@26#at58_=ZpQjmv#* tKBAyH;xAZ?YPu+5WvBEqvJM#nR;HhXdhu$40SfD%QVegfYCE*O2SXKtvp9^_>T$ 4i`_lNP0_NnOwem9Epw)H>3Os$l6IqEp~z2$Ajx*Ui^3t>;r)B~qHMU!vH%b-c>f5I&F8`G{Cj TWMrbnIcQn{cmqC(7&7g}g@mIWEcDc%AbjA`Oc~YpI+KNc#uW9UjLKBhSE}lC5^ZAL5NF>h~7aF9kMk _q|lF#iCvY-t4~j*!X*$FZG-+E{!kO3BIJT>L*|~2u~{a3A3R2IFC@@#~f-&MKn6jqha7VeOhXY-DXv ilPqQv3MTx@)Jc5ccy2KA!GP~p;sY}YKBzh$ZfY~)PP827gKlRuyq-YYVoZD7$Oqv3SY#p}#(4ld`1e uq-8UNJ!5`yz5M9m=^R^pp_L;Sd`_Ck^h><_^?R2u%rmwxO-zle$z*((DKCXMDBLk+i5IiRbr6*f4hH r0;MR$^p#_Q)Q8{lmGz{u&Pk8}{M<(fZ{_Nz@h7AL8P%TP|4oHnutxYGNRpt~zYx?P&R`*s;W6Mm~`YPf_NA(MES1U|f0kSm p35cCR*7fhH$y%{o>+R8Lf1<0MUiZ+tdZS@cef?7TS~95dNorHJ$(=LVJm1{}+w?_s)Q umd8vy=mQ+j`=AYC2kF(KVe>a%YA#?vWCXHAd}^6$oP();(j9N0QHe$Dir(wULY^8Y~JO {I^}oAZw{@I>uSM|-mx=NIgM$OvQtfX@4Z^!u`WXmQ(D5s&vD7paLH`_Kt5|9`u0iR%x*9Guzp}NS~t(g{fI2o |03@VG{q1XOB>y4f)j<@Quog*uh)ap|J-J8f?te^0eRLtBy`*5#ogdIR4hc+KW-Q-Q X+NlXNvgcHv*;B>|JqS1mJP7sy8--RU*6!b0RD9&_0&&k77~V*!%KtMkA&;DEY$2)AePTw`KIbf1Z|^ ;@$7$HA{`&_$J5_is?%P=*?To`#HN8p}g_TSR#%FTG1f-nxs?9-={^#?v38oKBfF_8~t@@9aoK3t_i} ZaWp$=p%pF!B#mf$cOgREwR&Vdqt!Ubf9|~cB&HcZOZUf=SjY5Yg0xBr;k;QRHd;n;YRj^^myFvPIr# #W$?6ja$1Batq*Z3mCO5%lGL{(l*!X%sgZoZ$)mb}r<9iJro%p)Tt2G9kJ=A6OZU+S(l%t`5WJQKA$WE;- bNO&g;p1+4ScDZucb_1(foz5EPxz%@e!zW$9)bOSU)i(b$N2@g*{wRFO6Yx>py$f2ckU5J>>;0>n<*Dy9qwW#(Wl_bSBt0vgO3bf6&|R0^X+>*zFSSH) y)bnQCtA(s^++)fsqG+rC^0yz(w&^s=#y&LY00^-#XPm Holl@^=M1`bR%@4kaZziRrJTSw#;8x$5$e_7wd4c>W1^q-XZpLm+`z+xGjKS6G&y+oRu)mD+$BSwWMQ hu(8pMim$yodB!m7*_*r;6f6RNIm=Tc`(?pLN;~*L$klJurV{c&xQ)#S96~y`MUCWXzNDzz%)p&G4Cr5Pk^!euJOidIe6bi^| 6aVOwsRcLo|%E=V=;eq05ZdAKA{~qv@d^O9w8q!2YCl8X7QLo=g~&AufIl`x(u~xH?=)})=2%R66DGT +eqzd*WKk2%2$^!aG-o`Xj|JD>n43X51y82?Yz`7E3j1}AI1?n=hS`d+2kWNQtU&1rvtb@3Z36At4+O -c`EBoE81(^lkAKBKuzxR<^(8TGV(lQgRgw8x}{IcGhk9YgUF{wqeWi8ItzIlGJN};fLY{49xu|=Aq{ 1+c(d0*<34Dh_|Az!TmIz*pD?sJG0C;r<8htMgZ^~z^?{~ECdVP<|EJAgg7*{5+b7;q-ra7>4EG9EEg lsBI;7Mb*EDiPp_bbe>Irx=J+h@XWga5#K2=DAbR=@_{Wh;OYhuh~g-1;=!$YweaqwuokbKkd`$3>dn 61}aTSC3M8$X9y--%NnL6ZI~zvcrlE{^|V%TRe!nD%0Ji1COT#e)^uq!~J;^Vt_4pzb?ZZXqIgwS%5z Tds6|rTeEsg%8FPc=v!M>AbdTiWE)wo`OaBre@G659OiSLeEdC4?-r?%$K}kG_+I)Y;QlInPqN2UU)S @UF`XaGCtN(hrIGUAiTvI#G`BhPlrvk?S?w_LIU5SLoW*r$=|q}&;`mAYwo+`jXKujxRltMHl>?pyxa xW4OqHj8UcmV!k*6>&Pg-1_L9}%gN0MD0(d}~i{BgaYddvlkQTWtCXRZ!7P2&9=jR#DVdGgWUx{9?kG yHS#umv&Bz&0iD>)EUwbbL{{vpho2M6WLB#4z#@&-Z{o<&d%6TUp?zGPfgpNzZh?(zqa%Cuurom3>Dz yjA6q$C9kAgMc}3(81xJ$F)oDZ5pQ75A}2}>fJJgdMc*grbUPWPnvT1`%3No5YpZz<@OK5?iEkNnKDk6~qUihKACw?BpS-og?(Vn#bMB?_Lkf+&`7 ia+NSHQF1;I{+casZdE1g{e5ZbsbuFrLHs!5=DOaq-Onp7% K3?Z9X?1ejSs`ph^}gk-^d7v+#JfU?J>svpJxnoRosH}@D{>=^zhYV#?fi>*>c-b?j%@&{gY<=F$%@x4;ZOZKb?_dO^JJodbT@)`xbL(tnu7h=p#4KMiZg&XniO~?Y5^ZN3Lhyi ^^%E`wd-(4~v5iDC{)dxw^G2zYiaS4+XmqCd_RX~rHnFrjadcvvQpZ{e%HQ4(oh*V6uWF7Zn6?^h_}( J1x5P2?-_zfOj)Y|02N1aBV7D-GD;YgLY|?(<5lXXTi+FG%_g+?pk2gvRVC4gbz!-}imc^lK#=?J>#@ kEb>L(#t~|^GIcSQz`i{1^8Yd`Da$8mzEv}em{}N>C0u6%Dn1o@y@Tk`#I7?0CQ45fFVBTGA7?&O0@K vSP|mhM(9`VX3`(xy~L=^e1w&k2EI67=mvk@QyTEi7ip-hRFqHe6{IV`wE*93i05quEa<_{W@QmDEyC qjzP@z4|3HiHcjNgLrt6o`k5E->HSFA8v?Bqx1b;xXt(PpUcHxa`*t36Ot3Bkeu9OfnNcQ#Rh#4vuBh 4bE5wTdUomu+}kj7o0HYt*|)mD%8I~Dg9-;sp{%B~RfaJ7^&LOy3zsv2%CFBo|o?Qo@44O=Cvou0Shd Bq<1nV=!+a%3HNNOdJ&qjJ6)_Oj7pdQQ^%L(H20sQZy5fAMyX^!h5$mVB#cG+HW<5$9NEAIXK$<{0zw bdUwgU!d8nAo7#!hUN9FLVUlB5f1UjU2rS!_kmq`iu!xrfgTd>q=PQ-FL%D^v#pbM~2=hYo$z|AkQk1Epk4n O?XVUs&Vw6Mx6&=P@1XCpA9}TNg3Xnae^J$-VHa4DVlLdt&2V{JACeOl>dSABnRwoNna;PsaOt%3j`$ _>6q;Aau|vS=Z;utX8=}4U^8up_#Z(XN`HdZ^&1}l`_k9OUg>8l{La%)S^AeEt8b>yS2Uyqpf*b;yy*B4RL Ufc0U3gSiA9411?M345ofd8gH)=r|7tl-=x&v5CHtWMJ+c3GV|~bKc|#6LVi6e_2Q;4tE1g$|N7RHqs n9{yiVB;_=XdiGD$RIeWBn_P>ASkUS_eZWeNr9FrU3^P(GA&FdCc)He-2)2YwzNRxVRO etppTMElag&j}psJlJgR(Jb?59Qt-l5>|8d`P)nNtsjAHNUUJBPk~-R;o(x{T=xhURS;b&NpmfDWWJhsZ(IHx8!|4@fpvY%8hMr##(vjNWb)D^8{W8Em5(ih; J`$6^S_SDK&S2;UeMP-UM@5n8-8b{B$+Srt)tGtPkKfjJi-gs({Z5)P? Y}OSXsHl8x8Nrq!uW!(}~a-k`l3((1VyGP&TrXze2EYkW{`^QHRv7?WG8(+bq7Qkwoyl{D=k$mB@hJJ H$$)W5I6T*>pawn8Z#aO4B`YBWm&z8P0Nb^9vNj_|4k?Fj!$+@rpnc4W6J!%NCbE7RHGb1TROu*SP3 e}|H+h7YCq$X2Y|udv$DRw+pNI%Q>jMVhevv+B)(qqzRKy0En`Ne!=F?jG5egl{%+pHKH0YIw+kczv4 6{azR3{e(x2MD+$X28q#xjWCTQ9zr>x(a%xX`XQanEdJ%&v-PoG85VJ^|ZD((-U-6Yy3Nwe;&<9>~=I s_l|N67Pi{GO~{(AtH3%@v>}>fU7)_xZRVPFKTS>B462fxHc;;5k)1Q=h|n3rlZ?PjzA}T00Cpnx&NW gOFjWM<3;-J|DpPS4F*_?7tm#@S|?TkD(PTdhXEGwU8Uvs~CiP9u qAD_68Ldq8`|1>caqOIF^_C?@_r(ucOv3LXqoyg6HqNc#&~nL~|aqfDAlJ&pHKs$sw6Dz@T%p+rB{P5 x1)bv(A(tH)N<-?|4O0$Q%0zt|LZfEBc5)sw G>Ns>-nnZ3cozQoyrERzL{K47uSn+_DG3{J<)zi0o@1V&-=~PmV0`UUVqQ~b&}Xqq~nj8Sr1P)Xb$LU 5cBPzbkvth{b#eN?J2p*!PDFVT3GQD%;=yCZxQHkrzEpgh7gtHlz?L2QP2VO8+rvA(+MoLyXYkQU{vI<#(jcqw9M9sk7r% B0UfA0Kyq2JP2U#O045p6Qc$j2uRsNO)#YY^LiL@%&Dc7;}ccwhuj^K27@ZOVF{!kk^5H7X^1JsgQjFYRu7~p9(0U8~^YVb{NK`V2sNet1vGSt>QgZ9$c>sz0m>Az_K3v2khklsL+An~%L!b}Q=7XTkO wh&(+ISzhf7AxrP^`Eh&$bKtcBBfwEufJznKc%}ry&}9d5rA{5znmf(}<29q9N$*1s(2`tgT&ablF|t wGZ)CaN5fq9};t9G(P5d?&a~cgU^?&OQJErT#v-EXnub?(IOf5)A8dp%d*sX;r}R6Q@V8ys{xN1J%Ce 5zZQSTn@nk)3;3j$G;TrgKT7b;B92QAWN W$XHYG*NomDX;vy-ndcB8JU+!>Ef4RddS^Hg*qm}e)s&;;$XfbSM)mU2eu+kW_OLnxyX^=I(UwOD&cG+7Nie>S=^vi>H}d3i84=RokGayHAfj+xRufO`sbSPl NVSxUbGoM3YU9_U}EB#peW?V%3BA93K3H{cie=c`+u#CO7PeO7D7K55zrtp%xzG#`b};h;Rj+x#8m4^ Y3^Fy+bWEm@)EVGdshpFgavmw5W3u%C};*IKt&myu|`j|6@*#dl<-Tl6%mXa&5y@Ab3tIg60F6OphxGRBMh|O$cB^yLMt$yIHjj2y|3k?>dG?l{e**g8`lE%f54w}OTr#MNPUKq=&Ov!ndaY7Updu_XuJ =$vIKgy48P$6H;4DZw_gBw*{0+`-~Ag$E5T>t|Bh&MXYc(>N8x|+W P>t)6|AqKd-j&zAfmj2YOooy;YjljoQI;SDt-WKWNgBX9-^ lI%uv1S)?0KX45AeU@je(o+0^c_0zlmyxN(F|@=8ztxhe27Bo7pK0YW*cjyJ};VYLOMxvQTTi~T!qgi YrdR=`*H-I{33#1n8hL#!)!3nfAw76wuXgIl2~r8h%V(*(M9l|crb7cYln}U0fh-?lHBL8F!8flmKz^ JJssfVH-5KqwAjRY^1wsi@4!R&(|jCazu;NbeoJ`sCuY__COz#)(*>H^s7*!Q1;B~=_q~Ixl*&7K4e> n7lSsBm=6?g3KL?%cp3V>_=8WtHkNn5^7*6pt?jt!wT$C5{W9d6+Q9S;wJoc?86R|gRgw`wid2arX(v2WfTs<3+Cjfme5-8QFxrrpN^O6&8#wFF)ZeuTy!ubTfqbSv13LW#_lf*jlD8VmL|Hpvk hLQ4%z<*VQD)cun?`d`?hE-jyQ2VB|Lw#N(cZX1xN0Yl><;Uc1e}0_Y U3xz1VwzXjt>t;n04JC5kYn|S-@N`Yn&WT@nOy*xZ9x4Sz~?&DpJK9q)?hzjfPI%3U)`a{6lZImo8b2 uV;}GFJGif=sA3$(naUa)h_6riXG)Uqi1+yPFoXa0{MD>Im-@voBuB_*zeZzb7jC67&mJ$e4O-ede0v (-^mM=1(s{)g5UoGp^NuoG81>VhUPd+r>1dwiCcq)Tq?E@CqP?j@TeRCPU<5DT(iX~AcN|^k9v!;BVY Di5=B@>xgVzdLTiF@Ne{BjVfNh4A^jdemko+hE%z=r*z4S %|jpngSlIN6w`3xuEX4BnHku^V~Pke9B%($4yeK=>>7WU=;E2le@k7E>OI!RoTr2=xKY0e_pb#hjcY1)>d~9FHZAyPr1Tww6tfyT@aZ#VIuep T>&9DC2F=vr(h%K{1b;<9i=}=kUBaf!?BA>kX`CDB4*~V?Il94|>*?N#;i0&rW)Ab9uzt)Ud@RW!h-G ;RIx0_!`zk@pg1BYZ_cB=3|`jhw8pVqoezAT(O7aMvA-1?w>l60zYYFhFqu4~CUdA_p;%X t`CsJ`^82_R82Y1MHRXm*Af7vpHj(Bp#rgp!`vru9RYDwtt9R_y2yA=?je#y*^g>6?ShOb*EEb`)RkZ bu?}&+swG;Y$VruIMrX4U-aqR-kb%416FcpR7MA}wb7xvNE%nMzpyAS0g=D*C>a&`NWc69T2F;gI2 HwN5?=Ff)y9dEP8fV^!@_!>YzZGqhp8c*(eJ6TU+A@^WIWyYKN{806(qWn_O#XHa3qt<`Lm!bNG^cGi Y7R!%vvBla(r9#f@@Ui~HAUO-TqBo8??9RwIr8>g7CC#u5{y1$rhYtL&qpCAXa|ddN6$txE21%PiaBV W+B4GVvd#lb`P}u{!1W_0*6o15wh?+v^8-nb_4F$Ii+$_dB?C1T5jSGrp%ZE;l}Ua4C(-s-2A7AeO;= @91x+;0;Q_4z*Mepf<3`cWY!We72Knqde2RgV;$4^QXmy@(mXM#Hh!5$P;lmTI7$5G^_@E}>L;Cy12h czH(!4nG*Yl!j5-;v|Zy{d%V&0YUqW{gmfEP*N#h`P`pT_$qC$76x*y$Zk#Oh?L$WGn@+WR%%i)`KuK HgIiSvuN$l>DA%Iql4Lr1Q%a5%{?yc*nZey0Rz#Gs@}o2-D#gMMduOxElzEJ7e)X^^C8U&yc_pq_)cdJ#Sh28GN(l>Bz>lJSK96!>X4RMES% W5<$GxAW+vl*%=GR!`SE)}rE7fkD!_pVvoidNNO{G>`3s8=A9_d~*XS-xwY5hAEw&8uH1-zXX+q+`|z Ahua6-V6`r8UKRX?zE+1m7E34dEL!;OhatEAgIi_2M3JOB3O5wFudz+>^nySW`vX$&fTyUh4l*Eeysl7C=fi)kF4`Uslk?DY%A#Jroy>! uBH>#Uevn+n%Y0oMq8*(=8PL#*ao*RuAqxvuqp3BHk8Y9v0EoND|I?X`#2vc9e1d|t;Hwu%N?Slv_dGS|{T>U>(qeq2r99k6eG4=%YjAqN TA&6SLM)g`aRg%edc?#OzbTclA4x1?y-AHU*jVJJ9-1$#M(QhApda@%X5>cO-o=zV3Uy0H#ln5s^vQnZshBS tyMreFuI4TFDE6E=+!ymGYo}{&h2U$~eBiMSZsvHlj0dNSv_S^3ZJK=%j!EBFKH~W4QqCuOVWn-$^%L4-)p-cwa`(*O 1SLJbZqSwg!&!4D)>v6h7a3`!p6Y`cht5i~-*XK5qsr-rqFk{LRGp-g_nZqRo3D4&OC@GkhoZBh?jGL |jR%yTh)n`AC9%p&Y-3b$jo-iMJ&U_nE_GR@S(C8Xuc_#IfHTXs%}A=4)B_9vT}5f7f}`a0Bo;nKHU; L(=|Ie~UJ5+#od$QM>e@+GcHGhZoFv@aRJsEbys@bl^2)p9J`*j&=WXNReN4vYjBiUM4=CQ!~3>MkYvijK##Vq_Ei1WNl)bL4D%F1DI$D1mdJO+&D!5+2r8e7(eB^6+uUEqbPx)sy;CV#bqveaJyGg^J=CyD-j 7B-{tkAQDB&n3{3(iK1h(E-eczzC^iPqMEZ$AdiA3Xc>{lEF`$Q$wU;e~wAd{cr2KK48}J4WYEX>@*& `W)k64~)x-V_a6&#K}tN3T4Hs$%;brj#3pn$xDHxOp+JZyHPGLUR)dEj 3EIpt={;wBhOp=pAjm{r~oO~dGoE*Iv-C6Kg%E?SkPGO-9xmWaJx~jQHQ0EF%p@8M# *Y_vRV5-oNK`v^Jivdo-Cb>Q?ZX@N-9AdTl6?eTkQ!g$DWg!#hHLHYSjt-Kmpp%|DR*SPizuKDuoEm( ?caz0PVc3_03WBf^N6Y0bUH_p?cga3u1j1UXSPlXz++W06zcMlX(7bd>l;jQwQDgLRNVhQL=8L)-CJ)$B=@!HUTbm23*oFfs2lV6?#)PL*nxZX$_%2C3o2{`ArL1nAXKJ$QSH^qpVc o^GYa<*Pgq~Dv2~V8Ol39D$1)Rd~Z<0Zp3M2L8zmUtg_*(#}VH(-|Sks4_okTr $&wCgQ(;+fW6#+q#nrzQ^B~R)$YCw{|3kThjvZppEbt64{7|n!N9-kHU2F d=bzdX;~(Hm$v=EE@-IEczxjmw`OfM}-4D}vSP32~^AAnp;UBM%hc9V7JTi%gz~!ll^}Q4i{~Z3EzXJ Z9%Z>5xi3|VBzyB%z#m^t(F$UUVn?+i+`VYW4lhtm|gzx_Mp=Yf!u5tYW-H3bUY5whpO{_gnAJR|Aq2;s|oHfy$e5aL_`qRxdU9`8?j3i!OmqqY)17pQriJOw#`0N$@>zmBxl9}_=15S!$?z^i% YQk&^QXg(WlXJiFPma|_Zc~+cYaGu@1B=0t#^ye@1Ne?pvAU*cA}74jk$*LA5 c1HSJi+OSfCF8!Mn)1}wUF^AnFl07JI%E<$C|+nGhT=6EI{8^jO &n%>rnG$bZFa!zq0Kz37z}*E7ZA9UWn=34$GD4+}#%@>fF<>O&+5r`QE0<{kAx{r{^pEy^|pQbnSZK6 0nTr$LrlTO>g4!81*i`e3RkbB)!x2m-fCkS?|1;X~RAy$MkN9#q=)Opm*)krS&f5ebl>FleSl))`q$5 |99)%+i`kVBxM`)E^Az--+Vi|a}%yKPb8*K*<7EtST3bYSzMR+{_}6gbjf~6T@vL|p2KfX)TLvuPTu3 2WOj=t%Uj}PnVzro_fCTJ)3xh`OTaRgAFoSWG+l_#W7MVi@=bNl;E5wo5L53gpCpsY4=8J75d7}eAtUGSh(Lvdn=u@@_)`2jD|RpIKM(_13;M4eB2!S z%BYeRJ`PMokt=&!{SvQKzs{LS%#mR4kQLHsu{Wul`;_D>l0SKfd`H*>Pr85Ry 6Z{b84N!wBEQ`E&qC*D?Xz=^#QOs_Aq|aVRc^MVOAo4Tb!()+rgPDqd~Z_9w}g+?_2~0kz1NEQt=7$! RWwG_fb?!lMFh6xjGOjOKz*m8>Afwh->V0_)0u1xW%rm3FwKAoThb%rT|Ho~U1JScv~R;EB{bJu*_w| upUhYJT(5I>7XCQu^oi@aZHx5Jg}#!W!WNO9(!2@SuA+MIukLC!atL}lPOCYBRSvW^a{AME?|iL)@=?S)wAYd>`X@oNWzD71c;5BXeAVldq*80s>K1+L(s}XLu_@1_O7Su#OtZiAnh4|27ptsHk88p6!=ujaA{7%;Hk~P~WOQp1S +sN;Q;CCYU-j-t}eu}YBSw_3P3H5p$^{4W9oKJh)qTF+c&neb ji+V+GWu=6Ji*R6SM7H|EZ(K!t2agtSMjc7!jPmS|Sd$U|&DDI~mZ1&@60CDcxPL)t9dNy1k~|*;ZmS ouM)!19Ta`w04npH|4mKTN0h;Gs3}4I&AI_V>$72hvsBZ)6TL9V?K~H%Y`<6sM9;P)zE{@a2FL+yY$>JX1(}L}A{n~NAVbLp8A`OiV{gkNd%ugn^WWY3-S~M~Q?<*mo1+ip!v@0ElYEg}fey6|ripU3&f^O|B% }SKwgRye(Tec%R`)jHzKORXkM)+~zEp2B^g7Hp)ZyjRu{!AO+o`wSJT;8J(cx3W@qRqbyM8DE?ybPxZ @aa?%Jyb#L>*et2Kr>a@5bUH$v?9VG);X=_%djZXkYH0Ank#-e_p_kZ%c6{JokJ7dQlUd_0`8hG*72w+8zxdH MJ`A~w&1YG^rCCb9&zscNkqN)2Q_5Q3dNEr2@Dz0x{Vm$MPDgD0f0vmRRUp=WgU&cnSURnLd>yfq{qu BQBCB0Dc1v5IlpLTvL>jWx9Vu4dk%f6FyC~lNfn*K%U+XQUc3jUpRh|V}o_|3e?|HR!h_PaSdQ9d@Pf wm-qvLIZA5gVN4LT+32<<^#S+ACozE(1!i&ZQ(uc#9DG%n1LCXMDV7}5}&N-M45Vu30vi|}XAQbOBcX W|@CuOz-VNU`;L{{!VWO(@?wvHbY{>F*5C`W!9ps4g#cTZ9dx`F_7Nv)awDTeOGN<5#O&4#3t%O)N}4 BkiF^>vrCm4ZqPu=d-Bct%E^_)Ub5tSe|#W8pJ^POYUAic=a=YoqIHRvqtjl{X}2Wkv<7&_*ZUDRvEH;FoXt>g>d&J(Q$D JXB$4DZLJU3t~R44vQ?YI^>|t(P(Ei_n~QD4cdDG@O2-04(jqY><+DaT!gw4%?IYHO_ !U;SMOr&&bgE47m}WSj^^-b_3t@Q+)6Z%!22xi+xx}$SI74dp1hyccwAyw2V~%PQ6hd%MWdHy#b`w99 0x%keU2dQrx9P*E9G~I0e|C~phW8~#ktb5hxTS@H?zV+)GxK@Kj?zp *ok(=Ddmi0E#BEdYcyZ|Lv-g0vam5$DXX;#HibW1wP&mL44D40Xc3)vN&OGJKJXoQA2iAd%8I>#uW7p S^`q}sJsx|f`RLQedRYFJ^+>$WRm5ZtEj7`)GDhcohelB^S~E;*%ziUntT9_^Vv*4UC9V28v#6Xq;)8 z91P*<)Rye!2BwpA0wDrUVCe}^o3%>0Xb7uFzw{w}qTC{!Bxvds!(SodTKh5Duur|5Rur`@s4J7-jk2 @2ur6%3&&~VIqSDbxD&y&}%CEo8U@jkGER7-;pdMypKJhxUg3tVXM4$x3UPDQBctq u0BzW3<-Vb&a}Zsx{bECb0&))ES!tO>|=#-5OCAi=*2Wt?35c<^g7Nf;HVbod{Pc0p0Ebyw7TMn`#eM (VjocX>~l)6de4z6dcH5kwM^m({#i9-`B-D4Dul=qS5Z5wP<&e&B37sEHb=}1?X(d;m0k(p%b_sr2C} c36m5!zFb24B=K{XZEw(7N`03t_i97Azj+_Z{oU&m%biNEMzwv$XfGOCUw#3y6ERsr@0gN8%aU1l4{# $N`K2Ur{twM@-I&C>Yw@EqgQ3f{7pAfH*Gw}*4)FO^(+t`ZmiAu?J(dK#=^QoSLi_0Lhy6b_jm|C;Yd ZJ9Pa49rgZ768+}AWX*>Q06GqMi7PG@n8J$49QIob!>L!IXEy=;Ixi031ChW`_$H3~jyv=}m8N_l8rV ?VxCn#JDYebZueZ+bnpZZeV1{jKTv#AWC>VxVJ3938)5pkv!*==fWrBkhj^ShPouk&a)CqoZ#!9h-DI HW}#nSpyxfxgt7F?#HCP)3kk&JT(&QsW-sP7>7BrFR|0c8v8DaJz?jbiteN_ezE6QW@sgg?e~^{O6;F @dW!wZY2Q@Zi^i24+c(w3N%@vRBLGHXyN)mgJlTY&`>?Q3z&(kAb8=`YIrrh_jx3s`Ky3C7s4Y6 ^NEVCkg&+{(SRW*(Ngy24WvH7UA*WKSLTl)*fnvZsBXI6OmJ^VY!$~lugv@Tx_S|wY5ndBJZ`&}b%=K =Rf3dKi~qZRFLq#;9`ZS0mDE4>+P;@)}__8*%(E=YCO`JwNnM`OnCrpEX}JfU+B)>R{(8e8ozXquf-H KzExw6orf{CGSn;&dCT!$IIG$)r7KWZ#$h& 1$^H&tIcWA#uwuD{-(V$z4#)i0X@=a83~gVeZW%FIJq@%+0?lh!sBZCJq;vb!rjx*_60vB327~rtC;*I9JX 4+_4kwkv@pCw0Uj`aOA~;^aA^e>4*cKNHC>#)qtod)@Lg}9&+JoNua8hnTaLDl{07A9k)eyx? n8!i2rsceUihhDY8UA2T=)s#3+bM&hopm~f24;6&_UYQ{UOGRuh;hRpg8B&)Y!hOw4ay{zQpn2srJ_s XQrUt4(ofvE=m>qw-y=TP`@rSjV|MOXnVtMmBrq$Q`ra|zZDWI9;%`E*Hl1l`4D{i6Yv3!qwOEu$O6x cGp`-fwQ_R|<@Sx}cJkm<{cN79lW0dEQ1fA&&hoCIZZm@wK?xyvl)L&JVm$ IvDkd;2e`2L-qpQVU>G>tltaQ`&Jey`^Z?Q$Jx^iS!m9rf;cAtfe*4}fMzaZhdMKG>TY_@Ss%= C>4xb|h2?e|H$qZmGA4^tHgs0yGB+ww3SGRBT~^a(?bXcIazE(Ve>iqZeiUC?&RMTbsB#L|dF4I*pjN PGUt=Cj8b2@q+NYJKeDNnjv0Iw0~vQtKdh1{?vd)i;K*x+hL|Ncj!D`$At5B33u9?Ckyxw%dDH~cG6^ xJ8Re4zc0zp_vWWDL}kn7Eza}8ev5sN9JEIlKZCX5YwGA5bk2n=;zXB~&JN)GI+BQAbdEgLX)dk-gFP Jp-RccI%FyJRd<~W>Z1%)+k0$T8*z^17&e6F2NYBw(qz1U}ofP(YgBX|KdxcK>J)QBGHL{lGX2IW~`D PT`v42)0y|B#>$!gOIvaJ_rU5H(*3;8%}^pf7RuypF@f9P6uizh1fET;7@dOg9r4C1}y@>Ms?5odHzoBEFe|q}ZO-CR4{rEW(fsJ$?)3?4=O}4NwN65@k$Ya;fc2!gCzOh2^koHQZeJbCz$K-j`PJSo tw+mkyGXu52w8{w?se*iXaerIO_L&X1r*~f5`y^#0+SMY+VPOUQf QpOJ9%H-7+l-d-uot$1bc6P*(Pen$Nz#qI8G0LfEGov?z=I=Z7Jm-2v7hMqaT`hd^-#M?wsD&QcA*BF Wb7`$-pFF{%OKidqT}mm!$+p85$`|q^N)K3kLhfXtk847#m#7K6x*A#|LVZ*t5x_0=0-ZpF=e)TbjZd 6)}{?xw$q%;?P|o)u%U$d@Eq_HNiGJ#pM$emJHdC{z-oFgli#Z4w;J+4qvfZ4l6|t3(|Hr&u`k#Z!MA7JkpA&V+l0&MafT9g6jpj%JfGvR #YQc58N5%+s6^di;0MolD1}6Vi6Q7o8Nxz&`WyLP?jcY-_c>dDgCz$UmIP!Y6+u1>XToiYr=etef!E^ V@lT`#Klm%+F=e*g7k`V52=>myJ{a<^|~E>gCJeBC^_g*ns0-P>*hfO@aT3_R|)E?sh-+N_1y3Z}(<$ ygv(^hixLZ+(rHy;I>yR>!-7v?q0sE-zw#-tSn#F+MvY%u!BcwZ`sa@f|17&|DJq6eY#V&jo2WYA8Bc yNn`g_+P;@VwnHi=xOz{cWp26vK9#M`b3;vVK!U|QyX6*-D{R(`vyAQhhhcn giNu){D<}e?gE&B3&fcI0>jlQ)*hVD*ghv^I@Rbr(?U!tc?vbCO^4jy`Y%x3G8JFh+lXQl!D}p~n?ZOGv9W)P#ed4l13&kGiJU%QP;xT%N _Bh{>l?dOM4@>rHQI>WN&NS9dawUBa6YmjQQGfK2p%m7gWl#d)1R!~@&4d)oW9O1r1M&aB$~Ia9VL&w{$7`Kk-?qj@BKxW1Go{8cZmoA 9G}qY~Fz{76syxVEQ>{ecf98OlpCl$T^EFDX_Y?djZ=?yK%j7yI=0;rdd#n4{1InB8fj&!-aaYVo6f1 ^@W@qT;+B@YloOBkY#TUjA$bjmIJ`1byPuQCm)FJ_ovfPdhI((bzzMvEHxZ_ci>!j^88r?ZB@MziyfJ _TWeIf_8E*#esTzC!U${`4JkwAHjPsWI*3L-m~b1j@7iMuy!^u&u3wVeePrZMTuaL4C{N)>un_2JAd4 {tHyopjs66|w9%gSim$o~@ERoRN@d}p4n?xPAj;AAeN8;?X_WUjnnLi4=$!c@Zd}h9+V#)E1|Nmpqcb &fXl+7vZwc=^gnUP3)_5VObLO39-ZnWDlNcYj0!AC1U-j0p64=aAIBHSUIPQr&4D0sQ!7zed~PPwFkDcckxxvsuJ~jpsoZI(K%( gHnwLcmc*L@VEPOTK$Z5Cx73Ea$P2xPsNIyKGtZ?t>Sx0uasFK)wd4$C=KP!GtiI9oQj6VGAP|4I-5t tsFS|$#kafg?HK6d*4`66rkV>i@%+yBcF@_6Yh*rdx1&Pa(^#<{=qST`I@_k;^YX5t>8=pX!zjSBE0w k8LEf%T6}Fh#fICvf*&4>UFLsWH9-oiNbY(QVLQ(iXJ-?j@16V{gv`yz81GXr?p28_-p%>3 45&{nSpvy{7!o%Zk?9hN-$6G_`$*3uNlaTHiPdeFf?7*hfPm0eufV16MYiTm47dVX-$;A_a)hbkBL1p J!h$(13qXpg~vD{`u<)D@7H&bZ)&Bp2g&ZBee+ZOzN(HEfWLjwXb+Xu0N9j=Y?nGy~e2YbVUt@eO1C_TUMacXkDVI7Y#!&u_S oy@?pHETt-HFP66lL#-mAz3byD>r8Q}|CIvM(ng6C_jAr%wGj1(xj{yx&J(r-LhxWXsEt?wsss9n$) d&Y>*CXNV<~P>IHW_`W?<=R%F&ON4Cm{;&_E7|tS$^CJ@VpEVt${=i!@pG6s?dtIEk9Msu&LU_>aECxUX##U%aC`qM#plEj{Ww@bo^r^x- *`RuOnT1Qcmk@3Ft`uEk-&Xw+lKB*kg43gZO+Vw4W~75Xeq4@9*~=naXBtgDz&lW ^9Jd5VDgM`kGzz!NT|GUc+rhmPd#4DrjJ|9UGlS+u;c1<%_xn0mF+rE3h4miS?cI{c*c~K2xIpo8nicFjU?)2r0v(^XxnNReK1qm0}l7m%foGogS$BqTtj<4Zo>gbr8C}=RQ(J$KHl;(>U)O Fwb2<|kU2^hzux5ji<8Gob-08BoflLGS^E#_JEQlYPa@n`#NmDmo_YF56Q}=BT>9(d>KboPeI1DJQOC >G`3qW|?=sZc*P*SmG0<_-c)cgvh4Xx$z^s1j96Bd<`O$r{H1hVghdM}aK8v~_5Pq@y%jzhMd-u>9^8 Fp$_xHi?Cx5M3&K{AXiTCDDbWSS8=5#(P$;CGSdoy6eXYKA=6N{rLhN6BgN=LBA$43(Gf35G;EzTc$M jJ=Vu?xQ=nen~*!=;?&@#j=c9%nd@*rhA~=F*`gRz!O6_v fnok{WiFigQIOBYgf7A17N%=eV!s>mo~sa^Mr!Kxg4^4$n0OD^VZXH*5HDQ^ARiEO7jB_^KnJN&hsmmIJa|vd|p#VNLdUzKCgy7c}fjpD^Xu5DRzb_KhrcxJ0~{Nr=n-TbD6IZ0;f XqCC6x@8z+4MqLo{7V96Nc^u_h`_rQDRiHgTsO?uk-|yG@=X5pzWwo|p`9zK5BRsr_u?`{zX;qH(;1zpu9hCOo&qo+rn{rch6&u*c6 >S^GZHVcPGx Z8rqF^j&2K0{eeT3L#wGq&`kK;_tKzdC01AJY2T;hT6S@fY?iQTrM{Po>N%{OMV2{2a${omC&_zvA;C !;3UHO$Io(PYGx8I@=4de?u~zb*V-W({;ZB`lXoENRY2A4y%;;FE+F9$eq&mj(u|G$XxJMMhqmze6vF@e4xx?Tj(XW(YgfR|GTyeM&Wm2?Sc$szODsa^=sTsWLYkA*zj5uM4m-a0<*@+TV*Y)BmX^{HEGuA8+ 672gsim=7L>fQRR7whm6IJ}GB}o>$_&PWtFO1Mfv^FPKt8=kXgg+4;ERaczvu$L9rRg>D4z31* -0=OPRBH3xJK4`|ERGtk*VRvz&rhq7PI`WtiRT}ykzMrs<5=6CsD9*cvhsp}#LR)CF0oH;B6{<418A )X@$vkvkxJOAWV=|Kl%$Op>2S^@fMcxBwp7-hnW7S&-SIIK=_Jj6$=Ce$MDtYXTw=ZL`|04Md8(xo=c x{txU*P^ck(>d(hG8I{JLu}@jTV>^Vjoue`Yt8^}#%T4*O}Ppgdg3l;S$}p_l5ArwFpt%hHy)Bv#yu_ X^uvU4|Ho;v8Mx@h;inUIT^AxxA@WfAA$%j;HUpo16|Auy_W6`a3Hd9uGlJ%ed1n3tY!&&y{x8 Vly*B^M|4-5?KJIui_TK+TwyH{Bi$(pkk~o*?t0=P-Wz&8@>ru9GPfm*GX#7h-+6@+VxCgisey`J>pR `Xn%>zc7EubaQ(E~be0G;?Apn$natB)d!wbYcK%D+>aqhYiDdgjVKS+m}+deM4t+C$nYWv!QSJto`MA 7tWclUCl}Ky#lZF&6l8e%377Cz|A9nUv!}TM}?+`2H8|%S>mM()>@FAIGCq}*jR Z>WjrmSFBs1AL7JCi=BtyLcP0n9rHY_RtxdmD*hRArmXS#-Kl+V{92@Era+&@OMf|@s+{f%g6e!Fl`3 yQ}Yq%*4w7+l~c`siq8k%jE@^797mi&|ETYZdwamv|!rulhKO-^6H^?R?(7(IjlYa ~OY0P@5No{i58J}xGFf-??Tgd12g9o%n;0FOqMSIZ&U4y-Dd=@h2{UKWwq_t_1bzO^COUCn2o@4jVx{ vT^aUk|Mz#0!u!}TO>faKc0ebTW2&ro{DQ|hDft@#;Q+J{CHqi;|cnHa+a2N) +(Au(%dn>aW1_-Fkigyn7`^{{QWhJYwh&@8twfxtM26Q3mPA{(fb1JeZi_b`1=KoC;kt6?;amjb*_)E J(J5^l0fbus6*hO$sl@w1QL764yX;p))J!C_Iyi_W1S>=&WWHUDkeZL39&5$*tFra;nLb<)K*JSMr#S $_JC+Bps2l(K-Ed&4H3wIVSdlE*4~-PWP*Cm`TckP$R~UDUe|ZM>s{~ruJ>Z+`x(aj8N_?MpIJXmzMp BlpSgH}d_SvxxsC5<8SiH;{+xV2ryge=-p?`K&sjWAzAvgjp1}7-#`~hh#MQ?6CH2$zzP3cYpI@?ghJ 62-`sML_{~6=`XBN{grE%?N>vzNvKA$z<^V!8N$setiFnkXDWVxNswz{?4w|MWd*eYmqVE;&!*+H3qS e0QLHoT`Tj_v$^vaGVTC9R-ct7Tm!{dpE1S8F88W4)Lo&ZG&nW$`2^+sm5oXp4DThB(_X7QoNhgm0hb}Vkjj5Vq#&g%4b(C*s0`H0 QM~^C7IF$1)!FSeUdB(CllGY;WrQRiGJ#yNLpYL-0bh`Y sFj@zVrckqm}s9e)67Rl!p%De+wx;*FB35BOcz|+@^bMD9EoO3P48PPoEoMY^t9QXH!!{^)`B7DxR!a 0{6anAi{oO5n$`{SQ;G0Mtw?k1dbXRO)do^#Rlcs`GJ&XLDUO(?y^cH+Z H$)g67|z)|92hM>KetrY}Hhb2iyCW#njn5@OwY@yY6j~IqX}|jwe-kr_^|M$I_#H;1HX!HoNvof1)^P k8j%`bEdh|HR1nrNc!Zs1Ciw(H_9~$FU!Qrm-N?&^1^5rQlmGTZ$A`S&S+OOh08^s|L0tzd^_Dc(}my g!EiS^l;0HX)ak$U7Hz~0JDbbV?#{TOc~UOedySv_Y%1+{@7FhF4_~`!Ki(H>iQY+>`o_uh>$>-wLj} _&OP%t7Ma(5UX8u+B6K)*!4fytAL_a-7-wDztIm`4>bY~d8K73yGS7nb%ePFjy{x=bA-0^p*FWg9-+c }pWjLjE~@pE;PC!##^)?bw$7VS?TifET@UZP~d4Ys{X_k7%%DepLFYb5VX)ZNyGNS~?|XyXK9AOpYIZ qIP2ss?aV`iR&*shzH-%38puT(dbmeZ1!y?O(gzxM%p|h~I21eUzHpS%jgv?}BO0 EuYEMgU1XTH&=m@f$}j1n|8@;?gc*Ay6C^@aQx6>X{8>&!;&?43Uj9p{1%)+U8q}HBkFr_j&vpnZ)uT `aXV`)qU03hCFX^3X<37}$g?@z&q7V=bPf@JX(ySfWwx>oZMs-b!8~5Vl(q@f)9@~b_FA;#CY)*i#Ct Lu?Kh0Mab7liQzdb2sb;I?9mc?do|2^nO1Ir9bXXF@mQ4Y(Ub<)k_+L+$LXi(+cpFopk4A=Yn<Hxhbvbj3J3VUn7R*oy59v{SMGBT8sA*k@ou$Cl!& sNO8yp?i5IbdhE8~!v{=PzPC>#&bH?BLH)j^nQZz2W_XoCDUkBU$B^8uJZny`t>$1M-g6npDBq!c(Qq QnveN7|#kzPQ`JYLvLWc8OPz6HAmV=O?jrHGAB#=(-nE5{Axb{zx5JmHT!aj^g6N1wd4T$BAu@}rI)x t=c!w^rFP^l)NJmWQ_8ks{Qdv&=lW^mJTuSr{$X`io)`|FY0Ue&GhUwSFO8h*@uSZ5m&QHUt%5qhv^} VUa#aV7_Fu<;>MtiNTS@nof0pNdTJ*X9r-*SpI~;lLGuK2`>3TTZyD`BV89H_amEdoh{73{*yiPhLfz$=v_ES)6xw0w`Wp6KW1_M-Y;-Dn=1fh@U179w uhE9&*8q#dXzN43lDby%Ew7wUoY#53w#1dnd-bNu!dcC^9w2mm71nPfOl1Ws(ST?wmLGCAbv-8Ed+a`;>chD{!p5U!Aev%GK|gLYy;VZw647ZB? Kj!&hN3+nj+teGc*pzwx*G9d(Y&`jin-x7H$UYh-=1E@39?W6v{o%1Hea5%nqWjZ>)Rf0hi7g2=$KC8}8W$nZ6(AXNG2XMy?&_v)(>5 w*~mj@e(%2v7df+zU=TZtKFykaAkhA}S$UghK5EXTR&(X!<^S%`BoSIN9`ygP xT%&%+;u_xMi@I5T%3e`gr>2d-`vdp^VPU%BriMcY`G_id+zvh{Wt_bjZ_`jOh7nAS^dZVFv<-3D#N(8y!TXhTf&R3JoOyxsNB8l5i+(en^Ve>& -Rl{u$`s4T*&LP_v>!d#6CH@y<%v_tRz>hg F?$1nYs{A2kEsQB}k7sB<#xy6-u?1rbx`9ti1KXIhGcI6Q758r+@)Ye#AIJ83AK}|fdAQY;KdH)+_uS&bVfR%pIJ?$<{8(asPVY^S; Qh>H!K|fnlu90!==g8Ri!2P^LiTm_v=N*HT2P|S2zh&TC;Ixe2LAy)ewn;eC@XR(?z8Sd6I$Wck^Pz6 )@*X)CKI3A=#E697F|7Agi|Cd*m*i`Lay(^fJepzaI3)({{>nL}3-aPWWK92PxQ@0jmar|$CTuG?|E& 0?L*U5{i^W-6q^;qHYbqbtl%HCsrQDA_mD+d}&N=YLT^5^v$9Vz7{`*iC<6FER#L$i7NXJ}n@c)qtR!Ta*H`tFn9>)D?4olFpq_aula^43KSD~Bv%O=Y>l4e2u>3|rT oR0_l41Kk)26POcZ?xv^DEn#gYovyDC;6jmVw@wu#@d#KS+FElK^-t{-f96Il !-WueXf#p9%u1I3wX$SsE 5Bf(@HRo#zFp~SeRDKpJ`r}v)bVXa|Fq#CJVCQ^BIz3QoJ=?Tog?Xm>~EW$|2JrR?Oyi9y|~!uOU6`* @<%rNh_-FH(0Rz%Cy@7~?!=-wOdkce>^IK=`NryAFa^8<+GHHWA#1#waS+d06Ma`;ER2&;Vu>8fBsrG AXY}A(*2%s%t+~E8tT~W*vwg?GPce6m5obuo@|$8UJwh7+Gf&wdV?eX5Je#C}k#)^_#1EA(=E8A7qt< VOWtl_4bB#l-ALd0Hm5PppHuah=N#z|xL5hRPt)JF3-vep{8cb@j_AP^Y@J^A+k<`|Lcip5ibnN25>r6R> hyI41FIIm%Bgdi^1 9Jm%gzm1p$^+RK)g#d)ubYdW-4vklS*_U&~Kw9}Wm;@e_~a^E(CpB!)8@=jBe{!EXh^-`B6;?U3OF9 hwcuNYd0vzPK{*8~yFH)1U_b|?LOSw^5t<*V}UX;!t0t&rM@KFs=4_6lz;bN8)@AE8@jJ?drn?0S99P dAz$d4CklxZjvm&WJb$y}Ls%T04V 4q2z9pSn=Srqd$gOUG->Z^iiLj19@S3Nn5Vb>-}@Tr=`QXhwYU6zOB1X2rTkj^!wY&yG*p*iM8?3wj6kEkCMm5AGK?&5Il_tAvU15E)RlMB5WZgd{wK>FfI(iIfnTOD;tvEnEhe4O;JABhQTw@91Za17hgab-m;xiTuh +$JOD3+Fq*phb*d%Gi!0{mgXATuah^8e{fmOIuiZ9}?*Y5NTgbI?+M<)~NnQ+T^}w{t)x`qy(AAhp`d v_z3$7b8_Z4r71W#9g*{DykB$?hNJjC*-tnoGvi=#Z*M?b#2L^P#)l5dm|UcBslxBd6qK2nlSl2JNs3 -|eWYx|>& b3R2F#m3IuKaDv$^x|W4eX_zco)XM^ilZ7K31WRO%~<<0eqG5Ib!n(qwNRi$7vU|)sZ?LKhGaqOPQa# WEt1(a(z|l8d2YaGlqEqOTVqj`{&aAT0MQkO8=(S=S>h*bE=iSIpzKkiJewjm5{mCMVR#+~Y%{$N)mPxavU6>{J&TR?w70aDH8^15(odW)UBS92hO1sbm+q_zvn8 WdIiW75qm;VF7b|%lh(wIvJXb*E#yB2HpjNj&J!GDhLdzu=TUz0wpu7jG?L%aI4`aar_S+eis8M(reH Jk19CwAoWY;8U7BytZ_@v+Gvz9sg3iQn}HKOl$qmH~ww4|!GvO99gH?9!XbM1x> WrZa}ej|)aQLl4iM|-lC+}i(PsHoEp-cX48ZmqeUcj;X3<}377E@QoaL4RAkFSm)pv@_v5n&*IPeW1I v3yHSxQ2bW1_ZBI~XZRjT6Pu@;4;8iK3NLNKq@Bdfa373+kvANwDzwY|d1J;P+tX6K+l}_VJg9Vj9!t vXg<8|0G{de%D@*Yzf3FPR7e>lVm~FQ-9kQEc)}$EvhYa86QKmW=LYaxP_oH3_Flw%?k^R!=X1&GUS{ ^Y@+fbMaP51-r^pakj&EPeQsBg&OJt1Hh_s>n0$K`!thO|rGc ahjEu%DmDILl95?;ms-XY+{({_wtcx})Os`AKgZv%m|0_Ih%KU(v_s#_)lP*R>h^mutiiGeHxZX`5gx *MkAZ^|6S}0jJ_`Odrf>ekP0eEZui& IamFo@aX~lOPFx+N-wxx=bsBz5rXP=OqV6vT%wGWhH7*iC@+6Z!rvK=9y>)iPk3UE~P@cvZ5PI+@Mm& S~Pubq#vtc+*0i2pJAKORDH_7%<*f$AtE0XgmQ+`Q0=JS2jWuJkwqx&4b_i07P>GK6V3%G>5`w0;D@D Bfj^sViZKKgM55^ifQlX*S@;2{~)tp76lzc*Dn^M(I7ea5a7^!f=Zmgc);D5Rkl^)-B{aF>aeYBsH !AGLa-W`^%PUHTS^OX5aCS(3CHLqsr_hv1y3mLlua_4jz*I4-l+I{oTes4B#zE}?yo|Q2Rf?}o~oMk@ G(t}r+&qaE0hWR`l^ERIg^x$;!`Ez=3s`*@o`J2yuWxuPy9Gd`aQ}0!1o`wClXP96ZXUk85GSl7gj(jmPp=W6go5w!8&K487k@WuGwZ!+dZIDSFhfA~xtxsLOmb80f?^fmHxkSWbM eKV-a^ZQ|APL;--{uAHQj#m1a&i&&?esCCMSTBn!Kt2$pDXPsiL(I|gM>4R$b`mm3P-@Ve}ogzeVnqhy)^3R_L$5v2qy>R)TelWUxG~Z*!6 OwuhyXbz!uIzBZZx!vd%b1c46(Stl`!sk*o)_+CIx6#%DZ@Kt92(Lut9F^!jQ=n5yFm7)OhmhnDUUZv -ZuXydJyvHt`*AulQAtDrbwEvmy{=rwZ)&weTs6VwcpHD`F7d=G&^{wI8pyS>6d7&tB|oLW$v;QZ-6I fY+=Si%LA+zCyC9hL%hyMy*v|wS)8vI=TXZm>ijCensGk#P1t7SQe?dQ&;%uK?gV_7sF*OK*oyuko#Tt) 7Hm^wX?;EU9>ZG4O{E?TVxJ`6FI!J}d(Vc(oyV6kkLNfK!%t= 9A?45fq9I4n)@k`?#S+slel#DX`OI^jIW@?$jGXHy7W(a-3;cLjOWOC^L=~GQnoo+^-tfn__Z!DJ?Oo vBIwbS5YQDY-l`D|(WcOh25{DQIoOjpEyLjXxvE-~Z(cQhZBlm-sLC>xbsUhsC0Qy}O0jmN7R*z%dsM { 7skzB_bVsZKbOK|SWSfd$GZs3v9K;d9DHYTQ|0X#OEZ1BC()NXS>ngNr(DH6R~xl#i9;ReZ{L7OrL5A-oY sI(jizkDJtvM9L&iz@UhalHt}8)H;0k*-+bx`Gu_koEwkE(-vCPm)A{RQkVAQc01OC?GX02+ l7}nVApaE*sQh#rJ6Y5-qzgC{~pxqe7rf=6E8}ZZkupo3+fD7lYCCbB46Efs62UpJAKm~UG^ wV+I+mNdxuEcI$9Shgiem5nUN{%K>)vRB&|ops9Ca^sgPkNDk)@sM_mN4wM=*Z4L7vEu80XpMI_J4EU r_Lu|xRcre2QY~)ql$19$oLg4kf?3~c=NaCVAX2&C&S1YKPKIosuKVBk8uR!G_i=n*i|?*oqJA*Dqn& Fr@M=eUr^Ru=t~n2sYtB~2PZ3&r>o!YE`!6Pi_Yv&`-^WS&qz= iZOGyS0qgMk7aXIq;n^|2_0$G-A-^YmNh!c=}5@d^-MHdcc38{vc@lQ^eU_>VBmiuxXVs8AW|EZR6t6 7IT>Z7xIn0?MC~x7mMP37X6TY@0?awqIi4`V7=aw4w&b(^6qcytl3`8+T2b!P6v-TB~cVrgI;`-aV2b uhIC5ZL{CZSUhqe}uS?MV$?;9?=0a01 ^eZCaA^d%NtDJr0yF5VCw{TtxX4mbb|AEbB=TCC&CE=cDnq3Qt;3iA_s(deTHmsZ+?@cs9{f;@Ye11* r$r;)M5!J>%!X;r`eJS`sS;>_huQZM08ueS2{6ZQuCDH%7;w3iF`7(w8k>`U5iNSsU=9r#J^R%KXOho3x)alkg>Ny4))H)glxA6Gqt41_^IPf1&D`(JvVKNX{R{&iGknlL2 (n=M0g16ErFWAi(-8}E5}dvoqed6yY`Y}L;ewyO5ieP2M^Ywy=Lne=+{-V3j#%ySbJdupsbuyOxD`+d -_(=t~`ytLsU{oq;(CXRfsED@_%%{%P9{_dG9spzU?*Y3rJ$;L&)@Rs6<0J@`+Uo7tE0^T_c13uH}63-SHZ5 n4D2v@pjVS?+h|l^ivmy|Brn6=06}slq#ec{K{#U@zdZT}b(|q)7|Qu>GV1iZ?ES9P_yAB2i5ITOKD4 Hlq#lGcy}pOTL7;{X6JMzjmefVS7sJwd&U!^%x%kiwH<4C(5*SwF9okfdx+4p%7<-VTE%+%GpdaW@G#`T8o{RxLPmq!oy NNsm#|5l{~X4mLB9bp^yFK#Zx(Tq2CNY3efdYBC(XOt(@SIAt3}vZkQaU@B3Ixb;CRZKz?l5I_PigKx BlZ#O5Orp&!`H8x@X`o4u5;%)csm#hPIgZ);wp+@tZjI1#8Z{N3g$}4SrbKU1HwL4A{^v@&)j%cJPXf A;$Mj29Mc1yyEbHHQx<+H?3N8&2AoUJgfmO|G?Oe15c@U_-{4IE+7wE(>l$H8Z)O!K@9CD^#rY@dao&<`4%nH*$ n!y2K3?Iv%~xieQDpoSmL=_Qt;f9EHh=Z4`>o8s|C+pvtvFGzX_ocYNfS@xi`W6RS0nUD+Ro %5`uC7pIrL^|@q@lYF(@O|p4p1{6lj3U1O!*P|%nLbwh{p@jNv(4u{c&1+*W2X*U61|>=+lL$(`o?6L 6Ek@W&zt=gyEp$0oaMtt{G@nMZ%`mzqqAx=39D`<@=ji(n9dlp$qRNHJ`*!Z@uNlA1JjV+G>mQ|zw)q&VuN-X;^QM_II YAV%?6pRllGmXRLfK_r>e<+TsqsyVH@+>q%&{ZqSL$Zh 9(wd_sIAG&FK|-bjd4si##z5pcriv9Gg0N87XF&4%FmMTnQxBegAqBN#kjBTR)gRL@uiqu;I&aK!l)P1H#^v AxWjgd_(zEHlyXg#J0FWy7-rKyqdA+ZH}GuzwIU3D=HXpp1i+!kp4HuT<8TpOcM=eepJ# ?#yKJkY=C_)^|s)N)=HmK@tAG@rC#Sn`eA!R-73(vxiW8H3-GI^u9$R~G*I#b^sD%Z9&FJ>_jIh?KPr TGMCUq%GKJmuR7mlc?1OOay-aTiJZHdl!dQK8%y^&5|6$i{5$lxmqUo;~rVmlJTw$8PbM|~FY+o0zEg @Z?Enh6VzX8T#lJCW+_tAMWml^c>7c?B_62{U0dk^&1DYHTABA *EGGSj{O;8?dFK;+z|faB8UI~E8@xr`0ZN-G{_bs4XX|MGJS>--G~x#p^1Ruu^UkWU+Mx&Me1LOrJLI bSHQF-n8X8jfbG#3%cF@+bBbVz)o|FFrIPX0uTazM!)alUP7(7k`&g JaroX)&6qW|yX@hX2!k;Yv1qkZ$%zY}VE_#Jh}!o6C9@$IqL2Wzn2kz+i6LXC0j*~Y_v8fT1Mma$_bF ZQnv=Et$SqsP^XaWOtW`q;J5@CW-dW05i5Wm-6f@|e6}pz~)YjL!LSQsoOBvlcI%7`+yiif3yWZ!Laj l;@rGgP&q8wuaZDgliEyr%;A*uaoWmw+pPvbgaj<#+qDqfi?NDF;>#(+E1}2dc>NT?b8%AE6u_F>x!i>3s^E*bEM uh$H#nLTi#cGRp5!cl@4PPc%K}3_jfh(#3zU%&6;uGIN*5<pe H<_IKJwj<}r>BCo&F%8WX!{s~l>ybx|h(`VeGWq2-p6U}A Iot>EbbiOL?qmaK9i%N&`@4Svx&nqQoXa^y!BVt=p<nvW==4S}-<2?`W9-`qh%ZRo3b@aXOQoXA{vmKZRoRV{HjO*h4d8jeID>O$0Lp!vR= `V)uF-FaQoI6Hy{&vp)c*Ojp%SFyVJ;wa4nExEBcLMzwXVA`2)c2-8*e>sT{Knl+9AjaLLjGPRW1jXf -%KIrtoCJw@09X&bW9@tS<;*mZqnZ8#bUrPAxRq*Qr{J6(uPOCGaqUWdTU3Sps8Gud5;*_{Xdob% ZhgVO|Ze6BjAK;!Vo2+6)$UF6j_Mb7^Ut=?D&Q#lh|=dzT4!zrmUMnn_ZD%@+$9sEU%K~USJiQ8I PbK2Cs5SD94ni#zdG^- KQVkK81XO<~8F9MUVT10V&s27AU{cLnoJ5B&|5P#M%`CtqV=lO1}2Oe~(U-zW+a@6VirP^WGbhGIJ1f ^j`54??#9}(fM)1w&JI8E?Rc)CAEgMk7`a#~@VmzFC#Z>#CwnZAcivNXYLW7VYe S0i2ilq<{ghlUr^tICsjnzY_PSn6sVAMbEC1@pgqG}0FrW7($yo66c}UuO~LMty_q9BH2`%cY4~+alT^zn2c29Z$Dp=3I`Y=Oyjgbc>AT >mz;;AAaeV_OctCfWHU0)G=QSb);#*0(|dyRt!0`^aCAPkg;o46a&_aJz1id>)7&*IIjn|;?(R194PC lsbSvp#mwD7U$8#W@Gco;-a@-?q R#&5`l^2LJvH+$Z>^}gtvG)f<0oA-JAaudAztyJ&X#GL`er6K|2_@*~QrGLvW5Xx3Dgy8`vtcZ$@-C$*; B8b>>))CY|IAN?p)gmw0w0v$T(jP@Hc>0Cta$_bXPxfh8gQnw4bx5S9oG@ZV^>CD?I+_r0|_tE{}sq0 MJZu(A%Ynl#qe5m;SlQ`2)fqt=$Rj|>sExYaJr?>xWwP}S?aJJrw6{%H@n$lw5yAd+gBG4x=yzjJ^WJ1H&fCa*O `V3%4)Zld`-{|rf4cE(h&HN{w))W4Ld_C6-A7T*HD*(Ys0d2idiNaYOQbgdq|nD?pZ&xbMd H*E{4Q{M_&x|6XI&a1h5&WGn7P<~31rpw%chMsdd+SrNuo30hXn)3$jJ|Cvt?B|JhWSqwlpN2>sg#As Pm81MI9&1kXQ18e79!tj=Xu{e98HvvYWfyzpShPuA&!wX4fs>)OW9l9)ZTWn)*Lkna^=MAZFNu!rW%f 1yq@S@9}OwLqw(%*XYE$^wd7guHew29q=`a~BWq2bjOp%7XgYMmYW;BM{mw1+n!9(GY8iF9!- (siX~cC0UF@*f>U6t77yA@{+Vpv`gmkgV23grCBlV{V!rutm-I$C2SBVCkKmJD0@Ww3V|JQ-BFqgw98 f%qyM$*S(YrH7DOP&vzBj>}Vm<#VxR~l{8=0J-BuQXXN>7NXGY+)P$y(9p-J44e;zz@`w%h<@yidxLY iNDT8wZ(PxWz#O1-MPrkb0W2l@;zv9K4>uIyaHLSrnq$2TF;nqor?;JmjeboA5t-HmZ?VnraTB4*uS6 gXJy{kMSfeNyz5M3yxwohIb@H_;nb7rj7u!b^O6>RAMgHv|9`^zcg{}OGMH>@t;N`Dc@K!Wa8B5Jb=0 +g5#!nuA6Gx0{NbWICv|uxMs6%RkCBL;3xXeQPnN0nlC2z&~QnDR?Gst=ujO2xrC>CEe#-Zl 5i@2kpZavW0LW{qAb;tZJDqRuN8K!|x|q`N&lA&SvYAvG1VA`eA5pGsg{mP(QR<-COo6+ EsgrSYq4jZnfX4mjM52i9@f@#(jbj-{SS!RcnVK(4!6sCTggMcvPC}Ea1R_&&s+|~iWVO~f2`atWx?mr;Ia7`-Hl9N2^EE8}{+uOUpc9w+rt)d^>K2AaSZ&2zWBIab|Ux;xIj_+>~)~yDy?@@4 <`>n{k>83Ov{TvddoQ^fg@|8~!o23rQDo(_u-*~ny}wn-G7a!OTEHV6GS2Ps=SxElD_vpPJm20T%(}=9sRPctkt56F!slZLQ~Hksar49vJNykB>!{h;DF+r?^1Ub)C(|IiEoWV@dB;Ku`Y3hS=I r&meWd{UuqTgOHa6p`>gBRS>|+(^ieGO{+nUnEX7A>`rbhMlwbIKY(T~rmO8j~Z;s`;|2$yw+~ddhil y70`r8=y4bp$$wK+?}8|_{nFsj oue;89805HmQBl&7AAs*Mm>WT!y0i3)~lJqML1)bp%wJ#eG tSI*C#HBr9s4WWNUZVV~qDf`3b}wU*1=?RGC{Ykg^-YgM1Mr9JYzVocp<-%$I7@^R#z$r(`g<9yB>Q1 Y|6Z+5*gcHblogkz$`@^Oi^XKr}L@Dq=)f8belSlLn?ioT=wSY+I?Ljx)YYMKFYTI2F-q8Yl5OdkD*>q?Hn2V=ymzLVrUBL-hwu^p-e6F0s}W|fQMbf AvwN3^(!CpBjen6U5xqNcg&;<|GV@2mNCzj#ytDO^K2NIr-4W1m}e&Wfdqv|cSX$gr!nUG?N`HdZ87G $*_i7q6JAf5|>e54uzJV1-@x4~n6Alnd?{kn(`^(IEe;8}{On`Wo sI%I%B%cF`>PG}_Zus5j`R*#byDI#ygzr9&cb^ZxE9ATRcsD=%? n=J97VoYNzjO25BD`A^emA|}h*L67JXQ%WYXrQ22c)NF{Y*VXgAbWy&ZfV`m26O4<6!wpB{WEV6?L~-h0q&^OgkfA4l3r^d1;#-^R VG+MMt3{+?}CmIe2)tsBdN&+z|O%Ysky|JTcc{=nF{GPfA^rIhs+#)*TF?YbR8Z*VYW(T4WueZQVCeD&c6InEVV9>BVKAq#Xj|M^#^E2`C+8{%yH()ZyD~h=T!U)d4?MCsgBWK!#dgU-=5?)Vo_K8C`>=>isSULVf4?d6nV}4t8fp04>@U3b5Z= @B;c@w>kUZq1S*Om^sv}EaXeI0nK7f`RosMiuvuYAqdB~NzUnx#YIm07fgGObu#HykPw8}#4}(hhs9o CI;zDL@YciV*SZ>BvjrKU{DyX3F@7J$ f6rPK%arXlGv?)Y^q>e@55B-}>*;4@xOWP*N66z2CiK?)MS(ajut(FZ%3vI@8-2K7s%oVhgB@dhu%`OBw8o2Rg*f5_ib xt%XL72g7?}@dft8;tTAF#TVEUi!ZPz7XLT*#Ntn|Cl+65Py8BuSTx^L@{ZyOd8g8B#LnQI3gxFw;0KmKP NTowSKdRmLq>xlUebXKuu2F@^_@jgCi@VfbaRkN=mc=4+k {yYA20qI{h*eYKfNW@Frxe@naJEbnf&gRkb9(PT+)wftJ~!O=W>gkEohtuL(C;~YhDJZ+Lr^d@%Xn)f z*@4|cXxntugjGiOyDjD00I?S)2{k!S6O8=5u7$ZDO#t84Rlpdi!5!x-}nMb~8FJQ|5w6SMAZt8|tOc e(`pdG}wyU@-nBkibo@8mHU=N)Yv^i1X1n=!Zs?L_-=Mbne$Oy=mfBIF6#rChB`=He6Jxfd2^pidBUj~0V?5iAD};=r+wpmo54HJ5nIF8qQ|YhVPh f0ku>N@{yX@_e+zPvtkIi%A<}d7$w$I@4>{yFbTPyj<{CL`AWz-SA1(Gjy3@!`NuC(dUe(>RU^@a5xm -d9(=#xDU@TP6w9?U5R<>;GTjo%-=0iKug6xM!{CS$r4=7R@x0tcSA*q*-;YkxFBoT$eBJ_4DQ^9+#h ow}ydHvQ#X@ECJ3CG-j_R4?X4B ~T?70r$FpyO2r?f4?}3)ai{K*6@f_yBaRn?g{-PZFNsOIiGwmFHi85@T_jErURJ=CnkGbEt*Oq~{GbV PAkt-tlJJ*WeI8V=TXk?zY;Y7?+&2QUBp{no5`3e6q^l6UgPjB#Urm6C_zYq_NICnN>pER*AoC}URI$ ;@_*KFk0<~r*26({pIY{=H;Nqks&5qZ0Gr +sy~bGt+35SqJMOMeY=kL|tt4r?{v9Gdw`sEv82s>RUUm%+P{J{^|6!x?omd5XGzqY`lx{r0mO_rY#tcnbR~I<1uqzp2K;$YQ fajb8|$nf2w`UP`1o#5e!@@f*!nQT-=4!`{#vWEp4@@34iZ#&HMYk%Kkf)sC+M|Z_DI9hRo`qjBd>t9 JoyQEiRQ?mE)j4oekp%{34-i#xot2_gZ>NXgju4bJl&IxeHNWbBd}N4W6N7>K`yp&)%7>{Zl7waR+-! aE=wy{$Nk0sILHx41mV&(L{ZcmVV&H1eF_YtG hzODE8_!MijlO1_A;*k@>mwTn4UkEV)x+IJMEHs@Lz^~1-HGro)_{r;~?kUss7S7(AgV{h_qs>Y(1a6 Vc4`-}H6XW-ua!Mcfz^)Bi|e~RmJqb>S}-;~;-+MA|%X*10BE;ZWgO#?6X?A%uROv}8kfa~C;jxD#J( o34POVZfZI@)~TT`ksRK7D-FS-f_@+~WdG(QJ-^?^;Scr$kBrI!g)p+gbggHkK`COtjYmtGcwIxwOT) J3)Alg2%Qbiz?ZU)L#g%cTo9YHl>ia%wk-ujHwadTg>mM*E>!3oA>5Fm-dPluhN;Q_=MEO{ppO-?_?! Oy$Sf>c<<1a(YaHz+LybhDP>44{4TAIU}=cK{C^VLVJFe$UVxt!#_+eMWu8hoH>Ea->WBQ $d&TeGz`QVBGy^chK$J;yI;q$#cyUW6;)Kr|=Vwfd%uGT})||t|?IuGM5l&k@vA*URc)@%dTt->Rg!* dFhu*|3=zMA8(VshR}aBjin4g{8%}EYAfk2dHi{xY1`vP)#>FbKKR2}*Ar{k9vWCatCioG+nzbliBqL U4qK-tO7h}FD*e&ypa(ASWX#E!sby94q2Dn$Va7vRu57UgALjK7d{-~%2aIf*-5E#}kdHI#7HCR7+Ho #a6$`F?PR1al4Vxb1{4w{|>R-mTf8sf1!i_Ndk^wW%{{Uul0WbQ{ny@-J23ESvXCDEphCCZ!We2RLi& ZA9`ca>-vKjY5v0%3S9@i2Dv#gjfD~->rBiu}wE&miSO9u?X@cQ_3GxTVv?RwOm6al;O&T?t%XuvCAl {#aYhlsgDN&vs9iL_xC@8@8?XEDF0HRcpccMmRSOsmP>fHl|0^7EtMN#1ud;28Qsu+GH=|&YHRFTTe?l#J$TR3V9yCLRg}VR#w=`oVMF785JhndyU*>65i>|A)Vob++Vj2ebrd9EBXO *j*q#W50h7q&SP!BnsC3~fcKM+e!M>UljOZO^eiKJ?`Qm708_^y{e16br5{GaFEdxmlVlQZD=2Bzk0sd}TQr1^X}-Vydz)eXam^O)N`FT#1^tNzZpX1RaEyhS!q$hP{?26K+PZ9{Vl1EDtN&|sX4F8X_!-_eIVQI)4(5Z~n+`PQdosxw>q J|u|3s(2ZfuD1U&XzhUR{#sT|ZYHmn2VNR)ArN9t`juk0Qo-@S@=@lo%Jr9N8(nIk9gobc+I((jFNxek%$C|D}mdi <~%r_0FS%6Q$;^O+<3%zZ(-lmXyafnE30-)JG);+_s9>VA)vv9@%76a5%7L_K{rEB_Y8>udf-y{>xxS HP?Qzi(mujS-yC!LR@GT*g*()hOM{e3WUnsyamm?%p8t+-Vi290^?a{_K$p(-Ov%Gw&!Fx5k&L7thGh i_7DczsJHgBGrTE>(;d7*5H}%Ja}%>Y!yv_$L-)(=EsSH^UsHNMe0)}J&A~8loheB{_E-S;~4!l^vU8 FoigIYQx-mj_Rs${-2ShO_8E_{Dk^r78Sf`kgk#9x`dbyp$kCz)JG1m+drfU|GydD~e~K|r+S7usIhY ;_?fP`_c}C~QI%$pb?VKQ_PXA!UnAbk7Vje{2KY|>Xc9%u?x1JAm-%3BumDzWeVIIu6xCeXkO>4XnU& -P=Zq>-w%X?1dLi@S0nRIufTqpTU;NNEENVYWj4IRNt(K-S*&f$f?xBN-2H0G$Me)9|dP+JxHzRU1|c ~$y_#I~0^gZ}#O*GJl>o`QWbK4#>(e_E}bTgmc0B?D78?3T}YNvQ7t?48 *Ac2UoG?vxSj%<%x(I}b8Cb*f#U>9-iNzlu+q?QTGDRT(0~Nj+RrNZo;a8vC}N>;ydYMDgC!dqk{w*(a?wANLjGIyNVWJDC@ jeAcUgkJR_maS}$QnysF=P^u->Gj{^@7Sts$KN0i6)EM-P>GV WOl3}2Z&^D!6T>YlYKKi-~aReroZ78PG}kHsSWVSj40_hn;_Nz&iuF^MCLHDi;0uqvltxv`%4Mql*Nv `@r7d`K&x&(UU4EYCXnFfvwhx3+3td7{Yau-Iye7o-gXuK=gx6GEzt)>$@5*2&QHxsnDgT;%V! =DXcmmZMe_&y%?u(uBWC!+Dye`)fIOEn#*I`mIUf**$SK;qHdKUYo+PRL^DHD7%(3n=zv{3y-X4*Aiu &&EV_Q@A%oA(`GTn_#G#|$BI`T3+Kd66_=WL7rrM8^Yb+kG?nypM5hayN*ZdjH&xE)lYUgS%fP=^#1) (T=0^Wt)crDJl#=%-_zTwva7(txwY~B$YX4^`JyK<8nrKioDBXQG&TW}r19V8(zj_b-lFeM!*QcnsnF 8lgc#o&MfASZ#$Mxax-V5Ic$MQeeZQi>vPOCiEgE-fFW!$-V@LzFm@@f}@HyFVGQ>9p^>3SDsz(sbQ_ banJ(?wUUT?9G56Mt4XNS>$}XV#fNtNDFIpTs9+j7XWAhqUX>sIqVKx4~C^Ao$lcU~dpO2S(8&(r- $paJ>uJWG=5n78qyCgz&;=QfBmwsDPhvYUOJb_u`KP0DzDs$H`^o&ha5-%VU0o)BM5T!}p2XQ2HW@Ul GT^M_Rq==GR?H|BlXr7K=|o5dKv(#2F;$MV3$&-+j>R=?(%&-&54MFD-+`@-!U{vcHJ0NSCxa4X{_+m v1;u)L=vQ_G#rvxMhe_}#^`Nk2~EnRgI6W}C~lFA5nt0q{ZmUHPJnz2m+O{SPc>u5+Ea7fK{vuG1u5DqU8(yAQuj{QUK>j8Wic TX)GgA~yFsJa1R)n;yiNyDUbWJd7dVh?Cd9pr@n)Tb`IR&_uEm`EI4jHt-3B2@Zjz!I MPv|Kd!~9j7P_5_}bGvD^(1EeZ;{Lf5#Q8rf8{YrrdQQ`Cz;}#%%w#WYE)z;skx{d9L*v{8tzL7p!T{W$vIFi )e_RS##E 3Ay&yet$5e$5Z=uW-pQx8viuF_Lc2c1x-?s|4xD7{tl_dvcEkP$JbD9j#_;|9uaC-swNdJb##wv%0^U WxDf-8J!g+7E{BUI6Jg+}WQuEfq$M!PMG}etiqMH-c*!jQT$Wcdr+LVjIr|eoPcyHTu=nC3ApfASa=R JOD^(2{pSHtfi{{C|2ouqYc#$m`&{;Q>*op>kDIKnfZzNN#i`hLK85zAbpVz!j#JMW~N6d2xv^F*s-Z n0W^zoe=1ZL7nVpMmoPd{Rrzl;XVm5|%s=FAm-gxz?j;)V-B39|^}uUXA}R8w1<%?Z1uuZEot;cF3H$ fZr?N>!0k%y_7K}62xZ48#LcPBJTu6RSn>E18t(U9w~p(-;6mwjGVnio)4B5gQrf*G;Eo8pT{`+goSK tuVI7o1bA+Ir>%osmWh+Hgjt4sqFF{a>?30PNsjgVpe)OH`^R4k$HCeBq>|gO=2~i^8}O>9Tu|QAk;| CYr9B0M7=P6f)L9az_+G|uIuy~yx+m4$`5b)9!k%bK(1UlQjk^+LenJ^Xjea2_PT54;P^L3W6wi+ni` gG#oIR9VEkpCxfJPn%&vXnl?Z-xJ?sCAj3ww#MrEX=eCeQm~*BgKt;{{-x`FJN`^m~=BxH&=P3vK}~O kTbgW4TZsn`H?qKFpUN3fo+aiPH&qGQNSdeZ52!UdEif_@5Ln77t=B&O}k)*=~P6H-DRBGWV)24!l{LlsWv21sq*BnR|isBVNU=eHU|TUacRtGoRC{n%xy ^oW3s!+FXAAWsm)j?bsiSosXt$!5Muxc};RF>(RE(GhBVxxm6TMpBBuyg0cnZwCXo`Ouvob?V7Vh)%P @KMTeGLH(*V256U55ggy8 |}$T!d$iiSb*WPwn}tEpt(Y)JtQmRjIAHHoVW$GAgJK>bmqu?!LU2bFTo;x@+poxgqdfGWK$9W-{9RN22h* Ed8YQpl|w-_D3;>qu}rI^ImShUbFeE%;RW`!D);kSxc6-#P6Zb0%MKdwLjNB(5U}<-!s-NM>WTw9pj> &C9tmg*ZVYEt9`n4%e(j;2%L37irD|1=u 4gI4_Aa%rSqN1u!@8#f^ED&qN#Ghj$oEwOGI?K{i|l@0{NP4AAbOPSo|GUDju8VmsQHvC6Ys+G(I(e%Xvxhc=B{al2L(?B@4HMhuDt()L352eG$_XEnxNVC)9IXFLh+?`WLnSvd9`?S96; hdJ{Q{Z%eMDDQm|#qeo)7i0CEe%0E=*x={Dt32Tpn*)=nlft=^D$-o5)tz2woyq~na)(jo41S+X)Pr3 (pZ<~{g2Zb>7OiCN%>2ijb9;Bl9DDvXC|`4SLpvb*M`>v=wD9wg%rRRJ&4~j=~&3-jO>9eS#p&m%a5KA^}KvPA1pGCzGv*b~Z<6YQfU+K%Boo huA^?{)EGH#ef)4W4Qo=8g{;A}qc6(jX#p`P9(^TAhsU`4&N`bOFxFu#e=Zu_ZYc;(@K@LbgCEG^JK= (mcJBunoh!ru0xzOmo>Ks)4|R?hJ{`ZQ?Gxr+)!T9syVZUoFG_WbK5Ht|^6?dPix2XRgXciIcS3OL&> t1ijcz=Jfn?mT5}$?X7bIhCmTp^j$;+8KnL+;M1P{qjt}dd?-h-}O^pYqM;v9BNJU2R0@8FL#PU+6cX k@9)gfyj?ff?rz2(dEYWKwhdrdMqc3giHlqCm%KWD$z{L`u6Kf#Sb;td<>&pOJs!B*k2XAvDR#4GH*I >}hRpsC>vXprbg(>gVMU8(uW*1CE@jLNYs*)=G^exlMXf$*jYzd60LMVjcz!T%(Oi5x`bVuE`?2a*X! C^xvA6?txd}W=GxoJz<^Xfntz~=<^!ufol^q}LQA&;X0lc@}tY{*2T{bPwv0saKIHvz0H$U&cauvccty@S2Uxs~3Wzgxv5ORi&FJ$^q8IP+|m_j-8#5&oZO&;vX0yv4VblH4(50m6L>#hS4v)m@-uUbMZj&50UwUXgePI*G2qGhmp3%0t9J#v>7T ;3OgO!5z=?3!_Z{$~;0adVAHQVn{r4+>yPXrfJAV$jH%+9;cuRTva+^V02Jrq2&b);;7w#sWSytbFI5 24SZ%-86y(?_qrT?6G0gR(~>>bOI(%Yi-ru<;7iaU$jn*apNurQ(O!r~0m2LrFy5`5Z%q2_zsDizp ^Ukr`T1^-yF2J>aaDkt&YG!P$_oV+ &QMSC>xA-5T{DW^z8KUZ&;1lig4CB7G`QE`Ab>3XJ+qODsi=(Wd)pzrZ-HgH4sAbnJ#Q5`wyJ_HaFh3 XeIPdcZP-h|b5Z`5^EZ6-3^uhU?eX%yqoY(SM>)YjTJQL2h7 {C8%R$DIl`!~{Ba)~#jPd`f(h2Oa8-*zWJ2004eX)o}+|74bTALYH9uh<7Fo9@{CR-8x;iTJwa)emj4mtEP~{JDh5Zt#G1?1_Q NB3N+K%-!$J)BWTR15aP$*M>t?S6Wm*y-BK{Z4v!+%5w4k0sJn%`HtOeb0OYeNxl{J+0K>cLq)Pa=pX GSk7{vs+lE3_-0S8(AG3yN@6h(qYxvO5LT!^G*6{hA;WZ>3>8E|CQ)m3r_e-p{ir|}}qEm^G3$btPcU `i?o%~hj!wHUx16G;)a)XU=%CT=8*xQZ-QAin)d;e8SBwjl{5ndN)VZ7dM9gWvK9|D-?k*N{wf=+xA MbrWIMB6+e`;;`g8xSq826-6&d-Ro9oG_Tv%qA)pnf(f;fxTJh~sv?A+M(TaWdJpx)WqjlfqNuU*1f> ulzLn}@jwBmY$Rxo}f`-w#>2JyQFw1V<3VO5K7ls!)y^kRZRFQ(YS^kNO@1=sM|`y*(DxqfKxzqXBDz b&BuDG}?p=hs+2;0*DEyc2lH5n6G^Vyno0D^z3~p%XVbD-sR0V)8|9k9P5YpukcyfE`_ikj{!IMZVl$i`R@>7bKi2Cw|AQ6{p`6=+lQccu6$9y4R~LWfN_E T)Ic_)&HIW(;e8=)^!fHB&>%JDl&CQ$g=vs={4?96Z4;x%h<9>~D0>ga$T`sFiTT{=gCcDcdPJ%RW8= 62Ev6Tuwi3IuEXMR2BygzO9xBK+=J9N6wGRFFVrSWyXPYO-wIrL7chg2pYtW#Xg d3%L);Xb&ZdOtXc?c*m~{3+>rfW44u3uyYU5avwWi8Jt8o9ol3sBXd-$#Fj@-8}U(f0%wuB%rB%$y1t F24Qfphlc>zsA*_KMoQB9*z>Tk)PeCiTm2iH=a1 bP1EbGa=@kETP_*^y6e=M{Z!9u5t)07v9E170)=d?sD&A+b?X-7t6Mw-xq2V&$oYudYKnrc;SWEaa*K 4tjwii+Q`YgjhfhX+2OFR`nAVRJGId|bH+PsN?URkI9_Gu!+UWnU<*2G#`xccu|LRohDLkw(#|S9oI#j*$d?TAl%ugn3I?rZx4rLtszK}KM}nL)v{&^FXEO-r*(w B?JmS!rpDVYXl{DO#DDVp8E!X<1>V{Li`f+&42%u)g2l@B9D$m*2zjyw6?EJ@?$@-FNSK_p%)mp^f9& X?W&*x!4mr0?$f$PZyL^7h5?L=g7NYThK$_4gE^I^V`G~joG&2`X%lEe$h|yS($y>IJER?Kh+L+@?l{ oar(~&mvheC&xA9O%?$reCYG&Se3{3YgXer|Z3P>*Hw3+OWyPqM$$zC6AB|pouGdStRxe$R#h{nse^D <78`F#5KcSaVq?h5B`8jk=>&0cgRUbs>!?p0h^Wpfn<`SG -yx*0WdWcQxbd*(kd_hmh~H%=h@gZ)iQlp2-V5_Uz+O_bz7?;`&hEYUlH}vACC9&I5#uqTPSR3k?lx@T@=#&(DB`=QN%vgms9=FAfWE P20&gY(S&##T^5*=MZYoK0HnPRK$Hv=g#7uFo3rx(5C|}31xv-t_eTf=cTc{>{QQLbh_;TH;5Z>3{ZIH0>c8%^yZ)1;{-asSsee`f(T(Z9@$*e_KWglweiLWN;d*n$uO6 Q8{PK!;31nQv&o^yT5nCqqQOA9*&|RE++O}dunK(0OE9f5WN!`yq4UDLTFlV5@!###idjv}Ff_ <8TYd3ZKRFz!f!zUZ-L Z16q0HaW&N+-_seJ};Jv?@qlvsE?z4-($K8+hqQ&W)MHye9lDZ2jgITj_VxH;2P5~IZa>&Nwtq!TrMZIT4*F%=Za^aD9wXdMJC`8{iR??Qinx>EX_6b1Nq=?8_GbFXujHXhYbR&X{Z$@l# #HntIU1^pkI)`wXiK=7_Ao}q4jDd>#UTYg^ueEbW#6H~^2G89q)$GSs0%1-c5jJ=D K4N6f{a|K7e*o=g<=GAY{C9KG#_I~V2NQN!_0Z;i!}UmLi@!j-yA18_XJ~iFVO;thKhrsgpXm&JM1(j 4FgSvr;|R}p+z07K_Fs*Cv!>mbYc`#U{xjbfrKB3)_wjslJRjY01ow0l`}D3q!fm&&@cv(+y{(iGx4s ?EzC}A2;n&vv3|%@C9s4hSJ}&U$eZCI$;=YgJjry;9H(>wO3ilu6`#N0#-Te;l4ZA?5;DgTZ2KKzn!> zpMFUo1|wT7*?!f&LWUBWf)a8D>-sAGSCeuFJ-pZuk(e&sJevdy?2e>3(?9wB>ud_G^t_m}R>F2%w7b eKoT`Lpd=>S0|7ykiBQzw8l$d$OmBJ(I*Yn{qF8gU86v(Z1R7{_1syb%8uQo&#_m+UPlt;ED}^(VqVy UGQGCfr0nYLrW~@qDn0hQSogU?pv@e*rV-UOtbV)jAy*E1?}9g#vBe@*!D@8rUPVgrW>NBi{GqYfV6P m_?aF-JgwPE;9jvuLgi4j&w~DMsO3^vR04i~v&1IXL<;^6Fi!h`+8nMjq>_CI`|pn_=SfJJdg H&LYG1O+uR%JeLv_LZH%Pu!~aHjc$r=C8??b~y0&}aJ>)!|laQUEjnhVr^CEsT1#)@lWS-ho;2v9;r( 9i|Ci8@Qc&!dtwGQjqCoo3&!w>gMYj=JV#QP1>Zh*Ao6?#URwCT6w=~rHB7=&jdahZ9X5Pl}<_411FH 4q-t@$m@Udw!a6bDb_^FTRKDg*Y=k+VO8I=RteGeKGEW=kZ$)uzG9{=lQrH_&mz0gM9uDIvWZyqZ`I4 a*6Z0OC02hXIaB#4i?*w%#|IzNqVhVX~}fOpDXUpKt@7K|B+pni94koyFSJ`3Lax4}EjwivN @Q!?fk?IL%_4bC}@ggO(pNbIH3lNpCv@H{aH*9Yw&uErh?_hA7ROKwy}=c_i*t$Z#9f0ykqB--MC0S{)$uX3e@{ GLHZUj9leG>kTNUCu?v1k>cSI<7<|EEUiLn>Xzs0m(5+cTEXkXJV0{8vLF=G*(V{FfUf;=YG3j>FnVpqxa7y C{C4Hye!SC6)h^W6{UfH$D~}`Q?qrqK7@$R(ILjXvUdBzLXI7=PY t+@T$()_JfUZe!JF*vhUA;{4w7M$YFI@3KvgS7pCgQ7hi{vE7KdH|@Tk+f@5$JbxK&{TlA^+04%(PGM L0cfQZ)hT?g|Sl1iwX~yRx8-}qf4QG_0*IpLiW?y&aY7>2mJahHyYB3I1&s^1pV=iZ|`Zabov5wExJ% DF#;CbKpZ5zB}97B1+8j+`KjF6{8&=1obeleJSSQ{J3fDbKRX`9cMJUH 9OrUbi!oPx@Z8=Q4>=#o&#J!edx1vw8(j_jQQyOlHmt#YBUf=8RFQdze*+zK&tmp!oCiOj`J%qF$I7{ oUS-QMJm1hKR>(C5KJThy+b~=k2p3+}umPpKJq7&EJVKs(Mn4MY8#KZ#`Gu!`P+S{-x`&S`IWM+3JyCdM@|E}IYz<4Cl(?4|hme(%vd0_~U+S{sM9=)_Vc;C|>=XwMoSH mB@~nEAWC&>o<9&SFlz&!06syzXN~*^6tcAHh56cb=dJ&k&GHHwV8pt_orSe(n7t8ko;{4;Vk9?L5A3 lq)?aOo03(_^@K+AK!u%SK_yh44(0d_;$&H^(kiboGw81{vfvpmffP{a8`!r_Vz6GVTaD*n7BB5JDw4 F2Kc(_X{LgERX@Crf2#!df9`evRtcYD8BaRL$=dzTYdn;Qn4;zZ@J`@+R>y*IjvMPe?xiiymK%y~8O9 {v>~;2kk5`Cy7H`p4ZH=Tb*w*`Cf52#;Vwyv#`SaqRjqSe=sY^ognVV(VB-f?tu5s)% ^Jh?`G%VS#E^q0`B*ftrO2Bv>Q3wPMptz-}s{&e)A;HXmML-(xihtk@t}X-hU3RgJ&dS!Jl0TZ_Nha- V8_4AI8P!6p?4=UeoUUTe7UDeXjjjUDY$;QGA!hZ=6r<7dH4c9xW?Y>sZhaE$ZLsj^9W@8^(1sT|+~4 96nbzwqB{!vVJ##o5`ajc^HH}b;bA-=5GvyzYpAFG5ocLYTTRRhpP>5R{62%`0d9YpqO42JUjgTt)Z> `(?T77Y(~eZg3tn>>*2Q(evkH=6I$v4GA>MebX5mi=rCp0(<_JF6=n-S$#9NK15YS> n|e$wHbw9O&zezvza2Tec<_%yf44?6&tQJGfPVC_&wOiECAU(1$JZ@vnc}Uq4XE?-wc)pcVM -F;`yxz96MJwg1#^7TN|JvFToS_P@D1Yoyp~2$kI{asK?%0`Ks!IDvi4Rw 731DzSlpw5=A1D#Z$oPKN(;AQL3*2b@-q#E*3fw%#&v7|a)VucZqnBwDKQayq5Te1#iLzzK`T(&q?! sP~CR-kN40b6+3r9w8vDI3bvlhRLXXlTIn;n`Jz-(BK3vI@q7VN5xXwgvbtr#|~^RB1!QVC{3s&e)2y Yoo7(>DjAtPjI%Y^-3SyFM+T=i}eBYo1s5H`#P-|B4)?9mLh!U`#Y14dV0fTS3mcK-`a3KO3K``2E;YrDF=pwE_ADDc1%iR F!Lk(n*zTgVNE4yb@T{5XM>zkom*9&!CM0???4azcd``>o+d*oO*8-+?(lPoX8?v`_dYZRuMbkS%21} cSMB3e9M*QzKIIb?xOd1x19xDA-_7s$JYpQ>7hS>{PF%^najEBVIF#q#_Zqlee3lA7J%vw?N@!uYo(aw&{mjlpqi23wi(9zU~rFzzXL6S{>NucF=%cR`H%q5_Y >c<*hziu)fIK%VP*7_VOGit|#g^K4>o2ezS-m#>~pd=0;Sl=Z$D?pmivfsKk#tzhpRALE7x$Hc(^JbS AOFKKR?%Sp^fmHAozK^h6`(iUxMK0(K7=2qJhW*gVJ;1xK$P?(YjC3a4I+2^di(4qU1-rO~k(w*BvA1y=6RpmjZs_;1}n`28P2sCcay%;R{0 p;GJv71wTBm8gQFnu7h5EI*7e?z>kORO!9PQpi|?OY`|0TJC(c+0hZ1p%tf8?-K5s+UG8rZ;VmYLj~K $n6MhxKPM*x(#Xbn%>BC!u4b1K=>Ll>F8tKEXs_`&glSmiCB5xkvB*Fu)tNnYjtG5X|Z+IrtUZ=5QFL p6k9>nc?I8Pt^KH4w@_3CqF-lOooPHw^EHrK_?pWF&v-1Ow;P~A$Q9tbzPa1&)=!@cwH+Z4WEoe$&t% 0YYM=c4fNUbA2G6*{O!9PTyyb$l1aF={;D#|G!tA>1$7obTf>-b$Kme0PhEy^FR_lY1JkzN&-16Zd4( %<(`!Uik?8;9b6QCH$7dZw36+^GZC$-h_I+IKQS2zh(GXtQjKjlW-qS>xZuMo$`5$`^iVp*pT;6^lWV j_2#Tc=ZHQ^%cVUR7!T|5r}!*=0mhO((0^MLpHF-s9=;>X_XFRB##Iv(R?*9apG-&PKis$jZR&k1!j$bC$Uii8a=!&H?F_280Q_r`snA#eO+Alqs{IJ^#a28f;Jppl~X?(bO_`1y%CDC%-ES7I<~rDjXb{!ObF8JmGrE-M6d8d@-tmM(s?p5nruQMbL@HHgHN9z;eUEmzfX~eg#JceV HxaiXA;houJpE;dU#&_SdZj#b!X @b&xsULq=EUA8=75@%%iQ6`6Xt|EUwwOn1(-2>@jnbttse4d}$Db^bW>Q9~je}CPv{fl)c^S`m~OcwV0+!i4b?tLhaSbx rX1m8Rm>XpnZ))g!dEQ{952U@Y-V0tKLU*O+D@jcfY>Ja9=LX&rBpRIH8Y(>(0l}o+o^=CtBAGA+}ww %_YbQ$ht-vadVD(EE~^b!y0MuJZKK_{5c$mUAR=FqqHUmn>P^@REL1&n8T?7q^Fx|#Ha{cBl^rOR+1a ?D2#=&XQr<`41*gua?M8FYv7<3M+qFU%9@W2;XiWryWvfpY5wdYi3O4xPEEb55GFVI9_!nFe+V?W5jD y$2bi!j#T@4+Gp&dvQa1G(+ l6b`a7|bXgf&1uQHJsGEXnE2R^nNs*=?NViS|fKagQ~iGZl8J#-ntd^Z6v!^~0Gs!z<@)u@|g-7MU13 BE!M+kUz(OfAC1$ciLsm9m7GJt#r;MDHUby*p*lBWh)KWHdK|z8i!VSu|bH#ubryGGYwyb_pqMehcp7 *&U(Q+ha%PraBT;r-wn@GSS^WqGCdUx(T8|KE1d1@VH{eqiXx#C^4 P?dh1CQKD)-aLA-W#O>WwHAP{&?2y+c)sXao_7Vk^$O4DV~M2``@K=gN_%gut`O|*b$Cec))GfaZcCHfH2O+?=zT21sKQO|Ti1BiAZ+L! 2XqT`9C63r!gAJI)j-y*t?=ux7zMC*w*&k!_(Xe7~5L{o`o6P-_VDbdG?ZX)^#(a(w268(wjpF~?`3T hx4Npuv^M55_LZA9-Qx}4}bqR$h3hv?@-FB0{o^65x4lIU2X@(QK$=u338$=$!GJ2NV-cz`>WS9yQoo <{yhCka~hjKb-~F-oKHl0FjQN?sNI{*xQ$FE9W3I_|%PXt>cme8DlnM^Ctfus7jSjsIH0J~AJKeF<;Z ;3~q+2_MzOuO-}!@I{S3JMNDCkGsnkeB3>~aKe6sqcrhH9e3C3Xu_U^lQjIN6P9si5SFE$roow-@Yx# wTn#SJ;G*O1`o2%&U#j8%kj8(72CvqHU#r1SX>b`~T3~0-YW&MJ_(cugqDgUO&T6xYw5`!a;cbEDi+)c`R%H2Pla4*8sPr36iI_0jfGQwR5R}l^;Tu(Sc @~;uN1L3$D_x^Y~;np&LHSYbVw!bXVgkP)SzrDu2ejTiF*Uv@5?VI4Q?ccQhleT?p`vYzNq^lii#t)dx5u)0~kDw7_J~Fy%Vk?T$>qxhi&KTkKAUnKQFYc84pTYtC@w+oTKd&6Qy0OtUH7qVk <*$#Tr>&)o3<6&E;cLk0o0ne7gnCBq@z3$3PH%PgxolVjq$ze9w}FEHCoATQqci5B&z7gWkVec;DL{k)0$MX-KM)ZgLw10HCs6%DjE(D0rx1_pX3{1#vwh _nE1BEY{F{QAJJAN;ywJcu+L7~BN+3*dJr{LlMzr|Kl9yAS$)#9)~&oSR@Gh{(9nNR6&a+r%O4 p;eHLb=xC8zy&MeZ6t$#`O3X{N38SBim*+Wx6zbwLdd->0)rh8Tm6!^Gp`%MpgIWBcerpNrisJFxqU- uvrRR1T>7oe8lFO>~rmUb-ldU-@8yIJ#&r=JP5m{A;$ o6?5tM{#X;3Y2yD+`~S~f;mpbkSuXtb6xdpro7>ar kL$gDF5x=?_H@CIYw*K>UCU#+20x;~D>Qhe20yC7t2B74&K+;lU^!1A+nJn~$zyhw!Sb1nnc=T5%j7y >EH>XZ2F9;Rw)_mU-OgCeUibNK<34vB{ENWTi55h;Q^N&8D~Ya167vU@N$&F&D~NAtGvR)eXvsO6*C! hHp*#PgA&t-TOMiL!?{~*r_PO&3CtSbR-5q~zndoP9q(`J!=D|$#S1p+6A5gd6q;ow{AELhG=jY47{alHlPFFyxu+1FM*MH3v~$TlkBK?40w(5`Y$R(5$-0Q>VsgKi_}oYFp `P*<^EBa&B*(Lq&OgZgO_J*X`F}zFw|a^>l3;IV9mOl{dr_WcL~Do|eh{>P=s}`}9|cV#T1K>nsNo{{ 6Wv18{}Q# 1RCbI{h@0CxaC7w68#g`k>~qimqkMD43opL(@+(_jeeLzF+unF{`;NEXe&^kt?^W)4fApJZ@&Gm?(Dhq7ry`D$BUPK`uXxNzy4N#<@Z1Syn3yHDLM~ NuV&tQA78)bEn2qnZygXA)TV8_;PxRMI(7;TGj#6KwOjX_dW83k=+(PV-+qz(2MioEc*xCBLvI;2d_? p}qbWTj)0{Oc+cG;RH_w`1Fvn(h6waMjR6PIo8F$<{Gp%X=yA~|G`=0-F{{PeI|CjY2Gb(oUn6cyH;> S-&n3y;zX>xK(>XfO|rr&y-(0|kZ|3~Qm|A-z?asK_?%dH1goPWB%`RD8bUGx2S@~i#RH))K8FdV%OgqL+!*H^_M>VHc_=8bq`sQOUm>;od|C5j7G`B08ODHcTiTQKcXtQ{wf;fdHTQSD7@f)}%;>tP0cNv=n-y4Ake|Z8v+#h%q+G#-_csk5^>1G?r3HV YsU$4dimC|9_0FS&<@#d{VY!x9*IGVj#C4IdT+gW|EbaJNfWUI?N>5nMwfhrpK{%MOw9_>ZmUh44gyp 6|Yne W!7a;i)4kWyS!Uqv9Bix4Y7Q$_%{s;$4{Sj_2^+z~F>Wgp(sjoKFKS+HL?j+?U94hrgI84e<*dX;oxU Ir8>j}pa*0-bnMwU0>F|xb~ kCo+3c$_S6!tt`a36GcMO?ZMVZ^8+(ya^}D@+LeA+`WqA{xD$ASjG+Ew+ZZw8O9(e7yn?Vl;WEO3gtrh5B3wzhE#ZTNLkQOp?nJ nraBsr;_Ef(J8wf|s{1A>MY$TjRcsgN)22|OEJqZ^P_9k3P*oW|1!oGyd2{$Laop1=@Dk(4F8YvIqi& 7prKno#x2>TQECTt+=LpYMKFJU9$=7f_7hY(I9JdAJwVTA^GB{F@&D`fhF%Vhe5x5)GfSIYDWAC&16u 94{zu9xZ4fKlIp_!AB$>`OSDaC5>@ghL3&5gtZ3jj%!k$^yxsaEatkc!lIgxJ>dRyj}7$2wWxk5k4yU 5w4T*3D?W`G{Dq%r1*q`3HuTbCp?UB6k&zF+=`R&2~U^t31`djG{7v9;R%<@@PyaO@H7EfF2fVvF2fV 9lHmtY{$+T=buv8RdKsPusQOOiPdJ#cGMw@+{Ru}&e-kX-t5hMR)O((4ZO0Lg{a`4P2t5X3Iks|QSqKXoA ~1UFJ4ySYb9JjxPZdj$lXT#vMC)qy(8P%9HMhMboJm^q8mXw^T5&o4R4%gp7!RZ TCKrziDm=J^|=rk~5@Nl@Q2bGd(ls=q8=p7E+Yb9s49Ro`Q?xph>GI+KR&0P$^{3(i%_excB<-sEw)C #v~!@OiS^)O-|iy*TlF9^Z+vUAf{MF6THkU&4BAtXgi_T<&;P?mV8)iE2LWTyM^LA?%DMs(Q@f@=j3e c@EF_1hrk*xpmnDHT^=ahbhL-Zq;H95@q9b6L*wtD_TijAv}*F1tHCxmY}fG1f$r+j 8Ax9NmMe=2KxyT>A$HZ-35uB663cDOb_1o&A_=JBZ~v$)#{+xArgU*(g=tuJy(>p4 8hInz0gk8Kc%e@w|@H^t&;t+(J(=YP}PBa+ageQ>Zu1Q$81Z s`iS#<}!AHn;N1rt);knFnJBXNigQN2~Qmq(4zDPno{6KeW2lH#0rYoX;nlo4n~%UNP5|zmOxvO%D@Y @+I2k7`JqiRR1grFXtoeYCf+|$8=qOQ`P!o*7TzyozZIkUHQ6~tKjP{|0K0v7ktONU^{;fj8XZDnk;L Eh<~d~enmOEx6@b`xkS(79zR8`MsRxA0@s@(|%CxcF On`f+aIW7X%p2p^*T uJx@;e&)_xz`ZhNBAP)_hg3q2wX+5UbAlEPySC54ks*E^0sT%b&TXM4V2|Np44#?`OEQN8sUXfKZM_u `O~ZmmXg1$mq#`0f@{fN_SfZvAC&sgtQ&48e_4;~H0y{}Vxn$sSm=tq&^7C%`A%uKP&Y?_$8?i!l$G@2( Oa*AY3E$LHKQ{55fneJ_w(d`XGE<=08&4lQRE=zm)kW{EbM}?`B!6j9AlJ?1x_T-3uO_^f@Ng;iH7#AuQJ&FOTw;x#O%eIa_jPGk(~fW{`O9&!w3DD|bheiK?p4pPw-c6jGt$ncj{GwT*Aw1JSU*VM-GqY)Z;|>Wyj|*(@Ls7;!XL~0YwV1slm85vKbprsLpYoK-xT%uk#I2K*Q7oPS4e#lmUdBbgbN6ZdD;2u ^HRLWn$+==!0GCE$V6Yj&UeFR_4y#MMSb5Cc($5ffpgUUSKwT=JR~l5!+9F{^3~^uz;iVI_Uo`aKZjb s1TJ>T?|hzr{6E8GzQxr&*JXZ3%-^T0{Kfi9x~dN`Uu;p+6Z28&eD21Tk65QMtK&woPLrYPSRpgD t9j0?$^<*-YO}yYnwl^Cz%F&A-5fsy+ptuaRfIS`Wp1i^(N_qMY*GaEAKcAhFipJ$|Of->l9PNNjh*v s~myoUPUyf%DXHqQF+Q`~)s=$)CVx4Yp};u^YCl&s~8FHU4v5_&K=zPF(1gAF&Q)QPUIahFPk-V!bCz )lU}nGiEpJtUnTGyWuPs{x-Mzn??PG)VEj%ampvwX`Jm+tXn$m-o^TptG|uftt-w}(--TU*=qV?oz0} yU$G8oQO6--9n_-ABi1>b`4iZp)(2sSK3na##roMSRbOJgD@Sb~IhuY)uKP$AVYi;6$}iT(a@2k+mv) 43sCX{NvVMqlA7^_M>w|e}eyKR{k66cXwjY6=`4QNz= 3lI9+tu&kYQ_+tG)a*$YZkn1C^{PsN39>8n?*U#ghP_Rr{Z=f^oT4{bd6y<_ abr+RPT^Gv2+cD(T3vom&I>X{+N`I+0U4)Xe-`oXM6ue2GKOLOP`U#>8(?ma5~3uR1~b?t8IF$v#Ujk ?FYcP*LPt>Zs_|8Q1bmHkBCOXqDkz-7A*WcJvU@k#KrKX$+C(EfrSPvwL~pIbju476*l*LLrp-Ta-b0 bxV?dg#X7*1f)Z&eZYm?>^=Y2|d!cTp#;d#e$H|%Z&$?{_J<)gZp~;onNqfb@!LzaU#GN^3}1_4g20R -Fo7M7iN6ie6-guv)aCMDEXB)|LFPfBWbI}WMk*%OW$ty?DAKpZr(7i*^t*J+)*?0M2T<3wTs3tmzN( b3CZaST|;J6!hpv=o_6nNqsG^ox@`V(g#Yk&Z9jjr($VJD$`;Rex{&*2g#Y1hG57a}-fo&?wM5(%-0| xq&t8MR>i0vBq>Lx#?0LTJ+40N6`|8`}TjN8l?NQst0XG?6@=UUYUis|M>Yi`!zdh^mzQZ;hU--NE#g votp4?>El5*v}k6!4$dcwpro@`N{-G5v@*d;kByw#gO{}ebaFlf|?g?9}7{E7Cr)_070lzkrb`U5-WJ vZNU?ahGMCO^<#>rM~P+C9|}w)&Q3LwugpTMFLYX`X91|G`a9uCJTb#_H2%eXpMe%n6(vxAVZJZ^k6w gKxwBZx^lpO;_pY@DRJ>;+DdXj&Bay@#WX2Y^}@*6T;`Ut@$EcywNAAzLW$TiY4?e9QJ7!{b^XHFWUAd~;slW@_kv&Fled33hMQ`l>L^u7?#=gEIg4_TJlmYW32z)vdRcu&ix84WCwj_{GA!kBHtvy5rdc17p6Pl$Y14^G^e(els<2SNAnvoDaY6{Nsn`4T}$bxlh< QL)1%;A3E^+(&PJ2CO%M^J!Rt^me-aH59l^$%tC+0VmkI1-_APi<@5^`OS=5{)gPPQsQvMDyPw|88dy @g_2%f_+uvJx^2PT0%*#g-XEzLPIeY4?pdH7JpA3sA%6@V{&X*s)^2*&`M%sR{> l1jYhLiZ_Of!<^S#Gg9(ymeXU7jduBiU(=-iKo9BMx0*s2xlKVDb9cS85zxffgbl$QVI@DID?&(?9@y tF*yR{!tzuBo$paZ|LdcIyKbD{k*Hbl_8k-t#A{JUgz>yermq-x>Ydeo+5tbN`Doe`=k(yZfkRSN5!5 >1TgsL4()*ePXv*3VZeGec!a_{eKKQ$c*zp{w95U-R#n%{@<+KU-jXXCH_<1xb@(XoqtU4zj(Vx`!NX ~L-$N<|04S^?CZ*e;*BMHh8^nj>e>1(d3UZ`5_Q+n_QeNmb3ZEDu;ZKJM32?Ais)-Lo;@-nH-BO6liz (g?8?Uc^m&s9E&HhM)?O#4pB(<_^oFrr+ANq>erw@(H>J#)*DmADZ_m&4y?Vwnv~J+wGOzLncl7@?wp Cc?=NB(+NoET&iv+=dCNZe?wQ+@`+1C*^xY`FF5&;x`lp_IvXGSyuN8B8#z&9%U-H~(%M5P5YsiCtyigR>^Oebe4qbD;dz;8!34Sd-HVz wpE&Q!NOXp3GeR}(|wIl5B|1@^N+H}Vwtva_q{_-2o^nEQTsp8=mhMpTW=BPsqUm6j0^Tdzr2WRD-YgYc`AKY`}mwwZM%7yfBbTI&WO2XXZr;$%u2XC u?un1m~z=Xx!x+OBwgz2N&b$sd?@r&k< 3_Tb5L1Gk&9FRp%f-M+xtpY3|M53ex(fptUXfAnC342}|`1Ct(U3+ovfX)eh2kZ}w-n#Ny!H_R!ynX+gpix&t_KmIoD(c(n2fZ!r4(UR!UD_7?@( Vk5=l`JZxKlhtjTP@37kxRezW0bPPS07}@4L@@GA7%;YG3}!*xMpLKX5`9aqX+I2OjPg*yE+@u5Y$~+ w+57`;MB o3_jf@l~oTPkS94W)C<%vhRjxzFz;D>FX025$|~3wED@<3QUi8KlA>MLcgHSy*q`a%?{kYX;}3V`@&0 Ur@r{)qh6;h&2D~hd$;eKt;#xYjc=cS{NYuFiye0kS!eyQ|C=j@d^jq+YI*U?-A?j_nar47>qWm3>O11soDs$Gi(@x`S3LgPt6kO=d|vb8r=NIz@$AFz=CaH)ub)VK&Z;lp`1F`Z995~y|D5)bW8 ab8+ecY5zMQu2_HBdDUJJ}MP5vO{_*;){Tc3DoW72n5PRzL{!@Jjpeka$9iDCaG@7_6l>do`cL_M>2# H6RI7xjMnw`Uz6U)jCpyN+$Zin-=svwydyhMai(hH;(sN5%+1{-JZ4Go{)=8;?hA;dcZiy(}yXZEtuj Jz?5deOxG-w>Abr$oxTtA&<|!FKGDp>H;#GwCNodJJD6v43-fAT$h=xCW?n5K6I`nJ2A3(m?RO}?A%_*;4nHV<9ei|t9lPuNI$ =M8@1}L|j{jFMQ1XZ%f|8@t&VQ;rO>l _7R^0oCfds6lrC*XAW}z8M6*?9MiL!8DyZ+2+$%UtmalXHeKF;yP^PE=x_Q(nDer>>4Jl^ahoEk?tPICH4z$qSn`YW84C3mmk?$I _*Yiv6?E&18!H0QTFmD93spXSs!vrf22_Wzpmzq6RrnzNOh8ouy8!{di1a#~rliqkaRmz>r-(y5m8z^ SqRSx(u}?>IH|iTH;5U&-OrXncv>jfH){N@=tz3>&uj4-#FDMBc5?wV*w|193JNoI5N;lm8(Vfvx^ xK!(TQ@yAG9}=a`McAjS1qtxUYcQwK70Rbug>m1F?!Sd`8(cOdVBPV=Wczx>!AGTdCK9qtKQb=UoSr~ ?$m&s==zR7U9Rn!8+~hsQ*l)f_(w;^%-uTmazgalfp7fTuPh^au1`+s^WU0?Pfm35lxLPcGA$?i&mFJ KsTyjE&OD%aAO6f7J*xAe*WURqFFLbr;@af}dC^1qeSCI|WlHq1+v@^<{n`-yYquU-Yu+3l{qflFZ#- YjkKQ@zgO`JzyfgZyIf)*1cjQDLzV)@!({|-Wr$6=iY#*;-(O)IJ^?TdSGor`cex>`qnOV_EaSzAq*W DI9Z|2xn$9cCrWk%n2 VZ=dWfi-%_$;G4I+c_(GWYPJMSC^zmNBv@J*J;UZ(JQxw?ew3N5xwes+ry`y%8MTL!RGc6Q!}Cy^l`t u^mS_V{5@4OzIiB#^bi^SUJu>d(OdGO*KT=g%k6KPqPv{h@j~1D_~`VGF;D#bx;c7E%CEOZ=S+_dc=7 bP-f_v%!;1(1IP`aGbZ-8v{@8z@1tHo(;y#DChCG(P)8agVf#H4+HohyUfxmeh_#1B_?T?DSw}4xBcn ei`Ens6!4pXkdY_s8!C00YOsnD8{ZMNNF=x*nMY&63>)?~>wXBr&&hWrAv)nG0%XB6@yZHUhlD?i@`{ Ie|9OoPd4Fcm<+Oo)TKp;+dc`)b1R6Hu~j`FRjSu<6>FaSKuWI$#W&&ew$HI`#PcbVCM2!CfE?SzH*^ -D1tkx8(`1IfZ6hF`j2cVYL2sv%}%y&GJk+2)nP!HfNI4Xg*0UM}DsRFb*Q^^Sb2!)JbfF`bS_0dKJ!0U^&eAIV9sy|&Z6XjZ(bfqVSv&{2|%ws`a*r_fp _+7bGiu}b1hag)UjN9lYHi7TO8u}7=tOx0Xgc?uh4Gmmu|84Gh65OkdZa@&RH)pH3(?2mrswbJ@7Oko(rr+niQ@N-?<0mF*i4V9x}$*jfr)Ayry; 1ME$ePD#QY}8^X&)ZeO=UcXlTSuTwj O$z&lZV1>tsE32+ysbMwP_JhV}n0e&+yerVhEEI1W_UqO`n`MpsJ`}bT0Vx3!iRaQ5?|G#?uyX5(Ay2 |fvJYWCnm7FpLT(ik;p5YiWsE^5(*S8>3uInCVPFq*B`5qUWnt;Z0dU)^a>o6DLY_vWUe$Ocacgy2b(*C;@ zSo9uE5Z%lSS3`QzLrdQ;&ZdkS-GsSZ0i+3|yuOqz|M|eb1D?@Nqk%Hujp-LqfGs+fgnVswT Sm7?Zi1QgnvPXXR^6moQr@~lEfK_Ey7+tU6t&E4KD6RSNEYT(*JbTeO0>qg3eHgA7=Cq2e;FUjwmQcHcRrKf%x8oi@SkC@CebjR}MgXInnlz8bI@rgPhnGc%z;EB8W4H6(DaO7yF AUXp#3psYF3oq<$`8JHUNAo__6_9&q1<-*>6)4EJs5zAsDCa~bdNQY(2bFfz6Rewn}%=_m+~c4e3iZ= TN*rmNNAoUOi=mxVF1B{O<_?K}Px{hkLd`^BOf8@(I7(4@B>-=lK)*n+oOCjfWSdEX%9gM9?|> 9-=tU!u|9_CkCDRw`e3@>IBg11ZTK1xZm!A`>FAq^@H04CIf%?y-498jNX@I?9@n}s!|v`lH$x$FQ|v XT)#q|Qiwl{%6~l8^@HwpeOM!IUx938z)R~sypgc!EGZc6vQLW=co6HpY+D)Nm(qk^YhJgV`8Ya-v0C `mP(FM>?q-y4ZP*nM?kShB0~(R58uEbl<=VCl^}@epBYH<;zo3myJ$BZlS^q3!qn~5U^F!eu4SWW1y; ixk?{5EK>;w3PQ@9$quXn-s^7?wcKD?Mgj~zz@@a5%q?;*85Va%ttK>gX`ly5UL1_$xBTup5&0?OCuK a$HN;wA$g=Yl)pQPI>t4F>PpD-E=U*T&)$VL{O)=&f`1(TK2-JQfBOC^Hy#H+ WUS*yP;L}PTb^YfLw*0)$wTX32Y#1b{97=8H6LpE?1#)95cf!%W4{cQXDllSK7DVs_aUyMaFu8CG oTZw046X871KpxLH!v$deG-VnLi~G%4r-vbrW$rxg1OG wwpbO#=%+qm~WybIDZ2#Sv&LJr0)h_iN`U3wUF6G=8+F1nk4{bCug~R`G_#<9{8h@t1m`ri{chvYNf! {+e{$U#b68OK$g})tS8^i0QkgXp*2W}=BL3A+D0laS%&ywZP9{BU`{ykKJXU>dZX;4;G?<22#Yn@o<9QkfxlGSCA=3b8 i+vhtihWBakV;>8O<8wXfw;7G46?ka?cmHPi{-9jIR|p3068`Y2sK7f%?WkJ u>_YbpqL+!{JDa@xO*;O*9zN6QmIQ8P)lJV_#8KGWh}wugM6{gf8$=Hfts#1mX!A5dyAT~fG>+(PL}w FSOmqd&GNRjw?jw4P=mny`6J2f=^lqXBL^Fw|5}jcZbS}|{h;AbK4$*3&7m0eN3mQPQ3(>wrhZ7x7G? i#B(ff#QBKj85eMFBEttDDdw0VZ0Aw(mIjv|^$G@IyrqDzTBPIME|Pl$d_w3g^kME@k(GE-0k(MY1Bh $a$ECu$>lAJOGR*Aac5=sQF|Cwh^nFO^S6qLD<$nw@nQuTUzFzC=fx-2D&g#+e-{IGJ2n5O2-OpT^F5 rkEYE`Br;=t~u6W%Z(E&8?3JvxW_w}bjIhWi=*gSjOS!r{b|(iC~(7ts3emkdm8J5JOo3R(2RYljKeh fly8E?YM#cbg@Se`OYMm1H(?t&n(R4XSCtrX44q^6N=Va`&E3(RZ;B8(85pJ`UlubnU^I dM$FzyWtM4=jG4kDoQCZXG~+0loW>z{>4Lxl(>XxF-h?}`e;#}NoE@_B5Q^@ Hows7fI1L@X;ZE!>G(_*>f)N3jq8ix$jbBvwm0Pa}2hw~J>lmv_25eHG26*V@+Di+c *#}s9l3$SuPEKIq`S;j)eAak{6vLknjb)Llv!C8Nd?^140Db6$ao>pAX+1sGFp02lEk!SJ^RK{Q~H3# c4_NGUI*)&&s;2vW$J#KUwUw|^&oNIPm7wuNhWRt~iRx=2Fx@R&dU@Tva4QMtE!t+96?XTB1d&o#!m~v9S1r>n@2VN7Qcy9nqLBd&FT5JN<-RI9L4bOkws_t_bk65U)^7Z`U@V+c~1BLOV?kWU#8Ps9(4V)=`_$Ka S8MF^>y)o?TT2J)z-T$mxa5m7q0c=pQ$T)$Boxb|I_~3E2+5g@R7gK`Q!C;e)*q&v7X(;Rb~_X{YkFa zl!i*zWkfKgukK5>)$Tg|CX!igFS_R(+5xfXXXBPU;n??3(fU^c{NdVo^FrGXW>bawzzn4XTs0ZMq(R j!>dIbYW_rOyt{l(lfB?~?9O 8bHuKo*W7nGpEINGjWX%=E`rj>L)=|IReCdA=y@##~#Mgi6zefAg?;1T{uhH|k5H|*z;MI)%&-MT31- lvvnN$u`)cXH^YoCor!l~Q${Gac8?yBX>-g ~`kz3+O5^{%z{SzEuK@F34Fsu0P5=WySrn|?nGa6J06q?=BMxw{ZnUIY37CiURECsA5y51#!QrFrz^n VV5scu&2)gq}PTa;(YW!#&3e;nj<0idKjcz`4K=>diAbj%!6u$bEnmQ(Oc7qNX2DYxLt8Z@>dgMEOcT oh}~KN$3OE1ajodXLo7GHR}ML5f`OZ4$$eb1hBsV=fz!SL70}j*K-XlVsL483(dFE(^C2>I^R8l_bOZqO=3@pK*XMaj*8KC^UKJsW(R#+j_opg#eN=R;4?o@Ei_06r7`PCkxl=4W+S `Yb$eJd-y{t9XI!jx#xyk7>cBf_#kCDp&CA&|{k8pF*4mwEv6!QX#_s4ZT5 owwE!!qrIS4U?1Aori5gk-8euR*WyJaVlL9d;p>p#|&)u?aiOL%r}1k@@g1xX(?w2lyPYG3-D54caU8`wjXN^wUP3?GdHf0at3rO+Lju+Z6V;nf3^IZ >D_5Y94P25sP|!wg`~`XxmDAIHrZYrTZO+6Y^lXP}=!6>OcB_o8Dg7cD93l+|KLcnz;mi8TCX0rUNGK 5aK0X?}S`P?@pc(cT}r-Tkj{!E}mgoA%fna{Z@z~z;975>|MU^5vkeU<(Y(0n)yAwA8ddgBVo6I7C?_ uA>N{2+zmfO`F)`Lh-UwQ^+%ejKj0oU{K+2OfB5au`AFKM`>UcoIv*Z;b$@H!tNWkiy*fP=fMICI^Fy b60cYU4n%8b8-4Z?$;?zwi-AX^#?cVDk-@$_)b;1O|xhS9X1@(2DDe{mI-^2feeTDW-r`)V?ZAU(hs!%W18oW?DylE<43)`{T%J#m==DX^`TwBD$tXB0sd qneV;e+M;Qq63`B~TU3~0O&ZU0(UJkrpxs0_P4QI?xD4eg8)#xR%Qw{E&yQ(|H)%?b$^ki!c{I{Q3ho y*(p0+@PUzvTiJ96lQ&MA1c%gmkEt=As5-0R%qKRp4=-;Lq{M89lxQ8ajqg>MM8vJ04ThN`FxL=##7J HW_!g1g77fmDpdflywuBP#(@Ow0|1lO_mYDz98fagJX@qL<-r|12=Um>i3U!q@P|ElOWg|*ONe=(*Cz _-A!-3LJxKI*rHYAWtnmE|X(UjU1q(nLC-*JMq64 *w{oK%Naw-Q<|A^ugpFPkxVRVSuG5S3QGz2mWRfVjP^semSmH&jwv%p!d&c;#-tU{0HO?Xj!f){}%*! mj*xdq7D<1NY4??vI6{~|BL>qL(5AV#>W^_HQ)oN&z4O2o^b+n&oQ}P>{IK}vHy{6&|%LYvpv!0FMzrok0qBk`aXO?b({^35~OX-DczDxc9;!VCM9? p3NU>+df9Zg33x6BFoj&Wba7kuZi8^&?I=S0YNRrx%~c|FMqlbmq9^ZCb4c+PpB@1^nD#|guokndlS9 =>;!4Egc>nCdbA>2AUQ*3>|qLuwJi#$y>00J#X4B-C__X9C+UFW*S5!I$7Zd#oIg_!#eQpDUu?$KbD!r*+v>Tm-fgYtK2y=}7R2=%C0Dp#c7^*DSGZqwh5NtXWYX_@T;aa ?3imDb+~;?g{Y?7rRVrPc`)q(sxX=^15x(AK1$3b?MSY3?4jKJoeaQA}%gY%$zw>7pTpK|7{{UIay?7Wr@w3H; a;z67kt*pNZdo`%O5PuxzR@E~T;hvTVrcdGkf;jxh!y2?y1=)_guu|_i*iwi ?hJR_3YWauH3h0&mMKHwxHbc&skX$qn^*6Tjl;OkmbA1>)HF)dfCR^e?J;eoxJw3#^0 JzYTvP7zJu3p?+L9+`9YD4y*U<0}C#Ny8uggv(Z8owS4;I+^*^hq)E~3_9;R~rv8 rFu=KK(Wd!jSxk3~(3k_8oRHeaYf3zzJMtl5O_sIHJTXE|3q-z($=$kHY>WH;nS$W4)3Nb0$VQ`fJh= iRz>6QQA@V#J6M;_0WKzD&oHl9EJDPL5c=e!bH1Pe1)soH%i!R?n^cDHZ0P)}l>~D2ZpR&&Z82+r@(I XSc^poGKPTL^0c?T(JF{2x!8@1>c>I*oZ$Cymn%Yl)uEx+kIl>$dTJ)hIGpXjF=cQZK#wRBINv~?YEB ^86g(PwCx*4vcApBS^okl&s@A%B$O6EBgFg`Eu=@I7E-u5v$#q&$~1E3rg}fIkNi|WU48ewZQHh@Q>R YCVzG#R{rU-ie}54i9IX0o*sx(@)TmKn^ytyz$tRx_^T!Vo6DCX$Pd)XNm^^v1m_B{F@*nf&%@ZjzeM Rom{lpvd`-sI828v}91H?;H{l%*3eqzhQ-Xh-?EM8qWR%}YPig#apSd^tr6kgk;cwna#UEh_$cb631- iq)%E3%lJe GBPrhe2a>T#D)zUlrP)5b*nh=c9B^0y%Za&qeMN5?(AuC>?bLzs;b1rix-uyFqynDf`6&jSB~3%++djBozX^)VP{W?&p&F2ufUjJI#Y2tR5jWO-L1zZ@py@o7SyU Lj=FIw3E(;NJ=SR=`I9lhhyhp}a5oe!3OGN>XFs-wb^CpDF}H (tNv+{ek}k@Sg_$E5P3f{EuDm#cd)?+zp#;iI}Mq%(jQv2hFd-j6ybhT*$6gA%{IH@`+$E4_}{qTyE}W}F5 uq_{FcCP2mA+s-yitlz@G;EWx&q_{&wIWbiuzoMd-=(RzSc2{{jB`F;hc2dbMrSs#UwewNL#Agaii%2 8IOq`uYb(boOfBzHOVqgIgOl1P0?V{tw0+ gG2rNL;M2*1AtGux;)USQ~!udM23Wh7-`VGo_9xd>7v)rrd3OG>%qiF{UIU2z9A9!-*Jy8o}+-5vp~B D;QRU$IUpqB-aGENM}MwpY}3jNB7K_mq7&0(4Fm %vgo8RRuz~>#jIu8+g{Q;^8qt_z(vVgPyRQ+B1grbW>2Zn?yCR7VX|AYRBz^;BIAp~_aA2jHWJMKV%+ UF5HZi?{p9*71W!SlZk8l*_Lul9LB(}qobZnF#w2@FLq4{D*9xZn6Nf^Tns{|DWgHnjLgghqr04|Gy# e0NC%2Xq?{;N3vG`4Q&>_Em78f9>;#Ufv#!Z_>18L7SC3PScy9Rc;VK@PA3eA>_Q*=;FB0Phisb15V*R3lqUhE6qGu^$3i!F8& !iZ2RF4@F0AGIjWwC12DzRqG8j+HcBGS{-RjlyF8*iw1@Xa^hRI$P*C0Sw>;*BE23cGgg5+8o}p^6QT A3ZFN9z80KA3rX>`Q{t(?YG~GAHF}UVuSPN&x>Dw{Z*{ED8)Kl@BhWc&w97SK-ZH8vS6Sahk(sn?bM;EoJ?cYL%{|+CdwcWP@8;&_%{`m9?AXHNw%h&+J-ersSKGGj+j=+iXx iacTsLpox_x_;ZRXL!yOVb(abK&BUf%cL?A;6nZoBo?zuwoft(W&LH+%indBbe>>get6-oy(y9d5tv* 5;mfcl5r+-Tmgq4I4J;(6nju1~)bDc>gW#H}i(KM~k}}X^mQWGu_{~A?yE(r|Aw{-O~Ez#*I6{zFM}u *X=$$1@bI~F=gwkYdi >C#L+jpq@4Xi^P3zRRZ(naGPoBYwg=M+&+{EQio $!_MPg>t>wnfdpv&S(659zShx_vFcwAF8gd{#odsXue+h??Hd>gAMX5q`Q0e?Aea=fi6Y=`|rOmH*el 7L7yxxE>?7(IB`OL{q@(ftgKA#-@jj#BMxE&-aihUwd>Zco40Axrg;e21}a6_v=bz;dKm73HC!c(>`Pi{zhtbwgEC)XS1$*lb8 kQ6HM(Ia9#kOiQ={GWYFfwIgWYTZ&Vf=06y1W<}G}mUxyf(YuXZ|Dfzy0>x%OJ;A(1|7FVdu`Bihkll >T#y)sl>Ynp__U)QGn4+kd-uvMTee8ZTq0&xHq8E~Ja+HitukpZEiF~HQeIxJ{w5Ff0n|6z31vjuHhw 2%^g$_oKa{fDZYjOrk+RbcDZ7+NIsAPob52Nk{=$U=u$B9+Nx2LC+qP|6(WXtC?ug-+!(UP!iU-omK4 -s@AIgHX^KZ)jtFOLNnSZm-+25p>dO%)CH~XJ5PW@KOz)z+0`$)<@`=so-N6Lpv!NV>oJA#LHZ%NteO (~ZjlCq|zX7#m6zeGQLeQhTFMmA(&31<_Qv?kK{SSYk^Dy9JDf@% g-r%7-^u}7Q(;s(0$~Ids|2@>T=*O5L4gXL5$9N=}>&nE?bM`A`LA|1G7<|yisb|!C+JymW7fd6LNcj kO2!Z|&`b_7cUzwD>_Ub%XU<(iIl+tVajnfZbyrON}w%s9z<+L;UmiqXhu3t&N*#CUaae;XBGp=dWao 8w%_)^MX@GuZO6rGXRlfFlO^-A>r^wUognUL!N+hR9c^`O254`Y9qF| 60nC$D|xqA!R6e_}ppF(3!r5J@3}-nLerAHr<{(Z`ExY9(T``=!cw_b?erx75w=U(oa39%LnzIdR>DR-}d X(ch|7t6KfX7|(J3ck-b9ay&3(L3`k}!2{`s-;*V;jF-7{`pV4N{bVY5SOXrIqToND01x4y8zr~An41n@AcpFCf6T7LGk&O-!v7;_RlxY%=u)1Lhg=swA3uRcB-KB+x;XuYLgzoh6# e7~%F_wKC_qbwo)^oxYl8S=oG$KZwcIMy0*8J}^yWz4|zrmdIUIKP)%2Ojdlg9AKlT{%^rJA3N7oXsi lIT%*W+dpOq;dTw{zb&KToL^uymP{RchENjK>tBu%87_C UG~nb60(#>X6g$s_gu?Zp1_E$~nb9@ftT53mK=GkHjL^03m$LlSv-YJhw$7CgiR%K765Djt~VlX|tKXgIqKlFMDd3pBPXJuYqp5o_v_%L`OZsqj#uS7%L3%~#XfS2)1F^Pg+0!I_w!d)Z=Hal8fbW#;+qahy5fL&Y BSUgrj*pL*GiJiV4^+m%bY1|e#U$wZC0&48!^U8r#&a Z7OqAA)~#EcBG!4-pucnH&OKscVy28AKmHr|Q6-1e)Koci=ukOg#0dG1fBZwf{PN54rI%h(^l*MpddU OF0*(^~ADqLG2l`X$A;&_tvFn9E`B4_>zaZaFpLHq5n5D-Uv}gLHR}(@>{x#=cef#!Z8X6k9kop5%Ux 9gl_YE61uS1PPmvynguMhgFR5&O7fYeIV_ml`=B)%8&>7qwaB@!?=#Jpgqv0l|4fauJ)W=$ Da3WTFW?a)%7S(uU@@gTDfwiS_fg)-t_KI<_C$LHL60dmv7Cde;7*eEZYKYsx7zV7vhX&k<%Mey9EYj*9HVI~T#w*9lJ^)RQFi2|o&@%P`igyYqw7CJhV9y|R_ozso_Xds()r k9kEu+XHhAdRv7?+ld$y7T#|&d_$KZqXl73^&mvaL`+5>Hb_E6W}IcB@gJve_BH@N;r+oJwMmr@okT= +5VG$bTM&Ye3~$$>nO{s999$nfxRb)PaI4@M>r#=MtvF~--_d(ufr9U^b8y2Y4^<>5>I*``gK9_!byf 01*DKSDoslbO22^=959U0idXIdi76-++Js>F4JsyL9QI>sWh!afuaQBhHH$dDmQx6;$o75(gM_BsD1-LwPxAKqtdO8sH 1O*^0s&?ZCSF@eln!>~T4-X> Ww2h4QA&LQhpJF?sT2mekOz*Pj9=*gs0SR6ICip+Ip<{GQx3-Z F6F>$`h5CY`Z3HY)V>CI{A^!T4p_>zGPAL8)sMV?8rCpm7mi!s?FK|MsL(K`@oUo A-Hg&=lPU!1|3!G5uP$RtjcRObB2NK`!Y2?fe#Z_WOuJy(SYAI(Ol``m4eUFW6!Q4}L@NFrd_)yAEe^9hsjRx|1U&DqCdtz=k4 K`g(e}OKX=Cbzajq!pL+m)^G#OFJyY&Ca-WO)D_j%jTI?t1q%8a4y7qco&`&Q~v?%J OmtGo08W=lq{=o5(ew||xeKliQ#wmQpznR8VUfM6@9uN0Bxu(ti9j?i9kL_CRa}Izx=oHKso-*e5oae G##?kB(W6s04$u)7m?D3QOejoSB)>qZHba7caTSp&M`>yXk)P3iHeZukU%!z|CYw;+xj=9{q1~~SNlo 6-(ebW&~^?hIC{Q*~fYZT(#QLgV{Q2va8NejoHEh{IhH88FRb4}i8pZRa6^ ?gt7w<&!r*Z11E$3uPO9u@aGxlcIy1BF^@w9j!I^ZhCF=FNM`b-&w)X9*cw7t9Y(Yl&RX}k31`^#ydK8~uRkG{@5(}$e ;SZAM3wU2pH)XJ4BN4e6$wyEcYOx$ndnkx4fxF)>u73($k3{U?o<#f=}Z@<3RMw{S%r)&F+E9T6ZGiA Yo1y8x|y^;p5o3JmKxW3N4rhMmqANQHK9!h=W9uxOA7CZNs=8n_z%ZuU^4N4!&F718SZNKhbaNRv%%7 4dmzG}aVdqrH+0q+0vy;qgJn8J&Lx-`99-w@=aRU2 ZSG`#i@Nm?pJYLHP^Yez1F$EK%3zH2=@wY(Sfynz~t(qxp(WT|Fo^ApMH7@{QpzN{s89%oZGQa=zG`~ =PEy!@Bb@I?Gtc)y2!b{p6+53+-G{hxlgvhNduG8N3{C{@}Y~D+rKeCqa8Blcim@k-MeEyU2D(iz|KO o$HKk3C7@xxbFa}Q{m%cf{TE(%A?mf)UK_=|A;#mR!@YaW-c()SO^S$S*|G*#p&$bbNoaSC4*NuaNgVp*gX_z)`n(BA@17nZG&;er&+0X}!6E% }2O_~5*jz^5dA9i!jf2}!H3-%TIJ}EXf_FeAraE*TC$dQt=;QkuM<=XuM_Pe2n#ycVg#8~w+`tupowH EX9GeZB##V7WM`GHhm`P+`fJLi{kqBD3tv#Ted7JB _(B)G3Tb7NyCH*6J)1Oo#Z2rJfdhb*8PnAA(o@w82*CqCBFXp>nTE?D_l=f{*V4=@#4i#u|BTJbIhmD ;oicNPd=&km}wU*%fvn~)_55&b5DhFJ9t=q18vu~Uv~}5bxnff(e&xlm2cp?s>Zq^<;A`x-}K1`4jjn 5!M0WVYzMwZ`TzRpFk;|!>(V){m|IT?G3f3R)UKHD+IU+NP1HDYkup0O`U8mMF35cRZTb26N}k3TMmfW#KXt|De%g*5JGjpJ3+kwV{+**8a&An0Ex;UP#25N|P`-$-R~=PVZ8Gp#mO9NC &WL9Wo1!m^IHk{-7@vNGu%_F4m&M0|V=&vItr>G7*H|#>j6Mh6^uzCl;q%BF>6>Urq}BL+N7>eNxnim w8;*0%oj8Bw{FQSB&Q&a!E3E`w+-v2WoU~K_*>3jyU=`#1h&kA*b9x<|i*xS9xgY0!oOk+Q-pLq-F%{ {i-(un%hVkMX|DLAma82L*qOa+29f5N;_8;ZMG01oab<48@RlLP`kFg$OO~$&MZ{)3Bs_NjJBM5X*ex pZ^R{PxaVeE&BT`6*-t)H4tGInR&&UpjpPV=G%t2Ra)mePTKS+#1FiU;|Q2=~<}OX^GASiEdUk&650j jN5h$?OL9AI1gcx40+A_Xmuzlxf}k{_=Fi0o9+JL;XEYwSUf#KXs43o_b1I4j(>T^(p-{W%GRFP |uK4uRq?`4yFSu7ko;YT6J&CxSXLIb{wQJX9xJ>gK<@tLc3pZyLSII`1M$X)n_chT-n9UyQv?rdxrt! -a>Wb&DnFPN_!IJ}c`kI^I*DH9%v)393i$(WNJbA65v!q#_yLOYaq*~TK?L!%}FP-e2QiYSzy18Smp2Ck}m1Zv_F)@Bw%@MI>+j1#fAo{l>sMZEfp>2Km*)Md0C h#ZfS)79_6XW-wdz`UM12Z{vzH4b-Y;MrJJj_Eza+O0s9H=o4}=0Tj*+8!vrH`Xf-}HJkjEnFLHy*`P>QOwNM_nfO#tn)Z^z}`cJjpyOdU |}^)G7VickN#i`?a4reM;~6ak0^pqvAVHjvF_9YW&og8J)*Xo!mPresY&tUE7-{M@@-~iH@H!%C$9AWj6PnF@0vd `dFv4wpQ1u?V(l*518@M<7Q5en=!|EjXTq$r_Dqw(c{CW$IXhH6g?q2zV@N(&o|M9+$zWS+! -`?ZgX51uk>>cr^j?aede{KxStb^Y4ML`{m1Zg2L!)QI<$Tj}e48BKk?YnfxWc^mzPi@MJ9zv=&OD#H kdfuba}EVVMVDz!RQq`9Y=)4b9wX<=#MX_0BxG+SCynmw&3tt721ts<=|O{9CIo6{}ne(7Q9k?GcSTY 6HuJ-sNsB)u%XBE2eIWO!tlGb|Z?8DSZb8P*J2MpA}7qbQ>!qb#E$qbfsWdSse2Et!6qVVRMc)=XPwQ l>q#D6=H9EVClBDpO>6WSO%pS$=REL&DmmOZN|t0b!|t0Jo^3j?Ra?65fe9AS<~ht*+oBsuJk B1eg%%u(T}a)@k?Y;(3H+b=sTJ2KmvZOcx|wr3Y*mt>b^S7cXZiyV&}bB-m)FDEP~GDoO`UdIFQ%9@j qW6Md*NyczNKDmCmLAfP)rFms}<#`o(m3dWp)p;V{J>M hWGvA!=m2b)S$@j|-$`8vA&ll>@*m8i9+|t~#-16Lt+{)al-0EDB=bq=0=b2~D^UAa2`Q+L29C<}~#d +6Tb7X#OzBNA~-wntQrux>veSdQf_JdTe?^dSZHVx+A?fy)?Z%y)wNz-95uI!z;r lBPb(0BQ_%;BQYa6!;w*(QJPVnQJGPl;hyQ4>6Ph|8I&2G8Jn4qnV6ZJ>Bub3EX^#>tjw&=bkFk4^2+ kb3d#!4ip@&MO3X^ma%2@}m1dP^Rc2LZxjQ@^UJf5ekR#j?>qu}UI+77Q7duKF<&H{6wZlEzGutcMCp #!RJUcc!Av-ZUIopw4oL!n-o?V$;o$a3End6n?lM|E^o)ZhLNQ6dEA4;JMl{wW;P4Iyhgy+WQCgdjOC g(bGiy_}~$hJDy9a8mzM1%6e^J4Q7@)GlsA=_fewHz|7&U1$}y&%aTNHG=?Ooa3tkX$LGR+(R&?+$r+ K~_PKQ!HeZ2>Cc5n^MT75;AdzJiH)_Ajl!MFrhH9FuBlCSX@|ISYB9JSWVe@m_#CgyWP|7W%scM*~9I z_5^#PJ=yNC7u!qi<@QQ@wcS0%GsP>#CnYE)JS8?IAtf;-ImMAu0{y8_y5j-8u|Q|Spf6VFN)q&>2s% ;*{iuR&ct9^K(220Z$U= pJZyGZd!F{fBk{8GYFB2%m>wv?n4drDDCNlIBtMM_nQNcBiHr&?0|Qo~XsQ?04C)TC51Qzc&IXXr>Y#0>yc}QZ}Q6x%Z<#n=GteMz!HP>@!6H2jwh;;Iu);oUu#hBWBSo;164*%@ETtm*|I4WL-}EP?{|8V @0|XQR000O8W&uT9TxA0plgt1B0Hy%|8vp=kH6b(jH)J&*m84(jJJ(K3z4$h2@v+B6KqqA?X1W?EVSy %%q22hNmP)z{_#4H3--#O=2cf#V#`~3d>cu05EUC+Ju+_T+tZWrFWR pyx!f8pQ#c3xR!3GTdd&f-UxdP+*4dZhHhCp<+DKKbNRiszw+J*A;1J&!)=@y(p=dE%)>4_}*}o|0*{ @y6MO%Z~oK|JeAS^3lsa5H?Jxv*S5{J)kL6MT}uXKXNbV!60n^|d9uAdL~mDx|^pv`fn6Ut7Agv+}C`zH#5CcB|b)CXx%d7&J2x29PHO&lNy>v0_n_u8) oVMpDL9pBNXo%+n_)2IDE_WAx}(C3GPFYNQr*yrq#i9Sb~eaeyfnNB&PWV-H=)#D!K_!l6X%+AW}RL; R5YYIlEof9`T2UwH#(h%&nQ4UutqnLwHxm}Xi5)gg+14d0C3kv)4&gsoEQ!;a9RwuLh(7(FH^FUp1KN )glRi sZkIPw|(C1{c&mgN0&>*#(;WUxZQ9ADkd-)OcB8lt#Lb2B|5RyZVLiUwjjIBj~LG!m4#_=JvtbI2A;u b$27H@H5N?*_?L!);@=Vuv(-cL)1i|ZU!kX1o|o$PUwz{W%M9b$(`kfNcq|`?3RUD Lg(c2iRfh0qK5efi!;speo0qxpyO?X6L{poQmFaEn?F`?e%n+m*}MA*#v_!Nm`G413;G9zMLj3GhU7? $@CcR>yN|Ut`;jQU^+MBR?wdT#Jd84kIuK(%38FOu!F+~LwC`;p2?dJvP+x)NXO< w!*g&iWa7sApdW0!ld$msuu#43piZeB?KOlN_Qi34m>JmQ8MBJi9Ju$RKOw0sJ7fmrY#vaB#V$Eg0)%0Ohm!^DLL2D98jaeI4BU&Inib!pa<&$tgcj|TNC^wIMUnc*KG4fs8`5N2E6Am=M&2LmU2c?&Jo$$qc~ *mA<8*JIo4xHmY}s0g`y9t9)~X|cM`~Mdtvy5GBTi^HmSEBg67L?Nv4cseU{8tWzNF|zN+;9YGg#JiSXW Ad(WYd_pKpXcn&X)@d{?5hd($hss>J0gy75Xd{wk5iqvr0L7x6)D54jfmfy5x)WB%OKUqwzH3efRM21 -qr}IQ}du;$Pt~{savVp70|5q2j0>(P^Ucot{{qv)QC6Uh~XZu;ljBeh2pT5%b-HeUL*tyfw3;uep-y V@MgGYLctFIZ-gX42t8xY@@&mS6Tk<t}x?K zMREeh^fmCtB6Tg9d68gIwd8SH^EC5dEcxZ+Nu&fD*9I$;^MtT!qAL2{CtS-vT74S1#fRFJo%?%(LaM mv!B^ouuaKCy~Fbm1iXe%;9B5Xhka`yTnL8NNIOwW3he+~D%;vr=hxaOv%SAT>mw6qg(y+_kn$mlLg8WZ6j#L?H*LDoSX7A4kMl*Y0!@=fQ I$37j$mUe9pk%-&ZdMicM;gqWT+?OKUKxkr*Ewai!3h;gKSGYALPOf?)b8Bo^#CP+^D2O2G)@H-L0Fy w9JSeSZ#jbfrN4C6FgEaM`6H#cXEQ<8n7LbSx0QQK#(;-L8&T@8s4oH^^0@vJ&+!*4zdQ6t5)E~jV{j+* Y(FP2ViHxL8jOU4cmB~ub>Xp&;nRot+$%R)3Ep`4x1*kL&d(lamp}pT`HzKczOyfnH4g|gpQgS#|P5> br$;~V=xoNBUfi!CiviD}rIxXxA#1N;g$=mli6o>NXvH0M 81m*9IPfD9`#dS&70+qqptH(yI8x_Rr>ak{xS2~qT^!$1VDf*};=OxX~ia(gwk-0m+NHkJ9K6nZz@FuyaPL95`kXS&p43MobYWErLXAdK5cncG9ssn115n$&*V~ozS7N7oGfEjYf o?ujh)FygA2k)}c6tvaEQ+h5+f!9EEzB3uQ;RY*FFWqXQQ)j;TQaw%I?Q?B(2jj77KLZyxyCHj }1tu<{^Pvh}s9rbPx3E3;_nXxDBQKa8t;w6+mAbv8zai)(!Z_>OdE&Dx*%xL_m6T#D-kU4t*zU1E2yd~Z{qU^GFCpBWAe4`8xl-?q4ZteKhq#Y`$+8 6Ky%a?woXQB96}VU>6-%$gV*RuqJ~vvY^ey4NC1_X!pY{u6DI9U&YN6;U-!1cLBOTd_5T)LLP0@rd!zZnLJk--*Ot<46?<&=%>AS*COH)sa>5hN(Uo1lz8D%%3AF&K6KUbcY3UM<&jI@Hfc2b jH9e!OX3kPWs3)UyUi)4(;w;IL^*4Z+;L2NtC@Va;(2h^^?&kRy)T-uR4FRF2SqQ;-F2CkEPeFlQCt@H)}XDWfyxO{@R;RjGFYg-? fI${?A6#MZk+=n&U(A*+u4!cbkHX_Mm((eAvem*e#VjVbmN3R4fvK>?w@GznCJ9Q {Cm`2{8qhJ80j0^tW_kPUbe1}n&51sSYh^kEm;q88Nk+9yG>2I6(VWFO7iMrZ}OuZPQq+R^idQMM{GSGXJ@2g(hE1~zu=&t &fVgwA2q*lX@d4Qk*uS+<{64-?%nq!^f;0hVnKEa?I()?vkO^QAqs}4<;a}O62#Zxg @7*Z!f<=&YVG*w1QU2GDNgoQkiKY|ztJcxv-dJd)Pfc259B3__xnGre~y)BBm=zJ~lH`Pm;*UgEpUqa`>QFF%PoMQql%wO3MAgqUBD1xLuhgR-z# (;63RRr+w>ZyMo>(@yEx|G{-<---9!{So>rFG&fNfvw8A70t+R*tEEbs5McfRqaHL8ni1T?i*YHT%!$}%#6n@h(-RZ^6d<-X? h0H*+Ko3r5p`yUN6z{b<{y-^jx(|GJk6ya3$TXR@E+7fF0=y#BMUuTlL)X=M2F4>+2@EX3lUlFL#)8n 30);4A4v(a+MK=GH+Q1!Fe-sTMX=TN>u_^@-enkT2{%FVEd)ISk8E~mcbw;Y8cN)A79SgQD@VC}ue;u$3ElCKA{ H%ql+>ZYF8rs?b9>z#qf_zv&}>cU$Kd5XOA*gE@~#O(d7V*H%qbz>KCKs$M?<)*akNOJM4EQaOeT>AY 6&oHBdnvNl>VLTJE!R{8i>nv?bEd1CoADiFj{5uHgc;wCnrkOJ&GxHZ2FNCJiv=_^myo4g$=NGa{Tw^HdnP~GE0LpqmmDp0p~Y S%h1PJ_?7_YNmXoXrbMW*JCsX_9cCHQGWE!y?RW6+R%sG0DX^u=w>By`?4#&Yq&7_OT{$8Q^k+J$NdG7ovLbG%U1RN1O97dEAytdL) K%+*mtua_=penQ)f_MiZ+&PCnGbf$w#GOR4Fp6@>8Xx_40Mpv3(x^#AJo(KJVe~Mav#hTX=)&m3}` RNa4M--7mp2#+4YMz(bU#Jmjj1CO-G&)7p9p<@W>JB6oSTiy*8Cb&*ZL1q$$1_mv06eN5q~oTByaXL? 6g>FjYH}ZXK%fGgKk%mOc>w35auFztle+T|&TjQEz-a)S2NBNmLc1@+X;J(DZib=UqE7u+e+2jHKH!e H47jNJ-@BavJ`Y1pvl#^Opk9c_Uk>89PEWoLJ+M4hUP?PKI9^c)(PzbEZ+bR@K0z+p1N=OnK(9q^51R rxzRc`3?LHSko&=9BeWZr|GT74EL`zx#nHd5=_K(ZRUVLvC?GLiUftqt5RNSyH7laC!A()*R?D`{Q98 p*0qzR$xqci(ypG^ZE&)Ez=&Ojj~(&noQU3^2AEwSaa#${n|G1k Y}bb2C~^$gbw_Wq2v9pyHS)zMv!Kq}aXTB?Mk>K6f%lS)`%-oYsoa%9ZG!an0;fd`|A}Y{OvV&GdBgoc6K@(wJ-y!p@4Ad5!a}#!LzW!L0fK og06rrN0Ihn1UAsYhon0$;=t1@cETf%hr*>=5*2)@cS{*)HE2^X(eK6?O^RO)#_{keBLTof3vd?=&3? o}I8e&M%H_U_Q=%0_;<4###BTinR#hoNc`K15nd>=-wYiWR%K^deSlMZ1i*dD$%ODi_MTw^?Az&IARRW uV-&A_!6zEc|$UDZzsnlB4cIfuXY}RH7ZnBaGau#PIVt>4!wLg2YhO*Y=W2QMzpbO3FKZ%wx7!cbWFk lnBzyk_URQ)#0e3!fLMNZHKPcek7uT@6jiQt5;5dg4bcOQQA{tTy51;wTHyS+K*_bwZGW7-S>=$WWcy !IG#&`+An%~Wx&huOeSTJ;sA{KZ8hZ5+WNMy>gm>AR0jUY&aP^ <t$Y0D^#ABe6`#<}{l7n#j L7=E~&Pvs!(cv`QK^-U1G^ks773bbC?hKQjWTUc1u95wicsCFB{uJF+A*Z75kxXW2$ND)oVetYUrb1s =EzS9~rE@o|-_)`=Eo=2K}~nDMM9m))wDL8-jIerHlF2I0Wh|Ou}pn;fw>C(Sab(K#PHrqS+7QHZB@3 s6`nGA?3n7(nrRI%6&G+U~PCW9O$b6bb1`Xk*_4F4`v8@n|9k#Q{ukCh)dktAxYoYN8;YmSBEa@f_?K LIU51t|Gvx|-s>#FdR%kW07{WxQH7_Up%iadXjFUtLW?p~dkc!M=iaR?+ACPsTc=zB?L3dqtkG~cRCA 9c!~Ie<8KSL#nY*>>Gl*iJaW^wigg^j{y0>48doXQVA;^N$>V3nU0&FT2sGdyWv@5YI68b_0PLXK{L% CAz?g5H?MGBWp+xx{OQ*s0VG52Bbr~ve`bOAcPv2Rd+2u8==1xct)fF=R*!5MK=FxRPmZc%Q6zHfw)t i{xJUoMDAsgTq_I*i_5dpXfQtPW)S^IKYo5!!G2aR5Sz0@}50eTY5Ep7S5LpW85q6lGTx-iyvajw7JB EB2g&dahjLaBoJJp7gztCfjPtb1`%%ba;KL6^qIlp_ZJ3Y89GZ`!DO4_X-9@i7(Ybllj`KLulTwQl}~ dErL~XX#YD&5Y}V-jy5AJe!BSL)$nm4ZVnmMSNfa%{qOm1FS~PtU;d9FR5p-5L5k<})Zzd X<4=AJUew?0<4}jPNCF_UOs9-C--zG>RkL<*B($IPV|0>@8*;szs*pAAL4a4Yb|(j P-A{L4>q1&}8LrN#=!CqM%ReCR`2rwTH@5OPBD=a8~P>wwR-e1pl{*1~;M*b?r*9b48z_7=n?x%_w~I eMg@7=Y%aXE%{uu4SNwWYc+c8aW3gLv$~Hw2F(Yu%bY!1Vxe?e3=xcgpO1)muAr?fwS+Z|A(Jr|xr+6@{1Eb|+?3ypR6y+)` $^pTs)lTM$^FD->gMpED47JR=ZU>cM!MzGpZ2g>0p>kWFS1=ngA$3$r>3+2=uaOlGmSi^cE>!KK|=i~U~4d%( KZr+ywytiGeXhQCt5=wQ%!yD8a(~I0!F+Np0s~I&Ykx*@X6b0xF3RKHp9*hhSb(>?a3s3gr#M(?ZKi# n$q!@Fg{@WIEV~zr|B=Jya!YE6nYod1DAK5RwbC8s7FO-kiO8LzmqkM`t> j1Y@f%O=cGOT9#(i%4&_vJ9KG={uQf*$zZ_-7x1Mdwxl6VxA{QEhIy0OA@5B~=gLN%Tyxki+dg9jXJC d(^Z2YSoea92;_!L1l*#zuef*pI!3dJw)f2z8*HU?iS`LV^DQmY_ u?M?~r7F{nCgm12mZ4m&#!{4FYL`9qydU)x)Ykm0S>5f5y@k~`e4QLa?8|R&$QQ#AVhH)MHB_oaUj@n 5&@%OCk9y>sy4xylIGL=MKtrL2pb;t6(2LaA9A%~&>#t0KE+=B&L)ES%F+3b_q@zIq))~4Hdg-s{`C+ xQ{H#&j(B5Cq!naZMcCx=d$}E`%B}H8nHylk{>X6tz-3|$T+-JqG9h&u{#bFbQJNDk0hCQ%#Bj~?XHp 2Z6v|s;#EQ;Y5N$03b>RY&2^-dMT%Xvc(?|>pJsfg1o;_WTsf+7R-E cB10BFScv3@RdqQ+Q|np_uCeP<(kgVwgvB1@WkJ2dE^lQ_&^A49&%_mhf@xha!eUN`(y#);aIw;P*9DbX6M0U=>=nRXNlTB70G$nYa-k)m`#OQH^zo-Mq?zQ95r({Z -pcKo@-qxOF3o>*K${Mrc1M5$B$J1PGfg}iyq2s@M(~m_I-*{)2PE&qxXyb8*B rQ*P9{Bdk8Is7!S0{Xo#(ZL9R!;iZ+PitQskz&GAQUDw5WT^5Kc?Q&y0qdJ>T 5anrDk>udL}gRD9`Q0x`unqI^@!$<`6g|yHSiqHE2|M5seCs@*v;3;A4!y1>G4Vxwxn~uNC4)GN!E0` En5OuZvt<*&bgs-|0(T4w>I4S0tEkG4?n`2jyIWh8mCKXTx--S!Qi-VcvcpJYA LPGDTzaSWCoN?B|IS6w+n-`nN>?oas47C&R5gIQivv!8{pmws8lR{fH1NDQg+2tc06P>PYlW}*BqS rcki>@qtTx~y!_Yo~wn2-QBmOEhc3h)vhXj+8RvgB>gTCAaZ!4)X^S`FPM!q{}rbNvu$oysKGO^t+t{ X40(>_4Sd_OxYvAw~_+`kuta3NNF(GQ_sP(@ToT93veU-bKpsCx$^{<3hpSc$P_Fr8bArL4MQZ_RQy# yf7|X`q5RTh-4+-6pYZa#5{Z)FemI<-k!7CB#jGtu<%u(C-qq4SDzoU?oPASTUv_|K4T3KW%;&o8QCD @6IIp4o@&aSicCM^wx+!aRQuTMJ75TbV_1HJvl=Zh!rwD_{EBU)5CPJ;!pH2Tdb%gxn!PL@gyGmcisz }yYoS@;$_M&5-Wzm1056wSW-Z(ccQBc`kE_Vnay(|!TjFlNjOR3hA&f>W{8^wU|Q%LB>Xa~c2B2|b;f Xu`ozt-IMefD5#kG@CSf20P@Hd{#CWE?LC{E_kUF+tw0y|sPdyA8iO&eIE6Cwh^mQis_E#JhD@c|OAB 1I-Mc=5;(es~u6E;?l^W_dvt`y(xFGuID)w-UbwgFh1Y}8A5^jPon8mkVVO^u-T<;}?~5yQ)X-AnCT^ 2G|joe#w+s%h|8jKRZnr~?mjEDLk{011;%lM){?0ay%px(J|DZmJ}e#lO~9IVbbcU{M)To**E*8Ax2% tbP2r3E|5A&_)T-4SR9K-z-NLG)vTRY&Oh5gTE4=i~Tlz{UbQr>W+LW!cK(^F>)8IowPX#2Ly2XVlUB JJ}f>z6glZ5gdMB5uYZ)INrjCT_ers$1`^gkWv2d)Frh@bU+r8fR;&V1WqruZ+K1&<@Rx8M3& #%_`q=$iY(-(pr;wTL7s6bPN2Wmun}sLv+87y36)S4LmP04kBcN8;ck~mTbJI)ZRW4|a^*598t@dW)p thk+>5R-3vo&x(u*Wg!?DC2X5rMY^gw{!l0Xja$;ZqI6)TQ*10jgs>%paP6i05-t&yAJlN?)PgY7kF7j4eZS|Fa@Z0qd$#xtKV+)8EuntBYtb;%Nl~{4^9Ll6sAoK}}GuI|o=t!`Q?XX QMZLve}5*kqK^TtAwiHE<(YXH1m(&jg40cUn$lakk1eRX-m0)(+>w^oEfL=per@#cVv67nN!VI4l;fI d|3U_&Q?lvZva-!Yd=5;vWfi`t=9wc-BkFQ~f14na>IR#@p{yG=Kq>L5nReSrAwF#zw+l^-ob&`0pAuuZ_n g|RPrqE#7G<%uUoSA33?LhlDdmMPf>&CCx1+g#z#>hNWCK#jD}K=RXKjfHG01`f7OLz)<>GQGC|;~@i &ZO}E?)=Awsl@ai154ow(`fSp>srEmoAxF)Ftr!CCWvqTsX5A9&K+40ZO)ztjNquDYG4TBdAK^5&NDE i59!pv?x`!>|@h4f(T)=i7cTxMZ8whfJ0)45w42(w8M-vFt`^OllM_|tHAfAkq7H(g06~d~Fyb}m*5)-NHVq+}4I2CZ5Q53_Rek {T1y&M4(MDKFF?nKx#n#o8^j`CYLS7NjAEV-(qpB&k?Zb8id{fv*+T>#2&J(qo&@>kcw=%*^j4GS7&y -$P~<@?hu<%{Tb^XyR4H*QXM%3cey?jmn34$|H~xl|20AUJD0Wte8c<(I6zy0@2#Q;CIGJuBPTErZRR AkM<<>{KU`%iIYPbG;J{4rpP4Fnx^hHh(Vy$Aey!rCo{TAZl<(@xUJb)?9vz8Met&S*GQZY_Gu6#Ggz $1-#8<(ceG$i>@~Dy!9z5yjN0`d{MV{CpbSsJ^Vz5(81DJ+kU6uE2S_Rt4EHohnUb`0IMAP) EEaz0jz3q}^$i@*7k9G%+#I7SqlUt=GQtP1$juFyAfG&%~yQ4vws*z+na81 idugN)0a#9n-_gdBZ)1$Ra*T1u64F6Vv4Gu-#IODXUdv_v==fd^1-?$xuQDs0lO`YTvKtWQEka) x7mGcJGY{TO8`;GI*WQU9?UOzlze0J1t`YuPJ^^uIqEM#R~oX*A{8z1vAUclJaN=+eB?64!zkBWSVJN oI;;9Q7{j$O3{3e+Bs~w6Pk%m^XO?3zV(Mz0C_KJ!>GlH{-6|8&1i|~FZ<3G?k`)${b e%(Y$R3frnVEqL8@QuNH=o-Nf-JQ`H9&Mg0VH--E Q<6Oh1}RZE#$5Uf|Q>zWyyi;Grk8`-YzAezp62Xkde*^IW{76-w$Ks@>; 8gVD*t)8P2T%wzd>ePbei1>iMxU^-9Ezpt*ZzRsgz9N!)>cMD<@JFNxKynm2&VpK831%p5s8)8KTX3~ qt(Jf47dH|UEd)Q%KF26BHvh4`ij-x3??Q)dH$_?#2YNV)elp8U6?hw#mz1wilev|LNBLa8t_JCyT9% m+QrNlc%qN6xc7H!g%fZnU^k^9qpd5bbV;*Xve_%YSE-1(W~lu5bsEXsKC-CXfq+2ZY5?#|i`ZQe8r0 4htd2W%e(vUY^NMU5mkBlLkBz3qziJpmgg|5d$(uQ44vaW^}`V!&RpD??)F8Y>o%#bj}m-F)CX J#IO0n{ys8?nNi?M%(A?S918l`9P>;jQB7kBaDYR)&yI8V!uGt9m*z!&>~ur5j6X=u$9ao(o6P!(an!(9g~Y STG%(P{M-*u{zvOxb!5prO`D*QvGS7$i78MBL|PzE2yaDk}0zkjWxmyc~_~(46P76^+dBRQLrf9E^@t zY>HtqhDx%nH2Eu!2Mr~P9g+Cn_+AJ5d}Ak;j{47?syhhi-jNbZ9)nFlkjZ@p3)ZBBaWxK@J!DcaXdy 3X%WZ6_<;U^jjtL8`p~Oq9nZMsqHW?j-wao=6seHQzHb4NsDHse#{BZLh#Joff+A~t!$wZ4tgw_!rvj *5ctC%`>>;3Wt*ID>JQGWl$xxy}KLne(RYRzqIHdFswfKx2oxm9GJYX@h*b@NUyXki_^9?vSYet`E4jyjPa=2GzL__{X3BC~Rrg&Uu3L `};*7rtg(_?q4KH7d=Ms*-3YxjXR+rMy{fD9E|cp9V@;Wpza-(Y{&E-lS>|#(n}4mZJdOW|ZMI6?NpP _X`qbn~XM}rC%S&?C|dF16uq&B+|8KUM1p#jg(W8RDY25AffzQb4d| 2Zpl3Bc^6A*wG|0@wgz^{?SMBpnR35F5n~54^?bdekv{@GZx{1GHGul7-GY%g3@ill?5wPOn>Ux|8gz J0}!GZ;}FcywJJ#Q1AXvZn!UwPBplz}o6$wLXp;?NdgIrZ62ln~fVXP=w`%4zVR?74|9sJp;pEjDHo- 2sw_ZN`<7u>O=F8xZvFRj!jG1JH1PEg*U!WR4EN%U{q+qTY=6f8 PiY}r;>?vEi|O>cn&a)OWjVqkCVkcoO{DU{st#Jea8m7~(9KIjq}Bn(j&8p?4P_*7 qxif%!Dc?W($g^{gP0SPLXn(79TT&8joYbO2`I^=_Rld>ZltGQwm>JM}+7iF}F$_Gy4*Zu)A|5{$7bl ^qmN*}ll_lLg%BAni%VGxPoKJ;svcGQRDsBGELi2Pz~dOT6dVd)>x-E7TK3E=Nk ;8uTX8yEA9_%iAX*#3xN{;gO=y&U!iNzfTP?ET&CsaN4HXHVvQ%W^skSYYrOB5)WQ`Qjk{e-L)PU!@X N#+^Ao*fI%i7kVAIc$f;HnV^c1gI>}?b){z$W0*s481fG=oOpB^lPt`^tL1>I)h@iR=6>eJYlK-GjtceAn*OuVFI=gVyMgXqL?G$Gg?-p@);Tyozq6-U{XDnKhk(cjo~e6|{U;x%L6MOS2X>ggnyaJC<)b~ODcUMTs!+xTsDIQV^-@cTPS7O 2Jfil+YzzO>bJ9YYAOIAlI}zaJTKbkrkMWa?u0()(X-0P0kR-QlIf>Ca)?Tm96Th)&2&QgoKpa6bm=7 r2`C@%O;P)Qk&!+5D`P9q_R(?&5fDe~ieP+W%`5a4S#>ZE&1D$w|7ea_rY9@tRvP{2@``bj^WIh7(^V sXZS2B38V?b89I#jdD9px50Lq?z~_cS2WeH>3H8GdwWVtviOCJDEZn$^6L>pG~VP+) R_yAfip_c#2bKrd*y}$kva@%i0j-Xdl-V3sCaMkogahIOH)ND<;29c!p)O#O C#2lw3{|8kAx)C~JplCGxS_SYA)!E*IEaf3Q+uR=z-Y7?X=DHlhvU^+44a^(Oa2Y4)Zl{ptD`m)bd`^ i&SInaDQC@l`t$H0&Z@H@W=yEV9Hq4($`-mx||OpIzE(Xc%bcBvh<8iMH!IY}$~=kkneZf`$nW@|+E& t5bivk8o)|*#OR=4p~t}BHpC+#{um32HWVm)%kB>hdc4Yy^orqizd|62Gfb@q*^RU_YM|EZg~GBc`*Y 0`6-TiRpwFXXCkz4>`hd&@VbScH{GnXLZW#V{IWtO Dw~TeOrHHtWV_FHRKtCi0{cpsejMZ{+>zMZVnt%(>(WKa=gFvx7CMQl+yvFGm?*)Y5%Ib=LB;XJAT8z e2NAetzY@GjmW1Dw@f!5y*~TL5SB_V?Tyl`zbd5JfQ-r`kjC020KI+9^n2s-p!qBhE&C4fX35|YNsC| 98rey*TZ~1MyXRvfSg!BVMOH6mcX9lKHCqSH?N|?`v?9PG@QELyNp=+n{CLL{`w;4K`uJWL;veu=bKC YW_sfu%a5<+i;TniB|P&uzQ-D2J+83P?aUw-khF$Yo5!tW)Ym|*;em~8XC!?SzImIM`eAeRlhxZhjN* oAhLGZml-l6wIw7Tg+GKp2?yD>@8YJ-9(aYA4S~h1aQq#Nsi9q0GB;Pc+Wy7Nf;dcp@+uL`JBG7V)he)T91O6`8ZqTGvL&QSjVOUpFe _y2@;kY6tP8i?#GP?encWVTiP$_!mSF;BK#QxjnJOuTVPTH{AC%2nxi8t#^#aO>csDCGImjD~=*HK1; Bdb?Lu_}P&FJ0!EI1q9y|uYnf{PVx3ADP=*gvn&=SBI(OS9}s7GM@tpPC68!QYrX}NF8V;AdFKU$M5A p}h_fh@ob$&Q2xhPNF6@JAym&KuGB%m7r>LE_kOQAV>koS40j!fvFl*0Kz-XGDPQ~R0ySIlfK&YE18C &G?Zj9|0pO;ZkN-sHwRbTiCl5N~mh@U)6@$p2MVj_n9JMPl+u&KWUzLawUuhLU@;LiYP*Z(u2c#H=DJ QF>_bD%ON40jem@jDZ W?-LZ?02F5=?-?`<{O76oPQN^K5C^7l3=Nw>3=cr3It)KEE(PXGJr2z8qJ4qcp~r#wR`Pxu+SvDA1Jn C7;e~gxPp=W3Y0)0Q3ofG%*zgF*J1UZ95uSNiF8T&&(Smb=>Cg*prL|EIm`f|zh9Rehl4LYcn0NQ!Rg ~uK2ngOC#y3uJQ%FaX1LIImtU%!D@Rf< l-+xINVo}|wo!?=9)W#?L~_M}p;{iiZvvz%ygy^R_E8nNoc4d5g7&L>naky3>S^|UESA#_OK^up`@~A |j1nHb(<<0f(X|@2@Lc9iJ*SEFax|?BRQ)8h;6&3Ja~QD40ke?r!u=khc6!xOun6tE3mSy3HC#yY>aKL6fU`MVXhh Dw~3$iPtE!qjhaKXPk;?Y?-->iXX0|thBn0ZZrKL1)ugTaa96DYo(6h$y}ok&cr4Q0m7u7iwrfuxZ-9 CHo&?Z}(eARHR}D=vInysH`K7do)dlYuhW69my6t*;ATs~FpeJeL-yzgX*Y?plBUIAW%Pq=+i()YMgE %r6H3r*3pe>)F&Gy?KQgoeBc>vv+0yFek?}miA`pu6onXCWvodg*UZX0xK+nN&&!0I|4Y`rXTA;IVIi w4%CGilKKIbD$Ou{ga3oiH!DtsvrWNnAvb6RuuyC0;Jz`QJJz{rb>ZWq{33mp53oA1PmCVJQ_R#Xf8c7Z}|%Wjm%>2`s4;b$Zl LS^J0O1yAumo`@e};)BHKrT@gE4XCP_WqDYXmsAlsu1l32d8uxOUOqa|qDBN sIW$Lt9d)d6vI(N#sVQ?|`;wo5iqNfY0dY-($p{7TT)7|hugU`?D|Sl%@62`^+4z_AT4AdX-#M;|wyi (_m8MIh3)u(RxxKisrB6_pFvgEygBh0zs|c)u2_Gk;VAPs2a1^nkYcI)3!$wr`fC9 QkyLNP)KFWHL0yJpQn$DgxD0r_81T5n6OrS#w{0-#+Ux%SmN_FsE^2G9c@C)D#GSaj6l;uZ8dNIObJ} b2m2|ED&IBHOkz=&iSd?Lrr=9IJF0q0;ix;@m&wJ#EEixkmcs}H*tzWB+R^a;YP%y`JTJqb801&0W*7 b+p;Ez-gfor@(_2^*pi4p;WKuGegh@y=<3nh!J$6;$vvp^@TAk%1!6ga~tRuA*Btx)~Ohw#imzejEI0 0gmHVWshQ$1!S8k8%b5dP_b2-U;ZVcuNcEFioJtq}A%luz%ichH*+xk1{l8FWbfM#(GMi-xd-pzNTZL 8Ll#u>uj`?R+teM!dJJ!0;PA5h){vx 4Ni}7I@^Sm8?y95-tBSlK|B%cs9}SS9Bzpo+-0?Tp$&8CJRDjx-)L~q-FgTJhV^GcrNq+R(ScZT&SKx XCL&^qg;nCtNu#&jLOj)UN{LeP}CyVbUUYxR$6~Ma$g0_)|^yFZ4)V;evP+L>r%zSRjb0LSg;i-) D@@MHHlh6q0&8fHns*dS&Q5r=viN2Z$!YLXvo#MOXP8SjN!6?J3tuD3N)o*%+`iQg7om+kH(FP*qqN9 !3eFA%kDbJIOY9!Xu;BQ5BHnQMLr02u5;wHn$F(SFz)Ta1mk8Q>4Y7Jmlm2bk6*Rck4PEmb@`*{ReXE 2)nuhoVTs4*Pskyj{>mO*^0r9g v=$&3Yw=ek_=V*ow4%nixTLM1M>@!8#oq)dlymmd{e3@q3{5rZpFD&0T4t~c8WND*?ELskfbEm2P)=+ 2Wdpuf{2CtD1he}|H#dqEF9>8~ufQu!rON*CI+D80kZcD6(Yr1F=)w+Pr7ydmzv6`QP`m&%kOvJYcZL rtg_S9ZdbR_yQ43W%u}Yp)2KvLbed^qdbw)v*VZC*Dg)XRyb#9I?OE6mai4PUew8><(H{8Z*Zt18*55 A(gpMW@0xeD*;tCPLW;*Wn|C#&k7Re;d8FQD~KYz7BiCRW^l4z*?HtzyOVR*Yp<(xtLnQqZ)L?X>HTv PId>?m*F&06T;~h-RyoBYuqniD$#=GgOgG`IzZiSI`#zzLC-8>wc87FUSHODw&b^H#H7gy0!ao#hZC=bH8x}G+SzJrpL;bqUvOHoG qD#yfIUgMuv>6_e7_XfO&LaCS?a@5;W^ejLa$rKp28QQ&z1pzam)i^!S!+WfBU?EoE0jO+jZ?~0&FvKDD55e?7)kXEJ{n?=aUFkq5VA P85+NR~cCzRZ25tJ{*cT=Z{n<^~$MmO<1v=y-)@8MRr8?g|yYE*k`q0ORN+18>jxNthW&{ZYiwR+aNY QP#>d`>XcH#tu|YYSbHdNa0^)uIoA`RO=d&QQ@_jpSMXmqGT#EGg^I9?i$L7qWU3|8n-yFZ~4h?<;Qo A<_f9NZoC?TYpHuxN%|&&|Cm_8#LyvV+&gGzWE;-#_cAs`Ql3re%qIkRoQavf6yy8pZ;AJXsJh0#zt3x4yl&;3?3 ?u?dRjcKc17>+ZvkE}6rV%kM!)K^c%8gq&3nb#`VV}yx6nziIAOrrvESC $4qR`gb#{0>)0)GhORBLMC*@9^d32fFL1@Ad8yvbSS$QI~2UZ@j%0JwzfI+Lei BV|aT(&OzjjzlA67)F+Q1Z+wwZ;AoI_1n7F7sY{QbedbG$1-_g&gV{S^Lk2x`!Ox?tPAc!D0Lhp6wMv I;Pu v@ze1xE8Yav*}hN@k2e~y{m(lvpEG=7YvLY$X^rVm!jpb*=cOo!l)(OYAE*b!Do;D_d8hsA7Z+1;W6F UOKbXsboZxU3)zYh-2*YAdjQY*$F15KG{m$&yXXH9&VAW<&Bs@Cam=8s+R50Q$K ljnz`JKr;nEZ! kQ2ABn_vdE%4)c4B`K_2i=VP#E=uqukB>rS6snI-iToNnL`I7?9KN8G<^Klk4;CvK4%vKZ%Hs5FI8*H 9#F@w$jjARjmtj%C^JcGL~9%nvI+>AkbU!^V`_{#=BACwF*#5~q+V#hIbi;dc|g=4`lv!S_8@SFuXCh#GC=b|nQCgpXZF=t;t9`8pSK#3}h&^~WQXkS6G$v%p |ezgV<6uQv<6`fl~J{tshJU)9lb7@<`ZNT_m$_eDqUuFIAI6RN>n^Zot@$zcHsBSYYmk&~Th2{E09QX+_HV+C+$>A B_OJsa2l8JZ9BC+Bo{08ERzg#s1Nb1%24Kx%l0-v%1wk3W8I}=g$LDq^`D~a#!Aa=Q#CGsZg}*}WDsn8EMF6csQ-yB~@-Gs2AQM(GUWxdWJ??zDHb=ptV2NP*nY3J>I-7n{H<&REZR-c;;c{$PpWR9QzJ1Sr&gbBN)+FhBH8reT-wqaKd53#^_4Mx)#Tf5=wCTwfdXEx!#yZ`R$@-MNKl8r)&Q lB())^{4yTiQ=QKz`(LPJI$pP5Ra8;aF^?eYS9h#-D`0OxJ9tGYb;HuUgy{7vKMSLwvn7RN0D_SN)XYmYU1>>Ocl)xnCX7 o`DHrB%Kf@!IaJX6r1dwVGlLnTo0-<7<@+IrCojGCtr6@;$DB92FxaVuRTSlUjyXdGhNx~u{h>&ui2j aISs^s?S6jMN8UOV@mJ}I_!_5QX^`SIq58G?lztbVPw98zeCnaAoljjEhpOi`@^|1+*%=NMo4W{n?vj u57`bu-$Yknk9dM`;UvmrTrANERp<37(hw4O;zpo4p| 5D|0)guKGLAsCvmF9ejZhT~V~-la7eT1P$`FugXRyXp)1<{6$6QnCd7ZxOC;H<1p(Na0p2?>J$sCiam 8<{2=_XE-I32;J3FRprF{ye{Osa`0CRM#UMVO=EQ-r>;%*youB3VHTMcYz 56)`AlH=Aw5M5#ztO^dMS@xqCkBt{9{Vp+{&GY*br6+wN&VgG%2jK>_`M_(3-4>58~tKq}C#HD _!fvVtCCc3Fe(P?N()R4sqFc{BP@u_Sb@TsyXKGh9FRD7x+ber!1r%IA8H?3{!j7&u_2UK_}sTsSch3 (L(gr?uCGnn``4?0z?8=Wdp!)G!u?ed^gJ;P@+nRGVuvNt*vE|$8{sebW6FqJ>L1jtgBa?I7*ofvpNj !~}&Q1$ZVP5@PG9)pd+I}~!NDh~%XtJfet6~3krwGihun7wznmU$4W=1|+_puf1R?EtEd40ca(iv1~I iqQ+CDgb6W0WcEJr!$>R?Lexiho-k<+fRD_dyuMnAW~IAn|^j1!W-GU0;*~^`7v}k`SCTWv!4$r7?20 5N>HJy%;kRp`KM4-Vh?kCjK0j*4O3;Vh-v!eq8q2`CXQ3}2$W$$D}$-h&u&HEI-pd&{h@pMqc6+#MyV 3KP^v!L(H%ZPCQR5a`LVVTTg9gDFLXkyTG({qLMODUg$ %9AO3|vUZnP>o59$i7icV%emZ!DSS&#>-SGKVk5LhZdv1$>8tGdMlSH&Z{;2dt^VtW~Pf`L%c#|Blns(Bo) sZ#4|U>ZIn^Agp$3t^i^6n5G?s)do# F2&=m_?I5hMb!rb`wMgRyVKrByLRjGF7&De6uoK=MX#Dp(W{IMy=oFguZmNltM a`kJYTVtu|Y*BiV}U4%Zlgil8QS(SG8iUl^+uQVbm7joZ1=1YM&R1RodDsqFBifyx<p=SGwH6<}*6#}H_}slf(TI-X)ArT)w0(_ukUooA9aH0)VU~`XCBpU)R;X7ZS=Y{n}O4iT)J|E*Jl@TT(Cn{>9~1PNZ}hG5vy 2!jBtk}H*Vzl!O)!B<%c!q1jw7VSLb90c24#_AB$4wmF)M_WOJD41JO-pdc>?ozbjOrFUOp4{w#p`@m 4{pYk&WbJqb#YrC?b5AzlY(H&C6WM->S|v!w=o35g7e}yr#b+ZBg ~BR9mwE(k)3fO8QGvm?(e=#9^yXRI3Hjw&s9tpqz3557FWunL&J?l(rU!vV<;Myzn)<@IZz;eF5b as3s})N9?Q_QBSg^3(w-uZRa49#8&@t##D2OnWCB3JqyeVyH }dJB9#@d~}QH4K58-j^T6Hmo#ZYL#6hjuEoX(7eF2=Ev&k#Z`1gALf!i!YpS~MvMCI_MuVB+PqSnuLn5ZZ!-Jgy1+!wSWD7V~DNgt9935S@=vzd=N;G0_5UD2-Q;7 Y`ex8dG2zes4!nKW4JMa5@Qr1PB0oQbIgPRNomm3i-D7U3}|G0aMzlEzf_9fT?Q0zpe7zP^=spb(TDT${KV#JiLiqtxXOGd*~gclbh rVc^UbLvne0aJYX_ZX6WD0+&!69d>pEJZ-Y0;UgjF;#!Sqr{(M(-hBOT& 4YzEoWKI+D`WTAjYU1-QMjH1tv$iPC+c)=H~St59+QgI)7o$)x)Tsg~Zv?IEYWwv=uY5q|NsWYQ)uRJ BV``#!4u0BQ#_Z9G=$x~pW;Z@u*JPMs^KWKxxv-aV){w`9`&UV3V+LT}zzNzJ6+;{SAlWl|a{X-Zsym{F2N3pzq2&6lPR+ZY^GSD1layn$Rg^}1Tj6F>RJ T`0nX{`MjsS;U570A@KfgJg=knV24qgYt#Gnhm~X)z0s{8;S4g)JEd5Ke9#wA~EO>;9GG5y=C>jtP4k lr-{(;CSqHiyNM|BG!ZL?(mraI+C=!C1dp7%z|)i$Sp!kL5?3~d8(*YFK7!QxO*`0K6Tw>0jt?@wR?b ?7zr2d)T$p#CzKYpMXg_#`H;xe!HX~U&Ymr(_r8bn}ub}3dYBd_(#|Ky|eeiZ>+>gZxL!Du9)#X1LcM jEWu7=r*B*S<}Nurn_0ULZP0tBU2zcUU^j>;cdXz$RwqXjTEmbHijVD|8evAE43`osS{oKK^j9tUSA# D$Z|xE9DJec9Ip^V%T#6({s?`hio|S*nj?L%bQHvs6xr!swY4e}2#2h1Qgs;)I1_3r6|+vct|n;XsheUDXH4lKCPIeXpnnJE3Ie^ e0;#ALdv3r3do*q6kSEg>M7QOX{isLtK-u4P3l;|phj8mn;R*r|eIxo=N~5B{rvI-!eoWU#*)@MA`eP 0-(NElgz2DSF-%#(_W7GD@LB9<<2~I`h)9AkX5Znl_oO)^-U9iHOB~D*KI!#}TqH`y9DP5goy^T}rEU bOF)sDZxLc-aig+i7U53ZkAislGa;b(<};|>9Vl!m{@Y7itp-dd$?_V_D!&D@qyAU8~C<Ck`$t1qK9NjeE#u|W*y53~$(wz#<;uv3i}VooBB6^>t|BO!Cu EKS@Yd^I+jcDhPL&s1y_VA3ki!3sX>fV+1zQ6H#tbOu9HIyTC8kBvT<$DY5%%ezk%;bE1ZY5)1`JdD~ wR}fV_G*7MM-j8oWf#*`J3I5J2M`#`N80x2o!i|a<}Upz-KjmK-wT@w9W2HY;ob4ioF4 sH40e6BFnm4-?X=$}Fm|n=BY!2rcOE~rr9?E(#TAH?mblN9h=pE!!(2k|>c^`ZyXInhvk>wT1}VFlY= O?Olfv#e9-KAdv{i40avIbhLbIIv0JzA_>Q$Qdw>#bR)DRi8F!s?4tdSf`u(9->9R#{1864Z`sq&dOXgcFWH=-hqxSrZx@dXoa<@|x(Rg!dg^ VF*%jH3@7yK%3c7~oiNQ?o{giK00Df%V_UY3qB{0zj4sx}QfWJ0D`yiGYIn&69-E=- <)x?8Vb3qHtyf6ID9z_L``grDj(@W6MFEsDmI01o@*04^SFizDZKEl$>F%bXJ?*rtdvAg^Hu`zhU@aK m1Q$dfw#KGAR9=L$1P$6diD=_6NwN&3*`BYh$r+(YmpN7{j5H4tUIe>~lkP%TcHimR^T$f*R8 L9dyLcPqqEQ}GW 4AFK%BBkw1S#&EwY|!AU2Uvit(D5@~vr&Igl>W+~}_ASI{NGQ`-VdOT4a%fN$^Ws~%=nYCp3v$4@nYN QvI$|W3v(V~?O4y#G1aVF9e+QzbGaT55UdJ2hX8Qi6Zm>?yhua~FJ$wF3;wQ8dDCcU)eb%)9#X%FJQY MT<#Cz+n)9)>3dzjzoD65sSYx}#U8L`lwkCGm>A^)wdbh!WOv1M-LQSQYv@1r#|9<*%THY8KbAcje@-7)XM?4Bw6eNf8I 2jAWLqt^4WCcZoB^TxD#-WK;ZK{jQ|Cscq0XIr~Ey%!0|de9dNeyC+?2`Vdov@o^5OVMD7V$DZaPM6} @rkmc!gI;KXg7c+HDMP#Z~kaGRKy>P=3Qm_9_8;vbXlpjl!zU*&Ile%u6$P(tfu?Z2cATu!5rnh}*2$ rk^;8v(g^{Y#YIUpxo$8WT4#6g#DV^YEo>rc6~SWfEIj3Dy{TRN`>#ow&&BnL~IvmEA#e)iek+gV3GFIr+py;cn=RFFs(Q{Qr89r`OX@sd=A8{!;~GSDLb# G?5I$w4U}q|MxUpP1aA1IH86TLt-=YHI>s{6F%pjB))gb=&A_qPI iwK@32bReYD|}^zuV%p-uS=DjTkb>XoLYisF6^*tm#c|Hhl78eFu_NRk??FuZ^~r!s=40?iVX*$E3wS {2VdZCo^tgprVbmj;(Gd*vkfI78?qX122F{0o@qcLm1Ouyvl&^KH%$`HM~Ju@u*|@Ko;14pxq{HuYB~ek)WATWKAYIV!I;$@)r|U3 >0Zk6J&)hqZO+@K% wv(bUUiZ!eAQy&QLCFE#qIy@Yugz`Y!YiVH=|OMF*I{;{Z?mtTNVk`b3_*^lWK-%+2pB;mb1dMCRoH7 bgtXPNc8jFB(2vUH4rw*^IR|dFxLPL%Fe e%{C1X@8X+PCpdi1!k}^_p7!u7fV4kTn~RC%0A3)rsw5UG3k*kV5wShOHP L(g>46vR|OJaDNwA=PITJ%s1Ix7>Yu3LhOxO%FcSK*>uEdT#u;t87D2%WR ;jlLJH-^2+Qx*qP)f{}qgdtDBxDlfv30fuMqiJkX(gUwXK2LEG4mA}+6VvX^1^HAq+tmSi -T9dyRlvA~Ow;eu-ZC5~GVZ4mJnt>AhZ5>LzumCuANHx!{e0ovr^1VP#zfTTY}ybCwV~{UxM*vD^KX{ jN*n#Hv%E>z&HWNV3Qd;k@F{Jp?_uHG2}|5@%dihbS&&j%!QGs)7IB79^L;4rlYk$~`60mfWo%$si*t `qW!6CDg8$p-|Cj0im+1c&>Hin#|L5udt^18>Uf0@EuqGRY%G=>{3NTwtfktv~88(vd!FXOL-JTJrBu i(Lq}Iwb7*?+vX_h{)NHr$qurWTKVpQP6!OeJ?8G6^4eM()z{;G7%8XxJTS+cE?&LO;JfFNniQik^2? {VV9Zh8(lVUp@`2dVTc1{tdCQzA|p5kyJmTaWmxlVx`^TMf{cSFgK+J)2`W_X~9JK91S5s;r|!g_83) iCZ~Rs50q=gqoGUczUI@u~|O#7L;sEBR=?I#HF@vwE^|@_%?#vob6ti3all6{xgmkYD3XZ1&bYBK!ga I**Xrrnwel^mCQ;{t2xOK+`d8|9nuCOWOy>z1hR1+~zGr-STXA8JXcTRBlpbfDnQD4O;!-sEY=#S!f1@fvBZubTcW6> doEsiuE_sLLnrGi-DUykq0uVpSqe8F3vE+)R;@?08C&F5n!c2r^JTaE*(hoj}EMh48AKOOpdxsYDzG_ s~pM&1x>0gkd`ULsJi3y7{5ir )57u&^sOvvH;)k+`JbxOp7h2|iaHwPKKIY4| MyG6P!)FKr{TBNV(`!L>h%!qX?wnH78U!vAAA~|#8lq9Js8P5=3C~tB4Lv@kt+H<$tA^V|*3^+k05Go 4RksVX9jx_Q*au}kpZi&0_*IN@BSEfU~h;rA9aovf?n|s_M5{t$DC%1SU&vc82-b*~_(lA)8NR|%JRp DgcYT5QCu9F;5>x^`iu9|X*(M@Ies#aXjfm(?#cN|k9DyQPf>~?~1FO)Q%4u)|9l)HW5-&5`x?s7Mp@ K$Q8{MH>fczS}CCzRu(yxfgg?y*cT%P1ft)OITtFk6XEYNI8b&PzDO>sWvr_BW&bGNY&cw?dZ^b6kJV lWc=e=g4fS2@tPG_?w^&+CUin(g(0wYJ8w~kU*nU_TewDwA5(D5T>Q2I$DHlscG_a&S8wN7!HHpK!F- k$d+bAbHU-Z4rVnJuLZ)O0pKwEZ>X8Wero)@@LUWqx}Js}TBX!L9EBN#N>ig1VO%70U^D8rQd}2PvlT I2K7_yqHzDG^w||?2k_(7R;&_9eG}A|F1ND*SK%-DngUvid;|HOn32p2)()O~`B4C*(czKr@TVoDwAHd`rb%uALM8AGs?v{HbSQj8=+lG)QnquU|<@NKgA)^#i(K {=$B5iKC0w8_V-kZ1vcp4MGRY5}Eq3aGS6hj~gfPU9({09HW6D~PKsA9G+Urnnh=#sY#N=bTW~g^UYl !I*T`$}s0gw0Me?4(X-k12ujnD<3F}V((&N<_0AO#^lO+#>C71jIqm?Z(&a?$UooWeqBM98INx(%bznITMxN`@z}n|2X1jcz98>rJT ^b_HpXK&BX40m_DAw&#$%r(S1=x18+i@m@rh>H&UicvCucLhklly61Le0Ej}OAg+Zm4!)XC2= 9`D4;k21a(`HhUnQ|EFq<2NBMGX7EIa~YqD{6fZWMLvb`+mSaj9%n{!Jmc{;oji*1csortFuno#aK>* zUdMPmb17e1!15XSX2#3Nf5Z4@4bt#CevBWb kafR5vG&EbTUAvis{_w4vn@gDE(e-OC(qv$Sg)Mrv}jJ#dLg`PBiG~n9kWW*2sWP+r3ohG}DO(ou8S` 5vF4Vo$r~>n@mRlokphfBGbtQoij}55vF4Yoo|>aHiY+>yw5ow#wXy_0^wW@PLrK~+2olH&#VgXkyG-OqR%P0(5 hegJ`93qO5q?P`<(Au_NvootM3V+v{|9UptyaO^8I41OD_z73ExR&e_SCk9Y&5 M@Rr0w+WI7#2mVDr2655a( +g*VMEj??ph^Ty$7pWn9Ms-`%92>AmlD?^@VG!_kywdNr;+WF!{lz}YV R54T<7)TG;pbt7>M~lZh7ZEw&9nsDm_wE8ox-auSyK<&fS7azp8Q03;$3O|CvjuJZB9a*$y`7N16 $fR4e_>yW(D6WarG-?IkeRz6NZl^5rLu)>9hpbhZx@2iolnb$+%jnw>A!~uCm+dl?h@P<&(8_|S)j0p WL?!7*XP~Jn*;gjNQcp_pi$P*==|!y=V3lAx>l$U1-k~#XdVsj}dE^P$boM q&J8_&;doTWvx#04{3oIFEI7teroC(vpIZgt86D1qm|+$*`~rQHUw#O4XMcysDZP)rv39_PMS%F1=T0hhtacmcrFq@V#r-2R6|}Od9mT{WLf9HqW8v>8kl3nR&wu)%<2^9jRdas9_gR$>@rYxKIm)PU`s?@p7~z6q3n@WA6OM@!l!%XG2!B4kfv+qL1`D~|LT@GF4Q@e4ug9 @xpzw&Z67f535^AQ)Ocp#$3s&ekDG3iA#?{L=&7^~!6!-a}+jxDW7kKexw%8L#K0R>cGbqPg87Ak7o} rK7HqX$9BIop=o0c%(Ig0}x|D2@CFxL?ajEMBRNY1oM7!%RE7kpIIgqA|llH5yF$3ryx>3If<3p-j>pR G*V-61k&V+w#FP!)bG;v&oNc{;sf7khAR-FAC4csp~!7uHUQ76mlq(?7y7x{4T3fJanQ9-B|?m*X9v#TiN~;9AIb5m!EMZ-ks9Cu&Nn+^iD<4F_&ojhp>ZG{Bs13V}CNt@cai+vCmFHDFzEmQ>uV1oC{Xa9hv2fN0mFm%96 X!ur9cE=8YQaJo9Tkw_qPA=swV!5F|o*+!3;D$riM45%GPm}o4^0y3j*Ev|e9pXGBUcUZLcY*%2fW3Z QlDtewH*FC0@z~pE7=2od4QjAiX{W{Jub2rkqyec(nA&d&yGQVHYLp c5k$Cy~8V7-3xerQLd*&fbXM5z5t>|rcx(U;+rSc%97Bglbti}Yu_N}E&;Cdoc{6s|>IUIucvAt7M=BNx)X*L*P#4=nK1S4GcH5JJT7AU@${T5#s F}G^;_r0RwE7Z&>NP(>Vnx7eZ4b7DOu7Ui74oC>vl)wIpTX;aj4(G=6Bf8KiF2tkO>{2b;b&WfLr#En 0AFmp-9j3`6IJBz1>}CzyQBPqP3LtSu=wLIr4v%Z6(*$59CP@dNzrL1bB5rR<7fmsjeG%DZQg&3jexn ~=_FofaCAhtv!ry&Y{ag)x9)x&>Q0ZvrF-w~gF`xT=kWhcpHTsROp@BKdtkk;hLYbkGvnx67eF8jg?wR%vYugv)&3~`IV{G9FRgcLKa3@o6b|o8W{!3lTAPPa9tOZ02ssc&&lT;2>WZFwP6X+w5kc>J0+|a38|mbQYZvrVZLCi*jH}pfjkV55tc@U~r| T!XMd^^9s}>$5CO(LWJ@vH&A@-gXWlO-1JU?@y^%ug}LAw3ebZibXp)-Jc3a55ZZ_FS`;f51WxkBXOo ymLQJ!e1*0k<;h=tFFrIdl4(z45Nh7DfXFAw#`Wxg2mVv(fq?#yP!J-zsOV)V2Gl|zZe6WC>`kcx>CM Yn((PHO`YJ74k{i(9#d>f{4fA=ZWTty21JdC9S!150@TO@y|F_6$Zb$W*+R^w*b-2P^X3G~|I8@}{K}45?`<=*NIO;I3m8c7 r&MJa-fN_e5010NgM+fZe9|q4n;tpR8WkPqEB@S+}$c?5ErA>xBK3eP8$3PeNKJ>?aGwe(K%Iv7esFb 7$$UJTL60ooO8V>1n1bul86RpVA%n6FoDhrjMa+(Nu-Xlikkg&3Xhm#=C+EQ!A?=MQd?qSUM+AfaBp0 R=HDTk+eU%Q-sjPD^ejvsLN6m16n`LqcdS8;(|d1W^cWQ3IxmqL3kqMKj%`g;+?r}urHd%6R9+fz2)D #4dnT=-DzXfMNhh}jDMR+t^)t|{IB5O8WI0Cw!#~>mi1@=Q&Wws#X^9QR;x~5Hl3a{t4qT6B8vmvZsdqo6FB`F*Z+dkCpazRfVffrH GsGQ7Q6=fj{)LVFK1#=@hP-{T>;__hNjpX5V!VE)oJ}TfZPWsvO(sR0C J~NfZQ=&0J)nOKyGF6e ipHNYVL_kmN_AvZYgemtt$1voCwyW-ow#d|gLqtM&gghXEGo>4r==0__MrY1mGMFs8VN9K~Q=SO(KC0 b}VKkDV4AALsGPfxn~$|de#lkE{4?w4vaBN*`vE6Uwl^N esm%B&2j!q^>qG3JqMnL7^3@5)Gh1SN6~nK7g2|V^>f-`+7Ne$qQF+*{zZc`rPzi*_9F}yHbKn#XdvA ;;NfA@SShp(jE$jnpzPdZ@$g5VPKs`XGhtBlxD;WCh`k$>~@K%^zLw?FUMsy{jQ{V`bKR|Ld}YqxaHF e55b4frFC3~{>}X$hBw}(-tLg&fGu9zN+d#?w`TVV*(aiksi+;upz~z#DHb1cy-wDEi>gIKAwqAOP=w dE>dR~$?vTJ-RjKf&_g!jzu@A!_^kos$n)@b6lOK-oY|+Fd&4MgVqWB8&Y=OjDl@zZobTU{f5f?$ydo kdV(zVf$;y8NS{xk9EN?+ISm5ASl;yCdxefa>Y-zn|VeUSEPxAM&oNWcXnOT519xwiH(+f1*({SePzE *-7ji0l4+*erZKNBZ6@eTmP9_7w0|MV;I#QL)7pCwfUJqr93wEqYA;T*3=`q5;w~5RWj^qss@Sk4#cM zo4)$3?IJwO-l=>OSsRO@CeuAqJfUt)Xk;kBIg@gI1ZiS=E-p@8Ht9Fl3JDYEg34Kl2qkBv8UZm@T(` pbK&Mm-lX^OTQL5dLJgFs^KdtJqhbp0myyq@j6m*AhfDrQ&_TS|?tY`rgXGhYGMZ0p`k3!{GNc1Y9a^ j~;u=2F1(`!FO?1ZAXpdV)WO~g*A^gECV$z1t5F4wPKEkFMnUAMQ(eUpv{9@?qj{X@FegJ-$Xi%K @Y1EbaMY<>gntyY%g=aPzht5i76~1P6M4T$iJ+omL_vcPclm}sFcp2gl-fh|Kyk-1gXt({4zd}W>3!g 5v?Y@gIS-9I9&}`05kps-S8m@ydU16n>J}euDQYVf^*qr5SBZLQRJ+JP~OYI#m+X|wLf<{Degz ;WGm=7lu64$;P0UYa88h{zYzJ<7##2@VvcoE{x3uv1mnbCz$=YXOV1!xnty@O`$1~xl!dHMR6q|zi)q l8K1ee?BsB+@N@=<)i`kihyIl^5NrERP^iZ?4GW!>jTsg+IFbS6waW(+66rXdat7iBl)ao~iZFsx4+7 pU3p;}*x{Xdf%sLIhS0DYN&H8bm&wKA#>vae1D-a>{SvLWhpe$*<_iJAB0c13xIHr7?a{?fxo4HX03s3$y0lI#)b_=uC^!R0UEa2XIG~&i1y$b>T?s@2Xf4jT54Is0ptUcZ1CXO$y)b{XR}Xe4QB@>8w2Q9BU@<_G$ {~`QVGX^5Ao95F<_%py7!*iPx9ztD(C?kwJ(&jU8*%0+6`6B&k-37#4&%iH(hOocv&_`$5m&;PN2p7D 8zeJx8(^XVwtt7j!S8(Jbw^B%BtckCODswV?en+hc=lc$CFt-2m5Ta&js@gze`Hl82?L7!yM2F$Hn?k IKKLQC&_U;h{d(#hp+hR)Wfvw)*xYTv_}GEKP1~4R?nRj1}MV0(*jPE6va7Q-aAhX NIo`?Z$zJfp$ZNm6on1X!E+1s{LjCro}Z)GX-!C|oLF%YZP3}3*jCUbLknLroGAsrKW&3q6F*(QbD>7 (Q*A2w8e2BA{+$NX@e3sv5I#ao2MW3(-Yh`Ch-jofL^L4P5~nb&*s9SL&y=+9Pbuv_XYKRMUkEiIU&DD>GlSD @rKG#~Ou<9#2TV#P(Oi`&ro^4F~oTn}Y1kG^ib?;dAA**e$zb!&F}8JGTA_Tl^1W9GWww{DD6TK4hxt @nlM%jmEShj(Am_pRr3_rCQAtd#Eet@|;R`+e&#t7(fu-?y%UvUI<1jSaH*`_?|}ed|)$r`-eBY2QI| @PX^Y28cq_6s5}tu3gTqAGqG1*6D%ksGn7V`hkvo5<_$F`S*cuvsN-SN}$hM(+yNX{`fB#JU(*$4o;u +yAHT3q1T!`9hx*FXzgt1T#BjDfyceb{MpKpGBPYTXn!*yvRSte81!b Y1{9uY(7G~YR$M9JE6f+^DVi67yQA1FM<6~@iA{OT>>;d|aEw^ArKHugHmiMq;>OQ8UfHa~MxQ4SK9^ X4eP-wn!ovfon%}@2a%oL6)zKb{G=~(`dXqBhD1f3JhJ3#}Z8M$_ZyNekkRL$2=(7-zRi9{+0eu7l%i tL2-cMvk6-VF@s{gylgCa{4qg?VK-Cs4G)P;9FYA##Ax%=ZZc=!voC)9ENiQ1LfI9!h5k#}`1(w~78r gycuq0a|6a46HKzd-{JA%f@=0JF;Ar~3xU0*I3At}BR)Vb{XI*7m+@ X?q5SD8F<{An9I+jN1+E^mS!9>+wx^@CV{E|S9Ut+EDGvDdPFR@74YKC7DD1Q{+McI|E%^>vf@eN%?Q %+mfg)YiuMSPbADRQBg0r}7G|L0%hI1Qy|I3?p5?a660r;|CI%jr^1@8$GSPG9Bp0H=+dws5M8V>FV} QJhZU)XM2XPM30e52ufF8XeDQA5Q%_{ow{if9Cec1V)27jpB3)r#ExDl+y}MpWt*mr-wQHg3~jcwsG2 PBBR%GdNZdPoEC6e#_5BcZsBwrr#m^_$LWWhe#L1srx!R4yq-}5r=vK%k<+=H-odGz(+W;Eak_=mZJf Tt=}Aui%Bha$?=_spb1HCp2dAqzy_eI6Iem`P9h@HI^c1HPcsZ)SdR~q@IXxNI-n_ftmf;BMMo4%jqZ ua{t$%^hjz8T+reAz**XG_oO~{$WNO35W3}53=4QcGd%V(a3y5E$_Xcqhx0Zk*RWI7p5;<+EHdK|f)S V@xG?=*5Vv5-VEo0zGt0DqIoa`>AJ{uH_GW%IvL!~k(%e+IYCYW_#4{#dF%mg^9bLSqecN>1@-CN_wv 4Z>Lr|2y3JHnbi7<8Oe-`k%|@W-Re(xb*-jjtL{HC}3b)OfJ)R=eY&hOdUJhJ*fOf`3jh%jPcB_+jildZ`d|v{l r>-U9G1o2IXfE+#HAW?PnR`C^+}AZ{*P(M~-(ODsg?Jeyrq4NT4@&LW8HOlLmzZ>F<=7QD&s$ip&7& U9qC%h|Tr;mmZnGi+vN0aZe{7#8}Eexsl0ANmFESEFC(54uM;WL~D|bYy2zf2KR~I0yNX>vR;kRghn{ >;jvYMyivkk_!u{<~%2-nIigw?$Hg}Lpx|r-D!M$wSN8qx*mZ+!67~Mp<%sxhe!138`-b_fPsUq8EhC bbXe5zYez(1H!^0_=rLns$BmDhF!A~u;wMc`m@@Uon~bJuiRPr~GX%@bS=Qv6XQ#}WJ1;eD{(|&dZoO ^c?RPB7$XuM2ZOd7bo40gX{_=uC`<;#=(Ya#fs?~Shy=LvY^(3*-k+dpLOmP%u*|2n%gDho1**icAY- 9|`L_U>w2bBX6WM(<&8)%JnP8-Go{8G(%FbM9|6)lT{ GrZhuw#N)v33O869a8!473HY(Y6jlv;v2z%BFfb)X(MAZZ4##2)InzTC&y%+Z${fowSY=K)pA>|Cu!P E2s}1ztB97nq-2zJaQMehqWh=)-L9M9<7CW;4+iOmW646(45qNG{<(hkcNt8cKFM8yI?+!0TT;NCG&M T=oV2m+FSz;5LhwFY`SgC`+wcQp {wzSB`qio_BcTenq}Im%Gg?-xI-~R9-#~w+YMXLYjM6xBeaS(J|j*-RV%{q~>2&Dah_7KgPp2MD@o>O L#HQ)hp!&<^{&n+fUWM8~(xaTuD=U<$Bjuc-Q{};i1%K|AXO8bcbiBC5Ha40Q(L)3P3-)s!3|y^!TXy H{l?L*3@`JdS#6{`Q9dWv~nNaZA&wzs*oZ!*wPvaO wzbYEX%y~^+EN u!cjSX{?-6@ZJIL!!U^DUifz|}pta*Lj+RhKDT9m>_sJ()U;t2c3VFRnInb#Jb23}Na>uC{Y^Kdv@#b $_nj9?aAORR6eopc;MzI0#njc)Pj%STreU}r+u8->LrpG_%lFBw;xejfy0@aXPy@5Rc>SGA0bodJgX4o0BtVk;|=Bm`nQZqz)JZ 4M(VC(C`s;GK7{(8($2TZ?)-|TvqP+9*D-a0Gd~|#fBdIGIq>x-{yw4Fq@*N2{7sAnztEx~J|#UsM{b CXU62w08E2p(rpw69fFESIeHHw4V1on@olb`$s3QSxIs8BVGj#fkcK>xY>-;A`$z18Ltc$<)HcGtyG* |iO?fxFGKcB1oQ{5W=yR-j)z^`+e=KfbpfX4H8wZC=}pz-|qT;-of0{+>*UrRs!g~Ok>%G>O!lg!iIU VXLc^`yI_4t+??{VOiHr?jm6-rrPIZjd%s-FN?{2Oj+G=7%1BUj5_tKfU()jyHDh+P!D*n{U1S&b!q$`}QAr?_h1+p~LUjA31ug;rNLUKK$t8PfmV%>a)-P{Ke_ UFTeWwn{WT}o!s=j>xUoD{M3B*uYddbmzHy_=Pz8mbh%CWrx$3tUx2x)1)Bfv^#6B<|8HL)>)!l-ME> J`aFADh7zApqm-^ujYJ8H?dn|EZ2lf3O)SEh}ALyWdu!H)y9n|<_rMLQx4r)A7fn(}w_;4qFhD}{-T# #3gUAS_dm?`EJ7NCAwknO5Tc^Di#Gx45Jj26Vpn7T-u+gIA{oyK#xGjlV1xPKExaNV8F0&yhly@txxck;o6tqJ5(Qyh; Dhq1F~96UW!%*;2~9F9VVA+NxYpXn^f%C$Kr8-^EAOAfm0fcEn8ZP^B~&`@Z%6&P%*Y*|h*b8)`9bCO no3N+7wj5A~w7&7f(F&o_Asybxom=5+Fw#;lpj-zlnxM1E48-ja7CPChWO?Q?R2GTZkovp=NO~SkmTJLcUg#9NvcP{Hdytn`u$R`w> PHrz)r(Y*%}286nq3iLE6?gobp(`NKB!0VlFWDS$Ym84h>pU1LvCh4cD~KgDV?73TVfNT`0_+UR$;cy P?%$|t84Z68$;JRJo{l|Y4{GHi)k#z@>#w5OIl@z3dVe9B@g~CUke)XvA1&kz?%Qyn?Z|f)yiF#~tL(BbOK&Sj=-27A&_Fh^l>0I5x -fyn;-cNl>=nV)UKPLJ`UfYC?N&x{CCaPIYS$UE6cOJaM5{dywiC4D)|wo|ucWR3v6PytJ<_Sg&%V>E (91$UilGtX_Nj)hWNTZB!Jz?HHUz7`3$2>7(PjE}s#@Mi?@ADo~0#gwWakkP(o^{QSa|=rOwPDq5Z0b )P5Q$e&}06AQe^5N%rlEmdBQ!M5BkuD}tLB~)iEORv83Q5j!Dqb4>>mdH3omt8e=X@hzK=a3BRm$}pnr #;UH%(KV4{x;boe)F8+>pvV-56y=s r+O0>KTK*fl{K5(FvJga?xF33?JfKD4=KV{k)Yway-p;hz$QVI6=lM4;I{AS@l}H#ed|ja%I)LcWAgR O6=A5H0u@Hqeg@oEBNlQbLGozhX4hp)sEHY65*o;CTPoeq(x&LD>h$pb7iQAk90ZXLYbWh{w6nPmQxb +O>!2wM0K5fau4wd_{lH#u0K6K1KCc?@#opUUg6Wtl=q`V_Bp`TG$6xjt7c7mVNSQwjMQzHhiYpBoA3d!t9)RUT&D1p Vkup0L8g{7D$ZF>E|aaA1aN?`0z)$Kd5IM?6p*KQLb3#Jj$?-HY$U>_2!2_qUqFfn9@5 ko4>jUitQj)Ben8zUR~REOI&1B1yx$ghE^J;^}G^MP|CoBK5K{K4{sbm}3U`njGse=HEvVj<)PzL2R2 @F4-3-%&I77wS(!#Q+itWga>{xLVW0hx8cl7pn=^u{;Mk2?sOG_kLr0kZZ&@$TitJ$TbsQC)a4UlTa> )c96p`n$`d+hiV*Ny^Rn*=yc|)alkTi_{8=btb;IN4({;OC-f&?m9Hz*tMCjMV`q5$3`0N1`?%YL^)R M*2**#VxmW#AWnenAu_^FXa62~O@&4vk?|6;}S?aBYwjzM^9vwf`a`Tc%$Td!n+_3r%^*o!mr*k8kz3Y1p47px{?>laPH1PZ3 >&xqaCPGIdplykOwj~0>ju;XHx($ 9UElG&=?sd>`@kM#;4={a#;^u`b%;GUBPccyWH=1lBxrjEK)*C#eBWl4cY1f8Y=@c9SMcfDc${ck1s} vG62gxh&+8(l3;cleG_u~!(>DAbCa}jI_VxqZL77BCnM6V!fFJgLu|Z_;gy+d%%@d@3Z^O#EL5uwn*3 F(!H$$Lq29xjyL+z|h4}`qv!SaIIfqo0(7Y^|YpUdq)8S0@7sU2D`bhKXdz`UF0>5CR@Cu9SBDVG`5L D&$V6FvtozkWk>q*tmQ>O@b{%Rzgu40nHv`Of?00nnce fb>9rkfN3s^xH{;#a>_*24xvadMEaLFtAzI=-;5NR{L#%@IDRf=)sQuM39~K_q>nk3*q*T>*?s|F4pZ %5AJ#r{cAxUIqB&`dX5i_Rn;A7$NYNx7$G&s7>_ipZy?AZj5VMg=sUM}vnma${j}qRd=1~5m%ZzlS9> ?!)2E{SgD0SU`hbv6)jYihWd6aR#vTm;)qZwuhHr{bZ2P?M^zZ$y4$_@J`95TFbMK@(D;7MeH)++@$(^m6Ex6fql^ZEi~=3ceA4vLkRFTqxa}TD &nO?#UsK6sN2{vA5~_9BkNcBg2s3ytOQmLTFc~a{k-^!akPkh{U{9N$(nb5xi0wx=ac#u7_KOQ5Lq(f rXm++{=!7iIP|Y10<{Qh;#z2VE4I$)O@e;W<`y#n^!Ub}z=4avwmD$@Az|#csYZ&WUg5Da(Mg`U5JbE (dZSiThOzr;t=X^X5=RfD;Sv>xiosS=^@jeb(rI}$96WNs73Nz{jBt|>Wh6{u#nPTn&vJO<Yq(r>?LF^+7;+>mzN9ZHT)K2=84k_9rN-EmgL)*`=nK*4>1)LC^+h+ 6%t_1!Ia)Pb|!~xlgn9_W|AH!fa>0ZF*k5?dHtoX!ix*Ik@WBWxVrzlb!iu-n7-CEwyk#UbZbUH`76u qCfL+>BMPAXA8(i)Je51x3i2O5ApQ6eS-PSGUh6qB^t`whp%EM;qomZn=wbc%r9UXFrKNa?KYBtriq0 GMTPmcMA4DYY&pnnRNv`v*a}2*o&$m^bgW*0Cmj;=3yW;rvsp=VZ%(qtjUSVppHGNHFq(61%L`Y~jF@ M)Wi22{nt7rF{#n5FWNHJ7dND0#GEcBBFr`?i^G|#PTc&-w1Lp%DP~L>gE#$8xsX(+j5*>MBURGxQJc tS{(F9+sEpvsflfIqhhXcwPQwX7arA;efE1=m)tFml%v3HjB1ZA~^#o!nL)O!aPhF c^}V@d#R6V)%8J-j2)zPgq4S?>GH7@K;kp=^X}@H4W@$ZdG@@5#6l;;cw>k9Wg^2dRxI*R2R@^@-M)^ &yaMxazRgiYRUc71O!}ampgyLceNuqDDG_?O8_~t=q-5lSA?M~p%(7`sf!afE)lAPXLN7D(oi=hCs^+ PxTTn%dz8K5HOM2h;N_T25?haTWzthn^6Axnb;k!Mi>}&_kt7|;xkm4Uf7mhoGdRI!!=O8hl1H6#Rb=5{D0XHhPCHqDun1EPdCgg_AOnGTyfFKw8AUU@P <(~*Y@t_w&eGs&Kv!*Y6#k7r*GV*+ykCb=O0gv7BD<}p}6{`33a`!n9j&iQpzw>z~FN`Cc+Yb0Hdpu4 y4^Q*T0^ZU>5Kff#e)H*l*nbV^miy`F5?S>OMA1aEsIpTt-_05-4JY#}qm+@^3L|j08Qasmz2oZR$L& s?kP6N4Fke68>?iQ(@`y0yj@Emn7{-OR5u0N5hO4-^Js1l$(FT%_9R?UZ{EY@BM{#`(x&YZh!yw sQs7xx<6dU%)3AQ_1_!sf93E0x(syq{Vx}Zlq5dh^3l@f<2h)cGwxY^&k%0@{Aos?{sW^WPc_mVDC4? fN)dae=Gjxv8oKengs&?bIep_Q?VC8=3HFaY^UX8;$+yqQ&)n9%|LdNn+#Kjo=A63Ylz}Wdwe-~Z&h| ez`9aI+=?+e}bGnt&M>*ZdX;}yV*KjIwn$Kwlr|FyuoW^q+%jqai4V>yYZS~{#ptSAB=gnMS= CqO1lbkkiTE}TMr`tK*!s#YXS8bh%r&~DP q;2niF<09;&EQnvG@erfr#enA`7-)5r;VKM=5!0Ef6pA~pZS%|Y(H=NpJx7RdC@$#Yxf!9yu2fMIrZn |$iquX=J(VTHpb2F)7~GBhN={IzFPV({dJ7{ua*11+Wz0`{@?BY-|PNAzyF=TU%Nl#)8XgKf2#Y|Uc4 RWRITrec|EqDC;w79hJR{%)5vK>*1v|X=f7{bzZ|4Rx|{lTok0iR)vhK NA_0$(WbGSJyD;oUt-LsEb~&>O~LpuZXD+HmO4fiDJn2)@sOuLl|u0sU*VhJ*uM4Byr$4ao)?-516+U 68ae^;1neMv8@@}|YDhKEr4 ylSKtCU7<3yfUK+CU(It=>Tf$olnaolhXr6(pq{DJ=v=#T`chrmYxotD7jUX-s)0Xrhlu ~S+8#{wOHBk-U<0q9dVvV7hGwEs;ky#s;X179oHDFbRWGJT}JCPD^+|5~7TPlLGx@N0nHH;u)A6VOvI >Bt3rJcsjX62udEpnC+Ulfb_PwD(N#6ZnNd*UV&Ykv_qBq+iWsaU-*!nBi*x`>{X;_)Y?!0(1_1p97x (G!wo?;In~Fv=Z_S@bN$k;rkhQJJ7&nh(DBFFk)?`LmA-j|LB-CQQu5He^DOQQkkTKKkr{p~>8;M)#7SxZROI*2FmTYzp@4>An=Mxb 95v-mdx^{s%pG3aZ74z7fGH1GzXFH|x+TY;XbWZ^agHEn>t9rDBs^wSM2e?A9V@etJ2(U4a_uYH)gjR qR<2+Zlhjt=Nek8pVd`oJU1pUpteJj3cjGtkKAU``D@(rwSNG}ZyF`U9x3EP%fEJj6+jQY!22(t-*6u3ju)AIq~E;6+ES#iZ)0ud4xlf+0(k}c+kkF)mGvn|Prk~^3u)*d8IN>7e2ri~ Wjmw`z8^4MK&R{`BsfMxY0o{-jsPDDblM(Prgosm_OQ4$Apa&l6#+a@|F@X`2A~hU4f7$;-vad8w^@C cfsTEL@y2%$su|J_c96bS1M@iGcL1Ha5AqFoE6|trLwbSV26W^BNI&pKpkghwx4 (3(o^+J|8t;IkFb1B0g4OfIwwK70d#uLs(6jHP#A10gq`fII^I44}`RV1 7Oa^wkdt$p`)IKx;qXG61yUBWR;RA8Fdh%zir15uY$V8ffk(%s$eDlS~e$0Nuy=13;r1@qUYjQr|D3y nxpN{S3ZHkm1jPzWf7|=WReuKeDng108V&$^!JGf!=+Fg}Vl*u^HM6&_|lu%*q$(g=QwJmw@j28RQA< >;@Y53&aO_0cc|j#0Pk!ubzW)0e(Bs)8}}<47Bh(#1r(_0DbE`(?|LX=Uai!!53_RPX&7D0&5fMfd*W JG6H=a(2*CJeY~fG_l_=s{2&!Mj}-69Y=^c8>5E(+=>g8;U6^k;k5u9Ik>b4&)JJ*)=aJ6kJksTyM_R #oq|b65?;`ByJkswtk5qq|@pwLeJm-<7a2~0H^GNZGGR6(*r(7TDPn<`JXLONAI)wB8zx=fPf1Ien@U gfjp;$u2xT&xSDDD+*W!q|A_5{a>xXuuZ|FupwhMh+zr{N+DbGOL4fGoh5)l6f Xk#=Ub;k2hFLWNY?vK#M`FYg#9bi7(qmDcU>QIlm`g^di^{AtN(opPORlNz+I$w|a(Z52w;1zx}q0=^ evIJu7jbzaIH)hNjGGoRJvS7gil9!i9oK7bz(BfkFS4T2@IC!dhEwl>0-{)( w(P&A_|nA~4q98C1JD_0()%45n;mx_Zgtz5Zg4O;j~slRkgsXqtCwV>94;wNwm>Xj=|Eg!3|ucvA{&D OzxKPi`TsQJn@&AK1Jv2u{BS02-~qWhejOH92U?bjd6$vIZb)t8ugKImUUHTZuC%<%_y)-(T^I{zHCU tfRhAk#QU{XdQ2Gc|;-DAKWdj2h@+{4O0ke;QORXinpQ&!r9Zm+D*44^+3!U1$Ldm-4}XQ2V`gDEzu7 >W@JZaxi~%CtoS){S#YLXhrqq^6_ET`eR^YBW9QG(upr*`oJ{U1zIlvZ#~_r4+ iN1sitZ@qM^xSHBOrYM)w-fg`^jnO{jZ_^X43N@zrk6y^k812)C7fv!`>OYNJFqh*B{$s}E(%|a#jlR Vk8f?Rd-p#)$Uqy8^Hz?zZ2p?96$Wtbg~XcXMC@vmS~l=Uqiv| E_BhNW!x9XMS0<6PWc+etVmuT+CT}=-afkw0Co?6J7?oXxYp=XDiAZiRWPCX0Ix&8Lr$-3<6WXX~xWa-kSWcl*t#Nlwz_G9hZwd85%P2}afrjpm!C6Ll3No3 =)M6$WiM1JQmk~d2xlUIr@EkNjM}G=aR(K0(*cD{Jgkr@M-{U0h(Z!SRL HDT3Yl|SAw}?|eWj4wzEen6qe2${ppcT15>i=NNgjCM0rJQr|F69(fv@S>`a6ai+8U~TBBhC#LP}x|B GXNfO9)<5rG04-M3acb5G^sjqBP{yGppnVCHE$cnNmV&(WizeshUe0R1>q-u)g)*_w4KBHX?k!@B4kf Uw6Bmd+#}G?=`Qr_d4ffo>;J8fmpnFu}Do#70Z_|m-5Zd&KB#}ua~}T>(;Fz_p59%=_-l!g(Pw+UJ@Otx#&kd#TXhc=2MDTPpicdI;8xmc$wi{8QzoOJ2HGXhJTCU2Qz#kRT m#I{9=aBV)z_}Kg{swb?^-t-jCt?GW-aJPiFX448N1%4>5cm!=GaKpBVlk!xu38Egif^Lym9$);$cYr L&WHt;6fDLSBc^;p&3&nhQGFQ_%V0f-a>9DqJn-mJa@9hIeInPGDyHFnkEZ^H_yZ3_ph9KVtYL4F5U9 ?_l`D41Ylf&v7l3O*xK}mD!aTzB0qVfOkVOyvs|1d>H<1hJT;o=P~>ShCiZ%7ga>4sL3{4mvbg}HrqD h0Be4s2o_Ymub}2}f_i=^X!v45DQg6+-XrMHX&t-^!?$7hZVca_;S(7?nchBtL<)TlxI&YkP25dwqxH2)vW9|8lz-5cYA &YfMf^TrTEkkOZi4>I`s2Ka}+jtd$zaILGI4-WD3H~Jd_4Ga&wn!WDs?i2nHNn?mnwN9@()(mgf%sN7 S*SaqCIs=}^HyVR|jp21_)NllqwcPes0IM{&mhM lWa1b7u3=x;k8-p-?1rRN+Rs&`=wfntc!mlf& ZdH=SpJzG{PTk)k}K4}PGU2fINV0d^wJUqa^M~5mE%D3Ttlh)}>nYb|L=E$6(!Qj2|dZ^Y3k28af0QJ#Ez=9zT#3F*vAod%M%R@t HNj{_X8f3uDn1Vt1M-XZ)S26MWBbB9ZfK^11QF^kQ?l3BuPdpDQ^}QTbf2UcF>Kk`&q5mV11b=p&{@1 &R6b2C;5ZkjP$`B--xboPzyamt!Qt&RKJYL_W@)J69}Pv`8#jvP7h%rHN(BmdRXU?b@|6AN=BrFJ!Lp ea>fM5$7A(oGa|wwM%^W-FGrKIDhW6ICt)xIDh`UxP1At`1RLc#kH#iGB>z+^QO3e|Gr4MO=2~FKXg~ ;XFck2pu-DH*e+)e;6OKq1KlhRbSp%4S|^&*Hqn#zh~bngQs{(OO&2(R7wX_SAci_JJPL2G3t0rh3qc Bv4BwC8hcoeDtlDt3#z>M;%l|*HgNNJzOvhE+ 7B)+ZcRKYR(!#YVH&?wwYlNm;ktF@S24a S?!^?=2MNlGN8jk;4d4IPtE$#HB<(TZ*P0Wq3~4%WJd#Z?vb`00zEzbl??dXJ;@K9j} sXSgBGa_AK&G?BccWcvU=m3iHG1DByMJ`4cBjtp4VkZ)P|+IJkRzdwXa!IcnqJQ4H|mN%#j@BQU?zuwlb`d<3tmloHmlU%!67Z MgC0SC1V#HjCHMw0-+_`sJ5jh~p_8J$e)yRCN0EY2x)a;XKno9A{7F=jUH!TF)LneE8EHJ9dl@2nc8? ta8GmCpCrj(GcJQxmMOXKC4Gz@W@FWTpJS;)AG)pJE*|C{sj2fVtyZB8*GI!+O}=m5cn}(690Ys_R;3 en~CwGO`A4Jyf0k1KtKQdGaWp5kPaO>B(DPu=Lq=yJi{zqy?XVyjT<+P%YzHvke*3M&A2MY7C&=N!19jJ$wek16{QEteXB%$uB>3O Db&EI*N&WZo@@fb@MhE`;_wT1ITec9(oH%EeHVpnl9((uhl^wY6*|SI5N?u-`{0ti41E6oP6UYd-ZTO 8S@;H(2cSNoB5_#+K~Z}1;7HvLKzc$CQRFj0pCL~Z{=)N&8gu#2b()6nosBG)g7l1~uby LWH#li<(3-qwM?>Pi->KaHKh4xle@o+9d;M`ZY(`41Xc25r72YQZ$b9wWMSk7&>#BF}BM(nP87zkT~Q ba`gWmMvXb7p8y)mcyTD0WQ!Z;8+|T;5&E@89{HL|M0uKW|Ii@VEnuOXr&?G2$2ut+Ma1>&3Y4;XT?7 %m#F?$?S9Tu;?FUIl>dkRb37t+dzmOb2VWrz=oNHB(E%HWof0TZK|2U7h066#=eG5C!HVPU}5(P62K}3+o7JA1ZnfGpd)(swWVghhgsCKe~$5p^M8^ D>=*Gs$pZF(?}`TC&wh_`<_#qC7;joJx+9sGh9yh`S_J#gx0!}MjK|;4S!q!A3>uU@!zVTWhWY*#QDe }+{CC;R_P<9C^IdWHv%i=6&$gC~dC$=@#&ZpIkrDpRzvaKp9NKa;70|gcbjU0-|>>GY $DfZ(gw4GklWq$A|U|8k9YQ24&CiNp4%@Ft_dThn*q5aGquBph0zeI*PLqMGM--@$G2M*!Gn5eg|5W$ TW=VNH+^F(Xl_QG=wt^{eEE@boOl2?Abrp>XW?oTjR6xNsX9>dRvP1OA>$1?`O7d-P)CNlqtX;ei29L 3}`^kqiDfzh_xy&!#TuTY%eNsw{Kh1nEfTl $mX!2kKjUO0DGe-8MQ^yWU8uU3vGcCt>6#ne*rT#NM$-o+@s8U(g8s|7w~Kea SRzVj9+sV;a~NV9%hzq|vZIqhU5^7#cuRhcFF;0x4-=kfZ?(KB>Jf$7sE~c>RaZKnz13fxdF(N-~?xg uF;~y-Z57ll%AY)4@+8XvgHXv~?oWz_zfKY4}{TXZWPFkv_B}-iPML`O=(NKbjToPcxW?51EEZOv5;) 0nI+g_(yK>{s;K8E=c`ny`BPEKK$@QvREvVp3=~vXaQ{gp|!MgN?Xcd8n!SE(w>Hj3xOQw;mMzDCJ%6m(vt27O{{jAxeU~m>AO~8tYL(2rkjqS;KAlF58fBxQB sxlx2^xITx};LrGt*FvpLtZP1wPH5J$ncHPHNPs5rv0`)AHrZ32`|gA%RAW7(p{<&Xjh2^5jYBcaRGe M+@*qY=EyqE`)p(>j5;_^MMs3>E0i_-bf#1vuBlKEYR$EHrvAE@ZY+1YgNv5{;u$E+O%n#L4yXx4jee }GW$^}2b0M}J$m$@-o1O%#~*)8bLY;bIdkSne6YR;zMuiI0C7Umfi(S2yC%9>-qp5c=gCWZk0$F9G;y}hT0goI3l{;;m6@VdYC`t|EAY{SIoC^0dS*d_?yyLRm=bA;WycT 0T$?!Xl?QhKH20s5eOSmz+GgDhYVuxV+}EC;xdwWOB)~`LVeil!-{|4KF{_hHM{_hKPs= >ej8B)U9R9mP!1hmAPS9Giwfe*`;IJdxE#nK*F-o*MQbpSC6JXSDjKM{TuJca*Xvt|utWo5}2`1$9bOE~bF`IOJT?H! JhV;T3I{M%Gvt$UQVek1cY&zK4tv89xIo^pS=LjTOT@&)NZ-n~F5??~4fI>-A?yHl37J4oAO rYheLjTG7#A{vJP^;BUc5;MezSZjakt^G*Hyg^>vbErfiCC}Y+>rusl+}@#%X;6ZmI(Yeg?h>4f=yM5 jt=OT}ziP#U5j7nKEUb6n7i`D*tDGPXP_eFBV4!_zfS#v0JVapi_vo#q8-z{2?2aL!hn$y@xJ==dhvq xS9XS`CbHnz5c^T*vD9VT5!Z3``d57P4ni>llraayXv?Ox&&RvcfQ;4bmkuYWoABttI |gFuJc?}z_@uR}c2(*fRY*sy^XE?g+}S=lf;=vI64$eZvTI-}|b>@zUWS0euErTO%5`HFG4K=H7 L*m+NuV#9iXA-~VJkVcY)!4 Tzn{U*P|s2Z%?Ao!~LnoZvm=p!Rnm2YiRmhp&Yn<28k>YcS2v8h435bhjiuf0VxKeG$&9eGBjzG(y)| j~;N2kk7J0Ty=WJxTE1UoPYZt?wAAjJv@`w`qBgrF55?sz9%Zs1K-i3&j{gLXg%_$XM8NH9UZizct%G DyYY4NPSB1y&jSDP+L5eB2klr^J66z+RkfqDcJ$Sbw>~nM3Z+?M+Q8Puo5p^!qSFk6J z1Z(>5FNZ$s#>oz{Pd(rlOpEKnG*&akUL@hfcOZ%j#va=ja(La3eMp(TEF~<^+MEmQ18T^HtIXrlShs 1ar0vhz-!Q0UM~z)>wBzoF)#9H@IZY>ScX@vDW)gD_d7s+}1^rR$!+Oa(?~25BB#wfG3DwS1u f<&nAb-eavKS53v6gqVP-Bx@qro*1E5{e?YH~s1Kpe=*`FPi|V8^VhXQcBRJ0u)8B^y`6CAgE{H!{7R 1OsFzg3oPhQQB{*O!6x+m&wQXliIwKmjvppU3gq1K5y;alHI&^>B?#BpBl$Br8}Zm7QAt@2qMky~da8 RT9f_H(h1sGlFTSJaQ+w9`jFtww`dA8Jg{NB1wS{z1);{6}9awXeSe7qo1xK9N4kx*vO^;1W%|S`-K9 W0;*j`f4@PmYP1=)#>E?yiST(uwX%$9uLe7J;xCZ^)~FOqP~DV;SKZR9$PcK^aoKqX?F*cV5A1+@uTP$1VI@x#)2Q;aVJn!4wPuwnQ|7v{(J4DW}ue0cDci_|GYDT#` KbJKY)as@%4oOyP`H76%|Dvee{uB-v KA(3zV;fe88LQ`N!$IwD)N9WPf=tfYL|Pm`=3j-*I&L{0X8*J}v$H{KkNeq@<)_{rmU-#?#Z2- h1yoxeuJ2oGkY))Y=C;#}WKj_cnqb_Awa^WAb%}S+`2e|C%;!`Ucy*Tn8f7qb`Hm66aaeuU|h&_oMcj ?Pa6lxVpEJhsS--B|qTL{Kwp!e_TQ>5&Oo$!NGF>6*vqZK3wu0{y^18ln$spWTg)rC+X|@LlPlx<^DEIad9_{QQ8&TFUG5E5iE7#^a i^+T+I<$nC&y?BzlSv6qgz2JAy$M}Q3A7XSxbzzg_o_)Orref#!VqI5M1Y5y~4&WuP)OAAwLZpaxp3? 4j~+}+)&d-v`VH?{Al>O;5=dZYXW?n_*=W=)!~t`$ntr2m8enLK&&P>hE?dBlA99Ml%xdFLHjV}@PeS ~T!L?eQXCMok5IJJYcE3FfxVZ@-77-;+Q*ijR+%z5(~Ds(nSs3%my1@X5KkxhtME61i6l--taYRa1P*x#j$rN5x<066jSqIBZYVC4mEU3^fkyKW*H&QQar_v~%0&FU=k({0w{ _0Qx9jpqJUJ dZKk6LoqhaaNrRz*4(=GN^ix;&mr-801vI8-5E7YZ&B8~6t~AqJ^?P`7*-B=argd&u>WYa-Xhdc(4Kx*P**jxLM`Hs}W>*?*n9x zKCy~1&Z^ya;Yo~FMo#h<8PZO$P)TupNk*dkuCH7aRY2QH;7#i{&8H8ehW1@+& `dVDcb5JAG&lVSMn2UsDDPu`EMxsL-*k8p{I~#uU@?*PvNH_%Tqf|v}RIgdH?5<#ICgOi_ZYRUcqnMw oT@0>V6#fZRA{#2mGlX7kox6*Xuv7SMpc)Bw;MXNz9LUgmnVOhF|8`KVAaO3Ksur+(lWfixRrJrh?Y1;&%s8LAbb7lW%*%8`vE1mw4niynn5Xd_y(f9Duj4l@<7 FJotupuay&?o>uRKH?Nh~u5^*_U3*Tu(nY>?t%9gn7U^D?=qAWGl34c^BSgH260u@1j}|4OMI?_LD+Y;Sd`*D7##4B4Z^ylr=r1=;jT{;sgn _S#5pg1duOGwMMDVvrId*Rz31={xi|EE@M)EZS#1Q@-&%eAO667bee~4FkEH!r^_XNH&UOo>#g8v=Hk fj+jNF?&70sQL-KG$Dfht@(=(v2S`uTId7+gvo0-BTW0$=^I#Rt}O6Bjok5JYuwt!V$a-XvNn@$~lD? D(dm|-T3ohc_la#$2l=>LPaQ)nV|lXZb#SV%{*OwUaaim;yogMWP<#gyQ Lhhr4^1L6CwwUjE@>IM*Ggc#77Pv$+JWb42_Q(6%`#hI5NR@Qhz!qkwNjdZM#K|ii~!N#=jk1BNBpRM -6)~GTzl?WR(8^{DIYuu7e_?6Cz!GygeQP{BUxQN6+r_~F&{MNna`N-n1!XHrJBXj;$m^Lcv`$HewHqlP) i@nyOtrAI7^~sf@PXzwq?F0)w0r(ZP{eWvFx!NwB%XNSn@4}mOB=aSuwL(remf{rdy_GrdOt4W|z!On R%IaG99zLvJ$gqXU)$_&03k2ot2X%J>0|XQR000O8W&uT9s!d#`VMqV~dISLg8vp< RaA|NaUv_0~WN&gWWNCABY-wUIb#!TLE^v9peQkT&HnQmV{0i1SIiymVc9N#;daHK5uG{!DiG6LS?H< `xX^FPErbvaP?6@!c+wZ&q1VB)B+TG{qX=8~527|$1Ff$ko)*r10yXE4p$}X>(Ale-S&$gaE+jzG1?0 Il$&(8Ie`i84s=H52*|EeHheN%O=Z*L6zK2vS P7phQTqF-9H!x(`0&;P7vUvE|=95$}g+DT%-kk`DdBIm#d~(00KkmOy~1{o>z-0z7JlWoE*LcPR-M58 2mk{)7`ST$S#*v(vtqm_pbxzD%1}^emc8ie#QnCQxb}X4(9PS+kFSb61vXAz ^-g|Sh|IPm15df~zSlBwM!k?n?>FsH}arW`xw0;r}9(})ebi9A?W^!+pCm*+!b`M@3?i}q+4i3A8zZi Y>+n4bF=+|e%=fD3p{?|umBdPX!=jgk=BX2FNHux?268|-8{+1QL6=ic;f1DKp<)DjUS)HEq%bho0ci zH4tJiO!r^kmoyL)b-==4~1?igg(n{Ow(FWbb41`K$@uC1-n-$N`IBmtKRxC}|tDs7fk0k38m3CpCqBhd&< NkvqZ^!=g&F+y^gK%($A>fB~|t||uC>0KSHm5a4uu$EudYt+(Oh2Jj93dBOO(WKQpE0P?9b3yPLfY&w >Tvo{(njQwFLbr~C9fi3xl+K`bKx_|iK#-KddCI~DgnI?R8YluBoCJ9W50YE}3<;w|fdd}s1DO!Go21 H;^E?Fsvz%Tb#ImOOGl(^v=?jjE3Hz#&$Y@8fx#7PDxu-Ih&r0FPACg`B364EXE#4oLW(#8wn83 m8pUfPtU@EhsMn61(BR09vOun0FQ$4z7T~JHi3RCp-<;!tIVk^q`RyBySDY+72GqVemNc&=5Z*B0=!u DqZBsG>zU3gD@OCfN)Q@ZIoetHZ_zOzq6m;UcrR#qa}Vck7yR1UM-7j;*;_n{dtGnF0-gfI}m_cCMAQ >D0tUx2S4Yq_+EG3(1^Pb${rBZ&p25ukZ;O&18<>+k&N4R8AE+=GMEyye>ym{K)#v#VG?d##!2xH@|p ~QOwW6`$4e1w{(T5>x)ZUVJjiEZ7^AKdQS04?yt7oZ&`f%&dguVKdi2hn4I*h)AkaJfagOaSq5-mfeV r|!sT$;QUXl_*qWDn@g_bLBaM%LsNMD@qUh!+PwXA?PlZR30lcPhc2eRh+J2G(Pmes^Z(8S9vb{6WFl{m;+ gyGgf7o`79BKe0;Rk6tTeN%Zm673=01em()Uf3)WTgfi{blCTGiyQ8wJZMQ?4vQ{GLU7Y^HT3L A&7@Fy&LrTFQbif~^ObF~$;1Sg%-oYiGgD&Wz#m5hV*g4*ct~qR;ru5gBz?RCI>DeyFJMbaOHd@|c?RZ0wVb6fZ77^CO5A_=?CFrdK7XWm*@Z3ns~Lle?PNouDPdD_ j$*3ivC(3pQZ%g8Hgl<})Uq10z+Q>zbTk?L0#`zCnqaxSn3YYC=73;v#MGayod>Q0=!ks-fzT`5rmlX DnDSa5cV6n~4(L5qz2W)Fbs#E28<)>u(Or3a+K)B2~_Eh8r}?MUD=+3!udvGDg?_g=vn?wAqmGr1=;> sCk?&t7|6W{!Fy>XtJd&4&<)Mn$b?5gKkcgB76vBvpkXHW&~KHk=g;p84^c#1BKYcNH-|>%nmea%hoEuai rdhgZoB>ejIIWjXufaj6Byon8gEBmoH}6wAeBy$Wn9B0gAu`pM@XM6EwVl0P!#9bEo6FM}CTBjt+b1K 7Ex0P$&mu^Uveq20JG-F>br*E?pmX&a8#y3o@-zc16Lzz=K%-ayf#$m`Dj+k9&HS)tyy)cqheU wzht9WqF94NGz`uhhCno7}SZIs`Q&FK?lodRr{#=VGkd(31E(o}$L9I|!4OZQi@0Ebiu{g8XYF1*7wH nk<1*s786fp%#Trix!@s^eR&>Y=SRVyDJ&h{$haGQEE1Jex`3H7@wOZ0dzLFsS(df&i85MW7^- rA7Tl>&@js;#YfZX};9k_Jp*f{9u3DtCjm?cZ1=f)zqq%Aa0ze`+!XLd` T-Gs`iJ=M%#-_1xjE{*4;qCpU(N~FaWAwK50%BX{oS?D8LgPFw_-#8Q2%u2IAloSTm0ht&zw@NV_^9Q @MfQG3<&a5;^evedRSK`6qQaMW%pETT)#8T0lk<9lPZ1xQS$Bfx=fwjsE$lzN3AHG yyooU!gU{Z?dXcCNMv40t8_0u*tR?TH78$yH2{-CtEN2>OsS?%#DwT>IOPUa)r*&C}~MuhGfXZ^nE&A HW+NA`ngWAR+Gu$Kfd34^Zn%2&f7P;FZYfn6Ifh|X-eAJf)%~|4r4C!vcRanB28!L4oPYOGrdX*wB9g q1R&PU@;u0sWiiD_lX;rp&PGBZqH&9b_I;Ho@dc6z0Tz{m04r6%;}j$_;g=&6SGa&&B v7AzNz>@7;xhEp=iegJN`>Y|3uDc+>l%IL7lgf3N%whhI}fU-LLz>Nx% D%~mz(%q)06rL8Mz)fvZ4yDW1xJ+e8NDrGflk>aDb$S=U1jlg8Rwf#}fG>uD853Mn3lQdC!oUT12700TTM}AZ!R`I4+pAYC2wK#^x==tkI#O;}E)=7NmoRXX9`|n;5Z>6QAg>m Rd#z>5w#)4BhH#OyaCb=XK<$PQ(FV1CsI2Rs031uVR{vlyQPJJz5MYNh4YE5XT8U@|o+R35#A;)9m;9 wgkEHHS!%5cNJwrTFco5eV}05;TKSM((7nz7;Ft%gMzq~-$&EMFt8X_m{utz_&%fxsQ82qt)`1uzw3; 0SI3j$7YkkX5kDrjZch%xeAs}ZACye9SgfZ9CP^%KuVM89o;~KXG%so1@JSDsUKp{L8e&vy8fxL3f=oe70|1e<3CYn1yrI*@xKP3fUx0vljO@(fHA*Ay+L=WvDn?H>bN=|$ng*2_H}+Aqm _;#C(SQ9jp0l{Z0yP4lfkzYbWaOm`Rg$Ee^MG#`#sY5K^$&LC`P|4p+K%5e0=~~a0&vPN@F$IU&8Tf^ ?MlbWCnc4928yKMy(7@5!}RF&y|Cy1JLlW)v66eudw8jY#P{O*dOQnxZW0aGiwj6Ry+C(zr4tkOOGO> _;~!dJ|n=j=}a=JI(uR?&l(i+T!z`dR$~{_(6%z`(cjv0cd>k(Cq)AG3UMMHLYrlkB4{%s0m28<;`#L qzx$-xU6$rED9+q~2TO9}Eg$}ht2v;NM$PO2h)k~#jhWyvy`8bP4$KPQeHg$?RmaB4kCHA9;2wYupAe kj!MG9>WMIs)nAM}FFBF0><3>^nkreG$mG|H)W$R8^f&HLf^a25VuvgO@q!}Nto1t#I0LgY2mFNG2i8 a`6m(>Z#ldPFcA{1nxYJp8^OeuUA<1@5e;Eyq*$pr+9EzU-?EBQ}SG%=unjQ*h*wasNRIU2}PlUP&;9W0HR6CG5I>6D~q6>RvBnWDgZ@%BlU6tDDm#t+X4iB-Q1xA4{@Wda$XOGShzjF{*%0%COOYvd{ y9L0|kMp)8H1$Ct!b0(Q}pG1-w0%&J{ieg@WJ+HzRoY`W{Dz6f~p|9<@V^HnRFE;NlcTV~mKLG-4NXQ 1W(S3KD>Wu9BdJNql9;vm#&D=no|4&ZfC7(mJH|=7kvS>e;=8)o&Fix7pctX*(IM5m$t`90I+t9n?I| >oQ+9=^CtLnkzftH=h0>_;{R+NCOq^2H4vHKWlOG<6|+dwXc-jA1MEq6|f@j(n1x(*^WPB_9#cX;J~G 2-65nd`^bLSI@F&~#a1-q$>IZvwz^*~&#JpgwJb*8B%qqO0$N_8#n0dD*I=bCt8_-vr7^4oddbbev@E MxWJ+1{IhJ%A OddZjSPz?Mbi;n4JzbTLpp)j14@-qp_Cp>E^x50{&@-0i0ax^F_;s(g6jn6K-k({xkRtFhDH5V?Z+$u gF^~X0-=w5%|g(`5;2lUUTD%l>`mFof}{gUmFWc%`wpb=6p!zx+bnhi#WHGbP{NCc9Q7w&*;x3io~%J v)?#x&O&-F=)Ldn9MvS*(T(E?4(;-A_w5Jt5uH0^-h*EGtF49UZfIAV+PWv4mr1n{?(2j{m0Kq!aDER PWGDnp#_)@kh5S(ox +-l28@3I3>h^+wOmmGzM~M21POy=oLeDALpTZ%1#I&%*}kw?bkOh6+7y~jOn-gpi{3()G*ZA5FLj|uF 01pbxYp?Q#LG|vXzpbk6Ew$4X!c3Hu4gSb+7RwgZ4iM??#XHz#Sg*(6_qNzT;@qd1KEcR2G-V|*uT!Y jqpDXLOUoCBnixCk;Km4r5K6Gg@k_Z_!+|9TpM&bo1w*brC6GO8cdxQ(-L!^xTb@+fo!@GXL|AZ^Q|>vw+uSnUnMY%7tbN_czj43FO%VnPsqk_#v_Xso{2pe?(&haEsSiY$7#E?fL`?Bf oa9Vh97nTdUL=NV?(Fr_38^^kn6u5Pq~B}o7Hu+elTzoP@`j%vNN8)iT{GmQ@8Ok<1&;YAnDg*c8JXR )7HjyA=VqWw=VomzfyDb}TNTPvnYX{75KErQ;N-UijwdDc)wRDC^UeZlbv)G?o(1M#;g>+F4q`b}g${ %3NNuxSfVCr)XH>=;DdNct4LX^$uX$Xm)RB)dHb4ovNQHUP`e0Re2=T9xft3i|*BI$JObgG+grp?(%p A5-?MQA7fY2&5jK{CHfi0nI)r_7iK4h~qs(2w`zN_s%`j !mA~QhVz=qA=ZZTIz&Ft6q8io2c>sO&z+}?9+tJx1QnqOm6-uk^ZoJQ8P7JX*i`5j0PmCnhOIwh#+^X !+D4d)?iqv{9y?j?HSDyh*`DuJ;S{nW9xXENNKtYsptXdtDS(PZ@H(t>@A|+RHfC$WQ f$$hz`WvuTp84V|Ky%!$))txzv0^}7J8y5%?PX&jp=ww6|HE;ZOa%>u5ZDZakdYoXP$u+cOY*Lx9I?3 Aw0aB?i&SPgE(-dyg@J{z{AtZ(8x3xdjR*S<34;x_kfCbU+(RGxA*nr<<9ZT4pf^+@CcD2^H;mMan~zIns$Qsrd+vy`L?&xdV#GJrcy?Q?RI2q|LKOV81B_JdrlU0Eae`eQfp|Sl4 bk>f`=-R1^du};yC>wY6O3Ba8_yG0_cMW#&TZXGcvZL(?Uhhos0`mfU9@n=%5bUrOR$}&XiGiBK{t1p qQbT$rLlAiadeeKTHn3>k_RS;>WSJhKggERW4qtG_NWT2_e*rklwOl%&ou;MNd3>nKiC++;na2QVH>9 gR&=Kz{7xDb{ERgO=s!36H4 9cDU@KM|89^(J^M$Q7+diPXL--=dd!(7Y#;k-wss>)*`L0k_8=bajH)yi#yi*CYatAp*bb06oYh9PK% Hy0K%_fEfL $7CBf@Jd@7&G+9pffy>FmZV`Hfl-Y9c$s@3X=(^Po7LnJoJ8}flk+z*CrV)XPyRB222Bn+7FGxK^KY& y#Q!KNjZoIW3~)u74q0Z&bBrVlXc*zX!wOc#GN-m_b6g)kAm^;-2>$zQUO=$*c69GIqoFMkW|>aL-0b MrgEab=%vJrjRdy+lG?#A82rmP{>=%m(TG!=hAS3Z3J~8J=nT!~tw@(DT~yNlL4SU41A6#{LDE2?Bez M<`I3Xn6nTb09|l9C!xlE_yEg0wBNw_d-!PD<#Lyh!&Tf`h+vw_dx?p6C?TAs}U#PWP!>iuPZ~b14uz D}Q;eC&KWe&ZnB!uaXt6m)^6Evu&rq@ZGCIBeco2=ZPvbNE_GCrf=yWW#sYhRqPj5HQK8{9M@2hAC@8FyK1VH%vZ17bN Jir{6r}+E5qrV>Ax LX?j==ba >v>sXMy5(1l8*XlzZ;7Qc{l7!J<5)6`tec-4X)?A$ed!ih4*By0IW+D<5$zcRHhw))P> 6Z-8!QA0hMM{k9+oARt)InJAK@gbpEjyb!wSR;TYFm*$Y3GbUbgip@bl3$j<5?6C9f?=Uz2( QPM=*J|CKmQEs%FjP5AvLQoZXei6vPNi$6K-s5gi7E5oE@lJPB|cdO55x||IESU2+UjGtPT%i!aC&Qo Ul)YDkzGe_rTqQCJZC*COPtlL1WG!*?M!)31aKVGo2g*h%gMOk6e}xtedGbIBSM}uXdDzkD=(tf$EGp +|4^n6mlOKhq}p?iTR-<74)Vj6?Dz{G|X0ND`7TFBf4@1W<_Kr6Ge$Ax;>`IzU7c=Gox+zH6F<*Fj(6N))iab+Rr4xl{y#Z{yd*#P*GJ)j(BtXd=zET76o#&m&yf2M~u8H%Lb&o)_NjEXw><`>MUWi#T+m ju}Pj3#EQQXASvaeMZF|=YLRVl=(a^?)p>yVk>cAqK`2JQBejuSAh7_#60N$g0HAjY0|e@>|I9(mo@o DwbxD!^=QzFOgdSr1S0xfYyv9pi>|4rqTzH=EsLWfGNg=wgZet&o^upPBnDx2VbPgXSB&@2O$J{E9RJ Z48c-HT-OQZFS*6#G(|VdL(oT&kJUtJGf!&vGfACXKe<%r{f8w;=Db8Au*>xJMo!r6?&&*yoEf?kV2ni8+y(O#CgqHEDbU66 z>a1&XQs+!6g)G(!DnfF8N-W1w!rHRbjYw%UrKG`>BV`l*oGE$u7ZRzk_6#JSq9P5cx%Aj-sVBrCM~a n1D(pG9NV@UMVaJnQVWYLdcC23=TW$y=Nppn9Gl-%O{+_%PQ%CbX-Lt14BGF8RO*v*K`IZBO5!ubR{% RavwXjpx)3i3S*A5@VJ0_Vw^52EXE|&SiRsevwEYdTaV*=08jcide;b8R?RgS%mKA|vDsS>gZ5W47x* KD^joOy<`dsxu#JNv4`G)r*D~epK%v>W_!MbQp24OYHc^`3-K)gX6X9vp F7pW%jFwgIatY#$y}7I#5N)c7;EM0bjZKC}3rf(We(85tlzfJ>FxLwXWo_S1vC~onQy}2U78v!S**F1Z)ZT 8O3qKo+=My}_%@+M8reAWWfE~Q`woUblxB#Wtu*OtTYEFtzW!kLbJ5EFutjbM=4RnG?IJXWLl~hx)`iZWJjhPK5;8X8R;BVU0)d|YqBe^MwWR#16;Fj?GkvEX&4 Rgk!%TofJkAWJH#!0ynAJGiFX@0g)g0%xB?SSF9S f_(suJROdA+Jl(!-8>7MgH69ON)-#-hX_zzMcvz*#I*lg$aa&8E!5-S<})nZa6nxWtZHXR+Iu*(8%7S *XdB8t0)63&BE^ppAL_J+AM3O=PlR4bc0j%htv|`3hotKA8xx2Oy-}(So5PGXue0|+zaEKBxf5!V=)q !n4&!pQSuf8qiO#ta)b|NTH>hr+0aSAGM%P32nkP(pLtD;m(V^@UteQ4EGrAI9*Wu(+1q15}TzYKS)8 &Ox*eTlrU;Wcw2#jaaFK^Ljo(y0#s2!;pRY^;+i|9PANhe=Kvx+8B-ZbE{m#mG;Tqitx~q@cNA8s0k{^R (5ln(`kk5@Z9@+^ZKCVt=|yAJ)jTUwpoeXHIQ58=&HrC9s}dLgsUhyBRH(@kn1R)@46G8 aUXr7ZYCtn--%D@4pbq0#I9HNpc2gSJL(o40+P*m Loig_F|^6NDSOPVZ=!?~k?8(~do)Vh1{kj4|QVDJ+*~U2esXS5wg`{dDE1hY3DVZ|Iu(ty5sOM4zq(00ZM&yX)c4&*+Dp6S!MkLzJeYjQRS377(0&JNjN47x75V^(HlLlrMf TNiEUSoT=&O{3OPXkZbZIfsbV1fNd5FAA_%z*ffXf6z?;hG(Fkm^e#pELa$T*?=^DM=DNR3Y<+Z+n4VULEImykx*-CU8AW=cj?j%opcu*kz#dU^aQHheHkXT*1Akk|1s=Y2^3Z!lGxKIpOk9mALk4bd7S|yZF`XuFo>N$_9kaNrUd;hk$F3Q_NX}w%&r4rGUv(kQ2r=Ap ;SWMgeHdH=sjRhRBjWif>O+J|C+E6W(e8k9s4nSdEeyVvBdu ~HrKdhw(Q;mu!oqpz2SFUi6bFlABD%b%I#GqN#cPx#WwCOfVp4kE*K$wka%Bwv>MDndL?4Y9x?h^w8< @nttI8?sv{SCfE=?s5sUPrtK=I>|ZM0G{ts>89G2$5tL1Jm`JG{o@q$As?z~4Ft8|$Vji^~bnzfe~^I EvMJfcrw*o14(j+w3}9q_ZrE%j$9ye{G&5)jyNs@w3k;LJnZ%cM2L_^;6ClppAmUKhfc^?KCcC>H7&C Vxnz3^GeUU!5q}qyvxg5bPqaO909Q(nbTN5ysVPNmAy2yFI!3o>QT{6@3M|lUJjrvD60du%nVOn>{+T W^O~dM39LGdXQqu@C~D7cd@{y5=z6gz;ofYj`u(ud?#tlgQSj7}J3v~+k%n^G_H!55Aj7Rxy++t`&!6 N^m&G%~NNq;=18pG-%($y;waXUyJ5*t>iq)1C|A-=`Ur>NaqAOe_yf1N=ViIf+d^Z`G%BlZUsm(gNRl k_&4Cg#6BKzU6Eu?{Y&eoG_+olH&ZC~fu#iC2M+1P2SQ9>n(B3FADMw<67Fg4c$J=X(0*MsPIclS?pp 67n7@Z-Pe-RvpFwM8C$y3Hexl$E+Pz_={R{MgH*0nKvaC<~aRN+;Hc-rhUGJ>tE Sa@job-CZhYWhXUEyV8WSj8~X%gI`0}1vQ;In(-g8Z7z6^VJ6}JE|4xY!vNC-YD% jJ@Bk)|w(0Mb`aSGuCE;linrC(f;tG0OV32Y~DV(f0Ekf^?Y(Y8P;h)Q2;Gc8&=k_Yc7_Ob8-Ix2{?@ ji8JlT7LQI*G-RUnL^bbR>>UAlu`&wqKQzSCcT$iG#YbN&lZb%5$pa7rWjJ89#}@j_MHv>nQob&_$=N ~*2-hMu;!daR84=OaqK`zDD|+KhU=0ZQgk9e1Og)3s>a{h4bQW+;~`OdGO`F--n~uJ7ivIQLmwgfHgn 1!cm#gjShf3*$m%Y{i4RMt}-p`%nm@$?X?1M9xVY9-MC2Hrh?jn6~GEqLw{~9l96zA-)w=mA$TML^r2(E_hgvot8hjNES>u$*I{=JRrlwqxc(l+)sQguQG>3@+V%xTgHCBuY- qPb-3+}C?-3ZU^yoj(qjs!5lCk1kFrMr5zA$go!w+V6PVIQxr=LB2@x09wfF>IWExa}?0jZ2v5TTqMI )H?D>H=9hdyr&#jcyTX;92~h9W?WFj@wV1FxZUJVo7v;%$G}x{gM%u3zFzq06SI~Gyvh1qnnNz`h=vTsO@$j8GG;bq}}C9Ku9{GzGX~(%+kz|`e$c(Gu#o cGEBi|P`iqA%q6CI>~{ZK`>7)y(tt7RwEI*qBZ%4OEekzw;jdI0lJ|{eBIhobaO ze-np>sZ8w%XakYUk?<2V_)4o56M#mHz1D}Hx7LBr_t28hDfMb_@2&pDv#d_(2=<{1o)en0gz<1PfC= 0{L+U~r6L<_@ue=Q_`Ns{w@!or6kst|(|1N3YP;7Z$LB3Brq$b*m7-Cr# 8+zlb*wrs)QG8Puc5@YPyb~j5QNpTlqn)d6Itid+Cgy(f|o>XXtynVBO!j=arTi@ Y7ukoL6@t+g?=P+y|w-2SZ9qP9f4F;CAw{O0CbMV8Pus6nePC1@OTX-|Vd;IovYpc7n#_yE+iyFK<`E n!>T6Zg2e(+3Lp&$Z+oD`w7VuqNhW6Zj{OUzfIHV*-p8*6LF%$15be =(9W{u0T1lLTB6>!`OjLfmr)9t;dFP#G*t_)lc%BUb0VS)?5D0JIevnnN#adc%TXY|ItYisJkAl{nL? ODBAaL+()CpfPp&W3F!8#6gFAePI@6RTzMdnU60_IOW2VQPvzBbvoTc39GHdNH=e?PkVt@*KGrpviWk }lf04Jkg4ZjMJz+SS0v;n{HuD9f}lOs~!~sUApn-TRcoM XOy`g8%AlM8vb6Ems$X%i_@k8x&h4cY{c&h%~P=t!g5N1 Ly{+NS?n@~ks)+qTR@=<81Pjg4*kZxwahq&FxVK>4^J`4B#Sx&8R{_Tys^{q*LN?q}1T9C-HYR=FPcP Iey7SUMwW_%*z9!$jhX;f6j36O=CrEOM2l(4U~8~fQjlIBIQGsV}9b%HPX8})2$iw@A@v%v~vl lkKjGr4&vk?lcG=Fc)Lfrl!}bp_@qyD4;3@qFHoLsbqBJ$dm$AzNdlTUYf^$NtN*^q#8etEBB319-{$ 3c_vG-={_e}kx33QV?&eB3{WTi@^!wS9!6`bwCv>OBDRL-r@#Mp`YW~ECRoTW0e5mJPw-o7TK@xxaY0tC6GgpddxSKH7nV3ZntQ}k%<$&fn;A(-SKJgk^s -#vwVqY*djU}@6vkKs7aYD(EaM>bN_u&ZmZBg0?m+OhEW@Watlr#;=_Qs>kC!&qh0tBHOH*lLzE?uep yX3{3K0qvTYo8@UoWAv2+Y4CjLw5#j2a;Pz~vGx?Ed`J!7zFp&u_d3C-Cq7lK&k!<%vU{WjAHvaz-+Y 0VcUhXx2n@Zlg%u@}c+w`(QmA(E(D*j9o)PIbnyI6+-G)t?Rmm)yCb{hE5J*K5z|G3}B{;V^vBR+2c) J?Mouyc}<*(YJ5;_@P`j*byREZ0^e|QB%`4;D#WJF)#{jk!fr%rLj9ORPlcqG(iQ(f{T*8Oh!?5O{im -Z~A47=r3U<3qLANS#hnc<><35_dkEm3N8Mw$dU?ohD?61_Y*IXr&Jc^uFQ^Y^4q&1Y!ugZPMk|V4x+Q!UuXNGoPz>x8U#^j_w6s2f~!Xt D!z6VAkd29sjX-!&+O A7d^G5-#>Vbr>Z95|@7F%@#I@)d1hjtydh$@D5wXOVS%8HMYVFC?|Qwc`Fch9cb6-#E>xJ9RZB_HlRb =md15|MzzPXz%OQNK0jv2(^x;3F0`i+V09HlUg(wFL#b7$8Yvmuua?9aR{qDG_1u5-6E$M*k%}$+Z5) vRkE1yREY3T-w7y}hOKpP&TEee=i6Dpk1YiwjT>%QfoW4=E0LOYSgbD^%{=<_vaA~=8fTJ8Wd#7)t#A eK{hQYvipF^Ed{*8Tk%*P!mv4b@zW(9Jk9J$py#d+$kowsX-?ETI?#iM9R`BC-IIEExT9Vj30gfLRaB Lsg>hhGaMyRizLbm)je>!-hES_Kj3nf4L4`|}Y-568bVzMLFCQMF(R?4@jLqH%^80&i%+?C7FcBjzsM ync+18%{V6Wn&^jXN-TF)cl2h)<@?lAuusJF)NyL*TsZv|Y(tebkIx77+(KH83_Ne5p}AJ5R3?u&Jmt 9uja@0Z_1(xOF43_*i&IYMoAPa_}APk>ZXi=82SR%+!@w7Cfl;1Z}n_y7P?hZ5rmerX<++MV(xvu5v< !ZFr=v5bmHi)V3M`bR-$416GN;l#D*(+dJJ`V5V1Pi3wH+D(WM~AygTXcqMme&xWfCtvmpF{}LjRbH- G#D)g4OXGLeGIJkEljrhSyLz~*veVH?rm7Eqot2TMX57`2UjakURY-55Y=i8%K?dGmGx*#<4Q&1j!b=jBEgKcnEMw|K21uU=zp+SLucTe4Wi^ym$HjPGUj`62=~-1%TfN|A&|9Oh5}h7xscB2%r6i`TDI_zGv3l9M9u?|um|4401#f#7I`iHe_qB7>p80nrKKi*h`3>ZuZ AG!UYsw9{gQCN2s~KEp{TZII=KwUnW?fwJs;ndLKL;S^;dNn=c6BCr %DILy>y))1!~4H~QL0nkdVw6^_bwCgUpNSf7?khxjS8!K}j;UvlO0y6Xxlk5qM+;myp!_;BBR&BS;tb CzAzJ9fFbhs-yr`VLK^_lIHDgo;X_$PWl&#T204MY8G#T{@0i1QxdRv$hXZMj>HQcQMQ;G2H!X)bo!F hLs|oG716+l>p;)NNY_13!iT-@n-UixRPTJP}J#q*-K7b@OPV0UPHN7Nmo&&b#rJbI^bbP~6F+&C{4( c?uaVi~_bgO{?5A*1fy579LN}3?GHT(#Nn?`-azgevblq|1dvbsO{mlnt#BMf6%ZSL$58vdk5cO07-t )nQeV$rn1PS%dI8mqrty}$sWvT4`w#YHN>WRpGLHj162+PT#yfOu`*e%eY!%XEUV0`@cY>dzHv!9ful !2oDGHpi7xfP%Yk@aq$+r>oJ(-lB2Vr(=F=Uub+jq;1wy8@P)PJfL97Qg=yVhzNp4{bsEnY8l&oTwf{ s9$2T_Y^v&lY>Kes2A05%sv2n`w^xWzE|Mc$uY|zlxqW> MhM28eOOs`NfVc94tB!hbUMG#k0;BOxO`S7U#*rxqJM*y@wcUGgIF#rV|2F;4ojMHLY(X>m{m3Ve?3- Au1|44qleGXq1t~rm}d>(j@0aT8h!d6PQf%Xm9u6=xcVC$88E^XovNVi-P06JCg^;_r3^g@_T&@!!MU w*@LOZsYvmF7JHgPGcZFjZhI3KSOo>3uT?g>$_o1YO^HbuB{JB6zyaB+3J`+4M3PnX0xQh|s-z2buv0 G>J);G6?NASu+N7+<-=hP>j_i|^86@>}li@7QF_1Z}!fmo-a06_p#0)$D^SM&FQQOR*G{|_0=BACX3+ ZwQ3>sIU)&vy%(AF_9)6U_35Mf+8>$j-Xw?J@MnDUsEOF=pN<3SBHzjY12aUV=c)X!tQ2MV@pk&FKI4{5c;=jGp-OFr?fOQ3Lt;_Ck7&-9100)teX-p(R}&87ksaHmTVEOcDURC*DW4jb4k Qx1bDr~6^)%)4)QzYYFGmAo88V+A_nTXZvuNN_SYP-LUs5Dt-F=!DULFaBI5UbO4ir9$~ZE=cFH3-?2 r&Q{>k!Wdtl@g^aY8Gb$_kxr*CGDr_`Vo$j}=snwT(ZF*@g=~;SQ-{=3)g~tR&Tp`QevgrpwF5l%n1; J*zb4>_v5YPU1Y6HID1d*$hNJY-QFm5SB?a6t)%i16^oqf-7=v~!`5 `t-cuxrL=-RmISvxF9ju2!|!mMfk4hUZlw(uk$EF^Cpy;jNcd|nFP;8yXOMcb#F)q&J3p+H<9Y%Qd&( >tG9VN9Vh6tQjyH>Rt?g61q=(<^h-cY%%zl)^Vx&e?l1XR2-);#j)HX+7KK*Vfk5^{QH+>r}f?eS32g Dc_XSGLOxTuFmBF$$1^Q(D9@4jrOH~cM^?~Nh*phX&dyO)Xbqa$wq3$MSsSHqX%^FQ@Q9RlyW02&*fI g71`D46`yij7KP;FmTDC`vsBqkvI?^rEX2RF>M{x-`#IP!oYr%w&y97~MkJb)h5pGm`?WrEHqv 0sY>QeK9|lS-lQ50mM9c}^=%j;v-aNBAc*mz2qX#UID rYEn&c6s7l;lH=uv&eH640q%yB13qno;K>U)EO!30*rLpAow*3rrm}PYRXHbUL4TEfq{>((+||NP>e3 LzBRyBlG3{;T}B)RJzZ*D^v3nSJf*Vdb}?1gudY!c33e+hJne+jYkn?MwyW}G2|~MHJYdDR?PO%vp)b IaA)}N#e)B=1Ah_UCYjaXQ~pz5Qk(zF*V sQd_AOjtrQ4_H|ixyAodx`#Y}P)V~{7o;of2JV(Yn*A?ty8wUu#df0o{CF49Gf|7>hQjm>r4_-upnQ# >*dtkM|R3e>iZNqqJ(U%V>Eiq)NobS0<0SPn1Fs-~LNp%?2U*w%w@RVqO+G4RrnI*>waIG|4r&!xk9L (Asj-Qm8rayUXT1}OR_O7ieAfLOOdVqG@?sz#NnNMpQHvdYev2+3EHwL&h7Z6EFKGIZ=6aJ5+p4l^2%z80km@#+RAO#oTSxoma2178dI_PA>{ c)3mH|cLBzy1(kT2FdR)Vp2i$d_n78N__A7lkn7x+wI=|E%ErN853SJ@=S*> -hjHYb=m`-5Swylm-c88%8FN`dq%oo~2s^X*MmJRwt`t2;9V(IAqw3s<^h7*srwvl?$U5rD`q#OYx1$ |!EJZ-|7Zpy>Sq3&4VI3G_cSxTEJZ(B@g@2hQdh<*?#xFH2SYpVfc%wN^Ds+jbaUt<^DpWc`rfEBOG6<{gJ~s7O&{^y1<1gD=h%hJuhn$-k%8-V(eGD7Y)UCu_xT-g dPqn!ZeP$Bzb~V$GY-|w^5L01>|7s4To-Uc=*`c1z~Svl9?<0%y%$-q>7CvUHN~NWQ53ebQ$-zjXCz1 %ESTi;ZW)k(gKpC2l^@K{R@ZnfhjM82_(jzxQ;xRyD#36;iJo9G*;aMmM>&Yt6!uUX!K{SR&ouq*2&q >M9|nqn8dff01zw~jCi%EZC?DZkJ2Y$BeqKYCURwdLRv{S|VlavTrQ4B3RAoDyggfTcXrCo& kn_^%lZI^fG5gYAuv|X0+f(Uh845p;Wn#3DmSP7*@xscova9Fr+m`3Ybh2SS37vXV78?7!fYky_C12tFS%Oz yX}#`o$_Wza<3E5N^_&AF$`3{tR(CYNmB5kO4@~v8dsW`1B!Jw^A1D hOmBHuCQKya!||5+`ki2 Lp&B;Pb=q#aas9{@jMwajNYV9lwl4U`Wp@en{wTYVgKyId1h+%T&)Q6b?V4$++2o%j>{JW(TZ$y&Cnk Nm4xM;AcBOTjk(6dFRF8I}2@`WGmpyQHMsrSfdEjcAs@vhvbHvV8JRPexQ )(+covI$Ur*2K^KHow`1E#y2c3@lq>QV?&&iQ;z!9iPkc4_WH{;8lJLzYit@uU`l6pvSOMqXM*Ix vA81uoXW$P@a>QUhEl>c&?*LHN5Ud`#vBrYS+^wL#{kXBBnLt-FRvuIUove>2P%P+wr3a+i0N2^vJf= >8l;yo{(O}cO9?Ey20lo0jaPcKcou)UQ7?;6mfXe(Z}lVPx5G--}s_FjMb$;mKCn|6B-Ks|p3#i1>V62o+xYRGX&hvdCd+<*+G`YoowH@E>u` Wq(i#C7sV%{=u`aVpS~jxcfM8de$uYADn-l4`){v$p`WiJ}QDFGWaQXHBJzolxE<*W%|aCz@iR1u06Z `QQ&gs^-t1bs>HF$sdDdVx?k%4D!gCnBX|&q`uRt#I$=jZ80Sz=R(cz6zSF`hyOTvdGKcP^5FPna`pW5vc?!GHYmM?RL3oMXT*PDE 1*d=F3v2RVeZz+#iot+=7gf8qgbVZ8lXJxZZeNuVHc {HI!<|xG!=!w$&Su#${~_9T|CvaSUIC+k9C{0pt1tD;={m5A37-dPG8z_MsyP2r9mRJc}ix6%1+AHa7 r){9JS1_}R7-NwOaNAhFSOcr4T^fjO}vjB^il5N+Z>I4{cvmh@zSV{x9RpilfjakrF#b=oK|8Qw;V$F 7{}=&VC!r(V{e2+(Z0qR_C~K1vEJRl!@Bzdn2V$!DK@{`}KVKHCn$=g;5`FxX$7J$wHAvu9h+KmGj0C !c-x;`1$hODkMx8?K6XG1gkhCcwuy?dQq+I{U@AcV|7gz!k2!s#u9AF|%VaORAZS(1y@=LqV?aR6&gi 4Yh({amsV%lq55`o^-+qJe#PDFk-UcBQ1*@4mID2VPduPDYrDeyM*P!Xsl%|d1V03Cso?XvUNJ+9UFK `iLhHfnp0V<6jQ*sVn55~nY(M4V%>Rs31nTYz#Rx}<1S>Gl(i<6e%Co>Ywygcx-iacW9YJSrgop+b0P xUcivY~2?j0QThVA@7@NiczKAp^dc|KSu%OhKc%cuf$elKo-3I*^nj*?m=h5V3=jhwLlgY^et;yQu5Q 3Tq(kLWNE*#1;&?&Y}wMU+VwxOSs5;J`CyJ3^K=7_V{Tbh`3z+=i#5z@6aWAK2modQMO>AXZeS*~0001H 0RS5S003}la4%nWWo~3|axY|Qb98KJVlQ_yGA?C!W$e9ud=y2tFx>N%bdpJWfCK^rh!7MEYIKN_9fAX 7LR5l-12aTO(7TWw$1e=sfGdGyJELjZQFpKIv+mV+ZAORX+RxW*9eEs}(zHTtY IKA^n_F-7^X3-o5W1@9+KRs&9RaF)<8dhCfwhn1hV=&&mAre{uNBnej>v^H RoJmmD-Kf9sM}{yR1oZfdyqCk?mXUHIeM@44q*zVKf*7B&d?6y9-9Va3g!!n^O?u<^?5?93t^$8ol4( Gz!keRuLN?XoR*KMwCl23&W)MBkh4{xyA9-2EB6pBmSA_b({yH+P?*@lG9{*Wa7z`<6R?>_>e6sP1kT !z?#gn5^ut|0NmM%@_??hD?SDL*O@B+zpH1VS~R;ohtZkWEcx$py|ms^MZjA@s2_xBs-faAi}2JsTck C)Bx0hqBJlAo*$^-GY00a45-R+hAH^(I-&ofzJhu-8U8W&mHftSJiLE&Sg#Pa)qEjLA;a8uWy6Ns`P& (0%@umvuY|wXFNA|~omXmL%)09^#-QQ+`}g3&S2k>J_%VFbwnCekRq!?%zK^eA<6ZXx;1o`y0mbM29^ 8_D+`|9=-~W?;tK~kgf8Cc(M$KE*>15>o-SOFrnP6C$9314Y_4^^ktL80-q&->!KgEAAi(vwc-v-_74 `Wt=4KQk_k^zu5fV79}YNOvroEVFE`xwNDA42@te}lNW&&)E+?iS->#{Or?l@J?QMwlOR+1#pN4FwZJ s_Iuks`-(#-Q>|r8AgkBlZ~pXim&Gf3~C;O)v8X|-y%Wx~xJwuEyQGwzk-l8Fo>zHWtoTPVif;fQgMNBrFYv67TPGXqASDkO*lT95C0XE4l@l8aapw5CPU>ORR8cf=Y^Qe zw-;|P?a0sGA`;sOQ_xpxY~c;tRkM#)y_i1Cx;{^F>~6%SaRtO+%~cjh@jDgRyB0rJFV_LBH`hLKzYG L!?dX}IS5MLa*77U2a-2?Hc&3Wf%th?7t)x!)dk3~^6{{RwD>B=osSJx06wid_Q%3lv)ez)y~rOUyPT ;yk&!$5h=NVCGg6Re=8q@gs&T)=D~pjqzb?c2A~sYM&ZDT&Osip)RkRqyheVIqTp;hybe8LmybA+J0q ~tdr_~qdgp8+*tMgB8rgWS`E15I8-+_HB1p5I#0n3@{kiD_PceA;4-)4Y%jLx2Uof)u_|xzFc!D#!@~Zr}ztxo5UUMM ~f@%2&CL5#ffAEABqx21w)trEm;N_gIudE&}?zr8OU&}c~&}ZojMN}czyOkFZ@&UHXH{D;Pr-FJpjc+AfT$H1nQ^e `L(3Ld4%-(*FXdOn-nTAHqj(G?)7OI?>df+%i9JoouJS#HE)eZswraJD5MR#Sd+j749IbimJeyQQCcU 2Us;c>X}A}_@8k}wW_|Jk`JFpEEMmm$INsp%c>N=}Kx#hSOso^<=;X*grgW-M&M%M_3QBF5`jE-L`u%M`_yv;GfwPeDma KyP5oP@;@j2z-x&cc-7=;vC#f;TqD212E!8zbAemM(b9r4>LvPhe0z88|CocH#xcxW%4!FMbo(iaKz1b@afosa2$=yUa8^AjZcM<~h>wjOz}PsB7)Mkv+D|!L3Bin T4p$sMAgO!<_Vy`0M;uo943GK&WCQf}Q)RUY-X=CCR6Y|(uYTacGRkV>7#XLLag2l_*6PgD+_xcf>;w RU*aIx9`g~H5oCPB0Igy`H);Hy@3q16qD7w5{(~o#6t+MNw 5I>DIi$a0a5VrIs0an00wg{+x$0Ir(zP%Qh6MmQ6l{k8lg2PyF qrDF3;HYAjV(Fpk%B$&LE00l8Z#HYM@txr1MloZ05AC?B=`qtbT>q+`zZL67@OaRv2P$SMFMj}bBGoU +$25y9(+mry6_o14bQ_kuDyCaeLfJNKA*Y|2?}F37wYGT3FT^D6@2+#M)9;V^h7_T-m=o|^P>u=<`qF &DA-RMN^|<1PzN9RY6wfW>7qj?Ss?(c``$i_)$7Dc=R&1x$m{R~93ZIOev1LIE(E};aua-S&DK-YyxW jq2LBbgsJyI0>OW4Kduj-&GJlv3CAGAV$|~eN->B#+pw*;Ykc^r``;TIHatOIZ-PcE13H5|yD1m^*QtM08P5#);Zn#VE}H4#9uNCpptY)mR1FVQt<5M#jZnb==Z}Adt$s5jsbkHk7ay2Dlh02g039R$YeZntngx }^HeHG}{N*^khWQk;LL1tgjLd>!G-%-q*=3bVKt-!ttBa44^s(XtI#$gyLpRrp3uf}>K%rs@%oM}snw 3BXbFvR(!S|r~t6-ohMWIbbWgHea{)dW__93LE&>ZfjA_f?29xb38!!vnS+IJdYl`(TayrlV_f-mY;?-(~aGrtdQO^u><$hHn(3 {4Hb~#B5D8+pCzZ#uo|>;5ceaV~WpsJptC=dme|{d};;Q!yv-XV4mO8JP!?M-Pa;uCXk@}@LgZ_G`>> 2WU(b#hVs&M;S1W0v;19v1bD$suBT-OjO(?|dXLjHWSWMMcrbSmn&lEd`;DH(O0#J2&;9^>DA)zGa(k tx@l8AloMoZKD%O7CH(2|QGg$jF3h4JEVr1ACAvVCR_4p_gl4a@0gGJDPTd39!;sNalq^_ID1(ZRxIF LQ-j$>c$oIX=14%pU)mK6qOx=FT?p`@e4_UVjYeFph9mvU&xyxy&&2nBo2QB11n~7Cl%|be=t>UmnpYWjQKR>l!npNZVF+}fHA~h&3ehRz~7^c ^(>{=lYhr)oTg8#1DG}6pjPK0Ph=rAN<8E~h(1RC6G(o{k&VMiFrJC_{sv4K5NP3kpy~urdF`s y*kccam~(s#g}@||Oa253M~nd#m?6W^srIn)06+*#@(~cMY?1bTf^f6YTwx(+HrYmVf|kW79bj 11mpOz&^5Yb`z(~l|@AhM5$b*;CUQ>318f}AmbA=eTNv@ul3vC9KWT5zU^^pI9{813-y rf*QC`kTipbh?3c#z##U6i7$K$pI5CBzf~z`-U+JKO?~8aeK0+sw)7fX1kHq9#7l@U2 +B2FqDr$4~X+7qRFiSwVF)qD;kDBw?V?-;M0{>`dq?mee2#Q2T_rvCLxQV2Yw@@g6ID?sD0F!@^r^w1 V>W4EAK{a=;^(K8E_pNx4g^?F2p5ua;IpG(^Ou#`mP!(^6xX_>CF99m5Sbkz;cirYxQR3IdDN>o6O68 KR_g^<51gMkP^{)t(kWSMK6-5KnEVS}5!k!w*;_NzF|{|FU4rm;^W%kWodt45{F6jZ(**9_czFL|;Mc~( <0-Q)%c)ktYc##@Pf>P1@`MjqlneKkU(>M$tem$?%B1hNLQATyGi5mR+SVyRJ_9E)E0+qOz87WQMUzb aX|>MkiquJTJO%yNz+`=E6(!;hD#5E={g9J1pBWAaSA$nNsO28MY%HGsF%$HyMRov 1*eM3Na{|G7FfUW=sT&@Ti&52+(H(ea%@&m%yiHK_6*dsQJf RNYUPjlj|px8*Xz;^L3F17?R9U)+!_#&6vU(?=n9pdY6Fe$*HtIt!!IXml8qF16amSJZ2h^kynWO8^=mtlLZT45mhl Sr!_vgm^qD %3IDagU^#4lzA1GQI@)+MpfpNXL-r-j=Qcrx?QgHQhwG x`y6YLHsT`##!&``{9Azn%MJAvnH#(!x_Br|+W;T!924!!ZBEMbS9yw~d5}QOE36Dmsx?Zc*j DIO^PU3gj+sHlcy8lFF>G^_9hcyYZEdd7-~q&C#U%_a%V-YTaz~_LMma4ozxg(+x>Hq)BhXNaXk8)Au H}7ZOx|i1QJ%|foS^5SmAvBn;KxS)$rVLb4@jL`0@Q;dN4ZpoMa9sUX^upd8R42EXDTfQ* ?(6g>l_{ou88+=;f)2Ots4=qvGMng+R*5mU$eJ0?UBoWkiyhzyQ1%Lf3R0#%r9kP2;)UF(BAAt>V%I7 !(ircvC4H{k2Ic@i6;vPb9FE^}IDR9A^%B)~%k qW4*~7h`0%bg&fa*Ph6PM3T4laVeZU@~&s*XF}1hKJw3XYn~acJH*1(mGc{{!D;)$HbRv{14ZYd5pE7 UYTJ%^gbv-S!h}hQ1Z!#)j)c6&Y+fE?R7zKn@||*Bw#5AjTX639O8BlfQvlUIS4XF$U=&hFOqkau*2Z Y+|009IeWOv{@^$nm%f@Ph=jdVO -E4Tvk%CSZPK^tM(H^LuIbqEtlY8p4AgzR+6e^nh`(9M@ 9j*?&JR0m^)Nywc?6XW54_{&&rkgl50RokGTeL(FiQHmcKwjIuKt06D^RloNL7mN_p7P)nEkmura|s^ eRO7)N64uMTiq`CBw|!VKyu>G{%cR2H`%pF(Ehh_u_h*qjsQSo!B_Q@H1Y<$;E!c@!^&XIWi;+$Pp!7 j^anO_^6Ua=N?DbR-+tsxDs2}0@34M@+j1##!b#wBo`(gKv}rK;EES_&2=S|A}?VVp^^!)w}{X^{7mQ ^)fI0wK=W==LGN%4fK3&=l+M+;y|3Z?(`Z$B>=RATnp8=VliyB4T7%}w^gfDEE3AcbtQe&CkYMX=(PC ^$ADC3kx1i&OC!xJB2|ZA~i{Ii?HNdtmbS A>*cdh}DI?_*^&4S4?0znC0*h0L}BK6}V}L(NeIBE=ZP~*9^VjX&TuLK`C?^pHFn*^Xd2SxvvwShmPU $$iq*>=_}MnUr)EwSMYWEdM->~e|QaEPd!Q(HD#AMRBe_*xTq4N(ZCNg~}IjK@@ZnHShOyc@wJ*lht00oHkHZta_s-Rp6FIbz;5!t+ixHe@X~>)lwvznnx`mfkj39CE WYPSh}YHW@W%|c#@e3djm%D@0!vN^Yv?;)LcD?)3(kVV^G2PG1aQw7c&|)3G87v{v$Dsd34^9T{hhCB D-=^{rs+qt2iA|&?l^P4YisDQ8i6wsld8@6!1SOVDBRgsOsnlmt*ygqhr_W`s>9- 3`9gAVjM1^yk9StF;aDcUkJjUJFo!Ecg&f`9k?1Zw*l-?fHmrwf5Zrw88Zp*DRjBi0AXkX2!2$>$H#eH3_2z)V<0bDep<^33*%9 R)9>&4x1AT*qOafcH%-lO0zT|ZIW>)Sh{!pqN7(8l%ww#Q7XOVNCKpju~d`9H+w84sN%uQg;9CvhXw# ofXKgtvgOP4rKHk^e#DAa_ha=av)Oz9A#yllAO<2p)sWtOl;-C0e=}sK#EhdZ70?YR<%EAzmCY9 gPfIprla2(^#eiW8OqdErC++rv^MoaaL;#ZWtBH%V5%FP3=lX(}GOFq`FuqsBmY7mRZr;MR8&dD*E4D tjp#5EkG`10acbkv~0D>H(LiIEYA)_aIWV~^0ItdFqUfO5hVzRxwvICU~(nu&|Cq*T8M)6C*x5*0v7I xFcmV{sRk48dD=0`9OT>CXF&p@DT;y1aa#X@C8fIY`jS%MY)W3D{pkyax79c-EKp?gN*R@4Fkpd53qw @-=72)t!W>m770XdgH{d)iOcx2m+p2iBN|@jY3@EH8a8@zl_FNur+R5osK^hnm%0yB#4(p7SAh*M(Sc tN5ech;X>#?8m`W$a=U+c)Gb@0fj63gGxI%oz!y536${#tQiiOQGgRS~8YzscKf;Mp7gK`lgU8jL(8k GyM3)#4OkJubD9~ERok4FOz}1rx7Hz(^4G{07OAmE?`#6?56@?@zjJGd!*X#GtZaR<^p5Co1Kyz1?M!8{u*7!vEl6H80HJWn93)=9|b!b*T5 c!K+M&*g!UGJ4r_)=sMl}F0B)tLBxxb@^&oCkp&;baXH>Vknx*U7xsEfu*Ad;mM6K@GmMOcsTk}B+>CsYDB?tBMT-VQo*nRIy`(dpaxIS6JWv#d!KoZK} ;8#5}cpi&o^Q)jgr)sC)j$d%T;BH%fdm24MI7C#ZYzkwPUq)Mxh<0TA`$>6ez8*NODmo&@+eyFt8w1n ?x#qI>aC=>S@`0;yLKIeBhcM0jS%6y#Hw1T~47+ZiRBfzR_~Qd&Op(*-#f96- g>gQBaFZ!jN$ZRg+stwrpgMt;Ds&8p(QQU$0LZcz$?|X}h{$xZ821m+c1qa8AdMX(xWUv0YUZrWX@{QJngS-6`acR4=d-}jK4p%S4@hJeva*7Rx=OSh|z7_i-28Odb>ax? >%D}a{DRFBt99E_&)#Dq(*lo*x*vMEXE2|A&tK((Si{6|FSd}sms5RO?_^NkLwJW`jDY{XswmfI*Hs2 **>1(}cKlf|95`GgCBbdQlY-7I{KTcyH#xOg%h^UtKK70PR)MTqaH(2u!9WmB9~1^BaKO2uHMRpb|V$ #3Uk&&SE+8*oF(^LO;LTwtK9$5cgoM^(nll?Av>?k4dsfJ*fRV0G178C(^m+}n=b^fy+Y=E8KLILX7o (URXjqw#Py6z$}*DGDIew*V3Kl82Qf50i!Jg=!g^u*!QfuF!m_T(CCj^OAaW_(0j`-c7ZM5rdF1*wg} 944~S>2q_qJRv7q+VDdNsG+=xW)5j=Fy;#ZMDbSau>H5;0I+!~JM)z}-6LJ))kW }%`XqAxDxx-KmvD?76c}V-9PChwZQ~#_U^1iO#DjXR}OBFn3ezfYmdQUp;Bh|7VQaCh5Diq;1lwcvJC TTlDMH7>Y>m{Ed0im&L{OsSMu>{bET))yCr0j!brE@L=Ns{FSixVu&c8EM!eJd^@SkSqgx8N|ncK1T~ Za#=HcvwLA^5rbL%+Q(-F~Vu_AP?`HE$`Yp%3dH0Zv983>K+oDL?sU!C?Fo>6f$VjBWz>|jrjEhoPiV M;7ls4*uYd$_&3~i&3hd!;v!t-Zn+6WS^vaR4#vQ0`S4@G-nw4&^AKOBH+YNHa)mqaA2~o58s1;WwYaZFF4o5X%t&EMkDU6k+^``+}v4(Y4pz3#Kk+>?b^ ^o}ts|>H%qWTw0A@oo!&*FDm5G;Y5tz4#rTtfuAMDxAK!npD87nO246t4!6U6{i*??m2CSdu{vQ;GG5 IW!u$5F23Bt(bq-}wq2ln8ckEd>T#uLz5A5BKQ5;?}`VkrZ+*gE-zu7Jo|>zf>go{1 qa}}YMg^nCl~w!jd#+m#F(oe!Fr#hiAFB?7#+U}@v{-oL c}+XSutpTZxdDN#l;Md1FF7f*d%2 `IW0_?CgxyiDb+SJ5?@)|cU8xlsE_j-*p7t|b3+~qk3fF7>QnrYX2TWeS6*`? PS*dFST(A`@+?F;91U*mdVigwE;hjDx20(oEb2Jj4!SeQh2Fq{gu8Mf^9yD9{94?VL3Oq2cSv?&a j5dV7`JU5AF9M{F$=XUxt7P1xzzbDc*$lIST!^(n_n1o!n|*Fd&wI#x>ET$dNcGWKMpJ)Z_PlxEt~E* n*YlY`%?V_$0gcK0*5gK8I<{1x;h9 r|2N7mP#4uYMB{>;%mPk7oH!WtO5EmuGtR9unqI4GsFZooZ`#38lmi&w=jQ!*_cuOTP!TU=poXiHbl) r$S0#f!DsPGD_T*+$Txfph_gHCh3Hpb;@TWB?rJPCO% 2uUJU_km`@uMgb-oV8Y7{$OsX;z6)N`%%%2gL;`Oe?YJ(DAW)PZ*%TkCcENt7n)peH#MpZUnHkpScUx `YE|&kD*TB27Q?Oqt#wh{Fhar60c341`|;+xyM?)8dEsTa`&{V9H~Eb2bm9IHC$9#{e~X%j@#5<&3?q mkj~nRzaoHLxKi;nqf?9+Xaj(S!mGZ0cRxz%?^(?72p-DOwj{~3W(D|%Lc7 0T`JhCyFYm!W6msj_M4QX=G&{Z{IL!ek|NWNR17S1?jS^J#_4rt@YwrraIKCmW|w``9roaAX4@OL~(i ?m#A4!{{rS(}iM63twvKZjz5|`3q{FSEVvZwLMCfv`9(!k+qm~vAzGV02u|WbJYu0vO`+S#6=*(-DH- kEuOJ~ab)O2RFtnxxpBaZ>c>V~01;V=9;eQ2^e7Ilp?50j&?%_HCd)kw$~2jdh5CJ #Pdlo`__TuCB_;_K$;xW!2a`pg${w#BwK@5C*=b+UjuppToZ4G^Qc34f-Y@H*r*@DT`0aGnS9NJbDx) QcxU2DEm>2hn2)YwIBu&kXo@p*DIV5}*Q@H63$g+KTfmXaa#{Dm2?3ry);w8~b&pgN3I+>H-qwYqhk{ 4PPagqqMMR!&n^%2APU{57CI@t0JAmazLA_6F4wzC=C$<-=H~-S|)@9>#|5#)p!57@N8qANu;WTdO!| |Msxh*lhsK5?7{O-9mc6L>2%CmAQJ*=va!ToIQ*OCWl!*6I#Su#9^~ARlfN)sro%>*=-OnERt{DAXRt 9mTh<#P%RBl7_%A4QFq$p=? Oe#20W_sSyavIf*1AG^Qxsq7R+~=dc_9^g{f+3dkT}>p91K{U|U^uH;#W?NtozXOFL7LYNwcuDeCSbJ v|4ytp}}?Y>J?F3$Qy3lfB4#AK}T^iW5nHU>N?f%5`gi=3+g|pwQTnEA80S_Fy{@cWK*$HvtzcjaB;H fGChn)+Lg=Q(OFM9svZ&&cH+R0V{DJfYg}4QxTPS;gH>pK9BINZn=wmgKK1CyN^5$)rmr}P!B*~gnlw 0#>muRO&Z|g30&?_ORrd4GQ8yV_mOo6p`<>D$K!R>!FeY=LI>rb+5WTlseer!N}En3%r2L{L>;*`7`?I@x9OGDhNfOwS_b(&FgbMPkL7aYNBEr{P`@?nXbzcXMS93l0CH=-VuW|H4PpBv5e#aT^XViIiqA%q+&u4T6URm f^t-2-i5eHdh^_dtY6fjdIi!bwnFDdJ_6X@^IJ0&{7-3E~2roB~Nx;6;X}u(ENk?1WOASSh<{%?*lyZ W%jBc?4gx$vD)G!-39Un%z;8OhvGpYIGUdV!+^8|^4EZxbtzs3fI3ec2V~kA;LMfpfHtM?ohSam-uX- bjFOUflCmCQ4*&oagD>QITr3r&&c1$5o<8~X`;<*_QCd;F+;^g{p8q+(LF(A3TySe)zeatH29v!C#VDp>TXn< _V2U9NOKh;v)GzGmweKnAQkCa@0c pKYf=TxL4O_{4^i3MFxL7~S_v) ~bTK+Tq1%SZgCH2XCyfx|6^wwYSEb6=~fv`}kggplUCEJ779~&Yueiia+$YiL+8)2@ ($Ztq^$_tL62P7hU?=mhhaq51R~e|B;IOx!+cZmwcSUlePt#%c4@}!GFE?<08g@npZ*f6~`IA5>JsYw ug6Fm$g1@VewvtvVvti>nul8y@7Z_K`g)>3SyeOwRV^+T8hq)dIXI2cqhF%V|^XEkD1;;_c5UK%1Vv& d>#ZUDmAjtNV<+p^drT|>=C@11HY!yi5}E0dU6=GuLM1_4P<{JvIh+!Ig%Q8!48n9nlrD%W!=n?hOb9 0p4uq)$7-ur{ubnpp%Rqfk?yS%ya9Hsr#@8W8nGOm^cmc+`Qof*tel|xV|-f5c*>TmZBSTR%zzPKx?J %r^Z-9oBxZh+NV0ir6>qYKqX+Q@lIX$l^oiG;L=TQL(}Of%>GxAZ94`_n@VQAz0b=G3w964`hgsUeN; |BPPi$F{&<@-4&p-b%Dgk)5u(F`|?IW0RSFWMe=Db-L3OzUtS&yM{EX1u4hLXalxv#)-!O-x9g5*1N_ }gMu^O)mKhI&!s^q8PcYi*(TWH=qMhJjtduK~0zh!KS?VZJ2v^fwT}?QiGyn;h+1Cl*JX?$G1em>wv+ h1@-r^3<-S1~F=E2@5BoySCs>E077wb3@q(>ZT`wo?3=0k{*bM*z;W|YfkL TcF8!9Dz-Oo>2a`>mp<4^Z;mKPwo0jKHvxQa`D%s+9lebziSQuK_-D*=zZ49&6@lHcq(seRDMtR@rUj TBLT-FCu*hW048{bV22QAygPZM|E#qg8lt$wPd7LwC%P%V{Q--kAJHu*pON&RrEUlMv8rSyc+wJ;@2@ s3dyM>JK@OJ2eJyAeoQ=9einWbf!V4U5tyGkg4Vok $#9KN>gd90aUP;i66x`c@hS|eq2b(hR{NB&8WLJ+EE-CMa&xS9WRdOC>I1iA`YA^lv(>;_JUTAXMNtq unr3$$S@E#o$7_^r3GF$c`P6J^~4g~xPQPbZMK%JCftKKW||tm29)pOQmOFGuAG(*uB8oUjs 2A{QaXBn$6SEshJ0Kg?Ey4*c9cj$cj&(!)A~j!-c@OUK{l7$zlhr(R)A#PyPCE`B3t2@2G|VC9Puq*% 8htxx@i$3bVA3eu5Pi71#{jE7#e!z7}PDc6g@l{atE4@ %-)yq?7(u| SPTuUWHzKmNqFeK#RGtY^$=w%D!C3^In`hRgj>>ybJC#l#G)r{pH#?ag$%fP_?Y{d*pIL)!D(yO- 3&GC2o6JaC92DAnp*r2r2$5IRuxQ_vGTlvy|PFPv6!(1yk^ZDd?zT+|p>PmzOWK)k{_v3(-!6(3Emyg 2wD!%kv9bTQ{X+La&y9Bcc%mRz6CY*4Aw-rhTr`QJbpv1Ui~i75}geD?Sb5Jn9F@5pBewRRWcLjyf+W v%wk>3Y&+uTpqFqbCGplBo~nsv$(OF!EN7@5Em88-RPYoj1QbAUYvMi7L1_ok74~p99SVpDRfK*OHY0 Xttxcfc4Oe+*uYC;1L4s?XuUh;VsTNq`GGhOH0Cqtl{=UwK9B%K4=9`rM{Q~~D*%G`0N(NvUC25)>UD +Hz>^^&Bw*DBsDbqVQMEvE#rwUIbOIacLEK!$Gf`3g-tqd1+|+VeCYy!PhL*}jH3YRernftjK&{+ovsEy7}hdYKt`whAYS)(1rB95c^UxZ2XQy}2yWmO$ J}HWjq21x+bJ^4Pwso29*C45#Db&Z5ot$|a5=evVICKmybg6U-tn`5Ha17cn(B3DWfrm;^V |qg1gvYLe15^=&A3ev4iYJzwFPkTwBVZUW712TZ^P4OJbf7tc-JYO dGLuPQgub1?w}JsC3{<=o+8R5`^%GBx}>`H^FE(lHy9!qDo(EdfJlHG7MDCHZx_e)0?fc{3iBSx_6tL t+CsZP$&?yvw~I*Gsxz4SLendC6TyWHEb(Bck~ba}W+ahKmS$s9S9*dJ{R0ZoXCwTg0kiwLa!lnM|q5 1Rpb)%r@sG5U{saT_u-Nm!_~YdUG>=UQ^;wiM){*M>b%r==aC|KQD5I<27QfUrS9JwYNa{S9g)pf>va-uGcirK&1e#Dvol)#;8~anmAi_OIjEB9ZK# yvc*6;>6cv%p4!oX`;l~EXC3bN`CvZVm4TXO^=Oi5g&WDj8zjB$(lo{a&5;c~BoE6TxD5r=Gf095!(e`_ajm_PLs8 JC0YutzTQ$5k;4@L2WzRXCFk~JaQCg^qQb5Tvle81C!vE8K8US;w2^z60npUTBHe;gMOT&-q1Y!Qb8T+S0{CML=!5!YVP(q7kW>0CY>VCbK-Z0$9 PUGQ+8jxmUi-E6mbS}*Jmj^z@xh?%k52{nCz#T&KU*g?@+ho%j8PdCod|F2h|<(d~Pp!sGa&8w^SwlR XNDl626}kyU(M`ayp(?6yH?WLq@UQ48x&Lj;V;;!6hT=ITE4V8k))+ uWgU!&{8eSESz(-;+^FhApAJMvUnNrEZEbs9<~Ac>etrNs`yy?fM0<`69;n(Tn_xb@ Y@8lV$+lk7T8mVc!6#HXLo9TWrgu>Pk<30nV}+88|EuALE}E?cRi1d|h>-hB8^ki%W#A=%i$ShuR@O8Akta$EV@6Vv^#iy`w)TI ~4G4R$^(9e6Fd^WM2O14}1%ws>b*T7Gd>dbp>nu;T@V8!kcDF*(a&4S6#DIS^b6T|s{N5w+WH_Ub3ejQkOU}zd|XQt-Kt~dMWHH#lq0XmFOJ_JtuQ-=cTDrq1M%^t$ WH&19x$9u>>MFz9xJPIDoj8!&o2E6Mw}FwCr@ c*hCw^=v40S2f$pDiiJMG9R8s#^R(@ab=AOK0~LIg2xEy#7ig2vEnX|y#HZ}_osu}-}@bHl69}hwS2= MdAZ;h_%_1SPa8nbSc>g9g^*WJuIn6~sTlg~}9q;8R1f72eJ&6JuEH vZ711fmFE=OHq=Jp#FOF2p|)mXZ1V%U}eJp)q$P%CwDR9}I-nu>tH$QsGjC#~)QhL}nYbU`Hw8S+$Di XDL!8!ezp<2`iSSqIfk8fK7C7YkpFa+T=I%lhuiFj~R`Gt<*yCspLkLAkvuXP(TN-X2_Ru9BntPj}s5X*!q5H_)4&?oz95O^qW=YnIG~mKt>5zqX1TOD6A@xn 0Y1W+SkR0$<{W~QkyAL5rF>6-KxtLpv!}J`+$0 3t&_(%;0vfjfI4_ABF$XI=QcH}nf%LbrffNVSGC%@Jk6racGUKR`i%+CKtHM4jR@aV(?c*c+6?eZp+a ~W($6Y^?UXz@U2D4&8);N5y9`iyIa=)M#}0r-a=}hUTf|3SkDGR7wRCJtTiW{|UAJ*^`#Tg)jGK2(fW jMcZsPW5Ih$T)vT>7x?3%#se}g+LVKCSsWK;JA?eY}mr;8o!g4xuiIAw0I;%aEp?4_-%uC{;)u{~qg1 et4Hl{0%OS`o?6rAv#ul<`AdPX-LP;HA_gPiq+{H^sI6#|er`k1F&Bm@)TA;uRQSVSe&5uO9S95Ucyp cM_>xny;cOXk #zjqyzWPl4<;^^yrWC61heALrm>ww&Hpk#=dOayfENx&|DitTRGaJ8z-{*5WfXBvAh(15H5&nhax_&o K|CAp_+Ym5h3s(ZHZnK&18l0yR-uzksFA(FQYq*}Eypx%gf5M(z!u$`Zeu3*L$!8~d2vbtBaI11C1HW x7%Sz6oGcCz059HF5pbiLv5(KXcJZq)$$0U~MTd!X5sfoJ7*DWO3Q1hMh2*{#r+~^F(TK^MHpG9KGnQ lCFe#$S=+%&n+sG$c>|A-=g99p|eYWI)R=Bcy?*S(XnU4a$!10m;Br5FAPi|iQ}rOov^DsglD>xDk=* nf*#v2&Pyx6l1($U4cJ)fq8I#84m_`ku&)B_<{a`T#H63K`%_@zn!1bj_g58J(MLCUg1^Ha-c?b=wuF U=&EKJN)Q}^VGndjEw|Z+}9`MQM#P7@vR}XzCeq!RS#m8II#h5|tH3)-pd!(B+Met>V*Bj!erbw@mPd oEGAkNg_zC<`EV0{#x=BPN^jJQWN8ZW5|>*kM*40n#{ai!V^anzs(qqOk2zCM9UEpi-MaJU!lCQ2tFf DBW=e+({!w?P!1Pg%~)0C3x1JI8R_uRHbrA6qs(Cw&38ZPvloq`=7TSN~_{-a3!`BVHOD8N*8>@1!uN b^b$Ms_#tlQhqqaOJImP`807G%kWdE`0Tj>t$~;64LOd8U=ee`K2prr_^$@>#a_uw=5d-{yiXBT}A(C2CTe1SeY(be~%{{xTM+ZcWd!Z4bO$- %c%I+5WORc$&Hh7??b559(1cHg$?Ja+F_cn|iVV}yT)J1|MwM`#`T=<{{@+>6gAy5U*xILWm1$GEO&Ard3z74(q0pHE^8^?a{W0->mdxP*D*_6GR6mMv=xL1XU4>_mY5JYvOzy xNp$fKBgYPXv;ODSeOz#y*yt6OBJD}sup?E0;dW{t0z(p7_-1`NqH9UR;zfz3*d8Zh^iw7%xD;GS*CY yxXZSNr#%e($AVVvol9t}1{?{C>;{cXL!PJI{lK0*8`mlanPP!X)U0#ro)#eKDhnim2PrqnZBlPsH{|J1IiBJb9-m+X) _*j1VVod^#`i7Jc0El>0Hae2wvLA1z#~EVUZ#2gO$np?du#Pm7X2Owei+q`!L?tg~hsM`U0&HtEj&4d j{|HYS-@H)_xD@oGW=sos;(ANLJG8C7Px|XpPiFPw%yOa$$5#P!G8(Gw7stjjYJd+!00!VIF?`lf_3z `J?w+6S7bz9b#YLb!4M7bd%Hg8zQ}(2om4KJ^D9vV`zB`&yB`6at|M-@ju}n`2zRC;&<@(i1B;)B4pa &Zy-%0N0YP<8HfKDeJtShq25$wp%=+ug=R}^Lw_2LguJz04k9Om+NiMFr(}vzp+>7cWKJ@WGZsYrnJF &9(Z;nriOw@0$xGw1C(-*pE?$fW>G2c6r*S3q3AxG9zJt{SgWTSH4jmGATo?MUTD;|oJoN>-;vni8DY #dot8FaZ<+zfmA;XNaN%NK!qk!=-OkSFhf{%}Oy1EZX5_kBhx^E!G9uV6{K`@8Ut(H11)YG<8ej1x1z FyG$846f_nn;HOBjoDn&?{Gmt*NOO4`D@rBILs`7z0t2f@r$_3Spey1JJx>+IaQ#P9DML3{aVY^JhBJ rAQ>3xt0eKl*L<~LS+M|g}14@5<*?ZqkP5zMQ-fAZA06OI#?AHO0)|gBMS`kurkEzS8J|iw{vfgReg2u51YCcBrdso}5EKFz|VGA%`!5-8Dd%h8+3+>5b)DjuSOO}JBjnodlocHAyg#=k %iCnfN+bPV1^wmY@^_=6AAj@?nD?t7L}mR64zM-C0Bs_75{)C5oMd_lQV4AFv>+1iNKTBOomOty<=e3 AZcgjP*vyIpS(f4SbE?~!cPz{MmJ51}+-_z5c2Hp%sSaJr*$H8NE*WjZQA8?g^cK}{EJ12*dHz3(jQp r|i^_I?Q8>0Hoo_6OBnP3Wdvsb2hdbfpU2z{p$i=#P^*1b_KkoXiIJ+XR36;qMQamUQWpYi+=r>Gp7M nt^UPF~StGGMZAee+^o=c9;0)4Bpd%*CztRRihBwQV@7`fRCyHj*qwGk*raeRRGibsJ3l{9)!>TMmq% S#0zF_lvlIGC%FUWYc9IByInEL?eyk^i>~c%Gv0)kc6Z>V-R=CJxdWZtfk^RD-50l=T=8l*o{_za*@6j_A|;9X8W J6d&9&}4g>K|MZR&Ks6_=`Ru1g!szj9h;wf0_J5ta`t1o+Fc_}qZdA%66ikgMh%xz>LmuqhnF?fgti& @nE|7Z9Q~M99v!w8dwp)g97x`}a0AR{q4_)T_DR*38Geot{*XpIr3pASDudPQVI-XhE!Tf eq0>hb!>?b?0N%I6ne7RFEC%kopyEi550;G65ML&Lb}RwJcJm8?{09>WGQ)4YHlcE4QQW-|#zvNN~5( DJX7`MmN=@Rd_O6JP1&jPpsnYUh#H5fdK5_Ma7<`o$@o5H{{YyH?9y?9Bu|_IK5dr1DsbTOab}wmw 3{5z`*5LRuc*wt;rsE4wMP2U&Nw92M@>t0-u$)b2&?C8Br3gs*Q#fu4=;*rahej6`NG4IJ{_l;h@c&N !0?10a+UBu`y;8dTcX_onhD-K%eJh`Vt9~xlEKLAu)wF1)fcFr(5--l=9uHUIj_*P>9mFWRE3MVIL|S d#HJ#fZbyt$K>osytP}6a-3#Qj<>#j7_Wo2j#RLLeILRLTH9z|4Ycl?(C(lO!bM)d}1v@pwXw10<9FG%UJPmE%p8n{UK@mvidoC2~ CSg)wC29Fc}=-Q0QT;GyGgVyJ^JdMFbt^lL)Hz^q~G-N^t56D<;huV@%bPlDo@3==eyxgs{HMu1 oF`U2>NQ{XV(8MEmv9;;8p{-0Ajsy^?D{n>E|`1#Xh|Aw8OyfY9Y$FHV}OFaS_EY2tjHASF*~*Qa}Qi 4WYFp?{|iO6r$O;qof}1|~9^$9H7K=gwDO#UFBa#Q5xBl+PII+=I7UDI2}mZZ*$|_=JRAh^u)E5nsP{ h!o!oXqf&wK;C>>?ttCZZ|`>u3F(J#2F!{rct)_wZQ0|NF-)Y}menuO+h2xGN~KuJ7+0OX`Ow*eE?bj V?w4v$x7LnGwegtin06^dC!ZnJzSrhbZD4=9-or84TC0X!r`=?R#)@3E}JlZ$Yo=k=?w nV(P`e?RIN72E}PhGDvsjqv*B0Z(ZnyU;^$QHh2-c#+#?rrRPx-xVHhj~OFO8O4j#e<4jLa}S_`i$AAEro*Sq^xm e)2D!Wff9)3()c%-u>_;FW*D)9deJ~PGXNAGi4cIopct&6M@T_)6yHE^WX5eQxZyZ1+nr4SwkoWr;ua mF+NBcn|$vxv2_T#yRmi<^W7@NKIW~@ke()m@W_@_AV2hakDg=V8SG!6=XAXo3lcH_ZRoj2^)M%O2ec)-fzhCNJy*O>hA!K)f3gZv}&+SEZY>T?{%XbYbj^r<3~clzOqTYl<*Ijy-t`rc7R -IcY}uqts92T5??vg@u?G23;zYKL^S`fR;HGXubD%W3Tn;|4 y?QP*=G-Ht-bc%YtOFqE40FEDtMjuL=qmBqB&?`kCwWr0P9Ru3_eyJJ8h?w3ZZtExpPx_rZc7m2VJEfTO0B>>NS*sytlO~q{voT7Ego?0+ F`1acR!vC+f5V=k3&7GW!Q}Dt_vh@~4R{z&y=mynTny?&#u>K}_u{>eZIKf@}c=b*T(Ek^41O6(rZ!o UmRT;^e)^8(HOXAANoG2V tzMU;xu7Z`(dmpDhHrvviK>cf6vtANS?jsn)}0R34E>a!(2*@$iIJCn_Jam0xCSY5ZAuzP*_bO*@-}M 4bp`3JX)RLBn4TWIUR#Web81^@S614ZD__5**YaIg@L0h(s{2WSo#UZhYUw|xos|k)i_W=M)x!)d)_p ~Ds*Ed0A%pf^%7jYo4wjR~qgd=zZ|)|Ajan4>79Yw&>HE()W9{ZY=cLM6T&l$xq0v)KanVZ0bhLWKy5 TksrGqrCTje_h)gum|JbPgLqNQoG6RzHEk{sY{^T1Za?at-jk)vsIBcIY*D^%6fyvCp!O4;)W-zB1?2 M94yKLeol`D1tT(P&{+etVSlc0Pa1%O2frls(#el+uEiPk3B&{1^^Z3-R_E6PWL>N#p5Z+j@=LbJs4vJ;@Koo1j Nq~=$WXy^BNvs{6L&C5R0(>}`6f24=ajY-=PGxB{eYRStRYZg1wy4#~D*tO_>&oLvT$BvsgZaj6?<>4 Jl_C}um@JPE^v66M%MK?2raJDu}b4noru%x*tcP!`fOty(jNG2Wpj>Etnl{{Q_P-;KovMb=~bdP{a)B G2(KlU=O9BHSo9BCdGoBzEj|2tE_)qCS@Ze_Fk2ytmQUrpAcw9GmGv5PKyPe_dC5Nx2s-OH_@Pmab^mU;zjs;{`3DOA?2__JXCWs^m0SzHb&J=|_e1=SgOohxJ$^4P b3NkCmyg=p!GAqffB(sXls$y3R5eSzGmr9)*5=5^h*g&ucF4UKb-@9WeFf`g#>NOX_u?9zo9lGCQYwx P!+5S~p9(Y&hL6bkuuc@MRyFZC^FMUCr{^|*)SI?8nYM%HYPkf)?Jb~w>7P2Q2EGAeq)TPsrg~MF(e` fBTWA3dtL=D_DKh=5lGx_9PSZMIM)ZmXiRp;5yF8SwxvS~iLoHgSB~!S6Nm!RS^a?;IDG +FB|XUvrEJ2R^B7ZK!dZX&5i*PjgnzEkc!xwKk~lO8G)S??q1erPvQXTy?OWwUu$4A4oia7UWw~=3#GMt; g{BKJhI)oIO?mBX`aPV6(iG}qUBMX^Kmh>(#b|0BvMJuqTFvKa0v)ithe(?Qr3?0F!dS{c4dh6#iV}m K<@<~WnZQTZeHAWo`HgbkG!HtpT+s9p!!m++UN9ddPP?g#N&>0`f==tO}jerYx`%oRm$3cn%EJx3q;l TK1a~}7P&UUMN=5G(NFH*j+6TnU#VVA_^LW=JjR2Ua;aNwKDK%JkKwI0ymtk|K`JuMmD?T2)x#37-*z#7ue5LXDGdwQKF7&Y6xyn2Vx|8?Z(Cy?g2yes q2BhseRwS0e`2?o7~%!#b(juw{ZKuK(dMn*7F|KzISi7IB4_;;%1hcUl!1<0DDOHz^wqkBGQLRGx`h% ~CAt(%yx>3ag7x({?m(s+2IkhHkl?V)BkzAn_G!yjIyBHq pzkXJw3=Trv#K6i)#`F=n?pmfH~%AEa#c~!vg)|B1uz&wAqM|qoQ<;8`ykyo!kAdi94R!K=z7*aubi; 3}{Xtue=#FRIXHZyOIs*H;PWi2s2M-;>nN01NL2; _mdY~!#=8Nt?w1P21cie80Gt;toeaIpac@oj@j4@Tgqa%Bea^A-B-paw=B|`Rejy)*t|NJ^=$!|<;~2 h#inwek!)8Nn_{(t6(_r3w!~HGgjl9~C~evFRGPEtr8H)0{JLLm5`zssR9H_jW4-74GxlbW&7S@AoeF4@TY+ViOJ8WGG>l^bOXG6R=-*K|TlWfJY5XxeZxqGW~4 jW5Ld_6~m0m7i`6hgL06q*cYhmn5UtP?QzOR{s0w3d6lg#V11sgtzdnOtypoX6tUF|>s+>a!nOJNfpr*Lai5JckgWq@?afvTtX!mzcaYV54BU{J9dW x+RVEv4(_rbb9kNf5K*4R;P9cOP4;KrwpxJN5%^Z4jd*8sPHn#&Wai${Q)MRO@oU3>%FQZ$!rcA4HMp l^Cp^-zub;8HUoQvuG)u@ChOa0}7G4Nzn93UCY4T)L?)EdtykHJ6)JmsSC8(VB~^>e4R2ZM5d{Yc9K( 1Kh@HE+M}6E&8oS)s=8PL+-7PnPpK{;0dBK3mxolBumHC_&Be+t(<1} =7HHH@%2la%^rvIBX-j(SV?5DcaBhUtzPCG>UUT&>|AiPt3In;5HovF=f7<0_TIK4U^RvA)f2UdB6-t ^IX<-J9YxDEE#^q#ZjmuBHq{(%mbNOjft|}IJEc9$(Dd6jw&Qp+PyPT=`K3}ck?NV=4d+P37#$@~(h9hbKAh )kz2KZ-}%s5Y-alaG~l?KjncdIc* r@|pV6SbRPv4Pk_SwDvlvo4Q{EBEDd|6*%&!4~RA+1~5#hExBnmRRN2HR{;|x8`3xIemYuavJYSx96% )5(HP3Tb{#2q&||kdj)3s8kC<_lyli~m FqYhzHc<`>A}F}|_cL#osEr0%x}_$J58=X`9Ma5)j9oZHXsKDNl{8_(Z4(}pUCr21>bG%p~eX{}9cG%i0p)0UGUh!Gs(3!0Z)qS+~2HHMa`_-7@cIvJf7xi|_MUnlzo%bHTT (rWQ;#^o9NWXcPovm(pmz``~sk3nD2qwU9Rla{#-HUVJ+3NkT6n)vP6!*oD{;p=L3D>{kjNFe}@E~}s GW%xj;*sSzOx@*Th`Vc^sbDeA25a^bamJGFx7R<*@cdYK;TcU_-{l&)8dO*f4&9uV^z8^#EDs{>PUBmUT9Jy;; d^(vHuY;;si1;PPUWSRTflgM}fzGxLrpXzw8|DPu~ mC><`ggNw0ZZATy$r>NcLVJA8gv(+~pgWgDU>{gnt{Sjle&x$@t`=R(5uF+2ynmQK-MkMP4qu=52xXDkyvB uTqxkbS-7L^|l6O!$8^H>{Bi4-F1>|a4g2FMwo%D%Nkh$_QzS+H{ayMQtxsQq%~EEs+XL#RH0>;_+5; RO&QY!yIm^EsX!JNBU+!*`bVSMs$Cj9k`^jJdkifNbJd%8{tFt>FffPTD@0!b{d~B>6K!^4BQ7#7&eH`Qo}0uK5^X*qN6l#cU5DZH}A$ai2kdvz73)om4*$XUq9}M`RwEM ZV(N9Lf;^IsgMr>@=Cc6G%1feXlkxJ^0<+fl{IO(Ny({B=>yV@%8%DeLj$JaV2n~;V4$G^(a@W)hg-C 4Ia^&!(OAoRBE~g8>5SkzI$A5Ofmqa;A`hkNF$Y$45SIS9PS|Zs*u@~;^g7E!SiNPq>&(XXW(%FECD> F_?rGYJ9bpOY@)~_US*gJe+2BuizYf-SzxvukJr-f}t9`#hNJ$y$kv~}4nqudx$-aMGAn$zTjjx~9*! ZgLdd+jLwd>VW+x2RngS;&+ejTTjZaj?NEobmsxR!q__;(NgD*StZe^>MGPWn}r<Tb$o=vwctgsrL4Y(yMNzry96;ZscQa obCHA26^Y&o`JvC@Yh10_~yfJiZx%`FIv3wOoh`h0DBR2&=j&QYF@PQD<<_A|9-%~FVOG8$IsDk!N;b 8^^Hh1DOyqT2Q&hBHZ3kv_tg%>uG+1&chwdn5_MOthjCXeoUyC+92Q%+k0XU`fmz*Gd++<|zFIJpxVG 59(LDwpS2%cF_C5C1ZmqSiHY`lrSG$+@)xvw(R^F}(t83YMhux{{CEiyHJH~Cwo^*V2F0+$8@5&vv?) kf2)y%i&RuydlCWX>elwKXI?)gLA2D??;2FsrUd1Ec;5@mi`yj^O>t7!4I;CPt@WgZ-(Q Y%Khm;K~{Si-Gi@~)&vY`5h-=+wv7iWD&|Y@Q=*CixlY$3E^>~<35={l6FtzQq12atpePP;61wCNSG!=A )Io4EgD{rlZY+#2ijN(ERzG%~??a>M*+ew*TR0v@lXYFV&Mv*LLF;t%UodnoL6HV+meH^C@8-2{eM!5 IgRawEF+|9hRa*Vzw7b_C2k-R6Dga-oT5f(;z9CZrvuqPLi$m<@tFqFmc?phG6?yh}K)ZjUG$5el|HL Ct(=X}k-ENyPMyC9b&K=tT_LoKUi;Ur2|!S5KXmyX?LCwU7Tes{C*^S;cz`i@zsvxIjpb`ZXeMNou4) +X9H);bch`kFQmt5VNeFD|_B2k!wx>5o=Sw`jXzt?hSn`Qw$6%@+-;TF4%Evp+bh0ae_}W+6Fuhg4JW f$F~4zG~WzeX;OuZNX}hfs{V3LeKiLZmy1vbFE|sc#WxvK=*{k+pmG-!*vWCvJLgjN+Ac|Ljwd!W?6(^a?Pth;7PvSe)%#^3un&n-YVw Y1gWKJ;{kFS3iVE}ad 016ZVFAjRT2AFgloH-=t2mlV?80R)2oYo4Z@UGwV!!S8sCcp8mZ`>WT8=KpxZgH!3-H8tTWR!Q*lruZ +if{Row%6-9WiA)nHt8Y7!7y%9lX`nN)-eZkb?30R@<#kdM51V243B8%R-}OqPpR>?^TQsz=P|^U4@^ ZgfA@oltZCu!oXNrv#XrZyw~=Yt6cOhmYS`tREAtEwP26!Fy3Q3tZI3AbK)Z$wf(gYPj&6B)ydO}Q;o f~%spK=^u4t#blTopqg3d7Yk_pJ?Y!E=NUofW8*4$hy0Lb$hqkd+6%5D5TChUhSQ~ntch%}es;E#^B) F(g<~>6P^Zb3SV`Dy^JU{ uY!&;`uvHdT|3A`%+e5b8SO4yLyzj!MVQLn@_nXj`nP(zM0ibuj$qztz~f tTT^LTJcs`yh+|PdO~hQDEk&@e)bjYnG>NpmRqDYzv=Y~_SyDSt*#XL7Nk?&T8)}CSlX1De8XIE=axp84_OgRjrnZrpVE-` ML?WOWg`NfP!c^fqVmG6^G8~YB`_S)h_%)V12%6hv-)HPf?eZCgg^0%NO;;pu@D4$G0x0Kz+*|~XN&K&wNt_ts6F8x)i~_1A60vqCDhAw(|XKi&7YgYpE5j~^79BUGc6v-Jqvq<*4w0>KxA *%{8Q9pj#lPOuhnC2SL2w}&(*!IMWJ66jX7D~T3PjwBZb!f+w$!x%g|C=LCoj%a*pD0JPML)9`+85WXRLBlrgmUw$5^F7X3g_DFJ>6e >!fbojzt!4@7#gTrUJ~x#wwp?XeWPCM0+!;BifQtGom-@iO9)R@H|Jf*bq^kAtGz7h!U@f=%U3n&pMG 8Ghaw^!yRPN$_7tewRGnL^UEjtN&h(&bA9D-*O@oj8!U<(bYY=~y{UGLXj5Y0pbN3l%HUVDAp+~3VF7 b0W*<(*RdnY3p{`eFHnBIwF6knt{07eDO>hi81xWGa+ZFUeo*0ipuI|9vdRb98_SAy+2+P?Rx2c{Qm^L*fU&ecHaL?a<&~4h(AX>pxJ Rf{B2OH)WzRs&Qo#uA-kMf#r_WRg>qKE16?W2faBV*GV$}Cs)^u)pv@{LteUI82=+uZ+NCu>`K9$qLh Q$aFjjMQZrW%r<%Ovu-dcr+q|k%a(WcEu@`-~cj;I?btOYNo;gsNmmISBM)nrhlpy)`^CdBUn|ZyfO( V`-FPfqblr0SYu$?>>AV=nr>YyM%1J5(EAxT?wa$AW3l|Zafz*)J(6$9_VoMs(l4ZLgm`<9Sz+ICDUs aw*muEnIZ{51>=VcZ$K;WpBV|XvJo3YlV~zLPE?hcquOMG7$VZ5`*QM`Vj$}6tAb&GFvP}WxcY4F&KJ =mOXzvz&Uy{v(Y@U~nldg4K*!S6w+P^?L_ipzR$)JL?)48RJyY((@k!G?f*NGs=3 qNN3_~OTcpJ@Etho7wCA}G3Hw!?)VTko=OFI8Nvrg9f*b`ZWe+$+p>G5@s5+Rnb+@5|C3oUI;3t&785 BW#uVCta)!7Pbxwvt1cKc8C4gr7!b$c=;UlD;Z@!ntvMKoPr{3S4ztfhGKHP+g5o`*%;z*S|izVCaz? }YH!ERZ$8g(ZWEkSs4QN?SBX^EL)&R5RJT%QvKwxm!rjbpiZz^5ZN-s(H`@>T?6J9}Igc%G>{n8_*R; H(I7B#AuNvU}_2u4ie8}AcTlK9OlhU_rDKSv`n|kDZA;_qm3 }4mLxs{B>F;iBm|yB@$@dqwOR<(T*J$O%=Xu{Kc4G479u1XQ@n`|Cp}D2c)o5jZLtIFV1YPgKk<&lrc fn@O>Q%izdf_%}93_7tU>ETL%NMkFmNm1lrjJ;J{(Zs5NZ>&jagJP8S6V&P2fUDLq0Vk{@{YsMk XE^h|!^)MQAi%APer=7Eev~7t*kzY(=1S~~_P2Rj{Q`DbdnpfZqi=k20nYI+ESVLjv}TKSxUwWy#{>I ZaT=$;t&&6$dlYxs+NQZG3C|Iwt138Z>+vFAe`dd}Iei++pVU;X+lqYceBuHj|F#b{oKzi=MRO{Yp;w uRfUBm(e_%zRpQ!*F`-}U$FZ(GY?&T8+uuPD*K2e=o)D$hNlix*9FeA-*d<=HNMsA_BTy{h&H$Ug#$v yOecgbqs;*?=F$F+)QxjC=!+gt29jA~A*C|q`2`l9XLOGi5G85t*AW@*=+TV^+;vz{Q$pXrf$cn2+{i#v{&18C*EsF$2hZnpGz$9a8B^v%Hj36pn9p&( bfS2ebHHxX;zEjXkQ&DWe7&8k7RR0y>TauDrh){dI;N`F^PQq*Mblitp5AJlU*MWXJj!lduR-`;ouK3 ES5oG4Ra@O!y%cZkM6OUh?NJvNjcHLZ+UZu?ZG33xO*N|6PN81f*_tlY&eU1gx^iusCX}aT&APi)Of0 S$aKgGpk0L%KR*Coxhr%no8Lnu|k7#Sh;e2#Hx)j&h?dh}+XQW@2)*$RLnd9YC(e{dIAudD9^$0j`;> (cUhl&-GMm0qWFaPFi7fIj2mGjDu*^Xna-II+g0_MW6LvxaNd>1+&Tf?J8gM?_)xLu?iCxhwM IMU#31&D@>$e=K&uox;l#2TyJC>AI!pjk%p08hpt0XlP9>dCjFZsA+C1y5``FFE5R{G7>w|?dylvL=; w*>s2J8d>4n{$6mb+hM3oe2GKcvC?Lgo#`O?pLQw(kW{7I@+-1MWGd)wik`LfQgLTmCqm4qgPHmSiNM Vr~%>H$#xe#th{SY*ZFz-oXeHG1l Qd1Ce>f^I^-2%^S#ZTw|`IE0cLa-B|^9%>1utN^1r3B;{ivN>Y0q?Ph-hLlSIJf@HMN=dqN#N!7=hL|4y|uIIb|kO>zkQDt#9UZYJD^3X3>W! Xpu9~BF{jJoSRk5Yc-4cj;sjVs=~e2aQl(cA8^|4Eynb6-HWGt73X?I*v{pjGFiRtr8qseiT&oHTZ*T <7U#N#+sLtY8+(Qh3%6YwdvE;29q(b($mg)nzLECrx`&$=-ohSAl^Rim+0KtE!(6S}*5wacM|H e{ZU5Q|nRr55kv+JoeP(&_z3V>VIrjpJfsmGGCjh$_cs> eaRK(M%L|RTVWH%tWEO1pGe3th_N3Yub?NB~q&4uTWE2`P$lr4K)2)-G9z1??9=Z1pz;NjbW7M$e6fT aHPe^n4*cEtkC-Mc2H{z|B0TaLf%FYAIa?&o>czcH9a*b1KovgRuo&;R2f!$2CuGYW}3OF _*%{l+%x$%v6IPQq(uIw6DeZR(g<7(Wm(eoEx>xTO^j^l>W>iaeFh2wq=XYGCspZ!I{T??gt!N!v(wK ?so^5NS36oZ(Df8m0SmN8h~HB!krS6#DNdm!D3)M0B?ek+ztRUtY1@9Z?ON@?#%7dLG*cCfA7-M)jjL |0$65##qI^<{V&K~QWQSD_n77_ywwoMV+EV;r06t?lVsY@D(`UDrfi?Yql8)jhqw34F{s7S-|o$r$Qt HQsBDLRCA*b92z!_iQp_-C~zUXBN3zyEZDZcFN!7l)u|)!1vh=27Eii+4;KxyUDhLY`X@Wv^B<=+eiH N4mfFTh<=XDcE0q5y>vV@OwtKX?Kt-bLo`UO`lARAw9RK_Lzwo4A6ygDb#RN|iY#`W9@Cm_>1g@8aFcaKK5J qq>!2<+K30@>vPq2&NGlK63DhWI)g=j_4g|)K q!Y{~SW55|!CHb11iJ`M5?mqhB0RegSO}sCk_qw%mJo#fq4Ly~aH}MmPgkn%Ysq|!pnxEo;2nZpmDlF QcbzSwINBmC6D*?Fc8j>Hz~cCJ@*|6QvWw-~K=d?j^7AB^7`BNJw>8Or#~UOQ7uY5M ~E2uGx|}##t>%1#jrZQkX%uyC=tXy>iUjn6w&ERRQR!L5Aqj87+J~pRFOrdnIMyXZNw?y7{w_@k`0_q WVd9FcPjf$A!>5SmO#Hb9Lpr)`7Cltq&TwaYlfIYZyDqRluzdvs^h}$9FTOo5`u-TNeGLJ3^>2_M|W2Or;v@RC3MXclf-Y;#F}6UBE7zQ?ijO{A3d4W{x kN{i~EEaLPKLdN6I^Wh(heBAm^lo9IQZ=@i@T%soiKWCu=0ekRn(sSL&u(leQJC!2A}t`RbXaf+g_sZ 6Jy=X!qM>B#R43SnjW$Y5?wAzICpLKcOctmUs7dpemawR%peU#1#3T05QIeQ+WMyR#$rc {ziI`(!{@+USCIgS)5adcRKmcrcgGHqpp&pm&NKB_4xYy4gBLd)+8~LG4G{Gl=_C8({u4!{Cf-k>*jY RrIw^&td{3Y?K^70=`4+P$6Hg5fDK}r%$Ow_Waj$yeQ$&O)E&=Mt(HsW5|_=fCOYbX`~NilzauX-Q%Y ohCup(j@m7~Z@HCU1Wn=QzMk9WSXU?@`DM`km)l Zm@n-#KOx&EZZa&bzDl+#*_&`2v}^oYR-gwq%xkX5lsIS!CV@cQV_PnewSc)o{q{K!(>*3&|hpxgT4o W+wfW%m>KaKqfY|zD_1aN*0qD#bqO#+iA4Fpe>f`e!W%*7C!W6CeGE=t|G}ci9&+gvzYcq8XtP{AL+- $H^e-JeNENcUNto0x}Ui@gMJ5Vc~dimP)CXAz;Q>{h;0DV97cZw=nd~VtbGc~5%sS->kaCk+2Jxv`xE Tmi`{!^E~JyQ1}vy`Rm~7C#j4(g5{hRyVKKdy+Xzi}&|PB4%+lIt-7Scv*2eWXo(QfJW;yJrH`KJVSh GuK9Kqko0=@I0^nDWRDb+lW;MTj^Ma5UgQO8TiN5?@=TTfR_XO<&vJzYIbJsrf8z%52L*C#3tLmAuZc W4jrkz;U+AVw^q66p MURMz>Xn$-YZfOGP1znq5Rx=GY3igT&fMXd(;fB^ldYMs#w2A~b;lsv6kCoJBev-rM}#edGcqVEJC*Y =A$v0CU(%#(TSB(#Cn1Baln&xYyoeKVAs)m*;btKYghyC}5ito?TXtds$1yZJm2IO_Y}q-QTU=6NMw0 e2+NRo~GBemA#-^DGR)j@3_=i9E!FS>0?BeRyz}=%^qsE?1nwq?t-PF8A%bRa$)w)gFcDLTv-rS*MC- 2T(x^}z$4xjEldiL_|eWzcazWwg%?>``5;Gn^QmY^ZQA)!Nug@s4l9T_!zMD)l}F{8)C#*H0!&-e)w? ~T7NVbbKpq~s|nscHA8PtC~8nwFhowN0NfbJhb7&Ym+jSN#9}n6LTk=J>nz+qHjT)WTfvub_^`&lrBb;m`R7|Malt|1|sm2Rzs2Y07`M1UOay-RM(80-UP~$K)hskC>E}G}#)Sk(`-5l|RI(VImW9tU;5lsne69GqY@2?54h}(TFIDF=0y5kj$BJVhm} p7#XiUCfFKH!XS_GSq_mfCX&@Rnd%1>&hPvVD>q~tbcsBQs9_#KQ?(+4Gi*~2x#>^ yo+?R46JwnXPnn{lb`4H~H!-EVD`g7O$&>%1Gp}cu{lz_`ac@NFcYvJZbDHIkKQil2Z=0)c%B;Vb-_K %LsqwthSbTkf{GIz^cm`9-mC6khp;^E;wGb?LGR#uJpF(WXX0CNUd$7mx)`rX+xF`bm?YQBt4otl(sv j)}S7KgrpI?9n=qyMOnQ%2Gkb&M-T>yr&luqLFNL$k9pv(2d)=EwwF#^jVFgySg@`ktDelxVhQnlrPK GR#RclP24&36s*H;E&0G1>ce>^UMhu=7cQrlt})e@l&SuH2BF*N=P&(XJ<|&-yB?Y>VW=c5K$XOxQ-= Lhyabx(bVU;7F+abMsoCK5 +dGl(6jOtS8w`aAKwE)T*OM^binJ$~?vsbe&6vNmdEWjA#UVKVm=bA&o`qL0*c6`d($4w)DYQ0+oY&d ji8XQrD|5;79gld`X&uR2esBv~m-Q?2I7nTbi}%w%(xKG)Tg$MDqtcrQ*fo6Jd^axZP<3Qy?FEGp<~Y ^oGcTvMk~%4U)Tq)I&O+LPp_D{MI_Ns|)DF+DXSX@I$NdQP2j%t%SKCgo%$OinTBh{J$dC9RRWE-4sEIC7-F|C@PI(VnkrIu%7Ts8bACUKS3sJgx%KsX5jOGpM!5N}Oa&!#9NL(xE~eexz<3u!#re Cz`3hC$+cK_+C=$``sNa*A2h0`}M!S)BF10clg!(zNdEleJu_ecJ{H<8_%Qtub)nX0oVT?7Ets1;acC <4y^foq2YVu!4}be@b$y{2VXz^{IHtej~Tw7pl{#S`d&Mq4n))+9_IYWYThj~*lYU>8D9M@dU*Z(z7S o1de4lqh&M-FpWeP>Ykoga>%04e>xZ|;U!UKW#OueuFG>B5=ZPdsz40VYyM8+Ba;~4wEstD3{E;`V|N YfBuOGkH7K`}tf`b&1i1jjuDeo>;yM0D(iARVh2DcWMsqH!<>U{opt=XZyEhS8bTNr`)%hH?a2Uxi{n0lYy-FexC8wN)*g$u%l7(UzVxlr){;2~** Bjmt>r?sZZz#U;v?ZcQCB%bGMgGcGkTDL5q|TTDhgF;G%$SqK&<3gI%EbOV(w;&F{$M@-a{N>oE7szg )HJ8OMa?ii5<;jHy{gAx<78Q%rqks-uDm&nY7M2)8u<9SdCN=DDhN)kQbJ2*2VCo?@M*qWWLhRPOE>~ 71>CPgMBHJgwj-6IY&fx+pSIZ0aNcZZG|9vZ3l1T!@J)edtg^^^Uaqmz>EujX(U7cHN{GqP;faK^8nb 982oAr~eBKga7!A|xq?`V6zQUig@p&{2ANb^*qXBDH8bXH5(#Q*k2HDaM*j|KSwZ0QNzmIElqj#Dqo0 1x1H*@K)9Ns!~JW_hHrtnV*@OLF%eFeP_P0|UjQ%Xl&$7HCzpv2IblasRGk7z)mVhwm-|7Vx*oRFkRwkcDRvZE=>DTBlhgpU#L5?5Wzua@ HyE|qGI>W<$!hi4F~3F)a1)J8feBQYi`H6u9FM)5yXt3(Hhqs)z(<(TRu*HPB=F&U&-CyFD)%k(7cHO vS!$|G^&L)X!cm4drrcdQ`XgEz<8!d-adtT;zl6O|O={-nh44C-V<-4-GTd^41d4-FKLPC+j}ocfsM# ?X}Adg#t>afB%glK6B?|JB}wBl!_GCgMy=lxC?nYA~Xv2MwBOnWojbV93;3Rv%02ISt!=K#-t}D Wr-dxk-<^KI+g~azrY8#5-W=u*;;a_y8l`F;)m(re|1*g1X*b3$!ZQnI9HD!0!wO}Rk_eGimO`z`5*XLx&}E+b>>2Qysq_&wJ}cDI@kE_{14*xzt8{s5 99^6*1pwxTL|7EUpI?tS#r@#%o$*96|OYG4oDnUh4FlMp^oQ!Xl6srY@~f_Z1{Gw78a&Si`PqY!+Nfp G=O^t&AqSo9;CeoYwyuom{FR0jAq7Z@sHEePS@P03c<7ESi^%gVA&e34K)9G8qV`HbH4UHU;AF5#e*B VF;(!K_P$cXXSJ5z%bNRU4Znlh_s_NOt=v^!=seSTZZySTbg%FGU-e(#_y6Q0wP(YV7I7o+?|r=Lebn #fdY^wYV*gD~{gck>_xdMA|Fd}ilh6O}GN3*Gmy1HQ8|holt{$tYfxB=1toa=@_m@tn=E^myIq&(CSn ?|@bMx3-Oa4n&9baXxC*FBiRnwxG8*k8mkY;Wo|A$^Y^I{uu_C@8z@%6_)cO~0KQiDA5_`S!?BK~;V@ jI{efArWlCoc=pd#)N1<9ldB51g=wJp?-mN(eq6c!yvE!RrL837#cbN>D&Bn;?rIogjrEk>Eap2?S#a MiWF6L=uD%gb-K=`V({~@Fr-d`ENnsN#IIQ`He+X5S$@6M(_#2VS=3m>j+j8G<2|;{Vzr6oQik#|RD+>>(&2c!yve!CHbB2%aKXN{~m8PH-Q=Xw82Z!9arU1g! `>2rhg@@e&*(I85*X!D9q@1bF^kZK<_U&_DX_B(B93_Ymn%^eLk8Eamn07BQ2;o@^W>Mt^JJ_BpSS`2 Y6#v-NGxwH_Dk(ZhqUqll0CV|IJAwK4wM{kfhR_)^|PxBYX-)t)}&e{|dW0eS7D#ch;>f-)*!W!3oU^ 8=3OZnp;iB?kWQ!;h=>3&HTE?nqNIXOan}Vkw#Ed#zQwDF*-UoL42}4mmkSCc;;ciSHgxA`ksFGnvSw {$!$07VT6!9w%O@ky3|yGX3V&;f{2ls>2=6I)eZi-An3mKU|Od$$H!?>Tx#~7NfgYJ?`du+ L#^p1OM^!KM8aT50!((fkJey)YF)>rz~{q*eFQw$q6OvJ^-iPY3oVYAuP49&}<|2*;3Q%{MPUw&D<`| i7eZ`4s{-=aGriy@Kenu%$^Mo=j4H^L-N2S`n;RoJ ?P~eg{AiyGw`k)I&k0szoSVJxHIdVtV-tZGiFzK{78Z2F718BA&*LgPfo5<-*e&rz@g;iL%X&2D)l>V #i_zO#a~6=@sOWfHGcIy{Sx~>aNy7`)!`Dye*)>N@07lj_CuH?g&XjzI&}F2ydgbZf{Z$YAUis 0X)g50yzBp{SqXpU)#Xrh ex588=T&ju&c=`dL)9FUdXWk{3uK(B1$p1WtKEt*Gh&C(WNRTwpzrOCa-v6M+kXJAsLyy@Z^5X|n!ja ^9y;9}yK5C1PS?!~+jJP(#L-E?p{Kef3qbVZ#QN@y|Z{Oq@M?)*cjUx_Sr5uh$=gKk wsYH(@6Qyultszgq|Dt`9#4{Rf9}t}#cv`@?sI3yOZj{9oV{nqj2W{nIkL}dWX9hgF>QpD8{_5NqORM Q9qOD>D;-q@bU 2xzP`R<(4avgC@4sThlexoMvfdQVq;^)xN+me#EBEd+{B?`%9JT0EiFwQ$F=x&kvCj-X%rgPAU5Cl VadODJFa*Merw5+FTC)A ShHpg=kL08>%_*58@Vp~;DZmu(H-l={9mNlSRuuSAATtI?%gXs`sgEZ_Q>RX`T$GiSi3{g`5Z_*wqN1WgT)K3LWd)COFKREMg=j!R<3WvfBa)lORM?wR0XEB<#30#QjF% (DEICa)C6|ef@-6X+Jfhd9q6LNTNa1}c{2&S+N#Vy)_$d^Arfen_QTS&m{F@ZMgu;JJ;m;VtccJhW3V #oUw^H~e6#f+ozn#J#q438j{5KT-TMA!B;m=X{i-z#Mx={N@Dt{JrJC|Ci9bZCy(O0Ow-9d%$<7Pr0> n-HhBZWLOO~@aX30d)$kQWW%TTu9p6rL2ArGqJa6osd_DpD!@EDFDf!mpt4|Dy1v6#iohf7TG5+O=pZ %2}kWENw{Psb6u3>YoZyhNSr>AqP|V2^9VT3jZX9-$da*F@zUQMYOnu%4`SHnS7|&_7jIl@+(BRkj?H 9vUiq{BOelS+Ot9~TQB5WdxSi4!Vum};rmheND4oR!q24eODOzm3ja2R-%8e!xg8#c 4Kr)sBcg&sBLXS<(BPoJAwluo;h}Tqjvch`;Zc^Lh@jw*UX!JPJ=GY zJ9aR48iw!`e?&xhU_|__&0Dvk@8qGI=AlbGg%1ou;NXb(w#}QjR=+cj-W|<^WVj>#_?9i2H@|xjd+= co9n1(H9D=Vw_}-%Vt#@mvMc#oFD13ZiP}J~Bs_#SL>Gxcxk8yXQ3MO+@*o{6}1 s3snP1A>C?bTPU42F6FlM}>!KSVrm66&~DYNN_J#r$)oI58zdJh+~8zJl?;TSHlKQPR+syL!cNH5lDh m{XOWezP^49T|90Ir;ouyNS6Eb2@bCQ9v?p>Xhc9$cej3I4UR|b;UU%O#|Oj9h=3-}?iPFx4kU4n5Y^ wo9}+N2<7Q1q#0N(O29T@?VT@mW!n~UKM+Ffd!wsJie+Yjj_q+Up1Hx;5R^^A{4gU0+Yp^|?`_MzKCJH))td_jq~cV6iYYR 6La(EH=y!73-d!EAHAuItA5pVV_G8ds@{QW|H~D6Hka|o_R*BSg}H^T)9%LUcH)ig}2{+oAtr>-g}RA g-=Uf7SE8rv5s_wojZ4mg9i_?ZgA%G332-LX>sPv8BtzdE`I#+NAc?~=U6xR?YG~=AAkHImR*wKEqXu lyP=-#g^eqBQA0=Na_MAh=w?wv_b@edFNtPygXk@{iji`Um?n>kW%4WWmOM-CcZDH5HHguzC_FW`OS@ C}eiYt9;Ug&gcnUv_!Y`okD=7SW3cr`aSGRNjtEc?0p7MXIp3+9E1KPA{!&5e`d9<`mtIoZ8^}^A#ZO m=jv})7gj`m(no8Crp*1BW2&YinKD~TIyN-8s>ve0RUd_lu(^B ckG4d)`o6~|K?WC&FQUir$!AM`cV1m(7CNkJNimNZl!lh-=|%RuAO{(_42_LRh0f6K0e+)J{^3RzIOC r?yy4#b%rX}B*Z`r;<;#0-von`!4Ldn!9{y@e2Bze+{a$b*R5x7;L(?cG%$dhmg;}U^LM6KfG?I}v~1 tLJ(vo>cF8Uc8#bhxg%9r~PVtdJR8#PB4xQuw)Z?PX>v@Cz!B;eo5P$RY&p#hW?auq>&Yk=2=bwN6p4 y(%KmGL6Su#&txNzYd^-Iru_0?Bz?cTlH?&Rd;GjQO*UK&lUw0N+z1$_7`{6k)&VZNzLmoA;i1h1OjV AxjU$Bz%}M-SQCe*XFA4^ux{Zrip^e*gXVlG;=G*=L_&fJ&Y?aY9o6TjD#>AgP`GT2YiTqV?3rAAkH@ X=!QhkRe0-gqlxS%5#fQm)Zaq7yYEWEPrmccJB;_)vuEXZ-+d4td!D*orspO>V|EbG*%Q(xlYk{^EfL6(%1IQ V?%&>{K77hf=*ls}9+>?cp2lwW@NCBK6v9Z2V4lVt9~FTea!Npkl)#i?Amaz+07>#yfO{q)m!zy0>x6 O`6v_#-+WrSjI7a9Dz{e-(eyr;wHdfWHo)K?mfC4!~chL$~Wtn-(1iX9rN8JHY4;_&fOT*s)_VRYxJ8(pqpfb$n(W6HhP&SYsFp+O4I|#FX|9-|Fc}V47A|I|^y(*0lz5h< `RrpS2_|CtA|HX?JB{f4V|NZ;-?*cgn0RN9Z`bfV2{`->hT$0YrWf=TNe(c@5mjSr%*|Ues%CTd|*bW *{2SDCXPLM~yZPU+ECLNbD@Sv1^_Db37L)^J8WzP~RN9~jH)w5FmcJbm-Dl6^&3jSNSZe8Z>?cJAj_$ 5?dB0rc0;0vCEub>Bc0o-9n-hcDWHw>_Y=ioQ+g&cqu;0^vGk6-*z%8<{bw0taOz#%E`Iv}Or9-?8Vl y?vfUA9Qs@jWS*d?jU7Rn@b91%ImR9RU1w(DOovzf(?74j?aa-$*&^n3Tbv68}L1z4wP}o8RQ=2LN` $^@Wh;wayZctLGnNJbCrfcho$uYNTtD-%0l<;Qg+++*YT&icvQgEI~O#-BK4FkoEfH3;f4-v< nD_ddB#~o}n@d8orh?oM;Fo8rJ|+~WhaOjC_}pg#O5pBMM()2AcV=LNtY a#EWP$UWq`HXS-Gkaft>i31zt%QFVbRklI$xtzgF1D=UxQjXJTh&~}@B;geHg`qry2CY2zM4d!+YGKZXb#qeKh^gv|5VnNKp#Sx)9KJ@0S#ym>X R+tk9uKhDdWzn_O_TSUV fM8jI5;e+Lw^1`{Y8>(!|h|Z~$C;j#EtmznCx7Lk6>I+@|2Mid{1$m(Z$}8{&Zoplq1$95_d-Q8iZ=$ V2+lFWB{QmM?qG99Q0dn2!0Qox6P`f-oPIc0U)-d!ejVJT=x8 zL8^5Dm#8a&BTM(|`wc(g1^w(f7l;@HWx#FReVIPFiUjELUU?mQQ5`%EvM+^5OI#X(t*UA{yos4ReSFJhgRjKd 7&_fT&*I$2~>A4X)bXpKrIr6sLUT~KzAsXH%8n`?Y4XBg!^85nTNzY~n$|tid@=>B;3DK~KXecB(nwP })o^hQNWY96*F0Z@(2mZSJ2LuFk0S>@#;lhOu8fw#VJzD}L@E*m*=WJE?r#y;SR@`y4pckW!K!6;vUmM1V#r fT=G>Uuuk`KCk1KzT0K%5$yfy7~|BN8X2pg&`m0E3dr5x)*erqM{->efo3<4cDXNdU=8eb<&2pH&C95 hC1q*`kvO{)6%6&OR4UZUAuOb@$vC;&6+h5?Q%{|ja`EEDT&}2k@XgA9~3qtFBOgW7Tv=dDeA|L^NxC)T0z6PQi~t&Rs7(t1GNs3jy7i+KljH}57HXeW9Ruz2Yjc9-=0~TP(z@xu9{)50&c3;TK$~y7jgAZN>o^f$;3@Fn&4R_pehnz8E2Im9X41H`zrvvx`e|^jseFK;%4= 5uj54FoX+H7Or1N~?57suaFwjlo`ODpHioA(LIX+%VXoIQIs=L2W}{zHZgkz>b>Wq0HOXwU&P=>1;w# h_n9?tv#v$Pj2V$`*7g_@}z$5pQqrej7Gyco=<%zk@$y698Glcr)C97si}zHXE1U;NW0su~=l!o;^7q @Eu`l(@~df>19JVAxEeWAXli5k$3v|2H}M1wi}(lVEl>h#r^vA>qtB-KzZJ>Wed{){$SjY$_LYskdPo FBO_V1Rm@kh Ew{YU330R2VaLwPGnx4^1mE)SI7lH`qL0Bsa_tcTIZ6H$+Xr>OteuU{|UeDh6i1ON4}e{neQn)swp-8 PZh$k~MZc5+)F)On8^oxfrI4f+r2e=3hl@Q(5Z6SyG1QD#X_S(lhPbt>1bRMxqDLtO*;*5wf80Ob;S0 y#k*piVaGL$D)WDS<+HUSAK&H^v)-k5f_#+`uqXanJ>Gzxcpaeci?Yq7m YfMQMb8Xo&a8W;ROy4y5JwQ0bj@#>Q2z2<4*eNOMg?|ufZRxAH6Siy*z<_5B&%4n3n@UwqWkswTtUr@Brl%@(%n_4oDtX|AV+Q {>Jf7swW)dKcE3^C-fK8e~<&TM`%02WAr(}d*p*YzKeXoJL-JYwW!CaPr>sVMDst5JL3=8y`G%cC-26 (2;cQ_3-B24e91-X30N+f39Xq)pXKK7tM6nOp|7|*UUi8%+*Y(nocll?%OeozwuywkGlqL;y St_#`_5N5?rj+U&K3RRBDe0*7qQ-R;2s-Qkx%X^IVu;!I(J4Vn4kg<>6m%Xs)+C>goCO=O;Y&*kiH40lE|V4`?4zucIwOT@76pdJ4Y5j%U15Jzt 199?W-QOdIn%7?Z~w+n=S6J^=MWGpN6iruXmB&qcb>qrnrs&jY>5_+Y;5p6}K9KFpPEsHkh`qQ-NsmO OC!#pJu%H<-r~F`kQYL}U7xd&T^5TrGLDXmd1}>%$xq2gqY=EqM&o=1l!Gd8{>0$LUi)DPj5Y<*`OQkT&ETCLYYUVN4bC3m6mL^km kb&Kdr2Mapc#WzZ3It_@`Z^PR@@p;yeBH7g@GH#f~V_X->^ZUSE5!T37nn%>an`!LUh@lePk=9n!+kq#jd%%ke$`^9qqtQH1fbr>d+W7ivLz%!llUucq4OK(S&Vac;M1SY86DmJFP>w;TwMX-Fjt#vG(6YTe@NeMw3L2Pv-Ssek^HP`7OS+0$Mh<3}9O?Z9u0)P0`dU$0>S|o@ B;NV>P+CdZQHho#f{BTaQR=ncyYqYl`CWQJ~#3iI82!`Mf&*o$l=3>Gj960pFTeXe~=r!zQDS~_3PK; Xw8;4kT$1}G*SQL=jW#(K8(qu%}1SsxrK=nC-NLK$_4!50T1*sUg*o1Q-R)2G(7tk(sra@dko7sCV}= SJ3E`}2CP-p#}$!Z;5Fz*oqY7@(U<;W+MGVpp}L0a|GMzdb>O$&dP}ZYv4Y2nQ8!}DNuN{vn`v|UNJn pfAxofF*TGTt^m$3(02#v^2gaW^Z{Do06a2erJLtcWF;LVqsQZx5>(;G<{QX3{C=%-U$=`jj*Tm~@0? OB))o=AaRqgWvPde4udkgrpJ-f!eyN+-|h1%z@{DpnH=6dm@_ON|@-$)*VpMU=O4KKd<;zg>XeqOU?% _A?p^iqv_=k?cLKSyz7zWVB`>`s1MSFKtV{=y3{Y<=U6H#k4_HVpYpW%@H?c+97jmX>0i^>>QnB+1_e ltc85A+K*zA0*~Wbsbb7>DSMk=BPI7;o%oD4INI`XY?|Kx-7m-?K43?{g~96KD%q^#{z9I(n49&`$R@ vFySY)54`!;YntKT2sWW^LOBAi`u>i?AFP(kGF9DhvetJ({}KIH^cB!o@uj}fa>5I9t>}{jcgR1|ePw Pq>p17B5BAIjH4gN}(f2~%5B)y$JNr|=6FLlZD&UQJ3lI7*&==o+d>Y4Le9C`U$8<1`fIb`ehkQaCq_ 07J|DjOUx1jGq*MqJJT^Ie0*PkuoIMC+^BRr6QmOq?4%KSth sxXz)cif-@*+X3qIYnNM8a0Y}ih3G(`OWqh<@))U*!nRm;5@4bxh8};y8w{B%!O<#|LdK)?y@&om $5f|9emK)_C{`LIV*CZh>w3A35?GgG3h#U1Xwf(uq@TjMOH{t;=FjoYc&}L&i31QLCM%%q}=gt~o@yv C9J;;kdxM(1*1G*n~4NP!%67Irm_Ttl?Z~~hXPU7V^oWJHQaK0{14#4SaE&`|V;tgl7xe8xjwRXbEYi ^oPGoQQGK=WzlQ`g*uhYQrbSP>)Q=@++${-5@)Ju0gzi(iyh+DpbXb(9eiU1=KUaUbWN*9AmFL#0q-O =%#0APOJKhl-9BnT?NdK!=hhGE6E|GAeUvT9RXBWi#ZMuUM(s!(M9SB&Ox;@A}A`TC4eM{_(Ib=ezfw yU*Ugv(Mh=yDZKx-5BcgYTga?2xAC*4wqLVkN$XeAG`=ZfS<3ubM{8U&!sP1b9}ASjbfwd90TJJsKd; SL*XpPD1 X;B_!#2`<{>=#>KN~do?PC`H;?w@Wp1%~$U&1ok_s20Hujm&%Ec_BayxbTCcf)=Z@|h?v9{2W<4UsY{ 6bclK&z~7nQji}Esn}^nK_1GU7%0dJ4J^pZE-DNa<`fUiE-c_#p@N&IQ^MfeC3vdDHXq1G$0Fg_{@O9_*7rf+D Gb>4E&1{P1rTn-v-woL)FNP!t<8EiW-UOdz6SbF%V7fmki$f92tyI*gne)tY^I@~rTxm9#jpm!?Zu46+&br?sc8>kJeS?D?;7PL`AF lsaY3zj&-x$iSBH7p;`RgF`HszR+*`_x4JXI-n;YU~~IKKEL@li> gwbCyq`JE}lcXf;}gHllaYZq$rgQ5)P9_r?mR;53|xbMOq@fM3Q3@Mk!Jv?G-4BL_$e$*0A10j;Djnd 7WQ)?ckBt%KHQR)ig8N89~u*G{lU+IQL$?J|3rU2nf;zhi%6$2ruIPNq}tOk-Ed_vP1;s==y{j@MF8( o^)Gbg5ph>-0-{qxJ)qu@$OR)QB?i4*UuJ4tFPGNFKSLEGNfF4{Fid=)H6`T}MBrE%X!>Fg6R!HReY1 klERaw(hh}*fCBVt7Y}<74{Z8$b|b5pCq0U&x^N2i-?n{@@2VS9+BV4wyJ~bu6ik|gc_n2sU@mfeXZ` +0Xl8Wyv|-9ufK;p+e`J*z42c7kBiCRdp+ @OcnU7ZEx0prND?U_^T`Y3@1%+BCZCa$^gg{`f2_aINAz*P>I|TDz1Po+_Z&}p$=*=!HgAkK*30* %dNaIIuf}`Yd(}JW9rliSVIq?7Km28)01BdePz`zttwOKCT>U*3H~|OnWIPpjCDA0F3@2G6m+U290iu KHSei@c(1o;uE~7i>etMktF_X-{n48Q`%x_G`Qr0b2v(?Q;c8&AA^QF`3v|&-K8|%&PVB=Xndytj0C) pe92S(h%fa4CgJ736G@;`|FLWz-Lk|+Y)76V>yh<}Rr#fRb$cvUxs^GKPfyHJXjqpj{{m`dL9 5zz@HG`IJmE&0DQ(Yo1lXcDfzJ?c!chBNnLRUaNQ73oAa~Ur0ovcIX-ug#_+I`jUsq4swvh(Rk2t7#& Tg(q}0%wYk))wVt((S!XQAPPFIPi|nO#o&BO6Vslv;Tf&yI$60%~gL{*k?mpqJb~n2pxkueoZd-me@4 ^#!3jep5CJ)GOWk(gK95qxeP%D+;Z`RxtUhje@>_rBS!ToU}#Hj_?CYwkvI*>j^H`8tOdpgXVZC09(n JdgXvmT=KUh|9@4KwRTYk-9;(_%2k60C(*g;i-)0fKGpYwa8Dc-yp@E$y-PJbQ!PXm7Q*+1u?Vd#Am} Znpb6103X-4ue>}#u>$CusLi#%)iIk8n%vY0&m$4vAmgm%8s({VLrBl`55hHxJ7Q68zs7kXpsnUyEj- >0P(qBIL_4={{F*ZEEyR_?jmzYC3%{xCvTHxa)cPPBaNdrO`(6JH(40Gw%97Oy4$ntXvi=F*% Zzo1#@*Cr8Slyjm$0Q2SMT-A~`G^YoarF~7m^`P;i7g_ffYXg@kZkC^w_TkIot2d9ON6XQh=_;e7wdO G;^QE^&ymQ)tXrLvcLP}Qj|>X5oZkI+kXBE+|2VVRAF&!s&MQPBMXvWk2N8aF^h-a_A@AJS;EpUKQ*^ QbulqVYoOIqO+_t&JSVS>kMVt_7sNbX(mnJYEbJ%VnKxQoGa#>Y!>-whj++n7g?QSKvxqg{yHLuE&v( gF1;GB2EktrjR08q>54EE-^vmi()Zb%!MdcDXK-Ss26J?iW&Z9-5F3x$ohLAzjeh7XW$Y%7uVoM$ZH1 aL1IV($t1H$DXAfiWIH(w`6Y@Dpopf?DG)yzXcKLwt+XpxlVO&aRsJ$C!e3VyFdKgEQOQ<{m1>o^C44 r-+PQo_FXI)wl2`F+Uc+m79k1sNd@WzkH}OWkm2czQc@y8s_wZ(ZfPc&n^RM_Zew?>Lo;O6KXeX`_QK FOR3Up9JOOM^0qfJi{tQ4M6EK(vC`=R;ns)t7!J y<9Gr%jI&pTrQXYSNRW6O9KQH000080A>M2TrETk+Vw2~005E#03QGV0B~t=FJE?LZe(wAFJx(RbZlv 2FLyRHEn#wPE@gOS?7a(ol+~F(e%^Oxl9@>YB>}5TlG?7_{s^Gk37|DxTB6 k?xa|(6?J|&-7I!zGwVOqqX`A#6ejJAToq5YGtpXNdRkrwK91^Sw!;+x63eXS7>>T2SY2*pz?o#!r80+scYpfMyRON|a9?GDIDN~1?E9Amoo~c`Pv7*d^N-8xljj%9>l5dn !1dzCpFIC}^7_R2@5t-7&i||Y-gSPj%-i+GF>62!QFQ9^jntaz=g8!x{(#SWw*M&&oe?T}-RP^B2}6Vt<}4>fV7hQ>N;oRI|L;tBGNK;`G;SzH94dTsM4PQwXu{_OWU5g{Z$~QCY^zQ*QjKoY93#p;B;JP>51ujuDMqwly$tUwOeUL3jqM_nT}yf?pR;<~U%zMrVeuC$?|kj|x-Nb~>$0zOt*yzpU&2dvEAk?KL8XCa9682vLW(;4O(2g |=edvf=)E&`8cY$b$tjZVXP{&Xqn&28SWl4U1G^0NMV8$BZT#_$vFL*DO6bhpZ*D@=-#J|cGan9xtb- b>%i@JjRmPn=0&KDrTb=IBrU?JV1qYw?Zw*IYqT8#RnFV 1O4q#YDV?Ys()F}SU(&hY>?6aZugyM|zCECCfzVK%aSN|k@p^XmaKYJK!)x(epD%9V^-f$#uSY?z$)G jxKTaBx)}ZBa(w+2=Cc_tf>@s<&U^3C@vYJ+YW50o%&@n#5hwDbKehGPqgNSQ55p1_*u} Xg&<0s_3DHg5D=$Z7eL9iXi oe7q^&wg3!iY*EBGEdQvjJ&;i@L)&pRn=_{3+d*ruakN7^;46uzu;#aeMD&y%wr^S$MPe-j_z-$M~{Z @+IHo%e9Ix>7wRw=ndk@av!%Vnve1b^?fwQD6Nb}M|m^|JSR`eNKbRSoT(`eyA1^szj9+7A0(a|tbDN GyN!GhHpK@c#)lhrS#c*VNBI!bGbUb-!?sw{p0e@*I6oR0%ZE`O01x?nSbc99j`QGm2|S1{6UU|PhRr ^=cHyyesUl+K55JvFHEsIZYma&K%po|fb;u{%9@|KtZAu6pR1VWqSB&7>8za%(Y@>ujN|1fr(B;hv=6xQ{Ta|bKV7?3o3-~=9X}g>tDvi&ND+0K_}hODz(sL2tSNQ6T x~-0yy(lznl(K)Gvlg)IWwo_Oi3?#U&3F4elQw4(v5k3(4umRv2)vS^uW96yQ&Q14ah>BvqBs nusM%a3gp)u+c)hZuM&TAlDnFiMnNT#1y}OP3c ;v^H{y`#Qh`hp-%5rhdMo)ZAhCX>Xv8p{JID~Lvs!FrFP5^SGC+h*tWkjhQ0VPT_5mYo8I$lC(_k}9% ItoU_9f+Z#10~>0C+DLH@n?jeGy+E(f~Ki(fO}Go2mj9RKg*GZ7xKw*TKPcf#^aI1}c7ujTwt>GLl2{ _n#1Q~4>|jxPPl<5t;+9Fc6IkFxQ9));@%J4fOk@t=UwN8xx-O=P$jJQ%WgK`>`hd33d7C| S5xyTZYvlLv-5ij&m*E4RZf-fDx3rw-hcD=vDcYT)CCekA4WDY6F>?Q*&WmYA-xQiF`FvuP1D~z4}bF_%DiOLg1;OsbE+)!G|E1Oa{J+TzKk;UBxPR8HX-UO^^ns{z%_CVPg$ky R3aXed4&ZheMZ0^uKpAhXAkggqc-X`CJKH1*jEW}I?r-)#u?mp(y^4chig_+{`E`8UYbMXC0YbpDq{T WBb;*m{W|8SJodVwPt1^*#KXA4@3WZUb5e>W9n2Gd15;Y&VOID&msJ7#=`abKE@-)c1c-pml~e7@Z++ I2kVe9qX#=j~bcmF1dfT)eMiM!zlF_bSqz#`|sgEhh>9yASR5BeO+&Kg+{C;TmiMR~cPHYempK#R&W7 i7x+x#xB(J*t$#+UaX0>tLTSr+k4_3mN@%g@a+b);8i=7z2vEi*Utb(AU VcE}N=TsQ0D9QEb{c<+Co!ed>Q5oTKA5|Fs$nz&@QU4+gV_?H`sSQg9nYR(_HsTZQ;67J`qz73!y;j^9vs2|JwS`zq?S)!e=N9zLk%UKsauP xglj;8_^%V1fQlkF%6zGU&H6mh&+&l_SN68-#3_{Q>X1ONM=Z%6JwV$r1&%hMr8OHFjLh>#aK!0`hqq CF3CwHJJq?IhEPP_O=2Ulg>pwAAQA>D5@f@3D*GV&o%_rEK=61p6NnLCWK+(7pY@0d?~cw+BJ{TAL{0 {duHaU6>j?1%CZA=wj%i`xhv0Aj^oH0xs4vt>wY~moN|W^4&imZ~c|%0n(t@VD_8~jwq>={6ll@u* #y>=~wxVj1jfmFXKRA~xVnILtHzk>5yTw$l@RM?{d{U}MgTlA9t@H#by7@GXn)t3=DrXtUNe&@ 8$n?JH7)63$%}5$fxLeW}4zz)Han^ptwrrpl}tE%WXQX&++WSav^U$t;^PC)2I2khX&T!_<@KQ!9qY) >F|^rIkFF_M=4;#iXz7vr94F&_G+6CfA4*qO1b)%(OM+VT^`W_;EXZa8w^ln+7=I(9EDcUFluIsfEn7 h~cFVLANmtVM0gm?1L`8oW{1HbnW?C3!jqcd(!B4fN>gak!^!`{Tk0NvF)?p3ePX%`M>adFhxAYvM56 b^_-z^WYu17Nf&h;c+YnodhXEQ;ay)EX`tRUV4wb4Ln w&Zp85^+~11(gZea-`SHvB!i0aLLAf~*D`Oh&59(8q=40d1#LAp1)8rw|?c>tKaLB`bGs^0-eQi%O;9 aoo-b20Qw2R~CZC~Bv$q-L@V?3`={zfu<0?=nnTV+X0o+YM_;pR`8K6_mH7@o=OD|O)cS`F`X$@53wg 72`*dE9-Ss9lvQ8n5yim-iwTm@ka*<_C;jfk`=Su1v%M@ZnD*Ht_b$Z-Z~NBOfxDjrVIn_s<~B<~7P+ =l~to0KaTo%Zb1jjA1AAxhGRRQrMd-GL$1x;6aGVG0 =Fb!CC4ZR;-R(L$tA0%O{R5C?c#dHz%P2RqR($~=XQ-eLX+auEU!Oq goQ6FYQAIkh0Mx^KV8zL`5FHkq00uQJk35RxSV6G9STzV?>MniD;v!zD)CeGjv!18A)ok|$7ye>!1qL ^-N$Wpph*?ed4A>cKjS&o`oVJ^J}Jm`za&raZKIVYM;2RT};x}E?C;yd DH*+_baCVQQ->KkFYO1C)5*rcgPj|#E9x2|963Y3FJE4!OS`Ffx~*oEep*`aG`^iu@M>m^m~vK NL=NeSk4)SDA;{G)jHXh^q13Sjxhh_87?A?gcBs0g2R*XBd7&Gxn6S_edr~a8U5{tLHf>s*zIUnj^c6 N5us0h33>asWdtvnHix|01b^ZMq^Zv`n)cEL1wh%jG$p~8XrcEOj}B}6yd-?KSiC*_^(&T=0pa(Govkorl~FSiW6wNth*mcH1iX3+jd~LBWU&Zb5!P*Ne?by`2YVj1&4#`caha K}WYZ}Wo*X+DQ=mt1zuXRf;a8z;pK-U1euOwcyz>^O2HoIYo)a(+}xx{g&8~*rxMO)p7GpjPaWqprL2|oC?$wMt?Ow428{kklBuvvExs(+&9@Dc|;CtEUf&0twwW*g` -~1nT#M=II8gv5vdf?K?{IikY|6ubjPl5B?woFksh4(i@+)VvEr1bN1TIGpITF_%t?_YUKr5C 2mGbZ^Q?6pm8h&-C&YU>Bgz9Tsj?nPWX^`53d#=5AdcR|nA0m`7Qr)dFV-ZQpo@_m*0egJ82(WV_6g #Ndt@5TH1+Ek>^8Z-eTH*L&+h)g?+FGC+t5ZzeE2fW;$wy2&*$QR^{{VRG`+Eg= u)l8`^0gKU8OQ$dva*xEf_|DLI430@kG+;B+6VEQB>VQ%co_Vg2z~B)@!{uV<6NV@x<*?m+GDYonLgZ SGs4#N);NW*egmELZ<=WTJ!1SWO~wnpug?+f*+NL41;(@8IZM=b+C=dOboL{{7Oq|tyaQ=F@Y|1AqX+ gF_ND#1n$#D?GEM*cgRcYj3CQqq{C48o&49}*;Z-5sdc^%-#PiSbgP&9)65^gdJnz@W(q)Hyj>nj>_k DQZgx~FR;xriBPpIYvu}+^i>*P%n#fl!2Ee-q|Y6$o+@M^nsFxwh3my$&DRmK90|Zyqiv3#P#bs~TC=>(|7A6(g?RF1B~z)~q>)IER910yC;J%gRmxzn|)(^pGH>;$cLDPq^;rZk$Mu6);`SVr5 zy}|BQ5(>y5DQ(A8~ep+HTQhFC&NTVH` #qG}=1EO0g=MypE`u46?=<1I3poSLi6y&CpB1NV-W6IT~G9|@ryuF}$n=z~^g7~$rMqM^rNm#bVx*rm DB`1}x_m+yn$2^yj9BV$A4zj@fMW)U|+b*H({(6p*;g9R8&mpnD#tMhL@fO`I`-7lYo?<_c5BZ5Z`a1@S4L!0iukxk%O0u#-=zM~96|PPx<+2=?Sn6pPyc1I5uu(c>bD06z!xvR Nxuedm%dq%=6qJ>J!B6Krm4L7mhXLtSw_?B8=GbjG0PC_%>evTcdP5!LFB2@T+ceSv}avEGB%&{W-xg&xhjAw7rUtABWoF#IY~ r|G@k|6qX?~j#9(;^#QEaTD51JX6F>-&e#O((O`b*|rt?Dmi-%|ODdl3iH*Y85x_Gqs41-htnUT1{am fbzxwraHJa|z^@uM1Yu=js-h?3q(@Wo#J+|DUl&-LjQux;rgD+Bgn%AWdLGu`#K&j 0YVTSNM^r9~fh-s()BUE4XYcaKkVo?%Q@o!Rqi`Ye82U2x6^_0lCf9EYyUMBZyZxc?p}@&uyM?uCHk< vsit7t+!uRTYSpuEyE5UGt9a@oH&jj4RPPC%(A>XM4u-HtKFK%4Yf^yz@R_oZOyK)s|l&j#slxWlK-o g!`v6^jp(WhaISc3;5H%WfA``Z@Q-jWwZQS0qXX(Sj=B)9G|m06S98lcxy?HDnz*b7%^S> j17$Dtos?sJuT&+!d7&1B3dpTNnnByiU%oQ?ETN@f>4g!YYy(Z 130N<=RPu;o_v?E?spdInA!aeFMX-9idl|YvU&}Ba8vJSR*m6ox-UhCMS#<9LXcJBDx_;}VOn=Lf(w? @|x=f2KSedt5b&u(q{u})ptP*;<&vqYQTHn^ywtSVC+zp$J-Ks4T=1@<^ojquU*7V3(1hn%8rxJ~O~z 7E~FzH*APDKlFgLD->E5X>rFAjtCo3(9!e2)y>4}1$oniKJm3(;y^{>-Pv=A4Py38W;WBSqzb!39 TjaYC-Cge(UP{|{H~a}F;+3LFVj6YBA?k(`6%oo-{kBQL$+fVx^pEhalkMt(3h5)Wy{IviX(9T>ESKX d=V5p9Wm(yw6qLjFr;x^G2o(-CI=;`aXrHZ;UwshaWf*yl5x3AZs=rEUbaH;#lu*alriZ*j&z4Vt_YC`aB{|$Nm1-~b2=C^esUv njBiMn^X)O{iD2Q!UuXQtAb`yg+F>3Ggi&+OY+?+}^I@YPO_MC%5DN3)i`z8^Bodh{|c`<4Lf$4=uu> i;y3OfN(l=*ZMOym+$m&v`+avM>^k{YedGbLr`;8sDG_? >DOYc@60jX$1U%mC)+P4@ta3|F*62kk?Q)nXUjgLW|u`cTqHqiju6c4i-F@63nK$?uv =+8L)!evkCRR=U80LB_GOjEHuqs7>S;kvx>idGnK`&uxSQTK*Cj-WO~9iEjE`*{;!;?YUUY#(qJ{WTI aavrqZvoWxi?v*?evaC~uW9F)%Yd*kon%gT8-PVGZMk8logTp^k*auVqVUCS7?JC<+5EamSf+NnIi>Y X9m>B7~@&Ymb$F)i$uHtLJW=Y9umxvvN5WAA1EQHpqqZTu^CaX_ZiQi8EGh$VM29s6wAPdAf&R8!!e; Qo>(`-^0H`pB_7oU0@KV~(-2uST?F`R^0qi+IO5C(amtW6O~~Pp+I>kRAG7wh4Qm@=3rCU%upv>N_20 zpeg1eHu;1^Urw?IYwz9=SEEzVUJxb1$XNVk!i1%S6i#xIbub#XBd^Dm u3AZ36UOwT?Q1BAtjW0bTMEsJCpIK$*ROmAr4vDb>*er`kJYau*_bhML8>vuA3ZQjF>!zfAaoow&x#>j&nZ^`?VPHeh9u@uP $TnFyc?*nZ=kd*0#v=kJ{82H`;6a!2QOz**<;>IzD2_n}dAxV=2c>d#lWoX-X=-g+U9Ll9HX2N&6^ji2VCCe=|=mD)_-w|vqIfXp2auB b#vmcuHaD3tQk&2UjT58+)c?Ze-m^j}#k1t}=LvujiOQ7w5oXaHke+aah0ou4g8~^?H4ZA@b#-Q^H+> fBWov6ldD`@0N6^%>a(~!n~8N26%$TJuGG}6&W8iL+_(BY$+tF2QEFTEYSZb97EHR;7YA69dZOg>KaJ uKt&962wxK80hB(|nr9*M+lfF5s*ACOIL( -$?j&)ki@2D!})Hy7Sxy`a&^YOi!uhSiUwTddx L887bfPJVHZOLHB|*K*p}z9zEsBlmxQbpF7lwKnk3uKH==KTOVVIT6A&y6FSQ&YN=wpU710WSD(lk{@ {?`uvFdx@NfKSTFrJUlI7?8>wz{HY!f}y>P}O1=EelJkX5qA}HfwysO5$a+ _k$R!W*LM%HI@apZu-yMLT7=_Q24&PxAX|JyEww=K>j W$bH_IHxz2!6>Sj7EMsOKu8Cib==)9~eKF2}vp=y@Mc8%CFeSrHa=&%a>^@{XkPT&Nc8}y<5b!gh qYY#oVhxj87Jny!9S{MP5T?K!AT8seIt`bhIh_#8RRGx$(o5B&l5#|<)1ZcpiQGmpq=*(2 wPo9kk}eMRZd9p?3(0=51o+5936{1(oZ6L%G;e(X()IV^%7(^_h#ff nC6%(0EUP|TivY_4d3W}9c&&A$9E*oQl7{-*SxK5OfD3ul#ncM*P-vr3(rv$HyDW|j6H_O(^R*3pmkL _}G6u4r5f+&cl&qvZ@0fc~uOhJyG!sl+)m$^0kcpG}#t;C)g007?e)U=w?<(ErGl@ydZhEy#INtL2=R ?9g8osBw$&{RvjO{U|mM*LTouG_D2g-@~8tYDynJz`jUL^?@eh%yAC(!LweZ@j>XyX=qnd@f$pRWB4F ^`}u&EXG;zC-nVJE3VbI2cSfVTd+u924FBsuyQW~Y7ARZ!d+7fGiyDdVybvCUVP6N;L3(_9>7HHB?krGt>j-I6RjoCjg=hNGVmr7WNZVWdg7F&b%=r`@a5>qcs1^iye|!q$#Pw5iBDA2@N`z~3**Se{+-JlB^@wkY$zfXrV&o9vz }5GPI@+6x{9PRX&MC6lC&l%wLJint%k?_NzT8U408{_Q|EVsEq&u1gK*dB`DKXse*)trVJ-|=LK#s>2BslW_PYdPURH90Kczx~1^+J`w7dnq+SogL*^+@+g2mU_TX+hC@x$G4y 0TP)p0Go4?JEpc6poZpn)D#vPeETv9CI?n6d%sFDHXPJx_l)b5kE&5)8g3)#5rd^>tW9P|r-r<4!8iu P2W;`+{KMr)!}|u@hhT&94~d`w+2Z^z;`02JXh{#g{~PG?(wnJ~WOhi(r rCBy5B(-j{Qc_j?-R$}+4p~5t;P4%fj^})<8j2#RlIp3aqRf~m1sBTxO85L7IV%J$|~_$@|{OJ-n&c$ 3sAquknbVzvykhlY%Mjz_;wJw=oEC8oXZUz^O38RpYb%_)7RLGJU-;*^=Ib3058SjKTABW<~?eNZFCt 2x-2-*@9)vo`XGHuOU>aZ=XHq)=S@XtuwF*kI$kmw?XYnmB@F$*E8xn^%jzD!I8SpN%XyS0#oYKtuN$@x i27OZWz19qznv<|VXOLHG9M?4|pcI53ij5w09AmV91^g~0IniKBTa#r}W#8@3sn{574oF=Suj2|(b&Jew4)0_)q<;P3;Gt1mbGQhn6fe~{YXVp{#kZ52d&1JBGeAmL<4H~|UA>Em2a&PgI1Kj08Q&sAcpN4Pmw5HT{l*n-^#|ZMM*`%^~evnWdcPR5@AYC72c~w+h&GF|fwiJ+kZT7R57&w=*yrHD$Mgv2whl(^UD5 R-96gdU99@<=9JOgp(Or11)ytx{Ax*6wd2_CaoIma8iau=*|EI3zJ$?mx9DeE&;BjD+U6gRH3;P5(U- fBicxlJs#d0mnEa3Vvo9NC#JhcgSmh*&ZXJhFN`2Ppjc}x3hD>Eb6zx!nd}S?`S(4SxzRQoxIT&(`0M+OdT7^y2JJkERXLm!KcB6|@g%qq@3 gx*U(Kj4U2*KFPSGS)X!lJKM8f89^L6gm-exb+S3$@HO~09CO>EaFX-kT9E%osN+{s^vEt7wz5X}8?RezjG_YEFR{w#)S;ZRMHSoN MY{$N4aJbADhyZ|4ZXOj@>vNVx_ZGge#%9*$?k?9-dMCd3|O- Y=!rb$V{6pvYTHKjbEbO%*{x1%@&#S@y>ab5lPcTnG4qO@^KkmJnXd?bDm%{rG?C;TBa?U+*H@^j4ChqS>=M0 n18Av}#;++w?4KcI@_scyN+;20-Jmx!pzNg{ylON$62ruw*1OHoa?J(&b$ekqdzuKgCdIG%%fOpsbfZ oJ0!!;gvE8fEPE_j2k5^r2POuEPLCf#o_=^jWzcj~Rqcc6Q+{xbTXTw_lAvJ`l8&l9%syU~`ohC}TMk r&$J6z!Z#!?^|YQP>aHtmmvBx}xT`z2o|&|4w-y7PTzzvwuo?3GsgO8d25?JLtX2=<vTh!Eq2 d)0iE=bZhMgRUZ@t05%1vhn?H_{XaYMUe5ovkLN^A|kFEj7WnU{?=U1V>cqJD@AZ6?m6b@h3)AS&ZSP xv&hF-05)jd8o53olsK;M<-F7f=uh^P`4HFLqV<%~=N^QwM}M$fOPBtib5>93py~gm*X2yUn6z)?rBdGaM5A?HHNLg}>de3%e{N4H{~XyP{K&u+5*3>#+W|}-(m}3$(VS;`Ju`2-S}ScMVtLe0={? t#qb>)kNcNYvfs4ZKS{0+J8)B8+=u+_Tgr!gfbrhO8#vb^vtgq>T<#K$eUs!k*#4YDj$m_*2sd9N!fQ AV4_>eH8Q})t7D^vpx*_FIS)kP%qi)c+X0k5ufU(QfDvr;e{=mtHvqaF}upYeSlt;;sHxsn_L{`|)W)?YS_^T+7lMi59O$*=rs}`+YPscvGrq| DY-(tNFo{BL9P_Ma{Za)?A~N6`Q`z3qrJifMcXxs&9Yw3AL{46NrzB7<*@dMmF~`m&4fU)7)(<3Pf;y mWXUa{B_jM2_^bX!M)-^^eZ@LFyR{}`KREIHD+BLEe!i0%m!FTA@^fDj`DsZaKdUG|uDJXxhy1Mng3;uByQ9Vrd2n5?WT=;V4)WuMd~ ApO+|tk>TAl%I>-ZTua7eGtCV+_nLACHX-<%t% UAxqGSmELl9}I&xXjEm*FO!6%8b#}@CDJt`=gW@*La!H&W)ED?Tzs=^MolgPWz!UPb+8xAC2o^1+Pz{ F3@M518P05=a3p#b6(4JL$eogoLb$_S>zhM7mHFx?`JNujoy0}xvo`n=j7Ps-x*E+H_J=(GpKVYALVw jaENl6BIz2TjbHJr)m!~qW>!qsu^%a>pXNZ;BoAO4Rl613@22EbPP{!eU6$>sCfS}cqid5u@AB!IoUg *QFM;%FO9!b}uNL87u%93Nh8*RTmuYg`l4<;D)0Vn4mF7Pz<$cmDua5X$XN0}5)8$=SoqJLBlzH&XK1eTp=yVa`I=t%vvl`bAan2{>(d$H*^W})g5?<4lz p(13YMzakb8e2RJ$IICYQFKRU#Yoq^4oEhZXLdPA-8V8V_BT*U$t6WDeVvB!f6+E4R-Ny@4VhUoi?$g NK@^s6S#1!sQf9j4#zbait3XLLB=#KH7D7>Xs%@&t?N@`>$=_K7soqY*Tv^}#^w! cQ?})6mhoH{wSI3zs%a+KCEH? Qg~Jx7p-+shkFU_j0Zx=PGN{7x|Hn`v-9BPL6{>J}%&1H`mL$@a)I;hQidMVbf0hAG_&Cr6JzXE6S?U M9BugmFwLQYjVz+$0f=FnfBUF?vXJ)MV8m;P`uqB#1g+ljrRu}8rRbnJMGYU%S73HiTIfMA6lkv- H#xL%5`(%8p@V>^R`6OYc0Uenhw$6Pk^kPU8C4<1lnF8D!ib@Zz*5sZL2OW^_$t^XEMVx6ZHG?D$rWcOte^?{j_h)%m{8fmo09&9KQa5{ {KHejLr8qVju@KgQcXfR=vPN3S-#RPqjaj-rlgbc4B<0&I@3PGNiThW*F(B8ohy3sZV{OU*E^X-(mbS!oD6zJbYH3UD@6wji|BP*^ &1UYoV74VM+R}QqC7WzZVYg~aO@6a2`4igGdP`gKTicRNG;z-F2GC~kt&W-i+7ZW5_sRY_h4TVao-%M nJ6y?hF3sis2xPX4ZOEqDkhjUVwZm*f9f@ryO$7OUx!H!^w7F#)YBt+YiI!(+L%E~!{1E*A&A4)WJKm P^eBA%5+x|}NC|9;4=G*vIydB;Aj_pX5%RG0zHMSi!42<7Hj552`l;y1nvdriA`n#MY{bcic=^bEM%T H`eTg|qRn8(_d63e$)-erm80b^JF8ZB5KQDgdE=369V?gO#@a{o1|zudLOv68V~1JZjPl@aKcb6&2MKz%2o>AkJ1-d+uOXS2l!%06 JXz_bG1odsMFtmQ0lhGEBR=zY^TsgY^Q#_=N R^C@UQ-TM&uR9)+nuJD_Y4p1ZJM?mbBeSyAIbC@Ufc_$Hmfd-uk-tao^w>lK%YepJ)2}UxDAnwUxT^_ d&Cz&1KqX-u07OYStsxay8A$isc=&xkKxz>rL74YVKoxQzp3Qj&+Wd^xp-~4jMbp>RsgnGJA%4_}%0K >E5e+{BrpJBl6*n%f~0*MLrmRj?(H~ry7R(@X%ekX(PZ+)pWpouc2GvhMCdRgUU+`cGD;+_)Z*#c cUDpLt%S@rg2)axHmf0ifX4ahIcy?{7@KKEMGD|)jiBM$k*0r9TxY6+)vY*`F1*@8M!=B)CZgZRXX{} $9|Y#k0K88=V5ULmv&xL&epzK;X9RSQI;ce1Ffp2EJv&}iS`=EEWw(2ejC_+l>jaDLRA^6Wx=8&KaO( 6$8aRK~^TyOP#brHk>*yrdKJ-)`ntG(-OJJldKIIP+wjJ5-I6?wlRhQCvU_O@N;+TPq_)PG!)C}j)!NA4GaHdVp>XOV{btMgKH_g5g>5|5@ CS}b;m)=Q+jHYoiueU5Xn`5KK-0*Z%9nvX;{IL-wsQ} nL%G2KzAeU;c6V!p@S_gH}_*1$6EO-UDY4BeHu#I1Y+{MQi)^BarGB^5DcJ0ZA-_xPxu5Y^%t^48xb*9~O!=6^}Gr ByQYlwR{RjoG4DEC!D$#gY%Z!^chs&LQ#W`Q(3-_x3gaH?ErD=4?xB_i?}IBC$aX+oV#;@8yo1}#31= Kn(ZO=HS;jV*t)zlrlw!1vo<=6>m>|6Ws3#(gr`zB&H&5w2TB`{x|$$KJ>D7F$k4Z6ZwHi))X$Z~09# MEhQi`==V=HQ-aM--F-TCvpSVmDj}gq2c;qw^={GPlVauvj*RpZ#BwVYmN^sG51KJk68j7FY*iuOMgb {?{2g!k2ZBEcj4|moI|weRCM>Vx{?K#mf Kbh-pgl~`Rp>E0W&ZXE#dhAjJITcpetpc8_Ma@ooNknPQ`nl-}L9I$D@~29Dm7rBwxojY_9jZF nSi2JruDyLYHkRp{1#!`vCM7b=UJLYJW$Ll4}q_nMDT~|?1G$=X1V`mDR<*2 Essp(&-l)xZd`M75qPj4iE}MyvtRU-5#c%^zN;!&M*F*z>%A)E`ld?GHC#g7efq2#i!sxa`pkLrT-N6Py}+0#Ot3|9=X&xYQ=YALU~{^~{| 9eQ;+|~|eq5whh;Gm>a^Xs}o8uKlYW-ZO*e1FM@$A)lnmBd?Co{+~C9jqv=kYFqZ&P8Ou{G!Q=x!&OOt(Z+p&| eb|XR=f>s&|3RJSPW3dMvAGiVWOp4qm=chCtFTYVxpm7{&qcLvP0c&b3H^Si+MB!K%f|3)+^0xab}-+ ?yv4|tM|Te=tS7wyxS-Q0+%KL}>(V x;I8(0mysDpj|K<*@mFFmlCXOHWQjh(U5$VyyfroXYX*t)FUE;ilG&S$xF44%f7*(wzlX2U_*BD!UQM Klr^E+bo1n;uQdo91E<_|N~9!r;mD0vPzRXG$+KTT8Xm~Tct?!RA!sS2G;%nhPc}}f`<6IqQr 1_)^?SOMn^IJRia1UCKm~t+_IVji3am=AxxSsc=&wYFH$PFj=_K)rp6x_u9^uGS}8tUBNne$;!LLNK6 |40pelTDS1hg|E-xk@dHzZ9DR~yWqVxH4YJD=x-C?P J9j@m&XHj4EOc!wAeuC6}^_AlIsmW>`wFh{AqCfe%AQT({VIb)MHa@R* 8k&ZLc9t7P3zknkCUM57&nf#^#C`usnbtoGgcBm0icJ+v7Eh2|Ms=U-)Pt#W89J&=)V$cG>Ix3q4b(S Uot^W(lnbFP3tSOPgLuC$Bel~>dm&z5~{cW^GeAG(5V;|7Zi|JPZzjs01%wSzn_jO~PH`PfC`{`}+5< BOd$DbG;_>;)FsKQ>`g#%>4fO(O31^uyMZjv1ii&}1Xx|0lUG{sG0~Jb8A}4}go8b4(C3Pdzj>xEFDm N7x&=7jOD3@ei`zwiq~Z~Ve7+Ft}+>4)8OR;~AZr#(HN=AM(HWvA 2i%RS9D=g@Z3zuRl-T{Z4LJrwSX?p{0+9h0{6?dZ7m+tAN)zh|~(m)KU5);#l(Gsr)fEy8F1P3yW0m| RcY<`&(=GnPM1=1*If5C8PDS?ntn#h2V%6S#D!Qk^H`TeWQIkj*9PRznAzdeAtzP3?Wt%`-~TcDtYXU 37POW-x}T4q=CJmnq^CcMAB65ZWDnfu92^&Nzr$#;li!#=#U{c!# j^rO3%r?SjkS4>NlXBZkxh8sH3*dbZb>lb0+Q;um7012uoH$WN`jVb*&E0lpGJJ@O(F1+9nV~ Ome~cu&TMjy`bjNl2eVjWSTi314S`=H?&9)tXKYNjNy*KxLcfyVf@P3229`a?#-)YF7qN=VMGq#dN5C%W32CSC|{FvH@y|&_$9@!bLPH)S)aiB&q9VilOiHH4kO%AC>mQK@73^G=U3=*tgjp }ilhxr8`{UR5cgEO#k9|4sXcLfA-7x~d(@@&TW&$zvE97q+Q@42o@+^5=KTd*p0B`xx=d-QDaMcE0=> 9CKSlYgeq1->$GD~n*E;;zP6D{LPf_bfkEU44OR4%F_!d07XO*VT6EgP**&$|&$k;e{^c=WxFet;Z Jw#$QGF92VG5eHQ_a(9V6NKpo%rs|9O*P;(Xs#8`tB>w+YVK!MIk9zt$;YvVWj}>21iy&qkDT!0dck7 XKLZ`iGt9Ur(p1hh%j+qXeGc5mSQm|#rgqHus9oBo9H&k7)4BkI=h6kz4?Zrv-cuG!5B(S{L7LrfLsxB6Ya|Z7Pc&+Dv|1nV0*sa5Z}(@-`dRBvf4>Fg=G!53 (;emBYAQw@_kBOU-HvZBfi7P2J?Syg*w)znm*3vWy?fW_vR`s%rMc$S={mfp9Pha|S<&b8M+PS6hd3T kgy;MW(Z+M7pG#M|m^L7iuJ%T<#(nX9m}2qysPF09k|v5fQ`EZfLD2t8&bVE<>NORcBRXW~fv^XA`IbQPL$`wvWelm mZly>rZ3{1Zn|FUIfJ0+(%*^4bXVw2U8er2U$%&gGSJ=6T)=+wEqTkb9tU9q}2?Z*z$-=eWkth06*3Y NqP*I?w(T_@G^qemNn2|7N=E56q!&>f+w9)H|?m0oLzJ#&8k%+Z&A@U|9`-%{KE7F&qLP+zG=vHaV(4bF8^${XwUS-_eJGiUg@Ua_W`x1`+?a0Uewj%DG_P;rjTPbEblr~=0BMJPW yaW$`8fMCx5S-pzJ%6mHi~j4#mr!ZI(SVN!b(lPa*1;Gmr_&6zBJ{Kc~pCeUI$-iOsvjm3vTgUqATA! C$1AeFNb8n>-gDFt$S$2&ciC55DMBq%Xgy_Iyz1&QA^fXPUV;1$;`?|1~xAcXrgzCQ4q=mAq1y4_@tw_V`CE;S8NhQ~ZbTdw_NRU7F(eZ_?C0tGxe}<;?9wKO$NG+4)!4e>M@FxCc;9i0dgjO**Z 2wC&;k3}gGz(#>-VMevIbcUwS{`{+s9)#F{jq}^hNq8;H5fOgL7MYj8TQJbt^j_{Tu?<$jy6($|GB%$ NpKSp;a(s4J^wWmyNdnE}ScO=m9izXc(w$SnK|C@B&C+RrWPjWtGM6!h;_bTBUzgmrYc`Pn>C*abMru r-{E{>kL&uT4mQbpmeBC &BCSSqi2L_U&0*tM)k%Ylw5y1KHa4Jq@~1#`Rb1hb)4>u^IAOZu&Ib$Ke8enLeA#*9u){sQ!;2e{XP2 R;!w8>7QfB{R{$-!FN2j-qKDei(Zj?%r%?)UN1X&P}hdueCXjll%vm}?g$Kbbem@`4J4eo#PWG|yB1B pS46UXpBbxizi0COtAM=)uwNKG&q>7FQ|*A~S#$&#uLtCL103s>=W0JkzkdaM{-c~%66QWfZdtc#8BZMB!`LC9`u |4Hr8MoNJeN}1gn|?~x0n0Ox2m(+&x+QR;JrHiBUK*YbG&B<&z0WJGvq5Wf?tfvaiJZWHc7qf&j|iK- =)O!$n!W)Im!ZVL#{1!X`(E#FW+uc=bQl6G>)mo&TNaFOQZbEAB^t%d+P7?qBS;!&tLNVH2OM=c`n6T Iq$n{U@CmXT6Hem;9Of5&kN-`$-&2LMW;83;Hk&p&%v+jyIBOA*dIJq&Ur3o-}2}=seq}Q=Qt+J8}@x cohQ)PM<39Z72-MRt{)m(uMR`pT7m}hV7dw)EiwJk__3&-PSuDvqPPOWK;t; I5*A28Qr@%w#de^sm<{Di(yI35SD=XpVB4~zj_S0CHsLp=PjS${Qsvn4e0jde^enmFH{WQ?=Xq!baA=ymk>_`oi;BipdEUYFMci+jZL$k6o}HK aNYyK%Or8U0expn?My{GJviO{0`4-Ew3VA*)&xYC|$0OIv`+yt+YK9KkF80=V@ypi&Gm^(`w$OoWr6- ?uiS~nNTcl4;>-*6TazYS-=eX~0ppg1q+32I&+&pJJ!q}1hpoj2G8?zu^o;e%g{>XBVVd&Z)yQpiAjM LYW2j?6?sfSEHD88vSaT;x#vd?~hj!guRj_ZR5{zWhPx!gx_{CTBpw|7hy?at0+;pIqMBv1%EM`UobUIYQR9)`r$+6X&Dkko=l(ot%%W2B8TT9{jy8&aw6*y}43G*y+>$s1EpP3R&X7>{3ZIrvrc*2~E!Fd<;uK0Pw6YpO <7R~|_PLl=BtrNl-KfnJH^wI$2B?Ee4LAvPvCFqxKLwqdfQ>H)L`&=I#UpkBbU%ZS`+-hTwwm$Z zbeLRy@%R81mvTPUR@SMwNIpJ;Hwa2Apf6HxeIq^~WO$YVtp}F9zZl1Bu81j}?UNIotWpJ&IhVeXH--rNJ8`;Yz_Ht80W+hFpu0sQZ7=z8#;Fng7s6} dV#_mBH=fwpp9A@>kdeKOKEOf=@#Pg+6F>CdrGKc;V~*ZQDurGH}TwgLDl^k?Y5RGB(%meg@^zSNuam is3-<^H%*|L#-vY`+tDIrBxA)2VQ?&ZihHH&yRCb!2S0au3q?$NeXkJ#>X-|2XCk?02@hgGYHD+Bth9 wjYZn#*%gXrHZSbqp$ixRILk6b{^r^-X8nSs=rxQwx-7S1_spL=Sw_F_k7K~re9X?UmS_UNp_AKX>jl ~^y@59JJEUKCxP#}D>v{=^Z@(ys-SmcXP$F?Up>A(51ay(Q{-8Jl#}jM_;YynU$KwQX&R&dEcGG$`ZG 5~{snoO&)6gK`L!D&kMa36^BKN)2cO+SJx?+skMMa?e9ly|`q76I6*GdGum>NXqxLJA=={e4_`Q;k7j KSKL06@wsX4+aYFuL!&XFW=to7kM&Fpl<3V`vt+N=I-ES6!Lxk&cyrWsW+>k!59gWZb>qSyU0O63!(&W4a!BZi6iKh$&0+HL;`z@10_Q O*vwpE^|*->HmrSS#O!+T5rp9P!h*)erVcGEkxgl=QVtm>+DdsW5D;9I?rGd;WYzt?M%*BxbJ{ltmIg Q6S|K2f^G5%__s}54~}wPn+$uIDuTtfp0c~42VaHm>P7q5K1bBLf7P({Sut(N6R?4Qb f%9nm+9D@EgK=;v2$&QPGz+)Hkr>W2s%7AxtS1| HPadvl&t;QweV<@nf@`1`=`#LDW}oM`qZYArR~1L8|4vkhf)9rAjVZQYZEaTdpEoJhODA&wsa?!@np- 1CI{{cxXdq}d8ul8#eA#|@y9+yezLH=Ffw>S_%K^RxVqnsW)2CBA8bi5$HezH+#iQ~uX3Iu_nVM)&5?UjUT@a*g+D}h|3aI #l=EAfbP-85$E5+jMuSlOQyf2`oGz4ed-8ldAFs;XtA4;Hir;T(Kc5w1DP%26?$ZhQyEW&M_XdBz9Fu ;JX|uRK_G4&UZ`$%!Of*j?F&}(0Ilhr}ylaB?$37+c5O1RWZ86*5kS5w+(B=3*cpGT>X-(vOl{zs=`} +xe@~ZobfUF%P!!8nD0wgQdXNQ%Nlv^bMv |~^}e!f<$U@6Lyc=4eE%Wy{fAa^{zUV(>lz=klRnp(^to=ONBT$GBn^+ipR986-no7o+b!Pvb>|9>jl 14fX&z%NKBCePh7<2OXT*8sADLFo38k*!{7e0z8lJaNeOmEIrU$=8o7gIOXe@JWtkW @@Q%68Q(6@c-EN+|NHONoGqja*5W(!F+KOtc`<9d)RVW5>d6Hda&dzbo@ig C;N8)zwZV|V0TVdy>TI}4{Ca`nk;ZJPmlBAV(?&Gj?muyofv~!91XrCvtbM(*CD&_<^|K*kkjFW+L51 e#0tbfKMT=MS9AY|aO{8gQSs4=?Q%@pCc@&9e)qj@+~haqs?8Ej2hj*Vs9 e>zwZY>~PWCnX<3_+3*QD_N=F@84B>Mxq&GbL8z^H vi_80Dy=L&m_NOHeu+&&@lEKtTHKRvD1C2^kQH!W}plXF@8at)ChdpK>&m17UFGd%lXAN&bxj5YzrIq tp2Gd%#eXCzwJ0J`-~u>Oi?Ms<2xYSw{1RhrYyGcptR2zl7-|Nq(Oc_0&?bA6d-hBq6dJR-lyC-Q;iv ED^<(;oRyt`Rw9&c)){yY$Pvz`?1_S;V%$`*j|9zL)!}y57eA^$tC6=pxrP;I{@gs0(?^8$@Fd>_}&d 2$q)!xnEF&F3K))+?ewswLE#YiuB>la;i1irz6jo=6t?fEw_z%IQNM8{N_2!qh~DFiXg{WIIoEFjY(( D)8Y7)lk*JBy0KnPS4$0LZI$L+$FYSo%X-RI6{)`MP8n~AG9{B~kN5^f8TXJFSf+5R*Xu6Jb!bSJF5` AN{<5>rHp91%<7G(4a+sELaEU*kV{kd%dk{2Qb}3qy#x@@-N3Q?7c4?L7k>eDkZQLU{Q7w&!e3w&!e6BNcAf{WkqSA`H}p#Z0=oyHs2tIm!1dT$iHKpzpFWdMYBci)$GeZI#^nyiIN 7q>&OKCc7FWwWAyW`tSaSx5#FN%oOe}xH|KyNO&9W|ArIh`+yvZW>!jGP%l(=CoY$(Q%QaG)Dz9#198 d+?xm@PD5AgXT;OBbIId#E5M>^u)0DZ&p2U!R3w0V)&UYV =EWo-=eNFlpTj&DqP@T0@4w$4^O>1*_H*sM*IsMywZ4nSdR6gdz1V~NNA=c`Yug-+u0I9oO)wb@H0le7 AyusN7~{eS+xeoEiZjD3A*Ozf4%#)5kqaO0nijo8;?zu>;EFq{D<@1;DHu5!O#{`>Te^UE2+rq7u=$o Ku^$bJ9MA?*7V@-o`mdbUaA(y7?isA 2j=Ky`GZhilE%U1)j&k4ebQXA-e#8IqPAb>13%(V41O0v>xEJDX(D@H~UZVHaJUek)=5! W7-_dWZOOjH2rBpu3dc~6LU_-{P9y-lvPIc=r;AsQ081((`QLv!8`nS9u@mI&k r3DcuX?4dExnuyr3D+Pir370OR?Oh2)36H%We;_ZZ^lq&Wwsv#r}>^fvImnrS|F6~%&WyXbF4K*`wuB*ukas DbKZ4c__G#sc}XnRGp77-do;mUHkwYw8Hdq=V8<-_?a}9 81bzU{W BJ(rO092)Omu}BpgpqF1{@0Z-SSk@U)wBd-Im{Ow1basILPlHIq&LxDYqFsKdpO<{Q%8VgWse4bV=dy zNgc?X#Ac!3f%>^Ar2FJ20As#euW*xe>Sp=MgH>#dvL!6{|?vr>$jL5bd6T0sgF6crf=K0e)(u=Dhsq zdW;X&6^~a=YwMOVEpP0>o~Szg=gBeXL%QD9>4VIJ`CmY7#@Jj*@|cC%ebuza@*hLjqBi*-aE*P~c9eN@`4oJf=zl_aT$Mvo+CY*n>jXaZp)^Rc O+m8+UEnao%_lOTIUa1srBE$3=bi1s~9SMErSv-o&3>yZ~_@@cRKuk2GjgJM3Uj-oVd8vg_{~wNGaPv uO&gW$NePsIVuUR9*-QUSu _EA|4HMyg!xE<8AV@ouxGV1+rgdHjD?feS-dAnK>A94d?(LE$>%b~L0p?bDYxsKy$F65Y-(3?$s?!)& QcMMz~klAj$v(Y>MDULJ220QI#B%+CkHc&HYq&z r^p&d3(|4)E#l2bSjJ5w5)?@T~(gG4gK$-wA8+3`>1^jH7(DW7twH^CT-V>$aYQcpN=xpi!(ig)aEnm WzTey>41p=xnz`dAJ{K+(zQR|Bm6wRQ(Kn#mYxB703foQV`RQz$Bc?IIGaTQLxO{ ;6q^v7Fhx9z_NUwlhD}TNs_hxxdWO>c0w *xUPZF{)iT10)))uO(vtHr3)L6C{|cI3J$?=@XnVB>^>$IczodF0=j4UeJMR0=b#?fl#2a<*FzGh_;+;`{)cDXL`yTEg 1ih~gpTC2mEh_1^8}zo^9HlMd&Opq^u=W&>x5sJlrRe@KUvPb`_;Psrn!Y@~z8d9;>+6>D|M%Bdim|@ 3{%@?WDD$CP^zr2Q7<^gG2VjTk^DsBcJOq9*+K0Jl#P(Z|Cj7l3$Dj0#&Cc#w9>}+_mn|ud@!S~G*tc 9Vjlfs)$c9H+;qzPeFdK#5w?mgFCu=vq)0DWM(dHD|`>`+P(H^~;_Wvre!9-mu--9h_) SfQOB;!23LRr_3dxEjGyaD3%2o7#H}&B;`aGM?d_9M5;%8|rhUz(WL%{t0s?k!~d!dhZOl5)WRDm^P% 1h+&W{`$anu34uyQle80s|nao$4_1XLd6WWT28AapQc;$cJ+o{C2#*aI`Z;Xm^ wPz1(`@7as6GytFZs(g5!#Z>Hc4t$&fkm4g%aWnfKqoGWwcmpnJ!bjVe3ymiDMZXb!C5)#E0J^@T}j6Yox**=lg;$Mk@7tFcj4DCL7(8`^E=&NL+^`2*ydjk`oKStbf^yaoel obci$9K^RuK=!yj)u?lP(Db{ZQmY|Ck0n?w3qB2DZo&Ik9gTNj147kUru2)xw)4(bc(yn!cHGS3slN7 ^rCfsVOU{uT6lD!n7Qv^|{#c5Psuor>hyv5R;-t<`O`7Xwoc{sY&Hp|7t_7&qh0lH)TPeqOLuUMc*%a 7L$Tat`baqWOAt^1CYz|?eGLzhP!=5=3_q#gH7&}3OtQbLq0n*c4m#ZB%$yx?mMfhC;b7&qt FFm5QARY$JpFSWRjNaAaEGZh^k1oe?KX3zw$z+zfP40Ml*ad{Azo1<)k8`YJlc2v-bzZbj6BvZ!^~|$ !jCUTdm)g8CmD|Gd`;bsSfKdBl@QF6qw?@=AUMAKxPseS$OQR;uE(O3L8bY(`o ^Fvxo&(gEt{7VU&e>~10)v-ku{vR}7IgUhhIU(GB0REL`23s9|#sjSWPfZUO`*4=b@y9Mx*TCl(@y-# Cr08LZ-#-`a(_=yYU8>8P$|@ID343$s{Tgt}XfFj1T$n{V5IsANXH;gQiFu}Q+w{irsSMaV!jJ1(`fQ -jb=-entshaQIFBe(VSkeA_=;5569XR(RtdbBF0+V5i!)irGkR>=B&iN}lSW8G0I)vd6w%0J62Z< Tz}0^EVFlBX}=c44ypo*i-U6|*l`K>shrodSJ-Gmhn50=v*S)1n#^TZr~JLhnl(@ gBs+b1akUfHUUUNZ)ARqmpQsPvX9%4n20JV^FFagbkUTeh>D@RdU(_lrt3HX6NyVn*1}lUt;`OflCdap{k`E)3x*8l4y@xiu(=tmtGry-wtrmI6rT)jQj DJrm4OXqWRBg{xvLR0mvlNKd1i4etmRi+`m46bD%8xR_XIo9cLi+Uo5ZxOps2QM5jjTkLjH7O){Me`X -SMkjMK|Ec}vG>dy}-FY5H439obP!50J{htC(yGrxoJyB|O19zCP)0DNmZxbJ*S4yRkwrJkXe=^e?Cz }_0VRK(`BW;5Sm_>5h_;FJHfxj4-Oe56B%N&ea*e9B0c4FFHkXkS@};v1s>+1H8Z)i^7wm+Fzv{IJ5m i3bM0L+j!2E}TJ2p225DSv$B7+{AN!UH<8e7w7oin|Pli{iJj`lFA&|C3m#z_pj(Do(;{Q{yRj!+}!U ?$uTokoOx5ffWIsJ0?pn<@HtDTIbWa#a?fxqfdHGQ2Id>T=c|Fsjo*1{V6O3d4)xpkoudZk7{9-)24) $*i>d#{@4@20Mf98dK8N_}!Oo7$xrcQ*m!4gz1%31)&vn3S8fgvSejIC}mgcyz9`OA0*2Mc$+14$zCR TBblN2urm{D+CCg|0hBk{*cKz(cbV~c&zfw0G|Ju7r;;D-Q*61e%KZ}!2?1?gaawwcmYX5_=^7nQ>4aL-Y?1I!MO_V?#A!?SlE5vX59B3`6PJXcmK2~_kAq0dh*#8wb=y>R-UeHNZRQtmNue)zeCnRUKn7IwI9ngh?8Ird?F84F@i-~D&3 1^b2b_ig3biO}IK93KY!OOY=17&!Hy$Hf_JD|8~*ePlk<$YtB?pQ-`UM|ZCh_MgCBtk2{;Uo9+&n`nz a59^fDf!7{O7jeE&|7}LJFW@-UJdTb3LG`!5s|RMqj1xiG{&+j>|Z%FX 6O%m6L#n^jeyIpO%?j)JQ}YGft~3iJ-qH)q+`YKcxS2)wmv2rJ5vnX4LeiEm{PY-=6F}fer{LKbg)po Wt;coeOk-O<3T#9^zA>a`&*<$;(z}!j9#m$4fk@)LskggUBqK!KAfX`NHRBUx;~;km~_y-52!AT6Kvs 8_v;pcf6wi)&uMu^e?UWwaS8U>P#YY-RM&k*o3tME8mHN!>OMLXK2E6XqQv?>vggBzn${YLq@@Sz&FYf~P)EbZPC3y$S;1A8ub_(~>TE(0JMm6rL12 l&YT*NBQDDlqD?QQnEX)d`hXGt2ZAwSjoPzY^OblN;a|Gr$=Vx_KR6csbfY({>3b5w4t%Do}Mqyx$(0Zal|XB9}iM`oSE*UcaAsI&kB;-TA{m V$BDA;2Zo!4d1!9t(Hi9VJy=twwL%}rmbwbF6;X!y4fV0oIMyknY-ykmXOrKewZh*?(x$oe-Zkf?R`` a^?Pf_e^u7E;;p0^zrCEVfSTc<*gH53PWtM_IWSzUVA2xwI$F%%Al+i_piJqX|g=uG)b;wjsmp(4ZbF9d MtX9Z+f(rRf}_*{j^U!70ct|)|J%GsHjbTywyzOfpS3myUomlIbfDDdQFO{7Z`fZ9qv|qyC`4#Gj6*p mK84FG4Ovd+R${UA2!uUd#!o t87s$ln><}f$o~dv4|v67yh_|@O@8Me4fp+o66jKC8=Y}rI?YET)&iPpHjR_=6|;pdv; ?SOTv0PP3!Gp;>S26`0#ebrDD#*^nN|PckE_$Bk66e7@OgD+gjUY#5lF~mPpoS;H5ArrFn%e@T0k^SbJ2?2THnA+}GI*Unh>g7Y$c_f;}LQ<7LPXvXjcMbG_7NH_xH9Mg4KSoHGJh6Zi_mKb$9(S k6NbBjr1v1^Gq%dxBqZ-?}JquLhNPE_2-USFI&qhP@H(UDWp>>bq02H8<$7`AYP7)UJql)N(BRqby#P zVCUJ gI$1>X2W^Xf(RrR|pU4?Vk#-`l8w#-WNz1$=vSRdVOp5d}k`W(j7x5tE}pMvx&DXh?KPOv@|Yb tXkcNLnXM5`;A6&6`Vd~g%%Ds*%U`#_xgNiocG$*YscXuJ2M_jx LN{W^7v!LOVDbm6h&@mC_SrY73|>h}$>*C+mUipQ{sm@%10?tVq}S*v cRugRcd~400OAbRn(hgT%YiY0P_Mb8ojS*3t=aCzeaRuJ9tU=W<)Vq9iu|OFM3U;5F{^Y_8n|+txHek A_2zf)5v|fiF?tjJkwhht2y9(k(eJr1zJM^TO#)5f?d_?vLk%-ZYtgupy)6P#?3Cm}i*!)xb<614Ngd jO&wyjZ#o&MI7jMAqy9h-tvs&B36L;w=#z9cT*XVXXe#AD!xj6`(MOQhNMi-6Xq$+m(|yf0$*iV$3YH aKPU8}KL7WL@6vjnOKJU-2YQ-Jc}yP%eX9;mvQ~fiXL0^;YPl44Hs$8{9Fq5IS3}N9+vFs9rEJc-t*b ~b*#NB9StKJaYO}*$`P(zt)<%Wp!Dh}yX(9VKDeaAvwk=D@G|=zhR}cI!=-8&LcUuvA+$mW%EhkwE_7 B=i!e^}~xong9_o9q4l3^f&HISS(LOL1g*~z$DaWE4<<6j8u8LHRMMxXx(_RK7X^MF-MJTEz?J#XCAo ?0H|9xcSK04&}VOqxKC@hNy~6gjeVAMjY`b1 8+&${EZx-a6*_HT2l+b5t!9!HffJnsSY}oe=h8R5}c<<4u^ hq7}#q%kAp4HfRgC__?*^qC8gcFRjR|i>fWD7b-?=>&#Oeq8!z%6rL_cobUX14V48tXIEYUiqO|r6UB__a_st((8?Z>~Z;K?$h=IQwb}zlQ*w>@S56caiJH79S7+<*0Li{l3@XN7=&uf*he-Ml% ri8>2i*`?SQjaxa#6Q70M7+J}A$2{i*EJh{U3y)>2Sr`RSx(?Ru?Mlo`PsmZajOl7tF{HKO9;V)ii#I_3fg3Wgl6kyDy8)bo5Y Ji9eYn_W)4p_%^&++3Twl9}=1D$}7qyY-TU}d#^AljV@%08f<)5kn(q}s7(D;2&#ysO^7@63!&EDT>f `6k9&~@Nawch`-PS>du&rhP=GwAljySIdllk=TmtXbn6I>I(0Xge}Lp#s?YO?@m!kIz~%Ct(}bYzL 2tV)mE@)xy$gXrI~QFw0!F4z_VdI8A0jHZ|4Z>@?I?2ecjkpJl3W@$-iD<*r%GhuCd3Jl-c;hInlxAA 3}ZpP>dG(a)nA^=}80M(z-2>f8na{|8zGuZm{>YQ$`WJf2H)#v2)zrSdvYE$=4sD}TZ{zke4gF^W(c9P|Pi!NTS>AtH5KG1 EjBHmkwF@}ZRLAa8_(W2>{sL?t;KwBgF-a%HgCYKYdTKbf{c#Z|Zo*ic`z(Ac%K2ER^^=Xor+Rwa0d- H(&uC+@JvbJH7z^-K@YD(MRdxULZ(m?cmeF|JqmRj@7Z{UQ^tOUW|M*`R6E$Q^jCMx0@A@cX^Inv(IZ eDZ%>U}be%oH0cZ^b*SAHDivHSalj97Y#pFd?>>k};eRT}W>-m8?>KfB_AOG6ojt)7cH+yW!78~)3 ?2F;Yn&LH&E$MHNQb&$%*w{Lq%1ofoQ?wV=JgkmRc9vq2rZ+!AWlX0}8}ObFjc@AcEVI81%aqWTe&WzTdT7by >N%l);vqg!WDd#K!WDZROAOsh;&g7JFhe}*=tc-!T)ASN`WJ-K01Yr637>+JfTI(jLkJ574HM(+^25W IiZXNK+aj&FFKQH=yepurUeme;SYL<5zOM8p&*=8&(>+WHf!$FWZ_k__;)e7 cqeTbWHdukWAPqbcE?7`(*I5br;cZAdclpimg|~xKHzLr~G%&^GtePy;JSLJ%bc0Vo;NezZFidHk3w_P^n139`-dHt(A0h(T}T>%mOvi-v?xH{$5QZi Ciu(v_KJ7D{#HJCaEARm{p0Ls!<%7uY=cWXT9r 2cquzh_DmF)(>-w3WKNsD#UlvnUv3f1F=HSuQSGAAjRFv _kt#2w{~cQ>@n`pM~QwoN5$D*Bz@-V*k%7ob@yDNcH~H=-bFO0c%K_$I{2MtLu`k(kOj0|QsJN83Epp p^?#Bxe53z)=>Or6{zs+@?SD#?{wvh~g^Fh?{DS7fZim$kr2MFrpQrltv(*@2%dlMhU%@d1y9y!Wq0e Gn+Po))@0fET?cx4i#f2_z6Q1goXs(OBRM2mb=!Z4VW4D~v@?M*zc9@Ab&n4PuvX##@*jFf7Ngg#Zy? KR{-itMNXS(pY=66;h_v-HIc@y93-C@VrxC1IKKJtn%^a$|`BjB?{XL|K6M^vdSe? #|=k>tdgqxfPf$NoYg9YjA5EY#z=F{Qzpt7!%<|6QxWza;7g!UpqqHn2J`+B?pr0=1e#Sor1tO3gq$F G41A7~2p{j!5w6#j=LkQozT*`#=M~2*ln#w}oi=m!7qsgHtMkr%IJT!Zl7BnqEB|os&Cn+;>zEb#zOBN622(8!om~&z82F+piZaiHwo4+HZ49I&aG-oF}TQXv8M#GB$@7Zz($Hw$xeqcUa-_7 H3eQG88yJ#-8EoP%_$x!pDQwyhZT&B?4E4Sy--#+x?R4PUV|8{#Z=iE}C~%; (z|z)xwcotZ?Xd=7EpT5lZKbRSUuAkq-9|&869TK1*#i<;$L@7WmI=d3RF%IHUexSAs{Oe!xd7OP8Cs #IUV*;XOTHkz5@3a94~+QQFEc7gq(tJea{*&_To1?B 7BDtq}@ny|r)pr$SuK*s&MGLZ5utLnsA!gFweN%rogTLdLhg4=+^%We?jmE+A6ph8BW59S|Ht02=6Y6 q3EHHH;kGj^fWi^Ylo4-x6SLq7i_gu7~WQB@|2XaGCy9R{k9-}?bIQ~C2dxEXx_f2#7TBDR>3U*Y9Gj20%#REQ^;YO@SR;o&4(dLkyaX83 4}2)vWVtRnk0bi#;XR}G8{zL5!r$JYa(Rq9*srAs{D#!)SYRkc=Y_{geNI}_z)$R^{WdiINxNi<=D2C&Ho~E25P2Vk$NTIgKI =|);oJ}V@#YlT0}WccEIdZtr#ZzJdw5%<=^oc5tYgm!tp)foDvj~V#bT}F-U#F2PR=fj#L6-1`t}KKr @L7iywvlQChYi)bMkS0YKGu%`}Xp4b#7C3pN`RGOXe~0K22-N;uy)+xW>Ml*Q)*P>#W<%)%Wcwl5DlA MaM}_)p3%EFSg01TGg!c#cr`bG+x6hz!w`$q$}%b`1xrZ^ED9fZm`q$m8_ojA72CU@P;(uPt!(i`HtA ff;?8?_xRjqd3!9&y_fF~spI>@AE+;Wh2##sY~1NdF(fO^Pz#4<5I>gTm#Y@~iSN#p)IyR6YD+lQsI{ zy`eLO|`_h_%TKI-YGZ(Zkb@I6Awb1X02WJxxhMt$h(^VG~jVX1&U}|5QQ?Qa~fc+tf+Kn_-RKKAQk` CaQ#`-pO$Pqu{k#w9<9&E^uh`?_i?cl7g+HKYuhRFQY5dz4#BCc%G&R>y+iT!2N_|0}X zkVFtoj7eomYVLPhrd`{XWutYp74d#CO31-=scIq2HKWt9P;-&>1*= ;QQ#y-3yqfm)=cL8vEWzrnWezYy+LZzdPz(Yc|edYd|NDZbzReY|hJZXH!6ZIz0pSNrwIriK{#w=f!E njDSzq2}N;!xliz}nwhM^)a`6G->DYT{HwtnLTq}-7~Eg{{hBpSDb)g+W6suu_~aV4%3t(;i`wAC9=J iANt7SZ&*$5}_Y=PN!zRl8@K1>Un#vq=L~PihN|Jfz^w^0PEpoJz-bg$LDs`&)Uw?U13~*~WiYV+ |Y-zcCgjU9PC2--e6<|M)C+aWY>6E2MEhGNk2oPK*{)$~R|&PtEsJ(d4QbCnNP9{{+ Jo5jMtdN48tnmZ%vzJd?+np5oNxG3z7N~Lx__p8uN85wZy_9^89Lsl8@1^DLrwhm~|^q+V&*31e>jns_7PuOE= X!_&O~JTCk#fLYv0`vvZ`jr_1#MtPz6e_t*TP_tK5Y&*Cha#$-o)V>x7TjL+SF5;D_X*nKD8a;D10Dt|{jwekryuqRHf_u)?OH )??P7#_n7?RrYbg0Fmn1-8bp-FzSZr5bpi$3SA8HwWencQaon Iv~zH=N0rD#F@<%$Jq7bTt#>-n-_7G&*}Ntham#VWWa6+9DbZv2;~s}Eo;w*NpKJ%N2iw)LitE!hIS55G@Nb@%>A8GWAH((S<&s|4dXE=Aj^ybR%U-iO$_KYk!@6tsCSp5>lYQhRp**PEq|9FE7i*1 5-uNRC_|FXBg{y!4Rr@~ON|TI+7A+bAz>E$aZizef9ekK9#{GxzYhoYre2dNoo#i1{8E5p&{RafeZkI 3GA4Z?Xv4AnQ${UkuC3j;DPp&eUAOeR5+w4u#bf4La5gDjQov*Cnv{IzJLV5YPjHGIpxhazxmn;dlHI p(oh%GrC`WG*Ko$KN7@JiDoMs?c6*4Ro%ZVBCdD8up8-%yo+?n9PgxWSj55ZEO}HN1qMzJkL^bDkA6Q rBKX?s7}kmN{~?-VKgJ!C)Kx#Mn1zj+PTvyJkyF7B;skwnAU1H#LXMm88vng&G?Vh*LFMeAH2dD5KGO WGrn$IrOyh0r68-kRGs)ThKVH#VzV(6Da^}1dm)NjVO!flDz&u|KIFr;snOXIXu+c@32euvIasan|#J ;EMc37c$8gz&f^HQIgxjBD^9ci|NSUwhCG@OzxCLXu>EnD#%4`KwmrwBhzl>I~aswdO4o&3pY-YnzKJu9|Qlu-POqr?pEx%z@VK;Wvt?M;^L0*LO7kgf3d7{kjn Wda0DRt9%7!u^t*}HQPoS5XTbQqSn>Rweq()9y%Ym`ftISBq`#vdv(j$#k6-rq)}4M ?~L{`>`)F6X}xlAwIF+Ond@ZBzT`GnaYHo_`C3Xx7wJFvvY;M_~jRI9>(^c!P&PVuPb)1?tA1stHgNW J8@izbAI*DS_^z{O5%x63O~QP9K=VUHfANc?S@Py?0A8@Y;#^Z#_yz^_fbCZR$%zQvrgU8PI8F3m~kK S%%-+h(&;-LY}zr%;-;&C4b4Vwq`vtNKJ?qEW7qayfp)ICqL;?ivx?~8e*AIHr@wVf$T-m3+h5qmebi PhW*!6c@;H?Xna99Q%b{|FePfE(XlIu2GjpChC;UiDLU0}q!46WHq5DNmck1$*Qy(Rh~VXZlN($a7Mgb2;u1H!#nKFK8`i=i+Yr+K%u$oma=#iAB}zmm=^WEZtd8y VVzX*Esn*@QTE&X&%df&>c&p<)aQMk^3^;DB{_7Zq)N_49Qp0^q*Wtxv^>a=wxY@HbItU%W6qyWt-Ii Vw*+NFE}36IyF$O^DYzdF3cg=Gq~=-84>Fw{n3YWnW_i4O=YKvsW@lKn}W4QdGA5Yi~GXg#p~~$$2%% V(f>>I?OHD|!BDOn*iqjjo)A#>pBbWen}G8n?>~*-KM=o9(C;eB^BKM$Qv(Y~?nGPDiFWtxjPa}{KJ* UGd}Pp1_<}Xc;q5s*1p5^=Fi79-_5V5A10J}3`Dmk_hURGAU+CR|SnppNfTocQ_z?xWgp*8ValD{J5p1VE~vY>vJ`j&B)3VmV=$paOn x4@45;URGjB>~@JvFx#mIQ3q<`}t6GY=qIliMS3pR|MWK__d8eze*V~Y)O+i&t=?}w4cU)wWe{rh^@5 uk=*6Oorhb;(|}%vvk|ha1r{-?kUf2S2OhF+pJ{O*Hrzkb9`?$j|Wl9EM#jeT MFy0mS=hbYxMGg;^`@IU@`^37*(XS0*!Y3vz|a!T`m|4zuik+OP-KEK(N71ZZJXO~7#TRb_!^aeAN)aplfDjEn`sJxmSlNrZ)YqN`(Bfy1gyPR=6y0&XXTru}8JkDlayExBrK 1XdkP2-q@!V-)Wew)HPh8V9I@+dR^I$yq{rsi_%qWOgiUF>JMp-ql(VzoCka=D$s{8~9T{;yB2*+IhG?U?S#-nbP}-Cudi ?_L!v6MGlWrhrQ0c_Mt6Hfd|}u4UbP6%HJmXkxq^eH}6$}566IGOSA%w40?f9pcCk2(8?mS{Fp!C&Jy >U!97nuH|H_&vLo<4aKFCqkg(C&e<(;}N}o(}udn=7Vc!;s184A%0h;f|n0JTd$NexdnRg@g?JU^{9#9)FQ_uwj8v&364Cw>u9-_<>a-;Uv@G`U`V*B;ok%KM@FA~x7YYL5{cES=h8#E?2m` {kM?vzpH?WPzbs=53?t93ML1zk&r^^c?tdIUKWC8K)<=(VWeE1BWF~b+54d)Z&HBHO|{op_h`*YJrZf WQ+`7%6zgz#3(~M;74PkcKCl4*D?3^ZRHQjU4^h2SuR;?e}EW3lwY#4%DMHf(L|g-P&-}S^O}cdP2J` UbQRJ*mWzAGy{W9OjCiDG;c7+Xl&BgJ~00kzP)Z@A!cN`F8~ENkn|A8EG1-c9znBvU Wa4b$%tCDD0VfO*{2!~DLsB$X9BL2@we{@~L+kJd8m=8qs>YF9z2lxXGm)lyomdtXjLE$nfKE~p#!A7 ;tgJbcMi+-Z822Uy`(s4Uc}?NT}rE9_trtHZr+L6X}pH>mxG55sR8wzM<{VmT)DGgYa?pJ{Evud!NI3 (=pneM1F3h`rODJyJUjn5nEz`*Tc(lgcWk&#g%tMR~I&4{QZd-kW-P1IZ+dy_DY!UqK!pjp#aZiDlc} C)Gl?G&31xZNObGJ*%NHSq$6$4YJ2fG_8t|!SB+C3Tc!bT!Zs`9{qx3q$~Q1u^%?hNzugJ(>y|RsfOm!Yirdl%cX>o5#rHq$!7Ia`H(*n^)kLi^UxBUhe?>p<>`C$ {&lTB?eK$QX&fmaW;oE8OSB>hAtn$=KfwTDpjq9=X>-&aR&Tqzh#E3 ;KQOv0#JrD(C%n1W$V5P9Z;BkRzkM)0F%^4yZnIyB-AJ0fXPO V)c3H@l-S*Gbj|{LGl+`2&Nykmxrn9=5CO(+ukG8S38)5@K_tI7e0jD`JMnuh_jvzc_-PkbP$mJws{vGGsE z+N%%^$9bZ+sr-Z4Gd#d=Gh)C#dYbDY&fPN0#eVz_Xh~_L;@oD$hTAFI$_%;>=rKSzy;Bg2(PkyRzjg !FRV}BN4H3=JKEz1uhpZmC_H|l=?lCr-jKf{WI(i_ 5B+DGeYiq`YNJ@U6=n{4?ZxOK{Po{^4{>QjBS-4b``qMD@oiJiF91jCn|3qi(iD8sqHK~AMvk^c&qCN (APBQi@^Ukv0RijL}eg$r_(f=f5))a0xW9yw|BtL!+1}1IO9cn_ygcswjQ@MGga)_+~zrsBIbK|{8O5jf@Ug@cd>vO@q$H6(u>Bl7T7YNf1qh8(PN)Hnt wtPu^c((nuXdC&+!Gv^KCva>;OWay-UwxBc2uT^K2FX*1Z2^=226*zYFj#`oME|dv)G=xZl9P(Bq&1_ cF3S3rUZEnPa*KhJj;aR(u!jl _)x(@qvqz>z(eS*h|o$g3REK;1mJ^PZ@Qb~2+tJ`M3%k7n;+czP0`p`Ocylm*vs0+AAq5IM)feqpmx@ K45aPnyWy*8H7Ag9(~4M5+7p0@dYnor5xR@-NmQfrF!*ag*cs--ANt-BKX1V4kOeXLkr=BQ7)2j_m-P 2xAsShJ;K{u_4WtvbfsLMg@h3D!>)Y~xK9M{EL@5q_fMWTCwcmTC87k`4erSbyTbEqW(T^;uYZIqX}Z $4{TiGTP(hWcV!LUdO_oF30aKE+g;Zzq1l3zlCUTrMYQlb-?X}4r2zEFX@I^q(kD&uY-8b9lCBRaH-O r7Z37zS6B5~@dL+|Eq3S}uPrhU?RpufPN#6)D}s|4JV0CJ6_6dzJufil$~;3*UJK0rH$FFI44Tb# 2Nj+VvlqjHh*e7`{aeaEE-PYamD1tx&oe$JC5Ch_+O9%-X;3*v*=jCN6`=PlK&vur4!vwzAW&b&HTU~V$cHmF*IRXp>$Q(E`7d~5JJhSz>;5%fVM(gmGQVwk4x3U7xi{V=XjJ!^1&7zWcmeD4gYA `Rr8#cX1b2?V=1xJ?3&%Sw{71Mbho22G*9#p#2H>6}col=^mh7~O07`@4ibZO%EX{1}D?^4`?YO1$-3 ig(13qW@#>60~6(3Yxv;F*}Ej0M0l*~(lzpIM6MdA5?=A^yiMK%cgtR?EBc4H{{%J__C}l&<9^(cDD$!1{dckc)5JM Pxi*{C3m%l>JV)!5<0um!V&<RO~VCg@Dh+alQ kJ%vQ~Ni2Jb0X_i>Be~IcFx*f7N=`6D)F4J5mn VdpyRCIgc>0HJ+TYFv32i9wIa3`Yy6Q9OvXp!nmARdq%i@hYF7V&wGODx~WpI^_CQO0%33@7S121p8g^*~JUMKTgtboRK4r{a3q0J07 8Sxb=4Ik=X*YWppJg3|%vL4}7EoYRe|dQ^x63J6g)$Cu}SFkQFYJO!+ALB2Cv>Ne;q)+gltH!g&|fKf Dq#EmdId7V>$yLE`gLoVBDl2kE~tKYu&MeP?|r>t62PZgL*Qe!EuP@*`?=To _2ay{o%y6UPkXWo+P>!S1fhnjFWhQmFA^OvMhCm6VYW+Mt}sc`=vhQ9UU92VF#u9+GR! T!x|jpX7@zvHE<}$IF-xp>w?Z0hWxpZOl{5QDc6BA7E}q&YjhN6XSKkHqm@Rn?U1xXnbi;PoFFg#x*n 5@L}(n6cfb{JaO8y4-wBfO#I~o9is*~XDMSw+`4f8;jg`dy;AtL_FxW<`{ArwlPM)78+yTo{B9!q^SwGw{KvUC$J(}#ZX~g~SxRdwu+X`_M{T~|qMzH-K0>^qlkdmUjM@&!2660IDUG>>< Z=_+R=zuq?KkBtbq=R+UR&>vYb>|ioVIY&FkC^&SVN%UJOi vu>Y4GI~9*!tp%jZ(*?x9^+>ilZ-ulRPLqEkLmM8`@K{C@p!+nUz_xPt0cz`Af6zN8+@0x#)-D$dq|H (0(siF3ne*a_i~1N#m2tNsr(gG7cf|H&s|=>I7G|9k2^;B`*;2WJSss-ml>-Ge<2^vs6O)0m @fh-kbNX)Y320!7)@d!Q%z$M({GBGn>>L=E20Y%D*bSiIRb+D}MM+E|@gko8bp#Urt7|J|Cl+a*aj8! 7}2HQESS4c|}wHIlZI+b0__e{uG+i^oPI`n^MP{qt@1OR)dOv8}+tGM+!l@2ps5HPP#4*z8JOT>k>b5 U`#R6AgB9uFsYikW8JNs@vM&z6toMpan0hTep#Tj%03nkGps?PZPs+2_p^UL?ex=-`{_cxXYqn3SyD( uKsHfpMiA?z5QB@rNlakUUkq5O1j$Yh^toAl`}%^ulxq(sfZDBFK|U}4JqT3E^)WJklv-ynrMtu1NTu G_r~!!G#uXt{t7Hc*zB4pO?w(ESRBKap+4w1d!e_=ql=n|M;<1b=@9X>$7#=k?Gs|NcFXk{_gb~z3>^P8)qBdCtlqCO*aTklw#)oxE3J=Z)~BXyqdmGmu_>_``C$9y8msEJ Zf7~%=YslN2Hk@Aw5T_6LcI+n+qu(N<)f0dtW8R+9aa*YBiw&q-GaJH==*Z2AHS#4_d#iDE#z(BHY}& ~xbyXLSsVI2tHj+|qK)PHiFUy2zkE&29=}Qa&ZFOG6L1AyOX~W%DRpTXKR2beRwgyuP4qlXvX$XHsN< 3Y_MWV_?U$3xx_j2!c8%n&ec0a;L|JpGEZ3X^_Eag=3BLOaYR8aFFD??5ww2Z<0)2g=o{Gx528nAyG=?w yvL0o+bJieQbWYb+|$OZO`wOZ3iXGh?&}ja~A)Gs^9iVre^aTW!uN}-roQ$T+;~rhM!oc_Wy>`)vTSe ?I_+gnZ2<6LBFe+xw%M69C?%Y;!?@ln?q}43hkGeGl(U6sZ2E2=Zlm2RWgstAUV!T^T990S`+v@x_i$ j{O&!mwnR!StDV!_YFcyI9!-j`oelfL;xCP0Z^WJGM??cEx38V@dZ}FG2WF<3%9y*xwTIggP`>Qqxy= @7YO{sPxryq+9SGWZgm`Ta@w)=Wd+J@K1DLgENmhBu#I_>l@ *JGL0Mqi$XN?K;;v?f_mu<0JJ+*3oCgxG=Xf@Ao~^@m)PczU-`5TVrYN4pA8{VBOs2+5?-DBc!u`pv-Zai4T^fmX>Xl%w-nhh0Ec~t!(^yhh()Dy&=^ lG_fR89L+J}XV^c0SD#Ps4!$YX(R!@>4VC$N99z~#d>Ju#-L$UFJobaNc0K&gsot;NChW{$FHxjF_tS IJZGtD_tji?DSoTS=7R#Jh?b%s>vM(jRJ3?t{Zo6y`_8OFrxj9m%`d~vDxJmUP-%(nd=v&ck*?R<5PG T+ap78z@(HVO?zjvbFKcVl_Gi2YWL-xH7+4@bQ+nfKNZqexW9Hlkr_AG2U|3d4Q=AD1lobdU2yV>VoY 4*Kt7W4Hez5kfX-A8k^U7xRmrttZ?k!Xi?Wg_~4o{=;(6YYv9?eL{-_FHtCZKOUJ?EzNhKB8R_WEJSo h$#_5x1~CL&>n-HpovSTC;DGf?@kfVa`wP~0%aL=I-=7Fbm;jW$)h9_tX>yev3}h;;ScugRL?JdO?q! KOXfHrSv__)@s?qFewy~Y(%W+PV4lfq*Y*2H6yMHx);X}sQFxOp~==j3(_wlNad!`a*%vb_da-`aP}1PJ5#C2iUqSrZu+MS8_AU_)*sAqV{#|+w8PA-` 1d1_@=YmQsUJ;wAPBYkzCsJxE(RX;J=g8eYt0$+0<;%c(p|>ymyLPxc=0-ez%-z1ubv*HODTkFX6FtE gsN(C%u=<=4RDwYrc!^xvoxb4Cm?+vR)wRQ`PG4`juo$`s&fl;0W4a`zG)`CSU~fWJ{5$8GcW_}LUIbgd!EcjK*h?HQ!!b 8r3Do{wT!lEz|d-D`ij&0Ks%v-`_&Gn^y?nrTf8!{+tYd3!!tr1~Hq`d_%tCyi;9SIDBCfdo;{j*xoV dAeBNF#RvN?OS_LW+^?t0&*+mM>$uV*YbFN;(xH~J1E7}?ikf7vDS@sK4A>0ygxn>K88PeN^5C*H#mm *A!7(WG6efWs|sAbw+aT^q-pP2<3u)b$@10rUO#Hg_i8xDHuflyz-!f&*_mE7w%tCA16323(BVz 5pD~HZ&%NLs0IZ|+5?^MF)HTDNT_4B~2kaCGnd_`*PbMtZ&dAXa$%S{WGn?>ak|KRJzA$Solm!9!*iJ vfu)&`YNx^wy&CAF-ip?zBhcpC&HrPn+=50Df`~v9~>ipu6q|Y@f%itF|5p!*f_(x30 T-)}d)^h5u(wvGAUU49lSB&>1l2-)#@&@M>X(7BKP4EiJD|iL{r{6(dkw(1Y$DCKZLcAhP=M{ep;}vP OgK=U#9)KJ|yy6snTxJl;~z%@fX(RjrO{jV lo0eu&=s-bt#Jx}TUVyezBGEG5#(M0?LWBAg#5ME)7AC>3xhL7K)G=5tT1jlbK#*gL<<_Tmck|D==#c A18mj02JXBy`dw_3~MEoIGzvmsMQj|6* 5e_X8+g`4{Y3wFF}8JZrO7ieTk>3u*x1DH9NDaH2hIDOIBFO1pK8+0V3WNno_Su63E$toN<2ukc}hf^ 6M{TQnS9SSc-yqdHqtZRMoRktwGn-2B))(+p74?2wh3J<$wh5LyZjC{FbrGFSmx_wql=&$;tXN)V{LY eY_a-h^VlEzi;A5iIB&?A?{3YNW^lXQJo?^FbLC^A*>hHw@l{hepMAr^ZjH`orv&>bPtIoyK6{~YC=M Biznsxp(3V80v3x{f&L7GtWd~^uf0W*4|A_kQTKn8Kjr4^Cs(aH~rJ{u9oH_AEYi+E#tfreKAtq-tJ% @~m^W~3Nn;kNyYw5fK_*m>ExpI)!TDzRmi}D9K#TlC8l}3D~y&Xhb;-d!k^cHISkEra&_3~o5omI-ndZN$Pcf|QP>X`e2I1m3Qp;nMa&D_LwHXqG1RYE=Tp?SCLWI|)%zQ-zeSv}%@9YF%p`Ddu`dvNMt92F`J$P4>xRI7Q+G)WG-k*iF9U++VY?4}6}n^? jwsrurUwA6PR2PwN-&bDNz2V)npaS;XzJhsEtdEFRo{h<9n>F@5e~9@5PMXdjQ)LuDZrkt<4E<_n$Uo %X_iYbtP2xW9RT=FS o|B)j4xGa-f^Vu~?=_nbv;yO8c@{fXLVVPr*hhw@v&w$iPHQV;rm*xo71suEOijCJ*Bc=2T->t4f+{=|ntg!l+qu@rWE4&XG6Us8$y<8FPzEPRH-4 n~QMJ?-#(BL?=<0Ma;GJ<w@>b; ;qFEtgXwx&~Srd}y*^oRa6S22Oss790t4;Yqi`}!>{*kY-4obiOEbS3<4{6W;PF4eJXnxPu4E!>|vxw jC-cFxl;Zt6Y{^CBIWY*4=^c;8FxT7ceiT}309b*6Q3+^RY|A;$1MElS%@sS%D>qY!g+}*mXM+#gtF7 3pRf#0-|#)tdx8_$_|UQKl_#hnekUrKd1VC|gMcB7mf+|E*JcFw<*A{x*^~$P(zyROQy!$}cP$&3XGcd6-?-{&fj=Vld*A`>?Ffy*$m4_ (Ene&o(!IhbFfC_N`U*|!G&zh-$#ITZB~7-g`j9*nn`>ixBXcs Id#i}wTbn&xnNqUtMIrTUx_Vo*Q^5qMmXyNZ)G+C>aT+^eKJi-)zAQIZAL=(xHYAO|-zYzf8W+W7e6< )4SkRoWr^v`$bzRs)Ap7JfS4*X=Uj)^WLDf4Ei0<${gM+g9MQA~vMWYqU$?aHTu#)V3~5xO@_hEe70{ =}z1aZFyhVuH9^AxrOq-=jYS+UOBDyb&|ucr8ONco^CF(mD9!oPe9nt_^(PSfm* )P{Br}uF;QNT?$v;UxC0cn&R(1Ln<`eO=GMqdH+Aijqt%-O-?NQt0Tj{9%XTJjn?3CC%d*>0purF1*r&|2U}gtF&-Ebu3g4|&?p1M5!Y!`=; _9L(c8`@%7mB5hwn@jeG;vwE7~TS@-NJyap^?ZI=OmPL%<@i?klTX}dqhKc&l3E>ah2b*oo=~wy$)(h sR;s4P^&tMn4MP|KSW|EI-FKmSGIO%I&i38R)bj0<2|8+p{BG7fd-XH7_65Cvk^7>xaS{mZiV`kDT;N LfE#}>OTYdOyz)BP@J{b$hoRWD`s;yLR07BH45AJWRZw%9+_(*n;Zu}`-{PZc)3DSg8B7j&G~2P_Qu% G$iu)He8!!`}Jn*98_3+Kc;c+y(V(+H)e#m1xg~KHdJD$4*UkW>xBqAjA1bY4eIpMl2_U9U67=-0mzdzg#k@a1?K7&}%o&E3k|W4_!|ME@_R|M*7C@f-BtQ>V4 H-bG`PNo(eI=oE=+J+0-uUfOftj0KKb!J?apM~z6#*MKz`-`2Ve=MLr>$qq^3wi39@hn(a}yeQexB%a -E*efJmob2dU>IUOUwuj9s6Z;|U=VjR>f8c(0u4J_wRT7-Ad$=)4Elj+aRg?kWFQEHinpxfU$BQ3$8F 99ygxdA|JAPy+^U>BnNm4J)U|uC%=A#(q>4~vZyW~3fCiK`?vUR%EsWJ12LUIReZ6K$%OF3m_)Sny8t RCf;CbIf2*hVwj8zf=th*+Er#n;x&qHohQYPW*1YbwuX+Yx^z$8Bc&hagMUyY?W~!C@*llupYfV6Q#e %559z_kH`rZ5zS=N`DoUuOjjM1{BFzye1);WJ$}A%rX!s81o+3a0W(tA=WbOWy|*m`QNGMgsdAccva` W>1nXm=Yb#SHgksVJ#g;RbJ6ewNmdZ~B>IlyZ4S#9X;%#Yy(FGi^^v}^mHX9^Og~I}fGV*(_^-QU5n~ JI%tPq{Zx}v7covE|9C|JgSr5uY*>7u{f9Cl~=EHwcJ_}?gu?6tudJpeOo*I@!pM%(G;pIPTwXA7{i%{?W1qh*F$^9v}xa-nKZ3x=4vbZ#zh6+nfV?1{waO_K%d9v*3EP) )W)?{k8PQ8&&;c&yME@m>cN@y&Q&uXusk%g-@?98V6C5-dQ;{9X7619qAK40@i_~~0-A_7^2Taj5JmA Cd07|m0*Z)$ifPFL3#`Dh?nS_~&~B)uSY~9FWLD%YGA-x6RabKc?yKl{vwBHgjjtD(4|Z+q0Q%Q@7Q_u3W9~IXmG+_v=L{;pFdZGPCi8uyZo@nHX7#Gvn|*Xy8 !|sjQu{mz__UPV>(E05H4Wgiz~Jb&d_m8lYqq0pn>mEZPPCH5B?{fE)N7eVy^; W7c&VWA7E~0lH?-444JD2tLnsv-Yw9cAu6Ia5t3e_wZQ(ogvN9$#VjJcPI00-nqS=O`99=N07Z&w*|8 U5@}ge?hA;cWu10^0NcZj{@w|W*^M14D6VKyk;dlxDn}NKoA6!2EI9T~81>Aez`I{B)lzxhzrLBUdFB <*yP}dO9Q*X$=bn3Rg-%S{oKkDau{xoTcyFc42Q$ 2C)SKf6`$F-Ndr#39RBi>W$;@9BeZJ}$41Eg5?Te$!!iSH>VnHPB_6~z72ab-8!f83$r>v`|c@peq-d zvMG3w`(Z_fl8COKvN>(KQY9J>Wl3y>5lwXdm<##0!$tL6@b@5cU{bH$~TuMnTw*QYQ#o-Hq-QMB`kd W5LV3q2Kii@{+pyEd-nn EmCIBvc~nWnPuHPskT@UR-Mjdy-Tl!o?&uda`lan6FaMI73msRoe$_)=!q(1v_?EDDM8LgwO*<0ccL( X^*PitB^CUg|+K}#k)c16)W}rJs93-h%so`;SA++_)1bn6`fi_#X5qz?Z+UY}<17E$7j?McN6x2XDwo %?pxvrolN^nT)qjAW6NKwrh2ov&wfI*VSHlMnuYa%6|&(#yVe?`mKoHT*;x1L~Ud$98ku(KW589=&Qs E>WzNTOQuS>;W7#C!P`)J$XgR&J!WQJcYs%(h5U!0ZNJZlkuX0&Zk+S8>}Uhi%lRftY_%b8|DzAFf^7 =sIoo&I!05r0+wgYu4%7Z*|6{(8A{CQOfI*m5`#On-i}EsL7kS$6XoOuUh9te_w^a%@NOssqmrmBFXI ju$0~ZCf#(u#(u+r`*1qJ9M-_UDTriVZKZE2?D&wlTgD RqUkY75*G4NrpfY&|^K+0c>hucTf`ud8&u=_;v5Jhf{x^bNwU%~CJfuFXt&QZ|)l$xkl1wwnh;50s__9Xs;i5l(`Nsx12TIbe2XdhhbFS!j43X+I-snpgxMxy-`$<)AoVkP* @JDb|qb@&#)dFw4d;zyssz9Rmk_YmD^`kS7ua9?9x(!-DbKIJRo3*nKYbrAj{3# WYw4JQyDJDR?$x|oFr_<6E$HH0UQwiC^00{z4~ChO(57dZVLGEo)OJi)@c`_XYQ@!b8J%X?aHeSdVr0 CI!cym~9&Z!cd>66<`(jX+&euO@sS4ILXG-~-(IFo=&Yv$@-bgi^#_ib1|;k3Uxd+x?(cxVT73?hL3&IEi<-vRK4oBK989z(|>={_fyApB}C;yE*0%D%a=Z9Isak`lfMxp3dzUZvsBmUCRJIo33li?(S#o&EqtxbRWcaARjQfp2s)pF+JrFHwyWi5O?NG@&WCG=res_yMPfHy? L7iJvTzU$PGCi%~#L!rE#fl7GKZfgRUFH29g{1@^vBA>iuo_-aQd~Z$UoB%HL1Obb8U>Q)ot0zj|HEe F~n}G0Y#s7CVLcVwl}2OpReSIjj)c0S~kCFkTlHy4MC>%f|M%@FHv<3OL``KEEu!$HLv-+y^z32YM`g i$06ed(17S9LX%XCjqlgPF~PWnVXvi@>b{}m)jt98A}k&2S$XT^T(G#xzq)%5nH_pKH86m|fAwIzN &mzO@ZQ00HOS*jSXZrd}yEh%`auwUiI4jVNw!@V^zQCf8jJPUkJ$26ikRGg&uDv?_M7%%ufP?9=CsY3 4#ggQ!U7r8o@{&u!;*;7T5?nb0n&-iwrtCZ`yW0<$*j)AC)-v2~Gdiq>d&@O7V5z=Lak#$8L`^V9IL& lVu)DRb*BlbYLm_YiSzAppPcrSB{XZw7k4THdjg%DO47POj#kt4G~HnOc0;|b+zBo*Vmpp4K?pQ3s@t {G{f`YiAn4C!Z39g_duwA|FTsbFg)V6f!9$_GAlY%s7lnd!BtXZ+NDhc?cT+OLY1+OG0p&x!>#kF{sN +t`~4pJ@0TR*^l0)JCw0*8Mj4o=JZX4@l3a23ls2Er5DYf&0rW$SV_Un5qgL?HsQV<5d!`X+O1%T;14 q|2S&9ACzGc*d7O;L6CMRq@4~J4R{**3EGFWlgOUH-k)!zYukdr)@h(?rDs9hK*?ts9V3mDq?v)eD^c zv*Q;~Bhag{Cr*)7w8|TOKbb*Fkq3b0+rghOt7aAb-X1`?#cPB?yG&k>611=!siVf0?Xe-^}OLR9ntQ j$c);+C5T3-_+iS;?4|7q{Gg{!@YYBl)d2i-6>mfUHo26TjxD?V^8r?``Z(NLEQB2@0Tl XVuait(4-e70pnn=vgX>pHI)Z3=<*I|%sQ@O`Qz9Z3N6htIxV@5B`KDvuc!P!=;B+7+$eKsU0N>ZEJB XkK^Gz0{!XO@;Q;f$9?N&jaFtyiYU4>rJj4Xan)2mdjM)!ON7?u5k4zTK=(RrVN@F)W;ssR|wzXIdxA N)E&J(Uv_J^tr5P{xuznKAIL9*uZtkujm7cW=If)0QDa&!Jpa^A=O4|p0P>{!<%x5}Ic}gLt`XvDpq$ i(snADc_9pA-J5e$^JL;3JPgq5NYY(_UB3J6%3O73X9X`(&NcdjkpX}#*0*O9GPslM55BfRQKY@P#33 UH4r#Uzp56{{~=^*UvB3>_&&lzcWnsBI(8!0%$3|1 Z^n~#6K-xUq^P-hrqFr3f|i@cNwH?vX*{03vp0PDz(@80+@FjrYu%@HbbPG3b$Mxf_P&C>RL|0*JRbc Xa2uVaKD;i^?P@(vl2j1a_ICNA4!7IHQDd9w`^jzebmVca9Bw^MNk`qjcWz@VeTTu>+oVTZubq73HgN *D9fxmc2h_!9w~^C#@_cj~IlZ30b2~fX94N&1C+xgkJn%;(+>4iX)$Q9(>!0qQDDnLhGuXSW`TmJ*<^ 2=ey6&F{By @(lzd5A@bTM*wyJc#%;Vm;z7h@TF__=u&5n-JF^<{_pc#vz6x_Cj<=JQ&RJG~!i6?;#xfB91{!M9e~5 g18EC1L9W1-H7ia9z(p0=sgtuh&U2ahZu)=KcWTkF~m)XWr!am)*zln{2tLS1pRTe5a~dyfQ@JaMyHY+qgb8@(Sdh$SW1{TI62H8<2Y=Z&GmecFx-(_u uZCzAy4N$U_uzor1@1ceO8ZyK8!r+Sxb`5Te<6aIRG^S;8~H(ccz$Oj=We#2FN`5UhOszcrfxw?$=K;)swgM@zM-H {iTx%S7!$UBJgmAUqx%KoxK5x-WUzp2c%efhrW>YotgcebKm*}p0KC*}FA><^Uvld}ECV*Z_xFIbSQw ;ED~`+%pU8d9iSn *8FmPFlRN_WItOzRuG0^xRAK?6iMt1j*?NT7_7lxj%R+p}z%lpK=~Xi~Crtab~tEs3@T{cX~te&^&y8 ~6DDm;754%W`ghYg%YLqs3+iPox^H<}7`RA=_ZGX|nZZQBFgK=5I_<#%s|eC;4qnN=nHw=eOoGnvXrz rm+}oc8iHsQ_`eJk`$Ma5an90a;tFVEi0z&U$kp%|ALaFoNSX(L)(zmNLxjc!$~}*(mthp-hD1HlCt$ CeYzp_@0_ZP*J?dG*N?(;F8Xfu|7~K^_M30gXTzysG#PD1=sA`cESfZkCdw(~dYd87XmhsDDVB3PzHN 55wAb6mZpn{-qu=Fxw`Eui`c$XWUhdB{efnrzcuLL!eXib!-KZQsZoHPamjvinG!qTh6pPX9WS}OTmL nodZ?!r}!CRWZTjXIDi#{I{Vo;UI<0kL_@ip@=em4a!mQzId-cC>c?O;L u-_sh6lZO5!W|oRE9fW2bG8OHQ23{^n$CL!kwR;Je<(I6;!u^&gq>GHwCH{ah>f`md%+9n<;uamC-qG &lYqL;<(oqc8K)Ob}7r?Y>#t#XM3FOQkFwmpRFBjoKW2gZ>cVw(UUmJ?&^SuJw8tH;km8C-HC5d@F#&g*T)(KU#s9n3cgOkpHlFr6?~7%mG4z>@th *gGx1!OO{^q^KJMc()OEKQ}maCpT%s+CsYdHOMA-tbap&u#II`=2Mz iLN#|3H1~i9S~&dLeqF%*RRA1=CV&k9vJEj6NUw;fIFz#_&d9hJ&#~|Xs7Iqc@g(r3Z96o{1tk|nGxMhG#v=o|K5qAv%^X@&o@n7 3Rl4*AFW&44rq1IVqQCxeCSp&nfQH~b&!qdF`sG~FeA$Ujb>4yIPnEp?cO*)1gh~K#KpIKIak(Z@QjE&gD-fi_r@soX*rtrppBXXSsyaoW!-db^p;&Glb_!_%NK#{_xP!wus_M@-k7WviUR>Eo~=1|AU;a- t)mCek$Y+8bsz$L3@iQ}V$YyeUdBSh9^KJyky4V9Us11BfZ`2e(UP7D*tJ!9$@~KEa2P(IlEo0v6=h*{y$(PmGAt@QP6+js2T^+ws7yWiTg_w9Ge_r3ex`yYJ xQN{j`4;=jD)6Xgoeg3biFTOlneWd2-v9G>9UVGx?H>bWmeWvd0x%2fGzPs3P>H8lp|M=6-jaPp8_3C fG|Iu{q&%dtUxYDw@=%4ceMBI;McKJ=Pq6S@9fsSN6%gXn%;fx>f5jXfWU!4g9Zl=85 %Nd_=u6CM&BKJ&zP~}#%m|&^vNlyhP3nya^(TF*9Ok#>FShnms3R?!Daqt;_#M`2T-I4=6eQ{^{Y;14@oR)j#}m^nlLg {wL*C{;69ivmetRBJ)o0CqgOnbF%**7a7a#%KvG39pzSrNG`(?1(p0cQ{W>CEL7kV3M^8{OBC`lg}g! `kBXU0jHWaa6Ba{EdK1OKc=%5Yi9uMP75)>P%A;Z?$|Gh}ZZxGbZWt62;(GTC_WXmQ3V# HF!J&5Iq6^PY{4OOo5^-ajh7dW1Q=!@u&s6h-w3_;W(#v&#m<{=g#mLQfRRv=a)RwLFT)*&_^HX=45k }uI-L|;UI#6UzHV(gc$`je2G5epED5K9ru5vvjF5icV)iTn>^JtM{<#@kI~dX9-C!1Ko(Ln=wgu#?Fa BZ=4Bs4P{VPpF(BJs_Ty5{PT!-!MGGZV?pH%L342w;-De=ig*QGMTQoz;lQNFrQ3?{HNNpNSHmH#2d_ HMv9HZENH~Jbe1}p{c1u^F=X9Djb6~)8Ww2FZuZ>ii{kSojrz*Fk`;#`4rN#=VbcBF*~6~&Vm0^8P 9+a@D&>qpz-NbwMa)t-MC(!-od#Zs~p1hnOwq%tly#t75O>Bc)m2IYrLtzOf0^EBr`koY)mzbjZkr(& *JfNPGz$WRBk8fOs|2B#m->k8qlvoITlktvyl*?-_Eq=%lTNGLeT$=)A1*M@cfPPcmdDf;AA(o!;zlb V`t+QM7E2MyYO*IY!}SV965~JtBfV=cMT6Cys^Y0a=WLKq2SY0_&?vto>crB3|IQ;_@|LW^6?Ma6a0; VT(aSRE0LQObdMpJ01VgD~kuPB*brE1cKQh^<+cY+g?vN+2adbOKm51ne8^7iKgP50WLN4 ZA$Z5{ST#*{NnD6vQF6JLK$i-Yv(m@#oSdSaxvB(i@Y83MC4+fUJ`P#?k@wm82 2$F7wg#akc)L|1;{%hFGMb{t3)o=krgBFg1iK|Kk`!KV%=LAa(SH}aSBYG#yR1gu3wbSav 5vA1xdwRy^4`cBk&AVNoACM|)JpYT&znBL@w4nh9Dn|JQR5_ avk!a$Rm-DMjng&Zsdu`#W+?H@_UeHAlD){Bgc)SNFH(>@&e>x$P1B2ATL5b5qUB4$;eBPPeERaT&!~ {Lp~LGIr3@9E0Bxxyb}2gzZ-ZQi+!J{$ay9ZKKcOFaN9 5HQzZ3F0BJU#ncNY5x;XmYe3jZPRCj5oGyYLtC9>O2UdkTAz_Y(d=9w6*Tt`Yu0-dp$wc^}~)< aY`GAnz;6kG!8KKl1*f{KyB0@}I;0L6jePkSIU$L8AP~2aEC}4@RDdd?@k^mn5cw$N#mGk^ FGYSg@^a*%$SaZGgS-~`7~~De$0Bb+u0^gskNpjDf8;vkfyl#2@}9^;kq<^5iF _>bB;;CA9^?_o3y^0bFGeom4OJ;}cjV>BJ&{);_d;Ha+#7iV^0vsEM0t>_ze9VGYmjFm4?!;B4Vn(QJ MviMp2(Asdm%R?_eNfTye;w~fuR`RHyjtXsyiVkgyiw#YZV)eG{>XiicSEj0J{EZ> atUu3BawR{PeksGJVWS5o+tDpFBJNbmk9lMLs=&DBd-wpkyi_S$m@hYO=02+#7iy^0CN 6kxO`k87a~uPZa5qXNdI3^F(_5yHd#7AB$;^P2dgNTp3NyJC4zJ&2dV)> DKArD0EjXYGu#~aj0AxEAlUBJeNk|lWPh-)25<474I|+_+)QjqY8wLYtSQ&7!kSt42;i5Q3yz_i2ON!A?l^izw|JnU K4UNax=!aV7LYKWney5d`7mCMTmz|RF&`Up8`__V^^h(5Lyz2q>9R0h4$G0QYoRge8kEI ^w})V;^DsitFLWJJxcuCc!p1Kq$>SL*Y&}MV{2Y?XaEl!?D(YuLhYSk8h;0RUVV&=cqK6|72 O7!O};OXqnrAN0M2{jV%8t*&ZWXB@#t9eqx7-cO8((tNmx0+oSI#es$H{=7(9g_`$~Vb+n&kR&Iw~X7sn<>8#uiZd1r@cz!s>4^4`4W+}MEg)rni#bzqXLm$zimGI;vAPUY qG?0TL?IN8N}9@q5oay#Pb!xi-uE9>X+r^@$|L@D&U&MVRLDgph^?-#{5vG7Z*Vq9O># Q7rRV%|v{u_&)ao`n1)ax?NbkryB@L0*J>E%FlNhmn^d{|b2p@*3pT$X`cZhkT!~7x_V9@HNg)A@xNr >Rp4p3V8_fkAy#vS0WEp%$vlb{CVUV$i+-vlVV<{0OewVvY5vcJ}yGJxc@6bzD)QB`8%R~s9)ZH2IZn %ig`aV%vXzY(O)+pe_Z%OF>ly}a?y^(JfWCJRR78O7LgzFbs|1;(N05=zlA&!`F4??Vjd?E<*Sj4c}a PH6_ks488J^O@3(^Tmys7D{{ne2@*T)aksm@{j{GU)mB`-}{zU$X@F(&;qCCjI7XJE+^J?KQh` d6S2l-LtV%}BE%SNL7i0~KkZ-sx59~b^W{<-i6^1Z?z$oC6>AQzk2l_TFO{DFL@@CWiU!XL<=7XCn9C ;V}p^Y?^5kbf!sf&8rS2l8)3`H`O%L4K<%)Uu43xitJP*0JFA(bn#JYk)l#A=8n5PyS#uTG`A@WAWJbd X5F;0g0E7mELqg>3}iggKM-9jbGpFv)WTs+T+bqiu$Lj%gibz01Wi+S`Wl#3NEVxC+4CQf~m^E~8Y-g yjif0VC4F4jqibrcPXdGtVxzY=*Ua`D_C=GDb7gd$NcR?vub1Y+GmBFfW|i**NLok9l6(?t1@uMzqc> kbN0o{hX1`NPP?JozF&QWq_q}<@i$!^mKOyuZ-;BH zd8y!vbvETF7tiZrT}@Zyl_(eY#bTWV4x^J=ls}5R0r_jln~*O?t|t8cb`x^3PDiZk@kjYQJxZ$Uj6LiTnWaMC4`2Gmw`f&qMw%;d{I6e$3Ks}6y+a_@*)2~_zU@~$QzMAhg _^n66=`M5|?ij{y{GG;}PpR&ix*4&~Clcia$i+GuvF;}k<;z8R6zi-qP<}u1J mebygbWr6^BEF4k#@bzS8sPeLx%8R0Y%sYLmU!an2=AQ$Vb#Ja2| l;ieeM6KdH2f06TvFKga6j`zOwm<@+H ${sMN13pdEu2hNT1^CssDx*0;ja2@a{J;u->JMySo!JyDNf @p&f!^3<2!u(K3Ue!=UcZ2V?58|KZa17~%lC<# o8&ye%y^PCxS{(PQIFSlPl4``I{L-;(XQMQ NAb2!S!xlwKpd>#5ix!>mVXX&!P_+e@KOZg5cH$O=oS$#5JX>ym*|?j4u!qkJo8=kwZDxjy*3vehX) pFa>91Q!~_{D`xBp+atQvPjG)IQSyg{NI9T&|+Edp$kIlldbKet1hV_HPlaEW2`fTjlf4~g-%&Jp8 `LpY?43VY=nXE}|7GfcEh(S-Z~eL714q6v|9mDhK>Pg*3;2z8z3JwGFBZ0aKW%uxJwx17lkV-;RI_OI )Q=CG^n{Go4k=Yf?B2GtTkkcxFIWBQ^X0)u2KfB2^uYRlJEQ18fUeuOClfYTeWagzYWw#2pS7Ln@mqS A_m9NA@y=fZpIn=?o)0$mZoBHeu3Oiiomf*^UC=G_F6bIkL!*ap_-x L@UxiPt*Y|n-#CYFvA6S09u+G+bZbiFSdtS~u5#)RHJ6ifjd(G3&Fd2g$@b7Uh)_u^(Z-@RgAU5T>MT cJPa%t+Cz#;0cIi{#?raP&(b;JAXcDlz}dR_bK$ohfreK9X>!;rCCzFGFCVMqMw+~>Dw%Hpqm^y&6~> !(dW?@pEnANcEPb)UG{!1nL_`b)<-9Xo}eT6W((Uq5%}+@>C(Pm!-Xz4h3>+*g+9Z@%NVQ11iY>(KMb ^aHas0qe)C9_{tK+GzgZL&IXt4+r}{|3X80XOmaw7Y6+@d{M`lksp4!<-(-6hv?I=?|XUc|4>!fx<5h gYb>*W`pxT|_MJF)#?sypJuNV|OWp6;AFqp;dHB#X17>YM_w|79N;kdwCL0CPO|8CswXyK7hd#;nPRw !tDB{3aM3BIKWWdBd&;1m({Otpus}irw%s8>7-{NIYE{cH`l=|0q58wMs`<-*vc i3A%()JG29IpA~__FK?uk@Jy&KIZ6FPt17*5#d;&#M;|cdS2NG)6b$+=T7da&o8l|LzTMwoS~iS=+s8 65GD|um1Ykk3ZaF;r^?S+ZQ)X9DI06N!W`X>O+%MoGcW@Kl#@BPb&*%xMa+~4on<39vG^23IsxnrYx?FtT#r^-`0I@$vwkeqOnts-&a>OSZ|;Фhp<1-)i8 rb9DXWMGNs$Klq=p$`soqW3Jh0ivY{%cx4|HX~%yb4SIu=xgzx!xi2!p=1*bA2!V>)8h5@%~y%{hr6R 70v5&&xlQS&n45=U78Y{d(E`*qRyww!KSC$`Zg~3r9;+%e&MUH9eQD%kM)hE%^r^iN0b@ugMtS?GUrv _p989iZpmjClFJ(w7S{S+DE^}IlUXZ$XT3eQ`q+nmB@SCr?sn&-Xt#R~O}}#o`6S?6MRfj41&78S34Z fZQ=jbnH?9nQp!UxEFD;8d&D*^1LVk?f`g)1?H7{K{Ha{z8S^e`DPmI0xQciO2%#o`xm{D<`R<1W-Z#!0?`aq@s>Gx8@qNR7k7ysz`CuGq1y40J?J {;`gGx;yX4neZd~ PxsMwo^$4nRSPcsmb?1%i!aZM8|pTG#>H?pFX8*`)i|$7_ni&jvunu6w_eV9`HKmrC4qbX$lX7!y0Rv {uBmia`q)D|-fd(%=*R!sp4VyM8#Axp^Xw1(I)@C3_PN9DrLp5~2EKc}FgG#c#qzE7+P3^?Cuo1?aA%;d>=k?!?UlSIV0UX`fE*rD!+uzK}gSUioLS))MtZtjt{+i`lr_F^z853l s-SR=@++yTh7LnjJeDA`0Lh3C%${a@35QyW2ec4-= c8omS`K9md=c|4hIP?)V=2YJ`H}$XIjxHL%xa88%PRr7wuZ|dUrTo`5?b>%Vu8+2sw(p;$>nM%$E?iX AJNT8me?D|_)t+JRg@;97`#Q^Gb!EBaac=34&&D0pA4uL-d-Czq-;XHQXEd(=U}IIsg@aRK3N4)s{yEk_%9^N~8$nY;ZYW J+WX&!xI{(Fx;+bR4;x2nla--doy^SGz6>k(DAn^*Q~cWvKyAm=A_j}P&6LEApoEkBXlG&w!+c}q1FXFaONTK&G6Fl6(~=U&*YKX)o 6=zaJ8>!1J1tl!Y@{Kxz3KAn0G?irA@uw(g_u{A5L%dRAyIsW;lgU%S+-2HfY-yhpNo%Vw%>du^Ro_y NA!gl}YjiyhAy;C&$lkmXGHTk>xo@Ns>sbTv!7Jl{I;D{65E*5MVGXD3>@%d3JB3{3kKlQsCeKwlEuK W4$=N`wmKKVfwNj?A8shC$x>e829oV3;Mt2k7KYX@*s*E#ubzKi F8pf8{(H4wR=x44c|yPoN3(+)+WIf+nzP<`|JlK7QX}tq>6s37?MEh#>$+$C?~wyOnA3mhkdv$JB}D~ eJHGu*a8cyp><8WJ`#vWooA{xEs&s?Fgzai7Q>pxw;5(X^)5rt0Ut7a@OTBq g1BcsW_-}}gFJonCk$6^|BT7+jXT8np6_+#xU7Jh U1w=CVlV+?iSw$lvP`ki6%6W?H164$Seg=;Mg>ntBKEcn&yEYo)&fnmvaFEZ3EXyD-?!_G1N_vbULyH vqYbKLVhOCK1+u%hm1hDoXu4C~hRtVcgE)HQ8oNNO)K)C31zVDf9340XDl3`I2%-wL;$Q*61bTsmYr%C(!)#s+18J?+a>ha6f`hi*6x!uo1RzBvd4GCMkXZF=-ZSjb=uMaIr(JuD NEPVAlJ?hES#?5+p)!I3k+Uxt?SX6nBUYq)*Vd_WonPk-F{%mdXrmq)zd5qP58~yH|U3 $;gPMLSDU)6#%ZEWO|QRcC1=@@SZ;k)%N{sfEMcw|2cy_XO!<-o1nI2i%`;$+4Z(Fa^UOs#BkZ|f-!f =t#s5B6o0+Kf+i~{$!I5#=arvWuzUNPqHY+E680|mk3PQRTlJ0Xz=aB7IgJs0 G(+WWW6!VkgBoeXmZR3lg5x|NU^h5Utl|)Wn%Ba0C}3xl&aC2Gi}~zWc=o^5YC3lq%ouAaHAr>s V?W3Psd>GS<|HDmzk2Pv(9V}SAR{7A_$*(^C(nhd=uHOpYRrJRm>PB+*z>=hg-IjIIsPMXFn_A;l(5J Gn{b?kpKl;v*$OlDRLWittjW%;B$vmwRCHS-n%db6{^3JtUpY619lzz}Fx1L!wvh9OxGfmueAVT`6&GI|^vopNrq3)mczg=pouZ+av+WyAI78f_W0Em>`Pi&OAF%hstLS$Q!|3;q-3eA1a{UarYXE&a2`dF{MT#75jo*6!lrbwSCzmRwsarDZ)^x4=q?Pt(Nw?Dqw`u |ni=js|rfCe>W?TNizt1ljni@7HJ>7#>Pv6#qjhQ(m+mM~Zw~Qiv@a*d&pNEtcli =P-@v1wbw6XQEYt-kX3@vYrw4WjxY#>}4umv-y?*>KY3&yTg_(6{Ya=Ua{R^*al)@VYxcEN=Sfk@MpW Sq8n;Fh6(n$Y8xCdx$wz%nKhQjP7TkELu`gTI-0HSMM$Jo;=FG*8`6$lC$YUccvv3 Xol2w$n#vGkD%=6|Wy?jN?%2BGAt50tX>?%wW#kcY34IeI*qw)35k>=jUBlQ?Mt_&ED3(^E2%~|4iZF UL4}ma$M;N=nN4myidBnPe#j-pSUzXTfL=0ogvNBxbCDMpy*D$6p&m}B@=__#2m%!o`L0BU=dWePkj- RjoZi4q+vSdkWGId{ZcNN!Xv8D9o#U&*!VfQk9rOsgqJYHFM70;K2@pu(99&`jl@_4?L15|7s8P*|N! ss5TV*Lb$v1LvE5av|ZZ0QbtPxhy6j8}iNiZu8DH)DhX6^W&KEmliP -w?KhGj@fFRL+#coL`;rkB*+CB!*_~$rAFr<{kRGo;U;Bha%A1>;ox*j _;rEab-?NpERH`23VU-Y82Cg`#3a?m6wf3(+|0D3Tx(eGNPS1Nl^FF)0{(KvvQ+p5{sjp}2l+|Y+t|! 4n=NkxNXO|z7s681Z)^|ST4_B|~3juV&DSM9ycsFkpKi?>p!KcEBdxLJewjZ)NKa!ZKZkCqz5s7z09} kz)Jcvut$0=@i_}-P}Uw?i8eDA})_o?p<-#g>?AtYAKY<#p&z0jE&4*KA;mF6E#e;1=u)3s={7@n-01 w>V^qT{@3C@ukAA$Jg++d1#4pQ{f&MqM+w-s$V#$*E3vw9^lD-hZ>n{&ud%MSKAqcWWlE j(>wv+b+HZ(KJ{(aLb`F&!LQRD@e1L4i4z|xr*pIqDhYy$QuV?2nX_C_0fwos=()HlV^Q$*&&kox|pC IHB_-LNyHh4i<+hAF>pkpK}N2Sa8Q?&-_V=W;QF-;+SFLB}zv-WVSogPG^rYB|)=w<$S_=sFzH08u%L XwId{&=0}{5!F8r3Tw>Q2kW!?F42MPa6k(iWBcax5>iue-y|CmB+hwh^9C3eW$5ns6+B2MHU@XsFponl+ ;3nvq^|JjFYJdZFR1!SxP4ji_ gsqKxWq!5;YduIKWxRL5#p9mhca$Z0}GVjO>#kE<;^>IkW=bL4Xb>Uq7>`85{!Xs3D}0&O}7``^wAoA SN`o4#}Sy`w@Ndy(#=er&k_2^C`7zb?kQ}#9eFh6Z;zo0M64Dj0JRRpzDunTC(h*tLN$6wfZ@A7LxwS73XV+@g!{U6d g|MkCk7}0pR(j4KX{m3D^$l*}oLk>jB3I#)i1iHDY2QK2M&2GCW__A#ezRL>b3HmpB-Brm{aXd)s^Hf Gxm;sFx2ID-mP0}`XKTF06>GJ~qZsn&4*h#q^r6V3cCbV)!zXWj>*vSyp>RJO0y;3xM(|}n-gmj2Z?y lMI2_6jpK^@*$OuR`!ofQ!+E6s;%?NRnF<9BRjFd>$C`s#=)Q8T+ 4dLFb?_zpH(GQ>$1m{t13nUOLgziCSPlJsOl#>w!RC&5-VTB`Mc3BT?^NCZ@{dWZrtCK9EhI$k96tu) )48g%r@Wlb&hzs5c_(cXPHk2P;g7&a_Y6mRpQ=V5w!wQ!32vSt+_w$AkCraeTWJFK)V}bTB*8s+eRw^ ;#?bH-#H)y`UIHEC80ugZdtR*#a)d2`unKryEq4klhp>_@EkC`}=N)?VK^%jafM`a15OD)yDPlR|F~s i?|3vg1jQSCWBZed1iTFN;uyq4#4N-mh^r7cAZ|t6jrcy|F~rM=-b2xkh$9hoh;fMbBU%t2L)?T|hWIgJ4dQ9U?-Bh%& <}`%5yv1-M4XM7ftZK53ULGCHpF)ks}R3NJcsyGh@;&y`_a!E5O)N-%A=8wLF|v%1#v!NmLgrXYKp-Y PX}S`<|tEI&Kz>dJ>Fo8$T3-SvJ4S6OI9SG5gw_TAVz#-^qjERD3*L8Z*Q>%3u{8A6hlOg-DHC{+KrYKy^KYTN+rFVLKE1V*ddTyVl6 D+YBOZhDbg@2^B8<1$!?Cf-Ni>6t+q%=LQJ#vV+k%Ato7^ngkL+OmNK2wlv~HXPv-K7uo$Q)J_N W}MZlvBP$Uge9M{O=LQk-#eJHZv}4Wepm&56TT3Hp{sS5O2M(3yzh}CO>Q()1tiRDg9Piow|I_hz?;les 4mUjhqxm%BA$S4t_V#v?|MCf+2UWJa#tI%T+J$rb_>Z&|^~BrHQ~tZ<$|E+a<@n|U+#ihxao?QEznMR 7ha%h+W#v@>o4Zy^44D*`R}#+zx(*Vy=Hia6Lsocyb4<1KbKo7t`zjtN?6# mx?Uy3_*ZNT?pv`sP0NgU%)!Rf&nVF(c2S%A%L3zV*z&n769%6)N~`{eL(+SbPuBQQeH2AD~2a2f%Vdegnk(o_wAGgSt+(7uGUlMHT={b>3+QVMv1oK+R|r(7>J^`~o!lcm@JbgR %bRpdapcLTqK1cCj4je`jZRvA>9q2MRrwa_Juqv6Bpo>B!wJ%VB#(Tw0c6flv>F8uGy(0fq)qhUO 9?~*8$c7j~&hJDg&&i{BH0EpeB^A3(-r7p>!`#y;KrP_t4Z!4WV2gU8M3YNmhl9q4SlHehl41E6Lq=E Zr*<$_dy=%Q24bwNWn>BhopFmsCdg(l9y-RYw}a=-zF0#5bIf>kz*>oZHucsDT^B0;pddU}vdbN}Ndd e$z|U6S-aflc@jdhqrG)Z>d4m6i0vKUN4oz6H*BAk`m}%J9?=if$qVVEG5$QAXMKhYUf!gaW> pD15bp9iq lK#G`a_7s;V3@BOU5Rl`NGS2^k1jo<-ZGUeaa5HB72w8#?U+tT2NgR4FR8jgVBxFE*F1y*Mv5A(rHU- &NQx;5pCDu@E&mgAFW)*T_DNbF=Ox`5TJO-l086QSE!{ixyp&PI+hGY{9fX% Z#m+00@6&`d0ndAy?nzlkDgndbd{jR}NT3GJ2fFbcU>;nTyx=^e8|mH$_7^@+&)Q!}{>0Y4qQbh@E=gE@pC0ftmU%+vor)~=&(SU(l`FUM{Shtn7qhu-X6}p#RvZQ{M>NTkHUZwffOS OO{kk0=#Lh=B0rEtDd{yHJ^0SjNJd#Ih0O1JTL(y)#0@mR+;j;#QB$qu^aB1x*=LG|k;^G;sgYQTD`X BQ#vy`jAVegORpoq&vzjBa^vvhz@Ce3R-;Qbq2jbIf%lZ#O^xigvSiu1a;g`FT$_&ZYiIdW-j86>stL x8W^bFClxNzlD4<_V9My02m28axZYVi*A+Wgj{NK(apbtpEr3Gbe$R08)7A3EX1$dPuow5s_bJzuE6< QauD)YU2?1Vl)f6z=vGn*eu8+lhoHT=Uve+}l8_rDy-nd^UasnD@F&RWqJ~M--XpXfotJ!Tc)sQuT5t 7|?@@jpl>+vIeyRE^+Al!8eogx`y;S@)ZNEmhqT@7PvP3tYUIb`HtgEGa148>dLH%AYHJ#w`8&A@H;= EM)4b=zvo+9KR*wX;m09f`d^z(h7-cD0{l2mlV+P$}B?2ym@G`(tfFT#*`UY44_ cMY^YOovOTn#)p2qfu2uEs@hAuT#?_y^%mlV{s7PX H2x2?KRhqhUgqs6@JD_Ab4$XXwYN9ang}p_AtnV*wYr8Qm*>qy5JPRq^j |y@%^^brbD}(%cIFg!+}z-Aez0@KE=lAAD2GlZkwh BbT_P*NPmLZDNd;cyDG@VZrI$n=0ZjCfNHOJiNTd?5vAsn005(giF5*t?JAMW5Z~WlV)b7L*qio8fXD8l>v1Kx4nV#1lt@1b`sZE}TyLPC50J=wn!XR%1E{-8f_9lCl >!FC^`N$|#QKGdeiEG5=cV#~G#y;$`b(q$;uj8taM0&JNMhIFlED($1mV8H66=2o0bhdl7dS+MexQzI 0Pcr&9XM2i_6679p;RwicK|COT}TMr!t{go7$UKLBV?FF>LHx2MWNSk|B({((`l+|Kpn&@97XllNr9s !vK4sK7|_#?Ufi%%wHBlnbfDMx+G7c~)N+KtqKMS1-_2qu4OQCr501Z$MvQ&b8@~l*_Tw>?7?+OX}2e{5WB9Tj=xA75)U1y6QmB>h{=P|I~{X3QaYKh$+ g*+jV1PG^VJ?;Tc*D064eG*-RTm?wi4Qt@OhOV1z3-=dQh;;pG86aI3vx6(m>6#PUfPXsr?aua*41rrb`m=ht)hM8YFhzvjj?+C|3tZ!SvN6 ~Swz8eQ1E7GWZv>?KRjA=qq3ek?fb;<~6p*gZj+K;pB=!rrj26P_zQ6@7gwuSBTL`B|*)0R2JfNbL@a k5=>skqKY$g2GNd_M7+e)~mmGF=j!s&Z-bt?XQfd(ge=%a8>JK2-;n2MA-jliha!a3;S;O6xz_RJ#=| 964=I(WtBw9j_%z{4te&nkKp0arVX{ukG%$TFw==|0;U!uNlbh?Algjv+&akSSB9kU4Ya5TnsZ>~=e^ (1HT^S3ru3i^*%Ry+-!!+ea!YD#-EU$H~o`Hwg}56tKuZ8Yyc_)>aj?CG9`U%{|QM;pU&O7qq>eo4a% =jqr1G)%C;8Reyl^vqrklJjfv}@Z4O=8xB`hRWZ({Ak^^R&&}7c&b;`%wy`h&%m6%a;?Xnyw!%s9^CAH#gsy^-1Vcy_mLLj!NufyK*d9KZUqyd2?RKO+~6Y>5Z+O>@{ur}bGiwwd>(>Na{-a y;|3p3__T*lKr?OUzS!3PuAPq@Ig(7DKAptJ$CD*XmbkR>qM{Ca l=*}z=(jwh{&2h0yNzn%6GdFZ2`KT6BYArChOSybP?HB|pY&CNgl@kbe9t@r^#9t;R*_Vo;CC T{p4xA}-Tp7?3c{X~7FV}82*>}kJ#{m7s}gWz5$gp40Qo`i*kk*KIB=DV3QXOh{oXOp>e=aT#GyN^7W I+>)Wr;~*X7n1DkY+|ukSpTtX*)sByeFE9OWITE6!Lj7w^hxB2%m}hRCyYFA(UJF-k0Cn?qR7VO$>g1 4Gx>DwG*bO?CJFqonGF88nGE~1nM^p?Oh$d)OvZiLOy+;lOd^golW8ZL$;>m�sBT=bFj9i_IjZu9+ lXZYIl@FDENkt|aT$ts~Dq`z(3xx#!5HO`AwbNeOx7l~-8(mX(!}y?ghvzU=+?-zP^8l#vxzn#tbAX7 b4=pO8a`4v{au_<|fca)cZ^c8r`nd6Inl?YHFT3$^6vFU{oa*|V%&T)K3LT>bfba{gK~X>4pHfBf+WY b*3n4TURsEFo>6(Wv2~?G5e52Tt}o-~`q*`;qa@!^phmnIyk?5h-q7NA@1!Z;y;J)BL-}uk?uGO=NWTWszYgg?hV(}ueJ!Lv4e8HA`b&` hXGs6MQ~II(;rbQ^ZG9eGXa1k|t_3ctYU>{|6Ri}lw=0?Dh!0RwFkkp&cqx!1>WwJt0x1e5h~NWD5g# |PyoC353o~=x49pCmnNpgf*^Qo}mQq=gX_019KBBbNxBh!(<6%NXuix)`{O+#pnVECe-s`>A-s^DAT# n=Uin5p2+4XO-5$^A-P|YBPKA)t}u{jEzSfdaxlIgq({*PFTF+3+Q1!EaLhT(av`c#Hr$nZ}y{Cb8jW B6SRzn|fctKi!>-+!IK$x1SA|4F3YdZ(;b4RPahiC06OmHrtbPCVw{D Vai_C{Cduysq;e$4a!hx(o+h}c}bx)n-tnurO>`3DtHaU4`cWV4F4#@XES_0!!yjk(`bPM>d4zj;gj613C68d{5%%y1U-Ag`ok{s|5GiLTk#c?xDL<_t<>!s0T-ZmA@OLmg-We6l@RJ #S8pF?L_&kPR%kUP4-^}p48GbLrA7=QIDtJ#92X15dI~cwv!}n$QyBU5g!^boH9EM-b@D_&O$?%`5;G 4DtXH)+a78V*38sdCR(1iYeeR})&^c~-LHY7AUDk?lYIxILiBs^h&pRaG9-s8vjk|Tsi@oD})ia&&hC ;0cn1>?tST<4=>!Xl!BdH9I1kl@gegu8J;pFTc4UFV}>v?0+UVc}s654;B6?e9M};S!S3G10P(yTiL{ !oY#f5qkUd)btt;cpg7GIx09i;m$6%d-Hj|z|VC--vova4gqjjbiy57y4>zOFL3PbqhTbY8plt#?T=l $+&e~G;4d!dsR4XgIL?OP{2#mAd9Mq#3H>nx!zToX#M~Dh9TA<-4FlZn-L>nVZn@=_?h`Nr&c}$x<9B OvK?2x-^I;J&QPI&c5ivcQT)^jj`-|~IW5S~&V!~s_-PP?j*9AD=&u_p4#W{YMm_l+bVKgpq@lT9DXj BZdI3^-GMi3!pko;%-6T$~+fkHHo(QVwgE?v6t1&!wuhTW8)4T#_g?&I@!jTL`H7PYA;$6Gz> 8Lpv?bhXu2`%GX>;{;+~+Z|>Z2VnSF<@F>{4_N5q6MAEQ*KF@Cr>&A$&H95yPd>1n6_@c7 }Zh*1$kN4lL>jnAx!3K{8kT8VDjV%$y>RW51hlp9>jiA3e~$>)|d)0@rZa+P4We6Hm@MdovpCr=jnNK W$j#@wSQd#sX|8leh&U U}sekq^H9`s*TB__(r2S;zTCIp+#{_UutU{P07O8yq`&L^*o&sB-MsG3DgRlgfABeW(2R!)cKloI7_; `SsUdl{G(+vXQ^Glc)SAPx-%^r^xs6bnDhl+|qKpc#%*y?>+ $m0eEb4H%+&0-raik@8Q+4<6W$0xBK|@>EqicptDz}ez)@XZasVX`tr4%y?O-r2ly-9efs+a+}RmQ@0y$>em0xn>{<=h XAi0x3%+V=M#W-XZyAo|4-gGbm4C|_v+BTy+7Mm&pvmw>CR^vSX+50#LwJr`qPRrUqMvO=!%i3$-#4jxTjkR 0aQ?g7wcL6MeDONJ+j{iq0j8qkQFeXXw{MT`1NXST;twyr3+mRd_{PK`fE 09*zf?yoo%O2pZ@y$@4x?sW6#l3r%oN`9NCy4{vIxU&lv$hCv3+s>j`vO14OW^XGW;xlM~4}iYGP9P)Tw&i=GhtFq!33&(_fG>CszJeae0=VNdWdFq%Ux<#+;5qmWe4z)R1$cx1kg ?%AqVR)6+WkbM_7V+$pJ;Fu)3ArAKhx0n4I-b{iSiEHJdyGf4V>=s(9JLU)& m)N}9^vVdMeHzXafap)QJ9(Ey*unV*)UlQHNG(@xhk2~a~VN5mAh!31J1hOsMy_?8y=hfrSzIaWaK7E F=9P(jj@GZ^J0bReGeu4iukGKFh_!)JJJH|E&8a^kAVj3cthVoO?n)U*{{qd A#0N5_Q=7iiyW>&d(*nqHg}OwZ5O3M3x-n&|$oh$ht%#ejxST=vX5Gg{j7J5GCsPwKnFY0m?;J8hah? )#U+pXI!I$dDmE?9W#Kf9Q!j9ngE|wL2Y>7U(+k=*atr~seRZd^<)})R5*Prx24VD@8jdssQ(<}5$As=57;l_fs_U80pBGJz@PmdRlYEtYzs$ |Wx*ISFb(UO2DBvhpARz)@r=ixk2-0P_6!=NJ;NsrdYk$FCQ(1o!2H*|#`a$&hWW5L{Mp|N{byUtM?M 6blXOU0Km+2z<#Y@9!%x1tG=xf@97QEegPCd2&voLTb($#gB-2nw^uTeaJ;NtOe|E{9L4&ks&>-y@KF M#J80IH;{9$K^FPvvJcF-WZI~~p0h@=H=>yi<)Y0*e3ePR?9XEP1+$I!X@6LjboCk+Wq!_;q>29-TWy X-mSfYT=hec+7G(kJ;c4ZXHC>z4%noZqh=I&`QH=O`7HxoJZ1v-w^3)x|>z#F&$cS#F;Km0w `HSn8=Rfuh9JC+5}YfQtdIU}ij(I~Pr4es{*PxeV`(n4tUhtEI^Lmq){wOYw$vk~$l+0`;>$xeR#^;fEXIf-^HA5PnsG 7W4CuP_Z|E_;Sg($5=9>odnvVMZ`Lm#(E}XNAx+Ov6)5!!o8}G1GwNo@4ywK=b|w__Hnu{b#*i0a~7V >M63@?Sh`x&>?97Y~8+BX!nZYRLL}KV;Y1#GY#-b(w=qflU~XUrWZ1_^be*XpJ{lSY4|Ja(bD8_fhc@ Zh$_c;g~bC0c&{^&)+_>qUBNbr|hj9z@$*_Pj}D&n6cQ>s&Pao%J aH@eo>->ZAcpECvac?jflVRDZg*GL*^WR*G!r;DLOqp{axS+dxQ<-B82?+^gHk%1?IV&rR=FXifUcK!M1p9{Z(T&Ou(fHz_Td=+vbjsf~tTz` !oJ$hA4Ow3Z~59|6GUiS}u_0?DHY{SIoC_6iw*d_?y@4fe4kt4kI)>}d!fID!7jHF&kd4N9X9@aU?>m Uo*18iE@Gs{73&&6)`{QlMr$OG54MtMez81dZNwQI#b2%kkNnV<0};7KhQ+f6S!M-rGXw&z(EK@^1D1Lt$Ydtyr<*%$hZ8XxXx5 =N@|KA(}O7mf$sasUm$KQuIy;^X7R?~nm#kR3G0buZRp$giRIz!OL45NK2D7IG?F&% WgEy?gf_wt4gBXR(I37W|=`=+GtXH{&_h^WHJf-!E5jwpMf{* 0R9KRBR7TqAlHT+zy@Fw7#BX6asQ3SS>f&Nt!23z_UzeHr#Ndq?OKaJ=2hoElCS7kF9IKyEpcvvyNZQ 9u)K-&P3Qn(6nHFQo+2QL;e H*&-R#)@31!mt6v*Fe9e9>NY_myikc1Tuh6R_8BW-=;5 XY|32Ary)w-(IVYO}pH_!zgf-S6Exsupti8!rpz)g0*z|X)Jp+SGJCPD}9plid14cKGU-EhMVSBrZi{ xbh(ey;!x(l0hg2lx#i#Iakf6QEOwwax753;ZD)nM0ti1HFeXf#y5j>AG+I;o?lMi)xHSl<-P^@3>u;9tVh3bj!?(4LR{^3opDFQTj&4u -`p_=?tA!mAGIeM<#KS@xnRLXr5*hiykJ4Cq6F7FkNoL6AKSQ&9{Qelk3>SbqsbLm$;7PJbK{R^zU{w$~83H-_y?3+bS*OirDYt{tox^ZtF#SM@7YbKk#x5b9r ;_8^|#~IypIc66gEj?DKIOHf}pZ&W*>{H|i5WRjs!N {PePA%aWdZ?zuSNfZPe|2gFDCb;Kh0YUHxWQ*aKS(Wcg2su!ZhgL)_Sv{B!|o;+%7SDGJd0A7Qp^LpV ixxU9b7xN;I22bRg2YHjap #_6j8znXWewlQD@y(-anw$N7RQ8>hYx1M)`>3|tU@wyjMQdtlfP#-6;KAN ?;UoOMss+k`&WIBRXF@jxF@qe86{b;1YV6QEUce#CKJ@24+by!bJ7y<6t9I3l+$%?T5GiP+D@KB9Vl) Lv0Pe!xv1wXPZsYJI3NK_C6!aQX*1Kk^@St<=5#4qVX6UG)j$eCK}b+0!Rz=?_hDfIh~#>0_{~W;)oV k8X83F+Z=9lGd(W8>hwtb3@N@L_@s|d#b1}U{83<3mI3e8J_rsD3fs+v(H&;gH52`sh%Hs#lnRP)0Zq +@|e2z3LLO+0$!kDe;u_ZhpXO)IurIop^vCBp|-KyRbN^(&Doz{mMU-%`dEFb_U%5udo9?#1`PS{S{W ?rU8ogdPZN9NQXjD|j`|8}6QaiDnt$>1abm9VDt#RDepC4)CtI~@Rnki@y%Yyq#Cjk3Ip_v1-~o>Njj 5t;hvA5%^v%Y99{&b8e_UMLm%+ioV&4_D>D1Izdiv?7#rh67Nnap+CF BF%oT>YiKGZ)>uPqM|_X0?LG%OrPoBo+WCyyN_x=j8vcI?=}TCH{==*Y>*nf>UakG>rk7)Xyl{ytC!4LPCjD|7!y8WzME#`j%1`N2L?Ov<{5$jQxL2ZfiESfrXs-XLFd(G~$k#St! Tgk)YzUP+zz@Pb#xjFwhfm$N=jiaKX#QrOAm@{XN;5+<*tdU3^kbB5dA2?22oHc9KOxEQr&XMqk-B|N qX-(Awykg!Lq@<+$3pF0>(cgdn{RCN{zQ%F6v0ebaOFfkLh{z+ys$ZC&Px4qBczu3KasJ81m0AzE$B! |P+kxNM%Y_bNFCBFa*oV4~02#n901mi-7x3HgnZR@B&YjOHt*cQ8`(M3!b&_7MkCSU|$Qd}yoH>*H{r %~_`|cCC$$dXrAHsFe8|g1_U*e`soAiovtSNfY>_22F`!YR(~{`{4z_`6-rW%1;A*yD 2NSRcbSY}l~bU@)9#AN9T2Z2r5&Vrk-c>~{NU9%FV%Ns0KKues4^G)C!kx*ZOOL&#IcFvyv0`k)#f^| W2Pc443O0*_J4`gay~h_x~FwUpN&Q$BOv2Nlfu^}3^CsI3wn*FvX}!^wO`+7x_Q!ne*f6Y|sjoYo9^y GeemAO>SD*qU4usdK@kQ_eN;)*pWthR<=|0^bBX0sPE5uvQ7=wbEL~ 3$<3P$$>lcAM+OHM2Q^d46nh~opp|ZwK&#ZSo>k!hjnKVuRD>$Ag2P}@LOnD!ysRL<)3rJ80vQNf^$y ?`v_RGfq#$_VvxKCb=y-BBHu#3hg=W2CURY@H|#I15@TS^5y^N!eh)tQpr~`hhk*~Zd-Sv=cZ^t1B6m mLj&%dpPK%Sri#etoA+j=G)~#D7@y9U@ng_ v65CBjC2Dy1Y2b}*KSk-1D)OpPhM;5x>6&ayLOZ7N{x8xT06zF4br_hWr~u(|3)a2`BRiKQMr%5NAbVo_%qrYH=h2@`5Z hC;lSlF*hTM+{Ga=V>kNVQ6lJcGsiZ3D%1jD$xxE``h|>55}ws6#-73>;S5I8C=>Y1Jica{lEU9J`Iq~ZEb$5LFUlP}mYh4Bdlp}rDgGXOF8@25A zL$Mgp$plrtzy|{mX(L#!(4HFI*&L@Md1QvFpoQsKWB^Y k14(Q`U(7brnnNE$zYyu@os^Z8oc8Ffg&H0pJ!_2byv+2GS< _OI(~`0Vq@_;FoSij$#@qqZW~Yrz%1RqJe~_;xEh#;9Msn8NIQ48iltwdpZsxo!@sdZ^Xg*gMZLp7kW 5}%JY4b8u=Pq=8=U+0D=gi|-lBdUJrp`~Dl{_;!tMR1zbVN3T;W6g =?40Eozz^pTun=8%L=2~;TS+RIoG?qY%))H$;v}9OvEd>^xrQA|!skYQw>McrmN^(mIN^~WPcwp>wJ~*+dV0@|=qZ-Dk&eFhGc`{z!jF}(f 7FiTul)|`WGj@4JO0g%;>CLnH@w`Dib0p6l&$FlS{Mn2_9^+70tcZut)`H(wPo~0~>F{Gpf|!;_rY4^ 0NnwhznT|T9q`}(Sk#)sZrm%u(tYRu_n9e$;w1H{$WNN*cUOz!`B-0$vRHrcA*-UvJ(_YBbTT9AIDoQ F#s!FO$YD#KL>PqTM8cGzKr_IaeZPVENY=O2Qo7NU-i?zku5^X8A3|qD>*Oq51uoc=W%Bsq0%IeA*%J 2}~D%K-Uowv?U7o>~S#p_aZ*}6Pkq0XwS&{gSbbalE0ou}Sg@23yaN9yDCDf(=Ep1x3T)mP}N^fmfAe S_Z9;BD|T1Q{X?@rD#bwjs|@Xs{Y83{{32L!ALy>djgjWQ=4TO)+L0^H@i%#tLJVvBp?uY%qG7yiIHszTLO;%HdsmfGisxvj1Jk8!_KXZ^d(j0G2F=w0e%!OvFxx!p!t})k{8_b>-Z;PKL$P#I Zx1?CIEqRtgiSQ!g9=G8CqF>RV=$YmYXNb%&#Pf_PTOd%Qixo^8*w7uv1%3VW5k#$IP{uzNbZ9e$1=N2DX(k>bd98N(pI_e!tsaL6{G_X`#8e5uJno*i tT2QJhEibJstuC!CtuIx|yvj6Xfo0mV*s{d3jI!Laf-+rMd0Ayyby;m$eHk9o?1cna=cUu=0(DwltS( WPq07}3@RGe;SE;Mk)#~bXir!1F(Ff|a`dEFUK0}|YFVO4s<@!o}wZ2wguU8CS28|)mpf$uA5)B!KTt k6DXDByR8mbMohI)fy^kTmm$UZZceP)I+m%ZlyMxTj?P-CAYg|EQ7EbuVtNIv8-HFa!Ner!=GY)j>AO ORjsXB00001RX>c!Jc4cm4Z*nhW X>)XJX<{#THZ(3}cxB|hd3+RAwgB9n?oK)z)hrER2}EfSiD;OJCN^jax}{n=f&!XR5HuQbKxINT;0T& niIe8qBaS-HnQ=B}bJTe{j*l!TCIqsuhOihwAqrwO1roL_KvLg1=T>*Z;=K2L|9<>PSKWO(_iXo^Te% OdHCaq1lNJ7S-DIjT@qam{|NUPZ{Pi1E)z9=v{PycA%>M1y%~|x+vb3dz&puiB=+kNWk3RFvvvS&FPo xzFo=JP^nKaML*=bKd`}h+#CnqPkj5&t(h>-xAS^7mx<_@49dJoWg{p1t%;>G?T5Z|doWXLs>+J !dKJzk7a3@gt1<B4P60*=2^eoZ?8K$m8npWv`~JQD)ODd|7KYotq8MBD2Yw*msi6rpKWJMQ2T>5&wrZ=`Ck 6*)2bue6#$-N*SJ&Ul<+2v0E?ClV&n4yt(l4N99LNrkApLou)hB@5{^c<-q@&c{Wpqh(FNbLGT=GzA| 6+%}aSk8Y7I=lmyT5SLMsOxo}xwKD^VMz}%ST!1K0i<$Geuvykx~94pKfjbY7I`KJExO#J`*UumOIx) Gj!_N6a4+mRcbmXaHskv985srZCsH<=`6`_pK%Ny^+L1xs8RcFeh@3TN3DnwBDk{H_d7XsVv6OF@q-O `UQx6bU8Y)(zOiDYatx7O3Lhd!dTb>cCA>=|TA(Dde2ejY(T|=OD}zv`sKFBvRzh51UNdXn)9dGiD3T ab<{=4wKoG*;wy!jjI6ADG07|rRhzTxX`-ucF4c2cH4g(ie`N<`0V%6cuSbmm !#aMoP$ry`tn8xzs+`eO3f5;fiFE9O{#~cIPDJRmHE%8TCE4v`E)0qeTtkEBudP& &O`Pjc#AH{N#A+or&y^u5o6;8aX(vU(Zp;f{GgkbCk8Ss`I@LT17Km+^Sd)5;YHz`z j)I=FVk?6%Ve{)yd%o^V@0KhV!#{_aTn}i?%C@TiHJG;xjRJzWSPJFadfR=}XxGDPee4UEH}&$&c)3Wo{hwjxL_5VI|ELT>tDh+K9?v*fZPv}B85Gy6mHTsc0r$;Tef@Udm^`n=?0N5lon5*2VYCBHWyLs+NvxgFyyC)}kI53Z)JP?x(Qk;??`v)zy!o>I1_vaWA+Q!o2(zs#f0 {MUxY#(`?iz)uX=BAK&J=W_28vhF43YH^W}ZSnvoRt8!wT(iI~oC|%a&6P2#m6*oyN`EPgP02}2rp=w eiyeC87KZd7RxfW`zil?3Zj|0G7Q7g)(aadQ*Y(Pwy!JF9#bCTJd*{D0+U*VAbu7#0Ez$+NVl6_F2vP IXOX&6=>cjeLVEc%s965x{@fEgV^Stj_&z@KsWlV-yHbkZiS?WFdwDHZ5ArBZtU@w`a@72Ub%O9QFx# +Twv*v*G)sn39pB(`67{`3IOsXSWgj0xDIdxxEdRcr$s&0*$2qb|U* Ds)^Oo=U|f)~UWR94lX$#2VCz*Awd1tdg=7plhdkZUjbLhQ_u@43K&rV6sIHDYz7n*~&DI%CHIbo`G1 RL48?A{L!i2f#Hypp#~_TMZJ+nEL0z-2vt&aT^=C0FA62oq3@ErQz*F;UzCd!e^@BFh2mR;lCc!uN%8 eU$qefFrZnsPh}(*mBwTKKCU|`I1u3Q%VD+9FyEVvQ2UyqLg!#^4~3pN};xsxq=6Zo`47B`yNO|dv57Td 4x~t*5$!~L3HPPkT=>`0IMuLiWx3ZhHbht$TRRZ=d|EXYL`byN)KcJOsG2-@eI7_%oe_>awN9IB_S!A C9zemJX}DIOKSNVM%RyMkraBj6Iy_c(w0CJeBf|{f|s_&<6i%oZ<|kmkA*ECa-KcU@mhCZrfqk=&cG+JcJFMkTpg?9bZ7<*~7O6e+jm@n)&qBry@7tzW!0fAyS?<_pfC<2Z?hNlUzyu&xcO Kkl(4`i2SH{1F^_F)$Jni^pU1A|u?HYlsCxQs*e8LHq~PibDL5afH(|uoaJCsS1 MW--IiMVgFp1QQN&q?d*dF3s(m1#B?OwvGGj!*)eI_HT6biK>0ViY(s35c16Z9h{_Pf$5QP$9%JNDwd Q8wtD{XD|!rp!k58C+`ST#$`CO!6#v=+56j-U4OyJJ!PIB{uh6skB)xl=ANY%J>dUrEZnnHHD7?2Kn1 X9H~6Ss_sd_Y9C4Qhg?0d;b3ztn<%l1NSYP5Nlt-Z+^h=hk0h8msiw=K{&5_3zt%1(^>!#wxEHA?ql! |SvdpmdRQ=qhN}Cx+Fd2HKH%zfWU_}Bj15JPr_Y%K&pi9@Q`0PALG0viMH2L$-^ChueASik%3rFYKOS t{%ES&plLhpatLs1W9nThtz(w%?bL-pkGdYn)X&?$(&3*sa67YUt%7`X>w-#oxE>v1S`&pE8FOLsQzL sW89++a6xUKZfoBb3ju7Xal-FHpL!m&b@~pZYH+t?5uG+YifzX4rM-EBhj40^5-BP4rm~NvtEh(?nf6 58|mU%cFH~&dW%{4PeO<3k!0bw0jFCMFvpad ;REZrb@MMpbhYID17~egJ;uByAV<2I4;5#GXC?&}D0#9%>CL)XH?}+eqht3kRfYxBgA+D%AtLp{IUDp S0EKuCn^GxBh#M)w)euK%8nw0t&>>lJ0&f(|OlxSV1$ooptq;`MlE#=#v(%X |Yk&fQA3xidskNR#xKglkiS-}@;ci(rq$oRC7K*YH6dvdKWW#dE0OGKSd(?sfG# &8>D+SrN2ULKq(KLc>XSlp1L1|oYn!VcxL>9ar7Cep?97#f-9rZ!|hR=IN6j$E3L-Nt;BL&ACjr9ad kYAfkrqJwxAXCh7jSP(U0kumDJ@mc$U<^(kH1wM`>IWcvpljHow+$!ob}7GB3cb0INJ6LxfGsy<_2|y TW+WAV#R#B2N~7*$-5~XbX2leo`OwF7sbiNvBtmQ>g)c!^(i{Djnn+B~6)_O>h347g5EXx8BkVQgi~& xaIl`NDfFV9U1+xPPHOmiknBfm4PdI}(33k_Rm{>mw7XBb`&g!Gde9w!3Qb;yXp9g}w?aF@z1;VHj(z i(NED}qQe>M!*bv^Vh6Nd-js+36- ZU7+(DegwlETF%M8A-ynexbALI9BBcploJ&Kb{fIY9L++{?-8H|bbM3W{ByL(ZE6*Q-0zBh|tLB^k0& nmP|!Te~*1S{vnO4PIPBlA5o(0W);soW2~7ul0ze@(?*KMCl3ny9I{K1C+_f01mex=U>_waH{#x)_QC zn4)%o@WpCDma8bDMoGm%a(~c*6w3;2$Eg#c1dB)%T6}?fqugIoYG4nTaSxn=h=5gMHMN=5wMLsHW_; F!Fgj!ht+$LM?zc_EcI(bH+j*oFq@JdztP&}!mIEV(^3c|8L~|>Vh=w;zzyN>$_$GYk`PHv7s8;0Gen qca)#Ls6^93XPjPZ=QnF~GGVt6lBD7m*Ro6uK4x_~pqX!tSMH(*oThYL?$rN^P{D8NwxsAUMu#XyNAq HG$Y?~0TRUnV;BmBo}P3Aw1X*biJ%C|UOd<8xsWr=U3a?=fP`B!Y>UorEKH!(6H_z~n$v4?%e6tq}g% t;9I}9p^bTABIlv8%nqJiX9xK!Pb3!5Dmh|y3KD_kHkL3jRz%D1SWVq!2(2YixTMm4Y5YG@dfms 0p=5ca#z25f$}Du3!{XK~o$B>v2ZwrTW5`wc9~tJ`Twmcm0VCnc5h6&|%3qy7R>YrP=F34C@;C|i~u4 UDa~nMd+T;R)Z}hzMk-T6+l@rJcHSUn7DgEWuLT(JNscav~ZaSPxQDgbR8Q@xePRn>n19*1nsC}xV#S7R&`c5RlRAX?A(I#HKk|8D&d;1+ &Gg@!3?j9h2IrhM2%0h4RGIO-nHYbLNOSE4*m#+sA9_Kxk8B9`ymd5d9F@rd)*TE!a`OzQfdS$3zLp& j8U^z+Qea{5~Z&%U`3o3ix`LdZ7n71`v|H+4+M4cS-3TLivb03zUmuVFLUbcmvah0Zg3a4TjV)q4sbS$2ukPGa-Cf!5S(T|+n;S)b0f^~3YY`=XU6zlz2i?b#!o6b8oxjNz%-#eX&} f)G^#EdRZSXjw*v~43lw*O;x?xFl#MYyy#f2&h<)B7ZxYHk3gwOI4FI@UCCJz6TqI^x|K&P<#Mw$$>x xxe6p>d8U+ ?uStubvr=Lr$W-9(@I2LK~o-g1xUcMMt>duuRtB_=YSIL}Cos~Cpd$Z}G?JP55x!9iw8*$6bC#xChwfv0A +TTo~?hAPXDb0*~Rh9rxRHTXkL8}O*WWJoogHs$M4K4#r0EpE*7vq5H`azO{_Rk_e3+j3za$JWQddgw mA8f*9Ije*agKH5^m&wY2d$y7Au%M>J2HuX6V(Smi8%%sH)KYB5W$G9Hz1K@}y_x{2=VUjZJ_};SON6 0o-y#F5k8!x5rk~)q{H5UL0Y>{fhcZK}@9jXkQP^em*A{b4FW@JPZsKL#Ed?RffP`U=K9;nnf)TvjNx F=fT!OdJR5OStcceWHxg6{k&4&NJA+$dE26iTIU>C>l<@D&{j9~q7NuqFelb3k?2Y_d>Qm?A*i;W|vj 2K6y#H&I)-pOUir%dj>zumu9=d>t*MJg))%Yp$V)&5=S&0G5LD;V+OS1y|?zgHM1EYr7M>mbqC9dQsV #i@55H!5t1(z1Q_}hxE>X3@NP#d;lq7)JZ$z8J|L8@re=^w0LYnyrwdMBl~q6`UKhc4e(AGZw{5 pAHl?;>dckvIwUrmsl%U+>T?DA|e4%OMe8FjLJ|$l@sW0}UQ-!Qr&cmk7eV{ Kdn1+X!>@?~f7Xf7FvaVbdqRvRcIj*G$ufuWyT%5V3?SUKA){#*n5U@qi-b&J|L>Qe%=EEd>>LRfOR; VAWv(ljZI?nms4a;vNy|=^9>N1;AbvQ`k>RQP7=RO%bSG?(CU;2a(4|hyYNg{=XCdYc%OqUibl5!Mvr 3)qCN=xz}*~leUAyJYa@#n9wdrRBpSwa~qV14fIJ;K!UUbe&UZWMlgoX);Mu-%0-x=3~057phc!Y;Bp Kj800Qo1Uc<1lTh2Ywd%Ep1YIL-abK?McR#%Ad50HB~42I3g(~H!t{s7@i>Qe+{fy}!;rhYLS N<&E==Q6w~w7BJaoa&zD8hKh`{nNLIti);Ccz^NP?ej%xqR~z_x!sA__s77TCGB;O6=osPkHaO+VX_3 o@=LxNCVBb09 )T@zt4ktTAX{lAAt$2$#3K0vr;Vd4nma8n8CinqcOp}pM|2eQ5XL1sknTMYS6B1`IgY`bc`% nX`2n4i`sdMKuUB-8se)4J^T{R+(qbK`rRO}bK9l40fLoc;e$iwy2gU$_8mu?Ui6FxarGsNFiB6L> n{mGUVFjWJEEyaT2c%)J8g^pe@hn{JfmbCB@wg%JEkW&)jK{!z^@P-4>MHc}r|#qz$3j1!lJY_Lnegg Z?B_-02=r5jejdbrcAMHgDR#5$h3=;4@}0_*>D1jD`gC{rHM)zUY)?6LxEqF=WYMX|xA*qgf2|%zWK^ =#>4D`L%X6tcgCYerAmuA3x|27Jfv(>ug}SBEx2{c;em>6 2(pst<`7c7WvhYw!|$Z|Cp#vm?HmOE!OK(odizoFSN<8SK_$B$r! FXd@Q)w28Npf%{UjnG(54jnWA5?bGaLq4a&iDKHt6`H=lsF-2SlGIC^c>ef*Q5}IJ$^RsVY8Lfmn)w }$bR#sorYV%lHQN&8q27#=YhjqcgUxM=CQ2@vu_c5Uq$&y|lMvPvS2k)VK8q~Lb#E%wH%`7jI^1pyq{ ZPsmv^FWWG4KYGQ&N*uT*D`(X4$a196J=rsLP2@P!=Y^wy4gd8nk^i-`Pm@oDZBpje*z^sUvc)1H^6y X8Yl8lu!jvkB5DSnJduzb(7EeOQ8I3q=K=Ba>A5W{2TIJ_RF;CjNHv1qCRmiv+$P{8zRu#J#&wv8d97tBn!`xkWF%UF6& JGSw-ihb&MW8UFbECY`0dE&?n9Pv^2Bg4?y6IiM` pp=qzy-@lJPI`<3rTQ?6u4=nLCjz5U9fAh7X-0ju*QgIwW5CTUSJHqhz9*o-nx>5 }t$yxC$ao88OI2SNB4U`9sJ<*j*M4|At^JkC+P>$5!~;ec!*QG&RR61|mj}EC&17N<2@XJ*-&Fz*bx^ cLq{Tl`T2E!33_>2I(;SFbmqRC5H;BG~rXHAxjO)WG-jajQC5XzAOP=7vDcUfxz1A!bf?vDbPZX+-Bo xNgPjexAfrYxxz@BFHB;D?vMqra8ytz5#{UO5HD+Bd15h82B4tHI~Nj%&yI#q4wI43co^q`!eTr|rz< zh_WD|M{~e1(VABA>le{T`W%7JPG@;7Xc#*J!(sj#-(~Zz5?OQZ);r|I!M6J)ot7GXU@F0}^5X(ZxX5iMl8_$1F-e;Wu(otik`W1%V^~;AsOo1}_xhVmGO9$#L_mKi B77qcnop>l1@~n)Bh`*O9ntxC>&y5_0SH|I7WjT=89E9PQw)3eRs5+8+m4<%-UQAmq1xKPb#v%nrv0A `9{4{(YisN6<(T0j>cqW>nq^E~$5%pPnHYAW7Yq-XIF)C O~6WvrnmxDL{!{(zgV{czER~@Iu)WiH7P@+X$>xeINN!*{K`y$RM>YF$$CqLj#HR+THD9iXz{krtp(% )~WvTe!evhoq`@TsI$!kGd8G31B5&SH3o8mdh1c##`)t+N`6X|Nx6KF^x?6gaG%XFNWHVSAG=Q@C#{W ze&oop%A+YJtxa978XWf|J;HHcgeYxaACCL7v+n#Z*f)F7C=U_;k0oZ?Ioxcj#5GrRz!W(p6?mE#NN{ %rQrmMDn&lztUm<%Xw{mV#-@>x)T6rYY^9mXFHR#S||Kyfvx^v<`NwFFOkhxQ>K8GN7n424dAOs9x$h iP*Sy|GST;K(#)_I27O|Yquq55S4$6Ya(9eiWoQ*eq<&1vwJ%EcbQ$Ws$IXF4n)!kLm02(Y!+e6JFg#B2NFI$ PYW?zt%>Iy_;oacdUIPJWRJY(yakVN9fkuPa{g%IdXWs>sRENHuFrjlj0G02N0O7Bnh#Ient4#0DCOI J2?5DcUz~;Rdx7JXi7{wDCZz-pXC724P_@`^d3^R;ohGzlstvyF`Urb4Cxw>cdS!}NM~TCx_5gETiEe c28_vi9+OR{quAc87$vVu)x*M~iW1RX_H0!CaAnQ6{m)5FfV+h0(Du-jjkG@9nO8S7%=4-I3YTg6%{# g(9W3G{x4%cHLuPWYeMA1~8Z8e}u{plg((BwGSM28?!{T*PUc8_a`Sty_5S}GDp>k+(L{AgB-c)#o*E )5cEK;c;ISuFMv{Aj~ir}8PygehQ$lt&?Qo4Nvi*W%`T+eK&9#hY*?BD8m$`uYPVezbKz9lq0+gykxu mw|6NoWzH0c|C@Sogd9w{XqT mP(!y65TqOG(yo_SiHkZAw7Ia&kP%d>fjHRy)kD2Wpx)S?C(p7H*IJ%`RS(*H+z*lQR#SDo%@1#U|Jo W)@MeMEwQV-um+H=`@8N;vr`?8Ks(Qbh+bmxH9?ih(AK(lmLqM7Gt8T&%Jl}XXCfxcS`g?F~n(iF=9? dXz7ABbd(jK<^f{Rmp!DVUaqjs6?N-lfOp35dO5#)>KvU1Zqa@p5@c3fiNcMF8llSqs5e=7NcGa7P(( }4Z0bKfo~#YoOAF#q%Fli0LQzq?I%3DuHp+9iBf-X;OcY7$C*iEnPRJQQgzY&;*^>$BABO{hN!LfQ** @oH24vZq@Ez;{jANGF~nVZ@d2rk?B14Lhs&c#)HvKjmZfOlvW+kq%wO*S+7-)|)F){c5AfkIZxTD?zJ1wTNw1Y^j#wqjVK(g?%ur!ApS5KZLH ?6%9(TGt5ntSkFUjK+w+R?^fW?)-fd9)ZLf<71%xtcuUeuc+T`&Bf3a&^eS1I(9S`5!+ef^{^*Po;yL zdQe?K9YZo-=KsOIBh9Z6nG3O5fgPSUkT5VXDZ=-@?>aoJhnYV>53IfhXIUq)SIed@7)Hi^wYAvu-fTf)*w{1_t VlbluDuR`)R30&LqewXo67nUD7g}$o6Sgi0ETlEtFcJS}$rPHXuu6?VV}Fd+(x!w}oJTx4Qcw(mIyDM si7QY~RcUihGJsx`L-fD{#tGfz8DEq@R36_HwwI3DAuJ+P&z{L0RlZmg&7&9FV2ImJV4Spe%7l78hj^ N)vcv{UDp;vaWctGlkL#fSAQ)`3ULO^`JGFlrOgcW jkjAASx7S&6zA^$%&>IukuMZN~?qaY<4q@~Css;=#}<75;@-f{_wSt{+HzT9;b5pV}&iuupMaG-)oV; 2%7-6U*w(gMUW3I`s|A!bV&~Ru@I3)Z%;^6)Nt52X?^EXcK3KXN)k2|56e#Yx~FpbWXC(A4;BdjLe_e E>9@O?oN=?^=hA`N$H$WcqSyCR66^wh^)qA0(pw_))L8i$ka|lT9fbwrf$&c MjstqNgX=FbUFegZ9!VcW=}~(|zAkDFe2A!vl8K$)U&@2Z4svEi_24kXzYX8YTy7)v3+J0 wN=b|eTi2r`1A?lsKB1(#BMh#E|jd6%S3C?k)pe?AwS6`E6dwr;8H}b6Q&CKh+98L|rCK(Ha#^m56w` U&ou}jK}c5`5?lwZezp-u`V6~SO%Kxf)eQiBu}bmx8V5J?;h1VyQLC>LF;8Vv`?%apI2_pL?qc1txt% _dk#?clZa7@xa{M@p^u7B(Vmk8}wL(QxH?;KH3may$M+v{%*k;f6=}sdY&Dj=&x$#J2Oxij?oCxa2@xiFOEXG B7bT1C4^23E6c_?!74S*2mDOp_RgS|fqf(>xmx5XV$R}cJrsZ*+Z2|nCEXRumCKy}t@E^IsCnCS^_5z o#ez>bAWk2_`$f#X|Q(Ax*i~qRhWS9^4P&$K<0p69)k)9X18}tLJ+N3)@3de>Hb64l L<#uS5oOb>a^=9k6d6rV9qjnz$xUw(7eyle%w?$?*22bMsL0E;@(N|3JLy!V8g9Ixqh*27}2D@yEmbG 4Fx_vn<(%G5VOt{(y(GSNI7;*@*pwY8PgM<+w$jtsJ+?H!H_u<-z(Ed6N3| MVv_D8J2$oNHYhv!>%r}b=v}u@GHdMjM>4X>fxcSg77*X{t&}U)IBj#!$Ui&cne9>w3Z}2w#A=sd%x0 T%Kouc9*F!Jndh|vBeoHpbJWX%%WRk}2EDZ(1(x_GmxlW@i?=qh%Wx6Lfx`O!9ucnUQ@YK8IAC@zk(T vjAVCb}TGS=GL5eBWWjhEH4p_{!%0;`}U%8klCn*=Lavb`=jMHxNvkk~JlV^vd{0-ktkTWpQ!`30mse c)NaTYY22bGqXn9Y*6gAB!Xp{)SO5b$nkaPL|@UdrD>yXj>by7G8~-K1~ClW>;&He}LvtDhmy9JIQiX K~Q8<(G8*bEN$4!+~V>D{PDH6!pEDjctX8`>@;(yBrT)7D`jlBq~V#bsrW= jk~1KJ4#vX5MQ+D^rAtG|wtXE!c`?qD@~Fd9FQOTqslFI(!SJoFScb>6y5bIeK!M3er~rztl}PYZ_a) lw3dXeQM&wv%u#z-%BPcnzzS_jkBKiTr&Ld$@p(w`ip*{iP&01dK_yt}6A^!;7Iq$cyG|3Nqg9ppHbN Sm*L?(qKb5#TE0JSD15-Df0X8dD5GOg*$|ejOIzKu=xY5j!cdtz`^JO7MvZU4TJoF5O SdoF~Z0dX-!4*2Ti=Uw8w*lh45dV2HfwKDM1zIJ>&EwJL28xbo)8he|hip%NZ6f!g3@jL{CN-goVyC* WE3%3Y@ZynGl+#i5F~xx`O<8jsh|4gj<+?D2J7KHbWdha&a(wQHuIivJ?tJ^vPQJPkg`hF7-fcilj&_ jpWg+0{f6?-M{u@*UJk`pNh9p{E&Z>PiIJ(9YS@QH&V~wBr4Y33xQ8%+yO+vQXS@@gi8uLvQr*6H3V% ZhG1!O55x+g^~9&9pvhji!OUlXM$7>Ycq?ZKg>cMsS?(^9lp)|6kKseC|!cOTVQ((dkRS^dmZoNi3=$45Z0) ^x`jjhi0P1K #;|HVg%rGPopE=M?h{z>5I3Cw)HG+DAVWL6hvlP)x=it9q}OA+3vJ`1u!zBt(nbdxpvEj 6N0o-@cRl;_3X6Y`r*cDEiESW1)B# 6#X9l|LP-VL^i8<#Gziz94zkdd4xjv)SZ#FTeeM`E(TH;LAT(bHO&E_E$(OkxIBCpT(thdAgg4P^X_f 0cXlFdsFcoUxm+@pBqZxDd9{kYQ)I}{o7BRzz=#PZ6(m8qgbd31@ZPba5ckmho(mI6v-cMm=eCeB|U7 b=o?42*vxA;-oRrNZsUMT*-JJ_{7C^39XR=5GtPu{#3vzx~N;&f(VGZl_BGYJw(<+8_ R7e=^o`_EuVIvN>&KWk__-i-b1ogT%w+q>2Ww5DSY|KC&XoJ>8_D;gHm3N(IhfMIZ&6v1lT-GID-)^d ^SRtaH6!BIjMw{MJGyh+n^^fP1PW+8`NvJ%coKny8&59AJBzZ6h!JcI{_(_{uxl_~G ;!xMl(l?WW_62ReHu6eB6aN9BL5UU9X(q$MKcxI$KKYD|(m6_i_BHySxe+4m-t;-UROYWrCX3)<;^JF9{!Z@fu2XN$_;yp3_@bq(FPmLwliFc0a4vop -&?<@E{5lvh!+Cl5vHXlp0gW-F>EKCZW5o!WaCh~bWI?*`_t>hc8gh#FN$}p@gyA4`av*8b`-^@iEBLeBW1-nSz26OF+VoZYkYY3g}yb=pxuSAd 2cGr!ym*@PMXp=bcG$N2~ADYl0*#kgIWN1uc$-ch!efLuwG)JrH0+}x7B>>7IC}h6xg<~37&^7d}MxY FFUKAKSzf15pT&yz64+fX|e(tLlgRhy@ed6wuFlTquPk?`2*)VafaNf=?5X>R0Q+kZF*v0FffklzCP@ yO$}|vHf%8mvCz+{EVG?Ezz>KrK*k`TLpGQ*YWFWlf^z&BWW~psa)TplNi#8^b&15%)qUN2geZU>)wy%eG=1rY_s?&Hkh5oZ@>~Q+ kBQ2l2Vm%c4<9y%72l@i!3h3+0 %iMPTQ+3h~dCQ4)XT8qPf0V;q;8diC@5>A!{y-~KZT5VW`)rxLd6$9{*RAIHF3ZSAtgo1Y`d4dIY%@T aXE`?rj0H&*qg_;4)g%9J*r0UrJo3_hj}YLg+s%h% A=K2R(XhWDp^hhrgPYOKD70GXzTgV*5lCp>HA>1p|g$|p;hD0RmIZES%re28C&tC?+LUaXcS%`K?Z;| 3wQCT&u|04F6J~XC*n5M*Ejh}TOQUWD%*8+#A&+qN_F6URqXc_Tx{HM2~Dk9-P5d`m8(ocmY|jHC2h& niRXKasL!wXK5Y;yD9itdus&|Qpb-QQdpFji(oqRz{zU~>XPs(Bok4t{zY*ngZ^QjxgT_9;=L!W&`^) 5XEtFn>N4rh?0@+78jNL%8?GCjPO|sZDYtT0OB%Zt4gSL_Mk`%NJ#TT^eeB(E|jv654f^D@^%HJZCdu BKa#9)cE=zb8wHfrCnFEG9M0)ocsfskd5XXuEjWhG|E9hBi~JVGhfahIJ>@af{$wJt)IPLOa%H_d~zQK@~CsxGLPI5kucsqM mo17>y2iiqJju=T<*-5x>mc2KsIt_hN0SJrHsjf{g!fR%@z61m@a+hrLnB)8O%nD(9pRPs1DOZFuE(` bVUEN-zcS%O?FiQgOUUH;+MjY?omPr3R<}$hm2PCnpe8h{#QObU7^f@V%jPy)$*T_#xOo?>{qGH=slgi5#95^MO1V78YkhL8o=G{dQuVn$@lVsc5*hh)Y-}ndW?@8e7?G>$;AQ%$@s$1+2DNmq#k%)9WN1 Q+t1g|deu26%t`g)KCLHU-kG%b9ALU>~wkAixi1{}83KqB)sEnEk###0Tou|(bHdrP~p;^4cMUUN5bXlh}68dyF?&{7qGUxkeNTjj5cdshbVp-~M&! C4uPwBxIR{504E?r)Pj~@9^vE6Gj%Manh9_Z&|NiN;_Pzh-zyi)!tKu@cnD4pI(Y_syM;c9X+PqN%p< 6~AAdi;xPya;-ZGOt~CUMk^S;8Uo8^(N`{K7F%K*<^QLTvg&_$9xQk+>{%rf0NxhUiviI-6JOy`Q7%S a4F()U<~y-kK10{(NckaM8g}En)BY$qk^YFcfP4$PgGJxQ%pbVRC5=tlbrdQ%iC4KO+wjV1^^^6{LxFLny6nQE;yKU?oANiv>IwZ$MF!A)SY(=st%8;6G2r5BYecp|Mt{ #Ev5a>qk>PkZAX!raS-Y&Wwn5rs}1>ov}tcb6#|x53KL&hiE9d>8P6ScD%yAMi0$2tM0FXB!m`NP}Fy )P5|z4^%GM5S-?g8Pn!(m8mKF&jf}P(>g&zuBBIN&dOf*iT^zJ(B4j>_xAH+QZp8A7Vhknki&8$1s83<%Q878a94+zg8M?gjb*1l=P1=*n4taznQk`Qfs PdoYQh|o$z2~1*tC?A>gNQdwL3U1MT=8rq@gpY3LuC1D$Xp(>tby4A%?ikds|?FR{MXxeCp`hlMlSVF~Uvs}(Q@Ycmgu%1)iH!r##YKZJabKmQ0! ?$1w|O!p|0TTSw!d)T1X_NlNEk3g$8RFQtd_9UjWq*hv@Oc77A2dKB9(TuxZ9T`lk(sEHSW (LwTYocyv0lX3o)6$DnVZ+F5v8L~VGf9uuHduxe$Ka?WxEo1;x4}^j#+6$`t0CK*`EwlT&ZY}ETy4715(xE!fDBaZ8bL+x>syC3S w(Uo&fi&&L((32N)y0{()*pKPwhTWO9RC47YZR3uonpJ m>Sw#;fg;PX=jP9{cC`2{yQKUE|L9%5{8|8J2f2bvcF8is-Y!}MIZ0S2T9no{=`Fvd!JoOs#~S(e{_6 +E{hPT=gnn$n3(JCN2-iowex-e)FCSQt7IuN1_LerjkciA6Y@XYZ9c6T74BlVBYK_aQQA_oOhczGy*H @WLSED?-`;JwkurL5vJ@hcegAKd~U}NF;XZs%P^|5zTPB{F*K`y++!k(LX&>x!PO7W*RS4S&~HJ0)x|ms#s=E_49YSbm$Jzbg=c`}MF7i7(}GgO-~xop1L~b15wIC4Qhr-| %}aqH>hUjdiOHV>Q7f>)$eXs;VM#!HGx~y-T%h*ug;L%Eg;Wq=AnfU3M2yC@~`=H;zCM?``{fAGI2{KA=Im+BQ;204BLCE85& {JTzW%rn!WVo3qw6@GZa6DmmYL#4=Rmm(1Y+@_~nBhT^_CU^vEOWrt~_H!Y_RXWBc0RI~#%TOxmc$!5 (^i3yf2=r^!Pyo7oP!e<1v@iSF?iN=}i;Hp8*TYaMw@|tnatiCvp@DneE $M}czDK!z)|=J%lumo$Y++rquhMM%^9djBg6N#Wky6Kg()}LM@1s#&5A(u7yl-9d^HR0GmHV?!> z#{iAC@5IF76nnI#*X)vox^Kt63Y4;H*mGr3ZrsNm2;I9?R!$XC ?Hu&odv}kV__LV|yfB1tE@WYG1OAG!`A$Y3z(}q8tfu^>iB$p{X=L#AUy|jdGj*<695lcJ(WOyL@jEg DnDnbbYz`Hp@Daw-X#>k0ELt0Qw38Uw%(qM*H4q9<)+QWFFATbd@-HfMM`IV^To9>d>gASnNopB~paJ oHme{jq0xa;OO3nyP#=sZ~^nhRwfs{(Rn@9>x+JJVE`7Kh-MVlH!4YZ)^7W!-XEh7$Ta sE*1Fpx;aHPh^_mnOdyunASqrX&}?NY0{x;n130c0#W@rqg85|M>czSb1V= p9Y|K$U*OGcs{+PcP~M6q0}nsz^oNpFge5(Ls2!0Ug<*KR$xVd%gAh|J5rWCh~jl}Q Yn^enZZhENPu=Tav}jA+b33_iAK981K_;`jbYaKGvdWN8ibNxpppiL^D@eqW&I*$L}iOES`PR^51757 g&m$UPe#1A018WFM%Z~TZMO_)JpCq;pacKl68T(1OVFd4b7w_04C( }VM2=d`=gaN&(q&N88>aroekk^cNyu{*t@!AW1riO91!pJ%!BLns>4~J&>8R?siF)D$GpJn4RdMn6Y{ iXaUjO#{4*ZU4il7|(o&P$L-dCEpdYF^{bEAvc@*W5n$p+F)g2W)kg1T7r^Ml_g)ExLN=T$2eCq1N3m >AEc7j<+?yE7S#J^1Gi_g_n}>(vneqo6O8XQ-uvBW(<+H^Yu*#^>}xmvQ-ZUpjN%wy%F ln-zZsHwE34$hZ~wI1GrW$#H{MS#uAwmjP*>+RxVfqSH<3eHKn&`17UtT4j40(->jx0PwPGEXHU-((+ }-ZJ#1?(t3wtrvzczu_w(;Bb^jFc0bai7)SW4XbW86)cLL6Z?rwp~+_h|es}!<5U99W(7@f@#-mLdpj s{m{Na4ScUs4rrPC2fmq{hiL`~Fy2iV|PcS=Dwrozu9hx7Z*byxsuoVOcYPZ8uN%b3%761aYsD<|fY$fp4W1)3wX|R?Qi97 RR@3$=gt``a~A#=oS5%F7#VdI`OuBst_^1fF>i b&p$OZi=jjISLHehn?VdEdS?=$_&$sP`6ucvawP;TDo@lq !1yl#@7f5$kprb!b%00Z|(Y@I!K8{Li(c3lB`WS&{(gQ3;8yjHb= )&Q;83S+jfyD^x^};Z?W7C9NOh|`i@Z4Iv+K?cPje%6{N@Hg&-PXKDFiTHydU6yI52$AFUvw$5ZN9`I7nA~XoJ-|qphg3dBYqSZeB;rGhCfwbjR77@x71wKtt3-7X9$ KJl;MvB?n|+y!P&A4pYD;>LzGuaMxJHcc4~l;MSJKuEbJu7cHfsH u1nF5qKmJK$8@;{$^#@1h-y>8g%iJ?$@UL-$?_qP(lFCrs=0ndr5b;os5uz?F81jLlm4Cq-ZS?})Kkl Z9U#yB{swS4zRTMN%ktt&cV3veS5X=PYzE2P%jz^W?LSx)OA6TLOO`_1AyWbv3U+*S%;->8-$XyqnbN 4N+m~%m2o-gPyGU@8W5g_m75c56bQH5^!|hBHW}~y+Zjoku`hS1uxs;56=Avgoc~~Z|O;)(TRFShKmS;yRvka;c 3nwlcEPQVAgr42=YrLb(lfH3Rr-yZFuX%*ev%KuM2Uf|0o@%LapOQhP`r`F?OxX+qS$F{|d^SUP;KnV8Z4AJ@Z#xp{eXd4t6n#YT0s j7Nv{*}y2Uz=TVJ&=e7xuKMqw3blp-la3IJ*s(numL%eR(!T#o}}uJx47aXsPBFG?bd>D;xbJb4^dyK 3gWMr+R{V%a5{wIJwil0x&FysSIC8f`|rWmLV_qE$X=!cUUNAgSG!gPB+xj3YP?V?K|iljBt`Df~NH) hC2kvYZns=vA)dfztC(c}V(En- A|+FT1<5H)ArOr049ujuxB%J5(P?;I&%3th!WxE{=chH6EC$4tI|*vj_d_mZCdg=yy92kULt2H;&!{I K|I)>N`stU$h~T!waezAfQI6~KBiQd7rwwFW8{GqX_3g#O0-k+Yw<92KSg`^QIqUi=}qtOq<27xq`&~WbsDd-uEWpY{ f)k1>8&vCqV~JyK|LAjMcT1N xuUvqgm4D1To7UUe_3fyDLVTIoEUr)ETMw8I19oPUqf3Ko|21%R06o}KAmBi*F&i%so)p7xY@fx$8an !HRyuw1ETwaiJgssGVJkjz49CUL2cPYf7U+l69}|+o=sN?b!4duzUI5vLTg(R1Di D>d+X92(u`=dXDq^L0y6h7ZGmXR_MH9~n;a@{y1(IxN4aoHx3_cYNK99j?qd~+@6^MO9(h(lB06llaG #6^+1e73g%GK =Qxj{RZ(R>;kqXg||{yvA&x`jvV{c2mBnYUGM`F&7ifT1!KY}KH^3qRPS5DwBg9yCcHGGjCgi7t&eOR@2H~gBl9Gw3+K+npy7%kHioLh#yT!KG&_~ZAoZ}` YKQ{g~RqDx!-cwXo&qKc7CB(AU&Ke3Cq{>K8>78jV}$(lk4Vj*O2(aJabHE!jbfk(Z?o9 N#5KHo@C-~24fv5x=CwK-N+r~UUeeM)BGwVBaV*J^U;R!t`3OGWP9nw$Qt>-y7mDypoL79_hraNs@4!#_RO6?7YUDb)HorQ(Mw{+oJ3x}CGCSzn _i=QqpZb&Or1QB!ee=^uFLSa$q!3ExkcA#VsxkWTG?a>}dnlQI{vxN3VH;hs67}GowV;;!8#VgbE>Cv y)@p!=m3%(Zqb;e`?-=vZ`{knOeE8Fw0p6?wt{!&6)x(Z{!N?f)=E$&(D?&Dn3w!8ztVSqzNOZGcbKs l=>AN~5z2R~nK7M69d8`0iy9jUL=N^**WxGzF6y_(z9=4rsG{bwgn(-US`JIqyrNnm96^!aL2a&wum0 @Vz>SsVww_|Spg?GA8>bG>7DBnTeW0}pWLLWL=Ig(r~snNhM_-%R;&TsS%dL%gbby>V82Hw?IUkAjyS =;v?zNZB;Z0d=R_{VhFB^1+AQ3R_(6rprZ!JEaAl>e~nS7a)SR$3Eir e4j$C==qPIuSExtt?FBd!xZ^1eEx^LTI4ngMx3axRGIsrw3@-0O%RMQ-P6~~fMxVm {1S+2L5tk_b^-H`vV9d=QA?muJ-q!u4DPo=d!)N=wK7ah9mmmFsKAe&K?uV$C;x)bv@8R~IUO)dU^aH x{_ eXv0=hKkQZ6IPKEdEpm&e4*AGuW`fM*7#X!)YTy2L8G3Is%7jE(}yGIH+=*G|LH{ Ykiy|7UU&oY?mqL%^?kfZPeFctvupo*?>gVV7cPnqyn}7!0r@EFU39=AE6OL^_olc6TcC4;nIDt^!9q;Z}cXM+LsYjuJ%!?sy hLDJ)Xv1NfS}IC)8AH^6D~F{EX4A`MP4t-Gnp>Z=mK0hpM>}Au5xlhes=>G=QUQU4hnjQ|o)tI+$7GC voTP6;uA~VTXG-op}{g>OJf>pxuIsDff8T;deOajEX7udDx+DG3PZEQ(pCQ+u?eFLPM`~$KoPo$F!RP}vhFZ#(_T!h?F_+%XBD(M0l%`B?`h?z?^xYwp+#xjw=>GK96?8T Zlg8HaWc8|m@?>I9z$>20lSeoL5?~Ib+Sn*`sa^{b{n+hH>|Eqt=aFgP9gsTjszy8uxwrd1x8CmOsGP 3FT}hCLTUjEKpTkeR*hocValZnN(_Br|(Egah3~vRE;cL$Z>X#4Y2I|GXu?7klFytKInEq4@-4=!hck `s+%~RutuI8!K-8?;|W>>|_&6789gE)2o(M^A2jZ^sDxZ*pihTc6`IfgX*-qPAv^Tb;3o|lCTe3-RNm !E}}X@5N>cOJL4w-ee2|Hl0rCZL^V7S0=mE^Va+YtWa_YG|7k3O>H@H`RLKPUM7hSZ-lZZs#(>E0X;o{tEQ^c9t|^>=QZV*)pkGl4RAb$egc~2NW_T~*@RA Dld9?;1bMBt`<5pMIDAn!&Qp6Fm*TEErLlHe3?@%2`SBB`PV^@2E>F&|cVd#St9sWlq`K4I&rqMDC{G &UpqkNwkag9aD1seF+nr(30gT_T$v*>Y1!zDaSaoX-{tc-~PpMJl0F$Z0nWoiPL=+FL$iGIm@* z-=`zJs{#9EaYc$@g(Q(qtz2ROB~(?;S|+UO6P6tP`f<8dkd%aIau>|v76hZ VTR=Mr5T1C6K?pqD3#7P)Q6upBpU;T04C*s`rB;Z`9Qe83VY }+pR6#&bs5w-`KOLks_)W(P0UTR#o*3t&y!T3{cy{xnjVPj!qYL7CZDLLtHDuc*D_O=qOBAf4w5%0KG JhcKA}n3{(n>6K4B-I{rB7>Y25a0u7GA=oOSOE-Q46%e)t{s~K>kdO{tlkob}I-5;c5(wdw>)U-ccuH =2(;z`Sz_m;jY)Sdx#Kb{!gne_OnaSz2|H`okA=?lFpmN)ex?x p8YcJ13GPTP#k;`kw*$f&t4;R@PuMvemFNfk$UbK4pRi-Bded1H@*$@Bv`u56IgB-S-rS;`%<*`<~u? !%oFnoCqdJ+E>f9!g-kTH0wpYfm>I}(_dF>>C)9nxb0S4G>d& %zSbt6VdoX6_}!LwR`IWe-#cf{ShemjoOh1w1|}3ZCMwq%Uc41~}%?GvB9rl5BzOQd3r1QuK eg3xcdToVD*8)zEGmU+q>h<=kV50qPXyv;;kQA`TT&Z6FD!9~78^rxVvkm^Doq>Rd+Wi3^3=U!=p7-> |&yvH%tuM$tzWoK9uwf~SC4dT~eG{Ea=`}h*zYiwdsm<&ZxBejRB#37R`pu$N_(;cU;-{!-y;k2wH!4 ;OIDDZ+D>RMVoxIzTLU(3psyggbfQC#IGSNA#SAv)!DdJBaL>*HNIYFlSYxllQH!FJVoiqwQP58a^vJ |l>mG0nh!i+8P*(duf}C}G?Y)N5jr%C&XPF@_rb5mhw~ Vf9s#s`g1-GpqW^?hu0X!hYNiH17*2NPP=(DM~!_9Lyn-(6`+T33=i%NovQ9qe76OKK(dLLtgFL}JI8+t_}@mswDngb}DO0&DaxJgQLry(2`>w~pN7@CiEa^a| >LLf-@8o-!RrN%pH@Dgs~xn7n9p&;S??CLcnlDL%w8L|3C<;vBRKbpdmU3DngTEphr_bHi$~s_Hph`0 H#2nOxggyS7DD{a3UQnyI9X+&vv7OjQ*EmeXl#V#Ti{xS&V(G@;f%ee#)=q1wtzJ}bw;udk{a*U43Ho 0sT>ukq7fgo1tAn+>p8-y&Ux5n4ao1&W*oUNlW$L(YRTb6%Yw@6EkeW^oJC$18sG5#^hz3U%&+q}ZcT MzSl`wtV--JH!#9tJhq{Y|}IOsvY{4>6f7~cU%Q!@EuHK#jl=qwR^%Z?Z+`!m>$P48aK2`;*wK5hKS3 !@vCSFoyy2bo620B)A45YGRV2=&i?qZ4sx&h(`A}kmZ|gOX{JSi%bU hv%-IKF4fSchE&8~9;ty)Rll3kfGFO*?cr_?Lz5WV0*D2xGkTanB%}+)lxJ dvHVM*(Ei=mBe{z_d~k|t^G5r>*K@>lg~&>>VOo|kq6f3WhUC5$!(FV8G=UX! Z2)$P#v*1U2FYVinwIv{J2(%=(wJ?GS$yWk|`(JDD0)zCO`sk|1Bn9R(Wou@-h_UvOh!Rv!MZep16RUJHR0k0>?vFh8HIqa#Z{ZCqsS2v|V ifI__N;eD=_WQ&5RhHbR?n5-J<6B&wwLTP4YL(}ITIf0m>bcGG)a^>|_831D+9l@ZidsS}{gju~OnCA rUN;DT#pLgQX`|DnBqUb2@XgdSjEtAdWNz(utqFm5;3CA|D^Oz~IXF1iMp55`X4)tjOHv4``^CL^G&( AFEg#2*AnVw#pdSx;Aqde{GJ5{q5J`@q?f`pFl_jRSwj-+sm%X6TqTU^x|46 I(PfnLztBhwei92^1Iu89rGFD4P#(%H&92qWxfM<(_^-kAYF97Jj6jG!0i5jmU--v)910D9x7w$EF@? W(gKwRTs^JTwwZ7ny`T&1K-(_5uU^|>!aeoJA+llZsKL>bUW1|HXWSKTdzF4IQ$_j&sv>oP8bify9H& 4sV5r!RK6Yv-e}Y+jCe_{m6K>2m38uhMw2B0yF%<10(N2wavAAO&?c2~^M0=JnsReC2Omx@&v&IS$V= z{9(GBXAm`Jvhf7fN2+#dOdx54P$(zAdJ(gC@QXaN~2+r2yri53vp`M3&6E}&F*0admuk*Ab#3U>kdv jQR>QT)O3(FJy4jyr%d7Eq)Kk3N7cFfN=$qg9$}!yF&d;whDSFDha|0H}n(kGy+j$kkg-;C6;JyW@aSe5$2C1>?m_2iwKk$F2beTTujBgNjlBL2Rgqr ap*+!+w`(49@W5$G|#*rV`p-!ZBLAd!H_gDIRiT ?gVe}AUG7wK=;Ud_UEkDYp{sMo!Q$ZCxYS^@ZvTgOD*Gq~f^FlERSIPDj@RMku^Pe^4pE)6^~n;wCn- SnTSHj0RwviZQaK+pT{+ZEhq@@(oOmimBh#`lJ8NJOLO?t_?nN0#h<9d%dB?icjbeY?wjD0L^Y`^S0| s8(=@*v1A#BfxtB^DafS>bSqZV}M#;@o5+=<0a3ho@UA^eLs4dDx?4SX*NGz2D4WCQW|71jU(i(r)hq rh+sWa3R>N1pGI#=mOeso4eh72RJjCxY)zuQhqiwHPpE50I*v;_ow^u}!U40Oa}iDr(40?WJ8VysB3{ !Gt_tr6*OodAJS1@s1Eh%ixd$cPl7N1MkbtL=33qUpP@V9;nQn}wUf7jLxZsj-Q2e`{_Fbv2dFjo2fA 7Amt}X7a{H{N_@5{>5O$oCH(9TYJ*Kr;%$@0TXvYhY#k(;z0-y&~!-ImbkeBSl#fnHXOTWk9n*v~PC8 azzElntT>1<}zruQtjlVj2enCZ>BNvHebW5}|7}344r{7bVAFbKD6n-awpE>odRzy)!0i0`^($&RA32 (G=AVpR4k;wce<#4c)NCwEJS0cbe|>1-EGYK2TjuH%bD@puF0Q`Ioiznp9^4rsD8ld6wE85>wcJrDutz436fbjuNS&%(_uQe?i!u&fl=74mEP4PCDC)0cu`0P9=?H5VcZ_6C3$cC62%%Xp;aeX%7 hCr7I*j?1cgq>^11K`w%F`sLNwksj9(2azf`il`g^2^EG-_?7WwDqP8@mc>|m=ts_Mpdw=flq#tT2ez |_k&@A`VvxKIOhFfij?1rR_<&8U*D%(25YnnhP@ytc Hix308kRb`aEsR=v-LB2lwhxho#ipn9f}Sz96vb2k6Mct!@O@2n(4T?a2AgKJJ2WYWz_D()ak3c?2`q v6~7AM2AJgYs(XCcQHOjSlDficvGrm1^31}MQv~B&w_Mge*-10L1loe@LXF8StFDzZ9cXYdispU%ex7 $+1jF$u9(!o^mh-<_RuW>#v0pJoSGDMf71;^o+e`s+I?reK_?|Hpyr!}Hu0e*p{JW@T0y65bb=Sg8seXv;u21rW}9OQ^i~w e$+z23AyuaTMFhRHJ~q*To}9t%_c+r4u&CG!nMFn5u(t8q~4}j`*pGUW5fW)jZGEgJZ$Cg@$VuKBDWx doM{+`I?w~!Zr$I@r?p_rrl~3ZVojHrIAMAA5_<%XC2dE9gFW#$3Ci%>lhIn`3aI%t@1M5f|uOsh564otu75;ita@(pUP%mO!^@T{+y&J_>_u=~9`*NKT4$;+WE-?+$nOkW;3KrTw-%+g%?c>$6L=t4Z|_lVj{zlFJi3Cr8Hg~%y49z7|L*Zf1eM-u^x$Cw^1D Hl6aQk$R)9j;dt$ac%0$5Z%b@pIJRWsn+(T&MB;Xaqy9~CE5q^DKyeeparITai{W?{SuAHbRf1+`II2 t&^BIl`*2Ik4+{)2XZ*yxk(=iU1D-n-mcqrn*439*dFq|rN{IP`b8F7)}sCilZl;KH;A7MDEgckQP+<^E_hNEg| @i~SsL3|6tvk>3N@O;E;7>;Uk#Wf5sL)^;na>R2PUW51&hBqK?V)!P+H4NW^cp}5MAs)-{?T8O%I36M tLrdt8mMUz+QDUCEt_K*BL#7Kb4f7Shp)J+*O0Y>_Hm%Gi6l|_$HciZC3D{&Zn^%}k7TBaSo5zdg*l6 2=((lo>M1sfDb=2c(7E}#3Cz#E0W)llGN0?1Ivxx_rCT5euY?8p{O=dHZ*=WG#C1x{>*%-iP8?y;vHu +%l8ngMOh&4B0^Bl8jXEtSE^Ek8lxX9H2f#v+J( Fb0v%)7iW=BCzU50jj$ycqU&Y*m`HI_l1CWkxM8XZ=$;&<&@?%H_A2%BWEr`1=Q0XvHtq*{PI;H~}iD ;x_JTAcD1m}HR$C1~Q9+tyL%S(RW;);^95{<4`2o5u-S`4ZKFkoS^_gOxeXa_4KcOhV2hq2;yJU@OD0yr9^4aqV^n8$7uF$IGe)gI%HfM$LBEGW}S>yP^%G-+3!a tG{^nt$=43Dt~TUl>)Qzga>3L^=u0h{lX8URVm^?qP$k(D4F6r8T_$rLC-%(&sM}4Dt~EP`4-wd3^wA rd)=Drd!Dxxv+17VRw?3A0$uYDxEDX4IzJQ*vco@^Lq`KT;KqSBdgci=(?PCq?#|Ta&w;7S560xiQkA Iih}=2dsQP;=R&S-a`z)K12_NA8gpV(~_B9N|bF5*8xKoDuV1LZ;UQzoxx;FKGR#e^NjNp+olC(2E8g -lQWCLEocgafmq@emL{PM4-hmnV`iP0HyKGE}`^%=y4NH^uia7>9&2v(^ !?v*0$nZ$^#MU4_C?E#vqPE{3lty07qZ~_i2F$$mI@ezGBxR|~06LzPnx(ej3E-0a~{9>SLVdGS#~njl>vR64p5W_gn$KA*^FHxWu_i9&VPOX#4B(MiqD+finyjAB|S EaUazI08(edyU_r6c%O<#Yc%4CVR)DrygQaxHhbZR(&1b)gK#hpgKESbE-w%zMohDUt2_I($xWrB+rR l$lIpw-^$}M?exzo|%$M34oyr7a`K7j5=buU^f*CQU_KQ@qUYdZ{ueYD|;KBIK2`-(X{#7+9%sHSH_VMJ5(boCI7^QvF0v$m$1KF8LdS}J%8b3rUE=mIku ^loDho-?$U#+J4aGG>+jd&0MW|kp2kI<6djR(7QcncjZ5G)>pq5gjKFGb9WXT>rBX3yTJnvxMR#B~^Q @Fwl#Ce>ZRxJyCU_d4Y!O`K}OZ1CUy1MmaOKvmr;X9`Ec)MH=SnuO;Ba2uf)7O+E=S36J(1!kyh@?zf scYEd4`cY%W#mkt(y?y7fV)O6k&@zGL(0sY?9A2ZiGKYAhXnUA~=gUf0yh8YV+nR99oudiea}*5HrjS 2r;>*7s8Y+I?2JzaOJZm)8W@}svy~+dYaXQ2x?51i>9*WzOa10N4w#X@Fl{;bra-j>egxZ5p=cUe7y> kv3>NkdUmAbelDZ)ISHdsO4c!VeU^7@@lr4-RN79|>u5nACA%P_P9+T_cs4 c>SuAo93cQdMKr(9UL5{^IMnUi7VV=>xc`4)sN}@4Se+((k3@oCmN}4A2IvX%h5wtzC+EZyYO`moKq{ XbC5sTcKa*ss+ZE(aY3WDL;(Yn+ZO0);Pay^N2qFKSt;ZQZCQ@uP_G1CTxpRazPUzLq*Q(l6$r0{lOQ}1;<-OjpDPbxvsNxXuYp9qOE@{TBx>tCR8I86FDcS~)Hu-}HBN*vmltP>KQeU_NB@AjiC*{_2InrahlJ~~lR3*`@q;mUMF~*(jT`PJ|HjH=MWBlpCUpzRPk8^}(UEK(+@ I9W8)X+nodPqWT`gVQQX;sx}sta%FPVF0n>gd`-*$bUb%^QA9$#~neC9C?w=yKmI)oXVtNr-}6p&X;p ;N3D?^;%Vc8eFxzMIS5#7@c-0RaMwWYlRj)wy`-((?!)?T=PXDhd*%p&pF)8VU-`-J{N;YffQ7B<*M! }#VvMK#a>)1Mv{VS#lY{|R4c}41=or(gdz*=cB&EMBL&llF^Fo!2vKm27y#rvtqVVuQF85Hk}D{=L)ypaRXgT&8S2yN-ChPWOy0@{$x1GwfL;bwIiS+k& FKOYF2s@=J$PQ)*q#Jw1iLc&DXtu9X65^+c%o5DHE7fh^`g!?)IHIjA*-EW%7>S)J673M!1UfxbrbYN R96YRWCT@BD)IvW+I|RxFcnCRM+FlwQ=0FbC+n9uw_2kQaypZZ!c1 hPSQ_ZkD)I0otd#rJs7_+C)2nu}%)xdmRVVR2S0~}2Lqc@;qkIIH2AG-nILFfhLMq|#%k)Rg>2eN&q5 =>~?flF+bEy7^IbGE3sXF4E5~&7Ksy$Rk1ZgYJT+k-}qE*fN1sc>`raJ=N`p_LQtXJI;Ub5Ex)wfks=>ScTV9+LsAtI>X2AB+O0Wa z!pi?908??S|glF42u4s>KTNPt8c}vaKJp(+n1Qah@DbI#z-9On#*;{K}O^3{7a90<@`0h;IsT03J^1q?gmp6*S?p%7{JG{l^g=?&ZnjsJ4i6vbKoNPr_Khjt6CqA%9 SBPKK)bCc1wZ%5Nf;ma^0zMQ$7vQ|Eq#JroUbF6BASFtGKqQ!i?#h*~3b^kN}A{;Z431)_0ZgBMw41l 6K&{6)3+HB%X}#icSL)k9^(&@L*mN_!;y`g9K(FFtpH4{4DZY4+vS(z+aj@PkgZqaRF68tI~dc^kXPM >>qN9dXJ4UK<<}g!FCDdBoDVVGL~L38<&xXzW{LnFVc(|1=>+Syphu04mn7)uuv4qP7I(nn?gQw8{Grw9LTy0 lw5K#T$VdH~U|^0T3mll=FrN*~aepoh%y9(bIWPx#G1{lYZ@zsz{1&3F&`YZv4YWaa)|O8#bc8_HiN@ geRdiGI`=RZ{3{kgR0IBn$P1UsP9O31+D-s?3a8gFC+Odb6mO$+%x$J*ZwU0;pTmkswzK((81vzZ0wV=P>!{#*ACJSO1#D&=Vx@G61Zk%t2T89#o4IIj`Fc?gxv4bA;BQJTI1<8` X^VZv{&Hn^YTmAIACT%TTra-*kj;kV6AW&g+SMC0|V7F@%BEhXF}J03-v(tOz7I@%VeUptl^ZEOQ2>W ;F`~cR;S9PRRXBUS|uV`K($>9zaydQm0yapkAUBC_5tu4ud42(_Y=LZY(K{kpZ3!XQM8{#1eosMew0~ xwYU7rxK@Tg8J?OYzL9goI{LqYNAa;cTtl$ymPwK($+4;Zj!w_L)m*h7vNH)DtN}kJCwm@Uv>ic~x~atF%a`JuV_ZWaz11(Ej-9Nz7Wr;k$`pIYqG2Zb1EJy?z2ld5)97 vX9{j1(+a!FZtxHLYSwGE-jfOFx-%@rqhmyRQ;X(3jMmLh5W&9>dg{tax!brZH!AMR-!&97O3>qHlPO =V+f{1q~tvClWpRu2I>T%tY>fo~ES?dWkzMvQvh4BQbEBh6EmL HDjgy~GNG;IDd3iPsd=`aAon-ZrC-Bys0o@iLUki<12 tDWeKFyzcZ)n}Kf#`QAjnf&u=p|1IRVW1$q*ki{bF(8<&cE@AS^5a}d;yYXl=?)hSUkedJCN5>#5)LQ ~Q$ohBrKc$N_Huuud>@HE;WX1>N^g8QW*>k~L{MLs>;^Hs_6) VfM5W>q+R`@tl$>zKNO}>n>NUuSw=T)jMQ4*8d^Sl}&7IGyUQ-O^p*jJ`K=n!0{f($OCV&mhmIar> ;uJ^m9qBdD^iNnbuT*8+{eC1ur$E%A8&@{o8{VQG6aK<6pOVVgf|)X2Hfj=voAE#$9{qoPI-L$26hnU=vPcQXQ-V3nJzQbUVDE5idd(-9OUZ&bG2kQA`PAR54>2R)^|Ht ihtdSUx`<*77y*9pNp;H(o&fRv^#TMBOC8IRRyqeO!W*naW7hFXy6YlB%r9BMk f6`yCGI`f&QN13Ou(I|Y2o8Ip-2!7_cvj*X^@#wFpwA^aWIfq{LZzJo?sDI`N7C^~s&{-XT$fK~8n>8 gdUsd%O@_*Kp;C!~>m2n64UpSf}mI{m|?y_OG2_6oCVuM4N@=XfPItM0O2#*=rA?pRF8jjBoI 4x4IYT7Z2mN+1giuU?MYRH22pJCJ!zuS(L}bZ}80>?eFAK5#FSI!IwUx<3W(X1odNu%SNOPn2@GMkAa JG0Qp7nqOn^{sawg2T;dF<-iU!cLw1$4hBj1w=yP*KF2vN36~*mh~F)_4zb3B}?b8j=@Wi!ZXK?p!` UQAjf7Gao1Ht;mAaN~vp;?OXAAp?1#>O#Ge7nST$;Qhicy_%{^&IRrvDdKyhe$uC-y5M*+-poeWe`5p tIW+{-TXNl{{$O0v6QTfcAgYh<42MtUq_HQuS7ooZKymfp)Tx0;-6_!qxxgp2=%cg;g}S0Gnky|tC!N d2tNc*bw997GQDeHasEdBr9%wE+uaP&lHtNB15WHE$uUa&s#uOl{H2(0HdzTiamXu4Y&r?VjgJCr~>ADkmmf^c_;a9@`4K#BJnD+;fHC_h!}U6iKsHuVpBdUX9v{e_+d|Q@wped-UgupXn`hO8|nc9Z #F#VeVLjUc|0O=tCTaS>+~$vV5-K^WLoTT#{4)W|E|E#`mz_K<&Mpkzi6N*E>UH_h58aB$ex{PdfbRD xFiMy>KGBaTIAJ#1|8R1*+tCIb*jpNPM@*)h%TLH>oOjXQ1HwLMiY^A&=SVm9p#tu#k)#EHIcL1dGF| Mu3pH%tnG(aXjiA#lD8}@4%?kl5au?>rdx(pQv`|=!cpl*LRvcJV1*(Y}kk|i(b3%tiBKKrE9YVl(H{ ?LgwX9zRF}yEF!Fk~P;PLRP3@~#$(AVhuU2uP6kLYy+Mh4G!G$M`NC%r $;=EZXc%+YX3ARTV+Kxkh>IzPO@ni6vU$dYHoLsqU2|_7U4uuTPRUqcC-Ob{x?ZhBBo@m1|=m#|cy&& q@1ZwcgH0q=;4ha0Yd|sydq5Uy=98_e0)aSi$!+LI!3nV3}7{ZN1z*WgFS~#3X(r+&KBPvFrO=r2Nqn 25kJ6vQ6`#d=}DM%JytKv`_2(qOyf|^nO v<8%wXas7&*n+z6ee+)fG2!>jxTzvac}ga&#|8QoZ85Z`XY=<%|$w{eL`wPT;F;r94e+v9FLc6p}VB! <5Lojs##fazj~`1e_^E_=M8evyJI_-YZ;mQp798iZzNB-0nf>ers>>?ZQtv;=Eg Xi4c+!FNXD&5#0MK92Jz}pZ?yfYsh!=u-%;q(O$`fwOPcjgrdXmxmV_dc9)F>eddG?6SnjgR6I1zGn8 jy6An})`4ZBo+PGVQzuqIgzSs27_~LtY!lqA*=*`KHV^-t&W+CD$`js;LT`@x6BTL2UERo<|>zR2czKA$do$-iWv)fDQ3Z}5mP*3Ape@D0k;#v^C*YgI eeSLRt~@7u#3ackqpLisN--EhlLz&;P6onU*WKc!;d)phQpsZ42)rLFo$C~oW|i?4wrFwJBL|UGnmTZ bsWZU7|P-0SO&l4u#H3AC5w-pS zu96rZk6Nkq+wDIzipIFYh6A!%fU_#w{iFYho5rzO-%Q2eLd5zL8VHBR4r!EkjLPX`x)%{ym ^}0502~Iy|*VIcj_Z#>B*g#^{TYjg@4U mJ%x@CV*WI!Pn5$vBe4wvA>I-iE4o?Xuh12OQ5+90Mw&}TwFqoWsTqB)0J<#gm@iD7jmG2vTl7-`IagD9h1 5UGSvHMX=F>QuH{@jj__08m)g+co0NX;Kb~WW5Ns@hIka?aG%dDnA$2rOW(ZqA^ Vze!C%MYI7(&>oY!p*&Er-0SAqFdi&Ee(Cs22icxs^+bxfFSD)Km66JXg`2{&v0VExzm iiTF@zbN|Wsu64y{r6q=RSAu^VgmO?Cz11YSZn`PT^b-Gx^k-747E(r2K7mUXGhxZerFdofCz2_@S>7 cOn}w&C)$bDSj;-QKDwUQiWXY3$cX`58A;lb;!dws8>8qdUNpJG+&@1AtU;(X(HcCC$)kdu7Gai}#KO ;ZgW6Guc&+d^6nZCQ8BCkuRoW#=hHlOxQ*b-P=JZDnUcYTfbD8E0RUi86a6w9=Tn(e)&H{PTC{y6(QY9(n`t@ZKwW0fZ1B5`j^W(p!|33s#%;^;Bd1?ZubfUfU2=Nlbg=kV yV4=YFUKp#gLJZK4{D?BsXHCBY3ki}II==tr9J#DrY%A-9btL8q=9cwJ2Pzq-98r5bb6YzX}(yza(ps <=rHy05hG(pjUE$w^)+#0$Bmy5KXFn*;- DLVb^IR@k0>rLhx=B3VGurMus(c&dH-gI-u(pxgKvX|xLTJo0X7u>p{u&B7idYi4(?pV31Z1wGTtXaE mJ^8=>sIT~ob^TrGcIBS|df4CktLo*iyN?QwKgA#X^9;Yifq0|I_UMU+`R6ruqNf5}t*cX#t2&96J(J#FX(Ij*O?VnbzB^__pJsjU<4s=xc5hI {Y(^TzuhcyQB0e|dQGBai-d%VUo}vGvKPp5FG%vwwT;`4|4a{l%AFe&yBIcI@2s`WtV)_4YfByZ7wfx 4)^m<-oh|9en@L;UhXFa*p#9_9ynnDLr3rHA?M9_D*`m>YVS@9kl }uZQ{1JN+F7a2A$?@@vQ~ja4Qq$}zv+}dxfeEp-3?3!;ApS(DRN@kWl K9I!@hdOCv%I1lBJjSm{LT&K;l92QLv?jE6m)!id1`qL_>LWul)AVa!b2pfsi4?=mr9b^ucoCXLT6%}W3hlFaF+!u;#XRO9?AjfTK)R`|>EQ$VvXdvLo$8T96XKW={(o9#FJr T4P>n!{HW?bME~hvd-NYbjx0zT}m%F=P~kECq-w8w_VpPD!!dR#K?W&o0g_wAil5r@Ne&TkKHG1$K2# Nv=g*lBc%H-yZQ9PuE)A>j)EQ{5F8gXeuV~RYm#Hmsz2KV3e7J0NtV@NQD}t1XBQf9Wx%}Y7Anf`Icq bU|CpDY?-PaRan|5omKe-c1x)>JIA8V&a*>~#!PUO+9oV3D4t*`UO7e%+(SOy@{6&7#{yePagn9iF8g =KW3d$#6lYT=LD@oxakn{2>`-1%Q@WGsEz#3}_uZv7lYU#Ukr^a|xSuqSXc+xf1@?TDrBZvg&BOYSMe 9+HG{4+WFZ`49$LhT&ttR8K4XweGt)RrQvef8D9AKx+%H7-oqkkFiLC>B|mDN~9pMJ0SGWdyH%BV6@R -HRO|3l{1Y?ypGy%4_r;+UGvs(CYhXZ3zyjQ>JEM|5}={2nuO+2K2$$(UxYE78F?vEt!S9ozBQDD79y -x-N0NHFp{L0}s*;8=xcua)Zf$#2_+Yf$B&|W019Q4qGelKZ1~J;q5rh{7(h^1`o4B@m$Y5J!$H2DmBmEmgDJ_iWAJCzlA4N#u86Gw&kVM%-NEE~!l@>&z62WYXXp9;ca_z8vDi Uq)M+W7FK)Qm7Dk0G3*XDD?3p(+GcIay{e4q~rgfQS@RRk$W5ad`99!SCyRU~{;Xh*-c;3I*JN~?dCU uqb}wGZO31I!J8xRfMnLBtU`ZMhQ(SqtxYp0=p*0c1$-J~AY6FBzhEoAhf8wg&OI+k7z|B?-@kxY7b3 KEM}*TEi$W{3$PFx=SY$vK-!Ba-LPdt2BQ%&uF?JJ$6V>u0N#9k3>z1Xp_S~FolpE@EUk{>L2(L1$>D Dz5u`41{?`%l*{YYsf2tAZw~jL0r;=bc~;8tM+X95LrFB0Q#6!Q^nJ99QWcSbBofLY63QVGcpABYm0e i4ALJAA2l)b?y7KkvOhWd}bm!~0_>1W}pnV4NxYo2&=k!27`&1{J|xBv=tf6zX82&J82#G?>2wPt>--9aptQ9 vRpeZdD8pW-^@yG7bD5yudBjVOW-sR~6({wZNV3JQ$+hX(pugE022S??wC-4^wy78=)i-Q0@^>?h#P# 5tG6inOwmOG7=7U$n&r({ki1!VUWpB;62ZI6yT#EKC|3;zHvUt;CwEN0K*0aLY;zol^8+>Ef~-d*55r%LP!U;C)Muv%e4N4`tf_zMxda;2<*C9tko#2xN938La3}7#HO>7vcjM i%N5~H;sMCa#IPk`Bt|qv+{v7|uO#H1N_W_(_#iSY@hLJ)v6*!5QJ72|@saz2eo$vapw0%9@cTlotep>pI0Gm@6+?o_5P J~xDS>1N^ch2d&qF3fwGBEF(a6#l1bzdVUn*ltDr1V6KoXM}MPk0csw1*(;F0jg{?@Q8Xs=No7C?RR= mX_ESe_)L2HwSAd$d0uFls22@qIyU0Z05BeXTxO-l<;km=}Y)9>zl-tRH6Y4}1=TatS2^Qu^H&*r9Cm JL1zQ_rV4iZ^Iz%p+t2o$V&Te-oFfjwsb&3KU>dm@vd+x2-lCOUV=RL^CJBw1;#4^y)fVLir&(FT@V? Sc$@bqMV@zWWucA++4zmJjoMGh_50mr+gE?$1V0m+-2I6nQVD${yii{vL53nHLBBxzOL(CyBcZIojDdM13pfQhVei&$R70PsjQAe{e<*IrM cRcMw(_QC+OQd`nQE1VblUsyUCxePg(7tvg+$ad=nK!5uhLeSdSy1KLVN&FZHvAWCf=x`eS+nA-w=6u ^1FR+7?>(H$d0`ZxR4)lUF?U#eO6h;tyWHxD_?Yho}{`B+42|WiuY?8M6yexa^czHdmBG8ipknP`-UZ4N$!)Ne6`|uh3zq${9n8I_rd%a?g#h$ {Z*d~}^FD7w53oW>?n3`?RUrg44$#eC2ZpkvXB2DrYvuzfOsbHB6cQb4wDY!Ohk(aVz?uQ`_bTP~$Jd CG(7iSmPXP4L(78EZpv@mM=GBS{8OG^uu7jp_}CGMz5u3|PNz}IAf`d654%t%T}uEn)?|0*xAHJ9W%3 N5n>3N1He7op#$z31baWUsj>@HRUN?FF+|+bwA&iwklsDf!tpax2nVhzlzYD+XIk?n0Y1OOchah1}2c >!PG3WCaVA%Q6iT>&4gT>EbUTCNI9$ug%T1(e!Ra9(jbA;cY6(&gDD>ia%p6F(+xOtrn7uzEetyOG^q ZDRx^S3uPlWQ+tQaW+}Go3T%*=65Hyb@!q _gjKx-m-AL0n)ho56)T0zKF?}xMQ$%MewcAQo^DhtS3-t@+_ymHCTVN?FSxJj#q1BSJnCKM??Kb!~0< Edk2Z-V_Du!gC!L(SLYNWx3y33X22HfAn9W+?@B?ZNH;KIjV21~XTWfJD26xZSs68WC!(LKdhU@yqYE ?fxgp>mk)ZL(yqv|M3tWu<5X=|rwWOket>7qeB}Tzy%N#fttQ4;U$V8F}BQvzNEARA*V{Sian1ONAnb 0wSY*7T60H6@X}E7p51l0#-qtL_1SS$qI*cwxgIP1QLx4U6JULl5Mp+Y!)bbyQR!dzJ(ll=KPS4yvFI S2~D(KGntSronFRb$ZU3D!Rtu4-7Xe}sCDRDpw@9NPeXvru{1xqZ{)MLQ;LW}(h)@ePZ7x;FQVs> FEkXn>o=&+ER(X>!D-H0YySmnq;k6QAcN6ORk@mq!wIJ5-)vjQcFzKbDdDn{faE$QxU6d})I87{KeN~ !5X>W9fYA!U?)D*7kIh-*_|^f3cN%+s3@4~9~MR2JmYwgp6+tZ}zxj76l;XJMhmVkHy2O(|wb0F@WW^ Iq=-kYbuNV#iR3$^}K1(>7D@UKD5Hpt<~lwr9OKkfG$TO^^OSRZ2Gm3Lqav|!! (Dth!X9Z7x^Of=eY%Zs=zq-_JDZ-Cl+EUu~07mZN?FCvaCZ95{gB%fZg5nD-tZ=q4*@+1_^~M4R)9;xi%B+f$(@(SxIEv>{RI_MLP!FW4<74c@<0 4!v-4s-&E0l&gp%KVa4kUbyS}>n_xfF5|9SrN{O9?tN3KJY9zQkip*TX`U#dQqcU+RU>C-wnkhtrcH; 1?f1y`VMjT kGXrKKjVeWGf%#g-!S)l{?-2ftKt9M^#7~j|F1r%X04mWv-}+SzY6|apU^%Z=C1DZ`L`$SzvbzBb0~A ~d-LM|Y`XuI&;NB9=<)pjTqHUs^Z9_65AEKz!T=&`!|Dygx%*S67<}wW1}pyBMvn|?)|FGZ4gBwZ;=~ i`KIm6mW>CZ7tAEhHmc!S;|KZ0^KYkTC^SJo<&3)5f_ZY?I!+>Z0iCa#nN#==LPfWVf{|Bv~w_PM;;y M=cGPK7j9`4({7(brla2tnPIo!hGW)3%T*uY^8hvghvIn3fPjY9*6Iu11)PUA3%!$c0_IULJjEQc{1s yQ6YVI+s491;$HR4{l}(VhNjZvK?R;~chd*vR2_4!3Z)iNlQ?)^KR$FpI+gpYCIVCEPxhLj#8z4wE>H =P;JTNDh@8b`h=@g~JvOcXGIe!%ZAEa9G1(IfrE&S~<+;FpI+_9Hw$;;84S1Jcp4SDmmD$3xGQFQk9CFrW$wSni;h{nhu8Qp`y)zT-hsS)d3+r+dA;>xkZa DB%CA&q@Slf}-#xwL)#LHzj~reuk6E1GJ=c`R^H(mwW$HB?SPZviIQKJXApr0(=lAxix@q0w}?I{3->V#B0ML&tR_uI4%O(E5PFcu7)>$n1ZYUI36a}g =i1(Hk@P+R**7)P4I4yRFD>ccSS;58LgmjPc-x^;C~;$BSXLs;0R5_p}hi{2p0`!^sNBzfwyCTf;0du 8UcM3;8uWpN3gg~0~|7v;c9@_aXb~^pExE$a4U{PG Ecx0Y)VLiGFkb;Z__z}EWVBeaAO3+zYg y-S4g8ksB(0)&Yz7BANGp0km1zZELeg^cJfHweqVFpXXc7V%fGWxjyKZiGTpn|jkd|1PHz8T=7S{OHg {T6^hvlwrK0p2-_<+ldlxA2yMpALY}r7(MhB|4}hU~dH&Fq@ElfCmE{I-8|m4e-`EFm3{S+}l%N1o=c 9pwR^BfwY+bK4FG28sKLE2H(KKA{@(cgti-4+8O}90`C&=-w3c3-Yme|0Db{)F5n#i&%>J!_>Ta~=7H =1j!>G%coLZk?FPIX@dl&$&^OIz`9ioH-bS#`2UtCyrC}$)Zx#a2!QLm0kjZH*Jvx8|X}qif4o`=C0i 76t+tL|Lga^}kT>vO8g80B57xF3=Gy5ul%^Yt5cx(xz6Z{+p=v>0+p9L6mBcq8hgX0MA<|Toi>y!=zj|6zx#_ACsJTTZHUZ8_8&(7*mKEU_vyzBtB+j& _4G&*2z0_}4-z(ernga0D{m#%{R18xO)QyKIffM)=FVKqz7c7Pw0L%WY@1NdD9@EY(AfU7nzKji=iRx &&i;01V31KtI2LKRC-JirQg!y(O80EbpHKBxiS-T-n4ZO$5iTknNA3*ZQo?qlgs0~qyZ$TQdv1~`8s% X=EYPc||c_!QuP`&nG!0MqYhVV3~3avY)NLFOOft_PVcy$SH_Ce}70eB&>y4SW;eOAixb2mBR)+cvX) 0pZP$Kzk1M8327??%V)4!jItH4tOiTz^7QbBmpdYilw0e;J#;|EdW0Ve|?6xKhHw{3~w9QBRujP@DOl >>Cdx#Ede;@1>R=?%zuG}ML6k2X#c@J5#YP<#-j`Xyyj)dGvH$ZJ_~O?;Lid4%MM5r;F|#|cd|YOVgF ssJ{+K97jMS^YF-D~z`hvZpf@1DSf&8az`F@>5#SqdG8uRi;HGrAGE#L{{pPs5A7AUApmb~0= @&D0r2rA-bVxcsfo!+7r^>vCMOL5Gmk+!0M7#W(=k?dT>wvh0BtGQe+qEIaV~EF?>WwSj`&BAX7IBO; E-0Rhk(ZdENW%#gB9Qoj_(9`%O_06vH(VZ2JI5yg8@DW?~ho20qRac+2fcBVE;C#r+|k8Oljle0f3Ld 8w>VZ0Oo!P_JAWS`;y59LjTi{FR)hvTzi_=Q-E*4n+y1x06#y?XyQ2@JdaZbc}F;&;|TH0$u^J~ggM+ E;X01vnUY62j&K+EkMIL-kMKOl5#qT5#1W3;I6?!*@jO62#}TgMIPT$poZ|@J;yA)qjwAem;|Qa_W;p IWpTTj2i#d)E_xNI(5$@vl|9RN=K>Wpt6$~TG`w^-utQ;3@8?bu@xQ%^Q^YHIa=PQl4oCOfXz8u4M07 Q2s6eE6LR0G7xN)kZ)hM218Nk>6Xl;-zh4_zxM@5P?2EnR7k&vuU@^|Wv7!~RGg_HBLGcl2TJIr;Ro5 ADNV-G_aAFZQ@ThUZmM?}N4y;AyTzAnAT+hZJse)&tN+Dcxq}U!h+4y3N+D;6BQ2j(iu)p>A{I3GnaZ HpiY)P@Q11xdF^dZ?}2VmkM%|NBpsvFM{h{m}*Z=2UkAh$B!p-=FB0B7cV9S1qH<6aIgX`FNgnfvT4& M^7PYBlU=)Zk;cYG^6|$XlgpPc6aI;;oO%XB2bzM(JqOE!iK=9THSo-c#dGMuGtJbVR58p`#FCC T+UI6E2Fe}0E9fSq*s#Rzf4<9^ukeccAS_wbjNtg1d`>Hh^%CityYU1Wqhm~CzJ}>VQGp|Sg2M_1v9d 734OU%6x>@T4i=wAYNe8A6oMxU7rFHrvn4<2q}78fY}Qy4!pL;R8?96pFi13OILrNb9bfvFSSY5F%@s yle;U?1|N4JyOfun`OCy4 =7E~K-aou`#B&F!Uwpy-tah5z1;OdJZ%F^4C(;gfT{>LeNc|s{q+iqD>AFOn(LeCFeRG#Yohkp3gvgx HKUKEh%A6^Enzmpr$2I(6&g9at#`SI9*1Bki2`14c>Up3!8= SsIS=Ks{(Ewsn3zb+W;0p1a3Q(<_S?J3ctb-2dG^_7$t$nCLS_7;k3J%2&YW?{xfQn=Y=?TgeTP4m#2 wZ1H_22%K`5GYWA3bxkB>j@N_Q09+^z?V~Oo@L3n7Lx^Z Sy4Q)l6w!?U;9NPR}Ikr6=BbH67{gx*O@Qm!xwSE^H@Mitm8_c-Sy0)PI;ny!lIh7weLz~+98Q#yf2ZI;}W_4ghb|_l1M4M>0e6Z=C37^(Ll2S7n>Uj!TegrVpL~**@AmE6$*ZrvO53tGVSxL=-tA<=d5OH*A(8$2_mcw$4v_cXf1eyZdXyYLe w>^*ae{pI*=OXtGp*!S;5C^0`wO!&&M;cO6ar$L2iPe viIx2?*RSDbZH{FS(;B)OSh3t(!JzW=|yr}Ix4rPBpkwzfbj7UemaCVLHHXX{Bj6iCWVnY2)`M^zX0J IA^b52f7&DbXb7)?@HattJA}U*!aoDy_dxig5WW?{e-7dQ0pZ&r{C5z((&UBcY1_Zat=g5_-F_}9Kw%=@M9tT3<$pj!runr?}G 48LHKtd{0Wcn-JeYMcv_{T%+k)%>L_lyCU#WJh!LabxLmcf<{FJU-Q1L!Gqt+Raj|2@jEb2vXQWI)X9 Q>XHv*#5WyW2N9_GwZbN9LC6#d+pKwh7sojFUJITk&P8Z}}#cQ=|f+PT^kT?&N9bd4Vy7dIo*oyfW7x $-kRI&x6v`01Eae4tB^ocOSQTeKp`o-(#>d e69*~4fihRo*TF>|U`JIPz+8$UDCoM|@dc`99+dyOfHvr;DbC<1Tb4#+E`PU~{doH8Laz)ztFGe8P4i RQU8L6F?;+R4|(Cj@va`y0VAWfsVCVq!{)+dVULmUdopKY!or08Pn6>PDSA{>&8gGA}vA%U^@;DKkM_ =MuL&@&^P=6BO2OUS^7UW-`bcA)fTvV+akKV%7p5jULWOUq_w6esV%eva!1}lOLe313@(EubtY%*@Hf ?#;Bdz!OH$+dE>-!=HW)}W{%gi_>w9^79m|!InLWmHzdcTo$8!r7ETH3&b(T4TTOabkj;bVy``jU+q$^bs_zysvrhaV=7Jn{&6?6Jql)~#FVSmEWDU#8>1*I $2~juk#^e40EA2fB?ZHgoITgtSurKprsW=BnuE!QU!=Cf^4E9E(D^0D~O;GL{Juy?VtageV<*U1v+W?AjrBO9FoQs_*TFPufPSN-=P*Zt}cy97I?`8MURdVf>BKSuBGr1y8%`v>U#`YSrt9RK4b!zo?wu5L UNVtvagcuCRSk&XGRlU}qE8M7`>Mb|vx$Yl+1}TqYj?UtX|!mIwP- joG6NT75uZb@@bIk8m{LH0wKQo5Wi*csJSGxOgmeSVZX}oJJ+n}-}QfETuSj6c=_tUpF%=HAS#oeeym -kN)?_o;AsZ_tOI`vLM?^)`hlhR;9pf*F#s_BjO)Ad-m-6)$go4c<|u2KmPdRcj|j~A2@JeuO 4?EIdbHn=B0bS_~MI2@4ox)#Gs&{@TjP$2tQ82{&n~&26VU>`oU`)^B-&1uFcaN(CV6U-W%M#d-v$3I `s9Qw{PD*S@URFvu2Ha_uY4*{#3SY+eU#(cJACMntuzQD-NQ5_RFH8qVE;gueWa9`qH{}>qfR~*RGM{ ;}c&!x!&=8H3V4T>s9{AYx`9go`$)JYm<|c8y!D>{DgxUEI<4=D7`nU4mM_uX3d(_20n$$z`tqJCRwp !g(!ToeED(%_ujpG<=bz+m4bo-*|KGexsH1@M&SKDde7`dix!Powrtr54cTrTJ9g~dsi~>4nVFegG_D 3Vz7`XH{q@&3nlNF)gSXsr3$zQ4jg76#x)%%o;lqbTW0|QnYSd_=G|b$$Z=bAPySA9ln>TNkPe1+Cz^ VK(u=9G?u3hr^=bxK%aI#Zl9&=QgJMz;{KOI-OJE?0Hoj7qqe*XFA!=HTe$%=2j`DUl?^()sYp3kbjH BlHcx%Xn>*LaG(iYM^f2@ZC`6FY(5;$dIg8HkIW3Ul#Po)=H|`^-y$|E;&)nxuRTQ<)eC4(r#iH}E4L pMCb3;lbBme{Ifz5uH#SHpjxkLNn0~_`wmrp*!63{`>D6_~D`IzrcqxXYA8zzMf?hj|SS*Z|}WJ%LBSw)9 7lgwI5xKN4yDo=C*oBH`;q8m<+&caz8~dqs{OJ65Q=a^nRdcfr4U_3EiLYu0R{F?^=lOZZ`M0A6SgUB L%l06VYY{a0UoWhSqoIrIizxkYhE*)DSIlt}L_B9W_$TNCAi|Ce8W L6#>qYSbu9WnmmRC?C$l1z3W_pO$P+8)&=p=FSICCN106@skbCsP9?=U%*RMtHQXD#|{NJ|ShePWEkrp 5NaEMf0`0IL+x@#^TeznC@Yt^dNMEQ`3o?%-`!UI_^O}?N%pW_#}4?E)?aeGup!Qo4hj*7#rio?PKQl 9aX&KF99|JPrC74?YH>^Y)6fQf<@2P*jT?ulJs$`B$Vng`$USl$h=;`mSx1g`ey~LHhD1s3 pw{wIdK-fSHd~TJ#b L^hptfl-)NTks3iE+-W&N>UCSgMLgy?V78h{9ACx9rz>l4LeRNy#Jkd&CQ5@zf4%q{J@TVUXd33+xP$ Y8yUY|Z=lRABVR-eJa>N7Z4ea0r$U1^s2B@lk}4F95WR`CP}I|K13Nk=R$jAbKR$l~EG#q)S8d3mVfF u1iGJ+x1@pYY-Eh~m)wJH^4J&z=1G+_unXlbV0%^Uu~M)lnR3tSr$k8Td86pVXvDlQ4}@#sNQeks~q# 4#Yeb7v96y+PI9*@VCSaj5kKLkfj+dWRc>KuQ<$C99GTfFGmi3UoK>M_k_h2rpfMoU>Zyp=3a90K+EUuu)4CbyMIkF}Gh65G qzKJ8^>uUMHl=t22vdx62h9b+`~#~7u-ulC-^zrvFV+`z>Vn1CC70B*|@Y`i-@#{YsN^8eOTZRAbGVY %Y4WQ5|Nx_~}|LyjMZ8Gan5fJ47_GQO|k&^uN#dfjSpU|^G4x?+qbZDSJ>GnU&T?rl&^Bw3HZ`oYYn(Dh^L74r3ID5sCvN Fvj?MVafIf_*E8+{Ht7#1D7YCd{P!HSYYre4;~g5?k(E#nyeq!Ox7w6D-{Q$&x!*!$?9{K+N2lLqUHJ 27K7C5QUiX5$J*m B{8QWY|`t^CSOP}ZXahU1H;h!o;nUA%V35h-&7$(M0|J+&UtnZBfecw5M+yKwj|4zND!nfdggIq)A4vzx?t`V|R#! O2P%W@eSB2Vj<#D@&N|=ym{UrIdwwwjoiV-`fOv28Ge19qPlP)_*bo3b*;uaf3xs6XwaZ(@7}#rdiCn HU+t*jLrzYP+dFGjC4Tt^ML=DY?? FpY>YA37h|B$*rXSR-U;{@%)g?dq9)vV=bfXGAC>i~n)f$({q@%us1A#MCPRk~71ash{Ej>BFfqd0Z@ +Ei0oZ{R9$C4v`~W{>k35IC4ql)S=(N#i<%3(FUk=dc50=d)4xCvY;c3yL#k3hSW|%q%d;4`+MvWRJa dB}{qecy>SFfIEY;9lx4s^pk!NJZzT$sp|T^rl_;jA9A>K`%cpM5a~{`u7r?Pb}sedP1^m&&oDM+=qT <*q+WpFUm2jT?7(>eQ(+X3UtQ4?g&yBqb#ox@%r(WCGzo8jeGs-+c2;g9G%TZm9ZUaEOnOm(HC#8`+vO XO4j%T0?VQ12=kr{o#FLQ{;zO8$Cb=&In!q2|$_{Y+fNxld ?%3IOcf~Sg&J}AFM<;}wDuJU*D s={Tma%5&vNSRUb1sN8dOC3;afBRZdMTk(``tY^&EX%x# G(&m0&k3mJ{}3_}#MVmSMMS0~>fDL+HZz@#95pmhsc>0c>`14|WDy#6W(?iI~6+UbAPCN0y*DIy9Y!`7fUC=fLlle{4jcj}63y BQ^Gi9(qWgfBtzR-)_3w$#uvQvd%d^0N8DRMC007{|4*^es}(>z9$p8#0PC&b 0!V51LdA2&t1aDiLCvM^#nX&x?wV8PpDpdG)U@wN>?HAoKj61d|izm#itSoascyT?r0WY$J?F1JKyT+ &UE>YgkgCAH_zl{8={~l-aud;BlHBZ~WgEzbfA8bz!o?(mVCD4Nc7hu;tF2&B23BSAkV{@spctU(n{K GkYIVQ5j@tt?xF?JUkps&a~@S_JRk8>^~>;`^!{Zs8kas3Az@SVgj*gxa|e}wOZ#^jvP9zNLmE_~n|n ~$x&j0!!p6tPM50~X< ePxt7mo-C%oN_A3ndl)yb~#S;A>UD7UFKs2|1rpabS~2|C}4fpzN7rdwU-0_k^ZCjjzRuo1^=;<|9Gw c7~(%h`;R02NAVqlIG+2xolxfz2G93Y^3RG+8L=YuKArFBJQk2Ia!yAjupU_2V6R|}eIwQ9cS=Y|xJT ptShe{)hRtJV#N2;!Tyo0VUmh13yj!HhHeZj8S};9@Tiz0R=p&JBKO0!ef&pA_tXQ#PGtKP=s7@cpo@ vZ^RPF8eYL|XcyY!jH=Q$eN_R|=c?=ak~Gfd-+gMIe+`ef8X>GQSn*K$8TEVB70k?0L({~ycP|0cEJx w_|ZcR$@eYhvr?{+R!a&ckYR3)ODE!NT-R={M5nqQ62-oLcNBM??yKE?2KN1Uo%u%$WFT)277%1F;kN 1O5@ajxWMi6U!2(@ENZe-HXol3+eID@1&+pe}|epJ+=$&PY$3tXo}_w{cL_up3A<((a^-^Jj6}zLBH( 5?|l6}dSy!vl~lSoXB-TW2eZHX*@wVq9-s;S>%iX6ByVh-sbgmPYk)lth&-~-*Ej9D+t>HC&kwlek^T ^U#wb00a;{8<;8Qezjn_Cg&ixz){3iwm7W~i38Of#wMm?CCyxpJq_kF&;C;c`fk2`$5HhMhBBRwj5o% 9JGc;DQ*(e95Q*L*)^#E237-2HAF&vGQT_GGj-wM6Q<)DhkL(|e_Ve1CvE#`t?Q^!n&AA&=p2`s{<

8bPh2r<*szq5BS-dg_g;a4x(T#kP+zCll<)8N(PyF_iagR |qPH>D-(MQu(>I?RlW1Tt@>p=T_Z_%@U@thZ2Mqt$jgL0{E_y}OG^veSd895*e}&$J>2dk@AJOYJv)A n|d2Ic`x%?+4n=oNQ{EIKX7>6#B?-QScH?Tkhj$3mRP2Z4y6?N5D{k84c{{8|wL4Sl^;i!bzVj3{qHk #h8TmI3l#~*(@MeTn-+aDk=Ah&}i*dAzcr07%G^lTT?C!jvP&|hDl_AW0`x!@+1uT7`f>Nia$xs1)rkO kOln))D=TY%dTEC;{Yc2*t-o|VU$84s|1iT+>LzryYx7Z> ++bab?-yV9FZOiYxgpMKipcfe$Afwh(J2ihDi`b<8`eoR)3ZEKzdu=1EQ>^52auTZe(PnJoeaQrVgB$nQ3YlHur(%9HGB`wh?*+`eX)c>UCRHw#tnE8Z>BdpX$BI1 M&6rW#}zwoF(16cQ<&KR%;IAjrHU9*-BlW=bp>{g1^$Ay*2*WM=z1OamS7wP5l)Z1`HTr=#D+GJrXMe wuWrwLH)$3q@<)iD$D5_Bk{#-+lK9yr93Pez~|`0Nt$|+Gj-UQGL} 3rRNj6)@;qs4>-QBY+PuB*cv};5Zgg-YPrZDwRHL#=!d(H01vPW+y^Ys0=tdP1kN>U)=YNF*P}4{KWW mW`0VWLIGc0BXJF{lr;mh(hs#}e-DP02bwAr5;yUEU+6$gbT)cR3w&Tkc$}^1p!~TpNJGLL|QIp5#V{ _;&JpAy(rpJt4a4iEG*cvbKGCdXIcE#bvi`ct(|G*lSyC#7@N=r*Kwt;6=ZCw$5L2K~FCKnbK&b!FH& Hn78w#L~1lHjm0@S;VFWY(-%rdEt?q~>IMikG;z*`Ix^|3#L-*T&%Jp6yEl12RUBgZk65Wy|byf|t5? G5+PLfnsN{eeikV!iC7+0j0$R$5%hO)WLU6s$Swmzb<6oN*$*{Mn&%mI_JB$%nN;I*Ztky;`DdXsK|jKMX1DGnL2ovuDpIBdd-!&xw##)va( j^=jR)KS|0|VRj0SP@28)(ZrwWStS5DiT`GS^&_i-#s)42Yfm3vY*d$!$);4#WtZwz-qtWQLt)`OzrQB4SV`?C -O(~S8@e%l}OE%W++_rTFJ?Q9rS)*u%r_agTr?<4PQu6ZXh3^5gOW49ROFvN?m {cC_(!#(z&^wo5zBapK}Klp?Xvd^HdeDYQkZxQbi>k(@b>ymFQcyWSRgPfy-!U6vtc;Erk=f;LXhg}= 8W$CEaCZ8mBCvGQiAa@#(aJ$)~>rRpRN|%{4XPS7BXGG|$!As;NFcvRZx6s7>BYGCc+#vfp^i#iJ>=r #ao*%Hjl(8tIjqKZ1Xy{1}^^Zie{}Ic7WDi@9oWjd{@4eU16gv$szgnLoi^tq$vwyI92f`2+?OnXfw|Gbv>gPclEXlPaQYftf%TD*CSsHNU&|JO7oT=2zD$Ih89A?!`G>ok#TlTb+CLRY&J;=Po_(sQ=%luNiM %dGL(yckqIY0k_9!KfYJ$zrccPZv%B#XP}ejBswWhA6+fcNpcc&ov(vsuQo*4^wF3^(?`x-BnlO6IKg#I_oEc^qQVdUp-ILckXl2%`3*=oj>bZcJEl7>3U_F`9 AnS{lCB7S)Mg-b%yGzp8D=U{j7(%j&X}q#kGE%xjNmo?#)g^Gb7Ehv3W0&zsO+dFwk6|qAMo3FdU+3K x4f=!R+Zc{hS(leP?~$$6N_zQk5oP(MKWVXLQehFI0o+_D(%LUJSjO8`$pluaoG9&El6*DvU7>^4Uf2 >+kf^^?ND=<>wiRPnGlT52R*Ew2U?K7^mx{l^|gh;R!eXrk^55>H2y6Ief2j<-#kY;?vU;l6xc#3mux Al#<>$Y*1QC%k-Xo6O!Z88zd+8OzWTCzxTifJ^LrOj89K)IQZtU(B$}(#NG+%_Ajfp4!gNwWLTT4uL= !~8kjaH-TV#Ka<10Mcc0#wp3rkpTH?TA{&RgNEn&bQ-6f${m$byeiAf2464Hx5bboy7P`#Bu_}V#Pa6 (dO692aji%;*EGPwU^329-WgA&{JhC+{oPKxm|L*>;QYGz&GS3tcgydaKQ#ZT{OS4g^Oxsu %-@k;lz%+GvM1P6*VEkNLvYkT9@Vu{b+u8 t-V|LiOV?betFF~`3v}gOy7nPm-SJfRRMj0qb&p8hCC1ai)5X)x^Qfn22h0@I^$zup@;>FA;+^iz^3L}z^e*?V^= |YQcz1Yrd5gR#PLTO~gx#`+W=+ppp0y(@I6E@Cd3H>8hwLud-Llu_Y|JUjIh1oe$H}dnTQxU0*HW*8q 2HsqeRETDhvtsT&B~ph8|aCC8^4YJJLA6rP)h>@6aWAK2modQMO+T!TZCv2002EK000^Q003}la4%nW Wo~3|axY|Qb98cVFHA{8MNU&i-CAvP8@Cbuo?n4-rc-I=Oebm5HpwT&k{h-T<&osN`3T7<+#&t)nrW5>!j6G4THoJq>>&+m{ zE@U2B`nm#LCA5~7_0xy`vp1YRty_C2yD8x5)1n^KNRdxD4^D|6E`gSM2WGd1G4r?$eN`@Eno&b8^jn q5ERtP`K@8l!J4iT(yI8OW2GxP4ShTI4VKkryET1~6dn|NJ#4%jzu{cGHkS3+jdo`cG1;og;n7F4AZ5 l!apFQ>`lV*CYz6mOc!`wIz5jP51|w<-r_*ymivNi%V8vGUa;?aDw67cMO;D^7`;Fq`!~49iWZ9)<_L `yzQZ6(!VfVO=-jSqMx3K0;*_uROeEs?FFL^ry^LWEYLF3>CSe<+TH(BMPM2K9e9!97&Tse_m=$T#ql No2?0&D4Cc6M2M9siL{9(6O4EGx?R2m;g-wAGFjf!i ws(_E%)xQu5r>e{T;J<@A#*Xu&wPuSS>y7N8bxaUMMepcI83T&H>B7fWNa4-H;;QKZgN&nNB5ih>63V c0;h1Yg0?vT1CkHOk3nzW_=B+0zP GRRKBvWVhm)Q!}%IZg0@lgpfh?^Zp0PS(!2I2HUlD9!rd?g(@ujf>3Xb*~hM32WR+KSypxv<~pdQ*S_ oHd{ZATzCc)a*)%Vwfi6iBPbxvGEf`1UHx26ogTgQx1{B)|c4Kbet4erq{a1E~h>}#p8%m?IisxacsU |J&NYwI~E_RhE-dsQ+}$Qv>Yj97e2;TS=Ako2mJ>&+zQb`anj4Jx{OZO03zGUnu|nL)W~Gi6Q#&H%Cy <*uL#ORjX&%0;~YpSTkMw%7!oel(xe9ooA`udxCu-oN;2Lyyb8ZRr+if;#XzWUuyq$<+l?z=M*xq=J2 <*nb5<{;0&m1PenKmvm$}@1v|5xzg;1Hdr+8l}7_)^bo+mG#R_({j+#3v Dj_x3$nb=BKUF@@Rub1Ljb0TnGKqr1+GICy+~<7J?c?-}uOX;M$o2-CC1c*IfMPS>Lu9g=q |?FWKBo7qvMT*~Qn&)APpBp!O~nSvtQ6u2lu< E~L+Ns#oP0mm$_iCd6b2FmA< &sw9PI)WCWarNuWR<2xJGaK7wmb56Vt~RU_EwCjgvXZZaBPXt->b_V)tlj0`ik;9{NApF m_v5fgIaW9G@UvhV$LH!dh4nfx7D?0zG{Loqefw{7oPhW#3lP{Dj3!mQQv(Q_dM%yo3H&IOwe;(EUH~ &IOjK-9QP3mScz%2?{#j5M7F$KWpJV&~*sg$VbI2FDk@+v}s%7c_;#^1N{2`1)>-`c*i6h2t+xsLWY@ mGBSbpQQTGTb{(~wriatn%7k4(wYrlU_V&*fhl3SaNNL@Kn?17EIcYU#XKR5zv7=Es*1j_FFWe>CVAH Em5dnW-B#G7Yvf~BuK)%Bb)fVb|k~dW@Y_TU-#9B8Oi=k+3!RG6r9=E~HVP*mx-TYA)_nIT@Ps)?0bV$aaiEz(F0k %><7=!t&T9L>sZ$2$17AB1VJ%H>n~|+h$+FpFy%Jw?b@?99mnYyq8%(y;@g0}ZxaX?a(+_Skm8L$5`gcFnu@pjRA9PP~;=4yzY)=rELYi b!>%L}VC@*Kab6xCg)qn)6B5y8Qc7T>d1drFv?#=8`}w`9Cy%Oko0n4$wOb0&Vkx4tYqv>1jTPhM9C=wKgB(xwR^{~hziG_^&0;l+fbk+cb#3D9qhG%?11(CoH(Xy <#y4e@wrg(hsEn{`ZbUh7s!{$Th|-{NN!ZA<3qK%*6;n&JMo-6qe+U`E9hrJkbpi1VyvZO|t)=z%O2@ rNxC{6bpfC~;N3dA%=*BQ|4xVxsH$r6iaG~buOT5OATbi3CMnh9CWgls#A3j2-5X1iA7_?F27%90;wd &_lhub46=ng)ilFlwg;Wt~lo+fQzW$=y~2Mn%AO$SYCPv)~Ro1))BH8@iOyrup;7uVWx>qM8ft#}Xq3 A-Fp5+qeu2j9SQ=S?kEh5_~>H!pb#R%M5U+;>^k3(}Q_2FERG`816$C(ga3xfURQc6Bcn_cQVR)&1f= 8u$I;;fLFI590mR-QCslVR3UWZtu!#`PovC$dlRc=1dsd#tmKUw3&8&~Tzs&JDnv@p3(Q>6bzC2%0VJCD%r(KL%; !PF;XedVpy;^q~?5kFnRl4o2CZpUm`T5OwzwktXX8N68F`;AS)-;bu_ZD%>f!;uHd^>(VKRkL)$_EW) qRTqX8;6MiyH;-HdOE|W)$x^p{BnTXDY{!PZl94*Ah!N0fe4JB>C%N<5E>DhW^T}%#?{u}nNt-{wVG~ ?j~iXK=9n;M^xx<{IJ3aja$<1t(L3>|6&<@XK490zG<)5Zv%?Q4%4WBdG$kZXFp}b})ZJ)(HIiLB_L< yp5j^uI2;Blu@Rs)Q8!Lyvp*SRhemsZ^GSV!Y#QO~RW-hL3stII;h`hA(RW 8&;QoP>~b)Tl|@nzvhuiGLEtvAN_DJV}mCztI!a|Lf}72^q@jy05ht^6T&eheDW@4#`VwmrRCk_Temt X@1n#laVh{l38CS800-z=}GuAX}hj(@*;`xcKZ{`oDrkf#Me)I)fEp?r 0Zeq&Yk=`IO>51+W83a?R2rwNf(8)S_|8$QITMwL7HR;#XY0tEue?m>S=x0DKzIs4_;Spq(uOoVE8h{ 43D8oIuslb(xF0+9fUpY#abK~c7gyIIN=cL1J0rHfE*>b(NM2`ua!T ~PU_!<;mtI6v#-22nvdqSMdw$4Ly%;S%2lnLy$B@&om96s(c|-T+jpQoy*JbNJQ*M2nc-n3gh! g<8>d}P=>}7QHkP+-1VCkPs`+FWETTj4l&$+>y^_t;O@)&n-@@-mwXCCe~x>Ecg{#mF;Y8y!-*~p$_J if;Qu52j>MbIcCXY#g&5>aYY;OyTE89@6aWAK2modQMO^z}aN HvS007kk0015U003}la4%nWWo~3|axY|Qb98cVFJE72ZfSI1UoLQYb(6tP#2^rc?|llgCrujPz=Nh9n pB%?J!#B@3Y(x5Hb9M!Z@VlorMQ@#Ir8uIR*l<&Ox4OHM5Z>YOPCLY=e^1iL; Xk>Z<&)p9CeyJJZ^7Diy2x=r*;n{bUQ5-LaO2HF-{BbYkR>q}^puT#Dm5WeG?8fWY3wyFTAlmO(OykB -4N-7WaF7q-A!9{1_JE0-K1_KKYLtU`=Pqf}PM1sW?qN~lc&V9xtGg{)f>&9w?*lU3JUYXkh#xs)NEx ~)TVH?W}{8%-|ztEx@Rn;F*O9KQH000080A>M2Tpd)rX*>V`06+i$03HAU0B~t=FJE?LZe(wAFJx(Rb aHPmUteuuX>MO%E^v8EE6UGR&`ZfIE-A`a$jmLsFDg;UP0Y;W;>t`@h>y=p%uS7tSFp8JP>PQSiO0t) S#c=<0f?ia$prvVO9KQH000080A>M2TuM4^Yc4GS02aXj02}}S0B~t=FJE?LZe(wAFJx(RbaHPmWNCA Ba&InhdF_2`ciT3$=y(4L40G?QCK;KMAe%Ks>X1|%wWt66><0h>ASl Usv~$inTC0so0vj6}8~X)d+2%lyC)tO%XOJvUDx8#gNJ`Rc=X`WLvfOp@c vrDcPQ~RoyxqDGqK8NvJ~~T6i3Ts3je4t1M#CQtF*|)qxga7VSz|}iu!*C2$;Cizr~+qAx>W)zSZK>SmIC?<6Rr4uN>gr~V(P9!xUd|lVe;r;u!x3_UZh{i>E bwA@m)%~ZV$Hyn<#|MBc6@Q**vZ_QW|6`Sw(9OwOBul_$noI!0EV&g$DUz#F!ne9WTyM*?PV=jQsET= go0Jlu%+jhZ)5)rK2&FND{@MkAR7ozPqjNDjkHptU=cDrh!1!r&@!je33-Qy@+1b&_#pw84oSuotrzc NF7o*b?c=|>ho%~aLKRS6b5E94)&B!;)67dHlQzW6BA-&F}bP$*qj8L_d({!FrpYW4F48)w=}oIs@!nn(MSB8a5os;T72s6lFb1pXwMYPC7(rkl7_+?v40@W&gHk3l8broKjDTu@ !)wK@R&&soQH`U74VDs^aUr3vw?@CG}edo32&fkgpaq{}2(TCZbq1XRds7#u+HwWQG{M3_JmIZYN)a}gBjulO%_)YSt}N!y4nK>Gin2Ruj`9Ir?I=2;uc3DL&C4^)~ggI_M U3+QT!>jZyL=lRAO;nr&%_@ktktG!+(n;UyEr1bC)LHbvnJ?OQwht&d1Ypk2fqPf-dJUZDC5#gt%1A0 F$qzc=*YqM|)qOu&6*Bpkdf0d?qb)CsK=3zAf=D_}$H*51Jh#Q=&)!w`;7NTA+aptOTy*&ZHqkKJ}KOQGphV0KzPts}4e~o~ rn)jzmW;uR32Pr6FtoZ3dzNts2>hIN3SGia(;jjMQUR|z-^d^7|7MfwBdrHWU=>2h77A04@*9`k-1}; ?*hcKp4b8kFWlXX0XchST6|HTi0=zG&FfzelL2W#|9-97_fB)>pAAbLuEOmq8jvP!erIA1L$QoYqMM= -)cfa$EMu8?ZI7y}Q~)zC(aK4W0V9Pewn3l>g?*=nQ&UR557iv;-D|dDx4ruhBq6_ hmhe`dsPx`PtLa*WK03cdCf`KT9WA`Sg5zcKr1C==^vL+UNM>=!avZZ&88F%p^=TAo9JTxG0mn%6Kl- BuQ~5k?~nI&jYAi@D)zNF&n1y?wch_zy>3eB8T_< p`RKSqT_@&?}8F!p}G%YYgE3m@IVD`mYZbFzXE9+u9k$yk#Z6(fl5cOFEmneH|MBgtb(!}%db^6B~4& QOA~mF2QbE7|;&R2{>6Y>Ft8<*(g9Dp|tlZsHU1H?9rZ_Zs?TYTg#*O~obvRxht*#+A>$JANuY9f;4w Pfd|9jHdNa^>g|fu8CGUut^RQEL0u52Ks&i-|xhc#z2GVU8ZOhutvG&SuIdpA~cu@s;E8b--l4?Y89J ILX9eU(kX5}1b;pmonM@tIxNZ~6dH{94UA^|hQ>iWgDDP{B++SFv!jcPOrB4PX4L|7!nbzZdWKU-tT6iG6r?e(_ZFzv{hsIg3Ajd5 |3Z3MFQJ`Xs9a5Glnze2+iwM`&WWs80-*dTatcXrZlDTo_%z^yTfx{TB!0S3L#hKb7e1|DT9Z_}Xcf% +3i2t)jR=Z*NJcrE}pZa9zk3$>YBRU#+(Ex_Ud8 Gmt#~+bb+v_-_~B&!w%hD5J~drqv$3PhW@2!~0-o;Nvez*=m`EqyLs!zV)`4-mLwXRn~q34l4TW2WpJ r!>jHwPOm^z!64sW%Upo)FVVBSq5~)8lr$;oClQhZ44HEPg^k9nya^bxSS#P>`>#A;*kHB !RZv2-R>sTadi$IeiDQEsmIelcI3Ugu)%rMdRb9?humN{?6Z0SylB7@Fflq=a62Vb%`@dAnsg#OyK2Y?>_c@``|=Xh;%F}R!>q86qcTr2)Q}u(sa6^4qP-9ufJCu 4#ZbU)+Nu#EOx)n3X^8k-Y^bNpSygqnO-oVjyS QyNkOPhJu%HIln{dyZLoPVl^pc6f;mV~&9<2pJv9-ko!QlnQdO%ZIvObK5{yVx(hO2sSJ-nv5KyWt9A `*RVl@UD~_)q1OitTt8$7`_&Uj*-gq%A_+C>xKxne9X6bw`iQgF;M j0Wr0!6H#!5XUIHP%R`Wl>>3F00dJruw5XN!gV*VY^-vpi04>!yp$1^6Vxm5Mps(5$FgS!+0$i1XYnM 4Z^q*c#b{72-n=Hpc%`t3^HYn4J|9rghm9=t}d*YsA$DR$-3m=4aT<>Zz6Xsi{&ayN}pgb(zblofv6b &=ovW{ZIH-Y1+pcGqXyzOnJhL+U`GH)Ej-g%uRjp3C;&{6w=B7WxGRYpH8T5&>I+o)iK)?i0|#t+lYu 3j9X{f>eYT5PRFAvK6qcJ>=OVtSK;g5iFO?2(SwSt3Xcb^X9T1&WtjyyL<{-tm-+1idvxSz*%A;=@Ck }%#XR)d|aetsgHx;c+5VNNge4iE56$ZGG2lU*AFSA0bsS3j2ig{K|RV836-BBAcBbd_4tV)2vlj8!Cn rx)QaITnX;$g4#+oALGpEvwe=v4z%d}Cqx9>7Pd$ttf`k!HQ;^k|!z=F<~;R0cEpi^BZQD$dEcuau{NP#3_>T$oY)0iJE2%>ep=9$iN)(x3Rz#uK%BmdQ+w-ZTBEzN XHIKTDetFOzC%G2EGYw7oe~&xv;RaKd*4()x;l>6f6#JsDKLdMt+ &8Ia8bJ)XetrIgzvZ&FK8X`qn@{snO6%J<@Myj*(pip+>+1Ut>d|~Br?uhPGkkPdI(=htv^X05tT=7u eE1d~6??cr16Ahe>4gRL?WGMbAI)h&|2lasQ7@=v@hhp+OTi1hMxu_MfSQ@jC}I!g$aDo`l64}-O%U8 X)e=7(zcbdZHZGIK)FV)h?PA5@@TX3NwSYt0k_(^Ku|7C3b}rEdBtN|MW(dmt*Z9>_0 7vo7GZWr?Nzuvu16DAwJ`ORm1&#r9RWLs#!+@ZqRw&!r%lOjUH0QW}_l`xn9l`wPv^~dqMF@fGU#L;J _1=5re$Q59DGAHj>u7WKS6v4FU2OMHz45M!oe{RJyD0w2a`#_mzdDqx?2>?i8+}=_Z^|pJmzv5Jaj}V E?02vLN~z6QsuA%`&Mf>Fa%O(3mMFa!zZ#WRti(ffsCj8=`Wl?nNh6OvQnFw0fW3i|Lk4DJX^-y40g+CM-8 hD?4i5!`}d_LZ5UXzz)u}&6ehtx5_4+4y!1xZ#f>~i1>wOzww@M=C(m;dy{=W5Im`-Pm;G63zZ{o7u( FP?0FdTkO{zoi0AVyzQA1&;2OM6i&d4aEuK`+%*+qP-;v#2SIhGm&;?N50Qn}+QeCf2jO`l?u59%Y>` B!TAz}|fT(6+##y4Q^-1ZMJ*25_Hu^no|oplkrt7BDODCWnlz9&`e#fR4W=7i a-sGW>KegEcawWtKu(uK9A&L)mX!IZ;s4+skv!oA$ co$jkOZ#vOUm#t-i~tph5rIy5A9s)eIbtIfo}C?ET>NwVK8PW!X_?Z-nLm>f1Hr_@s(vdI9Q+*{BJnVwfxCy( npJ0;5(9oDFqu@f{4xv4y@X)H?6EGkgN0WTL#?rIb9=vz_weVj-8O~hU|La|mb=x{p#fM-K!2^~!U%G@k bFrqeLhYce$Xm@h3MzeI7!&}7N?$8!Zj9wCtU@ToTL^H$UK(o#4vAMu+5~n2^fLUf5aJjD4$Oa2wloK E|!nQQf9o)$>h&Rv>ArNIs3@}%~t(6kvHr+P(b+|iYbb2!0&A;n{a;DaR-_EbIpt|&-eXJqLpSo=|N)x-0KRIpGlMoqJ#lGz%yu@3ZZ(swDwKChB;Mn PC!&&ESV2nzjo7{x1~&w|ED?-f!TqtWPHX1?!dwbm@4Ses)K-WAP<&(KWSZX1&`;~c=k9aCt|;{FcJX xe!6EUegY!AyeroK?*@2bdxnJsCe8eec+B_7aW-9E>9%nA$k-g>^ac&Yj2A>{M<3X#HJKbd4O>O%_Cq*rrV81a *-4KNF%}YreF7-51onuwoP8+abuhfyW!R)| --G%HJ)Br;phMC&W~ibjrK6FUc1zRdAbYK$_*WT+D}S%Qfl2>bkhib$GsU&lQ6z&mfMKzm8oV4)w8l6 CnM~{Dr@d(%DBt@eyvU`DoyNQMw5~e-=OJ_{zpKlySjQ5i;zkx>uRMqIrQ|ebDsPR&-eCBd5sk9x^Dw uoQ3X@ln-dk0mI+*Z}+8+6iiCjT3J*g<<8TjT;H_ffi?2RM6BUA;j8^j^YDb@+n^g7Z`J_ZWc_`2+|^ Hw#Ff}w{5bW!i#kTPRrNVNr|g-7DC}Y&0D=O+@kzmHXS=mfOF&>UD7tZck@wO@HRWGiY>Ogt_T}>ZYy R~Xwxq3UH4OWTbepBkF4sOosB)R*Y23vu)l-dX-P{rm{L?)rjMx%NlKKGCUz1Io7l3A!np~@*@3qYSO qK-@L&z^x26=&3>}H`l$Sl9wwNP2nvQ4fJt*oFy)x|@xm^X&*+{(>k+jj?Xv9C2dV$E?TT(Ct38=PQ) w>as#phOnwh5;w%HRJjh#J}_@peQFKzeVi86=n@<_ZPSe`^|U=(ydvwk$&{wr5OP%6hQPxrT14oiMYu Ke>ybvSSaMx#F3T@0Q*-*j`?W9=i_xA)Xo5Fny$)gIEourtXinDel+S>$==O`3A65oTiQ+S>Bmj)_6x $=?|8_?!blw@dq3FZrRAz|6OIn|5Psc6Ld(JD?Hiw!5AZSD))am;?GflVNPIW@xKi4t_;xp?#2pR^>} ;O+&oVdnkx$66qV{}ib?in<7HVaWm&JcCw%$>GkvKjI3`{401UBcytayI#CF%Ga+3nAqzT&5@HLmqUjOuueRlQ-tzRz@Kzxa6Aqb !UBHNSF&ljnEW!NBx0ht%`rU|X2N=58izmJwsBuQF1}5E(P3c34|)($_kXi+`(0%|#Iux`>M?Qv0W)G AtI031CiDxd?ko7F9(z!x?^i`WhJQ>VFWLuXpR{wu$}@eAw|!_n=@1CcNkTq8f`RuXEt234q}eKy2Ul 4!Nix$#vzMN+!tn8)qI-hD3LNyb*<+uSS9AoDwiYF|-ukP;zEtxPPb?Q%I-_MH=07VpUj@<}`S()EOC |C`<(M14UPBWUH`@)Ra6c_^Qn9Svo`Im3#xO%Ip^bzhK$^-b%VXaxL*RLYY&}rNE|A%p1c)#c(nCpgiX;*2zQmHO)=|G0w7iW?P3e1$rtD<8@3f_;l}X?kI?JH9~%*5<`zi=^OWY(Y&DZ(fHpLF17BclA15cxdQ;Y N6A(R8@R(xGIzH`L3th!@t1HeVvZY--(FxL{vcz)iCHz|uhMQi3bUw%4kXE=SRkZXS;Vz01kbeY Eq~+FR0$!T#l?BTlu-5Q`O^EueF=GDlj?RQC8unlo6kr|j-@jI+}Gn?|~KH2S$OR6$Kn3o$eHJB+voM UA-yY`caDkGbM$3z9#&&sLKREXIJHF#IDl4cN+@F)J+95VDWF*{;L#As`L3W3)j?et2R1XZ9>?F1gF# $SQtGGnwo-61le1fT@MXiZf}o1kH+MX10g_f$wYY*AS#fx)QQ6VeXu?D_jwO+iatT@0pTA8vM_d?Vk%s;DvzFx#DtS6&6<3 Zl#v>1jd+8%}uY+T-GamxmPUFf+JC}4=tEf?*#K$R%Mkyt G`#EZhWv}OjhqbAc>Uxv^~0y_q8Po_{UG(&rqbwD1Ot(NTYNvMy$6-FB%a5I{IoZHgV%c6a +JYO}i&Rp9J@0%30I~Oa~z_SvlU#gFB0DwG??%#Tg8{&%QLXzaic1$A+{l#_%aX*u5>yuGBhBxM5}4% >5Vdsc~(NbTx0xm3jNs-BGY&%XpYsEi$<)y)>9nbf(vEmZd(ejpJ#nKef!`A|AC?dV22QN8Zdl{4F$- |5E-w5MIT=^i-7tUqS#Z?ok!3H=8QZn0r;|-KI)voV;r4ZK$FiI8{SGhKi28eV3|=|2kOJ-(jfh`tO6 41Don}{lKRnh-Q15uGzfl=qr)T>uB>1D)pn7WeqX(A#rtx?*j>5-PIMbL(24K6{7nnHDPYem5n*U{gp WF&^GC`3>-Jr?hZ+$gSn%db)k7Ue>DDDXTP>3dA|%>$w4teqo{NF&O4~iVvVN{CI)UpFe!oq-~7qI7c uEKdKY>`h7VO}4$=%lyaOm~la|)vX_M}E)3MLp$xR0vZ1S21$~>mCPxsU;RQF>IIHlas+u+*n0|C-i8 &fEq#gsm;*N@fRd%Z~D^;P32xa3c*5upu$K?BP&k?pp8`A<7uqI708kIh4y-Jn4k=5iK 6t^;4*nIr9LLDt#Oj6K9&F=x0H`5hRlqv5V`g|R1OTfJ&~64p_mF26zHL_1DUJ-2|^m~EiQE>zGzz0v K^RXyCzL%K_)RVSS{X`1|R7Mk+woE;BQpK 3XA6?3olG_bXeb1a(YY)p({6E!`fa-1dST_iz*G(dcJ$(L_bOk2zocRXtu2bR%M##lR!Ooszu=1I=8G N73syy_cCrlrDQXJZ#eV<8;)2?u#of!OzF7wzb>hk;~-hbgV0n9T`hHvAJ&K^gu%XLzD(6A=9(&R2QE3szE<31${Vc- ICKF{!mT!QDpG8-2bbQRs-Ia44fN#U)N22Tu)sGCCCtBDAUGn!$s1>L$nk$eLUbOj@F;4X3Mdzb1Mfq jj5YTVnx9R)u)6f2l~Q4D(KOI_A}Y30yCwu-_!q8YW<7E}5m(H(ITf4N&j_HRX4+;5dK+xRP($S1`^#?!Sz`qJO_Ke|S0p<{$0vKXie`^uA}c+_KwL%{Ci$XN`kaRIT``ELO{^*S5A 4qu4;$Wb#0<8RgZANTUrL1Ix|dwUNViF{s>ZX5l1Jft~I<@Q$B$AcTnOr_D5WzPJ|;URfP?5@fx5$DM p(@3rGzeuTH__(QAXP8OX6y@a&4V3^PuhQhBUF+R*j8Oj?MLaFUpGSqRIajPPCgg$sgLg q))Qf0^Dfaof!_nZk|9IZEwYKcGwYVS3=}45cW_RQ-bAL=p6pYPwfWrM|z6^2XbY$lP8h5SLNF|9NXn >amm%%X$IX|-XqGCL(8#qziNg%+-3d1PnBZiQ7HL@KXmV&grczu>3GRq^2@xn@bkL7gIxE8jisvm#3= tJ^xHAR%sbC(zyG@s)34J|Gn5?V--Mt$W=45uf(A&i3rz#n8nRlcSN=_?>7G4!pOd@k>n>z#O4}0A3c 2lUo*j*T{%C8YZ-abk+6>BOG9}m;*pv{Va|GWZTaE$t{>3kLak7QpZ2uC yV<%d>fg&k%S>L_QO-LD=7zI^&ZI==-pdN*o{QA77#u>?HqafA$hOq)!oEvC#nA7CkD~<^C$h?RM)q% ?l{40Xl5N0^^;6{_B-i;W@h2x{w-T)oiZs-N6X_pn|L=F}nm}3El(W;&wd>-}HU5g#N<6EP }i**)Qy-?@it aSuC6V>>U>==|G4uz#;cI94xc-m;Az?wpZm~p4NA)J{NkH~&v}d}S4S<|uv*L3ABz8Qwqb}I22a1rU6vm PMM^1L|UREwhYPD(QY4>^UB#nMjF=z+oIHWrzm{MI+sjq&Amh?v4Lg6_lL?3^hEpP-RJVEo3!KmbkqS ^C3*7zhr1tU#zk^J)n_S7ky%un*|;>9pLS(DP6{u%UhzN2M0%bxx|vPp2mHZC_!p^@v7skkSVSr`b62 M%*5&j)hfNpscS=gdq}9X$}7!Ksmn~$vdP#YdYqM=cF^NMG%Vlu;EX8I66I1?c$yF^!U!Sd26N^jI*i O+YFQyt0 HWTtww}JC-ncJ=lx?bXlGqZTe7|=h{K}kWJ{ID6C3V`8)})hk58#we9m2?9di^WjhufSCugukjMdgH_ J!rF{x#57MG-6T3bO3U#uU(#?2&ij)dqz{+NB__Z;BKIFi)>b)8n<&qtH~;_S38jP9O;%&7QWZGo>S9 Z&-nqK-JT`oOr`E8^3pkBTrbXWC&Y7VqS_T@AEQ^TZIM)Pn<@8hQL-Iux$X=ve~dAQ4CNo)2(C6*3b( b$GF{*f*Is0G23LL$5^v?8s%IFNKeWzD#X$J!&6vB~13*Ym81M4XD)Z#{$CKwzpEkhmiN}goh(9IGKv `lF)7&W`aRH^_S6*1@sdKag8x>4RCuh(2i9Y-1!CIuy8;f-Iwz|Lt`W|;wZCfHO+H0Agw&`lKnKm=kz x^GI)KGQLP<&zbso%|5Ri0S;>hLDh*1Mam0qCKvX7u}?Vzr_PN!}HyK_LwqqZrtrm)VG+AbM}6_X&-FRmJXPCsx$r HTeD#&X?&M(a7ebT+MAp2Al;}o$+fcjP=ZZ~CncT!AnC(o?T|Ygq8wYJ&7m>SDd|F8+q96smBf*P9Nm S`@1zI1f=B)^FwbwJr@PCvgQ6|6G@+H&9Nuu!KXMz3`gRN^sitY_E$-6=GRw{|%zPQ+Iy~|k9&OS+_K 5vWnn|#Fzd?1~&EI;n$wrOmvaHfD=gRfnuIm(I2IOvgk_BXU$aVTx@5R4fRanPb7?>cg}F~ nZ8Rs?co>ptQMG5Po=+&T))hvPDU}S}y{Esm#c~5Up3${jJzaLY{CL+T=sQK818W|CjKk7(K;8E=M|5 5EE#8HuksgR!@+$EI-6}~|?k&3Dx0Hboq~L3e>CJs!uPa_v)Tf5D;T$Sr)N!#f?+e#nagY Fuw9Xx8%gw_Ke+zBv&*DAcCMZSKuBZPaDR;B5oLY-_>pjUaYaoqg~A&4W4Xxwr-_lzC)^xRxv-l?mS}NKeqxMNGzeMmO62}ZPMLJ^)OM@2_Bc>#ML$ZA0xLE#$IM^irv#(YO<~noBm zM_$n5UVd9>i55#GiOmXq)81Iv%QzCU$bqTx+Jf}m0m#84?VyPV1w8W(HZD-01evDo8)Ym49pW 7!Lzev`im`+zE&zt)|XPvRc?102@8VjCJpdQS=NHs+C||ED^L5T-mzrDoF$Fo_L%Us~KDOUx?3!c>6 Qw=#+VhSA@{Wl26D6BADs1jZ8E}0F-Ma@<`4nQgw{O3fpW&*9O`Ovs)Fcd`X*ao`D&)X2;3yVasHTao Q24Y?^%LrA+;kjNJ{szQ(m<>qN*?$HTICO}UBe@>xv^G1A@{oj`YhO6~mV@i~j^03ciWvVR++{+<;$S J*zgmWw#svJKm7DjN0ecEsH1~GNSU{r9TasYm+mezMZe>C{t!b9a^n`bSp3itpl?U 2!U6j~EJkt`nQcc30p(0uj(qt7v7^Np< LfwW1!*Vb0zs3K>5V 1I&s-AaMN>*H5(at0M0~r-G=u>*v(^pjWt%7j{pD{w+)8(HWfBpPhr${oJ@p-k<6gsa#dM)%@j3ueSv N8-vN+1?Vc}0K6M{0)*P582BWuZ8X^!~|$O$EH^Os!=w9K>L(x7ai><>=txm#WBV_2U=#|Fz7P08C|w H>a^0UxcR}luV}FFkSC5uFI9W7t6uEyH(8E2Qsy^uFQ!J>?gcQ?GPnjGw<-^w#oiy6=kHK`3a(%xSW+ Mx~HyfpwR05zJj8V224>_DBM|0<2xOn#a%e?Xi^Ri9hng1Gj|qQi52W5cY @LPG-hTm5O9KQH000080A>M2TmS$700IC20000002=@R0B~t=FJE?LZe(wAFJx(RbaHPmaCt6td2nT9 0{~D<0|XQR000O8W&uT9^GNyrD+2%k1qJ{B8vp!Tvk4FO3EL^?sAkfhxQaKl&- T=u#DyY>2-F$9wU72Zs7LY_q#8*-){fN;BPlV(LOsHpq+Z?{1j*RaEg8o3&w{5(o}%i20K67e!-Zsy$ k0q=chDATyBEkPjhF}mj^es^D7+vJcbNjTzmvSr~m#G+30(BbX`jT8ML#7Cp(WWM%%;F?4MnakNDU|{ 9_Sh82pQyev!Q1(NLfvHrn_nW8W9>yQBdA_@<@vy@l}!k_iKV$w$m8!?Fu7AQ)j> (@p(;Lbt45Z}xppg3&9xPo8y6|A99=}>T4Ae6EXyF_W-Wy^%JU2 LEfpAhF!5`xbUCZT;AUxTQ4hiQRo!3k!G@XwrgtH5?ks5TpGJCEB;CrX)ds&DAmIp8!0eQVUD7oGk*w keqlm=cE__Z=hE*n!T%|3CBlb=$7R|gP3cS>jtwF0@_l@h@aUGd6Dp)-(GUN(iS))^oGRJCEH+)9IOr p^-S$1$i^uoWub;7`7kr8I}cx00qJu2roVhaFc&=1s{J>>9PJwE(hJNS&8lZbh*`c4P!`FDe6i!^`q_ m+b74v|oFKrGQfMWhsa$xh$j-xgk66uN;#@ePzbnd5rglcs_P(~S~@H5zN1b$Z(XiADx1R4{|4P3P$9|mZyJhDoxOSu+RE~r`)%3f-5gS (QbY)z0vyXVN+B+IlTRCRtz&E76HOPd6_0$$upl6`5$-D`QdlN4FLxx~F-{{T=+0|XQR000O8W&uT90 ~hhT9{~UWWCH*I8~^|SaA|NaUv_0~WN&gWX=H9;FJE72ZfSI1UoLQYb&;`7#4rqo_dZ3`2_(dX*cjko VBrN2veMLT!=-kWrYCrNqNM31ccoMO{i$R5>nxArUa>`?$BC^IH|S4X!Go#4E?>sIA@^~7^L0}IiH=?)NjFU)rBqlby!I~&S}*f2;HTo_2MMeQT7O}bTZuqIH8?26F ^k~NMiuRllTnJ)>&G|N$SF24oh(1>p#AFOmQ@ss9b6CI(w%HM60QaUQ>0o&J-*~&rEtkr S@IQCC$~BNg>}yU)3K_O9KQH000080A>M2Tr|@aU`GQ00B#Kc02u%P0B~t=FJE?LZe(wAFKJ|MVJ~BE WMyM6aCzldTWi!n6n@XI7}JL)G!0t?k-`eq_Mr+D)Z)XoEVIc;cVu=Z%uJ|N{O_K*?B=qut X`8b=2i0pXvGqes!a5zJENr8IhuCZ^~cjjd|NA&F-f&1CW%E}9qkxM-?s0`~s$;4)65C@MJBn!L54Cq 9APy`+Z`!K;KSI7~F~3ZtNg9ujRZFtG7y_kuoSe6YgADcOJR^O`Mg4Cst7VJ^Kjd$B4gl4q?_%eI%IO ha3OWcOU?rnYr~(kqiC6(zTIjeq=%ck@cB6*Y-BoMK)bZ$cU$b>9b=MhUWrv?*E;|2=KZHdm1%@whKD%UHD@N2cr9%(QX7R8LLD^Lb?j~R-G+EPYqo!I*=LU$&EqYZ5_rc(j}1Kd@IBd5-68 J*YEnysjc1he8`21rWqOI#bw-h37$;^4M8G%1QIz_V5N^r;wj?_Pt{ZO2v(~O=-z|_%HUw;Wh?a>_SK dla>l#Fvc+gJVJxzx_vDUW(bw2l|k6bpJm@;eoZ1)^9K&5u5F|#RU<6~`-{(D`;K^fb;(%aVfoUeRp`!3eo7p7Oz6DFijv^z7#8elI #pwgV%449){{SkFjw#Jw!IW^W!}{{jsFAehJ!rHG#3!SGuD&Q{5HH*gnuV1*@3O*as8MC0`VnaP8&%K ht6HehKvl7vSB)s_N}dS10tYM(OV)e(th*SWib{row?m2w4p3Mr=<~_sRR>Z+%4bqQ)OjBoOEwDD*wo au)VQ@@|5dD#6oY!8te_WBb64+wsCU?%KJ;73J!o?F=Umeh26Da*#hz2%;G0Pa>?yHa1fE={{F8; U5`jcKc!Jc4cm4Z *nhbWNu+EV{dJ6VRSBVc~y@+i^DJshIju8(J6skDV>fC2jSWwOP2Pg;|4cY4udTjSsn84n~#1_FUFFd =amQH2s$QD|KMX{QD|ta;Db07OrE$J7|5z>8)){0V9&4JBqLroA% H(u;1-I!7*kaR=BDU^ZdgJNm#k(uqn+AP)h>@6aWAK2modQMO-HQ=K}Z(006!-000;O003}la4%nWWo ~3|axZCQZecHDZ*pZWaCy}lX^-1B_Pc)ttA4Q%+wffOW{@e6%&|>(GAWWtP^@DZv`pK|$dXo+=GdVBe cvM~iKHkW*`(VQka$Fq?>om!7G7C8i@=hq&uF}4y!u`aOoJrOX$SzO_hClY6b9C_Fa}i9AflX;GxEGMr4gO6Xqskh5kA7 u%zKRceXlcBWKQQv&ZilJPZ=8kh%}5?*BgH-hQmYlsW^h4PsL&}WcdH+VB-0mPDdhmeR1>hGRu;z`#} N|FaBwVz~gz|E6N#Rj{y@blSPsd8bxARpT)2M#gegz=4?*VESW`Y&0$?f07wCaf$CK_4<)(^agFP;Li 4a&yhkj+~##`iP|=jXsynt;@IKuXCx;6MT{?jU @s`)kdTvt?~3&tl*}G?L7uOei3E8Rz`$nIR{@KJtu)Npg4kx%4boGzI-m4^#$Sp59_&Rk^g*?#8>})| ;`?G+xWJibWGGjuA*4)S9Md(c*3~od$tZXk`ADNe8dul*5Z}egLrj7d&1jIb4B6A5c@lHR@*<1LeaTh Gr##5QG#C8vJnIqpE?xw4vm}X5^~DWe>n7P8iR@KwI*>s4SpH7@5?@-xPe@XiYY3il#tjU7Ap8IvuAJ {x5DE|zt}bN{P>i+Shi6|-hsVGF;SIpE))Xd}YlYgU((@x0FY{GbyqwCIGZuvO5aPt*9JB)qe;Y^4@r-Fzr)N~I|j&V?5NEnbq4o{B!y(kS-Z!hA~uz ^GBd3Me}BHv1S>>5lL&09B9l|fzEPCBLt$=>Mp1)I)h+hI^B=ty`($}?-+0e&JBEughWZq9>C}BfdO2 dEQpHz4!1RfcICMmSz-Q!{7C_P`Ge4$qzMlNVP9&)&RCi$D?rzK^jmlVP-E|%*CXD`Yw`b$H!)c=gtYOQe@Nt@wDrGcLp%QD;GJPFoNJ$nh S9w2A`Vm{?(()>!GW{MOT|-Ch8nUATiq#bx@UhIa^0e}?Jnn}xDWR=^YI}DPf4qhGmp6)T2gNFO>2B1 RgO4@==&2Ai=9)pm#-suHL4)F6fREEO&Z+d9HMAtslOybsu*+$)f?D%U0(DWIZ1+@8vjTJ`={(X|q;p 7TkgENj=8pU!pMv4N%zd=QVy@c_=KGqso=^1&Tk_7eNHQ>$lZP;0kuZwb60D+@pP6+$6};ODJLpC7kV dMRVVPFsHET?xk%6SLOtPmsJHtPbS#=TAJQ(!P*b?hJ!2y_f&4g->>gvzzQX1s1o>J)Prpet#x+RH+r ^k{&XzRC9xT0KdQY9YYc1PJVkB7j~y* I4K|cgkT7@RSMF0!f#&(~a5y|SI%t>-?a=VljslJ5-GEQ}yf_rXLa?T6NytLqpF$K$N6B%a*h6QVueFs*MuXb>D_vMlMPf)7`q~!0Rv;F0CMd?ry>5j@O(!Q6% uHKPJCt=qjwe>S4Nfd>}`?c&f5RbJJ~(u{|x0{_s{=#I(YXd>A;e8a@X#K7k>dSw8k{ku=+dWdoxre& QR5>H*7a6IWy=OSmBGoG0G}>Q1hXFsn93kGEUxCYt(^re7Gi%fr4z9SyHuof=U}cJNjXu1rQ06L{>fm^n& LX9x+c?Omi5{Ax*K>iH-T`|Cd-&fT?s{e{M^=(UH@3?D}$u71_)4R?34g)QXuxgDjUAA+k1$=BcWh?i8)PsgNfLiIRBPETc3~GF?meE^k)E)%}VZk36-n<)yJ8!J 7iG?t(ni4ypB|vM;yWIqkHtDRo*HI^CM&t7C9Q=bm}Kku~-)k{xuiK^rcGJNh=0An|MH$3d`s8=&`PU 31S)eG*%49QWF~rWx2JkPGk_>mF+vIi1-4p{>~B3vXzIAp#=a%f3=toRHs?HDYjIhO-G;Q6cvC|T*ERB|{wA&#LJ2Wk@!DV?ep}6(@O(DZDPUWC EKORjpwx(%!o~$9ymKSL9`O#Edf~d9%u%;ImJ7Sq2Xyn*Ms9f0dymzb*aOM4^>S{!JV@X}0pg{mtEB* !b$cNka$0NKg7BCL3zZ~EtCIlug%n4#K@s}6ossSnTq{!1ECwS?>uAu?FSw%}`^)ebS%*i~c3Tas5x5 pNNJ4+t$Ai5-DtO3D}w|;v;4o^n%I*YtpIFLV6JSOT^03g8Ci=bcqr{{}(hlzn296m32i5O@YTN5A!M ^NP9owyC>?z+c85Ga9({^!Wm?o~i_)Q1xrShL0`2?ou4^qPBp8R=>>F1+f7hHh)k>c?7lRIjUzR}ATt hg=B2s!SXkkkXc(oeA49i*u|`EtrTE;R<{k1@Ok(iEzI~EbSuM$b?32lNW^rPXk{&HfG97a?T!Q)M+H m`rEgtLHDhiD~D-Rp~}gfWvB{<8;_Nw{K^7VRSse`-(1beTNN1Mg4_&}@{8~u*9S+~)xNgJ-d@M9mYX G%yqmYFUc#6HQ*h>%`sjkS)JKgBrLNFnJqwvviMx#c5c4q?EQ(kjNJD5|K|`9aC?26BH)`gf-l&nX>* zG=S&ZwstLN|+9CdY?wuv;qf~}h*F5Ips+(gXfIdapTB; Mwq@3>dwaL6JNI^LnQB{Hd$Y^7_<189d~4UPfuRF`KgTZq%8u=s9@g;e{{T=+0|XQR000O8W&uT9O_i Um13Lf!2R8u#8~^|SaA|NaUv_0~WN&gWX=H9;FKJ|MVPs)+VJ>iab)8$UB{_1P-{)5}+AlI7%bRynfF 5}D6_y_a!*7Gus4cfOo)Ko+7eUZ}H}}an)wRBo3n(PGGEZi##Yi$p26O+5@BZq)|MbW2{@YK#{qehd{ NaE7{QLj;!_Pnc=7-<@_8-3c+aG`T;~#$b`NzNc?yvvhyPtpm```ZYU;p$szx&}|{mlr Tr#j{vxA$REPpqw4%}A0B&;_25Le6WzgsUgklcRrW8R!}tI8h u`5{^ZSv_?dGQ{RuM+nO@@Q|5@S_CPbd>meKId0Q{Mox$5M!TmB^+pb_v6oR(xx2bznJw;!_Q{00$ZL7PzQ }-BoBH4+_6U$B<>iwwqdO67IO;-Pn-pTaNIFaLXBG)f^|I@Gj$M1jo-A}*!+h70u4}bsTFOkb_vDcq} SIzv7_e+aTi(ZRCi&2Y7i&=|Bi&cwFi(QLDi&KkWw6%Do=#;NhzE1f%uT#EG`8wt 6l&@31PWd|J>y@upzFzry)D ~jsl}zmt;HjE{s>*ZDmpDH-*@Qp)vey4%h$!EMdkYrUA`_V-*@Qpby4{S7_}@{P(jD&LRLn*3czu=#n*b$ r`$34PCN^E?GmDtf5QR&?Rf=k~MV6S!+LQ?H5&}sJ9pO_M&fh(bu_TE$ZuB)V+&VchTxD>fS}&yQq5? C0LYT)%L2YdslVus_tFYy{o!+Rrjvy-c{YZYV%dQ7Kaw67MB*c7Pa|m+I%&w(54mIv_hLU*G=oUY5g{ >-==(<@@-nbP3yO5{Wh)NruEyje!JFh*ZS>Rzg_FMYyEbu->&uBwSK$$b60=v%C{@uu6(=l?aH?+-=T bm@*T=|DBq!chw>fDcPQVXe24NK%6BN=p?rt(9m;no->LpQmG4x(Q~i0WKTq}Nss23GpQrlsRDYiO{! V>=r}CZp{!ZmP_5EF1zf1WpeSeqoT}p6if3&neTG}5i?T?oBM@##orTx*;9%pNxvbBfZ+QV+`VYl|MT W#KI^Hw9b8oAZTt)1r9R&;AE9QEg;{(Q84k9cg+sm|iWfr|$D#fbwK7ql3)nDkazi$#l7i%pAN?>w|P wYapn^;Sw>2MEPGEh=BHe7*AZNsC#FMT^SUH$B_+tn&3!&njOXFBBaw6rJiUI@MWpsMT0dS#+wi=u~IXsm`KPokgcQi%xYGo$4$))me 0^vqWifOVk>S>aj^ZHmS!Z_1L5yo77{IdTdgUP3p0!YEj?Nq#m1w7WEBH>aj`rCgq!zZ&top`DW#tm2 XzQS@~w=o0V_YH#BRDl$CGRH#93>9pe-oriNT^1gGDC>i%tv{ofs@r=})Dv5mcETHQ;ldueqqb?>F_y_D}#zDxNo<-3&cQodXHZsog`?^eEB`EKRAmG4%*TlsF~yOpoTW<_J OqOn=o>PTB1>8K+e?SPJUKu0^EkGQVIwCb#B)y3kfv!>PIL0gMLus~{JumxF7RD7We?V%1s1s)D~jsl }zmtwnk1s>TdeV}`0RL)Dm}Ch1eE#tbzn-=us~)uPs*&LUQwMXcKISMBJlcJx&{`l=m$&1#kQ>@{mGW Qk;IQCHFKxayQ+)$X`zcU*M_vg!1B6RM{mwbZI>sa5Cts?POQo$ISQ*H?9}uj*W 1)w#Z^bA46k`l`s=;U72$-S zRdsQd*s!r}zo!qNa`Re3e)ycg&mG4x(Q~6HiJC*NLzEeGRs>e?C*r^^n)nli6?9#4$X;;3qD_`1`uc $@s*>!TS>f~P4$-SzRdsQd*s!r}zo!qNS`7Y(FQ-4*b{;E#>Rh{drI@edX65L8qX9BCv1lFwtbz-n;@ L4tZtQve)4L+*|pH+j;s=;T~;InG*S&#BP%J(SWqkNC@J<9he-=lnw@;p )O41q=}b}6nWCmMMNMaln$8q8ohfQMQ`B^(sOjo((*@tA3%*Ske48%#HeK*-y5QS%!MABvSktVqR@Dq mL1~&~(lp7WO}&-ooHT8qn$EX3eFvM?e%Jc#TEAT@v}=WStq-c|OlvUioetL$A>1)h?bYk%6#Ng5DK3cy=EA(hzc8b?x&|=i0KB# 0Z>T`?QTwq4m;?UyM;?kmuQ(szCg4&oLO*=oDc78O^{Aix}scJ@r8Pe9BrdDYd`q3=(qgm)jv(S%bp& !jcKRR=AbgJa&RLRk)lA}{4N2f}TPL&*;Dmj{Vel+d;XxjPFwDY5B=SS1dkFG8qU0pi5x^#4P>FDax( bc7+t4l{$myWJ39bH{Iy1I0xel+d;XnS?Ey*k=n9c{0UwpT~ntE27J(e~@DMdiPwW~248JEZyEdx_!sc6xV}P<3Oy?L>HF!h!N_5 Uk;4`vS2W+>6;1eeMKk^#QcE0iOI%4fpKu=f6zEe1o~Q4{Ef|9y%7UH?dg?@)t1p?8yk%LNyyb!GC(68^+FLad%T>+9a#d5YT-98xTaG9vlrzfUqZ >F})r>4xbqj~9nv>ucLBlt(~kKiA{KZ1V*{|NpO{3G~B@Q>i1z(0Y10{;a53H%fIC-6_;pTIwXe**sm{t5gO_$TmB ;Ge-igMSA94E`DXGx%rl&)}cIKZAb;{|x>a{4@Ax@Xz31z`uZh0sjL21^f&67w|9OU%(&nL`6JNEB?O n@1b9Xeiiyv=vSd%g?<(KHR#u%UxR)P`Zeg+pkIT24g4GUH}G%Z-@w0te*^yp{tf&)_;>K{;NQW&gMS DA4*nhdJNWBZ%2nNC;+m!n-Lga3qg+td_^lznY>4-<+H=bquXIhHy5)*8uGg8(TgLSmA9PK2xnp4hW&`oJH{_q__$@*S72X(eFgRv*jHd*p?w;E_5nS0On%GIc Yq(pA06Y5KEMy-k&f|5$9SY;Jkl{9!P?L*!+!?+XMq0%{|WvR{3rNN@Sot1@eo#=9G0AJ8T>I`>KHF| jF+%xb<4_s=%l~H;?ga9l$Gzme8j-~!@&H*(5dlTZYXz@l@AuM+`#)c@cs?`fW|F@zkWi)jRHL|KQS= =9(cb;#ot%_eaGK-{C$U>I*)hD&=38~=+L7>j}ARH>TBcv8~5M*d+2w-Uvn+o)P&SqUMO#r_5Ks{Wi# OZ=>I0>S0?;(!apbG3nu0ZCguyKt|{GeLK)9nd|pMlq1;g(C__)oSIh-H7xdiVyTNZmzYV?{eBn=XgD ?DR!k^~B{SU6!9Gds1PEmF!dz1sp5#@w(M!BF|QKo$z<$>}f*7{rU*9CvYim1bqsKc7*ErUP&c fo%b{CB~B7yNg@e;53B!G9P0cfo%b{C92ehd(d)^MXGw`1684FZlCkH6RL6Ss`}X@BLhzT>g J3w8tLpu}6FC(H?uW$9_?-1O5m65BMMOKj44B|A7Ai{{#L9{15ma@ITX?SU_#VuP2{?pUAf*m~Hp_poCFVaNJZ$NE&q`c%jIRLA;M$NE&q`c%jIRLA;M$NE&q`c%jIRLA;M$NE& q`c%jIRLA;M$NE&q`c%jIRLA;M$NE&q`c%jIRLA;M$NE&q`c%jIRLA;M$NE&q`c%jIRLA;M$NE&q`c% jIRLA;M$NE&q`c%jIRLA;M$NE&q`c%jIRLA;M$NE&q`c%jIRLA;M$NE(NSf48SmooCrD-zDJ_oid>%` M}7MwU6Y<8DZ9du_LErOHRk0oQ_R79lLTmw&ir}%jwvd)3GzBV{1;YY|pfR=?(1@)4lKj~N>=~y4>SkLHK&*(JzQBEjllncrg<%V)cd7wN|UMQ2VX1Hz-{vP~2_4Ni3V6);y#kg@FTk8vESg?`S+H0(eP K`C8}I}IfkYq^m;@GqO#u0`9Sdj|XavY5@E*E@`wch(o*(nXY+i8ytQP@Cz !M;sMK1aYp*N5T6j-Vs5_$uTKqoK=OahChZ(eZ#Y}W0j9y=1C<8C_crlp&f?nQu>Zq(eUuyj<%D?G0V ydn}v1TybY2vh=%_vpN05SaXv#Va;wGTwLf+O>J^?qAP@;80+~P |Pzf{woxmV42`mEN(8n9K+=~G9aMZ(54@W&5^>Ea~Q4dEw9QAP2!%+`MJskCL)WcB^Pdz;K@Mv+Dryd &Cyn#d@6F{%NkeYRYPGAt21keF*jK6>*;0d6$JV=gz9c 0H}AQLDADuG6z6Bq<0fkj{wfES)fJtFmp)C0Nl7oZ*yPIqDc?hHOM&P}4z8In+38PtRnt#rE`YAaN$$;hkplRSe@^7|-1yUnS58bOM9GB(Ml <0tbM8q2dkDQlvayAP|TI5`he$@UewAExc)=>6Q1WG=1=F_IxZ =evU1R4QanrTO-9c=nSAr~ZhUmy@bH3YhLplb)ZcA#qq>_u>4($dL4S-fJ=^i6Weh;)%XVPsDj*%L-q c4TEo_JonnAK4Q|_H&W_Tx35N*{#LIr?3Z#?13VCpva~#vgwO#`XXDp$f}I2%E(SDA~V_HXBXeVH&;X giNGYV2*A=rOVi>#kfZA|d!Wq5G2=58F0-}FY%Me0GSe+H-7?eZGJPzw4aykryWDw?!9T&4D3@7LnH7 ~;QJEE$>0`w$0^m}xHP96w2t)#j03XY+r!ed(40{U0p32^|vNx^lO)G<%N|&m1sY;isbg4?0s`Q{r58 `%6*VwQ%wquR0R6|Pr1rmWwpb(&8i-utt%yGraamC7U#p(i)Kq8O{6atk%BLFU)b=z6Dopsw;x1Dv%b +HQ!0+YZZfV#!!FfWiOa-ztIp!B=?Q#jpQ21HIi# 2*ERvN?X26*y6x1XQ;$wPI`!z(qf?Jgwu~KSCtC&+vy*KnTZS8x(ZytRF&RuuMzD)-!{Xbp_%x-_v=-P{}y%?Y^j*%CK35y-@;xJ)xI&86BUu@VG8@9z4Xz_j7*jjY~*l{?DKJ2p(H9hR-4x 60ACg-pk4mCZL@SuMQ5$)*(905-t5Qqd4flQzfs012;Z%iKqCV@p@6F2}O^@y}I($YvvBQ1@zG}6*YO Cv3fv^3Gu#F|U2xx|`FtT}`%*=d^J8#n;)VUr6u0-iu15DCx@tP*F=<7Up|X3pbg&eCSi(q_)m=8j#L 7jOhTfj|J{2Hv>~I0BwPAn?si69Fj3rNxY|u3i9*W5$fxw|qaKcWIO^f3hoc^jdN} IgsE4B-j(Rxi;i-qG9-ex5>fxz}ryibqcH%dU)!=FKHZpO5^Zb8HXRsIQ&}1;pZ|=AlpE;{G tX!mdTK1GGv(yS>_338^|_%!Y)8IJLJpwYNC6w>Y)8IJLJpwYNC6cY#4*5?BN_0XR%|)WcB^M?D<%aMZ(54@W&5^>Ea~Q4dEw9QAP 2!%+`MJskD$)WcH`Pdz;K@YKUo4^KTj_3+fgQx8u)JoWI@!&47WJv{XY)FV)jKs^HW2-G7`k3c;Fxdd _vBZ^+?nsQIAYLGWE#RBU6t|Ju>yk)Ppe$zmvK6q0GfEWiEaybMaf5iyy;Wz0%Ugd o$I5(xtR&MnF+a>3AvdGd4WU#Ts+>F?eT@S3oHWP{0X>3-XroJk@twaN8%NUSKxPR-+&|F2?PR>Kq3 IeK7MWVtK{q5uwQI9>=(O0AP@;80+~P|Pzf{woxmV42`mDezyaW>hoc^jdN}IgsE4B-j(Rxi;i!kB9* %lA>fxw|qaKcWIO^f4ho>H%dU)#LsfVW?o_cud;i-qG9-ex5>fxz}ryibqcJg|%pdNvG1nLo~N2DH+dPM4hA8ZdJ*{M 3Qr&qhy)UWOrQ{`1R8-(faG+n{stC-P2d0s)FV)jKs^HW2-G7`k3c;F^$64>P>(=80`&;gBT$b(Jp%Q J)FV=lNIfF;h}0uek4QZt^@!9XQjbVIzH$CYJtFmp)FV=lL_HGqNYo=yk3>BZ^+?nsQIAAD67@*bBT< h;Jreau)FV-kOg%F7$kZcKk4!x>^~lsCQ;$qNGWE#RBU6t|Ju>yk)FV@mLOlxgDAc1+k3u~P^(fS%P> (`A3iT+|qfn1RJqqEa~Q 4dEw9QAP2!%+`MJskCL)WcB^M?DySIL052@rPsl;TV57#vhLHhhzNV7=Jj%ACB>dWBlP5e>lb;j`4?M {NWgXIL052@rPsl;TV57#vhLHhhzNV7=Jj%ACB>dWBlP5e>lb;j`4?M{NWgXIL052@rPsl;TV57#vhL HhhzNV7=Jj%ACB>dWBlP5e>lb;j`4?M{NWgXIL052@rPsl;TV57#vhLHhhzNV7=Jj%ACB>dWBlP5e>l b;j`4?M{NWgXIL052@rPsl;TV57#vhLHhhzNV7=Jj%ACB>dWBlP5e>lb;j`4?M{NWgXIL052@rPsl;T V57#vhLHhhzNV7=Jj%ACB>dWBlP5e>lb;j`4^4CjO|@qf(DbJu3C6)T2_5Nk3l^K^%&G+P>(@92KAWKV^WVvJtp;-)MHY QNj)a@nABrZk4Zfy^_bLSQjbYJCiPg-F)^??3$t4G;JV{cAM42QA}kbe#u1@%)oyQgd$rq}-CphXX177xJv)Y}_?yPoavpcKZ+3e10cQ(7T+MUhrtafL!yQtm8>@I3|F}sV}UCi#Hb{ Dg|sNKapR$JIR0y9`WwwT8j_1MSP-a{;f&A_S#Rx_}wfz>>=s>fEdq^eZSUXrFSNwa%5y?3+PX<7}<= rpC%P4BLHccaslPPa#PePlN}UFmewyQ?ML9HJ}BVZsg-c34v|v?&T+vcZmY|!zGQzTZFTM9 _26u(+k!vcv3|335wGZ0b2W#zvw)VkV`=G6Tu+~0kYagt&58B!XYwd%!_Q6{Fpsjtd);?%!AFQ>%-Y@ Vm1CJVLL)vhf!uH4`&KAwBqDH;ZqTZ-cZ?vd4YSbGo>Wv!pMvHo*M!nIZ-l$P;w5T^~)Eh18jT-evi+ ZCvax_Pd>d4U?IjSQ^i+ZC*z0v$Ts(;5~b{DnV+&&hyyO`bjHpF6fSGBvE-Bs)H R_Gk9@+Gf%^unGk;w9q*=m8zND8d1k)b~m-VncZFOwm>^-pdBsHjv8o33$&vK +OeD6UG45>cUQZ+*{$(+wD>z}{2ja5t$jlrX7^CLhuJ;U?qPNhwR@P|L+!SHCl0lHnB5x0M+@TPP`ii OJ=N~%4Gs!NgOkG9;G%FfxGCHX9tux`wXL#I#_f^?UM8&eu5p>LONCt~>{4N^--+7qMC*5=_B+w~ov8 gzw0vy8|JJI@`sQpf~ekW?b6RqEg+V4c`ccS(?(fXaJ{Z6!gCu+YFt>1~-@5EzvAG O=Mqp00cv@uE4F-bgT_fflTs1kLk60P%!I#h`^REauNi8fS8I#fwER7pBiNj6kTI#fwER7pBiNj6kTI #fwER7pBiNj6kTI#fwER7pBiNj6kTI#fwER7pBiNj6kTI#fwER7pBiNj6kTI#fwER7pBiNj6kTI#fwE R7pBiNj6kTI#fwER7pBiNj6kTI#fwER7pBiNj6kTI#fwER7pBiNj6kTI#fwER7pBiNj6kTI#fwEo0xP qF+C02D^+RPlFdLRoqapECwyVc>^VqIodAG 2lZ*B s`WLtS&2YmT6gG}j#JgTs7q=tAW%XB+Bl!<=oXvkhA{9NIh%TiF}hJPvcVq0Qs4=5gp0!l*_^eQ=l$j ye>6YHet%Icx!H=qP&FaCtPnNi$8F){eDdL&wF#2Ee1Mg0`eIy58H|YN#WRVXy`w!$x&Oo8Do=x1o+~ !^_uDM;_K94{ec$Ir30PwjTO5)ivkqF>tDDPWK2q)itNN=2T~!=4?})ZQ7jaRA-yfZlcaM&Dmxu3Ri= N!pmU2iS^u5U2~diPIXNiM8Br`;4~kc+H+6y!Kpqt%?GEpgVWlCJhjhbh^e>hd)=jKbjYMECp^^;|OveZwO`N`5L_m!SFac QHptWjE8^UG>}Y0WQNabG%ZxU6Gb>JZBuVl@$VHM@xh!^>u%md+9_dySWlU~D1vwRD1KSrspx$yw7_> YDDdHQl8(zidr+=|su0DqdQ}>sak*6>sb6wuVGIM1#e^Z9)9jO0&t9*VZxMHobS%d)rW8*Q9VZSRZN0 30r3>x6M>;ovGY5Q@J&C-nN>*wRUVp>9zH}-1c5>t+Z_o%GS`?W`kZ^C%yK1UXrb~V`+6aWN-=(gTSm0+CbH?qYW9nEO}@aWtLgSlDvZHIKRG(M*`r?A|(^e=I&Z8i*VVM2^nH9}7fIS4}JsIX a1cEbKi)H5o={=p)UMk2rM8&x33KddqgbM&{1mSeG~OW7q5At4+SXw^t#*?wLA uC1}o*z2mMREwY$D6xd&$i8xn^>RgI99QQHZ$^ib%$hfkAKe78gA`$Qj2kue*@Jq@cvYf2{yhq@c5mp QG_&(G7boAnE0n}C0ujLxJ=G33RB>o}W*X9J?Ka8dL6XLmsTuYmlyGO0BW_C7Y=-Gm&YdQnqY{m2a%U FVUv%e#ox|{tyA?eWkp(Ew8Kg-PTA5v1>+K1kNKT*a#YW>>6=RI!Vc7G)NeMvpk-qYDA;vV(6<5~1~1 O7Qo&!MrMv+(BqQ$>o~`!dn~&u9MEO5WKDoKJ3|o9HjTBsjva*0Z$W7V^bc7>48e C%kYNJGf=~EF|ErXNKLa_Rps|ZuDOk6u-Yz2Rs;#l*Xsyyhr3TKFeS458MH7h9j%-i30BtX^l?@e2>U $d}f~B37CpIvmYB9wln*&vtc{4AMNdSWy~q*yyl>*&kqkF#E9sVh6Jy@9z#~e}Mh=zHGcNJD B|e_6M^+!v1LXN7x_D{s{Y{*&ktlH2Wj$k7hsGpB>G9Y@OKFE^Wk(JDUC2Jh7A6kKGeHnf-_pb~5|1e _|)I9~&rkGW*d!?_~C43&pm0Y$IOX$?Qj*wzJufT@*W;{n$pav)PY*6g!*!*hsOn*^iwR+uF~KtrR<( {pjDf#eo}}DRwdYv72HSvmgD}E@nUWQ|w~)qdni&p6>$ti`idbe=+;fuWjr1H{w{ExVT5yU(J5(w%FC |$99Wd&Hf7etJ#luV^_1k!v1RZWBjtK*^hXBH?zON{$}eFX8(Zw!|ccQkv +_Q#FN|N$vt8JH2Wv)pJqSyq3mh)V|==&**{_bH2V>s?`if=*gwtw3HztnzhM6|`xoqAW8EX@nHqQ9vNN0;Qj*~Xcs 0BM?}iWH({SCwGK)R8;JHt{bdRwA@rQfV-8Zw^eJbu#?LHc}cv}j+#|*p}UV%5mJMdvR?OBFz;OD^`^ lxT=gZ<6yZ?M0a{SEdvv%kUqX7)GO-^~67`=-(i0@`>`Ku4zqv2{$chH*gwqv0sDv9KVbhb`v>eFX8(Zw!|Wfhf0+Ff_D{2)8_K5HKVkng`zP$ 5X8(l!)9jzHf13Rh_D{2a!v1OYFWA4#e(Zdk%j{pUf0_LY_Aj%4!Tx3TFWA4#{ssG&*}q`_GW$2|-)8 @Y{oCx{Xvem-huG3LpFMqk9^B{HeKZdF^0kwNjhpM4|GCEsd>O91Y!8HA8P`AKM2`#sZ@Z`Ok$5#+`y <;2agVru*!2U~+m1(M58Sd{KXJY7zC@ycw@iV1#Py$BC$US}=CwTLwZiL}=e$SVw)c7xhr&1Cn|U&a? r|yp%rAwP>Uqn}@Bw@ojy;~;?sIVcvFB>WX|M&(fbWt7TSy3Q0=J!n*u`zR5%2vh*rM{_J!)!Ex3ubx ofnqE@ap-6yiQBt%sLO*EwB6@J@8<71fC4fz>DD(cr&~MABNMOW%veu9$e?;ZrSWddTUN*e}etV>`$; inf(d&C$m4n{$%zi*q_Y)1pAZOpJ9JC`!np%W`BnL+3e4-Kb!p-_Ghy{!~SgcXV{<3{sKFnal}1>S21 1{*H`0J!K)fCWD@6UyefEA<5j_{8m|go)p%9#s>Tbc%DI~T4fZ#)A34mqnf(p+H?zON{$}e2JY{VmlxYrodZv(D0su7liiFgyZJhG*cP_o={};T`xed;(vFZ{UyqCBXh*b_UoP%uXcMm tb}V*cr@DWZaivb_UoP%+3HigV`COr?sC2?Psy}v!MMf)_xYWpT*kGg7&jm`&rO_7HdBX+E3eWbC0m! +RuXavsn9C(0&$cKau}%%Vs~?&tmOoLHk*({VZrdi?yEx?Psy}v!MMf)_xYWpT*kGg7&jm`&rO_7HdB X+RtL`XF>Z}totEHIzI^S~3-S7c?8oq$r{m~8=YljQk;bQG@K|5Tm9WH 2xi?ze0!p>^;AU-Ki?sG3_SBtf)1?_6FcD11WEY^M&w4cS=&w}=|So>MfewJqS(oiqWbnCFQo1GnYcC )iXw{E(1*x$|m4*R>=-(i0@dj{+ocK?C<54-=s{fFHj`((;6eFpRyrq6&r!|a)`XPQ0}`b^VjLZ4@Ra gXqyX?{N8=hN)L7M-%}xeL!-_S}W%F4Jv6w`IC5=(bF^1>KhEwxHWHe|V3$&$COiSM;0pN$k5veP1kr xmR7s?3RDkD>gRSmnQB}?X)ciy~3XQOvv8j1pesU&@X@P)oN(}Ezhbq%}c!H$4`(?)h$D{bElr=S@j- @;-&+4vDv`p9`*i~f7N@zeXRZLx{s!JtH-`@f3uUjx%xBFe~)^9+s}26#GB#DcR0J=;rh>AZk~8G9QU z$8JeHjZ6oJB>ihM%FK%pH|ICxzqv~MWqwf(r=AQamX!ov{e+YNF<_q1jGaRYOPrlGSCgA76J?`V}J| 6e+b{~)XJn`y1Y6|*rkDWvF63@2mY|Kj>%PTm{D|lr1sQk$j>p9_>8U0a}?)`&bIPo!;@jh;zIM0d56 UiQ)c%s?~rc*x)DDIn&$vsBBzptw)<<2Hv?h)S%{Fu}EII(f!^P9W@Iae2W9v&k9;^UiH?<2CsEoOp6)CFs|{TKUWNV!Q^DoL-jH%Z;fQFmorp-+dAF5CBuo2f%83%ffEn&dki@7xkE`mm*VV`@b4o&(Ej;Nc!y0U?!BGn;{;wD_k1 ?|eZ(i=Ev?$|^U?0vnesk@xozliZt~&J8+DJ1C-!p!pYU~0cKiE?zp!K&=lR+D=X0+2h;*0>JkRive_ `hOT6m(`iN+J%PHdids@6B2Xm+CWR>K~ST}Afw`S%f3`}tk}fCl*j$xbYucplCjSuU7X!NaQHAA%w9F M_ude0Z>j2b%ja?Rk&*9Q_4~o#4ac=U+fX3)SwCRwcU?QkrZJ+1u%9uDzTgQ>$XnC^Xl+BvcZtW-jtw FR<;z!HH(KLdN9U`$y?3OTMeFg-l(uB$;Z0)`-o>)9@%Xma4SogzsJrK4|9A<)Y*> >+#}76W^P0$Y(F^gKH?d+tI{Qkn8x$gCW@Groj@X_vmn)F3>q#F?F5{`Qq^51^K4e-0jGYFrrt;Xg%Q k1tNikd9K}KQ;vT2Qf`_y3{J)QQh6UUAh!)O5XIBwl*~j$n5lNb^o~JEoi25$j>_q2@$Ke`(iKIQ@;6 3tI?y0DT`04`1PBfl)-oY0646CTdih90_@ILYvPx{mJ;UiLSz)m19_5#69z)LK2b{)Ul;kq?_oqesPl 7F*T?*hwCz;`Wa+;!|eb;D|KVC?KH?b;1?EEaO!W8;a3`NSaZy(RBC!57C;vhR`4C{II%q`5a>Cs-d( y4XD;ee=tY%`AH2dWL=X*m>gdl0_aXbUQJ4V%mw#6VGd~Sc8_#eUE&2wiDRia)Dwe8c>_034{2o0 |1Utc7nYS;5=kCc-a_?kkJ@NTlLx(ZLaZg1ZYIQ8W!Z#P3B^Q=;!k^`u7MCEvx??@gqFui52TMzwCEM0^|jrzP2tj $lacCkC7*motQka?8N_P^Y(q&^n`mN{d?qzWPg#qIg#u{#)%xC6PVH)wljBlm}^T2_o%t&7qGvWnBE! oF^YR^IMM6`+LH0)MZb?KiRHDvkJwmlel-tv&{{_4J)&j!^20P(b9w{gIRS59{bLv5`S;I?20*=Uv_2UGcLRNj|N~j?qmM4&r%zG>$P9LXJk~{=dAp|z~lnY)|OH6Lpb*3ML#z; Aw1KDej}{)wwuszY)}636Dsd%1vz2U3BiZY_v2qahwtZK{-?j%|Mjo_{rmSQKX^R}-mlmGQ(W?w_{mE 9RR2q7*Mt4$M9_CS+0Lz`{jhxv?uGnG>(yRa-746WM2TsmPyW+e jv0BQ#S0384T0B~t=FJE?LZe(wAFKJ|MVJ~TJbaG*CXJvCPaCv=HQIFa%41VvgusCUIwNk*dKLt#XII7QC}GVSvS=l^et#l4gdb@VP;R*_0=|m9S8wEH9Fmx~xC ks^xuWZ3fS24haE8>BRTjXW0=)>O_ol&yOK_y1x{X6(3CksXd4#`=MHIF1?CV)3S6$SJu#U9HCWs5Gb c!k$!5&p1(`FmaN|5PnB~9E4rt@&eTqUIhMpg}=QY!L}=udz{pN^~8Gnb%SKh?I|TH?wUy&a{~lLjo&`E80jt8Czh {_g2UDc2bWg47c(qvl=br le74Dr=bCCYgDVX7YIAt-Nbmpts=|Qh!?vmy6>VJLZT0fX8!M2T*y*5;}-w`02KfL03ZMW0B~t=FJE?LZe(w AFKJ|MVJ~oDV{2h&WnW}rbYU)Vd5e!POD!tS%+HIDSFlx3GS)LRRN?{vP)h>@6aWAK2modQMO**?000 6200000000>P003}la4%nWWo~3|axZCQZecHQc`kH$aAjlz08mQ<1QY-O00;nP0YzNxYPls5tpETGxB ~zk0001RX>c!Jc4cm4Z*nhbWNu+Eb#!wyHe_LRVJ>iaw7qGMT-TK?_}#yP(#p>P (Z)_()Ah*)GN4U4Yr=fl4Mu;H5#CpOp=;N$<|1b8c9kPNr{sr4oM0qO-w>2#YrTkFN{n^MuhAF{1f^x Sv+gUS&PXprXa}hUH4|(d-gti@3Zzk`~2yuzyI02kFL7s-uv%f<^K1MpFj4{19v=j@11wtfB!F6{q*h !?|$Tt$L_vs)lYu8>am9&y8qF?zW1&N@A%8R?s)8uAN=X6U)=k^k5)Z;_hZXX-~Hg758ZX|gFpS7pFe ibU-nl0=m$Tz=aGjVSoPR1A9fd4-TT194?XhOs{j4oM<4r(Re%5Uhws1pFIN562k(98!5{qKhd=z`-_ `#|vFg9v@$mAke}BhM+`BA4{9ph6|4h4o)g{P@SK{$|w=qwZgI{;G2gxa;nFR {i+VyMOxQ&gws3^_Tx?`8WPy`EUQj@(=yPy$`zIeDtwL{_)>`*O1Y#%ercHJ-5=&qR%9qQ*0kQ(TQ_qQ)~(!rpScrJ}{5(Xw e0~ukUOxXEB3?fK5+YtczYGyCpZ^geYKCNLhGc4nWNLVS)DnWIXpt?#>T_vbo2`X2D%9WsUSC-eChB6UE@tXtS6$52#h$v@R~HL)u~Zi;b+J|#8+EZ27yD{F`) WMqfcWXo5b_b?r(PaYaZ&uokBcg=1fRYezK+*{Pk$3aUI{*ZFNF N^;L}|pH-w-F`$7ncus?*L2nRw4if}N5pa>s^5ES8~5K _~%hNKRK5F~XtgdnLSAp}Vs4IxM>v@bOzbu5G+spBDZO;YvpA}d^FHOh)M%8EA1Q8mg@HOf&n%274ST sCU_8x@^4%0o3OI&GA7Y?O0qBu%NDQ=?2^tH!fck?*@#{^=XQ3aCI+6hHcr)_Z3}KQ8?syaO*(_m_5bk*M@!1B#Br)9a2IR9R2$KYH#~Y8&o+3; V#T{=rK6{2RNf>v$(fDjLVNxCuB1;V5}BFN(JR- yRB)sgJ}1wTN(Dz^;dAmVnbdEj6+S1=l1WR 3q{8RqSu&~hNGW_yo+Xo7kA%YK7NQLDAkQKb3{e;IAkQKb4N({JAkW g3^5{YyZQWcne>y~p^RJcdj|M7j4E;qp1^$ -FO>Ng3G-8Bp3Gy5i;$U(N~!5cn0yiPt5GRO8hMDj*qtD!a6c`;z~Vp1n4eT%ZX!%hDvix^Dgy~{S_$3OSYZnFK8Lr!XZ$2+hR1yAW8B)YB8E&nkbSaeAHqz$%IKVK58+V{Km R^*lYKRkd%)lDIbHBKM^{;Sd#KFNcj_C)Ei4uJ_ad&A|%LSNy^6{w*!~mYWQrx*AA{{b5iUAn$@a%!` %i>1Z!FpV7;OKEa7htMwm$~je_QCdl@fu;ed>`@%-Ab&>_`&v{2;EAo%lX0f p9tMbtjqer_MZsdO03KK!S{6Wf}2;EAo%l$#hp9tMbEJ^tor2L7HlZhoKAA^%W5ppuI+y)R Q{>vBkkw8G0p9txXSQ6$j2=gz(cqvXA{8U&U6U##V7=-zJNSMcxFpoi)e-W;xVie_{B!djv{A5Tc#3; <4C)1xw4MbV~JpYo^K(OZXWcnp*9)mTX4_WhAvgR>Z^Let+k~NP@uYuwAf*8xTc@id;ZQvMG3SRl{%}w3fH(X77VMt3K#h?s &!Uj`2MOZly5fnFGqTwEo7|Vx{ql_Cb&~S%Cj3vZL^1X5ik);0hz6xh=0$V^elZmti 32ebvVYHCI7JRi){5=$5hN_szBwDgOf5NiUB$GS0z_tH2wCjoF+7oc?zYXnrBDwYiT>DA-0?D-};M#v 1a_z}9*FF_scK`SRW|FIF>?Fr5VyVa-0!i*I-hU*>a~h{hW6Fe3qTek!bo}7>q(#cxhqS`PRMPkE;Z*4P5>V$Ci(b*s5?kq_h)I>ZikCF2Rn4)1hNe3NN|Sp?6N?)`eubSiROGQb{upX7+TrSWQqT&9eslENdz%rFne 8((;@~tu%ixxLTGAs-;=0WVv*LNbGdD;7)3}-xv|t>2SfF)Y5ez@;V(ZxRYA$KL(F`I$UrklE+ODjhz m8+(h!Y2?DXxVf>az9ydV{b~;?&B{~QLk9#^?a3_+-O~B)x4j0^sI{_E)q3mo+t5d)V1dtsIj6MaWpO4X4pVT!XME;qDqzk3_yKF$@n-Q%xY9^LHJ=F+TWQCO`b@Y&Nxa Kn<7nsJFf1x=`!8o4@L&-G8{0l>!6uk49Fl0$%%)c;{Ou;^%2}8*=#{3II$rK#)nJ|=0W6ZxWv`WE5p 9vRkX^i<7hHEMK=riFGEsZh%LZ&d4-DpzObDjx9nN-$url{vU6NWOWtmjNo&v_;cWl~wsnWCQaOc=_f vYsW>>rVWCOSj5PO?O44tbE3ll>%8@JeUMzRA84Y0t~!ELpamlm{rBvoz ;>@;gA`oTb^`livXf=Pb?hp8O6JL!PD3t1rI;(nX?rA^rz%86`=NRLx2j#=PU(OeJN;gJ!i?F%VNnC#gb>qpvz*(6fDnKGU&2cG6lbLm JGV=L6L&lIZFmzHlawt>6|5lF8ffVD4{${23?j=rYNC2O9s7=@<1x?EE#m!m?A|M?kpMfQpy7vxU*!? ODPZJ-p-Oimz^n6q}|SvL6>>A6m2Qal0lb^DN+<#o+X1W3oTRhqc}?jU3Q~L(T?IAnNIYhI7gvsrBYQ XdQqICAhlA}k16_4oTKoxQY=A=deL(fm{y7|YVxA)xBw5T9Eao|KL6XHx!D5~x7bIEC6fEXBazT>COu=HFBTpe&%o Hre#Z19so+D2oS%6fEXB@)VNAOu=HFB Tpe&%oHr;Swsr{@*H^z$zP`6FVB&ukX5ZIs#?#Hr;tq~Qq;4aBTpggSyM2V=g3n?<}yV+>pAii vYs^spLvcvg{)`Iz+|2eL;p ClF35Z3|!^;aBY;yLfH%~<@s=Jl*xM54E*Hz(7|W2o;3qAc|LSZnXG5cz)7AD9aARjSu?Pa=R?Po$$H idJmmS%F=euzH3I{AK6Ff(tY^)@J)RF8Qzq+KGq8^5L&ucKde#hl)(pJj`Oqsd3fi04Dcl*xM54E*8w&@pAQo ;6EUSxuJsVEF<`3H7WO!tQNZ;zQ;OBrEivxDfVl%Mu?rUm%I03&n-7s4+`?_q1ygl%WLo0!b1jxEI2bp$wfXE|5G?mvzGuhTQll*5^sba=VZkx;+`3^G7&sx>-w%d^{t|Qfow j14?gN$y&F(uvHOa9V3m&1A8MQ-5oMuB>Xez!rOe*Rv5QlPSLcdd#VyRvLL@2Cd7xjZ){Pn8UFS&^TY sxU6EVF89%}|H}3k6;N#P~%tqQMzzp3yV_*)8ZfbUXx3;Y9tOUd+Q^YXrI4APfn!hM-X>gy ihG9T10bRTX-K=w=dcS}XO_Dk7aTy_HJm%8n@qBQ%J>_uKF4eeL*+bR{K_bb_9U6PCaS~fHX9e8Eun^ $&{4q!*gm7Q-XTsA7Np;D4AmTcPEZ*?zp+48)j{%#?;ilU?JP9azKMWi&VkgN0}R#GkGD MCde|E@gAr@)%$%Deloyc>>mk;reC9rp^Xb*{X7Nc}ApZx!;4pCVDSqmWw!i$qz8LUz+DQZ+*hx#zA( <(SL8b49B3xR8C|icI;C!gzysUlgNfyurIKDIDJ5-K`3jW0y^h-E_ou8%|a!j8A!YmwHP%FXb^SMK1M 8);<){>lD)K6!I{NLVBG-9x_o#uTw~`Q%J8E&`c=~URWk0YWZYNDSgw+>TqUhZC1bftG6Mt(NnxmW>W-xhAV+W Kzq>q?Tvw)qVMGk^`@0fofeU{<)SVopq^ny_Vd1UCH;AbEvMAovbSrCDygn2icsmmh-KaZ7J(U%1zFp TF#+b9uQQ^oKhp#PL1KB4nK3{P?+Cs84O Kq>+W}O`&4!MwYNQ=$Ulo=rdQ2&`3{ryPb}LZo`2jjhtDHoLPjhuyzEKP1C7v9LYxT%%rZ44 KFWY?7=VWm@JxbSOuSew$wOkpEuW-Gl=i<-16b72`Lu#lmZXM(h;3ieysh^$5V!I fiAt6z|(YoSo!%CYCfQ}V!!7UyPPIrgG@N}eNTmifnCRZq#0>w>U7w&u$5uymxA=Qy`r6)3cF16`XN+ 3dS=ES#pTJXg6zQhfQTFnQe~Eq>+r{wv4B@{JaW@oTvI6XF(RHjf`rc;DjsPsq{1Nd)>SNpZC3*mLFh uY~;ia-8G|y{#lATJ*lTa(t`$1*yZ>zjWpJo8l=+KD31y|DEb7sl(VYbmjOi^_0}%(g^BVp~Iy@iz7NJl7j&`W6HAfL {M-DV31=`f`ZB)@Qw&*{UyvxS4yCBK87LJJ4^#6IjmTR2EP@jK`%v~ZBm?t^A69HfIWIz?gEFEyC<#XE$VsO(@(p`#IMm3O8qs$uBj51+WrrI1QcL_P|oSq3w#9lAs N^%J_n-j&f!j^T=F6%du3$!Sfd`1-Ob2bvmvboFhO_E5yNfPP5Etze1S< Z$eS0PZ8=(D)4w{GOS3w?L1-y1vK2Ak>B9Mh|7u$j(gGu^rdo9T?C>;1a^9i>y+5@Rhk(-}IZtJh#Np W@j{l}~l_*Of%0yR1+8lZnEps|U5)%Bh;`H_5f?_i-DUl^V|{lnwW@cMBl%= nIqK;XuX@@H^z~QvBWcq6`n~(HB2A;dto?SE_1#*(`>E8yzCMVy-<{Hv>7eX397_`QWxcq&tSHE+uO- BbeBMNz9l2cpLz`Roeke^OIE2ck~k9LNBYq3=t3&T872Z(F!B vI6g$+&m)L@;F!H6tKdZvXm(I?s3M1ceW3fYxeCZUusxa~mHy1n9$d|~9sxa~mHyAtA$d^vmt4bqZS_ D<4kuNQRs?x}pEoN!tON*eYH1cJGS{nJ%BB&~jd_Q8;$d`_V%6x0@DO8OBj}t u2YQWom@%*S;c-<_jiv~XG3M3c=Ztybg=bPZ%*&3|8ch-A`4nDsMVP1Xrbb(Y0q4(ZG)CYVfyM}|`e= -BH)A-?jG~Vkoe}sz_1YY3#^>jvIDu7LNA)$@BCvL%EdpyG+9G^Tachlo2i7(8MVRMYJvE&|;lTb%15m6q0NSLYaD>{wJ5U}e Tx0Pt&nJIl?Qkb!UMuElp;Tkx@F~THHP#KnWMJ8F4`VpPkWb#mnqi(66g8F%^Q_-kG0aooUSq*9PjP# V^};-b?X_7hd`QPN*H|u`N@1R-02T`KJO!{$m}e VcPNk%1y~ZkGo&xR~i-eQxBC$p|NfjnFmIzxYvZVqp1jlBYdZ4|Lj1q${$c23->ehse|gCCSqf_iZ@f#r+^wn1@IO8reJ1U52+mL ^G?A+f3bM1Z#)LQa7@LqPq-bIYfHa$R>*JGA8~ZQlduoQFNE#+7D3$Q6sBX-DNB;4^in*BlploO=L8H 6t0mC72RbcC*tZFxdYc-HgY20)5x}p?y`{+1#6A$tmrNqIZ@fkrR1>M)q BFmyMjrH#f5NqPuM5M3H%;X^bW@aw2ct$OFaQWg{o@#f>~uJZcgnCvwA$+=A{d8#xhM)+Aa^iIEf0WK E*wlo&ZtAk}Dkp-GIKC>U-MEvLlDiD)yu>m_QyD+~^^=S#JmKq?FlvwuppoWLjy4zqtswVVu@aG3p*> ;vE~Lr#a;Kgpd4?lR4aN@zKVmx?4RV>=uwjyIkA6|&1BqVBPaGxa+`#^Y~;lL NpAghmyMj*KV@1@nUNFwC)sS#T{d!J|CDJt8H(UA`zKwS)nrCa?4M+(hN$TpIkA7zRgO*9$cg=vJfF& 4HgaPBG<`(Xbj*4i&U|q{Xf%L5pFID{T{arPo=+ZuBkcKP8(eqU$ca6l?7`(O8#%G(lZS!1%YO9kI7z9@##A>5cOX00 xXa)l+3&~$w4%loEYR*zhw4!>l?q4L@5n7^QDaIJj|PKxrqtjFdk5Jz#9cOWV(%ai*>abSoY* _abGF=NBPaF_@~AC$*~p2#gKW(ZHKy3$2zv*4;8xUN2h!judxuKP30sc_N7*}6T29z=G&suMq0(}yAg 8139b_NA==$dNe}9O*L#5?ZK~6{6JIF46?lRqin%Zapuejt8YHFha?D^z@ U{TW;IkD%HXM(xQMo#ScWY2DQ*~p1KpFA1NT{d!J&nFKDbC->r*z?Kr!Q5pdC-!{uh%k5A$ca6lJSEI sHgaOmCr=QFn%2mPJ)dl|{Phkc|BjNEY)#5%j; ayb4(bW#$XT{}15c~BZnY+-GDlgOIVsNkSY%rKBmYYp{3MyfRV{9Z0(|(MN1nTt $$Jj_1!u=Q<2~_M2jbKLLVWSF 2m$0*)x_0F%>@Vm#@mUPWnvMn(*?=iL|T{EO?OAOn4jBQERj4ay{L;4n`%vir&AP{>F!REY43E3Hbh+S?IfN-1t5iT*PA(sXHfe`B|o}*le_E%cA8d%Z7zwhHur)$O&wy|T ;`@t Re1Cb1@2_t0{q-%rzq!Ttw<~|YA;OQT?>Bq*j;ZfAocJ;I{bv8(G4=h19zUkO-|XQ#roP`W<;T?bo5I {<^80(Y`2PMazQ4G|_m{W${^}OrU*F>Un_GN;yYlzzz1*##(2wm^kHOvUQ?Qrnsoe^eyZ&3<)1oz7^^ Sj}{u)GhoR=PEv)*xDdKg;$n0U6tXE0c;JOo~FtG?nO79_iRv|Z^@Q0=RJ%j*F&`&#wYMui)}9u&Wgh F_;XRxkwnzJj%2WlLFi8G`*p`7T4iQ^!t+dclf_&(QE_+c~`&xD97Ax!;Axa7YQ7UyrTTn6G%52*Upw &I`rLs*Mo6-rL#MkT^3mwd}jl$}ZXNG6eRC_*`!>%*O-Chg`eTEkI{bPwpnQ%Vc6_XcxBg^@!KfIuW2mKW1Z&26lwj~o_<2X-a4J$q+o5GTCL2ju};eE7&7}9?VM=amDYTQ(mocRbmUNojF)jBw)F@YnXyD#tM QDg{w;9_n>|)BcI{QeCQt72wU?}~J;IP$hQ=MqD!a>QUAZPSC=OLrfV-UID?`H2p=ymDcVcDe++~%>a F-R^9F4n-7OHDLbpP@V`ScC)9z9;*UH{}y7*zQcciE_4$TvDv o9e Whr8@`D`m_tyfVhTVs#nwBbYPh#nofXORLYAx0nBcF>fswHilUuhk7;r8^*k?T+NtQ)jwy sFc0m~M)j&K-vDFJrVUIq^HYVj|OVV84Qx8gvr7h#_fhk3mSJ2E)T>qXcv#9>}~VYdc{dFkmf(-lL3p*@Zn79Hu(U#U0t>E;ha3AK{;oMU!zyw&sm>-{-i~%DW@PRd@V#xZ~cT5m0)s2s>WIlU^_W b+16x0>oYRI&tS;ld477_Il@Ehust$>h*$JhB#1q$_RB4|GGEa`|nV%6=5q8hk30a?Tt{m@L8B_iX&` UCI1*?jR2sVSREsWG)p2Ysog^m3Ea{s5h><2V#)Z{QfWGs5DZg^0zxCxtnIZO{2_C!Vt kFTTXJVIBcYdA$(5w=HO!y^iCBXn1~b^`^g5w=Rk8qe(W6tqUzH5qH%k7c59Kc1<^`}X%KFpjX7GShf zpZ8(xbntu|4t;aKT-h(D06Ic(Or~)k(&id(?UxbUUBR`YxzoJ@L~|#FdVRY07Yur35*YeBiND$fDA3 %X0>+eNn}Y%!fqC8e7x7n1fCBZxWq;gV!P%fPhs_S^a@aTID@Ze6Nt*eJ(#%(qX1;Y Ote!9<4m+u3foMAPGOmec1mHG$-|~F%;Y^&*kuY$Qdnj3O({$=g)Av7GKVWEOmZYf2EJSjjaSh~jEz^ %NDPjj#gP~tcv&7ESmlVv2WC0q0fJeMc!Xe;V;&(`<<${!T`BDH>R6y&oU0RodV#J^1?ok*IuocD>gu jQy;N7{0`+2D-4m#n>*~Hh!3jnk0XKlvXtjXFaDg~p9f|P*cf2|h0|xqdbtFa%#(s4qhOB4AEXE8x^6 E$o8mQ#ekr*|w$*W^AYCV}rOTq80zJnh^QQYdE2o!?2Q=pK;T^^kd(Qm`4ba9G8yVZB|TcONu^*sWGc z-HTNcU#~g>df`C}jKJ1q#vLCs0WCet}{RKOj)d;RgkZIsA}7F^3-(C^YAv1PaZ0M4-@|M+FMad5lr) RA2pbfkM8&5GdsP&jN*f|3#pX?=J-k`Th@qdihdXB1P35QCul1?kG-8QEx|aYKm$*B0Eyl+7Zu{qSTJ ~;1qRs#0RISvZFXWMUfp5C@D(ph!;#zU`O$LisCwo!&4O25nr5EH)rEgoT5p*aEfj1#0#e=t|MMJMPV JK7E+YeQD!AYRUKskQdGXt3NA(ATi8|IVP1Z;%t}%5_DjaR{D|&N>zk+B(%Q?9^}4=!S|vr99P2f9q_ bYvUVg0C*p$wCU3>YlUe`A#2GjcH#9&(AobOIiVaIxn-RZ2?sIp_dMui>gHLB}audzp+^}6x$W4*>Ub =GT?<*{C4r#kC(bJJeo4)gM3y>7hxSg%p;$9j!oKh|rM`f;o-H>}4+CsQJ5!^Q;`06+Q>CCLjc 0RBdRU4R0WIh+EDwy<#NV9f|_AyreaAT`Oaklbas@bZLuU*(1*3vo@HBNiOjjayF+1YzZ02T7K3wy)rLxM=-TRIeM(%!IBfJ1RA_ujBwl|w-%?F}0S#1#_G3;QUORGHGoePN}hL!mkQ!p dWZLUZV%&DlrPUWL5%!agd(tB|=~*cWyNa40lqU)UMIq0pRtM1WPuZ!hd40<1!YdtqPLZr!2Ko PA+a9fv}``@&jVheE#l!U|}ILcaSbgIYz9@4m1BTU^CPzLY4fVk2M56jrg3FQrPW*vOZ1rB!U?8&>f; )W|pNZQxKN-xnD*@(njFJJiTGJk-viM!r;YRK-TV;h}a8HS(nrlFAUm`@&}X4mI)(JLfpm$TvLH&Y?! WVFR7G(iOW^*N8o=#&@VBhbxe&^W=Ohu&IL&*#v=4ofn|2pQySZ+a3D^f;3)@+l#VxXpcYJSCL%jw*-6x0Hgk;qs}4IVkc$+USD+Rt$gIFCo? ssXR&kzP3^>Jw{p@07%g)%GQo698eT!__8Jh!27xuGLku5u8b8zXxe)cA^WoK;8EM3^oZbY{1j4RZLF 6?LjAzOC3%P>3p*>T90o$fO1&3^V6vSnv%PDfqX&+|dH?2OH^s0;hqN640)u{jTQVLv+u*|IY>2ca(P XRmORu(@yK#O|Q4<<>F{#FcCs8k=) X7xq*2SvB1>bUK2*4M!TfA2b?3g_V_TM;e0DC^!j ?`U-oDQ((lkG_33Z(7A0rq^d9jUtvIUQinC)<&_%aGFn_I$D(sk;n09bnHVn})_!ZREtBPc{v8myMj* ^U0>6?y`{+dp_AT)Lk}mV$Ua=hPul}PVD()(@=NW$ca6lY#Qn=8#%G((_C3q8#%G(lTAb8sxfk6&nKI Py30mR?D=HVPP`yso$XcMPHLu5JS@z0wmnG9!$<~!|9ZROM)&=af-c(x4V}| 1EXC?F9deM6QY)ZZx%c+GANv^eQ&*d)5{VcUSHz2N;<3qk%@5Z@)j-t3*u2`?1MaXx{o+k126aB>9`f r!|Z_5+$+-3c@EB&`C{kQf0p}N+8yVifZ)_+?zD~Oxv?se0lsFK%=>;`L(z=&c(a@;9jASo(k*R HId^LGOUcaWZ_3p4cte|Eq^+f!%`rzj}yhmKN;))kDM*v|#_Q((zLc_3r8_o%Q2T&p%wH6EYmy1xkEq 3-1I1zC*Ilnu;DB%T1+?F;Veb=rkm|>J@MV9o9%Etv6iNr?Qp&L%U)N88~A& {(GNFJnB9V-A8usngQFilNj|#;M?ZXu!s-?r{qSiDM_O?7!>5TYZNbqGpQa2=3yyyH428a?AMfxP;!; gN-r+N}WHbGEhnrYN;OK{&SlhwT4>wb8!1UuCZl*|~1xG)8m7=f~9Q|-BP3smM{qSwp4RG|s?fgaH=! e@WC((kVA8uy}f}!)yt$e{M)e C^;1JJxaOT7F+0sN5xw~zH_u%EMM$NT>5}=nJsoCE` 7k30s9e`gf+uv#HGFBFGIduUD0AA;^=Yq8rX(7+DLh_7Ml=9Lff$gakP_V^DM&#m(lY)f3d}7^dip%ByC48QvTBP1|Pk`dWGEW=oO+?O>gkg7WU3a;f}Vj)?u& 9=vDD7xg`e%xZu%jh^qs@U@~I?lR*wDfoluNRP*9J0U1?+YiZ(#e3RP}g+c&iL3)ry&BZTCpc0?m!t6$tXD{5k6$6K#IzS5zrvml+3fL~yw*T#@$s8H8c1r7-((q~>Ct!x&rsyH$2)lrqVduA 9o9OexX17EJEQl}m}?(RGx0H3znNCzW3H?+jl{?MSPJNYH0C6=X(B%UkfTlXK^lL^J_YIT@kgxB*eNx p;~ituJbZkV?FLx3@p0B?B*VwlbvZU|!^g*&S3ypEvX-qG_A^apdF~@MKH0!B!hWX72G&XBu_qhE?|S )8USQooI(zaW>lOAhOJ_X6`$*UZ1U_aAjoA{yzC{@3i*5H$E?46P7o@`?-2> Y2Puk#E=#(VNQCFD)-@QLvINPJJ;V1I=DOp~{GG?4$Eyv-Vm9Zi$B*#aXCKH13}BX%`Sc5-x$Z1`j+N 4eP9Gn4#VwNdlQ|v@?5~;}W1oWD{p1+??%Jeic&w1ZpB!f!i+xs;QXT{Y*?ZM+b+~KIzCBK6lw`>Ehari)%w=OLWJ_q|=(`4lK@uL|SsaGb4T5^&W}z=b}X44 eoicE{qov)46T1j-+ckw++^ZE11OeZX2u%vlfZz-Zoet`l7_NZyT%+J#%9Ew++^XmMk$1+y?7N=S&B; !8+2p$Q<#vK8zL<)5>kIK4kF|)5>kIK3x4IrkC4beHcwR6vv~i57+vMY4tW(A9{?$^m-etBc+T|Bi}F %b*PbV$kjO%@?FR3mm2woJbhxC$qm+p(Xm4z-*q%0OtZPcx-e=>OuM4rC$4cD)U>4i6#4OeW5X@obROn 742;0wRA`ff1GR>d6HILlTA-1A^I< Teu1nr<)~MyZKuOgETiyI~GloMpSwHS%S<(KYgAyU{iBWxHWE?98&=SZ0XB-tCELN;g;+CL|Kmm2R*u Bo`9Xm2R-Xo0F+vJ-H2sTPCL6-CzS7DsvzuEw&TW@ounzO@cX)azhw^CZ^@xU_+RkOH9+d!3GK@OxwG `x-d*kOyj%3hLDI!OzXSBhH$x+nC5qbb>dlL^25b;V!GcA)`j6|V%pyg*0Cwdjpnc^%8ll*!N`rtXOo Z{lh2brHzuDaeQr!XPkNBfgLORVb7S&((&xtH^Tf@Kd_yuNF|F_hvmADr(=KP(Et|70XIY=kNtYYg*q C!JH}E@~Q!Zy&pUoMUvmpiGP-F60+s*lw)W^@Ekneg9%FNl8>v?vYlP%Y?<2C16u4l(hvYW<2jf)DCNUzeOMy}YSR^Af->rR_any0H{@qjC1rGWDZrhx|A^+dKvr*uX|L^ubFL22J_iJ|x9PbmK?+ P69|NY^E0*CznZAOeQYCBi|+tWgSP~Exu-(FDT5BdN8Z8g4-|Lv!ifM(S($%BK)t5o7mi7v@Mq#P@`(j$4v~=}kgD^`dE?qs``a0t%FI~O#(hh+`vzFd?PvEh 6KcQJ5`c{v&9~U?@YxwLl0*7Xeo;WOUXx4cDn*xVsjdlpl0p+)P_@o$rkbbML9(`NjkpJ*GVHQCAtsd ^#DR9Vt^s4&%kpI=W#{~}gj}Hj9n;7{&BW5lrKsP>O=BCE7%nAJh4Y+!|LFfmFK!+a?ILeG)AmS_r6* xQ`rqUdWGE^#mbtsCF-WPva?JY`TFlG-w7IwOGD4I!!{gfSu1J1&J$__*m;;^5x1956Z*iYGkehA{Qp RxmSUPRbW*@1ol;;^5x1HInIVLxRDdZmxUe##E?8lQwc+8pTBJrN^>GaSSSc|}je2zf0}#0Ys6Pk4k3 MaD^r*idAgXow9(#>s-%P-L7Ah`WaGAo4u6Oc`sgWy)w>7I#;oxa00h6nAX+EGDsI!)Gyx9UDH2N$lA 0SxjQbhRtbR?y?k9n%&3>|@2I@mpd^NGh~SGsX}R$D_uIr@@KXN$7Ft2aa&K)CgU%B4Mh rSj&>L~jP$N8zKxYYhBLjp?Q7soORQtcg{njqCi&xdt^4)vPDd-)uS8lA_9Hj53ZwoXV8q}nr V63iax1FUtZ&YZl#?ibaWE^1{I`{LFUO&Fs(b7>DHBjUo4rbK+ksLm9`XIvP|z^)tBnZu7MYZ{|EbGV tMfa=WQ(_zJuLs2dBK9Tb=sx#dRg;BFRLX1X@ab}Bz>dY~9fpI7-!!vASQJp#5PD!p9)tLzgz9`O2IP gVnX2O9lN;4AJ)*n-`G UetF#B2X{uyThi94)n6V|FN)Nd=jIAa&axCdt+2kF0SRE9Tk*|YuO&5f^u;!dj(WbF0N&Ng9^&UwHyP X7t-Qdw%zDfzqpnXx-nWJEv}{1X^f8bi)-0-qchUtTB@~((Y1bYE&FCPNLpOW@dP^8FRo>;fIdl!Ys2 bVhngC~u$nlD(JpCmhV4E&*e}lT@&{d$7H4>Aj4t+~a4|+7`^6ddzUXAXIK%!Gz3dlfc(s6T_KP!A{S ~91{o)KSoYB#KafTPp=xM(=!;4?EgIb)SvY5Dmd}larLszK98D7IQknap7q2mVfo#D8=HS*=PUTfsba cXPi%X7aq^5wbT8u{|vZ;gC;?zcw19Er9@zHAvf);G|Q<6?Hb=#b gBknQYVY@RC*Z$gC8l0q)P2F}tn7E{4oW;(?wZCz<@jb?6yzA_{r?mbG)sDkMIK-1<#6(lSmVdznRM%YO4QtGPBuS?3eETMzH!)iD;C=UcNR6Yd ^V(|4ocuZ4rx(BTuF2A<8$Eee*YN*qW{jF<1#5#~hQ-4GXB8|g)#BUj0dhLd(WFw!Z!ENg2GJDT8)umNZl6I%=*(Fxl Nt#dHb70xzz9V1WDAMaUypOo8Z*LP(P+CmiaKmnhZ#3%krix6`YWjwonAWtmx82nHr$(K&-z2I`+wdO #JDJg_o!0|wzQ<_Pd)JM*{8RDNZL|bSGNVzut{FoSO=aoSJ#)(jO8l15sNKphXWgkAu1(3swfp7Q8Kt ^e1chpe&PbRN)JsGX_DU2>*lSKAVQ{quo?e^YhVy*g4|`3_Dy>`K@xU#?)(W%MNMRjw~#9QZ8-g4 &EoN(9vzkrWB)Ga@MyRA@x0#Jx^Ma_ms05y`z1)9tM|ilVL%q}=BECC8(Z<8!(Wwsf^1drPKh%LefRz48 P_l8?1C;+sP_l8a_!=+e;o$>I8>y5eLD9z2%X<`4lbbyc?}%(?f})M3mp3iZK^X1^Bx&DxZ#cL4>f9E QZ%@fNjt2$kg?(yHpkCS!2+&LWJ^^}R-xnT}>p(B;2L$Ma{Zj$r;OINTV`d%dg?*ody|f<=kJ5 FZm-d4KtT0Lft$|XSCqezj0|NB&y^lduZ~QDg%GH5hs`n`r2T3c`i}j}p^>Teop&34whZrRm4+s#`Sb $!#_X*Go_8v9>D6e=>fF)j6pg5OUfL^S33eZdSJ^{A)vuu)3T5+dBy<8O-<5vZW*(z)uDl6_(s28gOy ZBjwda*vRu DK*h$LPVa^1lBb!t%LvujwWCtwr{S UI4)jX$GoHw((fC<-6ubkylH41fFYiFFBlm>|+BfUb_-72NbAjAtnDmFm5MavlG65ACj|$LB^HH`WsK@wcF#=wiz i>J$-pLE}4v9CWzKUyUlg89nDcICkDcICkDcICkDcICkDcICkDcICkDcICkDcIImDcsgqDcnmt(gWuO 9_f+uGLQ7od9g=&?7Y|`Ie4hlh~(&@RwI(bhiZ*TjvwkZVmW@O*ofu$p=KkN}%5FhpkO|{Ji{s$}7gSqnZU2>GFavGH>#qIb}vpzSM3yBEJoX8oS@s8qhTw5SCjxRBJ%jXh294I#g>w *Jwa!*&M1hpldWB?DphPtpQ!50b%0Fp;`mFMgzhWlS8!zbd3gt*-(dS4FLW5{T4Qk@|=2i8AHB>jiWr L-d)C!Z(-voBpG2~m=ILdSC-DM2<7B-IZoO*W|L%xNLqdceHUB-}aVdE&zsdtw#>9(+Ol;_kJ-M* 0%8%KFgy}NAW#KuvcQ|~StIk9n+=hVB)Mow%THST{d!J<0ucUbeFxH&VkZ6@>t3tM?uy1TggP_v6MrO0;=z~l8MUY;kWKGsF+(2icW|g4^27{zSkdNCJ>-cQ@-WHh P(9>{8S*gS+tjVEz$P+Wc$LxsqJR*|~|cw~;H!b)21>IC~qpl3d5xxrwv4kt@k{oSmCEo6fCpsFst7v$v5e$#tBan>c $LxsqJR*|~|cw~;H!r{nDDQ1vz(n(ThiXaG5>Tu1P^iQu=9lgf1jpPLAN8%6NBj^J|>!EXyU%Q#ePfQ hrWQJkIYI6F6S_BM86I?m2boV|^mn2xh^6K8K@C#K`<+{D>*W{N|#oJ^d(jh&c|vvU(?Z(}E>8sRlI?0Sumn>E5~Y}oZ0AvfX vYiy%+xSyMF|24LxI^54qxc?ekQXTH+2=~8#jV-A>(!yPazP`qmw6FEGFhkCkw9rFdm?39NTIeA!jJ~ o)6k1;kBPX_`g_cucXJo!DM{YH&UvZeXWnsOh!~6^hi((v>;pIPKv@2g8Nz%{QK_N r>IUChhs%bBlAKXhMGuKx-Ik#q0*f_$W=;OMH)(NFKw`LPL6tRCHR=Z=CDPqL!mjFX<1W(mKkiO) kcY3D1*(kx+#&t9c&JFpgRz7+YEg^@2UQ_I5 0my#}JVdVQFqei~8(kTlg->~JELydfC!BZASzTttM4mI+nHB4C;`4WFr7Dm2A%#?+ZFA+XvVdP7kUs) RYvS%-ieA%;?M!xLXOCw+Q?4^+}d-l@EmpyxF*|V2MzUDaK5>xfdGe&sI9bwnjsH1%~BH@v&P&Pwv#vi!Ba&cyKDt%^_EK6;*w_k~v3p =f0NY8YiW)NAqhXlRuk>a}=$K>TH|#Y=R&x9|92Bs?8P?oc!w-XVS$hrUxwaEE$5 9n!fS4z2K)#rL8W`Gzp&a;VqS5tRWt)a&W!c<7VcK3a>7Uk;-Thk6N)Ukf86heCpHhcTB!ap?Qn(7!n p5_~s|K^*EOxO6bI*$(v*9LYZ%=)6o(Xi$a;l#U!$kOHH1UaYMxq-ITWqPkB2d}L (yt}eMo&c6s^dgV%g7Ax%3cHgw=W{n>Y*TfEm<$ofKd>snQ|2EH1l-rFDuzf~PtjV i9Q&4p`e4FhCnqUq0iMK*Kl6QHgpz+nx$Kl$=p=d-h$37IDu0{u0CsB$wI>cXu?p71puj5e2_o;9N=} _3`wc=SEGO~f^AX-=r>1=U_LcZ^cXCdE@ST|5iH{Q(N8O^FDudx3`P2KqYkWF!@m+#V3EQQR-m-Pzd^ LUqdXD{EYheBSe?Sp+De!zATg?3A8SVm|iHQL0{ChF}*FND0KLot7!W?zP~yV2VrALdZR-pARhp!#lj oFi5AkGgt@{XUBDmJYDyfOKDafn!nB;*AdS3`O6lAu(PKMdbD-dr9<+8f|57h046~b8Mf{FKYZAM+M; im)>We0`7l&oFxeEe`!CjCcynKJ;gc+?tlCguaCg}FHuIqp_sofh-V?+BjI}5p@^?$SvSD_4>#~gg8N ^3i=_bWe{_K75xD>H6Kq9uGk`8g5pRXa?Fic|aQ~B|96y8mA3n)zD{%iyuX40$jt|?z9v0mH_ !!$9aQ{O((axdhFSefJXLEemM)p?b_^@AbL}88(n+w@NhaxhcK)0`7mZMtrZA@8lWr&anI&S+C3?Ur&m^4Eg?wc?NL*BkH@^_QCy+-)74I?q7K gbI8|GmJzuB;U{d7!2K^h!=4@7|I+(B&fxw>d)cah`yUDR1Kj`Bqr9RwhkU)tF_JmtOTan$5-fkM8=Ietco>CzU~4b+%UUgohvjp^`7wkqf!wX}`x1`0x#Ugt=rGRzo9Zm0`g I>Iv)g`uNo#am(izQ7Vh7pc*kVb-YaS7v3+{uf206R{#dBdOsm^Reh8wX~7P8J(miukcJkE2-fcerNQ O8Xn~DMV;x=$LuxGOKLnPP(RJ9?w38aW#PKA$NsW%NmqatE@!LEa=p{9Nn= LR}NlgS}gGN%5SN&T}uLy3#k+SZ0VfmkC>y7qQOGnu6qdC>^*)Xf`P*{cyJonLBW<|$Xe)8P~PUsrHNprvG7*3VqjRM*5@lMj5!eqmbiqSyiHcJvLkPRQcBv4 fy-WEu758tFvv5+Os?lNTd3Xff+Hh{RxhT>*%nB?`-`KqwN&_6-Zu>c8K4_blX9$r$ F+0w38e}f#mgM8!IQ0*Q5Qk^easA`Zz6wi%1pzw?%BK63B8Cu@)B6)#F_hJQcDNio5KEHCZDbLR37%F E3l3xXW;fZxfkOAlW;4n`LN{z1ztc7fAL_K4Nu5vUfsf$T<|rz%4{p6-f48Jx*b1fn@J+h8EcclD)%O HUmiZ4mlxTAlW;7ikAKblD)%csGz1mvUm6*x$y$Y-XSN73nY7oukbh{**kob4GfaKLk{r@BzuSZ#23M ^?GxjSWZ>Gc_|lZI+haxa}iyaq|y-OdmP9o X6bciiBlD$iF;;mpQXL+2F>>X{Sg;arL@90_amtiU265op@DV+!5P*}d(*gc%I3w2mE*3+-;W>yj^5{LH4GNP+{y;nnAIns9fi&{y5X%T@< k4aAyU?6tJj;+q9kO6f38VMDgTRT4ohU6i;5Kg=2w4@#GB-hmj~=dYowN0*T^3Y=4T44l>2 #jkIPdx~ed^EszAhdWe@4NCFSn^ZVq+FSEZu68P$Io+C&C4`*3dkpv#D7tg{kKgEkAB!P!d@dC>vfrU >uN#Ga4?FSBpUuMd-FvkW7FP57mKl>VUV9;AcVHQXN4|fm&R+uF44)*CL3H%#=E0YA?%@VXpU=EUz1R fsc(LfS-c#O!i0!iTEakfQB0x!|&><)!rp5-_MsoJG=JnNCFRWS@wwM(-^HWVgRD6-d>Np63+ `QnjP!*%KjEJ9?SzBvQ4bmx(MaOsZCJ3?^0kDoYTl+7WN*D3GchZ4-YP(a|>c8c5ZS-e#%^soK$dVk9 A75$~B)?LIM*kne~5y-3xnSP`k((HuwnNY$!%52@PmGi*1IsvXnjB8MV&+Q#!2soL=lo}oz9j(4)wAy uoQL8NNO@A=qidM$7p&g68z3o21CJ4gbLnW8R`1XdAjxl(y%fh6#F7yCgZfmQU2B=Goso(o6*pZ4#J0ok;?(XTOgm@Z<@Ot4$L473QXp1Xgi1lE8{1tW4C+vkXaK6_XW%VD2wc3|C^i*+tU467>B=(z_B{!YF`4i)33$5d0TuikIN`FVZ9|u^sFpExtn{H0A~~cI=>Z2*c~FV`z{THuGpC-fr*05`p@9sP{8|H(?>=MrjURk>n#d~tY1|yWW80vs_~Y)4EesMo>GmK+7kJJi*JahkRZ7 Drh-+2Ja-xLd|N#Qd2Uy5rvE79xKllaN&Ak1A6G*>g {7ty(zlctGrf+!CBD%#B>I*XyQXW`;II_)iLjVi8hv1SdBTDG^^^E&$>*4tgs?eFIIKTS6`;(c7-+BrFYeFzWU>k_W||CYXgfv-WZtG0ju*%2gGk< b$;nX@yD?~zx1Jc8uI=~ygAnB4iz5xFzm4U(gL#Hxx$a<|p;)e8UVG^#yMb@R37_tVQ~a>{s?5ORtGW gjU*$FF@(jlX6$k+bv$#MAIGDu+Lcqa7TqWSkw2-Jk2sl`LcWq$t-Hn08cSDobi4Oxo;9&kR5Cjh94? _vz<#poCK@>Qc-yB4NgZa%-MR<8uy?NKb;>~jdi#Lb7XVshc4J_WgFtB)Y$a}qd^UA>D&1(aTH;25}t 2b{A%x`W8gZ1LgQBin#gLrepC~OeFjhaFSi{DNSEPfmEep3B**T6h#sQz;>j~dGVE

yl-If=7oX9 o5NG=y-Zy@DwF_T+NWU1`w0bmd9S+s^krIsS11x(b@>^AqfBtsuJx=J7vF8YIDa?F52edM{h{-P{9&MF9n2qw3PkBDQG)1T{;l#*3>D Gxi)Y!1UVVHXPaNe%N>l5nc3+rx4La-;j=K$VvkfZCLenZr v3gaons};smh*vADrx34ZJ%xBR<0;hB&?Ln(q2N*SOsII2JQK13l4nBAqvV-T^eBm>!ZJnTY0DIe4>L @W7;|JJB#~4arbzs8ls-CG{Bg)z@l2&5M;@>WDrX_ zAQG~}&_q|!1);%Uni@rPB0DH5YrS*D188wHD&3Ic4HBK5S148)tGW>In~C|Z=9N@e&Q5z|zL&rz?2$ Uw0oC|s1R2r3sPD}vHR8S#lJ-FLqKt@8y(ozbLNaUK&_@cV%Gl-H^A6r;tH)u=sA+a}`=NCbK7=MpGN<{gH!}-oLR cJ@K^l-{NW5bLF5L>%Ya*u;POVmg@MJ>@ZtyX^z_=}HX N<%e%NFV)q5d6IH(>$g?QTf3-Pq|7vgE_FT~T3x0++7GC<8SQyHMxQIc6#Y)EqOF0cwt!$^bRTVmrTi8koueHOEY4fSO~bGC<9-xL*0Yo0Y %2UGck786dwKl>sVjs!X|I$Vf_=msT=q+bGsC gf1#MVLA+!+b%Xc`lW?>nIlW@J4W}}@pSIabDI=S&RG;6Qsyk9QL{m5L_?WEaI;m+UZ@JFRdY+OtH7Q kbD*LED(M!)CZV-RLq>1HBMS5@f2JsgRL8w1-Du<_j!qj_9%Uw)I6Z{TSn LPCqQ@K2~lqjayK=l`<@_FhnnA&gs7fkiHl%~z<>7Ov`JpC0g%pb}LS4^$#)eSJrAL$zm|F4BL#Sp3+ 3@5CAqBS?DpD3qzLUqGbCP3X_azFZpsce9{VXB^2n6ACO6KXM!@%lOH^FttWh?=Wrc#SO A&LS4yz#dWP6pVDo~8`` p@OBWFD7DO!G=N-fl&<}Yt_e???IYD3R|sH(kcL(nhZu4ZUbpJnf0myXZ)(bMz kB-HO?*qO)S+1>%m0opgH!zr#=Ish@~O8?BsbVM;8B0Xn3wr~WXucuPZ;x3{#(X!yd?GbX+WJWuAzQ) %`$V!pAf6l>Dwle6RH6%wXlZzfHYvG7S{MJv{S2`>~@@2-GJ`;F~5@^>eY<-q5gBm{80bDjQN57{}}5 -2x5c^ptPyA0e!W&hW3> BlHMB{-!M2mdHM9}F!LF0VHPjTlS>ANQdW+p8|G=0R+dneq#kT4zvRMswda#0JD;Sk*MWd2wqmr#)IK Tt4!O2!I9AN+0;DGp3a~c~ic>aJ93?O+YcRDEY Otf?FB$Vv{NEV!Qv6Shc`5!4W3oq1gUu8F?Y}YT<@Y}^=H>T4Gv?*@pBbyvN1FaadwU2M`$(C80v$H=o(YEOiPu)L6d2M{rfCe%!=Ry888kJM4 B|I^Xg3{_-;M*L8&e&}F{3ShW6*LyNrCGF`Y&&v|)S?uNVy)KK Vg1<;|BNtiekgirQGrEXyhZsHdGQvtR}}TMD7^YJ#=M)OsINuI6-9k5>a8e}YEf)OkyMLHD+;1plvz= f)uP7guNds;~lUK>IWK&_WN^9a`%8^Q`~8*1qWylPv1mWlPj~=B^w%1T_WK) +Mf?4&#-jcHPGix2f3LA`q2{?cnQoP3iV(7nVEE-U;9s@|B|E@730Ov*k&W!+^8v! ^s0&s2w;M@qnxej$g=;fpD22UBGLv>W&cNG(KEiip%xnhsIqVM2^9m#GF@_cLH8;WXYhjVRcy`R1 >LI_T>~hy6~Qu;!oG?`8A@SaMU)Jsu&*LRhEmv95gtP+?5jwP0es!^q#`Z`@O8_Rikuig*DX(KZwFnsJgE -F9l+KtPpbaQ1L(TtDII0ls<%9)7>WUG-tv^r3urI0Jf%dWp%U?{*8D>y;#X0_1GvEDDV1GfAvPbpS(s6_lKDPpKZ{HjjPLnY!@otQ9GB7W6LTSG14SDh_2)WW{%jJBZ`_ SKoN7WUP#Ukm%{*sq0sb?n!|zB=}6VPBmmYhhoV8ERo)of&FjU&Xx+wXm%SIje^d`v7;&>LJ7?z@5{2BEk; 9ozptmfZpCYtxFW_{o6UK2<`#w_s&_J)UoSt=d3OkK#uR6)rQ4>zn!y+AIOR|h><`<>H@sU5JdZ|Ag5+Y4b|owgUkzB+9$gnf0|#$LXi(>iTqBj3(xow l)yZ|Ag<(FSM@JExUSHemnW&S{MPFO`}yG~d|XS=rvJ!b`|05cd-Omp99< Q_A#NqlpalcFaUYEGPO58v2=g$)3na$WSBjfdw-~Wj2CifSK`zvnWtWG>n&4N2zZxZ)EDqhL`UE==5bNh%F0-w(ABR&`Sbk-PgC-CW1KH^^B)5(0qOMy?P^AWEEKAq463Vb?)k9a5W=^Q@dy};wvoTG*BF&sENe)Ax{c}kxJJd>U^-TE`)(zB)n+lW ignr;9Zap_r83U0)uXH99;5tp7dCFw?7de-!ysu7o-HKp-JTzJ;jln)qj;aOW#MqtE+XKhW3lo1!6wK ZM4kGSxxt!c$I;=;4Grt9|+7oN2>UGI*#u>aO{#T)Qk*nexf<{fci|E=k|cEpAKx27xG5f}E~nifPOF 6_TGUEPkju>aO{eLLd9{#(-(?uZNfZ%x;@BhEANJdx?=iJ5TTurqy>#6^5voG#5rT*TMK=}Kq BMSNYHE_Oy-#Mi~?0)50qd|jNbTSi>O*Tw0gXT(K(U7W7R1KvvelbO4f_9ruUEA3Ba?pE5L%-pTCKbg 5(X@4?vx6=M(=5D3^$;{nK`;(cwmG&nycPs5rX6{znpUm8?v_F}-TWNnXbGOp|(@nJ_F6~d|*G}4>%& (oaKbc=UX@4@mcGCW2e(iV#I`0yBFHxbpM1}5h#)pLKMdE(XpT~J#LAz3n-{tAccq1;x@3PLXt`y^US ?5<*it)Rw^Q$XG{9M-g)s-TCF6;d2N)bPob$)fFh@ZtF9Drb6MwAS4q3;yy_}xcb!*VCGD>Bs;i{kbzXIqw7br$u99}wdDT_Y?mDl !O4?oLRaZ&7>%8hJX?LAhT_x=v^XkzR$1$9DJbrV+qbli9I#at!dX&!8u96<5GqtOvN9j!MYUxorQ@d Jvl+M(ymL8=uwW~R| k&=-YUH82I?I>HLce{FJy1+ScXf&{k%I2(38KWNkUP^i@JBQzi#vMKFOe#CK4GI6GsPWU5tPUicl3N) B1_!Wvqp&=afkdQWQaR@rBY&7$Q?aTm&g)#b(K*fNBonX3rp+@xvMLX61zg~u)mEKzN^`X61zg~>N&E +u8_NWhAgowOKc3eqbJW28$-f}Ytp1d@2I=vv#~=Y{I#Z3O6(E&M?F oH*duaBPeLX3h}_XrP>DSv(+$HT7_EFquLDYK5eW~id7KiPMDA!7t;8mgJDNi)u}S2vX2?ox61l7Euo 9a@?vez8O(MU2k2oiGiQHvqwDMi@gF(D}`=MS}mJ6<2l;B(LYPP5Z+j3Xe(j~Z-yCnX>wA>|G2|UX`l Q9O%^3R%sEWxq-vt}Sm!LYpcrDo_#!LYpcCCP{jUe8sD`M8?#nWmcY6=yYL{Zz*54Zpuge11ZctBS2Spt|!#HYTy-a^{8TF_a`hh@Jg}HIQLLzeB|q bSE6;oQuUnw-a1jq)eBzv)eG)9HQnYiUeD?M&5T#N&5X5V8L#t7x0&(hX|lxUXNk|x`0s5VX&~hOL?k u^kMt(7+n`C4iSb+%eEb)QmCVBN@n4iYei vop{+h207j@!!61xW$P2&DU{%I5A(aPJvz1)Yww^&-$rWvD4X>44(YCH-Tgeq|> vFV}T+y~JI9tgTZEFp$m0Z!bE`?gj6>Vz`ua#WUwyqGwxu5~p8eS`zoo%h*wUXJ{)*4+jKwx`>{MqJuoudQ3j@N7?eEseOe|MV4y5tsJYi(zp_Xu$PySRCaUa9vx 9vpfT?nFDc{XTUWFE>80dxL%!#<2(bdSD@lN&wy(VTpZ{ba9x3l6Fmd2IdE~LXTbH^TAb+_a9y{HLp= koD|d0KXTUW}B98S8xaI}Kxt;;nM2R@qGvIoaBu@4WxLyc}qdfzz*I?po&wy)ILmciIaJ|kKr+Wrmuk ^+7o&ncueQ~~Lz#|uav{F8XGj7LkmY$`F0&#X|z%|R>O7(tQv+S)@@3-|Tvz6-owpK3>&krRtTA~7J6 BYR3L0|g*E}_nK33aYZRMcI9OYNK(pWAwT#EBjO*W=SUF+R8T_=p2P0b$W3C%WOWb=8Gx*!m`*U7#|IGQW%5Xh#KhJMj&f_=Bd&)3ndBQ*QqyBlcB0YwaPlF>TJfYxRV7N}Xx^SIGdNJc8S!7i 22-mr%6*>2WBIlk^6p7C-cxEg3n>FEj;`j2(G+d`MT~^F_Bo=eZg@@~j-#brzKKJCrn2%6$?I-7K_CAw+Vak$| qdsGilK#{JBj$Pn&ukp4p0)R#sW!O`>o;@%dfC{}VG^(evLsPvp0`T3%1+G@a0WSouR>T3H3tX*;1MUQ_R>T4 K0#{l@RtYY0>zdLc0$vGRX%PXh1+KJ+fHwkHT13DX0#{l@z*~VUEh6BZz?Bve@Lu3biwO82@Tf%`tsI Zx1j_Ku3+Y)(^3fFmNulcTnt meB8!gXE=)mh?sGCs4`TqO_Jd1X`c{XgM4uSDy_Oi(9g;yN)C*ZfVvaGh5wb;DOyHSIVuUQgWL^Gc#g %w$c1LrLti$eM=xTa#FmHv=F4#4d<%osZ`t;s1-CSBi_ontzetq!POh!gc=qE#IG(wR}H%xX%5#opXO ~6XV||D!DeXa%(vUogJ#)y)-L$(?GoeJCGthCtaelPiPp~;o<1)e(ukQN1>DZ6D#d5vC{7NuA%JkY-DzS;&~GJvrBM-J?H4NK9 PThgnteRrtI*@0&;)Ce-1l>ll$F~`;SzP{uoa63*VT?%md#8oehahI}F^i1FtmlqNbM06C6Q4_tew!I nQk2I-TkA1V@m&Ijv0cfqQa3@XD%4s5`}+p7j{6bM?HK^Zk3poJab+;N6bqiSe9!Udi}``r(FAmELxZ2O<#c`PdSNp lVI50EdYCo6naZWoe>W``%=<`> J`MYYlMpU)Do~yc}E8(M+>oFXDmoQ7p_x|DO{&)eYj3%vgWX&RrfCvBfrRUS}86vu6~E>iTn 9XAFikFr@uE`rFfm5**5+^)wO}3C<#1ryR$k<(2)S<@;6^EwAhsEnk@|4t KJX`)M!v@jCUxHZcxui_XK-6P-pdP7Bi`oklRu3DYy3MlenY(?gv`FwO?kQ=LXIP6g9roklRu1JiSzM lenS(}SHxFwOwelbuE|rvK^DP60$;BN!+C>ETWz7-#+I=}sdUr~K*hP9qrS`|0^kBN!+9=>bn8 811QE*bZQ{=k$oD5sdbnp7At-(Vo*oo<=a*b9&0t2u6GU4FRJ)r{_G4V6^Ao5ir_wdeYMfMte?=dJ5n W?KwRlas-nnM2=wch{zF4o)I~M$wMMXFnLPk2quq-9Kqx{kt3KqC~^doCq<4R%|&g3KMfYQ+a>18ZpK%|U4oV9GTzfVT&H|=mx=20wKFe<|J4dD+#?!9oOy}gBlfm`cT f0Vt!Bb~8M#lbYQlXvxlgTb!hHp~PpxvgOzeHfeQLE6?xQtAmpytLRLyDOI%N;KOz5Mpo&AiDnb1gIJ NtR!o^JX%d|ZWI`rT(G?irgoc93i5?#8x oLARfV()5qxQCJ4&)0EXQPOIy6J4%Vb<~L#*Qz?|M1N~l9d)9)wW^Lf(b-y6N1bSEt*WC=^t4vhQ70N &tLmr|-KZlXFrB!v*iN?~ZI_g AMX;mF{qNTK|jylm#T2)7#XeOO}Ww;_+x5O*|fbqlw3(X* BV8bc`k*k9N_-8$2ro(<8hEQ@pv30O*|eaNfVF9QPRZYp_>qohiF1P9*PO^c*rHhJk9U ;7?&c6Yh_gfOAkGe{gE%{M4&v+(If%1E;fT(Dv;aSbQ|896jZQ+s2&xGQBP?1;7-6+a!U)S$5=K~?k} $%8l!Oshp(Kp3^dw<~cdkho;ecrpMmS%Zgb|LHCSiorrAZj!aA^`oI9r;85ssE7VT6;VNf_Z^X%a>_S DH*5Xn0Oy3Ej>~ETPpoi6!(oC$WSk=OmWU;hanyXm3tD9=*+p$D^@1@pyDKCmxTM=EUQ1mNfBrG&Lt4 kB;WVIU9*=HR#N*M5ig-NwP!W$u6Ds2I=s-n09_^= y$D{WY@pv?zA|8*fQ^e!Za*B97`b`m!N3$v7@#r)~JRWVPh{vPH6!Ca8m?9pJ?o!0#(OQalJo-uzk4I A};_>JxMLZtuq=?6(mlW}MG?F47&%4WYb99d)&W_em#M!xiAFfA35m)Bh-^2B22I8oAtBN>k!|Ag*UX >zli1(z38{#D?;)Zxbinw8u7-YN_MLZDiL=g|fYfHof@y-(QK)kR-JP>ay5f8+xO2h;4o)YoEMOvWk# 92oq=PuF$Z6{7SB5ufEwd};vMkL)Xr~==K^NdKQU8H5%PMl;!9Jo!(vYj}?h-BJU%d$sH@#8r6t`p}X k>E*4R^l)u5;tvH>+QrbNF;r?X|1;t2OyE)Y13M7CyqWM!PBO--cB5PM1rSHYrUN~?uZ0WXYu!)#ou= pf8SaBeP{9aoyFgG7JuJa{C#Kf_npPxcNTw-y%;2nI*Y&WEdIW;`1{V{?|X~C?=AkmxA^Pd+fy^9^YI1eQ)viy~W@67Jolj{QY3@_k+dX4;FtvSp5B9@%Mwp-wzglKU nJff6sy3{KupyTah)U14zYt}r -xR~VeU(P`Xj0%H}cZEU6yTYL3T|qbdcW!Pl@osJ~@osJ~@osJ~@osJ~@s9V13fB!1-tq06;k v=1J4m6#N9P8M?&b!I?&b!I?&b!I?wrA*JKkF_TsH`G=L`bfIfFoV&LGg8GYE9&3 EJ;H427&G%SQ3x-28-^z!J>;3nu*6lup}N|8a%r=n3;Gy1WV%arNP9D^O%XpL$D+s55band}(m?;tXc u@enMD$Cn0IFOFa)9$y-Sy*PZCczk6L_Tt!O;_;P1*oy;~iN{w4VK0taCLUiIguOUqnRt9<5ccADW#a Kw`i-j2L9iqqU!~uu>cj!a(c_O6<;QWFTqn*|Cb3i*qJTJ2nZ#0Uhyvm)WfDuZLEVeflu0br27m8rgT HsR!QZ>u;O|{+@b|7Z_mdX?=1elv-tbY;_o|S|Gn!h62G %Z{LUirJB!4JUP?T^Gxp!R&Z7A{i{|evn!mSb{@$YbdyD4pEtVfA4yW>+dbDzqh#l-s1Xui| dD8N<6-|xc=VQfA4yW@b4|cf3OJuK@$u{2nO|6mdRgGKlc2I22#2I22#2I22#2I22#2I22#2I22#2I22#2I22#2I22#2I22#2I22##wL7^ H&^xS;b#Wx?`H<|@%YS;4}50G2R<|81D_f4fzJ*3z~{y$e4iT{g3k>N!RLmC;B!Mm@VTKO_}tJCd~Rq6J~uQ3pBo y2hrmiaJ~uQ3pBoy2&kYU1=Z1#h3qwQjg`pw%!q5L-3WMA^6JB5PW552);5j1Ya2%g0Bn>!B>Wc;44Ez@Rgw<_{z`_d} U||9%?Z0_{z`_d}U||zA`ifUl|&LuMG{s*M^4RYePfuwV@&S+RzYuZDCI$hKAs4LqqVjp&|I%&=7oMXb8SBGz8xm8iH>O4Z%aR{U_a*&_lHSzpA%+K>1q$9-8bu_LgFEMXtH~%mwP~?&F-mA?g5QPyQliN2Q*sk9{Z)yZ1+?T_s&C`y{9_32Q(V)p6cHo&}g} Ps(X7tqv`Ic-t7U6w!5b~w+A%Z?w;z~9?%$#_f*&RfW~nATAh0t&}iSU)v1>OtZ-!`ZhG=hw=wOEEVA^*uLlhD&8!KqIEPw| yfCn>x2Qz>NGk^y(fCn>xA?4Ef3Suq`2B^6#7$E1eV1S-Wf}w<ylt7q3e=hC?V{UU?`#Nl3*wy?UG<9q3x1jC?W2WU?`#P5_d15;1YK)A>k5tFQMTQcP}C05_ d15;u3c+A>$HvFQMbI`KrvU99%-mWv&A)mpKQ-T>66>%M6)m!psWMGP6Ro%&ZVCGc!bU5~4>|1?6#^r WwB14F22<{@e`y+zkHQ4F22<{@e`y+zkHQ4F22<{@nDO+zkHQs?JJi$1FAEW@;$R)KHkIp)gZJVWx({ Obvxd4eX;~U=n6fky)5QMrL6K9hrq0gk+YIpd_1D0701r0~BQ z43LyrFhEmg!2nU21p`!N=I&6AnY%+eX6_E{n7KQ|W9IHqkD0qeK4$I?{g}>#&Md$nAv4#3hRmD;A~O 5IP?4D#oM}R5hNv?`)R`gb%n)^Eh(hvZA?nN!b!Lbdg@KrhUB`qTZ~|p# QP}_GSQkGk_rhGk^AG0DCily&1q>1Tgt%2*E5EpaipEfE3Jv0a`E%28h8d7@!8TV1OLVf}u1G3_+L$0 ~BEv43LCbFhCP#!2nU11p`!J77UPuSuj8sX2DQd6jupln7KRDU*_(Rf0?^O|7GqD0T}LnbWv~|2bG5J #r#YH3F0yfB&f@DCalct4uP3DB@|}nc9o@3l+c)|flcSA&ET)i;IGZ#ug&1E&ET)i;IGZ#ug&1E&ET) i;IGZ#hv3YDzcz!vHiN%5gTFTI+nB-MnAI6{XOMo+i N{#L8(kRN-+F?+(rU@Yvf BhOkd9UpfBCk5zHh|GO>TKJtgv6`PwhdskjXK*lfYCJSY})`v%c!$$0~qb1&bAF;G>bahHh|G8>TKHp Mx&^+Z39>tBLv--jZkBa(83y_)*7MC8lm1Ap}`m-=)GiwAor3Hg4#<)2x2c8A!xm1gdp{j5rWc7MhHS L86oJrWP~8|vJq;m5n5Oy)LJ9dsS!F_?jOrZt0lB!Hui%t_E3(=*h4rbV-MY!j6GyyGWJl7$=E|QCSw oHn2bFnW8$4qjL8T=FlHmvSR=HsMyRz$sIx|>w?=44k5H936St}OoY6e0=gIwvvq+kTpGMp)`2C4fz` G&iO)iI=pAJ1dQf}1!ed1K_aGkc94A(1ue@4#$4%g}U^s`608oB?GqQ>s0y)wgfpSVBqd!ZHGS7&txG zRQ_RoVwMM(ll6+6Od-?0r?*2Qme3f+B!Pctc2H;SC{)g*SvG7Tyq&Sa?H7V&M%TiG??WBo^Kfl2 ~{{NMhj)A&G^zGXvO}0SqCDg(!q17K9LzSP();VnGNYi3K5qBo>4al2{NzNP6%TK@q?tL?I;oW{aQ*U =l|Vk{-N3&}iQWKP70i?{9ua&}iS^zRVsg8u&LcRE}2S$8qFp_}-q++mHBZGSAnvZtAl{U6bYX7=b=3 689JUd9r!p{yA-g98H`#b)7YixKuc>S$637!f38o_gczeV su;MWO07x)c=JAvOMxEJ`_1TO`yi-;NP*^Smo{}K?XP5sfJ^)9;-}7}{ dM_MXVU(9eN$)B{z{$*xU|16pz2K8UzbpIChUJ*uY&4K*#EjNvg%ye|GHiY)w!_$bzO$lkJjfp-_&!S FKfs1S?&1zP&+;!)}H74wxqmC-!6E*>}LG_E-|0?$d?awHtLZrAL?AxBUe7unW9Ige5m8RpV6Z$!}S; +-{^9*M|OOuW4lLge5f;1kIeW`$6b%S_>C@fdt}9Lw9oX&iQnkby+=m;MwjkA^5HkSbnlT3AL?AyBNs l@nV?4|{6@z~k39HLXR#hx@EaXNJ#yefoq>B~z=tt^9<88{Upn6UVW%%y&hThp`NpP{XEH7N{A6g&Bi|8G}W_ riB@O{CKW#-Hf|}&-MM>^zeCN#O9{2&J(|DZu)9swcXE6FHO`i{oM4=x#^#C(?1id{N9L?MG xlpU_G>ftYjXuxn;D=sGeB)-fZEIewYko!%{)+>d7w7)K%JO*8#5{!Gb$UC{b&;GM`K1!V@6G5MonWz O=Ct)lZcwejGD%bn#PQp#*CWAjGBcRH48Ip7G~5e%&1wIQL`|kW?@Fn!i<`Q88r(tY8GbHEX=4`B%&s v2=xQq`7|VUVhyvLe*Q4yisdk?X-o~XCUHMk6o=V@GN{9>r8RT7p18kD+}|bcA81FxAp-|H`#pk2kIf hwJvL`(^w@%-(PQTfjUMY58a>uCGGt0NOt=3IV7mQx0MqTi1DJ0A9l&Tz)eJd+>Gt0NOt=3YGHj4l&5#3_ZvQ =G*dD8zAqOzs{yTu__TK?axBm`cy8U+m)9t?lm~Q_az;yfX0H)i22Qc0Kd&saU_D|RoMT7o;p=cOQ{2 KJ~kJu1KoBr^J?4zSq|CYoPSKo&W9N!PfUtxpb56I(!>H7h32T%7$4H?$z-zULR^O`SfD0@3(J>A_u< WTFEPkga_LT$PXcSK)ap4<-qkvnqSp_V`arnKOYql8*NNxl~))atz#2^_z4b>SHT$2eM^Qe;wqVa((0{O2ppqnb5rg33UG6h*O%2^^8iOzTs^6Fxd%7 ~*6J%ZEHScHXW3s5_-?gu9CDOUt8?mI(f~($@7-2Q2yn Fb`pZiMj`m(ZrR$I!h0gjsgQLB7f1$P~1-JpMUM&c4wD&AFe2#0K?uFNZdn7UO z)(3>DAjHW_o&JnJVf5*YTrp;(syM|Xz$f!#jgYy_C7;G@TkyybP;eI$F2@J>Yz}FudlqzO7R@^P`D}hF~2F7H+}vLzo`&6t=><3 (p=oMck(lSlamkr5A%3qeC~i2woF~gYuXS? Id7~o1s~t8m*Y_Xx7$^7lR0kV8=lO=iX2$ydGVwfz?WoB8kF+~-e@EHqA+a-lNbGbU5jTIv7S?jq 0(oVmqz;TbevlysL{xK7{I$`@6}A|_nV>HY1Y(y8umdzvBge$lfG8m?0h%@cc=^6xV4clGY{Rf7@ E08iDc5su!q``NT49bvr4arN}{MWGSLn)8>_h2028C)@pMD$0$p2RwbtVuZ2ge0;ik8sX?_t0$)A@(8 0QJvm)9jxcJ{Q`5aBBfJ1SeUmuPzg|un0lLd$h7Wh9gSHFCOs4(^X&o-E90FJY B|*Flw?hQ+<4d@mA2)OIHYvI`{eMigbjrzBxlIBKQlnP#56uQVeqGkMZsXKo+c3r24nTibYsQ{!{E=bVS&M)Af6NAK|<_3G37@_7$&W5g0N0!j!WbVPxeO$e4q1SY4iOZyI4(R8hD2cdNYbU}7;yF{{hOl_AEgUL^Ga) R@(kY4d~;hCyE<_J$s_x~~3*WH!NlTq9)@cK)w^I&IuC!Z7Gh*>}UB SIInzUL~v7$ux>)C9A6>;p0Vt)m0K>Xjig&lVlIPFmUk3MUu18v1E0PeK`z%jm$RaS+aVI7#wd9Xnka aVQ}@v{0PI~*9nZiB?oW3LLwZm6db(q>U8Vdh{NPJ$-tp`$?EM_2@I3JO)4w2FInB3_Tw30nEck1Zy# YWg|8B4#Y+gwSEp}Ek1#^~U6L3fQLf&dz9&7xsGQ!o$^INR{eYB4c;#UA0sG;w=?7%k@Y2ER1CpIeVb XWWr{leY)dyszMc@0?&xyC<{e#snN!G>-2&K7z+;Vp#~;~(&v!s@fBh?#%K!yZ1`8|=w3BfNQ*7zOR}mv69P!;J7 bDM#_j!s>Gp!FXq3^*O1l@Y2HS3sTJDt%ZYko_${9*bA}xf}}RQxNz|1Gh`~o%L$uvgt)=m39B#3xZ( wbYfq7K7VjV&-1rHZEb$h?>X+=>5vac;v4Hmwme)whi8lDFuh@6PYQG{`0FCfhzan)VI^ nN=MK}ty!e5^xqmFkWma47D2ty5gi|`|O8)AKukTYn9fAHq342J-$wug)`1mH7ds>F*C>obJmz?%{4G o&B-V_&!CMmRvn2W9HHr04$hr>iNvwZDz8fz}tbamM1m2WbpCd~z yehFiN6I$5E3tlZy18V8Veh9%g23An>!*pg;B|@hdG=_C@HgKj7R4JA>t{&T$14--r%7JMI}_{kWJ+5Gp(nlNp^#x*Z^wB?f^8+?8u=sN%IiZ#Q`T}8o&`W>)ESb;HOn><{sRGbVf4#;28W!Ioa{}7wub( FlfqweyEwcVWL;d9~vW7rM{q+lk@kUGi^$YB;(Gls|<776(;p^)cNlwS<>+4s^e1qfH*Dn*o46XT>?- G^)&H2}_khMD6^Do&F1P%I^KO^3T7X7QUWR^#h{?%DRaiUHC`U|b9Y6)BqbuU{i+6>a<1uf^rdkp)O~4ClFyUyLgL+69tZa4Nv^J>qFN7hwHU GLhkAfc5Jnci?P*^&7-ja5}*HP4?H&;;wBGbK{7B^_yfC#UTOftAt#|F#+qh$aH~&0+#QS)Pth})~cV _2*a0dkm$#80qdKD{J?<$>vza(fg=MBuD!xO9m(To#F5e6fBAE=OhtS^I(--*jk4 OoD_W$dT2z`PB0M^^=;ZYQR$gBpVf2^rv(LQtiv7V+y_ssQeJr9fKnd{qn4Iz4Gu5arSLA1_X-_|pw= $yI!MCTCMIP==aIxmaHnd^@=cP#p5u79CxY0)-w{h2O)MAyva$9lOfnr5!Q(EcQPX0E@`%NyA;^V%1B mKQBE*PrTzo#>dk{v~;I(J=GcFUh!xhMCvC(%vi@X0Csw**wuNbMJBTa8Sng9%o+;(d}`a;6$^`--PR+Foxe}$LSJ;s+)c&K9p8JFgsOOv@pHXasG*MUJxh!Zb$t0b$#9Ur_qIqLfc(9;MQjfFdv8mx4Qt5Xd(RVx6C3z1l 32k8{^ge>5FwuLUD7Lw8ru26TR+!iLJjeJ?-H4H3SrWZbah#aE&MNNF0?Kr)2fS!8tVDpOT?X_o*%sR m9CR&$mankR)v0kaQz7_B-aqom%q~0Kn($X_i++T5YYEtCDR%N^n>fC;>>h(IdTjq$&TNgi*MEyUJY^ n;QDF3hO42@2b|2QkmvWVkeLIo0_zqd`2J4E>1r?jqGLxkVkCY20C_`Pl7&k*7FK4y=G )PMaeHZUmSZnICv`+Coi4~>5B7sRH}==VM&p#qJ5_Zc!TK%zgm!74y#^anSdBo7CXe)l{ {-Vo^zZamF!*!-8I2!ob>aN`+L5I{`d`-+r^5YzX5#Xdb6ee*aQIT-!MMUtc-rXSq6M63=qee(oyScv HdH!ic0AMod-n5o2a?L3*-AgAwMAVUK=eRGmb%8=7Hr!|FGLr&j)j?8JGy)r6e>4k_F#Vf5EY9; t*f`#Sr3!OA?VH;&Ym;PIa&^)nQ8COg+q)Hmly6$eFq^A#yaps4R|kpv7yee)Dq;X_d0JVnMGg8JquQ ZS$u;OZ$-NC~-}h;23G_6_}O*!(H7h=v-!d79JnVuwn`hV$N1&f4feJBx^DJ4x LyX@%!~Pluf0q65Xz-}^H(Oevs3FF0&J$OL7{4K#jcbVU8`W%KgkkUtBo2fae}gU78j;({exDj @{K1WFl7b+|?_P?3eso2042Rv0UkqouNE{tP|K=ibbO`;MOQf`g(0_1~+63P80$CwL=|8yfB_S3d_3y qwJRMU1?h9mz3aS6###iL0L+d}dd5Y9v5c_vuAQp$%zj>J~pdt2eUMBtqv48V2i4=(ao0kb`46%Rn3W H(uSIFuaTL0z>SxZ6d-@K~z^cq_K<~6cPgx0^gLMD1>{hQa=pdx|1PD)Qm{kt!c1Olml^Hbswkoq@Q$ y^7ifA>Z5!yxr<-XIkYr2fqtBymFOKe)*Z4y}K4jr}qh{2G~Pq4n>+M2ZAx{hMo~G=$c_d|nGjHKhK7 n{Se37_|O_o7c&72eE(m6;dEU?B9Kr)Z7sJH}8;PhuFXQ8JW%?_HW)N`3YkG=0lRSA@(2K{D?R+)c(y !#F?S?Z?=iQ3AO)Y!Y)GX-!Rn)YX8B_FUi6la{s~AtE6;;-oN>jR9DdZH=mFa1$zJHQ&O)BRsJgTSE% xvF9=%=Retj&;TECFAH4k{N!*a-15TU*y8J%bmsdlV-#zH8|6`%e<1LYLpaKoTHy`Tgfeut1hSc>4pAWuVLNUnUL*U4Hil`E=;=`H4 8r6rTA<7C-Xtjsy8QmDWCaLae)S1iKSGz^zd}+!boql@O!X4N{H=3j=?!6i_ZD#|=<>U_NZ|@ue*dQ= e+pUt)^j97LYCishy8RI{nqoOK!h&8e^nd3f$+Y6Ro5|%IJWYZYBV(B2;^(JQfZ*P@4l;R+Xl+}zG{I s!m#QMJz+Oc-uG{6qN;)LzJF6sdJTm4-4ApL)`;^eZ@sJYYXjwd|6QE`8z}GlA8LZHf%3k;9T#y&*CN Mo-0%3ss06mzuSO-Xth8UaRlZ&=h(+%0r?JLGa88c`= 9F~tAVJ$dt1j*15tnf3!R!9i2D2F-Gc_A{{ENjr@@=P)GU4jQGfqS_Gs{?FWC=6hIr>C;*7K{N0Dd~Q e?#=nMvKB6||91krxZrR-~UD9vS^#^!4G${bN-8^^bov_uv2CkH7cWe}3%8qtl;w1U(9r*@@qM^pF2| _|NR<)Hd9rNsXxZf1vdP0`lc&ojkC#oJFP}V LJ{`Bo^W~H0%O}s5Po6KIJYPO}zI^h0`Q-VE$@3MH=PRa$ojhMLdA?%ue8uGXipld8ljkcY&o`eu-+c 0X^U3qgr=B-?zWL<&=9A}}Po8f+dA|AN`P}6B+~oP(`P?)#CeP<4&*vu3=O)kRCeP<5&*vx4=O @qSC(q|6&*!JHJ9$1oc|JdRK0kTBa`JrT0RRAI0ssIT 0001RX>c!Jc4cm4Z*nhfb7yd2V{0!%Pf%G&PDf>tL2sKt5QXpl6;D1Tl7k(esy2#BZC6E&uwIj&* Aqr&cXcPZiDcb2$PqH;mYynXY%$Hv&vadQs1+FWD3T79}%uWoOV<>@v>uFNmSoj1BMwJMda#;;AMxJ^ pa-OpwK9=Ig!sY0(SatLQaYE>z(%VdEka-NOGI$7Z=3g(y5{Q66@7)_5(jnF2b_aq+dQFBY6*OF`iYs fy^veG4C;BcPyTwIdq@pADnr=UcxL$IHh%V8K2HQ^@4HOux*=$8-KW|tSc8$q6~J nELbhoj#;I|+Llp{xLv>Li%08ekk$<49(~MBu@3VBIX>O&td1DB4u)gX2>lKJ@huPg1`ZNMlN4o)*Z8 IliSuRxF~)b9Vf(e>~zjJsi^fnC%Me57_MUZFbD|xtzWu&0p{{%eM=Vv?Y7!)w-BKFgZ3!)l^$S^Z}t ZZ%E!!$u*Y}O*g%22#xtePD>(Kavl5lN4)@6(Wd2&g9_89|8ga>*OVaA|NaUv_0~WN&gWZF6UEVPk7AUtei%X>?y-E^v9BQ%#SXFc7`_SB%JoM9AB0dqV1=YS Rx@ZKK`np(ijfWW6yq^*Ec&zpt?&n{K6cTZCYYpWnPUGt9v5+cpPneuy02zk0D`vg?g?V2H8SnhrQV) Yv;|G{LyH0GK@3tSH8>Md80EOTOfn31dvQK0il& FRjshi!M#RTz^=eNE;$1AoQrtx&2G^=^`|_A%NFZgf9J`w&$O6=6K->@fz9G)3L fwtp7Sa46OWJ_YQ`T4SFQK3^AO4Yn}EsmXwxMbTxjSnLkMZfP`|BuRJ=G+?SbtR0l51fd%^Sm_X?181 O&=SvpQ*NBkUN)Y8`6i`BIEST6={tI=~<@*tl=}AG@jl4YMN+Xm<&GY%0g=+Bd585rdz11;y1J%(X{f G3C<*D#V;HWPaJpD_BV}rc7NowflR97C=T?t7@Q2K$l;+=4!gu^ZB6AWsjosj<5!2uDC@!yP1!|(@dj VJd#8O!e3ZR0C6#o?VNS@8rNTQh`l1t-ZiTw&WxZ3#nKGjB86$C6 (P`hrg2fRpHNE!1QY-O00;nP0YzLpJDt<50RR9w1ONab0001RX>c!Jc4cm4Z*nhfb7yd 2V{0#Ecw=R7bZKvHb1rasjZ@1`!!QuM=POp_l1il?fW!q6q+Tczg==NvHL-B)%8!=*J!?A;Q$QjI$MM Y0j(0b$V$Q*fKCt$q`E2pvrP1}YTi#Sa&tkE-V-BHBY+)=o(<9(Wb6}Zt$l=sUg%FaQ)bHymg+Fe0&C PHMJv(Ri91g~JXu)?(g9~ptixDaI!rB^OBj9WToS63D4YbU+9WbQ;tu=O)4^r$D1yVbYjIYPrR8^I;+ yx=fJ_M!ei%i4S55$_-+u*n2o_Y2k@`JHG^G!5WzcLlD$^L#1B~u%HWJ+@A-FvE(NCKtXXCEW~uedV? G}6_1R=I+EJXoX(A*V{dP!ndIu}D>xD}dXAHF;@1y=6r$X3Cs@;(#nh1U1BdV>~2WDw-7F#2UtB*AXx ehrF0Bqt%%fymp=OP-|M8x5#>uStfxzX+^W+hNFP}UTW$0``V!rtAU4nMcK&6;5$AMUym@|f82g2q$o nuyUapp!_`T?KH$sn)OJ|TZKIbz!*TA|Eogu i`PUrc!Jc4cm4Z*nhfb7yd2V{0#Ecyumsd8JrwZ `(Ey{_bCKbFo269aT<(bT*P=K-vx+wxGq5tw2%8v`oj^WYQI>G)dR}_T5pGOj@$zZ9?8G^4_0&cuclj $wI@7X|A&+?`73zrHeAvy?G&*kjgygsm`QOV3!43@|iAIIq&s)Y0i{_S9kjAe#L|JQqZ^W`UB{va>mI D>xbdE2l({+^*R)MRdB_HR>1ExXnL0kSgM;9OaF{;XU~Yt_#Bc%@XtvSq`4XZX&o4~Rw+H%9E8-6sZ1 !%M9PC|TPC!#i=KjIiUYauswiX;R9-GirC~}Q=zh3EE14a@^j>rIm|oi2=rs~;%`u#vn}F!|@aTD$%H LRCcKRCsjS`N|g6pynpvo05f-u^aw5EDjSbGd>xoT?Dym70e7ks^yYQ=>@T(l}ymFxEf7ceceT*K!~F W}-{FQgdMyP#BD!38WizMi3S3Fb8uGbn}mbJ7@_L~E5L*5C$KWx)^M8kM!i0gUIRNXHW`6O-kMQD$Ef n48xHC-XDcs4>uG*eqNvG6hw#GU|h6so6B=V|Xb|`Q$AxiVRDlcq#>kLzV>-(teKW#8&E(MCDSeB!P4 I(6@W2Q5=!}M;G>)$TXHv@q9k0jSO51=dlArH1q}qGL~l#9GFuzIsF5>*+xarc*P2~B)HdVedt}5%PB 8F&YRFM|0y?MxW0Vz9{5V83kc$PY`)<7>H>aZ0){XgJ&&>8nJ5+HoULjNVdPo(h20Z~1;1fByXD=!Ig xJj&)GtSWiwOXiG4Mp4>w%HykLgTSPsN_o4(v-%W_FY9*stc{f+=$@;NJWVgQI84=<%g5L{Zxl(5^ j1LY*orYWn?6ibB#bJ%4+A4xi5qqH@qxy*)SE#9?TGe@74u9FT=K1S3DHYc?so#vh>VinCDLx|r5@ws mjND3F{+_RCxGwei7uVUZJ_CH&^z>`!9i9AB!ypo|S@=F)EI3jh0vGtF5{X0KSGp=CAr-&lV7130B Dl@X(=ohd_qk*<<4q$%lN?%8?1on`G6T!ua4m191{60wI(n<@sBsH$)(zfaX;r!4C?V~Rifx3NbAhQN T%GtBb?Cqh!%<~C=zsGwp3~FtL;TU(@AE_4tnu8l^1W|`#<0_q4kPb6jjRn=!S5ixi>v4OwS9KDWu;! cfa8;G9uAMj+cXSzWaZ5#0El%}F)M?*(jO^g^w*)**Ghqv)rrC_#zTMT)Teb&G!JGy|1+U&;b@mkm+Dl&8>V>M$oFLpj@M x$4h(SX<26)nx9pm-RSK{b-rio!t0I(2h3%oap{OpVb{_@TMPZWJ}FkWNZVm+>0YXRtqhj;Y$ffv%AB =vA{bZ|iMQ4-b(J3eZuGIzEH=1%KZUWJ}O8|;-gYYV3*`&oF`VWF+v)jT?FrM#upH0Ndw243=8Z9~y5wgbNN>YrsM5`SPGTzL0ix#%0rfW=l+HP gc6d&z{l!U~p%n9|M(c;~zyRM4XKqq8cS8_KMyQhU#Ne^b(?NZL_fCd%=?W$IB?_F9Fp;tSC-B#TVky eD5p1n(LG2KyeFTnbLhx^Az{~)NPyr3!{C(T;@$E4HeQm55OQ*EXn4^r?5-*<4CuQ4KUHEsp*fV71es ;6$obItrQrM_zUQ~NSY3+XL+4T2qlXI7)<@sYmC=}hm}Cbd8{66l9a%w8I E;=bN$cf{y_YY7@0|XQR000O8W&uT9BpktIHX8r{hJFA59{>OVaA|NaUv_0~WN&gWZF6UEVPk7AW?^h >Vqs%zE^v9}J^gdrMy|j6uh^>7S1FNI$xc(pQ{~3C?5pRJIA=Sr?ez80ltkIAWl~2{v3;HX?+?I!e~^ ;$ao4%0$;2WTiv_S)EU=4RwOXx{cs?J;lUue}772U%Sl#3qOYau*euO7 o&(WmPOEm3n$Cw`N6t$EI)6$Yw@^vjNT_j2`xrxHp^R`{ VfI`!Wu8xFq=DW0jPL{N)zGNAE69-~2VYxIBkHhwn~bjgHURkX;tb gab_Gaar<;r)QiJ{7jP>G?Qj&6-Dhbna{ec9FAL(Sos0=O8X6d5MI&-jhR%n=SkKsJDtWly?C)mvMIn >V9C5pHfyZ2WifPLq*Wrh@i|G$G%Kq(n*dCg-6eN<@%TPX?mK}-p{24{Q|P9F4 O^|=~<)pz+ftc`XCXelD5nApNT<;AmW!_x3>7W=_ L=7WP#&NYwdD2ONx`_eBNcp4^bNNKqRY;f)!B@{zo=k@(rbmWlBl5i<>MmhG8}y%| GUN3*6~l##otcf0^NQ5esuN*_<4792`>it;{5nv6djzOAN(Bs0AGp29aZr9;H`eWyR~)s^V{R-^!4lG (dohEF(IW_gn&@eBUB?a^l*OgBUPq{!_znL@Qgnk|Ab_GyR|hsJ~?>z>Jr*KdUt+t9KAYyeM&`x0Z5K UCCCF2T(oDRi4ARE~{k9 E1y+2U|x-}3q8Tc3GbpQn=XqqyA~3LZ$e5JNy7GNhS|U3Voi!GHp>f^b2L3m@=E~%+9ILbZ}JS(`YwJ DiWQ-r3~?6WGNivl{R8kd>mPSJ}3OM55gem8IYNOMnl0sc(aXL??`$nh1*Tqt5qriBcOqM kDQ)L&eVcEp!(DYsBRYZz}Bdy(Wt12~Y17lsYUSid=#s>U>p%J|~i%!nYUmsk8xj!C(RG>Se*B5_%dv NqOVf!xN?eA2z|8VqdpS1^F=F|h5E6iJ`DTlHQzEPQ&{HC-_{ghGGqna 7dG#HDV-EvN?z;HItIv!7fT6{mYiY~WG;>iENqnabCX7>VFAs|ACB`G*Q`7VQA}-=PHUrZV&C^?BLOy |4+xSXOQaAB?M0nK$)YEp>xq=B7f*fJK@pB5k`XZU6vlJ&kWor?>1TV2jVaoU?+Hx=y!Yiy`7Muc3GN pi0OfJhZ9?z4WMI-orgo^C5rt=-n4iFMuDIPe13bb?8V{Mq7W0=PG*%e3y6z9pHzw^wq`kkwe)#NzO= RgahEvtQ#PYBr($)cPD89CrEvB~HUYia4w1a}XnRMpdv20Ldv|%Vy~mPFyptq${LZPQN32Oag4wAns*NafkK;a!_011Ooz^SEN HeF0QvpjV_vz!W=vdv^4L9pLN$JW|HmZ{jR3*Ql`zHDsXOQxP|7zq>qgIHvyKZgO-NFQVJz(d!y5tuD *6`6Ed?t~R<}5T@mOX^ggz!pmxhs?@v6`R`P<5 >cdg@t%Wm;nR!ODDDOahY)N(m$wK`5XlG)fjlG6BPYGaR_ZPaIi3K`JYldwQ-=0gwTzYfxMeEg&{^!< ~r2U6y8_hZsP-F)=jR+2jOq6Pz*VHfsef>*_Y_VO`h4H{a}p8-eKMQ_5A29$YoTsjj!0>*I$QEs#(Q; kr!|IvAu g`2!@lhJsxW6#hKv!aIxu>MNt7)ZRe-rBJ`RI-t+5JyNPpJrV~1^)kW%Q9Grb~o^gwaBkTOY7rWC8d@ QX(dLzf1@Am=lO_g)!suS6JL@4c{<>b&ZrEDD@FTj4Y>}5Kcc_5oWl?|+1s*2F<^g}E*0a$Dyf*kT(19VWh$ d7D>}$U5v&i}S3RIYu0Sz;uEX@!@t2U&-k5h>IRuDO0G(Rx$7#55ThirS`V^PH}P8W}`cy)MG@hUvZL e^n209N4=Hnk3uD)!{{%{OevMJ5b!9Wqty5#{u)-!~0hsEL@p3|DtHh`qfGjX>JZ@(#=dDlCN2ZqtTM <*n)JLxUDvI!Uv3kf1IbJQtIwhb+cjLtMvc!&kS|_75bW{noAHO>OoI7g{(l2q(U}qpIC!-w%zIGkDl _H{m@QYj7#!ey_Ld$x?$EEjTdBn*kX0-GMQDC4e%X!f@Ji($M;yQ%8C`04l!*)Ymo&;whx&_Mqoa0XT O^tLFf$J!r*K0L~td;>lMz2(hAkHY*d~%IdxlQzm*vw0v&4HVQ1LC#FZEAl0&az?XrB%?@sC+5lYHxB B6LxcujmlR#&BjnLY>7 m-J5ppMHj!3;Ljr&Wa_Nh6%gVW6{AK9N?P!*#%8uzb{~1VSlPo6Jbs12jF{3$X1A=|7DVa6Q3)(q4~v gVPTB>gdn+Ok#ts(o5F23795x%WeNPge%m#ZC~QX85-3DbPPPzWS^bBdHd?%=r}q Ujo8y6IMYd)eT_chJOxd7q_r&YO)DeO23^+QX!9r-lk_-#-a(coKoB)gz|U

J^C)z)dx4wOW5os*) Ay6diALYbo|v#09(+Z$yJK(L+;W8`Y;nN0`mBtdXOM!l2*Ipm4Y_ljUUV-}@SFqDwYG2dZS@-v3pjB3 DVI0P^8$V^S>ft=%pkCQ-hu@)6dQz7H0xugjm~{TE!!Ys80Rl_H0$|*U}fGXA u^q3!#|=YcQLpnJk%eqwtw3!Gl%pEj?P6~-Rw&BTW)?}2FRvIa8i&aSb|JW3t10#BgzfK#r&F9))d>YW251Sfg0bj1 SRmGKMl}Fmha3{Czglt_4MaNMz0HVFQp|f(vlQ}H(!TkV*VVzw8;iwoX)T%m9r4A)Z%XPM=L*1Cegdw 5rp)e5wvSa)5UKf22!}O`GUFiKe_M&mX^--1NTF~l|ri^oR1OI^&=FBiK-Q&Wlm5r3dhXxk>4mS$Mo{@p|ON5@&a=IomuK^^l0lX=d4 1M~eR<|!wxnf<_)^9BM?wM`MImzEHkm|WGvjZD5ic-zdPx8J=1gQBjc-KbF*%}oSmSDRh>;xl*YtL}$(+Q tHZWeMC%9%&NzD_h{At|@TwYPG;$`2s&M1U}lW5%|Ai_y}S@*8nnQ@o_^)NN!|WpV8h&s;UY=%yr-In eTDqC!{3^`N4|fcOLka0~-bc(GTvTmBPj5JORHj1$_ALHt+4M+xZ0C{~OHvpTz^ja}Q>hjy`jjexe@R T;Ts&pA!#*m|{KoPZjIG#Lsm{C&z6h(c#&;+bqA&7!QH>LFQjQwAfc{>@Dnpz`Me58u7C@)W_HNl80o ntdgO52G|a$yN2o2t0N-*wwDM5GIXRvM~J=rCRB(o%vfp-*|v@!7Rdy2ph+iN?xGAao~@utpI>gI3BW d@2)c9?JzuiRv(cGM{=QFe4Be$!4D{iaKp~Gp{>9{g22Q=4JRb36w@*0cC8fCgQN-DG(#`@YWCn$_@` q_aluT)4?%*yPGd5y_NMvpSX_}zOzurKs)jF?0(X7MsnO$)WHUNpb8^9q%E4erSy6FS8yP%p*r;5G0Z U_?(hTq`XS4=vaP)eK3Iy1Ml>0Fu2tGHtM?O#I5giR}QRYC@u4t^%frovGlPo@72%7e_7AE7quLk1K~ Np6E}Z-Gj6xL36uq_IKyx*h|DVv?{UQ`jE*b(}g*@$Y{G`!ZVHmpp~2p3Yz;C0-{N300deO28B(5;L@ qsY!D2I!puc;ThboO4(PSPWioY6b-QBR0w$6snaTiH|=#Yy!G6#l xI_*~6gt&^fHS1-e+$k^;NT3j{uoe|_%lk)VsMYzKo3(-72O?XeP>xT7OqoT6`ou8oVe?s^Ziy1L?nN>L&hDGJeOVU@S (!WC4rC*abqP#ICsCz1MxFuO{?q5KSrzIZqu-UAI&>;+>VmKj5>u$HT2K5tAYvXZ9MH4| ^`OD5>=>!d8>>jaBLIdA42zBP{ossn*<-Q$2UZ>`5KPZQ_$h~K!g4%E0KRFPx;y2R6Ld`Tnc88Bsjm! QjWpBGbg%-y*HL!Qu74Q_Zw{V31gqltqcqTn|ifQyc|p;c)np7ERqr;(M*1zsm+oU{lWM*kX5v`mQDz }*8Ft$@#UJx?OK6T!L?gYgoE=U7u5LgL;8A_N^gdNdFHiWD!enRp3OOh64Z{&Rek**W~EeG=mlBYvyZ RO%8Qh{c12bf-Ycu4rPo@~*kCFA$MOxIua|I>tvQaIeHYcvtxT8ekM&x;}&m6s41S5*IQbFf2CQ)j~< wA{)z&O7YT)>2dJ?5n)^M3qmMO>s|KW4a&g}W6|? &k!oRV|i{cUC7&AH{ChoCOQl#(UB@J97TZo_66~}jxRudVWt4)}3QwvI0v}2g{B(C_;uVp6mIN<>a!2 `$laWUl-35K<#4yIE&hDIsO6k^vmUQ*7xA!fQSfge4aE$8A~Rq=>9U{$U!+r(QnmIW>YDNe1q6#HZ$E ?z$Z^t~Yrl%mJ=s=(^bbiv?FZDp8)Ts*1NA;1OIL 1Me=695Sx-QP!`t2QFp6L^^vX?UVw@crFbRmiF96^qm^m(vfp9>j#`#HclrC?%e~wj(K(uB`dq?96dJelT&0`2N# {x1NVL7xnn6zW|^U0< Z(*OTSJHbMWUW=37R7smu?D?yYA&ohpJJi=(S`)(Q>fVTneqa%^=n_Y1*1QzLdn~f_3b?xo8{N;ufRdyOl#M1y l3h87diU#EUuon<{bJJqWlSWGGutmFa;iaPO{=<&h*hjTAZfXhnPz?-6K;LcZ{J$!6~MJ{fl}=^{ &C68ob#QPoY !&xiKOs%E`^izq|mREhM&{BF(v=t64`B_1pNVP;zK9Fp3PToQJBdCqLRP-FF(#KYbD;A9}K3`EKn#84 uEG4UfjKyxzORh27ilR@Rl#>20q&UYP95hN#4AwK4920aq20^63-&xmq*kst=H^t;k8EdxBwE_SNf9i UKC~VT@pn#zZO7_6nULui7v2vSg#-+54JqQ8)SNqhT<%~N3*@&9?jJNX8toN3k6YON5~1jKGKZMxIsOrGh=HbnsP*kAw-U0@PAVwWE$*B8Z^u>4iY-U6E= +es2OTZl}Dl9*uYQyKAFId_3`VfHoT)^`0)>+Au8_it^r(oSPeg~gcYz)!O9Qiu-ET+);Q|ZX93Np9m -b?d!2R2zHLPIY%^rf8<`|E|kk1;(k}#)r2eTbDodF4q@FN)Xu!{RuZo&KTn9)kVic*Oqfpj=^Zh36xk_q84O4<~V 5A+MEneZ+qVM_={&J7D>u_yc!c3b|=P3&$;|yWKU-dR*q^GDaS?{$(HhcxeRoNN}?TLa_bR0~?_P?cE^JQ@@$jaEd&%SS`?b+x5;654Rx;wuI>$H~aK;c=tTK^gBZ~V%LqYL-xW)cIqHoXR}3)ndWN 7y(wy2bFKM;B-D4+ef_9<1n>q1(q{VW@IrBdXEJM(+>v1G-Y$S<`aFyn15#cp> k7P9YzEULl{X67mRtQfIY{O_wecPFi>6zI?sk=TG<;U*2}vdkirNeXTcr+Z<9Fknd|EKFyo42;8JUgV jbXpg0Gv;uwkYR@w+|puDs7e^5&U1QY-O00;nP0YzNj?$W$}0002R0000T0001RX>c!Jc4cm4Z*n hiVPk7yXK8L{FHA{8MNU&iZBEMy!Y~lL=PTyiL;s=Hf`W)pe;~0NvXEvWyVc(}z38R4c`-B3#0r&YA7 2R#uYMu;x999bCTwM)3QGi|x+)~1BW}EQJKl}VFDgpvqO>%);C3CS`#kl-V;Cw|8GqO9KQH000080A>M2T(GyJ9_bAL0KO*x03-ka0B~t=FJE?LZe(wAFK}UF Yhh<;Zf7q{Nkc_WQ$;R8P(edTMcrCkbK5o+e$TJKXl7^Z8AeIF?e4aHQe&r8HO(aUnL#0Oof&Z$=~y!kI>oi?5LcK)^yzsYWt_9(u6`}V tM7ww0k|MAV6!{IQOw9VYu-J6EDa&KPY!u#9x?;EjL-H3O0tDEKh@@};e@9);)VRKuE_3g*?-Oa;0d| c35H_OfadinDMJ|O|$%*BnWb*BeV&dpzWZD#&NGvW5KX+*1JCk8m_pls`e>?%>3uHsdqHdc&I6~e0Cn rbZZap6VbyOnl>)!PxD3+Y6KTdGQIk7A=r7V-_qw`Sb!#Sg;N@Ik|SrW{+<4X1h;d!|@v`lHpm{UFSt Q&xaVuuu<2A;)2Fto{$}=jB{lG3@0aVAGwIu&~?FOWqEd0%|84aZ94llo&faAZf3JEJ;ex0?YvKdNBr G@Cs_>cxy1|U`#$v7|>o+TK9KB&$Y;2OrJ6lo= hxi7S20OU*&q0^Dc8OQ?kI`1e8#MwAkqj_-LX{3o)26|L;#PNDN~UpJO}uUH`tdqu|w@6*1LWapMSXp AP1a-~5Na*x~V9wpVf25a`pmMHq_`?r6&rtJ)vhYcSDje{G&>gWS-lT|KA1d&_Sfe}g#uAE5E^h_@Q! ;CX=1#9s)JG;)k4*$?5kGdLBmKAw?cme7OwABt30li!890feZ87Bd`F?l {MrH7ExBWMS!nx|QJMuGd$JkJQ)Yi1{$8s+_&^jatL`CQDO&J1;o;3brEu>)ckho%cKriFun2-D+X-qhTk(N?Gci|W@0oZi@Sgou8NF Jqb+?N*_ux;zB?-Fax|C;f*Z?FKaTZ90sf{WTBv~7jXp#P*1Y$VP{wf&<Ds>MgZ<{*#`dfUJ~0ND87{ro!3z+R=5X7KSU2>6>dfD!dy7)b-B;L 0Gu^I4S>wF>QR#`F^a)7K2L-K3mY3gfe7#BJe#~Qta8dhq>%L`Y-Sot3RtFhx`SQLeSVI|0jKIo`WNE VeBOE(&E9t;-d7E)TB&1xs$N=(6toK+qg7TlN63TjGZ}6R(SmW($yQwlr)vNrTg#G)M3L3VXw);M&^p T0$?NYB%6*N$=<(AWh$)-x7Y*nWF4WSf2MU|`gkrezOe9D$Y#Ukye}7K-B1?(^QQyGUO@M7TZUH+ycm &=-(M6h*dOj6sBf{}BS`oZV4*?SIJOlr@^IUA^W@H#ZnZpE8heDC7l2fb%To=pp+mjD_M~WxuY9Y>v9N( nmZ~iAtlvF{|37sD<89!$hC5#7a5F9q9C(2+6_2vIXbHHv|~$n>1pIALcCO()Kf6R^sFHs;V7=x~1scAml~{5l>xWZ)MmPi{cO$M$4Xu?JpIIGaO&nR>3C?#O~3Q2;^tg- 1mRDVd%DC1>{(daeRh!3C{a*3v0oO5U714A<*L!(3wlEqbHtN7c9K&j=N!Yaf(;q#W}lFR&`E4w$0oy$~zX1;SRr!w`JYx*!ev#EPNdySZ4ad@?krty_6a$aacC fP*@4n+YDh!1Bl?NE>0Z5kQXO2pJ9h-^7YMZJW7-KZ9gNYK6!kDYROp*vqwPpeN$`9ceR#@e`HNu;(`0lLt46N@E{|{W}kJEQS!Y54yuR;qK98+at uqkVcu9C#3r}TbF%2psou<4IMO&N4dwoVqBM3s9{ho5pVp9EQ+*V6%%&~?HYESbAh0ngrVxRE4v?J%0&Vpg4|$Bf>2N*=4Kor8C7}tu-*Xp+_;qgP%-=*FxRs7WKIkD*^NI{*s*cYsLag ItHXqA|tSbE7V!x9|WF{r3?k)5+nNYCx9XKLC6ZKO#-l!_oRbv}y>m*_VuyFqu+9kq8@Mo2X`LOF1%QhX7FX^^?ZZ^Z0^2c%%d*b?oar=!3>`V66tOg*VGgLneoXb`J*((= 91Y473h0{#Y27zl_%Sj>2IWe7P3rrg<$5E|ZJs4;yB*BG+Jxmjd1IQ3HY5oh}TBk1H~m|qS-8#E4)lG ;?O{v5TxJ;H+Sz$aMJ$)!;EO^esls0~;dct;5b^sb0a2Tp3w=CdK2g5P{KxKIMvQh%R|8||od!b{s)d ;FKG%^B!~IjcS+SN)D?#Yr!8v!HjXbR&b`LD7C`=Nu@TG7O#Hmq EH}ZppO*K(-aXulPmA?>vASR0Zp7U>zm~syFBYpm#6Op-8=yOyZ-Ae0I_lC%G~r5>jY(4m(VSEUoH|0 2OQxcR$eu$i81sI4|KYX(tFK-!SMS%$)i1Zd->&Wp@%!!i-LIhK;^*au<^3NNLhqONtJ@8KePH2bd|a %-VGkb`Yw_`6{qb&d%hi@|3md#y0R4N|RMV{k-OO-TI1Lx@oHf1GNYClOHAEM_Lh+XnH=CF8w9z@>M0 nf)*V+-XJ5%b|CNrq}dsdpp<`=E!%`C^>Kj!c`m=qU%&~mFAx;$TED;?C>)bWz+W(r-aA}MpV3(x*083BiYnrm&g qj!3*C6!CL?f-rOF%v2qYN7>7vEPX}>cMjWQg>QU1rY3;wh0U6+p5Wd{t#d8MyFc*swYXVv!ATRE`NQ F8}icfo_?$dNVy)1n3x-GEKa&HVzL21%CxooGIEAX~j5uO0lk%qD>6(6GKF{nqsBgLI+JN#-%8i=u3o 1nWe+s03!h_}2!*g@vYS1oWJ%opEZ>42cI!T8l2uoL1|G8&BRnF&tkqi?iyO?Dd+Ik&$Sp&_n+j6j-T l=LO0lWtKGqNhnw76yJMj6IXC8J{uXIp4`Pb+k>TYG_w@1u*04!suMumXIir>uAN4&ZD*Iw#-kC0h6I C$7Yp>sKxo*czg6@BOU077DzUYWd4vvV@4aJE*!wOs~fDVm%aw~>c3D+0|XQR000O8W&uT9k5CIoy8- |JKm`B*ApigXaA|NaUv_0~WN&gWaA9L>VP|P>XD>`iLq$$gMJ_^9M4eJkZ<{a_zxz`>?bJ#r({|iWj& Xt|f|+fS=174wmI$uEwCcCtvy-UlR%y~WBoF(&-@gZQ&u^oBI(oQk?jdzU-M66qd^mWhhZgM6+85i-b q|dj{AeF%@5X6CXx~E|oM7yxZhYz51tF?y?R4(4Zioo;)FBE?ZXTO1o;=#29^c^L#?zF*tMx~4WBhls Cnwk1gKg>nkU%|l@Z60j>wVY4^XO0v7XDa!{OJ&+@7=2%o`SsAhM_4AojU)65Wwf#0zS%`z#Xo78rNd )Jb85CYt$J)>qqwzuCCDx&fBI-A{svaXea0qFyP$M4(%VBkhSS+d+Nr;Sr*81|b!%U7Ar2cxIMu!zZQW1r;m3^yjXr>@+uX@IspWLL K?`$Mi^`}GKr*@G4ehJas?Z%Scb23DRN=uRf=zdX3RlXOKpUy42QLpX$YEVuC{`4{S$JjV_KEw38d7}NQ@8|6<%Y#th9)siNbKDs?rEq+@t dy#-a$LIGV@6aWAK2modQMO=M1c z!Vf008a*001EX003}la4%nWWo~3|axZXUV{2h&X>MmPUtei%X>?y-E^v8GQAMLlYd5`vcKfF}e-H+wKcdOTU t$8yZHHGH7+WOT8DrrNGSXqjlw?f#cjL5rBcw+8(ZfI$_Qj&fc*Dht_yvw*J1ZN8%}*s+e2b#f ti0K%}4ZuvyaFRojG$5Pe++_eKjPq2(|PoVGz)(wWk3d!yOWDZ~L&I?i#XtdmLi=##D@lZ>yo$c(trO |#i45j;YiCLdzcT$<>*-q^*_IB_BmWwX7xg|ENfzRThVP)h>@6aWAK2modQMO?X!(2B1F004^&001EX 003}la4%nWWo~3|axZXUV{2h&X>MmPUuA4&W@&6?E^v9RR@-vhHV}R1S0Ky_*~qkYiRx-nPjj)yn)(` hI-M#S3L+O0CM3uKz>F2w|K0^iNu((`c_$=YA#Tj8d0g_XxKn9L;zvPPKGW*73P=t ~wp-Pe23@y*la5f`)Np)$D-vu!c@BmSv=^TN$Kqtjho>1v*cms~Gth_$Ata9Fe8gxf&fFN?^}B;WhSj(CGP2Lz<9>bjCekIaId${@8FC2<18Yy2WUMWpVB=sXF)) l27hH#-r!cY|!bW(?lle-6n)>A6gj{8!TE`4y6od@vFlX~p%hlGx4Ai#JXj57n33_gK_`&rzR`3u(z7 BN&CU}G@0!l*J|& )q;QJjzwck 6y(%Ucn$G(niBM<&- 3_CSe^cC4!4*y%xVcywh;U~#AK5(-eZHrlTUDgt-v1}oSuBQ0lcXM`=#Gz5_Vdz>>_Dd)$N&KIbL!NW x5#&w?nZ5W*>40VZOu!u+Y~w5lrEJDFa`EV+ma-i*+Nj2y;J^2d0&q3Q6q8pU1M)u+S)siiNzxi6K{| dmCx%hF#CPTovgYYueW7+4_F7N!UF9|C>Y=K3ibcwTcU73s|FTY@4E`Q*}gB?T~}*hPuGZ(**BR9TEh =bjw5n3PP;876LW<)vFaM7L<_X_lPEuIag!h`&G~Q1EZdU)T<2*dvC+0j=z?SrGOCR-)C)keFZS%erc |odPz)9$r#M_&t3&*vzz;He06{N`3A3<`-*lQ$`p5Q>b8N9R4l-2#Mo~}V!cxZ@YQR`o4jdjiu_Vy`w fg%mfEv0O|GGoS}SP!@6b#eFUs)JAPQ)Fz?*TnzdnE9Oj-%?Y;EzZ0}^BrW*vblPNJs VGwcQ!$1wULSZRpB6$75&Qsm%X82Da#XuvRZvDJ&VNu#0|XQR000O8W&uT97#-RgQw;zBS0w-dBLDyZ aA|NaUv_0~WN&gWaA9L>VP|P>XD?rEVQzVBX>N6RE^v9>T4{3|Hxm8MUxA{l5;98-4;{8uQ4&R#9M#g 2%5suTX;mX|2$G2AUZ`IAK!2Rcc@Vo6e5r6Rvlo8sXEPh%M`RcAqr=*=28ITNo%EK;tMbimGaes #ekF@Kk>Los02;;&4^f#}%Xo-e}1LWUwIaC&|ca-{~ic*QlxztgibNjp#9@L(ll>^wd5kKexWkAFUYb A0`GcEm=HXJ;extGx4nJAJ!vUXJ#+U!F}bkKg&f9KU^Km(XtyOFI7Xbb9&w=_{-}`Q;ifKXe#=-NzRP {=r^%VDC6jgH?IEUI&evP~^92_vPp@zX_8hUe@=fQU&kL?Z-~1^Nigk%DduvHI?_`j=`pkvn8oj2Bd7 kvRKQIU2XI#iP^6Aa==u=l$OCg8R9|e6}wY9y#p<-m|h9HZIPtxZVkeBjso7qUgxLMAv|{(@t7|~+L? <5^Vd98f~?e|y@xm`?X#U9N=x533$cH*izJ4j%D=aVMns)%>;?S{f5}?JhTZ`3&$@kLbWyIM-$sgXo? E}S=$n_~F%WCbdY9LyX-cm34wAXc-*}kW>wZbeQXyWTTO*HDekkMY(dTKjTJ*%D2r|uQp(sV0As8%)X KcmO`OYFtxMpx07VwzO1e*(uuo81-LjWoUqiiMkT%;^nm?vo#Qof_3QaM$v*XnRMR1~m*H%|iP fgczk8p@S~EA9=KL(ZZ0-HErJFFJ+lDh4TeZz?bq$PF>;)ikZrcqF(mNF7}${f)*nfQFcmPm^M6Ymk$!HUOAp_tT)Mf^`}!Bd6OI$#fi#RAztC+t2>9 @xVQ>4I_q?505|l5x2l^;4OYja??4WD+TgR+Gv@WEK`mr74Z@FwA!;4|L8z1@s4OnIV^y$E@UXC9tJ_ PK2i#*$TE&DvMBJQM+Xrf)G;J{>X@}u@Bzku}c^c#Nd`Z&>2qNAos12r@?Hto^vhCQFCeF1Wz|0V}gL 5+AZuorC_h)PmizP`LCzvKcDz-&Mz+C9-3`8GS&mASl^cCPC^lh*y1ZPO& d*?Df)~0?TC9dV$UjXDE$A*B$Ue840c(-QQ%`5KE?tn*UEb}oq7OK-@+gvyd@-yhrk5k#!-W}!H%;ux fft5h2TmVQ@$fB;t<$uxuKIX1?Plslc`X0;yH>MXw6bGqb0TuxrRSPEK25CD7;3YTEf!V%+#l~0UpD^ {W}Yj*>Djo#`Do=cedDDjK-r;Foea1IZbc9c{UwC-`|;zU+iupf@kb{m1Ky48EM0*k|bqa8-5dS{JiT G>+4ECtQZe|RjRnxJ-PN@U;OGDKSb%cKEJ%^_6subECImTFkxF-_6J2w9W~Z_sal6p_v-NE*pS952Th JO7SA%BLzM!)v|^U3pTIp~*%m=8FnrHtNQsX1D1)&XpW7Jhd!Eafu9)%Q{_ BFoIeCpz%`5VD#jGQx#K~XC3s=*V(cXB!s_t{M(r9t3G+5+kwd#&ML16Xhd7pBGNMn=h0{m5M9vWnN@ #}QjADFu75VU>a2mv3j0g##E8zjdr$^>;VF{c!(7;PRHaBX3rVFdAq(4L28g~_`sQBXr<0v;|?9(7&t KJZOm9#9Z$DUtC#GQ>PFcMnN=PYGZlmuLc6l4(cnVI@(=OxPq@n!`?3P3y)0F2LQc-vx^@6cCeX9HS; #tVJM^*aNO`=1QdYaam#Wc;SxFd;>Mez?@?^o>vw-;Yg|^2*BL~DarZ+jt>pn14oIJBpx~W6w+X9OOu k2L7STEOw~6fjR_l1ArLrGgJyVcEf;J=1lG3YF5JMnnwCRoml%zVa9ZNT*e`X`IXXBZMxO<9Bz8kV_# J7AsERy$@pPF{B-qRgZV=9Rl?A%a6qS5XWdCXMGwWto5?gwZj1xzV}KS)%3yB<4T>SZLG)l w%|rprpuU_&5$5()>lzz8jtQx3J=uZS` js7yu{H4%-HHqMetz*5mh1GNG>9J*rvzCf>eHi*0*7a%Af23zY{x0BY*5JB<=)>*G-?6<4-U{WlXf#NS<(!+wdXwkcpdNiX5z1Re s>tB@a<-l)`RDyTsRP7s@Ltl{#~lXnuIfr _B?=|Y)vZyUqf(q7XjMwlA5E#$eP?R9B9t1x70YdI&NI*TG86hX@*qk-TduPyp*8PCYi2 XdMz@+MH(o-p~Qhs$o4a>As0r(PcQBEe!TkLGzdT3jCNk ${;mH{&paZ*@<-i4)dBler;jRwD>wG^=%UfhcTXSJb|6&uK+_;iOi;lAt5F|+wJ#F*H(E<+~YBM`% lI6*bCFl4>-KQ1u&9LJpi6^_AL$^4o4wEh1XmF26`E4Dx09hi%Q(Wn>|l>-tpR &ZkxN93^1Lt`+aHp-rD#NF0YE^E2&`+{&&R={tSm-3U901hYQv_^fPu?)qR54^fD^O0I}*M_z$OaEKM {VvT!&i{%lz=yO~k_B8Yt}7bs_N#PM7HZN=vC?bXliTZNbX%zXW_)WWQ)L){4M(xk+SNzRj&rh4&#v8 yqN-E{6gg@*+GN1?`v$vxTJZ6cl9zn6318jUjE7ck#*;cbWk=h}7t-sf%9>gJ75p{!e;JFFeW@Km0ex7k^C8FMj<8uCCk!tH!>8KDWgeB7`3@{N*)!&K`!WoLsP;Ng*#^+QZs3aM +NrJE&7Us8O6aiqFSSQJgd>j+zwrs}%Pg!SU`B1ovz7#_m%UCBl5f<7>WDy(eeF`L{sxq(C|D6Ov$M) *&*iv=1Q{)0<^!O6^oJQLQU?Q|s3Q6f&=z1GtX|TVb2`#^Ic_Z@tqFIaRi%iUY |3djVt3Fq8)5RhvLRE}mS0OAy_&7FQW-#&Qp!2=x2D2wVSTG3R(^eA>DmJic2z0R~7 -NZ>uQ>WUO6HCO*R%+7cqpIW~HX&ZK20`5*%*+&th?o%}LQc|WfVu)G^ogifJI%8%cNkE p1)`M+huv+OELgYs+2p1|{kFNu+14{%*t}PFjmpMB^%UnGTi?4%ma0NM();>xb>Jiyv~i)xbA&dBa?&bR$|ZCFXhBIM1Br7Wubt}*MLa_zuONf<(tXdkVP|P>XD?rEb#rWNX>N6RE^v8`R&8(FHW2=K!bj944IZrHdl(&NUF8b^}p|qlw>j9{18gYwBJh$hK 41qV^7y*~tpLff_wl9%KW4k5Kj2(z-f=?X{MA2M3wgpEIAB{jZC%i!qa}2B*R?O>&hFW+&E!zd~^M_v!+5ft+}I%zWuS|P>1Pzk 5+hNXYg9ISU>iZ^bFqM-#zLIhj5A#Rny1_3R~U2y1S!ck|dQ9&O!MHCGy-4 tCd+d!q+SO%^rlc}VI_y3;Tp&=j8;FaSBn>G_+|+yhnU85`Dc-eq(d+59^`BM =d>1^qD{*zeF^B98~GdM ~yL{|EX+*_TlhlNjcs7y`*@;AM*=*-2w;7Ia2`H93Oq5h$AK9ow+1T!)oxB&p{V%6GK)s6|UMWM$FT2 %e_;wm}wAT~fa{lOttBjh1yA2nLd*9BB|}A;zGBD<+KI6>#62+j2Vy(&f3q_JiqF4O)rJaOcM^m{NJo|kI|sokbI2nWq +XV6GZ#2hr6HF-e*g`@j_wj *sNFk(TZjhTQFiQq0M4nlcV)VK`insZbYwf>wsz6a)EaCdXrpoC}D?vw~>bW)m_jHybJ$Hu5k7EJ!b# O=S3Ha~a!b`k}J{Gnjau)Hi(aiK4|AOl^ 9jGs3}S}aaVn>zPoGf;m4@a^~!z}z2t7S-kmU-%*@o~a@XLu;a1v2Y?Yrd_-gT0E~=p?8>#5fov52J< Wa&oA|Vlt}Vy(kcD&b-bkx64O9KQH 000080A>M2Tn6$@#E1z102V0#03ZMW0B~t=FJE?LZe(wAFK}UFYhh<;Zf7rFaA9(DWpXZXdDU85Z`(Q &e)q3n*@sA}YV2aMFG1a|le(wIx^dQa+696@Rb@I6B1IX8cIq4w#;H+6LJIWqFmuu-vxCT3Jt>$t}=iy41apx4c} +QsQw;eFv!i0jnt(7?l&OML_o7afQ_p7NGpZN7 WkB;uop#A)1j#6N!T>J_{JmUc2oZ@RW3BZI2!n?0Duz}QGPZ=|^hB+b-t}3bk#1Bw)t0xaxz OEP=dJ|Ds*i6LNnv92{5VT}hk`|i*tk>Z*`dVoR95kF4Jk2a;unuGs?l_)_XoWHNPZ3MvZbMUZL%uN@ l_x0WBEZ9I@w7^CX5v~be}XK*e~7RIL7tf}k)_%Us;qos67V)rco~r*RRiFIpXP7S`0eO?F@855&BU $r4RLAB4VMI}SX$P2RWkIU$d#Kl@$jcPR^cqtqnH8fn3?1o*o=8qL}Rl&xV{`E%KWOBSN2nTDxUdx(_tq^4?(W?`8pU78s!d6+woj1JiE)3M@Q2e_I0wl<$N=$)Q}Yo hLXbffQ4!=McBs?<$$=l3Gp}^n@ESkwGCo0wn&mGRSqOU+OggwBZ6>&L+tFG_OsNQoixuRBqJ#{4h!h SN7WEidytnwe$z;Dxm-+b5mJT=0E-@S=r8TOX52Z4;R=s1(NS0$>jWIJ3VLt|eGilgCW#ak_gHB1-Nt~y!i|{IRpy^*)s{7awOYb6SX? M+9qkWvo4gsZQ^{APp_HyF?D|0lU>M)Ae$~idBVJnBchlJfG8M=oZBH#E`?0it9X~^~@+~N!1nFgmh$ gPap4k9Wa7X)Sb&P9CNb?mCqjeb{Iun~7w1#}!(Sf4;hGm{5o!zt>9sT1Axp)&n^^kIB9olMWQH$bYd Cw0IOw#aQKtSCE@HQ$(pi(@qwa>_UI$!z@F`)ZO^jJKK1=G&1(lv- EUQcDpFRvF6T6tZ4+Bm2VAYDDY2&GVX^)<8t_O~#usp_v+RdQ%*dHUw?6Y7GtZepK)-*lWg#=y4Q0P%cw~xTEZE9#`qA? Nz!e*w!p!@`fxLUkH03MCm26cWJvw+6B_t^uvcCZmj$TG{18-Ux)UdLYnT)Ti2e=D4{wup<~PCwZ*Je Y-4TlWk)m8^yKQeNV}lj(})ni7|uZY_oMlEF17}$NoJ0@Yb|O@%`Z>t1Wt9*0I)VXCC*U&OWU ge|RDi*e(sYR!*{&d}>l^v9H_Iy~Iwl*5HSVGrt&}$wLf}TSvr)uv0bQA2*7OOK)vIkucg_gXU#No~i 2Fo9p&+F9xj`-MusWIGWAJ)AR6RHhMSycet1h$CIaKqjoFXKSt$dwMxFBILc6-rH_!J&;|sTKK*$x_{ {s9&(HXGL1@HsS~gmqIx3xQPc@CVK5gL83-s4I!S>{=ftgIthLdnIJRMDbZ*(R(KV#M*mquSm`sd@+h 0z`b?$FYr@1EewPt6p6)+w`Uu%Wn7QgU!@YRlvgZb5 $5CbrZsn*-Rk>PS>_a8S&2v0?5k~wij(0kR-Qb1&%zx2nWwmI$hpovVrdz6CZ>u44q1Lt&wFAg%n+h6 Iar)K3ySZ|WL`nf-RiYt#5ybJs%!4tZ_ILHnQd1z@58-*`shBU5XRc~titk6*H ML&quVq2yIH4aCi11PWO4;RawTMm>sR$h> 5e3a-2t#Pf?&|{E?GIcRX%quYeg0d75c@hxT&vY&+p=Ww$Zm7qDt4^uip2dp-8C!`-H?Gfs)%$P->V- @@Xq$@Cg)@F7f|M0SzELTkNP%Ejs5|~i3VTIKneH|2Gkg|VQZ~x{Z~;OOZPwx!te?tXs)Pg{T6DE&l0VJij0I)0b#nxMGhU{JGv|r)F+S%nW2XywF}>Is596-$@_ NIfgr623P7JUvhOqd7uS@rRk$41~nQ@y)0w0p;@BH2G=O{l6s)jQ4rw x)#l*RKWvdKI8&@HK$H*ZeO){}s3JFUbO=G_xZ4e^5&U1QY-O00;nP0YzNHTJ*bo0RRB%1pojf0001R X>c!Jc4cm4Z*nhiVPk7yXK8L{FJE(Xa&=>Lb#i5ME^v9xlgnzuFc3xe`iddhIN+GlWuT?66apcegl>g mk8Kr2a;0&>e_z>7z>joc+C{w4gSlrUaXg1ZE*+#&A^0&Vg#smG)D9CUb%GWsMM+-_diyZ!pyP&a$l7;4%61QrY9BpF+IUTQ4F=2R#ogak=QUhL?^Z1>vk`4r<(<1sy-eL~E!I^ZuQmD?FPAq W=J3U*dpRWBoR*^>XS$ao#4lowHR(V)8VM2TotFB3M>Zz04)^&03! eZ0B~t=FJE?LZe(wAFK}UFYhh<;Zf7rFbZ={AZfSaDaxQRroml^K+BOvboxei$?XHFpU-#qK=t`*5aU &rE((MM+6<8#`7}+PACN!jf``(jmOa79q8|@LS_tDe)rl*g*7154(-gckv1@k--?BYnIgmNCGGz}u2v |8ENCgLf3NW);Aj|kS<;(VW`bQ97fVM(r_7*dGz5C{Aw7k*%z37STtOD<@Pk}kQ7rVMQ0Ej7VOVzvpk 0TYGFSw7Ngwccs{@|(<~JH~r00v}FytVfbm$R{*eKgCfJpjSN-@D%i@$yZb)Ow0~Er4OzUk+9u|4T}- jRyr-qn%^=Ki|9+>GoK{UUTm0D4sqFsK7n|VH6T!x4`V{GO&T5?nAwsle71!^2RukU&z2+jNm#h;7Ee 2tB=kmEuSYxjr&_lnPhtuVrTaK!3vjE8zO9tFO-|oJXgTYZR&;O*>C2gAL1qESvR{>X%I|(=NJ~riF% x#%DLibOUW2(Xgc_tl@Tl$CQE|rvsI=f;N1L~Jvmz(N`i6tH9{q7ePD`LRqCQ!LJ|WA9Y^_Jrp{FHB; iKV2KBNqIf;6?>yXS-J@!XqUkKI|1_`xP!V5mW|3S;b^&%LX`)V-Yl=FUbltB2rC w2Om~*}_`dR$Jx5nvOpF_A<6zV5Qo#>0tP~JFmeO6_wB7Rt0Y6UW|s5@#M0K`MH1$Cl?oks<>N-|G1v a-S^&XJ{?_tD8qEKs9Awk8k1o_*TdMYyy$0OLzq@)Q~hn3}?jouxzH5;@-KNmFlwJz{k%(&0^=HT6kXdfr#nq02`TUE}k +~Mea*=^EU3?X=)=oz6y+OYdsxo{#?W=F`Ebw&>DXc4`yGli^_OjR$A$_?c NJxGJuGV*lD(oO(-VRgAQ?!ar-xcv1Gzy?kFq{D8uzf<;IQ5`1N%pbSIBm`)SMk#>9m!hje_5`gqL>W I8jq#}V67fRYs07TdW-N9}kDUgnU$NLn|Oh$Jo+uX9v9l5^+G@P4=;7CKHYN>EXQ@|unZpQcXk4Ac7& =0W>S<=f%Tl3NQFT|rlAWA~19%S-wS%fZn(#4(%G*mRI2Q>aEgL9S#!Z+G^;IGMk$0V2NYL?hwDa7m| f^4nXA>zJfeJXo66FAnEP~d)h;CVbPc%@@DYk){|WWr?UY4=KPLpjZ;Z?YwYt{B;cERdM7yB=9bQ3#H m(=cJub{r_#K764-$SqCeP~jA=;b^B?6{G=<#l(NolpQIh+z32t}g|@D9LE) T33*>x@mSIL3i)HMrd?egb-*?@io6SJUGqC0-E*U=dc|^

2CA-Ai_3c-L7LTC9gM4=r7GkLt_ISca*~dLU$3q2_qz4s+f{WQ4nC-Jm(m)y&#;GMxfzPp#R+0uasnF i#J*eb*|{|RnP1LMi0=dRXTwb7!;m#{xN! @6aWAK2modQMO>&o`ia{Q008 4L001BW003}la4%nWWo~3|axZXUV{2h&X>MmPZDDe2WpZ;aaCx;GU31*F@%?@ULOqC=oN32SQqR@$jO r*IwYKb9a@?7l8ww(EIz~K#AxKFVRsX%a3xEVjo}`&Jdhn6pVzJooUBG+nY@I2#%5uTrH*I*%@+=XB5 -DqnR8*{93s#G2qnKRL%VEhA_<66vX6#o{sZ17=J@ztsF=M<)3G8pDKU#khQ_8A_g$r5p8c0!-i5Zins5oG 2-<5qTb6x}fjeS>Jr4iTLGAk}E(!&c?S3IdtMLlEhc%Ji%9QOP^1D5c7#y;>8!DsAjTZ;7OECH}D1<) {K30JitHi}DLDPX3-`hizhqB^YQW@et>X9{M1EPD6XK^PW1;e{-+1g88U;(~9)WD>`~ED+8CTTB@I1 xLkoR>@)`iaMB?Ay}m0wRk6sTHLn7W^v6JJLtcC0o7b(g-G9ldH|=CEC!#P1y6t^`yIaWCa+`R(X*UP J{nyClC7W@3y{7MsD5WjoB#U4Js+;nf2QwDrGP#OT{qdy|zc*PWh=%3l!{O( D9(_KI58uE4`1SbY@A2u;8KAif0A0luPDn*5V1GrjjV~+Nlq$Gyr+q&9*O%kZIPX_@J^pxtbM>Axv>{ xD%p<!`(JmmJZCCoQbK18jiS=5;MLWetuG1~@};qSN9vOQlf7K KO{HBz4c~2WaT2-2;R$w3Ob`u+0mB`%k;28Td6OZoxwUAPiliL!G^P{S#rfYL6rsz)QDmINIM4Lv_c4wWR7cIr2(kkd3rGcCPtN`X()8*NQTF`fDT%G4>wQ)S{=%P|_$<_anxS_Wnr_UIlfx+y`Etv24QDrz=6o12f0vQsJC&Gm~tkmZ6m^LY2nWQ_ @>=(2$M#B5)TAeA-95PdPMSo0zgMiqX6AxNxljlL`3+HE4r8daN&k}8SA<9{0s$h5D^<&CHywFbJ3Ed zT9VMQJh#xJ(Or-nW~Q(($BS-qyYtE^I#JJ;52I~;bVn^dwt|_GAYmxdMtpFb$3@>fxLimLI?SeR3>O!_**3D c?G$sRkEP-}tJDRv{+nqPx+K!7H}Rso}kvsgq?v|NH+X2}}83P6BY#C`pCH3-(X@7$)CE)N`sDi9YS@zj#X16RDCF^XTqdZVxe&AuiFUe?j&Fw^c^#^(C7SCi7+ujzqgA~d--Jh^cjHOfj7XjEL-&~|z`x@{wb8=5;)-a&KC@Sm()n6U(Hyvb5pfSOccr 3^Pz*s6H@w*v57$5$|8!jx8x8u-nA6)+4dMN=O4;Y31d9K}$Ea%i_tIP=apngwh#=f1gE3u{TZ%i^ev{6}SAqk5T)}bG$R>n3 ZkLrXm4`Y&ziiAGWiW5`t8?9*9!B7{LQQhZ5d4TP6M-FF<{9|Nv9`^s>)$ch{x{V8n)Zjt!TiNS~M7FH0Ykb0TZu~MfsD66=BYVcW9ig|^!50$+MW!xGbo)F9yTz 3JqM<0z_VzNN48nC?mumj}c_~Urr74GuWOa$}&tAYv&kfvL_7$_tM6U`dzOy1YBhX&OK72Vn>yjCYMw +4v0W(@e8V7d&l`V3V*gz=D5`}>$C((e8>u%gD+7KafZD1^s8U}RA#ZX&j2HKQ)n?_Ns%1y-*v^e(I- y|gS82un{Lv-#kE1h(Ms+HhiYp4<{!P9NueL5;KZnAFk)d@?(91`iCBSmG!FE@M+qyY1vpcpf=a5QC{ &c?Ic=@TN;PKC=Y@6e+hm&b5B1CU!1AwDfjFfP h1v23_^K_05Ld}OqEM^a3t*_C1gSoji~O30nJ=;2rnCRWbGY83rYk^2koCTqBb@iqFCJh%mK=Fm5_l( ilT)1cj+$=l7$Bg2V8V-OT?4tn%WpQ3^$v$1H5);xr@r<2A!&|AwY7*l(@-eS3XDtLzAvE0LVlp}tUG 6FoKpraDX1H>&PCwM4g*1FTb5d3?wpBLMZ=Xr?rnRa!$QY*|RY&u{{3b(}xDg8>$u?H2|p%{n!TGY0Q 4j3e5_&K63+6AB$d3^igA@e!g9c9+~ic$p=@Ihe*Xqo2ni3*9VXfZzdIlpD59X~0CI?2lX!Y f1T(>GbmWXPq#Zd2LZ%&bP36`YXOJg;W79TeP3#;VAOWV4S#%)m(0bQyvwtv&kdWAqjLvq>v1gET+KU 5c4tKD8(8o5;xBmGG0NJ6)429D%czZEbhnol+)BfPA32zHrufa}@s&m!-y=wTfH 5jM0)og?w>v0_Dc*(C#r);cMdWs_18s};RYP@$%Q}V7s!J&c7;9F?afl6>S=)iKb(>#x?9uVVoP8B6f #k48H?9#fdGQ;#8tN27jtf~?p6l!v@=2(UbPI`k*bX-9>yj&e3DA*qny;eI-AlxdSLmY{Pt(j~{<*x& 5{NegbN~Y$4?9n|ohwYgun8sECPT;goTnU0KNtJN!EtO`OL$erT*ay64L&k~^Jk_FRaU?xJWbI~Rxz8 (z)}uAIxt#wr$zXOtd8Q5tPZm;C$0`FTz8@u7yT}$cbUa@s{DYsM<-Fd*42|>=N9d`J-L7aA%Ty&R%! 1qaoBp&fHq$1)6#hltG5~aS?IeTXH)~8$P}c4?ZcU_B0KPIxaAw_Skh61%yW68OEoCC6& (ZhCi&I_wOQ~g`YFKkhOqYuqcD9#i5tI1gH4g$2Ga*g!-@&{jf|>gpN2*69sj~NHr)*OeM0u9Z)fby$ 1>c1s~>gydmm_ncgN;CWcxt!{@91Hm7lu$!NF6PClX{eN(#1xVqyp$y-j$?!`#xMH03}G5=*n0Lkb#bA;cnsMpcyp&Q#N?~v7@m+{aeN={)2DmjPT=B QbG3HyW<@=~i!iiJg7U}`zqg*BD%rX5gvY~MZdRQk^c;g8Ivc2Skf9@G>ccZ~y0wct?hBM#d4A4b@WcIeBV mE7E_jzb8)aV$69VTjzwW3ThRi4?yqhbYy56Yxb*=b$J3#McC02{!L8rf~c4imI^bSdUMj^H{uu~6T8 g+V*^*A}J8?5Dk(gy{FZ+k`C4A`xk}QIkhyb)zrGP951Ik9wkT*s1Ts0tkf63O}2B31uZ=&nj{?sNvYka#Np)G34)HBgmUFi(;0C?~R-eHDyXKZl&(*5jV=vB )uajl>qrEOt)sMy!Cr?qCcJ)xm*^ON02w(B;k`pqS?Dke@N7=}$8os1oRI_|EEU~&V_uCBXgGz=q!5v JdT&~R(e+kDu=*)xeZ9;BizTtJF_gUv_XovyQsEYIpKm{P7J9kH^iDGJ-h_EB{$Z_0`?+m43?=)P1mE _ti7fmTi=9rW=bAx#H}9ueuVQL8TpbTne?#FM-Y+~b{A`{xC6JQ@=v&#HK&Yz#+8bnVMDb{{}Mz%cs> U0icXYZ=1QY-O00; nP0YzLEt6bi5DF6V#nE(JG0001RX>c!Jc4cm4Z*nhiVPk7yXK8L{FKuOXVPs)+VJ>ia%{^;(+s2jO^( #>7gGeuh#EO$m*`uCy{YZTpKh{=~vq!4~Lc~x)4FW6xN@iX6x9@$;697d&l8t&AO91B1ojZ5#duEn(w ThBtxoJ1GN|GpFt*g3?(z2}Dw9TusIXIAKYL(_iyi_V%r*)%h|M|5_v+&tUHBEY@{D*yw*Hw`(w))vy wY{zCO#it~+v_5~)PFYHM*rGw*Lit$u*5O&?;8K{K?FY!%k7kYd6X7KdRZv`>jzb;I$!V~Kjy8f(}Mp v+pbmiIA65<=OS(3x5)wb5NqIot127SOru);W0TivrOFomYSwCzFLPDH@0&I+nxNecya9?vX`_ElR#m ns6p(l+1BlQ5=hc(s(O;iD`rES?Kg|YoWEMq-(Yj8rR_QD%t7uWdhlIqFcMG*fhWMebHfsPMJb-p(^$%$E^ !tvVVlQ)oNV}Zqy -Q<@Z-BkT+$t9K9#7NkSZvB=B3Au0Rld7{7OM`a}I;8odutfQJ(x=mB%nv+@R(L-t&?X_mI>_~*3Ps3 &z@)xuBAOY%B`by{S=lfX?dPcT>1I>L9cnJ4ltKUp+OI1RJ|JXc>NC$&iYtLg18<88q%-`R`Tzi+22m}Ss*aiphzl!e8(pSNz5oG|uktp (LBUr>_we<-=r-LVVr6uzKuDKJ0+fjkcBl(rY-yRX6d*LXr&t)qp~~0_erVOE#p%-&B$&%M8N391Q$P %+zD{ppzH4RpNkq$&ba5>_0oZz90G-!F?-Ugr^AFI+fjhp%A}ifB_z7d+iUoBU2H%>)2fT3H%dh_n!njx&)z(`y{?cLZCmG; n^p!3Qw@{RGToXUg3Fve>JCuY_O8((wVSp=f+A-VG?ceEZ0rWs{92V6@**si+v^j;F(6>v2b;>b 5MZG)p$M(+}|>TYO;yu?#!UWkq+MSC>sysMdecMg2sh{@`2T@tl;7a%f_og>=zKB^h)vgjw%PgI@1j1 9wf(=psrKE*|6Yoy`r~(Krc5rn+XkY)CQzTDG>6Og)gj10E?Z%N(V&16h?3vXo!+6ze8#9R}kC K!4#HexmjI8S16LIs%SvyWq?YGJP009-nNLs^CxEyA3r>MNbm&49B42%6gmExS0d1>B1r=B4Fo{G0C5 SHYXewMS?I}<6)3kLADXxM8gyRVLuI`_zWwgIaM31czkBcvL*IgQ$r rmDeWM$F|E;`yQAH&fEF!K!A%gtRGSYnd%W3rY4G3ehC{%WZrUGaQ{8V7H`PDUyhGz{XTZREF0DM&gB =~Oy##MTm7kRtwqtyeA*f)Q4MGp`{J7XQOlq~aN_c}j`zZJ0m`9~H}?DLUr+z}n_yLGwOz#zZ_d3!_#8K_Nkol9CUzP`t=r?gyd6@Ws+UNvYhZ@XaY-_j`G#7T*mHuM$9fWeEjTDmx iu(;qMN}3!@NJqF2Qj=hXULX6+c`|INBUZrAGsq&BFUReIbg0FA+h}y*B*Hh4R$piO-GXpA6a)Og0Ml9(Drqw!TlAsb}%Z^OI3XJ)9WAgXx3?t|AJgFqq*Ed0~(^i 8@olieqc)-aK?5TZR@5UMlUxtI4D=(xuL8nP{M+4guWJUx6w6;X%yF>gFuL&8v>3GD$=ZSfRLL9imSZ 3CyI>pF*yXQv_LLV;$PcVPJ48ga1}=cgN=FUlY9&46XpbaMgMk+Xp*F(kFrXf2ZmFEi69Qi(ex-nPqr u!0?iYNOCqTDF;zrS2lCcxrFBFmJhfP~4RizSGih@uGWC0j_aNYHX9qj Am=2vGI~DyznPUtUenAjo+**zr9eVo_}GIdE2JJJl@O0jq^#YbkFKMRqb^=;W|oqMsR|p|$mbRfmLf1 rsi8&8@`8vdjoHUgF3=3~6`FfpOW>^OU`N_|Nu8Ttegj935#F$atX)2*ZoFbq-FILNC06)-}6H>0+^g _Cy-OZJ2Ag)w)8ZgIW@>;vo@xkiyh)4kQh8)U`X+4MvBUD*|^>6s%SwQ|9LqxT(T$(TI3rR`H21q&*dAG>lxZsIjvJFU&1 +3!^7+|_OR}K}4kET&FMF|W7c-(l3gLn!hF=kcT97P2wkBJS)<|6a)OY*YJ8_V?kfsS^ocQCgE87I0? JkQXS+zfIj`~V~a%3aLDzy^O )TZ;FNM~1>YG$s>kP#Vc-Vw&Th=k(PD&=>wXa1}Ma)r$B^wV;f*XnBrT&DG3La>dX2UnJ6|UVw9Sxdp 2$`j;^*Ob{HD>JK6cFRN^;L&+MD*13n6q@XDvfD}36STPAld?T_S<@72op)t6R<)X?+p(BHAnyJ8&`N %3zzEcu3kneT+o@^X0GM9irU` W~T+f&=CSsm!SLFmZs|$?F>?<);i1m%}5<6aZGIXZ1$y8r-EB9U*Ez1@opi^PwBW+`)LXX_w!RreF`F snj|Q%K47yr!vP6AJgZ=<|wT(bJepFZ0=(`(qltSSeo2~CfI1gwhI6<>4KZI&Z`Y5IUzI^@s;aRl Ylnc%aun`CUNB@{&9%3UjpyA6Lox`*NP)1L(-pgwO2z`+&8rCQZZ4Af*5GP0<9~> frU|;7M!^|7hdLXz!E?r?#m*l;+EI|_@N_pFot_B?`);sF!LlG`ko$Iuji0sx3Q$E;oAVG&%C@PC42M (3gG38Ng<|j&T-`=KmCI%-*nRpDp(C|r;5_3~PABcB@vYw(2VBYHR@QO5a$_svOgWhuhL{8$A5hGKZ# |b*9A<4_B9ry=EfQl!_6pKP*54AyK;~Iz2^K@+^PC5u)`SeeoJb(D?$K>o~^7`Q~$@7P=UV+cwarS5Z ZvQd+(zE_BfOU8Ai$3Sqi4)B33L6|t*x;DL2DAM`3da~ynDvJkwEI2lc;Xm*IHusktS1t|F6%Kx31+* z+GFF@hTmyVmp;}`C4OXn527Bkp#aFS69Ad*3XACPF}mP>=|vly*vV{nB*o7DUD1_e9UPh65pkLMkrx ~JnC%LK98*+cc2{5ozvv5+pb4RwBnU6)PdJV;8;+?M6m|w#jycFOyEE)E8xFyko_5A$j!jHvwj)quzL v<=?9O1FFyfUmCl$Oz{)^gJ0M*GW~lda$l!0hnmeL?#fxvhN@pc0dS#JLYY1e 4uL8_xIuXg=_Jq_8LU_KM2`ztb>cj;fli783=4(T2`PLdu7}ANqE!NPMe~RL2BYh$03iS-Ljun!OD-? oB?vwN6W|IEK8?P%We;7Hr2xX@6{n1rjl#8H!K*Nyg+ERHPpnXZZpPSp68%SXVqS6p;*|f5YX$rS#@X n9OSG)uzwq%0{&$a{bc|2}D40w>gB`>Z82kPK&8)oIizE6P&Y2zB+bU{S7>ioK3}0c$AEP}ohoH9!EE x4eE8G<}C^5RV1!<3%69-H;HX(sie(=^q# cHG;SFdr58z^FMaJJ#dWBRl1PCNTkHf8qFhs^~*exrt0oHD&0&EtxuCg=qoO@(L-3F98nYuu|=Vl=ph~FjgJeygCz&PK&DqPfKzF`yX*w#t}(>LU>Km3F|kZZS{fo^NM#C`L<*IQV v|V_JT14t#2q@v(X*DFF8wuqsZ+5OTtpnfs00~fM*}{h5LwbB9yuk+2<&q-1_}veCU)Y3+j*`xL*BpP>6Mo@k8U|m 8f~Q_Jbxe!3)>73If>iU>eseP6Zvh&?o%F;(`eFYCCCUCBu-N7NToIG8lv)mY4N^hz>Gnu1HSOpYz#J~_RAL ucY2BT_KRF4T^3(#R@{S!TkC+-Z3jN|&HF83zBE($j#MBxK!tIIjL& @aadkVvHsIMP=6Q2FXPAuBXSnh(uxN-44W|w$J+mZ(ZZSlKrYCCU1x3z@ JxFn&Y4ZXxWav7O?7-q!JC}CkSi1;|JHIMXbklDsim4lx^^kT21g x7zhM8{Y7?zDn5U$SCThUTbn!OAv5zrTL>XAL=I<(Bh;jhmA|$ihx2h&C<>8sJYLw2>(IEl-TXx@eLCM_Nf7d3fbnVuIU_Bc|ogH8z!Q!_>|* %vJ)c6(|OCDSt(aM@&viQ?VsO%Z2kahI(OQMv@OkBJt-O3g?ii2p?b$<>zO*0dttTvAc07=3ZIbIZ{Y QvedOo*Y4C#b*Nv$y_}e&cyE?cN*m+CZ2%03kNI$(0bCUof(NUn^pbWQ0nYt;{s0!Mi>peqS*kPzfI! {9=a)bZ)++=IMoJxW`b&vFJH x(AzBR(#E?g8qse2yD;;lkC4NBEi6>>d#0E>x13x)R%h*d!bDJ&frVt|cr^Z;k{Fvi4ZZjE*@dNzxtu uTW}7uTEetw;f?44?-+;H2C;FS%@+H4FP&nX8F~;TG2lq$)z}fyHyPiaW0u8>!x5r%ZBNY)_((N+zKr i}VjJ_{$ti*Qb${3VG=hjFm~ke~qtuD2G3t#FYEPo!p(9a(@Q%RKwjIMo+k~N3WGGxeRnG14mTIaep- UZAWU_FjWVvXaDZ%lxWcVCC_L~DMz6fU)94J~fbUws)zIZv*gN!uP!{tA%#53V mVX?7jXSV2 6B$J=!K4IdY_fN|H<*1FgI4)`xa!Sb tK022rc`H-b+yPVSM!B{;12mP;;vJ#VzPhGC0W3mJw(3xbi@(%95fbPq)S|aKqs&ghszPrE-AbF+&}L u!`CLO5mgZk1fh-s;6T}tM)fW_ZM&)N61hs{7xtW2=)Iau~KFJ%iIE_c1-5Jds<4b{zIHdDb67cP}${@`0Ns%TEQX 5N%W>5zyc`rPU|2bf!D*R-4EGVWizWfaumV^5eV;gm*ndK%pi%SCR_b$i1s=U-p+bB3Fe_H1vxr$FSO l44Q6Oze*_;^oAQoGU0q7d;y8pTi(-sJ@IozA8%!oQ<08N!$LX(eH%^5+&oc FJVP+YMx%?}v^yW5nzNo9HPf@MoMO2KJ;q?HQW?v|x-0?iVPx|jdF2dJxC{HT&i%p<7p0dK32JoH8ts poQWS4>_!L6^a`r0h!AVZ9Z-hl2rMNNgZ&J4qgjP%)y=>9?MKqy-rSZMdge+QpttdW~IzCc#F#W%9e7n4Gc-Q`VVE_(#D(z9i%d9#Z%O`*rfujz2RgI?p4! P$8wbq+th{xO&!w}^88=@GKK0TJ%6*dE(Jzf1~qq}^!5Rs_`|>m@)E#8nZLQOZ(Eej_buv-O&E!!_@^ b0T(9Q)Q}YGv~n0b9A4g-1ZR`sNoY_Rkmw#VvL*lEXeUKrFL!x^kJ x`0~4W%Bx@Td8pSr9AGSOYlgwDs+&fGb-0SD<<3KwzL#gW4z2f#gQnFkYNOPslHg5&iU{Z 1<5~XBcwebq&qpv7JA7lV!o9{51k+}<{ajT<*k8LrUn}_4WH*C4400YY)=Yo#PKmq(sLnrPiIXvWSGL )xch)y~DbYNBsw&AiyDgfjFn56x&;QO+|9S12UMSLFzl+=2|?=>_xaw*CwwBKd70r{j%Rgb@H^{rQ9% `m5tldWP-vem5?hDIR<^ra4B>=y}wex7KL(VI&r@*hX+fAtH7gk#;0gdwvzCyj|6X$xb@yiqxr?@HXR#3BwJ^7VO4+f*Z}&n;K+=jbjTqPJ _9{9KJm;WrPh%b24uUFY`2g%P5e|+{h(e)|G&re>zdG_)JZXP`!-H*RUv+sUTDjSihCk09Kxez3l*_qGH;VbjG^9+%Y1b<)ek_?(gd}>&5>J%LtMtd-_Xe ^bRv^WV~>Ye>E3F_$lLsqn*<(zeb#~aL|kjr|C@Qk?e4=KB6e;t5@fo|ed`f%tNDn4i7l!3V215?WJT ~gnfRJU|AiLE&^LmC3^R44c^+{k8M`7fJdE;^{uH6~h-ySQlVP?ewS$Gn^R%&pe=1?SNmBlrDOic@$$ i6o7r)>OEeL?WK-5#wiA*i7e0v|C*|!hq=v3pbgh0n=t0bDR;Sw<)bi+hv-nxKSp-7C0L?Mp!~gg6Xy -0o0bb7=;)SC4h0&Sv0u6Q`0)uZOs=tJ8r)~{f>cTGhxq!K;BoiB?=}Cy3zSwSIuBFGiP6(pFb?O7t`nrO%0elq?bO2Ze*tEy }{4uZhPb=?WO`B8PsE-)T=smH(2M&=MdC Gj@1__OQ*y=+tB^i^cW3^l=_gsa};-mv{K^>M=i7~4DpNfYiAw7xDhdXU$U2HpB1)s{?=~eps nZEA4$ey)5795!FkBr?G94K4T`DC~y%AWos6GuCd^77LsZ-qG`H>-@@bOp^2;|*NoLsyYFxKOmvquoSTP*3~54{?tPxyF9$%GpQSBzD_a&le9DW$f8?@X+Uo-=@Jdg#!|01+ 7*;>Sz0)L1+!>&oZ9j+Vc^6=rZWfT*-RD8qSuS>3htqj6HNFAEtzXS^a)dmTN#>A#vA4!%q#iJUef5?ukcO>@z0|$uZ!mbG&0oilmYpBOxaHN$W-0 pzU4?5jXpwFn+7vs5WYj;@^JyaeD#lS3r?M*?s1`W%fuWhjW#=c#_LX-j6U^XN;=Kncfx|xo*nle`U2 G-GZjp=_g?p|jV!y{$ZV94#P--HQtyvSTl0NYZol?8^f4d%4ng=sn6GCB`>cL{+y78dFXSdCbVtwFbh ej8p!Mu9nb}s9an*}o$I`I_^_Hgr^Q8}>&W;Q@0A|y*WB>nF4gmK3tK0t}L3*Y-I7nf@5Hr_{#BcPkZ &W)Qo-Mt#xWD0m;qH7b^frxt*JitS#Kots7WYDz__h7RSuya*KC1*i+p$Oxh+Y^&ed3GmO7Omx333{J nJI!!e)VO6B}FZ lm8_gL9+^wkk&H}EDLRo^u(YHMp!U?ia(N?-H{47dFG6Py*N`GAaITdz@IG*<nf<$r&OZ%^G-+-z>+wkJ%YGQ$ 1x}uo)CR-2<+rf~^m`wEsBFv^`mVX`E9Snm|Eu@$+nR7)p&wq_j-N~E28w%lr1LCqH>-Jl(UdwK+12Tx^u%-Fz};H1JGt#b?EGE}d=6zWMSmRJ^Bqy2odWV _q+%vI&_cBJia$7-f7yl5>xsWm-OdsjZxyJEr{=o$(=uHOXwy!4w9`;4;VllecoZ#Skdxs1SHYr33JS _;yjPw_^&1KHtcNs8O|8Z0ac6C@#(9Iv`ziCY6Q`WjO!LQ{V@+hOcSt?*HyB^9U2_T%;3+kB8fF7G@| T9^+Q{cjFLTZ(T^RR&YMTc1g!m@~NP0mcDjf#nm%*Dw^;<#B*)sL<(DF<=wgFoE#<6Why5`aBegJCvC =Dc%6d-c-hc_y0#9Cj^Vf<>xLv&Yb_%Hxzf`K^F@|ZYu>WIB6m +UbKlsF>t4Z*Phcay6oyEc91n~Tb@Lst={eBodqK$rX>=2bGO^}ti=&H`It}vaa6PW0n)Ky!7IuG^)b phM0fUE{A;c1Ur J)l>8Wi_04U6<>@DlOHZsFmg(8t`s(!T9;Hjip!t0oekF_fl()^%!~L+4E``vRyy+DdZ1&!OE}J0f$O SCdz&+4*49;!Q`;THjTs7#q?yL8X>iv5alHvBl{SfHh)Zm~ZmwNl0|2e}IkaKrh=tgHMrgdv+Ed#kXi SLDpzKITRIG)+V{%CLXehg&0ocEv++>N{sPKJ~BotB|HZd}S464`szzchPl$c7BgRqbDnE6lYzmfGGm >>okl{TbiA3CQ%TubuyLV`GRx2l~GDFWn7azGFIbFOB~w8lLP)L)$@5pC2>G&*(WAv(!R-N!kj?unX_ %Z>P5%1uOgNy9c9>PlgU-+liro{HCik072Ro~1{XY2X6m?^ru*& bq>#tkL`hISDp)BJgT;mDYH14V^3Dm*-BYThL H8#}M2TmS$ 700IC20000003HAU0B~t=FJE?LZe(wAFK}UFYhh<;Zf7rWc`kH$aAjlz08mQ<1QY-O00;nP0YzNfVJq *o4*&oOSO5SY0001RX>c!Jc4cm4Z*nhiVPk7yXK8L{FK~HmZ)0mNaCz+nidt*Vb7pZ6&Rft?U1OGsA~SijuYVIu9TQ;#lO&aNZnJq?To|VsX6O)SHsWF -uqLqO4hx=S7{=X^~f>k!)Kebu!PAs^XPu%8IkIG(S_1B_A!3-n_^%J}2xbIh`w_&yw{TphNbO|F+@z TtXXknLCt*;B~sHjcr_0pneyLhs@>&9I>NL~+&x>-EWa;mG@jO}akfl|e>!vtQluX ej5C#1yyjS88Y_YUun=HTk{;rH)8N?IU2=iUS 6`9vU7CC>!;K8HHftWhMskSaVZ%c8V_UV-`-vC95T>OpyYY98aSDY+|&a#|GGR9Gblo}Baf1%p7S&pA5-m&(b_fe=d=kz#@rTLK5v7Xccfmm Kn(fRE6D*=)uF0ZnWLtSD);u}?He2K8JpN7xf3LyWlb1>cV0-;{wJh;8_PY7PsXQOVa?GUuRi&~9)L* d&1c4cA0MM$c2UDG`MK$y@T`H}I9m&!7ME!9yA#MLni@RVR>E$AlHKv2^)RX06alPm_t@&EOA)6u6Ua qAGV!V2)UzM5IEVU#4Y|uXtWpL5uD&5uUImDEE@3xe)8bR1LLQsz48qmkA|@F-{0mmO)N9t~cw9H?A& x9f6xROX*jd8_P-%c8c&$uEiiMSaluUikx57+_)T^9IrUhZp8#I*GeATI@k(|5) J?!%b0VadnDh(N^2B=PP;c5+Yu;4#EgZhmh0Lk`3bce91 uCN#H)Ak$89B>CQcxsqO@1Drgy8fsU?^uhQ!i2dqEplBy@(sHZC{QD>c$NJVt1Wzn$+N2p*Wl&(fbGJ `$ZaaIcZvzHhJT^sZPkmSJ#CD;>TDpoB==UC)b6?jW!fRF@;4P0)pU|`97&eyeoA-*ET>z(tY6Vi3LZ FL%4ne`NZi%hXY`VSX(NySkCqM&h*chJ57_#%)jtu<-u`O@@kXSxQTGmjw_ljZv*^w#xrW7taNf`Rt6vcjGXEy88mEAjr*i0MBcVMfvA!M pUyW)bHF?x;=qlXWq>r<6{7s9yjGiD4aL9`*=9uy)KUO$q{f>vliR(x!WF41WYB6hNR22HNQr3M7u^9L 5Mz)e0ii)E01UR;fUli$wl0gybU{+MT%IS@Ij_dzzpl;pR;$IR#2v=oW2n=30&Ib}gz00_AP$A$*jOJ U1~MNCPr{t1nlSGPRw4?oYCIWe{oq^VLm+8(gzHtd;RSvD>cdY?XTpj0>mPCS1$%SObMY(9*BkLBQ28 3}haBLGg)B|-n%tYPWr8&Q1roTPFJP@$C1)bCM$K!KIL*^Kj+@PZif7Aa@jXvAYS-nDCUZCae=|Tk#} _b;^GeehCZn-Jzpk8Z4L~I5NDbQBR6sFQFR;e?qjG7e&_k@sKhN)lwVfoj u*0B|eaRa(tOeOhf!7wQ$bkJ#XRW#l6*Yt!TxxaseZIy5|XfaqpQH02Ks*XtFxGhcqjzRSVy>T@Wb{} DZW@Hty07rd$U*u|T;$g?f^1C<0NUlo^Jt4&i9)gJhM#p|TjQ6I7Z)dnt4d&vX9L8SrJDMNt8*#T1X5 b(CP0lD2cgp{@fMYH^S2%>2!z%?Ib=G?>a1j7L-UgOJog=svi?0E}~GIQR-h2j;tu-nAmHV3oJ)INiN LUTDlXblI7?Bsy8_3j{PfCFuNp{&SjPv2&p70DvTlakZs3}qY6yRwB}C-1m!xpR@yp$ub$n>Eq^cdF&%$O !jYpP-^K{^7qtrBb7IWT|-?f-KAcc;b%_FHNZlG7;hID_{0mj-b*t82Gv}hg$(PTGr6YSEI_ER7A$uTYh~Hlfk=6>4S1JY2L}qqOC746U1$ @GTjmRl$Aea(ZU3sl40N@wN t3TE%Nh3RCO$lLvmm@$e4M=P4#0eRiegz9$~s%Xu|5-Z}ZGH~R$c&Zq}ku0p2HR*?rX1(x4-&N{RrvD POZC^DicvN?15q=oFjD{(zIPC;XJTHiuvHD2m#XNNs(B>CK`>FxKe2CmP+>=$DLy{tjHrK=e-^!b}H& QPaoPzHHk1K#C+##Dck4>q8?IHJMvUA@tGb2`K&Kc)&q`g#y5uOEUW93ODRA46YQ8c`tMRvIlsh?r3U 6wJp#vf}k{jEq5J8T*6A=HShUiMqzFB4r2?MM)5fXc<(XiR! IxTYRef;wlxm`k709vxR0j!|d=(- G<*ir}+t~n_4* ;S)Z2OiEnJ~8Q_L*R0yYMp4bXkzjQidI{b-QAv60&o6Gmk#q^vIjI{o2)?F9qyb4R8ka6j3#3a((_7l %ogfMJc3A-6KF>22yXyGmwhF*M}pbRBf_6%?BQKxID8AH&$es_QQCKC11%l0XNX6Ke!E4q?snjhyjAR po~?b$xcP?0zaKpKSBoL-Al@((-f8pHKJsdxPw=s%QqTqDprDcJhRY&5+sL{>;!hLe;;}7}d8>rRv=; tya$lFlnwRxf&+KUx3-dQeX`64i7-Z101QKbtrYBXs?6jjmde8?zbUx1fo>6Fd&pTTV 3qQiq>5rXO(8`6(WwdG=M#%IjqGC1-I(V!-3{M{Ghhc9sgbxOKEBZrNeToUhv-mWft9udJEFKa5pkoD TdYZG2@U71*KXplw+jJA@TNO*+>spX1S8A_FL`l;C9!L*rQ8L}Bn+!p9&}e+B^HjBfI5=&sB=@^eS5E 2}zkda2`nf}I-|H}WQBZo|ICvOL*cUVD(UIxC?288KQPA^AovzzIt@3jzKd+}YRoInhSbd#T6YW{n_} Ko^5H5P)GA=)48NEr$98~F9$4DMmX^x+$lSKbgwb=@N!*}qiN@hanNk{|oQON%8NlExIL~?QQ^$vA2I FUAD>Vl!D^BI%`5c_<2GJhh&H{1 =(t>~RG_{RbIx0W)AtHou|3=v-=K|>N{=2g^DBh2_J;`#u9f;5w(Y9NzPsIKH91T0Z|ajDmYtLGcQ#W 2B+54cX-P`!t487Us5Cv9jQ$T$O9KQH000080A>M2T>Y2Q<0AwB05%H%03`qb0B~t=FJE?LZe(wAFK} UFYhh<;Zf7rYWpQ%K_zmO1`DWVfg0=v!J^(8P^DkI+wq)U*8w(zP pFMhGP;1DvNto}vhc7!)|V|NgEgYxyk5P(x>;W}3Z>uEO4-0o7HHflBdpQ~;wzPgTy1w1T7&{E7nRAP QmZX6R@S!G$QX$2PH9VerLx?TB_;|Od)Nv2)Sj=%2~Nb#Va9e`8}hF?_A93GYb`WxQ4*m6cDCCJTlEE {_}0tcdbagJTK;mSHR%b+E!STtKrQS~znlS+N^f~Z3=Cha=IohQHJV1q>@XLl7|5;Loi(;L)Rw~0p66 UDDe}N5`4*!n$}4URtRzv3;;#20`Q&tYBhz^V^u%%O-|r+P#lvA3i9Lm)R8$T#sEsqqY*bx2Oz8?l!R ^&8{QTyZtRric543ige58O6HDr-LY)_uVGs=+##%iBRNy>yZE?d^jz|{H1<;girt2Rb6&-T~db*M%kV 3WZe7Y3&S0!otBM_yEi*Hm*`9J%kwf&l{u-Nyxd{BZeU4)3{yz3UP~vDzRNwFaZM^x=&*RK!#kLK5#@ xXrQm%Z4mGtCD14qxMiJ$4b9;!|f6-{Zb;aP!zl}{zR~Y#rn`M+~a$&fW< ^NCg-$iCyOsR?j{=3MF7Vtw5yD%P9e?&(-eHiVblpZr!wcU_kwH-M*6KWsMb}${Nw%Xp>zObjN2Sbgm NVzwD%r|N !(Lygk}08fsD1&bMd2rnT*Ux2lXdt-ZMWZniA~N<%_Pp4t$7vlMe!Eu!R9SaCVrOk+p7IaBHz(O=1=h &*JQ}5;8F~n6XF(vgz2>psbAVzn{_^AL4WUeSRlcT&0dt={bWd#z_m{clh2Sj`0Z6$~JW|I_oK7m@s% sq}BLqqcC8O@o;jGFU{casiI}ip^>hANi(>KvEw++wQs|8SPV2YcK^#+#=ixd81uImW3Eu$RAtBHl|M SZO5cu5-EgxR@{0DN8}K?zVr%*vb8hb0y*+eb>;iu6rm1pQ%pBC?XUwhF`>50)wUhwYjl#Iwfy*2dFE Jb5$LYxk47T1VyK;ZH90H5z)Rkl;^IyipVli><%?N-Ilec!Jc4cm4Z*nhiVPk7yXK8L{FLQ8Z V`*k-WpZ;aaCz-L{c{_~ZoliVI8!qfX;W9(ai>$(RO%$ot2=piCiaV`qp0MOx0EhE-Z6Ja$&BUv?FF# kA9wt)-Q@L!KiDF+!60T$hB6&oQO(u(Vv#!`=BF7{}Q8q~f!|J0W`PpnP|IC2f OGJ&|kpAVf1>lVm~JE$KMLXio=Q54KPx|nI}bAWOE? ;S2hvUh;a^Wf;ECfz3@kWD^^Jb5+go{#(cU9HL`B1OLr8Y1p@_w{ht4AZy3!=kioI@)!;~y{&L0X1UT }e3wu%oQRbINM@K1JM3Z^Rs=1=FFa94z?hMiCxuh<-i(Zrk8<8AjiwKquG$kwQCMo7jf>6vD@PYVhs* QewuN%dlA8iB%Y8ZPrXDgS}Hk1lvzA6Z*BjdeXIYH@aJp(=VDGg9K3V?|x6VSvw0cK75c?r@n#t8=!{ 4A*hY&-<`s$v9s7=hw9;?I=bh`;Q)=Xp}so{IK=O!75*R#jys*pJ$W|NoF=Xvl7_SrH{o! w0Go(vmxHNI>c)_mIF9M>kl~75sz;I!8qra7!lyn_T#!8b3KmRbxCC2DpO3-r#81Ea`mgYTKx8th^Rl VIT#cjtKzy`Jn)&r4sjkH5y$SH6Hym*C|6^5^po-0g-jRU7*ZrF13z7wRqlpBpo)=)Cz-C4AIkNP64! L}W=qPw%M#MXr!KcZ*0cx(xRL_l*gJiW%um1jlVAr$@!64jxDptelka1RflH%KGp1oyJIs2K-o0xV^1 **O-*LfPvm<8m9$xTzi0P~KB#TG(4&~%;D*CtU}(R34)MEFQ_gStWd?Vx2}WY{kPm0?r@bs%^g5MhQE cN=Orh9!k&7U~wLDFTZCSG2O^c-)o_$_f~t5r9=JV!wdnB6Ja7BQWR5QsVX+0F@jvJwy6`%|IiQs{}2 1h<;0?ySM=aR1AozS*=$G>9ckY0sM_kB0PI4AC3}a%zgxjJkTv-xVg>GxI3mqz{8Pa-D8R3?#+hU~MLGarAD0AZPS!arHGH$K)q5DcOk f@7b(ouKiWs1R`bW_*u;7)i+`&hS*e8bS$&I(wIjGK-tFe3#`fE$mP7k4#Sdvc-SQ?&)`Nd@@f FkN4pF-Z)0k|X6)Uij|WK4(h!(18(t@GQ6&n63mQ`7K}`n?jyGBEWmK1ZTP_O_b3W$wI-6f BV5m-8_-3jc9!xS<9>hMX_fTs`)qV$8QW`6HUV|kr(i}}35Fx!lV{7N@glC#eoo4X$oLr47Rsaifpbb q%1-34$07;Nq?u9lPdNM=~Xy6)0#?gP5Yq=-kD3+wAx-altS4OvG^_F`(o)-j4HI+{eIXlTJ(DErza5 !5gr!_;xY5*snwy4ja&2UX%jks&WBJ@Dgq)C(>4Px!H;2)M7(wi8f2Im5BKVSy+hx9~y!aJCh;$Q%N< `sK~{s2I!O!?}6`TY|)>b(Ek_-;JDyEndjGQK;9fA7xW{dh3&L{rYx4Ok31xBT}0m$n~|uVb=8S&ADV ctH}OnoA;?G~hX_=gEqJ5P^ThCH*$b^8m24q~Y&C=A^$$PL*^*uxmLMBhLAK6?E4jCApqp=98YRNAfpu%y_iEdo|QDG)n4W@f^dQsh%4BCF@+x&l#21Hfi$(2Qc9uTw w=nFq45p$*jLmQPjx%O_)8T7>cv?FDBL_m2Wg;Q{!mzVCf@@jpM+|30|9FBdeaW*KOHwNV@w8|u&N8j t$r8iN2EG(%TI51L6R@RlRU01|&do)Hmc(5;5mpi^*CN;&}n>$B5&nFB7|*RI}z4XD>EJlXT04d`NC) ;I&KGb_5m0r!V6nBqX 6qg%v1YlDH`9%#@Q=$Cp52mwK?}(kF*E*&H200dz23l{^bW0N?DH94cfn6#g3!kt-0a?K;_^l=~~tQ*dWRFi7p=ba3PjMFKw2i~=7ZA9P{~YfhV6l9sVNBhK l}29IyhF~>cUrr5UM`5sDvF`JS@;#i`-;V~|I7l1};N%1tfq18dfzQ>O|rh3CBC^Us;2c+f{6%sn$VY po+3@3^Ft6OmVkuch*>vcuD^=4;qX<3{!!r;K#vG@<-69u3L@&D6!{GpA9ebDD8eLCUe>7K>7wPiWeV X~?R($<5`Bot|Q5Q-8!5YOo29>D$a*$-d6eDw@`Sa|dNFE3vH@a*fSub%NSZY-l7@rzzS>Agnxw{dS2 _4M9rOwb$CcVwi@kMGgPV2>u=S5N4xoYnONjxmKl;G70r(dAjyGUkZ|!+P3%*v6J%tFyEC?!%D^R!$~ aku~b(0ZkNzT!ACK-fnSMFL?YMAZB#;4W{3?q!IVKe)O1TwZ!N(zdb^W>t7%l*N7sDMgbKaOo7vj1r3 b-lJLRHB(S>-Pgb#ug-NS}Oa>bW%X4w7r76PjsSF7wa|$77D0=hB78bl@g%=3&<^Y5yCVFMiA1G9}14 LM|Zb}RT%`uOG$9LQfl*hBp@TVfK!uwkPg4ZVTxfvEW2vnD{Q9p}W9L*AWk{j5uT=_TOPR11Uj=8SJi *=sU=Y52%?Si=Zr>~s*c*NPilV0=!*R${O?|an;8K}e;pPdVHvtH%wf^HEodjUhA)?74wOo!lpPa1~a AV%?9^#{ZD!74)Pk2P>Pj$Sn=a^6jxd2`q*M72Ycd9O6K#+ef;usT*YHzY>0XQJ{93^s|2giGhu!=TO|n#ptPoY2!VMCZ~^lrzqSYDh8SujrxB+_=<0D`RKXaAC1G_maj_|PAWJ?~^d#__sKAhhKjh *JBx0;kx1~^Allu=nywvQL`;yk0aa&T1CHnqzfUV6Z0|~tX;RQsoR(UfXXg#r=HKIott1FJZ`>e3Fw0 {9dpVm*|lhie<=sG%UPU=V)6kHi}f?<MoHvt}P{G_j~eVVd5*wNu(PMev570RO1;< rZo(4cmd~(6WD?<$Zo)zEKLSG7dFcu3&&U9i}E30L)t &ksfL3Tw*+|36T>S+C*NFRy~tuh1R_>cLpsod58(b-0)j4(h5FVMpu~eeHroJ7fVF>4@V9v~_^C~u3X&z(*#qNTZ9_}Wz^k?w)ZC_^KCIW-tz8)A<9w|J-M$3TWcKbXjjL ESL+H3x{uqd{@bfNC?1#amUG^q19!*0iFGc`Qe+c`+6=kV(>NVXWK{VPyiRfRM9754Kq{$+Y$iGs-xU (k#=+j2sO$)=3;hO?ec50bZJS|9CPUp9C$uxATLW(1y9WL$)F=rRyNP-7W2ezStFW>8tS59-gMU^7x( x6ZXtpJGv}~{rHyd3o&Po=N-b~u3@d@oSdV?>r6T(DeeXtdSK64P=WTDgvOr-*9U `E?g?aJAGF8sY4wax@O0yvfX-dk8q9#=$UtG>*@8vy37>N^p`4Y;1pX?LC7Vn>^xvyAQ9$E8O!#4N-Z MpNOJ?ZP_Je#tu*9u*g-PnCc&b`i>3XRC;(1`w)~uyw-(N-W7%6X`Zheq~iT ?pwasZ{yyeL((;E9y+E-cP0i4P&lT~Ibbj5z=X74R_~i#vUNXgmacK!lDV6pnSrEF3I<&jW#uVkXwyR Bvp$dLi}=h~9`Z{}K>Yxuka_}e^;{gsQ3!*8MedlnjRf^>|3|&g9~-1|?`uymzsb*Az&P;`qoRgnfYi rPd9R)ZUtD6Oddn@LkM@(k8raUWU0>4@V8oa5pquAde}=IiBNL6~ekG8^+d?F4wH&Bnhsah`WG~I&e& K|=EZ-FLc%|bXZq<};uP1XcWaJG776W+HG{@%AG>hJZt{}j&ip^OaEH28`^UHQ`7};NCW#`ps%fF5qSXqsm_h0pWqGs9eLbHNSx~61S^7EsE?{a$wndZqgQ-I5qL5W!i;AOX@tHCHnAsD9o6f_B6}y3QH+x$zv{+Vr92 h?TxQPZn`d>?SEZ9Np3HBr@zQPr2T#20;?Rd0Mh%D8hKKnFgNxBA96q#^8rVHeQ{%!tlC_)2LHroJ6k IFdxNsg_v>$+J1_!1^%`K(H`?W#ekZvy210x`8k00ZBix1YrPL9AJpj)&le}r1S5%MGx2J-SMn0kRhH*5zJ@OH)|7v(49Oxe7Pl+28==2+p~8(z5q6P7=A|j j7vY2LeCE(L>4bRWM&MmjWWJhgh`?!_UQD{We2)0hObabR2(wG%;ni8nk5vb2BA#LrsnCxur>{&+Ham TL(y9YT2kdHX{M>g(0#Ig+pV#{p I8{w$i~bQb?GSCD;m9TwxBezAASq5QRlN9IVS5WM!5gnn&xzH*N=1P`>zuy1k^5Y0k3x+`1Sc0eyoVm o`7-HWP+8HW+F6wQgt@{ifmu?}BK9LoJh*sQ`8+!2t2@NAKV=K6kmR?oUJ#r)A{T-H+#3aA;Tzlc-|4 &^mzKE5mcR@(@x&aS|}eis@nhP~m85$A%JINpJn!OE+s{R|!4`Z|-7RqK+R)ET6%5Qvz5xxkMk~XuSA p6n$qE2Jm7X?iFKv;l<0>c~G`$Q8z3b9cMH0v^wu)`rsa6>Ho{ZiFe#b~`La{|qV*f?nmiso50UuWE}qe3|Ib`OT%npEl}{j}soZ {Vzg$cW?`K3%y#`67NO@=y$TDuFG6uj7>6obfZcNLZ0yozYhVi@o-7NbYy`ovt; 6JIQK2wv4p<$ynM88=d_vS6KOUIKbvDF$g877Rbd_*^q}=(gI_tI~AjfSWb)J&q_-LeLYZv?*ldWwfx &cAR;>Gd-|(vE~RJR^sRX74)CX$lB*@S^7mq?&i??G$|%g-VyX-np{Mq-RR$<-wa&HGvTW5^j8lb;)g %7h&ejSB?`p0(hJJQ?^{fyzGWHUP5+&QKa*F#E!>#4ESuZ;}P_Fp=x)8NWrsfQJwT@LppDipVaWve#R h#;@*raAi3&(y3yB;(g`R+B?p7n!XY=ELl}QMS(y@ntzr=JqIjP$3tYHo7};g26Izt2khNmiMu-(DzgDwC0336+8ciQRKAVbG4 -Q&G5y7o^-!#xuesw8blJ*P`CDdB9dRxW3`*~M)4+bPuc*iu1FaWNO`=JoZVd(_=sqs=3nD`Rvk9ygs 8(uO5qHEa&DvsTTY;62J7#KF$|g6kVU#7Q4dfuoUO1(LGHiEQ)n-ObWl >YBeKHR<|@-3Uf7$ENh3rR;g&Z>QLbjv4?5mj3SSp=+O&IJf0L~;S?`;r=)MJi_0=pxPuqnLJRb9j}LR8y GJ@p&RcT4d0w}hDz49fCbBXoLM3^4r4U}qm{mn%Wx%OA3Tp~sd?i;6hF0d8Eo@b}T{o^bw-!(mFBk5E t;IXXR+S+cZEjO^%@TGWIhFHB6Yc?$nfHE@wN5AU&zl|?eCe!ae9FD`QR^6Pu(iopo_beB_@X>YZ#nx mr|d}sa~xZdJhMa&w+yR1OE>u(3bZgeBg5>4-0wyrqjeTKb|{+~=K6XPW<;C9TK>;&oa1!A#GT|8>(A $~Ut!X;2^htBRW=w8!o)0!ZL9{*tktdL90Q&fmQ%!1P$GYqa)AZqCG%^TCr!?xHUN1p%mM1Y}3M@JK$aT01(QuX?x- Acdz~s3QiA(_fM9VF6Z=iqMRN!A($B V@MvK#Xy95@$;^?i*+#{O|7ibDHz+04AQ6 TIkToBSoU*ucqGM8gHVGDjtP5*Yu7irO4NPBr}0yVYzp*D;!MZCcIA)~d-Y-&jI;~3fZ zWGLxq@`q9j&Xq$jy+CFB!-^9I(Q9C|qNtd}Abm=&uvo|BeL`1y{6&~($GsNa{uwaBX4ko9PZcSa)9j IUf@G-^jF-q1k?rmV90K(t %so;fZ#whituv-X*ubqIv-;iz&m40g9)6LEl`Q4Vos9{PGZ%skZljST;qIaX{9e5Aal(7#hj}Qhzg$% 3?1xFxM(8DCA-kAdUS9ulZLFKT(YjERgg58OZ?qY?dwuo__EE~EQkiQ e_khEWLeY2@P=;A1CDhr-j)M3R?6{AReK%dC|h RQffAaVnLu8Ldv%?3UK59d~<$#i-?{vtk`PSJ>Yt>BSTS)-!itEYzd;NOSzEQNKLMQT26mY1+fIGGsgGJoZX-uH#Mc;PnH-^^)o$KN=qqRrbw!UQe`fIY `xwJFp{&K_A_KQ|YnzF6}=9v!ZXJ}>>OWsB-!IXm{&2BRKp+O@*1)VkQRE&*N&{G@+3L>axMF0^uW; |^a8y@4H^3SS1M)$>Us}&LA4h}#qJED=#LXl)+X@pZf#9P=!q{cd__QxRmZ&?R{W^X|{5n_^ghJ_#?A -|$DFt>aHv7s}&LxQTKN9_62@G$u0D;=O5dX#p0>abwc{vHj>8s(j(rcH40+zlUNYQMi6IReIUnAdWv #yixD1_X$QET}8L4qzIAuz-G9EbYOS8ydizMqFkqB9%NSAYq>*emR1-=G-tNbdwq84`jIuD=R Ow1n$s|&J3DyG(|=s5?uycOV)whH}m@0dU%P+S{$&E;UhXK(5w{nv8cd9RUNybJ8p_Jap9DxV8bL$^8 bCmq>t;}qfI7V+U?lC=SA5tRec9?lCnzpy8KY@TjW~*3>5#JGZFQ1A}2Z~U1Oi#-U{{PTSfjJSM 4Y&6^3WD0w{-_mts14Gv$75nOR!64PFr*%Y?XGpK+_T*dhhPGL&D3qPW1Um(Q~=KWIFyynfv-i8J}Y9}@KB4G;fLHlZ=)S}-AKZ`D1bcy1@B)j-E~GkhR6>-^p{tuuBYW$h0GbU OnsPY9VEsqmd~O@w!eLfysn4_y1#^S!Tmr&6h_<`RpPP26pXUS7ar-d^9Zs>)LE4ejmI-vM>mhGEM-Z O1S`_z&JRti|Gt$J>TzB-;Ck?Y!l+w-nm}#LnHt+G+JZ{U~U`A-m<59=05h4sS}S?cv{q?qQw`&5V47cN}ts+_$|LAUZ_k@vSoB kM4Z7(W>vmHAK3eCTO$Cimpe#~{UI @wj{ZsO{mkhZJp=6?y3C2>ZCk%3dMAU%kR1syP+I}g?s4}FrFOvFIz~z3P>p^u-+dv&s0<{Br+YH@4u y!wu+Sw^Tv_@)YY!9-l?OE!EamAPYs}j~BSxK__dmLRq=MYG4R^OA&nvjx=g|2wNXTjsKZq{>mDVT=) 4_FXpc;hX*$e-0={~xQvlBkA>FQi3OVlZFlNhO5^%dM;*PQ$Dl{K;!<>g}{Mu_O*}4d3z{1?Q}D%VZu0<`H2lB{ TiNbT&H6jdr>u2*lJo^IL+MEsfneG`g*l6=f%>J&Wsw0ZnjE{Ma8dfzrP4Y{)sy(*Wn90TxxWBzg4o# Wzv1EMYUX%9ilaz@}&YL}cw|YrR3N0~{Qh-Q9CW=K|wr#d$iB1IxJ{=F~~fq<~loT$^DlWUG*lA9nl} $jbIe$v}>~m0h$6!my{`eMiJQ4g_7o!pF`%tY2%U7Kt}Qja{EEG}hPCHgRP3U5Q^`>2zsrFMn+*SyVz Plc~IvxMAQyks_CY(~)MNtkgY|Tw~>Hp=aYgX~qvFGrE%k|C4uc=QS&q1>nC5&x>GMX!e@qI^&S@tv| crAh`upOC_S0wQoUzoig}^Sym-62t!z?UonkFE$6F2uq05vgwYJ1sJevhnEwzsEPPmUhm^FuQNI;RCd f=zWbgd?Z{0UeyP^xKu2Vzw@xx3Lmd-pKzGT5x;ItE}UAK-=`#eaPP2_&)mAr=*anCAlyE2aR?Wyylk +PupHrdp&3OJ>l^+u?I17KCwHT?pKlhcZ9-w-e}NaZ}7P;-44$Bjl_u_WE70*ySkGRhrE-L>}IUQEAs &l>A4Vf%1iVcbzh9l&HC=s^H`li~_hFtw6QlMNdg9D+a_h)2iZ=zjrFO9KQH000080A>M2Tt^(%l){eu@$Wa;1m+Y5F_EJ|Z)_VV<#X%nzh>Qs<5x#-P mlC~DLpH)tW>Z8gM#Oo6lGRy0Nyey*dkl!2`@Q|c^QdB27|$}$kr?jmsMF6JPesw=UGw0z-d-SC7>b) 1N|(?Rx6RN%x#`TB>-KU`+}P*Sr*lzw0G4!FR}%f(mvU^my0Z2ij_h{Jx#C)(AbQAF4FR1aG1mB^-Dqq-;5Z&9v r_tJ9>Ze{s?}<(;wcwKMUU;{&;k{&tkDC&w<_}B>Dw(y{0L6ISuFS;e0p12x4WQ12IYgGKI*O ebiJUF;K4WNF<}*ykVYvkw4%a5EST!s%Z4^7t%tPz7`pD+G%uSxE6a_q`Ku$PNzJW9YF+A}QHfwAxod Jx?tj@@>H-PZa|iQ7NMpD+>XXAzqHyr%TQgU}0L?RF)BtQ?jVwz~`wHAa5XdV!f_PWC1Npm1=Pr$xD1 1u%q8VPDQz4Acu>O$lnMLq$f&b2F#n|;`2DLIMPKJ$|Nf#2+RRH_rho{fXZHoVCe#ujTbNr_@#RzEZ& 9cAM+)^5UD7`(3d<}(n^~y`;3+ppz15roo|x3lzqX$T}&L3(#_?J0g}x D~`B>NPm>XUZ9sh!b4~(%1h)u3E)fANh?Ck0coZcu#b>*7+_Sd@u;<&!=d8AzX3)$FUpPONT)wRBu)c7YDR ;1Rgrf2Z5u=w{yvbP*)|9U>-&JQCdrX8{+pGs3|0hWE1Q4di;_Uivn;7$i6sN82eL1;Hu0&)2zAu3Zs rX8HY<=c+kemZ}joqbvsblsM{g2(IqIF@j?`fN|fyI^zcM6A}^KzFOt9qK?5EtG`}sW7Oq|GZ GA}kZF9KW+OnZnY!ByY-E-)YUg?B-;h@Ksg~OI^Pgr8NW8aD|z3UEkH{)wNH+yXeapSooppChEi01_3 hW(9Qi&!uZ2O4guL8<9VP%pu9uS@8F$CjTOKO8t9X$IKb!HN;(viWYcAB&#@(R2xJZ;`rg=6U2p+ip @VgFp_t}@=d39CL?F^=X<>}sHm02!KE&1*m#tmQw1Oy(eITyiU;I94faz yow4Ron-Cke2R*6pVTr?<~wk~xX~Q!Kd}Y;){;ZUb-(ixsc*uHpl2w(EK6;iVP&ZoDm)tA&Ru!-LCoj Xs;SDoR|FCu6oQ<~oqv@(2&ux!j+pZH+2PA$ViN6`h;)$^1=t>N2@w%TYdSO|tPG`6peeYgzjIWHz`e fur1H>{tGJ5QK?Vg?m5EHA<2faHZbQ1Fqb_Q5}rq{%K?*3&TmYh;Nv#B E4kif@4eG-;V%NG=m() CN+3O2X9)DE8RxD0*VFfl|c$a}F!SP}z*wBA-sC^a7pWf(PUS`UM0{{}F%V2M>py66y2Z3(HpML#%HZ !(a&z*TJgDs@$J6I6%+Hv@^>B_tP+fNKtU(44dvMsS-oj=6x#Y9SxPKbo)@;Dn}CTQz$poAC9~%b&jY)a(^}a0tMGS}w8*R4@4l% 8}TBY4ZR=nUzsu8fcsLfc*@Dn|;Ei<}%$W$qXCt;6P+H0w=N>1yi~Nz0vf}d5boy-ifUe;!GV^%ybh`KC>635w?37_ hBwH8<`6eb2?MX^$CE!pMCgVG|uD$Ual!S(Qn4x2V&C+;AhcDk8y*A 5OgLioa6i?3(&uN5bP9K_$!%&@3e?C6@Aw2o@$HO;o-o0wDj!Pa30VdvjplQ@}L!1G-S`fK2LVPgTDrh9{0L`-JQHnFi$*< {UsR4YrP~l*OtX@v@W2g;GsjH@9&P-w$|4)!<%a}?#(rl!2r<)0byx9ZqzvXn!Z-Ww^+&AU8FG0VzzJ 7#-!BynpvOu9&I10f4a6~G$89?veG@F(655yQtB8)>b&PGZDHL6pW`uMLrQ?68eA%XW1!9RCNW-&pTl I~*UaU`_LgXk@70h3v%ZGFXgCjGt~+2O8@@|$ucYaVNXm(!|A>x-PWmoe&{&ox8_cOK#8O}`7(DL}j) ^TPlm@mN+sG0eREe^w?Iw8gIENj4j-I>8R6?h?9(4zi-a(PjtgG#1MXgony3wj9bi4W!I)~V( |8LPb=RiO1ktV}lFaXmrHrmq={uWJK-D~tFb9{B6RzFwrhZgO)n$f}7A5{jCqx*n(*FCb?l?1%0(d~5 a9;-O%ty|1l@p9G1Xf#22&3Q$Wgm3P5b;6Hqm%(Y(y;F6XZQ4U^D(0hWzZ6AC(x2Ko=$ehpPxMmpFAG Z+wm%`0-5cwgBO&X*tMP4(PE$0pxHT&3Ya`~ssB2ip-J5tyTOAnTE|ZwW2obHy}fg%ar;koe#-m`bG% K{FdSNtxD&l^K<1n2vvHn3oo=OsY7=4`3u0A7QG!r*0)06KFlkhZD{cU3;>4Ro%y)FpFZ+YRHS`b=P| %ew07pBN)p995_XQj^>*-kI;H;>4BZcH_L)EZGD)C3Q%RB=yX8!`QLEt$_r$~U=Jl)8WugUoMo=C5vM 8w;3qdPTHJ45YcD;_>@Msu>nZg!0t4k7%Sx)F(XRj0vI5)mF1p!^F)i|?r@8U$D;2I^2kyY@}?=yP8b 3NlkW*@OdVQG*vf4}ga77~@OdmOTtzBtg+5zat8+?}FjhBKO!g29C|qn;|F)>l>sAzaMr7=n3x+lW3-IaGkw#!5&QH*g3tgI+0xr;i;aiLAb)Ek4iG_Mmg^pHxRn&l|;$f+UG4Q sc>ZL6R9q$FE;q?T)P?TmPH-Gr*06%&&*{f<@$qhgL$l<^0gasaF8tZ3A7&E15F4mkd2eR<`Af$4JTZ 9LO0Ns}focO5m&%kAJDkd3)qz*Nx_%Zk`C^Wn18g^}nT0W&)x0ax++n8JF)9<4~)7D=XRf#D_044r{A~#bH;b$lK07cx5joWc?tG&};_u}S$!`Z08jTSnQ!niL~*p8{+z(o80LyF{80u8q yN&#x_&*aeVqk!+LS-(JaN?lP&i;db*)sIm*pqZAc=88ey-;asxfzy3Yc-5!f2#!{*2PH3ZNT;8(Q?*n{C0ThT;KDy{|E&TQJpQXw3>CSr `?IOCNu9frF6YbZ;(7>m&5k%{DjoZ8)Giw%sKJUT5Oqrs+543)japJIwfa;JR6!m_B>rxtPyI8Wo!m2 _KcxxAO1SD&r1$724_bMew>m?qr&_)v#L?Em!%21*)}Zo>e8A?u~&f*vZK&C2H6 cvuRnix@42xVDGPeQ+c7L@)rsv|M2{b^P*^b+idy?s(cSgIn+3xT~=DVAPHdb_BK0_)igHC!?pdrNvg962&jm(SzUUfBYAM-)1{C$%ld ^C-UOEsw-JXxlhMLoUxq*4f&(PVV~%MT$1cf+QRpM{fwJdxQh(l(<;Iw6u8(dqfI%rdZ(}dZfo4 g9mkVKMXBF{(wRJI!9*xLip^P$f=5Zy4R1{wCxUK_Jv$T>RodNYKkq!jKXiWhXTDGeKSsT6ys

w!K |ggCPp=NHz0+S$&yIc!|8ex5DotL!`|;%P4A0)|dNF l0+;LB~usn1A>dpGGju&{aPMLb_YHW ?ma|*`)Lr{i^nlUgP`q~s1K_gDI@`e7BzsV=xmt7z%WZA}U9mL#qyUH*fwL-)F`41;Kx2^)Sc?T39MW L{4Aqh8|DOfEfCcQL;|_yz-B8`Ma{&Y#Yei@q*k+D2Z#1f-4$+&mb%`kKpzhS6E~@#MOz_CA#6nhVy9 KlZ&oU6H`jmp|-1N1~?hBRSAhPOc2?Eyi!3`8+qBVF^0 _;Ggyo!@Jp;7Lo?u^>+4fm`t^y|aPlM$Qt$iSbIgRdwHe^?&AhD;bZ%?*|R9VDf?#hP)yzCNI!No4X5 1x;)4{lz~gaspDf1E+loJRHpKh?YbnRNp%l;=mt!{EI@ekknQ;_Sos9 q1=<5Mx8G&Lt&@@CelOGYkL3j3WUCHtxZb$$Zij>EJ)!8mIFc=vYy_2dZs=aFOk<2+f=4={FrshQRBB HHwh`~4c#sSB1OTTdvP}>p;JVQ6))Oh-I@Sxn}cwlM;0>#g`*ETz`$lEpC6kA |0C7uT=heE7J_xt?hO9l#?FVQ4S#p8(yQ3d-y^r9HVIPUjxoK8xPnk{Y3$W34P=X>Jv0vL1pJj0`vo{ ljb1(Kwe$Fs=-b6g57|A4TI^UG_JU#nT59>Q(gE<=AEaM*jw@lg;Q#HrTtQYVXL4r%=Kwno}W|8o-Lpswmag9*B;FnM=?pL}7!W8psrCfwDE5)s%ro$3#)ip{X9_?zYizw&_Sh;K7&WIX0yYSV@A&{QJ7H-QiR1WHnEti1Bkh-&W;bvC0%-TZJ*{tD4;@Z(7Qoi0$51q$5rjf=UA FV1-5b_b0yCC+p=cLa3Yp?L?SpgDa617!zxWp8Bd-6v&>*?k4*88x^=g1sigA^JUCU**^oUCEz@?ct%t!;5q>|ndTj- T5qlfOMv~PW_MJ@0*3_3DDy%+p0NVo0zhB_NC_7ZQQ 89d`t7Nuv66{jCNMnc_7avhdnrOsmSlsVwgY17TbjMlVW9ANm%i!01lU {W&SC01HQ^EvKZs82DftQ5LL1dQAw?PAehf>S)v?Jov-`n(4 w@u+mgpkqM8uu6e!C+jU0x-NlRCA#`^p3+v=Y-d{xDr_pI0jl+NA<7uw*Sl0}4OwX@wa)O&Wd@tJ}aS2Xp6)2VUJrFPESW9IId>LsJcQ|H4Gw<211Qiq@JaT cSAv;{x`e0%P#3Udegfw~?J{u@wB0|XQR000O8W&uT9?d0uHxds3LuoD0P9smFUaA|NaUv_0~WN&gWa A9L>VP|P>XD@YhX>4;YaCxm*ZExE)5dN-TaZ?7wN+lu5k`42a3~A~P0lKtk(iWJj$+Sh=+GNoqskq77 |GqntvMk45-J$^!N!0OPpL=-99^6iI1>?NnfY+>I1r+&+mx^all^K_yryMkwGX-L79xmo=gqIgqEQGg Qs$7)b9vsJqA+RztVoz_L)iN>MaBdb~TwV6AZ+gyPY1X6=+UiCRB%ceFYa#DZ-&jZ(iP^m1nnT7l%L^ 5I-dKtmr0KZQmE>s(`D`wvM#H7hOrtBx^W2)`R$AZB^Kw#4Uh~E6{TyAttx$IeZ%W)0!iXvDw8xrFR4 snXCLzq3R6NCHCvaz@u4S&uJ67bG%f&J&A*8o5pUrsonirfY?s-qEyvR@`oLRel<3zs`B+j3HUg{8(m Pz7W3pqo*4?MeOGmcxF>m9%S#y1-R&+|qFQ>u1{UUlBGqT)R%g$%kL;E(V7=6ZqNTRF&b+@23B${v)s >ldgLh5%|Rsv^TYjtL6F6b$SCH=9sCNd_iWp7D68dCi4)Q_hR$SnhIHUlz2(AcVHSf+0QyVlmv}(yQJ pI63}ls|Pm}+!uMEXvY_LuuD?*;8I8qGemL5Gy^r~BLnaO6=~q5#x&DBm3+cKV5udK3H<0qNBaGX=#R tb=j3C3Q?J4Cx1fa?qe3$#TV8{WSIsDv+!kUb^rvt$Zgx VFa{i4|=6SZUR;mFc`#xfw4Onq;!YtgF!SH)S|PhKtB{NVp>!+q^d+|oIJsD`Vsyy9>s-NaM=k^gCQU )#OdJ=PRZ}pXbNNGFGJX@#0*;|=6Aeoy}%sCTC!4+QM3DwIs%hOW@;-j@^HaM$TO++Vr3< ^Y+B83W}64@%m0ety2$&HbbJFh1J1nRO3#%PTA%!RyE4)3Da8V8-rY%I=WDszT>@POUkjLTvakG9ubG YD8Jw!|)#JNP!|%JGphZbZdVn>5WM}v#ij>cj)4C&D?}WEoo6;rXE%xe0la+Psc*QkV*V~sQq1CYE>^ MNaiK-V~M!FtEU4(W77m$-Zu{`C_-R37}Yz2r5OJ(;`8dqZl0V`gEg%r= 9akj&|w)@P?}hWg1exW%_NqfWbtSH`A#N(zbX9*AFbA0LxsN$J#zwc?nUnW9q%*=aE?{B8W*9!6S88v 9q9=Z_BmpwT{+!5ncz4*O(eKS18ErHK2N>H@D7HCC^_?RTS-#JtRynj+^nukb*uN~E=#>o7tmLxCb;c 1}V#{icB}q`bAPg8S>G!{??9-o%3rT=ID{o;KVr^&(h?f^AXW?pBXH}*O4{cis62#LH+joZOshY;?qVfE|`P8)yh;MW4cakBQ-R19 CQPl>LSjf#fy(A?_YM`iqyRJ7BvI?!V1jqy(ew#})qz0nHFRG(&)n#B- Mf5Wk;gzKGNQ?FU?2lS@UV?AQRP?aRhIGw>-(6xzOxxbGP~KX}G&Z+n*=xhMG6gGJY7ulZRDiCaDxB# aW9WA;P;A`NXARi`s{LzPnB%oNUNz3oY&M#Vw7q_KCRhkgy@_6E*FVZ9FmjHFf{bwR`Z6yW!-YDyP8; r#r)%Cx=ZrajwQL7@2>6z(|yuAy#cahE9zVu;5^rn)sDy6~BM2T#vvyYXleo0Q6b_03ZMW0B~ t=FJE?LZe(wAFK}UFYhh<;Zf7rcWpZ!)J?p5ew%gt5? }l7TtAwUAc+k{sw5>_jq|_X%;19n3CeQ1y{%qaOTb_-GZ@SlK<=@td0en*oNxwzC#xu7Nj&Ch!6$5$P I%7BIcFu$7X{0v^y73Hjp5IG0oG$b^1O(%w6n*Kf_{%h>4d<3`1DS}1nd*%)cF4V?b*erGdW>OZF!cJ 0yj{Q^JP}VWtMLM-!#kFI9n_eUUD|!WfUhx(D6L469hn0Q5L*hEr-KShrwr>XA8EBmqEDZ=_Jbop!0J yi_=-K79_HGvCQ(4Eu-8d91(VCbQn%o<)){`i@y&m;fwB&-$xPgm)<%(A2~8x`q7T_=2M;_WVYQA9I94J+rf!xNT`e&OR%5UU1E_&CcW*dAS+VJKmo;Q0A o(-GX|(XyaXz6F9(+S_7U0t1h3@<)>{O9TW^Zz})I{$FNj@ cI)sPdC-B~ASjYU%ZiF^$08?4&CZpji5Eg=&0W)^YuDu`6K7InS! pl>n^}_2h?>t>cNj#Aj5L=9|WFEbnPUn3#juPDbfQC%ZHJO>~80-&bn7t70>U&8F~_*xDS pxaH2XceddUk_YDd2@s4%&7$?VIf@zD$^+G6W?0X+Y2Jb-jPkh1(tq-Do=t!*F`K$WC*t671e_;D#zq`CO|yIf@$iB#Mi2*g3mL;|^1=iR%6KCixc{FL)g27ZIs0 Wr?Ebong#b&`0zjPeXo8zIV5bnEfgCpIgk$t{FzGVS!0D75iE9qgN4`qSc)=N;PQmpuT$9y^xZ~i&fZ Dj+FI3Q(rO8H!u{HY90{`BcOzb-dNK8`WGhHDAR&n$ KG~rBqjd&)6HO*0E6|@gtcD2JP}xx}i@;znDJ63~mchjN&{8Pk7%gqZGDscwNkxB`#`WxRcKjs8bdi< knCvWIgFv8Jm!cLRdo5_8ALd#l{Le`2aSOHl*E+REnEC%t=W!dIvp=I$Pg<${Gb-#!3$bZKwEtEWcxD T=v&Y^+5(&m1Y!X;$@_*@gp5|T(OP1y2&^YgwkCAlHo#Xe}gU$lBP*x!O{GCw%|m?df~d#q&Ut*v&n?vmIL<_M%0kFRLoyS`fiQ^2%L7qOJ|U u#-K4foTZ})vT{}gAuS15EX!Y5i!vqh-CYXjIoLY7R3zkPCWsSypJwS{D$9AK8Z!(9XP`!32=J> cieN>fUituxO(vz;ce7cmcn!^Z7@CBB&qr1T^PsC(oDw^UnzUi4g4s$a5=~D`QaKV7P{LEy??VjTw>l vV>>7AtL$EOkm2@T+dLnQLTiy`1>GG7g6?aPD5s92HmJqZOrMPEYt5C>gkO-c<5U|&_Ey6Bk#i0_owI B_)A72}SXk8iV_0b9+S$))g-M>M}cWpXtB=woD2Z9gZfo^a^Yud7c6)S4}K#a!P=@sklNBa-^Bls^L@ An!D=*z_;d{19Gh|+diJ36NL{cF}-DZK*(7N=?H%2N^n2Hubg`GVkZt;+39aS3l-?LjL9(j|gQWY6*)gto_ih{kw mIT7X0G9JZA3^ti;eTtz1gs?Cn{O0WFKZ1V1-l?hp4{E1D-Ri4b0jm)9)J?*BNfPVqVJ^lpx&ceuh}=Cu hw~0^c@~nRim2_R{sE!0ts}L%T1(+I#xY&VrX`qwD+_RdVSoOiK1ZqVja|Yp)gFIh)3z$XTAx?co~U) k-E?~Y2ZB!Cg`u!V=1LDqzxY8(Z50t3gY$T$pnDU_)4m2oIR(qA*&9|DdS#n40j`c2~G {dxekfukf)A7CySe!qzQDy;{CQd9G}AixMuLr0XJX;}F)i%&@ZO03L&3`wdN^R6uF(gQ_xHJ5jaD6<4 ~ziun&@W-2Kbds-RTyLk-x!d;vsxGTwK)1H*4dO*O$LMu(?N}bUX8SZmhYux!%W`A;GNd2&EOC}fcWI (#WMELUTlD&G>$CxlmH{vu(oc6|rg^%BlIaOCR?L@>RFr}!!>s*mr=f=nF;m A5bp4w6!c0+9U+U5Yx4GyRDr)Gt5l-s*fwkt%nuMB2sqBqiZpLX8}w*oT 19IKh(ah7Q=$|<+(@afV;V|(HKp<#J5>NbXsWd;9Jefz0;DB6c8FU8kl2r1@>3ur$76>~6o8b?vBjZQ 7v~8pLRLaZ`JLMC+QozvPlsWEhrV}mKUU4YYp`Q$JE7DDwS{YeRGY0XS_@2U0aLJcw@_+JtQLUKQB$Z ^x6-$0q|=#uC6=H+X3{WZ{v3zA#r@fss5+!Q((a2lFl~M?=k~BMq>lK7tSIy;~3D1WbMFnlX%kFn69A!HHgTUt5uw>^8Tx9mxm)T fRF5AGvuo4zd<27dmw$Fc`(Fw1}>O6!Yw^z+%5H?_dF;G)kSTSn=zbrOC=Bi`3uR@)i22_oV{*`b_0YUp*7=rQ#bo4u<2e?kMyrzayR23`r+Soe*Nwfv09J3!7gkEAfr{018sGE6U6!( zQ4!p-keFuH7O`HdY^Q(`M5cV4r` 53t+K{pZF0s0+_V9$!Zp`fUX=MJ;R2qWrAyEQIqE4!0^#v=Tqi%|pD07G;<2VQuzIkIFwCv+J7i(q5q wM(_;8UJ^AteW(q6B99*Tb)nfN*5zuH#N&1+Puq-O7(N-?43HmlJz}sK2t)h+<6?Z$xM$Rh+SoSwS*5V<<)}v} s@RTKKnMPH|E5iXWc-Q-{ug4ME8B(*iA0OZ*=-A~L`rSkI V@GTRoFM37!XTZ?r&j~10+kS_PsHOq+6sLyqt7m6Q!gAGs+H@r@(C;+@Li_m8?}jufVq|@_t!ByWMIOMt?SeR$>Fi#8>*)*Xb<54lL{5_U Jv6Nbv?TMhLC78--gnY^$FEB+LR!a2lFLj>iXWJr8Y7>G=U-OpLlh5jHO!F8=8ho7)On-(!XiC1I`&hD~&Qph)ELVZ?71-!45gCwywBX} }>@G^_{TmerbQM>lgRX3qVS6tHj=^&MhOC~M~T6NBNDxr -FgM0FwEU@zU=l}z6kd0${g9bg97MDR?{S;wXno$Lol(6?1^_c-Rb85V9Av>>rlxsM+zzy{+7=9MFB^mvpui6f)U `Jq-z-~dZ!h>!V^{nEttF`$v~We^b`(HS3M5s@^s3}8F$m%Ue54v%_~-0y&T~rPp556%EdFo9&C~EXH OVt$xW2ZvK$0Ncd3_PYvfC~`s&^`-UN`&ACc{YXeODE%xD8Utui$j5y}`xo2?MvniT3)ks~EG!|+OTE 9+>Y#-NY|coiIQ(W^SB1TBBm6*txK8ETjeFV~MiHGTDrbU|-VotFBQOhOi<c!Jc4cm4Z*nhiVPk7yXK8L{FKlUJWo~n2b1z?CX>MtBUtcb8dBs?5Z`(! ^{;pp!#~x6r(M#KFaX8@;oMO>2ak3;xa@?HZlULNz+L+=JyOd=m$bauMOX|&%9p`XGnE*C-XP=p8-gf BkzWYO-68=$ZD$-0&DKdKA#5>KhEVa!><5p#}#iSnUc_Uq=qA?R$IBQH|J!$;jei11D((} p!+z8$ONwh^mPCRW-;DvXu&bmjD%2P5j_JMR5Nrz@jwXBm~l3jO@!Pk*naMp~I<)QjXDb>uz$Q(OBlj ko$#-oJ6j`qIpmwMr+XEX|~mlNH?>k$^)LB%~xAQ8*LkR#qv~B$5@S(pVhOlT4@tCX%2K>RB?IDGOMu qiiXRg!q(%wK`OSy)xC|Vh)=`#u_6POH1W!CdnHXC%lSNGnFDHl@RZ(w}88Z6ZIk^Fw2Yz8KnxbFkVd Aj`en|=Bm)a0M0L#VHXxG*w!k|^;AWxDnRGbkxLhoSlL;Xri#HQiwujF7oC@@%%!0XSsBNSpHH|ej8|AZ(s8Vppa;}YCsW0|Y}18rgncp5_tKHdI;d6QD4Wh3B9go)#Ncz-5|?iOrA)3V}$qaY`Tat>;FZ`84dEjxJjRpMoLv2fg<}+ i#QC8sgon(q%9@>s^cp5`$KE^nrS()arhqe+S)mmHglO1AjQA-hhJhekbtT9F?GZ(z$2{-FNgBC%ZkQ dw`?|?5O8d7GQxtWVmyGaB_y%*4v;Hj6PK9G#GUm^%Srz&h*w`6r5aiS_A4|4EnvH4-?t|?grh{0rdF ies@%dUaXP-9xpUJYjrwKS?dA}2F}KlUjM@&cy~4e=vlAR_Obldhjp#D9Y0qGYA2mma9*W$>%8^Ocjt P*891@R!pk$?EkR=o|4&9iuL~+%%)RbtfQ2f!4n~{9m%-4lQfm+l*)6Ao9u%-!LBHoGWYO;s18x_cuyw@a1?(BVEnDYIaH @r2K(N`%raU+&T_L}UPYN=K+(qy;E=}B(n4Hw7{LY8B_;wTFOv!s>4MrN=@iJbKO=Fd1oG3ae0GBhBNs9=|JeG&%a&;W #Q8zM;aj@)_k=!1Y$*XMFDsHVpMOqcdx$1B}QV)Rjb{d|yryUX&0-v{Tl2M&&)s!pE{d4q+H?Lxuln- =NsCm7Ch;XZ8l`s1vT%2plm5nq~VMk{jvw+Dg4_Jp<)QX&{hy27?d`L W_?jPqg_Myva&s8*7_meXBxp!@I#PVI(GD@G8J|j09j-aB|+s=Y8_;rNJUAa1v;7T%+g|I_B)=nDA6q 0AhHb&xIkCVNi`&y2!|_B)RvQj;Ek;b1GshZ;E+Q@@Tz?dGI?l&|Df5xu-sTJa8{o&e8ntn8Eie|B`&u3p&Hw;r|f1z~V+MI jafdsXg{SO2J0Qr}v_bi-6}niH0kDwm!JAVd+&@YWZ2+1w`EfN_sq6r>CFhn927AFOWDoezPL}lNx>rz;MtA5=dkBZ^Xa>m-=JxAmhq;((h190|XQR000O8W&uT9V3!Q(k{|#8vc~`bCjbBdaA|NaU v_0~WN&gWaA9L>VP|P>XD@7NV`Xl0WpgiIb8uvME^v9RU0IJCH@1HFukc&$#SD#Z$w}-0^Ptw!maQ!+ wcGJv5R|GYiB@f4RkgZ3nE!ssS|o18LwRn1psmC6ePnUxA$j;}N7MNApMUPkqNMoGKVOqLOKI`iPm;9 o3z8=Jt5=my@sg2b--d5qG8~RbP`r8-M1G#X_Ew`WGZNq=$NzH<{NLYRy=MQB@VD1_L92gt_3_&LBCkMl}~SD(jgZ@OH({>ST|`fqx_zPb77)vMWbI9_;T@3+?>#_{Sopmaw~=JM*?s#m;vhBym*OlE @E1d9T@sSN-+x4K*Waru$2Pvbc<2%=H?d(eHJ=^Ly~8a|AMkKFY(s6kv*40_O;mhaBOkr(;SP qR%8e6vq))ogZtIY*yJ{})Nm+Gq89_WmODj_Qi>v`K#eqQ7);gIzrvJn+E?^DzM}8`6@ANB^xeNA^23 lMB0(du!{QJn_!N`CEAh%Fazk*meyJx=tPP`S {7)Bv4KPi1_)_@%V&wBme^sG_z9b+`C-id_E<;jm(oh(u2Q%^D-3IeD@gkgY2S@B57DiG${R7UD}m_) 8G++x2?Qwg=}DT-i#%vlhq}}42+a!=kwlsfN}Qs~6~q){*=Qq?PFS$Xh$AkfB)$X}7P^F;8evzR_tfgqWwRWKU&w$KtFKgdYnckr~KSI`v&CEJqQ7P~ kHf{HtF5Mf^}k2B@43UnviMfkaks|s_cI%Hi$A68e;MB60lBAVSTfTfK@#TI^K$4bps26IuzojOTTOd >W#qc13`&AVMOEK)RYRU1q2brB_HRpbuwEE>)Kk7!Wu=Ju_7T($ZSMaU*?)K7{RhsYjVRriR}3@0egN EiE(htF4ly+NYP%g*ZLl@7J&t+~&7>)dC(J*VW5vUzHP)q&*gIX!0uchWNGVtasQW1QwqpUpQ@mEui* JzgxG;DvukwY+)L-wZx1$1s5(ve`IWAhKyI>$HzadWvwk$FV*>4g}4Cq6tTH>AP9amxSG8rO?Z>o^Ua `YOEy54pZJ%a8a<-9u@9s6TE1HLBfot1r7{7;_4CrlH_U0=EP`=_asSp_U%ZdmY8SMaitE@u!C^OLtv VhyudLD)aiwHmb+7+Q~#9GV<#1Q>_1lF0HtaLyK^yuZA;AvcK6_71lxWmS+81q{VZTbsdaXF*89bX2K M0sREECtxkL0Y8o(bM_-Z~42M+nvz*xnJw`^)3B3@(&x7)iq9ji!jv*1??H2pcSx%{%nBib=V9=erZCZ0bm2H 3HpX)gPVtqEXf)V36X=Pr2wW47q^|TrFak!?3jx`uMuzD+qj9h0HBEP>UscN+vW{Bbu ({WAM%Pix8I@}-@95#&ySI+M&Ansm=+)f2w2uDFy)*0X$*$_gIyxQa9;c(baqnw7IvV$0rn@0u)ru>c Tl6h6)7+wufQ?q5(QAf#H_*`sxOV_egEdU5o5t!kukP+duIfQ7-N$u(M@Pru*lT2A7|7VwXav~mDp;& n@6~ATRJlz}!>wK1Xuul>SQu({fzimtFi-<;bs)6dHALtXU*z+XGcn0?@}!<9V-y2^c18@nimqp+gF6 *Ymmhq}EpmpWc|wq#2nQt6GH5)U&Rp`S1>c&$P`T9Lo+)Pd`&+OfX7Jo`1K#S;J11bE1EEHWX@b&&o> l7wT7GcKtTRE+OaL5-I}>DDjyDu5mt1d1@-7nZ3X)S7$)f|wjubhOdh5w_<4vJX`hbHY3Z6t8#6<=}< D&|U0b6|#wa4GYv_|dOHwa8J$y`$XwnO3)#eN{31sl#E(432$fGA1j8y_va39yqSl%Q`f#X+`dF4j}@ v6jN{%m`my2S@y*dXUDMUl7GedtpQT$olZ2WG7FF)=e&_E}di=$7MnaHaW^!rCw0-Q<*b(3p)^fi#3LNTS^$Ca{FKsA#x*hk`jQoCej+<*23|?MN(#aAf(Z&gI7&OE!#cog0_ -HEk5WCS9|maYl-uQ2YS{cI0Fcf>S3m6lHWe#U(QMyJtgsO6v`xYhnz(EehO84X9EBQ~LbBV%z O=!77TJLjTSe)+J8Y^v8ar+9)CAu#O^p;^$Lpm7i8S<#mcYDRvxc}0^b2gO6 zJbB31KdceJCz5F3lq^L(249>x(w2?e1UF+glUoEzY+;rOYAVJRoAskWu@wbwuS*6eVB)$`C{aa0GmZ vq+;PzKka}gl7+ii#558s3P>5ZG13+UPTO8F@IYr@`RwqEV){m@$o34s8arG1cFy)# W0zgUiq_{5>UNCpmr?wL$=_=h1^xCYAcfJ~(}A4eaSaU=D>#HurfEoBgjBHtIswaMrc8VrE3ZHMW;%-JfXIHfz1iz~WG8?_pU$F`E%SE5$gGWUW;4sbM B=+}M0Z%KL9h&caakQ9tlL0VXR1kg$r#+BrKGRn*b*VuSl#$Hz01V6(B%&&42J8biFzJFp1B5(HG|-a )`Upa+hKu~@sVAYU#)}5CC!is=1TiTL`1uqt?e7XHcQ;VpmXuA43#oy$B0KODodi(z(+b$L2E$KY?pe !;xp{SuV{yc}=iw_M{GNx~DFez|mBcb!*CIPmEZBRXMA;yYDI0p93o#;5YKQMM+xz{b!}cytRazV($& =6TI2F0-eW2yhRGbndp>&@FMsg?j1m_4?|KN~#gVqnxTRx#f(=D2=bYGEDTiUKlO;2agyAwk#>cIt}t 2iadtq9C&ZV|ZDBBRz1(OW*@zo`I VtyG+*wGul_TNJuDQfg3t(_w#e!D&^;+5M8m`_gsJm-gDq|Gs18ucp7Je|OL2yL;yE?m2&Vulu`u*M4 _({~q~ekyf{bP1iD7-Y!j-@2#*~!dJLp6snptf8{(d^Vz?^I83U}@$Ay1fTK{foZ0t50F&PjhgWd-wf YUY7Hd#y{qDQeZ-YlNcZXyae`MFWBWsD=>bFhP<$J-B>;FK>QJ;G$%C$9VD|c9n=Bc0YK~y{$v-g&RR V}oGizDB;5Rr|<4l9e;Po(c}Bv#nL&yP5YDCRCj1@MPjzOLnVif|{Mfc!9;04E<0VdhiO^4AFLAQJl0 rR5LP(Ez%od>~nt2Gp;u<>IpYgA!t=VTJkrop|x@!>X1zz}{;x!1)!wJu6`rfKj5pZi@p2ghpe)oLB= >4G11jX@Mwbb;N+KnBtZxM1zN6usslgNfi M~0y=O&uEDu^1&Fi2~Jjj6v)8N1sZT^;fvUoww8crqcQgeua6lQCCo!IHd*~nheCAgsYsM0KIDGblHa Te+Ibk&Gq0^T1e--MoXOrP{`t5oF=JgYiJMDdI7w)U~c8 XWhCy%PshW`g+q0IvQZg7%m7!q02G mJPl~P**g?rIMc;|I$2sMquTx-~ld!>q@*Yw#NK7mFqLD)sX^x9hjyy@dN(MmX!O>w{tRR&GE)|CcLu g9O!F22A>P3vHB)3yYuAirn+h?MgxTY@09#~H#LOh^bVe04!lPL0~Q=ANkKDS~k!8c!Al6>@m^~g8wN |h>A=A)ml8lfGWK8Z%j>ZcvR@=)FQ|HyKYz#ISHvP3#F|8cdL0(to@m!^;(z2(9VIQn@(rP}|gkpQso vIFu@wZINaN^VIid@+fiD&cT501_Jc>dx70;BX+OhV?a=zEh&W3jEv?%WT$2Twti6evnyho)veB8-@9*dhVQ?1`hIQKxkb Bwzj4?3LgW7ZeZBl4n`UG%YR;Ujno);YbLMW>j4X!D*>#ppP8F$m=-d(O%`(Y@@T?X%fLQnP%bUJvS( D{16moMFgbF9os6y|5UeanghKy`ur96K%XXYLcvJ;1>R^B{B7dPwIdwB5Gx9rH! DlFIxO!2jhOeFBe3fjbIEMf48Z?mKmkj6l&4Z3$bZ@aWk5n7ZAlUPS+$!fS}A6A=v^H;sY2~^-(w%;;Ss %mb9;-5l>O~VrS)|_K;Gz+9PUcl>zS!~Kv~4qr8es4raM}5A<*TfmQE(v_m!5UbE~>QRD1usKv(|;AS BADbi?{A0)R(Ml2CF-J!i6MB?F*IkK4wiI2#cFqy<)bV!h%{T8*FksZAUjcz9Wdrk^o2M-q~ht|d 9ad$>_oWmd47qX(u(Xrl4SBjO!Gzpz@$@2^C@&FDJC?P5QHv4h*Tw^Q{3E)dm{r7&_p>z@cXNP#SoAt h-AwjCm2Sc-LHbir3#z_22&2hN#ZNGN(2IT_@Lmp!~vEUW7$i6zXqu!sN~2KW_#}jYG;tb oj}H2d1817ofuCKr95`9!<$F(4$tc5#gaDAF!2H>kz1#&cj*A?mIH^_O5xDcqK*>%i|HT9_F~%`@R!$ +#=hH9nDa1G}(wzM-0$Y(CnBhIjbE#>q#`nnc08@ON5y5?p*saL{5J_<8$zU!3KZZdz4OxdC6os_u~9Ks1)F0ct1lApWyOKf=Ge^6)p*+E69tX2lVEAD=trBv9$RvoVS? k%V*JE$Z$cplTpLb1d8mGN4TI8tP$CPd#QCV?xDt=>?sz%ss3$;kf2cA$}OhDje}dcgx7w#YVfKLR*f 2FddRfFJHBID5wX>-dOM(E@luy70!fsru0I#ErGwkg3fR+uaLtx``32a=C+Sgozr1|ZVQ)r%$cay 46>;;j@1|80lp{fSd|q7C&6m!Uq%xDWll5+8S=54t`|q~UG>4R%REe5F!vrUSTA7gArc0jzLLU0QH40 JPvrxbGOeh%^Wac_y+P4maRjBn=|f@x*dCb8yn0hFi7vEk|32>X(Lw 2Njm1A-a2U0Pl80oKh?&lPRzcPc;W1OBV+q4UA7c=`PXHJYYQmHlkY+GlL`iR)Yd9wSjdd{q~Ba-*zy -@V)B0ZF%qTc0jrhBUJe08^+UX5lb_)w03<1oS~9BHlT!+`x!2Nh>eYbzCNS 99ru#w~dY1PaXzWR&&{y})mb1~oVdt!c_6$&9rP@OK1}HH9ZlP}tP~bVX8mg2_1%->Hg&H!dmO8;rU` ME)%RRSTW@^TG-D5V#?HapY#yz((?itFs=UT=;8=%0JdJFx<00l0Bw9sD-&|lr4?+j4j>GCw%si&5fv x&p8rBvEESVF$ixJ5DB=4x3o>FUmNC{3oA%l#6Qcwo;|!%$xMN$5vuf^`Nl5F~pdxol$MB%f;`0M@1v E|YBz)4TGOV^^M)`Xp=haOV0&g}U)gecVk_0mOiLFFQw>vNbNaTv78_U ?nIDSPcQqIRbvN@VzYX$>@;>-V6uS`oY9{#Afk5{jzjE>(pB*wKi&h_24p~&gZgm_`BpG>@Ry(Wew;f VH!7PAUi5(WcS={V@+NRsz+hCmzt#u<5I<#>OQ>36ht=M&l ~i7Yj$o)&=r DBmquSHJC$L*->u9>LZhDnFy(AVxK_+SOYQV8A?;>U%qDr+poo`zRK(a_tS!95AiXJdm34+8aU *nU-7eH1C@K1OX^3R8S?d0(1XawibGWFQBoo1}TlW2EvV)fw_AN5!p!WumFozWN$bIwn!>R%UHX$U%6 SvE|>OmoP^4`8m|>O0nxiRy}kim%iSodvk1)t$8rNXvsJH=dlwZu@t&ZqQun?4DY}Cze+#`eK%HXk8D fR23xo1Z*hdPMfA&4lj`Dr>R)Vd7t};JFNPhj;`!GYMmyb=bTO9{w4ABn(cqDc?29OhZN$5?%1z`nI> `fI6wl~R9LGeTwXD@;D;Ffom*`ZaHmiG<4`CvLj;O1c-N69w{Hd}mzAej;qILFEpX*bJTOrd@#$tXz* ak70D*@3Ba$j4hkM|}8JVqVgnbSRMvy;=x>OXVb`*GTLz)(Qhmk>vWry9k}Y@8250@1dsJ>b*CC0S6+ vHZAj9re%44Ku7$N2hz)ho&z>~KYyKV#y*m@Pr9{VQPrm7aHQnO8+X!#F ~6J8k6i88Wn2aYHaK_dX3Me}PUm+Ic)+xSlrw_GFY=@*iAMUnVHaGAYsotyaKBX#?Z4^cx*piy?xHrZ RLzfunc%N$S-ep+4upu;sqkf9Uxv kcQ*!mTc1I{~IK#eR5{ysK=Obj_rnAh#;TUcUjdxp%q(QXB{k@rzhA8!j5Z0EJT=C>w5lS`@zgB$X0i CyAL6`Ok^Q7#?1z 5jYaX2NlD!Nv4RphrgASRr{h5hvC{;SIrCu%o!%(5w^SZn-cn &boaoM=`e_HmBsg$~MbbHzhdGzdE2$lxkjl}CY#V+Mq)zZ~m$PBx_GbgfXyVmD*AV^EO$1EeS|a(`s+ ME31THc#_;d9%m<)cd9tMM;5ee8l3QN#d<_1OlvMr7hT$o6NPzku2O`|Txi-Mh0>!zGuK`Cj0s MOm(tT$*q1D+**B4RW6On_GKl;#CZCCJj-te3#cBu|>j?X!!;?IhhOeCz{mIhZ=SegFR5&9BlGK8Cx9 K?2@{ZhpS)D+FgTKpRDQe&?O+n_ae+=LJ+d``I5&N)Lmt}@J5657{%Rg;fgM!rq^0x YW&$mpPtrihf7#WaPb3M`lQ?NRJwG-w+dAR-R-Ar(xdrAOOr3l6Dk#4>k8AIQglUpA$qjdnzPPA^5#} d8^$Zo>R%(Zbcw1KQEsIt3iy*bbF-^sF{+H^v9kL_h{?Hfx69BMj=DS~%iQt#XMQVo=*71sY(+KP!Hb 38{Y$1vGPA1u-?<7f|h~&~u)A`!!*r}sbI_F*gwnOBB!eOA0_+R7w-t!)}FtoQomjQw nARCk?0SXk?2L+&iTV-JLkL99=<~D;5){W_l&RAZvc|0`xakYksV0lEmiNke7y+Wz;8`pz|N)kfBFh~ f8qd(pI2kBolq;yuTG_@S+>8r*tNfF2XDRthi?A!>ecwmaJYg<*#VKuhwhn{qbwR#(ySHF4!W6Sb#0O&K7lwdXq>vmqpV;-kL`RJj8aY mM~gZl(2mfhxyfvKC0sP0DDO=H^a~Q?I$kWa)XXsjg0(bY*gN^5lv<#x(L-y-ADATFI4arha5jMB}`^9oTHmLx_W#u-SL>*(y{o= u-0Fr+5pDO=3M$!%iJ89!%kMdI7Hq8rnX-;&(7HaJ%K;(=E#%V@B#>Rw~lV_@SJt-W&Nk6zrr43uCKqo K&8D%C62~YSptwaU_8sa?3mQDe0j9M1~zYR_e&5Ma+J%NpL@;v_AND==b_Y?nZ}C^ghTs5OtBJ=B{m~ g#lFD&123_zC@8a{LS=0J6R;3`kKwa6JJsE6q~lj0ITL7STFx|>TVIgYhhL@n#RQZ`kxwNr=ejrH0&a21 +T23*6UHFHJM4Pc$ZrNiMgtJgT>f2jrO{;R|2VyZqQeiI r-ay#0paKBl^7GzMhmkaM?l;H*jZJK!NB>V(45;3cOz#*SDBC}Omja{Oi}8Ai?f<+kAmCVQ@$&*&^k1 9s<`ckcUlM@+uiYN>;%uZw@*o6O>d`4_m0f}0Z>Z=1QY-O00;nP0YzLMQ$>nT0ssL20{{Ra0001RX>c !Jc4cm4Z*nhiYiD0_Wpi(Ja${w4FHA{8MNU&iT~SMqn=lZ*`&W!|Y9+M2_vQp=u}Uy9&ZapMFu@hU5j KtX-*<*&UzL#1JigbswA00f;QRdE4A3v~#-aW(Qm>znyv$5=)c=ie2cw>RrNruzLN-RZ9RY+fo5+bxVhN-Il^Q^ oLoa32`)9m+>(d4@!&4*p@48UxpN-_IiCY2AfE|beCs;;+a=a@J`FDP3AB!=Pjkd(pk`x7LSc>{eqzB 612H)Cy=47xx9pJ0l@1yoCt7rGy}x`-;sWdDX+%l8U|NqSTNMA;CQ^siJ3kEmM$sBSwvG~opNttC)hG YgE?Jg%F#3pA?-u9*t{<=Z7=^w@?80xx_)t}-_Bp)I^yu;gH{j}))AM*+IGXa&_ngiDYWCf*GFE SM=tayd>DuIJEnc5q`4b2O41hoZT9O0KN(geisQj4krrJ3B7xfIxw#U|gUvUr9y;tFLTmpf^Y)F>dq2 bB~Rk?n-uWLWaG%%wRdY%5JcoLi-VL&>#~n|;nTlzUyON}zm-w1q6T8dbzj6y^z4u?OM>3#c-l=Oo4W 9^Gs52OCu$wS3MDWGYVuHrE23@pUflQW$EJbGb_(70mA3kl*1ac7}Z! M2TzOM*&Q^i|03+rB03`qb0B~t=FJE?LZe(wAFK}yTUvg!0Z*_8GWpgiIUukY>bYEXCaCz*#?RFbSk| _9}Pf-nyF8~QFO18Vl%^un#OSGG}ZHY&c?e@?dpa>MnY64Yo6+jBD(WC9zN7`4|_{z-4tSpeU-7|g9E {-h%Rhf}rk&%({xtqLw_2Sh*@@zIszRt_ME~d$9v&@sMEUQ(vDyp(cR#j4z#j42W#ozN;GOgzGd`hp< o!#WCs!q!4Ho49Fv!p2&%lRf*H+h2JifOS*o|T*Z@5*Z^Qzo}p#q=tvMc(Ydyk2EDIYKCEsJXg=e`+Y#~szhW^J<%cGP%rG<5{-K2E)l@XOXY2su>Lz#v_&2T*9j3!lc P}4MNK5JYiJeaUVe8g9)HMK%N)pshOi@GTI5>K`R+HIida@EH}&IV8W9F3owCU!gOWO4aD)Ciy8(p9$ &0i>pCBg6Nck$n;m%u^9@EFlp{p4@v!EIKTFeE#l4XnTUez7irDphm)a(R8ZUKMk@3QL|G`x=%E7JXrUE86ag6b<65`JFGaVh $9gh7Dk!)phAsHD7oGSmp0lw{^C(>t8lV4$aSUh1AKmRyD;t{lM;*)`K)VpSB+^vMG@6yxuSd$@mQl; Wp>5(0NlCpX|V)GtHK`xsW0NqQh=J-yjuC8rYxb)jODThFLWR+?p^rcnEV01ge22WBh7fGZ8lZZGdWw k_IMswX?ITHwT0b0i?w>m8x?j%p=&D^P;@op^`tmK7M;Ne)HYQ$*b3Ilf&d~z0P;?chh{iN{*>E?NA1 bn?1R$VZRuvH%gXubq+WQXLSiQG5Px0Q55c1Kz4JXKFea60wIB^E3>{yyCl`Fu 8p9wVj42eZ0bj;GaPk(aVn|5g>{7*E}zToVn$UErF!$;(+)r^d9wvI$=LTAo |rkAkiEIAn4gW>I!WQYRl6|ec7pi5f1%e3y!CN@c9@X6D0o;9RnV*Qg}8dLVJaWJcIjkv&x$jz|v9jW >woSuWI|kRc6XOhE>l?IwA~^H~IWx2X_;cpI#j#uk!`aID2&Bh=qVLARZoc0(R=y9+${izR6cBEOzqa +dsd0`NOlsIoRL 71cqUKo&tjI!%>{=!{qN5O|#CM{ih#){OKn!s4?v{Cf|eJ_$?f7;}<|3>*9QkF#Xrwo8BlnuVAYk_Vi -_uuC<7yD2j0>CX6N4yXPMrX66>iE|3YNA?IgjXmqRTD>#)?2M0rcYq@(uMs$Q%N$6jr@hw>$9rd^B< yHdduwIxjX$Ol9HC{7y*RnPgz^GJb=-%tGd?;&0A9Heq=E$%z7^KVuX6la&B`O+-^_3F* -;6!_5{ez3aSAofwb{CFqh|elUBXpLt_(?2Auo!%fWTyi868xF#IPbgGnf-y9s7wLLq2`U>@{x>xRSsP$SXUm@}} &s_J>mL<`V-iU$+(8@_PaO}$vu!xiqykscBdm-PJY?hd4XAy%7|!>fKK<;EPj;qrWP!#$$btDXxv%tiXgkQTf8Y~lAeSNeDSgE28r>K0{tSDgWDx-g97^ 6ZynQmu1Hhg|p18Ou@|y1LL{2ui@9Az!7Yw+>Ler^jV`qn$aKkddFxz}Y`n~WIFfDjbfYMM0B`ed_sl n_ssQUf`6v1U2&vFQTHx_pSt{4wsno-U1R&oi>7wPsG2Ivgt IiO{1A^!1Yv?!9bJd{~Sm6bfVJH^T={5H7^0Ys0@S@O99w#?v gG+ck)cvKhwx5mbC;dGLdfM6f?Y$*f?S4|{8tI&#;_I`s0o29L0)+1V(#Wtou(W1ZNjZ1`+hn;J3~k} Y6u!0ocm0jm>K~$rjnWVzFM(h6U~x>8sg#d{LVLq35d-{+nVu4!TIk;1 I8KY`S5l12zQ0GjgA5ef5TASGVSXHi8!9haUl}`zTQyxv<1ga1(STNxsC>oIn9FLisBZswql=k m{J>6mUP?Amsx1D8a@45iCo&{C?#m5qngxOC*SoP$*gfZ###Y>js5}P~OP@s0slCW`{(@G!HZ&pp9jI 3&b#NXM}Am*3F9LfnJ}c>l&`gD_sYt^VJ(!isK7jKDcqt3c86@Q>fF>zC-q}LPBj`jplCT}um;(5TGcZsJl~|=F@dm<5&&Y*RYsu)y+>{nhF%HL3v=>o4;11!tM;G( y{g~HPV@tTB+C;_y6Jv>Z$v#h=?%ATVqR`g&#(w#mv`EKu{2L9_OA0>l++E4MqJ{Z$0I$;LG(}R!ChN EPWUe?umIrwBaw9rHv@jX&?C5$kiUFs?=s^0-PW;KDp4&k020~!H)dzhSxOykR}DW*;e4HKLUtSgy1VnD^PKn}YHUo6>GJ$|kuBQ~Q7~(sqCiuF Xl&19kYmQT*kibsv>xLv0MFgl3l!hBVu2T*Z};22lU2`$J|f8%}Stdb{sDvsG_dF=8?OYx_P#u3fI7#;LvU|HH 9oZugVJ`qN`ZDFRRs8D10#QL>qU6lW03&XH-MqO@1)K6e{JhzitkJ0U?2o&_CXVjH@Ig18QsLl6h7wX EQzUxLLc{z@?8h4%366kUmr`D%bdV!N3O4srkYBhSeC4m(xR|b2({(Ai4_|01b@5|$t&tCuNJ$m! %yVuW;yhkK3eD&R1@8OH1?~lHDb)ui`COvy2Pe?d?0s9_KM1MnxhOf>qvD@@$e_mDB>m{lWrKiV6u5% L5+}7pay!Z-c(^N9gP*52@JG#7VJz6YRn-E@(4_hSvC0t~~k^nJ$^nwXY_!zFV;Uk^~Aodp|0%$$9^m Ba0H~&@%xd!7^%2CXBK>A!&!)NJTVy?+u+Z%;!LONeKiEX&wUsyfp{y8*qo7J;`W30-#Ib-2aU1Wvbt Iv!a;zdB)&+HvLAanyu2pu>6?7Sgzm7HfyPW;;}Um~MbPB+97aQ%dY#SPt-u_oWxfY+|^x{%K=)XmCV mf$H|E2t;qF?_=b1-|1kvgkEcO7ZsKL;?W;9t7PFqyo=SlZ_I>&0Zm5R;y>lol7tp<~@;nMM_D+-QZr ~gml_A!&Y;!JvxDV(1S{_)On=D3;1P>%Dg#WvU~4o@OUPFKu*&&fuccv32;An3Sb8F@35nmIb8hhDj* bI0lXgTKE_uBr~LHESr<5H&p}he*#hk8*^a7?+hQw5n2AX7B*|8TM~}$(0$AXogM-sg3N1J@Lz_Tqs_ui0y%TtagRY)( _)|Fi~@?-*@f*gPyj~5a8f(_GlkB)o b5DhJe`i@xiw}46#Q}vRN%p2c^62*LBZ6 j26s*u0-VgiIA0=|3_n{4cd$Ksjp=>{Kr75@X^&O=fCp}{7X`M1)iivYiF7gb`I(kMPbXnZwC7Ix{6y 36W;|o%|07EV^T;#4!m0qhuMPuaWCqItAefGa!y+-lL`w!{+4}Ci;p()mI$8hCP_>&#QlEd$hcN9Mkz n|`S%s4!GvZFb1c(C_WAjR)=Va?tH)$QW1-V P`r;it5p+6LgG6KrI|*y|@5T_!N~2Ao0XOoh26{z`7os$+Zm}NizF-vXYcpU3>CSEdjSHc)It69gteq 34!vwdh@Z_?M?9Ax9;h8#%%~S(5EE+n5;ohq|IP$vIqBu$#mEsLdR~@Rh21tSRyCEJ22*?wgN*@nN+{ !WT%Lv cmEBESN6Xt&g-n+>_4yS{7qip6mY4PcfyCIRHv^`SFzJeSrR&+0z?0Rr8^c{_VHVo;rhHkMC+@IE5D@ e7T*cT=){;)rZ}sEi>skm1A5RuA+^m)`q)Rkg9oJDhMrVa@H7N!(tWFV<5kP*>D552DSe gQ`~FFFo7X4L`v*yXxtt;=K~Ki8RA?~XT$wi?P~l~uj1mJ*DcwSy$6X3Hkt!l$n5TQ9JD+;IWWxu{U; p~oy^oq6YLZ&`3pg{7t^f@fjXPS-;c+^inw8u)e57!z%~tGEpN 5w{O7kgr`1XDXysgZj1Sx$W{PrbyZjE%d14ZC`1Pl2uHm-9r~}f3NW;5k*Oa1GgWQR>!B-9GWe+yIuQELTjmf|l;XPQOha1>Xd4sFrlF;E{tPl`eSIKz}5Ay&H@Q3Rqu{p_;^bcwB4EA_XFS}T gFBTqBq+&)w5P(4^EaGVMTbXKhmCBs7NKe-bCNGCcWY@N)Ojj1P;reYZVdkhk(on4h*`4%?H7AH9?GbJ %s4aL$t~g4Y{;qw>pax{)=F9hKr~;ecf9in4Lc$|Cz)aMf+aKL!#(??U F?%#RJzpatngHpM8TlBw`>uHlS|~&kSicxUVjZndMK29PR~Qkx=)WHR1OJrNP(Sd*e8F+g6FbI&~|gD -B9GJt+~$u{y0c{+j_Q-^d5Cx+heet3H%**_DJPG>#!A8cuTj2Ri3C;tk}tRN?*6hn3afC{F*+aI}^$ =+&a$q>ZbKjWDP)thn+y;mwdDgnz0P2%z(eUMgKo;0!`)7uPYC_jB5;isyvB@DJ|=+rzq^WCn%vl(=k M%HX!tHvYY}}2j8%@Gcz7M!CGU|&1lI5IbY&>iRa}JISAx4HpNwgAyy^uo^aDBgTV*Fn1yyr2HTud#w ek!Csx1K0GP44?O74x&jf2s5^aZ7T_h8N$+9%MfK76*!^=Ok_teDzp;$8AvR8@uMF15U8&_}93Hw_J9aKC8@QW(v(^PoPe&bV KiBq7Zqyqm7&(Z;hu(f6Q>oxqg1yGq+A}{XfdbANXsfspbys`uBB!K!6jj^^hOLD#Hg0A1^^Q^q4Z{k RrP?PT5|0d67bX!M52cRZ%@}amYR%{f5dY#2D}NGex)gPx@D-{6`{-RhMOQsHQ4G@b56$`KMLu(I2`swJ)f-m*$uBs_gGe}jV8{2YnBDaR7o 7z4X9M+=iM+4<>ANPps2q67+_NYJ6mDoBZ31EAYdNkFnGJ@*h7?^a=Y-26~Pj*RkOtVvBg6G^4?AkW3 xGXb&a?;a3h1k1hk>nlpu+zTX)ZIkXHY|IqS{&L7ySM>gFV@=M5OXe+!Wvc2#;a;P&EQ1G&`w=&rlOE+ xC2^pVa6juSzkC|ULM+2aCMOyF-r{yVTS6}W^Gf_3 QHM$O-72^E{yYblik0D*@vkKLoXZH#f$K#!%ZQ1XrYqEf0UhD_mA!pZXdAOh&2D9emy+se0LLW3ll9i w=w10BA^x@vMFO%Ejxh=((^!O#qswkWh`k~fx>~P{=BqK*&zdr+TIZXDl$gf#8Er(!;x+LKT 5LQ$)25|AA@M#m9*7`n}~|8Nq3BF4g!H69$z> $d?cWkGqyjOm&0?8sYkEvJY}VaiyLDg7G#Q%4KqSN^t74>R#9g3|0MwcqU=g4C~`g^Zks{>oLd%+%_J%qY-Jy2dBK&+lQFIz~f$5YL)94r&lRHTF +yi9?IE@dnw>bQHO|UI+0ft4EszTX)i)Q6(%;dHtF=VFx2}TkAlGaTefsm6u#{m#u8Oe-$L>aVLOcG# qRJ)APE5!6`hUX!iaq@-H*$l<|C>%uCCu5oL~PJ5oA}LxVch{NX{Zta#`*kaYr(;xAi cxJ86&t_y-3p+wckif<~4E!Ltm#y+ay*+t8#iGnl{uzChdbD_n!Ef?rOHF!EqFUAth#+9RCLGjbR@uT dYDJWj_7=ENnVpTmA+E2w;9yMq+oa&izU5D+`c;`Cpu(5O3u}TSjK*qEaJ}O^O#Orczwr1}ddve6E+- )no(GtQkb{g(Lewf(U?{`AhPdz0rSk;c`)XQGJj7W9r^BZxzVLP8M(R<2F0c d0j7P3~J+LWbcS@~Tx-;(q2kt&K%zLaVV;?8sTWN$4V0uszHprcY)Ti20*~AXb7GN1Y(2@c)^2vk9cT 99zSEt*IjI4 s|(=b(cL(7TN5!1DC7}5I@3dnMTHbN1tvACC+*4WL=C#dEkhLgT7=coso$O0bXvQ9ikkXocJjp&x^q> RRmOS^Q#Rcn2YgGbTNZuXhpc@Z2&sJ_{F#qe?XaQdrLB-kiWy040O{i0Y&bO+ AvsSONhAjVOK;f^6~asUTc1B>)uS`uuNa7sSa=dmR&em@+4OUteEf{RZQ@>;}Ho%OH3nYG8yjBb8NI6 m|-;G)N-*H1%%Xu_BQCZwT&e|4H_~XNi{nyd~vEsYMav2Y|Gue-H{FuAGcwA+zo`iOKES6%luYL)|_b #;jZXvP=eP%oV6%WX*1L<`Ak#mn*%KbG*;=FSaWdPgCq#Ed+M9^owaEA*u-~$m5tGJY9D=8p_?lVJkK idG)>Q9M~Blq1r4*M(Er$6wa&Lk|Nrd$irMR&vaSmM==t)wWjkB{wDa>{ccI$<>nZ~H_~~*0q @^L&>4;S8MqH&D8u3=pKpdNr<&;5)|LR?b7c{^+e4mAUz1=I7HcLWZwxJdswi)&Yr}_;wU`z_lIhQs van!b;K@*hrNr*-U_ZKZf5H*Vtl5YzlZnOzoc!7?o(KRHi~F6=XKJKno^!;4DKy{&8MiECs%K2Nij`Rpwe5Lb08OfMs{% 322QfhPk|D<@fd>_|mA*9ark2P2rS%*@Y+Y_o6B{b&)s%0G30d@aC36rp^*&@D;D#(>2Oarc u(L}r*TKAJA1FxYZuZrxRTf(}(I0?s!M@Q@Z_pq~v-4-WR8o&}&P@_s=ZJTd}`*a*1Sp;Tm- WC>(}tvK}aoMg+&C>>Ty(Hl$b@PAdhKI`q=H3GJnb&(IUqXF#&KkKy6%NG8<&4G~zA;?xoZIqd4XN3VeCo0ntBnH3{jl%Y#3MVt4r$Om6k{{wAML;xWe}D)G!JHNZ#(9|}f26$(RU7anr?`kX~bG$ODHpd=$)`A!Ht-c#MY=}2^@Z#1r=&yqVwW^Y4TkmEYFOX_l(0+AA6SSzWz0tch?yst4!?78AI K@5m(!9u8sFSGxu>N+J$7rbkvp;ZL!r+9uLxG=q0X{v@Ta^24F%nrVE$8b?K!z?^3BMkPQV>@Feeznb e-m+~3BMH4NO2Ayl6Ay{7UC4?DZ*SJ^Run8wSV}e{MK^G|F2Bbg9VTem>5qIcK>PlC!L6gOB(MtRkrx OrH5KIy=6+d*jdCHa6UJTC0+bm#yk@@wMw>l^e)55Mx5;B;Glg8vM@#xn;Y$lgK&K9MYZ77SuX9*ihA xHDKvG#A%YyC0DU|!&YP&QGk(x^M|TG*j{JUypy4GP*c%y5z|f;BdjB~|X2^2^_Ho|~eCS(-==r>#99 3kGVyo(;I;iK4$PcpGW;K-COTS5a+^X|M>SF4qI@htAt!r6O(PviFCbQr)-sAT NG10x6y6m5~yoR-baAC>s1Ae80tM?Cd32*)#r}6gIV;fPg#{tKv+hLyF}z_D0akbrwne9XBc*LUsxjn6zP!!@_b|CRdeG;3FC|e%<4(iNpdmIE^WR ^%HT-+_-!sL>14nwjPSeSI2Z&rspd16m`TF33L3GoEv0U1R$l%pT7N4h7f`cQ?*UA;&g)&hrmu?GkLyImHYKK(K0F%^Kuzzp^QzCCb;mUcan9NZfyN-nvN_J?c5^ 5E-C!!(+iyIhs+_^0yfm-S-!MZekO6*qlI#JQR%@BM?JZ3qWl8~Q+!XC-4i(RMWST*OmUla1XNO$5s8 oLmL`ih8Ev{3}b1;Vlf)}~Gbziwr;xE6PnHP^B3mDzlGm7V7+5(WaccEL^?2|Dc!pQip``@!jpgS|Q5 UQ<{F6EoUCfSqF~U6&or{crVH_VJ-&e%$z4_k4zH+kUKTIa+&_&8k~G5v>r@WXSOD$tYK3J!Q47oo8g J0C=p-0MA?Zj*nY1&s1x2!Evgryp02*dg~atAu7vVH=0uoBVtF$*F!ebA-`uUv>Oc1c3Q<-Zh{UD?QM 4YbVE~KW}zT$*oH1Hg+bhNB>6Y-R$(Wg29CFH%P`%7wdhUbq77k>;;LQjNW44z_y@gY$3*gwB42_wPy-F3Y iZXMQeuP-BY2pQXtUn1XCW#+^kJ-LBML7VeZwg){bNIDZU^TZtI{H+#*HabcBBwdd)!OVZIVSl@@++2 hI8NO^~iYjW~<=jbM6hky#smfiBM{GAFBusmr8b_gJsn;#W^soC3R ^+@e_pDcuCZ31ojh<_494MjIy0fwKrvs&YGAa(`UUFNmiN9HIY2bi2;y`At@albO|8@jjie$!66!F_K 3lF-XQX*0os3{=CylU3z|K%>0>L#+`Ycx+pj&4B2O3TfG0;h$>u~MMr0B>&q4_1Ad?qg$H5`ww5_VH6 gsv)skOWXzCErjA2LgbU4I0)uS<&Q=~apn?i~Jf)+!WWOCLO>Q=55)LaipLf~`+iQlgiM7VbF ~@dqid<16^feD!R=9S4w!sWNaYENLhOL*CG+oYk)H!jgSx2b%9b{)4I&pD4yUC!9gTfb`9w;e|_fqVc ITv%JjHs#SwR?sd#hPQd%KWZ3O5Xa`g=a1b75)7-TSiRND$itzPRM +bkw1D7CVHbtVcN=NZdD;@(IIr**^y5IKcYZZ{yh#nBy6&X8m8+ 6iMWQFodlgylCfu;=5RK(agQKWv2v3BF7w89T61G&M}B>o({?{ntR1FreO=Mc$*kVa}~k5$7BhC|GsC JTo;XObB!7PF;n5_=WtL&Ev22dc*|Xra17S|oatW8{32A~a>TY_6(^6%w8!&{Hf)hJW$cLH=Q>eqlYz V7fJ+kQUu@Xx_kcsw+{us<>HQVMJW7n#s)+bDVl(hTLUp8jjqd;Ime23Tq!ZQA3`%coELu$u5IKH@}V &ss^^XO1wzEf-EbIOGo|EEHl(1M>B;J@sPJxfx`F(d@S9-h5xi6{tYk=gtt8{hh?o@MgWqd`DVd)xuB Vl#5Rizj)WFo#^L1Q!FXT*mM6~}vZzyc))RsOn=idgVe0yyq<`p7CPQa&x1}$Bf=>MWSgpyVQzf`Z8H $?o0nn#?^um?S4>?o_8~Gwp+f-`{4hYp1r`B2~kKhz}6slB^4EznJ7hpB58TJHyCas0db^x7_!P{}DJ >nl{be+Rqv?FDyTo5hv-~!ypq3l!tC5rO~Y7;2#1KuD@*By}~j0ES|1&JRZr+?(=fR)7US3B_wUnk>1 Ahe}RrHA`;z%0FqQ^Z-Bs<}`Vw-|UQY?@LZiVB0m)pDG1i*|R#d01}7yxgs`Nzb~77QOevT|*I*SNp! j4i7c(?$gQj4JRv_34}q*&ykNxUPi)2b(7x{2VPTQv-DOGq$a%+v7NVGDoqBQzaT0FGQH=~792V#xc2 FNOEZLOR7BOHjV^Z|LH}eY4mt(56q9Jg0}IT-mb3`PZm)fRYvJ4%s71pZw_>tq;&Q_j;F!@A0T8U(0_@2x|&9c$=VZHKC>2Bv%jDUyT+AIEJ0{URhzhK3F?JuU|6NHMD+%sP g)?86YQri*2t^3LE`*uB2fLpWxg*>X+vZ@P}_a`qqx%0TqL#izA1W5_?#Fn^^VYG;Tt&)VyMc4+@F7t ;I3XY-g*GJN+m92~tz7zSi`)u1Putra7eMvP)8b{yKTT4NC#4p2j2-y{;VxWw|!x@cR6>3D`5-7Gb64 Dl*NCbo|Kh?xhFCm>t^4fMd5&uIHyI~JToQ!`OGEXVB)B^?s)lEu5PIBp8|K@cU$Utpf1OkE-lr%E2` n0(F}Y(v_GUbbj~BEjp3yRu!3o?SQt#OrZb#}41g5eNEY;aG#o2P=2YMocibVbxCxx58ePERu4%YKJD FL+1ATNlRZYw)CxByq+!feM0N{0X@78*E(B#>{H$Ft~-(7aM5VKWa4d}g<1;hAkgZqDb=!e?*c7~_9~ fGw`A|LFY6IyQR3^?buvonZklS)vxBxi^zeJ&iS`?I&uQztcmraN)8()4pG5zS^VivZjzzl$THQ^#h)q~2pW1VnMjJ)W%lP@yWU>_kO$!X?X6jpAl8M0;I-j%U;vDWlc#ND=x0UxS-o3;u ljWYLg^F;Cs2JA?l<@r*>+sdZW Wyv_srLSaKX%$9YR!(evyLPdr@!`8t-$42|ezz@f!!$?hfNEmC|$OULAT8aJ?0)`d`dlCR^HY--bUIo iWK`x`hGCvz1HQkxI4nJ1BK}FU1K953*_u5RUWdKVVbZfTsSxiNY@n2+Sz3%xp(zZcZD-GZCjJQO&zk gICD(m^eG^sqGVN{r)m-1JvBn470JvK88fg)DG@wG&!>WEe6$jaajnYged?$CD<_=WlUV|Fh3r7P;x@^$c+2L8kYjK5qqd%i*kD96O5fEelWs4A5E(fciwfz=xT?n<7Y>;D+6Sg)b7Bkw@RyGMj*N3|cwW!#``83Eo Zam=M1yo)nc+#`hJn7bhS3H5Uo@IO!ObveT;ewTRPz}eGE>o6!Z*%YJ3LhZc-+x zBj@^OATo`V3zs!LW2&GH`d5o33a>Hr!EFtfm|2do4}5&kbBiBlkEJEkcjA*TFS$#;&x6lx1zZ}(pjy =%NzN01^#IAOQY>0*Yk@~{lDwC>`_S%3SXc2@C_^{?s|m+FX+w519sobd>#JY5yWhA{PKfe9*tC!=WufHBYfA;*(M;!O cH#P;Eol1`ISb}PDB`{bEF+hrBa2JMHW6_*Ac@~ym4f!!J|hQz8Uk)4ZUiq;gW+;I{3=N@d%fUWqfuM $_WBEl0a8Hc-9zPKpf?E}qgHL>)2DT?UnMnfNX=tn+)}j6_!E)?s)FY1d77Ih|LW_zZT@fMrvt1rk 5t(4f$j|9i1SpuZbxu_XGPPAr1T9V5G;=10>Z)l0^xBTr+=tn U^T|GI^2tps8dxV?vH{y-eWdpVwQ=pr@-}a+DYltE{FImm!!$tbYRnGtkieJ(fI9`g=ej`lI9#^?XYr %JKOIjo8PW^KoqV#Xz;(QZgO6ySj!I4v>#@buO~xXCb0X64lK W5tR;lWE9gdA>_9HP(R`(`p4o~#w(|>(3nl32BhW?_=t`s>KBO%Fb1*fvBTSD4f`H2aUa%?%z3M2j&? pvHaJFO?ls)88L#ntSz+u!6opi3{3c+(=@kZ3D2#0@sf@EVOhS!*8PMGgissYghfLBYuNx(JK_zo?T~ @cQ---setfb%MD*9EP?0)jEzo)*E_vI{Kp@TuE-5DUbN$}GzSACi`B!GnVlWFjsWpCpcNK;bTjn(-mJ|;?+1hi8xr%*dZ8(r0SMzw5yZT=6YW8=`Lyz^d2LF-be)(AUJySP6qFZI~=C5%Fkg{@uWak7Q`|^(nv {*w-~dP+e4GBaN8%6RxSb|WC){7;4t-T4kN6ZS3q!~N%6}7R%L{?gY^&mSY4Rl_*qHxOJS}ME19tZ9_ m&7CEj9B=twY=7ryc78L-%5oV|(oBdGQy3h%@;7@Eoy4M!G9zRjk|6|hA)N>xn?T+3R_sxtqRY!hqLj 8FS+({a9-am{UYp>^+ypxw Z`j2B<*T>c0+Q*{mQm_I6W7G>iDGW!WLMg~#7?ZqcV)aK2Kc6`vwAc1ct8Xr1}$c-y>y3`XLK>ap_6> sN4MvV+<-_E$djTKuEBZQbOa#@$Tnb1@va}z;%~ESlTg|UU}2Z~7CZP6iZ>V-nrCLk(!F8wU&)i|_rL %B5J=mT>R;jGL4bNN?|WD`pW1cVK}oxh#o;=lcO+x?OQQz3#kSRm5Ghue4g`V{%jh1g 4|IA*j)Eivk$8qw6EAB~Bn6>m%PV7<&`C*?9i&WRxD^F(+s{HTVH98X9SEj5cchWD?T5$s|hgModicX SG)0!&?N!#L7Ukcw`k=gTrG->*i`o`fR4shHtR&4F51}Z+X>1u| W|U@!OeV*sl@p;bGA c={%SeHDJzL1Ynz5!m)fjGtVb%1qKxiM8PGl&J|`1?S@aBD0)Bloq;?OC_&?5N=GJ6~hk7~19u@-U=zmU}f9ji2t^Z){^5 OibQ0B5MH%0t;3Fy{{`m^A|~LZ?}jfzy$78!RFRVonq$SrV8IKQljYjW@sb0YGt1LsG4@Lz3# {`+_jRNR{CMb`a^7gjE#wu6O|j#3N~=qSMd8onGljHkn%88%0S!C*-3}GTAvpyIxWQcmXXW^HS}y$NO wdq(4(zhb2KB&vr5t2N;pB`M!TOPeWG1n^Wi9RftiT|EhyaI>qlp!&Qmx+2mRCke75%=+1}ru?ENu4d )yyk1(x7?gEW3J@;4YN{k{KqjUhX~^niFGtX&sif{>~0SIT<7RXtFt0*%}5_kNe;lM!#aHOsNll0?H*5~VTwSL-{N&2_%^~-dY-#mHTWawx3cOdGv@aGR~W$#|_9}0JG90U7nV1D{>`uK ~;WWe)aDjqlqSNVKSDQV}kyZf9{=~PO8?roF%;w1ZNA133IqmxfReKP*)**D*O`Rw^$Qg++4h(?7`)P &`gX%8aQAwNCs;jiAA!gcZ(5D=$uMIB&?VItvZe5*kL)qB$G06>pPfP!%tdu|%uj|tnG{E~tYVy)qaU dpPpUfLUKvUbsXkEK8GT)roGA9`k|d4S~a{RnnZG6};`NJX<2@{?lfZ`<~!y^czIs#ZrOpSsljpVC&H RMoLlwAb@!IdK6jjQ_<)mc(?q=V^7{vufODHCHBiO~g@$JeJ${aSfSR+Td W+IEUtbKA-VcO<#UsvMI&#Xj`+Sc_Wrk7k={4raHv_azh#k `3V<8MZgatSo8jyzM_fJ0axH5+FC)2VHooh&iG-yLKxSVT#=e-l%1O?LF^v>lsn{t)Cvr#@30m)M8O(1-J PC3ti)5-pFg9jJ1-$zl}dcJM_qy;ZEvjnk9zYUjEO?wy_jLr1QHy$-DR*fGQM9}@`nrh$&-&M<~4N9na*B bI-7^UX4bst0Lt&>Mvz~!;#Po6NqCw?f)F}3LZ1$)Y>r=ryFvM&|d$ZL;F+deO7 f{3zd;Exxtp_ve5-aD7d8&;>A_MW$=e4FQhybPQxBC1G`l_QRJ*1zkfl#FfzCB6H97Ss`fI**DGvH&^ tBbwQ`YkJz@5%z-zo1f%A9yznl~2bUhL>I9N!BMKK+lX66$VK7i;GQAe^poO^LgG}RTXFVqf~Cdhf&s 0lmT1EaO;h++AMQlwGZ!rHOm@!`S>vDV<+B!5b^0sG*9n8^o^>RHCO(0(F~Dac66o3$mBFp9PM!7lj$ axIaNFL@F(16QNM=!?`~J?q5Ip8Q#ZVAFG{=k(BI@@kJHtifEGjt@7rhJfB3rIFP;Fu@ko3lf0>PjW9 uH@*1d2-V)9=*L+f&k;h>i*6ZMOJw5&gYrOPD&1U-Z+khbCBT0lGc{H@vVCyzC(C>8UGH5Cr*f|xf9( gj2;VBT>1?-|JN>JQY2O@Crp!3@jjIf9}+vx!?^@#Bm@TCam(!&+a&1E)LLVbb2DGFEr_`>Fn^M0N}Q 9dTIzDug&oohThlJ|sbc}pT+0TcUP{AD8dosCWauo*s;fgx)|$=6a8P_Uro@9r&D^T*RiCo 40or+xVLU+_g}oc0C?lWthXFayrvn6_&{=)m<{C>k5u~=Pu;6s(F&lq+bQ*N$ENZbuvNgA!0V3h&N&A sTfCf&!)qobhv!I=k081l9!>M&GJ!F0ru&!x#+@E0^<p^uUDEpmeV4|VXuM2L|07IGG$6h&(*rIL*O)n{{2Ar!G#XA^0oQ8Ei#pjAPnWAK_Nf( A32pNUiV+nLn_NKt!LI0wv_Rq6AUAH4G9=jKQ99#<}P4^!N$g`$*bCaSufe!a*oA }iY*x^EF;lF=mU$K>ohqV!0)y1lu?~+Z9`+HT1#2)BSR$N}K_SR@C-cV>5ZRKLRQTKoPDL!d$YdF_Pl RH>c6!B(?l1MTVnP*;N4im}gx%y`Qo=bk(DNLwL>1?F8&kz1j=Fth{FF frOplBJC0Nf5Ex~;olQgmudof5}7eyX8H@~=$VP3A@ii)c@}Jcx^X$Q@1w63uaApRv>c)oFyx``F=gb@!Cyv1_WneXl-DcmTD02%&5omK*7;aYG#`DS-08vI(= )ht_eAD}d9T>((@45Fi=?!gpg|Te3~A55BD~0#fbzrzicdp4ZH^H)Yew0ZP8TGQCGCPzVZarFEYIL3+ #fpOjwnz9ao#hr%OnmBPJC07y*Qf)?rCVLDb5Q=@x0NNtZ^b{0j>(E2?YIZS zQ;rF7(Ux*aJ4hu2z_z`Pm#J;f}Mj9%^LA8)vNg?YG>U>Qt4`V7JWz+gB_DZK(zdNM2ZfUpyj}4O Q-ZK`Ejg`(xh#AYjO>m>jOEb8EH&Qz&^Te6EXUR=buh!XId1u7)w%kj-wqBwEL24^;@sQakHg*hq0~p SM-U!}{Aes(fFop@wO^8$xM4|chIfhwnIGG%}M8T+fFv9D6r42Y?=@#hhjOoYo%gaXM;pU0f>Ph4~BC +CJ>JA^Ob(jd_3pd;`%7A2X3>t-kP3@h2i6k6zVGa;fsA9y|PC`rW8kd(?GMFNI-0itxg;OH6GAM&

t$+0O*L%k=zk1b=RI97X;;X^L7i~#Xur!DE)KGb;w7~yM-VAT~Nep f!^p|vI-v%*9hT6BnvSJrdULMb%!F>5VHFS-qD5j{_=KM<@&t;uv3YQa;O=>6NG@;DDHe*-cGMjB{VZ z|KAB|!V9(`AH%aOgSS(kY`?JU2seq6#eS1;AUqR2Ve{_C{IB?0%YK!kd#_gzau6iZB7JO+DkGB6 73A{Zj_c|as)hq7w5Aq(F9c8cz4dKisiRiSzO>^ adtpbE%m<57ZqBH>h~BPg}$LzVK2-R`1fL&m;%Z9x|o~X=n4lWIIxNMxWLgnktimxF2}D!S=7Tt{)i&C^wa_S&!&0OI)Yt8(!}BM~MumtxF;7qK;s`8jL>0$4;wYTRo_0F@wNglz-YU9 1>Ltls;WiQk_PQ8^kh9?ujU3w@?fp2l_{tP*cjA>9xD23G!w#c)jTcFVQcD5_T%=H6^reSS=mmnY&jl FlgyPasfkGIdXynYw?9hySgDBw8*Cs?4QAl*5+h)v2btddBG1JtCU|;=!n>Puy>ajdD_$pu9VzQ>DcS aVdfj&p%aXgy8E*ejURz8JQr>PC<$qB=CF?xWSJtYqznmeZ9L(=n80*g^ukP?+TtJw&Xn|!!TcC;8RrDvS}zGvAZF{7NX (LAPE3j+^=`5`hV3=m6w_<=IAXYvnza*Yh+GYm$3pN_Kd^VOwZ_V%^P&lOf nDbl=H0(J=m&a=GG<}`U3fe+UKWPfH0yIuKCo-@x|l4EvExmJ4a2x{94E*`P;%!@Bb$uBq&53W2wm5E $CQlDOqBNrW~o(Q3ljB&hq6KOVxc{iBAWa5LPIx8$CUC58T y<)ruB3mPnvtR2M(M9ftFA|(QhOu@==qPe#SRTjBP#0q2}beLYj%jeagf2&LUfkxKWDkQs(Z$z7FbHSup=|$F70!N_&YsT~&xV#B>0kwV27#Sq8 5Ec24QRI>l0iDnU9vvio#W%Dkw@)E{s){Z}^ZZ>hc>3|s&1GvX?%K$9iHy TO?~$LggXH-ipFGtVX))iX>wwEw{w~bZp)t@ac4`1bl1zxy|1N~`gtG=*%RH5*(@eG(I>irH5hMShR| _d>ciO8xGAQZxvya5)phA-EhCbX0$>a~OkKZ1R-+Xs+^6K^57@2(arh_#0d(c@9?Zlco{Jk#cMS0z`V d@-}ti)%`T+90%G_qx$e>Xk9M`yXirg{(2m;^j&LSASXz8q-!BF{(?$5Dlih=uKMZGz&S5{dQFeygeQ 9-Pe$#TG|>B8K_NUzXrg}O6kydroJ1AKX)y}<>{ u;-&I#+U4p)CFv>=`XegkzgA~u1^UE>Be0E)^o%4K(B-O-*V%wZYBIu+gN8(+KW^;&`2Crd^%29g{t!Pc@} i{H?Ei$`SRl(fs$)r}CZ*Q}^hDA1z6DD0BwR?=mMc8`{Kt+{U&WLTiU7~Yk^zB;^vrrKIgyQr4gsu(W ~V_a~*G=(D!dn>fQo*hxLoLje=L4aqCDX^Hs_=B~>FlD83@*ijRYw#u~C6`fc|1acujmYTtk{aWv _=XsrV3oOI7*d%>QWI%0=0;V={wduZS>r_3ogP^Ka|KggM!^Qn!T`K#pO2vaDDA2&gg)a#U0L*>Dc$? DY9u&PpQ2tqS9+4un;_zMCa_z)f#+(3mHBDUSkAV=yCcsJYJFAGeNF&pOEh)G2Ll5a%5{<3n5Eo*Gi4 wbbg|D+DW>KH5A*AZq`snDMFP~r}Zn0;>!d!pa(#n>)|y)BN5H!P)@06t%!P=GO0s~rtTUZ}N>)fbtb fua}678+wrDfFZMfBx_P%TqhG$|$#He{hn|s`uVb(+5AYD=R3_dY*zYkcaelZ@=36%$L5i<$g!*BClj CAbtl9{ewdu2o1yyY3Wg5dKRIAmL!oz;qp=k)a@XCyUC0ECZAVJiaLbqX!TOrq$*;_7NTfEfk)6D7I3 qTCaz;P_6nsx2HG%2dA*SuAfu#R2LqCZcD2MUqD^nh(AL%;o<2GAU_f=9u9n)QCMA{{wQ*=$bI5+^_K upx?@F|s&1d1X2eT>EG&-AmH*j@dZt&lHHKp81cg~cve)d!Jn8(U)c(`r&DM~h-ddq>0j9Renj^l)5m FYlJ;mP8Ma`JBap+&U$stxV!9BA(0jy-`enHShL0K=GcSUmXhjpuY|qp?l9MU)nM#uZ-vg21@JlxbTw col5uENg&aUSr@p1A`6tgO~;FN%xQ@?7%1lw=J|l1b7H9IF>>egq^XDH4M0jIldY(##&LH$uXkrSM&n Cs82C+2i}RsK>g=%Ln3{eWJ~R1J&HpZ0}C(UqG}vaEU(IM?M#f>E(`xX9lt#rB@s{utzJP%ZT=&{v?r 0e6E-g?{V>a9a*tUe`HF;gbBr_-uU|G>2mT<(Z`v6YaoYrj>m3`!O9mc9f+tM#P*QnBJILl{z}j+f{; O;?BI8(OQ{A3LkTx==wInjhsYiV1HOXY6X$}Slw%NE@zak+VNt$K*DhV4V6W_fWdpMQ=_85?yBX8&LG E_>YMphVI{Znru5rZP71UIM|Z+XbVY>Yh3K~Q|V{y&m?k-xkuHRDZ@u{AHjvq@m>6p~H**!*-Y ^H$`J;s&5z0{K~zTTE=sZa4cuX?=`m>P=1XxQ2QfkUaoWNjFKapBMAO1F@goilU0Xl6TVibaA(L#gBZCGYR6Oo>d3~Wz^Bvh({$b_rq(JXPP 3F(!jDK|k~d^%+xD{^H`afNCfXev60_11Wb>27#kGby0%?iKgs@L^{Q`Ig#Kzm;3t0>|^iCNp50gqc2 R%x=eRx0Y)TIY7EH4>5H}i7~@4<=T CaXJBYds2a@kZ0{OK>Fxf->b|QB-P55Tl%TDlqh%odQge#d$am~>0-}89GPW>c#%3%(TNTU^A0b$#if P**?tS1X=2v_TbS>*?!`YaqqGi{J7~+MGo|?eRMk-X-ZR@UBw-N9R?CaTvj_F_n227t@0d1=6~dV^$hU9{-W4puoO+T>RBNM|Dvr=QGy`-YSa|HtZ*nSxW)Gc^qH~Wm `T@k3)r-P;BRHv+JomXf8wBh289H=*|IC)F|%moA1>7pbsSGZ8 y~V&be91r{ime4E|&hlf;_%Pte%X`If^ohP>jfGM1>}ve5Xr6rpnV9wl&bfoxGsKU+j#dBy_N}`r@8o fR}uRsp1b`9DRTE&8w5~i{m$MN0#W|s+MTyM9#b{d0)2oBXd)j9)u^F3d&)qVkLWZC@=~p&jeiTj08$ ;v5cA<*S_=x@s#*SQlfY^L-^cB1D-~FZe>?K*^UkEYdUE&>(K-piY3}310iXjBS?9~9)ct0UF4VsFXw nEVImOol8zYUtD=)Gg{etbwByK)?kw!_1#@LJWfy6+tqx{7d?{;mL&mquLHo=c1^w{^Bor$|K_T@%%) N>Sw7k9qKyzR}j~7cLaqHU~f`2QJ!l^1c@~#8J_Dv!Z&mhH}$U?_f^|6goIu;RMAVz)p=Fj~60aDa9O d~^8uOxa%<6LO%UB)^!KBOrFuR~nh>XU!VYl&}LS4z3BG^4}w{jdaQv*P=x` NvX8PkH}$b;sTMKu=6a?f0;=xW8ZrdKi0<~Q}u9a&~?e(oBU~cX{XDe5=q#I!IW&7Vj$|AQu$(x;UmN Yh9G5^H91nDytu%ycBOz6dL>C3?JSOrklN<+#zysacRq5`1s*nVg*3jg<7JE|j*;F;o=oREYape-#Cp PMg)cGzXywlANL$K1&&R-sm=&J*R5!9M+rsTu854Jle~w9{ZPk!U?BI675vTQ}iAHdCNhJ&y#t_opg- *CIu(_y*mMOodcw0$p+qRvuUM>^OF5?`MLJal*JTC01Pk;ZEFL-zw?@=H`QMrs|VF$AHhHXZgz$iVIg {`N{O8=1YwFMye2|k6FND?W5M<~h(OPm*R_;}shWbwXgv1M R>q+l{UZu6aeCyUXBMHjFvYhn82*;|KO_+q|7cRq)Dd(CMcZ7s1vCcaQ~^Nr$8FH0?0k+yzTJR>l-hm n84Od*FSfx9c8i%Xxg;BwKqVkzcv^%V#)0m=r2CLSJ?M>+Rs+Vqt)=Q|@BdKINjyqOr*XM7n(9W~Rga0N3eX#aK_OQL{i3|kvC=TODXBY) (hhA~C~%brn!cD9z_R?AWcHgemE;E}g8RIr}Tn4(ixgvTHax`6moFFbFmj-ywz}@we|!4~W?jh%q@vi^S W)BKwhBi6yF<5CthKUkL9nwhGJ)^;P*kGvlqhf#rhODAC<~FM1|gEubDnXa-6Uu!HR$zE@5DuKqBbq( 7AoBYQTw0cDC^aGv+bg(Vqa&_E87#b%VmK7IUTm?&su_KcV9n!^{|)w@ZmYois%z2fNG`+T#nssqm5! d{iY`tobfwzX%5(o@&}mO1Ar77`du#;4bFG=x0-cxYnQEtY9E1#TV&gkc&65e|`DM(p&H6ew~TjtS^I nsJbPyQWx7Z_rpA#?8@x4%^g*c@Vh5b1Yibcv|E3r432cBM7pD)%=dckiE9~d|Q=`$o0+v(&PzGKORS cM!jSWt??K+_OWR(75Is=+<{2iPWnAKF6yRD)@f?)QV4ZSZtk|Z7=)O4z+iM0XFmse;x3yK2z~}vpOJ z`w@deLOWREf}0&|wD0fM%gE%kEW2diM 3U`BZ^l4aZi;H%%r|?oyJj&`D_3SW0(+ak56$7VF_-V?8uKlRDaD}MXrw)}-mL0M?h?@6T%EHiH7r{_ eE2$f!jHHO2V;_2IdNn$&;0{@r0$+=&VHnXf6uGM5~J_KPAwaAxY*evb3+vrS=`!4Q_!;Zz1vPl6LQI k12o+E6Iv!}7PZ#!E>_qzYgFa4JiZxK3kYiM4{&G7PMxV3VOu?584BKxpEtfyMf=MTqtC1;N!z4tN_KiO?g0@ 9RD@>_{o#c&|D{ZPA!a35Ien{C4*0fMxxz_q+x+-LYe@;hjP`V$#X7Z05Jlu}$ji_-MmLf?lBm_&A5V_P&;NY%{4d8ZzdjI2w7KP67OSiEIo #gU%?R&ZgEMKKb-tsgm0z_>0h`MbYorXb%U|x##ZL2aUGU6 `(!}4j(Msvx{{(q}*^fC*E~EeC~kzuKMth0|pKbk04z?u{8Y_Ec0s8;qbU2w!1CRzOuPjP?(p(tjXYulYhfTKR^A?y|c$dg@k+f3P?)(4Z U4%@IARX#!FZjNP$039|r-(zt{=B${*<1NU$aS{^<3WuihL1VSyjVU%!0y`sn$yH%GwV$Ox?)Aqt>RV 6s;hXsjsoqC^aum*blD$to_a4-6{}quw~NsXp^^` Sxew@9m?4KI$QI$BK^gIg#Xou_VZPc{qX-Iv>K>X9x^^6+R?qzaP`1Cpg*)t&PCp&*Kr5pZqMyD&*&3jkt9EJtz>*A=(PC#Zuz`2?u6daV+RCCV_Ipv6?Zd0zjQvHBAavE0lkxre72SwGAjW9g@T&`Fs;*D#Xvp^`(i9+ic5 RXjfjTExICVQoIdD39rO%@|nZQ1quw9wmNfWWro^L{NEt;lZ=lK#(#|a^o)HTS$4!LM>13z btpFqVYT}Yy&ivt2RvMATea@e9_T$v_c2X``$h&VkE8F?isXfIi_EwL~w22dL;CmW8I2y`3~tzn8%g@ mWWh=8I}^YFAkrbpv(AGkSQ(kENu;Tm1Iy&%>3Y(32fk^yU^4jbPl0zciFlXuhD`OZ=_KH!n!L$RUJl )RhjN#{lEpiKW5Lf&Fp?13J{0mSZ0p0MxA>$18nkMLX!j#a+m`%@E{5({l0nKRAUhc-cG<{4D?cuBmN Az$Y!u~VeF3-bQ3v`-@+*@YpYDJYN>bu?4a-FAKI2tO7n?r(BHrmTLn!>J-{)OiKl_SV(FUEEY2Gzlk ((j0mVUBx+TSP>>&xXmf+Sem>-sqSro`N%FjXAbLUl>`>oA#e(Dm8tZSP(ZusN#@NjjImc vkPU3i7EE7D%c|P0EyQE249gl6a(TsE7HxE*7B0k jg1oicI*qY?CfY995~PkS3nAAd0n-W^8DGDZ0O^rzbtE?{AS19*U?kbIaj!!IIWcyOQpbecZ;>5NMJO W)j}@lP~|7&DNRL#(N%qG-G8hT>cCoFE7^IE4wEN656~%ANrHiQ8~Ts#vorSJ^wjB+R(XR@o@*({|GM k=qCQUJ2nopzk;{$tey0sjTmOXBwNrCvsle6Pbl!(d-K(kPd+{yV%&>Q(}7FvW+VT}rT6;j~~i26@-sW=9!Et #Hit2fYiV9ONB@t{4dl{D&ix`~K#n3f!$-=q$8vB%?BS(e7!3C>77Pm`^i$V ;7rjM;4T&6hDJm4&*9Iwa^^a$hg5Hvv52(Ah`utOx8oU{WqqHLcwMKlJtl)(MQd%g9Ru%JR|>pH&&;; N&(u}2iLR%~S?>*XUZ_wSJZwwx{fL6kg8586W8h=Q5-Q+j@;x3o}8J;&h&H=#KJfYD3e{8;iDF =2pj}vZwW>?tw9E)UZ@W_@EV;P@YQhwIzp6^4<4fVES#**^J4)k_RuoxyrWkpznJZpqaHm8c-dBTSGH 1E-AYrNOq-usDa?1hG9xc2+_LBJCXb4bmY vf0L@}j^0M6<>Gd^7T7o+P1x%L&OlS=LE8L!H2rBoOO!8amc! 3qVOO*(M3$P8u0p8mToOC2E~dacpPFqvX@p6wzfPiA2gZ1w5pM7l!!qIj=g0js!jivn;Ju=u|;D^RLr %50#yV3g$>Jq$gA|Vk7>bc_AQaa2wGdzTyGlhuZjuw9@nifNV?ZrLKxzDTA=_a8~|PFV3(xFt3;l?9d F*hhYbPsOG>gBJ*)*zWA>Ze^sO`%q59>4oivrWCGr+?i`?9*+Z|g=4!fFcGUEzQj!f+^<{zbNxnwU;$ sZRR^;V%zKJ}IFIPxwk;eC9MGU3|1@x3*dX1}2y(+#OnCvk)GhWrXi%3k2m4Bh>h_Ww$l7Hhm=C=no| 21$Ay8&PRnht-y1@5ou@aJ1Poc|mGW`mBlR7PFasHDlzHzxW%9=F0G99z3*ue0PT!j29SQ#Aj1t)zHr 6n>(o*w7BQ46SUB6lC4k;pyHicO=-CiK$bsP16Mo WUzc+XXhoLc%=FGT5+Wc?l0lK?>4?K!wIk91uxvwJMxIOjWDO@~HmuRWU^npSHGFYrR%4(J4@-{(72G xa?#xKG5*$kWZ;QqBV%-I8Vrv~e_o-qeKbCe%XLRTVq_h{{ZqzwTcs{Qpo3%B$*LvDwUDX_kYY38aDV B;z&0H=?2^kR{a2UUfo-x8ZNZz-m@WZgJc~|ZP`8ybUHlt9Sc{pg-(bN6NQw VvKR+`&cfJu6g)ACmXj-iMwjR$WL1g$S`#=)#Q7qw_(S9<=patmnN@N%cO8T|w$hTraZA`l;-(;gcxB dDX|Xpg^X3y#}NK*RjxUl;wFatRaFiY6hZWiWR8YeD6vpk@Cv7??(DW)R(bx!wGs9DOm74@gWC4n<66 gZ`=@Wpq$Y%wc?ff_31ft&We&;>XvS<9<%da`uB)@=&{1TGUMJ(=g)K#*O+@$h!*AQLOm#@U-&BmSBg 7VT;A$`G{D_}Jr{izY8we$ChpMLM#f^YKu?~N=nxymWl4cztjVMy;kc##6(i~@3Q5)MUA53l8sp995w +8yf9tCFcx=)bI1=dJ?-XbP!ig2mRT_snWX$npZV2pXhN_)>T{U~93VXRTrDTEmu^#}BhJEX!1KawKE m4-72A+_((k;k=otX)%W7$wqC<&p2+3nWkY&91wJZ=NTj171K~D?1P^zx&r1YM4q0IAyc{Wz}UKEK!7q9vw8v`zH}7pnk}v*tD?y4dA PGh=%|drIjBM)*QI9x5|BmDY(X9t^nMrzMUs8)rhycb?b|+Q#k?8Y^6~}er@fyG=6s~|fd7yVfUbF{8 o<27{%a3Pi^%EbBg!Zqb&%KA4%Nt%>Bqo6R$2*N4dzZo22k^bF$N@AEjHLf`q@HVJN+FJ5R%!Vty(l1 >%OtUGTC<-;rORNbc;tLo&gNX1nwI@6*qJ|Ddjc|mI9X`=9CbY!?W nU(Ii{k8r?%1b;eIy^xD7(lE8;H>*I)m}Cfwj>Yv{(E7-<9c5|yr!LdwEMLJipY>Z30gjpwMZGwt-8WsiN(Ir%QmJ#42aR`J7>t%aLYX_ 5Z{sW5W$57A&4B77VtCmHZM5M)9c(VL(R5w1cO;^VUVTJE?eGq-g9mbll#sZ{z^i;i_TIlZBExLZd6rqX2^`%R#?X71&5|0KC@yOweeHS>+aW yWNiv+8>)~Q+1VVkt`?aPbM(_0%RAlTNNF1nt%Bs&L(9Am}!@hvuSQ;cy$ekOyYMyF3O>vsQHcH*5x3-O&xoi2J hg|o;K=6m Z2VUg!{F2g?qU5iHGrPJhDVor7eLgRyRE2KHbZJamxl9A9hQ&SetZ}%%nJ4ov-sGO!BJp|=+!-#T(8B ~?qf?Vg_sL+ttOjrzlOdU@8)Py2FDgW~{1na!zgVK?mYYogh}{j>fjERl-{88Bh%A{*)Rky5Vf7}7IB;WxhX=-UN9H%!97iDS `(2dhLPGh{x}eX!^3Wh5NTs;qFx2`p-{smZMz<@w}G8`vKJxS#W5M{3V~8i0735byWBL@<%rTBOguYn xI9k?_5^8d%Xv|+Q*K3l$h~kEQ2}QRaoe_09k$JF7fEfM47W<68I<0Z=Gtpu)D|S};F2`<7>BB3 6bX}^^Phj9;lw*|kF&jl-_7yg&`RENM%+t0^2bx+339VD@gpws&g9pY#$jP_TA(0$v6>{<`y9wvD?)Q UXjeMt*5ncz4k6TKX|b3S&k%{&cCT`hN$ua5uv?a@Kf_i{(s3lfD{UR4#HLG%1wGI;uliwouMQ3$E5e ul&I`5&LSxZ1usbZ~j}EKv{rLpFMmjQN$wb+UCKtMu(1KgSpLnn%Fw#nbIo)jc+d&C<%9FpLS4M^kG8b4Kp`@)wsVf*K*ND3Ea%OU fq_Nq-kQVoxk}8;zWI)3B%gZJd?*Y1A6_+T(TGmBXqh6YXS!(=)SiOJ3DQ;JQGrGFrNJbmZ-?(Q-DM< ;otxK^oO9KoXpR@krSa$^cz&fyPInJqv_90D%=P@GZK$Q%u%^SjVw-DzTsj;1guk;F)CLsM_$@ws2ap _UAp`z2P$n^N3=OY_iH80l-%vugD1&Ib^h@4#akVX-eei#}O6?wQ=tNPPs=*-8Y-(FO+;$p*SKcJ|Ic J*h*S*gLxOa~NVRcMMhk_vS(S~kcv$lX)prggExDD76@oG;pA*|lL~B~9IkWZ#H{3IzG}iU4b d-=`Ln>PYXD8hM;%2Eufl7NTS3Ao>yS+kNkoH*>)rytKZJIT~OdYr$Bk0fLPn&YYCu f$=1#!#e8B5ObTVx|$Wxs1rE%i9O6FNq-W5qktPQ#QvA?%rv8wKz}?|q_xARleU@$U RR$`ks~;+(=uNzHxR>RMIN!!=vP(b>f>*~|4cdm(gLbJJujm$wCT=1iqV?iC^ucw$N{Ip}WH?7L)EEm bP+~L~b9y7G|9R+xXHo<%2mCWkb6y1~iY`+@(Ex=92?A_6qW%QVtBLGu{%gx=FB^&m>BnT;?L3 !&7P?Xu-kPH>lcO7V2-8^6C8gpwNZx#2&4BESnYKz$|-TY2zyEv6Dz5>kxCEJ-L%0KtE&816D6L%+-{0jB+Q kN^v{%1fiPTsc4~UsV$JZM~l#5ax?$lhM!T}t0DKZ9jb6W?9|NrRSr-WmxxALJP8#s9_ga*j9nZDp+; ->ydm5SukSJxV{sM19q(>^==3hd?c4^_G>F8ejlDmavUv>u?{*i(Hew|9DeUi#{r2|uVmZsLT_p~9R_ )>YXQ#u4&`E0h7!&sh_isR)9Q&1h~xR{$w(AXo5mjz&qVrvj`tSEGnxaq8m=<-0MeNUr H&B6h~af$l0^3z5=2dCmAWh-ZXZ~SqfnrHks$TzM90bTaq=>mOdno;_3HJjKTR`qX>ys(>r`I16LFRD +?5z*j~nu+TIXy~7oRE<=Vp>WLT7;pzsJ7vcuT0gUJuyTXLrnWLr5kNVtlrh7`(T_FX#6TZ4I{nd{7Y {s?Zw@N6%Omw4b)H9a>M0UFdDp0$keN4)OO*w-e9B)Nm^7GmEvl`_nB@@``ey6D1X!UAcZ*)LAYp6~h m`o73~tn^P8dy&ro&)|t2C{)f0TK<>5p!z4K(+P1jg`OqG;TU#B~6t<7blQZ9j*^e-U+}I56{wQiKyu M5BLQ%UZWG+>ngZNZ~u3tn*?tM02u(7>Js4aMbOTY2TU&{>c?X~J}>%%SZ)c+Z@e9VD`Qj4h$JN|_L< s23yR0KN!n0uKWQ1Y5-U&;&OW9&B)JB$3`w8ae6j4J&^RPzzCWnXgx|{Dh+ylGCJ^9~V4n`!T4XiF#?+A7AF>V!mvJJ %bIu{Z5`~n=L#&JVa#(^v?KxrQ_MLHv5vDrd*@*7#>pSNHxZl>{fdA=9YS83>p{b^@aVS!J>gHg> rFx3*Y6vQ@x?>2wn$tIZfquEh(j$?z7NJ`Nu26#Vj+5j1o{YzCJ^*sM|$8f|E=rPTc{8Sr_G@DA&wZ4 cbSh6t5s_j-c0$pwA{~6);)pGQ(O3B8{jGdJV;SmwR8SY|ZM18#!tq^s$(#-A-ny)Rr6${prIk`%0U( ;~0umx~v&^E_jBDTgr-#JCW@|>EnR>C@IK8MSob+Sbm{(TZg9b%`21PPGP6l;H`QGwv2{Y?oj+G`G@0 5%Y-A9u4%IuoCL4956ik_l|VxMgt~%Xo;Dl5kh7&6( 0@^JhebLCn~WQ)gq7NxSaMb1;1@&;-oOxS6LF`uf&yHb3U^Z1IuQs4aCVK2=L+Enj5V rJ)`Hz!=pZI)z!B5(+|X$GXh9AIx`o?DlS3L>SznyESrKv#G)6|h2)di)Vmyan{C5zYA|E!I>m(j4T9 zNPC-Sn(3$!xA{>wC8>>R`aZ(&RMn89D5qRvcdbev!eYyyH;fLd#gmy36Xim{JMm|Sadtz=Seb-p*nQ S`rTJl+&FSA45gxtX8nP)WaclDQ~{VUJqP_sqlR8R#@eOp=f2Qc8@$haJiePuqH=A`O?i8_V@%#+r{J(%O*aKwtLPyd56+UFE`UYP @RA#|L);B~_dkxIo8b$xWoN>pXg#9wLo>HYdAxRs~l_34s=KXC<$*ea!Iqj<8R$EKJzdFk7n>*%bVpd ertAsCDWQM`sH+LP)-#P5w;P|CEnDw^Zkz(o9YrR3v7c-?m7wHl%ljsxsIt#2K^y7crl>TM|JY1+Yj} >_m8TpWQ*%7G*4NJ6uef->G2Y$vt|)!$umceO23QXznQgz00X_Fr2?hpyh3|Ah92R{^{bTmtMcWy1M+ yfN{9%FR!`d4_jF4J1C{ayCZu!>d1j4*DD_ld+1tbJf`@1r|Jp3j*t!$#(}B(!JKRGTKmWdy{-MCNw= Hys0~%Ozs&#m%{L7{9}Lsnqj3$`^yv7<<5TxK_l|HVTu5p|%>wM;4q~dNI2=eU&z;O7j^gbd!tm-ZN4 Wl&Z}D)4BMoSk!F1yNq=#q0;ZV}RL6OLV$Of{40W))ha4wuoiA>^FU!DwvJsSsO%071=|+oec_&XbqJ^9SyE%pnr&kF$&RKy^3LXrqv=dRA7Vw|`cY|IYYHawMAC?a7;}JUlHPU& u3Ld5`@55NgK^=K)>byiZLIyJk7gmdXafak_3IdOP2@tDwgw?OGE%#_S`>eps=c7((PB>ST`nr}X@}dQjo5Q(4&PDiUVWQt$4=~I3nO0PP(AoF@zK^4nN|TV7FdFX$4dvzlWy(%I2dnK _7_5694cFb#!dTs8GZ&KqJV!TN^ksAGpjCItpYfVAkKwRBnG;5BYXm#SJI*@tlVVI9!1gmuUN}RX pEqvtl{!o~1m@ks4sqgjMMtXVHeEIX?GC~hE4P-fD}RTa0h}M@gw!F*Mo6Gz$l6GM9@YriBu3GVqf1a P5D;$j2La)83H;TnsXexp^iF#4BNqy?pPz iqW~G-g4q977dm8u4DVjrUxg^C|w96%J;W$ZqemH^@~o#u@L5t2hcjxM%+{8oD|g-LT%cA#)OOPkh2& _@emS!Cs<(TQ2#h#yCN`q2czU$*zei#UE!ri0%@hIWR+yj;dIjM@OtCvi(5jRA~(kW+s1KqdZjBSjP) U5ky_iE3ymlP)=RDxRug!Tp6r!Y88m=NN^so`o=zaAt^Nk0b5K7qPL>u#Aq11<^*s7QVJ?TQUkU(l$h +6Km}Cynv7HL(zhY)*YLOCY?Opc84@{WAo4*?3#<0oZ&!u{0_8x>HmgZSps*o*qFWL)&V|SuqWnS|>2 UQVw%lY5Tf@-Amzm#wgss^H(S&3mi%k5z|JrP|CUHgXolYhgi4m3^su6!R@A)4J2T@Adl)Oz&yay4{l ezqkNSP|J&?IAgCX%ZcxwXBgd}%DHeIyNvdy@0NW<@s66BjWwI!<1*)WxHHn&Fa*XWo?+MPTLPXN}0L )+mE$oWGfJxLmx8m=kg~zCCdlg}QNGgN^|cou5a#R1vWSlea+Mx5a!kWlJ9)I@j=bx6EKe6rx{EdlG4 1|G-Z~!rt}|Q%Q3;Ao@1?o8Kig(~TE?%x6Ni&q!i%)b;V(iekpYq@-&^)}tGa8cP7BX+P6hP~{T20Zo 9&xTbAf6&OZ%Dx7;I8+58zniOvkwI&WL=t7eYdA*-rU0BwrO820-L8>~@_A)s@G@Z@pqEYyuWWZ=NSb ?6^6~GI++C^1iDQ-3tK=2{IBa6Wp88UfuB`Ci%obN4j5u1G7E4728gd#~nM3GIt3Kk8CH_OT*fsLQ&A &w0=^CCjVjbdKj`Nuxf#T3axNM@*Q@gdvq5R7ip!Ox%h7ffKKgyb=Z6$GNep6f9~=_#8&i2TvG2-ng! -g9dvlT_G_<`lLFzPhCOZ}TFwcU;T`by#ecDgIoo>(y~DVLD_ Ti8$ZQRc!+Yy1&wyBv70>ZPjDP&h5>D6y-Lwv22arI%xB*jprPtk0K@dak`M(v;(eb-6b@(KB&Uz#kY JEN!D>uc`fAIN=$%NHG|OJHLR6nT4eX5NhU$$PY|KST&?q*kCGs@6aWAK2mod QMO>`b8(o6}002P*001BW003}la4%nWWo~3|axZXfVRUA1a&2U3a&s?CNkc_WQ$<};OK;mS48H4E5IM Dg*L6Marr1g&%rD4Jvm6~;jx{(|ASuiG??*amyAB9okmC0ulgS!V)9T4<#$tPVb>=VxxNGm>>G9j+m# 4?4KTr=EPGb{#>yDjq9yAuE`r`^4Yr4NXxu?Z5G*v)D-aX`b {`rundtxxv?$JSG7L!LZ67X;(>UBg2PUrn-{18EBhu*QqP#q;>u>lU%Cy{q4D01qrFhH)=r(FME* Ntbk1gPf9pBR_282YX!UA=4siOo>g~x7%{and-xh|txZdWUIF96fz{8tngp+l%-v2QlP=76;DpvKDD* >{CQWY;U5eY1Kh4mtWt*qC@rUsl)Jg;|9tbpe`_#yKo0`ap{qN<=!OlD;&1@>efr<+9P&#**XUf{o4X 0k@ox&RWqQAtq|SteAx#*!~(D(hXuRU~?(Z8DFO2Dutoql*=rFglGI&%%}oc6r-`LJJ_xTwMdWSFRo> gQ;fLCYlUTmDOLRr-O5Ttz?H0MAuCm65uc!Jc4cm4Z*nhiY+-a}Z*py9X>xNfUtei%X>?y-E^ vA6Twib7HV}W;ry$&y1W4_)`vc6V3%E(T7R!<#P0>ughaV}C5-G{GV`s4y(=W1)$ GhY4emqG$sn_dyA32UN$B2Omp&&#Y(HJK4WPuRRM!Bhb6U$xknPreK`*g&|2uXy2TJzTgbW9n(@jsZ (kAC1P2`JruQR2q6_+mr@bKfRqaUgu(d-TRcO{NXZiXT?_dr{~IzqFGLgIGsJz}#}}RaAcBnT?Stp9r Ss6|+BAPD^orpT*1r*9p4{&B#%ITu=kJgGJzQ6%C%sfMWOKlYNakrEu15vk7o35h~P0eA)y@(&z>i_@dSpI`jqnTFPwh2Jm }>>Qkt1lh*j%ZRZ$ov+*&ufeP+oB(($Nfe1$7VD72J|GhS1*P&$-CuKH_6&R?^c#SbWMVqwSvnJ=WEm QQwxw&vrz9Cju0hVl1}_eO`}Jim$qXhiYKiAM!`$!$&xYVAqZB1PngJMae2akQ^u}qbBv=Avr#CS8b_ Z$5fUs7q9r#)<+%s?|h9K8!IU5Qb8AH^UaV$0O<@O1N1jb_Ij8pJ$KFdOhJRInDmRO@)T!HTIuv$nmSuTn&PZUtIbC))1oa Q+2Swd7YG(IWthsV3KVccXFyzugmM+&QX`D{8u$9FOJl)YETXtsbk e(jb~(?6-@hm3x5ieOyFtrn2g1$h2@2ZL*-+l(s27daas1|Dw$0`*BI%?g8N+S~$Uy2R-c=gRo3Ql~~}$J1v6rUiImFhv_hDM@jXw=1Y!(ab^ge }-u3^LqkR_1geEWteVb_Ea7jspAUSQv=XSo(`2ek4kmsQ2EHHv;k=5O2#4IEGpf-rn}c%49h%Dw-J_W -)fc!G+`N$&E96ZRJrL?*?|jK5v1FQ$h9wD75J=8OcG=az{GOCkc pB@9uF>l$L{GYv^`AZuh6+M)T@GsDzoT5*d*L>AgmaII%SrODJEXAB36)aOj=X)pCyv4Ge&PSS;uP_V 5T2bC_<1ezrr$L_Xnw{ukoZtGN_KFNG#fY5y4;;`wk*->n6%O3yQ&s>_&tZH)Pmd9>9b&(~-4w_wj?2 ^~s$Uxnmbonp^adJ$Jinxs;@{xD;9VX{&?U(1~ck1Ep0xnVz>rK^KJi)V)QYe0y%(o^)b*>ue@no)jD80V0K}jzX0ZTUD7^KjcOf}MKO-M (cC#ucJ4;AD2UrGP(DyCTpg6M9>=B0T|;E&(xfbh+b%plNF`hyja6w{j>%@wwiUz8*+jZmC0x@GU7EI pA-WiDbu&z5t%Yz4ttd<3RyD#>)lvqx&;nHmx2k?aO|uAYq4J^(ZdKitlC~1K#Sx&2;8vc0Ls44+oXb zUou4}Jd_|YpJh2>QBCxIe%^}kvvrEX_mhJopt9?_z^nDmbzAu9Lb1|lI@r}7&(Wz$+s*NW6sL94hF` J~~iizxmigmDbth@|yx}U YXO<(#d$!WKK(?lX_LBL2EFUFHp2l8_ee0ChZN4E-iE0$WB&6`PyF#wZUAye9}f%>|eb908mQ<1QY-O 00;nP0YzMs(H^6_0RRBu1pojf0001RX>c!Jc4cm4Z*nhiY+-a}Z*py9X>xNfUteuuX>MO%E^v9xRKbe dFc7`#D+cwjHpF4K$AAkpHBRfl-Rq3Ja()wiH=snHTJc)CDCyfK`QaF G|mpP+?`0eyUoItV3`6vXGN1=ykM%|i*xZl?=0Qhy~nV98h5jh39ppHv>*fKrteZ@PRUWnpiW#uBz;G +lv)(IsOqx{M}w{mlIYmhNZxx%&ydRIV9gO7~!C##If?8~A`uZ|3!!-;WN`PEX|`0(p(}UN~tr4T;|! ZoU5j%Q5XR%!RjTy>thPO|JSt5>?Ne1}*||TnzsNO~Y$|SK#oQ+`#A8*EdUcCeto35vxa&c7Q&|P7ZK &R=KJRg)A^p+Kb#(Pd-+Q)>m-WY5C3in%5JV7}NoJpaYrWIiJqUqLt@W@C;Nw_VX1X;9B`+F;EK+7v_47BVAIF&mlGNGgf9?!WIyQE!edt9CkIt3TMXct_sd ^YD(mcDp@ff#5W7+U<6$6$(B>o);!65ybNloyA-zgc;)sE6SN{wd^}CvnN5aCpnkt6k)=A#d##N86uH *KK7?19ar<1va4+H;=}pa8@(Qnemg#W)k8j(%9`Tfm}XMv5mq4=vqLK6@YhkR)$$`OC9)257RI}S7J` pxaQ!K fH_ukBLxo^DiKwc20N!R@j3%JCa0U7wsM(sYDuIt3D6}D8mLwiy{yufWMd{MM;1ZH^I?U^$>Bc95k7@ TF}+6+{G 7V1iI8~FBT-MAh^_)hl8@b>>5OyL~C`B3RJT&-9xrmpdQ;ot{z>TJDZxTW!FO5YXYR1>ih3Ov&=fgwu r!*U6@b32C7V~7AdG3s;Qkuwic=HmM$Xx&A9?pzQNWasECFL&JTz~%?CPw%K;)06wS#5rkubyLsa$h1 yS=FvA|E)%(v8w7^^9Iu@ucr1k5zU*3Lo6pj@9zM?X1VIAtCE1nh-H+g*fqz{x-G0G(gF?)RT9!lPyD Yb^JZ8DUB`Ei{>Y4JLUYB@9E*Trx`{9e;PvJs`ogYUIHU4G3>)e=58w0;A&-cLcjn;CctFNsY{(C6f9Ltv9k88h@g7>&;G0X-0 k`uN9A*Qa_d6H0-JNQrp`#3iStlkuXJPYs%OC%3#$Vx;m&?{Gipr%=d3s2Uv8w>R?Vkjex1aW6cSuG= 2Tqq9h0x@R#|uzB9vjlKx3v^t&x>^u1%AwHJLwr<{>N5s=aIy?$%aflCYoNLArS7#i7oK014c;EkR|V ?q_2_H=s!U22Vl1)2SjE0ahKN~;1w`p1m!=pFQdD?Ub<6T)M3xNw!ATR4~m14(H)8;#-pm*6 70V7iq!ar*+0%rhiZBRT{Q_h}b107fm-(VWy%ZPLx$EnP1dLo&qjlgW^D|$oKyhP+TqrE5nUs@GixXm bXry$VjnLlf$nDYE0Wm4JIevDDEs8>NDl8d|+dDy`=@()aj7*dAT|?;PmP%) 9je@KW+9QREzA1X(;!C3ilF6&jl#y{n5we|STq7e6z4q@QW(H2-yAkUMVy;$57K4}a%S?CoTt^GH1RDK3?v625<#Bf;#!*Y20Il{V2~xE2(mO JF__lWx1LE0IN-6ai?*yIqI{=ZyA**W{Q^AFsU_C26YaD-cJ%jGQzSnHKX=`Z17BIoE2jdOU@Qj?W># 0Zs|lGd3}dt1^{9n=&Y2S3?rW*88~k`JTe1Ao#jK73%(A8{~A72R@p_IM@&`q;NXC5Oh7JQB u5272k)Nqt=2kW6C9WF<9b$#Jk~e_h@hT`R?bx9zXs2e~6JiHlzd1&I$MLnUxdH@|*9<6GCzLG -k&j3Rg5!+-;&YB9%P7SyJ3EArf{&1!vlo<*IO;92YVr%}TEzJ>gVR>iAC607rRhEiL679={!rF3#S5 @D9&L?@z|37w=YO+U8ldVi6d#{0fo@*-MC}Nkz9QTNdy0HEhW`3_mVgNp+&Zobepl|Uh8BfS@KTKkII#D=WBDSoF9)a-oG6`08`5LtRhO*KdbVjtl5kv3k|B3B(d$XAC)3SYjK NQGCDrlo*acGD|1NEoUF2=P;JJIY8P-NHPT+>kIIa^Yr8oyPTs#e9&OKz+>%wqFpb|TC2}2Lgy+Fc%= 19|V~X)GYXP-BxBdZ8O9KQH000080A>M2Tw;5S^kxSD06`=G03QGV0B~t=FJE?LZe(wAFK}#ObY^dIZ DeV3b1z|VX)bVity*hu+cp&a?q5NqU+lqElC9{&Xp1Fjw+1V^U=2_dMIbX09kY={jil-t*pJ`6d`Og^ @*_xLQ99&3JiNR-k$ZA-a!C~<7dO|@$;nBtH<2PIaXhJXC0QI3o|i&uLW@FZs<|jsujlRwWzqCL@vw` _t0AHBS%2i>-Cb1Dn)KGswYC`@3>Szz7PKfBSM~#Li|fdu!0KX^xA&YexaAWjMKRx3cQc ixmpfmHp&Ot6f44$kVrG#-n;HTsMDxB^lL>P*Skj@+!}xUX2`;RMNaztH;G0h{V5GM&s$%UPi@9&lnsi dQ%Xd>X_xH2K3+lNq(}3d)`l1}gI$o|^kMhk&#TqEKddDvi$2>mC%xNx`M83c`z&VN{@y%_DL>!C}*; NoYPmfCBDt%T&@WRsrI>6c$2=U_r&QBsyAu%b3$Pb66=uV ff(DEhmdRSKn2k=As>O8u1W*)aY`vBJY#BTXO4Y|2|VLjh7(uwB4H^BmN^p-ydZtWSbb {@vtZ=)RO?cWPER#UrVuj9c_M`p6CFWjp0eU;rB2}>mQ>D9ljOzo=g(fg>VNqhou3UNs>+{l$MIm3s& &BtUF++u>1Rp>gENWDraYNq3gEV4PBK&-vH^4^8Ei((AFsS3YHCsebdVsOELa-wyPV_kihFEmMwvhl* piy%E`vm2lV?TWrMbBp2Q%|mSd1>nB%=?QAdWSznM)UkgPEk{2hA!t_S-|YDj^KqYOiGSx6=%0C-(Hg c{MrMr?6kK!sJ{jlRi{}c4|PX5)&>-m@@klN>eI8VK8pQ#9JdXcoJot_6FeW9q678O(rPxlz u)Zeuz$00-UPl4rl>jU+IMTKSUG@IU0e&JP2J7S{&y(YC6jt?TMK{gczv*p$5_R1y^I*kI{|jp$VM8G g`-AuRv*haRJ{SaMOPdXW$)-}3ON8ZcWzIz9fO;xC!(0}hmPSb_{h^gj6oxT=dhm)G?}ul91weK5e|r dge*|nRjdx-4fc4`H}SzJb&L+kBgalfQlZaQUH72JADzdn$OKKh^Kkeh^8hQ4FO|B|@bDwE_`y>qx^l 4KBQwY=#gmQ%4EEUhz|^A_W!G%5=p%E0zXLVTyH*B=K5}V1ltZ`j*!BXoGg{$iPd3i*Z06E9lgsX24gm6)?Pd(vv0)MirF?{wv49nYSWYHPJ6znlZ=oL$ZX?VDST;o8j0JCd%vyeHX{S73l Pm-mBs?OfuQX(18(Ml(1eRl~!7=lc!3+g+Q`oU<$)5t?Q8wK~2##Tf3auB7>DXX$HOKZNN{RvCv?kcB gRfx7oW2NG|+sM*HX$6U*{1}wiKy7{u#8ExPb+HqmZu8-IGR&b4>#q;Ip4b|V~C+(Rjc) wm1k)^6HH`+rbN0|XQR000O8W&uT9v6UPm(F6bhvKRmWApigXaA|NaUv_0~WN&gWaBN|8W^ZzBWNC79 FKuCCZ*wkidEHoDZ`(E$eb=ubv;eaKS6W_;E?AeeO|YglkUVS%0*aBYY_5{1k+c(I*nayiNlCVx#HLm (+v*ov;<+E^koR6oVHlPy{d5(DVHgCt6eXcFU+SdzY ^d*7Ew7*;{&g{`T~zi;wRc{}HQsyFM$J&V?+`xKwX`JVoz$-)0&R{8&2^uHbi_sfiv0X~C2tmxjY=$J ^K$8)oLaT_qWpkZK`0D1tYLUI4Ko5K)6fo|r%K(NIQ#wR|UvLfk70oG*FCsuXNab~SlZ*9DMFq{|X2r xSU-(7IOBIL=@Nh4G8D5f-JQjFE+8avd|7F8B)Ko@xA!7jVfcHV1PrJ{1_P)=O5{l`EUrOp3W=Wr?Z2 $AloZ0{ncoVfOe=w9sX7lF-OzeaSu}{iOmTa!V}1{3=!gd0jU`p-#$dRFXEQ!(6pD`;!b#GeLi2IKh{-0R2!$#$U(}dTh8K<1s4 21t9%{U85*UShBZuQLA>WWn{Klqac71+)eEgg;ifiytru+SzL~6k#igdTO0;x`+p#nu+BtkB7au451q q!+YMrLchK=V6Zp+_uMQyn&DaxO}^lW@POICB-L1)lVY-M22)tpNADD99c9uQG5Apz~8p$oWG@<7m+= P`40Uz8(aUa#?6@w$I~Sci5AJa7CbEcLihJn6qtr?6ZBi7X`8yEM|_A;m$wlyb MI1L@QEhqjgr$cx3$)m&-ZR3&eNf?V-$F<$z(D20G8@V((i=Fh)Y6FTCW}-(uH{+Y{ZVAqk?MP6dL|a )HiD-e11ijrHuEjk3eJ6`QoJ!&N=}5kBJYiGM&({vI%3em5ESEDYY@o rb@R#3vjy~Ch4&12RJ|ERCJL)q^a5&2XV>o&MK&NAthq sAF!%4SP>PCI9ABYLfHymyqOqRRQ)bC@{r-f^PL#AS*ky+QRXpB`%O?tEFIn@ws{Ra?3C^m;be9%{d+ EM0(ass=l3LZ2EF^+H401sghtJrsC6hDk*=^S?i CU5oIYx2`w*rw4A=^Y%|%g^$I)!@*)-eBN46A$*4|B8Sbd4`TjO)60Y!FuR;Q&D#s*`-t7*{Zu$>;ZG 8NnoegE4yAHm6@q2{R2sZ5l?FbDN@FvSO3hRA63>@O3-=>3YtRFDv?c>-tat{(mxKfRQMeQ@C(ac>^7iyTK2w1yG;0sC_HJp*`!sfrnIqvlvK0E-TGT-{H}q|JJj`HJF#uc;f;G-^)H~? 8F}WM2Tt>`NMR^G T0NN-303ZMW0B~t=FJE?LZe(wAFK}#ObY^dIZDeV3b1!vnX?QMhdEHv;bKAHP|E|9R!+0jrj7>VderV lGrjG3-o{KGyC12a|c_>%}CDatb0+1h*yZhU37XY8ugL0InQ+?5Ecd@^HVX>g+c~>ca^gYk(bYdxHBn ;!Zo=X;ngwHY|HKA!LG}T_kc-yTIP-bXcNTMQ@>URqfiHPG_7@rHr_4!vehnLSB(n{D&Tpi_e$)f8GDHk%TVB_rB F4_{`J!<1Tq%BnGpH2coBpjQ)B2k-Vp%Eth1Fu`&5^s&%FgfXNo*3~kP<4H!2-Ub^8~4rIa9l4MVg3oqIhH}QaWQq#OCuN`S1tTxmF+_=w?1Sqj&HbJesqPXqKTU v%-&g@BjjZf$BH><2&kiqg^rr(F)Ajg3D1Ft{K4Mm`N>HEa(llfJAGzrlT}mELB()*dte3wOqHx^KRt 4ZfXsF_@4PkT&}W@)R-iL^OwV)53TMW$qH@Pkb^O{T} #<7}F$BQwWn_$N3`IapoP32-JaGJTUA)LWIYM!^7}X|LkND!$QT-*iZ(9@?Bi{khxv2Cd}IfmR`XEwF l~~;q(D8&$_)5bX}&QVUHP2BShEr>ae_Cr2-5;y?OJdtT@JA1TE`_fQ6+IzJ-V>1aYB*)x{-x%iI(yu 36zHRXQpGM_+^THwUdPaeR6?c%da?FPJMCRFHph#!)Q$&HQKW(S(290)G$6q9hsNsZ%6NxbBwndpFCh Q!~zsgP5Co2HHpD_Q?dXB3-adnf#k2KH;jgAxp8mMXBJ>jnNu#MS!mo>1b4K2D?pd-)ZqTjZqYFqOz&dkmF5M69{^$r0?i CzXM?An0?pVpG=->o^tvEKw(I?yW^9%b=Kovpw2Nd*6VcR5+jwmnY?iBK&9uaA%jHr3{KM(Ttrg6Qxb 2oqi|W5rElV%GxL!I#d_~3d0;b2oV>J05C2=cpy6v)9S_#tqd0DKOd~1cVToUm40W*~VdnOl_+j(zYmezX#U5hj7%~UbQQvZMoPXsBd2DY@Doj&{DrNa=Xk0IFkiS9aFV!Yam`J (_0;JN>jaY#2Kc|&Lqguc9R_p4~N@}x>DLVIh7!=ZytNbRf$-$!xa7j%9Y+xI2@pgjOrmU%1z=9$EK* `yapTtB5{{U3D*nkZs660Rn2Vvc0yO0*px~91fGHwpV{>S*aCdpGcmdvegp*y2Cd|{>wD^K ZSJjY>)YH99*zFkTj=j02MJA}XujT$o+aeL6RN6P-u)!E7UaDclVhH^#Hnk0|JLz)O0wFl(r+X8arn* #dB`RD%OaTSjfv<6Sc$2iAr3nwRUhvvdjZwBV#^k{f>c~WssE@usvdmb^-7KtTphvR2MyBUg~PmfRf6 %1C!8U(Ys;^US83~f98&yaL8_0O&br$?psM#8$(uyfwFiD9W*riCTmFey$3KMngAm7K6r*1(W<(7x$L ?%3Mk34k`hUxJ-3kI3G<*LFL*nb0* (?bPCNWkO_Tw!1_CM)|<_7C39{t&)UCi|4pT^~07uHfVp-R;40w(_W=I-g?<>*SB_VD*Akhs_82$lw1Gc&3=93FYk~ROI)e&7E c3P%etjU14Oc9X821Xc;h@f7usC_=_!QkEt}GNhG+YkP#W)?#u|>&3BO~mMXUfdP2!>qa3h3Wayy4i< w;U37ejMKZt3_A3yV1sL-VP`n41RE6&ooadgkVWHC39?2(O?hcxy6GsKl0b!lFHBKrKxS_26|S(~8AT WAY^Cpn#g9XnRj%!P1J9a=Cm&V7-GKZ?oX-W7^}T*mGl)32K$DDDuKuwzzsNwfO%_sVORr*FMv|I{g+ C+YG;vtW4{R+VH2=6yV*49dy;x*e87)NjbeR$jx*Lyw7Hk;`c1Io-Kw;yZUrK2+imN*xZ-pt;7a5qHK=^CYqnX#S~p5(PIDy;3GF6vhJh3aPe=^t^UGZ*=_0ycN(Wih08-Ij41%Gxv6DCRc6RkN5 U%Zht+s nu?QQKjwQjF$Pt21?i>2Yl-RHJr_dZK`@|WULg!=VilVk0i3C&WYYoPoLASuu#^ ?`ed{`g~G1k&aH}Pi)>RdV>wX>n0SMvmuJ^=s#zybgOBLDyZaA|NaUv_0~WN&gWaBN|8W^ZzBWNC79FLq^eb7^m GE^v8uQe97jKoET2U$JQ)s>w;xq=U4Y^Rb*3;vzIZl)Qd$$y!Q00l8ncbNT^l>Ydz@5 ;-CQf9yIbb2&*WMYUikl+Mp^ur-1BdB*qIZH-le0oL3sod# nqQl@bk6!JYA>YL-)z=hAVRHH$SwKnxJQEdxG%2&RwW{GOuRC8`i0x7Z^5a(8P@j_$CRdWSOK8|yGS` u#_)G)01veGQ&p!o{3NtL0NbHs#*B6s)Co3=3ythMwoerGC1Y&BBO>x1>F(NWgGzw1`1aME}pTX7eFZ cX6SDp=!xLy1`l7U7+gPZ{LR&-6iW@{l*$vU*McLcc*~A|HcFdBX8^t2bW3IG6lC;$K>0001RX>c!Jc4cm4Z*nhiY+-a}Z*py9X>xNfcWG {9Z+CMpaCyC2ZFAa468_Gwm?O7k*uofN>|MJysdIpAsMv-xc2cR35@Rud&O)Qr47Ryk{`+;$jD!Rdh} cdLEZlI@}Y5g1N>;_(?2;W*pBwT XOD-kk1X~mQC#`)A!}Vcf3h>^X7A}Z8hJwn;$w?e;UO0~6o=fGJ2eXzFi1W8iP&`iZoD~TCC_bCJ F0++^ReEQKBAV27>7C08g@Wx;A&7Cdv?9B#MPUf=_wcgcx+2^ok5d*fA~_L~!w2g7WJDz;W5;EJ{4tf %7iR|tE~9~0ojG>E1s}_*&1VP9+n-)Ge-XKjkP1N79&($F~4dk-wZ2?i_Ybg2TE!#UQMsKA6OtDiaGcUrQ!-Wok3=EYBbb}lS4)1(` P6Z7xM(xCwp>)6gjmfc-{<6)K%5vhkyA2_gNqp>aP(SV=4j*(`|vwl3?z*O!nVEDFnJ&;uV8GX8{A$c xSpqfCmba2MZz{Ho_XhoTAJMVbw`BVk5)hFSq^nb?>_Su5;1;WiUAR{T7HA3@*4$-NE3WQHu0uO!aU` N`OgXVp%38-&-VJYw~QFp}bTNZGe{~uSv1l@3bzg^IorYesf+V089)|m{`JGsA5BO(QTeDNh47{l~a( !MHN3)JxCOOC{38O04$cqM@eZcFRjrb*4ivEn|UM4r-2kDgL49vn`>&XULbSB{Tm#@*a&~+2SCGpBl9c$tUf?0bW9ma}T;Kiu(D89;h9dzp||VE$k9jP!2aA0GZ5v FZZiK28jn5ev%>7?sS5P;2UGrS9-zR=W@m@^5VySzSU*X#joVZlQXF&`ko6+&mi$dI6t+KN`a6$c@7^ C$5}CFps5S= `SE*g6kz(2qTT)tr9w0Cxj}DX%6dv-yNYK@yt~wrEU)EgtB?j4GpcKIcgYV%m)t}vpIyrT6*YwI%cwJ Ps6*Eg+SJ3vXWG3TTs80#q-`@sy4VfxrAx*Q*5i&*lxAz7`-UgPjn%hPap!6yRH2a t1QN>)=m2`R$anmVPkXJ!#K7PCht{``coseRz~e8xN}^3KkXep6pFP+I9pt&nw?Rv7(L%o>Rh**H{I*c+guCgo^)nAuXTp)CC?dd*v!v*zSwCeOH7ws3mS|c)DE%AoIgMKG@@3tTru7d+O;(;InQ I_H*Xy=!a|{d<|U(J;bEr5ya!mO0#UMsGjc6;u7K7itp-JZG8wMt>J$_hoq&5d-UtYA@aR(?>}qSo+{ NRY6`ju5S}L+&9SIGH>DMD2HVY#pb}VqV>aHfy`7n}{4AA^-8Smr~(itg+A1kXgE1M~jUR+=$_f09Uv m~nvIMjuthVNB~Lz;^To59hflQS^^N5;ilPo3iurI6?xeOpTV9;*WCz()5Gx8rsY@Sp@D%E^oXU`+0m QE>}WBA;cDfO1GH0Wd5sF{f#XT&C4(p1MiYtvO#ylrN16mP_F4RjJu6x!Q}*VK)+`sTmo>-ifV-L#+mK$;o^W~F-5kB&yreC9>)P ECy`H?JC2D8Nc+fJ^5hfc3M8GD126)=qHXzjR)hU7dK`6nz1-Y3*TY-OoMtH2dqxLSyD!Rn||4!05`B>-~;wLRjhB2;>r&r8>jW-cH`u?x8K)=#L*7rxF8WuQ%DUG6`jIR8j%5sBGTo(WyY>2=BEx ?)VKhUnpcA49{_OmN)~Je7;?{D5Rb7D?08s`vxUFFm(@_SQ)b@-aA2)QEA&v3h!&fV7;cI}b3-YZcgr j0Tyfc%`7XmT!A8n1ZIXUN4ORenV!hy^S!)~~YY4m|w;*+;QF7iG+qOtnDAzqJ(-YB q;XzSU$pTJ-7^Co)1hI2hBOO3r~L3N1KE8lkf6?1%p184tb}YDC+!1n|g&nGcr?$PnqHe3IFQ)gZ0PxQj0(+v&qu(6@>9Ug 6L)s5Qv?bTxf5OT7mYsQ25)B2^leK#M2FjKMSkazAm*z_#8H--oK!&<$eEyHpFNU8@*Dgi{AucCS^+= =fxZ)>$v_(QJ_h90{sec;Xrw-2z$=kU<(JTMKLwPqaCSyi=pRIm2m1KM;?=)nT^sf4kq!~<3#`ckce& XvOki!hl4bfmxKGsSvVry9E5jfo@46rMV!&SbiO2Y=X8crdSq38CJi#Dh`EE|WK;etfLDt&MFGb)3a9 ab2&~8d2!sc0GT9jW**mgur9yG`QSHi_zmNu=i65IIHS4jB>JGAxcK_4S-H9-hP=!l$g%#4(>f4*st0iST~o3ZD~bF!k%pAOVUx4s@~(@>=1e$vc&f?AT*Ht^pZ{n)%c Y;EHW+5nEw^>u2DPOYInNY#353OTN}8-MIQ2!ybUE2eVMN`qff&5FMF-NCR0jJ9w5xJAbA!JZ=1QY-O00;nP0YzL303XZ20ssIr1pojX0001RX>c!Jc4cm4Z*nhid1q~9Zgg`mOi4pUP E$p#Qq7LqFc7}`DMmdlRZ3SJdT383F~m}cQ`>=Z42fARL5vc^YTv$Nm({XurCxf<#N+w?#;H5M4EE{Z ;h~+t?D6r-r`h9d2D=yV2Lpo{&!+YEYM{CJgBwP87>xm1>s&|$dwVpKDWS(BM3ga1nBi)=DIwBycJzb YUA%QYG<^q`(SYq?beEwu@nmQFW_W?U8%|>a&(kOPOqelb2L5Tsc*|}?I-6A3Yz4Nv;33lxWN5 l#c_hfzdn-U~!kBvQdM3=PGoT&tOnHF`%%Vh!x0Hx5R;47~2nifeU{c{Y&0#;0>IsVc)FSy=Dz6IB1;93YtC{$E xp4J7GP}Q;$ib1fIag`R7uUIxkc4P#$W~By|)1r9ql88;oWRQMu5#|gEPUi&+MA2l%B};X1^H!x89Lg &aqAHehEHDd(UZ~tAH%!I8*LVq=kkJ)gqP2&AB!VkRYspqYGRC0lxzb$Mn!!?tEat43T=SHvZ%_yo!> ScaNJce{#0Y^&VH@jtt$56gmzqggSDK4*g6rL2DyWg-Xcog2Ww45GgbBF~pdo{peFB@D;kgWX#-wP7K w)C3zQ2Zi7@#I^9-(B*f-hN_vd|R)Wy2Ml;HtO^7kH$_@6aWAK2modQMO=-Nl^pW~005^8001BW003}la4%nWWo~3|axZXsXKiI}baO9 XUukY>bYEXCaCyB}+iu%N5PjEIOq~Zw1x=?0TA%{_kho55z_}n+ivmRgVp)CYxA*KWNnP TkFGU3iptQSZ&di)S%d@ky5#jS;x2joL6Mp>NeMU!1Bn=5NJ7vWat>tQ6;cKN@Q7iI|STSw2w3Zb~g+ q4Ts5Bzn*?4xvinYu?!(dHiqvNuu$Qkw!qN->kRbi+p$uyk<6K_VoI0;zk{YB%JhT)jk{kWb@m>ui4_@dYwqSncR`{`NkhdokzV68boQlhDJjKPRC#vPP %?MnkMn<_~xGJvCr?DzDx>+>zl=j#bX4BOrq+oDs{4eK$oYE4H6kQZY)>RN-(~s^n4&-E&XVG%NvPz3 &)5LVK^Zkg9a~=9}2O`I;#kBwP#Q)dnn;ud{_GAeFI5C$QK`yQVBdopy`v|3Us&R|P+2Stn@_SUit9> qY>jOGX|XHO}o=R(HUL$k97I+X-TL`;QN4guzI#GCZT#4?o5A`@8F#cMmr~MV$!K(HVT9)J;vYL8F7p9;}8Y@7^c $dS}_(y&sJhi$~T5LS8KBipH1ecR!|=WBgq-d6Yz4fSjy$xpkTg%TIRfkD|C?_4jebPveBf@q~XGnmY btG#V9L61GhIh$jAt^)y!btaGn>exl4TXR(F85?R=o(WG|9(h?G*>^}Y#S_>sk!(lHZ7=qKV984tI5V U}?u+0XwO6l5Z9mXL6vbPw8$;iP!N;yVKS8NyY#AKSKNBpeb4YKHCeRjz6kBs;!=ho7E*Yb_ljozPqL AUI*G!`xj&w#smC+z*G#)8;zI&2ReY-O9GPpW8i+UqV2(fiJR8J5knr;%mx=H81SoptJQdovr{mNGg$#~xPCsMSSf9ElF`kZ&!gZpFf||toCf!f#*~0K jS@G4oM)7p!>)P(%I+(3O21B}nQn`c=73WJQD_nC&4Sf@!U=rgl+e;sJ`6uT#aOoaHcoAiq`TN-e)Qroym?nW2X46%EBfM_8zr&#}X_ I)BZhZ%3ymb&f3Ya@*Ho+FYqIXEix2ofRA`TW+w*V)=FrWf@a?q$TZj7ct0N6rkR!F)tAjk-w)%((9d IUXyq$e^sh&eqW69)5O-H#{A>-YehD|3>>7b6`-`5%UQFR^a02Tgrpt`7?R>}(&b4^aO$-dzozo$v#K |J{@im&M@)@s(*mQtI6Mxin!C>c+(PiSr7t64miLZs}C+U)fUsHjCCQ;SDBOf99(eCoIPF1B^R@_h*h mb~5Ygbb7HpM|?W^2T)4`1QY-O00;nP0YzMHox~980001C0RR9X0001RX>c!Jc4cm4Z*nhid1q~9Zgg `mUteuuX>MO%E^v8WPrGizFbv%F6@;f4XavVVJ9ul-01eU?>UNeLo3RC04@hhfE&cY&cA6oa$m89Smm ~>;ST=MDHF++Cs-+fULVs_IP4H`EKxDfB)<{ioG!ClD2I`H5rMkLR6`vJFV{CA;>#2ave+zk*JuLGqz lTEr>JdIJIv}jo9e6}|{Qi1=|19}zGsp(D#{$;n)4YG#ZMJXac6y;js^#E0OJXV}l{JpQ2hWbq#HXa? ;)J?2j$h+8svV?8xRA%}jKyHZbT4W-o+T|td@)Y7>rQFP@Z6v!*kd@D+O<1P=-iK`8`&yle^5&U1QY- O00;nP0YzNLV|*r+0ssKE1^@sb0001RX>c!Jc4cm4Z*nhid1q~9Zgg`mV{dMAZ){~QaCxOv+iuf95Pk Poj8>}bG-bc4pRu5C_!Rma7!G%! iTSxk%6$e;pjhSl@^&r4k~Mhzw(>2p|f%E#%N*!boh(jIGu(gxgw#k?)VsM*ip$7A43v!pABrNTlfia zuFf<@4JQpB{!bOu{1MIfn4+;kEU@yT84A|8NIOkwJ`-vLqimMBT!{Jc1h_Uw6S`qSQ#lm@C7NpH`d@ GSz-ks~P4fjZHKAK+dnOFRreAKdsplvJgq!hWJ6+@RyYF4&NW`ow=kuRxRoH&-ea<$CxFIV+U}t2P~9 x({Wzzo#Oiu@>tg$(`+*{qtSQQVQ91=15me(^=FkKaxIjYB;rv^i=;p@F#T>FlG2qL4b_OKq}-BeNv2 MshuKMD#@nQ_YL(C`O_>$Q4Pc`B_Jnv }Mw8r5p&2}=o_z^;Wb)ITBK*jL)FXOKJS-$0<|fJwWQfeKU)uc}(b=`5L}NlP$WY3uW<`ZAP7#-Y2m7 2E*X6M9CNZLl1u$F!5js10PQ>eV3iIU1DmoGr~O_o$RvCnBkS7}Z~3KG(ka93Gim1GV+20Pzd;$wi8w Bd|pwF%Lth8L`FL!*!^{ni{~VQBRGm8+72d9hw=rc}s_&zES%&hJH_suUe4$D(dn@BK0Oujn0;)=t&r ;A>CN{EC`L__T8|FZ;3;?-6D@Y+e+6Ya;LoprTI{W3Bt4BACjCtn?!ZwKXc5U%h9y;`9#O~8d4FvZnI 2(rMYGm-G*uQ*L8>A1mm71^qk*NO9KQH000080A>M2Tz2tUS^NS30Cooe03HAU0B~t=FJE?LZe(wAFK ~HhZDnqBb1!CTY;+}JN?bv39Z{g+cfuF<>(NpWas5UVvuy9_QHk6a0?1EB!3N$HqFOmlBO+@xx^xG&f<_ksK @>e0?Ql H`i%TW3Z{qOZ0ZgoM&`)@Sr(jNISakfq$C%DBczV_5{XyG)7h#scdRQyl@u92$(_iI*)}7QDyQZeVt7 ow%6Ma#CHO!4X}*ixsS16ta4Mv*dm23wYD)tTs(PL#$)?jX3p5gaOcr$$D@7 r*Dp&_CM&tt;Nu@lGMQsow;ONl#=;+osy1}%<5-2q(44)f5;9`Y(8%ojo*FuNXk{j9VHgW~ot*qHk$p +RHFaS)4G^KhUJ-l*qPQKhJ85pa-G%wJQql_7b28B;@_&xn_F_ZOJTrj~;v%=JY|6!`dVlZdtn2G;gV 51UeR)XW{y#zoGX0)ujjXs4882xkd2|grNJK|kO(UI(;MN7z&{#9KgoK%{ls>T)*oE^haYO;NG_d2^H LEuqTJLDmybAX;6`uQI@$A%P%w^43KPn&8izjz4XdAZ%HnOdA7=U|RFH`bnuJ3G=kMu9Gq|K8;F0|eG E2{6*vTi?K+pw;JF0trnM2TxB(K<>Lkb045Ot03iSX0B~t=FJE?LZe(w AFK~HhZDnqBb1!CZa&2LBbY*fbaCwziTW{Mo6n^)wAlwHzg)I~vHVnoxAk7-IK-UgSieV@MiQbRzs`diB}<{5*s@pGzl7)S-d?_bf BhQmvPyU^71&%t01Mf6#(GwoN|bJ~sI6&PC%b%iFLY&Wo}%l$R4m>;2*2AKqjskA{~_Z1Q3*E{qLbbJ xYN89i^XoomD=stIs24d4UlBFi^ZZ6HQOm;?)okWt?2t~OA*SNNhh`QT$k|)#OZB(j2|m}Z}n57QO{y >hfcsIrGh0tg05xE@}<%D!UE`=d2=UF$^!iG2h#A_#|$Q6$6RB2Rk4QO3kFA4?t2el!2L$34zi*|>7_ nkO52>>G{One!L49Uwo-9R+9Bhmu~xXw=n4h4r1R~TQ3@hjTW vP?T=io6)$3eIV6OWg617wUjeJ$+Pt&uKYt|v|KqYB3;Op3(I6fF#0TPEkGJU`Sa&G(51ItLmg;HZJf oxfd&f`_6u|0RP9MndOMM23fio_GZJrDqG^bUB09_=A#m|=t)N`|v*y5jmhVV|T|z*F8UsMlruwLHt& d*e}6g#|0}LyiuO28C^<<|ey#}8K0i>LC@K-pUdE)6Pt-CP|l^Qbz)V(-YHKmh1`*?F&*hH+_)MkJha1ou_(Nr=tV$PEj`?zQ~87YsboUe*#BNYsgi8Z*bjv>3F^3x{SDC&lYflD(r=TKBr#7CDZIbUTf Tvm$sITOW?8+Y@fq8ss1)9ZBoxT{ufUkdO(f^T4}7%VZJ2Mrcjdmm+Zon^V$C`~n`4*-6QowkE2 LQ^09tH|EGCgTl06B7QkLz97BqTOqw98Q%z@94rIuMnN)QY( C8sxZCMp31!l`w*@1z%t8&UDr!btrhwpn2{6UX>aObe}w57h(;s5-#Y<)0}dN_%TV~Hfo&94S+*jOFR !lykH`HjjyP7lx%u^7+Fy#ZI1z&H;%VKn0)7>b`*jOA*5QrjAhZafU}28trVXhQz=4W(fG|&S`>%jCK m%-qB?rYgYNHuyL(J$o5TGRJIlV|G8Mttc9>8 ZE-p}H0tD_GblLS8e-P7Y~)fvBXWqg5eIFlgzgPw#RmVaj0%dvE=Fp?ge1=so`^Ng3vMZ5Heo9 UP1Mo07B&`iCN3qch|U!gz^}$Z6H5ovhFhvNiZ$keiO;Nxcg-;Cm3CaTk*J#I6P+sT9F-LO)Tk3e bM?(tpj4-CuB1cqDZ@dY^#9eOpharWuE+trYO$LR~rnWEkGnnXmkI+?pTlkuen;zy9NDbum(MuG!wLjr)K;60TMt+tJDl{;8zLXzziS4p!_20hu!F7!V 6`y3O9cZ47mKGa-|%ShFHlPZ1QY-O00;nP0YzL_3Wi*XB>(^wiU0r|0001RX>c!Jc4cm4Z*nhid1q~9 Zgg`mY-M<5axQRr?LBF48%LJk{VOUK3^pB#mYf3v?kEGtadwRL5ybXP7P3G#*+r?>&2CN~mN-WCx9_{ ^>VuS=WOuRH2I5fcs#mXGy?S>Q@87?FPrg K#rk7XsOg%Lp)#HL(dS)jHlxRHe0g^6u?lU;q4O%3!i|rSnS9)c0?G;P)?{KY jM<%`>$wN|oq3PBR$uKA?Rs-E51pR;4zds$FG1*6BvyySFZjjoPN$>HMS4lcJp3X|B_(hDk{4c)QJZb N;THs2}OW!QPeWeyMBeJYVkSc??4j_pOT$IyXI^m1R**)LVU1PtB0B-J8$jESt~OnK~c6K#mzr)aYk?Z~uCBQv*Dmgx~(4GkqD?X?`hR5vKAmsHa6<1Ie&;ny<1Z(fk qUm(sV(-DO!c+X_E76@bDI^;KH6pe1@8HyL%gF3N=3XKAkIr5;_}yC)xE4yB&1ip@67bTpbi{LA}%G= ?ea9Owhk=bLzo6OERm_cwa|{${y^|JF2my*~caXdDd74>evxy=;Sr=nRm0k>HoCqlk|>Ke%OqAeGj%dO0gBussi0_)UczRLYGB>*j0U|gqUJ3u gM$7sw~d>+*ul|h0&z{J#ip6l!RJld>a)8n?Cs3izE_#+XV@k!Te+Kep-K^K WN-G@|2;K&m3%o4msYxaFl_W#hMP`_hwKou8IjEpca|5&!~wIR)^V01fp6adWWB~A?$CwCn1>yEnr%RBAs5^M GSI64g6urn<0c`gm>{cKom*WMO_uP2)YpZIlLS_<0G{;LXEsRGrp#`S6>Q=PK+jKyAWI#N0vFRSTNtLW#I54JL~P43=*5Y_YI{;0=BQAY;@j1hX!|;=w;aDxf;56lr6Gp61)8R* {J4nR;6`dOY=E1AZOgjC0Qb*VgW64PgPep?(B`;l=`s4UC3hA}>MsDf|||fCzTzg2D$`oz@_#&6GM*U >)HEFp~ZsOUdefqI$?bU#rU$OdX=nWvOE{ 6=9@YolKOz*%H~H7cy+$LY#P%VFRHD_(W|QkaF>Po1peeYb0S_fPl?lG70dld2eA!PdA6fVnjCJXaNd@x{5)=)BqY$1+cvP_*)AnOP6I_?z}0auswl&bz;a1E8QjVYamJqI; tY5{u&@8qJ7I2I0A-lfW}CCRjjEW@z(@b_^R2&`7shMUcy9y12@!*TA!&`MXoKFCkicWgaN{~1T(wI( |E#qalG0p|Igf3O&k>CmJTK8_Xpmm?V76H2o48(G EkFj=z}dN=L|;1HCW{VC20mAAz~G-S721brPcxb8|!FQl%RZI{y7N;oUV>#<^~EfhXM<&+!@w^S^f3x%NHcYV(_?O+kzys=AT&^8P&j9EZ#qyUe%in_l viX9&gPLuF}irFQ1V)Td}Dpg!WkJgJ6U_6z_OSaTVJ+IRe{uRRx)DYN=*SUj-h5+tdbY3kSqN6eT99F=#u+ =o`GGi!K#!5_Awzq+urC>o>6VWqfo>(f9+K`sGhh~ArQx#3Qq5uwh2|MtTbNBxCgq8;zPza<%LYx^ir =W(Sk@+6u2cvPjE0JP4IFvUtq6e4*h6c0*Ff9Z3hnI`T%Uz+!0(^LmESW`j#Z#${8%W*$$l0mxaD wZ@OcxETrpBdVRn8Gi(um_`D~S327oIThC&lw7={zA0>u`LvfOiC$(NmR#X$SzLJShwUP13$&C5Kvpu 0dwL^r_IHOC(4P(V5P&h;hXI%t{RoKREZrr}==GNO(D|e@vY56lJ~H1UAF=g$%Z|)_2tchcd{u~DAtLZ1|G@p~Kn$ Iz81Ok0N|CL$wlMnNY^4IT17OnRiZrD-iND$``*EDZ~S+)<=G3T2&vT>yB;l?&s6c3YD 01f6cYH-T$`$hZ@HXZ%|WEZuB$f>FS1C$Rv}(r_R=^V`>tZ>{>pfaszVYOW>Jd|k%diuufF0MMD97Dp Nac13A)Y}{JBC`SS!g8(sM;TDTkR(YQ2HZFm?kQa@mVAhBtQaGs)CGqG(H-ACP2}|^R-46onk>!7&d% !4H3MD!C2Wml5-{F(iBVMKoT~}DLvlPWF}=WVN}@*07Sa>ADF8vy{&y9xbnJx{yhV}Eflz$I9D^YC9;u{pq+c6b)OL!&KQ =JV3HqtG9jni!y<8dRoC0uqelW{y4E^@onL|GD$2`8V31HN-GO-oSPIzbS-jFctYDrc@b8Bnihx8VQ WQ;|!0zSfU^_DC&B0&=yoluKM;|Z)w9Wc(V3PLm`Rw%M@z)n)9Qj|7lO(vtUf=1zecuZ%q=Yy9mJv&q s3d^7FNMq4M@3(J)`05n0@dn8Y@`bmjvZ;8X=uc@_hP%Gs>e$r*dAdxAY;fTdml1q%aoxy JMrD7o0ga-Y|pb?sS?6r{nlc7~Noe#DmgP~^dceR{3z+%v0m$@cCV45x^uhT+QzTU6r(#;QT0i1AJJ4 4%FEij13VH&MHyQAv@HfQ2>Z1q#V!u>R*+bFf_!H4X_32)W=}7-8yWFvIMng%a6-(?q!xBF!6QagmQF F6OmMb(T~Fg;%rXWVmIXH@QuX0;MM=nxZL%ljs|aFqQ@QR*CQJ05u&?EN~esHd_`Lj1b?1-=ompXpr! ET5XhBQ9~2h0Sd JYX!8)g34rrW*=s)YMr~Wfj)JX#h3Oj9zD4}?B=CCquTHfJH|^Wj!EA<{g5C`+?(P1K=WjUAp^S)?Ca Q1$)eYW+5Vh*;BKo(lR*T~i98<@-5&j#|voUn_ M3n__o4m@|G>Kg@MWpeMWLQy_3Tb&sn|c-JunWcX@>4JbL=v&_8W#N;EI5`piv?9nQV;`Kj`lOBlpGv H$-$77dV6K_MYhZVvmTrs1Ash-ZM^z`h;w!tooZY9+FMB$1h?ln@?0>Vo9WmuP`YROOzJ)Rf@HM)91z &19>{1YN)---ox*PhJ2FDpfj`-|w+h|gb@MM9VBeAq=#lfZz#r443731J*$liG?$Hg|rY(UQPWKM-6^ &6=FqRr!0St{CG6PVdKKF?ieW0XTRTB_Z25P!>Z|`^+hcv`&h-0 }#272mGNH{|~LCMFJ}$kJRz+`T#&zm`oa|Td#cY$cj@*qem2RqA<=b1Cw-S61`_>4(cdPj%{(G5wg$o 1hdRqDj7J+*iO%@vdK*GR}6|BLDBobHZBJ$M{UcUH|-mjo^xXkSW0*4`Fm-@9k Po>`ot@j)7yX@II+qMa6z7XNJGnwc7KJV#qYKri=I39mA+gdT#@V_9m2Q&aCDuNK3;jfG>6O$)NRZfOqzwgP@s1CxHL{aB;+!pH&&_PTpaV?L~v}t%?sm6e7HWi3tp-P2MQ#Kj+xr7X}JjH>}5UY#RVP!K`$&kqCx3I62JA-GBo7xfTy>Svq@cS4wnALFajKyARLKFJ@oIUSMWJPaQ%$R)%<49(GCuK+5&*9m`;PNsOVp6Q<&ilso ENK?@*^2eu@C2&(05X E#G0nXj_OD3L593`R6j+*gw@uqm|d)mXz)I-Kz5aL{d*?AFUglxF_+R_Om6)rWMWIZATC9V^6-HKtxf h3rQlv&K|8jp1n)g(yx<<*NXXM%Zvf1|A*}0w<8_%nOh;ShR?w0wK?htYnt8W!1uwVLTyV&SQWGxYk+ bju*Dh4n3Zp^ti%pPpQ^zABhL#6SU5|rE|v-pSvCp6U$WAXB7O-xSOr`smnO8@MH=VrgOnL^5n*zR-= >I-cbnzn(vGPBWS;6!USM~H9qU~<_u|HHEaIZCIe%B#$Cc!+#TNWhZgw=AkvRM1hK~fkH{WJkKD)>Np D1ptv8T6Z0mF~9cdmqYx~mHnc=>5ohG79#GqlVb&*So3xnpYf9jME7WDY)CP77$< `@Khg#WFx__FG9CG`KvCbpy!?6S#X+-6kIjr$R6yFpauHK$cM72=(SXcc98Hie8Hu(n$uWXCi9Kh;fi +-C2{eK3#llo+^Y=7by1oIdWIDo^Atv%?Gy9=AislHrGbC5keXf@pI}19Q)UdDbHy0b$r=ksPS2TOcN 6AAX_^UzER&+Vr6pJygIL6suR4LQ|lj(Hp* _{4j>UCn5;QcL#zxg|8ZV`-~w10Tcvw&7%a8)lHme2WusTc}OJhrn}O_MXjs*ENaKzI_aWb2vm~JBYb BFu{D?CK2&ZCL=v ?NN&UG7AI+;T8cU|E}^-zI~x!YYnp-3RJ)>RCJ(2ckp74OSIyIm}2N6MP19v8VrIzrQSb)e?U$CHmRq 5YM-V8lF+2f>m`EA%d9hw+4sU#U%gzo3KV=i%%%=;Mtn{*1Jz6vQ3SgLf$ND6DMIX^UabGTM$c!)ijv%mfDG&yAq4nEQ}e;Oz`tRc8Rr7m_nVx_Ly>28b3VzKfI5|`u*GFIDB9 AW08#ijQ=ed%U+hUOwK>HJuX%{pRE?8SVV>#phTvgN)fFh0 m3y@~@u@eV?gvIyImnd?79q-MVGItJKuo?aN&JBOT+ -IA`iJ9CaDBS{GWi=)SjUwBxB{F&hzirxMOteX98}t-`AqXVpK*i@vU0!OVmx+lq|YV#aWxUb_OpIr*KRK9UTn)cjKYvpef=jv$J7_KsEr2lS?RiIS_-c?hcDp%2j&dJ@EmUvMs Rd*au0+bE=HC$HFs>YoD)D~#Fs#iCME6+xiH#q&*B%;&SVfFNrQ-XeR<=X^ScM*$1;)2 }UwVt3AjGR1t24FH+aU+sEs+CfdpEzgWNqEKX4pU_m+uKnKAN=NF|bU6i*8uIh;SD<}*DST$lJPBN`Q ZPxf-2k{m>#e#;1N^~zpn?}sU!6y`W}q`@1v*i@6*UdIq^%ojkb8|Fu^P? og4TC`V4@xhl%l41vIZ@#fkdgkNeLgis17cSs-eE%b`=2_{dQ6Jh?GIrc@ao8H=;Gs~87P>F+73=rih C!y|8dQ*k);cIvmHdS>H*Q~FmJn>1M;Yx=$Sa_2AtST0Eiq-djCi6RG;?U9fE#WGvt+(TsMeg5)vc%k -? n{d_uFsy9O6FprH^a(L|4m@n$K5s-LF?A$@M5n%LsUG(-<0MH`n#I&W7Xm-)}}?>4TU}Bjet&CSY0LW 9c|UE7T;mfe9z#y-)$A*60mls)i@WDrAng$iPIZ5g+ci2AO@)=VS8eE@L|Gdd{?Vma%^c8DldY{HtTi ViFEtgjU&j++9n)c6N9Hdop2>q_*4@v|*O4l^dgb!%4w%u7fyk-DEupr(?eF)xQ+(4R&%hLGTK>#89y +q?EB}_}pBPiz<|Rzr5@z7x~I@qV~w`;$OTLkYYl7g&8_^_GHOWXXx_-8+uen^77q_x6fZZfAvgmx04 VP_|W!^yFHDsI>MXF<+7qwB15YW4)>{gjvImx42nes@8wE6cc)w!;^V>_J~`;sEpcCWKJq?=NScyrz^ LbaGc7y2bjA1ZEj~#}(M+A21f6&E$~j>ZHJwf`=-*%EatsGUI)sZDKrso# o8BT(pQMANiDuDF>u0cyg~q6R*dN#q0BqoH*1_N7@_zq(~Au*}uHfyDQU>8LzIS?|dEHjT{UeADi&fo S72B@jz(d4JeA5&hycw@l*@rpU9^2e?E@wg$nSxWPt8Ygr+QGWheT#;+``C7mLNX7Xhx3au$Ri!SQQ9 Yy%eSG|m|ZZ0L`1*uYZF!aH{z&yPXxYRcitu^K7K~~%wr)zI)NNaI_xmpKi+UrUT)M5w 4{QGOwrTJYd`2B|q+yFf{(TypN8|*l2DTiP=!ov0L%$}Qmpi(U770UHY(OZDq5ap<&1ozSJ_Nm(T69f _Wq-1*rtqv7w4D_QDI+mly>bo`v?|WQFa(0JT**tvd#=!!P17k_>Ioyc18T=5d9T;mL7Z0vGh{6M_eg r(b<*eBU3>n3E4ggIIo4D_)$zfO#@Mr>ih3;Q57tZ5#-#Hk~e9s#UXMUC705HD19K34rhWl%y{RhR(v T_6fjyh{I+2KV`RS~C9@l?vx3VpuZhs8}zeCZH|9n2L9-c|7m?5YJ0R1!z>lnIO=m5t%s5k%V -XhhH_mTQLU;RpM71>(IA6aJPDGyJ-H?h=I76|e+!K1}Ju*5J2NY}C4t8b22=3Y_lrW*koj8w^GNavt 5xD4!lzGrEVaBDt${Q{FC7=<#EQ1{U`IY4S-Y8XT2&I@y>pQnEPpR%Hhfrk2^vh0*``On@+syCwipq3 @(pla?N&0JJx&vy2&0kd83TRifMRP6(}cz3WagZmk;3OsNrmrR&@M)0WH;q$lF?lRUeXWe04+9^t|A| 5)D%ccqZ8-5LN;A{MsE+NhNq6B0&9N~n+^vxD8<^$pVFUOtxh?%h@U{N{_^X9Yn!1y}&b+71?odpPxi Ck$5SbKlbSn&6FWS66RlFH9gv=_)b;ZLh0zj3i*6zswk6x-E&BHpF2g2g)M!^m<8?4GRh=Xo)v6U8C~ ID0bkJ0muWBtP6Ib3-Em)bgHW+&;HOt`}PQd~cprjlu0;Etz#sLWOf%3DXtoJc0~2SE3KvsYzty}f6Jk9T@#k3)pdZ}7wTsPG}H5Q%gLmj-k#U!T^8w&WsWro_7D$!vcsL2Z8nnd SaF=f4n1RH8%gq@Lo5}kny*=Vs=d59Wzwz?YDR2JGy0Pj1S&BCcb{l5%??nY4+C_?C*!6&NT;`IPqIi ZWoh#c#UDqKl@WP%it$aG0|d%G+9CW3ugAFN;!aIFNkGR{25-m0|59X_BPjDx?*>R&P8^{iL?XD-Ilp r%E6Tsa^EN4gdo`)a4=*H>TB*y@b3NK=`#K{&E*3$ZD0TJdPdjC=jQk8DDH<*lJFjj;F>?2nYTDB$bx +yQcB@LEbu1UU4%j2)W!BW5({5B7<8++>tet649S*r!~Q5w4Q83K>1wN^0am8h=riC&w35K*Wvcn^&o 1Hl>d|YA8Sw#iMo9YF=E2W<3dUYew{;^x+sQaGXN3(BrsB6EJpWQt+bp;c$4s@i0L;-Lwci(6k_Oo>l NDw9V4y6O+qXWF)~4lb)oE_FA7lItqL1eYZpIZ_$0`j41Idq|c;77#amYs%X3SYAMz^!_&T)-bQ 61JO5O*wp$AKb_dGaf{w+xrkkrd^1WP}veDBwwFayxp!b&;H%xU>c?;W1;h&q_2t9V_tYwXFC`e!ys| F^ZAS>^k-pP+P7cn!>hb+g%7Q+iN5_*7HcY#YF(NzR2>#xn$Xi5<7FBCE>LBzut+!jD; Mix`dcqR=)JFiZi(nzS70wIpz9>~+Jf*t3I0wll-O%@%ViVX!Q3`s*Qw{{x$NNfdpUxYa50&?C&As45 ME18@uoRma};?|WH2P*|7X>%nr`A7`YC`mORNj;kk5LKfoe46r?5rL9W17}7)BpY)cMIoolH+!UP*m| rfa&+mWxaS@qTro#I{Iy+V48soVR)7Z1{94Ut`QR>XcJM t7?3pIy_52Hk;Ips>CC?Z+3Eu(U5e#N7CkH;t7Z;HS}zbf*6G(Mkw`^}!Cb6`-Mo}8Shhp0KsC-q3>g Mk3#CB^|ZXoSB>JRYNVl6jdEF5{swKj__A7H^hGtZruN=G^=!Lcmdj7?+tVZfV3(IKWCk`hr1vYWWjypJ VQ70T@P@ZZ3{-z4 h6pQc~0`ClA0*)x&<0#Hi>1QY-O00;nP0YzNpxSehA0RRB)0{{RZ0001RX>c!Jc4cm4Z*nhid1q~9Zg g`mZEs{{Y-w&~E^v8$QekV`FcAH&UvXp~Vt0v2!n%Q}7uqhc!Dvgp?Ms>&B|awtOZFtC)G+qjdzNZ1Y 1auX$+~y%J)Lea7%-qwH(QCynn+eTmO`OB{quY;$ht)6z)*8-P(!fh26Lzs@pZ8<@=5Wgsv9k~ I~&7gw}shc@_sy<%uZq5fZZY7JQ)FtT#mpX!uj`apRaGz$kUW!gUVnG7wIP-|N7-}ag{Ehs5IngxhPG <26Qn-E-P(8BV$>{%QDL#f#q)+SB$aFccziR8lz1mYXS#)I2<|)!90e00l# UIG~)w=?reFMd|b`pE@7{d#yl5TV3tzVEVeAuTntE2qb@S`X)IIJ =fr=mC_AY?kPRoJxk}s09SdZ*w=&nRMbSm5O%Nf=!njzB`sTI>QY#D5cr$4+^zwI^1$VI8jpK#?ay>| bX8({t&nZA_E7Rf=)b84m7=8=7p=19YKuXyI)d@E{lfT=O~4tHsGN)mUl9M_msyHcc$D%lf6qL!ga0c kFna`0O9KQH000080A>M2Tz?LYa(n^+0AmLL03HAU0B~t=FJE?LZe(wAFK~HhZDnqBb1!ggb!TaAE^v 9RQ&Df)Fc5yvuQ;&>sKhcxwP}mQ1M8@U#GnEut*WZXBnMb?oX9qVy!5y4Vy7WMOV??BI^UhY`|i7Qqt WnyPL{6{lt%lR*sQp;zK6r(S?5ie2rd!0G^my=Lf^#&?ogFM9R$uZf(nZR#>H$TMn{`+q@jD(t6iKT*7O`q5T#k J_-btexOz09+v$9K+wF8ez#_LIRC{EQCGA2w=>M31n@nfEgAqI;;V^(Nv#%~b8eR>?vw_tyM#H$!zSp 1yUaB+!o@A*qf-n4pVlgwUbODu7d6=cNs@n5LgP((GI2g~Tx8coXIG$5K&7<9Hde@Wb_x^l-CUd`NO> Z{89Sxq%bR#0n;pi-&Rgv;Mk9G$*UBWu`)=H(DER-z4i@<7R9hyK6(k^U_FJa9z5mfG-ZbMU}z{oVq* Ts1QW8CilFj+JhvrZ*k`tLiyWDF9wH1prY%r0@dEXG#@sB{l2-4`tSRXF`BO`+K+SrYag567!l>&m91 prP0BCnBc$6~#7zDMV_V<=2MA#=sV-wF1K&z2y!_vNooiqljw=zDQZzdaCYzD_>Ll$!$MZ-?jcXgxvDKhRn%l`aeX<@AWEKPCo 3vQ27H;O9KQH000080A>M2T#cpx15E?~000aC03ZMW0B~t=FJE?LZe(wAFK~HhZDnqBb1!mbXJvSAaC 9zkd5u<0kJ~m7z3W#Dya!5aTd)^s4+5OUcI%=6(ll6aPqJ&sHf^)j7f5;&2SI;(XGlucN^-J3BwBJl- n@AnaxfTpfWPv5$at<*DEWbZDN1ct|7-s|v;2@lk{${v^f3c{Of(#L&Sj#x0(2Fb_{w)+BH_xukdP&M dldNr(t`dGN~7i81WScR*A$eNXrMxyBH9+^S&G9^NAOsE!rf%@^Z0IZ_Y-W+n3%&S2OBg`vJoiG;o-0 6-~W7Cgf>hnwmernf?pQD+WimjALkzza|3I~bs|#CIY1gbk(Gtih}+xCBE$c|t#GwXO1E05uuSx^+S( RbR^+ARd-25@P&v9NQdOB8WN|7tXXjoLPng=3|)$p`;x`Wc=`8oxg 0N7D;9Xay?EMfL1Z|QT%TkPEM_o-I%lX(8$V65% `Sl~0=8Vzb`~1+elP;Y!hZ^p*TDkZW-I3MnP#uC`D>A*6nxjs5fz-T%S7_rrAMltEP}*(Sp^w|pjwjr ?4$r9H$7I!6UvE1gPN&zGH}Y>riJ1*19EXmhmm%`0tQGnW5)CbO7zuGgOj|JegmPg5_`yt+Q@=#db9C 6GO%*yd(CQ#idnm|7ZMTAszC8%RfSJ^UJ(?)YzEW*Bt@Q{Ve0%lSsIlNokD$+k{Z(>rCF2N?@wmYI_7 y+>ht$AUTJtdjaH}?|2|>?Eb9pLL%H0uer!aD!``MNJEdBbDMvQ=m;_z%d2ck1B62FPebCTq6uFOAjU r4p8Y?sb6sfG!>SmwXkUD9?q(owNX!**9r#N;xUWB5@!6mC>2JjAZQvJIEK65xGFC4N0M-m>EoN_nHw D9lS=qXhfK(pslLuj(4AVXu%dI0~p_vA?f!iDQ@ecO6lF;>hdO7sf`)Lbt|e7)l3SA27hUfubQ##leZA$-yVRZ2*6vcQVgekkI>NtxV%t33fKW7 )CDo-)drWL~=OV2of1yLB;wTzVdoo#L<9LN_3Q;p|Eia6#3*&Yx=%vxQA&vISqWKP)KjO~bK|Yo>CJ5 caf~yp|E;WJlDewk!ZcnIG)VbpY#qQ>@Wr!=UU1*vpdaw{Y=Jl60Y#_qJX)p11eRR3{=Bkeoo;l0iGf Xub8>-vAYAzSOdpoEI=&GZkX(l>;2Tf95SKfL&T%y^EXRK}^e)c>d+#6~4wwJ^~ydWV|t9xZW)APcn1 YKB9ym64z4R1e8N9G1~kJ`}qp5e2=1HIvndfXb@cJEw*TU*Did5qlJO7IUnKDaS9tM)R$5)c4^+>0EO nqXm7Z}W)Ji^8d~Ii6hO-K@EKKa)(&oVHlJ{{c`-0|XQR000O8W&uT9i^34LfCK;l6bt|W9{>OVaA|N aUv_0~WN&gWaCv8KWo~qHFLPsIZf<3AE^v9(R!eW(HW0q=ub3Jzb{E(xhJp65r~^2$ixdcw!0VifLgG rZ5@U)KNGkTCXn%WWNWJ!vpgmS6XC$J{(bb!g7mSH4wT$lVfP^GMq %&-0TxSqfvs>@Ko=*0jj0io&}A!1bRmM0PY9m`nJ5qz0fpOxH_!;{5Voy{N_<6d?D>TIXJZQoz7jro7 ucXKz-SU7=aT(snFb|fc+($5{kGtSAaLXNNSB}Cv*@TGMgwtHxu)MW(UDq#U%8jIvZ@yQ-- L`z2n*X)6Fe9ww3iF~|ctOArVPe5@QRCb4|sbn;_kk{CwG9JRwWyxH7E{rlhE-hbHK!_HWu(hI3vGP| HQV6Lnu9%i#yu7q=NuZxenM`CyJ&}uJhytmfa?NMc>?AQXkjCwriLEQ-9MMi3-ssFZB%Ds Lr;DSawG)gNl%^9pvY&OMQy48eO8n@G&zshiMvJ!z4%TMAdBuS`LmNJ8o3{qBbL~BJ4jQhrBBm^L$zClWLL0LqI5S`9Whgwp$62}q7J6(I6oLkdafiT?kdx&0=9iJ#j#_E zK-XMR{3-J1e>#`GtQ(CUcgN_^;D56)TOUTPcI9$SsofWFRV{#kjUifP<2)qz>xS5R8UbtJ!w7|jfaZ Z1m`rV#Wd$uBJH1ljg>&-LJM2T+T}kv&{$q 04*N?03iSX0B~t=FJE?LZe(wAFK~HhZDnqBb1!pnXlZVEWq5QhaCzNXZExc?68`RAK^Rz2O1;`N_kzM WAF#J^dJ81G#U{NT;22s)qGNSsNhi{IIm7+!H^Uc+qU5ZL7P!L++r}b?GsEFC&y1w;cswF-RnPYuUPu v%YMm8N{7I_eUwYR_jbAG%0%E)nSy>QSl6zk8nn_OBR+bwkvxKB&vPHFU12W}`OkJJJTGNm)JD+5K8h$vgX#oSmNj`Ssc9*`LVWGm&dfelTtm$=PN?1n1=Kk2in+_~|;*YVs@r5 BZe*?fP8LU%r1g|8PA=^CabxWjWX!Ll{QcrYdVm#IqQUR&}{i?n{^_W~L}pF1k~ZfX(p@OCTQH%Kanb kC&N{o@m8tfjg{)w36pp%@dhDa4o8XAE9`pj5U_IkUWi*hWIg)>sV$o2WLj3tB>bDUe3=yz9Tb2DIG- -*_7!v=hG>91p@FN{KJ{i<@}%XPaVl5XF?c36|d{HGRHPts8Ka|k>%VBk!JAf{nebv=Sq#*_3mF~^5W {|x0>whe1G{>r5|AJz|xTtY+!RQw+GIuLi?)iC<*ig2V1Z?cSPMET d45o78~h^_x57s%*T;E`W-WP~TD`xxeBkv1P{h#@X;yU10IPM@*DMp9%%2jj4mF@z@xbydCDspxyRl_ @urY2yNn6cGJm84ppC~DTfVM^ISboT1)>2#mUPH~uGa1m^f`-7c<+e`vjJg^Ru$KauX3z+yzF6~xw7CRJ0ek6v$=0X?NUq_J|MQJ}M6 v1~&GvCO$Qh9{$wI>ucEI#}B}54+%iRD{9qm~-YU`gw;-_v9}-klX+Db4*7Aaws$E;8HoQt)@&e1ya} -PXis02dsItV>?Z9tG*{RjnU2bPAN6%ICL?Q(~uzi~zt9O7 nf)X}8E9Kqqjxdppk#3(MI(@xZlM-#^c9>Ju)xOEd$&ywaR@@TZDXG)tKH4=0yYC`lAGYDr2^-roxX`hgbhbHZ-I-WZOJ4&V#JyZA9 UJx(EZ{z<%g2SDUWN*4Fo5vVX#jwB1UxWwF9lO2hs#}`y+nGf0jx2o4NeRdd9Vb6xKPKgnGM_kVV5=V Y7*D?L2q(`9-t%t&Z?lh{RtU1ix=z{Ci~;YqQxu7METEKs7G37*bhv71bn+j7W3=PW^oyG-K^?4m~Lucc%pYUqZNzp?hHg5;!S9Gc$H9r5cL)o#q8!z{tkKeD~cwpb;gK D7j@EeZbyHZ;*tETPi^>|j`Q-bt|D<;=@cGm$~mk0FIsL;RK9vPQW{yUVU5&|XnWTmY&dN^#t$t_lJt gVp#aRu>S$DRF8SfCnOuD%R`)Ij4zqH11kzCcrbtobOF0;QS>kpcpqRCeVh$L*)Q#yGmQjDKz6L6!Wc IeMdch}Kpq1FnQhgk~P`Qf-;sp8(N~0g(Z(xudp^-a*ivkP!FvPbs_z0o@kTu)_i3g)u;j2ncmv=`M!eYhNZCtJ__K$q)Z_~GYrk^?`XexSv=_F!)45W{yW$jtj6YEvo=52waQAAj}DT@sEJe|V+)h>Wjz pi9OwGO2PvHAKgFOx5zW!E~kM@z%XREX4jzrr4keip_-;dcNpxY17RaOoZm`XI;Tgr`X?T`|xMPy5>K wDJk{!nVwqUZFU`Q{(ly!)=nMnR@OSipS?}s9bED%Z5c4%h1-sJ|bI=?|0|D4*tc~zbpNR#GK42xn`6>wUZ9o2?krza#No -%?zamZI7?Xg(*Xo%hFax27AoU%?G)OwS{oOmZnr{HF)T)7Y^yOyMd6jx}L+X6#FM2T$j#W8~Hx9 =QYB|W8tz^rUn vtK~S8_I;UY?#!&o0PfOVo;zZ`KS^G+d8KPAR$m>+ZKdzu!&_4QCNeb2=lRZf}hI_b)$x{(AeFBtnvy s*v$~(mMgSdx;cllCf+OJkc~3a#9AN#3M}!TW3Nla)*O4xxKsodUO5#Cb;|i+vnR}uTO4h5*A#Mb(m! =T@sOyFwNQX^D|L`eE;i}g79!8IY85vCVGZrx+EqepvIQ@wvvigCl6AO*=tF0%E{wKeX{;_;%5aMkdV&9}q)$>I*CF@p>M1P)z0gn1F% 7WcCarLd*b6#Ix&T$^Nz#q*6Obfrxt9hc=z>(qKqJ0ss^*mEu)MOfyNNP|=w5UA34p!J(RA;gZ`EMau-XLt {t*pyxfTdZhshp~z>r|s&uNUz!&&e$|>p!4z4%IfJqnYW~F-=GiK)D9Na2@4iU9V%Z2y+U9I8p#4_JK wZ?5I82uTpAYueLonZ8YAB79W;aTq+b|!IXIe<#n8O!^-Ab=N_CI40r924gobnipw^E=K-KvV#*s7=Z7ff(|htGIU_&m! 8?C&rU$(izs?dy*b$&5hSYbe!5oEBVmvn1X=`!Ro0-FR#6Nv0`=aE5KSsYxE?~I8(!p5XzzkXt1lA@rgvLSX$7QFvVK_=#(c *SlF6zl7$jl$e4T;DIK-cG#pf2yiN5nOxno#-Q_l}LT$T>HrKYg{kLw;2ZJ%0x<4FvKeShXu9QJ4Sh} K;sR5>`@;prA$~5|;w{Lsx+ceEJ@_yd2=qMD;UJCr^QVg062Z1dV7Ke+VUPL=`-|Y*erDVaiSEZ;Mk5 2~cqEo1|T%%hE9`9k&DZsu)-W^GpilZr~M^Z8s!U^CI<=NZ3d;{sReioo2IZNpw*7LWy`ZnGpyq(X^& 8up$oE_qPkDUG+v?Mv7-M9Nihpj7XOGpUgpuLNo_O6byr)|L*5cl%?EnU847IN4c93s4W3*lO%;t=77 eT2K3SE)VSmB~@{nzJuf=uOoQP{RVy33QJdMjUo>`m5KX6mr9%yWR^+ak-HK*kb9A@WoNW+>fw(s&tv %vFSHu=TWI1xFhMt&hm7155+EMS+7-MsbbX@}@pc0rc5nzi #%(;R3NoJnfQf|o(GI+6Db4V&cH&LPXyQNY#Fvw7l*(Z%8#SOetbngoci=2ncF|*J@LGbc2LxzIqod@tc4Cj64c&6b? X?#FXbLA>2?x!(-P$hPQ>+*LmQijukz?#o>RHCs=|mibb&XF6LJT!qB2VrqzWu+XTo$@ giCs=CoW-;%Z53O=@BrPr5soT0ey~m5o7fFcA@t_P)h>@6aWAK2modQMO;-Q$%TOj002@L0012T003} la4%nWWo~3|axZXsXKiI}baO9sZ);_4E^v9RSX*!7xD|fauOKoHbXu=4JHYnAzzmSvYzECFLF{%>3O >r$AR=H=Go@Uv;R0Q~W@-;gTju!FFE?{z0i?w$w@-^NNl3h{zcR@YqSGX$Oo54}+QN}YB?1=5DU@J93 5@leA}+emzP)PKDeQkeDHnlLASVojk3mV5y5L~@SdAsH)6qT8A`X?Ls#;_+0s8y8$O)xgbzYceIl*;4 mcy|8j{k=G3$p*!FqfdI_{gHiSjk0HWd2x2j2>ow9Tzyj>YqU6$r<|p|)@_wLO0X#6KnNUq^ZFIa!{^ yU6KT`p|0B6k3!=QOnEP2vixY)FY2R9tq!C%2+1KwFL{F$Jw^Yin8kFBJmh&diTkH;WoIgn=f7#3;I; =mbRV*m`j((t--$!Vad)s~``R$EMGno{%-rRT5>i}asL_yB}Vs1K)dKakaqYsdwO6(Pe4(Qss2t+b=x 29`n=B{xdy7;%P|(^-kY&v?0el%0yky1S(D4?T;v)HDCk)p$%P@^`Cq3> YH#%cA?+>_Ta?>>6;eHcWaGe!xcFd4maV@C<{SM3~kGGHK$pci;qdd Dp{jXG2DH+sjte0A~4JeyI#Yz6k53dT!c6ZjVlY3SjwZ=tq2R1d}jBeAflO-et==hoVjnr)<_ieSYN_ G2gBYA9PW?E*1lD(|KUh)9B$jrb!-A01uING}hevOv?&LwZKHT6bHC4U(j+9A5ber?0-EI{sS1!gPsp JNi1iCi>1GbDpTpF`Rawe=$4C@Tfi*u$zt;wj;|WWW7h?;`IS@72yh-Z4pnoELg+R(MEB3u)ygBG0@ 4@W^W#DACo)0O*a;)?P5k*<|g}BO|Vqgbrs=Vdo|xf$wa<+QlO26ZgxPFJq}Q>fD-Mt9DazdMuRzQPT kRzQFLHi_fH7AHH`5jt@J7>`(1d9@)mqhO_+OXDGYnybGlaGGxbO!Sny&3}@y0J_!6TkaJ!AoayrcR&zz#hF*z$gi23 +!pJ6Tq!k%O!EMAv{1PfRJxna!@USCJT(i29Ed53AB6$^vB-OLJ&Y=(@Ix^w>a*>1{5VQslplnnIknM 6qnfn$^_5$ZY+h#L1fHu?C~wM@?^QXxWB%5x?ZpT@p!WYTmN;W!GcVED4lz{K!2EqSsZ>JyH6BMUp>z CqDg_2>#Rd!gL+3n-ZUO*ThBYlx6T&dXQrTZ?*)1s)OyR%vHf(Pjeyr2V%*qPvIv0r2#8HB;w8G5BjB UvZLUrP|<*r5D{?da9#jL*QjAN+V)aqjD1gMog!hdI -G2e2UXdW&toBKMPbtAjD7Eb{{b&9|CWrfj$+xn@SM?-!fj0`QU+k2>gmuNDK$SZ48)xXNAZD_iU>n@ Uc-)Ct_OC`Y;6EF&OnG{8$cw6RfqsfE3f2NafoQxMIZw)2K8<;NMvz7_`oqdtPF|Q+CjoEDHR+R2w$5 pS~1P;5Xl=7Du3n0#76JQgzAYo8e^b=^WlQ&1)7(EyU%WMAufQOR4q}{Rncg-HNxEM9o6rB@AaqWcx9 e>P-l|+OcS`X4%r1Lc7LADlbPsmBrbk^D(fElR|$Afm8j4Y90b_dBgL_^;GXd;5P||)aoRXREr Qel?+tBg}^6X@OWgJ5V*AOlrdv|9RUy3=2Sxj>b}_90dkr>eMzyn^fFq(5w{6}UrWVe0|TwLA@DY8GX i%Z5FK7bRHc=O0@FJcrUeyc2zmal?W4n`e?$ihs$M&ZgV)Vy(sV6ufP;e4>_?WD@iW{oD4Wf4XY#aag9fIhmvYmyduqRlSQ*yx?PCe1@e(GXmbiD_EqM(_%LQLN9{eemd?IVg!6>P2HY ygBEH8gmIy&W59X@gxaDa{e~8L3~V>Mh&{AuBYuoX1wW2Ot{Rv=@V^ElMiw|M{5$zCP)h>@6aWAK2mo dQMO+UR_1VBo008Lr001EX003}la4%nWWo~3|axZXsXKiI}baO9tZfSFLa%pa7E^vA6y=$``$C2mvo} c23WCy@qfv&2qzR{NLv39~c5gILHIErwHkmzB`-e?sto`^vv}2>%e4S9dS!UHI&?yI($kmR{s?mp%KPxI?EToy{j)@e17-(({lF@FP=T`e|K NJeDPmPdVRhBetPl6Z(lz9B)6KCAolkIPRa8=CR>k>Zy$=$0`?*8_d|MZ{#%Rhc7g? az8XQ@1YRo=h*KR*0V694nR|JmRD;={kAh`F>1`0Ukt@BFA$^gBOGcR#&*^z@A}PoBQ9_34|vHpf{Xw WumlAwT`nY@MM$)=q8eH1~+z)JBiuo_=W$Q=Wd=@*AJ2k#sS|Y=_h%4KDd7{pMt90LRx$B+g+$r00%J!vM_TveUv(tk@F2@3m&|b(TwBng{F`cga6COv WN5pgV3RzF$6Dh8#*UMTYzLZYuil>*g)uGg0kJvq2yYH#&(cy`mYp)Vhd(7d=6CTv~0$me9YlafE@yc =Hi7QlI%)J!n;i35nkN*Ahw0KV9L$8W6TIfOqshly0r`OAwD9f2P=qa86t#~pq`4A89WIk3rL4`Cc%) uC_heiqN%)yegV0+Gj>p2UHg~Ge+P%;*l2<=r7JQ)vugP!6EQ0gMAd~tQ+IiS3`N{+Uky|B~P;eeTn3 )EPkssdFNsHzZ&l{yO4QJ``HwGxtimR=FElq%zq`UuoVsFI=DGZd+nNUcOedqrv`O07g{B~mMqT8Y$3 l=_I&NAxsQq$Z-&M5HF7)I?lY=pi27S^3IF#v(NlWt_x=&rlOl`hH}D#FL0~Bj_aiCuyBT2S!$89K|4 63OiI%VU~$feKF!mv|&tqKT%4l#Yinisl`Y~i_*~|wHRg8LWy +Q*NTwipC2x7{6IqsAXL6loip#WPrXBOi*YnAn(LocGJZ5I1oP>+q=M=@$`$^6uoO?awBFU5OT*XuQm P~$yK3x{xFH3*F$Q)J}WQDo69Kw8T&=V@JFw>TUoRt%1dRqy+9z2xy0$rle93}8x3{ZKSauph-q#Y^| bgz&A$zd;e}F50!pf6Eu_G+TUouUK_M$s67(2h^NQ9-fE2!Bxn&&XU?0%Y<>Nlck-8aJWSi|0bBnqZ4`IJ9dRezl#Us?(e5t3_ZnArJZ I=svc(kVYNjBy;HlIE)w&pOI_2Z-(aNw`_6F_YJMD|)g<4xI9jHC<@QcBU!#}jfL1(~7%MTo@}849n5sjo_EOb*t*0cm 5nH*tG(u6&B8ubkR|CdFKc;kTtd*dH>Tw+EiStf^(&p@|6DMfO41`fMhsmcEzlRoXU`y%t+Pw$MX7XQ !F(*Gx>7m@F|_JnT%%4wYp3$ZfQUr^?2&{iWe*O>?=HsID?xy-y6MzP!%BT?6|%b~s0%HDjyW{%^yzc nw@M@X&Y8q|v7a2CIQd1FPo4X+B(^F^5wFv%c=K23Gx$(;P2OGq<==M~m08Em{l9J_GgZ%Q#4GbEXHBFyKntm3;Ynp4Hq=!=jH+_BGMn2cwXrR8%if1@AaMjHB)z9VH^h3M 8ei-FE%&x9;xU|)eN{uE=%9g7OL1reA9YdJ%uo%N>$F;Nrybup7p?bGKYn^m{nV yDqn5lMGhD7bIkUZ7{j6ZPv|fW5?*yyS_86{3Gu+P&hAYm%kv9$uhI8aCtTRxXD(GQU+w*H+nK>$>W| -oKb8yC)rMQfI#@Q$0I`SFyfU7w*@N^n@>g#i`#-M?-Eu(%t&0;2Pf)w>bNlV1mb2vwr%X2(r9S?c7b cMY7M)T!0lVuq{lg@t<=Z0Z|XW{;N&bbP_wqqZ?F3Ldd$Gl;)_no&AF;;mS@v6_n9TF1HT4!C3R _=cx@A(^y6Ne*=McRRXNwVX0C+gI|L)$GJquts{S_8F2p=z(u`OK#AYuI+SqmGl;i ck8TG;1ztS4gL3v!CN#t}%nQU9gVxq+iVAm$e7T_P*)nRG+tiE-mSSt12pGgTEOhNtASbzZYp+x(9X(VXKm ;n2WvjxV-_?r`Z+GHcuRYt`Yhqn?{H43~52TGcg*U9>NkBaK1RoZE2aT?3W#)cs>~YM{=Z&6$U58yPN XH^UY6Ls`=-WARgpGwNE@rLPpXsp}Z7MH!bF7SxsWWpCBB%s@@i>)T%6_G!3Q&Dg5nTW7{rO=i_(R!w G|$&}&RG{H?1+-8ECCb-4n+LdwFkL+1pTAhb}_?)E=`n{mF9h5On#-i!ytXH(hRii7F=G4H`Yv8GYp= w|>!!F!Hj>&mwU?>`>A3EoUPW{lS^>yx6 qj#sSeFmQDio>PTcs+wA6g8V?)W9@3$0DQsPLG+S>Ka8(OT{^Qr)!IqD<3Y5I(BUfe>G8ej=;l~C+fT cQwdkIcjpyYVz~zEjrIs$DSftvX$C!51bAiHr1#0iAvg+OTf=lVhDXt- +3sHV=D3ml{EeWCDkEzlkZG(Z!yUxM3yt xU<-DIA2f#r*J431*bV*-egFY>gMWj6gMWj6gMWvAhku73 yh8_BbxHxat!oQWO2GZSJzza3EB9#aL8{

`C+q7{vk;u_v_<_*@{308=21z+HUX076MA@;OizHd0k l(&LWb#w;F60T9OmU9gEfgIs6}Q7Cx=iD3bgw9OTigtBBGY=#A!VGFq|=uwGZG#9+P)g?LwvKM=JSovr9X-|2Q=J!9z#8rZ+0l=tI_l0sf!ooqxB%!6P=2hLdMFd4`i`IC+MXXE=EZ>?yEkIC+Zgfgk!Ee#+i=*o^|y@gNaB1Bkm&;{h6ZYSc5B{7E` scswJ@1HAIU06pW%Gp;=2$^*XgU}HSP$}_Ay4da2d`3OJYKOfug|e*Pb+#_(bI~aR`j%@rxiV|=nMQ{jyz52X-Z$=XWV(looC#6#@))eTN !sN<8Ec#t&F>saknz=R>s}RxLX-_E8}iu+^vkem2tN+?pDU#%D7t@cPry=W!$ZdyOnXbGVWH!-3n6Ht bGP;zgs{Y3^)tJ?I!2b9e4vMW9cQa320Y)^mj5ps%>iPc#jMuwC(YBC=id_Fa7%-4Z1*A=ng%h5t^a> g9Y4BvG7~?0eln-zl9$}3s<$aIQSj>4t@u}gP+_L2S0e5vcSKfU_zq{44w*a>@q(2LA^C2LA^C20wr$ZlK%m0Q@`rJN#67+2P;e-{A+`QV# eJ_z(CG_yKv91O5YkAUWlP|Ae2Zv^|Ih8B_w%f#^VTf#d?o1(FN!10E^>$4Z1BoJ|2eRwDcn{s=#KvI 3s0B=|w(0Gw+S{se!5ADmFh@Mrh|?G)f=CBvWL2Mtv~b(I2tfxp0C;4knO_zV01zY3_IQsD>tQ^2K_3 O`_{!r&+XjoS~gz>@?sLbrlcYrEcP(FVtN;G;5VXSZT$2is!@=#6yGBD4xE2 X;c7GQDQ(q0hnkH;sw7~scHc%w8sLK7%H_EiJ``7l>{mY2+FPYx^dP7C?F$N!;W>ZW98bG5*~U&1p?I voU_2V94paA3)ra6o2WCFI!4B&K42PM3EDR30S(ZOa7sH&{YtYxNMzr{6FWVK@1vs86}m%DsPJSch^i C*6aEu^5LoGi|Aha9AGA~o@CWz<{NSfR?lua4fFDFvittDHBm7{jQiMOkAK?del@k03{sccbETF%Q!k ^#=nUym98U74ESgn-d&+upXL2so3f06nt)L)@u3vJNHgOgtXm;0>SDA=z)(}u0jnT;;c6}m%DXoLzU@ TwL575)|e75)`|&`jG3{|f&G{|5gC{|5gC{|5gC{{iO#=K<#d=K<#d=OLV=e8PXif5Lylf5P9}Iqdzn rqLC;LrG3xSfjIskohr+o`ynircB Uor>G3IFPSlr{Z=hZl~gQDsHFZb}9~ZY@_f42W*c68lVYEG_|`^yF0bJQ@i^CPnTl|J2kqWV9|D}bf- #ps&tnsJ^AKIqJb9zi3a!s`~m(T5In*o;gRsZbP17(BJ{hKj#U#6<&3*{qJYdePl#p%UA73w4Ez-U+* -$hrtuR);1#Ih^9&r4L?$H#K%_eE%MJ~+ig4MA9v5$Vl$pI9XGGbLbKdOrmOA@YF9j66k^5fYave?s$ 0bSjadO5}T{Ajsbka}i`FPeF=j@ASuCHJ(m(|Rz<2E#}dYqWoah#jiL-VnYL({y*nP%2B^^z@b} PSf1REoa_lEo|d}G;fEdxrK3Uv8DNX4(ie?h^^=iMxB=x1K!hI+YB6E--r3 lEZ-rfO>$gw4pct|qJ6j$`ojEMjd1&92o$Nvj=SxK-6Z+QH?kpn?7Sn-cO4H-Y9gDE`)|2c-t78NGZ oY#=q>N(Dlx5>#$Z8&Z37cVYR%kcEgb$rFi5a9Iokdu?%f~y>Wtc7kMCl+h%yYJ13geG!<8#85lbhZs Vuh}?)*mj9w>%Fn{-ipMtbLMuSKM?U`bG&!(aib!a$o{nb%;DiIVdu19N7BLU*aL5y)BoIZQkz_a=4Kf`C 3LQ8-iBitkhn*38x&fbVUz3z3(O;94CQ+IsrAahe3YQ4s0+n~7h!~2zVDAn|+KHV(Tj4Oq6Z1lr0%Qu1r2v@%WG O)AG9r`b?2+hOMPhK>ptMFN=j~?@52uq^3Xo6OPKjYI$RanKnZ+{M%rci{P6rFOJEklm4CuszFrUm7o aLBu2;1SHi1r=31R?WBN8o(Kl#@Ic&OwXx01ib=36ct@pPY&qPDL6O2|tcMOJGJTjEy2=gM$&n0Z99y l#Fr4S!7<|(83^MVC1mCAm!93->-eQYwAHis0U(yaxP~aXL+1q897-n97h>sMB1bO;u=n$44dip;Fns &&P@La>X>mn93q*%ptmB6V_g?fY&3|cC+6fct~Y9<#LLGVA9Hf1;W$2YB7EjJdUA4%;d<3H>cq1`5Ap O*yF|R4TsTgLoCuA%%r~1 X$Lm-^TZ3mhX7gdAe-a_++>P#}(70uhhY#Lh=|sc@DLc9*>E9GLCMpB<9S;ZcC#kxx5V938@Z^nTkY@ {UI!rcXBZkTalzbE{MG*+KJ-N>iO2ES_?_boPnfo|5LtN!}?5oE*LdNg&u>)j={9x*)Ta`Pwq~S`i0t kDfrARq=GuSu1m2d-U2BL2QdSbz6nV!7`_~iC=!el#NOULI&EVBC>-8aY5D;HgQ0gko|3sjngE~hPVi ISy-XERKQ-wbFQR9md88-y9WI|}`S`S5z%dEknq}^oU8OjvJ8i?71{K&{3R7pClQW*>fh)ho)x-_CqOT;IoByeBOLuqI~;u@+ a3{56%R=t{jjysEI|mz84-@-EasHW|JipP;grq)$!W!Th>TrdinVpP#Psb?qq}%mp^GHjNz&5W11qW! B!{67!A8A!5VDi+Aj#Gi_Z*jmT~_+Y-R&Zt$FT)^9D=Nb+5;}GlmiQ*5E7e%#8;5yZI506StErm>(Tc MJw7sT1=F1j1qgBU009!@-mcwkEs)AgzZ8GxBnm%K;u^iJOQns|EUSD8aO%pVe{Ra61AM? _2yPw6vSqoh{)61rC87~4a(S#sLb_i|NE&nu_nRZhn%2jYze@$gQTm`sd_E_OL#Ir&jwN_VPYo&vm#8 L+84bX8|XB%%*-!#oOLZuGvDSIb-5Whq;-~= rDb1-Ykqwh0N7UE88{A}n(LT>deS!2RQ#-2XFgYzgIt#xIADgNQ%IbS+^o4nsEr&itG>P7NQRB-^0N- T%Ch+>0q9j&&Cfbiv104>WVkt3b*bprd}j@#W>&qpXwK0>bCR^1N@Q)?kG7f6Hc-^E>A9Q(gKy__+4d |Wbw%4+ojq(&c?264r>>Ds(0U82ihzYo`7MC TIImzbe7cuIaat<83zY7RE2z7Uq$37>NHZf6*}IciUw`*&=c+XdL4aptD~pv vlz!-uMu|493Np+O`M!c5K1rnw)9;bj5Vcz%jMODef23XoE7dRF0(52{W)5m3+` ytdy}DE5%t2REd}3rclYQE)|j~i!!PXhf)^h95Yubi^^YkeZ?!ES3W=avL>h^GG(24Ts56l^SEk?tER YWiYip2!ri58Gr>(0+%!QQG|j1E9@`Z2*!7)#mVeh=?6anJm0sCZdgYjHb7+1K6%8t6*W#ZiPEIhQ~t82{I^ej_4G}jmEW{-z3D$eZ#Yr59BZ~62o!L% 0UT|}0Jj{LLuHFnLd%)5MJJ)P@LTvT{MYK-GTD(JNUVs?CYdX;dk&m_#ONl7PsGjDEwTM099& ~3gHmjas_5RC~Xhun&V{4*{tPG%%W=(7?ZJFEZLQm(fwyR`LUm-d?sg@1#8gMWjcn=Q -HuifBBMOFCU}C}p(VhS(sla6WE92U|4fS-Bapz=PY2jECcK3qIIJ5pRfmD+{Em fLR2HKgSl(t-fCAb>3hU@IN5kjp|YxfZwFb+Tdx6phG&9~5e3(dFCd<)ID2+o0qL%(37bo7OWTR2-Z-U;&FK*60e20 dfYGX_0l&@%=-W6)C(o{I2{K~Ht~9ez+19&r}G!_O6+r)D^gZIo~>=saR9o>Atx{_+em&y}O+%F!dy; u&I|A?6uk9_5styFJgXqi2Nq06+Ino@;5(wYW#P#WS!x-~i9?@)3Tymhu2eJU{`@?}TUEd1PKZzZO0T o}LdN^WteZkIajw`8>_%X+BT$d797De4gg>G@qyWJk956K2P&`WL-R0kDjLV6@G@GrzO2eQZNKphTzH &Tp5BZLvUpXt_;DIA-FOGSBBuq5L_98D?@N)2(Apll_9t?1XqUO$`D)`f-6ICWeBbe!IdGnG6Yu+^v% jOnUQ-X!)2BMe`|m@FA{;2h-i-JdJ<8m80CIM@Y20-UDO%sp&Rso3Isnv`^8V;Zmd}NE&SZ)6brwF-@ ?yDQ5RG06n+Q4gWti=C1Y{$JNOs)7x)+W7x)+W(Fa);_!sy+{M>C755I?>>%}gg+$sDX{uTZeelDL1^ ;o!WEZpxE6g?IcJ$B*aPT}9+=a#c<@PjleT*H+Oes1CVlCe|xclfz*D?9u<{OHg`r>y1v*m8etQ7LP= KDJyRTQtfx3jYcJ3I7TINjNuTB@iA652V9&Ug0_q4YQ5H&sAxO@PqL#5&j529i^}yD_orxu1-sWAI!J lvPyzK!OzOAB=|G@8U74ESF9z&pW)|vvSj!R{3vNJ1^xnmfuC#B!o6K7@K^X*UKSwarNYmhYC#Z%6MK u6JzI?|G?5Xha+_Nb13}AEe-I;jM=RIf)r*JA>5BYCMgF3$5(3jEOq;A=#e-OaXz^W7)GPF^Ycp?<)EEj5y#j8Uew9!+7h=n4M`{|P^L t?7gxHK0i#dnfz>{s4b~pX*qFDUHG(;OAyGMffB95q>UdQ-nXlAK~Y|HYNBI{0V-pZc~Ck!Jpvg7B^- 1GyEBTE_73dKf|Bl&+r%c3;cx|EuiSRqXRzKsJK0JgC5WT1zYI3RbAm<;a}lj;a}kg)x53nqb_vY;NR fi;NRfi;NRfi;6LCz;5^_w-~_F>9dI7PNy;buC;TV;C;TV;CrEHEZ};AD8{ME_ADzU40q3f5U*KHeT; N>bT;N>bT;Qa}c4};=#&&9Kr^a?_3?l|%r^a?_Y^TO{YHX**c4};=#&&9Kr^a?_Y^TO{YHX**c4};=# z18>3jYqcdus|pe7V%LQxg)T8TF9KK F)_-a+N&Z4DU7yZyOb?^)YU3t~&Y)(zntKJ?zA@bv-Gp~BGmDfXaJXH#U$l+0?Pj|B$Zps uOA2ll|+-k78H)2^Di8>{CyF#q?d>d0cp2-V`K`T}^yx8jyWb0*k gCMp;L0%6@0IY%>HG)jV@CC0&&le**>nIjlB3X{8Scvh$iUKK3Vv7Pf=qPypNM57BqN99_yozp%_5jf -NbQ8qha}}k^3CuYDS|8gLA=xgzmJUyFqF+*5?OeD4^5UbWj>IlPBMkcU^m+1fC^-jLS+h-B?FlZWU= IuIjIrQltF#C$zrA?BVS$R1FY(d=xj%~Q-1(?1Yu{`VwgoD*khO#u|$JNrC}*#u?^JdE*?;jf>JZA-; LntjDRUQ@-(6wA6Wy-oZF~?_SmwSH^xx`l`vQclk?UysyP|oT )2eGkAG661ZF0pV*`SDppxO*=ST*`o1*ZxMNSenKR1vCHMcIJInR;XGBp)vLsFTUiL0=@4YmwmP2->6XAh0VmS?qJLc{4@qcQDE~5fj}c2{qv+vPO$&SmD Q_JfeyG>v#e+f)4on4F+a3r`$*(?Q&Fv=%X*(qD+e0ki@dLSWEV=!`kp{ICwM}&k9ls+BcGR=WJ$WcW8i 9^;CagTG6#g`axhok+PB?mILP|>oFAEoQIf%<3*{)lU2#d!SY#z7ac92blaj#?40r4z!!sj5v*>b VqT5U2dQj+0Zc%zm0(!gLp&HrldG}7)mR`eLGlu4#ULxBzzQjlu^<@>WGsky8|Ez9lrKipSemhXiIP2 jk{cCiB3US^xH6r6$I;GR4YLpiF@>AI|cvyvZ65;UBrk$=nA3k~e5#F<=t<13?>UE{=K)szVx;c; t~v6cb%!yoedZBF3<+h``XDEBeq-vC$|YB9mCTc@Yg7?ct%DcwiQrg{aeLR77m}SQRN&C#rEcSy*{Jm`wqqZqnEs%DR}U`6o?IPXR&z@A0$q(>Y^>{y|l=a8Ho4 iv$nR~Wr-{6U4l5d4^ltK9Ja-+fja0atKP(NSC+uLcq(%_p9eZ`MWo-d$+8$Jw3t5V4_3GA2e24pqbM ti)Jqh37t9W}m9Q*zQEVe}d+l*T1*gxVRALa|vqRV1XvB$Y^^7>+0nN<0kG+s;%usl+N1LNg8-J0}M9To&6)96Gm0M n2`lbILg)q9E9!Y7fMs5qS)lV+&iAU(PCmAINnen{XgdB0nnaK~TCD`N)NcY{MZhV&JIlomk4FO5^k* qJgRlkxpt4Bsrq&2!t6m5d3xoEPu8=fQVLb1Q`|)&EO=Cb1K@dYH{LG^AxrYl)Ed6w%@1ynO&`Y7&VR)j3T hjL}07so}gMzyUg%#=^2$#;H6Oo>D^YSMwgLLo>q49L^i9^Y@=wrw*65f8u}e;bOU2lM>&#(WBW6K&$ `4laT?Kx3PYY4Oso5>sph+*g4LzCTdNRTJCqA|#HvPXKI}B4V09gD6>)B@n*DHYB9hfCh12gi)e+I0Y Fa~=(5hm*ZLTJ6x~PGQS;)mqn-_DVq&o){%V@hJ{o=A|^fY7A6+DbB)3ht08#b>}9nCob$)hd&s(Yf@ R9-i&s*Jq3rX>sAfcj}TMU{=Tjgkhgx_@0&L$h7gI`cZyTs6%#PtH6zw?#9zDWrH?X0#@>X~k_p!O%e &=Vo!!ylrY)W4GG1_5sgqI}a_-KGcvm*FFOk7CrmUp`BwIR%%W~L+e1dK}|q}S;%m+qq~7skG2W}z}b FbXF_V-WZE3EVSq5jFy!Ub4O%#-J&kjk!I-$}Az&lMABQumYns8Bxay#r%xOa+MMYrG?$L$QhijdIil $z)Y&T}v>i)P)lO+8n8&}(|PYARIMy;(aF1p86VTY{_I~y^ni KUp%x$&Kr42G4Cw%gTv1w9vPuDL}%hRzy0^~+c_A>ee(H|IE|pIWGM82QYzcjYi9mmG$mSMIi}FV{I4 ^%f^6I5vlIlp%VZhjUZcp@GA)R&yz0){LW$=2~W;SJyTJ#}&e%S3k`;K6I*Kk>(s0-SxMnbk(|#-g)O 2xgP?UC#b^_6$_{tGqT`mkM7y!41MSH|J+2`2ge0x5f7?Qg2W&#+J9JO*T}X|Vz94hXQrX3{kC49qid-V*0gb=ws0Yt9iE_4O@|*YmD s%Wg9TkT`e+5g&s^$$BZl|cwIz`uwXxWKqX_ju<9{u!3RA aS=C`^&dG2r1@POZ?8)rK-hK9z0eva#h}*e35{xELi=ZH#v83R*oH#SpLQ;09+zCxSuqB|?M!0knu9F V&37XNMxV_F%KQi$={|v|{#C#l<3$y`X-5aSY)F&EJayjJ05Td~qBBE|?o%kPz$-*rLR+w>m_ke+t*y X^GK}3yZEbem33^(zLpSG5QPGwp7!gsOs%orcCUj;+%&XeKTrU!W=3oVh*)tc!VkMt0q5>X;xL`-^{6 4f#y`xle*YNE!5?jLa%BX!kk%UuGPqync`QRab7N!pE6;bnwv0#7+usJ5oHV~N!!HeE;VY7y;F^@UcYrb V;J<=oWx)~a^4;t2~4E6+gXjFWTRu++H)Z q6=g^8uKMkNZGIZ@$Bdwlgal5V!!X;BhN5Tm6AHgQc%=K46XW^l6_*RsiWMpivLFm}4Ag1i*-PJcmkd 2U@soUYQcmob8I(?zZSU!A`g7(5CijD>-mjS3WSPykI@KOCWu~WzD-!pZ@yyOl1+;Pro+6g8k^A&sSX D05n|suYaTcqe};zIdqshbeKAHm^yTrwpq$T7iiBt2cB;4H@S`#PNTd9bZ^HZ`3czZ1nhVMc02()qWi 7Uo(ELFHR_=719m(CJF+Bcw5NRb$n(MxDJc{3cw^;?~V8gG=JGz+JN)5^6v2C Fj~H2`r}0M`}3b>&#S0=TY4cs%Wa>1+Vk6{vLuI$eQISD@3aX;>_wcLT(1ts80yx2|aNgL?hOMS2ClB p_M&iFGJ^cPM;!pwJyk-W{sjTe&-q=YwaLPC`lIfJW(Mw7TU;6GhP=+#Lvahw69-s@;KAZ|RwyUjNzs (ce7z@&EYb(SP{Kdr$tS_n-XF|J#%Q{b~RACfN43xBPDXXSh3%FX6{^k-I!p4Ydcicn50pxqw*_dRVz 3S<%_p9$d(wcBMVI%0s11d-Usw4gLI^6}5*b=-)QEu)|ox#yyCrj%p9?@UYNs__a3j%ZDZ9e&5EbVUt w@Mj%eE3h7n`bu%VZ(fG#w3b|v1w>^NUAmh%iiq6A|Y(uqj|G`~}>=7#2s#z{R0C^kH@MT!<8}ywoqP =PXLca+d1+_qJe&j5gOG%3{qW<7|K~A~%ES^I=D5;W@dz1uOQ4(ZP5@b)&b#S5E7YPD@vS`q@q9a?>BsoT%Gft*HhO7}JHee$sU?ayxj}zTa ?Lh*ZTDxvdxKn~wIfxf6=Exnj2Uy}NU~5)YnI)Q>5<9FXG`flBfHKjFc6Ed|8a>3rxUj_AD_(S=$`lP Qyhs6x3@g#Uj;RBOsRM_}xc(5`RkDWeqj~8nX}XH4exC2ia$q6Ymis_&HX~OAD9;8ZyNUj$P4qX(-NC Wr!B$5&P>p(sw$uY1&PU}4AJ9;Ha36s3YPk^(+y%GQjKpWo;6-<8fGtQ&kQmwb1uhq2K{t@>{;0W1l~ sgR+B~?*4Nc0ga|<&L#oN@WYJ617&${Uj-oS^mZ4)2WHD2+<{-j-}-jy|vbH#1qr#3ClHq}OKdc?oa=x}2(*VV*S}dQKV+)s(%CFE(fWQClrw9q#edryu=})ny2^(fBQ~S#Lll2W|Ar|K1g_TXWP Tp6W2UOOg30hcl8mNPM)}O3Gi>yLU7IrKwfOc$jh3-(+lbEJB$-{|hiWAcmC!6pS(-bGBDb6gb P*$x~R!OX(kTgPy&mqOCAQfaG+6+pMZ_Ua9@8`F@w?`OvFVd^>ItuHfen=`r$vzmg@ihe_HO2_E +1A)3-mQsL?KG&|qquAY&Y`XD6!G9pYDY+3#31Ka>=F*~urWgwgyV;xKai>O23Tqzg6dikuir#JHEY$j4I`+?eGXh3xWb(dcp^(4*=t4F_(g=wBN0h- RI|;>sMwI@o?*Gy_E$nz*>V9XvvO9;hOnYyq@rS^Vzjf0z(-|XsDd*@ol2uu3@?f#Mnx3YoPsDr9m^u OF3Tx5HHLFv;!pNKakH{J0use~+(tUBXmxg2Idy23>kmc)lD7^!rw+9%jf$Zrc1Kor8dxrMST1!~E_G Ngb*NTxRt|~Kq2kbw(x{kz@?!c)4xEMSkP#~<`dC;J-6HJ)8ya&RT16W5;^D(#7Y}KMDgzjg0He?e;? N1wsC)ohMgs9|j~yz5*2)NXGQ#=6cQUpyBDEk8*v31H0PuAV^N?-0^N#07*2`?ZTjbL7ydli8tXXA?HI*iI124!b>WMIhIo<%)p`BvHe`DwQ{3I#!Z@mYGmBx8917#TGi-U?J(R_r&_# fHJ`RjQ-mqxL2=Jab? {H4zTXW49p{+vj@~;sB*5yEaowgLiLy>I>uQ>ojQH%aVY0G0|x}BPWjg6R6FwXL+9Ai*K^iqKL8%CX- 9r&cWthqu4&^ws1f@(6B^=Ab>2EQr*h^QIL1Mp_xoKHcw2z|>bjtB{o&}|FVx$w?|;Qk`>w6a`ho;i1 frm_KiFjRD`mJ1ZV~O3H_!6N>BaNc&z^r-F8s~kKKa$h7-+|Y(Rv-?hqpD$4Xf?n()86O;d5EQ+Qh?F 9Xo1pr*@^)3Dt no_mr=x57vFO*r+SOZezA-gKF5l9(HdVV4NfWx`2hi-rj&WQ)F;38x1|kVKN`9t2B-KQ5W?@5_dh*lo JRlO7Ts=h6mo?1zm!k(&!0c4Oq}Ex{&4ivEmtpG0PANVR_>nW+a%MP0bI`vO#a`Fpk-MMb_Ph;>im{s F^MBy$V43!?N*MYNtgRq_1q+47XwoVsMa9+LLIv1eAcL5 Um9FVU05Qzpd3PJfg|q8_K;sXd??DxO>1#kqNu>BK+xgvo1M0QK=x`xvx?|3~Sw}RCvqE7HQt1J>N39 B?vIlzwk%xZ(Xu^4{2r)aM@*z3k40s8W&05gP7ho&2_8C;XB*ux}*b#9*8L&cwZaDEx7fbY6!LSCE|m me2EXva8d))|`ES}<*sbKH;w$?x`#n2i_w+R`BCWSz82&q17#l#>UigPCj3MqhER5k97RHd^{C W#x_oPBEb7Pm(=MGI01cu`t4*Z@x=q)IGm?*nvmF$n1ARE%7_f(_cxgh4>#yFWG(b1qXER`W;IxLl4@ }+o&7%85w0@lSg?SlfQV%F>)p#33nQqg~MnKcuk&wEh!%f=aIZ{@egqEqh=sQP?RYE(o(hQm7~iAop6 UuyKL;RcPban*{!2lCbwRHOjfO$#}nf@{2oAcbO_$l(J0q4X}uIS;wh *d1WD!4qvND~UFL8-bGV*S3whtT-6rrM>gWeGarc%Cu~@Hr3xr?4YKQqki)c#af8mSykQ0p&wZnIqIXHyE{#hfZ7rhH f3j^mDQR5gmRc-pZ^&bdf)~}?B%b{AzKGEGU=L4XC_Ud X<7EfLu><1R0da8cQFbxG2i#*9e4N<-#@707^aK1+yL~ FYbZeqd1OGG=eGiF5-P1j)X+9`s_n<;juXd`8S3#ZiuV(+uU&`#CLOs8^s)_Gn7VwWKrT8AL1}b9phq 4;@kd9qZy?HscUGLc!9GQPe8ui;49lTM^F#>NDay%&3dZVR7bvrz0iSS_o*c&Y!Q}@P$Qn7wQbf=QTT l0kz%sX`;&gf~W@F6W7_hfFrgC)aK|{7C+f$) xvG;JGmF!r;)CMVQ^CoN!Nmt`D?TWPeQR*>MwiJ{4|$`u5JN_pRyW>m!_4~u? 3WUuj7g^4OAd00sN#nA6%ByT&W0>-u0R3?NVAd)h(pK=G3Co9-y4 ={cRHZI+1<{<#a6O;_;agb1yw$xw#BjdWET#qyY3uuXX7u$kIm^|=|5j{iew~t>8||SPuVxE$l-=4gm_`%!(R-UqOLSx4V0Nl~z^$6g&p<`ZKcFP#-=U7Chb-ehthnjMAjDY Fy`?nfa{bk??q3b-8tuV9tYKYT4=5Dt(8gDE}_gU6BneMH7o(2!9*-`uS-w){QFA6Q|^{vn{JOf&W=j)+m7n&^ILz6 xII(!(OKZX*M2K!c6Fol1i9caM6u$?9Lu9zw;v$Pf2$bst;Ltqg>6`3V%*KF6-m0otSFm-j|x*Q;{3( AFpq$Hi`+u^#9p>B@^6~#niL7=YU=>-`euVMDNd;VR5yuJ?6^=|~RRYbj$nBD#M@GTLp{XyYdUxU~>z YSvRUq46-z|}@CcpI@*Za`Wmh^-(oeCJytwu~6S5HoiMke0b(P;Z57c{nhh`xdZ^qz|lG9D;{>0Lyg% #X60czH{phunSYUZvne5b9qjHT{nm>>|KfcQ9wI&IIE<259@_VU&VR>;zBK3d&CE@UQkiM6~J{x%wt3 `xPiIa5XCM>1Oz7L`u+eqEZm~Q{11ccd=Ncl=j*B*qhnQu>l O&5){bs~P&X!EHG1k3yg^5O7xa_jLVh^RQy%z(zciBRAyCo{6iMyN-T;gg=;kNn=>~Ol11r)#;q}VzL 9Ed&tZ3-^xQ`%G(?vH3A~o51gCM#A3k8J$J%kIoMf*&HMK@?4)r5Hu?W3+6D@0CRYPm=&6RoY6^FajA @qHnH)cWlW?B^kb&v(S_j5M=?7r!I$MpIW{%{>gwRhj=PF*FasWp0r%Zt4u0ffE_?=K;YCmqM2QogiQ S3NsPsUtuQSBh2Js0LDG6#Y9kO;9p@Ce}z^2ps#kAiqenkWkA8CZ=w}uB9Qp$Ks?(o;2K^ jL_|IQMzwGoMc=sO)ly`rTp}h4A_&1HwOm^8>#1!854v@U0Kw{P3TleDOnKe?@A)`U3ju(XZcm=f `*dXL(*;hSw$E)t4_mzx(p}vm9QBJ8R!F@0oYr$)(<<7oW#x&&%Wg5MF-r>fQI>xoiJkme*gte17-n( R=^(#k1#+Kl$uM44=Jv{O(7sI(~guU%b3)j=N{i?|A1ONho~wS$UJn7q9On^}PJ%s>A;H=>1<4+LLHZ BMD)>VSn#s`TWJdl*cXd-EWtpD}j-zk3S91^JnGbmtQ`A^*DVRUVi-9vsbU*egE$6$9G@644-@+-oJb PqE*7bl$U%ce%XzUd^EF}daC;7%;~dw_gQ)VIK6xK)1Thi8Ggm}blRu;^P?yB*B{wmcfR!L%f~NX=Jw VT`|kaBu8()-mVw9PJ@f0I+@*K#ahA_sl?UH_FMRPud7d9XPW_$v(pO*j8fKd1CwH+Ixv|_UZ0Pxq_m lbUv+`NK3xD84!cianF8uz<@8a*%Kq>vxY7?$na{sMXt}Th(ra{a)Vt&9m2^-o0qWfBf;s^;zp4AOGa8Ja1_~d;ZB! AAR|{J~uqTK^3B@w<}Rr_Ehn_8u-AAH9D$-mA}A1-Gf=?x&C59X;yB>wCQ SSbuaoAb<338!WRMwu1L&c^RI6QXZQ(NLQJgKGcsDzYv-!9PKy-MMW(mwS`d 2{!9c^&!~fAtN%Iy>EaugdGzV&TirUO#T3KWQE8-7&0gYWK%?|JUFDr;k7Ur@#Hje_~4LzMuVemjwN56UW4Mt!acfWc0>~(o8BkoF%nE3~F&FpFV&3{LxKrt{=Rw=Hwp7_>H@1fj_{Y_4 )2stD`=;zS#5i>Th0tB||ryU%Mvw-R&fC1%BKn;8)LHJpTg;GM~Ns&i@ZkO9KQH000080A>M2T-%AXw {Hyq052y102}}S0B~t=FJE?LZe(wAFK~HhZDnqBb1!vtX>2ZVdA%BGa~enXJHMhMr*>v!7?5&omRM5R I%3r-lFOEo-IZi$h6W}Yrg3+VfVI89ecyZCa{*H9#1)b3rYX?d*QX21{lpg1vG$m=S#1WLgOJ{Oa=M#p^er1(U >)NVVv)7jKU2{@Ll_@%fu$Hj;`Bh2e1mIJbc2Mm(KKWtb9;k&;suOXgNC#loCk{HpkDCRC%*&@-U9H{ )i~Q-bZmjWCkaS)2%8dDrcm8+PjjjiHRpawd9-ly})|!%5F08lQc2ba8n3?^nk+`l(MV?3%a!`@Hp^- mQD+wEl6sZMXb`E`x*g%$_hgL#gqE#VLDv`SaO#j{tycc6aOg?bhw~R&Zc{2JX(={oC#R29VW6I*%?c pP!wv5BU7^)!F6g+3ESQ{rSuB>lYVqj)R8b;|+X0^TVeHfq$dJ?StT8AO3yThLwG7s4Ggi*6a}fJ(uQ0X6exXg(sOfR!XX%OH_dcyym eMLl%#iOa+r8vM{T?(mvTR9;TjQqc|Nh&ZgW%lQVMV5?Uj&lA3r#aF9|oHU>t0kF4e7b2ZM;Lm1#mrD2g&N<=0ssAvquh>eBmMH30W( gS3^MW~yIIptH)L^9-D44dFFBc3H@?;J$b1c+)HaV_>vc%sD$Z>N@mJF#Sa2dK};vv7GB69-%^bJDp~ ;}OH!lM=|IZl0gYA_xvIF-WU-0wMY3#yNen*Q9YlVIGD@yMZ1u?lFA0W0S>pP(#9Zqu?by5vEZ0OP-$_Y4(hq;*%yPAxr-@jCu=mTvK 2K)V;J_x_xUkYs>jN43y)`R*o#SP>TRGot$hb>@q?A27-?@_)9%)|ZBsNW}8K1Dkq79FJp6hmrth7$Z 4--|VJ&%x>aT>EIbLB*SD297Ht*?cih&H6or=1v6VZF1dp2=E;|=Eo!NG_|^+i2L5&`$~PRxwd2W)@A<+d6f|m%;B>F;B(Eom|eU5YW#HJ4S)#+QNxfoS#}^|fzRX4Sg7z1*uPQBH R%Gly17z?z%IewNT^@ZJeM+iT-=nR#^B`@MlJJRjk>a=`l9CW=jba8A&K?pS;FVlFlENTNS`M$YYW&d U=HAh%_p%Ddd4F`!L_VhDrq87kO!dhV@NVV0J(5xvRMMe+CxR!K=Y%6_4o_y|AF8Ox7Na+r4V*P;=>O %Mqj$=BOOgkXs`|gcky8GnPJ14F+6`68zDMM`yc~>R?TXxHv!pW4dKhdZ;l0*DPSS&_26W$x5k?5AU!Qvg529u)eQEw;s;){X|n(Yk2yGXRsit5%Aht0 )0t5GD?S6ULO^i5`cZa;dpNO;kE0dmHVWn>d25djV!mN5SXvt^|C88;1$%jYM)MZ(YPk#DkX|9^vDU3 b(bONOa$WWJmT`$*2uHMRT<(Eh4rPcB;}vRjT{nJ-JSRJu?NN?SznjrhMUd@PYXA)qN1G5mxCkn`Q7` Q)&%)RVum7AnW;az1~MHOof@qpYgDR(VVhzOE;QrHxHi+qIg2dspTz?FEFb6KXMca+hR)hxD4(&ckXpO7%7*vkt9GVUdl08>k=_G9kU) wZzh@u)-J9@c7#w(|N{Zs=Q-E41yWzKA9A-;pgXQB;%hKx8!M49NSTHSRv_#v2ut@z*F69D77=~>1^L x^=Srvjtq9u#a@N7qd{TmHH(xIH=NJK=L;e!NPyf{H)GT3WCGV695zsJO3_vYqRuEG2<1dyMgP5SkUE 66KQ>uKiq`(A70K{G^clhAPEC2ur(7Z!JVOW=1bEI0E9`}?X#AEBY{P8E{(9UlA3Jm $Bbu2PSLNS$zL)pxGLOkK7oESuPuEs?iOe^_$xr1)5H>cOT_>7YeJ1z@-Ph277K_j7#BjEX!+hv>XoG dZSU`~P8qUBvC>#grNZ62?$WW_+I*y*g4XV=&Qi()p*1`-I8>$gSWXz>Bo7nrf=pE+0K`<~W6`Zu8uhWa6z4nGXI`2 emM1P5QcVP-KUEoldG>1JpR#V45r`N#q*+Kn_7k*h{yQ4G=C`r)Lpnls#uB1P~`_UOZ5H*pEV#~eVWV D~OGAaqh+k!?70({fwzf)g-rVx|dub@k%x^pI_}+U;MzIc&F&E|1v1a3szkU$Zwfmuk0<&$qmq3rs;5 Ym@q1nq|2G#7|MGb&0NNIG4m8n}%a0vzfnBo6uFYjskT<>X0PoyW53@R@LZ~gRJ&8Y3KpfQ1nE;G!%< >0^5fP^$aAl9APdDN96++Kys#M`nHhAp&_JFIy~NjD_X702-lG$MnMtAD3 k#I%oL~z)5YTbX>J??A`W|>8d(6HQgJTx`ykw)h_p+V!7h#pJ+iM6yThYAS1|+jDAvekce~)Ut{Pra09$LWjo)qL 2PuhYFqTCVlLfYiIXAHdK3GEonW~r7JLdFB|F;v0RlkRZB2}sb=&Rvd>%ToLaD~>0kGbVCY^7>*>F_F >vtBzzegQtn*0a~2e#7*nzR^o+~VI@XYtKwgmt`?haJTCY>#%&RnIoiTD-%z5p(;}qe)pZg=6AgBzv7 wYA1A^rUCAi2F5R&y=~DWGc(IfVcmqNY#;|*i=G7ziyr*9UBd-GzjawW6>9aQUpxAg?F7Yn!jm_WRV+ _g&Lup00Lm|G0bsba)+acihK5~FWR?tZh!2t7iVMf%IMD}Z9)Ya*(hUT3Se66m=9H|(ySfL|D66sc6m 9@bO>bj;@gP7jA*n#{I8#L7gXqDM-er(@blvwTCC`*kXtuoIlj%~|-PZ0cJwR>U#ZgW$ENQx^98+mf#5hh%Z!;iKMb51?t(43)Lg*V3{e%|2SPoK$v6;$H3rGjuf4$|A;6HPF8tX_s ~54KkAWrX1GeDL}E=)`vWh(_AAH>&LfF`_JbFooPa#8k|i=Z$VQkxAkGg(5%a?$wA1<3;Eq4TQIbJR5 ;Xn~P)h>@6aWAK2modQMO-x9ESR?+0079H001Ze003}la4%nWWo~3|axZXsXKiI}baO9eX>4?5a&s?V UukY>bYEXCaCyaDZFk$avHqT4!KNQ1Z(Uv6dD+B=?m5}Kt-DT~+DKi_r%n5m=v3vGF`6f!{~AMH9FYayZ`%xy@Pwv>?W#LGJ 4f=7S&R$ccV(m=+Wzo?@!OpC#IS#O=Mol!|1#7C+7ai@#Cj2&!0w%q6GTDWd<~FgQU08^`~i^WEsBSj*k$X;~KKZuH|St!1?l30!)o `KmPVvMw%lef7;odT6#PY>7V8zdXg8I?cMmOIcrLX;ohq8(>fUN^|sMRuq}}W%yFpl2rjpGglvHqN-j N^|PYML8{Y@YCA2JhyEsOmg!bUi!`5KnoF0R{oJ|*EpP6aOP7fvG&VnS(B00V<_Fs4#2Aj~3<+9Z6_` Y4vTn*edRgQ$N*7UH04>GlQkC3+Usxo((jE)f{En1A(O096*y!W@A TCvE)=PwBSg5rjVMBWx6n@|L#q_k0#TV>r~Wo-g3~olW90`x >80P&@|ky3++LjZRIK8vh=h1zKE`%8aX#UbSBbDg8nUAur=PXqW>yg9r+u#YaS@d8UwD4dnxr@nN>)Q rRK-tX1o}+a{Rrg@|*JKp2g7)(yz!e+I&clP$ZY7sG;$TMFeF#9jQvIt##d`G6O9uFKF$D*v#b@Sd6J em2cU*EafJHKyg`ZWC9H`u2pQ*Y=BBx4*%vZ2U5|>lN10g9<|4X2jILYSpu8FyX>Z H&TGYu(F{~*}6x$H9%CV-47zP6?AufQ&16+e9`qFr3xBUsX#yi+0^!?~JN1CYZ4Muz{;#*xvL*5fDSw ds^43lp)=n%-i@5#4v!o|+y^cBU7%$aaQ?7WA@(KZZ$el9P>(uCl#`O{m__s~gYx}$1&g??}@qgpI=^ hiuE(RO`BVmg6}x@eNf4LIMSxja=>s2ZlxVWc9tGRhX&G5(0&0M8b+cJ@UkmP_zG~-_;PXj?bHdSA#itH^9AjG(;Ij{2*`P+veZ>W@;&2-%`yX95+2iv#gePQV^EX(q?z=-q7m_n&v(%|;XOMR23>=)XskpN cdeza_oLL{^E|$T8Hjqa7E%DBChNwore!i1#}?JG}x;^l6on$!iIT378AyO*=RSgZBe>h}Z2sO%3^mB 5NwJomz3BimCf1L7F@%k_gc6s6w~p+5}3Q(?BT|%KMU&R}cWoA~|GjgyQm-1=Fs^b5m%?s?qLxY#O+> ZGWo)Fs&(}TCHHY9W-`l6b0}TDvkR# *C*nfBfiKXtzs^(b@8E)^NKj&Zu>yaG|JOxTXE#w(K?u!s+kSuX;zZR9xqDSW4qr6&rm3T=738}&MWb _qE>egMDE~SI5v0x{s-h_q2^!7kQnk1OjOIGuPIYQ>{N!mM&SelQRE#qrtW&uPR7OFOD$s}}WPUFih; }pJ5HddqdeiABZM8FkFao)03x*pRaCi+@dCap>B;sh;W!ExC(ciZwFnae+WSf;3QJXk~Td()j=gw>&# SQ?>AfB-D7T~}JEX8{5r*Ovx%w^^vfdO}Iz$fS&HdP8XG#UWhvjLxjGTgTT&hi%ETgDQY5=CLa0~?SQ A(kH6fDd4{ek}|R0p Bi&(0yXz>>q%_0jI!0m;%w#Nl1n{k>MmL15xW)NQU_Vr{I^t(GEVqKJ~b+9c&P$@GaMpm%{w6TT8n u*3x1CfakweR&$Z+a_cRj-0p@q83@#d&!aXWO05B&2HF|@QmMt @m8j?isG60LE*`pMK07_wz6@@1*-Pt2iqYMH_zO=|be)J7#_5=l#0RSDL%!-LtB6um7%JtbUkcK-_rS|y5!|8z#UG(%=x)j0h<7T8K0scKMn>mDzu^C0}zj^KDwm9fCUF|DG-2;6gvtwQy4&Je?G dTzyPAwL>`~MB=+YCWKv?=tQ=k}3fw(BN** eXeYS1+H2}|J48{bF~l0KSMX0&=6@IW#xIUraDqE<%~vnkvmo#MP;?q&n%&=M&40e49|IKmzQkU%D?o 3*#4?-I2pFaY=Vad$~e%a2X!?M3espZ;Uv3dh(VXo6K-)u|`J64W#{rA)jOz7;f7CIP^VQ{XL!0STwz 2T&P=N)lx@=s*Xg9oDHMH?dMU>TxdXwz7NDa1KMVS=y&l@nGH_7v0;NlOAa9up|pWXRwmFYs7(ViN>X x&;8f{I(MIze$&`zS>>LIu_(_# $=s4cYsYo-MQ=<~P^Fyuh@sL&n2_EH?ZiBA`y9*E9sKo8`=;2wyybm8Tv}h9NP{=ecFjY6eLY_n?NS8zfb#z!aq{nBNURt1;G@ETGM<{-}q$Mm lP0~n>iqTT;W7u0HKg%klZ)v;BesneL6vF<^%`^1BkV*q$q1f0t4vyVI$_!3m|G0ncVnh9ro|g^k==P Z+v4Qni=O}mU*7X0f0UX2ANYq$N3mQw6w^Cx8d&JpHr6Vru0y_f1k8;rKY_-GTgsU%-cELYT42r^M@N d)LQ_^W@xyV*L5kEX;sToZXF2&BnK2ZWUrv!zW2rHPvQiuM7D5QD*)ykP_Iha(IAgR0N`S&oG;{Bt#0 V_g=G*}Ir=if@A#~3Wffv_ONeB%1bMZ|(g3Q^|9K^Q_jGhP%;> 6c}(Mpu-Lc89k9voM6V{_`MX)XC%TgH-6_t@tfyA%E5ZW$(3PY&zpM^C>sho$YP=C1yL#V&J4nk(s#{L|JP=EO`450?|CJdnl^OrD$M$5 m3A=F<)2y%}mDe)`}p{<{UA=Jj^VF>M!on5#Mp*FS%L#T}{gAn@6I$nh#)W*^MvJ82 z}c#b|#}Xg!;=(7()H!a~MMX<&itNL=gIvD*n!$Tw)0Im&fkp5~riIDWABLOH76O%Tsr9i6PWqp1G4t 459w=+?`xv2=$lm-N_}+EvfMzyOT?tkWhp9qdU38j8P^3;7%?vg!;>gJGsOV>Mt+c$t8lYJo%+Nxx^4 E{;4~;#1QH)uiVKchERX`lRLS@5b7^y?&K0TC2jq4cXElT(EjDZom^rF^_SP~&qTw)0Imml 59C5BLcdE-tlF@*Lne{m<57($i&S9fxWgAx^AxRXmvh5F0Pom^rF^_Rq*Tp|day^QDXMtvIa)}|de@WfRC5BLc`N^GJVhHt@5ANg=L#V-I?&K0fsK2b;$t8wRf63j+C 5BLcDcs2=hERXmxRXl^q5aE8cXEj#)L%+>a)}|-Un+NUi6CrFsdguq7()G}aVM7;LjC2FJGsOV>MvLB =(&FLSQODZiSS>F0%#J!%7sq;ev7ZW6vR+{9hfpQA>x(G }L#UEJhh?Ekb|WkZRkB`X?3aZGCAHKzz!(imda<#e3JpqTxiQ0F2n|YWzl%9m9LISWLW9z^zq4?xI*v C%2%8}(SKfyyj+Mu;UV7|RGMnzGg;RbEp_bePEtySsY*tSBF@#!j5{6Jq2EIZNYRP&TvR`9t_!bNo^j *~WNibZ{7i8m$pjXnDO5&5CztHu_@tdGovPU+rf)KhUIX(}XC4D9vzYf|Md(81FXfW(C$E%>h&=nZ*Y 0zNUGYhq=oF`hUj*mjrUO1U#-7+5U(_SnW&Wr>P5~;?@FoaFqN#T=4L1?s0^AHu5z;73?+CT)M@9D?Z lI|YXL-_wU>drG{!Pmv=AJtzz2C;IJ$5QIbb8c#y>^iSUwJ^LI}d1j9~K}pu$qPAcQ>`F{{XZ5r)2Q9 ls7j=tA&;`^0*8`XwsXh4F`OTJ*4Xl<1!3k6L+&x IOhAXl4<`^h9Q(OMJ4ey_Z65_8tbcKsB&EVe7C{K>E6uumpT<~rVb pcRzN@hK>S^e${7j&C|*sOo|LbzF)HTJ_z$;9tg*?S<=_q(`CJ5AcPHhs*g@OSbQ2`&O;EkfdEi(>I_q%jGc!dY!iXF+eKj5VAy* XW*-5czpyDay_0}f$#g3L7+C}$Y%>8BE|`DWROni?*b!U_gzi8P&x2Ihbcf!Azzd63#MPQ*7B=J#dm}>cU*K;SmME6a;VY&>eP3;Q;FpCxOflOYc$CccJ&4t|1b!-X=Y v>nOb~$3e&1|<;A?%l`$25BKk!1BEbRse!@kd6JDCY*(vS0G7B0Y#9U%q}tZ3`&;@tmngkg^b)sk%AV -B_x0%YUPmlY6%&Gf2e%>f%@{!%+th9OjAvj$qln~<*ai!65%fyB#X@`xZsUrRLN<+P^Z7pm$fj2CWm+d1S1MizP(2LIrly$@sdVen1du@`hR=Q{yde46&Od oc`CVVg0;dN&52ENnZ5*!{@DvN75&+Z`DOGbJ_)*YC&R9*Of!8RFH=X60D*jUoJv2z4S9lLkYm`2D^Q LyWPfqV3KP9xCi{t+n@qbDp0)<3qbYIK7f@0TJWnYa|C#bfK7MQWs`WvFYFafkuf#UN9OPKWd)D>HiX*P3UutHa)))|f2$hTnjvJC?D;-GT(*oM)L;HKD>Cnh@7sHf %FM|bqB5tg|2G+gxTtuui+whCp{N8PU1#xgcO+WAyj+Wo+G(dhISmkWE1un`J#`K4S?8$z{Og?Ns2FQ cbL@{UM&~)I`$&5C=WQ?2mjCzgZF`lR|H?xbzv5uU{yt(Na6Ta}`c_x)-U58}5r^ #|*N;Ud1LqumFeTLiqfu5|$ua?qI%BZeZ2BLG*rc^Sdsv+%xZaJfR%x=*b*-hyE6`$D)u6swox;0?ss kL=<*r_Qz+obCbwFTyx}lsbCrW$j6vO_2(^rs^bw{+Sb0^#L4I?oZn_6+At23vj77ANJtK4LA*`#wBI =ih4(qUK0uY9noZc&dbs{3EyiiTS#Z{*a# t%S-eO#$MPojx^vQP<#hHMpCi`L)NO{yRsVwqEfi&e(F=oMZay=gE3+*6pzbYC~Pw(04L{d#Dx($SG??$(Q&~5GH@a?lXzgs|DX=|+}(bOU{)rTS@FJ f94a(qozdA|Fo=KiE+!=FBihJKe0$k;W^=AGs>>+rvMw&SSI66LeT_UUu$nAg{s-cnjv&gV?3_e vZzzJ9z7jkiL~{1NXP(&O}#bz-sXYBMJwE6djEgWe^VB_x QIE~V--tsRIAP@m>Rx#pJBNMGvx8c{WDL!MA7j*#zLUHj%{sn3+3n0Brvy@32Yb}^sp)7bYW5B>wL){ 8=1rqcxYSkEnTwerTcfZu|oFecKN@eXuRS!R?HspzJwP?l-3L{TmqeU!M4kE+MRD&Cs0K25x@)n<4%q NapDgmmwt8q?pfkp^XqL*MT8&}wJPaZasZ^y}v@ts@OdYwO3AxOiOj&uNv;GWp{w1*h4FBs6NM#SG$b J3pbkZ2n)W2UAGx5T8ta{A}|f*E7&QA6I>zTBFzsa12^#Pem6h@&5g`;rei{ qEiLCn|RfwYfaK8Jt*^!oJT(Z%uU%jm_UvmbUy9)WugOPnZrS=92-G|g5ckez?f77tZuSz$CW?R-yr% vMPz&})Cp)kea*N@@i$wTTQ|X?_!}#3u=gmdar_V5ZQDP)Cl`sYx7y`_;(SR6U~9qe@}`n&CE^1{aq- uN|X1ySh*>wJK2;FgA+vW<3KOGH5VwU0xyn^(BbTBGuUOmw$|Q-rL<4@Jdn+!>G0syVrtn0PU7nwa62x#sIoA-O+h%1}P<6* @=#hqJ7>mR^23n){vo~ihn^m>w+p$nrx>|(C=u3M<6Dgw9_jPQOK~Ry$?EhV2wmf&J8zR;|CRres>g& ;JE>Wm!o&vM6UZN8QYks<|4*dm5PdvoD*a;_mnXL`@D pqsustzVzUx5vugnXz11j9ge%GYm2_I-d8N5;srXxVyCs{>c2Dw6c!D(7MEO$5kVbD uMdIzP;U8J0XRX3${|j77{%NbHNIgsxntBc>_GQq*d4D^+hAp;T)JKYwU*xOrJ@ Op0a(r_*T;`8`U{ip3(5&~@MF%60Arl-guNSGN{7=t;(QDgyJh(3u>Xp-^KP$nWynWR);dNU!DG%zCa NuP_snZR(>Z_3}{-!Kg}0K%|BOBq^Jw4o!F3*{x1f+<9mbEwxGqGnW0y!8T)2e}A3nzrpTPnb98VdJM O1b!`Yy@9o+hkGc}YI#n=ZVlwDAK~CR#tI8g}2P&TM(E>&zLkxQ2zUr^+7V~XKwY{XPJc2tATfQ%@z_ #)m+(`O9YN-zQrGe(R(V1KqkXuius;X(5KvyO{w@>lF&Uaf!(3c^jj`S$Gnpl;ocloNVzgL?qt+lt?K 0emP-tN6`Tc;DcZ9a0Bh0j!pqIL(6n;kE5$?kP cW8M6B=FTuN-gY**-yMDNv^S8j#Aqi76}#>}(pU+`?Ap`^d27|AB?<^Y`Tt@r!`$7v_3ZfM;_2D>_Bf }J>fvg!Ocyt!LtV>bxNsqs##~GeH)&MHw6njOXEx3JH)mG+uV%Zke6Q3Z1nikci2c96b#rtu8Tl K)KXItDvjgAZW;B2HVqy2HMoVP7UJ-sd0zT44PcCIgUWq!W(zfem91QY-O00;nP0YzLj+CPxa1^@sF6 #xJ$0001RX>c!Jc4cm4Z*nhid1q~9Zgg`mW^ZzBVRUq5a&s?VUukY>bYEXCaCya8OK;pZ5WeeIu$#kb )2-kdXb%hc;J7wgAdkX!(1T$}T#2%YXh~J1oGc9Yw|8bpNt9Mj9H2l2B-WBM!{N*~FD({}h{03u?{-3 2la#vIacf0mX#JnVC!&o%Jp&sU61TI-b-i!o-M!tgv+k80A07Sr)A7;qFKoMK_FfDEtl+yfGeWS_kJr C{xV%c7m`dhC8L?q+u6}d-Z~r(ue}8q3N3ud#E-N^50XK-`uGWoZjp*LY-gK{aUyJ@nsX*EMJ}Mi%W7 ;G&xA)BNZMhMO??mKwYgs4hgHVNTk{R

5kX6RCgWw#fQsxr`Ol#mselmudDV>s*a_Usz}{Z8W{e0_ SVX(V?L|6G4Hj#(5)(>C{1})r71gMH_JO=2YKmspW?NaYc|<{x3rX%aJyu6{}3U{8?-|9O7kM*2R%u^ @|OL`Drsyy7-0n}4Wv2G!RIIJ@rkilEJxLaK`4;H)0(JMKo&(&Axf5(DkYBz6PIeu?kc@qZAevc{H3s MquA$r0f=e{R;I1%N{WJ^UL+lS&b$cb&tcuIlZD5>EJ-v|+A{FZSfNdCnvVZuLUDu4x3JuZB-gtd#K# _LiEX$t6}KWLbB}5Hej=*ou9TQM`BaQuH;+-zqN|4tFW4#3;#)o)iF;}oqRZOGx4Bi_p=$ M(+dexf;*6_}$gI=13C#>0ft@{6OmL7=9TXzu*)&U3P5I6|<6Hho;H?Itw0?-5629H=zI0xHJp>+ei3 6h`_;N4s15XSKVdN@!i(QxY&C5sG3@=)z9@ru2FvjICv<6UG9iPs)RrG}vRBzi3>@r5)G)9TZFX?3TijUyw{wGQ38@N>Z5}OkP5_-yL4l^ipxoj5r&VsA1?vNK9st1QS4M*C<91*(8$8hah|Uft*iS@^=e2JN9_f@?{n)kKoFO#`l Cg=|C)>3Z*dN|?ZM4`vi!YS;rYz>{kQO(LptF;3BBv4UmU=#p7R(qc$EU?bjEcFiW&UM1|K!CGnVbqk 4ZE7*f*_AKX(DBG&T2bQ?H1@^7Td29S7ux9L_Q-NBFivHb7$UAr+P_=25!d^1V1T4m@EMr;?lIVJe;3 v7?82~Rqy>a*}5T4i@2*&ZB+B4BK8m^Dd19knq0;T*RNrHAUa4Ijrr<)BsPL4+?vCV!!`zyE^nq*g7u )WMJ7!ty?^B&PY!5&8xMl7Z+B %cc*Hu98`7QAAJFTCDo~{0Xrj7k@#Y*ZJm@o5aKq`0W}j~++^?3{KJoUomiJ>&H-ordAEyh-MWxFA?} F=so!eejS2br#Zi#bQH^ldYly3*aRuJ1-FV4KA8Ke=WGnE{s$HSIzI<9tn;~L(F*g8cbKyvPq n*U-meE*>jPe@B6c8fxa3C!Lk&bHL@WQAxIgRer<2tG1Udb?`#$(DP)h>@6aWAK2modQMO==G{mdW*002-B001ih003}la4%nWWo~3|ax ZXsXKiI}baO9eZ*py6baZ8Mb1z?QVQ_G1Zf7oVdCgbbZsRr(ea}}6b|0KAvMyS5_n|i+&eem(Wt tg4I*+?WyQb~lO|K6FQB+E$}CtVW8)A*kZ$xn?2c@+tfUTpTy)cZoTeGtjrKYZ?Cp-$lW977hcoy;ifchI*HU}9Rbd5_3EBBEELP G>XqQ!b2|N$NNvM4!T?ySlT9>6n14xZZeS0(-jnsNB0cA2Dg;$9tiNG0wg!5YsyDT K6=PL2_1OTDtwN-Up2UR6sXiOuJ?GA8+ai%D?b6JuZvFSRy eQy-H4!2LlDtmzRnXtseK(-PZ*&;aQ5Lam&2%TdP>i|A9Y`O#aUe@+qzVu`nF(m*Z?QI}zlwagGAZVq@TQfH;18-{mEkf(LBb==LRIGE2ND~0!bVN*O+8R%}acji5R>-@)WI{BuvgJ%S+%SaxyW$ gyTCk_=qw@2sYpEZgheSc^#z9@0uIGmoJP-FG7%K_BgyfIf7C$D~EKH25V6Tlxfa*HiCvS-Cp8>~KE9 lbuSGqkN2B$s?&!|`~a7~&mjw7_NuDo6UAtJPfC~_N|{e mDi9+QT{1HWVJuvc!fIzEm#E5?kdbo3`)6w$03U0!rUT6Iy3;YzwfW`TJh7~8PnmB5E3y5lLGtIQd1i m*F-2frGZQ`_&h7G-|3+%Ag0;q-&Y&Z6+J6{YJxa!ed2SiOZ^sSG*e<97`A^}zwY22l-pXQflLwJ67M B(fEhN=q;Wha?$t4Ww&DMNpQKjH7PoT&fHolu2@zv}qt|u$LL6t~90^&&5|LO%X!tbd|bYs67F?xk_W *RCz7RK9rhrm_HWMRk&#R?T3%s#S3fWm`sL4N+%ni5u`VzY)8~QQAGDI=F|ICbdN(K23mYL;3Ds%QMV TudN=V#cp_)&nm9w!LF+js_ZR2i1??*IlL+x>c}wRMe-VTg&e&K~NXZt)t#Q|+zjGL}W%E$T=c_oBa6 `X=cwa6V=k8vigVzyZ;cCfS{pXnKSJ+VIn~&8%oOVRbm&=6v{eMHthfMfqytf8*KDxB(b%TGcoA@|)# yUmMC6Y!EV(1(h%HKQx08mQ<1QY-O00;nP0YzK@f?O>}4FCXBF8}~10001RX>c!Jc4cm4Z*nhid1q~9 Zgg`mY-M<5a&s?VUukY>bYEXCaCzlgZI9cy5&rI9!R~#qob#!h9Ihx_Y>Ql)v_5N}vD{InHzL$;RXa5}jP59w!KT)`ese8 Iu>w4d)%dK6AXW>#jIX(T|H&0HVd?!|WVYjkhY-PTi3nQg?`t!TLzIyXEb!1AlmX(nU@%`IByYZJlJb V7r+vlRtjo3(=s}g&jfa{6c)w;2wk>SehO}MoCT6Q-@wae{#J1H8y6WXM8ZnwgZt#Tu)d?zPvv{rSRU CU~tn{*_SG~4BMt*Xng^yTxvKY#P~j&(b|k)^6+Sa2zAR;W@Ea~UnmR&7zp<_;2d**@BTtyN`M_^iy0`AORsx~(>IaoI{^vW;AW!O7&=s~=xKeJ9Su2iC##_10Cq)VF@h8Fv3!CLu)#x-_QR|-C; |&m6(<~53^YXL}_{%@X*bk@w7ewM}5=i(<_b^o7Fz12-G+yN-YI7PD(unE?teo`;db!o5z3=-#Ti2OW S)ypcjnRBd3X_y3#YcB;dY9j9C;9T3By=z)|U@l3UjsFv2`yPqVMJLI`4Nc_Xop(c U`bCKcipDe*=bu&S$aFIKH8EyzJDh8L`LWzs0hDM(qlqhmW)O|SD34xY?<_3V`_H$3h9@!}%5i a$|5ty4A;JB+L`#hxmUrB2H3I>_4JM$&cI}BqYHkW4V 2*scc~pOJ2DoZWX|nmp`YtIUifM))_-(Yz}ecmT`{t5#gn}0{MfqyqrVpR%|qAxg-=;OJ<0<@Ff1G5N nzoJ}(yX{d%z+;FNR#P?oHB?Y-06I*!78BO-YXV5TRYrs5iMSGvkK8@X95#FO;Nft7iYy5@%EKtSJUe;T8mo8gQYS}!aZod`sB*@?-X-2`;YxsGTa*a$eJ$6N3|-Y#>NV2V1_w pi17|}`;c{5pG?1~l(ajZdB9qyu21|9bNAldN^_Df2!v{f(ne&-Xe7_Hnc@9_Ywgg?5R(UQqTKTFkI^ Q3}UbkY6fMT#n6??h|@V}`XabDn}hH*tCs(GrBJjiqWBuJ_jMnuC+jD3(H}-xc)FHVWV_R5HJy= $ilI9Z^`uA}nQszQQ)9xjh<9X`M#<|4QHf>e5=&>~9ILz4v5R*zLkt^lHFERYoEdsm8}Xqd_tCRbI3- r%Lpb!uY0rIxVyWyMZGGNRyNJ&Fv?8fjC{6bRK&hgt$NT-bM2V}aQItXgl(iMF-ac;{ibybrrnxU+!T U&Rq^0P53-JMK!!bSK!O{`kc;0jV0bdVfK{C5HTO@x9ljIFfjP9^KFSpbVajz`Ns2fE+zccE8^ilIK( )K}xe)YKsbMNJW) hX2D(_5N1RoNg-1SV@eJ&N5oYxod=6LZ>5>VQQ!5q5jf @olh=~lU9nYmxzYI4EZRzOPdpG|0%wDMIdA9r2(?1P^>U)BLPs17SO*mvj@ZMNrCKAbdA~743ck0}Ro jO)zQf|_qiL{@jwJO&Pt)%Nba6V!b|Fy!aoyy5lM$nedu#FOLv~koN*Z66Es`lNB2r!E4Ty$`drU(a8 krgpfXfaag}tY;Ye$rDHsBO)0AdS3hST&ENw$2cWTokD! QMN(@8Z-*Hph^c#7-;P_NSh8q73)`g?Ib_v@r;vJmW>k*jUia+MgdtIUlHup+jY-EFmwZulU&LDS#L; j`UiPHtdrLoLRod;7v)X?n-R2l0VwQ=jrsGB&%b$maejJnP~6^;9FC&vd-FussXi!syQ;XWfAfRH(Z_ L0bIYPyet8l6=5y*_hXHfjaTq{v+;jSjoQM(C9LbFC;0&*gGwz3GNUs=Ih;jCNAOe`h<$EJPt#s~9n#jz=L} Zo-S_C_ju_TySnT=^QIB&KFNEVsSl8pZE8u+-t5|+P=qLqqzlKh91*t@cjNI{E>*nk?{5a@YIL}LAAv )B7?x`UO(^~!~qo8<|vo*?!`AGvh1*_3$_ry>%V6GfcH;dM|3Ne+?lZXm8=|a3GXK3$ncPGV4P8I2C2 p(*IgOHEhsjb)E20&^wqwu?7{oGTk0BQgk9e3`<6sVq+SykFcR6OGr#WD=Mgi%1L%+5a(*$??>S8K%_ iZ?!&1hd&UFmv6*@WKJv@%|`=8?UMPB+AfKLb`VxO6L4-+qUd#YqaenxK{A0NEU9iOPybuv2$qS6q|? @Q{~Y;HfsHCA{P#6XAtpT#kYW`eo&^k`IfUOr-}XRE6an`_@Ao<&s|e`3YZ+74<$!{2-jnuFhjstAP$ 0M=jxP8%F+4C($fm>8;n!9!@0!4-k@ao09FXkr1*=bh!)^T!vsrJt_2@VB9=h}F{<5Z#%*9C{>%X2AabL_cf!TMRr(X&*%79{8Y7O66)eqB r6_xvp1M!dj)dF0v-GbXbKS~6Mhqin4M{{p3rc)ZV2;gpK!GeIdhqyybTZV(v8>o9#jah@dHj)Dbg;u P0){?WYqf*J36~k^k9_kE*L@6pN|S*4*6!Ve`?A*O&(1lyaLD|(fmxOqSr!hz4_vd*9h_&+8-j3lxkB H8-Dw!|8{!Z5UE%<{^E~8}!93%?TZ=1QY-O00;nP0YzMg%;x_hKL7wCF98520001RX>c!Jc4cm4Z*nhid1q~9Zgg`mY-M<5 a&s?VZDDY5X>MmOaCxnL+j1i}(&qg<1>>I!j@?7qZjU`PyRjEK^g*_yrbW5kGZPd3i&aIks5+@oB~iV xZ?X4#wePo&umJLa1d45g?7t&gOeB!_5-1c3NC1gHPELousgk}(ld^oCtn)hWl0MHS%jbzoyQ1yYSDN {2m9(p(%+*QzeDa4sPA=X}Zr~6JDp$UyS$tJx5=NTZPA|m`k2>Q(`k@(mDjyGDNVFGSq`eGbET$#1}Xjfr)jcG+ UcLaFyxmf5SVDn##?Tm@A|KHGfelzpAq%?;?4Z$INYSl*6mssJi`PReFI^;KHdt2mw3T~bv^_iNqsx>YnaRQb(otnzv#s+g8;^o(0f5-Y}OKgUjA|mnMLX&||ql{FeOE-D{+~!u93w%*B@uFn(qGTmQ^DC2;yW mAw$5y~5QTKTXFX)VE_ZZq;6)8TS0>f@Vv}_3=cso6$FV}GGPycc(m%$i(te&E^Z6b{S~q(64d@?|$H) $AKemw{gKsrA2K_i>2lT1N_ink(b<23n&p)SZE|+l$o8>l*Dd9ZtBH!!%IvDvedaJon=+FJ8sXq(f=C DTt%a76Fc34J!LiTH5Sc4`kii2nqOd+U8SVUMhC~>mslQhNY1 Vo(p>0UzE`|gN*h1zYIAJTM{Y`9*)!#ss-JE=bRb@C_OB4`!x4IYqAujvvqpe(&!Tb%qbr9R25p%ple6 HGFkGP|!#OGXgmxhlaBbl^)PWN^ErxZTsKfg^D+cgL66&xHt9Iy{%h=f}8iH`jZzU0>Zwk>P4 c`W3qj-tBX?op2k3mjYn$bC^XGHg0$D4bc Yu}XpNzPNw&d$#gRYdkaOOw<9X|c%}2L3c%E>ny_Y|RKBycTG($mU%o-TlxajFut{OVaR->X!M86gh% R%5}c%Y#(@b4iKUMBmIB6iL9ar+h}xp$n(Jsd6;&&F76_8Eta~xHsi$|WUOq1&_8-)Wg`hig&&u*q>H TiWda@X+3D>oK(P$UnFAtgm0u_KxiPKAK3w?h8_5ZYB9_V_b~HrSi8qnsnGKpqj0k0Gh$;NNho6tc!_ -Zi*Ii0g2$5f&+!H~0e0h>Dhoa1oPRm50i6`G}@-A1iuPIm-Xn;Z}n@49~9!FW`uU`@qsE-`$sC%NAn E&|Z?B~m?i}AO3Hv`0wr;9o=)Jd*a+Y3D!En+7EUZqb^)K#3-L=9i?0qNG)}uK-$hhQdz6EQ@?UGu!meG8psOAmXla97cJaqfNj t`D&=wk?*NA0HPpZ5>4gx!hTs@oKvCeB0s`QlN8W_Fxbdi=3L!ji782_iD5f6isfDY;oz>wJpNy!1<1&jh5BIvRWphXf^;B!`>XaP#DKaG~3{MDzkCem)UY+zK 1o#Vbq=-HG?;NCG7e_izz`_wBC_Xr)ZNAkUp<7=vV>?!0wqJY!|C)aZ#ATmLu0R#B2hpRq3LqPZ4%dE mixM9A>$Mp){!%!N)JOzG^CvU{AK}a3@}GBUkN15P{Y!s(rA)&ep=nXS{z;jAP3*wq`C*|dy$oYAt=Z F@`U*gHr8@u4aGV=Ao0^gYr}@}$MEi7%l6-u*9E1UtP_KfRKbv@sFHQA!@FhCSFn1{thU%0mQ&UY9S< 9ES`pCM4KwYBS|+$ElosuGy{|D!F#NmaHXEu)BYdK)jUY8PU?T-exDY84a0pwl8GpVwjl(Vr1y4&$0B );Xf8qiz>&4>dtG~o$KIk^|XDjkT%Ru%@y|8RTP>O>B!>oCnsy6b&UcRYdKw=^n)nRqFhYSae#+N&jg7@;jaeE18ti;U?dIcUW7}0uw#^$g5?UclgeK{~gzb3Tr$$YJoeY 74B3nal3%XzrBduWa4#MMhpR3iLei#o_9?jYhTvMTa#R8{vTR)T2HL>e;`&ZUON{OXx%b)_LJJQP#UB R1dxm&g476z$Dqr~4)NYcuCnrQ?ELI{a(247JfFOWRn~M_ErlJ9X$O_XHitBW{S4<9^q?~DIdOnW1sn #-pUc>aL{ln=02Y#jCWC}WJVspQ^}49@$PGTika_<46-WX$sTDS7BXll0qH3A{BX^p(l^_%&ET9P`+-P#X$@4zhe8w(_7 np^`vs)liWC@7o|lQO9KYP;0XWen^w?bT`7#WV{k=IZvs~R(T|_r-;EeMAk*Y86_0b)?&5U(udO)%N=)6rU{dCzbthRBQeaH0GV(Aa`C<-1~f efiP;1x<%Iwahg8m%c_8-NGk=k3KYNGE<~LhvKX*TBJD<^KhZLPW(fjw0m1@~gUXZGPrpeDP(TB-ZkU<=xHM!-^Sd(CVEVrpYgK_DDMv4)kW{2z|@b#15GvJ6%TDet1*>GGOCf }>-=)=}5oAPy+=c}fxl306^*uj1N?(E%_$pCaV*{y7d6kXy|JU_b%o}x*6B%lLxKnr-0=rIs+US3Y*6&Tqtw`M-EK{q8X(iWF;UgY#OVo-22tx4EEN;5h|rC)oZ%S(cr4 Xdlu==n<^>)_H}F%)QRC$xIVp_{q1XP1;|YyFMiw=Hbh7e!dALeg^HZEvq8klO|Bqlv2}Px(a>?*5O- IggX8h5C?us`ZBuLHxo-DKWJ_q4d53dJ5}$xP=?Ki0c+=GB*HV|ELiIpsMp8n@hsfrz$(s(g5osCJ<$ >GeW6+J;C6h =Z=QUEI()?iTm8ffN$@O@p$>zw9g@Ol5%2ie4P>8NR TZxeZbXo%zU_{{_A{W_*-+qoZuJt{ZX)de6w_BI!~!kKeGC6)U@=!OBhMxG7C5(c%^})S#v9YMM4lTi &uJp^uu%U)a+O29u9907`I95;+b|Ro{GnP(5FqF0Q}%9M1{rY|d @(QbWs%h9P2G2~LpbA!ASp{c!2}shFoy~6KFsoE3Otw@1NjBa!H~a4lSMOhX&(6v*sBTV;Ax`yCkps( tyzYJ7G)dzF?7>ekU}&hr>#9+Fm&Pr%CT)#~AWGuwqaJL?UHh4GVYS!qEI6rT3gT$qaIrs`ZguqRm39Rq75u_`Ue#GaamG%^-%shS+s+v 6y9q01=4k7LR0XRZ~~x3lkzeFvXWATjo+7U=%HO+IZIMxwKytvxPpgF&GJ}ogpSlY{j=xGqE8b7+vm` @`EIvoy(zNRg2OMPzI7b-22`5LHtac8F+xP$A@ed9umcu@WG_io80H-Tws kOP$_=+n_XU?&(5+FOUwLj^yVEC6J(Gx!-l>!Pd+?^$duwlCFHy#U7*c$B9OEVuV2z9h$8nWCKjEsrK {Wdm==HLh8Biiu^J1{qXkQIAK)D1xbaEc$lL~{MA%1Eh`i4(@30Ke?>dVbGel~AMGX2{mtaB^fxZH)5 >jH3r3WNLy`akG>T=sve*^fL48r)>6Zj5+6qsKeCPE@MNVUAiEPv2!6Zr?sBs)V6r0E?9N)-yJW|SWm YOrM!=Y1|(`43D($lMoRI02%qYBk=3ww@cl*)r>V}1ANlmOBeh|(4UrY%C8RvM08>Bg=OUr%E(fHWaq Ov{-tY_9M!)B{rmogXZ?3H6HDhHsKu-DXHx#ekPr{M|DoXj17GXLg)-tMqR#U&=~3%BuM4_6$I~rD*A X@r)VK8ypHu(|`|d>_iz@AgP!gepEL^&|v`HQX!uP3H$0S%!_%PP7~vqM0NnuCyA!*xy3+*Pj&>4&BK s?&h9_R!Rlc*>*W~sJ0w5KM?a=PI8cda$}fY#3$P#l_`PC6i`~AGhx@!Wu5zlNRvE8h9PV((2We79DrAj1EMtinS8uNQq1`E7$aj }<@#EXB}0LH0#}3F#OzN&6-eb7j+7T%t5El7uXSgh@OHTBngiNLq!lA_xf7bj6FCE8HSwquM0B_ls<} zLi(!);EzK?3GQ6Isj#r5Jj%{zO^LiP|c_z64WHMm`G?yVy#LxtQ!(aUhe#HJf;@dbsalgq^~f@AUKl KRn1>bL;A1l>tYpYLSE^V76X1Y0y6Y3=U;?7?OzvabHMk9`yC^PD6qTv`G=1~4U{TB^VA!FK +0gOn4hcuxL!5WxLK(KF4=Lb!yh1VJ_>W!w?Nh{5 JCMb=2{m3uOn^wpt8jWRZ9PgMUKHkM4UD!Hv-4sazw1`-yY?X`l9*+v4;ErV);11{@Ww_do?`sQ?jPZ>PADR wG{gW82(mPD>9yh)=yJ*`brOWTJzOUc{Q+BthNB@(Wm80FZ#Hg9mFj6orCdJmRfGud%W6S{ZSV4G&ox 629md@Jg!Yc}^Bt+Lx1B)0{9!m0pCX0&yP9u)2#a$5EM0V?hKRn?>Y**0*j`h1P9O-VMANe=`Qenl-N&V51tJF?uon6T1{@GrH`WA1g$;a+tec<*Y|2O|JaA+L5Uq5+Ok6 4^lrdybfX1$GlIJJFnx#iQoyRaq 8)q8KxXDXUVV=Z(XAz&-(FWQ3L9#2Ju}&t<;VP+>`cb#zaBG7`$pz!yR^r2P-lmN&HgwLZN=t9tSeT% E{Lo^HN2BoK0eUa3BZ3#3pbV_K_Zoj|V{M)Qkl*f?-6~@H+JR5$c;+RBn;nvL5TqWiFI!VmEO(7mij4 l>%y76Hz7X2<~6s%>MrGDXz8QBJelZJicwKecz9svau>dNb1@=#;#LhW3eKnswMeZVGKOCjP^Ki^8AU0)sQz{MKG$%BhEc}o{AhB5Zx@-~UJKhqWsBLN6WC5q+(R3P 9upjy}XGU?RknEPEWu8_{t&6LAH6M)kQvEBZaW7+ibGXG(TDgq2HyW _u|=CdbA)`l=n^lNluqF%sXsa*s|2lz}1Ym1{~=5t7QAa8QKzZMXXE%mTgC?YPq>wub1qiOrbLo0!>;(A*zh*i_-1e$) 4D_B&DE{zlwiek1NXzqCi6cCiH($6de`&EE4aew0J+qbu5(1m51=Q62Ytd$C<~>!O}}$K!=vUSXf@c5 PTX=u;x=i5o t5ZzmK-aPB;l&zO!!Osk7ETQFYpRbRTW>2L1R1V2PD>)s!4!4>>#9h}u`0+;;6zLT8Cm@A8M+RaP!aF 2+4LuHC%v3m7vH;?HPZp^Uq1)$ucDlPwdMRPm9xerhvKin?RuAWtQRu3z5Vj$5|M1K>1qwrXk{2&v51 JVSk;s1iMgqv>2N>0*U&%&+CVL)s+W-iprWB(>Jp4zg}5juu&fnEq&~*nV$*T`r-+lackN5Z=(%AJ=InVw9mv6UX+1Alies8(<2etl;D?)x)ym^g9TCYTbIN-fTmOXl bkPA=11cYu)9qBUO97z2RGZm?a^FUsGJ9d-yvG}B#gG~>JcENb0;vG?piPZN&pIRaT+jcDGCwIB+NbU}gRvVFi7{#+F5^&SWL 35KsQkfiL(!w-EhM(pz$Da!H%NBL%mLaZ27`xxY>z%!%iewBzF>~FTHhz5*WR!kG8m=~wu${n4jK$R(^H*%a3MWKA9gbrzR$ZlFK5yghWXfg4!=CN^hr _MpjKa}Pf7}_KB=>$%Vv7^Ka{z#3VKuS`;pIxA1&Th6IncIcmmN0ZDqW#6d3)gT=DKTVt#qz*bck7k9 @O)soDquo+SteuaUjK_xE{VB8O`=S5hl~$=kJ(Qvh;t4mUBEWD;&3t#ISH;?PIA+vw@c4&>KiT#$9)>}h#(f0DKfzWdRm7-S* x-utdEV5KbK_E{ZX0m?OOmJ&MNlO@2VdN)qFTl-J=QBdKxzO)OCf@#Fne#S0!2BfhauKQlh@0XRuJKU q~eI6z|mt!Eql6-b=fLLVsSZhteW)n&0xaicNx&E>&OB4SbC) GvD-XZTe;tp@kGMXquByohTA~LvLjuO+bhDFx=kaD#k)sJj}pGYx=&~sZYjAc9zWx%6eo@PJ&J2mOlT Gi0+jzIK8`O%xhfwc&oAMA(yOcY*MMF=y0c4VIO2s!iE>?ZXH6Dq@fKjS>&x4Tkz~|aRdlnZ<&5kah; $T+2f#&R+F>;7CbEHnt*)?c#Xt@~fIQbrzAb{Axz80i5tJ;pUz>o6j~$ Hc6`5ZSf*Q>FpC)WJ=3Ep33G4CSE?d#p${kH}>+6m?M;U>!ULYQQ|kzr21Gi(T161u(_38LwDEo;c=zr+`Yf~8&QKEIng-7`87iJf2w5$wIpS)N@5@XMQ1*G#Sd|Ir7rkijrFx5zqy7Au8m{@U=?rb2Dg;#e%(OB!wuztQ >P%*-770Wj2z)6Evh%_dzC}Eb&jQ)$z^E&m8GJ9hQ(~`3#GWk!FKVWdmb-4)P`9=U8(X)0%AdfyxMp` d?*?VGV?h1mLVG#*)8pi6M!xA;yad`Cf^RC83DKP?^{dnM9Xhm D^^+f!qWbdOUE0V&Q$J7_c#f_mPHAksPZ91lx&Mf7mjrUf9R3;;2W&)MfHapMANr AcsF;5v_fL8=_LU0mn`3F 4zW=9V_gUAM28SnW!QKg^UoY1SD%Cf~*Ge1ZM2vsmdfp$ew0|mL kCLtkiYW)W^S#EKHNnTD*--Q;P{`9hOq24Xd2vgq|war)Xu8f_e&liXw}(3D1XLHy`I+-gZqIJ;`#d- psJ7=3@&PxOtXfA+Wh@un0FJIPAAc>`kK%T%&BXm;?`5xMDYLQ1 R!*-HT96FtA>{r>ReTs?n-{}=`1vX<{B9`sm0Gj+6gzgl;_lYCrpXG-L8^zpz|VK^Q)00Ej$b@TVTkX D@V)oitej3NUFWeIRngHb$beo%8p?f)Ls#3^!~8UIm?6j7MhajCd($%IKeDGrpZ-p)=~GO0KA?|*YA1 XQRO7?n*UyJK*3uI6@SdI1MEM|)?I6t3?q?W%ti0=vFu2F?Loq(`XBmGSHduM~g8NZE`hS@b$Y~-wCg NH{&@->0|Bfk$rS=$u{5U_RmxuR3qhqGVt|+oTO#^-IX%1{$T&}G{pgj}c{Z;)LmLjLoZr@WLS&KpiZ eo4p)o_o|4W6s0#kq>wKUYzErz&n1mywox|5idH2S^H*V{7oNU#ksI<;mAR^RQKbh*Kd^hb@5KoGxGi w6+X{OX!Fc#2Vc2@<~iDfseUj6mJT}?6i!}Kz)c==;38xD>Lc#+&6lYS9uqGxfox2fMQT1MAI_}fH~S >s)H}EsLGnwQ(_aP)qYKOKH~4hkXC6R>$fAI(v8nB> 0jcdfC&=x_)|NZnMMCy_=+Rq2-xmyKDJRKx(kcrU|8!6_JgUDUgyc3)Y^Pi?)bO(cR_de2@f%MUkN-4 s>VL~cr|ZCa}fQ5ubznsTlvuus5PPmRLs3yR1_Sr_oq71$CBciM(&k!$4fmKv^;xWW4+bg+S5wb;3`? 1FmqE|s{^U$(=}uXt8$Bd+HjliOGGD>}>KnFwp0V5{s=meI(}i*pL~)ew7ivfTcUf{2RrXkv0REUw?j zB<;`rj>wP2g|~WWm@E2%_9dO?haNfgxOc^zMU~T#WK0PjcgGnFp=-BF(tL7}uL}KnGvE5Fq+Snn;sBBfO$cq`A>{R|Y#rH7MbJmn1;#31Bbpaqhn&-y$`D|<8a;bUnhY9U%16eDI}h%vMPJ~iutQI0K!)=YmD$ZW?(qHu8j0z*y25;Rs?Z?nzr!MCHDh&NYuO2wCaH>`Fr^N o>P2JM9EPVMG;Y96mEI8NK92t<^tyW5Esgt;7O9ofzw#a_G;zuO5r+zD*04R(ES}IVW`@E&4gl`*lA+ BfqCM5gA+wypicSjDQFcNZ;BZ0y9fQ~kgFaHk~dxQoC{uZu{t)?5H{_ewl`P6;6OGv;4A)4vOdth;_#$ DaIZ^>heE1SE$b6d?O^i4F-kCID6aK{u|6Ybcy7LaW|Q(J;hsBHbe0?(q*MB|Xi|u=6165j7@|)y;{G Mt^E`+!vrIrfL!4p_F&x5tn(RHt59Kuq{H&t6f_ru`{W$%CA1muTC#-CYc`cp>HIoRStQJ-c^RjD!TY k%VX6u|M#ipSL$z6o2ScTmqfl$UekN`{x+f4>QTH^kDut_Esh8Lly}G66YB&KT?aX`eS#}uby?w8eFH z$H||CFhK8KPWF1{rd-Oc+kcX4^PI?$cXU>jl6ipkqvCF}CNfOyJv?i&AL_#MAib_ritmE*MY9Y8|bF QP}Pk*$S8gQ95&=j!fb1x{t%2-!0?x5V9C=28K4eOUNExCZ07`>#!nA3mWBrCM3VsDVr!nm0Pq)3}e? 1q;?4bSr|ck~o1>$`~AH UZha2Z_b9uX*ExDja1r{6D_&QJ5sK1mct5-EY2+r1i}XwJECekY#F!QF1%L30q+~!?K>Y~xlRT3tTqR Ik7>xRo)>S!^_$76=_WjwH(BqqV)U_dkRGNWci@T526-44EKvc2A%@5vfX*;z0l=`o({17`KFBhDku( 2r7{+kx%7is+KD2GDi#={nRtEI|l5_~YbHbf^zRgzA`G&-pS*V^2))(QCqapoTAdcW6R}d>!r1X%q{zI_xzIRob^y+ CHQEKS=%Q@hwDWO$z3XK(XUA5)TekFn<*uWdT0S;-Br$GWiI5fmNS$C0?W5J{PXp;g{t3i3qghZ83)O Ha21NyD$~ncLO-cv>~3We0j3`XwlAoKK~JZFRc$zAWm4DU*6sRxR{@wze4Lu5{xpreES-nc>P6z_oe( cY@(mrLc`YCFR`xsrK{0?Nma>gzeR|~8kR)F1*#wF?iZxk)o=Ukx%zFN$F6>VIx`#gBbPpCZ$AiGhzD i@flz1merwY<61mQSi5+?zu=V-)6X0=a9>S8mzl%IG@$hIHt`>L)c|L;oI>V>TA4fxopY&)hGXJu$Px &YK)d0vazmG-!M6}9lm2<#zGV<_(ll;Ylyg%&rpgz}*Wl6-U)`@Rt*9=?{x6Kglz`4CSKX0lwiS?S?)wU9D^)PuiyLmG~VSug8rRWr% b~QKQt`048xAW^o^sRmV)=Ct$kn-lf6A{2pp=+xdav4~64Ts*b0WwfVBB$Lw*K0=}DK(KXR>_2hi=wo#<(+ITeO`su<2v#&|&PE@z@lHZb8~tB+g^pIPG?$-!7TC_~UqNBO QX$bsiYvk;fkVr@Q7p_Be}J8`px9-bhZ+89V!w9}Tl0kC{y^C-=9JO%{58*yGu`x8XJmdO|admf7d== j-9K1rqr2>udlbfaXfX!ETrPzM-6i&|w+7$k3UjR*P3>??{EESY1GaPWLULF9Y;t<3q<*F9YXT$Kdcs |9qvMRi9U`;MDc!nF_!&F;LZ^8A%Ft(rDj3xoY~nEATsLeE^ >+EEuSvp*F&uO~GVDFt}skWvdbP_}hLxQ)aN4nZTw0jXx_(%8WhrUpQu&j#cA0il7lBo=eVChFUK7il 8$&cGTm#InRRu>==)$6ou1z+aJ$YhowuNw=HhPGH^gO}QOen(Rp{yim!~aP<-DD6XY-=dz%eb;=a6?Y k>r6Vq)$4Z9GnS_G)nh3AOsw&){2zg+Em)?U1TD9FosR- %!SekoIfC3a}~%jN4I(wj6A(FxsMuKyA#img&juMh~c(?im7Y*U)o2xy|dxqHAPTEoPJ>1ZB0&+<1pr g1+^V3QXn^v@7p*6v$D^UCgPlOH)oOe!+KswjTmTGFWq{ U2tZqaFk>aL`zLX~-s1EY>mcbwCAa{$zpnIf4s=Ct1gNzuffM?nM~=gJjCA0mbV>lSzXr$<3`7B!b(+ Mk{8L>S3CJ5L%3Oq~7|0S}vBO{*?k-X~KBK(jGcx4Ryh-gM&0-I7s5FD!Cq(>dDp^wo#fc?E1{JxK13N`MBNdATY`YMzUJqrWXPA-WL}8o}vIr`|h>V`wWKti$jCLHQOj4T}5*iUGDkXKtBKIQFe}!0OGeVeqQHj ipDrh#PcT9az4qbH?UmDt-Xyp(OsHs{eeag-{XiDags-%qkJZ4Gx2#c0h2!}nE;(?C~!E1*MiB`t@() XMpEJOf+IZ8bY;3Z+|W_+p-YS;-#b-MnIo?*Xkx+->GCSDI4$bwSh&RM2?v|}9Jh}(zhf?x#c>6m`l- %v7#UG$qsY-Q5|Fj58>NPf~T=s@Zw+7hm8S_?vy8KySU814n>F%nOJJ}r~jZO3G{kiyjKVYo6sx0E5{skQhtB6C3^l>PB #aT4|H$U8pqhnV*tDPg!YU)5DPfut(hj@MpTO^j0($Z4tZ5piEM$1QJFEWLct2YQDM?W4uR%EQWq4e< {=p0lQS^s-Zb2|*CBIG4e 1}1aYr^itO`t;%>GT|}9!etGly UHI}HbtAT&!T0&-Qfwu=rcYdot-MRIjR`4odMP|B8z}(n#Sw28klDwsAgLbjT3;Yxa|c$&o9HtDxt;D=G}Qy>d#^93`H4{6h*AEG7nHXOyZnxs+5fndwRxD4oc#2o$61;D)M9EIft =wpe9hHnFvvhB1=HV?l$KGCW~J#-w@hbfT2ZF?rOjkjAmE$-|Gos^jV$_oRo+C0FNLE-~nf<9{GvT#P !kla1)3GYDJnVWPb&6LLK4WLchcXnPXH#TieW3)A6fjsF7_vONyX+O7J{%pLA=IZIgb3+@i{HM~5CCF izUE!A$+`bROFkDOzyXGPX>8;yNCtUCuX=hT|Rzb@$vhcrb8c98&2n?rxKV^;~1suHE({FMN0JVr}T+ @fab#5?%ac1CKOHgJ($bKB?uPb`rpnLdI*AsE-Yt~iQ==xGC#8f5=jL~Lr wh|XwqLlJ6s&MYa$-a$Rg!iMqCq@yrc$8q-8*^y4o!PIdD*0{{_(yLW(67v&a|6rq1ko8c71AT|wh$!VZ^Z?>1 fZ5Siod!wzgy~y1HyCUU|fjin3$~dotfzJ$L 7;EVI=$&g|WxC%BhWY7ua|hI@ZXeHT4}_eVd3>M-{8LIIY 34#(eo?xX>jAF6HByt|F|D2A%|$+4|Frc|;4m~*8rq779#tH#sS&xBOQG^tW>Ze`r#u%u}epN~(u1PY j@@Vgp(9&&)_T4l&`52G2mhSJ%^u8;I4DXO3tU3tJGMDNu5p$C}hqBI(k2v?-uCK8Snc)KHA%^A_Ju8MjfSN_(AzalMm4x~$ARK|?B6f#Dy(EB%$6-+Y{Edcqh#S(8DZYp ^ny#v)P4ZNp4sEQnXM4BR_!*CYS>j$;5yk!!_}_i0!(o!rot~a=Z >BYzAdli?r@R?%mO8k#Phayu3r?D4a%TS^)3|H~wbYWvl0qv9)ZH+MJQlc>_hchx-nY()u219u)W-R!`SS82a>${9@kS3VHMvB0_ rxVE5p*c)*ps49Yefie=08ssndN_XbOVgFvq*+aVNjiHfY;yMwPEAl6nzc8fXQN- b*yZ!54pzv2>2TQ`7*wwu;H*D<^L1R#yKla>pLF}9zvK|q-vV~iVOg@;fWb)DSBIJ#%=m#!4rW{+%?> &|wmf|J$!w^Me$nV;0Eht$ZpqX|d%z#~Tfz??X~Jkjkc6S>wLR{HwUJ v?Sa8>eh44RC-JTWP`V||u%;(A#ZDSBP3C? ASXrwPXZ|A;<@j84OBX}BC*V-P@9MmmUR^^fQ$^$gEP1KzwrzDO%XYRLMP)Of>=N@PS~sbGj?s_Bdj+36Bjl= iiOmV{yOSMZ&fpCvoZ>R6Ka&xo5epC6La@imG@ndPO@AT>v~ekNk>wvXLN><@q&F)ivvvm>kt1QP)h> @6aWAK2modQMO>(mV+V38003Rm001Qb003}la4%nWWo~3|axZXsXKiI}baO9kWq4(Bb1!gtbZBpGE^v A6J#Bm2xRKxUE4WU#l5Cl=oojn_lc;%duDND6d6I0mca|bk6eMv?5n6(@>_pk$elr7r1WAyR96Q@Ys1xIUFw9eJWx|!IkA1$lii7DaId-1vpmTI^@W=h5gQGtWXuvT2%*d!Xxp7&zTk1fJOkzHF7QwFv81${Tt9xq45vRzH>GsFdZXG0)Rt+0Uj~5ODGOO2!6v?%eT1PYB1TYC9*4&N0E< QA6r^J}3lFW1j&XjG5EEfDr>2b?&>D9W^jq*HLf%8T2w6A0InM?jLj&-vQM)@PEXYG(Z%6IcH}^Mb6G #$9a)pIss%9I^G2g18)>E#5QEp(7Z5!7dr2KojI#J1tK5|=oN*$7QIX35MRxbWFe04-CHh~icPpYp2{ Qyn+fVq`3-TnxWc~zIDw2&xiUzPk@taxlqB)u(2LLIw*WAXKqo=Sus#Gf>$cXei*SqarSamf^X_WF02 %2>6jKF-RR5i`I+fz5t3raeP;v9KY>1fvskD&7H!DV;lQ{L0%3D7U7D*A-`4wW|-dlwVr=1F5rNA1WA eOq$lhi-&5}SSP!Px4U<&HjtW)V+*c>4EZ{Kd;>l^3o;fByQ%S8x9Q_VweZCq-;7Ve~>(9xoQafQc&r C!EBdY+D)^kd$~D2eK3A!JH+~ACfi_;7j)|_j3~Qa-hb0bBrp;g`D^6vffvuqej)x8;_ypK)eU;;XzB 1I5420BJ;`4=|_mVm%(_5G?;uE?(?f!DF-|6&D_wOD!dx PEf>B0V=2Yaj2-9e|A+tXpR0EN^z?myFxcxu&3B>hSnMQVfI#fKO78wQry}+Sl+gOS3tTu- WKqq1+;)4X4<0@2zaJnr_nblRZtnn4INs~@x`;{&5w1r2(})W|RIh?kXxS$#`bzl2=}5qg0yBEo`8nk 0ZkdL;>bw=7_A<{WkH< =N#TAx}tJ0j8gAxBZo8KF?%coXO#)jmfom>&Rz#cm1QTW=g*NfFMOGcOVn?vjC+7qt?UJDCspucE}el x=f?Tf>Z;v_uKkoC5}=R0K@iNx1A;pv^cofT*Y}77&*35}X-G&>>0DK_r=k%;{D}nw=iYsXkUy0f%Lm i+DeXL@;LiswY|%dbv$n{`l$hX!&}CN0KzoS0D3!0-QtFPi)K;sNmkN>2&drwE>Oa2wjl1`|R<` nR{|0n{>z8WUyY8-;@GU?ME$9O>Kn&x0#`e+vNv+e`Ew%a+Wva~*2tG;n>rz1pZD2w$DfN!~Vg*$Zoj qi78J@D$lt}?jYXa*hoTY34X(6#aNXk|R6Bl6XLAto)Q=M8%u~2ycCOMR?DEZ~a3bPlKbq_Ki^W(q}R _R-LMBa5`Z|O|-C9^7W-!@Qx&}qk$)g-1NSU>7&Xg(cPNHkmHw_CAdkxcmBf>u1q_~%KhGER2PYBUZ* Yc;GRrMViyR*fPyZXFjJpyJjMVZ#GV5(q?*&o^MNLq&&12dBqGa{)bW{k*q9zvJ8z+t&5gW;Cfa) %dwF!F1(YTpFe}j*vQvbA{ozmDScPA%|FvtsN#(CybxY0jaacDB(;r~Pbu+`zG75#2KxL UXG7K%F&{AgJ&YN%LnnvDy6KyTb`!?KMx-ooYv-gxtL>nv-xw` $qeB%4Qc*kBX7zj?TN_;B^$!RpbY)$zmC>HaT!_jbR1_~6m+->+O;?CIkS%Ytz5@zZg;)BVdSrZdhlY @%$m3d9O#f)$Tf5l=e(kpbKN5v15AxwLlKkfj=>K?v*L`UG=t8u++aSd-+!tKuogV`))PmXXT~c*`R8 ^kch>FZ=3$pLRd1ta}+GGoB`ut&|GRAL6pq*rU7ajM*riI&FQp01;uFF5C-*NZI{A{^#MJiknLLp5G+ f^lRGUv+aXG8}Bao!rq+bwm=%z3PZ=oV>#McirL%?BHZnu?WRcX_olePBz(T8>~MTNR2*-N30z`}z0w 8;0{6m@FKGvuwpXsVc(c>i&66jwh0docgs;%#jAv9Au1`FHK8r1qlXND2Sn}_rV1JhTeQM_AEy+tt;Gx$0QVRaK8ZB?1&U6lZSx6Q 5mWF)VYjnRnOMDIHd|a_f$>3=Mk&I)L>jXSM#Ez2Gg}jZbFP;F(HFcR6x%tW*(hP>H{H~YvsWu3lUpY cp9bb(q{{TG6^Cep(_K=(~yt6a1)F#pn8}h_5ukOM5vJaGPB$SCwU_#@XJ{cvaEk9wU}}N&--< CV{vb;I$+L7C*rK@ocSj6}J2S)afUK-A?J8=q~O>kJuDA2=Z_~p<(XqISUTM3=h +TXw0I7ct?f(QcYG^4HP0wpm~0+iBitn`$pEN-8(kxgmN-YsK|Ec9N2Z;a^BP9?q43h|NZK(zjXS8Pl FYK*dy*g^J33WP)7&RqOl=QF7OaT9%lq1Y9$r=sQKM>7G44%BZrzx$CM+O^s$%kVc*}Qj>n@GeqNcPR xS4@9z^YP($zV~8B*2CJzs`_NSt8eoSz;H+(2NH<94S5Z2@-LA9d!9&I&4Su39jmzy)W;ZSb34u>@CM>Ot %$w`G5;7;_2h>3v6PY=%NEsFkL9D7$bc0vqt0iB!Zqy!oG6RDw4ct&N=F7}+kls1+Ob-o~8RfUP4LUy TGEzlk19|wLSpDKDWmyj5&CQxpdO!vYIZ7?T*G1=Bh$h}0d;<*aN`~xbNQDn*zU8LmF!Uk{V37rapGk VG@2UMvbTBL~#$Om*iGCbefVifO2gdj?*Y8o=?2OJ>uM6OQ>=H5a+E^WZ(Y|i7Wi-0XDk?hO}#tJ_9= qD!e$kk&ZO98?m4II9-&O)(j$0CLdadIW6q)2M_#B34ECyJen00H$!6d<%#A&MN$0(JW+00b&?*|212O`i6!5S?k4b0&=9IqyYzDxSnR-(NgHq -R2_=D4z(+OpiW6GQacs7{89W56jK`B?n>2Pa0~_dJ>}+#p}T6sXW)?5pj9T7ob(td#nX(riAGugYX>W2p }Dih{7uvTF;R>>RE#x!$xghh{w+Y)W0c=V4hUo+Qwl#4}>uJio#uqKfHsn#M4@q1!5;^TMOz((*GlU; `^3C2BYvXu33$t2<(TC(@N`c-1}+VL^v%P3qS#y0L#-M{H`;BW)nb-C~oY8ZX?fv3@e4%A!>SNLFA)x 9s`b&MFRE33N6Y(psbWda3?@VNHt%Fak8v~=97lIOsJ&UJPMo;WI-JV3D*dsNK^+DKC^@wiJ?97EE>d l5G7+B%kW_X$$rj~8HgeY*@!?N1Q%JHq~6MBRT%Gr0>s|e_jhIGSb5opT~HHsQ{$$EF5Qbwt|BNM3&ST0YL(bbF =A}Iry*^{jl=L6GhWxHk=vtEn+XsLOB|3Fo`!t(=2gLq6SVQmWQTwkbp1dsq&$kH*CR09$eOe0baK7; ;g{fpr+Vh2XS#c;aaB-qF(=GY0HEc7f}~CV=Oj{HINkNEu~df7HMc~92ZM2#d6|_4T7-(G6+cIV_X!+ xG0WaQP0(kqV*a$8#nlJO?6~#*6dxaX)dBg<5p8q6mhwt$mni_CNUY$$5!PLF4DM m=%Eyu^LW||%IAu}&k#Q5e#Vl6`jL$DYQ{z7c7~3gFU#=fBstU$;FxE_4iK6RyU|aD_WhiCq5f{|a9A #9Js$GB^dK S!eyGuPkPWn;7QlqhabSzOmuc$97Fr@!K^wl>>Q+bFoSt5E{@Ys*v-(5oTfvvF|g01r)q+>nW@bVV4& vTACZY5A6GyutZ?sf3I%b?v8;r43U>zVzOWa H^7y(1hZ7t6o48ef318SR^-EgZs) l|Uo7-Aj!Q#iNLFSEF)vULnsoKm`;el{Xra7D2(rDY6Dy&SKIWwyHs)jVTqS{~3=*OjoRPD#bjcyZoB)H64EKLe3*>BIp08iFx?F`8LYK4|qXmU`|Px$rPAlTK`n~e&pVAmQMtT!sC0Vm2FN6^P3U-Z>uEYH(ZOl{LE8XmBs`U~Qk(D0gqF%xwi(QSL4)bMssQ+or{B1A0BZZ9`An1~lT) 2bSxT@?5Vq$KAI2+_eha#*i;4W8bD?cU5!S3O8@9snl&y#zuPER?sEI|E=}5Z9qk7bPFTr=jm}PQCp| }Rj74uq{H2$vu)-7%{tr-I@{L43EfwyS+2s}pt7x1u&rHOr;=Ss{3TSh_wbB;cLo2X7xrAwS{^obdK; )nL&j3Jjr6KfMXr#tUY{COsW;N3HZrn5#Y?YO#-Iv^U1O;i$ifT=3`wo-du&-deb>{B&&RW^_;} ex~TaE40{?e7rTcfNE*!b{x|9^*r{&KfN)sA!JEb+DwC^ownfQ?a4Cen>} 63*+o*4?mgp(~@Sg#7+se@Z<+n3uS^6`@is)XFp;#B{uWTfh0y~Eco-PGq|y0f#cljsZZvP _byi>b3~^2{sY@VSkGS^LqWM^2~h?!qkHGETPD9fIy_m>KX^!@Po|nj_DIrSWWa;v*H+nYUO#HM$OSr *79-&RCQ;OyYro+)JvGFhv5A)4AS_|4RuVO#iME!uHwzu2zTgmGa((@(p{9LdMM4@ozwR _gFWB`vfUxUZ*`<;0E27Oh$+^()*2SNT|7}T8RYWk5Q%3xPRXb1?@ELu$k*tyDKsBLYfxP_9(M7oL%X>I$~Yqy!EJ;DTyhZEWu$d~G|c-=RN6bwz01q~ETbM^%tyE@ m2uT+u{{kgB-)RMLGnnP0nfF>AdVyk^~sE#k$nlH-c59L}CN&Q#;2zC7;T93MNx({p#`h)NIVgbC-Z! ducEX?yu}HZi1YOmOJja}KgM`S7-nZeym?st`>Q2&trk^-vXL_DeC{}9hq{R+MK6DQ(U#+$ Y`1_tO^%x_&g1ijf{akwuCu$V`oW+E)fJG@ycD>t5_ZiiRS_#WJ;IV!eL5 }-#>G`=u{bePB%@-A;_bOvQd-bAf<9Ug`=|!^UFSzeh9FL|OkP!8c6lmHVH_M`Wy;~<} n-jAM`c5rGMI_y7Q!Jv00kAlA6e(*X^Qrspr6EyvrL3eWf*9V+LzPRzo!-sd;#{n2{dLY7p1jq$e4TR zN+W~JQd=#cMv^n$hk(TZimpTFk1=dT4*#yWf;4agAoM%EG1 hZG93z}zj5kQlu~m7!|R^O51>=opUTq6ZOa<{>T}VJZGywJc|;=t^=sXdW6Ksd`n4mww4sB0{Eiq{dmo?%yWwlVi`?jh?r>&~dX{(BK=;q%xiCwVz*i*u95e+3LW+eIXkyKXnIG7oR5qahEgn2>ZuB{KH%j#Ha}WSup};EnPL+OjvwC`S#l$0^_0sLYUR-HUnts(54d}NCdW0~gdlXUY&q@^;y$p-(*vVjC?N(DzvV!>xi1+u(Q8(^yq5YtvdBMT{pWPmEphxwrpm1 -Y)@(w1lw#Ai@$1lQzDQNMM4(ya!9(fl6Dv(Gj_Yfhd0!~1A=>?J8gDCGjq)d%YeO41^+B=H7K>G{rP uL6vFMRsiw!~fkhm%qwbib(hiwbPD=8Z}o-@K*IHZWgBY2P5MWwF5L)TY~a@3 90*3Sm0SB}koDN87EP7ds0zPMzX=Vuk&ejt+VrR3qqKpnrhAS1NoA-fgLQ5e=x!biOato;du2Ba3P%{ sJu*a`a_85YDpw3uaGSekxPe($hoPvqKf!_MRR}o*k+nx AF8~dUmKn`uFhk(9oG*%$vhn%g){!)6Ujf8%?RD+-#nCt5%nlq+iSCvcLR72A7*!Q(B?YW{8a*7U>A2 fEBE7#<=aV0-**ZtChD1RzZZP9G!w;AKw2NUoe{-FZVT8C{eCp(&y1iIt?}RTe1~5=V>>y_wclReD~p C^}G5luTtALItj3q)xAa$>o$6Dqs44>eT|9+qt)-ntwLE1O#_^vz1?~p^AZi2`XRB_A6T9-ry BTTUyw*|5ffe%69SA-gMM3PPVsEJv&1NgBtl#hhb+1{Dj3jXbFXORcCl0n0-BP9ykH~J3Kf$YeJ2k=> A1*P;FI3-|qQ=#Nf+2d9ONTm+31VEZx6@xPn^{Q6g2X4F~bt`GC*7yVsO<9rx}ER0-0y?%mB9Kde38E 0?v^oi+92Zfl!gZ|VinR>rf}HTkWr^!B#CH&*FQOnqzWT`i$*n>nm2d;^=_+bBFg#eX(kbAtaevl<#t WoFNrC~?LMX#~r?t9>2^w2Va~wrT9m=Qz+pFPf&_RF2*_jUrN+j!3WUX{K2AkMD|xt6C3WY&qnIclHD Q?1T06KKp9u6OgJH7w$AjX6eWc_`PwxqWT}NbBr$eYKHF?tUp^&3Ox>8eiASGOR-40|3hs6=Q+pJz;@+s&+3HBEtLNP6*_5nH26n5{wkEKp+H QRIwMA7os%W*I<%*u+dUf|~r%4T=KWd|9h19X&@oI^Ddm{~t({FzF?eBN@`upy^;|KeH?f2iWe)&t6h }0;qn5%Y!G&@kSAET7cNQ`rk?6AX6`Yr3>h4rXHoh@X?0`SD_PHRp(gBJm#jr@A&%~t=+`L??RmT$V- ye3zHTK3p6Ac4_#dwGvY{+c$H+P!Z;2J0_jxwy^#`RAOe<%egoyOh^*eX^y_v#Ox$oRgQ%vBrRU{mhO jjl-=f;QX*_=A}YAD9_Ha0s=ST;W#|($smfL6cX0n-@;9~JiRHMaM`!a^OLU)yp#t?c9w?<%=D~rT%M hIH9IP=Khd(0zjp4w#>04a{^Wa+!mfzy$4&Xclss`tJb8+Z*MR9~*5CRJsm4LLb1Q=adB1U}RCk_4hf Q>xL?=rfER6~)-yvc@QmQHQ6jqM7ztX1tHY=i<6{;?*NS&cjC(CwcxmKsN eY96VaCu+XNIIZ-*H(sg=WU0Q=MXCsZM(Bp#S%B~h%WxEHd5;LQNG32bLZjn_W(Y BAz!~5hxN?sE4d&y%`%HC^2gdBOS)u;na`(D@B#bfdlXdyn3Q!At=d$hXHVr>)$Bp&SzM6;VRZ#g-|F <;58Oj-(tVe1*o*`8c?HY;d|94w@*o&Qz-9yV*}&#nLuBijY3Nne*3 LARl$=kaOgh~bP5LfU@u1ma3^7mrj=OPcy3eaL-sFEo(Q$djM^3YKpRNtq%+7K$-A%t>2dcr$tJ^E @XD4@6gbND+9*C`Kc`+;1gKsI7kMfz+R2z$gh66Nll+^)f&oqdX7f6Ta&YL+&L=1Z%W4bKv7Dwn)hSI -6C*b;w**Qv-T<$Q1BoU9^GWE*YKhXlGc7L(8N3}HO8ltUQ6Y9;#-N8i*{dTjhEItptdpK#hMExwxN5 26#W}_x>O)r~D$M6W5#6I8LAeEQPmoDuG~$UF<*^yNRM8M-lDStPhml&WjAHJMeYF_C#q*F9D};{bfu &ps_@;a67D(tro!e(p_V#C-OAS$9Et7m0rSk~-U%8rqMcW)WOBvs|mh)l;Jq?2dyG!WBU(AFGM?Q@3N R4uc{-mGjw78JNmlr&|Pze`GF*lBVE|qaH%)$(kf-jd~KEEh{in%Hu_+zX#6l5@!DG9+m#y2SA_~r6sMj5jXZ@;cpQyMrDmZhWHL$AV-mBURgh fiQ#c3!d^G~`sV*+i(L^$ST&RcHl07XjY`Q8yeuBVIV;ACT(*UX@+l@0=PLLSWO1uU%c$ +D`Vp#2@>$qNnV|a0eUv*4#+8owY8W~~&^f4v*-!hg15Z@Ro+!%#vTc*k0o3QBn;;Nj9mgCA(k9wD@C d-H*0xZCSSzmpJkgw)d8RMg$RAi#{zo)S`#-jrnW?oXnnR+$M=xmC+z7(3tQwAA~v@X>w5DA??m{78p k~3#fDFV#0u`$cW#_Vb#2TpKc0t!&2Fp&FmfuhV{F2}39kwno0L;_#3MxaRb-~~`3k1gaWU}g+xZ4gw6F+Z@l83fzpT%E(@T}aTQPHp2u>mg=5u8A)6$_jFp6H2Ek`eZ-6W*6y *>@=rPn`pwCK=8lOT3l1rr(K2;BpidA5t0!Iaae2Q|rp15^XP24&vIgyTCW>Hla1Dt>r34T-)crMK7E jkcB=W;Gm!J)=(4rPww*bFCIxp_^gnIr=8YNkSBHjU*5JSHd^s)*Wu^rHNA{*I<#1KPM?z5s)EuAVrUDM((}q>K=;r54*ESY`0|667Erk0rq w6AtucPE#-@j&gG58f~y-H%%KTo=vnoRkOo_#q%`Dlxr6O^Vw3_+bq=ZUz|@RVdlWdCmVg^Fq~9gE>V on!?6yjg%Ji-J17_w%na>w &T>V52dg50&rC0`Al&;my^N2fUc5rvwH9IaNusD|`-v$*{8gLkUf<3?Lk!F_F%a8&u3aBpJ17y|T!IFJYN0X-CB8u@;Q&nz_!ut&$oW#XC(eta4#qV(;u*9GB!51T0kvqOfW#bM<^pz+-{yD{fEUHT B#9oOtW8k{>&Th0pU(6%ES_fJ2K_LSyAeY!B}!otC-9wehM$W<1t^(-L9tvY6`7PF3Q~s1rHlfcOxnP 3=uLI;bM!qOXE1@Ms<7-L1I7$+2g`*?FqPk7>??c)(?~x@azLn6IbJxSo`rRL)}q{YMy){vpEJGFpjj b4hsG2x{U;RQY3W7$tg--~iPZsd%Gd{eR!D04FssCKNxmW}3_%#JnT)Qjb1o!0U}2{>C-P&HNIhsd1j 01blnB_^7-MqTmnfk(;gc++&qx!VZzGUr9~ICG00SCGw;$x!Ks`eBoDY%D3KdJ`Gi8Rrj+Fc?D3U3@B h}L`*%;v#rwZ~&(g6g2PFWt(Z;5#f)f|xnOd~CUUwE1sT*$$5p~m(F3>6+L3ee}l7aV3NQDpuXS+`zf V|K}cQ7S1t+nrg?Xnx7sPXRe==>0`}pl&6K^iqLkm`2FOK+s`hdgTmKN1$X*DT7I7$&Xhjr)w08 mQ<1QY-O00;nP0YzMbZYH8+0{{T}2LJ#k0001RX>c!Jc4cm4Z*nhid1q~9Zgg`mb98xZWpgiIUukY>b YEXCaCx0nO>g5i5WV|XOtlBgSVzbPXb%E%aI-ENV3RD?35vonWLg@@glSSBDPx6T``bGtCB=3&DNr8t #hKBY_uepyq7l%l+iH)}n#9;vpz+`SIb9?F@kU9@xHPb7xUd&oLdZzMcABfY)x6r;ltQ~lxVpUj?c(b 4>Q~sbV7CZgyWfFDwx5DQgxS;MpAX*_Nhl+Dj?!QXzb`(A{V%sS^ZUgdN~NJd!XW6M5y2moTJ53cb&? %W7D^{WGqq?cLdf^E(iTcCi!6M~x;EcVZ7dgk;*DU&+$;NsYGm;XBLYDo (#hJ9BP2J1`?E%C`SH0yPJK5Yj{2^Kdn+YEH77ysRg(3I2lit7oS$}5yojcrrXZTv75qyN_34T+~VHE lOMk0TWL{CCP3o>HDTyGw2B^ggsDOs}UtADtj1y-me$S6GoHvsbQ<8!uNY#P$NLWBfHt^L-7nYo~=u&)ygf|%uq_{=Sn-UF%IDa#G>F TY9l%9%fh*~t^rzmKuhX^N@N9J{ycK9jf^{mE|m$YN_*VjiCPD9+%K}TO>*!%!B>Mg4c$qALRP-s=xU LLZgYILU_)GXhz3V+s7bj%EW7@rI3=EGqc;sSZzHkMm~@q{9xg^P}Y7BU9!)H>R>!>uPkNrw4&O8u|9{(Ix}T{sbq)RSc5FCcF9!z`;>?gVPQzhQp+w EBceMtJ?TthyM{xK?*)1IN7EGS>L+SF4&#nU#&8hiYj?{rW_J)K|I{WXz3Ax^t{{m1;0|XQR000O8W& uT9d;aVl8v_6U@C*O|CjbBdaA|NaUv_0~WN&gWaCv8KWo~qHFLQKxY-MvVUu|Jd$1F)$o0 Y;f!EwbKIkMu7KU;GBm{#Gh%(`gHZ=!uU-xvc2KbWUeEYManv4fzPY(9~6HrKoc>z$t;L#`t{I3Ns-$23WGZbA*7Xhln}ZV8iryLJIV-l+k;uI5;7$KkSC7uMkDlIqH2=iM}kkY<;O=Oa16 +7{G3A+fnqyUsXUJf(_eNDN=+!()lfW&J( %*fVMEg4wcTT00$-Whl^x%UgtXr;0BEb83*&(Op!GPlqqT#=kTS}+C$%Xk@LP9&bM5x `)~{R?z_LBNvcq~YkiQAfj08TRUxLBWgY^90$v;p_0|XQR000O8W&uT9M~lQneF6XgIRpRzBLDyZaA| NaUv_0~WN&gWaCvZYZ)#;@bYEz1Z)XZuC{%!@PNT1W2rx12X|~EJk*cy^ZSoqU|N5w0=#tN_00~9t ?h7fAvoWI3((rZ?yqnhsy^B#fx}=e_yg2!H5_dM(L>c=;cSP11AZSX*Sr1*71T(@ursy@6Z|1ws=;D& 162sVb`|15fFK@y!nqY}YYFaHxCo`l)W}A?asYXuP i|Q09Uw|LVjAb{K~qDeW}VcwE`U_}A8vGSq(XUFR=kt@eH6$Wi#sn88xD_iuLcayxJDBTBtVpaYyguX -RS15eR5}z=F8U;jnhmxWsu$9p15<@>O0hCLg=S0Q$2GwiQ2dP@`w0vF~SgJe |n4Ak##^<@XQK6|c=W>-m##j7VOj8O`G^4hgI@m4+rHGH?ml~-GvXQF7Xbcl{sm;geR+b_Gu4PFJS!l IN7_Ad0)C7Wag}9;6s^QB;u!Z7HDLw!p6Ff&OJWuiEd{68jP)h>@6aWAK2modQMO>H~0G&Yr006TB00 1Wd003}la4%nWWo~3|axZXsaB^>IWn*+-Xm4+8b1z?CX>MtBUtcb8d3BQAOT#b}#ozN+T;hx3Eb61+i *vXkexME!86j=&G%ibGK8pMAy=~XwT-S#}&Nld>Utd;a|N-FZloYnI%^3C*(RyQr(8uJpWWTk!mU{r#qqP3C$E1B$x*%y$w |dZT8T0wuV{h9AvrB7E^-PC-?Cq8mM3haxkWM0y28 3oR7?PlN9dCtmlLp0HB@Dl{V5h=_#S&EWW*UVK@sisCiH?osbwj{CARUD7)D1Ic%mZ3M2tkS97|Anl| %g*x+Ja06mo|74QEpq0Qfg6-GX8D?zB6lVjW#hz<;OzeN33>9P8k%|>qbM4UM!1zt$txD4w~oc)!<2Y D!MK+pL2FEj8hHHpW<$#>*P7Y@nN;cj Fr8BMilRs^+hPsU*>4hc}QsxEUaM>FUHxP+{WC +l)_WH40SrdrMLmfE|;_+Qldu_CbQ2#JEedRM0xp3o!R9E+ss@g%^pOtTeIm6G_J4SClL Pag>yWQZs92jXAKP@m7!2X7I`igFyjV|DinrC S&Q!cA+^zc0839XofQ3_8hz45*K^`m2Gzq>82AqW1^I;-L~3B)=H=z!b>=m&uO9su4E9(H{W$}!?WxL 4OA#mK=#gsy_B+myf$qN^1?(yBVY<`UgSlIgO}lj+={XmkIZ)Hw#HL8vrpR@QsS*B~5J8D<+%B8u%;y 9t=i-=bAG3`BL2f*r>m#l+-lyZ9JX8=@X(@DH(jJ%fKuCiu1H>`!TwXCQjFYS4gy5dqMr;#gNxw>E|* |HI6ommf9=Y6OHTXS#H3?30Uf6;r@h#bGQ(T_!B9O2$m#P@;Jx;6odk@V`~#YnV?nKm|fEaUv6dyaoy ow2ktP0clF6ApsR*`Fg|zG%O32@Fj;Qko74LW&lfTrk-mDz@@-KB3mQK2q4NtqOi-+{1wc}iQW*w4H- e+=;DFqScQwMt{7RfQsQK>?1-l2cdZ8&GWB}IB`_FUVy8S+FiHMLvzn<)GY)WqB&%8~{BO1t80!I_*a $ka>`jm0nq*?BTM^p{Xi7Ds8Ndc&-12s8InkURk@w)C6m$zp1joh%z7jcj|B`=Hss3yWaFvtqqJMRgJ 9#U}h8Zrob%KOS#f+{6Pq9#f`fDX&&k61E=V;yJngWnR7h+f~C?*)SR>`5hBhx1uE0m-5l!T+WrnAjS OTJ4>c1Ej^u5n#S#~04xVTbkQg#2yhN_TrV;JM@}b6vD?2vgvCBDNJSre0I#Vu6B4#@dKHve^XekTfW #^0f^$U7nzUX|sIFOO`+9hYrGR?cj{VQAeaTa&+c5HDy68*;m`-&Rx#*LDwG4q>?2F+3cG=QiDj VfXyP6}Q}9W;^0thry{kafJI~kRh7D*Qbl&CH(bRcw4gz9tlBdF>H063z8bw)Nm7GaitsmysC>K|sg4 esr%{(MOwE8Am;qu41fsQV}zTUky7MC&D(vqmUc%SwLtpY)7Vwkz)6u8f|+JPA7u&qX&S`$9oiKT&oquqSorUf#2h>T3kZjcS|?U`Kqws=dd+NN%Chu>=0fL-f5d ZJvL3PStP>@u^=~>V~56=RQWLAaBmSF3@2vI|oZrQN*xKgq)OZiGX^cxR;4a}4jrK) i&Nls1ttMIHsfjt3FcLe=q6h|4_GAH-(am&f)H?FarP{$nWe-sNa9SBhQ8e*pslys)YScHuj-r3!dy5 t`8VqVkyjUgg@Xx#ZZ&hyn#kZVgZG0{{Kxft=+07iKb5f*jq2nc^khqytPN*Es%W0mUnK~5BmthwT#i uZti8OqOWsN{nnXtS}&V$r$`R*7&u#W-Qy4^1<1b{3@2L! c!Bus{zB~y@B+)TOmKOiqJNZrL2IB0x2dkBcsZn8e`S56j6fqW2h(MxegK-to0!WX`T(|NH>^KxxnJc nrT|FVmi0-ZEeR=O7g=$|M9&S)ewj@g;G*&3j*;!<}}C;#gpYgo=yeq9AOtM#dGY3^!cNTzzUmDJj)5 8mGKXqS4Fke!fu)aDzyog4hP!~|M8dx`#c4`D(L7un0Br3xjox%9S}kZOvd6Bt0;80^tMiD>22B7sWI >ErTB?K31SmBCwEh_5F!Jr^Rjk***3yPqi1?EV5j-~afD}MPk6o*^Eo(KhJC5BTqC;iJTM~w%m>&+-; alOsZNvJT2uWHpxnoDuEZCN2+gpoBF|giUo&8!GL<4z?Cd!xjCMmBS9HFX5P-!k4U_N{_|SYC >@>)NZA|~+_3FNlqnuq*DI)kiO939t5+M&uklFKH2jceA+0ARfFv*i#COca{ovA{`MhtL`8-s4m_oy3 DuagTi@?D!8lWOazNj5bfj0teRo2z@HuMf|8?>PEM%Uqbed?!wWv(@+YU+IM#42!B5}_?sVblabV_C# +uwTcz^g(gz5TFG9FLa-J)(!fm1uSbCf&Rlu*k^GN3kT+O%mi~fBmSJv;SikO0y)*gF9VxHaCM;D?n3 BO?Q+J=^iRfnA+oofJ@}}Z{tn=HE8H#_R`Kj3Lb1}LP5{%}H0{BB-qFx}Uv+YlV`G%4Eh }JI?!%|S=-&VktIojwXljAqJ^WCc!(T(D^Ftv!4+qe2gYfThYksm-hX-i{dyy5Rsh*4_I~TRg^iNlnR gwmtL=>F)?7%_;y0hTcsvqzRuY=qY#GsSzdj}#iir+uJ7@(c)1Eafv<(+V`qYDQVJ5L@85eI>|KX@Bl +)=$U=r+_9fj@t%laof+Z%xl1-Sjk;_%eOZA*cLPv_4*1|JDS34NZ`h{aX+8MS7qnZg;jpK45t*(eK# ?wdnQN?}QFv=~vMVbyNShw&?3+uvb!dJ-> =ZNl7|*=zF(z#*yPe+6E=pZ|E6rVF&f_;q%%4?4)l2?@dbgfNRZlA6(ztKAt%ag>pxwPAGStJU}Q92c )x)q1)jh(Jx;NyaJ-^249?er0(TWu<@rLKKteD&FRm_&(7l)r>8I9#!ug!{P%hM^yt~k7wjY}^!>!%Z2z`_C-238uv*Oc?CAW3y8h+eb7|{5)gYJ`x1w`%nPdCBvE5j`Vp65P =t|E#FX~EZN~;+(qQ89hXr0$_+G(MFi)&m#q7BqYgcQLf#9Q*vn$5nO_$9<6yc*KJYJ#tVIX6K36>(2 PFJS4-=z;!~3w;x$xm?k|ZqudTaSdYJBgD^z<`=dxQk7#Z$z(cb*0bJ=d6dfAu GH)T}DXnfsnnYbSH(TN}#vM(}pk%L2fUgSvfpA{e;ZqHli=zF^Vvux~LyS_t;8mWw9(b}u&Y?$e;=cC J6HX!GXGtew^b8N+L>`=+|D`ONx2vVRgf(5#0KL$=+iHRW*TrJUV*b6@jm=bCA;b=qKpFAoj8Xrnmk# Dmi>0{ut4rde<~`ae)h0|XQR000O8W&uT9000000ssI200000Bme*aaA|NaUv_0~WN&gWaCvZYZ)#;@ bYEz1Z)BWpi^cUtei%X>?y-E^v9BP_a(LFbv)E6;@cT66(T&Zew6)xIIc*-__ 98QS1Qud(!r(4#7l}A$H#Ld(YO|(?A0CdXOBV@80|cAzjLY9(xe=1-t-GQP)Rg5ej1!VDRru6*BmqKWM(d#C;x7suFy8d;3#-B{}=J%mT-q1@kj7m6HWWdG_PZSyZPof<_l0 u0|XQR000O8W&uT9FeP(;9Sr~gxGw+zHUIzsaA|NaUv_0~WN&gWaCvZYZ)#;@bYEz1Z)BWpi^cUukY%aB^>BWpi^baCzNYZF3v95&q6!fu1L0(xuLM`Ou77W=65)+D-g2vOJkoQO_q56k#6^*8 `3+qw#<5?&9@cNJ+Mv>C}^nNZw+x*nRfFE)GeOoUVjo_+Pn^@A(4$vYe^rqN?SbE5)>A^SmgSUU7EOh +@Gm^7(sSF4#)S_bMHYo@vHERD7=0;pl)plIwL2PYY3Ume-f+kOZ?bU-K!O%Tm{}$QGgo+2e8}YFVy% so5s4MSf9mP{Qb6_UhMHColhT{OB}$`ts#Zud^TDJp1`^_T$l`pN?NVp23)Un^sbk`cT2_J4YG$?A6i f(^-}4m11MXtGv!NtoBOi6_YBZ2fUhqQIUxcMOigEeWzrJRvobGtLEs PvQ}R^Hm7S9M-hyjE{fvXq+rE~*2SF9A48vMUbCL^&^-1qV@~d4_HqPe@12^M(6PW;tbPwFQul7JL~G k{9o$49%Xh2Mj`!S~4o7qN6uWfZ@3(X1<@co}K6a|ioS?T)! _n#N$r%vQ*JFKk3Y`Mu~!cQ0oHD{Pk~dO3#GtW`< Iy${UD&$Mx4-ch1|pmWBdc3LpH$!bifk04ky~@0ncYQF5F9YmhOLtwfWB$C>gPAW+O2UYr>o(<1zAmK 1PdC(tgb-Cuf+Q+|X=#$@MtdOOT1NlUJ>QX9I&`E>6yA6wpUzV4O`Eq=B=5SHKUo78s#%atL#fIK(D4 HF)tJ>%0+d9FoGxX(&UFUUjwc~ZE|y_#kR$TUFtAuMI1%f{Bu%2U2x|od=3 3W*eMx~?tK~L$`I7ISNx7rlJiD 9vQ~~!oiFJmm{bkt7=~10NK<`UX`hH%1*|LksiJokHq|i+|=QZ`0KEsQ4@*UI%0>`8k|ZLk@beeJdrw {z~wB#iy2mVc0J3cC`>`=7)Qfi%XOEK0lc6HL+(bjQF)J@a0rPkqnZf(i_@_ZSOr4iU~`eYXsNWOLs0so(?{mv_$Kg1p6$<<4!F%Z%>H#Hc?R_wu7oeLCC@=0S5dijVrD ?_6`&1>9V&Iw$DB0t3f$&k4YnJKQGwl#(|}f$m&%~@)NKisgvu1q15I$z5Xs*+MIc`Yjj*~OC?5a1{F ?QOMSASbo3XQV2fJ0SXzR72(ATu5h&ODfAjJ*})b>Q<4ciG@rveLSHUD=5wVKKxm#u|RmGJ@tu@sk?; u>o+6`cKyP9MxBNlwm-y_%?MZaewx9G6KYp)L3k>R=M^#o|u>YZYmv%x_fbKBMB2?MNH^@lMrdoo3_0 3&nfSaK@ge_IuYw=8HJkDf?gZv9s$Ba5ENIu<2!v@_Ilv4Uc>38j~$?bF2_56DSSkRp$E2Q7Y0=s~QgoN^q6brj7fB>7XU{eN-R-f~Ji6 s=y*(h6WL6ul5s(@?;*1X`Gywv7UX;oxct=jVi=i?Z@w_cTXMTRL!L!%Hubr5Gmck1bF@`Fa+BI`WC{ lSUnIp?;y2W6CfiL@j#p=0cTUAM4pc_OQ45@j#&h>mXu9L HWJ^byr^FJThzrO_|9ww&aZuQse4&p*N9Yh7b7f?OdV>KO6>W{a_$qPBK^rdXdg;@(MJ@MVmejwc$Hz 5?qc*;39eYtN6sadq{x9!gp$7bkoI+pFfM07oA#EK+!zi<70f@GWNXjX`ydA(%%QX6|?LwLhtk9JdhE j5ViK8Ppy_U9t*j4C{q#FGly04J~W`aK39%mz*+Q)cYO>EZxPg00s2u~S8_fN+Ju2%jrR@ZH2g(SSqz mU0s>h=yschpbui^#v3aGq0|-|NCFhzCL$HybqHJd~;xp7UFfQ<6fOxO?Xo9KNdDDFM=Py=;)TuiETGB |e^OH{f_bB1aL{J<+hl`E2PE;tF4uw~|7X{>{KmZIiE2@mSW@i&x}FS#6nsz9FYWX}!vE)A3a-8fl3< Cfmx0U?LVsJ$K1@hnrYObf``D8B#Rs+i@&1WgXY|!tBz+QE6+qJ&JXuRi_wEdmX(=z`Mt~)y8x>mM@D P-?R*z)qFYhc(q>^K%dc#`IoXe=4@`i0??8s`gKT+zls;3QK_h-}75q-hcUE(Z17u+^p BzP}2`wUU?xQ*&vJ5N;Xg`^9^K}K{F;{I546&zEb&ZjhyVn fRIyn&5Oa~t~rEvErafycEK>|ve&Mt?!2)v! cIGTarFH7HLUpBxNKh{Cgw0Wxv7+Jasxlza9n?j8M>mwzwS%j_Q=*x18@1@(MJoxbq-av^}8)=@da&O Uv4JsZ|u7W&G0k-fSu0^&KGL$-Bw#W$Je}^*0XO6bwtwf({IBIJ3pAN_mnJzcF3qV<@-`z8TL73U#Wz B6;w=IA$-Eu(q5dhU5|&f>81T`1b;qV$)X7N<1D1DI@@vM6sp4eDb&IeOL@J9y7A5aK!=r4)tzO&J|s C=rS)I>G+$N)Kf)~fJ_ZneiL^E3cqBM#$G2)$j9W+9M Zz5*5zI--ahu(#i==qrO)jR!103z!N@ar&G@`UEB)&Rcs9U?W+2G70Eo3?8G4}VHb_AZsO?Zda+Y9WkVQ?E{7+RDZ_gU rJj9@{4H>2MU`2G_i&OdLx#$-#4N_p)#yJ^O9KQH000080A>M2T$1LW%is+F0G=lR02}}S0B~t=FJE? LZe(wAFLGsZb!BsOb1zIuLq$$gMcrCkbK5o+e$TJKXl7^Z8AeIF?e4aHQe&r8HO(aUnL#0Oof&Z$=~y!kI>oi?5LcK)^yzsYWt_9(u6`} VtM7ww0k|MAV6!{IQOw9VYu-J6EDa&KPY!u#9x?;EjL-H3O0tDEKh@@};e@9);)VRKuE_3g*?-Oa;0d |c35H_OfadinDMJ|O|$%*BnWb*BeV&dpzWZD#&NGvW5KX+*1JCk8m_pls`e>?%>3uHsdqHdc&I6~e0C nrbZZap6VbyOnl>)!PxD3+Y6KTdGQIk7A=r7V-_qw`Sb!#Sg;N@Ik|SrW{+<4X1h;d!|@v`lHpm{UFS tQ&xaVuuu<2A;)2Fto{$}=jB{lG3@0aVAGwIu&~?FOWqEd0%|84aZ94llo&faAZf3JEJ;ex0?YvKdNB rG@Cs_>cxy1|U`#$v7|>o+TK9KB&$Y;2OrJ6lo =hxi7S20OU*&q0^Dc8OQ?kI`1e8#MwAkqj_-LX{3o)26|L;#PNDN~UpJO}uUH`tdqu|w@6*1LWapMSX pAP1a-~5Na*x~V9wpVf25a`pmMHq_`?r6&rtJ)vhYcSDje{G&>gWS-lT|KA1d&_Sfe}g#uAE5E^h_@Q !;CX=1#9s)JG;)k4*$?5kGdLBmKAw?cme7OwABt30li!890feZ87Bd`F? l{MrH7ExBWMS!nx|QJMuGd$JkJQ)Yi1{$8s+_&^jatL`CQDO&J1;o;3brEu>)ckho%cKriFun2-D+X-qhTk(N?Gci|W@0oZi@Sgou8N FJqb+?N*_ux;zB?-Fax|C;f*Z?FKaTZ90sf{WTBv~7jXp#P*1Y$VP{wf&<Ds>MgZ<{*#`dfUJ~0ND87{ro!3z+R=5X7KSU2>6>dfD!dy7)b-B; L0Gu^I4S>wF>QR#`F^a)7K2L-K3mY3gfe7#BJe#~Qta8dhq>%L`Y-Sot3RtFhx`SQLeSVI|0jKIo`WN EVeBOE(&E9t;-d7E)TB&1xs$N=(6toK+qg7TlN63TjGZ}6R(SmW($yQwlr)vNrTg#G)M3L3VXw);M&^ pT0$?NYB%6*N$=<(AWh$)-x7Y*nWF4WSf2MU|`gkrezOe9D$Y#Ukye}7K-B1?(^QQyGUO@M7TZUH+yc m&=-(M6h*dOj6sBf{}BS`oZV4*?SIJOlr@^IUA^W@H#ZnZpE8heDC7l2fb%To=pp+mjD_M~WxuY9Y>v9N (nmZ~iAtlvF{|37sD<89!$hC5#7a5F9q9C(2+6_2vIXbHHv|~$n>1pIALcCO()Kf6R^sFHs;V7=x~1scAml~{5l>xWZ)MmPi{cO$M$4Xu?JpIIGaO&nR>3C?#O~3Q2;^tg -1mRDVd%DC1>{(daeRh!3C{a*3v0oO5U714A<*L!(3wlEqbHtN7c9K&j=N!Yaf(;q#W}lFR&`E4w$0oy$~zX1;SRr!w`JYx*!ev#EPNdySZ4ad@?krty_6a$aac CfP*@4n+YDh!1Bl?NE>0Z5kQXO2pJ9h-^7YMZJW7-KZ9gNYK6!kDYROp*vqwPpeN$`9ceR#@e`HNu;(`0lLt46N@E{|{W}kJEQS!Y54yuR;qK98+a tuqkVcu9C#3r}TbF%2psou<4IMO&N4dwoVqBM3s9{ho5pVp9EQ+*V6%%&~?HYESbAh0ngrVxRE4v?J%0&Vpg4|$Bf>2N*=4Kor8C7}tu-*Xp+_;qgP%-=*FxRs7WKIkD*^NI{*s*cYsLa gItHXqA|tSbE7V!x9|WF{r3?k)5+nNYCx9XKLC6ZKO#-l!_oRbv}y>m*_VuyFqu+9kq8@Mo2X`LOF1%QhX7FX^^?ZZ^Z0^2c%%d*b?oar=!3>`V66tOg*VGgLneoXb`J*(( =91Y473h0{#Y27zl_%Sj>2IWe7P3rrg<$5E|ZJs4;yB*BG+Jxmjd1IQ3HY5oh}TBk1H~m|qS-8#E4)l G;?O{v5TxJ;H+Sz$aMJ$)!;EO^esls0~;dct;5b^sb0a2Tp3w=CdK2g5P{KxKIMvQh%R|8||od!b{s) d;FKG%^B!~IjcS+SN)D?#Yr!8v!HjXbR&b`LD7C`=Nu@TG7O#Hm qEH}ZppO*K(-aXulPmA?>vASR0Zp7U>zm~syFBYpm#6Op-8=yOyZ-Ae0I_lC%G~r5>jY(4m(VSEUoH| 02OQxcR$eu$i81sI4|KYX(tFK-!SMS%$)i1Zd->&Wp@%!!i-LIhK;^*au<^3NNLhqONtJ@8KePH2bd| a%-VGkb`Yw_`6{qb&d%hi@|3md#y0R4N|RMV{k-OO-TI1Lx@oHf1GNYClOHAEM_Lh+XnH=CF8w9z@>M 0nf)*V+-XJ5%b|CNrq}dsdpp<`=E!%`C^>Kj!c`m=qU%&~mFAx;$TED;?C>)bWz+W(r-aA}MpV3(x*083BiYnrm& gqj!3*C6!CL?f-rOF%v2qYN7>7vEPX}>cMjWQg>QU1rY3;wh0U6+p5Wd{t#d8MyFc*swYXVv!ATRE`N QF8}icfo_?$dNVy)1n3x-GEKa&HVzL21%CxooGIEAX~j5uO0lk%qD>6(6GKF{nqsBgLI+JN#-%8i=u3 o1nWe+s03!h_}2!*g@vYS1oWJ%opEZ>42cI!T8l2uoL1|G8&BRnF&tkqi?iyO?Dd+Ik&$Sp&_n+j6j- Tl=LO0lWtKGqNhnw76yJMj6IXC8J{uXIp4`Pb+k>TYG_w@1u*04!suMumXIir>uAN4&ZD*Iw#-kC0h6 IC$7Yp>sKxo*czg6@BOU077DzUYWd4vvV@4aJF7sFa1yD-^1QY-O00;nP0YzL2Bh=$(2LJ%U6951p00 01RX>c!Jc4cm4Z*nhkWpQ<7b98erUtei%X>?y-E^v9ZSZ#0HI1>J@UooqEunee5>=fOD(FEwV>9u>^v `BK>4@IG+CC27f7PTamtas7-?fZ}-CE0QIdca+f#L{qvoO$MjGd?1sJdciuj`MtqXZK6p|D5t;`+?8J|WAE)qHA&!_RRP#c>>6@n2i6jixs@Hy`MoSSqHr(Z3JO@kySHc)xlc?# #)~scn(ydgqZZ}|Ea#62z7X6)RQP4jwZm894#TQWoRnE`PNo*Ra3@Lv?AS*iSY1xXKWU@A<(Tn5b`}_ N>apz=GttQi6BGZPMR_BE*xh2j|PQu!9(rM=Or$)(@Vw(*#ql(q5779(Q`YJ1A4O5JjyHPEVqAbe@#( a2xeKY9Xux%w-2^C9GnB)uJ&dw%xtZMmek`i9${&hZ5Z){K_^~fUoxfITvW4nSqN@m!ZKc?TJQKB}9$ _)R_IN~3X^C)!e9%A6Wi5Gzmf>jNKxKl1p#|!g*VIFt%uj$T)U!&+|%}JUySDnu{94MB+P;t_2V?D=9 dP16W`nk7`HR9)tUbj_6r7YSF0A)tVI;!tHf$;7L*iI_;U6=Ew}V fUf0lpuDCG2XVIb(1+O(<(2Ir@&~=`jq)wZ6Z(m+qUSGIK+(@Wfa>GQ0NVLHp`KY^Rs`3>p8e;ElCK2ZoRuuXqDNUKiVs-KJ4gteMi>jO)u_QKJr@f4o_ B2wSVUmo(}T#&z0rS(%+pOq MP+L8NcjRGMG79gm$y+G<)injM@&09ohnbRzh1un*<1^2bo3=ntF>}{imPot$Cr8RKqEXn^x6PpE8FI eNLZdDIo-(ejWtnzUft`>Iyl_zsx^q)Ha+!~wUDJCt;!t}X-qx 5-1^0e@Ag>&sje2|IZCtXlQF9azJ9|aHJM6LliTw_PzRP>ukEurs&U}I9eFMadBwn*+#e*gjI1{(`lE K&3tJjxrgIy3qh@)jAT<~=X9m6=#BjGun6okPGp^4Vjq-X7#1a^nM%$_?6lq2*(23_6F8ZBcbR~Q`{# nG9eD`*=;b!ii3Cq0lc9|bzMdvp}gEd;0EE>t>H8|Z}8vaOz58yY{90j_FRWv#J|Vi%^N&HMQF^40r~ *CD%Yf%BwM1z-Y+`PK=zNK0Z{5yQTE0dQPf)NT2Q`o8PhsbF3L=#8t;=%j%aJbfEEQWhf=Ge#v?PAPu #;yQ<8;*?%PFFqZ__xs>1gr%K~lvoB;nyo}gS%ro|9!Qy}e?gJAfXdv_@RvWQW6_Jjx I2(1V4p-{qTcl;|-`yX)y_loSt=Nt0g77NvWMd=ThP3tnaqCW;=(hcm>1*`cpa8ax%h6%~RgiNy+u&* 8U2l^I<%>J%g)*&B|uU8VOpVP9eY9ofN1@m$E0`%C;`!p%#Y0$P0Hygq{4_B?h}UoqQOJ`lvvyz %Xr_dYeOjb?h_=J hol0(}^O4*S*Y7W1ar;HchcXsl(!$r`jqwcWWNckhHw^zIr3X15C`md{ZRu-gkz-NQgs@|v%7~~ k%{TY2rVIOn@>$w-xT87oU4s>vv9lc~#=Jt Q@)B(4VB4cy&VA(OJllF_f*D!S(r>gLTe`yJ9W`V&w~0|XQR000O8W&uT9ez|Sx1OWg5vjG4ABLDyZa A|NaUv_0~WN&gWa%FLKWpi|MFJE7FWpZL+Ka{Hg+lOQbu 5HAj3WzCrTdeShsMS5M2T*xTQ>4yRU0 M`Wo04D$d0B~t=FJE?LZe(wAFLGsZb!BsOb1z?MZggdGZeeU+b#!TLb1rasja12Q+b|Hl^D72I4{~AX (4&AH+*)l7G;Lrz1&TOUXlWd=l}MFK9HGm%cc{fl96P8El1RSyW@iutOyf_7#+oP<(xR5UOq~^_VSk@ Ij9qATCvr64kA-bu>ttqyk_K$SEpUyH(aKer!=P0*uxVi4+hDswWCi3{qs&1`z({S>(FyuuIX__k2bmU^FBo4fuGT&E_xc6)G273$>=A7?oh-l17dCP`|)7|^q6ESeZj7#+75D(_K*4~6|)7rO$f!@Z2ejLdS~M6fIbnKORG3``d9W;1ZIb;_!e28vARoiG>;(X?N&1!06Vmdg zHDR?v|ef0iO&QcjVOuLDt!Q;nK>nnzX|I~LL(q+XX`yx0gJT4U`ZId0kz8VinpCS!@B_w)Zd;Govl5 PjOS1hLx`k=FdYn~CuM4i#Nrj5!|U{H?_g{&eTW902?1d;z4gaM9R;%J>FuhI77pJbQHfpqOW%JAU9*jpZTt)QESBo60Mn>h@J9^3=^6fU*ve8c+;YYUg1yGhGRv{pJkq`c=;F7^*l O9KQH000080A>M2Tms%V^j8@G06k{_03ZMW0B~t=FJE?LZe(wAFLGsZb!BsOb1z|JVQ_S1a&s6s=BEYnaWM0s(SCQ?a$uc`6{c$x=gpZ5{t5EWLDIoSt-#}vZyy@)d{JoRaRqh$n!eS)~eh# ^zc6Lemp;aO`U|S#mxS?4~XO9TIN~$qmrp&Fu{}ifEw-z_?(mriI4vz^R41#((|9?hc~LJZoNmZ)Xky Y81MP(s%*-ILDJsnK9hjHA8s8^+|T;}c>`Ht`Oyzx1GKT0g}j8#Fe`#bKl7 up*x-6**nI|F`r&MwEH?o3N^l1H>zUjx)ZIF7WL2xrkCjxow+?^sLvuzVx6R7Dn9XIKEoS&=RyP_C$) a2X6Ph;A1o*iE<{Aqaf+k=amRFgwxK$rOC@h+pemrZ+*)P%n?W505iVOLWp9OpnJR+ic`{pEgc(z!nw G1BFCXNdEw?|**LC6_~P%QB$AQDyX5h#E}CuSP;&@KJcb5Eoi*9DdYLU6-4=JNg_4&?KODS0 IiDRK%wD{G_44Fs_WI!bN1lnn@vqrtqtY1)%bMR@s)jexP@{XSiba{i2J)*FVNmzlRB8j{Gpi9@YL+c $g;J?X`E9Lo*oGNVIX?loAkZs$i9;be_5f28deuvis5h!?o}e^$jCgwZ(;01qW~M!+5OGZJ3Eh)D0t^ Gj&4-UTsHJ|{1;d%ihNVrQ71O!>s+YJtz3}8ij*-~qlcY4J5*Jq#sVipf$e%@8z|svgIwjo`Xme|0{rO;a>!=8!Yln 6#!IK2*jXdyUEo%XgkIZ@4NbWQWFPv0u$bk#N+2;Fx0@15g3+!a8TU7w?8`Hjt0CBs}j}=tCH&)kn-` 99eKtC;XOo=m0BDD&fuL9WkdZKsddCePpkk<;(iIgOY-stC~%~Q1On)6jBl8N5rg;&Cp9=cdV~A?UvH 1!9K9USdmuR83<1^_k%^<`xbLgeS4Z4W<~pEYy&J(8hTD0BwrW+Ez(cr&*<&daYXMdpB4}+W C6$9!BQowy_GP*w=Li1GRgH?abP!mHlOK;?W->1{Z-;7Oc!$z1JKl2FY|J(Co}r;lCS+=~O)1HG7=LG Rqau%JqErFN6&XnP5Rs5xvfN6ET&?mK9kun+-v&Ej`Ky*^k_u*!LsX2UK=CbS{tM{g1nm+)Qf=)G^J33}m=Nxq=ttB{2y>H*Hq `H151wC$xk5sOMFY$hNM7tj3`;WOWIhsqUMZl%iinfm5?Si8$zALMr12C$`Vj~{FPR5!WY&;oMqohv* LnoNOhD7AY$Qw=S}JjwUE{>Jn=zWzQY`aQ!Umz8FD8{*PA-Pp=QP8Q16VNm)Vvvq@AbDDFhX*~TLWk! <(5F>;4svzy;7rKy@eiSgfW;n(6*ArSb#fxv&t4Lu|NvW7;jYx#>I_BFNlJc_{ERI&O>k{PR@wPvSkM Dp3*BfW_vWm8b!z)Bup$R0Mk+&9*Ft2NWtfapCEwR3uBAGTNWs05>$_YystB`AJJs?XM}*}7&U;ART| NR=86C&lCFL((u`aL2|f)@aI?wji$`vW&qXa$@KxD>Rhfg(0*Xx8<+B{Vz#u?dBmj&<+@2ap$^fu5TP@{6Q6C$M0 SB%o&kImSL7WB0Do{HTJp6HnW7J|!UL&u8l+vn0th#{`K@lQe<4u<5>?PD&P+qsV;|pLdKnB8XJXv(c Qxf0nFTiOG1ISJh>$Blh0)5wd)rMA3D|itk7IMXQJ%^6v(xA!KNg=~P#HX!wZtWdomo{{pgYgsS@EG4M%RJ? q32I8~4+HOE=a?s4#kKW|b8uHL$#N1dEN=sQ26hz?za+PH4O4b(I8hl5TAe#AD043tZE%K7w=FQlVU0 NzO+Bg`&bM2Z}B952hw%iKzJ;fzZ+cuY#5rm?=W{SWEX~rudGO@5&y4@%}l5{FsJ7}6FKvG^@kaK@w= nYY_fiD&oMKRH)1eFj|$~*_`PMqfBS^0EkwvSp89|qA*g7~%uZ)h?xYWw-~=Vqb?|K1xk!)&Zpvy1jU xPkN=m}qR`3mlIqr{DQqYj9+@MKgT3YMRYtfBzxq&ykTxJiXZr2(hYXGZ^Ka6ObOrfoI*pT9?_S|76z Y*Z8GozxV~=P(Oa(VaSDsnf=usaoYB|TTS)&JDT|jY`N+!STyBn6=A9ftcp` 2*GAKS7R-P vl>UJ{*QUT|`(uuYh;-aRiiR%Qq-Vi-WYRw -Pd6B<1wR%m;?X1DOQx{`GxivU%VZ8faLbHsU*87EN`^x28Cw%x*YM3U^xAt@a4RXK-8uG=|+GHsQcHa WJM>ck=^=knSq4?;xtXq_i)4ratY4{0f^yua-|$7iW8*HS4uskau%~4YXHF0R HHcCbun!#5ah&PpIBXQ;GP?%CAsGJx>`LpHSpWW({SLx{?8QT8$l&(QT)|ppTWO}CVI!`X@GJmakeG6 >G59mFzIbONpR+Pe7*?AHWHM<{rlIe+u0>UK+7$W>Y)GxTl`-)O?AXIOgwB+fffA3p&(!)V5o_$L&H!58v-H&bgP)%!ZiO55 Ih8!WxA;Z%Z)xH2C$;iT$=Qt`X%$0x>Vbk=CKJ#i;7R#Pd0n9}4h4apq38L!QY!1hf|wX$k7Tmp#Sux x;+ol!Jg_%0)(@J(M~e34z5&avDG|EIkeA@b=9~)Xc=n|CIvdxay8LIM21)7|Y0H?G)=6q5-i^#G$bj OpM4E7{itb_%9!b1Ii{MT|d@=Y}g6P7UsG{ED3r9IcX$YOl3_Xp7Tc4d(ei0eNC&K{kv*ghTX+5qn)G R=K2|L^&tcDADY*rcorPLKRu(EeJmpJvm6{+4qj%k2S7gCtU-gFs0&EK-)AO|u^99K%eXv+=xZWAnz? <7+qc$=teEU7DCojWnET&>2!^gR|0X97O@oH9{%Uu{%zsz!xM$CDT#ZBD%xnU6$M_*1WGvz*T?q2a2& jI*mA&<1$)wTsLfh2=wxOvEFzueczcV&lLwpu~gp_RAhJ@myi#dW;--tyhc@#=sf#C1X7Qw7KnWJm97 9+bBYZ`sywE|eZ#;&!PLHqd}EfLHEVj%@*`G>ab0RO2sq51Iw+hT0T=zd!q;1s`k^!&o8Z?ZhBx8<2e +)&#t_w_1`u@c1XeiNgmtK#9_)egov2V ZE*DogSLAS{b2NO^L)6R^3EkE+-VMa~%?cKSNwZ4H+SluLZC)3411VmLuYooB2k~fq|t2Z6*2$TA?X|10I8p cy3u=@%54)fba)h#h&;cz*kZkwbE_hdNOHp|C<80>Nxy8-xUJ4k_b)r~M^+QhhC*4B#wbro(qlpNP^HNi3UhVF#QX<=n9E(osEDhhVia )Sp1CJ5Ve-=C@W9_#rGei*~RMbMzpp8y$oS*^Cd`9sfKg;DSla Jg(87qSHU4(3yd8Yod_b&&iD4Tp5OqaS*)wsC!oP9+2g5HPOc#(#8D% hntZYrt=@EXfo5H?Jfw!r-Mb(t`A5UvaY@o~sdc8^Rc+#N$}HH^ap5qd*Hdsj&tPIT9Z&i@@|iAu)k_ |oGR5mM2Xc4$VeVNH#23q7o$G<@SgO4x-8=%%c0fj}1JWs&`={F*-Cr^)7af(gaRMc}dkQcBc#H)xl+ ajC%A4efzKf@-gwkTl@6+trON_NXG(0F(KR1Zv{tV0}uA?t#G~)&6l51W>B5N`*?q2(&E=c984RUo!^ 56;@n&TvSrcOO>T2Ed!H4J^&Gn>K|#`7*otA^mR-Y8a=R}bo2?y)v%D918@*Um)U|M<11NQDknK=te{ L)4O^8a;)k;G)P%&!urcl~P6IY$#b^8wG>8o#6Ob0Th1v!KDo%j>HT7Qz-#g(D3+yTpOic1PWpu()=* 9evIuKWIOClWR=Sjr8(bYIaCM*hIVqkBWn7>{UAbcgSvvOPYSIq``_B<5TiULEXN;arXvO?d2rDD-es 0KrSwI(8;C`npc;i4x_76AK#m|4)@#?QVcW)?=KgZNo@%q%jnW9R%{6{b{b6_>y4@T7NPYG!lNO44%3n7ur0M(tV;u3m23!|vMv&ercyMNoGrrs%FIK=eXKLNye>Cpefdv1!?AtddLuDn}RR8Y)n!JuRfG%Pq%k vyLF`Awx`2oeX-lt(eUmV?%*}>IW&gZF0S+g9=C1af-&S)G6HGa_ (*80Eg<+?^>Pv?BAicUmm@Fb98uce)Mu8-qPVrz3w&oRUqIlK4UdFo1V&A!DTb57Eg98{i8x4DUqg3E aCa|S@PYpyYh(q?!{SEO*uLCB>ofM} @*4brc9Ic2Vg_fnYQeA+kcww@?e+iS?&hd(o{Y|~xH`K7d+2;BFfBfguCj@54HU78m_DRKeUEJEZSQe@blIBiBGWmw?hQ*@#Ae{np~pr&4-tbt{5=3PP1cF_&P2e>?))3sy`=XOm*la$+9UKyHSW{6&^94vrij)bgL jmP?sue<V|D) <++1MIf`gXwXR%PDM{d3%7ErcP^w`SFIyMFHx~wij{{qL-UO3ZvCyl;y##2!Bj6tL`R5m8cWyB>dL4* 9asn)!1eq>P2s6>2b=E@fnS@``5a28LMg?HD*IJ-vlp>@@+yVct4HX#HFo^C($CQJA7cp&!o2crp!{+ A^lM8nE|f7s2FEl#r3n~39AM?v27v2!dA#rbMI{Td`osiu9kd7hfY)JX8Nic%+(kn ;i4yBA3^+oBg-%r2YYDtufx+Z$6gR{eCWj%dT>6F?@k$xx-~N$ez(LHo;mOiG4;i+Ly1bJp`A9Z0{<& +Z3sIE*E;3Mik!C?R&!NzKE(L6YpJu9HlfEw6j)f`Ik07g`DLmnDC`{tTIGW4!YB4+fhGo~ZGjPpe9Y W3m*qV?ef8?-@Z2eLQpx|swCEkWLUE+`isi9ep^g~r@_})~I|<1ZdwEBC?|1Ad5bL^UE9T0Byc>{x`u G5#lvVaCIe>JXRqIO2VLX9Y+-jh|-}?0XtxsQY>yvQT^Vqvxd579K_%`=J1xxt*r0&}b`-i>{>TbojP A9d~Jib5wxqNUOtLaM(>;JWsh>H886i$4P^OvS_LZ93}^v1{C0%s*S_SQ1WslV@PM^1J)lyAtk_^>18 rNu1&7rrtwx09*02=2<3SyYFQ+gsuV5S?kU+7?$78bWPvt@nAE()lQ=%7!f&9J2U(d_rX%17tPR))pR zo`o$JHmlKBSB5(qQ6)`^DUol0fvIT-Q9Jz{TKE@E8`(Gwz)bO<(1DARhVpsXp-W%opdwIhKSl2`6#)_nc Zkw}eeE`tf^AM`+TQ4E#`W}{Yh|u>YTuC*x7;au@S_FARR7<52w5}LFuYvfoH-hiaIdN^@!q;IeF)8V NqId`aNmE2>If;_9C+yblL#FLrXGm%)0d|cFi|-PiXH@rzVDJJ$&(4?gdRNm!_%ixzxec>8#(@S1RVo MXwehht@(B>IQY{7y=TK5F28&v@2?^Bj^mnq#W?2r`tFUxy_#3h2d{4OFPjwCPm^cQ_zGn(*{Y;xjt2 baXV^o)cOc)^pX%tfeZB;?w-3E={e9@*VvFLj_jf-=pJ%hL*&GnBbpMW$Ri2s125s4w?33TTt@qS8`V $;G7{fOFl5xU6chWmb(CQB3be*szNKq`ntK72ZFRfk6N1y%=P)h>@6aWAK2modQMO<_KHUd!w001!=0 00{R003}la4%nWWo~3|axZdaadl;LbaO9ZaA_`ZdF@zRZ`(E$e)q39@E&XzuH9vO5}E*M;w@=|B&Z$i VI3-3I=0zJqDE5j++q9eJBOs?C`pqP>n=s>2b+<|bNjw?VY=OJN8_&*8f!+Pl$}4XeL9`lN*c&jT4e| _FEh-sumw7nBUJyjY@}5>1+s3o?NblUYbGF0s 4@X13F=Km5{}vNJ&VM(h8y^6UIbwa0i};#a>KK@zJOhTIArRN8#5Q%26nAeN#jXYW@xribEX#IGM%qk QQg>v*WYVssH0>vVZ7T=V#Nf;ryar?9UF4cu5-K_;7MEnN4Cc=9(?!VFVYiPab1M>!ABK1du8%MNnh| IFyN7>dg=`NdZs`uoWR~*ns)Q(!weiE+>gUvT#~SkKO^rym#M`|B>-7X9Znc>q+USeZ `_pLUpHfXNWjg#<@9q)`PT6XNi%jwxE3DZ(!^1YZ7-_JLMbn$mptx%+>KNNEoaWtEq!;#XQ(}*fY?-A=!}lL`d1jH-b!vrt~x$x8l_amWWga|Si%9|12x5#@(K&5-xaSoZfhj50#d@q;ZOt4f`peV(o}jJ YeF`$zRsdB7&&ws+}tp^T)-9&QfeRSzZVulkuTk5|PFS&NxqO-rbUCWsa({Es;lR4Y??&m>?O Qx-?h|X&b93F|SZJ6y`e8I55WrcMJ-VC(#fDhj>9`vO|w&q;V0&eUe?cOz974axZ>d)GE^*Tv&~d4QE{(R*)DO4)AXxmoUhUP>L^# 0oilCVr>ur8ux-epiQPc?`-rL)&2e$Q>@k4XPuiqAyQ0H)e9dPBLXMWjrgQCm H1&)AfU9448Z|8U5ZBK~?U8x++T^_3o}R;qO(E~Q7k+@;JyiwXnz1!SdK#u`g0BX(Jw|`FqwAX|Z-To KoCOnzFUzXF5m7UUtqNZ4^aaA_P>}j&2@w~Qs4 ;^5kd7D*P@Ls1B{McZs-Q6;H3*&z4ZZ-x(vlI=LX#bFPJbAU t^=f!z*m?(-ml6^0k(kiB+r4oj*tm1050RI#IH#I22wp0Ru)Qr5Anal&)WW KOfB)I3ujPKzW5fv;Jjv_w7@dLkAD)fF)yZI}B5{`N^Jvw}*+Drj-VSw)lGXh|nJajz5L@r_Cc+u&}9 Bq;~rIqZ|kPUrQNrGlXU35!@>RPZqNU79P$h0@?5cq%z&zUYI*qx GJ5Q!WE60sVJjfD|zheW4fqg;~`JVcP9)POMNvw_HV!FLu5a2EouqD4W(lyEdR)ecwDTV=k(FYvfAo6 ~D9N=e{LS}w+94CI!KCF3Ms}JTc|jS(VeNT^wjG&AR%7ZOvu~O8wP%2qv!8dXEk82dh%2tV!}x1bv9VX2gskZj;Hd!YaM-C)X M7pIU9L0&PEkg7kh&NImuH{6~q_K;A>^OwNV8m0)qwi_m8p7uH7gD!SaKsw~k)z2Tgi`tp0HWJcaX)`&b=sZq5HRaLG#j)qbEP4K+CE^+sIF`^b-s~*Qpnk?>lLK&E3fMAk2FlSY^|HZhISu+Wlf_EYk RxvOzWN~9G$jeNElmrW1RRv6GNhW}kBwfX_X`h6uk(2}RGoepCEtZ~0DP%V?MP&{(6#9))VLm5FhJsV Ys4pk(+sn&OMpp>m^}^S+>R4+!flO`ygL)P8D&WEB)H4viiZ18yacd(y=epX+#uAAi1c}#pQWIc}YlQ 6B_llVS5gVFw*2}VHO8L_GwnmZ>nK7^!1dSotCy`%^`e2E?ojljbx=O;Yttas{2;g9MIoq~7Otc7qED gxxoGP~6l=@uSrw=H@pnF&mlFnKb6AO}9kWqbJiOrjC;O=HKK-HrdPG)bx K6apLDJ-f^4rS0d&G;WsvA!E5T!^g3fQgRM~q;wnM+x+ZJ^*6I?0VpP_v? K;06*7MrDo+_P2pg=0>Y`_uBvqp#Tmu&sGV_Me=O_z=TtUQyFPo@+^e|89J^zk~#NVFbJyD9Q^_XM!} Yc68oDW*8awN5KlB)V860{qhBHe5Y@@j>vbc70SFMj!%1o*cnmqa8v#gEhd9lk<>Gq&fLIo-0t}EvK_ Pm#VOppF4UheB2%o-eXy3VTEfDxVt~Q-D2?dTmym?-$pJnPH;OaSsRvN6@3t}##i*ZWfIIC0%>BE}e4 LOuK0NV39gdnvIH6B?rcFnR-_K=^G4*TcT*Mp0bi;HO3X-JFiw@9BG&2(>CLFzaJz2;53$qYX?u;H7k #RQ6jmw^HN$K`i7hKYeW@P%S>V-?_&*E+j-K?CitD&XSn@w!c_IsNN43Cs^3y-P3Ywp|VmpC4`5DXjd Zn+5(qvRyCk)*U}TINY#fSouqL4E%p&$6nkT=pD}4Y)T-iPtswH(w#V9~a-bX!59J%;ThbJ$d9yD @T&0%d0b0RlW-wyfw`LmrX)CVDQ%XDptT*HRiRjx?P3=vxzKa}iZiK+v($(JCoZ-q+&s&0LrSBHX>7hjii`H5Pyy9C@RPUA-5ZoABQlMCzH7qW2c`1(f FQ_Sqpt(Sn+gek8|~bE&HVV#;@N5qfXFT+{MJye4SIag3)T*sYlpptU0pd|Tkq;VXlr*B_CTPBg9j?u )()yh&L`J2Gu7CuZ6n@r|K&}fGv!7o4?}8VI`bgRh4@SmerjeT%+#$*PU=(28Es-qcl1;Q9g7nExKjHn$Of`>W=S(q8nkPMz#F)gZA5TW b;qeW&CS$HDCfhS{>m+%wA}_3N6SaE2q*qJ@lM(M!1V|Ar@p{qPWq|7Ko9x3FxPM&h(Vsx83*2)@Wc_ (`hn!ApKF}awI(v2lU0Ev3v$_ARp)VLCbFB+C+}oRhUzKCLC*3R5bkB3#<8XvxYVYZb7l-Xc`D}lmyc &U$akf#a1cR5nBG32t{|!}#2=$yQ;J9H(;C8v%mFJSxeLO#TeSC4!+s4n$hgPo9yTB<{<+vL GVY}JB%>bi=Uh6!tLtcab>zW1DoC~jLY>;LR@G*{?~MN4i|)6XP!`na62TXerUGJuq}Pwp %w`TRG4fN`Ba8zQA#&0o4>Wkwzi4X=02zBW#d!TPX3I<2d&=rbU6!as|K}aAaiYtjjlve6YLOoU@wwY RhyVl5{lz4u{faKpd2TrYP%&&Ed=oQvVXtIlYDo1D=WhgkTCY#LE>gjK6~PTQcgVQ_q7JFdKbAR(6+h ;|#0Yhscc+U}jGZ&2Q^nYq^wkH_%kms9s9nfy#ZMcc$)Rtsl2gJ0U46s| 34F6lDI&+(vKuuj4nEwT_7an~qGI;Djq!yWG4RV#IqHDJ4FAKQdRRmieEm}m*R?^MmhUXXnGl&uJAiR O?M!rpm+-*_a;q-nO$#+=29}AxcdYEsBFXy|+F8MFu+r1|cvWEGYtG~Q(s*}=Ic&z2lqg !QTH_2`L$?TTlIusVDv@JrE+j5!`=`WH44SW40QP8%*oln6;}IKUCd*<>a}QW2DofsN74F~{P)h>@6a WAK2modQMO-4zpMN|90015b0015U003}la4%nWWo~3|axZdaadl;LbaO9bZ*6d4bS`jtbyZPs+cpq>= dU=p548bLSmU<sk6Hh$UGxq%_b0!Qh49C|?MauRj)4zj<7S0H@H17!-6>9Vb|T7tSwZI?dp{nemo+h4E=j7-kFi2D*h1+sSbf5>=8a`D?pY71b0dFOtd9^~>I6%xo(`D6 z`1$p6^0@;KJ7~=j&r(?)?n}QNRh8SMELkC=6{n|3MY#+%zV6j?hMHbC%Bis5UF2G$eJrg$tcrW2HsA BFD}0buBq#8($Ng#j;4m*%u%}uwOgWg>Ci_@cnhEL{fWme^wx9n#bLH(h6yqc%f1Z^dF?j!YetNve+BR8pDZM`t9XxSyJvR4>=VCF*%V(j;jJ 4G|S3QixGlDmmLRR&N`zW=RmBuZ6lFsopco8Xi20QOQ5V`BaWWOqWl|GGgHdsSfT#J|( fiD^X7&$HZ>NDBf8k!%9X#~V@D|Z?<+&=H^r4MD`_KmjeGRV;70rhP)h >@6aWAK2modQMO@b2;@HF!005py0018V003}la4%nWWo~3|axZdaadl;LbaO9bZ*Oa9WpgfYdEGo~kK 4$R-{)6!Xc!}HWNwoCa+yHL?QS0HyLHxZ##tTwHw99NMfaZ_BFeP9kp#DY{17N|D`G^tIPgZ11|RWgzb}m3~9t {yS4!aV)z#;r6-kTlQU9X;B{9Ms-^3RC5q_QpuIj1U}D{-1U`N&$H5t1dzTkzhFis>mpO`chjEi_pUt 1iwgppZpylos?MrSxFw*zse!NuxzU{}>pjoTiC#PDRim`5R^nCPA-%7%wuPxHVMwjY+m+~5)n+h@zV$ VIzqshs>FPqj$L@BgWLDrd@prF19{WsakOB%u8pHwYp@0M~cY2)C@yNmG7kW!@o5B`^~Cy32A})Tlx#+$nFAf;rWR;2yF%+ e_w`Xq&3cLC;pAOl7(fg#-wPvX7V8~PRtVT7^vRjEgNU4TBC4nrOLsr&WG&_7`bxUM*LBGxV fUHK9`x3~9YW#wsrSM>x>Ktg39v8$P7tpK#1>i)lY7 a18ao6Z>X2tZjwd|@UkAWD8Z-B&e@Cc0Ca~XpG*8~1SRl~K<#P^^s7KG71QWbfr#oIUEiPC5#cts`dv ZB81P>1Q+w@twBXRJK#0W7SW&Ppg{DIkK21Xm^j7DFlwGXmHz35$~`%7V5pJJbg7bMgVK)ffv{Dd63y J~!wY+Xn422Iin4dqC<#f4LZ7`p#f^vl6lfPXaU6N#E^W{AaRsph$kjoC*c_zZu|$oCQyKv{(WS6Y9a Iv5H(#lV7xn~>Ye`l?(1rKu;joYHu+ZnRS{#xR!wTe6~vcfXgXm3 YXiU{7$DF0dg_z~)3H_a!6@;EpMoL4Qy2?EoREDSn4=(PnP5{2s0J)bs+}a3O%26y2|*Co5t3Uz!eLd nHkpvY-GTD`aBgsS6(ZuIa0SQmUc=>!6GWY3XYvi&BwMTEdpeltRqS4ut@G=;bIB1k8Ph^KQU6X=W_c Fs_~Prem%6FAQ~3btebz37Si=hDyGi1NfQVemH#=?&pM#C@(YdV4Rp?S_QdR`t9}g>sL~1NQ|a(vlOI R*1HCN+3YM$)8k#%{a$>X=@RnZ3iKKrVFT)h-jUrZ!gX3j*(?r1AObGBFy-=>V|E&5dO?2Iz&Zkccs$ MEEn_QtmED6vM;sx`+6KG9E|`Hak@&eH7iuA10e}gnp)-QCvTF8Cudz^2C(fa;{^3rsEkSVbjlN#K!S#@ca^-b*YUFfoZp3d7+XHP&eTm7y%j=lx+)}oAYih-3lbJ7Ld{0SrSm 4<3hyWRIZHLk|moJ_5<}AVsUKi^U>BWEH|%g{0dg6FFw*nn^Y%_OLw?-lZDZj92=^!N~EOrruR$Zn{E ?H+_w5Ec)S<=Ng-2B7^_BW8)lu2iXDSt6XU2s_YnRbN OeF~{yq?RC`axkcv#sPH~{kSj1@qkyq+tur5KhW#~9?V$UJAb*Fdkj+Ldup)4dCON`+MakjAb*o%!2w PajkNcQ+MD9uSRe>?0+-)c$ZUAUqf(s?Sb5n{ced5DOkmYM&Be149*v1l66p(Xq0qdNw6(PVSNDSLO$ 5gCuO>Yor5tyX{OJFS%Vp$A0NMj^D=Y=#s?9!P&XmtV}c9&Yb?==x;Ttvib^287lXn}2vVS_LgUsaXo 2K5ZNf;l$ooX#~WBhq550)LjNlqF&y1>-&u0`enK|+O*w%_rvR8hy<|R{;8~F@RWJ +wysLbJC)q`705Ht3##diR>GII%>!;i!YhV=(P<^|D(u$GKQrJZ5`|5`$~nlo7k&Y3RgUsF9uL<)m2HaJV8)09N^8lR%G^)7>gl7 n;rB1))pZG;N4_=uH`e>O6$NJo)#>13YnTIco?<=|L(Z|Y`K^pJ7oV5oW#MqR^1-%8?c`~S#O&}tt5W {G%_>4C_oAYO?tzPLXkKj);Q|6faIiq+4YYY8meP|%ws#d;y|hG015zQ(o&nrmi4F|j5}8R!Yh8pntH p30v_4Y9~tjC~l!o21MGPDuPB#25I=ZfL=BHitfgc54oa(}4!CKrW3M> iu+aT8w{I(_GC6_ep%1;6Y@n5&6@i#k{mRYK~+t>`evimO{FS3Eg7cz2bC|Dj)~#A*;)(%0zqW?jUV3 SvPqc4sLB$D*XgqI?v}xWnx|gx`g8!j^Yz+eA}6X-5gdR#l$zHno0m}A8`GLj0$nE!>%dtbOrF;0nTb LtAjrbGM*glWsC1<@hHmim6HXI7**1?mqXBQ&V(` 3=kDs|iFiZkN7B~oY`JX_4rD$;VvD7kb%5&fCwrQ$KP5wExXxQf&jGoc2@YwU8);q%m)BaVI#^Uu5O0 _)-z`yu-jJ%6UTc1+UU1#@L@ROs5^slF!8otlh3Dm;2j3f PsXtAi0bA}#|B42v(;_i;_+@8K`>21JCkeKiC*C(#Q6MwvjIiL=rV^`6q3W)OP1!SJrs3?uJ05?-vO> v^+z5FyM>^Fby&O-FvKPmFKeTqd8UJ#8MdEAtK|nQ{L7A;A?)(8hKr99e_9jbDLsc}$Xz|b-SMIOfXQ yr&%|Qvj8=H0dh(|W)QAI?+E%p<0G8Jd9`SsJ*LsrIQ;f3(Y*^?SATb}~31G57y6))8~^v7 NuAxV`jD+HR+t4ohqqP78i&dVp%wCbDI^88<(mtjC&uvR{NAFS1p8h#5MXl}L1#sZOH`4B8n%NTj)`p Sie9E+3f;@o!@4u+tH&7`VVxNeDioBlYLu&RWTPS1sUXbG|tyfvDamc BdqkYn$`uad_1hNwiZe_?)lKF;6kt0qXApukVebKkz~}qY1&hY|1cAl=bA;9b<7RJhro2u4aKeGC*&I LbfDLkfzFIwM;;PpEP-I^kwM6a}GSFFG&(u8Qfs_w(OL-E0EtcbOJ-iw-(S}r4$q1)ZVJ1i?0 wHyl3ms<;5|?`>Qb`5;#cyAE-@Oef+O;=jL8pPWH_G=J$4nZ-x^7k(x~a ~eeT&o!>E8@#WurEFM&W6H6yufB 7Ja*>=R?qN!BoCGQ|Aubo%k^YPuAro$0X@k^ubRJO09pw0=veP&=4z8L;h_o6IpIa4XX6{1^9V(UQ$6 h+GbjtiwgGo!dbw^6-?cmIJ*o#yWkSV2q9ODtc3L|$ytcY+0kcso8VZ20{~mEyPovTy*W@)2cT-qJ3h 6&%i+S>EZ9KbroCh!sL8_64*qN0D*8gmtvbmW{veaH2lVC${YmHZQF(!ofpSxrQR8K^F&S3){(#Bi&6 ^mt2PNKo*W~x%r9uZYZJTzHxJ#H7%$rDVaps`v3u#@M89y`05vev+rhP(@4{*2r$Y}K--=v{%6~5+SU p7mLSK)gx#O1mEBUNkd$&{Pr#KoV8CcJBxzlZI{_k)&$Nt900i(_VUx~s>(m!ru+B{7nonG$#I0>G10 `P)ISX{NigLLobyZ5bH2d~a}roUtV(-|gkyKyX;kjE>707zGqN(bkG|)i6Pr;X6Uk#1HZkJX#^M3d68 @jiB}jgJeeB9_~lC)x0rH!vx0F;GgrL*0P&iSWzHRYvIeE_x7qV58C^R^em2)(H%rP{qdSA5Hj^=iSt i6dv}-3_{utCVlG;L6>*d)EZ+=5-;eN;rh~=El&+>o5Jn&sg)B6%Pxs ^b}9CFqpx;v=iSTGu~CIPIM6@^ogwl*%TJ?MgbYH~H-=YE%*Z24hPK}qRbJc}>Bu#z&)VsyRd5MBhL+oEQQdTU+Io`*FmnsrDJAiIH*xvfk_mpso_;(77n`R$A6KZ@tyUOj(x _582m&#$hNi!sgi<$t1ie=zhzE!q+fM%%99?c$IT8(h#|BLA_rz^tRWSq-P4i&>NYjpi=>WcFa|fy?9 M+OD+fzZw#~=D&V`vUIa9#aA8O043)ZpfQDD5KMU;dqZ@F>&O+_#n@xV1JL9qaE$C1hlCiP9`k|ye8> ihB^K>LVBy&0aJRAQ28&e=SJqlx=YNBd+8n`hiiO`-eggM!@P6bGOUpGz5O39Q+`+2PXG}{OeeIW~5A F~9;y0**9k0Y6{7sQB`9cyn2FQ)jX^@lf+3*+$y^IxfR=)Dj5e&YC8ouk*H4zL)T?FIhj$@ZeKd>g?7 XGMLVh@h|5fRtI@`yf+Z;;v(;W&c~Ud{42k8)Z+G@bXyAU5Xq`c$KVF7Fw!8))IN?c94U@y!JH;zl69 VPD3v6t$0%M_W|I2uz$P`(vpvah*s;gZ<6>x67%Z((Q=~}P>{`jRTP1)1k8^w6A-{+?gha >GlPQ_6ZIa~Nq%e$!(OLXlaTD&&rj4cl7m0Q8S!E6Ajd>DANLl?k4;biuMxWDLChFfYT^}hw4+{;V^~ h>_`HYGp?3<9_b!U8HVC9sTc0O&lrVUm)PiBbvC9Gi?Up@;Pn)KT t~p1QY-O00;nP0YzNEJzzS41polB5C8xo0001RX>c!Jc4cm4Z*nhkWpQ<7b98erWq4y{aCB*JZgVbhd 8JoNbK5o$zUx=)xQECY4SVPnB<*+fafQMGk16iy2U#KaZ_yBJC4RcB>tL^~1r|>%@W m)a&`9*hpv4GFc;$<(-24*{#x}Q@4v0x8WPWLd)YA}NcWnB~jF`xg8Ao;LRLB;6j-K_=m*gLU0V9m(- ?tC!4snO3bvpyTsJoJ?LXrCwpni(ZjnNKq@aObrU5>U9OLx)Bdm<4Kno33S@ySu13+bDq2VOQ7eUT|?8`^UZS6sDQdB (xKVwfI)R>!<$*nrYJ;x025eHyQCzQBg556dmbM>S;>Kly2o u^)=wrH(DSK_(&}8B49+BrZFz(H~B}$Jls#lmp{5^@ZLKu2b#8irA@sL8WLZsC4ao?-^uIA%6Ald7Ho {;Ja8gOPzwbz5R3!#In#Sj5|}IYvKu~nBQGTk0h;umG0$5Y1oDq)q8Mw_0tkfRN0{&8EGab_$CAK&4 C4@O<>kNt*Yw9%e9WL3IDnXCbwS(jTsH40;8BHPLtkZl(Zoesrq`tAV{P6lbDaTeZ;ryi5UL9}E!Btq eO{egXh7ZIq-0x+_l@xM;Y0%(LYm9=#j~ipPT9)|6>9eqX-{ibdyF$*D>ISK7Q bQk3(A0O9gxtFD3;eCTC4n$~*9`50dHX#my@5+c2{aqTX{1!^I>sU-Om2Qw`YW)sL(KgKfYS+U6D@moCypg05{OyS)^JKwEUoL?%^|N}>k-?;VPyL` k;cqNtGA)^Hx*JUBxVLcYknDi~~}Fq8`}o?u-)fnudp26n6{nVRZZN(f03zHg|{T8i+yEU4K^wGZ!F7 wyklC&^aHJ(RpmvsWf^slYGtT+ow?l`0CpzVgy(AZN&?G?yaFfNI3}SH-l^ftnKfmL(I`JNCX|rGdMKeyfyJPE*Sfj9B6lNso`e#iWg@OCz5 YEq8UGvqCec#hZ(nV!GFtBuUP;kRi2Tdxohq7=Y=_>A+k)FjFZ36mq^X@W#y!%#OjTHajVxF9uZP;A5 C3jfRzyuRLe4mR?ZMJ!|;vi{}NoJ+0KaS}BEuq6Sq7TU#moidkmw)bh>&r9OG-tMsQI(<|T>Y*AotE& fKy$HW?+T*JikPUbN25G>V6P7WUW*B#fet;D8r?MRj=x6-~vjj4Bu1*RdZ{;RB}z%g ^PMFnHCe%r~xcqo|kEGT JHPcqcKG;#vZdtc|fQzk6_w-q+`6Y~8T*|mnvSXZez_%wP6e}3j`0>gL_zoS}azTs8<@0Wn^jUJzch) |C92c2ifa1@dvh(S=|L^Gs_#Qq5*nUH<2Xb>DUU IY)R33a=wz-IU@nsLAPg%NXlQ p|dA!E^I%`54W%e}kos>PZYoI1b5?t`;nfdzt0+gSv$ir6**g=#=_IO|(}o7dyl4z|P(Ne)Tk;Xa?Ei9gyTI@ 4_uGfZyX7KVeEagt?Zfr^fecGLK3$y+!4t!hGin+OU?Ye?5_~1IUL5dbdy!JhcuraK<+fGkj+OX%!pi ~gv2ws@bqqEtewqdKcx)2VG+A#NC_*{(8)N58=mk+jX-r1t(%-Y=o;hIefFSF@k%+C*c#6#0va&FYmW-)?C>0m(q-zIVJpS{{T=+0|XQR000O8W&uT9t${}vX8`~J-2wmr9RL6 TaA|NaUv_0~WN&gWa%FLKWpi|MFKBOXYjZAed2NxwYJ)%!hVT0ngT0s#d;lSbLJoyOg*LYkbfRNiVs` EBni4|#>>XE)N!tNk{nz>C-`^kzgrU!ttg}(2^}&kohZ164Nef3^v^7Cv^hp+E!Bqq~Hn@|ubdrTq8! x^OFz_(2XY1$~3GsYFS>uiwej^ql%M95@D@$1x3*cIF|ER&96d80>Kxy<5a3n_}V9zf}^7;Ww*aTxku oXfSR03bv)-LsP!dZ_t?j>7-MpDi*c@Bf3?z|nKPjoq~Z2xlot4DisouQf ElI0jT4Am)U(K!@6aWAK2modQMO+2LsDKeC008%j0015U003}la4%nWWo~3|axZdaadl;LbaO9lZ) 9a`b1ras?LGZ-+qjj#`>(*sGiNH5nQXGVO}+JA(|mN@?rt)%bDe3Lk!TUJSyQA+Qg+--?r*>M1rQ&k> |8t3>)dH3u>=ASz{A7)1~{2a_8R@yt!}$EUDvrT+r9ttKYM#;mqn}K;kMLjSyx?FRITbRwc0erI%{rK ef}4{?655B)TX}Cje2WA;9EO?Qs%5rqwfeEHueO_)O;b1O=2BOx?XoJ*np~B|d4t1-SwYK8{psY*3?R 4L<)zA~?B)7g=ef?+o7?WPu2OZXwYu!OO?&k4;RW=#Jx`bQ`r)QsJv8WhShOvCdHCd;Up`IEgw5>Qw8 *PWsePE{U$Z0i>gz{e?X8-6t%};rxRSI;ZJ$hDrgT?30VQ`@S bo{M&#wacQA_Sv?(G>v{ZJA3ontSy$$pirIz32d^?NB{GzEVJ`cGwObS`ugW+L4L|M8|;>ToM)|;Ves #50kf}gXk4(o1e(>I`~ac`oEGPHErLP(rL8L@Vk|B7NBlWh53t18p5fOP_EbmTwiRK~w!!W!;^xbGb3 5n4`CqbTCgXvxb8IlrizR@$(4DDt2?V7Zfi_05&o8&tmCj$vUU4w>ysj$XEYQR+>~z%;TK(#{M$XTZ> N+cn9M>Q&efRdq9*6PBf`vnr8kQD38U^taFa#Li>GD#qv(Z{+bGbd3vhhY8aJw}iqTQ|maZcS!z`L!M >s1DOX-gAOz`-tN*>SyWe2jtsf(kP#GI&=R)hIjz|oX0`#u!E@ g9QfIqCD7xaGz#^{nElvO+w;fW--u{s~1EJUIPSq=-HO0te{IT>aD%b-ct5gQtaNE^uU^Gi$3AfmM)6 _8f7TE)gGA|mS?R4+$%NHkaUp_yZpPoHCJ5k35lL!=K^0m%qC^(*g#OTXc^|mtQkDc-whBPn_~j< 0^sFo12cM(l4D#fP!^a!QKihJ;nLIc=_ttyC2WycDz5H{B&{#<9+gI@A>PW&tCp~Hh=!ZyPy9sKRx-= ODO;9k$M3CJ^p&{J{fTb5aC$=>Y$pNfw~bwtDZ4PXog)!ouBAZJ)~ARwTfq}AnW%C+z VTE=gIbLOm1yWK$OigGE{lEXvmu%p-VS)q~rOVWLj^K{fCdDtdv{->G@91Ga45#|!q2F l=Tpwgtf{z{GFm+Hx5ITKx!Bc?`+krFrkI8iG8MSmeX*BHU3Xqikr7o(ZpWbhff{W!^gPN0DB+o?VZGsZmM>Q=K;u)T6*q5S6Z3?~AxH+&z+IRoQqAXFpLgHU-VKa!NcL9)!wgGYgtqWLTrcjnBU%UV~(8P>+KNf>sJm3+^1tY(v`sglng==Dg@|C%C9~29h-zxd9M^JCf9${+`>k049&B RJ=r+wYd95rT&i-tSHj0+!+j>>$Xdl=bu`yqOYRmw!1Oh7~(KAlVhtN=~{AyZf*Fh;Iscfz~A1Kza@?|L`9>FCqx5KUQSFkuYMR9?6Gug7Q2R!<#bYx Ouu-h-W>jBgYAf2Lxl((~{0I=`iL&y=+V9-=L9NPAl>uKO?;>g-E+%NKH%e;{8$-9o^j5qqwCwv|}zh $aN)_H?G6j6a=`nGSONcH^uc%=hd2wSn*37IYU;uG*>3{hayXo+BIwgpn0Mr2mGRa7jI)XBa=BFQYeNB n2QHhH$jZ1ge?q}-&&u6Q6`$|qs@N5>)U1s8J@eD79OUfxV5a-(MO__$;gI3JgW25kpWU$t9cSm)FhA`4+QGH^>6iLWmcN_b6Ofec2g{y!w(u8I7N6&{vmG&auD -M0KT22(k0zj9)DDH@y1SAxYal;u;*l#@Ca8*G?-#W(O;ey0gbyYaZpqB0i;+ZnZ|Hn%)n@dnGDLJqT1^Fps63KFCbP>==vcO#NhE2s~*QImM;dg$GAiy?v7W Nfts{R*V&chm`p@g&QV$(uR6ba%y*iVv!zhGvC@_xz(7Y`pGglbHt1qdp;7$V0(0?7krhpDr#qzf>cDY(3ygN7mjz52SSEV+4P;m)HT gt8K2Hv&V@4SEI8P#j%Qsw-TL?kH_Y0u d%VK$njIBkY1uz}?44Z2VUlIHxG71zMNk{BR!Q$<^Z7Mv#7ZM#j+&@Qn=21h{&amdbVlhs 6RhYOIEtB3sZ#4sXEv>uD1hwc3=~(nllul8-n#g1hq0(W(R`lu_r6;fLJKa;K@+0sG2$sT`{h;S+~3@ ZtGC7Zd1$KT;UQ0uEQ@C9n>dVS-y_Mn>|K`}P`1AjqeiMm?wE-)9Yu*aV9Ll#&fC2D?kTBpd=dM0?^q TVC-~nw>H+JlGl8g|>SXz8@VKmh}Di-+a4RagLaqzpBX9qKNVB)&?_q?dmy196Gp}T{ r4{?#rT%ZamC?RX8Hl&33nga=9RCn>$v1=n!W sx|?%5m1&ha4lpNV-2{i_Q>d^w=zpzXtS3*4SH1dO#fcn25=LU{@i)H9e%j{4vq5|G@B|V?)U9E`;q0 `db(|676C&`L*50pBxN*{_wrCl?@MwqfZ!&rO;{nMG6B;qb94`HHM2Zcn`9o5iPCgQrF>zMqU8HA()N jP#$RrcX6iVy91EXm__%W7>47ny~1Z2h7?MW+RJ)d=EmE~mQ7a>uys~#G3x!D%4-~ITa!~8^p7tra8Ko3O*SrAx(>K(g$A) K=iDYSwWMF_K-SHBnGsIR;K5i5ccPgp-i4t1D7ik`?$8wWkEs0x%sJPv8)?IJV6EYoO^s;QtYImYiTTW6pX7##%J}CLtFUmR}Ut6lOHGpYI`KX(lAeC`$Oxbh r*Cxu8gvxsKElEG8yWH(X25kjUSWTDa;-?-m8pM5K&VMr0=>f0dstvk%lldlqwnoys=&2l9m^ldgyo@ fo6&lT=lU>2i+x*yrWGCYu!+-qg(%#+x#csM1S55Ew?*0{i}_cc*9Sq7E1X_MDO>EdAFF=5nD-%ko_O oFizbElB@QzeL51q{z6ciMf^`pt}@6%jO-Z&SPfZhLbxFddBSX>6C^*p(T%fJK;e#Z#;gtaXD(3F`9T R*B!dBPRmB!(Fy5_;uM9Hf`Dm!s2NI?%C(h$^yV> X_neI;M!t6`TL6>BV97vdK%C>Xn8Kzkqy$c)eaQ`9{7$nv*aY-x!&d{}Af6Hkkqv2C={!-(U7e7B6as X4*;2q~{a<*%*qS#%$s3uR4Sd?X?_gYqT)46L3GWOY$2I?JlxXiA#WEm*j`x@15Vq}i)18x7P4;oZ^i Q@qaJ1>hWFK;=3E{UiQ0S<7qigbn6ZJo93MN$@V^B}hkKVBE I?}KK{`&Co<0nsD@^yk3gw~-jy>%eC%kHgu6w4Fl)HO*cPu@~2L6yLM$jNzGK!=+QO&B6rmzVV&mx!2 6;z8o9g&YJyb<3VwT7H&1D@w7b4mq=z#gHNuX|c|Vva1&}2h;)uI CzJDgj$C`-;MEEsX#ZSRLw)gF%G4nPTOD8396_QOg;pwStP#WEX2RQjhzC8@%+EMwm0i=T~q;gsEu6B Kq9^d< 5Y*@Y@Y}@WMnv8*=kXB|hc@Gzczfcc5+?v`YJ8=a~v&j^W^cE0D)fC4Q8OzARM^o8hCC|Z<|!T0!om4BiAj0J4l6H)7&b}W@T 2kHQLU_>ehi=AZO4matPW~tl4MCb@L^j8%rKcf!k@=9Gd4~u(GX0s9OA_;p&Aaj6%tapJ*rHM`SB&H9 Lg3*HCtjD=}lp5&2AzYA!J~u>y|6gj8ndx{T8Fut%5kB$Ee|nVLYo!7RP|_TenXa}dg`-2)LA*D4{q( j9TzQrLoR1P`E0+`<^03Q`s6u|GU%@{40N`OPE*1f`@_I53cnjX_vVjy~b@&l7hZzeOh-vruxlA$8d; +D2q@ztaT15Ed8duDo;WOpo+PV_f#@TP^3dI#Zp08Xz=BG4;c?iBcK|&M@G|oO)PIKGE0D|Nf~5^4Vv F!)ZSTLf5NZB-&I4hjS9>15eY3!}oVbB|91E;VOZxK u`fQKo{Kw*~|rlCkb5<`lS3c40;SgXRI?r65Dz@b2NoW(hK@Jrkhah4&c9up`VO^PbH7 #Q^IFh9x#tW}r3A+ok<)!@-LN)dvvdW}vd!T~ZO)}JDnEOA(-ko*9&!8L?tU2dmdCUpLpIDv)g;mF tW;7^H`}`zSK(7awk|*x$xzpqt=tFEO3Ooh*%5m~D=k<-{Kg(2TA%ZkuXVKd^pL;}sSeCvz`#x4P#ts q1xx>L&<jc*z+M4<7?o&tRqnP@(xfbn <=x@3uRCdpS$epM-H{1WFsBmKSx>>9U-#yqWIKv`5Pqv|x_OEVrNzSDaeiJM~2yZP+x9xw7~_$#Fm=4 q7*Az>Nmw6G8u11UNrlbD>cMk>lON2NWi J5F91|9T#Gsa~cNfo$GB!QCP%lxov^drmrzVJ- x$?4gOR6XeN~?+ECJAH&*LKVh2UA>}C&U30Qxo8A-oNt{kS4VB>d4BI_sD0xl8^z1smhYsEjHoD`e6k 0#`I8y3TRr#CJsO(4?IqH!nW+`z6 oGro%4)xK1MkUjL(B+j0@H)mtNDmeulynXo3GY-Wx>UW!+Y4@h1(LgFC4uq*5WtipMscKsNyH-R@8Vq K@knAa6(kCIB$MC0JVPhQ4==mPsznub_f)xftJR&QPM(|F#y@HlxCC(CiDm?_r=jE^Ui``KUQ%o(!3$eQ9jWAobS 70a+>Eif5d2_0U{iNV?QwVVJz3a0`b!GO_q=%Z_@vKPpu(wiJo9C1A;8Qr-m^!{q7reKKT0NTy$-`>a 70w^@nm#jWM%7~f#$xHFaBS&>!jqz71>kp(}O+8)dReoMEAxRd$fY{^tTt8PI?owxX);$Jt24R0~{g&`0=Ac6i82b6n;fV@$ My#zP8F#H!bjC+Lv9>M0GWv=%-Bp~RMqkB{5h#jY=dP&TEez4@O+ALNlLzoZ2*}Eb+=btks4{(b}Qw+ rkEA);CSxG;iqY2Z_=Xm6!UtGhUC%sE);@oTI77JauMIeX08U-ei-nvC5)bKQyAL5qPqmLHTe%03&R@@j9q5d=iq~3*^&n2N(_L*@da{U Efxnx_8WWQ02*6T+kGg}D(!%<1CTaNVF2zkd#dst+>3pQZgWzHm`jLSVsOJshH;JB1r~>^u5 uU5c0+mUDP_CUfbf(sAAGmwNnPfgc~8IA82ks&xMtD9GKtE#{2T3X%>hNIy)fUpYnM-c24Z-H=}Qxeo WK6VBwTieGl*U980d3z4Adsc^H~(M{H^mum!psjaU2v%1u&+;LC-O i4!+#ngXxKk;UxyC0)yekaJyj*)-ln<~~Am3Yb$?K;3P(M%AE!;n~|N99BqEWQJ0drymJxwd}^NiuRI H__L<92{^(o)rmK=g8FVa8nCT0Qdto(w~A#%j}@7#5iqQC4{}YcZq)f#Tq^3*^y%5t6oQZC08@dY79!lLk#mdI@iaOwXxKz{m}~RnR-B}Wr56ImUXKWFC83oW) zcp-~^A7+gnj%Yi{ul>x=Ik9>*C_yhND^SCOUdr^YwhtBRR5=SXrUcP7iD9Ft)cVn9`tD$%VYpKw4&H m)U}oer~4II2bB4SrjxQpS|)n;-5upSe}Iikcpdp3xDYZl}R0JFx3$E?XoP8ay7-(=}tb88dQRJCGe#W{Y;KE9huO2@&hc=>%j^*y3zn@mZ8-4!eDCd6};S67XM1gy}v }?{IPogw-dpZ4%%Z-9Ux+H0YK8n^}(mg;Z{q;^o@5f<1=|-0&MPZF0V9gf}9ntwW6o(cbDHM{ShTbtR T{{64^9Y?^M+-Ug3@TS!m)F{kuU(8>AZo6qHWuR~jI;KUGuPVymHa!?cia^gOO|7ZLLxMg1(_093~6T8Cvf=IhBl7P1k-~0$N^XcnyNx`G8G~ERO L)@=uM8FWX@6FehW!53L*8a#GKpQ<&KRAX-199A9GMZ#U;$%i?c*Z S0{ke5-Nr|)}TV(+INN?qY-raiBq7#Mm{oVV3v*IB_Y7lB=T0DKQ4rYM;PCE)=8YP=Z>4VYk0aNHr6x0+By!o9)E*6tU*MF(F8h?)Xd%q<>1Le05 XRGm$HTqnod>$fg%JPu1)Z=mq>8ETtcLj<>xw%?5^vNLfM2Gm!?N9OT@io;-#U}@oFQU;UsbY-`;AS$>A-h4!_@m?b}a5B$)IJI%;T|db<@Zc3Z yFm}U7ib6Q@LgB;f$zSIXa{KbojyB3hA;dHVGbwT?W6COS^Fx8I>f0@HIy*)9 E<{u)LqiW;Xfad@!&fdZg(;+nqh gPtpq%IutS@UK6KD@fXCB$xegDO@O$gp4jFEyJ|X9K*Xwf{o+LHj_A&Up#SCXFJKHsC5WfTX*AQy3Zl_jVDvJt`; <<%Attog9(y$JNrDd^3fX6l;@QW0y8QCs47*vQjq9MxGpaA!jt~-^je$jR-U6HcY<1nQ>LwzJs75^@b 2Fy*o5f403{A?hYBFOH8e+$V^GAJH?m74iUiQOcQPFt Jr%I7vC=u9JK|8|#QEBhCRiR*%s7ut@@=m-~kqF40+o9p^-xX6NR0X7M(UUq?5kGZE*}0ozekqhAb8l {R+=G`iHNtIO($M)(~$&kiK`#+Q1K|3TDwPX;5eyum}Zm)REYTqjtZ1ZtPfb(45;xR^Yy_Uk5Ocuyu5xZIz3q(9W$#sWbRa^h;(y^&RFSD~p&>7OK=`Bobd9`(^!CRFt~I7YXBh(T{JfY|6&zvJ36L49eaHb5+$hu%H*(raNcol14`jVFE >9=S*fszypr~irB@XvFHWNWE)(~29K~&IxJr;;RJ!5l!FmLxDVudYg}B+2i@ZX+==%H+mS-bE~E o{`Sm=jzA@RaAV4EYZEW3_o@i|um+pmnsK-n`GJNh57meNf(S(E92LQ6?~___&YK!1F>{tgC N$3kOM8A`&@k=zKRL2Md+yySYFC2hkX9)Zy)~>irBIFgi}RYBt5yPSbyBW!vNg7vsZ^tXX+3{1Q7b+l gBAA4`fxc!z2$JtkUlca(dr<-2~9A`xeg?qaZR4dOC1Gb3<{x!1pbXmp2Ygh=d6MXXKM)X){g77^DB* WFMEI0_SewaeHOdlW2Ecf1d);pVz6m{mt|>b++P|^Gq&+aH(=|0Q>5X_&zyYK#GGcl@T%D!D{h|nRC6 &D6th)Gn^!?_6RsU7T4Bm&;T%crJf$17yN4MrQ_QNMu?<#UDPFo_l94swr^7nCCHr@IVzFo3>tM2jTi s5%m;Y*4}ifx7y*Y)k>NMz;gN+gR1Unv{9f+Jpk1QVb&C=&&GEh*4R)J*P$VLe-K2r^KST!i9y4AJ)x plhnunl{(>WxT4}5t(%_VafUiij#ADY}rR^ahz=3~(qkXhlm4L$UDz`6J3h>X>GdZYP{2ra+px@on&n TJ{o==&tad`r}x>WPn~A{1Y|QZzs3SFF=pEyS)*}t54pdf}J*0EvC{dean7>D;_2+ {Df?}z6cL?#B9YM|9gP*K>$T6gkQDSB%BZ*`D OKVz6lI!>3Qb`PJc9oG1#9h%E*%jLd+pl2fhKo40EJ$v01)`YSvrpKPwWgR`Bl@B9MMvlDhdwVhX;4# DvD6sA-C`Z)Hn{91kU=uvR@Zb(2w@q{>)R6XZ>EK&PD@gP2%5G0hCgBqVlFQ%lZ$Ty=y{q`R<)KiwBf 6q{nPkFr$g=FleP5inu%S_$do5(XrDc?gpnw&&!;3cwKfOvOZm#KP<&Y;e5f}0HP-f-s=vV6~Ej;~@w rOg}-lGJ$bwZ}`7sC5DQxnog0z>C?B)M@|P4puusQ8M1G{zPtnpgw)zPHj-FzfU$f#umL4c|trR3fon D#xx9ayESY+wKE0}!j4p(z83WV-%v{f1QY-O00;nP0YzMxA65mq0RR9Y1ONaa0001RX>c!Jc4cm4Z*n hkWpQ<7b98eraA9L>VP|D?E^v9Rlh1DBAP~myeu@!$u-&e>>@89rVE3@6-l7T-Gj32YP{2v8s_(u-Od _XNFV%8m{(Ljv4_go3g#>YmRn-SK0Po!3Wdc1Xx`PY~Q&s(dr-P2rIfa04I;IG{3$T~n@k}K-ll$~u8 =WQyD5JBHQ{Qh;&ejQxJ|gG@sM7%hhd*PapmRr{JGdN#vz$0=TH1xQJ!#7q>aozUF&Lxwzt~S;T3N~3 O$BsLXq5}7#I<+}%xllZoZt)|uR51{<2q?#)9y;}nHq$c%?i 93=_n$JCGZ~mn~^Ud7U&;b-<$J14axdRL}%`9g#rtGA#09l0W1Lx68alCNemcX&A!a(35exj|O95k&o ^#MceI~%-qjok|D)2J;KT@v8s8!P|Ihuv~sWCsO+MgMRo>lbI-ZmJm0k~*4x#~%C+m7=H5@qud)=#p{ gQp<#Wt@6aWAK2modQMO?f%zyEk4001X<001BW003}la4%nWWo~3|axZda adl;LbaO9rWpi_BZ*FrgaCz-LYjfK;lHdI+u*wHZDVa_tx!tU4lq$#Z?Bp)5vz@)$%BCb*f^3c{QbUk -v{TvNe*FRnfRy9R-m`90Qxlm48bH6$-ROn}gTY>rPE~>ovNiS+umuj6B>7`a_u~ZvfnatG6=(^5|OK88SN@LuBYPcxN>r9)mN}Kv>jDSDGpQB`N0Q 1V$o3g4^Y3w(%bzkdjt@l<{xmJrZ&tYhsx009ds->><@@2NDxy>@IHTFs k7Vxs>@lC*4d4onYw}%Nb7W&ZlJkq_T%~a`y+m4TflPc+u22Gvc(J^AsA_~DA${`wr$>|n+?DpD@I73 U5r&zj$Wwh%_II~@cdkQ|Mg3@Dp`Oj%JrpMg&r?i@3-`Nr{!Y}max=I)IOn}W`r9atDYh7J x`)0g1l5zFth28{s=AnQ&n0^^6{l)iN`H#>Ex=y|?#3t;!1KpKq~YR_LX=0#+ESO6$*?(#YS~N?oLj>)W(iDk epCk>y#vl`(oF{5hSdAD%vXO!Iwt^25=G*XOg-lb5efPma%LuV1}+bZMR>?31lstEtnvF@XGKOJVxMy|0=@-Bj({)9Q|2I9LC;FxX2o)LQ7*Uqz+9D04iC1Q)R?d >uCIc==7mKC>)qrnPbqUxjP{-7Io$O ^R{F-d?v__Uv)2SN3+@5?ln9%4OJI;*8QBzVX38=gkP_IFCvIiWb?`%z4Y;O;cEignt7sLtyIc1wGD6s!F9mvwAzlb`BvR#d9E%rBLpCpz)c{tsxjDS-mZIYm%2w^ kYFK_aDcZ!Z^j9;7l@8qux;o1N6&ZmkH+Et57Y}{QUp|#b+9xw)X8O{ZgiEcwj(&SMYYK*X4~?(AY3bfto}nL2C l>pQsbwt+>f5s|>wMZ^~?`(i|8a7sJ4i0Ze#qWa+_wga&_L0fIXb3nED%RZ>`4VVRbf1*Bq`a*Kt@`bvnbP6rc{Gk+>1+dNM +r$ZRB*U`lGrkpII(U(QQWy^GxPuYSqa;Yh9(}P0vj)+d>~mI 3>?TcnY$dN|bz0$Ujm}qS>X?lu`heS0pd@H|RJW(Ho&>((Eb*BIqduIzLNv_hh>-c*QiTQUWusB(P`< z>1`9-$Dw2r*I%obx%C g9|tRH$@$lNL3&J7r@$fY5CLGtsmPHwW1GNd>_~1&?l4;ytBE4cMq}Kz(}P(i)tPi>B7?q=}2oCdrIr f|la=af3~{q1baD2lmC_Q_%i_I&Q!|DQeIbIJKr&qUJ!|c~#dN>-hn|&Grc}Aljr#fJT4-e_%9a#bdC &np)}gCaW@_w9@D_B85$Jc}W~Y+MXLD&S8JtM!>2RwFFb+HUsqqn)cx6?D*9ywYW-gQy@RAARo+5D2a f)s-4M~XV(Z12mk`3KAivXOgh0xWM;sW?EGUeq!>vP;)si~BC-;LkU_L!cp4ocn64wij#-_TiY#E_t+ BdAemLOHL;}}8>z|NEV*54W?!y7MAB=(yqL*T)c4&K#)u5?Y&%9pJ1J%Kv(>!95W9JPS_@Z}8c!<6MY #g`vCDcLS1OoMO3n4TgK|hf1zxfyv$S7D9nFLF_<1mNATz!><HnVf|C8`Ao E~lxBbgk9zrXB$Ic+!X0^Q!Ts_G|+y2CiR#|1kk8B?nbWqIB?_{%y4+uafOsvY5fRTY_Wi0YewgBz9{ q_Q4EC@T&|~b+J{aKOCz+eD~y^SmL0~HF)aIMDlem?!`Ecb$(6g{j!V!B7hn<7`;JnzjRw>pybF>!)2 icFSef27yWGzfrzp|Zw&+7c{n#14AA6gA$|ryJJkGMTXJbZE{4w@jfp)+oz@=NBFLr-+H34UKYjWnhC S*f{0}Mkd3zpee&jtvd}$&ckQbw3q%=_JFNxTo0cdJ1fW)i^!+evid8rHZ!~kKSRcr%;2(%H*#Ci1ixx)A{8s12yYppj5J;7_TJ>gXe27_x0`W%`fR+B#KnCx P2{a}uO**05M>E#-YMQ?Wi1SGgSB=)82c6*h9WW&3VuQn3gv#2Ap>*r)qZnneGUeNS``au4%oj1LygWrP)GJ#UaHHU9W`@+n+JU2Q`QxSk6R`jSZr# BD(Dm~wFq)|M&JbY6gcMLRrN@p>5m;SjSL_J)-E!^!HjDNqvVuhEV@OY@493n=nBtcXxDJP%GIEJ6V66q8kI<& i(LH>zDa$9C>z*_4p%;P7W=lW)@h#ojU=7+1aUoUbTF;zP)>DVFp o(&6jSW6`a|+K`7WGg*9`3}1R%+_*6Jl#)PT>^Vx6@MYcPaB0gl?_=|T@}muUw`I02n^r_eJ@kM@i@1 $~${(&7?#gS^XPKcovZLQyw@b|BKJee0a;TQ_P33uwqP`4-Pu1a4t8CVV+=^4h*Bq$XVoQ!e6{w3hCxxgdQ!;M)TTJz &DGX}mKK7RDjVtiUWYrsr6Om`8zTwp^Nn{qSc?|tr8Z&y6Sg T=J51N&(gx@)+;<}`%?A8!xrBqDyY#{}q&+Ea3a@+c0ei?_)R=uXGG5iAOGY8Tv0)C(H}*ZZKB)(xsD P$3Oi{^bVUaJ!g}$tDue$bJl-4jn?0{|q|gD!tL@&~NF$qk(;C87hqaqxz1FCGNzYoCjz4gro}2_V0p 0Vl97-?p77@;OkI(>=aTPl>H$)T=^LfRPe~vJFjVnCa1+(`Bv-5;~uqR6H0b#EDB)VQ(qmaRhnVIy4E @DUwB4k)SOPM!4Jgq_p+EHbIm!RI~>g=W`j{nl7tZ8O`10vb_+uX`g1=0PA_sjcgLXQ$nk!MAp@{F06 yE9X%RaXMGN5tOiCj1$IlG`tC3{|s9~-=I=li)ttQPduYXjs-Y3UKqwdfA|JFM%Rz9*23fLsXCfgz`GsRvGStCJ|P^^qZI!KAgS=U^k d!0&pFix9?`}Pv8CfUzkIPHFnGz(Wv(g~YQ!pP7Ng!U%kiV;}S$OOlrGm`l=PJkXP>2ES}VX&nEku5jl!E=bg;H%9UC4 IPL$^EgVb+-(_;BT*QI3aJMxzFL~>7VW;Co`84a$KW1Sc(e*LOO3fLtEEV9ka#-umidt}@TuM1Bz*iY nl0aZ3_zzJk&pTSF`s7_PbBxl2w$cFZ-@@ENsjjXNQ??Uz2u0~)F|A}a+r}3fByPR)eYF-=ux;N8s3u H6cgP3e2-AVM{;iHhf(=xlXC>^V%e#Z^@jMkn^J(AC~tk(MWDwlaw_JLr>pfOIP_m&TJYf;Q9=Y9d>! `q*~GR0T{18lnkf(ukI~5wxv0upSRf1qn@v_${d>MZ?-65u<8zUX3Dso@CQGL4RZ>=$hgbDFKde>@j9 ES~?0_BoK6#ov^=a((aX-d2ol1<#Xgw<_j{@l{llt9M4Sqa1dN~N`?4~^U)5-b3pWw?9xGk*-QL=oam gN|TW;R*fatBsb%1{Uy=fZ~@$3f$#|nfN22_G4DC0LIU8HR~W`qkN@!K={KyDGg-WqVn83~d(V~bU^Qr Hc`i&C9QGv+wn?E!?xfYFX7gC@ZB-9@GPZgLGq%QFu;2jCjVReTWry3_;~CHk)EnvpCOk|gb{)^3Kew d_Q8Ed>F%qDr17N$3k>7wa5caK1;lCGIK>`IYT#WvEd!(#Be)s6nr{_HSyNXlm=-BUbEhS1-I5}dL?i {eE+vh+I=-*#E8zBJ?JDXu*pP9|@e7n^)qL&A)Lpl)G(tm_n+5cOVuK$QqOM^CPm9B#)?2iXSfnE&8k y0oB8Ak*BC(eBE9|q@{^5RpwE6iqDk=3&q?FXLDe=t!;WbGYfZB>h((v4v(F{eP3FSHBsV)myGW7?Gc$diY`XII^5yxw6?rn5T9YoSneh*{0N_i>0y+wvqq^DTlyuxy&dKp&UEXgI(R{? =iEJ4dzs1~|s{_!Usmn!~^Uq;a~fsBo8&6LD@?`5|(?=N41b)Vc|(9vaQN``w#LQY{1YszBs1&jxCsJ46*hDC*GK( =pSK#X7nOihtsF2k~|jWPCgK~4jn8AZeS00s5zaB^8wb%Up2C^iH~GI3nyC^)y2IHoCha~RSRtcr|k)Y{Q71(+( -2-+H~ezip#ghE$>*qbKD^eK*2`S4&z19f=-6FXREOH9-lzRBu0BW6yY@uBg%BHuDn#1j$Bu+t5g!Lp Z-`hv_UC%MMNU*s7wj!!9J0kY1{NM6uws7XwW$)$@A2zyi5UJa9tUXLgmagJJYtcLse7B$PY-tLb8Qd UJXr0zZH?@jtSTQ_S}H0ujp1=&?Li-1P*yaniJI?f(D_0~-#wZ@sgp5gs=F*b|X K`@FX|kiNRCptt&yz^EzOceT~a3x?XPh&c@LAM@eI#RBF nbZ*&-l!dbPHN%G6UwG0$Ap5y?vz&!c|!!b+QS!HmyMfIf^>R^o^Fe%)%T7(GE&lM^L$QO*P%3WbqJ^ w_R{8aSJ$1mj`O+8z0SMGRQ{QQn)VfP4}bYG3fwtapqKDvt+&`zu=VRxzf^uWikJ!OKP9XHoB3eu*SQ ZzyIc1*_Ut~?qgB`Na|KoTDro)LS&3uy5RYoSK8z(lV+}jmFsu;I)kX0EUJzcu6h$hjHlA2VrP}KI=) v=Ous7Fuf=RJV;rvR{U9+0^`5kcQ>MAu(+`JeA6~5Y&k-N-TTL>z(x24fyvbB-P(43w7K}#|WELu8J; 6Vp9B`9StDG)Oz13}+!SJQHwjg2}(4uR5A%IEvCV#+}hdVZbC%^gu0&@Wr}YaApg>*;Z&#Dt?B g3;yY&J5utLtB=*tHp7F0m)2hi@!fx9;|IOHpa?XK7|GLL8+#HH;}hd0(=d*bG@A{osPF(7Mw@yghcD 4eG43_}6*fTEz`e&m!q-2UvT(2QkMOnlk<+k%G-!gK=m23HxTQgHaNiXXKBQ>v>@ZAw>sQ5_82he8)E %i7b>`b$9ND7|!nD&+G$Nd!Yc}mEjZR!at##-;=$%To;JBN)CfG~Ho}40cw0{RoAQ%d3Cy40bBTLEfs a^DW~4WlD1L@%~q4N P{f0E@iy2RtvwZQcTCrbjkdP=6}R0DFt*7A1Xh1gc;we~X4aXgVM%U6nva4ILk0dNo$0obEjeN$FF)L MISyfG5znAAG&1OpfyWebAmaf&E|4dh#uz8$QmKN$+prZ9$WD@yJ|$}O)%hU51oOcMcR&or|0;BQM7a yoD=r!Su?;2CuwvkR<6t7voxu=)tv3y&1=$; ))v8JqTOe`pM9wxLWc=a=9FfWmLVSadFM_%g%V@55uRw9mv`B1zl)tlCawM6#KNPREg45%H#g|`;8ecPqbI5-S7 >tHuj;=#(#IEICK9V1Yk2pbR7fpAflc}D~BZm^4mz7`~owq=QS?Fbror4l!tuMLfjlm&~KrTT_K{9&H 9)mZcrR24U(syMk?0y(fV1K#3-DcGWP7%f|`0efkUmjo=!+XBTP$Q_R?7YdmsVRTc%XbtnHx9FTP=`+xwPyLhJ6&t6xKEpi0cetk(N@7E(D9GrN>9=qTzcmN{rLT3# NGPJW+I5&*9bph(pQ!gReovb;m-#CHiVZt|9&YGs3U<`D*+X1(*W&HoEQcNd##thasybx7Qb85fuCZ9 G;h(HOoRbQfv1jSX97ccZOiQao1ov_l?1Jy!_KxUc%dCjzI`(&e%AOQ>8gg`ZTuB2|Mh;ea&<0cx=`X 53aSdAGW-AxpA~_P}HHviR(IV;u^@IOHV(t>Dznp?8iCGU`^XfoRz;5haL|N3sTJ1w){qIil 6{@Q|9^0>UHf%WO4Pz4Ulxu$Jm87GYk$B&88b_FJir5}Lz!fuALcQ-jIOt)??Y$CKhd??+#fGCK}8F@dHuhP~c?Q(#2dp-Y<%ktNUf0 fBi)H~5C3jS=6ALJ6B`CMi=3~7fQhUpQ6kE^~lE8 A^!JrUN09>%A(IA6xjCcpkCf;cCpsi`02xM?DW5h_#gUc-$!utx_%|ekIs*O{Eg`Ui-?W{xgXh=I@e? >-*+E>dGh+?{N(@1PTq@M#=sr>GIxr%dU-PC5o1+gv4ED!^Hjc#RWYFprnyP`D Rs*ttL}&2Q7Kp`twx7?+&$otbT}BBwxs&$w(BTH=OsyH3X$?6HSzDzcxWIJ&EY&3N|H+V1SY3DIqiS# ZsrOS`t$j|fWzx`3a3bZtNN)Mq*R`Z=w4)MnwGru)XLTt(tERKUR%lj#Dl+bn7@7`Lp0QX5g}h{OZ+r -o{mE>ldCU|@2;a{{8%tnk8} 8cE0l1EA*B}!zfcB#2S`|QFKHNX_U{|nqu3dT?JB9P{#F5{tp%m?~K>9dJcNp3OK{J%f))jhjU)mcr9 ?AZs@XQoMt$!c-F43?b9<+b-;^gCzZ6V-4DME45Jw@ay-YT Mq6C#R7| 9s|d>b$DHaLin?*X0_rQ$mu7PDk_}Ih#M*mn}Bo-@Ue@BfIBNzI{YgNLwjM#$cdcn@}UfQ6HGD!GJFK ch_6Po8ZF2B*)70zx(touN^X@zV5o1S>nEeTCxa_KNenzaU(wY`TpqeAnK3Z(Z12QuZ&)wCNUf ;CHmhK%J69WY5~oyD@&&9)Q-gbJr9XPjg2j%3)Ju+Il{erHc>{OgvwmsSw{iyQAAfS#Xd8uA_O0)A@0 gj_^FZ8F9mJSlvL_Qz2AE`;O;p6N_Ks1o0n^cs)$SM6_Yn1HZBok7$SiH_&`ZOS}RegPg}=W?gE_JVYD<&IJefMDC;$54B@@!{>u*C##q?@`C9)Atx=e4lM(|7?+mi;Bcz6o$ij$UP-$8Myo2&+2!g;eg{# T~MO&Ca_xg5lXWy;mp`;sw6Xes4>%N|a5tm>e9oT;eY<)!$WL23|0P i#(!|5zH&a=TyqoLZiES4e0R2mH!iDF(PlesN*us7ZYt}zJ6e-%|b2_DY0$`Gr_noURizVC(-$94VL(kJA7(AwKn>pw`8KzuW`8_#=7oc$zG9tJyP G(7X~@<%vSHGv3#f@TEltak7HTW+tCBfLwFIC4}rkqJqx;9K}3%+PXG(+Cn(wYMW}>d<=#;K^*i|6Ez Q;9e~Hx%!SshW;qYT_;myJVAItTQnE>gROVcw+>Nk>~12gs}0(XN0{o7utAD8&h1mvoN1HS5jO&98yB (M%380I`JClmEJd6Ycrza$B(lP*p^-$r)wgs(hP_w}??<&u `McAM_9toWg$!-76khwnUU1sh`SJ8Qh06Yh4E{`sS~c{ORhZ8qh_Fgn00+nw+P4=`{0C4=0|XQR000O 8W&uT9tVxz-n+5;?;t&7;Bme*aaA|NaUv_0~WN&gWa%FLKWpi|MFLQKZbaiuIV{c?-b1raseHY7a8#n O2UqNgTRB9c?mgU4TkX-seixzFs=9UB$wM$8?cgZcuwXFvIiXM9D*Y!&}oZ*s`?NkSQIWNw8hPJNj>g `^#^|~>wbn7)Uo8M&PSu3|nOUDH3#V{znV_R!_)|kFGnrYDkZfh+2_U+rBne)PrPP)n)=J!%rrpI1d) rgLv+!H36Mmnc9on%r0jb#FadvDcd^dQS1pjC}mMhknWl$X6*RMppaq8~bWbyZaiesA8qVX7aD^~}oO N9nvv@CmTMJKuc<5`YkdaVuM8!K}|dAo2O>%TF*ZycC1+h+Umsep2*%^E}F0o}O0Kucnt|Dcg%1$@;P L3bZCif%Up&8{_wE90qBh;kh%n@Yx6_*^RUg%my!PEAUNpudtGdE|9eg_6;~lk}FQ8Xf4e3dYw-{eIH IBy2^NQfRKU^P|jNE1_KvUkjluR>cNsl6%wMtP%oUfW8+6)n>_x5G1uep6$GiOIGOvJeMC1rVc%)Uhh AX(x&;EyPEW7ctZt0NS1*F5STZ5SD&z23fmo?0f%>WqC3Yc_ OiJi3}CW^B}y2r;@%kE8Ilnr$&cWXWl8#)>p&Qs7yg6yI6>$uLwCls;rl&gL-_yiKYwLOXklZe@Ul%h Ey=1-48t)TtVBcX?)f=p?4z Br9B{IXM^2K(AtV=0I$3gSkzJl1M3367I7D~jT%V?q2;xOWxXhB)+O-R~oq*HRKAEK513(Ate^Td4~X DS9#PtbUeLVnqS$CEVTeKoxs5m1#aE`WKTpDtiGlu(<4HY;$)9EO5{e#%4(AW91XU@hOw%`!1=}sm*! SOEXfU#LqYd*giY0Vx))J((3bo$~)lIr*aJu~Lywoz7;Sbc0h26 =(7W+>DOuVa-H#PE!@v+XnI-|1F4kj?R7v4kW3+@jCG2O>tPsk)m&Woc$ib?>J6?!Kz9~{KPZ574&lc Yze|KUv+W1`5r0g6=|c{ovA#x@Bm;}%1$VER&A6sU=5NgYu+Y6G$;xARL5Bybc+Ea#})7gfHXytF pPU=n(I>aB}SAC;;kH{hKg)ZesN0FF_y-*64DUv=sFq$bbo}S`H%;=HDqQi$8p$M(aNJ5i?B?2`5>u} OY)JlUSds!TcN)mCSSTql>kh%=ji%93_WQ%42iCF$BFy^HgT?|IZrE{lW|2TC|*&Cco+*XQT8amjLyGsUZciB{s{&T)q)j2^|KHGhEA^fnCiPTh9f}7zG_}y HySP+IiRycCw&(Mds@ER<+RMJJl=b%Xf{GEoqQ&>3SLzK~;I@Ly;Elqk*BNzcu#y|0Y{Wa{qih-Tthq >CKTJBD3&TdR^1XNpF&RUR4#mUm5Hm%FpIks8M*V2J{Jo&eerCjb=o@z^CR!H_;+hAR_XN3_sYK!`pQ hAGb(yg5u{#bZX1MJ%oq%6s*x;dOkmv{3+=Rd^yhM(=EspjBHJVgoPY>KE7t*hQ)92D4K 2S_4=d!bG@$7Hl2-s7yf?8T0@f}h+&p1PVnWi#>{ij6n#IM2Tu~BCxmyGP0 ALFM03rYY0B~t=FJE?LZe(wAFLGsZb!BsOb1!pra&=>Lb#i5ME^v8`R!wi)Mi9O8R}AEXsDNhCt5Fv) oCFP!q($MP2g49o?VZ`>$4Zu*=n#k8H*db)%yKrHB?g~5w9e+%nXYu5L7RMk`Ad? w!U>o_;I_g+t9NMN?|~zk5o5A8x`t9Kg{70au^{VK8wY=y3Jq3oW$AiQUh29fnjY{;w5@D58GP!TSSj qElO!pXuoiBG#Se|e#!4rjk%`hn=;A5?`cW7+P!jr5PH-rSiY$uaQpraIz4}7&<%u`=P`3(eY@7w56x 8Upx}yI#73da?2zltW2N%Vm)1m-jVTWW$f7!>}5~$Sez9@3IQC54q*63$hA)hI(+fq8LEkQyIH)Q{ad -7@!@V}O#!wQ^+6>{ClkDePEU|U-2SU%OUrLs~o4tWAPIC$g=^VxVEtf+0O>6(m$H#=xlAppbp{lgxc;mgs`HySk2_&D wqFPQV@$sENsY%iK>{_bOs&k=F9w}%E2o+HUcF|ftwk73$9+pT85P6b~0OkbQVj??U&9%PA6V=pwx#YFMaEJ!K+&m+%YLelikxjuY>pOL_+ RDY-`gY9|Y(w-#P%&j;OLYx;BPwnlfGEnQ`XHoethXIbVFopSuK!-*xQchr)Lw_N7rGi* Fxgee++AFb)0^te>7Q}#xS9RL6TaA|NaUv_0~WN&gWa% FLKWpi|MFLiWjY;!JfdEI?&d)&6M=y&}Jl)A0B&Wf@m$H&=tlRCECsC8^tFUe_TADUWXC0e`WhUDrce %#-F<_#b~a#wD9&%MvRdYXDk0E59`W-yo;fI$#!l=|1DuIegU*4eDu_=oqmv2k*lRccL#l%vs@hs=nY$%%&G#bOqVk?ElQPgi+CE10@vPBU@|_zl(hvX-XuiYDPanOwn$(+Y+*UjTq}nqAXvm h&9N#2}{YP^nFo7r!PW_43if-3%8VN9Q%bX$0dd|AayFk7e$>1&pbG`?SpExfwul1thSHM~@ $qGRERKMb74m`gWoh9``fOFF`Yo+jrr{X>!79h7BJHh 8hjF3SeB=P14fHkQiBqht1)y3^RT}cjHt6sqwZDWai0>Equ_ tPz`PYV73uo|bjyp^$7%+gvs_dg1SHi{pLI)p0TNK&g_lKD54a~1_42NHATbk7oB?}W*b-(wbx4K8DS oR`1FPifC9E@gV-0XpX}Uhvb&Yx+NX;EZZx%ZLi@poJ>i8$+KmO(5Z}Icfqoae@C-Ld=fhaH!hv2xF) }T=JyPvX2Syb@!PAK*6`LZlQY=34NzB?2|l))tM;SIc}P4yOOd61*5fQT+8zL}v+uTqg0P%XYkG^4#LZQbr}TbO0GCyZB2Qg%Z>mX>7k LJ4xPD}d+Oyz2i_!_c4F(P@Fo;l%q1c1<1jZnvR-xWYu8S;1bu~}w$)%wVXma3+oG_e%5mnsaP|(0zj R^M=zAkbwU%WyWm%O+U8pG_}XvN(^8&ynwGSeJXO@ChLg)AztHMpR-CH}?ecu`1)YD-FuEY %ciEfFmxI<68apOrs6(;EV3 G0BsJOsX(Oht#f8wTg`Q;7Os9>yMn-ZtEpm}_l}o?58TPBDRc0R(qEUH3vHRQmYcH4pNM5w;VlcD~Pl TypVrdGBJ6C2CV0nic!V;E%P%Rf}QtODeZ8FNsq)O_#3{%k6VD8MTz!_i)e3nM^8tp9y-&C-wmJ6`DX F3lHX;&9DY(e17MSTg)Q6bR#2`{MeqCj&HY?85hXt5wkbnJCfkXe=GRh{5iiy>+)2eVBjb=6*U`xR&` oz%FD&8&7yaQ8diexeWv7+y|O&^2I8W%>553bU%%e)8n&Z?<;_pz&c5K(jHL%rd~WVT}T?Eh4haK-dU wFzC>*Kr0r99>*>fTNGhpabqwt{pL`(rfCtu&lN3k-<)idZQgMDf50=?NPCYu77qg<3YixnVQ!MR-!iwJ9U*8<~hiSS3)^2WdZxA+$rClhjQGfHCzf!fOJZ6P5 o_Bf1SH8^pH0rilE2t-DQls4uBl3|2=rombm(yKKfiD-!3xz@R%9NIy^Dnv98k4Q&$7lq)q&bQWroFx ~=ltKuDNU@_Xxr1p+44suJFiO27&ejR9BNSThu^JT12WE40@U&WaBm*S=C6O(<0xh)fF1XH!QtI-l0Fht3Yc9 HipP3zv&XWrL7@n8a=7P2$RcYeuedA+3U!;r>kH{DD${Tcg4Mj{%+$n`mi}}V%j(Q}xd7%t0JPvF>LR-a=?7rEpP&vJW10ISai=9-t o#UY2?KI#%C;Nr*`{uun@4$zPg*wPD(6GOR1pxl71fC&|<1AmZ-J-3CXhG0p6{!qlun-o3 M&q577$gGxsgk7$Ry4*jt2~Yfp$|6HfDX8rPGRqdmbj Yh`8hgEr|=u#6TGCHTmq?BjEpyzm(VF1?}87o%cNM`8S2(a2}B$svufkECf+kn)=L|wPYE|*LU!DV&1 Pn#s~VlLGH=mdiQM=o18AL6=#Ic*gu!eZ!P*3b?=a?np{C0cMXXJFY-4zKnu(tpc9(#;0g5sFY0m)2z (Y@rWEoUUL_oQE1lMXAd~p9J%=9rH^Eau6i6Q^#S`$U^1K~g(@5N17;MkwM#(k8lGu49dxy yieW1hlg-QS0NQxM9A`E1bg{rlVFFsKq`*WD;3gn{0C|dO6zH>2)f|0n`O-)UuI0Yj$qTS~vXc|+NPz T=hic~S{lIeqN&-ieRk8f+nVAl!LRDj!832FJ7BAh_rV~L(JRPQCgdB$fpKx6_L`2$z7y)y*n;6TyZ` 6on)HHls&llvq=R_8?9`SdYm9nd~+Qe8nhU*rmnsD4GPsw<_gNdDMlC`Iyfp5(~|C`4RiTM7_)OEOm <;*LP*3Oa|kjH6;wok^%DrD2oH*=N?pfj`b3{>N(Kf;N5t0Nc!toC4RJX~2 ShlxK+vn;Y^ghvOMm(C&Upi!_Xo<;OBQIx9IKiko4%Bz{YBFQZeid1xu~MnkP=%O*CHZFRyeMWv44w_ #1%OQdhA?69PY@>X17_}knXiTI>*D_$(;qsu8^-2L2VAQN@wIH-#&$KkwoBH6S;Z#*6p;VxqTsPDqV) eFzxMVmDVt7TJd`p2+Z!TwxOoHf?_Q$!X`a>9@-n+Bc5ZZe^_yN^sL*C2JA3*;M8eU@#cYcQ`4Xrriu m%PcMkB*@6^%D=W6fa<0tBvvw+o}BorLx>`9$0XGtkZy_ixvPqr%!PYDVT!=zk8&McT|4Cq%ND7^k&N {SGMaC=kIuf)OxM!*h+tqEZuiW}bq2*t>2&dG< e3B&?AqhH;C|p6C1M#95D%7}BmkO}GxT<(dJi=u0(FZ1dr48jj@a~m(ho+lRfWc#IB`MW>Ijb}DsMgs WkpWFb+Xs^Xih1Z+Wm7FpcE<_r1Bqj-cwhn=v`@-ZjV2(d)#w9~`hzGV6#gz}Y}Lh;&cWCb3KFzHw80 sdq9$>Rx84g91)I8P)G@dwrNqNPB^NMhLo%DqGzh`cC0b8HE0b_9gB&4O&AHE!&94(fnAwP1MxsNAAS 1u;_38!43KIYldB$22x0g6i$S~cUW>1cc*hB5J(e8Upo}%B|yCZto3btDD9fUhJnact)CXgYu+#T5+N rPKNLAaD^c*Z#w|C>sJ@?-8-60pp{qA?U+TO?WeC5ppF-9T!ubxB(uq%8T27I*a}R6+zC2F2W&E@oTP q8JCn;?u0U4A5IvjsuK5VmMT|l~y;H<}e+gIHbn(u~}GHp`r|p(B|g|qla4n5&2wTZVh1Rz;5xK?HJc m)&h-7934eW77m91ozPq`(c}-fK6ORV8y&945*=rDkO6(_DH+j%_xZ~O5PSNc5kQ2zUI3|YPXN=lJ!% E;)8~It0E4kj!N7*?-~)m`!-Ds2UX}U7^(4!kEIr<-nROc58IQpj*lySJTTv||`~0v{_zlEf>F2h+;( vw+y*DPq|3>*=jmQv_%FJHXiwTx6Yp1y^sg~u~m{BS`!hDe`nW4H6?&|jOVGzj*hB8`c4)h6QqElris 8J&DvgQE)d0E_`(~OTJp+Mv@D6n|H{fR3x&(lM1zPr=ic$RTw-BIyD rD=A{VHc=Z6($MEO^Zf_ib*e8w26ocW+W{y_*8;T^`{_AQR>pmbf7~H=gB#kDwM&&PSJ*ztm`l#>_E< |CG!PEUtM1p0Ok-8r@TO`h3Ie2*oNGUuX187QA!Y x(N AKV-XzR+xo@{cYsp1eD1Oxka3!ZRgG)u4B)Xlsl*M>c86;3{OlM86Y+~G-bl5S}oOVo2}`)A-XPpT&$ M@^C0pQ<-<5A_Pd%G&bqSE(wNi-9CC W0}~?j5ojGffDo`1)n!8mWV^^~(4a6<=w1;MkNc?{5X7<0G`PgHuYHPoB=HW}g-*XfhmUS%iaEhm8Lp wcy-@z`63W(RGI3m1YKx`PA`+L4*c-s6jKecNJU^PaB8St@+YAo#CZmi}3s(=TooyJYm%v?q0%0&O(8 A2|{FK0 `)U)cuQ3ErKS^~7(*(zp2E_VL=V1~8soFz-PZdDVf5Aa1N`~jdr%>m>RFBH7zIIFl*z?BSqF>>D8Rn8 z}JJlozHq;{@2rY-$MyNwWkWZIQssXX3Cp!M;P%1gT(Txt@Bkgo^_QNyZ#zRM8p`DGCHzrjAH($DYIC3}h1c`SFtLk3b&QYE $mV+_yGW{YqzG_Sw}-?05vRCRbvDh?aM (Q;1+%Vi<6;_v?f_%kc7g1G+m24^Qo8}H=dkbaYDwn?*4e1l#!$^CM>nz2!~Lw?@mFeBjlKkwGZklmR s>cR@a>>?U(+|=?z-wKRo1EIgs}Ykg-gYcCns+eAKj)EFzS(jYUDC=&tlPIVYoYp4g*^*uQ&tJWT#_U ;0N{HW^26OE5u`sx^Uk$T?V4hf lv^QZ2h%!ioFF)mEo0mDXPoFL{Ssd&*vp3#XXJO`gpB-zo;$J9n~8$Np`)w}~{Wn?+56Zqh$GjXzM+r rZvFT_4Djf8I*L5_o=mgJF7W>OqBT@6CX0}jN_7u7?CFK5U%=sMGRjR)QsTEzc`RNd2#<#k`|yu9961 >!siFl3%5Gd}9S(F4c=;R!+9;tJSDSD{>wq3BU^qnl|sq*1`W=o$#bEjV>b3`b-5EsBbguBC4mn3)*d TY2xFLW2fHuZYjFNtz#9mXv0N-8^;6+C${mXIO7UwZHNJHz7VM8+(P0-W1kkwP_eO>@gkKYeBXwW$5t =PeDQ80RiJ{OfVOY1fsJegI-N_3x;*3_+~Smig$E3vH~bK(KNb|D(ppSia|(10}TzcU&oiW6YDPUBa3 av&c9*O_fqlyBa6PqNoh7N937#OO_;E|duGWhuJM|sx{SADE5M`oz{b*Z3s0@P~ZW!$<37I}6t&bQ1>@K2o{9lHLo5LdeWZ=O6JY@EJ6I ygQ!`uX5Re0*?%R|}NIZyMJy=IG$r56@p5y!_LThkyRdtDj!KdHdI+Ws#?{=hWdYj#C68B50fNL_Yd*GYDh?G0pT0yi$Z7GdI2j*aa2Wm`POg%vrm$fw6N}s2-);V{-~VAN96b1HxHI~8{QV! #-v6Uj9ixnXi~a^4hi)o~2=U@m`wGihjhhB1=%#nt7}<3-TUyX2h-+CfcYrjV&}o6K-){}ts+1asEA- Tm#y#%P%2U&gw73KQMQ$fTcf3INXPr)<&UC$1A+1bc3TBoFfQi4 eYmst$k#Il37ZR)PJdPS3P~I_V ?7b;&E=vxj$neI>gKCA_;}UOyBPg1D@%Dp+pAqw77m0i*U)75Z*QPSkHQ%e(p?N1J2cSoukX0+r!*Dj Vz+19^*-tmIkg&a0}O;HQg~m(Pb8TIlzQX%{=0<*dpfJimsC~!(-~vePT9Me#c-wFLM?ZWVqcm+X)dN 6o(cJ=a9&5_dw<u3uXgHH<#O9#cxXIHr2ipz*dKH}$AhR?!?)TQgd4o_h!A*rTQ|LR_Jx(GT@y-VQYcr>4H9k_>pt bTMid4^f5&8nFf5kX#r^fS2?hbSFms~i;7aAB1(o#Uiu?02{pA6LY>NLLhQ-H{Ai0jmj_y*pVSy5&+- kU?=3`*PWW1xz?jLXG>D@l9c<}0lil*()@d~YH3X2(o?*U$Q+Zv>sPq4$!G!-_Lac8(O|G5s%#EZK8x7779?i -@vzLRI4RMYWFC#!xJb0_i7+K&hb)14D<%}hN7Bw!1O_@6+j|JQoowQ`Dmj}fSAbH+xoILtLijeNot+ )*sOnhTtVUZyYHc=*?e9;5y$F)5c(7?@>g2x~Ila>Ez&IZCB%^0cVm@{mxNmN+9@xczq3N!B(}OtYR#GNgXbmZpWxP~8KiJ-zKRx `nRIVB@g`yXyX(Lzn3n6r~dBqnObE+^blXRt>0 uJ)i>YTM2$Yt+(MglfzR2bow~QZW6q5eZYuh(>wuWX8T50?Uge;xZhtzPb_8Fb6llM@+$_u%01U~1If0>>4no6KjhX`N@&4w77eBslaB~k (G;1&&c*z~?z0E|Y4$h`0o(8lOp4k@ue!;n-%Dw&9`tPe^cCD>g2rF4?5Ak~LiiDT534He?>f-`zr{q eT>yn))t;xeRmuHGsewtk@`JPwikbJQuUzFg2_ptB*P+CaoVjDa896F$oF3zJ3$GJ$ mz>e5b*KwVBBEP29mN!i$Z7gc&| 1+szmb?cG^(^yAlV6BEUK%=bs$~>jzin%Y>4oxCpZIIGrIcp#bHjX?y4UA8i+r)TZPMlm|Iyjw43i$B gwn@zhR;{>_2=F~2H9>J2d_n|1?|gE;P4qcvp=**HR`_e}C#jl`zeIgsed+1Hr&^ P+^2sBAa0+AFeuiTUMtziQ-E|Z^;}5AEm=CFp)QT^+^tOZQ!GoO#tq**l<38u(pjZL@9ow)OyVg!U7E oh&$hU>~z}PIyud4RBR6Dum0tVU1V`Y{^3_pK2lH7nKIgmqG$)SI?VgWg}(UiTOjakOfSBrJ mztb&4EliSQ-qa5w*f>5VsLNf7@xY=2ipxK_hb#Yh=e9Q)&$cUlpcQa+!Z=0B2l!^}S1s_`qA+BBB18 Bxk5Z=?wPc7en>nY2Z6%@vmd6vngnjOrd&{t?iwTyvI}C0fTOWMxoGD;+Kh_9`FtPzezNG`W+Ew@Y%m ovz4^%q>z6>ZbdgqyE*dtPiI-QZqhWPp{(b=se8YEVm*@BJSBW+UmHR5yRoTWFEM2a^IpDn@31SioD> H2hY5PQ(g|1?bg75A?=Z%E+jv<|H{u+jU~>HJ!-s*r!au1dS;k+>uvuQvm~(A#9^Uey?tKQZhk3{Z>4 DngSNqPZeeXg>(|4FAb+STpwzcx6`t$Ld*T(xsCkEwwVtr%KYLW_QhmBXLbMz079aaKHCly{^sVH`27 70X?Ego~IIxCx74A}@=$~JwobpyR2Po$pBY_FiRet7fKkk?CEk9b#H@u|zP!l9py9=*3)J~@t=t58yS p?!RM@^XJKeswTZotHlxba#G~v%J3-Ad*ni+`5taot%yK=_IQU@<~6mC)-ta(E&JAKOMs)+yTZR<}ns vonGj4(C%pOeb0z?ANPz1UalO`?&JOu;jGcTU?`h D(vQ^kGQ@%F_N<78j4`=&a2R(pydm!)OrFrn*BlOpP0pytjc~iZ}*!mQv+>_h)Fo}Nmu_77YrbM@P_D -7+`@MwNZ?N4Tt;A}7Z{>KuwEfyqCC;e!_xeZWDo{R9!6pdkV9>HLTdHw3jZukG+7MdQV5M?Nqon>si 9ZSX`6%px89fy1y(66D_QS^Xr4F2&AueHU@WPylx7p1`TbTWdy;2o-IrcKqgiaH{Hgh?@-=4M65BqJ- #?@ia#5;b?caG5EIh0e@zv9QshM*Lai#ex?F*JK;FIt;82U%`6R*ibBY+%UVC{4LOc;~elr+jfh;8EN J;~OS?OBW5}!H?8laZDfWxTfT%3E+*jI0jtZ;F_7*gWj8_FFp^4UxawU*8zY*nMhs&rF$0~m@3Nb0)w P7sG&KtF3|8oQTb{L-?L!ox$fJe65nD(tUsKeU0aUdIDsvC=6RrYbWtrgGwpEJIv!g>$ebWIA3mftj& b0~&$4!7MdXggyPuOZ#mFA0^GeUI-Or2J5d?oU_mncza6xmsrZ8^DUuHMpjZ~Q?{TGVM$Xh3kn=gKbc 7N&83a!fy-wxcv$A~s(s2fq}2se_@(n)R?M?(N-7I4gK4EV|MF!!PxJ})T;A#wjjt~PU_cuP*{x-$G| Q@^zK#40_LmagRpJ387TDc(H=JG>Vs}y0mt~f2_aTu>Qd0sxd9|gK>#{OR)5w desD~bgWS}?-dMT)S1$fCw<_FRW+0}EWMYz1Itizg7HZBEHaX<$ulU4ll;QlQ!a)1 ^Kc!WuF=LwEMMmv;d^8JYQRVABc*B<{}TibbOAEZH1#uUI4TKgB(dF}jfh1uq4vG;!5_^iJpwq7a5xv D4Ho_u*<_?6{*I`g6$ZlXIM@bpjhOoJaA22+WDGRHCD`#z5 x%KFykxchb&VW9TRBHk}TJcenat8l^-ZtMYY3&bP70t)5SdNW_V(ye_X>RQAzEt|&)r7qaeU?y{n|SIgG;f?&{`lfaKz$LB?Q7cL~E5Q{^znUtS!2Bv(lk!~ omU+=;6*-}qn#i838<%%Ekp&BN6;a$#}qL(|@k9< )Bv&{!aC$V3eLt(~F&QFZohu5qZ@&bui4fWI)AlLWl?qvPF=%mvSK^KFm`eKRQKFL`lecARqn2{9pq* 3N)0>3!ecS%*q+%AX!4#}pQ?>uIp@-%v{f1QY-O00;nP0YzNFsjbV~0RRB+0ssIW0001RX>c!Jc4cm4 Z*nhkWpi(Ac4cg7VlPZdLq$$gMOBc?j@uvsAJ2eyX%BORqjP}zvm4$11} 6lFuFGH;!?W*PhiPrZ#X-9d&yF1azM>D&AKX&DG!A#nw_n5H+7WyY?d6h~y_;5q*ouKsrQK1@fE(Cq^ ~eiWzymdSegG;9NFv(UN@*y#$pz)L0V)KbOH*k%Gi1kY1)6QBM!iA{hTVf@E}DYN&En$qR&cDiyFrzt W;(C%NY`9&`?M67+)8H53IjkYV2?~%FjWfqhiT0~aJm)@N~H;vPhhqz=Tu~ft66R{^uK+fK3CGP9}Q- q1`1l!O+wI+tbdMVS5a#eHfns8X@pJmrB*cvWfCwnhG7A@6aWAK2m odQMO-%2v|-c$0012V001HY003}la4%nWWo~3|axZdab8l>RWo&6;FJE72ZfSI1UoLQYZIC?+!Y~v?_ xy^`NkIy_J7{(2CdEx8r0pvN(!Ba!^!FR>cQsq?xrCdel(tqWxtBK~!-)<#d(wr!5WY+a6m8~t28{MK =10wtL4)MSEOiAsHtfOqM7z?I+CvXBcsvb39T+F*Dr*W4@6aWAK2modQMO=B0%46gS007b=001KZ003}la4%nWWo~3|axZdab8l>RWo &6;FK}{ic4=f~a&s{p(0ynFWD&{a<^4SO@M>$LTee!&o$HKPt(a^N+Bn9Q(vCZ+m7Pp#TH}rfsdoME(+R_$kN^DT %EFQ2;8qo^n?o_Q!>ouNCWL>JZ^oN`=<5nH#>=&b*u5>f;tEz@ui+7?HhE$sNKhJ^``m+@^eAc +tYHCGO&+(w$UYI2boUxm~v5nTvk}VdC$z&2F-fmzKuN=fZ$gMEb=&4U+QLyfFJmTu=>hGcvJMKhO$7 yy5`xwq)CfL1YQo*M+uLOhj@h7XB2VoWv5)2|`u~9i$AEUY^`E8}ms^V%Zw>WJH_p*OO8*js#kI7<4d o3S?Vm#l>aOkj^#3G5XMD^!MVZ36}EhdAgk9&!zTGm+@0K-f4H&9vZ)0Y+o9 qO>+27xYZ%$P*R@!KRhKjEh)J(#Sp~KSKqQPluvJbo_tQL2Gd51`a1iB)!A~HD&)fY^W_v1^m8t2!>f DB=6mE0;s^!$3jUgqAj9WZs<9%^P$1h58O@oc61^8kpF=yJetF0?oH9r&mK>d>*)6IjW?CjmI`$}=hH X$;ylJri{Z!4ElPxmifD9TeOCfXOFsHOMf+-S5Wv04zgVnlb>lDN_APLZO)LqC4|_omHRg;XNc LDeDbgOs)6$lJ$N4hTq5QBlm+q(ChjCjzvLEcMo;?1GyQhepDq8-aL<;Qi!y8y#LCfyiPW(C+`yeNedjx=uDC^|``)X;dyIOe3jeZn8CVE_Y;7v!T%>B!jbPT5hNe5B>w4Kr2fr87;uJh=FZJF Xr;0$kz^1UrUkK1@Cx#I|68333-#Y5mAtN;R=<9o<*LH(+aANg;j#W}Db-4i^ps)LQnHAjXYqfR)dP+ @2s>?KE*#+VgYKF8zME7-d-2iQd+jv|m_?~zQX8(C2Sx_trdp)of2ufS>aAj)-?GAtwz7yY|#PtP{*C#q%M&c*sAc`C;&y+bZ$~_xa dBNL)U3h5H*5O6v6RQw2=#<0p6S_!c9ghgWnc^*-)}ghAR3RqN3c_2vOaiZwFqy>ldY}PzL{gA=&d3c )1mS|>WJs)tOzlR(oD1=%v*7OWF|NpQ@2kktEStuZqy{w`6> Bqx6Y;Zt#M_2{p?xP9_ndt|fGX-U@Pq9E9=_b*_HfLR9!*r6`_T41*gt2}JGRy88QP4}kASGkb!arl# cXtb%hfSrgKVVpdE(m?HFkL3A{%XeJn1*j;caaT6(}of@yHrc5ACRt_rmKs)(`}X?GOf=JLGmanY1F! )c}w-lKHV3zlnHOrpn+WI+Tudq-(4j-{q_ui!Z8@8Z=$eA`}h1HTAEl*Q94n9twB};d+fOv0f)mLWm? >;6=1x(}6wQc#dOy_0^s7)M6G|v~7tJn4+c3vsOIr(x+Sik5jn-bE3uLQ*v?=*`9X{0S7?Liod?%jYZ +jzMJP47lvw;*%g6@on;+cjS&@7dNi2R#)2%sJJ&L7E#Zk wiPAekQdHXnT?*j{fljPREQAATg?c~)i4kfz-Cw*ZH8-8{O1eAMf4Nzb;kgTMYbg({?tI6%peJR(4s# B|Qklaur)3=1%juPP$0>q46mulfdB$Ws;29DA@#G;U jx$F(75DVq2g8+e%!HoN;3%gAuVBzWUVND2ngM7DF5srx)1@xo7%m%VYd2VNqZOdq!v)K30DW!+DYc( lTzMLFRdNLqg`yQ-rozt7+=Hk((RssMg`kPvR1jYT`doJzaf{-{G%B?`WsJX)P;DkQ@|S|`_y&{!Jkg ~nwW8av?~{xCWb(GZHEg`|263^m)Vjg-4tZS=m0OSUzMJ`439?FZ?SD8*(QNGns&`8$*Tg&UWkz@#h0 G&w_DayH#h71!%Q5%6u9PXiyM kLAE(2TaNi{?3rlG;n}YfLDykX$bm(IW_)r_$o5!mmaMzIy-?}Kad?I^l697ypl*vx=!IH;cRjKce~= Lfz#Is6k6KgqBr?0^nYVwn%llS8v&q_KG1gF^h^nP9Go6VlDL!ze$Z63k}z;$+s+V!NG^^D7v(2%{eJ pW7^Tv5^3-xaNqven+T|Ekvyr1+k62{E4^Ag+0-4yqiwrI^HciAzvrE&Tp0yR^>c2g08_jJ{!#{e)R+ #r^P1!Cn^J30Mgyv5ewBhpn14nHn)eortKW6)uF`FFvQkb}CGs{jJdHFl1ZErj4QZH3n-H7(!j?8u&E 8GcA&C~b=9gl;Mr;gJ1#gMpRw(oQ=yo9?>ReP>>fT1vfDt}I2m56BKFwe#g+{VwU{XoQH%ewp?>1{tq `Z^S6L}`W-7Hx~r5?OVQj1C*s9LhDq+OK>-8r^WfTIl}sQyCJe;)k&cm#+}sV%S8^)Sb(kc+>QSa?!v sAxgapStECm9`;8BfbO%(mmPJ{R{kyufp#J3DfpLby$reuj15ir?1QY-O00;nP0YzK@00002000000000V0001RX>c!Jc4cm4Z*nhkW pi(Ac4cg7VlQxcE_8WtWn=>YP)h>@6aWAK2modQMO+RWo&6;FLGsYZ*p{Ha&s1Or*baiold6v Vl`lVbHyM0-YSPXG~wLT*6l<>_(aT@WvZUj6dBMfp*r+d-=iCGoe D&2O_pU+3-95r@OXthh;Gq|x@OuW;pRBu9UUFLLyfmY329-l&^UXqD&*@eQF(9?hz%f}5bh9q1xo_RB 2tAl_#oo6g-2ZsWRRvolBpjhy-a7~xS{mOcApbP@#@W_Xks=3WD*RE9r(*@Km@u ?Gb88{K6`{RZJ->`XzAXz@E}a!K&1LZt&Gs>G3IpnUlw)dyvC5Hw&YtWDW`Qy*_nq%RH-s!uXPe8cZ% 4Kjd1bzY7IZ5hChmVxI@!{g8+jMQ$Vh|owf)S3L6%p7i2d@AwcjigcJl&TOWEj1J(T5yzbrvebY^rFHsn4UxzB-)1-6QVbGVMu!6UXyq qSj%GMVg2m-n1plMcGFyz0-H&dJ4bSw54nG=r-xt*N!5V|OvkOhuQX_2`Sqfqnh-Dcptf<|YEXoP_>t ;=+g!aMy%c^?F5<@6aWAK2modQMO^ Sj_u*Lw000yj001EX003}la4%nWWo~3|axZdab8l>RWo&6;FLQKqbz^jME^v9RSX*z~HWYr>ui(5F33 EN{)mRH`UfTshgTnDT42Iz-(ow8N7Cn-3Vr2R6JBJsEl;zZ2X9Te&9-hm0u4EzjmaW%CqZ$G0H7mC}E )+}anyXZmyp~a9-<1l4;=GbkL7OsORgh^Cx2sOKkgH}_fgw?cU0L6`)i`4KS^V|!?Rxh6+u7yC)%&r2 HA|~1y{*7Jy@wh^nVE+Rl-VumC&h(%`jGC3y?MAI(F+o7p0DBW2I|Z{Ee<>Ql-hlN)Tr|~N}}j;!Ct$ ycyzfKC5(N~E^??1%ya7hG($e`60hhy8NCK)n{L#E7Gh=r &K;e9^w&r9!_#6#ijXyar$5HHHwpAYjZc10kc)Xii2oq!^R5o0T<7ncz*GPjESEX}8AvQMuJ?oOK=bZJOOHf&bQ7+DMR7R+UmMhXL!hM^H&H+7FYW$Gen>J2Qu=M`N}ec{td{3GL~-%wtrAb&5?-6nP(>O6z6|HAHQ5nUphj4B0tDAfkBH9HyPcOX0 eJ+BE}!|X2uJqHl;Knql3b2;c5c{fyTZ7Muz8Tz1V4F1EFtvk J`lrdGB5aQM^wWzGe4gw(sn8bQAQ*R>sM5pHUkcU*gmf9<#ClYmObDX`Tu6~!VulQy~XMzQ#BMjFL7;=Rv} X_MYZMN;;JAV$4tGP_r-u7C;~^l+}E*{UaXEJo|1RuzL}wC>VcbhBQLe^cTM~XbA^^R*tLM>$U-~0tp V8m(76KA{LooF@g@0LfdeR4=jFvE986ZIlW~qNrBpZ~@WIm*h36XG9dsxTbO_z7bDQ8d&>o7PJC~swj%`f;1sq9YyFvuyKvN!&Yt6~TC&;3KYhDq- EqKCuphLDwm`1mr5R##aC!Wxgon6I>bZZc`xA#L?El(a!jlzds}+U^yW0c1DatxWY5EQ$PHt@brjkeD dZR-jxnX$R)nmWW;(<5VdCGdv??Lx;Jivpf4*EXGiZgc^MkIoo-kU|7`bOR5k~wK|fxGEki@Z|BGF18 &EF;J@BefB{x!bU9Q>hXgEmP$dSRrK4tVXj^wvwuWg74c+s4<{=wkHL9mpo@HC-&M*U#}2U4odmSf 3)`qs0y!@AYyb-Uw#i}_H(SH=DD=-}9#*UaWG55yj `h&WN1$_=+Y1&DPt4RiVjjR2hhJJ7X(^DFHRB8QlC=j=UQ9K75I-02I`CbN~!DUlo*GT4bgn=oSewPJZdSU$bXNF++*}FP)h>@6aWAK2modQMO?8^;(PG`004jj001li00 3}la4%nWWo~3|axZdab8l>RWo&6;FLGsbZ)|pDa&s?VUukY>bYEXCaCvP~L2iUF47}$R5vNu{`-2`Tx (BYS-l_^^gOMVIggU0`^XsKCq(E+&8QbGY28^S=ToU1IDQP!O5lP?RYjy}D1Zu+&aWv#&P{SfNcUBuq B7V*H8>HyJ0c$Q#v!^V#=m?O@Mc)XJ1@L2Gdh}n%KPkyTkV@c-c3r}_m@O9KQH000080A>M2TxazeYN!GL00#yD04x9i0B ~t=FJE?LZe(wAFLGsbZ)|pDY-wUIa%FRGY<6XGb1z|Hb98cHV{|TXd399LYU3~veD_x@eoBkaA7JP~u NQKqP)fqNwsd@Cuvzv)~`X;On?K3#>@;25X+!#f@Z$s#; +TyrOZfU0k$H(%-y_plEXw==!GXNl+a{Y<(Imwucg*=-;-gQBD}#KF y@7Avhv^hog(p)o+kS4tDIgZ$fcSY)L!qaOK?AS;IJQKG%9>)jQp{zO!R_twUC^HQ`Qi;^!YJoVFVy@ X#F0BbGXm&_SIRdyWWpD_S6cN?~G*Vs9*6=yslXqzkzQFkvAYp@|nGtenQ}}C@ UMu|AU#Xq8B8(4{g8yx@Gyt%xNTbEqy#UfH|n&qsYRvj<_9+Q*J>yDyLRl1NkXA5cpJ1QY-O00;nP0YzN03B}>V0ssK$1^@sp0001RX>c!J c4cm4Z*nhkWpi(Ac4cg7VlQ%Kb8l>RWpZ;bV{&P9WpZh6ZZ2?neN;=2n=lZ*^DCyDl8EI8AZ;&cRqds RRc@;labVa?V{B@h%|_e)_l}JN@Gni%XY34G&JUTO8|bvP#43Q#wd}(&KlYO8`LlpdR0r{fc@i)-d$O?CvbNy%1`&jFhIYL}T MQ8^*wQ3!3mh+?8Vle-xA%=~nTw3g0}Q}-QSHOY0AZ#ahEoHpud&lCg+r>d{fzrj^BG2zgVPU3Z4MKcjpVEjKPuVR2%)(w-7>ogjz`KV?Uu` %6{NgX&p9@1%7Gedo)@em=P-fnu2)g)MZspCZ79`X(MN0sp2w7TY7kRn!xsa$$(7||#IPuvYW(-5M|V7v{X*7XVjHynq?GmhkWuerkoqh17gDQ;)Z^9D`;eIcoNH9d;!p1Ye!ai)Z+9 ;^O(_ppS3CN#4cKK0=y7n*Y+Irdo%|PZysY`NjOr;GM+dXD1A2@cS|a*6Cp~7!Fy?jh_*0IV0w~UNQ1 ?y?)NcF!E%=N0hU#lbQ1!&pmrBuE7_S&#yNxl5E?4ybADVwqO9KQH000080A> M2T<&Sk@J<2%0O$q)04@Lk0B~t=FJE?LZe(wAFLGsbZ)|pDY-wUIa%FRGY<6XGb1!9hV`Xr3X>V?GE^ v9ZRNHFXKoEV`S4`a(2~>T6A%&or)D%J}ekq{{T}JVS^{zUz3N<1B-dR~UJ8{}lBCsu4bI#11Gdnfe9 b{SEx|T4@K<#KfK?3zg=bNmsR?8eRCZ{YPH7FhsSV@21%7YEJ@f=TRI+) =_ZD6{)0bTMYu!b)~2?!>#_xbs*lN+0myaWDoHuvwq_(7{s@Ag)H$=zvel1Bt6wEHo-rKnq65`pvABd HXM_Vnazm~);1I_^xniuK*n`_DhMlcijY-hKS5sIesUK%?2R`1~R#zQmfw0X@r6oq0BQCf!`;M+?i$Z &08;^Bc1nN5&h=jxu=1xd*hFlQ$$W1T$Y85x{hHKdp XHGqTthKxUmKgXn%3rAcavfvW)m>iV@>FOf)AJ%Z%u+Z)I ;mnfuik*a{VzH{kp#PJ5U|DuYc!Jc4cm4Z* nhkWpi(Ac4cg7VlQ%Kb8l>RWpZ;ba%FRGY;|;LZ*DGdd9^&-cH2gh@A`@!>A_?Ug|%mPUU-%{>&T8r> rLY0cxT4p(V;+~DIx>`EH0usUjO@6Rd=JW04XQIgG~W_sjjN7d-tX;_iVM=bZuAj)rw{Ns;pZU7e(2| ZB`b|#f5yAlzGk*@lL+VT3)whnfEWsiq~;l))yNbw>?%_@u0^1@bTU2)y>~t-@Lv3@y(3A;RUa=zi0elya8Z-h%1Ccj==x7gU)+iw71 2ktoO7^@$F|=G8aGBU6!XST;J-E2AoPb<23*pC#{0>rTqInZ_50U*E5)*>GD=KPihD>K)C<{we@ b{oNVQjfTO{x8CeIKR>KlO3;dr+&TGM2J5%Pl_3nsK3zNqo}IO$1LS_7{Jng6ak2X8 -G|#BZh!u8d$aoP<;~mw`kx=(0qCpuFF)M=G-sQHNc_3rfhF)6@*eQ r-IQH_D`{%J78u!!^}(>zJ(7RZw>ZyNJAQ2DECm8Bv!cb0?El!0Wx?;D%jYbeJWl6q$AAynZpI#2R;V E(V3U0_nSQaxT0$4>KE?j{Ltyp+x53=r6-#R_>(gYadqr_7hh*%E{R}*n6+CBg!|JkZS;{M3q(F&`H_ uoV15w&YObYy2(3o@9@YbI0GyV{u)7toP#*D2{NOZ|pv0AJ^Dn7t~Ac5Fw8#k-E>{`BR%N0U2v3t(M* a|;04V5vNgcerTadQUfL9+ln0)ti$jUH$>?LXmqD(up)Cn7N+a5HhHZR?}`0-p*eURXq}rgv5|Ar{zM etccmW$lmQtw*k@8ef#Xu*zDQ{w9$~-wDH0LGqe|nkeLMnDiYb%Pv0e=D@=v%uGlp+$k!3nO#^@FCMf +r)5eyFC4N{1Ayux$>XLmgxf^w6>AF%99&*r((c}LIjlr=VCDK(07WwOhiwMpr2)QgvWJ4FxDjFo%zR yLHnJ&ew;)NjWu8J)twUH_vR#(!khklWMr*g+oCzdf!W&>xkms_$Yys$mc{Z@NLtLj#q~H}mk+522Mb @rX8tVrFkS4cc1iw9vLjzBq9fUpEb ;Pj)8{|U$h>#05VB&W$II2aMZn_g4IlQMFnnmAuxztAE^ikDju?Vm`%AfIz*j5upJd)c;iwgv%A%_f& L*yU8{WNz?h)iv8y!4E43Y@2t0r{6(C*i+C{tPl}WGT3)usvRRueA>bo>z-XixYy(f9`&XOv{9YKpXL9s~_;0FN2xJpz$xX)Vp0-saUmnfjR%H!1l~%Sn_SD4$aN45BO7y_niJn9^ 20hoew|7+rcKyBrd9=>*tOctIhC}HxG0X|Ki5{2d4L?1eDMCRvC0lx{*1yS$bR}QgoUB)}&_8F6V9~z E!f~+d!A$O%d0&*H80~qxEz<;SAr8`oEGc7-%cvxaTXmPX^dFLq<6uZOAM1^yW1BXB`W(7Q971mE j1yabc2N4QIyBLTkZKTd~wDR~iglP7^)Hy!6r6Q1Q0Mm1R2+Mt})x(W#$xgC1M-S(tw$WuCOGgt<6tOpQ<%hnh&FzfQ 0nj&BbTF$HQj1Rlv7S}xRedCFA~t#v@A(|O2imPV&ZbFjxeit23^HUd;IOWxpiJ{-L4 #QlGRHF3;`^jdHpY6Qde*bJdU-@S{DJTo)0_ava|et`-EW@7K)jGOtE8)u3sGd9ssHnnQlP25MudRiiXc+75Q~ks Zo<*F+)|)NIQxPo1IS{16|(c*7uYSD^V;piBjmDXWui4@3v8)y&wsBlgER6Abl$krz8dZQ?F(kG&l@V +R>@5@vc_Fiw#&u+>1VgT|-PvVD~k_Ki@d7!TTQvQNx%x2G8T{Wr8^9I-Tw?7gPGi8R50)_Ib68>Z;f 1ROq&`zY+s9uA-H1O|gCP0ikh#+hCOBu^b7pPUY3Mv|z<|$+XlNNKu2_}TglsLcPX||RX;*X+)mrRTOId7(++U )@(Tg#VTtLzpQh19%n>*5QA}~vm@;Eid0d&n6W>Ek~$YLf&B2OKVR58QJxMK$0RnH0*-tD?Bcf62Nyz O9Tl13Fm9mM#c-2yVH=0s{E;w)+y6m@n*c_^;i@)|LKKBP$F0HX7wF%Gr|d-*Xdy9NZ)Jx3CFKVuM0q?bfBMA=GJSeJQ@Vjf9VhBLRDILn*J314{`R~3K>c_3!9MIe|INYS ZBrRti|JY7${zV=`|S*IS~OCQhJ`9x6duVyO03IvBb0lu=p)gG3M|bU+>8VCvM6;{j{ SM`e3Z07k}7I?txwWlC(uPnmxQQyvkkW{oPFqhyntDN*=k;6Qwt~BTKdP97w9LD{m)R-&&UD*@NgG2F !7F))iXlbDE9BoD=;YiQsT dqt&h@<1nRUlOOrxj-vb%=rx<<78GFbcIl8Jfx3UlodpTp@5qfXHInCOwHIf<4VJ}}m(-)#G{5;_D;U &Gm_q7Rl&gTf8H5!?`0$2O&VcTNm1uzswCXm`U#4-oX4adND6KM`={Xtgg9|1 vMk&S+B+Yg>G}Q|N9=YZ97Q3$a5iX^$lwmeB?>O+(CZf#Kg6(G*$?p!!L#jo5oiHXgMdDWUf3Hv@d_x R=U&UX-9;cvi3KJ(j|;>m@Y;Y!XX$o>$!=8DtvF;F@5=#zIB&*{>g&>d=X|&@cU9hiwMxHRmFZsg&K6eY;?Pv6bN!li58cj=Kmgk _y*5V8VOD1wGdxNL7UthE#kL3?C6_(eNy+am<(uCQbu`NH2Jz>+EK|OFRujs%irKGX9BVSRpvH-D5t3 c}@z@oiyKqU6BHa36;$BHivJ}hL?6lYOaYl-0}#@Lh>TMz!gxCR%BzeRyz(1Dfd0?7z8qI9JbB*sX^8 ?k9R&UVZVrg@g}Q*Edgs39x97#YY9{>j3ovArVWgQ;cKu|QmHk8rO<+E(Zm6}3)O0^R&JCulCN|=jei 4u2OY3KmLuG0C({raZUu3(=f`Wld+233c4-KF-|qO21$*(ey2oDGXh=F3o0;rHG=B0J2)9kGqazm1-3p~pEJS1JWe%L Nk82~x7_=dd(fP|!2~U}QS@zrRZW_#1Ipy$9EU`=QAc&50+sTemK)l4&Z7Y&8e`5d5+h@YFN5`bK>gS !MZWIiIF;pEH)Kdwky$=)6Omu2Rcn7%s&a&06VDzI@n3!R8y~GRM@JCRX@zL>hisK$srV{3Q~Fl9Q=Xj#7)0o-#6K1{Msb4E(VfY@JWyuu4OxRZg8g(NVrYfKSSlu0Z=qo*{{Ikdo<9 L6lw^JgsuQbYuooA5)VXZi@^9&Dp<%xkX159rku2ina_Ihz+Z_uz9xir#eNK>lL`%p@4569R3_gg?N$ R<=s#m-mWSkU(zCt?a7Dyn{ZuDC^^LHzA(qn9)C?e$%w)*3PY?UhIMcVpDPNZX-aBanU3By>O^W&8pb #{j5WE3Xi1~pW(?Pqn3R(VcFW)ZMg?nIWFP{wuH!~{#>QZ>tEO2o-YhY dX~U=00tb%u>79}d6w%?+zw?95ftwdH0LI!+eoV|oJT97gN;5nHV?bYF=xpBM9H6K+rlwf^64`T-($w5v+D;%A{Cs;**56{Pd7$vk^!7wJxO>un&Q3nV 5b}aao*5mvR!9T_?mt*_HD@DEMl+)56}oYv>r%g_l^chM1Ql`W(A*w@ iubQL!Z7`c#wv(`hq;?pJgzgr<`l>7I{u(k9wYX-oboEK0WCi#P1LP$oYsf7w~oGCal5zP^N7)dq*De 8E0;f@jQ>7!i}|%Lq%zJkQ*L@lHS{puo{76(44n?wXuCB#TLx}TtIN?2Pf20K;=@P|AhxPYj#(0xv5uW3|#DZIz0rP6Adcja%7@(|=evXMiUa);O3IpAmvIs5aJpQ3MM#f )0ca)vXYOlOH&EaDeIFK*Iy@3L?nACUC+m-T?j{x?T#;9%u&Qg3>p>)ig1dz#AZ _lMk!Mliu&h4-fLBAfcR{E}pOC=N1f7tOPH-b*po?HA6raKDqZ{t)ihx}9ugKq5yDW%FjK3Cq)fnIAL?@o3@q6iR!3x03j7bY(Rg{X2V{32DqK@ffNA888(!cOh<2_MFpTRF {kWWqg9N%x-+ivwD;}p<8PZUI=16Ish`q@kL0eV+W|QkTNOXd0!l9-SpwAJuSAFqPY~Sb9lwF-rju9) 39^;&hsgSZ2!%TcVP1O_!)PKgAfWDDW8Ol|xLT*?%Wf*eB@cHfTn4}HfCWbv7gC*3OvckX7gTu$qT1v h?`$_|^uNwy)K=TP(51%XcPHHQxQj}b~>GH@g62q#vvaf>l4)^GV4F?I0#YV$1M_YN)JbuoYRo64kPz21A_UGc&EIi=+NpGc2K7_4i)_k9&7f`pFAAVsotcoMjIMc ;cu>Ssw#pr|xlY>SQYz@>EwsltyQO+9KY_#$ &j6r!gE-COrz-UHReNl}ez74+A&Ltx)=Cyk2a0{#P)Evv3EWI}g~DC~*iP`avwrw_*X4g2P>J$_@a39 ~aWSeM7OPA^c|Yu=?ijR5kd;t3wLz-jp>c8@VkfZuWcWCu}GAZIkMTmju!UpHM<<*2L7Jz^nDNlc3gF 4fyheGwv{sU<7MQlQRd9NY3hNNB8-i3qmAc#pWiL1yw#>{{o|J$8uMeV@_Q^mVq{2DWT@KvEmm@b2Ry RXd~5Oi>5M<|a$%YGiCcB|`R|37IE^yWs))f)uLywicL_`!(!wB~dIY5%~AQ$hl{+x}+~usiY+=p+%* kgSReG@wsIEA!JLdCecMbT-ygx7#&jM+>85ioIORmw*+koExeoech1^|BYS*2-|nAZ#ow5#xFw_Z3ZtCo ?SR+bF^Wq`?$;Oy;J+5-+n1>dwpgQlq3jOC52R?h(5WO|B6eIhAsg10s<#4{vACu8@j-_8peW!Q2!R= 5TfLu0VdFvb9Mf8%TJlwqQU@6aWAK2modQMO^=u@=9w0001Ba000;O003}la4%nWWo~3|axZd eV`wi-Nkc_WQ$<}-OOKl{5We#(Mmgd8SUk=mt*QIS4nV#47 F=!U+!SCmK8&^@ju`CF^ixY7-rK!B+q(k6=kz{8(#c~2@)^U~wf0DVGsn72hu-=whSn1GVG3CERBX&Z D9rK0jo?k+N628&_nh_9-8@6qFSO8bUy-NEwR7k1Nvw~K(>S1{nK7-ymCcHOOcSU=<44!`?n==bH?)= #`JYjwu~i@3Uo&U99d~d6t==rq0WP0cy|;W< K`|0pXob%hQ!4!d-HD3Fz?7(HAuA>GIHGkTLe3*;2mk=e7XSbp0001RX>c!Jc4cm4Z*nhkX=7+FUtei%X>?y-E^v9RSY2=9HWq #NuOK`RYX=&mE&61v3S`q{CM}u-Gg%aibfD4_WpPFpRg#Lw`>?-#&n2lZTlVb328bn*mxtuN=YEj$`T T=S3ueVv%XpQsjo^)yc~i1n=^eLLR$C@3W(xr!y^|F$SM&LNHj}$rY0H$E@>+nZnSAKpdmx;jMchLR2^}!aZ8uYR^tWtmRHM{%q yYFYSBmr`gu$aBfx56f=s*EbdJYsV#@R7@Hqupn%Wo79_R;CuI?b?#hMpg4q*jYYa`+COk=hqi-+r{1 Z&)Mt^dsnIrFIg+l7y)e_7%!o=id*?An44zSu5I1v;AI|g=AW>E2UP*k>Vuy*x&Q6y@xya+^ZU=}RAy CkTderT&~t%rY&YF!i{)}AzNVtK>`s>ALD@UiRN1Z8N_(I;(0;`VUe^N3&7Dax5G@8~M_VRJVMR7EE7 ^ONiJT2oyI8WfKe2A*ehx6>odA>A)@x&(mfV>2pa0QdS*yHN81pBHWh}2!v0~4KG%Rnb)H>4}ufKhPW jTUs@mC|YFn|uDBR3&&78|JkX8j(-*SeIcwB>bfit~;xB3u<@co?$cX &RrW6m~^9zGg^;)nJcYSH$HCr7E9l&-BSArz48Y{UR-g#HEZuwS65&5-KVokzZz`eLqE(oqi@Gd1xdB 2OP)IawQMhK0lg}S>Y%!7Lhsh?=4K0;Y|WmOk)Fj2&CO0!)==zlGkIJ=jo+Zcsz(pIX(#wq9QI0Q{|E HeoX$G6tXByLk}16!j+wMpCH51>a(d|1znmQzb>u9g&Q+3RGPN#V4Y0fBU~m^N7H;H~+I&W^3MO|=M$ ~I&tS0|tbKi#jbZviBp)r@EU~~WY0*Oy;s0lJ>n7rg4n?oAN~p-5&BkSU~%+#*DRpv)>~+D#)%`xbe}sla30!R$K)8J@k8k7g_vZV+r>gmB}&5pP`Y B&VTFwt!k9rh=Y8y^o^inp@1f5q3}E#VrRj2Wza@&m!kd2~uL=utHB`SmG4$rT|`wgh1kZEiE=yCJ*ZXa)XsFyTa3-rG4z9rj2$xBpDoD#Bi#2eRi&87bL^Ml!$o6W?)k y^K?o{SD|ZwMsvbGsMMrbXKj%UebDai4yk!DYblylkG5suuA#?<|@($Jd649oP@gI>1V*D?Mj_2wD?| t+(@F3Fu$a}8*Bjc7k2OV|Fig>>Eb?jY__v)GKI11CthN u`|XPYaQLNm8lPrsR489hH;XCl#+I`Z90Q!RFf%?&Sp={p9MpqgY~K*2&eL=B6i@$sWAE4g2NeH$u!QWfWAc3SQQMk3H}QS3 };TLaHRF2)Z?wL4!-MMSqwX!m>0pgF6WBpyI30!12JL5i24CfZm>GS%>Z!Mzb2V6QCc=-i?7g@wpvzD WG>wIK={ryHsgVgFZMyoVAcU?9t087O##&Wb2F3$k$@}iH=++_K)b)4dU)CI;C^my+xC(jE5i58Ft0v &*+pYarYJ-n>-HB=v2#b_vSm>OcD;6UPs6~gZeEbjsM{^=mjlKHR4hhDnwaNB>LCqGXO}5y=MG2Wr}^RDs}C-EU{CG}Ae3Gq7hH7;{`=!Ue!0DQ{%Pr42j!q?b~~=+zfr BpDp#vB@=>dvnAXsZ4vptWk+R1_@&>_g;iBJWqXi0LREkR{cpfHbdW;krQ5zziZ5oTPu`mb(bge+zHz ~^C<#|wVqcP?HYa_O@a>>yh^-vmaM#$%ZVap>_Y`I6COwh1bn{lsO>-p5^(EEtx_q_B)oz1|@HCf=LnB#aDk>Jp2hNC2z+H)<`Y)(jFA#h`H^!p=)cB=i!B+FSxR}=hhtB8r un9U6Ar-fI<8rbjkDbhBMnM^5LlOyv(8WB~vh0i|rbu|ioFN%6uGtBmn`khBv0U2=#Jn^Kg`ab|ZZHK e>w@DrN9WG+@Qvc(?2^Z{zqBkD=O%E5m9G~%x0d$wG&mNuZ(#lDCByXfM$&prdqe9#XW?q_BR(Wu3UT 9)jIHyBr-zoNgNdDEqd1mBph5TjF!O~#5RIKZcE8ccG2_7;SOzsk#~yVg6I!E@j~vNRQ*=!II6R{xrp Ep;PV+9qkLm@g6r!=AWB1#Z07I*VvuD!j)7>*Cs55qg?tx-9Pm&!DElDz8lSOKTm>rIjIDMxS^4i1M2T+(f0Q;7=z0N5S?02}}S0B~t=FJE?LZe(wAFLG&P XfI!1ZDDC{Utcb8d97Jnj~vAnexF}aZcyl1w|jSHy7|3ewOZm%+*++H=|FC}jEgGK*6;nezsZMmtWh>*ueyn2qO=Ga9E+q0mJ&^q4vM#FY#94lWw9qg?&2>v;&Pb^Dt SeYX&OP4F+U(DRTL9&Il(zk(f>e_^pC0~=A_-W0nYlXNzA_{i)Nksht)0Ygg(kxeVioKE|dk-RD&)Vf qGMpe6|AwRkmPIl}J4NY&a>;Cw<3!g-;8Y^~;RD?oLNSl-F e_nkV%aoubSYORo|33(+H))+6k>B=Bgv2^*pvr(NkqYmWk2Tk;*K6t $Kn2<1I6%YF=xO!n^DS|C4-spM6zj@1)%3rDj^T20DF~jyk>N}lhsT)^j<6*FC4H<;s?0YhRg(Hg!EULNUJFs}+neu_ExGeS#F*bbd7{U&qPw-&-S)M45`j Y)Ljj-|_fkMisi}1|%)osv4P$2Ib0yqV*v&l6AV((J6v33cMf0IciVE1cte=!nBXdowgx*Y^Nq|ym@K Cmh4~CU@i9~%UPd|0tl0|}G6;b8|wvbf`YuWME0Y*@$DlD4X$yF&t(_RW9hX{x!qKPxf^GYqUr7%g@P 6clU1j;aKO5%{*GR6dvfCzWGVm~5)fe>09BPy1d@T4(`36)}P2VO`c9tXZ&mc7>6RC8Z0wkH=S>u6!u qHIi8fk}`r3rb!{%Al?LDX&>AcvTjxPU|SL_R(a*>y>@i_F2+reTHN^8W7LMoci0oi=H<{W!U!PG!%_ {6(ZOAE*)6tk1cx$z+WTe`!7HF?wfb-z4zt4>-+z@^ToXzzy9&=^?M(Df`{+kx&Fh)pW#9Lzj^z|yZh UIDc}l)tsr20@Y(pha?`R>DieE<2M#;@-SNjGn+=N~?PH=E!8%lP0|<7;1xul;>|@a Fj1JL79#j}JZ?AKVqg{SU_bpN{w681Mgcy#L4QJL4cthSmk0I;FrI-|JJPsZ{0ck8ENFpKR`FO*SLF?hWSi~dPuOJ;S^t;Jk2ZSiieX9o`I0`H!1Q9O`gT_t&IvDcO7l_CwZx?d|q5<<$ V;ssauF``x6dK_u9M#E6Fwrdo9Dp~6>8i_ADNO2TpRu4vV#6*h9sLjP8?V{8Rp^O2lTNJH(`x+RUsTYSuo^^2D-JX3|%nwGVk%+T)~`svBaQSWIVDoA4Frs$q0%f iu|mH3hU)TJnJP;Svbk*8Bwu9~lzSV32roh(YlLair%6mwK`$-@|}8hN4L=Qf+xBcu8Ms!|8BbIc}fo Mzigtus~N+DK?bUZN3VcXP0+GcVNLM808aYb}74Z~Aqes)|%(Bs1X&K8WS076wVWyVSXmzHU$TOiyUR+;aSN6I<CD|(Roq ARUP$lYeMP+TPjq0$b}GkLEehe9PK3P+2In37ms#^h~P?e+7uDwh?zxQ>cqXhOmIYU%TS 5NHUQTHm>BwoW1rYI8Gs<4ZJk$=M`g+^HQP3xXG29I`wfk@F~lf$uYa7S-l3?Ms?nnoO)$`r%5w(kQ~ 3+fZB2Os2Ljde4mGwWE)`@=kZ#9|CM$0k}9}ZTmmj_LY^yH}}P4MV(5MT~krX(nZLlvWBB%82HP`3(; >_>Y6FeE_XQk5I?a7sj!zSj`i)T%Wl2mtA{Yv&jR_)e5K1m_-{9!DDUVS8+ljdrS?!De*&af$T=5?Wv T0L%R1I*oFM0ArxD}nX&Q4|gtA8yVVX6vuppppVZk5^>d=p;mxUc(7UXVV?~qs0AYp?00*{kebzL61P SZ5=#6Hqdx!&?Zqp*Kg@HKLLYRg8kRef?PyZ?O1ZOCz<-mxkuY8pBVbT)BJdcazFHb>2mvu4G?DQz$i w+Mh+$7PWLFah57sJ#Okme|-Vgj4~)eimtPao_4wk69M!z-JbYqujSF1UPvDnM(&A+H^m_o3FA+LCWl (PN>h^;+GRK$njYHDAdWXX3GutIT{ikm>UT~ez5+6UWqO^+ZLCt>P~B_1u1S}A$RgxR=xKLL^KkK1is Bk5|CXQdBmpnP{CG=`jvpW`U{!ftZHn^MAQqx%^b@tDFsDmhxw3zqrLCwdR-7Xq23^VS7@Qqnc{N4S+ j^KwlC^I)c}qENxA=CrHXqZW(QIA{A^FZY>sDVso2-#m7O{lBVtj8w)`L=V)E4qYrf`*%S$4DN^q2~n %ZN_tVt@pK3mePxgrK-6vIu)#MSUtuQ)KC4?;#pK}wi^B^Z%37Re}1k;mjM?9@H%C6`fjz2b$y)QH5P c(w385x?5@r7WBuvYIVZ%^Q*3Alfl!hB)8;>)?0j=-3SQVUmRL+T!8 >Jxtm&0dtF)Lh<4*cU{jOqysuxIC}^W^bwUSvHH6FHKL=PXKo0y$RA+k?-Crq4{S;Bsqy64_#aS90|X QR000O8W&uT9g|_&WY6<`V;U@q9AOHXWaA|NaUv_0~WN&gWa%p2|FJEJ2Y;0e5X=HS0b1rasU7Ag+r# TVD_x&j@xEZ09r1Db9Viux;!t4}Wh%_zJ=%6#o*dp`ot#j(ReRDGORFPlu?H`u%VI_`5&6eEst0 cQ5hZSLOW+{{8%YChPl`7XSaEegWq1U+UPxyaj{!@}1B1{$=?-tEyu}u{!Gsy8-qoCA(KZ*OF|ddsjF KUEwB_I!8mv(WTBY3~-vj*$JhgS<$802>D$^$kGbI7idZS%P|5>xiS-;A&yo4m&oSzdvPQnJ?yg&LRn)oaQ0Rm* ^9zP0tVhLyTVDh1!5gTE`cyCA*D-(Sqj+%PL!lPp%F@*#yZVSVJCEfFajZE?6xs=wx#n8tCR A8hLTO^vtcuYlrFW6F10-s;`1)%qR|9}l!iK6@7j9D`3)%}>YU_0r1P{PDNl$xhpy(}YEqsMQ#XbTb8 wP}F5HBvOnE}|b84LvovmU7EBWAe}#y<6I&IuoNPH|4A<8Gb2{tk%woW2y|!<27uvGpZ~EACssE!V `{I5KlfonCMcdJ)6o1#=$K1me2)B3sdUBRD7U4I2C(HU9DnF5*q5VX`Mzgq; !5_)IKE~SiE1BdX>vCbs?8P81rRvxFQ)NT1__CVz*b9dvk5vFCou^unX?E&0YEi>Gy6P*f&V;H{}T%V LPECk_suG)29l#PqwELq9}I-x6s3zzbMxXwZf+*pW^OQ3Z?lR9@JgghX2UCIMuW2Zczv!qvr jj$XawkggT& _#n|zWIx+U=qYlgv2kJbY5$416KkC2^cOsN)>0OAo$>8HeVDLtp^oC>OV+PH-49Dp7)i}gjy215v^4E{wbitPD+j->(hHU|u6HpCk; bKmyZzjnNGDz`ALvP b%g+%(Qwzjn+R@*CuVUNt^25w8GM@Xld@UP*(@raeN>3R(jC-hZ5&F(zw2$PNNiQtZgXuTLb8JaVk_Tij9@%+tZwU8hq4&X?h=Z;BLfS9-HPW*nCjZ!BycELD_{Dv2346(<2VmFT4|L-3 |T*l=fs}2SbSq9oGJTBJu}32MWP6owKSutl1ldnxrQ4Noc56}a%7 Ig~6K(mk<+4~3TiqMa?+3Y(-7oKaEH(k**(1u=zz0F(}g!C$DU{q9&TsH+l~1}MAmNPGooi#_S?!Lt#A)sZldQ)_oGgXpFI3}0 Y|ze-imR@`Smm&X`Y>?*Adb^@wl)PSFI$^eCtyy;i-md7aobV?!g^SS_<~Ss4>(fZ2H?bTk +;oViO`nD$4KE?oIx7iljyZai;6^OgC(<}1P)l%S-JvA3?iKd@QD?t$5>(rIqUx(EF4U`*jQ)Hv>XpIZKaA$kFu( DJr}C_~sA1)bcxel;f)ceo kJR!7CVAB13>#GeiFz!JfY;c(i0}#`O8#ac1!416pF$YEMXRmn|b;z;C%yfj|cFxI@@U1Uq4vquYuIs#;EzWGV1kQGK_~4S{Eu`pe?C4lM$HVh3;~{T(D{*!^_p=tPDhCP{$h_OLyy6tGX$*2F39R Z|t(Fgkq5GYYRkg9N3}2byI>6QQIES8BhUGY@&y10$cHPf?Yv%b_bfC`+uk(4syV~%l4L7?p#*=Z4++ Uvq^(8n!&tBypSDYE+Y5bn{XK8oQH$;H-WN1|xAct<(Yw2z|^3eOr$ep;y)!m(cOBMP$Y5{s?xLp}(G V+IyGlO#k-L7$X&+huTznD)|*HPP^x50KjAMo~!e^NDzR0V)4rtv;Je%x_h6R*0Q8Q7ws)w~8^uW&uS o~XaP`#(@i0|XQR000O8W&uT9e=hETEO7t;%Oe5+AOHXWaA|NaUv_0~WN&gWa%p2|FJEPCZ)#~@V{c? -b1rasoW0v}966FG_`Y8;XU1%7W^C0~-96LYvu69a54&b-`?PPzEG#k;nHgeaL{?l#CHF;lswCb?i8o !UN+eU%{YHtBNVVCiKVg5s^d~G30l*y*4n**jnW|LqOCTK%hr|Mn06`1dCV3;+1Pmf$}`Jpz13f&Z9L;GY!O?|7X&%i_rUmrfYRJujP#*}s-px 0f|mHuBP75S8sKQ{8SSzV%ik^#?;g3ewD%^b3dl&kGF>I~?jG&^rJPSfW8k{Lf!CXv861Kk`z46l3BO jS=1O<^2>J;@gF)_l|Lk@Aq?7kB(o2o>W9}zGo(kCc&bn?+28@$ OnC3G8111UXK--9!GJ6l8yn_L!8jyBblm>jTf;8m9K{(GePM&6o9~zv$8bAZ|MT6#9((!}K#t7@N>iF Fm&rgzgu7qyxXoy39-U0d0ANi@|JjG+oL5Uwk2=od-(IE7DEFB`~5kPr=dogCJmAb=1E<_CajzEJTA0 g0l1PbOEg22z`LxsEe1^~$j6lID>u`|qJx=gXCJ8>Ay2AJq0fKsj$Tmy$JnP-D|7BouW9RgmK&iMxH6 kz!*%S;s!2;Ve9;?D;mf_w%@kOk?`3!+}YCuZDb{NEW%cypXgB*kl^!;)e)NCtt@OC|Vkc;a-DJYoU* >IV(U!-1a|0s*Q#nc*_<`hFTC_zMKjd1nzwPxfvoRa2V6H4TX43P?}mu0QI;J>8YJSRK2i0L;3<)$-EqLK=J85d)xBL*#E8CN0v%_%l@U4J t2tHbpc&l7HGgdOqxerco=HqJX?&_&&O0k~Y%xzdjK1Om(Z+z`XiSGxEG&*JVd2=PyRhX4^4=m!8Kd? Di2#ME$sb5_U65+>O%-vq@7#$%RbRXZwJ9D|Z{Dtw6X4!{1lTA}Vk}|Mn V7F(-X%{=$9aF2OAZU-WfhH2gLLSp_$x<9qi2X7z6Cg6y1fL}y=QpVcazx9boXBwAXtf>;f17|C;o3! KSnTZf4Y+~*xqM`PR%nuteBy;u-)H2X3XoIU)>32;~>G3&=b1HqLH7>AYVfNz+S+OrN^yE*YGv85PO# cZWglu!L$wU#iJks(H!A1Qm~r-AK^h}+<(K1_6Pm9|ImM9b-X|KHB0W&aQhzc+0I?3h$%_D#1@15YJ4u?xviCirF<#{7^ Ig}ZiRw)Y{2v~$nqo}3tN>(fwrp8v6l7utA4{==({`2n0QD{orzd+TTEXgv`PVt b_eTSZf6Nj5-^2heCp|F2BT9QX-7wa1yap%jB5ANx80a^9^gS^dF`5)aV1hqb2teo7;hp4AM)i(E}zl x?DHzLSxLAZ;byOKnY(dCP?i8G&FyyUMU9ww`n1FwGmKDaKHyuOYkL@pnzb(zr^bS2cjkRCANOtXYa8 v&c~SRF@laz`&ZPSv5_BQmR|tKrJu41g1rP-WsZC>A(uKqn)*3HI0b}>DKc#uhkl@~(<|JQA@lk6kFT xWUL5&hRpDRZu^q-yj~iwT`+#5rZ$|tp^%D=TuCMT%8RikUq7wwt0tXxd>ifE7mg$Xd_ aI0&w|%@K!Zd(&abh8@b({3`zL6xc0lVWmlpHlzBe*Bz6WsPvk*bFz6F^dVvko3$Ys8hfz{#-=62a1t IuqGHyT;WJipsz!+D=FIL{v!CWsAKg+}7 n|T&|<2=gDzJ00V#bGFQae280EsQ%K8SWYKy|c+{w}#EFVFl+}4QCWb*)W`V{;1x&&o%5 Q_GW$IdrwTvV*)dC_V!bag0E|l*N+p9mvWPkrY6DH8o}64IpV3hBE=*WBJ-xzr}0YOq|BE$|*j>c6BD7;}#y#=rv(xk _;yEm2T+8CiL~@;T>M!`Amfn!aM9BhOFa9+A9#CDS+Z~;a`N7G|q-GLe?fG3_2)s_YT|PP^|AIr)AVO !N}hMz@7e#MQO$Y+^g4skPUMbKYWL+ZJ1wSTuJg|fS`K*jJQ(dwFT`x9%YWgddNL}k4I(1J&J*!cD1M S9?M=h2Xg^}oMOl%HF$nUuwF2${k8XaY&Z<_dxzRH%BHv*73_%8QX#9W=2*!1b4H 8WG97DND;!7KXo&Yq7yT&IE0W>c>Xj7)zHjI+=cV0L2mDu(_)gfMwZ&kgN@7g_Xub4vQ#+qQ`g~4E$k =Wk|>=Ek)`RJ1M3*YTD_79y}iAZ!9aPHD_74-h4lk=Uzzan|*QIFW1={nxmkbwz!paK3UfE~;SJT?*6 *&G2r!)M0obff?r1E3lV`+#Sk=w8VKVWqb0fNNm`w0Ym4Zwj~)e69K17LjbC4jW veZUhkij#gE&X`dvf$;)iWJB)e!%qFJAqW8$`^u4sw?;l;Rxs|IKS3YSCN-Wh2W<-hhPq>Gi_`2SE-2GR}QZOcY~#e2mq4T+WgSf@ukiS%N#KX 9*X8h}H@x8iDoNH|ARrb+ontjakuBo84E0pxvpVNdy+J<}o{72oU|Mus9uZMe6;V)_ZKEbns`$`={8DYHHq&s9`sHfoxULeyzI9VRwU#K5nz~ 2Ep8u)x-Vc<&y%(yObFP23J4w4JG$2en1?Jb6(WAqce@}}ZgCazimfieY@5jrYA!Sk{R!OGJw3ID4xU IknRPQ8CFL$-V?67}YS?y&OFmxd?{%<3Bb*#xIK>{?F@>M@*_KQ{nL;PG$H;B6GhDf^uW6=lQUjzTt4 7INq;uk!9afnW>@% iwtY?sc0iO%9`O;gJ;Ah4_OcFz3!HoU(H0IW4^xF~d*f{y^Rn!f}_y_1!EW4DjD<$AiJKR}3HkOS?8s G2o9PEdCe*Bd<%XT-*4h>Ynza9r3iYy82K#j_{KNCAS59YzPNeaJQ`v~+IVDq`A!Ydd;m}~qas;{ H*l-CFH{lsdkhy-llwj5*xIx{U+|pBa<0BuB6{)6f5-QI-1vkO5s5Tee8nFt5Um$JwEfM;|IPF_bhwb aSK!%v#RHblh|53>fwauH$V4<#te_qn1$u#Xz5=p&ZZLfW)Z&;8SQhCMuy6QRiX oH^$C7HB^Ys$n;B7!#x9)*}x4{{Pfl$qU&b1!EQ{-Y7_m+jo38W>}_N+b4jKhceJKT{9X3$IbUX{hZziI{yDiYaljwH#rxZSksTWV56;}qb#2@KE!R{{_8YE+G8Vbtuhj*&YVyy{gl^44AvIg% lzFp*IO@4Y0T{iWT5qG@fZgCUjdCW1j(I^g#gyu;gh-}o!LpbK&g|SpOR{L ?Bb+}^7i2}cFG#i#tH=uFA5_tqt60HAG4uKi451_Y;O5=c`QE+Fub;9; 8EV!4M0$@f%4cU44j}SQPofMU>1o(5=`jLCiNf@J;T!sDSD=2%md)U2%ZOzZ%AgIzryv!wBLUG#@1$R 9=Q_tHm9XYMtj-bJyxfq_q(fi&E_+`wa1?j+6*Ht2vvJq&$p!oXM)-=ve6GidTM_wN);{4j PYj?OxwX?egbsI|;yI6y>2TC3p7;pc74$mAv%gMb{}A;XETOMcYzGSTPMqlj<|UI;cNlc#rLEO{148! yQ%yp2mp|2H17xC!M6v4zG>ai={I1a>Z@qyQi=ag|;XoE}3Y{8V7gPi `k3#Kd`^e!1Mm@;nWV(&~Vx!J~K!5kBsLCE^jhOOOcgG&qkP8-1&H`v&_(-T1T9@LSI1-VYEAO@CG#wc)N%*2XYU$cM}0~ ;Y)d)gsI#02M+*R_^@6ojy6lD3Bx4*;d|T$*W}io{rCJ2Km5?EVa&l<)!Gq>!~Hui9mZ-KdGr>;^!th BJ4SQHJ%}r%ds+U!49a}4VReU0ZUDB|04LJdE0-2g>t*TaJ-?3{rBAW~k7|m0B-~GxF7RCh=x|?s94i lJ9d$lsYA0~MipQSHEFEkGtt(mZWMhr<*jC-uG@A2E-(wcc`0&(J(1oJK;^kP>^)?5 1u*+Ns==}QrHi1dsmL^Iv55fC*R%*G;#eJ6+vNC#zIq$Cc^`v^@z?`WI5+MvZh6EU lHY*`dTf>@!q8~gRL36qmU`0FJ1Cgx!Hm2}&Mg5v2Ncg(dS2I;%gppwfW$+8o=dWvv`?Wuk>XfAL~Yr y=kvXTKclva`uboe6psIhrSf#%10A|hU3A$2?~n~i>Y|sS#o{3XCg>_Nk`&37Q%y@z8K HII5jb%pi@Rg*3I@B>j%#(2nEOpAa25VgmKinH1vanVLSe=w9)4~*Z=Ee#fD2S^zXzxZADJ6u!8AzzA=hSVTAU;u_As>eUbP9lz;24B;c{eDrSkqXbHF-8a5}k#oG=I8xy<3ZHI UkR(Ck)KS_gl1f7}B}s$j$G7{QpKOyuL``0r#d7blyMo#?j}Kl N@U2k}=TB?<7$YT74ge+7hlSHSW@}%)6+A>49J-n6;Uc6J@Iw~$)PlBg8?_5PL-(imcPJQbpLXyZGtg ;cv4ba=f$y?SJ9u_cRQ8XZI><-@Naf&WtUeFFi`=v10)6XL=-YdsKC_fJJf^&L$&sD05WblQgQX}vT{YXztEU-$)t!xsY74T74FVP ^6L8rZj`_1`5J0WGOs6IDEg@$;fHRGrdJV+dw#?0@^8CF_g=saJhjihL(|Z_79#q2}zPOM8egLuW_Do dgRFL0Y(sstBIb9_$q_&t%flW%#^`6xQ^gsG(sETaEL2Wb3t0XVjG+>te`+QxGiK6l|#6a7U6-8`XKL_aOgWqA0S(Iz`0#w^l8T|9E(6uWKZO`h-FA#lOhT$~c%G*U bD#b*f2U0+!J_J09L-tp4BeB*t-^AxpbU2&)-d%dPFR(E5ywoVVAtvi!(VU~k0RpSIfV{P*f5K+G`f9 Ebr`4r--R0p3BAPiFNg0CYsqcU!BzI_w5jde$+uW)nD-CmIjLh8`^Sq(T64oV4q0A4~I^|?_DJU9khz Kelz9`(#yU=J`jPfg%`1gz{XcBd4~n~Refed+JB1BEtYpA9ocP|>F4vti2!GM7R7Y#1~aQ}bFA3 !=yh%H9)d<(AHhDBX3^YTBbCp`D$s|w(rZ?P^3}n|SOB-v>u(W4n$i`3@D?Zm|0~7o?icORsTrJd$I)2YzRs6{)!N?ePOJNE2?Im5d g(CF%JCeT8c47if*t)2k)am<|iKPrpT2*A}zK{Jwc#Wd%UppqGpL?T{&S@dH5h1+GPC3j^+8Pdu@TO6 O;H7og(V!bli1ybwYnO72RBK{xY;;2fXfMkXXT;UYGi#_d4zy7;_aUDx}@1X0C>juVy}*f?jP3xq *1zmjExfDlD45h{#HkJ7@~sYyOqTLnNu4LiLH%KFYre(_Yc5BKdgd^dF*>V6&hRr88Aksvv3O_2@`{< Qadd}R?#5k+edMa(DYXy1Hx=^HsdP~dLP6cOnl_YJl_Ps{Jhfc7e*ug1Prmd3^xV+i&cF76KcXMKWgV &v_!my;y#~>Vyqt{@OY>;P^;(zDsSoTb7;$o=XAl9OG+ZC&Xll;60znYIbPLJ{j~z;W{S(E%#Np5?5n 2;YcSNiq@^Qh*K^=5w9Q4AiW|-PT=pEEDHhQ3AO?ZAF&F_}E?|I&rdpoNY+$@OZayoXDClhB4^->wPi 89~G00ZS{U{Zh*@DJ64$Y--e;)zI!X_8FNlM_+2?mDxD0>RcDt-EaUI%;H6dvA&w$T{Qtq*kQvNx+j7 uwFVOCo|GTlI&SKTs~*;Vo!XTes_|iQcMR$2Lr0(fgz8*m?;x*H-L0wp$3<&ib^DP2!zlJdtWp=J)0c k^$0=f3e&J>LM@vf?A|<h#~&G*751I6@kfSc0kWO-X&sxy1NGtC^e`^t#pe%ysy53d5U!|fXzMAGHCLAc$PLZ?p(1%NcA~UZV( Jm@s`lMU6aHw60{@tc{pxG`xBbq*nvF+62G?6& 8^F?Ji1-L!1dG62CJ#sVUlE90n3s%4(EIo6SVG@Kj2Rr5?au^O9L4%}!F08bP^3yl9oi;(E+fiZ%pI+ o`_BkG5!y8Fv+vxjV{t3ykGy^okGv>WKKS-NfmpocOTF0W;Qq@xCUMw#oxmEhWF&&D%1hs0Cy?T3pt8 Sh@73VEABMC(Aq=R|v4Tc5P>s`FqmedjyV$Umc(nc5#ip%9bQ!l@Y}^cVJNr`#pTs-^%+T+v`vTM3s5 #_n7V>?dTmsSXi~@CeW9_-wS_JmsDxKbd!=*YCkH&RU4T2=BkxVU!B>!n6f6GUlpR@gPw+vizXe$w`R NV4$%BZch+!AXmyD}V0_2bC-bxqeq+ky-E1CCmB+bYAOmNG-C-QfLkeU5vAVTkf~K}`4xKI8_Ia$k(4bV7=#kNj`fi_@q)^&Y04{)2ut_aVyNLixpSH8gr-N f(eBirdSlQtS?;qInr{`e=P!I>0!>M}^0v% TEC|%goK|&lptOy6U)~I8qV2gP~-4zV`uv#NI*1%MXuGdpZo^s`BO`f|L(fte4_~*ZfHUF-AQKu+^LI>qyWw5yX)};-O4+bt5_ugT-xnBd|Rpt>uBPOaa=Cah|F4V)~V&t=4tszj~%TIKbx~X2y2QqAQzPkfWBYZH uz6^j!v7PFbeK3qum9<4rQ0|ZUeWlHZ>!?||X;a)r2kEESL=nNdzX6Ir%krGbB`QrLHKg~lzb>RrN#ix-znR2jZY0#W2ueR >t)=;|fYebhQvUS&}6$3;Cc2Qk-B?L!{iLhUL-58UHUs16O+pcWfnd34^%1CVc=Kt0hz_!WuY%ggAn& NHyQfuLh;JQko;gr`MeEoD-=tpAmvMLB#7clsWX(4GeXqEEO)X%9Qe8wGojV&j+h`JngjPAQZ&knu#6bUaoE$>zwq8fC_94AG7C13 o|;%?-Win5=GA=@f$!eMt5)5O2NiH0W&xCoyi)#}3eq?NEv%RJw4lzEXwiAE2_SauH(o;rD4{b)2|>s Wy#g?CWGRu(82X#-b`?4SlZX>V4HY@i0d!_uu7**_^N`^QclWF!IDvp5}#O05!xMQ#i2Av-wvMMMNM9DcR|jcXBc3Fq}MSdosof$^F35 YSUfM|Q%X{78~~&n7ndXO-4>1jAEWYLo^L<0!ih=5(eWH=mFu#k`DUlFPNtIbdn2Xwqo+-z6ww(FanC }Q8aUrU-RQ>&TF7pG0mwMdJW)GX9I=aZ2i%lM3JuqWupf %^wBmk0j{d1?b;N(0>Tfe~_R*3DBQN(4Ph9&m`zC0`wOW^q&IspA}FblI?Z5bD`trP&GIZSDK`vz`*J 2UF-L7Tbrk0>-Xw!ydcNI@8^H3bwFW)jr$D3hd%h+vLfJ!^g{zH69=-!i8oYpF3fi!f^sXOMOz#t^ ur=wj=aq{7pQ(N-N0xQuLzV$5kfI+1{sw%)}ghpBmDh9MXC4qY;gJ!-X31yYb5lOxIMhU*JxbN@b>Tm Z=GWYY_&keLNFA`Tv>uIte?$&O>Tw`iCdJIh?rL9Z%pfMi n(BA58Xy#s^mxh79xUj5^N+@$`g(`L6FD4|>ZxD9x07NAT+1$cy!bSFlixLLv!27`hAQ+S9@EQQd$Vp hg3GHH1h#AodA{0{CMMcu*^{+jIqU)h9$9kx(VHkIys?8x78R2j%tFUgimL?Xwk5vk+PY*X&5I7#i@V adGIzU4HV^t=urB~2igeh>jkm*MN=Dl#@)t_#@!WdkAeC>d3{0g91c4-pl-hicWw7CDo2B*!y6T=KtN $45*#4rO@8kZS(VweF7rTwF)4WuN|87A`ZR`tk$l%BlQRQ>Y8nAcOiJq;@(wy*bRBf#FlZS?hHBavBw Mqdv$5||ZuuFJ(H*&UGX#sK2 +NwtxJz1vyE0W+6YPx1 >Kugyc^uD9OaqY5tL=Sp%Ge;MqFn{OU D5`I55#fkXClTA_Cq+*tHwyal(g=d21{P&&js*Pze^y+gorO$uEwaENx!uFwUk Rj6HVx{JHi@N({?4KD3Gp11^TkkdZhiA&4|z00XQaS5B^V(*Mq+ts`epGjU@Mq1G%MIfdHtpmPk_s8K=*2Z|%Xgp10NaKc5_n1G@Mu _GZxGc}!{!bT?|N@G79fqQn?0+sg84qYO})U-cz=n^d^cll|L>ny3U29cZpmi5-@!Ry*@!^ fjVxBmC8xpV$E{Ww_d&4aA~oQwP533(W(qkss{V$xKlT{=^UvX+=Pv(9a@n)Qa!Yxr&B-JDU(rMe;2> kaa!mtN!CJNNxIg0>Y{F;pAK@jURDT$g!RSO>e7VE-xb6*fl4cFn^2{dxP7p)iA9@mWdo0ffTc+-pP9 +9#gbL8)pIm5(z4_<0*aIlvMf36fTDH9d6t}}pu)l43A;5gS&+n5gJ8UCvm=QEH1P>_$!F(Q8(excZn ;LoAg6_K%QYefy=zo%xkiQJV(*M~WC%7S1IOqn25M8hbGr>LE%@8*1aI3Y7xXOz@7^*OTv`aeVe?$DX (4#)Ho9Qo5PVjaD)vR85%qw|8ep!V)32zUk>)A~`T>+P29t$rC>rJi$;jTN#-T7dkv!}}5r=(vY_aHwkw{GX>BXW``jV1<7_sP-x+HZ y$XIkr+hkzxf?di62a?t85kM+H?~(zT#{}?s(PNhMuIfigU>PP!v)lcI@Z7_g%=1etH vqqp#k?pryawl1-z}-j0vUZ?AI*#G8gJPrY%R2Jn_~x@{Y;8Uekb-*#zvod>V@6`~@e=)^-MRv$Pzg|O*yf6y@Qm;o)_2 MvRcIk-mrLBog>eC!=^4R@Up$-*_(;;FC~ve_W>ArJ2Tk8UjbT;pT)%!DAMPZK^?kBbOO*NMi*>dBFv -rj+ldXfxC(&}``@++(-H^TeJB#;ia9}^;!_;gJBn2?+#a0S$l34xhp_Rm%2WYCcmhIlULx(Fz&wht< bSs=AoWofz=t1C^|dR29jw^&VG^zK!(PB|E$YdBwQQ(fWFdgr`Qrb%g?a9$?Uv@UIQUL>n>uy?|0DJv {UVyle|gMKmn=Zd8K>Q(SP$JVAoL2q&Hxg=iYK<_i|xddNj;o9=tbIISr$lfLEFwmSx9*)tlPHl{aug }|9HC(56k~yx|JLwv)+qa>1T)%HYP7+$>Jz}D`mCB3;&fMmd!fJ7TVIgdBcwwPzeRAQZZ*gqlWZ*uts FF5xnLu{*uZ~T3#=uj_4UG%m$5u5k(dnDt&U-CY4)hId=k1m%3)fw6=N%UdBYT(Z^NQp|@~}=ZQHEAL *Cj6wte;v@TTC_=b&DD2B5ytIS}4VlOWftBtO_r(-xo@3+Reahf{q8a+H5Rm6_}yhsYCK#%>UWnxv2n6@%4$(8tVkwSlcJc+`QlK09EW NzdI1W0P|n&63SvS_;H=HCATF+fIcqa8bzb(4H4aUU8Og>j>Npg}tF&Rt;J=MI_TV(*Mq<^&s(fnD(BgRYKFxw8AT1uE^!KXr;7QPWQI Q>WAsxyy%t>J)mNiM=a!nb)|G^mdWw5nMi7xzT_|M}lrRMJ*}maLWy+m?fzz@^ix}Vv~Wr3wH4u97tN LXwz=MBI?2X=1UT-P3*x!*(Ug4A#ERha5HEVesFSVh(DOL!=%h*DBTt7(>9GrJA=*#Z9q%ATFz%|KTi_?Np08QAR5$n^vnBooHqF$D6%&B9w@rjTI-^2lkdS!?$*}|VV3t;RL`8TK_ImeB} vytmLy?&VYzAWoAqPtYZ;n^yHL(db3%rgQ2`N_xe(>74kI)U{~cbWVGdfxQd%NpEl7RDjDP2YD67OB7cq<(2ov_Q-WI+;J1)MRzJ0#v$y&#aPI@a*XC0a#EZ|*<2M5{<$F@{er(N-APyI>Wq$$_M`i0IL?sK2+NwtxJz1vyD*+)tQ~M;-m_@QGz~RC(3|{2)AI;W%KTh61Xu _!c2hSDTFs&F5ElQe1iEF~G*6Y~5vltmfku64p3mMcu~|vUCj~Nfz*L^8ch>9tENvfb91@z){(@r@GY 7i20dUBz;w4T6zGm^72W+R&qQ1PCy|qFenor0s$)X{R`;%?tK6bd{mog<0$|_olW=-G>+sDY&?QCIqa Q0iY6YPf+`v28*&&0dcx8SU1FpsG>hWIm({WEFQevSyxavg=346?V$0|twtxDxnVO_Kv(iOX30|*Zv=AUc)Ixp)RcrCtX1}{RKIL_SOYl3R >yTntB%|#BrAzSHZ~esB!HbI(oF2?WZ$Ep%U4y2fB3V}jEke~8<4cCOVyx|cF^mIvg;_^`rtkZq>J6% H^gn=ld>oXzR?5@u@_|Don-dUox12q3J`w~iXw(ZIuKRzY54(y&P=$Usw!A70w4-Hs@~VGPHjGl{Xnj LAT#bB@jl^o;~fPPC-xHlk%U*v(`|s`#KDtGMeSgmFMG{^d%8y7`dbrFFcwFBs@%v4g6jnCtLtVfE-H 46Kru>r59?lB6joKm01sXpfZ2c*CyiZ}h_w9jgUhJ@>5sW2y}xL*2AL{&^90(nI6()!dj}@OEW&bZ0J {@imUU&xfROLE(5o$hqZMTjJOgnD((C7!m0o-^AiA*j+iEkHRwrbdlpXrc9OsSOy{H=@9&hrJJa|@SJdQAx`(D3Xfvt%`G2OFjcAkQx(X^O@%3zLGHQ8W^SbK -_&L_;u0$E!=&;TuHPa+bOh-ZwtE}p{ma4nGqGzFAD`_+EHJ;0q}^KW$yPes8+^a7j}wbuM-rOMlB#85Qs%tnX>DAZxc0_m&D?6iLQdP`4}OMS&wft5-8uj`x!ygQH(-aAfq_CBx+xBQ&ryllL+qsK ^dd98@P?$*WWNEoj{|v(l?CRCh%PQ_8Z1DL)doarvy5Q2osB&E>!P(quO37lB!KR%dKlXt923vI?sxt 34HIVsx#;c8gVy^$I9ne)rBu&U88YHPe^$Mypsn-)de}50X$HKbWNM*nA?$Fl1sC`2e@Gminwe&!p(Z `v-YvlOpmVd1Xf|vV_>{_Rj95pHXgZF2<)FYr71|(_bk{y^qauzfk^NJrb}AAdL?UO;eI2HXRV7hB&* IWdOAEPOLxKIoQVj+*$ky(XKw9PQ8ge%9X??hBNZKH9soq^f))bljbEhsklH#mJA@4kQRW!YqclCjc8$DIi@r`{|In$Gh(td#&_~?s6~%jtHMOYyDm>FrZE!bU*|Eh%ViWl#AZNu!qZg# Ani>eNtb>S#Z>Iu+a_fJ8^5o|Vu&CQE72=l)EEV+;72(tX=9yY$4iO+5#y$RXpdRA(p$0;ItwU(cvr4 67?Wo3ca;ts_ChLmyFhKt%sP>yK$v5VXvwldtaR|+WVxuYMTrQ7zHf|cw^4ud&i9a*kW4%#vRl0-csJbZ{+xqBOmQptXqf=6yO|915Z<4m|ghwA9dKN+xMg@B^! 9{`x9tcd%iL)D=@13KnYM-*Dfl31$V-gSVB014g)o&adh6D8SIdV^IMA|^`7qNAei*BB%fc4-Ya>eb? K7d3OgUy1!8YL*gMT7@=g4<6h_O-ZwygEhAsn~p=-SsBGVsT1GRBD^9sRP~pN9u3WwF; f(SgVRvJ)pDqOW7wtu=Ryw>%ss&thyRu-_MdX)`a4kAb44hNM>(+&x-U93z;BQZ%<6COj=j`qJ+p_SC}7O*2@yp6(cmCnM-uH2+>_IcY8B6NoN-!WNLSyI1;qGs2q9OU1Tm1-gb(xRTlPUYLc!lLNe #N8_SVuy@Ak?VZDLUbs|bRFBi|J-iiT9Y7=TDd%7FTku<%5(2*;>fzl;ZT1PLM8NC$)lC&mNGY>iqb> u#`5I9nvTPR!)y%s5gOZjkGRDdYcyIg>zrGWI+-W0wz*WJCPijr`>dpgwt+9mrx(jLcLge={EEvWmTNj OtcoTBLS_A!jX5@M&jC?P?44kWSMnSk~CFO%|tkSFkP;IEh%T+SdKKa4TO&DvJI53)#V-`<%{Q%ZN-2 jt;*bz@zRauNOaji=*Vx`Kncs9#c3`o+dP;Ht28qgdG|C%TrdH$M6T{hu6A=v+ktbXk{khC _@)^qqZB05s{HPbpW_B9i`M11BD@rCm9wdFxl*Q94Af}^31{BITlN7^?Fg=-7GOo^^_k~b$INm3OOmD 0_D;>hIYqH-i~bCJ0OM=e4ZOxM;-P14mwSWnJo$8h9ia}YUFu{o$*%gs|td>2Z*)<{f})r4oJS)-wj> }nPQM^ZHlh0Ec&K?$pM3NNs%lRE~UFk$+2|`Bqt$BQj=jN;gJRG$a7?)aHKb~k+=kPml9O_WJYdElBO!E%rCs_j;|g g?OnBF(1EY3gupNn9gez6$P81tLSR=3u@SWP4_75uCnm{i!Xt9$I8YoZb6ix8OgSzxS7iDcCBTd2#c8 G{>8c{Eq-vp|jtngp0!LyN3x&($_(X`SeHs=gAxTmb5}9V44GeCnMBu8;W|b2X~ISwQYyQIKdZnisqks2BlW$ 7z>(_SLgAWNuZ@Xy(Ny+MLXrgZIF5TtvsRB#Yv}#OgP_~;I{=NjqN*2jNIGdIKP*-5DF*qWH`G)cZ!o B%F3fMBu@StyKJT0S&U*x^J(hfnf$BZ`0o==t^Ds*$kgaBE3xULAK|h*-SJmsE5wwV9boqV~-I@Jfg( H}Ln=nrN2_J$E*KGBo6l9gKLF7jneg(JxmWI;Xskeq=ngsN|=B=TaCWUJ&_0~{KlFt6YQzs!wa)wB*(iZTp3L8k5i?7{+-h;+;I99I+HuNooA9I!(?>EjL=~XT9J010oZuPC%iaitr>UQ;;{=-M8xtu3bGAqjf=>;mW);F UOEzjH|*fwB(SG>9|I=lTVK#CL^Xm!3(1r-Sbq`R<>fKf-~VOhLWX~vGr2VDxYf+!xLbwus~zEB{iYS )26+kjm>6(}ltzV6~#L6Nzv!!Dj64r2SKPn)Spy0Z$MdKi2D@Gb$N-Y-17O9;&NB(}t^%E|p6wxp?wr {OVdNmP}J^(AbHUKNJYqw|ON2nZ>RdxS7-T2o?Ih2d6~lBOz*1|2Dhs=~0UMu~0+Lv2;$va+*C0_mfe #i~dEpFRm$tV#t4T*ohqRl(HA?4LVz(UBBLJn}Zr>IyU|gMAg6=3{9SpXo$4SrFIDJL1Nw>Hjg5J>WfGGL5@Wyc&1Mu><`4K}{G|NJr32i#XFqFFKEo#3c+8NGh0Vz x=Je>aFh{S{y`25j6ZZDopdZ9?gsrC~quQ7tLJRe|4k(^~961~L2W#AJ!o>Pn6Hz%Tch`WhIFYsCmEjrh=i8_Q7!zf`^3M=rE-a-GAD4YD+?>sVJ3`)QG>Y>u(a!yEmjp8=;6V;_0{0YJDmsQ?kEU>t @;3=gtfO}}9vH(2@Dt0chMdTgL1UbpC)dTjkGhKipjg6cyNjEiGoxAMUdPEnr%atu6HVKbm3kBeV$Tc &~)D=+{>D8t-vfb{Y~XCmS$8O*qqp8#4O2d5%Yhx{35b)ZgJtWyi5ez7oll+il?q&^cb(p9gfpDU1Ar snbCR{-g(IM<;~q@nPoH9Ll8l@)R66SPIWxj;Q2KX?x9iA-X0@D18B#z#s?bmNyAz!Qs26!~?8Jc-9D Ms;`}+OHT{M&SqZeUi*kIeiL^!&pUOp?*f$TDbLNy@6U@2XK(4arsL8{2_>l`wC+nLOw+8LK|iOwXqZ #>Et{E!83L#iZ8L*AoOtd%AGq1qX*YZ7vDj9*jJ(U{SRgl)~5=nZ#jhj^(!oxeLQA|@Eq+ OZBuo?AO8^}+2g}iXwCb5?rjw@jMQ|xt|Fv#Xoi9JVHyX6V&KFIAOhgB JNw&K1bV6%?%+UNMq`myut*ssQs&FNK|dpuNX<4Kf=omG0O>PoW8=!9!AAp#69aF<%2miZoWKKHz}m T1!%9V7W)le(gQ60QX_B{oqxb+*4%@zoDJ-~LL0BpYAdZ{A+8WBt+C*&Mue@T+!f$$<;Ae*2CcO|>AVcOBR{- vx?%JqmXj;U+T`{n9(JG}5W1R~J#EvYo5&J0iyBD@G00iYT7D)b+<>vExTsnE4Fe#5l!FRJL~IIsu|@ Ze2Hw9m1xsP+d37971>9*t%{QxH^&jQ>S(+68{Y2_d_Y{^G7#vy9|e%Z{Mi27ULarA6xu?X~2LmRyAO z(5bj9j(&B1n%y%5nNj(O4xzD+wgd;uxZNu^;!MT6mVj#P_n4>h{hjapi~xh7c-Sf_9w9(76Utw{P-# _Lr)snQ@V?y wjoeRQ+_5<`3FF84kF0zIGZe>PjaIo6So69f^dpu2v^qMq`(wl*qYar8abeO#|Vxnro*V|5o`y4wdgQ DdZ@cu&tzYm#|+Ch7!;z1}d;VaMGa1F3KgR1JZZTL@Mjv(Iret_&5pb3f*)2Fu|ZZj3V1Wb#=#P&x3o K`%33jG_GI6V#ksO0y(aKF0nL21#FlrCnJ#_8cwL0?r+to$;Gl}>Q!Ap&v (fJ##w!9thCVwCl5e#NNX33DLLMVqP27sHxP%qJkpd@17A_w#-Y AkZx#nt)UFiHOA4^C7#0B2jDFyU+Zt{C$hBp>2kV )lpv}I`{=Zk>Bw%A7!{)zK4JVmS_if=`H|tnp^lV^Sk+2uf*c0NS~=3Bc$X~-0xSc?Z$0D==CPzLXZk Io&Y3ddh(ouqUd(7I2(d==Z`T4u3Ga717?F%8=H-<0I7r`4iKcawc0_zNN<@2G6ABm)fkWVFg AVZ#dxuY(Os8ojOTg;k^NJrb}AD8tb(sj!Pb^)09qVNggA0rZNVi%7`eNk;1VH04+Hbiokt^RsvaXCt?u72KaS)C$}E &(JvLHctJ{BWO+{zo#rPOluJvgDu2^_ZX0=Gw|JqsG08_^u?!}zaoHIqjvA1Ms-Yi7q_7sM+jG(+UDF TKo^L1j|eb!a#j(%D0$CDosh|oZoUJkIP94~j`?K-84snAS-Fi{%VgMmm60}P=}QgT*LT=ge+FPa8f! fR!$+X7|a-L)1Y{fQCO<>J9?g2c$#OKVosBNUS1urnv;QI(c%yZ-W7$ V9v5@~bSUSgzbpVlyNF1GQ|3k8={!nZPhxyW9xHj8t*L2-yyE@&sW8xRD0}-pf{DXb410iJ)zjSDTL47OFK ZAB{;uq(}uiq}<4M}_Musw;EN9$psOSFoljNL+1fxldN+yyr$qTz)rRB4`JAHs~ZWVRzh9=Zqf!D(vJ 0-9B5SK;-o^$zyl+D6G>+O+^ LI>q|gI5=Zga~Ia3y(wK%a*5ffa4Y`cOp5SNAW6r(%?z$4|9uwzUQz73qL-W@RFeP Tue9LxI&BCXlZ(dXK&P-Gt5gvufvl*MQ&>#ytj&a-i|6l2qVt#P#!qq`hv<8CQIWdGEu or=Uq8ZtZKKe%*z{&w{(v|q95$a)2b&=I{1i`Rsc%8Q+yt0ok!&_@92!E60>_#zc^ERs?eF}|UnjHE+ xVnB-;m&UD37|NlzQUcd6&v&1jAat7u(Ru#zp@|^%w2a;%ysa||&%pRbW5~M+=dV^xIPqp<)5NHC;=zjwLIE7Udz)=pBIG7QxVApx3-r1A+pRFA;#@ZNbuK1gV}7{zSouxH(8a4*Pg}`xO94EsRD{mIA79X_Z-iM q$w=@#ycm;UxphdNFRKawPC;X;yht-VJVbqmMQLGJb$t Asrt)dyO?K?3PiVn$j?6Q9oHWn`5!30&#JjHHqznf-I8E;^FptV&^1p9&t!n9e=$_b2y{oo=DVCi&k# c3TUeCVzNA?ywO+?vQ%H#9*6D~m<1iZ5B69o Z9YO_qlF}hgqR?6^WJk@lcJz+&YwZ}gJibG>xGz?e?IL_g4sP)m=TCs$ka7Asx@ht_ LfJ3cK|!B&ji>tUTmpe~S3cU@z}(P*=>+obn`lAhVSO&TvqU8ZHXN!Jkrdl#Hq4jf2Yr+z1+x?V4Sr? 6V+vxTsQ9$P3|>#v)>h2AGfvgbPn!r&kv^@_;-O%<-TtR_``1!@FiC&Z !$)&}xRBDX2CUBG+ZO_9|d9*zf*RV9slZ)0Py(lk|i)&cSDy7b-O>@oCW?D!2(q>}UQ{lx1$+s?Q+Li }N?UHn^Gajs8Z$P7!{d$9l3rbp-t~Us{AayDB^#<``2KFwvgo`+kv<}e@nIC3DGH!6bd*6-TxD#mR(6 }3DX3=s-(3(->uAnU^*Uo_A5!fo$+DETO;wWBw5iX88wijXJ3O8)KXN8rSqq^pHvEuF`I67LKC3t$DaK;6bAXT&xuD1zC|y9Akeu?+sYhLO!6; T3ALKWebaFBW-O78yK{(fNl+tzQo;~uGzb-!0oI)-P|u*oav9b+f`>qo=beu$Y^pe7-yHvrXYn eM#qjg#H_B`kt$PM=|E?n&V!mRAwa?QF6lt8z0DT^yvj3bU{;id=*}t`tw)JnD7&QC04IG^QEk#=?WG@{x$Ly?9(Ejdsx5=q7q20~zZkto% ;_`pLyN!;Gm%U>St7BnCvT>Ll#io4zI*!$&+5HRA&;xYVZh#OQS`ugNh6wR-4boY=L8^1Jcdo@S)!31 YTtX+y9k#`H6hLgv!ch{jH4m2&d)+WF7cHB3K~^La=YSM>3+373aw8&rQoGzV1SKtfCc4}t`;ypoKD* o`bc2Px8%}9s9wfCx%(#M&q`21(n-+M(KHXqI|J;U6y1~IE`i31k#mC+uhx`dfBn#Idlux2i($c4`km )BCN~33*;dZoG9U>qc|Yr(tOU>Z yo_HMWggTaHOcA15_U<7ZLR_-=q(t^I*AZSHQ|HQiul2+6%QQvJ4b%lq$BQ9B+Oh|Hvutl2bA@Mrt1& P+?S(1ga&3hyZY5RvrZU${$AUQd>%|)HIJB;Em9uU6U`Zqgno5;C~yiMTTMc+Pd-hxY;uz53^hNyX!K ~NU%g3bB*HOCA<*z`rkYi>hgFrY6BUUM50gM;hZ;x)HHq4?N4o`a=11V yUxb<+yZZ(=d~>llG-8WIX^__rJouR>Db37x0n?z9ccLE7PBID#XLT_#av-w?}kInCJ&O@C1&Oq&p5I ?>F88*AKK#67X3qm&`lP!A^p%Gdy|LDvVUk80+N%xQ?8MqSdmOz10qYJ^>BI9`z{>Xz})|PE%!r(jGo kj?wga&WmW|B_cqk_kDs<6Ckf98!f_H8xpulftgvczJ$z#l%*UgSe!};}IzmMy@J_6cuYavWyQ1!&Dp j+#TSw3Z0oK;*Kv8a26>eJl1;Ls8QJp-BCLUKd^@TT<&I$rio*Z3ww5cyEzl{o+qa>8^JWlg^@DU(MD 6*W&MEYBZBuN4@d%Lc9GnbUL?gl|$W#zvHFczsg!{|m&5@guzIe)lBfyk8JM$rrdo6NIql+7^Ety*6a eRmOAKXvM$qVTnfPy9sP*#87=)l!xRI_>_16@_mhPwwBJJo%*p#AV?2Dlo{y$_bwVF!H#in-Mk7B%#) gNqlJ{54WG|^p6w%izdEII=!vu-@G4T1>4steCJt5r7S-@azqYf =bNv;yu0gCO&Y>zD%LFE)(6%)9d+R)jb&cC7zyLx ^ONrT?@cNOk$W4PI1878rlFVgyBLlt007Ia5Ctjr#K1KMkZl{AddXd3!+}o^|M%IuJ%HaNk8#?rD&}wWGTXhX=@63v2@{CYYMrc TsUe?A%FS8^VSs7omqI%nnEsH3olz!$kk)vRci`ap={xGYl_Q~;!SG``OJLbZEFhY04%&~O(7TVh4-x ~$OB9|0jTT{$Rif^qc<|M^wYYJ KS3YNG=3YleS;d^TexzH|Xo2aT?i*h-^toBCtP?1)VB0Y#^eO;1uO@FV?oo!S-L|2aW;goItSJbHTB0 )iMQK~9PhpH^lHWXjx3ymntnsLW-po({GXw56C`*43=TsdY*Q7>su7n|I?X`mIGlp+uzYu%miAJYhB< +t|AxPSQZFM8@z9 ?aZ>*IQbiVx*fJrv&sVbt&y6jdbV3&_jnLsMaUao*t!wL -7FGz2J#4nVC${e%+px!JX%zLqzRWg%h7xGW+U%GwCJ`cp?1jaYeYc1NhGcQTvbc$510#)E1ZH^t1UPBZEE!zU2Ht&S*X JFULil8fh%yXN&^ws{=rrweFBBu#)dwR2F0ttAI2<8$S`4s&E^|yJO%nR|z?hH%HGS2 ESScgFTZkLTEpPzK?B~goOkoe=F=l5p)DARB9e$u<%Zp>FcKg+|S)=eR_zuncgJ!RdbtitrSyV{NyYs LA7HX~h8RNSbEtZUkJLlL!6wdG&pX1QYM;Sn}el}Y&qhU4?>!#8A?;87w*)Cf*jMo3u*!yO?Y~40HsIecK?Xq>%X#KOs{?%-ktq+XWKWXe=%y!v&-~8ea 8vURGkj*6;Vu 5uq$Ws43lfmG0G@lOI38C!yR63;2ish!tuQWWCl%S!3SAx~RR=_}=$xd=4M#Riqlp`g7U^`1Wv*S %(*PTQ70Ffrt#p65@ 9K}`a_jR2A>&&SQNvSy>SxqD<*B~`7AZH4V(I1@CO*n$^KVm6Z=@&G1{j`Lg~S*2C%Bg?eg#Yg$Vw_4SU%Vz#(}=nv&H2KG!5kHy|_ |=^aYuO>C=cJ0_-VWkZzVLf%fpDiI$Gz8IFZR%jXYuB!*pPTzOH+JD7}}Jd^>!bv>EbD83wsdZ%&#cR9WqrUZdWzzyR^1$1ykG;!99GefcTYm2s|*WY_c(KsJi)OtGKz`vZ}=ftx-RVLrrBf 4~d5@&!J^c}L)I4?^P{;iw|ulvZ5S)*Z!|-ANra>cvTdagGR_K^$U~j}!{`C=8_61QNIX-ApeO1==SH Eg0m!_s?P-?&Lj;{j!do48&uQ2xEOFutv<3?0W(y?_iA6I)*47D{PuPB1Op0>d1MTC4Ojp^ec^J;C!j $%(JB92bT@)sgHWcANnJ;bT3TF;pRA^#yrA#Mc@c;v&WSB7ie{@5QD@0d;Gm=9f^fptQhAzg)<10eJ^ mHQ#ipqLny@0=L3v?*c$>P8G$-YNhRnEbC{)5ayYmL63hmeO?^Ie;*_f!SK%Q`=Gh>g1qGerqfSJSrE |W4RM)>woX_%|iJ^Q`d_Dr0i9fGg!UCl}B|74Y1viG`(1M$axXX$wxe0HM)y`$%HT~-(>1>b;f~ay|; 2SwjJ4qg~0Cng?9VHJ3eqsog;FBkOZSuKoPh*5wx1}7BZx8Vo>jsIt(;ex10o(&}`?uthB6iiR0aNz>Z(C*o$8*@w5}tQ2Lkx%rZ weZ;pnW4=iWx~NBWp?4XdJzVSgE(NUy&uMuKeWk-+NCVRy1|b$eeJ$h|5f*w~r@BMFm&mwPG$+k7eBc MjXxxP8N)L3j8^D*)*Vu6T whAMzkSU39{&95PB0tmyX^&X-H7y9q>6S+hpaBIUclD?k6X8{;knhvt9Lo*h*jnhPtc65t1%l)R3yH@sCS=*+~o{s5vLQ$2NzHq-WV(O>7B&`;AX0wE0Yf@J uR-6xGoVpXijbspy4W#<&uD88;q{EH{YF#t?emFy1n0rC0K;KVdMqt*5q90ri5JG+Y`$2@P(+g57`-u oAB9yww`o-l^F#zCqyd=%K#N=C}NyKyvXyMp}oQgdmOTeWF)XuXo_jS5~-_i1ZNv;?J9~se?q}C5u%v }2l1lXoB}4^>57t+}roHa=#_*%}kuev& vOEBlT}4pW|}`ajDOagaP*vGZv*83vi$6f)0ahn4@6bJ5mwD{0ie+%sd$&wEA=(`CV=K-jiCyF<1{dIPb}! 9q|=n;HUa3TY**|H(}c60)$f60D&?|jnCDk#gTf!tX|gNlLO3=@Tcn2c_da*gi)6wcdz;0B@8Q;`aQW WbL5OWzCWs%c!5^8StCE^UWso?w5~EGT9D&!QsXy?Gj&;K;XC~!*p;9gBR2K@=P2MCCTy@@kd|u{hrM _f_q%S?M|^2BzE=0JR>Ta75tL-K)~1yP*z<8a1|oe0#rug_7%rIQ$Tb#H0O3Ouoi7>U4OQl#PF| =$#EN(8ZtphbyGfO3H~K@4H*xEu*el)^uBI>$3fQhgQOZ`JSMFR-%x_49Fucq%rzh%=m~gC+SYL{qIM !46(hX*RQ}P2{n{r|vWd_PJrO>W%9G@2YM|7o0$0GOhf(UPk^FXqBMhHOspIpzQ&L+}znmPZdS(%Dsp ~V}S@i;sYXaEA6H)-Fu=ZNqC*-hkOW!dBKy-^uxHAz4FjigFI abD{A4>G*p=-yO@r|uJ`qClxX!c&MC>sfILp$L#%E=i6sCsE>XS0d6Maj$K&dOQKoR#mDuYy?VFFQ@0`97aLp;-1ej(>qmh+i`MOfeJ=D$m SC+<;&Map%P=~uEJ1%>q#y}sITPYC>qujE+gGva~=LpXJDb7_kUnZh0L*eKxJHf>xE$+;;B#I3MijDy GZMNXpfApoXd$;E(gypUh|m7L1?e1{p6?khQ;W<_1VEJw1d`((3zRvd?kM;!>UE*-w;vw3c%eS}pP$! x%~NC(otkt#dqhhZS}teCakoTyd+xc(t;r6&N6W{7dLgTC`if*aMgo^d#xE=e^p U>A%dT`ozUPL=kXs0QcH$wpr_TCoNCo2>swZB-jAWkP^GEt7X|Z^ozq$`R!V$jSzI+Emn0#bv*D xT}Kon|g+$Coj<0VX|pe4-fB%xM^PIEs;Kk1Oa@+>&?>;LvkdJHRKHD5LXKX$ifm$*dirTG$m0!_J^~Gvo-=a+QW;@%kTx_M@U z9)mPml?abfm>N$F<>zb~wEM3nAgWlRp9cX?j2uo-G_L#i-8R_5%!Ml5hOSS$-pRQ7P4+!9#HzGl%Qh%-7Yp0!xc_Vt&g!8J5f$Q(^^rxBNYP*5zyuXBa1g4N!akQ@ 7}x5H4Y1uJ~=TKNrA{G-$n<~QA7bCSvr1CI60poKcb?MESxme@~AA88%?J=C6A1##;yIVor;c|{kAon ?TbN~eN>S&zSuzY)&hPqFna#`>zN0_Bk)2Y73qfs6un>oZ7>2mD5L}TXoDA@ajhRxhg9q!i_(> W5UzGs7l+mh7VI_Tn}~iUgr$Ab+~tzAtCJ0yHI_FE!ffvFQ4w<>lD$EXq@F_2g9DUCDiLY+rdUDqpDrha @c&SPEgc)gtHWXI}YWMx9yM0Y#U9t>yi>BWvi@{%G}`4s5kAB^!(Omw<}0>26feytS^2QhXI)?SA)!G7 yn*|JQk?^?!Gm)X9x(A*y^=6>)WC-Z-lgClUQmzTJlqR{9eH|<3QN+KAFJa~gMo*MG{@@OxB&Czj;-E r^BNqA*7LzjBl~I`t?a+0Oljp&KlS8Ewyft6z1k0N7Yn&iP&7(pAc~A7ANqC!>M&5dW`37rn9=>)R}eKES+H4aTPLfLds;0IHlrCm~%kpJ6oz^iAQ;j3r9B Wr{kp1SCZ1w5`ct3o5GOI-m^>3Ma5t{UBKq0Fy%eZP~(V^DMki4*X(Dx9gC;xUaU$&!4oD3&4mGGrhg bduDH#`?vXM=jY>8y&n*azQp(B-cZ+$r!fk8qpJlNk(9M8g^fw`qvTpl5)89&BvX?DHU^5gvK8U(vla FdAUB@HB-8#sQ_Pl-gZB)A%P0Yo+qfy#@94&fUMmd_Abu^?nG&2PfjH%txW|QteU5=GW)d%l0vB1+Tu qUn%6$YTNRnJ0YOOd4}BN$uHkW-u$8~Z@L@iRf5V>#WKOK+Kq}I#Gshl0_Y-@Bo#BoxI2TdHv$4_iY$I_Sp`(V+Cd#)EHAoog^iSS)PBEK c^tL9aqDcidvIym#Zl)5Hw$mFS68+M?M?yx8UbRIV}Ce1K0@=1x}TINc+ow7QVf^tBK5wTMoR4CBj7G )v3NTGNndAQG`674Z&+^Ua_(&8L(I1tIV|p5Bbefi6+wSwu}mHf&mvlOXGj>ZQnwO_@{gglxc&@pQW<}2Dqt>cQ$~fN0*C3x^g5j9=-1$ uR9MGFj6|F|gbhYp~`38UjCI03w5LTB5>_$wX5(MJQg-vaK3MbPm_!YeblLAPb |d1)`JV;nua)Zjl)sCbX|^Pn5iAt1im<;4aIIoaN@ZtNZ~{?1pS_;ia*Joq`5xqfi(AsemnMSW^Sj<9%pg=98ISZ_&EYj)ruJ7CK(MsOq*dSk^`5N~7zlO?;x^WJ%Tsk>jw* =&{Snw5kK@}cnP7p}|}B4DV@cp7kGS9luwBg5Nig6%{`Keb3{jFEQ(ts)R=1yHL_Rs8Ehe|{XRj3xa( $SV9~&DaA|P>$VH8zdQPKS)XvZSg@o>L=$yL WE@jD;-f9Ue9F0G1QQTw&5eh~qLTovpE$dmaf?VG~*Hmu9)mc6c=sV6A28yAH+MjI=;Z>>@^dX_zT97CXLFe^w3Lzb>t^p3escYDzoT7?>%_4m%c }A6HdJ_%_6JQG9yDoj(4?tBlQsrT8W%KaRnVk4L6dd_O&Sn1X*tlO$v~5~0!@6aWAK2modQMO@=~@440i001Zi001HY003}l a4%nWWo~3|axZdeV`wj5Wo>V2XaBN{?WiD`eZBol_+b|Hk^D7qYg=`g}X91}Xg#t8%8z4E_fk4S CM~Nf~6qVX&`|n*+5893i9Vl{Uc6PX>(GA#RSG9Ynnob)F-&I|!yv7LD$`&sXJao3wt*Y4sFvwWxcyW e}eyy@X@35cg>H6XR2V*RI#3yS=*Q>zosJ7{?c?S4IB6~bQq^zul4){>JkJden&FwW7mZ&gG4;NFYGd!vW07jhw5a|| kO8MK3GL!u(c#kKy8Mo0-?PNNZL{FAVws|lTf&c5WVYHOu2`|fF*g;qFXq!(bSF80&x<=-eL xI8sYWB!)1-A}4Z${$5PoH%M*ga?8l rsmz)ugvi>tpzCeWU_b(Lfz3(V*@;!zH+ Yh5khMtEx}2uWK@{p|AsXi5c!iDCntb{4q^hroD<*|E`UwR=le1;YaM`kh_-6haxc*up5g&%KcGB8rt g@j{;Z_#SV3M(=VzR`E3X{%h~V8~7!U;}icdiD$M^Phk})mdD7-KRxx+nGX`9-sz9z8IFgLX&ZK+D^0 P7@M9u&rS@dfQp)>r3Ds*Z8X9@0<{WAslYp(!i^{OJHUkkFNQSGY8f^MEIMOTSFbnWF3f% @}Q$J70EY5(x`W@p1_M%=_=skHQzm5KC#1;uJ5IF~NY)%OtMf-%=LkpDP@q>??pP7Sa>-#p6GGV=s!? YT7)_G3mn7n)n#_47uGNSxcg6EeEK!KzWwXoU7bYQ?Taj&0sRkWhl|lnA!wZ4RqkThnFJJ`psu?Q6P* >f7Xgo4t_@-5ufvWTOZZ!Bb*2E097>7k$r0$b2%@Z;y9*Hgz9%(zfm)FsE5#jZ|OyKb}2l&mMJeB<5X SJ3Ss>$kwTm+7qnCyN^K62|J_gaJpJ7r)RT|m!I{7GIL_rNE(~T<=K3GK40G4o=-piqs`3V(i6w|4p2 )21QY-O00;nP0YzL%)VJH4000090RR9V0001RX>c!Jc4cm4Z*nhkX=7+FUuAf7Wo~n6Z*DGdd3{bx4u U`o-E)d2ZeSq?U}53~yuzdo12hipq*UVEUO6qV6M`+O6A(QtcK?D_Sf0p Z;C$L(La77fD@RyqhM>;L0N6+t1iSFP)h>@6aWAK2modQMO^K{!xo1D0018Y000{R003}la4%nWWo~3 |axZdeV`wj5W@&6?Zf`Ddd5u!biW@Nyyz489*^38e{Q-sqOjyER){x|8%vc_`Y;9!qAoYX{MB*s1U{i{%^*XdwuL?Q90b~X7A=;2RLbNW8GGvwm;2XMgHPHyy>q0L+LOV7q&3!&=UJXwXT Q@TC9b1{O^xS|uwL*BZ|rHIkfN%p&m@>YH42X|`v$t}c<_=r4F~kh!Ht>T(TTj!zT`b;7Vz$!I*D^t$ }Ynpo(XbXwP5zTsux)Pg_~esC|Tg|kau$N?MMg|2Pa@NDTX!BKeR0-G)N+IZa(FnLNN~}UDJMkd9J!B ^1QhEw_b0WOtzWW@F9DtMZ(R<2Gto>H6^DmmF!JQL~7Wbw>cz?w@r>vo_ICIE-lO0xe%Jz;x BY%|TCyJ2d8j;Sq@);7IlM9?zJ$Qxp~}+f*qoaz$xa*NK|LS$~P+X2$E;? uR7M=D*5aE4@=|Asy$iI4&W0E-kmn+#j^|=2HP)h>@6aWAK2modQMO@#ewKQD|006ip000~S003}la4 %nWWo~3|axZdeV`wj5X>N0HWn*+MaCxN~U60$i@!h|IP##vg>XhWA4+c~qcelOf(0pLC?TgRQ(l%`~D ^sc{W!DYz-#arTB~p@o4NgdGi<}wGH)qI|r@CrdCY7$mwq5L->f~OSG;`ZhaJ8$pDLaVPeeY!{QYQ7b YTEltFi?0vQjB~+lq#75br~cBfL!6eOKea{kewEe<>JU7+Tr 3Qo1UIqxNf4b#=<_gxVP@h%$h-O;tKjp|`vig&l?OozNEYC=bUH{sSit`cBl%KZaoo__?dk9?);*^__ f{%0kp!iGInC_~IrS(YEJ)hTiN{i;TOOdwg*d;<-1$J^W7TlSEuBc4E(py=-(_)V$$`hS$d!Y_nv#Z4 &n5-|&06VDLmy^s8uDdlZZiSdYMHAfU_qF!Q3DEaM ^3@s8aIl4MI}8?ZvfHRjkQ(pbX=X;$8&qE6#KCG3?tcsP~J2LZIJP)HlJAx-jpoCr|=C?2P#<)2n+-L 801S?WnB!A?r9hhc2d_RKeOr!TGsN=2;G&S@Ty_&D=G{XcV235os$6F?DWi1x5~JZ5dub8wP#yimN=}h5=9S~q4=iMl{F KBFykd7Quj^gQK}pHg}368Cfqb{fz+mJ1uiQNQYp+5PqIC-4wuv0su9U`o(b^MLf!(pMZb0AcU6a48d kZwh{oufSptW>C3smM`9`!7)qTFEADF+$GE5CLud?-pm))F>O=dwYtJVU6518<{#1+Oo{h*vuNG02%h zAXba-aHfx1=oIkNl8^v9|0p`O4+1HRKNrmNW>KB}4XMieyX24t{AGUA3P>Dblg;UBo1tUz$ZrU!V(y xiCX2o|&Tzj3O@sJqCMCKHg^HBm~ABm!rnRVUy8vo7o^m(P(kvkD{Ql7*GaMa!>sC@1BZ*h>OSEg_Dt D#5HEFoQxJu40PGS-x6iql1B5%h$-4{@`>}sJ< 9`v-Ny$!KPxnHdxWfjbVx~5+$_hqG@9*Y8)|{-wDht(j%3ga*B%Ux(y%v3yYCS;llc3sZx@G@HKfZ06s<}cfinAgZQnQQN`auw_Z74t?g%3)Z-JslxGFb*?L*2F8WeMLDn`Ux=97 W7Jc`HY@S5S}NOA$|pE1?oDn?-Z50S7~v5R$KH4pPm+%zzHzWWDsQN9vRAh!kit@0K0xQbiOfA>b`dz JDN2Dbg~uk4ZBI%O>vWesly}|JF|d|rfwI)hQ2XLc=*^D4~6jZq0PvBZg)NTDr~I7>}Td&Y1!A1jwo) %g>1!1$N0H4P5p`zEacX;*=cFa6tS3DLSsCNbIRgEnB+ivcmk?Na&svx?zd0_nj(P=JC-_*iYUp->WT K95uD {Mp6^V;@Ixt11t2g^$&>fX-a#X*xRSRB3hJ|TJRWU*asZdp|U$jk(iij)trVSInAwAQu#WiMwmQ7>72 DSs^t!Ec-_5Pn;!CwFX3JvX;Dz;UpFx&bv|2QYJ)y66&mkm4$MqoD|@exSVm$0E2M3lynMn1%oXFGZ? %mGqv&W^G}BX{wr3IcDbx!UE_@g#HT86beXWp`3Bo=C|3Igc9LT)b@vVH)UD^9d%54y|3#;*58yg)e$ g^e*SqnxiqQ+ME#OZ}A;V*mr6L07oFz;2AL92I;r!H$D`(k=v 23MI03Y(^4iuESDrxRJ=5hs`DBoE77Rpn9AdCR_<79)^PJn;8V;O|D$wBzGt|YV`5AMj4*E iUsKKmsf#|MA1E&Oe$OawT3~xTUC5^XW6zH+W!4MwdTS7Ys~+b+BQ0gTuA#`qyAFyW^Q{a~6FY3i(MA GHld%3noT*pC;2$h?fq6horcQ;=)XXCi(?h4J`u@DHU`yv!6F|(=U2~g*2N*Vmqnd3Fml7@BcNHhzJa +Xov+kqShHcMWt-p@weOtX;ujG2D^JATuz($yC^%CZy8G3h}Vyn%1b>auuvH03r6R5>2MBjKL$?D~1P 5X#B&evHqN~hrgRu~HXF(wczW=^ld?#gdUZlBwRZ_V{!e-DV42Hah%rO*~vTcIJ6TH5PPLxHcuiOM~o TQJ1Oi(08$jqyU)$2i#4;VL)U?&X~Bf`=Z1KN1hBgo+txybkUx!Q2o1sq}-3?$LogaA|IQiGaHcrd!` ^2#4@W5g)5TceRM@4tI+OF;)}$lSl8)C?+Hs+JFdHMTy-&YPf48clOqJg3fLaUbxFuV0?pkwIpT+Rp! X2u`ftjRaq?9ER@+?)G?GEZn_M$g!L_Z#wXvB2APWtD2jb-?r_cY#N+=jztz!W y_YwjMk4nD7dM0*npZN)##S7erYjXVd>BIY91UhPyJb)d50jr~j)y-#JscdIvGY=Ba`Zk>`q0G~n6=V Gnh-`_hhOXk~tJ69%QW(8c2SuunqU2jP0}`C-BG66Hs1P7#=1Y-f?7p^UmD&M;0~OWYz?%KjGigeuI2 XMwEKRb=a%}7cc>o^$&71uJ6Z!+%3ypY?U&O@tF^V#_a5^?|LU#n1SdBx_D#Yp7YfQ7I(c7|sr(S1ti heAAm;weNI_v-lrSO9KQH000080A>M2To$Y58@B@h0GSK`03QGV0B~t=FJE?L Ze(wAFLG&PXfI!EZ)aa}Wo~3;axQRrl~!A;)H)P?pI;FoLMyfEn-qFpHr`NFWCRao2-(wgCYotVn%R2 ~;(vD~ZPN61_MASHCi(KMZ)IK5O34!{sb-p=7~-c!D(%Oc%B<>3!|Q`v`=FVkw}K_;6K{2bzBHQ4nu- K%|NZ)g+`NBt^YO#ycM1Al!+e5ns1OFf*>r5FW)IqtZQ(ny@9m`l2(QL0*#^PW?c2+`mBMSh>4u5>_{ QqeDI2~m?ZBbUoHyRddMnk5>MgkIq@vubE(&)RyH4j0{MZZHw&;^QbapzCC94o2yylva$j+FjWui)k( NW$LLzbaiDFxWssxzCc3wFnZ2fU@Cogx~lk1Gs@oK)7MtcyU=YL%e5lRMapi>D9h>5m;A2;>PIP^@9# c4@V?E2gYYa?eX6#$`dlYi*ccceofm{|9}RHOodPlKO)HsQ+GoSQ`#w2MZu`91df?$B^Je02GYIum!& XzA!u9790Y=gV7j9AY*hNd4E(konV(apG}ZMdx+3_4)tY_A>1c^5Ip7c9)jiywZO9q!Mh-g@-P+VQ@$ 6sl3pJF-+4A?=`-Awy-CEti7vZ6InXXJ@S2fY&hu^t`$Zn(vpI@wGr&Wd`ktdH*ix-)8p9#B6YNrN@l |!!&DrFiolg&nmr+B@68dT$y-d)nIG$ir_R!F}?5oZ%LW3L^(4aWj3(RCM#raf6t-c7BV~Db?1RO6@b s@Q)%i?i@Y_8|iQkXdtkSGd)$X_KWV1u%1=>aks$vdVhA@6fsNl~t;wH0qp$Hw-0)dn7LDtVvTTdct2 8v~mRDR$SMx+@{m0o tRHleMM+(JNSvNyT@l^PnCZD!R8{M_WJQoI$Oli|V5F;xHBaEIwpQ)p%tvJ5M(SUD8FauAe=Q9VduDQ ^zS&cWFg{7beMM2At|9`cZ8Df9P`bfsh%g*x5cY|=HTw&91QN`hQdhz17Z@z!94Z0iJBZrPZ;+p43-{ BW6jx^y6&tvkqa`RO9cW>uUZ~=wSBc44O_AmN4Cym$Q?G?wM2T)GeH9wh+)0MrBk02u%P0B~t=FJE? LZe(wAFLG&PXfI!EZ*OoeaCyyAT}#6-6n)RHxb&%o=?@spN5N-{FQb&q-qt{tg!Fc<|K8-L+v-qsI>f w`+uZZPIcdG!0*y|Y4%F6JPw+tKLedr#%VHB@HP1{X ~n}AVawp2@)H&FT^WW)sgHyTU=%FJDzC=%{o>i!6v1*zqqM2T)imMv!ek30CEKY03HAU0B~t=FJE?LZe(wAFLG&PXfI!Gb!=>3W@&6?E^v93R85P*Fc7 `>R}7vMDy&yw_pqQK6ur2oQbMegH5d~~rmOC+-=u0kR92f)lf3t4@@6{1njO$-j}GK+Z!E#m@*Gz@-! A=WBrf+-e_sK!MGP}S%U237Uu0|yiF6dhVo%a&u3{+pQIsq09Lx))rcz;lwn!b>Y%q?%uQdwDm2ud2s Kfw&zE8CJvpkN(s80wja?a|YOF;ntcEF94r`7@zAhOtFs8>KHNiWKO1{tJj^69Fx#5}JBPyw} imK#JQuoL~!&M?1Pj71k!%H*ol+vtLa){eX#0cT=EEBee4eA`*sv*p+-dkI)yCsB5)r==0$QC;1RQu= TuTS#YS*fRIucmvjlDelGSlG6|+>NWoKR5BSe)SE9M`Emw{;ckd`N+1(xc*>|D;?1NwAaf9O%2qyB8$ iL0B8}9GNfC<%GXyr#;8$-@PDVD+~MSyV|kcmP3#X>MYC*eXiN1va+>PRF?2yc^}DRwrDWut9|yl*X% nFew|Q*_2|vZO`M;TmBR}}&UrEBIvt;6XwHkke=nqg!0|XQR000O8W&uT97ok@zg#-Wqmm2^89RL6Ta A|NaUv_0~WN&gWa%p2|FJEwBY-MzGWpgfYd7YVEYa=%pM(_PA1ieYXB%ZOy@)UZJlF$Z9x@-)&C?&YD HyJjujqUCJ{YspKzgc&ytKH%C+J1L^^YD28yg9zC_M7LI-Fl-gp1SRN_x-48j-KuxZvT 9GeExLv$K7&yr+)EkU5u3Z`m68l*F{y2m1~#dgtpqCW~`=Fjt!kxrkmw>YDdq{s|r) FH;KaefiEG#n5)OEIIJ((FcblF6eePZacC#J?wn>{V&8MeD@7v)y#nb}l5vzwYXnULLVZH1bQR|~@?R yJGJzOlNR^<6%HZRdC0Q22XvY0uo8`rAewPpj>Eby%y__So4I+#QbUqT9Z_e_MCkSM|@Kdwn~pe^-ZY wLKj#M~};!hufRaw?A;Y&NMrfN&~dp(KvF^$f0gDO`4Ufl{HV^oWrtcAR!s?NfOSPsEZxFZEfb4dC|B>PSiWs&{TBCb=7b-oDJk?+IyfvOdMqs*mKvHgG- _zp(5#_ZL!(ArfkqF7Mo*=N!$PCSQo~{X0migQjfOQE)@WD*a?wI&2iDTS!ogEbv@q~g3W#`kC>06z9I(|$XDbbBl8t8=up0r0tivQk^(7-d__!3kgudbN|3Ll07^1n5rY!tD=B~ynA-Mfj>@*gbhbzC0!q%9rQlLiuVqUjc&-<|`IJ2=f&Sq$Kkd Fey>KVu6$>U$H>fSTbJ$gA(Q|7C;H}6$|HX*3MkzkrL%A7D$Qmb?#1YF;@0Z_HUiNmh4+LgCVY^bZUr eDV-VOT1xFF6|SXpZis6s)rPp1$y(LErPO{l;aawfiQU4`WrcH}f1JIPt?UkcmlfG 1AM;Q#;trvU%}82|tPaA|NaUv_0~WN&gWa%p2|FJEwJV{0yOd1X*RYQr!Pyz3Q%PjP4hx%yDZrN_4PT 1ruxRU&F@-IZL(?<1|{CeQ^Tu`@d}S|>apT}B^H@WaTG@G>UP!S=?OBRP!z>-+P-+^^QZwx1|=e~kCi {%EmzM0s@vxtgYV%_B%>g7Xp+0*6gLq$IFFC`}TS(c4T=-L28_y`17KRH|BHRYuzm`*1;+h64%MsUF! -B%h1^Os+z2YI3Kg5%KgtQkK{*(e<`5lGIr70nM&B3@nR7{=m=Vg^n}bWmEz9P#HH@?-nd(*Q7yjXsN mlWtqE%?p(XAxdKp20|XQR000O8W&uT9(ips8j|Kn$%@hCt8UO$QaA|NaUv_0~WN&gWa%p2|FJE$DbZ KucaCyyGTW{Mo6n^)wI7l8QZ%USIZ^lxrSlgjM(G5+3Jp_hIOH|BNB0W)xlm7ah3q@V*r0K(e8E9jXJ ooQ>hgR9R8p=lHt#Q_asduhv;Z0arl(b!|cH8gd+ElXIKJ1LWjqA#{DZDfE{~tS&RaFYt`kzkQT&M77 <64)yYOz@4mGT~57q>d;SC^{=;OFGzJZ8CNfPsW#TsU7d+!zq44NO*x)5+PmsbC#`E$#Ya+h!>?j!Hx$Tv31= @jdbS&*d1dZQp@GH0?^I6T!J}?pKCs8BSV}R#V&YH=IToaC6e{%R65_|LhDNttV|4))S_4;-Q~Fjn9{ kpIRRO9fpxcohF>5T;&U1ydPocAw#`K#OjAx}(K<~|_n)s%w3JahoPQV-2pgP|wE~zQ$M596Bzjp5=G puuO5HYHchXW;7f4TszsC*dfC-&|WdI3LQkRr?Wrs3@ky0MW0-Zombx*=Ft3GE!-TG%mE$)9$My7rud TGJWAj|xEPLB;#5FR#o_OuD_7!y@eNbW>Jt&znAPG`hCc=62hLGQ4bVy_A?flH~+5v|PbQez0A=K~FK _e5=SmEYEoq;50$PXc6$NxEnmD&Db$qg2fM|9lOS7 EWm_@2+QlW2im84_^{zoXM-rSBQRqK)unY@zQdnp$z0y@rj-KZCOja}J0w7B%%cGSPv-#x43JtWes2I oT<>D|j=J&gCT)>`9(0ApqLt-=l0JYmBJLo u6Pa=Te(Pa%v_DCg5;6vwXav??HaufmBc_vC&>?dvCtM;GT@oVsoefS;u{OB8T#WpETaFqeFd;B`3k4 !4H9f`R7}2|mP{EmG{w4Yf+XKi4tRDAeHHT#%`}Z&k3h{AJ%+*1$xGXnpjz;l;#DM^UOz)vI_sIVtj* 14@ovKVhh3lDt?kbpS2YW20#?#o+m;f9Q9QCeoIp*m={{~0M=YfY2W^<6gLPluJrbAm1h6+ IsSY64|)U7St}fXL{0TvlGUl8)y>eV%qcD^g35 `xt7))U+H)k?{p*STHO;)r;CWgPLG!sPv85n;=$eFE{0{?siyTfjXV|}vnSS{aktp^H%Zh{u!Z4LAxd CK01CXE-w~s!UaF6BD)%l(#a)SexK#McwS$tddsKz&ef<)1;Hrn)4yhR*q&tvSc4Z#EyO29X(iMsh*4zTrI)sDbKA&8jTApIkh_y;l*v!5VgJtq{c)^!cGr<;67l+MY-4(E uJi0_eD>H;b_S2}mnV3B?7?!(A(HP2XACBv#~U)={OFfx+>O6SA7za=eE$E;5#oG=Il>RWo2{R`ersdWQM7QnVxtu@W)Z+dXkEsL1 }@B4r+*`M6k`Qs&$sZ)fJp%8R^Ng6N!P}%HcIx@e4K`U*^Rn0ot#_Gd+g4aYGuu@*XYr)AU{1h!f`T( k;XG^@@DPw5}V`Zbwc{_x=1(16rOrqOR9Gb>QA`)f@-Ymzfem91QY-O00;nP0YzNKF|AZz4gdhp O#lEL0001RX>c!Jc4cm4Z*nhkX=7+FUvqG2Zf<3Ab1ras<(qAD6Gyhk-}5P^^kzw}aR?+KH?`baVT)L Gjm4ErxTz$?j^(jEyRybB$zj=Lt0V))Hpb7MvB8Gv8S@Yz#25pHB%~@IVE665-2C$aHXmWTThB8+Gm@ MIvVcmSIS;>c`gG59w=@ccLVFS;YC5fCvXY!pq=Ae!{K1|#rDRIomn|ti*dx(@$D+Mbx0+PaS%sf>Xd `Db>flgL+M9esN~r06>YmUtL!(*g*I9m=jGWFX{cSWSMUk`tDLEu(29-7`r%7`9j5I=1qYheMPFB-udQg(3B+ZEfsda9MqO#gR?lfzcobH$8 Y*tIEGG$8rT5@z)N$2Doi#edCl&rKjH>60RM9Cxc1`pJ)$SF=#(-PB{)zWD-H>8c`B-)rmnI6Tr?j%HoVg!RctwX;jA?2t^G(WjK^r}URAF4wd!!?MWc=$KIDlr*Acc -Uf3S6k6uOrt9zC1OW=Pln?WDVmUu$73HwJ0qP^D4d|@p*HDcw6`mEqF168@o-P?$5QO56z=(0`rl|z XPXrH|KssUA|b`%QuNsI?r5a5Schm&NB4=&XwQez5$f9$qgO7jxKr{J`(M Y_I}(Z9gX((Fz!(b4okG>uM*?uqssjnhbxW09WTb{d(=q{v6~L`rmpySs U~@Cn+AIM1^qcKqXb^uw-RsVmmq8KJ@>5t?22NOy$Oc}Uv8j_z>uSew)tJ{JBk!aZY@6z8U;EKhbtxQ NCK(^p4tG}gnK(-G_GjnmUM+S+(;#r0$~5h<1@9FHbgagN4gGz2Rz^@?#2_3eoiNv!nsJw#2|`H4iNn onmW+)Y`DQr+tu+V_O$eQQtRc$7kEOAkwb=4PROEtd^_P&(rhmEJ-!pUWvKeSd#jRX&iBhZSZUf_Vw% D$J)acVK=4a~tMOn73eFggF~3`uwG>8sGqn-~iVF?dPz+h5a?G??AqTeI52!u%Co#AqQJc^9sysFm;| I&2$UqLzs(#G~a1H!g-kEyxGN2v>cl-P5!>aC6~B%ToCQuU9@Kb<`{o1@b(nzuk+J6{-Otq)Lszwz2? IfU`~2R-r!X@&ku^_t+lzr9jSXkkjtUwbD7|J$hcyPP0773AAafvQJ>qRA;_dwo1}n%IYck2h%JU}Au}0Nl4 m4TnPbxAl=iq#(%^@X1DXYF)O4}(S2&Lu)A>o{mAe5Syg@j8&f>6o`1tGyLB|<49OuD6)nvk-A-h}iE w{!xQz?Kd*x73;t5!k2_5Y7t;V?qKQ;VYs(CT=O~w&q0jC2lF}Ayd>tmavb>>($4mu#Zh~ALoU Hyca>x$9Yj7GlIL189~s;c~KuTg1e6yLD0vPP%HgRFb^G3bIngh`SP9j9KYjTC@o9q^}=rEV{Fh8dX> ;&J`QrRJdIBAVKB`H&J10;@!S3+$P^o3WEzAH$r(D4@SFI2d9GT5xyGDQtZAnZJ0%C#KAR8bzKyI>`&b&>B0 L(iu@4~zX^GlfbVSWX28{`X+J0N#K?ty#>av$U?zBGGKUIo%Q`Vq{>FrR>If;<4(0(l6s4e|)&F~}3X j-w0RXE496O`I)zzlHf6CS9@afIJ0x2J$t?Hz41FJZH;TI#1Erl+CH<_~d#4);O$-u=B7Bu*YDZgMA+ M1=!V)z@CFW4|@ UjBJ3sD%e9HyI&6bpAM_%Fbp_T{SZlD>VO@hom)$F{S7Bd)eHHc^>~+}J*mB%5VG&psEF0DatQ)Xy!n y_9giT;uux;2Iuy4S=3HuhT+pxZXbqCg6SodIk3F|&Ax~9Jk`wQ52VBdv(5B8U^@3XbOwF&D1tSwj%V Qs^D1nV)ZCv}N$!hQgI3-&|U+pr(OeoXfWuy)GppRd^x$odx6bGDCQYoVvGpRsL){SDt=&|SuNj`dYa O)IWd&B3}=%_pIKbo(3n^i%eJmc6|d`mEO9wY_mKi^ldLzli)2ecxAE42`HG?$}P(r41~tU}+mmOITX N(lnOtVQH=c$*RL6DW$WtjjKhyv)|E-c4|%~?d_#M?d%U@eCCEFk{K;U8#m~AFFLSayjb%HQ;t>*THg `boSbpC;Ehu3>fuY(S+AM)!z6!H$QLqR3E`5ZUDb 2z;pJm4?Gn09!%K7Da}O~ROQc)34rak~9DHTL6F{>Q0;)6?}Si*tpnnLQ>(nw$Q#_QfOUJ8sd_T4_a8mDY+%Qiq61omunQi>}m;6cE jv4GdIunloWLu=XPOOO(|zw)2VaI^V9W}^ZbgZ2kSK(onbBgd$;>RxBKcu$-R0oSw5Jm0S+m2LE>JHx Pc2-OYRG+<%6~I!Ik38X?>%3bE>RYQd;u&-ghOBeOP@>f4aWR0=tBBBH_G9xF8ZPiiArd;j&1mi-d+q xFQm+iiB4r?@_}#$-QuU-_=RemrGqTJySlY?T}%aI;(zLs6!2O3G@lReQV|A`ec!@TEuy=TEY3Sn#TF Fnj^kwR-?EESq6JOi?P@x%OL#)P$FN4(xt_fBk@ujkYaW9P(fNNo$^QyAEaIXMMjC&-_3bFVDi)T>G|@PeGBD-#qz;Y`Cz$xpqCGf^1+Jh fs)K9`#E^P?75on8Amjq=WiSPt&~0obF6d*ecD}r_VX-Xy;K2s>P=t01d{jHmjGV+at1# 73158);HNiz^~EOm=^4OB&ol7XPx$H?AV6>W>q*`}zPX$Hc@OyN$97Zy;t2BTe^c_;`;MRT72vHO^V0 {7|MKwny#7k=4!!e%mmxXh^AL!~qiL>aXFvV)RLwteN~h|rJdEnCyo~CsJdJ9typ3wCe2l7Aenu55U! $^>zfs95z^G^yWW=okjhI!i(OYK&ZQeQ?7>t?(*)Wp;8*bunQ#A3lDVg}$ludkWDkk1GRTEE}8WS&@S `!bOI+Ihrw}AdXjPwOPe#>pj4yP44H>7w!724RNV_3--pPSu{m@bbt+_qOQc-Y<$a0?!`w?x9*FT@g8 Cw_LMXFCNo@vNVq){SC(j78o0>H5t1njbbPX}Mq7-2(RS)9l@ubbd=9mA>D0%aDK W7E0K0U5ZRN7?Z3lk(@g91VXf{B^7P-&vr)Zq@4D+FHFxTh)uTWxbcSsQ1<~y> }1FN|xTNb82$8JHAcm4;(M|ytC=H^D^3O&}g$kqs<15HXAhB6dL)Ipj!C9?D-c^O9KQH000080A>M2T ;@>|(%b+50AB$B02%-Q0B~t=FJE?LZe(wAFLG&PXfI!LbYWv_E^v8OkWEViF%X9D`4umFN}w(DT2S=l MMP-uQhJE(tQ*W1$*i#d-Xv><<~Erp&pVSbM-N_-4PUT6#msoMg*VVkq7RdW(0I5Na?pbkLR_3F1xGf QZ`tURKC6R3J;N|Oqj=*S%49v_4`qDL*0Bw672Q=rbo43Zm?-not1FG*m}DV0Dr_I2SK*)Zg}Aj5N0b )ZHMf2yo^wEZdfM*K;$N8NGIiqymdPKWyZS8#y0gDm4kmO6G1MgRL~9bHNr}Q0b%FIFL{Fi9K@BB!H% N=xt+;G1C4K==O9KQH000080A>M2TwvM~T;%`&0HFZ@02%-Q0B~t=FJE?LZe(wAFLG&PXfI!MX>Db4E ^v8ePd#hHFc97ER~(w`k{D+-q;$)cDO)K;j?b=&C7F{9H6i~!k|NiIY7nP;A9_y+0T-o-@oJ5yACFoZ IS}vAnsLF|QHRQ4N9{aR03z_AXRFZ%6)HVh_Gt#lk8CumHWQagnPH`#$Pi0!835ikYL&QMcj%K_ph7P``H@W;dXyCfZ>F&6Dt$)eG$?qr&uQHD=hxE8$!x5_KQ;IWe9sr?4nGoMbX %$X|-Bm+&}q$!B6c1zA|6%P}g@6aWAK2modQMO+Ra^?lM400 84y001HY003}la4%nWWo~3|axZdeV`wj5cWG`jGGAkFZgX#JWiD`e-8}ts+qjOu`>)`-Gw;cBj%sJyx 4lfgbNOoPd1=y#)6MPlG8#pqW8KPfFJ;ZAf$f3e-_;>a<&ov YQ+WfMY>KxmM=KFj*{>9*>Rd=Y0TN-hbh~G_9$b^G+aYVwn*1;$kHUJg_uhP+1bGAxy?( #n>q%xe;^OiI{w!wWdeqYE^@7;XGIqxA{9vo(Bqe+LIp8Z)i-DB=3gAk31$msNB8(D0=b2LpLJa_A()w AH6qbP_4cqVqXU=xWJ`aX0Npt3W9yRZNOBMltZJUJmEa(&T-pcd@_d~Ew{p}alJLP8LE !6Uk`W1@%s<0elJ%&89<>J)XPp5EFbldHaF)*NGQ&P!+>zl)8t^0mifQ+xvZk8@WSAa+5BWe(|3ws+J YS?CHH3UlYpRRm|cK&5t=vP6r1JeP5KU*0`|M41kWrook3MIWV8 paM#vMB2;5}XdspIcXc_Ie+$AbCG8NuXu)b}Tv*^iX%WX4=d%ki#o6)Y>FK$5^zqG`(@Sr9{^r6dor* FHZyxbD%sjBiPbDd*A8uyRue?8$v%1)RD4LY2u;!ov^mUk5#6p)K`OuHUf1C=Aw{kO&E6lLoq 3n1$5%DF@BPowa=nxzEd1Rx1aSQEa(1C+t{i!n0JM3R+?+_Bfq~nfqAa?Njozb+i?adJ_1^M)mWS`a2 Ema`)TZM80(#2h@AqB3+XQwClP#CPq&@82)CLHiVZZJ|-yNQxoSgz6XuLYGv!GvO?=V0*Y%4P+?83LstQ)Brn8*~ZbQ50u%Mwx|d?z#CZJ6zu# Cf|)1;|Av$W1H&d>B%sSq_}pK|IoTs@LdZ!7Gz;tvgRIY*j8P&hJ*H-DxPLmeF+=8ABs>@>El``u`!s CP0}Y@)z|e&T*|Op618K%hW4J{#P(v%d(11}=UZEW|TBIP*WKjxos%s%|x07CRi8F=0$!98v`)j6pZr AfU7lcDCTQO3qMRO?20>OErMp{**Vw=@h22|#-rn3cJouQJM4w{!3-Dy;tK?$fQFb-iRsWVFhm|Mm+i wH2{u7t6f9%KYnkkO``C~@`^ZAF4ZNRgr1D>Q}V3N$1-zZQ2J`_7|d@H?KXKN0ye+WtB0w3!)8C>U>9 YPjaDoB_dP>mcA6s_|`_#*WvjdP4)_&exh?Tw|6}6c%0-7su$Ukk;T@9h4-E6xXuGt Lq7lD|;#iHjAU!=^fG7fx#I?nuJD@vJb@+W{@KV~cDewXqIkfH%1cr_ZWByOHBi;-xQP;r0_~BxD4l% k@-|29>>0-Ov$Fz@hdZzU@oQ~oS;14hml8-S@?(zj~Uqgk!7homL*$sOQuXQb=oc6JxV50684ATd|YK u$O%Ug66b2^_v2z<-$q9j3cq$9At9cm%mw{ckoA)F^}fkK6?#=JKu4VS%NXE~lNd=xTH2c{^c%*GWa) uJ|H#8neWiBa-Z5OTFi!$Nh0)U{w*f+I#L;!YoF@>3GeXgr+Cs?$#)6)A;@X-*FQ=kg>#pQL;bp!GC_ 4gV$uQ^6{VO~8?a>9Qrqq9H?LF$u0}GMO8ivaTK}UEpZkDa$u}pVr;s`pP(d7tdD$cOlx*?-^%?Z|3( Zt{>_4%7Ht&J-<9JX}<1@oZpP+nQ5CE5sIVj?ydq4cpNJw+s*k=I^vHI!WD$H3D=Gk_x30Y#KP}n>J+ mnw|?-8dc7nwY7XP`U`<#_w?iK&s={s8>T TwjCYu>cu>-J|YqaJo`10lEH*vaZP~PK$!ykvpE`=kKI^F g6v8F)=1iatPEPYRSm}_Z03o&_BgIkh%=yXH~q19#Z$Rl2;5HA}`NN-&%4le+u2uz55#;6GUEq^_|Yvjw8dZSQXE Ol|(}KzgNKBrbniolZ?#QgGt*ApebSsiuOgpWCHB ZrmGj|;`GvB%Gn4s-QcD23T;_#aeLc8ur=CB>MBnp`_TiD#OClyLl27FSN)Xkx(|KIk^PqW+opuJ4*x jv&jZL{0vPE&5Xw88K&d)nqwTR}4$h_k8hEONkudrAdnAN*zeh<2G&-#|1HyKWuTkXS%q&Efw@`GJ-pxnk7_%pu~}5RX?1fUskfQ LS2qf)LRdD6N+tto9Cd4IF%BD;eehQ{4l9Yrx%l7CIA-m}K_`#!f7cm>>VIY%Q2|wPB1!m0m&fmB0oG N2oCRD(x%JY$265dOW4~`b`*3_cySlt-g7182MrbF;|LHEns(~^)M?hMTVO;Xb8#W# IVT_jpYNgMq!a>xzqIDG;sr3C{C)ZAVo;zT{;S|smd;+D@p&}k7B%PblJOf1IIHlM7c#d0ux6^k8RPT#(}@{Xoh+4oA eJ!8`(i~^NWJUpLGnXDg_DZ`>fOeGvi+@Q+YDuq!XJ{ys?)V*VFTpi|d(DlQbG46SuJ+{KB k1SH@ktOx7YZFy$zb3j?MATHr45-h7^tmQ}KTK?DRqw*5#D$YTkLM@e(b>mS9b)u(G#ZWB-X 4SBBm8e%;@>CycjV4@#s3yhnRWd88vgO9#Q!(KzvVcsUGZO@o){2>|3!s=JgV@I)dGO0*qMKf5nxTPe %A57D)9sQ3ja&Ozx40GKKw5HM~BCM?~wm^r0|c4NQwV@!XIq?Ht}2V+vLBm@Q+6({vQZG7-rrkpeBBs {9j1?<53O&D=B|LW!};b9MGoipaZ{6{;vrCcvQzf-q#6$9aKFdy@xco>U*L0N$o2;|I=i7&8uPG>s@N mtKPBRi%V8@z0|u%+SGR=-4t%a9s~(d?s-neq%FNP?d|hT8U(hMh%z#*lPjBbaD-p{e}I|0*%>bfOZVlzE;e=^5H;Pq=jSZ A1auL&)R*&}NSWRH9>`{(gGTNM5DpvsqFlU{L=Z_D*pk>aXMFTikG^=5{|s9099kr9ZsWPzN~-mMS2{ osMpUkgQBy#MQoP3d68}=M9%%0lBMe5zXxryRtZT=w|7tY#PGf@JPiPFOnvRCoL709q+h68mVHL^rm95aCyj %$h?&^#6PPOiRlK5f+>0F7D9{~3a3x>wZ}qgiNAxV2*oJy)ef#=+ Pw=+ap@ICfz15>7(`#8+6Cfw~7ikZ-eeNkon>nbqad`C38eY|VQMdb`GvoJe5Vq%^WTy42+%qv(l*mh bdbhr2toS3Q^gky5cp@u~LC9hFLPe(&7=5VzoQI89HoZJaNU+Y%6bSGa5~1Jqg&ElvW^}-gFmAP>vx))xy2PN5HDZrS41SiuhSgA ?dVhTu6@t!6h~h{0=K2l!q%1cCx0H(9DZ-^HK&l*A&6R1s+jMlTm-KB+G^0w*LE?3gr$VMYRW35&n=* c~-J98cW%t!tm!H(>b=+iGULwh$>_#t%Yw?$SfC*Gg8}G5o5tt9;dKX(~ANvp-W**T2npcys9pj3AEN+f n!A#Xp~3uL1-;T0U>KSb6@11en~lL4NXm2xF$0G8CBNtPyxE#Wc#c?R7HFflXF!RHfgYFvD;nB&>FNY J;ssC1hDg13ni@l4mE~r%Ept>OXrW*Ir$oLrEH~cs2B)QL8iiRuq!SWLo3|LU-Mm7_YUAs*nl*jldRo`8jh1ay^sRcm>R6EXwGxl@3d^ !#hm2+6@)y`)cNxyZdaU+7%aS!>=@yRFej~y2Gle)1wh8`!>qzj>eTwgpXIA_cNXtetu0?t%t_d60mH_EgDfH$E1tE-KP gwPimBxiFgCO`fcxY8%W00vc73j+cdc&k+k;+Q3qFNiqXa%UZTWbH6i&UmX3lRFq1-Z2?y=W#w)XZOU lxNq0Kq1iHr)a_6R?((S!PE`!$#(gOMJWV3Xjuk4{yow+LF|KKc2CQ_0`W(-W@mEor;4fxtE`mQ2kngvHs->nH`>3Xbf5LQ40MCWUr_(*9y=3%+a0P3sCCp;5QV=5pCY`JmLCSAua9}&(vK3)Qy(C+-#;r^ wtc%xl@1nP?~)fLG@|I66wL)HR61yF)L=PPCD5P*bSpi_uRdvCkURbCFIO?APnaRJyr-DRTNH=V%9B1 7DD=zQgGnEDp<=*-`&1O9hPW$VWI#pMG(eC*6$S`;YR*y#gfLMs*AYM{%!@Q!UnGxpg*+@38N)5hc#N-hDNy`M*&q>+- QGy&P7(Zfas)r8cl73)g2SFAZhRF;=kF{zOcHY-I$ME+Mtiop4x_JGr@}t^YKCE2>ix;Y#a1!d ~`H^xsPzqP7Ys<_fKw`P2V+4N^Y+hm|}%ur%{=pRyH)>VU2Yk(XZWo^f#DLqWcmmy{7M5mfzfyxg#|) T5>mwIbS*B7Fz37I~8`9vh`|rT$DR#!G@e-|5G{py7FTrLQDdwH%;08)2I1cuqN{=-OL%9i}}go(LL2CVTZQw!L(iPxU6<&Y&qoCg>8tL1bvu#Mq%iG5nQ^X@b+H6bnH)J~fcx||I#`TtN$0 |XQR000O8W&uT9Ocs5dyaE6Kg$Dot8~^|SaA|NaUv_0~WN&gWa%p2|FJE_QZe(wFb1rastyEiY(=Zf% &#$n8#1d&lg9#ocrJ{^(RLTnK%6PQg@v9-}%mkm$i_ZsGah1DN2$ t&C-G?1&VO1>qVaDz2ASBU-FGtnRrl_qEe!OD`2{jpe{Uu$M^kCP4Z4b*p~5vtqX`y>lw4Hz94HM3KE kmRw!`3s|}FU#wDt$TP%v)tx%SMGVZORmJOt$5b_y8dLIkI({g7KcNwR8SA#MVLyG-&+Jvtqle @6aWAK2modQMO>r?raj#P007?#001Qb003}la4%nWWo~3|axZdeV`wj5cWG{9Z+CNFa%FC0WpZV5E^v 9JR$GsvFcg00SDg5S2}_*WHxoB;9d?JTBNN2+!8Hv^(Pn_MZ5_vdzik08i?>l85Xw2<<(wWcW;6w{$w {^VlID~Na0O=JEWs8G@!u8B=JG07OjLVA{;}aDU}>WgP26b%$%*_7_;`) -K0#KS|C@_c3o)`zI=lL&2ZZQc{Cc0m+%d92=koLoDr$K@}lHu*WFiF7AZ+M%tDSMpc#lIhSCWKQrs6 }Y(oQg*@71o>L?z8S<~6vX$Klto;e5#vgYqtR!ClsRTFkH>@BV`31;178%9c~LXint-4RoERRaARQzr 2~gauq|^u8#%q3o4)-tv+dGAgQw-Fo><101eaYV9>60wWy}nR|TAgK(Vi^8hMSr|dhvccDDdiR>OdBJSg=uKa )wPk&y#~8BAL*qsdb>Ic@$2UH>K|w%~y<5h6FY1b8RxZ?rh)-JSfbh^Pw)Abwr$8a@h5KxBJsUz7vf6 !EuZKx4iL(HE!T~_FkMb1eZ;>ENI1qC5D $cYD7+K{yNNZ+9}5gNJ%vfAn&qsz^`3D$UMM;H|@l3UIUJP-Aw(&Uc?2RCqd5yd{Y$;#+DqeD=ndN%) ek?;vsf?$AN*0QKF$iD8xvN!82x{&q+$1yToE$GNt)#{g8l!|{_=vf!!3y-@Do`#$CO!lEco pmkw99RF0yK69@->43H|U>kf*>L}*99)v^+Un2KpN20=ce%wP)h>@6aWAK2modQMO^3T^d>_E002x40 00>P003}la4%nWWo~3|axZdeV`wj5cXDBHE^v8;R!ff@H4wh{udq4?W|GM$8(z{#6KM$~ERPV9lb9fDniu(~&~{1y$wl>3MEi+TI?!>ho7$RoNcoCS_4HC|r? ?C}J|rOzs%h+Boi{(KZOGv0MZLw04tB>S1lU<3!H)lnDG}H&VuA^(1~rid$Dr#zHAuPvVbA3Eg4w2+U |M2!O@d`Qi8$ymp_BR(QQBR$%|iSNVNrmSmV6O1< rBh^I#xv@Xe}PQf-6seYy6wA@klyhGaiG9A*);tN3L5lr~jF;5>o>joudJSh*It#9F&a&?9y-2r!(_t d-D-!I`0HTA>HhX(ZXwl4~0rW0%&901$MgCo|#q2nll*YrpQ|78j}giJ%{JzT0l6FJ-F0KPvpK#M5Lq ^P3i$pCT`U8sU8@W^w^#;3gCA0LQrKWX&u%>Qv{dgzR-|p0Kn9m0rRU-Dm)@oUIlJPrT_`{U?5WxD$F4u#3^#%n==@KbPuG58%wAiP5wh7No2YKO>XBy+a $?ruv=FyfQSR0f;!zsUat+>@O>^7_J^li!PbUexSaus=5u7BgY^(dx)Imx4msQbKX8Uv&;g`@5;vfR7 GtJpWkS40D$P;dCcRKA=ouLci){CD!S7L|=nA?lRys{bb@kd_lSatx&D)HfnrRMTQdLPd1KfZ*5Wv6QLxDxm`ovG?~2qkwlMMPc2~@S9X066gvYuBb4@CEoEvLdS|}$WSp;fVG4b(DT%WnkN lemLJ8Pfb?G64p!xO&aI~a05JM>#~*zNVitH`L8He2B1Th$-H>zPzoxbn$Ri>=-i8wRi$dbRkLAL54f yBTaVh)*G1tf-{8Qf4d?DkaEfHcRgMG(KI#rwh1Am&GRZVaUOPIUbrD*5A-BYc~qt!Hb=`2GIA|Ug5B LPD7WSt~;>0G*KtDM4GutdrhZ5U5=BbAoJ=PuymxrJq4tRBF$60PWSsPj3Nv#iozZ>ea?p|@4)jGy8PcT#EpzD4}W>`(>G5(`nEj!zMOttPJb+qel4eemq&k;(}(5s_a|R{`uM?L<@C#P`ZJDC zbmK5WN=&_J}eI(gp1rxSbNhFKxXTO7tcNV^W*(q{Lw%EKK|kdLjMfV{|8V@0|XQR000O8W&uT 94r@hGjR61vdIJCe7XSbNaA|NaUv_0~WN&gWa%p2|FJWS1E^v8`Qp--mFc7@wD^}r>NF^T-sR*dVkpt pxIqrs-CSJ?lBKr5NordtLgbz{d+1Z^LyAL#h?hM$;Q((Be-xWn+MjazOSu;GL+hfq(h?PKfTY#*xEb pAKA_r|4Ivo*aN>3rvAbj#-Q)JR3F#->o<%0piMsNfUaSu#@?<@>~UPHOJD`H{id|FR6ZNFz2rh|ZN& 7fVX>&uum|ArG|A2Yc*6sd(%%Fc2M-s>~>!DP_|FpFGxZeFGiQxXzT0yT$#Q)OYJ)wZ7U;QkEtG`4}7 wI%?)n<%t_8l}b!?wxm>9gG6F(vHo0(ml4{s)6F6z>1Z)AWWVn8rbek^O&>MyWRkw~ FQ?HZQbUmoDI{Lis5Z1b+F^L7sT%Pl4B*9Bdu{i`rn&IvvcttopsnZaHZ2y{t6|KI6l`A6jkP)h>@6a WAK2modQMO;ez#o~Yn002}d000>P003}la4%nWWo~3|axZdeV`wj7Y-wk1E^vA68f%Z!M(}%n#n%0BH ZlSALq9|{D!NiiTOI;RRZ-;Ii#N#@zhrNYOA-IQGy7iK$p!9EA8I5>?46mN*UoEi)io92f_0*4%AWA5 Z8|}g8_Mh13fIK0<@MSuy!`FigZ%V|2d6(hdh#$Oj{uRLmntLOq&Au`4a^3w(IFYuRkZSD`eE8G(;ux^Y ;i>M=Dxl(2nDp0m188bF%n`8n&irI^j`mwa76W@6J6Br|$>9hGb)qLf5S;E{FstK;j9h~CUzff@LcmU |FI(;{@mi=t%s>%0-7sQ_^{Tb8u%iA0Qj6(&loD2n77p`^1slk**+MSW!0&>APPap2bzMtBqKWFQ@~6b)dsFhe_`EZS6a@*P`I@Qxn2dIA`ZmzEYJK8Ir%?Dh= aBKJ}mqTHu(X<4b{d5};{`x#kzFRv401WD4JJdqxVigIYbr`-VyOMmx S>!mNR2lnXfL2=-fXfnSETsomsu&nfSj=aR2zxn&Q!uIU!&zh`H1m$Ng%dr~*TSOs;+E?c$~tRNSN)6 dP(P=rBPlIOhUBF|&zbgW#Z6aK#-QFs8NG<5X^36HV%@z9%{H@&uQ{RV(hUI%(B9XYIrIOVV-65w15g 3bji=qqXHD;_y8;TT=n@DNl&Zr_uS&NAFs9L)d;Al@7L5{D$Uj3)LB8wacSS)K42jL5Yq$qF1vpF(To LqUba$kTg?@1!5ls3dggifgiEUStmCAbQ7lVM(ZRC_bU3}=Qj4GT*UY6G;0%eBh!b=;$`(a$QYR%;T;e ydzW=~VF3<}ENU-(k$CQ}JASWx=N)R$XI4mgYoMgP0ZwOmFi@p?{Ua>BpEZDi8=-)pYrHByJya~f4U{ PTQ9CqBO1v89Hf;+MJ{qvL1CSy`xQ5<(q-F)E)0Fs!uQQ)YU{DMoQT(9|x#jX+dwt +f$HBqFy06{KWf0Yq>*|BT|phL|TN*BlMMEBHj^>0G~0eW+X6&`m2)E@z?J+_^)(I!e=sY&1NDkazk- k3$!JLSk{i!)-}C`AGYXxj53ITy;CwGuJT=p;U6jKKZo09L!P9p>p~j-;lFWI9@3EC!ehAouTU}be|f |OIp7*aX$1sBhD&%e?m^s>AXY3CmrTuz#& W8Okxl8tEpC&61e20rhR0i@cp@>UfhGOzl4N`~$878Q)|hjU$Fd#o<2#uS*H=pIh<~I8CLPJwfTcXBB +X|^g;x>{)H((qD!PYO0D|0vw)Ft{YIXG1_u<2V$161x*j_!k AUS9$IO1s+e{&E9BP;CJ}3f6XPNpU=m@v@>ja*h|0RdWHaIL-!ETY=Zf;KDsfGbg`5K2mc7MFlU}EcG +n$D1&8_9-``-g0yP2U`kvcXo5vntLwjKEn;yk>jL^OQGX08^Rj}|5zL~;UBo$#Hc@s{iL4D6_!taLDlm=*|4e#Dgm35N>*zQ21URi`A_D2h df<4k4j~!jt{OFzM)$7$ZB;|sZIloy8-YrC-$gb_VUzp(zei7v^9qsmH}%XXMv%PWiBX%{)-8fqcAnC KnPi~<#`2FRh~z(rfWO8uIK`y1&9RcOVW}`YI!@)FJPCZo1-rF{-M)DNGRkL!>#8Km49% r4DvUO9KQH000080A>M2Tpcdy7qbTd00|oa02lxO0B~t=FJE?LZe(wAFLG&PXfI)Ib 7?McdF@&2ZsRr<{_m$?-9J)mtCr(j?5;b_w9~}^+nHh#6lfhoP%PRbM3w}KPU_vZ&$7?5Pu6pec(oNz (H}*zC=tZs(c$5DE+jwN`L?cvWP{?x*;EF&e&DhCl1>-7<(ic@fg%ofQX*;LG8UcXz{N`Saa^#(c71!_VOVm&0F|Vb}wcgVs2YzJ K-Z<=dNAgI?I{^;SjNG%UFWD7V!EF9Yj$IHM6T^c`<@g=E#55oC#q`M-I_8Yv)n5dtRNx=8bKhGOswg eYq^VrC+^fLBZVu4-1D?|QwAuNeg>(X$0@4}wP%glzbQN!P+Uur#P|)j*aioGdQ^dkd0LM$$54*KclK LzQH_iCQPF#inVEU^BC_0B4=CYe+0v!^#3n_;_UFhnyFgW5vM3@g;_sNsKYZG$23&4AcN45^4ujOsgi x06}C%&jj?DSdw@RmAXyk>OFd|iY{8`WtKziY)nIowUMci1I8gX^LA*|)M*)vLZbq65niLP5!J440;` d)TRZFvS-w@hGw9_qE%KETOhB+JGcJm}!@Lqla991TwPXX`v)j kl+G-&?@8Dol2V;Bfhed3@|eMbfKTAcOK&LL`e@}kI&T$7yJ0a6`ENumDKlQe5J&`E90pWd;Xk_$Y(f 4V2x>6Y-F*Kjg4$X|?0a*Lu-5{%Wi3F!yjCEG=C6w9h( &BHk1jf1^DkM%I&K*)c9y4Oc*=jnzncxc1NVwWp~d<)RIK%oebPNE_b5rjNCPSLQH@G!TA9sOGh$Ytt ycrDkxGHSZ8qI?xAlPbWMqj#Mcp@Ziyr1uTyuad|c|j*4(yB<~)#qKT k%C&MaAY(%_cq53tEBpTfbf8k#dx-iKtmEo3;JND(+aXwJ-&M$Y~Ge+JJGJrVC%yb@(|G6&pVG4`=s+ 9GrO0n9Tb2K2^l=1w-PFtinU|#>rGh+9Qg?ROsNgnJzu4}hO;O5OG}AX?>VyFoR_kL$Kzf&XN%52z#< IB=jQ{MLk0=zh8RA2B5KY?-7&^uO!UcscLG(oCvrmSQQlW#*KNz=Qi5G0(f-gyjXK8@A~ =oB4(cui0H#5Vo-dY J*y){r4LvPQ2ned)Z;b1#iAu3T|Xo)6t6S_n9p~H=-+v+}9Y<61P*E$!_erkq3709PV2u^|5uvj`sYP Hhs_lHgk*whj>o|#&%jmrNwn>{AW4^2jB10#&+oZ;4eG!kEX?2C6kk@KL_k6%9N}B`5fFo?ygVEC={xBp!S9HZga|{DY>}!a{TVK^TBMt8Is+;O$$# X6CQ!dDym|fBy~qllX2Cj}A*Z4{)jjIiA_ RJw5}}Qh<^aDTnAo~*?MF`nf*+uEco;7fs_((&9>0fvDg%sMDmIUcc(xo62!%=iI#V{4{Tb$~w%cmxc XKTc1jh^2{8sF^=X4_4A3f$8edps(Oz2cY~0P)h>@6aWAK2modQMO@@V1jt(i006%X000*N003}la4%nWWo~3|axZdeV`wj 8VR9~Td97AoZ`(Eyf7hotI2a~niroPP76@>GrS*ocNeVRW`d|c(EKxRBnlwmiiC6S}|F@Uz1MZXTNJ< tdD_slBfI*SG`|Xu*J^0QlhLaeV|ou4} }#IPbnQB<&8DLBhz?7Jk%BEa8hG;*#~kOO*{mat@^cmvB^jw4I*rCcdTY<`OVKp?J|$aRvzw>hhcwUM zW0)eRPr)6(>mSjbF$8=`5TS3v&@sj9ULO49I7B=W9P+qWF(eFvpVHoT^!VEVb$$v{ry@nWhQV>m2Ak u4l+zE}B5^ioT1t&K*RqAx0gT}Zsd9{YWx~l&buYM_ifx|FZBC`2w7d@9v**5%0>Dw}HY3k=t B=D)O#BybR#Mcwd@nru-gy|0VX>f`>ct}NJWW`Y27b@LIv@=ldvJ=bIygH{Lr-M;$}~rpTw}NzW2T`o GdNJ%#C5Ah+Beb%(I;7;;n)WB)an;rxTu|)0Eq2(3J;Qy!~`W0P#)t~YB72gF6^dG>E6S(o=sgTi>(6 F!b#rfGi}zycatPriEc6w37kAKT6P*qqHD>a8kux|yVvhs3U51|_B#~%T@u8Aq{VvC^nim{faW6W+Jc KfmG%0AGqjP;?-N-s8J*?!hdrCoD%dIDLfaq#!W3y=9;0^_mLv^;-gDhp)BM^uoU0#A_g>8cupK3=Y` am6r5TQ$3aRJGJ8&3WGx(S&hLsRy%YYa~bTlp_NY7r7!<2rHl|>!yr{V~cCo4V-CM3P&VH3#xbHet4N`Xrs3uBz{H=L_(Mj4c2E<7@CFV1N_ %vw4fN?q;lMIzAwvxk3&f;7|L-tL(LC3JsDJ8`Nn9%^aLkJ9vi;ID-mJtx2oHh=Z4;$B#>R>sRJIa3W F7)UwWGf`F|@6aWAK2modQMO^NzY G7On006!z000*N003}la4%nWWo~3|axZdeV`wj8Z+I?ndF5K`ZyU!E|IWW+arvNQOdk;CRS;kSSz>G= vgBHFTvs&?Cvr(`a=g3VEhVdQfIL3*Lkl!PNu=mAX@a)tD+QW1MO&c%3;&YN%-&=79u%cI?uQb#?rwH =<~OsmGrM~?j>9RF=aC2|OiZINmhAAsoxZz$tH1r~VDDy!4J41fW1n}}u1F;QMS|aIwZ_=jas4oivc7 ol`d%ViEipDFbz2O6)F%>=<;E2s4YJ1ivk c|Pk|~;ZEjr1#iU1%ymT|r0d!V_s1QS*kypR!=CL Zsa=K`SWii4v+G}Hdttx}v#_J%B9tC>H|YvkPl?K#d>HWOI&|4om*>^x1$B8*U0za`m(}HKO1_gszK} >r>~=2knLHqJ)e_^Ek0H*p$KuW%iBkdbrBPxrIgy|O=Y&lFb?JF*<>D!>lzg|NkxqFm#nAJ0T1EC|S# };@__OmnQycIojVszu!dQGa3?u+p!8MG-Bw58khzo|c4*vOeOGBT{qg)0MN`65~$t_5#c;yA%E4o9dO KyGfs2N)jm2JgyMa_%48e?)dI6vcQa(>>v()l@8lk;r;DqQnD0N81*OL^BN5E1DLZ8=bPK>_RgrkinFs&h2*R^~MR5pgjcH4MWm;9|z-Bb)}sY^etEpuFHnB0dzJuP-^ qsY{Q;ctlGO3JI!im<-@PC}YBQ{+*dP^?V!`lrB#^$wncl05jJb*+URA4HL-{F%`b2;xQM4(+Uu$Fs> 8su^5uB0=!cR(t$#s#v{q}{1}9s!yrqMj0Hd>pA2KnX)sXAMwrbTNopV;)yGw8{+->e!Jd1ozqQlfsf h`df@oCCk%Q$*+IS{L@&wXTwz5AGfqYoac%b_xmt+w1#gXyQTanMzqH{%JQ5u+yI|e1a3p0^uAZ8f)v uTiAG)@QxW*}T>(vKUxpD#`E7kRM++ekBXeF%|#^srbUM-gN&pb?v+9!ssZu@Efg7KSQrZBhqfI?T5_ wz9ZwT2PY5o>e{D1`|wKoSP`6TM4K#qO?l38zEE0Y?oukvYgjL5!hsPDK22`P?S~*ko>7OP>N>AvfS@ x8^R+CXA9Ig3nbzNmkW4>Rhxywpy+vTKAM=NP&GaIIDDF6s0}K4hxNd2@{1`HBP%Tu<|^IbDprOS-lE CqL94_HGf@q`Y++TielG^dH>|+XYc^s{{Odwr1NDV~G47fHXB&=Yz!tNb0qVPxW{mlUr3oX=k!Fy_9^ wMm*6b&m;hWovW&_OKg=R%kTCv2QfO`3w=g)XQj>Fitl#$aJ)YxOrHZaIGI&1@kZQwd;14VCG?I)AD! Ksu_>eBBM%Ho>Gubjup+wHYbUp|qmJ=2wIyz2h{R_3+M>65DTsU!cpVsGw>>+8L~Nxm>rTCnk-$}Tu~ +@hs^mzJkJ{HyA}b?y4~Yu^r3(z713$B&DL>(?Hy)6&S6idH3_wje!K@&Os4*{p+etpU!OEf=yi!*O@ ^@7>t#(=z)~$a-HPvV(8j+q&DY!qJbob3w(Cvqmb;r?0@bZs+1y8;LpY)h=DzhQ%+Ii}#m{-z^s(KTR 8M5B3JPw|1+*8Cx#CWO-M0)~~_+TdHyK#ie-G>4>WT%2I$CLiF!z4;s9D5!in$=kF}%|6VTs{?&rbu& xY=)nJ(lgB9(BXcb|VHxCB4@9fshHTVP*MmH?>}#wVk18^v{!ka^XYa4Ha6K1OoB&&YC`1gB8Kt+ P^#a*8bk%*6u+Kmer3-ri2XF10QGn5MSHpZ@phdGY5owJknRfj5lma{faalD{nHKhh+= 2NK_de;Vl%-!;X4lzHv9SKwQ>v%>ym8GBPDT-Wa (lk2{>oPYK-E1}BSbzwfIl>F=E;zKRmK7h3P0sPZQ9}yo+hfl7+w{GX35Z`CZ#m^1gO#zdF|Fi-g{9( xbWmf5abp^h4J1g+NDZt;}y8G(R{{6iRl5c5g{S~8L*O;0RUx{{vJ-^%P)Z$#9WC ukq+s70KL8&t`7yf3uH+dPGk&tH_tyIk+NhRw()i=#6T$tCS}GbZl!#S_ss&HtD C?Q>8R8DkVByTfgb#bY>fzm9F{JtWwMB75plt(ml(qDea*#x=s{}K-v^-wsmwI`Xe@pIS(FUBF2H29! zO`wJ*80QQ;OP`ZH_bsjn o1xn`N*bF(~hN7ME6uMm%dLq3C~&A{i*-{Po>wWl1}YcVHuX6G)m7%$)-B3@>^Xc1 ^a^Q%`!zajY8^IfJK#GjYn%H%a?c!Jc4cm4Z*nhkX=7+FV`Xe?b1ras%~)G+8$}d;_pdl|Uv`O;+NPz!iX%drlt@vKnxH;d)^@WVdz Y?vmYvzgu6QVvw^l+RDwT=~ae3$qib_G^Dt-*D8=l}NaL&wLeMwab0j|^}v*$M7cW&!`#D`#6{aD5kv n=q2A&(^3LBORgJsyZkrB5>bIB+EAzDPyiZ10MCfz($YKwIzfR@5K%S8yd@G4bU0`$F(Edkt{+B2d;<41q3` ;W+T^*h4iko8XU$F9Dbce0)|}B@53Pv;0hC{7vv^H#oFK5yR^GysnFiq+u3~c;+A!JWAD<|ehYk0$c~ IdpLM)I)&T$OcA*WO3gE}6kDB!w)JGS#%o@NM*hTmPFxbfP;~qgnVTBQD5in+|w4szXHqBagvPCELdU Ja_KdjeZzEIca=T@8A!=;F^Yj74e$C2mzo|DNo&)2nV^ZfRvmVKR%pcmOk7zhG_e=wg7Ss+CX28<7xj 64T~YllqaW>!-(s}zbd6WQpBRl3C31_&mJupB{6l^qdH0)6?&P|8&a-F*ZOQ{x5;(1xL0Y8>g4lbW9N c?6b_c7(WFEa)Nla0*!^z04XZ4eiiy+^7Z-rJGT*xdaVU^U|%Dbipew!}P#ZW<9)tbm>wE6mlsk)s7G fh!|E*00&Xb!0Q7FqhbLN!a^gVvbF|Xx-2^K1cPnNZA8TrmKG=$Nh>R%P6vHd|0_v!ySy7rX#-iQXGm9b4hfk9Vm!2$iA2b{=XR%{hi=>G8H7f%pVKautM94e^I+*gt+DG55&l0y*> 4a&^{lU9~J+L-WeU=vdsn3bB-88R`2)5F=+p-zRFGnEPd6#xGd4l-C_4bC^3Gq9H{!2B<$E7a%E9?`> gUZ)GxjqL37qE&5{6bL#y??7`&%3ET>)JE2=r}XBNwKqkQfpemP^BS5aaL0*54+%RQ>uFFhS)`0ce8| xpW+qPh{GJ+ION~iPtmM6V9H6rV_@sg| 4Zk=l4zq1@@>Ks2rhItekX|?QV`xzi_uTt(e=H4OfSj21+01mu#$)*Rq8&2-?C@$%0^IjU-v?6kZa48 gV`=&fw@Fk<$#LTbDK#z{Plq@xMS{w(JUZB61H>bEHERO;hdmiqfi>LcF+ypPKJbUt(F dr}Q;9Qp%X1B2<#vO)?S%_L=4O4! mEu|He;zzxHZnG;$w5LNY_?{J?x!9?f%JfVfy()pMSXox2IyQBPt0nIG(HIlKj&Ns)1L@(~$dE=9Czc ~`;7Wzp!Ws>^p!C!3mdH^d;Z(jdTnGssjj&R{vgu9<5O75d^=XOjqF@3gS;7~m-n3q4xzROAsyR0=5} _7KX(XTH<`g3fG}q@TY8DWHQ+h_q8%ZULhs#4%Awuu$d7)}jsBBcR)+(x8)jJa{A$ie;J{G3R8x-Rx5 #U>&h>>$OEf|hRbw~v)(h8;ou&?90hZ+h7MPO=g3zraFKTt^~D@dRFy@D4EL77iX>jsh7ON}I#AuGCJ 76O>+CFY`OxuFmsIo+6MZkqI~Bn~C)+9G>tDs*L^3H5pv(457k2onzPRR*STgLKSV3-$`6b-@!oWr># Loi`&SHs52iUQN^Zxf@ ho!E|KxI1_=iXi&6E?w5*&*ApH}^S!KIu9_)aj85jiYt9pV9y&#pGDvxprxfuVFY^$Yw!Ty{UmV$;YI WspTuclyWh#nP=*W(W9n+&iBh?D*A$_HUjjL)|L)!~1tJ)M* J|>5UUXULNSN{`zkNEncl`AD$0tACpM3Z2$?-QQ4{uIBIiB2k@7etiCg0yaIllY*&G-L!@FmJj9)2d})QzJB`QF+IKYc=Gt}pTFFh-2V94&kvs6`3&Xp{N(u2hV`eY|fZW|kNq!vbbS8Rwdira+dwRf)w!1VdL?&Aif6EVfYn7#2u}I@IgD0T|vh__+q `@Xu<1*QA_1Md#xP(U@SnZQVk*2Yk8E5-o5iT~8$BV-*O4fSt`d@#$44(ab`Rt!xzIxFSufnZdUhj9Y ?1VG1vkyG##X$$TFd9g#(gO@IRmr;yn;0(OI9BezmxKfnC*#b1884z4e+etr4s;+N q1=gVI&Tdip2iheG{H)5BC>uq>0k`&bcL1rxhpHtMY74#Z`4)({Q#Q9jXS}mmjF-H@3cX3#((rhc{bK %`Z$#CES&LR%;oaKLW$P2mkm1W!KMBMYd*NGJAN&pvP$UcJf09EAs9j+&r;^rVUyLlJpv}m%n32@LSf Uz4u1_Zgj`pf0B*T1~J0?3dcCD$XSvXmm`!^#4_H *;o{ai7rhQYgMjeVS5NCq$^@PV>iHn!IK2bFu%oB%B|MJQ<2GE&qzC~rR*=OZL;@4_c(;iPoN%V+XVH 371e%Mf3ub0!E>QE-@40ZpTfbi=PCWJpF1X~iKXgYF&;5}L*1Y$}rFITI1WXJdbOA~D;b7L+GB3mI)& QrLB8RByo(1S5pl?qz2GPPSrQ8MiEw3`d5zXB)U9M#o7{Ze}e1PyX+tx%u^OWy02<|~Spe+IJ_QyVra $0cMYhneL91iMBqDaG`y(D6edJRj`fFr#!%utIGlU;Hd8odn9nwUX3htsAJVrSN{I8GUzSx!vc3~g?V 7I0)#RSgjs+k)a+qe;VBG@#jolo{=}fjy4HGm8}@J?>cmBrtX~#XD!}$PAhKc0?ONv$fl2kQWg)c0nl Ycw%{C@F7YegCbZfCC$QQO_OJ%Qq05f43TCA5>_BezH;e_u|1?QX`E-GohM5VkSVpXCfWpxO_&v#+_M u-Mz-|EBXH2ai+;H!lg8E=uAssZhNxMMc;%bBPkKl9EN}F!)*u-#I!4_xBYh7t8qS{1qRgx5Ih}Lp~U34wrro=Y~a|0tc(6Yl$>B#h T@sy#m4FSCML1p5J-!~Q9yh5%y@FV-x6Tb&clJ%LwIgc3-)|&FGfaG{7@x^aD&)v tOoA+Zk>M_5hGCN`%gsUfCU8}jW~bCzg$PN!nDC?2%s!_AXy0T_<)S>r2{s%Dc|c=F$ubHPO~eG0P0D `C$d!nnW{XY4JPn6ULo_mKatgA>$kF&Zjh8aXQl3>wm|?t4*-R!FWoZtk$kIDftx1;XsT1bO4(Sz;!w jj}qF%><)y}rY!J!W&~|$h%y~Jpy>-H8R~xuqOm$zcSMf?(*`%`4=gxXf-bl4+ &n*Vn(5^ZR6DGx#5Ia;eMBA&3{AaG#jbAgqsYtnEH|cB}<;5WYr)Hi^9xXO75G&xoTAqYA`HkF@k;cu -lL`l}sJ0(jRrO&?`C>Y?oVNn1x+fWP>gFNhaMnBGHtZS$W70$(mQu|b)%=#RwP+Bg7%-`N56?fVf*E _}Iu$!a-*JdQksg>dSVl&Mk19?`Kqr7RC4!rLO#zGvxK#kuW?_u*zLOlvpw36Cl1p@DvZbkbEcZ4CL* {{Drt}JvWf?LD{YoGzS?s$(NGot)@?8m;S{}&|6LrDy2x79H9WZ&sWDVo|3^!*Jc76tq9p_@0%c${n9 @N~@-e8bsmx>|=nMxRnj?B%K;z#0?C PB1kPV9f|*pZ9AZc^ELGXBJis1X#?f9TjRI&;l#QIZstVfJLm1dNx)S1X#rC$X0v}Bo8Cn4kKIfH4tD ;2xP0i27HuYmw-N+4VJH4qdE%&M*X8VInMRa^Hp5O^1}YU{oR0xa&j*t)NQ0E< {1+q$oTAX5;lV_Ww%5MYsM$F}ZkAiyHij&0r7K=Lpn#~j;Vz{CkT?zViwE{ !_m*{M>$r@N9j9(09vsdFTE22x|ca76WMi%jMP6*KaO6E$s9DRJQjmas2Xr!jeMux|JwPxr&kq1ugr$ *i}8p4y-LX0(CE)r}}s|vIyh&K)@*3?F&()ympt=(k7xv1#p3;>EGIv3)O=*l+C1MzrB&!xw%_;8zse iQ0*(o{&lM`c1J`j5d!y+y~1qCV;uqGIIHA`Z%i!O_C-o{kqeDq_R7(=fRPkAub7Cd7f&tzX{zdNqj9 X>wuhG-UfJFT^yg8&i^D@sN(dLl-WUjIU%`BV?Xp7onV!hkCy)zcbI0-qA1Vm-`xQN|8tVw`g4@XLjr LYU!TW*vC>!p7%03I9AJKFK>r%VOZ+~tp57i&v`>+4}53j>~`9x|?ifFrdp7_z4*{-RtdOyJTTBQyTk %TR2cx-|f+V4uZ$36r6@l54G#`G4ZasZ909u+Pj|Fp}}oy>}Z;hpcAN~WzV9>@AGz_AM2V+GW^?nTuK zG7Wd*&6r(*D!+N)mV8uqHb!=9Th8M+xJZR2B+!}_N5xQoo|+Dw~xshQtX>FjU9QPZRFw >*)M|$2nhC!wqYS5o+uJ@HwP$8*pXc^N{lH@VLXl!;oAb58>x;Xx4D)&B@X;21fCu(M<~?H29w!rA2n O){A;M`i)=56P`NR2dPmURsujRI=YG}GF|30wB-dHGPnPE-0}NaPQ6g9Rr3!sD$Arix|JX+#;Fyspkx VqKIAm8cV!-dFJf0P GQ~sr#RNf^y#z!vcrH;oWlxAK|Yoy$6fvIn-Er@(5%yQ>3ri#>5-)?2GNtY%}Vwn@5uKh&}<(MuTA#- uPMRK?W*Ru>x^iXQ4HysrFR4+xvx4D=;xrs3L<&hdY8Qj!#%$052>FW7L7I#u6qW1(&8^F#Y-sh0u9~ 3u;jJ#9)MF|$P3+cv&iiSaWw|K)!Xuk3|dwgQ1Y84t9d+yhF09r=L@q_43*fb5Bwo=IPl({OUsukUF^ QnNr7BtnlXU9WkFa~ %C#{8VE&0sCIjDD85<^-)OQsCChi6jbl41744vub_au?Pjag7$au Sb%J91Gg%yq(lnTR2Y@%1sWDW|z-GByk>)?l};ki5KA-?aab-bGAtF(1Y+MmqJp8hucm`8t;^L}qIY8 zEh6N5Lvg4xT9?5I+xeFSQ0?5t?KG>g{sY9wRL8QTmyP<^U~BR<&GZ#%`H!kh~ue&cZuwWJE$lgcrR2 P){#MfIh+?i%AW;R; j5MECyK&`xavcMkEJ~Ll=Br2@PrMpygOPI1V5+}B)YdMi8h%!u{J4V*3Y CB^G3?@^zSq1OnW}wsZN~)<38qOtWdGckkZazD8$XUqwP+_=*`*RyO1d`vGKJNOumzsk}O^-O=6v}FEjQ1V||FA@nY&WF@?#Ju9H_huC1^7Bm##$t9Y&bqbxPcOm<1>EK@fp 9X`24Vtv`p`kbrvqAibi}jac*Be96dff*K^GgLS1YWDPCyu_q(Xrh?Rt6f%?r`x7s8wJ9y?Y#Ew0hr* >ly!pR2y4X~YjK+6CJ+z_+R?&c`(o?s$J-|^hQ@x$r2RaAO9mVvBw@fEsZY|K&FV@wNU{O7JA)&L*0l|kSTORKNjCXZteEk H8h~Xm~+vq6TwgAtk$2@uqbF~DuV`I8psTW{RTR@eCT8dU$|nu6tV6VeRE6OX$obXrsJ6vYna@_gFqg A#P{Opjf|!ECovnNcJccU_?-d)@{QYHJONM}kVd^44Q>|ARnth*;in2E2A-g$c&7hoO7u`6L@uoqY|1I$_4-j!KMy|4{^TQ(|-cXs!ozXna)6!Ovsj4t ~lLz)_#9D#jQNoTA6WLfn?OacEmSJBk&^OO@dZ!CWQZcVNQxB39h5&VAJD 8(An*cIUaiK|uaFTc#ws?r>BG`kvVwM-`%+Ze${e)QpAP-zI;0-KlZxFZblRKN^@Kl=$6h0OSdBc(ek U5)5trLr`(M9eB}bd(8Hs`^Ymv1su$-8XJ-+F_r;P^)(9%7IF|t{iatb^QPOY){1>E9nNfUecXW$y5K _;Yqb92Q_Gx=6SG!>Q~(*;jhfQJUjEjZ=lY(qw_(@ B{Kh7?-=gS@?(igzsov?2~J#M>fejDTjfT=vrJBZvcmU2bi{3&8dJ9&@d4ewc2^TYLdkvASX}8-n!fG e*LfqgeXW}~a3gwc+QUJ55x5eY@pf-tW*nxv0F9wl!2x_vc;L8b6BcIW!5Qik|D}fG_eS*;RjMdU@BD I|j#zo0?75#oZ?y92TTiX?t<_MiA7Av|u4g5i?0eid{MvG~hO?r4y9x6r2zY;j&*tvEVjSBEPR40qTm ?wJ$mg#RP@8)3YLj*8&0wF{Xt(|wP)h>@6aWAK2modQMO^(2dET;!s|sUXXfrdpz2i<()*X1TpYQv#6~Ry vATvZNK&%ohiVb0@Ew>`Y6?BT&o-I>o5uSru%mBIKFP*zN{@u3_iuFTK`?jmpAG#MEEAdd|ACxr4-RQogg^oEudwD&}W31Ji6@k)g5_0y5MEhdE!8g4jcJMaSA@0c!Jc4cm4Z*nhkX=7+FV{dGAZEkZeaCxO!TW{Mo6n^)wAUqVH8pUm14X8lSY`} (f8@jw1hQL^~%~rRGRGYNuf8RO0h@>t~hWQ~ebq+tC`#GYIT~m=mQohJI}BYtwW2;b>K$OFiRF16Sv!uv`a_yeYZkdvBJh`(m(VNgatW#iP^tsfLNNWnGE|(&z8lW^ V3rlH9YV{BB2f1)vrOHWI{~~B<+1z<<#F8ixNrpisD|h89c8wpPks9Y26WWl%<_YH1Tj~uL&>BB!OOm ?B@Kzmc17T`Ua#+jY)ke;y1^vi*_zaxDU1i)xmjuE+wLUIHvEMA)H!h%8+M;;$!+~a>b`maA)6!lC=T a%tEdlUuk8fZO*RAmS5c@lk|8D<8xsI`f94RAQgpnqEP$%up_LVwJMu?UbD|o;diYat1u?xLcP5f05| F_k!N`On~Ib!Igw`B5RQ6Q{FEE}p7c a@FK|&-B>873*9unsfCIaz@ihQSgiCrgBh-t{Gjvu(IcbuJPn`O4b^9t%GQNfK=w)IvFDB2w!YHycAA KD9B^#GIc(N3=<;0cS&Xw(j*(4L-JhILghIfpd~Ml>0AnW9KK7$FbbD=qL^7?(yk8#4I0K&VC|8B+4(Q#Ovv>+z1&7l*@QJMBPFyl8a@I)@A gT&#gwnim@_813X?e>#bjGfGHc`!QRjSSOdOM<^v)tXkF<$0GK;Mpvp!>EO^$b%(9ev)eYAt3xi=Zrp &o?zcGR?I90AF5TNH!^yD&S0?qE9^e&TMXL(1=>qq9sK3mBS*PuNt#qZi|0!`c>BK|Ca3j(5-!b33?9 a-CSh*3UAgn#k>FsPWMm4m0C^okJPap4VG9{^4w2&&Y1ZLdYH}L&T8?DPTHc^??VJRJU}(AtwXa2oVc lU{>f_W9tp<`{5g$S2rpuepT`hrO7g*kk_E_BNu%9)UzKYo38$v E@dQxqj1M2n=g%9!0O*&R7bI)6{U>Z*q=AWtm%2hr5CmF}gi aQeSEuMwqD^HQMe`_EE~M;&nT?L{K7r$!&r);Wk(sNG&8ZUwwJkOa+i%iH4*FzhERnChO& -B!v#JGM&4kqRiiyK7!RO*Fuh1Ya*A@#%&kDK@zHD)?AdtFdy0C5#h5wR;TSbWB&MtYo=4I|aanLo^f PlN93S(H4M`yH8yeG`70L&;f3lW93L08q-8vT_{CsnKxKbze~QjV!z2%)On#CePE!sZ+_d1slc6VN#Q QWuZ3uK0wkW8T$(=K3%L2*uw3Ifz4!=Z(a}xvrv|IeuBJME62m&bBE(+xrjYmng>r)zqrDt`Ra1dTn0 A6L}P0(C}zRUF}?AY%P+m0#27UAK9g(lRC+lk|J$H?QAYgeA~=2sfT2ioo=d+;4foK|o7SXp?B4FDAv Yb!^SOz9URm>|A2FG`wJe~=wz#$Q+bQWKW|}vPF@wR5Y@h}BpGq%WN@g?nBL12QZ!YwF;wv+(SD^q>- (e0F{%xxBHWVaDFU`LOKbkQN{_eJ0m~Uez8+GVw_~Wf>nz~kawOR?h$*5Vy ^Bjk%b)Hucp?SXE;+)cU>{PKW^iUA;3pbYy_9u%*8k@VHZZdbTLG7E#QP>bUuD^>P?koJ+iBk!9yr7NT;LA@Tpl>C10(Tee+3;(KhE3i5T4t|1?TwllDN=KX7S0#$;-u|_ek0acF{$gd?7^ wydp8_ko<}oV$6+|x8yzAE^vA6y=!+HH?k=DUB9A-S@)Q9XxdhinJn!vdlXwqG~1SZC3&*vc)VIIvMF^;u{qsMO ByZhb$`VDh3A(X)B`}_(M?KuOwK;xTDHh;pa2vKg+ieo#pSZBnxt6N%Y4#o74);L^|$)Qd~GhOJewAa bN%3-^Wto4R+X1Yb~Z`);qEsthU$0SRN17t%$tjHN@b>5lTGGXUFWqfYaR`gS&`3e!MrIhb5RO^)7#l *|Mg0=XtYK(DWPrN$)P2%ej7$*OP3?@Ob38b 4aWw|Jua#2k9)y>il{o5+L%um#lVe-11uIBvxL}4vI%O)S-r>UlJuIu%;67|_X9OB=TzrEQ@Uwps!;y ?BezN1IGiyQj#BAd^%vw2RxUKW#vzU`|)+2^l{y3ya@#hiY;&X&+B{Wwrvot~_gy3XOUDawT|`leEYo Rs|QB)@JK_KY6X 1Jv@57donZ+kN^4|KhrRvr;Ae1BtOyb=jFL-b}`K>LmSxKi9(2(!{k+YeuRa%S~f4v7iP`Dk0JeeEtc F!O-pIOzJMRcH+7R=4ig1*F-@!UGgETWROQ^3#h?5Vaid@D!H>UYRgoK8t_WPeJ;Go7s-Bd~+#PF*&&>NO&rQ{1{H0&z=P*$7j(+Nw &5d0Q$M9oFe=HNBGE=9JCK5FpmxWr+DJ~OT9wuBE`TgA*}Zac^)c*$H9iXB`TUit(5R5V+c^ZeU9YZNKeqQb oRXxe(EzKd6Nqe|BnFYs$?>o0HL{7nr!)kt`8`0DNJgX3hJJb(U0@b=aI!5+SQ_H65i{ezc>Kfo`wbB +`4 Y;m5`#Na-=wRLc)CT#cMyFCR~7w9Wa-c&bKE5o7ERlH?QIEq4-X_T38 5@+51T>it%JJ;|4f4dEa4I1c!k+vefhlSrfGs`=@yI-sAs&F&o?MVeLH(ob*J0lmGo1<%yKqrKhNKz) 4&Aw#dHLl4Bjsh+BWZ{D70C|%W5yTBk|fgBz|ySLcE-iJal(B6*Rb4Gjn-+h0QezSilHv(L}A0`Vm%#;ukqAwxBvaj?|wQi@c`BxBhITVRtwrZPlj#{5w&6B}r4-eyC)cCM0m% ;nZrdJ0W6xTrdDLj(L8bO>Q)w-AT@r5UlI??`HGt96LiV5`JM|DFmk>R$mv3;&OFqF>7~jTQj?k)y%H f)>Ip}o?5r_C)G+Jo+m%6lr*NwCYd3GVN$AB)m2gF$+y|OwjlGxq=duIPNKN82Dir#acU(k>F!4e;(J 33AaiAk0;;61wxO!2LGsaH1{%zd#PxTK*!|Ag2i_yAUE~@(zf3-6b2ZdbG5e~R<~TtSM3uZ52vgI0ZdkgFri>X%^N <1S_&`AYN{i%c1Zy>5!HvqB3pOy5uRAckaatI2Hlf3h_3n FUr+?nyeJ1B9H`tn7-htDp!KgLd}6X#w*w(O~NChwyUDK==WC5tT)&){ZZnm=tZ`fR)vqp+XN8oscgo4FLhzJGRRNP1GUL6@~brMyN?GxAXRRvPQ{9Aj;U4sdxS_B_;}=M7FV k!s3!WR8~_=bUytoqW@04V6>whB!V!{(7Mg4Y!87ks$+FAMD;e%WRa$t=S}>N6cyK&!vKEkG7#sQ)aBs5~V^-$9zt(j3|iD-iM=vXlj-~~lpEEES=O!7XGi|yRNU8H)Q7 ;02-%`;7G>Y4i9e>Nm4?`qA!xmSzkdlzKgoAr?0ey@eh>tiikE~lXKw+@(kv8)BE3j*HxYX?|fI%}bF IR%uzb-*+WYAsY#Qo%LfJEshm+6ME5JMWm6W>;79&VH&2EQTwA530hh>=yCqgv*b)Vtm-T41jYR!6&( ra`XbBSDWrDM4Gr455=)$V{QR-h+8r*43}%z{du=K_cmu*AAM+SCppNk^n*HABI=nEknNgGvc=S{qrs Y8|G)fgAAsxQkmg-_LOX?k77q8*IM$l^py}fY5rX~3Gt!u&;1Kb)`HV18i78={d;q>*{1W(!oHS)}dJ2p3^mLtg`l}JD!#*}8#Hm$q_}t;)glU)a!$|buOk=bWssCoC> |wkmnD9+D8lMif{v2GCv99Q-m|VQb>ZY%6y)IyGhRS7wXFmj19vnUb&WD;VEu6G)ev|4Fio8ewO`Xmavta(1KfFxs-1;F|=Ri2zSSLm)H@TYx CmUnFIv7UWHgNMxG;fbjJRT+{%!R^vf6RyLmloUBzHxg}Acda19V`MSd$#ZcdFy??*8MVGzuesSzyEy DeRrjKk1S3i4j?b|mxbB8wYN*GkHKo49V6>)H3b(t;TPLLI{e9w_zy(+Y%h-kCR1eVWvzED3D6J02N1 Nz*4J@Ck?SQL#SCrw3)xRE`>bpcX{D~U4iSz!VE`-_vPnGcP5+nXD(%g{5@@BMwzOCF0ZTHMohC2c4M Sx0=Ks}NHot)Rj?Q52RX=f%fdt<~8~?GXM#bTEc>cF#c;3l~rkJ7juZI k55GjOrrU1)da%RR~xJwCE$b?r}<8Y0o;yn$p4OK$$X4;vL^E}xB=CO17Uug89-)hdsFi&yt7wUwpps ebgg#=eR(Oh5a1C>~@D=uM3B9I*|SIu(OjP#H?ma;$btpuo>8|zBmd%}xQ9RrtkRL9gl-s*A(SiGZ7_ gY#Uo#p3BVBw*KN=+#2G;oarY|&}v*OQd)Dosa$Wxx9-t8>F|)w*;le1uCFQ{FA=fj*Ofr76^VA#KF) Tj{OE9X!~$*rA(Yp6B9#p)l>p#NXwON2*Ak1jW&|6*ISWKJ&Y)tIFUm$=R6#rGuWt!~y~hMfNc(&@Lb Wd1&r$QwhvfJ?c5&q7$rpXjUy+TJTa8JDcACEh@Yo1N(@qx*=1l(fS3d>XAJOEzwo20CsZu7#BqVJK8 *?SX|^)(a?pSnrgVqYu`UR*Be=%jHvbt~ Q`LkU$@S-B$gGUM`vqC=Lz1)>B&xJ|pC3-XUax4;+W)&bAnuSk;C+@q*L7RlDYg=*x%h8D!Wtmd0%T0 q`WYc#{f9eB@TA-U7$OFYZh1EXhkB>h1*~C$)7G;(BMR*$f5t|8AtOu&#R*-vv+?<>6#rPCkSRXu=VT yIRr>Ha14(yPfv|fN4J8yfE7pD#8rT0IE%@7gS>1yC9=*7!o)TDSaKmk#m_+rM`YY2x{kZ*#<40`!#` eI$B`95+ar@1(;Oh0POl3)k^s6Gq6D`^#eT{;&)F>8}h?^LAUb3QdjWiKkTc2mV-?TI ?jghJwdy*n}ClV?PoZyQ_2M+3QlP3S~pz??uVY4{T37<%BkJSGcQy+U?t6up$(ual-%#0mT&JYm~es+ tM1q!FyL*%ZTW+)v@T&5jBlg%Qe5fZwsEVEvF=0kBm%#fN>Iv+TT^>YT1{wi+ko=5s&li>*P6Yo#N@c XD$PE?z-6syX|gKc9Dwm&f6kB!Rfd!Dh(9}n2vkWR429@J3J-aj?Efy8iQ*W#Z*#isgH7Xc*xO}L3!` 5(a2a0aK#|GR3BH~f6Lw9K~WbrTvU4qk-%E9+lgVCJH5jov74RcB>MmxNOBHOUBk&*T=qZ_v52Hvm>! cZ9ic?^EfQ?sh!rmLdJjsN1v*$!E3>f8+A@NfI*|2gs}U^bTlLi3g#ic}8EA57L#~nM%!>J3oTclfnp BtT0M^#4d)zId=MJa`E^M2fO{J5HDk@!8oN_Zfg{uFf)diWNsOaH$o!y~m)v^x+MR)qamEthGWgPtC Hv)0>v`_;3qf|TxHEX!NMpuGyav65S;ChrkYE!O3t$jiDxv&_jCZX53F{*+Y}`4w#6vS9OtNWFr$4TiH+Yq3%&%LoX{9;#RsIN+wyVVgJ# @iN;x7aVq`+JO`d}2s#xDpy;00Q!f)|SBeD|M4c9}m>9V-_3l;llz0s?0iR3Pv8uhyIjmQ%GfGpGA<`7gsa5GTr3Pj~sP3JY*%XzwR9!?;jrYoGRQkb*B8Eum9hDka@ESoPLktIWw&QC+O*+hV4%X0Q^TI51puNux)5 }#-O1%+Mx|y#gM}O8$E(`?rU^{ysfdQS~ZGj=%|;0_MRRCjX3p2iX&at{lQ&_2h<4$9( Yww6w>-83c+X&5A5YWl}hj_n@VHz+TM-TDwesSdOEGa-*iX%p2E8}EgXg^=(E3NI#c9PRySjiaR#EEk {hS_wZ7zkX5?{V?cXaZ?C*Z_!gl>lRen_Bew|#XSDG2q9TZAYN_v~*b#1%;XD`5lX2@L7kx)E=z!73` c!9OZd%NSb6mT~kwJWJ}A*wj-O+U-A@uj+Ue7%%_;2x5XDc +??%DvgZ-M9Y@=UFU;|=Ha0xcEB U7=Pa#dN6N@tDa1@3pJr*=a-JsrYt*t$+nVWF!Zc9%Lm9VM^w>?1h2!JBN=lu!<&RrQq+E))f2HOY*(>y_D&UTxbQ_=^*%tn>DspouKD3Q|qaNfLN+GbY6@O8OMX0FdQd(yMD~-HfVQA9 IM#|gnf9>g6n6$c@x^g+|D!*N#ES+xP(d+q#!Jp^BeqPP!rs7Af&Fvu_#kwr0W;uly>1c$wCiWicNNw LP&rReFsMHLET0ThCfqzg_J>MxU&Iv;B%ZWM`9OO$Lncil?bAu%StzKn$f6f@Vi^dJS98S|I61ioq1_&gL ?ZpmDjO-h6v_Hw4tv!vei7im`5et$haCyUdzmVhh9ZtfT)B@(Kf`ZGvJ|_*~Nn)KLNkPpEox${RzyuD K;dYultb;2g3^wEa^DoXTr>lkw@mVSN$S2f}($fG@hitkJTtX;HWJbBzv*O{nA=%`@v*4N#f}asNUMO&o6CB{?>D #9dn}Fi>>))QjlEMjN4LV0!%%3_hNLeWN~PG)YQF4UKlGHVw;VKDqKNp#`6#eqX(4;Btzl&BHuFO^rL |Yv@H=M12x4p-5D+~DjQvA2QxBn_T-gSMofVz<2myqyP%56qWtSO_6ITLfcr7Nih@`c5U)onBue6Oz$ Bq#9Uc$5hHrlRtdN&vSlYtf^7_y-*qEPkz(eWDg#5J{f2h%|sr+5yP7*)mHwalodzs-=WpG#oa m2KmbX07aax*KM9;ij7STtMVk{cym<-Wt@vM)r_m}a14;0SF&p!*dS&D9U7yC2Jqo(u(ns1)^%5RAFi 7EJsq!+qd4|LYf#mY4@sa34-wvb)#qt(UNrqd*eUpEZ(uOv@~XznU46pPClxU!%-oxYntdZnK9eH(lc>U?Y?n!B6{tyw|J8fzJJ7`_L|b*x2L_q~u>$DR~B6zs?8m?Nu(;h Cjk1cI*mF$p~S(3*&`5l7tujy7TJDi^$?d{|Lb(iLo)0gp~wt;~(m+20oQ3!fpG3S#+%ygtIRG7(_1imD-f8(EAiEe?&M?$85+ YB5V0GwuV1_N)s_+;gQ1xU*_&f#&h2F`{E2Bv>$r+J}8gwW@z}s#jTZ4v<3vT*H%j$6XRnZEve?v`Wl 3ePbrv3I_@KmD?D2v%z9txyG4`;#PDLTVAvY|9HYiTHRs27!{c_HqCd ^V&1)=lo$SW07-w5UBXiFZ)$PRXmYt$qXBeVHn7meH!Ql}ks~}mF{KWf%(Y(BJViNEm1h_(B!@VQg{` {VGX9j>R{}l?~IytU5CG3TQM?p)>avaF3k7wuXCI)qm8fK$r15%i IKWx$$3_Aa@=i+2Y*e9t|%PY~@y;i<9&5hvLfPz dqULI~#7J&57q<6f3aNzoYlNE~u>_+<5UNBBd;hqgPNvOvqL52|V32%j1vQInx`Uo@gyq&MBcU^f`GJ iF=nh97eHj|(P(n)B0+i7cy{Cvt5X6tx4fVL6EMchPxIWZx6ar*pVJ9h7sj;3>GSCwImVzcKFnA5Pwmuy TnKi1sijl<2s(p9jSPqAUSao|!rn6rBg`L>?+%$$R7*+ssr@{dKis(st@?=Z^jTqJ=$)THbIS5JKP4jx94qF%zriFo#Td}AnC&8e 8(5AatqbZ3hLR}xLjX1IkFf?~WyKj4#^;{3lM3|5^-i>Dbf<(K=MO=d4g>Wo_TO(q0g)Y%)%+`l+&1H H%;Uq))-F$RD0++H?Gkfx7Z+%h--0L7}Iw90T*Avr0HhryH<^Ut8U)BI%YN!(foE`pdj{Plo5IU?)a> qHTCu>xwbNFSO{%{=%C^UjhqG;|0B)F;Ka}$i2%dsW`J;@3K2>~Xd66Ir86!(vn!U=lad07~vxcvmqc B(Br(&g97c`+&A5QoV=V7o$L(PX|UnvlFVwJvbfqir??pCsR|rsu>w_os75PpG;`^G~-A#X`+_nqFe+ _cZO1;f;AYvae*aKBr5)LNzfj&cuDH+viVs4msF>?p1Pip#%hVw#>;vcydoK>TOOSQo0`xE69v;2eBW41Vxk2OBa?#PK*#dCEIw>!gYB!_MaKV M~i^JD%c2D-dd9_E{H!-cxgqnhBn<)j*X2D8a_zgzxii7AK)Y|iCYxio&zd9B%F(kQOG|jT!dHNIy`U $e=QCXcoHARThwXJ}IGBHQJ$VGl&E)eaIEK9ZlqIbKHlmfk7DA(vz?C`=f#I_A9?552)7Y&Bri%UMqi K%K}C*Z_v@n;OiO7+|eVtOXcZ76)pUtthl{1zH0cvh5fD^oNplD7Jp-oU1?cV!8z6VMB+5N8Txb_q$1 O=A>B0rX)WY|(16|MW0{J%lAXCEL$S&=EQ2PgKnr=vh9=AP)GI;s{DceAG~=8(}zbb6HmTnq?Z@z?=) 0j$Mqei=g-eH!F98l5irsO?12IxLdF~dqIsjIMA)5GM+bcx=esKxa%)IEXu1zFRB&^j58Qy8#>vw$zs us?iEN#+KI<#D>%%Ub1or6S-M1*ma^ueLpI@VP&TvC7^-sWBhQ*ky}-BbWA~D59Jx4i%bT1`0nlDGVZA8T8k{@lg;$%Az%n-0vXVg22!BweA8O@VAF`LI |LZ}T*n^OF$rDA>4VPoCFrPq?a*mq5S296U)Y8XfB9^fY=0r(b$BG1GV60Y!$+M2^6U~W;L_uhm+Ifq -mW?b9lkwz^Y%ns7t>B5%g8Mk8FH#mq?E3RA$uome}6Kg8Cqjt3b5ep8iaYNNfOtQCf_23=c1XeXzos7e2s8tMm&)O(tMKivE~X8LUk+{23dVHVt-*4v *X!5nhrB#eKfDEb**NrHR;DyU_hucqabU?v>nZa8dy`D`obfDWTjsb$i_@Wpb9pfI|eBkaTqP2$Bch8 0scmR?o93E43+e$Q~naAdNrB7eUVV3L$H8y5FE8!MaxttX4fB%wk~HRKr_br=%w$?=cpXksM^&kKi!-JHR?B>p6p`an&tal{Tjm|Si9_g6Tc+$%*O|&~L Er|DXptfP&jdyZi)Z0iZ#F!q4c87+Ta6QC#X3mYGKFImGE+_6nBnoZEew6U(rf)v)x}2S7H)`2Gf?|) Xdifz40|Q{z#!D_b6hFNLWXJFu*rc??g#gFPHr{sNi<2*W3Ku*mSe4tO2v73PKS?-)s@1nS;Q >Tr=+3@^0Jxodvy48XXERyzowl>-ahH@Y%jbN54wU)0>LFb8z(4(m)yD&CYKjPPnh`VfzN0(!oO}H{o cE?5^~%rgeejD{r3v>W%5H=&8P34zVC&NQZ1eH3pV+|y4==!vXU3x{NMmMo|dC_b@z=J(dtXuv4&2x; jcw5Ca$e88IVJM!!=oq;@OL0S&I-X(r1{@sf$Pz3YNHx7B|fWU59~700oXj!t7xedn4pdl*I^QEP*Pl ;9#ooDKL%`M6T7Vj;|+R=e&YI&CSiSn9yx0El|ifInTke0)tsmw$cwdMsHFwa5?YZxT!DwH*`ztMB}1 YB9fSn$OH0tGSPYe8NO{O_73v6bS4boHP*SHBVDz#R)-S*SY=tzvR7cY^)io }&51?YNn{<*1A6#AW-kgJ$M2i=)%Picc*ROnM86*MicW$GyZeOg^@senb=9n_t)Vv(W_`ldVDC=y#QF d9?hab?DLZqwhq@pz|&Zh=~p~-oenMgoS!QsJd2* hi3~MX@J^f&B~7%EYutDHb{qL-iy#Y^|DwjV82n)21Ey$mQCFYUZ=6dQPj$ai#V0?e7ZwnHh{cG&tz< tnd0mh=@Niqm?BYdd-R2fqTf5l23#ArmwI>NL6U}xy3k1*T--~}G~ku3nwDlV7furL)*Fs)|)iH0kAUd<9xV4@dbs^reJ3N(0 r!y%!M3Id#srQ5!D&Xt8H@$QPi-8*MuULbw{XUUI)AUEtWeS<9DH{@kaXr#WiM%;XROmZ+Xj41ou|7e e5k*Th7&^@D?|A7qpoDG5?LeOgXWd{N)!^Gdafp{m_m642{D_G0$v$(DVl_n3YI;M9d$agv>v*ng@vo 5=R$P$-BGPIn;>=PwKGxv8ao)VqP>i<^;{~VlyqY*Kx&llvO)pRo@3uqjJ39^`3cNpI!zkHnhcde HPp2UaauA{=slebt*?>{h49yfxY{f!H`V+>B`J$%u;2G-m_^70W`+O#E6#=i}IKbJD!_0@;;!$Qi3>K k)nrU-~n)(OjRqr~9fydJt+>r8cp*KGVQsz`&25~lZ<9!X+qBb}-Vs&x_A%WqT**H>-bFTDqA$E|a>l N-fudOFrL1~0Dk8W*G9MU!L0v~3A5}beuOvgpDNAerkN~s!}w68J~f%E>e6Nj^*iIZb@@?I~hc %hy0Prm<|Y1pxIuB~?I%fl66*z*o~-LmGwrqrz%713v@|Iv-OP5TCFEfMDG9#px-he8EoEVF!u(Ao)` Rc?MQf<>e)MquuE1a}i=tEsn;RN*8sl*0PCjdLq}8hN1}da>+x=;4p!m5ra0oNVoAC-JvK1EOejbR6S cY9DlA9Qk2{{EpgdSOYDvq|1lh9ObrxQ*pm%re^#7plV4g?wZ;TY09-jaJsfp`MYh2T7^VadAaHHI4oT2NLbES=LO_q%bUr_G92g=qS*|=rE(q;r6-x-- o(08Mb%eoqX5jZF%n<{V-gtX!V!+muD#=G{+(=sg4JH9X``Cr>oKPRaRwcXXfg`Dnw_!NwY#_9&`CHb*;kugoeSc#zqKV7!Cb XBUfm1D?_Y5r<_I{82^8`h(`OAr@sx-F6;1?_sK@wnjn^v$AvCl6ybX@HG<5eQ1pA`%YG3Jipb~OqDb +D@pbAivvBLVHy=D9$VWwKuqf%g^^* b8>6O6|Ut*)41yCwr~zWD%gOBF%+N@ch6;+?ZkH#z`1e1wH}r(Xq$-ZJ3RaajowXt}b$&fm9}h33wqF HwjeOsPEpSFDEtG)wF~etav+;h>MZ4tTLAH@IsAfQKLl1;4oQKE$~1iAmCbBue?xl>q-6obZ$~~Mq}W xYq64$m}ohgftz&mlDj+I2>PVuGy9SL)g(l=hUylXb5>ca r0Ig6g&lJxQbYUs56c_&Km^dQm&0BXq*iQ?4@eBh`H#x2+~A(&*AQnQ-z|^4zybKPV{;jLqI>u5DR7h 65Y+bXh_?i~^Eh=CCQDYKDR^M8qGlmeDO&4_+_NBjKj&k^kdvXIN8|O=w;((NbcDnw?&OR kOUW_WYfz;X6qgWsh5f8Xbj8S7<3iT3*PA-iu>+4KrJ{|$BT2xU4aCv!K#n|O?T~a1*0MC0=!ygqFn$;GB N{HUBNFz|iv$WVMIB0WRRlhB$>^eGh|yUkLEUh+D`5aKodz^;%SD(UzzdSN@Rnw^UmhMpG>Ymb(JLO$1ZPdCrp2R$8){w6!Vo-GQwj0t8fy0#9RPc!3t H#cHVU1-rZOMTE=At-+SRM--=Ff@s7Zr50_@RR~>Aa?73m|109T~!AJ+-0Z)vh{Q%}KhQttwOjkx<{T ();_OCy#+jvSPnFpH$n^`g+Sj9f%xqA95zf41WSq+VxqsYi& -hc?NLm0J$;8IIBL8$Gb%1p|WIDjV@kF6!~h-y~C_&RwOHzQm^%v4zaG-u4E~d=hUVw#e1c~#wP)#7paEHXF_O`IwV586VNwzXxgWxq ^PtN%=?=B!e+n4=yeW6CXvuqkST=^vpY$T6~f?kKF??PcY>D`@J)%}^B&5Qy$bN(+eEO_)D}rVtKXQ` VOPY4%K4NV%IEW9Sr_$2ZE@P%wK8@`?Cer;0O|47hYJ_} QLsOoG+2w6+4?yz38y=&iuuBQ9*bqi1yu#4^^i4Z=S|@XSKJeI)fWXrSAoyztgI)|m79`-iWpSrS@-N28Y&Z(~G hLJKNG8x{9Gc^fOh03wsL?-aGvdXc0d^QOxXoEL_5YKMFq=};?E;7pLw9G1s%LtBcswxzz(fg|$e8@(tJbih#i6LB?duM6wt+EoOijUp0Sc|Ze=iwvkM#!M-v vm{#Q_>&;A3KqL*326z*C@^p~>#VW!6~g&GuZIQh2?`Y0Vv_Co=mYvh62&8Dr8GG|Fs28kku-u@Lk}@ jK^aqka#Aa{(}~vHBODOL!hMl+ll6vFJy{X!wu-O^&^`|Mo&&-$&}b(-T)VHn-vNZfw?K$3ZBJo~zbc x`Z8VS6Pb_aeE;)h+z)dTFhG2SYw*?h4X4GDXirJB|JmAdr61&5D?QEJh#nV7ubL+M%s|8p^aeIw4LV HONgbd-nW}zZQ9lwCD=AM&M?~MVc_>BW+ozW7@lKoZzaQX`YAaTMN85Lik1Y{@`z$3b6YiLm_@Rj+HX )UpL%N$Dn*vQsQNxUGTWEp!ebSjm+kIHer7<5+JnCr6|e0Tyon0%zyAOKPx|+FT#G;t;J}oN^0=jd_k h`lprqa#t+*Tne|TACSNg6VZ{D>ulTc+i$B=hZha7DEbsTBP)&HYzhpeSx0Itux=Or&p6auI(^t*mNf VyBJ!}hofA1oj>dhg%^H7@-TAQs;)D8zXP>U;3mDfzAO@fzZ}Ldw;SI32rc&?UOOe2?PtaEEe?1d?5b$Mz{0PP39V|$gDtYdTa=)2Z*qTSfp7zUVAnbVoTy5oKQLg(#Jp7PG$Ycv|p5jwkK8(F=k)GX40 1O%g$mL^FZsda?m6&vNNp3YIjABLEZU4X2W%;^{)j9m4HMgPc~MVZ2)7`v9U@G)04J+(`em6S#hu~iu b$S1oXI4uV2bCK|yVRgTT^$8<-t#0&RWTny(7+iqshzu@-Uqu-$7TMtOz8M;{eN~D%VOkBi!|PB>a#-JP4+OLi;2Dyu0jwNwsn<8a;xD3f-=N)JOBKICS2*ak!|$A4{GbDZYiAm-UFhBuO5U?cdq9GnqkaJeN+Vs{c;rUJZ V$kSi(WI}_JB@MgalL=eWB@im4#KIDl3C-+bjIHzRI0jRpsn?Vy_064Atn1kw`7Xu#7m5e4`ssJmUFkO3^W-R+wal6Nr@O7VTBf{#>TJxq(J^U K|`&#MVRf@u?gL8X3cy03%(HMh5>NHYL^15~qCca1gVy#b(<9M}NDtRMfCh>Eaf>Amn#n}4VLLOSi?` T^RChH-SuEX@j_qzw*?M0AGNt)U`GW2PP|Natl81Oai2+!B5+Vjf2S%nWNm~Nbk@6{$(5)W@b`VKxZ|E<=-@L4~SVQ_;HUS7yg{7rDt=$(CnN~%b_=iu1W>#>T0hl^V> 1_ok%q{5{npaD5_ksDX!k`+E*C(ncDE%C)2+AMHm2A4FAdnaL6%n@c@r C*?Y-thUh)!Zf0u`;dCC|tu~?im`2%|El-(}{#ciO_$;f|Q18S+8%#I5{H@{KNM5~up+ZqT#KxhsA|+ 8keJX?8j%pm@8h{VQGX0R>M18UmFBl><&FV=}w3VUD$4OC5R`aZCX(^klJtbXai1Z_$QtAwtTzZ@SPj1pFnV?e~S9D>LdQ+m~|@J`3nfE>d%v@9cP(3%5}8d`!;V~7Fh5hM$}!FTB%U!|LN_ZV8m|t7{DbT O&wBd{w5YzJn1^ctYb)KpURj=QX~K``?v6tnabQ#q3RQ$ZGMtE&S>yNH>p_|U}P%q9l7ghk|H#3DJ(u)M+$0s;5lpj=%F*7C$c>aqtKqMDDik6|*NU@VvzVh@3MR0y#M^Ac%E2o7MSGi916 E_tJ*ntqbFVdhplb;`9jR5$Y9ahOw(QxD4hTUo;RSx;>PtZ0|bE7<8@2=v4LcdEA8cZrbXZiZMqd6F6 &k-cUeQltJG0C{IE)Ystc~YIBabB<%PSJ4NI}z?z@90v=KFdUMPubKuMgr?9Fr;1tAS?Bxefr;&mf#+IbBUC qhBrRRV!N0McSm 8T@LDY(j`|MG_k|-maN${%UE1!O;dR)HfI(tqWeUv>=8#3xV3^zp)rmbn183R|awWH48z01Cc4HbXYf cSkRxe-IGjAo!P))&_-knahJ&R#-IvWCejycdjb77N{cGQ5Pg7Edr8xy}53S#HsB(4$UB1F?fyGF;oS O!b&QvHo&Ta3lWw-nXhfKJMapjFWXVq?QUSgS={N0-iY)DZS2JJ)j fFLZ{vZZI8{rPovU0kj%g{v#S2OS6`?!x@C2HY@th9WIwuA!P8G!@#P8#r21abo7zas^XnY+v`o1u>3 9brTdk7T<>q1~V< lBeDkPGG_R#1w$_^!jbI^Q->L@M(!-%ByiDK><5hS5AAi`;`j8KJKXnI2@PEhj~$(^AWcq0x2=d`ByF NWSE7&RW#N8PoF$rv3}O*NAhNPm+B!9HG%w9LEDM9jLDt`FtsEt{Lp7YEKv5o>*_}5QgxaD`uKl+kDY JN#54n1-0G7zAH(LVx1O{0~&TaPy2jzQJ_~5_6x*=HEqcb6OLzTuvdzqJ{fx#ubfdhXvRATqIa8a0Og 2DnOgeMZ-9mtrTC4^vEwZI32csYWc6$eThGfY$Yj;{qp&IO`)*E>priV_Sxt!a5!( Qj*`F{sn^M8>+xWe8VA)TViq++K6al1>{epQ~6oQ)|e7omgD?}pmHAw%u|Ljr}Y8Qw2%#r&%|H{G`zb _qvLMc=3gaGTVa)Mu*rxjB1bE!zD~Pl1yTPEUhv3X*(Mn9;RID2G{uht)%R4o6fif~eyMuNKtRkTB?_ $nMe{J;*Y5BMVibQTg3OwMCH)A8BT|E{OTh=-m$=D?6Ye9Y_pJ(`G_~vzJ4n?noefSqcYt-X>A5Kf1Hm)Yd-cqE|M%#r4 NpXq*~dbS`hBE^v?Ism4H#@L>wf>nZwbcU#btygE1k*9Hz51-{1*~bE+Qkbg8d7fM}&9dHk`gB@O)W& h6z$`{(b^i3Tr<{fGX~d-oPVNNZT_TOJW?_f4t#M(tJ2R3V+t?4`8urVF~`n_BH2dkUrf=YnwD+pTuGakAA@= ^$kw-?c)5M+mt@CV>5XbUxBIkc^XKIou(EUOcI2 d*?95W6F~$?3b1X_srC=p@9r95Dmuli-*Jri)rN<{P)xV>?-PgzI;oFlp Z%@`j7{m#MN7UN8HE4_)UZ==|brwubudfh1GwqYSx_lsH(K)*qqJ3{4F?^U$jn~q(hbk<-C_&*+Rw6D a{!VM$hu4#XX&v)~X=$^{A+{EQ>QfQ_^yPn|Bk$`KA0S;&c{`c6uVnrCB-tx4zhZ{|7D_k)^?jaQ!k+ H#&!}hvGo;Gw_M=YN9NcshX0@h|TIf4lojXEbQP->dvp;?Lr_k#z4&Yo3c6BzIl$TEl%+m?~MNswAFS nn4vAqV^54p*coqa5esfoyC9pyjU{*N=3Zq*Ag+JJ3!m`qo>-cYkMh`y#q)Y%&8!x@RV`QnpxJuD$pz $Akx@)ITHR7E*VandY>m}Y9~U2msK-+@?|I3*Sr6zB;5UzJur3JP97)EpKX7hJbjvc-c1F* q!asqt|sU3waHgw+t&K3@IjpP!-NpA&-yi?KWAApx!_|r8*shr<|~H7O@;J(;`FECb8}qsu|u8c;Erhzox{4)O+;ZpF|{9N;HooDX1!baRa=IaMYKMCi}sfADx6E!E8tevVyiEf4hA`x;jEQ|IM3F())1? dLee#%#W-FIuQHc9gNl-EgLcEUO7qS*=XPqp)J}v6R+S36vZhxCle}!0O>wBdH?L?zJtOhS?JM#@X8w r06Lx#LPoab)uz3UDkbS3ai773E2wzVPP$<9|t-PM=)*|iH-Q%CHa~fuvJk|Q4X&wqP_Cu1n2U2zG3F iaq__+qg{6v@QJ5Wi_OGX{%Eh_B7f}uj91$z%sWh1-4R))oM(}uI5r#U@m;J+t|DC_aUy^zS%-U%jh})|Sl5 YXA;>g+V_yTRWs}U;1xim0Hwmu}1NuCBVZuc87zx`0_gzq()%c+WrS--)<$D>+Ne=%2Qh-3$J{yV4G? y0>1fL^I4KNb+)E8Htr33xFxZwlL-^l =0|3ND;5@Bs?dO@2`$WO<#GJ4*5^}Stq|m;ii3^M@pFwu9X|Wi@3}1vYKVozXD}<&G!6RUV)v6L_1`s Nv$-g8Vc2YP(lg8Lq^(|{;csqX9NdK(*ULdBfUEMK0}U)il#C#$_ Ph=_m-dL*P!d7oDdu-en=vP%K(X$cxHuBKK5O{$dMyZ5F?m0y>QrquomP^8glfd2E)LWj&=l9nrbysE M(9fa~{Q?NN^2&&dPok4YCG6#QO?h~cdF(~%8Lh}>MU dVNL?=CCE8;RcK4IEX0YqrSy?m~E8%;mRQln&*RI(mN>`hvCG6J(!$Q?IK`jGr_Hl;x5FmZq{9~Xh|% hj^_iCmMWrxPT!HqNX=u6o=oD@xSSsdjVX*U((SdvRBY{T(t8;pthI|GYS<=ygOBmtB=9WKtr-Rc0Yg ?1l(PpSr)jAQXNKfvKdmz*unT4c7BQ3%@!otXxK8X~OsH|sK9VIadl7@B5(+#&BeO!&G0uze2EH3JW9 m}@##Fyi_NLRM{?gn{vL&hTkUJG(WsLu83ZU5g!f1&T=j4k%npGvetKN{J3Mt%-d#Enx4M6gx>u5l}= Mie2JE{?G*2UR;s``a~TPB?;eGx^hdYg#ADt g(|U9Z?ZdD70*##X3GmS^P5DKhH+PTFxJFU}oUkIXk^_qA<_wyBSatwar#iUTQt^!;$D+Q>KB$7o;DU k8715w}t4Z>#F38YhvZ4d<5*)l(VjofC-0h*?e13VBPp7%IggieSHfB?!J1Oef_9YJxVZ urEsd9-YtwkK!A5&Bd5cm8A(10)=^B#7cCK9dHb|(zZ{3-HnfZXonj&%ES0kBGs6I1iH5CtF?rn(Z!1 }jOFm7W|Lhcq#=YZSbu0UG*LyH!uD`(dXt$*U9ueP?OCiw-(mj-Ce|e#odO$Ta#0Qxg(BxrQ}oGrEG96vFnWJPq>bu%vhh~& 2}1bC9z!?+pl3UD;kbzt&Qvxy5SmKCYO_DNg4pZ}2WAksVScO9SX@&DI6QIXSlL>9U4v8r7K (Q&TATOZO1fHDF#?7xZ%0w#its((M6{eC#ppWoEsOdh9@TwUFe%SsIK#-b2O4N@D)jK%k1`!tN5U$G! Vzkn(Vh8n7(>W}TwGX&qHjMy9-1LCswer=|D{MYXSo;p*jBh4`ANLqpFbtjq4OFS1o8~yRQEx1|~|5) W|G3`=*MfF hibGOo|XzT2?7)w9gzECCMyzDg0SdEA61K%cbKAPN4l0qzbz{8ds9+&zY!>gehk7bLTxnQ)|sgd`;j6 MHCS~@M!S<_TA+#Cg6aZF!R*27{t&A#tMW`C@FtmJ(rGd-yeK>g#W0(YMCnyhOeuRo!O@R-le s!cp%jey#7y$}yw-j&@FP_xb6bf{Ta#>Zk+V+Zm{c9ig>Ua{S=gO0*V4yxnQv)_;^Bl`ntS+y@=B;d9 _tV}fHOR$Ax>fOOOB36GqEccP9Fp8^07ped57QKbMgdy<5wJ#zOdrn5`83iAA7T%9-jl0br*fK4+W; 0#HZLX{gXASkwf?OQ=n9TcAPR2+7xY+9rog1|mL0e$*KUOmo6LuY0SCBGnhQn9=NACqpBWH@|BbaZ2A tcCkXb+k!`j{FnX$lQ^E|vWfqi`MKi?c4o$zgmI4MjqxQq?=V5RActV&HR`R!-!3tdr`dK^jvrV^f53 ^cda^U?OU?UFj(ofnI=!PKD7{l^tU2wt3(O;cXR-au%w#EA#Fgp>B-oZI;PS@1%)@@4SGG!wq!cD@YT (a3U2e(JUsR5Hktz5Uedh(A`{k{tS{4(|LKrWt|vPhF%6*L_9jsb$gaYF{h}g_f;FP&K{ol7khmr8|F k0>ujkGS7hj@Wj`;y`%n%4dzfq4&rl_D|vd7>%3!lYF?bx%V3}9RVME=MqIfMF(8xP|M=wjAD=l39r_ 4*jQ(F}C2Nw $W2AQba-+wmsh1NtPJ+XyQS`4}*0QOD~*o}|s@D!ucFCf$fm6&3S%sTyd?NTPt8Ew*g4N4FnFa~RsP- %ER9{!*B~C%wTPUdWiC5AJ&5y$FWA8YUl6sYI?RhDh*~PwA)S-0_PkM^Q0YwF^{&QZ Ojk4)HuRhyuG3V5mEQ)|CoseM=nnCgf%wR-`<=UNbSRL2yT%%KGZ|X+_pHE4}qZ`+47+CAPZ|pBOEe; IxW@vnF^Tp~C^&|bxSW`BvloDUhb&z+TH(Uq4s^QhPaGHt>esmt=yG4|J@C+E?D}2z3oE5{ue92F-GK z)SyP~+~m+!E~d)*hciA77B9qv;0-uYl78|)A@JW80Qtf2iaZA`*$ 8^;>$h8*V?EKlT;BXPh33nKRt-M)xn5J} 4luAP!)E-NWch{v>#%_zxM%!zetS>+uuXK>Kac@!;^>S}|p4T17YfE+>qXCrL|A0asU__Hk2QlCQi&)MF>E4uT^0qKcJ6rN)+*i7b**w5keXGxl!=?;T*ZW8CA4F6wCY6$~3~9*XI>7 Y>=>-}S!6s<(y^ndPVnhD3E^>hdtQs-5h7ku^JT?FGMjs=M^Hf5sI99-8DFQo@tivxpyfTKZ0uj3f>! G^m8}C%3oB?WC^nlDoSe<)^NdtjMp0ycL|a>^H&pg-esaCD`)n*jW|VeoStnXDz-b}ZnUxWl{yENAM$apIzP+$+h2S!)c>B1KKsI7lT? @nIqp68-d>M|-pPG+Gq(CAFFzB)axv|eVCwcz>6WRk$6pR(REg)HR7-Q4NU5;Zpv8jI0MEmxZ4-f$(X vN4`vQQDu*>LXfQ2IfafZdn!V*Z%*nXKbvgl T{S=dJYIAA%gL9YKMQI;J+}`W^_n_l0s~oN%V{QmY`%H+LWb##+jf32KjYRNUN9fIZ+J=79O{T{J;{^ gc}o?B9cOnzwHOz$dgzUrg00dy9EVW}-W&2QQ^i{YLMiWaNZ}pm&kHPwG5v90i9Jf3BZ4GzuxE|wPdJ LF7=p_p!^}w^I{oM@gcQdfx&A@&)1N #k_fth(jSxA~vI~x&vD1{6DKMZ-$&u?NKQ1Cc-GK|kqOj7$rZLt-u)B$G;WBtL^#YI+Mz{B)1Q}PLnF mf4=QT@=>Sj`}l5LBc~7BzDeg#x(FC57~wYD;)`CvqB++mX)Kca=Y?6u6ST9GE}yiU#=k;$uEnC}Hq{ 2Q+#=XVg394AeP!;i<_<+z&gKcTP9;J=g#uQE#aOUWy8~G=)I-y_5>3z4mDKdRHIoUAr$fb3Scqw&|p l?EU5V@Zjjpi{xGL9t45BZr(jD-V0$#=vAMOL>_fl4)VgjxdN1%!m0OTT`sESL=C66J$mLH`+Afy0$$ duGsr>gpICd#tjaEHRpM5i92cv60i{3R9_ktw^kn<9JFj8^kHrx9eFQ(f@ALV*9743_`ScHPF?stad$ f~0zw1FloMqML(gUwD1=eaCIZUeRf{Pt|qc+XvM!kCX-g}{Bvwy-+!^3ad>O%RZLL8+9JgKu{Kz3Zl!a|ppWTMJ>qgZwJ_TUmWbzFE!ZT?%?E {i>{!-Nkth>b?I^%X)2v@5=cUm`MY2$`4tk_MvKRrSDgDqjr&_a`GYX(zL(tKmbh&AafIFcj4p6quwP XW8a7nyjAKHyALINp-z~8Qp{%4$$tK9m^@cf&vUg%pMSOyf}Th8Jn)GifV#K6dH0`hs{{U*_v!yIQ9b ``n0&rb-#>robc&yM%$oi;P)h>@6aWAK2modQMO=$a(n;O{000OD0012T003}la4%nWWo~3|axZdeV` wj9Z*FsRa$#w1E^v9Rlud7(Fc60C{E87Lkf_yTw9;0Jwo%$fNvmitQB)x>42vUwAltOre_w+Q7#g*g_ =NF0?>sY%X|xhxFCCL-V4_pn!uQTHB`Gi9`1IqZJbbx1+srJ7dG(2!&_yVhspZHEJfwE+h*|N+G@}`Jzc95=d)553Q%>(i5(0 ;<+8Rzif6Fex1OWlJXiK^R2-fNLBV(;B!GR>;C3`5`uS5XCo1IHQWA)VS}mUm%B(lK_VOylWD7hX4r5 e+k&a)xzb$m?xkvjVx<=&P3Tx(rON!0<%+uBH~tF;gboL@tTv5{Uc6UXkZ-K#Uh8bRfWF8?a)XKmV(< ;aa|5XQPY#uf|Gc-)QcC+O$|K?GQ^o7ZznFXS7*0{Vvq>pV%}gkM5}LwT%6eKTt~p1QY-O00;nP0YzL 4(qnhU1pokk6#xJp0001RX>c!Jc4cm4Z*nhkX=7+FV{dMBVQFqTOvP_A4!S1qR}OjRy0;?Wtc2$-B |Wf*16KvK^VIzP{KacvO09z@q)o~_4_X`^A|t9eDU+E%O6r&dIdoIT8ZGx>c)M&md3ibx3!hJ;>vwpJ =Eei?uCA>V8^}cThS=Z_vs>8EMze@w;~a8E!*kJXeGwZ;q$_6q{j=+z8ThkYK@h}!y935^nO@=3mz0o -yN^N6V+Zc?}TZUJzmA=F(S8~1a4Y!Z#y5a;C-?1?h7>#j~}@bmES7`H*M30_Qrjdq5|zJw(hu#qpJu =TI>`zCUC?!nxZIr&J@tkOndEQ?r!AnhBYJ!#;sw%q6J*TtY-E`FwbfR$_ql-i-P63tfbBJfny_7k$N C!vQO`(tAv(5bNkxa*kd=Y7E?0PEOZm>0WCA}cCtfGA^n)|!K2j(v=O## s?e)=nX=_zIWNJ`nw9)M?lCf0lVw|yOZ_T(G?)ny`27@t-+w;BjFaeAO3*>k^122t;^UrNvE#n^oR-T xT9}UTAb{qEGD0;%JKgN7<2Xu-8!OpE|mByy`mTvkolBi6Z2{S3HQ_DUzJz#4EW2s8^tahPK A1hNwrh7~4$ZFCvOC{v*Kus`)dCKFKd!rkxAtSPk9!uDeGAZ0I|XE_+%e@OZz1Kh`xhSr`mtS@yTFjF LM+Xd!Pim}gOF9M}*RuGuXix>X06j_{|f1cYn|bQ_vACy7YeEmtkJ4k0^UC~eVfeRyyv4APr(BQy+Ge 3)D?c+T^zQ}};eP!!XNQw#S-q@V1_?tH?JfEQ34qs{dDCxAV~adX$Yo|FmX`(ioUG&5O508$M=-@DQC D0}_aOcwjSJGr+vu2}mu4+rw2nKlAHBP9wOsB1sng6w$ECE-G=y%(Ng3)1WH8L##|6r&jzDuT0vycLy m(Kk9i&zr;1{o4)iv5zlVbyGT)mF3k=WFrNFWHFvqD|XqI*HDVOU~Y=$w_GZk4r*9N*2l`89u~u~+_e K&0Q9{mI23#@;ENk?XN+mpvB#nv+`gj0x1v=lVjvMU@^E9LtV5w0+9{09_dK1n-%A9Rca5&e9;Ji~La ?$n(j40)k$~^84Nv_F>Gow`jBMRi%Q#o)6LLC?UTV0h!-t5sOC!Z-$Xa265RUQ 1@P)?k05SDWW!rQV(>zN>Dh&e0Q1?TQy@DMKUuUTMoqG|O9QFWs~o|ZV@ZKkv##l9{nD=Di$ILFsyT% @zk1^;bxNlhJ-o8@Xdb!w)#2Vc9Ph)mDQK_XrJ&%)5pq{codEM2Nr7}IlF$hpmRQJC-t{KazKB0j`N2 i22v9`DI%IP$v3bAPcy-NHIFNB`q-O^V+qA;+*!W-eStfplRYnK0vFl; QX`iFo3|>nNdd$KZJxTdr6l3&cK8q~LL%hqx;r%(f{GriQT7i57Lf-45W-pane1c+4tjYUmap<5Z#qn F|w^giK6WwvG{TI-3k`NPj$6iH{FD+fpF^o{NNpCbA_GbQ0ppP1W1gN5vM~Uphh$jpdTvR3 @N}%Cboll)kG2u`9y_*BvmtC;lzo(XK&Z$T9d~|-UhaZaJ3q4#E!*BFZ;IP6)vn8*`lk48BtNr2*#oP JHo#%NjWK!JUmoilB?p^r9VHaY$nuk>3Z_Zxk{Hj#_-efZ9z46J!pWRMI)eWM7{Azsd*FewbcUMiYL% %oKCw%dj21@lH#HT#SFp4`tOtY*2Gnv-1tRChol|WShgM6SW-DH^eGN2F`T2QG7?1U$f3XFJ7I$ujz(Jid_2L{ 1fWL!92N2B({GBfz<_gwAHz{b4bbm4|)kxJZ{rl?r1RT)4|f&q)<0~5%!tL5ze{F{h^hoYu<6&?HxEL pDrb0jU9sGnS?C>LK;^#wEu@eiI!vL(W6+c2zU#qo{Agk&+786m1jSUFGY-YkY}fdo+!NkZ(5#S1q-Q `c0%yIO6lRK0r#e*eAB=sRuXDkV99DyDbUEoGG|ezu}?9l%lOmb~amI|LRQb>!SU5DF 67atKB1p8NlB{ToESoZXNoxFqg+^wiwk+=#EKGJy&I;h2BD}Ysm&(qZQYO^hZrTV~QAmmClwV5W<;~( %adoikLb+PYZXL`q=KHhuCuI1*!_uB}tp0WoXWBwmu19NUCiIMnx*VZT!ZStu%u~*?Q;90^fB^P>fot RXz*p=9*Xvz4f#mQ^ZFvT19yL!9LKVa|AymLBAzavWRa~G_&vXLHzn>_aU@?^uj!{aS63RTKn4NN0Jr }6o25jVnso<{|tBZ_DueQ7`mVYXj%k_yq@gCl9MMf*a0r>nE7F73@abD;qrd>&)c5G)L@W-$KA5jy?$t*P1mDA15z#fGq6oT;h;*LW8|QG%*_U+tUrDO20UG6~n722_1>80Y xSt_W)5^1-S4`y`xV|Ah;p{|mM2Od`r0Vvc!!UPNMJo8?DW5H40QG@ zlBpR3>@-J1!3}3}PB!v!zBo22N9^pYweADT3J3PGk6&x@>lNy`!OqR@b>ybG=VFal+0S&d`qW`q)Fz B$Z #krHpbZle-p%Je4!H7OP4%OPt%a^z$OjkbHx+3!459r;P9hfR2!Ms$~Cl#zE(s!wS#q{{JVKfE!l^kd6ol!Ryz y}2z2H9^q@%@84Bk4I2GCvf)r!TcCS?3msKndYsFJ{br1y<=xU9 rFRLhy*={a>t}_QR`mH|PRg|oJd|#NlD$Px$N`&35j!h||l+>C4Bdo?y%PtTpXp-UG6|=B${@p{CY9d qzcI@G~$;l*5Z|_u=lm%!nSm`z?GmUAmuT6b047o^vWyA?BV1HjnA85?X> *(%sX0)#GZ00RJu-?xtZ1w`|qB8UR>3p$G)ZG8ZEc%#X^BbifP-a&U^Ze$hL-@{|YqEmOA-yykPO QILLZ`vkbsjdk}e^JC*RPE9}p?3y)mH;qNRbzlf<9he&w`s%gpW^E0RR3ZwbpC5IRxh$#ftzyI~mf54 E_5RGTS*I;=TJcnpkht&U{cv;L?YM*)EI-UOjP)h>@6aWAK2modQMO;KSSyLwm002QC001HY003}la4 %nWWo~3|axZdeV`wjAWoBV@Y;<39ba`xLb1rasrCD2V+cp$__pczl7aLH8Ch5{HfFFvr#Rha2Albt(3 <53FG8c+eNh*mu?7#1j)Qut~J82)Ssk#VU&$P(b9@KtL* W^2T;8wTMkSD6`hZIh(byBUZ{Q#ZN(X6T;bVXsY#~R&n0Opxn$Z?i; (~CE$EbF=i|G*uv)Qp0@OYq_j1g|Ii#1mj$#sggmJ_Q=P$alRUb?e^J%^s4aoV?va?BXsG7_e6f+DW& =2u6aXHYU?nbLvJn=`D`i`hgeB|57`K3R!c%mZdMNw-2qg6n5 BqYos7aMMarb*4oOA4RQG4T@4Z*b;rQKg9xZUGf>?7S`W0MNz;JnBJ4)BbYR^%F%9Yi43X=OS#a)b8Y N9AG{;mx;WuFk3jiege53qg@Zq0$te$Jm^Hx9x`B%$CxOq*CDj!6=?QXzV)YkPIW_Ta!H6|2gKA}yH> ?^4UJ|9CB2Me8us%!%N|H*3DI0g7#ZstoT*reMF3_oehN~?>g+;iXz-w*>?T^RbN}NY3sE5f#S>h8IT 0Oj(*&t0(^AouxUcZP)YWn8gOPSX%Tdc-KrZkrNgf|S1<1jZH&F!%~6;wlqPEi9WNVK-s4G4tKGPTj0;&r(VkB??s52AHK0eG;i70>otyH4=Eo?>cwV!t0=xSl(Wac?FuFQ%TMX6bO-3oLBQ-3+a eqOK+aH9owy7+Q+R%M(m?x<}5P7!(4uF%3@2``q3!hWfkwa -}5-51ERHdM#D!3tfTPdj74rz{e@AWWxGY;UX7CJ0a6QrGZjUJ;p_C>E2gTt Jbe#58tW_ugmv^<#}qU7mk&?BJ@RoS%B8fy<7r&%~M+mf)GmKD&60R{vxv?~Ti$$CJ2_xH?QjhD9lql 5(zM4`72SJfLa$KM9G}i2+U4&cz Oa+#keW@cgYMg}~hfx)8dIBWXgGfZB=@xc(SepHtL)3wm9dAX?U>~MPA@X8egd>nM0)DuRg**N^qbFU RqdEF?F>X3~`1cd1SctqnYa1Qjp4ava5{QQ%Nd`C1C?OkOU;VECgc*HD8Tn#Em3Vjk`oh%8un!q7rUk }c7{^;>i2WM5tM|F~-(s<#dz9HXm@Gq^4O(WIsq$F{EGR=2)WQJTXg;-KSwO8+WH?5}!v 3^hW-D5y*#qG_AyY~70~8FdME|Y!NB47vVB6akerJBnfuSmQSoptNiCv;Zn{K)3ds);acOhm*k94OGo42nMWIBrt73nSH7B7DOZM9w_h^SG72=qW5f9<^C9J+D7TrGb !PZSASn*1;adxP4;;iF8-*u+TO{}JWL|EzASAXsx_Nu7G@L@6FuCJ3uQ&&K|}Hov5kuA6BatJ4Z>(JQ OVd8)CfpT{9uJh36j3}i*Q*@~IftK42&Fa8HmO9KQH000080A>M2Tt9X?me&CQ009I502}}S0B~t=FJ E?LZe(wAFLG&PXfI@GVP|e{b7d}Yd3{r1i=!|Q{hnVjWIwDz&mU0mpzBI;u`1Rrl;a3#8*M-niP@HA+ 5djgn!DQFUOr{sym@5aOnB2ur9pOxUv6zpbtzSYP^n}CEpI(?V&Wi`r}+K|BaMr$WqbWS$=gfO$(mVm a0zEnF-^|g@Xj3>IizG%zbV$;k!q=6wH36DLhX^5bU?nKlV~z_yenKJzn*%&Rt7z5GIS2` Rd14BIIT+(iaiM{ZMW7|hG5kZ?l#Tk&HmmrRUG){9oyTW>)2=mnq__|8g*U(G0CD|emlY(T?^Ca_{ZH)l=u4qifQ4 &rPUw|YfU!K;#ie!1Z%onR$d=eL1Q@qL+Mf4Phx0xt0{6$bin@MW34$|k4Y{L90U56x2m&+(wjttkjX #D%=jhveg;hA|D$mwGj%#@+OnGyW6`}2Czeua*Y0;HPFzXRFtcYH syN-%ti$d&%&A=YXg{QnKkU`(-aE}2$Nj{QrV8;A$nYXU!1n@6aWAK2mod QMO@(p+W^f2002J;000>P003}la4%nWWo~3|axZdeV`wjBZEtF6E^v8;Rojl+HV}RHS4`N4N~kMr`Y6 f#MjzgXnl&J54Yh^AHAg6Yhn(y9U5wL%_1gzLM%|J =}Q+;YGB58;~nf{Q{)qsHhr;kb++A#<~Y9hW87J8n+3MVA{F ;uF(?VN$DDk3I3B$r6a=50>1cW>GU^V5_`EvUw=DcbNtdgpjQQZw3E$V2{j#WDUb -p%fwPiL-N|eL39+EsjjPk8=R(@Hn$i>)q{od-oBo9s|%E$Umpoo2!k}4mrfD*W@W!mAt}$LJCW1;&0 r~@VZ(KCkG)1WA%9D(d2A2R1$#>sy)nn;M;y$W@oWQgP@%LVL?6a9#U}^F!ktL`eZaN|l+8Mm!6+^}tu*##I0NF8N_yv@nCOO=`nj$jaw47X;|50BSBe4;=2l2C>!M9GutpoI-8ihI<$4eo*3`-0+Tf8?BX| TWgo@&`-0UqFX7SodZC|4I+$VKMtH)2RQBS*FF^gY3a3c#?7(f(J3v~aV{iGJZ>omdqbdht_roG 7YV38_5}w7LWcWYh*sh;80e!>tms1O0g*`%{wC1K&vUH>LB!wGXBMHrSS?GdB7Oq`T=fk`8feiR5xCE XZG9YhwT`R~81kJf$<2J8rl7)JQXK H-G%D!ME072oYtgc%5jDlrL9z`ozeY*G$P)h>@6aWAK2modQMO-3CA=B*u004pl000^Q003}la4%nWWo~3|axZdeV`wjBa&m8Sb1rasjg di8!!Qg*_c?_otFqw$>^e+$P-e&p6x#(;*GeU&G`Fwq03lFXyz}_~H&3z&C<6Bsg@Ri#6E9Xr<2v;eZ |*8cr>^T|1ef2yM=)a+sB?@tcAElKRhdF+boeJna#DVmn;|M5N5prpiBe+ljsh*(Fu;a*hpNubV2@tJ $CnabOj;9WO(4B_9YxM~D4Okc4aqU^l14gU@N9dPAEvo(8%6ZmP`{s;hOe6*V>dYrX-uB%k%$T^ kng@TlXj87qB4BEQQYnD-(ghrT47d#17+3Jc!Jc4cm4Z*nhkX=7+FW@&6?UvP47czG^xd399VZrd;nefL)oezGx79}u9!x~ %Jp4Q(F+3`15Js!b=_9LbPmq`|O%A0_#wr1guP=_+rP?4SgqxXkyA$0`vrQrKC|UjsffNGf9%F<;K7l (c+_4FQ-f>=Gg8YK5>J2ph(m7hvuCD4h;bzL$+gJPKFsuMx92YA6(p6>kUxo;ZOEAP2aL%8 kJIm&gRtb_FgSTrKbLq#7utvb~9G}Wg?wJ+)47lE}`;0yIt3>D3VkTJJtVL*GK-mLLlqwTd^mb3J6hn 8EbCo3gCkZqK~C!>*Cof8ca*@7^HX8xt6F(&-eI<-atactiWBB~d%4<5oyCZ#MV1cXQ!ui-fu;N{`1f eEBWA@-NnLZG{y|X6Y}v5HeaZ1jU4t6vn#_Wu2ud`>lk`g4`V5`Q!W|D4esZMeZhTd4#QbCCd;nqBmcAPUvMeH%_|k}SOhu>yPx*CzrJD6cOL=);umPVZ{{ c`-0|XQR000O8W&uT9rn^1YIRpRzvG*~k1B?x3%I@yFJQ6nk0Zs7mEJ5p~c`k})xBcUzv;d5`#9m6nu -&CoUsxpu(4H|2ut*myC%L0x3j3$P)(pr7Q405eX*jrnh<$S)AcHeB{RF(6)(|bmrjKy+ZpYs0UG6){ _2zhTK!?X~ZsAL6pFAbC`YYGIjS51*Ys*b2>10j=njv6Z)GzK9R1`Sk*86C9>c37bn7D0fqn%yPGH5$ STHUuiCE%pOA2I63hL1Guhzzt0$Ed_Wls}$L+CPw-%MRg)#QDs7BhPZe1O$8q1ma?%eFoIvCu@QWz*>h1u@X(OQK@en^Lt<4zIi5Io IrJsf&PM*R$;mdFWzY3U&?mpSrJ9YfGyg^IrqYm|WpD41Fi+&~MN5jcpxP=uLNF^KLI|T^3g54|>OO% o_w~4<^ZpHgG}=a25MIFcWHEH_vFNaGy>DNl^YGcl7oFWHL&@Y_ZVMT;v9fNlYD%ZRNf&aOG?A%vh%2H{zDJp QMIRY2OtZfJqjPr4Og4yg=r10S${+My=@SSkHSj2DGe}6F!SBhzazt+2kXS*5nK?MZY05lV>hZFHjKw o-7@f}Gz-O}Bsdfh->h?G)5#>thU$tVFNE726J*^BAGM|CBGolsi7w%ByK-SL?}ilRY(k@KUw#>TuPs !jvHI%SUn+Ysl5V`{lc99Bp!1m#|AsV9z->|{gCu73WK^_=fM3BC;n&edww3pMUK<~3DlG3_z0UN7PW Del!boQg)%>@pfnuQ2?AaKVIK*Nj{F#f{hX?l2H1;b9#{5Z=1=XSY7M_0FyD-1?VW|6GTox$C;^KTq9 %08mQ<1QY-O00;nP0YzNXyNgXj3jhFeB>(^)0001RX>c!Jc4cm4Z*nhkX=7+FXlZ9?Y-wj`bY*fbaCy BNYj>MQ_Pc+@gmi1L1VRr#!p5j>wms>dHt9*cCwn5a7>SWYf`Bq8vTD1(eea#&F_MsEH`|qM1T**jnm dDoc@n1?N$JrfjpxK0jY%MeuD*ZOglCqe-Z-1nY!>?hCR-&zG%dh>4p`PC|B8Y*Iui3nMsKrX`hDU>O >zw*M@L6Koe*~%&qqN--IPx0t$M=0D6J9I!O0Rdz|5u05}kKmz~~00>s3O3NYfb1{nLa*aYj%hFfKPa=L 3=f51G!Uw>TlL`xT(DN(n)wlm(;EOOi04z9HM9ybmTMU)PGTrS@w=gpzD5{`y-v=HzRG 5j*dak5fnYK*R`Y@eFYhtgdV5?0maR7I41uPCgy>Fu`~KaA)%ybl-*ur> Xc^UCz%A(_JE9QUkR%ArUg7I2G{D65QC_HN_(kKJ}gsU87ExVs;!8dU>Lz>7dmi2pwCFrn%JTut3e4@ yc5Q=tQOBbP+5_+4YlrhMEsUnq#P@J*KV`&&dL=T318mpSivQFC_+I-G JRufjWsFA4Xf{3@gWa3~eW}STpiW-WV>yv9PDqEvGTq*OQU$DimTNl##JYfn8ltaT45Kaypf{H7O91R E~qqz^H4^dAo2d4f4d3PTiprZH?G&kZu|uTO$BJ|qP> 9rdlt_z3;M)TL0YGlhiw9kP>^Kh>Cc<`eSZjyOz1TSe*aXIYjoe!X8Z_+^^a0!_HqzhCJezi} JSZd9#l^jm+ozP=ieengr$y7Tx%Dcn#OHTd=9-i<91h%8Oo bcn4+3Gkd;`F@Z=r{;xZ8K<9l1BQ{Z(L3{4`b<}>M1|b~v{8BI#UIKk*!N)w=5s9Zpbr#dCCG9XK=38 F;kXpN*hVm|HE(k-8_%$7OQ|slB9Iu=s<6;xLY|EcA5V!U5yEgHTpDS&hoA8xWij^1vVggeV26DAC4n NP)^Xu9W*$=D(*uDq+y)Yq8keNKH3wT*K?735QnndXc2)7%My*t9=D7skQ8aA}k?)QU}P2*H7=?UYwcjKh@smxWxA|=yiiRElQM;9}i(e54|-_DeS5(!YeNn+vRd;#3>D+Cx$Kiy cGtJ{pqUpC7{bzzVpzforgY-n!2iKwv!Y&__p#76={Us6*=-o ?4DZcB8|Jicq?#ge=GI=e;+zqagfK6e&fsc`v5m3_g_=U658czR*X RQdE`g1G3Zq?AL+=%W*U2qps;pZHqo1vb!-$vCzeJ$Q5Ab}x$FSE>0qPC=I)-w|`vi5ZZyJGs0Nr6MvdE~j8%SCO)5P%cZe5TwbaVic;S&v;gGF(d&y?b8=qIdwpkdO>&# #yRZ~4~J+V7`cUs_r(Lsk4$X!4TDW7QI>AhxGv&~qaoX54@CFaOi$wFt#^ NFlj#)y-!DK~PJg?}3^f~#_A|vrUfD685Vp|;W+?k*2PvS6)m)OM+Y!9BWZVINhuJw1XqN)JW^n)uZc ~mGC^sJp>xejrt(nx0c_b)$__h9e2w`uU5LD>|cR=82hzwHRi14}&B p(@?)Fr8;v*%zE>{lguXe#ljiOmaE9``h(>(|8kn4d3m^-its8CtZsH`<+UjZGo-Ql6_ (Ou~R?gGkfr1+O1WgG{_C#ffbpcKZM&tM|d7HM%}_t@?oF2TCB8ouBA7_<`8hdZ4VS*;lxt3g~OuD>c LDppV*C71|Nm*E=oye~9kuzr=%c_P_EUp11}0`W{ahU6*gLU3U)qbk|iZG;NZ4)46A1)Q{sYH05aGza >C47Q=op|A&cJ;!$iDi@D2UI6qd%$BhJbwVA36MsetqX$ni;a7JPAz;l++e>P}I6G|=W@uP5$744`Fo 3tizTu&HhT6?BOURpn!Pr~2tJGizakUrdB!hM5Ir{BWgr9eA?bwDr<0>mB%WhARd1EO*LdT8=AZ~*=~ 48v_SI96jnT5&i+Z#{fXV8rRPF#7Wu^?aJvy9vrm@AT~4==SQ!wn>Y0>LzrY0o?MpmUvl&ly>LbFpaj +CLj=Lzvvk4vkQ3cVa;n>ra!u{E>68JEJUU$E*D;hT4wj$w9dQT9>Eai^n^Hh9^!dd4QCg}Rel)eFXj nTc!Jc4cm4Z*nhkX=7+FYIARHE^vA6SW9o?HW0r1S4?%10a-wEbfKa~HpR9FZ_s2I6PYe3Q4}peb6IjtPQZR6iVZZHTYJC{A+6U=Cr*8#*T!$8KX=#ISUsIPCE&79B`=|5mZi O#K~8h2R1)ush7-V@pAt~*wb96Ow_V|NR0YL`X;z@m2CV8VtPUx>;}zT0)-7KRXY|p4c%@VwSi O<%YP||(AhdI@cYH8q9z~Ns@`E{J>JDY#WKvo3lfjA^QBY!eX!Lhhn~_y6%}(>2nL>zjKAM6x91sg=S -V7k7^k6^1k4c%u%IrYfQqd YggD9*`B073e=*&t3R5E9bnM!t7V4KQIh^(%jw!g)ki0Ta&T#-A+LRmtig J+ok5EK0C5N&;xS@O;(ro-CR12e;g&8qkQyQsZ{x1v!(^j83l!mP!aohc=+=A&9ycvc~$oHMy)cZd=42d>d}QsG6X=(mM~MVA_g(Jg8Uva{l-e9I0a>Tl_u&N@@H|Lxc jpy2hR$0$`7+GCf$p-cLSZ7*(kJ!*L+lFbl7OWP3zuf);_`c~Nbd38q9)?a!<}C-Jpw` }UDEfBh-(oQGW%2sqD4>Sd3`o7jzqs9Lc|-y3H3gP@e@Y~F!(lC+xIB8-plPdnrv8HSmaz=eI&YZ@DG WP6n&*=5aSp@hA0xs4KN19~`SxsZs(xumIHP$yEp)2dK`z`ep42t+Dk6l&4%g}E-Ftq#yB|vM-CEEt$ +kStA7ZBM-1A#8-5?xPL!d-|)K0oHEsGB^(`Tm^s=swiL2e{x@gN#K>|qoB6Ui=f&Oa;`-) pB%y|qiE)j2&xWRL8iuq@#D*+(V!4C<)!18f(O{HYr`-p+Z4jbP?l`6qO`0RcluD-rh7>8+DCFNZYuE m(-_gmkZn;G}*IMcPREiNqQAXfx&$Rk5zzeZN{-iGc1g2ROa-)N7`+9@$NnJ)#%~?4rGpfSN+vrEDxI bm;Hs^%p&h_VlHx_Q(2LcY5@z)tl2DeKc5aTNP=%*fp4Vi>5{TV;$ufM<-x9Mv%8vW6K{w!=f`*|8fv $aTE6Zf7c9rrr3{&|X1ovN&(gf^!C08mQ<1QY-O00;nP0YzLm!C1(P1ONcE3;+Nd0001RX>c!Jc4cm4 Z*nhkX=7+FYISgVbY*fbaCzNUUr*yW5P#37uyWEiMIrkhXe9*YV2^SLx+kqTWSL~rdYjle$Dve+?|x& )Ng617tJ6JQA0VFpp83s;GbIb6wGaP_2QebK9 @P;!jJoSL((wJZCbkde(ek(0^1Nf+OFYsOrA(46$#cMc^adzWkpzvq6)@Fe{G1)$iQ%W$A51at7{m}P ;Xp;u2rM(7DIFX%ta5MG&N{pg4|*cp8EMQT?z_(tdPw {0~sl@ds!L{~0dr44LeXHM~wAvYllW3gkFr11AwR8FJm!5@o45evW%}*E_Tkr>(W1{pclKGqt8#jmJ9 6te>~?`*FSp;{QK%JCyCuXxweZd$)%kEC8_VafeZ;5>`Sm9DSXH>y()lviY;9e-n&RMi^k`6A1iIKBo N>E6O8(+*6M&HP-{;)DoA5=(+92+Stt=w}{4+-9K0^D@(j8ZH180$wv*(iZ$DH^3h_oelYtDK{R1~v4=$Vx$mUV8CYpJ*I5peH_k%$ZpCzS(rt*?Ln! mk_T>T?+O^5`C9k1YKpD>$>T&=M@uW<{4tfQ3@0D$Juk(w7a@#l$2M9yX}wqra;XwjXGGkO2a35>BOphiurZC@4p4!peC>Xj6cyIK4EYmclVytES3k-Q#!Lq_mErp74_ASgAy;!* _8wbbVlSJ_M{xicYtAs5W-H`93}VTi5G3RH7+8;-0n7_3wR)OngLR1M*djmKKI7b3iJ1F+I8&moOExf 0j8t7oY=Lg=91al@7OzJNDMK5uRBw^3OWUG;vn0Uey$rL^O_cRTj}22e`_1QY-O00;nP0YzMT64xK@4 FCYNHUIz`0001RX>c!Jc4cm4Z*nhkX=7+FY+-qCb#yLpdDR>3j@!oZzn+5SpOOhf_|ks@RK#(NB#7f0 XQx0R2n3H@NsK9yB`M!2hkJweP5M-QlFrQT>=!BBIZfSGKkh{C?Ci|!eD7-8w}&9VDT36q54>ubiLU?7yjFl+-iVq(-rxfd^soUZJwi`vs24jR#NfpzJ=9qXB0)*eSH(WV0R=ON-9a=X gT0lHJUE_=1m5BU^0-)3TX$ENBz&6FRb85W02#D>ifg4~FEomG@O`mZ6m>of!K?h#9!Dvz$n1A4k%eL S9Jp%A>O)l?^E#*rJm?8Nh2aIkN%oh_xO{~mOVXw_{ZU+PHn6w^{4wu>73twRl!Szd!m(LMnr1<4qBk BZFZ;gjqnCGuAl)#GykgSpd=zCM5KeNS=D%*=c6Eg&7Fnnaf@{?G0p|`1E+|_u1Wh{z;tn`;uw`%Ryb $}gMkzSLgo$87N8brNK)SfK^BR|rprO_oo7 lv{0#UDWijgZvh2j{11%U24IJ1BK?B{A9*kcKPk1xlP*NuUOn#-Lki$xF|&X&zB#TeP9@wkpRxtgoi0 hx{(1cN$_ZP(T)ldI7GL-wf3+LcP}0G}o34^x#;H#I<3IEHAv5aA^Z}^t=8ci0+A&hu|)_m-rvz(3t} ^Y|U|oL_G+=c^OBnznv;km(pFiWRW{f3xRqUNv9RbHRB}s03oO<@_H2>s0VM}vuo5pTXvPa2cLS>jl;q>v@!@xg|7V2HoIX23P2~oJrNCxmmyu~sn7e}uyl5gsSP5gR{763UIx#D=6JXP kJWB{lr|1UL?lV2dA%scyxAS=yyxMuRRT+GPPB$xx3^kJ_>0jLdIS9G5GErwVeQ-7!BrU46?hviK1wy fx{iGlglkI&Qb4o$=Rf{tq53cF`dt#766rD%;}?5_P_lr2RyxrEhwXGNQj?if<9^!hb`Xf}nSPZ?3Mf `NOQ4|=28Bp2hFkGV)kTauaY>0?rIYSXVNokZcfse15aQHA&iuv>5=HdqD;rd+(~Gt~9-3dNQ3Xw&Q7 Sp`Tj-U<1giD-|1Z^&!&BW-uK%}IE=A2b?NZb{NxgtcOT%ni$eyBJD#chVzB2j0ow}Md(M}Gv(*sT0R (B9%3`fd!VKT!CCso1q(iXPJuasI<)5S}xh{6PIgp46U%$O6BSnaGd_(p7VNW})E0U?Y_CQXk(e;wpp I|jf>GgjLQVge$StY5;1=~)m}M9mC7DH8%}bvAVY-2sy0!|{;Kqy15iUc`50kjcvSJaKXy`P|k}BcNy >!T6yX2rRm3+uA|;XB?@(<($qD_O3rFMz!1FbO_Duo+8@Pj+2RYNK4P(J;1W6cE3nS$efSTG>)DU7|dODwbi;wo|XYUaI?_%c9=!w^a_FJ(wln~6D rn<_;Cjuy<9oWxPVfpl=pOpRFH9M2^wInS~0gCQEJndI?LwDN9)g;6=f579AzfD$YP%~6Srr*nU!01$ UF8nvcA86@Br(!c#pmvn_6yZt6it6Z&h*VmW9%NhbRXucUd$EZKe-}5@sm;J`ZK@2SeNMlHkgpLL0=e ^ngIJ9_V`P@Qo+Unb9JfE!&2i^j&u|7=khlt?DvgKtxz#y4xfxOJ9-C(Z#b2RkX=Eeemm|A&8WU#he& 1ia8S3vMA6|8>5;>Zl#D|CElDP71YX?9jMo&aLW-8T_{#?5PqF@){F#gwRO@q)nC!|C9SJn)L97u0XT &#AroVPQOGB;r_}tOTS}J-FCAzhIAH6}3JYf1H8JAN)I=&vJ2vHXBw!T}9h*uX<8p>{G9JI%88+`dtxac!z|{FLBFL9ThU&*%({E!H63?HC^l5jaU0sT^S!@WXdVxKOOkt5ofR~^P{%3XaP@HPZXSVuovZ~Nqat!KBm2aB38*+R*v1oMOr)Rh)1#e6~)|?ID?DsNjlz@c@}>)qx2P $D1#n(qCoz18%D>gE#F^sR}dicSk%{8_?k%L62@QCpg~3en|H^uKElsnqx7xDgiquXjGb^_kT7K$e3a %0h~oy5Rm8$j5gvlNO31!lYC&ao|uf0s9H)xY%HH~as}xWG_!7#2j|iTi{e4cN;d^3Gfa|gN+|wjmr( dIPlC=Zbuga`^wu#Yg?i0Uk=GbF@A-ur?cF?Ty+keMeKLlGK3y76`Tk}LyRUssV !bnprxLu{E~oIN?H8nAGHaSoKU;$oQXW9&(WvW=W{!lLc9f*BBm|&ydj0=-((Zd_^}*Yk3qzu8L&fnb E5z8C-!IdUKx{%c%ekw$cj2(6H!TL{vVc>T*MOCm>2KCUg=zm>QRvw`=EuX{r|84Rp7H^cx;Tvn3u`5 z&Oo$sjQ{C5@x84vfGaC*347!6HT^TCYOYKzGsfrHh46N^ynx-y}Y&de=1XSRdT;bFN>K`x*0s#{o*S}E4oG)!`E3u-I0iqS S}uPe%Q#%*So`WGK9N~dmETPtk5ZN;OU1YCO6h=FTvtHYzFy0fC0^R0M#z(sT@yh>)N!c4EH2?xgthU P0NQqeOg#6&aTo9MzZW_(tsY=(d)=du?|f+&mU_M54YYNuGBzX=`q*?rkV{$6AfWyXCtB`|8aGv)N48 g%Lkn4_C7dVxlo2W3^D8_h@T)(yP9@)CfY>NpParm6ugk1I{4AP*}s8C7Jd^SozNWV?cm&Bk}fVNX|^ 0CSpm9f-}0wVfV7JXMXpY=?E~ALxzOi-aI+#Gty5C6YT|Ljj1ZP{#%xkEEhB76w*4r|$dy $RycegHxuzRkS+ahx=%Dh|kYjuKhR=*X;)dLXX19Dxxd=FVP89!LPw%>NMU|ewRGE3~(jI9^8y14+zV W}ZjXw`Yv?mM}*R~6r4H@zE!!eZu>;7gDgZR%V-zYj*hgc$;&@$abgvXW_B?r6m84Jm0 x2AMZIzUCCWfi;uA{eT(jM2S;Yw87QV;K|jaHsN l#lJp2qZ*qf@!vhdRHGUk8ZBDv(T6~9(|=}JfSl$22H{E0gnnra1# Pntmu0rG^oI=s;t7iQ%} ;nn6T(i_`uLaV+!@3SzDEgz-%%OTI+f=-h#m8TyPQ!TdR)dWAjoif7AZ!ydKkp$^mS$bSJ )O9KQH000080A>M2T-hMS&Z!Ro08Bdo02lxO0B~t=FJE?LZe(wAFLG&PXfJGOc4aPbd9@o|bKAJ_-M< 25rV}d1FwR|`Jk?Eeb}sQH=Xf0F+Ek;VX$i8}P^3zLw$+>a@7={WNI+-s$8Tn8#nCRmcIV)>`ruST60mY0gO2!W);atsE;%XN!)~Mx%WaPil z6_8IBGZ;FBlwAuh>X#nuyFJFEqh&aFn%taf9>g D3$MBA>s*_215Y0096i01NTSDp105Y?Gl _ID7TR3vSOh9JJPNIU`KA?T|+wK8*;gOue%#&8MMPB9lDWLxv|L+_)O}8^46O%Cnt1O_BCfXqFy3fus v(|&dqe%x249bIg@C&sXZN-0^?<~pgw(Ays(iFB)RJeXg%ai-x&Wn3C?}^Y+#noSW@Oj)plfwa8VWuOz|b#{E2AG*r0vL+kTS(5p_h8XRbAfr ?4e;fk{wxcDtv;+<5|DC2A>To!>bL1LVzX;+Hws(i|!HlE4w4SE5U7o8whO2aZSO!abJ_b1JnBoz}F> 1pGsFNy5L~Lu>VpF(p~J8Lr0fY2WW*9d0Z445MJYwC3r?yORlcA9cb0n71@9VK_uxJU5~MuswS=RFty(DvWsW{K39ajD%PN*wo-j*sU4_ngX0 !P){g{VsdZ93I2B7BpC2w~0<+=8Ef$-;rhAiO6?3}X!V-TW{x5d{v8(>-m$s!8kZsQ(J@%J_m${{oY6CqdjBRR}S5*XO@ jHCSmK;ownt^!XTh4Gr<&b-M=Er; |>yF)PzJb3pamauwQmahGL2H>zX+k^Pa@dm7%TK0_B?7RP7N)6`I_hfUp#Xat{YXvZeymxfE1@!i=Pzj3*l CyO*;Mn29Vw<{uHlUR)V5W=B(5g^vgr=yiKnEc%YMT`Hv?*c&QRTpM|+Hr+#V+kOBT9sAJGI9sma|w|_6qD^%)h>QIzhk+Kgjs|vs50UK1l SuW)8Z?~J|o(*^l$Y}n+qsJ)d*;)L^l-}LmnZTwq1ssC6o9ib-PLz)nW}lx7aada&EnJsGXN$Np7JI9 B!zn(_>4hAzudobf9roCt+TNa72q|EE)WCWyNSv(Y;JMqV0YV28|zd;iNZjdWm|U4=+?_Y)?S(;EhVPTQ9DJQTDBOxK{1dzOh)1QCH2-eu8jrP#wo#htVOE59 DJI;sbGeIEO8NJh4B1YIVevj_Qb97mRA%ll=_YQqZfmjgY?KY7AeN4*0m1fq25FH;5n`Oca~S>VQRfc 0BSK97V`jpmcmXYAZM#j}mVL_NKev*Uy5GUEtxQQ&(bTM5l8{!p>fy}g~({yuy{Bld!ufU)M^p1O{`xYgxjE xG0YJ5mLL$Mi98)noS9O0L79UyiA3jN(@VB-uo==&>b9xW_FCa3-!Ag*<;;k4_}?f1^mlw%0 *mK|vXXutPP`NGH5JA;bo@(L!tl_cet54K^el+mjpjRUXsbfK7cX>H+^m5bF<7AvozSbsAU~!V3;s0E 0Qmi777JV@qdd^IHTMQB4iY+`Z%c&ew8KS=nxo hYz$%_Lxb7JW8hQQ~e#`fMgnjE5Z~ae`CJ865`aRuix-H0-xH)PpU&VaSqqF;XW@59KDZ1LgFdj9RIK OWjh6$si-o9@TOBEXY1u14A9C*x@&xjMBTok$3O5o+N&(gLUB?oCeQK_cXGqmFvAN3t;=an|w>A+6+` a3@B-+%-UOgKJ2(e@w&f4cdj~UtA2K@Lk&!DTukGU~_q4BLZ37il645nZ}a l~vVLY>lX*Q-oJ98P+kl#OHd6B0w-oWyb^zpF!04|18@$Wk?AZlrhIEvO#I;gaCFVF1qR~5;ktCpW7VfO=D>TI|vl6O{TRKep#9=mG+G3gub=;8nDQ1uxr;`v%obJj*Bz>~qLlO^{yf7PT|(Uz}w^iFS2@l{6z2~VzLE@-14bQbCcithYa| VShNm5ngGGc*u6|I-*9@}90I9GO9qKlhr127PP?QkYrk+?e7)38BbG~%u+o7$UiN~~NJIYI@}WYxAwM w08YlVAT%CKfC&m&>AS@6zNYj((4Sen=D{9iEDT6R@0pX?qzT%CFQrJ|%1oT1aKM!^{`D?K%z6GFRhCBj{p52uD~On=7_**AXatGp=9ptkFcpUIc>6hBE*3_Qc^K`Sr_%`}pRw_xSmf2m Jc8_xQ{C7x(e_?4A4g?!5#heEZY6`*`vBC-?E}AN~^le&$g=@hD&Z%>%xC=aKsDO pnTVE_|B!{|DuEr|NrxN+m+2&>ZVT^fnjh8;d1GrXvxblurdk60MSXCU4c^4ZPp~uyGc>R0X2DM=#YO q4ee9;bhb^z%I0&3P>2?&Lr}mNlly7yq(Pb>I`Qw*i~cEgAD{b&vZC-IIYLywyFtS9l{`=vzpRvdYHc &XI|K`5t%`bUsw(tX5{7Jg#3lPj7}vFIoq351PE;sfs?$kXlChPJ(&TTpk%&3JR~n7xohfh+HTSbc}9 Nt9$5X3ynH~8i5*=>LYAco`EejS@;tWqF*cqyr!^!(0m}JTx?@mR%?{^de*7rID-NojywQTc02(X_l= wF4EZVx?G->jw?Yjjf$9)GbXt7HoQ+YTiP*Xve5to1-h3GLD;tv%)WrC#)N=e2inZIkU_B&ez`N4+8{ #VKmweeH`1(!3_Wa9{>OVaA|NaUv_0~WN&gWa%p2 |FKlUcWnXe-Ze(S0E^v9>S4(f>HW0q+R}eZ$fmT3!6rcqRue%7aO$s^bB?t&b8rfXXqCnE#y1%}Bh!X WkvYTUdutm;$=HqbGaCSoS+L88v$f;voqWew~)|NCu59f|Tg1!+6yre-8G@3ibl(Ein>vv2`A$wxQTE Qqd^42aB_hOZc1QpQMO6v=ShieCJU4S@KPnG11daCrYCki;6pp`SC)wQ=Y$0@I)KYP8HP(GL)ni%K^|F+a+ijuu;Q!>6BGiaq!UEw_X`n3#S%WNELAEULa|@K29*U!Jz*GbIg}Cv DiI%|NAg%obSkgt1<<*x6+@i{MqW9acS~WT@; qdetxT2%hE?eSxM_B@&tzhN%n9dR#+;FeWXL7)PUZpiQz8M>Yq+)Zc6@mdbt@j^s;UBFy?4W$4wac~v sdXb>CT0^?f8r;heN~~ku 2HcX3`$Qb`^ZY`1;{gRXIXIe&}J|}S|Q7}nx5f~tJ>)^ycRQQ{L&*LP|M`3 MEb!AIs!Qyr3Tw5Fe{7p()krlXr9BmPU&`26t|nNJ6!A@9*etV!5sPAyJEB7;oCd>?e=b$px@&q|IN~ #QM0RD3sjmuBdElr`2 qah$X7qb{sB*oyBk-egUrA{~ug$qBrpL4sK$F2J7uFR~=(csw3`aoW&i7dO|jiJ@#f5*=+t9uOff$S- tG@d83@&>bbL;9@On%_M-8!8l$45RmdB;twL#L({R08Iwg5O)UGmpKMP5ktKw0q0R9S>LQo#QLbFH;^=+HZ<}v?SHfEETR1Kp_yGp% ~(GESK5KW%rT=!WmyM& AtbPfgo0Z>Z=1QY-O00;nP0YzM0001RX>c!Jc4cm4Z*nhkX=7+FY;R|0X>MmOaC x;_ZFAc;68`RAfwGe+)ln$RaeA)icr!l7N!&}~jIG}FM)kanpFi!lZG}~K}jY$)w}4Gq^k36Ql>d&WAd)rT+vmWL25uV}fJHnztZ`Tz~D;a!f1RQrZD%T-m@RW9|3mN4BV17?&dqSqBGl4cGIa+c(|)Cwn$L~@v9q9- C=$Lc}Q;!sJy%{H)Fn{8vnyfsZ@az%H{YLKHE`lV6ib9h$GELqXJWOc9mRKvl+!3x)uT*11?oeSmvqu Bw0pCAZM^&W3U7iqRhL&Pf7q-vX8+mLsJ#FeS$r@1c5k-(414mg=z7kp4Ah%R*gq-^++tg<6Vl6}N77G |KCUwJZ#-x&dGn%2v3bKg2qU)s1o0>G0nr8Ija(;b2k2FWMXyJ@o(Cqd<+_z+NBn|u45uv&U;uAvXO3IpW(*+>I+m txLZYB*L!)&LUhD4=1=S=T+hFM*06Rg+;Gsn(o%ofLm8f$J=H?kkn<*}xv2h{Z!JkqhsKq4->}4E7&Z 8+~F00QVGk?oxCKUUfet1zKDcPA+Eyd=Vp_l4Jv9=s=?-%W4-k@t9M`w}F}gN|f9H(Y89 c>S}<5Mgxf!gEM>@Rb0-mlf1TAqbDsjYWJCyl!1iABIFp{g+ufR4!b-~;p>ya4ZGz&OK}gC+ahqdnDL =4?qF?U`&Qco#x)oZU>#HBE2E_0XI2}{6>u1U7$rQl%9b`50F+7`!uk~fsy|VilapRuAh@yw?HrxHtI TPdW)kQGg;MMPuqfc7h-rZ4F6=x|#xfAOd)ySXL?)b&uLhW+=Fq?IkhLxMEP2AZk%S-#&(C0jd4<4hO p(w0DG#>f381S0U7oOYnJfrdoYbDj(+*|JYIi#ZPDsLQ`niP|Ocx?5@+CC+=go~Buxd$*(hE*g-6e@Rj0S?l&+grus_7<~E5#t~er2w|DH&Rbr9C%#w90Su;$xr0ULV7)rSOkk_U&ymxZb )Dhzo(DrV_+nB!ddv~8nogv2_j&k@t)^HG)b}d_SVYmqko+L`(Kw=udZ)zBbD2WWKng@^bu>JL0^l%x gjxGXa$2e=ks7}UO!%5JMVALPhUCxKRey8&flHS&+V4WkMoPm57&0n{Oa_~q4{_^KYJ@1ZusxF7jNFa gMah$tL53d(`$PU=*J5yobwrUk4~IRO4nq$guJ_1E<=+n(R^)$^W17iIyp3ObW>zAKxP2Otrs#Y#zAP ohV*;$s58|WK_~=L#7)!RlXnhKn*8x80>rR^{%$%qKxXA))?Dp%_vR~-BF&G(wdw8TKSN~QOvMt8nTj X0H<$1Sot*Rzu|oa~&s;$HqL+|IT8pi;l0jW`v>jO9{y_N^i=sl^OqWZBLLIOPN4-2uv{I9v9v)gg(T z8Ts+UNBr6M|Uh#a6+e#TYxD=et7LQM-F6lhwjZ{W+>gAsZDH~wnQ$go_Lg`-I00C%03{~kG*pvyV2& hi2AtzuEwp|?*fv2%98sDTt7jCEPqg{Rommkd~ON`)P6jm +(BF;;hM4QGMxqS&YH1@SMC6L5Q`=FxSic2SKI|5m)tuf#U2_B4zSM-@c_aM4i;&A?BUI@dODYndqHP #pq-S*10Xa!SY_F9A0Q15vvT9OAB6^oTBpOfAL-qpex@AzXf`-RCVjDwZSD}A#l;$%Ou~VHA9)`OK8hIZ|OY*B}+-ZEt8}3O=O7a*{ZEK$~D8>wx&<)&lWIkU(y!rC1VmLCs=u#m^lbE?g^eN} 6_;Q(fBPRTeBb7~LXUbvL0}a@}L4G;hPE4iztL$6R8>C8S{wY;almr?zgwlhK&01C^SIy4Y_vRkcU7| 2^oz7jek4B%3{>fL~AUlp9lEx)*|mC$v2Q6a4;t3w^457S_O`3_$>@RJtTQ6AMHszsX<*+)@VL>=)#(}Gw%)^moi9b3)XiZ5&8> Y?uznM!CggX9=$zcUj2iV2)|pzwcZfo6C3FAMwqTX6?7Q!##w#-KpsfEA-uI`CMtmVvr#?%AS-lu!>m 4kpoh$HKZrj$QUJ6!QZ)A{E2EXKsqFBFm^kGPGF|Slk@IHIKspG-i1(r`bSc5{Ex^E|m#2+n@%23MNA q(L2~WyhQcz)=)X>L5O*AG!ThkhI^z6zwe(Hu6)&R1*3h*+0Z3>ZTb+0xy)GJmE@tLkP HO%NXS;ALGi_eLk?SB@mW4BNtOgk2CQtWAyC5T2#EO$Pme>GDk3O;A)DyyBZ?am&@z6fBM0m9_)>q!0 z4%sM;MZjL*leqEKgP>aM&*Ut1pcFp@!MOxMHlz6d#XaFzDRd@>Ki(qqnufaMC76b;K5to1dg%Ds&4S 6Z=b*sv8lkN?(xbG?@q)*by!1;Mg~>8+2Y`RReslyJ98J9lrRr@DVT_BB|lz@d+l?^D&~b=3dieNC!9 R`2J9^H4iKdYT}yDyQ^Xx|uENg%!#>4yF4D2cfviN^&lzA!|_hVViW#2%G S*Ig0!ft@4FV5x_h6S$9|B=;vpC%JT$O?}75;fa^xnxxn%)Xycr*tQ_{PpG4 `_nlV+Mnr|R116m*6EZ9`{?=fWlf%wXQ3|QjKq6qv_j~+q|R1n{ENEKb&fa?cWG8>U+$ZbYnr8b$HBt A36NhZ*73srw6RkciTOp#Ky8zEj--W+l;YNPA9yZ6=LXmY$X5j#1PCl?guyjs5B!2SVf?F`C<;a$61< (D9JH#EY@22`n@pxhe~Av^&vbTjcycI*@O=rVo{Tr=b27=m2);zyrpU?B;USqG{dnR@5`@L3p5RP3tZ K_tJWr!fyA2=s^7zHc5B(!obv@yAw>pByUg~|qa3*rVI(f*z`6Kv6jt`H?(ecsXR8o4^S|$+ubba~Z> f;$0`sWrv>DTf(M8Ie4*YdB=!JL@2&A&O07Qk}X5SYN=gK0DkTsI5~3g?6rJNajvta#1Ztohio6&zz} mwK1LX}t#O#Ue;{I}FDps8~{N_)`H76|M1cR~0m`f}1e`p+_$|pcG_WOfZ{O#UPTSg&wD2RPU>_c{!a FkiNBL{4VF(?Gl75NFMr|>nkwjM#Agr&KbI=1uEBK4cVYp*!!ri>a{{8oxidC2eF9LW7Zpim|n`*~bxn}{c1eX=qHQ>&%Q_7quN#@APPn9k)Uw&Qe3{FeJH-mp^1IthD aVM(Ps%4C(-{?up3A>J~_^t4a4Okflmo5JorJzN{9{s(ONJzhAxWN1?MXX@P&!-;g;;zcmoAX~T<`*B {0AwyEydfBix@MeaD>x$YGm}8*(ZPQKP)h>@6aWAK2modQMO@xevqw(~0009a000^Q003}la4%nWWo~ 3|axZdeV`wjJVRCDAa4v9py&2nb+cx%HUx6|^6EdagrjOcH6DRQ`nKqZP-R=Xeav%|sSyLoSP?lAX|9 #H|Bmqg3)0y4ngDnE*9Gv?F%vM!dH=${c?WclB~ Vo{rGwlA+~?*M=xGo2f?d0;g~bgNU%yF=4GKvkZwg%N3b;_m;#W-LN|4bad o2z2R9<2qGcqW&&oV~PB;iu$r|>+u6o?rE(QwI?$BZ@WSVBYWx)%%fPbQaBZz#*MXDAeNq|O@_*&(QK %D%9OtBoSsb*al!tWOFLC^>(iEP0y)>)YrpUXlCm1`vy-a`lcC?0lTAH9xjzzn^vYV`PK+p))r8{iHE d9NB04AwCaz%y&5RnbV)f+!cT2^@iDJ3S7HweVt#+o|Vl4om8Q8L4eTlRdGgj@+Z^2&q0Tt0^O|vn{?>P_?-W`hrEI5HkG3{T+ZcIZ+2PgqVvEv(HYNiL4#~h+da0 3asq!F94c;1K^ssU^P&e8z0QnvxhZg^HNb?;@oC43+sjK$j$5DRd+lBsBLS0Dkg4l53o3vx1x5b|g8p V(y0jnIFtWv#@lmh)THXrrq%YK7>dly{OD0BXoQH%j~D5o60)4#o!>&NjAaGdiIw?SzFzK4i^J7%p1Y <+{>-up2=T;1<%O^KyOtfHWSB7)Fhg*69AeOrZhdW3o2-BUPjt73O=_*IpoGk&2>h4(;OpUiLC4e=iV yG}_xSo|-_2YUNu_N*ZlTX-qjj2EPg2{A;~JJ(y0XofCdVg6;9_A+iveAxPN?X=?oCSEZ)Z&6*D}X9e Hjk7sS_gHqGTtS~>Vsx#``3IDgpfFXY17)-Of6-6BX;6;!GR^TtaE}#S93H0+TQTiJv+##!mX(W-3oxLd;g&LDDi<%SqZ<8(Z3?_i{T?UOvhnVBkN#1G9Kgd>R =-5_>81HJieJtk#Gw*Gq3unc;$1^?zX)*_at=c>3{0R$dLqvUV;`N4b_(Wzxa%!JR+GTuU4&dUApgol X3`v$D)FWb3uE){{H##jT #vZqbnrDTga4_SaqZx*)!Gl1ZD!2o%d-Ba6BEujHx7$^;~|zb7@&xuRwdCk9|+tyPc3bBK?62w`wyY4 PM7>OU*lz|6}On(TLKA=f#ST_A*7+o9BIjs$QBwwg553>^3=6d^dnLl^S|q)d+hJohM6H|UF71es|&L s-MnSbW6hRY89MjiwZO3u?O;G)$2ZZqyU)1{o9d-Y9Kb%2?NOk+vn6?9O+_-M!eOdYiQcbFaeUQEoHs 5Hb-GVk?7sXjMCL6dh0~l1eEO4U#*0pyem@x8LA!HN}NkvA}p!Ru$J3N*VmdgIHOwWS;$n(vy!x-O8v BK$wvrosMakw)+68_kbBsO>M>g#=?kT#gKtYrVRm{Wi2e`CP4_qM!=RsuEm$Uga3AmbJrlkK?xnqvM1 eu$#Lzn>~x4BEk#TH>f-j}NTQ1}TqDd-ofSg-J=0(y0I2U%66zNH2zkuL+c)M Qj$c#52~IwPj{s)F$`kkCJ&qpdC!<463gwiGg!=w_ZoZu>M0zL*tB*IgmsPS0nth)KSK#sEbB$H;Zrd nP_WGm5Pon2Y*&)ptA_3SNv;-Y`_KUh%Mm3UJ6-M^3Dls0}0N0%9-3cyt>M_7>lbxgLKvu&kXv<>hRV VOcGUMO0Qz(|rmZHw~CMC>q@7P}9&GhATHwiC>PV5f+8YH|E+o&h}(DK;2h)HisE*4kzvR7JKJ(f$aF jA+)C6?z>%2lUfM0aMDoV9g4NXgw_3ARZZuh!-udVTj}2)1jT3J&3kQ&=MSh-_Tk6p0tVf#L3wC@J&L qc8fRbb<7KgBrv+4R@T@@4P29m=4qb`tlC7S!%imY9e^j9#F%A4rRT`g82Q_&kDMlz+LP007zfFgSyu 6irKeAqX!C~=iEbCfukcAscQgs^`-Y~OHi+$jXE?%EHYGv-S`n%PLmi(U9FcFZ?r8Ah6j!7D_t0#_34 &D73^huo@cOrZ|Kk)eOV&`z@W^{M=DA@z)v3-t47Ct~;@;S)9{e|J1Oko1O~J&g2WsNXbWB oC9-MkIwpn`|R@dR3{ncSL*ut?4`)oq-@LTqRU`I<`Kk)@1h8oGPr%O$%KzBNQr`O6IP=_BK%W(FXW* TVU;?+H=WfnIRfLbB6VicsxFNISs|F+D`h9%)Unyy?|LUlUPGvVMiH$JVa$D365}H0!0<(io_!;R<&HN{7H&nHXT|O0rfDiYK0V!RHqj=_^VNL0UdjSLOHFaMi%$`3iap>Rq$y~vx8hA+E^T __jjYj|Ps}YHF$s!H#f*{Poqc|Pe(@djn+9!aMpsPgRaQj_OyeokwmQQ`h`)wcHO%tEU{S+g`WW~MUz q5!&QiKLfEC~4qJ;zHh0^Q1@$g^vPehs#pe1#=@#*%(Ow;|>9KIYuo_&N4M *jg&O9KQH000080A>M2T>q>X1Z)KW0J#(Z02=@R0B~t=FJE?LZe(wAFLG&PXfJJLVRLnIWiD`e%~)G+ +cp$_*RSC8Bmt_CzIt`Az{|Q|XgahRh9NK%Mxt!4x_BhLG#j?xzQa2y$xha;zzhTtDW31#FI2;Z4h?( 4uoxJk-F{#KQ9-&b5rVL!k?+Ohp7vY&_U4x#FU$4!m+K#{u3r~ujoTLAx1>PVxFhw=VK1NG?gbrs+!p 9P`RzdZiX<9qVPObk1LJ0M&jvA6L+d2qB_n+eVku-st6f=PE|P>cu>i{i!B3-9L(hknSdg_|7WP5Q#0 &J!LEk*?L9nE1G3V$F!Ti8TM|zQYU2@GKP1E;aBEpf_5!BJ1c83n(zD6DXsGc8aEp{Abv`5trGhBiFc #at8PZ_C^7?9QpsL*i#E2+c+P!k1j0GEjN!t#4#nDmG49;k)}RithC45GqOFj|%v#>n?f7)ACCI0S-1 JgQYq8pQXw&p2tD9KAS~@Y*bf$7>=`O`C==>1uRO!~-F{GmSEn*2ak{e~gF&>yd3mQLj9{7di|hKTFsn(Kx2;H%Y~l<0hg&Ju_CPRYqV3;7F}FVTgUuMRmcLaE%d;Ziu(E2Z @KJ#52M28Xhz8YRBYH`{K1-C$`o!U(VL&|K8Rn{ {A1f)}pO!1Zyik75h_9$jzgkfDX{@GY6`D0T`w6hwW##V4w}iay|4!VV*jm;GS^fS~3PlhSf@j1#}VV M!qK%Z7BGF;eJa_y3mPx(v1azMt^rF<-5B>4J`V>6=(D8S ZM8Oc@jYT=gCzLEBdqx0ZQIGQ0A>|RiGu0>Kn;PtpCNUq7n6|A3nU09vP`l8ENzMm$)x!K^=A7=V*&@bC&SuKb=lu?475Yu!iWh$xVB?o&jp6@BaT_4*b#E0Wq @MN#~@x*l*JYR$_qQrnaKh_!T@AQR8Bw;ypz0xNXL|uk)C=WUR)2tbGVdyOLWz!VqmzKfSNVm(d8 Y-BC;W(lXW=x|IR%RT#W*sr`Ma#^4q-R@fW6RYoV%Si+g=4`;(U1$PvM+yZOpzu(v4&-)ew3sxai7NJ {c6%G-{W#q>MV!f-2u5}`;E4s8Dzr>mmP#d)A1{yIXfB4P?wK`0R@s}MaaBG`xA0 erBL|{7T+S3?`zK3MQgxMw;n3Eoq4K4_$p;Kg6NvlgXY|g`?wf&ZD7zB+@iw-_1_0jnL^`w^ 7zvA{cCb}z(%1g$o;DsiBr$@5iMI52(#M82o>Kp5Git_xj3-lCR;_pf49+d!t^T0n_c$E!MSVm*DS6@ 8ma9AqY)d1B6y_#mSG$TE%I+s?d6fzTE6@k>xbj~Ov$H(6A8?B2Q@xZ_=7y%{$|SI2EL!ppP)h>@6aW AK2modQMO^=9Po&lb001l#000{R003}la4%nWWo~3|axZdeV`wjMVPs@!Zf7oVd97I6ZrnByeb-k^)r Uw4y-0&Rsa+$1<2JoG4PvK7;Ti(HOYO3eD3#(mHVprJhZl*YR%^6H7KS0-&fLz-P^x6xfV%6r*Z^<3R w}soE4L#fF(Xip %4u?f`=S@1-gCu!R*K2g(8;<*WZ2>H;e=fOD&SU!VDtIO^H{t(XT_s7fs%hVYgU>=+a_i_cP2WiR8Ty W{7*N^n#2V1=3Kd=?X3Oa`K%j&vK31lw_yvzw0BbR9_;JV(iG|w&6Yq{w?jv RvnSsbXmK+i}`sa8U(wiph-c`*WXbPd_8pRN$WDF+o|sJ0^@`DTl|u3M$rh5$uNYgQ?okOU$vc W}+nFKopt&ergmt1Wy(04+qom)gZ_gU28{IX|}s=N`gF*(uj6No=SwUad<6W24@r_3NCjt1XpurL;Ei hE){l*`xB1idL}H!?W8?tDjxBZ5=_L+JylRk5*g(y`j7|j{eNoY8zu;$er^klEKDl%_=BMF1RX7pLIQ }D>4(k0@65qDG5V_%X|Dzk>J^L0`4#O2cDAHhXw5U5YJkFkcmGE(Eh+>ZIVmtB2s@5aBdlx5N|SUvD+ K4O828J;s5fj+knzx+jnO9Lapc>OvDUho j@s>#27E2KbDAVk14c=oJ;1_(%hbjalI&y6oRi+b@#3`e*coOzT^~yIpgQd)q3=0j<`aG9Q@QNiosKn OeZ>G3^K27NPY?Kwk|rmPW55(cW2lavCkMq}f0%zo&K2TseD%5)@xe0_N#3%X|}?gGD=v)klLgM$6YC E?_J=3vJeL2)ilo2g|hz1~s1s&zNqPqknk_R5M{X4a+5b6C;$m@-Fp>%jZ|K*rkD-{y&KSBF4w*(j=j NFga+Y9WrCGnaltj6#X(5J=ZB*vL905&=D_EQrUz2g$Y8+3$k;eJr|0XF =Gi8K#uv}B#c8m()JAr_X&V#@JqU}1JYsexa~2khDRL(zL6_rB^418dPR(sn)MdDJH)Uu{cwSKI3s;1 )0!+$Aj?8dmS;+{Mij*;cRciWZcxp{6?6#fGWU%w@jhMzIdcZ5(OS3K7XEvuNmTY36)a!Bn3=({PbR3 ;Gva1hrb3Q*ktxOj}T{W%6d%>_I*AUFOi5CEVWXo;C57fRjdz((MoYu_Q+}l%w}^STOWRGJ$Ckfar)Pa{10h^>unxA;{9NN>U`l?xGbLb9`{22<$6z0$ %EE2mej|a#;uZc+~*VY*<8k;TRrMgboRUHrOS2mK)1{nc@N_=Y;X%UE8++A7S;Oit!j$uidUqKmxtB{ w#3q-r9-&EXrbS{OV=s089SY0f+LCfu2hzSHpmKn%S%f{;G!(k0^n=BVM@AbXo0;6Npi!a|LWB7Zc*Y rYu(C)X4mkk#(eRx)SLVGLE!gR*6T;Vf&2qdO9KQH000080A>M2Tn@$+f^z`?06YT#02u%P0B~t=FJE ?LZe(wAFLG&PXfJSKXJv9OaCx1Q!ES>v42JJ{3X5Gp+IRq@PHTIgCUrYUDHw_d35wlSyv?3vPqvT{=& J3q9FSsv_V3@Mwx$PlETQcOV;Q!){k^*rTUBz8d@_}&Cx*wN)y;zGQ3z3XiU?j*gEn=ASs}okBuRFP5 JI*#78DE)Y$kUC&6sxcXI+;sK*wyz?8qKJ=00(C9@CeUFV-T1{4i1hOw0hPM3$nEhtp(GGa60uY U_W2kz!9NpY3S65Remk9xIB!+*axrvySjZNB;XT<3EU{es_U=FR!RDn0v`SGV2*;10e%2dkQ 16`+lyKF}_+S>&_TAZ7R?Ql`l;R;Em{JhYyhX5xR_b*94bs*lFb&yww%0^C`7!ASG -zkVx69R!f<9bH7^iZ!M2td~UsZN6APmOJ%Do(20@hFmn5F4VGhW6T@ld*OS3~82$Z%|7E1QY-O00;nP0YzLm06t&41ONa;4FCWe0001RX>c!Jc4cm4Z*nhkX=7+FaA9m^b aZ7daCwzh+iv4F5PkPo4Ad7YQIy!->=p(TbT`4fO?3Z*nq;9s7 pav327aEZZ^M&uUkd{>!McND2XDbQN6Z{cW!Mmk=amnJ^}oZ`bKVI{wS(dtzspYd2G@}AsU!F`!S hJmPM*Hd`c0`2&Wwc!F$-a6{s^vA5&S7E)mi(3QS0HB{JY#R?=|Jv?#L3i_BXK@5#V>S(yl$e-96#JI Vg6TFjjqBwoJ{zZOOsQMM;k+j1e)+yaGgb~SKF2djkHs%o&wPWorvJDi8Gf0p%=KZvjca#PU3j(e662 LXCTL7ROSiZAx#6$K-9Z3f)o`)lGOp>8zXUgDNnyG)Un)k^GwXt?nh2DKMPT@ejviXe9#Y6a=Fe6{4>d&+KN#){@Yd?neCH6S-~Da*g42X#+v1G6F)#;?1f5=7!sKe?Xmu e)76Tr`f2DV`_o1-!VRONJta1Z5$MRK4Ic|2fD@R$jet@ip&Vd~H7ORdEIdqh(*^ n)xXUH>A`QAO#Z#VQ_EaLvtKw7P!5@MynwkT{&r1X8;vsjt#wEROP(~H@guq_a5eapOG=yMn=Zz >&p>HLWu;|FvWq&^0ewQ1XAjOAC>+Q71?5q|GZ5*lUJ5)<30#a$A=S8F{Cmjh;_eCB{Tj1pK66`HSY4 yd$R3%GzQm|b4>kUx_z55TQ4aBHJ&8zPa^j-zero?Oq^USw9&2-Zr73ZIK&E2d48Yh}2dBDhM!q*=tS =hD({^pZ60HN=jz4Nj}US5li4d#}sSu2W`3otmLx$n^$ii^&BvT43rXPI2E9Z_dn{Gjrz5kY9VUFNi} GUW&9rIcB{9r-Ty1`8muEB~gfE&PZmkONZLS$d@SLSPWz=Arx_LK6CsIj-Wyzj~|ybW9)J|a|DTVh&5 _i(f<&xuHd`yNb3~dpn#+2pCdAe{qF5MXIP6(eBEOVJ?sKp%8HY7(L8)-l)dbzm4*@gF80ZBDjfBS7H ~qB2+pgt6r4knK)`vK;x-TFwvlX9x-Qc>R5d2Wqi}iaM~gdlue)2v@SbyPu+1*~bo*bk^Eu&4*WF~hc Aru6@(WD`{Q`g%>(VyB_8vx`FDV>PYLa&MCgS^{-pvP<=f+B)xeDRFF?P0cm&0f&AH9JK%o(wjt@C8Uexe@PRcB? 5CI8GSLxOrRnw{fWFfMzXF`?i?91hki;ST!lmf`9+{JBVBgySqt3|D%R`;-BF$+5jmo@Fu~0Z)yrMX| k4u{q=aGaQLvMOc-MS2T)4`1QY-O00;nP0YzNPSfMvZ3IG6=D*yl)0001RX>c!Jc4cm4Z*nhkX=7+Fa A9s`Y%Xwl?OI=x+qMyZ*QY?)hmtm}#2!CsN>6OxHA!3B8Rs&cj(fvU5_CdLksK1r-KEp--d+45upoG+ yLzS%EgvKjSS)rIzg;Yr-1Y5&$=gmeS4*G_P4gL x4%oWOpkxvUkz@sCq_!O%T_EZZM*)3Z{%|1fUrveXNvv}Vz3!x)oiR@d?y+{zyoJ>+kR&4PTdiKT!9KwEz;1_%>U4_b3Jh~Hol)F^2OX>YwlI33DT n3ITh0mF5d@ewUwYC{6(W4UL+ax}2eiSLs*qC9mTO@22^WdskY5NBpUswsiB5`PLv{I8C(eYWM2M3Ox hS9^KV9ES7}lh{4U%`(}IF8!G-y$Q%J5Yjon_S68;YOToxedmqx1eEMhNwIOnIEPiohBnx;VC{mn{!> *C21~G^=$H;cmX)Pwge=R{!Hn0tJQC?wETN%3$^B@)Qc=7ZlZdhJNlqi8vyzKjFb>V1$71KoPg;P`29 bOcp-$pV!`TVUO@#88)5ek*bANLyE*mUmCHPED&;D9)cfwHRIcL5gMgoiqp^M;mBHz1np^>C` gP8pXZaMOqml|$njmA(UMc1)f~2LF0~8*bDA8I$2YzX@26Um(5b27qq1Q#njQe0Qq99ISwz?t!OF(S5 u42RpB`}*wVUQ7wR*|&OzzB`uh2etWf)eVGS!g`aE)(er0|VM=gHvIbKNvekqQWh?ju_vlT=k&O57>Y q1oki&JvR05|KRcP;PF2a9};!ONL+}(!%f4g8qC(f&i1QLpJadB$hOzH-oRl8(=Jr#T?{uc2Qhi<8-$ (1AcbB|+F>zhgIdo*{YE`lDeu%V9usewviZ-Q=I??U~C3OQI5{sSdbm?(5kN;)(S3j IgB%;Fd3KNx2hyBO~%fxl#~#~dfW>H4q%A0$)=;=!in^#F#R>?$#+zU-~g*$9?UA0I=gu!ocX}_rYL 10N;xQB6l1Nl*Hm8(s~~x=#V>55ePL4j6jB2Y!JG6c<2*JFE;zq9HS>E6MMdfjKb8}5_?t}T$`!ACEn KKSKYiFsC3zo+2fYSrmHreQ$JVAJej?GmSW6|PlLQSALqyrQdM)Cx(0`sNN((AwaK8Z*j;g{qkQVJNk <)Ikoy1W++d&D@vzAyRnZuFd8lqmns(x49aN7MgI-ymLaBQYO*&zedqXqN0+C$GBo|hlF%ci*!`PrD@ ZB=Z)J+0!4k75a0|50Xxs@FZR85n)K1v4GR0(*jtQ)Ko4irgR>q>1dG<3qX8^=5@}a>F QlM`!FKYO;=85GbbioB7qg7j9IF=$)EbFKf5hPpV=}7Yl2boF^Xo0mkK8PNsRE<+wQz^s{>D2|NbfX0 Gs6tG{2+F4HJ=jl||4o<=tvp#(+=$UYk+`nfA$M&y72qd8GG6 >Bo>cRlA2|KX1ah^(!U 2&VAc{@*UtivQwl{UCctXT89+J%uH5*z%YcJsiakfa3cz~}9oeJs|4QZtLt>@`c7vDr=w%EOn5a}0FsRq#j|F>40dp&Oy(Jpp9xvN2{WOB(GMf`<8 dph-nM-6T;WVDvnO{!3!aDtw0(AiSV;ysKtn40>06Vp)fM?5n#vpFI`kI4+E%kJ!FpGzzm)Qw|Ihizi Ldh0%w1v>vj5)Ew6deDRGsN)W;6A4*;Ta6%K?DyZafh*>*rKa7qwiK`jz@XcJvKSb+a4i55&dBf7}lojw`*UlHsyU8=a;6&x0R 6uu*{j!0q)Gf$Xt9O|N?a4OmeUAqupQg1eCB`K>pOH^xc_HB?b<;^zh`LZb-^45OnP5EUH>Qtg+) *^evMXyGOfuuFJVB-e(^S-6PbcqMUC)adG*3f~wUe`_w{Gef;UOtC>6j@*sBam|vZ)RLTy>T$%R?oav P@Qt{hoDwb#nog_)X%dWbkof @XEJH&^wp<9b@orwMee_LUR08Y+WCN*UyC!F!Yh)xp{YKR5c$;X5^{M7XJoNO9KQH000080A>M2Trl$ tVCywb`OMGn`#Y9CAW(w3=+~f4}a=tMTAGBw3ZpnJ%w5Km%w1jeem4mg`N^_F}#*tG=weQ7 L~fnyM-mec9NgW!~qDD(||&Btd}xSu$;;xO+d|gEa1=h;6R|3bY6<_AU1m~cIn@zertEkgV9_^C)!E#tT&M>7 -NrWcW4_sx_2rAUdB1xN83qIrHB34Z@Vx%t7f-V%e}4Mpug{);KcS?@^-jJ#$*U@#SB3obo$M(MfJ%V gs#lZv3~;n%XpHFXrwxv2UddmtuxPy~^e+YUdb`mj|5gL|WHcU0)Hmg3n!PLPWz$aEa&a}qdDT662?; OZ_sgOK1V^L3-JMY-dV2f56?rEze96|$a$6N60?4lNj#4`@6Y!3&DF>T~q?{+?QSp9JYIMksUD1Y>{wc4zLUm%Q5xOk;YylM3RBC3XS=BTfosI7qOna|0H|653&cyd@4pg8r^ ZCLZhk7YzK;teL-oRh+^er!-fq9Z8Dd|cf0f;>;0njXV@Ip6lhIRIWH7Y6CjvP*y^d{-cZA9YSza$I(1(b~uW4B+E(?8uzLhmFS )j%&Tf?YkndlY`NCZ(#FQ?+=(-%L8yGT5SaPxP0NxIOKHD*wNeu2UTHA2lr-Iec(YBw=!3?@=@c;M>I wzt)S{ZJX`om92V%DjzKmMNKpk17j5sr8jbRajF_-VYP^4=t%dVQ{tz4|{@@iY0S-nt 6;xnVvohM44T$@CILZQW;=+j3cSF@Sac9yOZF{)* uPywJr2p*oOd_2nU`C6L+Ps*3j;Ag&A;s*esWY*Jj$p{)s(Q6lq>sEc9=6hfp3YK!CRvbKDG PbY(+Wjuv-V~X{qdizrClgOsbykAtG5C%u3n?{{Hqro~A#OE1iseu;xQi*M%qiWjh pab{nKLFI~^+1FuET9z~O76-ITb7o(M>TE%Yn%#d8X1hZ@b^(x2&G3(#4Ahn(b!0?=GnAw*08Hd8Nqp tyj=+9zP=1sZs$NhJRx<(N(}T?20{%M?2W>BPShAQ%>dVs4zFZTew6jnwmu4-@3(aJJ5#&87ir2skDo CriWKc^C1xh-ewuDid{G(2cV&hY&mhW1lnFy(#H*H1|=uB}z)bS_Ms#ovR>Ga}a6ly@WazLjRD;N%xp Kab2Bt+3?0<5EWpQ9?OoE^k9KuUwENzG?k^@u5_41GY_$9O=O98wx_RH(YDN`DoJheVr}a4h|nt5IsF0LJ 19p)pX)yMRtf%>V(z@5Acr*WMp)|BbitmoL)j`PfF#sPHeds?FeAUJa10V}8)_!l`v=hjZcZmV`kMWk 4DtY!&D#+{I`duz4yB~q9(r^X-i_vL!K7AhZ5RhCNurv1EtMGVUHd=8AM%yG6SMjyfT4U5@kHucnDp~ LfIN%0L{->`u8Pkd4Kl77ez@LBM0`khHLb_BH++uNVF}w)^;mpP&}B9Fk@~ C#KT4;?=LEer9Pe=mIH1Iihp9~x@P2X&RWHzNXS7($4GD8F>HI3tZQ)X^Qo^1?hTLc|)%oji<}7Jh7z oQ2AXf8CDiUB$gN_TF3Y3l>g^}Vo--34eC!IR7LYX|gNXsTObwI~wL0{How{Tb8hL)RAiqI?=IRKxG0n}`63-n> MhPY0FKWza85-)Al86MWNwc;LBxe?M=27{WEnmIdEI3<1=Lt6YTWX)I9JgXHljI^&e4cL_j*U6+SYl~ ?IiUN4vC3_N&hC*#4FR>;CQ@87xNx+)Rl3u#Ga ~SEuGsiD{VOKB7%xjG-(m>#_%>!)jNkefUh3?fQ6(le@Y+7V5dY@cGRo #`Vr{(;8qOO?)24Yj?O=q;Bg{vt>NrT3ARi8CHgvjO$1X_(sgz=CXl(ZZda$9s_yM^X4vtVf2t}^=RL l#ON`v#jl5W+e}f5-!sdoW}Iv|MV5~9@Xa6|wh^@B8JM^JKdbro_PDq`U?g~ZgPh`W45++vI(XFkD(4JiA>oAD4%87AJOhj7v&a i`teXR@YOUABYc(IP)Ho7*zv82 >kR&uRRWFw%#tY|Fx$t1dk$!7;g3G^9fk8i{9@V^Clx5b`mFJLfM~(fOq7|Asm4^Ke7Lo1&MHI=5WS| EYZ_Aw!Yuvm!;&uEFSjru(khWMut`8}CWmGDg3|hJOA}uQ?4V%r>A~Ru#If1xyG$=ZBmgtBx$Z4Pt dmGh>nv2{~4T=UIHHCYmj4f(+sKi5!Af=XYWVsVt6=PBQ4w{KlFwr(Yx| X_lw`c*A$va>ZO&6-NiYU7CYqoqwL4WFJ3%*{=EyE$`f9Uz$XEI_Jo*T?q!!rxrJ-!w9_E#e1{=i vN))H^PTI=_KsLsW)|$rQn(ZAjg?&>22*~%LLC_4+4@ivRgx%ONUEfX3mQ55GFIx2)+E(wHkmaV{f|B SCU**+13O|n12z1V(FPQS-nT_Dg+Zrr$@^wqF0kF)y56S7#RZc|Se^-~NvXl2U6fcxvngu1y1k4=)pS KPhxBkS4G(R(jua`oIvp1m%d(N%k^IF~SuNY5X6_1Ho#zRTRdS)dL8jAPvB_H)9NR&VDr%wnIWVDC&B eooS>L<`)$0t;e&XO%9m2 YNV4!-otv?O0oupaLjkwJ54E%R{HKV;`7>daKj$7-RVF$M*~+3gn=6%ADW3nDQx($7LwHXp#iE!@HC? ^VAA1)dK?*!IFTFKuwJtj*~1xYi$tJwn8X{bQ1w$Ydx^q_f9sk0=twJ$jz0Bq&D>_EZDe+X@`OPj4|@ c6$RNydFb;fw#-eV08)-`U$P6dO-l=$)oEMj4^NbhO?Z$>GR6ESNRxN#T^+I5}YAhhX !4IoeIC2nRB!$fd}p%2mBj8(*YGZfyG{;4HuDq2w=i0N`#07esbFfM6z7vbxBllWH7;C_VleK?p?upKsO>41(kDs6|I%fu(7aO<`m+mRjVpP*NV4k_-eJD ~cW1mQ470HkYHus(IkM4ofFgmuS`GSY>UmUT~5U0F4ovt`2Znz5^jf{mRom&iqpHPFyuloCe vS}sjzWT|g6+Xa6B2K#OYTNk$}u}Ta%al3~y;%1dTj|R0%Jymk}fa~GJ&Q{5dQ`N2gY4m25X3d)0$lj Cf!_2-8Z9j!t^#Ia@qu2T*-WEHXiQ|>+8)hKq1pfO?G{``n+;3J{L+DWJj=hG9z+LBLlsW1p@~erpjm )(!UO`W!>k%glJt6+Yk)e$UsvvIDr~w?9Z^`{IZ&gzx;4Uo>4U*0Br 7Fysl)X#}++_2%$2S>-Z{%)!F_Lx04(cmx7gxwyeoZ82UT~4H$c=VJGM1m#ZpTRsoD )+DkI~SUtbk0wit%JKl+jmJ38)&$ZI-`sqCJ=a!zQdJACMr2KV#I^hDlaaOiOC9r0~}9e-D}J9`C&xQ l3BlU0w48(JWw={7ES0mHkOl940tYX?^Q8#u=+kMF8^G+FwBHFdaGl3?HFfMTckLm1)sSA80zh+KDuXIiMw`j{gG**ap=(MCCNY 3wq?41oEYL{u9jrj4mN%`8mC`sR!CusskYi0}HjTOWPug#$$n4xflU*~5Q^5Tp3_NyCH;a-{Ru-!=QdN$ nN`AiqDL@C@;aZybFh;MfZQrw`QfnLXe?>B)-s|!lvcn3odeaXsYcZN4JYOY1wxYC2L?XEHfhDQT!fh kx|5(G5eI7C~ln|Iu+X_&I6#EA%94-=tysfu9sm?u6!dw9()wn8bitT9FhDr$aRTs7r`hmW%Bsj`% U@i_Ya2RM~79~I7-ath>wkhkOu*os^?xw>v%}3(SxR !le7@oomK3~sM;v64zI>`VGfx+%>uR$P3ME+kZ*giJj?}{ov$SLXBuYnDMjCl6}~I?A#qcfX>98GJfOFK7R 2*u^wEd##sL?F6;rWiq8irHTpSPy5l3=uxf&=Ds40#46>Kn-&f-Pa9oXB6}cdhOX3aWM;6gr2T%-NPb ua2yJunG5q~5rOl=LrUD{95E*{R<(M0{yBX^)9apVuK!(qPtO~P2E+(PhH=+LS&tL^+E4zOo^xt(G*V IbZ~35^Ai8hvK3s&r6w7?!!m$y;`BIuc9dD)k@+h~-DsxFcovu;7daf$DhF8 5AgPJs5IeYOkTQgJ|zQpxZ}q3b?x1W)%E=|67oz$sM--q!#oM^M(m}t7f(M*Ke?hgTm|yJUdPAgKV)- bv9jJzfBaFjIt@3GV^7p7i9PbhC~sqd8bV^(&r$I?!SfY+@ap?oZOTBq)x0Qsx=ys(FP-!wZPwHvJdu s_4UxUr9~3`cLr1~lV=+3q$boyEqAkdK-&bOxh&wf@V<|tL2Ya+b&%iRY`c*0iSlu5-HkfX9>?&S-+3 r`soLWv$1bjw|zEh_zbraM07f?Oa035A+oTzxj)ioUZV~ZTCt9=IbW>5s-=^w7NSRwJT`iYBGaBjx)R YFds-XAEmb(rL!EVuN=@-=m^09x{eTVkYu?k$$po8 #`!S94RUBx%aE$8A0Pz+k&**x)p1nHytwEe;N$~b(orZ_wMR0}I2W|_94d5((|!QUjIhhoEhjg&MjB3 szDRR2w>ZKH%HfY=4|l{fj1&3tU7?|A6Aw>)$a?`Wh@|Vws*?8)W2OvzmU;tjLzBz9m!EdRu>6meE`e 9_kaZhpPao*(JsJ6vJ#U|qvl-TP$e$1{NTvgl-%ILNF4H19%R9P#V2sCE*2Bu*Cs3?Tb83Bd#=x@=^M !*)fx|sp6YwLqrtup|7XG*mT={(kr=EfNVmsh2d=z>P?BVU`Fw1fvc+4;l09E(s0GY`1-{%^a3w1o%> *dGkIW}w>xXBH}<2F!pR15;5VsHQXf`tf})T1$A!9HWA5XW0Sm5ZIioY-U>WJ`n5x;|PTu6TtU;CPn2 U1!9LSQJqJgiR9^U4rx;tu0gRE?&9DydX#teTD1J!JENOfaDfrA^g!>!O~Xj7Z!p4W( #M@~ayqB%c}H*x*~#)#ZttinCE{wLZ3iL-sZa3JXvGhEH~%qM^kHJI_)vk8jBB)x-d%0KN?+v?d|%fy o=+Z=}QW?5GCS*Q6IoU6f6mUh130sD^zv&KS^0%Ambb;H?-tqQMQA+ATKH%~RAr8-A{hde1K*(bp%pA VE#?im~=4{`F`*l`W&eAF{yB$)y#V2_S)jTn-a(DY?%!XAqq1tlrUJh-$i3^f0ZjS=_HR8z+A6}kUzp LQ}4!%337kRL?ZIU&RIovK28ShjEMO~rJ1a@qSw8EHsPi*&a^&d#`oG2Gu3U5Pgfto@VW4Cmp);ip~L 4uua~*#2uM{-+AXk6tPs3<-fB+x+Rbivtl|<}H4Awxf7`{mocK(SyhPgV=v{tX~~z+R014@6yRWq|>4 ^SJXHBAdna4A5$g`8$^f(cb1MM%2#vQcxhBBB$uaQljo3FftRq`-S9$7PpAjd8M9HBlliG4D%$r} 6Okr#eph%Adn{@DqPWd~M=Cf(Lh>@e>ZzwIjaau&wEKqC%ZNIO0PnANy?%TtL6b*CBMwg}&TehBeraA kjv-{dn7Rb52`-%8nQIKfxCJ4BFt;z6U;dbi_xF4u06^=#McS@zo=9(YO0$Q+(Lv++DNk<;C8X1>%`a 6kuvw0d@RDf2=*BPj7A7{BoV2;WArbJL-FZv@!5)ix(cfbRt^RUCuJDJ$?oopZnss>~b4?ltf7AnC~@ iL*VCWm5`-7%)k_(V{P(_V)*5|Jmrc8KL6HX)*PS{_gz-u00G2S{f+zPnUYj8^&XZNskktB}Ou&_{Z+XRs^3TM%J9h5uCx0%gsu 6#0+G_cQw;zC?g}ndZp_};d!Nci;hu$ZdA3^GaN7H+5>do&a;=d;1zb7KSKM@Zm;^9O*0>km^TMNe`7 L$420=n$NR8{Jh(ILO+7=Zc6IBnzcfr+?D7A>g!AlzXX68t6<-u#`kS6gUnj<54Aeg}*0K;2%_k%Rg)@{}uYbv2y4KtcHuP>uHn*uQj)8B5_|J>&NiCN2STjn+1q5%`?=3hknDDUl rE~e^WA1!$qRmH%pp`M(DOUI?MSDU)bj<-Fa8F&7H=Z>BDsjNyF_v)=$K_w`a^oRX0@pmsQk|gxXhP)h>@6 aWAK2modQMO;X3;h^@@P3@*$Rm>jyVPcYyu6kO`sd@ZivDvv=R3!?tk1xY{Y)u`zQBHE+6&CdNdv q<(b(d!WO%`s(;xZmSvH?%SMyxGRb`vMYhPw%cAeM!?K#eidMqX _KfTDyye=mEa@xXJ7#QCdO{ntEJBNLw<*S;FlklI14)K88kt+Pn59P@#)W*YTutqC^| Uk1D4L*j-OEa7tqHtxyq9|U(R9lrpa9a^L!Z@yf^uLc9|4q@@fsJS|(o&kB@&#Kt$#-v@S0jiMm)0D_ Yjs^&&e-$_fztZC)Sn3=MU@SuxL>;$Hz1uJd+00SMJx&EinK>8#KAb&$NMtJQLl{9)C!#cchO))3%HU QT(?Eg}qWitC#>{12n9!TgK;q%!@yTCPQgKk)0z;$5Lu!Ej!@HO=@Qp4I1NU0v6C(~Pe&Q~H(q_HCxY H!wt{1^NqV+BI#&&#=JP+t!f^cw_HMghFlaWTNw8vk11DMVha6`8 g6Cs7RdjpNVW}N}h1EO5X7+3EtukD oo^chEcz1~wr6Oy({fVLFXw3tB6>twY=DwpWtA41*(Dm2Y!K(~vsXvgEU0TdjVOecxy7__K`p%@oa_- F=&fsVPN6YiF33;qzAnQ-W+esnV^xHu5}-0YI)H$B|810id)$G $Sz0@X`3&5W0JG!+pL`AI@yfB`fl?1-3A8hIkP!1p~E#*rc=zZ9#r(PRz2@i{A3>yyabGFa;lMQeO*vSUe)NAi=Mz*XAQjAxs#&IC(IrJd )gTlec*fzzHQjKsbr%qHkayvEv;y;68H$Hld$AEEptrid=Nlz}*p0_4wKvUcPItQ+)q%;TUJ3>jP?7+ O`?{demAQJ`bq+p41>xTSqm2Lnq2mezW-bmC9cW?>>RRkx7 @P^IRlvT6T<9~0Kd$ww;v 6|kK`sV71H0=G=d0)Tdfb&)XHfZPKn)5?6Yh&ZyQX}E3#*+QcE(WiFWEa!<3|4E v}%oP*Kz7%f`SO!5xX3?PazrPx?-Xioah?H6C?u;&r(=k=Vu&o!2y1>e&w){HZ*qZrWr90{+ZS3Va*S9GNR0#_VX8zZc2`3S;lVa <0vlF~q9X2Skl*AkO4zn&dDv~sCr)afotZ$A*B~>Rs60@u9x10^MF|7Ba7T;!b}S}}ng7(#7^h?O6{m v$qlAGp@ET;Fa_V8KA&?9J*?&acS%JYBE!zqYguhZ5@IhZ?6C|BN+r(O$0nsZwuSyR3 i)fCA4R;TF}Jf5>@lw^g(=X@AAA%P$Z!W6#Lcp*X6OGRcf7uOXImpfgB)`uMyWmQfD`f2!uCC);JOPR 3cTdJj+LIa$8n+9v0d~`~4s~kLXJjA!Vu0tb^F>ym_EMG0=h?D>*4^FY7)1B0k$f5WTfj*D9fbSM$UNCZ&7_X>!(aosA4PTmASjwK#h+TfBlTB_4vgibK{Lt*Q)G>rS= N;qY!>o@{^_;jP6jRF5&i2XSfS3!b4~`a7DnRP&Eycjk@F_!)#z$ogY=izsZbmng^tkK)Rc=kM(Sx}@ qvZ*qJ0GXR*qzv)H^sj9Xgy2aq$KiLgcGm#V!7#>K;eGagwmgM1+qG#RV})oQ;B&N38i8!zP#IrVwkWX8@sbK{RDLn6Kp5 M0y-Vc^geuVQ>dm5><`x`?cN?K$?k-4Ww%7v_<`ybbSUgDa_vn}@B1Wgl^V>bam?8oU$~ilL@u&i+*j Xoz2QFG=ba)&?;;VTzxz);0(W4ZLek3Xr%n+C9v)fE)S*4l^3!YB1&ar`6U1#e-vd9-zy?$HdcLO?pL =8gnMZ$EaxGt+YKQF7pRf%7whX8dzYJ|F&<`<^=GSWS&_^Ka3101ap4lKLr#s0l7gHD%jhjBe`o136f VV4x?@q5M4KYrr2(IDB2Ms)*EeZ6iF`%itjaH(a}(dH(-p_8h;8{MoHDd0s4jUR9g{doHu+X3DoI?hF kS-3a5>VDaNz1cWvcDF{(!lemn%&OU}$$8XJ3&(n7rPvMW@v`#AjX*IFUA}AZ{G$SSP5^*|!GdqL$!$ KL@4iV;ZjX8yWJj@b9RZUSAiu@T64D-(@A&{F?$NW*z(W-mkxAWJ3Bl=k46w2XNL{;t^YQ7$K$`&Ii{ yw`Z80y}b;3|U`c}+chGGpJ;iBf^ssaHb)9f>9JhM+Z;bb@`$@sL3C)&!QS`d(hUp6wC)C$_~eT|N;6$(>GyH>LDOrtvattE52r=H&S_D{ X%OL%M@{tP+9MyFHD&}@nUE10D1n;9Y!s)h%8<&r=P*tI?NM3 Mb!XE-q7=FF{BRD%lj`c{eA1#C@QOeX)9#&`(D6p(poF`mApZ)7Itu%H52qy$rzH=kC3~Khe8TZXaLm w2@sg*8En09QD^anXmLpR9$irE~-@;kL^XjgI#XnWu+2Kgx;o!g=94Ln0GT}qZ@8LfK=NO<%v)@;+h_ 7}86%AI41jto>qs%l>g@6-BY-Y90OUYphPNC;W*{V$* H$~g2_UXkQ~GXrM6Ar=3G=$H>Sj}pGQUHyZBv%Var-K0jhpX*dH(xkp4r-1vCc~nxjzrWTim|tJ>d2O ZvQm|LxtVKzhu>_^>uK>G)@|14a4}6a#(vnC|NW~MH={)#ECvUj`1+?LD}}8Y-6M%sTjPWJE_qPjJ*e+?Q r}rgjOR}_8<*6GxP_208=0p;u!=|eK_n4#Gg3T`&(4h0Uom1aW8#f=!h7fx1LGtvbx0lp14@GD`oh>! c&6!3zkOycCh$mJ8A~u>zAL6MlbTimc`}HmNT9WkSY+?4>=yT(>@=hxqq;GpsUzOu2VJ`B$bT$LlVPu Y^>WrGQo(ov%u9YkQ6$clSu)3WI9IMHZd3yj3EzM4;3>;(PoV7RGc5_xHfz4Y{j}YJF?|7}o^e+cRUF _H5N~m{D&|w-2OG{olVI1Gurqar24+-K5jhj+Mk8hd?X<}^zejCzhrwwh3eLD^uZdB3Ww++!{g2E0(+p~$)g8VXi(<8Q!^%1^M`3?v7wqA!G@5F?**Z|5|!;Q>|c8$5srZJQG?)!!01Spk1OaP2kkpN59^($tjjnlGRrQw7y =e)TkClE&#XTuHaa%MOK%)&KJvejcW$Ad@jGa!Pi89JMo4Lm07((@_5G`gZENzyKt~a%&W=d$MTR>jp U1r?D0|a?i%A+3{$hL;??Xr#pDN-C683pn@2Fyg%UQS&f%PGjP~}SsDcra$N^e~(6O*w`Dt3UO>ZyZ) dKZES<^jEmSEZQGISDsLkTljh*jMQ`FMB~5l%@^N_Es8S5Ctu+HFZXqdf?Sv@YtkJL&C?+tJZC3UM0D fjgK2xy`8389*>x19!NDj(R9KYN!7vCTbBvOdNl$9oE+%y1+Ebj5GqLva6+SVBCosc`_i jdx(0t@gl2lSIgAN?#6T}&^tyecifBv+R=k8%^f9A;-VIQ43TJn9Z*BDGg^d6_l^}2z8W_qVn9KbF>7 iQn-&lgTAPdqYS!~SS#l(^!$ndTlbfLd9D}4NNu-+|0pLm~`|bqAjK}>D70C$hvj${ey|wU(TT67&gz L&*C&V1-9O1H%eUnU=;B@h?>-3@L?3wa=-$zs8of)z5aVY^GWbY%p(&W|hs|qpTRW3g5?f#S{;Q9U}vWaQ{RZ@GLK@5lKj*Muo #{HJ>L`+$G|_dpLLb8##B`i=-Q52rW*2ceI(ldo~&2>}i$LcEG7^Zax3}7^TD8lSXO+VOlZB*M%_Q|=g!|ex&R0xgIzTlZaC{Wv<8SVV4$u~j%hyZl)X%}WxpCm>j-?AS{ M`5`rZ6JqQ(7$&n-JQgkY4Q$oyhi{=-6QF-c@}#{q7~izRv>VyN=D*2y1$28ua-pBUpJ8_WW;~mBrzQ $@$6>m}vjt3*1%$tE$l6q(P@tvBtevZJ%i?6iikkTM$@BjSIul-}>qQ{*QmRkN;uP|KmUZSMS0teSCCuBymAM;T0}+MbO_T)c7bvGV8s!1x|*?vk&jN3m;&@pETPB= c8D`Kw2>N0p601&YCz=ROs#Ui`-?@H4u02p1-)7!-x*KnEC_;NG Tb%s|!e3U_-YlbfQfl&?WeFeUYFM>J)uIZrXO)oIH7QU9>l=D}?i;{bj2Dxtdp3PZn7N%Z@)Z?R2=br &WuhT(vp5Ad&h3Mr&HUT~t$a1WHYJ`h(;jk1QcYLIh=0VOz#P!^{Cb=^kq1J%Zv65bt7qoeXdj3f{@l m(vd??^P4&Z4-)kK)4zNunAn8q0x~1X;7QT?}2Z71AN<#`-VNNFbv-(tH6-qvVfg+%)A)XB00=yK7qY !Zl+i0N#j~31103%G*GE!!bP;_u<*kB8yXT;L~qqZhsy3<2aF+#VS8E4et4!@yf-pUs#V!OQQA(trma)8-lD6?rR=@; *4X>K0QO-DqNX$4A2|6#FQ$L7D{`t_i+Zu+4bSgr+lnMdS0XMNs>DXUG=bH9^5yWWwqc4BwxeRV#2>*&5zUBUMce%IRS?()$m3!LJQK^`7I|@?uq`*sUQGmvICqy2Nl 4Hh_xcE*I<}uCX5?)hnHq%s5Dr{yqhDa#5 Us;AxQF6SNvt2d*ctD8{Pu`o-9}=zb?1d1dD$D~La*AeO3U);Yp5?pI$#j<2WR$z(es!~2WTm+}fIU` csEsF8`2Dcq5uiGsRx5ASxH_b5M@9TUN0iOjAcolM&~QgZ0@nJ*xf4g@{UNI2c53y#OW$OONvXYPTO7 nwlJuQdmNv>I5TtTDN5+p#8Ln#}XU4w_4YUcOnFDb-r&Ff$T0iAm^^LjLU04>FW}im=429*8a5p@=DU 2Uv!=7DNIk{99fNlAdaPzQ2-D0(B@uR-j>x61Px%@XhkeBR_>-+2D4a)4cYDNU5k<;fOm^9U-ASEsdK `pk051GiNrLd+;2_J_weYqywI87Ql-r5mFB+)*WcDAB7r)n79=Z?D@`BF30W(&G&Qt4&Gm5m0#*oJ=c ?$y?y%stz{VUpJ~iihkW=wYR!`s?)kbz6uv@;uySLI-VNz6EkFgEG-&1quY+GLoE@cnvp&E}4mGg}@oX3tVd9vI%NO|_;La~z4jesSmYDRX!W+p3~H%+4s6Y2K-M {4PW5ENhK52#J5o$~oiA&C?ssDo4X_y&9A#~_W{iPh;Bezs-(~Bn<*(nkYPpOyj=o2*Eq*xdp<7rrU< 6)it+p7?^4DEuV|%5+bG#Vs+@MfMJ4;Sn->{jNb{*-F)qSJIp$ufOL@a JVj;br4iXInA*1J=qBYakqJ6m1unKc~#22U9Hm>k(G~4*NWtBXM5r9O&P+QkQCl^T_0pt`m>uH`d?TQ n^k#@`}it?`Usx8uCEQ`nIX$eX(LGIT6PlT*a;5Wfeip-pn+O)*h;gR;@7IT{{CH8ZJ;-5@ktK> g$~iqst?7e$#;>VRy&>0!h1$kqkK7A2oXIIOLKF`i-yBJ8H_Yk3eO%tV?t7^i@Uoy1v!J9)&^h4+kZs uzDOL#u;bUHts;_+n^dWE|RrBk|pDfCM#4j&^SY-MA?FiSH(qkgJ`b+Y_DqG3|v!F1+(gNnqj}5C|ZD )K+mF@QkqR!F?in8>L?)KzHD$dvyK@i0T={fMB3nh@qN%B41V{bVso^Zc`9h@Wv*MU2Q!r0a1@mqc3l J)Ydj8NQ!StPzW|)_r;{g1a)nBF;6XsCy8fBri$wlLQxNhkhfizzL6@Y5%kwpuQ-czIKlXl{!LHr)-Z BA;CYLv0q2dwQ)8rmSS{Cpyf2G)Ma+M(q)=*yB<#qzw&+Hbf?OT9o7xb$Qe$Bll+rl>fr>lBS5nAJ6= ASxr`4+6ISQz{kG#i2t%I#KFfb^67?r&QYluKR?g!@pveFzOptq|W -)kql?EG1z-_J#@6qL*QtxNbq=1l^708N33-h9d>jFK}}oT#t7@z$q|Mh4-*zDj5TENcTjcFFlkWy{Z pX{9jEaV@^e}Q)JhnY<`<4mpfKUnV^Lj*U$B*d2FePDM8yBc38kw~eYAIzqptUiLnG8lR9-I-xEjJ$U@Gxpa8FB=&o vEO3;7mhjshSof4JeznF+AT@@lV)snR{H2oTy^c|f=?Sff@0`BnKyhINZ~SkV!aNJD+6%qSA2#AH3;t&Fbsb!a?}h=&L)#lbgKGnS<4Qjio?;0p @msJpCM)Ag(ycBF$P+3noBXtA(lHDu+3;XbRNn3C=Y|$`=i42B<{RXI%L^l95jioF%m}nzR17(EZ%A8xB<86BR1{qGn 3Ybw_0HubS9*!P*mz;0CHrnt`jg99^*i9Cz1+!(2I`t}V?`XRN6roNtthDbB#qqY-2py{duMp7KioN1}3;J^lwbHd-Y7gK$zwBxdt 4I?44JHfP6qx#-vKP_#hU_jiru4O1GIX^pI&498q7rIhNzo3R$}2?NYm03Vv54nOXfRA*)v&9|b^$0m V0TGJE9g{1tjm}P5*zIZ6I`m&!JB>4%WLX?$ss3a~2h8X02WZF^O(K~|HF_9kJ- Yp}L%{+gRpkwu7scyiT5c5Gr*c(`bLUQwC}{9+;%p2p)fRUSs@6QyT!yIY?Lg+DugI_u3%pb -Fl7r3YUpn8{nLYSqhb2v)-!oO|;wC>KP^O=t*+oPTX(uq63JB|XUl>_KJ$BICW!k=xc=8^f 7y;(!>MLxPgEU)Pn(m~>Fw3B(&A8lW}6^uz<|&igVuR6nkz|^Xx%u+!EN=jOtbl2wr-O8YLL_-1mKubF?8he$**Z=pq(gu@0J;{4cx8VRr?sh%+%8{zc|b&s^aZeCB|$!a`jZHD*|${jsgpMsd#yMvGWFpcEX!z3 |K0k}ujT#%!wNHc`UnfvQii7L{cxM^L%67VNS(W{HI10yiY=Z%G>b6gkjYe$MXgqo&En@*lc}@V233M cmj2v5T_hv7)+$TT7V?YO|av4rjTQsC}eXDsTl}f_lkJ)K8GM%xiX}(|es9c!A-HdijKl6;Gymdb`fN0fsl6D}1dKsuM>#} NP{kn~8lv&I<0e2RPm8Qv;R)bC&fuEP80k9c%S*jBE-%#rzohQ)?zQEhFyuE*pX=ot-(@$dx~Ru-{gz KcIjqMP=QIsdW*qsxm9EjkN6cci3@4G4$h6_i>O5B*g`70>E{NQk{Wmkj-UZwKnBCuO$cloN3YS?gr< pWGm^;LFZwhx3Vz*l%Y|E<7gtljN1m4Y3w+UEbvY|~=n9uhL@GRgTKh{Aho|fxQqYpr*Kk<$%eSZ8{C jr*)g1v02249$#@{RVI2KA%jQ+TG$jcc4BQ8S}l?=%V60?6j<1g4K2BcPs6(I}FSHc;T&5#mOH>lsJC q(v(;c0$vkNg}tF04t|cXY=g38;0Ys#`oM%9B%zxh7uC!;Ru(Wo0P=7Bn8al@ly6F9O6l(DmxZ7eq*b 4bDz0F&3mSFA_^C7$Rls+4gz8q1k!32-#zA2o8OuadBjiy|bDF1TspG?Q$mUL) 4W=!jbOgj6ue&-qmAPOSJ1o`N3YE!QWf~os^{(Dq^^KbG+u0fATvK&W)-e#OGkBzmAE+wy7vblv5LtP K7;_LpBIt_JdkOK}7B&BCv&@&BUx14VDYOyFd^;BY@xUKxyB%nm%fid&$&C4S%HNOX|crMf&myOcSAf hvVKon04;T?d-uo?acYGGrW?&n#v`UM?9zKV?iE$MZ;rx4?MgX*4XZC%(tmk?B~K2Z}8?dlM&-ren6c HCE7r6q|o)8ca3K+#j)Msx$Dg79`=_T4KKSH8s*}w49A@ad0U3$lUc4UgJ3xwKIFLvPG`q0@$jtq2jp;2fOC5kHRq`m1QGSP@Lp;%|8yN|>O$?Q|D~Ja+w 2KYhT*3*^ECNX}AIcVKo+I&ODhlr!5Eo6Ml H@d!w{G;SWU9FbsTp7*cC}l0Z5qc7w+As_Q%m6mq}_Vcs*X?(7TImigmc`QQ5@0-+ZVR DZ{1!*OY$z(2xl|gRn#4#uK%Lxii!79+dD;lC+V#_SR=fnxXQrag>{|UEf?5K;HojsQeE9ye)Y;RJ&I pF$}vrzs)m~&RnbjO-fn>u+9fj~(NWIMWi`fAL3LK>XM*(vtdXiW)wjN)wM>|oxIdMJw^z}kv=3Bkx% Nn_`-V8BuXWa*uc|)>VF`^~G)Tkix|pVqoiP~T^+R-=h!>(C_XjGR$w6TF|;9>>S7$cY14 %BGFG>5~DzsK><`0Gx=pBmKeOFCmeckVV$o&2dALTJ)9SJIurx1nsD$jyMlOE+DTFdo;%77jkTpQ0sNLzm8k8Fx=4n5s}KkFckYv>oJLbk&# 4$@OQN$K&9CjN+tNEb=KHVa?Y`>O_+BPSj7)v92}2zd{3oj?jG6j!Sdw{_)xw8=lY8(KzhSEa6M%gXX >A#%o26+UT-mxteo8m$LAVZK#EaIiIZ1*~OvubLe$GQSY*C4_g{Yefz _EqCk%djQM5vYl%`GLrbN!9!DlmNVUn7lk@_2E;L#lMpD@|PXCFCYb|fQ?#K;cHCd)f1b^9Z7p+pRSw `K|&A5hP5M}qU?^xlayNB-we9nCcP8GZO77{8|Ex6*0UQ{Cv#YNK%*A_b{M^)}zzdgXbJ)324?$SJfK ^s;I9)!;m32&d0Qxt%e8n$P13m4gE`sT`NtA|H>*x^z6o7(L^0?}Ut9>+E`wouFqSdH!YBEX@`Rv<*# a;Owe}{9 !~RV~MOdqm2v@=~g~a0NCFkH*yV?Bc>+oTH*JptO6Pm+B>HF}pU~p!0vEesoa$Py7sdF?VZa6<=x8ba1nViCrBxotctwT1)Lu?*A>5eVH*vu>!s@o~t>bqNIleswYI9@iG084m!% XNEGmBL7v>;qW>Zbp_zQY@Y$f~37!RiRQ!_8w-d#_-g+qG#k?9i(TOnlzB#oqTY{tc||o(k56_4Or69Hw%lgMy{#pj=O-Jua=tFzj4sxV fFf%xw%I=LOOfvt}Y&I+F+Wlrg0#A*#QAQHx9M=kx0B;_RjO|mcsKQ@OZqod(J^ta~!Qs)24J6^-k$jv;@mw0Ey aiB2f?QDpDkdHuR1`I{=Pcid;Q}?{OPKhjQ%r4RuBp`0X=u8=Ui@aHtlYLVCEqrDOv&$uvFW?AT}k4s>f4@a;;--_B |zTo3bx<6G{wl8p{1iodnex+x{miPwG`qp)&EG*JSFddJ!S7GpIW{3FVk=WP4(8_$;a=SPfe#NjdXM5$@WaAu$k8}VGb!0qH$^JLAF2U{`c9ZM%Is-$E`2 Y8PNAWKcih*8uXatfub!G%t{Sn;`dcHuoA@*gjExX5NHy%jbbUvd$h}XbJ=?;sGeE5Khe)vGZGY~JIn &Who41D%TWhDp)l6VUd<%xLPVQi>nTGzB1eKud0u#$l)ZL6r78f>GCh30=OIT^s`a6ThWqAfN6^JI#* LVa~E_^tlBXZ_R#CW_EuxERe%U;G3a)?G6M2oZYS5mPr^!w+=#QZc33aYlw-jsmB=RDeb!@Zt;X1uuu U0c{~NWvtWQy};{(C*)4#(vENn32Y~LPFx*Jvk}%LM{f|6os}xK3=k>wM4S!#qdsTWLv! ECxSX|G}F#D(HR%g>s;5JQ-2&RDlxZo)(6M6&qm1ssLg9RoPZkTaMJ>VH}cSoNHpJ1rC}TE>3HCIY$y ^2*U{x76+KSayTaBLMDX8oyVq&VKv1n7-QD3t4R`?)B;(W%e0d*?B>niXny^R#JXuu$H2$uG8r~VUc} lZOd@BNWJf7;=ms%hm%6?Xt1@Ld(ax);S;}L=pC0Z!Z~hkAo07D!E?N?GoLQ$s-9E?ce_g8RG3MoJ%asE(-{a*DwOVI4&v}7Ta{TZeC4m_iUN}li#bST%nnJ!xl6h_Lg8=jYH0+@KiPDtLdeHQI_li|cq+`DhLaKW&I1)Y1L gxexR7W4l$FiL$cT%oD;!1P*)8>;irnmF#fP5zwI-iR_UqXSv+zFW*u=3Pw=_c}*HjrNXi4kWy2$U)2 3=w9Q*y*8U-IDb=D9c1$!EEg1iy9KdaJ^7NZ3)#kMayMW-&f!~dA?pQIZxgR#Y&;Xs0J!wO{%ExGkY0 et^gonol6;T*H0|i?tRmS-0vu_ASQ67zk@_Jg#= bUAHJKPgS~a8iYMN`%I5CZRFxIFJ-HEMW%sHzbx5JZuaUnn&OT1qB=SZL&IQ>Uo*IZO6+;Hig0y_Mgg naIAUy`o>y;saOn(HeWGPVUgA(BOHTuALOfi=~kP+pqdP%I=6nKt<*xW=`K!wawAQcsR4&d>}gRx!+A @+id1bpFcPPPW6jA!+HptWH4H?fOUV@)MLr-?b-urb9oqyFw4;&V&y8=A)Z8*g0GMtl-%f1ISCrm6v! u^e?rbHaeX;JFlz()U{28_G$u5gX)tc^ZC@TF5Z!yJn^z|lzZW*Nv_4D!pJ- -~0yci6d}ak3eb8sY@0lSwY;GNkz(nNia_lp2c#WXN&YPL^6)KH`$lLm{vx vKQ$fk>GDMs)Qv`eZlyDDT&Uvle61RKYScYr%a~KJ@aw`ljwLdWx1?>{$z~>W2_o9L{}cc03?UxToh= vqKGzxdxcUtsF0W6tkvw8U$5870qQGRd&#U33-$N0fL4k3EEb cBfec)h-c4`+nO?+Vle+qpLplJCG8iH!MD-N45qgU&mS{>+^2TYSsITS^DKXjQi_ON!pHiT bNjT(bHfP)h>@6aWAK2modQMO>A{`hnjI005sb000^Q003}la4%nWWo~3|axZdeV`wjMa&K*LbS`jt? HXNk+cxsuzXIhw9NA%&)l8ImN`5cfE+wy0HTq9lZBxlN5j)7Is1uiXkSfWoW}rkc9v JPZHd}>Ap{rk#mAgU8I$=Lflm}g_7PdrmJzjQ!v$&NJ|b8}J5~^e2-+F!u$V9FTUwRHTh=xp9g7`GA^ aUDWnGjxpd%FUs$Jxcw(wkHnvu7(gh$~bw+sw )g{FajxP5S#6!>8TWF>qfiQqCsKn~n$5T?9}eWbglVr|eI+T~&+HN=~aNU(>Jgkb2*h<5cBeIbfw7K4 epSjU@(;iZW}khkqU%Jp&mOsm#GmS 6J{oSej%hR_RFBfcwm4yx6b(cs6}%fU2R%j&l5z-|F1|Daudjp-1u8uINm@2i5WncV)J-R={*61_tR_ S|KKS`LtT2g}4Pt7rxzo5U04nc>kjygj$odnUGpq*h^#zi`gi(?X`2VCBwL}y5Y?s^ QwQl5YuO6w-`ENl*f+~Sl4apJ@4T<1Cleo((NEE2LE6*qkoD>z87-M(UrNd1fwZ&SH}lx%XEvqSh`43 w)4X`hd|GD&M;jdSKuv4Pi;ns*~L464vj3j;sWl%JaxBg^@~UVd44_6qr{@@IcDfS&l`TGlg*VVpA(eL=?7cBgzPW(3(|KnizA`Q Sed>-8d_(7!{4ren~XL`_{3-?C=%+Pdy3}8cPsgsP>Mr^Pf#M&|o^_2`wiC}fXgkeArT0+%_ot1dG@XBPiw r`rMWQFU9U^gna*xWEXmaVLZyHqU?ssnToypvv*oA{S;I#Ymb2qXl|x $1RjuXN8>Z;bQ{r=X!a*B>)3@(Lh%W}n`n7&_I_GLfvhm24P>7pj>xFd^OsG;S+na0?zszc#X<9YBTE i%$%-57vJ8aNY1#me<>XZE^(HOJz*2ORm6G6<;98nrR~dOHx$m_=rk|VP8=@7rxExDnxk59W t$a?+$c&ti%#*z{cbqqY4apZ8yR#FBQkPl@e`u@SjZUf|HX^0K^3i>|_eXs}FpFtMDa)!_|b~kwC-GK ioc_i*j3Hv!l?b5{=AD7(KFAAmG0(95Pd;9W#YZGueV4SB1+U1b#jviXn>^?4#1Hflq>nSCglczQh%3 NDo{-alB)aA5wM0JRch|a7BP;0R^iT7)#esMpevQI^os0#Pit+VsZqy8`R}@JZ24!TYDjIhazZvy#6W WO+Wt93_0u%Wr%az0rgW^cd>*{+|25=8ex6>%K433-M1Xm3Cgu*V0p!rF4^oo-gMxbWjQF;Uc-Nzo~n }`Fx5Ov#M6SL79573;$bM&)C_!JCw1|JX5e9&1H;4z>0vxReB0NK-sPC^Va=X=ohCF0%#-9SjqJjcIAn-r5S+HzwsV=F3qE5A7loEa)%g<7-8i 8{dh>3UN3j1E)$=mT|>JmAdN8E-;JVxDG9iCU-0X?n&XNLlyHCk@r-LBah@?Y;F94==ySL8|k%i><=0 X{S*@Z;z(Y{x}(QEh#uk0zE)2D^>7TCd}mEpg_QgeE!H6CbT@H?ssdTYIXE8WZi(4Hu(4f7L{|Z!vq C*b6C{ (BRb@nG;$EQ?)%soZ}|CM($Dz)32GkY%r+n3QEN1S!!^l*=y5Wkh%<%wrfFXXs*pCB)Boj{R}eKGo3E l-&zsylX%pgm6Dzyyng*xubrDa&3(iWcg)kLonLI_aY)8vF%c42P75xVe^?&L&j3LCxPkj45iOt7?A7v> 685as2I8cGjb6!=YWcYWw7PR0T`tN9U^p14&7RgjbCCK7leLGV66|6DfdiDA@GOu`FRQoI!duVjC4b9 mcw*3!KO9KQH000080A>M2Tv(X<(>VeF0B;2V02}}S0B~t=FJE?LZe(wAFLG&PXfJSbZ**^CZ)`4bd7 V_jYTG~%z3VFmVyBgH@FeRAWZb$5yd!;m{CZok`Rii-WBKzXC_F((t1)vOL)fh1)&_wn#^_l9bTt$$bixiOb7c}E vNFk(w5q~RV?~e9@U+5@T4NBfm*w;GVzqpKg+~a(kc;w&Mr`h;iXo62r Cc|rIf2y!f_G-l4qQC4EMWh&iJ@iT8UhA-bBRjO($CEnaafQ)bnEf99Rh7_UI!5q>WR^EX>#j^~$y^# <#fBYpZ1?0HQ#wSj|IuoB!%0S62cg|d(LdJYTjD`OIKE-(^#isz;ht$oe&tZ0Q*0>MH$%lOsL>i>v6m aM@dh#+>paV0+>P#)kYE`ORx_YQ48u*JLkZ=3LF0cvD^XNh|4u-FQX3xe`Gl5}oe*j QR0|XQR000O8W&uT9000000ssI20000082|tPaA|NaUv_0~WN&gWa%p2|FK~G-ba`-PWCH+DO9KQH00 0080A>M2TwTJh*L45@0Hy!{02%-Q0B~t=FJE?LZe(wAFLG&PXfJYQXK8P4E^v88i!lzvAP@w5Ua@kOG iGLsB6l^uC-SMqt=uue$IM>n?51VOw?KP1x#wFW3o)oyqWiHp%U}RaAJ9!rB uxRAeO4yTagMR{whekqojYw|eZBFg8f<;d}Ccb&oIBO&hQUCo5P)h>@6aWAK2modQMO@N36de`?002) B000;O003}la4%nWWo~3|axZdeV`wjOWpHvXaCx;?OK;;g5WeeIu<9XFp%qdT=)tWPo2Cg6G)M}s+hS oD0wd8jyD}+IRCZm%|GhJ$C|i~kXZ!HQhnL6z5d8O^@vD91&TG-vJE*;BkTOO@`r^;@A6Tohl@|meZ(me7)& zq6NF$Vt32Z}dkRb6PHJKb|5JVy(yCR{Guy3#5lLj+4*EW9bt)>Brh7T7L8RaVfdB6xPAlvKgZ=ZqQ0 !ih1}_x&qD7@iTCWwlZ)C!f|#5UMrX04s!1OY&6nA}5q6K#D;Kpx-$+y__uxt+foYqMEdUo1@qB*