pax_global_header00006660000000000000000000000064146541553620014525gustar00rootroot0000000000000052 comment=ce37be5e3ba22786e1cad190237bedc252e78f85 MyST-Parser-4.0.0/000077500000000000000000000000001465415536200136145ustar00rootroot00000000000000MyST-Parser-4.0.0/.github/000077500000000000000000000000001465415536200151545ustar00rootroot00000000000000MyST-Parser-4.0.0/.github/ISSUE_TEMPLATE/000077500000000000000000000000001465415536200173375ustar00rootroot00000000000000MyST-Parser-4.0.0/.github/ISSUE_TEMPLATE/1-bug-report.yml000066400000000000000000000033221465415536200223060ustar00rootroot00000000000000name: Bug Report description: Create a bug report πŸ› labels: ['bug'] body: - type: markdown attributes: value: Thank you for taking the time to file a bug report! Please fill out this form as completely as possible. - type: input attributes: label: What version of `myst-parser` are you using? description: 'For example: 1.0.0' validations: required: true - type: textarea attributes: label: What version dependencies are you using? description: 'e.g. for docutils and sphinx' validations: required: true - type: dropdown id: os attributes: label: What operating system are you using? options: - Mac - Windows - Linux - Other validations: required: true - type: textarea attributes: label: Describe the Bug description: A clear and concise description of the bug. validations: required: true - type: textarea attributes: label: Expected Behavior description: A clear and concise description of what you expected to happen. validations: required: false - type: textarea attributes: label: To Reproduce description: Steps to reproduce the behavior, please provide clear and concise steps. validations: required: false - type: markdown attributes: value: Please ensure the steps you've provided reproduce the issue to the best of your ability. - type: markdown attributes: value: Ideally, maintainers should be able to follow the steps provided in order to reproduce the bug. - type: markdown attributes: value: Thank you for helping out the MyST team, these issues are what makes MyST better!! MyST-Parser-4.0.0/.github/ISSUE_TEMPLATE/2-feature-request.yml000066400000000000000000000015021465415536200233400ustar00rootroot00000000000000name: Feature Request description: Request a new feature ✨ labels: ['enhancement'] body: - type: markdown attributes: value: Thank you for taking the time to submit a feature request! Please fill out this form as completely as possible. - type: textarea attributes: label: Describe the feature you'd like to request description: A clear and concise description of what you want and what your use case is. validations: required: true - type: textarea attributes: label: Describe the solution you'd like description: A clear and concise description of what you want to happen. - type: textarea attributes: label: Describe alternatives you've considered description: A clear and concise description of any alternative solutions or features you've considered. MyST-Parser-4.0.0/.github/ISSUE_TEMPLATE/3-documentation.yml000066400000000000000000000012641465415536200230760ustar00rootroot00000000000000name: Documentation improvement description: Suggest improvements to the documentation πŸ“– labels: ['documentation'] body: - type: markdown attributes: value: Thank you for taking the time to submit a suggestion! Please fill out this form as completely as possible. - type: textarea attributes: label: Describe the gap in the current documentation description: A clear and concise description of what area is currently missing or unclear. validations: required: true - type: textarea attributes: label: Describe the solution you'd like description: A clear and concise description of what you would like to see in the documentation. MyST-Parser-4.0.0/.github/ISSUE_TEMPLATE/config.yml000066400000000000000000000002711465415536200213270ustar00rootroot00000000000000contact_links: - name: Ask a question πŸ’¬ url: https://github.com/executablebooks/MyST-Parser/discussions about: Ask questions and discuss ideas with other community members MyST-Parser-4.0.0/.github/dependabot.yml000066400000000000000000000011261465415536200200040ustar00rootroot00000000000000# To get started with Dependabot version updates, you'll need to specify which # package ecosystems to update and where the package manifests are located. # Please see the documentation for all configuration options: # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates version: 2 updates: - package-ecosystem: github-actions directory: / commit-message: prefix: ⬆️ schedule: interval: weekly - package-ecosystem: pip directory: / commit-message: prefix: ⬆️ schedule: interval: weekly MyST-Parser-4.0.0/.github/workflows/000077500000000000000000000000001465415536200172115ustar00rootroot00000000000000MyST-Parser-4.0.0/.github/workflows/docutils_setup.py000077500000000000000000000032401465415536200226330ustar00rootroot00000000000000#!/usr/bin/env python3 """Script to convert package setup to myst-docutils.""" import sys import tomlkit def modify_toml(content: str) -> str: """Modify `pyproject.toml`.""" doc = tomlkit.parse(content) # change name of package doc["project"]["name"] = "myst-docutils" # move dependency on docutils and sphinx to extra dependencies = [] sphinx_extra = [] for dep in doc["project"]["dependencies"]: if dep.startswith(("docutils", "sphinx")): sphinx_extra.append(dep) else: dependencies.append(dep) doc["project"]["dependencies"] = dependencies doc["project"]["optional-dependencies"]["sphinx"] = sphinx_extra return tomlkit.dumps(doc) def modify_readme(content: str) -> str: """Modify README.md.""" content = content.replace("myst-parser", "myst-docutils") content = content.replace( "# MyST-Parser", "# MyST-Parser\n\nNote: myst-docutils is identical to myst-parser, " "but without installation requirements on sphinx", ) content = content.replace("myst-docutils.readthedocs", "myst-parser.readthedocs") content = content.replace( "readthedocs.org/projects/myst-docutils", "readthedocs.org/projects/myst-parser" ) return content if __name__ == "__main__": project_path = sys.argv[1] readme_path = sys.argv[2] with open(project_path) as f: content = f.read() content = modify_toml(content) with open(project_path, "w") as f: f.write(content) with open(readme_path) as f: content = f.read() content = modify_readme(content) with open(readme_path, "w") as f: f.write(content) MyST-Parser-4.0.0/.github/workflows/test-formats.yml000066400000000000000000000042621465415536200223700ustar00rootroot00000000000000name: build-doc-formats on: push: branches: [master] pull_request: jobs: doc-builds: name: Documentation builds runs-on: ubuntu-latest strategy: fail-fast: false matrix: format: ["man", "text"] steps: - uses: actions/checkout@v4 - name: Set up Python 3.10 uses: actions/setup-python@v5 with: python-version: "3.10" - name: Install dependencies run: | python -m pip install --upgrade pip pip install -e .[linkify,rtd] - name: Build docs run: | sphinx-build -nW --keep-going -b ${{ matrix.format }} docs/ docs/_build/${{ matrix.format }} doc-builds-pdf: name: Documentation builds runs-on: ubuntu-latest strategy: fail-fast: false matrix: format: ["latex"] steps: - uses: actions/checkout@v4 - name: Set up Python 3.10 uses: actions/setup-python@v5 with: python-version: "3.10" - name: Install dependencies run: | python -m pip install --upgrade pip pip install -e .[linkify,rtd] - name: Build docs run: | sphinx-build -nW --keep-going -b ${{ matrix.format }} docs/ docs/_build/${{ matrix.format }} - name: Make PDF uses: xu-cheng/latex-action@v2 with: working_directory: docs/_build/latex root_file: "mystparser.tex" # https://github.com/marketplace/actions/github-action-for-latex#it-fails-due-to-xindy-cannot-be-found pre_compile: | ln -sf /opt/texlive/texdir/texmf-dist/scripts/xindy/xindy.pl /opt/texlive/texdir/bin/x86_64-linuxmusl/xindy ln -sf /opt/texlive/texdir/texmf-dist/scripts/xindy/texindy.pl /opt/texlive/texdir/bin/x86_64-linuxmusl/texindy wget https://sourceforge.net/projects/xindy/files/xindy-source-components/2.4/xindy-kernel-3.0.tar.gz tar xf xindy-kernel-3.0.tar.gz cd xindy-kernel-3.0/src apk add make apk add clisp --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community make cp -f xindy.mem /opt/texlive/texdir/bin/x86_64-linuxmusl/ cd ../../ env: XINDYOPTS: -L english -C utf8 -M sphinx.xdy MyST-Parser-4.0.0/.github/workflows/tests.yml000066400000000000000000000111101465415536200210700ustar00rootroot00000000000000name: continuous-integration on: push: branches: [master] tags: - "v[0-9]+.[0-9]+.[0-9]+*" pull_request: jobs: pre-commit: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Python 3.10 uses: actions/setup-python@v5 with: python-version: "3.10" - uses: pre-commit/action@v3.0.1 tests: strategy: fail-fast: false matrix: python-version: ["3.10", "3.11", "3.12"] sphinx: [">=8,<9"] os: [ubuntu-latest] include: - os: ubuntu-latest python-version: "3.10" sphinx: ">=7,<8" - os: windows-latest python-version: "3.10" sphinx: ">=7,<8" runs-on: ${{ matrix.os }} name: "pytest: py${{ matrix.python-version }}, sphinx${{ matrix.sphinx }}, on ${{ matrix.os }}" steps: - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip pip install -e ".[linkify,testing]" "sphinx${{ matrix.sphinx }}" - name: Run pytest run: | pytest --cov=myst_parser --cov-report=xml --cov-report=term-missing coverage xml - name: Upload to Codecov if: github.repository == 'executablebooks/MyST-Parser' && matrix.python-version == 3.10 && matrix.os == 'ubuntu-latest' uses: codecov/codecov-action@v4 with: token: ${{ secrets.CODECOV_TOKEN }} name: myst-parser-pytests flags: pytests file: ./coverage.xml fail_ci_if_error: true check-myst-docutils: name: Check myst-docutils install runs-on: ubuntu-latest strategy: fail-fast: false matrix: docutils-version: ["0.19", "0.20", "0.21"] steps: - name: Checkout source uses: actions/checkout@v4 - name: Set up Python 3.10 uses: actions/setup-python@v5 with: python-version: "3.10" - name: Install setup run: | python -m pip install --upgrade pip pip install tomlkit - name: Modify setup run: python .github/workflows/docutils_setup.py pyproject.toml README.md - name: Install dependencies run: | pip install .[linkify,testing-docutils] docutils==${{ matrix.docutils-version }} - name: ensure sphinx is not installed run: | python -c "\ try: import sphinx except ImportError: pass else: raise AssertionError()" - name: Run pytest for docutils-only tests run: pytest tests/test_docutils.py tests/test_renderers/test_fixtures_docutils.py tests/test_renderers/test_include_directive.py tests/test_renderers/test_myst_config.py - name: Run docutils CLI run: echo "test" | myst-docutils-html # https://github.com/marketplace/actions/alls-green#why check: # This job does nothing and is only used for the branch protection if: always() needs: - pre-commit - tests - check-myst-docutils runs-on: ubuntu-latest steps: - name: Decide whether the needed jobs succeeded or failed uses: re-actors/alls-green@release/v1 with: jobs: ${{ toJSON(needs) }} publish: name: Publish myst-parser to PyPi needs: - check if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') runs-on: ubuntu-latest steps: - name: Checkout source uses: actions/checkout@v4 - name: Set up Python 3.10 uses: actions/setup-python@v5 with: python-version: "3.10" - name: install flit run: | pip install flit~=3.4 - name: Build and publish run: | flit publish env: FLIT_USERNAME: __token__ FLIT_PASSWORD: ${{ secrets.PYPI_KEY }} publish-docutils: name: Publish myst-docutils to PyPi needs: [publish] if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') runs-on: ubuntu-latest steps: - name: Checkout source uses: actions/checkout@v4 - name: Set up Python 3.10 uses: actions/setup-python@v5 with: python-version: "3.10" - name: install flit and tomlkit run: | pip install flit~=3.4 tomlkit - name: Modify setup run: python .github/workflows/docutils_setup.py pyproject.toml README.md - name: Build and publish run: | flit publish env: FLIT_USERNAME: __token__ FLIT_PASSWORD: ${{ secrets.PYPI_KEY_DOCUTILS }} MyST-Parser-4.0.0/.gitignore000066400000000000000000000035041465415536200156060ustar00rootroot00000000000000# Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # C extensions *.so # Distribution / packaging .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ pip-wheel-metadata/ share/python-wheels/ *.egg-info/ .installed.cfg *.egg MANIFEST # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .nox/ .coverage .coverage.* .cache nosetests.xml coverage.xml *.cover *.py,cover .hypothesis/ .pytest_cache/ # Translations *.mo *.pot !tests/**/*.pot # Django stuff: *.log local_settings.py db.sqlite3 db.sqlite3-journal # Flask stuff: instance/ .webassets-cache # Scrapy stuff: .scrapy # Sphinx documentation docs/_build/ # PyBuilder target/ # Jupyter Notebook .ipynb_checkpoints # IPython profile_default/ ipython_config.py # pyenv .python-version # pipenv # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. # However, in case of collaboration, if having platform-specific dependencies or dependencies # having no cross-platform support, pipenv may install dependencies that don't work, or not # install all needed dependencies. #Pipfile.lock # PEP 582; used by e.g. github.com/David-OConnor/pyflow __pypackages__/ # Celery stuff celerybeat-schedule celerybeat.pid # SageMath parsed files *.sage.py # Environments .env .venv env/ venv/ ENV/ env.bak/ venv.bak/ # Spyder project settings .spyderproject .spyproject # Rope project settings .ropeproject # mkdocs documentation /site # mypy .mypy_cache/ .dmypy.json dmypy.json # Pyre type checker .pyre/ _archive/ .vscode/ .DS_Store docs/apidocs MyST-Parser-4.0.0/.pre-commit-config.yaml000066400000000000000000000016011465415536200200730ustar00rootroot00000000000000# Install pre-commit hooks via # pre-commit install exclude: > (?x)^( \.vscode/settings\.json| tests/test_commonmark/commonmark\.json| .*\.xml| tests/.*/.*\.md| tests/.*/.*\.yaml )$ repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.6.0 hooks: - id: check-json - id: check-yaml - id: end-of-file-fixer - id: trailing-whitespace - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.5.5 hooks: - id: ruff args: [--fix] - id: ruff-format - repo: https://github.com/pre-commit/mirrors-mypy rev: v1.11.1 hooks: - id: mypy args: [--config-file=pyproject.toml] additional_dependencies: - types-urllib3 - sphinx~=7.4 - markdown-it-py~=3.0 - mdit-py-plugins~=0.4.0 files: > (?x)^( myst_parser/.*py| )$ MyST-Parser-4.0.0/.readthedocs.yml000066400000000000000000000003531465415536200167030ustar00rootroot00000000000000version: 2 build: os: ubuntu-22.04 tools: python: "3.10" python: install: - method: pip path: . extra_requirements: - linkify - rtd sphinx: builder: html fail_on_warning: true MyST-Parser-4.0.0/CHANGELOG.md000066400000000000000000001265721465415536200154420ustar00rootroot00000000000000# Changelog ## 4.0.0 - 2024-08-05 This release bumps the supported versions of: - Python to ``3.10`` and greater - Sphinx to ``>=7,<9`` - Docutils to ``>=0.19,<0.22`` Additionally, footnotes are now parsed similar to the corresponding reStructuredText, in that resolution (between definitions and references) and ordering is now deferred to transforms on the doctree (in ). This allows for the proper interaction with other docutils/sphinx transforms, including those that perform translations, and logging of warnings for duplicate/unreferenced footnote definitions and also for footnote references with no definitions. See the [footnotes guide](#syntax/footnotes) for more information. **Full Changelog**: [v3.0.1...v4.0.0](https://github.com/executablebooks/MyST-Parser/compare/v3.0.1...v4.0.0) ## 3.0.1 - 2024-04-28 ### πŸ› Bug Fixes - Account for the final directive option having an empty value, by in - Re-allow indented directive option blocks, by in **Full Changelog**: [v3.0.0...v3.0.1](https://github.com/executablebooks/MyST-Parser/compare/v3.0.0...v3.0.1) ## 3.0.0 - 2024-04-23 ### Upgraded dependencies - ⬆️ Add support for Python 3.12 by in - ⬆️ Update docutils requirement from >=0.16,<0.21 to >=0.18,<0.22 by in ### New features - ✨ Allow for use of the `line-block` directive by in - ✨ Emits sphinx include-read event by in ### Improvements - πŸ‘Œ Nested parse attribution in `attr_block` by in - πŸ‘Œ Directive option parsing by in in - πŸ‘Œ Allow for opening external links in new tabs (#856) by in ### Internal - πŸ”§ Replace black, isort, pyupgrade with ruff formatter by in - πŸ”§ remove redundant mypy config by in - πŸ”§ Add additional Ruff lints (and fix issues) by in - πŸ”§ mypy- disallow 'any generics' by in - πŸ”§ Fix docutils deprecation in option parsing by in ### Documentation - πŸ“š Fix a broken link in configuration.md by in - πŸ“š Add linkify dependency to contributing docs. by in - πŸ“š Fix the double `used` in docs/syntax/math.md by in - πŸ“š Also add linkify to pip install command in README by in - πŸ“š Fix the code section title in live preview by in - πŸ“š Fix admonition example by in - πŸ“š Fix url for jupyter book gallery by in - πŸ“š Update theme version by in - πŸ“š Fix typo by in - πŸ“š Fix architecture typo (#855) by in **Full Changelog**: [v2.0.0...v3.0.0](https://github.com/executablebooks/MyST-Parser/compare/v2.0.0...v3.0.0) ## 2.0.0 - 2023-06-13 This release primarily updates core myst-parser dependencies, with some minor changes to parsing behaviour: * ⬆️ UPGRADE: `markdown-it-py` to v3 () * This is mainly a non-breaking change, fixing some edge cases in parsing * See: and * ⬆️ UPGRADE: `linkify-it-py` to v2 () * Also fixes some edge cases in parsing * See: * ⬆️ UPGRADE: Add support for `docutils` v0.20 () * No significant changes, see * ⬆️ UPGRADE: Add support for `sphinx` v7, and remove v5 support () * No significant changes, see * ⬆️ UPGRADE: Remove Python 3.7 support and add testing for Python 3.11 () * πŸ‘Œ Improve default slug generation for heading anchors, thanks to () * This change makes the slug generation closer to GitHub, in that, starting/ending whitespace will not be stripped. For example, ``# ` a` b `c ` `` will now correctly create the slug `-a-b-c-` and not `a-b-c` * πŸ‘Œ IMPROVE: Substitution extension () * Allow any value type (including dict, list, datetime) and emit a `myst.substitution` warning for errors in resolving the substitution content. * πŸ§ͺ Introduce a gate/check GHA job, thanks to () **Full Changelog**: [v1.0.0...v2.0.0](https://github.com/executablebooks/MyST-Parser/compare/v1.0.0...v2.0.0) ## 1.0.0 - 2023-03-07 πŸŽ‰ **MyST-Parser 1.0.0** πŸŽ‰ This changes absolutely nothing in the code, or about the maintenance/release policy of this project. But it does feel about time πŸ˜„ ## 0.19.2 - 2023-03-02 ✨ NEW: Add myst_fence_as_directive config () Setting the following config, for example: ```python extensions = ["myst_parser", "sphinxcontrib.mermaid"] myst_fence_as_directive = ["mermaid"] # optional to use directive options myst_enable_extensions = ["attrs_block"] ``` allows for one to write: ````markdown {caption="My caption"} {alt="HTML alt" align=center} ```mermaid graph LR a --> b ``` ```` and have interoperable rendering with tools like GitHub. πŸŽ‰ New contributors: - πŸ“š Add `html_last_updated_fmt = ""` to conf.py to fix documentation footer, thanks to () - πŸ“š Fix the sphinx-design example, thanks to () ## 0.19.1 - 2023-03-07 πŸ› FIX `NoURI` error in doc reference resolution, for texinfo builds () ## 0.19.0 - 2023-03-01 This release brings a number of exciting new features, improvements, and upgrades πŸŽ‰ Full Changelog: [v0.18.1...v0.19.0](https://github.com/executablebooks/MyST-Parser/compare/v0.18.1...v0.19.0) ### πŸ“š Rewritten documentation The documentation has been almost completely rewritten, with a clearer structure, many more examples, rich hover tips, and a new live preview page (powered by [pyscript](https://pyscript.readthedocs.io/), ). The code base API is also now fully documented by [sphinx-autodoc2](https://sphinx-autodoc2.readthedocs.io/), which even allows for MyST docstrings! (). ### ⬆️ Add Sphinx 6 support, drop Sphinx 4 The code base has been updated to support sphinx v6, and is no longer tested against sphinx v4 () ### πŸ“„ Extended docutils (single-page) support The `docutils` parser now supports many more features, and improvements to support live previews: - `myst_suppress_warnings` option added, mirroring Sphinx, to suppress MyST warnings () - `myst_meta_html` and `myst_substitutions` options are now supported () - `myst_heading_anchors` option is now supported () - Math block labels syntax is now supported () - Missing directive/role errors errors are now suppressable warnings () - Non-fatal directive parsing errors are now suppressable warnings () - Most of the extended markdown syntax below is also supported ### πŸ”— Extended Markdown links See the [Extended Markdown links](docs/syntax/cross-referencing.md) section for the full guide. You can now use standard Markdown link syntax to reference many different types of targets, in a more consistent way. - `[text](relative/path/myfile.md)` work as previously, to link to files, but they can also be relative to source directory: `[text](/path/from/srcdir/myfile.md)`. You can also use `` - `` will link specifically to a downloadable file - `[text](#target)` or `` will link (in order of priority) to any local target, local heading anchor, target in the same project, or intersphinx (inventory) target - `[text](inv:name:domain:type#target)` will link specifically to a Sphinx inventory target, or to any inventory ``, and can even use `*` wildcards like `` - This can even be used in docutils, with the new `myst_inventories` config option - The `myst-inv` CLI makes it easy to find the correct inventory target :::{tip} It is advised (although not immediately necessary) to prefix all internal references with `#`. For example, `[...](my-reference)`, should be changed to `[...](#my-reference)`. ::: ### `{}` Attributes syntax The [`attrs_inline` and `attrs_block`](docs/syntax/optional.md#attributes) extensions allow for common Markdown syntaxes to be extended with greater control over the output. For example, you can now add classes, ids, and other attributes to inline code, images, and links, as well as to code blocks and directives. - Inline code: `` `a = 1`{#id .class l=python} `` - Images: `![image](image.png){#id .class width=100px}` - Text spans: `[some text]{#id .class}` A paragraph block can have attributes too: ```markdown {#id .class} This is a paragraph with an id and class ``` A code fence can be given line numbers and line emphasis: ````markdown {#id .class lineno-start=1 emphasize-lines="2,3"} ```python a = 1 b = 2 c = 3 ``` ```` A definition list can be turned into a glossary, with referenceable terms: ```markdown {.glossary} term name : Definition of the term ``` Quote blocks can be given an attribution: ```markdown {attribution="Chris Sewell"} > My quote ``` ### πŸ‘Œ Miscellaneous improvements - Nested headings (e.g. inside directives) are now allowed in MyST and are correctly rendered in HTML () - The `colon_fence` extension now renders internal content as MyST, rather than as a code block () - The `include` directive in MyST documents now supports a `:heading-offset:` option, to offset the heading levels in the included document - The `myst_heading_slug_func` option now supports setting a `str` which points to a fully qualified function name, e.g. `"module.path.func"` () - The `myst_enable_checkboxes` option allows for task list checkboxes to be enabled/disabled () ### Additional contributions - πŸ› FIX: Remove unnecessary assert in , thanks to - πŸ”§ ci(deps): setup dependabot (), thanks to - πŸ”§: Depend on typing_extensions only on `Python<3.8` in , thanks to ## 0.18.1 - 2022-27-09 Full Changelog: [v0.18.0...v0.18.1](https://github.com/executablebooks/MyST-Parser/compare/v0.18.0...v0.18.1) - ⬆️ UPGRADE: docutils 0.19 support in - ✨ NEW: Add `attrs_image` (experimental) extension in - e.g. `![image](image.png){#id .class width=100px}` - See: [Optional syntax section](docs/syntax/optional.md) - **Important**: This is an experimental extension, and may change in future releases ## 0.18.0 - 2022-06-07 Full Changelog: [v0.17.2...v0.18.0](https://github.com/executablebooks/MyST-Parser/compare/v0.17.2...v0.18.0) This release adds support for Sphinx v5 (dropping v3), restructures the code base into modules, and also restructures the documentation, to make it easier for developers/users to follow. It also introduces **document-level configuration** *via* the Markdown front-matter, under the `myst` key. See the [Local configuration](docs/configuration.md) section for more information. ### Breaking changes This should not be breaking, for general users of the sphinx extension (with `sphinx>3`), but will be for anyone directly using the Python API, mainly just requiring changes in import module paths. The `to_docutils`, `to_html`, `to_tokens` (from `myst_parser/main.py`) and `mock_sphinx_env`/`parse` (from `myst_parser.sphinx_renderer.py`) functions have been removed, since these were primarily for internal testing. Instead, for single page builds, users should use the docutils parser API/CLI (see [](docs/docutils.md)), and for testing, functionality has been moved to . The top-level `html_meta` and `substitutions` front-matter keys have also been deprecated (i.e. they will still work but will emit a warning), as they now form part of the `myst` config, e.g. ```yaml --- html_meta: "description lang=en": "metadata description" substitutions: key1: I'm a **substitution** --- ``` is replaced by: ```yaml --- myst: html_meta: "description lang=en": "metadata description" substitutions: key1: I'm a **substitution** --- ``` ### Key PRs - β™»οΈπŸ“š Restructure code base and documentation () - ⬆️ Drop Sphinx 3 and add Sphinx 5 support () - πŸ› FIX: `parse_directive_text` when body followed by options () - πŸ› FIX: floor table column widths to integers (), thanks to ! ## 0.17.2 - 2022-04-17 Full Changelog: [v0.17.1...v0.17.2](https://github.com/executablebooks/MyST-Parser/compare/v0.17.1...v0.17.2) - ♻️ REFACTOR: Replace `attrs` by `dataclasses` for configuration () ## 0.17.1 - 2022-04-15 Full Changelog: [v0.17.0...v0.17.1](https://github.com/executablebooks/MyST-Parser/compare/v0.17.0...v0.17.1) - πŸ› FIX: Heading anchor resolution for parallel builds () - πŸ”§ MAINTAIN: Move packaging from setuptools to flit () - πŸ”§ MAINTAIN: Directly specify attrs dependency () ## 0.17.0 - 2022-02-11 This release contains a number of breaking improvements. Full Changelog: [v0.16.1...v0.17.0](https://github.com/executablebooks/MyST-Parser/compare/v0.16.1...v0.17.0) ### ‼️ Markdown link resolution improvements **WARNING: This is a breaking change for links that rely on auto-generated anchor links**. You should now [manually enable auto-generated anchor links](https://myst-parser.readthedocs.io/en/latest/syntax/optional.html?highlight=anchor#auto-generated-header-anchors) if you see errors like `WARNING reference target not found`. Markdown links are of the format `[text](link)`. MyST-Parser looks to smartly resolve such links, by identifying if they are: 1. A link to an external resource, e.g. `[text](http://example.com)` 2. A link to another source document, e.g. `[text](file.md)` - If `header-anchors` are enabled, anchor links are also supported, e.g. `[text](file.md#anchor)` 3. A link to an internal sphinx cross-reference, e.g. `[text](my-reference)` an additional situation is now supported: 4. A link to a source file, which is not a document, e.g. `[text](file.js)`. This behaves similarly to the sphinx `download` role. In addition, configuration to more finely tune this behaviour has been added. - `myst_all_links_external=True`, will make all links be treated as (1) - `myst_url_schemes=("http", "https")`, sets what URL schemes are treated as (1) - `myst_ref_domains=("std", "py")`, sets what Sphinx reference domains are checked, when handling (3) See [Markdown Links and Referencing](docs/syntax/cross-referencing.md) for more information. ### ‼️ Dollarmath is now disabled by default **WARNING: This is a breaking change for dollar math**. You should now manually enable dollar math (see below). The default configuration is now `myst_enable_extensions=()`, instead of `myst_enable_extensions=("dollarmath",)`. If you are using math enclosed in `$` or `$$` in your documents, you should enable `dollarmath` explicitly. See [Dollar delimited math](docs/syntax/optional.md#math-shortcuts) for more information. ### ⬆️ Drop Python 3.6 support MyST-Parser now supports, and is tested against, Python 3.7 to 3.10. ### ✨ Add the `strikethrough` extension and `myst_gfm_only` configuration The `strikethrough` extension allows text within `~~` delimiters to have a strike-through (horizontal line) placed over it. For example, `~~strikethrough with *emphasis*~~` renders as: ~~strikethrough with *emphasis*~~. **Important**: This extension is currently only supported for HTML output. See [Strikethrough](docs/syntax/optional.md#strikethrough) for more information. The `myst_gfm_only=True` configuration sets up specific configuration, to enable compliance only with [GitHub-flavored Markdown](https://github.github.com/gfm/), including enabling the `strikethrough`, `tasklist` and `linkify` extensions, but disabling support for roles and directives. ### ✨ Add `myst_title_to_header` configuration Setting `myst_title_to_header=True`, allows for a `title` key in the frontmatter to be used as the document title. for example: ```md --- title: My Title with *emphasis* --- ``` would be equivalent to: ```md # My Title with *emphasis* ``` See [Front matter](docs/configuration.md) for more information. ### πŸ‘Œ Internal improvements πŸ‘Œ IMPROVE: Convert nested headings to rubrics. Headings within directives are not directly supported by sphinx, since they break the structure of the document. Previously myst-parser would emit a `myst.nested_header` warning, but still generate the heading, leading to unexpected outcomes. Now the warning is still emitted, but also the heading is rendered as a [rubric](https://docutils.sourceforge.io/docs/ref/rst/directives.html#rubric) non-structural heading (i.e. it will not show in the ToC). Other internal improvements primarily focused in improving support for the for "docutils-only" use, introduced in `v0.16`: - ♻️ REFACTOR: `default_parser` -> `create_md_parser` in - πŸ‘Œ IMPROVE: Add `bullet` attribute to `bullet_list` node in - πŸ‘Œ IMPROVE: Use correct renderer for `state.inline_text` in - πŸ‘Œ IMPROVE: Docutils parser settings in - πŸ› FIX: front-matter rendering with docutils in - πŸ‘Œ IMPROVE: Code block highlighting in - πŸ‘Œ IMPROVE: `note_refname` for docutils internal links in - πŸ› FIX: Ordered list starting number in - πŸ‘Œ IMPROVE: Propagate enumerated list suffix in - πŸ‘Œ IMPROVE: `DocutilsRenderer.create_highlighted_code_block` in - πŸ› FIX: Source line reporting for nested parsing in - πŸ”§ MAINTAIN: Implement `MockInliner.parse` in ## 0.16.1 - 2021-12-16 ✨ NEW: Add `myst_linkify_fuzzy_links` option. When using the [`linkify` extension](docs/syntax/optional.md#linkify), this option can be used to disable matching of links that do not contain a schema (such as `http://`). ## 0.16.0 - 2021-12-06 This release contains a number of exciting improvements: ### Upgrade of Markdown parser `markdown-it-py` has been upgraded to [v2.0.0](https://github.com/executablebooks/markdown-it-py/releases/tag/v2.0.0). This upgrade brings full compliance with the [CommonMark v0.30 specification](https://spec.commonmark.org/0.30/). Additionally, `mdit-py-plugins` has been upgraded to [v0.3.0](https://github.com/executablebooks/mdit-py-plugins/releases/tag/v0.3.0). This improves the parsing of the MyST target syntax, to allow for spaces and additional special characters in the target name, for example this is now valid: ```md (a bc |@<>*./_-+:)= # Header ``` Also MyST role syntax now supports unlimited length in the role name and new lines in the content. For example, this is now valid: ```md {abc}`xy new line` ``` ### Improvements for Docutils-only use MyST now allows for Docutils-only use (outside of Sphinx), that allows for MyST configuration options to be set via the `docutils.conf` file, or on the command line. On installing MyST-Parser, the following CLI-commands are made available: - `myst-docutils-html`: converts MyST to HTML - `myst-docutils-html5`: converts MyST to HTML5 - `myst-docutils-latex`: converts MyST to LaTeX - `myst-docutils-xml`: converts MyST to docutils-native XML - `myst-docutils-pseudoxml`: converts MyST to pseudo-XML (to visualise the AST structure) You can also install the [myst-docutils](https://pypi.org/project/myst-docutils/) package from `pip`, which includes no direct install requirements on docutils or sphinx. See [MyST with Docutils](docs/docutils.md) for more information. Thanks to help from ! ### Include MyST files in RST files With `docutils>=0.17`, the `include` directive has a `parser` option. This can be used with myst-parser to include MyST files in RST files. ```md Parse using the docutils only parser: .. include:: include.md :parser: myst_parser.docutils_ Parse using the sphinx parser: .. include:: include.md :parser: myst_parser.sphinx_ ``` ### Addition of the `fieldlist` syntax extension Field lists are mappings from field names to field bodies, based on the [reStructureText syntax](https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#field-lists): ```rst :name only: :name: body :name: Multiple Paragraphs ``` This should eventually allow for MyST Markdown docstrings! (see ) See [Field Lists syntax](docs/syntax/optional.md#field-lists) for more information. ### Improvements to table rendering Tables with no body are now allowed, for example: ```md | abc | def | | --- | --- | ``` Also cell alignment HTML classes have now been changed to: `text-left`, `text-center`, or `text-right`, for example: ```md | left | center | right | | :--- | :----: | ----: | | a | b | c | ``` is converted to: ```html

left

center

right

a

b

c

``` These classes should be supported by most sphinx HTML themes. See [Tables syntax](docs/syntax/tables.md) for more information. ### Pull Requests - πŸ› FIX: Add mandatory attributes on `enumerated_list` by in - πŸ“š DOCS: Add reference to MySTyc in landing page by in - ⬆️ UPGRADE: markdown-it-py v2, mdit-py-plugins v0.3 by in - πŸ‘Œ IMPROVE: Table rendering by in - πŸ› FIX: Ensure parent files are re-built if `include` file changes by in - πŸ› FIX: Convert empty directive option to `None` by in - πŸ‘Œ IMPROVE: Add `\\` for hard-breaks in latex by in - πŸ”§ MAINTAIN: Remove empty "sphinx" extra by in - ✨ NEW: Add `fieldlist` extension by in - ✨ NEW: Add Docutils MyST config and CLI by in - πŸ”§ MAINTAIN: Add publishing job for `myst-docutils` by in - πŸ§ͺ TESTS: Add for `gettext_additional_targets` by in ### New Contributors - made their first contribution in - made their first contribution in **Full Changelog**: ## 0.15.2 - 2021-08-26 This is mainly a maintenance release that fixes some incompatibilities with `sphinx<3.1`, improvements for compatibility with `docutils=0.17`, and improvements to robustness. ## 0.15.1 - 2021-06-18 πŸ‘Œ IMPROVE: MathJax compatibility with `nbsphinx` `nbsphinx` also overrides the MathJax configuration. For compatibility, `output_area` is added to the list of default processed classes, and the override warning is allowed to be suppressed with `suppress_warnings = ["myst.mathjax"]`. ## 0.15.0 - 2021-06-13 ### Upgraded to `sphinx` v4 ⬆️ A principe change in this release is to updates the requirements of myst-parser from `sphinx>=2,<4` to `sphinx>=3,<5`. ### Changed MathJax handling ♻️ Instead of removing all `$` processing for the whole project, during MyST document parsing, the top-level section is now given the classes `tex2jax_ignore` and `mathjax_ignore` (turning off default MathJax processing of all HTML elements) and MathJax is then configured to process elements with the `tex2jax_process|mathjax_process|math` classes. See [the math syntax guide](docs/syntax/optional.md#math-shortcuts) for further information. ### Set URL scheme defaults ‼️ The `myst_url_schemes` default is now: `("http", "https", "mailto", "ftp")`. This means that only these URL will be considered as external (e.g. `[](https://example.com)`), and references like `[](prefix:main)` will be considered as internal references. Set `myst_url_schemes = None`, to revert to the previous default. ### Added `myst_heading_slug_func` option πŸ‘Œ Use this option to specify a custom function to auto-generate heading anchors (see [Auto-generated header anchors](docs/syntax/optional.md#auto-generated-header-anchors)). Thanks to ! ## 0.14.0 - 2021-05-04 ### Upgrade to `markdown-it-py` v1.0 ⬆️ This release updates the code-base to fully support the [markdown-it-py](https://markdown-it-py.readthedocs.io) `v1.0.0` release. In particular for users, this update alters the parsing of tables to be consistent with the [Github Flavoured Markdown (GFM) specification](https://github.github.com/gfm/#tables-extension-). ### New Features ✨ - **Task lists** utilise the [markdown-it-py tasklists plugin](inv:markdown_it#md/plugins), and are applied to Markdown list items starting with `[ ]` or `[x]`. ```markdown - [ ] An item that needs doing - [x] An item that is complete ``` Add "tasklist" to the `myst_enable_extensions` configuration to enable. See [the optional syntax guide](docs/syntax/optional.md#task-lists) for further information. - The **`sub-ref`** role has been added for use identical to ReST's `|name|` syntax. This allows one to access Sphinx's built-in `|today|`, `|release|` and `|version|` substitutions, and also introduces two new substitutions: `wordcount-words` and `wordcount-minutes`, computed by the markdown-it-py [`wordcount_plugin`](https://github.com/executablebooks/mdit-py-plugins/pull/20). ```markdown > {sub-ref}`today` | {sub-ref}`wordcount-words` words | {sub-ref}`wordcount-minutes` min read ``` See [the roles syntax guide](docs/syntax/roles-and-directives.md) for further information. - The **`dmath_double_inline`** configuration option allows display math (i.e. `$$`) within an inline context. See [the math syntax guide](docs/syntax/optional.md#math-shortcuts) for further information. ### Remove v0.13 deprecations ‼️ The deprecations made to extension configurations and colon fences in `0.13.0` (see below) have now been removed: - Configuration variables: `myst_admonition_enable`, `myst_figure_enable`, `myst_dmath_enable`, `myst_amsmath_enable`, `myst_deflist_enable`, `myst_html_img_enable` - `:::{admonition,class}` -> `:::{admonition}\n:class: class` - `:::{figure}` -> `:::{figure-md}` ### Fix extraction of nested footnotes πŸ› Previously footnote definitions in block elements like lists would crash the parsing: ```markdown - [^e]: footnote definition in a block element ``` These are now correctly extracted. ## 0.13.7 - 2021-04-25 πŸ‘Œ IMPROVE: Add warning for nested headers: Nested headers are not supported within most elements (this is a limitation of the docutils/sphinx document structure), and can lead to unexpected outcomes. For example in admonitions: ````markdown ```{note} # Unsupported Header ``` ```` A warning (of type `myst.nested_header`) is now emitted when this occurs. πŸ”§ MAINTAIN: Python 3.9 is now officially supported. ## 0.13.6 - 2021-04-10 πŸ› FIX: docutils `v0.17` compatibility ## 0.13.5 - 2021-02-15 - ⬆️ UPGRADE: required markdown-it-py to `v0.6.2`: In particular, this fixes missing source line mappings for table rows and their children - πŸ‘Œ IMPROVE: Store `rawtext` in AST nodes: We now ensure that the raw text is propagated from the Markdown tokens to the Sphinx AST. In particular, this is required by the `gettext` builder, to generate translation POT templates. Thanks to ! - ✨ NEW: Add warning types `myst.subtype`: All parsing warnings are assigned a type/subtype, and also the messages are appended with them. These warning types can be suppressed with the sphinx `suppress_warnings` config option. See [How-to suppress warnings](myst-warnings) for more information. ## 0.13.3 - 2021-01-20 Minor fixes: - πŸ› FIX: front-matter parsing for bibliographic keys - πŸ› FIX: directive/role name translations - πŸ‘Œ IMPROVE: Add warning for multiple footnote definitions ## 0.13.2 - 2021-01-20 ✨ NEW: Add `html_admonition` extension : By adding `"html_admonition"` to `myst_enable_extensions`, you can enable parsing of `
` HTML blocks to sphinx admonitions. : This is helpful when you care about viewing the "source" Markdown, such as in Jupyter Notebooks. : For example: ```html

This is the **title**

This is the *content*
``` : See [the optional syntax guide](docs/syntax/optional.md) for further information. πŸ‘Œ IMPROVE: Footnotes : If the label is an integer, then it will always use this integer for the rendered label (i.e. they are manually numbered). : Add `myst_footnote_transition` configuration, to turn on/off transition line. : Add `footnotes` class to transition `
` in HTML. : See [the typography guide](docs/syntax/typography.md) for further information. πŸ‘Œ IMPROVE: `substitution` extension logic : Parse inline substitutions without block rules, unless the substitution starts with a directive. πŸ› FIX: Render front-matter as `field_list` : To improve use by sphinx extensions). πŸ‘Œ IMPROVE: Code quality : Add isort and mypy type checking to code base. (thanks to contributors , ) ## 0.13.1 - 2020-12-31 πŸ‘Œ Directives can now be used for inline substitutions, e.g. ```md --- substitutions: key: | ```{image} img/fun-fish.png :alt: fishy :height: 20px ``` --- An inline image: {{ key }} ``` ## 0.13.0 - 2020-12-18 This release makes some major updates to the optional syntaxes. For full details see [Optional MyST Syntaxes](docs/syntax/optional.md). ### πŸ—‘ Deprecations `myst_enable_extensions = ["dollarmath", ...]` now replaces and deprecates individual enable configuration variables: `admonition_enable` -> `"colon_fence"`, `figure_enable` -> `"colon_fence"`, `dmath_enable` -> `"dollarmath"`, `amsmath` -> `"colon_fence"`, `deflist_enable` -> `"deflist"`, `html_img_enable` -> `"html_image"`. The `colon_fence` extension (replacing `admonition_enable`) now works exactly the same as normal ```` ``` ```` code fences, but using `:::` delimiters. This is helpful for directives that contain Markdown text, for example: ```md :::{admonition} The title :class: note This note contains *Markdown* ::: ``` ### ✨ New The `smartquotes` extension will automatically convert standard quotations to their opening/closing variants: - `'single quotes'`: β€˜single quotes’ - `"double quotes"`: β€œdouble quotes” The `linkify` extension will automatically identify β€œbare” web URLs, like `www.example.com`, and add hyperlinks; www.example.com. This extension requires that [linkify-it-py](https://github.com/tsutsu3/linkify-it-py) is installed. The `replacements` extension will automatically convert some common typographic texts, such as `+-` -> `Β±`. The `substitution` extension allows you to specify "substitution definitions" in either the `conf.py` (as `myst_substitutions`) and/or individual file's front-matter (front-matter takes precedence), which will then replace substitution references. For example: ```md --- substitutions: key1: definition --- {{ key1 }} ``` The substitutions are assessed as [jinja2 expressions](http://jinja.palletsprojects.com/) and includes the [Sphinx Environment](inv:sphinx#extdev/envapi) as `env`, so you can do powerful thinks like: ``` {{ [key1, env.docname] | join('/') }} ``` The `figure-md` directive has been added (replacing `enable_figure`), which parses a "Markdown friendly" figure (used with the `colon_fence` extension): ```md :::{figure-md} fig-target :class: myclass fishy This is a caption in **Markdown** ::: ``` ### πŸ‘Œ Improvements Using the `html_image` extension, HTML images are now processed for both blocks and (now) inline. So you can correctly do, for example: ```md I’m an inline image: | table column | | ----------------------------------------- | | | ``` ## 0.12.10 - 2020-09-21 πŸ› FIX: allow dates to be parsed in frontmatter. : This fixes a bug that would raise errors at parse time if non-string date objects were in front-matter YAML. See ## 0.12.9 - 2020-09-08 ✨ NEW: Auto-generate heading anchors. : This utilises `markdown-it-py`'s `anchors-plugin`, to generate unique anchor "slugs" for each header (up to a certain level), and allows them to be referenced *via* a relative path, e.g. `[](./file.md#header-anchor)`, or in the same document, e.g. `[](#header-anchor)`. Slugs are generated in the GitHub style ([see here](https://github.com/Flet/github-slugger)); lower-case text, removing punctuation, replacing spaces with `-`, enforce uniqueness *via* suffix enumeration `-1`. It is enabled in your `conf.py` *via* `myst_heading_anchors = 2` (sets maximum heading level). See [the documentation here](docs/syntax/optional.md#auto-generated-header-anchors). πŸ› FIX: doc reference resolution for singlehtml/latex. : These reference resolutions are passed to the "missing-reference" event, and require the `node["refdoc"]` attribute to be available, which was missing for `[text](./path/to/file.md)` type references. ## 0.12.7 - 2020-08-31 ✨ NEW: Want to include your README.md in the documentation? : See [including a file from outside the docs folder](howto/include-readme). (πŸ‘Œ added `relative-docs` option in 0.12.8) ## 0.12.5 - 2020-08-28 ✨ NEW: Add Markdown figure syntax : Setting `myst_figure_enable = True` in your sphinx `conf.py`, combines the above two extended syntaxes, to create a fully Markdown compliant version of the `figure` directive. See [Markdown Figures](docs/syntax/optional.md#markdown-figures) for details. (πŸ‘Œ formatting of caption improved in 0.12.6) ## 0.12.4 - 2020-08-27 πŸ‘Œ IMPROVE: the mathjax extension is now only overridden if strictly necessary (to support dollar and ams math), and the override is more precise, to mitigate any unwanted side-effects ## 0.12.3 - 2020-08-26 ✨ NEW: Add definition lists. : This addition, enabled by `myst_deflist_enable = True`, allows for "Pandoc style" definition lists to be parsed and rendered, e.g. ```md Term 1 : Definition ``` See the [Definition Lists documentation](https://myst-parser.readthedocs.io/en/latest/syntax/optional.html#definition-lists) for further details. πŸ‘Œ IMPROVE: mathjax_config override. : Only `mathjax_config["tex2jax"]` will now be overridden, in order to not interfere with other user configurations, such as adding TeX macros. The configuration name has also changed from `myst_override_mathjax` to `myst_update_mathjax`. See [Mathjax and math parsing](https://myst-parser.readthedocs.io/en/latest/syntax/syntax.html#mathjax-and-math-parsing) for further details. ## 0.12.2 - 2020-08-25 ✨ NEW: Add the `eval-rst` directive : This directive parses its contents as ReStructuredText, which integrates back into the rest of the document, e.g. for cross-referencing. See [this documentation](https://myst-parser.readthedocs.io/en/latest/syntax/syntax.html#how-directives-parse-content) for further explanation. In particular, this addition solves some outstanding user requests: - How-to [include rST files into a Markdown file](https://myst-parser.readthedocs.io/en/latest/using/howto.html#include-rst-files-into-a-markdown-file) - How-to [Use sphinx.ext.autodoc in Markdown files](https://myst-parser.readthedocs.io/en/latest/using/howto.html#use-sphinx-ext-autodoc-in-markdown-files) Thanks to for the contribution πŸŽ‰ ## 0.12.1 - 2020-08-19 ✨ NEW: Add `myst_commonmark_only` config option, for restricting the parser to strict CommonMark (no extensions). ## 0.12.0 - 2020-08-19 ### ‼️ BREAKING If you are using math in your documents, be sure to read the updated [Math syntax guide](https://myst-parser.readthedocs.io/en/latest/syntax/syntax.html#math-shortcuts)! In particular, the Mathjax configuration is now overridden, such that LaTeX environments will only be rendered if `myst_amsmath_enable=True` is set. The `myst_math_delimiters` option has also been removed (please open an issue if you would like brackets math parsing to be re-implemented). In addition the `myst_html_img` option name has been changed to `myst_html_img_enable`. Some underlying code has also been refactored, to centralise handling of configuration options (see [commit 98573b9](https://github.com/executablebooks/MyST-Parser/commit/98573b9c6e3602ab31d627b5266ae5c1ba2c9e5f)). ### Improved πŸ‘Œ More configuration options for math parsing (see [MyST configuration options](https://myst-parser.readthedocs.io/en/latest/using/intro.html#myst-configuration-options)). ## 0.11.2 - 2020-07-13 ### Added ✨ - `` tag parsing to sphinx representation, see [the image syntax guide](https://myst-parser.readthedocs.io/en/latest/syntax/syntax.html#images) ### Improved πŸ‘Œ - `[title](link)` syntax now works with intersphinx references. Recognised URI schemas can also be configured, see the [configuration options](https://myst-parser.readthedocs.io/en/latest/using/intro.html#myst-configuration-options) ## 0.11.1 - 2020-07-12 ### Fix - Correctly pin required minimum markdown-it-py version ## 0.11.0 - 2020-07-12 ### Added ✨ * Special admonition directive syntax (optional): ```md :::{note} This text is **standard** _Markdown_ ::: ``` See [the syntax guide section](https://myst-parser.readthedocs.io/en/latest/syntax/syntax.html#admonition-directives-special-syntax-optional) for details. * Direct parsing of [amsmath](https://ctan.org/pkg/amsmath) LaTeX equations (optional). See [the syntax guide section](https://myst-parser.readthedocs.io/en/latest/syntax/syntax.html#direct-latex-math-optional) for details. ### Breaking ‼️ * Sphinx configuration options are now set as separate variables, rather than a single dict. See [MyST configuration options](https://myst-parser.readthedocs.io/en/latest/using/intro.html#myst-configuration-options) for details. ## 0.10.0 - 2020-07-08 ([full changelog](https://github.com/executablebooks/MyST-Parser/compare/v0.9.1...aaed58808af485c29bbbf73c5aac10697bfa08b9)) ### Improved πŸ‘Œ * Support Sphinx version 3 in () * Update Trove Classifiers in () * Add functionality to use docutils specialized role in () ### Contributors to this release ([GitHub contributors page for this release](https://github.com/executablebooks/MyST-Parser/graphs/contributors?from=2020-07-20&to=2020-08-07&type=c)) [@AakashGfude](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3AAakashGfude+updated%3A2020-07-20..2020-08-07&type=Issues) | [@asmeurer](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Aasmeurer+updated%3A2020-07-20..2020-08-07&type=Issues) | [@choldgraf](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Acholdgraf+updated%3A2020-07-20..2020-08-07&type=Issues) | [@chrisjsewell](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Achrisjsewell+updated%3A2020-07-20..2020-08-07&type=Issues) | [@codecov](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Acodecov+updated%3A2020-07-20..2020-08-07&type=Issues) | [@webknjaz](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Awebknjaz+updated%3A2020-07-20..2020-08-07&type=Issues) | [@welcome](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Awelcome+updated%3A2020-07-20..2020-08-07&type=Issues) ## Past Releases ### Contributors ([GitHub contributors page for these releases](https://github.com/executablebooks/MyST-Parser/graphs/contributors?from=2020-01-01&to=2020-07-20&type=c)) [@akhmerov](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Aakhmerov+updated%3A2020-01-01..2020-07-20&type=Issues) | [@asmeurer](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Aasmeurer+updated%3A2020-01-01..2020-07-20&type=Issues) | [@certik](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Acertik+updated%3A2020-01-01..2020-07-20&type=Issues) | [@choldgraf](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Acholdgraf+updated%3A2020-01-01..2020-07-20&type=Issues) | [@chrisjsewell](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Achrisjsewell+updated%3A2020-01-01..2020-07-20&type=Issues) | [@codecov](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Acodecov+updated%3A2020-01-01..2020-07-20&type=Issues) | [@dhermes](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Adhermes+updated%3A2020-01-01..2020-07-20&type=Issues) | [@filippo82](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Afilippo82+updated%3A2020-01-01..2020-07-20&type=Issues) | [@jlperla](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Ajlperla+updated%3A2020-01-01..2020-07-20&type=Issues) | [@jstac](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Ajstac+updated%3A2020-01-01..2020-07-20&type=Issues) | [@martinagvilas](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Amartinagvilas+updated%3A2020-01-01..2020-07-20&type=Issues) | [@mlncn](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Amlncn+updated%3A2020-01-01..2020-07-20&type=Issues) | [@mmcky](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Ammcky+updated%3A2020-01-01..2020-07-20&type=Issues) | [@moorepants](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Amoorepants+updated%3A2020-01-01..2020-07-20&type=Issues) | [@najuzilu](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Anajuzilu+updated%3A2020-01-01..2020-07-20&type=Issues) | [@nathancarter](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Anathancarter+updated%3A2020-01-01..2020-07-20&type=Issues) | [@pauleveritt](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Apauleveritt+updated%3A2020-01-01..2020-07-20&type=Issues) | [@phaustin](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Aphaustin+updated%3A2020-01-01..2020-07-20&type=Issues) | [@rossbar](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Arossbar+updated%3A2020-01-01..2020-07-20&type=Issues) | [@rowanc1](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Arowanc1+updated%3A2020-01-01..2020-07-20&type=Issues) | [@sbliven](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Asbliven+updated%3A2020-01-01..2020-07-20&type=Issues) | [@webknjaz](https://github.com/search?q=repo%3Aexecutablebooks%2FMyST-Parser+involves%3Awebknjaz+updated%3A2020-01-01..2020-07-20&type=Issues) MyST-Parser-4.0.0/LICENSE000066400000000000000000000020661465415536200146250ustar00rootroot00000000000000MIT License Copyright (c) 2020 ExecutableBookProject 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. MyST-Parser-4.0.0/README.md000066400000000000000000000052171465415536200151000ustar00rootroot00000000000000# MyST-Parser [![Github-CI][github-ci]][github-link] [![Coverage Status][codecov-badge]][codecov-link] [![Documentation Status][rtd-badge]][rtd-link] [![Code style: black][black-badge]][black-link] [![PyPI][pypi-badge]][pypi-link] [![Conda][conda-badge]][conda-link] [![PyPI - Downloads][install-badge]][install-link] **MyST is a rich and extensible flavor of Markdown meant for technical documentation and publishing**. MyST is a flavor of markdown that is designed for simplicity, flexibility, and extensibility. This repository serves as the reference implementation of MyST Markdown, as well as a collection of tools to support working with MyST in Python and Sphinx. It contains an extended [CommonMark](https://commonmark.org)-compliant parser using [`markdown-it-py`](https://markdown-it-py.readthedocs.io/), as well as a [Sphinx](https://www.sphinx-doc.org) extension that allows you to write MyST Markdown in Sphinx. [**See the MyST Parser documentation for more information**](https://myst-parser.readthedocs.io/en/latest/). ## Installation To install the MyST parser, run the following in a [Conda environment](https://docs.conda.io) (recommended): ```bash conda install -c conda-forge myst-parser ``` or ```bash pip install myst-parser ``` Or for package development: ```bash git clone https://github.com/executablebooks/MyST-Parser cd MyST-Parser git checkout master pip install -e .[code_style,linkify,testing,rtd] ``` To use the MyST parser in Sphinx, simply add: `extensions = ["myst_parser"]` to your `conf.py`. ## Contributing We welcome all contributions! See the [Contributing Guide](https://myst-parser.readthedocs.io/en/latest/develop/index.html) for more details. [github-ci]: https://github.com/executablebooks/MyST-Parser/workflows/continuous-integration/badge.svg?branch=master [github-link]: https://github.com/executablebooks/MyST-Parser [codecov-badge]: https://codecov.io/gh/executablebooks/MyST-Parser/branch/master/graph/badge.svg [codecov-link]: https://codecov.io/gh/executablebooks/MyST-Parser [rtd-badge]: https://readthedocs.org/projects/myst-parser/badge/?version=latest [rtd-link]: https://myst-parser.readthedocs.io/en/latest/?badge=latest [black-badge]: https://img.shields.io/badge/code%20style-black-000000.svg [pypi-badge]: https://img.shields.io/pypi/v/myst-parser.svg [pypi-link]: https://pypi.org/project/myst-parser [conda-badge]: https://anaconda.org/conda-forge/myst-parser/badges/version.svg [conda-link]: https://anaconda.org/conda-forge/myst-parser [black-link]: https://github.com/ambv/black [install-badge]: https://img.shields.io/pypi/dw/myst-parser?label=pypi%20installs [install-link]: https://pypistats.org/packages/myst-parser MyST-Parser-4.0.0/codecov.yml000066400000000000000000000002421465415536200157570ustar00rootroot00000000000000coverage: status: project: default: target: 89% threshold: 0.5% patch: default: target: 60% threshold: 0.5% MyST-Parser-4.0.0/docs/000077500000000000000000000000001465415536200145445ustar00rootroot00000000000000MyST-Parser-4.0.0/docs/.gitignore000066400000000000000000000000271465415536200165330ustar00rootroot00000000000000_build/ _api/ apidocs/ MyST-Parser-4.0.0/docs/Makefile000066400000000000000000000014351465415536200162070ustar00rootroot00000000000000# Minimal makefile for Sphinx documentation # # You can set these variables from the command line, and also # from the environment for the first two. SPHINXOPTS ?= SPHINXBUILD ?= sphinx-build SOURCEDIR = . BUILDDIR = _build # Put it first so that "make" without argument is like "make help". help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) .PHONY: help Makefile # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) # raise warnings to errors html-strict: @$(SPHINXBUILD) -b html -nW --keep-going "$(SOURCEDIR)" "$(BUILDDIR)/html" $(SPHINXOPTS) $(O) clean: rm -r $(BUILDDIR) MyST-Parser-4.0.0/docs/_static/000077500000000000000000000000001465415536200161725ustar00rootroot00000000000000MyST-Parser-4.0.0/docs/_static/local.css000066400000000000000000000031311465415536200177740ustar00rootroot00000000000000/** landing page logo **/ #landing-page-logo { background: none; } /** Add a counter before subsections **/ h1:not(.rubric) { counter-reset: subsection; text-decoration: underline; } /** MyST examples */ .myst-example { border: 1px solid var(--pst-color-border); border-left-color: var(--pst-color-info); border-left-width: .2em; box-shadow: rgba(0, 0, 0, 0.25) 0px 5px 15px; margin-bottom: 1rem; } .myst-example-source > div[class*="highlight-"]{ margin: 0; } .myst-example-render { padding: 0.5rem; } .myst-example-render > :first-child { margin-top: 0.5rem; } /** No icon for admonitions with no-icon class */ div.admonition.no-icon > .admonition-title::before { content: ""; } div.admonition.no-icon > .admonition-title { padding-left: .6rem; } /* Live preview page */ @media (min-width: 768px) { .preview-input-tabs { height: 100%; } textarea.pyscript.input { height: 100%; } } textarea.pyscript { width: 100%; min-height: 300px; padding: 30px 20px 20px; border-radius: 8px; resize: vertical; font-size: 16px; font-family: monospace; } textarea.pyscript.output { height: 100%; } div.pyscript { min-height: 300px; } .display-flex { display: flex; } .display-inline-block { display: inline-block; margin-right: 1rem; margin-bottom: 0; } span.label { /* pyscript changes this and it messes up footnote labels */ all: unset; } .tippy-box { background-color:var(--pst-color-surface); color:var(--pst-color-text-base); border: 1px solid var(--pst-color-border); } MyST-Parser-4.0.0/docs/_static/logo-square.svg000066400000000000000000000012361465415536200211530ustar00rootroot00000000000000Artboard 4 MyST-Parser-4.0.0/docs/_static/logo-wide.svg000066400000000000000000000204661465415536200206110ustar00rootroot00000000000000Artboard 1 MyST-Parser-4.0.0/docs/conf.py000066400000000000000000000166511465415536200160540ustar00rootroot00000000000000# Configuration file for the Sphinx documentation builder. # # This file only contains a selection of the most common options. For a full # list see the documentation: # https://www.sphinx-doc.org/en/master/usage/configuration.html from datetime import date from sphinx.application import Sphinx from myst_parser import __version__ # -- Project information ----------------------------------------------------- project = "MyST Parser" copyright = f"{date.today().year}, Executable Book Project" author = "Executable Book Project" version = __version__ master_doc = "index" language = "en" # -- General configuration --------------------------------------------------- # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ "myst_parser", "autodoc2", "sphinx.ext.intersphinx", "sphinx.ext.viewcode", "sphinx.ext.autodoc", "sphinx.ext.autosummary", "sphinx_design", "sphinx_copybutton", "sphinxext.rediraffe", # disabled due to https://github.com/mgaitan/sphinxcontrib-mermaid/issues/109 # "sphinxcontrib.mermaid", "sphinxext.opengraph", "sphinx_pyscript", "sphinx_tippy", "sphinx_togglebutton", ] # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This pattern also affects html_static_path and html_extra_path. exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] suppress_warnings = ["myst.strikethrough"] intersphinx_mapping = { "python": ("https://docs.python.org/3.10", None), "sphinx": ("https://www.sphinx-doc.org/en/master", None), "markdown_it": ("https://markdown-it-py.readthedocs.io/en/latest", None), } # -- Autodoc settings --------------------------------------------------- autodoc2_packages = [ { "path": "../myst_parser", "exclude_files": ["_docs.py"], } ] autodoc2_hidden_objects = ["dunder", "private", "inherited"] autodoc2_replace_annotations = [ ("re.Pattern", "typing.Pattern"), ("markdown_it.MarkdownIt", "markdown_it.main.MarkdownIt"), ] autodoc2_replace_bases = [ ("sphinx.directives.SphinxDirective", "sphinx.util.docutils.SphinxDirective"), ] autodoc2_docstring_parser_regexes = [ ("myst_parser", "myst"), (r"myst_parser\.setup", "myst"), ] nitpicky = True nitpick_ignore_regex = [ (r"py:.*", r"docutils\..*"), (r"py:.*", r"pygments\..*"), (r"py:.*", r"typing\.Literal\[.*"), ] nitpick_ignore = [ ("py:obj", "myst_parser._docs._ConfigBase"), ("py:exc", "MarkupError"), ("py:class", "sphinx.util.typing.Inventory"), ("py:class", "sphinx.writers.html.HTMLTranslator"), ("py:obj", "sphinx.transforms.post_transforms.ReferencesResolver"), ] # -- MyST settings --------------------------------------------------- myst_enable_extensions = [ "dollarmath", "amsmath", "deflist", "fieldlist", "html_admonition", "html_image", "colon_fence", "smartquotes", "replacements", "linkify", "strikethrough", "substitution", "tasklist", "attrs_inline", "attrs_block", ] myst_url_schemes = { "http": None, "https": None, "mailto": None, "ftp": None, "wiki": "https://en.wikipedia.org/wiki/{{path}}#{{fragment}}", "doi": "https://doi.org/{{path}}", "gh-pr": { "url": "https://github.com/executablebooks/MyST-Parser/pull/{{path}}#{{fragment}}", "title": "PR #{{path}}", "classes": ["github"], }, "gh-issue": { "url": "https://github.com/executablebooks/MyST-Parser/issue/{{path}}#{{fragment}}", "title": "Issue #{{path}}", "classes": ["github"], }, "gh-user": { "url": "https://github.com/{{path}}", "title": "@{{path}}", "classes": ["github"], }, } myst_number_code_blocks = ["typescript"] myst_heading_anchors = 2 myst_footnote_transition = True myst_dmath_double_inline = True myst_enable_checkboxes = True myst_substitutions = { "role": "[role](#syntax/roles)", "directive": "[directive](#syntax/directives)", } # -- HTML output ------------------------------------------------- html_theme = "sphinx_book_theme" html_logo = "_static/logo-wide.svg" html_favicon = "_static/logo-square.svg" html_title = "" html_theme_options = { "home_page_in_toc": True, # "github_url": "https://github.com/executablebooks/MyST-Parser", "repository_url": "https://github.com/executablebooks/MyST-Parser", "repository_branch": "master", "path_to_docs": "docs", "use_repository_button": True, "use_edit_page_button": True, "use_issues_button": True, # "announcement": "v3.0.0 is now out! See the Changelog for details", } html_last_updated_fmt = "" # OpenGraph metadata ogp_site_url = "https://myst-parser.readthedocs.io/en/latest" # This is the image that GitHub stores for our social media previews ogp_image = "https://repository-images.githubusercontent.com/240151150/316bc480-cc23-11eb-96fc-4ab2f981a65d" ogp_custom_meta_tags = [ '', ] # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ["_static"] html_css_files = ["local.css"] rediraffe_redirects = { "using/intro.md": "sphinx/intro.md", "syntax/syntax.md": "syntax/typography.md", "sphinx/intro.md": "intro.md", "using/use_api.md": "api/index.md", "api/index.md": "api/reference.rst", "api/reference.rst": "apidocs/index.md", "using/syntax.md": "syntax/syntax.md", "using/syntax-optional.md": "syntax/optional.md", "using/reference.md": "syntax/reference.md", "sphinx/reference.md": "configuration.md", "sphinx/index.md": "faq/index.md", "sphinx/use.md": "faq/index.md", "sphinx/faq.md": "faq/index.md", "explain/index.md": "develop/background.md", } tippy_skip_anchor_classes = ("headerlink", "sd-stretched-link", "sd-rounded-pill") tippy_anchor_parent_selector = "article.bd-article" tippy_rtd_urls = [ "https://www.sphinx-doc.org/en/master", "https://markdown-it-py.readthedocs.io/en/latest", ] # -- LaTeX output ------------------------------------------------- latex_engine = "xelatex" # -- Local Sphinx extensions ------------------------------------------------- def setup(app: Sphinx): """Add functions to the Sphinx setup.""" from myst_parser._docs import ( DirectiveDoc, DocutilsCliHelpDirective, MystAdmonitionDirective, MystConfigDirective, MystExampleDirective, MystLexer, MystToHTMLDirective, MystWarningsDirective, NumberSections, StripUnsupportedLatex, ) app.add_directive("myst-config", MystConfigDirective) app.add_directive("docutils-cli-help", DocutilsCliHelpDirective) app.add_directive("doc-directive", DirectiveDoc) app.add_directive("myst-warnings", MystWarningsDirective) app.add_directive("myst-example", MystExampleDirective) app.add_directive("myst-admonitions", MystAdmonitionDirective) app.add_directive("myst-to-html", MystToHTMLDirective) app.add_post_transform(StripUnsupportedLatex) app.add_post_transform(NumberSections) app.add_lexer("myst", MystLexer) MyST-Parser-4.0.0/docs/configuration.md000066400000000000000000000133031465415536200177350ustar00rootroot00000000000000(sphinx/config-options)= # Configuration MyST parsing can be configured at both the global and individual document level, with the most specific configuration taking precedence. ## Global configuration Overriding the default configuration at the global level is achieved by specifying variables in the Sphinx `conf.py` file. All `myst_parser` global configuration variables are prefixed with `myst_`, e.g. ```python myst_enable_extensions = ["deflist"] ``` :::{seealso} Configuration in Docutils, in the [](docutils.md) section. ::: ```{myst-config} :sphinx: :scope: global ``` ### Extensions Configuration specific to syntax extensions: ```{myst-config} :sphinx: :extensions: :scope: global ``` (syntax/frontmatter)= ## Frontmatter (local) configuration Frontmatter allows you to specify metadata and options about how a single document should behave or render. It is a [YAML](https://en.wikipedia.org/wiki/YAML) block at the start of the document, as used for example in [jekyll](https://jekyllrb.com/docs/front-matter/). The document should start with three or more `---` markers, and YAML is parsed until a closing `---` marker is found: ```yaml --- key1: value key2: [value1, value2] key3: subkey1: value --- ``` :::{seealso} Frontmatter is also used for the [substitution syntax extension](syntax/substitutions), and can be used to store information for blog posting (see [ablog's myst-parser support](https://ablog.readthedocs.io/en/latest/manual/markdown.html)). ::: The following configuration variables are available to be set in the document frontmatter. These can be set in the document [front matter](syntax/frontmatter), under the `myst` key, e.g. ```yaml --- myst: enable_extensions: ["deflist"] --- ``` ```{myst-config} :sphinx: :scope: local ``` (syntax/html_meta)= ### Setting HTML Metadata The front-matter can contain the special key `html_meta`; a dict with data to add to the generated HTML as [`` elements](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta). This is equivalent to using the [meta directive](inv:sphinx#html-meta). HTML metadata can also be added globally in the `conf.py` *via* the `myst_html_meta` variable, in which case it will be added to all MyST documents. For each document, the `myst_html_meta` dict will be updated by the document level front-matter `html_meta`, with the front-matter taking precedence. ::::{tab-set} :::{tab-item} Sphinx Configuration ```python language = "en" myst_html_meta = { "description lang=en": "metadata description", "description lang=fr": "description des mΓ©tadonnΓ©es", "keywords": "Sphinx, MyST", "property=og:locale": "en_US" } ``` ::: :::{tab-item} MyST Front-Matter ```yaml --- myst: html_meta: "description lang=en": "metadata description" "description lang=fr": "description des mΓ©tadonnΓ©es" "keywords": "Sphinx, MyST" "property=og:locale": "en_US" --- ``` ::: :::{tab-item} RestructuredText ```restructuredtext .. meta:: :description lang=en: metadata description :description lang=fr: description des mΓ©tadonnΓ©es :keywords: Sphinx, MyST :property=og:locale: en_US ``` ::: :::{tab-item} HTML Output ```html ``` ::: :::: ### Extensions Configuration specific to syntax extensions: ```{myst-config} :sphinx: :extensions: :scope: local ``` ## List of syntax extensions Full details in the [](syntax/extensions) section. amsmath : enable direct parsing of [amsmath](https://ctan.org/pkg/amsmath) LaTeX equations attrs_inline : Enable inline attribute parsing, [see here](syntax/attributes) for details colon_fence : Enable code fences using `:::` delimiters, [see here](syntax/colon_fence) for details deflist : Enable definition lists, [see here](syntax/definition-lists) for details dollarmath : Enable parsing of dollar `$` and `$$` encapsulated math fieldlist : Enable field lists, [see here](syntax/fieldlists) for details html_admonition : Convert `
` elements to sphinx admonition nodes, see the [HTML admonition syntax](syntax/html-admonition) for details html_image : Convert HTML `` elements to sphinx image nodes, [see here](syntax/images) for details linkify : Automatically identify "bare" web URLs and add hyperlinks replacements : Automatically convert some common typographic texts smartquotes : Automatically convert standard quotations to their opening/closing variants strikethrough : Enable strikethrough syntax, [see here](syntax/strikethrough) for details substitution : Substitute keys, [see here](syntax/substitutions) for details tasklist : Add check-boxes to the start of list items, [see here](syntax/tasklists) for details (howto/warnings)= (myst-warnings)= ## Build Warnings Below lists the MyST specific warnings that may be emitted during the build process. These will be prepended to the end of the warning message (see also ), e.g. ``` WARNING: Non-consecutive header level increase; H1 to H3 [myst.header] ``` In general, if your build logs any warnings, you should either fix them or [raise an Issue](https://github.com/executablebooks/MyST-Parser/issues/new/choose) if you think the warning is erroneous. However, in some circumstances if you wish to suppress the warning you can use the configuration option, e.g. ```python suppress_warnings = ["myst.header"] ``` Or use `--myst-suppress-warnings="myst.header"` for the [docutils CLI](myst-docutils). ```{myst-warnings} ``` MyST-Parser-4.0.0/docs/develop/000077500000000000000000000000001465415536200162025ustar00rootroot00000000000000MyST-Parser-4.0.0/docs/develop/_changelog.md000066400000000000000000000001141465415536200206060ustar00rootroot00000000000000```{include} ../../CHANGELOG.md :relative-docs: docs/ :relative-images: ``` MyST-Parser-4.0.0/docs/develop/architecture.md000066400000000000000000000021601465415536200212050ustar00rootroot00000000000000# The MyST implementation architecture This page describes implementation details to help you understand the structure of the project. ## A Renderer for markdown-it tokens At a high level, the MyST parser is an extension of the Markdown-It-Py project. Markdown-It-Py is a well-structured Python parser for CommonMark text. It also defines an extension point to include more syntax in parsed files. The MyST parser uses this extension point to define its own syntax options (e.g., for Sphinx roles and directives). The result of this parser is a markdown-it token stream. ## A docutils renderer The MyST parser also defines a docutils renderer for the markdown-it token stream. This allows us to convert parsed elements of a MyST markdown file into docutils. ## A Sphinx parser Finally, the MyST parser provides a parser for Sphinx, the documentation generation system. This parser does the following: * Parse markdown files with the markdown-it parser, including MyST specific plugins * Convert these files into docutils objects using the MyST docutils renderer * Provide these to Sphinx in order to use in building your site. MyST-Parser-4.0.0/docs/develop/background.md000066400000000000000000000071451465415536200206520ustar00rootroot00000000000000# Background These sections discuss high-level questions about the MyST ecosystem, and explain a few decisions made in the project. ## Why did we create MyST markdown? While markdown is ubiquitous, it is not powerful enough for writing modern, fully-featured documentation. Some flavors of markdown support features needed for this, but there is no community standard around various syntactic choices for these features. Sphinx is a documentation generation framework written in Python. It heavily-utilizes reStructuredText syntax, which is another markup language for writing documents. In particular, Sphinx defines two extension points that are extremely useful: **{ref}`in-line roles`** and **{ref}`block-level directives `**. **This project is an attempt at combining the simplicity and readability of Markdown with the power and flexibility of reStructuredText and the Sphinx platform.** It starts with the [CommonMark markdown specification][commonmark], and selectively adds a few extra syntax pieces to utilize the most powerful parts of reStructuredText. ```{note} The CommonMark community has been discussing an "official" extension syntax for many years now (for example, see [this seven-year-old thread about directives](https://talk.commonmark.org/t/generic-directives-plugins-syntax/444) as well as [this more recent converstaion](https://talk.commonmark.org/t/support-for-extension-token/2771), and [this comment listing several more threads on this topic](https://talk.commonmark.org/t/extension-terminology-and-rules/1233)). We have chosen a "roles and directives" syntax that seems reasonable and follows other common conventions in Markdown flavors. However, if the CommonMark community ever decides on an "official" extension syntax, we will likely utilize this syntax for MyST. ``` ## The relationship between MyST, reStructuredText, and Sphinx MyST markdown provides a markdown equivalent of the reStructuredText syntax, meaning that you can do anything in MyST that you can do with reStructuredText. The Sphinx documentation engine supports a number of different input types. By default, Sphinx reads **reStructuredText** (`.rst`) files. Sphinx uses a **parser** to parse input files into its own internal document model (which is provided by a core Python project, [docutils](https://docutils.sourceforge.io/)). Developers can *extend Sphinx* to support other kinds of input files. Any content file can be read into the Sphinx document structure, provided that somebody writes a **parser** for that file. Once a content file has been parsed into Sphinx, it behaves nearly the same way as any other content file, regardless of the language in which it was written. The MyST-parser is a Sphinx parser for the MyST markdown language. When you use it, Sphinx will know how to parse content files that contain MyST markdown (by default, Sphinx will assume any files ending in `.md` are written in MyST markdown). Once a document has been parsed into Sphinx, it behaves the same way regardless of whether it has been written in rST or MyST markdown. ``` myst markdown (.md) ------> myst parser ---+ | +-->Sphinx document (docutils) | reStructuredText (.rst) --> rst parser ----+ ``` For example, here's how you'd write a `toctree` directive in MyST markdown: ```` ```{toctree} My page name page2 ``` ```` and here's the same in rST: ``` .. toctree:: My page name page2 ``` They will both behave the same in Sphinx. [commonmark]: https://commonmark.org/ MyST-Parser-4.0.0/docs/develop/contributing.md000066400000000000000000000052471465415536200212430ustar00rootroot00000000000000# Contributing [![Github-CI][github-ci]][github-link] [![Coverage Status][codecov-badge]][codecov-link] [![Documentation Status][rtd-badge]][rtd-link] [![Code style: black][black-badge]][black-link] We welcome all contributions! See the [EBP Contributing Guide](https://executablebooks.org/en/latest/contributing.html) for general details, and below for guidance specific to MyST-Parser. ## Install for development To install `myst-parser` for development, take the following steps: ```bash git clone https://github.com/executablebooks/MyST-Parser cd MyST-Parser git checkout master pip install -e .[code_style,linkify,testing,rtd] ``` ## Code Style Code style is tested using [flake8](http://flake8.pycqa.org), with the configuration set in `.flake8`, and code formatted with [black](https://github.com/ambv/black). Installing with `myst-parser[code_style]` makes the [pre-commit](https://pre-commit.com/) package available, which will ensure this style is met before commits are submitted, by reformatting the code and testing for lint errors. It can be setup by: ```shell >> cd MyST-Parser >> pre-commit install ``` Optionally you can run `black` and `flake8` separately: ```shell >> black . >> flake8 . ``` Editors like VS Code also have automatic code reformat utilities, which can adhere to this standard. All functions and class methods should be annotated with types and include a docstring. The preferred docstring format is outlined in `MyST-Parser/docstring.fmt.mustache` and can be used automatically with the [autodocstring](https://marketplace.visualstudio.com/items?itemName=njpwerner.autodocstring) VS Code extension. ## Testing For code tests, myst-parser uses [pytest](https://docs.pytest.org): ```shell >> cd MyST-Parser >> pytest ``` You can also use [tox](https://tox.readthedocs.io), to run the tests in multiple isolated environments (see the `tox.ini` file for available test environments): ```shell >> cd MyST-Parser >> tox ``` For documentation build tests: ```shell >> cd MyST-Parser/docs >> make clean >> make html-strict ``` ```{seealso} {ref}`develop/testing` ``` [github-ci]: https://github.com/executablebooks/MyST-Parser/workflows/continuous-integration/badge.svg?branch=master [github-link]: https://github.com/executablebooks/MyST-Parser [codecov-badge]: https://codecov.io/gh/executablebooks/MyST-Parser/branch/master/graph/badge.svg [codecov-link]: https://codecov.io/gh/executablebooks/MyST-Parser [rtd-badge]: https://readthedocs.org/projects/myst-parser/badge/?version=latest [rtd-link]: https://myst-parser.readthedocs.io/en/latest/?badge=latest [black-badge]: https://img.shields.io/badge/code%20style-black-000000.svg [black-link]: https://github.com/ambv/black MyST-Parser-4.0.0/docs/develop/index.md000066400000000000000000000006221465415536200176330ustar00rootroot00000000000000# Contribute This section covers documentation relevant to developing and maintaining the MyST codebase, and some guidelines for how you can contribute. ```{toctree} contributing.md architecture.md test_infrastructure.md ``` ## Code of Conduct The MyST-parser project follows the [Executable Book Project code of conduct](https://github.com/executablebooks/.github/blob/master/CODE_OF_CONDUCT.md). MyST-Parser-4.0.0/docs/develop/test_infrastructure.md000066400000000000000000000043121465415536200226430ustar00rootroot00000000000000(develop/testing)= # Testing Infrastructure Where possible, additions to the code should be carried out in a [test-driven development](https://en.wikipedia.org/wiki/Test-driven_development) manner: > **Write failing tests that the code should pass, then write code to pass the tests**. The tests are run using [pytest](https://docs.pytest.org)/[GitHub Actions](https://github.com/features/actions) for unit tests, and [readthedocs](https://readthedocs.org/) for documentation build tests. The tests are ordered in a hierarchical fashion: 1. In `tests/test_commonmark` the [CommonMark](https://github.com/commonmark/CommonMark.git) test set is run to check that the parser is complying with the CommonMark specification. 2. In `tests/test_renderers` are tests that check that the Markdown AST is being correctly converted to the docutils/sphinx AST. This includes testing that roles and directives are correctly parsed and run. 3. In `tests/test_sphinx` are tests that check that minimal sphinx project builds are running correctly, to convert MyST markdown files to HTML. 4. In `.circleci` the package documentation (written in MyST format) is built and tested for build errors/warnings. ## Test tools [**pytest-regressions**](https://pytest-regressions.readthedocs.io) is a pytest plugin that is used in the test suite, to maintain tests that generate lots of data. In particular, they are used in the syntax testing to generate tests for AST trees which may change in the future due to changes/additions to the data captured by the parser. For example, after writing: ```python def test_example_dict(data_regression): data_regression.check({ "key1": "value1", "key2": "value2", "more": "data...", }) def test_example_str(file_regression): file_regression.check("a very long string...") ``` Running the following will initially fail, but will also generate a file (per test) of expected output: ```console $ pytest -k test_example ``` Subsequent times the tests are run, the tests output will now be validated against these stored files. After a change to the syntax parser, all failing tests can then be 'regenerated' with the new expected output, by running: ```console $ pytest --force-regen ``` MyST-Parser-4.0.0/docs/docutils.md000066400000000000000000000055541465415536200167250ustar00rootroot00000000000000(myst-docutils)= # Single Page Builds ```{versionadded} 0.16.0 ``` Sphinx, and thus MyST-Parser, is built on top of the [Docutils](https://docutils.sourceforge.io/docs/) package. MyST-Parser offers a renderer, parser and CLI-interface for working directly with Docutils, independent of Sphinx, as described below. :::{note} Since these tools are independent of Sphinx, this means they cannot parse any Sphinx or Sphinx extensions specific roles or directives. ::: On installing MyST-Parser, the following CLI-commands are made available: - `myst-docutils-html`: converts MyST to HTML - `myst-docutils-html5`: converts MyST to HTML5 - `myst-docutils-latex`: converts MyST to LaTeX - `myst-docutils-xml`: converts MyST to docutils-native XML - `myst-docutils-pseudoxml`: converts MyST to pseudo-XML (to visualise the AST structure) Each command can be piped stdin or take a file path as an argument: ```console $ myst-docutils-html --help $ echo "Hello World" | myst-docutils-html $ myst-docutils-html hello-world.md ``` The commands are based on the [Docutils Front-End Tools](https://docutils.sourceforge.io/docs/user/tools.html), and so follow the same argument and options structure, included many of the MyST specific options detailed in [](sphinx/config-options). :::{dropdown} Shared Docutils CLI Options ```{docutils-cli-help} ``` ::: :::{versionadded} 0.19.0 `myst-suppress-warnings` replicates the functionality of sphinx's for `myst.` warnings in the `docutils` CLI. ::: The CLI commands can also utilise the [`docutils.conf` configuration file](https://docutils.sourceforge.io/docs/user/config.html) to configure the behaviour of the CLI commands. For example: ``` # These entries affect all processing: [general] myst-enable-extensions: deflist,linkify myst-footnote-transition: no myst-substitutions: key1: value1 key2: value2 # These entries affect specific HTML output: [html writers] embed-stylesheet: no [html5 writer] stylesheet-dirs: path/to/html5_polyglot/ stylesheet-path: minimal.css, responsive.css ``` You can also use the {py:class}`myst_parser.parsers.docutils_.Parser` class programmatically with the [Docutils publisher API](https://docutils.sourceforge.io/docs/api/publisher.html): ```python from docutils.core import publish_string from myst_parser.docutils_ import Parser source = "hallo world\n: Definition" output = publish_string( source=source, writer_name="html5", settings_overrides={ "myst_enable_extensions": ["deflist"], "embed_stylesheet": False, }, parser=Parser(), ) ``` Finally, you can include MyST Markdown files within a RestructuredText file, using the [`include` directive](https://docutils.sourceforge.io/docs/ref/rst/directives.html#include): ```rst .. include:: include.md :parser: myst_parser.docutils_ ``` ```{important} The `parser` option requires `docutils>=0.17` ``` MyST-Parser-4.0.0/docs/faq/000077500000000000000000000000001465415536200153135ustar00rootroot00000000000000MyST-Parser-4.0.0/docs/faq/index.md000066400000000000000000000127341465415536200167530ustar00rootroot00000000000000(myst-sphinx)= # FAQ ## How-tos These sections describe some common scenarios and use-cases for writing MyST with Sphinx. (howto/include-rst)= ### Include rST files into a Markdown file As explained in [this section](#syntax/directives/parsing), all MyST directives will parse their content as Markdown. Therefore, using the conventional `include` directive, will parse the file contents as Markdown: ````md ```{include} snippets/include-md.md ``` ```` ```{include} snippets/include-md.md ``` To include rST, we must first "wrap" the directive in the [eval-rst directive](#syntax/directives/parsing): ````md ```{eval-rst} .. include:: snippets/include-rst.rst ``` ```` ```{eval-rst} .. include:: snippets/include-rst.rst ``` (howto/include-md)= ### Include Markdown files into an rST file To include a MyST file within a ReStructuredText file, we can use the `parser` option of the `include` directive: ```rst .. include:: include.md :parser: myst_parser.sphinx_ ``` ```{important} The `parser` option requires `docutils>=0.17` ``` ### Use MyST in Jupyter Notebooks The [MyST-NB](https://myst-nb.readthedocs.io) tool provides a Sphinx extension for parsing **Jupyter Notebooks written with MyST Markdown**. It includes features like automatically executing notebooks during documentation builds, storing notebook cell outputs in order to insert them elsewhere in your documentation, and more. See the [MyST-NB documentation](https://myst-nb.readthedocs.io) for more information. (howto/include-readme)= ### Include a file from outside the docs folder (like README.md) :::{seealso} ::: You can include a file, including one from outside the project using e.g.: ````md ```{include} ../README.md ``` ```` **However**, including a file will not usually resolve local links correctly, like `![](my-image.png)`, since it treats the text as if it originated from the "including file". As of myst-parser version 0.12.7, a new, experimental feature has been added to resolve such links. You can now use for example: ````md Source: ```{literalinclude} ../../example.md :language: md ``` Included: ```{include} ../../example.md :relative-docs: docs/ :relative-images: ``` ```` Source: ```{literalinclude} ../../example-include.md :language: md ``` Included: ```{include} ../../example-include.md :relative-docs: docs/ :relative-images: ``` The include here attempts to re-write local links, to reference them from the correct location! The `relative-docs` must be given the prefix of any links to re-write, to distinguish them from sphinx cross-references. :::{important} The current functionality only works for Markdown style images and links. If you encounter any issues with this feature, please don't hesitate to report it. ::: (howto/autodoc)= ### Use `sphinx.ext.autodoc` in Markdown files See [](#syntax/apis) for this information. (howto/autosectionlabel)= ### Automatically create targets for section headers :::{versionadded} 0.13.0 See [](#syntax/implicit-targets) for this information. ::: ### Suppress warnings See for this information. ### Sphinx-specific page front matter Sphinx intercepts front matter and stores them within the global environment (as discussed in the [sphinx documentation](inv:sphinx#usage/*/field-lists)). There are certain front-matter keys (or their translations) that are also recognised specifically by docutils and parsed to inline Markdown: - `author` - `authors` - `organization` - `address` - `contact` - `version` - `revision` - `status` - `date` - `copyright` - `dedication` - `abstract` A classic use-case is to specify 'orphan' documents, that are not specified in any toctrees. For example, inserting the following syntax at the top of a page will cause Sphinx to treat it as an orphan page: ```md --- orphan: true --- This is an orphan document, not specified in any toctrees. ``` ### Migrate pre-existing rST into MyST If you've already got some reStructuredText files that you'd like to convert into MyST Markdown, try the [`rst-to-myst`](https://github.com/executablebooks/rst-to-myst) tool, which allows you to convert single rST files to MyST markdown documents. ## Disable Markdown syntax for the parser If you'd like to either enable or disable custom markdown syntax, use `myst_disable_syntax`. Anything in this list will no longer be parsed by the MyST parser. For example, to disable the `emphasis` in-line syntax, use this configuration: ```python myst_disable_syntax = ["emphasis"] ``` emphasis syntax will now be disabled. For example, the following will be rendered *without* any italics: ```md *emphasis is now disabled* ``` For a list of all the syntax elements you can disable, see the [markdown-it parser guide](inv:markdown_it#using). ## Common errors and questions These are common issues and gotchas that people may experience when using the MyST Sphinx extension. ### What markup language should I use inside directives? If you need to parse content *inside* of another block of content (for example, the content inside a **note directive**), note that the MyST parser will be used for this nested parsing as well. ### Why doesn't my role/directive recognize markdown link syntax? There are some roles/directives that _hard-code_ syntax into their behavior. For example, many roles allow you to supply titles for links like so: `` {role}`My title ` ``. While this looks like reStructuredText, the role may be explicitly expecting the `My title ` structure, and so MyST will behave the same way. MyST-Parser-4.0.0/docs/faq/snippets/000077500000000000000000000000001465415536200171605ustar00rootroot00000000000000MyST-Parser-4.0.0/docs/faq/snippets/include-md.md000066400000000000000000000001041465415536200215160ustar00rootroot00000000000000Hallo I'm from a Markdown file, [with a reference](#howto/autodoc). MyST-Parser-4.0.0/docs/faq/snippets/include-rst.rst000066400000000000000000000001051465415536200221370ustar00rootroot00000000000000Hallo I'm from an rST file, :ref:`with a reference `. MyST-Parser-4.0.0/docs/index.md000066400000000000000000000100131465415536200161700ustar00rootroot00000000000000--- sd_hide_title: true --- # πŸ”Ž Overview ::::{grid} :reverse: :gutter: 3 4 4 4 :margin: 1 2 1 2 :::{grid-item} :columns: 12 4 4 4 ```{image} _static/logo-square.svg :width: 200px :class: sd-m-auto :name: landing-page-logo ``` ::: :::{grid-item} :columns: 12 8 8 8 :child-align: justify :class: sd-fs-5 ```{rubric} MyST - Markedly Structured Text - Parser ``` A Sphinx and Docutils extension to parse MyST, a rich and extensible flavour of Markdown for authoring technical and scientific documentation. ````{div} sd-d-flex-row ```{button-ref} intro :ref-type: doc :color: primary :class: sd-rounded-pill sd-mr-3 Get Started ``` ```{button-ref} live-preview :ref-type: doc :color: secondary :class: sd-rounded-pill Live Demo ``` ```` ::: :::: --- ::::{grid} 1 2 2 3 :gutter: 1 1 1 2 :::{grid-item-card} {octicon}`markdown;1.5em;sd-mr-1` CommonMark-plus :link: syntax/core :link-type: ref MyST extends the CommonMark syntax specification, to support technical authoring features such as tables and footnotes. +++ [Learn more Β»](syntax/core) ::: :::{grid-item-card} {octicon}`plug;1.5em;sd-mr-1` Sphinx compatible :link: roles-directives :link-type: ref Use the MyST role and directive syntax to harness the full capability of Sphinx, such as admonitions and figures, and all existing Sphinx extensions. +++ [Learn more Β»](roles-directives) ::: :::{grid-item-card} {octicon}`tools;1.5em;sd-mr-1` Highly configurable :link: configuration :link-type: doc MyST-parser can be configured at both the global and individual document level, to modify parsing behaviour and access extended syntax features. +++ [Learn more Β»](configuration) ::: :::: --- ```{rubric} Additional resources ``` [MyST-Markdown VS Code extension](https://marketplace.visualstudio.com/items?itemName=ExecutableBookProject.myst-highlight) : For MyST extended syntax highlighting and authoring tools. [Convert existing ReStructuredText files to Markdown][rst-to-myst] : Use the [rst-to-myst] CLI or [the MySTyc interactive web interface](https://astrojuanlu.github.io/mystyc/). [markdown-it-py] : A CommonMark-compliant and extensible Markdown parser, used by MyST-Parser to parse source text to tokens. ```{rubric} Acknowledgements ``` The MyST markdown language and MyST parser are both supported by the open community, [The Executable Book Project](https://executablebooks.org). ```{toctree} :hidden: intro.md live-preview.md ``` ```{toctree} :hidden: :caption: ✏️ Authoring syntax/typography.md syntax/admonitions.md syntax/images_and_figures.md syntax/tables.md syntax/code_and_apis.md syntax/cross-referencing.md syntax/math.md ``` ```{toctree} :hidden: :caption: πŸ“š Guides configuration.md syntax/organising_content.md syntax/optional syntax/roles-and-directives.md docutils.md faq/index.md ``` ```{toctree} :hidden: :caption: πŸ“– Reference develop/_changelog.md develop/index.md syntax/reference develop/background.md apidocs/index.rst ``` [commonmark]: https://commonmark.org/ [github-ci]: https://github.com/executablebooks/MyST-Parser/workflows/continuous-integration/badge.svg?branch=master [github-link]: https://github.com/executablebooks/MyST-Parser [codecov-badge]: https://codecov.io/gh/executablebooks/MyST-Parser/branch/master/graph/badge.svg [codecov-link]: https://codecov.io/gh/executablebooks/MyST-Parser [rtd-badge]: https://readthedocs.org/projects/myst-parser/badge/?version=latest [rtd-link]: https://myst-parser.readthedocs.io/en/latest/?badge=latest [black-badge]: https://img.shields.io/badge/code%20style-black-000000.svg [pypi-badge]: https://img.shields.io/pypi/v/myst-parser.svg [pypi-link]: https://pypi.org/project/myst-parser [conda-badge]: https://anaconda.org/conda-forge/myst-parser/badges/version.svg [conda-link]: https://anaconda.org/conda-forge/myst-parser [black-link]: https://github.com/ambv/black [github-badge]: https://img.shields.io/github/stars/executablebooks/myst-parser?label=github [markdown-it-py]: https://markdown-it-py.readthedocs.io/ [markdown-it]: https://markdown-it.github.io/ [rst-to-myst]: https://rst-to-myst.readthedocs.io MyST-Parser-4.0.0/docs/intro.md000066400000000000000000000144121465415536200162230ustar00rootroot00000000000000(intro/get-started)= # πŸš€ Get Started This page gives a quick overview of how to get started with MyST Markdown, and how to use it within Docutils and Sphinx. ## Installation [![PyPI][pypi-badge]][pypi-link] [![Conda][conda-badge]][conda-link] To install myst-parser use [pip](https://pip.pypa.io): ```bash pip install myst-parser ``` or [Conda](https://docs.conda.io): ```bash conda install -c conda-forge myst-parser ``` [pypi-badge]: https://img.shields.io/pypi/v/myst-parser.svg [pypi-link]: https://pypi.org/project/myst-parser [conda-badge]: https://anaconda.org/conda-forge/myst-parser/badges/version.svg [conda-link]: https://anaconda.org/conda-forge/myst-parser (intro/writing)= ## Write a Markdown document To start off, create an empty file called `example.md` and give it a Markdown title and text. We can now use the `myst-docutils-demo` [CLI tool](docutils.md), from the installed package, to parse this file to HTML: :::{myst-to-html} # My nifty title Some **text**! ::: ## Extend Markdown with MyST syntax MyST is an extension of [CommonMark Markdown](https://commonmark.org/), that includes a rich [additional syntax](syntax/typography.md) for technical authoring, and can integrate with Docutils and Sphinx. For example, MyST includes {{role}} and {{directive}} extensions points, to allow for richer features, such as [admonitions](syntax/admonitions.md) and [figures](syntax/images_and_figures.md). Lets add an `admonition` directive and `sup` role to your Markdown page, like so: ::::{myst-to-html} :extensions: colon_fence # My nifty title Some **text**! :::{admonition} Here's my title :class: tip Here's my admonition content.{sup}`1` ::: :::: :::{tip} MyST works with just about all Docutils and Sphinx roles and directives. Note, Sphinx provides a superset of the Docutils roles and directives, so some may not work in the Docutils CLI. ::: (intro/reference)= ## Cross-referencing MyST-Parser offers powerful [cross-referencing features](syntax/cross-referencing.md), to link to documents, headers, figures and more. For example, to add a section *reference target*, and reference it: ::::{myst-to-html} (header-label)= # A header [My reference](#header-label) :::: (intro/sphinx)= ## Enable MyST in Sphinx To get started with Sphinx, see their [quick-start guide](inv:sphinx#usage/quickstart). To use the MyST parser in Sphinx, simply add the following to your `conf.py` [configuration file](inv:sphinx#usage/configuration): ```python extensions = ["myst_parser"] ``` This will activate the MyST Parser extension, causing all documents with the `.md` extension to be parsed as MyST. Our `example.md` file can now be added as the [index page](inv:sphinx#usage/index), or see the [organising content section](#syntax/toctree) about creating `toctree` directives, to add `example.md` to. :::{tip} There are a range of great HTML themes that work well with MyST, such as [sphinx-book-theme](https://github.com/executablebooks/sphinx-book-theme) (used here), [pydata-sphinx-theme](https://github.com/pydata/pydata-sphinx-theme/) and [furo](https://github.com/pradyunsg/furo) ::: ## Configuring MyST-Parser The section contains a complete list of configuration options for the MyST-Parser. These can be applied globally, e.g. in the sphinx `conf.py`: ```python myst_enable_extensions = ["colon_fence"] ``` Or they can be applied to specific documents, at the top of the document, in frontmatter: ```yaml --- myst: enable_extensions: ["colon_fence"] --- ``` ## Extending Sphinx The other way to extend MyST in Sphinx is to install Sphinx extensions that define new roles, directives, etc. For example, let's install the [sphinx-design](https://github.com/executablebooks/sphinx-design) extension, which will allow us to create beautiful, screen-size responsive web-components. First, install `sphinx-design`: ```shell pip install sphinx-design ``` Next, add it to your list of extensions in `conf.py`: ```python extensions = [ "myst_parser", "sphinx_design", ] ``` Now, we can use the `design` directive to add a web-component to our Markdown file! ::::{myst-example} :::{card} Card Title Header ^^^ Card content +++ Footer ::: :::: ::::::{myst-example} ::::{tab-set} :::{tab-item} Label1 Content 1 ::: :::{tab-item} Label2 Content 2 ::: :::: :::::: % TODO this can uncommented once https://github.com/mgaitan/sphinxcontrib-mermaid/issues/109 is fixed % For example, let's install the `sphinxcontrib.mermaid` extension, % which will allow us to generate [Mermaid diagrams](https://mermaid-js.github.io/mermaid/#/) with MyST. % First, install `sphinxcontrib.mermaid`: % ```shell % pip install sphinxcontrib-mermaid % ``` % Next, add it to your list of extensions in `conf.py`: % ```python % extensions = [ % "myst_parser", % "sphinxcontrib.mermaid", % ] % ``` % Now, add a **mermaid directive** to your Markdown file. % For example: % :::{myst-example} % Here's a cool mermaid diagram! % % ```{mermaid} % sequenceDiagram % participant Alice % participant Bob % Alice->John: Hello John, how are you? % loop Healthcheck % John->John: Fight against hypochondria % end % Note right of John: Rational thoughts
prevail... % John-->Alice: Great! % John->Bob: How about you? % Bob-->John: Jolly good! % ``` % ::: There are many other great Sphinx extensions that work with MyST, such as the ones used in this documentation: :sphinx-design: Add beautiful, responsive web-components to your documentation :sphinx-copybutton: Add a copy button to your code blocks :sphinxext-rediraffe: Add redirects to your documentation :sphinxext-opengraph: Add OpenGraph metadata to your documentation :sphinx-pyscript: Execute Python code in your documentation, [see here](https://github.com/sphinx-extensions2/sphinx-pyscript) :sphinx-tippy: Add tooltips to your documentation, [see here](https://github.com/sphinx-extensions2/sphinx-tippy) :sphinx-autodoc2: Generate documentation from docstrings, [see here](https://github.com/sphinx-extensions2/sphinx-autodoc2) :sphinx-togglebutton: Add collapsible content to your documentation :sphinxcontrib.mermaid: Generate [Mermaid diagrams](https://mermaid-js.github.io/mermaid/#/) :::{seealso} [sphinx-extensions](https://sphinx-extensions.readthedocs.io/en/latest/), for a curated and opinionated list of Sphinx extensions. ::: MyST-Parser-4.0.0/docs/live-preview.md000066400000000000000000000041641465415536200175110ustar00rootroot00000000000000--- py-config: splashscreen: autoclose: true packages: - myst-docutils==3.0 - docutils==0.20 - pygments --- # ⚑ Live Preview This is a live preview of the MyST Markdown [docutils renderer](docutils.md). You can edit the text/configuration below and see the live output. ```{py-script} :file: live_preview.py ``` ::::::::{grid} 1 1 2 2 :::::::{grid-item} :child-align: start ```{raw} html
myst-parser v
``` :::::{tab-set} :class: preview-input-tabs ::::{tab-item} Input text :class-container: sd-h-100 :class-content: sd-h-100 ````{raw} html ```` :::: ::::{tab-item} Configuration (YAML) :class-container: sd-h-100 :class-content: sd-h-100 :::: ::::: ::::::: :::::::{grid-item} :child-align: start ```{raw} html
``` ::::{tab-set} :::{tab-item} HTML Render
::: :::{tab-item} Raw Output ::: :::{tab-item} Warnings ::: :::: ::::::: :::::::: MyST-Parser-4.0.0/docs/live_preview.py000066400000000000000000000057601465415536200176260ustar00rootroot00000000000000import traceback from io import StringIO import yaml from docutils.core import publish_string from docutils.frontend import filter_settings_spec from docutils.writers.html5_polyglot import HTMLTranslator, Writer from js import document from myst_parser import __version__ from myst_parser.parsers.docutils_ import Parser class SimpleTranslator(HTMLTranslator): def visit_literal_block(self, node): node["classes"].append("highlight") return super().visit_literal_block(node) def stylesheet_call(self, *args, **kwargs): return "" class SimpleWriter(Writer): settings_spec = filter_settings_spec( Writer.settings_spec, "template", ) def apply_template(self): subs = self.interpolation_dict() return "{body}\n".format(**subs) def __init__(self): self.parts = {} self.translator_class = SimpleTranslator def convert(input_config: str, input_myst: str, writer_name: str) -> dict: warning_stream = StringIO() try: settings = yaml.safe_load(input_config) if input_config else {} assert isinstance(settings, dict), "not a dictionary" except Exception as exc: warning_stream.write(f"ERROR: config load: {exc}\n") settings = {} settings.update( { "output_encoding": "unicode", "warning_stream": warning_stream, # to mimic the sphinx parser "doctitle_xform": False, "sectsubtitle_xform": False, "initial_header_level": 1, } ) try: output = publish_string( input_myst, parser=Parser(), settings_overrides=settings, **( {"writer": SimpleWriter()} if "html" in writer_name else {"writer_name": writer_name} ), ) except Exception as exc: output = f"ERROR: conversion:\n{exc}\n{traceback.format_exc()}" return {"output": output, "warnings": warning_stream.getvalue()} version_label = document.querySelector("span#myst-version") config_textarea = document.querySelector("textarea#input_config") input_textarea = document.querySelector("textarea#input_myst") output_iframe = document.querySelector("div#output_html") output_raw = document.querySelector("textarea#output_raw") warnings_textarea = document.querySelector("textarea#output_warnings") oformat_select = document.querySelector("select#output_format") def do_convert(event=None): result = convert(config_textarea.value, input_textarea.value, oformat_select.value) output_raw.value = result["output"] if "html" in oformat_select.value: output_iframe.innerHTML = result["output"] else: output_iframe.innerHTML = "Change output format to HTML to see output" warnings_textarea.value = result["warnings"] version_label.textContent = f"myst-parser v{__version__}" config_textarea.oninput = do_convert input_textarea.oninput = do_convert oformat_select.onchange = do_convert do_convert() MyST-Parser-4.0.0/docs/syntax/000077500000000000000000000000001465415536200160725ustar00rootroot00000000000000MyST-Parser-4.0.0/docs/syntax/admonitions.md000066400000000000000000000056231465415536200207460ustar00rootroot00000000000000# Admonitions Admonitions (also known as callouts) highlight a particular block of text, that exists slightly apart from the narrative of your page, such as a note or a warning. Admonitions are a special case of {{directive}} extensions. It is advised to use admonitions with the [colon_fence](#syntax/colon_fence) extension, which signify that the content of the block is also MyST Markdown. ::::{myst-example} :::{tip} Let's give readers a helpful hint! ::: :::: ## Admonition types The following core admonition types are available: ```{myst-admonitions} attention, caution, danger, error, hint, important, note, seealso, tip, warning ``` These admonitions take no argument, but may be specified with options: :class: A space-separated list of CSS classes to add to the admonition, conforming to the [identifier normalization rules](https://docutils.sourceforge.io/docs/ref/rst/directives.html#identifier-normalization). :name: A reference target for the admonition (see [cross-referencing](#syntax/referencing)). ::::{myst-example} :::{tip} :class: myclass1 myclass2 :name: a-tip-reference Let's give readers a helpful hint! ::: [Reference to my tip](#a-tip-reference) :::: Sphinx also adds a number of additional admonition types, for denoting changes to the documentation, or to the codebase: ::::{myst-example} :::{versionadded} 1.2.3 Explanation of the new feature. ::: :::{versionchanged} 1.2.3 Explanation of the change. ::: :::{deprecated} 1.2.3 Explanation of the deprecation. ::: :::: ## Admonition titles To provide a custom title for an admonition, use the `admonition` directive. If you also want to style the admonition as one of the core admonition types, you can use the `admonition` directive with the `class` option. ::::{myst-example} :::{admonition} My custom title with *Markdown*! :class: tip This is a custom title for a tip admonition. ::: :::: ## Collapsible admonitions The [sphinx-togglebutton](https://sphinx-togglebutton.readthedocs.io) extension allows you to create collapsible admonitions, by adding a `dropdown` class to the admonition. ::::{myst-example} :::{note} :class: dropdown This admonition has been collapsed, meaning you can add longer form content here, without it taking up too much space on the page. ::: :::: ## Other Containers (grids, tabs, cards, etc.) Using the [colon_fence](#syntax/colon_fence) extension, content block can be wrapped in containers with a custom CSS class. ::::{myst-example} :::bg-primary This is a container with a custom CSS class. - It can contain multiple blocks ::: :::: Using the [sphinx-design](https://github.com/executablebooks/sphinx-design) extension, it is also possible to create beautiful, screen-size responsive web-components. ::::{myst-example} :::{card} Card Title Header ^^^ Card content +++ Footer ::: :::: ::::::{myst-example} ::::{tab-set} :::{tab-item} Label1 Content 1 ::: :::{tab-item} Label2 Content 2 ::: :::: :::::: MyST-Parser-4.0.0/docs/syntax/code_and_apis.md000066400000000000000000000150731465415536200211720ustar00rootroot00000000000000(syntax/code-blocks)= # Source code and APIs ## Basic block syntax highlighting Code blocks contain a language identifier, which is used to determine the language of the code. This language is used to determine the syntax highlighting, using an available [pygments lexer](https://pygments.org/docs/lexers/). :::{myst-example} ```python from a import b c = "string" ``` ::: ::::{admonition} Adding a language lexer :class: tip dropdown You can create and register your own lexer, using the [`pygments.lexers` entry point](https://pygments.org/docs/plugins/#register-plugins), or within a sphinx extension, with the [`app.add_lexer` method](inv:sphinx#*.Sphinx.add_lexer). :::: ::::{admonition} Show backticks inside raw markdown blocks :class: tip dropdown If you'd like to show backticks inside of your markdown, you can do so by nesting them in backticks of a greater length. Markdown will treat the outer-most backticks as the edges of the "raw" block and everything inside will show up. For example: :::{myst-example} `` `hi` `` ```` ``` hi ``` ```` ::: :::: ## Inline syntax highlighting The [attrs_inline](#syntax/attributes/inline) extension can be used to apply syntax highlighting to inline code: :::{myst-example} Inline Python code `a = "b"`{l=python} ::: ## Numbering and highlighting lines To set a global default for line numbering, per lexer name, the `myst_number_code_blocks` [configuration option](#sphinx/config-options) can be used. For example, using: ```python myst_number_code_blocks = ["typescript"] ``` Will number all code blocks with the `typescript` lexer by default. :::{myst-example} ```typescript type MyBool = true | false; interface User { name: string; id: number; } ``` ::: To apply numbering and highlighting to a specific code block, the [attrs_block](#syntax/attributes/block) extension can be used: :::{myst-example} {lineno-start=1 emphasize-lines="2,3"} ```python a = 1 b = 2 c = 3 ``` ::: ## Adding a caption With the `code-block` {{directive}}, a caption can be added to a code blocks, as well as other options: :::{myst-example} ```{code-block} python :caption: This is a caption :emphasize-lines: 2,3 :lineno-start: 1 a = 1 b = 2 c = 3 ``` ::: The following options are recognized: :::{admonition} Code block options :class: hint dropdown `linenos` : flag : Enable to generate line numbers for the code block `lineno-start` : integer : The starting line number for the code block (`linenos` is automatically enabled) `emphasize-lines` : comma-separated list of integers : Highlight the specified lines `caption` : string : The caption for the code block `force` : flag : Allow minor errors on highlighting to be ignored `name` : string : The name of the code block, which can be referenced elsewhere in the document `class` : string : The class to apply to the code block ```{seealso} The [Sphinx documentation](inv:sphinx#code-block) ``` ::: (syntax/literalinclude)= ## Including code from files Longer pieces of code can be included from files using the `literalinclude` {{directive}}: :::{myst-example} ```{literalinclude} examples/example.py ``` ::: The file name is usually relative to the current file’s path. However, if it is absolute (starting with `/`), it is relative to the top source directory. To select only a sub-section of the file, the `lines`, `pyobject` or `start-after` and `end-before` options can be used: :::{myst-example} ```{literalinclude} examples/example.py :start-after: start example :end-before: end example ``` ::: ```{seealso} The [Sphinx documentation](inv:sphinx#literalinclude) ``` (syntax/apis)= ## Documenting whole APIs Sphinx and MyST provide means to analyse source code and automatically generate documentation and referenceable links for APIs. `sphinx.ext.autodoc` can be used ([see below](#syntax/apis/sphinx-autodoc)), however, it is not inherently compatible with MyST Markdown, and so the `sphinx-autodoc2` extension is recommended. (syntax/apis/sphinx-autodoc2)= ### `sphinx-autodoc2` [`sphinx-autodoc2`](https://sphinx-autodoc2.readthedocs.io) is an extension for Sphinx that provides an integrated means to document Python APIs. As opposed to `sphinx.ext.autodoc`, `sphinx-autodoc2` performs static (rather than dynamic) analysis of the source code, integrates full package documenting, and also allows for docstrings to be written in both RestructureText and MyST. The `auto_mode` will automatically generate the full API documentation, as shown . Alternatively, the `autodoc2-object` directive can be used to generate documentation for a single object. To embed in a MyST document the MyST `render_plugin` should be specified, for example: ````{myst-example} ```{autodoc2-object} myst_parser.sphinx_ext.main.setup_sphinx render_plugin = "myst" no_index = true ``` ```` This can be referenced elsewhere in the document using the `:py:obj:` role, or a `#` link (see [cross-referencing](#syntax/referencing)). ````{myst-example} - {py:obj}`myst_parser.sphinx_ext.main.setup_sphinx` - [](#myst_parser.sphinx_ext.main.setup_sphinx) ```` Additionally, summaries of multiple objects can be generated using the `autodoc2-summary` directive: ````{myst-example} ```{autodoc2-summary} :renderer: myst ~myst_parser.sphinx_ext.main.setup_sphinx ~myst_parser.sphinx_ext.main.create_myst_config ``` ```` #### Using MyST docstrings `sphinx-autodoc2` can be configured to use MyST docstrings (rather than RestructureText), for the entire project or select objects, by setting the `autodoc2_docstring_parser_regexes` configuration option: ```python autodoc2_docstring_parser_regexes = [ # this will render all docstrings as Markdown (r".*", "myst"), # this will render select docstrings as Markdown (r"mypackage\.mymodule\..*", "myst"), ] ``` For example: ````{myst-example} ```{autodoc2-object} myst_parser.setup render_plugin = "myst" no_index = true docstring_parser_regexes = [ ["myst_parser\\.setup", "myst"], ] ``` ```` (syntax/apis/sphinx-autodoc)= ### `sphinx.ext.autodoc` [Sphinx extension `autodoc`](inv:sphinx#sphinx.ext.autodoc) also can generate documentation for Python objects. However, because it is hard-coded to generate RestructureText, the special [`eval-rst` directive](#syntax/directives/parsing) needs to be used: ````{myst-example} ```{eval-rst} .. autofunction:: myst_parser.sphinx_ext.main.setup_sphinx :noindex: ``` ```` Summaries can also be generated with [`autosummary`](inv:sphinx#sphinx.ext.autosummary): ````{myst-example} ```{eval-rst} .. autosummary:: :nosignatures: myst_parser.sphinx_ext.main.setup_sphinx myst_parser.sphinx_ext.main.create_myst_config ``` ```` MyST-Parser-4.0.0/docs/syntax/cross-referencing.md000066400000000000000000000374231465415536200220430ustar00rootroot00000000000000(syntax/referencing)= # Cross-references MyST-Parser offers powerful cross-referencing features, to link to URLs, documents, headers, figures and more, that are **portable** across output formats and generate **warnings** when broken. This page covers the basics of setting up referenceable targets for content and how to reference them. (syntax/targets)= ## Creating explicit targets Targets are used to define custom anchors that you can refer to elsewhere in your documentation. There are three primary ways to create targets: 1. Annotating a syntax block with `(target)=` 2. Annotating a syntax bloc/inline/span with an `{#id}` attribute (using the [attrs_block](#syntax/attributes/block) and [attrs_inline](#syntax/attributes/inline) extensions) 3. Adding a `name` option to a directive ::::{myst-example} (heading-target)= ### Heading {#paragraph-target} This is a paragraph, with an `id` attribute. This is a [span with an `id` attribute]{#span-target}. :::{note} :name: directive-target This is a directive with a `name` option ::: [reference1](#heading-target), [reference2](#paragraph-target), [reference3](#span-target), [reference4](#directive-target) :::: There are also other ways to create targets, specific to certain directives, such as [glossaries](#syntax/glossaries) create targets for terms, and [code APIs](#syntax/apis) create targets for objects: ::::{myst-example} {.glossary} my other term : Definition of the term [Link to a term](<#my other term>) ```{py:class} mypackage.MyClass :nocontentsentry: Docstring content ``` [Link to a class](#mypackage.MyClass) :::: :::{seealso} The [footnotes section](#syntax/footnotes), covers how to create and link to footnotes, and the [sphinxcontrib.bibtex](https://pypi.org/project/sphinxcontrib-bibtex/) extension provides a means to reference bibliographies. ::: (syntax/implicit-targets)= ## Implicit targets Whole documents can be referenced by path. Headings within documents can also be assigned an implicit target, by setting the `myst_heading_anchors` configuration option. This is should be set to an integer, between 1 and 6, indicating the depth of headings to assign targets to. The anchor "slugs" are created according to the [GitHub implementation](https://github.com/Flet/github-slugger): heading titles are lower cased, punctuation is removed, spaces are replaced with `-`, and uniqueness is enforced by suffix enumeration. For example, using `myst_heading_anchors = 2`: ::::{myst-example} ## A heading with slug ## A heading with slug [Explicit title](#a-heading-with-slug-1) :::: For more information see the [auto-generated header anchors](#syntax/header-anchors) section. :::{warning} In general, it is discouraged to rely on implicit targets, since they are easy to break, if for example a document/heading is moved or renamed. ::: ## Markdown link syntax Markdown links come in three forms: *Autolinks* are [URIs][uri] surrounded by `<` and `>`, which must always have a scheme: ```md ``` *Inline links* allow for optional explicit text and titles (in HTML titles are rendered as tooltips): ```md [Explicit *Markdown* text](destination "optional explicit title") ``` or, if the destination contains spaces, ```md [Explicit *Markdown* text]( "optional explicit title") ``` *Reference links* define the destination separately in the document, and can be used multiple times: ```md [Explicit *Markdown* text][label] [Another link][label] [label]: destination "optional explicit title" ``` :::{seealso} The [CommonMark specification](https://spec.commonmark.org/0.30/#links) ::: [uri]: https://en.wikipedia.org/wiki/Uniform_Resource_Identifier [url]: https://en.wikipedia.org/wiki/URL ### Default destination resolution The destination of a link can resolve to either an **external** target, such as a [URL] to another website, or an **internal** target, such as a file, heading or figure within the same project. By default, MyST will resolve link destinations according to the following rules: 1. Destination beginning with a scheme (e.g. `xxx:`), will be handled according to that scheme: {style=lower-roman} 1. Destinations beginning with `project:` will be treated as internal references 2. Destinations beginning with `path:` will be treated as downloadable files 3. Destinations beginning with `inv:` will be treated as intersphinx references 4. Autolinks or destinations beginning with `http:`, `https:`, `ftp:`, or `mailto:` will be treated as external [URL] links. 2. Destinations which point to a local file path are treated as links to that file. {style=lower-roman} 1. If the destination is a relative path, it is resolved relative to the current file. 2. If the destination is an absolute path (starts with `/`), it is resolved relative to the root of the project (i.e. the source directory). 3. If that path relates to another document in the project (e.g. a `.md` or `.rst` file), then it will link to the first heading in that document. 4. Links to project documents can also include a `#` fragment identifier, to link to a specific heading in that document. 5. If the path is to a non-source file (e.g. a `.png` or `.pdf` file), then the link will be to the file itself, e.g. to download it. 3. Destinations beginning with `#` will be treated as internal references. {style=lower-roman} 1. First, explicit targets in the same file are searched for, if not found 2. Then, implicit targets in the same file are searched for, if not found 3. Then, explicit targets across the whole project are searched for, if not found 4. Then, intersphinx references are searched for, if not found 5. A warning is emitted and the destination is left as an external link. :::{note} Local file path resolution and cross-project references are not available in [single page builds](#myst-docutils) ::: ### Explicit vs implicit link text If the link text is explicitly given, e.g. `[text](#dest)`, then the rendered text will be that. This text can contain nested inline markup, such as `[*emphasis*](#syntax/emphasis)`{l=md}. If no text is given or it is an auto-link, e.g. `[](#dest)` or ``, then MyST will attempt to resolve an implicit text. For example, if the destination is a heading, then the heading text will be used as the link text, or if the destination is a figure/table then the caption will be used as the link text. Otherwise, the link text will be the destination itself. ### Examples #### Autolinks :::{myst-example} :External URL: :Internal target reference: :Internal file reference: :Internal file -> heading reference: :Downloadable file: :Intersphinx reference: ::: #### Inline links with implicit text :::{myst-example} :External URL: [](https://example.com) :Internal target reference: [](#cross-references) :Internal file reference: [](../intro.md) :Internal file -> heading reference: [](../intro.md#-get-started) :Downloadable file: [](example.txt) :Intersphinx reference: [](inv:sphinx:std#index) ::: #### Inline links with explicit text :::{myst-example} :External URL: [Explicit text](https://example.com) :Internal target reference: [Explicit text](#cross-references) :Internal file reference: [Explicit text](../intro.md) :Internal file -> heading reference: [Explicit text](../intro.md#-get-started) :Downloadable file: [Explicit text](example.txt) :Intersphinx reference: [Explicit text](inv:sphinx:std#index) ::: ### Customising external URL resolution :::{versionadded} 0.19 `myst_url_schemes` now allows for customising how the links are converted to URLs, and the `attrs_inline` extension can be used to specify certain links as external. ::: By default, all links which begin with `http:`, `https:`, `ftp:`, or `mailto:` will be treated as external [URL] links. You can customise this behaviour in a number of ways using [configuration options](../configuration.md). Most simply, by setting the `myst_all_links_external` configuration option to `True`, all links will be treated as external [URL] links. To apply selectively to specific links, you can enable the [attrs_inline](syntax/attributes/inline) extension, then add an `external` class to the link.\ For example, `[my-external-link](my-external-link){.external}` becomes [my-external-link](my-external-link){.external}. To specify a custom list of URL schemes, you can set the `myst_url_schemes` configuration option. By default this is set to `["http", "https", "ftp", "mailto"]`. As well as being a list of strings, `myst_url_schemes` can also be a dictionary, where the keys are the URL schemes, and the values define how the links are converted to URLs. This allows you to customise the conversion of links to URLs for specific schemes, for example: ```python myst_url_schemes = { "http": None, "https": None, "wiki": "https://en.wikipedia.org/wiki/{{path}}#{{fragment}}", "doi": "https://doi.org/{{path}}", "gh-issue": { "url": "https://github.com/executablebooks/MyST-Parser/issue/{{path}}#{{fragment}}", "title": "Issue #{{path}}", "classes": ["github"], }, } ``` Allows for links such as: - `[URI](wiki:Uniform_Resource_Identifier#URI_references)` is converted to [URI](wiki:Uniform_Resource_Identifier#URI_references) - `` is converted to - `` is converted to :::{tip} You can also use the [sphinx-tippy](https://sphinx-tippy.readthedocs.io) extension to add rich "hover" tooltips to links. Adding the `github` class above integrates well the [pydata-sphinx-theme's GitHub link formatting](https://pydata-sphinx-theme.readthedocs.io/en/stable/user_guide/theme-elements.html#link-shortening-for-git-repository-services) ::: The value of each scheme can be: - `None`: the link is converted directly to an external URL. - A string: the link is converted to an external URL using the string as a template. - A dictionary: the link is converted to an external URL using the dictionary’s `url` key as a template. - The (optional) `title` key is a template for the link’s implicit title, i.e. it is used if the link has no explicit title. - The (optional) `classes` key is a list of classes to add to the link. The templates for `url` and `title` can use variables (enclosed by `{{ }}`), which are substituted for the corresponding parts of the link `:///;?#` (or the full link using `uri`). For example: - `scheme`: the URL scheme, e.g. `wiki`. - `path`: the path part of the URL, e.g. `Uniform_Resource_Identifier`. - `fragment`: the fragment part of the URL, e.g. `URI_references`. (syntax/inv_links)= ### Cross-project (intersphinx) links :::{versionadded} 0.19 ::: Each Sphinx HTML build creates a file named `objects.inv` that contains a mapping from referenceable objects to [URIs][uri] relative to the HTML set’s root. Each object is uniquely identified by a `domain`, `type`, and `name`. As well as the relative location, the object can also include implicit `text` for the reference (like the text for a heading). You can use the `myst-inv` command line tool (installed with `myst_parser`) to visualise and filter any remote URL or local file path to this inventory file (or its parent): ```yaml # $ myst-inv https://www.sphinx-doc.org/en/master -n index name: Sphinx version: 6.2.0 base_url: https://www.sphinx-doc.org/en/master objects: rst: role: index: loc: usage/restructuredtext/directives.html#role-index text: null std: doc: index: loc: index.html text: Welcome ``` To load external inventories into your Sphinx project, you must load the [`sphinx.ext.intersphinx` extension](inv:sphinx#usage/*/intersphinx), and set the `intersphinx_mapping` configuration option. ```python extensions = ["myst_parser", "sphinx.ext.intersphinx"] intersphinx_mapping = { "sphinx": ("https://www.sphinx-doc.org/en/master", None), } ``` :::{admonition} Docutils configuration :class: note dropdown Use the `docutils.conf` configuration file, for more details see [](myst-docutils). ```ini [general] myst-inventories: sphinx: ["https://www.sphinx-doc.org/en/master", null] ``` ::: you can then reference inventory objects by prefixing the `inv` schema to the destination [URI]: `inv:key:domain:type#name`. `key`, `domain` and `type` are optional, e.g. for `inv:#name`, all inventories, domains and types will be searched, with a [warning emitted](myst-warnings) if multiple matches are found. Additionally, `*` is a wildcard which matches zero or characters, e.g. `inv:*:std:doc#a*` will match all `std:doc` objects in all inventories, with a `name` beginning with `a`. Note, to match to a literal `*` use `\*`. Here are some examples: :::{list-table} :header-rows: 1 * - Type - Syntax - Rendered * - Autolink, full - ``{l=myst} - * - Link, full - `[Sphinx](inv:sphinx:std:doc#index)`{l=myst} - [Sphinx](inv:sphinx:std:doc#index) * - Autolink, no type - ``{l=myst} - * - Autolink, no domain - ``{l=myst} - * - Autolink, only name - ``{l=myst} - ::: ## Reference roles Sphinx offers numerous [roles for referencing](#usage/restructuredtext/roles) specific objects. These can also within MyST documents, although it is recommended to use the Markdown syntax where possible, which is more portable and native to MyST. :::{myst-example} - {ref}`syntax/referencing`, {ref}`Explicit text ` - {term}`my other term` - {doc}`../intro`, {doc}`Explicit text <../intro>` - {download}`example.txt`, {download}`Explicit text ` - {py:class}`mypackage.MyClass`, {py:class}`Explicit text ` - {external:class}`sphinx.application.Sphinx`, {external:class}`Explicit text ` - {external+sphinx:ref}`code-examples`, {external+sphinx:ref}`Explicit text ` --- - , [][syntax], [Explicit text][syntax] - [](<#my other term>) - , [Explicit text](../intro.md) - , [Explicit text](example.txt) - , [Explicit text](#mypackage.MyClass) - , [Explicit text](#sphinx.application.Sphinx) - , [Explicit text](inv:sphinx#code-examples) [syntax]: #syntax/referencing ::: ## Handling invalid references When building your documentation, it is recommended to run in [nitpicky mode](inv:sphinx:std:confval#nitpicky), which will emit warnings for any invalid references. you may encounter warnings such as: ``` intro.md:1: WARNING: 'myst' cross-reference target not found: 'reference' [myst.xref_missing] intro.md:2: WARNING: Multiple matches found for 'duplicate': inter:py:module:duplicate, inter:std:label:duplicate [myst.iref_ambiguous] ``` To fully suppress a specific warning type, you can use the `suppress_warnings` configuration option, in Sphinx’s `conf.py` file: ```python suppress_warnings = ["myst.xref_missing", "myst.iref_ambiguous"] ``` or in `docutils.conf` or [command-line tool](../docutils.md): ```ini [general] myst-suppress-warnings = myst.xref_missing, myst.iref_ambiguous ``` In Sphinx specific reference warnings can also be suppressed, using the and configuration options. ```python nitpick_ignore = [("myst", "reference")] ``` To handle ambiguous references, for intersphinx references see the [](syntax/inv_links) section, or the domains searched for all Markdown references can be restricted globally or per-document using the [`myst_ref_domains` configuration](../configuration.md). ```python myst_ref_domains = ["std", "py"] ``` MyST-Parser-4.0.0/docs/syntax/example.txt000066400000000000000000000000211465415536200202570ustar00rootroot00000000000000Hallo there you! MyST-Parser-4.0.0/docs/syntax/examples/000077500000000000000000000000001465415536200177105ustar00rootroot00000000000000MyST-Parser-4.0.0/docs/syntax/examples/content_child1.md000066400000000000000000000000651465415536200231310ustar00rootroot00000000000000:orphan: # Content child 1 ## Sub heading # Other MyST-Parser-4.0.0/docs/syntax/examples/content_child2.md000066400000000000000000000000541465415536200231300ustar00rootroot00000000000000:orphan: # Content child 2 ## Sub heading MyST-Parser-4.0.0/docs/syntax/examples/example.py000066400000000000000000000003421465415536200217140ustar00rootroot00000000000000"""An example Python file.""" # start example class MyClass: """An example class.""" def __init__(self, x: int, y: int): """An example method.""" self.x = x self.y = y # end example a = 1 MyST-Parser-4.0.0/docs/syntax/examples/example_relative_include.txt000066400000000000000000000001051465415536200254760ustar00rootroot00000000000000# My heading [](../typography.md) ![alt](../img/fun-fish.png){w=50} MyST-Parser-4.0.0/docs/syntax/glossary.md000066400000000000000000000020141465415536200202540ustar00rootroot00000000000000--- orphan: true --- # Glossary (units/length)= ## Length Units The following length units are supported by the reStructuredText parser: * em (em unit, the element's font size) * ex (ex unit, x-height of the element’s font) * mm (millimeters; 1Β mm = 1/1000Β m) * cm (centimeters; 1Β cm = 10Β mm) * in (inches; 1Β in = 2.54Β cm = 96Β px) * px (pixels, 1Β px = 1/96Β in) * pt (points; 1Β pt = 1/72Β in) * pc (picas; 1Β pc = 1/6Β in = 12Β pt) This set corresponds to the length units in [CSS2] (a subset of length units in [CSS3]). The following are all valid length values: "1.5em", "20 mm", ".5in". Length values without unit are completed with a writer-dependent default (e.g. "px" with HTML, "pt" with `latex2e`). [CSS2]: http://www.w3.org/TR/CSS2/syndata.html#length-units [CSS3]: http://www.w3.org/TR/css-values-3/#absolute-lengths (units/percentage)= ## Percentage Units Percentage values have a percent sign ("%") as unit. Percentage values are relative to other values, depending on the context in which they occur. MyST-Parser-4.0.0/docs/syntax/images_and_figures.md000066400000000000000000000105141465415536200222300ustar00rootroot00000000000000# Images and figures MyST Markdown can be used to include images and figures in your documents as well as referencing those images easily throughout your project. ## Inline images The standard Markdown syntax for images is: :::{myst-example} ![fishy](img/fun-fish.png) ::: This will create an **inline** image, which is displayed in the flow of the text. The [attrs_inline](syntax/attributes/inline) extension can be used to add attributes to an inline image: :::{myst-example} ![fishy](img/fun-fish.png){.bg-warning w=100px align=center} ::: The [html_image](syntax/images/html) extension can also be used, to allow MyST to parse HTML image tags: :::{myst-example} :highlight: html fishy ::: ## Block level images To create a **block** image, use the `image` directive: :::{myst-example} ```{image} img/fun-fish.png :alt: fishy :class: bg-primary :width: 200px :align: center ``` ::: The following options are recognized: :::{admonition} Image options :class: hint ``alt`` : text : Alternate text: a short description of the image, displayed by applications that cannot display images, or spoken by applications for visually impaired users. ``height`` : [length](units/length) : The desired height of the image. Used to reserve space or scale the image vertically. When the "scale" option is also specified, they are combined. For example, a height of 200px and a scale of 50 is equivalent to a height of 100px with no scale. ``width`` : [length](units/length) or [percentage](units/percentage) of the current line width : The width of the image. Used to reserve space or scale the image horizontally. As with "height" above, when the "scale" option is also specified, they are combined. ``scale`` : integer percentage (the "%" symbol is optional) : The uniform scaling factor of the image. The default is "100Β %", i.e. no scaling. ``align`` : "top", "middle", "bottom", "left", "center", or "right" : The values "top", "middle", and "bottom" control an image's vertical alignment : The values "left", "center", and "right" control an image's horizontal alignment, allowing the image to float and have the text flow around it. ``target`` : text (URI or reference name) : Makes the image into a hyperlink reference ("clickable"). ``class`` : A space-separated list of CSS classes to add to the image. ``name`` : A reference target for the admonition (see [cross-referencing](#syntax/referencing)). ::: ## Figures (images with captions) To create a **figure**, use the `figure` directive: :::{myst-example} ```{figure} img/fun-fish.png :scale: 50 % :alt: map to buried treasure This is the caption of the figure (a simple paragraph). The legend consists of all elements after the caption. In this case, the legend consists of this paragraph and the following table: | Symbol | Meaning | | ------ | ------- | | :fish: | fishy | ``` ::: The "figure" directive supports all of the options of the "image" directive, as well as the following: :::{admonition} Figure options :class: hint figwidth : "image", [length](units/length) or [percentage](units/percentage) of current line width : The width of the figure. If the value is "image", the width of the image is used. Otherwise, the value is interpreted as a length or percentage of the current line width. figclass : text : A space-separated list of CSS classes to add to the figure (`class` are added to the image). ::: :::::{seealso} See the section for information on how to create figures that use native Markdown images. ::::{myst-example} :::{figure-md} ![fishy](img/fun-fish.png){width=200px} This is a caption in __*Markdown*__ ::: :::: ::::: ## Figures with multiple images See the [sphinx-subfigure](https://sphinx-subfigure.readthedocs.io) extension for a way to create figures with multiple images. % TODO this can uncommented once https://github.com/mgaitan/sphinxcontrib-mermaid/issues/109 is fixed % ## Diagrams % It is possible to use [mermaid diagrams](https://mermaid-js.github.io/mermaid) using the `sphinxcontrib.mermaid` extension. % :::{myst-example} % ```{mermaid} % flowchart LR % A[Jupyter Notebook] --> C % B[MyST Markdown] --> C % C(mystjs) --> D{AST} % D <--> E[LaTeX] % E --> F[PDF] % D --> G[Word] % D --> H[React] % D --> I[HTML] % D <--> J[JATS] % ``` % ::: MyST-Parser-4.0.0/docs/syntax/img/000077500000000000000000000000001465415536200166465ustar00rootroot00000000000000MyST-Parser-4.0.0/docs/syntax/img/fun-fish.png000066400000000000000000002636661465415536200211160ustar00rootroot00000000000000‰PNG  IHDRτ^Vέ” IDATxœμwœΥΩΗΏgξ½ΫΛ.mι‚;ΨΑWΕ² Ζ$ΖΔυ%F»°`/1±½±kLΤXˆ`AΑJ+HpΩ₯μ.»lΉ{ΛΜyή?ζΞάΉe)² ‹ξΟrο9ε)ηyΞsΜ9ΊΠ9 «*ό²h€XΛ+$όζPh|(_:ͺ>££ ώ!PVπΡ&Ίζ­ζΜ–*1u‡ΥΧΉ˜οηL*=%_tΤhz²DΔ΄:¬ΎNΕ<ؚΦ+ŸΦW[bZδœ:ΓΧQuu:ζ}ΞUbjΔ΄`λΝ}οΈvίρ]8,‹—6w˜£sΠι4ΠcN”άώLώoε°MΛv…Φ2xΓ·­²μΠeς©ΣΥ~§ΣόΖ'–/ν«ωττΠ ™τPϋ=πꚁό²²Γ$ΰ拓΄Φ%_…BŽι±š ύΟxͺƒκλTš―»₯&·Š9u=ys}_tμŸθŽ1}Υ!₯ώ@TF"”± ζύ—ςYrh€Σ€Vkή8°έiν4Μ‹ˆ1«ΉΩͺ1Mφ,©€Εjuš=­΄2ŽqνNk§±ωΟZ^λΩ­’^ΐτšήΤZΩ/n`Ψ₯ίٍίΎφ΅N£ωω--RkYτ+XM˜0AZyΆ²?5Ϊ’Ζ²¨΅,Ύ:΄]ιν4Μ/b‘¬l,£Ζ4ιqΡ:ς^¨KhφA‚œΗyνJo»Ά£©/*ς}fšζVεΣΪ» (XM―Ώ5σεƒ%ΌΆfž―ά“Hwεzύhk΄=Ιν́;Ώ>z•<σ ‘Ε‹#Ωm¦_ FƒZϋ‹ςΎG£m}«Vž¬ά…ZΣ€Φ²ΨhY(ΰ›]wm7š;¬Ω‡B!ϊτι3δ²Λ6,υ^Ÿ6Πœ9αμΜΜLχΪ7|#uMύ©΅LjL“ JJΠZ£”Mžˆ`γoό‰?aY–{ΐ0ŒΔΛ63Ÿ™ιŸrν΅ζΙ?4Η£ο:ΌΪπίΈ€΅3Χrδ‘GΪΔy˜wPWWGχξέΚPJQUUEίΎ}wœ ‡Γ\y%RQaMš„œr 2ϊpδΣηλ3DΟEd."σμΏχE>εέΖFQJ‰ˆˆΦZDDΞ:λ,QJ‰ΦΪ½vΛ-·ˆΦZήxγ ιΧ―Ÿ{]D€¬¬l«BAeš&~ΆwχYYYς©ΠιΝ³AHΣ€²Tμ«Ψiή nzάΗΥoΧsL^žD)WλoΏύ6J)Fˆ$άxσΝ79ώψγέί–e©-εΗΘΚΚΎ©’9δΥΊ΅ χοί?«01η"­s‰σϋρ’ΣΚεί–‡‚{ΑΕγ,ξ<ΆΐeΜiζΣ¦M#‰D\‘؟P3ŠŠŠHξYό~Σ–o̜9}"ΐ 'H–Σ\srr~΅©L"Β‹χ"+_ώΎ΅~&e73ωΥ$ΉΡΕpΘ1“’ςΗοη?3δ'ΪφuΧ]—P_β'”dAύτΖτ<Ÿ/>Η©”ΚΩRζ•ΦšI“Œ6mε†Μδf$znR!e“lWwU/bkH(›ΔδGŸβχεΛν …εw(ͺzWιmήίJ)ώ~ƒβςŸΗΚVvKš6Ζ\ ΙΚΚ:*‰Μj‹Ÿώg–}ύύ?«φ0bέDz4ΑΝ7ϋ₯’9ο<¬nωˆΜ³™² Š1ˆΰ6rOΣ@υΌ 0ΨM―ς`ς›žΊ »{LΆiοoησςShŽ3ν@Ο‹7³νేoΛLbΞM(Ύ_».ΙαΩM ΰ‡>%Ξ5π ΘBε8"’πχμ]ŠΞΖν1ά::”]†aΛΊ‡]1¨Ηwoμ)Žv£΄o6έ{f’_ Ώ σ™Έ1G‰ύT¬ν-1Ι:Œγ4wP*YΣ*8χ$q―Mš‚aŒgΖ 0Zαεϋ‘ΘJΰ›OΖ³ρ#˜:#^—( Τg>B ²CΑ}W+.'όζ(OύΙ‚φ\Pή{π^ϋζΛΊ°Aχ>Y\²XQ'@q―, Ÿ"k}˜uί·zΖσΨ@£§$ΐ²βΉ•Ζ€nζφPMυa”φωΠ5£ΆσάηΪψxΊεžύμτw= >+^Y€žkΣ‘Η§’Ψ—¬lΝβŸμ †Β0`―γSF)~ρdεω1 ΘΜραχ†Βˆωžx³oŒύ5%Vk‘qν8D8Mψ5GσTœΐAΑ?^…KO·Ύσόβ©Oyκ@ c8όnΩ᜽ό΄1œIλFΠ{p.}η{ύω‡ͺzΞεŸΓ"<‘W‰Ά ¦*HΛΖ(‘°F±™P’§§βŸgόώυg<’wΚπώώπ½‘vd˜€{Y±’ύ}xη₯‹P}Ζπόν.Ο)υ;_υ<ϋ‹1βžΖn!n4<^„Φ–qυ''DΎέ’°ζ›Ήυ„[-š7F)ξ‘©ύ>h§‹mr°Εβ4vίrFBΛμ8β0νΐ%RxσΞ₯Lš >ƒWώo†€zNτD=.„C§_»νζ €ΌZχH[9­nτ «¦ΖR02Ξ8€aψ4ΰΈwρωώ―¬ΊhݚVΒ­_<ψ­Oœy¦²†•DΟ‰ ΐp ‚ργQέΊuΛ¨{·>Œ'Ζ‰Υ½&\+›dST=>Χ+>φu©“^ϊςΌ- Ή% ψLdΌ-xŞ2ο―_+₯”ΝΪ /³RRe،+¨ργν‚λλλ#Ζώ(cΪ‘Ρ5Q/pI‰έœόθS ό€ΜΓ€ςδυTξ½€<xδΒΐ–00žo”?wί}Χ―“9LO˜Πf‘>c*밌+ΉΨC€ση*πς?+ψύ˜ε^YΔκ¦ΎXžΕςΓc7,ά„Γa²²²ΞPJ ƒΛΗ#‘O‘ΠHλ'ΘΪYΘEώurΔˆaΨΐ­u‡>NϋAήZL˜€€ ΣΣ’’bϋΠΜόΔ‰ˆΦ0gŽ2g̐‘‘Hde pM μfύgΞύA€#iΩαΘΞΞv'L ΓΈGӳݐ““3怓TΗ.΅ψ1@D:ΥΊ‡^s·Dήί_šοf‰Υ1n SIVeτΗͺό»!ΡΨ²%Fύ-έώΡuu*ΖE’HυSflf֏oΉ°#κκTŒ%g*1-Δ4i~Άg‡.2ξtΠZΣ:e 4=YξΡe§†ˆψ«£QYXΈΕOX~:USXνϊ…οG7 ΝΫΡ΄lW¬‹FeγσeaήBΡΦOδ- ρƒποc’4φƒ9Ύ9f睊ρ%λƒŸ™gאΉΘdζ¬ήΌX=€ΓκΪnCΒ-AM4*3š›Ω³[₯»ͺjcζΖO Ÿ² ½λκ4Έ©K„™5½ωβžnh4ώ°~GΤΧiVSn¬²ϊΣ&φ/&Μ‹kz3χW»QcY0 ύλλ4M}νŸΦΚΌŠljM“½»―t›z MFΣΤ³τY'΅g}¦©Χί[ΟΰΒ*,₯˜ΎΎSͺ#hΑΠΖ‰ν]_§iꡍύ(Νϋžƒ‹« dξΝΉό³r/{ΙΈeA;;ψNΡΤΏV_·Zef-}«„Σb’e)kf›2›ͺ/_\Φ^uΆ[S·,‹oDŽ:κ¨­/σ䜬ΐ'Qφ(ͺΖBxsέ@^ލΎάK 6ϊ΄­Π·,‹›oφ‰ψύpΗωeMMMΥ›Κ³°₯Ej΄¦oώjB„δ£[ ωτ7ξzYS€σ―• …Bdff&L)ƒύpς‘‡zοΆf͚%Ξ΅}χΪ—}ύ/©lμK­eΡοδ5L=τIξΈγΐξί?ϋμ3^>πeJ)ύψΞ>wRUUε–Y^^NϞ=}O=υΤVφΫΜψ 7 Ϋ²Ψ²χ>/1κ{"£ŠGSSWε.r–9ί Γΐ4M ΓHYVζσω΄ˆlρ Βνͺρμμ¬[Ί*δς‹D`Ζ;0ϊΈςθ{&φ³΄Hο€U4ώ3Φsΐ«SVDΏςΚ+œrΚ)n_}υΓ† #77—††€+¨{ο½W]~ωενΙ¦“ΌΤ̎/ϊ՞ΐ sγχC!8YΔ7$,τ‰H¦M›&ΏψΕ/ά{W]u•{šš7O―^½Άx4§**lΊ?ϊθ˜ΐΫoΟΨΪG±’ηۏ~έ‘NΑ±ULͺηU°ξΞ6Λ*αε™π—Ώ[ξ‚@­5>ŸiΣ¦ΉiΛΛΛνr•‚ω 5¦NŠRŠςςr―9lQ+VΙON- nΊi³&Έ<΄ΟD¨ž+‘ΔeA¨ͺέΕONΛΰμ±w%UΨ‚Μƒ—…*₯\Ζ¦{2?NސŸΑ²JνΝ·EŒ§τΉ>ŸύΉ’)+3VyουνΫ=?‰ieWψό _βͺw₯ ½ΔΛ»Όμœ n°σ ίAπί™pζ™gΖAkMyyy ΣZλψ‚`Ω«ΐ|ŸΟG8ή$³{ώ~χέw?wH€‘²zΩƒίNχχ¬Ž> ςΥΥβν ”e"ΐ˜Σ―I†‡Xο*W½'2ρBπϋμτΓzό+Αδ?>Ÿ/Ύπ f^Jž+dee΅ΙΛ>ο*ώ Yͺ©μΧ}.7RΊ’FΟχPόkΛ{ΑωήΕ=ŽV₯Χ• ΒΎ=ΎPΠγΉ%ΆL8±Ϊ v^m—uέoh“p§ΫzςΙ'‘yρςέ’b«­d^βRP—φ·~]Z–CiίlςΊΘΛΞύ›ρα‡I&Q€½&Ξ@#TTΰΪ¬Δθ¬U1Nν,™)›δ¦CjΝw΅€œ(β°nCΌάΠ‡‘”υ―Ά†apφ°sάΕ‡Ξ§³ΦYNb~’{Ω9μΊaΘΜέ³€O₯}²),ΙpgutΌξ‘Ώ‡>ƒώύΊ±ςεϊ˜ν]—λ½>βŸ{€R”τΙΒ0ΐ0}‡ζαχT.mbΥβ&Τ‡ΞΞyϋν‘- ΉmΗ m©ƒ;/‰œΌ&-¦-Η© ρΕΏ›Β„ν7&]zΫO=6i œG ήEDΙίOύ`‚–e(”‚W #­QΞͺκf―wυ) Š3ΘΘ4Xυm«5arΘαA’ΨΝΫωsΦlΕ*ψό[/5$PηΠ欁XςΥ~›e\Έq0 §]KΒj(7Mμš#lAvO`Œ€³—ŽݏHν ϊgp.}εgp—lμΞ£½),Ιδ™!-vΟ`c]˜ λΓ„‚шΆλIθΛ½n<Ϊν‘ ϋ³Δe]ή5―nπRz)J˜τΘ„f#ΈώΘ1biϋL"Z5ž)ΣαιiπίΏ₯6ηAΔκι?*ΧyΗž(ΰ­ Γ@DψΣ‚ƒGωΜ’χ|ωA–)l¬‹PΏ.œ4γ,τuœrfXοƒwΏ†£φ"‘Y{Χ¨@ –2xν8ιWPύ5<όχ‰ ͺzΌλδˆθ3‘Sΐ-OښΤσŸo 1_tςhdα+HλΧHhπ²βδƒη;„tˏ―oνΡ£ΗAνMΫ(²ΝΓ0ΤUγΗΛ[’φΞ;sƒ·v4MЁŒτΈβŠΖuJΑ}χεzγ(ϊί3Ÿm&ηΒ ξu&J”gρωέJά­·θTW­€ ·FW/ίgΟ~νF`;’S+= Γ8Ή’BOΡibdŸžžΠš5Ε»UW―ωή{,Π氈Ej@‹G©eΏ¨!kF«kΑcK-΅)oί3ψI|­kZ)Ν£—)Γo ΅&''ηoαpψrο›ΖJ)²²²^niiωεφ\,ΈC”>x°!Η#δζŠΞΚΒΘΚJzΓσ„ΫΊΠ`ζL" ΅aΓ†γN–χXqId}ΘέyΤ*S,ωΊA­Ήη¬³XωηTVV&cM +Qωo½υcΚΗp;·s₯yeΒ±*’•/"μ½χή,Z΄hΦϊΐmη΄mt*K4h`ί=V­*/oM>χ€ό~hn†εΛaΙ¨¬„_υG)/gθ~ϋSάk‚0ιdOΞζόσΟχ”‘ώ ‘δλήΰχϋill$777!]ςQ4ήΌ«W―fπΰΑ³LΣ<ͺ]…ΰΤΧ…ΆLΣ$//―W$ωVk]α‡‡o‚ί‹ϋ:.ΰΎΈ•ΐHς›_Ξ5ο-­axηxφ Έρβ:ZFgԚ_ Lύϊυm*Έ-Wμ=H)ω¨Λ²Z|QQυυυ›ͺ§έu€JKωό΄ΣΨη±Η²χnmmύͺ½+Ψ’Ρ(yyy ‡ΓgŒ S#ŒΤΧ—ήτ\ƒψ;›Ιοz©ΔμnΩ`ο4PU3ηΑΌoμοwΟ\ΞGΟ~Δgœ+7n™ήχΒ»wοΞΣO?ΒOΒφ18Ϋ(xαl™ΰ”;f̘—oY~Ώ—ΐΛ›βVBΓ+*Hχ*<˜³vmλΘφ8€ΞAϞ=ϋ―[·nΥM€‹NτXlρYΌσA5£χ°κQ’Fι1ŠSš~ϋ4°ΰͺρδ8;˜¨Δ‡cYSί†,š Ί.Ί>ω*qϋˆ[±cεŽ8χǎ›πΉ·χmLμ:π$¨\§˜:uͺ«t'­§>χ€‘φ‚ …Bά~{Φ-… Ρ{ο}}ΰζ›oΩβ9fΓ0κχέU-x6ηu.τ™„ (R5>Αr½ΙΌ΄@μ~Ÿ‰;4,Oavό=ΏxΛ @ٍ<χΔ$Ξ8ή~Yαςϋΐ Γ=ΧΨG?͚ –Fže₯Έp―Λ>ωδ“ΉπΒ Δ‘GI^^ϊΝYE„Œ€Aτγ4]‘‡cΌψβ‹Œ7ΞΝgΖ {š,?mΏ’»)`αΎξισΑwζNjhhœΰΈ±²²²βκκͺ:λΣXE*1"OpΓͺl’[τ’οΎg·¬GγŠή„Υγο=Ξ³ˆπΥ·ί2,Ή„4J@Κn±‰α•ΎΙ)}„ο@{οƒ_]cœz ¨ρ3“#μΆΠΦ}₯}ϋφ₯ςΥ*7–HζΗΫ9§PΓ!??Ÿ††•.Ψv?ohό­g¨ ~χΤͺ\§Ύ”·κ\XΨ ͺ5MοΛλI¨¨™kΥ^Mφ­Ξ½’sŒ¨ΨEΛW±GΦc‰oόz²&¬lRόŠ(ήxu<ε%zTΩD@ΉΧsη©‰°¦.…γ΅ΣξάΝ}Χ;₯Oχ"9Oχ=;;›ΰœ*YΎ^–&Θtx6F$Hl³τΫώ5½Κ J Γ>X+Ά΅X˜¦&0ψόΑEΚ¨«k£ΜΨ†7ξ~Δ%ξ|6±M|>.=.~PΔ[ĘHώC€Œ±"νmUv)άeUyϊ~η»§st&N~θΚφΌϋSdŽ%Ϊιƒ![(οΞƒ‘ϋΕ‹ϋ.φœEζΑΊχ ΧΝoJαήϋŽυάqΗ ͺhŠ+ΓC:Σ€‘y•‰lξtςθΗϋ„­ωΓe·}KJJϊdQΪ7‡²lJzgΣ­G&ΩΉ~̈栿μm«dΐVsύ7YjWΉ) H<,,z!ιΊ7=©n€˜΅Ύψςλœzπ')U—žύJ}œwv9ηž}0ΩU7ΪeϊBι9<φψ3œWΎ,ήU$Gπ}nB\o °fΏΌ ~}dψα»ΰ―ŠΧ·ηΨk@’G9ωΟ0υ=˜5k£FJqϋ‘PˆΌΌ< ₯‰|œδάEΖE‘–gΓ­5}Nν5°°ΰΕΌ’έ2b Ζήa¦Gίl2³}ddω0£š–Ζ(M’lάacm3*. 'WT0%EΪΝ€&΅e¦ι œ~4 )Mε1y+Žd&ΣvΨI‘Ϋ-oďΈάZh ™™P] λ+α…ΨζjxΌOώ67wl"Ιi{sb’‡“ι†ŠRΊ¨4ιB’8ώ΅aΆ‰y)#£δfg`Υ·PΎ —‚n1ο bۈ)ŠJ3ΘΞυSX’A°Ι€‘&LCm˜†š ΅aZ›-»ΎP(dά~{VͺHM ˜DY:Nbχήf<””,©3φΆή”ςΪθe χDn~lιζά·έrα²£βŠ2FΨ§Yž–€ψφ„Α½=}lty‡`^eώίkpύ_‘΄ΨΎΈΌΚώτe(v[Ζ.Ηυα…έ›P†«‘™³jzΊu{ΫδΔuύOφήΐ²™ΝΑηWάRXG‰ŽςΏΑή(₯ΘΜ6ˆ„4™9>¬¨Π²1Jγ† uΆ₯‡[­8;›ΰ“–Mα:ΖψΔ{μ~(έΛ+ΐ6‡nιΰ+—" nšB Γ@k!άjl2iΤ₯Gίμ-Pz²²ϋXίpΗΞχ|Έγψv*τ-τ\—8#BšΌ’ΛpN‘9枧ΣοM’<ώΈβΙΟ‘=IΨηΛ)Λe₯η_#₯`έ† τhύ;ΖψŸaαhi…•Σ ·3BNγ₯’-=₯Ž$φZLΘ?$~ΨΓα­{ΣΧΡλxhεφliiYŸ–ao="άπωq}†Ώΰ‹κΨ°.dοΡ„‚&­Ν& Θ/φrι»ϊj$;ΫSŠγμΣ ½'©{‡lΝ@l~"Ά™κ£ƒΚ8ω«$(>Eήk.ρ[”Mbς£s~ωΚx ˜\dξ%gΈ #d¬™Πΐϊ^@bΗΩΊΥ:Ϋy9ΏΕ3 πδΖ(·Y‡JemSuδΝ³ν.gτθсιΣ§ ƒQެΨGP°vU+ώ€"'ΟΟ%εWϊ~7ϊ<ν²4lυγΖQ΄Ω’φUσβα‡{φ[»vέκtχ|>ίΜ€5€yv<‚ί”»wλŽaΣX‘‹>Α3—κρiΫQΌpb#§ΨŽ_ή#šΪΏ»ε½Φ¦tν >ŠK_hs8μ’η‰ή&¦π„<*±QzΛTΓcΗ”oͺŽMΐ[‡1rssΛ ₯zscρφ‚[SO=i¬Xqφ&E·ήšqR$™Ϊ„ˆ>Ÿο5­υ‰ύzΑ²iH§|muœi>,S@•MBDψtζήΝS–'Ÿkε*Ρͺ½i&=@p.d«€:<Ÿ^w @ώHhi%x;ΤνWt–eqΣMΎρήt“eέ·ύΙJ„i𔕕°aΓ†7’Ρh `΄ά} 1 {h©R­N<_\αCβˆΓΉδν_“ϊZο°S4OΎ—έ ΑV;‘Οη{󨣎ϋα‡žΰχϋΪΨΨΈk¬!7›ZZZξσω|βEˆ9eeωο …Μ?ξ(bΆ……―\~yδ”φXVεΕΪ΅θ»phCΓΖοΪ·δƒvΟφEvvφ¨ki}―­q»D"θ7ίTΖΙ'Λ­±{θ!΅Έͺ*ΊG{!θlΨι”ξσ1Ψ°}Ξ›?ΑBe»Υ6Ӛ¦ΙΝ7ϋΣ6‰ϊzxυΥώ.]ΊlAFFF‡ΡΫ±Σ)} ΡwΒ*`κŸ Τ~ϋm¨ggιS»ΠŽΘΘΘΈ?++σλ‡>™ιBΌ5΄6;ο j[ωrŸ+΄6±>*+5Σ,sΦ>Vθυ!?ΰqOηB—Ϋ€^ϊ3‹όΓώͺ¬ˆ!‘ZDk|e?w_ kš\$υwg=±γ¨όaθRzPέN3‡|Ήωτψ]_€Φφ½ΛΠ‘zD F@½ƒIέjt)½-ψς1œCnΧZ :ξΩ[žΩσΡ‚θΟΫw)½ Hd5ΚΘE΄6$΄>ρ€/|’‘m]Κ³Π₯τΆ°qΪd B΄`~΄Ώ%αZνXzΛΤc2Πb[~Δ?gSΊΥθRzPCώ{©θJ h ΜπJΡ–}ϊε†/Β’5’…’«άΡ΄n-Ί”ή”αƒΊφ΄•«A,Z|ΎL\+Χ‚ςωw:ή₯τMΐQ½žHΓοq6-8Ž /ήΈSNcο”DooDήμ=F[9Σt(‚΄F°B Ξ―ο’ݏ"’·Ίώ ΎΨW–ξυrΧΔώOΝasԚHDV‡Γ²μΐe’͝O@WŸΎh­Φ;λgϊšνχΦ6Ύί›όyι½›ΟΩ…"RΤ8₯Qšg4ΛΊͺ¬ ‡εuu;ί4œ]–Ύ¬kŠŒρε(₯Θ]dRψb e~?3?«ΫiΧSuE ›€ΦΪXX†άχΒ4ΏΥLνΣ΅„›Β„C‘Πaϊπ²„y[±ΣΆΦν„‚<{ίΎ;Μ‡δ DƒQ,,Δ~£o§D—{ίŸk^„ˆί„CΜXUʌοϊΰ¬–ŸΩcζ¨M—Π9Ρ₯τ6 ΅&²$ς<Dn―§YkD)Μ<ΕΤ΅x₯zӟθގ¦σ‡ Kιm@)•γ—gXuζ= ^²A‹ ­uϋfbv=Zύρ fMψ Ω#@Γ!tƒF‹π?₯Υίσ{όυ±§mJqΞβοgμhZ·]Ρ{ˆ+>kΆr‡es[[1žmfΐΕ i7σεNΨ©δΨeιι‘QόeΤ―‘ζΧΩΌ_ΧρόάοΪΪΉ\|—Σ@‡t/£Πΐ?r %mB°ί”™±ΎŒΧk`:‘LρMΩΈ£iήμTni{aI}λšβGZzΥ\WΫ†E˜QΣΓ>ΚΓs|G Bζ7AφΉ£’?L?f§‘εNCθφ‚ΦΪXcšΦκh”όάUξυ(QΜ¬(SΎοG«₯iњVη­6΅‘Ϋν—μΧ°Iίbt)= ’₯ *ΩΈ8¦Y„έŠͺ!%ˆΣF„W^@Υ°LZMM³ΦΌ7xπN!ΟiΨ$TŸU}vtYλξˆ κza­2Ωgκ„~܊ς–'4„e¦¦+KBδ»Θ½‘!ϊ¬F°wImνg0³¦Œ―ξ+N‰ά½ž-{vΣϋλvt)= ΏΞF’Άjχ(ZC―ϋšνθ¨:-ikσΊ‘DKUκπ­JVmͺμΞ‚’Ϊ^> ΕΈ³Ό‰ξυ(Qζύ§U#3hI>gUkš|B$hbT‡xο†uz™vz·'6Ά,28(B¨Φbΰ jLL"DμΟ\“―ΪΕ>>ΫΊyŽε4>©;jΑ™ΟΪ±œl]Jχ`‹€‘ΉŸmΑ–}&ϊή%ΥD­ΤσTiΨPw“Ω—υbΑ/»³1[1`ρ !ZšΈν +b±$c‰¬n,£Υ±`ZΠVΌ‚Θ&Υυ6„s"η(Fηuͺ@Ξ²,Š‹‹wȞ1‹ϊ,ΪΥ ΜΚ VψڌMΏ h˜Ύ~oL€‘΅ ŸθϋΡ۝­@§΄τ~ύϊΉΰ‚ΥKηΟWϊw²Οlllϊχ9±hkπYK0š™»οd³λzΪVοn±ώ»Ν ‡ΧqΐΝ+‰εφωŽΕ_Β%RΆΠI•ξ W―^9gœ±Ά₯ Ά ρ·ί*^=ΊΊ ΄χζ~Ÿ·%*Bnή*Όb‰ΕTQήXΫ/υν4Gi;Ϋΐ~ΎΛ.*°OJήtj₯;X΅j•qυΥ¬έw_ΚJ₯Ÿ~Ϊwskkλ„m9K][Β—αV‰Δ”Ω}Ÿjό+μ'iΙύw$;Κ ίμJ³Οcω± ―UkWι½ζΤώξΉ‡ΈΝΜwv ₯;0M“‘#ύΡγO>uλO<ψΏ¦¦ζ‹·fΘo²Ώ£–;-ψhwwψΥ‚°WaU‚g1‹kΉ6ν}ϋv?Œ³‹.$°Ά ‹+ΉR\ύυY·ήzkˆδ$ŸέVXXΈGCCΓβvΠb§Rz( ##ƒAƒ|uηœ#Εm₯†x챬ίxγ„3―ΎϊΪ6W:,b‘½«w¬][–θ²ΓΒ3}Nβcυ1‘Pˆ@ r螣ψξέ»ΣPίΐίω;Q’\ΈφΡhτή>ψ€C=4ν1ΪUUUτλΧ₯Τ›"RΎΝBΪlw₯gff~tκ©ΡCŠ‹EgdΩΩ>_β6Ϋι6ψέ֝E †Ι“3ή=ϊ”ςηŸΑiΖ7|c)ΞY―ΛjzτΫϋœβb"‘~Ώ?νΡΪvΩ‰Κ7 ƒ[Έ…ΣΏ8AΓ₯α%υˆNΣ4‰y§ΧΙ΅τ’’’!ϋξ[·tδΘχjΨύχ³π½Υ­ϋω²W€Gρ{°‡{ζ*€WV[ΧϊφνΛρ½/γΑΩ—‘™™™ΆKH—Χ0 "‘ˆκΘMŠ;{‡ΓNΎμ²Πω™™ν_ΎΦΨ£j5¬X‹Ώ…βsκyη°ο!‡2hL6Re’PμΑφŠWR’ΞN瓏⬬¬€wοή »U'Ω™œ_)…išͺ£Άο4Jχ"‰0pΰΐ’β⡫ƍΣ9θς Γώ½v-,_«VΒΘ½αˆΓμ“φCrζxΌη°Hό4‡u`φΏΖώ ΛιΗΞΙߝJ«U€G9¦i’““ƒišτκΥ‹κκj7Mr―”" ‘™™‰ΦšύφۏoΏύ–ργΗsέuΧ%δρΦΣ离4vD‘νΣ4ΙΟΟΏ­΅΅υ*ΐ8xxηQΘ3bGoxNRr‘|‹I纈ΐΚ5πψψυ_ΣΪ8Π‡Ÿ\ZJ8l,›l•'œpo½υV ½UUUτιΣ'εϊϋοΏOii)χί?=”z.’χΘn/ΚΛΛ9ε”S|]tQ»/΅νTJίc=ϊ,^ΌΈRDŒΛΟ†Ώ^²ωyβύJό(-οy-βQΈχŒ–΅uπβtxo>ά6s ž)β–w―fΚ£ΊVšάž —Λ/ΏœcŽ9€—^z‰ΗάMλEΊ°W―^<σΜ3nΙ^%-ΛΚ݌Άͺ’yψaβκκΘΖ˜A:όσ3{μ±°ˆ°τ Ψ₯t‰½φžΔDbλMwv©Yii…‹α½πνJψ姏σσΊs]E{0xπ`V¬XΐΤ©SSΕqΗ‡Σ{ƒΆdΉN›6-!MyyyΪψ –―έ ΣΠ.ΊΘά}$CƏG²²2ώάΡŸsžŒΣσΰΨ}cJι3Ι=鉏׽ʣ4Χjr r²ΪΊυx”aΜ½ϋ θ–{ν£‚γsΚLŒΪeά{―½ΥŒ€%#YINΏώυ―Q†MΣΫχΩωϊ{ƎΛoΌAnnn‚gpς]tΡEθΨ޴퉴])0@ŒsΟ­¬œ0ΩcΥΊ­Φοσωfψ C¬O₯Ψϊ”ΖΎΔώ3zOL™˜QΣwzτ„’Ό<>Z”˜7αl΅ώw"*±A\yΏ}vzv. ώμ;΄mϊE„K/½°§»ŸόέQb]]]Ό‘Ζκξk[ώνΏ{Γ0XΊtiJ¦i¦ŒγΫΖκΥ›ξ2”‚ΣN“¬›nςΙ€IˆRκ)'²έfšk­ηΕϋXηhh`AΜ₯=ωΐψ=oΪ4ŸͺψWξχCNΈσή~^†Υ e7ΕM_ΰž§ΰτγ!s„}vzAn’‹΅ωW Ώ΅Φόόη?O°H­5cǎMΘ—Ÿβξ»οF,›.§«qψΘU saώk»ΉθΤχΠCΡ‡ ‹Ιͺ5L˜ Ώ½νΆLΉβ €¨¨`ψ¦€aŸο>`cXζί±lγΫ.ώˆ gξ¬DKNvσx¬Uψ‹pΤ«L35hsσΨaό;KŽΰΓ%pτˆψψ_)P>'Œ+4έM8f̘1”——S^^ΞΨ±cέtι,ώύχί‡n<νΞαOΑιGΪ–o•••ˆ6lΨRΥ€Ε€ίτ}©ο―{ί•μ-ό ΕίΑ†![UZ#ΐε—7Ξ½υΦLFRf^^yφλ―Ώξ=!Vκζh c³‰Ε¦™[—Μ!$χΎξ‘ΩήίΔϋι„όxB\o‚)Ϋ|μΥοpΔ™ποΫΰ©©πΠ΅v²OΎ‚Ο§@MM ₯₯₯iϋu›–ΔΟδF‘ά?{»Pgψ¨ΔΓ±‡1™‡ŸΤŸ}½Γ0j½Σΐ[ŠώΏ)λŸ“™½JbRΩύό]lZ¦ςϋμ‘…ρΕ^ίκRφκΨΚ8ϊhρtΠλъ €ΈΨ zpŸ0\ςΈvε\{Ξ[‘Ϊ|οΖuΧ«χ6–Ζ2ΨudΈ»R°ΰ»8―Ε±E•k`ο2; Kηβ!QΑ.]I3wή|£FΒtN`φvižΚαΙ)αƒGaXχ‡‘ιι%Ρ6Ž»f΄ΏΈ8UfŽŸ@Fμ)‚Γ.ΨΓ%ά0 γ₯6KhjγΊ“½1υVCƒy˜ώΜΤ\=Φ팟ί.%Μ’ρK^Α$ϋn[P±†β6ϊmP˜Έdνγ/Š‹SžF$0νaψπΓτλΪz– ΗΚηΜ™ƒ²β|;tΉmΗ‘1nόαψεqrzNNΞ°-ͺGΒlΤΥќ;rWJΡ΄rBBo£σΆ:ap)X:©ŠXβ₯+pλyΠΏw&‡rHΚΔ‰SVς΅Ω³g» w*HŠ']ϊΨT‰τ$ [ENΠh­9π/»Φ?mE«YίΜ'„μ\?Ήωr dηωΙΚρ‘™ε#i―TylΖC0²²²6Δ lοθ5γάz+μΪƒDE§qΛ^% 2:DΦNˆ7σXš;ώ½Ž…σšΒ~GŸIe}ΒIY Vυxς3άbGNΔ«ϋΡǞNεO%ώΉ’ΐš·αƒ‡>A)Ε Aƒ°,+­ς/Ύψb ΓΐZ9ΚVΈβ ؜Qˆ$њΠ0=@έ8πΐϋάσέΖ ίφ[ΊϋyCεθ›χ—‚‚μ’ΜεsόάW—GVŽœ|?ΉqΧΘ4πg( +;pί©ΔUT“#(! ϋΙIjGθ(ΠΫ'κ$AώΙ?D4ί―]Oy0ξ™=VpΝ`v˚ΗτηΕ³ (5­α»ο࣏ Ψg–Γž{›υσ»‚΅€σΗ,O`‘€Π~φξm(β±:πYΆΥ‹¬βΥΙΞ»šmό>8ύg»ςΔυKxΰR½βKΆκΨoΞ΅]ΔΚΠ†F«φ΅oΞ}”ξ₯ωψ|*€Ω(Y9~|EvžŸO!α …? πϋνB³23μz+*t»hN¦”DŽ<œ½?¦{{™NH·QŽ7_B Χ=Y©ͺ·"φ3̟SΖΫUžy#Ίτ뿏ήφ>»Αnύ“ž¨“%4‰ρ†GΉ’&ί3ίυΰ±ozΕΛT0ύX…D’|Ώ¦…?Υ–bψœΩB»¬’’L”a2 jΓ4ΤDbŸφχ^rμ±Ο)ΣΙq·ΒF₯pγڊM3Ά%!η^Β„ q8n5 nύίRn™Z“Jγΐδ8ΰ€Έkύη$0Fΐ ·CS0ΡΊ>_W:ΊQ‡$]Oξ]χ”>M·Σp’ώΌVYŠίX=ŠΌΒ] ”R™Ά-φΛΦdηωcΚVn—jΔτhYθ8οŽ.”RΆλλi$ήLM6™CΨeΠ>0<BΪ!m’λςΆ|Ο‡+!₯@ΊŸΞŠΕΡθ<Άn€‰ύh5 @Ε#PqAbέ’’ΡσΣ±$7ν|ο}ό—6ΪK³”‚Ό^YzΡdχΜζΕ½‚H(Β™+‹@A·b\Ηaε*ώΥΥ­ŒΙlαό–~dfۚžάm=ί6 —^ˆ@4lΡΪlbψ‘Ζ25–%8ρΊˆΨJ_Ύ\τώϋaΠ‚;ΊIΫ$Ϋ”"το%GBέΜΉ₯~Rίοzy―HŽό₯#ƒ7ͺ)š΅ώŸ7Zαμ+|J»³β›&jΒ(Ca™šPΠ"ΨdάΕηW|ρΠ"εΘΘΘψDR•.Δ§YΫRΈσ»VQjxLρΦ&—'Ι_<­Γυʞ’}λe8ώ©‚±—DΟ€Œ9W‘©aό‰mΔ•pYY\2v ǝ ΉΖ9Š'ξmHκ’’ωHŽΎέ:œψ{ΕLΰ {bȁžορ"{·ΛΙ8 pŸaOH”—]Π\ϋγŠ‡φΙσUedDB¦)hS‡,B-"PΨ=Ÿα³ϋτγŽ;φU˜–*ΙfΟχ|ΟwηA‹Cl _&N΄οΞJ₯Œ«Μ€:“’ΏΨmύoΎ\ΑΑ€©ZΓ}χΒ’ΉΧS’›α>XX·h<= γ–˜2ηΰΒΎψθ”Ξ?9ˆžƁ6έώƒα—ε`xF-ιΖΫ›―ƒ/i~ Χ< >˜x> γΩf|Ημkw‘Ύ@k­Άt±κ=|T ¨λŽYΏΊ΅€±ΊΛ²;3*δϊ £# ΆΒψΥW§„RJi&ή§{ξ}ψ’K|XW€;O―5”–ϊ#<}ΌwΨΰΘΖ+D―yLIŠΟD>Μ58αϋF?Œ'Γ†Έ w²yB Oμ>Ξ τŽέ³'0νq„}_pXŸ‚azθk#k³•Πλ%δ»ν"[αΚcǝLί„€-VΈ·ξ7½t—ύςφΟ- ZˆF4…%h­YψχoηAμΙ΅iš©ΉσΪ(ΥkέΙ·όπθdU]U%eNΏΰ;€¦# oφ#ρ1£J ΧR’OPw?ʊ?bW Ξ9ΛrgEπλΈΠ“γ ϋobίνΕ‘`8Ρb=4$Œ4’Fιšΐ7—·4uψb«x.ΉΙ_ζ›©έr<8ϊύ…o-˜ζ»αΉ«’†Ouuσ–=Z9ΒΉοΘΚΚ[Xb)o ˆΐ3Ο¨ΪeΛ¬‰SZgώgίζf¨α-αΣa`aά­§rI]½ΆΜšsΫ±"WρρΒζ}ώ%#zΔ+w»Oβˏ ν»‘ Έ‰Σ—ΙΧΪκ‘κpΨH“8ΉΌΧ>Ai­-_{½{pόcΫ|-Κ­a‹ΗΏI4=χœj?ήRί}'₯mάΤ.Ηεj¬nΐνΣγ+`HŽEψ=Αmfξr%ΒπIιZ½sωv^I°ήŸe¦Έbο"οƒ’€žju€z²tu΄ όμb…ˆ΄›Β7·–-\βbΚΉρFK-Y"έΆt ­υ›€Ϊ₯κHιθυ(9œ ©ν§ΓαVxύυΘ¦φκ™=σ7"ŽzY>//―oKKΛ*DŒή§"Α‡Ά%OΜ”ψΓγKέ7\ˆ― ΥσB647Σm㝩ώ8VWΊLy` ‡ƒχ‹ηOΘCjΩσWˆq››;΄₯₯eY;‰o«ΰ;­¬Dœϊ’θ§Ÿ’§NΥ>Γ0θΘέš››W Ώκ*φYΆ ύΤS–―£whάVD"£¨¨hH4½6žν΅ ₯ Γ{†FΒ!ΐΑ{BQ7?¨(`‚… ­Qh ΓΖhl‚Ε+α“/ΰγω°δϋψJα<žΌρ΄ΣN»οΉηžkμμ2j σςr―ϋΓώpϋwή΅s2Γ΅Χ^γ‡o€™4ΪV<π€oαΊu‘ύwV%'c»GŽν Σ49ϋlΏ ΩΊ³6 ˜1C™3gFΫ²egΕN­τQ£°Ž>:ύ%"φnR_~©τ[o —_Ύω―kkαα‡ύϋ›¦Ή°ύ©ν<Ψι”΅fθPΝYgι§―­©AO™’šύώ~—Ύψβž=ΰ€΅γг³yοκ«iσœsΓ€ΫoΟΈ³±1xuGmαΥΩ°S)=++kJVV`ΟΈgυκͺ`vvφ&ΣχοOΝΉηR’ξή#ψ—UUE‡nι»i?&όh9>κ(δΘ#γΏEΰΣOaψπ|7έtσN¬Ά~”J?χ\€μ„΄ΦVxθ‘όc›ήέ±Tu‘ΓpυΥΘΔ‰HvΆρDGμΧ…N­5C†k^}λχXψ©αGιή»°ύ ΪBφHI―Ÿ!f *ΈhCKύHΤl”hx–Xώ«³^΅d“ϋ“ΕŽ˜…ϊΞ5ž ¬ IDATΕG7Ι_ˆ,:DDΗφN^ϋLݎΚ.€h³!*ΓΐΘ*•±Δkδ"Bӣݍt[ΧπΧΜ_ν0F~Bθ2τ.lτΧχ§ώ%‹^Wε‘ ”‘U“μ‰ΜžΏ I€ΩΈZ Zhk$sμwW'bEΑηΛιadg<Ώρώ+²bzW[μ@ό4fš»ΠnPYCφ‘Μ!(«17 DΠuSκEGσΑ4ώLγ+1°,ΫΠUήHΓH|LΩτDqTΡ΄F,1ZžΩkΐΨΓՏ]^΄ [#χ+$Ѝ P>D Šœ<=oΏ«”ah όPBλ@ΡZgω:a ­5 ΅-Δ4έ²£Xϊ) ΛΠ»°uπ+UΣ{&Ύ\”ΏΤξ΅΅ dήaΞ4ΞΘ?ψxΒ΅ˆD"ρ7~΅Φ4O.xΓ_μμ…#ΪvE7F;ε‘΄?tzΆ Κπ#ω#³Uύ$c{1Ή‚«όuνΜw$΄α]΄ΪΒ025€Ž4|¦d£ΚΘΌH΄kΰ 5ΊΙxgXdcFΧγ΅.ό h³‰†h1-Δ΄ΐ΄Π±O1-tΛ†k1ςnΓΤnš„Ώ 9΅Ϋ΅Ρ“v4??vtzΆ ζGŽFΟHkĎΑGΣίΣΝΦΣΕΧ†·£yψ) ΛΠ»Π.ˆΞ(ϋ¨‚g↬ΣSΫ†ny >d7ΊνΪ3·Ÿνh²2θ2τ.΄Dk#ϊΕcτκΎ&ή>j!‘Φ/Θ<"7ŸGv4]θB~ D-Λ`k΄*‘κhDΎ_–κίWΙ’ξ‹dAΞ‚#v4?etMuv‘½PPwKν_{Tγ7”B ψŠ­χw§ϊΛ>dϊ³—ŒZ’΅£‰ό©’ke\Ά"’a3τ Œσ―²P«4ΝϊΡ9Š ₯θ[œΙΚώ,ŠDZt±φΎώe{£ΛΠ»°MϊWU†fvοε9yσMD ‘"…ήΛΟΰŒ Β`άZΉ~•Άτ€.c߾蚌λΒ6ADŠΎin_œιμ 9ŸFQ(D VƒExi˜Πβ‘uΒMQ¦ίSΐκnrσ]»υ½qGΣώSB—‘wαCD2ͺΦ…~+έŒΙ™±γS4˜ΑšBΣ›M„–…0ƒ&–Xh4φgΖ^ωΓΏήΌΉ:ΊΠ>θ2τ.ό ˆˆΠΏφζΪό±ΙQX"4kΝΚH„Υ¦I0lqȁk1ͺΝ#·°°”Ε‘#”θ α·Ί ½ ?Zλ‚u—¬ϋ χΨάaΎ–!Tβgy$ΜzΛ",BT„ˆΦDΑώn@—šΨη†υ¨Z“¨?Z}TλQe]Ζήρθ2τ.l5DΔ_χaσί7ζ”ΐ b α/Β4>ΫHSΘδӏ»ΥbΈΦDE\cwbχΜzσφΙ{Όv³τ£G—‘wa« "ˆH―οΜȚBε#cAsN+ŸήHψ«0bΩ;rj4Ρ"Νμw{ΠάΗ ŠN0φ`Ɯΐ>ίκ²?ŽP½Cϋ‘£ΛΠ»°U‘gοΜγ€(ξώξžcοX–EAΠ ‚xkΌ5ΔσρŽ>1ρgβHŒ1yŒζρxbŒIŒΖϋŠβ ˆ€ Š —Θ}»,{ΝΞτQυϋ£§gzfgv—sϊΓk™ξκκϊVUχ§ΎίͺϊVutICΛ[e…‘ΡΠΰ8¬°,Š.¬‘δ₯™όηυΙ3Ž…ƒc8l>0Δ7g³μδΆτ1ψ{u/aKUw’θ0€”šΉΔΨόzσB.+‘9ͺXiYl²νTŸάnQŒάk=ΜCto0Ξw.‘˜Β\qjόΤ½΄H@φ VtJ)’΄φw΅Ÿ…φ ‘ΏƒΣΎ₯ε“8€¦Φœ(L]WΝϋ›zπN]o6žM}¬Z‘ΘŒs΄ώ/Ύtv§p7G ΡtRJ£fBΝΕ‘Ύ‘GE‘ ιω&šήnB5Ή€΅ϊ >W…mΛΦo©Α7…©}^ǐ‰‰΄^χŽzί+2όŸΓƒn;Ρ΄‹δ\Υ*ΛϊΆ@7o¦εΡzœzΗυ‚C₯~%§H2mV±* “€χΊg7 q₯Μ7ϋτ‹θF`lξHDΠ.”RαeίΆό»¨8‘ΑqXoΫΔ€€πoΝtE}:žGtœ¬~ΉCύP™ͺ’v`ΫVXψ¦ά€ΜhΤΊψ?ί9b :­ΐ»!’hž6ίτ«Mί6L*c£cΣμ͍'§Ι,N―₯hj"ΡΫŒs‡ΪΑ!VŽ,fω‘% ψ2^qσŒΪΩεί]=@›PREW³r±ΡΕθ›ΓΩd³fiOέ„KtΏ)ž<ξς\3―ή„£TN²·ΥψlXh ΏC=@›X2£ώρ“ δf‰Σθd\“έ5ζ/θŽ₯§Mπμ>·© όM‚Γ΄}­Υ!‚{ΧβαψŒKΜKŽθœ’ο^ˆ /€T|)[Aθ†ΝDr›ωߐΜ}­‚šΓΒXΚGx|ΔΟς{Χjmxp=ύώ]Kxm•’»Gϊx—–\Q{εΜΞͺƒέΡδŜ?₯H{2=h¦Πίl‘ΫΈ²_l¬pXώ³b>MSf Ό₯Θξσ7 €GδMσφήGθ"xU·AνΘ ιHŽ^βoU»#δI¦V£‘θΒ& fΩyGΫs™γJwX{LŸ\_Ε·C άF ί’—d# νUσ† κ VΉm3’Θ‰―JΎΊY4Š»ΜρlωK—ά„L†υœ΄…χ5ΰ΄ΣΟηΫή@]KEΛ±ΧΦ];₯skεϋ‹€θZAΪR[Zμ$»ΰ)¨"Εςυ½±}}n°=3Χk΄ΫL§£2όΏϊΧΏ8οΌσšnΉε–²»ξΊλ{;.°›ΏβƒmΫhšFaaα…UUΦΔ±cώϋξ Ά½ϋ7μώ&­‚9sυΛβG ΰXŽΝŒ—œX?Ÿσ™Γ¦NΚQG•W[Ά/·uά|Ϊ6;ΌͺͺŠššζΟ_HϞέ)**Β0ŒV„ίήq}}=εεε1 ¨C…ϋŽax·–eρΟ>ΑύΧu'·ά?j”5πΰƒ¦Ήs?ω„p뀄xjj`Σ&¨―wcMΠ§+τιUΥpΠθΧ*»C2¨LΎšJ‚ξ―#‘)k6‚<ξ[DaIJΆ“2ΛΪΏcTόΤυm1ˆ#F0kΦ, S;vT£η"_[χδ“±eΛ***8ςΘ#yε•W())Α0ŒT<ΏΌΆdu΄χί?Χ]wš¦‘RNݞ绫};ΰ8oΌ1™qγΖλΪ5|_ίΎ[FΧΦBm-Δb`Y`™ξΤΪή½αόΣαάγ w5I“ZπΏ‡Ι―‘ AΪ1Ν;W€ž˜ΐwžό*yH{χ§nJž',ΨΈ|Ÿ.„cŸ‹βEGBԝVΛπmWŠΊωΙ€ΌυΦ[όρnrm˜Η©β$γLœ8‘‰'Ά7‰°nέ:*++s0Βα0ΊSWWG4EΑΫoΏΝI'Τζ½γƍγ駟ήͺrX–E$AΧυ‡ZZZΩU3"Ϋ‹€θ€eYŒ7.όφΫo_‹Εώ”Ί»’BU%ότ4Έα? ΊRsBΒGΖ¬σ7“΅ογo ‰ύ„M«ΦχfΗΙ‹JψN^P &l¬ƒωΛ\’/Yλ5ώτρBœ5κgχΐJz½ ]ηΨ’"^yεN;ν΄6Νάl<τΠC\sΝ5[Sέ€Ϋˆz#τνΙHz(·o_ξΉηƏΏU²ϊχοΟ7ί|S†ΏΡ0M“H$B4ύE<`«„uD8,κu=ϊ󦦦θϊžνZhΫ6 θ½vνΪΗMΣ<\B w_c†ΨJ“=›ΔΚ§­³Ι¨ΤV€₯Ν3ΏElXπ5 (Χtoh‚ΥaΡ X²5γλ 1œρB TDrJXΎ|Ή+#ι›.£{ν‰'žΰΒ /l•υ^½zρ—Ώό)smyχŸ|ςΙνΚπŸwdZμΙ'Ÿ€¬¬,g9N9ε”vexηοΎϋ.Η}~άς¨RͺXψΑAπΔοa―iz2΅¨δjΕlR„diXίυί@UαWt-ρYΨΩ¦Ίžd`Ά•Π*rcαφΣmš[`ΣX· Φn„ ΅P³Ά4BS θ›ϋρχ™+©««£ΌΌΌ]7•Ε€–ΝŽ?yςδΌid7Γ‡§ͺͺͺM9~?xπ`V|³Ίπ»ΏΓ€u4€#F0i$lΫΞΫ?ζ˜cΘε@“oΰ.‰ ”šiΫφ:T)Q]έύμ+―όφ…φΈ‹Α³ΟŠ εγ7mͺωΐΆνœ•ς]„RŠκκκͺ7~¬”Ϊΰ¬cαŸχ@§E= γo―6sΡρ‹ΡΌi)$Ξυ›–ΣNΌΪΧ;Q½&!pΏ>ϊΥGw0tŸΜΖ&%ƒα^ώ~ΊBdΕ!έxI ¦ ±846»ίάΰώni„Η }!R¦tΑ5WFλΑ―^½z±~ύϊTψΣO?Mqqq»χyαΗw‘P(oάlΒ>υΤSœwήy¨9€ΜκΦhπt8οWO€λάx㍌5*•ζI'”a΄Χ=ΉόςΛyμ±ΗˆΕbzAAΑwZ«‹‚‚‚ž·ά²ΦΞγXά ¦L̚ύο“N:ι–gžyΞτF=;½zυ*_·nέB₯T΅‘ΓΛΒ)‡¦΅*δQv=&ΉsΖž~ώߌυI«ΈώΑ²Vi¨Θ λ%$=oΝx‘ži2η6³΅&χ§›«―¬Ω½»ΆΞc«qΪ‘Π£+¬žμϊάράύ˜ςΠ―~||ΊP€|ς9dχΫ½p8Bήxγ μδ‹–Ο™ΕCii)GqD»2ό²ζϟϐ!C°>]Ά]W(ˆλ0r<Μ_κ†?ρΔήΌyήFΕίΈάύός—Ώ”ρx\+=­©©iCK ΫΤΩ6Œ­Έα†–wΠA/%~σCέqκͺ«PUUΖά>}ϊμλl­Ώη6ΒΆmt]Ώχ9ͺΛΞZ[η|’ͺΥ§`Ξ‚κΖKυ[=φ(ί‹ _UŒ?ηTœžwRΧ➠•&‹_ωΒRZ³-^Ώω]v|«ςœ{Φ)ΌΉΰΈŒFB$΅±'/γ}χΙκ=t"τžΔΓ/¦§|ύyP†Kr€Ή4'ώά%ω­—ύ wŒωWή΄ΆmΛ%ϋ\JΙ AƒPJ1}ϊτŒΆμ_GqG‘{OΘ|έH!S¦LAΠiΏ„€¨σžυ ΘO`L― (ˆjhšΖΰΑƒScΉς+„`ξάΉš”ς;ο3+Ξ9uΠA;OˆR‰ψϊλΔ,ί0rδa|ψα‡r{}Š•R\Η ˜σ ιEΊOμ3mS„Ιξs+ŸΦ+<ΚOO^)-`J λο δΕσ₯»Υ2|ωOiΪ^“p˜Lυ¬”βΕ§ξ䜣Μώu:f:Ύ—`¨ͺλε©|9šΖϊy·»ΒUK“όΉ{άΌΎρ1<ώ άt12Θ ϋΡq B  σηΟg°Οg·-³6Χ9ΐƍyφΩgΩ{ο½34€”’}φΩ‡AƒεM§#2JJJ(5³ρRmΦ™ ΅ΧEC­ΓgΓβ0hΠ ,XΠΚ¬Ov+¦8Ž“ιYτ„0M“‘C£ΦψρrηΪάή{μ«`Mƒ%KoΌz³  λEΛ—―ΨΨ‘yΙύχί?ΌpαΒz ϊκƒpκΘ¬Ύ2­ΝγΆϊΩߞn?ٟ€kΖ ž}ξ%Ζ1wϋedυλQͺη„τK›"Ή›ξ”©3;`r«)΄VSg^ͺoDι…n9 ιΈ ŸLΉƒάϋφ=ΎY Οώ.ωh”k’οΧξΌ2Ώ€’8h<,^i`šξ'ΡrM―ε χε2Ώ½ψΩq²γuTΖτιΣ=z4[fA™ήΑΊς=?―κρž§HZAΒέ ²ςHwΰςψηŸ>O<ρ]t?ό°ώ³Ÿύl—υϏό―#Ίn¬ί°VΣ΄QΌ24Ηc¬~rνΨ\χ €²²Π+Χ]gΎΣsِό$r@)·―ψΜ3’iεJc|KK|²oΪo_`i$-³p½Ό|Κξ“ωUhκ!ϋ5£――Ρλ@kM^`sS•MΏOYφΫ,Γ―I¨²ΣE#άθ©6&ιl*σΎZȐς₯Ν2e₯΄wk’?')Y¦±ξvjcΠs4Ί?ό*9σuανΝsχΈ€χΜKφ*τ0dθPζΝ›·μf9?©σϋγ·…|χxσΪΌ ώλμΜG·ςΙΘΎ'«%ψΒζž†Γα³LΣ|Ήνw O.,έ»ŸzοEr…ςš—¬χ0nΕ7,NJB€§Λ“+ΉΚ^Κ3₯™Ή»iC—τ9d αςwž*ΎωfλυI“tuΗn―6f©œρI9¦€œH ώΦ\ˆ4Ρ”/nFφP0₯4οrfž²Ž·Y†/,•ο’‘iΒ O0sΪ΄ŒBxI­γ5rΰšνΚ%€Rn&]r(ΒJρτδγ~αF½ν2χήHΘ%ωi-ηυo5 š’~ΞgπΕ_°Ο>ϋ$ΣW)βu”΄ΉϊηώψΩγ‘QSSC$αΦ«ΰΊsΟ’έΊRξ±ΧyΘkP]€Lyχώ§ΫŸΏγj0Mσ₯H$r{«‚ξ@ΨŽΝ€ΨΫ|@ϊ‚"‚b‚bƒ’’Ε‘¨†ςi8…Υϋ_6Hέϊ·›RVΊpΤQ£¦ϋf1:΄ΰΆ‘Ž_#“5Ν@SώθJΑίώwά[fBΛ W‹Cϊ‘yψIŸggΩ{Έ©‘sοaVžΧ/φˆ"P©4ί}ύ-pΆS†J—K)Wc %3ˁ―Φu.ϊαšT₯ ΏLš]~βk(T²ΡI Aά)ηγ/ܐxςΓΔS>uΟ?9χ3xcj2_}Αν–εhš–=Ο˜ΛεΣξ‘8i³οΟΧΗΟ>?묳θΦ­ίΌ “.υΥ{Gκ ί«˜ύ³ž1d’`Β% ?…ΒΔD@υθΡc‡ΘI)yδ=Ώ8πΚύUuŸ"£ Ψ °Δ ¨4DQ‰Aa©AQ©Aa’πΡBέps)… ^žυ‚υά΄g4HύΕ_ύ:½\{+P”βVFcΦ_.βg7&Ι(ega$hάβΎ`eFΙr £%Η§e}8%·ΥΉΜhΝ!Ή0S€…δ¬#ΏΨ2’χx•Ÿž’αEπΜK₯i¬™s Ιsu2Κ―§δ ŸͺςΦ——nΖ‘S”WΞλάίͺΚVΩL•―ΕJŸ―ϊ7ΤΞpύΛKKK}ρr/\ΙEφ|ΛσyΓyα―Ώώ:š¦QΏξeδ'ΠΏ’ ‘Ίς‚U&α³£§ž­ŸΉΎ}^}Φ―_οD"‘σͺƒR2cΠ2gΦ0υ‡– ι»OE>’—–†(,qΓ J —θE.ΩCa·½ql… &όλζMŽt\’›¦Ι7߈mP(²‡ς<Β7ΰjmd³ωtΩ•‚;ο„žέ`Σ;™œΡΕw͟€J?hα3{SidΗ/žΟ5_έΥΨ–”4/OΈwD}οζ±Χ"©RJ֟†Q|X:-Ο€U0kξwψυ ϊ£n?H½s˜κή΅ς}+¬sμ;πΛιqήYΪΒ―–M’Έ Δ5Σ‹S&{R“D t"α¨N8βjuΝp3ΦάhΣdΦΏ•*c―^₯^vYΓh!p‰™tq7Tςύ‰δoF'' M€§ΣΪ0ŸZU‘Α„†ίέΏߎœΘ={d>γΊΠλŽ”m¦€G~˜«ΞXŸWlΆ )`ΠxψιyΙ’$_ ǁ–ΨΌV„5k`γ·P…nέΚ9|δ ztq`Χiu” +άΎ;ι΄:Tθ^wϊlQ―°°©Ύ’¦{‰&›ρ7ηΐΙWΐ/~ GœžZΣ4ψΧ]ιϊΙ.£¦ΑΩcΫϏR υ€―ωΓξ*9χ~ή½{3zτhHyy9ΝΝΝΤΦΦ2mΪ4–.]J]]]ͺ8p_xαΠ-Μ­|/ΆιΎύ*¨κVΘβiw2bZyτι#ά2xσθο}χάόpπ~d<γxΖ1Z7Ω hκ\‘φ­OΦcκš—Ύt―…ύϊRΫ"Γ Ουg„gε«=ιDο Π`iC”I3{±€ΟŸFΠΌ{¬νζΟvP “±³KсΒRƒpDK[4ΩΦϋδ IDATB2U4B)Σ<֐ ΜΈGlο/Iπf;#\)¨ξ[.†λL˜ΰ,Ψκi6‹΄φoUsΎp|Χς…γΎΠS¦ΐoƒQϋ₯㉬τrΆΩ²}²ς5δ9Ϋ!‘»νΚΠ‡ό‡β¬³rκ$TΑ΅cIuy„€Ϊ8t=*Kαα›άx—άι:„¦΅6σΟ*x2Rƒ‚ΎΌ€ͺ.λzF7Hew¦ X&―ιΒΣΛͺXί!”\ι”ξβψvΦσeδυ#lτΒh2–@6Ε‘±g}ݍ’R#U©­΅ΉH₯]RBTŠh‘ξšιQ)‰–$Ή›³‰žyŽ‚ύ ΣYSJi&KΣΆ±―nγΏϋ]Ϋσœη>L-qψθ―™ΑyΧύΡ‹Τ†˜ά= _@ΆfhWFΡ¨<žΓO»•SNΙ#t£’~>Ά5¦}c.„~=ΰχΧΊε“[Ά–Σϊρœu\—œάυ@Ž{r(Ɯν½b*ΞVΚπO·BλW@h€X΅ϋ €@Y6—­ͺ€Q ίθΊΘ”—AJ74c<##žΰ²ξ-ΧՍ€L ΩbςhmS…a-9Ψθήβ Π“Zέ'špTGiΔ›mW›G4Œλšm[³E’πiφ ς'My₯ η^…™u|Ι%¨Ύ}Ι ˆ“vrΙϋ€hΙζC2ަ»Zύ§gΐe§δΧΔήƒυ·ΜΩα^\ο Γτς%œMφ\i΅+£Χέ Mιy歜pB;εέπ4Ί|³^°wΕΚΝ°Χ `θπΤ]ny.ΈΝ]Άϊ7CEiλ2Eα”#²κ#»^Θ r½6ΉΜg²ΣNήΤγ$ψΆΆceœωΏΓ³΄¦ «αpί^ ΄HεHWγ6Ηy£!ΜsNE¦Ι qVΪ/™vλ{Όx’Υ=·”ΤΡ7κF¦j1ω0ζy½›&AΧ ›MΒw4]Σ݊vε’=ξ`Ζ}ύτ–$ιc–ιφΡ{τ/Jϋ·K)9f΄.ϋV)-chΨϋυŽ5ί1YρΌBδT•8χςβΐ‘GΒ=†βBψρΡ™IϊΕ¦ˆλ«|Έοye,FΙx™| z#ͺ*GZmΚPB™ΩoK¦Ώ|GŸ{ ΗΣΊ|» © 2«zοαΏiςΙμ7pζΜ$4ΖέάOL‚½Wώͺ*ΰOΏφsΛ‹ƒηωΖ/όυy½οe7Ύ©4³dlx+χσ•pό₯P[Ÿ£π.ψη¨ ­λ₯ΫBεΔPΆ†’ž 3K*)F†ζΡϸζO7KF.‹ΐόKϊDZQΤνΠ7'ΆdL’‰Χ «Sρ·XH©ˆ5Ω!Ν΅Fε€mKlSb&ά?ΛtlKbΫF.* Ράϋ&CYvοώδg?3‡η¨ΆφαMεk²ύΞ₯Ωs… Έγ^ΊΜύ'™•žμV ϋ²ΚjsΕWδάc­C2ŠΖ JΝŒΡ9αΗ·pδ‘mδ{;‘”λ2ΌjΌσt/†;…ΉκΜ€i―M%ΰΕ''’:œ•άΪνω{άίύΪ-ςψγαμci•ΒI£hΉκŽΚν―λΜ{&<ΟΏν^?ϋ8xα[6ε²δ²Κ—―άΫTŽ­‘tθ~Œ»ž!`Ϊ“0j@dψ»zžj ΊΊzπ† Ύj-uϋ‘”β†ΉGŽ+ΠKžB0ηύM jΦΕSΧ₯i+Χ„·Ά)SeξR!aZζμ{ΎŠθΊήΪ`š0ΥFIG4\B·΅¬§υs™π:­Ώ}αχ}/₯ώτ'wοτ_\χύœά-nŽ2_/<»?ίΚ’T€ϊœ9e*9&ugMC#λζύ7CχIˈ)ΈψχPVoΌύ«ΰ·Ώ„ΡC„(@υΈ‘ύH<2j‚ζε·QΞύRgδ?«!MΟ\„=o₯K’2žϊΧsόtΜ—­¦β„©ωxΌ2Ξ8"— 2»H9ςθ―Ώm+ΗΞ—1c)ρψχCπΓ‘°©Ίq―UTTt―««ΫΨZϊΞΓ sΌχ³ΙMΏΤ4w f]Κε?\ΣΚΒΩ*Πz7—imW9v’ŒΡWΐτδFBBˆoΎϊκ>ψΰwn‡WΗqX΄φ+ν‡wΧ_IδςΏ_α(‡ž{½y«Ίιέ;²π²ΛƒvHnlZ―jΛ―βŸxBl^·.rH,Φ²j[[NΫΆ‰F£ϋ:Žσ₯R*Ϊ½ν_vσv΄I>Ψ\s΄)ΣάžΤΘΩήrΩ/YχlŒ’ηΝ©>Ύ['ξϊ3₯ f½s‡ϋEφη'ΫJHY0 „κuk2_™2 … αλΫ(/Ψώ:ΛQWYŠω;%c³ ]ŽMӚjkkΛ***Ύsδή΄’‘e•Ό«TbΠ±PςάΣΨΟ?/šV¬(>€±±ρλδ Ξφ˜GΙν¦ΏΖ9`C­’°°π§---OZ4o> £hML/o<Ν–ύ%α‹ηχfΚvΉΜn0ςΚ¨8+©±„/\0σΣΟ9¬Χ‹ΆŽ—SδȏH§ιε#eQ” „o'†ΤRQΎ~;cΩNΙ€μ§·χι0|<3)wΪΫ+Γ_7ΉΨΆd΄E#άc]ΧΛΗi¨¨¨`wC.F=q"οwx佃Π4xυUμ/Ύ1MsFgυu€”TUUUΧΥΥ½γ8΁{υ„ώχΛ‘©;€”6ρ™ν*Ox6”Β χ\•β©§_dό˜/γ›ώt•―aρΛΘ—Oϋυtχ«OΕV.+l!Ψ΄ΰvz”οψκ,«q»μwπΧ\ϊM‚°w° _ν–CΑ;ŸΓ‰—»]8H$Ύ1ωέ­^Ώώύϋ_Ό"‚ΪŽ&,ΰw°ηΜ)<Ή‘‘αέοΚ‡rΑΆmzφμYU__°išgͺδζqcFΐγ“ WΪ}©’§9―·j0|JθΜΩt‹>{™ŸœdΊ όχε0STw/[>¦<Ν†w¬!zMH&•tΈ‚žΈƒsqvŒ, š§u&τ¦}{ΐ’Χ œ΅ˆf{eδ,0eœp™»4Wρ¬”r|gν*΄*ερΗˁΎ§’ί‘λxBfΜΐž>½π'MΟoοžνίΨΆ­ν³Ο>₯555“š››/!9œhθ0vLϊŒ„;α‡Oνψϋη/$δ61³3‘Gέeh6²NόPϊC(‰‚Ώ=φW.ξ<.a€™€i ΰσ/aΚ'πεBχ;pYfŠLΖΒαπ³RΚ'~ύλ_ΟΌνΆΫβ†aΠ–Ά5MMΣπή=o?χν#ηλ‰πψ7rρΚ•πδ“ΪoMΣΉ%hw.‰‘PΣ4 ‡ΓΪ„ ’Ώύνo{‡ΓΞΗW\A₯»DσiZξσμ^SΎG—"²O­Α:o6ε³Ο„œ2ΕψGEEυ/V­ZΥΌ;œO w§Έ‚ΦrΧ’n3½{W?xα…ζΥUU[©₯;±Όπ‚Ά±μςιΣ§Ώ6`ΐ@ΪκΨψŽΏJ»7’‹_~zκ©βΙαΓ·BuΆ™ζŽo tζΝƒW^ў:tΨE³f͎νƒ­{’οB$Ώ>pΘ5χœs(lk>₯ά?Γ)‘+W mρb%W­2Φ¬]kOξΧ―ί+‡:lήσΟΏΈΞ²,ΚʊŸΈρFσόνρπξ}ζaYSx^}}ΓσΑXΜθ;RJϊυλ[κ8λζ^~Ήά[¨―G.]*΄―Ώ5±XΙη«VΥΏΎΧ^{½6zτ‘kόοq€­Ρ–UUϊ«―vφݚ|yZιRxν5ύν^½φ»θ‹/ΎΨ˜έ»/’οDΨΆέζ(ςΆbτθΡZ}ύΤΔ™gb΄g¦+εΞ#ϋί4-ZώωΔ‰qΓ Ώ’¦ή³ύ{„ž={–~ψΊϊ!Cr_–-Όϊͺ>₯OŸA|ρΕΌuA_:D^@qΰΟΎ¬τ>„¨ά²W_rΑ‚θυΏψΕ΅Lšτ›`Δ;@€ο’59aκΚ+Q••ϊg•••ύMΣlοΦZ!Πθv(”΄Pθ€ΐ‘B ¬Œο’Ψf(Η†š5ΡύΐωtΨ­JοzZ—¨l\Žj^+Q‘E2ήπvττuΧ mΟ[Lς]A0R`› —ž^Θ’Γ—©ϊχR;Ό+½ψΡύ‚BΡε ‘iθE†Bˆtκ’w.’Ψj¨‡\&0š1ΚχzQ\“] EEΈ+ͺe5X)―ŸΘ ŸύΦύŸ lx΄’Ήα‘’›_9)xw‚J°UP_Ό_υ(ΕGϋό‘…PJΪ8 Tσbχ»ZJ‘μΔt ϋdψ ύ…& эΡφšιVΓcϋοαNFPΑ: %-0z\,JOΘBD/2‘ŒalPv$6¦φ’#άεt Ÿ* ‘σμΩ'₯ΧΨ*ζd'{ah±Bi~Σ]ΩRͺ_’ °γhτ†ΠB`ož©” zΉoG[ό䠟’l”Y+URS+Ϋj΅Υ£¬_ύŒHΆ)­žΠfkFt—fΟB@τ[-ϊ¬oz\ΕμiοΠ ¬ΖΟQξ·”…Π3,F§ώk0B§ ΒgΊ+iήΫYΕΩS=ΐVAυlŠˆ}*•^ "δλgkšσα^₯¬ϊ‰H;ΉSd€8uŸRΔ^ώJŠά¨Τ—TBNΉσJ΄g z€­‚¦ι’ΨœΙXί‚(Jχ³(½δ>ν9ΗΚ‰ χξkώkτ‘‡NϘVC‘βΕγŸΛώF€Œ`0.ΐΦ£μ”3hžν( Ÿιžό³c΅J9^ί½―’ΝOv…½‡ χΗoQ­ιαN.Πξ@£ΨztΏ^²τJ¬Νώφ€OjΪ )=έύ}aD>J™ψžιžΌGίλ°‰]œ=Α2ΥΫ₯rξΠ…Κ ΒvP9ώRαVvΈDΩNLΝ(Ώ‘ώˆ@£ο|=ΐ6A>lήώH«ΙoΎ+Ÿ†χkn―Ÿ½η1Ιw ’Ψ.ˆŠ“ΚPΆT&<Ηξ{zJ ₯P jLΩ…³‚AΈ]„€θΆ ϊΐίKΡνμ±έώyΦΰ\֟R ¬Π·΅LνμΌοIϊθvœš©ΨŸ]X«€QιφΝ%ΆρŽ•ε L³A9α>eΧΤ6tv~χ4D°Γ ₯,Ώ=d₯0›Λύr²₯J8§_V;9ΨgΎsΤz€)₯T/σIΉ]<0eͺ[λχβλΛ>Έ¦τŠΊ€δ|ί!₯ŒnJ\±"‘PλMS­±LUσpƒZ6b™ϊ2τeBZΑκ΄ΞDΠΔΨn(₯ˆ:!ο B )hΈ$BxX­D /Έ Ό³σΉ'# z€M‘ͺzύ%ΦUσ}υ1$5χU8±kυοNΜߏ€θΆJ©hΓS 'Υ%ΣӟŒ@±¦±α‘.|ςqQ–ΑϋΦI*>ΐvΑ3Ϋ_&&h%BBΙG¦»¦ AWCGί+¬ύολk~Ϊ©™έƒ=ΐφBSRU‡ϊ…JE(iΆ;в, !₯ΊNWΓ ωΠπc ε:Ρl”RΡ%‰Δ5z‘ ξnBAΕ4 a)W«λ:₯Q#όΖδ Α \' z€m†t7n-w—˜£"€»ΨE(‘ά3NQςf α[P 4Ωϋσd§fzE@τΫ#‘= uM“έ5Trgg…B%Φ*‹ΨτζC›ι~ςZΊON…~’ vvήε\`l3€”…Kk㏗? DQς‘‰΄ζΧ&ΝӚ‰Νan2q,ΫΆq,ӈ5Ϊx³7/}»/οLνΗΖγ Π…D%‡‚=-ο4:κΔ"ξΦFέ΄ ₯”Φ²ΖXWͺΏ§ιΥ&š^kB6€Χšƒ 1@γγ™]±₯tηΙ½_₯RsζfκšΒ4@ΫhS1Ώ‰κ)υτœΊ…σž,4#Π?;Ρ΄ ₯Tψ›Υ±ϋŠͺCW[kμ:ΧAΖɌηM™­ύ(_ώΎxYκ¨Ÿ€θΪƒΆnql΄† EΚΤzs€E«{Πpz€MΗ)ƒo­αŒήK9·η"N΅„}ŸΩŒΡ$qBξόœ"Υœως—?ή΅Eάύ΄Ϊ„R*Όζά5Ÿθ?/ςνHƒ:Η!‘μO{&ΈΎΘζ lΒΞλγήΪύ5υ+$›–2ΑΊƒ X1Ά˜e β/ώθ έΠ;»ψ» ’h‘ελ/X_Gjz 6ύΊΨLƒΤ`›©–€}.ΫLΕ Νν’=;^Ϊ“™sz ‹Z»΅ζsyυ‡e^σo$ šΤΒέϊQxΗ”nΟD@τ­`­±&f†ͺχ^GΡΝ­`?d΅ IDATΎŸ–ϊθ£σΑς~ΌΏΈ/‰^"‹Ίmο›οšwόωßi'uA@τ6PRRrm$™tϊι§WY–ΥΩΩΩ%¦D$Δ%ŠΦ*―©£Ο±›PΙ-žIN“e’^a— ή¬?―ΧμΓςkΚΡhν³ή-ο?֚΄ΛΣi7@Η½ 466>πμ³ΟNxο½Χο?ϋμ°³ώΤά7|ψπjΣ41M³³³ΈΓ‘4p(ˆ”œ8ς™Νeλ(œm¦Νx‘κρ^Ψ0ΦnΌ΄v/½+RκξώJΗΜϋŒ}ί•¦}pεΑϋΊγ:₯……Ρ{Ξ8#ρ8mΓψθ#½aρbύŸGuΤ]χίΐΊAƒφGΣΎίοβΌn:XR87TΉ‘ty2ŽI†Θξ‚YσΊaιΙ=αrμϊκχ„³q§ζT|ΪΔΰ‡ΧΣλν͘2<Ό?,‘%ψ₯όε/:‘ZΎχˆΎ•RRRRτŸGέrˆhJCm-rϊtbί|SψbΧ='3ϊλGω3†atv–· sW7Ύ‘uΡO’1E΄ΫJR›―'αχuχešΜ~« Λΐύ$r’·Ϊς9ylKEBs ½Ζ’hmŒςωM„kLΒM Z tbέB¬RΚ¦>…ςΛ‘ϋιΖχΌ1ν DίFH)ιΦ­λιƒΥ=wΒ *,₯kΑ*š0}Ί[²$τjAAε]ώσŸΏ:ωδSδwYγKGρEKL‰dάTP}’9w|…ΚΠΎf7ΕΜ—»SΏ―њθ~mOξ=ί³}ΰe†,w₯λ/׊’ΛΖξΫΉ5±ϋ! ϊvΒqϊτι3¬Ό|ύϋγΖ©R₯2Ί¬xηρ8rϊtμeΛŠή•²hβΈqγgίwί}ί)/₯βΛ– Rδ+=vΖ,3§)Ÿk+(…dυOŠψόΞΔ‹–’™sο΄±ν³―QΘΒKόiZ™?zhΰ<³•ˆΎƒ`Ϋ6Υ=zΘΟ.ΊΘι©i™„χΰ_J˜6MΘ… £Sš›υ»>ώxΖΤ8°S5ώη‹λΟ€Oθ%T’θ)R*΄iqΊpSͺ—.y^όΗJΨ¬;±9ΏξFΝ Ž₯άuλI·ΧŒ ‹πι―΄ΊŸxB`*Ε’„‘«rδEP[;J)ϊτιS―ψς˝Βαά„OΗO_Μ _~‹EξΎκͺ+'ζ7w …vYή„ζhoάk΄ŠœύjS‡~ΓΎ%ΌΔI”·7€ζΰ £³‘|Ι|–‰―˜?,NMw‡P—.Dϋυ£τ°Γ(8πΐ΄ιžΤθξ‡žπ–Ύ! ΏϋύŠΘY—wΚΓqν¬³Ξ oάΈqΠΜ™3‹u]7***šŽ<ςΘ5/½τ)%ΊΎηxΪDί‰8τΠCΒK—Ξ{λK£KKΫ&|6€„9s„όδ“πΜΊ:yί—_Ξ{qΰΐARμ$M&Ι"}‘€ΉΉV$«μ3΅Εb‹ύ°©Υ.1ώ_“ILb SZΙςΚΰ-WI Pͺ`|ΥΕ )‰Σ’@Δ,"5/½…ΒA’ˆ$~sS⦌glΫ&ž’”ΊEJyx2=Ν//K¦B¬*))Ήoƌ;pΰ@Ή+Υ]οξΘΠn€Ο>›k648c<πQύcνΪTW³]h ΄«JŒΊωfλΉ'Ÿάί9ηαtοš[TTtα܏eY;μωYΛ-M $Β•+a•Σzyς/1Πΰ“šj–ώ£’L7˜Ε,F3š±Œε}ρ>|0Ο?< 8Žƒ”ΗqRΗRJlΫfαΒ…\sΝ54Ϊ[xtν}ό|ρOxpΥ]Φ€ƒ†ν—dr³΄έ{GU¨iΪ\Γ0”mΫ―K)G{μ±Ϊ3Ο<£­X±Ηq°mΛ²p‡ΪΪZή{ο=.½τRMJΩΏΎΎώώΑƒ;‘H€ͺͺj˜”»η†”FίIˆΗέυΪJ) Γ@ΧuΦ­[«ν΅Χ^“Ξ>ΫΎyύ·-]ρbΑΤ©ΖW7:χtАΏΝ™3Ηvg›4ΣBώX‘RŸ-@μΏ+hΊ²8c΅ZΡς’7cDΞ›Ε8Ζ!‘”••ρή{ο1lΨ°”ΆnK‹ϋγ(₯°,‹;ξΈƒίύξw(₯Δ ώ“ΔΖφ¬ωXρcE‹›/VJυBpύυΧ3qβD ReΚ'ß₯O=υ—^z©ηe¨――Ÿχ](έ^μ1DOOΠuΓ0€eY,^ΌP3MΣΈοΎΡ>ψΰCm͚5`šBλίΏ_yIIIy$Τ4­rΦ¬O 5βββŠ²²’ΒϊϊΊBΛJT AΉ¦Q)εΡ¨f £¨H jαp˜°m[FAF4ŠQP ιΡͺͺΆΏ\ρ•‚―ΏFNͺ―©­ έ§λ‘ΏΦΥΥ5(₯:ΤϚ―ZXƒΌyς”WZO΅ {b“9*ξ  9ΐ„ΓgΓ₯”——³dΙΊvνΊUχΰλ]»ϋξ»Ήε–[ψ%Ώ€½H^γ5¦iΣxα…8γŒ3ς¦Ϋήο7ί|Γ!‡Bcc#BˆUΥΥΥϋ¬_ΏήήΖGσΒnOτh4z±eYχwœ*οΥKi‘D"HMSZ(”ξ?η)χ~=RεCg{yV|πΆqεJηΎξέ{όuυκΥ5J©l― 4ν+ζ'@dtΞ1ŠURwNλ—ΤζMόgώ(₯xυΥW9υΤSΫ$vφyΎΈΩΏΆm3`ΐV\Ι`sabrCβ ΓΘθƒo« =οΌσ'žx"έΊu;dΣ¦MŸoσωŽ`·':ΈΞ-‹-~ψΓ“\Ώ~Υ}cΗrτπαJΫ]=Žι:¬^|}aYϊ£”}ϊ°~ύz€ €nKύW°G=Žγ°lΩRmθΠCκή=qΣqΗ©žύϊ)ΝΆ;_#ο (υΩ;ο0+ͺ³ΞΜ­ΫwYX€7AzSECΔ‚έΨ[{Fέhτ3ΡD£FSŒ-%&‚Ψ, M€Χ…]Άά6sΎ?ΞΜά3sο6@E³οσά;3§½§½εΌ§A8 +Vΐλ―“κΨaβ¬ώzΟΈN}zb”.C$‚λΪρ-{έίΘψΖρtνΪ•+VdΓ€§ξήV·¦ς­·ήbΒ„ ”PΜΓ―ΎΓΔέ{‹Ε0M³YΙήz9&L˜ΐ[o½…išg&“ΙΏ|WΗνέΊeH§ΣΖΨ±czΝ™σργΖqόΎϋJ#ς?t́mC(kΧΒ;ο› ϋψ~bAUΎ΅ν }ƒ¨¨¨`γƍ9c^š£7―)pΓΎχή{Œ;–ςCψτε”••F½ E;‡ώ}ΐπςΛ/όςΜ~ ΠΙdψςΛ%ΖθΡ{SPP{Σώϋ‹>ƒI#ώnH{)ΥΟ4Υ “†šZΨ°κΆΒƍ°~½Z_SϋcϊυλCχAƒθXΩ‰N]»P4§ˆΒc7ωVΒ f0–PΣcA‚Κζ‘ιρ°λŸOš6EŒωp<τΠCœvΪiόφ·ΏετΣO§ΈΈ˜p8ΌCqθR~Χ]weΙ’%τοί?ΌpαΒξ;ΠuΏ]Θd2 4°ΛβΕ‹/:”K>Xͺ]k_α»Δ*„ϊ…BŠhSIΨZ§$oΝΨT λΦAizVA‡0 μΦ v©€ΚJΨ₯"!°%€₯N₯ac ,[Σ›’>ΝZ…Π6’@吕ΛU‡?σxΧΨ΄iεεε@“‹Qš%4ΫΆ}iF‹γη €}φΩ‡wί}—εΛ—Σ‘Cb±Bˆ­ξ­Ε‘‡q§I₯” Λ²βί΅Uuν„ήH§ΣΜ™3ǘ4iήαpέ&ˆQ#GJΓ]cαφές­Ώ†ϊΆ,¨­…κM°~46@υF›Π―+t*…ύ`pθΩΚJ ¬ L΅kTΨψo8Άqη.C½U₯G{Zaεψt1 ά«kCε—ά 'rQ†’=²gf/»ξ:½φڜΊiJr«²+χ·ήz‹“O>™•+Wz~†apΨa‡ρψ㏉DšΤςα°m›P(DUU_|ρ………†α…illdκΤ©<ωδ“lήΌ™X,Ζ¨Q£Έηž{8p`«pθεψκ«―θέ»7‘Pθ²L&s{‹f'‚vBίH§ΣLœΈ_Ω»οΎ{VϞφMεε„6n„-[ V8cA‡RΨo œzŒ U…€νPΝVδ1—0ΑGΔ€ΈΡά\"υ}kD/Θ~Ϋlm€/WÜωπωg•ό΄ο\2Χ—#Eξ% ))9¦[7R θGj΅dΉvέκλλιΤ© Νο.=σΜ3ΉοΎϋrβ7‡γ7ή`βΔ‰ΜŸ?Ÿ~ύϊ …°m›#FπΙ'Ÿ4‰+‰°pαBzτθΡͺ)@P?~όxή~ϋmlΫ;σ–γ ΄zAJΙ]wݺ馛φ[·nέM†aŒ²m;ŠΈ:w€c„sŽƒΎέ δŽζ\‚Σιΐ­ύ|nyά₯ΤΌƒα‚-™!8±`k=,^ ³?ƒΉ ‘Γ‚Γ9eλ‘\Н”π―€[Ώr%'Δ‹/ΎΘψΓfj'ͺ««ιΠ‘C«Γ2„yσζ΅Ιx‹Ε(,,dύϊυX–EAA­]ΚϊΤSOqΤQG΅—«E˜¦y»eY—΅*βNν„ή °,ΛθΨ±γn‰D⦆††Γg`μΈτt8β`4fΗՐ₯?ι|₯nVίVNέ»R]χvUο`ό&βΈιιΈέh–u °t•’θsΑŠu°’_pΐκΣh˜Ρ™ΔήaOuρθΡ¬ZΌΨ#žζV‘©ΌdΥίp8μξ&k5L:•[o½΅Υ8¦OŸΞ!‡B2™$‹εh-ΑŠ+θΦ­[³8t·I“&ρΪk―ΩιtΪόL·}7rω C:fλΦ­F=Ž―««»Λ4Ν P„3f0\qΎΠ rIΐΘ/œ…φ”Θ>βΥΌ€CΨ.Έλ“μ:“PΈ‡[ϐfΰ3 ˆE‘€ʊ‘¦^κs+“&ŸBΌ»ΙΊO»`‚U‹sΩe—ε§ΦŸAχK/½΄I"οΡ£Ώύο‰hσ˜BjkkΉπΒ Ήι¦›|sγΝα>πΐBPYYΩ*"?ώψγ9ν΄Σ0M)%Ÿ}φ]»vmUω„<φΨcTUU]»vέψ E„;ˆβbσ₯]wzΒμΩs6~Χ,‰;‰‘H„X,vN:ώ”² dΒ₯?…«~E¦ί.5)”ΊžU>ŸZέψ$² ΈΠZ¨“[B"Άΐ’0K%έΧoV*ύΐ΅Gpκ7#€OYΑžŸL:nΣi8•:Ÿ ύΗ?ώ‘^½z59Ο-₯€[·n >ΌUx ΐ’E‹š ;fΜ»ξΊΌΜ`βΔ‰Ύ 1-α3M“x<ώaCCΓθ#ν`\|±5ιπΓ?ήπΓ†¬H$ςΫΆΏ—Η7–e‹ΕŒΗγk ЩTκή‚˜,xΰf°ηBκ=ΈεΜ,‘»]Δ5”Ή}Ζ5‚ έO{Άψ“š…^Ο ΞHMy°οκFyP ΘSο…b`E1θXέ« Η.Π₯£ϊ^ΪγYΫ{? ΒάύΌΊ΅Ψσαη¦766ζ%ς|ΠGδΰW•]’w-σΝαΠγή|σΝ9Έt8δCΈζšk°m;/‘λ†;‡ž]΅Ÿ„­oΒι)²Δ₯΅f-ΒΔ @VϊζWϊ -쟞Žgq8?―I?nί»›¦Θ~λLΐe"AΞ`:ͺ{E t­‚ή] OθQ]*‘¨r=W°+o‹7ιίΏΏoΪJ'H•™C<ΞqLš4ΙΫΩζΖӟξxΠ­)ϊχΐ‚0οYΨΫ_&LΘΑ‘ΓζΝ›σβp!oκΤ©φάΉsΏ¦w£Ά6{Ÿ‹Α 'd*/Ί¨ϊ™ϋξ•ξΨ1ςQϞ=z΄Υ ²3B&“‘΄΄t?Σ4kf͚΅)'{ ΤΌ―$χ…G@FSf\"ΦΑ#hM²JέΏαK”Τ:Žs.ψ%Ό6XΛ…fΤ“Z>΄1Ά›†$©γџzίvΏ#a()„ͺrθΡϊt…Ύέ‘wWυέ½d€ΝΔ‰΅:ΎN―?uBΘ'Ν/ΏόrίwSγο¦όƒ8tχ‚‚^y†v…ΟžλCψηPS„9eΚξ»οΎΌΪ‰nh βΘ‡sΏύφ0FŒΡ/oζw206lMr€Ξ1.ΊΘρ“Ÿ,κπΓCVqqδΟC‡-ϊ½eY„B‘KΒα°USSσZq,yυ!°>€Ηo„Η4!$4tψ%³€7d­ζš~žΣ=5I¬Ηrr“pέΓ=Bpς‰ΗςΟ·†g™GΙνβэlžΏnΣ!O~…PR="¨ͺ€ξ‘χλ~}»©°ϋξ»o³Ξ‡Κ!„]»ϊά‹‹‹}sπA•Έ©_s8τ΄ά9νwζj Φ†cΗΑΦ· ζ=?ž{ξ9:θ .Ύψb2™Œ‡'ΨάΠτž›·>}ϊŒiΎFv0Φ­“Νκζnηή}wi\ziꌣŽϊdλθΡ‘FΓ0Θ1γ’Ιδ7•Χ6ƒ”’‚‚‚[MΣ΄2™ΜƒϋJcσ»°εuΨo`–X²γlAYaœέ'έΘ΄χDJόΤ}x]B8Ζ8m,ŸΨƒκ7CΤζ!8ώΨ£ψΣ3eŠašz.³Ήn τΖόωκ-]̈c}/„Κ2₯ΚχάEω=TΈ:δ¨ΥΝ£”’x<ξ#–!C†4i|Σ΅χΧ«W/|8‚ci!7εΦ(fώϊŸΤΠμΊ `Ι’%~ψαœ~ϊι€Σi_G0ΑaΖςεΛs#ξ„`lΨΐϊΦvΥΖ#ސ±«―ΆόKΚή½£«βρψξ;“QΒ™Ώ½D!¦NΨ#=ζ=₯ξ!QBφ[Q [rΰ170oiVMχ¬ιd;OΞSfΏυx>š~νφuθhͺ³ž}Αe,ZνΤΙ½τΘΊ{—Ίa΅όθΣrnάΏM‡Πhxež’μEE°ΫΡpΔ₯Π΅“Z~ PRRβ«Ϋ¦–ŽκώBN<ρDΟί΅h7?ƒnU·ΩτRΙfκJ€iΓ΅§ƒύόυΧP½i#Gy$S¦L!‘HδΰpΣΧίέ…3Άm—ΆX˜ŒΝ›Γ[Ά…F…PγΜ3ιrō³?^ΘΒΒΠ3C†μVφm©φΞ”ΞήB™N§ο=RΑkχ€ιžμJSbέo„p¨Η°m:Ύ”΄ΘO£?σ… †'Ϋ]_†*|SH›5©)ώ4΄ψξSo7O²‡ΊπξΚ£¨OkιΉΩΠθΛ6ΰ ηΥΙ{)5ώ€«Τχaϋ©΅υ•ε*ŠkXΛ'‰υχ ³葇Ό0_~ω₯―š‹WUUεΫrΪ\Ψ`zE₯΄Ί~r dfΓ]WΑ‚ (((ΰΤSOmθ§!έόmΚΙΠN†a,۞„Pϋ™„Ÿ…ΞΌ­T{°;•—ςχη{zώM₯C3~98€[JΐΞ€ΞPBυΜργφd~φL_œ €χα-ΕΨέ‡³9r[S~›€ώτkΥσŒ#`υj°BπτΛΚmΜ ₯ΞΗγ*»K—.uΚ”+‰ƒ.H˜‹/‘·Fš›¦Ι¨Q£ZCΟ—”’ώ=ύu\]ΉpΑ`gώyδ Γ`Ϊ΄i9³ ω†/K›-ΠNF"‘ωpG%ζŽη'M’ΖΤ©‰›~ωKS\Έ¦S§NX–υ΅LC8†˜KηΝk θόPύ*”„τ0ώŸ³’Μρ‘nΞ8 >;°Ÿ|θ‘jE½žŽΧ‡OΟ„ΩAiΐΠ}ωϋ΄>~JpχΣκυ'Ξͺύš:xφυ>Πα-΅ ͺ ;–Γ‡~Ψ,‘΅έ»wΗΆm’Ι€·]O/‰°ώϋ³οΎϋ6)­[‚E‹!₯dQ΄Ύτφp^’ΐW… +W¬  ρζ›ozxά|ΏπΒ φόωσ—·*ƒί2ˆΒΒΒ—_^Ρ7LJ%-fΞ™™3ΓμΩ³οsηΞK΄υςΖΖFzτθ1jΓ† sζ<#{h4Žξƒ΅†vΏsž]opΪή‘Z¨KΦWo’Sςώ[ΆΊ+™‚,γtF©‰ Β ³κjΒ³π:-ώ΄έ(²λ Z%R|πκΥμ1 ›ΧΨXHeΰΙ[Υχ‡ ΰ–ΏΓρΐQϋ«p]«`μΈoœ{-9‡Ex8Dξώρζ¦ΕςY―u|i΄ǏόczπA2³³ΪR³u₯ω9Αύ³*(;FΏ)j;οδΙ“™>}Ί—ŸqγΖ1sζΜo|»ͺmΫμuρξ‘UλΧ\j†Œ“€E‘βΫ>ωΛgӚ[ΒnτκΥsιΧ!Ρs •­μ½χ–‘ŸΟΪΨΆMiiι6l˜Σ₯€?„QΞΈL'λ μ=eΰM•Q5ΕεHOΣΉ€N•Y_³#pΰMΏyξ΅N&²γIgΝκUY|ή½—,NOPΉšˆ)Ψ’ϊ葞=ώ)"οTl+RΒοk~δμ@•ΐΚ΅κύ$΅ΰŒΧ_=‡8σΗt‹xS›Bά§npkjE\kq<ϊθ£ μ­ VΧ•σ碏 Jΐ°aΙΏαχΏ‚3fPYYι©ς3gΞ€  ΰΕo’Θ₯”t?±Ϋ[΅ [“ΕEEΏ)ˆ )ˆμgΦσΟμoυ=΅Χ ¦β'NΜ|#3cI`kφSu<ΡGΛ’K/έϊΨK/juν^F5·Φή0Œ—R©ΤU'L•ΟƒiΖ ψΏ=mΨ‘Ά,³ŒΕ½Έΐkx7…L†Ή‹wMτ…YŽ«›gΑδίΈ1OωDvlιuP „{"…pςοŽϋ%ΖνΙWTœί]₯qΙ‰Ω6H$Υ3“Ρˆΐα8EN?>ωδ“΅rδnί Ίη°M-om-ŽυλΧ“ΙdxπΦ6Τ•σ:CΊ;i\t,~Qν­‡Γ̝;€P(t6ίΨΆM―SΊΝ-.,ηΊIk „‡?λpLΩaωβ;vόf γ&*S΅~gαpԊ 8ο<ϊ]uUς³cΘ’’Θ£:u*Ρζ+B|Lϊσ πθ΅d-ΫΎρIΥ •[Ί/ †i«,ΰžT1 6ψΪZPΧMrΒ;άŸ gœνΦΪΣEΰJ(71Y0άιΈnu:‚mσ;εHΰŽ‡”Wg¨³ΎZ='ο•[Ÿ Iεvχ΅°zυj’Ι€Πthjκ-ΈFχ † ¦ΥRJ;LυνΡ}ΪPW.³ΕΊQUoΈΎΠ8GεaδΘ‘!μκκκe| ₯€ΗΙ]f … ̐Ζψœ?αΨy:–vόwΥΡUέ‚iΧ^{]WGλŽγΨp‡‚bΧΑ²`ΔΈμ²Τ‰ηŸΏΎf―½ ‰D/‰F£³₯”ƒ¦~z9ε}j θυwόc4χιc‘θΥ—=Χ\Ή¦­πφγΌKBS6³‰»y‚*νΪ&·jA² ήΧιΤΩ±›‡A£&"%¬ή¨βΨN§uΆ zΘ8ό α³ΕκyξαΚiόψρΩl©±v6ο~ ίTœζζισω%“If͚ΕΥηα£ΪλJwΎu¦κ}“eθ1©ΦΟ‡LRύϋχ/Θ)θΧ½Nν~GeeΩ‘ˆA("… ΒQƒP8{ΟVTaKKŠV ή†eYFuunΓ4 ΫΒ\Bw+~kSΈΔrπΑ0`@ςŽt:½ϋcwΐδŽΏΦ+¨ϋžνη^cΉ„θ₯­Η—€ˆzœQ8­μZή₯”ΔΒι€Γ‡p‡—–°D»‹–Žπ§“3|0+uUΞ‹$% Ά+²XΕοX–MΗ%τ.³ €«._λ”Ι†.„Ω³g³nέ:­4ΦPΟ[Rέ[σήΓ† ຟ:υΣΪΊΒy^σ >έΓ†€SgK—.­oiόφBΕΡ₯'WV_ŽxΏ¨φ‹Έf·ΝMΣ ϋΙ]ΤΣ1,Λ²Χ¬m#]%•Ϋ²Μέ\ΊˆkŐaρbψδΈώ|8Ξ‘:M’Κ¬„uA1F:\ΐ§ŽΙlΧM`iω“Χ²SΫ‡ΏtA‚ˆυpΈ†?w| °δΛκ"c“Ή8< ²›–W@w¬^Z\Κ–-ΚmΑx„PS§ γ1 IDAT‚¦Ή ΛΆρ:MΉυμΩ³Y•:Ÿ­9iέΤΊχ δΓ1{φl-ZΔ3w)τκΈ₯ΊΓiαέΎDπιΛ$ζ¨οώύϋoϊΊ–9s਎₯ŽΔLBGܟNτ±Kΐ0εΕ₯§.^5,ΆmS_ks.JP„ήZ‚Χ*Ϊƒtΰ;<ς λWŸžu“NzžρKϋš»/ΌK”n6dφ‰C’•ΰ΅ΈK$„B 뻝847—‘Θ‚aYK— ώW¦ύ+/€‡@Ίx) ρ(υUxηΜW―ƒϋfURΛΞ•vΊV’Κd=–½©TŠ)S¦ψ€j[${[$~s82™ {ξΉ']:Βα{ωσίr]iaέΆΠʍΐΣΨ‚έΣUν£Ύ˜RΚ Γ0ξΫΡΔΎβhŸβpfNYΗ‘ˆ"μHΤ$5inzDr~.e3,˜8uί;άτ €εΛΣ͌š›BTβ.Α7w0V‰ΎΦhF…w ωψ1mΌ€ύ@“ζω€΄Π// Δ;_x,\—)λ6¬§cιvβyšΕZ<ιό@‰4 Ž™΄9+τ2juα&/#=Qd΅ΆU΅Ξ”YΗ2£Ž1H ψli6lχ2ΈεR˜6mώσŸ•{†5έ§Kφ|’Ώ)- )γ@QQBΐς²]ͺΥu₯»λ_cή^ά\ΤτοgRΚ³ wΐ%Ψ 6>WΨ―Sχ^K^=Ψ"R"¨λ"GΤx=^³3’β’KάƒcŒX,F]½l›’Ivμ Jo‰ΰ’P鍹Α-‚T όο t7zWΞγξΆ¨$7žχξ„ρašτp¦nΘJΧηž|Bεa{p+Ω₯Lg%8Β‰£$ς|Š…ώrzο2O™γΓό~Ξ<ΌλΏnγͺ½-ΙJ0ι| ­ƒλD±l₯χΤΰ‡{ΓΩgŸΝΏύoŸδΕ­3Θqϊλašš^Λ§H))//'™L²α­¬Κξ‹ΫR]iαΌΊΏΫ¦m'η]dέάπχύ’ahllόbGHυ oΪ«¬σ€EF4B½"1GᨙUΫ½ρΉ©»2 g%e:m‰†zΑΐΰHτŠŠΞΫ~sΉ’Ά9‚wYͺ7€"οXύΡGΥ±Fύ«²ρτΣW<"r½…ŸƒCΆat7c ­Α’=|’Ϊ'aLƒcΈΆΥ8€iδΑ‘N‚ ’α’Ω4$-›CΖ|쩉ή"‘Ε£«Χρώώ<:Β™ώ`φ§„œL؁<Ή gt’›οŒkΌΥπΞψŒGq·άr‹^²&%΅J³ιρxs’ήύN§Σ˜¦IMM Λ_±€δmm]e«Η'Ι= Hkgoδps­ϊH˜υH)ΛΒαπvBQJχ«* ΝwXB&nˆ:D¬«λYiŽ Η /… Lη©Κ"X²ρ&p}ŊuKΆ'ƒαg™nMΊ*½Ύΰ-ŸDwΓ:ΰμ`ή³ώΖπESΡά_™Ίj™žιθ<΅"μ*½ZΦ”dΏž»)΅‡0ʘ΅ϊhκ3šT‘*G’»ZzΧ&½πδEω Ό{ίnžBεŽΤZXυ-‘lψςM*œmε —;ωkLϊ%:ψ‰Γ֘²Λζ<?:ΌςJFŒΡ’τnnϊ-ί<Ίξ'₯dΜ9D"€”TΏέKΌ,孟fλJϊΫRοW9 ΩmCM-Z ν1°m{zN%΄.ύΫy »€Οά΄Yr£Μd© Ψ6οl O=Χ-νή3¬Τv3l(beL%,b±θ‰+£}ψπaŸ77i'·vέZs%ΌΖ!st)‡Π₯„Ώ]σεξ@ΣU*Θͺ[ϊOhξzςαςn>=•UdΥ2‰ε Τ­Ϊ°‰3_γΉ΄ G|({ŽNmΑElM9ι‹lΣδθRτξ₯όVΣΚ*•ΤΆ½Δ Υ|Ί§AiεψηπίΑΌyσ0 Γ·LΆ9Λ|kT}χέΆmƍΗξ»οNΗr°?‚²ˆVZŸkU]Κα…uΫΠνš›/ŽζοΆ«ΏlΫhν 1–mƒ/ιρΛχΏ)‹ †χšΐnLa5$±“iΆ ΣGδYΥέτα‘ Œΐ S € “²)ˆHΗ(Ι'Ÿn‘„Ιφ·Ζsj]σΧΏέpi΅ΣΆαζKιλβ[‹β€ξΏkΜ!ˆ_ΐ,r8³τ$,ΛοΔ”-ΰ K₯ †’.•X-‚­ν>σIΛψ°¬‡`šάwΧ­œsTm~ $ί»«-hR\?Φ}>ώθG`xε6Ο!\)Αpl,fSν/`ΙJ-οψΛqΒ¨›εΕκlτRοθδζΏίσ©ρgœq¦iςΞ;οπ»_ΐΊAXΌ΄Ής—CwΣ‡?z8t==‡μ₯ή §d¬ ™L†ς£K&υ:₯ϋΜ ΧŽ°*JΚ~γJγFaπΓΧLώυ₯ΕΓK‘ ’79tαΰLGŠ›¦ϊ¦"xW}7LΙ1·T0 £vΐΦΡ"²«ήt5^'ζf:°v³ϊ< α—ζ>ώ rέ\\ω¦Fd§γt5-Ύ ΞXV ξ{ΕkΩgH+pˆμquΐbΎ/°Ο=:΄+γFwεΣsβ?C€²qΕ`P υΧVobαϋΰμ£4 ^ ·^₯R‘Έ;νt&' ’Žž‡κ„_€9Ÿγ1΅ξU°l΅ΪžΚψ›ΗΕ‘Jkψ΄Šumlzf~OΫΚ°aΓBpφΩgsϋν·FσZΞƒΛ\-ΛβέwίεΤSOeΩ²eΌ/<χΏΡMο.3ou]IM« ”#Xw€²C/­y~–κiΛΊψ?P§†aŒ:XΑ¦Ϊκ;vϋΙ§†ΓαHUY{xΜ'ϋT u•:¬²‹΅.’UΛm „°‘lKbeCp₯Ήi–_Ό»˜3gVδΉηΖ$=cD 56ςό‚,.’W½ε­A^~fΎ­Nhm²’]‚Ν—•ΌŽΝd·Γiˆh_υ.%kͺ·P»δtΛ¦ΥŽ›†L…Dτ)΄T jjԴ֊°bΉ:NΊ΄v4ˆ½φθΖϊ%οrω[)-…B§q‚7¬6y'%‡Bα9•ΐ}wίΜΩG$T±!΄§ͺΗ'Ϊλsΰž'αΖs‘ΟάNŽƒβ¨4#υuœo„c.†OΊjΎ ¬¬Œ]wέ•}χέ—ΚΚJ ©©©aαΒ…ΌρΖ¬\Ή;Μ!†_ Wž§4Ymiλ6φ‹mS…GžΗΆm;ΌΫY}FX–ύηx,:JΓ§‡(*uT`­ΏdŸŠhΛ;E‘’qΣYςͺ΄Ϋ’€“6©€E²Ρ"Ω`‘pŸ ‰† ‰ Ϋ†’Š0uΙ-ΏW QJ.»LX%%ψχάI %샕”oLη2}π“ODδΗoΪ‹πΑgy0OΣtιβrdg–ώ’‡Υ³"wΉPσΦϋΛ_9eς2"Α‡-ΰ 8N<±yΒt…—FΕͺ«aε X½V­iAqμ3†½C―κ”Φ¨ {G: vωˆB―n€ƒμ±ΗΕ >ρ FŸ -€ΗoVg$Rpκ50|WψΥOύu£Γΰ]aPO}ζ+ͺO3`}-άϊWuL՚j/ƒ;Ζuλ²ΌΔ`πΐξ ν΅…ΛN©‘OUVκ6‡Γ+W }ΌΊψξ‹Ο—^«q+—τ²Ϊny©„'Wvƌ˜cμUh³΄!;-TtŽeΣΦ€ΉΗ „#₯"Ψ6Δβ&‘˜²Ίd2’tΒ"Ωh“lΜ8Δ­y½bVF/ QXz=L&-[„QR ^ZŠΨτ5Š•SZ 2ʊTϊ»cdOUΣ8€«²ζ]­¦;:ΐζϊž}βŸLΩϋK~zP‰Φ67INsS©ω˜€”CU•ϊΦά]¨7ΰ΅/‘ρsXΏ^i+WΒΖ L@χ±Οžέ9Ί£vb—.εΌϋΪtŽϋΑ'J3ΣΪ↋αΠsaΖ{pΠήw¬ϋsεgDn}-Z{jEo†BΌi,ͺŠαŽKΰφ‹΅τŒμ;Vn΄Ω₯ΣWjϊO΄G0LΎ°ΒwϋN›pδ "%€…ΰ +Ήwn¦P«γΕ*ήυΓ2LθΨ`'<°ΜΰΡ5q@rΗΠDΧΈC₯ͺ±•:Vs冩*ΦΚ „!œŸͺW΅Ο?[V+cƒ ‡—Dξ΅­ƒ$Ωι° › T–―–Z‘>½σΌ;j^Ο“~Sl΅ *™ (ΆKΛζ‰Φΰ0`πIpάq­Οˎwφΐ½ƒ`λVX΅J ¦ί¦vH€s„Ί₯εαT§ΌϊOπΕ2xπ:ˆΗτ„³’Χ–plSW£TζqoͺΙς5νN‡Γύ0`~Mœ{ζuaφΖ"b¦Λ‡σμ‘<>DΘΛΒN€±λτI)P\ž;uΧQdwͺδΒ“βς0©€MΌΠ$V`+  ’Ά'Ή]5έϋΥgΌg&-1C‚ŠͺX"j cΟ=:”9­eˆ:? 4Α+ άmJͺηˆΪ,Δbj‘Œ”ψκλBΌFΤ‡yΠόά[jYs$πˆ<Π rh»%6Lή·B,nVͺΰΪάkςβqθΧOύ ™κκ₯₯« cCΨ„Ÿηά Χέ·\δ”I:MθΤ‰RΦΜ`ύq’5­ξήκύ@ζΦω·ŽΓ€Euq_‰WVW6²„]Rˆ§šψ$2p\Ο F$„‹`§2ˆŒ !ƒ‰iήkŒc†έ’n\α•ΗUα͐›Ό{ H)±νfYUD6œ!PχWW‡RRfš7ώδ$†ZŠΨΙ_ΩA‚oŠν;Cm-ˆHΧ“'Ύ+iΌ±ψn.qUmΖ|}όAϊ‚^…mΕρ»NeχƒαπΓ[¨·o΄N,Όφτό\s/ά|Ύšu6ZΘP]ς©ΖKWΒέ΄ϊsz [:€€œ~εΦ­{Β‹Oeη[ΐ€Ό±Ύœι«*™·₯˜ˆ)=…qΘ±±ΈuμNsΞθ'Ηf{Τ#B$žέGξFτ†:Z:Z.mΆΔΆ$™΄Ί8ΒΚHlΫ]"œ­#mύ3jω³£)μ@4₯ͺ*²¨`[@β—κ9Τ’ΧjžΈΩ2SY©ΦΉoj€Ρ@RωJδϊϋPγτZ›ψ 8nηΙΉN©8„-9xw„ψΰ—κ­·su/Q–ν%+ΥΕ Ά„ŸŸΏ}~σwΈόT­ΘA-X ύΊεϊεΓ‘Ojζ­“¦μvΰvφ;Ηd$@˜`ΥWb5T -›OkαϊeΚνP[aA6oΊ΄vς2‡Hί¨79?U‡mK°md&–ΝΪpŒ(jΊ,KԐBuš—¦ΒaΫ+£~锍aΈSjΫRL@Ρu–θ=βG({¬τN?"ϊ1€†δiŠ\¨1ΊΎΝT#¨&%w>iH7Q™όΥ]π§Λ³Ρ‚k±›KΪ—'žλ4ΖyMζf'_±šΔ!ism‡³χαpΠAΉζΫ‚`] ο=#„‹nƒ;.ƒ1ƒ•ϋΞ»ϊ΄= Ί²ΦT³zadώnL«Ιό:ο€αΗΒς5)Γ­i*fՐ„M[ ΡIΓI$5¨ZNοq•”τ("1±$ΙΉέ2…2†ŠΏΥόΊc6y$us„οΣœ±Ό„;«6S(mΆ€l.­νB4¦5œyΚή‘4WoQĚJ35΅ u˜r—1ZI&e{ΓYΫVέ²l,KI{Ϋv~Α 5±ά#τ΅k·6}ㄍ"μ δ³ήZΑVˍ4C0Kίf#Iz†·&΄Ο2/šE™4<-β•!QχΆυο9Γψx§”κ¨KΑπnjͺnυFψj τΪn»~ώψρυπχλTx―œn'“`z-წφ€χ‚Χ˜JΎσΥFψT;€sSM3x%|λŠ:Ε|σΣ8―k ‹!BvB 26b„3fV¨ζHkα#drΒ˜π³šJoψ‰‹lzNΑΥ‘aF‘‚³WsΎθ…ιŒ3mKΣ2iΫ[! %Ε3i‡Ψ3‘[Ž&c+F 5Ν‘˜Α–ϊκχτγμΩξ6jΌ]λόκΙyS «ξ˜!HY­aΐθΡͺΎ ί!`σΎΡO ]ŸtΦό|¨ςP½—¦σβSγ[ΒQ0ά{ΰΞ£™1#7ύo |εΆΑΊ‚Γrη ¦©wͺ₯°έ;«‹πΚ,mXCΆΓ/_ηO·©&•ZΟ_W‡GŸ|h‚Θέΰ½ΚaΓΫ0¨oΛe.θ‘CB’q“HΜτž‘˜’˜Β4αΒ0ηF6\ά$ͺΗqΎυwΈW—Ες₯ŠL)h@DΓ…1ŒXAΘd€™P{ΛΓ–%‰DM2i›tΚ&²H'mI›LZύ”Z―$»+έ]u 5±,k†Gθƒt_.R¨ (ξΤY5ύδΞΛΉ«γtΠ[Ί))ο†ΣΓδ#v'Œa¨F?δ,²kΤσ€Πγjΐ[<‘‘υωεΙ–oά'²αZ#6ΠQρ$¦mΣ₯rΘ·ΊK-ί^™Γ](‰ΕΊί|τ©ΰχW*η_―Κt»³ΗΰΎ§‘Ύ1—~Ά(π%‡‘ζanΈ`kQΌpyq Ά¦~ϊ8dζΒOnΊμ£Žο™C°ΡΈA$n0'ΖN₯±“ΘŒ–MRJbqƒHΜ 3|„™DβΡΈλg¨t=ΒW~ΧΟρχπ{q”_¬ΐ$rζ™ͺΓͺΣ…MΤϊφ°"4Ϋ–‘Ϋ‘[ή{±λ]f‰ύœI?ϋΠ#ΫςŽ=֚@ ΅-޲¨:Ώ"νWŒ:JͺD{Z'Ψb4α–η[ΨgΥΐΏΌG}{ ƒΐw +š;†sθ’7_Ά<&Β΅G€ ξxNΑcχΗk―ρ‚«^WWΓ“OΒγΗwa€(‘ΖnR²ΗΧpδxΊ+l­‡ΫV;Ωώκά²ϊ“π·€£φ74Q§:΄6“ώψAeΟ γ1Lι―σΌ8„Ίχ/W¨λŸϊD΄»φfή»˜XatŽΖL’œΊΖ4vC;‘ΒNeΈͺ¨o@R>m (Ρ#qC{Ο η#φ@ΈX‘ΙK”`§2Ψ d*ν1œ/γEŽDΔ ”4Ο€ά%―Ω_:e“IΉΔξ¨πšdW=Q"m8{ςΕu^σœvΪ©±>}jά¦q₯ Έ§ΞιΤ‘ƒΞšσŠΤ\§gΐΌΟ`ΣL¨ˆhაo˜ i~TΎ8Ί·Ϋ™E3αu]nΜFr›žό0{OXτ΅ΥmΫYhτœ{"\ωc(‹ΚξBΥΕκΰ}~ςΕ"†”=L| $Σ°pφQκtΨϋžV‚ζΙ[₯«NYžFΎϊta[4™¦k%)αύ%0ώdHk3@ÏμFAyΔ±€Ko k₯l’ ј‘1!±RBJ^ύ“Đ’!$a,αH!Y’dίsC$₯aOΌ£ό ΈYRRνΤ)-{ θg‘.BΠΗ&SQ[!CmfPγμ]k·r’½YMΓ%Σό‘ +λΒΞύΞ ·U‹λI&ΤbΓž&©¬ρH9ğ°H&,R 5ΧPXBD2‰χnžχUΧUW!CΞΨ*ž8—‡ ςt>Πύbp½snœ5 6E iη] ήAz’^_Ηθ-α°Av»ήε‘J…—’΄apθιW3vleέp—Μ~ώ9Όό2μΉ\{Œμ"ν/Ÿ^.W•]oDuΆμΞ±ϋξΎ™³Iή]Ν‘ο3.:ώω"<ύš"φ'nuN…Ǝ€n•ΝΰΠκ(g–C/ >Ύθ΅‰^·mΕ!%<ό*œφ‹6T*°KGX5o‹#oΧu>ΞΏξωD£Ρ=’ΙδM₯mΩi Β’iΦ'–·/8΅_ά,ή«±α”0…“llΫΚΖι·φΓ’Oj1C‚Mλ’˜†›)‰mƒe)ižqTωTRΉ•Q΅Φ©[œΊ††+>Όmρ-^•ΪΆmœwž‘ξά9gήVohΉŽ/>ξΈHK0€CΗγϊOϋ9"‘Θ=Ιdςό|Ϋp[–6 ²/›5i†ξŽšρ½rW7²qu‚šM)lKfΧ~Ψ(5=£TxOͺ'7*ͺbŒν?!όΫΣώ˜ρˆ:“ΙΨλΦ΅ρΒΈz|γ΅H°S‡Θ­5ίωΑY‘uΑjηӈ³xšjψΌι;nRζ Τ"Ψ1›ΒβB:H€“ΐ‰“jψ I^Ÿ'›NΊ–oΌw1BbΛDϊtαΣ‡aωαψρŠΘέq°Η€ς‡λξ9ؚUΟβxœΗg οCηjΚνψ+ΥΕ‹w‰Jη§7Βc3 Ά.[98ςΥ‘ξxχw[ΚΡ † +§Α…'5]ΧBΐβιpΗ…~·ΰlΫ&Řή[’ˆά4ΝΟλλλ·™ΘL#l !Έ}Ο™KoΫύƒφŒHΡp§»9₯ͺ{ι”MQiΨ§{ψ”c˜sriΫΛgyU”†D’ξ7'έ‘Ν†n[Ά΄α–~U:H¬a²†ΊΝ/(%[:ΐι§ΓΌ…0ΚΉλΟν²Λ[D\γ>τ~¦§αs¦ΥŽ‚έ|)»aώύίœux5Υ+ςtP ܎΄hά{`ΦΜέ8ξΰŸρΚc7²~ή―Έωη)ξ°‹ΗψΠςͺ—IκD“Ο= w©r—nŽ)ν:I•Ω†Υ3ΤΑΆ '_ ΣgΒͺ7ΥΒ”g_‡S5Νγvί}κΉσΛgmS9Z‹Cΐ—ΐ³wζΦωπώϊvΜ2–&qkύυ΅Ο`μρ …–Y–5Έ­W~·Q3΍|σβΝ©΅α”ZnK΅=² E ozΝ•ήι€;N—ήΠ*R{֍…Ca% †/h<α;–7:θΖ77‰"ξώ–5'ŸΦΒ‚Ÿΰ ”e_’=΄Bhι‘`Ω2xπA%qVΏH–Ή$o^€ξŸd€΅—Χ¦ptqΖ½šί΄_γ a―#$d 8φu§œ[ΓP7₯Ύψ"iΈjκ8ζΘ‰„3Ξ QΗ<υάK½ϋΫ9ξ>›ƒο%ΰP|ο‰w §–Vc&MΌϊΧj½„γΎ΄’Œ[‰9ͺ9Ί^œ ‡ώ4€^}ωΤuΆ§Ϋ€cSφ>Iβψί?AΧbΏΔ1ϋ 2 ۝₯„fΐO―‚P(΄0NΨIސRrΩGc/ —?φώ λlZ›ΐΞHΝ —]4£4JAy§‰DͺaΞοΊw¦{¦·X,FUλ-ζ@'ς0j*9hκΪs‰"pύΖ8Š1ψr§:BοήpΡEpη`ކ­³ Πέα¦IΊΰŽ57m·Iν[οοAzφˆίν„ωpxC¬ήy}β¬ΓVyaC6¬Z ƒ+λψΗsΰό“ΰΆ3α§ ¦°:ο‘Ά“α|άΞάP_›Ε"4©¨Uϋ’—Γ“tˆοκδIxv7­x,Ξζ­PΟβθSΙwαΩ·ΤΝ$ ŽzήbAi„‡Φ^αhεπεw[Λ± 8*c°πir €½OUΓ'λεwΔTxξ5BΌ™Ιd&|έDΈ«ννόSžξ=€~뒏k#₯6I`₯Υ’WΛς: R Κ:F°’ŝΊ»D>R‚P¨δC¨mžΠkΙnSmuŽΙUΩM²‡ZθΰjB‰`ξ,]Š œ)α―Ec`ϊύ0ydΆΡυΆΞ1Јΐ·σξ©kŸqH·ΊC8ΐ“ζ+Φgαμ»9λPΌ€.Ž™‡ω+α†c@dœ΄,Eδΐ(™Q›gα}zλ¦Φύλ~ΣrU¨#ΈΣEA–Ε†j(οš‹γˆμ%ͺH ΤΉŽCΟS0ƒΒOLΫ\Ž―ΗG_ͺυάΆ•`ΛVˆD"—§R©ίς ΓΟ>œ²₯8gΘX‘ώ%2i›Νλ“HK’ Ψ$Qσξ5u5ΧΞώέηΥz>RZ·~qsΣ!€s·ίA)žΒd ށyσ`ƌ‚σkjjο …BH)fΖ’ƒΞ’}φoύ„c3πW£]‚ι­δ?Ύm¨Ξ‹;.φ…uq„«xεΝYl^9£`Σc΄–˜†#,aXWM:ιιȌO8½Oj uκ°!ϋ₯i,ϊt”.‘ƒRR₯bi§Δζβ°²YΨYIšwI«ΤάvBΨγXυΪ»„F©χH$28•J}Ξ·†0RyyΏχ "ρ1(νU+ΰl΅NωΦ‡yΥ β~?ϋ½oίΎ_HΉpΗ.έtΗ|EάmΈQZJX°ž~:ty*•ώ­‚3Ροœ Ϊ7Ÿ3σΓΔ½ζh˜σ$ŒθιΔuώ†έˆβ:ΒxawŸF(όaΘ¬c~ΟC?άC]·GΘ—_υΤԁΙώ{dσγΛƒΦϋu«³Η€ΌΚT§ϋa& IDATj8„  `ΰϊ ¨?ϊ|χΈγ7ͺ;±μw2!VŽ1’ηG}΄-—…οPpTω=ϋŸΧνδxΙΓ‘«9u»ΊΆzςŠΧΏœχΔ]ύ#‰μ~ε•©Ω;,g’¬q­ˆάuςΝΐ’EΨO?½ΊΎΎρfΓh>βΈqγboΏύφ* b·ή0οie²’X:xK°ΓδΡdr΄›@ž€Ψ^±Πα$-Ύ{΄rxεΝχΩΏοσ€–.δݟŸGK@„ΊC§3›Δ!M“ΤWΏ""ΆGΠMζiχs'Δ±Υ‚’=³ί¦iN§Ÿn©}N§{ωȊ 5ΊŒι?vεcSŸΪ2›V“}=•JU›κ˜« 4=oΎόžy¦πΧ55uW«ΉΔ–+ων·ίNH);˜¦yβ‚/ν‡##1Ξ;ώx™Φ˜Κζrϋ€θ¬Χt),jŸΘ&)΅οmΖ˜€γ/<.’ŒfαΊ‘‹άŽšσ-ωŒρ₯Δ±zνZΊ˜d―ΪώjΘΝoLpgΐ•γά4Ε{§Ÿ~ϊΎ<π@fg$rgZ―¨ώŠgyςŠζΖΒ{Ν5W­o†)΄β΄šΘ—/‡_Zά~Ψa2kkλ―n«USmΫΈθ’‹Β¦i>qΟ?ΐά]©bϊ5::‘Ήuθ‚8(©ΑIKKΗηΎ-8β»:…wκK=%/Ώώ6ϋŽΘE‹ηϋφ{εˆ+θ9q %―Όπ’wcμ6γМdΰι cΆ·_`SΤEc-ΛϋΐOBόNƒΠ/Ώόu‰DΝ΄)υ\Φ¬_ΪψΣ–-G‰LF^vτΡΗlώ;οΌΣΞd2Η 4(lš‘wΌŒΡpυίΘn·Είπ9†όΜG šŸgΥΥUΘΆΰ0 =pfIΫfXηs:wpΝΎž¨>Ε$u―p₯η¦γ7Ϊ­λ‚νΗ‘ΉyWΰέi¦΅w8³Ά‡„SnP·Χ„Γα{ήΫY₯ψφ€―DαpΨΨΊU|ν₯”Φ­ƒ[n νξ»3"“±Ο}ϊι<“œΫB>όσL&“ΩηΔO ›¦ωΞMχ‚1 NΉξ}hhκ΄ΤΫƒ€Φid6¬o,ˆλS[‹CͺΓΧ₯ŽΠΌπ―¨rg9œαƒ«!hύΪλάΊΚκ p;t&»Njsζ~Κ»νz=9~σW*FΫ 5œ;N}zn­ΔpΑοαΡ€βεt:}>ίSπu,³Χ¬i*θφƒ”j5Ψo~c>ς‡?€D2™ώih›ΆΛ΅ώρd,ΛΪηWΏϊ•FŸ}δ?}ƒk³ fkH'Tο©KwόΣ%π&qˆ˜†Γν•‚Gώz‡ Θ1ΐo,|’n–šhsӐB`m|ΒG$Ϋ„#πtί;;Η°ν«τU;GΎ4ZΒpμ―ΰžGxΟΆν¦N­^€Π₯”lά(wψ4‚”κ²Ϋn3ŸνΪυf3•²N‰Έ· |CpΣM7ΩΙdςHΛ²ΜX,vρ²΅‚Sΐά.ύ#Xϊ‰³Yzσ«ε4=ΦsύΌŸΘώΌqΉϋ­γˆφRS…Nζ•_Γ)ZΩ©.7}ιγžjκ{’‡HWπpΘl|)ωσύaΜn;‡ΜΖΡλ£" [ίWίέ&ΒΓ/νxΎ0­)‡ =¦ΐΏ^ΰ…t:=φ›Xιφm‚―t©TŠ1cbςˆ#v ­K ‰όρβΕ]w~ΘΗΌΣ8,Λ’¨¨¨W:ώO&“j ζo§Β™G‚Hiκ΅K”RSΛqά5ΥΡ›v <ύ‘Τ·§Ι–ƒŒΓΰ=Γ”1Rβα2w‘‹Τίέ$στO7―ž_ρΑP΄—OM‘ή~γzώΫ>l'Ž<\o Ψ&”ο«N²άζύK­ρί‘8Zͺ+ ,Xƒ¦x)\ δΩςςύŸDD"lάHuS[ .ίuWδΝ—^­―—“w&"0M“ΖΖΖe™Lfh&“‘HδΘΊΆœs˜Γ‘ςpηӐ i$ ™σI“`Η“2V_’λ :£<ψ–ΞΉšΗHiL C6Mτχ€V γφ-ϋuέ ‚ΠnόfΞώ½Ί[΄°#p8/2O|Ϊ6Zσ†ΪχΩbu-Τƒ/kuΊp4WŽŒ £OUD.„°ξό9δα•½z•Όqϊι΅γσn €„dξΉΗx§€d—,]ϊeβ›VΡ·lΫζάsΟ =ϊθ£§744άjΫv¨{ʎ Ώωt)agUz]`KΝ!(Ωƒξ άlœc™ΘΥ tCΰΣΌo‘Ε­ΖάΪ·›Η.7#eΪ"<πΐÜ6yƎΔαJWν;_9€„:zLRλΗC&<υG8t‡C/GΖ€S―‚Η§«oΣ4―««;!oi'Φχ r]ΈζNoːEJuυο½χ³ :ο»rεΚΤw}ŠB]%}™qΧ]w`YΦο€”»I) €ς˜z&œqTΔ4ΒΟGΰψό’Ghί’~9Οƒ£λυ€ΰΛUkXόΑŸψαrΗβω£Ά„cζ0ιΗκ¬:!ΰ¬ΑS!ζmΖaΐ’υpΘΩ°xΉς2 γΣ²²²ΡΥΥΥ©<%ϊήCΎfΌδškΈ£5t*₯ΊΨοή{CσφΩgςΟ=χίΤχΡ¨a9KǏ_4gΜ«-Λ:+N—ͺΐp.<Ξώτέ„Ά-Χ•NA‰Y†šΔ€zpx―K·|_Χ*„ΖΒdΪ'γ°·ΌΑaP*ΔΖ‘oΩυ$,­Η1s!όθ"X»)[GΗό~yŒθ«)–†Σeš.ΎlMΒΏ^ƒ[οUΔνζΑ4Ν‡~θ¬Y³R_χ ΟΞ 9TΩ³gO?}ωτζθUJ΅Lφή{Ε‚αΓǏ|υΥ7M‡ώώA*₯„Β AƒzmΪ΄ιg›7o>YQ&₯τ.1ΪΞ:ΨϊuιχΌju;©šΊξ QEV] ΎηHΌΰΣυΦŠώΫΖ!A†•4νψΫ30νMhLz)Ψ€‘kHξ5L V±m©Λ§9 Ϋ0ŒmΫώ™mΫo~ΟΆ@N-tνΪuΨΩg―škη1Ό»~ο½bYMMtx"‘žϊ? ©TŠ#<2φΞ;οΡΠΠpf*•Ϊ0Τζ¦Ό&ŒQΗ%ο?ͺ:€H€΄Υ‰3ϊ84ΒшΛ£yhPc&>Ιϊ γa₯ω½9ώϋ6Όρ6|ΌΠW}6@(Z-₯|hĈΞž={ΑδΙ“{½ρΖS€ΓΣιτ(!D™mg{¦a™βββε555o=3vμΨiΣ§O·—%wSCθΗstΕπαOm nl1 Έ~c΅mwΎ|ωςν•Ωϋμ³O%pμ^{5άε*ιΤsο¦s ¦ξ·ξηBSΝœ†!ί¬Akΐ^}β ±eέΊψq›6UΏ‹ΕΎυΪ!‘'“I£{χψ†ΪΪΘΘΖΖΖv†ΑΆmΚΛΛGνΊkΝΜ)ShωDήoάM=/½$}Ύφ˜cŽΉύ‘‡Ωiχq―B^*v₯K;|s ₯€°°°G·nŸt’,²ν6Ž£ΏARisηb?ΌρDiiεΧ­[—h ;/΄·Μ· ©TŠ=zT†Γλ?;σL»SΎΩŽ Φ­ƒGεγH€Γ6lΨΈΈΈΏΠήJί"TUUΕ2™ s.Έΐ΄#θ₯ΝΦτV¦™JΑ3Ο[–. ύ΄ΎΎώι};I;|ύΠNθί\ύuΖm·έψωη[ϋΗbm'Nw6DX³FΨK—Β_Θκ]v‘ς€Ά?RB(/Ώ,˜3§ΰ†>ϊθϊΎ}ϋΩνγξο.΄ϊ7ΆmF>ηœτΙΝΈ+#Ψ²EΨσηKcαB#SWWπκš5 ΟΗγ±7Ǐ?ο?ω/ϋν7‘ ’bζΦ‘#·O’̟Σ¦…§uθΠνΗ .ZίΎ^βϋν„ώ ΐ₯KάtIι_φpξΑΡ§°LS©Η‹,^,_~i}^[š …ŸΩ}χέΏφΪku‘PΘN&“9σΟ‘P¨σI'eΦτξέφ|ΉΣg55πψγ,kl,=zσζΝΆKξο΄ϊΧRJJK‹/8θ Ί» ‚tΦ¬|ώΉL,Yb¬nh=g±”––|ΊbΕΚυ©TʐRΪ­]LΗGœuVγGεεmΝ—Ϊ«πμ³’vαΒπωd2™φE,ίch'τ― &NœXτΦ[o}‹7M³π₯ΊΊΊiόηc΅‡zΈ‡νT*΅Ν„ε\ΎpπWπ|k“p5ˆ™3ΙΌρ†qη ACυα‡%Ϊ₯χ΄ϊΧωTνν)%‘Hψœ+ΘάΫ5 XΌXπτΣαWGŽsτ›oΎ΅₯}JμΪ[ό;RJŠŠ o:΅ajKΛSkjΰ©§BΛV―ζ„d2ωžΉCoζh‡ο΄ϊwB!ώyυΥΫάϊτόGd,ˆ_XSSϋ'!νήΠNθί(,δέ©SΩ+x€q8 3gΒ+―˜χΠβ?ώ4ΡNάν„vBίΙ!NΣΉsxΙ…²’{εJψχΏC³jkΝ‰Δφqw;4ν½c'† Ζ+WΎ΅ω”Sd ¨#΄\l\»6zB}}ύΛν’»Ϊα;{ο½whΤ(Ρxν΅Θ±cΖ²²’K<ςˆ½³οzi‡vh‡ΦΑATPY)ρxθαξέ»Έ‡QΆC;l+΄«ξνΠν°Σ”)%¬Ί;fΧ~Ε»w–΅U’X‘Ι JφXOΝ§ΥΦΖΩ)³Ηi"e©Πΰ›l)%ν‹ΐΪαΪz;΄C;|£ „΅…X°_²ώX2ΥC—ή#Œ¬mΩϊόΔ2’+Ύ‘žD΄˜ejVΓ—Ψ΅Ÿ#“Υ~ [‚-‘ΆΜ4.Η(;ψΣΥΒhίtΩ{ΠήλΫ‘ΪαkΫN#6? koΫ‹ωϋά%ŒΨ()LCΘŒ¨nάR ­4φƒBDΊ–‰‚ˆ’QH†ϊΕΘΤFΘlU§—;η’J)‘™†΅Δ:NzK>a.₯€ζŽhD„£}dbkΚ¬˜ υž°66ώξŒD΄κΫα{ν½Ϊ‘ΎVΛ/‰°`ί›d¨ό †‡„YV-€V€LΩ2³qΐ\ΰE5Ά w±…tŒˆ©j¨ϋΩΈ¬„#ΜQO;]'νΖΙρI³·θ£ό EΦΏAa…!­΅€>Fjώ£ΆlH=W}}δ”²«u†Ω.ΨΫα» ν½·Ϊ‘Ύ6«n¨€ρ‹EξωsQvDH”Ρ~ S™a μΊ“YV$ŒΔzΫ@v2SLF6.‡Lƒ#Δ՝ΩRJμtΝ…±Γ6ΜkN˜ uSh/€T—ž: ">Β(5·Φά^0^Zν ΣΪα» ν½Ϊ‘ΎVΪ αƒ.˜Ε݈…θ1Θ¬‡ΜFš$?Ή›΄ΣΩΘM`§—Κτdz3$Χ!Σ[Ά₯Lμ FθvκC³σ!-Μ™K+cˆHΗ‘`ͺϋ@]s=J9†Γ~rΛ3“’8»Ί{Ξ=Ψ‹eεFPTnDEEQγγ•x¨IԘhΤ$jŒΖσS£ρŠ_cŒρˆΔ[Q’xα‚€€ΛΉμξμ5gwΥ™™Ω]ŽΔzσfΊ»Ί««gΆ?ύ<υΤSύχήΡhz-荦w |»Uc–‘Μ> LP”Σ„R1TΒVΒ*E‰TγΏΣχ#sΨΟ£Ψα…Δ ξŠ9N‘dΪΥ€”2ήr£wŸϋΊ5«γ‹ώμ%;ε€έυ*υŽJM%X₯’Ρ³”΄{υ²h4½…tFΣ+( „ŠYA0|(JΩ  $"•MIΐ:–•—}#%¦R& ήψœŠ7H’λΑn%έHχ”uνDBΦΰS_L πy8qo_³†œHΖώ©Ο’Γb7„?L‘#δ4_MτW£ΡτΘΘFTΒJΊcd…‰‘t›«δ”`%Jοξ9R91ͺϋρϊM*Άe·ƒ”™b,Q|δ™ψ§Fax»> aJΙ_ ,#+˜.#Jεž.ΎšQ‰§Ρμ€hAΧh4½‚ax%ESW([Šl$?Κ(”§EάΑζΖ3rΕU^00Gύ.N’εTΌμφdω䜠Jΰϋ •θς¦€Mλ'aGΉ~͟u:D]Κ΅ ω„aϊt>FΝW-荦ΧPUg΅§ωβ«ΑiαC˜• ‚ DΆ ])”ŒRυzΫyη€b””8κ6βQμ0*•χX%#άα¨κbF2εΨ΄έ7p”πχ TλΌ£]8”]τΕΪήΏ*Mο ]£Ρτ€*?α·*όΡZbKAΕQVΚ*Μτπ1RΒ¬ΚŽWρΠμΧ‡­C>_ϋ ND",AΒ² ₯ΊTŽMλ_«'#β`˜AςXε™/UQ£r―„Nž©ω £]£ΡτΒ0εΗΗ…ΣςMΪζGEτSw½ΩΧΒ–vy'ίΑyαΫKΕk/Τξ%œr΅Š7Ά!¨T”»”aWΒΣΙ=”CΫ}e ΣxaΣyα³^QξJ!p~WzΞ››„ιΩΧG£Ω–θΗQFΣλ(ιΐgΣφΗͺ~(”ς@d *Άε$Ι|μn^vŽL/o~\)σm„F%₯»]JT<ΌΦͺ˜4Π{Θ³€«ρνν·»00¬Z€D9Ι²Ι}Θ©GI 1ω™wΜΡγ‚G?†o_)fΛΡ‚ΡhΆ JJψlίέ•(z£’BΩH„PN<ΨJp’οΚψ΄Ψ'Z9v[jTMYΰΤ½r&†y£fE€»“ΈdŠ{Β‰#½γΚ.kω¬«LsΝW-θf»‘d΅τ[^[σψΒ±³,θΑΝ°¬Ξ–΅+ΘεH‰ΒP9YΗΜk₯+”γΨ**ΏY~EόY‘‡žkv΄ k4šνŽR6ςέχΑ(ϊ·Rfu'λƒYf΅‰α7©―„„βlWΨχ4Iτ€μ AΉiΊx₯p*©xγω˜υLΓ€’Σ|-Πώ(F³ΓR’”²”nl‰OŒlJόΤ3ΔƒQlΈJτ!ΊNv}dS6ΟΖχ₯ƒnΠ\Π0¨0MϊZ妉§ΏgΖ«Χ;RκϋœζkvΉk4š‚r}η†RͺΕ€E‘θsE†1Έβ΅¦%fΖνI‘u·Jξ‹’ Η‚Φέ-’• G"%υΆνΊίG²<φνΛ¦|ά4 Ή=Ϋ§Ρlo΄ k4šBΚΥ”ͺYΪύ…0Ξ  ~hcΆ(Iρ$Cάέw•P¨˜ΒispZ’―6ΫQlœh±κ@/ ^IΘvhŽΫρš5jσ'υ_aι 9Ν.ŒtF³έI&ρ*EΥΪ¦Ψa-u_‰i!HzΡ17HKœQ— β Ω&±7ΩΨλlβuqλ؍6N«ƒŒK€|ElιΠ4dΥΑΎE{‡¬ISξΨ-jjQΧμ’θ 8F³]Ιp΅e\U5›ςΖ"Σ4,‘o\Ί]mΧΐ™΅V"Ϋ%Ξz‡ψΚ8ρeqβ«γ$6&pZœ˜ƒ²RΉs¨+’ŸQ”Όk³η»Ρ1qΛώύ†±%ίΫΑΝΧhz m‘k4šνJ2œ¨ωβ“φ_¨Ρή3ƒBΈΦENFΈt[bΎΕ_Ρ/b$Φ$\7{άA:pηώ“d―—B·βgάvπιLrš]-θf»!₯°’ͺερΦ"σΒ™ΗYr?ϊf”)ζ ₯h—’γΠδ84I +ŒόaEoŐ²{!Ο\'…lsΞΤι Σ-κš] νrΧh4Ϋ…dΏΉ"(c²"όRϋυή1^ΛΣ¨P$ˆMHNqͺˆ)E›”49ŽC«γUŠΔƒwŸͺΔ@»€φΎ6ίъ΅ΞNoK‘τŒΕ„ωΧͺVνθ¨wΝ.…ΆΠ5Νv!iϋκϊΛλl ½»{1Κ „%ΐDΖ{H!ͺ­I!9mRS p’‚Ÿυΐ6@JEΩ›Qύ£•š§Ϋa‰ ¨«=!9Τ9τ{ΒΠ·@Νƒώ5k4š^'ΓΥ^Φφ\ΫδΆ§ΫώνŸδ·¬ αwƒα”T¨¨"ͺ$kfxhT˜·KI<Ω—ξΠΡ―^θ=υY*p$Lπl°©x?Βΐ'[ιχRžζ1αœrhβ°¦v½kv ΄ k4š^G)εΊΪγrΐ†lxΨ7Ζ7ή3ΔƒQb€ HQ‰³Ρ!Ύ8Nτƒ(Ν¦dџJ‰T 7+βk™§­τŒuΉeΫ3Λ+EΒ₯ŸD§ύΏYΓ†uΝWύ+Φh4½Jr˜šͺμ‹ Ρsβ?,oV›ˆ"αށ$¨¨Βِσχ£Δ—ΖρΎcά¨L΄ώw‡ΑIΞ²¦’³³AΗ lddKEΚ§–έ™άΑv©ύLA04ΒσΠO³’xϋ] ¦χΠΊF£ι5’vDYλΚΨΨ΅ς₯’€ix…ΐ·ΨΖά(QQ…]o4Nta”ψ’8Ξ&Sιμpιήο€’ξT?_\TLx€‰” )`©“ΗŠΟ΅τΔνΏέΏηΰΣ΄•ωͺ£]£ΡτIλ8¨bͺζσΦθÁ>ΦdŸ˜I+ZΪ σ?œ·’DίKŠy½+ζ) [ IΓ’4LσςΕ™ΕΤοη#Ze μnDœlΑ·©‹}ο}†ίkθ|0ZΠ5M―!₯΄@T|Ρω,6/2’ι]…Ϋ/—’V)i ;”ž± ο‹Qd2W¨,1ο~¬ΉJξ#QBΌ—‡ϊ‰>&ωhγ₯eˆ‡H©Tξ€.Iφ· ˆ&€½[άγ—Σ†,3uœζ+ŠtFΣ+$3Β·Gεπ:•ψ_±eψ}†‘κ6'mŽC(™8&,%q©θu Υ··»!κΠ­ w•H&ΏθKχ „[*Viι₯±RΌ;½¬tΪΨΗλωΣ5_I΄ k4šmN]ξEQ΅φœ΅Χ{†{Οδ¬ŒJ$’IcBŽCsΞΠ4ιΊΑρœ`τΩ!ΌKνςά½˜φόϋΩϋΧG6ω3ΣkξΨ ¨ΡlZΠ5Ν6%Υ.) έΪ?ςNδ_ώΙ~ΛΣίƒ*„'xhχ)BIλΌ]JJaθγvτy1Κn—†π¬r6Λ*ο”Ο½»e!eΌ2>ύΨυΗΎaθYΩ4_1΄ k4šmŠ”*GU­;{έ“Ύ=|γ½#Όˆ" KμU6ν_ΔX}^ζA‚xf8₯p„ΘŸ4F)Cΰ]‘`Δoš©z&ŒŠv/=΅ΤSŸΣY­ϊͺ)Η¬>f£αΥ’ωκ ]£Ρl3Rv%UΩ†‹6œmψŒλ}{ω0«LTB‘ψ2A죇ͺ{ IDATΡ’$VΪ8RRwKBΗ²‡Ÿ)……ΚHξ:ŠCξn¦γmMRm½ >H<~lλ±Ηk+]σUB ΊF£ΩfH) (nϋoΫπ–Ώ·ΌβŸδ/σ ς€φz›Ψ‡1b cΔ—ΗqB$’; EΛα>VήΪ‡X΅‘%؝ςΆwυΨ‚ŸΗ©}Ό…šη[)ϊ<1‰³}ιJ(bžΨχOl?ρvαΡ·IΝWύKΥh4Ϋ„΄u([Ύ2|OΙΛ±£ό>£Θΐ©wˆ-Ž}7J|Y§Ρs₯ά‘iΠ1LM˜ŠugYyE1‰£’Ιc(œ·½ΛρζJα(HψΚV₯ί‚6*ίSΊ$JpM3d2ύ` QΨŽ:~9α„φγ>3 $§ΩωΡ‚ΡhΆ Ιaj₯kWDfΗϊ›<†ε‰‚ω\˜ψ;1bD‰/Žγ48ΘΈD¨ŽΫOJΜSŸΣ’MGxωόŠRZΗXn‘‘—=ι–ϛǝœόνδ ΈK–‘2ιΰ°„;K[}lΕΟEχόφ%{F=ν~ΧμάhAΧh4[M2#œ?–U_FγΟωJΜ½ΌB °”΄48ψΞ©Ηx)ŠŠw$ŽI‘k₯ηληVHœbXwB€ε”Π:ΒBΩyRΏφdς{Ύm€¨‹ήώΜ΄Qί7…tΝ΍tF³U$ΕάJWωdέδOήZ’ΙLp-R•’D\Q~U3}noCΡYΘΣΗμ¦―;΅Œ!iΫέCέ±AVWLλ"*]7½θΊ―=eΡ§—ιU/˜^ ωΐ™γž5uΎwΝNŒtF³UH) !„?Ό>>|]PώΧο7˜BSŠVΗ‘MJΒ©qζΙώlΗkQžί„U'ΣΆz¦ΐoΙXs‰r3ΐym#,6L °~ §h«4Q€-‘dΈκ DΧgΊργ§ξO·NϊΙOΖo΄tjXΝNŠtF³U(₯,₯TΕΊ3Φ]!O,ΊΨ8κn+#>ΐΔ‘9χ|ΡθδFŸ»3«:(*_ 3μΞ&Κί §‡°mk|§υBΔ/=½ωτί™pF³σ ]£ΡlR*γΓPψBλΉΘ-ή‹ 2.έtIWtŒ+Ο–& h=ΤΗͺίυ!2ΨtΠDΆ₯ž7κœ<}π l D›€οKm z,DίWΪ1ΩΙUΏeΑtΩλαĝ"gΚ™‘3?ύ隝-θf‹ψθ³–*§Ώω‘΄ x~ڈ'\>aοXEtw“U—•°αx*Ρ‘0¦«Μo…ΖŽ»Λΰ…m‚΅Ρ‘lq˜ώmaΰKΝ­ŽαΘΤ±³γκ{jΙΫΒ^4ϋ…Ω{Φ\ƒuΝΞ€tF³ΩH)…›ΒΧ%ΖeŽTFښN€κ&‚jGdΉάS€„=ίrZ0½’ЁV\RJγT/*™š5od<9yΫ3—Ι3T.#7ΌmΈΛF»ƒoS‚β*> S²:JΙϊ(ΑU1ό›b©@Jχ₯\A—B3םΎιΜ_ψŠ<½z½5šž ]£ΡlR*–|Ω>2Z)ήS‚Ό"« π—VJBD 3+\Αγ"Σοβ–€}€Ιί+aνQEΔϊˆξEΎΠ.™nό|eΘqν+–|Λ?κ(9tAστgΏ3ι EN³£Ρ‚Ρh6‹5’l0νŒ ψN‡Ψ加ΒIfc«ϊ}§οGv—ΒΎΉΓΘπ(ZGY¬<©„5GΡ6ΐr£ζWz^k=_t}Wοtε€xK|ΕO:{Ÿ>w―°GGΎkv ZΠ5M‘Άbωο7Žj›X"†ZcΛ‘“f ’tϋ²ϋάΣNυ―Z0$δτ­oNvή~m‘@I„) φ²κ˜ΦO Έ›h™rά΄―Ži±Ο+ήtαΟέΗ΅φ₯w]τξ—ΖŒ8Ώͺ*¨³ΘivZΠ5M‘ ΙβςΕνΖΙΞq’wU!½’ΓυGΠ;ΉΐHϊήΪJΝοΫ­nϊΆ#ήυΎ$αƒΖq~֏ R?>@γP‘Α^"}L¦GΉcε•BΚδ”ͺ©σΟM„ qάνâßϊΦψ΅•ΩQhAΧh4=BF%Ÿ?έΧTζkB ―k]Cό%„UŽcε±r τQ§3Ε%·•=eθU!¬:'-ΓΫ"½λζν§’ύψξγ…ξ[μ ΔJ "₯‰€A, ˆϋ l ’CΩb‰•‡VVν}Θ?g΄™^=>]³ύΡ‚ΡhzĚ ΧX‘?†ž1€1+s}Z؏ Ί»ιΩ3˜ΡΩŸ)θιώμ€[ή³Κ¦φO-ΤάߊŒηŸy­7Σ»nΝƒÄύρδwOώaί‰}·σ·£ΡhAΧh4=@:’Εύ%κΕ“B‰.|Κ {ŒEΓ}UDχ°²ζοvb–¬χ䴦όŸ'¨½³™ώΆ’Ϊς9·―hwU§ƒƒ ͺCΞk9οUΣVΊfϋ’]³E8ŽΓμΩ³½εεες‘‡²ΗAΗ£ΗγξŠ|yΜ—VΛΣ-ο)Ζg&† $Œ,h9£ˆϊ_υΑ ŠΌtǐΣيw”Β1@4KϊΎΠΞΰΏ6QΊ0‚Œž?½§’½5ΉλVbYΕ^Sζ,œΪΎί’ζλŽtΝ3tθPΊuλφM$—†qPi)qΗ±—ΪΆχu―7ψJssΛG§žzκ¦ϋοΏί6MSΪΆeY;ϊ΄5›‰t€±ΈtρI",Da@φΠ³”°g’™,FͺXΠp~λ\‚γΛ±Φ3ΝΊφN)`SCγ„BΕε SϋTˆ~/Άb5Ψ(Gm3k~sχ‹c·_ΊπϋΊ/]³=Ρ‚Ω&$ ΎύοχάsΟ(ΣδGΓ†qΒώϋ;C†@Cƒ+V(VΡPΘ»’Ύή~9(~Ν0ΔΒΓŸUχ·Ώύέ–RJ―Χ»£›’Ιΐq$±/ΦRObuUS΅yO+…n)+½³΅.²Jα…ϊΣƒ¬ωq1Ρ# ¦ΗΰθΒ}ŸΚ§Ά)Ž’xy”/4SσJ eK"X ΆΧMŽχ­qέKCΪN?ηπϊαΛZΤ5Ϋ -θš^!ceeeαpψΌšσœ}χM έcπxά šυυΘU«+Wb¬[Ηg--ζ|Ÿ―θ•––ΦχΟ8γ΄wί}oT”R[ψΫιH>\Ρφ£ΦΊ Δζy›0ΩNWIbr…<Σ=Ÿ½N(XωΣ֟ΐ± ωΞ;œΏδ‹ͺ—©„0>c@puŒΟ"T,k§μσ0}–DnŒβmN Βa;(‘ΖFg«?΅JHwͺW΄V±΄~Ϊ )·όσ›-Ϋς;Ρh ‘]³]ˆΕbx<fΞ<ΤϊλoœΨηOžΜ>“&)JJΐq\qPI™4lB!ΑκՊ•+…lh𨫋ΏΟ+**zwΚ”ΙŸ<ώψ6 ΗΑησνφνͺ,zΎ±:>Ιχžπ‹ΪΤέB*…γ€uCίMΝ(»πώΩχΞŸkε‚$ZkPwN1u§­4PΆJsΟGΟ²»υXψ;₯…u·©Œ:ΡρΩ} I~@!Tκsrƒ!P‘ψ_?š°Η\=6]³=Π‚ΩaΨΆΝ±ΗmΌπΒK3,ΛΉhχέεμύφSVΏ~`ΫŸKΰ77ΓΊuB\‰QWΗ² ŒOόώβWZ[[άtΣo^tΡ%qΣ4₯γ8ΪΒί €T,\Ρϊ+s u% C%/|z˜YR(—’Ÿ½ Q/σΊά!ΰœ{¬ξέΪX’¦©^Ύ<©„ΊcЉ—ˆΛŽ„/τΠjΟί­εŸοXλέvt}uΐ6>i:bΡ±S^…~ΠΝ6BΒ4; Žγpύ5.Ίθβέc±πEƒΛοx ΑαΓU—ŸK¦ΰ+νν°~=¬^-δΪ΅ήΊeΛb‹‚ΑβΧjjϊ½1rδΘO?ύŒ-„Žγθ>ό$Q|9―₯Ίq‚Ήά°ŒβԝBΡE?wDQtS %ΏkF)Ρεd,έυCξΧv“Ύ $‘&υϊYud)λg‘π ˆΚΒyά3>o‘υž±.+ P©.ž>A΅%–Nxyγ”Ώδ`νzΧτ*ZΠ5;-RJ€” T; j:½’"ώύ)S0v¬2 £λϋhW€?59V$›6!W¬\ΙϊuλŒ†α}Ή΅5ςζΜ™‡-¨¬¬l{θ‘Ψ‰DΒBH₯Τ./όR*>ΉψΛ_Ιk+―Δ# !:ΌΙέυk;%U—6Rτο(ΨΩAr[hΦ“‡H’} Ι¦ ~ΦPΒ†ΙAZϋHψ Χ}2ϊΤ•Β‘²³hCg|F;URΤΣ??!:~X©ΟB ”ΣΐXάτ»Ž˜τSΣ4ΆYχh4 €eY˜¦I"‘Hoσz½H)I$$γM ΫͺjΝNŠtΝW†”Λwΐ€₯³ƒΑψγΖ±Χ>ϋ(«¨Θ½‡n©ΘwΤΡρYχCCƒΈWWg„V­rV |Ωο/žΧςξΙ'Ÿάxϋν·G ΓΔγρΗρϋύ[ΩΪ‡ŒK>νiΡd,J”Ι9EΨ·W)P’€k:―‚#@΅K*_+UiOηm‡ΝŸ]-w@%JuΌΗ{ΌΟϋ,g9ν΄%ŠέiξυΌ$Xx<˜fq1Αέw§ΟώϋS2m‡‚ι!a€m*lά§Hφ=₯0…sπ‡β6Ε ΤΗ¨\ΪBεΝτY܊§95¬θτKW_Άΐτuυžc!‡z¨wΑ‚~ΏŸD"1^)5,‰Œ5M³Ϊ4Νbΐ²mΫ, ΥYoΆΗγ±₯”ρD"Ρ,-//_‹Ε>οΫ·ολννν«ίx㍖αΓ‡KΓ0Rξςͺ»:ZΠ5_YRΏΫn»yλλλχM$Ϊ~˜DθΟΎ³β;Ώ2x•••Βαπ™ρxόϋ@M¦p{<ƌΓQGΕa‡ΖΎϋξ‹ΗγAΡ©ΉmN{>R²~ύz^~ωež~ϊiζΝ›Η† ²`„°…―7ξ½χή―.\Έ0ϋvnτ·£Ω*R7·δ λqή4M<χFΗS›ε”Rι •R² fΟ>œ@ `†α΅mΫkY–WJιUJz•RήΆΆvοόω³"‘ˆAύθυz½%%%~  …~TVζπoΐˆΫτ2l6™{†--Θ•+1V­rγFkνƍjΎγX―y<Φ‚™3ϋμ‘GkKυ…φ¦…_F™ρ!ήΣNϋι7g{Κ½>χτ²"~„Ÿζ[*°š…£Γστ΅η'ήήβ™[ofήνwβ(']ߐ!C8χάs9ηœs¨ͺͺJ―Ο―|b–O€2Ό;,΄½±±‘»οΎ›;ξΈƒ•+W¦ΧLg:³™_'AΒ·pKέZ֎JοcŒ7ŽσΞ;9sζ  žΗΆjGΎς©γ,Z΄ˆΫn»‡~˜P(+{mΤ4ΝΏ”––ή΄iΣ¦:ΣΤ sv6΄ οŒjI ˜Χλ z<ΏΗcωMΣ Z–0 Γο8N°nπ–iβ΅,ΓλσY~―Χ²Ό^Σςω,#iυ:NάkšψM“Μw―aΰ7 ΌB`x½,‹τ{Ζg™ϊ{7 WΈ, L#U.ΉŒa(in9Λrί Γ4;zζBO•Ι|Ο]—r•οΜd ΎΠkΧ Ήjƚ5Τ54xίχωJηΥΧΧΏuΣMΏ]xΙ%?omz]0žα™‘»³ϋ’1χ<ΘCžΉœεςΒ§iψU‰j”υεrΟ`¦€δ?ϊώνo‰‡Γ€δuόρΗsν΅Χ²Ϋn»ΉΗοΖ’ΞΆΝηάν[RNJ+Έκͺ«xδ‘GΑi<Μb3˜‘%κ«XΕS΅Oqωε—σέο~ŸΟ—{G·#· ΐ’%KΈζškxτΡGqœτƒVά0Œ{'L˜πΣwί}·E[ξ;ϊ[ΨˆΕb<ωδ“ΖΉηž;8ξkκπ²²ΨŒ!CΔΰ#`Θ…ίοŽν.δr֏_-2#υ…€pΈch^]Ήqυjω‰RžΧ,ΛzkζΜCίz챡I)Ι‘o€ίΖβωm9Χn<Κ|.šJ–ΟBΟ}ο(¬ˆξηaΓ5e΄νλA9€Γ€ΔΌ₯ΎžίŸ~:Λή~;½Ϋ‘GΙm·έΖΠ‘CέΓtσ£,δ:Οόœ+\›+<[RΗκΥ«ωя~ΔΏώυ―τ~ƒΔ\ζRDΆ°9μφΓ{ΖX Σΐ4ΝNτ‘ΉεκλλΉςΚ+ΉοΎϋΡσBˆυJ©9±XμeΨiΗ’oγ»0Žγ ”2.Έΰήxcή€eΛ–WʞٿΏη¨ͺͺΨΰQ£„5l˜’EE)±-ξ»Ή‚‰€#υ/ΎPW―fi,Ζ|₯˜'σQ"ϊβoνίwƞΟHSxEL`^ή€qWkzΌZ>+=]_AKd™ αŒ k/(bmhΏ>αx6}ω%EEEάsΟ=œx≝¬ΤBŸά}Ί²D·GJ){μ1Ξ:λ¬t@ZeœΝΩτ­¬ζ;oΞ‘€ –ΗΒ²¬t@‘X€ՎBu|ϊι§}τΡι.!DΤ4Ν+Ξ;οΌ?άvΫmR[νΫ}ΕΏ†€°*₯˜7οuγΫί>ΉΚqμ1±Xδp'2{Π cΤπα?b„2JJς»¬5_mr»βqhj‚•+ ‘2†°χ”˜·|OΚdnΫήuΌχή{{챬Y³Ο¨‘œtΫ½άΌχ,Ÿ―Χ‹ΗγΑ4ΝN~;K; •ijjβτΣOη™gžI«M)u–Οηϋg,C³ύΠ·fM'‰†aπη?ίΞuΧ]_fΫ‰Q--Ν³JJŒ#ϊφ΅G©ͺ†W²Όά_Kzή΄Πο`ςj™ίIκ³HFϋKΩρƒm 6Δ’ŠΦ6hk…h$^bqλΦϋ 5›”5σ‹ψΟΩ‡}άγεΈί310Έ‘Ήϋ(--εΑδΘ#Μ8―ΞBΡΡ¦όλSΫRϋηΫ§ΠϋŽͺΰωηŸη”SN‘©© €SO=•λ»Ž`0H ΐλυv²ΦwΆvZίΠΠΐ‘GΙ‚ Ru­‡„B‘z|ϋφAί‚5=&cš&RJ>όp‘1sζ,οΐ†ώωYBΨG dŽ>ά©6L}ϋΊnj${ω*²9βš*―”;IM"αΎlΫ}F uϋΙ[š!‘, $86H”•@ίrχUV Ε~(+ƒ>•P]}Kά—Ολ;…Ά04…Ό|£vBΊ_4ur"ωžΚͺ–ŠP— ’’Λρ=†yϋΫλ¨γ8Ž£Χέ|φΩgsηwμ+ΞG‘ν=u5οŒu(₯ψαȟόg”RσΨc1vμX‚Α`'Qοξ}+ΜsžωJΦ_wϊAB<α(΄΄Cc34΄Υoφ<ŒšκΌ.WESš*q(Ύ΅™?΄"Zƒgx†σcΐν'ο½χ5jTA r[“)8›6mbρβΕ,^Ό˜E‹ΡήήΈγΩGŞ{ξΙθΡ£0`@ή>μή:ΏεΛ—3i€΄πέtΣMœqΖY–zWη“j£Rξxω΅kΧΤΤ”φ°ω|>ϊυλGeeeϊ»μ­Άελf8ε”Sxψα‡0 ca ˜ΦΦΦΦ}뽇Ύ²šν†mΫ(₯0M“Ι“'Τ.]Ίόΰp8|ψ!ž}ϋχ1B΅΅ ΊbŸ)΄RΊ―”‹A4κΎΗb¨¦^ννΠΖbnΩ€Κ‚PΪJ‚0°ϊU@E)”ψ‘O)””CE T»/ ιš&ω pΦIŠkR0σYέ™δθjφϊ”ζˆŒ‚ΙχΤƒŽΚ\ΏuΈ’μ>œDγeήΨ š`]=¬ ΖΎx+ƒ4ϋ” ›Φ4yΠΜΙL Ξ`¦4αώ³.瑇o`όψρΌφΪk”””dΫζΊs»ά`ωσηsΝ5Χπβ‹/ά§+&OžΜUW]ΕQG•>ΧΖΆ΄J)ΪΪΪ8δCxο½χ8묳Έωζ›Σ}κΉVΊRŠΦΦVξ½χ^ώψΗ?²|ωςn-πΜs5k_|1³fΝΚkύoi;ςC)ΕέwίΝΉηž €a›,˚‡WθY{-θšνNΚu/„ΰπΓ/{ϋν·'‡Γα‰RΚi>ŸoχH$2’œ$5"ύŸ+rΥ0~7ΨmLήF †έCίR7³IrΏάϋRfPX¦ Η\²φΙίΜγe.gœ~+Ω–u€¬σ„ Ρ4·Α¦fXΏ κ6ΒΊM°‘¬ {pώFΜ(ΖΎ£/τ7 ZηΉ³”!w_y%ήv3gΞδ駟ΞLΤmŸm!qθς:)EKK §Ÿ~:O=υTχλ ϋοΏ??ό0Μ:―mَx<ΞqΗ—*;οΌσΈυΦ[1M“TςΫΆωΝo~ΓuΧ]—™ i«¨­­εoϋtPϊ\·€ωΚdξΪk―1{φlb±BˆFΓ0¦Δb1-κ½€tΝ6'EoΫ6ΗΌχΩgŸέΗησœH$±m{ Pƒ›SJ8Σ€‘ΰ€I0m μ=† „κ€xΩΙ‚’π·§’ΌΉδŠf¨ζ=J$-ε ‹»«sο:ς zΘς” ol„P+΄DαΐUgsόκΛpΌ6Ξ9%Δ~UŽγΩi^•Β"=·ψγ·ήΚ_Ύ”bϊτιΌψβ‹ι·ž[εsέvηr>γŒ3xΰ \ΡmΓa‡ΖO°tՎ|ΡπΉΗxυΥW™1cFjΖaΓ†νρΩgŸmΤΑrΫ-θšΝ&‹aYJ)xΰγ’K.ρ{<ž}f³•R#₯”Ε™ϋ\ΛΩcΑΔέα ©0s?=jϊ€!ά ―Bε,b† :SΈΊΛάύ{R†«˜ŒjΙ\—Q―ΚYŸϋ9Ÿ—½SΩ^¨C)Χ垰!‡Φ044»"ΎΆΦ7ΈŸ›Zάm‘Δl‹γVώŒCΧΟΑΑ†€ φέ"Ϊ^ŽSŒΫ.ΐ‘’e|ΐχ>€αΓ‡σξ»ο¦'BςŠBO„ PY€΅kΧ2eΚΦ­[—ηΫμ!>Ÿ±cΗ2aΒLyy9–e‹Εhlldωςε|πΑ|φΩg$ ό~?oΏύ6{ο½wΦqΆ¦™ŸC‘S§NεσΟ?Η0 ώοώŸόηY©e·Σ4ρϋύ 6Œͺͺ*Ό^/‰D‚ζζfφίώπ‡?d΅msΪΡ•ΰάύ̝;7uσO>ωδιχή{―­“Ρl¦€θ IDAT;Δ°aΓ†Πυ«―Ύf§Ζ@j4)’s’sηΞ5^yε•uuu3Ό^ο·Η™(₯¬Ξ컀iAU8h ̞M„•ΰ5άώη¬Βdksz9Η­ δ΅\σν_π˜[XGπwΡνΥߝΥέΝΉζu(εΎlΗυpΤ΅S’Ύ± κ› ±Ε]ίvϋΪc ˆ;&3Ώ<Ÿ#λ.θθχ· ~¦_–Ρ62ΞΉΐΪεΛρz½ΜŸ?Ÿ‰'vΤί…+7s{Φ9wΡ_­”bύϊυLš4i³Δάησ1wξ\fϞΞΓΠ]xja΄··σΘ#pε•W2vμΨ­nG&©2~ψ!S¦LΑΆνNeΆ„>}ϊpΪi§qΘ!‡²G1δ9ΗΎ}ϋ2yςδNηΈ-β”R|χ»ίεώϋοΐ4Νί¬[·ξŠκκκ-nŸ&1p kN;Ÿ}&δG‰Ζ†οΣ†α°ΆΆvΑ‚ο΄ωύ~ρηk@"‘ΐ²,ž~ϊicΜ9Υ¦iΞhjjϊΆa+₯ŠUΦŽΠ§&μGΟ€c†ώ}ΑKΚ†,ΡI“t £’›σXΚYVfΦzjή#_ Z–ʦʐ§\jUj}ξnΉO½X‡Rξ:)]Q' IFΊ·Έ―†fΧB΅Bk;΄E\χ|4ᖏΫ0 y2g.ύ-ε‘Έap‚‡xˆkΉpƒΊξΊλδ5νώΎ±9Φm )%sζΜαψG·Ηwr—nΈ>}ϊδ΅2» ΊΛwEEEtΠAyϋŒ7§ωφ•Rςƒό€;ξΈ£“€φΓ08ꨣ8οΌσΗθ.¨/΅]Jɘ1c6lXήνέYαέulΪ΄‰½χή› 6 „°άŊ›τD/Ϋ1xpΩKsζ„fψ|.G!άΧκΥ°p!v]ΑƍΡkkkŸΎΰ‚ κ.½τ2©”ΪιηuΦδ'5ς™gži=υΤS»···[Jy:P›Ϋ―]^ϋއoŽž}‚ ϊ’λ&Ξgъ¬€E·Π\ξε:ΠΨA?ψ­œ}s,αΜ:­ύΜcwZύήΫ±Ž”•žŠv%\Αn‹ΈήάζΎBmΠ·…‘=βZσ‘XZO Ϋs ¦¬Γ1Λ/azβPi€ΈΈ˜χίŸ‘#Gv+vω"₯{²^)73YΏ~ύΊ΅b-ΛβΪk―eάΈqέΕ©:Rδε¬―H)Ηaϊτι”––fν³%νΛwό+V0yςdB‘EΈξbxδ?°p±;t²+™;v,7άpC·υ:?p‡σ|πΑιεξΪ‘―ŽBυJ)Ήωζ›Ήμ²Λd0Ό»ΉΉω|Λ²τυm€(* άyζ™‘³«ͺ0Ίz VʝE+‚O>|ό1λ7l4MλΑY³θΙ'ŸŒΪeΏ’ ¦©ͺͺ‡O‹Εbη™eLF …9Ηΐ‰³`·A ’"Ρ'M–»7©0ΉF¦Κ³ΎΣΎ;ͺ TŸES¬œώύφί{{#kθWξq:‰hΞ!sλΟ,—ι.9ε{£ŽTΑ΄¨;Β‰ΉΒέN |ΈCΠΫ£IQΊnψh―ϋ8…ΟηγΞ;ο€ͺͺͺΗ=νPJ1qβD °ΕνΘέ–[Η¬Y³xι₯—0„β©ΫαˆIΙc >X°~ώυ<¬ZίaŒ₯θίΏ?ίϊΦ·8πΐ)//O?όtu™~ΰRTT΄Uν(τ °aΓFŽI{{;¦i.Ϋc=¦~ςΙ'hΆ1jΤn?ΨoΏe· ’Ψ\-VʝήΡΆασΟαγEψ‹/Œ—mΫ|°ΊΊίσ+V¬hΤύςΫ—ΤMnςδΙ₯Ÿ~ϊι ΆmŸ/₯œ˜iy&μίωœp˜ΫΗM*ϋ˜ΘvΧΦ‡ΛxτyΕ43€šŽΉnς[ιcfάp²κ [|2·mχ:D)Τό…‰@α˜|θQ†T~Θώ{α†Ο₯ wyΚBΞu…§Ξ ςŸg―Φ‘:^Žμˆ~'ά€ΉHά΅ά#I!Η:¬τ”¨Η’ύλσΊΗΎε–[ΈπΒ 1 £G–h!«;Ρ¨――§ώ] ϊυΧ_ΟΈqγzμRίΗα€Hύmi;RΛωΔοφΫoη?ψBΐOƒ[/’#7@ζwž:΄>[ xώρ4,]}Ξ¦i2qβDΎωΝo2qβΔΌψΤ»eYtΠAψύώ΅£».…άλ"₯dΦ¬YΌόςΛ”””ΈqγΖ7ό~χ_Σ%Φ_¬\8x0$»L6 !ά>9Γ€Ρ£aτhTΚ9Jη(Γψ’‹.ςπι§‚κjkaK‹υTeeΕCoΌρζ‘C‡JwΝϋCt&lR[[[³iΣ¦sMΣ–λŠ—I«έq -Η_O†οηŠx")ψΆ η\ —Ί7τωση3uκΤdΩ–hαs)œε¬«mΛ–-cΚ”)477wΪηΠCεΗ?ώqΊ«©+ΧvO,θΜe₯ϋν·Y=V[܎|u,Z΄ˆ±cΗ"₯dϊDxρ.°Τ–瘰±ώρΈιnXSŸ½yΠ Aœxβ‰ός—ΏΜr·χ΄…Κδ{Έι¦›ΈβŠ+€β·‘Hδ =|mλ1nΈαϊυMMΎM½™΄'u“’MλΉχή0gŽ]sΥUœ|ᅍΟν³Οb_\δL›ζ‰”–š³,σšššηž{Ž%₯μφG΄«γ8΅΅΅^Σ4ΏWWW«O>ω€Ωqœ_’œϋξ Οώ’ο‚σ.|π Μ9J-7΄‘*2¬<:¬ΏΤ:‘QFxϊιφA¦^†R5{&u5w=YΛϊζŒύΆ€ŽT‘½.]&sή¬Γ‚8•α wΊ‘1£F0λψΛΉλ_E$r nΩ”ΰfžsκΌDφΉ‹άsΚx8ΙάG ?Ύ>žΌ-’ΩΆ₯`};Œ8ž|ώπ7θwΜ[δv‘y,πz`Ε&},όοcΈα>s"΄'άΙ_j*a`_7O}ŠΤ bΉ–xW―ΜςΉλ»ΪδΘ‘ΌφΪk„G)•9)H'ρN•Ιά–[oζΉd–•R²Ο>ϋPQQ±ΝΪ‘― @cccΊnΜ­όΞ…$τ+‚‹Ž‡/Ÿω4ΏχέΰfY¬«ϋ’›oΎ™’’,ΛβΐδΥW_M?uՎBΧ3ί5I]Λ l`fΫ`\xαΕ-6$ΦG£Θν­›©›‹aΐΐπoΰΏδΉοΟξόώόσΧ―)-½+qΤQ¦3hρe0hύ9 ξ»Χ^{Η顬I;‰D₯•••΅†aάišf{]]]ΜqœΗΩ}τPψλ ΠΊ `ώ½0{brΨΧ5ΛΐUŸ‘γα>]&η»W TpξTZΦ‰Jή9|ΒΰœσΎΗΚφoρβ{ξξ›]Gζ*•gΫ =­Γ?™ngJ˜;Žοή¨Jό~ζœύ#ξ{² Η £?2ž6²Ο!ν9Θ(’r‰gž‹Κ(—v.(0{2η”γ™}ό΅|ω.y"HSn΄σfΤ±dŒώ†›P oάy%μ·GΗοηΕ0ω$7ϊ`ψ@ψλ5°η7~i—ΐΐڎ‘ϊϊϊτυƒl1νΈΦͺGθ™‚ͺ²~ϋŽ;– 60mΪ΄¬}?ώψcΣϋδ sζ±s]Ε…ή}>3gΞ€oίΎΞkkΪQΘk°rεΚτrίͺ!Οbk~WΈΏ­Θ KsΖ7α†K _₯δΝ7ίdƌx<ϊφνΛυΧ_Ÿ~ΠΘ|εΆ·ΠuΙlσΊuλΛ»νΆΫšX,¦­Ά†išFyyΕ’Ά6±S\Π΄•’ ΈφΩGg₯j/½Τ>ο§? οΈγ>iŸ;ΧR&Xν••ή—ŠŠ‚§:€V)ΥeΜΎR ΫΆ { !œ†††/₯”ηϊ}O9VΌΞ{°ψχ°8ηΛ½|Λδ,§Δ1λ?½έ@ψχΘY'²¬b€bί)>ώ\}Ι£σM€λ:2ΞQ>ο­kGκP ‚γ;iŸ‹¬BnRΪΞ§Θγα€3Ξ偛ιŒσ™utœ`Η9e^—ΤΝYeΝ²Π3ΧΚA(Ε#†rξ—ΣΌ€»žNt|Ψλ‹-εφ™mOΗaȐ!ΥλΦ­»Ιqœο΄σʊαϊKΰ¬cΑλρ—ΪρǜEζϊŒΏΒΜ²…ώp;3χX₯ί€’ύ@Ɏ›XΪPiΑƒδM ψοKo0΄ψyF*pήΫ»=©PΑ)P~LF‹pΫ(Dς!&ωΰ’y,1%ωλδάΐΞ¨#ηŽΩι†šρ9}:.uΑ)PώM”’ι»kΗχαxSs+OόύvΞ:.Œp:Χ¦ο/r—ƒ~ψσnT{ͺ|ά†‹ηfŒwF»Ϋ.Λ~H’&ν#ϊ'OΣ ίώ <ϊ‚ϋ;ΈσΞ;9ϋμ³³.}ξ =s}!—m!!,dΥͺC)wŠM›6 …ˆΕbιi|-ΛΒησQZZJUU}ϊτIgsκΨ–νPJρΐ0wξ\”R{Z’σ»άeHύ( κκ\k~ιRγέ–ρHUUΥŸ}ΆxYII)½ωΓrΣ4ξ"™ΨΕcΑχO…kνB/τĜ΅=Χ$ΝٝŸΜsΛδ­C θΒ ’2σ«fκ|CR–Ε_ώπ[Ξ:ΆKμνθIJ ͺΞί°΄"³χ†–aIeZξ†Α#=ΗA{ΌIΏ’<—(]GαmΟl½ θϋ]”oˆ[ofύιΗχˆqΰή?έΒ™ί 0³λP.»nΎΗ]opΝχ`ΤΰŽkjpΛƒπΖ‡ξ²Ο οb7.Χ²σ{αΘι€#ύ?YϋœδZm555¬Z΅*=ej!K=_vϊšΨΦέqv…:ΐNVWW‡eΒ{Βή΅ξ…ίfΏ«nΆmN XΧ \~ΉΓ³3rδH|πA¦L™’ΥΆ5kΦ°Η{ΠΦΦ†"|ωε—χ½ζškΒ»r„ϋΜKfΈϊƒ½~Ο Γ˜νσψά;½RFκKAΒNΘΈ_”p7tμ½Ούϊ…ψ杠΄΄4X^ήϊεάΉͺ’»vzΠ†kσ +ŸC¦Θ77Γ₯‚?6λΦ­3ώœ3ηΤΧo»νΆ.žΧλ-vηΟIk€q£ΰο7Γύ™ρtLώ'ξN.Τd[3ŸͺEr]–«Ž?ΌΧa €~’T<Ϋ"$Υ‡2Ž“-4―Ύω6Υ泌Ό΄£GuxaΐΥμ΄ ηΊΪsI ©ήYψ4>Κδέ;ΧΑgοΌγ­(ΞƝέ=εφ{ιpι‚ ˆŠ ’ ’h4V,[μΡK5jή_bβ›’)Ζ^σ£FΕFbD ‚PŠH‘ήnΏηœέωύ1[fχμΉ\:(Οηs>»gvfžyfgŸ2σΜ3z›ά²ήB L¨Ν€]nr1zΒο!}a_ŸΙπψΓα’ΣjC–ϊGKΰ€Sƒ6? .<;ΐυρpλ#A3.<Ž;4Τ$„^UΊcΐOο€?>ͺž_rΙ%άύ!F^Θβmim½΅Μμ›‚ΓqΈβ ξΏ~~8ξψ1‘wΉuΖUXQ.d‘o )AšπŸαάλa™λpiY7ί|37ήx#–eqμ±ΗϊGΔ&“Ι«ςM΅Ξ‡]=΄Σ’UKžO§Š†ϊ]¦[_Σ;VλμζlσΧ6œ»ς©5oYfλΆ‘ €λϋiς™gξ{{μΨڑ߈3ηλ»X€…{€TB>›…₯KaΖ Q·`5£©‰G{φμωΒ•W^±~άΈ«œMΫ2€ΛŒ3žΝεrC,ΏnΎRΪ!&! Rӈυ—+€ϋ7’^kr+TFz›Œ£β(Τ•gϊEς¬εε«Wσώ›wqςα2―M۝ŽΦΰ(>QuR»&B‚H§];ιDΈυ2η 6|ω8ΓφΣϊ$jΥxʈχ™>rBνrDρP5 €ƒΧš€>―=o•γ«e˘9ι>FξΦcΒργΰΥwΤίΚRψΛuΚΧ™φu…_«ϋαχγ‚>σ›€ε/)‚οl§’ie₯0[=μ±Η;v¬ίŸAω‚pcΧΈ: Ρ]ΗSO=ΕΩgŸ ΐΐ>0σ90šƒχ°UΖ„ ₯o!½Ύ ΈόVxϊ%O τξέ›ωση`šζ ‹-:΅ΊΊšo8aΘ•ƒ+WΦ,₯΄¨xh΄c$.’ρΊ‘ώyΙeVohΨpj}cέ䦡|~πϋίί–YΈ°vAS“Ζ4΅¨π¦­ Ο"–=zΐ©§Κk―Ν~ΣMΩ‡ΗŽ»fαΒkμcŽ1³:σS)λΆΚΚΚύ9䐀”’l6KuuuW!Δ'οΏώ\.7΄Όώvdώ ΏΊξKσ¬ΘΈ—˜§&hω‰ζ—‘2šζ·Ι8H@ўn?ˆpFα₯©Ÿ$²WŠΛΛY_SδΏƒFGkqBJ;D‡Η€|*D˜‘‰€ώš υ”Ί'Ώ{1ίu%ΓS,όhuξ8fŠΤΪV΄/ΎΒζ2h“Χ^ίI=ͺ«iϋ³Ά€3Ύ€7¦xF€’€ϋ…²Ά?šs!`τΘψ~Υϋ±¦–¬ς: Dόλ^θΦI=Ώΰ‚ xζ™g‚n4ύκ/ΩDzΎBqœέqL˜0sΟ=Pϋϋ_Ύ_ζ[{\‰€Ο‹θu3pθΰq‡ŠόγΠ<nΎ,SϊΒX›J₯.ιΨ±cZvMΨχβ}έΗT?ΩLݚʊ‘VΐJ¨Ÿ™00,i LCψލ €+{d¨“V²]ϋςφοt¨θψΟ.ΫΏΈ₯C‰ ―B)ωdέΊoΘΦ] λ=Σ„²ή7γ¨a™UVΒa‡IλςΛeοnΘύδškΦΟ<ꨩͣG ™J%κ—.]ΊXJΉOE)Ότ¬ΞŠͺ&|9ͺΫ·EδcΡ>&©§Ή ώGΣήΝΒ‘μf[ ‰χρ MΩσ˜šή&mcWŒφΏέιh £ ’Υ!νΡαΡ*₯¦δJa0wήWτξΤ}·^B:…–!TFο7£Rέ}%& A½ΏξUx Ϋq8dΨήΨ€$<ψ¬Šϊj«Ω‘ƒƒuN€²Τ_ž΄§¬†ξ«5Ž˜{Ԛϋ¬Ή!I… Z2γYθP₯όEΞ:λ,ž|ςΙX§xNό>ζ–ά’e’εwEΟ>ϋ,§vΉ\Ž6ε0σy¨. Ο­6η‰ΝΏ‰8Όο%Z‡`9pΛEΠ8 ώ|½ςΪ444¬(//ΈW―^»tD™œ“γ…)ϝΎΧξΖ¬ΡTΫ‘SεYΙ”a$’ήΟJ¨k2i’Hš$R‰”ι>˜–ZJχ8¨ίηΎς¨~ΕιβΧΤ―Y:ΰ’~έ£γΝ ›ΝΥΥ]f­Z΅OQ‘@Κb.€βm hiIΖkCέ–·AςS¦ΐψρΰ8§*ϊڷể…^υšΖλMkyιyižFΡ’}z:"mΡΙρΗ‹.ϊΟΛ#‘ήDΒΗν?s/τΒ{ zTW³h₯š%yρ­€ό½{«€0žR$Q‡°|2/Θ3t ΦžPηi„ΰΡ‹Wh΄h›„9/Α€=”ΰ;v,W^ye(F„.μΌϋ­;λω •ΥΛμ 8ΗαškaτθΡ8ŽCžπΕΛΠ.…όq΄΅ΖUL™-Εωi:ΩB€)aάP?M-;£‘‘αΒ/Ώό²Γ. Οκp⏼fC‡vmo-«LY‰„•TΏD ‘2H¦ Wˆ$΄ϋ€'ΨS*Ώi „AΈσΨ°i JŠ•6ΞηΟξpPœP7LΣt²ΩάΧ«V‰†mκŸ €bk-Pγ^·Ά€7ΠFnΏχ“.ξ,› RΒΪ΅π›ίΐΔ‰*νœ“U8ΕσC£IDΚω–b„iz–—Ο¨eπίϋ(ύι2yχ"’Ά©8Q΄Ÿ+ԁ>₯ξαO³{yf}>Ύ=u}‡ΠΡDρΎ‚Mώ:— HWΕ€{ΫS8젺ЌΗυrΒ+ΰ)(ω€Š T0wJ'šWD/—TΟ Λ£„OΐΊ *ξl1ςŠΟ^XπC¨Xνθ(<3Lkˆ”jίϊ¬yΚ)NoKU>|.₯ξ½χ^ϊυλΗ’%K I{γ֘γόTβ¦° ΥΉ³αRςυΧ_3`ΐξΈγΞ>>~Ϊ¦‚±“-WϊϋŒΙ»Ω8tt2@‘'π$$όζ2X=«8@IΰqΓ0fwθΠ‘ΓΖΞΈίΐvΚO(νΣ}lΧ―Ϊ–΅ωgIIͺ΄¬2©,nW'S&‰΄ι lSύΧ…ΈfΑ'4αŸHΈ‚έε?^:Ψ9‰™0H§“ιŠ²·»ŸΫyίhΔTԁ‡zΘΒ΅kEMΜΈήϊΚ¦λšQσΦπ‚xοv©ύΌ|ξoSQxο=ΈσNhj‚6πρψΫΟ5‡7½=Z_@‘}dž{χΝ« Ά¨φμη‘lŽD€Yΰι«phQ°|i™|ρΡdϊvίΑt΄‡‘F¦z‡G‡χOFzLJ_.^Bvν$φθ‚oρΖA¨mR;[ζ΅K‚0ː©nΑ3< ˆ¦ υΎΤ‚dΞ|u*š½Ί„ϋEXΊRSzPΑfό˜‘)h^_ ΛW‡Ϋ`ΪπΘΝπϊCjΟϋόωσιή½;·άrKΑ°ΝΡiι¨SZ\ώBy •ΫΡ8lΫζ·Ώύ-ΥΥΥ|ώωη₯ΰ₯ϋαρ[ΐcOxε ΅Λ»Ω”qεεΩΪ8ttζΫbžͺLϋ?xώ.΅δ8N•+W.Ά,λΔ–ήǎ)ΎώGΊwΓΏΊ}ΎςŠsgœnv?Ό*Ϊ₯°’+!ΑœΚΦΙ”~Ν£YχVΒΐ05ή"οΝ4;˜¦ •J₯_πƒ=Ϋe²ΑGnρΒ /^Ά,Wγ3m (Ey Cΐ-α―­U IDAT!_ΐ·™-…ΦΡ=΅QOΛυ­Γα}ϋΌφšJy¬ψμΣ90π|’4m[7t}‹X³…ώρiL6ο'Γυ„x©Πpn*Žβ}δάΊ χk-z–»‡ΓEπΚ+9κΰLΩŽνAΗΖpHEϋ2UNq¨mμyΟ/[½†χώύ§ŒyΛ:žE£—ΧΫ ¨BŸf.>·roŒω ‘ΉΉ Λ¨g½f Eι O½ώάP΄±ΈR©0―oB ΡlšπΩ<Β!o π½l˜ §­ρ‹_PRRΒψργÊ‘ oŒ›βΞλ«ςrRΫQ8^|ρEΚΚΚΈρΖ8ιHX?Ύ{D[i\…‡VΗ‘—“Οϋφτ±uΚΑ°d"τTηE&&‰?e2™ό vHi³ςεβξM“φόΌ}uίω©²Š=E2AY±Eͺ*κ€I2e„¬ρdΪύiΣλΙdίκΊ W‚](g:ΛγOΒn›mLKP\TΤΕ–ΩΏκ[ͺ ΡΘf™QS³γ’(k=:t&βy©Χ }kΌG™(΄„Γf£λκž0Ώηu,ΐ—Αw+‹$”Wh ’gyVOθΏ–ŠAϊιš‚ 5…Α£Ιϋ Cυl*’ξγζAΕ!.–2`ΰB₯Ϟ·jή€o‰±#θh @œ<:€ΐχχλ QΟζ.\Μ;/ίΕΩΗεςPΥpxχθ4‰€έψΧ™¨D ‹φAβy€¦έδε 6ΐόy ιΫ­Ρ?XΤ–ΙTΜ–Τ†ζC2‘ςωΦ\”ŽΘΦm€k sΣ†g«&Γ{Ass3£G¦²²’'Ÿ|2΄Ύςq£Οβœtˆ γν‰Γqžzκ)*++5j ΨV½/ή έQV„ήvΑ–Ž«m‹CŸΕЇB4e΄mΎψœx„z”Λε.**zό裏ޑ‘K₯eυ›έŽoώο 5m;ψ*Y^΅§H'©$-ώ[ŸbV6ι{²{kαΚΞ οTώΟJŠΠz»ΊΎ£œϊ‰` ^ƒζFΓ‚’β’γϋ_ή󬜭–*όΛf³$%_¬_Ώi(‘ξξ ™Xzάη­πf€‘<:]θ· Τ…€„+Τύ_n‚__‚ψ! QλΙG)CγΊE Sη!‘΄HCεd T΄G’Xm}+8― άtί©‡ΐ kήW‹™σώc?LΖΦΏ₯tΨ2ΑΣοΰ•©‚œΜ"›ŒΓ¬@$»Ήy‚xkώΜƒŒΦ!Α0ωΧΛo°ώΛ‡8σh;x‡Γ“‘1 iώPΦξ½υΚΌgF1"Ω+Θ©.HθHΌόŽa0νέΙ4@R₯,šΛASŒΏHYQ0NššUμ…θ,H^#"`πι\Τ7'Ι{‡ή}»L –Ό ‡ξ555Œ;–T*Ε%—\Bmm­‹WψΧ8Η³θ³Bε…,ο9½m))% \yε•€R)Ξ:λ,jjj²|υoψδ)hWξ›_pΗμVWΫ‡7ˆ|6©C–7S)ΤrΓ „‹NWΟlΫ3qβΔΗ¦NΊέδ‘wTw―K«Kηφχg§μgW·})a&Ϋ`Α‘.αΟN’N _0GwR[?Oz{ ―™' Χ·Βίβ¦ξ–&Τ½ώ”RbηrYI"aιTϊ7Ηά|d:kgn†SRR>w‡n]K‘¦α£ cξ½Ρδ Ά£ι>KΰeBqL)š/F¨›&<ύ΄ 4ΚSσ‡ξΰΛΣz#ŒΨδBΣ’e€ΦϋοiΏ~>νcΪ/€-λu@X£ήΕjΟ³J“.NΧ2qΣό« œζώ3i*+>ˆSGΨξ`Ϋϊt˜©^œyζXΎ{ϊ-,²/αώηKX[ŸŸΏΥ8Rύ"ιΞŸV!UD6Ώ―\š/_ΑΓwίΒ1ϋΎΓΰ~ψŒΠ«V?]{†~‘ό€Lοf˜4œ>nW‘’*ȗwΖ̏سΛŠ-hΫ.Μ¨kλ5FλΦUYΰhl†z-…>[Ί %¬^+Χ†iŒώΌΎκR“„Ϊiπ£sΐ ΗΓ?Lyy9•••άyηΤΧΧ·h-Η₯Ϊ֚zΆŽϊϊzξ»ο>*++)--εή{οEγς³ fΌχWθV©υΠξ τΥVWΫGh@Ο«ρΦΈ6θΌΣpΰŸΓqξiΈΉ\nΜ°aΓnά–ŽrŽγΰ8ϋ\Υ£ϋ€«{ά=δϊ½;Ά©ͺ}eUΩ₯a8ΩNsΩЌΣЌlΞβdmV4HΎhΆό)rOHη­“ϋ^νfμΪΉgέ{Sμ–ehΊp¦)0L‘)N‚ζΓ%{.]? R³ΠsΉ©TjƊΫΕ1(‘ž ΜMβ8K\šƒrr«uŸλΒZh£#4ZodMύ£`–{°Εwƒ_]Žš¦—š¦ͺ‘ρn„–Θ½,ΓZsΘͺΡσδA†΅ά-6‡€’}kΒͺ½"nαjΜeΉοξ;Ψ·Σ+ Έ 鐨£M,H‡=Ίuε²+―'S5Žϋž-¦9Θί*ˆβ€gΉ}₯*Y²rχέω[Κξα’“3€΅±ο\Fθˆ<χσΘόtVΐ=*5θΓ ρ^Βο·΄[φ«₯_σΥ§/pθ~ Ο~{ͺΈλ^WΜωJH©’ΒZc-ßΥΡ!γiς–ιZι^hί\‘ο£Τ„;‚¦i0u1κjk7n₯₯₯€Σi.ΈΰfϞνOΛ·f ™ώ,ΞΊnM=-=Σ…ύ_|ΑE]DQQ₯₯₯\qΕΤΥΦpψ0χUhžχόΚ΄@"‘wޚΎΪq΅­q|―ΡτA$L„‘…'o‡ΎO¨”ςW;vά§#ekΑΆmΗΑvln{ζΆδήWτμ=πΪ·ωYU‡ύΟ~vEYωWmΚ+―H₯¬΄•€’‚?n2z’ΰ“UrM8MΘΖ 4e˜ΈΞτ§Ι}‹Ϊ³Τυυr}ۚΆfξ sοjX–ΐLLΣΉŒΖ°”@Ϊ‹•R’iΆU~ΣΊrΑςΉVτέ΅λߟ/Ο>›–‹ΆΨ¨=γΊ`φŒIxtDΫ. €ι‡ΓYΩ άuΤΤ(ωΙ‹°‡fύxkŽz;tλXDΪιυ­^F'Αo‚lΗF›„#ΩΪ_„ΔAD+Ρ*Rb Α³γ'Π½|:CΥ2τΡ!%`ΐoBΊ:–Ae””Ce*iDυ΄*+₯ŠŒ"ΓΰέiP³δŽ=4Ψ&Ψb_eΠι'*ƒtιςΈ™Tώ‘oΎ9‰υKΓ¨‘)O@…_o¨N/,f(έ»Ά!Z^LT!;ύ!΄ΣUάvJ8ο)νCψύ °lυjή|αNƞ 1€"MΓ€aΞ—*O―jψ󏃣/‘*β˜›oψaϋΑOΞUΫΫτw¦5%t՟K©ΞΞnWτΩ¦τ•χYόΏ»ΰρͺYLΣδδ“OζάsΟε°Γ£mΫΆώ³ΈmbQΨ”τ8οφ΅kΧ2yςd{μ1^|ρEtΛ1„³O„[~Υe ΠΖήyτΩΆWΫG‹ΌΘϋΓ«υY΅Ϋ^˜g\­>uΓ0&ŸvΪiGŒ?ΎΕΩc)%ŽT<μπŸ +ŸΏxΑήfBž°’ΗHGM&“Ε¦aU’XI#OαP·"@‘Ρξ²+ͺ:€°ΒPtx΄i CύΤβu@Έγ€t$Ά-qlu΅sjϊάΞIμ¬$—sΒΧ¬šZWSμή½ϊΐ%`˜‚6Rd²Ή¦Ϊ†ΪƒCM9ς¨βΩ³ίyηK³δ½0οE䍎퍨iτB|S`SΚJ ˜³žzJ%όυό½Ηžeθ .O–]«υ˜p J‡/k)ΪΗΒSίFqTœŒ(=0ς=ͺ;oj½1“αΩρ/»έ'κ ςMΒΡΐΪ&tœp*TWCc#ΤΧCm­:8§‘A)T6¨4οy.'¨,KS^άHžΠ©΄ο=ΪCχvP^m+ M%”'!Y~0²jHα8 κx{⻬όj2'™£]ώY‘ulούΖυΉ›z‘όΊε(‚¬: a5)[¦Ύ?ƒ¦•/pδ(G= Η/[ξQ%-ώx tlΠešpΧSπŸικ: άδΖzΠtΪVΐ‘γGEά’Ύ’Iψx>όαΰΕ7UΘY„”••1lΨ0† Ζ!‡BχξέιΨ±#%%%~žh™θΤ9@CC+V¬`Ρ’EL:•wί}—Ι“'³aΓ†<Ϊˊဣΰ'ΐώ}ΜfΌs–χՎΔ!υχA4?(C8ΏΧVYOYσΑ0Œ\›6m/[ΆμCG:X¦…f-ϊΜϊξΝGοis„i˜ί5 qT:Y”vΫ―&ž4€†!hΧ%­ΖƒŽ˜q.<˜ί~a ͺ:$•ΠιȐEm˜žPΧ+Vέρ„yΞθY%ΜσxΦ!—σώ«4ύY DKͺ:€NLύ4DΖ§Ÿ~l rΰσγΖeOL₯Z˜zΟ‘lN{‰Ρ7ιΊ)?½¬šoiTθψ h‹‘:)π\«Γ4αΙ 0λs•τΪΓ0r φž΄AŸ§,D>ŽΈηymŽή·τlSκ,XO:³<―lΓΰ½χ¦3{ΖŒΩ@;ΟΏa“q΄ŽŽ5Ν°ο©pΒ)J¨·fιG·…~¦»‡3—SŽ^MMPWόKpYœΐΡ‘`*$Œ[ζQ…F`!Ρ²nšaΐΫ“`ς 5?|φμGŸ’‰cͺ:‘iJο‹Σ~%Α–ͺZ3αͺƒ•p}-βHtƒ—ƒΜA"ΑW‹3ι?ο’Θ~ΖΘCr΄/'8ήusq΄’$,­U§v ;βμ†θŒ‚αugO9π„ΖFu]Ώ^)ή―‘^ΜhW‘ΟΪTBϋNΠ½ƒϊ΅­‚Ξ Ί΄/ƒ’’œ.ƒ ‡Θ9D:ξt°ΟqΤ²Ηψρ€GωΥ²‡DŽ~§ ‘’Έ]σ'Έσ1W ψΛOΥ9ηή;0 ψύ£πώgͺ\IξΉnΤ²Έo$4 yά‘->(hPˆ‘{}Kώ}ήηΑ–ίεe‘Š€ΒPΛ‹ΧΒ²ε°b Τ6Γ†Zυ[―ι©,ƒŠR¨(ƒ4tj ΙΚn¬\3€Υ_Ο’"ύ5ƒφΚΡ£#ώφΔνALj#ŽFη±]σFiΒͺ‹IKΚψΟβr>YULCΞΐΤν=Ά„Σ»;œήΝ¦g‘rfΝΩ³kΰ― “L[oaκό H™””'όVδ-½θ\“ξqΊA2ePZ™ΐ0Τ ™'Π}―tΟ©Να:¨H Žg‰ΗXδϊ5O€gς-u;η9h %mS89ωq¨©MMMTVVŽ9ι€ζΗ ΘΧV7$ʊΟQŸ†¨ΐ.t%rWžH^ΘΥ­Α3’…€wށ5ΰΛ%πΑ?‘WiΐθόμϊG’ pΠώΗΰYtΪ-‰(ΔΤ―ΥΝS‡4ΰ­ΚψzYŽΎ½ιΧ*‹)8έΌ986•€•ΠDs΄oΞ³«@ΤΨσhπvΎ8ŽϊεrJ)hnV³ήμΑΪ΅κZ[ ΅5ΗIPV’€΄Δ"—YΟΐώjζ _7Έό{`ζάώΥ”*o,6ν†λΡ}»ΑοΖ©―^ž upι­A{‡ο׎ ς„‰sq ύ›qu΄j₯7>2Γ™χ-„Φδγθˆχϊ8Μ–ΰ 2.·ŽνAΗvΗƒTκιR νf[πακ&}]ΑG«Jψͺ6‰-Ύ7—Ξ{#7Ά„ {ۜί[‚0‚†H™s9™³q²9~Ή ˜χj’~Ω’Š–\θ•‹Hσ…v‰HυdΚ €άB˜ei'«‰ΐs]sdσΦΛ[ΪYχ>,θνXžΛJ·%Ι€A›Ni[…šH§ΣKV­"#ΙVΞVςVOhi%02SφhW½οβΉˆΉ/$ΜγςΒ‡S‚aB"Ue°" kRM j'1‚έΝ]ϋΦσ{• "8wQ¨B½Ξ˜2qH8jP- θΘ{η[Šcι@@‡"˜ώ  £Ο†6mv=‘^¨½Z „Pc+α~νΫͺM"eυΡe…YBΘσ8Ž™§%<~;œ>N½‹Ή‹α―Γ#%«’.= xN•™ς!μΏ'~@ώ8φΫ‡ w_ϊ<>ˆΠΛ1xZqtθ ξ}\o)ލσΦΆΐ±=θΨ^8’ό’ΑΊ&‹Χ•2uE9Ÿ­)aU³…#¦ΘΗ•ς"…F£ Bpd{›σϊ„•@X¦šn’€mγdm„aΰ!%Ώκ]Οe ,Νͺ΅·TJ)‘q\gtν\αξυur}2:οgΈέH„ξ4Ό'‚ Όo:T‰Η¨ύυD]σRmuεΰ8”‡ΊmΫ}τΘ/V­šΤ`Nr w Δƒ@ (Š€ΗMΩλetΣ”/YΌgϊσBΚIœ"‘ΥeΫPQΛ—CχΞ0yμέί²‘z#[Bω(’Σρ:/ΏΎž*cκς΅aοΩ.ˆCθέΆ˜χίΊ„ΓοαΌσ³»€PߚG»”ΑQ¨ΎΠΥ#οj5 nΊ ~}ŸJ~ϊ θΠƝwλ8v(Μύ ώσJΊλi•§_x!iΏQκω²U°ͺά“θt%Vo^τΎ%:ό<^—Ÿ{όn7Ž­‹#4%.άMGŽΙςΖ+εΓ5e|^SLMF‰_ ,•Ώtζ=ΛK1·BRΏ\ maˆ„‰H˜ΰHd„#‘Žƒ°Rϊ–9¬jL"PΫΙΌ6F‘„Ϊ ΄‹'z4ΧNΒ=άAJχXcχ›t\ov·'q΅|ζΕπ(x@ljό“¨’-€<ώΗ?ώaωwΏ;ΈΖΆ©,€™o0PeRZšgΙ{ξΡΡΧRΫΌόΛ»‘t)‘KXΆL2ρΪ[pΙ( ‰όυEM`…f"8|2DΌNβ Lΰz&―Z©GϋX}»«βHu§k»φLϋχ8;ώnΞΣDUΥ·[¨·BΚ£§H9π‹Kα«―α± κΩ=Ο¨Hqƒϊ«W’sΰŠ3aεzψΜ mόλ‡αΦ+ {§°’&tFX@β̞‡jg«Τ©₯;T"bι 2Ζ+–»q΄‡cagА9 „ƒH4ς΅m0·Ύ˜/jJ˜]SΚβϊ4υΆ‰†Τ^­VΉ ©’cAOŠfhA˜°―Υ€8ΆC#i‘,M™sP~&V?\‘Ή2g0]–ψ3V"Π|’VΊˆi·Ξ§T>!S(g7ΟαΝ@υ'R:ΨFπΎΌ­jž§»_ΞέΞ&%ΰ(a/ύ47]Ί•x πœfMΣΌ>mjj2μφΪθΡ«N$δΆe ₯φΩ¨ιχΈuv=oK7†'š·Pωι3f*g';?<F“mcmt‡Φ§ά4S$N‘ŠΗ{ω£λ€ykΣ»@V†β % –Χqΐˆ?sΡΕYΚΛw uͺJΰ‡Gƒa‡‚>Ξ|f/œώxώίAWކα[†7έ _, ςάςθί£0ύ…{iŽΗ¦œΞό™Έ1β)}‘±Pˆ},BώXΫipHΐ„&VΧBƒ{ͺcΒ‚bε4i` |'fšrΠΨuυPΧυu°’j•ƒ_]£’Χΐ_J6΄Ÿ0P».R JΪ$)n—F”³€!ΝIε‚}ŠMν]I°έ5hΫ¦>λpγͺΆ¬t«;ZΖκ6N2η ΘψϊDάΕc ΈΎC{kžΊR*ž³‘Ήo5€y΄±2tΰf(ΊFTJ8μ—hf?«™"lΦΨ&ΪiζΘ4}™"L‰„αN»Cνϊ,†)T`}뚻~ξ}žΠwά-kΊ—»qx‹z»ΫQΟχ\pvCq™Ee»$vNΈθTT”όαΒ k;v,€'Άνύ΄N ΈxδZZ›―₯Ί7&ΘcžK©œ–ή}Wmcil‚ χB»t0¦B Κ$6α ρuθύ.Œ0› m‘ ;=) ΛΟρ¬H`Φ—λ8ό€»9‚έB]‡< Φΰ6τήlγn‡{ž κ9υH8η»α³Ρ(LŸ­ξpΩι0rHπξςΔ@u8d?6ΊΞmk!: ŠζΩΡ8€„ιsaψωΪτ[ΪνYΖΰ χ Έ*‰Ud"mplΗo„>½,άΦ­ŽΞi°L„©Δ²lmdΦFfsκšΙρ»ΊΆΜqRAωBο8*άγ{$½`}yŠ‚ Ά ‘δRBΛΚQ"Φ:‹μ„V·Θ«OΗΩέΚρ“²υ€ #PΪ Ά­ϊ$›cENp]hΪΙ‡ήG$••a κkr8ΆΔτ˘Α»JGYήΆΎ]χzΟIMx‡ƒΙD·°9np-‰€²}Šβ’υM Oθ‡Œπλ_Ϋ–½ϋφεψΆmiιdA%°½=ιMξ―ΩύySε97Ÿ·oΣ— haΐδ}9…Ύ*ύ>Znc P9χΦ΄ ΈV­R OΌœŽ %ͺ•ΝC«ΧΑšjvλχ~™h{΄~ ι!"¨žhΪ„#ΥJΉΒ^ej_•ζΈγ2ξΗΣ4ΘΑ²v uPϋζ‡τ&»ύάomφΊ#xφΥ ΄oΧDU ? *ͺΰ΅Ικωœ…πΑ,8β@0έθWG M₯>}6Μ_’’ΙωŒ*2–£³1΅υj/ΚΪγ}'z^-½ΡΌΈω’–τNC@u{8`?˜τίό€8[ žΫ‹‘οAΊΜΒJ˜*‰©,D/”¨ι퍢ύ‹Ž―Μb$)ub˜‘0/½Ÿ))1>0Λ°,ΟςtΓ’ZΑΟ²Ό#>Γ?LΉp}ωεΒu o·e…q'†e°Α°Xm$¨·,ί»άtΓ¨ZάΒPΣΣύ’Y~ZQC2•ΐHYˆ”…HXJΙ1 ½— 9Κ^ΗΔDxBΪΨ ¦Π½aΤά`cΓΫujKll'°ΚνΘΥΙ©{'§έkQδ‚iϊ`Κήφ"eΊν¬h›Β–6•%Uwε±Δl6g 2xhϋφ½sθΑŽ!<‘νS ¨h«ΒF4ύΗόyκ€–Ω aϞπΪύŒx.ηαΣ­Tά{/\»$!‡£-ƒhΪ%qH κ,(ξwΤ€Τς̜»Š‘§άΓΕ—Ψ”Ζδσ-έB‚±šUlBυ-H™#γ8<χμͺΛf2|˜σ5 ­eMξ† `ΏΎAΏΟ] 7ίXζ%EpΛεΠ͍·„δ2zVΓΰ½ctε–,δ8:"cP·†CΛ?; `@}^yxώύ› ϋœ\Νΰσz…μ"gDΛυψM‘ά^΅+i) έRΣξž5*3…žΙ"39žu*˜hT†πΌν™ˆy b²¬OPΰo(s|}"œ^‡““δɘd-‡e1Β퉓Ν!39ΥΝ9œl‘Ιπh’#'ΚB•J)i¨ΝωŠΤΊ•Νκ@6Ο2w­σ _0ωοPξΞuθk…:S‹¦·ˆΒΛ[ΰΤ2(ΰ0ΉkβΕ*r(*P¦ΞZΑq§=ΐΈqΉo₯wαZΠ+WΝπ—«ΐΘDŽg)JEϋA›ΡνŒυœŒϊyϊuœΙ^}ΰΌaόAωήΥJh'\·Ωœ­δfδ9p/Έξ ‹Ύv-΄{Ϋ™#ξ‡τΌ¨σεhlz{ΓζϊΤZ’¦αOΉγθλΟjΊύuQΞ+Ι6˜:£ŠΊ18Ό>ΘoPλ„n^]1Έ γh©>…?Σμ°—lδβT²Κ-w?ΉDΡο-;ds8™d²όΏςή4f0΄έzλ7δΘfΜ¨Ω‘aCV[;W±ά£’Ζsv 9Ω >β€χξ½`S‘TuL“JNMCέΔ7nžvL,+<λ¬3Ϋ|ψαKΣƎ­ο³MΆ΅YT$Œ8‘[θK η~­[ –/‡‡ώ‘]2oύνŸ/ b―z[τφϊρHi…πά%p€ϊ#۝ 2ΈaO£•JΙ΄Ω+8φ΄{ωΑ$ιτ/ΤC~ξ΅© /†yσΰΛ/υƒ‘Γΰ胑W5”%Q‘ΜβSοΪφ|Hχ₯ ‘’\mhhδ‰GξζΌ“j˜Ώ Ύs±:ΥƒΓ€+F«bB¨©ω¬τv IDATύ«:;·ΊS‚³ΎSxΌ=ΊΐΰψJzhM=’ό€#ͺ4Δ”ΡοJ8ΌŽΛ ˜ώάώ0Ό2I;H'fΒ`Σ»qΠΩ=H—YΎ ͺ<ζ]*±9Ζ©aoΩHΒ±q$¬“ΜΆJ(‘E p‰ήOWύC‘Ώ*έWhΌγ~UBh­YJG:AMΟn[t³Ϊ‡Ώ”獷|€‘ ASƒM_»‘ο‹u˜†‘’ΉI|oyr6NΞ¦.+Ή§’ŒDlί:Άdε’F΅}Ν€ k28Άτfρ—3΄wμy°=μύξ[θΎ€w\aΦΡ₯ θM$m;§Ιε§‘φ„™·}ωj,όα―δώϋοωΟΝ7Λ›c™mHT¬φhΨX" ]½Ά­ΖΞ—_Β_ΐͺΠ¦ ΩŽ‡ RργSDοί“Zz Pp¬ QαΞx$R;ΨΕνC!Ž<σΜκυ_zuG^‚ύ:&8~8œ{‚Ί7 xξ-xκυΐ’Ξ;Α/σί…pμp(Mβ ΒM’#Ϊ‡δ+ ώ8σΎ±]*nύϋ³αΖ?Α”™Κ€Ψ(΄φ;h·₯ΰ―…ž¦τ©]γκ‘z{bž7ίΉD1BΌ7xπΰ‘Sί› ‘‰λ±f !OHΎ²δ£ΡM:NΞXχΊQ“[“μ_~pε’ϊY]$Nw[ζ:%ŒtgΛHξ™±Ί›"QiV©@”ƒ0μ,N¦Ω1Κ€ΝΑΩZϊ؍€› >K”03UNΞΕ%t:άo|―_ΥΔ†5YΦlέΚf5έn ŒχR₯K·γoMΣΊ8Κε vΧbχgΛ%H$ν:§1Lƒ¦ζ¦·Ξ<τάczΚΟs±―ήύΠοΏφZ..+Ϋη£{ŽtΠϊΑΈ1ˆ`- ΘΝ¨_¦ΐHΓoΐdΧΉ¨€ΖŽ=ΐΕ%.o.*θdπΔY―ώ½ΠH‘e…Xα»3γΐ„.7w|¨― ΝJχ¦ξ”υ0qζRN;ηAΈB’Hμx‘+3B¨έ«W++{ξ\¨―>έα¨!0r8  ΫD6Μ8B‘6i…ͺευH"=ڜN ){ŒEχΐU΅Όυφ»Tρ*ƒϊͺπ|~φg₯xx0°\3Fm»xό˜0)<ΩWm…KhJ–”°Gw8 _ ό6‰ύ»Υϊf«φΥNŒΓƒ5Νκ<ϊ‚ Λ»5A΅#α±Ϋ Wa₯€5txυθ•Fψ­”€ yύ―:BˆKŽ>ϊθGήxγ Ά6δμ,B ‘œm'k€α<97Φ€eOŸcV»b³΄L Ί Ψί4] !Ϊ˜†ήφΈi~|9«VM½ ΘfjΧdό5t―?ΌΎρΦΡ=w}κ=l©{VΊ·έ *@yU’T±I6›kXΊvι_ή»fzΒLΔ‹ΆL&cτι³Η#F,½³W/gΫ1Ie•Η Ϋ8Α7Β‰”‰K'ςΌ%qω αHEκ57ΓC)ζ °GWxνAθέ>ΐχθυE…`A}Dš-¦Α…#έΡv,Έk½9―9(-έΒR žzi&W\χ³ 1Vd»σ©ή±g₯{Z †ΙΏώυ:ύΪO’o§γ'ΑΕ7…=΅‹Rpα)0β@…ϊυχΰ‘ a ²Ό~τ=΅LพΏ§Ž„„ά*:ΆG_νb8κ £σo€ΌŒΊκpο/ΰΔC-Ύ«ι²¨[l;‹B\7sD)s—$Μτ9–Hv ”`—^©Ά ~6m­ϊZ6γPγ υHέJ K_¨ϋGͺjBέw”sΧΦΥ4»Β(‘—Y—%l¨―ϋιΗšw»i('XΦηZθΗsŒρβπᎡM¦έυ3Ξ7&Xύ†iωΌ{Kϋ ΒΦ>­¬7G¬ΊIχBΨjy–,ΗWn΄Όpt)UeυΪΗαU―υuήŸŒC½Y2œEv¨ϊ²xoτΟ@j7ΒδήӌγπχGΞ‘ΜcφBϋ3ψяA»%ΰ΅Χ4ΥύκΥπΥWJ`/Y"θ‘-‡λΕ1‡χaψΑ=θΪΉ ™³Žΰ‘ϋ;cF~NΪΏο@1‘ •ΒνOA,ƒ(Œ#θς37AδePΒ"΄~‰m<ϊΰœuΜbŠ-νέ0k œ#|πYΈ ]ΪΓ'Α #Τρ…7ΐΌΕα<}»Αω'ΑI‡++ΣθΨ}΅‹βͺΟο|~v;4·rΟ{Q »nΌvΛίϊFιˆδ‚0γK8α2uϊ€išsΚΛΛOX·nέ‚Φ΅xΗƒmηΈjΖA{[ΏL©Q¦ε1²†Ί,ŸΟXκ{Κε$λW5η+bΊ@—A”8]¨ΫvpnΊ8€€€mS/άCχ…{žƒ›ώυα<έ:Αͺcˆ[EΗφθ«o¦Νƒ³―Q!~£,°Ό½ƒŠΗfΡαΥ©}Λq4J^žc― Yδ_§ΣιSκλλ§ϊΉΔ»H)ΉαΓ]Ζο,#1Ζ¦ΡP—γΣwΧψϋΤ֯ʐΛ:‘r€ςvΧzΔI.ϊς€„ŠvI΅VοΐΊΊ ―ώε’ϋN8fΠwΟ:w³†]©Ώμ2Š·š§{=ρΡβτΦ$P‚²%Α]κ΄ϊtβύ«ΟΛη ρhoY \4φ| |ύ5όύοΠΰN(U”Β]?‡1ία:Ο ­}‘©.ΒΒQ¨Ό<ώ­γςμτ8’ύ ύω, k‹JSΝΟ? bG,1bpŒ.5\u•η|’„{"‘ήΑόωJ`/Z™FεΕύ*ζxΏnNˆͺK ΡΟ'Μθ<ΓLΧη{@Ρ νΚ4š5πσjυFϋKοƒhλ}νχc\ΉΆη"Σ}π½ZC‡”`Y8xŸ€Qτ°‘K ™9i•t\k}e³Z7‡ΐRw€ @γx‡·’Sžπ/*΅\«\εέPWσΘΙŸvΩνίKžEA‘ι8νΫS/Ώœ‘‰D‘\­o+šΕ­GΥΫΠ§π!_„`ΤzPHˆGAXλ^=₯/λ}ΐuupΟ=Βih¨΄‡nN%ρν:œΕ£΅±Pώ–κΩ)p΄9άόG»#ύΰ#>|οuNQK΅λ¬S‡€Ηί„Λ EEPQ¬Άx}8΄ti£βA‹Jͺ0«E’ΰv@tάψ™½t%ύλί3r.)ƒ0§Œ(•Ύg΄^Ÿz™(Ύ₯ @”B§kΒΔί1ΠZ: ΑΏώωƒzL¦ΊmLέ…θˆy–Χή< h#tDqθy ራk7Ž-Ζ!jYλ―¨Ηϋτ™Ο‚™ ψt œs|όΉ_ƒ#„xΊ¨¨θ²ΊΊΊš]Ω"o H)ΉfΖΑ–egϞΉ{ύ2»Rο{ι@έϊ ΅9s“2όϊΌ©uΓ””%0-#•°Οεr™uuλΟ^ψΠŠη …p΅bS\.g˜fŜϊϊš‘›yH‹'M ŒπΐΪšΰ…Ÿƒ¨€o­Φ‘tΡO€Ϋ6|ς Ξ΄iΦ‚•+ίτθΡc|mνΌš²²2+›ΝŽΛf³ΏόΧΫ”v9IψΙEpέPκΞεΑ‚…άRS=rEδ6w§Α!RΘT_X΄δkήyk")9Ÿ£†f9Έ3<*Ϊ-β0v$Œΰ YA’Ό€E!:ŠφQe"sž±S ž†£Yΐu$r_‘T‡X…­½Ό—¦΅+oVC/#bR+Ε‘Ϊ)R€YΨ8HIYU5uΠ΅m 8βθ`#tΔΡΣq8Άv_νΖΡ2 YNΏ ώυΆz΄woxη1X΅~ό{xζΥΐ!0Œε†aόΰψγaΒ„ 444πMζ€7£—žpωΔ1Ώέ·ηϊš†—Š“%{ƒZ7O—X€K,ΰΘΐ Ξ­@ρ8νΔ΅\ΦΑqpκ›ώ±GΗ=Ύα_dΔΓ……WΑ'ŽγNέxΞ9™_uν*wήχη)―ƒ@ ρΫD‘Πψœ90i’˜·fΈ»OŸ=zλ­·κΪΆmK*•?/___Oeee'ΰOΩlφ \εͺͺnΈ<Š EOž ΣιAόim-]'ΐt°#pH`ώRƒχ>1Ψo―}ΊΊŜp™νFG‡B’=Α>½ˆ 0ϋ•yϋΉ%πο·&Ρ½τίμY΄gc^e‘«ήξΈ΅οΌρίξϋκt²Olλθxλwι’x•½Ίΐ±=θ؍c‡γκ8β|˜9GU9¨  }Z‹U DpΧ^{νυΛΟ>ϋ¬‘εC@Ύ= ₯dΐΥέژ¼#(>Λ4 ΛS’Τ5 «¦βƒΩlΆ1Σt[Jό~Φ½ šZΣ§s455½{χ>ξ ƒ–½4hΠ6>FuK@_—χ` q} ρΌύΆXΈj•yϞ=οš4靺:`šygή΄‹/¦W―^{wδrΉ£½τT~r!\s΄IRVtΑUhxZ5υ“[ƒΓκ―ά,ΫΪ₯>L―_±pΑϋ0WoΨΐkΟέΕΨγ3!_έ±(TΖm›—ΰ?Ž)Κ―=“qω 5έ.…εUΰmXO?9ž£φŸI»’HΗn;Η‡‹ΰοτžΟY–υD―^½μ³Ο–[–υ­°Δ7€#Ήϊ‘Λ©ͺ₯ρΕQI£θtΣϋ"E;)e1ˆ:G:+›š3ο7gŸέ§η^ύΥλΞ¦*F˽ϐ!Μ<αΆΝΦ΅-o‹šG…7Ύ @%ΐ§N5—/Z$ξνΫ·Ο=Ÿ}6k5°Uq.—£¬¬¬g&“ω“mΫ'’-‹sόr 폚Ψ1/PϋPc_ηΛK‹~Ψί&₯# β(7Ρ3Y‚{_ΐKpύΕΥ~x)ΙHΙέwœΌŽ€Θ+"€3”ΗH£ecš›ζχEρΘͺQͺϊM C ~N:ΉsηŸ/Z΄hνnK|η‚ίFIII‡φνλ{Ι%tΟn£3}7Ό©φm`‰K©φϟS§šλ—,IήWZZzχςε+–¨}†Ϋg;ŽCuuuεκΥ«œΛε~(₯¬τž΅)‡+Ξ†+Η@Η2Β³q‚π½ρΊi.•S >όρKωMΕaBϋK!Ρ)\±/θ΄d­@³γπΘ}χρύ“—“Šs]ιŠ%#R―NƒŽΓ/y‡C‚h{2έ'ΪU₯ë띩3(·_`Ώ^αώέtμΖ±CpH ³WΐΘσaω―±2™Lώ<•JύmνΪ΅M–UΠυj7μ`hQ2M:Ω:ώψ£¦]{mζ€œεκξ,#‹ΑΔ‰4,X J&ΣwΤΧΧ/؞Όε6JŽ;ξ8λ7ή.„ψ•mΫ‡β/ τξ O€Qž$oΚWFꋝ†ΦΉΑ”8Hψ&ΰ0ͺ ΣŽύ*·ΟψάΒ}ΊΆ–gvί•!α‘χ§ήν*5zt‡#n䡈ƒbθ|;s਑ΕŏőέΧ7gxζΡίsώΙY Ήι؍c»β@£„ούώ5ΙOΞ%‰«²Ωμ=1MΪ ;!΄(©lΫ6Ϊ΄©|ζΚ+kG%Ϋ!¦ϋv©›¦:1mβDΡ°p‘ω!RΏ»ύφΫζ]zιeΞ¦oohnn&‘HΠΏβeΛ–XWWχ€ώRJ_ΐwlcN‚«ΟƒmP{ήΙΧΞ}~'εβ‘ †Ώ‘ό;=ŽΓ‘β„οm€τ΅ `šL˜π S:εΔa²ώ4ΏN@ŒΒέμΚ„’s΅„£xTy±Ϋυ ωtθ ­RBFJΉο.:y% ‘ €AΗ&ΰΐό•pΗίαwΧhΑw†χ±³γr&άp'όωQΠ‚ˆMΞF…Ϋ »΄(’›ššhΧνgŸέpk—.;±cάF@J\dΥ*˜W\\uΫΈqγ>½α†œΔo΄ί±ΰ8Ή\Ž‘C‡¦?ώψ㣁ŸζrΉ‘hΙ„ qιχΰΤPj>َΘ7αϋϊlΖ0ͺ‡λέ<Z…Š‹JΤ@šωΡ'|ϊίη8ϋΈ\ΰΰΓ|£S£Ί‘§€xeΒUΆΎβp8@» !έΈ«γξφ=’Γ?m υί‚‡ξ½“1Η­RG²ξH:Z‹Cœs#<ρ >œ~,<π?P•*€{g£cΰRόΉτWπψ„ΰΤ<Γ0>,**:f͚5«Σι4»aΧ‚Φˆθ1§œΒγƒmσΆl5πψš50eŠhψμ3ω2€wΠA}8qβΔά7} (“Ι`YW_}΅uί}χν \–ΝfΟ:θV|i1 ?.:ŽUiόνbΓ B0ΐ–”Ί‘ ηΧ[¨ΎΓμˆθπ^τdυ<πv·…`;ο±|ώkœ~΄MRΔ Œ΄…HΏ .]:SŽKΣihQŽμtB$άϊΒ0ιβnύ’kΧρςψϋΉΰ”Fp'Ϊ?Ϋ›ŽMΔ!š,œs=ΌτN0Nϊv‡Ώέχ}βeg₯c{ΰΐάUpφaΖ¬Puo%“Ιο577―ή–wΓζA‹oΞqΪ΅kΫΏ_ΏuŸw†ŒŽ¨<Ύ~=L™BΣ§ŸZ―74δn=μ°α3&Mz'μλΰ;ΗΑΆmͺ««“Άm¨――Ώ¨ΉΉω( Τ^l‚ώ½αΌSαψΓ o0½„oνΊ\"jύΖZΒC V=VϋvΕΘ£ βHMWKΓ`ΞάωLzύ%?p{uΗ !KΚ½Ž°Pœn=]WRόΔό΄MΒ!AU§β- D!oΓs„ΰωηώΙνΛώ}\\;šŽ-ΐ!₯š>ώΥCπϋ‡ Ωέ#mpρπλqΠ6.Ώ3±΅q  Ξ†;‡[ΰπͺ\2™Ό/“Ιό,—ΛΥ}Σ o΄(ε2™ ]taϊ½χž¨=ηœmtκΪf€'ΐkj`κT‘™1CLL§ΛΉzυκw ΓΨ½rΐq€”TWW_½zυχ₯”ί±m» šΓ`™pμ‘pΚwΰΘƒ GGWΠ;a樃&‹CCά}\93©m‚Γ1‰Ž`,_΅Š)“ήcν²ιsˆMΟΞ„b`ΗΥ©[H…š₯#ο΄ΞMΕ!²έΉˆΤ~Žό:Ռƒ#“§NgΕάrΪHGΕk; [ ΜZ έ Σ>ž™Œ= ώχ*θR?~wV:6¨΅9xδEψω*†Ύ KKKΟ―««›ΔnψFΑFΝΦ;ξψ³υΐ·|vΖkχάQF'ΐλλaΪ4œιΣΕ$ΗIξε—_z}Ψ°αN2Ή6Ÿ ‘ΉΉΛ²p‡^½zuX΅jΥ‰RΚΡ™LfΈ’Ψ›²χ„¨eΒAΰΈ#`Δ`ά)~©|­Kΰ<λ#ΒΔBΣ‰.xΕ£Ξ&㐰‘Ρΰ™Χ-φΪ#Γΐ=ΥAžβτπ„j™D wφωk„+’kσq$]ώG5ήMτ¬t―xVJ^yιudέTN<ά ^Ω©θΨΊ8€πΦ Έώvψ`Vψωΰ}ΰϊKΰ„aŒψCξLtl ‡” πρ΅wόΉΧΑvτ:ΔΚT*uύώϋο·©S§nrΐ’έ°kΐFίκO<Α~pΑ3—]–9£Έx{4)ΰΝΝπώϋ0}Ίω^]Έν¬³Ύ7αo{,·ΫίώΰyΦtνΪ΅K]]έαυυυ§J)v§~  ¨UœVŽx‡ ΒA{Ci ˆfŽzΗ…@Ί‘+1š°•ήΛfSql Be"οΦ‚‚8ŠAΟ»]eΓ`ϊτ™ωήk7¬Žž!Ξ‘§ c;ΰΐ„OΑΟώ―NV!›=0 8x \<NmJlαvνP: ΘπΖ{πΘsπςΔόhn†aΌŸH$~ήΨΨψΊ”r“#Xξ†]Z;τnϋΑΈΆC‡m³uΝϋ¦Mƒ3ΜOkkΏιίΏί 3fΜl€­m7l=ππ€” ><ύώϋοχO$#Ηωn6›ιNwΖ5υΩ½μΥFƒχ‡‘{A24£œσŒ° †xa[πyΤBr―qCΈP±3ΡΪL@žrΡBΎ8b6 ‡Ϊ^ι^H+ΑΌΉσxϋ­w¨L-ΰˆƒlΪ»S˝–Ž€#gΒΔα·χΓήGσ7P°``_8v8Œ<ŽΨίUD›Ο Ν&mM:d0» 0g!Ότ6Lx >œ ΅‘ΝdB='‘HάVRR2~νΪ΅ίψΣΝvC>lT<ηr9£S§ŽguΤΪΗϋχί:‡΄θΡΰ̜™\°z΅ψΥ{τ~αΣO?«έό›ΝΝΝΈ> Ζ©§žj̞=»ϋΒ… χŽ•Rްm»§”2ι2£`ΝΕΰ*K‘ΊƒϊCΒAϋΒΐήPRI€ΐ"tΙίήCX¨Η nΝŠ*Q†*GώΗԚς_ί¦βhΘΒΫ5Ψ³·CΧφκp›¨oΓ–βΨtμ0R{nΑx~2άu?Μ]DAHZΠ₯tν {ο‘N λ^ ½»AΗ (M‘B6©ƒ ™¨i‚5΅°tΜ]sΎTΏ₯Λ`ιΚΰΰάo%gΖΧΐpΒ _<ϊθ£9Γ0ΎυΞΏίvΨθΫΟd2€Σ鑇Κ;Η³yŽqž·mψτSœ)SΔΒ5kŒΫιτλΧ――ΨΥχ‚ο†MƒL&ƒad³Y,Λ2nΌρFλψC›N:ν½vνΪαΩlφ)εώ@Ή”2νN燴YgσHμ΄ζ0y Ѝk‡@H"₯B(Κƒ?’Š’5"NΥVQΥJκ?‘ͺ* Qώ(’HJ„ HΤ•"&‰š†‡_αaΞΘΆγ{ψ|ΆοΞ»³3ύcoΓΥ„ΰπŒαχ‘VwΎ³ΟγΗνogζ7Ώαp_Ί§LΣμBΙησ‘HδΏΉ\nhυκΥcoΏύΆ΄m›3Ζ€γ8π ΨΆ )% Γΰœsωβ‹/κΜ>ψ@‡Γζ’E‹fφφφΞ؎—_ώυ±Ν›lišFω6„L’)°m±X"‘εJ©ί†Γbύ£ͺͺ;ξ ψ•ςζΌ½˜2;¦ΔωσΎOΣiΉ½΄΄΄uώύύK—.•Ό Ή:tŠ"·-Ηq`Yκλλύ‰DόΉ@ΐϊ}c£¬khΧ΄’Ll2%ΕΑ{l θθ`’« ‰tΪ·Ϋ4gmXϋΐΐ@–φ[ δϊ ΣΉm2Ϊρΰƒ˜]]ݏ̚εΌ~ί}βώ₯K•ξσέψ^œ±]œ4ζev~Ώ;§όCRΌΛ”ΐΉs ǎ©l,fK§νsηΞΫ³pα‚ώέ»χJ₯MΟrƒP@'·4₯ZZ^αΫΆm{ΐqΖώΨΠ V57+ί΅Nd›Ό•«w+₯»'A6 €ΣΙ$ηρ8²Ω¬‘ŽΕ¬t>―Ξ–”ψ;s9«7‰τ G‡†^[Ύ\ώbΩ2π›=Το]δ0ŒŽ_}Εdg'οO$΄ύΊ^ϊ^ ψρς΅΅΅°m›–}rQ@'·―M ¨"Ώι»œυΛ—ΓBL-8χœ½eSξk»9“art|pH&U&•ϊ‡‡Y‚s_T)td³ΩΎŠŠŠΞwί}ηl,v>ΏjΥ*άsΟ=RJ !„WΜJ)˜¦ιeΞ‡fΜΠv<ω€X΅`Aaνυ ζmŠδ8@?pό8ς]]όΘΔ>¬«»λ[·nM477Λ Y愐zW’iΝ Œ~Ώ?dYΦ†9sTKS“ ͟οpOρΊf!€‰ †‘`dD!•‚L$ΈΜdx"“ΡΞ N jšΦY^^qΖ²¬³?άΤ“ΛεϋZ[-ΗαJ)©”βRJιU »RΥΥΥσςω}O?»««―ς—1Eή‹¦Ή½ξ“''τ‘ή^φqyyΩΞΗ{μ“νΫ. UΠnL£!W:™v”RX³foϞ=λΚΛρ›ϋο—‘yσQ2™RblŒEm{F_2™ο ƒ'“ΙΤ !DssΣΩ7ήx#΅xρ8Ž#KJJ ₯„γ87zΈψ‘šμzζΤΧο›xCζœ±ΠΡΑδ™3όH:Νwϊύ₯»S©α¨RJJ)iΈœiŽ:™vZZZΠΪΪzg$IμΪ΅kLJΙmΫ†a²°™ΠΝnβ·J&¨¬ ­©―ΗΆ΅k0Œk?‡―λ@>tw,;0 οΞηεϋO=υ³ƒ~ψQ†’ΤΉuQ@'δ:²m 6πX,φ»{οΝΏώψγnΉΨ+ δΕσϋš|ύ5pτ(§O«žρρχΆϋΝ7zjύϊ Βq¨r#!· θ„\J)ΤΤΤψβρwV¬ΐ Λ–ί­‡‹ΧuOL§O3?ΞRρΈρΙψΈάQS3ϋ`4MQ’! €NΘ5‰DBƒƒ=;ŸxB<‰Lmy\ρŽ…Ι$ΠήΞ¬ξnDGG΅χKJόllόIΟή½[RJH)QRRrc~BΘ΄Ak 0‡©¨ΐgŸECUΥ₯ ΥxΛΓr9 ―αΛ/UjpΠό4“™ΨV_γΦM›6e_zιWξΎTQ2EΠ Ή Ÿ}φϊpu΅Ψωάs¨ςϋ/ equation, multline, gather, align, alignat, flalign, matrix, pmatrix, bmatrix, Bmatrix, vmatrix, Vmatrix, eqnarray. As expected, environments ending in `*` will not be numbered, for example: :::{myst-example} :highlight: latex \begin{gather*} a_1=b_1+c_1\\ a_2=b_2+c_2-d_2+e_2 \end{gather*} \begin{align} a_{11}& =b_{11}& a_{12}& =b_{12}\\ a_{21}& =b_{21}& a_{22}& =b_{22}+c_{22} \end{align} ::: MyST-Parser-4.0.0/docs/syntax/optional.md000066400000000000000000000656171465415536200202600ustar00rootroot00000000000000--- myst: substitutions: key1: I'm a **substitution** key2: | ```{note} {{ key1 }} ``` key3a: fishy key3: | ```{image} img/fun-fish.png :alt: fishy :width: 200px ``` key4: example confpy: sphinx `conf.py` [configuration file](inv:sphinx#usage/configuration) --- (syntax/extensions)= # Syntax Extensions MyST-Parser is highly configurable, utilising the inherent "plugability" of the [markdown-it-py](inv:markdown_it#index) parser. The following syntaxes are optional (disabled by default) and can be enabled *via* the {{ confpy }} (see also [](sphinx/config-options)). Their goal is generally to add more *Markdown friendly* syntaxes; often enabling and rendering [markdown-it-py plugins](inv:markdown_it#md/plugins) that extend the [CommonMark specification](https://commonmark.org/). To enable all the syntaxes explained below: ```python myst_enable_extensions = [ "amsmath", "attrs_inline", "colon_fence", "deflist", "dollarmath", "fieldlist", "html_admonition", "html_image", "linkify", "replacements", "smartquotes", "strikethrough", "substitution", "tasklist", ] ``` :::{versionchanged} 0.13.0 `myst_enable_extensions` replaces previous configuration options: `admonition_enable`, `figure_enable`, `dmath_enable`, `amsmath_enable`, `deflist_enable`, `html_img_enable` ::: (syntax/typography)= (syntax/smartquotes)= (syntax/replacements)= ## Typography Adding `"smartquotes"` to `myst_enable_extensions` (in the {{ confpy }}) will automatically convert standard quotations to their opening/closing variants: - `'single quotes'`: 'single quotes' - `"double quotes"`: "double quotes" Adding `"replacements"` to `myst_enable_extensions` (in the {{ confpy }}) will automatically convert some common typographic texts: text | converted ----- | ---------- ``(c)``, ``(C)`` | (c) ``(tm)``, ``(TM)`` | (tm) ``(r)``, ``(R)`` | (r) ``(p)``, ``(P)`` | (p) ``+-`` | +- ``...`` | ... ``?....`` | ?.... ``!....`` | !.... ``????????`` | ???????? ``!!!!!`` | !!!!! ``,,,`` | ,,, ``--`` | -- ``---`` | --- (syntax/strikethrough)= ## Strikethrough ```{versionadded} 0.17.0 ``` The `strikethrough` extension allows text within `~~` delimiters to have a strikethrough (horizontal line) placed over it. For example, `~~strikethrough with *emphasis*~~` renders as: ~~strikethrough with *emphasis*~~. :::{warning} This extension is currently only supported for HTML output, and you will need to suppress the `myst.strikethrough` warning (see [](myst-warnings)) ::: (syntax/math)= ## Math shortcuts Math is parsed by adding to the `myst_enable_extensions` list option, in the {{ confpy }} one or both of: - `"dollarmath"` for parsing of dollar `$` and `$$` encapsulated math. - `"amsmath"` for direct parsing of [amsmath LaTeX environments](https://ctan.org/pkg/amsmath). These options enable their respective Markdown parser plugins, as detailed in the [markdown-it plugin guide](inv:markdown_it#md/plugins). :::{versionchanged} 0.13.0 `myst_dmath_enable=True` and `myst_amsmath_enable=True` are deprecated, and replaced by `myst_enable_extensions = ["dollarmath", "amsmath"]` ::: (syntax/math/dollar)= ### Dollar delimited math Enabling `dollarmath` will parse the following syntax: - Inline math: `$...$` - Display (block) math: `$$...$$` Additionally if `myst_dmath_allow_labels=True` is set (the default): - Display (block) math with equation label: `$$...$$ (1)` For example, `$x_{hey}=it+is^{math}$` renders as $x_{hey}=it+is^{math}$. This is equivalent to writing: ```md {math}`x_{hey}=it+is^{math}` ``` :::{admonition} Escaping Dollars :class: tip dropdown Math can be escaped (negated) by adding a `\` before the first symbol, e.g. `\$a$` renders as \$a\$. Escaping can also be used inside math, e.g. `$a=\$3$` renders as $a=\$3$. Conversely `\\` will negate the escaping, so `\\$a$` renders as \\$a$. ::: Block-level math can be specified with `$$` signs that wrap the math block you'd like to parse. For example: :::{myst-example} :highlight: latex $$ y & = ax^2 + bx + c \\ f(x) & = x^2 + 2xy + y^2 $$ ::: This is equivalent to the following directive: :::{myst-example} ```{math} y & = ax^2 + bx + c \\ f(x) & = x^2 + 2xy + y^2 ``` ::: You can also add labels to block equations: :::{myst-example} :highlight: latex $$ e = mc^2 $$ (eqn:best) This is the best equation {eq}`eqn:best` ::: There are a few other options available to control dollar math parsing: `myst_dmath_allow_space=False`, will cause inline math to only be parsed if there are no initial / final spaces, e.g. `$a$` but not `$ a$` or `$a $`. `myst_dmath_allow_digits=False`, will cause inline math to only be parsed if there are no initial / final digits, e.g. `$a$` but not `1$a$` or `$a$2`. These options can both be useful if you also wish to use `$` as a unit of currency. ```{versionadded} 0.14.0 `myst_dmath_double_inline` option ``` To allow display math (i.e. `$$`) within an inline context, set `myst_dmath_double_inline = True` (`False` by default). This allows for example: :::{myst-example} :highlight: latex Hence, for $\alpha \in (0, 1)$, $$ \mathbb P (\alpha \bar{X} \ge \mu) \le \alpha; $$ i.e., $[\alpha \bar{X}, \infty)$ is a lower 1-sided $1-\alpha$ confidence bound for $\mu$. ::: ### Math in other block elements Math will also work when nested in other block elements, like lists or quotes: :::{myst-example} - A list - $$ a = 1 $$ > A block quote > $$ a = 1 $$ ::: (syntax/amsmath)= ### Direct LaTeX Math By adding `"amsmath"` to `myst_enable_extensions` (in the {{ confpy }}), you can enable direct parsing of [amsmath](https://ctan.org/pkg/amsmath) LaTeX equations. These top-level math environments will then be directly parsed: > equation, multline, gather, align, alignat, flalign, matrix, pmatrix, bmatrix, Bmatrix, vmatrix, Vmatrix, eqnarray. As expected, environments ending in `*` will not be numbered, for example: :::{myst-example} :highlight: latex \begin{gather*} a_1=b_1+c_1\\ a_2=b_2+c_2-d_2+e_2 \end{gather*} \begin{align} a_{11}& =b_{11}& a_{12}& =b_{12}\\ a_{21}& =b_{21}& a_{22}& =b_{22}+c_{22} \end{align} ::: :::{note} `\labels` inside the environment are not currently identified, and so cannot be referenced. We hope to implement this in a future update (see [executablebooks/MyST-Parser#202](https://github.com/executablebooks/MyST-Parser/issues/202))! ::: This syntax will also work when nested in other block elements, like lists or quotes: :::{myst-example} - A list - \begin{gather*} a_1=b_1+c_1\\a_2=b_2+c_2-d_2+e_2 \end{gather*} > A block quote > \begin{gather*} a_1=b_1+c_1\\a_2=b_2+c_2-d_2+e_2 \end{gather*} ::: (syntax/mathjax)= ### Mathjax and math parsing When building HTML using the extension (enabled by default), If `dollarmath` is enabled, Myst-Parser injects the `tex2jax_ignore` (MathJax v2) and `mathjax_ignore` (MathJax v3) classes in to the top-level section of each MyST document, and adds the following default MathJax configuration: MathJax version 2 (see [the tex2jax preprocessor](https://docs.mathjax.org/en/v2.7-latest/options/preprocessors/tex2jax.html#configure-tex2jax): ```javascript MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}}) ``` MathJax version 3 (see [the document options](https://docs.mathjax.org/en/latest/options/document.html?highlight=ignoreHtmlClass#the-configuration-block)): ```javascript window.MathJax = {"options": {"processHtmlClass": "tex2jax_process|mathjax_process|math|output_area"}} ``` This ensures that MathJax processes only math, identified by the `dollarmath` and `amsmath` extensions, or specified in `math` directives. To change this behaviour, set a custom regex, for identifying HTML classes to process, like `myst_mathjax_classes="math|myclass"`, or set `myst_update_mathjax=False` to inhibit this override and process all HTML elements. (syntax/linkify)= ## Linkify Adding `"linkify"` to `myst_enable_extensions` (in the {{ confpy }}) will automatically identify "bare" web URLs and add hyperlinks: `www.example.com` -> www.example.com To only match URLs that start with schema, such as `http://example.com`, set `myst_linkify_fuzzy_links=False`. :::{important} This extension requires that [linkify-it-py](https://github.com/tsutsu3/linkify-it-py) is installed. Either directly; `pip install linkify-it-py` or *via* `pip install myst-parser[linkify]`. ::: (syntax/substitutions)= ## Substitutions (with Jinja2) Adding `"substitution"` to `myst_enable_extensions` (in the {{ confpy }}) will allow you to add substitutions, added in either the `conf.py` using `myst_substitutions`: ```python myst_substitutions = { "key1": "I'm a **substitution**" } ``` or at the top of the file, in the front-matter section (see [this section](syntax/frontmatter)): ````yaml --- myst: substitutions: key1: "I'm a **substitution**" key2: | ```{note} {{ key1 }} ``` key3: | ```{image} img/fun-fish.png :alt: fishy :width: 200px ``` key4: example --- ```` :::{important} Keys in the front-matter will override ones in the `conf.py`. ::: You can use these substitutions inline or as blocks, and you can even nest substitutions in other substitutions (but circular references are prohibited): :::{myst-example} Inline: {{ key1 }} Block level: {{ key2 }} | col1 | col2 | | -------- | -------- | | {{key2}} | {{key3}} | ::: :::{important} Substitutions will only be assessed where you would normally use Markdown, e.g. not in code blocks: :::{myst-example} ``` {{ key1 }} ``` ::: One should also be wary of using unsuitable directives for inline substitutions. This may lead to unexpected outcomes. ::: Substitution references are assessed as [Jinja2 expressions](http://jinja.palletsprojects.com) which can use [filters](https://jinja.palletsprojects.com/en/2.11.x/templates/#list-of-builtin-filters), and also contains the [Sphinx Environment](inv:sphinx#extdev/envapi) in the context (as `env`). Therefore you can do things like: :::{myst-example} - version: {{ env.config.version }} - docname: {{ env.docname | upper }} - {{ "a" + "b" }} ::: You can also change the delimiter if necessary, for example setting in the `conf.py`: ```python myst_sub_delimiters = ["|", "|"] ``` Will parse: `|| "a" + "b" ||`. This should be changed with care though, so as not to affect other syntaxes. The exact logic for handling substitutions is: 1. Combine global substitutions (specified in `conf.py`) with front-matter substitutions, to create a variable context (front-matter takes priority) 2. Add the sphinx `env` to the variable context 3. Create the string content to render using Jinja2 (passing it the variable context) 4. If the substitution is inline and not a directive, render ignoring block syntaxes (like lists or block-quotes), otherwise render with all syntax rules. ### Substitutions and URLs Substitutions cannot be directly used in URLs, such as `[a link](https://{{key4}}.com)` or ``. However, since Jinja2 substitutions allow for Python methods to be used, you can use string formatting or replacements: :::{myst-example} {{ '[a link](https://{}.com)'.format(key4) }} {{ ''.replace('REPLACE', env.docname) }} ::: (syntax/colon_fence)= ## Code fences using colons By adding `"colon_fence"` to `myst_enable_extensions` (in the {{ confpy }}), you can also use `:::` delimiters to denote directives, instead of ```` ``` ````. Using colons instead of back-ticks has the benefit of allowing the content to be rendered correctly, when you are working in any standard Markdown editor. It is ideal for admonition type directives (as documented in [Directives](syntax/directives)) or tables with titles, for example: :::::{myst-example} :::{note} This text is **standard** _Markdown_ ::: :::{table} This is a **standard** _Markdown_ title :align: center :widths: grid abc | mnp | xyz --- | --- | --- 123 | 456 | 789 ::: ::::: Similar to normal directives, these directives can also be nested: :::::{myst-example} ::::{important} :::{note} This text is **standard** _Markdown_ ::: :::: ::::: and also parameter options can be used: :::::{myst-example} :::{admonition} This *is* also **Markdown** :class: warning This text is **standard** _Markdown_ ::: ::::: (syntax/admonitions)= ## Admonition directives :::{versionchanged} 0.13.0 `myst_admonition_enable` is deprecated and replaced by `myst_enable_extensions = ["colon_fence"]` (see above). Also, classes should now be set with the `:class: myclass` option. Also see [](syntax/html-admonition). ::: (syntax/header-anchors)= ## Auto-generated header anchors The MyST Parser can automatically generate label "slugs" for header anchors so that you can reference them from markdown links. For example, you can use header bookmark links, locally; `[](#header-anchor)`, or cross-file `[](path/to/file.md#header-anchor)`. To achieve this, use the `myst_heading_anchors = DEPTH` configuration option, where `DEPTH` is the depth of header levels for which you wish to generate links. For example, the following configuration in `conf.py` tells the `myst_parser` to generate labels for heading anchors for `h1`, `h2`, and `h3` level headings (corresponding to `#`, `##`, and `###` in markdown). ```python myst_heading_anchors = 3 ``` You can then insert markdown links directly to anchors that are generated from your header titles in your documentation: :::{myst-example} [](#auto-generated-header-anchors) ::: The paths to other files should be relative to the current file: :::{myst-example} [**link text**](./typography.md#headings) ::: ### Anchor slug structure The anchor "slugs" created aim to follow the [GitHub implementation](https://github.com/Flet/github-slugger): - lower-case text - remove punctuation - replace spaces with `-` - enforce uniqueness *via* suffix enumeration `-1` To change the slug generation function, set `myst_heading_slug_func` in your `conf.py` to a function that accepts a string and returns a string. :::{versionadded} 0.19.0 `myst_heading_slug_func` can now also be set to a string, which will be interpreted as an import path to a function, e.g. `myst_heading_slug_func = "mypackage.mymodule.slugify"`. ::: ### Inspect the links that will be created You can inspect the links that will be created using the command-line tool: ```console $ myst-anchors -l 2 docs/syntax/optional.md

``` (syntax/definition-lists)= ## Definition Lists By adding `"deflist"` to `myst_enable_extensions` (in the {{ confpy }}), you will be able to utilise definition lists. Definition lists utilise the [markdown-it-py deflist plugin](inv:markdown_it#md/plugins), which itself is based on the [Pandoc definition list specification](http://johnmacfarlane.net/pandoc/README.html#definition-lists). This syntax can be useful, for example, as an alternative to nested bullet-lists: :::{myst-example} - Term 1 - Definition - Term 2 - Definition ::: Using instead: :::{myst-example} Term 1 : Definition Term 2 : Definition ::: From the Pandoc documentation: > Each term must fit on one line, which may optionally be followed by a blank line, and must be followed by one or more definitions. > A definition begins with a colon or tilde, which may be indented one or two spaces. > A term may have multiple definitions, and each definition may consist of one or more block elements (paragraph, code block, list, etc.) Here is a more complex example, demonstrating some of these features: :::{myst-example} Term *with Markdown* : Definition [with reference](syntax/definition-lists) A second paragraph : A second definition Term 2 ~ Definition 2a ~ Definition 2b Term 3 : A code block : > A quote : A final definition, that can even include images: fishy ::: (syntax/tasklists)= ## Task Lists By adding `"tasklist"` to `myst_enable_extensions` (in the {{ confpy }}), you will be able to utilise task lists. Task lists utilise the [markdown-it-py tasklists plugin](inv:markdown_it#md/plugins), and are applied to markdown list items starting with `[ ]` or `[x]`: :::{myst-example} - [ ] An item that needs doing - [x] An item that is complete ::: (syntax/fieldlists)= ## Field Lists ```{versionadded} 0.16.0 ``` By adding `"fieldlist"` to `myst_enable_extensions` (in the {{ confpy }}), you will be able to utilise field lists. Field lists are mappings from field names to field bodies, based on the [reStructureText syntax](https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#field-lists). :::{myst-example} :name only: :name: body :*Nested syntax*: Both name and body may contain **nested syntax**. :Paragraphs: Since the field marker may be quite long, the second and subsequent lines of a paragraph do not have to line up with the first line. :Blocks: As well as paragraphs, any block syntaxes may be used in a field body: - Me - Myself - I ```python print("Hello, world!") ``` ::: A prominent use case of field lists is for use in API docstrings, as used in [Sphinx's docstring renderers](inv:sphinx#usage/domains/python): :::{myst-example} ```{py:function} send_message(sender, priority) Send a message to a recipient :param str sender: The person sending the message :param priority: The priority of the message, can be a number 1-5 :type priority: int :return: the message id :rtype: int :raises ValueError: if the message_body exceeds 160 characters ``` ::: :::{note} Currently `sphinx.ext.autodoc` does not support MyST, see [](howto/autodoc). ::: (syntax/attributes)= ## Attributes :::{versionadded} 0.19 This feature is in *beta*, and feedback is welcome. `attrs_inline` also replace the previous `attrs_image` extension, which is now deprecated. ::: Attributes are a way of enriching standard CommonMark syntax, by adding additional information to elements. Attributes are specified inside curly braces `{}`, for example `{#my-id .my-class key="value"}`, and come before a block element or after an inline element. Inside the curly braces, the following syntax is recognised: - `.foo` specifies `foo` as a class. Multiple classes may be given in this way; they will be combined. - `#foo` specifies `foo` as an identifier. An element may have only one identifier; if multiple identifiers are given, the last one is used. - `key="value"` or `key=value` specifies a key-value attribute. Quotes are not needed when the value consists entirely of ASCII alphanumeric characters or `_` or `:` or `-`. Backslash escapes may be used inside quoted values. **Note** only certain keys are supported, see below. - `%` begins a comment, which ends with the next `%` or the end of the attribute (`}`). Attributes are cumulative, so that if multiple attributes follow each other, the inner attributes override the outer ones. One exception is that if multiple classes are given, they are combined. For example: ```markdown {#id1 .class1 key1="value1"} {#id2 .class2 key2="value2"} block [inline]{#id2 .class2 key2="value2"}{#id1 .class1 key1="value1"} ``` is equivalent to: ```markdown {#id2 .class1 .class2 key1="value1" key2="value2"} block [inline]{#id2 .class1 .class2 key1="value1" key2="value2"} ``` :::{seealso} This is adapted from [djot inline/block attributes](https://htmlpreview.github.io/?https://github.com/jgm/djot/blob/master/doc/syntax.html#inline-attributes), and also related to [pandoc bracketed spans](https://pandoc.org/MANUAL.html#extension-bracketed_spans). ::: (syntax/attributes/block)= ### Block attributes By adding `"attrs_block"` to `myst_enable_extensions` (in the {{ confpy }}), you can enable parsing of block attributes before certain block syntaxes. For example, the following Markdown: :::{myst-example} {#mypara .bg-warning} Here is a paragraph with attributes. {ref}`A reference to my paragraph ` ::: `id` and `class` are supported for most block syntaxes, but only certain key-value attributes are supported for each syntax. For **ordered lists**, the `style` key is supported, and can be one of `decimal`, `lower-alpha`, `upper-alpha`, `lower-roman`, `upper-roman`: :::{myst-example} {style=lower-alpha} 1. a 2. b {style=upper-alpha} 1. a 2. b {style=lower-roman} 1. a 2. b {style=upper-roman} 1. a 2. b ::: For **code fences**, the `lineno-start` and `emphasize-lines` keys are supported: :::{myst-example} {lineno-start=1 emphasize-lines="2,3"} ```python a = 1 b = 2 c = 3 ``` ::: For **block quotes**, the `attribution` key is supported: :::{myst-example} {attribution="Chris Sewell, [link](https://example.com)"} > Hallo ::: For *definition lists*, the adding a glossary key turns the definition list into a glossary (similar to using the [`glossary` directive](inv:sphinx:rst:directive#glossary) in Sphinx): :::{myst-example} {.glossary} term name : Definition of the term {term}`term name` ::: (syntax/attributes/inline)= ### Inline attributes By adding `"attrs_inline"` to `myst_enable_extensions` (in the {{ confpy }}), you can enable parsing of inline attributes after certain inline syntaxes. For example, the following Markdown: :::{myst-example} - [A span of text with attributes]{#spanid .bg-warning}, {ref}`a reference to the span ` - `A literal with attributes`{#literalid .bg-warning}, {ref}`a reference to the literal - An autolink with attributes: {.bg-warning title="a title"} - [A link with attributes](syntax/attributes){#linkid .bg-warning}, {ref}`a reference to the link ` - ![An image with attribute](img/fun-fish.png){#imgid .bg-warning w=100px align=center} {ref}`a reference to the image ` ::: `id` and `class` are supported for most inline syntaxes, but only certain key-value attributes are supported for each syntax. For **literals**, the following attributes are supported: - `language`/`lexer`/`l` defines the syntax lexer, e.g. `` `a = "b"`{l=python} `` is displayed as `a = "b"`{l=python}. Note, this is only supported in `sphinx >= 5`. For **images**, the following attributes are supported (equivalent to the `image` directive): - `width`/`w` defines the width of the image (in `%`, `px`, `em`, `cm`, etc) - `height`/`h` defines the height of the image (in `px`, `em`, `cm`, etc) - `align`/`a` defines the scale of the image (`left`, `center`, or `right`) (syntax/images/html)= (syntax/images)= ## HTML Images MyST provides a few different syntaxes for including images in your documentation, as explained below. The first is the standard Markdown syntax: :::{myst-example} ![fishy](img/fun-fish.png) ::: This will correctly copy the image to the build folder and will render it in all output formats (HTML, TeX, etc). However, it is limited in the configuration that can be applied, for example setting a width. As discussed [above](syntax/directives), MyST allow for directives to be used such as `image` and `figure` (see {ref}`the sphinx documentation `): :::{myst-example} ```{image} img/fun-fish.png :alt: fishy :class: bg-primary :width: 200px :align: center ``` ::: Additional options can now be set, however, in contrast to the Markdown syntax, this syntax will not show the image in common Markdown viewers (for example when the files are viewed on GitHub). The final option is directly using HTML, which is also parsed by MyST. This is usually a bad option, because the HTML is treated as raw text during the build process and so sphinx will not recognise that the image file is to be copied, and will not output the HTML into non-HTML output formats. HTML parsing to the rescue! By adding `"html_image"` to `myst_enable_extensions` (in the {{ confpy }}), MySt-Parser will attempt to convert any isolated `img` tags (i.e. not wrapped in any other HTML) to the internal representation used in sphinx. :::{myst-example} :highlight: html fishy fishy ::: Allowed attributes are equivalent to the `image` directive: `src`, `alt`, `class`, `width`, `height` and `name`. Any other attributes will be dropped. HTML image can also be used inline! I'm an inline image: (syntax/md-figures)= ## Markdown Figures By adding `"colon_fence"` to `myst_enable_extensions` (in the {{ confpy }}), we can combine the above two extended syntaxes, to create a fully Markdown compliant version of the `figure` directive named `figure-md`. :::{versionchanged} 0.13.0 `myst_figure_enable` with the `figure` directive is deprecated and replaced by `myst_enable_extensions = ["colon_fence"]` and `figure-md`. ::: The figure block must contain **only** two components; an image, in either Markdown or HTML syntax, and a single paragraph for the caption. The first line argument is optional and taken as the reference target of the figure: ::::{myst-example} :::{figure-md} ![fishy](img/fun-fish.png){.bg-primary .mb-1 width=200px} This is a caption in **Markdown** ::: :::{figure-md} fig-target :class: myclass fishy This is a caption in **Markdown** ::: :::: As we see here, the target we set can be referenced: :::{myst-example} [Go to the fish!](#fig-target) ::: (syntax/html-admonition)= ## HTML Admonitions By adding `"html_admonition"` to `myst_enable_extensions` (in the {{ confpy }}), you can enable parsing of `
` HTML blocks. These blocks will be converted internally to Sphinx admonition directives, and so will work correctly for all output formats. This is helpful when you care about viewing the "source" Markdown, such as in Jupyter Notebooks. If the first element within the `div` is `
` or `

`, then this will be set as the admonition title. All internal text (and the title) will be parsed as MyST-Markdown and all classes and an optional name will be passed to the admonition: :::{myst-example} :highlight: html

This is the **title**

This is the *content*
::: During the Sphinx render, both the `class` and `name` attributes will be used by Sphinx, but any other attributes like `style` will be discarded. ::::{warning} There can be no empty lines in the block, otherwise they will be read as two separate blocks. If you want to use multiple paragraphs then they can be enclosed in `

`: :::{myst-example} :highlight: html

Paragraph 1

Paragraph 2

::: :::: You can also nest HTML admonitions: :::{myst-example} :highlight: html

Some **content**

A *title*

Paragraph 1

Paragraph 2

::: MyST-Parser-4.0.0/docs/syntax/organising_content.md000066400000000000000000000130051465415536200223050ustar00rootroot00000000000000 (organising-content)= # Organising content Sphinx allows you to organise your content into multiple documents, and to include content from other documents. This section describes how to do this with MyST Markdown. (hiya)= ## Document structure Single MyST Markdown documents are structured using [headings](typography.md#headings). All headings at the root level of the document are included in the Table of Contents (ToC) for that page. Many HTML themes will already include this ToC in a sidebar, but you can also include it in the main content of the page using the contents {{directive}}: :::{myst-example} ```{contents} Table of Contents :depth: 3 ``` ::: Options: :depth: Can be used to specify the depth of the ToC. :local: Can be used to only include headings in the current section of the document. :backlinks: Can be used to include a link to the ToC at the end of each section. :class: Is available to add a custom CSS class to the ToC. :::::{warning} Because the structure of the document is determined by the headings, it is problematic to have "non-consecutive" headings in a document, such as: ```md # Heading 1 ### Heading 3 ``` If you wish to include such a heading, you can use the [attrs_block](#syntax/attributes/block) extension to wrap the heading in a `div`, so that it is not included in the ToC: ```md # Heading 1 ::: ### Heading 3 ::: ``` ::::: :::::{admonition} Setting a title in front-matter :class: tip dropdown ```{versionadded} 0.17.0 ``` The `myst_title_to_header = True`{l=python} [configuration](#sphinx/config-options) allows for a `title` key to be present in the [document front matter](#syntax/frontmatter). This will then be used as the document's header (parsed as Markdown). For example: ```md --- title: My Title with *emphasis* --- ``` would be equivalent to: ```md # My Title with *emphasis* ``` ::::: (organising-content/include)= ## Inserting other documents directly into the current document The `include` directive allows you to insert the contents of another document directly into the flow of the current document. :::{seealso} The [`literalinclude` directive](#syntax/literalinclude), for including source code from files. ::: :::{myst-example} ```{literalinclude} example.txt ``` ```{include} example.txt ``` ::: The following options allow you to include only part of a document: :start-line: Only the content starting from this line number will be included (numbering starts at 1, and negative count from the end) :end-line: Only the content up to (but excluding) this line will be included. :start-after: Only the content after the first occurrence of the specified text will be included. :end-before: Only the content before the first occurrence of the specified text (but after any after text) will be included. :::{myst-example} ```{literalinclude} example.txt ``` ```{include} example.txt :start-line: 1 :end-line: 2 ``` ```{include} example.txt :start-after: Hallo :end-before: you! ``` ::: The following options allow you to modify the content of the included document, to make it relative to the location that it is being inserted: :heading-offset: Offset all the heading levels by this positive integer, e.g. changing `#` to `####` :relative-docs: Make Markdown file references, relative to the current document, if they start with a certain prefix :relative-images: Make Markdown image references, relative to the current document :::{myst-example} ```{literalinclude} examples/example_relative_include.txt ``` ```{include} examples/example_relative_include.txt :heading-offset: 3 :relative-docs: .. :relative-images: ``` ::: Additional options: :encoding: The text encoding of the external file ::::{admonition} Including to/from reStructuredText files :class: tip dropdown As explained in [this section](#syntax/directives/parsing), all MyST directives will parse their content as Markdown. So to include rST, we must first "wrap" the directive in the [eval-rst directive](#syntax/directives/parsing): :::{myst-example} ```{eval-rst} .. include:: ../faq/snippets/include-rst.rst ``` ::: To include a MyST file within a ReStructuredText file, we can use the `parser` option of the `include` directive: ```rst .. include:: include.md :parser: myst_parser.sphinx_ ``` :::{important} The `parser` option requires `docutils>=0.17` ::: :::: (syntax/toctree)= ## Using `toctree` to include other documents as children To structure a project, with multiple documents, the [toctree directive](inv:sphinx:*:directive#toctree) is utilised. The designate documents as children of the current document, building up a nested hierarchy of documents starting from a [`root_doc`](inv:sphinx:*:confval#root_doc). :::{myst-example} ```{toctree} examples/content_child1.md examples/content_child2.md ``` ::: The `toctree` has options: :glob: Indicates that all entries are then matched against the list of available documents, and matches are inserted into the list alphabetically The following options to control how it is displayed within the document: :caption: A title for this toctree :hidden: Do not show within the document :includehidden: Included child hidden `toctree` entries :maxdepth: The depth of document sub-headings shown :titlesonly: Only show the first top-level heading :reversed: Reverse the order of the entries in the list Additional options: :name: Allow the `toctree` to be referenced :numbered: Number all headings in children. If an integer is specified, then this is the depth to number down to :::{tip} Sub-toctrees are automatically numbered, so don’t give the `:numbered:` flag to those ::: MyST-Parser-4.0.0/docs/syntax/reference.md000066400000000000000000000132701465415536200203550ustar00rootroot00000000000000(syntax-tokens)= # Syntax tokens This page serves as a reference for the syntax that makes of MyST Markdown. :::{seealso} For more description and explanation of MyST syntax, see the [syntax guide](typography.md). ::: ## Block (Multi-line) Tokens Block tokens span multiple lines of content. They are broken down into two sections: - {ref}`extended-block-tokens` contains *extra* tokens that are not in CommonMark. - {ref}`commonmark-block-tokens` contains CommonMark tokens that also work, for reference. :::{note} Because MyST markdown was inspired by functionality that exists in reStructuredText, we have shown equivalent rST syntax for many MyST markdown features below. ::: (extended-block-tokens)= ### Extended block tokens `````{list-table} :header-rows: 1 :widths: 10 20 20 * - Token - Description - Example * - FrontMatter - A YAML block at the start of the document enclosed by `---` - ```yaml --- key: value --- ``` * - Directives - enclosed in 3 or more backticks followed by the directive name wrapped in curly brackets `{}`. See {ref}`syntax/directives` for more details. - ````md ```{directive} :option: value content ``` ```` * - Math - `$$` (default) or `\[`...`\]` characters wrapping multi-line math, or even direct [amsmath](https://ctan.org/pkg/amsmath) LaTeX equations (optional). See {ref}`syntax/math` for more information. - ```latex $$ a=1 $$ ``` * - Table - Standard markdown table style, with pipe separation. - ```md | a | b | | :--- | ---: | | c | d | ``` * - LineComment - A commented line. See {ref}`syntax/comments` for more information. - ```latex % this is a comment ``` * - BlockBreak - Define blocks of text. See {ref}`syntax/blockbreaks` for more information. - ```md +++ {"meta": "data"} ``` * - Footnote - A definition for a referencing footnote, that is placed at the bottom of the document. See {ref}`syntax/footnotes` for more details. - ```md [^ref]: Some footnote text ``` * - Admonitions (optional) - An alternative approach for admonition style directives only, which has the benefit of allowing the content to be rendered in standard markdown editors. See [admonition directives](syntax/admonitions) for more details. - ````md :::{note} *content* ::: ```` ````` (commonmark-block-tokens)= ### CommonMark tokens `````{list-table} :header-rows: 1 :widths: 10 20 20 * - Token - Description - Example * - HTMLBlock - Any valid HTML (rendered in HTML output only) - ```html

some text

``` * - BlockCode - indented text (4 spaces or a tab) - ```md included as literal *text* ``` * - Heading - Level 1-6 headings, denoted by number of `#` - ```md ### Heading level 3 ``` * - SetextHeading - Underlined header (using multiple `=` or `-`) - ```md Header ====== ``` * - Quote - Quoted text - ```md > this is a quote ``` * - CodeFence - Enclosed in 3 or more `` ` `` or `~` with an optional language name. See {ref}`syntax/code-blocks` for more information. - ````md ```python print('this is python') ``` ```` * - ThematicBreak - Creates a horizontal line in the output - ```md --- ``` * - List - bullet points or enumerated. - ```md - item - nested item 1. numbered item ``` * - LinkDefinition - A substitution for an inline link, which can have a reference target (no spaces), and an optional title (in `"`) - ```md [key]: https://www.google.com "a title" ``` * - Paragraph - General inline text - ```md any *text* ``` ````` ## Span (Inline) Tokens Span (or inline) tokens are defined on a single line of content. They are broken down into two sections below: - {ref}`extended-span-tokens` contains *extra* tokens that are not in CommonMark. - {ref}`commonmark-span-tokens` contains CommonMark tokens that also work, for reference. (extended-span-tokens)= ### Extended inline tokens `````{list-table} :header-rows: 1 :widths: 10 20 20 * - Token - Description - Example * - Role - See {ref}`syntax/roles` for more information. - ```md {rolename}`interpreted text` ``` * - Target - Precedes element to target, e.g. header. See {ref}`syntax/targets` for more information. - ```md (target)= ``` * - Math - `$` (default) or `\(`...`\)` enclosed math. See {ref}`syntax/math` for more information. - ```latex $a=1$ or $$a=1$$ ``` * - FootReference - Reference a footnote. See {ref}`syntax/footnotes` for more details. - ```md [^abc] ``` ````` (commonmark-span-tokens)= ### CommonMark inline tokens `````{list-table} :header-rows: 1 :widths: 10 20 20 * - Token - Description - Example * - HTMLSpan - Any valid HTML (rendered in HTML output only) - ```html

some text

``` * - EscapeSequence - Escaped symbols (to avoid them being interpreted as other syntax elements) - ```md \* ``` * - AutoLink - Link that is shown in final output - ```md ``` * - InlineCode - Literal text - ```md `a=1` ``` * - LineBreak - Soft or hard (ends with spaces or backslash) - ```md A hard break\ ``` * - Image - Link to an image. You can also use HTML syntax, to include image size etc, [see here](syntax/images) for details - ```md ![alt](src "title") ``` * - Link - Reference `LinkDefinitions`. See {ref}`syntax/referencing` for more details. - ```md [text](target "title") or [text][key] ``` * - Strong - Bold text - ```md **strong** ``` * - Emphasis - Italic text - ```md *emphasis* ``` * - RawText - Any text - ```md any text ``` ````` MyST-Parser-4.0.0/docs/syntax/roles-and-directives.md000066400000000000000000000164601465415536200224460ustar00rootroot00000000000000(roles-directives)= # Roles and Directives Roles and directives provide a way to extend the syntax of MyST in an unbound manner, by interpreting a chuck of text as a specific type of markup, according to its name. Mostly all [docutils roles](https://docutils.sourceforge.io/docs/ref/rst/roles.html), [docutils directives](https://docutils.sourceforge.io/docs/ref/rst/directives.html), [Sphinx roles](inv:sphinx#usage/*/roles), or [Sphinx directives](inv:sphinx#usage/*/directives) can be used in MyST. ## Syntax (syntax/directives)= ### Directives - a block-level extension point Directives syntax is defined with triple-backticks and curly-brackets. It is effectively a Markdown code fence with curly brackets around the language, and a directive name in place of a language name. Here is the basic structure: `````{list-table} :header-rows: 1 * - MyST - reStructuredText * - ````md ```{directivename} arguments :key1: val1 :key2: val2 This is directive content ``` ```` - ```rst .. directivename:: arguments :key1: val1 :key2: val2 This is directive content ``` ````` For example: :::{myst-example} ```{admonition} This is my admonition This is my note ``` ::: #### Parameterizing directives (options) Many directives can take key/value pairs, in an optional *option block* at the start of the directive. The option block starts on the first line of the directive body and is defined by a set of lines prefixed with `:`. The block then follows a YAML-like mapping syntax, where the key (string) and value (string) are separated by a colon (`:`): :::{myst-example} ```{code-block} python :lineno-start: 10 :emphasize-lines: 1, 3 a = 2 print('my 1st line') print(f'my {a}nd line') ``` ::: The values can be enclosed in quotes (`"` or `'`) and span multiple lines. Newline behaviour can be controlled by starting the value with `|` (preserve newlines) or `>` (collapse newlines): :::{myst-example} ```{code-block} python :lineno-start: 10 :emphasize-lines: "1, 3" :caption: | : This is my : multi-line caption. It is *pretty nifty* ;-) a = 2 print('my 1st line') print(f'my {a}nd line') ``` ::: ::::{dropdown} Old-style options block Option blocks can also be enclosed by `---`, with no `:` prefix, for example: :::{myst-example} ```{code-block} python --- lineno-start: 10 emphasize-lines: 1, 3 caption: | This is my multi-line caption. It is *pretty nifty* ;-) --- a = 2 print('my 1st line') print(f'my {a}nd line') ``` ::: :::: (syntax/directives/parsing)= #### How directives parse content Some directives parse the content that is in their content block. MyST parses this content **as Markdown**. This means that MyST markdown can be written in the content areas of any directives written in MyST markdown. For example: :::{myst-example} ```{admonition} My markdown link Here is [markdown link syntax](https://jupyter.org) ``` ::: As a short-hand for directives that require no arguments, and when no parameter options are used (see below), you may start the content directly after the directive name. :::{myst-example} ```{note} Notes require **no** arguments, so content can start here. ``` ::: For special cases, MySt also offers the `eval-rst` directive. This will parse the content **as ReStructuredText**: :::{myst-example} ```{eval-rst} .. figure:: img/fun-fish.png :width: 100px :name: rst-fun-fish Party time! A reference from inside: :ref:`rst-fun-fish` A reference from outside: :ref:`syntax/directives/parsing` ``` ::: Note how the text is integrated into the rest of the document, so we can also reference [party fish](rst-fun-fish) anywhere else in the documentation. #### Nesting directives You can nest directives by ensuring that the tick-lines corresponding to the outermost directive are longer than the tick-lines for the inner directives. For example, nest a warning inside a note block like so: :::{myst-example} ````{note} The next info should be nested ```{warning} Here's my warning ``` ```` ::: You can indent inner-code fences, so long as they aren't indented by more than 3 spaces. Otherwise, they will be rendered as "raw code" blocks: :::{myst-example} ````{note} The warning block will be properly-parsed ```{warning} Here's my warning ``` But the next block will be parsed as raw text ```{warning} Here's my raw text warning that isn't parsed... ``` ```` ::: This can really be abused if you'd like ;-) :::{myst-example} ``````{note} The next info should be nested `````{warning} Here's my warning ````{admonition} Yep another admonition ```python # All this fuss was about this boring python?! print('yep!') ``` ```` ````` `````` ::: #### Markdown-friendly directives Want to use syntax that renders correctly in standard Markdown editors? See [the extended syntax option](syntax/colon_fence). ::::{myst-example} :::{note} This text is **standard** *Markdown* ::: :::: (syntax/roles)= ### Roles - an in-line extension point Roles are similar to directives - they allow you to define arbitrary new functionality, but they are used *in-line*. To define an in-line role, use the following form: ````{list-table} :header-rows: 1 * - MyST - reStructuredText * - ````md {role-name}`role content` ```` - ```rst :role-name:`role content` ``` ```` For example: :::{myst-example} Since Pythagoras, we know that {math}`a^2 + b^2 = c^2` ::: You can use roles to do things like reference equations and other items in your book. For example: :::{myst-example} ```{math} e^{i\pi} + 1 = 0 :label: euler ``` Euler's identity, equation {math:numref}`euler`, was elected one of the most beautiful mathematical formulas. ::: Euler's identity, equation {math:numref}`euler`, was elected one of the most beautiful mathematical formulas. #### How roles parse content The content of roles is parsed differently depending on the role that you've used. Some roles expect inputs that will be used to change functionality. For example, the `ref` role will assume that input content is a reference to some other part of the site. However, other roles may use the MyST parser to parse the input as content. Some roles also **extend their functionality** depending on the content that you pass. For example, following the `ref` example above, if you pass a string like this: `Content to display `, then the `ref` will display `Content to display` and use `myref` as the reference to look up. How roles parse this content depends on the author that created the role. (syntax/roles/special)= ## MyST only roles This section contains information about special roles and directives that come bundled with the MyST Parser Sphinx extension. ### Insert the date and reading time ```{versionadded} 0.14.0 The `sub-ref` role and word counting. ``` You may insert the "last updated" date and estimated reading time into your document via substitution definitions, which can be accessed *via* the `sub-ref` role. For example: :::{myst-example} > {sub-ref}`today` | {sub-ref}`wordcount-words` words | {sub-ref}`wordcount-minutes` min read ::: `today` is replaced by either the date on which the document is parsed, with the format set by , or the `today` variable if set in the configuration file. The reading speed is computed using the `myst_words_per_minute` configuration (see the [Sphinx configuration options](sphinx/config-options)). MyST-Parser-4.0.0/docs/syntax/tables.md000066400000000000000000000141031465415536200176650ustar00rootroot00000000000000# Tables ## Markdown syntax Tables can be written using the standard [Github Flavoured Markdown syntax](https://github.github.com/gfm/#tables-extension-): :::{myst-example} | foo | bar | | --- | --- | | baz | bim | ::: Cells in a column can be aligned using the `:` character: :::{myst-example} | left | center | right | | :--- | :----: | ----: | | a | b | c | ::: :::{admonition} Aligning cells in Sphinx HTML themes :class: tip dropdown Text is aligned by assigning `text-left`, `text-center`, or `text-right` to the cell. It is then necessary for the theme you are using to include the appropriate css styling. ```html

left

a

``` ::: ## Table with captions The `table` directive can be used to create a table with a caption: ::::{myst-example} :::{table} Table caption :widths: auto :align: center | foo | bar | | --- | --- | | baz | bim | ::: :::: The following options are recognized: :::{admonition} List table options :class: hint `align` : "left", "center", or "right" : The horizontal alignment of the table. `width` : [length](units/length) or [percentage](units/percentage) : Sets the width of the table to the specified length or percentage of the line width. : If omitted, the renderer determines the width of the table based on its contents or the column widths. `widths` : "auto", "grid", or a list of integers : Explicitly set column widths. Specifies relative widths if used with the width option. : "auto" delegates the determination of column widths to the backend renderer. : "grid" determines column widths from the widths of the input columns (in characters). ::: ## List tables The `list-table` directive is used to create a table from data in a uniform two-level bullet list. "Uniform" means that each sublist (second-level list) must contain the same number of list items. ::::{myst-example} :::{list-table} Frozen Delights! :widths: 15 10 30 :header-rows: 1 * - Treat - Quantity - Description * - Albatross - 2.99 - On a stick! * - Crunchy Frog - 1.49 - If we took the bones out, it wouldn't be crunchy, now would it? * - Gannet Ripple - 1.99 - On a stick! ::: :::: The following options are recognized: :::{admonition} List table options :class: hint `align` : "left", "center", or "right" : The horizontal alignment of the table. `header-rows` : integer : The number of rows of list data to use in the table header. Defaults to 0. `stub-columns` : integer : The number of table columns to use as stubs (row titles, on the left). Defaults to 0. `width` : [length](units/length) or [percentage](units/percentage) : Sets the width of the table to the specified length or percentage of the line width. : If omitted, the renderer determines the width of the table based on its contents or the column widths. `widths` : integer `[integer...]` or "auto" : A list of relative column widths. The default is equal-width columns (100%/#columns). : "auto" delegates the determination of column widths to the output builder. ``class`` : A space-separated list of CSS classes to add to the table. ``name`` : A reference target for the admonition (see [cross-referencing](#syntax/referencing)). ::: ## CSV tables The `csv-table` directive is used to create a table from Comma-Separated-Values data. :::{myst-example} ```{csv-table} Frozen Delights! :header: > : "Treat", "Quantity", "Description" :widths: 15, 10, 30 "Albatross", 2.99, "On a stick!" "Crunchy Frog", 1.49, "If we took the bones out, it wouldn't be crunchy, now would it?" "Gannet Ripple", 1.99, "On a stick!" ``` ::: The following options are recognized: :::{admonition} CSV table options :class: hint `align` : "left", "center", or "right" : The horizontal alignment of the table. `delim` : char | "tab" | "space" : A one-character string used to separate fields. Defaults to , (comma). May be specified as a Unicode code point; see the unicode directive for syntax details. `encoding` : string : The text encoding of the external CSV data (file or URL). Defaults to the document's input_encoding. `escape` : char : A one-character string used to escape the delimiter or quote characters. May be specified as a Unicode code point; see the unicode directive for syntax details. Used when the delimiter is used in an unquoted field, or when quote characters are used within a field. The default is to double-up the character, e.g. "He said, ""Hi!""" `file` : string (newlines removed) : The local filesystem path to a CSV data file. `header` : CSV data : Supplemental data for the table header, added independently of and before any header-rows from the main CSV data. Must use the same CSV format as the main CSV data. `header-rows` : integer : The number of rows of CSV data to use in the table header. Defaults to 0. `keepspace` : flag : Treat whitespace immediately following the delimiter as significant. The default is to ignore such whitespace. `quote` : char : A one-character string used to quote elements containing the delimiter or which start with the quote character. Defaults to " (quote). May be specified as a Unicode code point; see the unicode directive for syntax details. `stub-columns` : integer : The number of table columns to use as stubs (row titles, on the left). Defaults to 0. `url` : string (whitespace removed) : An Internet URL reference to a CSV data file. `widths` : integer, `[integer...]` or "auto" : A list of relative column widths. The default is equal-width columns (100%/#columns). : "auto" delegates the determination of column widths to the backend renderer. `width` : [length](units/length) or [percentage](units/percentage) : Sets the width of the table to the specified length or percentage of the line width. If omitted, the renderer determines the width of the table based on its contents or the column widths. ``class`` : A space-separated list of CSS classes to add to the table. ``name`` : A reference target for the admonition (see [cross-referencing](#syntax/referencing)). ::: MyST-Parser-4.0.0/docs/syntax/typography.md000066400000000000000000000173751465415536200206370ustar00rootroot00000000000000(syntax/core)= # Typography MyST is a strict superset of the [CommonMark syntax specification](https://spec.commonmark.org/). It adds features focussed on scientific and technical documentation authoring, as detailed below. ## Headings Markdown syntax denotes headers starting with between 1 to 6 #. :::{myst-example} ### Heading Level 3 ::: Note, that headings that are not at the root level of the document will not be included in the table of contents. Using the [attrs_block](#syntax/attributes/block) extension, you can also add classes to headings :::{myst-example} > {.bg-primary} > ### Paragraph heading ::: :::{seealso} To structure single and multiple documents into table of contents, see the [organising content section](#organising-content). To reference a heading in your text, see the [cross-referencing section](#syntax/referencing). ::: ## Paragraphs Paragraphs are block of text separated by a blank line. Using the [attrs_block](#syntax/attributes/block) extension, you can also add classes to paragraphs: :::{myst-example} {.bg-primary} Here is a paragraph with a class to control its formatting. ::: (syntax/blockbreaks)= ## Thematic breaks You can create a thematic break, to break content between themes, using three or more `*`, `-`, or `_` characters on a line by themselves. :::{myst-example} :alt-output:
* * * ::: ## Inline Text Formatting Standard inline formatting including bold, italic, code, as well as escaped symbols and line breaks: :::{myst-example} **strong**, _emphasis_, `literal text`, \*escaped symbols\* ::: The [strikethrough](syntax/strikethrough) extension allows you to add strike-through text: :::{myst-example} ~~strikethrough with *emphasis*~~ ::: The [smartquotes](syntax/smartquotes) and [replacements](syntax/replacements) extensions can improve the typography of common symbols: :::{myst-example} Smart-quotes 'single quotes' and "double quotes". +-, --, ---, ... and other replacements. ::: Using the [attrs_inline](syntax/attributes/inline) extension, you can also add classes to inline text spans: :::{myst-example} A paragraph with a span of [text with attributes]{.bg-warning} ::: ## Line Breaks To put a line break, without a paragraph, use a `\` followed by a new line. This corresponds to a `
` in HTML and `\\` in LaTeX. :::{myst-example} **Fleas** \ Adam \ Had 'em. ::: ```{versionadded} 3.0 ``` Alternatively, you can use the `line-block` directive, which constructs a block where all line breaks (and also initial indentations) are respected: ::::{myst-example} :::{line-block} **Fleas** Adam Had 'em. ::: :::: ## Bullet points and numbered lists You can use bullet points and numbered lists as you would in standard Markdown. Starting a line with either a `-` or `*` for a bullet point, and `1.` for numbered lists. These lists can be nested using two spaces at the start of the line. :::{myst-example} - Lists can start with `-` or `*` * My other, nested * bullet point list! 1. My numbered list 2. has two points ::: For numbered lists, you can start following lines with any number, meaning they don't have to be in numerical order, and this will not change the rendered output. The exception is the first number, which if it is not `1.` this will change the start number of the list. ::::{admonition} Alternate numbering styles :class: tip dropdown Using the [attrs_block](#syntax/attributes/block) extension, you can also specify a alternative numbering styles: :::{myst-example} {style=lower-alpha} 1. a 2. b {style=upper-alpha} 1. a 2. b {style=lower-roman} 1. a 2. b {style=upper-roman} 1. a 2. b ::: :::: Using the [tasklist](syntax/tasklists) extension, you can also create task lists: :::{myst-example} - [ ] An item that needs doing - [x] An item that is complete ::: ## Subscript & Superscript For inline typography for subscript and superscript formatting, the `sub` and `sup` {{role}}, can be used respectively. :::{myst-example} H{sub}`2`O, and 4{sup}`th` of July ::: ## Quotations Quotations are controlled with standard Markdown syntax, by inserting a caret (>) symbol in front of one or more lines of text. :::{myst-example} > We know what we are, but know not what we may be. ::: Using the [attrs_block](#syntax/attributes/block) extension, you can also add an `attribution` attribute to a block quote: :::{myst-example} {attribution="Hamlet act 4, Scene 5"} > We know what we are, but know not what we may be. ::: (syntax/glossaries)= ## Definition lists and glossaries Using the [definition lists](syntax/definition-lists) extension, you can define terms in your documentation, using the syntax: :::{myst-example} Term 1 : Definition Term 2 : Longer definition With multiple paragraphs - And bullet points ::: Using the [attrs_block](#syntax/attributes/block) extension, you can also add a `glossary` class to a definition list, that will allow you to reference terms in your text using the [`term` role](syntax/roles): :::{myst-example} {.glossary} my term : Definition of the term {term}`my term` ::: ## Field lists Using the [field lists](syntax/fieldlists) extension, you can create field lists, which are useful in source code documentation (see [Sphinx docstrings](inv:sphinx#info-field-lists)): :::{myst-example} :param arg1: A description of arg1 :param arg2: A longer description, with multiple lines. - And bullet points :return: A description of the return value ::: (syntax/comments)= ## Comments You may add comments by putting the `%` character at the beginning of a line. This will prevent the line from being parsed into the output document. For example, this won't be parsed into the document: :::{myst-example} % my comment ::: ::::{admonition} Comments split paragraphs :class: warning dropdown Since comments are a block-level entity, they will terminate the previous block. In practical terms, this means that the following lines will be broken up into two paragraphs, resulting in a new line between them: :::{myst-example} a line % a comment another line ::: :::: (syntax/footnotes)= ## Footnotes Footnotes use the [pandoc specification](https://pandoc.org/MANUAL.html#footnotes). Their labels **start with `^`** and can then be any alphanumeric string (no spaces), which is case-insensitive. - If the label is an integer, then it will always use that integer for the rendered label (i.e. they are manually numbered). - For any other labels, they will be auto-numbered in the order which they are referenced, skipping any manually numbered labels. All footnote definitions are collected, and displayed at the bottom of the page (in the order they are referenced). Note that un-referenced footnote definitions will not be displayed. :::{myst-example} - This is a manually-numbered footnote reference.[^3] - This is an auto-numbered footnote reference.[^myref] [^myref]: This is an auto-numbered footnote definition. [^3]: This is a manually-numbered footnote definition. ::: Any preceding text after a footnote definitions, which is indented by four or more spaces, will also be included in the footnote definition, and the text is rendered as MyST Markdown, e.g. :::{myst-example} A longer footnote definition.[^mylongdef] [^mylongdef]: This is the _**footnote definition**_. That continues for all indented lines - even other block elements Plus any preceding unindented lines, that are not separated by a blank line This is not part of the footnote. ::: By default, the footnotes will be collected, sorted and moved to the end of the document, with a transition line placed before any footnotes (that has a `footnotes` class). This behaviour can be modified using the [configuration options](#sphinx/config-options): ```python myst_footnote_sort = False myst_footnote_transition = False ``` ```{versionadded} 4.0.0 ``myst_footnote_sort`` configuration option ``` MyST-Parser-4.0.0/example-include.md000066400000000000000000000001071465415536200172100ustar00rootroot00000000000000[Used in how-to](docs/faq/index.md) ![alt](docs/_static/logo-wide.svg) MyST-Parser-4.0.0/myst_parser/000077500000000000000000000000001465415536200161645ustar00rootroot00000000000000MyST-Parser-4.0.0/myst_parser/__init__.py000066400000000000000000000007371465415536200203040ustar00rootroot00000000000000"""An extended [CommonMark](https://spec.commonmark.org/) compliant parser, with bridges to [docutils](https://docutils.sourceforge.io/) and [Sphinx](https://github.com/sphinx-doc/sphinx). """ __version__ = "4.0.0" def setup(app): """Initialize the [Sphinx](https://github.com/sphinx-doc/sphinx) extension.""" from myst_parser.sphinx_ext.main import setup_sphinx setup_sphinx(app, load_parser=True) return {"version": __version__, "parallel_read_safe": True} MyST-Parser-4.0.0/myst_parser/_compat.py000066400000000000000000000006161465415536200201630ustar00rootroot00000000000000"""Helpers for cross compatibility across dependency versions.""" from collections.abc import Callable, Iterable from docutils.nodes import Element def findall(node: Element) -> Callable[..., Iterable[Element]]: """Iterate through""" # findall replaces traverse in docutils v0.18 # note a difference is that findall is an iterator return getattr(node, "findall", node.traverse) MyST-Parser-4.0.0/myst_parser/_docs.py000066400000000000000000000330631465415536200176320ustar00rootroot00000000000000"""Code to use internally, for documentation.""" from __future__ import annotations import contextlib import io from collections.abc import Sequence from typing import Union, get_args, get_origin from docutils import nodes from docutils.core import Publisher from docutils.parsers.rst import directives from sphinx.directives import other from sphinx.transforms.post_transforms import SphinxPostTransform from sphinx.util import logging from sphinx.util.docutils import SphinxDirective from myst_parser.parsers.docutils_ import to_html5_demo from .config.main import MdParserConfig from .parsers.docutils_ import Parser as DocutilsParser from .warnings_ import MystWarnings LOGGER = logging.getLogger(__name__) class StripUnsupportedLatex(SphinxPostTransform): """Remove unsupported nodes from the doctree.""" default_priority = 900 def run(self, **kwargs): if self.app.builder.format != "latex": return from docutils import nodes for node in self.document.findall(): if node.tagname == "image" and node["uri"].endswith(".svg"): node.parent.replace(node, nodes.inline("", "Removed SVG image")) if node.tagname == "mermaid": node.parent.replace(node, nodes.inline("", "Removed Mermaid diagram")) class NumberSections(SphinxPostTransform): """Number sections (html only)""" default_priority = 710 # same as docutils.SectNum formats = ("html",) def run(self, **kwargs): min_heading_level = 2 max_heading_level = 3 stack: list[tuple[list[int], nodes.Element]] = [([], self.document)] while stack: path, node = stack.pop() if len(path) >= min_heading_level: title = node[0] text = ( ".".join(str(i) for i in path[min_heading_level - 1 :]) + "." + (" " * 2) ) # docutils SectNum transform title.insert(0, nodes.raw("", text, format="html")) title["auto"] = 1 if len(path) < max_heading_level: i = 0 for child in node.children: if isinstance(child, nodes.section): i += 1 stack.append((path + [i], child)) class _ConfigBase(SphinxDirective): """Directive to automate rendering of the configuration.""" @staticmethod def table_header(): return [ "```````{list-table}", ":header-rows: 1", ":widths: 15 10 20", "", "* - Name", " - Type", " - Description", ] @staticmethod def field_default(value): default = " ".join(f"{value!r}".splitlines()) return default @staticmethod def field_type(field): ftypes: Sequence[str] ftypes = ( get_args(field.type) if get_origin(field.type) is Union else [field.type] ) ctype = " | ".join(str("None" if ftype is None else ftype) for ftype in ftypes) ctype = " ".join(ctype.splitlines()) ctype = ctype.replace("typing.", "") ctype = ctype.replace("typing_extensions.", "") for tname in ("str", "int", "float", "bool"): ctype = ctype.replace(f"", tname) return ctype class MystConfigDirective(_ConfigBase): option_spec = { "sphinx": directives.flag, "extensions": directives.flag, "scope": lambda x: directives.choice(x, ["global", "local"]), } def run(self): """Run the directive.""" config = MdParserConfig() text = self.table_header() count = 0 for name, value, field in config.as_triple(): if field.metadata.get("deprecated"): continue # filter by sphinx options if "sphinx" in self.options and "sphinx" in field.metadata.get("omit", []): continue if "extensions" in self.options: if not field.metadata.get("extension"): continue else: if field.metadata.get("extension"): continue if self.options.get("scope") == "local" and field.metadata.get( "global_only" ): continue if self.options.get("scope") == "global": name = f"myst_{name}" description = " ".join(field.metadata.get("help", "").splitlines()) if field.metadata.get("extension"): description = f"{field.metadata.get('extension')}: {description}" default = self.field_default(value) ctype = field.metadata.get("doc_type") or self.field_type(field) text.extend( [ f"* - `{name}`", f" - `{ctype}`", f" - {description} (default: `{default}`)", ] ) count += 1 if not count: return [] text.append("```````") node = nodes.Element() self.state.nested_parse(text, 0, node) return node.children class DocutilsCliHelpDirective(SphinxDirective): """Directive to print the docutils CLI help.""" has_content = False required_arguments = 0 optional_arguments = 0 final_argument_whitespace = False def run(self): """Run the directive.""" stream = io.StringIO() pub = Publisher(parser=DocutilsParser()) with contextlib.redirect_stdout(stream): try: pub.process_command_line( ["--help"], usage="myst-docutils- [options] [ []]", ) except SystemExit as exc: assert not exc.code return [nodes.literal_block("", stream.getvalue())] class DirectiveDoc(SphinxDirective): """Load and document a directive.""" required_arguments = 1 # name of the directive has_content = True def run(self): """Run the directive.""" name = self.arguments[0] # load the directive class klass, _ = directives.directive( name, self.state.memo.language, self.state.document ) if klass is None: LOGGER.warning(f"Directive {name} not found.", line=self.lineno) return [] content = " ".join(self.content) text = f"""\ :Name: `{name}` :Description: {content} :Arguments: {klass.required_arguments} required, {klass.optional_arguments} optional :Content: {'yes' if klass.has_content else 'no'} :Options: """ if klass.option_spec: text += " name | type\n -----|------\n" for key, func in klass.option_spec.items(): text += f" {key} | {convert_opt(name, func)}\n" node = nodes.Element() self.state.nested_parse(text.splitlines(), 0, node) return node.children def convert_opt(name, func): """Convert an option function to a string.""" if func is directives.flag: return "flag" if func is directives.unchanged: return "text" if func is directives.unchanged_required: return "text" if func is directives.class_option: return "space-delimited list" if func is directives.uri: return "URI" if func is directives.path: return "path" if func is int: return "integer" if func is directives.positive_int: return "integer (positive)" if func is directives.nonnegative_int: return "integer (non-negative)" if func is directives.positive_int_list: return "space/comma-delimited list of integers (positive)" if func is directives.percentage: return "percentage" if func is directives.length_or_unitless: return "length or unitless" if func is directives.length_or_percentage_or_unitless: return "length, percentage or unitless" if func is other.int_or_nothing: return "integer" return "" class MystWarningsDirective(SphinxDirective): """Directive to print all known warnings.""" has_content = False required_arguments = 0 optional_arguments = 0 final_argument_whitespace = False def run(self): """Run the directive.""" from sphinx.pycode import ModuleAnalyzer analyzer = ModuleAnalyzer.for_module(MystWarnings.__module__) qname = MystWarnings.__qualname__ analyzer.analyze() warning_names = [ (e.value, analyzer.attr_docs[(qname, e.name)]) for e in MystWarnings ] text = [f"- `myst.{name}`: {' '.join(doc)}" for name, doc in warning_names] node = nodes.Element() self.state.nested_parse(text, 0, node) return node.children class MystExampleDirective(SphinxDirective): """Directive to create an example, showing the source and output.""" has_content = True option_spec = { "alt-output": directives.unchanged, "highlight": directives.unchanged, # "html": directives.flag, } def run(self): """Run the directive.""" content_str = "\n".join(self.content) output_str = self.options.get("alt-output", content_str) highlight = self.options.get("highlight", "myst") backticks = "```" while backticks in content_str: backticks += "`" content = f""" {backticks}``{{div}} myst-example {backticks}`{{div}} myst-example-source {backticks}{highlight} {content_str} {backticks} {backticks}` {backticks}`{{div}} myst-example-render {output_str} {backticks}` {backticks}`` """ node_ = nodes.Element() self.state.nested_parse(content.splitlines(), self.content_offset, node_) return node_.children class MystAdmonitionDirective(SphinxDirective): """Directive to show a set of admonitions, in a tab set.""" required_arguments = 1 final_argument_whitespace = True def run(self): """Run the directive.""" types = [t.strip() for t in self.arguments[0].split(",")] content = "::::{tab-set}" for type_ in types: content += f""" :::{{tab-item}} {type_} ```{{{type_}}} This is a {type_} ``` ::: """ content += "::::" node_ = nodes.Element() self.state.nested_parse(content.splitlines(), self.content_offset, node_) return node_.children class MystToHTMLDirective(SphinxDirective): """Directive to convert MyST to HTML.""" has_content = True optional_arguments = 1 final_argument_whitespace = True option_spec = { "extensions": directives.unchanged, } def run(self): """Run the directive.""" content_str = "\n".join(self.content) kwargs = {} cli_opt = "" if "extensions" in self.options: ext = self.options["extensions"].split(",") kwargs["myst_enable_extensions"] = ext cli_opt += f"--myst-enable-extensions={self.options['extensions']}" html = to_html5_demo(content_str, **kwargs) content = f"""\ ::::myst-example ```bash myst-docutils-demo example.md {cli_opt} ``` ```myst {content_str} ``` ```html {html} ``` :::: """ node_ = nodes.Element() self.state.nested_parse(content.splitlines(), self.content_offset, node_) return node_.children ### MyST Lexer ### # TODO when some more work and testing, this should be made available publicly from pygments import token # noqa: E402 from pygments.lexer import bygroups, inherit, this, using # noqa: E402 from pygments.lexers.markup import MarkdownLexer # noqa: E402 class MystLexer(MarkdownLexer): """A custom lexer for MyST Markdown.""" name = "MyST" aliases = ["myst"] filenames = ["*.myst"] mimetypes = ["text/x-myst"] tokens = { "root": [ # (target)= ( r"^(\()([^\n]+)(\)=)(\n)", bygroups( token.Punctuation, token.Name.Label, token.Punctuation, token.Text ), ), # ::: (r"^([\:]{3,})(\n)", bygroups(token.Punctuation, token.Text)), # :::name other # TODO this seems to "eat" the next line # (r"^([\:]{3,})([^\s\n]+)(\s+)([^\n]+)(\n)", # bygroups(token.Punctuation, token.Name.Tag, token.Whitespace, token.Text,token.Text)), # :::name ( r"^([\:]{3,})([^\n]+)(\n)", bygroups(token.Punctuation, token.Name.Tag, token.Text), ), # :name: value ( r"^(\:)([^\n\:]+)(\:)([^\n]+)(\n)", bygroups( token.Punctuation, token.Generic.Strong, token.Punctuation, using(this, state="inline"), token.Text, ), ), inherit, ], "inline": [ # escape (we have to copy this from the parent class) (r"\\.", token.Text), # {name} ( r"(\{)([a-zA-Z0-9+:-]+)(\})", bygroups(token.Punctuation, token.Operator.Word, token.Punctuation), ), # ( r"(<)(http|https|mailto|project|path|inv)(\:)([^\s>]+)(>)", bygroups( token.Punctuation, token.String.Other, token.String.Other, token.Name.Label, token.Punctuation, ), ), inherit, ], } MyST-Parser-4.0.0/myst_parser/cli.py000066400000000000000000000025351465415536200173120ustar00rootroot00000000000000import argparse import sys from markdown_it.renderer import RendererHTML from markdown_it.rules_core import StateCore from mdit_py_plugins.anchors import anchors_plugin from myst_parser.config.main import MdParserConfig from myst_parser.parsers.mdit import create_md_parser def print_anchors(args=None): """ """ arg_parser = argparse.ArgumentParser() arg_parser.add_argument( "input", nargs="?", type=argparse.FileType("r", encoding="utf8"), default=sys.stdin, help="Input file (default stdin)", ) arg_parser.add_argument( "-o", "--output", type=argparse.FileType("w", encoding="utf8"), default=sys.stdout, help="Output file (default stdout)", ) arg_parser.add_argument( "-l", "--level", type=int, default=2, help="Maximum heading level." ) args = arg_parser.parse_args(args) parser = create_md_parser(MdParserConfig(), RendererHTML) parser.use(anchors_plugin, max_level=args.level) def _filter_plugin(state: StateCore) -> None: state.tokens = [ t for t in state.tokens if t.type.startswith("heading_") and int(t.tag[1]) <= args.level ] parser.use(lambda p: p.core.ruler.push("filter", _filter_plugin)) text = parser.render(args.input.read()) args.output.write(text) MyST-Parser-4.0.0/myst_parser/config/000077500000000000000000000000001465415536200174315ustar00rootroot00000000000000MyST-Parser-4.0.0/myst_parser/config/__init__.py000066400000000000000000000001241465415536200215370ustar00rootroot00000000000000"""This module holds the global configuration for the parser ``MdParserConfig``.""" MyST-Parser-4.0.0/myst_parser/config/dc_validators.py000066400000000000000000000121311465415536200226170ustar00rootroot00000000000000"""Validators for dataclasses, mirroring those of https://github.com/python-attrs/attrs.""" from __future__ import annotations import dataclasses as dc from collections.abc import Sequence from typing import Any, Protocol def validate_field(inst: Any, field: dc.Field, value: Any) -> None: """Validate the field of a dataclass, according to a `validator` function set in the field.metadata. The validator function should take as input (inst, field, value) and raise an exception if the value is invalid. """ if "validator" not in field.metadata: return if isinstance(field.metadata["validator"], list): for validator in field.metadata["validator"]: validator(inst, field, value) else: field.metadata["validator"](inst, field, value) def validate_fields(inst: Any) -> None: """Validate the fields of a dataclass, according to `validator` functions set in the field metadata. This function should be called in the `__post_init__` of the dataclass. The validator function should take as input (inst, field, value) and raise an exception if the value is invalid. """ for field in dc.fields(inst): validate_field(inst, field, getattr(inst, field.name)) class ValidatorType(Protocol): def __call__( self, inst: Any, field: dc.Field, value: Any, suffix: str = "" ) -> None: ... def any_(inst, field, value, suffix=""): """ A validator that does not perform any validation. """ def instance_of(type_: type[Any] | tuple[type[Any], ...]) -> ValidatorType: """ A validator that raises a `TypeError` if the initializer is called with a wrong type for this particular attribute (checks are performed using `isinstance` therefore it's also valid to pass a tuple of types). :param type_: The type to check for. """ def _validator(inst, field, value, suffix=""): """ We use a callable class to be able to change the ``__repr__``. """ if not isinstance(value, type_): raise TypeError( f"'{field.name}{suffix}' must be of type {type_!r} " f"(got {value!r} that is a {value.__class__!r})." ) return _validator def optional(validator: ValidatorType) -> ValidatorType: """ A validator that makes an attribute optional. An optional attribute is one which can be set to ``None`` in addition to satisfying the requirements of the sub-validator. """ def _validator(inst, field, value, suffix=""): if value is None: return validator(inst, field, value, suffix=suffix) return _validator def is_callable(inst, field, value, suffix=""): """ A validator that raises a `TypeError` if the initializer is called with a value for this particular attribute that is not callable. """ if not callable(value): raise TypeError( f"'{field.name}{suffix}' must be callable " f"(got {value!r} that is a {value.__class__!r})." ) def in_(options: Sequence) -> ValidatorType: """ A validator that raises a `ValueError` if the initializer is called with a value that does not belong in the options provided. The check is performed using ``value in options``. :param options: Allowed options. """ def _validator(inst, field, value, suffix=""): try: in_options = value in options except TypeError: # e.g. `1 in "abc"` in_options = False if not in_options: raise ValueError( f"'{field.name}{suffix}' must be in {options!r} (got {value!r})" ) return _validator def deep_iterable( member_validator: ValidatorType, iterable_validator: ValidatorType | None = None ) -> ValidatorType: """ A validator that performs deep validation of an iterable. :param member_validator: Validator to apply to iterable members :param iterable_validator: Validator to apply to iterable itself """ def _validator(inst, field, value, suffix=""): if iterable_validator is not None: iterable_validator(inst, field, value, suffix=suffix) for idx, member in enumerate(value): member_validator(inst, field, member, suffix=f"{suffix}[{idx}]") return _validator def deep_mapping( key_validator: ValidatorType, value_validator: ValidatorType, mapping_validator: ValidatorType | None = None, ) -> ValidatorType: """ A validator that performs deep validation of a dictionary. :param key_validator: Validator to apply to dictionary keys :param value_validator: Validator to apply to dictionary values :param mapping_validator: Validator to apply to top-level mapping attribute (optional) """ def _validator(inst, field: dc.Field, value, suffix=""): if mapping_validator is not None: mapping_validator(inst, field, value) for key in value: key_validator(inst, field, key, suffix=f"{suffix}[{key!r}]") value_validator(inst, field, value[key], suffix=f"{suffix}[{key!r}]") return _validator MyST-Parser-4.0.0/myst_parser/config/main.py000066400000000000000000000457131465415536200207410ustar00rootroot00000000000000"""The configuration for the myst parser.""" import dataclasses as dc from collections.abc import Callable, Iterable, Iterator, Sequence from importlib import import_module from typing import ( Any, TypedDict, ) from myst_parser.warnings_ import MystWarnings from .dc_validators import ( any_, deep_iterable, deep_mapping, in_, instance_of, optional, validate_field, validate_fields, ) def check_extensions(inst: "MdParserConfig", field: dc.Field, value: Any) -> None: """Check that the extensions are a list of known strings""" if not isinstance(value, Iterable): raise TypeError(f"'{field.name}' not iterable: {value}") diff = set(value).difference( [ "amsmath", "attrs_image", "attrs_inline", "attrs_block", "colon_fence", "deflist", "dollarmath", "fieldlist", "html_admonition", "html_image", "linkify", "replacements", "smartquotes", "strikethrough", "substitution", "tasklist", ] ) if diff: raise ValueError(f"'{field.name}' items not recognised: {diff}") setattr(inst, field.name, set(value)) class UrlSchemeType(TypedDict, total=False): """Type of the external schemes dictionary.""" url: str title: str classes: list[str] def check_url_schemes(inst: "MdParserConfig", field: dc.Field, value: Any) -> None: """Check that the external schemes are of the right format.""" if isinstance(value, list | tuple): if not all(isinstance(v, str) for v in value): raise TypeError(f"'{field.name}' is not a list of strings: {value!r}") value = {v: None for v in value} if not isinstance(value, dict): raise TypeError(f"'{field.name}' is not a dictionary: {value!r}") new_dict: dict[str, UrlSchemeType | None] = {} for key, val in value.items(): if not isinstance(key, str): raise TypeError(f"'{field.name}' key is not a string: {key!r}") if val is None: new_dict[key] = val elif isinstance(val, str): new_dict[key] = {"url": val} elif isinstance(val, dict): if not all(isinstance(k, str) for k in val): raise TypeError(f"'{field.name}[{key}]' keys are not strings: {val!r}") if "url" in val and not isinstance(val["url"], str): raise TypeError( f"'{field.name}[{key}][url]' is not a string: {val['url']!r}" ) if "title" in val and not isinstance(val["title"], str): raise TypeError( f"'{field.name}[{key}][title]' is not a string: {val['title']!r}" ) if ( "classes" in val and not isinstance(val["classes"], list) and not all(isinstance(c, str) for c in val["classes"]) ): raise TypeError( f"'{field.name}[{key}][classes]' is not a list of str: {val['classes']!r}" ) new_dict[key] = val # type: ignore[assignment] else: raise TypeError( f"'{field.name}[{key}]' value is not a string or dict: {val!r}" ) setattr(inst, field.name, new_dict) def check_sub_delimiters(_: "MdParserConfig", field: dc.Field, value: Any) -> None: """Check that the sub_delimiters are a tuple of length 2 of strings of length 1""" if (not isinstance(value, tuple | list)) or len(value) != 2: raise TypeError(f"'{field.name}' is not a tuple of length 2: {value}") for delim in value: if (not isinstance(delim, str)) or len(delim) != 1: raise TypeError( f"'{field.name}' does not contain strings of length 1: {value}" ) def check_inventories(_: "MdParserConfig", field: dc.Field, value: Any) -> None: """Check that the inventories are a dict of {str: (str, Optional[str])}""" if not isinstance(value, dict): raise TypeError(f"'{field.name}' is not a dictionary: {value!r}") for key, val in value.items(): if not isinstance(key, str): raise TypeError(f"'{field.name}' key is not a string: {key!r}") if not isinstance(val, tuple | list) or len(val) != 2: raise TypeError( f"'{field.name}[{key}]' value is not a 2-item list: {val!r}" ) if not isinstance(val[0], str): raise TypeError(f"'{field.name}[{key}][0]' is not a string: {val[0]}") if not (val[1] is None or isinstance(val[1], str)): raise TypeError(f"'{field.name}[{key}][1]' is not a null/string: {val[1]}") def check_heading_slug_func( inst: "MdParserConfig", field: dc.Field, value: Any ) -> None: """Check that the heading_slug_func is a callable.""" if value is None: return if isinstance(value, str): # attempt to load the function as a python import try: module_path, function_name = value.rsplit(".", 1) mod = import_module(module_path) value = getattr(mod, function_name) except ImportError as exc: raise TypeError( f"'{field.name}' could not be loaded from string: {value!r}" ) from exc setattr(inst, field.name, value) if not callable(value): raise TypeError(f"'{field.name}' is not callable: {value!r}") def _test_slug_func(text: str) -> str: """Dummy slug function, this is imported during testing.""" # reverse the text return text[::-1] def check_fence_as_directive( inst: "MdParserConfig", field: dc.Field, value: Any ) -> None: """Check that the extensions are a sequence of known strings""" deep_iterable(instance_of(str), instance_of((list, tuple, set)))(inst, field, value) setattr(inst, field.name, set(value)) @dc.dataclass() class MdParserConfig: """Configuration options for the Markdown Parser. Note in the sphinx configuration these option names are prepended with ``myst_`` """ def __repr__(self) -> str: """Return a string representation of the config.""" # this replicates the auto-generated __repr__, # but also allows for a repr function to be defined on the field attributes: list[str] = [] for name, val, f in self.as_triple(): if not f.repr: continue val_str = f.metadata.get("repr_func", repr)(val) attributes.append(f"{name}={val_str}") return f"{self.__class__.__name__}({', '.join(attributes)})" # TODO replace commonmark_only, gfm_only with a single option commonmark_only: bool = dc.field( default=False, metadata={ "validator": instance_of(bool), "help": "Use strict CommonMark parser", }, ) gfm_only: bool = dc.field( default=False, metadata={ "validator": instance_of(bool), "help": "Use strict Github Flavoured Markdown parser", }, ) enable_extensions: set[str] = dc.field( default_factory=set, metadata={"validator": check_extensions, "help": "Enable syntax extensions"}, ) disable_syntax: Iterable[str] = dc.field( default_factory=list, metadata={ "validator": deep_iterable(instance_of(str), instance_of((list, tuple))), "help": "Disable Commonmark syntax elements", }, ) all_links_external: bool = dc.field( default=False, metadata={ "validator": instance_of(bool), "help": "Parse all links as simple hyperlinks", }, ) links_external_new_tab: bool = dc.field( default=False, metadata={ "validator": instance_of(bool), "help": "Open all external links in a new tab", }, ) url_schemes: dict[str, UrlSchemeType | None] = dc.field( default_factory=lambda: { "http": None, "https": None, "mailto": None, "ftp": None, }, metadata={ "validator": check_url_schemes, "help": "URI schemes that are converted to external links", "repr_func": lambda v: repr(tuple(v)), # Note, lists of strings will be coerced to dicts in the validator "doc_type": "list[str] | dict[str, None | str | dict]", }, ) ref_domains: Iterable[str] | None = dc.field( default=None, metadata={ "validator": optional( deep_iterable(instance_of(str), instance_of((list, tuple))) ), "help": "Sphinx domain names to search in for link references", "omit": ["docutils"], }, ) fence_as_directive: set[str] = dc.field( default_factory=set, metadata={ "validator": check_fence_as_directive, "help": "Interpret a code fence as a directive, for certain language names. " "This can be useful for fences like dot and mermaid, " "and interoperability with other Markdown renderers.", }, ) number_code_blocks: Sequence[str] = dc.field( default_factory=list, metadata={ "validator": deep_iterable(instance_of(str), instance_of((list, tuple))), "help": "Add line numbers to code blocks with these languages", }, ) title_to_header: bool = dc.field( default=False, metadata={ "validator": instance_of(bool), "help": "Convert a `title` field in the front-matter to a H1 header", }, ) heading_anchors: int = dc.field( default=0, metadata={ "validator": optional(in_([0, 1, 2, 3, 4, 5, 6, 7])), "help": "Heading level depth to assign HTML anchors", }, ) heading_slug_func: Callable[[str], str] | None = dc.field( default=None, metadata={ "validator": check_heading_slug_func, "help": ( "Function for creating heading anchors, " "or a python import path e.g. `my_package.my_module.my_function`" ), "global_only": True, "doc_type": "None | Callable[[str], str] | str", }, ) html_meta: dict[str, str] = dc.field( default_factory=dict, metadata={ "validator": deep_mapping( instance_of(str), instance_of(str), instance_of(dict) ), "merge_topmatter": True, "help": "HTML meta tags", "repr_func": lambda v: f"{{{', '.join(f'{k}: ...' for k in v)}}}", }, ) footnote_sort: bool = dc.field( default=True, metadata={ "validator": instance_of(bool), "help": "Move all footnotes to the end of the document, and sort by reference order", }, ) footnote_transition: bool = dc.field( default=True, metadata={ "validator": instance_of(bool), "help": "Place a transition before sorted footnotes", }, ) words_per_minute: int = dc.field( default=200, metadata={ "validator": instance_of(int), "help": "For reading speed calculations", }, ) # Extension specific substitutions: dict[str, Any] = dc.field( default_factory=dict, metadata={ "validator": deep_mapping(instance_of(str), any_, instance_of(dict)), "merge_topmatter": True, "help": "Substitutions mapping", "extension": "substitutions", "repr_func": lambda v: f"{{{', '.join(f'{k}: ...' for k in v)}}}", }, ) sub_delimiters: tuple[str, str] = dc.field( default=("{", "}"), repr=False, metadata={ "validator": check_sub_delimiters, "help": "Substitution delimiters", "extension": "substitutions", "omit": ["docutils"], }, ) linkify_fuzzy_links: bool = dc.field( default=True, metadata={ "validator": instance_of(bool), "help": "Recognise URLs without schema prefixes", "extension": "linkify", }, ) dmath_allow_labels: bool = dc.field( default=True, metadata={ "validator": instance_of(bool), "help": "Parse `$$...$$ (label)`", "extension": "dollarmath", }, ) dmath_allow_space: bool = dc.field( default=True, metadata={ "validator": instance_of(bool), "help": "Allow initial/final spaces in `$ ... $`", "extension": "dollarmath", }, ) dmath_allow_digits: bool = dc.field( default=True, metadata={ "validator": instance_of(bool), "help": "Allow initial/final digits `1$ ...$2`", "extension": "dollarmath", }, ) dmath_double_inline: bool = dc.field( default=False, metadata={ "validator": instance_of(bool), "help": "Parse inline `$$ ... $$`", "extension": "dollarmath", }, ) update_mathjax: bool = dc.field( default=True, metadata={ "validator": instance_of(bool), "help": "Update sphinx.ext.mathjax configuration to ignore `$` delimiters", "extension": "dollarmath", "global_only": True, "omit": ["docutils"], }, ) mathjax_classes: str = dc.field( default="tex2jax_process|mathjax_process|math|output_area", metadata={ "validator": instance_of(str), "help": "MathJax classes to add to math HTML", "extension": "dollarmath", "global_only": True, "omit": ["docutils"], }, ) enable_checkboxes: bool = dc.field( default=False, metadata={ "validator": instance_of(bool), "help": "Enable checkboxes", "extension": "tasklist", }, ) # docutils only (replicating aspects of sphinx config) suppress_warnings: Sequence[str] = dc.field( default_factory=list, metadata={ "validator": deep_iterable(instance_of(str), instance_of((list, tuple))), "help": "A list of warning types to suppress warning messages", "omit": ["sphinx"], "global_only": True, }, ) highlight_code_blocks: bool = dc.field( default=True, metadata={ "validator": instance_of(bool), "help": "Syntax highlight code blocks with pygments", "omit": ["sphinx"], }, ) inventories: dict[str, tuple[str, str | None]] = dc.field( default_factory=dict, repr=False, metadata={ "validator": check_inventories, "help": "Mapping of key to (url, inv file), for intra-project referencing", "omit": ["sphinx"], "global_only": True, }, ) def __post_init__(self): validate_fields(self) def copy(self, **kwargs: Any) -> "MdParserConfig": """Return a new object replacing specified fields with new values. Note: initiating the copy will also validate the new fields. """ return dc.replace(self, **kwargs) @classmethod def get_fields(cls) -> tuple[dc.Field, ...]: """Return all attribute fields in this class.""" return dc.fields(cls) def as_dict(self, dict_factory=dict) -> dict: """Return a dictionary of field name -> value.""" return dc.asdict(self, dict_factory=dict_factory) def as_triple(self) -> Iterable[tuple[str, Any, dc.Field]]: """Yield triples of (name, value, field).""" fields = {f.name: f for f in dc.fields(self.__class__)} for name, value in dc.asdict(self).items(): yield name, value, fields[name] def merge_file_level( config: MdParserConfig, topmatter: dict[str, Any], warning: Callable[[MystWarnings, str], None], ) -> MdParserConfig: """Merge the file-level topmatter with the global config. :param config: Global config. :param topmatter: Topmatter from the file. :param warning: Function to call with a warning (type, message). :returns: A new config object """ # get updates updates: dict[str, Any] = {} myst = topmatter.get("myst", {}) if not isinstance(myst, dict): warning(MystWarnings.MD_TOPMATTER, f"'myst' key not a dict: {type(myst)}") else: updates = myst # allow html_meta and substitutions at top-level for back-compatibility if "html_meta" in topmatter: warning( MystWarnings.MD_TOPMATTER, "top-level 'html_meta' key is deprecated, " "place under 'myst' key instead", ) updates["html_meta"] = topmatter["html_meta"] if "substitutions" in topmatter: warning( MystWarnings.MD_TOPMATTER, "top-level 'substitutions' key is deprecated, " "place under 'myst' key instead", ) updates["substitutions"] = topmatter["substitutions"] new = config.copy() # validate each update fields = {name: (value, field) for name, value, field in config.as_triple()} for name, value in updates.items(): if name not in fields: warning(MystWarnings.MD_TOPMATTER, f"Unknown field: {name}") continue old_value, field = fields[name] try: validate_field(new, field, value) except Exception as exc: warning(MystWarnings.MD_TOPMATTER, str(exc)) continue if field.metadata.get("merge_topmatter"): value = {**old_value, **value} setattr(new, name, value) return new class TopmatterReadError(Exception): """Topmatter parsing error.""" def read_topmatter(text: str | Iterator[str]) -> dict[str, Any] | None: """Read the (optional) YAML topmatter from a source string. This is identified by the first line starting with `---`, then read up to a terminating line of `---`, or `...`. :param source: The source string to read from :return: The topmatter """ import yaml if isinstance(text, str): if not text.startswith("---"): # skip creating the line list in memory return None text = (line for line in text.splitlines()) try: if not next(text).startswith("---"): return None except StopIteration: return None top_matter = [] for line in text: if line.startswith(("---", "...")): break top_matter.append(line.rstrip() + "\n") try: metadata = yaml.safe_load("".join(top_matter)) except (yaml.parser.ParserError, yaml.scanner.ScannerError) as err: raise TopmatterReadError("Malformed YAML") from err if not isinstance(metadata, dict): raise TopmatterReadError(f"YAML is not a dict: {type(metadata)}") return metadata MyST-Parser-4.0.0/myst_parser/docutils_.py000066400000000000000000000003661465415536200205300ustar00rootroot00000000000000"""A module for compatibility with the docutils>=0.17 `include` directive, in RST documents: For example:: .. include:: path/to/file.md :parser: myst_parser.docutils_ """ from myst_parser.parsers.docutils_ import Parser # noqa: F401 MyST-Parser-4.0.0/myst_parser/inventory.py000066400000000000000000000372501465415536200206020ustar00rootroot00000000000000"""Logic for dealing with sphinx style inventories (e.g. `objects.inv`). These contain mappings of reference names to ids, scoped by domain and object type. This is adapted from the Sphinx inventory.py module. We replicate it here, so that it can be used without Sphinx. """ from __future__ import annotations import argparse import functools import json import re import zlib from collections.abc import Iterator from dataclasses import asdict, dataclass from typing import IO, TYPE_CHECKING, TypedDict from urllib.request import urlopen import yaml if TYPE_CHECKING: # domain_type:object_type -> name -> (project, version, loc, text) # the `loc` includes the base url, also null `text` is denoted by "-" from sphinx.util.typing import Inventory as SphinxInventoryType class InventoryItemType(TypedDict): """A single inventory item.""" loc: str """The location of the item (relative if base_url not None).""" text: str | None """Implicit text to show for the item.""" class InventoryType(TypedDict): """Inventory data.""" name: str """The name of the project.""" version: str """The version of the project.""" base_url: str | None """The base URL of the `loc`.""" objects: dict[str, dict[str, dict[str, InventoryItemType]]] """Mapping of domain -> object type -> name -> item.""" def from_sphinx(inv: SphinxInventoryType) -> InventoryType: """Convert from a Sphinx compliant format.""" project = "" version = "" objs: dict[str, dict[str, dict[str, InventoryItemType]]] = {} for domain_obj_name, data in inv.items(): if ":" not in domain_obj_name: continue domain_name, obj_type = domain_obj_name.split(":", 1) objs.setdefault(domain_name, {}).setdefault(obj_type, {}) for refname, refdata in data.items(): project, version, uri, text = refdata objs[domain_name][obj_type][refname] = { "loc": uri, "text": None if (not text or text == "-") else text, } return { "name": project, "version": version, "base_url": None, "objects": objs, } def to_sphinx(inv: InventoryType) -> SphinxInventoryType: """Convert to a Sphinx compliant format.""" objs: SphinxInventoryType = {} for domain_name, obj_types in inv["objects"].items(): for obj_type, refs in obj_types.items(): for refname, refdata in refs.items(): objs.setdefault(f"{domain_name}:{obj_type}", {})[refname] = ( inv["name"], inv["version"], refdata["loc"], refdata["text"] or "-", ) return objs def load(stream: IO, base_url: str | None = None) -> InventoryType: """Load inventory data from a stream.""" reader = InventoryFileReader(stream) line = reader.readline().rstrip() if line == "# Sphinx inventory version 1": return _load_v1(reader, base_url) elif line == "# Sphinx inventory version 2": return _load_v2(reader, base_url) else: raise ValueError(f"invalid inventory header: {line}") def _load_v1(stream: InventoryFileReader, base_url: str | None) -> InventoryType: """Load inventory data (format v1) from a stream.""" projname = stream.readline().rstrip()[11:] version = stream.readline().rstrip()[11:] invdata: InventoryType = { "name": projname, "version": version, "base_url": base_url, "objects": {}, } for line in stream.readlines(): name, objtype, location = line.rstrip().split(None, 2) # version 1 did not add anchors to the location domain = "py" if objtype == "mod": objtype = "module" location += "#module-" + name else: location += "#" + name invdata["objects"].setdefault(domain, {}).setdefault(objtype, {}) invdata["objects"][domain][objtype][name] = {"loc": location, "text": None} return invdata def _load_v2(stream: InventoryFileReader, base_url: str | None) -> InventoryType: """Load inventory data (format v2) from a stream.""" projname = stream.readline().rstrip()[11:] version = stream.readline().rstrip()[11:] invdata: InventoryType = { "name": projname, "version": version, "base_url": base_url, "objects": {}, } line = stream.readline() if "zlib" not in line: raise ValueError(f"invalid inventory header (not compressed): {line}") for line in stream.read_compressed_lines(): # be careful to handle names with embedded spaces correctly m = re.match(r"(?x)(.+?)\s+(\S+)\s+(-?\d+)\s+?(\S*)\s+(.*)", line.rstrip()) if not m: continue name: str type: str name, type, _, location, text = m.groups() if ":" not in type: # wrong type value. type should be in the form of "{domain}:{objtype}" # # Note: To avoid the regex DoS, this is implemented in python (refs: #8175) continue if ( type == "py:module" and type in invdata["objects"] and name in invdata["objects"][type] ): # due to a bug in 1.1 and below, # two inventory entries are created # for Python modules, and the first # one is correct continue if location.endswith("$"): location = location[:-1] + name domain, objtype = type.split(":", 1) invdata["objects"].setdefault(domain, {}).setdefault(objtype, {}) if not text or text == "-": text = None invdata["objects"][domain][objtype][name] = {"loc": location, "text": text} return invdata _BUFSIZE = 16 * 1024 class InventoryFileReader: """A file reader for an inventory file. This reader supports mixture of texts and compressed texts. """ def __init__(self, stream: IO) -> None: self.stream = stream self.buffer = b"" self.eof = False def read_buffer(self) -> None: chunk = self.stream.read(_BUFSIZE) if chunk == b"": self.eof = True self.buffer += chunk def readline(self) -> str: pos = self.buffer.find(b"\n") if pos != -1: line = self.buffer[:pos].decode() self.buffer = self.buffer[pos + 1 :] elif self.eof: line = self.buffer.decode() self.buffer = b"" else: self.read_buffer() line = self.readline() return line def readlines(self) -> Iterator[str]: while not self.eof: line = self.readline() if line: yield line def read_compressed_chunks(self) -> Iterator[bytes]: decompressor = zlib.decompressobj() while not self.eof: self.read_buffer() yield decompressor.decompress(self.buffer) self.buffer = b"" yield decompressor.flush() def read_compressed_lines(self) -> Iterator[str]: buf = b"" for chunk in self.read_compressed_chunks(): buf += chunk pos = buf.find(b"\n") while pos != -1: yield buf[:pos].decode() buf = buf[pos + 1 :] pos = buf.find(b"\n") @functools.lru_cache(maxsize=256) def _create_regex(pat: str) -> re.Pattern[str]: r"""Create a regex from a pattern, that can include `*` wildcards, to match 0 or more characters. `\*` is translated as a literal `*`. """ regex = "" backslash_last = False for char in pat: if backslash_last and char == "*": regex += re.escape(char) backslash_last = False continue if backslash_last: regex += re.escape("\\") backslash_last = False if char == "\\": backslash_last = True continue if char == "*": regex += ".*" continue regex += re.escape(char) return re.compile(regex) def match_with_wildcard(name: str, pattern: str | None) -> bool: r"""Match a whole name with a pattern, that can include `*` wildcards, to match 0 or more characters. To include a literal `*` in the pattern, use `\*`. """ if pattern is None: return True regex = _create_regex(pattern) return regex.fullmatch(name) is not None @dataclass class InvMatch: """A match from an inventory.""" inv: str domain: str otype: str name: str project: str version: str base_url: str | None loc: str text: str | None def asdict(self) -> dict[str, str]: return asdict(self) def filter_inventories( inventories: dict[str, InventoryType], *, invs: str | None = None, domains: str | None = None, otypes: str | None = None, targets: str | None = None, ) -> Iterator[InvMatch]: r"""Filter a set of inventories. Filters are strings that can include `*` wildcards, to match 0 or more characters. To include a literal `*` in the pattern, use `\*`. :param inventories: Mapping of inventory name to inventory data :param invs: the inventory key filter :param domains: the domain name filter :param otypes: the object type filter :param targets: the target name filter """ for inv_name, inv_data in inventories.items(): if not match_with_wildcard(inv_name, invs): continue for domain_name, dom_data in inv_data["objects"].items(): if not match_with_wildcard(domain_name, domains): continue for obj_type, obj_data in dom_data.items(): if not match_with_wildcard(obj_type, otypes): continue for target, item_data in obj_data.items(): if match_with_wildcard(target, targets): yield InvMatch( inv=inv_name, domain=domain_name, otype=obj_type, name=target, project=inv_data["name"], version=inv_data["version"], base_url=inv_data["base_url"], loc=item_data["loc"], text=item_data["text"], ) def filter_sphinx_inventories( inventories: dict[str, SphinxInventoryType], *, invs: str | None = None, domains: str | None = None, otypes: str | None = None, targets: str | None = None, ) -> Iterator[InvMatch]: r"""Filter a set of sphinx style inventories. Filters are strings that can include `*` wildcards, to match 0 or more characters. To include a literal `*` in the pattern, use `\*`. :param inventories: Mapping of inventory name to inventory data :param invs: the inventory key filter :param domains: the domain name filter :param otypes: the object type filter :param targets: the target name filter """ for inv_name, inv_data in inventories.items(): if not match_with_wildcard(inv_name, invs): continue for domain_obj_name, data in inv_data.items(): if ":" not in domain_obj_name: continue domain_name, obj_type = domain_obj_name.split(":", 1) if not ( match_with_wildcard(domain_name, domains) and match_with_wildcard(obj_type, otypes) ): continue for target in data: if match_with_wildcard(target, targets): project, version, loc, text = data[target] yield ( InvMatch( inv=inv_name, domain=domain_name, otype=obj_type, name=target, project=project, version=version, base_url=None, loc=loc, text=None if (not text or text == "-") else text, ) ) def filter_string( invs: str | None, domains: str | None, otype: str | None, target: str | None, *, delimiter: str = ":", ) -> str: """Create a string representation of the filter, from the given arguments.""" str_items = [] for item in (invs, domains, otype, target): if item is None: str_items.append("*") elif delimiter in item: str_items.append(f'"{item}"') else: str_items.append(f"{item}") return delimiter.join(str_items) def fetch_inventory( uri: str, *, timeout: None | float = None, base_url: None | str = None ) -> InventoryType: """Fetch an inventory from a URL or local path.""" if uri.startswith(("http://", "https://")): with urlopen(uri, timeout=timeout) as stream: return load(stream, base_url=base_url) with open(uri, "rb") as stream: return load(stream, base_url=base_url) def inventory_cli(inputs: None | list[str] = None): """Command line interface for fetching and parsing an inventory.""" parser = argparse.ArgumentParser(description="Parse an inventory file.") parser.add_argument("uri", metavar="[URL|PATH]", help="URI of the inventory file") parser.add_argument( "-d", "--domain", metavar="DOMAIN", default="*", help="Filter the inventory by domain (`*` = wildcard)", ) parser.add_argument( "-o", "--object-type", metavar="TYPE", default="*", help="Filter the inventory by object type (`*` = wildcard)", ) parser.add_argument( "-n", "--name", metavar="NAME", default="*", help="Filter the inventory by reference name (`*` = wildcard)", ) parser.add_argument( "-l", "--loc", metavar="LOC", help="Filter the inventory by reference location (`*` = wildcard)", ) parser.add_argument( "-f", "--format", choices=["yaml", "json"], default="yaml", help="Output format", ) parser.add_argument( "--timeout", type=float, metavar="SECONDS", help="Timeout for fetching the inventory", ) args = parser.parse_args(inputs) base_url = None if args.uri.startswith("http://") or args.uri.startswith("https://"): try: with urlopen(args.uri, timeout=args.timeout) as stream: invdata = load(stream) base_url = args.uri.rsplit("/", 1)[0] except Exception: with urlopen(args.uri + "/objects.inv", timeout=args.timeout) as stream: invdata = load(stream) base_url = args.uri else: with open(args.uri, "rb") as stream: invdata = load(stream) filtered: InventoryType = { "name": invdata["name"], "version": invdata["version"], "base_url": base_url, "objects": {}, } for match in filter_inventories( {"": invdata}, domains=args.domain, otypes=args.object_type, targets=args.name, ): if args.loc and not match_with_wildcard(match.loc, args.loc): continue filtered["objects"].setdefault(match.domain, {}).setdefault(match.otype, {})[ match.name ] = { "loc": match.loc, "text": match.text, } if args.format == "json": print(json.dumps(filtered, indent=2, sort_keys=False)) else: print(yaml.dump(filtered, sort_keys=False)) if __name__ == "__main__": inventory_cli() MyST-Parser-4.0.0/myst_parser/mdit_to_docutils/000077500000000000000000000000001465415536200215315ustar00rootroot00000000000000MyST-Parser-4.0.0/myst_parser/mdit_to_docutils/__init__.py000066400000000000000000000004561465415536200236470ustar00rootroot00000000000000"""Conversion of Markdown-it tokens to docutils AST. These renderers take the markdown-it parsed token stream and convert it to the docutils AST. The sphinx renderer is a subclass of the docutils one, with some additional methods only available *via* sphinx e.g. multi-document cross-referencing. """ MyST-Parser-4.0.0/myst_parser/mdit_to_docutils/base.py000066400000000000000000002343671465415536200230340ustar00rootroot00000000000000"""Convert Markdown-it tokens to docutils nodes.""" from __future__ import annotations import inspect import json import os import posixpath import re from collections.abc import Callable, Iterable, Iterator, MutableMapping, Sequence from contextlib import contextmanager, suppress from datetime import date, datetime from types import ModuleType from typing import ( TYPE_CHECKING, Any, cast, ) from urllib.parse import urlparse import jinja2 import yaml from docutils import nodes from docutils.frontend import get_default_settings from docutils.languages import get_language from docutils.parsers.rst import Directive, DirectiveError, directives, roles from docutils.parsers.rst import Parser as RSTParser from docutils.parsers.rst.directives.misc import Include from docutils.parsers.rst.languages import get_language as get_language_rst from docutils.statemachine import StringList from docutils.transforms.components import Filter from docutils.utils import Reporter, SystemMessage, new_document from docutils.utils.code_analyzer import Lexer, LexerError, NumberLines from markdown_it import MarkdownIt from markdown_it.common.utils import escapeHtml from markdown_it.renderer import RendererProtocol from markdown_it.token import Token from markdown_it.tree import SyntaxTreeNode from myst_parser import inventory from myst_parser._compat import findall from myst_parser.config.main import MdParserConfig, UrlSchemeType from myst_parser.mocking import ( MockIncludeDirective, MockingError, MockInliner, MockRSTParser, MockState, MockStateMachine, ) from myst_parser.parsers.directives import MarkupError, parse_directive_text from myst_parser.warnings_ import MystWarnings, create_warning from .html_to_nodes import html_to_nodes if TYPE_CHECKING: from sphinx.environment import BuildEnvironment def make_document(source_path="notset", parser_cls=RSTParser) -> nodes.document: """Create a new docutils document, with the parser classes' default settings.""" settings = get_default_settings(parser_cls) return new_document(source_path, settings=settings) REGEX_SCHEME = re.compile(r"^([a-zA-Z][a-zA-Z0-9+.-]*):") """RFC 7595: A non-empty scheme component followed by a colon (:), consisting of a sequence of characters beginning with a letter and followed by any combination of letters, digits, plus (+), period (.), or hyphen (-). Although schemes are case-insensitive, the canonical form is lowercase and documents that specify schemes must do so with lowercase letters. """ REGEX_URI_TEMPLATE = re.compile( r"{{\s*(uri|scheme|netloc|path|params|query|fragment)\s*}}" ) REGEX_DIRECTIVE_START = re.compile(r"^[\s]{0,3}([`]{3,10}|[~]{3,10}|[:]{3,10})\{") def token_line(token: SyntaxTreeNode, default: int | None = None) -> int: """Retrieve the initial line of a token.""" if not getattr(token, "map", None): if default is not None: return default raise ValueError(f"token map not set: {token}") return token.map[0] # type: ignore[index] class DocutilsRenderer(RendererProtocol): """A markdown-it-py renderer to populate (in-place) a `docutils.document` AST. Note, this render is not dependent on Sphinx. """ __output__ = "docutils" def __init__(self, parser: MarkdownIt) -> None: """Load the renderer (called by ``MarkdownIt``)""" self.md = parser self.rules = { k: v for k, v in inspect.getmembers(self, predicate=inspect.ismethod) if k.startswith("render_") and k != "render_children" } # these are lazy loaded, when needed self._inventories: None | dict[str, inventory.InventoryType] = None def __getattr__(self, name: str): """Warn when the renderer has not been setup yet.""" if name in ( "md_env", "md_config", "md_options", "document", "current_node", "reporter", "language_module_rst", "_heading_offset", "_level_to_section", ): raise AttributeError( f"'{name}' attribute is not available until setup_render() is called" ) raise AttributeError( f"'{type(self).__name__}' object has no attribute '{name}'" ) def setup_render( self, options: dict[str, Any], env: MutableMapping[str, Any] ) -> None: """Setup the renderer with per render variables.""" self.md_env = env self.md_options = options self.md_config: MdParserConfig = options["myst_config"] self.document: nodes.document = options.get("document", make_document()) self.current_node: nodes.Element = options.get("current_node", self.document) self.reporter: Reporter = self.document.reporter # note there are actually two possible language modules: # one from docutils.languages, and one from docutils.parsers.rst.languages self.language_module_rst: ModuleType = get_language_rst( self.document.settings.language_code ) self._heading_offset: int = 0 # a mapping of heading levels to its currently associated node self._level_to_section: dict[int, nodes.document | nodes.section] = { 0: self.document } # mapping of section slug to (line, id, implicit_text) self._heading_slugs: dict[str, tuple[int | None, str, str]] = {} @property def sphinx_env(self) -> BuildEnvironment | None: """Return the sphinx env, if using Sphinx.""" try: return self.document.settings.env except AttributeError: return None def create_warning( self, message: str, subtype: MystWarnings | str, *, wtype: str | None = None, line: int | None = None, append_to: nodes.Element | None = None, ) -> nodes.system_message | None: """Generate a warning, logging if it is necessary. If the warning type is listed in the ``suppress_warnings`` configuration, then ``None`` will be returned and no warning logged. """ return create_warning( self.document, message, subtype, wtype=wtype, line=line, append_to=append_to, ) def _render_tokens(self, tokens: list[Token]) -> None: """Render the tokens.""" # propagate line number down to inline elements for token in tokens: if not token.map: continue # For docutils we want 1 based line numbers (not 0) token.map = [token.map[0] + 1, token.map[1] + 1] for token_child in token.children or []: token_child.map = token.map # nest tokens node_tree = SyntaxTreeNode(tokens) # render for child in node_tree.children: # skip hidden? if f"render_{child.type}" in self.rules: self.rules[f"render_{child.type}"](child) else: self.create_warning( f"No render method for: {child.type}", MystWarnings.RENDER_METHOD, line=token_line(child, default=0), append_to=self.current_node, ) def render( self, tokens: Sequence[Token], options, md_env: MutableMapping[str, Any] ) -> nodes.document: """Run the render on a token stream. :param tokens: list on block tokens to render :param options: params of parser instance :param md_env: the markdown-it environment sandbox associated with the tokens, containing additional metadata like reference info """ self.setup_render(options, md_env) self._render_initialise() self._render_tokens(list(tokens)) self._render_finalise() return self.document def _render_initialise(self) -> None: """Initialise the render of the document.""" self.current_node.extend( html_meta_to_nodes( self.md_config.html_meta, document=self.document, line=0, reporter=self.reporter, ) ) def _render_finalise(self) -> None: """Finalise the render of the document.""" # save for later reference resolution self.document.myst_slugs = self._heading_slugs if self._heading_slugs and self.sphinx_env: self.sphinx_env.metadata[self.sphinx_env.docname]["myst_slugs"] = ( self._heading_slugs ) # ensure these settings are set for later footnote transforms self.document.settings.myst_footnote_transition = ( self.md_config.footnote_transition ) self.document.settings.myst_footnote_sort = self.md_config.footnote_sort # log warnings for duplicate reference definitions # "duplicate_refs": [{"href": "ijk", "label": "B", "map": [4, 5], "title": ""}], for dup_ref in self.md_env.get("duplicate_refs", []): self.create_warning( f"Duplicate reference definition: {dup_ref['label']}", MystWarnings.MD_DEF_DUPE, line=dup_ref["map"][0] + 1, append_to=self.document, ) # Add the wordcount, generated by the ``mdit_py_plugins.wordcount_plugin``. wordcount_metadata = self.md_env.get("wordcount", {}) if wordcount_metadata: # save the wordcount to the sphinx BuildEnvironment metadata if self.sphinx_env is not None: meta = self.sphinx_env.metadata.setdefault(self.sphinx_env.docname, {}) meta["wordcount"] = wordcount_metadata # now add the wordcount as substitution definitions, # so we can reference them in the document for key in ("words", "minutes"): value = wordcount_metadata.get(key, None) if value is None: continue substitution_node = nodes.substitution_definition( str(value), nodes.Text(str(value)) ) substitution_node.source = self.document["source"] substitution_node["names"].append(f"wordcount-{key}") self.document.note_substitution_def( substitution_node, f"wordcount-{key}" ) def nested_render_text( self, text: str, lineno: int, inline: bool = False, temp_root_node: None | nodes.Element = None, heading_offset: int = 0, ) -> None: """Render unparsed text (appending to the current node). :param text: the text to render :param lineno: the starting line number of the text, within the full source :param inline: whether the text is inline or block :param temp_root_node: If set, allow sections to be created as children of this node :param heading_offset: offset heading levels by this amount """ tokens = ( self.md.parseInline(text, self.md_env) if inline else self.md.parse(text + "\n", self.md_env) ) # remove front matter, if present, e.g. from included documents if tokens and tokens[0].type == "front_matter": tokens.pop(0) # update the line numbers for token in tokens: if token.map: token.map = [token.map[0] + lineno, token.map[1] + lineno] @contextmanager def _restore(): current_heading_offset = self._heading_offset self._heading_offset = heading_offset if temp_root_node is not None: # we need to temporarily set the root node, # and we also want to restore the level_to_section mapping at the end current_level_to_section = dict(self._level_to_section.items()) current_root_node = self.md_env.get("temp_root_node", None) self.md_env["temp_root_node"] = temp_root_node yield self._heading_offset = current_heading_offset if temp_root_node is not None: self.md_env["temp_root_node"] = current_root_node self._level_to_section = current_level_to_section with _restore(): self._render_tokens(tokens) @contextmanager def current_node_context( self, node: nodes.Element, append: bool = False ) -> Iterator[None]: """Context manager for temporarily setting the current node.""" if append: self.current_node.append(node) current_node = self.current_node self.current_node = node yield self.current_node = current_node def render_children(self, token: SyntaxTreeNode) -> None: """Render the children of a token.""" for child in token.children or []: if f"render_{child.type}" in self.rules: self.rules[f"render_{child.type}"](child) else: self.create_warning( f"No render method for: {child.type}", MystWarnings.RENDER_METHOD, line=token_line(child, default=0), append_to=self.current_node, ) def add_line_and_source_path(self, node, token: SyntaxTreeNode) -> None: """Copy the line number and document source path to the docutils node.""" with suppress(ValueError): node.line = token_line(token) node.source = self.document["source"] def add_line_and_source_path_r( self, nodes_: list[nodes.Element], token: SyntaxTreeNode ) -> None: """Copy the line number and document source path to the docutils nodes, and recursively to all descendants. """ for node in nodes_: self.add_line_and_source_path(node, token) for child in findall(node)(): self.add_line_and_source_path(child, token) def copy_attributes( self, token: SyntaxTreeNode, node: nodes.Element, keys: Sequence[str] = ("class",), *, converters: dict[str, Callable[[str], Any]] | None = None, aliases: dict[str, str] | None = None, ) -> None: """Copy attributes on the token to the docutils node. :param token: the token to copy attributes from :param node: the node to copy attributes to :param keys: the keys to copy from the token (after aliasing) :param converters: a dictionary of converters for the attributes :param aliases: a dictionary mapping the token key name to the node key name """ if converters is None: converters = {} if aliases is None: aliases = {} for key, value in token.attrs.items(): key = aliases.get(key, key) if key not in keys: continue if key == "class": node["classes"].extend(str(value).split()) elif key == "id": name = nodes.fully_normalize_name(str(value)) node["names"].append(name) self.document.note_explicit_target(node, node) else: if key in converters: try: value = converters[key](str(value)) except ValueError: self.create_warning( f"Invalid {key!r} attribute value: {token.attrs[key]!r}", MystWarnings.INVALID_ATTRIBUTE, line=token_line(token, default=0), append_to=node, ) continue node[key] = value def update_section_level_state(self, section: nodes.section, level: int) -> None: """Update the section level state, with the new current section and level.""" # find the closest parent section parent_level = max( section_level for section_level in self._level_to_section if level > section_level ) parent = self._level_to_section[parent_level] # if we are jumping up to a non-consecutive level, # then warn about this, since this will not be propagated in the docutils AST if (level > parent_level) and (parent_level + 1 != level): msg = f"Non-consecutive header level increase; H{parent_level} to H{level}" if parent_level == 0: msg = f"Document headings start at H{level}, not H1" self.create_warning( msg, MystWarnings.MD_HEADING_NON_CONSECUTIVE, line=section.line, append_to=self.current_node, ) # append the new section to the parent parent.append(section) # update the state for this section level self._level_to_section[level] = section # Remove all descendant sections from the section level state self._level_to_section = { section_level: section for section_level, section in self._level_to_section.items() if section_level <= level } def renderInlineAsText(self, tokens: list[SyntaxTreeNode]) -> str: # noqa: N802 """Special kludge for image `alt` attributes to conform CommonMark spec. Don't try to use it! Spec requires to show `alt` content with stripped markup, instead of simple escaping. """ result = "" for token in tokens or []: if token.type == "text": result += token.content # elif token.type == "image": # result += self.renderInlineAsText(token.children) else: result += self.renderInlineAsText(token.children or []) return result # ### render methods for commonmark tokens def render_paragraph(self, token: SyntaxTreeNode) -> None: para = nodes.paragraph(token.children[0].content if token.children else "") self.copy_attributes(token, para, keys=("class", "id")) self.add_line_and_source_path(para, token) with self.current_node_context(para, append=True): self.render_children(token) def render_inline(self, token: SyntaxTreeNode) -> None: self.render_children(token) def render_text(self, token: SyntaxTreeNode) -> None: self.current_node.append(nodes.Text(token.content)) def render_bullet_list(self, token: SyntaxTreeNode) -> None: list_node = nodes.bullet_list() if token.markup: list_node["bullet"] = token.markup self.copy_attributes(token, list_node, keys=("class", "id")) self.add_line_and_source_path(list_node, token) with self.current_node_context(list_node, append=True): self.render_children(token) def render_ordered_list(self, token: SyntaxTreeNode) -> None: style = "arabic" if "style" in token.attrs: style = { "decimal": "arabic", "lower-alpha": "loweralpha", "upper-alpha": "upperalpha", "lower-roman": "lowerroman", "upper-roman": "upperroman", }.get(str(token.attrs["style"]), style) list_node = nodes.enumerated_list(enumtype=style, prefix="") list_node["suffix"] = token.markup # for CommonMark, this should be "." or ")" # start is starting number self.copy_attributes(token, list_node, keys=("class", "id", "start")) self.add_line_and_source_path(list_node, token) with self.current_node_context(list_node, append=True): self.render_children(token) def render_list_item(self, token: SyntaxTreeNode) -> None: item_node = nodes.list_item() self.copy_attributes(token, item_node, keys=("class", "id")) self.add_line_and_source_path(item_node, token) with self.current_node_context(item_node, append=True): self.render_children(token) def render_em(self, token: SyntaxTreeNode) -> None: node = nodes.emphasis() self.add_line_and_source_path(node, token) with self.current_node_context(node, append=True): self.render_children(token) def render_softbreak(self, token: SyntaxTreeNode) -> None: self.current_node.append(nodes.Text("\n")) def render_hardbreak(self, token: SyntaxTreeNode) -> None: self.current_node.append(nodes.raw("", "
\n", format="html")) self.current_node.append(nodes.raw("", "\\\\\n", format="latex")) def render_strong(self, token: SyntaxTreeNode) -> None: node = nodes.strong() self.add_line_and_source_path(node, token) with self.current_node_context(node, append=True): self.render_children(token) def render_blockquote(self, token: SyntaxTreeNode) -> None: quote = nodes.block_quote() self.copy_attributes(token, quote, keys=("class", "id")) self.add_line_and_source_path(quote, token) with self.current_node_context(quote, append=True): self.render_children(token) if "attribution" in token.attrs: attribution = nodes.attribution(token.attrs["attribution"], "") self.add_line_and_source_path(attribution, token) with self.current_node_context(attribution, append=True): self.nested_render_text( str(token.attrs["attribution"]), token_line(token, 0), inline=True, ) def render_hr(self, token: SyntaxTreeNode) -> None: node = nodes.transition() self.add_line_and_source_path(node, token) self.current_node.append(node) def render_code_inline(self, token: SyntaxTreeNode) -> None: node = nodes.literal(token.content, token.content) self.add_line_and_source_path(node, token) self.copy_attributes( token, node, ("class", "id", "language"), aliases={"lexer": "language", "l": "language"}, ) if "language" in node and "code" not in node["classes"]: node["classes"].append("code") self.current_node.append(node) @staticmethod def _parse_linenos(emphasize_lines: str, num_lines: int) -> list[int]: """Parse the `emphasize_lines` argument. Raises ValueError if the argument is invalid. """ from sphinx.util import parselinenos hl_lines = parselinenos(emphasize_lines, num_lines) if any(i >= num_lines for i in hl_lines): raise ValueError(f"out of range(1-{num_lines}") return [x + 1 for x in hl_lines if x < num_lines] def create_highlighted_code_block( self, text: str, lexer_name: str | None, number_lines: bool = False, lineno_start: int = 1, source: str | None = None, line: int | None = None, node_cls: type[nodes.Element] = nodes.literal_block, emphasize_lines: list[int] | str | None = None, ) -> nodes.Element: """Create a literal block with syntax highlighting. This mimics the behaviour of the `code-block` directive. In docutils, this directive directly parses the text with the pygments lexer, whereas in sphinx, the lexer name is only recorded as the `language` attribute, and the text is lexed later by pygments within the `visit_literal_block` method of the output format ``SphinxTranslator``. Note, this function does not add the literal block to the document. """ if self.sphinx_env is not None: node = node_cls(text, text, language=lexer_name or "none") if number_lines: node["linenos"] = True if lineno_start != 1: node["highlight_args"] = {"linenostart": lineno_start} if isinstance(emphasize_lines, str): try: emphasize_lines = self._parse_linenos( emphasize_lines, len(text.splitlines()) ) except ValueError as err: self.create_warning( f"emphasize_lines: {err}", MystWarnings.INVALID_ATTRIBUTE, line=line, ) if isinstance(emphasize_lines, list | tuple): # TODO emphasize_lines in docutils? if "highlight_args" not in node: node["highlight_args"] = {} node["highlight_args"]["hl_lines"] = emphasize_lines else: node = node_cls( text, classes=["code"] + ([lexer_name] if lexer_name else []) ) try: lex_tokens = Lexer( text, lexer_name or "", "short" if self.md_config.highlight_code_blocks else "none", ) except LexerError as err: self.reporter.warning( str(err), **{ name: value for name, value in (("source", source), ("line", line)) if value is not None }, ) lex_tokens = Lexer(text, lexer_name or "", "none") if number_lines: lex_tokens = NumberLines( lex_tokens, lineno_start, lineno_start + len(text.splitlines()) ) for classes, value in lex_tokens: if classes: node += nodes.inline(value, value, classes=classes) else: # insert as Text to decrease the verbosity of the output node += nodes.Text(value) if source is not None: node.source = source if line is not None: node.line = line return node def render_code_block(self, token: SyntaxTreeNode) -> None: lexer = token.info.split()[0] if token.info else None lineno_start = 1 number_lines = False emphasize_lines = ( str(token.attrs.get("emphasize-lines")) if "emphasize-lines" in token.attrs else None ) if "lineno-start" in token.attrs: with suppress(ValueError): lineno_start = int(token.attrs["lineno-start"]) number_lines = True node = self.create_highlighted_code_block( token.content, lexer, lineno_start=lineno_start, number_lines=number_lines, source=self.document["source"], line=token_line(token, 0) or None, emphasize_lines=emphasize_lines, ) self.copy_attributes(token, node, ("class", "id")) self.current_node.append(node) def render_fence(self, token: SyntaxTreeNode) -> None: """Render a fenced code block.""" # split the info into possible ```name arguments parts = (token.info.strip() if token.info else "").split(maxsplit=1) name = parts[0] if parts else "" arguments = parts[1] if len(parts) > 1 else "" if (not self.md_config.commonmark_only) and (not self.md_config.gfm_only): if name == "{eval-rst}": return self.render_restructuredtext(token) if name.startswith("{") and name.endswith("}"): return self.render_directive(token, name[1:-1], arguments) if name in self.md_config.fence_as_directive: options = {k: str(v) for k, v in token.attrs.items()} if "id" in options: options["name"] = options.pop("id") return self.render_directive( token, name, arguments, additional_options=options ) if not name and self.sphinx_env is not None: # use the current highlight setting, via the ``highlight`` directive, # or ``highlight_language`` configuration. name = self.sphinx_env.temp_data.get( "highlight_language", self.sphinx_env.config.highlight_language ) lineno_start = 1 number_lines = name in self.md_config.number_code_blocks emphasize_lines = ( str(token.attrs.get("emphasize-lines")) if "emphasize-lines" in token.attrs else None ) if "lineno-start" in token.attrs: with suppress(ValueError): lineno_start = int(token.attrs["lineno-start"]) number_lines = True node = self.create_highlighted_code_block( token.content, name, number_lines=number_lines, lineno_start=lineno_start, source=self.document["source"], line=token_line(token, 0) or None, emphasize_lines=emphasize_lines, ) self.copy_attributes(token, node, ("class", "id")) self.current_node.append(node) @property def blocks_mathjax_processing(self) -> bool: """Only add mathjax ignore classes if using sphinx, and using the ``dollarmath`` extension, and ``myst_update_mathjax=True``. """ return ( self.sphinx_env is not None and "dollarmath" in self.md_config.enable_extensions and self.md_config.update_mathjax ) def generate_heading_target( self, token: SyntaxTreeNode, level: int, node: nodes.Element, title_node: nodes.Element, ) -> None: """Generate a heading target, and add it to the document.""" implicit_text = clean_astext(title_node) # create a target reference for the section, based on the heading text. # Note, this is an implicit target, meaning that it is not prioritised, # during ref resolution, and is not stored in the document. # TODO this is purely to mimic docutils, but maybe we don't need it? # (since we have the slugify logic below) name = nodes.fully_normalize_name(implicit_text) node["names"].append(name) self.document.note_implicit_target(node, node) if level > self.md_config.heading_anchors: return # Create an implicit reference slug. # The problem with this reference slug, # is that it might not be in the "normalised" format required by docutils, # https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#normalized-reference-names # so we store it separately, and have separate logic than docutils # TODO maybe revisit this assumption, or improve the logic try: slug = compute_unique_slug( token, self._heading_slugs, self.md_config.heading_slug_func, ) except Exception as error: self.create_warning( str(error), MystWarnings.HEADING_SLUG, line=token_line(token, default=0), append_to=self.current_node, ) else: node["slug"] = slug self._heading_slugs[slug] = (node.line, node["ids"][0], implicit_text) def render_heading(self, token: SyntaxTreeNode) -> None: """Render a heading, e.g. `# Heading`.""" level = int(token.tag[1]) + self._heading_offset # sections are only allowed as a parent of a document or another section # the only exception to this, is if a directive has called a nested parse, # and specifically specified that sections are allowed to be created as children # of its root node (a.k.a match_titles=True) parent_of_temp_root = ( self.md_env.get("temp_root_node", None) is not None and self.current_node == self.md_env["temp_root_node"] ) if not ( parent_of_temp_root or isinstance(self.current_node, nodes.document | nodes.section) ): # if this is not the case, we create a rubric node instead rubric = nodes.rubric(token.content, "", level=level) self.add_line_and_source_path(rubric, token) self.copy_attributes(token, rubric, ("class", "id")) with self.current_node_context(rubric, append=True): self.render_children(token) self.generate_heading_target(token, level, rubric, rubric) return # create the section node new_section = nodes.section() self.add_line_and_source_path(new_section, token) self.copy_attributes(token, new_section, ("class", "id")) # if a top level section, # then add classes to set default mathjax processing to false # we then turn it back on, on a per-node basis if level == 1 and self.blocks_mathjax_processing: new_section["classes"].extend(["tex2jax_ignore", "mathjax_ignore"]) # update the state of the section levels self.update_section_level_state(new_section, level) # create the title for this section title_node = nodes.title(token.children[0].content if token.children else "") self.add_line_and_source_path(title_node, token) new_section.append(title_node) # render the heading children into the title with self.current_node_context(title_node): self.render_children(token) self.generate_heading_target(token, level, new_section, title_node) # set the section as the current node for subsequent rendering self.current_node = new_section def render_link(self, token: SyntaxTreeNode) -> None: """Parse `` or `[text](link "title")` syntax to docutils AST: - If `myst_all_links_external` is True, forward to `render_link_url` - If the link token has a class attribute containing `external`, forward to `render_link_url` - If the link is an id link (e.g. `#id`), forward to `render_link_anchor` - If the link has a schema, and the schema is in `url_schemes` (e.g. `http:`), forward to `render_link_url` - If the link has an `inv:` schema, forward to `render_link_inventory` - If the link is an autolink/linkify type link, forward to `render_link_url` - Otherwise, forward to `render_link_internal` """ if ( self.md_config.commonmark_only or self.md_config.gfm_only or self.md_config.all_links_external ): return self.render_link_url(token) if "class" in token.attrs and "external" in str(token.attrs["class"]).split(): return self.render_link_url(token) href = cast(str, token.attrGet("href") or "") if href.startswith("#"): return self.render_link_anchor(token, href) scheme_match = REGEX_SCHEME.match(href) scheme = None if scheme_match is None else scheme_match.group(1) if scheme in self.md_config.url_schemes: return self.render_link_url(token, self.md_config.url_schemes[scheme]) if scheme == "inv": return self.render_link_inventory(token) if scheme == "path": return self.render_link_path(token) if scheme == "project": return self.render_link_project(token) if token.info == "auto": # handles both autolink and linkify return self.render_link_url(token) return self.render_link_unknown(token) def render_link_url( self, token: SyntaxTreeNode, conversion: None | UrlSchemeType = None ) -> None: """Render link token (including autolink and linkify), where the link has been identified as an external URL. """ ref_node = nodes.reference() self.add_line_and_source_path(ref_node, token) attribute_keys = ["class", "id", "reftitle", "target", "rel"] if self.md_config.links_external_new_tab: token.attrs["target"] = "_blank" token.attrs["rel"] = "noreferer noopener" self.copy_attributes( token, ref_node, attribute_keys, aliases={"title": "reftitle"} ) uri = cast(str, token.attrGet("href") or "") implicit_text: str | None = None if conversion is not None: # implicit_template: str | None = None # if isinstance(conversion, (list, tuple)): # href_template, implicit_template = conversion # else: # href_template = conversion # markdown-it encodes unsafe characters with percent-encoding # we want to get back the original, source input uri = self.md.normalizeLinkText(uri) _parsed = urlparse(uri) parsed = { "uri": uri, "scheme": _parsed.scheme, "netloc": _parsed.netloc, "path": _parsed.path, "params": _parsed.params, "query": _parsed.query, "fragment": _parsed.fragment, } # Note we specifically do not use jinja2 here, # to restrict the scope of the templating language, # so that it can be used in a language agnostic way if "url" in conversion: uri = re.sub( REGEX_URI_TEMPLATE, lambda match: parsed.get(match.group(1), ""), conversion["url"], ) uri = self.md.normalizeLink(uri) if "title" in conversion and (token.info == "auto" or not token.children): implicit_text = re.sub( REGEX_URI_TEMPLATE, lambda match: parsed.get(match.group(1), ""), conversion["title"], ) if "classes" in conversion: ref_node["classes"].extend(conversion["classes"]) ref_node["refuri"] = escapeHtml(uri) if implicit_text is not None: with self.current_node_context(ref_node, append=True): self.current_node.append(nodes.Text(implicit_text)) else: with self.current_node_context(ref_node, append=True): self.render_children(token) def render_link_path(self, token: SyntaxTreeNode) -> None: """Render a link token like ``.""" self.create_warning( "`path:` scheme not yet supported in docutils", MystWarnings.NOT_SUPPORTED, line=token_line(token, 0), append_to=self.current_node, ) return self.render_link_url(token) def render_link_project(self, token: SyntaxTreeNode) -> None: """Render a link token like ``.""" destination = cast(str, token.attrGet("href") or "") if destination.startswith("project:"): destination = destination[8:] if destination.startswith("#"): return self.render_link_anchor(token, destination) self.create_warning( "`project:` scheme for file paths not yet supported in docutils", MystWarnings.NOT_SUPPORTED, line=token_line(token, 0), append_to=self.current_node, ) return self.render_link_url(token) def render_link_anchor(self, token: SyntaxTreeNode, target: str) -> None: """Render link token like `[text](#target)`, to a local target. :target: the target id, e.g. `#target` """ ref_node = nodes.reference() self.add_line_and_source_path(ref_node, token) ref_node["id_link"] = True ref_node["refuri"] = self.md.normalizeLinkText(target) self.copy_attributes( token, ref_node, ("class", "id", "reftitle"), aliases={"title": "reftitle"} ) self.current_node.append(ref_node) if token.info != "auto": with self.current_node_context(ref_node): self.render_children(token) def render_link_unknown(self, token: SyntaxTreeNode) -> None: """Render link token `[text](link "title")`, where the link has not been identified as an external URL:: text `text` can contain nested syntax, e.g. `[**bold**](link "title")`. Note, this is overridden by `SphinxRenderer`, to use `pending_xref` nodes. """ ref_node = nodes.reference() self.add_line_and_source_path(ref_node, token) self.copy_attributes( token, ref_node, ("class", "id", "reftitle"), aliases={"title": "reftitle"} ) ref_node["refname"] = cast(str, token.attrGet("href") or "") self.document.note_refname(ref_node) with self.current_node_context(ref_node, append=True): self.render_children(token) def render_link_inventory(self, token: SyntaxTreeNode) -> None: r"""Create a link to an inventory object. This assumes the href is of the form `:#`. The path is of the form `::`, where each of the parts is optional, hence `:#` is also valid. Each of the path parts can contain the `*` wildcard, for example: `:key:*:obj#targe*`. `\*` is treated as a plain `*`. """ # markdown-it encodes unsafe characters with percent-encoding # we want to get back the original, source input href = self.md.normalizeLinkText(cast(str, token.attrGet("href") or "")) # note if the link had explicit text or not (autolinks are always implicit) explicit = (token.info != "auto") and bool(token.children) # split the href up into parts uri_parts = urlparse(href) target = uri_parts.fragment invs, domains, otypes = None, None, None if uri_parts.path: path_parts = uri_parts.path.split(":") with suppress(IndexError): invs = path_parts[0] domains = path_parts[1] otypes = path_parts[2] # find the matches matches = self.get_inventory_matches( target=target, invs=invs, domains=domains, otypes=otypes ) # warn for 0 or >1 matches if not matches: filter_str = inventory.filter_string(invs, domains, otypes, target) self.create_warning( f"No matches for {filter_str!r}", MystWarnings.IREF_MISSING, line=token_line(token, default=0), append_to=self.current_node, ) return if len(matches) > 1: show_num = 3 filter_str = inventory.filter_string(invs, domains, otypes, target) matches_str = ", ".join( [ inventory.filter_string(m.inv, m.domain, m.otype, m.name) for m in matches[:show_num] ] ) if len(matches) > show_num: matches_str += ", ..." self.create_warning( f"Multiple matches for {filter_str!r}: {matches_str}", MystWarnings.IREF_AMBIGUOUS, line=token_line(token, default=0), append_to=self.current_node, ) # create the docutils node match = matches[0] ref_node = nodes.reference("", "", internal=False) ref_node["inv_match"] = inventory.filter_string( match.inv, match.domain, match.otype, match.name ) self.add_line_and_source_path(ref_node, token) self.copy_attributes( token, ref_node, ("class", "id", "reftitle"), aliases={"title": "reftitle"} ) ref_node["refuri"] = ( posixpath.join(match.base_url, match.loc) if match.base_url else match.loc ) if "reftitle" not in ref_node: ref_node["reftitle"] = f"{match.project} {match.version}".strip() self.current_node.append(ref_node) if explicit: with self.current_node_context(ref_node): self.render_children(token) elif match.text: ref_node.append(nodes.Text(match.text)) else: ref_node.append(nodes.literal(match.name, match.name)) def get_inventory_matches( self, *, invs: str | None, domains: str | None, otypes: str | None, target: str | None, ) -> list[inventory.InvMatch]: """Return inventory matches. This will be overridden for sphinx, to use intersphinx config. """ if self._inventories is None: self._inventories = {} for key, (uri, path) in self.md_config.inventories.items(): load_path = posixpath.join(uri, "objects.inv") if path is None else path self.reporter.info(f"Loading inventory {key!r}: {load_path}") try: inv = inventory.fetch_inventory(load_path, base_url=uri) except Exception as exc: self.create_warning( f"Failed to load inventory {key!r}: {exc}", MystWarnings.INV_LOAD, ) else: self._inventories[key] = inv return list( inventory.filter_inventories( self._inventories, invs=invs, domains=domains, otypes=otypes, targets=target, ) ) def render_html_inline(self, token: SyntaxTreeNode) -> None: self.render_html_block(token) def render_html_block(self, token: SyntaxTreeNode) -> None: node_list = html_to_nodes(token.content, token_line(token), self) self.current_node.extend(node_list) def render_image(self, token: SyntaxTreeNode) -> None: img_node = nodes.image() self.add_line_and_source_path(img_node, token) destination = cast(str, token.attrGet("src") or "") if self.md_env.get( "relative-images", None ) is not None and not REGEX_SCHEME.match(destination): # make the path relative to an "including" document # this is set when using the `relative-images` option of the MyST `include` directive destination = os.path.normpath( os.path.join( self.md_env.get("relative-images", ""), os.path.normpath(destination), ) ) img_node["uri"] = destination img_node["alt"] = self.renderInlineAsText(token.children or []) self.copy_attributes( token, img_node, ("class", "id", "title", "width", "height", "align"), converters={ "width": directives.length_or_percentage_or_unitless, "height": directives.length_or_unitless, "align": lambda x: directives.choice(x, ("left", "center", "right")), }, aliases={"w": "width", "h": "height", "a": "align"}, ) self.current_node.append(img_node) # ### render methods for plugin tokens def render_span(self, token: SyntaxTreeNode) -> None: """Render an inline span token.""" node = nodes.inline() self.add_line_and_source_path(node, token) self.copy_attributes(token, node, ("class", "id")) with self.current_node_context(node, append=True): self.render_children(token) def render_front_matter(self, token: SyntaxTreeNode) -> None: """Pass document front matter data.""" position = token_line(token, default=0) if isinstance(token.content, str): try: data = yaml.safe_load(token.content) except (yaml.parser.ParserError, yaml.scanner.ScannerError): self.create_warning( "Malformed YAML", MystWarnings.MD_TOPMATTER, line=position, append_to=self.current_node, ) return else: data = token.content if not isinstance(data, dict): self.create_warning( f"YAML is not a dict: {type(data)}", MystWarnings.MD_TOPMATTER, line=position, append_to=self.current_node, ) return fields = { k: v for k, v in data.items() if k not in ("myst", "mystnb", "substitutions", "html_meta") } if fields: field_list = self.dict_to_fm_field_list( fields, language_code=self.document.settings.language_code ) self.current_node.append(field_list) if data.get("title") and self.md_config.title_to_header: self.nested_render_text(f"# {data['title']}", 0) def dict_to_fm_field_list( self, data: dict[str, Any], language_code: str, line: int = 0 ) -> nodes.field_list: """Render each key/val pair as a docutils ``field_node``. Bibliographic keys below will be parsed as Markdown, all others will be left as literal text. The field list should be at the start of the document, and will then be converted to a `docinfo` node during the `docutils.docutils.transforms.frontmatter.DocInfo` transform (priority 340), and bibliographic keys (or their translation) will be converted to nodes:: {'author': docutils.nodes.author, 'authors': docutils.nodes.authors, 'organization': docutils.nodes.organization, 'address': docutils.nodes.address, 'contact': docutils.nodes.contact, 'version': docutils.nodes.version, 'revision': docutils.nodes.revision, 'status': docutils.nodes.status, 'date': docutils.nodes.date, 'copyright': docutils.nodes.copyright, 'dedication': docutils.nodes.topic, 'abstract': docutils.nodes.topic} Also, the 'dedication' and 'abstract' will be placed outside the `docinfo`, and so will always be shown in the document. If using sphinx, this `docinfo` node will later be extracted from the AST, by the `DoctreeReadEvent` transform (priority 880), calling `MetadataCollector.process_doc`. In this case keys and values will be converted to strings and stored in `app.env.metadata[app.env.docname]` See https://www.sphinx-doc.org/en/master/usage/restructuredtext/field-lists.html for docinfo fields used by sphinx. """ field_list = nodes.field_list() field_list.source, field_list.line = self.document["source"], line bibliofields = get_language(language_code).bibliographic_fields for key, value in data.items(): if not isinstance(value, str | int | float | date | datetime): value = json.dumps(value) value = str(value) body = nodes.paragraph() body.source, body.line = self.document["source"], line if key in bibliofields: with self.current_node_context(body): self.nested_render_text(value, line, inline=True) else: body += nodes.literal(value, value) field_node = nodes.field() field_node.source = value field_node += nodes.field_name(key, "", nodes.Text(key)) field_node += nodes.field_body(value, *[body]) field_list += field_node return field_list def render_table(self, token: SyntaxTreeNode) -> None: # markdown-it table always contains at least a header: assert token.children header = token.children[0] # with one header row assert header.children header_row = header.children[0] assert header_row.children # top-level element table = nodes.table() table["classes"] += ["colwidths-auto"] self.copy_attributes(token, table, ("class", "id")) self.add_line_and_source_path(table, token) self.current_node.append(table) # column settings element maxcols = len(header_row.children) colwidths = [100 // maxcols] * maxcols tgroup = nodes.tgroup(cols=len(colwidths)) table += tgroup for colwidth in colwidths: colspec = nodes.colspec(colwidth=colwidth) tgroup += colspec # header thead = nodes.thead() tgroup += thead with self.current_node_context(thead): self.render_table_row(header_row) # body if len(token.children) > 1: body = token.children[1] tbody = nodes.tbody() tgroup += tbody with self.current_node_context(tbody): for body_row in body.children or []: self.render_table_row(body_row) def render_table_row(self, token: SyntaxTreeNode) -> None: row = nodes.row() with self.current_node_context(row, append=True): for child in token.children or []: entry = nodes.entry() para = nodes.paragraph( child.children[0].content if child.children else "" ) style = child.attrGet("style") # i.e. the alignment when using e.g. :-- if style and style in ( "text-align:left", "text-align:right", "text-align:center", ): entry["classes"].append(f"text-{cast(str, style).split(':')[1]}") with ( self.current_node_context(entry, append=True), self.current_node_context(para, append=True), ): self.render_children(child) def render_s(self, token: SyntaxTreeNode) -> None: """Render a strikethrough token.""" # TODO strikethrough not currently directly supported in docutils self.create_warning( "Strikethrough is currently only supported in HTML output", MystWarnings.STRIKETHROUGH, line=token_line(token, 0), append_to=self.current_node, ) self.current_node.append(nodes.raw("", "", format="html")) self.render_children(token) self.current_node.append(nodes.raw("", "", format="html")) def render_math_inline(self, token: SyntaxTreeNode) -> None: content = token.content node = nodes.math(content, content) self.add_line_and_source_path(node, token) self.current_node.append(node) def render_math_inline_double(self, token: SyntaxTreeNode) -> None: content = token.content node = nodes.math_block(content, content, nowrap=False, number=None) self.add_line_and_source_path(node, token) self.current_node.append(node) def render_math_single(self, token: SyntaxTreeNode) -> None: content = token.content node = nodes.math(content, content) self.add_line_and_source_path(node, token) self.current_node.append(node) def render_math_block(self, token: SyntaxTreeNode) -> None: content = token.content node = nodes.math_block(content, content, nowrap=False, number=None) self.add_line_and_source_path(node, token) self.current_node.append(node) def render_math_block_label(self, token: SyntaxTreeNode) -> None: content = token.content label = token.info node = nodes.math_block(content, content, nowrap=False, number=None) self.add_line_and_source_path(node, token) name = nodes.fully_normalize_name(label) node["names"].append(name) self.document.note_explicit_target(node, node) self.current_node.append(node) def render_amsmath(self, token: SyntaxTreeNode) -> None: # note docutils does not currently support the nowrap attribute # or equation numbering, so this is overridden in the sphinx renderer node = nodes.math_block( token.content, token.content, nowrap=True, classes=["amsmath"] ) if token.meta["numbered"] != "*": node["numbered"] = True self.add_line_and_source_path(node, token) self.current_node.append(node) def render_footnote_ref(self, token: SyntaxTreeNode) -> None: """Footnote references are added as auto-numbered, .i.e. `[^a]` is read as rST `[#a]_` """ target = token.meta["label"] refnode = nodes.footnote_reference(f"[^{target}]") self.add_line_and_source_path(refnode, token) if target.isdigit(): # a manually numbered footnote, similar to rST ``[1]_`` refnode += nodes.Text(target) else: # an auto-numbered footnote, similar to rST ``[#label]_`` refnode["auto"] = 1 self.document.note_autofootnote_ref(refnode) refnode["refname"] = target self.document.note_footnote_ref(refnode) self.current_node.append(refnode) def render_footnote_reference(self, token: SyntaxTreeNode) -> None: """Despite the name, this is actually a footnote definition, e.g. `[^a]: ...`""" target = token.meta["label"] if target in self.document.nameids: # note we chose to directly omit these footnotes in the parser, # rather than let docutils/sphinx handle them, since otherwise you end up with a confusing warning: # WARNING: Duplicate explicit target name: "x". [docutils] # we use [ref.footnote] as the type/subtype, rather than a myst specific warning, # to make it more aligned with sphinx warnings for unreferenced footnotes self.create_warning( f"Duplicate footnote definition found for label: '{target}'", "footnote", wtype="ref", line=token_line(token), append_to=self.current_node, ) return footnote = nodes.footnote() self.add_line_and_source_path(footnote, token) footnote["names"].append(target) if target.isdigit(): # a manually numbered footnote, similar to rST ``.. [1]`` footnote += nodes.label("", target) self.document.note_footnote(footnote) else: # an auto-numbered footnote, similar to rST ``.. [#label]`` footnote["auto"] = 1 self.document.note_autofootnote(footnote) self.document.note_explicit_target(footnote, footnote) with self.current_node_context(footnote, append=True): self.render_children(token) def render_myst_block_break(self, token: SyntaxTreeNode) -> None: block_break = nodes.comment(token.content, token.content) block_break["classes"] += ["block_break"] self.add_line_and_source_path(block_break, token) self.current_node.append(block_break) def render_myst_target(self, token: SyntaxTreeNode) -> None: text = token.content name = nodes.fully_normalize_name(text) target = nodes.target(text) target["names"].append(name) self.add_line_and_source_path(target, token) self.document.note_explicit_target(target, self.current_node) self.current_node.append(target) def render_myst_line_comment(self, token: SyntaxTreeNode) -> None: self.current_node.append(nodes.comment(token.content, token.content.strip())) def render_myst_role(self, token: SyntaxTreeNode) -> None: name = token.meta["name"] text = token.content rawsource = f":{name}:`{token.content}`" lineno = token_line(token) if token.map else 0 role_func, messages = roles.role( name, self.language_module_rst, lineno, self.reporter ) if not role_func: self.create_warning( f'Unknown interpreted text role "{name}".', MystWarnings.UNKNOWN_ROLE, line=lineno, append_to=self.current_node, ) self.current_node.extend(messages) return inliner = MockInliner(self) _nodes, messages2 = role_func(name, rawsource, text, lineno, inliner) self.current_node += _nodes + messages2 def render_colon_fence(self, token: SyntaxTreeNode) -> None: """Render a div block, with ``:`` colon delimiters.""" # split the info into possible :::name arguments parts = (token.info.strip() if token.info else "").split(maxsplit=1) name = parts[0] if parts else "" arguments = parts[1] if len(parts) > 1 else "" if name.startswith("{") and name.endswith("}"): if token.content.startswith(":::"): # the content starts with a nested fence block, # but must distinguish between ``:options:``, so we add a new line assert token.token is not None, '"colon_fence" must have a `token`' linear_token = token.token.copy() linear_token.content = "\n" + linear_token.content token.token = linear_token return self.render_directive(token, name[1:-1], arguments) container = nodes.container(is_div=True) self.add_line_and_source_path(container, token) self.copy_attributes(token, container, ("class", "id")) if name: # note, as per djot, the name is added to the end of the classes container["classes"].append(name) with self.current_node_context(container, append=True): self.nested_render_text(token.content, token_line(token, 0)) def render_dl(self, token: SyntaxTreeNode) -> None: """Render a definition list.""" node = nodes.definition_list(classes=["simple", "myst"]) self.copy_attributes(token, node, ("class", "id")) self.add_line_and_source_path(node, token) make_terms = ("glossary" in node["classes"]) and (self.sphinx_env is not None) with self.current_node_context(node, append=True): item = None for child in token.children or []: if child.type == "dt": item = nodes.definition_list_item() self.add_line_and_source_path(item, child) with self.current_node_context(item, append=True): term = nodes.term( child.children[0].content if child.children else "" ) self.add_line_and_source_path(term, child) with self.current_node_context(term): self.render_children(child) if make_terms: from sphinx.domains.std import make_glossary_term term = make_glossary_term( self.sphinx_env, # type: ignore[arg-type] term.children, None, term.source, term.line, node_id=None, document=self.document, ) self.current_node.append(term) elif child.type == "dd": if item is None: error = self.reporter.error( ( "Found a definition in a definition list, " "with no preceding term" ), # nodes.literal_block(content, content), line=token_line(child), ) self.current_node += [error] with self.current_node_context(item): definition = nodes.definition() self.add_line_and_source_path(definition, child) with self.current_node_context(definition, append=True): self.render_children(child) else: error_msg = self.reporter.error( ( "Expected a term/definition as a child of a definition list" f", but found a: {child.type}" ), # nodes.literal_block(content, content), line=token_line(child), ) self.current_node += [error_msg] def render_field_list(self, token: SyntaxTreeNode) -> None: """Render a field list.""" field_list = nodes.field_list(classes=["myst"]) self.copy_attributes(token, field_list, ("class", "id")) self.add_line_and_source_path(field_list, token) with self.current_node_context(field_list, append=True): # raise ValueError(token.pretty(show_text=True)) children = (token.children or [])[:] while children: child = children.pop(0) if child.type != "fieldlist_name": error_msg = self.reporter.error( ( "Expected a fieldlist_name as a child of a field_list" f", but found a: {child.type}" ), # nodes.literal_block(content, content), line=token_line(child), ) self.current_node += [error_msg] break field = nodes.field() self.add_line_and_source_path(field, child) field_list += field field_name = nodes.field_name() self.add_line_and_source_path(field_name, child) field += field_name with self.current_node_context(field_name): self.render_children(child) field_body = nodes.field_body() self.add_line_and_source_path(field_name, child) field += field_body if children and children[0].type == "fieldlist_body": child = children.pop(0) with self.current_node_context(field_body): self.render_children(child) def render_restructuredtext(self, token: SyntaxTreeNode) -> None: """Render the content of the token as restructuredtext.""" # copy necessary elements (source, line no, env, reporter) newdoc = make_document() newdoc["source"] = self.document["source"] newdoc.settings = self.document.settings newdoc.reporter = self.reporter # pad the line numbers artificially so they offset with the fence block pseudosource = ("\n" * token_line(token)) + token.content # actually parse the rst into our document MockRSTParser().parse(pseudosource, newdoc) for node in newdoc: if node["names"]: self.document.note_explicit_target(node, node) self.current_node.extend(newdoc.children) def render_directive( self, token: SyntaxTreeNode, name: str, arguments: str, *, additional_options: dict[str, str] | None = None, ) -> None: """Render special fenced code blocks as directives. :param token: the token to render :param name: the name of the directive :param arguments: The remaining text on the same line as the directive name. """ position = token_line(token) nodes_list = self.run_directive( name, arguments, token.content, position, additional_options=additional_options, ) self.current_node += nodes_list def run_directive( self, name: str, first_line: str, content: str, position: int, additional_options: dict[str, str] | None = None, ) -> list[nodes.Element]: """Run a directive and return the generated nodes. :param name: the name of the directive :param first_line: The text on the same line as the directive name. May be an argument or body text, dependent on the directive :param content: All text after the first line. Can include options. :param position: The line number of the first line :param additional_options: Additional options to add to the directive, above those parsed from the content. """ self.document.current_line = position # get directive class output: tuple[Directive | None, list[SystemMessage]] = directives.directive( name, self.language_module_rst, self.document ) directive_class, messages = output if not directive_class: warn_node = self.create_warning( f"Unknown directive type: {name!r}", MystWarnings.UNKNOWN_DIRECTIVE, line=position, ) return ([warn_node] if warn_node else []) + messages if issubclass(directive_class, Include): # this is a Markdown only option, # to allow for altering relative image reference links directive_class.option_spec["relative-images"] = directives.flag directive_class.option_spec["relative-docs"] = directives.path directive_class.option_spec["heading-offset"] = directives.nonnegative_int try: parsed = parse_directive_text( directive_class, first_line, content, line=position, additional_options=additional_options, ) except MarkupError as error: error = self.reporter.error( f"Directive '{name}': {error}", line=position, ) return [error] for _warning in parsed.warnings: self.create_warning( f"{name!r}: {_warning.msg}", _warning.type, line=_warning.lineno if _warning.lineno is not None else position, append_to=self.current_node, ) # initialise directive if issubclass(directive_class, Include): directive_instance = MockIncludeDirective( self, name=name, klass=directive_class, arguments=parsed.arguments, options=parsed.options, body=parsed.body, lineno=position, ) else: state_machine = MockStateMachine(self, position) state = MockState(self, state_machine, position) directive_instance = directive_class( name=name, # the list of positional arguments arguments=parsed.arguments, # a dictionary mapping option names to values options=parsed.options, # the directive content line by line content=StringList(parsed.body, self.document["source"]), # the absolute line number of the first line of the directive lineno=position, # the line offset of the first line of the content content_offset=parsed.body_offset, # a string containing the entire directive block_text="\n".join(parsed.body), state=state, state_machine=state_machine, ) # run directive try: result = directive_instance.run() except DirectiveError as error: msg_node = self.reporter.system_message( error.level, error.msg, line=position ) msg_node += nodes.literal_block(content, content) result = [msg_node] except MockingError as exc: error_msg = self.reporter.error( f"Directive '{name}' cannot be mocked: {exc.__class__.__name__}: {exc}", nodes.literal_block(content, content), line=position, ) return [error_msg] assert isinstance( result, list ), f'Directive "{name}" must return a list of nodes.' for i in range(len(result)): assert isinstance( result[i], nodes.Node ), f'Directive "{name}" returned non-Node object (index {i}): {result[i]}' return result def render_substitution_inline(self, token: SyntaxTreeNode) -> None: """Render inline substitution {{key}}.""" self.render_substitution(token, inline=True) def render_substitution_block(self, token: SyntaxTreeNode) -> None: """Render block substitution {{key}}.""" self.render_substitution(token, inline=False) def render_substitution(self, token: SyntaxTreeNode, inline: bool) -> None: """Substitutions are rendered by: 1. Combining global substitutions with front-matter substitutions to create a variable context (front-matter takes priority) 2. Add the sphinx `env` to the variable context (if available) 3. Create the string content with Jinja2 (passing it the variable context) 4. If the substitution is inline and not a directive, parse to nodes ignoring block syntaxes (like lists or block-quotes), otherwise parse to nodes with all syntax rules. """ position = token_line(token) # front-matter substitutions take priority over config ones variable_context: dict[str, Any] = {**self.md_config.substitutions} if self.sphinx_env is not None: variable_context["env"] = self.sphinx_env # fail on undefined variables env = jinja2.Environment(undefined=jinja2.StrictUndefined) # try rendering try: rendered = env.from_string(f"{{{{{token.content}}}}}").render( variable_context ) except Exception as error: self.create_warning( f"Substitution error:{error.__class__.__name__}: {error}", MystWarnings.SUBSTITUTION, line=position, append_to=self.current_node, ) return # handle circular references ast = env.parse(f"{{{{{token.content}}}}}") references = { n.name for n in ast.find_all(jinja2.nodes.Name) if n.name != "env" } self.document.sub_references = getattr(self.document, "sub_references", set()) cyclic = references.intersection(self.document.sub_references) if cyclic: self.create_warning( f"circular substitution reference: {cyclic}", MystWarnings.SUBSTITUTION, line=position, append_to=self.current_node, ) return # TODO improve error reporting; # at present, for a multi-line substitution, # an error may point to a line lower than the substitution # should it point to the source of the substitution? # or the error message should at least indicate that its a substitution # we record used references before nested parsing, then remove them after self.document.sub_references.update(references) try: if inline and not REGEX_DIRECTIVE_START.match(rendered): self.nested_render_text(rendered, position, inline=True) else: self.nested_render_text(rendered, position) finally: self.document.sub_references.difference_update(references) def html_meta_to_nodes( data: dict[str, Any], document: nodes.document, line: int, reporter: Reporter ) -> list[nodes.pending | nodes.system_message]: """Replicate the `meta` directive, by converting a dictionary to a list of pending meta nodes See: https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html#html-metadata """ if not data: return [] output = [] for key, value in data.items(): content = str(value or "") meta_node = nodes.meta(content) meta_node.source = document["source"] meta_node.line = line meta_node["content"] = content try: if not content: raise ValueError("No content") for i, key_part in enumerate(key.split()): if "=" not in key_part and i == 0: meta_node["name"] = key_part continue if "=" not in key_part: raise ValueError(f"no '=' in {key_part}") attr_name, attr_val = key_part.split("=", 1) if not (attr_name and attr_val): raise ValueError(f"malformed {key_part}") meta_node[attr_name.lower()] = attr_val except ValueError as error: msg = reporter.error(f'Error parsing meta tag attribute "{key}": {error}.') output.append(msg) continue pending = nodes.pending( Filter, {"component": "writer", "format": "html", "nodes": [meta_node]}, ) document.note_pending(pending) output.append(pending) return output def clean_astext(node: nodes.Element) -> str: """Like node.astext(), but ignore images. Copied from sphinx. """ node = node.deepcopy() for img in findall(node)(nodes.image): img["alt"] = "" for raw in list(findall(node)(nodes.raw)): raw.parent.remove(raw) return node.astext() _SLUGIFY_CLEAN_REGEX = re.compile(r"[^\w\u4e00-\u9fff\- ]") def default_slugify(title: str) -> str: """Default slugify function. This aims to mimic the GitHub Markdown format, see: - https://github.com/jch/html-pipeline/blob/master/lib/html/pipeline/toc_filter.rb - https://gist.github.com/asabaylus/3071099 """ return _SLUGIFY_CLEAN_REGEX.sub("", title.lower().replace(" ", "-")) def compute_unique_slug( token_tree: SyntaxTreeNode, slugs: Iterable[str], slug_func: None | Callable[[str], str] = None, ) -> str: """Compute the slug for a token. This directly mirrors the logic in `mdit_py_plugins.anchors_plugin` """ slug_func = default_slugify if slug_func is None else slug_func tokens = token_tree.to_tokens() inline_token = tokens[1] title = "".join( child.content for child in (inline_token.children or []) if child.type in ["text", "code_inline"] ) slug = slug_func(title) i = 1 while slug in slugs: slug = f"{slug}-{i}" i += 1 return slug MyST-Parser-4.0.0/myst_parser/mdit_to_docutils/html_to_nodes.py000066400000000000000000000105431465415536200247440ustar00rootroot00000000000000"""Convert HTML to docutils nodes.""" from __future__ import annotations import re from typing import TYPE_CHECKING from docutils import nodes from myst_parser.parsers.parse_html import Data, tokenize_html from myst_parser.warnings_ import MystWarnings if TYPE_CHECKING: from .base import DocutilsRenderer def make_error( document: nodes.document, error_msg: str, text: str, line_number: int ) -> nodes.system_message: return document.reporter.error( error_msg, nodes.literal_block(text, text), line=line_number, ) OPTION_KEYS_IMAGE = {"class", "alt", "height", "width", "align", "name"} # note: docutils also has scale and target OPTION_KEYS_ADMONITION = {"class", "name"} # See https://github.com/micromark/micromark-extension-gfm-tagfilter RE_FLOW = re.compile( r"<(\/?)(iframe|noembed|noframes|plaintext|script|style|title|textarea|xmp)(?=[\t\n\f\r />])", re.IGNORECASE, ) def default_html(text: str, source: str, line_number: int) -> list[nodes.Element]: raw_html = nodes.raw("", text, format="html") raw_html.source = source raw_html.line = line_number return [raw_html] def html_to_nodes( text: str, line_number: int, renderer: DocutilsRenderer ) -> list[nodes.Element]: """Convert HTML to docutils nodes.""" if renderer.md_config.gfm_only: text, _ = RE_FLOW.subn(lambda s: s.group(0).replace("<", "<"), text) enable_html_img = "html_image" in renderer.md_config.enable_extensions enable_html_admonition = "html_admonition" in renderer.md_config.enable_extensions if not (enable_html_img or enable_html_admonition): return default_html(text, renderer.document["source"], line_number) # parse the HTML to AST try: root = tokenize_html(text).strip(inplace=True, recurse=False) except Exception: msg_node = renderer.create_warning( "HTML could not be parsed", MystWarnings.HTML_PARSE, line=line_number ) return ([msg_node] if msg_node else []) + default_html( text, renderer.document["source"], line_number ) if len(root) < 1: # if empty return default_html(text, renderer.document["source"], line_number) if not all( (enable_html_img and child.name == "img") or ( enable_html_admonition and child.name == "div" and "admonition" in child.attrs.classes ) for child in root ): return default_html(text, renderer.document["source"], line_number) nodes_list = [] for child in root: if child.name == "img": if "src" not in child.attrs: return [ renderer.reporter.error( " missing 'src' attribute", line=line_number ) ] content = "\n".join( f":{k}: {v}" for k, v in sorted(child.attrs.items()) if k in OPTION_KEYS_IMAGE ) nodes_list.extend( renderer.run_directive( "image", child.attrs["src"], content, line_number ) ) else: children = child.strip().children title = ( "".join(child.render() for child in children.pop(0)) if children and children[0].name in ("div", "p") and ( "title" in children[0].attrs.classes or "admonition-title" in children[0].attrs.classes ) else "Note" ) options = "\n".join( f":{k}: {v}" for k, v in sorted(child.attrs.items()) if k in OPTION_KEYS_ADMONITION ).rstrip() new_children = [] for child in children: if child.name == "p": new_children.extend(child.children) new_children.append(Data("\n\n")) else: new_children.append(child) content = ( options + ("\n\n" if options else "") + "".join(child.render() for child in new_children).lstrip() ) nodes_list.extend( renderer.run_directive("admonition", title, content, line_number) ) return nodes_list MyST-Parser-4.0.0/myst_parser/mdit_to_docutils/sphinx_.py000066400000000000000000000223711465415536200235600ustar00rootroot00000000000000"""Convert Markdown-it tokens to docutils nodes, including sphinx specific elements.""" from __future__ import annotations import os from pathlib import Path from typing import cast from uuid import uuid4 from docutils import nodes from markdown_it.tree import SyntaxTreeNode from sphinx import addnodes from sphinx.domains.math import MathDomain from sphinx.environment import BuildEnvironment from sphinx.ext.intersphinx import InventoryAdapter from sphinx.util import logging from myst_parser import inventory from myst_parser.mdit_to_docutils.base import DocutilsRenderer, token_line from myst_parser.warnings_ import MystWarnings LOGGER = logging.getLogger(__name__) class SphinxRenderer(DocutilsRenderer): """A markdown-it-py renderer to populate (in-place) a `docutils.document` AST. This is sub-class of `DocutilsRenderer` that handles sphinx specific aspects, such as cross-referencing. """ @property def sphinx_env(self) -> BuildEnvironment: return self.document.settings.env def _process_wrap_node( self, wrap_node: nodes.Element, token: SyntaxTreeNode, explicit: bool, classes: list[str], path_dest: str, ): """Process a wrap node, which is a node that wraps a link.""" self.add_line_and_source_path(wrap_node, token) self.copy_attributes(token, wrap_node, ("class", "id", "title")) self.current_node.append(wrap_node) if explicit: inner_node = nodes.inline("", "", classes=classes) with self.current_node_context(inner_node): self.render_children(token) elif isinstance(wrap_node, addnodes.download_reference): inner_node = nodes.literal(path_dest, path_dest, classes=classes) else: inner_node = nodes.inline("", "", classes=classes) wrap_node.append(inner_node) def _handle_relative_docs(self, destination: str) -> str: """Make the path relative to an "including" document This is set when using the `relative-docs` option of the MyST `include` directive """ relative_include = self.md_env.get("relative-docs", None) if relative_include is not None and destination.startswith(relative_include[0]): source_dir, include_dir = relative_include[1:] destination = os.path.relpath( os.path.join(include_dir, os.path.normpath(destination)), source_dir ) return destination def render_link_project(self, token: SyntaxTreeNode) -> None: destination = cast(str, token.attrGet("href") or "") if destination.startswith("project:"): destination = destination[8:] if destination.startswith("#"): return self.render_link_anchor(token, destination) if not self.sphinx_env.srcdir: # not set in some test situations return self.render_link_url(token) destination = self.md.normalizeLinkText(destination) destination = self._handle_relative_docs(destination) path_dest, *_path_ids = destination.split("#", maxsplit=1) path_id = _path_ids[0] if _path_ids else None explicit = (token.info != "auto") and (len(token.children or []) > 0) _, abs_path = self.sphinx_env.relfn2path(path_dest, self.sphinx_env.docname) docname = self.sphinx_env.path2doc(abs_path) if not docname: self.create_warning( f"Could not find document: {abs_path}", MystWarnings.XREF_MISSING, line=token_line(token, 0), append_to=self.current_node, ) return self.render_link_url(token) wrap_node = addnodes.pending_xref( refdomain="doc", reftarget=docname, reftargetid=path_id, refdoc=self.sphinx_env.docname, reftype="myst", refexplicit=explicit, ) classes = ["xref", "myst"] self._process_wrap_node(wrap_node, token, explicit, classes, destination) def render_link_path(self, token: SyntaxTreeNode) -> None: destination = self.md.normalizeLinkText(cast(str, token.attrGet("href") or "")) if destination.startswith("path:"): destination = destination[5:] destination = self._handle_relative_docs(destination) explicit = (token.info != "auto") and (len(token.children or []) > 0) wrap_node = addnodes.download_reference( refdomain=None, reftarget=destination, refdoc=self.sphinx_env.docname, reftype="myst", refexplicit=explicit, ) classes = ["xref", "download", "myst"] self._process_wrap_node(wrap_node, token, explicit, classes, destination) def render_link_unknown(self, token: SyntaxTreeNode) -> None: """Render link token `[text](link "title")`, where the link has not been identified as an external URL. """ destination = self.md.normalizeLinkText(cast(str, token.attrGet("href") or "")) destination = self._handle_relative_docs(destination) explicit = (token.info != "auto") and (len(token.children or []) > 0) kwargs = { "refdoc": self.sphinx_env.docname, "reftype": "myst", "refexplicit": explicit, } path_dest, *_path_ids = destination.split("#", maxsplit=1) path_id = _path_ids[0] if _path_ids else None potential_path: None | Path = None if self.sphinx_env.srcdir: # not set in some test situations _, path_str = self.sphinx_env.relfn2path(path_dest, self.sphinx_env.docname) potential_path = Path(path_str) if potential_path and potential_path.is_file(): docname = self.sphinx_env.path2doc(str(potential_path)) if docname: wrap_node = addnodes.pending_xref( refdomain="doc", reftarget=docname, reftargetid=path_id, **kwargs ) classes = ["xref", "myst"] else: wrap_node = addnodes.download_reference( refdomain=None, reftarget=path_dest, **kwargs ) classes = ["xref", "download", "myst"] else: wrap_node = addnodes.pending_xref( refdomain=None, reftarget=destination, **kwargs ) classes = ["xref", "myst"] self._process_wrap_node(wrap_node, token, explicit, classes, path_dest) def get_inventory_matches( self, *, invs: str | None, domains: str | None, otypes: str | None, target: str | None, ) -> list[inventory.InvMatch]: return list( inventory.filter_sphinx_inventories( InventoryAdapter(self.sphinx_env).named_inventory, invs=invs, domains=domains, otypes=otypes, targets=target, ) ) def render_math_block_label(self, token: SyntaxTreeNode) -> None: """Render math with referencable labels, e.g. ``$a=1$ (label)``.""" label = token.info content = token.content node = nodes.math_block( content, content, nowrap=False, number=None, label=label ) target = self.add_math_target(node) self.add_line_and_source_path(target, token) self.current_node.append(target) self.add_line_and_source_path(node, token) self.current_node.append(node) def _random_label(self) -> str: return str(uuid4()) def render_amsmath(self, token: SyntaxTreeNode) -> None: """Renderer for the amsmath extension.""" # environment = token.meta["environment"] content = token.content if token.meta["numbered"] != "*": # TODO how to parse and reference labels within environment? # for now we give create a unique hash, so the equation will be numbered # but there will be no reference clashes label = self._random_label() node = nodes.math_block( content, content, nowrap=True, number=None, classes=["amsmath"], label=label, ) target = self.add_math_target(node) self.add_line_and_source_path(target, token) self.current_node.append(target) else: node = nodes.math_block( content, content, nowrap=True, number=None, classes=["amsmath"] ) self.add_line_and_source_path(node, token) self.current_node.append(node) def add_math_target(self, node: nodes.math_block) -> nodes.target: # Code mainly copied from sphinx.directives.patches.MathDirective # register label to domain domain = cast(MathDomain, self.sphinx_env.get_domain("math")) domain.note_equation(self.sphinx_env.docname, node["label"], location=node) node["number"] = domain.get_equation_number_for(node["label"]) node["docname"] = self.sphinx_env.docname # create target node node_id = nodes.make_id("equation-{}".format(node["label"])) target = nodes.target("", "", ids=[node_id]) self.document.note_explicit_target(target) return target MyST-Parser-4.0.0/myst_parser/mdit_to_docutils/transforms.py000066400000000000000000000235251465415536200243100ustar00rootroot00000000000000"""Directives that can be applied to both Sphinx and docutils.""" from __future__ import annotations import typing as t from docutils import nodes from docutils.transforms import Transform from docutils.transforms.references import Footnotes from markdown_it.common.normalize_url import normalizeLink from myst_parser._compat import findall from myst_parser.mdit_to_docutils.base import clean_astext from myst_parser.warnings_ import MystWarnings, create_warning class UnreferencedFootnotesDetector(Transform): """Detect unreferenced footnotes and emit warnings. Replicates https://github.com/sphinx-doc/sphinx/pull/12730, but also allows for use in docutils (without sphinx). """ default_priority = Footnotes.default_priority + 2 # document: nodes.document def apply(self, **kwargs: t.Any) -> None: """Apply the transform.""" for node in self.document.footnotes: # note we do not warn on duplicate footnotes here # (i.e. where the name has been moved to dupnames) # since this is already reported by docutils if not node["backrefs"] and node["names"]: create_warning( self.document, "Footnote [{}] is not referenced.".format(node["names"][0]) if node["names"] else node["dupnames"][0], wtype="ref", subtype="footnote", node=node, ) for node in self.document.symbol_footnotes: if not node["backrefs"]: create_warning( self.document, "Footnote [*] is not referenced.", wtype="ref", subtype="footnote", node=node, ) for node in self.document.autofootnotes: # note we do not warn on duplicate footnotes here # (i.e. where the name has been moved to dupnames) # since this is already reported by docutils if not node["backrefs"] and node["names"]: create_warning( self.document, "Footnote [#] is not referenced.", wtype="ref", subtype="footnote", node=node, ) class SortFootnotes(Transform): """Sort auto-numbered, labelled footnotes by the order they are referenced. This is run before the docutils ``Footnote`` transform, where numbered labels are assigned. """ default_priority = Footnotes.default_priority - 2 # document: nodes.document def apply(self, **kwargs: t.Any) -> None: """Apply the transform.""" if not self.document.settings.myst_footnote_sort: return ref_order: list[str] = [ node["refname"] for node in self.document.autofootnote_refs if "refname" in node ] def _sort_key(node: nodes.footnote) -> int: if node["names"] and node["names"][0] in ref_order: return ref_order.index(node["names"][0]) return 999 self.document.autofootnotes.sort(key=_sort_key) class CollectFootnotes(Transform): """Transform to move footnotes to the end of the document, and sort by label.""" default_priority = Footnotes.default_priority + 3 # document: nodes.document def apply(self, **kwargs: t.Any) -> None: """Apply the transform.""" if not self.document.settings.myst_footnote_sort: return footnotes: list[tuple[str, nodes.footnote]] = [] for footnote in ( self.document.symbol_footnotes + self.document.footnotes + self.document.autofootnotes ): label = footnote.children[0] footnotes.append((label.astext(), footnote)) if ( footnotes and self.document.settings.myst_footnote_transition # avoid warning: Document or section may not begin with a transition and not all(isinstance(c, nodes.footnote) for c in self.document.children) ): transition = nodes.transition(classes=["footnotes"]) transition.source = self.document.source self.document += transition def _sort_key(footnote: tuple[str, nodes.footnote]) -> int | str: label, _ = footnote try: # ensure e.g 10 comes after 2 return int(label) except ValueError: return label for _, footnote in sorted(footnotes, key=_sort_key): footnote.parent.remove(footnote) self.document += footnote class ResolveAnchorIds(Transform): """Transform for resolving `[name](#id)` type links.""" default_priority = 879 # this is the same as Sphinx's StandardDomain.process_doc def apply(self, **kwargs: t.Any) -> None: """Apply the transform.""" # gather the implicit heading slugs # name -> (line, slug, title) slugs: dict[str, tuple[int, str, str]] = getattr( self.document, "myst_slugs", {} ) # gather explicit references # this follows the same logic as Sphinx's StandardDomain.process_doc explicit: dict[str, tuple[str, None | str]] = {} for name, is_explicit in self.document.nametypes.items(): if not is_explicit: continue labelid = self.document.nameids[name] if labelid is None: continue if labelid is None: continue node = self.document.ids[labelid] if isinstance(node, nodes.target) and "refid" in node: # indirect hyperlink targets node = self.document.ids.get(node["refid"]) labelid = node["names"][0] if ( node.tagname == "footnote" or "refuri" in node or node.tagname.startswith("desc_") ): # ignore footnote labels, labels automatically generated from a # link and object descriptions continue implicit_title = None if node.tagname == "rubric": implicit_title = clean_astext(node) if implicit_title is None: # handle sections and and other captioned elements for subnode in node: if isinstance(subnode, nodes.caption | nodes.title): implicit_title = clean_astext(subnode) break if implicit_title is None: # handle definition lists and field lists if ( isinstance(node, nodes.definition_list | nodes.field_list) and node.children ): node = node[0] if ( isinstance(node, nodes.field | nodes.definition_list_item) and node.children ): node = node[0] if isinstance(node, nodes.term | nodes.field_name): implicit_title = clean_astext(node) explicit[name] = (labelid, implicit_title) for refnode in findall(self.document)(nodes.reference): if not refnode.get("id_link"): continue target = refnode["refuri"][1:] del refnode["refuri"] # search explicit first if target in explicit: ref_id, implicit_title = explicit[target] refnode["refid"] = ref_id if not refnode.children and implicit_title: refnode += nodes.inline( implicit_title, implicit_title, classes=["std", "std-ref"] ) elif not refnode.children: refnode += nodes.inline( "#" + target, "#" + target, classes=["std", "std-ref"] ) continue # now search implicit if target in slugs: _, sect_id, implicit_title = slugs[target] refnode["refid"] = sect_id if not refnode.children and implicit_title: refnode += nodes.inline( implicit_title, implicit_title, classes=["std", "std-ref"] ) continue # if still not found, and using sphinx, then create a pending_xref if hasattr(self.document.settings, "env"): from sphinx import addnodes pending = addnodes.pending_xref( refdoc=self.document.settings.env.docname, refdomain=None, reftype="myst", reftarget=target, refexplicit=bool(refnode.children), ) inner_node = nodes.inline( "", "", classes=["xref", "myst"] + refnode["classes"] ) for attr in ("ids", "names", "dupnames"): inner_node[attr] = refnode[attr] inner_node += refnode.children pending += inner_node refnode.parent.replace(refnode, pending) continue # if still not found, and using docutils, then create a warning # and simply output as a url create_warning( self.document, f"'myst' reference target not found: {target!r}", MystWarnings.XREF_MISSING, line=refnode.line, append_to=refnode, ) refnode["refid"] = normalizeLink(target) if not refnode.children: refnode += nodes.inline( "#" + target, "#" + target, classes=["std", "std-ref"] ) MyST-Parser-4.0.0/myst_parser/mocking.py000066400000000000000000000535761465415536200202050ustar00rootroot00000000000000"""This module provides classes to Mock the core components of the docutils.RSTParser, the key difference being that nested parsing treats the text as Markdown not rST. """ from __future__ import annotations import os import re import sys from pathlib import Path from typing import TYPE_CHECKING, Any from docutils import nodes from docutils.parsers.rst import Directive, DirectiveError from docutils.parsers.rst import Parser as RSTParser from docutils.parsers.rst.directives.misc import Include from docutils.parsers.rst.states import Body, Inliner, RSTStateMachine from docutils.statemachine import StringList from docutils.utils import unescape from .parsers.directives import MarkupError, parse_directive_text if TYPE_CHECKING: from .mdit_to_docutils.base import DocutilsRenderer class MockingError(Exception): """An exception to signal an error during mocking of docutils components.""" class MockInliner: """A mock version of `docutils.parsers.rst.states.Inliner`. This is parsed to role functions. """ def __init__(self, renderer: DocutilsRenderer): """Initialize the mock inliner.""" self._renderer = renderer # here we mock that the `parse` method has already been called # which is where these attributes are set (via the RST state Memo) self.document = renderer.document self.reporter = renderer.document.reporter self.language = renderer.language_module_rst self.parent = renderer.current_node if not hasattr(self.reporter, "get_source_and_line"): # In docutils this is set by `RSTState.runtime_init` self.reporter.get_source_and_line = lambda li: (self.document["source"], li) self.rfc_url = "rfc%d.html" def problematic( self, text: str, rawsource: str, message: nodes.system_message ) -> nodes.problematic: """Record a system message from parsing.""" msgid = self.document.set_id(message, self.parent) problematic = nodes.problematic(rawsource, text, refid=msgid) prbid = self.document.set_id(problematic) message.add_backref(prbid) return problematic def parse( self, text: str, lineno: int, memo: Any, parent: nodes.Node ) -> tuple[list[nodes.Node], list[nodes.system_message]]: """Parse the text and return a list of nodes.""" # note the only place this is normally called, # is by `RSTState.inline_text`, or in directives: `self.state.inline_text`, # and there the state parses its own parent # self.reporter = memo.reporter # self.document = memo.document # self.language = memo.language with self._renderer.current_node_context(parent): # the parent is never actually appended to though, # so we make a temporary parent to parse into container = nodes.Element() with self._renderer.current_node_context(container): self._renderer.nested_render_text(text, lineno, inline=True) return container.children, [] def __getattr__(self, name: str): """This method is only be called if the attribute requested has not been defined. Defined attributes will not be overridden. """ # TODO use document.reporter mechanism? if hasattr(Inliner, name): msg = f"{type(self).__name__} has not yet implemented attribute '{name}'" raise MockingError(msg).with_traceback(sys.exc_info()[2]) msg = f"{type(self).__name__} has no attribute {name}" raise MockingError(msg).with_traceback(sys.exc_info()[2]) class MockState: """A mock version of `docutils.parsers.rst.states.RSTState`. This is parsed to the `Directives.run()` method, so that they may run nested parses on their content that will be parsed as markdown, rather than RST. """ def __init__( self, renderer: DocutilsRenderer, state_machine: MockStateMachine, lineno: int, ): self._renderer = renderer self._lineno = lineno self.document = renderer.document self.reporter = renderer.document.reporter self.state_machine = state_machine self.inliner = MockInliner(renderer) class Struct: document = self.document reporter = self.document.reporter language = renderer.language_module_rst title_styles: list[str] = [] section_level = max(renderer._level_to_section) section_bubble_up_kludge = False inliner = self.inliner self.memo = Struct def parse_directive_block( self, content: StringList, line_offset: int, directive: type[Directive], option_presets: dict[str, Any], ) -> tuple[list[str], dict[str, Any], StringList, int]: """Parse the full directive text :raises MarkupError: for errors in parsing the directive :returns: (arguments, options, content, content_offset) """ # note this is essentially only used by the docutils `role` directive if option_presets: raise MockingError("parse_directive_block: option_presets not implemented") # TODO should argument_str always be ""? parsed = parse_directive_text(directive, "", "\n".join(content)) if parsed.warnings: raise MarkupError(",".join(w.msg for w in parsed.warnings)) return ( parsed.arguments, parsed.options, StringList(parsed.body, source=content.source), line_offset + parsed.body_offset, ) def nested_parse( self, block: StringList, input_offset: int, node: nodes.Element, match_titles: bool = False, state_machine_class=None, state_machine_kwargs=None, ) -> None: """Perform a nested parse of the input block, with ``node`` as the parent. :param block: The block of lines to parse. :param input_offset: The offset of the first line of block, to the starting line of the state (i.e. directive). :param node: The parent node to attach the parsed content to. :param match_titles: Whether to to allow the parsing of headings (normally this is false, since nested heading would break the document structure) """ sm_match_titles = self.state_machine.match_titles with self._renderer.current_node_context(node): self._renderer.nested_render_text( "\n".join(block), self._lineno + input_offset, temp_root_node=node if match_titles else None, ) self.state_machine.match_titles = sm_match_titles def parse_target(self, block, block_text, lineno: int): """ Taken from https://github.com/docutils-mirror/docutils/blob/e88c5fb08d5cdfa8b4ac1020dd6f7177778d5990/docutils/parsers/rst/states.py#L1927 """ # Commenting out this code because it only applies to rST # if block and block[-1].strip()[-1:] == "_": # possible indirect target # reference = " ".join([line.strip() for line in block]) # refname = self.is_reference(reference) # if refname: # return "refname", refname reference = "".join(["".join(line.split()) for line in block]) return "refuri", unescape(reference) def inline_text( self, text: str, lineno: int ) -> tuple[list[nodes.Element], list[nodes.Element]]: """Parse text with only inline rules. :returns: (list of nodes, list of messages) """ return self.inliner.parse(text, lineno, self.memo, self._renderer.current_node) # U+2014 is an em-dash: attribution_pattern = re.compile("^((?:---?(?!-)|\u2014) *)(.+)") def block_quote(self, lines: list[str], line_offset: int) -> list[nodes.Element]: """Parse a block quote, which is a block of text, followed by an (optional) attribution. :: No matter where you go, there you are. -- Buckaroo Banzai """ elements = [] # split attribution last_line_blank = False blockquote_lines = lines attribution_lines = [] attribution_line_offset = None # First line after a blank line must begin with a dash for i, line in enumerate(lines): if not line.strip(): last_line_blank = True continue if not last_line_blank: last_line_blank = False continue last_line_blank = False match = self.attribution_pattern.match(line) if not match: continue attribution_line_offset = i attribution_lines = [match.group(2)] for at_line in lines[i + 1 :]: indented_line = at_line[len(match.group(1)) :] if len(indented_line) != len(at_line.lstrip()): break attribution_lines.append(indented_line) blockquote_lines = lines[:i] break # parse block blockquote = nodes.block_quote() self.nested_parse(blockquote_lines, line_offset, blockquote) elements.append(blockquote) # parse attribution if attribution_lines: attribution_text = "\n".join(attribution_lines) lineno = self._lineno + line_offset + (attribution_line_offset or 0) textnodes, messages = self.inline_text(attribution_text, lineno) attribution = nodes.attribution(attribution_text, "", *textnodes) ( attribution.source, attribution.line, ) = self.state_machine.get_source_and_line(lineno) blockquote += attribution elements += messages return elements def build_table(self, tabledata, tableline, stub_columns: int = 0, widths=None): return Body.build_table(self, tabledata, tableline, stub_columns, widths) def build_table_row(self, rowdata, tableline): return Body.build_table_row(self, rowdata, tableline) def nest_line_block_lines(self, block: nodes.line_block): """Modify the line block element in-place, to nest line block segments. Line nodes are placed into child line block containers, based on their indentation. """ for index in range(1, len(block)): if getattr(block[index], "indent", None) is None: block[index].indent = block[index - 1].indent self._nest_line_block_segment(block) def _nest_line_block_segment(self, block: nodes.line_block): indents = [item.indent for item in block] least = min(indents) new_items = [] new_block = nodes.line_block() for item in block: if item.indent > least: new_block.append(item) else: if len(new_block): self._nest_line_block_segment(new_block) new_items.append(new_block) new_block = nodes.line_block() new_items.append(item) if len(new_block): self._nest_line_block_segment(new_block) new_items.append(new_block) block[:] = new_items def __getattr__(self, name: str): """This method is only be called if the attribute requested has not been defined. Defined attributes will not be overridden. """ cls = type(self).__name__ msg = ( f"{cls} has not yet implemented attribute '{name}'. " "You can parse RST directly via the `{{eval-rst}}` directive: " "https://myst-parser.readthedocs.io/en/latest/syntax/syntax.html#how-directives-parse-content" if hasattr(Body, name) else f"{cls} has no attribute '{name}'" ) raise MockingError(msg).with_traceback(sys.exc_info()[2]) class MockStateMachine: """A mock version of `docutils.parsers.rst.states.RSTStateMachine`. This is parsed to the `Directives.run()` method. """ def __init__(self, renderer: DocutilsRenderer, lineno: int): self._renderer = renderer self._lineno = lineno self.document = renderer.document self.language = renderer.language_module_rst self.reporter = self.document.reporter self.node: nodes.Element = renderer.current_node self.match_titles: bool = True def get_source(self, lineno: int | None = None): """Return document source path.""" return self.document["source"] def get_source_and_line(self, lineno: int | None = None): """Return (source path, line) tuple for current or given line number.""" return self.document["source"], lineno or self._lineno def __getattr__(self, name: str): """This method is only be called if the attribute requested has not been defined. Defined attributes will not be overridden. """ if hasattr(RSTStateMachine, name): msg = f"{type(self).__name__} has not yet implemented attribute '{name}'" raise MockingError(msg).with_traceback(sys.exc_info()[2]) msg = f"{type(self).__name__} has no attribute {name}" raise MockingError(msg).with_traceback(sys.exc_info()[2]) class MockIncludeDirective: """This directive uses a lot of statemachine logic that is not yet mocked. Therefore, we treat it as a special case (at least for now). See: https://docutils.sourceforge.io/docs/ref/rst/directives.html#including-an-external-document-fragment """ def __init__( self, renderer: DocutilsRenderer, name: str, klass: Include, arguments: list[str], options: dict[str, Any], body: list[str], lineno: int, ): self.renderer = renderer self.document = renderer.document self.name = name self.klass = klass self.arguments = arguments self.options = options self.body = body self.lineno = lineno def run(self) -> list[nodes.Element]: from docutils.parsers.rst.directives.body import CodeBlock, NumberLines if not self.document.settings.file_insertion_enabled: raise DirectiveError(2, f'Directive "{self.name}" disabled.') source_dir = Path(self.document["source"]).absolute().parent include_arg = "".join([s.strip() for s in self.arguments[0].splitlines()]) if include_arg.startswith("<") and include_arg.endswith(">"): # # docutils "standard" includes path = Path(self.klass.standard_include_path).joinpath(include_arg[1:-1]) else: # if using sphinx interpret absolute paths "correctly", # i.e. relative to source directory try: sphinx_env = self.document.settings.env except AttributeError: pass else: _, include_arg = sphinx_env.relfn2path(self.arguments[0]) sphinx_env.note_included(include_arg) path = Path(include_arg) path = source_dir.joinpath(path) # this ensures that the parent file is rebuilt if the included file changes self.document.settings.record_dependencies.add(str(path)) # read file encoding = self.options.get("encoding", self.document.settings.input_encoding) error_handler = self.document.settings.input_encoding_error_handler # tab_width = self.options.get("tab-width", self.document.settings.tab_width) try: file_content = path.read_text(encoding=encoding, errors=error_handler) except FileNotFoundError as error: raise DirectiveError( 4, f'Directive "{self.name}": file not found: {str(path)!r}' ) from error except Exception as error: raise DirectiveError( 4, f'Directive "{self.name}": error reading file: {path}\n{error}.' ) from error if self.renderer.sphinx_env is not None: # Emit the "include-read" event # see: https://github.com/sphinx-doc/sphinx/commit/ff18318613db56d0000db47e5c8f0140556cef0c arg = [file_content] relative_path = Path( os.path.relpath(path, start=self.renderer.sphinx_env.srcdir) ) parent_docname = Path(self.renderer.document["source"]).stem self.renderer.sphinx_env.app.events.emit( "include-read", relative_path, parent_docname, arg, ) file_content = arg[0] # get required section of text startline = self.options.get("start-line", None) endline = self.options.get("end-line", None) file_content = "\n".join(file_content.splitlines()[startline:endline]) startline = startline or 0 for split_on_type in ["start-after", "end-before"]: split_on = self.options.get(split_on_type, None) if not split_on: continue split_index = file_content.find(split_on) if split_index < 0: raise DirectiveError( 4, f'Directive "{self.name}"; option "{split_on_type}": text not found "{split_on}".', ) if split_on_type == "start-after": startline += split_index + len(split_on) file_content = file_content[split_index + len(split_on) :] else: file_content = file_content[:split_index] if "literal" in self.options: literal_block = nodes.literal_block( file_content, source=str(path), classes=self.options.get("class", []) ) literal_block.line = 1 # TODO don;t think this should be 1? self.add_name(literal_block) if "number-lines" in self.options: try: startline = int(self.options["number-lines"] or 1) except ValueError as err: raise DirectiveError( 3, ":number-lines: with non-integer start value" ) from err endline = startline + len(file_content.splitlines()) if file_content.endswith("\n"): file_content = file_content[:-1] tokens = NumberLines([([], file_content)], startline, endline) for classes, value in tokens: if classes: literal_block += nodes.inline(value, value, classes=classes) else: literal_block += nodes.Text(value) else: literal_block += nodes.Text(file_content) return [literal_block] if "code" in self.options: self.options["source"] = str(path) state_machine = MockStateMachine(self.renderer, self.lineno) state = MockState(self.renderer, state_machine, self.lineno) codeblock = CodeBlock( name=self.name, arguments=[self.options.pop("code")], options=self.options, content=file_content.splitlines(), lineno=self.lineno, content_offset=0, block_text=file_content, state=state, state_machine=state_machine, ) return codeblock.run() # Here we perform a nested render, but temporarily setup the document/reporter # with the correct document path and lineno for the included file. source = self.renderer.document["source"] rsource = self.renderer.reporter.source line_func = getattr(self.renderer.reporter, "get_source_and_line", None) try: self.renderer.document["source"] = str(path) self.renderer.reporter.source = str(path) self.renderer.reporter.get_source_and_line = lambda li: (str(path), li) if "relative-images" in self.options: self.renderer.md_env["relative-images"] = os.path.relpath( path.parent, source_dir ) if "relative-docs" in self.options: self.renderer.md_env["relative-docs"] = ( self.options["relative-docs"], source_dir, path.parent, ) self.renderer.nested_render_text( file_content, startline + 1, heading_offset=self.options.get("heading-offset", 0), ) finally: self.renderer.document["source"] = source self.renderer.reporter.source = rsource self.renderer.md_env.pop("relative-images", None) self.renderer.md_env.pop("relative-docs", None) if line_func is not None: self.renderer.reporter.get_source_and_line = line_func else: del self.renderer.reporter.get_source_and_line return [] def add_name(self, node: nodes.Element): """Append self.options['name'] to node['names'] if it exists. Also normalize the name string and register it as explicit target. """ if "name" in self.options: name = nodes.fully_normalize_name(self.options.pop("name")) if "name" in node: del node["name"] node["names"].append(name) self.renderer.document.note_explicit_target(node, node) class MockRSTParser(RSTParser): """RSTParser which avoids a negative side effect.""" def parse(self, inputstring: str, document: nodes.document): """Parse the input to populate the document AST.""" from docutils.parsers.rst import roles should_restore = False if "" in roles._roles: should_restore = True blankrole = roles._roles[""] super().parse(inputstring, document) if should_restore: roles._roles[""] = blankrole MyST-Parser-4.0.0/myst_parser/parsers/000077500000000000000000000000001465415536200176435ustar00rootroot00000000000000MyST-Parser-4.0.0/myst_parser/parsers/__init__.py000066400000000000000000000000741465415536200217550ustar00rootroot00000000000000"""Parsers of MyST Markdown source text to docutils AST.""" MyST-Parser-4.0.0/myst_parser/parsers/directives.py000066400000000000000000000252321465415536200223620ustar00rootroot00000000000000"""Fenced code blocks are parsed as directives, if the block starts with ``{directive_name}``, followed by arguments on the same line. Directive options are read from a YAML block, if the first content line starts with ``---``, e.g. :: ```{directive_name} arguments --- option1: name option2: | Longer text block --- content... ``` Or the option block will be parsed if the first content line starts with ``:``, as a YAML block consisting of every line that starts with a ``:``, e.g. :: ```{directive_name} arguments :option1: name :option2: other content... ``` If the first line of a directive's content is blank, this will be stripped from the content. This is to allow for separation between the option block and content. """ from __future__ import annotations import re from collections.abc import Callable from dataclasses import dataclass from textwrap import dedent from typing import Any import yaml from docutils.parsers.rst import Directive from docutils.parsers.rst.directives import flag from docutils.parsers.rst.directives.misc import TestDirective from docutils.parsers.rst.states import MarkupError from myst_parser.warnings_ import MystWarnings from .options import TokenizeError, options_to_items @dataclass class ParseWarnings: msg: str lineno: int | None = None type: MystWarnings = MystWarnings.DIRECTIVE_PARSING @dataclass class DirectiveParsingResult: arguments: list[str] """The arguments parsed from the first line.""" options: dict """Options parsed from the YAML block.""" body: list[str] """The lines of body content""" body_offset: int """The number of lines to the start of the body content.""" warnings: list[ParseWarnings] """List of non-fatal errors encountered during parsing. (message, line_number) """ def parse_directive_text( directive_class: type[Directive], first_line: str, content: str, *, line: int | None = None, validate_options: bool = True, additional_options: dict[str, str] | None = None, ) -> DirectiveParsingResult: """Parse (and validate) the full directive text. :param first_line: The text on the same line as the directive name. May be an argument or body text, dependent on the directive :param content: All text after the first line. Can include options. :param validate_options: Whether to validate the values of options This is actually only here to be used by myst-nb cells, which converts options directly to JSON metadata, using the full YAML spec. :param additional_options: Additional options to add to the directive, above those parsed from the content (content options take priority). :raises MarkupError: if there is a fatal parsing/validation error """ parse_warnings: list[ParseWarnings] options: dict[str, Any] body_lines: list[str] content_offset: int has_options_block: bool if directive_class.option_spec: # only look for an option block if there are possible options # body, options, option_errors = _parse_directive_options( result = _parse_directive_options( content, directive_class, line=line, as_yaml=not validate_options, additional_options=additional_options, ) parse_warnings = result.warnings has_options_block = result.has_options options = result.options body_lines = result.content.splitlines() content_offset = len(content.splitlines()) - len(body_lines) else: parse_warnings = [] has_options_block = False options = {} body_lines = content.splitlines() content_offset = 0 if not (directive_class.required_arguments or directive_class.optional_arguments): # If there are no possible arguments, then the body can start on the argument line if first_line.strip(): if has_options_block and any(body_lines): parse_warnings.append( ParseWarnings( "Splitting content across first line and body, " "when an options block is present, is not recommended" ) ) body_lines.insert(0, first_line) content_offset = 0 arguments = [] else: arguments = parse_directive_arguments(directive_class, first_line) # remove first line of body if blank # this is to allow space between the options and the content if body_lines and not body_lines[0].strip(): body_lines = body_lines[1:] content_offset += 1 # check for body content if body_lines and not directive_class.has_content: parse_warnings.append(ParseWarnings("Has content, but none permitted")) return DirectiveParsingResult( arguments, options, body_lines, content_offset, parse_warnings ) @dataclass class _DirectiveOptions: content: str options: dict[str, Any] warnings: list[ParseWarnings] has_options: bool def _parse_directive_options( content: str, directive_class: type[Directive], as_yaml: bool, line: int | None, additional_options: dict[str, str] | None = None, ) -> _DirectiveOptions: """Parse (and validate) the directive option section. :returns: (content, options, validation_errors) """ options_block: None | str = None if content.startswith("---"): line = None if line is None else line + 1 content = "\n".join(content.splitlines()[1:]) match = re.search(r"^-{3,}", content, re.MULTILINE) if match: options_block = content[: match.start()] content = content[match.end() + 1 :] # TODO advance line number else: options_block = content content = "" options_block = dedent(options_block) elif content.lstrip().startswith(":"): content_lines = content.splitlines() yaml_lines = [] while content_lines: if not content_lines[0].lstrip().startswith(":"): break yaml_lines.append(content_lines.pop(0).lstrip()[1:]) options_block = "\n".join(yaml_lines) content = "\n".join(content_lines) has_options_block = options_block is not None if as_yaml: yaml_errors: list[ParseWarnings] = [] try: yaml_options = yaml.safe_load(options_block or "") or {} except (yaml.parser.ParserError, yaml.scanner.ScannerError): yaml_options = {} yaml_errors.append( ParseWarnings( "Invalid options format (bad YAML)", line, MystWarnings.DIRECTIVE_OPTION, ) ) if not isinstance(yaml_options, dict): yaml_options = {} yaml_errors.append( ParseWarnings( "Invalid options format (not a dict)", line, MystWarnings.DIRECTIVE_OPTION, ) ) return _DirectiveOptions(content, yaml_options, yaml_errors, has_options_block) validation_errors: list[ParseWarnings] = [] options: dict[str, str] = {} if options_block is not None: try: _options, state = options_to_items(options_block) options = dict(_options) except TokenizeError as err: return _DirectiveOptions( content, options, [ ParseWarnings( f"Invalid options format: {err.problem}", line, MystWarnings.DIRECTIVE_OPTION, ) ], has_options_block, ) if state.has_comments: validation_errors.append( ParseWarnings( "Directive options has # comments, which may not be supported in future versions.", line, MystWarnings.DIRECTIVE_OPTION_COMMENTS, ) ) if issubclass(directive_class, TestDirective): # technically this directive spec only accepts one option ('option') # but since its for testing only we accept all options return _DirectiveOptions(content, options, [], has_options_block) if additional_options: # The options block takes priority over additional options options = {**additional_options, **options} # check options against spec options_spec: dict[str, Callable] = directive_class.option_spec unknown_options: list[str] = [] new_options: dict[str, Any] = {} value: str | None for name, value in options.items(): try: convertor = options_spec[name] except KeyError: unknown_options.append(name) continue if not value: # restructured text parses empty option values as None value = None if convertor is flag: # flag will error if value is not empty, # but to be more permissive we allow any value value = None try: converted_value = convertor(value) except (ValueError, TypeError) as error: validation_errors.append( ParseWarnings( f"Invalid option value for {name!r}: {value}: {error}", line, MystWarnings.DIRECTIVE_OPTION, ) ) else: new_options[name] = converted_value if unknown_options: validation_errors.append( ParseWarnings( f"Unknown option keys: {sorted(unknown_options)} " f"(allowed: {sorted(options_spec)})", line, MystWarnings.DIRECTIVE_OPTION, ) ) return _DirectiveOptions(content, new_options, validation_errors, has_options_block) def parse_directive_arguments( directive_cls: type[Directive], arg_text: str ) -> list[str]: """Parse (and validate) the directive argument section.""" required = directive_cls.required_arguments optional = directive_cls.optional_arguments arguments = arg_text.split() if len(arguments) < required: raise MarkupError(f"{required} argument(s) required, {len(arguments)} supplied") elif len(arguments) > required + optional: if directive_cls.final_argument_whitespace: arguments = arg_text.split(None, required + optional - 1) else: raise MarkupError( f"maximum {required + optional} argument(s) allowed, " f"{len(arguments)} supplied" ) return arguments MyST-Parser-4.0.0/myst_parser/parsers/docutils_.py000066400000000000000000000400321465415536200222010ustar00rootroot00000000000000"""MyST Markdown parser for docutils.""" from collections.abc import Callable, Iterable, Sequence from dataclasses import Field from typing import ( Any, Literal, get_args, get_origin, ) import yaml from docutils import frontend, nodes from docutils.core import default_description, publish_cmdline, publish_string from docutils.frontend import filter_settings_spec from docutils.parsers.rst import Parser as RstParser from docutils.writers.html5_polyglot import HTMLTranslator, Writer from myst_parser.config.main import ( MdParserConfig, TopmatterReadError, merge_file_level, read_topmatter, ) from myst_parser.mdit_to_docutils.base import DocutilsRenderer from myst_parser.mdit_to_docutils.transforms import ( CollectFootnotes, ResolveAnchorIds, SortFootnotes, UnreferencedFootnotesDetector, ) from myst_parser.parsers.mdit import create_md_parser from myst_parser.warnings_ import MystWarnings, create_warning def _validate_int( setting, value, option_parser, config_parser=None, config_section=None ) -> int: """Validate an integer setting.""" return int(value) def _validate_comma_separated_set( setting, value, option_parser, config_parser=None, config_section=None ) -> set[str]: """Validate an integer setting.""" value = frontend.validate_comma_separated_list( setting, value, option_parser, config_parser, config_section ) return set(value) def _create_validate_tuple(length: int) -> Callable[..., tuple[str, ...]]: """Create a validator for a tuple of length `length`.""" def _validate( setting, value, option_parser, config_parser=None, config_section=None ): string_list = frontend.validate_comma_separated_list( setting, value, option_parser, config_parser, config_section ) if len(string_list) != length: raise ValueError( f"Expecting {length} items in {setting}, got {len(string_list)}." ) return tuple(string_list) return _validate class Unset: """A sentinel class for unset settings.""" def __repr__(self): return "UNSET" def __bool__(self): # this allows to check if the setting is unset/falsy return False DOCUTILS_UNSET = Unset() """Sentinel for arguments not set through docutils.conf.""" def _create_validate_yaml(field: Field): """Create a deserializer/validator for a json setting.""" def _validate_yaml( setting, value, option_parser, config_parser=None, config_section=None ): """Check/normalize a key-value pair setting. Items delimited by `,`, and key-value pairs delimited by `=`. """ try: output = yaml.safe_load(value) except Exception as err: raise ValueError("Invalid YAML string") from err if not isinstance(output, dict): raise ValueError("Expecting a YAML dictionary") return output return _validate_yaml def _validate_url_schemes( setting, value, option_parser, config_parser=None, config_section=None ): """Validate a url_schemes setting. This is a tricky one, because it can be either a comma-separated list or a YAML dictionary. """ try: output = yaml.safe_load(value) except Exception as err: raise ValueError("Invalid YAML string") from err if isinstance(output, str): output = {k: None for k in output.split(",")} if not isinstance(output, dict): raise ValueError("Expecting a comma-delimited str or YAML dictionary") return output def _attr_to_optparse_option(at: Field, default: Any) -> tuple[dict[str, Any], str]: """Convert a field into a Docutils optparse options dict. :returns: (option_dict, default) """ if at.name == "url_schemes": return { "metavar": "|", "validator": _validate_url_schemes, }, ",".join(default) if at.type is int: return {"metavar": "", "validator": _validate_int}, str(default) if at.type is bool: return { "metavar": "", "validator": frontend.validate_boolean, }, str(default) if at.type is str or at.name == "heading_slug_func": return { "metavar": "", }, f"(default: '{default}')" if get_origin(at.type) is Literal and all( isinstance(a, str) for a in get_args(at.type) ): args = get_args(at.type) return { "metavar": f"<{'|'.join(repr(a) for a in args)}>", "type": "choice", "choices": args, }, repr(default) if at.type in (Iterable[str], Sequence[str]): return { "metavar": "", "validator": frontend.validate_comma_separated_list, }, ",".join(default) if at.type == set[str]: return { "metavar": "", "validator": _validate_comma_separated_set, }, ",".join(default) if at.type == tuple[str, str]: return { "metavar": "", "validator": _create_validate_tuple(2), }, ",".join(default) if at.type == int | type(None): return { "metavar": "", "validator": _validate_int, }, str(default) if at.type == Iterable[str] | type(None): return { "metavar": "", "validator": frontend.validate_comma_separated_list, }, ",".join(default) if default else "" if get_origin(at.type) is dict: return { "metavar": "", "validator": _create_validate_yaml(at), }, str(default) if default else "" raise AssertionError( f"Configuration option {at.name} not set up for use in docutils.conf." ) def attr_to_optparse_option( attribute: Field, default: Any, prefix: str = "myst_" ) -> tuple[str, list[str], dict[str, Any]]: """Convert an ``MdParserConfig`` attribute into a Docutils setting tuple. :returns: A tuple of ``(help string, option flags, optparse kwargs)``. """ name = f"{prefix}{attribute.name}" flag = "--" + name.replace("_", "-") options = {"dest": name, "default": DOCUTILS_UNSET} at_options, default_str = _attr_to_optparse_option(attribute, default) options.update(at_options) help_str = attribute.metadata.get("help", "") if attribute.metadata else "" if default_str: help_str += f" (default: {default_str})" return (help_str, [flag], options) def create_myst_settings_spec(config_cls=MdParserConfig, prefix: str = "myst_"): """Return a list of Docutils setting for the docutils MyST section.""" defaults = config_cls() return tuple( attr_to_optparse_option(at, getattr(defaults, at.name), prefix) for at in config_cls.get_fields() if ("docutils" not in at.metadata.get("omit", [])) ) def create_myst_config( settings: frontend.Values, config_cls=MdParserConfig, prefix: str = "myst_", ): """Create a configuration instance from the given settings.""" values = {} for attribute in config_cls.get_fields(): if "docutils" in attribute.metadata.get("omit", []): continue setting = f"{prefix}{attribute.name}" val = getattr(settings, setting, DOCUTILS_UNSET) if val is not DOCUTILS_UNSET: values[attribute.name] = val return config_cls(**values) class Parser(RstParser): """Docutils parser for Markedly Structured Text (MyST).""" supported: tuple[str, ...] = ("md", "markdown", "myst") """Aliases this parser supports.""" settings_spec = ( "MyST options", None, create_myst_settings_spec(), *RstParser.settings_spec, ) """Runtime settings specification.""" config_section = "myst parser" config_section_dependencies = ("parsers",) translate_section_name = None def get_transforms(self): return super().get_transforms() + [ UnreferencedFootnotesDetector, SortFootnotes, CollectFootnotes, ResolveAnchorIds, ] def parse(self, inputstring: str, document: nodes.document) -> None: """Parse source text. :param inputstring: The source string to parse :param document: The root docutils node to add AST elements to """ from docutils.writers._html_base import HTMLTranslator HTMLTranslator.visit_rubric = visit_rubric_html HTMLTranslator.depart_rubric = depart_rubric_html HTMLTranslator.visit_container = visit_container_html HTMLTranslator.depart_container = depart_container_html self.setup_parse(inputstring, document) # check for exorbitantly long lines if hasattr(document.settings, "line_length_limit"): for i, line in enumerate(inputstring.split("\n")): if len(line) > document.settings.line_length_limit: error = document.reporter.error( f"Line {i+1} exceeds the line-length-limit:" f" {document.settings.line_length_limit}." ) document.append(error) return # create parsing configuration from the global config try: config = create_myst_config(document.settings) except Exception as exc: error = document.reporter.error(f"Global myst configuration invalid: {exc}") document.append(error) config = MdParserConfig() if "attrs_image" in config.enable_extensions: create_warning( document, "The `attrs_image` extension is deprecated, " "please use `attrs_inline` instead.", MystWarnings.DEPRECATED, ) # update the global config with the file-level config try: topmatter = read_topmatter(inputstring) except TopmatterReadError: pass # this will be reported during the render else: if topmatter: warning = lambda wtype, msg: create_warning( # noqa: E731 document, msg, wtype, line=1, append_to=document ) config = merge_file_level(config, topmatter, warning) # parse content parser = create_md_parser(config, DocutilsRenderer) parser.options["document"] = document parser.render(inputstring) # post-processing # replace raw nodes if raw is not allowed if not getattr(document.settings, "raw_enabled", True): for node in document.traverse(nodes.raw): warning = document.reporter.warning("Raw content disabled.") node.parent.replace(node, warning) self.finish_parse() class SimpleTranslator(HTMLTranslator): def stylesheet_call(self, *args, **kwargs): return "" class SimpleWriter(Writer): settings_spec = filter_settings_spec( Writer.settings_spec, "template", ) def apply_template(self): subs = self.interpolation_dict() return "{body}\n".format(**subs) def __init__(self): self.parts = {} self.translator_class = SimpleTranslator def _run_cli(writer_name: str, writer_description: str, argv: list[str] | None): """Run the command line interface for a particular writer.""" publish_cmdline( parser=Parser(), writer_name=writer_name, description=( f"Generates {writer_description} from standalone MyST sources.\n{default_description}" ), argv=argv, ) def cli_html(argv: list[str] | None = None) -> None: """Cmdline entrypoint for converting MyST to HTML.""" _run_cli("html", "(X)HTML documents", argv) def cli_html5(argv: list[str] | None = None): """Cmdline entrypoint for converting MyST to HTML5.""" _run_cli("html5", "HTML5 documents", argv) def cli_html5_demo(argv: list[str] | None = None): """Cmdline entrypoint for converting MyST to simple HTML5 demonstrations. This is a special case of the HTML5 writer, that only outputs the body of the document. """ publish_cmdline( parser=Parser(), writer=SimpleWriter(), description=( f"Generates body HTML5 from standalone MyST sources.\n{default_description}" ), settings_overrides={ "doctitle_xform": False, "sectsubtitle_xform": False, "initial_header_level": 1, }, argv=argv, ) def to_html5_demo(inputstring: str, **kwargs) -> str: """Convert a MyST string to HTML5.""" overrides = { "doctitle_xform": False, "sectsubtitle_xform": False, "initial_header_level": 1, "output_encoding": "unicode", } overrides.update(kwargs) return publish_string( inputstring, parser=Parser(), writer=SimpleWriter(), settings_overrides=overrides, ) def cli_latex(argv: list[str] | None = None): """Cmdline entrypoint for converting MyST to LaTeX.""" _run_cli("latex", "LaTeX documents", argv) def cli_xml(argv: list[str] | None = None): """Cmdline entrypoint for converting MyST to XML.""" _run_cli("xml", "Docutils-native XML", argv) def cli_pseudoxml(argv: list[str] | None = None): """Cmdline entrypoint for converting MyST to pseudo-XML.""" _run_cli("pseudoxml", "pseudo-XML", argv) def visit_rubric_html(self, node): """Override the default HTML visit method for rubric nodes. docutils structures a document, based on the headings, into nested sections:: # h1 ## h2 ### h3
h1 <section> <title> h2 <section> <title> h3 This means that it is not possible to have "standard" headings nested inside other components, such as blockquotes, because it would break the structure:: # h1 > ## h2 ### h3 <section> <title> h1 <blockquote> <section> <title> h2 <section> <title> h3 we work around this shortcoming, in `DocutilsRenderer.render_heading`, by identifying if a heading is inside another component and instead outputting it as a "non-structural" rubric node, and capture the level:: <section> <title> h1 <blockquote> <rubric level=2> h2 <section> <title> h3 However, docutils natively just outputs rubrics as <p> tags, and does not "honor" the heading level. So here we override the visit/depart methods to output the correct <h> element """ if "level" in node: self.body.append(self.starttag(node, f'h{node["level"]}', "", CLASS="rubric")) else: self.body.append(self.starttag(node, "p", "", CLASS="rubric")) def depart_rubric_html(self, node): """Override the default HTML visit method for rubric nodes. See explanation in `visit_rubric_html` """ if "level" in node: self.body.append(f'</h{node["level"]}>\n') else: self.body.append("</p>\n") def visit_container_html(self, node: nodes.Node): """Override the default HTML visit method for container nodes. to remove the "container" class for divs this avoids CSS clashes with the bootstrap theme """ classes = "docutils container" attrs = {} if node.get("is_div", False): # we don't want the CSS for container for these nodes classes = "docutils" if "style" in node: attrs["style"] = node["style"] self.body.append(self.starttag(node, "div", CLASS=classes, **attrs)) def depart_container_html(self, node: nodes.Node): """Override the default HTML depart method for container nodes. See explanation in `visit_container_html` """ self.body.append("</div>\n") ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/myst_parser/parsers/mdit.py�������������������������������������������������������0000664�0000000�0000000�00000011057�14654155362�0021156�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������"""This module holds the ``create_md_parser`` function, which creates a parser from the config. """ from __future__ import annotations from collections.abc import Callable from markdown_it import MarkdownIt from markdown_it.renderer import RendererProtocol from mdit_py_plugins.amsmath import amsmath_plugin from mdit_py_plugins.attrs import attrs_block_plugin, attrs_plugin from mdit_py_plugins.colon_fence import colon_fence_plugin from mdit_py_plugins.deflist import deflist_plugin from mdit_py_plugins.dollarmath import dollarmath_plugin from mdit_py_plugins.field_list import fieldlist_plugin from mdit_py_plugins.footnote import footnote_plugin from mdit_py_plugins.front_matter import front_matter_plugin from mdit_py_plugins.myst_blocks import myst_block_plugin from mdit_py_plugins.myst_role import myst_role_plugin from mdit_py_plugins.substitution import substitution_plugin from mdit_py_plugins.tasklists import tasklists_plugin from mdit_py_plugins.wordcount import wordcount_plugin from myst_parser.config.main import MdParserConfig def create_md_parser( config: MdParserConfig, renderer: Callable[[MarkdownIt], RendererProtocol] ) -> MarkdownIt: """Return a Markdown parser with the required MyST configuration.""" # TODO warn if linkify required and linkify-it-py not installed # (currently the parse will unceremoniously except) if config.commonmark_only: # see https://spec.commonmark.org/ md = MarkdownIt("commonmark", renderer_cls=renderer).use( wordcount_plugin, per_minute=config.words_per_minute ) md.options.update({"myst_config": config}) return md if config.gfm_only: # see https://github.github.com/gfm/ md = ( MarkdownIt("commonmark", renderer_cls=renderer) # note, strikethrough currently only supported tentatively for HTML .enable("strikethrough") .enable("table") .use(tasklists_plugin, enabled=config.enable_checkboxes) .enable("linkify") .use(wordcount_plugin, per_minute=config.words_per_minute) ) md.options.update({"linkify": True, "myst_config": config}) return md md = ( MarkdownIt("commonmark", renderer_cls=renderer) .enable("table") .use(front_matter_plugin) .use(myst_block_plugin) .use(myst_role_plugin) .use(footnote_plugin, inline=False, move_to_end=False, always_match_refs=True) .use(wordcount_plugin, per_minute=config.words_per_minute) ) typographer = False if "smartquotes" in config.enable_extensions: md.enable("smartquotes") typographer = True if "replacements" in config.enable_extensions: md.enable("replacements") typographer = True if "linkify" in config.enable_extensions: md.enable("linkify") if md.linkify is not None: md.linkify.set({"fuzzy_link": config.linkify_fuzzy_links}) if "strikethrough" in config.enable_extensions: md.enable("strikethrough") if "dollarmath" in config.enable_extensions: md.use( dollarmath_plugin, allow_labels=config.dmath_allow_labels, allow_space=config.dmath_allow_space, allow_digits=config.dmath_allow_digits, double_inline=config.dmath_double_inline, ) if "colon_fence" in config.enable_extensions: md.use(colon_fence_plugin) if "amsmath" in config.enable_extensions: md.use(amsmath_plugin) if "deflist" in config.enable_extensions: md.use(deflist_plugin) if "fieldlist" in config.enable_extensions: md.use(fieldlist_plugin) if "tasklist" in config.enable_extensions: md.use(tasklists_plugin, enabled=config.enable_checkboxes) if "substitution" in config.enable_extensions: md.use(substitution_plugin, *config.sub_delimiters) if "attrs_inline" in config.enable_extensions: md.use( attrs_plugin, after=("image", "code_inline", "link_close", "span_close"), spans=True, span_after="footnote_ref", ) elif "attrs_image" in config.enable_extensions: # TODO deprecate md.use(attrs_plugin, after=("image",)) if "attrs_block" in config.enable_extensions: md.use(attrs_block_plugin) for name in config.disable_syntax: md.disable(name, True) md.options.update( { "typographer": typographer, "linkify": "linkify" in config.enable_extensions, "myst_config": config, } ) return md ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/myst_parser/parsers/options.py����������������������������������������������������0000664�0000000�0000000�00000051135�14654155362�0021715�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������"""Parser for directive options. This is a highly restricted parser for YAML, which only allows a subset of YAML to be used for directive options: - Only block mappings are allowed at the top level - Mapping keys are parsed as strings (plain or quoted) - Mapping values are parsed as strings (plain, quoted, literal `|`, folded `>`) - `#` Comments are allowed and blank lines Adapted from: https://github.com/yaml/pyyaml/commit/957ae4d495cf8fcb5475c6c2f1bce801096b68a5 For a good description of multi-line YAML strings, see: https://stackoverflow.com/a/21699210/5033292 """ from __future__ import annotations from collections.abc import Iterable from dataclasses import dataclass, replace from typing import ClassVar, Final, Literal, cast @dataclass class Position: """Position of a character in a stream.""" index: int line: int column: int class StreamBuffer: """A buffer for a stream of characters.""" def __init__(self, stream: str): self._buffer = stream + _CHARS_END self._index = 0 self._line = 0 self._column = 0 @property def index(self) -> int: return self._index @property def line(self) -> int: return self._line @property def column(self) -> int: return self._column def peek(self, index: int = 0) -> str: return self._buffer[self._index + index] def prefix(self, length: int = 1) -> str: return self._buffer[self._index : self._index + length] def forward(self, length: int = 1) -> None: while length: ch = self._buffer[self._index] self._index += 1 if ch in "\n\x85\u2028\u2029" or ( ch == "\r" and self._buffer[self._index] != "\n" ): self._line += 1 self._column = 0 elif ch != "\ufeff": self._column += 1 length -= 1 def get_position(self) -> Position: return Position(self._index, self._line, self._column) @dataclass class Token: """A parsed token from a directive option stream.""" id: ClassVar[str] = "<unknown>" start: Position end: Position @dataclass class KeyToken(Token): id: ClassVar[str] = "<key>" value: str style: Literal[None, "'", '"'] = None """The original style of the string.""" @dataclass class ValueToken(Token): id: ClassVar[str] = "<value>" value: str style: Literal[None, "'", '"', "|", ">"] = None """The original style of the string.""" @dataclass class ColonToken(Token): id: ClassVar[str] = "<colon>" class TokenizeError(Exception): def __init__( self, problem: str, problem_mark: Position, context: str | None = None, context_mark: Position | None = None, ): """A YAML error with optional context. :param problem: The problem encountered :param problem_mark: The position of the problem :param context: The context of the error, e.g. the parent being scanned :param context_mark: The position of the context """ self.context = context self.context_mark = context_mark self.problem = problem self.problem_mark = problem_mark def clone(self, line_offset: int, column_offset: int) -> TokenizeError: """Clone the error with the given line and column offsets.""" return TokenizeError( self.problem, replace( self.problem_mark, line=self.problem_mark.line + line_offset, column=self.problem_mark.column + column_offset, ), self.context, None if self.context_mark is None else replace( self.context_mark, line=self.context_mark.line + line_offset, column=self.context_mark.column + column_offset, ), ) def __str__(self) -> str: lines = [] if self.context is not None: lines.append(self.context) if self.context_mark is not None and ( self.context_mark.line != self.problem_mark.line or self.context_mark.column != self.problem_mark.column ): lines.append( f"at line {self.context_mark.line}, column {self.context_mark.column}" ) if self.problem is not None: lines.append(self.problem) if self.problem_mark is not None: lines.append( f"at line {self.problem_mark.line}, column {self.problem_mark.column}" ) return "\n".join(lines) @dataclass class State: has_comments: bool = False def options_to_items( text: str, line_offset: int = 0, column_offset: int = 0 ) -> tuple[list[tuple[str, str]], State]: """Parse a directive option block into (key, value) tuples. :param text: The directive option text. :param line_offset: The line offset to apply to the error positions. :param column_offset: The column offset to apply to the error positions. :raises: `TokenizeError` """ output = [] state = State() for key_token, value_token in _to_tokens(text, state, line_offset, column_offset): output.append( (key_token.value, value_token.value if value_token is not None else "") ) return output, state def _to_tokens( text: str, state: State, line_offset: int = 0, column_offset: int = 0 ) -> Iterable[tuple[KeyToken, ValueToken | None]]: """Parse a directive option, and yield key/value token pairs. :param text: The directive option text. :param line_offset: The line offset to apply to the error positions. :param column_offset: The column offset to apply to the error positions. :raises: `TokenizeError` """ key_token: KeyToken | None = None try: for token in _tokenize(text, state): if isinstance(token, KeyToken): if key_token is not None: yield key_token, None key_token = token elif isinstance(token, ValueToken): if key_token is None: raise TokenizeError("expected key before value", token.start) yield key_token, token key_token = None if key_token is not None: yield key_token, None except TokenizeError as exc: if line_offset or column_offset: raise exc.clone(line_offset, column_offset) from exc raise def _tokenize(text: str, state: State) -> Iterable[Token]: """Yield tokens from a directive option stream.""" stream = StreamBuffer(text) while True: _scan_to_next_token(stream, state) if stream.peek() == _CHARS_END: break if not stream.column == 0: raise TokenizeError( "expected key to start at column 0", stream.get_position() ) # find key ch = stream.peek() if ch in ("'", '"'): yield _scan_flow_scalar(stream, cast(Literal['"', "'"], ch), is_key=True) else: yield _scan_plain_scalar(stream, state, is_key=True) _scan_to_next_token(stream, state) # check next char is colon + space if stream.peek() != ":": raise TokenizeError("expected ':' after key", stream.get_position()) start_mark = stream.get_position() stream.forward() end_mark = stream.get_position() yield ColonToken(start_mark, end_mark) _scan_to_next_token(stream, state) # now find value ch = stream.peek() if stream.column == 0: pass elif ch in ("|", ">"): yield _scan_block_scalar(stream, cast(Literal["|", ">"], ch), state) elif ch in ("'", '"'): yield _scan_flow_scalar(stream, cast(Literal['"', "'"], ch), is_key=False) else: yield _scan_plain_scalar(stream, state, is_key=False) def _scan_to_next_token(stream: StreamBuffer, state: State) -> None: """Skip spaces, line breaks and comments. The byte order mark is also stripped, if it's the first character in the stream. """ if stream.index == 0 and stream.peek() == "\ufeff": stream.forward() found = False while not found: while stream.peek() == " ": stream.forward() if stream.peek() == "#": state.has_comments = True while stream.peek() not in _CHARS_END_NEWLINE: stream.forward() if not _scan_line_break(stream): found = True def _scan_plain_scalar( stream: StreamBuffer, state: State, is_key: bool = False ) -> KeyToken | ValueToken: chunks = [] start_mark = stream.get_position() end_mark = start_mark indent = 0 if is_key else 1 spaces: list[str] = [] while True: length = 0 if stream.peek() == "#": state.has_comments = True break while True: ch = stream.peek(length) if ch in _CHARS_END_SPACE_TAB_NEWLINE or ( is_key and ch == ":" and stream.peek(length + 1) in _CHARS_END_SPACE_TAB_NEWLINE ): break length += 1 if length == 0: break chunks.extend(spaces) chunks.append(stream.prefix(length)) stream.forward(length) end_mark = stream.get_position() spaces = _scan_plain_spaces(stream, allow_newline=(not is_key)) if not spaces or stream.peek() == "#" or (stream.column < indent): if stream.peek() == "#": state.has_comments = True break return ( KeyToken(start_mark, end_mark, "".join(chunks)) if is_key else ValueToken(start_mark, end_mark, "".join(chunks)) ) def _scan_plain_spaces(stream: StreamBuffer, allow_newline: bool = True) -> list[str]: chunks = [] length = 0 while stream.peek(length) == " ": length += 1 whitespaces = stream.prefix(length) stream.forward(length) ch = stream.peek() if allow_newline and ch in _CHARS_NEWLINE: line_break = _scan_line_break(stream) breaks = [] while stream.peek() in _CHARS_SPACE_NEWLINE: if stream.peek() == " ": stream.forward() else: breaks.append(_scan_line_break(stream)) if line_break != "\n": chunks.append(line_break) elif not breaks: chunks.append(" ") chunks.extend(breaks) elif whitespaces: chunks.append(whitespaces) return chunks def _scan_line_break(stream: StreamBuffer) -> str: # Transforms: # '\r\n' : '\n' # '\r' : '\n' # '\n' : '\n' # '\x85' : '\n' # '\u2028' : '\u2028' # '\u2029 : '\u2029' # default : '' ch = stream.peek() if ch in "\r\n\x85": if stream.prefix(2) == "\r\n": stream.forward(2) else: stream.forward() return "\n" elif ch in "\u2028\u2029": stream.forward() return ch return "" def _scan_flow_scalar( stream: StreamBuffer, style: Literal["'", '"'], is_key: bool = False ) -> KeyToken | ValueToken: double = style == '"' chunks = [] start_mark = stream.get_position() quote = stream.peek() stream.forward() chunks.extend(_scan_flow_scalar_non_spaces(stream, double, start_mark)) while stream.peek() != quote: chunks.extend(_scan_flow_scalar_spaces(stream, start_mark)) chunks.extend(_scan_flow_scalar_non_spaces(stream, double, start_mark)) stream.forward() end_mark = stream.get_position() return ( KeyToken(start_mark, end_mark, "".join(chunks), style) if is_key else ValueToken(start_mark, end_mark, "".join(chunks), style) ) def _scan_flow_scalar_non_spaces( stream: StreamBuffer, double: bool, start_mark: Position ) -> list[str]: chunks = [] while True: length = 0 while stream.peek(length) not in "'\"\\" + _CHARS_END_SPACE_TAB_NEWLINE: length += 1 if length: chunks.append(stream.prefix(length)) stream.forward(length) ch = stream.peek() if not double and ch == "'" and stream.peek(1) == "'": chunks.append("'") stream.forward(2) elif (double and ch == "'") or (not double and ch in '"\\'): chunks.append(ch) stream.forward() elif double and ch == "\\": stream.forward() ch = stream.peek() if ch in _ESCAPE_REPLACEMENTS: chunks.append(_ESCAPE_REPLACEMENTS[ch]) stream.forward() elif ch in _ESCAPE_CODES: length = _ESCAPE_CODES[ch] stream.forward() for k in range(length): if stream.peek(k) not in "0123456789ABCDEFabcdef": raise TokenizeError( "expected escape sequence of %d hexadecimal numbers, but found %r" % (length, stream.peek(k)), stream.get_position(), "while scanning a double-quoted scalar", start_mark, ) code = int(stream.prefix(length), 16) chunks.append(chr(code)) stream.forward(length) elif ch in _CHARS_NEWLINE: _scan_line_break(stream) chunks.extend(_scan_flow_scalar_breaks(stream)) else: raise TokenizeError( f"found unknown escape character {ch!r}", stream.get_position(), "while scanning a double-quoted scalar", start_mark, ) else: return chunks def _scan_flow_scalar_spaces(stream: StreamBuffer, start_mark: Position) -> list[str]: chunks = [] length = 0 while stream.peek(length) in " \t": length += 1 whitespaces = stream.prefix(length) stream.forward(length) ch = stream.peek() if ch == _CHARS_END: raise TokenizeError( "found unexpected end of stream", stream.get_position(), "while scanning a quoted scalar", start_mark, ) elif ch in _CHARS_NEWLINE: line_break = _scan_line_break(stream) breaks = _scan_flow_scalar_breaks(stream) if line_break != "\n": chunks.append(line_break) elif not breaks: chunks.append(" ") chunks.extend(breaks) else: chunks.append(whitespaces) return chunks def _scan_flow_scalar_breaks(stream: StreamBuffer) -> list[str]: chunks = [] while True: while stream.peek() in " \t": stream.forward() if stream.peek() in _CHARS_NEWLINE: chunks.append(_scan_line_break(stream)) else: return chunks def _scan_block_scalar( stream: StreamBuffer, style: Literal["|", ">"], state: State ) -> ValueToken: indent = 0 folded = style == ">" chunks = [] start_mark = stream.get_position() # Scan the header. stream.forward() chomping, increment = _scan_block_scalar_indicators(stream, start_mark) _scan_block_scalar_ignored_line(stream, start_mark, state) # Determine the indentation level and go to the first non-empty line. min_indent = indent + 1 if min_indent < 1: min_indent = 1 if increment is None: breaks, max_indent, end_mark = _scan_block_scalar_indentation(stream) indent = max(min_indent, max_indent) else: indent = min_indent + increment - 1 breaks, end_mark = _scan_block_scalar_breaks(stream, indent) line_break = "" # Scan the inner part of the block scalar. while stream.column == indent and stream.peek() != _CHARS_END: chunks.extend(breaks) leading_non_space = stream.peek() not in " \t" length = 0 while stream.peek(length) not in _CHARS_END_NEWLINE: length += 1 chunks.append(stream.prefix(length)) stream.forward(length) line_break = _scan_line_break(stream) breaks, end_mark = _scan_block_scalar_breaks(stream, indent) if stream.column == indent and stream.peek() != _CHARS_END: if ( folded and line_break == "\n" and leading_non_space and stream.peek() not in " \t" ): if not breaks: chunks.append(" ") else: chunks.append(line_break) else: break # Chomp the tail. if chomping is not False: chunks.append(line_break) if chomping is True: chunks.extend(breaks) # We are done. return ValueToken(start_mark, end_mark, "".join(chunks), style) def _scan_block_scalar_indicators( stream: StreamBuffer, start_mark: Position ) -> tuple[bool | None, int | None]: chomping = None increment = None ch = stream.peek() if ch in "+-": chomping = ch == "+" stream.forward() ch = stream.peek() if ch in "0123456789": increment = int(ch) if increment == 0: raise TokenizeError( "expected indentation indicator in the range 1-9, but found 0", stream.get_position(), "while scanning a block scalar", start_mark, ) stream.forward() elif ch in "0123456789": increment = int(ch) if increment == 0: raise TokenizeError( "expected indentation indicator in the range 1-9, but found 0", stream.get_position(), "while scanning a block scalar", start_mark, ) stream.forward() ch = stream.peek() if ch in "+-": chomping = ch == "+" stream.forward() ch = stream.peek() if ch not in _CHARS_END_SPACE_NEWLINE: raise TokenizeError( f"expected chomping or indentation indicators, but found {ch!r}", stream.get_position(), "while scanning a block scalar", start_mark, ) return chomping, increment def _scan_block_scalar_ignored_line( stream: StreamBuffer, start_mark: Position, state: State ) -> None: while stream.peek() == " ": stream.forward() if stream.peek() == "#": state.has_comments = True while stream.peek() not in _CHARS_END_NEWLINE: stream.forward() ch = stream.peek() if ch not in _CHARS_END_NEWLINE: raise TokenizeError( f"expected a comment or a line break, but found {ch!r}", stream.get_position(), "while scanning a block scalar", start_mark, ) _scan_line_break(stream) def _scan_block_scalar_indentation( stream: StreamBuffer, ) -> tuple[list[str], int, Position]: chunks = [] max_indent = 0 end_mark = stream.get_position() while stream.peek() in _CHARS_SPACE_NEWLINE: if stream.peek() != " ": chunks.append(_scan_line_break(stream)) end_mark = stream.get_position() else: stream.forward() if stream.column > max_indent: max_indent = stream.column return chunks, max_indent, end_mark def _scan_block_scalar_breaks( stream: StreamBuffer, indent: int ) -> tuple[list[str], Position]: chunks = [] end_mark = stream.get_position() while stream.column < indent and stream.peek() == " ": stream.forward() while stream.peek() in _CHARS_NEWLINE: chunks.append(_scan_line_break(stream)) end_mark = stream.get_position() while stream.column < indent and stream.peek() == " ": stream.forward() return chunks, end_mark _CHARS_END: Final[str] = "\0" _CHARS_NEWLINE: Final[str] = "\r\n\x85\u2028\u2029" _CHARS_END_NEWLINE: Final[str] = "\0\r\n\x85\u2028\u2029" _CHARS_SPACE_NEWLINE: Final[str] = " \r\n\x85\u2028\u2029" _CHARS_END_SPACE_NEWLINE: Final[str] = "\0 \r\n\x85\u2028\u2029" _CHARS_END_SPACE_TAB_NEWLINE: Final[str] = "\0 \t\r\n\x85\u2028\u2029" _ESCAPE_REPLACEMENTS: Final[dict[str, str]] = { "0": "\0", "a": "\x07", "b": "\x08", "t": "\x09", "\t": "\x09", "n": "\x0a", "v": "\x0b", "f": "\x0c", "r": "\x0d", "e": "\x1b", " ": "\x20", '"': '"', "\\": "\\", "/": "/", "N": "\x85", "_": "\xa0", "L": "\u2028", "P": "\u2029", } _ESCAPE_CODES: Final[dict[str, int]] = { "x": 2, "u": 4, "U": 8, } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/myst_parser/parsers/parse_html.py�������������������������������������������������0000664�0000000�0000000�00000032642�14654155362�0022362�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������"""A simple but complete HTML to Abstract Syntax Tree (AST) parser. The AST can also reproduce the HTML text. Example:: >> text = '<div class="note"><p>text</p></div>' >> ast = tokenize_html(text) >> list(ast.walk(include_self=True)) [Root(''), Tag('div', {'class': 'note'}), Tag('p'), Data('text')] >> str(ast) '<div class="note"><p>text</p></div>' >> str(ast[0][0]) '<p>text</p>' Note: optional tags are not accounted for (see https://html.spec.whatwg.org/multipage/syntax.html#optional-tags) """ from __future__ import annotations import inspect import itertools from collections import abc, deque from collections.abc import Callable, Iterable, Iterator from html.parser import HTMLParser from typing import Any class Attribute(dict): """This class holds the tags's attributes.""" def __getitem__(self, key: str) -> str: """If self doesn't have the key it returns ''.""" return self.get(key, "") @property def classes(self) -> list[str]: """Return 'class' attribute as list.""" return self["class"].split() def __str__(self) -> str: """Return a htmlized representation for attributes.""" return " ".join(f'{key}="{value}"' for key, value in self.items()) class Element(abc.MutableSequence): """An Element of the xml/html document. All xml/html entities inherit from this class. """ def __init__(self, name: str = "", attr: dict | None = None) -> None: """Initialise the element.""" self.name = name self.attrs: Attribute = Attribute(attr or {}) self._parent: Element | None = None self._children: list[Element] = [] @property def parent(self) -> Element | None: """Return parent.""" return self._parent @property def children(self) -> list[Element]: """Return copy of children.""" return self._children[:] def reset_children(self, children: list[Element], deepcopy: bool = False): new_children = [] for i, item in enumerate(children): assert isinstance(item, Element) if deepcopy: item = item.deepcopy() if item._parent is None: item._parent = self elif item._parent != self: raise AssertionError(f"different parent already set for item {i}") new_children.append(item) self._children = new_children def __getitem__(self, index: int) -> Element: # type: ignore[override] return self._children[index] def __setitem__(self, index: int, item: Element): # type: ignore[override] assert isinstance(item, Element) if item._parent is not None and item._parent != self: raise AssertionError(f"different parent already set for: {item!r}") item._parent = self return self._children.__setitem__(index, item) def __delitem__(self, index: int): # type: ignore[override] return self._children.__delitem__(index) def __len__(self) -> int: return self._children.__len__() def __iter__(self) -> Iterator[Element]: yield from self._children def insert(self, index: int, item: Element): assert isinstance(item, Element) if item._parent is not None and item._parent != self: raise AssertionError(f"different parent already set for: {item!r}") item._parent = self return self._children.insert(index, item) def deepcopy(self) -> Element: """Recursively copy and remove parent.""" _copy = self.__class__(self.name, self.attrs) for child in self: _copy_child = child.deepcopy() _copy.append(_copy_child) return _copy def __repr__(self) -> str: text = f"{self.__class__.__name__}({self.name!r}" if self.attrs: text += f", {self.attrs!r}" text += ")" return text def render( self, tag_overrides: dict[str, Callable[[Element, dict], str]] | None = None, **kwargs, ) -> str: """Returns a HTML string representation of the element. :param tag_overrides: Provide a dictionary of render function for specific tag names, to override the normal render format """ raise NotImplementedError def __str__(self) -> str: return self.render() def __eq__(self, item: Any) -> bool: return item is self def walk(self, include_self: bool = False) -> Iterator[Element]: """Walk through the xml/html AST.""" if include_self: yield self for child in self: yield child yield from child.walk() def strip(self, inplace: bool = False, recurse: bool = False) -> Element: """Return copy with all `Data` tokens that only contain whitespace / newlines removed. """ element = self if not inplace: element = self.deepcopy() element.reset_children( [ e for e in element.children if not (isinstance(e, Data) and e.data.strip() == "") ] ) if recurse: for child in element: child.strip(inplace=True, recurse=True) return element def find( self, identifier: str | type[Element], attrs: dict | None = None, classes: Iterable[str] | None = None, include_self: bool = False, recurse: bool = True, ) -> Iterator[Element]: """Find all elements that match name and specific attributes.""" iterator = self.walk() if recurse else self if include_self: iterator = itertools.chain([self], iterator) test_func = ( (lambda c: isinstance(c, identifier)) if inspect.isclass(identifier) else lambda c: c.name == identifier ) classes = set(classes) if classes is not None else classes for child in iterator: if test_func(child): if classes is not None and not classes.issubset(child.attrs.classes): continue for key, value in (attrs or {}).items(): if child.attrs[key] != value: break else: yield child class Root(Element): """The root of the AST tree.""" def render(self, **kwargs) -> str: # type: ignore[override] """Returns a string HTML representation of the structure.""" return "".join(child.render(**kwargs) for child in self) class Tag(Element): """Represent xml/html tags under the form: <name key="value" ...> ... </name>.""" def render( self, tag_overrides: dict[str, Callable[[Element, dict], str]] | None = None, **kwargs, ) -> str: if tag_overrides and self.name in tag_overrides: return tag_overrides[self.name](self, tag_overrides) return ( f"<{self.name}{' ' if self.attrs else ''}{self.attrs}>" + "".join( child.render(tag_overrides=tag_overrides, **kwargs) for child in self ) + f"</{self.name}>" ) class XTag(Element): """Represent XHTML style tags with no children, like `<img src="t.gif" />`""" def render( self, tag_overrides: dict[str, Callable[[Element, dict], str]] | None = None, **kwargs, ) -> str: if tag_overrides is not None and self.name in tag_overrides: return tag_overrides[self.name](self, tag_overrides) return f"<{self.name}{' ' if self.attrs else ''}{self.attrs}/>" class VoidTag(Element): """Represent tags with no children, only start tag, like `<img src="t.gif" >`""" def render(self, **kwargs) -> str: # type: ignore[override] return f"<{self.name}{' ' if self.attrs else ''}{self.attrs}>" class TerminalElement(Element): def __init__(self, data: str): super().__init__("") self.data: str = data def __repr__(self) -> str: text = self.data if len(text) > 20: text = text[:17] + "..." return f"{self.__class__.__name__}({text!r})" def deepcopy(self) -> TerminalElement: """Copy and remove parent.""" _copy = self.__class__(self.data) return _copy class Data(TerminalElement): """Represent data inside xml/html documents, like raw text.""" def render(self, **kwargs) -> str: # type: ignore[override] return self.data class Declaration(TerminalElement): """Represent declarations, like `<!DOCTYPE html>`""" def render(self, **kwargs) -> str: # type: ignore[override] return f"<!{self.data}>" class Comment(TerminalElement): """Represent HTML comments""" def render(self, **kwargs) -> str: # type: ignore[override] return f"<!--{self.data}-->" class Pi(TerminalElement): """Represent processing instructions like `<?xml-stylesheet ?>`""" def render(self, **kwargs) -> str: # type: ignore[override] return f"<?{self.data}>" class Char(TerminalElement): """Represent character codes like: `�`""" def render(self, **kwargs) -> str: # type: ignore[override] return f"&#{self.data};" class Entity(TerminalElement): """Represent entities like `&`""" def render(self, **kwargs) -> str: # type: ignore[override] return f"&{self.data};" class Tree: """The engine class to generate the AST tree.""" def __init__(self, name: str = ""): """Initialise Tree""" self.name = name self.outmost = Root(name) self.stack: deque = deque() self.stack.append(self.outmost) def clear(self): """Clear the outmost and stack for a new parsing.""" self.outmost = Root(self.name) self.stack.clear() self.stack.append(self.outmost) def last(self) -> Element: """Return the last pointer which point to the actual tag scope.""" return self.stack[-1] def nest_tag(self, name: str, attrs: dict): """Nest a given tag at the bottom of the tree using the last stack's pointer. """ pointer = self.stack.pop() item = Tag(name, attrs) pointer.append(item) self.stack.append(pointer) self.stack.append(item) def nest_xtag(self, name: str, attrs: dict): """Nest an XTag onto the tree.""" top = self.last() item = XTag(name, attrs) top.append(item) def nest_vtag(self, name: str, attrs: dict): """Nest a VoidTag onto the tree.""" top = self.last() item = VoidTag(name, attrs) top.append(item) def nest_terminal(self, klass: type[TerminalElement], data: str): """Nest the data onto the tree.""" top = self.last() item = klass(data) top.append(item) def enclose(self, name: str): """When a closing tag is found, pop the pointer's scope from the stack, to then point to the earlier scope's tag. """ count = 0 for ind in reversed(self.stack): count = count + 1 if ind.name == name: break else: count = 0 # It pops all the items which do not match with the closing tag. for _ in range(count): self.stack.pop() class HtmlToAst(HTMLParser): """The tokenizer class.""" # see https://html.spec.whatwg.org/multipage/syntax.html#void-elements void_elements = { "area", "base", "br", "col", "embed", "hr", "img", "input", "link", "meta", "param", "source", "track", "wbr", } def __init__(self, name: str = "", convert_charrefs: bool = False): super().__init__(convert_charrefs=convert_charrefs) self.struct = Tree(name) def feed(self, source: str) -> Root: # type: ignore[override] """Parse the source string.""" self.struct.clear() super().feed(source) return self.struct.outmost def handle_starttag(self, name: str, attr): """When found an opening tag then nest it onto the tree.""" if name in self.void_elements: self.struct.nest_vtag(name, attr) else: self.struct.nest_tag(name, attr) def handle_startendtag(self, name: str, attr): """When found a XHTML tag style then nest it up to the tree.""" self.struct.nest_xtag(name, attr) def handle_endtag(self, name: str): """When found a closing tag then makes it point to the right scope.""" if name not in self.void_elements: self.struct.enclose(name) def handle_data(self, data: str): """Nest data onto the tree.""" self.struct.nest_terminal(Data, data) def handle_decl(self, decl: str): self.struct.nest_terminal(Declaration, decl) def unknown_decl(self, decl: str): self.struct.nest_terminal(Declaration, decl) def handle_charref(self, data: str): self.struct.nest_terminal(Char, data) def handle_entityref(self, data: str): self.struct.nest_terminal(Entity, data) def handle_pi(self, data: str): self.struct.nest_terminal(Pi, data) def handle_comment(self, data: str): self.struct.nest_terminal(Comment, data) def tokenize_html(text: str, name: str = "", convert_charrefs: bool = False) -> Root: parser = HtmlToAst(name, convert_charrefs=convert_charrefs) return parser.feed(text) ����������������������������������������������������������������������������������������������MyST-Parser-4.0.0/myst_parser/parsers/sphinx_.py����������������������������������������������������0000664�0000000�0000000�00000005032�14654155362�0021665�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������"""MyST Markdown parser for sphinx.""" from __future__ import annotations from docutils import nodes from docutils.parsers.rst import Parser as RstParser from sphinx.parsers import Parser as SphinxParser from sphinx.util import logging from myst_parser.config.main import ( MdParserConfig, TopmatterReadError, merge_file_level, read_topmatter, ) from myst_parser.mdit_to_docutils.sphinx_ import SphinxRenderer from myst_parser.mdit_to_docutils.transforms import ( CollectFootnotes, ResolveAnchorIds, SortFootnotes, ) from myst_parser.parsers.mdit import create_md_parser from myst_parser.warnings_ import create_warning SPHINX_LOGGER = logging.getLogger(__name__) class MystParser(SphinxParser): """Sphinx parser for Markedly Structured Text (MyST).""" supported: tuple[str, ...] = ("md", "markdown", "myst") """Aliases this parser supports.""" settings_spec = RstParser.settings_spec """Runtime settings specification. Defines runtime settings and associated command-line options, as used by `docutils.frontend.OptionParser`. This is a concatenation of tuples of: - Option group title (string or `None` which implies no group, just a list of single options). - Description (string or `None`). - A sequence of option tuples """ config_section = "myst parser" config_section_dependencies = ("parsers",) translate_section_name = None def get_transforms(self): return super().get_transforms() + [ SortFootnotes, CollectFootnotes, ResolveAnchorIds, ] def parse(self, inputstring: str, document: nodes.document) -> None: """Parse source text. :param inputstring: The source string to parse :param document: The root docutils node to add AST elements to """ # get the global config config: MdParserConfig = document.settings.env.myst_config # update the global config with the file-level config try: topmatter = read_topmatter(inputstring) except TopmatterReadError: pass # this will be reported during the render else: if topmatter: warning = lambda wtype, msg: create_warning( # noqa: E731 document, msg, wtype, line=1, append_to=document ) config = merge_file_level(config, topmatter, warning) parser = create_md_parser(config, SphinxRenderer) parser.options["document"] = document parser.render(inputstring) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/myst_parser/py.typed��������������������������������������������������������������0000664�0000000�0000000�00000000032�14654155362�0017656�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Marker file for PEP 561 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/myst_parser/sphinx_.py������������������������������������������������������������0000664�0000000�0000000�00000000401�14654155362�0020201�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������"""A module for compatibility with the docutils>=0.17 `include` directive, in RST documents. For example:: .. include:: path/to/file.md :parser: myst_parser.sphinx_ """ from myst_parser.parsers.sphinx_ import MystParser as Parser # noqa: F401 ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/myst_parser/sphinx_ext/�����������������������������������������������������������0000775�0000000�0000000�00000000000�14654155362�0020355�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/myst_parser/sphinx_ext/__init__.py������������������������������������������������0000664�0000000�0000000�00000000050�14654155362�0022461�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������"""Sphinx extension for myst_parser.""" ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/myst_parser/sphinx_ext/directives.py����������������������������������������������0000664�0000000�0000000�00000010326�14654155362�0023072�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������"""MyST specific directives""" from __future__ import annotations from copy import copy from typing import cast from docutils import nodes from docutils.parsers.rst import directives from sphinx.directives import SphinxDirective from sphinx.util.docutils import SphinxRole from myst_parser.mocking import MockState def align(argument): return directives.choice(argument, ("left", "center", "right")) def figwidth_value(argument): if argument.lower() == "image": return "image" else: return directives.length_or_percentage_or_unitless(argument, "px") class SubstitutionReferenceRole(SphinxRole): """Implement substitution references as a role. Note, in ``docutils/parsers/rst/roles.py`` this is left unimplemented. """ def run(self) -> tuple[list[nodes.Node], list[nodes.system_message]]: subref_node = nodes.substitution_reference(self.rawtext, self.text) self.set_source_info(subref_node, self.lineno) subref_node["refname"] = nodes.fully_normalize_name(self.text) return [subref_node], [] class FigureMarkdown(SphinxDirective): """Directive for creating a figure with Markdown compatible syntax. Example:: :::{figure-md} target <img src="img/fun-fish.png" alt="fishy" class="bg-primary mb-1" width="200px"> This is a caption in **Markdown** ::: """ required_arguments = 0 optional_arguments = 1 # image target final_argument_whitespace = True has_content = True option_spec = { "width": figwidth_value, "class": directives.class_option, "align": align, "name": directives.unchanged, } def run(self) -> list[nodes.Node]: figwidth = self.options.pop("width", None) figclasses = self.options.pop("class", None) align = self.options.pop("align", None) if not isinstance(self.state, MockState): return [self.figure_error("Directive is only supported in myst parser")] state = cast(MockState, self.state) # ensure html image enabled myst_extensions = copy(state._renderer.md_config.enable_extensions) node = nodes.Element() try: state._renderer.md_config.enable_extensions.add("html_image") state.nested_parse(self.content, self.content_offset, node) finally: state._renderer.md_config.enable_extensions = myst_extensions if len(node.children) != 2: return [ self.figure_error( "content should be one image, " "followed by a single paragraph caption" ) ] image_node, caption_para = node.children if isinstance(image_node, nodes.paragraph): image_node = image_node[0] if not isinstance(image_node, nodes.image): return [ self.figure_error( "content should be one image (not found), " "followed by single paragraph caption" ) ] if not isinstance(caption_para, nodes.paragraph): return [ self.figure_error( "content should be one image, " "followed by single paragraph caption (not found)" ) ] caption_node = nodes.caption(caption_para.rawsource, "", *caption_para.children) caption_node.source = caption_para.source caption_node.line = caption_para.line figure_node = nodes.figure("", image_node, caption_node) self.set_source_info(figure_node) if figwidth is not None: figure_node["width"] = figwidth if figclasses: figure_node["classes"] += figclasses if align: figure_node["align"] = align if self.arguments: self.options["name"] = self.arguments[0] self.add_name(figure_node) return [figure_node] def figure_error(self, message): """A warning for reporting an invalid figure.""" error = self.state_machine.reporter.error( message, nodes.literal_block(self.block_text, self.block_text), line=self.lineno, ) return error ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/myst_parser/sphinx_ext/main.py����������������������������������������������������0000664�0000000�0000000�00000007621�14654155362�0021661�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������"""The setup for the sphinx extension.""" from typing import Any import sphinx from docutils import nodes from sphinx.application import Sphinx from sphinx.transforms import ( UnreferencedFootnotesDetector as SphinxUnreferencedFootnotesDetector, ) from myst_parser.mdit_to_docutils.transforms import UnreferencedFootnotesDetector from myst_parser.parsers.docutils_ import ( depart_container_html, depart_rubric_html, visit_container_html, visit_rubric_html, ) from myst_parser.warnings_ import MystWarnings def setup_sphinx(app: Sphinx, load_parser: bool = False) -> None: """Initialize all settings and transforms in Sphinx. :param app: The Sphinx application object. :param load_parser: Whether to load the parser. """ # we do this separately to setup, # so that it can be called by external packages like myst_nb from myst_parser.config.main import MdParserConfig from myst_parser.parsers.sphinx_ import MystParser from myst_parser.sphinx_ext.directives import ( FigureMarkdown, SubstitutionReferenceRole, ) from myst_parser.sphinx_ext.mathjax import override_mathjax from myst_parser.sphinx_ext.myst_refs import MystReferenceResolver if load_parser: app.add_source_suffix(".md", "markdown") app.add_source_parser(MystParser) app.add_role("sub-ref", SubstitutionReferenceRole()) app.add_directive("figure-md", FigureMarkdown) # TODO currently we globally replace sphinx's transform, # to overcome issues it has (https://github.com/sphinx-doc/sphinx/pull/12730), # but once this PR is merged/released, we should remove this app.registry.transforms.remove(SphinxUnreferencedFootnotesDetector) app.add_transform(UnreferencedFootnotesDetector) app.add_post_transform(MystReferenceResolver) # override only the html writer visit methods for rubric, to use the "level" attribute # this allows for nested headers to be correctly rendered if sphinx.version_info < (7, 4): # This is now added in sphinx: https://github.com/sphinx-doc/sphinx/pull/12506 app.add_node( nodes.rubric, override=True, html=(visit_rubric_html, depart_rubric_html) ) # override only the html writer visit methods for container, # to remove the "container" class for divs # this avoids CSS clashes with the bootstrap theme app.add_node( nodes.container, override=True, html=(visit_container_html, depart_container_html), ) for name, default, field in MdParserConfig().as_triple(): if "sphinx" not in field.metadata.get("omit", []): # TODO add types? app.add_config_value(f"myst_{name}", default, "env", types=Any) # type: ignore[arg-type] app.connect("builder-inited", create_myst_config) app.connect("builder-inited", override_mathjax) def create_myst_config(app): """Create the myst config object and add it to the sphinx environment.""" from sphinx.util import logging from sphinx.util.console import bold from myst_parser import __version__ from myst_parser.config.main import MdParserConfig logger = logging.getLogger(__name__) values = { name: app.config[f"myst_{name}"] for name, _, field in MdParserConfig().as_triple() if "sphinx" not in field.metadata.get("omit", []) } try: app.env.myst_config = MdParserConfig(**values) logger.info(bold("myst v%s:") + " %s", __version__, app.env.myst_config) except (TypeError, ValueError) as error: logger.error("myst configuration invalid: %s", error.args[0]) app.env.myst_config = MdParserConfig() if "attrs_image" in app.env.myst_config.enable_extensions: logger.warning( "The `attrs_image` extension is deprecated, " "please use `attrs_inline` instead.", type="myst", subtype=MystWarnings.DEPRECATED.value, ) ���������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/myst_parser/sphinx_ext/mathjax.py�������������������������������������������������0000664�0000000�0000000�00000011113�14654155362�0022360�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������"""Overrides to ``sphinx.ext.mathjax`` This fixes two issues: 1. Mathjax should not search for ``$`` delimiters, nor LaTeX amsmath environments, since we already achieve this with the dollarmath and amsmath mrakdown-it-py plugins 2. amsmath math blocks should be wrapped in mathjax delimiters (default ``\\[...\\]``), and assigned an equation number """ from docutils import nodes from sphinx.application import Sphinx from sphinx.ext import mathjax from sphinx.locale import _ from sphinx.util import logging from sphinx.util.math import get_node_equation_number from sphinx.writers.html import HTMLTranslator logger = logging.getLogger(__name__) def log_override_warning(app: Sphinx, version: int, current: str, new: str) -> None: """Log a warning if MathJax configuration being overridden.""" if logging.is_suppressed_warning("myst", "mathjax", app.config.suppress_warnings): return config_name = ( "mathjax3_config['options']['processHtmlClass']" if version == 3 else "mathjax_config['tex2jax']['processClass']" ) logger.warning( f"`{config_name}` is being overridden by myst-parser: '{current}' -> '{new}'. " "Set `suppress_warnings=['myst.mathjax']` to ignore this warning, or " "`myst_update_mathjax=False` if this is undesirable." ) def override_mathjax(app: Sphinx): """Override aspects of the mathjax extension. MyST-Parser parses dollar and latex math, via markdown-it plugins. Therefore, we tell Mathjax to only render these HTML elements. This is accompanied by setting the `ignoreClass` on the top-level section of each MyST document. """ if ( "amsmath" in app.config["myst_enable_extensions"] and "mathjax" in app.registry.html_block_math_renderers ): app.registry.html_block_math_renderers["mathjax"] = ( html_visit_displaymath, None, ) if "dollarmath" not in app.config["myst_enable_extensions"]: return if not app.env.myst_config.update_mathjax: # type: ignore[attr-defined] return mjax_classes = app.env.myst_config.mathjax_classes # type: ignore[attr-defined] if "mathjax3_config" in app.config: # sphinx 4 + mathjax 3 app.config.mathjax3_config = app.config.mathjax3_config or {} app.config.mathjax3_config.setdefault("options", {}) if ( "processHtmlClass" in app.config.mathjax3_config["options"] and app.config.mathjax3_config["options"]["processHtmlClass"] != mjax_classes ): log_override_warning( app, 3, app.config.mathjax3_config["options"]["processHtmlClass"], mjax_classes, ) app.config.mathjax3_config["options"]["processHtmlClass"] = mjax_classes elif "mathjax_config" in app.config: # sphinx 3 + mathjax 2 app.config.mathjax_config = app.config.mathjax_config or {} app.config.mathjax_config.setdefault("tex2jax", {}) if ( "processClass" in app.config.mathjax_config["tex2jax"] and app.config.mathjax_config["tex2jax"]["processClass"] != mjax_classes ): log_override_warning( app, 2, app.config.mathjax_config["tex2jax"]["processClass"], mjax_classes, ) app.config.mathjax_config["tex2jax"]["processClass"] = mjax_classes def html_visit_displaymath(self: HTMLTranslator, node: nodes.math_block) -> None: """Override for sphinx.ext.mathjax.html_visit_displaymath to handle amsmath. By default displaymath, are normally wrapped in a prefix/suffix, defined by mathjax_display, and labelled nodes are numbered. However, this is not the case if the math_block is set as 'nowrap', as for amsmath. Therefore, we need to override this behaviour. """ if "amsmath" in node.get("classes", []): self.body.append( self.starttag(node, "div", CLASS="math notranslate nohighlight amsmath") ) if node["number"]: number = get_node_equation_number(self, node) self.body.append(f'<span class="eqno">({number})') self.add_permalink_ref(node, _("Permalink to this equation")) self.body.append("</span>") prefix, suffix = self.builder.config.mathjax_display self.body.append(prefix) self.body.append(self.encode(node.astext())) self.body.append(suffix) self.body.append("</div>\n") raise nodes.SkipNode return mathjax.html_visit_displaymath(self, node) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/myst_parser/sphinx_ext/myst_refs.py�����������������������������������������������0000664�0000000�0000000�00000035552�14654155362�0022754�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������"""A post-transform for overriding the behaviour of sphinx reference resolution. This is applied to MyST type references only, such as ``[text](target)``, and allows for nested syntax """ from __future__ import annotations import re from typing import Any, cast from docutils import nodes from docutils.nodes import Element, document from markdown_it.common.normalize_url import normalizeLink from sphinx import addnodes from sphinx.addnodes import pending_xref from sphinx.domains.std import StandardDomain from sphinx.errors import NoUri from sphinx.ext.intersphinx import InventoryAdapter from sphinx.transforms.post_transforms import ReferencesResolver from sphinx.util import docname_join, logging from sphinx.util.nodes import clean_astext, make_refnode from myst_parser import inventory from myst_parser._compat import findall from myst_parser.warnings_ import MystWarnings LOGGER = logging.getLogger(__name__) class MystReferenceResolver(ReferencesResolver): """Resolves cross-references on doctrees. Overrides default sphinx implementation, to allow for nested syntax """ default_priority = 9 # higher priority than ReferencesResolver (10) def log_warning( self, target: None | str, msg: str, subtype: MystWarnings, **kwargs: Any ): """Log a warning, with a myst type and specific subtype.""" # MyST references are warned about by default (the same as the `any` role) # However, warnings can also be ignored by adding ("myst", target) # nitpick_ignore/nitpick_ignore_regex lists # https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-nitpicky if ( target and self.config.nitpick_ignore and ("myst", target) in self.config.nitpick_ignore ): return if ( target and self.config.nitpick_ignore_regex and any( ( re.fullmatch(ignore_type, "myst") and re.fullmatch(ignore_target, target) ) for ignore_type, ignore_target in self.config.nitpick_ignore_regex ) ): return LOGGER.warning(msg, type="myst", subtype=subtype.value, **kwargs) def run(self, **kwargs: Any) -> None: self.document: document for node in findall(self.document)(addnodes.pending_xref): if node["reftype"] != "myst": continue if node["refdomain"] == "doc": self.resolve_myst_ref_doc(node) continue newnode = None contnode = cast(nodes.TextElement, node[0].deepcopy()) target = node["reftarget"] refdoc = node.get("refdoc", self.env.docname) search_domains: None | list[str] = self.env.config.myst_ref_domains # try to resolve the reference within the local project, # this asks all domains to resolve the reference, # return None if no domain could resolve the reference # or returns the first result, and logs a warning if # multiple domains resolved the reference try: newnode = self.resolve_myst_ref_any( refdoc, node, contnode, search_domains ) except NoUri: newnode = contnode if newnode is None: # If no local domain could resolve the reference, try to # resolve it as an inter-sphinx reference newnode = self._resolve_myst_ref_intersphinx( node, contnode, target, search_domains ) if newnode is None: # if still not resolved, log a warning, self.log_warning( target, f"'myst' cross-reference target not found: {target!r}", MystWarnings.XREF_MISSING, location=node, ) # if the target could not be found, then default to using an external link if not newnode: newnode = nodes.reference() newnode["refid"] = normalizeLink(target) newnode.append(node[0].deepcopy()) # ensure the output node has some content if ( len(newnode.children) == 1 and isinstance(newnode[0], nodes.inline) and not (newnode[0].children) ): newnode[0].replace_self(nodes.literal(target, target)) elif not newnode.children: newnode.append(nodes.literal(target, target)) node.replace_self(newnode) def resolve_myst_ref_doc(self, node: pending_xref): """Resolve a reference, from a markdown link, to another document, optionally with a target id within that document. """ from_docname = node.get("refdoc", self.env.docname) ref_docname: str = node["reftarget"] ref_id: str | None = node["reftargetid"] if ref_docname not in self.env.all_docs: self.log_warning( ref_docname, f"Unknown source document {ref_docname!r}", MystWarnings.XREF_MISSING, location=node, ) node.replace_self(node[0].deepcopy()) return targetid = "" implicit_text = "" inner_classes = ["std", "std-doc"] if ref_id: slug_to_section = self.env.metadata[ref_docname].get("myst_slugs", {}) if ref_id not in slug_to_section: self.log_warning( ref_id, f"local id not found in doc {ref_docname!r}: {ref_id!r}", MystWarnings.XREF_MISSING, location=node, ) targetid = ref_id else: _, targetid, implicit_text = slug_to_section[ref_id] inner_classes = ["std", "std-ref"] else: implicit_text = clean_astext(self.env.titles[ref_docname]) if node["refexplicit"]: caption = node.astext() innernode = nodes.inline(caption, "", classes=inner_classes) innernode.extend(node[0].children) else: innernode = nodes.inline( implicit_text, implicit_text, classes=inner_classes ) assert self.app.builder try: ref_node = make_refnode( self.app.builder, from_docname, ref_docname, targetid, innernode ) except NoUri: ref_node = innernode node.replace_self(ref_node) def resolve_myst_ref_any( self, refdoc: str, node: pending_xref, contnode: Element, only_domains: None | list[str], ) -> Element | None: """Resolve reference generated by the "myst" role; ``[text](#reference)``. This builds on the sphinx ``any`` role to also resolve: - Document references with extensions; ``[text](./doc.md)`` - Document references with anchors with anchors; ``[text](./doc.md#target)`` - Nested syntax for explicit text with std:doc and std:ref; ``[**nested**](reference)`` """ target: str = node["reftarget"] results: list[tuple[str, Element]] = [] # resolve standard references res = self._resolve_ref_nested(node, refdoc) if res: results.append(("std:ref", res)) # resolve doc names res = self._resolve_doc_nested(node, refdoc) if res: results.append(("std:doc", res)) assert self.app.builder # next resolve for any other standard reference objects if only_domains is None or "std" in only_domains: stddomain = cast(StandardDomain, self.env.get_domain("std")) for objtype in stddomain.object_types: key = (objtype, target) if objtype == "term": key = (objtype, target.lower()) if key in stddomain.objects: docname, labelid = stddomain.objects[key] domain_role = "std:" + (stddomain.role_for_objtype(objtype) or "") ref_node = make_refnode( self.app.builder, refdoc, docname, labelid, contnode ) results.append((domain_role, ref_node)) # finally resolve for any other type of allowed reference domain for domain in self.env.domains.values(): if domain.name == "std": continue # we did this one already if only_domains is not None and domain.name not in only_domains: continue try: results.extend( domain.resolve_any_xref( self.env, refdoc, self.app.builder, target, node, contnode ) ) except NotImplementedError: # the domain doesn't yet support the new interface # we have to manually collect possible references (SLOW) if not (getattr(domain, "__module__", "").startswith("sphinx.")): self.log_warning( None, f"Domain '{domain.__module__}::{domain.name}' has not " "implemented a `resolve_any_xref` method", MystWarnings.LEGACY_DOMAIN, once=True, ) for role in domain.roles: res = domain.resolve_xref( self.env, refdoc, self.app.builder, role, target, node, contnode ) if res and len(res) and isinstance(res[0], nodes.Element): results.append((f"{domain.name}:{role}", res)) # now, see how many matches we got... if not results: return None if len(results) > 1: def stringify(name, node): reftitle = node.get("reftitle", node.astext()) return f":{name}:`{reftitle}`" candidates = " or ".join(stringify(name, role) for name, role in results) self.log_warning( target, f"more than one target found for 'myst' cross-reference {target}: " f"could be {candidates}", MystWarnings.XREF_AMBIGUOUS, location=node, ) res_role, newnode = results[0] # Override "myst" class with the actual role type to get the styling # approximately correct. res_domain = res_role.split(":")[0] if len(newnode) > 0 and isinstance(newnode[0], nodes.Element): newnode[0]["classes"] = newnode[0].get("classes", []) + [ res_domain, res_role.replace(":", "-"), ] return newnode def _resolve_ref_nested( self, node: pending_xref, fromdocname: str, target=None ) -> Element | None: """This is the same as ``sphinx.domains.std._resolve_ref_xref``, but allows for nested syntax, rather than converting the inner node to raw text. """ stddomain = cast(StandardDomain, self.env.get_domain("std")) target = target or node["reftarget"].lower() if node["refexplicit"]: # reference to anonymous label; the reference uses # the supplied link caption docname, labelid = stddomain.anonlabels.get(target, ("", "")) sectname = node.astext() innernode = nodes.inline(sectname, "") innernode.extend(node[0].children) else: # reference to named label; the final node will # contain the section name after the label docname, labelid, sectname = stddomain.labels.get(target, ("", "", "")) innernode = nodes.inline(sectname, sectname) if not docname: return None assert self.app.builder return make_refnode(self.app.builder, fromdocname, docname, labelid, innernode) def _resolve_doc_nested( self, node: pending_xref, fromdocname: str ) -> Element | None: """This is the same as ``sphinx.domains.std._resolve_doc_xref``, but allows for nested syntax, rather than converting the inner node to raw text. It also allows for extensions on document names. """ docname = docname_join(node.get("refdoc", fromdocname), node["reftarget"]) if docname not in self.env.all_docs: return None if node["refexplicit"]: # reference with explicit title caption = node.astext() innernode = nodes.inline(caption, "", classes=["doc"]) innernode.extend(node[0].children) else: caption = clean_astext(self.env.titles[docname]) innernode = nodes.inline(caption, caption, classes=["doc"]) assert self.app.builder return make_refnode(self.app.builder, fromdocname, docname, "", innernode) def _resolve_myst_ref_intersphinx( self, node: nodes.Element, contnode: nodes.Element, target: str, only_domains: list[str] | None, ) -> None | nodes.reference: """Resolve a myst reference to an intersphinx inventory.""" matches = [ m for m in inventory.filter_sphinx_inventories( InventoryAdapter(self.env).named_inventory, targets=target, ) if only_domains is None or m.domain in only_domains ] if not matches: return None if len(matches) > 1: # log a warning if there are multiple matches show_num = 3 matches_str = ", ".join( [ inventory.filter_string(m.inv, m.domain, m.otype, m.name) for m in matches[:show_num] ] ) if len(matches) > show_num: matches_str += ", ..." self.log_warning( target, f"Multiple matches found for {target!r}: {matches_str}", MystWarnings.IREF_AMBIGUOUS, location=node, ) # get the first match and create a reference node match = matches[0] newnode = nodes.reference("", "", internal=False, refuri=match.loc) if "reftitle" in node: newnode["reftitle"] = node["reftitle"] else: newnode["reftitle"] = f"{match.project} {match.version}".strip() if node.get("refexplicit"): newnode.append(contnode) elif match.text: newnode.append( contnode.__class__(match.text, match.text, classes=["iref", "myst"]) ) else: newnode.append( nodes.literal(match.name, match.name, classes=["iref", "myst"]) ) return newnode ������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/myst_parser/warnings_.py����������������������������������������������������������0000664�0000000�0000000�00000012544�14654155362�0020533�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������"""Central handling of warnings for the myst extension.""" from __future__ import annotations from collections.abc import Sequence from enum import Enum from docutils import nodes, utils class MystWarnings(Enum): """MyST warning types.""" DEPRECATED = "deprecated" """Deprecated usage.""" NOT_SUPPORTED = "not_supported" """Functionality that is not yet supported in docutils.""" RENDER_METHOD = "render" """The render method is not implemented.""" MD_TOPMATTER = "topmatter" """Issue reading front-matter.""" MD_DEF_DUPE = "duplicate_def" """Duplicate Markdown reference definition.""" MD_HEADING_NON_CONSECUTIVE = "header" """Non-consecutive heading levels.""" DIRECTIVE_PARSING = "directive_parse" """Issue parsing directive.""" DIRECTIVE_OPTION = "directive_option" """Issue parsing directive options.""" DIRECTIVE_OPTION_COMMENTS = "directive_comments" """Directive options has # comments, which may not be supported in future versions.""" DIRECTIVE_BODY = "directive_body" """Issue parsing directive body.""" UNKNOWN_DIRECTIVE = "directive_unknown" """Unknown directive.""" UNKNOWN_ROLE = "role_unknown" """Unknown role.""" # cross-reference resolution XREF_AMBIGUOUS = "xref_ambiguous" """Multiple targets were found for a cross-reference.""" XREF_MISSING = "xref_missing" """A target was not found for a cross-reference.""" INV_LOAD = "inv_retrieval" """Failure to retrieve or load an inventory.""" IREF_MISSING = "iref_missing" """A target was not found for an inventory reference.""" IREF_AMBIGUOUS = "iref_ambiguous" """Multiple targets were found for an inventory reference.""" LEGACY_DOMAIN = "domains" """A legacy domain found, which does not support `resolve_any_xref`.""" # extensions HEADING_SLUG = "heading_slug" """An error occured computing a heading slug.""" STRIKETHROUGH = "strikethrough" """Strikethrough warning, since only implemented in HTML.""" HTML_PARSE = "html" """HTML could not be parsed.""" INVALID_ATTRIBUTE = "attribute" """Invalid attribute value.""" SUBSTITUTION = "substitution" """Substitution could not be resolved.""" def _is_suppressed_warning( type: str, subtype: str, suppress_warnings: Sequence[str] ) -> bool: """Check whether the warning is suppressed or not. Mirrors: https://github.com/sphinx-doc/sphinx/blob/47d9035bca9e83d6db30a0726a02dc9265bd66b1/sphinx/util/logging.py """ if type is None: return False subtarget: str | None for warning_type in suppress_warnings: if "." in warning_type: target, subtarget = warning_type.split(".", 1) else: target, subtarget = warning_type, None if target == type and subtarget in (None, subtype, "*"): return True return False def create_warning( document: nodes.document, message: str, subtype: MystWarnings | str, *, wtype: str | None = None, node: nodes.Element | None = None, line: int | None = None, append_to: nodes.Element | None = None, ) -> nodes.system_message | None: """Generate a warning, logging if it is necessary. If the warning type is listed in the ``suppress_warnings`` configuration, then ``None`` will be returned and no warning logged. """ # In general we want to both create a warning node within the document AST, # and also log the warning to output it in the CLI etc. # docutils and sphinx have different ways of doing this, so we need to handle both. # Note also that in general we want to show the type/subtype in the warning message, # but this was added as an option to sphinx in v7.3, and made the default in v8.0. type_str = wtype if wtype is not None else "myst" subtype_str = subtype if isinstance(subtype, str) else subtype.value message_with_type = f"{message} [{type_str}.{subtype_str}]" if hasattr(document.settings, "env"): # Sphinx from sphinx.util.logging import getLogger logger = getLogger(__name__) logger.warning( message, type=type_str, subtype=subtype_str, location=node if node is not None else (document["source"], line), ) if _is_suppressed_warning( type_str, subtype_str, document.settings.env.config.suppress_warnings ): return None if node is not None: _source, _line = utils.get_source_line(node) else: _source, _line = document["source"], line msg_node = _create_warning_node(message_with_type, _source, _line) else: # docutils if _is_suppressed_warning( type_str, subtype_str, document.settings.myst_suppress_warnings or [] ): return None kwargs = {} if node is not None: kwargs["base_node"] = node elif line is not None: kwargs["line"] = line msg_node = document.reporter.warning(message_with_type, **kwargs) if append_to is not None: append_to.append(msg_node) return msg_node def _create_warning_node( msg: str, source: str, line: int | None ) -> nodes.system_message: kwargs = {"line": line} if line is not None else {} return nodes.system_message(msg, level=2, type="WARNING", source=source, **kwargs) ������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/pyproject.toml��������������������������������������������������������������������0000664�0000000�0000000�00000007546�14654155362�0016544�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������[build-system] requires = ["flit_core >=3.4,<4"] build-backend = "flit_core.buildapi" [project] name = "myst-parser" dynamic = ["version", "description"] authors = [{name = "Chris Sewell", email = "chrisj_sewell@hotmail.com"}] readme = "README.md" license = {file = "LICENSE"} classifiers = [ "Development Status :: 4 - Beta", "Framework :: Sphinx :: Extension", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Text Processing :: Markup", ] keywords = [ "markdown", "lexer", "parser", "development", "docutils", "sphinx", ] requires-python = ">=3.10" dependencies = [ "docutils>=0.19,<0.22", "jinja2", # required for substitutions, but let sphinx choose version "markdown-it-py~=3.0", "mdit-py-plugins~=0.4,>=0.4.1", "pyyaml", "sphinx>=7,<9", ] [project.urls] Homepage = "https://github.com/executablebooks/MyST-Parser" Documentation = "https://myst-parser.readthedocs.io" [project.optional-dependencies] code_style = ["pre-commit~=3.0"] # for use with "linkify" extension linkify = ["linkify-it-py~=2.0"] # Note: This is only required for internal use rtd = [ "sphinx>=7", "ipython", "sphinx-book-theme~=1.1", "sphinx-design", "sphinx-copybutton", "sphinxext-rediraffe~=0.2.7", # TODO this can uncommented once https://github.com/mgaitan/sphinxcontrib-mermaid/issues/109 is fixed # "sphinxcontrib.mermaid~=0.7.1", "sphinxext-opengraph~=0.9.0", "sphinx-pyscript", "sphinx-tippy>=0.4.3", "sphinx-autodoc2~=0.5.0", "sphinx-togglebutton", ] testing = [ "beautifulsoup4", "coverage[toml]", "defusedxml", # required by sphinx 7.3 testing utils "pytest>=8,<9", "pytest-cov", "pytest-regressions", "pytest-param-files~=0.6.0", "sphinx-pytest", ] testing-docutils = [ "pygments", "pytest>=8,<9", "pytest-param-files~=0.6.0", ] [project.scripts] myst-anchors = "myst_parser.cli:print_anchors" myst-inv = "myst_parser.inventory:inventory_cli" myst-docutils-html = "myst_parser.parsers.docutils_:cli_html" myst-docutils-html5 = "myst_parser.parsers.docutils_:cli_html5" myst-docutils-demo = "myst_parser.parsers.docutils_:cli_html5_demo" myst-docutils-latex = "myst_parser.parsers.docutils_:cli_latex" myst-docutils-xml = "myst_parser.parsers.docutils_:cli_xml" myst-docutils-pseudoxml = "myst_parser.parsers.docutils_:cli_pseudoxml" [tool.flit.module] name = "myst_parser" [tool.flit.sdist] exclude = [ "docs/", "tests/", ] [tool.ruff.lint] extend-select = ["B", "C4", "FA", "FURB", "I", "ICN", "ISC", "N", "PERF", "PGH", "PIE", "RUF", "SIM", "UP"] extend-ignore = ["ISC001", "RUF005", "RUF012"] [tool.ruff.lint.per-file-ignores] "myst_parser/parsers/docutils_.py" = ["FA"] "myst_parser/config/main.py" = ["FA"] [tool.mypy] show_error_codes = true check_untyped_defs = true strict_equality = true warn_unused_ignores = true disallow_any_generics = true [[tool.mypy.overrides]] module = ["docutils.*", "yaml.*", "pygments.*"] ignore_missing_imports = true [[tool.mypy.overrides]] # shrink me module = [ "myst_parser.config.dc_validators", "myst_parser.config.main", "myst_parser.inventory", "myst_parser.parsers.directives", "myst_parser.parsers.docutils_", "myst_parser.parsers.parse_html", ] disallow_any_generics = false [tool.pytest.ini_options] filterwarnings = [ "ignore:.*The default for the setting.*:FutureWarning", ] [tool.coverage.run] omit = ["*/_docs.py"] ����������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/����������������������������������������������������������������������������0000775�0000000�0000000�00000000000�14654155362�0014756�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/static/���������������������������������������������������������������������0000775�0000000�0000000�00000000000�14654155362�0016245�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/static/objects_v1.inv�������������������������������������������������������0000664�0000000�0000000�00000000151�14654155362�0021017�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Sphinx inventory version 1 # Project: foo # Version: 1.0 module mod foo.html module.cls class foo.html �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/static/objects_v2.inv�������������������������������������������������������0000664�0000000�0000000�00000000354�14654155362�0021025�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Sphinx inventory version 2 # Project: Python # Version: # The remainder of this file is compressed using zlib. xΪKOΝΛΜKI­P(.I±ΚILJΝQΠ5TH‡Šκe”δζ(x‚˜\e)ωΙ EH*B2KrRΉrσS°˜UP© “€(φΝO)ΝI…šŠ$K@[@eIF~ͺξ’Τ4T]υΚ*PW§&%g *ƒˆAΜ †Θ$¦§r�Ÿ±^’������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_anchors.py�������������������������������������������������������������0000664�0000000�0000000�00000000615�14654155362�0020026�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������from io import StringIO from unittest import mock from myst_parser.cli import print_anchors def test_print_anchors(): in_stream = StringIO("# a\n\n## b\n\ntext") out_stream = StringIO() with mock.patch("sys.stdin", in_stream), mock.patch("sys.stdout", out_stream): print_anchors(["-l", "1"]) out_stream.seek(0) assert out_stream.read().strip() == '<h1 id="a"></h1>' �������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_commonmark/������������������������������������������������������������0000775�0000000�0000000�00000000000�14654155362�0020160�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_commonmark/commonmark.json���������������������������������������������0000664�0000000�0000000�00000421207�14654155362�0023224�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������[ { "markdown": "\tfoo\tbaz\t\tbim\n", "html": "<pre><code>foo\tbaz\t\tbim\n</code></pre>\n", "example": 1, "start_line": 352, "end_line": 357, "section": "Tabs" }, { "markdown": " \tfoo\tbaz\t\tbim\n", "html": "<pre><code>foo\tbaz\t\tbim\n</code></pre>\n", "example": 2, "start_line": 359, "end_line": 364, "section": "Tabs" }, { "markdown": " a\ta\n ὐ\ta\n", "html": "<pre><code>a\ta\nὐ\ta\n</code></pre>\n", "example": 3, "start_line": 366, "end_line": 373, "section": "Tabs" }, { "markdown": " - foo\n\n\tbar\n", "html": "<ul>\n<li>\n<p>foo</p>\n<p>bar</p>\n</li>\n</ul>\n", "example": 4, "start_line": 379, "end_line": 390, "section": "Tabs" }, { "markdown": "- foo\n\n\t\tbar\n", "html": "<ul>\n<li>\n<p>foo</p>\n<pre><code> bar\n</code></pre>\n</li>\n</ul>\n", "example": 5, "start_line": 392, "end_line": 404, "section": "Tabs" }, { "markdown": ">\t\tfoo\n", "html": "<blockquote>\n<pre><code> foo\n</code></pre>\n</blockquote>\n", "example": 6, "start_line": 415, "end_line": 422, "section": "Tabs" }, { "markdown": "-\t\tfoo\n", "html": "<ul>\n<li>\n<pre><code> foo\n</code></pre>\n</li>\n</ul>\n", "example": 7, "start_line": 424, "end_line": 433, "section": "Tabs" }, { "markdown": " foo\n\tbar\n", "html": "<pre><code>foo\nbar\n</code></pre>\n", "example": 8, "start_line": 436, "end_line": 443, "section": "Tabs" }, { "markdown": " - foo\n - bar\n\t - baz\n", "html": "<ul>\n<li>foo\n<ul>\n<li>bar\n<ul>\n<li>baz</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n", "example": 9, "start_line": 445, "end_line": 461, "section": "Tabs" }, { "markdown": "#\tFoo\n", "html": "<h1>Foo</h1>\n", "example": 10, "start_line": 463, "end_line": 467, "section": "Tabs" }, { "markdown": "*\t*\t*\t\n", "html": "<hr />\n", "example": 11, "start_line": 469, "end_line": 473, "section": "Tabs" }, { "markdown": "- `one\n- two`\n", "html": "<ul>\n<li>`one</li>\n<li>two`</li>\n</ul>\n", "example": 12, "start_line": 496, "end_line": 504, "section": "Precedence" }, { "markdown": "***\n---\n___\n", "html": "<hr />\n<hr />\n<hr />\n", "example": 13, "start_line": 535, "end_line": 543, "section": "Thematic breaks" }, { "markdown": "+++\n", "html": "<p>+++</p>\n", "example": 14, "start_line": 548, "end_line": 552, "section": "Thematic breaks" }, { "markdown": "===\n", "html": "<p>===</p>\n", "example": 15, "start_line": 555, "end_line": 559, "section": "Thematic breaks" }, { "markdown": "--\n**\n__\n", "html": "<p>--\n**\n__</p>\n", "example": 16, "start_line": 564, "end_line": 572, "section": "Thematic breaks" }, { "markdown": " ***\n ***\n ***\n", "html": "<hr />\n<hr />\n<hr />\n", "example": 17, "start_line": 577, "end_line": 585, "section": "Thematic breaks" }, { "markdown": " ***\n", "html": "<pre><code>***\n</code></pre>\n", "example": 18, "start_line": 590, "end_line": 595, "section": "Thematic breaks" }, { "markdown": "Foo\n ***\n", "html": "<p>Foo\n***</p>\n", "example": 19, "start_line": 598, "end_line": 604, "section": "Thematic breaks" }, { "markdown": "_____________________________________\n", "html": "<hr />\n", "example": 20, "start_line": 609, "end_line": 613, "section": "Thematic breaks" }, { "markdown": " - - -\n", "html": "<hr />\n", "example": 21, "start_line": 618, "end_line": 622, "section": "Thematic breaks" }, { "markdown": " ** * ** * ** * **\n", "html": "<hr />\n", "example": 22, "start_line": 625, "end_line": 629, "section": "Thematic breaks" }, { "markdown": "- - - -\n", "html": "<hr />\n", "example": 23, "start_line": 632, "end_line": 636, "section": "Thematic breaks" }, { "markdown": "- - - - \n", "html": "<hr />\n", "example": 24, "start_line": 641, "end_line": 645, "section": "Thematic breaks" }, { "markdown": "_ _ _ _ a\n\na------\n\n---a---\n", "html": "<p>_ _ _ _ a</p>\n<p>a------</p>\n<p>---a---</p>\n", "example": 25, "start_line": 650, "end_line": 660, "section": "Thematic breaks" }, { "markdown": " *-*\n", "html": "<p><em>-</em></p>\n", "example": 26, "start_line": 666, "end_line": 670, "section": "Thematic breaks" }, { "markdown": "- foo\n***\n- bar\n", "html": "<ul>\n<li>foo</li>\n</ul>\n<hr />\n<ul>\n<li>bar</li>\n</ul>\n", "example": 27, "start_line": 675, "end_line": 687, "section": "Thematic breaks" }, { "markdown": "Foo\n***\nbar\n", "html": "<p>Foo</p>\n<hr />\n<p>bar</p>\n", "example": 28, "start_line": 692, "end_line": 700, "section": "Thematic breaks" }, { "markdown": "Foo\n---\nbar\n", "html": "<h2>Foo</h2>\n<p>bar</p>\n", "example": 29, "start_line": 709, "end_line": 716, "section": "Thematic breaks" }, { "markdown": "* Foo\n* * *\n* Bar\n", "html": "<ul>\n<li>Foo</li>\n</ul>\n<hr />\n<ul>\n<li>Bar</li>\n</ul>\n", "example": 30, "start_line": 722, "end_line": 734, "section": "Thematic breaks" }, { "markdown": "- Foo\n- * * *\n", "html": "<ul>\n<li>Foo</li>\n<li>\n<hr />\n</li>\n</ul>\n", "example": 31, "start_line": 739, "end_line": 749, "section": "Thematic breaks" }, { "markdown": "# foo\n## foo\n### foo\n#### foo\n##### foo\n###### foo\n", "html": "<h1>foo</h1>\n<h2>foo</h2>\n<h3>foo</h3>\n<h4>foo</h4>\n<h5>foo</h5>\n<h6>foo</h6>\n", "example": 32, "start_line": 768, "end_line": 782, "section": "ATX headings" }, { "markdown": "####### foo\n", "html": "<p>####### foo</p>\n", "example": 33, "start_line": 787, "end_line": 791, "section": "ATX headings" }, { "markdown": "#5 bolt\n\n#hashtag\n", "html": "<p>#5 bolt</p>\n<p>#hashtag</p>\n", "example": 34, "start_line": 802, "end_line": 809, "section": "ATX headings" }, { "markdown": "\\## foo\n", "html": "<p>## foo</p>\n", "example": 35, "start_line": 814, "end_line": 818, "section": "ATX headings" }, { "markdown": "# foo *bar* \\*baz\\*\n", "html": "<h1>foo <em>bar</em> *baz*</h1>\n", "example": 36, "start_line": 823, "end_line": 827, "section": "ATX headings" }, { "markdown": "# foo \n", "html": "<h1>foo</h1>\n", "example": 37, "start_line": 832, "end_line": 836, "section": "ATX headings" }, { "markdown": " ### foo\n ## foo\n # foo\n", "html": "<h3>foo</h3>\n<h2>foo</h2>\n<h1>foo</h1>\n", "example": 38, "start_line": 841, "end_line": 849, "section": "ATX headings" }, { "markdown": " # foo\n", "html": "<pre><code># foo\n</code></pre>\n", "example": 39, "start_line": 854, "end_line": 859, "section": "ATX headings" }, { "markdown": "foo\n # bar\n", "html": "<p>foo\n# bar</p>\n", "example": 40, "start_line": 862, "end_line": 868, "section": "ATX headings" }, { "markdown": "## foo ##\n ### bar ###\n", "html": "<h2>foo</h2>\n<h3>bar</h3>\n", "example": 41, "start_line": 873, "end_line": 879, "section": "ATX headings" }, { "markdown": "# foo ##################################\n##### foo ##\n", "html": "<h1>foo</h1>\n<h5>foo</h5>\n", "example": 42, "start_line": 884, "end_line": 890, "section": "ATX headings" }, { "markdown": "### foo ### \n", "html": "<h3>foo</h3>\n", "example": 43, "start_line": 895, "end_line": 899, "section": "ATX headings" }, { "markdown": "### foo ### b\n", "html": "<h3>foo ### b</h3>\n", "example": 44, "start_line": 906, "end_line": 910, "section": "ATX headings" }, { "markdown": "# foo#\n", "html": "<h1>foo#</h1>\n", "example": 45, "start_line": 915, "end_line": 919, "section": "ATX headings" }, { "markdown": "### foo \\###\n## foo #\\##\n# foo \\#\n", "html": "<h3>foo ###</h3>\n<h2>foo ###</h2>\n<h1>foo #</h1>\n", "example": 46, "start_line": 925, "end_line": 933, "section": "ATX headings" }, { "markdown": "****\n## foo\n****\n", "html": "<hr />\n<h2>foo</h2>\n<hr />\n", "example": 47, "start_line": 939, "end_line": 947, "section": "ATX headings" }, { "markdown": "Foo bar\n# baz\nBar foo\n", "html": "<p>Foo bar</p>\n<h1>baz</h1>\n<p>Bar foo</p>\n", "example": 48, "start_line": 950, "end_line": 958, "section": "ATX headings" }, { "markdown": "## \n#\n### ###\n", "html": "<h2></h2>\n<h1></h1>\n<h3></h3>\n", "example": 49, "start_line": 963, "end_line": 971, "section": "ATX headings" }, { "markdown": "Foo *bar*\n=========\n\nFoo *bar*\n---------\n", "html": "<h1>Foo <em>bar</em></h1>\n<h2>Foo <em>bar</em></h2>\n", "example": 50, "start_line": 1006, "end_line": 1015, "section": "Setext headings" }, { "markdown": "Foo *bar\nbaz*\n====\n", "html": "<h1>Foo <em>bar\nbaz</em></h1>\n", "example": 51, "start_line": 1020, "end_line": 1027, "section": "Setext headings" }, { "markdown": " Foo *bar\nbaz*\t\n====\n", "html": "<h1>Foo <em>bar\nbaz</em></h1>\n", "example": 52, "start_line": 1034, "end_line": 1041, "section": "Setext headings" }, { "markdown": "Foo\n-------------------------\n\nFoo\n=\n", "html": "<h2>Foo</h2>\n<h1>Foo</h1>\n", "example": 53, "start_line": 1046, "end_line": 1055, "section": "Setext headings" }, { "markdown": " Foo\n---\n\n Foo\n-----\n\n Foo\n ===\n", "html": "<h2>Foo</h2>\n<h2>Foo</h2>\n<h1>Foo</h1>\n", "example": 54, "start_line": 1061, "end_line": 1074, "section": "Setext headings" }, { "markdown": " Foo\n ---\n\n Foo\n---\n", "html": "<pre><code>Foo\n---\n\nFoo\n</code></pre>\n<hr />\n", "example": 55, "start_line": 1079, "end_line": 1092, "section": "Setext headings" }, { "markdown": "Foo\n ---- \n", "html": "<h2>Foo</h2>\n", "example": 56, "start_line": 1098, "end_line": 1103, "section": "Setext headings" }, { "markdown": "Foo\n ---\n", "html": "<p>Foo\n---</p>\n", "example": 57, "start_line": 1108, "end_line": 1114, "section": "Setext headings" }, { "markdown": "Foo\n= =\n\nFoo\n--- -\n", "html": "<p>Foo\n= =</p>\n<p>Foo</p>\n<hr />\n", "example": 58, "start_line": 1119, "end_line": 1130, "section": "Setext headings" }, { "markdown": "Foo \n-----\n", "html": "<h2>Foo</h2>\n", "example": 59, "start_line": 1135, "end_line": 1140, "section": "Setext headings" }, { "markdown": "Foo\\\n----\n", "html": "<h2>Foo\\</h2>\n", "example": 60, "start_line": 1145, "end_line": 1150, "section": "Setext headings" }, { "markdown": "`Foo\n----\n`\n\n<a title=\"a lot\n---\nof dashes\"/>\n", "html": "<h2>`Foo</h2>\n<p>`</p>\n<h2><a title="a lot</h2>\n<p>of dashes"/></p>\n", "example": 61, "start_line": 1156, "end_line": 1169, "section": "Setext headings" }, { "markdown": "> Foo\n---\n", "html": "<blockquote>\n<p>Foo</p>\n</blockquote>\n<hr />\n", "example": 62, "start_line": 1175, "end_line": 1183, "section": "Setext headings" }, { "markdown": "> foo\nbar\n===\n", "html": "<blockquote>\n<p>foo\nbar\n===</p>\n</blockquote>\n", "example": 63, "start_line": 1186, "end_line": 1196, "section": "Setext headings" }, { "markdown": "- Foo\n---\n", "html": "<ul>\n<li>Foo</li>\n</ul>\n<hr />\n", "example": 64, "start_line": 1199, "end_line": 1207, "section": "Setext headings" }, { "markdown": "Foo\nBar\n---\n", "html": "<h2>Foo\nBar</h2>\n", "example": 65, "start_line": 1214, "end_line": 1221, "section": "Setext headings" }, { "markdown": "---\nFoo\n---\nBar\n---\nBaz\n", "html": "<hr />\n<h2>Foo</h2>\n<h2>Bar</h2>\n<p>Baz</p>\n", "example": 66, "start_line": 1227, "end_line": 1239, "section": "Setext headings" }, { "markdown": "\n====\n", "html": "<p>====</p>\n", "example": 67, "start_line": 1244, "end_line": 1249, "section": "Setext headings" }, { "markdown": "---\n---\n", "html": "<hr />\n<hr />\n", "example": 68, "start_line": 1256, "end_line": 1262, "section": "Setext headings" }, { "markdown": "- foo\n-----\n", "html": "<ul>\n<li>foo</li>\n</ul>\n<hr />\n", "example": 69, "start_line": 1265, "end_line": 1273, "section": "Setext headings" }, { "markdown": " foo\n---\n", "html": "<pre><code>foo\n</code></pre>\n<hr />\n", "example": 70, "start_line": 1276, "end_line": 1283, "section": "Setext headings" }, { "markdown": "> foo\n-----\n", "html": "<blockquote>\n<p>foo</p>\n</blockquote>\n<hr />\n", "example": 71, "start_line": 1286, "end_line": 1294, "section": "Setext headings" }, { "markdown": "\\> foo\n------\n", "html": "<h2>> foo</h2>\n", "example": 72, "start_line": 1300, "end_line": 1305, "section": "Setext headings" }, { "markdown": "Foo\n\nbar\n---\nbaz\n", "html": "<p>Foo</p>\n<h2>bar</h2>\n<p>baz</p>\n", "example": 73, "start_line": 1331, "end_line": 1341, "section": "Setext headings" }, { "markdown": "Foo\nbar\n\n---\n\nbaz\n", "html": "<p>Foo\nbar</p>\n<hr />\n<p>baz</p>\n", "example": 74, "start_line": 1347, "end_line": 1359, "section": "Setext headings" }, { "markdown": "Foo\nbar\n* * *\nbaz\n", "html": "<p>Foo\nbar</p>\n<hr />\n<p>baz</p>\n", "example": 75, "start_line": 1365, "end_line": 1375, "section": "Setext headings" }, { "markdown": "Foo\nbar\n\\---\nbaz\n", "html": "<p>Foo\nbar\n---\nbaz</p>\n", "example": 76, "start_line": 1380, "end_line": 1390, "section": "Setext headings" }, { "markdown": " a simple\n indented code block\n", "html": "<pre><code>a simple\n indented code block\n</code></pre>\n", "example": 77, "start_line": 1408, "end_line": 1415, "section": "Indented code blocks" }, { "markdown": " - foo\n\n bar\n", "html": "<ul>\n<li>\n<p>foo</p>\n<p>bar</p>\n</li>\n</ul>\n", "example": 78, "start_line": 1422, "end_line": 1433, "section": "Indented code blocks" }, { "markdown": "1. foo\n\n - bar\n", "html": "<ol>\n<li>\n<p>foo</p>\n<ul>\n<li>bar</li>\n</ul>\n</li>\n</ol>\n", "example": 79, "start_line": 1436, "end_line": 1449, "section": "Indented code blocks" }, { "markdown": " <a/>\n *hi*\n\n - one\n", "html": "<pre><code><a/>\n*hi*\n\n- one\n</code></pre>\n", "example": 80, "start_line": 1456, "end_line": 1467, "section": "Indented code blocks" }, { "markdown": " chunk1\n\n chunk2\n \n \n \n chunk3\n", "html": "<pre><code>chunk1\n\nchunk2\n\n\n\nchunk3\n</code></pre>\n", "example": 81, "start_line": 1472, "end_line": 1489, "section": "Indented code blocks" }, { "markdown": " chunk1\n \n chunk2\n", "html": "<pre><code>chunk1\n \n chunk2\n</code></pre>\n", "example": 82, "start_line": 1495, "end_line": 1504, "section": "Indented code blocks" }, { "markdown": "Foo\n bar\n\n", "html": "<p>Foo\nbar</p>\n", "example": 83, "start_line": 1510, "end_line": 1517, "section": "Indented code blocks" }, { "markdown": " foo\nbar\n", "html": "<pre><code>foo\n</code></pre>\n<p>bar</p>\n", "example": 84, "start_line": 1524, "end_line": 1531, "section": "Indented code blocks" }, { "markdown": "# Heading\n foo\nHeading\n------\n foo\n----\n", "html": "<h1>Heading</h1>\n<pre><code>foo\n</code></pre>\n<h2>Heading</h2>\n<pre><code>foo\n</code></pre>\n<hr />\n", "example": 85, "start_line": 1537, "end_line": 1552, "section": "Indented code blocks" }, { "markdown": " foo\n bar\n", "html": "<pre><code> foo\nbar\n</code></pre>\n", "example": 86, "start_line": 1557, "end_line": 1564, "section": "Indented code blocks" }, { "markdown": "\n \n foo\n \n\n", "html": "<pre><code>foo\n</code></pre>\n", "example": 87, "start_line": 1570, "end_line": 1579, "section": "Indented code blocks" }, { "markdown": " foo \n", "html": "<pre><code>foo \n</code></pre>\n", "example": 88, "start_line": 1584, "end_line": 1589, "section": "Indented code blocks" }, { "markdown": "```\n<\n >\n```\n", "html": "<pre><code><\n >\n</code></pre>\n", "example": 89, "start_line": 1639, "end_line": 1648, "section": "Fenced code blocks" }, { "markdown": "~~~\n<\n >\n~~~\n", "html": "<pre><code><\n >\n</code></pre>\n", "example": 90, "start_line": 1653, "end_line": 1662, "section": "Fenced code blocks" }, { "markdown": "``\nfoo\n``\n", "html": "<p><code>foo</code></p>\n", "example": 91, "start_line": 1666, "end_line": 1672, "section": "Fenced code blocks" }, { "markdown": "```\naaa\n~~~\n```\n", "html": "<pre><code>aaa\n~~~\n</code></pre>\n", "example": 92, "start_line": 1677, "end_line": 1686, "section": "Fenced code blocks" }, { "markdown": "~~~\naaa\n```\n~~~\n", "html": "<pre><code>aaa\n```\n</code></pre>\n", "example": 93, "start_line": 1689, "end_line": 1698, "section": "Fenced code blocks" }, { "markdown": "````\naaa\n```\n``````\n", "html": "<pre><code>aaa\n```\n</code></pre>\n", "example": 94, "start_line": 1703, "end_line": 1712, "section": "Fenced code blocks" }, { "markdown": "~~~~\naaa\n~~~\n~~~~\n", "html": "<pre><code>aaa\n~~~\n</code></pre>\n", "example": 95, "start_line": 1715, "end_line": 1724, "section": "Fenced code blocks" }, { "markdown": "```\n", "html": "<pre><code></code></pre>\n", "example": 96, "start_line": 1730, "end_line": 1734, "section": "Fenced code blocks" }, { "markdown": "`````\n\n```\naaa\n", "html": "<pre><code>\n```\naaa\n</code></pre>\n", "example": 97, "start_line": 1737, "end_line": 1747, "section": "Fenced code blocks" }, { "markdown": "> ```\n> aaa\n\nbbb\n", "html": "<blockquote>\n<pre><code>aaa\n</code></pre>\n</blockquote>\n<p>bbb</p>\n", "example": 98, "start_line": 1750, "end_line": 1761, "section": "Fenced code blocks" }, { "markdown": "```\n\n \n```\n", "html": "<pre><code>\n \n</code></pre>\n", "example": 99, "start_line": 1766, "end_line": 1775, "section": "Fenced code blocks" }, { "markdown": "```\n```\n", "html": "<pre><code></code></pre>\n", "example": 100, "start_line": 1780, "end_line": 1785, "section": "Fenced code blocks" }, { "markdown": " ```\n aaa\naaa\n```\n", "html": "<pre><code>aaa\naaa\n</code></pre>\n", "example": 101, "start_line": 1792, "end_line": 1801, "section": "Fenced code blocks" }, { "markdown": " ```\naaa\n aaa\naaa\n ```\n", "html": "<pre><code>aaa\naaa\naaa\n</code></pre>\n", "example": 102, "start_line": 1804, "end_line": 1815, "section": "Fenced code blocks" }, { "markdown": " ```\n aaa\n aaa\n aaa\n ```\n", "html": "<pre><code>aaa\n aaa\naaa\n</code></pre>\n", "example": 103, "start_line": 1818, "end_line": 1829, "section": "Fenced code blocks" }, { "markdown": " ```\n aaa\n ```\n", "html": "<pre><code>```\naaa\n```\n</code></pre>\n", "example": 104, "start_line": 1834, "end_line": 1843, "section": "Fenced code blocks" }, { "markdown": "```\naaa\n ```\n", "html": "<pre><code>aaa\n</code></pre>\n", "example": 105, "start_line": 1849, "end_line": 1856, "section": "Fenced code blocks" }, { "markdown": " ```\naaa\n ```\n", "html": "<pre><code>aaa\n</code></pre>\n", "example": 106, "start_line": 1859, "end_line": 1866, "section": "Fenced code blocks" }, { "markdown": "```\naaa\n ```\n", "html": "<pre><code>aaa\n ```\n</code></pre>\n", "example": 107, "start_line": 1871, "end_line": 1879, "section": "Fenced code blocks" }, { "markdown": "``` ```\naaa\n", "html": "<p><code> </code>\naaa</p>\n", "example": 108, "start_line": 1885, "end_line": 1891, "section": "Fenced code blocks" }, { "markdown": "~~~~~~\naaa\n~~~ ~~\n", "html": "<pre><code>aaa\n~~~ ~~\n</code></pre>\n", "example": 109, "start_line": 1894, "end_line": 1902, "section": "Fenced code blocks" }, { "markdown": "foo\n```\nbar\n```\nbaz\n", "html": "<p>foo</p>\n<pre><code>bar\n</code></pre>\n<p>baz</p>\n", "example": 110, "start_line": 1908, "end_line": 1919, "section": "Fenced code blocks" }, { "markdown": "foo\n---\n~~~\nbar\n~~~\n# baz\n", "html": "<h2>foo</h2>\n<pre><code>bar\n</code></pre>\n<h1>baz</h1>\n", "example": 111, "start_line": 1925, "end_line": 1937, "section": "Fenced code blocks" }, { "markdown": "```ruby\ndef foo(x)\n return 3\nend\n```\n", "html": "<pre><code class=\"language-ruby\">def foo(x)\n return 3\nend\n</code></pre>\n", "example": 112, "start_line": 1947, "end_line": 1958, "section": "Fenced code blocks" }, { "markdown": "~~~~ ruby startline=3 $%@#$\ndef foo(x)\n return 3\nend\n~~~~~~~\n", "html": "<pre><code class=\"language-ruby\">def foo(x)\n return 3\nend\n</code></pre>\n", "example": 113, "start_line": 1961, "end_line": 1972, "section": "Fenced code blocks" }, { "markdown": "````;\n````\n", "html": "<pre><code class=\"language-;\"></code></pre>\n", "example": 114, "start_line": 1975, "end_line": 1980, "section": "Fenced code blocks" }, { "markdown": "``` aa ```\nfoo\n", "html": "<p><code>aa</code>\nfoo</p>\n", "example": 115, "start_line": 1985, "end_line": 1991, "section": "Fenced code blocks" }, { "markdown": "~~~ aa ``` ~~~\nfoo\n~~~\n", "html": "<pre><code class=\"language-aa\">foo\n</code></pre>\n", "example": 116, "start_line": 1996, "end_line": 2003, "section": "Fenced code blocks" }, { "markdown": "```\n``` aaa\n```\n", "html": "<pre><code>``` aaa\n</code></pre>\n", "example": 117, "start_line": 2008, "end_line": 2015, "section": "Fenced code blocks" }, { "markdown": "<table><tr><td>\n<pre>\n**Hello**,\n\n_world_.\n</pre>\n</td></tr></table>\n", "html": "<table><tr><td>\n<pre>\n**Hello**,\n<p><em>world</em>.\n</pre></p>\n</td></tr></table>\n", "example": 118, "start_line": 2087, "end_line": 2102, "section": "HTML blocks" }, { "markdown": "<table>\n <tr>\n <td>\n hi\n </td>\n </tr>\n</table>\n\nokay.\n", "html": "<table>\n <tr>\n <td>\n hi\n </td>\n </tr>\n</table>\n<p>okay.</p>\n", "example": 119, "start_line": 2116, "end_line": 2135, "section": "HTML blocks" }, { "markdown": " <div>\n *hello*\n <foo><a>\n", "html": " <div>\n *hello*\n <foo><a>\n", "example": 120, "start_line": 2138, "end_line": 2146, "section": "HTML blocks" }, { "markdown": "</div>\n*foo*\n", "html": "</div>\n*foo*\n", "example": 121, "start_line": 2151, "end_line": 2157, "section": "HTML blocks" }, { "markdown": "<DIV CLASS=\"foo\">\n\n*Markdown*\n\n</DIV>\n", "html": "<DIV CLASS=\"foo\">\n<p><em>Markdown</em></p>\n</DIV>\n", "example": 122, "start_line": 2162, "end_line": 2172, "section": "HTML blocks" }, { "markdown": "<div id=\"foo\"\n class=\"bar\">\n</div>\n", "html": "<div id=\"foo\"\n class=\"bar\">\n</div>\n", "example": 123, "start_line": 2178, "end_line": 2186, "section": "HTML blocks" }, { "markdown": "<div id=\"foo\" class=\"bar\n baz\">\n</div>\n", "html": "<div id=\"foo\" class=\"bar\n baz\">\n</div>\n", "example": 124, "start_line": 2189, "end_line": 2197, "section": "HTML blocks" }, { "markdown": "<div>\n*foo*\n\n*bar*\n", "html": "<div>\n*foo*\n<p><em>bar</em></p>\n", "example": 125, "start_line": 2201, "end_line": 2210, "section": "HTML blocks" }, { "markdown": "<div id=\"foo\"\n*hi*\n", "html": "<div id=\"foo\"\n*hi*\n", "example": 126, "start_line": 2217, "end_line": 2223, "section": "HTML blocks" }, { "markdown": "<div class\nfoo\n", "html": "<div class\nfoo\n", "example": 127, "start_line": 2226, "end_line": 2232, "section": "HTML blocks" }, { "markdown": "<div *???-&&&-<---\n*foo*\n", "html": "<div *???-&&&-<---\n*foo*\n", "example": 128, "start_line": 2238, "end_line": 2244, "section": "HTML blocks" }, { "markdown": "<div><a href=\"bar\">*foo*</a></div>\n", "html": "<div><a href=\"bar\">*foo*</a></div>\n", "example": 129, "start_line": 2250, "end_line": 2254, "section": "HTML blocks" }, { "markdown": "<table><tr><td>\nfoo\n</td></tr></table>\n", "html": "<table><tr><td>\nfoo\n</td></tr></table>\n", "example": 130, "start_line": 2257, "end_line": 2265, "section": "HTML blocks" }, { "markdown": "<div></div>\n``` c\nint x = 33;\n```\n", "html": "<div></div>\n``` c\nint x = 33;\n```\n", "example": 131, "start_line": 2274, "end_line": 2284, "section": "HTML blocks" }, { "markdown": "<a href=\"foo\">\n*bar*\n</a>\n", "html": "<a href=\"foo\">\n*bar*\n</a>\n", "example": 132, "start_line": 2291, "end_line": 2299, "section": "HTML blocks" }, { "markdown": "<Warning>\n*bar*\n</Warning>\n", "html": "<Warning>\n*bar*\n</Warning>\n", "example": 133, "start_line": 2304, "end_line": 2312, "section": "HTML blocks" }, { "markdown": "<i class=\"foo\">\n*bar*\n</i>\n", "html": "<i class=\"foo\">\n*bar*\n</i>\n", "example": 134, "start_line": 2315, "end_line": 2323, "section": "HTML blocks" }, { "markdown": "</ins>\n*bar*\n", "html": "</ins>\n*bar*\n", "example": 135, "start_line": 2326, "end_line": 2332, "section": "HTML blocks" }, { "markdown": "<del>\n*foo*\n</del>\n", "html": "<del>\n*foo*\n</del>\n", "example": 136, "start_line": 2341, "end_line": 2349, "section": "HTML blocks" }, { "markdown": "<del>\n\n*foo*\n\n</del>\n", "html": "<del>\n<p><em>foo</em></p>\n</del>\n", "example": 137, "start_line": 2356, "end_line": 2366, "section": "HTML blocks" }, { "markdown": "<del>*foo*</del>\n", "html": "<p><del><em>foo</em></del></p>\n", "example": 138, "start_line": 2374, "end_line": 2378, "section": "HTML blocks" }, { "markdown": "<pre language=\"haskell\"><code>\nimport Text.HTML.TagSoup\n\nmain :: IO ()\nmain = print $ parseTags tags\n</code></pre>\nokay\n", "html": "<pre language=\"haskell\"><code>\nimport Text.HTML.TagSoup\n\nmain :: IO ()\nmain = print $ parseTags tags\n</code></pre>\n<p>okay</p>\n", "example": 139, "start_line": 2390, "end_line": 2406, "section": "HTML blocks" }, { "markdown": "<script type=\"text/javascript\">\n// JavaScript example\n\ndocument.getElementById(\"demo\").innerHTML = \"Hello JavaScript!\";\n</script>\nokay\n", "html": "<script type=\"text/javascript\">\n// JavaScript example\n\ndocument.getElementById(\"demo\").innerHTML = \"Hello JavaScript!\";\n</script>\n<p>okay</p>\n", "example": 140, "start_line": 2411, "end_line": 2425, "section": "HTML blocks" }, { "markdown": "<style\n type=\"text/css\">\nh1 {color:red;}\n\np {color:blue;}\n</style>\nokay\n", "html": "<style\n type=\"text/css\">\nh1 {color:red;}\n\np {color:blue;}\n</style>\n<p>okay</p>\n", "example": 141, "start_line": 2430, "end_line": 2446, "section": "HTML blocks" }, { "markdown": "<style\n type=\"text/css\">\n\nfoo\n", "html": "<style\n type=\"text/css\">\n\nfoo\n", "example": 142, "start_line": 2453, "end_line": 2463, "section": "HTML blocks" }, { "markdown": "> <div>\n> foo\n\nbar\n", "html": "<blockquote>\n<div>\nfoo\n</blockquote>\n<p>bar</p>\n", "example": 143, "start_line": 2466, "end_line": 2477, "section": "HTML blocks" }, { "markdown": "- <div>\n- foo\n", "html": "<ul>\n<li>\n<div>\n</li>\n<li>foo</li>\n</ul>\n", "example": 144, "start_line": 2480, "end_line": 2490, "section": "HTML blocks" }, { "markdown": "<style>p{color:red;}</style>\n*foo*\n", "html": "<style>p{color:red;}</style>\n<p><em>foo</em></p>\n", "example": 145, "start_line": 2495, "end_line": 2501, "section": "HTML blocks" }, { "markdown": "<!-- foo -->*bar*\n*baz*\n", "html": "<!-- foo -->*bar*\n<p><em>baz</em></p>\n", "example": 146, "start_line": 2504, "end_line": 2510, "section": "HTML blocks" }, { "markdown": "<script>\nfoo\n</script>1. *bar*\n", "html": "<script>\nfoo\n</script>1. *bar*\n", "example": 147, "start_line": 2516, "end_line": 2524, "section": "HTML blocks" }, { "markdown": "<!-- Foo\n\nbar\n baz -->\nokay\n", "html": "<!-- Foo\n\nbar\n baz -->\n<p>okay</p>\n", "example": 148, "start_line": 2529, "end_line": 2541, "section": "HTML blocks" }, { "markdown": "<?php\n\n echo '>';\n\n?>\nokay\n", "html": "<?php\n\n echo '>';\n\n?>\n<p>okay</p>\n", "example": 149, "start_line": 2547, "end_line": 2561, "section": "HTML blocks" }, { "markdown": "<!DOCTYPE html>\n", "html": "<!DOCTYPE html>\n", "example": 150, "start_line": 2566, "end_line": 2570, "section": "HTML blocks" }, { "markdown": "<![CDATA[\nfunction matchwo(a,b)\n{\n if (a < b && a < 0) then {\n return 1;\n\n } else {\n\n return 0;\n }\n}\n]]>\nokay\n", "html": "<![CDATA[\nfunction matchwo(a,b)\n{\n if (a < b && a < 0) then {\n return 1;\n\n } else {\n\n return 0;\n }\n}\n]]>\n<p>okay</p>\n", "example": 151, "start_line": 2575, "end_line": 2603, "section": "HTML blocks" }, { "markdown": " <!-- foo -->\n\n <!-- foo -->\n", "html": " <!-- foo -->\n<pre><code><!-- foo -->\n</code></pre>\n", "example": 152, "start_line": 2608, "end_line": 2616, "section": "HTML blocks" }, { "markdown": " <div>\n\n <div>\n", "html": " <div>\n<pre><code><div>\n</code></pre>\n", "example": 153, "start_line": 2619, "end_line": 2627, "section": "HTML blocks" }, { "markdown": "Foo\n<div>\nbar\n</div>\n", "html": "<p>Foo</p>\n<div>\nbar\n</div>\n", "example": 154, "start_line": 2633, "end_line": 2643, "section": "HTML blocks" }, { "markdown": "<div>\nbar\n</div>\n*foo*\n", "html": "<div>\nbar\n</div>\n*foo*\n", "example": 155, "start_line": 2650, "end_line": 2660, "section": "HTML blocks" }, { "markdown": "Foo\n<a href=\"bar\">\nbaz\n", "html": "<p>Foo\n<a href=\"bar\">\nbaz</p>\n", "example": 156, "start_line": 2665, "end_line": 2673, "section": "HTML blocks" }, { "markdown": "<div>\n\n*Emphasized* text.\n\n</div>\n", "html": "<div>\n<p><em>Emphasized</em> text.</p>\n</div>\n", "example": 157, "start_line": 2706, "end_line": 2716, "section": "HTML blocks" }, { "markdown": "<div>\n*Emphasized* text.\n</div>\n", "html": "<div>\n*Emphasized* text.\n</div>\n", "example": 158, "start_line": 2719, "end_line": 2727, "section": "HTML blocks" }, { "markdown": "<table>\n\n<tr>\n\n<td>\nHi\n</td>\n\n</tr>\n\n</table>\n", "html": "<table>\n<tr>\n<td>\nHi\n</td>\n</tr>\n</table>\n", "example": 159, "start_line": 2741, "end_line": 2761, "section": "HTML blocks" }, { "markdown": "<table>\n\n <tr>\n\n <td>\n Hi\n </td>\n\n </tr>\n\n</table>\n", "html": "<table>\n <tr>\n<pre><code><td>\n Hi\n</td>\n</code></pre>\n </tr>\n</table>\n", "example": 160, "start_line": 2768, "end_line": 2789, "section": "HTML blocks" }, { "markdown": "[foo]: /url \"title\"\n\n[foo]\n", "html": "<p><a href=\"/url\" title=\"title\">foo</a></p>\n", "example": 161, "start_line": 2816, "end_line": 2822, "section": "Link reference definitions" }, { "markdown": " [foo]: \n /url \n 'the title' \n\n[foo]\n", "html": "<p><a href=\"/url\" title=\"the title\">foo</a></p>\n", "example": 162, "start_line": 2825, "end_line": 2833, "section": "Link reference definitions" }, { "markdown": "[Foo*bar\\]]:my_(url) 'title (with parens)'\n\n[Foo*bar\\]]\n", "html": "<p><a href=\"my_(url)\" title=\"title (with parens)\">Foo*bar]</a></p>\n", "example": 163, "start_line": 2836, "end_line": 2842, "section": "Link reference definitions" }, { "markdown": "[Foo bar]:\n<my url>\n'title'\n\n[Foo bar]\n", "html": "<p><a href=\"my%20url\" title=\"title\">Foo bar</a></p>\n", "example": 164, "start_line": 2845, "end_line": 2853, "section": "Link reference definitions" }, { "markdown": "[foo]: /url '\ntitle\nline1\nline2\n'\n\n[foo]\n", "html": "<p><a href=\"/url\" title=\"\ntitle\nline1\nline2\n\">foo</a></p>\n", "example": 165, "start_line": 2858, "end_line": 2872, "section": "Link reference definitions" }, { "markdown": "[foo]: /url 'title\n\nwith blank line'\n\n[foo]\n", "html": "<p>[foo]: /url 'title</p>\n<p>with blank line'</p>\n<p>[foo]</p>\n", "example": 166, "start_line": 2877, "end_line": 2887, "section": "Link reference definitions" }, { "markdown": "[foo]:\n/url\n\n[foo]\n", "html": "<p><a href=\"/url\">foo</a></p>\n", "example": 167, "start_line": 2892, "end_line": 2899, "section": "Link reference definitions" }, { "markdown": "[foo]:\n\n[foo]\n", "html": "<p>[foo]:</p>\n<p>[foo]</p>\n", "example": 168, "start_line": 2904, "end_line": 2911, "section": "Link reference definitions" }, { "markdown": "[foo]: <>\n\n[foo]\n", "html": "<p><a href=\"\">foo</a></p>\n", "example": 169, "start_line": 2916, "end_line": 2922, "section": "Link reference definitions" }, { "markdown": "[foo]: <bar>(baz)\n\n[foo]\n", "html": "<p>[foo]: <bar>(baz)</p>\n<p>[foo]</p>\n", "example": 170, "start_line": 2927, "end_line": 2934, "section": "Link reference definitions" }, { "markdown": "[foo]: /url\\bar\\*baz \"foo\\\"bar\\baz\"\n\n[foo]\n", "html": "<p><a href=\"/url%5Cbar*baz\" title=\"foo"bar\\baz\">foo</a></p>\n", "example": 171, "start_line": 2940, "end_line": 2946, "section": "Link reference definitions" }, { "markdown": "[foo]\n\n[foo]: url\n", "html": "<p><a href=\"url\">foo</a></p>\n", "example": 172, "start_line": 2951, "end_line": 2957, "section": "Link reference definitions" }, { "markdown": "[foo]\n\n[foo]: first\n[foo]: second\n", "html": "<p><a href=\"first\">foo</a></p>\n", "example": 173, "start_line": 2963, "end_line": 2970, "section": "Link reference definitions" }, { "markdown": "[FOO]: /url\n\n[Foo]\n", "html": "<p><a href=\"/url\">Foo</a></p>\n", "example": 174, "start_line": 2976, "end_line": 2982, "section": "Link reference definitions" }, { "markdown": "[ΑΓΩ]: /φου\n\n[Ξ±Ξ³Ο‰]\n", "html": "<p><a href=\"/%CF%86%CE%BF%CF%85\">Ξ±Ξ³Ο‰</a></p>\n", "example": 175, "start_line": 2985, "end_line": 2991, "section": "Link reference definitions" }, { "markdown": "[foo]: /url\n", "html": "", "example": 176, "start_line": 2997, "end_line": 3000, "section": "Link reference definitions" }, { "markdown": "[\nfoo\n]: /url\nbar\n", "html": "<p>bar</p>\n", "example": 177, "start_line": 3005, "end_line": 3012, "section": "Link reference definitions" }, { "markdown": "[foo]: /url \"title\" ok\n", "html": "<p>[foo]: /url "title" ok</p>\n", "example": 178, "start_line": 3018, "end_line": 3022, "section": "Link reference definitions" }, { "markdown": "[foo]: /url\n\"title\" ok\n", "html": "<p>"title" ok</p>\n", "example": 179, "start_line": 3027, "end_line": 3032, "section": "Link reference definitions" }, { "markdown": " [foo]: /url \"title\"\n\n[foo]\n", "html": "<pre><code>[foo]: /url "title"\n</code></pre>\n<p>[foo]</p>\n", "example": 180, "start_line": 3038, "end_line": 3046, "section": "Link reference definitions" }, { "markdown": "```\n[foo]: /url\n```\n\n[foo]\n", "html": "<pre><code>[foo]: /url\n</code></pre>\n<p>[foo]</p>\n", "example": 181, "start_line": 3052, "end_line": 3062, "section": "Link reference definitions" }, { "markdown": "Foo\n[bar]: /baz\n\n[bar]\n", "html": "<p>Foo\n[bar]: /baz</p>\n<p>[bar]</p>\n", "example": 182, "start_line": 3067, "end_line": 3076, "section": "Link reference definitions" }, { "markdown": "# [Foo]\n[foo]: /url\n> bar\n", "html": "<h1><a href=\"/url\">Foo</a></h1>\n<blockquote>\n<p>bar</p>\n</blockquote>\n", "example": 183, "start_line": 3082, "end_line": 3091, "section": "Link reference definitions" }, { "markdown": "[foo]: /url\nbar\n===\n[foo]\n", "html": "<h1>bar</h1>\n<p><a href=\"/url\">foo</a></p>\n", "example": 184, "start_line": 3093, "end_line": 3101, "section": "Link reference definitions" }, { "markdown": "[foo]: /url\n===\n[foo]\n", "html": "<p>===\n<a href=\"/url\">foo</a></p>\n", "example": 185, "start_line": 3103, "end_line": 3110, "section": "Link reference definitions" }, { "markdown": "[foo]: /foo-url \"foo\"\n[bar]: /bar-url\n \"bar\"\n[baz]: /baz-url\n\n[foo],\n[bar],\n[baz]\n", "html": "<p><a href=\"/foo-url\" title=\"foo\">foo</a>,\n<a href=\"/bar-url\" title=\"bar\">bar</a>,\n<a href=\"/baz-url\">baz</a></p>\n", "example": 186, "start_line": 3116, "end_line": 3129, "section": "Link reference definitions" }, { "markdown": "[foo]\n\n> [foo]: /url\n", "html": "<p><a href=\"/url\">foo</a></p>\n<blockquote>\n</blockquote>\n", "example": 187, "start_line": 3137, "end_line": 3145, "section": "Link reference definitions" }, { "markdown": "[foo]: /url\n", "html": "", "example": 188, "start_line": 3154, "end_line": 3157, "section": "Link reference definitions" }, { "markdown": "aaa\n\nbbb\n", "html": "<p>aaa</p>\n<p>bbb</p>\n", "example": 189, "start_line": 3171, "end_line": 3178, "section": "Paragraphs" }, { "markdown": "aaa\nbbb\n\nccc\nddd\n", "html": "<p>aaa\nbbb</p>\n<p>ccc\nddd</p>\n", "example": 190, "start_line": 3183, "end_line": 3194, "section": "Paragraphs" }, { "markdown": "aaa\n\n\nbbb\n", "html": "<p>aaa</p>\n<p>bbb</p>\n", "example": 191, "start_line": 3199, "end_line": 3207, "section": "Paragraphs" }, { "markdown": " aaa\n bbb\n", "html": "<p>aaa\nbbb</p>\n", "example": 192, "start_line": 3212, "end_line": 3218, "section": "Paragraphs" }, { "markdown": "aaa\n bbb\n ccc\n", "html": "<p>aaa\nbbb\nccc</p>\n", "example": 193, "start_line": 3224, "end_line": 3232, "section": "Paragraphs" }, { "markdown": " aaa\nbbb\n", "html": "<p>aaa\nbbb</p>\n", "example": 194, "start_line": 3238, "end_line": 3244, "section": "Paragraphs" }, { "markdown": " aaa\nbbb\n", "html": "<pre><code>aaa\n</code></pre>\n<p>bbb</p>\n", "example": 195, "start_line": 3247, "end_line": 3254, "section": "Paragraphs" }, { "markdown": "aaa \nbbb \n", "html": "<p>aaa<br />\nbbb</p>\n", "example": 196, "start_line": 3261, "end_line": 3267, "section": "Paragraphs" }, { "markdown": " \n\naaa\n \n\n# aaa\n\n \n", "html": "<p>aaa</p>\n<h1>aaa</h1>\n", "example": 197, "start_line": 3278, "end_line": 3290, "section": "Blank lines" }, { "markdown": "> # Foo\n> bar\n> baz\n", "html": "<blockquote>\n<h1>Foo</h1>\n<p>bar\nbaz</p>\n</blockquote>\n", "example": 198, "start_line": 3344, "end_line": 3354, "section": "Block quotes" }, { "markdown": "># Foo\n>bar\n> baz\n", "html": "<blockquote>\n<h1>Foo</h1>\n<p>bar\nbaz</p>\n</blockquote>\n", "example": 199, "start_line": 3359, "end_line": 3369, "section": "Block quotes" }, { "markdown": " > # Foo\n > bar\n > baz\n", "html": "<blockquote>\n<h1>Foo</h1>\n<p>bar\nbaz</p>\n</blockquote>\n", "example": 200, "start_line": 3374, "end_line": 3384, "section": "Block quotes" }, { "markdown": " > # Foo\n > bar\n > baz\n", "html": "<pre><code>> # Foo\n> bar\n> baz\n</code></pre>\n", "example": 201, "start_line": 3389, "end_line": 3398, "section": "Block quotes" }, { "markdown": "> # Foo\n> bar\nbaz\n", "html": "<blockquote>\n<h1>Foo</h1>\n<p>bar\nbaz</p>\n</blockquote>\n", "example": 202, "start_line": 3404, "end_line": 3414, "section": "Block quotes" }, { "markdown": "> bar\nbaz\n> foo\n", "html": "<blockquote>\n<p>bar\nbaz\nfoo</p>\n</blockquote>\n", "example": 203, "start_line": 3420, "end_line": 3430, "section": "Block quotes" }, { "markdown": "> foo\n---\n", "html": "<blockquote>\n<p>foo</p>\n</blockquote>\n<hr />\n", "example": 204, "start_line": 3444, "end_line": 3452, "section": "Block quotes" }, { "markdown": "> - foo\n- bar\n", "html": "<blockquote>\n<ul>\n<li>foo</li>\n</ul>\n</blockquote>\n<ul>\n<li>bar</li>\n</ul>\n", "example": 205, "start_line": 3464, "end_line": 3476, "section": "Block quotes" }, { "markdown": "> foo\n bar\n", "html": "<blockquote>\n<pre><code>foo\n</code></pre>\n</blockquote>\n<pre><code>bar\n</code></pre>\n", "example": 206, "start_line": 3482, "end_line": 3492, "section": "Block quotes" }, { "markdown": "> ```\nfoo\n```\n", "html": "<blockquote>\n<pre><code></code></pre>\n</blockquote>\n<p>foo</p>\n<pre><code></code></pre>\n", "example": 207, "start_line": 3495, "end_line": 3505, "section": "Block quotes" }, { "markdown": "> foo\n - bar\n", "html": "<blockquote>\n<p>foo\n- bar</p>\n</blockquote>\n", "example": 208, "start_line": 3511, "end_line": 3519, "section": "Block quotes" }, { "markdown": ">\n", "html": "<blockquote>\n</blockquote>\n", "example": 209, "start_line": 3535, "end_line": 3540, "section": "Block quotes" }, { "markdown": ">\n> \n> \n", "html": "<blockquote>\n</blockquote>\n", "example": 210, "start_line": 3543, "end_line": 3550, "section": "Block quotes" }, { "markdown": ">\n> foo\n> \n", "html": "<blockquote>\n<p>foo</p>\n</blockquote>\n", "example": 211, "start_line": 3555, "end_line": 3563, "section": "Block quotes" }, { "markdown": "> foo\n\n> bar\n", "html": "<blockquote>\n<p>foo</p>\n</blockquote>\n<blockquote>\n<p>bar</p>\n</blockquote>\n", "example": 212, "start_line": 3568, "end_line": 3579, "section": "Block quotes" }, { "markdown": "> foo\n> bar\n", "html": "<blockquote>\n<p>foo\nbar</p>\n</blockquote>\n", "example": 213, "start_line": 3590, "end_line": 3598, "section": "Block quotes" }, { "markdown": "> foo\n>\n> bar\n", "html": "<blockquote>\n<p>foo</p>\n<p>bar</p>\n</blockquote>\n", "example": 214, "start_line": 3603, "end_line": 3612, "section": "Block quotes" }, { "markdown": "foo\n> bar\n", "html": "<p>foo</p>\n<blockquote>\n<p>bar</p>\n</blockquote>\n", "example": 215, "start_line": 3617, "end_line": 3625, "section": "Block quotes" }, { "markdown": "> aaa\n***\n> bbb\n", "html": "<blockquote>\n<p>aaa</p>\n</blockquote>\n<hr />\n<blockquote>\n<p>bbb</p>\n</blockquote>\n", "example": 216, "start_line": 3631, "end_line": 3643, "section": "Block quotes" }, { "markdown": "> bar\nbaz\n", "html": "<blockquote>\n<p>bar\nbaz</p>\n</blockquote>\n", "example": 217, "start_line": 3649, "end_line": 3657, "section": "Block quotes" }, { "markdown": "> bar\n\nbaz\n", "html": "<blockquote>\n<p>bar</p>\n</blockquote>\n<p>baz</p>\n", "example": 218, "start_line": 3660, "end_line": 3669, "section": "Block quotes" }, { "markdown": "> bar\n>\nbaz\n", "html": "<blockquote>\n<p>bar</p>\n</blockquote>\n<p>baz</p>\n", "example": 219, "start_line": 3672, "end_line": 3681, "section": "Block quotes" }, { "markdown": "> > > foo\nbar\n", "html": "<blockquote>\n<blockquote>\n<blockquote>\n<p>foo\nbar</p>\n</blockquote>\n</blockquote>\n</blockquote>\n", "example": 220, "start_line": 3688, "end_line": 3700, "section": "Block quotes" }, { "markdown": ">>> foo\n> bar\n>>baz\n", "html": "<blockquote>\n<blockquote>\n<blockquote>\n<p>foo\nbar\nbaz</p>\n</blockquote>\n</blockquote>\n</blockquote>\n", "example": 221, "start_line": 3703, "end_line": 3717, "section": "Block quotes" }, { "markdown": "> code\n\n> not code\n", "html": "<blockquote>\n<pre><code>code\n</code></pre>\n</blockquote>\n<blockquote>\n<p>not code</p>\n</blockquote>\n", "example": 222, "start_line": 3725, "end_line": 3737, "section": "Block quotes" }, { "markdown": "A paragraph\nwith two lines.\n\n indented code\n\n> A block quote.\n", "html": "<p>A paragraph\nwith two lines.</p>\n<pre><code>indented code\n</code></pre>\n<blockquote>\n<p>A block quote.</p>\n</blockquote>\n", "example": 223, "start_line": 3779, "end_line": 3794, "section": "List items" }, { "markdown": "1. A paragraph\n with two lines.\n\n indented code\n\n > A block quote.\n", "html": "<ol>\n<li>\n<p>A paragraph\nwith two lines.</p>\n<pre><code>indented code\n</code></pre>\n<blockquote>\n<p>A block quote.</p>\n</blockquote>\n</li>\n</ol>\n", "example": 224, "start_line": 3801, "end_line": 3820, "section": "List items" }, { "markdown": "- one\n\n two\n", "html": "<ul>\n<li>one</li>\n</ul>\n<p>two</p>\n", "example": 225, "start_line": 3834, "end_line": 3843, "section": "List items" }, { "markdown": "- one\n\n two\n", "html": "<ul>\n<li>\n<p>one</p>\n<p>two</p>\n</li>\n</ul>\n", "example": 226, "start_line": 3846, "end_line": 3857, "section": "List items" }, { "markdown": " - one\n\n two\n", "html": "<ul>\n<li>one</li>\n</ul>\n<pre><code> two\n</code></pre>\n", "example": 227, "start_line": 3860, "end_line": 3870, "section": "List items" }, { "markdown": " - one\n\n two\n", "html": "<ul>\n<li>\n<p>one</p>\n<p>two</p>\n</li>\n</ul>\n", "example": 228, "start_line": 3873, "end_line": 3884, "section": "List items" }, { "markdown": " > > 1. one\n>>\n>> two\n", "html": "<blockquote>\n<blockquote>\n<ol>\n<li>\n<p>one</p>\n<p>two</p>\n</li>\n</ol>\n</blockquote>\n</blockquote>\n", "example": 229, "start_line": 3895, "end_line": 3910, "section": "List items" }, { "markdown": ">>- one\n>>\n > > two\n", "html": "<blockquote>\n<blockquote>\n<ul>\n<li>one</li>\n</ul>\n<p>two</p>\n</blockquote>\n</blockquote>\n", "example": 230, "start_line": 3922, "end_line": 3935, "section": "List items" }, { "markdown": "-one\n\n2.two\n", "html": "<p>-one</p>\n<p>2.two</p>\n", "example": 231, "start_line": 3941, "end_line": 3948, "section": "List items" }, { "markdown": "- foo\n\n\n bar\n", "html": "<ul>\n<li>\n<p>foo</p>\n<p>bar</p>\n</li>\n</ul>\n", "example": 232, "start_line": 3954, "end_line": 3966, "section": "List items" }, { "markdown": "1. foo\n\n ```\n bar\n ```\n\n baz\n\n > bam\n", "html": "<ol>\n<li>\n<p>foo</p>\n<pre><code>bar\n</code></pre>\n<p>baz</p>\n<blockquote>\n<p>bam</p>\n</blockquote>\n</li>\n</ol>\n", "example": 233, "start_line": 3971, "end_line": 3993, "section": "List items" }, { "markdown": "- Foo\n\n bar\n\n\n baz\n", "html": "<ul>\n<li>\n<p>Foo</p>\n<pre><code>bar\n\n\nbaz\n</code></pre>\n</li>\n</ul>\n", "example": 234, "start_line": 3999, "end_line": 4017, "section": "List items" }, { "markdown": "123456789. ok\n", "html": "<ol start=\"123456789\">\n<li>ok</li>\n</ol>\n", "example": 235, "start_line": 4021, "end_line": 4027, "section": "List items" }, { "markdown": "1234567890. not ok\n", "html": "<p>1234567890. not ok</p>\n", "example": 236, "start_line": 4030, "end_line": 4034, "section": "List items" }, { "markdown": "0. ok\n", "html": "<ol start=\"0\">\n<li>ok</li>\n</ol>\n", "example": 237, "start_line": 4039, "end_line": 4045, "section": "List items" }, { "markdown": "003. ok\n", "html": "<ol start=\"3\">\n<li>ok</li>\n</ol>\n", "example": 238, "start_line": 4048, "end_line": 4054, "section": "List items" }, { "markdown": "-1. not ok\n", "html": "<p>-1. not ok</p>\n", "example": 239, "start_line": 4059, "end_line": 4063, "section": "List items" }, { "markdown": "- foo\n\n bar\n", "html": "<ul>\n<li>\n<p>foo</p>\n<pre><code>bar\n</code></pre>\n</li>\n</ul>\n", "example": 240, "start_line": 4082, "end_line": 4094, "section": "List items" }, { "markdown": " 10. foo\n\n bar\n", "html": "<ol start=\"10\">\n<li>\n<p>foo</p>\n<pre><code>bar\n</code></pre>\n</li>\n</ol>\n", "example": 241, "start_line": 4099, "end_line": 4111, "section": "List items" }, { "markdown": " indented code\n\nparagraph\n\n more code\n", "html": "<pre><code>indented code\n</code></pre>\n<p>paragraph</p>\n<pre><code>more code\n</code></pre>\n", "example": 242, "start_line": 4118, "end_line": 4130, "section": "List items" }, { "markdown": "1. indented code\n\n paragraph\n\n more code\n", "html": "<ol>\n<li>\n<pre><code>indented code\n</code></pre>\n<p>paragraph</p>\n<pre><code>more code\n</code></pre>\n</li>\n</ol>\n", "example": 243, "start_line": 4133, "end_line": 4149, "section": "List items" }, { "markdown": "1. indented code\n\n paragraph\n\n more code\n", "html": "<ol>\n<li>\n<pre><code> indented code\n</code></pre>\n<p>paragraph</p>\n<pre><code>more code\n</code></pre>\n</li>\n</ol>\n", "example": 244, "start_line": 4155, "end_line": 4171, "section": "List items" }, { "markdown": " foo\n\nbar\n", "html": "<p>foo</p>\n<p>bar</p>\n", "example": 245, "start_line": 4182, "end_line": 4189, "section": "List items" }, { "markdown": "- foo\n\n bar\n", "html": "<ul>\n<li>foo</li>\n</ul>\n<p>bar</p>\n", "example": 246, "start_line": 4192, "end_line": 4201, "section": "List items" }, { "markdown": "- foo\n\n bar\n", "html": "<ul>\n<li>\n<p>foo</p>\n<p>bar</p>\n</li>\n</ul>\n", "example": 247, "start_line": 4209, "end_line": 4220, "section": "List items" }, { "markdown": "-\n foo\n-\n ```\n bar\n ```\n-\n baz\n", "html": "<ul>\n<li>foo</li>\n<li>\n<pre><code>bar\n</code></pre>\n</li>\n<li>\n<pre><code>baz\n</code></pre>\n</li>\n</ul>\n", "example": 248, "start_line": 4237, "end_line": 4258, "section": "List items" }, { "markdown": "- \n foo\n", "html": "<ul>\n<li>foo</li>\n</ul>\n", "example": 249, "start_line": 4263, "end_line": 4270, "section": "List items" }, { "markdown": "-\n\n foo\n", "html": "<ul>\n<li></li>\n</ul>\n<p>foo</p>\n", "example": 250, "start_line": 4277, "end_line": 4286, "section": "List items" }, { "markdown": "- foo\n-\n- bar\n", "html": "<ul>\n<li>foo</li>\n<li></li>\n<li>bar</li>\n</ul>\n", "example": 251, "start_line": 4291, "end_line": 4301, "section": "List items" }, { "markdown": "- foo\n- \n- bar\n", "html": "<ul>\n<li>foo</li>\n<li></li>\n<li>bar</li>\n</ul>\n", "example": 252, "start_line": 4306, "end_line": 4316, "section": "List items" }, { "markdown": "1. foo\n2.\n3. bar\n", "html": "<ol>\n<li>foo</li>\n<li></li>\n<li>bar</li>\n</ol>\n", "example": 253, "start_line": 4321, "end_line": 4331, "section": "List items" }, { "markdown": "*\n", "html": "<ul>\n<li></li>\n</ul>\n", "example": 254, "start_line": 4336, "end_line": 4342, "section": "List items" }, { "markdown": "foo\n*\n\nfoo\n1.\n", "html": "<p>foo\n*</p>\n<p>foo\n1.</p>\n", "example": 255, "start_line": 4346, "end_line": 4357, "section": "List items" }, { "markdown": " 1. A paragraph\n with two lines.\n\n indented code\n\n > A block quote.\n", "html": "<ol>\n<li>\n<p>A paragraph\nwith two lines.</p>\n<pre><code>indented code\n</code></pre>\n<blockquote>\n<p>A block quote.</p>\n</blockquote>\n</li>\n</ol>\n", "example": 256, "start_line": 4368, "end_line": 4387, "section": "List items" }, { "markdown": " 1. A paragraph\n with two lines.\n\n indented code\n\n > A block quote.\n", "html": "<ol>\n<li>\n<p>A paragraph\nwith two lines.</p>\n<pre><code>indented code\n</code></pre>\n<blockquote>\n<p>A block quote.</p>\n</blockquote>\n</li>\n</ol>\n", "example": 257, "start_line": 4392, "end_line": 4411, "section": "List items" }, { "markdown": " 1. A paragraph\n with two lines.\n\n indented code\n\n > A block quote.\n", "html": "<ol>\n<li>\n<p>A paragraph\nwith two lines.</p>\n<pre><code>indented code\n</code></pre>\n<blockquote>\n<p>A block quote.</p>\n</blockquote>\n</li>\n</ol>\n", "example": 258, "start_line": 4416, "end_line": 4435, "section": "List items" }, { "markdown": " 1. A paragraph\n with two lines.\n\n indented code\n\n > A block quote.\n", "html": "<pre><code>1. A paragraph\n with two lines.\n\n indented code\n\n > A block quote.\n</code></pre>\n", "example": 259, "start_line": 4440, "end_line": 4455, "section": "List items" }, { "markdown": " 1. A paragraph\nwith two lines.\n\n indented code\n\n > A block quote.\n", "html": "<ol>\n<li>\n<p>A paragraph\nwith two lines.</p>\n<pre><code>indented code\n</code></pre>\n<blockquote>\n<p>A block quote.</p>\n</blockquote>\n</li>\n</ol>\n", "example": 260, "start_line": 4470, "end_line": 4489, "section": "List items" }, { "markdown": " 1. A paragraph\n with two lines.\n", "html": "<ol>\n<li>A paragraph\nwith two lines.</li>\n</ol>\n", "example": 261, "start_line": 4494, "end_line": 4502, "section": "List items" }, { "markdown": "> 1. > Blockquote\ncontinued here.\n", "html": "<blockquote>\n<ol>\n<li>\n<blockquote>\n<p>Blockquote\ncontinued here.</p>\n</blockquote>\n</li>\n</ol>\n</blockquote>\n", "example": 262, "start_line": 4507, "end_line": 4521, "section": "List items" }, { "markdown": "> 1. > Blockquote\n> continued here.\n", "html": "<blockquote>\n<ol>\n<li>\n<blockquote>\n<p>Blockquote\ncontinued here.</p>\n</blockquote>\n</li>\n</ol>\n</blockquote>\n", "example": 263, "start_line": 4524, "end_line": 4538, "section": "List items" }, { "markdown": "- foo\n - bar\n - baz\n - boo\n", "html": "<ul>\n<li>foo\n<ul>\n<li>bar\n<ul>\n<li>baz\n<ul>\n<li>boo</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n", "example": 264, "start_line": 4552, "end_line": 4573, "section": "List items" }, { "markdown": "- foo\n - bar\n - baz\n - boo\n", "html": "<ul>\n<li>foo</li>\n<li>bar</li>\n<li>baz</li>\n<li>boo</li>\n</ul>\n", "example": 265, "start_line": 4578, "end_line": 4590, "section": "List items" }, { "markdown": "10) foo\n - bar\n", "html": "<ol start=\"10\">\n<li>foo\n<ul>\n<li>bar</li>\n</ul>\n</li>\n</ol>\n", "example": 266, "start_line": 4595, "end_line": 4606, "section": "List items" }, { "markdown": "10) foo\n - bar\n", "html": "<ol start=\"10\">\n<li>foo</li>\n</ol>\n<ul>\n<li>bar</li>\n</ul>\n", "example": 267, "start_line": 4611, "end_line": 4621, "section": "List items" }, { "markdown": "- - foo\n", "html": "<ul>\n<li>\n<ul>\n<li>foo</li>\n</ul>\n</li>\n</ul>\n", "example": 268, "start_line": 4626, "end_line": 4636, "section": "List items" }, { "markdown": "1. - 2. foo\n", "html": "<ol>\n<li>\n<ul>\n<li>\n<ol start=\"2\">\n<li>foo</li>\n</ol>\n</li>\n</ul>\n</li>\n</ol>\n", "example": 269, "start_line": 4639, "end_line": 4653, "section": "List items" }, { "markdown": "- # Foo\n- Bar\n ---\n baz\n", "html": "<ul>\n<li>\n<h1>Foo</h1>\n</li>\n<li>\n<h2>Bar</h2>\nbaz</li>\n</ul>\n", "example": 270, "start_line": 4658, "end_line": 4672, "section": "List items" }, { "markdown": "- foo\n- bar\n+ baz\n", "html": "<ul>\n<li>foo</li>\n<li>bar</li>\n</ul>\n<ul>\n<li>baz</li>\n</ul>\n", "example": 271, "start_line": 4894, "end_line": 4906, "section": "Lists" }, { "markdown": "1. foo\n2. bar\n3) baz\n", "html": "<ol>\n<li>foo</li>\n<li>bar</li>\n</ol>\n<ol start=\"3\">\n<li>baz</li>\n</ol>\n", "example": 272, "start_line": 4909, "end_line": 4921, "section": "Lists" }, { "markdown": "Foo\n- bar\n- baz\n", "html": "<p>Foo</p>\n<ul>\n<li>bar</li>\n<li>baz</li>\n</ul>\n", "example": 273, "start_line": 4928, "end_line": 4938, "section": "Lists" }, { "markdown": "The number of windows in my house is\n14. The number of doors is 6.\n", "html": "<p>The number of windows in my house is\n14. The number of doors is 6.</p>\n", "example": 274, "start_line": 5005, "end_line": 5011, "section": "Lists" }, { "markdown": "The number of windows in my house is\n1. The number of doors is 6.\n", "html": "<p>The number of windows in my house is</p>\n<ol>\n<li>The number of doors is 6.</li>\n</ol>\n", "example": 275, "start_line": 5015, "end_line": 5023, "section": "Lists" }, { "markdown": "- foo\n\n- bar\n\n\n- baz\n", "html": "<ul>\n<li>\n<p>foo</p>\n</li>\n<li>\n<p>bar</p>\n</li>\n<li>\n<p>baz</p>\n</li>\n</ul>\n", "example": 276, "start_line": 5029, "end_line": 5048, "section": "Lists" }, { "markdown": "- foo\n - bar\n - baz\n\n\n bim\n", "html": "<ul>\n<li>foo\n<ul>\n<li>bar\n<ul>\n<li>\n<p>baz</p>\n<p>bim</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n", "example": 277, "start_line": 5050, "end_line": 5072, "section": "Lists" }, { "markdown": "- foo\n- bar\n\n<!-- -->\n\n- baz\n- bim\n", "html": "<ul>\n<li>foo</li>\n<li>bar</li>\n</ul>\n<!-- -->\n<ul>\n<li>baz</li>\n<li>bim</li>\n</ul>\n", "example": 278, "start_line": 5080, "end_line": 5098, "section": "Lists" }, { "markdown": "- foo\n\n notcode\n\n- foo\n\n<!-- -->\n\n code\n", "html": "<ul>\n<li>\n<p>foo</p>\n<p>notcode</p>\n</li>\n<li>\n<p>foo</p>\n</li>\n</ul>\n<!-- -->\n<pre><code>code\n</code></pre>\n", "example": 279, "start_line": 5101, "end_line": 5124, "section": "Lists" }, { "markdown": "- a\n - b\n - c\n - d\n - e\n - f\n- g\n", "html": "<ul>\n<li>a</li>\n<li>b</li>\n<li>c</li>\n<li>d</li>\n<li>e</li>\n<li>f</li>\n<li>g</li>\n</ul>\n", "example": 280, "start_line": 5132, "end_line": 5150, "section": "Lists" }, { "markdown": "1. a\n\n 2. b\n\n 3. c\n", "html": "<ol>\n<li>\n<p>a</p>\n</li>\n<li>\n<p>b</p>\n</li>\n<li>\n<p>c</p>\n</li>\n</ol>\n", "example": 281, "start_line": 5153, "end_line": 5171, "section": "Lists" }, { "markdown": "- a\n - b\n - c\n - d\n - e\n", "html": "<ul>\n<li>a</li>\n<li>b</li>\n<li>c</li>\n<li>d\n- e</li>\n</ul>\n", "example": 282, "start_line": 5177, "end_line": 5191, "section": "Lists" }, { "markdown": "1. a\n\n 2. b\n\n 3. c\n", "html": "<ol>\n<li>\n<p>a</p>\n</li>\n<li>\n<p>b</p>\n</li>\n</ol>\n<pre><code>3. c\n</code></pre>\n", "example": 283, "start_line": 5197, "end_line": 5214, "section": "Lists" }, { "markdown": "- a\n- b\n\n- c\n", "html": "<ul>\n<li>\n<p>a</p>\n</li>\n<li>\n<p>b</p>\n</li>\n<li>\n<p>c</p>\n</li>\n</ul>\n", "example": 284, "start_line": 5220, "end_line": 5237, "section": "Lists" }, { "markdown": "* a\n*\n\n* c\n", "html": "<ul>\n<li>\n<p>a</p>\n</li>\n<li></li>\n<li>\n<p>c</p>\n</li>\n</ul>\n", "example": 285, "start_line": 5242, "end_line": 5257, "section": "Lists" }, { "markdown": "- a\n- b\n\n c\n- d\n", "html": "<ul>\n<li>\n<p>a</p>\n</li>\n<li>\n<p>b</p>\n<p>c</p>\n</li>\n<li>\n<p>d</p>\n</li>\n</ul>\n", "example": 286, "start_line": 5264, "end_line": 5283, "section": "Lists" }, { "markdown": "- a\n- b\n\n [ref]: /url\n- d\n", "html": "<ul>\n<li>\n<p>a</p>\n</li>\n<li>\n<p>b</p>\n</li>\n<li>\n<p>d</p>\n</li>\n</ul>\n", "example": 287, "start_line": 5286, "end_line": 5304, "section": "Lists" }, { "markdown": "- a\n- ```\n b\n\n\n ```\n- c\n", "html": "<ul>\n<li>a</li>\n<li>\n<pre><code>b\n\n\n</code></pre>\n</li>\n<li>c</li>\n</ul>\n", "example": 288, "start_line": 5309, "end_line": 5328, "section": "Lists" }, { "markdown": "- a\n - b\n\n c\n- d\n", "html": "<ul>\n<li>a\n<ul>\n<li>\n<p>b</p>\n<p>c</p>\n</li>\n</ul>\n</li>\n<li>d</li>\n</ul>\n", "example": 289, "start_line": 5335, "end_line": 5353, "section": "Lists" }, { "markdown": "* a\n > b\n >\n* c\n", "html": "<ul>\n<li>a\n<blockquote>\n<p>b</p>\n</blockquote>\n</li>\n<li>c</li>\n</ul>\n", "example": 290, "start_line": 5359, "end_line": 5373, "section": "Lists" }, { "markdown": "- a\n > b\n ```\n c\n ```\n- d\n", "html": "<ul>\n<li>a\n<blockquote>\n<p>b</p>\n</blockquote>\n<pre><code>c\n</code></pre>\n</li>\n<li>d</li>\n</ul>\n", "example": 291, "start_line": 5379, "end_line": 5397, "section": "Lists" }, { "markdown": "- a\n", "html": "<ul>\n<li>a</li>\n</ul>\n", "example": 292, "start_line": 5402, "end_line": 5408, "section": "Lists" }, { "markdown": "- a\n - b\n", "html": "<ul>\n<li>a\n<ul>\n<li>b</li>\n</ul>\n</li>\n</ul>\n", "example": 293, "start_line": 5411, "end_line": 5422, "section": "Lists" }, { "markdown": "1. ```\n foo\n ```\n\n bar\n", "html": "<ol>\n<li>\n<pre><code>foo\n</code></pre>\n<p>bar</p>\n</li>\n</ol>\n", "example": 294, "start_line": 5428, "end_line": 5442, "section": "Lists" }, { "markdown": "* foo\n * bar\n\n baz\n", "html": "<ul>\n<li>\n<p>foo</p>\n<ul>\n<li>bar</li>\n</ul>\n<p>baz</p>\n</li>\n</ul>\n", "example": 295, "start_line": 5447, "end_line": 5462, "section": "Lists" }, { "markdown": "- a\n - b\n - c\n\n- d\n - e\n - f\n", "html": "<ul>\n<li>\n<p>a</p>\n<ul>\n<li>b</li>\n<li>c</li>\n</ul>\n</li>\n<li>\n<p>d</p>\n<ul>\n<li>e</li>\n<li>f</li>\n</ul>\n</li>\n</ul>\n", "example": 296, "start_line": 5465, "end_line": 5490, "section": "Lists" }, { "markdown": "`hi`lo`\n", "html": "<p><code>hi</code>lo`</p>\n", "example": 297, "start_line": 5499, "end_line": 5503, "section": "Inlines" }, { "markdown": "\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\-\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\\\\\]\\^\\_\\`\\{\\|\\}\\~\n", "html": "<p>!"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~</p>\n", "example": 298, "start_line": 5513, "end_line": 5517, "section": "Backslash escapes" }, { "markdown": "\\\t\\A\\a\\ \\3\\Ο†\\Β«\n", "html": "<p>\\\t\\A\\a\\ \\3\\Ο†\\Β«</p>\n", "example": 299, "start_line": 5523, "end_line": 5527, "section": "Backslash escapes" }, { "markdown": "\\*not emphasized*\n\\<br/> not a tag\n\\[not a link](/foo)\n\\`not code`\n1\\. not a list\n\\* not a list\n\\# not a heading\n\\[foo]: /url \"not a reference\"\n\\ö not a character entity\n", "html": "<p>*not emphasized*\n<br/> not a tag\n[not a link](/foo)\n`not code`\n1. not a list\n* not a list\n# not a heading\n[foo]: /url "not a reference"\n&ouml; not a character entity</p>\n", "example": 300, "start_line": 5533, "end_line": 5553, "section": "Backslash escapes" }, { "markdown": "\\\\*emphasis*\n", "html": "<p>\\<em>emphasis</em></p>\n", "example": 301, "start_line": 5558, "end_line": 5562, "section": "Backslash escapes" }, { "markdown": "foo\\\nbar\n", "html": "<p>foo<br />\nbar</p>\n", "example": 302, "start_line": 5567, "end_line": 5573, "section": "Backslash escapes" }, { "markdown": "`` \\[\\` ``\n", "html": "<p><code>\\[\\`</code></p>\n", "example": 303, "start_line": 5579, "end_line": 5583, "section": "Backslash escapes" }, { "markdown": " \\[\\]\n", "html": "<pre><code>\\[\\]\n</code></pre>\n", "example": 304, "start_line": 5586, "end_line": 5591, "section": "Backslash escapes" }, { "markdown": "~~~\n\\[\\]\n~~~\n", "html": "<pre><code>\\[\\]\n</code></pre>\n", "example": 305, "start_line": 5594, "end_line": 5601, "section": "Backslash escapes" }, { "markdown": "<http://example.com?find=\\*>\n", "html": "<p><a href=\"http://example.com?find=%5C*\">http://example.com?find=\\*</a></p>\n", "example": 306, "start_line": 5604, "end_line": 5608, "section": "Backslash escapes" }, { "markdown": "<a href=\"/bar\\/)\">\n", "html": "<a href=\"/bar\\/)\">\n", "example": 307, "start_line": 5611, "end_line": 5615, "section": "Backslash escapes" }, { "markdown": "[foo](/bar\\* \"ti\\*tle\")\n", "html": "<p><a href=\"/bar*\" title=\"ti*tle\">foo</a></p>\n", "example": 308, "start_line": 5621, "end_line": 5625, "section": "Backslash escapes" }, { "markdown": "[foo]\n\n[foo]: /bar\\* \"ti\\*tle\"\n", "html": "<p><a href=\"/bar*\" title=\"ti*tle\">foo</a></p>\n", "example": 309, "start_line": 5628, "end_line": 5634, "section": "Backslash escapes" }, { "markdown": "``` foo\\+bar\nfoo\n```\n", "html": "<pre><code class=\"language-foo+bar\">foo\n</code></pre>\n", "example": 310, "start_line": 5637, "end_line": 5644, "section": "Backslash escapes" }, { "markdown": "  & © Æ Ď\n¾ ℋ ⅆ\n∲ ≧̸\n", "html": "<p>Β  & Β© Γ† Ď\nΒΎ β„‹ β…†\n∲ ≧̸</p>\n", "example": 311, "start_line": 5674, "end_line": 5682, "section": "Entity and numeric character references" }, { "markdown": "# Ӓ Ϡ �\n", "html": "<p># Σ’ Ο  οΏ½</p>\n", "example": 312, "start_line": 5693, "end_line": 5697, "section": "Entity and numeric character references" }, { "markdown": "" ആ ಫ\n", "html": "<p>" ആ ಫ</p>\n", "example": 313, "start_line": 5706, "end_line": 5710, "section": "Entity and numeric character references" }, { "markdown": "  &x; &#; &#x;\n�\n&#abcdef0;\n&ThisIsNotDefined; &hi?;\n", "html": "<p>&nbsp &x; &#; &#x;\n&#987654321;\n&#abcdef0;\n&ThisIsNotDefined; &hi?;</p>\n", "example": 314, "start_line": 5715, "end_line": 5725, "section": "Entity and numeric character references" }, { "markdown": "©\n", "html": "<p>&copy</p>\n", "example": 315, "start_line": 5732, "end_line": 5736, "section": "Entity and numeric character references" }, { "markdown": "&MadeUpEntity;\n", "html": "<p>&MadeUpEntity;</p>\n", "example": 316, "start_line": 5742, "end_line": 5746, "section": "Entity and numeric character references" }, { "markdown": "<a href=\"öö.html\">\n", "html": "<a href=\"öö.html\">\n", "example": 317, "start_line": 5753, "end_line": 5757, "section": "Entity and numeric character references" }, { "markdown": "[foo](/föö \"föö\")\n", "html": "<p><a href=\"/f%C3%B6%C3%B6\" title=\"fΓΆΓΆ\">foo</a></p>\n", "example": 318, "start_line": 5760, "end_line": 5764, "section": "Entity and numeric character references" }, { "markdown": "[foo]\n\n[foo]: /föö \"föö\"\n", "html": "<p><a href=\"/f%C3%B6%C3%B6\" title=\"fΓΆΓΆ\">foo</a></p>\n", "example": 319, "start_line": 5767, "end_line": 5773, "section": "Entity and numeric character references" }, { "markdown": "``` föö\nfoo\n```\n", "html": "<pre><code class=\"language-fΓΆΓΆ\">foo\n</code></pre>\n", "example": 320, "start_line": 5776, "end_line": 5783, "section": "Entity and numeric character references" }, { "markdown": "`föö`\n", "html": "<p><code>f&ouml;&ouml;</code></p>\n", "example": 321, "start_line": 5789, "end_line": 5793, "section": "Entity and numeric character references" }, { "markdown": " föfö\n", "html": "<pre><code>f&ouml;f&ouml;\n</code></pre>\n", "example": 322, "start_line": 5796, "end_line": 5801, "section": "Entity and numeric character references" }, { "markdown": "*foo*\n*foo*\n", "html": "<p>*foo*\n<em>foo</em></p>\n", "example": 323, "start_line": 5808, "end_line": 5814, "section": "Entity and numeric character references" }, { "markdown": "* foo\n\n* foo\n", "html": "<p>* foo</p>\n<ul>\n<li>foo</li>\n</ul>\n", "example": 324, "start_line": 5816, "end_line": 5825, "section": "Entity and numeric character references" }, { "markdown": "foo bar\n", "html": "<p>foo\n\nbar</p>\n", "example": 325, "start_line": 5827, "end_line": 5833, "section": "Entity and numeric character references" }, { "markdown": " foo\n", "html": "<p>\tfoo</p>\n", "example": 326, "start_line": 5835, "end_line": 5839, "section": "Entity and numeric character references" }, { "markdown": "[a](url "tit")\n", "html": "<p>[a](url "tit")</p>\n", "example": 327, "start_line": 5842, "end_line": 5846, "section": "Entity and numeric character references" }, { "markdown": "`foo`\n", "html": "<p><code>foo</code></p>\n", "example": 328, "start_line": 5870, "end_line": 5874, "section": "Code spans" }, { "markdown": "`` foo ` bar ``\n", "html": "<p><code>foo ` bar</code></p>\n", "example": 329, "start_line": 5881, "end_line": 5885, "section": "Code spans" }, { "markdown": "` `` `\n", "html": "<p><code>``</code></p>\n", "example": 330, "start_line": 5891, "end_line": 5895, "section": "Code spans" }, { "markdown": "` `` `\n", "html": "<p><code> `` </code></p>\n", "example": 331, "start_line": 5899, "end_line": 5903, "section": "Code spans" }, { "markdown": "` a`\n", "html": "<p><code> a</code></p>\n", "example": 332, "start_line": 5908, "end_line": 5912, "section": "Code spans" }, { "markdown": "`Β bΒ `\n", "html": "<p><code>Β bΒ </code></p>\n", "example": 333, "start_line": 5917, "end_line": 5921, "section": "Code spans" }, { "markdown": "`Β `\n` `\n", "html": "<p><code>Β </code>\n<code> </code></p>\n", "example": 334, "start_line": 5925, "end_line": 5931, "section": "Code spans" }, { "markdown": "``\nfoo\nbar \nbaz\n``\n", "html": "<p><code>foo bar baz</code></p>\n", "example": 335, "start_line": 5936, "end_line": 5944, "section": "Code spans" }, { "markdown": "``\nfoo \n``\n", "html": "<p><code>foo </code></p>\n", "example": 336, "start_line": 5946, "end_line": 5952, "section": "Code spans" }, { "markdown": "`foo bar \nbaz`\n", "html": "<p><code>foo bar baz</code></p>\n", "example": 337, "start_line": 5957, "end_line": 5962, "section": "Code spans" }, { "markdown": "`foo\\`bar`\n", "html": "<p><code>foo\\</code>bar`</p>\n", "example": 338, "start_line": 5974, "end_line": 5978, "section": "Code spans" }, { "markdown": "``foo`bar``\n", "html": "<p><code>foo`bar</code></p>\n", "example": 339, "start_line": 5985, "end_line": 5989, "section": "Code spans" }, { "markdown": "` foo `` bar `\n", "html": "<p><code>foo `` bar</code></p>\n", "example": 340, "start_line": 5991, "end_line": 5995, "section": "Code spans" }, { "markdown": "*foo`*`\n", "html": "<p>*foo<code>*</code></p>\n", "example": 341, "start_line": 6003, "end_line": 6007, "section": "Code spans" }, { "markdown": "[not a `link](/foo`)\n", "html": "<p>[not a <code>link](/foo</code>)</p>\n", "example": 342, "start_line": 6012, "end_line": 6016, "section": "Code spans" }, { "markdown": "`<a href=\"`\">`\n", "html": "<p><code><a href="</code>">`</p>\n", "example": 343, "start_line": 6022, "end_line": 6026, "section": "Code spans" }, { "markdown": "<a href=\"`\">`\n", "html": "<p><a href=\"`\">`</p>\n", "example": 344, "start_line": 6031, "end_line": 6035, "section": "Code spans" }, { "markdown": "`<http://foo.bar.`baz>`\n", "html": "<p><code><http://foo.bar.</code>baz>`</p>\n", "example": 345, "start_line": 6040, "end_line": 6044, "section": "Code spans" }, { "markdown": "<http://foo.bar.`baz>`\n", "html": "<p><a href=\"http://foo.bar.%60baz\">http://foo.bar.`baz</a>`</p>\n", "example": 346, "start_line": 6049, "end_line": 6053, "section": "Code spans" }, { "markdown": "```foo``\n", "html": "<p>```foo``</p>\n", "example": 347, "start_line": 6059, "end_line": 6063, "section": "Code spans" }, { "markdown": "`foo\n", "html": "<p>`foo</p>\n", "example": 348, "start_line": 6066, "end_line": 6070, "section": "Code spans" }, { "markdown": "`foo``bar``\n", "html": "<p>`foo<code>bar</code></p>\n", "example": 349, "start_line": 6075, "end_line": 6079, "section": "Code spans" }, { "markdown": "*foo bar*\n", "html": "<p><em>foo bar</em></p>\n", "example": 350, "start_line": 6292, "end_line": 6296, "section": "Emphasis and strong emphasis" }, { "markdown": "a * foo bar*\n", "html": "<p>a * foo bar*</p>\n", "example": 351, "start_line": 6302, "end_line": 6306, "section": "Emphasis and strong emphasis" }, { "markdown": "a*\"foo\"*\n", "html": "<p>a*"foo"*</p>\n", "example": 352, "start_line": 6313, "end_line": 6317, "section": "Emphasis and strong emphasis" }, { "markdown": "*Β aΒ *\n", "html": "<p>*Β aΒ *</p>\n", "example": 353, "start_line": 6322, "end_line": 6326, "section": "Emphasis and strong emphasis" }, { "markdown": "foo*bar*\n", "html": "<p>foo<em>bar</em></p>\n", "example": 354, "start_line": 6331, "end_line": 6335, "section": "Emphasis and strong emphasis" }, { "markdown": "5*6*78\n", "html": "<p>5<em>6</em>78</p>\n", "example": 355, "start_line": 6338, "end_line": 6342, "section": "Emphasis and strong emphasis" }, { "markdown": "_foo bar_\n", "html": "<p><em>foo bar</em></p>\n", "example": 356, "start_line": 6347, "end_line": 6351, "section": "Emphasis and strong emphasis" }, { "markdown": "_ foo bar_\n", "html": "<p>_ foo bar_</p>\n", "example": 357, "start_line": 6357, "end_line": 6361, "section": "Emphasis and strong emphasis" }, { "markdown": "a_\"foo\"_\n", "html": "<p>a_"foo"_</p>\n", "example": 358, "start_line": 6367, "end_line": 6371, "section": "Emphasis and strong emphasis" }, { "markdown": "foo_bar_\n", "html": "<p>foo_bar_</p>\n", "example": 359, "start_line": 6376, "end_line": 6380, "section": "Emphasis and strong emphasis" }, { "markdown": "5_6_78\n", "html": "<p>5_6_78</p>\n", "example": 360, "start_line": 6383, "end_line": 6387, "section": "Emphasis and strong emphasis" }, { "markdown": "пристаням_стрСмятся_\n", "html": "<p>пристаням_стрСмятся_</p>\n", "example": 361, "start_line": 6390, "end_line": 6394, "section": "Emphasis and strong emphasis" }, { "markdown": "aa_\"bb\"_cc\n", "html": "<p>aa_"bb"_cc</p>\n", "example": 362, "start_line": 6400, "end_line": 6404, "section": "Emphasis and strong emphasis" }, { "markdown": "foo-_(bar)_\n", "html": "<p>foo-<em>(bar)</em></p>\n", "example": 363, "start_line": 6411, "end_line": 6415, "section": "Emphasis and strong emphasis" }, { "markdown": "_foo*\n", "html": "<p>_foo*</p>\n", "example": 364, "start_line": 6423, "end_line": 6427, "section": "Emphasis and strong emphasis" }, { "markdown": "*foo bar *\n", "html": "<p>*foo bar *</p>\n", "example": 365, "start_line": 6433, "end_line": 6437, "section": "Emphasis and strong emphasis" }, { "markdown": "*foo bar\n*\n", "html": "<p>*foo bar\n*</p>\n", "example": 366, "start_line": 6442, "end_line": 6448, "section": "Emphasis and strong emphasis" }, { "markdown": "*(*foo)\n", "html": "<p>*(*foo)</p>\n", "example": 367, "start_line": 6455, "end_line": 6459, "section": "Emphasis and strong emphasis" }, { "markdown": "*(*foo*)*\n", "html": "<p><em>(<em>foo</em>)</em></p>\n", "example": 368, "start_line": 6465, "end_line": 6469, "section": "Emphasis and strong emphasis" }, { "markdown": "*foo*bar\n", "html": "<p><em>foo</em>bar</p>\n", "example": 369, "start_line": 6474, "end_line": 6478, "section": "Emphasis and strong emphasis" }, { "markdown": "_foo bar _\n", "html": "<p>_foo bar _</p>\n", "example": 370, "start_line": 6487, "end_line": 6491, "section": "Emphasis and strong emphasis" }, { "markdown": "_(_foo)\n", "html": "<p>_(_foo)</p>\n", "example": 371, "start_line": 6497, "end_line": 6501, "section": "Emphasis and strong emphasis" }, { "markdown": "_(_foo_)_\n", "html": "<p><em>(<em>foo</em>)</em></p>\n", "example": 372, "start_line": 6506, "end_line": 6510, "section": "Emphasis and strong emphasis" }, { "markdown": "_foo_bar\n", "html": "<p>_foo_bar</p>\n", "example": 373, "start_line": 6515, "end_line": 6519, "section": "Emphasis and strong emphasis" }, { "markdown": "_пристаням_стрСмятся\n", "html": "<p>_пристаням_стрСмятся</p>\n", "example": 374, "start_line": 6522, "end_line": 6526, "section": "Emphasis and strong emphasis" }, { "markdown": "_foo_bar_baz_\n", "html": "<p><em>foo_bar_baz</em></p>\n", "example": 375, "start_line": 6529, "end_line": 6533, "section": "Emphasis and strong emphasis" }, { "markdown": "_(bar)_.\n", "html": "<p><em>(bar)</em>.</p>\n", "example": 376, "start_line": 6540, "end_line": 6544, "section": "Emphasis and strong emphasis" }, { "markdown": "**foo bar**\n", "html": "<p><strong>foo bar</strong></p>\n", "example": 377, "start_line": 6549, "end_line": 6553, "section": "Emphasis and strong emphasis" }, { "markdown": "** foo bar**\n", "html": "<p>** foo bar**</p>\n", "example": 378, "start_line": 6559, "end_line": 6563, "section": "Emphasis and strong emphasis" }, { "markdown": "a**\"foo\"**\n", "html": "<p>a**"foo"**</p>\n", "example": 379, "start_line": 6570, "end_line": 6574, "section": "Emphasis and strong emphasis" }, { "markdown": "foo**bar**\n", "html": "<p>foo<strong>bar</strong></p>\n", "example": 380, "start_line": 6579, "end_line": 6583, "section": "Emphasis and strong emphasis" }, { "markdown": "__foo bar__\n", "html": "<p><strong>foo bar</strong></p>\n", "example": 381, "start_line": 6588, "end_line": 6592, "section": "Emphasis and strong emphasis" }, { "markdown": "__ foo bar__\n", "html": "<p>__ foo bar__</p>\n", "example": 382, "start_line": 6598, "end_line": 6602, "section": "Emphasis and strong emphasis" }, { "markdown": "__\nfoo bar__\n", "html": "<p>__\nfoo bar__</p>\n", "example": 383, "start_line": 6606, "end_line": 6612, "section": "Emphasis and strong emphasis" }, { "markdown": "a__\"foo\"__\n", "html": "<p>a__"foo"__</p>\n", "example": 384, "start_line": 6618, "end_line": 6622, "section": "Emphasis and strong emphasis" }, { "markdown": "foo__bar__\n", "html": "<p>foo__bar__</p>\n", "example": 385, "start_line": 6627, "end_line": 6631, "section": "Emphasis and strong emphasis" }, { "markdown": "5__6__78\n", "html": "<p>5__6__78</p>\n", "example": 386, "start_line": 6634, "end_line": 6638, "section": "Emphasis and strong emphasis" }, { "markdown": "пристаням__стрСмятся__\n", "html": "<p>пристаням__стрСмятся__</p>\n", "example": 387, "start_line": 6641, "end_line": 6645, "section": "Emphasis and strong emphasis" }, { "markdown": "__foo, __bar__, baz__\n", "html": "<p><strong>foo, <strong>bar</strong>, baz</strong></p>\n", "example": 388, "start_line": 6648, "end_line": 6652, "section": "Emphasis and strong emphasis" }, { "markdown": "foo-__(bar)__\n", "html": "<p>foo-<strong>(bar)</strong></p>\n", "example": 389, "start_line": 6659, "end_line": 6663, "section": "Emphasis and strong emphasis" }, { "markdown": "**foo bar **\n", "html": "<p>**foo bar **</p>\n", "example": 390, "start_line": 6672, "end_line": 6676, "section": "Emphasis and strong emphasis" }, { "markdown": "**(**foo)\n", "html": "<p>**(**foo)</p>\n", "example": 391, "start_line": 6685, "end_line": 6689, "section": "Emphasis and strong emphasis" }, { "markdown": "*(**foo**)*\n", "html": "<p><em>(<strong>foo</strong>)</em></p>\n", "example": 392, "start_line": 6695, "end_line": 6699, "section": "Emphasis and strong emphasis" }, { "markdown": "**Gomphocarpus (*Gomphocarpus physocarpus*, syn.\n*Asclepias physocarpa*)**\n", "html": "<p><strong>Gomphocarpus (<em>Gomphocarpus physocarpus</em>, syn.\n<em>Asclepias physocarpa</em>)</strong></p>\n", "example": 393, "start_line": 6702, "end_line": 6708, "section": "Emphasis and strong emphasis" }, { "markdown": "**foo \"*bar*\" foo**\n", "html": "<p><strong>foo "<em>bar</em>" foo</strong></p>\n", "example": 394, "start_line": 6711, "end_line": 6715, "section": "Emphasis and strong emphasis" }, { "markdown": "**foo**bar\n", "html": "<p><strong>foo</strong>bar</p>\n", "example": 395, "start_line": 6720, "end_line": 6724, "section": "Emphasis and strong emphasis" }, { "markdown": "__foo bar __\n", "html": "<p>__foo bar __</p>\n", "example": 396, "start_line": 6732, "end_line": 6736, "section": "Emphasis and strong emphasis" }, { "markdown": "__(__foo)\n", "html": "<p>__(__foo)</p>\n", "example": 397, "start_line": 6742, "end_line": 6746, "section": "Emphasis and strong emphasis" }, { "markdown": "_(__foo__)_\n", "html": "<p><em>(<strong>foo</strong>)</em></p>\n", "example": 398, "start_line": 6752, "end_line": 6756, "section": "Emphasis and strong emphasis" }, { "markdown": "__foo__bar\n", "html": "<p>__foo__bar</p>\n", "example": 399, "start_line": 6761, "end_line": 6765, "section": "Emphasis and strong emphasis" }, { "markdown": "__пристаням__стрСмятся\n", "html": "<p>__пристаням__стрСмятся</p>\n", "example": 400, "start_line": 6768, "end_line": 6772, "section": "Emphasis and strong emphasis" }, { "markdown": "__foo__bar__baz__\n", "html": "<p><strong>foo__bar__baz</strong></p>\n", "example": 401, "start_line": 6775, "end_line": 6779, "section": "Emphasis and strong emphasis" }, { "markdown": "__(bar)__.\n", "html": "<p><strong>(bar)</strong>.</p>\n", "example": 402, "start_line": 6786, "end_line": 6790, "section": "Emphasis and strong emphasis" }, { "markdown": "*foo [bar](/url)*\n", "html": "<p><em>foo <a href=\"/url\">bar</a></em></p>\n", "example": 403, "start_line": 6798, "end_line": 6802, "section": "Emphasis and strong emphasis" }, { "markdown": "*foo\nbar*\n", "html": "<p><em>foo\nbar</em></p>\n", "example": 404, "start_line": 6805, "end_line": 6811, "section": "Emphasis and strong emphasis" }, { "markdown": "_foo __bar__ baz_\n", "html": "<p><em>foo <strong>bar</strong> baz</em></p>\n", "example": 405, "start_line": 6817, "end_line": 6821, "section": "Emphasis and strong emphasis" }, { "markdown": "_foo _bar_ baz_\n", "html": "<p><em>foo <em>bar</em> baz</em></p>\n", "example": 406, "start_line": 6824, "end_line": 6828, "section": "Emphasis and strong emphasis" }, { "markdown": "__foo_ bar_\n", "html": "<p><em><em>foo</em> bar</em></p>\n", "example": 407, "start_line": 6831, "end_line": 6835, "section": "Emphasis and strong emphasis" }, { "markdown": "*foo *bar**\n", "html": "<p><em>foo <em>bar</em></em></p>\n", "example": 408, "start_line": 6838, "end_line": 6842, "section": "Emphasis and strong emphasis" }, { "markdown": "*foo **bar** baz*\n", "html": "<p><em>foo <strong>bar</strong> baz</em></p>\n", "example": 409, "start_line": 6845, "end_line": 6849, "section": "Emphasis and strong emphasis" }, { "markdown": "*foo**bar**baz*\n", "html": "<p><em>foo<strong>bar</strong>baz</em></p>\n", "example": 410, "start_line": 6851, "end_line": 6855, "section": "Emphasis and strong emphasis" }, { "markdown": "*foo**bar*\n", "html": "<p><em>foo**bar</em></p>\n", "example": 411, "start_line": 6875, "end_line": 6879, "section": "Emphasis and strong emphasis" }, { "markdown": "***foo** bar*\n", "html": "<p><em><strong>foo</strong> bar</em></p>\n", "example": 412, "start_line": 6888, "end_line": 6892, "section": "Emphasis and strong emphasis" }, { "markdown": "*foo **bar***\n", "html": "<p><em>foo <strong>bar</strong></em></p>\n", "example": 413, "start_line": 6895, "end_line": 6899, "section": "Emphasis and strong emphasis" }, { "markdown": "*foo**bar***\n", "html": "<p><em>foo<strong>bar</strong></em></p>\n", "example": 414, "start_line": 6902, "end_line": 6906, "section": "Emphasis and strong emphasis" }, { "markdown": "foo***bar***baz\n", "html": "<p>foo<em><strong>bar</strong></em>baz</p>\n", "example": 415, "start_line": 6913, "end_line": 6917, "section": "Emphasis and strong emphasis" }, { "markdown": "foo******bar*********baz\n", "html": "<p>foo<strong><strong><strong>bar</strong></strong></strong>***baz</p>\n", "example": 416, "start_line": 6919, "end_line": 6923, "section": "Emphasis and strong emphasis" }, { "markdown": "*foo **bar *baz* bim** bop*\n", "html": "<p><em>foo <strong>bar <em>baz</em> bim</strong> bop</em></p>\n", "example": 417, "start_line": 6928, "end_line": 6932, "section": "Emphasis and strong emphasis" }, { "markdown": "*foo [*bar*](/url)*\n", "html": "<p><em>foo <a href=\"/url\"><em>bar</em></a></em></p>\n", "example": 418, "start_line": 6935, "end_line": 6939, "section": "Emphasis and strong emphasis" }, { "markdown": "** is not an empty emphasis\n", "html": "<p>** is not an empty emphasis</p>\n", "example": 419, "start_line": 6944, "end_line": 6948, "section": "Emphasis and strong emphasis" }, { "markdown": "**** is not an empty strong emphasis\n", "html": "<p>**** is not an empty strong emphasis</p>\n", "example": 420, "start_line": 6951, "end_line": 6955, "section": "Emphasis and strong emphasis" }, { "markdown": "**foo [bar](/url)**\n", "html": "<p><strong>foo <a href=\"/url\">bar</a></strong></p>\n", "example": 421, "start_line": 6964, "end_line": 6968, "section": "Emphasis and strong emphasis" }, { "markdown": "**foo\nbar**\n", "html": "<p><strong>foo\nbar</strong></p>\n", "example": 422, "start_line": 6971, "end_line": 6977, "section": "Emphasis and strong emphasis" }, { "markdown": "__foo _bar_ baz__\n", "html": "<p><strong>foo <em>bar</em> baz</strong></p>\n", "example": 423, "start_line": 6983, "end_line": 6987, "section": "Emphasis and strong emphasis" }, { "markdown": "__foo __bar__ baz__\n", "html": "<p><strong>foo <strong>bar</strong> baz</strong></p>\n", "example": 424, "start_line": 6990, "end_line": 6994, "section": "Emphasis and strong emphasis" }, { "markdown": "____foo__ bar__\n", "html": "<p><strong><strong>foo</strong> bar</strong></p>\n", "example": 425, "start_line": 6997, "end_line": 7001, "section": "Emphasis and strong emphasis" }, { "markdown": "**foo **bar****\n", "html": "<p><strong>foo <strong>bar</strong></strong></p>\n", "example": 426, "start_line": 7004, "end_line": 7008, "section": "Emphasis and strong emphasis" }, { "markdown": "**foo *bar* baz**\n", "html": "<p><strong>foo <em>bar</em> baz</strong></p>\n", "example": 427, "start_line": 7011, "end_line": 7015, "section": "Emphasis and strong emphasis" }, { "markdown": "**foo*bar*baz**\n", "html": "<p><strong>foo<em>bar</em>baz</strong></p>\n", "example": 428, "start_line": 7018, "end_line": 7022, "section": "Emphasis and strong emphasis" }, { "markdown": "***foo* bar**\n", "html": "<p><strong><em>foo</em> bar</strong></p>\n", "example": 429, "start_line": 7025, "end_line": 7029, "section": "Emphasis and strong emphasis" }, { "markdown": "**foo *bar***\n", "html": "<p><strong>foo <em>bar</em></strong></p>\n", "example": 430, "start_line": 7032, "end_line": 7036, "section": "Emphasis and strong emphasis" }, { "markdown": "**foo *bar **baz**\nbim* bop**\n", "html": "<p><strong>foo <em>bar <strong>baz</strong>\nbim</em> bop</strong></p>\n", "example": 431, "start_line": 7041, "end_line": 7047, "section": "Emphasis and strong emphasis" }, { "markdown": "**foo [*bar*](/url)**\n", "html": "<p><strong>foo <a href=\"/url\"><em>bar</em></a></strong></p>\n", "example": 432, "start_line": 7050, "end_line": 7054, "section": "Emphasis and strong emphasis" }, { "markdown": "__ is not an empty emphasis\n", "html": "<p>__ is not an empty emphasis</p>\n", "example": 433, "start_line": 7059, "end_line": 7063, "section": "Emphasis and strong emphasis" }, { "markdown": "____ is not an empty strong emphasis\n", "html": "<p>____ is not an empty strong emphasis</p>\n", "example": 434, "start_line": 7066, "end_line": 7070, "section": "Emphasis and strong emphasis" }, { "markdown": "foo ***\n", "html": "<p>foo ***</p>\n", "example": 435, "start_line": 7076, "end_line": 7080, "section": "Emphasis and strong emphasis" }, { "markdown": "foo *\\**\n", "html": "<p>foo <em>*</em></p>\n", "example": 436, "start_line": 7083, "end_line": 7087, "section": "Emphasis and strong emphasis" }, { "markdown": "foo *_*\n", "html": "<p>foo <em>_</em></p>\n", "example": 437, "start_line": 7090, "end_line": 7094, "section": "Emphasis and strong emphasis" }, { "markdown": "foo *****\n", "html": "<p>foo *****</p>\n", "example": 438, "start_line": 7097, "end_line": 7101, "section": "Emphasis and strong emphasis" }, { "markdown": "foo **\\***\n", "html": "<p>foo <strong>*</strong></p>\n", "example": 439, "start_line": 7104, "end_line": 7108, "section": "Emphasis and strong emphasis" }, { "markdown": "foo **_**\n", "html": "<p>foo <strong>_</strong></p>\n", "example": 440, "start_line": 7111, "end_line": 7115, "section": "Emphasis and strong emphasis" }, { "markdown": "**foo*\n", "html": "<p>*<em>foo</em></p>\n", "example": 441, "start_line": 7122, "end_line": 7126, "section": "Emphasis and strong emphasis" }, { "markdown": "*foo**\n", "html": "<p><em>foo</em>*</p>\n", "example": 442, "start_line": 7129, "end_line": 7133, "section": "Emphasis and strong emphasis" }, { "markdown": "***foo**\n", "html": "<p>*<strong>foo</strong></p>\n", "example": 443, "start_line": 7136, "end_line": 7140, "section": "Emphasis and strong emphasis" }, { "markdown": "****foo*\n", "html": "<p>***<em>foo</em></p>\n", "example": 444, "start_line": 7143, "end_line": 7147, "section": "Emphasis and strong emphasis" }, { "markdown": "**foo***\n", "html": "<p><strong>foo</strong>*</p>\n", "example": 445, "start_line": 7150, "end_line": 7154, "section": "Emphasis and strong emphasis" }, { "markdown": "*foo****\n", "html": "<p><em>foo</em>***</p>\n", "example": 446, "start_line": 7157, "end_line": 7161, "section": "Emphasis and strong emphasis" }, { "markdown": "foo ___\n", "html": "<p>foo ___</p>\n", "example": 447, "start_line": 7167, "end_line": 7171, "section": "Emphasis and strong emphasis" }, { "markdown": "foo _\\__\n", "html": "<p>foo <em>_</em></p>\n", "example": 448, "start_line": 7174, "end_line": 7178, "section": "Emphasis and strong emphasis" }, { "markdown": "foo _*_\n", "html": "<p>foo <em>*</em></p>\n", "example": 449, "start_line": 7181, "end_line": 7185, "section": "Emphasis and strong emphasis" }, { "markdown": "foo _____\n", "html": "<p>foo _____</p>\n", "example": 450, "start_line": 7188, "end_line": 7192, "section": "Emphasis and strong emphasis" }, { "markdown": "foo __\\___\n", "html": "<p>foo <strong>_</strong></p>\n", "example": 451, "start_line": 7195, "end_line": 7199, "section": "Emphasis and strong emphasis" }, { "markdown": "foo __*__\n", "html": "<p>foo <strong>*</strong></p>\n", "example": 452, "start_line": 7202, "end_line": 7206, "section": "Emphasis and strong emphasis" }, { "markdown": "__foo_\n", "html": "<p>_<em>foo</em></p>\n", "example": 453, "start_line": 7209, "end_line": 7213, "section": "Emphasis and strong emphasis" }, { "markdown": "_foo__\n", "html": "<p><em>foo</em>_</p>\n", "example": 454, "start_line": 7220, "end_line": 7224, "section": "Emphasis and strong emphasis" }, { "markdown": "___foo__\n", "html": "<p>_<strong>foo</strong></p>\n", "example": 455, "start_line": 7227, "end_line": 7231, "section": "Emphasis and strong emphasis" }, { "markdown": "____foo_\n", "html": "<p>___<em>foo</em></p>\n", "example": 456, "start_line": 7234, "end_line": 7238, "section": "Emphasis and strong emphasis" }, { "markdown": "__foo___\n", "html": "<p><strong>foo</strong>_</p>\n", "example": 457, "start_line": 7241, "end_line": 7245, "section": "Emphasis and strong emphasis" }, { "markdown": "_foo____\n", "html": "<p><em>foo</em>___</p>\n", "example": 458, "start_line": 7248, "end_line": 7252, "section": "Emphasis and strong emphasis" }, { "markdown": "**foo**\n", "html": "<p><strong>foo</strong></p>\n", "example": 459, "start_line": 7258, "end_line": 7262, "section": "Emphasis and strong emphasis" }, { "markdown": "*_foo_*\n", "html": "<p><em><em>foo</em></em></p>\n", "example": 460, "start_line": 7265, "end_line": 7269, "section": "Emphasis and strong emphasis" }, { "markdown": "__foo__\n", "html": "<p><strong>foo</strong></p>\n", "example": 461, "start_line": 7272, "end_line": 7276, "section": "Emphasis and strong emphasis" }, { "markdown": "_*foo*_\n", "html": "<p><em><em>foo</em></em></p>\n", "example": 462, "start_line": 7279, "end_line": 7283, "section": "Emphasis and strong emphasis" }, { "markdown": "****foo****\n", "html": "<p><strong><strong>foo</strong></strong></p>\n", "example": 463, "start_line": 7289, "end_line": 7293, "section": "Emphasis and strong emphasis" }, { "markdown": "____foo____\n", "html": "<p><strong><strong>foo</strong></strong></p>\n", "example": 464, "start_line": 7296, "end_line": 7300, "section": "Emphasis and strong emphasis" }, { "markdown": "******foo******\n", "html": "<p><strong><strong><strong>foo</strong></strong></strong></p>\n", "example": 465, "start_line": 7307, "end_line": 7311, "section": "Emphasis and strong emphasis" }, { "markdown": "***foo***\n", "html": "<p><em><strong>foo</strong></em></p>\n", "example": 466, "start_line": 7316, "end_line": 7320, "section": "Emphasis and strong emphasis" }, { "markdown": "_____foo_____\n", "html": "<p><em><strong><strong>foo</strong></strong></em></p>\n", "example": 467, "start_line": 7323, "end_line": 7327, "section": "Emphasis and strong emphasis" }, { "markdown": "*foo _bar* baz_\n", "html": "<p><em>foo _bar</em> baz_</p>\n", "example": 468, "start_line": 7332, "end_line": 7336, "section": "Emphasis and strong emphasis" }, { "markdown": "*foo __bar *baz bim__ bam*\n", "html": "<p><em>foo <strong>bar *baz bim</strong> bam</em></p>\n", "example": 469, "start_line": 7339, "end_line": 7343, "section": "Emphasis and strong emphasis" }, { "markdown": "**foo **bar baz**\n", "html": "<p>**foo <strong>bar baz</strong></p>\n", "example": 470, "start_line": 7348, "end_line": 7352, "section": "Emphasis and strong emphasis" }, { "markdown": "*foo *bar baz*\n", "html": "<p>*foo <em>bar baz</em></p>\n", "example": 471, "start_line": 7355, "end_line": 7359, "section": "Emphasis and strong emphasis" }, { "markdown": "*[bar*](/url)\n", "html": "<p>*<a href=\"/url\">bar*</a></p>\n", "example": 472, "start_line": 7364, "end_line": 7368, "section": "Emphasis and strong emphasis" }, { "markdown": "_foo [bar_](/url)\n", "html": "<p>_foo <a href=\"/url\">bar_</a></p>\n", "example": 473, "start_line": 7371, "end_line": 7375, "section": "Emphasis and strong emphasis" }, { "markdown": "*<img src=\"foo\" title=\"*\"/>\n", "html": "<p>*<img src=\"foo\" title=\"*\"/></p>\n", "example": 474, "start_line": 7378, "end_line": 7382, "section": "Emphasis and strong emphasis" }, { "markdown": "**<a href=\"**\">\n", "html": "<p>**<a href=\"**\"></p>\n", "example": 475, "start_line": 7385, "end_line": 7389, "section": "Emphasis and strong emphasis" }, { "markdown": "__<a href=\"__\">\n", "html": "<p>__<a href=\"__\"></p>\n", "example": 476, "start_line": 7392, "end_line": 7396, "section": "Emphasis and strong emphasis" }, { "markdown": "*a `*`*\n", "html": "<p><em>a <code>*</code></em></p>\n", "example": 477, "start_line": 7399, "end_line": 7403, "section": "Emphasis and strong emphasis" }, { "markdown": "_a `_`_\n", "html": "<p><em>a <code>_</code></em></p>\n", "example": 478, "start_line": 7406, "end_line": 7410, "section": "Emphasis and strong emphasis" }, { "markdown": "**a<http://foo.bar/?q=**>\n", "html": "<p>**a<a href=\"http://foo.bar/?q=**\">http://foo.bar/?q=**</a></p>\n", "example": 479, "start_line": 7413, "end_line": 7417, "section": "Emphasis and strong emphasis" }, { "markdown": "__a<http://foo.bar/?q=__>\n", "html": "<p>__a<a href=\"http://foo.bar/?q=__\">http://foo.bar/?q=__</a></p>\n", "example": 480, "start_line": 7420, "end_line": 7424, "section": "Emphasis and strong emphasis" }, { "markdown": "[link](/uri \"title\")\n", "html": "<p><a href=\"/uri\" title=\"title\">link</a></p>\n", "example": 481, "start_line": 7503, "end_line": 7507, "section": "Links" }, { "markdown": "[link](/uri)\n", "html": "<p><a href=\"/uri\">link</a></p>\n", "example": 482, "start_line": 7512, "end_line": 7516, "section": "Links" }, { "markdown": "[link]()\n", "html": "<p><a href=\"\">link</a></p>\n", "example": 483, "start_line": 7521, "end_line": 7525, "section": "Links" }, { "markdown": "[link](<>)\n", "html": "<p><a href=\"\">link</a></p>\n", "example": 484, "start_line": 7528, "end_line": 7532, "section": "Links" }, { "markdown": "[link](/my uri)\n", "html": "<p>[link](/my uri)</p>\n", "example": 485, "start_line": 7537, "end_line": 7541, "section": "Links" }, { "markdown": "[link](</my uri>)\n", "html": "<p><a href=\"/my%20uri\">link</a></p>\n", "example": 486, "start_line": 7543, "end_line": 7547, "section": "Links" }, { "markdown": "[link](foo\nbar)\n", "html": "<p>[link](foo\nbar)</p>\n", "example": 487, "start_line": 7552, "end_line": 7558, "section": "Links" }, { "markdown": "[link](<foo\nbar>)\n", "html": "<p>[link](<foo\nbar>)</p>\n", "example": 488, "start_line": 7560, "end_line": 7566, "section": "Links" }, { "markdown": "[a](<b)c>)\n", "html": "<p><a href=\"b)c\">a</a></p>\n", "example": 489, "start_line": 7571, "end_line": 7575, "section": "Links" }, { "markdown": "[link](<foo\\>)\n", "html": "<p>[link](<foo>)</p>\n", "example": 490, "start_line": 7579, "end_line": 7583, "section": "Links" }, { "markdown": "[a](<b)c\n[a](<b)c>\n[a](<b>c)\n", "html": "<p>[a](<b)c\n[a](<b)c>\n[a](<b>c)</p>\n", "example": 491, "start_line": 7588, "end_line": 7596, "section": "Links" }, { "markdown": "[link](\\(foo\\))\n", "html": "<p><a href=\"(foo)\">link</a></p>\n", "example": 492, "start_line": 7600, "end_line": 7604, "section": "Links" }, { "markdown": "[link](foo(and(bar)))\n", "html": "<p><a href=\"foo(and(bar))\">link</a></p>\n", "example": 493, "start_line": 7609, "end_line": 7613, "section": "Links" }, { "markdown": "[link](foo\\(and\\(bar\\))\n", "html": "<p><a href=\"foo(and(bar)\">link</a></p>\n", "example": 494, "start_line": 7618, "end_line": 7622, "section": "Links" }, { "markdown": "[link](<foo(and(bar)>)\n", "html": "<p><a href=\"foo(and(bar)\">link</a></p>\n", "example": 495, "start_line": 7625, "end_line": 7629, "section": "Links" }, { "markdown": "[link](foo\\)\\:)\n", "html": "<p><a href=\"foo):\">link</a></p>\n", "example": 496, "start_line": 7635, "end_line": 7639, "section": "Links" }, { "markdown": "[link](#fragment)\n\n[link](http://example.com#fragment)\n\n[link](http://example.com?foo=3#frag)\n", "html": "<p><a href=\"#fragment\">link</a></p>\n<p><a href=\"http://example.com#fragment\">link</a></p>\n<p><a href=\"http://example.com?foo=3#frag\">link</a></p>\n", "example": 497, "start_line": 7644, "end_line": 7654, "section": "Links" }, { "markdown": "[link](foo\\bar)\n", "html": "<p><a href=\"foo%5Cbar\">link</a></p>\n", "example": 498, "start_line": 7660, "end_line": 7664, "section": "Links" }, { "markdown": "[link](foo%20bä)\n", "html": "<p><a href=\"foo%20b%C3%A4\">link</a></p>\n", "example": 499, "start_line": 7676, "end_line": 7680, "section": "Links" }, { "markdown": "[link](\"title\")\n", "html": "<p><a href=\"%22title%22\">link</a></p>\n", "example": 500, "start_line": 7687, "end_line": 7691, "section": "Links" }, { "markdown": "[link](/url \"title\")\n[link](/url 'title')\n[link](/url (title))\n", "html": "<p><a href=\"/url\" title=\"title\">link</a>\n<a href=\"/url\" title=\"title\">link</a>\n<a href=\"/url\" title=\"title\">link</a></p>\n", "example": 501, "start_line": 7696, "end_line": 7704, "section": "Links" }, { "markdown": "[link](/url \"title \\\""\")\n", "html": "<p><a href=\"/url\" title=\"title ""\">link</a></p>\n", "example": 502, "start_line": 7710, "end_line": 7714, "section": "Links" }, { "markdown": "[link](/urlΒ \"title\")\n", "html": "<p><a href=\"/url%C2%A0%22title%22\">link</a></p>\n", "example": 503, "start_line": 7720, "end_line": 7724, "section": "Links" }, { "markdown": "[link](/url \"title \"and\" title\")\n", "html": "<p>[link](/url "title "and" title")</p>\n", "example": 504, "start_line": 7729, "end_line": 7733, "section": "Links" }, { "markdown": "[link](/url 'title \"and\" title')\n", "html": "<p><a href=\"/url\" title=\"title "and" title\">link</a></p>\n", "example": 505, "start_line": 7738, "end_line": 7742, "section": "Links" }, { "markdown": "[link]( /uri\n \"title\" )\n", "html": "<p><a href=\"/uri\" title=\"title\">link</a></p>\n", "example": 506, "start_line": 7762, "end_line": 7767, "section": "Links" }, { "markdown": "[link] (/uri)\n", "html": "<p>[link] (/uri)</p>\n", "example": 507, "start_line": 7773, "end_line": 7777, "section": "Links" }, { "markdown": "[link [foo [bar]]](/uri)\n", "html": "<p><a href=\"/uri\">link [foo [bar]]</a></p>\n", "example": 508, "start_line": 7783, "end_line": 7787, "section": "Links" }, { "markdown": "[link] bar](/uri)\n", "html": "<p>[link] bar](/uri)</p>\n", "example": 509, "start_line": 7790, "end_line": 7794, "section": "Links" }, { "markdown": "[link [bar](/uri)\n", "html": "<p>[link <a href=\"/uri\">bar</a></p>\n", "example": 510, "start_line": 7797, "end_line": 7801, "section": "Links" }, { "markdown": "[link \\[bar](/uri)\n", "html": "<p><a href=\"/uri\">link [bar</a></p>\n", "example": 511, "start_line": 7804, "end_line": 7808, "section": "Links" }, { "markdown": "[link *foo **bar** `#`*](/uri)\n", "html": "<p><a href=\"/uri\">link <em>foo <strong>bar</strong> <code>#</code></em></a></p>\n", "example": 512, "start_line": 7813, "end_line": 7817, "section": "Links" }, { "markdown": "[![moon](moon.jpg)](/uri)\n", "html": "<p><a href=\"/uri\"><img src=\"moon.jpg\" alt=\"moon\" /></a></p>\n", "example": 513, "start_line": 7820, "end_line": 7824, "section": "Links" }, { "markdown": "[foo [bar](/uri)](/uri)\n", "html": "<p>[foo <a href=\"/uri\">bar</a>](/uri)</p>\n", "example": 514, "start_line": 7829, "end_line": 7833, "section": "Links" }, { "markdown": "[foo *[bar [baz](/uri)](/uri)*](/uri)\n", "html": "<p>[foo <em>[bar <a href=\"/uri\">baz</a>](/uri)</em>](/uri)</p>\n", "example": 515, "start_line": 7836, "end_line": 7840, "section": "Links" }, { "markdown": "![[[foo](uri1)](uri2)](uri3)\n", "html": "<p><img src=\"uri3\" alt=\"[foo](uri2)\" /></p>\n", "example": 516, "start_line": 7843, "end_line": 7847, "section": "Links" }, { "markdown": "*[foo*](/uri)\n", "html": "<p>*<a href=\"/uri\">foo*</a></p>\n", "example": 517, "start_line": 7853, "end_line": 7857, "section": "Links" }, { "markdown": "[foo *bar](baz*)\n", "html": "<p><a href=\"baz*\">foo *bar</a></p>\n", "example": 518, "start_line": 7860, "end_line": 7864, "section": "Links" }, { "markdown": "*foo [bar* baz]\n", "html": "<p><em>foo [bar</em> baz]</p>\n", "example": 519, "start_line": 7870, "end_line": 7874, "section": "Links" }, { "markdown": "[foo <bar attr=\"](baz)\">\n", "html": "<p>[foo <bar attr=\"](baz)\"></p>\n", "example": 520, "start_line": 7880, "end_line": 7884, "section": "Links" }, { "markdown": "[foo`](/uri)`\n", "html": "<p>[foo<code>](/uri)</code></p>\n", "example": 521, "start_line": 7887, "end_line": 7891, "section": "Links" }, { "markdown": "[foo<http://example.com/?search=](uri)>\n", "html": "<p>[foo<a href=\"http://example.com/?search=%5D(uri)\">http://example.com/?search=](uri)</a></p>\n", "example": 522, "start_line": 7894, "end_line": 7898, "section": "Links" }, { "markdown": "[foo][bar]\n\n[bar]: /url \"title\"\n", "html": "<p><a href=\"/url\" title=\"title\">foo</a></p>\n", "example": 523, "start_line": 7932, "end_line": 7938, "section": "Links" }, { "markdown": "[link [foo [bar]]][ref]\n\n[ref]: /uri\n", "html": "<p><a href=\"/uri\">link [foo [bar]]</a></p>\n", "example": 524, "start_line": 7947, "end_line": 7953, "section": "Links" }, { "markdown": "[link \\[bar][ref]\n\n[ref]: /uri\n", "html": "<p><a href=\"/uri\">link [bar</a></p>\n", "example": 525, "start_line": 7956, "end_line": 7962, "section": "Links" }, { "markdown": "[link *foo **bar** `#`*][ref]\n\n[ref]: /uri\n", "html": "<p><a href=\"/uri\">link <em>foo <strong>bar</strong> <code>#</code></em></a></p>\n", "example": 526, "start_line": 7967, "end_line": 7973, "section": "Links" }, { "markdown": "[![moon](moon.jpg)][ref]\n\n[ref]: /uri\n", "html": "<p><a href=\"/uri\"><img src=\"moon.jpg\" alt=\"moon\" /></a></p>\n", "example": 527, "start_line": 7976, "end_line": 7982, "section": "Links" }, { "markdown": "[foo [bar](/uri)][ref]\n\n[ref]: /uri\n", "html": "<p>[foo <a href=\"/uri\">bar</a>]<a href=\"/uri\">ref</a></p>\n", "example": 528, "start_line": 7987, "end_line": 7993, "section": "Links" }, { "markdown": "[foo *bar [baz][ref]*][ref]\n\n[ref]: /uri\n", "html": "<p>[foo <em>bar <a href=\"/uri\">baz</a></em>]<a href=\"/uri\">ref</a></p>\n", "example": 529, "start_line": 7996, "end_line": 8002, "section": "Links" }, { "markdown": "*[foo*][ref]\n\n[ref]: /uri\n", "html": "<p>*<a href=\"/uri\">foo*</a></p>\n", "example": 530, "start_line": 8011, "end_line": 8017, "section": "Links" }, { "markdown": "[foo *bar][ref]\n\n[ref]: /uri\n", "html": "<p><a href=\"/uri\">foo *bar</a></p>\n", "example": 531, "start_line": 8020, "end_line": 8026, "section": "Links" }, { "markdown": "[foo <bar attr=\"][ref]\">\n\n[ref]: /uri\n", "html": "<p>[foo <bar attr=\"][ref]\"></p>\n", "example": 532, "start_line": 8032, "end_line": 8038, "section": "Links" }, { "markdown": "[foo`][ref]`\n\n[ref]: /uri\n", "html": "<p>[foo<code>][ref]</code></p>\n", "example": 533, "start_line": 8041, "end_line": 8047, "section": "Links" }, { "markdown": "[foo<http://example.com/?search=][ref]>\n\n[ref]: /uri\n", "html": "<p>[foo<a href=\"http://example.com/?search=%5D%5Bref%5D\">http://example.com/?search=][ref]</a></p>\n", "example": 534, "start_line": 8050, "end_line": 8056, "section": "Links" }, { "markdown": "[foo][BaR]\n\n[bar]: /url \"title\"\n", "html": "<p><a href=\"/url\" title=\"title\">foo</a></p>\n", "example": 535, "start_line": 8061, "end_line": 8067, "section": "Links" }, { "markdown": "[Π’ΠΎΠ»ΠΏΠΎΠΉ][Π’ΠΎΠ»ΠΏΠΎΠΉ] is a Russian word.\n\n[Π’ΠžΠ›ΠŸΠžΠ™]: /url\n", "html": "<p><a href=\"/url\">Π’ΠΎΠ»ΠΏΠΎΠΉ</a> is a Russian word.</p>\n", "example": 536, "start_line": 8072, "end_line": 8078, "section": "Links" }, { "markdown": "[Foo\n bar]: /url\n\n[Baz][Foo bar]\n", "html": "<p><a href=\"/url\">Baz</a></p>\n", "example": 537, "start_line": 8084, "end_line": 8091, "section": "Links" }, { "markdown": "[foo] [bar]\n\n[bar]: /url \"title\"\n", "html": "<p>[foo] <a href=\"/url\" title=\"title\">bar</a></p>\n", "example": 538, "start_line": 8097, "end_line": 8103, "section": "Links" }, { "markdown": "[foo]\n[bar]\n\n[bar]: /url \"title\"\n", "html": "<p>[foo]\n<a href=\"/url\" title=\"title\">bar</a></p>\n", "example": 539, "start_line": 8106, "end_line": 8114, "section": "Links" }, { "markdown": "[foo]: /url1\n\n[foo]: /url2\n\n[bar][foo]\n", "html": "<p><a href=\"/url1\">bar</a></p>\n", "example": 540, "start_line": 8147, "end_line": 8155, "section": "Links" }, { "markdown": "[bar][foo\\!]\n\n[foo!]: /url\n", "html": "<p>[bar][foo!]</p>\n", "example": 541, "start_line": 8162, "end_line": 8168, "section": "Links" }, { "markdown": "[foo][ref[]\n\n[ref[]: /uri\n", "html": "<p>[foo][ref[]</p>\n<p>[ref[]: /uri</p>\n", "example": 542, "start_line": 8174, "end_line": 8181, "section": "Links" }, { "markdown": "[foo][ref[bar]]\n\n[ref[bar]]: /uri\n", "html": "<p>[foo][ref[bar]]</p>\n<p>[ref[bar]]: /uri</p>\n", "example": 543, "start_line": 8184, "end_line": 8191, "section": "Links" }, { "markdown": "[[[foo]]]\n\n[[[foo]]]: /url\n", "html": "<p>[[[foo]]]</p>\n<p>[[[foo]]]: /url</p>\n", "example": 544, "start_line": 8194, "end_line": 8201, "section": "Links" }, { "markdown": "[foo][ref\\[]\n\n[ref\\[]: /uri\n", "html": "<p><a href=\"/uri\">foo</a></p>\n", "example": 545, "start_line": 8204, "end_line": 8210, "section": "Links" }, { "markdown": "[bar\\\\]: /uri\n\n[bar\\\\]\n", "html": "<p><a href=\"/uri\">bar\\</a></p>\n", "example": 546, "start_line": 8215, "end_line": 8221, "section": "Links" }, { "markdown": "[]\n\n[]: /uri\n", "html": "<p>[]</p>\n<p>[]: /uri</p>\n", "example": 547, "start_line": 8226, "end_line": 8233, "section": "Links" }, { "markdown": "[\n ]\n\n[\n ]: /uri\n", "html": "<p>[\n]</p>\n<p>[\n]: /uri</p>\n", "example": 548, "start_line": 8236, "end_line": 8247, "section": "Links" }, { "markdown": "[foo][]\n\n[foo]: /url \"title\"\n", "html": "<p><a href=\"/url\" title=\"title\">foo</a></p>\n", "example": 549, "start_line": 8259, "end_line": 8265, "section": "Links" }, { "markdown": "[*foo* bar][]\n\n[*foo* bar]: /url \"title\"\n", "html": "<p><a href=\"/url\" title=\"title\"><em>foo</em> bar</a></p>\n", "example": 550, "start_line": 8268, "end_line": 8274, "section": "Links" }, { "markdown": "[Foo][]\n\n[foo]: /url \"title\"\n", "html": "<p><a href=\"/url\" title=\"title\">Foo</a></p>\n", "example": 551, "start_line": 8279, "end_line": 8285, "section": "Links" }, { "markdown": "[foo] \n[]\n\n[foo]: /url \"title\"\n", "html": "<p><a href=\"/url\" title=\"title\">foo</a>\n[]</p>\n", "example": 552, "start_line": 8292, "end_line": 8300, "section": "Links" }, { "markdown": "[foo]\n\n[foo]: /url \"title\"\n", "html": "<p><a href=\"/url\" title=\"title\">foo</a></p>\n", "example": 553, "start_line": 8312, "end_line": 8318, "section": "Links" }, { "markdown": "[*foo* bar]\n\n[*foo* bar]: /url \"title\"\n", "html": "<p><a href=\"/url\" title=\"title\"><em>foo</em> bar</a></p>\n", "example": 554, "start_line": 8321, "end_line": 8327, "section": "Links" }, { "markdown": "[[*foo* bar]]\n\n[*foo* bar]: /url \"title\"\n", "html": "<p>[<a href=\"/url\" title=\"title\"><em>foo</em> bar</a>]</p>\n", "example": 555, "start_line": 8330, "end_line": 8336, "section": "Links" }, { "markdown": "[[bar [foo]\n\n[foo]: /url\n", "html": "<p>[[bar <a href=\"/url\">foo</a></p>\n", "example": 556, "start_line": 8339, "end_line": 8345, "section": "Links" }, { "markdown": "[Foo]\n\n[foo]: /url \"title\"\n", "html": "<p><a href=\"/url\" title=\"title\">Foo</a></p>\n", "example": 557, "start_line": 8350, "end_line": 8356, "section": "Links" }, { "markdown": "[foo] bar\n\n[foo]: /url\n", "html": "<p><a href=\"/url\">foo</a> bar</p>\n", "example": 558, "start_line": 8361, "end_line": 8367, "section": "Links" }, { "markdown": "\\[foo]\n\n[foo]: /url \"title\"\n", "html": "<p>[foo]</p>\n", "example": 559, "start_line": 8373, "end_line": 8379, "section": "Links" }, { "markdown": "[foo*]: /url\n\n*[foo*]\n", "html": "<p>*<a href=\"/url\">foo*</a></p>\n", "example": 560, "start_line": 8385, "end_line": 8391, "section": "Links" }, { "markdown": "[foo][bar]\n\n[foo]: /url1\n[bar]: /url2\n", "html": "<p><a href=\"/url2\">foo</a></p>\n", "example": 561, "start_line": 8397, "end_line": 8404, "section": "Links" }, { "markdown": "[foo][]\n\n[foo]: /url1\n", "html": "<p><a href=\"/url1\">foo</a></p>\n", "example": 562, "start_line": 8406, "end_line": 8412, "section": "Links" }, { "markdown": "[foo]()\n\n[foo]: /url1\n", "html": "<p><a href=\"\">foo</a></p>\n", "example": 563, "start_line": 8416, "end_line": 8422, "section": "Links" }, { "markdown": "[foo](not a link)\n\n[foo]: /url1\n", "html": "<p><a href=\"/url1\">foo</a>(not a link)</p>\n", "example": 564, "start_line": 8424, "end_line": 8430, "section": "Links" }, { "markdown": "[foo][bar][baz]\n\n[baz]: /url\n", "html": "<p>[foo]<a href=\"/url\">bar</a></p>\n", "example": 565, "start_line": 8435, "end_line": 8441, "section": "Links" }, { "markdown": "[foo][bar][baz]\n\n[baz]: /url1\n[bar]: /url2\n", "html": "<p><a href=\"/url2\">foo</a><a href=\"/url1\">baz</a></p>\n", "example": 566, "start_line": 8447, "end_line": 8454, "section": "Links" }, { "markdown": "[foo][bar][baz]\n\n[baz]: /url1\n[foo]: /url2\n", "html": "<p>[foo]<a href=\"/url1\">bar</a></p>\n", "example": 567, "start_line": 8460, "end_line": 8467, "section": "Links" }, { "markdown": "![foo](/url \"title\")\n", "html": "<p><img src=\"/url\" alt=\"foo\" title=\"title\" /></p>\n", "example": 568, "start_line": 8483, "end_line": 8487, "section": "Images" }, { "markdown": "![foo *bar*]\n\n[foo *bar*]: train.jpg \"train & tracks\"\n", "html": "<p><img src=\"train.jpg\" alt=\"foo bar\" title=\"train & tracks\" /></p>\n", "example": 569, "start_line": 8490, "end_line": 8496, "section": "Images" }, { "markdown": "![foo ![bar](/url)](/url2)\n", "html": "<p><img src=\"/url2\" alt=\"foo bar\" /></p>\n", "example": 570, "start_line": 8499, "end_line": 8503, "section": "Images" }, { "markdown": "![foo [bar](/url)](/url2)\n", "html": "<p><img src=\"/url2\" alt=\"foo bar\" /></p>\n", "example": 571, "start_line": 8506, "end_line": 8510, "section": "Images" }, { "markdown": "![foo *bar*][]\n\n[foo *bar*]: train.jpg \"train & tracks\"\n", "html": "<p><img src=\"train.jpg\" alt=\"foo bar\" title=\"train & tracks\" /></p>\n", "example": 572, "start_line": 8520, "end_line": 8526, "section": "Images" }, { "markdown": "![foo *bar*][foobar]\n\n[FOOBAR]: train.jpg \"train & tracks\"\n", "html": "<p><img src=\"train.jpg\" alt=\"foo bar\" title=\"train & tracks\" /></p>\n", "example": 573, "start_line": 8529, "end_line": 8535, "section": "Images" }, { "markdown": "![foo](train.jpg)\n", "html": "<p><img src=\"train.jpg\" alt=\"foo\" /></p>\n", "example": 574, "start_line": 8538, "end_line": 8542, "section": "Images" }, { "markdown": "My ![foo bar](/path/to/train.jpg \"title\" )\n", "html": "<p>My <img src=\"/path/to/train.jpg\" alt=\"foo bar\" title=\"title\" /></p>\n", "example": 575, "start_line": 8545, "end_line": 8549, "section": "Images" }, { "markdown": "![foo](<url>)\n", "html": "<p><img src=\"url\" alt=\"foo\" /></p>\n", "example": 576, "start_line": 8552, "end_line": 8556, "section": "Images" }, { "markdown": "![](/url)\n", "html": "<p><img src=\"/url\" alt=\"\" /></p>\n", "example": 577, "start_line": 8559, "end_line": 8563, "section": "Images" }, { "markdown": "![foo][bar]\n\n[bar]: /url\n", "html": "<p><img src=\"/url\" alt=\"foo\" /></p>\n", "example": 578, "start_line": 8568, "end_line": 8574, "section": "Images" }, { "markdown": "![foo][bar]\n\n[BAR]: /url\n", "html": "<p><img src=\"/url\" alt=\"foo\" /></p>\n", "example": 579, "start_line": 8577, "end_line": 8583, "section": "Images" }, { "markdown": "![foo][]\n\n[foo]: /url \"title\"\n", "html": "<p><img src=\"/url\" alt=\"foo\" title=\"title\" /></p>\n", "example": 580, "start_line": 8588, "end_line": 8594, "section": "Images" }, { "markdown": "![*foo* bar][]\n\n[*foo* bar]: /url \"title\"\n", "html": "<p><img src=\"/url\" alt=\"foo bar\" title=\"title\" /></p>\n", "example": 581, "start_line": 8597, "end_line": 8603, "section": "Images" }, { "markdown": "![Foo][]\n\n[foo]: /url \"title\"\n", "html": "<p><img src=\"/url\" alt=\"Foo\" title=\"title\" /></p>\n", "example": 582, "start_line": 8608, "end_line": 8614, "section": "Images" }, { "markdown": "![foo] \n[]\n\n[foo]: /url \"title\"\n", "html": "<p><img src=\"/url\" alt=\"foo\" title=\"title\" />\n[]</p>\n", "example": 583, "start_line": 8620, "end_line": 8628, "section": "Images" }, { "markdown": "![foo]\n\n[foo]: /url \"title\"\n", "html": "<p><img src=\"/url\" alt=\"foo\" title=\"title\" /></p>\n", "example": 584, "start_line": 8633, "end_line": 8639, "section": "Images" }, { "markdown": "![*foo* bar]\n\n[*foo* bar]: /url \"title\"\n", "html": "<p><img src=\"/url\" alt=\"foo bar\" title=\"title\" /></p>\n", "example": 585, "start_line": 8642, "end_line": 8648, "section": "Images" }, { "markdown": "![[foo]]\n\n[[foo]]: /url \"title\"\n", "html": "<p>![[foo]]</p>\n<p>[[foo]]: /url "title"</p>\n", "example": 586, "start_line": 8653, "end_line": 8660, "section": "Images" }, { "markdown": "![Foo]\n\n[foo]: /url \"title\"\n", "html": "<p><img src=\"/url\" alt=\"Foo\" title=\"title\" /></p>\n", "example": 587, "start_line": 8665, "end_line": 8671, "section": "Images" }, { "markdown": "!\\[foo]\n\n[foo]: /url \"title\"\n", "html": "<p>![foo]</p>\n", "example": 588, "start_line": 8677, "end_line": 8683, "section": "Images" }, { "markdown": "\\![foo]\n\n[foo]: /url \"title\"\n", "html": "<p>!<a href=\"/url\" title=\"title\">foo</a></p>\n", "example": 589, "start_line": 8689, "end_line": 8695, "section": "Images" }, { "markdown": "<http://foo.bar.baz>\n", "html": "<p><a href=\"http://foo.bar.baz\">http://foo.bar.baz</a></p>\n", "example": 590, "start_line": 8722, "end_line": 8726, "section": "Autolinks" }, { "markdown": "<http://foo.bar.baz/test?q=hello&id=22&boolean>\n", "html": "<p><a href=\"http://foo.bar.baz/test?q=hello&id=22&boolean\">http://foo.bar.baz/test?q=hello&id=22&boolean</a></p>\n", "example": 591, "start_line": 8729, "end_line": 8733, "section": "Autolinks" }, { "markdown": "<irc://foo.bar:2233/baz>\n", "html": "<p><a href=\"irc://foo.bar:2233/baz\">irc://foo.bar:2233/baz</a></p>\n", "example": 592, "start_line": 8736, "end_line": 8740, "section": "Autolinks" }, { "markdown": "<MAILTO:FOO@BAR.BAZ>\n", "html": "<p><a href=\"MAILTO:FOO@BAR.BAZ\">MAILTO:FOO@BAR.BAZ</a></p>\n", "example": 593, "start_line": 8745, "end_line": 8749, "section": "Autolinks" }, { "markdown": "<a+b+c:d>\n", "html": "<p><a href=\"a+b+c:d\">a+b+c:d</a></p>\n", "example": 594, "start_line": 8757, "end_line": 8761, "section": "Autolinks" }, { "markdown": "<made-up-scheme://foo,bar>\n", "html": "<p><a href=\"made-up-scheme://foo,bar\">made-up-scheme://foo,bar</a></p>\n", "example": 595, "start_line": 8764, "end_line": 8768, "section": "Autolinks" }, { "markdown": "<http://../>\n", "html": "<p><a href=\"http://../\">http://../</a></p>\n", "example": 596, "start_line": 8771, "end_line": 8775, "section": "Autolinks" }, { "markdown": "<localhost:5001/foo>\n", "html": "<p><a href=\"localhost:5001/foo\">localhost:5001/foo</a></p>\n", "example": 597, "start_line": 8778, "end_line": 8782, "section": "Autolinks" }, { "markdown": "<http://foo.bar/baz bim>\n", "html": "<p><http://foo.bar/baz bim></p>\n", "example": 598, "start_line": 8787, "end_line": 8791, "section": "Autolinks" }, { "markdown": "<http://example.com/\\[\\>\n", "html": "<p><a href=\"http://example.com/%5C%5B%5C\">http://example.com/\\[\\</a></p>\n", "example": 599, "start_line": 8796, "end_line": 8800, "section": "Autolinks" }, { "markdown": "<foo@bar.example.com>\n", "html": "<p><a href=\"mailto:foo@bar.example.com\">foo@bar.example.com</a></p>\n", "example": 600, "start_line": 8818, "end_line": 8822, "section": "Autolinks" }, { "markdown": "<foo+special@Bar.baz-bar0.com>\n", "html": "<p><a href=\"mailto:foo+special@Bar.baz-bar0.com\">foo+special@Bar.baz-bar0.com</a></p>\n", "example": 601, "start_line": 8825, "end_line": 8829, "section": "Autolinks" }, { "markdown": "<foo\\+@bar.example.com>\n", "html": "<p><foo+@bar.example.com></p>\n", "example": 602, "start_line": 8834, "end_line": 8838, "section": "Autolinks" }, { "markdown": "<>\n", "html": "<p><></p>\n", "example": 603, "start_line": 8843, "end_line": 8847, "section": "Autolinks" }, { "markdown": "< http://foo.bar >\n", "html": "<p>< http://foo.bar ></p>\n", "example": 604, "start_line": 8850, "end_line": 8854, "section": "Autolinks" }, { "markdown": "<m:abc>\n", "html": "<p><m:abc></p>\n", "example": 605, "start_line": 8857, "end_line": 8861, "section": "Autolinks" }, { "markdown": "<foo.bar.baz>\n", "html": "<p><foo.bar.baz></p>\n", "example": 606, "start_line": 8864, "end_line": 8868, "section": "Autolinks" }, { "markdown": "http://example.com\n", "html": "<p>http://example.com</p>\n", "example": 607, "start_line": 8871, "end_line": 8875, "section": "Autolinks" }, { "markdown": "foo@bar.example.com\n", "html": "<p>foo@bar.example.com</p>\n", "example": 608, "start_line": 8878, "end_line": 8882, "section": "Autolinks" }, { "markdown": "<a><bab><c2c>\n", "html": "<p><a><bab><c2c></p>\n", "example": 609, "start_line": 8960, "end_line": 8964, "section": "Raw HTML" }, { "markdown": "<a/><b2/>\n", "html": "<p><a/><b2/></p>\n", "example": 610, "start_line": 8969, "end_line": 8973, "section": "Raw HTML" }, { "markdown": "<a /><b2\ndata=\"foo\" >\n", "html": "<p><a /><b2\ndata=\"foo\" ></p>\n", "example": 611, "start_line": 8978, "end_line": 8984, "section": "Raw HTML" }, { "markdown": "<a foo=\"bar\" bam = 'baz <em>\"</em>'\n_boolean zoop:33=zoop:33 />\n", "html": "<p><a foo=\"bar\" bam = 'baz <em>\"</em>'\n_boolean zoop:33=zoop:33 /></p>\n", "example": 612, "start_line": 8989, "end_line": 8995, "section": "Raw HTML" }, { "markdown": "Foo <responsive-image src=\"foo.jpg\" />\n", "html": "<p>Foo <responsive-image src=\"foo.jpg\" /></p>\n", "example": 613, "start_line": 9000, "end_line": 9004, "section": "Raw HTML" }, { "markdown": "<33> <__>\n", "html": "<p><33> <__></p>\n", "example": 614, "start_line": 9009, "end_line": 9013, "section": "Raw HTML" }, { "markdown": "<a h*#ref=\"hi\">\n", "html": "<p><a h*#ref="hi"></p>\n", "example": 615, "start_line": 9018, "end_line": 9022, "section": "Raw HTML" }, { "markdown": "<a href=\"hi'> <a href=hi'>\n", "html": "<p><a href="hi'> <a href=hi'></p>\n", "example": 616, "start_line": 9027, "end_line": 9031, "section": "Raw HTML" }, { "markdown": "< a><\nfoo><bar/ >\n<foo bar=baz\nbim!bop />\n", "html": "<p>< a><\nfoo><bar/ >\n<foo bar=baz\nbim!bop /></p>\n", "example": 617, "start_line": 9036, "end_line": 9046, "section": "Raw HTML" }, { "markdown": "<a href='bar'title=title>\n", "html": "<p><a href='bar'title=title></p>\n", "example": 618, "start_line": 9051, "end_line": 9055, "section": "Raw HTML" }, { "markdown": "</a></foo >\n", "html": "<p></a></foo ></p>\n", "example": 619, "start_line": 9060, "end_line": 9064, "section": "Raw HTML" }, { "markdown": "</a href=\"foo\">\n", "html": "<p></a href="foo"></p>\n", "example": 620, "start_line": 9069, "end_line": 9073, "section": "Raw HTML" }, { "markdown": "foo <!-- this is a\ncomment - with hyphen -->\n", "html": "<p>foo <!-- this is a\ncomment - with hyphen --></p>\n", "example": 621, "start_line": 9078, "end_line": 9084, "section": "Raw HTML" }, { "markdown": "foo <!-- not a comment -- two hyphens -->\n", "html": "<p>foo <!-- not a comment -- two hyphens --></p>\n", "example": 622, "start_line": 9087, "end_line": 9091, "section": "Raw HTML" }, { "markdown": "foo <!--> foo -->\n\nfoo <!-- foo--->\n", "html": "<p>foo <!--> foo --></p>\n<p>foo <!-- foo---></p>\n", "example": 623, "start_line": 9096, "end_line": 9103, "section": "Raw HTML" }, { "markdown": "foo <?php echo $a; ?>\n", "html": "<p>foo <?php echo $a; ?></p>\n", "example": 624, "start_line": 9108, "end_line": 9112, "section": "Raw HTML" }, { "markdown": "foo <!ELEMENT br EMPTY>\n", "html": "<p>foo <!ELEMENT br EMPTY></p>\n", "example": 625, "start_line": 9117, "end_line": 9121, "section": "Raw HTML" }, { "markdown": "foo <![CDATA[>&<]]>\n", "html": "<p>foo <![CDATA[>&<]]></p>\n", "example": 626, "start_line": 9126, "end_line": 9130, "section": "Raw HTML" }, { "markdown": "foo <a href=\"ö\">\n", "html": "<p>foo <a href=\"ö\"></p>\n", "example": 627, "start_line": 9136, "end_line": 9140, "section": "Raw HTML" }, { "markdown": "foo <a href=\"\\*\">\n", "html": "<p>foo <a href=\"\\*\"></p>\n", "example": 628, "start_line": 9145, "end_line": 9149, "section": "Raw HTML" }, { "markdown": "<a href=\"\\\"\">\n", "html": "<p><a href="""></p>\n", "example": 629, "start_line": 9152, "end_line": 9156, "section": "Raw HTML" }, { "markdown": "foo \nbaz\n", "html": "<p>foo<br />\nbaz</p>\n", "example": 630, "start_line": 9166, "end_line": 9172, "section": "Hard line breaks" }, { "markdown": "foo\\\nbaz\n", "html": "<p>foo<br />\nbaz</p>\n", "example": 631, "start_line": 9178, "end_line": 9184, "section": "Hard line breaks" }, { "markdown": "foo \nbaz\n", "html": "<p>foo<br />\nbaz</p>\n", "example": 632, "start_line": 9189, "end_line": 9195, "section": "Hard line breaks" }, { "markdown": "foo \n bar\n", "html": "<p>foo<br />\nbar</p>\n", "example": 633, "start_line": 9200, "end_line": 9206, "section": "Hard line breaks" }, { "markdown": "foo\\\n bar\n", "html": "<p>foo<br />\nbar</p>\n", "example": 634, "start_line": 9209, "end_line": 9215, "section": "Hard line breaks" }, { "markdown": "*foo \nbar*\n", "html": "<p><em>foo<br />\nbar</em></p>\n", "example": 635, "start_line": 9221, "end_line": 9227, "section": "Hard line breaks" }, { "markdown": "*foo\\\nbar*\n", "html": "<p><em>foo<br />\nbar</em></p>\n", "example": 636, "start_line": 9230, "end_line": 9236, "section": "Hard line breaks" }, { "markdown": "`code \nspan`\n", "html": "<p><code>code span</code></p>\n", "example": 637, "start_line": 9241, "end_line": 9246, "section": "Hard line breaks" }, { "markdown": "`code\\\nspan`\n", "html": "<p><code>code\\ span</code></p>\n", "example": 638, "start_line": 9249, "end_line": 9254, "section": "Hard line breaks" }, { "markdown": "<a href=\"foo \nbar\">\n", "html": "<p><a href=\"foo \nbar\"></p>\n", "example": 639, "start_line": 9259, "end_line": 9265, "section": "Hard line breaks" }, { "markdown": "<a href=\"foo\\\nbar\">\n", "html": "<p><a href=\"foo\\\nbar\"></p>\n", "example": 640, "start_line": 9268, "end_line": 9274, "section": "Hard line breaks" }, { "markdown": "foo\\\n", "html": "<p>foo\\</p>\n", "example": 641, "start_line": 9281, "end_line": 9285, "section": "Hard line breaks" }, { "markdown": "foo \n", "html": "<p>foo</p>\n", "example": 642, "start_line": 9288, "end_line": 9292, "section": "Hard line breaks" }, { "markdown": "### foo\\\n", "html": "<h3>foo\\</h3>\n", "example": 643, "start_line": 9295, "end_line": 9299, "section": "Hard line breaks" }, { "markdown": "### foo \n", "html": "<h3>foo</h3>\n", "example": 644, "start_line": 9302, "end_line": 9306, "section": "Hard line breaks" }, { "markdown": "foo\nbaz\n", "html": "<p>foo\nbaz</p>\n", "example": 645, "start_line": 9317, "end_line": 9323, "section": "Soft line breaks" }, { "markdown": "foo \n baz\n", "html": "<p>foo\nbaz</p>\n", "example": 646, "start_line": 9329, "end_line": 9335, "section": "Soft line breaks" }, { "markdown": "hello $.;'there\n", "html": "<p>hello $.;'there</p>\n", "example": 647, "start_line": 9349, "end_line": 9353, "section": "Textual content" }, { "markdown": "Foo χρῆν\n", "html": "<p>Foo χρῆν</p>\n", "example": 648, "start_line": 9356, "end_line": 9360, "section": "Textual content" }, { "markdown": "Multiple spaces\n", "html": "<p>Multiple spaces</p>\n", "example": 649, "start_line": 9365, "end_line": 9369, "section": "Textual content" } ]�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_commonmark/spec.sh�����������������������������������������������������0000775�0000000�0000000�00000000714�14654155362�0021453�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/env bash set -e REPO="https://github.com/commonmark/CommonMark.git" VERSION="0.29" function main { echo "Cloning from repo: $REPO..." git clone --quiet $REPO echo "Using version $VERSION..." cd "CommonMark" git checkout --quiet $VERSION echo "Dumping tests file..." python3 "test/spec_tests.py" --dump-tests > "../commonmark.json" echo "Cleaning up..." cd .. rm -rf CommonMark echo "Done." } main ����������������������������������������������������MyST-Parser-4.0.0/tests/test_commonmark/test_commonmark.py������������������������������������������0000664�0000000�0000000�00000002774�14654155362�0023746�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������"""In this module tests are run against the full test set, provided by https://github.com/commonmark/CommonMark.git. """ import json import os import pytest from markdown_it.renderer import RendererHTML from myst_parser.config.main import MdParserConfig from myst_parser.parsers.mdit import create_md_parser with open( os.path.join(os.path.dirname(__file__), "commonmark.json"), encoding="utf8" ) as fin: tests = json.load(fin) @pytest.mark.parametrize("entry", tests) def test_commonmark(entry): if entry["example"] == 14: # This is just a test that +++ are not parsed as thematic breaks pytest.skip("Expects '+++' to be unconverted (not block break).") if entry["example"] in [66, 68]: # Front matter is supported by numerous Markdown flavours, # but not strictly CommonMark, # see: https://talk.commonmark.org/t/metadata-in-documents/721/86 pytest.skip( "Thematic breaks on the first line conflict with front matter syntax" ) test_case = entry["markdown"] md = create_md_parser(MdParserConfig(), RendererHTML) output = md.render(test_case) if entry["example"] == 593: # this doesn't have any bearing on the output output = output.replace("mailto", "MAILTO") if entry["example"] in [187, 209, 210]: # this doesn't have any bearing on the output output = output.replace( "<blockquote></blockquote>", "<blockquote>\n</blockquote>" ) assert output == entry["html"] ����MyST-Parser-4.0.0/tests/test_docutils.py������������������������������������������������������������0000664�0000000�0000000�00000006712�14654155362�0020223�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������import contextlib import io from dataclasses import dataclass, field, fields from textwrap import dedent from typing import Literal from myst_parser.mdit_to_docutils.base import make_document from myst_parser.parsers.docutils_ import ( Parser, attr_to_optparse_option, cli_html, cli_html5, cli_html5_demo, cli_latex, cli_pseudoxml, cli_xml, to_html5_demo, ) def test_attr_to_optparse_option(): @dataclass class Config: name: Literal["a"] = field(default="default") output = attr_to_optparse_option(fields(Config)[0], "default") assert len(output) == 3 def test_parser(): """Test calling `Parser.parse` directly.""" parser = Parser() document = make_document(parser_cls=Parser) parser.parse("something", document) assert ( document.pformat().strip() == '<document source="notset">\n <paragraph>\n something' ) def test_cli_html(monkeypatch, capsys): monkeypatch.setattr("sys.stdin", io.TextIOWrapper(io.BytesIO(b"text"))) cli_html([]) captured = capsys.readouterr() assert not captured.err assert "text" in captured.out def test_cli_html5(monkeypatch, capsys): monkeypatch.setattr("sys.stdin", io.TextIOWrapper(io.BytesIO(b"text"))) cli_html5([]) captured = capsys.readouterr() assert not captured.err assert "text" in captured.out def test_cli_html5_demo(monkeypatch, capsys): monkeypatch.setattr("sys.stdin", io.TextIOWrapper(io.BytesIO(b"text"))) cli_html5_demo([]) captured = capsys.readouterr() assert not captured.err assert "text" in captured.out def test_to_html5_demo(): assert to_html5_demo("text").strip() == "<p>text</p>" def test_cli_latex(monkeypatch, capsys): monkeypatch.setattr("sys.stdin", io.TextIOWrapper(io.BytesIO(b"text"))) cli_latex([]) captured = capsys.readouterr() assert not captured.err assert "text" in captured.out def test_cli_xml(monkeypatch, capsys): monkeypatch.setattr("sys.stdin", io.TextIOWrapper(io.BytesIO(b"text"))) cli_xml([]) captured = capsys.readouterr() assert not captured.err assert "text" in captured.out def test_cli_pseudoxml(monkeypatch, capsys): monkeypatch.setattr("sys.stdin", io.TextIOWrapper(io.BytesIO(b"text"))) cli_pseudoxml([]) captured = capsys.readouterr() assert not captured.err assert "text" in captured.out def test_help_text(): """Test retrieving settings help text.""" from docutils.core import Publisher stream = io.StringIO() pub = Publisher(parser=Parser()) with contextlib.redirect_stdout(stream): try: pub.process_command_line(["--help"]) except SystemExit as exc: assert not exc.code assert "MyST options" in stream.getvalue() def test_include_from_rst(tmp_path): """Test including a MyST file from within an RST file.""" from docutils.parsers.rst import Parser as RSTParser include_path = tmp_path.joinpath("include.md") include_path.write_text("# Title") parser = RSTParser() document = make_document(parser_cls=RSTParser) parser.parse( f".. include:: {include_path}\n :parser: myst_parser.docutils_", document ) assert ( document.pformat().strip() == dedent( """\ <document source="notset"> <section ids="title" names="title"> <title> Title """ ).strip() ) ������������������������������������������������������MyST-Parser-4.0.0/tests/test_html/������������������������������������������������������������������0000775�0000000�0000000�00000000000�14654155362�0016761�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_html/html_ast.md�������������������������������������������������������0000664�0000000�0000000�00000003727�14654155362�0021127�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������tags . <html> <head> <title class="a b" other="x">Title of the document The content of the document...... . Root('') Tag('html') Data('\n') Tag('head') Data('\n') Tag('title', {'class': 'a b', 'other': 'x'}) Data('Title of the docu...') Data('\n') Data('\n') Tag('body') Data('\nThe content of t...') Data('\n') Data('\n') . un-closed tags .
. Root('') Tag('div', {'class': 'a'}) Data('\n') Tag('div', {'class': 'b'}) Data('\n') . xtag . Girl in a jacket . Root('') XTag('img', {'src': 'img_girl.jpg', 'alt': 'Girl in a jacket', 'width': '500', 'height': '600'}) Data('\n') . data . a . Root('') Data('a\n') . declaration . . Root('') Declaration('DOCTYPE html') Data('\n') . process information . . Root('') Pi('xml-stylesheet ?') Data('\n') . entities . & { . Root('') Entity('amp') Data('\n\n') Char('123') Data('\n') . comments . . Root('') Comment('This is a comment...') Data('\n') . admonition .
Tip
parameter allows to get a deterministic results even if we use some random process (i.e. data shuffling).
. Root('') Tag('div', {'class': 'admonition tip alert alert-warning'}) Data('\n') Tag('div', {'class': 'admonition-title', 'style': 'font-weight: bold;'}) Data('Tip') Data('\nparameter allows...') Data('\n') . image . fishy fishy . Root('') VoidTag('img', {'src': 'img/fun-fish.png', 'alt': 'fishy', 'class': 'bg-primary mb-1', 'width': '200px'}) Data('\n') VoidTag('img', {'src': 'img/fun-fish.png', 'alt': 'fishy', 'class': 'bg-primary mb-1', 'width': '300px'}) Data('\n') . MyST-Parser-4.0.0/tests/test_html/html_round_trip.md000066400000000000000000000022711465415536200225160ustar00rootroot00000000000000tags . Title of the document The content of the document...... . Title of the document The content of the document...... . un-closed tags .
.
. xtag . Girl in a jacket . Girl in a jacket . data . a . a . declaration . . . process information . . . entities . & { . & { . comments . . . image . fishy fishy . fishy fishy . MyST-Parser-4.0.0/tests/test_html/html_to_nodes.md000066400000000000000000000062371465415536200221510ustar00rootroot00000000000000empty . . . text . abc . abc . normal HTML .
.
. image no src . . error . image . . . image unknown attribute . . . image known attributes . . :align: left :class: a b :height: 200px :name: b . multiple images . . . admonition no close .
. :class: admonition . admonition .
. :class: admonition . admonition attributes .
. :class: admonition tip :name: aname . admonition div-title .
*Hallo*
. :class: admonition tip . admonition p-title .

*Hallo*

. :class: admonition tip . admonition title+content .
*Hallo*
content
. :class: admonition content . admonition multiple .
first
content 1
second
content 2
. :class: admonition content 1 :class: admonition content 2 . admonition with paragraphs .

paragraph 1

paragraph 2

. :class: admonition paragraph 1 paragraph 2 . nested .

Some **content**

A *title*

Paragraph 1

Paragraph 2

. :class: admonition Some **content**
A *title*

Paragraph 1

Paragraph 2

. MyST-Parser-4.0.0/tests/test_html/test_html_to_nodes.py000066400000000000000000000022231465415536200232270ustar00rootroot00000000000000from pathlib import Path from unittest.mock import Mock import pytest from docutils import nodes from myst_parser.config.main import MdParserConfig from myst_parser.mdit_to_docutils.html_to_nodes import html_to_nodes FIXTURE_PATH = Path(__file__).parent @pytest.fixture() def mock_renderer(): def _run_directive(name: str, first_line: str, content: str, position: int): node = nodes.Element(name=name, first=first_line, position=position) node += nodes.Text(content) return [node] return Mock( md_config=MdParserConfig(enable_extensions=["html_image", "html_admonition"]), document={"source": "source"}, reporter=Mock( warning=Mock(return_value=nodes.system_message("warning")), error=Mock(return_value=nodes.system_message("error")), ), run_directive=_run_directive, ) @pytest.mark.param_file(FIXTURE_PATH / "html_to_nodes.md") def test_html_to_nodes(file_params, mock_renderer): output = nodes.container() output += html_to_nodes(file_params.content, line_number=0, renderer=mock_renderer) file_params.assert_expected(output.pformat(), rstrip=True) MyST-Parser-4.0.0/tests/test_html/test_parse_html.py000066400000000000000000000021621465415536200225310ustar00rootroot00000000000000from pathlib import Path import pytest from myst_parser.parsers.parse_html import tokenize_html FIXTURE_PATH = Path(__file__).parent @pytest.mark.param_file(FIXTURE_PATH / "html_ast.md") def test_html_ast(file_params): tokens = "\n".join( repr(t) for t in tokenize_html(file_params.content).walk(include_self=True) ) file_params.assert_expected(tokens, rstrip=True) @pytest.mark.param_file(FIXTURE_PATH / "html_round_trip.md") def test_html_round_trip(file_params): ast = tokenize_html(file_params.content) file_params.assert_expected(str(ast), rstrip=True) def test_render_overrides(): text = "
" ast = tokenize_html(text) def _render_abc(element, *args, **kwargs): return "hallo" output = ast.render(tag_overrides={"abc": _render_abc}) assert output == "
hallo
" def test_ast_find(): text = ( '
z
' ) ast = tokenize_html(text) found = list(ast.find("div", classes=["a"])) assert [e.attrs.classes for e in found] == [["a"], ["a", "b"]] MyST-Parser-4.0.0/tests/test_inventory.py000066400000000000000000000034061465415536200204270ustar00rootroot00000000000000"""Test reading of inventory files.""" from pathlib import Path import pytest from myst_parser.config.main import MdParserConfig from myst_parser.inventory import ( filter_inventories, from_sphinx, inventory_cli, load, to_sphinx, ) STATIC = Path(__file__).parent.absolute() / "static" @pytest.mark.parametrize( "value", [ None, {1: 2}, {"key": 1}, {"key": [1, 2]}, {"key": ["a", 1]}, ], ) def test_docutils_config_invalid(value): with pytest.raises((TypeError, ValueError)): MdParserConfig(inventories=value) def test_convert_roundtrip(): with (STATIC / "objects_v2.inv").open("rb") as f: inv = load(f) assert inv == from_sphinx(to_sphinx(inv)) def test_inv_filter(data_regression): with (STATIC / "objects_v2.inv").open("rb") as f: inv = load(f) output = [m.asdict() for m in filter_inventories({"inv": inv}, targets="index")] data_regression.check(output) def test_inv_filter_wildcard(data_regression): with (STATIC / "objects_v2.inv").open("rb") as f: inv = load(f) output = [m.asdict() for m in filter_inventories({"inv": inv}, targets="*index")] data_regression.check(output) @pytest.mark.parametrize( "options", [(), ("-d", "std"), ("-o", "doc"), ("-n", "ref"), ("-l", "index.html*")] ) def test_inv_cli_v2(options, capsys, file_regression): inventory_cli([str(STATIC / "objects_v2.inv"), "-f", "yaml", *options]) text = capsys.readouterr().out.strip() + "\n" file_regression.check(text, extension=".yaml") def test_inv_cli_v1(capsys, file_regression): inventory_cli([str(STATIC / "objects_v1.inv"), "-f", "yaml"]) text = capsys.readouterr().out.strip() + "\n" file_regression.check(text, extension=".yaml") MyST-Parser-4.0.0/tests/test_inventory/000077500000000000000000000000001465415536200200525ustar00rootroot00000000000000MyST-Parser-4.0.0/tests/test_inventory/test_inv_cli_v1.yaml000066400000000000000000000003311465415536200240230ustar00rootroot00000000000000name: foo version: '1.0' base_url: null objects: py: module: module: loc: foo.html#module-module text: null class: module.cls: loc: foo.html#module.cls text: null MyST-Parser-4.0.0/tests/test_inventory/test_inv_cli_v2_options0_.yaml000066400000000000000000000007341465415536200260250ustar00rootroot00000000000000name: Python version: '' base_url: null objects: std: label: genindex: loc: genindex.html text: Index modindex: loc: py-modindex.html text: Module Index py-modindex: loc: py-modindex.html text: Python Module Index ref: loc: index.html#ref text: Title search: loc: search.html text: Search Page doc: index: loc: index.html text: Title MyST-Parser-4.0.0/tests/test_inventory/test_inv_cli_v2_options1_.yaml000066400000000000000000000007341465415536200260260ustar00rootroot00000000000000name: Python version: '' base_url: null objects: std: label: genindex: loc: genindex.html text: Index modindex: loc: py-modindex.html text: Module Index py-modindex: loc: py-modindex.html text: Python Module Index ref: loc: index.html#ref text: Title search: loc: search.html text: Search Page doc: index: loc: index.html text: Title MyST-Parser-4.0.0/tests/test_inventory/test_inv_cli_v2_options2_.yaml000066400000000000000000000001721465415536200260230ustar00rootroot00000000000000name: Python version: '' base_url: null objects: std: doc: index: loc: index.html text: Title MyST-Parser-4.0.0/tests/test_inventory/test_inv_cli_v2_options3_.yaml000066400000000000000000000001761465415536200260300ustar00rootroot00000000000000name: Python version: '' base_url: null objects: std: label: ref: loc: index.html#ref text: Title MyST-Parser-4.0.0/tests/test_inventory/test_inv_cli_v2_options4_.yaml000066400000000000000000000003001465415536200260160ustar00rootroot00000000000000name: Python version: '' base_url: null objects: std: label: ref: loc: index.html#ref text: Title doc: index: loc: index.html text: Title MyST-Parser-4.0.0/tests/test_inventory/test_inv_filter.yml000066400000000000000000000002051465415536200237720ustar00rootroot00000000000000- base_url: null domain: std inv: inv loc: index.html name: index otype: doc project: Python text: Title version: '' MyST-Parser-4.0.0/tests/test_inventory/test_inv_filter_wildcard.yml000066400000000000000000000011121465415536200256410ustar00rootroot00000000000000- base_url: null domain: std inv: inv loc: genindex.html name: genindex otype: label project: Python text: Index version: '' - base_url: null domain: std inv: inv loc: py-modindex.html name: modindex otype: label project: Python text: Module Index version: '' - base_url: null domain: std inv: inv loc: py-modindex.html name: py-modindex otype: label project: Python text: Python Module Index version: '' - base_url: null domain: std inv: inv loc: index.html name: index otype: doc project: Python text: Title version: '' MyST-Parser-4.0.0/tests/test_renderers/000077500000000000000000000000001465415536200200065ustar00rootroot00000000000000MyST-Parser-4.0.0/tests/test_renderers/fixtures/000077500000000000000000000000001465415536200216575ustar00rootroot00000000000000MyST-Parser-4.0.0/tests/test_renderers/fixtures/amsmath.md000066400000000000000000000023151465415536200236340ustar00rootroot00000000000000Single Line: . \begin{equation} a \end{equation} . \begin{equation} a \end{equation} . Multi Line: . \begin{equation} a \end{equation} . \begin{equation} a \end{equation} . Multi Line no number: . \begin{equation*} a \end{equation*} . \begin{equation*} a \end{equation*} . In list: . - \begin{equation} a = 1 \end{equation} . \begin{equation} a = 1 \end{equation} . MyST-Parser-4.0.0/tests/test_renderers/fixtures/attributes.md000066400000000000000000000027361465415536200243770ustar00rootroot00000000000000code fence . {lineno-start=1 emphasize-lines="2,3"} ```python a = 1 b = 2 c = 3 ``` . a = 1 b = 2 c = 3 . blockquote . {attribution="Chris Sewell [link](https://source.com)"} > Hallo . Hallo Chris Sewell link . list-style . {style=lower-alpha} 1. a 2. b {style=upper-alpha} 1. a 2. b {style=lower-roman} 1. a 2. b {style=upper-roman} 1. a 2. b . a b a b a b a b . MyST-Parser-4.0.0/tests/test_renderers/fixtures/containers.md000066400000000000000000000015311465415536200243460ustar00rootroot00000000000000Basic note: . ::: {note} *hallo* ::: . hallo . Admonition with options: . ::: {admonition} A **title** :class: other *hallo* ::: . A <strong> title <paragraph> <emphasis> hallo . empty name: . ::: This is **content** ::: . <document source="<src>/index.md"> <container is_div="True"> <paragraph> This is <strong> content . has name: . :::name This is **content** ::: . <document source="<src>/index.md"> <container classes="name" is_div="True"> <paragraph> This is <strong> content . �����������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/fixtures/definition_lists.md���������������������������������0000664�0000000�0000000�00000002262�14654155362�0025551�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Simple: . Term **1** : Definition *1* second paragraph Term 2 ~ Definition 2a ~ Definition 2b Term 3 : code block : > quote : other . <document source="<src>/index.md"> <definition_list classes="simple myst"> <definition_list_item> <term> Term <strong> 1 <definition> <paragraph> Definition <emphasis> 1 <paragraph> second paragraph <definition_list_item> <term> Term 2 <definition> <paragraph> Definition 2a <definition> <paragraph> Definition 2b <definition_list_item> <term> Term 3 <definition> <literal_block language="none" xml:space="preserve"> code block <definition> <block_quote> <paragraph> quote <definition> <paragraph> other . ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/fixtures/directive_options.md��������������������������������0000664�0000000�0000000�00000010536�14654155362�0025737�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Test Directive 1: . ```{restructuredtext-test-directive} ``` . <document source="<src>/index.md"> <system_message level="1" line="1" source="<src>/index.md" type="INFO"> <paragraph> Directive processed. Type="restructuredtext-test-directive", arguments=[], options={}, content: None . Test Directive 2: . ```{restructuredtext-test-directive} foo ``` . <document source="<src>/index.md"> <system_message level="1" line="1" source="<src>/index.md" type="INFO"> <paragraph> Directive processed. Type="restructuredtext-test-directive", arguments=[], options={}, content: <literal_block xml:space="preserve"> foo . Test Directive 3: . ```{restructuredtext-test-directive} foo ``` . <document source="<src>/index.md"> <system_message level="1" line="1" source="<src>/index.md" type="INFO"> <paragraph> Directive processed. Type="restructuredtext-test-directive", arguments=['foo'], options={}, content: None . Test Directive 4: . ```{restructuredtext-test-directive} foo bar ``` . <document source="<src>/index.md"> <system_message level="1" line="1" source="<src>/index.md" type="INFO"> <paragraph> Directive processed. Type="restructuredtext-test-directive", arguments=['foo'], options={}, content: <literal_block xml:space="preserve"> bar . Test Directive 5: . ```{restructuredtext-test-directive} foo bar ``` . <document source="<src>/index.md"> <system_message level="1" line="1" source="<src>/index.md" type="INFO"> <paragraph> Directive processed. Type="restructuredtext-test-directive", arguments=['foo bar'], options={}, content: None . Test Directive 6: . ```{restructuredtext-test-directive} foo bar baz ``` . <document source="<src>/index.md"> <system_message level="1" line="1" source="<src>/index.md" type="INFO"> <paragraph> Directive processed. Type="restructuredtext-test-directive", arguments=['foo bar'], options={}, content: <literal_block xml:space="preserve"> baz . Test Directive 7: . ```{restructuredtext-test-directive} foo ``` . <document source="<src>/index.md"> <system_message level="1" line="1" source="<src>/index.md" type="INFO"> <paragraph> Directive processed. Type="restructuredtext-test-directive", arguments=[], options={}, content: <literal_block xml:space="preserve"> foo . Test Directive Options 1: . ```{restructuredtext-test-directive} --- option1: a option2: b --- foo ``` . <document source="<src>/index.md"> <system_message level="1" line="1" source="<src>/index.md" type="INFO"> <paragraph> Directive processed. Type="restructuredtext-test-directive", arguments=[], options={'option1': 'a', 'option2': 'b'}, content: <literal_block xml:space="preserve"> foo . Test Directive Options 2: . ```{restructuredtext-test-directive} :option1: a :option2: b foo ``` . <document source="<src>/index.md"> <system_message level="1" line="1" source="<src>/index.md" type="INFO"> <paragraph> Directive processed. Type="restructuredtext-test-directive", arguments=[], options={'option1': 'a', 'option2': 'b'}, content: <literal_block xml:space="preserve"> foo . Test Directive Options Error: . ```{restructuredtext-test-directive} :option1 :option2: b foo ``` . <document source="<src>/index.md"> <system_message level="2" line="1" source="<src>/index.md" type="WARNING"> <paragraph> 'restructuredtext-test-directive': Invalid options format: expected ':' after key [myst.directive_option] <system_message level="1" line="1" source="<src>/index.md" type="INFO"> <paragraph> Directive processed. Type="restructuredtext-test-directive", arguments=[], options={}, content: <literal_block xml:space="preserve"> foo . Unknown Directive: . ```{unknown} ``` . <document source="<src>/index.md"> <system_message level="2" line="1" source="<src>/index.md" type="WARNING"> <paragraph> Unknown directive type: 'unknown' [myst.directive_unknown] <system_message level="1" line="1" source="<src>/index.md" type="INFO"> <paragraph> No directive entry for "unknown" in module "docutils.parsers.rst.languages.en". Trying "unknown" as canonical directive name. . ������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/fixtures/directive_parsing.txt�������������������������������0000664�0000000�0000000�00000007436�14654155362�0026133�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������note: content in first line only . ```{note} a ``` . arguments: [] body: - a content_offset: 0 options: {} warnings: [] . note: content in body only . ```{note} a ``` . arguments: [] body: - a content_offset: 0 options: {} warnings: [] . note: content in first line and body . ```{note} a b ``` . arguments: [] body: - a - b content_offset: 0 options: {} warnings: [] . note: content after option . ```{note} :class: name a ``` . arguments: [] body: - a content_offset: 1 options: class: - name warnings: [] . note: comment in option . ```{note} :class: name # oops a ``` . arguments: [] body: - a content_offset: 1 options: class: - name warnings: - 'ParseWarnings(msg=''Directive options has # comments, which may not be supported in future versions.'', lineno=0, type=<MystWarnings.DIRECTIVE_OPTION_COMMENTS: ''directive_comments''>)' . note: content after option with new line . ```{note} :class: name a ``` . arguments: [] body: - a content_offset: 2 options: class: - name warnings: [] . note: content after yaml option . ```{note} --- class: name --- a ``` . arguments: [] body: - a content_offset: 3 options: class: - name warnings: [] . note: content in first line and body . ```{note} first line :class: tip body line ``` . arguments: [] body: - first line - '' - body line content_offset: 0 options: class: - tip warnings: - 'ParseWarnings(msg=''Splitting content across first line and body, when an options block is present, is not recommended'', lineno=None, type=<MystWarnings.DIRECTIVE_PARSING: ''directive_parse''>)' . admonition: no options, no new line . ```{admonition} first line body line ``` . arguments: - first line body: - body line content_offset: 0 options: {} warnings: [] . admonition: no options, new line . ```{admonition} first line body line ``` . arguments: - first line body: - body line content_offset: 1 options: {} warnings: [] . admonition: with options . ```{admonition} first line :class: tip body line ``` . arguments: - first line body: - body line content_offset: 2 options: class: - tip warnings: [] . warning: bad yaml . ```{note} --- a: { --- ``` . arguments: [] body: [] content_offset: 3 options: {} warnings: - 'ParseWarnings(msg="Unknown option keys: [''a''] (allowed: [''class'', ''name''])", lineno=1, type=<MystWarnings.DIRECTIVE_OPTION: ''directive_option''>)' . warning: yaml not a dict . ```{note} --- a --- ``` . arguments: [] body: [] content_offset: 3 options: {} warnings: - 'ParseWarnings(msg="Invalid options format: expected '':'' after key", lineno=1, type=<MystWarnings.DIRECTIVE_OPTION: ''directive_option''>)' . warning: unknown option name . ```{note} :unknown: name ``` . arguments: [] body: [] content_offset: 1 options: {} warnings: - 'ParseWarnings(msg="Unknown option keys: [''unknown''] (allowed: [''class'', ''name''])", lineno=0, type=<MystWarnings.DIRECTIVE_OPTION: ''directive_option''>)' . warning: invalid option value . ```{note} :class: 1 ``` . arguments: [] body: [] content_offset: 1 options: {} warnings: - 'ParseWarnings(msg=''Invalid option value for \''class\'': 1: cannot make "1" into a class name'', lineno=0, type=<MystWarnings.DIRECTIVE_OPTION: ''directive_option''>)' . error: missing argument . ```{admonition} ``` . error: 1 argument(s) required, 0 supplied . indented_options . ```{note} :class: name body ``` . arguments: [] body: - body content_offset: 2 options: class: - name warnings: [] . option_flags_std . ```{code-block} :linenos: :lineno-start: 2 :force: body ``` . arguments: [] body: - body content_offset: 4 options: force: null lineno-start: 2 linenos: null warnings: [] . option_flags_delimited . ```{code-block} --- linenos: lineno-start: 2 force: --- body ``` . arguments: [] body: - body content_offset: 6 options: force: null lineno-start: 2 linenos: null warnings: [] . ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/fixtures/docutil_directives.md�������������������������������0000664�0000000�0000000�00000014523�14654155362�0026072�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������[attention] (`docutils.parsers.rst.directives.admonitions.Attention`): . ```{attention} a ``` . <document source="notset"> <attention> <paragraph> a . [caution] (`docutils.parsers.rst.directives.admonitions.Caution`): . ```{caution} a ``` . <document source="notset"> <caution> <paragraph> a . [danger] (`docutils.parsers.rst.directives.admonitions.Danger`): . ```{danger} a ``` . <document source="notset"> <danger> <paragraph> a . [error] (`docutils.parsers.rst.directives.admonitions.Error`): . ```{error} a ``` . <document source="notset"> <error> <paragraph> a . [important] (`docutils.parsers.rst.directives.admonitions.Important`): . ```{important} a ``` . <document source="notset"> <important> <paragraph> a . [note] (`docutils.parsers.rst.directives.admonitions.Note`): . ```{note} a ``` . <document source="notset"> <note> <paragraph> a . [tip] (`docutils.parsers.rst.directives.admonitions.Tip`): . ```{tip} a ``` . <document source="notset"> <tip> <paragraph> a . [hint] (`docutils.parsers.rst.directives.admonitions.Hint`): . ```{hint} a ``` . <document source="notset"> <hint> <paragraph> a . [warning] (`docutils.parsers.rst.directives.admonitions.Warning`): . ```{warning} a ``` . <document source="notset"> <warning> <paragraph> a . [admonition] (`docutils.parsers.rst.directives.admonitions.Admonition`): . ```{admonition} myclass a ``` . <document source="notset"> <admonition classes="admonition-myclass"> <title> myclass <paragraph> a . [sidebar] (`docutils.parsers.rst.directives.body.Sidebar`): . ```{sidebar} sidebar title a ``` . <document source="notset"> <sidebar> <title> sidebar title <paragraph> a . [topic] (`docutils.parsers.rst.directives.body.Topic`): . ```{topic} Topic Title a ``` . <document source="notset"> <topic> <title> Topic Title <paragraph> a . [line-block] (`docutils.parsers.rst.directives.body.LineBlock`) . ```{line-block} line 1 line 2 line 3 ``` . <document source="notset"> <line_block> <line> line 1 <line> line 2 <line_block> <line> line 3 . [parsed-literal] (`docutils.parsers.rst.directives.body.ParsedLiteral`): . ```{parsed-literal} a ``` . <document source="notset"> <literal_block xml:space="preserve"> a . [rubric] (`docutils.parsers.rst.directives.body.Rubric`): . ```{rubric} Rubric Title ``` . <document source="notset"> <rubric> Rubric Title . [epigraph] (`docutils.parsers.rst.directives.body.Epigraph`): . ```{epigraph} a -- attribution ``` . <document source="notset"> <block_quote classes="epigraph"> <paragraph> a <attribution> attribution . [highlights] (`docutils.parsers.rst.directives.body.Highlights`): . ```{highlights} a -- attribution ``` . <document source="notset"> <block_quote classes="highlights"> <paragraph> a <attribution> attribution . [pull-quote] (`docutils.parsers.rst.directives.body.PullQuote`): . ```{pull-quote} a -- attribution ``` . <document source="notset"> <block_quote classes="pull-quote"> <paragraph> a <attribution> attribution . [compound] (`docutils.parsers.rst.directives.body.Compound`): . ```{compound} a ``` . <document source="notset"> <compound> <paragraph> a . [container] (`docutils.parsers.rst.directives.body.Container`): . ```{container} a ``` . <document source="notset"> <container> <paragraph> a . [image] (`docutils.parsers.rst.directives.images.Image`): . ```{image} path/to/image :alt: abc :name: name ``` . <document source="notset"> <image alt="abc" ids="name" names="name" uri="path/to/image"> . [raw] (`docutils.parsers.rst.directives.misc.Raw`): . ```{raw} raw a ``` . <document source="notset"> <raw format="raw" xml:space="preserve"> a . [class] (`docutils.parsers.rst.directives.misc.Class`): . ```{class} myclass a ``` . <document source="notset"> <paragraph classes="myclass"> a . [role] (`docutils.parsers.rst.directives.misc.Role`) + raw (`docutils.parsers.rst.roles.raw_role`): . ```{role} raw-latex(raw) :format: latex ``` {raw-latex}`\tag{content}` . <document source="notset"> <paragraph> <raw classes="raw-latex" format="latex" xml:space="preserve"> \tag{content} . [title] (`docutils.parsers.rst.directives.misc.Title`): . ```{title} title ``` . <document source="notset" title="title"> . [restructuredtext-test-directive] (`docutils.parsers.rst.directives.misc.TestDirective`): . ```{restructuredtext-test-directive} ``` . <document source="notset"> <system_message level="1" line="1" source="notset" type="INFO"> <paragraph> Directive processed. Type="restructuredtext-test-directive", arguments=[], options={}, content: None . [contents] (`docutils.parsers.rst.directives.parts.Contents`): . ```{contents} Contents ``` . <document source="notset"> <topic classes="contents" ids="contents" names="contents"> <title> Contents <pending> .. internal attributes: .transform: docutils.transforms.parts.Contents .details: . [sectnum] (`docutils.parsers.rst.directives.parts.Sectnum`): . ```{sectnum} ``` . <document source="notset"> <pending> .. internal attributes: .transform: docutils.transforms.parts.SectNum .details: . [header] (`docutils.parsers.rst.directives.parts.Header`): . ```{header} a ``` . <document source="notset"> <decoration> <header> <paragraph> a . [footer] (`docutils.parsers.rst.directives.parts.Footer`): . ```{footer} a ``` . <document source="notset"> <decoration> <footer> <paragraph> a . [target-notes] (`docutils.parsers.rst.directives.references.TargetNotes`): . ```{target-notes} ``` . <document source="notset"> <pending> .. internal attributes: .transform: docutils.transforms.references.TargetNotes .details: . �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/fixtures/docutil_link_resolution.md��������������������������0000664�0000000�0000000�00000013125�14654155362�0027146�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������[external] . [alt2](https://www.google.com) [](https://www.google.com) <https://www.google.com> . <document source="<src>/index.md"> <paragraph> <reference refuri="https://www.google.com"> alt2 <reference refuri="https://www.google.com"> <reference refuri="https://www.google.com"> https://www.google.com . [missing] . [](#test) <project:#test> [explicit](#test) [](<#name with spaces>) . <document source="<src>/index.md"> <paragraph> <reference id_link="True" refid="test"> <system_message level="2" line="1" source="<src>/index.md" type="WARNING"> <paragraph> 'myst' reference target not found: 'test' [myst.xref_missing] <reference id_link="True" refid="test"> <system_message level="2" line="1" source="<src>/index.md" type="WARNING"> <paragraph> 'myst' reference target not found: 'test' [myst.xref_missing] <reference id_link="True" refid="test"> explicit <system_message level="2" line="1" source="<src>/index.md" type="WARNING"> <paragraph> 'myst' reference target not found: 'test' [myst.xref_missing] <reference id_link="True" refid="name%20with%20spaces"> <system_message level="2" line="1" source="<src>/index.md" type="WARNING"> <paragraph> 'myst' reference target not found: 'name with spaces' [myst.xref_missing] <src>/index.md:1: (WARNING/2) 'myst' reference target not found: 'test' [myst.xref_missing] <src>/index.md:1: (WARNING/2) 'myst' reference target not found: 'test' [myst.xref_missing] <src>/index.md:1: (WARNING/2) 'myst' reference target not found: 'test' [myst.xref_missing] <src>/index.md:1: (WARNING/2) 'myst' reference target not found: 'name with spaces' [myst.xref_missing] . [implicit_anchor] --myst-heading-anchors=1 . # Title # Longer title with **nested** (syntax) ## Non-anchor heading [](#title) <project:#longer-title-with-nested-syntax> [explicit](#title) . <document source="<src>/index.md"> <section ids="title" names="title" slug="title"> <title> Title <section ids="longer-title-with-nested-syntax" names="longer\ title\ with\ nested\ (syntax)" slug="longer-title-with-nested-syntax"> <title> Longer title with <strong> nested (syntax) <section ids="non-anchor-heading" names="non-anchor\ heading"> <title> Non-anchor heading <paragraph> <reference id_link="True" refid="title"> <inline classes="std std-ref"> Title <reference id_link="True" refid="longer-title-with-nested-syntax"> <inline classes="std std-ref"> Longer title with nested (syntax) <reference id_link="True" refid="title"> explicit . [explicit-heading] . (target)= # Test [](#target) <project:#target> [explicit](#target) . <document ids="test target" names="test target" source="<src>/index.md" title="Test"> <title> Test <target refid="target"> <paragraph> <reference id_link="True" refid="target"> <inline classes="std std-ref"> Test <reference id_link="True" refid="target"> <inline classes="std std-ref"> Test <reference id_link="True" refid="target"> explicit . [explicit>implicit] --myst-heading-anchors=1 . # Test (test)= ## Other [](#test) . <document dupnames="test" ids="test" slug="test" source="<src>/index.md" title="Test"> <title> Test <subtitle ids="other test-1" names="other test"> Other <system_message backrefs="test-1" level="1" line="3" source="<src>/index.md" type="INFO"> <paragraph> Duplicate implicit target name: "test". <target refid="test-1"> <paragraph> <reference id_link="True" refid="test-1"> <inline classes="std std-ref"> Other . [id-with-spaces] . (name with spaces)= Paragraph [](<#name with spaces>) . <document source="<src>/index.md"> <target refid="name-with-spaces"> <paragraph ids="name-with-spaces" names="name\ with\ spaces"> Paragraph <paragraph> <reference id_link="True" refid="name-with-spaces"> <inline classes="std std-ref"> #name with spaces . [ref-table] . ```{table} caption :name: table a | b -- | -- c | d ``` [](#table) <project:#table> [explicit](#table) . <document source="<src>/index.md"> <table classes="colwidths-auto" ids="table" names="table"> <title> caption <tgroup cols="2"> <colspec colwidth="50"> <colspec colwidth="50"> <thead> <row> <entry> <paragraph> a <entry> <paragraph> b <tbody> <row> <entry> <paragraph> c <entry> <paragraph> d <paragraph> <reference id_link="True" refid="table"> <inline classes="std std-ref"> caption <reference id_link="True" refid="table"> <inline classes="std std-ref"> caption <reference id_link="True" refid="table"> explicit . �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/fixtures/docutil_roles.md������������������������������������0000664�0000000�0000000�00000004507�14654155362�0025056�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������-------------------------------- [abbreviation] (`docutils.parsers.rst.roles.GenericRole`): . {abbreviation}`a` . <document source="notset"> <paragraph> <abbreviation> a . -------------------------------- [acronym] (`docutils.parsers.rst.roles.GenericRole`): . {acronym}`a` . <document source="notset"> <paragraph> <acronym> a . -------------------------------- [emphasis] (`docutils.parsers.rst.roles.GenericRole`): . {emphasis}`a` . <document source="notset"> <paragraph> <emphasis> a . -------------------------------- [literal] (`docutils.parsers.rst.roles.GenericRole`): . {literal}`a` . <document source="notset"> <paragraph> <literal> a . -------------------------------- [strong] (`docutils.parsers.rst.roles.GenericRole`): . {strong}`a` . <document source="notset"> <paragraph> <strong> a . -------------------------------- [subscript] (`docutils.parsers.rst.roles.GenericRole`): . {subscript}`a` . <document source="notset"> <paragraph> <subscript> a . -------------------------------- [superscript] (`docutils.parsers.rst.roles.GenericRole`): . {superscript}`a` . <document source="notset"> <paragraph> <superscript> a . -------------------------------- [title-reference] (`docutils.parsers.rst.roles.GenericRole`): . {title-reference}`t` . <document source="notset"> <paragraph> <title_reference> t . -------------------------------- [pep-reference] (`docutils.parsers.rst.roles.pep_reference_role`): . {pep-reference}`0` . <document source="notset"> <paragraph> <reference refuri="https://peps.python.org/pep-0000"> PEP 0 . -------------------------------- [rfc-reference] (`docutils.parsers.rst.roles.rfc_reference_role`): . {rfc-reference}`1` . <document source="notset"> <paragraph> <reference refuri="https://tools.ietf.org/html/rfc1.html"> RFC 1 . -------------------------------- [code] (`docutils.parsers.rst.roles.code_role`): . {code}`a` . <document source="notset"> <paragraph> <literal classes="code"> a . -------------------------------- [math] (`docutils.parsers.rst.roles.math_role`): . {math}`a` . <document source="notset"> <paragraph> <math> a . �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/fixtures/docutil_syntax_elements.md��������������������������0000664�0000000�0000000�00000033162�14654155362�0027153�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Raw . foo . <document source="notset"> <paragraph> foo . Hard-break . foo\ bar . <document source="notset"> <paragraph> foo <raw format="html" xml:space="preserve"> <br /> <raw format="latex" xml:space="preserve"> \\ bar . Strong: . **foo** . <document source="notset"> <paragraph> <strong> foo . Emphasis . *foo* . <document source="notset"> <paragraph> <emphasis> foo . Escaped Emphasis: . \*foo* . <document source="notset"> <paragraph> *foo* . Mixed Inline . a *b* **c** `abc` \\* . <document source="notset"> <paragraph> a <emphasis> b <strong> c <literal> abc \* . Inline Code: . `foo` . <document source="notset"> <paragraph> <literal> foo . Heading: . # foo . <document source="notset"> <section ids="foo" names="foo"> <title> foo . Heading Levels: . # a ## b ### c # d . <document source="notset"> <section ids="a" names="a"> <title> a <section ids="b" names="b"> <title> b <section ids="c" names="c"> <title> c <section ids="d" names="d"> <title> d . Nested heading . > # heading . <document source="notset"> <block_quote> <rubric ids="heading" level="1" names="heading"> heading . Block Code: . foo . <document source="notset"> <literal_block classes="code" xml:space="preserve"> foo . Fenced Code: . ```sh foo ``` . <document source="notset"> <literal_block classes="code sh" xml:space="preserve"> foo . Fenced Code no language: . ``` foo ``` . <document source="notset"> <literal_block classes="code" xml:space="preserve"> foo . Fenced Code no language with trailing whitespace: . ``` foo ``` . <document source="notset"> <literal_block classes="code" xml:space="preserve"> foo . Image empty: . ![]() . <document source="notset"> <paragraph> <image alt="" uri=""> . Image with alt and title: . ![alt](src "title") . <document source="notset"> <paragraph> <image alt="alt" title="title" uri="src"> . Image with escapable html: . ![alt](http://www.google<>.com) . <document source="notset"> <paragraph> <image alt="alt" uri="http://www.google%3C%3E.com"> . Block Quote: . > *foo* . <document source="notset"> <block_quote> <paragraph> <emphasis> foo . Bullet List: . - *foo* * bar . <document source="notset"> <bullet_list bullet="-"> <list_item> <paragraph> <emphasis> foo <bullet_list bullet="*"> <list_item> <paragraph> bar . Nested Bullets . - a - b - c - d . <document source="notset"> <bullet_list bullet="-"> <list_item> <paragraph> a <bullet_list bullet="-"> <list_item> <paragraph> b <bullet_list bullet="-"> <list_item> <paragraph> c <list_item> <paragraph> d . Enumerated List: . 1. *foo* 1) bar para 10. starting 11. enumerator . <document source="notset"> <enumerated_list enumtype="arabic" prefix="" suffix="."> <list_item> <paragraph> <emphasis> foo <enumerated_list enumtype="arabic" prefix="" suffix=")"> <list_item> <paragraph> bar <paragraph> para <enumerated_list enumtype="arabic" prefix="" start="10" suffix="."> <list_item> <paragraph> starting <list_item> <paragraph> enumerator . Nested Enumrated List: . 1. a 2. b 1. c . <document source="notset"> <enumerated_list enumtype="arabic" prefix="" suffix="."> <list_item> <paragraph> a <list_item> <paragraph> b <enumerated_list enumtype="arabic" prefix="" suffix="."> <list_item> <paragraph> c . Sphinx Role containing backtick: . {code}``a=1{`}`` . <document source="notset"> <paragraph> <literal classes="code"> a=1{`} . Target: . (target)= . <document source="notset"> <target ids="target" names="target"> . Target with whitespace: . (target with space)= . <document source="notset"> <target ids="target-with-space" names="target\ with\ space"> . Comments: . line 1 % a comment line 2 . <document source="notset"> <paragraph> line 1 <comment xml:space="preserve"> a comment <paragraph> line 2 . Block Break: . +++ string . <document source="notset"> <comment classes="block_break" xml:space="preserve"> string . Link Reference: . [name][key] [key]: https://www.google.com "a title" . <document source="notset"> <paragraph> <reference reftitle="a title" refuri="https://www.google.com"> name . Link Reference short version: . [name] [name]: https://www.google.com "a title" . <document source="notset"> <paragraph> <reference reftitle="a title" refuri="https://www.google.com"> name . Block Quotes: . ```{epigraph} a b*c* -- a**b** ``` . <document source="notset"> <block_quote classes="epigraph"> <paragraph> a b <emphasis> c <attribution> a <strong> b . Link Definition in directive: . ```{note} [a] ``` [a]: link . <document source="notset"> <note> <paragraph> <reference refname="link"> a . Link Definition in nested directives: . ```{note} [ref1]: link ``` ```{note} [ref1] [ref2] ``` ```{note} [ref2]: link ``` . <document source="notset"> <note> <note> <paragraph> <reference refname="link"> ref1 [ref2] <note> . Footnotes [APPLY TRANSFORMS]: . [^a] [^a]: footnote*text* . <document source="notset"> <paragraph> <footnote_reference auto="1" ids="id1" refid="a"> 1 <transition classes="footnotes"> <footnote auto="1" backrefs="id1" ids="a" names="a"> <label> 1 <paragraph> footnote <emphasis> text . Footnotes nested blocks [APPLY TRANSFORMS]: . [^a] [^a]: footnote*text* abc xyz > a - b c finish . <document source="notset"> <paragraph> <footnote_reference auto="1" ids="id1" refid="a"> 1 <paragraph> finish <transition classes="footnotes"> <footnote auto="1" backrefs="id1" ids="a" names="a"> <label> 1 <paragraph> footnote <emphasis> text <paragraph> abc xyz <block_quote> <paragraph> a <bullet_list bullet="-"> <list_item> <paragraph> b <paragraph> c . Front Matter: . --- a: 1 b: foo c: d: 2 --- . <document source="notset"> <field_list> <field> <field_name> a <field_body> <paragraph> <literal> 1 <field> <field_name> b <field_body> <paragraph> <literal> foo <field> <field_name> c <field_body> <paragraph> <literal> {"d": 2} . Front Matter Biblio: . --- author: Chris Sewell authors: Chris Sewell, Chris Hodgraf organization: EPFL address: | 1 Cedar Park Close Thundersley Essex contact: <https://example.com> version: 1.0 revision: 1.1 status: good date: 2/12/1985 copyright: MIT dedication: | To my *homies* abstract: Something something **dark** side other: Something else --- . <document source="notset"> <field_list> <field> <field_name> author <field_body> <paragraph> Chris Sewell <field> <field_name> authors <field_body> <paragraph> Chris Sewell, Chris Hodgraf <field> <field_name> organization <field_body> <paragraph> EPFL <field> <field_name> address <field_body> <paragraph> 1 Cedar Park Close Thundersley Essex <field> <field_name> contact <field_body> <paragraph> <reference refuri="https://example.com"> https://example.com <field> <field_name> version <field_body> <paragraph> 1.0 <field> <field_name> revision <field_body> <paragraph> 1.1 <field> <field_name> status <field_body> <paragraph> good <field> <field_name> date <field_body> <paragraph> 2/12/1985 <field> <field_name> copyright <field_body> <paragraph> MIT <field> <field_name> dedication <field_body> <paragraph> To my <emphasis> homies <field> <field_name> abstract <field_body> <paragraph> Something something <strong> dark side <field> <field_name> other <field_body> <paragraph> <literal> Something else . Front Matter Bad Yaml: . --- a: { --- . <document source="notset"> <system_message level="2" line="1" source="notset" type="WARNING"> <paragraph> Malformed YAML [myst.topmatter] . Front Matter HTML Meta . --- myst: html_meta: keywords: Sphinx, documentation, builder description lang=en: An amusing story description lang=fr: Un histoire amusant http-equiv=Content-Type: text/html; charset=ISO-8859-1 --- . <document source="notset"> <pending> .. internal attributes: .transform: docutils.transforms.components.Filter .details: component: 'writer' format: 'html' nodes: <meta content="Sphinx, documentation, builder" name="keywords"> <pending> .. internal attributes: .transform: docutils.transforms.components.Filter .details: component: 'writer' format: 'html' nodes: <meta content="An amusing story" lang="en" name="description"> <pending> .. internal attributes: .transform: docutils.transforms.components.Filter .details: component: 'writer' format: 'html' nodes: <meta content="Un histoire amusant" lang="fr" name="description"> <pending> .. internal attributes: .transform: docutils.transforms.components.Filter .details: component: 'writer' format: 'html' nodes: <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"> . Full Test: . --- a: 1 --- (target)= # header 1 ## sub header 1 a *b* **c** `abc` ## sub header 2 x y [a](http://www.xyz.com) z --- # header 2 ```::python {a=1} a = 1 ``` [](target) . <document source="notset"> <field_list> <field> <field_name> a <field_body> <paragraph> <literal> 1 <target ids="target" names="target"> <section ids="header-1" names="header\ 1"> <title> header 1 <section ids="sub-header-1" names="sub\ header\ 1"> <title> sub header 1 <paragraph> a <emphasis> b <strong> c <literal> abc <section ids="sub-header-2" names="sub\ header\ 2"> <title> sub header 2 <paragraph> x y <reference refuri="http://www.xyz.com"> a z <transition> <section ids="header-2" names="header\ 2"> <title> header 2 <literal_block classes="code ::python" xml:space="preserve"> a = 1 <paragraph> <reference refname="target"> . ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/fixtures/docutil_syntax_extensions.txt�����������������������0000664�0000000�0000000�00000006132�14654155362�0027752�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������[dollarmath] --myst-enable-extensions=dollarmath . $foo$ a $foo bar$ b $$foo$$ $$ a = 1 $$ $$ b = 2 $$ (label) . <document source="<string>"> <paragraph> <math> foo <paragraph> a <math> foo bar b <math_block nowrap="False" number="True" xml:space="preserve"> foo <math_block nowrap="False" number="True" xml:space="preserve"> a = 1 <math_block ids="label" names="label" nowrap="False" number="True" xml:space="preserve"> b = 2 . [amsmath] --myst-enable-extensions=amsmath . \begin{equation} a \end{equation} \begin{equation} a \end{equation} \begin{equation*} a \end{equation*} . <document source="<string>"> <math_block classes="amsmath" nowrap="True" numbered="True" xml:space="preserve"> \begin{equation} a \end{equation} <math_block classes="amsmath" nowrap="True" numbered="True" xml:space="preserve"> \begin{equation} a \end{equation} <math_block classes="amsmath" nowrap="True" xml:space="preserve"> \begin{equation*} a \end{equation*} . [deflist] --myst-enable-extensions=deflist . term : definition . <document source="<string>"> <definition_list classes="simple myst"> <definition_list_item> <term> term <definition> <paragraph> definition . [fieldlist] --myst-enable-extensions=fieldlist . :name: value . <document source="<string>"> <docinfo> <field classes="name"> <field_name> name <field_body> <paragraph> value . [colon_fence] --myst-enable-extensions=colon_fence . :::{note} content ::: . <document source="<string>"> <note> <paragraph> content . [replacements] --myst-enable-extensions=replacements . (c) (C) (r) (R) (tm) (TM) (p) (P) +- ... . <document source="<string>"> <paragraph> Β© Β© Β Β β„’ β„’ (p) (P) Β± … . [strikethrough] --myst-enable-extensions=strikethrough . ~~foo~~ . <document source="<string>"> <paragraph> <system_message level="2" line="1" source="<string>" type="WARNING"> <paragraph> Strikethrough is currently only supported in HTML output [myst.strikethrough] <raw format="html" xml:space="preserve"> <s> foo <raw format="html" xml:space="preserve"> </s> . [tasklist] --myst-enable-extensions=tasklist . - [ ] foo - [x] bar . <document source="<string>"> <bullet_list bullet="-" classes="contains-task-list"> <list_item classes="task-list-item"> <paragraph> <raw format="html" xml:space="preserve"> <input class="task-list-item-checkbox" disabled="disabled" type="checkbox"> foo <list_item classes="task-list-item"> <paragraph> <raw format="html" xml:space="preserve"> <input class="task-list-item-checkbox" checked="checked" disabled="disabled" type="checkbox"> bar . ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/fixtures/dollarmath.md���������������������������������������0000664�0000000�0000000�00000002134�14654155362�0024330�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Inline Math: . $foo$ . <document source="<src>/index.md"> <paragraph> <math> foo . Inline Math, multi-line: . a $foo bar$ b . <document source="<src>/index.md"> <paragraph> a <math> foo bar b . Inline Math, multi-line with line break (invalid): . a $foo bar$ b . <document source="<src>/index.md"> <paragraph> a $foo <paragraph> bar$ b . Math Block: . $$foo$$ . <document source="<src>/index.md"> <math_block nowrap="False" number="True" xml:space="preserve"> foo . Math Block With Equation Label: . $$foo$$ (abc) . <document source="<src>/index.md"> <target ids="equation-abc"> <math_block docname="index" label="abc" nowrap="False" number="1" xml:space="preserve"> foo . Math Block multiple: . $$ a = 1 $$ $$ b = 2 $$ (a) . <document source="<src>/index.md"> <math_block nowrap="False" number="True" xml:space="preserve"> a = 1 <target ids="equation-a"> <math_block docname="index" label="a" nowrap="False" number="1" xml:space="preserve"> b = 2 . ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/fixtures/eval_rst.md�����������������������������������������0000664�0000000�0000000�00000000740�14654155362�0024021�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������eval-rst link . ```{eval-rst} `MyST Parser <https://myst-parser.readthedocs.io/>`_ ``` . <document source="<src>/index.md"> <paragraph> <reference name="MyST Parser" refuri="https://myst-parser.readthedocs.io/"> MyST Parser <target ids="myst-parser" names="myst\ parser" refuri="https://myst-parser.readthedocs.io/"> . eval-rst bold . ```{eval-rst} **bold** . <document source="<src>/index.md"> <paragraph> <strong> bold . ��������������������������������MyST-Parser-4.0.0/tests/test_renderers/fixtures/mock_include.md�������������������������������������0000664�0000000�0000000�00000001761�14654155362�0024642�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Basic Include: . ```{include} other.md ``` . <document source="tmpdir/test.md"> <paragraph> a b c . Include with Front Matter (should be ignored): . ```{include} fmatter.md ``` . <document source="tmpdir/test.md"> <paragraph> b . Include Literal: . ```{include} other.md :literal: True ``` . <document source="tmpdir/test.md"> <literal_block source="tmpdir/other.md" xml:space="preserve"> a b c . Include Literal, line range: . ```{include} other.md :literal: True :start-line: 1 :end-line: 2 ``` . <document source="tmpdir/test.md"> <literal_block source="tmpdir/other.md" xml:space="preserve"> b . Include code: . ```{include} other.md :code: md ``` . <document source="tmpdir/test.md"> <literal_block classes="code md" source="tmpdir/other.md" xml:space="preserve"> a <inline classes="whitespace"> b <inline classes="whitespace"> c . ���������������MyST-Parser-4.0.0/tests/test_renderers/fixtures/mock_include_errors.md������������������������������0000664�0000000�0000000�00000000613�14654155362�0026231�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Missing path: . ```{include} ``` . tmpdir/test.md:1: (ERROR/3) Directive 'include': 1 argument(s) required, 0 supplied . Non-existent path: . ```{include} other.md ``` . tmpdir/test.md:1: (SEVERE/4) Directive "include": file not found: 'tmpdir/other.md' . Error in include file: . ```{include} bad.md ``` . tmpdir/bad.md:2: (WARNING/2) Unknown interpreted text role "a". [myst.role_unknown] . ���������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/fixtures/myst-config.txt�������������������������������������0000664�0000000�0000000�00000036120�14654155362�0024661�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������[suppress-warnings] --myst-suppress-warnings="myst.header" . # A ### B . <document ids="a" names="a" source="<string>" title="A"> <title> A <subtitle ids="b" names="b"> B . [title-to-header] --myst-title-to-header="yes" . --- title: "The title *nested syntax*" --- # Other header . <document source="<string>"> <docinfo> <field classes="title"> <field_name> title <field_body> <paragraph> <literal> The title *nested syntax* <section ids="the-title-nested-syntax" names="the\ title\ nested\ syntax"> <title> The title <emphasis> nested syntax <section ids="other-header" names="other\ header"> <title> Other header . [linkify] --myst-enable-extensions=linkify . www.example.com . <document source="<string>"> <paragraph> <reference refuri="http://www.example.com"> www.example.com . [gfm-strikethrough] --myst-gfm-only="yes" . ~~strike~~ . <document source="<string>"> <paragraph> <system_message level="2" line="1" source="<string>" type="WARNING"> <paragraph> Strikethrough is currently only supported in HTML output [myst.strikethrough] <raw format="html" xml:space="preserve"> <s> strike <raw format="html" xml:space="preserve"> </s> <string>:1: (WARNING/2) Strikethrough is currently only supported in HTML output [myst.strikethrough] . [gfm-disallowed-html] --myst-gfm-only="yes" . <strong> <title> <style> <em> <blockquote> <xmp> is disallowed. <XMP> is also disallowed. </blockquote> . <document source="<string>"> <paragraph> <raw format="html" xml:space="preserve"> <strong> <raw format="html" xml:space="preserve"> <title> <raw format="html" xml:space="preserve"> <style> <raw format="html" xml:space="preserve"> <em> <raw format="html" xml:space="preserve"> <blockquote> <xmp> is disallowed. <XMP> is also disallowed. </blockquote> . [gfm-autolink] --myst-gfm-only="yes" . www.commonmark.org Visit www.commonmark.org/help for more information. www.google.com/search?q=Markup+(business) www.google.com/search?q=Markup+(business))) (www.google.com/search?q=Markup+(business)) (www.google.com/search?q=Markup+(business) www.google.com/search?q=(business))+ok www.google.com/search?q=commonmark&hl=en www.google.com/search?q=commonmark&hl; www.commonmark.org/he<lp . <document source="<string>"> <paragraph> <reference refuri="http://www.commonmark.org"> www.commonmark.org <paragraph> Visit <reference refuri="http://www.commonmark.org/help"> www.commonmark.org/help for more information. <paragraph> <reference refuri="http://www.google.com/search?q=Markup+(business)"> www.google.com/search?q=Markup+(business) <paragraph> <reference refuri="http://www.google.com/search?q=Markup+(business)"> www.google.com/search?q=Markup+(business) )) <paragraph> ( <reference refuri="http://www.google.com/search?q=Markup+(business)"> www.google.com/search?q=Markup+(business) ) <paragraph> ( <reference refuri="http://www.google.com/search?q=Markup+(business)"> www.google.com/search?q=Markup+(business) <paragraph> <reference refuri="http://www.google.com/search?q=(business)"> www.google.com/search?q=(business) )+ok <paragraph> <reference refuri="http://www.google.com/search?q=commonmark&hl=en"> www.google.com/search?q=commonmark&hl=en <paragraph> <reference refuri="http://www.google.com/search?q=commonmark&hl"> www.google.com/search?q=commonmark&hl ; <paragraph> <reference refuri="http://www.commonmark.org/he"> www.commonmark.org/he <lp . [tasklist] --myst-enable-extensions=tasklist --myst-enable-checkboxes="true" . - [ ] a - [x] b . <document source="<string>"> <bullet_list bullet="-" classes="contains-task-list"> <list_item classes="task-list-item enabled"> <paragraph> <raw format="html" xml:space="preserve"> <input class="task-list-item-checkbox" type="checkbox"> a <list_item classes="task-list-item enabled"> <paragraph> <raw format="html" xml:space="preserve"> <input class="task-list-item-checkbox" checked="checked" type="checkbox"> b . [url_schemes] --myst-url-schemes="{'ab': null, 'cd': '{{path}}', 'ef': {'url': 'https://{{path}}#{{fragment}}', 'title': 'My {{query}}', 'classes': ['xyz']}}" . <ab:xyz> <cd:xyz> <ef:xyz?text#other> . <document source="<string>"> <paragraph> <reference refuri="ab:xyz"> ab:xyz <reference refuri="xyz"> cd:xyz <reference classes="xyz" refuri="https://xyz#other"> My text . [url_schemes_list] --myst-url-schemes=ab . [](ab:c) [](http:c) . <document source="<string>"> <paragraph> <reference refuri="ab:c"> <problematic ids="problematic-1" refid="system-message-1"> <section classes="system-messages"> <title> Docutils System Messages <system_message backrefs="problematic-1" ids="system-message-1" level="3" line="1" source="<string>" type="ERROR"> <paragraph> Unknown target name: "http:c". <string>:1: (ERROR/3) Unknown target name: "http:c". . [heading_anchors] --myst-heading-anchors=1 . # My title [](#my-title) . <document ids="my-title" names="my\ title" slug="my-title" source="<string>" title="My title"> <title> My title <paragraph> <reference id_link="True" refid="my-title"> <inline classes="std std-ref"> My title . [html_meta] --myst-html-meta='{"keywords": "Sphinx, MyST"}' . text . <document source="<string>"> <meta content="Sphinx, MyST" name="keywords"> <paragraph> text . [substitutions] --myst-enable-extensions=substitution --myst-substitutions='{"a": "b", "c": "d", "e": "{{f}}", "f": "{{e}}"}' . {{a}} {{c}} {{x}} {{e}} . <document source="<string>"> <paragraph> b d <system_message level="2" line="1" source="<string>" type="WARNING"> <paragraph> Substitution error:UndefinedError: 'x' is undefined [myst.substitution] <system_message level="2" line="3" source="<string>" type="WARNING"> <paragraph> circular substitution reference: {'e'} [myst.substitution] <string>:1: (WARNING/2) Substitution error:UndefinedError: 'x' is undefined [myst.substitution] <string>:3: (WARNING/2) circular substitution reference: {'e'} [myst.substitution] . [attrs_image] --myst-enable-extensions=attrs_image . a . <document source="<string>"> <paragraph> a <string>:: (WARNING/2) The `attrs_image` extension is deprecated, please use `attrs_inline` instead. [myst.deprecated] . [attrs_inline_span] --myst-enable-extensions=attrs_inline . [content]{#id .a .b} . <document source="<string>"> <paragraph> <inline classes="a b" ids="id" names="id"> content . [attrs_inline_code] --myst-enable-extensions=attrs_inline . `content`{#id .a .b language=python} . <document source="<string>"> <paragraph> <literal classes="a b code" ids="id" language="python" names="id"> content . [attrs_inline_links] --myst-enable-extensions=attrs_inline . <https://example.com>{.a .b} [hi](abc){.external} (other)= [text1](https://example.com){#id1 .a .b} [text2](other){#id2 .c .d} [ref]{#id3 .e .f} [ref]: https://example.com [text3](https://example.com){target="g"} [text4](https://example.com){rel="h"} . <document source="<string>"> <paragraph> <reference classes="a b" refuri="https://example.com"> https://example.com <paragraph> <reference classes="external" refuri="abc"> hi <target refid="other"> <paragraph ids="other" names="other"> <reference classes="a b" ids="id1" names="id1" refuri="https://example.com"> text1 <paragraph> <reference classes="c d" ids="id2" names="id2" refid="other"> text2 <paragraph> <reference classes="e f" ids="id3" names="id3" refuri="https://example.com"> ref <paragraph> <reference refuri="https://example.com" target="g"> text3 <paragraph> <reference refuri="https://example.com" rel="h"> text4 . [attrs_inline_image] --myst-enable-extensions=attrs_inline . ![a](b){#id .a width="100%" align=center height=20px}{.b} . <document source="<string>"> <paragraph> <image align="center" alt="a" classes="a b" height="20px" ids="id" names="id" uri="b" width="100%"> . [attrs_inline_image_warnings] --myst-enable-extensions=attrs_inline . ![a](b){width=1x height=2x align=other } . <document source="<string>"> <paragraph> <image alt="a" uri="b"> <system_message level="2" line="1" source="<string>" type="WARNING"> <paragraph> Invalid 'width' attribute value: '1x' [myst.attribute] <system_message level="2" line="1" source="<string>" type="WARNING"> <paragraph> Invalid 'height' attribute value: '2x' [myst.attribute] <system_message level="2" line="1" source="<string>" type="WARNING"> <paragraph> Invalid 'align' attribute value: 'other' [myst.attribute] <string>:1: (WARNING/2) Invalid 'width' attribute value: '1x' [myst.attribute] <string>:1: (WARNING/2) Invalid 'height' attribute value: '2x' [myst.attribute] <string>:1: (WARNING/2) Invalid 'align' attribute value: 'other' [myst.attribute] . [attrs_block] --myst-enable-extensions=attrs_block . {#myid1 .class1 .class2} {#myid2 .class3} My paragraph {attribution="Chris Sewell"} > Hallo . <document source="<string>"> <paragraph classes="class1 class2 class3" ids="myid2" names="myid2"> My paragraph <block_quote> <paragraph> Hallo <attribution> Chris Sewell . [inv_link] . <inv:#index> [](inv:#index) [*explicit*](inv:#index) <inv:key#index> [](inv:key#index) <inv:key:std:label#search> [](inv:key:std:label#search) <inv:#in*> [](inv:#in*) <inv:key:*:doc#index> [](inv:key:*:doc#index) . <document source="<string>"> <paragraph> <reference internal="False" inv_match="key:std:doc:index" reftitle="Python" refuri="https://example.com/index.html"> Title <reference internal="False" inv_match="key:std:doc:index" reftitle="Python" refuri="https://example.com/index.html"> Title <reference internal="False" inv_match="key:std:doc:index" reftitle="Python" refuri="https://example.com/index.html"> <emphasis> explicit <reference internal="False" inv_match="key:std:doc:index" reftitle="Python" refuri="https://example.com/index.html"> Title <reference internal="False" inv_match="key:std:doc:index" reftitle="Python" refuri="https://example.com/index.html"> Title <reference internal="False" inv_match="key:std:label:search" reftitle="Python" refuri="https://example.com/search.html"> Search Page <reference internal="False" inv_match="key:std:label:search" reftitle="Python" refuri="https://example.com/search.html"> Search Page <reference internal="False" inv_match="key:std:doc:index" reftitle="Python" refuri="https://example.com/index.html"> Title <reference internal="False" inv_match="key:std:doc:index" reftitle="Python" refuri="https://example.com/index.html"> Title <reference internal="False" inv_match="key:std:doc:index" reftitle="Python" refuri="https://example.com/index.html"> Title <reference internal="False" inv_match="key:std:doc:index" reftitle="Python" refuri="https://example.com/index.html"> Title . [inv_link_error] . <inv:#other> <inv:*:*:*#*index> . <document source="<string>"> <paragraph> <system_message level="2" line="1" source="<string>" type="WARNING"> <paragraph> No matches for '*:*:*:other' [myst.iref_missing] <paragraph> <system_message level="2" line="3" source="<string>" type="WARNING"> <paragraph> Multiple matches for '*:*:*:*index': key:std:label:genindex, key:std:label:modindex, key:std:label:py-modindex, ... [myst.iref_ambiguous] <reference internal="False" inv_match="key:std:label:genindex" reftitle="Python" refuri="https://example.com/genindex.html"> Index <string>:1: (WARNING/2) No matches for '*:*:*:other' [myst.iref_missing] <string>:3: (WARNING/2) Multiple matches for '*:*:*:*index': key:std:label:genindex, key:std:label:modindex, key:std:label:py-modindex, ... [myst.iref_ambiguous] . [heading_slug_func] --myst-heading-anchors=2 --myst-heading-slug-func=myst_parser.config.main._test_slug_func . # title ## title ## title a b c ## title *nested syntax* ### other [reversed](#eltit) . <document dupnames="title" ids="title" slug="eltit" source="<string>" title="title"> <title> title <section dupnames="title" ids="title-1" slug="eltit-1"> <title> title <section ids="title-a-b-c" names="title\ a\ b\ c" slug="c b a eltit"> <title> title a b c <section ids="title-nested-syntax" names="title\ nested\ syntax" slug="xatnys detsen eltit"> <title> title <emphasis> nested syntax <section ids="other" names="other"> <title> other <paragraph> <reference id_link="True" refid="title"> reversed . [fence_as_directive] --myst-fence-as-directive=unknown,admonition --myst-enable-extensions=attrs_block . ```unknown ``` {#myname .class1} {a=b} ```admonition title content ``` . <document source="<string>"> <system_message level="2" line="1" source="<string>" type="WARNING"> <paragraph> Unknown directive type: 'unknown' [myst.directive_unknown] <system_message level="2" line="6" source="<string>" type="WARNING"> <paragraph> 'admonition': Unknown option keys: ['a'] (allowed: ['class', 'name']) [myst.directive_option] <admonition classes="class1" ids="myname" names="myname"> <title> title <paragraph> content <string>:1: (WARNING/2) Unknown directive type: 'unknown' [myst.directive_unknown] <string>:6: (WARNING/2) 'admonition': Unknown option keys: ['a'] (allowed: ['class', 'name']) [myst.directive_option] . [links-external-new-tab] --myst-links-external-new-tab="true" . [text](https://example.com) . <document source="<string>"> <paragraph> <reference refuri="https://example.com" rel="noreferer noopener" target="_blank"> text . ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/fixtures/option_parsing.yaml���������������������������������0000664�0000000�0000000�00000005430�14654155362�0025600�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������plain key/values: content: |- key1: key2: val2 key3: val3 key4: val4.1 val4.2 expected: |- { "dict": [ [ "key1", "" ], [ "key2", "val2" ], [ "key3", "val3" ], [ "key4", "val4.1 val4.2" ] ], "comments": false } plain key/values with comments: content: |- key1: # comment key2: val2 # comment # comment key3: val3 # comment key4: val4.1 val4.2 # comment expected: |- { "dict": [ [ "key1", "" ], [ "key2", "val2" ], [ "key3", "val3" ], [ "key4", "val4.1 val4.2" ] ], "comments": true } quoted key/values: content: |- "key1": "val1" 'key2': 'val2' "key 3": "val 3" escapes: "\"\e\x07" expected: |- { "dict": [ [ "key1", "val1" ], [ "key2", "val2" ], [ "key 3", "val 3" ], [ "escapes", "\"\u001b\u0007" ] ], "comments": false } literal values: content: | key1: | val1.1 val1.2 val1.3 key2: |2 val2.1 val2.2 val2.3 key3: |- val3.1 val3.2 val3.3 key4: |+ val4.1 val4.2 val4.3 expected: |- { "dict": [ [ "key1", "val1.1\nval1.2\n\nval1.3\n" ], [ "key2", " val2.1\nval2.2\n\n val2.3\n" ], [ "key3", "val3.1\nval3.2\n\nval3.3" ], [ "key4", "val4.1\nval4.2\n\nval4.3\n" ] ], "comments": false } folded values: content: | key1: > val1.1 val1.2 val1.3 key2: >2 val2.1 val2.2 val2.3 key3: >- val3.1 val3.2 val3.3 key4: >+ val4.1 val4.2 val4.3 expected: |- { "dict": [ [ "key1", "val1.1 val1.2\nval1.3\n" ], [ "key2", " val2.1\nval2.2\n\n val2.3\n" ], [ "key3", "val3.1 val3.2\nval3.3" ], [ "key4", "val4.1 val4.2\nval4.3\n" ] ], "comments": false } empty_final_value: content: |- key1: val1 key2: expected: |- { "dict": [ [ "key1", "val1" ], [ "key2", "" ] ], "comments": false } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/fixtures/option_parsing_errors.yaml��������������������������0000664�0000000�0000000�00000001510�14654155362�0027167�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������no `:`: content: | key1 expected: |- expected ':' after key at line 1, column 0 Indented key: content: |2 key1: value1 expected: |- expected key to start at column 0 at line 0, column 1 Quote not closed: content: | key1: "value1 expected: |- while scanning a quoted scalar at line 0, column 6 found unexpected end of stream at line 1, column 0 Content after literal: content: | key1: | value1 extra expected: |- while scanning a block scalar at line 0, column 6 expected a comment or a line break, but found 'v' at line 0, column 8 Content after folded: content: | key1: > value1 extra expected: |- while scanning a block scalar at line 0, column 6 expected a comment or a line break, but found 'v' at line 0, column 8 ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/fixtures/reporter_warnings.md��������������������������������0000664�0000000�0000000�00000006110�14654155362�0025751�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Duplicate Reference definitions: . [a]: b [a]: c . <string>:2: (WARNING/2) Duplicate reference definition: A [myst.duplicate_def] . Missing Reference: . [a](b) . <string>:1: (ERROR/3) Unknown target name: "b". . Unknown role: . abc {xyz}`a` . <string>:3: (WARNING/2) Unknown interpreted text role "xyz". [myst.role_unknown] . Unknown directive: . ```{xyz} ``` . <string>:2: (WARNING/2) Unknown directive type: 'xyz' [myst.directive_unknown] . Bad Front Matter: . --- a: { --- . <string>:1: (WARNING/2) Malformed YAML [myst.topmatter] . Unknown Front Matter myst key: . --- myst: unknown: true --- . <string>:1: (WARNING/2) Unknown field: unknown [myst.topmatter] . Invalid Front Matter myst key: . --- myst: title_to_header: 1 url_schemes: [1] substitutions: key: [] --- . <string>:1: (WARNING/2) 'title_to_header' must be of type <class 'bool'> (got 1 that is a <class 'int'>). [myst.topmatter] <string>:1: (WARNING/2) 'url_schemes' is not a list of strings: [1] [myst.topmatter] . Bad HTML Meta . --- myst: html_meta: name noequals: value --- . <string>:: (ERROR/3) Error parsing meta tag attribute "name noequals": no '=' in noequals. . Directive parsing error: . ```{class} ``` . <string>:2: (ERROR/3) Directive 'class': 1 argument(s) required, 0 supplied . Directive run error: . ```{date} x ``` . <string>:2: (ERROR/3) Invalid context: the "date" directive can only be used within a substitution definition. . Do not start headings at H1: . ## title 1 . <string>:1: (WARNING/2) Document headings start at H2, not H1 [myst.header] . Non-consecutive headings: . # title 1 ### title 3 . <string>:2: (WARNING/2) Non-consecutive header level increase; H1 to H3 [myst.header] . footnote reference with no definition . [^1] [^a] . <string>:3: (ERROR/3) Too many autonumbered footnote references: only 0 corresponding footnotes available. <string>:1: (ERROR/3) Unknown target name: "1". <string>:3: (ERROR/3) Unknown target name: "a". . footnote definition with no reference . [^1]: definition [^a]: definition . <string>:1: (WARNING/2) Footnote [1] is not referenced. [ref.footnote] <string>:2: (WARNING/2) Footnote [#] is not referenced. [ref.footnote] . duplicate footnote definition . [^a] [^a]: definition 1 [^a]: definition 2 . <string>:4: (WARNING/2) Duplicate footnote definition found for label: 'a' [ref.footnote] . Warnings in eval-rst . some external lines ```{eval-rst} some internal lines .. unknown:: some text :unknown:`a` ``` . <string>:10: (ERROR/3) Unknown directive type "unknown". .. unknown:: some text <string>:12: (ERROR/3) Unknown interpreted text role "unknown". . directive bad-option-value . ```{note} :class: [1] ``` . <string>:1: (WARNING/2) 'note': Invalid option value for 'class': [1]: cannot make "[1]" into a class name [myst.directive_option] <string>:1: (ERROR/3) Content block expected for the "note" directive; none found. . header nested in admonition . ```{note} # Header ``` . . nested parse warning . Paragraph ```{note} :class: abc :name: xyz {unknown}`a` ``` . <string>:7: (WARNING/2) Unknown interpreted text role "unknown". [myst.role_unknown] . ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/fixtures/sphinx_directives.md��������������������������������0000664�0000000�0000000�00000023720�14654155362�0025737�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������default-role (`sphinx.directives.DefaultRole`): . ```{default-role} ``` . <document source="<src>/index.md"> . default-domain (`sphinx.directives.DefaultDomain`): . ```{default-domain} mydomain ``` . <document source="<src>/index.md"> . object (`sphinx.directives.ObjectDescription`): . ```{object} something ``` . <document source="<src>/index.md"> <index entries=""> <desc classes="object" desctype="object" domain="" nocontentsentry="False" noindex="False" noindexentry="False" objtype="object"> <desc_signature _toc_name="" _toc_parts="()" classes="sig sig-object"> <desc_name classes="sig-name descname" xml:space="preserve"> something <desc_content> . highlight (`sphinx.directives.code.Highlight`): . ```{highlight} something ``` . <document source="<src>/index.md"> <highlightlang force="False" lang="something" linenothreshold="9223372036854775807"> . code-block (`sphinx.directives.code.CodeBlock`): . ```{code-block} :dedent: a=1 ``` . <document source="<src>/index.md"> <literal_block force="False" highlight_args="{}" language="default" xml:space="preserve"> a=1 . sourcecode (`sphinx.directives.code.CodeBlock`): . ```{sourcecode} ``` . <document source="<src>/index.md"> <literal_block force="False" highlight_args="{}" language="default" xml:space="preserve"> . SKIP: Tested in sphinx builds . ```{literalinclude} /path/to/file ``` . <document source="notset"> <system_message level="2" line="1" source="notset" type="WARNING"> <paragraph> Include file '/srcdir/path/to/file' not found or reading it failed . toctree (`sphinx.directives.other.TocTree`): . ```{toctree} ``` . <document source="<src>/index.md"> <compound classes="toctree-wrapper"> <toctree caption="True" entries="" glob="False" hidden="False" includefiles="" includehidden="False" maxdepth="-1" numbered="0" parent="index" titlesonly="False"> . sectionauthor (`sphinx.directives.other.Author`): . ```{sectionauthor} bob geldof ``` . <document source="<src>/index.md"> . moduleauthor (`sphinx.directives.other.Author`): . ```{moduleauthor} ringo starr ``` . <document source="<src>/index.md"> . codeauthor (`sphinx.directives.other.Author`): . ```{codeauthor} paul mcartney ``` . <document source="<src>/index.md"> . index (`sphinx.directives.other.Index`): . ```{index} something ``` . <document source="<src>/index.md"> <index entries="('single',\ 'something',\ 'index-0',\ '',\ None)" inline="False"> <target ids="index-0"> . seealso (`sphinx.directives.other.SeeAlso`): . ```{seealso} a ``` . <document source="<src>/index.md"> <seealso> <paragraph> a . tabularcolumns (`sphinx.directives.other.TabularColumns`): . ```{tabularcolumns} spec ``` . <document source="<src>/index.md"> <tabular_col_spec spec="spec"> . centered (`sphinx.directives.other.Centered`): . ```{centered} text ``` . <document source="<src>/index.md"> <centered> text . acks (`sphinx.directives.other.Acks`): . ```{acks} - name ``` . <document source="<src>/index.md"> <acks> <bullet_list bullet="-"> <list_item> <paragraph> name . hlist (`sphinx.directives.other.HList`): . ```{hlist} - item ``` . <document source="<src>/index.md"> <hlist ncolumns="2"> <hlistcol> <bullet_list> <list_item> <paragraph> item <hlistcol> <bullet_list> . only (`sphinx.directives.other.Only`): . ```{only} expr ``` . <document source="<src>/index.md"> <only expr="expr"> . SKIP: Tested in sphinx builds . ```{include} path/to/include ``` . <document source="notset"> . figure (`sphinx.directives.patches.Figure`): . ```{figure} path/to/figure *caption* legend ``` . <document source="<src>/index.md"> <figure> <image uri="path/to/figure"> <caption> <emphasis> caption <legend> <paragraph> legend . SKIP: MockingError: MockState has not yet implemented attribute 'nested_list_parse' . ```{meta} foo ``` . <document source="notset"> . table (`sphinx.directives.patches.RSTTable`): . ```{table} *title* :name: name | a | b | |---|---| | 1 | 2 | ``` . <document source="<src>/index.md"> <table classes="colwidths-auto" ids="name" names="name"> <title> <emphasis> title <tgroup cols="2"> <colspec colwidth="50"> <colspec colwidth="50"> <thead> <row> <entry> <paragraph> a <entry> <paragraph> b <tbody> <row> <entry> <paragraph> 1 <entry> <paragraph> 2 . csv-table (`sphinx.directives.patches.CSVTable`): . ```{csv-table} "Albatross", 2.99, "On a stick!" ``` . <document source="<src>/index.md"> <table> <tgroup cols="3"> <colspec colwidth="33"> <colspec colwidth="33"> <colspec colwidth="33"> <tbody> <row> <entry> <paragraph> Albatross <entry> <paragraph> 2.99 <entry> <paragraph> On a stick! . list-table (`sphinx.directives.patches.ListTable`): . ```{list-table} * - item ``` . <document source="<src>/index.md"> <table> <tgroup cols="1"> <colspec colwidth="100"> <tbody> <row> <entry> <paragraph> item . code (`sphinx.directives.patches.Code`): . ```{code} python a ``` . <document source="<src>/index.md"> <literal_block force="False" highlight_args="{}" language="python" xml:space="preserve"> a . math (`sphinx.directives.patches.MathDirective`): . ```{math} ``` . <document source="<src>/index.md"> <math_block docname="index" label="True" nowrap="False" number="True" xml:space="preserve"> . deprecated (`sphinx.domains.changeset.VersionChange`): . ```{deprecated} 0.3 ``` . <document source="<src>/index.md"> <versionmodified type="deprecated" version="0.3"> <paragraph translatable="False"> <inline classes="versionmodified deprecated"> Deprecated since version 0.3. . versionadded (`sphinx.domains.changeset.VersionChange`): . ```{versionadded} 0.2 ``` . <document source="<src>/index.md"> <versionmodified type="versionadded" version="0.2"> <paragraph translatable="False"> <inline classes="versionmodified added"> New in version 0.2. . versionchanged (`sphinx.domains.changeset.VersionChange`): . ```{versionchanged} 0.1 ``` . <document source="<src>/index.md"> <versionmodified type="versionchanged" version="0.1"> <paragraph translatable="False"> <inline classes="versionmodified changed"> Changed in version 0.1. . glossary (`sphinx.domains.std.Glossary`): . ```{glossary} term 1 : A term 2 : B Definition of both terms. ``` . <document source="<src>/index.md"> <glossary> <definition_list classes="glossary"> <definition_list_item> <term ids="term-term-1"> term 1 <index entries="('single',\ 'term\ 1',\ 'term-term-1',\ 'main',\ 'A')"> <term ids="term-term-2"> term 2 <index entries="('single',\ 'term\ 2',\ 'term-term-2',\ 'main',\ 'B')"> <definition> <paragraph> Definition of both terms. . SPHINX4-SKIP productionlist (`sphinx.domains.std.ProductionList`): . ```{productionlist} try_stmt: try1_stmt | try2_stmt ``` . <document source="<src>/index.md"> <productionlist> <production ids="grammar-token-try_stmt" tokenname="try_stmt" xml:space="preserve"> try1_stmt | try2_stmt . cmdoption (`sphinx.domains.std.Cmdoption`): . ```{cmdoption} a ``` . <document source="<src>/index.md"> <index entries="('pair',\ 'command\ line\ option;\ a',\ 'cmdoption-arg-a',\ '',\ None)"> <desc classes="std cmdoption" desctype="cmdoption" domain="std" nocontentsentry="False" noindex="False" noindexentry="False" objtype="cmdoption"> <desc_signature _toc_name="" _toc_parts="()" allnames="a" classes="sig sig-object" ids="cmdoption-arg-a"> <desc_name classes="sig-name descname" xml:space="preserve"> a <desc_addname classes="sig-prename descclassname" xml:space="preserve"> <desc_content> . rst:directive (`sphinx.domains.rst.ReSTDirective`): . ```{rst:directive} a ``` . <document source="<src>/index.md"> <index entries="('single',\ 'a\ (directive)',\ 'directive-a',\ '',\ None)"> <desc classes="rst directive" desctype="directive" domain="rst" nocontentsentry="False" noindex="False" noindexentry="False" objtype="directive"> <desc_signature _toc_name=".. a::" _toc_parts="('a',)" classes="sig sig-object" fullname="a" ids="directive-a"> <desc_name classes="sig-name descname" xml:space="preserve"> .. a:: <desc_content> . SPHINX4-SKIP rst:directive:option (`sphinx.domains.rst.ReSTDirectiveOption`): . ```{rst:directive:option} a ``` . <document source="<src>/index.md"> <index entries="('single',\ ':a:\ (directive\ option)',\ 'directive-option-a',\ '',\ 'A')"> <desc classes="rst directive:option" desctype="directive:option" domain="rst" noindex="False" objtype="directive:option"> <desc_signature classes="sig sig-object" ids="directive-option-a"> <desc_name classes="sig-name descname" xml:space="preserve"> :a: <desc_content> . ������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/fixtures/sphinx_link_resolution.md���������������������������0000664�0000000�0000000�00000014516�14654155362�0027021�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������[external] . [alt2](https://www.google.com) [](https://www.google.com) <https://www.google.com> . <document source="<src>/index.md"> <paragraph> <reference refuri="https://www.google.com"> alt2 <reference refuri="https://www.google.com"> <reference refuri="https://www.google.com"> https://www.google.com . [missing] . [](#test) <project:#test> [explicit](#test) . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="True" refexplicit="False" reftarget="test" reftype="myst"> <inline classes="xref myst"> <pending_xref refdoc="index" refdomain="True" refexplicit="False" reftarget="test" reftype="myst"> <inline classes="xref myst"> <pending_xref refdoc="index" refdomain="True" refexplicit="True" reftarget="test" reftype="myst"> <inline classes="xref myst"> explicit . [implicit_anchor] {"myst_heading_anchors": 1} . # Title # Longer title with **nested** (syntax) ## Non-anchor heading [](#title) <project:#longer-title-with-nested-syntax> [explicit](#title) . <document source="<src>/index.md"> <section ids="title" names="title" slug="title"> <title> Title <section ids="longer-title-with-nested-syntax" names="longer\ title\ with\ nested\ (syntax)" slug="longer-title-with-nested-syntax"> <title> Longer title with <strong> nested (syntax) <section ids="non-anchor-heading" names="non-anchor\ heading"> <title> Non-anchor heading <paragraph> <reference id_link="True" refid="title"> <inline classes="std std-ref"> Title <reference id_link="True" refid="longer-title-with-nested-syntax"> <inline classes="std std-ref"> Longer title with nested (syntax) <reference id_link="True" refid="title"> explicit . [explicit-heading] . (target)= # Test [](#target) <project:#target> [explicit](#target) [](<#name with spaces>) . <document source="<src>/index.md"> <target refid="target"> <section ids="test target" names="test target"> <title> Test <paragraph> <reference id_link="True" refid="target"> <inline classes="std std-ref"> Test <reference id_link="True" refid="target"> <inline classes="std std-ref"> Test <reference id_link="True" refid="target"> explicit <pending_xref refdoc="index" refdomain="True" refexplicit="False" reftarget="name with spaces" reftype="myst"> <inline classes="xref myst"> . [explicit>implicit] {"myst_heading_anchors": 1} . # Test (test)= ## Other [](#test) . <document source="<src>/index.md"> <section dupnames="test" ids="test" slug="test"> <title> Test <target refid="id1"> <section ids="other id1" names="other test"> <title> Other <paragraph> <reference id_link="True" refid="id1"> <inline classes="std std-ref"> Other . [id-with-spaces] . (name with spaces)= Paragraph [](<#name with spaces>) . <document source="<src>/index.md"> <target refid="name-with-spaces"> <paragraph ids="name-with-spaces" names="name\ with\ spaces"> Paragraph <paragraph> <reference id_link="True" refid="name-with-spaces"> <inline classes="std std-ref"> #name with spaces . [ref-table] . ```{table} caption :name: table a | b -- | -- c | d ``` [](#table) <project:#table> [explicit](#table) . <document source="<src>/index.md"> <table classes="colwidths-auto" ids="table" names="table"> <title> caption <tgroup cols="2"> <colspec colwidth="50"> <colspec colwidth="50"> <thead> <row> <entry> <paragraph> a <entry> <paragraph> b <tbody> <row> <entry> <paragraph> c <entry> <paragraph> d <paragraph> <reference id_link="True" refid="table"> <inline classes="std std-ref"> caption <reference id_link="True" refid="table"> <inline classes="std std-ref"> caption <reference id_link="True" refid="table"> explicit . [external-file] . [](test.txt) <path:./test.txt> [relative to source dir](/test.txt) . <document source="<src>/index.md"> <paragraph> <download_reference filename="dd18bf3a8e0a2a3e53e2661c7fb53534/test.txt" refdoc="index" refdomain="True" refexplicit="False" reftarget="test.txt" reftype="myst"> <literal classes="xref download myst"> test.txt <download_reference filename="dd18bf3a8e0a2a3e53e2661c7fb53534/test.txt" refdoc="index" refdomain="True" refexplicit="False" reftarget="./test.txt" reftype="myst"> <literal classes="xref download myst"> ./test.txt <download_reference filename="dd18bf3a8e0a2a3e53e2661c7fb53534/test.txt" refdoc="index" refdomain="True" refexplicit="True" reftarget="/test.txt" reftype="myst"> <inline classes="xref download myst"> relative to source dir . [source-file] . [](other.rst) <project:other.rst> [relative to source dir](/other.rst) . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="doc" refexplicit="False" reftarget="other" reftargetid="True" reftype="myst"> <inline classes="xref myst"> <pending_xref refdoc="index" refdomain="doc" refexplicit="False" reftarget="other" reftargetid="True" reftype="myst"> <inline classes="xref myst"> <pending_xref refdoc="index" refdomain="doc" refexplicit="True" reftarget="other" reftargetid="True" reftype="myst"> <inline classes="xref myst"> relative to source dir . ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/fixtures/sphinx_roles.md�������������������������������������0000664�0000000�0000000�00000042127�14654155362�0024724�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������c:func (`sphinx.domains.c.CXRefRole`): . {c:func}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="c" refexplicit="False" reftarget="a" reftype="func" refwarn="False"> <literal classes="xref c c-func"> a() . c:member (`sphinx.domains.c.CObject`): . {c:member}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="c" refexplicit="False" reftarget="a" reftype="member" refwarn="False"> <literal classes="xref c c-member"> a . c:macro (`sphinx.domains.c.CObject`): . {c:macro}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="c" refexplicit="False" reftarget="a" reftype="macro" refwarn="False"> <literal classes="xref c c-macro"> a . c:data (`sphinx.domains.c.CXRefRole`): . {c:data}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="c" refexplicit="False" reftarget="a" reftype="data" refwarn="False"> <literal classes="xref c c-data"> a . c:type (`sphinx.domains.c.CObject`): . {c:type}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="c" refexplicit="False" reftarget="a" reftype="type" refwarn="False"> <literal classes="xref c c-type"> a . cpp:any (`sphinx.domains.cpp.CPPXRefRole`): . {cpp:any}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="cpp" refexplicit="False" reftarget="a" reftype="any" refwarn="False"> <literal classes="xref cpp cpp-any"> a . cpp:class (`sphinx.domains.cpp.CPPClassObject`): . {cpp:class}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="cpp" refexplicit="False" reftarget="a" reftype="class" refwarn="False"> <literal classes="xref cpp cpp-class"> a . cpp:struct (`sphinx.domains.cpp.CPPClassObject`): . {cpp:struct}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="cpp" refexplicit="False" reftarget="a" reftype="struct" refwarn="False"> <literal classes="xref cpp cpp-struct"> a . cpp:union (`sphinx.domains.cpp.CPPUnionObject`): . {cpp:union}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="cpp" refexplicit="False" reftarget="a" reftype="union" refwarn="False"> <literal classes="xref cpp cpp-union"> a . cpp:func (`sphinx.domains.cpp.CPPXRefRole`): . {cpp:func}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="cpp" refexplicit="False" reftarget="a" reftype="func" refwarn="False"> <literal classes="xref cpp cpp-func"> a() . cpp:member (`sphinx.domains.cpp.CPPMemberObject`): . {cpp:member}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="cpp" refexplicit="False" reftarget="a" reftype="member" refwarn="False"> <literal classes="xref cpp cpp-member"> a . cpp:var (`sphinx.domains.cpp.CPPMemberObject`): . {cpp:var}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="cpp" refexplicit="False" reftarget="a" reftype="var" refwarn="False"> <literal classes="xref cpp cpp-var"> a . cpp:type (`sphinx.domains.cpp.CPPTypeObject`): . {cpp:type}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="cpp" refexplicit="False" reftarget="a" reftype="type" refwarn="False"> <literal classes="xref cpp cpp-type"> a . cpp:concept (`sphinx.domains.cpp.CPPConceptObject`): . {cpp:concept}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="cpp" refexplicit="False" reftarget="a" reftype="concept" refwarn="False"> <literal classes="xref cpp cpp-concept"> a . cpp:enum (`sphinx.domains.cpp.CPPEnumObject`): . {cpp:enum}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="cpp" refexplicit="False" reftarget="a" reftype="enum" refwarn="False"> <literal classes="xref cpp cpp-enum"> a . cpp:enumerator (`sphinx.domains.cpp.CPPEnumeratorObject`): . {cpp:enumerator}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="cpp" refexplicit="False" reftarget="a" reftype="enumerator" refwarn="False"> <literal classes="xref cpp cpp-enumerator"> a . SKIP cpp:expr (`sphinx.domains.cpp.CPPExprRole`): . {cpp:expr}`a` . <document source="notset"> <paragraph> <desc_inline classes="cpp-expr sig sig-inline cpp"> <pending_xref classname="True" cpp:parent_key="<sphinx.domains.cpp.LookupKey object at 0x7f948a6a73d0>" modname="True" refdomain="cpp" reftarget="a" reftype="identifier"> <desc_sig_name classes="n"> a . SKIP cpp:texpr (`sphinx.domains.cpp.CPPExprRole`): . {cpp:texpr}`a` . <document source="notset"> <paragraph> <desc_inline classes="cpp-texpr sig sig-inline cpp"> <pending_xref classname="True" cpp:parent_key="<sphinx.domains.cpp.LookupKey object at 0x7fac40b5f950>" modname="True" refdomain="cpp" reftarget="a" reftype="identifier"> <desc_sig_name classes="n"> a . js:func (`sphinx.domains.javascript.JSXRefRole`): . {js:func}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref js:module="True" js:object="True" refdoc="index" refdomain="js" refexplicit="False" reftarget="a" reftype="func" refwarn="False"> <literal classes="xref js js-func"> a() . js:meth (`sphinx.domains.javascript.JSXRefRole`): . {js:meth}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref js:module="True" js:object="True" refdoc="index" refdomain="js" refexplicit="False" reftarget="a" reftype="meth" refwarn="False"> <literal classes="xref js js-meth"> a() . js:class (`sphinx.domains.javascript.JSConstructor`): . {js:class}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref js:module="True" js:object="True" refdoc="index" refdomain="js" refexplicit="False" reftarget="a" reftype="class" refwarn="False"> <literal classes="xref js js-class"> a() . js:data (`sphinx.domains.javascript.JSObject`): . {js:data}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref js:module="True" js:object="True" refdoc="index" refdomain="js" refexplicit="False" reftarget="a" reftype="data" refwarn="False"> <literal classes="xref js js-data"> a . js:attr (`sphinx.domains.javascript.JSXRefRole`): . {js:attr}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref js:module="True" js:object="True" refdoc="index" refdomain="js" refexplicit="False" reftarget="a" reftype="attr" refwarn="False"> <literal classes="xref js js-attr"> a . js:mod (`sphinx.domains.javascript.JSXRefRole`): . {js:mod}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref js:module="True" js:object="True" refdoc="index" refdomain="js" refexplicit="False" reftarget="a" reftype="mod" refwarn="False"> <literal classes="xref js js-mod"> a . eq (`sphinx.domains.math.MathReferenceRole`): . {eq}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="math" refexplicit="False" reftarget="a" reftype="eq" refwarn="True"> <literal classes="xref eq"> a . math:numref (`sphinx.domains.math.MathReferenceRole`): . {math:numref}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="math" refexplicit="False" reftarget="a" reftype="numref" refwarn="False"> <literal classes="xref math math-numref"> a . py:data (`sphinx.domains.python.PyVariable`): . {py:data}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref py:class="True" py:module="True" refdoc="index" refdomain="py" refexplicit="False" reftarget="a" reftype="data" refwarn="False"> <literal classes="xref py py-data"> a . py:exc (`sphinx.domains.python.PyXRefRole`): . {py:exc}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref py:class="True" py:module="True" refdoc="index" refdomain="py" refexplicit="False" reftarget="a" reftype="exc" refwarn="False"> <literal classes="xref py py-exc"> a . py:func (`sphinx.domains.python.PyXRefRole`): . {py:func}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref py:class="True" py:module="True" refdoc="index" refdomain="py" refexplicit="False" reftarget="a" reftype="func" refwarn="False"> <literal classes="xref py py-func"> a() . py:class (`sphinx.domains.python.PyClasslike`): . {py:class}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref py:class="True" py:module="True" refdoc="index" refdomain="py" refexplicit="False" reftarget="a" reftype="class" refwarn="False"> <literal classes="xref py py-class"> a . py:const (`sphinx.domains.python.PyXRefRole`): . {py:const}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref py:class="True" py:module="True" refdoc="index" refdomain="py" refexplicit="False" reftarget="a" reftype="const" refwarn="False"> <literal classes="xref py py-const"> a . py:attr (`sphinx.domains.python.PyXRefRole`): . {py:attr}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref py:class="True" py:module="True" refdoc="index" refdomain="py" refexplicit="False" reftarget="a" reftype="attr" refwarn="False"> <literal classes="xref py py-attr"> a . py:meth (`sphinx.domains.python.PyXRefRole`): . {py:meth}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref py:class="True" py:module="True" refdoc="index" refdomain="py" refexplicit="False" reftarget="a" reftype="meth" refwarn="False"> <literal classes="xref py py-meth"> a() . py:mod (`sphinx.domains.python.PyXRefRole`): . {py:mod}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref py:class="True" py:module="True" refdoc="index" refdomain="py" refexplicit="False" reftarget="a" reftype="mod" refwarn="False"> <literal classes="xref py py-mod"> a . py:obj (`sphinx.domains.python.PyXRefRole`): . {py:obj}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref py:class="True" py:module="True" refdoc="index" refdomain="py" refexplicit="False" reftarget="a" reftype="obj" refwarn="False"> <literal classes="xref py py-obj"> a . rst:role (`sphinx.domains.rst.ReSTRole`): . {rst:role}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="rst" refexplicit="False" reftarget="a" reftype="role" refwarn="False"> <literal classes="xref rst rst-role"> a . program (`sphinx.domains.std.Program`): . {program}`a` . <document source="<src>/index.md"> <paragraph> <literal_strong classes="program"> a . option (`sphinx.domains.std.Cmdoption`): . {option}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="std" refexplicit="False" reftarget="a" reftype="option" refwarn="True" std:program="True"> <literal classes="xref std std-option"> a . envvar (`sphinx.domains.std.EnvVarXRefRole`): . {envvar}`a` . <document source="<src>/index.md"> <paragraph> <index entries="('single',\ 'a',\ 'index-0',\ '',\ None) ('single',\ 'environment\ variable;\ a',\ 'index-0',\ '',\ None)"> <target ids="index-0"> <pending_xref refdoc="index" refdomain="std" refexplicit="False" reftarget="a" reftype="envvar" refwarn="False"> <literal classes="xref std std-envvar"> a . index (`sphinx.roles.Index`): . {index}`a` . <document source="<src>/index.md"> <paragraph> <index entries="('single',\ 'a',\ 'index-0',\ '',\ None)"> <target ids="index-0"> a . download (`sphinx.roles.XRefRole`): . {download}`a` . <document source="<src>/index.md"> <paragraph> <download_reference refdoc="index" refdomain="" refexplicit="False" reftarget="a" reftype="download" refwarn="False"> <literal classes="xref download"> a . any (`sphinx.roles.AnyXRefRole`): . {any}`a <alt text>` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="" refexplicit="True" reftarget="alt text" reftype="any" refwarn="True"> <literal classes="xref any"> a . pep (`sphinx.roles.PEP`): . {pep}`1` . <document source="<src>/index.md"> <paragraph> <index entries="('single',\ 'Python\ Enhancement\ Proposals;\ PEP\ 1',\ 'index-0',\ '',\ None)"> <target ids="index-0"> <reference classes="pep" internal="False" refuri="https://peps.python.org/pep-0001/"> <strong> PEP 1 . rfc (`sphinx.roles.RFC`): . {rfc}`1` . <document source="<src>/index.md"> <paragraph> <index entries="('single',\ 'RFC;\ RFC\ 1',\ 'index-0',\ '',\ None)"> <target ids="index-0"> <reference classes="rfc" internal="False" refuri="https://datatracker.ietf.org/doc/html/rfc1.html"> <strong> RFC 1 . guilabel (`sphinx.roles.GUILabel`): . {guilabel}`a` . <document source="<src>/index.md"> <paragraph> <inline classes="guilabel" rawtext=":guilabel:`a`"> a . menuselection (`sphinx.roles.MenuSelection`): . {menuselection}`a` . <document source="<src>/index.md"> <paragraph> <inline classes="menuselection" rawtext=":menuselection:`a`"> a . file (`sphinx.roles.EmphasizedLiteral`): . {file}`a` . <document source="<src>/index.md"> <paragraph> <literal classes="file" role="file"> a . samp (`sphinx.roles.EmphasizedLiteral`): . {samp}`a` . <document source="<src>/index.md"> <paragraph> <literal classes="samp" role="samp"> a . SKIP: Non-deterministic output . {abbr}`a` . <document source="notset"> <paragraph> <abbreviation class="<function class_option at 0x1079fb830>> a . rst:dir (`sphinx.roles.XRefRole`): . {rst:dir}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="rst" refexplicit="False" reftarget="a" reftype="dir" refwarn="False"> <literal classes="xref rst rst-dir"> a . token (`sphinx.roles.XRefRole`): . {token}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="std" refexplicit="False" reftarget="a" reftype="token" refwarn="False"> <literal classes="xref std std-token"> a . term (`sphinx.roles.XRefRole`): . {term}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="std" refexplicit="False" reftarget="a" reftype="term" refwarn="True"> <inline classes="xref std std-term"> a . ref (`sphinx.roles.XRefRole`): . {ref}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="std" refexplicit="False" reftarget="a" reftype="ref" refwarn="True"> <inline classes="xref std std-ref"> a . ref with line breaks (`sphinx.roles.XRefRole`): . {ref}`some text <and a custom reference>` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="std" refexplicit="True" reftarget="and a custom reference" reftype="ref" refwarn="True"> <inline classes="xref std std-ref"> some text . numref (`sphinx.roles.XRefRole`): . {numref}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="std" refexplicit="False" reftarget="a" reftype="numref" refwarn="True"> <literal classes="xref std std-numref"> a . keyword (`sphinx.roles.XRefRole`): . {keyword}`a` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="std" refexplicit="False" reftarget="a" reftype="keyword" refwarn="True"> <literal classes="xref std std-keyword"> a . doc (`sphinx.roles.XRefRole`): . {doc}`this lecture <heavy_tails>` . <document source="<src>/index.md"> <paragraph> <pending_xref refdoc="index" refdomain="std" refexplicit="True" reftarget="heavy_tails" reftype="doc" refwarn="True"> <inline classes="xref std std-doc"> this lecture . �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/fixtures/sphinx_syntax_elements.md���������������������������0000664�0000000�0000000�00000034326�14654155362�0027024�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Raw . foo . <document source="<src>/index.md"> <paragraph> foo . Hard-break . foo\ bar . <document source="<src>/index.md"> <paragraph> foo <raw format="html" xml:space="preserve"> <br /> <raw format="latex" xml:space="preserve"> \\ bar . Strong: . **foo** . <document source="<src>/index.md"> <paragraph> <strong> foo . Emphasis . *foo* . <document source="<src>/index.md"> <paragraph> <emphasis> foo . Escaped Emphasis: . \*foo* . <document source="<src>/index.md"> <paragraph> *foo* . Mixed Inline . a *b* **c** `abc` \\* . <document source="<src>/index.md"> <paragraph> a <emphasis> b <strong> c <literal> abc \* . Inline Code: . `foo` . <document source="<src>/index.md"> <paragraph> <literal> foo . Heading: . # foo . <document source="<src>/index.md"> <section ids="foo" names="foo"> <title> foo . Heading Levels: . # a ## b ### c # d . <document source="<src>/index.md"> <section ids="a" names="a"> <title> a <section ids="b" names="b"> <title> b <section ids="c" names="c"> <title> c <section ids="d" names="d"> <title> d . Nested heading . > # heading . <document source="<src>/index.md"> <block_quote> <rubric ids="heading" level="1" names="heading"> heading . Block Code: . foo . <document source="<src>/index.md"> <literal_block language="none" xml:space="preserve"> foo . Fenced Code: . ```sh foo ``` . <document source="<src>/index.md"> <literal_block language="sh" xml:space="preserve"> foo . Fenced Code no language: . ``` foo ``` . <document source="<src>/index.md"> <literal_block language="default" xml:space="preserve"> foo . Fenced Code no language with trailing whitespace: . ``` foo ``` . <document source="<src>/index.md"> <literal_block language="default" xml:space="preserve"> foo . Image empty: . ![]() . <document source="<src>/index.md"> <paragraph> <image alt="" uri=""> . Image with alt and title: . ![alt](src "title") . <document source="<src>/index.md"> <paragraph> <image alt="alt" title="title" uri="src"> . Image with escapable html: . ![alt](http://www.google<>.com) . <document source="<src>/index.md"> <paragraph> <image alt="alt" uri="http://www.google%3C%3E.com"> . Block Quote: . > *foo* . <document source="<src>/index.md"> <block_quote> <paragraph> <emphasis> foo . Bullet List: . - *foo* * bar . <document source="<src>/index.md"> <bullet_list bullet="-"> <list_item> <paragraph> <emphasis> foo <bullet_list bullet="*"> <list_item> <paragraph> bar . Nested Bullets . - a - b - c - d . <document source="<src>/index.md"> <bullet_list bullet="-"> <list_item> <paragraph> a <bullet_list bullet="-"> <list_item> <paragraph> b <bullet_list bullet="-"> <list_item> <paragraph> c <list_item> <paragraph> d . Enumerated List: . 1. *foo* 1) bar para 10. starting 11. enumerator . <document source="<src>/index.md"> <enumerated_list enumtype="arabic" prefix="" suffix="."> <list_item> <paragraph> <emphasis> foo <enumerated_list enumtype="arabic" prefix="" suffix=")"> <list_item> <paragraph> bar <paragraph> para <enumerated_list enumtype="arabic" prefix="" start="10" suffix="."> <list_item> <paragraph> starting <list_item> <paragraph> enumerator . Nested Enumrated List: . 1. a 2. b 1. c . <document source="<src>/index.md"> <enumerated_list enumtype="arabic" prefix="" suffix="."> <list_item> <paragraph> a <list_item> <paragraph> b <enumerated_list enumtype="arabic" prefix="" suffix="."> <list_item> <paragraph> c . Sphinx Role containing backtick: . {code}``a=1{`}`` . <document source="<src>/index.md"> <paragraph> <literal classes="code"> a=1{`} . Target: . (target)= . <document source="<src>/index.md"> <target ids="target" names="target"> . Target with whitespace: . (target with space)= . <document source="<src>/index.md"> <target ids="target-with-space" names="target\ with\ space"> . Comments: . line 1 % a comment line 2 . <document source="<src>/index.md"> <paragraph> line 1 <comment xml:space="preserve"> a comment <paragraph> line 2 . Block Break: . +++ string . <document source="<src>/index.md"> <comment classes="block_break" xml:space="preserve"> string . Link Reference: . [name][key] [key]: https://www.google.com "a title" . <document source="<src>/index.md"> <paragraph> <reference reftitle="a title" refuri="https://www.google.com"> name . Link Reference short version: . [name] [name]: https://www.google.com "a title" . <document source="<src>/index.md"> <paragraph> <reference reftitle="a title" refuri="https://www.google.com"> name . Block Quotes: . ```{epigraph} a b*c* -- a**b** ``` . <document source="<src>/index.md"> <block_quote classes="epigraph"> <paragraph> a b <emphasis> c <attribution> a <strong> b . Link Definition in directive: . ```{note} [a] ``` [a]: link . <document source="<src>/index.md"> <note> <paragraph> <pending_xref refdoc="index" refdomain="True" refexplicit="True" reftarget="link" reftype="myst"> <inline classes="xref myst"> a . Link Definition in nested directives: . ```{note} [ref1]: link ``` ```{note} [ref1] [ref2] ``` ```{note} [ref2]: link ``` . <document source="<src>/index.md"> <note> <note> <paragraph> <pending_xref refdoc="index" refdomain="True" refexplicit="True" reftarget="link" reftype="myst"> <inline classes="xref myst"> ref1 [ref2] <note> . Footnotes [APPLY TRANSFORMS]: . [^a] [^a]: footnote*text* . <document source="<src>/index.md"> <paragraph> <footnote_reference auto="1" docname="index" ids="id1" refid="a"> 1 <transition classes="footnotes"> <footnote auto="1" backrefs="id1" docname="index" ids="a" names="a"> <label> 1 <paragraph> footnote <emphasis> text . Footnotes nested blocks [APPLY TRANSFORMS]: . [^a] [^a]: footnote*text* abc xyz > a - b c finish . <document source="<src>/index.md"> <paragraph> <footnote_reference auto="1" docname="index" ids="id1" refid="a"> 1 <paragraph> finish <transition classes="footnotes"> <footnote auto="1" backrefs="id1" docname="index" ids="a" names="a"> <label> 1 <paragraph> footnote <emphasis> text <paragraph> abc xyz <block_quote> <paragraph> a <bullet_list bullet="-"> <list_item> <paragraph> b <paragraph> c . Front Matter: . --- a: 1 b: foo c: d: 2 --- . <document source="<src>/index.md"> <field_list> <field> <field_name> a <field_body> <paragraph> <literal> 1 <field> <field_name> b <field_body> <paragraph> <literal> foo <field> <field_name> c <field_body> <paragraph> <literal> {"d": 2} . Front Matter Biblio: . --- author: Chris Sewell authors: Chris Sewell, Chris Hodgraf organization: EPFL address: | 1 Cedar Park Close Thundersley Essex contact: <https://example.com> version: 1.0 revision: 1.1 status: good date: 2/12/1985 copyright: MIT dedication: | To my *homies* abstract: Something something **dark** side other: Something else --- . <document source="<src>/index.md"> <field_list> <field> <field_name> author <field_body> <paragraph> Chris Sewell <field> <field_name> authors <field_body> <paragraph> Chris Sewell, Chris Hodgraf <field> <field_name> organization <field_body> <paragraph> EPFL <field> <field_name> address <field_body> <paragraph> 1 Cedar Park Close Thundersley Essex <field> <field_name> contact <field_body> <paragraph> <reference refuri="https://example.com"> https://example.com <field> <field_name> version <field_body> <paragraph> 1.0 <field> <field_name> revision <field_body> <paragraph> 1.1 <field> <field_name> status <field_body> <paragraph> good <field> <field_name> date <field_body> <paragraph> 2/12/1985 <field> <field_name> copyright <field_body> <paragraph> MIT <field> <field_name> dedication <field_body> <paragraph> To my <emphasis> homies <field> <field_name> abstract <field_body> <paragraph> Something something <strong> dark side <field> <field_name> other <field_body> <paragraph> <literal> Something else . Front Matter Bad Yaml: . --- a: { --- . <document source="<src>/index.md"> <system_message level="2" line="1" source="<src>/index.md" type="WARNING"> <paragraph> Malformed YAML [myst.topmatter] . Front Matter HTML Meta . --- myst: html_meta: keywords: Sphinx, documentation, builder description lang=en: An amusing story description lang=fr: Un histoire amusant http-equiv=Content-Type: text/html; charset=ISO-8859-1 --- . <document source="<src>/index.md"> <pending> .. internal attributes: .transform: docutils.transforms.components.Filter .details: component: 'writer' format: 'html' nodes: <meta content="Sphinx, documentation, builder" name="keywords"> <pending> .. internal attributes: .transform: docutils.transforms.components.Filter .details: component: 'writer' format: 'html' nodes: <meta content="An amusing story" lang="en" name="description"> <pending> .. internal attributes: .transform: docutils.transforms.components.Filter .details: component: 'writer' format: 'html' nodes: <meta content="Un histoire amusant" lang="fr" name="description"> <pending> .. internal attributes: .transform: docutils.transforms.components.Filter .details: component: 'writer' format: 'html' nodes: <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"> . Full Test: . --- a: 1 --- (target)= # header 1 ## sub header 1 a *b* **c** `abc` ## sub header 2 x y [a](http://www.xyz.com) z --- # header 2 ```::python {a=1} a = 1 ``` [](target) . <document source="<src>/index.md"> <field_list> <field> <field_name> a <field_body> <paragraph> <literal> 1 <target ids="target" names="target"> <section ids="header-1" names="header\ 1"> <title> header 1 <section ids="sub-header-1" names="sub\ header\ 1"> <title> sub header 1 <paragraph> a <emphasis> b <strong> c <literal> abc <section ids="sub-header-2" names="sub\ header\ 2"> <title> sub header 2 <paragraph> x y <reference refuri="http://www.xyz.com"> a z <transition> <section ids="header-2" names="header\ 2"> <title> header 2 <literal_block language="::python" xml:space="preserve"> a = 1 <paragraph> <pending_xref refdoc="index" refdomain="True" refexplicit="False" reftarget="target" reftype="myst"> <inline classes="xref myst"> . ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/fixtures/tables.md�������������������������������������������0000664�0000000�0000000�00000007510�14654155362�0023456�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Simple: . a|b -|- 1|2 . <document source="<src>/index.md"> <table classes="colwidths-auto"> <tgroup cols="2"> <colspec colwidth="50"> <colspec colwidth="50"> <thead> <row> <entry> <paragraph> a <entry> <paragraph> b <tbody> <row> <entry> <paragraph> 1 <entry> <paragraph> 2 . Header only: . | abc | def | | --- | --- | . <document source="<src>/index.md"> <table classes="colwidths-auto"> <tgroup cols="2"> <colspec colwidth="50"> <colspec colwidth="50"> <thead> <row> <entry> <paragraph> abc <entry> <paragraph> def . Aligned: . a | b | c :-|:-:| -: 1 | 2 | 3 . <document source="<src>/index.md"> <table classes="colwidths-auto"> <tgroup cols="3"> <colspec colwidth="33"> <colspec colwidth="33"> <colspec colwidth="33"> <thead> <row> <entry classes="text-left"> <paragraph> a <entry classes="text-center"> <paragraph> b <entry classes="text-right"> <paragraph> c <tbody> <row> <entry classes="text-left"> <paragraph> 1 <entry classes="text-center"> <paragraph> 2 <entry classes="text-right"> <paragraph> 3 . Nested syntax: . | *a* | __*b*__ | | --- | -------- | |c | {sub}`x` | . <document source="<src>/index.md"> <table classes="colwidths-auto"> <tgroup cols="2"> <colspec colwidth="50"> <colspec colwidth="50"> <thead> <row> <entry> <paragraph> <emphasis> a <entry> <paragraph> <strong> <emphasis> b <tbody> <row> <entry> <paragraph> c <entry> <paragraph> <subscript> x . External links: . a|b |-|-| [link-a](https://www.google.com/)|[link-b](https://www.python.org/) . <document source="<src>/index.md"> <table classes="colwidths-auto"> <tgroup cols="2"> <colspec colwidth="50"> <colspec colwidth="50"> <thead> <row> <entry> <paragraph> a <entry> <paragraph> b <tbody> <row> <entry> <paragraph> <reference refuri="https://www.google.com/"> link-a <entry> <paragraph> <reference refuri="https://www.python.org/"> link-b . ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/test_error_reporting.py��������������������������������������0000664�0000000�0000000�00000001230�14654155362�0024635�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������"""Tests of the warning reporting for different MyST Markdown inputs.""" from io import StringIO from pathlib import Path import pytest from docutils.core import publish_doctree from myst_parser.parsers.docutils_ import Parser FIXTURE_PATH = Path(__file__).parent.joinpath("fixtures") @pytest.mark.param_file(FIXTURE_PATH / "reporter_warnings.md") def test_basic(file_params): """Test basic functionality.""" report_stream = StringIO() publish_doctree( file_params.content, parser=Parser(), settings_overrides={"warning_stream": report_stream}, ) file_params.assert_expected(report_stream.getvalue(), rstrip=True) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/test_fixtures_docutils.py������������������������������������0000664�0000000�0000000�00000010060�14654155362�0025173�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������"""Test fixture files, using the ``DocutilsRenderer``. Note, the output AST is before any transforms are applied. """ from __future__ import annotations import shlex from io import StringIO from pathlib import Path from typing import Any import pytest from docutils.core import Publisher, publish_doctree from pytest_param_files import ParamTestData from myst_parser.parsers.docutils_ import Parser FIXTURE_PATH = Path(__file__).parent.joinpath("fixtures") @pytest.mark.param_file(FIXTURE_PATH / "docutil_syntax_elements.md") def test_syntax_elements(file_params: ParamTestData, monkeypatch): """Test conversion of Markdown to docutils AST (before transforms are applied).""" def _apply_transforms(self): pass if "[APPLY TRANSFORMS]" not in file_params.title: monkeypatch.setattr(Publisher, "apply_transforms", _apply_transforms) doctree = publish_doctree( file_params.content, source_path="notset", parser=Parser(), settings_overrides={"myst_highlight_code_blocks": False}, ) # in docutils 0.18 footnote ids have changed outcome = doctree.pformat().replace('"footnote-reference-1"', '"id1"') outcome = outcome.replace(' language=""', "") file_params.assert_expected(outcome, rstrip_lines=True) @pytest.mark.param_file(FIXTURE_PATH / "docutil_link_resolution.md") def test_link_resolution(file_params: ParamTestData): """Test that Markdown links resolve to the correct target, or give the correct warning.""" settings = settings_from_cmdline(file_params.description) report_stream = StringIO() settings["warning_stream"] = report_stream doctree = publish_doctree( file_params.content, source_path="<src>/index.md", parser=Parser(), settings_overrides=settings, ) outcome = doctree.pformat() if report_stream.getvalue().strip(): outcome += "\n\n" + report_stream.getvalue().strip() file_params.assert_expected(outcome, rstrip_lines=True) @pytest.mark.param_file(FIXTURE_PATH / "docutil_roles.md") def test_docutils_roles(file_params: ParamTestData, monkeypatch): """Test conversion of Markdown to docutils AST (before transforms are applied).""" def _apply_transforms(self): pass monkeypatch.setattr(Publisher, "apply_transforms", _apply_transforms) doctree = publish_doctree( file_params.content, source_path="notset", parser=Parser(), ) file_params.assert_expected(doctree.pformat(), rstrip_lines=True) @pytest.mark.param_file(FIXTURE_PATH / "docutil_directives.md") def test_docutils_directives(file_params: ParamTestData, monkeypatch): """Test output of docutils directives.""" if "SKIP" in file_params.description: # line-block directive not yet supported pytest.skip(file_params.description) def _apply_transforms(self): pass monkeypatch.setattr(Publisher, "apply_transforms", _apply_transforms) doctree = publish_doctree( file_params.content, source_path="notset", parser=Parser(), ) file_params.assert_expected(doctree.pformat(), rstrip_lines=True) @pytest.mark.param_file(FIXTURE_PATH / "docutil_syntax_extensions.txt") def test_syntax_extensions(file_params: ParamTestData): """The description is parsed as a docutils commandline""" settings = settings_from_cmdline(file_params.description) report_stream = StringIO() settings["warning_stream"] = report_stream doctree = publish_doctree( file_params.content, parser=Parser(), settings_overrides=settings, ) file_params.assert_expected(doctree.pformat(), rstrip_lines=True) def settings_from_cmdline(cmdline: str | None) -> dict[str, Any]: """Parse a docutils commandline into a settings dictionary""" if cmdline is None or not cmdline.strip(): return {} pub = Publisher(parser=Parser()) try: pub.process_command_line(shlex.split(cmdline)) except Exception as err: raise AssertionError(f"Failed to parse commandline: {cmdline}\n{err}") from err return vars(pub.settings) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/test_fixtures_sphinx.py��������������������������������������0000664�0000000�0000000�00000020035�14654155362�0024661�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������"""Test fixture files, using the ``SphinxRenderer``. Note, the output AST is before any transforms are applied. """ from __future__ import annotations import json import re import sys from pathlib import Path import pytest from docutils.core import Publisher from pytest_param_files import ParamTestData from sphinx_pytest.plugin import CreateDoctree from myst_parser.mdit_to_docutils.sphinx_ import SphinxRenderer FIXTURE_PATH = Path(__file__).parent.joinpath("fixtures") @pytest.mark.param_file(FIXTURE_PATH / "sphinx_syntax_elements.md") def test_syntax_elements( file_params: ParamTestData, sphinx_doctree: CreateDoctree, monkeypatch ): sphinx_doctree.set_conf({"extensions": ["myst_parser"], "show_warning_types": True}) def _apply_transforms(self): pass if "[APPLY TRANSFORMS]" not in file_params.title: monkeypatch.setattr(Publisher, "apply_transforms", _apply_transforms) result = sphinx_doctree(file_params.content, "index.md") pformat = result.pformat("index") # changed in docutils 0.20.1 pformat = pformat.replace( '<literal classes="code" language="">', '<literal classes="code">' ) file_params.assert_expected(pformat, rstrip_lines=True) @pytest.mark.param_file(FIXTURE_PATH / "sphinx_link_resolution.md") def test_link_resolution(file_params: ParamTestData, sphinx_doctree: CreateDoctree): sphinx_doctree.set_conf( {"extensions": ["myst_parser"], **settings_from_json(file_params.description)} ) sphinx_doctree.srcdir.joinpath("test.txt").touch() sphinx_doctree.srcdir.joinpath("other.rst").write_text(":orphan:\n\nTest\n====") result = sphinx_doctree(file_params.content, "index.md") outcome = result.pformat("index") if result.warnings.strip(): outcome += "\n\n" + result.warnings.strip() file_params.assert_expected(outcome, rstrip_lines=True) def settings_from_json(string: str | None): """Parse the description for a JSON settings string.""" if string is None or not string.strip(): return {} try: data = json.loads(string) assert isinstance(data, dict), "settings must be a JSON object" except Exception as err: raise AssertionError(f"Failed to parse JSON settings: {string}\n{err}") from err return data @pytest.mark.param_file(FIXTURE_PATH / "tables.md") def test_tables(file_params: ParamTestData, sphinx_doctree_no_tr: CreateDoctree): sphinx_doctree_no_tr.set_conf({"extensions": ["myst_parser"]}) result = sphinx_doctree_no_tr(file_params.content, "index.md") file_params.assert_expected(result.pformat("index"), rstrip_lines=True) @pytest.mark.param_file(FIXTURE_PATH / "directive_options.md") def test_directive_options( file_params: ParamTestData, sphinx_doctree_no_tr: CreateDoctree ): sphinx_doctree_no_tr.set_conf({"extensions": ["myst_parser"]}) result = sphinx_doctree_no_tr(file_params.content, "index.md") file_params.assert_expected(result.pformat("index"), rstrip_lines=True) @pytest.mark.param_file(FIXTURE_PATH / "sphinx_directives.md") def test_sphinx_directives( file_params: ParamTestData, sphinx_doctree_no_tr: CreateDoctree ): # TODO fix skipped directives # TODO test domain directives if file_params.title.startswith("SKIP") or file_params.title.startswith( "SPHINX4-SKIP" ): pytest.skip(file_params.title) sphinx_doctree_no_tr.set_conf({"extensions": ["myst_parser"]}) pformat = sphinx_doctree_no_tr(file_params.content, "index.md").pformat("index") # see https://github.com/sphinx-doc/sphinx/issues/9827 pformat = pformat.replace('<glossary sorted="False">', "<glossary>") # see https://github.com/executablebooks/MyST-Parser/issues/522 if sys.maxsize == 2147483647: pformat = pformat.replace('"2147483647"', '"9223372036854775807"') # changed in sphinx 7.1 (but fixed in 7.2) pformat = pformat.replace( 'classes="sig sig-object sig sig-object"', 'classes="sig sig-object"' ) pformat = pformat.replace( 'classes="sig-name descname sig-name descname"', 'classes="sig-name descname"' ) pformat = pformat.replace( 'classes="sig-prename descclassname sig-prename descclassname"', 'classes="sig-prename descclassname"', ) # changed in sphinx 7.2 (#11533) pformat = pformat.replace( ( 'no-contents-entry="False" no-index="False" ' 'no-index-entry="False" no-typesetting="False" ' ), "", ) # changed in sphinx 7.3 pformat = pformat.replace("Added in version 0.2", "New in version 0.2") file_params.assert_expected(pformat, rstrip_lines=True) @pytest.mark.param_file(FIXTURE_PATH / "sphinx_roles.md") def test_sphinx_roles(file_params: ParamTestData, sphinx_doctree_no_tr: CreateDoctree): if file_params.title.startswith("SKIP"): pytest.skip(file_params.title) sphinx_doctree_no_tr.set_conf({"extensions": ["myst_parser"]}) pformat = sphinx_doctree_no_tr(file_params.content, "index.md").pformat("index") # sphinx 3 adds a parent key pformat = re.sub('cpp:parent_key="[^"]*"', 'cpp:parent_key=""', pformat) # sphinx >= 4.5.0 adds a trailing slash to PEP URLs, # see https://github.com/sphinx-doc/sphinx/commit/658689433eacc9eb pformat = pformat.replace( ' refuri="http://www.python.org/dev/peps/pep-0001">', ' refuri="http://www.python.org/dev/peps/pep-0001/">', ) file_params.assert_expected(pformat, rstrip_lines=True) @pytest.mark.param_file(FIXTURE_PATH / "dollarmath.md") def test_dollarmath(file_params: ParamTestData, sphinx_doctree_no_tr: CreateDoctree): sphinx_doctree_no_tr.set_conf( {"extensions": ["myst_parser"], "myst_enable_extensions": ["dollarmath"]} ) result = sphinx_doctree_no_tr(file_params.content, "index.md") file_params.assert_expected(result.pformat("index"), rstrip_lines=True) @pytest.mark.param_file(FIXTURE_PATH / "amsmath.md") def test_amsmath( file_params: ParamTestData, sphinx_doctree_no_tr: CreateDoctree, monkeypatch ): monkeypatch.setattr(SphinxRenderer, "_random_label", lambda self: "mock-uuid") sphinx_doctree_no_tr.set_conf( {"extensions": ["myst_parser"], "myst_enable_extensions": ["amsmath"]} ) result = sphinx_doctree_no_tr(file_params.content, "index.md") file_params.assert_expected(result.pformat("index"), rstrip_lines=True) @pytest.mark.param_file(FIXTURE_PATH / "containers.md") def test_containers( file_params: ParamTestData, sphinx_doctree_no_tr: CreateDoctree, monkeypatch ): monkeypatch.setattr(SphinxRenderer, "_random_label", lambda self: "mock-uuid") sphinx_doctree_no_tr.set_conf( {"extensions": ["myst_parser"], "myst_enable_extensions": ["colon_fence"]} ) result = sphinx_doctree_no_tr(file_params.content, "index.md") file_params.assert_expected(result.pformat("index"), rstrip_lines=True) @pytest.mark.param_file(FIXTURE_PATH / "eval_rst.md") def test_evalrst_elements( file_params: ParamTestData, sphinx_doctree_no_tr: CreateDoctree ): sphinx_doctree_no_tr.set_conf({"extensions": ["myst_parser"]}) result = sphinx_doctree_no_tr(file_params.content, "index.md") file_params.assert_expected(result.pformat("index"), rstrip_lines=True) @pytest.mark.param_file(FIXTURE_PATH / "definition_lists.md") def test_definition_lists( file_params: ParamTestData, sphinx_doctree_no_tr: CreateDoctree ): sphinx_doctree_no_tr.set_conf( {"extensions": ["myst_parser"], "myst_enable_extensions": ["deflist"]} ) result = sphinx_doctree_no_tr(file_params.content, "index.md") file_params.assert_expected(result.pformat("index"), rstrip_lines=True) @pytest.mark.param_file(FIXTURE_PATH / "attributes.md") def test_attributes(file_params: ParamTestData, sphinx_doctree_no_tr: CreateDoctree): sphinx_doctree_no_tr.set_conf( { "extensions": ["myst_parser"], "myst_enable_extensions": ["attrs_inline", "attrs_block"], } ) result = sphinx_doctree_no_tr(file_params.content, "index.md") file_params.assert_expected(result.pformat("index"), rstrip_lines=True) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/test_include_directive.py������������������������������������0000664�0000000�0000000�00000003031�14654155362�0025075�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������import os from io import StringIO from pathlib import Path import pytest from docutils.core import publish_doctree from myst_parser.parsers.docutils_ import Parser FIXTURE_PATH = Path(__file__).parent.joinpath("fixtures") @pytest.mark.param_file(FIXTURE_PATH / "mock_include.md") def test_render(file_params, tmp_path, monkeypatch): monkeypatch.chdir(tmp_path) tmp_path.joinpath("other.md").write_text("a\nb\nc") tmp_path.joinpath("fmatter.md").write_text("---\na: 1\n---\nb") doctree = publish_doctree( file_params.content, parser=Parser(), settings_overrides={"myst_highlight_code_blocks": False}, ) doctree["source"] = "tmpdir/test.md" output = doctree.pformat().replace(str(tmp_path) + os.sep, "tmpdir/").rstrip() file_params.assert_expected(output, rstrip=True) @pytest.mark.param_file(FIXTURE_PATH / "mock_include_errors.md") def test_errors(file_params, tmp_path, monkeypatch): if file_params.title.startswith("Non-existent path") and os.name == "nt": pytest.skip("tmp_path not converted correctly on Windows") monkeypatch.chdir(tmp_path) tmp_path.joinpath("bad.md").write_text("{a}`b`") report_stream = StringIO() publish_doctree( file_params.content, source_path=str(tmp_path / "test.md"), parser=Parser(), settings_overrides={"halt_level": 6, "warning_stream": report_stream}, ) file_params.assert_expected( report_stream.getvalue().replace(str(tmp_path) + os.sep, "tmpdir/"), rstrip=True, ) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/test_myst_config.py������������������������������������������0000664�0000000�0000000�00000002704�14654155362�0023743�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������"""Test (docutils) parsing with different ``MdParserConfig`` options set.""" import shlex from io import StringIO from pathlib import Path import pytest from docutils.core import Publisher, publish_string from pytest_param_files import ParamTestData from myst_parser.parsers.docutils_ import Parser FIXTURE_PATH = Path(__file__).parent.joinpath("fixtures") INV_PATH = Path(__file__).parent.parent.absolute() / "static" / "objects_v2.inv" @pytest.mark.param_file(FIXTURE_PATH / "myst-config.txt") def test_cmdline(file_params: ParamTestData): """The description is parsed as a docutils commandline""" pub = Publisher(parser=Parser()) try: pub.process_command_line(shlex.split(file_params.description or "")) except Exception as err: raise AssertionError( f"Failed to parse commandline: {file_params.description}\n{err}" ) from err settings = vars(pub.settings) report_stream = StringIO() settings["output_encoding"] = "unicode" settings["warning_stream"] = report_stream if "inv_" in file_params.title: settings["myst_inventories"] = {"key": ["https://example.com", str(INV_PATH)]} output = publish_string( file_params.content, parser=Parser(), writer_name="pseudoxml", settings_overrides=settings, ) warnings = report_stream.getvalue() if warnings: output += "\n" + warnings file_params.assert_expected(output, rstrip_lines=True) ������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/test_myst_refs.py��������������������������������������������0000664�0000000�0000000�00000002555�14654155362�0023441�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������import pytest from sphinx.util.console import strip_colors from sphinx_pytest.plugin import CreateDoctree @pytest.mark.parametrize( "test_name,text,should_warn", [ ("null", "", False), ("missing", "[](ref)", True), ("doc", "[](index)", False), ("doc_with_extension", "[](index.md)", False), ("doc_nested", "[*text*](index)", False), ("ref", "(ref)=\n# Title\n[](ref)", False), ("ref_nested", "(ref)=\n# Title\n[*text*](ref)", False), ("duplicate", "(index)=\n# Title\n[](index)", True), ("ref_colon", "(ref:colon)=\n# Title\n[](ref:colon)", False), ], ) def test_parse( test_name: str, text: str, should_warn: bool, sphinx_doctree: CreateDoctree, file_regression, ): sphinx_doctree.set_conf({"extensions": ["myst_parser"], "show_warning_types": True}) result = sphinx_doctree(text, "index.md") assert not result.warnings doctree = result.get_resolved_doctree("index") if should_warn: assert result.warnings else: assert not result.warnings doctree["source"] = "root/index.md" doctree.attributes.pop("translation_progress", None) outcome = doctree.pformat() if result.warnings.strip(): outcome += "\n\n" + strip_colors(result.warnings.strip()) file_regression.check(outcome, basename=test_name, extension=".xml") ���������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/test_myst_refs/����������������������������������������������0000775�0000000�0000000�00000000000�14654155362�0023060�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/test_myst_refs/doc.xml���������������������������������������0000664�0000000�0000000�00000000252�14654155362�0024346�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="root/index.md"> <paragraph> <reference internal="True" refuri=""> <inline classes="doc std std-doc"> <no title> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/test_myst_refs/doc_nested.xml��������������������������������0000664�0000000�0000000�00000000303�14654155362�0025705�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="root/index.md"> <paragraph> <reference internal="True" refuri=""> <inline classes="doc std std-doc"> <emphasis> text �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/test_myst_refs/doc_with_extension.xml������������������������0000664�0000000�0000000�00000000246�14654155362�0027500�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="root/index.md"> <paragraph> <reference internal="True" refuri=""> <inline classes="std std-doc"> <no title> ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/test_myst_refs/duplicate.xml���������������������������������0000664�0000000�0000000�00000000703�14654155362�0025554�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="root/index.md"> <target refid="index"> <section ids="title index" names="title index"> <title> Title <paragraph> <reference internal="True" refid="index"> <inline classes="std std-ref"> Title <src>/index.md:3: WARNING: more than one target found for 'myst' cross-reference index: could be :std:ref:`Title` or :std:doc:`Title` [myst.xref_ambiguous]�������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/test_myst_refs/missing.xml�����������������������������������0000664�0000000�0000000�00000000357�14654155362�0025260�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="root/index.md"> <paragraph> <reference refid="ref"> <literal classes="xref myst"> ref <src>/index.md:1: WARNING: 'myst' cross-reference target not found: 'ref' [myst.xref_missing]���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/test_myst_refs/null.xml��������������������������������������0000664�0000000�0000000�00000000042�14654155362�0024550�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="root/index.md"> ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/test_myst_refs/ref.xml���������������������������������������0000664�0000000�0000000�00000000436�14654155362�0024361�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="root/index.md"> <target refid="ref"> <section ids="title ref" names="title ref"> <title> Title <paragraph> <reference internal="True" refid="ref"> <inline classes="std std-ref"> Title ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/test_myst_refs/ref_colon.xml���������������������������������0000664�0000000�0000000�00000000466�14654155362�0025556�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="root/index.md"> <target refid="ref-colon"> <section ids="title ref-colon" names="title ref:colon"> <title> Title <paragraph> <reference internal="True" refid="ref-colon"> <inline classes="std std-ref"> Title ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/test_myst_refs/ref_nested.xml��������������������������������0000664�0000000�0000000�00000000500�14654155362�0025713�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="root/index.md"> <target refid="ref"> <section ids="title ref" names="title ref"> <title> Title <paragraph> <reference internal="True" refid="ref"> <inline classes="std std-ref"> <emphasis> text ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_renderers/test_parse_directives.py�������������������������������������0000664�0000000�0000000�00000010041�14654155362�0024746�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������import json from pathlib import Path import pytest import yaml from docutils.parsers.rst.directives.admonitions import Admonition, Note from docutils.parsers.rst.directives.body import Rubric from markdown_it import MarkdownIt from sphinx.directives.code import CodeBlock from myst_parser.parsers.directives import MarkupError, parse_directive_text from myst_parser.parsers.options import TokenizeError, options_to_items FIXTURE_PATH = Path(__file__).parent.joinpath("fixtures") @pytest.mark.param_file(FIXTURE_PATH / "option_parsing.yaml", "yaml") def test_option_parsing(file_params): """Test parsing of directive options.""" result, state = options_to_items(file_params.content) file_params.assert_expected( json.dumps( {"dict": result, "comments": state.has_comments}, ensure_ascii=False, indent=2, ), rstrip_lines=True, ) @pytest.mark.param_file(FIXTURE_PATH / "option_parsing_errors.yaml", "yaml") def test_option_parsing_errors(file_params): """Test parsing of directive options.""" try: options_to_items(file_params.content) except TokenizeError as err: result = str(err) else: result = "No error" file_params.assert_expected(result, rstrip_lines=True) @pytest.mark.param_file(FIXTURE_PATH / "directive_parsing.txt") def test_parsing(file_params): """Test parsing of directive text.""" tokens = MarkdownIt("commonmark").parse(file_params.content) assert len(tokens) == 1 and tokens[0].type == "fence" name, *first_line = tokens[0].info.split(maxsplit=1) if name == "{note}": klass = Note elif name == "{admonition}": klass = Admonition elif name == "{code-block}": klass = CodeBlock else: raise AssertionError(f"Unknown directive: {name}") try: result = parse_directive_text( klass, first_line[0] if first_line else "", tokens[0].content, line=0 ) except MarkupError as err: outcome = f"error: {err}" else: outcome = yaml.safe_dump( { "arguments": result.arguments, "options": result.options, "body": result.body, "content_offset": result.body_offset, "warnings": [repr(w) for w in result.warnings], }, sort_keys=True, ) file_params.assert_expected(outcome, rstrip_lines=True) @pytest.mark.parametrize( "descript,klass,arguments,content", [("no content", Rubric, "", "a")] ) def test_parsing_errors(descript, klass, arguments, content): with pytest.raises(MarkupError): parse_directive_text(klass, arguments, content) def test_parsing_full_yaml(): result = parse_directive_text( Note, "", "---\na: [1]\n---\ncontent", validate_options=False ) assert not result.warnings assert result.options == {"a": [1]} assert result.body == ["content"] def test_additional_options(): """Allow additional options to be passed to a directive.""" # this should be fine result = parse_directive_text( Note, "", "content", additional_options={"class": "bar"} ) assert not result.warnings assert result.options == {"class": ["bar"]} assert result.body == ["content"] # body on first line should also be fine result = parse_directive_text( Note, "content", "other", additional_options={"class": "bar"} ) assert not result.warnings assert result.options == {"class": ["bar"]} assert result.body == ["content", "other"] # additional option should not take precedence result = parse_directive_text( Note, "content", ":class: foo", additional_options={"class": "bar"} ) assert not result.warnings assert result.options == {"class": ["foo"]} assert result.body == ["content"] # this should warn about the unknown option result = parse_directive_text( Note, "", "content", additional_options={"foo": "bar"} ) assert len(result.warnings) == 1 assert "Unknown option" in result.warnings[0].msg �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/����������������������������������������������������������������0000775�0000000�0000000�00000000000�14654155362�0017326�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/conftest.py�����������������������������������������������������0000664�0000000�0000000�00000007564�14654155362�0021541�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������""" Uses sphinx's pytest fixture to run builds usage: .. code-block:: python @pytest.mark.sphinx( buildername='html', srcdir='path/to/source') def test_basic(app, status, warning, get_sphinx_app_output): app.build() assert 'build succeeded' in status.getvalue() # Build succeeded warnings = warning.getvalue().strip() assert warnings == "" output = get_sphinx_app_output(app, buildername='html') parameters available to parse to ``@pytest.mark.sphinx``: - buildername='html' - srcdir=None - testroot='root' (only used if srcdir not set) - freshenv=False - confoverrides=None - status=None - warning=None - tags=None - docutilsconf=None """ import os import pathlib import shutil import pytest from bs4 import BeautifulSoup from docutils import nodes from myst_parser._compat import findall SOURCE_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), "sourcedirs")) @pytest.fixture(scope="session", autouse=True) def remove_sphinx_builds(): """remove all build directories from the test folder""" yield srcdirs = pathlib.Path(SOURCE_DIR) for entry in srcdirs.iterdir(): # type: pathlib.Path if entry.is_dir() and entry.joinpath("_build").exists(): shutil.rmtree(str(entry.joinpath("_build"))) @pytest.fixture def get_sphinx_app_output(file_regression): def read( app, buildername="html", filename="index.html", encoding="utf-8", regress_html=False, regress_ext=".html", replace=None, ): outpath = pathlib.Path(str(app.srcdir), "_build", buildername, filename) if not outpath.exists(): raise OSError(f"no output file exists: {outpath}") content = outpath.read_text(encoding=encoding) if regress_html: # only regress the inner body, since other sections are non-deterministic soup = BeautifulSoup(content, "html.parser") doc_div = soup.findAll("div", {"class": "documentwrapper"})[0] # pygments 2.11.0 introduces a whitespace tag for pygment_whitespace in doc_div.select("pre > span.w"): pygment_whitespace.replace_with(pygment_whitespace.text) text = doc_div.prettify() # changed in sphinx 7.2 text = text.replace('"Link to this', '"Permalink to this') for find, rep in (replace or {}).items(): text = text.replace(find, rep) file_regression.check(text, extension=regress_ext, encoding="utf8") return content return read @pytest.fixture def get_sphinx_app_doctree(file_regression): def read( app, docname="index", resolve=False, regress=False, replace=None, rstrip_lines=False, regress_ext=".xml", ): if resolve: doctree = app.env.get_and_resolve_doctree(docname, app.builder) extension = f".resolved{regress_ext}" else: doctree = app.env.get_doctree(docname) extension = regress_ext # convert absolute filenames for node in findall(doctree)( lambda n: "source" in n and not isinstance(n, str) ): node["source"] = pathlib.Path(node["source"]).name doctree = doctree.deepcopy() # remove attrs added in sphinx 7.1 doctree.attributes.pop("translation_progress", None) for node in findall(doctree)(nodes.Element): node.attributes.pop("translated", None) if regress: text = doctree.pformat() # type: str for find, rep in (replace or {}).items(): text = text.replace(find, rep) if rstrip_lines: text = "\n".join([li.rstrip() for li in text.splitlines()]) file_regression.check(text, extension=extension) return doctree return read ��������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/�����������������������������������������������������0000775�0000000�0000000�00000000000�14654155362�0021510�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/.gitignore�������������������������������������������0000664�0000000�0000000�00000000010�14654155362�0023467�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������_build/ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/basic/�����������������������������������������������0000775�0000000�0000000�00000000000�14654155362�0022571�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/basic/conf.py����������������������������������������0000664�0000000�0000000�00000000073�14654155362�0024070�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������extensions = ["myst_parser"] exclude_patterns = ["_build"] ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/basic/content.md�������������������������������������0000664�0000000�0000000�00000002414�14654155362�0024566�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������--- author: Chris Sewell authors: Chris Sewell, Chris Hodgraf organization: EPFL address: | 1 Cedar Park Close Thundersley Essex contact: <https://example.com> version: 1.0 revision: 1.1 status: good date: 2/12/1985 copyright: MIT dedication: | To my *homies* abstract: Something something **dark** side other: Something else other_dict: key: value --- (target)= # Header % comment ````{note} abcd *abc* [google](https://www.google.com) ```{warning} xyz ``` ```` ```{admonition} Title with [link](target2) Content ``` (target2)= ```{figure} example.jpg --- height: 40px target: https://www.google.com --- Caption ``` ![*alternative text*](example.jpg) <https://www.google.com> **{code}`` a=1{`} ``** {math}`sdfds` **$a=1$** $$b=2$$ $$c=2$$ (eq:label) {eq}`eq:label` `` a=1{`} `` | a | b | |-----|--:| | *a* | 2 | | [link-a](https://google.com) | [link-b](https://python.org) | this is a paragraph % a comment 2 this is a second paragraph - a list - a sub list % a comment 3 - new list? {ref}`target` {ref}`target2` +++ a block break [name][key] [key]: https://www.google.com "a title" ``` def func(a, b=1): print(a) ``` Special substitution references: {sub-ref}`wordcount-words` words | {sub-ref}`wordcount-minutes` min read ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/basic/example.jpg������������������������������������0000664�0000000�0000000�00000160761�14654155362�0024741�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ΨαzExif��MM�*������������������b�������j(�������1����$���r2�������–‡i�������¬���Ψ� ό€��'� ό€��'Adobe Photoshop CC 2015 (Macintosh)�2015:12:17 10:59:45���� ������ ������r �������ώ��������������������&������.(�������������6������<�������H������H���Ψν� Adobe_CM�ξ�Adobe�d€���Ϋ�„�            ΐ��n� "�έ�� Δ?���������� ��������� � 3�!1AQa"q2‘‘±B#$RΑb34r‚ΡC%’Sπαρcs5’²ƒ&D“TdEΒ£t6Uβeς³„ΓΣuγσF'”€…΄•ΔΤδτ₯΅ΕΥευVfv†–¦ΆΖΦζφ7GWgw‡—§·ΗΧηχ�5�!1AQaq"2‘‘±B#ΑRΡπ3$bαr‚’CScs4ρ%’²ƒ&5ΒD“T£dEU6teβς³„ΓΣuγσF”€…΄•ΔΤδτ₯΅ΕΥευVfv†–¦ΆΖΦζφ'7GWgw‡—§·ΗΪ� ��?�λBIBpͺΆO $…'H'„’΄$₯ $₯‘:p 0“ cgύcͺ«€ΦδZΣ΅χjk‡e{€=ΏξτγRL!)šˆ·a%ΟWŸΤνΥωL `ϋ˜»Nv[@άοTwδΫξCˆ2KΗP]DΠ£MΜΉ›› €ΣΘ*i14,RR„ΠŠ–L$”²e$Ι)Π듦 ΥVΒι$%( œ¬lJΕΉV²†8ΓKΜn#σkhχΩύ† υ>£WMΒ~UήωΡLΗ©kΎ…sϋžίRη�‘bζjmΩWœ¬Η›²,ΠΨt�vΆύjoζTΔ™qa3Ԛˆό|žƒφοO'ΩκΌ~πώζ?ώг‰’ΰΚlΓΕn―?ΥkΎŸύmbγUKλkλx{_«^Ψ- χoD» ΆVAα«O«KOζΉ7‹Uη=#Ε7֎‘f& 1¨qeωΕΜή9m-΄9ΏΊϋw²†ΧWzΧMιχ7ϋ₯°XΩmcωzόzΉΤ3ςϊνu§τψ΅Œag;œcώΠ怨ΟQΏΏZ‘GΥΌWRϊl.uχΟΣέΞοόΕM υώ ‚1ΐF<Z™Hνα§‘υz^±s[Xnσa#nΨέΏwΡΩ·σ”:oΦN‡Τ3~Íq}ίΰάζ²Γ«‹){½Ξ³hόφWκ�υΖϊ½‡“*ιy΅ψμ ΑΫ\ν§swέώB~«υ_ό*¨Α ΑΏ ‡ΰάΐf·ƒκ{έ­–1Φ{μό�Sτͺ01λdο‘θ?¬³$€M ώ_’νΣ ½›>X~νΝ�€Υme۟F]^³ Φ΄I0>‹ό»νQZΘ²M56¦ΊlvΏζ3ώŠlNŒrΕ9@·u’Y΄υ Γ«Γ,·ρb»FK/cΫτ«w ~σOη± % GΑ"e"™«&N™%?Ρλ‚’„©U°Ίp”)04ΈhΩχωΙ!δΎ²e›ϊΫqZfΌ Γcώΰ.Έ�[ϋ=K/λOΩϊ-ΒNλ@© (ϋΏπ6½66K³2/Ο³C•kξ?ΈΊΆ�e›^_Υξ§ϊ­χΡhΧiΩξΫ·Υτχ�a< 4H]7ˆΔ!b$āύβκtj~Ιq£ͺ†Έ�›λ;ώ©κ…Χδt&δ_c­²ϋy/$Δ»ΪΖΟζ-‘C/₯ΥΔ΅ν-;uΓn…ͺ?§cτΌ 0qΓ…η™q$›η»Ϋξάυ1•ό �Ά"u�±_βπΌv]_FsjvΛ,΅νk†‘�1\ύyέ[ΟGΦΊ‡πnχμϊ»Ϊζ�UuΈ-υkžwZχ}ξrΧ=7&±^EL΅£³Ϊ―’–9„.2dζqρDŒd4Ρδ1ώΈuκ€Κ^�αυ4ΟΞ§VŠί­ίZ3/Έb§\γ΅R7YΞ΅ΦΆΆ·σμΠ]/όΨθÎsαξϋMί΅Κ�Ωq0qφcTΚ+h>ΪΪ4ώ―ώΪ'6.˜ΕψMxγλ3τέζ³z§Ω©ΚΟΘΫe¬-₯l†ΉΝNΙϊ5ϊΎ­Ÿρh}λUύA˜}CTrFϊΩΔ΅kχ{]΅fuG‘Σ±―-ήΖά,{O}BέίΙάS}[n_TλΨω7υα»Τ{ΐ­€οJ–ΗοΨολ§ qφδHο―jωYsΞC(€'τ} ~ιw­Λλ]G­δτή—”άπkkίnΐχXχmΪ͟Ρξwώ¬ZWϊ^oΪ1³ͺn?Vι― Ό3F8;w§c[ω»φΉ–³θ7eΞl―λGΥξ£λέΥ:fχ·%™”U"Θho½­aέuvlg©S=κΟԎ—ŠΜ¬ΜʟIΙmuΤΫdXζ°ΉΞs˜�}uώη©ο³ϊ‰’8¬΄kχψ�I‹ˆρUΏέαθφmp{Zφπα#ζ’#§§ΐΌ}Ξr*‰ŒθHμ²dι‘Sλ‘8 $ͺ³² —]Ι8½>πaβ‡1‡ωvΖ3?ι\…υβ�O£SDλ••[HρmM~CΏπFŒEΊ"εβσέ-›j hϊ"ε³±~Ο™~3Ϋ%£±k½μ#ω;WgšΡψ+Ή½©VΡ’ΒΑ챇kΫ<ί»ό‡©!˜Bfφ-fqb6|ώ½­ac!#έΆGΙvΏS0mΕιYŽk˜άΗΠΗk`;-ΫτKcίι»σιFΑϊ™Ρ¨°Yc’F‘·;s4γ}- e›–ΆσIf%†uΨLό’ΟΜ Η†7δ°bΔc!dš<ηDΨ΄“άIω­Φϋ@π ’Z>ΝD~γ"ά{΄C ψUησή]d±ΐΜ u7Ɲ½₯&<�7K|œ!Tλy!ΈvkΛ{!ΐ[ϊΗ›‰ΣΛπ™Ukši+¦cγΡHe k+@d?τVG%΄Rx–5¬~₯2,Θι՜ΌΙ²μ=Ε―cΟΉΦb½ίwϊ%4…’.»±]—`kqΣw―₯ΓgΓ…Q[Ξ±gH_}4ύ’ηˆΪΟs*ό+½VΨ±GΧ!hϋ7OΐΘPΆΊξhkγ }›IsΨΧ&ΏψK+Z]‘ώΙΖ΅χv~S™wς\βwϊmwϊ=Ηόji‡<ZΡ΅«ΧGkωˆπ{Ώ,�d 3μ°x:~ρ�˜£ 6 rωŠΕ2r’(ΣλI:ͺΨ\.Kόa_±έ"’`=Ω/ω΅Έμoύ[—Zώ2*³'/§SWΣͺ‹mΗΣ±¬�Ρ ψΎq~?’…Ψ1F¬ΊcšΧ Gu’ώ±Σ±ς±πξ½­ΙΙ U^¦I;YΉΝ΅οwΆΏQpΈέc¨`UυΛƒNΝΒ ώit{^Ε»υ;.Ϋ:žFHΙκn.q¨–ΉΥ΄ϋ=GUτ·~oϊ:*ύ90Χ€tιΓΥ²sΖdΏιq~ˆ�Ύ{ΈH<!u ά ¬:†ΦγψfRΠΠˆψB£υ†·~ΙΛΨγ₯/ππρUΐΤyͺ5Δ<ά>‹„αP‘£€φ]Xΐ0F֟ ‰Yύ2Kς@ ΅xΞD“lΉdn»2mV —|–7Φcφc±Σ‘5[γ^Vo[ͺ<y jAf2xÁκ΄y4~ ££VΆtπs£ΈJΗ„ώR·±μφ†ƒ¨‚vO˜ω²ΟX'R·kΜΟ!ΩΕηύpΝιyοΗΏ§Hqτ^l-uα+%«έϋŠφ?Χξ†ϊœϋΫ‘Žφ7vΗ0?qύΚν©Ξgύ½θ#μδ Dlή¦€₯"υύ?τžŸΝυ­}ΫXψς—²U•ΝύSΙκG33¬eΣφj2©¬ O"–=ΦΊΧqΏΤ}ŸΞ�…�ϊMt‰W˜€lίu’N™%?ΤλΣ„Α:ͺΞΘ.7λCύO¬‘Ÿθ1hgΝζΫ�τkWbΩ:NpYΩ+λQΘn¬9¦VάV�η”θυςfΐ.G7λ&3έ…]¬*tΩδΫ?Ωr'՟«ψJͺσ}|Šo‘εΆ \C‡ΠuVνυ+ήΓΉoU‰VE.ΐ]-sOptr΅ΠΊF?IΓ8Τ?s½Kσξ.:WkX‰ΝXΜA"Wψ/Ɍ{œZ6?Όλ°žόͺ}vbζΗϊώEq€B§Χδlίψ‡�Τ•^;4GζaΝιΏΝ3ΘZ`χνΒΚι“'ΐ-FόQ;–lŸ1l4φYύ`N3njώEwΤ�Δς¨uƒΈ?‘(ξCη5Ežƒ uœ#Ώw‚ά Z<@.3�Edτ_s�Ꜻ*=±Ψr!I”ϊ›1—€yϊΡΤ_CjΒe&윭XΧ³{@ΟΡΤζΉφ_»θ,Z:^GOκέ9Ήυ†6Λ(ΊΖZ[£nΝ–Uξχ{}μ^…φzΜ‡ΦΓmsιΨZ Ϋ?OΣ°ϋ™»ω+#λΥ›:ΎN6N3ΫUΜsYsήN΅o–7θϊ•8½ίπͺLY’�τƒ|Rje‰‘βή«†?›Σ2Fσ$‡4όbοͺͺ_ϊv?‰°iύc·ώό¬• vY=ώŠL’dε―Υλ‚p˜'UYΦΏ%ΈxΧf;θβΤϋύm°jσŽΓ°oΥηW3«�ι.ΫλA΄}\κ“w[EžUΧφ‹?³VεΗtΈίσΧΑ>?,›<Άδ½FΦΖƒΑ^©β}ώ½•©vή'U\―žν†:UN·―GΞ�ˆ³ώ€£Τ]OΘͺυ²�Ω9°4τ,�©(Ηqζ°PσsΊ{@©šžZηƒΖΊ¬Ξžl5³HΠDλΩ^w­"#̝?&τeΉgΘ5έ΅Q?ΕQλDŠ<AσE§νAΔ§Y?άͺυƒ`Ζt‰1―�2J?0[S‡ :):πχϊRΊZ\Ή~‡»c£ύ#�*ι±ghžσ|ΗΝ'䏐nΆ?Ή‚uξͺΦN㦊ΛIž<9Q0ɝš4;χK]χUη OΕQΆ=7nΠAŸΉ]΄nΡΠ$yΖ©ΡκΕ>‹ΚE2zΗΩνΪPhotoshop 3.0�8BIM�����?Z�%GZ�%GZ�%GZ�%GZ�%GZ�%GZ�%G�����8BIM%�����iΩΰυκρ©s $(X8BIM:�����ε����������� printOutput�������PstSbool����Inteenum����Inte����Clrm���printSixteenBitbool���� printerNameTEXT��������printProofSetupObjc��� �P�r�o�o�f� �S�e�t�u�p����� proofSetup�������Bltnenum��� builtinProof��� proofCMYK�8BIM;����-�����������printOutputOptions�������Cptnbool�����Clbrbool�����RgsMbool�����CrnCbool�����CntCbool�����Lblsbool�����Ngtvbool�����EmlDbool�����Intrbool�����BckgObjc���������RGBC�������Rd doub@oΰ���������Grn doub@oΰ���������Bl doub@oΰ���������BrdTUntF#Rlt������������Bld UntF#Rlt������������RsltUntF#Pxl@R��������� vectorDatabool����PgPsenum����PgPs����PgPC����LeftUntF#Rlt������������Top UntF#Rlt������������Scl UntF#Prc@Y���������cropWhenPrintingbool����cropRectBottomlong������� cropRectLeftlong������� cropRectRightlong������� cropRectToplong�����8BIMν������H�����H����8BIM&���������������?€��8BIM ��������8BIM��������8BIMσ����� ���������8BIM'����� ��������8BIMυ�����H�/ff��lff�������/ff��‘™š�������2����Z���������5����-��������8BIMψ�����p��θ����θ����θ����θ��8BIM�������)8BIM�����†��������������������������������������������������������������������������������������������������������������������������������������8BIM0�����C�8BIM-���������68BIM�����L�����@��@��� ������B�œ����"@��ΐΚ@�Ξ��ό@��������.@�Η€ύ€8BIM���������8BIM����c��������������ώ��r����1�2�.�1�5�-�h�o�m�e�p�a�g�e�-�c�u�r�a�t�i�o�n��������������������������������r���ώ��������������������������������������������null������boundsObjc���������Rct1�������Top long��������Leftlong��������Btomlong���ώ����Rghtlong��r���slicesVlLs���Objc��������slice������sliceIDlong�������groupIDlong�������originenum��� ESliceOrigin��� autoGenerated����Typeenum��� ESliceType����Img ���boundsObjc���������Rct1�������Top long��������Leftlong��������Btomlong���ώ����Rghtlong��r���urlTEXT���������nullTEXT���������MsgeTEXT��������altTagTEXT��������cellTextIsHTMLbool���cellTextTEXT�������� horzAlignenum���ESliceHorzAlign���default��� vertAlignenum���ESliceVertAlign���default��� bgColorTypeenum���ESliceBGColorType����None��� topOutsetlong������� leftOutsetlong������� bottomOutsetlong������� rightOutsetlong�����8BIM(����� ���?π������8BIM��������Χ8BIM ����X������ ���n��ΰ��Ξ@��<��Ψν� Adobe_CM�ξ�Adobe�d€���Ϋ�„�            ΐ��n� "�έ�� Δ?���������� ��������� � 3�!1AQa"q2‘‘±B#$RΑb34r‚ΡC%’Sπαρcs5’²ƒ&D“TdEΒ£t6Uβeς³„ΓΣuγσF'”€…΄•ΔΤδτ₯΅ΕΥευVfv†–¦ΆΖΦζφ7GWgw‡—§·ΗΧηχ�5�!1AQaq"2‘‘±B#ΑRΡπ3$bαr‚’CScs4ρ%’²ƒ&5ΒD“T£dEU6teβς³„ΓΣuγσF”€…΄•ΔΤδτ₯΅ΕΥευVfv†–¦ΆΖΦζφ'7GWgw‡—§·ΗΪ� ��?�λBIBpͺΆO $…'H'„’΄$₯ $₯‘:p 0“ cgύcͺ«€ΦδZΣ΅χjk‡e{€=ΏξτγRL!)šˆ·a%ΟWŸΤνΥωL `ϋ˜»Nv[@άοTwδΫξCˆ2KΗP]DΠ£MΜΉ›› €ΣΘ*i14,RR„ΠŠ–L$”²e$Ι)Π듦 ΥVΒι$%( œ¬lJΕΉV²†8ΓKΜn#σkhχΩύ† υ>£WMΒ~UήωΡLΗ©kΎ…sϋžίRη�‘bζjmΩWœ¬Η›²,ΠΨt�vΆύjoζTΔ™qa3Ԛˆό|žƒφοO'ΩκΌ~πώζ?ώг‰’ΰΚlΓΕn―?ΥkΎŸύmbγUKλkλx{_«^Ψ- χoD» ΆVAα«O«KOζΉ7‹Uη=#Ε7֎‘f& 1¨qeωΕΜή9m-΄9ΏΊϋw²†ΧWzΧMιχ7ϋ₯°XΩmcωzόzΉΤ3ςϊνu§τψ΅Œag;œcώΠ怨ΟQΏΏZ‘GΥΌWRϊl.uχΟΣέΞοόΕM υώ ‚1ΐF<Z™Hνα§‘υz^±s[Xnσa#nΨέΏwΡΩ·σ”:oΦN‡Τ3~Íq}ίΰάζ²Γ«‹){½Ξ³hόφWκ�υΖϊ½‡“*ιy΅ψμ ΑΫ\ν§swέώB~«υ_ό*¨Α ΑΏ ‡ΰάΐf·ƒκ{έ­–1Φ{μό�Sτͺ01λdο‘θ?¬³$€M ώ_’νΣ ½›>X~νΝ�€Υme۟F]^³ Φ΄I0>‹ό»νQZΘ²M56¦ΊlvΏζ3ώŠlNŒrΕ9@·u’Y΄υ Γ«Γ,·ρb»FK/cΫτ«w ~σOη± % GΑ"e"™«&N™%?Ρλ‚’„©U°Ίp”)04ΈhΩχωΙ!δΎ²e›ϊΫqZfΌ Γcώΰ.Έ�[ϋ=K/λOΩϊ-ΒNλ@© (ϋΏπ6½66K³2/Ο³C•kξ?ΈΊΆ�e›^_Υξ§ϊ­χΡhΧiΩξΫ·Υτχ�a< 4H]7ˆΔ!b$āύβκtj~Ιq£ͺ†Έ�›λ;ώ©κ…Χδt&δ_c­²ϋy/$Δ»ΪΖΟζ-‘C/₯ΥΔ΅ν-;uΓn…ͺ?§cτΌ 0qΓ…η™q$›η»Ϋξάυ1•ό �Ά"u�±_βπΌv]_FsjvΛ,΅νk†‘�1\ύyέ[ΟGΦΊ‡πnχμϊ»Ϊζ�UuΈ-υkžwZχ}ξrΧ=7&±^EL΅£³Ϊ―’–9„.2dζqρDŒd4Ρδ1ώΈuκ€Κ^�αυ4ΟΞ§VŠί­ίZ3/Έb§\γ΅R7YΞ΅ΦΆΆ·σμΠ]/όΨθÎsαξϋMί΅Κ�Ωq0qφcTΚ+h>ΪΪ4ώ―ώΪ'6.˜ΕψMxγλ3τέζ³z§Ω©ΚΟΘΫe¬-₯l†ΉΝNΙϊ5ϊΎ­Ÿρh}λUύA˜}CTrFϊΩΔ΅kχ{]΅fuG‘Σ±―-ήΖά,{O}BέίΙάS}[n_TλΨω7υα»Τ{ΐ­€οJ–ΗοΨολ§ qφδHο―jωYsΞC(€'τ} ~ιw­Λλ]G­δτή—”άπkkίnΐχXχmΪ͟Ρξwώ¬ZWϊ^oΪ1³ͺn?Vι― Ό3F8;w§c[ω»φΉ–³θ7eΞl―λGΥξ£λέΥ:fχ·%™”U"Θho½­aέuvlg©S=κΟԎ—ŠΜ¬ΜʟIΙmuΤΫdXζ°ΉΞs˜�}uώη©ο³ϊ‰’8¬΄kχψ�I‹ˆρUΏέαθφmp{Zφπα#ζ’#§§ΐΌ}Ξr*‰ŒθHμ²dι‘Sλ‘8 $ͺ³² —]Ι8½>πaβ‡1‡ωvΖ3?ι\…υβ�O£SDλ••[HρmM~CΏπFŒEΊ"εβσέ-›j hϊ"ε³±~Ο™~3Ϋ%£±k½μ#ω;WgšΡψ+Ή½©VΡ’ΒΑ챇kΫ<ί»ό‡©!˜Bfφ-fqb6|ώ½­ac!#έΆGΙvΏS0mΕιYŽk˜άΗΠΗk`;-ΫτKcίι»σιFΑϊ™Ρ¨°Yc’F‘·;s4γ}- e›–ΆσIf%†uΨLό’ΟΜ Η†7δ°bΔc!dš<ηDΨ΄“άIω­Φϋ@π ’Z>ΝD~γ"ά{΄C ψUησή]d±ΐΜ u7Ɲ½₯&<�7K|œ!Tλy!ΈvkΛ{!ΐ[ϊΗ›‰ΣΛπ™Ukši+¦cγΡHe k+@d?τVG%΄Rx–5¬~₯2,Θι՜ΌΙ²μ=Ε―cΟΉΦb½ίwϊ%4…’.»±]—`kqΣw―₯ΓgΓ…Q[Ξ±gH_}4ύ’ηˆΪΟs*ό+½VΨ±GΧ!hϋ7OΐΘPΆΊξhkγ }›IsΨΧ&ΏψK+Z]‘ώΙΖ΅χv~S™wς\βwϊmwϊ=Ηόji‡<ZΡ΅«ΧGkωˆπ{Ώ,�d 3μ°x:~ρ�˜£ 6 rωŠΕ2r’(ΣλI:ͺΨ\.Kόa_±έ"’`=Ω/ω΅Έμoύ[—Zώ2*³'/§SWΣͺ‹mΗΣ±¬�Ρ ψΎq~?’…Ψ1F¬ΊcšΧ Gu’ώ±Σ±ς±πξ½­ΙΙ U^¦I;YΉΝ΅οwΆΏQpΈέc¨`UυΛƒNΝΒ ώit{^Ε»υ;.Ϋ:žFHΙκn.q¨–ΉΥ΄ϋ=GUτ·~oϊ:*ύ90Χ€tιΓΥ²sΖdΏιq~ˆ�Ύ{ΈH<!u ά ¬:†ΦγψfRΠΠˆψB£υ†·~ΙΛΨγ₯/ππρUΐΤyͺ5Δ<ά>‹„αP‘£€φ]Xΐ0F֟ ‰Yύ2Kς@ ΅xΞD“lΉdn»2mV —|–7Φcφc±Σ‘5[γ^Vo[ͺ<y jAf2xÁκ΄y4~ ££VΆtπs£ΈJΗ„ώR·±μφ†ƒ¨‚vO˜ω²ΟX'R·kΜΟ!ΩΕηύpΝιyοΗΏ§Hqτ^l-uα+%«έϋŠφ?Χξ†ϊœϋΫ‘Žφ7vΗ0?qύΚν©Ξgύ½θ#μδ Dlή¦€₯"υύ?τžŸΝυ­}ΫXψς—²U•ΝύSΙκG33¬eΣφj2©¬ O"–=ΦΊΧqΏΤ}ŸΞ�…�ϊMt‰W˜€lίu’N™%?ΤλΣ„Α:ͺΞΘ.7λCύO¬‘Ÿθ1hgΝζΫ�τkWbΩ:NpYΩ+λQΘn¬9¦VάV�η”θυςfΐ.G7λ&3έ…]¬*tΩδΫ?Ωr'՟«ψJͺσ}|Šo‘εΆ \C‡ΠuVνυ+ήΓΉoU‰VE.ΐ]-sOptr΅ΠΊF?IΓ8Τ?s½Kσξ.:WkX‰ΝXΜA"Wψ/Ɍ{œZ6?Όλ°žόͺ}vbζΗϊώEq€B§Χδlίψ‡�Τ•^;4GζaΝιΏΝ3ΘZ`χνΒΚι“'ΐ-FόQ;–lŸ1l4φYύ`N3njώEwΤ�Δς¨uƒΈ?‘(ξCη5Ežƒ uœ#Ώw‚ά Z<@.3�Edτ_s�Ꜻ*=±Ψr!I”ϊ›1—€yϊΡΤ_CjΒe&윭XΧ³{@ΟΡΤζΉφ_»θ,Z:^GOκέ9Ήυ†6Λ(ΊΖZ[£nΝ–Uξχ{}μ^…φzΜ‡ΦΓmsιΨZ Ϋ?OΣ°ϋ™»ω+#λΥ›:ΎN6N3ΫUΜsYsήN΅o–7θϊ•8½ίπͺLY’�τƒ|Rje‰‘βή«†?›Σ2Fσ$‡4όbοͺͺ_ϊv?‰°iύc·ώό¬• vY=ώŠL’dε―Υλ‚p˜'UYΦΏ%ΈxΧf;θβΤϋύm°jσŽΓ°oΥηW3«�ι.ΫλA΄}\κ“w[EžUΧφ‹?³VεΗtΈίσΧΑ>?,›<Άδ½FΦΖƒΑ^©β}ώ½•©vή'U\―žν†:UN·―GΞ�ˆ³ώ€£Τ]OΘͺυ²�Ω9°4τ,�©(Ηqζ°PσsΊ{@©šžZηƒΖΊ¬Ξžl5³HΠDλΩ^w­"#̝?&τeΉgΘ5έ΅Q?ΕQλDŠ<AσE§νAΔ§Y?άͺυƒ`Ζt‰1―�2J?0[S‡ :):πχϊRΊZ\Ή~‡»c£ύ#�*ι±ghžσ|ΗΝ'䏐nΆ?Ή‚uξͺΦN㦊ΛIž<9Q0ɝš4;χK]χUη OΕQΆ=7nΠAŸΉ]΄nΡΠ$yΖ©ΡκΕ>‹ΚE2zΗΩ8BIM!�����]�������A�d�o�b�e� �P�h�o�t�o�s�h�o�p����A�d�o�b�e� �P�h�o�t�o�s�h�o�p� �C�C� �2�0�1�5����8BIM����������αηhttp://ns.adobe.com/xap/1.0/�<?xpacket begin="ο»Ώ" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c067 79.157747, 2015/03/30-23:40:42 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreateDate="2015-10-08T12:38:11-04:00" xmp:ModifyDate="2015-12-17T10:59:45-05:00" xmp:MetadataDate="2015-12-17T10:59:45-05:00" xmp:CreatorTool="Adobe Photoshop CC 2015 (Macintosh)" dc:format="image/jpeg" photoshop:ColorMode="3" photoshop:ICCProfile="VA2703 Series Calibrated" xmpMM:InstanceID="xmp.iid:e2bd0b59-56b1-43bf-b7e2-32743b1a93c0" xmpMM:DocumentID="adobe:docid:photoshop:961aeea4-e565-1178-84a1-ef55e5ef95af" xmpMM:OriginalDocumentID="xmp.did:6524ee62-4040-4486-9730-cc482d0b6dc4"> <photoshop:TextLayers> <rdf:Bag> <rdf:li photoshop:LayerName="Popular Illustration Categories" photoshop:LayerText="Popular Illustration Categories"/> <rdf:li photoshop:LayerName="Popular Vector Categories" photoshop:LayerText="Popular Vector Categories"/> <rdf:li photoshop:LayerName="Popular Photo Categories" photoshop:LayerText="Popular Photo Categories"/> <rdf:li photoshop:LayerName="Bigstock Picks" photoshop:LayerText="Bigstock Picks"/> <rdf:li photoshop:LayerName="Winter Collection" photoshop:LayerText="Winter Collection"/> <rdf:li photoshop:LayerName="Bigstock Video" photoshop:LayerText="Bigstock Video"/> <rdf:li photoshop:LayerName="Images and Video for everyone." photoshop:LayerText="Images and Video for everyone."/> <rdf:li photoshop:LayerName="Over 30 million stock photos, videos, and vectors." photoshop:LayerText="Over 30 million stock photos, videos, and vectors."/> </rdf:Bag> </photoshop:TextLayers> <photoshop:DocumentAncestors> <rdf:Bag> <rdf:li>2338B8E41274008A90C8BD2547960BB3</rdf:li> <rdf:li>2DE4406C10B73422B4EE6D8B0D325FA8</rdf:li> <rdf:li>3197650EE93F798D6A2BAF21AD62272B</rdf:li> <rdf:li>3F298132EF5DF7BD1E7E79C525C0CA86</rdf:li> <rdf:li>5AAA046F1BED5507B4FE582ED12591A4</rdf:li> <rdf:li>65653AF10A51D90FA07ECE63326084AA</rdf:li> <rdf:li>76E417E5E4017D78582B791B963C9F3B</rdf:li> <rdf:li>8F4003C1E5318DE635C83490D514830A</rdf:li> <rdf:li>A1474CB5A10E36D46870F0446E07D3E0</rdf:li> <rdf:li>A4D5D3C7397850DFFCA8C636A6D2AA9E</rdf:li> <rdf:li>A81867ADB2D20376CAF23C6C4455A61F</rdf:li> <rdf:li>C309326AF2D2E3A15A8A224EE0246442</rdf:li> <rdf:li>C4AABDD571F96E9245AF3255DACBE902</rdf:li> <rdf:li>C597FDD2DF29CEE3A08906DEF8235FA3</rdf:li> <rdf:li>D0E41193D0D87ABF69D3A27435FD9CE6</rdf:li> <rdf:li>D493B382008DD02005894F84AB8ACDA5</rdf:li> <rdf:li>DB1AC9D26B1F40C9A5A11B7A6ADC3A12</rdf:li> <rdf:li>E64E952ACE29002EB68F1BCD01B8911B</rdf:li> <rdf:li>E6885685CBDF2324E71158BF2176E1FE</rdf:li> <rdf:li>F5E7577A6B3A341A51CAAAC5E3A59B11</rdf:li> <rdf:li>FD1D7E31C7512BE0A891CDAA5C77DE95</rdf:li> <rdf:li>xmp.did:64946cb8-411a-4b00-9961-c82dffc5464c</rdf:li> </rdf:Bag> </photoshop:DocumentAncestors> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:6524ee62-4040-4486-9730-cc482d0b6dc4" stEvt:when="2015-10-30T14:26:35-04:00" stEvt:softwareAgent="Adobe Photoshop CC 2015 (Macintosh)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvt:parameters="from image/png to application/vnd.adobe.photoshop"/> <rdf:li stEvt:action="derived" stEvt:parameters="converted from image/png to application/vnd.adobe.photoshop"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:64946cb8-411a-4b00-9961-c82dffc5464c" stEvt:when="2015-10-30T14:26:35-04:00" stEvt:softwareAgent="Adobe Photoshop CC 2015 (Macintosh)" stEvt:changed="/"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:6344f71c-48bd-40e8-aa3f-f72a106bce9a" stEvt:when="2015-12-17T10:59:45-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2015 (Macintosh)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvt:parameters="from application/vnd.adobe.photoshop to image/jpeg"/> <rdf:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/jpeg"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:e2bd0b59-56b1-43bf-b7e2-32743b1a93c0" stEvt:when="2015-12-17T10:59:45-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2015 (Macintosh)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:6344f71c-48bd-40e8-aa3f-f72a106bce9a" stRef:documentID="adobe:docid:photoshop:ca754c60-bfc0-1178-b80c-e5ac2abee428" stRef:originalDocumentID="xmp.did:6524ee62-4040-4486-9730-cc482d0b6dc4"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="w"?>β)hICC_PROFILE���)Xappl��mntrRGB XYZ ί� � ���acspAPPL��������������������������φΦ�����Σ-appl�����������������������������������������������desc��P���sdscm��Δ���Lcprt�����#wtpt��4���rXYZ��H���gXYZ��\���bXYZ��p���rTRC��„�� aarg�� ��� vcgt�� °��ndin��Δ��>chad��)���,mmod��)0���(bTRC��„�� gTRC��„�� aabg�� ��� aagg�� ��� desc�������VA2703 Series Calibrated��������������������������������������������������������������������������������mluc���������� enUS���0����V�A�2�7�0�3� �S�e�r�i�e�s� �C�a�l�i�b�r�a�t�e�dtext����Copyright Apple Inc., 2015��XYZ ������σΨ����XYZ ������l��8©��—XYZ ������b6��·r��XYZ ������(‘��ε��Ύ—curv����������� �����#�(�-�2�6�;�@�E�J�O�T�Y�^�c�h�m�r�w�|��†�‹��•�š�Ÿ�£�¨�­�²�·�Ό�Α�Ζ�Λ�Π�Υ�Ϋ�ΰ�ε�λ�π�φ�ϋ %+28>ELRY`gnu|ƒ‹’š‘©±ΉΑΙΡΩαιςϊ &/8AKT]gqz„Ž˜’¬ΆΑΛΥΰλυ� !-8COZfr~Š–’ΊΗΣΰμω -;HUcq~Œš¨ΆΔΣαπώ +:IXgw†–¦΅ΕΥεφ'7HYj{Œ―ΐΡγυ+=Oat†™¬Ώεψ 2FZn‚–ͺΎηϋ  % : O d y  € Ί Ο ε ϋ  ' = T j  ˜ Ε ά σ " 9 Q i € ˜ ° Θ α ω  * C \ u Ž § ΐ Ω σ & @ Z t Ž © Γ ή ψ.Id›Άξ %A^z–³Ομ &Ca~›ΉΧυ1OmŒͺΙθ&Ed„£Γγ#Ccƒ€Εε'Ij‹­Ξπ4Vx›½ΰ&Il²ΦϊAe‰χ@eŠ―Υϊ Ek‘·έ*QwžΕμ;cвΪ*R{£ΜυGp™Γμ@j”Ύι>i”Ώκ  A l ˜ Δ π!!H!u!‘!Ξ!ϋ"'"U"‚"―"έ# #8#f#”#Β#π$$M$|$«$Ϊ% %8%h%—%Η%χ&'&W&‡&·&θ''I'z'«'ά( (?(q(’(Τ))8)k))Π**5*h*›*Ο++6+i++Ρ,,9,n,’,Χ- -A-v-«-α..L.‚.·.ξ/$/Z/‘/Η/ώ050l0€0Ϋ11J1‚1Ί1ς2*2c2›2Τ3 3F33Έ3ρ4+4e4ž4Ψ55M5‡5Β5ύ676r66ι7$7`7œ7Χ88P8Œ8Θ99B99Ό9ω:6:t:²:ο;-;k;ͺ;θ<'<e<€<γ="=a=‘=ΰ> >`> >ΰ?!?a?’?β@#@d@¦@ηA)AjA¬AξB0BrB΅BχC:C}CΐDDGDŠDΞEEUEšEήF"FgF«FπG5G{GΐHHKH‘HΧIIcI©IπJ7J}JΔK KSKšKβL*LrLΊMMJM“MάN%NnN·O�OIO“OέP'PqP»QQPQ›QζR1R|RΗSS_SͺSφTBTTΫU(UuUΒVV\V©VχWDW’WΰX/X}XΛYYiYΈZZVZ¦Zυ[E[•[ε\5\†\Φ]']x]Ι^^l^½__a_³``W`ͺ`όaOa’aυbIbœbπcCc—cλd@d”dιe=e’eηf=f’fθg=g“gιh?h–hμiCišiρjHjŸjχkOk§klWl―mm`mΉnnknΔooxoΡp+p†pΰq:q•qπrKr¦ss]sΈttptΜu(u…uαv>v›vψwVw³xxnxΜy*y‰yηzFz₯{{c{Β|!||α}A}‘~~b~Β#„ε€G€¨ kΝ‚0‚’‚τƒWƒΊ„„€„γ…G…«††r†Χ‡;‡ŸˆˆiˆΞ‰3‰™‰ώŠdŠΚ‹0‹–‹όŒcŒΚ1˜ŽfŽΞ6žnΦ‘?‘¨’’z’γ“M“Ά” ”Š”τ•_•Ι–4–Ÿ— —u—ΰ˜L˜Έ™$™™όšhšΥ›B›―œœ‰œχdž@žŸŸ‹Ÿϊ i Ψ‘G‘Ά’&’–££v£ζ€V€Η₯8₯©¦¦‹¦ύ§n§ΰ¨R¨Δ©7©©ͺͺ««u«ι¬\¬Π­D­Έ-‘――‹°�°u°κ±`±Φ²K²Β³8³΄%΄œ΅΅ŠΆΆyΆπ·h·ΰΈYΈΡΉJΉΒΊ;Ί΅».»§Ό!Ό›½½Ύ Ύ„ΎΏzΏυΐpΐμΑgΑγΒ_ΒΫΓXΓΤΔQΔΞΕKΕΘΖFΖΓΗAΗΏΘ=ΘΌΙ:ΙΉΚ8Κ·Λ6ΛΆΜ5Μ΅Ν5Ν΅Ξ6ΞΆΟ7ΟΈΠ9ΠΊΡ<ΡΎ?ΑΣDΣΖΤIΤΛΥNΥΡΦUΦΨΧ\ΧΰΨdΨθΩlΩρΪvΪϋΫ€ά܊έέ–ήή’ί)ί―ΰ6ΰ½αDαΜβSβΫγcγλδsδόε„ζ ζ–ηη©θ2θΌιFιΠκ[κελpλϋμ†ννœξ(ξ΄ο@οΜπXπερrρςŒσσ§τ4τΒυPυήφmφϋχŠψψ¨ω8ωΗϊWϊηϋwόό˜ύ)ύΊώKώάmpara��������ff��ς§�� Y��Π�� vcgt��������������”�βo°DΨv±W‘Gν — F ο › K ϋ ―aΙ‚:ς­h%γ€f'ν°zC Ψ₯uDλ Α!˜"r#K$)% %ι&Λ'(”){*d+O,<-*./ /ώ0ς1η2ή3Υ4Μ5Δ6Ό7΄8­9¨:€;‘< =‘>£?§@­A΅BΎCΚDΧEζFψH I!J8KRLnM‹N¬OΞPσRSCToUVΝX�Y5Zl[¦\ΰ^_]`aίc!dde¨fνh0iujΈkόm=n}o»pψr2sitžuΠvύx(yNzr{|¬}Γ~Υδ€ξφ‚ό„�…†‡ˆ‰Š‹�‹όŒψςŽμεέ‘Φ’Ν“Ε”»•²–©—Ÿ˜•™‹š›wœndž[ŸR I‘A’:£3€,₯&¦!§¨©ͺ«¬­―%°-±6²B³O΄]΅lΆ{·‹ΈΉΊΐ»ΣΌη½ϋΏΐ&Α=ΒTΓkΔ„ΕœΖΆΗΠΘκΚΛ!Μ>ΝZΞwΟ•Π³ΡρΤΥ0ΦPΧqΨ’Ω³ΪΥΫφέή:ί\ΰα‘βΔγηε ζ.ηSθwιœκΒλθνξ7ο_πˆρ²ςέτυ5φcχ’ψΒωσϋ&όZύώΖ���”"―Bπ₯Bς¨]Ώw 3 ν ͺ g $ η ¦h)ξΆyB ΣŸk5Σ’rCλΐ“kC  ς!Ν"§#„$_%>&&ό'ά(Ώ) *ƒ+f,J-1..ύ/ε0Ξ1·2 3Š4u5`6M798$99ώ:λ;Ψ<Ε=³>‘?Ž@}AlB[CJD;E-F GH HIχJπKμLκMιNκOπPψRST%U<VSWmX‡Y£Zΐ[ί\^_A`daˆb¬cdχfgChii‘j·kέmn)oOpsq–rΈsΩtωvw4xOyhz{”|§}Έ~ΘΧ€ηφƒ„…#†1‡?ˆM‰[Ši‹vŒ„’ŽŸ¬Έ‘Ε’“ή”λ•ψ—˜™š(›4œ@LžWŸc o‘z’†£‘€₯¨¦΄§Ώ¨Κ©Φͺα«μ¬ψ―°±&²1³<΄F΅OΆV·]ΈcΉhΊl»pΌs½vΎyΏ{ΐ~Α€ΒƒΓ…Δ‰ΕŒΖΗ”Θ™Ι Κ¦ΛΜ·ΝΑΞΝΟΫΠκΡϋΣΤ#Υ;ΦUΧsΨ“ΩΈΪέάέ'ήMίtΰ›αΒβκδε>ζjη—θΕιυλ(μ[ν‘ξΙπρBς‚σΖυφYχͺψώϊXϋ·ύώŠ���”"―Aπ„-Φ-άŒAσ ͺ a  Τ  EΓ‡C ΗŽSβ©r>Φ€sE軐f >!!ξ"Κ#₯$ƒ%_&>''(β)Δ*¨+,t-\.C/,011μ2Ω3Ε4²5‘6Ž7~8l9\:K;<<.=!>??ώ@τAμBεCήDΩEΥFΣGΠHΠIΠJKΥLΩMέNδOμPτQώS TU"V0W?XPYaZs[‡\š]―^Ε_Ϋ`ρbcd7eOffgh–ijΕkέlσn op3qGrYskt{uŠv—w€x―y·zΎ{Δ|Θ}Μ~ΟӀՁ؂ۃ܄ޅ߆ΰ‡αˆβ‰βŠγ‹γŒγγŽγγγ‘β’β“β”β•β–β—β˜β™γšδ›εœζθžιŸλ ξ‘π’τ£χ€ϋ¦�§¨ ©ͺ« ¬)­2;―E°O±X²_³f΄n΅tΆz·Έ†ΉŒΊ’»˜ΌŸ½₯Ύ¬Ώ΄ΐΌΑΕΒΟΓΪΔεΕςΗ�ΘΙ!Κ4ΛIΜ`ΝzΕϳΠΥΡωΣ!ΤMΥ}Φ±ΧζΩΪQۈܾέφί.ΰgα‘βέδεYζšηάι"κiλ΄νξSο©ρςaσΔυ.φžψω–ϋό±ώQ��ndin������6��£€��Vΐ��O���ž€��(������P@��T@�κς�κr�ΝΖ����������������� � �������!�%�)�-�1�6�:�?�E�J�O�U�[�a�h�n�u�|�ƒ�Š�’�™�‘�©�²�Ί�Γ�Μ�Υ�ή�η�ρ�ϋ$.9DP[gs‹—€°½ΚΧες�*9GVetƒ’’²ΑΡβς$5FWhzŒž°ΒΤζω 1DXk’¦ΊΞβφ 4I^sˆ³Θήτ  6Lcy¦½Τλ1H`x§ΏΨπ 9Rjƒœ΅Ξη   4 M g  › ΅ Ο ι   8 S m ˆ £ Ύ Ω τ  * F a } ™ ΅ Π μ % A ^ z — ³ Π ν ' E b   » Ψ φ3QoެΛκ (Gg†¦Ζζ&Fg‡¨Θι +KmŽ―Πρ4Vx™»έ!CeˆͺΜο4WyœΏβ(Kn’΅ΨόCfŠφ=b†ͺΞς;_„¨Νς;`…ͺΟτ>cˆ­ΣψCh޳Ωώ$Jp•»α-SyŸΕμ8^…«ΡψEk’Ήί  - S z ‘ Θ ο!!=!d!‹!²!Ω"�"'"N"v""Δ"μ##:#b#‰#±#Ψ$�$($O$w$Ÿ$Η$ο%%?%g%%·%ί&&/&X&€&¨&Ρ&ω'"'J's'œ'Ε'ν((?(h(‘(»(δ) )6)`)‰)³)έ**0*Z*„**Ψ++,+W++¬+Φ,,,,W,‚,­,Ψ--.-Z-…-±-έ. .5.a..Ή.ζ//?/l/™/Ζ/σ0!0N0|0ͺ0Χ1141b1‘1Ώ1ξ22L2{2«2Ϊ3 3:3j3›3Λ3ό4-4^44Α4ς5$5V5ˆ5»5ν6 6S6‡6Ί6ξ7"7V7‹7ΐ7υ8*8_8•8Λ9989n9₯9έ::L:„:½:φ;/;h;’;ά<<Q<‹<Η==>=z=·=τ>1>o>­>λ?*?i?©?θ@)@i@ͺ@λA,AmA―AρB3BuBΈBϋC>CCΔDDLDDΤEE^E£EθF.FsFΉG�GFGGΣHHbH©HρI9IIΚJJ[J€JνK7KKΛLL_LͺLτM?M‹MΦN"NnNΊOOROŸOμP9P†PΤQ"QoQΎR RZR©RψSGS–SζT6T†TΦU&UvUΗVViVΊW W]W―XXSX₯XψYJYYπZDZ—Zλ[>[’[ζ\:\\γ]8]]β^7^^β_8_Ž_δ`:``ηa=a”aλbBb™bρcHc cχdOd§deXe°f fafΊgglgΕhhxhΡi+i„iήj8j’jμkGk‘kϋlVl°m mfmΑnnwno-oˆoδp?p›pφqRqr rerΑssysΥt1ttιuFu’uώvZv·wwpwΜx)x…xβy>y›yχzTz°{ {i{Ζ|"||ά}8}•}ρ~N~ͺcΏ€€x€Τ1κ‚G‚€ƒƒ^ƒ»„„u„…0……λ†H†¦‡‡b‡ΐˆˆ|ˆΪ‰8‰—‰υŠTв‹‹p‹ΟŒ.ŒŒμKͺŽ ŽiŽΘ(‡ηG§‘‘g‘Η’'’ˆ’θ“H“©” ”j”Λ•,••ξ–O–°——s—Τ˜6˜˜˜ω™[™½šššγ›E›¨œ œlœΟ2”χžZž½Ÿ ŸƒŸζ J ­‘‘t‘Ψ’<’ ££g£Μ€0€”€ψ₯]₯Α¦&¦‹¦ο§T§Ή¨¨„¨ι©N©΄ͺͺͺδ«J«°¬¬|¬β­I­―|γ―I―°°°~°ε±L±΄²²‚²κ³R³Ή΄!΄‰΄ρ΅Y΅ΒΆ*Ά’Άϋ·d·ΜΈ5ΈžΉΉpΉΪΊCΊ¬»»»ιΌSΌ½½'½‘½ϋΎfΎΠΏ;Ώ¦ΐΐ{ΐζΑQΑ½Β(Β“ΒΓkΓΧΔCΔ―ΕΕ‡ΕτΖ`ΖΝΗ:Η¦ΘΘ€ΘξΙ[ΙΘΚ6Κ£ΛΛΛνΜ[ΜΙΝ7Ν¦ΞΞƒΞρΟ`ΟΟΠ>Π­ΡΡ‹ΡϊjΩΣIΣΈΤ(ԘΥΥxΥθΦXΦΘΧ9Χ©Ψ؊ΨϋΩlΩάΪMΪΎΫ/Ϋ άάƒάτέeέΧήHήΊί,ߝΰΰΰσαeαΧβIβ»γ-γ δδ„δχεiεάζNζΑη4η¦θθŒθιrιεκXκΛλ>λ±μ$μ—ν ν}νρξdξΧοKοΎπ1π₯ρρŒρςsςζσZσΝτAτ΅υ(υœφφƒφχχjχήψRψΕω9ω­ϊ ϊ”ϋϋ{ϋοόbόΦύJύ½ώ1ώ€‹��������������� � ��������!�$�(�+�/�3�7�<�@�E�J�O�T�Y�_�d�j�p�v�|�ƒ�‰��—�ž�₯�­�΄�Ό�Δ�Μ�Τ�ά�ε�ξ�φ�%/9CMWblw‚Ž™€°ΌΘΤΰμω-:GUcq›ͺΈΗΦετ#3CSct„•¦·ΘΩκό1DVh{ ³ΖΩν�(<Pdx‘ΆΛΰυ  5Kaw£ΉΠζύ+BZqˆ ΈΠθ�1Ib{”­Ζΰω  - F ` { • ― Κ δ  5 P l ‡ £ Ύ Ϊ φ  . K g „   ½ Ϊ χ  2 O m ‹ © Η ε  " @ _ ~  Ό Ϋ ϊ:Yy™ΊΪϊ<]~Ÿΐβ%Gi‹Πσ8\’Ζι 1UzžΒη 1V{ Ζλ7]ƒ©ΠφCj‘Έί.U}€ΜτDl•½ε7_ˆ±Ϊ,U¨Ρϋ$Nw‘ΛυHrœΖπDo™ΓνBl–ΐκ?i“Ύθ<fΊδ  8 b Œ Ά α! !5!`!Š!΅!ΰ" "5"`"‹"Ά"α# #7#c#Ž#Ή#ε$$<$h$“$Ώ$λ%%C%o%›%Η%τ& &M&y&¦&&','Y'†'³'ΰ( (;(h(•(Γ(π))L)z)¨)Φ**2*`**½*μ++I+x+§+Φ,,4,c,“,Β,ς-"-Q--±-α..B.r.£.Σ//5/f/—/Θ/ω0+0\0Ž0ΐ0ρ1#1V1ˆ1Ί1ν22R2…2Έ2λ33R3…3Ή3ν4!4U4‰4Ύ4ς5'5\5‘5Ζ5ϋ616g6œ67 7?7u7¬7γ88Q8ˆ8ΐ8ψ909h9 9Ω::J:ƒ:½:φ;0;j;€;ή<<S<Ž<Ι==@=|=Έ=υ>1>n>«>θ?&?d?’?ΰ@@]@œ@ΫAAYA™AΨBBXB—BΨCCXC™CΩDD[DœDέEE`E’EδF&FhFͺFμG/GrG΄GχH:H~HΑIIHIŒIΠJJXJJαK&KkK°KυL:LLΕM MPM–MάN#NiN°NφO=O„OΛPPZP‘PιQ1QyQΑR RRRšRγS,SuSΎTTQTšTδU.UxUΒV VWV‘VμW7W‚WΝXXdX°XϋYGY“YίZ,ZxZΕ[[^[«[ω\F\“\α]/]}]Λ^^g^Ά__S_’_ρ`@``ίa/aaΟbbobΏccac±ddSd₯dφeHe™eλf=ffαg4g†gΩh,hhi%ixiΜj jtjΗkkpkΔllmlΒmmlmΒnnmnΒoonoΔppqpΗqquqΜr#rzrs)ssΩt1t‰tαu:u’uλvDvvφwOw¨xx\x΅yyiyΔzzyzΣ{.{‰{δ|?|›|φ}R}~ ~e~ΒzΧ€4€‘€ξLͺ‚‚f‚Δƒ#ƒ‚ƒα„A„‘……a…Α†"†ƒ†δ‡F‡§ˆ ˆkˆΝ‰0‰“‰φŠYŠΌ‹ ‹ƒ‹θŒLŒ°zίŽDŽ©uΫA§‘‘u‘ά’C’ͺ““y“α”I”±••‚•κ–S–Ό—%—Ž—χ˜a˜Λ™4™žššsšέ›G›²œœ‡œς]Ιž4žŸŸ ŸvŸβ N Ί‘&‘’‘ώ’j’Φ£C£―€€ˆ€υ₯a₯Ξ¦;¦¨§§‚§ο¨\¨Ι©6©£ͺͺ~ͺλ«X«Ε¬3¬ ­ ­{­θUΒ―0―° °w°ε±R±Ώ²,²™³³s³ΰ΄M΄Ή΅&΅“΅ΆlΆΨ·E·±ΈΈ‰ΈυΉaΉΝΊ9Ί€»»{»ζΌQΌΌ½'½’½όΎgΎΡΏ;Ώ₯ΐΐxΐβΑLΑΆΒ ŠΒυΓ_ΓΚΔ5Δ Ε ΕvΕαΖLΖ·Η#ǎΗϊΘfΘΡΙ=Ι©ΚʁΚνΛZΛΖΜ2ΜŸΝ ΝxΝεΞQΞΎΟ+ϘΠΠrΠίΡLΡΉ&“Σ�ΣmΣΫΤHΤ΅Υ#ՐΥύΦkΦΨΧEΧ³Ψ ΨŽΨϋΩiΩΦΪCΪ±ΫیΫωάfάΤέAέήή‰ήφίcίΠΰ=ΰͺαα„αρβ^βΚγ7γ€δδ}διεVεΒζ.ζšηηrηήθIθ΅ι!ιŒιχκcκΞλ9λ£μμyμγνNνΈξ"ξŒξυο_οΙπ2π›ρρmρΥς>ς¦σσvσήτFτ­υυ{υβφHφ―χχ{χαψFψ«ωωuωΪϊ>ϊ’ϋϋiϋΝό0ό“όυύWύΉώώ|ώέ>Ÿ�������������� � � ��������#�&�*�.�2�6�;�?�D�I�N�S�Y�^�d�j�p�v�}�ƒ�Š�‘�˜�Ÿ�§�―�Ά�Ύ�Ζ�Ο�Χ�ΰ�ι�ς�ϋ !+5?IT_ju€‹—£―»ΗΣΰμω .;IWes‚Ÿ½ΜΫκϊ *:JZk|ž―ΐγυ+=Pbuˆ›ΑΥθό$8L`u‰ž³Θέσ3I_u‹‘ΈΞεό*AYpˆŸ·Οη0Iaz“¬Ζίψ  , E _ y ” Θ γ ύ  3 N i …   » Χ σ  + G c € œ Ή Υ ς  , J g „ ’ ΐ ή ό  8 V u ” ² Ρ π/NnŽ­Νν.Oo±σ6Xy›½ί$Fh‹Πσ9]€£Ηλ2VzžΓη 0UyžΓθ 3X}£Ιξ:`†­Σω Fm”»β 0W¦ΞυEm•½ε 5^†―Ψ�)R{€Ξχ JsΗπDn˜ΓνBl—ΒνBm™Δο  F q  Ι τ! !L!x!€!Ρ!ύ")"V"‚"―"Ϋ##5#b##Ό#ι$$D$r$Ÿ$Ν$ϊ%(%V%„%²%α&&=&l&š&Ι&ψ'&'U'„'³'γ((A(q(‘(Π)�)0)`))ΐ)ρ*!*R*‚*³*δ++F+w+¨+Ϊ, ,=,n, ,--7-i-›-Ξ.�.3.f.™.Μ/�/3/g/š/Ξ0060j0Ÿ0Σ11<1q1¦1Ϋ22F2|2²2η33T3Š3Α3χ4.4e4œ4Σ5 5B5z5²5κ6#6[6”6Ν77?7x7²7λ8%8_8š8Τ99J9…9ΐ9ϋ:7:s:―:λ;(;d;‘;ή<<Y<—<Υ==R=‘=Π>>N>Ž>Ξ??N??Π@@R@”@ΦAAYAœAήB!BcB¦BιC,CpC³CχD;DDΓEELE‘EΦFF`F₯FλG1GvGΌHHIHHΦIIdI«IσJ:J‚JΚKKZK£KλL4L}LΖMMXM’MλN5NNΙOO^O©OτP?PŠPΥQ QlQΈRRPRœRθS5S‚SΟTTiTΆUUQUŸUνV;V‰VΨW&WuWΔXXbX²YYQY‘YπZAZ‘Zα[2[‚[Σ\$\u\Η]]j]»^ ^_^±__V_©_ό`N`‘`υaHa›aοbCb–bκc?c“cηd<ddεe:eeδf:ffεg;ggζh=h“hιi@i–iνjDj›jςkIk‘kψlPl§lmWm―nn`nΈoojoΒpptpΝq'q€qΩr3rrζs@sšsτtOt©uu^uΈvvnvΙw$wwΪx5x‘xμyHy€yz[z·{{o{Λ|(|„|ΰ}=}š}φ~S~° jΗ€$€€ί=›ω‚W‚ΆƒƒtƒΣ„2„’„ς…R…²††s†Τ‡5‡—‡ψˆZˆ»‰‰€‰βŠEЧ‹ ‹m‹ΠŒ4Œ—Œϋ_ΓŽ'ŽŒŽπUΊ„κ‘O‘΅’’€’ζ“M“³””€”η•M•΄––ƒ–κ—Q—Ή˜!˜ˆ˜π™X™ΐš(š‘šω›a›Κœ2œ›mΦž?ž¨ŸŸzŸγ M Ά‘‘‰‘ς’\’Ζ£/£™€€l€Φ₯@₯ͺ¦¦~¦θ§Q§»¨%¨¨ω©c©Νͺ7ͺ‘« «t«ή¬H¬²­­…­οXΒ―,―•―ώ°h°Ρ±:±£² ²u²ή³G³°΄΄΄κ΅R΅ΊΆ"ΆŠΆς·Z·ΒΈ)ΈΈψΉ_ΉΖΊ-Ί“Ίϊ»`»ΖΌ,Ό’Όψ½]½ΒΎ(ΎŒΎρΏVΏΊΐΐ‚ΐζΑKΑ―ΒΒxΒέΓBΓ§Δ ΔqΔΧΕ<Ε‘ΖΖmΖΗ8ǞΘΘjΘΠΙ6ɝΚΚiΚΠΛ6˝ΜΜjΜΡΝ8͟ΞΞlΞΣΟ:Ο‘ΠΠpΠΧΡ>Ρ₯ sΫΣBΣ©ΤΤxΤίΥFΥΦΦ|ΦδΧKΧ²Ψ؁ΨθΩOΩΆΪΪ„ΪλΫRΫΉά ά‡άξέUέ»ή"ή‰ήοίVίΌΰ"ΰˆΰοαUα»β!β†βμγRγ·δδ‚δηεLε±ζζ{ζίηDη¨θ θqθΤι8ιœικcκΖλ)λŒλξμQμ³ννwνΩξ:ξœξύο^οΏπππΰρ?ρŸρώς^ς½σσzσΨτ6τ”τρυOυ«φφdφΑχχxχΣψ.ψ‰ψγω=ω—ωπϊIϊ’ϊϋϋSϋ«όόYό°ύύ\ύ²ώώ\ώ±Y¬��sf32����� ·��–σW��)��ύΧϋ·ύ¦��Ϊ��ΐφmmod������Zc��b*����Ν‰ €����������������ξ�Adobe�d@���Ϋ�„�      ΐ��ώr�έ��/Δ’������������ ��������� �s�!1AQa"q2‘‘±B#ΑRΡα3bπ$r‚ρ%C4S’’²csΒ5D'“£³6TdtΓβ&ƒ „”EF€΄VΣU(ςγσΔΤδτeu…•₯΅ΕΥευfv†–¦ΆΖΦζφ7GWgw‡—§·ΗΧηχ8HXhxˆ˜¨ΈΘΨθψ)9IYiy‰™©ΉΙΩιω*:JZjzŠšͺΊΚΪκϊ�m�!1AQa"q‘2‘±πΑΡα#BRbrρ3$4C‚’S%’c²Βs5βDƒT“ &6E'dtU7ς£³Γ()Σγ󄔀΄ΔΤδτeu…•₯΅ΕΥευFVfv†–¦ΆΖΦζφGWgw‡—§·ΗΧηχ8HXhxˆ˜¨ΈΘΨθψ9IYiy‰™©ΉΙΩιω*:JZjzŠšͺΊΚΪκϊΪ� ��?�ϊa°ΞJνθ•*Αzα\)vύώΑjξ½@―|! οταUλΈΔ-;·Ž>JΨξ:ψœT*ΥάχΓ¦τύ}±CtάτκqK€ ‘αίηUN›w8«tϊ1Vo R·ˆ'εί.§~ύρJνλσ튯Q㊯�aBΰΎΨέMρWqΓHΆψβΆΈ kHί­NV©-ΣϋFhPƒMŽhΦ΅lU’�†*΄Ž›όλ…Vο֘‘i·γŠVχβ‚Υ7­wοŠ†kΎoc«@S¦ΤπΕ[$αŠΝ7>--�GΛΫj? U’sΎ*ΆžΤ-­:ΕZ©Θξ―Πϊ${tχΞ<=*oPΚ™0V—ρ#·Λ Σ`Wzb†ιΆύ»aUΓ¦(wj}ϋb•ΐ »bx늯ιΰ;β•Τ'§_αŠ�֝π+‡ωŠ[άφωβ†ΐή§lRΊV*ΰ»P}J₯?*Έχvΐͺ€h8‘u1EΈ +n§lVΧŠ-ΤΕmΤΕmͺbΆΥ1M΄Fψκb­qΕmi¨Ε+H?†XGOΓ©Σ·α†’έ1C@oO JΈ―qΫ�VΏ‰ο…+h|:wΖΠκtπρΕ]Ηθ―CZn›ψaCGΗ}Ί\Uož*όkΧkσ?Ž?Ρϊͺ@‘άη Ρ*Ž”ν’ ¨ (zžϋ~Sk‡_ &‘k©οΣ|*Ϊ―‡l Ί€ΠψβUx_Ψ₯ΊSΆΨ«~;“νύp*ώ?HU° λτβ«©Nέ0+tΆ¦γ N£c… Σιΐ«ΐΕ]@?†*ΈνΒ†ιŠb‡{γJΉAbAf= β‚”jΎ`Π4-΅nΛM’•O2‰HφŒί†09–άZ|ΉΎˆ“ξ :_ΝΏ Ζά#ΥεΊ=+ »°ΫάΣ sDt.|{W/ொ΅·ζ’ξάF·ΧέL0ιΑγΗΝμ}TwαϋYvŸ¬ι²†Σ΅(.‰ίΣ G�jœrF\‹…—L_\HLθFΔSΔdšZ8²ΆΏVjŸνβ­Z╬>ώΨm+)ώή*°ΓVΣ―Ύ5JoMόN*Ρ­:ΣΗZ &ϋxb‡SΆ*ήΫW*έ?ψU όρU€}ϊβ«ιΫ˜«\zžύ±E5ΐxŽ”ΓiϊγoΖrDnτnή”¦Ω%₯ΰw―QΎ(\£ΗΆ! œNĝqJπ:ΨͺκŸΎ)lίyΐ­xϋtͺΰ6₯zvΕWύΈUP ΕqUΚΏN(oŽηί¨Ε6ΌΆ% ΣΆιŠLUΊb‹n˜iμU‹yΗΞήXς’5Ÿ5jkam)+cjƒΤΉΊ~čΫάτΞ!ΝΙhςκ§ΑˆYλά=ερ‡›�η |εζωe³ΠCyC@bTAlά―₯_§‚Gμ¦ΨN3Τ½ΆƒΩΜ8}Y=rσϊGΓυ° WžFšiZζvbežbd’Ύ,νRNω Pδοx#@WΉXXC·0ώ?  φ?NcΘ—$ˆδΛ¬m‘x©βw^DrTAδαδ‘κΙmγŽ01²Σ”‹Τ~¬‹‰8™lYΦ‰η_Le‡P©`)Θ9ύςƒέΏΘεΝ(y‡Uͺμ¬y7‡€ύdΣυ =V+λ ΔφςwθΚέΥΧ±™‰ ;—±K†BŠ/$Α¬ κaKGJΪ΅Š­#ξΐ•œkΎhŒUgΌ=ρW UΫτκ;βv*έ1U£wκ*ΆΎ;όρBί·πΕVqχΖ•Σϊ"Τc\䞍°6I[γή› i ΤWaΣί €o΅1Uΰt§~Έ₯vΤχΔ«©ΆXkZχΕWψͺ’Ž•?F«(Δ‘TtΕ‰u1[wΎ(ov*[¦CΓVΐΓJσΝOΜνς£Λ―κ¨/΅+²Πyo@ Εο@©υX΅vπΨnpˆ™Ορ»Ωϊ λrπG`9žαϊϋŸ™ZΏ˜όΑη�1άy―ΝΧΟ}©]’*•‚Φ~ Œž(‹ΠS―}σ Δc>}ο¦h΄XτΈΔ1ŠŽ}ε–hϊz3r/@)ΠPϋf,δδNT‹aΗΈ d+�jj;:ύωŽwq&m˜ιρ£„5ιZυʍΈyIYU΅‚žπͺ¨Ω?¦@ΈrΙIͺΪPͺ€°₯h?ΞΎψΌKGΗk$ͺ 7U§α^Έi”€Nt›Ϋ­ρ/­C…Ώ΅;,©ίn•Ž0‘°αjpΗ<xO>‡ΉνΡKΔ1\@βH'A$2κΫŒΨƒbήfQ1$a~*·όλ-b—φπ‘Τΐ•ΏI¦¬#Γ­§‡Ρ…V‘ϊρV©ψβ¦ίΣ»qΆJΡλክφΖ•ΗΗΆ*±Άωb†ΆφρλŠ_Τϊ+Δ ¨μNrFΉEhϋxί½Ό0ͺΰ£}±Uκ>Š―~X₯ΏŸίŠ­c±zwΐ«|6>η ―P6ΐͺ‘qU`0‘S ŠΆ=?,Uw§'ς7݁°ƒςΕ“°„/οΠaUΛokΕεδλiegά^]>Λ1)y“ΰ βv ‘�nNΟΘoΜo?κ›ΎzΤ<Οv²G’[–³ς›ΪΪΒ6<6ιΞOΆΗΉ>Ω™xqσ?Šψ>›Ωz£Β!Το#ήgGZƐ"ƒΔ†§sξRl».-Ωώ›<F΅‰$ό<iQR?UwΚ$ VA.o@ΣdI•I`ͺzž4Ϋ°©§έψ ǐq2΄qF]ωlς§SΆά”ŒœIHυdΊzz, ƒκt v4φZ€Σl8yglΒΪ$‘RŸ Ÿ„°Ϋ₯iΚ›œζαJD&πΐ€ΚΌ a΅~œ Fj’Ωjό;ς|G†<{²&άΣ,ŽZlΕPΕr|Cξ5Μ­1Έ‘άκϋFKωΓνeΉ{―Ά±K_F·…]αŠ{m’ΞƒZ|:œJVŸΨͺή�†WS΅½Go*Φ*ΧΜβ­W΅†½©Ύ*Z§τ醐�Υϊ-ڝύ³”z%β”­1K`υιΕί…qVλ_ž)_½~{β«»Um^½±VΒψtνŠ χψβͺκ1B Ε‰H|ΣζΏ.y'H“\σV­‘§ ύΡsΚiΫ§!_ερΓ}:Άι΄Ω53ΰΗ?Ž}Ο–΅ΏωΚMBώV·ςG”…¬%ΈGͺk,ZCΰλo ωŒ’zšϋ^―Kμ ηžώΆqω—ω­ϊ‡šgΆŠSOͺΨΖΆρ�Β ώ9L¨ω»\}£ΕΚζwW΅Υ<Ου“_ΤͺΓfYδb=ΘT@L΄˜άω3 ;σΟzqΡΦε½@Ώέ^"Μ¦ž$€E~x7‹ƒ—²4Ω?†½ΟJς�ηŽ—$ΡXyΒΘθwO²κpφdφζğ=Ζ[‡ξŸWμώH,'Œwuύ―yΆ’˜ ΊΆ–;›[”[άΔΑγ‘B¬*Μ€opσ&ŽΔ>q�œ°σkω{ςΑ<½i9†�Οw‚ΑψŸ‹κ05ΘΫ …k–cΜyoψψ»ίg4Ύ6§Œ /βvΞΝ4Ηn:*…Εh�χύY•!Δϊ x_ζgζύώ,š–¦HξX7Χ504JέD²ί¨λ›­gDŽ9όž'Ϊi'§‘Α§#‹¬ΉΧσϋž ’ωί͚­Ή§kχŸ€”’νq3Νΐš”š6n,¦›τφ¦m²iρ䏒)β΄ύ«ͺΣερ‘’\^dΘx/ӟɏ=Ωώ`ω~ΟWHR₯&NΜ±&)` ΎΥ}ίΕvŽŒιςpτθ|ŸOΡvŒuΊaš^ΔwHsύ£Φζ+;w–Vαkκ)r₯U@₯kΡ@vkl΅™ΩρOζ·όεύΖ•¨\yςζήΚς[vhυ zρ’YfXα<U¨GVΨμTηM μ1؟ ?IyΞΣνΜzixx@œΗ2~˜ϋ»ΟΨωΧΛΏσ�^ZσCyΊ/9]κ7Χ‘VλJΥΧΦ°Ί΅/ΙWκζŠ‹_±${­kVΊΛΩL˜ό>��κ9ƒούΠΩΥ‰ρNVπ‘Q#Λτύ‚όšόΦΠ8<›gη 6΄q)²Χ4Y7–Ζϊ5 $$χR$nκ|AΞ_£ž)Η=ϊƒή;�_qz,Y‘žxω˜=Ηέφ½w…(Œ»�™Μ.LκΚο%Ιώζ5˜4’ή7 κ―A·ΘεΊcκ>η΄Ηξΰ|ΛшΜΧLΥ0R΅‚–έL &݁ b•6Γ §N£ Z τιΎjŸ†oπ=ρU»V‡‘ΕZ5ώΜUoΛξΕVψ ΄τω*Φψ‘Φϊ, M3•δτAΎ[ς{ΰU@)Oγ‰VΨT~Ίβ–Ε*qBρώgxΕZ4―sόqUγ—Ž*ͺ@qA^1A/"όγόΰΏ)tKi κώmΧ,ωy˜…p»5ΥΙ]Φ;xΉψGs“„ Νμv™Ω³Χd‘΄G3ϊ›σϊζηΜ~}ןΜήqΥ₯Φu‰«Αδ<b+ύΝΌcቂžJRŒEτm.““1CνgΊnŽPz`m_OcΫιΜYM2Θ~™gΒPL<YIτδo„νϋ;ψε2“–[se°ιόε‰π’ *»ž�:퐻 ΙhΤ΄–�Φƒ‹RGˆίε‘Ά&t”jž^3C 4EάΊυή› �L”eMΈ΅4R_#ώgίώSkΦφ£5אυ‹”T…ΨŸΡο#qϊΤφBΧγ^„oΧ31Ω9ύ�΅‡iφ<uψΜαΆP6ώ—‘ύŒΞ\ληTόΧΌΏ «-—–4 wR„2<šn ƒΰSeιΐ ΛΏf―e4Ζ:c3ΞR?μv|iω…ζkŸ-ωVhl#Z“z6οςe¨άΧ—aχœΫh0 Ήn\ƒg΄:ιιtδΓκ;'ƒy3ςΪ�ΜR_[Žhα–Rρ@ηƒLΐΥ™ͺ+BvΎnu:Έβτǟάρ½ΨΥ“›=€MΧYw“εχ²―>ώMκ6Φ£^ςύƒ\Gt#β1φ–5H4¨r/hFG‚fœΎΫφrCχΊqdsˆϋǟ“ΪηΌ―η?[σ|š•ΖŸ€­cŽΞζ#{½άJŒέ„f†•κ+ΎΩνόΨε�A;ςθ?΅³ΩΝ.£Kή(1‰―Iœ>>ΔόΦςœόγδ‹ο/ωFζ;ύN#σΘεKBOΗΘζŽ* TxΉ£ΠgΗ‡0žA`~>Ηi¨ΙNJpŒΈdEχύŸ?)Ώη.ΉYλ?™w*ΡXά‰`ς΅Έ!.VB§?²h‚ΖΔζοYν ƒ#ŸρžηšΣvF §ŒƒΘ}>WΧαΙτ?ζ�δ—ΌύεΗ±ϊ”Z͊Π΅KhΥ »*ό(₯�’6ί (Gaš­idΣOˆ˜ούΎnϋ(Ε‡‡˜mΠ�B<‡Xς­Ÿ�Ξ+λώlό¦όό›ς»Μ°4σ²6ŸͺιξΓƒ^[Διχp·CΜ+%GΪ‰άfσΆα‹W£αΏγάv/7 Η—Gͺ–›/9ώl‡”ƒυ’iΨΔΌW¨%w¦Γ©φ‘Ξ ‡zθŸΛω~±κμ7τμΤ9χ/°Λ΄ίQχ8έ¬+}οY‘V(žy]a‚0L“ΘB"v43NΑΡ ΝlPόΙς6œολΡήΜ›4(Σ΅|*’ŸŽTrΗήμ1v^§'(<φIσsΛ@Ž:‹Ζvυ8 ό dqά\ΨΉΟP›Ω~cωVρ•{‹&~†xσe&˜Dz΄δμ­D:ξ,ΖΦξώqcuδ'R >šn>œ΄HK–ξα(’―†˜­# VRΈk_ŸΣ…+NpΒ­wρρΕV“ϊ±*·Z{ν_| °�΅…Ε_Χϊ$€Ίg)ΝθU}ͺOQ$QΆέ<1Uύ銷NΫνŠWS^Ώk|N*ΌνΕUTS‡ΝΎjΡ|εoΞa”Η€h6ζyΡOΗ4‡α†ή/•ΘUϋϋa�“C™gƒσδαΜώ-ωIu―λί™mΦ<οζ?TΦε bc΄~-a―Dv� ΝO|ΙΙX£Βν};A₯†—„·Όό^‘€iβΫΣ€E˜φ,Γ0'+nœ­θVNΌ aι1!„4¨zxΨ}4ξršp¦,Πέ–ιΨJ=h&‚hE~,ŠlOΛ!(Χ7 ?Ω–Ϋ˜ή©ΓaVp j\‹ƒ+VŽ2OαU»μ Ϋ’1)βΫtA·C@~*ΧzmΏPE;{`bdωΟσƒJŽ·1(V»rSQϊώy›₯—©ι;'ς–‰uwͺΝ-ευδΧχA<Ξ]ύ8WӍ*w∠Ψ ΫHŠ;)Β0ΊΫŸ$ώ ΪςςsK%²“JpηάW±η„f1uqsB;Μ¦ίJ†&β84fψhχ*~}|r©d%¬=M­η³ D�UδCP¨-°cα_o―LŞBγ™pΚή³ε`ΰˆύ5ͺσθΔ“Ϋοω�ή#1rJάdΙώ?©ξš5΄d#7οŸ#Ϋ©]…iΉμ£l¬ŸΟ.ŸΗήΜΈΕt‡NT ―sΆΔxΣ$α‹%&Έ·…ͺA*§‘ΑnDIyF§ωcδ­_Ξ:υ=―3ωX·θPU^.@š5>Χ ςZύ“Σ-œ±Η,q•F\Η{•) p’”n‰ζ/Ή“yƒX·lξ.'—!'•*6―Η16έ6–` εΝν;Eςξ΅y§ͺίω«X»YΒθ} ku3ΚέΤΡPu=vΛαŽϋΛ—―μIηΝ-±DY=Iξ­‡k>bσ7š%•΅ΝZξς%ίΠgγoϋ1­ο9σέΝΣθ°i«‚ ·ζbxν!–xγΟaR½7ωΰMΔʊoάGξŠ3πŽώ;‹A&$υd6Ϊq #n€Φƒ¦EƞKLb‚ξΖUΉΣζ°ΊVψn#b¦ŸG_‘ΐ|šeΓ1S�‡§ωkΟ2άLšg™Q-˜…ΆΥTqŠBz GEcγΣΗ.Η¨ή₯σtšΞΝΰx·GQξzQT§2]H+i•©‘…+iγŠV‘ϊϊb«M|7ρΕ]Ώ€`U•?ΣhώΎΈͺΓχPαU΄φό{b‡Πϊ$ >Œε‰P·lPUTmξ1J ¨φφΖ’ΨχͺργχŒUpኢ:β«… ͺ1 σσώrΫΟ-ω·Fό―ΣξΏά_•j>hD? ΊΒώζ=ώ―­FlΛΑϊSΧ{7£τœΔnvοΪςΪήά[πAΆΜvE*z~™­–ακv³Α *ΉTr…@cΛ½#πω˜τIpεdΥ>N�œ˜όΛΧτ΄―/ω~νμ_†ς-VβI%ΏCΎζ›Τϋ θ»E „Ξbψj½ο;ν7heΡa„1š98―Ό ­ΌχζφίωΔ›J_Κm,jΗχq]άΓ£secυhΘ�μ_[—ΒhΙΜ>ߌF€πσ _½―±η’ZοΞ½έXΕ0`dRνΔSˆΔΤΣ4|.\…>^όΡ�œžOΛΟΜ] Ι1θo¬ΪNmΫ\–W™€γ@΄e-Ηr>"@δ3y‘μS©Γ,†UΞ»wΈ:Ν~-&Xb³1ΟωΆh{ίfB¦h–FΥδTE2ρ•9Ep Q€Ψ€N�eLΡStΆ5έψό}½ο όη‡ώuϋΙV7,FΥψkΎ]¦ϊΓΎμ3ϋΗΕ^J‰…œrŠ―:σjnI?Žn³s§{/’ήmω‘ω­¨ω3Z‹HΠ¬ΰkΙ ŽkΉηΤ#ξΚ”ή»v͞‡³γš<S&ž+ΪOh'‘Ι’ ¨Oέ^cͺD�œƒΧ‘uν{{`‚k)₯Fΐ‡FβOΡΫc–εμ}½ωΊάΩc2>."|Mύ›=ηA�œŒόΈΉ‰LΊ£i¬―΄7P²sκŒ�aF;Ύ9­ΙΨΉΑΨ_Έ» ~ΠθrξgΓο>ˆς‡ζo΅ΰ{8i0Ί© ¨γ-ΙWν HιBΎk3h³@ϊ ~MΤαΞ.‰ψ‡Πzš΄{Ί -^Βτ…,βήζzr;;ζΕ(σδλ²α'pΛίY‡ˆY'ˆΊ3Θ΄,>Ρ"•PmΣ"Π0žt“έω‡O΅F–λQ³…Is ΓbjΜ:S燄ž@ΉΒK ?™ΎEžφΧD²σv•«έΜm­τϋ;€šG˜|LŸ»,₯7&™d΄Ω@³}2„,σ1Συ<σƒΜΧ:…ξ—εΛ ›T”ύl+n'ΔΔ|λŽ ζz=wcι†8„rδ‚Σ¬£΄†ˆΠQΒ…+‘$–Y²“l’λQ΄·6κ8~>₯₯J£Œ— �›,φݚζΡ#˜šιF*H§Ώ·Zm•Κ.ΈΘFVŸAd…΅’Š{lkΎ‰e!ω‡σ Κ~JW›ΜΥΎ—n"IpΤ2ΙO°€]°ω3'“&cP±˜‡Ȉσ@ωσΫς«Ο·Χ:F‡ζ›X΅[d-…ρ[7™Iβ}/U¨ΕOΪ�Τuάo–j{/Q€qN;wά8ζ†IpΒbGΈ�oΑμRi‚t1:Π ˆ‘οΤsZbΜf1,ηΚΜάΏΓϊ„†IaRt«¦;Ιυ„“Τ¨ϋ>Ϋv̌?„όNΏLοaΘσΗ½Σ2jΣξ>Œ –Σ+kzταJ?UΔ bͺ}Θϋ°+DuΪ§­#¦ίN(kόϊŸΏ_Ρϊ#SΫ9G‘UA\R6)^Ezb­ώΦ*έzώ¬Uxώ8«‡ί*’ψυΕV]κz5ώ΅¨2Η§θΦ³_ί3JΪ6•―ˆZcш‰™Ι§β­Ά³{ζ½wZσMό…οόΛ¨άjw^§Ϊ-q!p=Έ© τfΧ$"#άRΡ` "9ObΡ"rΡz|iCΠ«Πμiώ}³Y2εOa»8&(`fΠ°<Οσwͺ±ϋ$τ'­6ε1Έ€v~r~{yuŸΜ©!,ΚΊm΄Zs\#¨Xω·)|ˆU�Gά‘Ηdβπτΰχ›|οΪ½@žΈc‘/ϊΖΛτ›ςgG6—ΎVŽΨ‰"m>'σFe«)D‘)?ΐΚzžC΄gǞdχ½d8a‡!\ά�>π>/bdŠTβ#‡ΰ¦ˆΓά’ΡΣξΜ0εDχό{ί•ΊΫZωΏώr˜Ηy?­`|ΩghϊU4Ύ™<–›H„ώΙ흢pφvάψ ωΌΎ§‡?l€NΡ ₯_?μ~Ε[·Βά@ΛBVλ±…iΎΥρψ¨O]μ쓏Ηγg‚~z±_+j“–)·•ΆάŸ„ώ5ώ9v^Pοϋ3}Ο•<ƒe]έΙ§8Aφ;V€φ§Žm΅©»©š€|ρωΣδλϋΙϘ¬mύab†;Έ’Ή7,~i›ήΛΤ€8 ηΙΰύ―μΉζ­F1f#Τ:οψ>rŽHΩ¨qφΦ‡‘ؐGZΗ7‚F¬ΦΘ‘ •h‚ „ P“Ξ›υ<°$&–ΣΔμβ$υ„δ#ΣεJ†vvR‹Φ£Ά,…"l­­—ΔM-©–Xν¦ϊ‹˜₯"A*HΤgοΤwΒMμYGmΑ―wΕ=M_TXAζ @Κ‹Βήάœ?v’Q˜” ‡f ¦G‚?Ν ΡΤeiŸ·ρΠ1«›ΗΈŒDχΝιΙκ,rΘμ‘€"Ώ$|˜¦™e‘gζYηεn—ζ?3yΎΓGςθ|ΞΛ>‘­"½- ƒ4¬cάΔ*JŸ–av†XbΔe=ΗAή]·baΝͺΤc‘ΤΛΈwώ€:ΎΪ΅»:ǟυ[Ι*m΄€ŠΒΤmZP ΐtΞ/$xqί»μΉ=«γσJ?<?3ζς‘’¬Ϊ怏 œ΅Άψjf ©$·‰ΜΙμρ©Λιo“ΘφΟk~Gήs5/ιwήψjσσOΟ—w‘\Νζ‹ΕxH1ͺ0 £΅U@ΏŽu‘Ρሑ�πsνέl₯Δr—Ϊ�σ�σšή³«,yЍJyBΆ―*¬lI4N›ίοΎ νΔ‹4­ΩPΗέγτο»/΄²koO¨nΫΰGΉχ½«.—₯έκ―->­ :…άŠY€ΆΞw>)W{·Α)žOΘK3ζωΘΝ{MMRxRΌΉΟ'JΗO™€hγ^™Jš±"΅¦w‡ΓΠiΜ€δΔΌ~L™;SYΒdDA5ύGτ½ƒσWώq:χɚ;kΎKΉΉσzΊ–™r£λƒΣ3ZΌaj@ά₯§Ω9‡‘ν±–\9�Τrχ/UΨ0αβΣd?„ΟœHλες{WόβόδΉ¨κV”ώ|Ώ—US„§εη˜'ψ₯δΦΜw0DNθAF؊`φοeB9ρ ―¨Ύ§ζΗ³΅ΣΜx2nzϊζ›τ:ξΪN\Βޝͫ¬ΦŠŽ.»Šœδδ)ΪΒCpy§ιΊ„z₯…Ά‘β.²Gό²)£―Πs2βι2β8¦bz#<rLVŸΗΆ)ZqJΪ~¬ ΡΫY…Vϋύi νΠβUͺ{v¦4ϊ!ϊΞrDΌ5*‰£jšn+ŠW©οΧΗTϋqVι^Έ«©ύžψͺρΣίTQΣΞίσ–>go-ώGω†Φ 8_yΚξΣΛφ£ΉŠwυnHωEϋσ#K,±ςίδμ; Ι©ω»ώ§ζ�•¬ΟΒ( £zΦ›‡2υέτΌ5Γ»Ϋ4UU‰΅ ~3ϋ nw?EOφ ΦΝr'·Ρ;B@B hTŠ…ώj€jM;ΆΛβr8Ξν |Ÿ™7>Nσ?˜?3nΌΈtΩ§Φυma‘IŒO41—2ΞWˆ H 4_φ#;Ψj1γӌ—ιό{嚞ΟΤgν)γ”MΚgΤA1Ÿ-βΓ£φΟΚϊ4–:VŸjΑ=;khγ’‹UPˆMΗ*vψ›Δ-3ΞςOŠDχ½†§(35ψύ 'Z•³Gg?ί”jvŒ0(zš,EUO͘ψΰkΑ rFΟ3ψηϋί•V’ω—ώrG†0³Οζ{Ή.&iPE#ΘΫ2υebU*Η`ΓwΪ1hO”CΜιdgΪ²—t€Oην:Z°ˆΧ‘ϋ,j�Άϋo†yαΨ»�Λη/ωΘ“Ώ’5JΤ Λο(Ώyο™!ϋΨ»ώΕ7)'ΟώP²h΄H#5 DΕiχΝΟ?YwΉΖΰ#“@†ό˜ύ!ΕΨϊ¨ήΥΊΧϋ0G?φγd$<ΓΞ_σŒΊW˜ƒκ:4’jŠ΅!M΄·χІΥ_γ›m'mΚ™Ž!φΌ‡jv›TL£θŸxδ}γτ‡Νzίδwζ—₯¬ώ]“P·AD½²"Tb³P.ΰ R3{‹΄΄ω9J½ο%Ÿ°5˜ΡΔ;γ»»ΠόΙmκG.™s !έ­₯‘)8O�UFb:t9•<ˆuσg‡Υ σQ··Ίšxmc°–K“)Ω�L„ΘκTlάφp>ε9a /£ΒD€"o»«"ΡΌ₯ζ1ήZΩh^\Υ΅;ύ^(¦²x!‘TœŸFWb84/F5$qp@Ϋ+ɨLj)�7#‡6R!+"ϋΆοξ―ΈΎŒςΟόαߞυX‘o0\EεΛk„ 72“ά¨ͺ¨h¬Β ’Ϋ£4Ωϋ >Εχ;ΌΟ?{:χn_]Ωώ[ycς―Ιχ~VӍ―5S¨]ΘΦnˆZNύ φGlζ΅̚™άΟ»Έ{žΗ²°bΗ!‹@Ϊ|ΙκωλΙZΟQΤΫ_K2²Β«P?†_¨ϊ€ξM˜ΎTόή½ΏσGζEώ™�Ι‘g¦D W‘qΎΐ±ό3ͺμΜcœύΛδ~ΡΞzŽΠ8‡Jψο7¬h—&ε½BΒhθ½»ύzμ•%œ―Ϋ©ό-ΠR‚™‰“Y)d=—²πβΐqP6 ž§Ου>uς>­qεΏ:ω{Q΅ik}N+hψ³ "YDg•,Έ$ϋGΆmuΖLR‰δCΔθ3>¦%_3OΨΏΜ.κχςϋ_X"ϊΜηJ™ήPδ•Z΅Rή Ώ†pzIš>πχ~%JQχ‡ζGόγ?™¬Ό§ω±§άή2GcͺGqc$οΔ2ς«¨Vͺ�I>9ΩφΆ—N@ζ7xξΔΚ!©1ώp#τ‡άΎe�œ°ό¨―gΠΑ½ΧΡV5MKLZŒ‘"že(c>|η°φ&¦q½£οζξςv–Ÿ ΐγ³ε½|_]λϊ=§η›ζ_&»>˜<Νc¨θΦw12„š[”υb1!δ5έ75¨Ξœb‘œy9π~NQŸΧ ˜NΖ@ςκ~­Ÿ½’76zΤ’v―^Υώ'<Σ£Ώ’S%ΚBk'u·ΈI’=©*ό_ŠεψΔ8}‘γ.ρχ3\ΌΊυ‡Mxb«Hv)ZiLUoπΐ«ΞΈ­­>έϋb­Pxb—ΣϊM�<δ'’iΏ,)D‡―ΣΦ™ Άͺ§ρΒ¨…†*©ΗύΌ(u=ΎxΌtΕ ΐΔ1%ωΟ�9Ώζ—»σεέhš|Ϊξ‘; ‹ητ`,=’Œύω²ΠCiLϋΏIzOgρΧϋΝ|žεΘKzB Ν]وβͺiχœŽcήχ8θEμšb¬nͺτ!BrP)΅+]σ_=Ϊ¦vΩ–ZΓ �“ΡPXΫtQZ‡Ϊ=ί|­Εœ‰ά3Λ:xΏ‹S΅λFc’ηˆζΡςέ²[m�Κ#Ά d‘{8:T„LŽΏ'Άi‹ £©΅Mi_ΌΣππΚtYnΡWϊrέΐΡΊ‘WRΌJ†δ:QTšόNLlΗco όΏ�œuς?‘<ιω£G<šΕν΄ΦΪ}¬Οκ[Ϊ%ΫΦδΕΛγ>΅δ”ύ“Ύl5§›>ŠG`~uΛδ‰GrΛ,cR—3χΧΏ›θ9Y–><yς†Μ6;ύΏ~j€˜€KδίωΙΙΒyA-ΐβnεŠ(Ξ�i€―zœΙμρϋΰυ…3χ<·ΛπSJjBͺRN‚›t―Ώož]–^§w›i³N Γ†ώ¦ΛZ νψζ4¦αζŸ{Ψtν5c· DΟΕvΒ‚¦„οΫ°Lf]YΩξM ςϊΟŸθπΜΚ Σr;wOΔ§YΈO2ˆ*Z˜ΚΙcm<LXπ=Iκ*¦κΝτd£˜ŽLF¦]ε ό·-δ7w^_ΣeΎ‡šΕ¨’υ@Z ςRΐ=ς᨝pΩλYg—>ΎνΩΆ›£ΫXΒ"΅΅Žή$’€¨T₯k@ͺ�RεH₯w\¦Rκ\yε”Ά'ρψύ¨Ϋ»4‚@„8n>Ηψ ˜γ•—ώsέ%―•΅˜¦Kvt yΨj»MκΘΡv4O‹δωΚόβςν‰Z‚ρ+ΉEνV¨'ΐζΣ/Φξ§fŸ&ήjπh_™^bΥ΅ϋΈQwjp₯EwξGNΩΥβ‡Δw>IͺΤΗOΪ™rK&ΏCσžόΙζ+Ζ™΅ ‹+P‘c…PP3q#“υΛqΰ†1@:νojηΥJ̌G@ ΪSΏΚŸ.\ωΓσ/Ι:J@”W—ξίŽ Vυ€vά~σ•λs 8'3έφ˜φ^ŸUŽ=ΖΟΊ;—ξψΣ"ΈΣM¬ƒΥŠd`ѐ(A �Η<πΊS>'›ρΛσ«ςkΜί•ή`Υo_Ixό₯ͺΝώΥΤ(Y_ή¬? UYjEZmα�fφŒ50ύ`n?KΝφ—gΛ ŽHW;WKιψζπy9sE)θA¦Ω²t—eλ”vΟω›ε-mKj7ΡE¦iΚ¨Βi‹W“s­B²»fhΣΞΝ άώ;ω;žΚ1όΤIίΈ~ΎκζύΰHŒ,m)ΔKšΤ±₯@―Sžn^„J;ΙΧσ©γΥ°IχIπ9<WΑΗνώκ'ΝιgυζK©Zp%m<>Œ)ZO_ՊVυ*·ίΎ*·Γξ8iηΆ*ολαŠΫΤϊΧψŒδ©θš‰Ϋ#Ι*Κ™0„J~ό)E UVΏF(l VΧτb…DRμ¨’¬ΔΔα Kρ«σοΜcΝίσ_˜wι/«e€κθš{Τθ鱬? ιN|σq¦ήlόήί±±˜bˆ#πS} ήEEd*ΤjκXνΰ~μΑΚl½9ζ—ζ˜Ό‘€₯gθύu‚ϊ’FΝ―VN"ƒ‘ρνχf_gθ᨝JκGmφ‡δtΎ$+Šΐ’-δόεwž¬u8u½MΦ4₯eυ¬νΫΞ � $€²“·Fό3k“°p˜Τ ΏŸΨρXύΞeϋΜq1ξύo§ό›�9ωi{<6Ϊύ¦«ε2υ{wžέh)W’hJΧφzΆj³vxο%φ΅Μ‡oi3lx |ŏ˜}!‘ΞB~RjvΡMeω’4“©ΰ“\z-^©ZHpΨψf·'eκ`Mγ—ΙΈfΑ’ΈrDλςz½·ζ”Υuσ6‘υ?³ΡΎ·Td £αbγr§1Ο 5ΒoάXœDυω€ίςΊ?)νM₯Ηζ?—Vqp‹θέΩέΈPp, aB>Yg䳑cΎE…G—Ώxgί€,uXξτϋΨoν%'ΣΉΆ‘eŒ•b―ΕΠ•4jƒN‡lΓΘ;μέ˜š<ί!ΞQ^+iZ!HϊΖ«ϋ|$·ΩρΫeφpΌ„ω©μ8ΤeπϋΨ‡–γ‘μ3QΛμχ―Biνώ}°fΨ»}M [Υt,ΙTEBA¨,<`d›©Τdϋ^©c 5v«~Ι(WρΚΑtω%{²XΪ2x+ρzΤΈάoMιγZd­Ε1=Q Ž$δ”5έ“JυββΈAc·U0ͺ«ΔŠ8†%”Χ­;޽ΖJ2¦ΐ[9£Tύγ5�–―QΨ1ΨόŽγ%Νͺp=ԘzdS‚­)ΔΡNΗjx…Θ_σzΒΕεΫΫn_ΥΨ’ηί@άζ~‚ͺμŒ|"Sξξx/–’ΊŽΌ@W·ˆ†‘&₯FΗΫ3ςš™v'xƒδ$~tωnοIσ]φ²Ι4–±–d!a.Ώ E‡ΓPόΞu˜OQφωΎQνNŠX΅'6ζ3λ[έsΙlm§ΎΊ·Στϋy/o\-ΰS$ΈέUjH©9œHˆ³°yΌp–IΐY=εϊQ�8Οω%qδϊy§^·γζ{ΨΪ3nÐ΅ά1_ςΐZžέ3‘νŽΡΏwθiύAτΚμ‘ ΕΗ“ϋΩ ?ΡήσΧδύ W’E›ŠV•―ω>ώΓ Ο^μs δ§ζο#yΟZ=ώζ;΅ε‘΅t©SΙY�9)ίΗΐεψsΟΔ h‡2‘D\O0yΗ{σΧΞίσ‚:νǘnΌ‹ζ}>ΗΛΧ<d[-Qg’βΥ�l+ >’«Z7bM3¦Σ{F+,Iκ*κuZŽΘΕ’|XηΐB ―‹ιΘίωΖ?)ώP‘­ΘΓΜώw“’�‰g€΅I‹ΕiO�Γ«±ρ§νΦΛ«τύ0ώoΏΏξs4ϊL:aθήGœ?pξ§$Fα) ? “άwΝAoo's>pΉ$ό+¦Κ΄=ώ5ί'‡κψ0νξ½λY’]*ήΈ²[Χ­#­?«©š·‰W}ΕZ8Uoс_ΥϊW92‰Ύ4ϊq₯TT?vD §lR¬Ώ«¦*Ό£U|ρATŊQΥ`Πt½[_Ή`–ϊ …Φ£3ž€ZΒώ%i‡˜€Βrο4όΠη—S½›RΈ$Ν«\ΛrMI\ΘΣ=Aλ»f�(αwlϊ.‡‡'ΡΊ‡XYEx�8τƒιο㚌œέ΄Ή<ησΣL]WΙΊ‡0΅΄Q=Ή$Ž%>"XŽΐΟΨφDψr7Cν—C’'˜ά|?ψ.έCDĎ%ώuΑςP―5³H»'.|Ά ξ(ΓcσΒBΣ0°M:YXΌή‘Ί7ΧVγ iaτQ:G +·NΈ7œˆˆ“σϋ©¨έX\ΗcqυhΪβι`I!ˆŒ’',κwΨ©φΒ,lΚRίϊ© s§\Δ4φ’Ϋ#³§EZŒzG—€+_ž&VΔΐŠ<ΏcυΧώqWG»Ρ'τΙdΎŽζΗ_ΊΊΥt‹xM`ŠήκJ°E$•¬‘λSτgŸφζA=Iڈ�x{m4pΓpn͏ιo_ΞK](ΤΌ›`ΤΤbΔό'Σ_Ϊ?NΩGg¬ω=cWω±GΛB–Ρς’uξ+ΆΩNnnΓSΜ½“B¦V<#έίΖ ώω―™έκdz%½cDxžΝΧ‰λΏΈ?†ΙΥΛr˜[»).A«zlGJϋŽΊa,d&RLjf¨Ž ΧέΑξ:ƒŠQφξ²T0.iίβmΎκΣοXHR.PΗƒ±�’A«oά•4'Ϊ΅Γlf:„±… Hτ£eψ@s·jαeŽ&ί �ΞCLγOΎ #ρpΔ6ηψοό3qΩ€q¬m¦‘ς,ΙrτΨΝTΗmWΔS =2ύHυ*½άΟ5?-ΨλQΗόIr²²,Φξ‘’ESTζ΄"ͺIΚ±j%ŒμiΦΟM‰�Gqά'ΎKό±ςΦ‰47v:]₯₯ΫάC 8Φ‹ΘoAΠoΎGQɐQ$‡γΕ€“Š&ΉFŸIhΆΫƁQ–ŒCΈϋBΏ<ΦΞV]~\„³[1Ί–cΝIΨ† l>œ2αδ6½§)#4r ‰+ΆΗjwρΛξθIwjkAΤχō Ε« rή‡ΉΐYU‹\ΰH§½7Fχ―Q•€ΏΚΌ—ΝλΨIipάΠύrx©ρϋˆzΙΜΒθ֜ γЬ"»Œ X@§L)SκqWR˜ ΄p«[ΰ₯Φϊ+Γqβ{η(τ+ΒυΫ ͺ…ϋϊΰJαO€tΕ+Ί|Ό1UΰχιŠͺƒΎT π_ωΚO0.~@ώaΜ’˜uΫh4&„Ι¨L¨Τ?ρ[24±βΛη-άΞΟΖgž>[Ώ$Ό½οbXΨ*¨ύ―Ϊ§†mσŸCGοή]†fTer©Ι”‘ς'υζ£)’μ2I§š<ΏϊSI»±ΈS$sΔc‘ψΉsΫ‘ω6φΙi³πLαdŒrΔΖ\ŽΟ̍cGΊςήΏ}‘jJaΊ½&·αΘjοΥ9έbΘ2ΔLr/jτ²ζ–)σ‰ϋ:’ΨΚ0†VdϋJ\†%¨ ±n>4]n:6 !6χ5’._ r(b³žͺ]v#в©#ίd9ΚΨΪΓn$τw˜ŽHΩ’@ ­[qέx°£E{W-‘� όy‡‘~XyΜί›žl‹Ιš3΄Άw ―ζ}X€!³²W˜ψ@8Šςϊs[«†“Ήτη»τΉΪ4΅S1ΏHϊpύΌŸΆšf‘e iNiŽ—€ΪΗmee „Xγ‰Dh59ζΩg)“)nI²υφ Ϋαξ|5�9¬ήrςtm&\Μβ€Π(`l»4ϊ&υ½™ύά?­ϊ_•αT‚UΨ -Oλ˜Y₯»•©;’φ½#*9*Τ€V»t‘νΎ`“nS+,Ρ8z\OΫ­BŽžΤ>#«fOM@#~Œ΅‘όzWΓ¦@YX³…­X·P‡ν|ˆθN,ψ-9Σ₯2";ρνΗφˆ―J6ΗοΕ§,hμiΓ?ξΎ6§Β6$Ÿ“n)σΒΦ#ή•κD¬,hVŸέšό5κhON™&Μ|ίΞAή¦^Q95φŽύΗ΅k›ΎΛ©κ"x4³<φaΎLΗoo HγZς·\ΏT,—.41€χm=CΗ AΫwW–»b)Aά|σY.nM‰/BΡ§{V•[ŸίE΅A4qQξ7Tζλ³ξ,=cJ�ςαΔ"οΉρU'Q˜§ΚDœPYΎn§β@i#fae!τΟ@Zvλά_Cˆpζ,£gΈG¨HQ@M|�λψdƒWGηΗόε―όδ5ο”bΘ~DΥ}4ήF·:ζ£n9KamZ€`„“Ώ‚όσ‘μNΛΟ‰zΐwŸΤ>φΠΦώGώφ[ŽΌ1οσΣζϋ ς»QΤuŸΛ_"κΊΉ‰υ-SA΄Ή»šgΠ|JΝΉ¨₯}λš \3N1δ$C—#ΔoΎ–βΩ~ƒHόΥ₯7:™dϋγ9Nλ z½πKΰυŒΝt-b–Όp%oγα…*dΧώ§αΎo؍Όp*™N*Υ}π«Χϊ9αQ\ε‰Ώ–τΕ-Χ½{b­ U‘τTb«Α γJͺ§θ#Ύ*1`_ ΞyλΒ%~]yI7›]Χ§Υ.�&’ :h:ƒ$Ω°μθήB{‡ήν»–B{©πο–νœ˜‘ˆ`Ζ­ZvμOΎdg“θZzrϊΛ–Œ©Γ4회²NIw½0ιζ8Γ N*ΤWβ`h)ά_~c œ.Όε�Όσ‹ςΣΞΦςήι‘‹/0Ω¬†Βυ�α3­Ζβ‚₯H­Q›ΞΝνS€Τ·Qέξtύ«Ω˜»F}9)~‰w΅πŸ˜�/Όιε«½'Xςυβ-΅Ρ† ˜ΌW€ΘR ›”l~‘γf fΡΈΘwΧ_‹Γj{#W§‘‰"φ#p}ΙEΆ…ζ=n蟑j:Πΰ¬ΟΘ±^!©ΔQ]Ηω†[<°€³ >.>=£4ͺ8δOΈ½ΣςσώqΣσ7Ο·|ί’&ςΏ,‘ ί0κ1„ Ζd„ο"€U”€sšν_liτΰοΔ{‡λθν4έ‡štr~μyσ>αίο~§~QώRySςŸΛί‘|΅+›‡kΊΜ΄77sΣgsΠ(© «π€~œγ5Ϊ용ρLϋ‡@μ1Cx1ŠΪOyόlυ»ΏέΫ΅XQWˆo£nΉ­”™ΔY~z~~\zߘ~S¨V;Ζ+шΎ=σkΩΓχS/iΩ FχŸΉ™yrPͺˆ§t‡ $“˜yE·κ{N‹*˜Q… ;|@]ϊζ Žξ8έ›*„Œ@©@@­z€l“vP—’( §Ϊ Δφή›ΦΏF ¦μQ6„ŽT%c.«λ^ψͺ=”οL[Œktή8…@W†β€²oτŠahκΪH¬†&aΈ₯9)#οΕΕΚ(ΫΦnc‰e©ε±Dm©JT(IΘΓ_�Ξ@_¬ΦΖΏšΆ$aLθ;*;½_F’^i_–M,¬dηρzhBΊA\ž~eΛΔ=!ξzDμcΘ!ˆέiZšΤΪ£5³Έ™bωσ_Ν_˜?–�šζ‹Id/λ K ŒςΪΚπ3F₯ oΏΑNΫo?g`Α©Σxgκοί«Δφζ·YΩΪΈη†ψd�£ΚΗ0›.ο'ޟ”_šϊWζ–΄ύ[N­Δ‘;λT?Ό’£‹ƒC^β½³Φθ₯¦ΘbG»ΝΨΒxυXΖlGΣ/˜=ΗΈ½λOΈ‚λΣε‘U`ΰΛ•4χ|§ 1σfΠΜ=%’¦54‚Τu5VΕzxΐ<ι䟝Ώ™zwε§‘΅o0Mx‘]¬M‡ £ˆΈ»qπ’‘έΈυΫιΜΝ”κrŒcγδγœ1—/ΣύύΓήKς§ςgς—_όχσΕαΧonžΡε:‡š<Λ$m#€ξ‹Ÿ‡Υ¨)AΧ ΞΛ΄5ΠΠb�_(Σξ‹I₯–²rϜš»χοτߐιάύ―΄²΅°²΅ΣmaX­΄ψ"΅΅·ŽŠ�§E¦yόμ›<ΛΊβ³hKI½ {Eœ© «±λGͺ}=r5 Ο4x°Μy=„Š;ƒLΨ<κά wπΕV»J-ΧηΧVχ=Ζ*»ΆΨ₯Lντb†«σλ…/Πϊ7^�†rDΩπqV‡)ŠΆ }±UΛψR©JΣUQΪΈͺΈ°/ΛOωΞquΞ/*y}d€~UςΌm:�y©Nӝ»*ΉΆμθΤ${Οά‹±#QΎςρ?,ξ‘ž$�j[½>CΆG?7·ΑTϊ3ΚΑ Q%1hυn|3K™―3Χlbgτ ­όFϋ Ώ€1DTΘΜM1šͺ‚x�8ΈίΕOL"nΘ£wε:π0Ή΅ŠαX«?ͺŠκTΠ‚  žN9ˆ6 (κ$6΅/'i6ς mτΈ#•Ζhβ[Τΰ¬:_δΞyw³ždo#ψόnΟl¬‘c5λρFΐPW»ζI›9Yό~=Ιυ’§&ͺΣόe4θ ΄δ’_ͺ0XdR¦΄ΨS½{ϋδ gˆYΝΟΟ ™Ύ_52§₯pΑ< +R;ζσ³€π$φz#Ά?‹7ςός7¦c$lKξ6vκs(rσDSΪ<»|]š‰$­�ξ6=©˜9#\&«Αθ__2BκΆr»§bξ|+•nλ†*6HbσjΊ½Ό–κ„σ~ U'qφOLΒ‡;T΄Χ,šoNwE2…˜jzuόpW&š`Xd±KhαL�’κ% 5Θ‡Q˜ζ>ΔΥnͺ₯”«xRΏGLq₯?±„y‹RAަwo PvΛ -Ογ6)ωρωέ}λ-ΒWα§ΐkPλLιϋ2ν{N\:BTλΛ+]2Β΅ψaŒ»x£Η§\§?Τ\Μ;cΈ=«Ab°Ζ₯‰aCΉΨS··LΦδjΝή›y—ΘϊOœt›έ3UΆŽγOΤ"α7#ρΏβΒ„0`H#prZ}T°HJ&ˆuyγ4,‘βŒΆ#ρΛΙρuΧε§ζΏδǘΏΔ—Ί…ΥξŸ«ΆI 3T­ε±•*Hό3«ΗΣkaΑ˜�|�Aθρ™ϋYΩΣ94r3‡wρ{₯RcwΈyGώs>ςΒώ2ςw7–;‰tΙΒ5P…w0MN ΆΗΗΓ0³ϋ={βŸΟυ†0νάs›‰λ_¨ξτ½CώsΙQi·θ~^ΦuK΄‘c6χ ΌQ˜δΉc2IΚξ­ΏJΖ‡³ΩΜͺRˆ?ΖΫ¦]©€«R;mUχτ½‹η©—σ/ώr_Ο:tΪΌKu%€\ν΄»E˜YΨΕNN‘ΌίWφ˜3;m›kΑ٘O3Τ՟ΗΨΓ)λe–£ο΅Χν>{ίGιε?喝ωoε›Π»*'Υe+C,νBΤ'°νœ†³S-FC9|=ΞΓ6P@„EDrύ§έ·§Ε‚ΣΪ ΣΫqί0₯&Έ?|ζ#ΐ‘τζŽF¨βΐΤlΩΊ"ΑOob‹Žρμw³ζσ!gα.?~*ΟΚΈ² mχ RxΣϊkο…V‘±ρΕVοα6�Ρϊ5ZSožrDίq_£hνΕixωτΕ+ǏUp“νŠ« Ε\~Ό 0/ΕωΙΝI΅/ωΙ_Ν6yΦUΣ/-4Ψ•z*ZΪD8 5ΝώŠ5¦™'νzNΚ �<’Ÿ+ W EsΗ…jkΤmύsR-ν4δSθ,Τ'ΑΘ­BƒΨW­OžiσY@{¦ˆΐFœΈ³©ύήτj.Τ<©ZŽω―%κμΦ倩Π7Ω­GCρwμG|œγ ΄L³ο·¦ΖœI ZΠΫξ+Σj#…Ρw[dh~{ψŠtΖΠQ–ς„c‹Ι«QΨΤx‰ωγlLz§PΚͺ6<ΉTΧίάτ8ΫD£i±ρ#ρ€SAΤΧϊ`nΓ±~cΞBΝ%—ζg–Ω«WK‚δνEξ:ηGΩ#‹ώQ‡-ύ/Έ2?+κJρ[€WcΈρΕώŽαήe…‡·hzν«‘ŽΣΥJΰ €sq«§Τ㌢&ž™g­\LAύ*μ"(ωŒΗ"dτρρ„α‹8%­ΈΣφ]jkνν‚Ϊ†άŠ$ΨΨ¨W’F n+ΰzβΧβΟ‘V4sτ$–Qπ03ί ‹ΝΜ—Ον)t…H5'―ίMŽŒ—G˜yΚώζ+i#~%ؐ”'‘ωƒάζFrvΊ( °όώόΩ»’[‹‘φ)€G Ξ«A·ŒT;ž£ε9iys±·ˆšw%@ιšνHυ—g„“Ž7ά>η¬θˆ†Hc«�H.ŒhE?Ϊ₯3e9viΡ,¬δ"§19TW―z|ό3 ΘέΊMDδ>)όšU΄¬±ςβ@Vβhvϊ; œf⌲g—ωώq―Θ~sΊ{έKOΧsήάiηκςK±�1‹Ɂ¨ύ¬Ω`νŒψF[wάMT4ڍσc=ό^uο`Zgόαw—ΣV22jΒP±ΥαΚ€94‚ŠκΤΠδfiφ‹)p‹p“tXκ@KηχžΆϋςγςίΛ_—v:w–μΞ;©={Ιπyœ’yΈ†Υ γALκu3ΞnfΚsLH�ξοWB‘Y«ZΣ―†c[ŠASž>Q3PB„ ‰έ1;± Rlδ5'χlNէѐrα/SΨ¬€υ¬¬e�~[BΫ{ Ν”~σYH2ˆΕ‹G©ΥΕ’Σσΐ•‡ΈϋρUΓοΕVΧ ΅ŠΏϊ6sτg(^…Τ‚»ψβ•ΐ{β–ΖΤΫθΕ ‡έŠUW―ρνͺΈΕ‰E[ ’βΟνΘ«χ2LΟηζ&²ΪΟηηδ₯L’yΫWFZς§£9‰h{μ™ΥbΗΓ¦Ζ?’Ηegβ™ƞ‘δε’+Ν(@―Z\ΤjΆ{­$½6ϊG)n±¬A½2ΐρ©$°ξHπμir m‘βzξ™~Β8+›) ΠwΨψ}ω„E:Μ°eρΝKήU�OΗ_CΎɝ•ΔnB2»°†G!ΉωΆD΅δ‰ ¦9"“Š­)Ηu4$ώKSοβξ&$ψ*k@ ^ήΤVά} •γc̍Έ€6?Ϊ+‹Ι ©ͺ‹w Υΐίΐž+ŒΩ~fώx«~jθφρ‘˜ΫΪΞμ£j|akCγf<yzύ,?ΊςύΜ‡ΛΊϋ4k ͺΦ«κTƒAΪ€ ΗΟ–=KΆΙš6KΫt{-rέ£?U’]Δhj ηΓ0d`].yβ•ξφ2-be"PX)RΔPτ πA“$±Gͺaq£jμOŒΥ…xƒOςΊΰ¦υ8Βμ5UR‰HΘA^lHo–ΔδCw‹™%9°²Υc„sτ€gψ”TμOQ^™7.\DνjrhS\ΪξωΗ~‹ZώΘ&™ ΜΔWyŸτmF+"Π­Ή·Š6-(©‘˜ƒφˆ εψ$έάh5'{²όκόΠΣgInδΈΈυ\―Ω]©ΰ>ŒκτS gΫPγΖM½WΙ,GΣkώIG\Φj‡¬ϋݚW†5ά>η°hλρ‚jUψTu=js'$δ–ΟmΠξŸκλ7©!―"�ΔόŽ`Ȑ]>£»'feιΉ†$)5,+Ύη§Ž!ΐ°Κ­Q„H€MAοώ}}²N$Θ½ΣΈUcj,9ς°*FΔΧ±χθpρ4Σψ‚Έ4₯(FίEF6Σ ‰#•+°―SMΗ†ψ±T,Μ§α―n»`,h$–ΡN„T·ȝރ幾±εέ zSΤ²o5_α› @tš‘Yd<Ӝ“JӊV6Ψ²YήΏ†΅Mλ…["ƒXwΕVνγίρΗuΣϊ:»Œε^…³RGλΐ—~ΫoΗocŠ[₯6;b΄¬½†*¬§Ά,Jc¦Στ…‘&€O$τ�0ίr,Cω}Τ5φƒσ+Ο7rΟκΓ¨ω£YΜ„Ρ™΅ Κ°'zοaŽπΔD}Ξ.—Sΰη$ς'τΎςN½ΌDΞ SR7>χΫ|Ρk0“ΡτΎΞΤFqΎ Ρ5;i/֐ΚV±΅E6ι°Ξ&2:;³Π¬5©mΉG΅cψZ‡οι˜ςΕm91‰>Hόψ�œ›σ—3y;ςώα,΅HˆmgΝVς‹‡΄�Τ[ΫυOQ‡Ϋ&ΌFΓ|θ»+°γ!βf:GΏΜωw<ŸnφΔt’πtΔ�Ά<>C§w½žΞ ώbώaωƒNσGψΪβσXΠ-f†/+κΧeŒίX«˜R]έΥA–­ΥΜohtΈ1J'‘ϊ€ξθ[{&«Y‚sΚn ΤdjΟσ‡wό|XκόΩŒ Τ0J|Ή/αœΑnM= dΡά|<WΤ’οΕγ&€Ž΅^ŸvEΕ1]oq<²±e44^'ιθp’q�%ϊΥβ%€€πŠšν°πΕ8 LŸ›~ku/Ξ{Ά4ΩΩƝj9 e4ϋσ ΑιϋΛΪι€:ˆ}ετ–-˜Ι *>.5 #5₯³‹©•υ½67ψ N<©E+΅S”ιςΝlKΗΙy(¦ΐ…?Žp2 L…Β»(64@―MkQ‹W"ωEΔδW© §ή0ΫYΥ"Έ3©aZͺέ}²BTΔΖΠχΘΤ٘Ώ-Œk° +e‡˜yΚΊ³’>„Ž@ρ§ΟΫ¦YŒΡvz3Γ+~}~qZDŸX:΄(6¦β™v|ξ―Χ€¦ΎA2M€ιο<`ΧnTΎμΗΦ ™χΉy‰b‰ςjΡζ(LaxQ€Jψw­vϋ³]1k”=sˍP1R•YŸΒ½ŽΩ…“bκυVŒnʘΩhKr'Žυ­?ΟlΈ\™7qΔ σ¨FnΗ~›ψxΈς…§ά+πj·Δ€(O‡|-&$2;y ’Χ³Fߎ¦I%(€<_Ώk!XΈμά·j}ψX1ΝfκνίΤ“‚€8ΨxΧ�ž(™KeߐΎk·σ―ε/–|ΑkύΛάj–­G+Bx κAι›|Έ p•φ€]>ͺby₯!ΚώνΏCΧ2–†ωœRΟΛθΕ“^±V·Χ΄~μUoΣοLUn6―Τϊ:΄πλΤη*τ;;ψβ—xΫ¦o¦)^7<UUqUuιΆ, �XZΗqvίf Κ(ΩΟκΖ_IXσχςΕζ[)#Τ―υΌ:₯νΝΚνΠΝ3ΙΫoΪΟAΒ}�wχ8άBzSO/yοWΠ!Ε/mγ`}7ψ^ŸλwϊrtρΙΝΙΠφΖm&ΓΤ;λ}9δ/Ξ /Vž;Ao%ΌΥ¬KΔPŸεv―lΣj»6@]Ϋάvwoα՞b]ΖΎΞυ/ΝίΞ‹λKIό―ε‰Rώς�·zŒ$£ΫC(ψ—½$e;xuΙve ρ'Σ£ƒΫ½Ώωppa>²7?Νύρϋ?ω9ω'ζoΝMUν΄ΙM―—tΒΏ§΅XκΔ?άΒXq37RNΛΤζΛ΄;B:8ΩήGύ'Ιε;'²Ώ;?QαΔ>©uχGΎ_w7μGό˜žMΠ4ύ NΠγΣμ΄Έ’ή @TΜ€’I$±κO\σύVyζ™œ’χ“–Ζ0Ζjγ«Υμ΄νMγύΌΘΒ΄ˆχtΜRIεΗΦ%-–Ά\p‘\ VγΐwνΣ#Ec<TŠ[ Jυ #m»5cχoƒ„σj–HKgŸyΉυ«<qΒ#b…₯*w>dG=ݎˆb»%ωΧ¦Hχ_›~lž`ΖHe†:©Eά/Λ:L‚΄±κ0βdςϋŸ[ye$’Κ©ϋ@^»η?™Χκͺž―jόcJξH@(kB~yH;:Y Σψ}SΙ©Jt―€ξrmlqSJ’μΗ§Cο€rGΔC¨!E�‹Q†%§¨ΐ;4^?§l6Χ#Ρ(ι˟ ΔWΏLmCσ#©Θ*MR:‡sΏŽ[;MSΰΞ›vŒήΗ‰AλΉ^ΤΫ:Ξ<ž‹&ϊsξSό΄—ΤΠτΖ­V8#F―R|iΧ ™χ³ŸάΒ»žέ§F‘•ο]Ε+ΣqςΝtΛ9[Ρti€ˆ¬J�RA-°$»x˜“νΒΞΞ!œ‘ ³RΒ΅#Η ―ΧώdΣτ{ΝOT»‡N°±…€ΏΏ™Υ#†%/#>Ή<x₯#Β“сΕ[“°ί}žwa�9ω=4ΡY―ζ6‹υ‚j‘ξBV΄ή¬τ#ΎgK²΅@_‡/“‹-FšR‘š�Yξž_σVŸ¬Β“ιΧpκ6ξ Cqk"ΚߜE†`δΖ`jB½ϋ1Λ¦ XάynΕ½Ψ•Wχ‚€t ­Qτδ]|ΆE5Β‚μYxϋ―ΰ8DZΛα�ωΚ�ωΘ»/!ι—ώBςΝΒ^yίZ²d&$iPΘυξ;9a:ώΦoϋ²Ξ’C$‡ξΑ�Mδ<»ΛF―[?ΫΨ7ϊGτ―|�œ·šΣώqςξ Μ₯₯“Q»OTς<.žE§€=iοjLKW—ȁφUŽ8‘}c2_Xf&°%iλναŠVτΕ-b«OߊVŸ»Y·Ά*�Υϊ9Σ9W‘lΆρλ㊷αMό1Vΐύ}1Jπ�ώ₯UFΨXbΐ±=κ)€yΟΊ¬“}^=?Λz¬Ν?ςͺHϋΘΙΔ@ο#οg„\β<ίΟΞ™εXu­"Φ €HjίΟΗrNωΦΛQαΛg}όŸF:“ ΦΏ)υ‹e–γK�J…jV^[v2±ka-ŽΕΡj{,,γυξ―0hnμnΘ’YέBΥψͺެ;Χc™œέ£(J‚>+™eΉ”Ιqv=Iδ¬χΚG«uvZ˜FΜdLŽηsΜΏPη5�)4Iς―›¬τλ”ΰ!²˜ ?֞M™ΪY‚¬ŽηϋgΪΊ-Lς¦$-φ{½.―I,PΓ†c9‰?₯χ­Œœ€h‘•ˆ(ν8­Šμ=³›‘έΆbΆ?s(€ri Vβ,ΏTΣ+"Ϊ/ފ‰šΏΌΌFή *oN€`Ν2H©%ΰΌROQˆ₯ νύ˜m¬ ζG˜bΉΈ†B‘TPΥΊϋwν.fšQ‰έω«ihΆŸšώx‘—κςŽ΅]σ)^šη·ΑΈ‘οϋŸOhtHCΖό$d Σb;œΡεp3ξ^¦Θ&Œ·*žq‚€S΅j2‚κ³G„²VΎ£6ΛMΏQ7~JΠ72€6χλ€"B‚ea>.*A©₯ήω"Τei΄L AΔr οB 8$‘'ˆwbΌ^γ| ζX/˜B΅΅Π�*JHΫξiJe°stφ| ωΞ΄Yάσ!Ο]‰ρ:Οζτ’#Β,gςΎb4{*[А½kUc½2ΝxυhIπ#ξ{ύ“» θS‘`)»‚)όsT[€Μ¬’AF’¦ŽTΏξΚ%\y‚Ν4«“q'EJ­ 5zžB[ 4xEΌΫσΓΘڏζ'u�,iW0ΫήjΕυiηfzΚ²—ˆ? ₯37³5qΣgŽI ΓΦi�3₯Ι‚ψL†Δςο~My«ΘΎhς6’ϊOš4©N4SDVki”šV9)ΕΎ[αώŸS<x±›oΔ>sμάΪ9pζ_#Ξ'άG4›N½Τ΄i’m#R½Ρ%«–SOjUθΈrΩDOi�}βάlyg‹θ‘Έϊ+ʟσ–Ÿ~Yx󭿚-Λ=–½WΒ’ͺfγ‹μCm𬽇£ΙΚ<'ϊ&ΎΞNΗljcυ1ζ7ωŠzΏ™�η8Όύ―ωrM+DςΕ―”ΌΓ=Dϊό2Ψ’€ƒV‚&�¬ž ΥΆbαφw's‘”{ΉoηδεO·=»‡ ϋΙβαίοΩδ?’‘ήoόςσι;•Έ‹Κμάω»ΞχΡ»Ιvκk,9¬ΣHvb6N€τΪ]§CΧzb:yžαχΈz υsρ2_ξO9yΧΘ?t�)4ΛΚ£CΣ-–ΗNm>Ε>Δ0Η ͺ’ό‚οοœ>)™™JFΙ6}ξί΄€ χ=;-uν`JΣί­8₯oΛaάUi#­μvΖΥ―£ΏγŠΣΦϊ6=ϊvΞUθBκ{|ρUΤΕ+†*ͺ’ΏΧT_σ8xΫϊbΔΌ[ώrORm+ώq�σvιY%ςϋΩΖzοu4pτω1ΛτΓ‹4τƒv”^PόŒς•œ&u% „ψ@QƒΉΝΆ’{—ΆΣγ· •΄‹2Λ�dx«Γ½sΔ!Θπyμω›σΧK†ΖΟIš+$₯τŒΌy0P*΄eΨWί:ΛΘebήKΪl"γ*λWϋ_5[Η$σˆΈHηŠ’BŠΣ`Nmž:1β4:£.΄mZΠ_iWQ˜mΦY’ž!bsΕ\‚(‰ 8Ζc˜-“Σd‰@ςΎ];ίh�Ξ<~h�ΞEhϊχ–Ό³eε½GΟ>Li>©w€j‹Υ,’eŠI Τ$![ΦΌX°4γœχkhτ2„²JBηc©σ›v~^Π&0Ι KΪΟ§„ιuγvύx΅—”TYͺ‘¨œRœ;_œ1;;IF€αΘ€Δ�1’νο‹ Ά€&B(h΄¦€ŽΈŽh<’ΝQ#6w(hj“‰eκ~b4Š�›Ύ{(²ύ!ΑTšπZτό3{�!aξ{έ7χ|ϊΉτ†š(ΆαθFΌ©Ή§oΏ¦i²pržτ,E@Όx²�όTντf16]^se”<Šͺ*yέNϋε ©-(€ΟΗsγˆD‚uŸlύ’χι½~˜Έδ&±V°ό_ νĊž›SV©uPœq…4―#ξ:υQΝ‚kT{k™/5θή&‚‚™dC„QπoηHŒ‹Δ9 vj{σΝχf’τ•x{φyΟεΌκΪ,kȏJV―c³Ή―NΩ™­6=κΐ?^ο€ή»H7ˆ†PGZžΗψf«$@Ήrˆ¦qi=Κ+ͺΥ4§Κs€\L”ΛτλΫτtoJμ½:†§…:S*˜βΞ—{'ύ#wθ³ΆšeR*Z،ͺ.1Εϊž;η}'˞d²{/2ωr=Bΰφ·–^]y k›-\˜εp•"zhfΖqδ©ΗΈΏ>5ό΅ωkεK©,t [ρ«¨΄‚ν€·…Oy9†+αΗvzΉςNJ|½ΫΌ'nθ΄CΑŒ3Πίέξζρ%1!Ω»+€Τπ©Ϋ66σ‘?η?/t̏Ν;/ωΗL“PΠΞ›y~ϊtR΅ΉΈ–Ϋ‡c Sz²χ«νVM6œΟ©XέnΣ²tΠ͘Œ‚ΐ‰?Ύ~ην–—e¦hΪu­…Œ1YXYΔ°YiφΘ(£�6³Ο₯2I$Ω?kΣHJE˜yȟW·«h‘œύ“Ι’ŸvY¦;— ΄c΄OΌ=ζYu‡ε“U¦*°Ÿzβ•„οΣ­¨άž£uzv«ΎŠΏΧϊ6?ηLε‰Qz|»β­τχφΒ«‡Σ*ƒ¨πΕ £ύΌPΈb―–?η4΅eω«Ω‰ MλΪ=Œ1Ό€Nfu�ŽΉ™ ž>V~Η/³βe—nηη•β‚α!S Z·μΦ šžƒ2υΛά`=ŸN΄ψΚ5[>J΅ΙΤ“šΩKοrŒh|^ωρ壬y\]Ϋ««iN.£ψYω •ΒΖ”$ΣΎτΝΟdgαΙGΞ‡Ϊ-Ο€$sβοχμ:Ύ#τš ™ΠςŽH•Έ₯I]NΉΣΎlbAEϊ—ω}‘yϋςϋΛ―}ao-έ©}+[ΆhΡΛKj�œΦ‘…3‰νˆΟO¨4MΗΕτŽΛΥFŽ3κ χΕΎΚΠ4[-6ΞΦΗNΆŽΦΡ–8"βŠ5MOΎhrd36w(Λ”’m[Δ‰6$Κ*̀7ΜrβHΩLΦC±hXr4ΐŽ~cΤ`ͺό"”φ―κΓ{°­’ύS“[]R‹ϋΊ ό΅zbSެ?/۟ό­ΟΜc—UΰZ΄θͺ>�|θ?δ4=Ο{₯£yl>η^fΰ§³‘Q]‡Βk\ε£w¨X?7Œ­}?†’�7₯s«(­“ϊ¬ΐT­~[χ#&γς_Ιc, (ΌΓoΈ$Σόι…iΨ•b!•y œ”χ ψτΔΈό$¦Ξ·bʎ)ΘoM†EQζΤ³8…xΘ¨R7n΅δwW&Gv ­3}^V₯WEΚυΙ9ΨFο‡?9Π ‚ΕΘ—fN…)Φ΅§\ήφo7’»ΔzμςΛ›FΉΣD€(hη‘xΤ;{}9Ÿ­•I―³»­Ÿ½νz]™ΆB”;.ΞΖ»Ζω¬Ι.!ΙΟ&ω³λ+m^ώQH‡ψΉ)δ@ˆLb\|†;³;ΛΧΣΑlσκ;„! ©σΚe”^ΑΑžͺ1&£².(γΆΉo5Ieψkφ‚ŽΫψΰ°(&DΞ#†!ς—όδ‡ηާεk8<£ε¨Φ W[‚IdΥδ©6vκ}2ΡΦW=@7λbφtrŸ|‡Nσϊžw·ϋB]ŸΒήdίσG+}έΟΟΫ ~³}r­Φ­w}pYΔμg»’CN<·bΞ{η]` ;ςŸΔΞ¨ΚDςλ"φΏ=~Uy—Θή\ςΌσι3K\Έ“λ‘*ŽP:[‘#γeOsΣ0΄Ίψj'!΄ξ΅ύ‘-&s‘υ½m°ύ―F�œDΣοt�ΟO.Λ}y«Οg¨XEhf±{ˆO’”₯Pƒ½Faφπ2ΡΚ»ΑϋQΨΠ0ΞLΏšvκύΆ°Xΰ#τΡκ=IXςmσ‚#gy,–wM<«Υ5ˈ޾΅Υ£σ©­Dnzmί,Σν?ƒ—1ά ΠΞf:°¦I5€ϋαU•μ>μU£ΫlUa�on΅ωb­ύ'όϋ`€?Πϊ2ωΣ9G‘Tω}ۊ[ΕWΣ·†ͺφλŠͺ)T±/ƒΏη<υ΅O.ώWyEOο5}fοVG_JΞ SζςœΟμθήIKΊ?yv½“ ™>αϊ_ωzmνί™δ°°γ-~0Ψ³9έμπG“Ψ,PHρLJ}»5>Π‘$ψŽω%Ύ@’ξt(/νΝ€–Βζ —Σ—γ;ςYhNΥi“†SwE¬ΡΨυ~s~oω._&ωΓSΆŽΤΫi—²ΘϊJLΔΒ€.νNέ:ηi ΤψψDΘηο|Σ·΄•Τ’B{Η«μOωΑ»/#σUαŽhmcτίΉt·’H” ‘μξΐ€Τ³ŸφžBρŽ»ϋέΗ³η‡I3Ώͺ@rΫaΜ§½ϊS`ΙΝj8•B―]χ‘ΞD—; Ω8Š―"‘�€μΥ­;�¦C«_DΐΖR„Πί�šS|%JρŽLμ€l*vή» o€ υ' o%>¨‘w9"S ΛςώΰK�+oΟΝ5U�JΉΰwψJ­6λΆo�δ4=Ο}₯ίωΉτ^"¬P†$$d3�Γ`vιγšlΏQΜ½/MxT― Qzi˜ώχW—‰#FI1=jΝ^¦Ή&Š=UYDŽŸcάƒ½|i‡£h2ͺαE ΙTΫ‘ίΏ|K{’­UBC+0zqU]Είcˆ fy…³1Sϋ^­N•=<0†1aΪΧ 4ζγΘ=hGQΣ}²Nfς|-ωΝ+ζ€Ζ@j•jt�Τ§7ݜ:½$Gξ‹Ξ�(’9τσƒ—;©6νU}Ιρ̞Ρ5/ƒWgά_™ϋίNiϊtHf‚Ω#u¬cοšiL‹aŠfΪuŒ–InVJ‚Uw όϊuΜYΘ8Ωf#ΘnΚtνΞ)J<qnNv9JωΈy52#aL΅tM7κςˆ¬•Ϊ₯¨@aSΧνoˆ•κ2ΌŸ ΞA�Ξ>yγσ3Μ.­ε94qΌ1^³[²Δǐ~\X5°ί:^Κνl:Xδ½Νν»Ϋ=Ÿ=xΖa lξ=ί©ο_‘ίσžTό½Ρ4ΦΏΡ¬υ5YΚΧRk· ­/ΚcfŠ΅τΐRBΫ~Ή…―νiκdw"=ή^}μqιqθΰ!r9Κ·'ΏΛΊžG�9½y}eεΏ'‹8nxG«Ό‹qnΦ ”»ΤλPG†l}œ£–Υύ.kq ( x‡!ʁάχ>$ό΄σŽ­mω«ωk¬ΝͺOywcζ;Šk•SXη•Qκδυ`ΔηG­Εi²Fͺβ]‡Q9jq’ozίΈΏUx;�8˜ΠΥΟ2²CўmXΚmόΕ£7-$’ݏ΄¨iψŒ–S y£x₯ε»έ™Ξ¨)Έ²Xwώά*·θάwΕV’~ŽΨ«ŽjΏΫ…]ΘψŸUΡϊ0*3•z^0'’ΰ@Έ«cηςρΕWΧ½wΕ*ŠiŠ« ρCς«ώss_]cσ―Λώ^ŽOR$ωnξ"μ.5)εΧnόfί³£X₯.σχ;ΞΙΗ@2ς�/;(H(’*Qΐ's΅)Ψχ9Npφ8`KΫ4UŽY­ŠD‘FVŠ Σo–k2ΆRή•₯ZEτΙAZυωυι”œLΉ(+ηoΙ½σΣOƒQŒFΦχ~’8ͺ­ύβ€½9Rv̝/iOJIPβja‡Q ’ΐίπ^Ωδ?'i~FΡμτΨYι–Šμ-£Z¨.Ε›ˆΪΎω…©ΤK<Μζl—\"11€δ‘o"+ΔXWα�“±©ύYŠyΈ²‰’[°,e‘bθ½zoίί"φΦFԎwf$P:rDΫ²Όcΰ-A^5Ύ'¦ΨPNιn«ΘΐvPξkJo]†Λυ?-.¦�ΏηΰhυGλZ*ŠoΫ:?Αaξ{­,ΘΉτg—dTτ›€P «‚*i^ω¦ΚMNοV²ΉQ2Ή,„€Τ©�γΫ1έDγΊlΜY(  οL-G’,L…βψκx²¨₯ a‹ N¨?‰hωŸι RğˆYώ/ˆW­+ԚSIΩT•ω2ΓjN§‘>£&ΐ¦'­rŽW„ΠξNύΖΩ'+nψOσ•ε1\3²>Š–4Ύo{8=',&žqω73-›·ν ι…+J“LΚνAΏΑΗμ­τηϊΕυζ•7$$«Υ¨ΌE+πυί¦sσg’4Y΅ΌrI •#βP‚ŽzP(clβ™ ¦]`VC[‹žHGj­?ŽEΒΚ*ΩD2�PPΡΤl}ώxۈb€΅²rαθH ²‚@ Nυλ†Ϋ'-™$0$hΐQvΨ‘αξ;ΰ·Eƒ~`yRΟΝ«§OkΠΉ΄Έ‰ΤΚH™+CΣ―lΘΣζ8ζ$"δi²pάO)l}Εω;δOωΗ―?͏.ωWVΣ[IŽΖq«Ϋkfέ糞:hε²ό+WΨ]=σΊΥvΖ¦–H½«‘υ~§™ΓΨ9pκ€Ι΄#rƒ\‡‘>oά„c$†R₯CŽEcԊηŸAΪHΩ)eάίUΏξ¨Žφ&Z€°θί ~ ž(Hy=~AFaΨ3d]T p3XΜβ«έ{b«IόqVΎŸ» ΄M;}ψ ­εŠΏϊ)Qγ·|ε^†•»¦*Τuρΐ–ιΏΟU¦Ϋ}8₯J Un‚YbŒš` ΐΙω  Ώ 2<ѝΏ92<Υ œνu0\‹sΉ·ΆaoΠD{ θp@ΓOžuχξυ]Ÿ†£δΜt_M˜6ό™x2†44ί·Qΰ33Σβ^ΝεΉ.-=(˜ΒΜ*OZŠošά΅ΊrΒG›Ϊ4₯*-YΑR±ŠWsZνCΣΎ`JV]VmΙfVϋ€€&FcΛ`΄�'!n$εΡ“ZFTV‚ΌA₯8 ΟQΕœ“5oξψπζξ�’ύδχ=2%“ω�Ϋ“φYrkΎ�δB=‹d-ΤΣj±φ§a†˜h’Ζ«”’τ#%ɏ4£R Φ“…`8ρ―ίΧ3‡Τ—Ίͺͺώo~a€ΥUΥΆ�x~Όθaώ+sάhΟ “ά>ηΏh₯„QΣβ’~읏@hsS‘ΗΞτ:αˆϋνξ―·jζ1λ2Dkn~ΚАΰt=Ζτ¦ GuHgUŠP IιΘΰ%+ΤwΫΆ)1²‹ΑŒaΓ—§Ζ’+Ά(πΦ3\’UDeA 7=ΟN˜²!8DhΠ—™I`kΧΆΨ\I›;ζ9˜Δώ“�TžEG`{ογ“ΝΣG}ί ώrLζRŒ/ν�#₯s μΨ»ά›b/4όΈu²ΌŒ” /ά₯OΕJΣήΉ•Ϊqά{œ^Ε$α7όβϊη@‘Ϊ(Αψω’ΛР粊s³ ή₯’»5°©ψƒoΘύšύ―՘’ΊΜ‟ΪΚΙ#=AT&ƒρ©Θ4N6Θε.β©FΫάV΄Ε£†“0α#r£φ¨AΨΠυΒΣVSXeiLQ©―ΒΒZ|ͺFMRZ0π ₯€SR7Ϋ§γ„Ί΅]:Ωcxύ“΅)Άέ²W{°Λ#Ι>ζΌŠ(Τί‘©ψKE1Ο1 X™(Δι"Ž”βAΘΆαάΣΪUύDŠQΈ–4pΦPŽlϊ:[,a±Ε+­"›ƒ©Uiοϊ±VΏ©Β‘ρφ늿Σϊ ΞRή…x5=7#  ͺ©ίΗ ­±§Ύ*¨1Jπ:b¬;σ+Ν)δ_Λ=ωΒNΊ‡w=Έργ1Bϋ7a9w0Î`? |³ciΨ<’λH«;nďsZηIœμφ8υ/‘4Kx“ƒΒ@Z+xoAΰ{Σe—{ΌΖonjΠmΦ‘2!䰁ΔφοZψζ³,˜d•=NΒgˆ„eUJ}ͺΠWo–a—]’[3{]R=‹Υ·ό1p2ΣeoRŒΐ’(Pwϋπ5U"=QλΖ91E%Ή};‘ΧθΐB8vN-€‹’0?eŠχjψ¦@¦~»XА(I BτφΙ[P ΛΘ©V'—σl*<vΐCIeλk*‘Θςc½jv³‡ΤόΔΤ­ΪOΝοΜωψκŒJŽ πZ΅ iaξ{!τ|άχ Χ‚AVgwPxԐIΎσUΈω₯ΝιšT|�Pfen•ξFΫxζ3«Μo}™ ½ΡŒ0wd<Τ©4ΪΏ>ψFξ<‘jβκνλlξW†Ζ‡ΉΫ[+e/\+Ϋ…!ά- ΰMv―Qς¦4ΩWvžΔό£_ސ ‚C�D΄δ˜Λΐ§4‘ΥSνΡΑ؝0΄€mη~bxγ‚sρ3€εφζ›m–AΨiΑ$>όߚF‚ŽΌIRΛΏPqgέΆcϋ’ςίΚ9\E©Bš-ο>'jUGFλ™}€9'°₯Xζ:q>ΑΠΪT‚�Ρ€›Έ4©¨ η'Vμ²€KΥ΄Ή ۏO“Wͺ(؟˜RΊΜ£Υ»!Ά_PͺΠ45$t=j2.<φdv«§!0 88ίμυωtΐβΘ›GΫͺJ#‘"”ωtό1c#I¬"8½9˜KZžΔp5;zp‘ΤΉ–k±ιΆ4Φv „a“Σ�€…ΊƒήΎ&“Ίf¨Ν«ξ­αήΈy°΄—[·gqά•§‰>Ωβ—©ιΊ4ž‹€IZσ³‹uPΏΓ6PϊC€Κ+$½ε0?νδΨ,ω »ΰJ™Ώ *°Ž„ύ­>4ΕZρώl*κ UΤϊΉΞNνθiS²Kk…E?VVS^Έ₯YMkŠ«.υχΕ/”η5ΌΛ>ƒω ϊ=¬ζ όοYι3P^.W71šφ`Š 33A,ΒϊYύN^‚<Y/Έ}οΛ] }9£pUi°―κ ΝΆcaλ΄°§½θ΄‘ΖΌXρ©u§~y¦Μh»ƒΫtH‡:T…B·Κ„šwΝvG!4υ}?βJς WA­wΜ7Y’Ω₯°TŸ΄#<Ή·ύxΈRG*QΉ* ³’Όi@>X– κ#υέΞζ4 ŏ!P+ΠtΘ’Ο ΌNCΜΕZ„P€+ΣΫH&±Ί‚IPvκj=πΫAΑ%7& ½+ޘ°€Σ³ΫΐIψ|>xYDzŸ™Χώ³~q~bI"š₯iQρ+ώήo–‡Ήντƒχ~T>ηΏhΜΫH€ujΖ›S5Y9S”X,ξg€TŒ>"=θFcςuω#Ν4 jP•bΌόEj:WΗ'ΠJ¬M$ΛΘ₯'–ΓόΐΙ�ƒD„T3ΥΫ‹Νzrβ ₯+•“άž “›‘‹‰M”qRAθ:Šδm§ ’nΡ°›†£pPxα?Ίyw›šeζ±’?5± (‰₯Gs™ιΩi�|Sω²eXζ%V*NϋT™Πh–Sϋ’ςOΚY—XξΛt₯�θ>‡η™€6ηΩσc%�;τ>Ίnγ0PHͺ©E#£νΠg7’.λ$wz–‘p‘G"%ΙͺύΟO–ω‰0λsDšeφmHŒZ³υύς—vC%‚`Ρ±βV†„€|\SΦU‚Σβ£�κp0!»Α�ψiΰΨ°)ά$¨Š₯AZΠγ]ε1ˆsY�¨ψ¦ΐV»o…¨£d�ό UͺM†ŠQFh˜7J}<<N%ζΛ|£(—Λzh _GΥ‡ειΘŸvgΰ>€κυ‚³I‘P\ΉΗYβ1JΖλϊ†*¦~μUoсZϋ½ύρV«νΫ ‘Υϊ s”ζτ%R›Φ΅Β…κEωœRV„b•d;{β”Bψ`(~vΞ|k†[�Κ(‘ΤuۘίΤvKX‰q@™³μΑΌεδιv™ŒIο|G₯BΛ(tˆ΅6τλΦΎ9›”μυ˜#δχί,e„: ¨‘Aϋ#­6λš|ξΚCmή壄―ΑVJo±‘ο_³W—“‰—“μP€pzh(ξ ϋlNcΊι›%˜DDlͺΝζ”ιΫ|\SΊa‡Fη*MIvΥ!Ί`VœOnž8†ΑΡk,dq4$Τυψ€α,& xŽ…jϊ ΣΎη"γ›Ds]ΆYˆ©ιαΤ䩈+ΏΉUŒ§¨�!©^ΎNΜqήߚϊ΅Π�•Γωƒ*“Α΅%βϋνϋ΅§Ρ›ψGόη³ΑGΈ}ΟpΡξΰ)Ή {ζ―$i†Leθuε¨@―pͺrU¨¨ΜR ƒ—ΊEυλy”:Θ(�€½·¦#g βζΟ0«O§>gΤ` ΅θzδλkl‰₯ uԎβΤ(γ> *:0-πΣΙ,5_Y„αΓ’΅8ρ5―b<2\\Έ8vMξ5>#…V―Ώ* z q†+`ϊύέ›Α9V>«FK’  ώ~™~739X|Yω©!­Ή¬jΚUUwρ&ΉΡh†xΦ#ξyεs„ΈΧ˜72Ηρl§OlΞν΄]`Υδχ‡Φϊ Abͺ§‹lŽή4Ξk(έήδ!ιΊ4ΚΜμΘJ$Ιωf&G]š<ži"z11VD ρS¦ύ+ΰHnΘh\37_‡δvι‘qΧZΜ―H€c'~΅FΨβC)‘”ΑΖ…ι^uπ\9&JZI"`΄V€μA―†-\L ( mϋ;οπšy5SQVCπ€Ώ«%άlλ β�γΣ½0i9ς<„i·φfœ¬―Ÿ·iT6fιΕΐνϋΐ{Γ2'2mΒXOωœR°šULόΎŒ Ά£ ΅βO}ΟΛ·ΏαŠΏΦϊ"žΩΚEθU–›dήΥ�:ΰK›ψͺͺ{υχΕ(΅­:`Rό‹�œΛ}EΏη ΅?0Ι¬zšZ«%¨F,ιM…e,λQ›ΎΞώδΧ>#ψω;Ο‘ψκπνž₯A<y|kΏZdσrz?=žιεƒρΕπŽ\TDΧζsQΟ/k±,)ΕIoƒˆ'n5ϋ³]7UΥκ[3B‘γhΟ=Ϊ jPœΕuy…™<…‡§Ν\Έ]‰¦�Ž-m ΐ³V΄)α֟<S²i.x(Kv"„$R•άυΐΚ _4ΚΙ₯ŠFY ŠψS|-sω§VΟqU¬'‘αB:ΣΎψ‡`w’ΉΙιƒι7:­A"”ωΧ/›ΏbΌΜq™' Έ&€ο½+ό1r!φ?5υ9/ζηžKAΒC©ό`°4<”ή”¦tΨΐό΄=ΟS€":P―“Ϋ4C?Δ�”ά{Szζ―%[vZ§₯Z6”­J‘Ι-XΨΡ~D³\N ΈΘ4Ž-hπΜ°E A ŒΔρπ -kτdhΨΆΊ"Ι)u•’άέ7閐‚•Ž8eZΤ|_)"Ÿ,ΊGnL₯’t.h@]ZΫ~䦨EΗάE)4Ϋ•°_“•ŠrώnΥή­>ΪV‘+¨M�zQkμ€eg…£,Εmamn‹:�§΄ι֞™―*τψ€ν•]–d¦Ύ,cΝ³ά,r%½ˆx‚ί3 cQΆΑ«·Λ2±ωΆθγdύο‡2Eαk‡ψΖWxEHηJgI‘ͺΩΞΧv{©η?–Ύ·^ƒOε4ΜΠε‹¬μ ΌΎρχ>ͺΠ…drcBW₯+φEO‡Άsٝ켞·‘‹žuκHθ@ OΩϊs%S…Ÿ†·gϊ{OΒ‚1Β£ΤbGΪτ�χΜw_”Kt\Ζxͺ€d|]ιφiψψ`qqΥ‘νKrN oΜ1^£n»`-²δΚνŒΰFz―ΖΓ‘―Ά.$©1Vœ…ψ8Β•5ΫΣΓΥAk_Yxς§ΗΧ·ί ςέ=‡— Α­>/ Z%J’Χ~ƒα<«Φ˜–(Ÿ&>½―_τzBKφυw¨ωΣ2t·Ώs‹ͺ‡~�&v~μΜuαiν·ΛΓ¬?Ž©TώͺΖ­7ϊqBίΎ~8«Ύ, »Ω���������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/basic/index.md���������������������������������������0000664�0000000�0000000�00000000031�14654155362�0024214�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������```{toctree} content ``` �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/basic/orphan.md��������������������������������������0000664�0000000�0000000�00000000121�14654155362�0024374�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������--- orphan: true --- This is an orphan document, not specified in any toctrees. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/commonmark_only/�������������������������������������0000775�0000000�0000000�00000000000�14654155362�0024714�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/commonmark_only/conf.py������������������������������0000664�0000000�0000000�00000000127�14654155362�0026213�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������extensions = ["myst_parser"] exclude_patterns = ["_build"] myst_commonmark_only = True �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/commonmark_only/index.md�����������������������������0000664�0000000�0000000�00000000044�14654155362�0026343�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Test ```{note} hallo ``` {a}`b` ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/extended_syntaxes/�����������������������������������0000775�0000000�0000000�00000000000�14654155362�0025246�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/extended_syntaxes/conf.py����������������������������0000664�0000000�0000000�00000000767�14654155362�0026557�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������extensions = ["myst_parser"] language = "en" exclude_patterns = ["_build"] myst_disable_syntax = ["emphasis"] myst_dmath_allow_space = False myst_dmath_double_inline = True mathjax_config = {} myst_enable_extensions = [ "dollarmath", "amsmath", "deflist", "colon_fence", "linkify", "tasklist", "attrs_inline", "attrs_block", ] myst_number_code_blocks = ["typescript"] myst_html_meta = { "description lang=en": "meta description", "property=og:locale": "en_US", } ���������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/extended_syntaxes/fun-fish.png�����������������������0000664�0000000�0000000�00000263666�14654155362�0027516�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR��τ��^��Vέ”�� �IDATxœμwœΥΩΗΏgξ½ΫΛ.mι‚;ΨΑWΕ² Ζ$ΖΔυ%F»°`/1±½±kLΤXˆ`AΑJ+HpΩ₯μ.»lΉ{ΛΜyή?ζΞάΉe)² ‹ξΟrο9ε)ηyΞsΜ9ΊΠ9 «*ό²h€XΛ+$όζPh|(_:ͺ>££ ώ!PVπΡ&Ίζ­ζΜ–*�1u‡ΥΧΉ˜οηL*=%_tΤhz²DΔ΄:¬ΎNΕ<ؚΦ+ŸΦW[bZδœ:ΓΧQuu:ζ}ΞUbjΔ΄`λΝ}οΈvίρ]8,‹—6w˜£sΠι4ΠcN”άώLώoε°MΛv…Φ2xΓ·­²μΠeς©ΣΥ~§ΣόΖ'–/ν«ωττΠ ™τPϋ=πꚁό²²Γ$ΰ拓΄Φ%_…BŽι±š ύΟxͺƒκλTš―»₯&·Š9u=ys}_tμŸθŽ1}Υ!₯ώ@TF"”± ζύ—ςYrh€Σ€Vkή8°έiν4Μ‹ˆ1«ΉΩͺ1Mφ,©€Εjuš=­΄2ŽqνNk§±ωΟZ^λΩ­’^ΐτšήΤZΩ/n`Ψ₯ίٍίΎφ΅N£ωω--RkYτ+XM˜0AZyΆ²?5Ϊ’Ζ²¨΅,Ύ:΄]ιν4Μ/b‘¬l,£Ζ4ιqΡ:ς^¨KhφA‚œΗyνJo»Ά£©/*ς}fšζVεΣΪ» (XM―Ώ5σεƒ%ΌΆfž―ά“Hwεzύhk΄=Ιν́;Ώ>z•<σ ‘Ε‹#Ωm¦_ FƒZϋ‹ςΎG£m}«Vž¬ά…ZΣ€Φ²ΨhY(ΰ›]wm7š;¬Ω‡B!ϊτι3δ²Λ6,υ^Ÿ6Πœ9αμΜΜLχΪ7|#uMύ©΅LjL“ JJΠZ£”Mžˆ`γoό‰?aY–{ΐ0ŒΔΛ63Ÿ™ιŸrν΅ζΙ?4Η£ο:ΌΪπίΈ€΅3Χrδ‘GΪΔy˜wPWWGχξέΚPJQUUEίΎ}wœ ‡Γ\y%RQaMš„œr 2ϊpδΣηλ3DΟEd."σμΏχE>εέΖFQJ‰ˆˆΦZDDΞ:λ,QJ‰ΦΪ½vΛ-·ˆΦZήxγ ιΧ―Ÿ{]D€¬¬l«BAeš&~ΆwχYYYς©ΠιΝ³AHΣ€²Tμ«Ψiή nzάΗΥoΧsL^žD)WλoΏύ6J)Fˆ$άxσΝ79ώψγέί–e©-εΗΘΚΚΎ©’9δΥΊ΅ χοί?«01η"­s‰σϋρ’ΣΚεί–‡‚{ΑΕγ,ξ<ΆΐeΜiζΣ¦M#‰D\‘؟P3ŠŠŠHξYό~Σ–o̜9}"ΐ 'H–Σ\srr~΅©L"Β‹χ"+_ώΎ΅~&e73ωΥ$ΉΡΕpΘ1“’ςΗοη?3δ'ΪφuΧ]—P_β'”dAύτΖτ<Ÿ/>Η©”ΚΩRζ•ΦšI“Œ6mε†Μδf$znR!e“lWwU/bkH(›ΔδGŸβχεΛν …εw(ͺz</N·/;80>WιmήίJ)ώ~ƒβςŸΗΚVvKš6Ζ\ ΙΚΚ:*‰Μj‹Ÿώg–}ύύ?«φ0bέDz4ΑΝ7ϋ₯’9ο<¬nωˆΜ³™² Š1ˆΰ6rOΣ@υΌ 0ΨM―ς`ς›žΊ »{LΆiοoησςS<UΕͺ;˜o°)Ζχ»lwΙΝΙΩsχσ†H¬ΚT†ρ4KbτΨcfΖmΩΥjΜq)Χ“y €―€γφ|Η½o;<α‚ΰΥ©/Ύ ‹β-ΦΡr2nΊ4Moζ‘#:?… �žl¨τ(Λ¦€O6ΚPμ~Α.ΏIe>hŽ3ν@Ο‹7³νేoΛLbΞM(Ύ_».ΙαΩM ΰ‡>%Ξ5π ΘBε8"’πχμ]ŠΞΖν1ά::”]†aΛΊ‡]1¨Ηwoμ)Žv£΄o6έ{f’_ Ώ σ™Έ1G‰ύT¬ν-1Ι:Œγ4wP*YΣ*8χ$q―Mš‚aŒgΖ 0Zαεϋ‘ΘJΰ›OΖ³ρ#˜:#^—( Τg>B ²CΑ}W+.'όζ(OύΙ‚φ\Pή{π^ϋζΛΊ°Aχ>Y\²XQ'@q―, Ÿ"k}˜uί·zΖσΨ@£§$ΐ²βΉ•Ζ€nζφPMυa”φωΠ5£ΆσάηΪψxΊεžύμτw= >+^Y€žkΣ‘Η§’Ψ—¬lΝβŸμ †Β0`―γSF)~ρdεω1 ΘΜραχ†Βˆωžx³oŒύ5%Vk‘qν8D8Mψ5GσTœΐAΑ?^…KO·Ύσόβ©Oyκ@ c8όnΩ᜽ό΄1œIλFΠ{p.}η{ύω‡ͺzΞεŸΓ"<‘W‰Ά ¦*HΛΖ(‘°F±™P’§§βŸgόώυg�<’wΚπώώπ½‘vd˜€{Y±’ύ}xη₯‹P}Ζπόν.Ο)υ;_υ<ϋ‹1β�žΖn!n4<^„Φ–qυ''DΎέ’°ζ›Ήυ„[-š7F)ξ‘©ύ�>h§‹mr°Εβ4vίrFBΛμ8β0νΐ%RxσΞ₯Lš >ƒWώo†€zNτD=.„C§_»νζ €ΌZχH[9­nτ «¦ΖR02Ξ8€aψ4ΰΈwρωώ―¬ΊhݚVΒ­_<ψ­Oœy¦²†•DΟ‰ ΐp ‚ργQέΊuΛ¨{·>Œ'Ζ‰Υ½&\+›dST=>Χ+>φu©“^ϊςΌ- Ή% ψLdΌ-xŞ2ο―_+₯”ΝΪ /³RRe،+¨ργν‚λλλ#Ζώ(cΪ‘Ρ5Q/pI‰έœόθS ό€ΜΓ€ςδυTξ½€<xδΒΐ–00žo”?�wί}Χ―“9LO˜Πf‘>c*밌+ΉΨC€ση*πς?+ψύ˜ε^YΔκ¦ΎXžΕςΓc7<AL‚ΗWπψΒG}ψΗ?ΆnήΜ©ΟL˜8ΡZ)ΨΓ›DIIΙ‰΅΅΅―ηB–·i: x”ΰ €Ι{OΕΏ# φC(Ψi/ΈΥhΦZη:SPQ‘>,ά„Γa²²²ΞPJ ƒΛΗ#‘O‘ΠHλ'ΘΪYΘEώurΔˆaΨΐ­u‡>NϋAήZL˜€€ ΣΣ’’bϋΠΜόΔ‰ˆΦ0gŽ2g̐‘‘Hde pM μfύgΞύA€#iΩαΘΞΞv'L ΓΈGӳݐ““3怓TΗ.΅ψ1@D:ΥΊ‡^s·�Dήί_�šοf‰Υ1n SIVeτΗͺό»!ΡΨ²%Fύ-έώΡuu*ΖE’HυSflf֏oΉ°#κκTŒ%g*1-Δ4i~Άg‡.2ξtΠZΣ:e 4=YξΡe§†ˆψ«£QYXΈΕOX~:USXνϊ…οG7 ΝΫΡ΄lW¬‹FeγσeaήBΡΦOδ- ρƒποc’4φƒ9Ύ9f睊ρ%λƒŸ™gאΉΘdζ¬ήΌX=€ΓκΪnCΒ-AM4*3š›Ω³[₯»ͺjcζΖO Ÿ² ½λκ4Έ©K„™5½ωβžnh4ώ°~GΤΧiVSn¬²ϊΣ&φ/&Μ‹kz3χW»QcY0 ύλλ4M}νŸΦΚΌŠljM“½»―t›z MFΣΤ³τY'΅g}¦©Χί[ΟΰΒ*,₯˜ΎΎSͺ#hΑΠΖ‰ν]_§iꡍύ(Νϋžƒ‹« dξΝΉό³r/{ΙΈeA;;ψNΡΤΏV_·Zef-}«„Σb’e)kf›2›ͺ/_\Φ^uΆ[S·,‹oDŽ:κ¨­/σ䜬ΐ'Qφ(ͺΖBxsέ@^ލΎάK 6ϊ΄­Π·,‹›oφ‰ψύpΗωeMMMΥ›Κ³°₯Ej΄¦oώjB„δ£[ ωτ7ξzYS€σ―• …Bdff&L)ƒύpς‘‡zοΆf͚%Ξ΅}χΪ—}ύ/©lμK­eΡοδ5L=τIξΈγΐξί?ϋμ3^>πeJ)ύψΞ>wRUUε–Y^^NϞ=}O=υΤVφΫΜψ 7 Ϋ²Ψ²χ>/1κ{"£ŠGSSWε.r–9ί Γΐ4M ΓHYVζσω΄ˆlρ Βνͺρμμ¬[Ί*δς‹D`Ζ;0ϊ�Έςθ{&φ³΄Hο€U4ώ3Φsΐ«SVDΏςΚ+œrΚ)n_}υΓ† #77—††€+¨{ο½W]~ωενΙ¦“ΌΤ̎/ϊ՞ΐ sγχC!8YΔ7$,τ‰H¦M›&ΏψΕ/ά{W]u•{šš7O―^½Άx4§**lΊ?ϊθ˜ΐΫoΟΨΪG±’ηۏ~έ‘NΑ±ULͺηU°ξΞ6Λ*αε™π—Ώ[ξ‚@­5>ŸiΣ¦ΉiΛΛΛνr•‚ω 5¦NŠRŠςςr―9lQ+VΙON- nΊi³&Έ<΄ΟD¨ž+‘ΔeA¨ͺέΕONΛΰμ±w%UΨ‚Μƒ—…*₯\Ζ¦{2?NސŸΑ²JνΝ·EŒ§τΉ>ŸύΉ’)+3VyουνΫ=?‰ieWψό _βͺw₯ ½ΔΛ»Όμœ n°σ ίAπί™pζ™gΖAkMyyy ΣZλψ‚`Ω«ΐ|ŸΟG8ή$³{ώ~χέw?wH€‘²zΩƒίNχχ¬Ž> ςΥΥβν ”e"ΐ˜Σ―I†‡Xο*W½'2ρBπϋμτΓzό+Αδ?>Ÿ/Ύπ f^Jž+dee΅ΙΛ>ο*ώ Yͺ©μΧ}.7RΊ’FΟχPόkΛ{ΑωήΕ=ŽV₯Χ• ΒΎ=ΎPΠγΉ%ΆL8±Ϊ v^m—uέoh“p§ΫzςΙ'‘yρςέ’b«­d^βRP—φ·~]Z–CiίlςΊΘΛΞύ›ρα‡I&Q€½&Ξ@#TTΰΪ¬Δθ¬U1Nν,™)›δ¦CjΝw΅€œ(β°nCΌάΠ‡‘”υ―Ά�†apφ°sάΕ‡Ξ§³ΦYNb~’{Ω9μΊaΘΜέ³€O₯}²),Ιpg<UQ‘λ.ψυ.sŠIφ”C`Oq ώ«Ο${½{ ŸJ<n§ž€Ώέ�§£χD;gΥxœί―…n·‰>utΌξ‘Ώ‡>ƒώύΊ±ςεϊ˜�ν]—λ½>βŸ{€R”τΙΒ0ΐ0}‡ζαχT.mbΥβ&Τ‡ΞΞyϋν‘- ΉmΗ m©ƒ;/‰œΌ&-¦-Η© ρΕΏ›Β„ν7&]zΫO=6i œG ήEDΙίOύ`‚–e(”‚W #­QΞͺκf―wυ) Š3ΘΘ4Xυm«5arΘαA’ΨΝΫωsΦlΕ*ψό[/5$PηΠ欁XςΥ~›e\Έq0 §]KΒj(7Mμš#lAvO`Œ€³—ŽݏHν ϊgp.}εgp—lμΞ£½),Ιδ™!-vΟ`c]˜ λΓ„‚шΆλIθΛ½n<Ϊν‘ ϋ³Δe]ή5―nπRz)J˜τΘ„f#ΈώΘ1biϋL"Z5ž)ΣαιiπίΏ₯6ηAΔκι?*ΧyΗž(ΰ�­ Γ@DψΣ‚ƒGωΜ’χ|ωA–)l¬‹PΏ.œ4γ,τuœrfXοƒwΏ†£φ"‘Y{Χ¨@ –2xν8ιWPύ5<όχ‰ ͺzΌλδˆθ3‘Sΐ-OښΤσ<q@R3wπύ΄XKP tάΡυ8‘dίΪZ;4‰uο;₯όζΉΓdΡάzZM J2hάAcL�1άsOAχΖΖΖ $Gm<žΥε P½GT?ώ8瞰*Ρ3φždησ¬ƒυ–ε^ς΄¨KsΊΦα ΅­ιMaοΛ­ςKVίΟξ]δk{@cϊo+°qγΖο=ΌRΓ…žέ•¬{;΅KυώP 0μwTΟ-_ηYψϊ Μωx.Gτ1δα*YΙΏτΞ’ξΝ1 πείW pΎ·Ιψν·g …ή‡)χbΝHΕ*λS{’Α!Π b$ζ™Τš )κR=/ΰπώ―y2z4-0σ+8zοā7αYΗΎ΅Hiκύkώ™MMMΟmmAαp˜ΜΜLkδ~οMN­Ετ°σπ+Ε\τσ )Ν7Ωwόώ6ψΟ[P?Σώ-~πν"²₯γ‘Ά1a’ŸŸ7~σ)·Gu>Ÿo 1_tςhdα+HλΧHhπ²βδƒη;„tˏ―oνΡ£ΗAνMΫ(²ΝΓ0ΤUγΗΛ[’φΞ;sƒ·v4MЁŒτΈβŠΖuJΑ}χε<W]]¦=™0UΖϋοζ»οκ@Ϋ%u :\γ^8ΎΔ0ΰ†6ίύό(0a2t萂ͧμΒ‡hώzΈ�XK―σΛ %τφ’΅=5)ζΞΉκό'`g? ²ςβ#hxM”²ƒO Χ kfCΈιΓ°CΏζ§zYΜ“ϊΫ ŽΫ‘΄n-Ί”ήJ/ψ#±,ΜΉϋ[²ρλS΅₯Ι³ς�αώμΛ20-ς/ϊ|ϊŽ&wk°];τ ²θˆηuDJ‚At(‚E0ŠG—EΎ}ρ#1₯Ώ}-ͺ»]ξ°m;]JίDgο-:AbŠΧ­Qϋ³%Xτ§`Ꭶ― „ō­χ·ΎΤGZώ]*:ϊΣΪ²ϋ' Ρ2Έω­f©ŽFεϋpXžhΨ°‰‡―]ξ}3‘ŒΚH$άύ¬V‹οςρŽ κΏ”–ξT}Ήƒθ}3X{εΊ/³ ƒ†#Μ_ΫΜΚWbυXΜΘεΖ¬ŒYoνhϊ~Ί,}Kϊ6ΏΣ\©5o«©·,‚Z!¨5Ν†π—ΦB_Ή;U'ί₯τ6 "ΖκhΤς=W λ5&&Q’TŸΰ½GJh΅4A­™ά»ςωwOί₯τ6P}aυίςOΜΏόƒ#… 1 οuΫFzί]O4ιŸ‰ΙXΖξ4²άiݞΠZrίln©ϋσz"ίΨσλ_ΌTHυ¨€νΪ-+ζβ…±ψD ƒώ±βΖσͺΖέΌƒIί"t)= –7‡d£²Xcš„κ-φΈΞuνΞg”(ΛΗeρφe„Cv#xcΐ@ŸΟPΎοRz΄Φy+†­hŠ|‘"ΥΜs· GφZFΔ2Sά»σύ Ξθτ2ντno|Φ” ΦηWΊΧ4ӈπϊΊ2‚V<zw#yΣ’1Λ π] --ΡşΏο;…Ν’KιT_RW4›ξνζ*ΤZeχƒΦ¦΅jϋw„•£³™~]_ͺd’ુƒ•Ώ―ιtJο¬]»ζΨξέK6ŸΈ±ˆE"±Ez ψͺΎwΒΈ<(‚ϊ6Μa£–΅ΩœkqQ§“­ƒNKΨo°ο]q…ŒrMžl¬…Šφ^·n]C Π~kΛ>zγ(ϊί3Ÿm&ηΒ ξu&J”gρωέJά­·θTW­€ ·FW/ίgΟ~νF`;’S+= Γ8Ή’BOΡibdŸžžΠš5Ε»UW―ωή{,Π氈Ej@‹G©eΏ¨!kF«kΑ�cK-΅�)oί3ψI|­kZ)Ν£—)Γo ΅&''ηoαpψrο›ΖJ)²²²^niiωεφ\,ΈC”>x°!Η#δζŠΞΚΒΘΚJzΓσ„ΫΊΠ`ζL" ΅aΓ†γN–χXqId}ΘέyΤ*S,ωΊA­Ήη¬³XωηTVV&cM +Qωo½υcΚΗp;·s₯yeΒ±*’•/"μ½χή,Z΄hΦϊΐmη΄mt*K4h`ί=V­*/oM>χ€ό~hn†εΛaΙ¨¬„_υG)/gθ~ϋSάk‚0ιdOΞζόσΟχ”‘ώ ‘δλήΰχϋill$777!]ςQ4ήΌ«W―fπΰΑ³LΣ<ͺ]…ΰΤΧ…ΆLΣ$//―W$ωVk]α‡‡o‚ί‹ϋ:.ΰΎΈ•ΐHς›_Ξ5ο-­axηxφ Έρβ:ZFgԚ_ Lύϊυm*Έ-Wμ=H)ω¨Λ²Z|QQυυυ›ͺ§έu€JKωό΄ΣΨη±Η²χnmmύͺ½+Ψ’Ρ(yyy ‡ΓgŒ S#ŒΤΧ—ήτ\ƒψ;›Ιοz©ΔμnΩ`ο4PU3ηΑΌoμοwΟ\ΞGΟ~Δgœ+7n™ήχΒ»wοΞΣO?ΒOΒφ18Ϋ(xαl™ΰ”;f̘—oY~Ώ—ΐΛ›βVBΓ+*Hχ*<˜³vmλΘφ8€ΞAϞ=ϋ―[·nΥM€‹NτXlρYΌσA5£χ°κQ’Fι1ŠSš~ϋ4°ΰͺρδ8;˜¨Δ‡cYSί†,š Ί.Ί>ω*qϋˆ[±cεŽ8χǎ›πΉ·χmLμ:π$¨\§˜:uͺ«t'­§>χ€‘φ‚ …Bά~{Φ-… Ρ{ο}}ΰζ›oΩβ9fΓ0κχέU-x6ηu.τ™„ (R5>Αr½ΙΌ΄@μ~Ÿ‰;4,Oavό=ΏxΛ @ٍ<χΔ$Ξ8ή~Yαςϋΐ Γ=ΧΨG?͚ –Fže₯Έp―Λ>ωδ“ΉπΒ Δ‘GI^^ϊΝYE„Œ€Aτγ4]‘‡cΌψβ‹Œ7ΞΝgΖ {š,?mΏ’»)`αΎξισΑwζNjhhœΰΈ±²²²βκκͺ:λΣXE*1"OpΓͺl’[τ’οΎg·¬GγŠή„Υγο=Ξ³ˆπΥ·ί2,Ή„4J@Κn±‰α•ΎΙ)}„ο@{οƒ_]cœz ¨ρ3“#μΆΠΦ}₯}ϋφ₯ςΥ*7–HζΗΫ9§PΓ!??Ÿ††•.Ψv?ohό­g¨ ~χΤͺ\§Ύ”·κ\XΨ ͺ5MοΛλI¨¨�™kΥ^Mφ­Ξ½’sŒ¨ΨEΛW±GΦc‰oόz²&¬lRόŠ(ήxu<ε%zTΩD@ΉΧsη©‰°¦.…γ΅ΣξάΝ}Χ;₯Oχ"9Oχ=;;›ΰœ*YΎ^–&Θtx6F$Hl³τΫώ5½Κ J Γ>X+Ά΅X˜¦&0ψόΑEΚ�¨«k£ΜΨ†7ξ~Δ%ξ|6±M|>.=.~PΔ[ĘHώC€Œ±"νmUv)άeUyϊ~η»§st&N~θΚφΌϋSd�Ž%Ϊιƒ![(οΞƒ‘ϋΕ‹ϋ.φœEζΑΊχ ΧΝoJαήϋŽυάqΗ ͺhŠ+ΓC:Σ€‘y•‰lξtςθΗϋ„­ωΓe·}KJJϊdQΪ7‡²lJzgΣ­G&ΩΉ~̈栿μm«dΐ�Vsύ7YjWΉ) H<,,z!ιΊ7=©n€˜΅Ύψςλœzπ')U—ž�ύJ}œwv9ηž}0ΩU7ΪeϊBι9<φψ3œWΎ,ήU$Gπ}nB\o °fΏΌ ~}dψα»ΰ―ŠΧ·ηΨk@’G9ωΟ0υ=˜5k£FJqϋ‘PˆΌΌ< ₯‰|œδάEΖE‘–gΓ­5}Nν5°°ΰΕΌ’�έ2b Ζήa¦Gίl2³}ddω0£š–Ζ(M’lάacm3*. 'WT0%EΪΝ€&΅e¦ι œ~4 )Mε1y+Žd&ΣvΨI‘Ϋ-oďΈάZh ™™P] λ+α…ΨζjxΌOώ67wl"Ιi{sb’‡“ι†ŠRΊ¨4ιB’8ώ΅aΆ‰y)#£δfg`Υ·PΎ —‚n1ο bۈ)ŠJ3ΘΞυSX’A°Ι€‘&LCm˜†š ΅aZ›-»ΎP(dά~{VͺHM ˜DY:Nbχήf<””,©3φΆή”ςΪθe χDn~lιζά·έrα²£βŠ2FΨ§Yž–€ψφ„Α½=}lty‡`^eώίkpύ_‘΄ΨΎΈΌΚώτe(v[Ζ.Ηυα…έ›P†«‘™³jzΊu{ΫδΔuύOφήΐ²™ΝΑηWάRXG‰ŽςΏΑή(₯ΘΜ6ˆ„4™9>¬¨Π²1Jγ† uΆ₯‡[­8;›ΰ“–Mα:ΖψΔ{μ~(έΛ+ΐ6‡nιΰ+—" nš<!νΌόζ _|%~xδκX}e“xdς“\8α;ώ}+όοmφωνηΗΆŽ:υX,Ψε#©ϋJgΥήQΗΨ?Αsμλxσ\₯ξͺΒ\δ«ηΓV―dυH°ZΗΝoͺˆn3jˆΕ‚&‹ησϋP[’±>B Γ@k!άjl2iΤ₯Gίμ-Pz²²ϋXίpΗΞχ|Έγψv*τ-τ\—8#BšΌ’ΛpN‘9枧ΣοM’<ώΈβΙΟ‘=IΨηΛ)Λe₯η_#₯`έ† τhύ;ΖψŸaαhi…•Σ ·3BNγ₯’-=₯Ž$φZLΘ?$~ΨΓα­{ΣΧΡλxhεφliiYŸ–ao="άπωq}†Ώΰ‹κΨ°.dοΡ„‚&­Ν& Θ/φrι»ϊj$;ΫSŠγμΣ ½'©{‡lΝ@l~"Ά™κ£ƒΚ8ω«$(>Eήk.ρ[”Mbς£s~ωΚx ˜\dξ%gΈ #d¬™Πΐϊ^@bΗΩΊΥ:Ϋy9ΏΕ3 πδΖ(·Y‡JemSuδΝ³ν.gτθсιΣ§ ƒQެΨGP°vU+ώ€"'ΟΟ%εWϊ~7ϊ<ν²4lυγΖQ΄Ω’φUσβα‡{φ[»vέκtχ|>ίΜ€5€yv<‚ί”»wλŽaΣX‘‹>Α3—κρiΫQΌpb#§ΨŽ_ή<BβޏI LŽ·ικ{Ώέ•�� �IDAT0F€ίο?Κ4ΝY[YάVÝTϊk7އ6•pnππΓ½χ―^³0~s]ϊ<€eYCƒ–ΝœišVΙ²>#šΪΏ»ε½Φ¦tν >ŠK_hs8μ’η‰ή&¦π„<*±QzΛTΓcΗ”oͺŽMΐ[‡1rssΛ ₯zscρφ‚[SO=i¬Xqφ&E·ήšqR$™Ϊ„ˆ>Ÿο5­υ‰ύzΑ²iH§|muœi>,S@•MBDψtζήΝS–'Ÿkε*Ρͺ½i&=@p.d«€:<Ÿ^w @ώHhi%x;ΤνWt–eqΣMΎρήt“eέ·ύΙJ„i𔕕°aΓ†7’Ρh `΄ά} 1 {h©R­N<_\αCβˆΓΉδν_“ϊZο°S4OΎ—έ ΑV;‘Οη{󨣎ϋα‡žΰχϋΪΨΨΈk¬!7›ZZZξσω|βEˆ9eeωο …Μ?ξ(bΆ……―\~yδ”φXVεΕΪ΅θ»phCΓΖοΪ·δƒvΟφEvvφ¨ki}―­q»D"θ7ίTΖΙ'Λ­±{θ!΅Έͺ*ΊG{!θlΨι”ξσ1Ψ°}Ξ›?ΑBe»Υ6Ӛ¦ΙΝ7ϋΣ6‰ϊzxυΥώ.]ΊlAFFF‡ΡΫ±Σ)} ΡwΒ*`κŸ Τ~ϋm¨ggιS»ΠŽΘΘΘΈ?++σλ‡>™ιBΌ5΄6;ο j[ωrŸ+΄6±>*+5Σ,sΦ>Vθυ!?ΰqOηB—Ϋ€^ϊ3‹όΓώͺ�¬ˆ!‘ZDk|e?w_ kš\$υwg=±γ¨όaθRzPέN3‡|Ήωτψ]_€Φφ½ΛΠ‘zD F@½ƒIέjt)½-ψς1œCnΧZ :ξΩ[žΩσΡ‚θΟΫw)½ Hd5ΚΘE΄6�$΄>ρ€/|’‘m]Κ³Π₯τΆ°qΪd B΄`~΄Ώ%αZνXzΛΤc2Πb[~Δ?gSΊΥθRzPCώ{©θJ h ΜπJΡ–}ϊε†/Β’5’…’«άΡ΄n-Ί”ή”αƒΊφ΄•«A,Z|ΎL\+Χ‚ςωw:ή₯τMΐQ½žHΓοq6-8Ž /ήΈSNcο”DooDήμ=F[9Σt(‚΄F°B Ξ―ο’ݏ"’·Ίώ ΎΨW–ξυrΧΔώOΝasԚHDV‡Γ²μΐe’͝O@WŸΎh­Φ;λgϊšνχΦ6Ύί›όyι½›ΟΩ…"RΤ8₯Qšg4ΛΊͺ¬ ‡εuu;ί4œ]–Ύ¬kŠŒρε(₯Θ]dRψb e~?3?«ΫiΧSuE ›€ΦΪXX†άχΒ4ΏΥLνΣ΅„›Β„C‘Πaϊπ²„y[±ΣΆΦν„‚<{ίΎ;Μ‡δ DƒQ,,Δ~£o§D—{ίŸk^„ˆί„CΜXUʌοϊΰ¬–ŸΩcζ¨M—Π9Ρ₯τ6 ΅&²$ς<Dn―§YkD)Μ<ΕΤ΅x₯zӟθގ¦σ‡ Kιm@)•γ—gXuζ= ^²A‹ ­uϋfbv=Zύρ fMψ Ω#@Γ!tƒF‹π?₯Υίσ{όυ±§mJqΞβοgμhZ·]Ρ{ˆ+>kΆr‡es[[1žmfΐΕ i7σεNΨ©δΨeιι‘QόeΤ―‘ζΧΩΌ_ΧρόάοΪΪΉ\|—Σ@‡t/£Πΐ?r %mB°ί”™±ΎŒΧk`:‘LρMΩΈ£iήμTni{aI}λšβGZzΥ\WΫ†E˜QΣΓ>ΚΓs|G Bζ7AφΉ£’?L?f§‘εNCθφ‚ΦΪXcšΦκh”όάUξυ(QΜ¬(SΎοG«₯iњVη­6΅‘Ϋν—μΧ°Iίbt)= ’₯ *ΩΈ8¦Y„έŠͺ!%ˆΣF„W^@Υ°LZMM³ΦΌ7xπN!ΟiΨ$TŸU}vtYλξˆ κza­2Ωgκ„~܊ς–'4„e¦¦+KBδ»Θ½‘!ϊ¬F°wImνg0³¦Œ―ξ+N‰ά½ž-{vΣϋλvt)= ΏΞF’Άjχ(ZC―ϋšνθ¨:-ikσΊ‘DKUκπ­JVmͺμΞ‚’Ϊ^> ΕΈ³Ό‰ξυ(Qζύ§U#3hI>gUkš|B$hbT‡xο†uz™vz·'6Ά,28(B¨Φbΰ j�LL"DμΟ\“―ΪΕ>>ΫΊyŽε4>©;jΑ™ΟΪ±œl]Jχ`‹€‘ΉŸmΑ–}&ϊή%ΥD­ΤσTiΨPw“Ω—υbΑ/»³1[1`ρ !ZšΈν +b±$c‰�¬n,£Υ±`ZΠVΌ‚Θ&Υυ6„s"η(Fηuͺ@Ξ²,Š‹‹wȞ1‹ϊ,ΪΥ ΜΚ VψڌMΏ h˜Ύ~�oL€‘΅ ŸθϋΡ۝­@§΄τ~ύϊΉΰ‚ΥKηΟWϊw²Οlllϊχ9±hkπYK0š™»οd³λzΪVοn±ώ»Ν ‡ΧqΐΝ+‰εφωŽΕ_Β%RΆΠI•ξ W―^9gœ±Ά₯ Ά ρ·ί*^=ΊΊ ΄χζ~Ÿ·%*Bnή*Όb‰ΕTQήXΫ/υν4Gi;Ϋΐ~ΎΛ.*°OJήtj₯;X΅j•qυΥ¬έw_ΚJ₯Ÿ~Ϊwskkλ„m9K][Β—αV‰Δ”Ω}Ÿjό+μ'iΙύw$;Κ ίμJ³Οcω± ―UkWι½ζΤώξΉ‡ΈΝΜw�v ₯;0M“‘#ύΡγO>uλO<ψΏ¦¦ζ‹·fΘo²Ώ£–;-ψhwwψΥ‚°WaU‚g1‹kΉ6ν}ϋv?Œ³‹.$°Ά ‹+ΉR\ύυY·ήzkˆδ$ŸέVXXΈGCCΓβvΠb§Rz( ##ƒAƒ|uηœ#Εm₯†x챬ίxγ„3―ΎϊΪ6W:,b‘½«w¬][–θ²ΓΒ3}Nβcυ1‘Pˆ@ r螣ψξέ»ΣPίΐίω;Q’\ΈφΡhτή>ψ€C=4ν1ΪUUUτλΧ₯Τ›"RΎΝBΪlw₯gff~tκ©ΡCŠ‹EgdΩΩ>_β6Ϋι6ψέ֝E †Ι“3ή=ϊ”ςηŸΑiΖ7|c)ΞY―ΛjzτΫϋœβb"‘~Ώ?νΡΪvΩ‰Κ7 ƒ[Έ…ΣΏ8AΓ₯α%υˆNΣ4‰y§ΧΙ΅τ’’’!ϋξ[·tδΘχjΨύχ³π½Υ­ϋω²W€Gρ�{°‡{ζ*€WV[ΧϊφνΛρ½/γΑΩ—‘™™™ΆKH—Χ0 "‘ˆκΘMŠ;{‡ΓNΎμ²Πω™™ν_ΎΦΨ£j5¬X‹Ώ…βsκyη°ο!‡2hL6Re’PμΑφŠWR’ΞN瓏⬬¬€wοή »U'Ω™œ_)…išͺ£Άο4Jχ"‰0pΰΐ’β⡫ƍΣ9θς Γώ½v-,_«VΒΘ½αˆΓμ“φ�CrζxΌη°Hό4‡u`φΏΖώ ΛιΗΞΙߝJ«U€G9¦i’““ƒišτκΥ‹κκj7Mr―”" ‘™™‰ΦšύφۏoΏύ–ργΗsέuΧ%δρΦΣ离4vD‘νΣ4ΙΟΟΏ­΅΅υ*ΐ8xxηQΘ3bGoxNRr‘|‹I纈ΐΚ5πψψυ_ΣΪ8Π‡Ÿ\ZJ8l,›l•'œpo½υV ½UUUτιΣ'εϊϋοΏOii)χί?=”z.’χΘn/ΚΛΛ9ε”S|]tQ»/΅νTJίc=ϊ,^ΌΈRDŒΛΟ†Ώ^²ωyβύJό(-οy-βQΈχŒ–΅uπβtxo>ά6s ž)β–w―fΚ£ΊVšάž —Λ/ΏœcŽ9€—^z‰ΗάMλEΊ�°W―^<σΜ3�nΙ^%-ΛΚ݌Άͺ’yψaβκκΘΖ˜A:όσ3{μ±°ˆ°τ Ψ₯t‰½φžΔDbλMwv©Yii…‹α½πνJψ姏σσΊs]E{0xπ`V¬XΐΤ©SSΕqΗ‡Σ{ƒΆdΉN›6-!MyyyΪψ –―έ ΣΠ.ΊΘά}$CƏG²²2ώάΡ<bΜΎΘ―}4lΝτΌψ‰Μ;,ιΟQ²χ;@°τΖXΑρΌ^wξώN$deΒƒΰθα0κ�ψτ€sӞ‰ξΠΌrεJ�FŽιήσφϋ΅΅΅)Ό*₯Έδ’K°ζΩηΚ{(Œ;–κκj7_KK‹W.ξ_Ϟ=·L [ ΓϋΓ0ΰšk"wMšδ“sΞQVώύϊΆgeZk”Ru>ŸsžŒΣσΰΨ}cJι3Ι=鉏׽ʣ4Χjr r²ΪΊυx”aΜ½ϋ θ–{ν£‚γsΚLŒΪeά{―½ΥŒ€%#YINΏώυ―Q†MΣΫχΩωϊ{ƎΛoΌAnnn‚gpς]tΡEθΨ޴퉴])0@ŒsΟ­¬œ0ΩcΥΊ­Φοσωfψ C¬O₯Ψϊ”ΖΎΔώ3zOL™˜QΣwzτ„’Ό<>Z”˜7αl΅ώw"*±A\yΏ}vzv. ώμ;΄mϊE„K/½°§»ŸόέQb]]]Ό‘Ζκξk[ώνΏ{�Γ0XΊtiJ¦i¦ŒγΫΖκΥ›ξ2”‚ΣN“¬›nςΙ€IˆRκ)'²έf�šk­ηΕϋXηhh`AΜ₯=ωΐψ=oΪ4Ÿ�ͺψWξχCNΈσή~^†Υ e7ΕM_ΰž§ΰτγ!s„}vzAn’‹΅ωW Ώ΅Φόόη?O°H­5cǎMΘ—Ÿβξ»οF,›.§«qψΘU saώk»ΉθΤχΠCΡ‡ ‹Ιͺ5L˜ Ώ½νΆLΉβ €¨¨`ψ¦€aŸο>`cXζί±lγΫ.ώˆ gξ¬DKNvσx¬Uψ‹pΤ«L35hsσΨaό;KŽΰΓ%pτˆψψ_)P>'�Œ+4έM8f̘1”——S^^ΞΨ±cέtι,ώύχί‡n<νΞαOΑιGΪ–o•••ˆ6lΨRΥ€Ε€ίτ}©ο―{ί•μ-ό ΕίΑ†![UZ#ΐε—7Ξ½υΦLFRf^^yφλ―Ώξ=!Vκζh c³‰Ε¦™[—Μ!$χΎξ‘ΩήίΔϋι„όxB\o‚)Ϋ|μΥοpΔ™ποΫΰ©©πΠ΅v²OΎ‚Ο§@MM ₯₯₯iϋu›–ΔΟδF‘ά?{»Pgψ¨ΔΓ±‡1™‡ŸΤŸ}½Γ0j½Σΐ[ŠώΏ)λŸ“™½JbRΩύό]lZ¦ςϋμ‘…ρΕ^ίκRφκΨΚ8ϊhρtΠλъ €ΈΨ zpŸ0\ςΈvε\{Ξ[‘Ϊ|οΖuΧ«χ6–Ζ2ΨudΈ»R°ΰ»8―�Ε±E•k`ο2; Kηβ!QΑ.]I3wή|£FΒtN`φvižΚαΙ)αƒGaXχ‡‘ιι%Ρ6Ž»f΄ΏΈ8UfŽŸ@Fμ)‚Γ.ΨΓ%ά0 γ₯6KhjγΊ“½1υVCƒy˜ώΜΤ\=Φ팟ί.%Μ’ρK^Α$ϋn[P±†β6ϊmP˜Έdνγ/Š‹SžF$0νaψπΓτλΪz– ΗΚηΜ™ƒ²β|;tΉmΗ‘1n�όαψεqrzNNΞ°-ͺGΒlΤΥќ<?Ήω~rςdεψ\šΛΞθυ<€qβ‰cΫ^έ‘­ψdεϋ‰KΜΘΦΦΒ½ΧaΟy'•ΌΦ§~bΗbύΊ;‘β"IHnš@Ώ„ ž~φΕΔϊWŸwh<£Δ‰V€Inΐ˜αpΔ‡osδl†{ΞΊ;― β2pKOꎜ…›! ~Ή%u‰hδέa’S · @na€ά|?Ωy~2³νqyiIΡ―�Œόη₯MwΞφx^ε;OύΠOϊΐpΙ)qΒ½—B€“ί(”›ζ±ΗžHP΄Δ΅ ‰†.�έOEˆPΏ=ϊ«De;‰ΡΔ[›β„Γ›πY{Ί„Ο—Ϊy *ΖlypfατάΈ’½u8PΚζΝε7™?l:”R›/7xr–|u˜9™dηϊΙ)p,=¦τ†­Ν&χώχnŒΝ ^«lΕ‡= ( Ρ(,žW”Ϋo%{CsHρΈX9ΆβΟ+_oτΪλ&ώο₯B[H->;rWJΡ΄rBBo£σΆ:ap)X:©ŠXβ₯+pλyΠΏw&‡rHΚΔ‰SVς΅Ω³g» w*HŠ']ϊΨT‰τ$ [ENΠh­9π/»Φ?mE«YίΜ'„μ\?Ήωr dηωΙΚρ‘™ε#i―TylΖC0²²²6Δ lοθ5γάz+μΪƒDE§qΛ^% 2:DΦNˆ7σXš;ώ½Ž…σšΒ~GŸIe}ΒIY Vυxς3άbGNΔ«ϋΡǞNεO%ώΉ’ΐš·αƒ‡>A)Ε Aƒ°,+­ς/Ύψb ΓΐZ9ΚVΈβ ؜Qˆ$њΠ0=@έ8πΐϋ�άσέΖ ίφ[ΊϋyCεθ›χ—‚‚μ’ΜεsόάW—GVŽœ|?ΉqΧΘ4πg( +;pί©ΔUT“#(! ϋΙIjGθ(ΠΫ'κ$AώΙ?D4ί―]Oy0ξ™=VpΝ`v˚ΗτηΕ³ (5­α»ο࣏ Ψg–Γž{›υσ»‚΅€σΗ,O`‘€Π~φξm(β±:πYΆΥ‹¬βΥΙΞ»šmό>8ύg»ςΔυKxΰR½βKΆκΨoΞ΅]ΔΚΠ†F«φ΅oΞ}”ξ₯ωψ|*€Ω(Y9~|EvžŸO!α …? πϋνB³23μz+*t»hN¦”DŽ<œ½?¦{{™NH·QŽ7_B Χ=Y©ͺ·"φ3̟SΖΫUžy#Ίτ뿏ήφ>»Αnύ“ž¨“%4‰ρ†GΉ’&ί3ίυΰ±ozΕΛT0ύX…D’|Ώ¦…?Υ–bψœΩB»¬’’L”a2 jΓ4ΤDbŸφχ^rμ±Ο)ΣΙq·ΒF₯pγڊM3Ά%!η^Β„ q8n5 nύίRn™Z“Jγΐδ8ΰ€Έkύη$0Fΐ ·CS0ΡΊ>_W:ΊQ‡$]Oξ]χ”>M·Σp’ώΌVYŠίX=ŠΌΒ] ”R™Ά-φΛΦdηωcΚVn—jΔτhYθ8οŽ.”RΆλλi$ήLM6™CΨeΠ>0<BΪ!m’λςΆ|Ο‡+!₯@ΊŸΞŠΕΡθ<Άn€‰ύh5 @Ε#PqAbέ’’ΡσΣ±$7ν|ο}ό—6ΪK³”‚Ό^YzΡdχΜζΕ½‚H(Β™+‹@A·b\Ηaε*ώΥΥ­ŒΙlαό–~dfۚžάm=ί6 —^ˆ@4lΡΪlbψ‘Ζ25–%8ρΊˆΨJ_Ύ\τώϋaΠ‚;ΊIΫ$Ϋ”"το%GBέΜΉ₯~Rίοzy―HŽό₯<zΧIά4y^Κξ�τό ΑοΒ8Π~ΨςΝwq―ΰZ§£X#Ι1bΒ5Oίύ—σαΚ;λύΝΏ·ο+Εΐ€‰Ώ(³^Έ¬[O¨ž`Oy,ά.Q)x[eπΆUH~7»Qά›_‹/·€έi$Λ4Πk#ΆWπA$€‰„4fΔVΎ�Q3j―FZΉ2»δa»τ|Οg~§ιϊζ˜PφέέvU+IJ‹9ά| ά9h§1xgρœΐNΕΜξσy{±-Έλ.Ύ\θ5‘ϊOΰ΄kαωΫαΤ«γ οϋέI]Jσιάwς_qͺό…ΔσΥ}ΫH~· ς»ؐŸM΄Ά έζ?έΚΘοˆύexΎΫΏ ’~;ί7˜ #&’…ΜœΨΈ<ίOKS”–F“`³I8h k’š[ƒΊ_«¨ΰΔ΄’ ’₯λ―“‚ΊŠ{lfχ¨W©’’z\arλH1ζήqZϋΔGΖ§%3ή|ΖWό"MWΣ{(‘1ζ©Ι·ςΗΫΰ…;lΕ?›MίiΗyθIκ»“ωpyMF,aΘžžΞΧ‚±#ˆ{ΑΨgΤ€¬αF£ΦΊΠIkι>#ƒ7ͺ)š΅ώŸ7Zαμ+|J»³β›&jΒ(Ca™šPΠ"ΨdάΕηW|ρΠ"εΘΘΘψDR•.Δ§YΫRΈσ»VQjxLρΦ&—'Ι_<­Γυʞ’}λe8ώ©‚±—DΟ€Œ9W‘©aό‰mΔ•pYY\2v ǝ ΉΖ9Š'ξmHκ’’ωHŽΎέ:œψ{ΕLΰ {bȁžορ"{·ΛΙ8� p�ŸaOH”—]Π�\ϋγŠ‡φΙσUedDB¦)hS‡,B-"PΨ=Ÿα³ϋτγŽ;φU˜–*ΙfΟχ|ΟwηA‹Cl _&N΄οΞJ₯Œ«Μ€:“’ΏΨmύoΎ\ΑΑ€©ZΓ}χΒ’ΉΧS’›α>XX·h<= γ–˜2ηΰΒΎψθ”Ξ?9ˆžƁ6έώƒα—ε`xF-ιΖΫ›―ƒ/i~ Χ< >˜x> γΩf|Ημkw‘Ύ@k­Άt±κ=|T ¨λŽYΏΊ΅€±ΊΛ²;3*δϊ £# ΆΒψΥW§„RJi&ή§{ξ}ψ’K|XW€;O―5”–ϊ#<}ΌwΨΰΘΖ+D―yLIŠΟD>Μ58αϋF?Œ'Γ†Έ w²yB Oμ>Ξ τŽέ³'0νq„}_pXŸ‚azθk#k³•Πλ%δ»ν"[αΚc�ǝLί„€-VΈ·ξ7½t—ύςφΟ- ZˆF4…%h­YψχoηAμΙ΅iš©ΉσΪ(ΥkέΙ·όπθdU]U%eNΏΰ;€¦# oφ#ρ1£J ΧR’OPw?ʊ?bW Ξ9ΛrgEπλΈΠ“γ ϋobίνΕ‘`8Ρb=4$Œ4’Fιšΐ7—·4uψb«x.ΉΙ_ζ›©έr<8ϊύ…o-˜ζ»αΉ«’†Ouuσ–=Z9ΒΉοΘΚΚ[Xb)o ˆΐ3Ο¨ΪeΛ¬‰SZgώgίζf¨α-αΣa`aά­§rI]½ΆΜšsΫ±"WρρΒζ}ώ%#zΔ+w»Oβˏ ν»‘ Έ‰Σ—ΙΧΪκ‘κpΨH“8ΉΌΧ>Ai­-_{½{pόcΫ|-Κ­a‹ΗΏI4=χœj?ήRί}'₯mάΤ.Ηεj¬nΐνΣγ+`HŽEψ=Αmfξr%ΒπIιZ½sωv^I°ήŸe¦Έbο"οƒ’€žju€z²tu΄ όμb…ˆ΄›Β7·–-\βbΚΉρFK-Y"έΆt ­υ›€Ϊ₯<p¬1*žˆΥM§G²*ω·$¦WΕΏtGͺ&xγFήάμˆ•;}Φ yάΆζQ’w‰Σ±Γ¨ Ά€ŽΔ²Υ±!9#@$Εt(\₯oI#7ήPzΒQŸ}&™?tΗ§h4:PƒG<ι󀴡!'ΊΑ“η·»n]<žΙΘbck©O¦gaDœθx ίρ»Ϋ[)™άGžIω�¦?Ÿ=,M >κHιθυ(9œ ©ν§ΓαVxύυΘ¦φκ™=σ7"ŽzY>//―oKKΛ*DŒή§"Α‡Ά%OΜ”ψΓγKέ7\ˆ― ΥσB647Σm㝩ώ8VWΊ�Ly` ‡ƒχ‹ηOΘCjΩσWˆq››;΄₯₯eY;‰o«ΰ;­¬Dœϊ’θ§Ÿ’§NΥ>Γ0θΘέš››W <tg AΏύHk}‘ΰΥαΔƒA9cΪ€Θέ…Σoz£η€ΎcUψHŠWŒ§[&‰Šς›ξ™ΆΧ7;uΘ<Ππνk_{τV8§”ι±t_VΒώΏ°œ qή_ΫpY;θ Ә1¦;PϋςKxρΕ-ŸθHh­1 γ^ΰ2ηΪΥΑ-ΨvHtεμt ήξΑi›πβω’ΪhX|ί�O„Χη8 Dι‚‚‚_ξΏώ5kΦc†aό6F³αχϋ§0ΰ_ύυ7i4[—œ>Ώκ*φYΆ ύΤS–―£whάVD"£¨¨hH4½6žν΅ ₯ Γ{†FΒ!ΐΑ{BQ7?¨(`‚… ­Qh ΓΖhl‚Ε+α“/ΰγω°δϋψJα<žΌρ΄ΣN»οΉηžkμμ2j σςr―ϋΓώpϋwή΅s2Γ΅Χ^γ‡o€™4ΪV<π€oαΊu‘ύwV%'c»GŽν Σ49ϋlΏ ΩΊ³6 ˜1C™3gFΫ²egΕN­τQ£°Ž>:ύ%"φnR_~©τ[o —_Ύω―kkαα‡ύϋ›¦Ή°ύ©ν<Ψι”΅fθPΝYgι§―­©AO™’šύώ~—Ύψβž=ΰ€΅γг³yοκ«iσœsΓ€ΫoΟΈ³±1xuGmαΥΩ°S)=++kJVV`ΟΈgυκͺ`vvφ&ΣχοOΝΉηR’ξή#ψ—UUE‡nι»i?&όh9>κ(δΘ#γΏEΰΣOaψπ|7έtσN¬Ά~”J?χ\€μ„΄ΦVxθ‘όc›ήέ±Tu‘ΓpυΥΘΔ‰HvΆρDGμΧ…N­5C†k^}λχXψ©αGιή»°ύ ΪBφHI―Ÿ!f *ΈhCKύHΤl”hx–Xώ«³^΅d“ϋ“ΕŽ˜…ϊΞ5ž ¬�� �IDATΕG7Ι_ˆ,:DDΗφN^ϋLݎΚ.€h³!*ΓΐΘ*•±Δkδ"Bӣݍt[ΧπΧΜ_ν0F~Bθ2τ.lτΧχ§ώ%‹^Wε‘ ”‘U“μ‰ΜžΏ I€ΩΈ�Z Zhk$sμwW'bEΑηΛ�ιadg<Ώρώ+²bzW[μ@ό4fš»ΠnPYCφ‘Μ!(«17 DΠuSκEGσΑ4ώLγ+1°,ΫΠUήHΓH|LΩτDqT�Ρ΄F,1ZžΩkΐΨΓՏ]^΄ [#χ+$Ѝ P>D Šœ<=oΏ«”ah όPBλ@ΡZgω:a ­5 ΅-Δ4έ²£Xϊ) ΛΠ»°uπ+UΣ{&Ύ\”ΏΤξ΅΅ dήaΞ4ΞΘ?ψxΒ΅ˆD"ρ7~΅Φ4O.xΓ_μμ…#ΪvE7F;ε‘΄?tzΆ Κπ#ω#³Uύ$c{1Ή‚«όuνΜw$΄α]΄ΪΒ025€Ž4|¦d£ΚΘΌH΄kΰ 5ΊΙxgXdcFΧγ΅.ό h³‰†h1-Δ΄ΐ΄Π±O1-tΛ†k1ςnΓΤnš„Ώ 9΅Ϋ΅Ρ“v4??vtzΆ ζGŽFΟHkĎΑGΣίΣΝΦΣΕΧ†·£yψ) ΛΠ»Π.ˆΞ(ϋ¨‚g↬ΣSΫ†ny >d7ΊνΪ3·Ÿνh²2θ2τ.΄Dk#ϊΕcτκΎ&ή>j!‘Φ/Θ<"7ŸGv4]θB~ D-Λ`k΄*‘κhDΎ_–κίWΙ’ξ‹dAΞ‚#v4?etMuv‘½PPwKν_{Tγ7”B ψŠ­χw§ϊΛ>dϊ³—ŒZ’΅£‰ό©’ke\Ά"’a3τ Œσ―²P«4ΝϊΡ9Š ₯θ[œΙΚώ,ŠDZt±φΎώe{£ΛΠ»°MϊWU†fvοε9yσMD ‘"…ήΛΟΰŒ Β`άZΉ~•Άτ€.c߾蚌λΒ6ADŠΎin_œιμ 9ŸFQ(D VƒExi˜Πβ‘uΒMQ¦ίSΐκnrσ]»υ½qGΣώSB—‘wαCD2ͺΦ…~+έŒΙ™±γS4˜ΑšBΣ›M„–…0ƒ&–Xh4φgΖ^ωΓΏήΌΉ:ΊΠ>θ2τ.ό ˆˆΠΏφζΪό±ΙQX"4kΝΚH„Υ¦I0lqȁk1ͺΝ#·°°”Ε‘#”θ α·Ί ½ ?Zλ‚u—¬ϋ χΨάaΎ–!Tβgy$ΜzΛ",BT„ˆΦDΑώn@—šΨη†υ¨Z“¨?Z}TλQe]Ζήρθ2τ.l5DΔ_χaσί7ζ”ΐ �b α/Β4>ΫHSΘδӏ»ΥbΈΦDE\cwbχΜzσφΙ{Όv³τ£G—‘wa« "ˆH―οΜȚBε#cAsN+ŸήHψ«0bΩ;rj4Ρ"Νμw{ΠάΗ ŠN0φ`Ɯΐ>ίκ²?ŽP½Cϋ‘£ΛΠ»°U‘gοΜγ€(ξώξžcοX–EAΠ ‚xkΌ5ΔσρŽ>1ρgβHŒ1yŒζρxbŒIŒΖϋŠβ ˆ€ Š —Θ}»,{ΝΞτQυϋ£§gzfgv—sϊΓk™ξκκϊVUχ§ΎίͺϊVutICΛ[e…‘ΡΠΰ8¬°,Š.¬‘δ₯™όηυΙ3Ž…ƒc8l>0Δ7g³μδΆτ1ψ{u/aKUw’θ0€”šΉΔΨόzσB.+‘9ͺXiYl²νTŸάnQŒάk=ΜCto0Ξw.‘˜Β\qjόΤ½΄H@φ VtJ)’΄φw΅Ÿ…φ ‘ΏƒΣΎ₯ε“8€¦Φœ(L]WΝϋ›zπN]o6žM}¬Z‘ΘŒs΄ώ/Ύtv§p7G ΡtRJ£fBΝΕ‘Ύ‘GE‘ ιω&šήnB5Ή€΅ϊ >W…mΛΦo©Α7…©}^ǐ‰‰΄^χŽzί+2όŸΓƒn;Ρ΄‹δ�\Υ*ΛϊΆ@7o¦εΡzœzΗυ‚C₯~%§H2mV±* “€χΊg7 q₯Μ7ϋτ‹θF`lξHDΠ.”RαeίΆό»¨8‘ΑqXoΫΔ€€πoΝtE}:žGtœ¬~ΉCύP™ͺ’v`ΫVXψ¦ά€ΜhΤΊψ?ί9b :­ΐ»!’hž6ίτ«Mί6L*c£cΣμ͍'§Ι,N―₯hj"ΡΫŒs�‡ΪΑ!VŽ,fω‘% ψ2^qσŒΪΩεί]=@›PREW³r±ΡΕθ›ΓΩd³fiOέ„KtΏ)ž<ξς\3―ή„£TN²·ΥψlXh ΏC=@›X2£ώ�ρ“ δf‰Σθd\“έ5ζ/θŽ₯§Mπμ>·© όM‚Γ΄}­Υ!‚{ΧβαψŒKΜKŽθœ’ο^ˆ /€T|)[Aθ†ΝDr›ωί�Μ}­‚šΓΒXΚGx|ΔΟς{Χjmxp=ύώ]Kxm•’»Gϊx—–\Q{εΜΞͺƒέΡδŜ?₯H{2=h¦Πίl‘ΫΈ²_l¬pXώ³b>MSf Ό₯Θξσ7 €GδMσφήGθ"xU·AνΘ ιHŽ^βoU»#δI¦V£‘θΒ& fΩyGΫs™γJwX{LŸ\_Ε·C άF ί’—d# νUσ† κ VΉm3’Θ‰―JΎΊY4Š»�ΜρlωK—ά„L†υœ΄…χ5ΰ΄ΣΟηΫή@]KEΛ±ΧΦ];₯skεϋ‹€θZAΪR[Zμ$»ΰ)¨"Εςυ½±}}n°=3<i‚›:τΏk3ύX‹½dn+L Εe‰Λ„Φ;£JΎχˆή€”TTTή£GΓ‡ž:UŸ^_οάkΫφ«J) НΗ/G/{BŸš8_d½ή @ό`vΓvςxΌω΄Ώ© a(Ί½ΫΘ‘Χ―ΖXoΆr}νΘH|‚ΔΊŸΗήKdίZDίJH)8p@Χ¦¦]z©3Π0@pXΈPπα‡Ϊ’M›œ{FŒώμΗό;Ž##‘Hgg»ΓhY“Π–T8–Biϊε5OΕZΕρήx[tkΞ+Lo8‘š^Λγώš:wΊB5;D6˜”-k’pE αΝ P’ζς[ϊGωφ€RPœόΙθƒήά΅΅ςύG@τν„”’cŽk̞=γο\`ύΈGΜ*iώκ:,]*˜:Ul\ΉRώaΨ°Cώ1{φ'5–eΙ‚‚‚ΞΘzNΜ]Χ8M+ӎT€ ˜J!WΩtΌ.U?ςia»\1λρξ¬?’�ΫRzΩσνfžFΐΝE9½΄G¨²{ρngIνLDί RR\\|υθΡ-ώΰ*'AόP B!XΉRπα‡Δ–,Q;dΘA~φٜ5J)‡wIΎΧŒ_clQΆε<^…Bε\~+N―q΅œGοˆΙνΕ[Μbζρ9«‹Χ3o΄BD‰τθAρ!|0z$βq,αzέeΈη( œˆFhyγ’Ϗ²ŸΚmΒ' �-ΛΣN;mίΙ“'WF£ΡςX,Φtκ©§6θΊώΥσΟ?”ς{emm’οΨΆM(9x0― Ηi?”Γ€ 3fˆΨ_¨§†~ΧGΝX …vˆf“¦daρΒ/„)†rXˆ¦i=r{»‘Τʎbπθo -4SdΧΠΈŒΛ˜Γ�„\uΥU\{ν΅ 8!BT²υB ₯€ΉΉ™wί}—I“&ρω矣”BCγjζ�h=8ΧKνΓΪI))--½ͺΉΉωOJ) °°λ»ŽSO=•‘C‡FSς€”,Y²„χίŸx€₯K—¦…B‘§‰ΔyΪnΈΣΝCτx<ξj�αpMΣδΚ•Λ΅ϊϊz­₯₯E»ψβKŒU«ViΝΝΝF2žΦ₯K—h·n]+ +C!£rφμΟJ•R…α°^\^^ZVRRTΈvνκRM£R*… \Χ),.֍ΒB.*Βšα8f8Β((ΐ((@‹F%ƒ)š0c†Ÿ7OLξΧoΏIwά1aήΉηŽ“’Ξ&oςfa_ϊ6KOA±ωρJΟ.L›ίYoΛΏψ‚»=€;οΌ“[o½pIμζO₯ΘέΦ―?wΌyσfΘζΝ›©’Š›ΈΙ%:ŠΈ#F0eΚŠŠŠΆY†—W)%·ήz+wί}7�%%%g466ΎΊ#žQgc Ί“T‘ΥΥΥα––ζk{χΆ;ΦͺξΡΓDΫݝΌƒRπΡGΒώβ mΊat½«ΌΌβƒE‹I ΌpKΣRyumo-9ψζpKŸCÏ ψζΡrΧ|0›Vδ»ξ⦛nj—h²ΟύΘWeY”——‹Εψό?†œ0„s_>Χk΄ΫL§£2όΏϊΧΏ8οΌσ�šnΉε–²»ξΊλ{;.°›ΏβƒmΫhšFaaα…UUΦΔ±cώϋξ Ά½ϋ7μώ&­‚9sυΛβG ΰXŽΝŒ—œX?Ÿσ™Γ¦NΚQG•W[Ά/·uά|Ϊ6;ΌͺͺŠššζΟ_HϞέ)**Β0ŒV„ίήq}}=εεε�1 ¨C…ϋŽax·–eρΟ>ΑύΧu'·ά?j”5πΰƒ¦Ήs?ω„p뀄xjj`Σ&¨―wcMΠ§+τιUΥpΠ�θΧ*»C2¨LΎšJ‚ξ―#‘)k6‚<ξ[DaIJΆ“2ΛΪΏcTόΤυm1ˆ#F0kΦ, S;vT£η"_[χδ“±eΛ***8ςΘ#yε•W())Α0ŒT<ΏΌΆdu΄χί?Χ]wš¦‘RNݞ绫};ΰ8oΌ1™qγΖλΪ5|_ίΎ[FΧΦBm-Δb`Y`™ξΤΪή½αόΣαάγ w5I“ZπΏ‡Ι―‘ AΪ1Ν;W€ž˜ΐwžό*yH{χ§nJž',ΨΈ|Ÿ.„cŸ‹βEGBԝVΛπmWŠΊωΙ€ΌυΦ[όρnrm˜Η©β$γLœ8‘‰'Ά7‰°nέ:*++s0Βα0ΊSWWG4EΑΫoΏΝI'Τζ½γƍγ駟ήͺrX–E$AΧυ‡ZZZΩU3"Ϋ‹€θ€eYŒ7.όφΫo_‹Εώ�”Ί»’BU%ότ4Έα? ΊRsBΒGΖ¬σ7“΅ογo ‰ύ„M«ΦχfΗΙ‹JψN^P &l¬ƒωΛ\’/Yλ5ώτρBœ5κgχΐJz½ ]ηΨ’"^yεN;ν΄6Νάl<τΠC\sΝ5[Sέ€Ϋˆz#τνΙHz(·o_ξΉηƏΏU²ϊχοΟ7ί|S†ΏΡ0M“H$B4ύE<`«„uD8,κu=ϊ󦦦θϊžνZhΫ6 θ½vνΪΗMΣ<\B w_c†ΨJ“=›ΔΚ§­³Ι¨ΤV€₯Ν3ΏElXπ5 (Χtoh‚ΥaΡ X²5γλ 1œρB TDrJXΎ|Ή+#ι›.£{ν‰'žΰΒ /l•υ^½zρ—Ώό)smyχŸ|ςΙνΚπŸwdZμΙ'Ÿ€¬¬,g9N9ε”vexηοΎϋ.Η<W_}΅ώΠC}ηιDοήέ^ΊτMgz¦‘ΓόωπKβω}φΩοΌ… š\ωΎ ‘HΠΤΤDŸ>}~άς¨RͺXψΑAπΔοa―iz2΅¨δjΕlR„diXίυί@UαWt-ρYΨΩ¦Ίžd`Ά•Π*rcαφΣmš[`ΣX· Φn„ ΅P³Ά4BS θ›ϋρχ™+©««£ΌΌΌ]7•Ε€–ΝŽ?yςδΌid7Γ‡§ͺͺͺM9~?xπ`V|³Ίπ»ΏΓ€u4€#F0i$lΫΞΫ?ζ˜cΘε@“oΰ.‰ ”šiΫφ:T)Q]έύμ+―όφ…φΈ‹Α³ΟŠ εγ7mͺωΐΆνœ•ς]„RŠκκκͺ7~¬”Ϊΰ¬cαŸχ@§E= γo―6sΡρ‹ΡΌi)$Ξυ›–ΣNΌΪΧ;Q½&!pΏ>ϊΥGw0tŸΜΖ&%ƒα^ώ~ΊBdΕ!έxI ¦ ±846»ίάΰώni„Η }!R¦tΑ5WFλΑ―^½z±~ύϊTψΣO?Mqqq»χyαΗw‘P(oάlΒ>υΤSœwήy¨9€ΜκΦhπt8οWO€λάx㍌5*•ζI'”a΄Χ=ΉόςΛyμ±ΗˆΕbzAAΑwZ«‹‚‚‚ž·ά²ΦΞγXά ¦L̚ύο“N:ι–gžyΞτF=;½zυ*_·nέB₯T΅‘ΓΛΒ)‡¦΅*δQv=&ΉsΖž~ώߌυI«ΈώΑ²Vi¨Θ λ%$=oΝx‘ži2η6³΅&χ§›«―¬Ω½»ΆΞc«q�Ϊ‘Π£+¬žμϊάράύ˜ςΠ―~||ΊP€|ς9dχΫ½p8Bήxγ μδ‹–Ο™ΕCii)GqD»2ό²ζϟϐ!C°>]Ά]W(ˆλ0r<Μ_κ†?ρΔήΌyήFΕίΈάύός—Ώ”ρx\+=­©©iCK ΫΤΩ6Œ­Έα†–wΠA/%~σCέqκͺ«PUUΖά>}ϊμλl­Ώη6ΒΆmt]Ώχ9ͺΛΞZ[η|’ͺΥ§`Ξ‚κΖKυ[=φ(ί‹ �_UŒ?ηTœžwRΧ➠•&‹_ωΒRZ³-^Ώω]v|«ςœ{Φ)ΌΉΰΈŒFB$΅±'/γ}χΙκ=t"τžΔΓ/¦§|ύyP†Kr€Ή4'ώά%ω­—ύ wŒωWή΄ΆmΛ%ϋ\JΙ AƒPJ1}ϊτŒΆμ_GqG‘{OΘ|έH!S¦LAΠiΏ„€¨σžυ ΘO`L― (ˆjhšΖΰΑƒScΉς+„`ξάΉ�š”ς;ο3+�Ξ9uΠA;OˆR‰ψϊλΔ,ί0rδa|ψα‡r{}Š•R\Η ˜σ ιEΊOμ3mS„Ιξs+ŸΦ+<ΚOO^)-`J λο δΕσ₯»Υ2|ωOiΪ^“p˜Lυ¬”βΕ§ξ䜣Μώu:f:Ύ—`¨ͺλε©|9šΖϊy·»ΒUK“όΉ{άΌΎρ1<ώ άt12Θ ϋΡq B  σηΟg°Οg·-³6Χ9ΐƍyφΩgΩ{ο½34€”’}φΩ‡AƒεM§#2JJJ(5³ρRmΦ™ ΅ΧEC­ΓgΓβ0hΠ ,XΠΚ¬Ov+¦8Ž“ιYτ„0M“‘C£ΦψρrηΪάή{μ«`Mƒ%KoΌz³  λEΛ—―ΨΨ‘yΙύχί?ΌpαΒz ϊκƒpκΘ¬Ύ2­ΝγΆϊΩߞn?ٟ€kΖ ž}ξ%Ζ1wϋedυλQͺη„τK›"Ή›ξ”©3;`r«)΄VSg^ͺoDι…n9 ιΈ ŸLΉƒάϋφ=ΎY Οώ.ωh”k’οΧξΌ2Ώ€’8h<,^i`šξ'ΡrM―ε χε2Ώ½ψΩq²γuTΖτιΣ=z4[fA™ήΑΊς=?―κρž§HZAΒέ ²ςHwΰςψηŸ>O<ρ]t?ό°ώ³Ÿύl—υϏό―#Ίn¬ί°VΣ΄QΌ24Ηc¬~rνΨ\χ €²²Π+Χ]gΎΣsِό$r@)·―ψΜ3’iεJc|KK|²oΪo_`i$-³p½Ό|Κξ“ωUhκ!ϋ5£――Ρλ@kM^`sS•MΏOYφΫ,Γ―I¨²ΣE#άθ©6&ιl*σΎZȐς₯Ν2e₯΄wk’?')Y¦�±ξvjcΠs4Ί?ό*9σuανΝsχΈ€χΜKφ*τ0dθPζΝ›·μf9?©σϋγ·…|χxσΪΌ ώλμΜG·ςΙΘΎ'«%ψΒζž†Γα³LΣ|Ήνw O.,έ»ŸzοEr…ςš—¬χ0nΕ7,NJB€§Λ“+ΉΚ^Κ3₯™Ή»iC—τ9d αςwž*ΎωfλυI“tuΗn―6f©œρI9¦€œH ώΦ\ˆ4Ρ”/nFφP0₯4οrfž²Ž·Y†/,•ο’‘iΒ O0sΪ΄ŒBxI­γ5rΰšνΚ%€Rn&]r(ΒJρτδγ~αF½ν2χήHΘ%ωi-ηυo5 š’~ΞgπΕ_°Ο>ϋ$ΣW)βu”΄ΉϊηώψΩγ�‘QSSC$αΦ«ΰΊsΟ’έΊRξ±ΧyΘkP]€Lyχώ§ΫŸΏγj0Mσ₯H$r{«‚ξ@ΨŽΝ€ΨΫ|@ϊ‚"‚b‚bƒ’’Ε‘¨†ςi8…Υϋ_6Hέϊ·›RVΊpΤQ£¦ϋf1:΄ΰΆ‘Ž_#“5Ν@SώθJΑίώwά[fBΛ W‹Cϊ‘yψIŸggΩ{Έ©‘sοaVžΧ/φˆ"P©4ί}ύ-pΆS†J—K)Wc %3ˁ―Φu.ϊαšT₯ ΏLš]~βk(T²ΡI Aά)ηγ/ܐxςΓΔS>uΟ?9χ3xcj2_}Αν–εhš–=Ο˜ΛεΣξ‘8i³οΟΧΗΟ>?묳θΦ­ίΌ “.υΥ{Gκ ί«˜ύ³ž1d’`Β% ?…ΒΔD@υθΡc‡ΘI)yδ=Ώ8πΚύUuŸ"£ Ψ °Δ ¨4DQ‰Aa©AQ©Aa’πΡBέps)… ^žυ‚υά΄g4HύΕ_ύ:½\{+P�”βVFcΦ_.βg7&Ι(ega$hάβΎ`eFΙr £%Η§e}8%·ΥΉΜhΝ!Ή0S€…δ¬#ΏΨ2’χx•Ÿž’αEπΜK₯i¬™s Ιsu2Κ―§δ ŸͺςΦ——nΖ‘S”WΞλάίͺΚVΩL•―ΕJŸ―ϊ7ΤΞpύΛKKK}ρr/\ΙEφ|ΛσyΓyα―Ώώ:š¦QΏξeδ'ΠΏ’ ‘Ίς‚U&α³£§ž­ŸΉ�Ύ}^}Φ―_οD"‘σͺƒR2cΠ2gΦ0υ‡– ι»OE>’—–†(,qΓ J —θE.ΩCa·½ql… &όλζMŽt\’›¦Ι7߈mP(²‡ς<Β7ΰjmd³ωtΩ•‚;ο„žέ`Σ;™œΡΕw͟€J?hα3{SidΗ/žΟ5_έΥΨ–”4/OΈwD}οζ±Χ"©RJ֟†Q|X:-Ο€U0kξ<X{+}ΊϊςλΣ,M^„ϊ¦ς侈ξj3Ο|m2MΞ=Ξe¬ν³LΚ“ώ+q3myυλqρίψΚ& 2 κSXύnšζNGωW³e›θ~͞ξϋύιψ΅ϋ°aΓΠ4Ώής˜ς`²~TΪjκP]yΟΓ3η}Ηέ1_~ήΉWί§ ‡Ο_€D"ρe—.]φf+a;6ϋ]Σϋθco¬œVαpρήBΔ„ RδΩ%ΊKς’δ_a±αšςE:ΡBHNΈ@Γk€"ήβPR­{ΛaƒR»­|υΫgzžΣSvK*Ι­ι³[Ϊ$Ω_|ѝŽ[υz&ΌXAκ)€FO}š/eΆe3Zdήλυέ¨8 HΏx*yόχ'Ÿ%΄αΚ#mΛPΈωMΙ²\vε-ΠσNžx#”.¦ΘΰJΩΙa7Χ\Ώh +nη°ξΟ·n<|ynˆ.γ}¦BΖ!RΣh\vš„’δΤz(Ή{ν‘Γάσχfg5€ΎcMƒΈ“Ω.”.αε'0σΥΓΡ4 !—\rI†Ζnkξ;_˜RŠ PQQ‚ŠR©ΜE} /ώυ³έͺΊΚ–Ω*™ιˆ¬΄ό}οoh?Έθ,ΨΌyσ2Λ²²SLAJΙΈ»~TΨ‚>wψυ ϊ£n?H½s˜κή΅ς}+¬sμ;πΛιqήYΪΒ―–M’Έ Δ5Σ‹S&{R“D t"α¨N8βjuΝp3ΦάhΣdΦΏ•*c―^₯^vYΓh!p‰™tq7Tςύ‰δoF'' M€§ΣΪ0ŸZU‘Α„†ίέ�ΏߎœΘ={d>γΊΠλŽ”m¦€G~˜«ΞXŸWlΆ )`ΠxψιyΙ’$_ ǁ–ΨΌV„5k`γ·P…nέΚ9|δ ztq`Χiu” +άΎ;ι΄:Tθ^wϊlQ―°°©Ύ’¦{‰&›ρ7ηΐΙWΐ/~ GœžZΣ4ψΧ]ιϊΙ.£¦ΑΩcΫϏR υ€―ωΓξ*9χ~ή½{3zτhHyy9ΝΝΝΤΦΦ2mΪ4–.]J]]]ͺ8p_xαΠ-Μ­|/ΆιΎ<q34»_  †aόdΜ £^[ΊnΙME‘’kCF¨ΨΫ‘ΗK―ͺw!ή³ς‡§Aeu]hΊp ΡΠtW 9–ΒL8$Z$‰Ηύ‹9Δc6ρ˜C<ζ`%$J)Ίυ*”©lVUuϋεΟ~Άιή6d ΰ5VΩδmΕqςέη«P!ΰώSŸ†½ΛhML_ςށΏΟ”+K*׍ήΕ’‘ΜόΊ/«Ύz‘'3ΝΎ­‘‘Αΰσ`+WHζ…Ώ +„K4₯άΝ&V­‚ukaΝZˆ5ƒŽΖˆa:¬7GŒμΟ>ύ*¨κVΘβiw2bZyτι#ά2xσθο}χάόpπ~d<γxΖ1Z7Ω hκ\‘φ­OΦcκš—Ύt―…ύϊRΫ"Γ Ουg„gε«=ιDο Π`iC”I3{±€�ϟFΠΌ{¬νζΟvP “±³KсΒRƒpDK[4ΩΦ�ϋδ�� �IDATB2U4B)Σ<֐ ΜΈGlο/Iπf;#\)¨ξ[.†λL˜ΰ,Ψκi6‹΄φoUsΎp|Χς…γΎΠS¦ΐoƒQϋ₯㉬τrΆΩ²}²ς5δ9Ϋ!‘»νΚΠ‡ό‡β¬³rκ$TΑ΅cIuy„€Ϊ8t=*Kαα›άx—άι:„<wOΊ"Θ|ωΓœ>¦΅6σΟ*x2Rƒ‚ΎΌ€ͺ.λzF7Hew¦ X&―ιΒΣΛͺXί!”\ι”ξβψvΦσeδυ#lτΒh2–@6Ε‘±g}ݍ’R#U©­΅ΉH₯]RBTŠh‘ξšιQ)‰–$Ή›³‰žyŽ‚ύ ΣYSJi&KΣΆ±―nγΏϋ]Ϋσœη>L-qψθ―™ΑyΧύΡ‹Τ†˜ά= _@ΆfhWFΡ¨<žΓO»•SNΙ#t£’~>Ά5¦}c.„~=ΰχΧΊε“[Ά�–Σϊρœu\—œάυ@Ž{r(Ɯν½b*ΞVΚπO·BλW@h€X΅ϋ €@Y6—­ͺ€Q ίθΊΘ”—AJ74c<##žΰ²ξ-ΧՍ€L ΩbςhmS…a-9Ψθήβ Π“Zέ'špTGiΔ›mW›G4Œλšm[³E’πiφ ς'My₯ η^…™u|Ι%¨Ύ}Ι ˆ“vrΙϋ€hΙζC2ަ»Zύ§gΐe§δΧΔήƒυ·ΜΩα^\ο Γτς%œMφ\i΅+£Χέ Mιy歜pB;εέπ4Ί|³^°wΕΚΝ°Χ `θπΤ]ny.ΈΝ]Άϊ7CEiλ2Eα”#²κ#»^Θ r½6ΉΜg²ΣNήΤγ$ψΆΆceœωΏΓ³΄¦ «αpί^ ΄HεHWγ6Ηy£!ΜsNE¦Ι qVΪ/™vλ{Όx’Υ=·”ΤΡ7κF¦j1ω0ζy½›&AΧ ›MΒw4]Σ݊vε’=ξ`Ζ}ύτ–$ιc–ιφΡ{τ/Jϋ·K)9f΄.ϋV)-chΨϋυŽ5ί1YρΌBδT•8χςβΐ‘GΒ=†βBψρΡ™IϊΕ¦ˆλ«|Έοye,FΙx™| z#ͺ*GZmΚPB™ΩoK¦Ώ|GŸ{ ΗΣΊ|» © 2«zοαΏiςΙμ7pζΜ$4Ζέά�OL‚½Wώͺ*ΰOΏφsΛ‹ƒηωΖ/όυy½οe7Ύ©4³dlx+χσ•pό₯P[Ÿ£π.ψη¨ ­λ₯ΫBεΔPΆ†’ž �3K*)F†ζΡϸζO7KF.‹ΐόKϊDZQΤνΠ7'ΆdL’‰Χ «Sρ·XH©ˆ5Ω!Ν΅F�ε€mKlSb&ά?ΛtlKbΫF.* Ράϋ&CYvοώδg?3‡η¨ΆφαMεk²ύΞ₯Ωs… Έγ^ΊΜύ'™•žμV ϋ²ΚjsΕWδάc­C2ŠΖ JΝŒΡ9αΗ·pδ‘mδ{;‘”λ2ΌjΌσt/†;…ΉκΜ€i―M%ΰΕ''’:œ•άΪνω{άίύΪ-ςψγαμci•ΒI£hΉκŽ<aΩαE– iΐOo‚gήH‡EK Χ€BJPυ—Ž$—„[,κβ β6–\~†βΌ“ ‰‘Μ¨HύΊ&:σΏΥ9?0ψŠθ;]’½*AυBν£P½£zρΎ-½C"Φ„¦αΠΠΠΤ`s§΅–°�l‡KρΗςώιΥΎ]Ռ’°ωΫΊ!Π47J*€£άοΪ™+Ꮂ'β–·-—θέϋΦ‹ΊeT―aoΉΕΎ½CS:lƒqώΰΥHςΆkΒϋQ ;,_‹_‡έ[‹J%Ω–9ž}έ―=όρ²μΟV1ŸŒž“H―2HΓΦuΞΌδVFŽμp‰3ΰυ9C!˜=¦O‡³Ž†―€}Ίƒp²4j95:]r"ͺψˆV…ώΛΓΰ²3šΈχiΈα^7τεzΜy}χχΫ/w―{"ξxL.ΩuΥV]’Ύ–qK{εhG ^œ ηώΌύ:Φ„λνW捑呑‘%ΙmοΏΎ;vlϋ‚rΐ–΄§ΏΉ[ϋΌξ½s5Νψ»‘…Β)£@ΐW³λΠ4¨ύ6ζY@Κuu΅m…c₯΅Ή•Ψ–[a]{Fijiώό³ί/=$ƒ£F~ψ‰'ΞόΈ-7Σ xήlω4wiΉμΉυlάnΜΊ^’.πo~γn‘Όd2 ¨JVz²ζ½γ”FΞ"dv?2ϋΙn2‚φd( zMHΚ𭳂OήΉ!ΐO&Α!‡δF/o±ΌχlΪPΒυΧΝΕ?N±ξ‰BΤ/½²B2ϊΎιD|/§Κ,‹πΧy―ί€$‘Y/_z;zΊ—κ,¨>Κν―λΜ{&<�ΟΏν^?ϋ8xα[6ε²δ²Κ—―άΫTŽ­‘tθ~Œ»ž!`Ϊ“0j@dψ»zžj ΊΊzπ† Ύj-uϋ‘”β†ΉGŽ+ΠKžB0ηύM jΦΕSΧ₯i+Χ„·Ά)SeξR!aZζμ{ΎŠθΊήΪ`š0ΥFIG4\B·΅¬§υs™π:­Ώ}αχ}/₯ώτ'wοτ_\χύœά-nŽ2_/<»?ίΚ’T€ϊœ9e*9&ugMC#λζύ7CχIˈ)ΈψχPVoΌύ«ΰ·Ώ„ΡC„(@υΈ‘ύH<2j‚ζε·QΞύRgδ?«!MΟ\„=o₯K’2žϊΧsόtΜ—­¦β„©ωxΌ2Ξ8"— 2»H9ςθ―Ώm+ΗΞ—1c)ρψχCπΓ‘°©Ίq―UTTt―««ΫΨZϊΞΓ sΌχ³ΙMΏΤ4w f]<eΎKίrνh‘λΧk^΅πΑύRες'fš&Χ^qͺ«ΥŽέΗ―ωσ‘»xδν›ββ½ωκ«―B‘‘Hδ8Σ4ίXτ:μΧέ§εΙρΠ“yH‘Wψ΄΅οεΙMφηΫ»ž%cSΡuΌςά œ9z]‹·QFΕ8(Θ½&B+Φ£Ώx$£½γ Λ%»ΰΎλ’τDTѨ֍I2κԏg1¦λƒx[-_ύdiΔVϊ;*γ­Oαδ«ΰŸ„ „ek�˜©”ϊAgοˆ<θέ{Wu[ IkE*€ε(€T8ΆdρΪεE-/š1}Ήniiα”S ՘1YΝάφΐ#Ήλί(ε:Ξ<ώΈΨΨΨX9΄¦¦fC[lΫ6αpψZ)εύ�OΖ•£%Οnέύ/‡_«g΅~G θήύ;D€vΝ•–ζ}t;CχΚH2·άμtρ…χš„R]¦Ε£>Κε?\ΣΚΒΩ*Πz7—imW9v’ŒΡWΐτδFBBˆoΎϊκ>ψΰwn‡WΗqX΄φ+ν‡wΧ_IδςΏ_α(‡ž{½y«Ίιέ;²π²ΛƒvHnlZ―jΛ―βŸxBl^·.rH,Φ²j[[NΫΆ‰F£ϋ:Žσ₯R*Ϊ½ν_vσv΄I>Ψ\s΄)ΣάžΤΘΩήrΩ/YχlŒ’ηΝ©>Ύ['ξϊ3₯ f½s‡ϋEφη'ΫJHY0 „κuk2_™2 … αλΫ(/Ψώ:ΛQWYŠω;%c³ ]Ž�MӚjkkΛ***Ύsδή΄’‘e•Ό«TbΠ±PςάΣΨΟ?/šV¬(>€±±ρλδ Ξφ˜GΙν¦ΏΖ9`C­’°°π§---O�Z4o> £hML/o<Ν–ύ%α‹ηχfΚvΉΜn0ςΚ¨8+©±„/\0σΣΟ9¬Χ‹ΆŽ—SδȏH§ιε#eQ” „o'†ΤRQΎ~;cΩNΙ€μ§·χι0|<3)wΪΫ+Γ_7ΉΨΆd΄�E#άc]ΧΛΗi¨¨¨`wC.F=q"οwx佃Π4xυUμ/Ύ1MsFgυu€”TUUUΧΥΥ½γ8΁�{υ„ώχΛ‘©;€”6ρ™ν*Ox6”Β χ\•β©§_dό˜/γ›ώt•―aρΛΘ—Oϋυtχ«OΕV.+l!Ψ΄ΰvz”ο�ψκ,«q»μwπΧ\ϊM‚°w° _ν–CΑ;ŸΓ‰—»]8H$Ύ1ωέ­^Ώώύϋ_Ό"‚ΪŽ&,ΰw°ηΜ)<Ή‘‘αέοΚ‡rΑΆmzφμYU__°išgͺδζqcFΐγ“ WΪ}©’§9―·j0|JθΜΩt‹>{™ŸœdΊ όχε0STw/[>¦<Ν†w¬!zMH&•tΈ‚žΈƒsqvŒ, š§u&τ¦}{ΐ’Χ œ΅ˆf{eδ,0eœp™»4Wρ¬”r|gν*΄*ερΗˁΎ§’ί‘λxBfΜΐž>½π'MΟoοžνίΨΆ­ν³Ο>₯555“š››/!9œhθ0vLϊŒ„;α‡Oνψϋη/$δ61³3‘Gέeh6²NόPϊC(‰‚Ώ=φW.<iFΆι²½2²―u Ά§_ oNwƒ»”»ΣY‡ αl‡ ε¦}χίΰΞ‡ά}„hšve"‘ψσwYιμ,΄ͺ.Σ4΅3ό:#GΆ?1gLžl\nYΦ_φ”–Ρƒγ8466j•••g†qeY£ό»ͺ„C0ξdΈθ4χ+¬ΊHΎΌδ7γSΘΆό$!GWΐO†δΉςδ$5£ΏŸ»SdψŽ;"#UUaX°&O…GŸ‚―ΧδοφςwΉ¬R°Ή‘Œ9δtƒ*d$ωο›nΊιΆΫoΏ}·ϋHθΆ U Δγq:¨dυyηY½ύαJΑ’%πβ‹α_Ηb-ΏίΣ?±ά(₯hnnΦ***–––ž][[ϋ#!ΔΑή5BΈ«Β�£…ΐΘ‘ΠΏGς%N$};ϋdπ'›”νfŒT~σΨΝLλώp>ξ<.a€™€i ΰσ/aΚ'πεBχ;pYfŠLΖΒαπ³RΚ'~ύλ_ΟΌνΆΫβ†aΠ–Ά5MMΣπή=o?χ�ν#ηλ‰πψ7rρΚ•πδ“ΪoMΣΉ%hw.‰‘PΣ4 ‡ΓΪ„ ’Ώύνo{‡ΓΞΗW\A₯»DσiZξσμ^SΎG—"²O­Α:o6ε³Ο„œ2ΕψGEEυ/V­ZΥΌ;œO w§Έ‚ΦrΧ’n3½{W?xα…ζΥUU[©₯;±Όπ‚Ά±μςιΣ§Ώ6`ΐ@ΪκΨψŽΏJ»7’‹_~zκ©βΙαΓ·BuΆ™ζŽo tζΝƒW^ў:tΨE³f͎νƒ­{’οB$Ώ>pΘ5χœs(lk>₯ά?Γ�)‘+W mρb%W­2Φ¬]kOξΧ―ί+‡:lήσΟΏΈΞ²,ΚʊŸΈρFσόνρπξ}ζaYSx^}}ΓσΑXΜθ;RJϊυλ[κ8λζ^~Ήά[¨―G.]*΄―Ώ5±XΙη«VΥΏΎΧ^{½6zτ‘kόοq€­Ρ–UUϊ«―vφݚ|yZιRxν5ύν^½φ»θ‹/ΎΨ˜έ»/’οDΨΆέζ(ςΆbτθΡZ}ύΤΔ™gb΄g¦+εΞ#ϋί4-ZώωΔ‰qΓ Ώ’¦ή³ύ{„ž={–~ψΊϊ!Cr_–-Όϊͺ>₯OŸA|ρΕΌuA_:�D^@qΰΟΎ¬τ>„¨ά²W_rΑ‚θυΏψΕ΅Lšτ›`Δ;@€ο’59aκΚ+Q••ϊg•••ύMΣlοΦ�Z!Πθv(”΄Pθ€ΐ‘B ¬Œο’Ψf(Η†š5ΡύΐωtΨ­JοzZ—¨l\Žj^+Q‘E2ήπvττuΧ mΟ[Lς]A0R`› —ž^Θ’Γ—©ϊχR;Ό+½ψΡύ‚BΡε ‘iθE†Bˆtκ’w.’Ψj¨‡\&0š1ΚχzQ\“] EEΈ+ͺe5X)―ŸΘ ŸύΦύŸ lx΄’Ήα‘’›_9)xw‚J°UP_Ό_υ(ΕGϋό�‘…PJΪ8 Tσbχ»ZJ‘μΔt ϋdψ� ύ…& эΡφšιVΓcϋοαNFPΑ: %-0z\,JO�ΘBD/2‘ŒalPv$6¦φ’#άε<MΛrΞ±τꔏ―RšS³β…]\”=ΡtJiθe₯θe`o�”ˆ ή. fνWΚ¬AΩ1W›+%#cήZΥ*½π Ό†@†:S9‰VΡμ8DΠqhεR!P2–άKhjՍξŽύJ{‡Δ–«­₯cξΪ*a¨ƒ]eξju׍Wήŝˆ rtΚAΉί$D ά}Φ•BΥΎω �‘^_‡§­•cΙ6Ϋ•cƒ0zz¦»λ€p7… °³ΜyΨH‘μ TiΡδ>t Ÿ* ‘σμΩ'₯ΧΨ*ζd'{ah±Bi~Σ]ΩRͺ_’ °γhτ�†ΠB`ož©” zΉoG[ό䠟’l”Y+URS+Ϋj΅Υ£¬_ύŒHΆ)­žΠfkFt—fΟB@τ�[-ϊ¬oz\ΕμiοΠ ¬ΖΟQξ·”…Π3,F§ώk0B§ ΒgΊ+iήΫYΕΩS=ΐVAυlŠˆ}*•^ "δλgkšσα^₯¬ϊ‰H;ΉSd€8uŸRΔ^ώJŠά¨Τ—TBNΉσJ΄g z€­‚¦ι’ΨœΙXί‚(Jχ³(½δ>ν9ΗΚ‰ χξkώkτ‘‡NϘVC‘βΕγŸΛώF€Œ`0.ΐΦ£μ”3hžν( Ÿιžό³c΅J9^ί½―’ΝOv…½‡ χΗoQ­ιαN.Πξ@£ΨztΏ^²τJ¬Νώφ€OjΪ )=έύ}aD>J™ψžιžΌGίλ°‰]œ=Α2Υ�Ϋ₯rξΠ…Κ ΒvP9ώRαVvΈDΩNLΝ(Ώ‘ώˆ@£ο|=ΐ6A>lήώH«ΙoΎ+Ÿ†χkn―Ÿ½η1Ιw ’Ψ.ˆŠ“ΚPΆT&<Ηξ{zJ ₯P jLΩ…³‚AΈ]„€θΆ ϊΐίKΡνμ±έώyΦΰ\֟R ¬Π·΅LνμΌοIϊθvœš©ΨŸ]X«€QιφΝ%ΆρŽ•ε L³A9α>eΧΤ6tv~χ4D°Γ ₯,Ώ=d₯0›Λύr²₯J8§_V;9ΨgΎsΤz€)₯T/σIΉ]<0eͺ[λχβλΛ>Έ¦τŠΊ€δ|ί!₯ŒnJ\±"‘PλMS­±LUσpƒZ6b™ϊ2τeBZΑκ΄ΞDΠΔΨn(₯ˆ:!ο B )hΈ$BxX­D /Έ Ό³σΉ'# z€M‘ͺzύ%ΦUσ}υ1$5χU8±kυοNΜߏ€θΆJ©hΓS 'Υ%ΣӟŒ@±¦±α‘.|ςqQ–ΑϋΦI*>ΐvΑ3Ϋ_&&h%BBΙG¦»¦ AWCGί+¬ύολk~Ϊ©™έƒ=ΐφBSRU‡ϊ…JE(iΆ;в, !₯ΊNWΓ ωΠπc ε:Ρl”RΡ%‰Δ5z‘ ξnBAΕ4 a)W«λ:₯Q#όΖδ Α \' z€m†t7n-w—˜£"€»ΨE(‘ά3NQςf α[P 4Ωϋσd§fzE@τ�Ϋ#‘= uM“έ5Trgg…B%Φ*‹ΨτζC›ι~ςZΊON…~’ vvήε\`l3€”…Kk㏗? DQς‘‰΄ζΧ&ΝӚ‰Νan2q,ΫΆq,ӈ5Ϊ<zzgηOB Ρlά !E©,ηιsΆΖ^e{?FσΤfΜε&φ§ΩA%J*„Τ-ν@«οJD°­Πμ vua\žY¨”"bήωabŸΆ`o²ράχ5y£VΎφΎ΅Α~…»Ρl”RαΊΩ|eω{ άavΤ9-›χηT²ψχ₯‘2οKώ[zΗ_uJΖχPD°ΥπœdTB]¬hλ”R4KΙFΫ¦ΙqΐΪ y{SoίYŠ0@‹iƒ9υ]‡€θΆšSλT†φ EEX^jc'›‡zΗΑέΥ=Ήγ³T,Ώͺ”ΧΧτγe}ωφ””0¦ν=­ͺs‹±η z€­†R*\{Oν•F•([}¨‘ΊF›ΈRH₯[Η₯ώv‘ΰγΗͺyqΝΎ<ϋν�f^Uρ/;˜jΫ%ˆ`«!…QWh₯(υ’Δ φέos-rΞΪ&—―*@ ΆbΩ…]Ž&xw ‚J°URjV₯‰ίUА«Ν­‰/8M’ƒŽ­eθ™΅HΝΏ!lZΓϋ‘”n˜΅ς˜]_Š=Ρl„Ζς±+ΓB?:Šl”$ΎL`­ΆPŽKε’ιc+Χ±ίΝ[p ‘&»Gx•–«ιΛ εv:ΟΈ�[)eι’ζΔΪΚ¨Q,€†&qτz ά₯έΑA&98˜έsο¬`ε9Ε8 …XΚύύαj-4ξ=ƒ=ήw"’θ0’ZΉη*ΛZ[¬iXJ±ΑΆY½Ωd@Ÿu άΥk~’gώJ‰*X=6ΚΧg–²ζ°bMφ„g‡μ}gg—owF@τ�†RΚ¨ω}νωΦu₯‡… IJVš&›‡ΈRo’Aε!ΉΣͺπŽmaΗNŽŸ\€E‚žδΞBP³: ₯TΤ\Έ₯θ8ŽR4II³”HεφΈg/οΞ†Λ RŽ1ΩΏΩaή±P’p፠ƒwq'"¨ά�‚”(6zϋj† τ|ŒΗΑτΦ”»αΔί•ςα†Θ2χΎ\$χΓ [ϊΰΫΕΨc=@G‘5ΎΪ80Τ7 ¬/Tρ-ŽΘtŒ@W|°΄'Ψ‘όXj.MξΥ,ν’`EΫΞC@τ�‚"άψBγmz§ήΑœoΒR‹ͺΦ₯ζΜΑ7g. ioξΛ;σϋΠ84 yLx�‘„φJ·W—؝„€θ:₯T±V ށ΅ΒΒ\l’β •€CΚΦS4Ϋς‘\d8ɘ]5>x³7/}»/οLνΗΖγ Π…D%‡‚=-ο4:κΔ"ξΦFέ΄ ₯”Φ²ΖXWͺΏ§ιΥ&š^kB6€Χšƒ 1@γγ™]±₯tηΙ½_₯RsζfκšΒ4@ΫhS1Ώ‰κ)υτœΊ…σž,4#Π?;Ρ΄ ₯Tψ›Υ±ϋŠͺCW[kμ:ΧAΖɌηM™­ύ(_ώΎ<Mxθ*ν(c*…­¦Ί”TΜn:ώΙρ½Ϋ Εά­=@»R–.kLΤ–Fm³ΎΡ’Ίz»:Ε/kž|γΙafΉ+¦–η —όΙp{‹Ήfςϋφ1­ΎCΤf€6‘”‡ΒhfXJΡ(%VΎλ…*Ξί7ΰΦεN賂S{-c―ΗΆ€£’ύχ¬%¬>xYκ¨Ÿ€θΪƒΆnql΄† EΚΤzs€E«{Πpz€MΗ�)ƒo­αŒήK9·η"N΅„}ŸΩŒΡ$qBξόœ"Υœως—?ή΅Eάύ΄Ϊ„R*Όζά5Ÿθ?/ςνHƒ:Η!‘μO{&ΈΎΘζ lΒΞλγήΪύ5υ+$›–2ΑΊƒ X1Ά˜e β/ώθ έΠ;»ψ» ’h‘ελ/X_Gjz 6ύΊΨLƒΤ`›©–€}.ΫLΕ Νν’=;<WC0^ŽB ^Ο…ΐtJ)_j¬0η›„PO·γ7’’ί@WΙc�ŠE`κϊžΔχv_«|.―ΉLύμσύγŠ]ž=Ρ΄­ζφšΛ­5ζrLΟ²Ψ«ϋ”™½'\rP-$˜1³'ο­μClς»½…/".ώμ»γ=@^(GaΧΫe.5‘[|bhύΊ­₯ό©˜;Fλ e`Ϊϋ½y}Γή¬Έ²ΜύΌͺ—nV·ιJOωρ”θ(ηž€  /-γkέL”―”ι†ešΫU Ÿ.¨Β,pηΚM|sεsζ c#―YE·w±eξ΅ιώίf­ω7WΚ+oΫυ%ίύ=@^|±Ύιh»TΌoΩPVΆpwY―BΡp˜Ξ§―wΑΞαγ9Ζx^pΆ#i‰ z½Ά…Ω@Εg()±”DωˆnkΆyAβ‚ˆ Fί·ΡδŜΊ¦Ή2,v]V‘ͺ|8­_oϋ(‡-GΜzΎ Kδwυ\`ΣΧ\k % Ά£ΥXhu¦ϋΦXςθu‡7νςΒοfϊθrBJ₯i1$’XΫΠΩ΅u\HzΙτΗT―d쁫(ώ2‘Χ.;�#‘Π,EΌT§Ύo„†žf +Ό{'oC ΡδΔ‚uMΕVΉh΄dΦbέ.¬₯θεx*_£·ž3wΨ4&Œϋ»ΣΤMo­εsωΌϋδ%”²ηο΅o( tφ z€œ˜―}y±½iοΗΝHV;y,–Ϊ Ή₯@fύΛο,γΠR-˜³Jζ_Ψ…„ž&½ν7ηI‡; φŸVWςΒ₯#σ};=@+HS²°pαrΝύκϊaΛkΖ’R\Έ}Ο­₯θ½xϋΉvŽξ°₯_ˆΗ–°lLφR_a`ιΰ(ΠΦ·<²πΘƒ~ΦΩυς}F@τ�­ -©- /²„š’Ά¦V(ΣδN‘^Jd£δƒΧΓ–­πqoσZϊ‰ƒ₯ΩζερΛ#z8}ίVŸ�­πυΰ―‹…ξ»!]*WΓ&ΩzH�!pJ4>^Ϊ“™sz ‹Z»΅ζsyυ‡e^σo$ šΤΒέϊQxΗ”nΟD@τ�­`­±&f†ͺχ^GΡΝ­`?d΅�� �IDATΎŸ–ϊθ£σΑς~ΌΏΈ/‰^"‹Ίmο›οšwόωßi'uA@τ6PRRrm$™tϊι§WY–ΥΩΩΩ%¦D$Δ%ŠΦ*―©£Ο±›PΙ-žIN“e’^a— ή¬?―ΧμΓςkΚΡhν³ή-ο?֚΄ΛΣi7@Η½ 466>πμ³ΟNxο½Χο?ϋμ°³ώΤά7|ψπjΣ41M³³³ΈΓ‘4p(ˆ”œ8ς™Νeλ(œm¦Νx‘κρ^Ψ0ΦnΌ΄v/½+RκξώJΗΜϋŒ}ί•¦}pεΑϋΊγ:₯……Ρ{Ξ8#ρ8�mΓψθ#½aρbύŸGuΤ]χίΐΊAƒφGΣΎίοβΌn:XR87TΉ‘ty2ŽI†Θξ‚YσΊaιΙ=αrμϊκχ„³q§ζT|ΪΔΰ‡ΧΣλν͘2<Ό?,‘%ψ₯όε/:‘ZΎχˆΎ•RRRRτŸGέrˆhJCm-rϊtbί|SψbΧ='3ϊλGω3†atv–· sW7Ύ‘uΡO’1E΄ΫJR›―'αχuχešΜ~« Λΐύ$r’·Ϊς9ylKEBs ½Ζ’hmŒςωM„kLΒM Z tbέB¬RΚ¦>…ςΛ‘ϋιΖχΌ1ν DίFH)ιΦ­λιƒΥ=wΒ *,₯kΑ*š0}Ί[²$τjAAε]ώσŸΏ:ωδSδwYγKGρEKL‰dάTP}’9w|…ΚΠΎf7ΕΜ—»SΏ―њθ~mOξ=ί³}ΰe†,w₯λ/׊’ΛΖξΫΉ5±ϋ! ϊvΒqϊτι3¬Ό|ύϋγΖ©R₯2Ί¬xηρ8rϊtμeΛŠή•²hβΈqγgίwί}ί)/₯βΛ– Rδ+=vΖ,3§)Ÿk+(…dυOŠψόΞΔ‹–’™sο΄±ν³―QΘΒKόiZ™?zhΰ<³•ˆΎƒ`Ϋ6Υ=zΘΟ.ΊΘι©i™„χΰ_J˜6MΘ… £Sš›υ»>ώxΖΤ8°S5ώη‹λΟ€Oθ%T’θ)R*΄iqΊpSͺ—.y^όΗJΨ¬;±9ΏξFΝ Ž₯άuλI·ΧŒ ‹πι―΄ΊŸxB`*Ε’„‘«rδEP[;J)ϊτιS―ψς˝Βαά„OΗO_Μ _~‹EξΎκͺ+'ζ7w …vYή„ζhoάk΄ŠœύjS‡~ΓΎ%ΌΔI”·7€ζΰ £³‘|Ι|–‰―˜?,NMw‡P—.Dϋυ£τ°Γ(8πΐ΄ιžΤθξ‡žπ–Ύ! ΏϋύŠΘY—wΚΓq�ν¬³Ξ oάΈqΠΜ™3‹u]7***šŽ<ςΘ5/½τ)%ΊΎηxΪDί‰8τΠCΒK—Ξ{λK£KKΫ&|6€„9s„όδ“πΜΊ:yί—_Ξ{qΰΐARμ$M&Ι"}‘€ΉΉV$«μ3΅Εb‹ύ°©Υ.1ώ_“ILb SZΙςΚΰ-WI Pͺ`|ΥΕ )‰Σ’@Δ,"5/½…ΒA’ˆ$~sS⦌glΫ&ž’”ΊEJyx2=Ν//K¦B¬*))Ήoƌ;pΰ@Ή+Υ]οξΘΠn€Ο>›k648c<πQύcνΪTW³]h ΄«JŒΊωfλΉ'Ÿάί9ηαtοš[TTtα܏eY;μωYΛ-M $Β•+a•Σzyς/1Πΰ“šj–ώ£’L7˜Ε,F3š±Œε}ρ>|0Ο?< 8Žƒ”ΗqRΗRJlΫfαΒ…\sΝ54Ϊ[xtν}ό|ρOxpΥ]Φ€ƒ†ν—dr³΄έ{GU¨iΪ\Γ0”mΫ―K)G{μ±Ϊ3Ο<£­X±Ηq°mΛ²p‡ΪΪZή{ο=.½τRMJΩΏΎΎώώΑƒ;‘H€ͺͺj˜”»η†”FίIˆΗέυΪJ) Γ@ΧuΦ­[«ν΅Χ^“Ξ>ΫΎyύ·-]ρbΑΤ©ΖW7:χtАΏΝ™3Ηvg›4ΣBώX‘RŸ-@μΏ+hΊ²8c΅ZΡς’7cDΞ›Ε8Ζ!‘”••ρή{ο1lΨ°”ΆnK‹ϋγ(₯°,‹;ξΈƒίύξw(₯Δ ώ“ΔΖφ¬ωXρcE‹›/VJυBpύυΧ3qβD ReΚ'ß₯O=υ—^z©η�e¨――Ÿχ](έ^μ1DOOΠuΓ0€eY,^ΌP3MΣΈοΎΡ>ψΰCm͚5`�šBλίΏ_yIIIy$Τ4­rΦ¬O 5βββŠ²²’ΒϊϊΊBΛJT AΉ¦Q)εΡ¨f £¨H jαp˜°m[FAF4ŠQP ιΡͺͺΆΏ\ρ•‚―ΏFNͺ―©­ έ§λ‘ΏΦΥΥ5(₯:ΤϚ―ZXƒΌyς”WZO΅ {b“9*ξ  9ΐ„ΓgΓ₯”——³dΙΊvνΊUχΰλ]»ϋξ»Ήε–[�ψ%Ώ€½H^γ5¦iΣxα…8γŒ3ς¦Ϋήο7ί|Γ!‡Bcc#BˆUΥΥΥϋ¬_ΏήήΖGσΒnOτh4z±eYχwœ*οΥKi‘D"HMSZ(”ξ?η)χ~=RεCg{yV|πΆqεJηΎξέ{όuυκΥ5J©l― 4ν+ζ'@dtΞ1ŠURwNλ—ΤζMόgώ(₯xυΥW9υΤSΫ$vφyΎΈΩΏΆm3`ΐ�V\Ι`sabrCβ ΓΘθƒo« =οΌσ'žx"�έΊu;dΣ¦MŸoσωŽ`·':ΈΞ-‹-~ψΓ“\Ώ~Υ}cΗrτπαJΫ]=Žι:¬^|}aYϊ£”<lšζ:@ϋυ™“ͺ~ϊΧλΧ†*W΄Ϊα5†bρμ*šϋλ¬]Όˆ_ύΰP__ŸΣ Ι;ϊ›}ί½χήΛ 7ά@άȍ\Σt ‘P(ƒμΫ+Γƒ”’>}ϊ°~ύz€ €nKύW°G=Žγ°lΩRmθΠCκή=qΣqΗ©žύϊ)ΝΆ;_#ο (υΩ;ο0+ͺ³ΞΜ­ΫwYX€7AzSECΔ‚έΨ[{Fέhτ3ΡD£FSŒ-%&‚Ψ, M€Χ…]Άά6sΎ?ΞΜά3sο6@E³οσά;3§½§½εΌ§A8 +Vΐλ―“κΨaβ¬ώzΟΈN}zb”.C$‚λΪρ-{έίΘψΖρtνΪ•+VdΓ€§ξήV·¦ς­·ήbΒ„ ”PΜΓ―ΎΓΔέ{‹Ε0M³YΙήz9&L˜ΐ[o½…išg&“ΙΏ|WΗνέΊeH§ΣΖΨ±czΝ™σργΖqόΎϋJ#ς?t́mC(kΧΒ;ο› ϋψ~bAUΎ΅ν }ƒ¨¨¨`γƍ9c^š£7―)pΓΎχή{Œ;–ςCψτε”••F½ E;‡ώ}ΐπςΛ/ό�ςΜ~ ΠΙdψςΛ%ΖθΡ{SPP{Σώϋ‹>ƒI#ώnH{)ΥΟ4Υ “†šZΨ°κΆΒƍ°~½Z_SϋcϊυλCχAƒθXΩ‰N]»P4§ˆΒc7ωVΒ f0–PΣcA‚Κζ‘ιρ°λŸOš6EŒωp<τΠCœvΪiόφ·ΏετΣO§ΈΈ˜p8ΌCqθR~Χ]weΙ’%τοί?ΌpαΒξ;ΠuΏ]Θd2 4°ΛβΕ‹/:”K>Xͺ]k_α»Δ*„ϊ…BŠhSIΨZ§$oΝΨT λΦAizVA‡0 μΦ v©€ΚJΨ₯"!°%€₯N₯ac ,[Σ›’>ΝZ…Π6’@吕ΛU‡?σxΧΨ΄iεεε@“‹Qš%4ΫΆ}iF‹γη €}φΩ‡wί}—εΛ—Σ‘Cb±Bˆ­ξ­Ε‘‡q§I₯” Λ²βί΅Uuν„ήH§ΣΜ™3ǘ4iήαpέ&ˆQ#GJΓ]cαφές­Ώ†ϊΆ,¨­…κM°~46@υF›Π―+t*…ύ`pθΩΚJ ¬ L΅kTΨψo8Άqη.C½U₯G{Zaεψt1 ά«kCε—ά 'rQ†’=²gf/»ξ:½φڜΊiJr«²+χ·ήz‹“O>™•+Wz~†apΨa‡ρψ㏉DšΤςα°m›P(DUU_|ρ………†α…illdκΤ©<ωδ“lήΌ™X,Ζ¨Q£Έηž{8p`«pθεψκ«―θέ»7‘Pθ²L&s{‹f'‚vBίH§ΣLœΈ_Ω»οΎ{VϞφMεε„6n„-[ V8cA‡RΨo œzŒ U…€νPΝVδ1—0ΑGΔ€ΈΡά\"υ}kD/Θ~Ϋlm€/WÜωπωg•ό΄ο\2Χ—#Eξ% ))9¦[7R θGj΅dΉvέκλλιΤ© Νο.=σΜ3ΉοΎϋrβ7‡γ7ή`βΔ‰ΜŸ?Ÿ~ύϊ …°m›#FπΙ'Ÿ4‰+‰°pαBzτθΡͺ)@P?~όxή~ϋmlΫ;σ–γ ΄zAJΙ]wݺ馛φ[·nέM†aŒ²m;ŠΈ:w€c„sŽƒΎέ δŽζ\‚Σιΐ­ύ|nyά₯ΤΌƒα‚-™!8±`k=,^ ³?ƒΉ ‘Γ‚Γ9eλ‘\Н”π―€[Ώr%'Δ‹/ΎΘψΓfj'ͺ««ιΠ‘C«Γ2„yσζ΅Ιx‹Ε(,,dύϊυX–EAA­]ΚϊΤSOqΤQG΅—«E˜¦y»eY—΅*βN�ν„ή °,ΛθΨ±γn‰D⦆††Γg`μΈτt8β`4fΗՐ₯?ι|₯nVίVNέ»R]χvUο`ό&βΈιιΈέh–u °t•’θsΑŠu°’_pΐκΣh˜Ρ™ΔήaOuρθΡ¬ZΌΨ#žζV‘©ΌdΥίp8μξ&k5L:•[o½΅Υ8¦OŸΞ!‡B2™$‹εh-ΑŠ+θΦ­[³8t·I“&ρΪk―ΩιtΪόL·}7rω C:fλΦ­F=Ž―««»Λ4Ν P„3f0\qΎΠ rIΐΘ/œ…φ”Θ>βΥΌ€CΨ.Έλ“μ:“PΈ‡[ϐfΰ3 ˆE‘€ʊ‘¦^κs+“&ŸBΌ»ΙΊO»`‚U‹sΩe—ε§ΦŸAχK/½΄I"οΡ£Ώύο‰hσ˜BjkkΉπΒ Ήι¦›|sγΝα>πΐBPYYΩ*"?ώψγ9ν΄Σ0M)%Ÿ}φ]»vmUω„<φΨcTUU]»vέψ E„;ˆβbσ₯]wzΒμΩs6~Χ,‰;‰‘H„X,vN:ώ”²� dΒ₯?…«~E¦ί.5)”ΊžU>ŸZέψ$² ΈΠZ¨“[B"Άΐ’0K%έΧoV*ύΐ΅Gpκ7#€OYΑžŸL:nΣi8•:Ÿ ύΗ?ώ‘^½z59Ο-₯€[·n >ΌUx� ΐ’E‹š ;fΜ»ξΊΌΜ`βΔ‰Ύ 1-α3M“x<ώaCCΓθ#ν`\|±5ιπΓ?ήπΓ†¬H$ςΫΆΏ—Η7–e‹ΕŒΗγk ЩTκή‚˜,xΰf°ηBκ=ΈεΜ,‘»]Δ5”Ή}Ζ5‚ έO{Άψ“š…^Ο ΞHMy°οκFyP ΘSο…b`E1θXέ« Η.Π₯£ϊ^ΪγYΫ{? ΒάύΌΊ΅Ψσαη¦766ζ%ς|ΠGδΰW•]’w-σΝαΠγή|σΝ9Έt8δCΈζšk°m;/‘λ†;‡ž]΅Ÿ<y2 £Ϊ:LψΆΐH$T?^W\‘ϊε•WrθΠ‚ G|τΡ‡F&σ[Π"آ͘1cŠ„/™¦)‰ΔtӐpd>„­oΒι�)²Δ₯΅f-ΒΔ @VϊζWϊ -쟞Žgq8?―I?nί»›¦Θ~λLΐe"AΞ`:ͺ{E t­‚ή] OθQ]*‘¨r=W°+o‹7ιίΏΏoΪJ'H•™C<ΞqLš4ΙΫΩζΖӟξxΠ­)ϊχΐ‚0οYΨΫ_&LΘΑ‘ΓζΝ›σβp!oκΤ©�φάΉsΏ¦w£Ά6{Ÿ‹Α 'd*/Ί¨ϊ™ϋξ•ξΨ1ςQϞ=z΄Υ ²3B&“‘΄΄t?Σ4kf͚΅)'{ ΤΌ―$χ…G@FSf\"ΦΑ#hM²JέΏαK”Τ:Žs.ψ%Ό6XΛ…fΤ“Z>΄1Ά›†$©γџzίvΏ#a()„ͺrθΡϊt…Ύέ‘wWυέ½d€ΝΔ‰΅:ΎN―?uBΘ'Ν/ΏόrίwSγο¦όƒ8tχ‚‚�^y†v…Οž�λCψηPS„9eΚξ»οΎΌΪ‰nh βΘ‡sΏύφ0FŒΡ/oζw206lMr€Ξ1.ΊΘρ“Ÿ,κπΓCVqqδΟC‡-ϊ½eY„B‘KΒα°USSσZq,yυ!°>€Ηo„Η4!$4tψ%³€7d­ζš~žΣ=5I¬Ηrr“pέΓ=Bpς‰ΗςΟ·†g™GΙνβэlžΏnΣ!O~…PR="¨ͺ€ξ‘χλ~}»©°ϋξ»o³Ξ‡Κ!„]»ϊά‹‹‹}sπA•Έ©_s8τ΄ά9νwζj Φ†cΗΑΦ· ζ=?ž{ξ9:θ .Ύψb2™Œ‡'ΨάΠτž›·>}ϊŒiΎFv0Φ­“Νκζnηή}wi\ziꌣŽϊdλθΡ‘FΓ0Θ1γ’Ιδ7•Χ6ƒ”’‚‚‚[MΣ΄2™ΜƒϋJcσ»°εuΨo`–X²γlAYaœέ'έΘ΄χDJόΤ}x]B8Ζ8m,ŸΨƒκ7CΤζ!8ώΨ£ψΣ3eŠašz.³Ήn τΖόωκ-]̈c}/„Κ2₯ΚχάEω=TΈ:δ¨ΥΝ£”’x<ξ#–!C†4i|Σ΅χΧ«W/|8‚ci!7εΦ(fώϊŸΤΠμΊ `Ι’%~ψαœ~ϊι€Σi_G0ΑaΖςεΛs#ξ„`lΨΐϊΦvΥΖ#ސ±«―ΆόKΚή½£«βρψξ;“QΒ™Ώ½D!¦NΨ#=ζ=₯ξ!QBφ[Q� [rΰ170oiVMχ¬ιd;OΞSfΏυx>š~νφuθhͺ³ž}Αe,ZνΤΙ½τΘΊ{—Ίa΅όθΣrnάΏM‡Πhxež’μEE°ΫΡpΔ₯Π΅“Z~ PRRβ«Ϋ¦–ŽκώBN<ρDΟί΅h7?ƒnU·ΩτRΙfκJ€iΓ΅§ƒύόυΧP½i#Gy$S¦L!‘HδΰpΣΧίέ…3�Άm—ΆX˜�ŒΝ›Γ[Ά…F…PγΜ3ιrō³?^ΘΒΒΠ3C†μVφm©φΞ”ΞήB™N§ο=RΑkχ€ιžμJSbέo„p¨Η°m:Ύ”΄ΘO£?σ… †'Ϋ]_†*|SH›5©)ώ4΄ψξSo7O²‡ΊπξΚ£¨OkιΉΩΠθΛ6ΰ ηΥΙ{)5ώ€«Τχaϋ©΅υ•ε*ŠkXΛ'‰υχ ³葇Ό0_~ω₯―š‹WUUεΫrΪ\Ψ`zE₯΄Ί~r dfΓ]WΑ‚ (((ΰΤSOmθ§!έόmΚΙΠN†a,۞„Pϋ™„Ÿ<sď~΄`σ„ !+]iY–wHβΧ Γ‡7„k2™ΜΜ²bΨς.|πw΅UhήΝs>…ΞΌ­T{°;•—ςχη{zώM₯C3~98€[JΐΞ€ΞPBυΜργφd~φL_œ €χα-ΕΨέ‡³9r[S~›€ώτkΥσŒ#`υj°BπτΛΚmΜ ₯ΞΗγ*»K—.uΚ”+‰ƒ.H˜‹/‘·Fš›¦Ι¨Q£ZCΟ—”’ώ=ύu\]ΉpΑ`gώyδ Γ`Ϊ΄i9³ ω†/K›-ΠNF"‘ωpG%ζŽη'M’ΖΤ©‰›~ωKS\Έ¦S§NX–υ΅LC8†˜KηΝk θόPύ*”„τ0ώŸ³’Μρ‘nΞ8<K₯gœsΥ Zψ@YیCψU{0B:κ₯κ’B€’χ?οMPc*ή4œ¦ž»y Ύ+B@·]:³,q*v`΅lόG}°|ΎŽύΉϊΎώl΅j.‚ˆ‘ζ۟}φY_}CtΝ'i…τιΣ‡εΛ—ψN£ΡΣpŸEEEpΐ9ώ-αpύ„Lή§ uY;‡χO…ΖΤΊ‚)S¦Π³gOoή½)+ύςεΛgεdj'£ΆΆώΛV ™Ϊ B@a!œrŠΥωόσΧΟ8σ̐UZz«kΧ.•;J΅ο₯‹!„XgΫφοƏV†– ΡTc7/hν8θͺtΆ3D²F-ǚ%,‹§^ιœCΤΎρo[pΈA\υ> >;°Ÿ|θ‘jE½žŽΧ‡OΟ„ΩAiΐΠ}ωϋ΄>~JpχΣκυ'Ξͺύš:xφυ>Πα-΅ ͺ ;–Γ‡~Ψ,‘΅έ»wΗΆm’Ι€·]O/‰°ώϋ³οΎϋ6)­[‚E‹!₯dQ΄Ύτφp^’ΐW… +W¬  ρζ›ozxά|ΏπΒ �φόωσ—·*ƒί2ˆΒΒΒ—_^Ρ7LJ%-fΞ™™3ΓμΩ³οsηΞK΄υςΖΖFzτθ1jΓ† s�ζ<#{h4Žξƒ΅†vΏsž]opΪή‘Z¨KΦWo’Sςώ[ΆΊ+™‚,γtF©‰ Β ³κjΒ³π:-ώ΄έ(²λ Z%R|πκΥμ1 ›ΧΨXHeΰΙ[Υχ‡ ΰ–ΏΓρΐQϋ«p]«`μΈoœ{-9‡Ex8Dξώρζ¦ΕςY―u|i΄ǏόczπA2³³ΪR³u₯ω9Αύ³*(;FΏ)j;οδΙ“™>}Ί—ŸqγΖ1sζΜo|»ͺmΫμuρξ‘UλΧ\j†Œ“€E‘βΫ>ωΛgӚ[ΒnτκΥsιΧ!Ρs •­μ½χ–‘Ÿ<uΙΡGΟo92²΅ΈΈψψόη?†>ΟΪΨΆMiiι6l˜Σ₯€?„QΞΈL'λ μ=eΰM•Q5ΕεHOΣΉ€N•Y_³#pΰMΏyξ΅N&²γIgΝκUY|ή½—,NOPΉšˆ)Ψ’ϊ葞=ώ)"οTl+RΒοk~δμ@•ΐΚ΅κύ$΅ΰŒΧ_=‡8σΗt‹xS›Bά§npkjE\kq<ϊθ£ μ­ VΧ•σ碏 Jΐ°aΙΏαχΏ‚3fPYYι©ς3gΞ€  ΰΕo’Θ₯”t?±Ϋ[΅ [“ΕEEΏ)ˆ )ˆμgΦσΟμoυ=΅Χ ¦β'NΜ|#3cI`kφSu<ΡGΛ’K/έϊΨK/juν^F5·Φή0Œ—R©ΤU'L•ΟƒiΖ ψΏ=mΨ‘Ά,³ŒΕ½Έΐkx7…L†Ή‹w�Mτ…YŽ«›gΑδίΈ1OωDvlιuP „{"…pςοŽϋ%ΖνΙWTœί]₯qΙ‰Ω6H$Υ3“Ρˆΐα8EN?>ωδ“΅rδnί Ίη°M-om-ŽυλΧ“ΙdxπΦ6Τ•σ:CΊ;i\t,~Qν­‡Γ̝;€P(t6ίΨΆM―SΊΝ-.,ηΊIk „‡?λpLΩaωβ;vόf γ&*S΅~gαpԊ 8ο<ϊ]uUς³cΘ’’Θ£:u*Ρζ+B|Lϊσ πθ΅d-ΫΎρIΥ •[Ί/� †i«,ΰžT1 6ψΪZPΧMrΒ;άŸ gœνΦΪΣEΰJ(71Y0άιΈnu:‚mσ;εHΰŽ‡”Wg¨³ΎZ='ο•[Ÿ Iεvχ΅°zυj’Ι€Πthjκ-ΈFχ † ¦ΥRJ;LυνΡ}ΪPW.³ΕΊQUoΈΎΠ8GεaδΘ‘!μκκκe| ₯€ΗΙ]f … ̐Ζψœ?αΨy:–vόwΥΡUέ‚iΧ^{]WGλŽγΨp‡‚bΧΑ²`ΔΈμ²Τ‰ηŸΏΎf―½ ‰D/‰F£³₯”ƒ¦~z9ε}j θυwόc4χιc‘θΥ—=Χ\Ή¦­πφγΌKBS6³‰»y‚*νΪ&·jA² ήΧιΤΩ±›‡A£&"%¬ή¨βΨN§uΆ zΘ8ό α³ΕκyξαΚiόψρΩl©±v6ο~ ίTœζζισω%“If͚ΕΥηα£ΪλJwΎu¦κ}“eθ1©ΦΟ‡LRύϋχ/Θ)θΧ�½Nν~GeeΩ‘ˆA("… ΒQƒP8{ΟVTaKKŠV ή†eYFuunΓ4 ΫΒ\Bw+~kSΈΔrπΑ0`@ςŽt:½ϋcwΐδŽΏΦ+¨ϋžνη^cΉ„θ₯­Η—€ˆzœQ8­μZή₯”ΔΒι€Γ‡p‡—–°D»‹–Žπ§“3|0+uUΞ‹$% Ά+²XΕοX–MΗ%τ.³ €«._λ”Ι†.„Ω³g³nέ:­4ΦPΟ[Rέ[σήΓ† ຟ:υΣΪΊΒy^σ >έΓ†€SgK—.­oiόφBΕΡ₯'WV_ŽxΏ¨φ‹Έf·ΝMΣ ϋΙ]ΤΣ1,Λ²Χ¬m#]%•Ϋ²Μέ\ΊˆkŐaρbψδΈώ|8Ξ‘:M’Κ¬„uA�1F:\ΐ§ŽΙlΧM`iω“Χ²SΫ‡ΏtA‚ˆυpΈ†?w| °δΛκ"c“Ή8< ²›–W@w¬^Z\Κ–-ΚmΑx„PS§ γ1�� �IDAT‚¦Ή ΛΆρ:MΉυμΩ³Y•:Ÿ­9iέΤΊχ δΓ1{φl-ZΔ3w)τκΈ₯ΊΓiαέΎDπιΛ$ζ¨οώύϋoϊΊ–9s਎₯ŽΔLBGܟNτ±Kΐ0εΕ₯§.^5,ΆmS_ks.JP„ήZ‚Χ*Ϊƒtΰ;<ς λWŸžu“NzžρKϋš»/ΌK”n6dφ‰C’•ΰ΅ΈK$„B 뻝847—‘Θ‚aYK— ώW¦ύ+/€‡@Ίx) ρ(υUxηΜW―ƒϋfURΛΞ•vΊV’Κd=–½©TŠ)S¦ψ€j[${[$~s82™ {ξΉ']:Βα{ωσίr]iaέΆΠʍΐΣΨ‚έΣUν£Ύ˜RΚ Γ0ξΫΡΔΎβhŸβpfNYΗ‘ˆ"μHΤ$5inzDr~.e3,˜8uί;άτ €εΛΣ͌š›BTβ.Α7w0V‰ΎΦhF…w ωψ1mΌ€ύ@“ζω€΄Π// Δ;_x,\—)λ6¬§cιvβyšΕZ<ιό@‰4 Ž™΄9+τ2juα&/#=Qd΅ΆU΅Ξ”YΗ2£Ž1H ψli6lχ2ΈεR˜6mώσŸ•{†5έ�§Kφ|’Ώ)- )γ@QQBΐς²]ͺΥu₯»λ_cή^ά\ΤτοgRΚ³ wΐ%Ψ 6>WΨ―Sχ^K^=Ψ"R"¨λ"GΤx=^³3’β’KάƒcŒX,F]½l›’Ivμ Jo‰ΰ’P鍹Α-‚T όο t7zWΞγξΆ¨$7žχξ„ρašτp¦nΘJΧηž|Bεa{p+Ω₯Lg%8Β‰£$ς|Š…ώrzο2O™γΓό~Ξ<ΌλΏnγͺ½-ΙJ0ι| ­ƒλD±l₯χΤΰ‡{ΓΩgŸΝΏύoŸδΕ­3Θqϊλašš^Λ§H))//'™L²α­¬Κξ‹ΫR]iαΌΊΏΫ¦m'η]dέάπχύ’ahllόbGHυ oΪ«¬σ€EF4B½"1GᨙUΫ½ρΉ©»2 g%e:m‰†zΑΐΰHτŠŠΞΫ~sΉ’Ά9‚wYͺ7€"οXύΡGΥ±Fύ«²ρτΣW<"r½…ŸƒCΆat7c ­Α’=|’Ϊ'aLƒcΈΆΥ8€�iδΑ‘N‚ ’α’Ω4$-›CΖ|쩉ή"‘Ε£«Χρώώ<:Β™ώ`φ§„œL؁<Ή gt’›οŒkΌΥπΞψŒ�Gq·άr‹^²&%΅J³ιρxs’ήύN§Σ˜¦IMM Λ_±€δmm]e«Η'Ι= Hkgoδps­ϊH˜υH)ΛΒαπvBQJχ«* ΝwXB&nˆ:D¬«λYiŽ Η /… Lη©Κ"X²ρ&p}ŊuKΆ'ƒαg™nMΊ*½Ύΰ-ŸDwΓ:ΰμ`ή³ώΖπESΡά_™Ίj™žιθ<΅"μ*½ZΦ”dΏž»)΅‡0ʘ΅ϊhκ3šT�‘*G’»ZzΧ&½πδEω Ό{ίnžBεŽΤZXυ-‘lψςM*œmε —;ωkLϊ%:ψ‰Γ֘²Λζ<?:ΌςJFŒΡ’τnnϊ-ί<Ίξ'₯dΜ9D"€”TΏέKΌ,孟fλJϊΫRοW9 ΩmCM-Z ν1°m{zN%΄.ύΫy »€Οά΄Yr£Μd© Ψ6οl O=Χ-νή3¬Τv3l(beL%,b±θ‰+£}ψπaŸ77i'·vέZs%ΌΖ!st)‡Π₯„Ώ]σεξ@ΣU*Θͺ[ϊOhξzςαςn>=•UdΥ2‰ε Τ­Ϊ°‰3_γΉ΄ G|({ŽNmΑElM9ι‹l<OjΖ‡z‰H€Nπ§»~Λαl_5ιοz9ΌΊ€Μ€£ώgΓ:>ΣδθRτξ₯όVΣΚ*•ΤΆ½Δ Υ|Ί§AiεψηπίΑΌyσ0 Γ·LΆ9Λ|kT}χέΆmƍΗξ»οNΗr°?‚²ˆVZŸkU]Κα…uΫΠνš›/ŽζοΆ«�ΏlΫhν 1�–mƒ/ιρΛχΏ)‹ †χšΐnLa5$±“iΆ ΣGδYΥέτα‘ Œΐ S € “²)ˆHΗ(Ι'Ÿn‘„Ιφ·Ζsj]σΧΏέpi΅ΣΆαζKιλβ[‹β€ξΏkΜ!ˆ_ΐ,r8³τ$,ΛοΔ”-ΰ K₯� †’.•X-‚­ν>σIΛψ°¬‡`šάwΧ­œsTm~ $ί»«-hR\?Φ}>ώθG`xε6Ο!\)Αpl,fSν/`ΙJ-οψΛqΒ¨›εΕκlτRοθδζΏίσ©ρgœq¦iςΞ;οπ»_ΐΊAXΌ΄Ής—CwΣ‡?z8t==‡μ₯ή §d¬ ™L†ς£K&υ:₯ϋΜ ΧŽ°*JΚ~γJγFaπΓΧLώυ₯ΕΓK‘ ’79tαΰLGŠ›¦ϊ¦"xW}7LΙ1·T0 £vΐΦΡ"²«ήt5^'ζf:°v³ϊ< α—ζ>ώ rέ\\ω¦Fd§γt5-Ύ ΞXV ξ{ΕkΩgH+pˆμquΐbΎ/°Ο=:΄+γFwεΣsβ?C€²qΕ`P υΧVobαϋΰμ£4 ^ ·^₯R�‘Έ;νt&' ’Žž‡κ„_€9Ÿγ1΅ξU°l΅ΪžΚψ›ΗΕ‘Jkψ΄Šumlzf~OΫΚ°aΓBpφΩgsϋν·FσZΞƒΛ\-ΛβέwίεΤSOeΩ²e�Ό/<χΏΡMο.3ou]IM« ”#Xw€²C/­y~–κiΛΊψ?P§†aŒ:XΑ¦Ϊκ;vϋΙ§†ΓαHUY{xΜ'ϋT u•:¬²‹�΅.’UΛm „°‘lKbeCp₯Ήi�–_Ό»�˜3gVδΉηΖ$=cD 56ςό‚,.’W½ε­A^~fΎ­Nhm²’]‚Ν—•ΌŽΝd·Γiˆh_υ.%kͺ·P»δtΛ¦ΥŽ›†L…Dτ)΄T jjԴ֊°bΉ:NΊ΄v4ˆ½φθΖϊ%οrω[)-…B§q‚7¬6y'%‡Bα9•ΐ}wίΜΩG$T±!΄§ͺΗ'Ϊλsΰž'αΖs‘ΟάNŽƒβ¨4#υuœo„c.†OΊjΎ ¬¬Œ]wέ•}χέ—ΚΚJ ©©©aαΒ…ΌρΖ¬\Ή;Μ!†_ Wž§4Ymiλ6φ‹mS…GžΗΆm;ΌΫY}FX–ύηx,:JΓ§‡(*uT`­ΏdŸŠhΛ;E‘’qΣYςͺ΄Ϋ’€“6©€E²Ρ"Ω`‘pŸ ‰† ‰ Ϋ†’Š0uΙ-ΏW QJ.»LX%%ψχάI %샕”oLη2}π“ODδΗoΪ‹πΑgy0OΣtιβrdg–ώ’‡Υ³"wΉPσΦϋΛ_9eς2"Α‡-ΰ 8N<±yΒt…—FΕͺ«aε X½V­iAqμ3†½C―κ”Φ¨ {G: vωˆB―n€ƒμ±ΗΕ >ρ FŸ -€ΗoVg$Rpκ50|WψΥOύu£Γΰ]aPO}ζ+ͺO3`}-άϊWuL՚j/ƒ;Ζuλ²ΌΔ`πΐξ ν΅…ΛN©‘OUVκ6‡Γ+W }ΌΊψξ‹Ο—^«q+—τ²Ϊny©„'Wvƌ˜cμUh³΄!;-TtŽeΣΦ€ΉΗ „#₯"Ψ6Δβ&‘˜²Ίd2’tΒ"Ωh“lΜ8Δ­y½b�VF/ QXz=L&-[„QR ^ZŠΨτ5Š•SZ 2�ʊTϊ»cdOUΣ8€«²ζ]­¦;:ΐζϊž}βŸLΩϋK~zP‰Φ67INsS©ω˜€”CU•ϊΦά]¨7ΰ΅/‘ρsXΏ^i+WΒΖ L@χ±Οžέ9Ί£vb—.εΌϋΪtŽϋΑ'J3ΣΪ↋αΠsaΖ{pΠήw¬ϋsεgDn}-Z{jEo†BΌi,ͺŠαŽKΰφ‹΅τŒμ;Vn΄Ω₯ΣWjϊO΄G0LΎ°ΒwϋN›pδ "%€…ΰ +Ήwn¦P«γΕ*ήυΓ2LθΨ`'<°ΜΰΡ5q@rΗΠDΧΈC₯ͺ±•:Vs冩*ΦΚ „!œŸͺW΅Ο?[V+cƒ ‡—Dξ΅­ƒ$Ωι° › T–―–Z‘>½σΌ;j^Ο“~Sl΅ *™ (ΆKΛζ‰Φΰ0`πIpάq­Οˎwφΐ½ƒ`λVX΅J ¦ί¦vH€s„Ί₯εαT§ΌϊOπΕ2xπ:ˆΗτ„³’Χ–plSW£TζqoͺΙς5νN‡Γύ0`~Mœ{ζuaφΖ"b¦Λ‡σμ‘<>DΘΛΒN€±λτI)P\ž;uΧQdwͺδΒ“βς0©€MΌΠ$V`+  ’Ά'Ή]5έϋΥgΌg&-1C‚ŠͺX"j cΟ=:”9­eˆ:? 4Α+ άmJͺηˆΪ,Δbj‘Œ”ψκλBΌFΤ‡yΠόά[jYs$πˆ<Π rh»%6Lή·B,nVͺΰΪάkςβqθΧOύ ™κκ₯₯« cCΨ„Ÿηά Χέ·\δ”I:MθΤ‰RΦΜ`ύq’5­ξήκύ@ζΦω·ŽΓ€Euq_‰WVW6²„]Rˆ§šψ$2p\Ο F$„‹`§2ˆŒ !ƒ‰iήkŒc†έ’n\α•ΗUα͐›Ό{ H)±νfYUD6œ!PχWW‡RRfš7ώδ$†ZŠΨΙ_ΩA‚oŠν;Cm-ˆHΧ“'Ύ+iΌ±ψn.qUmΖ|}όAϊ‚^…mΕρ»NeχƒαπΓ[¨·o΄N,Όφτό\s/ά|Ύšu6ZΘP]ς©ΖKWΒέ΄ϊsz [:€€œ~εΦ­{Β‹Oeη[ΐ€Ό±Ύœι«*™·₯˜ˆ)=…qΘ±±ΈuμNsΞθ'Ηf{Τ#B$žέGξFτ†:Z:Z.mΆΔΆ$™΄Ί8ΒΚHlΫ]"œ­#mύ3jω³£)μ@4₯ͺ*²¨`[@β—κ9Τ’ΧjžΈΩ2SY©ΦΉoj€Ρ@RωJδϊϋPγτZ›ψ 8nηΙΉN©8„-9xw„ψΰ—κ­·su/Q–ν%+ΥΕ Ά„ŸŸΏ}~σwΈόT­ΘA-X ύΊεϊεΓ‘Ojζ­“¦μvΰvφ;Ηd$@˜`ΥWb5T -›OkαϊeΚνP[aA6oΊ΄vς2‡Hί¨79?U‡mK°md&–ΝΪpŒ(jΊ,KԐBuš—¦ΒaΫ+£~锍aΈSjΫRL@Ρu–θ=βG({�¬τN?"ϊ1€†δiŠ\¨1ΊΎΝT#¨&%w>iH7Q™όΥ]π§Λ³Ρ‚k±›KΪ—'žλ4ΖyMζf'_±šΔ!ism‡³χαpΠAΉζΫ‚`] ο=#„‹nƒ;.ƒ1ƒ•ϋΞ»ϊ΄= Ί²ΦT³zadώnL«Ιό:ο€αΗΒς5)Γ­i*fՐ„M[ ΡIΓI$5¨ZNοq•”τ("1±$ΙΉέ2…2†ŠΏΥόΊc6y$us„οΣœ±Ό„;«6S(mΆ€l.­νB4¦5œyΚή‘4WoQĚJ35΅ u˜r—1ZI&e{ΓYΫVέ²l,KI{Ϋv~Α 5±ά#τ΅k·6}ㄍ"μ δ³ήZΑVˍ4C0Kίf#Iz†·&΄Ο2/šE™4<-β•!QχΆυο9Γψx§”κ¨KΑπnjͺnυFψj τΪn»~ώψρυπχλTx―œn'“`z-წφ€χ‚Χ˜JΎσΥFψT;€sSM3x%|λŠ:Ε|σΣ8―k ‹!BvB 26b„3fV¨ζHkα#drΒ˜π³šJoψ‰‹lzNΑΥ‘aF‘‚³WsΎθ…ιŒ3mKΣ2iΫ[! %Ε3i‡Ψ3‘[Ž&c+F 5Ν‘˜Α–ϊκχτγμΩξ6jΌ]λόκΙyS «ξ˜!HY­a�ΐθΡͺΎ ί!`σΎΡO ]ŸtΦό|¨ςP½—¦σβSγ[ΒQ0ά{ΰΞ£™1#7ύo |εΆΑΊ‚Γrη ¦©wͺ₯°έ;«‹πΚ,mXCΆΓ/_ηO·©&•ZΟ_W‡GŸ|h‚Θέΰ½ΚaΓΫ0¨oΛe.θ‘CB’q“HΜτž‘˜’˜Β4αΒ0ηF6\ά$ͺΗqΎυwΈW—Ες₯ŠL)h@DΓ…1ŒXAΘd€™P{ΛΓ–%‰DM2i›tΚ&²H'mI›LZύ”Z―$»+έ]u 5±,k†Gθƒt_.R¨ (ξΤY5ύδΞΛΉ«γtΠ[Ί))ο†ΣΓδ#v'Œa¨F?δ,²kΤσ€Πγjΐ[<‘‘υωεΙ–oά'²αZ#6ΠQρ$¦mΣ₯rΘ·ΊK-ί^™Γ](‰ΕΊί|τ©ΰχW*η_―Κt»³ΗΰΎ§‘Ύ1—~Ά(π%‡‘ζanΈ`kQΌpyq Ά¦~ϊ8dζΒOnΊμ£Žο™C°ΡΈA$n0'ΖN₯±“ΘŒ–MRJbqƒHΜ 3|„™DβΡΈλg¨t=ΒW~ΧΟρχπ{q”_¬ΐ$rζ™ͺΓͺΣ…MΤϊφ°"4Ϋ–‘Ϋ‘[ή{±λ]f‰ύœI?ϋΠ#ΫςŽ=֚@ ΅-޲¨:Ώ"νWŒ:JͺD{Z'Ψb4α–η[ΨgΥΐΏΌG}{ ƒΐw +š;†sθ’7_Ά<&Β΅G€ ξxNΑcχΗk―ρ‚«^WWΓ“OΒγΗwa€(‘ΖnR²ΗΧpδxΊ+l­‡ΫV;Ωώκά²ϊ“π·€£φ74Q§:΄6“ώψAeΟ γ1Lι―σΌ8„Ίχ/W¨λŸϊD΄»φ�fή»˜XatŽΖL’œΊΖ4vC;‘ΒNeΈͺ¨o@R>m (Ρ#qC{Ο η#φ@ΈX‘ΙK”`§2Ψ d*ν1œ/γEŽDΔ ”4Ο€ά%―Ω_:e“IΉΔξ¨πšdW=Q"m8{ςΕu^σœvΪ©±>}jά¦q₯ Έ§ΞιΤ‘ƒΞšσŠΤ\§gΐΌΟ`ΣL¨ˆhაo˜ i~TΎ8Ί·Ϋ™E3αu]nΜFr›žό0{OXτ΅ΥmΫYhτœ{"\ωc(‹ΚξBΥΕκΰ}~ςΕ"†”=L| $Σ°pφQκtΨϋžV‚ζΙ[₯«NYžFΎϊta[4™¦k%)αύ%0ώdHk3@ÏμFAyΔ±€Ko k₯l’ ј‘1!±RBJ^ύ“Đ’!$a,αH!Y’dίsC$₯aOΌ£ό ΈYRRνΤ)-{ θg‘.BΠΗ&SQ[!CmfPγμ]k·r’½YMΓ%Σό‘ +λΒΞύΞ ·U‹λI&ΤbΓž&©¬ρH9ğ°H&,R 5ΧPXBD2‰χnžχUΧUW!CΞΨ*ž8—‡ ςt>Πύbp½snœ5 6�E iη] ήAz’^_Ηθ-α°Av»ήε‘J…—’΄apθιW3vleέp—Μ~ώ9Όό2μΉ\{Œμ"ν/Ÿ^.W•]oDuΆμΞ±ϋξΎ™³Iή]Ν‘ο3.:ώω"<ύš"φ'nuN…Ǝ€n•ΝΰΠκ(g–C/ >Ύθ΅‰^·mΕ!%<ό*œφ‹6T*°KGX5o‹#oΧu>ΞΏξωD£Ρ=’ΙδM₯mΩi Β’iΦ'–·/8΅_ά,ή«±α”0…“llΫΚΖι·φΓ’Oj1C‚Mλ’˜†›)‰mƒe)ižqTωTRΉ•Q΅Φ©[œΊ††+>Όmρ-^•ΪΆmœwž‘ξά9gή<l%?§mJͺ·zΌΘ(\=μR «^ΘϊϋΖΪZη«ήJ9JC Sε(#Ίs8̎Pu‘/_jJI²ίώΞ&ΉΝRέUΗkkaϊt¨έ·ύŽΩO]G•ζ-§[ΖJσπ*°΅‘βΪ[°‚1j»jΟ]ΰΆ‹αΡiπoη2ΡΏ^ EP\Žυγ%p°Κ€ζη §iDΎφh©­ΐ!Mθ>VohΉŽ/>ξΈHK0€CΗγϊOϋ9"‘Θ=Ιdςό|Ϋp[–6 ²/›5i†ξŽšρ½r�W7²qu‚šM)lKfΧ~Ψ(5=£TxOͺ'7*ͺbŒν?!όΫΣώ˜ρˆ:“ΙΨλΦ΅ρΒΈz|γ΅H°S‡Θ­5ίωΑY‘uΑjηӈ³xšjψΌι;nRζ Τ"Ψ1›ΒβB:H€“ΐ‰“jψ I^Ÿ'›NΊ–oΌw1BbΛDϊtαΣ‡aωαψρŠΘέq°Η€ς‡λξ9ؚUΟβxœΗg οCηjΚνψ+ΥΕ‹w‰Jη§7Βc3 Ά.[98ςΥ‘ξxχw[ΚΡ † +§Α…'5]ΧBΐβιpΗ…~·ΰlΫ&Řή[’ˆά4ΝΟλλλ·™ΘL#l !Έ}Ο™KoΫύƒφŒHΡp§»9₯ͺ{ι”MQiΨ§{ψ”c˜sriΫΛgyU”†D’ξ7'έ‘Ν†n[Ά΄α–~U:H¬a²†ΊΝ/(%[:ΐι§ΓΌ…0ΚΉλΟν²Λ[D\γ>τ~¦§αs¦ΥŽ‚έ|)»aώύίœux5Υ+ςtP ܎΄hά{`ΦΜέ8ξΰŸρΚc7²~ή―Έωη)ξ°‹ΗψΠςͺ—IκD“Ο= w©r—nŽ)ν:I•Ω†Υ3ΤΑΆ '_ ΣgΒͺ7ΥΒ”g_‡S5Νγvί}κΉσΛg�mS9Z‹Cΐ—ΐ³wζΦωπώ�ϊvΜ2–&qkύυ΅Ο`μρ …–Y–5Έ­W~·Q3΍|σβΝ©΅α”ZnK΅=² E ozΝ•ήι€;N—ήΠ*R{֍…Ca% †/h<α;–7:θΖ77‰"ξώ–�5'ŸΦΒ‚Ÿΰ ”e_’=΄Bhι‘`Ω2xπA%qVΏH–Ή$o^€ξŸd€΅—Χ¦ptqΖ½šί΄_γ a―#$d 8φu§œ[ΓP7₯Ύψ"iΈjκ8ζΘ‰„3Ξ QΗ<υάK½ϋΫ9ξ>›ƒο%ΰP|ο‰w §–Vc&MΌϊΧj½„γΎ΄’Œ[‰9ͺ9Ί^œ ‡ώ4€^}ωΤuΆ§Ϋ€cSφ>Iβψί?AΧbΏΔ1ϋ 2 ۝₯„fΐO―‚P(΄0NΨIސRrΩGc/ —?φώ λlZ›ΐΞHΝ —]4£4JAy§‰DͺaΞοΊw¦{¦·X,FUλ-ζ@'ς0j*9hκΪs‰"pύΖ8Š1ψr§:BοήpΡEpη`ކ­³ Πέα¦IΊΰŽ57m·Iν[οοAzφˆίν„ωpxC¬ήy}β¬ΓVyaC6¬Z ƒ+λψΗsΰό“ΰΆ3α§ ¦°:ο‘Ά“α|άΞάP_›Ε"4©¨Uϋ’—Γ“tˆοκδIxv7­x,Ξζ­PΟβθSΙwαΩ·ΤΝ$ ŽzήbAi„‡Φ^αhεπεw[Λ± 8*c°πir €½OUΓ'λεwΔTxξ5BΌ™Ιd&|έDΈ«ννόSžξ=€~뒏k#₯6I`₯Υ’WΛς: R Κ:F°’ŝΊ»D>R‚P¨δC¨mžΠkΙnSmuŽΙUΩM²‡ZθΰjB‰`ξ,]Š œ)α―Ec`ϊύ0ydΆΡυΆΞ1Јΐ·σξ©kŸqH·ΊC8ΐ“ζ+Φgαμ»9λPΌ€.Ž™‡ω+α†c@dœ΄,Eδΐ(™Q›gα}zλ¦Φύλ~ΣrU¨#ΈΣEA–Ε†j(οš‹γˆμ%ͺH ΤΉŽCΟS0ƒΒOLΫ\Ž―ΗG_ͺυάΆ•`ΛVˆD"—§R©ίς ΓΟ>œ²₯8gΘX‘ώ%2i›Νλ“HK’ Ψ$Qσξ5u5ΧΞώέηΥz>RZ·~qsΣ!€s·ίA)žΒd ށyσ`ƌ‚σkjjο …BH)fΖ’ƒΞ’}φoύ„c3πW£]‚ι­δ?Ύm¨Ξ‹;.φ…uq„«xεΝYl^9£`Σc΄–˜†#,aXWM:ιιȌO8½Oj uκ°!ϋ₯i,ϊt”.‘ƒRR₯bi§Δζβ°²YΨYIšwI«ΤάvBΨγXυΪ»„F©χH$28•J}Ξ·†0RyyΏχ "ρ1(νU+ΰl΅NωΦ‡yΥ β~?ϋ½oίΎ_HΉpΗ.έtΗ|EάmΈQZJX°�ž~:ty*•ώ­‚3Ροœ Ϊ7Ÿ3σΓΔ½ζh˜σ$ŒθιΔuώ†έˆβ:ΒxawŸF(όaΘ¬c~ΟC?άC]·GΘ—_υΤԁΙώ{dσγΛƒΦϋu«³Η€ΌΚT§ϋa& �� �IDATj8„  `ΰϊ ¨?ϊ|χΈγ7ͺ;±μw2!VŽ1’ηG}΄-—…οPpTω=ϋŸΧνδxΙΓ‘«9u»ΊΆzςŠΧΏœχΔ]ύ#‰μ~ε•©Ω;,g’¬q­ˆάuςΝΐ’EΨO?½ΊΎΎρfΓh>βΈqγboΏύφ* b·ή0οie²’X:xK°ΓδΡdr΄›@ž€Ψ^±Πα$-Ύ{΄rxεΝχΩΏοσ€–.δݟŸGK@„ΊC§3›Δ!M“ΤWΏ""ΆGΠMζiχs'Δ±Υ‚’=³ί¦iN§Ÿn©}N§{ωȊ 5ΊŒι?vεcSŸΪ2›V“}=•JU›κ˜« 4=oΎόžy¦πΧ55uW«ΉΔ–+ων·ίNH);˜¦yβ‚/ν‡##1Ξ;ώx™Φ˜Κζrϋ€θ¬Χt),jŸΘ&)΅οmΖ˜€γ/<.’ŒfαΊ�‘‹άŽšσ-ωŒρ₯Δ±zνZΊ˜d―ΪώjΘΝoLpgΐ•γά4Ε{§Ÿ~ϊΎ<π@fg$r�gZ―¨ώŠgyςŠζΖΒ{Ν5W­o†)΄β΄šΘ—/‡_Zά~Ψa2kkλ―n«USmΫΈθ’‹Β¦i>qΟ?ΐά]©bϊ5::‘Ήuθ‚8(©ΑIKKΗηΎ-8β»:…�wκK=%/Ώώ6ϋŽΘE‹ηϋφ{εˆ+θ9q %―Όπ’wcμ6γМdΰι cΆ·_`SΤEc-ΛϋΐOBόNƒΠ/Ώόu‰DΝ΄)υ\Φ¬_ΪψΣ–-G‰LF^vτΡΗlώ;οΌΣΞd2Η 4(lš‘wΌŒΡpυίΘn·Είπ9†όΜG šŸgΥΥUΘΆΰ0 =pfIΫfXηs:wpΝΎž¨>Ε$u―p₯η¦γ7Ϊ­λ‚νΗ‘ΉyWΰέi¦΅w8³Ά‡„SnP·Χ„Γα{ήΫY₯ψφ€―DαpΨΨΊU|ν₯”Φ­ƒ[n νξ»3"“±Ο}ϊι<“œΫB>όσL&“ΩηΔO ›¦ωΞMχ‚1 NΉξ}hhκ΄ΤΫƒ€Φid6¬o,ˆλS[‹CͺΓΧ₯ŽΠΌπ―¨rg9œαƒ«!hύΪλάΊΚκ p;t&»Njsζ~Κ»ν�z=9~σW*FΫ 5œ;N}zn­ΔpΑοαΡ€βεt:}>ίSπu,³Χ¬i*θφƒ”j5Ψo~c>ς‡?€D2™ώih›ΆΛ΅ώρd,ΛΪηWΏϊ•FŸ}δ?}ƒk³ fkH'Tο©KwόΣ%π&qˆ˜†Γν•‚Gώz‡ Θ1ΐ�o,|’n–šhsӐB`m|ΒG$Ϋ„#πtί;;Η°ν«τU;GΎ4ZΒpμ―ΰžGxΟΆν¦N­^€Π₯”lά(wψ4‚”κ²Ϋn3ŸνΪυf3•²N‰Έ· |CpΣM7ΩΙdςHΛ²ΜX,vρ²΅‚Sΐά.ύ#Xϊ‰³Yzσ«ε4=ΦsύΌŸΘώΌqΉϋ­γˆφRS…Nζ•_Γ)ZΩ©.7}ιγžjκ{’‡HWπpΘl|)ωσύaΜn;�‡ΜΖΡλ£" [ίWίέ&ΒΓ/νxΎ0­)‡ =¦ΐΏ^ΰ…t:=φ›Xιφm‚―t©TŠ1cbςˆ#v ­K ‰όρβΕ]w~ΘΗΌΣ8,Λ’¨¨¨W:ώO&“j ζo§Β™G‚Hiκ΅K”RSΛqά5ΥΡ›v <ύ‘Τ·§Ι–ƒŒΓΰ=Γ”1Rβα2w‘‹Τίέ$στO7―ž_ρΑP΄—OM‘ή~γzώΫ>l'Ž<\o Ψ&”ο«N²άζύK­ρί‘8Zͺ+ ,Xƒ¦x)\ δΩςςύŸDD"lάHuS[ .ίuWδΝ—^­―—“w&"0M“ΖΖΖe™Lfh&“‘HδΘΊΆœs˜Γ‘ςpηӐ i$ ™σI“`Η“2V_’λ :£<ψ–ΞΉšΗHiL C6Mτχ€V γφ-ϋuέ ‚Πnό�fΞώ½Ί[΄°#p8/2O|Ϊ6Zσ†ΪχΩbu-Τƒ/kuΊp4WŽŒ £OUD.„°ξό9δα•½z•Όqϊι΅γσn €„dξΉΗx§€d—,]ϊeβ›VΡ·lΫζάsΟ =ϊθ£§744άjΫv¨{ʎ Ώωt)agUz]`KΝ!(Ωƒξ άlœc™ΘΥ tCΰΣΌo‘Ε­ΖάΪ·›Η.7#eΪ"<πΐÜ6yƎΔαJWν;_9€„:zLRλΗC&<υG8t‡C/GΖ€S―‚Η§«oΣ4―««;!oi'Φχ r]ΈζNoːEJuυο½χ³ :ο»rεΚΤw}ŠB]%}™qΧ]w`YΦο€”»I) €ς˜z&œqTΔ4ΒΟGΰψό’Ghί’~9Οƒ£λυ€ΰΛUkXόΑŸψαrΗβω£Ά„cζ0ιΗκ¬:!ΰ¬ΑS!ζmΖaΐ’υpΘΩ°xΉς2 γΣ²²²ΡΥΥΥ©<%ϊήCΎfΌδškΈ£5t*₯ΊΨοή{CσφΩgςΟ=χίΤχΡ¨a9KǏ_4gΜ«-Λ:+N—ͺΐp.<Ξώτέ„Ά-Χ•NA‰Y†�šΔ€zpx―K·|_Χ*„ΖΒdΪ'γ°·ΌΑaP*ΔΖ‘oΩυ$,­Η1s!όθ"X»)[GΗό�~yŒθ«)–†Σeš.ΎlMΒΏ^ƒ[οUΔνζΑ4Ν‡~θ¬Y³R_χ ΟΞ 9TΩ³gO?}ωτζθUJ΅Lφή{Ε‚αΓǏ|υΥ7M‡ώώA*₯„Β AƒzmΪ΄ιg›7o>YQ&₯τ.1ΪΞ:ΨϊuιχΌju;©šΊξ QEV] ΎηHΌΰΣυΦŠώΫΖ!A†•4νψΫ30νMhLz)Ψ€‘kHξ5L V±m©Λ§9 Ϋ0ŒmΫώ™mΫo~ΟΆ@N-tνΪuΨΩg―škη1Ό»~ο½bYMMtx"‘žϊ? ©TŠ#<2φΞ;οΡΠΠpf*•Ϊ0Τζ¦Ό&ŒQΗ%ο?ͺ:€H€΄Υ‰3ϊ84ΒшΛ£yhPc&>Ιϊ γa₯ω½9ώϋ6Όρ6|ΌΠW}6@(Z-₯|hĈΞž={ΑδΙ“{½ρΖS€ΓΣιτ(!D™mg{¦a™βββε555o=3vμΨiΣ§O·—%wSCθΗstΕπαOm nl1 Έ~c΅mwΎ|ωςν•Ω<d2lΫζ7ΏωMΡ-·ά2NqJCCΓ1BˆsΜ²78zνCΑΔΡ0|μ;Œ°Θ4# 1]Π ΤyzΑς y€oKn:ȈJoρJ˜υΌχ9Όχ!|Ί’)ΏΔ5 )%αpψΒΒΒ'ž«――_fš¦έœτM&“!άΝH)I§ΣD£m9εςΦμ 7 m[5iΒίώ&ͺ“Ιͺ‘_}΅|υwɊΎ³A"‘ΐ­ΏC9€bώόω»-[Άμ:μΏyσζQΆm‡„†Τ)ƒ,‘v,‡₯PΥϊυ„Α½ ²#τθέ« ²b`‡U$!Kq₯3Ξ΅mub•χ³ ν<“iE˜ξ―¦6TCc–­„Ο—ΑΚ•°₯V]Ξθέ£«εnžΨΆ@q8žQTT4oΣ¦M‹“I₯›·θ7 9„.₯4.»L€KJ0~XlY·`ψΦ­uΛΫΗ:_/€R)"‘‰D˜?>ϋμ³O%pμ^{5άε*ιΤsο¦s ¦ξ·ξηBSΝœ†!ί¬Akΐ^}β ±eέΊψq›6UΏ‹ΕΎυΪ!‘'“I£{χψ†ΪΪΘΘΖΖΖv†ΑΆmΚΛΛGνΊkΝΜ)ShωDήoάM=/½$}Ύφ˜cŽΉύ‘‡Ωiχq―B^*v₯K;|s ₯€°°°G·nŸt’,²ν6Ž£ΏARisηb?ΌρDiiεΧ­[—h ;/΄·Μ· ©TŠ=zT†Γλ?;σL»SΎΩŽ Φ­ƒGεγH€Γ6lΨΈΈΈΏΠήJί"TUUΕ2™ s.Έΐ΄#θ₯ΝΦτV¦™JΑ3Ο[–. ύ΄ΎΎώι};I;|ύΠNθί\ύuΖm·έψωη[ϋΗbm'Nw6DX³FΨK—Β_Θκ]v‘ς€Ά?RB(/Ώ,˜3§ΰ†>ϊθϊΎ}ϋΩνγξο.΄ϊ7ΆmF>ηœτΙΝΈ+#Ψ²EΨσηKcαB#SWWπκš5 ΟΗγ±7Ǐ?ο?ω/ϋν7‘ ’bζΦ‘#·O’̟Σ¦…§uθΠνΗ .ZίΎ^βϋν„ώ ΐ₯KάtIι_φpξΑΡ§°LS©Η‹,^,_~i}^[š …ŸΩ}χέΏφΪku‘PΘN&“9σΟ‘P¨σI'eΦτξέφ|ΉΣg55πψγ,kl,=zσζΝΆKξο΄ϊΧRJJK‹/8θ Ί» ‚tΦ¬|ώΉL,Yb¬nh=g±”––|ΊbΕΚυ©TʐRΪ­]LΗGœuVγGεεmΝ—Ϊ«πμ³’vαΒπωd2™φE,ίch'τ― &NœXτΦ[o}‹7M³π₯ΊΊΊiόηc΅‡zΈ‡νT*΅Ν„ε\ΎpπWπ|k“p5ˆ™3ΙΌρ†qη ACυα‡%Ϊ₯χ΄ϊΧωTνν)%‘Hψœ+ΘάΫ5 XΌXπτΣαWGŽsτ›oΎ΅₯}JμΪ[ό;RJŠŠ o:΅ajKΛSkjΰ©§BΛV―ζ„d2ωžΉCoζh‡ο΄ϊwB!ώyυΥΫάϊτόGd,ˆ_XSSϋ'!νήΠNθί(,δέ©SΩ+x€q8 3gΒ+―˜χΠβ?ώ4ΡNάν„vBίΙ!NΣΉsxΙ…²’{εJψχΏC³jkΝ‰Δφqw;4ν½c'† Ζ+WΎ΅ω”Sd ¨#΄\l\»6zB}}ύΛν’»Ϊα;{ο½whΤ(Ρxν΅Θ±cΖ²²’K<ςˆ½³οzi‡vh‡ΦΑATPY)ρxθαξέ»Έ‡QΆC;l+΄«ξνΠν°Σ”)%¬Ί;fΧ~Ε»w–΅U’X‘Ι JφXOΝ§ΥΦΖΩ)³Ηi"e©Πΰ›l)%ν‹ΐΪαΪz;΄C;|£ „΅…X°_²ώX2ΥC—ή#Œ¬mΩϊόΔ2’+Ύ‘žD΄˜ejVΓ—Ψ΅Ÿ#“Υ~ [‚-‘ΆΜ4.Η(;ψΣΥΒhίtΩ{ΠήλΫ‘ΪαkΫN#6? koΫ‹ωϋά%ŒΨ()LCΘŒ¨nάR ­4φƒBDΊ–‰‚ˆ’QH†ϊΕΘΤFΘlU§—;η’J)‘™†΅Δ:NzK>a.₯€ζŽhD„£}dbkΚ¬˜ υž°66ώξŒD΄κΫα{ν½Ϊ‘ΎVΛ/‰°`ί›d¨ό †‡„YV-€V€LΩ2³qΐ\ΰE5Ά w±…tŒˆ©j¨ϋΩΈ¬„#ΜQO;]'νΖΙρI³·θ£ό EΦΏAa…!­΅€>Fjώ£ΆlH=W}}δ”²«u†Ω.ΨΫα» ν½·Ϊ‘Ύ6«n¨€ρ‹EξωsQvDH”Ρ~ S™�a μΊ“YV$ŒΔzΫ@v2SLF6.‡Lƒ#Δ՝ΩRJμtΝ…±Γ6ΜkN˜ uSh/€T—ž: ">Β(5·Φά^0^Zν ΣΪα» ν½Ϊ‘ΎVΪ αƒ.˜Ε݈…θ�1Θ¬‡ΜF�š$?Ή›΄ΣΩΘM`§—Κτdz3$Χ!Σ[Ά₯Lμ FθvκC³σ!-Μ™K+cˆHΗ‘`ͺϋ@]s=J9†�Γ~rΛ3“’8»Ί{Ξ=Ψ‹eεFPTnDEEQγγ•x¨IԘhΤ$jŒΖσS£ρŠ_cŒρˆΔ[Q’xα‚€€ΛΉμξμ5gwΥ™™Ω]ŽΔzσfΊ»Ί««gΆ?ύ<υΤSύχήΡhz-荦w |»Uc–‘Μ> LP”Σ„R1TΒVΒ*E‰TγΏΣχ#sΨΟ£Ψα…Δ ξŠ9N‘dΪΥ€”2ήr£wŸϋΊ5«γ‹ώμ%;ε€έυ*υŽJM%X₯’Ρ³”΄{υ²h4½…tFΣ+( „ŠYA0|(JΩ  $"•MIΐ:–•—}#%¦R& ήψœŠ7H’λΑn%έHχ”uνDBΦΰS_L πy8qo_³†œHΖώ©Ο’Γb7„?L‘#δ4_MτW£ΡτΘΘFTΒJΊcd…‰‘t›«δ”`%Jοξ9R91ͺϋρϊM*Άe·ƒ”™b,Q|δ™ψ§Fax»> aJΙ_ ,#+˜.#Jεž.ΎšQ‰§Ρμ€hAΧh4½‚ax%ESW([Šl$?Κ(”§EάΑζΖ3rΕU^00Gύ.N’εTΌμφdω䜠Jΰϋ •θς¦€Mλ'aGΉ~͟u:D]Κ΅ ω„aϊt>FΝW-荦ΧPUg΅§ωβ«ΑiαC˜• ‚ DΆ ])”ŒRυzΫyη€b””8κ6βQμ0*•χX%#άα¨κbF2εΨ΄έ7p”πχ TλΌ£]�8”]τΕΪήΏ*Mο ]£Ρτ€*?α·*όΡZbKAΕQVΚ*Μτπ1RΒ¬ΚŽWρΠμΧ‡­C>_ϋ ND",AΒ² ₯ΊTŽMλ_«'#β`˜AςXε™/UQ£r―„Nž©ω £]£ΡτΒ0εΗΗ…ΣςMΪζGEτSw½ΩΧΒ–vy'ίΑyαΫKΕk/Τξ%œr΅Š7Ά!¨T”»”aWΒΣΙ=”CΫ}e ΣxaΣyα³^QξJ!p~WzΞ››„ιΩΧG£Ω–θΗQFΣλ(ιΐgΣφΗͺ~(”ς@d *Άε$Ι|μn^vŽL/o~\)σm„F%₯»]JT<ΌΦͺ˜4Π{Θ³€«ρνν·»00¬Z€D9Ι²Ι}Θ©GI 1ω™wΜΡγ‚G?†o_)fΛΡ‚ΡhΆ JJψlίέ•(z£’BΩH„PN<ΨJp’οΚψ΄Ψ'Z9v[jTMYΰΤ½r&†y£fE€»“ΈdŠ{Β‰#½γΚ.kω¬«LsΝW-θf»‘d΅τ[^[σψΒ±³,θΑΝ°¬Ξ–΅+ΘεH‰ΒP9YΗΜk₯+”γΨ**ΏY~EόY‘‡žkv΄ k4šνŽR6ςέχΑ(ϊ·Rfu'λ<eY+9‚œϋžOμ³Ά92™ˆ&£¬-γ2jQ~yδeav3Ž]£ωŠ ]£Ρμ0€Œ!ίrVί”Α|’άΡ§žiΉπ|ϋΊ©b“Η‰'VΘ°1΅όηΡMΒΠ·@Νƒφ3i4š†aψ0¦­}\ΤΜ-"ή|g-KF½“zOm#+j=sψ[ηαi$ηLWmΚρmφέmDΕU1-ζš]ύ‹Φh4; Nθ]œGž€QzΒ(Νκ3w²έςJ*D*@.m§ΆeΈνγφ|Tό΄’ΖWΊ―\³ £]£Ρμt(iρ;Μ‡VM*ΈM₯#ήσ»ά•T(ΫΆ‰'žUR^QzAϋ"₯ =Ύ\σ5@ ΊF£Ω©H&‚ρ !*’φΔ mKϊώΕF΄‘sp[*bέ–¨Xπgf@ώ!8η‹6=MσuD ΊF£ΩiR"„°”*₯†~}(θ1F SFπΤύ Ϛη17mD6φ'όώLZ_˜Bb­"KΌU:«tϊ°η†u;?ΊF³+’]£Ρμ4(₯ ₯T1P»Έ=ϊ+ΛcKΈ·ͺT<œƒΒYλΌ·θ»’‹£$6$H8‰{Η΅Œ;ΛπιΎrΝΧ-θf§@)e�^₯Τ€πσν36%œ;ΕαΓƒ@d:J!•Β"JΡΎ*Nι5MΨo†IΤ'ˆ'βηOŒLΌΓπhQΧ|½Π‚Ρhv8©~s Β©wΖ4ήΪψ€o΄o€YmΰΑ4@ˆ΄ §,u[)ΒRθ8¬Ϋξk‘υq#ξLšπaiQΧ|}Π‚Ρhv8RJCQͺ5Έαϊ†›ΜJs–5ΘΒS  hgα‹Ž™Vq@XJ‡υΆΝ¦„Mk£έxΐcρϋύt`Θ4u€œζ끡£O@£Ρ|½IΊΪύ(ͺšοm>ƒYf΅‰α7©―„„βlWΨχ4Iτ€μ AΉiΊx₯p*©xγω˜υLΓ€’Σ|-Πώ(F³ΓR’”²”nl‰OŒlJόΤ3ΔƒQlΈJτ!ΊNv}dS6ΟΖχ₯ƒ�nΠ\Π0¨0MϊZ妉§ΏgΖ«Χ;RκϋœζkvΉk4š‚r}η†RͺΕ€E‘θsE†1Έβ΅¦%fΖνI‘u·Jξ‹’ Η‚Φέ-’• G"%υΆνΊίG²<φνΛ¦|ά4 Ή=Ϋ§Ρlo΄ k4šBΚΥ”ͺYΪύ…0Ξ  ~hcΆ(Iρ$Cάέw•P¨˜ΒispZ’―6ΫQlœh±κ@/ ^IΘvhŽΫρš5jσ'υ_aι 9Ν.ŒtF³έI&ρ*EΥΪ¦Ψa-u_‰i!HzΡ17HKœQ— β Ω&±7ΩΨλlβuqλ؍6N«ƒŒK€|ElιΠ4dΥΑΎE{‡¬ISξΨ-jjQΧμ’θ 8F³]Ιp΅e\U5›ςΖ"Σ4,‘o\Ί]mΧΐ™΅V"Ϋ%Ξz‡ψΚ8ρeqβ«γ$6&pZœ˜ƒ²RΉs¨+’ŸQ”Όk³η»Ρ1qΛώύ†±%ίΫΑΝΧhz m‘k4šνJ2œ¨ωβ“φ_¨Ρή3ƒBΈΦENFΈt[bΎΕ_Ρ/b$Φ$\7{άA:pηώ“d―—B·βgάvπιLrš]-θf»!₯°’ͺερΦ"σΒ™ΗYr?ϊf”)ζ ₯h—’γΠδ84I +ŒόaEoŐ²{!Ο\'…lsΞΤι Σ-κš] νrΧh4Ϋ…dΏΉ"(c²"όRϋυή1^ΛΣ¨P$ˆMHNqͺˆ)E›”49ŽC«γUŠΔƒwŸͺΔ@»€φΎ6ίъ΅ΞNoK‘τŒΕ„ωΧͺVνθ¨wΝ.…ΆΠ5Νv!iϋκϊΛλl ½»{1Κ „%ΐDΖ{H!ͺ­I!9mRS p’‚Ÿυΐ6@JEΩ›Qύ£•š§Ϋa‰ ¨«=!9Τ9τ{ΒΠ·@Νƒώ5k4š^'ΓΥ^Φφ\ΫδΆ§ΫώνŸδ·¬ αwƒα”T¨¨"ͺ$kfxhT˜·KI<Ω—ξΠΡ―^θ=υY*p$Lπl°©x?Βΐ'[ιχRžζ1αœrhβ°¦v½kv ΄ k4š^G)εΊΪγrΐ†lxΨ7Ζ7ή3ΔƒQb€ HQ‰³Ρ!Ύ8Nτƒ(Ν¦dџJ‰T 7+βk™§­τŒuΉeΫ3Λ+EΒ₯ŸD§ύΏYΓ†uΝWύ+Φh4½Jr˜šͺμ‹ Ρsβ?,oV›ˆ"αށ$¨¨Βِσχ£Δ—ΖρΎcά¨L΄ώw‡ΑIΞ²¦’³³AΗ lddKEΚ§–έ™άΑv©ύLA04ΒσΠO³’xϋ] ¦χΠΊF£ι5’vDYλΚΨΨ΅ς₯’€ix…ΐ·ΨΖά(QQ…]o4Nta”ψ’8Ξ&Sιμpιήο€’ξT?_\TLx€‰” )`©“ΗŠΟ΅τΔνΏέΏηΰΣ΄•ωͺ£]£ΡτIλ8¨bͺζσΦθÁ>ΦdŸ˜I+ZΪ σ?œ·’DίKŠy½+ζ) [ IΓ’4LσςΕ™ΕΤοη#Ze μnDœlΑ·©‹}ο}†ίkθ|0ZΠ5M―!₯΄@T|Ρω,6/2’ι]…Ϋ/—’V)i ;”ž± ο‹Qd2W¨,1ο~¬ΉJξ#QBΌ—‡ϊ‰>&ωhγ₯eˆ‡H©Tξ€.Iφ· ˆ&€½[άγ—Σ†,3uœζ+ŠtFΣ+$3Β·Gεπ:•ψ_±eψ}†‘κ6'mŽC(™8&,%q©θu Υ··»!κΠ­ w•H&ΏθKχ „[*Viι₯±RΌ;½¬tΪΨΗλωΣ5_I΄ k4šmN]ξEQ΅φœ΅Χ{†{Οδ¬ŒJ$’IcBŽCsΞΠ4ιΊΑρœ`τΩ!ΌKνςά½˜φόϋΩϋΧG6ω3ΣkξΨ ¨ΡlZΠ5Ν6%Υ.) έΪ?ςNδ_ώΙ~ΛΣίƒ*„'xhχ)BIλΌ]JJaθγvτy1Κn—†π¬r6Λ*ο”Ο½»e!eΌ2>ύΨυΗΎaθYΩ4_1΄ k4šmŠ”*GU­;{έ“Ύ=|γ½#Όˆ" KμU6ν_ΔX}^ζA‚xf8₯p„ΘŸ4F)Cΰ]‘`Δoš©z&ŒŠv/=΅ΤSŸΣY­ϊͺ)Η¬>f£αΥ’ωκ ]£Ρl3Rv%UΩ†‹6œmψŒλ}{ω0«LTB‘ψ2A죇ͺ{�� �IDATΡ’$VΪ8RRwKBΗ²‡Ÿ)……ΚHξ:ŠCξn¦γmMRm½ >H<~lλ±Ηk+]σUB ΊF£ΩfH) (nϋoΫπ–Ώ·ΌβŸδ/σ ς€φz›Ψ‡1b cΔ—ΗqB$’; EΛα>VήΪ‡X΅‘%؝ςΆwυΨ‚ŸΗ©}Ό…šη[)ϊ<1‰³}ιJ(bžΨχOl?ρvαΡ·IΝWύKΥh4Ϋ„΄u([Ύ2|OΙΛ±£ό>£Θΐ©wˆ-Ž}7J|Y§Ρs₯ά‘iΠ1LM˜ŠugYyE1‰£’Ιc(œ·½ΛρζJα(HψΚV₯ί‚6*ίSΊ$JpM3d2ύ` QΨŽ:~9α„φγ>3 $§ΩωΡ‚ΡhΆ Ιaj₯kWDfΗϊ›<†ε‰‚ω\˜ψ;1bD‰/Žγ48ΘΈD¨ŽΫOJΜSŸΣ’MGxωόŠRZΗXn‘‘—=ι–ϛǝœόνδ ΈK–‘2ιΰ°„;K[}lΕΟEχόφ%{F=ν~ΧμάhAΧh4[M2#œ?–U_FγΟωJΜ½ΌB °”΄48ψΞ©Ηx)ŠŠw$ŽI‘k₯ηληVHœbXwB€ε”Π:ΒBΩyRΏφdς{Ύm€¨‹ήώΜ΄Qί7…tΝ΍tF³U$ΕάJWωdέδOήZ’ΙLp-R•’D\Q~U3}noCΡYΘΣΗμ¦―;΅Œ!iΫέCέ±AVWLλ"*]7½θΊ―=eΡ§—ιU/˜^ ωΐ™γž5uΎwΝNŒtF³UH) !„?Ό>>|]PώΧο7˜BSŠVΗ‘MJΒ©qζΙώlΗ�kQžί„U'ΣΆz¦ΐoΙXs‰r3ΐym#,6L °~ §h«4Q€-‘dΈκ DΧgΊργ§ξO·NϊΙOΖo΄tjXΝNŠtF³U(₯,₯TΕΊ3Φ]!O,ΊΨ8<HE»”΄9₯H€‚ΨςيŠΏΆS{u+’έuΔoχĚO-BzρRA{•IhOυΓύlά3@γ(νU1Ÿ@ 29DN ΥͺπγΧρ{ϊ©#τ.š-θf‹QJ(‚ν/ΆoΊ­ιο^CيΆIρ%™WΌe†°η ́ΎχΆ3θ¦VŒM))ήΆι]{V·^‘P*υ e„Θ§‡Οό›ŸΩΡ‚ΡhΆˆTŠW%UΩ—‡y—§Φs,°λlΛΨλ„χΣπϋ œΧ΅• ._VΈ΄«ŠίŠ1όκ&Šί‰γ¨|²½ε™βΆd?ΗrΝζ”“–ž΄ΒπkQΧμ\hAΧh4[„RΚ@\σ5Ψ«νgΜ*ΣpšμΥ6v½Š(ΙώπΑ&XAΫ!^wΪR:¬τά ΅NΓΞ蘰₯ίZ|{3₯‰N‰b6'½λΦμ—π&^?-rΪtCχ₯kv2΄ k4š-BIe(Gy—οΆόfsΌ²N£ƒ IT¬CΜSΈoŠπa>κn+#>ΐΔ‘9χ|ΡθδFŸ»3«:(*_ 3μΞ&Κί §‡°mk|§υBΔ/=½ωτί™pF³σ ]£ΡlR*γΓPψBλΉΘ-ή‹ 2.έtIWtŒ+Ο–& h=ΤΗͺίυ!2ΨtΠDΆ₯ž7κœ<}π l D›€οKm z,DίWΪ1ΩΙUΏeΑtΩλαĝ"gΚ™‘3?ύ隝-θf‹ψθ³–*§Ώω‘΄ x~ڈ'\>aοXEtw“U—•°αx*Ρ‘0¦«Μo…ΖŽ»Λΰ…m‚΅Ρ‘lq˜ώmaΰKΝ­ŽαΘΤ±³γκ{jΙΫΒ^4ϋ…Ω{Φ\ƒuΝΞ€tF³ΩH)…›ΒΧ%ΖeŽTFښN€κ&‚jGdΉάS€„=ίrZ0½’ЁV\RJγT/*™š5od<9yΫ3—Ι3T.#7ΌmΈΛF»ƒoS‚β*> S²:JΙϊ(ΑU1ό›b©@Jχ₯\A—B3םΎιΜ_ψŠ<½z½5šž ]£ΡlR*–|Ω>2Z)ήS‚Ό"« π—VJBD 3+\Αγ"Σοβ–€}€Ιί+aνQEΔϊˆξEΎΠ.™nό|eΘqν+–|Λ?κ(9tAστgΏ3ι EN³£Ρ‚Ρh6‹5’l0νŒ ψN‡Ψ加ΒIfc«ϊ}§οGv—ΒΎΉΓΘπ(ZGY¬<©„5GΡ6ΐr£ζWz^k=_t}Wοtε€xK|ΕO:{Ÿ>w―°GGΎkv ZΠ5M‘Άbωο7Žj›X"†ZcΛ‘“f ’tϋ²ϋάΣNυ―Z0$δτ­oNvή~m‘@I„) φ²κ˜ΦO Έ›h™rά΄―Ži±Ο+ήtαΟέΗ΅φ₯w]τξ—ΖŒ8Ώͺ*¨³ΘivZΠ5M‘ ΙβςΕνΖΙΞq’wU!½’ΓυGΠ;ΉΐHϊήΪJΝοΫ­nϊΆ#ήυΎ$αƒΖq~֏ R?>@γP‘Α^"}L¦�GΉcε•BΚδ”ͺ©σΟM„ qάνâßϊΦψ΅•ΩQhAΧh4=BF%Ÿ?έΧTζkB ―k]Cό%„UŽcε±r τQ§3Ε%·•=eθU!¬:'-ΓΫ"½λζν§’ύψξγ…ξ[μ ΔJ "₯‰€A, ˆϋ l ’CΩb‰•‡VVν}Θ?g΄™^=>]³ύΡ‚ΡhzĚ ΧX‘?†ž1€1+s}Z؏ Ί»ιΩ3˜ΡΩŸ)θιώμ€[ή³Κ¦φO-ΤάߊŒηŸy­7Σ»nΝƒÄύρδwOώaί‰}·σ·£ΡhAΧh4=@:’Εύ%κΕ“B‰.|Κ {ŒEΓ}UDχ°²ζοvb–¬χ䴦όŸ'¨½³™ώΆ’Ϊς9·―hwU§ƒƒ ͺCΞk9οUΣVΊfϋ’]³E8ŽΓμΩ³½εεες‘‡²ΗAΗ£ΗγξŠ|yΜ—VΛΣ-ο)Ζg&† $Œ,h9£ˆϊ_υΑ ŠΌtǐΣيw”Β1@4KϊΎΠΞΰΏ6QΊ0‚Œž?½§’½5ΉλVbYΕ^Sζ,œΪΎί’ζλŽtΝ3tθPΊuλφM$—†qPi)qΗ±—ΪΆχu―7ψJssΛG§žzκ¦ϋοΏί6MSΪΆeY;ϊ΄5›‰t€±ΈtρI",Da@φΠ³”°g’™,F�ͺXΠp~λ\‚γΛ±Φ3ΝΊφN)`SCγ„BΕε SϋTˆ~/Άb5Ψ(Gm3k~sχ‹c·_ΊπϋΊ/]³=Ρ‚Ω&$ ΎύοχάsΟ(ΣδGΓ†qΒώϋ;C†@Cƒ+V(VΡPΘ»’Ύή~9(~Ν0ΔΒΓŸUχ·Ώύέ–RJ�―Χ»£›’Ιΐq$±/ΦRObuUS΅yO+…n)+½³΅.²Jα…ϊΣƒ¬ωq1Ρ# ¦ΗΰθΒ}ŸΚ§Ά)Ž’xy”/4SσJ eK"X Ά�ΧMŽχ­qέKCΪN?ηπϊαΛZΤ5Ϋ -θš^!ceeeαpψΌšσœ}χM έcπxά šυυΘU«+Wb¬[Ηg--ζ|Ÿ―θ•––ΦχΟ8γ΄wί}oT”R[ψΫιH>\Ρφ£ΦΊ Δζy›0ΩNWIbr…<Σ=Ÿ½N(XωΣ֟ΐ± ωΞ;œΏδ‹ͺ—©„0>c@puŒΟ"T,k§μσ0}–DnŒβmN Βa;(‘ΖFg«?΅JHwͺW΄V±΄~Ϊ )·όσ›-Ϋς;Ρh ‘]³]ˆΕbx<fΞ<ΤϊλoœΨηOžΜ>“&)JJΐq\qPI™4lB!ΑκՊ•+…lh𨫋ΏΟ+**zwΚ”ΙŸ<ώψ6 ΗΑησνφνͺ,zΎ±:>Ιχžπ‹ΪΤέB*…γ€uCίMΝ(»πώΩχΞŸkε‚$ZkPwN1u§­4PΆJsΟGΟ²»υXψ;₯…u·©Œ:ΡρΩ} I~@!Tκsrƒ!P‘ψ_?š°Η\=6]³=Π‚ΩaΨΆΝ±ΗmΌπΒK3,ΛΉhχέεμύφSVΏ~`ΫŸKΰ77ΓΊuB\‰QWΗ² ŒOόώβWZ[[άtΣo^tΡ%qΣ4₯γ8ΪΒί €T,\Ρϊ+s u% C%/|z˜YR(—’Ÿ½ Q/σΊά!ΰœ{¬ξέΪX’¦©^Ύ<©„ΊcЉ—ˆΛŽ„/τΠjΟί­εŸοXλέvt}uΐ6>i:bΡ±S^…~ΠΝ6BΒ4; Žγpύ5.Ίθβέc±πEƒΛοx ΑαΓU—ŸK¦ΰ+νν°~=¬^-δΪ΅ήΊeΛb‹‚ΑβΧjjϊ½1rδΘO?ύŒ-„Žγθ>ό$Q|9―₯Ίq‚Ήά°ŒβԝBΡE?wDQtS %ΏkF)Ρεd,έυCξΧv“Ύ $‘&υϊYud)λg‘π ˆΚΒyά3>o‘υž±.+ P©.ž>A΅%–Nxyγ”Ώδ`νzΧτ*ZΠ5;-RJ€” T; j:½’"ώύ)S0v¬2 £λϋhW€?59V$›6!W¬\ΙϊuλŒ†α}Ή΅5ςζΜ™‡-¨¬¬l{θ‘Ψ‰DΒBH₯Τ./όR*>ΉψΛ_Ιk+―Δ# !:ΌΙέυk;�%U—6Rτο(Ψ�ΩAr[hΦ“‡�H’} Ι¦ ~ΦPΒ†ΙAZϋHψ Χ}2ϊΤ•Β‘²³hCg|F;URΤΣ??!:~X©ΟB ”ΣΐXάτ»Ž˜τSΣ4ΆYχh4 €eY˜¦I"‘Hoσz½H)I$$γM ΫͺjΝNŠtΝW†”Λwΐ€₯³ƒΑψγΖ±Χ>ϋ(«¨Θ½‡n©ΘwΤΡρYχCCƒΈWWg„V­rV |Ωο/žΧςξΙ'Ÿάxϋν·G ΓΔγρΗρϋύ[ΩΪ‡ŒK>νiΡd,J”Ι9EΨ·W)P’€k:―‚#@΅K*_+UiOηm‡ΝŸ]-w@%JuΌΗ{ΌΟϋ,g9ν΄%ŠέiξυΌ$Xx<˜�fq1Αέw§ΟώϋS2m‡‚ι!a€m*lά§Hφ=₯0…sπ‡β6Ε ΤΗ¨\ΪBεΝτY܊§95¬θτKW_Άΐτuυžc!‡z¨wΑ‚~ΏŸD"1^)5,‰Œ5M³Ϊ4Νbΐ²mΫ, ΥYoΆΗγ±₯”ρD"Ρ,-//_‹Ε>οΫ·ολννν«ίx㍖αΓ‡KΓ0Rξςͺ»:ZΠ5_YRΏΫn»yλλλχM$Ϊ~<z΄<lύU°Ί:[œ·m½ξ{Jπ₯„¦&δ_V­"Όq£YΧΦfΌ‹©y••οN˜0~ν³Οώ'œΊAομΙwd\²¨tΡ-fΜΌ8₯…J(Τ,?ρ{«qΚD†˜ε-#!ψFŒΏn!ψN)»r―g[θ‹YΜγ<Ξ|ζ"”%Τ"i χιΣ‡ςςrϊφνΛθΡ£=z4ΕΕΕ”••₯_�‘PˆζζfB‘mmm,Y²„%K–°qγFšššhnnN3]‚bŠΩ›½9˜ƒΒP γήƒ„3ώΔG΅‡ΦN9ω±“γ–Ώ#–#5"dĈΕ cc±Ψ₯ΤQΆmBJ)#·–eQ^^NII Α`0ύ*))!ΣΦΦF8NΏB‘­­­YΗH}έB{½ήχc±Ψƒeee9ηœsVίxγΠsΌ₯Π‚ΩeHe«ϋϋί4ΌςΚαλΦ­ύѐ!κ€ύφ“UΓ‡gyB{ά‡Σtλkjr]ϊ«V Ήv­ͺ‹Dό―z<Εσ|ο{ηόӟn†!ΗΑΆν­o'l–X6RΦΙχ„₯K(Tƒπ=}‰θλθ―Ξ싦λ9Ζ;R»Ί|εΓν Έ½™ΐ§q€μ°ά_αξΰΎΰ‹,ρφϋύŒ?ž“N:‰O<‘šš Γ 7θ,SΈ2·)₯ς.«œ/O)…”’7ςΘ#ππΓσΑ€]έΰŠ|?ϊq$G2‘‰έ>˜DθΟΎ³β;Ώ2x•••Βαπ™ρxόϋ@M¦p{<ƌΓQGΕa‡ΖΎϋξ‹ΗγAΡ©ΉmN{>R²~ύz^~ωež~ϊiζΝ›Η† ²`„°…―7ξ½χή―.\Έ0ϋvnτ·£Ω*R7·δ λqή4M<χFΗS›ε”Rι •R² fΟ>œ@ `†α΅mΫkY–WJιUJz•RήΆΆvοόω³"‘ˆAύθυz½%%%~  …~TVζπoΐˆΫτ2l6™{†--Θ•+1V­rγFkνƍjΎγX―y<Φ‚™3ϋμ‘GkKυ…φ¦…_F™ρ!ήΣNϋι7g{Κ½>χτ²"~„Ÿζ[*°š…£Γστ΅η'ήήβ™[ofήνwβ(']ߐ!C8χάs9ηœs¨ͺͺJ―Ο―|b–O€2Ό;,΄½±±‘»οΎ›;ξΈƒ•+W¦ΧLg:³™_'AΒ·pKέZ֎JοcŒ7ŽσΞ;9sζ  žΗΆjGΎς©γ,Z΄ˆΫn»‡~˜P(+{mΤ4ΝΏ”––ή΄iΣ¦:ΣΤ sv6΄ οŒjI ˜Χλ z<ΏΗcωMΣ Z–0 Γο8N°nπ–iβ΅,ΓλσY~―Χ²Ό^Σςω,#iυ:NάkšψM“Μw―aΰ7 ΌB`x½,‹τ{Ζg™ϊ{7 WΈ, L#U.ΉŒa(in9Λrί Γ4;zζBO•Ι|Ο]—r•οΜd ΎΠkΧ Ήjƚ5Τ54xίχωJηΥΧΧΏuΣMΏ]xΙ%?omz]0žα™‘»³ϋ’1χ<ΘCžΉœεςΒ§iψU‰j”υεrΟ`¦€δ?ϊώνo‰‡Γ€δuόρΗsν΅Χ²Ϋn»ΉΗοΖ’ΞΆΝηάν[RNJ+Έκͺ«xδ‘GΑi<Μb3˜‘%κ«XΕS΅Oqωε—σέο~ŸΟ—{G·#· ΐ’%KΈζškxτΡGqœτƒVά0Œ{'L˜πΣwί}·E[ξ;ϊ[ΨˆΕb<ωδ“ΖΉηž;8ξkκπ²²ΨŒ!CΔΰ#`Θ…ίοŽν.δr֏_-2#υ…€pΈch^]Ήqυjω‰RžΧ,ΛzkζΜCίz챡I)Ι‘o€ίΖβωm9Χn<Κ|.šJ–ΟBΟ}ο(¬ˆξηaΓ5e΄νλA9€Γ€ΔΌ₯ΎžίŸ~:Λή~;½Ϋ‘GΙm·έΖΠ‘CέΓtσ£,δ:Οόœ+\›+<[RΗκΥ«ωя~ΔΏώυ―τ~ƒΔ\ζRDΆ°9μφΓ{ΖX Σΐ4ΝNτ‘ΉεκλλΉςΚ+ΉοΎϋΡσBˆυJ©9±XμeΨiΗ’oγ»0Žγ ”2.Έΰήxcή€eΛ–WʞٿΏη¨ͺͺΨΰQ£„5l˜’EE)±-ξ»Ή‚‰€#υ/ΎPW―fi,Ζ|₯˜'σQ"ϊβoνίwƞΟHSxEL`^ή€qWkzΌZ>+=]_AKd™ αŒ k/(bmhΏ>αx6}ω%�EEEάsΟ=œx≝¬ΤBŸά}Ί²D·GJ){μ1Ξ:λ¬t@ZeœΝΩτ­¬ζ;oΞ‘€ –ΗΒ²¬t@‘X€ՎBu|ϊι§}τΡι.!DΤ4Ν+Ξ;οΌ?άvΫmR[νΫ}ΕΏ†€°*₯˜7οuγΫί>ΉΚqμ1±Xδp'2{Π cΤπα?b„2JJς»¬5_mr»βqhj‚•+ ‘2†°χ”˜<uγΓ“¨ϊ)¨†¬Ύΰ.ΗdΥ…"DˆΉΜe K�¨©©αΙ'ŸdΚ”)Ισθάœ».΅>·|OΚdnΫήu�Όχή{{챬Y³�Ο¨‘œtΫ½άΌχ,Ÿ―Χ‹ΗγΑ4ΝN~;K; •ijjβτΣOη™gžI«M)u–Οηϋg,C³ύΠ·fM'‰†aπη?ίΞuΧ]_fΫ‰Q--Ν³JJŒ#ϊφ΅G©ͺ†W²Όά_Kzή΄Πο`ςj™ίIκ³HFϋKΩρƒm 6Δ’ŠΦ6hk…h$^bqλΦϋ 5›”5σ‹ψΟΩ‡}άγεΈί310Έ‘Ήϋ�(--εΑδΘ#Μ8―ΞBΡΡ¦όλSΫRϋηΫ§ΠϋŽͺΰωηŸη”SN‘©© €SO=•λ»Ž`0H ΐλυv²ΦwΆvZίΠΠΐ‘GΙ‚ Ru­‡„B‘z|ϋφAί‚5=&cš&RJ>όp‘1sζ,οΐ†ώωYBΨG dŽ>ά©6L}ϋΊnj${ω*²9βš*―”;IM"αΎlΫ}F uϋΙ[š!‘, $86H”•@ίrχUV Ε~(+ƒ>•P]}Kά—Ολ;…Ά04…Ό|£vBΊ_4ur"ωžΚͺ–ŠP— ’’Λρ=†yϋΫλ¨γ8Ž£Χέ|φΩgsηwμ+ΞG‘ν=u5οŒu(₯ψαȟόg”RσΨc1vμX‚Α`'Qοξ<wT; γΝ7ίδΘ#€₯%ιφ7BˆŸ)₯ΆY–<M~Ύf·YMocΫΆ‘œŘ:ujνΗ4Ϋ0ΜΓ«ͺβGŽTƒGŒΐ¨©Qψ|βφϋBB›z₯–ΑWΫξΦHΤΣDR [[‘­ΝνŸ6”]f(Ž+²�”W@UYRPϋ@°ΚK‘Ίͺ+‘ΌJύΰυ‚ςβ*£ "9žK$…>}+ΜsžωJΦ_wϊAB<α(΄΄Cc34΄Υoφ<ŒšκΌ.WESš*q(Ύ΅™?΄"Zƒgx†σcΐν'ο½χ5jTA r[“)8›6mbρβΕ,^Ό˜E‹ΡήήΈγΩGŞ{ξΙθΡ£0`@ή>μή:ΏεΛ—3i€΄πέtΣMœqΖY–zWη“j£Rξxω΅kΧΤΤ”φ°ω|>ϊυλGeeeϊ»μ­Άελf8ε”Sxψα‡0 ca ˜ΦΦΦΦ}뽇Ύ²šν†mΫ(₯0M“Ι“'Τ.]Ίόΰp8|ψ!ž}ϋχ1B΅΅ ΊbŸ)΄RΊ―”‹A4κΎΗb¨¦^ννΠΖbnΩ€Κ‚PΪJ‚0°ϊU@E)”ψ‘O)””CE T»/ ιš&ω pΦIŠkR0σYέ™δθjφϊ”ζˆŒ‚ΙχΤƒŽΚ\ΏuΈ’μ>œDγeήΨ š`]=¬ ΖΎx+ƒ4ϋ” ›Φ4yΠΜΙL Ξ`¦4αώ³.瑇o`όψρΌφΪk”””dΫζΊs»ά`ωσηsΝ5Χπβ‹/ά§+&OžΜUW]ΕQG•>ΧΖΆ΄J)ΪΪΪ8δCxο½χ�8묳Έωζ›Σ}κΉVΊRŠΦΦVξ½χ^ώψΗ?²|ωςn-πΜs5k_|1³fΝΚkύoi;ςC)ΕέwίΝΉηž €a›,˚‡WθY{-θšνNΚu/„ΰπΓ/{ϋν·'‡Γα‰RΚi>ŸoχH$2’œ$5"ύŸ+rΥ0~7ΨmLήF †έCίR7³IrΏάϋRfPX¦ Η\²φΙίΜγe.gœ~+Ω–u€¬σ„ Ρ4·Α¦fXΏ κ6ΒΊM°‘¬ {pώFΜ(ΖΎ£/τ7 ZηΉ³”!w_y%ήv�3gΞδ駟ΞLΤmŸm!qθς:)EKK §Ÿ~:O=υTχλ ϋοΏ??ό0Μ:―mَx<ΞqΗ—*;οΌσΈυΦ[1M“TςΫΆωΝo~ΓuΧ]—™ i«¨­­εoϋtPϊ\·€ωΚdξΪk―1{φlb±BˆFΓ0¦Δb1-κ½€tΝ6'EoΫ6ΗΌχΩgŸέΗησœH$±m{ Pƒ›SJ8Σ€‘ΰ€I0m μ=† „κ€xΩΙ‚’π·§’ΌΉδŠf¨ζ=J$-ε ‹»«sο:ς zΘς” ol„P+΄DαΐUgsόκΛpΌ6Ξ9%Δ~UŽγΩi^•Β"=·ψγ·ήΚ_Ύ”bϊτιΌψβ‹ι·ž[εsέvηr>γŒ3xΰ \ΡmΓa‡ΖO<A0μ•vH)9βˆ#xα…�ΈζškψΩΟ~ΐΥW_͍7ޘ™Τe›R^^ΞSO=Ε΄iΣ >°tՎ|ΡπΉΗxυΥW™1cFjΖaΓ†νρΩgŸmΤΑrΫ-θšΝ&‹aYJ)xΰγ’K.ρ{<ž}f³•R#₯”Ε™ϋ\ΛΩcΑΔέα ©0s?=jϊ€!ά ―Bε,b† :SΈΊΛάύ{R†«˜ŒjΙ\—Q―ΚYŸϋ9Ÿ—½SΩ^¨C)Χ垰!‡Φ044»"ΎΆΦ7ΈŸ›Zάm‘Δl‹γVώŒCΧΟΑΑ†€ φέ"Ϊ^ŽSŒΫ.ΐ‘’e|ΐχ>€αΓ‡σξ»ο¦'BςŠBO„ PY€΅kΧ2eΚΦ­[—ηΫμ!>Ÿ±cΗ2aΒLyy9–e‹Εhlldωςε|πΑ|φΩg$ ό~?oΏύ6{ο½wΦqΆ¦™ŸC‘S§NεσΟ?Η0 ώοώŸόηY©e·Σ4ρϋύ 6Œͺͺ*Ό^/‰D‚ζζfφίώπ‡?d΅msΪΡ•ΰάύ̝;7uσO>ωδιχή{―­“Ρl¦€θ�� �IDAT;Δ°aΓ†Πυ«―Ύf§Ζ@j4)’s’sηΞ5^yε•uuu3Ό^ο·Η™(₯¬Ξ컀iAU8h ̞M„•ΰ5άώη¬Βdksz9Η­ δ΅\σν_π˜[XGπwΡνΥߝΥέΝΉζu(εΎlΗυpΤ΅S’Ύ± κ› ±Ε]ίvϋΪc ˆ;&3Ώ<Ÿ#λ.θθχ· ~¦_–Ρ62ΞΉΐΪεΛρz½ΜŸ?Ÿ‰'vΤί…+7s{Φ9wΡ_­”bύϊυLš4i³Δάησ1wξ\fϞΞΓΠ]xja΄··σΘ#pε•W2vμΨ­nG&©2~ψ!S¦LΑΆνNeΆ„>}ϊpΪi§qΘ!‡²G1δ9ΗΎ}ϋ2yςδNηΈ-β”R|χ»ίεώϋοΐ4Νί¬[·ξŠκκκ-nŸ&1p kN;Ÿ}&δG‰Ζ†οΣ†α°ΆΆvΑ‚ο΄ωύ~ρηk@"‘ΐ²,ž~ϊicΜ9Υ¦iΞhjjϊΆa+₯ŠUΦŽΠ§&μGΟ€c†ώ}ΑKΚ†,ΡI“t £’›σXΚYVfΦzjή#_ Z–ʦʐ§\jUj}ξnΉO½X‡Rξ:)]Q' IFΊ·Έ―†fΧB΅Bk;΄E\χ|4ᖏΫ0 y2g.ύ-ε‘Έap‚‡xˆkΉpƒΊξΊλδ5νώΎ±9Φm )%sζΜαψG·Ηwr—nΈ>}ϊδ΅2» ΊΛwEEEtΠAyϋŒ7§ωφ•Rςƒό€;ξΈ£“€φΓ08ꨣ8οΌσΗθ.¨/΅]Jɘ1c6lXήνέYαέulΪ΄‰½χή› 6 „°άŊ›τD/Ϋ1xpΩKsζ„fψ|.G!άΧκΥ°p!v]ΑƍΡkkkŸΎΰ‚ κ.½τ2©”ΪιηuΦδ'5ς™gži=υΤS»···[Jy:P›Ϋ―]^ϋއoŽž}‚ ϊ’λ&Ξgъ¬€E·Π\ξε:ΠΨA?ψ­œ}s,αΜ:­ύΜcwZύήΫ±Ž”•žŠv%\Αn‹ΈήάζΎBmΠ·…‘=βZσ‘XZO Ϋs ¦¬Γ1Λ/azβPi€ΈΈ˜χίŸ‘#Gv+vω"₯{²^)73YΏ~ύΊ΅b-ΛβΪk―eάΈqέΕ©:Rδε¬―H)Ηaϊτι”––fν³%νΛwό+V0yςdB‘EΈξbxδ?°p±;t²+™;v,7άpC·υ:?p‡σ|πΑιεξΪ‘―ŽBυJ)Ήωζ›Ήμ²Λ�d0Ό»ΉΉω|Λ²τυm€(* άyζ™‘³«ͺ0Ίz VʝE+‚O>|ό1λ7l4MλΑY³θΙ'ŸŒΪeΏ’ ¦©ͺͺ‡O‹Εbη™eLF …9Ηΐ‰³`·A ’"Ρ'M–»7©0ΉF¦Κ³ΎΣΎ;ͺ TŸES¬œώύφί{{#kθWξq:‰hΞ!sλΟ,—ι.9ε{£ŽTΑ΄¨;Β‰ΉΒέN |ΈCΠΫ£IQΊnψh<i±'`νFxξξ1:θ ^}υΥΌύ­©Οιs. ιv° •R|ϊ駌?>―ϋ8…ΟηγΞ;ο€ͺͺͺΗ=νPJ1qβD °ΕνΘέ–[Η¬Y³xι₯—0„β©ΫαˆIΙc >X°~ώυ<¬ZίaŒ₯θίΏ?ίϊΦ·8πΐ)//O?όtu™~ΰRTT΄Uν(τ °aΓFŽI{{;¦i.Ϋc=¦~ςΙ'hΆ1jΤn?ΨoΏe· ’Ψ\-VʝήΡΆασΟαγEψ‹/Œ—mΫ|°ΊΊίσ+V¬hΤύςΫ—ΤMnςδΙ₯Ÿ~ϊι ΆmŸ/₯œ˜iy&μίωœp˜ΫΗM*ϋ˜ΘvΧΦ‡ΛxτyΕ43€šŽΉnς[ιcfάp²κ [|2·mχ:D)Τό…‰@α˜|θQ†T~Θώ{α†Ο₯ wyΚBΞu…§Ξ ςŸg―Φ‘:^Žμˆ~'ά€ΉHά΅ά#I!Η:¬τ”¨Η’ύλσΊΗΎε–[ΈπΒ 1 £G–h!«;Ρ¨――§ώ] ϊυΧ_ΟΈqγzμRίΗα€Hύmi;RΛωΔοφΫoη?ψBΐOƒ[/’#7@ζwž:΄>[ xώρ4,]}Ξ¦i2qβDΎωΝo2qβΔΌψΤ»eYtΠAψύώ΅£».…άλ"₯dΦ¬YΌόςΛ�”””ΈqγΖ7ό~χ_Σ%Φ_¬\8x0$»L6 !ά>9Γ€Ρ£aτhTΚ9Jη(Γψ’‹.ςπι§‚κjkaK‹υTeeΕCoΌρζ‘C‡JwΝϋCt&lR[[[³iΣ¦sMΣ<G)U›Y¦_œqœωMΨ} λN/’ΛιΏΧ ‹΄ͺfη}* ₯xμ‰g ͺ·9bΐΙ±„SB™)˜"uŽnνά:rTLelKŸΣφ¨Q(a&λ˜RqςIΗWίβ/wίΗ7φ[ΕΐΚ<Φsς\: 2κΝ(›Ϊ€rΞ%λ― χ<{£ŽδqR/Σp_ ό^Ϊny<αŠv,ήρJYθ±€•ώl:Ώ`πΰΑέ»©2©εBVmWAf©ύ*++9βˆ#γΆs1bγǏ/(2…,ς|δΫ »󞢣P}�C‡Mο·βKά¬ ™ΏηΤbςoƒμ^Χ|™λnw,XπόεŸπψήyηήyηt]ƒζ„NΰCΙzλΣ§)qνi;r=έέΫǍΗK/½„BΦΦΦNBΜΗυ‘iΆŒš0wΎυ-J»xΰέ*R7[Γp3x-_}d­_ΆΜ~΅’’βώ)Sφyω±Η³½^―L₯;Τδ' …˜1cFιβΕ‹/Ύη8Ξ€ΤvŒ—ž G�%ά?“œ'z‘ySΘ΄r3–ΑBΤ\ˆ2ϊ€λW†Α³Οώβ έ‡¬δ-©·Νͺ#ΧΘ8VnŸx―Φ‘€Κ3ΐ?"£Žμ'ˆEK–±ψ8ξPΥό—ηxYυη˜ΜΉž„\:=”t*°mκP bNΎ† „«Ο‡>–λŠ—I«έq -Η_O†οηŠx")ψΆ η\ —Ί7τωση3uκΤdΩ–hαs)œε¬«mΛ–-cΚ”)477wΪηΠCεΗ?ώqΊ«©+ΧvO,θΜe₯ϋν·Y=V[܎|u�,Z΄ˆ±cΗ"₯dϊDxρ.°Τ–η�˜°±ώρΈιnXSŸ½yΠ Aœxβ‰ός—ΏΜr·χ΄…Κδ{Έι¦›ΈβŠ+�€β·‘Hδ =|mλ1nΈαϊυMMΎM½™΄'u“’MλΉχή0gŽ]sΥUœ|ᅍΟν³Οb_\δL›ζ‰”–š³,σšššηž{Ž%₯μφG΄«γ8΅΅΅^Σ4ΏWWW«O>ω€Ωqœ_’œϋξ Οώ’ο‚σ.|π Μ9J-7΄‘*2¬<:¬ΏΤ:‘QFxϊιφA¦^†R5{&u5w=YΛϊζŒύΆ€ŽT‘½.]&sή¬Γ‚8•α wΊ‘1£F0λψΛΉλ_E$r nΩ”ΰfžsκΌDφΉ‹άsΚx8ΙάG ?Ύ>žΌ-’ΩΆ₯`};Œ8ž|ώπ7θwΜ[δv‘y,πz`Ε&},όοcΈα>s"΄'άΙ_j*a`_7O}ŠΤ bΉ–xW―ΜςΉλ»ΪδΘ‘ΌφΪk„G)•9)H'ρN•Ιά–[oζΉd–•R²Ο>ϋPQQ±ΝΪ‘― @cccΊnΜ­όΞ…�$τ+‚‹Ž‡/Ÿω4ΏχέΰfY¬«ϋ’›oΎ™’’,ΛβΐδΥW_M?uՎBΧ3ί5I]Λ l`fΫ`\xαΕ-6$ΦG£Θν­›©›‹aΐΐπoΰΏδΉοΟξόώόσΧ―)-½+qΤQ¦3hρe0hύ9 ξ»Χ^{Η顬I;‰D₯•••΅†aάišf{]]]ΜqœΗΩ}τPψλ ΠΊ� `ώ½0{brΨΧ5ΛΐUŸ‘γα>]&η»W TpξTZΦ‰Jή9|ΒΰœσΎΗΚφoρβ{ξξ›]Gζ*•gΫ =­Γ?™ngJ˜;Žοή¨Jό~ζœύ#ξ{² Η £?2ž6²Ο!ν9Θ(’r‰gž‹Κ(—v.(0{2η”γ™}ό΅|ω.y"HSn΄σfΤ±dŒώ†›P oάy%μ·GΗοηΕ0ω$7ϊ`ψ@ψλ5°η7~i—ΐΐڎ‘ϊϊϊτυƒl1νΈΦͺGθ™‚ͺ²~ϋŽ;– 60mΪ΄¬}?ώψcΣϋδ sζ±s]Ε…ή}>3gΞ€oίΎΞkkΪQΘk°rεΚτrίͺ!Οbk~WΈΏ­Θ KsΖ7α†K _₯δΝ7ίdƌx<ϊφνΛυΧ_Ÿ~ΠΘ|εΆ·ΠuΙlσΊuλΛ»νΆΫšX,¦­Ά†išFyyΕ’Ά6±S\Π΄•’ ΈφΩGg₯j/½Τ>ο§? οΈγ>iŸ;ΧR&Xν••ή—ŠŠ‚§:€V)ΥeΜΎR ΫΆ { !œ†††/₯”ηϊ}O9VΌ�Ξ{°ψχ°8ηΛ½|Λδ,§Δ1λ?½έ@ψχΘY'²¬b€bί)>ώ\}Ι£σM€λ:2ΞQ>ο­kGκP ‚γ;iŸ‹¬Bn�RΪΞ§Θγα€3Ξ偛ιŒσ™utœ`Η9e^—ΤΝYeΝ²Π3ΧΚA(Ε#†rξ—ΣΌ€»žNt<Pt[‡‚OΧΒΤo»Qμ�ύ«ΰO—CI|²άέ畏απsά(x€½Fΐο.vχb­;ΪΕηΏ™ΠqM_yεχZδXΒΉŸ ΉγsE"³/6_ί­‚`0ΘΌyσψόσΟΩk―½�ˆD"ά|σΝYΓjσ w‘ώσΜe―ΧΛ~ϋνnj3Θ ΪΪVνΘ]/₯δυΧ_wΫLŸΰz7;vάFΏ«T;Re”ϋΰςSaΝ³`Ώο< 3¦B(Τΐ/~ρ *++ρω|œ}φΩ¬Y³&«©6Š+ΘΌήo½υVzϋŠ+ήEχŸoάί€ΰβ9sΈeδΘ}:='σoΘ² ‘>ϊHΘO?U«[[ύWJ<rκ©§,ΊγŽ;γ;sΏΌRŠ`08&‰άμ›Z_V?9 ~|:ψ’7Φ”εΥ—\ΰ=υ‘Σφδ‡Τg‘Q¦γœ�ο θ{…R!Tς¦!\k5£3W)Εη«ΎdρΫχṕ*}ΐnλΨνθI’Τ\„ݞZ/Vy§ΰ)₯Pΐ > (φFdœKwueœoζΚtRΫR›2TΏ‚π€.wGY!xυυω¨ζη8dRςλ(P‡R°1#w‡₯ ¨‚χ#ΧC&„;ϊaΠΨοD·/`Μpψεχ:fΏ ψ`Φ4π$Yα‡»QπΓ‡gΑ‚YΣuΊηRxXWο™ϋfR¨Έbxο½χς›ίό†ͺͺ*ΎϊκΌΗ(„”―ΧΛΠ‘C1bDΦlgΫ«---L:•%K–τΓ'†‘eΩΏρ­ώ]ΡYΤ ώv“šπ³[α―r#Sν?ρΔωΓώ@uuuΑ6f.ώωηŒ?žH$‚Οη[tι₯—N½ξΊλΪzτiΊD$/ψμΩ³yfί}Ω)¬τ­E)Wδc1X².muuβyΗ±ξ>|Ψλ‹-εφ™mOΗaȐ!ΥλΦ­»Ιqœο΄σʊαϊKΰ¬cΑλρ—ΪρǜEζϊŒΏΒΜ²…ώp;3χX₯ί€’ύ@Ɏ›XΪPiΑƒδM ψοKo0΄ψyF*pήΫ»=©PΑ)P~LF‹pΫ(Dς!&ωΰ’y,1%ωλδάΐΞ¨#ηŽΩι†šρ9}:.u�Α)PώM”’ι»kΗχαxSs+OόύvΞ:.Œp:Χ¦ο/r—ƒ~ψσnT{ͺ|ά†‹ηfŒwF»Ϋ.Λ~H’&ν#ϊ'OΣ ίώ <ϊ‚ϋ;ΈσΞ;9ϋμ³³.}ξ =s}!—m!!,dΥͺC)wŠM›6 …ˆΕbιi|-ΛΒησQZZJUU}ϊτIgsκΨ–νPJρΐ0wξ\”R{<v+‰mό»ΚΨ'λο­u�΄JψυέpΛ_έ@Ip½W\q—]v@ ΰυΊός˹馛�Χ΅ΆΆώβλ’)ΞΆm`fΦυq€c [{D,γςΛ/<oήm«Ž>Z’σ»άeHύ( κκ\k~ιRγέ–ρHUUΥŸ}ΆxYII)½ωΓrΣ4ξ"™ΨΕcΑχO…kνB/τĜ΅=Χ$ΝٝŸΜsΛδ­C θΒ ’2σ«fκ|CR–Ε_ώπ[Ξ:ΆKμνθIJ ͺΞ�ί°΄"³χ†–aIeZξ†Α#=ΗA{ΌIΏ’<—(]GαmΟl½ θϋ]”oˆ[ofύιΗχˆqΰή?έΒ™ί 0³λP.»nΎΗ]opΝχ`ΤΰŽkjpΛƒπΖ‡ξ²Ο οb7�.Χ²σ{αΘι€#ύ?YϋœδZm555¬Z΅*=ej!K=_vϊšΨΦέqv…:ΐNVWW‡eΒ{Βή΅ξ…ίfΏ«nΆmN XΧ \~ΉΓ³3rδH|πA¦L™’ΥΆ5kΦ°Η{ΠΦΦ†"|ωε—χ½ζškΒ»r„ϋΜKfΈϊƒ½~Ο Γ˜νσψά;½RFκKAΒNΘΈ_”p7tμ½Ούϊ…ψ杠΄΄4X^ήϊεάΉͺ’»vzΠ†kσ +ŸC¦Θ77Γ₯‚?6λΦ­3ώœ3ηΤΧo»νΆ.žΧλ-vηΟIk€q£ΰο7Γύ™ρtLώ'ξN.Τd[3ŸͺEr]–«Ž?ΌΧa €~’T<Ϋ"$Υ‡2Ž“-4―Ύω6Υ泌Ό΄£GuxaΐΥμ΄ ηΊΪsI ©�ήYψ4>Κδέ;ΧΑgοΌγ­(ΞƝέ=εφ{ιpι‚ ˆŠ ’ ’h4V,[μΡK5jή_bβ›’)Ζ^σ£FΕFbD ‚PŠH‘ήnΏηœέωύ1[fχμΉ\:(Οηs>»gvfžyfgŸ2σΜ3z›ά²ήB L¨Ν€]nr1zΒο!}a_ŸΙπψΓα’ΣjC–ϊGKΰ€Sƒ6? .<;ΐυρpλ#A3.<Ž;4Τ$„^UΊcΐOο€?>ͺž_rΙ%άύ!F^Θβmim½΅Μμ›‚ΓqΈβ ξΏ~�~8ξψ1‘wΉuΖUXQ.d‘o )AšπŸαάλa™λpiY7ί|37ήx#–eqμ±ΗϊGΔ&“Ι«ςM΅Ξ‡]=΄Σ’UKžO§Š†ϊ]¦[_Σ;VλμζlσΧ6œ»ς©5oYfλΆ‘ €λϋiς™gξ{{μΨڑ߈3ηλ»X€…{€TB>›…₯KaΖ Q·`5£©‰G{φμωΒ•W^±~άΈ«œMΫ2€ΛŒ3žΝεrC,ΏnΎRΪ!&! Rӈυ—+€ϋ7’^kr+TFz›Œ£β(Τ•gϊEς¬εε«Wσώ›wqςα2―M۝ŽΦΰ(>�QuR»&B‚H§];ιDΈυ2η 6|ω8ΓφΣϊ$jΥxʈχ™>rBνrDρP5 €ƒΧš€>―=o•γ«e˘9ι>FξΦcΒργΰΥwΤίΚRψΛuΚΧ™φu…_«ϋαχγ‚>σ›€ε/)‚οl§’ie₯0[=μ±Η;v¬ίŸAω‚pcΧΈ: Ρ]ΗSO=ΕΩgŸ ΐΐ>0σ90šƒχ°UΖ„ ₯o!½Ύ ΈόVxϊ%O τξέ›ωση`šζ ‹-:΅ΊΊšo8aΘ•ƒ+WΦ,₯΄¨xh΄c$.’ρΊ‘ώyΙeVohΨpj}cέ䦡|~πϋίί–YΈ°vAS“Ζ<weΠ>4΅¨π¦­ Ο"–=zΐ©§Κk―Ν~ΣMΩ‡ΗŽ»fαΒkμcŽ1³:σS)λΆΚΚΚύ9䐀”’l6KuuuW!Δ'οΏώ\.7΄Όώvdώ ΏΊξKσ¬ΘΈ—˜§&hω‰ζ—‘2šζ·Ι8H@ўn?ˆpFα₯©Ÿ$²WŠΛΛY_SδΏƒFGkqBJ;D‡Η€|*D˜‘‰€ώš υ”Ί'Ώ{1ίu%ΓS,όhuξ8fŠΤΪV΄/ΎΒζ2h“Χ^ίI=ͺ«iϋ³Ά€3Ύ€7¦xF€’€ϋ…²Ά?šs!`τΘψ~Υϋ±¦–¬ς: Dόλ^θΦI=Ώΰ‚ xζ™g‚n4ύκ/ΩDzΎBqœέqL˜0sΟ=Pϋϋ_Ύ_ζ[{\‰€Ο‹θu3pθΰq‡ŠόγΠ<nΎ,SϊΒX›J₯.ιΨ±cZvMΨχβ}έΗT?ΩLݚʊ‘VΐJ¨Ÿ™00,i LCψލ €+{d¨“V²]ϋςφοt¨θψΟ.ΫΏΈ₯C‰ ―B)ωdέΊoΘΦ] λ=Σ„²ή7γ¨a™UVΒa‡IλςΛeοnΘύδškΦΟ<ꨩͣG ™J%κ—.]ΊXJΉOE)Ότ�¬ΞŠͺ&|9ͺΫ·EδcΡ>&©§Ή ώGΣήΝΒ‘μf[ ‰χρ MΩσ˜šή&mcWŒφΏέιh £ ’Υ!νΡαΡ*₯¦δJa0wήWτξΤ}·^B:…–!TFο7£Rέ}%& A½ΏξUx Ϋq8dΨήΨ€$<ψ¬Šϊj«Ω‘ƒƒuN€²Τ_ž΄§¬†ξ«5Ž˜{Ԛϋ¬Ή!I… Z2γYθP₯όEΞ:λ,ž|ςΙX§xNό>ζ–ά’e’εwEΟ>ϋ,§vΉ\Ž6ε0σy¨. Ο­6η‰ΝΏ‰8Όο%Z‡`9pΛEΠ8 ώ|½ςΪ444¬(//ΈW―^»tD™œ“γ…)ϝΎΧξΖ¬ΡTΫ‘SεYΙ”a$’ήΟJ¨k2i’Hš$R‰”ι>˜–ZJχ8¨ίηΎς¨~ΕιβΧΤ―Y:ΰ’~έ£γΝ ›ΝΥΥ]f­Z΅OQ‘@Κb.€βm hiIΖkCέ–·AςS¦ΐψρΰ8§*ϊڷể…^υšΖλMkyιyižFΡ’}z<f3~Ή™8ŠφœΠ€ς„pΰκΊ .ƒj¬©₯²ΌμLGkp€χ�‘Œ₯CΥ'ƒΩχκGƒjus)+>:"mΡΙρΗ‹.ϊΟΛ#�‘ήDΒΗν?s/τΒ{ zTW³h₯š%yρ­€ό½{«€0žR$Q‡°|2/Θ3t ΦžPηi„ΰΡ‹Wh΄h›„9/Α€=”ΰ;v,W^ye(F„.μΌϋ­;λω •ΥΛμ 8ΗαškaτθΡ8ŽCžπΕΛΠ.…όq΄΅ΖUL™-Εωi:ΩB€)aάP?M-;£‘‘αΒ/Ώό²Γ. Οκp⏼fC‡vmo-«LY‰„•TΏD ‘2H¦ Wˆ$΄ϋ€'ΨS*Ώi „AΈσΨ°i JŠ•6ΞηΟξpPœP7�LΣt²ΩάΧ«V‰†mκŸ €bk-Pγ^·Ά€7ΠFnΏχ“.ξ,› RΒΪ΅π›ίΐΔ‰*νœ“U8ΕσC£IDΚω–b„iz–—Ο¨eπίϋ(ύι2yχ"’Ά©8�Q΄Ÿ+ԁ>₯ξαO³{yf}>Ύ=u}‡ΠΡDρΎ‚Mώ:— HWΕ€{ΫS8젺ЌΗυrΒ+ΰ)(ω€Š T0wJ'šWD/—TΟ Λ£„OΐΊ *ξl1ςŠΟ^Xπ�C¨Xνθ(<3Lkˆ”jίϊ¬yΚ)NoKU>|.₯ξ½χ^ϊυλΗ’%K I{γ֘γόTβ¦° ΥΉ³αRςυΧ_3`ΐ�ξΈγ�Ξ>>~Ϊ¦‚±“-WϊϋŒΙ»Ω8tt2@‘'π$$όζ2X=«8@IΰqΓ0fwθΠ‘ΓΖΞΈίΐvΚO(νΣ}lΧ―Ϊ–΅ωgIIͺ΄¬2©,nW'S&‰΄ι lSύΧ…ΈfΑ'4αŸHΈ‚έε?^:Ψ9‰™0H§“ιŠ²·»ŸΫyίhΔTԁ‡zΘΒ΅kEMΜΈήϊ�Κ¦λšQσΦπ‚xοv©ύΌ|ξoSQxο=ΈσNhj‚6πρψΫΟ5‡7½=Z_@‘}dž{χΝ« Ά¨φμη‘lŽD€Yΰ�ι«phQ°|i™|ρΡdϊvίΑt΄‡‘F¦z‡G‡χOFzLJ_.^Bvν$φθ‚oρΖA¨mR;[ζ΅K‚0ː©nΑ3< ˆ¦ υΎΤ‚dΞ|u*š½Ί„ϋEXΊRSzPΑfό˜‘)h^_ ΛW‡Ϋ�`ΪπΘΝπϊCjΟϋόωσιή½;·άrKΑ°ΝΡiι¨SZ\ώBy •ΫΡ8lΫζ·Ώύ-ΥΥΥ|ώωη₯ΰ₯ϋαρ[ΐcOxε ΅Λ»Ω”qεεΩΪ8ttζΫbžͺLϋ?xώ.΅δ8N•+W.Ά,λΔ–ήǎ)ΎώGΊwΓΏΊ}ΎςŠsgœnv?Ό*Ϊ₯°’+!ΑœΚΦΙ”~Ν£YχVΒΐ05ή"οΝ4;˜¦ •J₯_πƒ=Ϋe²ΑGn�ρΒ /^Ά,Wγ3m (Ey Cΐ-α―­U�� �IDAT!_ΐ·™-…ΦΡ=΅QOΛυ­Γα}ϋΌφšJy¬ψμΣ90π|’4m[7t}‹X³…ώρiL6ο'Γυ„x©Πpn*Žβ}δάΊ χk-z–»‡ΓEπΚ+9κΰLΩŽνAΗΖpHEϋ�2UNq¨mμyΟ/[½†χώύ§ŒyΛ:žE£—ΧΫ ¨BŸf.>·roŒω ‘ΉΉ Λ¨g½f Eι O½ώάP΄±ΈR©0―oB ΡlšπΩ<Β!o π½l˜ §­ρ‹_PRRΒψργÊ‘ oŒ›βΞλ«ςrRΫQ8�^|ρEΚΚΚΈρΖ8ιHX?Ύ{�D[i\…‡VΗ‘—“Οϋφτ±uΚΑ°d"τTηE&&‰?e2™ό vHi³ςεβξM“φόΌ}uίω©²Š=E2AY±Eͺ*κ€I2e„¬ρdΪύiΣλΙdίκΊ W‚](g:ΛγOΒn›mLKP\TΤΕ–ΩΏκ[ͺ ΡΘf™QS³γ’(k=:�t&βy©Χ }kΌG™(΄„Γf£λκž0Ώηu,ΐ—Αw+‹$”W�h ’gyVOθΏ–ŠAϊιš‚ 5…Α£Ιϋ Cυl*’ξγζAΕ!.–2`ΰB₯Ϟ·�jή€o‰±#θh @œ<:€ΐχχλ QΟζ.\Μ;/ίΕΩΗεςPΥpxχθ4‰€έψΧ™¨D ‹φAβy€¦έδε 6ΐόy ιΫ­Ρ?XΤ–ΙTΜ–Τ†ζ�C2‘ςωΦ\”ŽΘΦm€k sΣ†g«&Γ{Ass3£G¦²²’'Ÿ|2΄Ύςq£Οβœtˆ γν‰Γqžzκ)*++5j ΨV½/ή έQV„ήvΑ–Ž«m‹CŸΕЇB4e΄mΎψœx„z”Λε.**zό裏ޑ‘K₯eυ›έŽoώο 5m;ψ*Y^΅§H'©$-ώ[ŸbV6ι{²{kαΚΞ οTώΟJŠΠz»ΊΎ£œϊ‰` ^ƒζFΓ‚’β’γϋ_ή󬜭–*όΛf³$%_¬_Ώi(‘ξξ ™Xzάη­πf€‘<:]θ· Τ…€„+Τύ_n‚__‚ψ! QλΙG)CγΊE Sη!‘΄HCεd T΄G’Xm}+8― άtί©‡ΐ kήW‹™σώc?LΖΦΏ₯tΨ2ΑΣοΰ•©‚œΜ"›ŒΓ¬@$»Ήy‚xkώΜƒŒΦ!Α0ωΧΛo°ώΛ‡8σh;x‡Γ“‘1 iώPΦξ½υΚΌgF1"Ω+Θ©.HθHΌόŽa0νέΙ4@R₯,šΛASŒΏHYQ0NššUμ…θ,H^#"`πι\Τ7'Ι{‡ή}»L –Ό ‡ξ555Œ;–T*Ε%—\Bmm­‹WψΧ8Η³θ³Bε…,ο9½m))% \yε•€R)Ξ:λ,jjj²|υoψδ)hWξ›_pΗμVWΫ‡7ˆ|6©C–7S)ΤrΓ „‹NWΟlΫ3qβΔΗ¦NΊέδ‘wTw―K«Kηφχg§μgW·})a&Ϋ`Α‘.αΟN’N _0GwR[?Oz{ ―™' Χ·Βίβ¦ξ–&Τ½ώ”RbηrYI"aιTϊ7Ηά|d:kgn†SRR>w‡n]K‘¦α£ cξ½Ρδ Ά£ι>KΰeBqL)š/F¨›&<ύ΄ 4ΚSσ‡ξΰΛΣz#ŒΨδBΣ’e€ΦϋοiΏ~>νcΪ/€-λu@X£ήΕjΟ³J“.NΧ2qΣό« œζώ3i*+>ˆSGΨξ`Ϋϊt˜©^œyζXΎ{ϊ-,²/αώηKX[ŸŸΏΥ8Rύ"ιΞŸV!UD6Ώ―\š/_ΑΓwίΒ1ϋΎΓΰ~ψŒΠ«V?]{†~‘ό€Lοf˜4œ>nW‘’*ȗwΖ̏سΛŠ-hΫ.Μ¨kλ5FλΦUYΰhl†z-…>[Ί %¬^+Χ†iŒώΌΎκR“„Ϊiπ£sΐ ΗΓ?Lyy9•••άyηΤΧΧ·h-Η₯Ϊ֚zΆŽϊϊzξ»ο>*++)--εή{οEγς³ fΌχWθV©υΠξ τΥVWΫGh@Ο«ρΦΈ6θΌΣpΰŸΓqξiΈΉ\nΜ°aΓnά–ŽrŽγΰ8ϋ\Υ£ϋ€«{ά=δϊ½;Ά©ͺ}eUΩ₯a8ΩNsΩЌΣЌlΞβdmV4HΎhΆό)rOHη­“ϋ^νfμΪΉgέ{Sμ–ehΊp¦)0L‘)N‚ζΓ%{.]? R³ΠsΉ©TjƊΫΕ1(‘ž ΜMβ8K\šƒrr«uŸλΒZh£#4ZodMύ£`–{°Εwƒ_]Žš¦—š¦ͺ‘ρn„–Θ½,ΓZsΘͺΡσδA†΅ά-6‡€’}kΒͺ½"nαjΜeΉοξ;Ψ·Σ+ Έ 鐨£M,H‡=Ίuε²+―'S5Žϋž-¦9Θί*ˆβ€gΉ}₯*Y²rχέω[Κξα’“3€΅±ο\Fθˆ<χσΘόtVΐ=*5θΓ ρ^Βο·΄[φ«₯_σΥ§/pθ~ Ο~{ͺΈλ^WΜωJH©’ΒZc-ßΥΡ!γiς–ιZι^hί\‘ο£Τ„;‚¦i0u1κjk7n₯₯₯€Σi.ΈΰfϞνOΛ·f ™ώ,ΞΊnM=-=Σ…ύ_|ΑE]DQQ₯₯₯\qΕΤΥΦpψ0χUhžχόΚ΄@"‘wޚΎΪq΅­q|―Ρτ�A$L„�‘…'o‡ΎO¨”ςW;vά§#ekΑΆmΗΑvln{ζΆδήWτμ=πΪ·ωYU‡ύΟ~vEYωWmΚ+―H₯¬΄•€’‚?n2z’ΰ“UrM8MΘΖ 4e˜ΈΞτ§Ι}‹Ϊ³Τυυr}ۚΆfξ sοjX–ΐLLΣΉŒΖ°”@Ϊ‹•R’iΆU~ΣΊrΑςΉVτέ΅λߟ/Ο>›–‹ΆΨ¨=γΊ`φŒIxtDΫ. €ι‡ΓYΩ άuΤΤ(ωΙ‹°‡fύxkŽz;tλXDΪιυ­^F'Αo‚lΗF›„#ΩΪ_„ΔAD+Ρ*Rb Α³γ'Π½|:CΥ2τΡ!%`ΐoBΊ:–Ae””Ce*iDυ΄*+₯ŠŒ"ΓΰέiP³δŽ=4Ψ&Ψb_eΠι'*ƒtιςΈ™Tώ‘oΎ9‰υKΓ¨‘)O@…_o¨N/,f(έ»Ά!Z^LT!;ύ!΄ΣUάvJ8ο)νCψύ °lυjή|αNƞ 1€"MΓ€aΞ—*O―jψ󏃣/‘*β˜›oψaϋΑOΞUΫΫτw¦5%t՟K©ΞΞnWτΩ¦τ•χYόΏ»ΰρͺYLΣδδ“OζάsΟε°Γ£mΫΆώ³ΈmbQΨ”τ8οφ΅kΧ2yςd{μ1^|ρEtΛ1„³O„[~Υe ΠΖήyτΩΆWΫG‹ΌΘϋΓ«υY΅Ϋ^˜g\­>uΓ0&ŸvΪiGŒ?ΎΕΩc)%ŽT<μπŸ +ŸΏxΑήfBž°’ΗHGM&“Ε¦aU’XI#OαP·"@‘Ρξ²+ͺ:€°ΒPtx΄i CύΤβu@Έγ€t$Ά-qlu΅sjϊάΞIμ¬$—sΒΧ¬šZWSμή½ϊΐ%`˜‚6Rd²Ή¦Ϊ†ΪƒCM9ς¨βΩ³ίyηK³δ½0οE䍎ν�¨iτB|S`SΚJ ˜³žzJ%όυό½Ηžeθ .O–]«υ˜p J‡/k)ΪΗΒSίFqTœŒ(=0ς=ͺ;oj½1“αΩρ/»έ'κ ςMΒΡΐΪ&tœp*TWCc#ΤΧCm­:8§‘A)T6¨4οy.'¨,KS^άHžΠ©΄ο=ΪCχvP^m+ M%”'!Y~0²jHα8 κx{⻬όj2'™£]ώY�‘ulούΖυΉ›z‘όΊε(‚¬: a5)[¦Ύ?ƒ¦•/pδ(G= Η/[ξQ%-ώx tlΠešpΧSπŸικ: άδΖzΠtΪVΐ‘γGEά’Ύ’�Iψx>όαΰΕ7UΘY„”••1lΨ0† Ζ!‡BχξέιΨ±#%%%~žh™θΤ9@CC+V¬`Ρ’EL:•wί}—Ι“'³aΓ†<Ϊˊဣΰ'ΐώ}ΜfΌs–χՎΔ!υχA4?(C8ΏΧVYOYσΑ0Œ\›6m/[ΆμCG:X¦…f-ϊΜϊξΝGοis„i˜ί5 qT:Y”vΫ―&ž4€†!hΧ%­ΖƒŽ˜q.<˜ί~a ͺ:$•ΠιȐEm˜žPΧ+Vέρ„yΞθY%ΜσxΦ!—σώ«4ύY DKͺ:€NLύ4DΖ§Ÿ~l rΰσγΖeOL₯Z˜zΟ‘lN{‰Ρ7ιΊ)?½¬šoiTθψ h‹‘:)π\«Γ4αΙ 0λs•τΪΓ0r φž΄AŸ§,D>ŽΈηymŽή·τlSκ,XO:³<―lΓΰ½χ¦3{ΖŒΩ@;ΟΏa“q΄ŽŽ5Ν°ο©pΒ)J¨·fιG·…~¦»‡3—SŽ^MMPWό<E‘¦F) υυΠά€βœw¨‚Ξν‘² ΊvVΣ«Tze;θT+ ‘ΤΪ`ƒ°…%4†cȍv£:ΖυdͺJ%‘R„#oΞSBC6Λ£=ΒχŽωš6%1]*aΑtšŠκpμ!pρ¨pΏ-ZΧέ”=D8axxhE?“<eΔM°8ϊh[€ym } ZΉ Ώ―$`€mΒΜ9πΜ›0ω=˜ωΉšaΘϋ„EΛ{Μ[“Χ4‘}%\t ΩΫέΡβ)΄›CG4ODθm•ΎΪΞ8bω&ψ£3;2’?Žίϊ8όόΟ`Xe}‹Η·^΅<a$ΎcΡ'™HήΦΝ<6•δ.΄ι˜RΣΦ‘Η"ΎH΄^_ΐ«ΰ.m•@G(!νm1³ά)sΓ΅Τ½)rι€γxΒάβšΰΞΈi!α­ χHšc»^4J+””&hΚdž ΅9“Ι=zt»mτθ•WWUΙM[KwPB>KpYœΐΡ‘`*$Œ[ζQ…F`!Ρ²nšaΐΫ“`ς 5?|φμGŸ’‰cͺ:‘iJο‹Σ~%Α–ͺZ3αͺƒ•p}-βHtƒ—ƒΜA"ΑW‹3ι?ο’Θ~ΖΘCr΄/'8ήusq΄’$,­U§v ;βμ†θŒ‚αugO9π„ΖFu]Ώ^)ή―‘^ΜhW‘ΟΪTBϋNΠ½ƒϊ΅­‚Ξ Ί΄/ƒ’’œ.ƒ ‡Θ9D:ξt°ΟqΤ²Ηψρ€GωΥ²‡DŽ~§ ‘’Έ]σ'Έσ1W ψΛOΥ9ηή;0 ψύ£πώgͺ\IξΉnΤ²Έo$4 yά‘->(hPˆ‘{}Kώ}ήηΑ–ίεe‘Š€ΒPΛ‹ΧΒ²ε°b Τ6Γ†Zυ[―ι©,ƒŠR¨(ƒ4tj ΙΚn¬\3€Υ_Ο’"ύ5ƒφΚΡ£#ώφΔνALj#ŽFη±]σFiΒͺ‹IKΚψΟβr>YULCΞΐΤν=Ά„Σ»;œήΝ¦g‘rfΝΩ³kΰ― “L[oaκό H™””'όVδ-½θ\“ξqΊA2ePZ™ΐ0Τ ™'Π}―tΟ©Να:¨H Žg‰ΗXδϊ5O€gς-u;η9h %mS89ωq¨©MMMTVVŽ9ι€ζΗ ΘΧV7$ʊΟ�QŸ†¨ΐ.t%rWžH^ΘΥ­Α3’…€wށ5ΰΛ%πΑ?‘WiΐθόμϊG’ pΠώΗΰYtΪ-‰(ΔΤ―ΥΝS‡4ΰ­ΚψzYŽΎ½ιΧ*‹)8έΌ986•€•ΠDs΄oΞ³«@ΤΨσhπvΎ8ŽϊεrJ)hnV³ήμΑΪ΅κZ[ ΅5ΗIPV’€΄Δ"—YΟΐώjζ _7Έό{`ζάώΥ”*o,6ν†λΡ}»ΑοΖ©―^ž upι­A{‡ο׎ ς„‰sq ύ›qu΄j₯7>2Γ™χ-„Φδγθˆχϊ8Μ–ΰ 2.·ŽνAΗvΗƒTκιR νf[πακ&}]ΑG«Jψͺ6‰-Ύ7—Ξ{#7Ά„ {ۜί[‚0‚†H™s9™³q²9~Ή ˜χj’~Ω’Š–\θ•‹Hσ…v‰HυdΚ €άB˜ei'«‰ΐs]sdσΦΛ[ΪYχ>,θνXžΛJ·%Ι€A›Ni[…šH§Σ�KV­"#ΙVΞVςVOhi%02SφhW½οβΉˆΉ/$ΜγςΒ‡S‚aB"Ue°" kRM j'1‚έΝ]ϋΦσ{• "8wQ¨B½Ξ˜2qH8jP- θΘ{η[Šcι@@‡"˜ώ  £Ο†6mv=‘^¨½Z „Pc+α~νΫͺM"eυΡe…�YBΘσ8Ž™§%<~;œ>N½‹Ή‹α―Γ#%«’.= xN•™ς!μΏ'~@ώ8φΫ‡ w_ϊ<>ˆΠΛ1xZqtθ ξ}\o)ލσΦΆΐ±=θΨ^8’ό’ΑΊ&‹Χ•2uE9Ÿ­)aU³…#¦ΘΗ•ς"…F£ Bpd{›σϊ„•@X¦šn’€mγdm„aΰ!%Ώκ]Οe ,Νͺ΅·TJ)�‘q\�gtν\αξυur}2:οgΈέH„ξ4Ό'‚ Όo:T‰Η¨ύυD]σRmuεΰ8”‡ΊmΫ}τΘ/V­šΤ`Nr w Δƒ@ (Š€ΗMΩλetΣ”/YΌgϊσBΚIœ"‘ΥeΫPQΛ—CχΞ0yμέί²‘z#[Bω(’Σρ:/ΏΎž*cκς΅aοΩ.ˆCθέΆ˜χίΊ„ΓοαΌσ³»€PߚG»”ΑQ¨ΎΠΥ#οj5 nΊ ~}ŸJ~ϊ θΠƝwλ8v(Μύ ώσJΊλi•§_x!iΏQκω²U°ͺά“θt%Vo^τΎ%:ό<^—Ÿ{όn7Ž­‹#4%.άMGŽΙςΖ+εΓ5e|^SLMF‰_ ,•Ώtζ=ΛK1·BRΏ\ maˆ„‰H˜ΰHd„#‘Žƒ°Rϊ–9¬jL"PΫΙΌ6F‘„Ϊ ΄‹'z4ΧNΒ=άAJχXcχ›t\ov·'q΅|ζΕπ(x@ljό“¨’-€<ώΗ?ώaωwΏ;ΈΖΆ©,€™o0PeRZšgΙ{ξΡΡΧRΫΌόΛ»‘t)‘KXΆL2ρΪ[pΙ( ‰όυEM`…f"8|2DΌNβ Lΰz&―Z©GϋX}»«βHu§k»φLϋχ8;ώnΞΣDUΥ·[¨·BΚ£§H9π‹Kα«―α± κΩ=Ο¨Hqƒϊ«W’sΰŠ3aεzψΜ mόλ‡αΦ+ {§°’&tFX@β̞‡jg«Τ©₯;T"bι 2Ζ+–»q΄‡cagА9 „ƒH4ς΅m0·Ύ˜/jJ˜]SΚβϊ4υΆ‰†Τ^­VΉ ©’cAOŠfhA˜°―Υ€8ΆC#i‘,M™sP~&V?\‘Ή2g0]–ψ3�V"Π|’VΊˆi·Ξ§T>!�S(g7ΟαΝ@υ'R:ΨFπΎΌ­jž§»_ΞέΞ&%ΰ(a/ύ47]Ί•x πœfMΣΌ>mjj2μφΪθΡ«N$δΆe ₯φΩ¨ιχΈuv=oK7†'š·Pωι3f*g';?<F“mcmt‡Φ§ά4S$N‘ŠΗ{ω£λ€ykΣ»@V†β % –Χqΐˆ?sΡΕYΚΛw uͺJΰ‡Gƒa‡‚>Ξ|f/œώxώίAWކα[†7έ _, ςάςθί£0ύ…{iŽΗ¦œΞό™Έ1β)}‘±Pˆ},BώXΫipHΐ„&VΧBƒ{ͺcΒ‚bε4i` |'fšrΠΨuυPΧ�υu°’j•ƒ_]£’Χΐ_J6΄Ÿ0P».R JΪ$)n—F”³€!ΝIε‚}ŠMν]I°έ5hΫ¦>λpγͺΆ¬t«;ZΖκ6N2η ΘψϊDάΕc ΈΎC{kžΊR*ž³‘Ήo5€y΄±2tΰf(ΊFTJ8μ—hf?«™"lΦΨ&ΪiζΘ4}™"L�‰„αN»Cνϊ,†)T`}뚻~ξ}žΠwά-kΊ—»qx‹z»ΫQΟχ\pvCq™Ee»$vNΈθTT”όαΒ k;v,€'Άνύ΄N ΈxδZZ›―₯Ί7&ΘcžK©œ–ή}Wmcil‚ χB»t0¦B Κ$6α ρuθύ.Œ0› m‘ ;=) ΛΟρ¬H`Φ—λ8ό€»9‚έB]‡< Φΰ6τήlγn‡{ž κ9υH8η»α³Ρ(LŸ­ξpΩι0rHπξςΔ@u8d?6ΊΞmk!: ŠζΩΡ8€„ιsaψωΪτ[ΪνYΖΰ χ Έ*‰Ud"mplΗo„>½,άΦ­ŽΞi°L„©Δ²lmdΦFfsκšΙρ»ΊΆΜqRAωBο8*άγ{$½`}yŠ‚ Ά ‘δRBΛΚQ"Φ:‹μ„V·Θ«OΗΩέΚρ“²υ€ #PΪ Ά­ϊ$›cENp]hΪΙ‡ήG$••a κkr8ΆΔτ˘Α»JGYήΆΎ]χzΟIMx‡ƒΙD·°9np-‰€²}Šβ’υM Oθ‡Œπλ_Ϋ–½ϋφεψΆmiιdA%°½=ιMξ―ΩύySε97Ÿ·oΣ— haΐδ}9…Ύ*ύ>Znc P9χΦ΄ ΈV­R OΌœŽ %ͺ•ΝC«ΧΑšjvλχ~™h{΄~ ι!"¨žhΪ„#ΥJΉΒ^ej_•ζΈγ2ξΗΣ4ΘΑ²v uPϋζ‡τ&»ύάomφΊ#xφΥ ΄oΧDU ? *ͺΰ΅Ικωœ…πΑ,8β@0έθWG� M₯>}6Μ_’’ΙωŒ*2–£³1΅υj/ΚΪγ}'z^-½ΡΌΈω’–τNC@u{8`?˜τίό€8[ žΫ‹‘οAΊΜΒJ˜*‰©,D/”¨ι퍢ύ‹Ž―Μb$)ub˜‘0/½Ÿ))1>0Λ°,ΟςtΓ’ZΑΟ²Ό#>Γ?LΉp}ωεΒu o·e…q'†e°Α°Xm$¨·,ί»άtΓ¨ZάΒPΣΣύ’Y~ZQC2•ΐHYˆ”…HXJΙ1 ½— 9Κ^ΗΔDxBΪΨ ¦Π½aΤά`cΓΫujKll'°ΚνΘΥΙ©{'§έkQδ‚iϊ`Κήφ"eΊν¬h›Β–6•%Uwε±Δl6g 2xhϋφ½sθΑŽ!<‘νS ¨h«ΒF4ύΗόyκ€–Ω aϞπΪύŒx.ηαΣ­Tά{/\»$!‡£-ƒhΪ%qH κ,(ξwΤ€Τς̜»Š‘§άΓΕ—Ψ”Ζδσ-έB‚±šUlBυ-H™#γ8<χμͺΛf2|˜σ5 ­eMξ† `ΏΎAΏΟ] 7ίXζ%EpΛεΠ͍·„δ2zVΓΰ½ctε–,δ8:"cP·†CΛ?; `@}^yxώύ› ϋœ\Νΰσz…μ"gDΛυψM‘ά^΅+i) έRΣξž5*3…žΙ"39žu*˜hT†πΌν™ˆy b²¬OPΰo(s|}"œ^�‡““δɘd-‡e1Β퉓Ν!39ΥΝ9œl‘Ιπh’#'ΚB•J)i¨ΝωŠΤΊ•Νκ@6Ο2w­σ _<g85υ.΅υτ l~ΨΐRŽD5²‚φΥE4g²λkjη τœMΒ2»άǘ=ϊL§Ψ‰zœo ’£,Ξ—ξυ΄& ‡-TχΖςζq”˜τΈς‘Ί.„ΓΗsaŸ>0ωοPξΞuθk…:S‹¦·ˆΒΛ[ΰΤ2(ΰ0ΉkβΕ*r(*P¦ΞZΑq§=ΐΈqΉo₯wαZΠ+W�Νπ—«ΐΘDŽg)JEϋA›ΡνŒυœŒϊyϊuœΙ^}ΰΌaόAωήΥJh'\·Ωœ­δfδ9p/Έξ<ukΩΊ`Ϋ0κ(e₯G}0τε==ΒΚcΑΌ1uν”8$H „Ό > ‹Ύv-΄{Ϋ™#ξ‡τΌ¨σεhlz{ΓζϊΤZ’¦αOΉγθλΟjΊύuQΞ+Ι6˜:£ŠΊ18Ό>ΘoPλ„n^]1Έ γh©>…?Σμ°—lδβT²Κ-w?ΉDΡο-;ds8™d²όΏςή4f0΄έzλ7δΘfΜ¨Ω‘aCV[;W±ά£’Ζsv 9Ω >β€χξ½`S‘TuL“JNMCέΔ7nžvL,+<λ¬3Ϋ|ψαKΣƎ­ο³MΆ΅YT$Œ8‘[θK η~­[ –/‡‡ώ‘]2oύνŸ/ b―z[τφϊρHi…πά%p€ϊ#۝ 2ΈaO£•JΙ΄Ω+8φ΄{ωΑ$ιτ/ΤC~ξ΅© /†yσΰΛ/υƒ‘Γΰ胑W5”%Q‘ΜβSοΪφ|Hχ₯ ‘’\mhhδ‰GξζΌ“j˜Ώ Ύs±:ΥƒΓ€+F«bB¨©ω¬τv�� �IDATύ«:;·ΊS‚³ΎSxΌ=ΊΐΰψJzhM=’ό€#ͺ4Δ”ΡοJ8ΌŽΛ ˜ώάώ0Ό2I;H'fΒ`Σ»qΠΩ=H—YΎ ͺ<ζ]*±9Ζ©aoΩHΒ±q$¬“ΜΆJ(‘E p‰ήOWύC‘Ώ*έWhΌγ~UBh­YJG:AMΟn[t³Ϊ‡Ώ”獷|€‘ ASƒM_»‘ο‹u˜†‘’ΉI|oyr6NΞ¦.+Ή§’ŒDlί:Άdε’F΅}Ν€ k28Άτfρ—3΄wμy°=μύξ[θΎ€w\aΦΡ₯ θM$m;§Ιε§‘φ„™·}ωj,όα―δώϋοωΟΝ7Λ›c™mHT¬φhΨX" ]½<DΚ΅¦l!Ÿ§y$JοΈοAεύpρhΈοF0rA™X ]oͺΩG˜zTxϊiή‡‘?Nΰξr8ͺΞDΐ;§ΌA¬m/ξφΔ—rϊ9sΕφ.c©λ>Ά­ΖΞ—_Β_ΐͺΠ¦ ΩŽ‡ RργSDοί“Zz Pp¬ QαΞx$R;ΨΕνC!Ž<σΜκυ_zuG^‚ύ:&8~8œ{‚Ί7 xξ-xκυΐ’Ξ;Α/σί…pμp(Mβ ΒM’#Ϊ‡δ+ ώ8σΎ±]*nύϋ³αΖ?Α”™Κ€Ψ(΄φ;h·₯ΰ―…ž¦τ©]γκ‘z{bž7ίΉD1BΌ7xπΰ‘Sί› ‘‰λ±f !OHΎ²δ£ΡM:NΞXχΊQ“[“μ_~pε’ϊY]$Nw[ζ:%ŒtgΛHξ™±Ί›"QiV©@”ƒ0μ,N¦Ω1Κ€ΝΑΩZϊ؍€› >K”03UNΞΕ%t:άo|―_ΥΔ†5YΦlέΚf5έn ŒχR₯K·γoMΣΊ8Κε vΧbχgΛ%H$ν:§1Lƒ¦ζ¦·Ξ<τάczΚΟs±―ήύΠοΏφZ..+Ϋη£{ŽtΠϊΑΈ1ˆ`- ΘΝ¨_¦ΐHΓoΐdΧΉ¨€ΖŽ=ΐΕ%.o.*θdπΔY―ώ½ΠH‘e…Xα»3γΐ„.7w|¨― ΝJχ¦ξ”υ0qζRN;ηAΈB’Hμx‘+3B¨έ«W++{ξ\¨―>έα¨!0r8  ΫD6Μ8B‘6i…ͺευH"=ڜN ){ŒEχΐU΅Όυφ»Tρ*ƒϊͺπ|~φg₯xx0°\3Fm»xό˜0)<ΩWm…KhJ–”°Gw8 _ ό6‰ύ»Υϊf«φΥNŒΓƒ5Νκ<ϊ‚ Λ»5A΅#α±Ϋ Wa₯€5txυθ•Fψ­”€ yύ―:BˆKŽ>ϊθGήxγ Ά6δμ,B ‘œ�m'k€α<97Φ€eOŸcV»b³΄L Ί Ψί4] !Ϊ˜†ήφΈi~|9«VM½ ΘfjΧdό5t―?ΌΎρΦΡ=w}κ=l©{VΊ·έ *@yU’T±I6›kXΊvι_ή»fzΒLΔ‹ΆL&cτι³Η#F,½³W/gΫ1Ie•Η Ϋ8Α7Β‰”‰K'ςΌ%qω αH�Eκ57ΓC)ζ °GWxνAθέ>ΐχθυE…`A}Dš-¦Α…#έΡv,Έk½9―9(-έΒR žzi&W\χ<?όapΚΪΆOxyqΩkjTΰ‘ΉsΥOfαΠaδP8vτλιΖZχβ’»cΑgŒκP_ρ‹ό—nϊ}N>³ 1Vd»σ©ή±g₯{Z †ΙΏώυ:ύΪO’o§γ'ΑΕ7…=΅‹Rpα)0β@…ϊυχΰ‘ a ²Ό~τ=΅LพΏ§Ž„„ά*:ΆG_νb8κ £σo€ΌŒΊκpο/ΰΔC�-Ύ«ι²¨<BΛ‡φπζΗpƏΤΩ�Bˆ—‹‹‹GΧΧΧ7l>[l;‹B\7sD)s—$Μτ9–Hv ”`—^©Ά ~6m­ϊZ6γPγ υHέJ K_¨ϋGͺjBέw”sΧΦΥ4»Β(‘—Y—%l¨―ϋιΗšw»i('XΦηZθΗsŒρβπᎡM¦έυ3Ξ7&Xύ†iωΌ{Kϋ ΒΦ>­¬7G¬ΊIχBΨjy–,ΗWn�΄Όpt)UeυΪΗαU―υuήŸŒC½Y2œEv¨ϊ²xoτΟ@j7ΒδήӌγπχGΞ‘ΜcφBϋ3ψяA»%ΰ΅Χ4ΥύκΥπΥWJ`/Y"θ‘-‡λΕ1‡χaψΑ=θΪΉ ™³Žΰ‘ϋ;cF~NΪΏο@1‘ •ΒνOA,ƒ(Œ#θς37AδePΒ"΄~‰m<ϊΰœuΜbŠ-νέ0k œ#|πYΈ ]ΪΓ'Α #Τρ…7ΐΌΕα<}»Αω'ΑI‡++ΣθΨ}΅‹βͺΟο|~v;4·rΟ{Q »nΌvΛίϊFιˆδ‚0γK8α2uϊ€išsΚΛΛOX·nέ‚Φ΅xΗƒmηΈjΖA{[ΏL©Q¦ε1²†Ί,ŸΟXκ{Κε$λW5η+bΊ@—A”8]¨ΫvpnΊ8€€€<AΊΨΔq$uυ?ΔΕητΤ›}ƒΨWΠΨΨΘθΡ§χ^±βΥΩ'δ$7ΩΣ½Ε^K―%QΝUf‘,b³P« Ÿ™-Ώ)ψR@’`}‘ςω1ιQ{Ξxζuš@―jψη=°wWWψyBΝpšΠ ­·h£½ΗΆO/Ά+ΰ :]Bύ‹Ο%τiΗΌώΖΫȚsμP0\ΟM+o…K/kPχΪiYκ=-Y’Φ³ηΝƒΥ« φΫ«š£FξΙ‘Γzrΐΐ.T”¦9Ϋ'J_χτλ‚ρΟΏΚύ¦¨£guζ'5uF-½²Ωz™SS¬bqBT¦iSΟΙW.έrΑϊ­dώ’Ε̝ώΗκθΗ―ϋ—cΒSoΒU·Βκυα>mS/άCχ…{žƒ›ώυα<έ:Αͺcˆ[EΗφθ«o¦Νƒ³―Q!~£,°Ό½ƒŠΗfΡαΥ©}Λq4J^žc― Yδ_§ΣιSκλλ§ϊΉΔ»H)ΉαΓ]Ζο,#1Ζ¦ΡP—γΣwΧψϋΤ֯ʐΛ:‘r€ςvΧzΔI.ϊς€„ŠvI΅VοΐΊΊ ―ώε’ϋN8fΠwΟ:w³†]©Ώμ2Š·š§{=ρΡβτΦ$P‚²%Α]κ΄ϊtβύ«ΟΛη ρhoY \4φ| |ύ5όύοΠΰN(U”Β]?‡1ία:Ο ­}‘©.ΒΒQ¨Ό<ώ­γςμτ8’ύ ύω, k‹JSΝΟ? bG,1bpŒ.5\u•η|’„{"‘ήΑόωJ`/Z™FεΕύ*ζxΏnNˆͺK ΡΟ'Μθ<ΓLΧη{@Ρ νΚ4š5πσjυFϋKοƒhλ}νχc\ΉΆη"Σ}π½ZC‡”`Y<pχ\tςJεΥΫ„Nλoƒ―–©ŠίΡΟ�Νώράτ'ΚτΏΓΐ„Ζ~A:ΆG_}q`BC3P^δ.sΨρΈ7GFΐιΧΒkS`π@Έu1P?1αΧΒο Φω ØUUUuʚ5kζρ „k>8xŸ€Qτ°‘K ™9i•t\k}e³Z7‡ΐRw€ @γx‡·’Sžπ/*΅\«\εέPWσΘΙŸvΩνίKžEA‘ι8νΫS/Ώœ‘‰D‘\­o+šΕ­GΥΫΠ§π!_„`ΤzPHˆGAXλ^=�₯/λ}ΐuupΟ=Βih¨΄‡nN%ρν:œΕ£΅±Pώ–κΩ)p�΄9άόG»#ύΰ#>|οuNQK΅λ¬S‡€Ηί„Λ EEPQ¬Άx}8΄ti£βA‹Jͺ0«E’ΰv@tάψ™½t%ύλί3r.)ƒ0§Œ(•Ύg΄^Ÿz™(Ύ₯ @”B§kΒΔί1ΠZ: ΑΏώωƒzL¦ΊmLέ…θˆy–Χή< h#tDqθy ራk7Ž-Ζ!jYλ―¨Ηϋτ™Ο‚™ ψt œs|όΉ_ƒ#„xΊ¨¨θ²ΊΊΊš]Ω"o H)ΉfΖΑ–egϞΉ{ύ2»Rο{ι@έϊ ΅9s“2όϊΌ©uΓ””%0-#•°Οεr™uuλΟ^ψΠŠη …p΅bS\.g˜fŜϊϊš‘›yH‹'M ŒπΐΪšΰ…Ÿƒ¨€o­Φ‘tΡO€Ϋ6|ς Ξ΄iΦ‚•+ίτθΡc|mνΌš²²2+›ΝŽΛf³ΏόΧΫ”v9IψΙEpέPκΞεΑ‚…άRS=rEδ6w§Α!RΘT_X΄δkήyk")9Ÿ£†f9Έ3<*Ϊ-β0v$Œΰ YA’Ό€E!:ŠφQe"sž±S ž†£Yΐu$r_‘T‡X…­½Ό—¦΅+oVC/#bR+Ε‘Ϊ)R€YΨ8HIYU5uΠ΅m 8βθ`#tΔΡΣq8Άv_νΖΡ2 YNΏ ώυΆz΄woxη1X΅~ό{xζΥΐ!0Œε†aόΰψγaΒ„ 444πMζ€7£—žpωΔ1Ώέ·ηϊš†—Š“%{ƒZ7O—X€K,ΰΘΐ Ξ­@ρ8νΔ΅\ΦΑqpκ›ώ±GΗ=Ύα_dΔΓ……WΑ'ŽγNέxΞ9™_uν*wήχη)―ƒ@ ρΫD‘Πψœ90i’˜·fΈ»OŸ=zλ­·κΪΆmK*•?/___Oeee'ΰOΩlφ \εͺͺnΈ<Š EOž ΣιAόim-]'ΐt°#pH`ώRƒχ>1Ψo―}ΊΊŜp™νFG‡B’=Α>½ˆ 0ϋ•yϋΉ%πο·&Ρ½τίμY΄gc^e‘«ήξΈ΅οΌρίξϋκt²Olλθxλwι’x•½Ίΐ±=θ؍c‡γκ8β|˜9GU9¨  }Z‹U DpΧ^{νυΛΟ>ϋ¬‘εC@Ύ= ₯dΐΥέژ¼#(>Λ4 ΛS’Τ5 «¦βƒΩlΆ1Σt[Jό~Φ½ šZΣ§s455½{χ>ξ ƒ–½4hΠ6>FuK@_—χ` q} ρΌύΆXΈj•yϞ=οš4靺:`šygή΄‹/¦W―^{wδrΉ£½τT~r!\s΄IRVtΑUhxZ5υ“[ƒΓκ―ά�,ΫΪ₯>L―_±pΑϋ0WoΨΐkΟέΕΨγ3!_έ±(TΖm›—ΰ?Ž)Κ―=“qω 5έ.…εUΰmXO?9ž£φŸI»’HΗn;Η‡‹ΰοτžΟY–υD―^½μ³Ο–[–υ­°Δ7€#Ήϊ‘Λ©ͺ₯ρΕQI£θtΣϋ"E;)e1ˆ:G:+›š3ο7gŸέ§η^ύΥλΞ¦*F˽ϐ!Μ<αΆΝΦ΅-o‹šG…7Ύ @%ΐ§N5—/Z$ξνΫ·Ο=Ÿ}6k5°Uq.—£¬¬¬g&“ω“mΫ'’-‹sόr 폚Ψ1/PϋPc_ηΛK‹~Ψί&₯# β(7Ρ3Y‚{_ΐKpύΕΥ~x)ΙHΙέwœΌŽ€Θ+"€3”ΗH£ecš›ζχEρΘͺQͺϊM C ~N:<rΈτ΄ΊπΎδνIΗn; �ά|/όοαͺ„M¦i>ΉsηŸ/Z΄hνnK|η‚ίFIII‡φνλ{Ι%tΟn£3}7Ό©φm`‰K©φϟS§šλ—,IήWZZzχςε+–¨}†Ϋg;ŽCuuuεκΥ«œΛε~(₯¬τž΅)‡+Ξ†+Η@Η2Β³q‚π½ρΊi.•S >όρKωMΕaBϋK!Ρ)\±/θ΄d­@³γπΘ}χρύ“—“Šs]ιŠ%#R―NƒŽΓ/y‡C‚h{2έ'ΪU₯ë띩3(·_`Ώ^αώέtμΖ±CpH ³WΐΘσaω―±2™Lώ<•JύmνΪ΅M–UΠυj7μ`hQ2M:Ω:ώψ£¦]{mζ€œεκξ,#‹ΑΔ‰4,X J&ΣwΤΧΧ/؞Όε6JŽ;ξ8λ7ή.„ψ•mΫ‡β/ τξ O€Qž$oΚWFꋝ†ΦΉΑ”8Hψ&ΰ0ͺ ΣŽύ*·ΟψάΒ}ΊΆ–gvί•!α‘χ§ήν*5zt‡#n䡈ƒbθ|;s਑ΕŏőέΧ7gxζΡίsώΙY Ήι؍c»β@£„ούώ5ΙOΞ%‰«²Ωμ=1MΪ ;!΄(©lΫ6Ϊ΄©|ζΚ+kG%Ϋ!¦ϋv�©›¦:1mβDΡ°p‘ω!RΏ»ύφΫζ]zιeΞ¦oohnn&‘HΠΏβeΛ–XWWχ€ώRJ_ΐwlcN‚«ΟƒmP{ήΙΧΞ}~'εβ‘ †Ώ‘ό;=ŽΓ‘β„οm€τ΅ `šL˜π S:�εΔa²ώ4ΏN@ŒΒέμΚ„’s΅„£xTy±Ϋυ ωtθ ­RBFJΉο.:y% ‘ €AΗ&ΰΐό•pΗίαwΧhΑw†χ±³γ�r&άp'όωQΠ‚ˆM�ΞF…Ϋ »΄(’›ššhΧνgŸέpk—.;±cάF@J\dΥ*˜<Y4̝k>W\\uΫΈqγ>½α†œΔo΄ί±ΰ8Ή\Ž‘C‡¦?ώψ㣁ŸζrΉ‘hΙ„ qιχΰΤPj>َΘ7αϋϊlΖ0ͺ‡λέ<Z…Š‹JΤ@šωΡ'|ϊίη8ϋΈ\ΰΰΓ|£S£Ί‘§€xeΒUΆΎβp8@» !έΈ«γξφ=’Γ?m υί‚‡ξ½“1Η­RG²ξH:Z‹Cœs#<ρ >œ~,<π?P•*€{g£cΰRόΉτWπψ„ΰΤ<Γ0>,**:f͚5«Σι4»aΧ‚Φˆθ1§œΒγƒmσΆl5πψš50eŠhψμ3ω2€wΠA}8qβΔά7} (“Ι`YW_}΅uί}χν \–ΝfΟ:θV|i1 ?�.:ŽUiόνbΓ B0ΐ–”Ί‘ ηΧ[¨ΎΓμˆθπ^τdυ<πv·…`;ο±|ώkœ~΄MRΔ Œ΄…HΏ .]:SŽKΣihQŽμtB$άϊΒ0ιβnύ’kΧρςψϋΉΰ”Fp'Ϊ?Ϋ›ŽMΔ!š,œs=ΌτN0Nϊv‡Ώέχ}βeg₯c{ΰΐάUpφaΖ¬Puo%“Ιο577―ή–wΓζA‹oΞqΪ΅kΫΏ_ΏuŸw†ŒŽ¨<Ύ~=L™BΣ§ŸZ―74δn=μ°α3&Mz'μλΰ;ΗΑΆmͺ««“Άm¨――Ώ¨ΉΉω( Τ^l‚ώ½αΌSαψΓ o0½„oνΊ\"jύΖZΒC V=VϋvΕΘ£ βHMWKΓ`ΞάωLzύ%?p{uΗ !KΚ½Ž°Pœn=]WRόΔό΄MΒ!A�U§β- D!oΓs„ΰωηώΙνΛώ}\\;šŽ-ΐ!₯š>ώΥCπϋ‡ Ωέ#mpρπλqΠ6.Ώ3±΅q  Ξ†;‡[ΰπͺ\2™Ό/“Ιό,—ΛΥ}Σ o΄(ε2™ ]taϊ½χž¨=ηœmtκΪf€'ΐkj`κT‘™1CLL§ΛΉzυκw ΓΨ½rΐq€”TWW_½zυχ₯”ί±m» šΓ`™pμ‘pΚwΰΘƒ GGWΠ;a樃&‹CCά}\93©m‚Γ1�‰Ž`,_΅Š)“ήcν²ιsˆMΟΞ„b`ΗΥ©[H…š₯#ο΄ΞMΕ!²έΉˆΤ~Žό:Ռƒ#“§NgΕάrΪHGΕk; [ ΜZ έ Σ>ž™Œ= ώχ*θR?~wV:6¨΅9xδEψω*†Ύ KKKΟ―««›ΔnψFΑFΝΦ;ξψ³υΐ·|vΖkχάQF'ΐλλaΪ4œιΣΕ$ΗIξε—_z}Ψ°αN2Ή6Ÿ ‘ΉΉΛ²p‡^½zuX΅jΥ‰RΚΡ™LfΈ’Ψ›²χ„¨eΒAΰΈ#`Δ`ά)~©|­Kΰ<λ#ΒΔBΣ‰.xΕ£Ξ&㐰‘Ρΰ™Χ-φΪ#Γΐ=ΥAž�βτπ„j™D wφωk„+’kσq$]ώG5ήMτ¬t―xVJ^yιudέTN<ά ^Ω©θΨΊ8€πΦ Έώvψ`Vψωΰ}ΰϊKΰ„aŒψCξLtl ‡” πρ΅wόΉΧΑvτ:ΔΚT*uύώϋο·©S§nrΐ’έ°kΐFίκO<Α~pΑ3—]–9£Έx{4)ΰΝΝπώϋ0}Ίω^]Έν¬³Ύ7αo{,·ΫίώΰyΦtνΪ΅K]]έαυυυ§J)v§~  ¨UœVŽx‡ ΒA{Ci ˆfŽzΗ…@Ί‘+1š°•ήΛfSql Be"οΦ‚‚8�ŠAΟ»]eΓ`ϊτ™ωήk7¬Žž!Ξ‘§ c;ΰΐ„OΑΟώ―NV!›=0 8x \<NmJlαvνP: ΘπΖ{πΘsπςΔόhn†aΌŸH$~ήΨΨψΊ”r“#Xξ†]Z;τnϋΑΈΆC‡m³uΝϋ¦Mƒ3ΜOkkΏιίΏί 3fΜl€­m7l=ππ€” ><ύώϋοχO$#Ηωn6›ιNwΖ5υΩ½μΥFƒχ‡‘{A24£œσŒ° †xa[πyΤBr―qCΈP±3ΡΪL@žrΡBΎ8b6 ‡Ϊ^�ι^H+ΑΌΉσxϋ­w¨L-ΰˆƒlΪ»S˝–Ž€#gΒΔα·χΓήGσ7P°``_8v8Œ<ŽΨίUD›Ο Ν&mM:d0» 0g!Ότ6Lx >œ ΅‘ΝdB='‘HάVRR2~νΪ΅ίψΣΝvC>lT<ηr9£S§ŽguΤΪΗϋχί:‡΄θΡΰ̜™\°z΅ψΥ{τ~αΣO?«έό›�ΝΝΝΈ> Ζ©§žj̞=»ϋΒ… χŽ•Rްm»§”2ι2£`ΝΕΰ*K‘ΊƒϊCΒAϋΒΐήPRI€ΐ"tΙίήCX¨Η nΝŠ*�Q†*GώΗԚς_ί¦βhΘΒΫ5Ψ³·CΧφκp›¨oΓ–βΨtμ0R{nΑx~2άu?Μ]DAHZΠ₯tν {ο‘N λ^ ½»AΗ (M‘B6©ƒ ™¨i‚5΅°tΜ]sΎTΏ₯Λ`ιΚΰΰάo%gΖΧΐpΒ _<ϊθ£9Γ0ΎυΞΏίvΨθΫΟd2€Σ鑇Κ;Η³yŽqž�·mψτSœ)SΔΒ5kŒΫιτλΧ――ΨΥχ‚ο†MƒL&ƒad³Y,Λ2nΌρFλψC›N:ν½vνΪαΩlφ)εώ@Ή”2νN燴<!ΐPV •ε°wΨ·/μ΅ ξ Ϊ©i”Λυ…$Μρ΅zdœTˆ*Zrμg cκ WU°žέ8ΆŽ‰.…ϊ59ΠΠ‹—Γτ90η ˜1,‚υ΅Pί¨ŠΗπ8Giš Άm―—R~ τ·,«mΫ₯qcs ΐqsƒγ8+-Λz7™LN-..žΤΆmΫ}τQS2™tΗΩ=…Ύς`£½©©‰1cΞκύΥW―N5ͺ©=Ω,τ)τΟ?Όύ6 V―6ξμΪ΅λ½ός+λϋχοΏΫί …L&ƒišH) Γ0œσΞ;ΟzσΝ7KΗιΊbŊ‘%%%{577 „θ™ΝfΫ!Κ':½οI‘¨)Τ’”—Βέ ¨ξύzBοΞΠ JΛ 2©–€«'άΆ8οeύΤRykς“2$Λ ™€ίB~=~g+,„ΊΟδ`}κk`ω:˜ΏDYΈ‹Γη‹`α¨o‚Ζ&uF·ώώ5p„Ώ½{βΈγ�ώΩέσϊ€³}>YgσHμ΄ζ0y Ѝk‡@H"₯B(Κƒ?’Š’5"NΥVQΥJκ?‘ͺ* Qώ(’HJ„ HΤ•"&‰š†‡_αaΞΘΆγ{ψ|ΆοΞ»³3ύcoΓΥ„ΰπŒαχ‘VwΎ³ΟγΗνogζ7Ώαp_Ί§LΣμBΙησ‘HδΏΉ\nhυκΥcoΏύΆ΄m›3Ζ€γ8π ΨΆ )% Γΰœsωβ‹/κ�Μ>ψ@‡Γζ’E‹fφφφΞ<zτθeν†Γa±dΙ’ΤαΓ‡ΗcbεΚ•" ε·lΩ"”RάΆm©ihωΎ¦Π7lψ%ί·oΗW--²^ˆ‹?§ψMzκpθοK$ŒwkkλΆμέ»'S[[GW“δΊ°, Œ1θΊΫΆΑγX·nokk㍍w~ρΕw›¦Y722²PJΩΰσωͺ„A�3₯[λς’W—ΕA‡ζτ9*Λά ‚pΠ½Uα*`nW�ώΐ¬ΐ ?`κ€ΙέrΓ’])ψζ“z…—†^ œœΐχν]ΰοαr_g‰‹Φ=‚/ “€- ι!fΡq ;œOηRΐΠΧ@|H€έ AΜs{Μή<²,šΏΜ‘Χ»Νhš6dYΦ Οηλ4Mσ€a=υυυνŸώωΠƍεζΝ›e €”R†!”R 3d:›„‹R ₯₯μ_―ΎŠ•“kΊχ|ruΧ��ωIDATτ�‡a(ΣΆj+—Λ †§W› Ή&,Λ⚦AΣ4™ΟηΑγ½½½hkk lάΈqžeYu†a„ΚΛΛkΗΗΗλlΫu=˜Λε‚�ΒΈΜf½ή η…ιξN|3”Ο.}pξŽ”š@‰(1άς½Œ]xΣJ�JΊe;e‘* {+UΘ{gξλqp­θώδƒΉΟs0―έ…ϋ=ζ=Ξ/n{ρ­wx?σδη9Ώό}MsD8y’ΙφvvJνc!ΔvΛ²: Γ€”’ !h+ΉmMiLGΑ++«ΪGGγ+ΗΖΪΪxͺ§Gύ-˜υΦπpΊΟΫ‘LJ‡†‰Θ΄ασωΎH/ £z§ G»mۈΗγ�ά ΫΒάeSi)mρbΉjΩ2π™3έ@JωHWO)7pΫ6<{φ¬~p|άΩ1wξœύΡhoβΒˆξŸΛΛΏαœΛοxiBnyS:Y–…ššš{GGG³Ιd²Η4M άδΆ ₯D ψ‘mη0ΎσtS“ςWUΉ žΐ―ŽR€a�©ΠΥΕΠΥΕΟ ϋ>؎—_ώυ±Ν›lišFω6„L’)°m±X"‘εJ©ί†Γbύ£ͺͺ;ξ ψ•ςζΌ½˜2;¦ΔωσΎOΣiΉ½΄΄΄uώύύK—.•Ό Ή:tŠ"·-Ηq`Yκλλύ‰DόΉ@ΐϊ}c£¬kh�Χ΄’Ll2%ΕΑ{l θθ`’« ‰tΪ·Ϋ4gmXϋΐΐ@–φ[ δϊ ΣΉm2Ϊρΰƒ˜]]ݏ̚εΌ~ί}βώ₯K•ξσέψ�^œ±]œ4ζev~Ώ;§όCRΌΛ”ΐΉs ǎ©l,fK§νsηΞΫ³pα‚ώέ»χJ₯MΟrƒP@'·4₯ZZ^αΫΆm{ΐqΖώΨΠ V57+ί΅Nd›Ό•«w+₯»'A6 €ΣΙ$ηρ8²Ω¬‘ŽΕ¬t>―Ξ–”ψ;s9«7‰τ G‡†^[Ύ\ώbΩ2π›=Το]δ0ŒŽ_}Εdg'οO$΄ύΊ^ϊ^ ψρς΅΅΅°m›–}rQ@'·―M ¨"Ώι»œυΛ—ΓBL-8χœ½eSξk»9“art|pH&U&•ϊ‡‡Y‚s_T)td³ΩΎŠŠŠΞwί}ηl,v>ΏjΥ*άsΟ=RJ !„WΜJ)˜¦ιeΞ‡fΜΠv<ω€X΅`Aaνυ ζmŠδ8@?pό8ς]]όΘΔ>¬«»λ[·nM477Λ Y愐zW’iΝ Œ~Ώ?dYΦ†9sTKS“ ͟οpOρΊf!€‰ †‘`dD!•‚L$ΈΜdx"“ΡΞ N jšΦY^^qΖ²¬³?άΤ“ΛεϋZ[-ΗαJ)©”βRJιU »RΥΥΥσςω}O?»««―ς—1Eή‹¦Ή½ξ“''τ‘ή^φqyyΩΞΗ{μ“νΫ. UΠnL£!W:™v”RX³foϞ=λΚΛρ›ϋο—‘yσQ2™RblŒEm{F_2™ο ƒ'“ΙΤ !DssΣΩ7ήx#΅xρ8Ž#KJJ ₯„γ87zΈψ‘šμzζΤΧο›xCζœ±ΠΡΑδ™3όH:Νwϊύ₯»S©α¨RJJ)iΈœiŽ:™vZZZΠΪΪzg$IμΪ΅kLJΙmΫ†a²°™ΠΝnβ·J&¨¬ ­©―ΗΆ΅k0Œk?‡―λ@>tw,;0 οΞηεϋO=υ³ƒ~ψQ†’ΤΉuQ@'δ:²m 6πX,φ»{οΝΏώψγnΉΨ+ δΕσϋš|ύ5pτ(§O«žρρχ�ΆϋΝ7zjύϊ Βq¨r#!· θ„\J)ΤΤΤψβρwV¬ΐ Λ–ί­‡‹ΧuOL�§O3?ΞRρΈρΙψΈάQS3ϋ`4MQ’! €NΘ5‰DBƒƒ=;ŸxB<‰Lmy\ρŽ…Ι$ΠήΞ¬ξnDGG΅χKJόllόIΟή½[RJH)QRRrc~BΘ΄Ak 0‡©¨ΐgŸECUΥ₯ ΥxΛΓr9 ―αΛ/UjpΠό4“™ΨV_γΦM›6e_zιWξΎTQ2EΠ Ή Ÿ}φϊpu΅Ψωάs¨ςϋ/<W\”%Ί»™μθΰ§2ύ£²²ΐϋϋφνλ^΄h±€ynBΘ΅@+ „@eeε ³ggήZ»VΝτφμΆ, e²½]ε£Q~1σ½²²²ύηΟχ§ dnvΣ !„Ϋ›R GŽηψSc#μW^Z±ΞμΩΌWΧω_ͺ««zώωgu!·,λf7—B!“ ! …~λϊ`0ψB0œsβΔ H)111q³›G!ψ²j°!ε¦����IENDB`‚��������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/extended_syntaxes/index.md���������������������������0000664�0000000�0000000�00000001416�14654155362�0026701�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Test *disabled* $a=1$ $$x=5$$ $$x=5$$ (2) $ a=1 $ a $$c=3$$ b \begin{equation} b=2 \end{equation} ```{math} c=3 d=4 ``` Term **1** : Definition *1* second paragraph Term 2 ~ Definition 2a ~ Definition 2b Term 3 : code block : > quote : other {#myid1 .glossary} term : definition other term : other definition {term}`other term` :::{figure-md} target :class: other ![fun-fish](fun-fish.png) This is a caption in **Markdown** ::: :::{figure-md} other-target :class: other <img src="fun-fish.png" alt="fishy" class="bg-primary mb-1" width="200px"> This is a caption in **Markdown** ::: :::other Hallo *there* ::: linkify URL: www.example.com - [ ] hallo - [x] there Numbered code block: ```typescript type Result = "pass" | "fail" ``` ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/fieldlist/�������������������������������������������0000775�0000000�0000000�00000000000�14654155362�0023467�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/fieldlist/conf.py������������������������������������0000664�0000000�0000000�00000000143�14654155362�0024764�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������extensions = ["myst_parser"] exclude_patterns = ["_build"] myst_enable_extensions = ["fieldlist"] �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/fieldlist/index.md�����������������������������������0000664�0000000�0000000�00000000555�14654155362�0025125�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������:orphan: # Test :field: :*field*: content ```{py:function} send_message(sender, priority) Send a message to a recipient :param str sender: The person sending the message :param priority: The priority of the message, can be a number 1-5 :type priority: int :return: the message id :rtype: int :raises ValueError: if the message_body exceeds 160 characters ``` ���������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/footnotes/�������������������������������������������0000775�0000000�0000000�00000000000�14654155362�0023530�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/footnotes/conf.py������������������������������������0000664�0000000�0000000�00000000125�14654155362�0025025�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������extensions = ["myst_parser"] exclude_patterns = ["_build"] show_warning_types = True �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/footnotes/footnote_md.md�����������������������������0000664�0000000�0000000�00000000656�14654155362�0026376�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Footnotes with Markdown c[^c] ```{note} d[^d] ``` a[^a] [^a]: some footnote *text* (a) [^b]: a footnote before its reference (b) b[^b] [^c]: a footnote referenced first (c) [^d]: a footnote referenced in a directive (d) 123[^123] 123[^123] [^123]: multiple references footnote (123) e[^e] > - [^e]: footnote definition in a block element (e) [^1]: unreferenced footnote (1) [^x]: another unreferenced footnote (x) ����������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/footnotes/footnote_rst.rst���������������������������0000664�0000000�0000000�00000000551�14654155362�0027010�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Footnotes with rST ------------------ [#c]_ .. note:: [#d]_ [#a]_ .. [#a] some footnote *text* .. [#b] a footnote before its reference [#b]_ .. [#c] a footnote referenced first .. [#d] a footnote referenced in a directive [#123]_ [#123]_ .. [#123] multiple references footnote .. [1] unreferenced footnote .. [#x] another unreferenced footnote �������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/footnotes/index.md�����������������������������������0000664�0000000�0000000�00000000052�14654155362�0025156�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������```{toctree} footnote_rst footnote_md ``` ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/gettext/���������������������������������������������0000775�0000000�0000000�00000000000�14654155362�0023174�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/gettext/conf.py��������������������������������������0000664�0000000�0000000�00000000214�14654155362�0024470�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������extensions = ["myst_parser"] exclude_patterns = ["_build"] copyright = "2020, Executable Book Project" myst_enable_extensions = ["deflist"] ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/gettext/fr/������������������������������������������0000775�0000000�0000000�00000000000�14654155362�0023603�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/gettext/fr/LC_MESSAGES/������������������������������0000775�0000000�0000000�00000000000�14654155362�0025370�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/gettext/fr/LC_MESSAGES/index.po����������������������0000664�0000000�0000000�00000005526�14654155362�0027047�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# SOME DESCRIPTIVE TITLE. # Copyright (C) XXXX, Executable Book Project # This file is distributed under the same license as the Python package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2000-01-01 00:00+0000\n" "PO-Revision-Date: 2000-01-01 00:00+0000\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" msgid "**bold** text 1" msgstr "texte 1 en **gras**" msgid "**bold** text 2" msgstr "texte 2 en **gras**" msgid "**bold** text 3" msgstr "texte 3 en **gras**" msgid "**bold** text 4" msgstr "texte 4 en **gras**" msgid "**bold** text 5" msgstr "texte 5 en **gras**" msgid "**bold** text 6" msgstr "texte 6 en **gras**" msgid "**bold** text 7" msgstr "texte 7 en **gras**" msgid "**bold** text 8" msgstr "texte 8 en **gras**" msgid "**bold** text 9" msgstr "texte 9 en **gras**" msgid "**bold** text 10" msgstr "texte 10 en **gras**" msgid "<div markdown=1>\n" "" msgstr "<span markdown=1>\n" "" msgid "**bold** text 11" msgstr "texte 11 en **gras**" msgid "Extra ```backticks```" msgstr "\"```Backtick```\" supplΓ©mentaire" msgid "</div>\n" "" msgstr "</span>\n" "" msgid "**additional** text 12\n" "" msgstr "texte 12 **supplΓ©mentaire**\n" "" msgid "**additional** text 13\n" "" msgstr "texte 13 **supplΓ©mentaire**\n" "" msgid "{\n" " \"additional\": \"text 14\"\n" "}\n" "" msgstr "{\n" " \"supplΓ©mentaire\": \"texte 14\"\n" "}\n" "" msgid "<h3>**additional** text 15</h3>\n" "" msgstr "<h3>texte 15 **supplΓ©mentaire**</h3>\n" "" msgid ">>> print('doctest block')\n" "doctest block\n" "" msgstr ">>> print('bloque doctest')\n" "'bloque doctest\n" "" msgid "<iframe src=\"http://sphinx-doc.org\"></iframe>" msgstr "<iframe src=\"http://sphinx-doc.org/fr/master/\"></iframe>" msgid "![Fun Fish 1](fun-fish.png)" msgstr "![Poisson amusant 1](poisson-amusant.png)" msgid "Fun Fish 1" msgstr "Poisson amusant 1" msgid ".. image:: fun-fish.png" msgstr ".. image:: poisson-amusant.png" msgid "Fun Fish 2" msgstr "Poisson amusant 2" msgid "Fun Fish 3" msgstr "Poisson amusant 3" msgid ".. image:: fun-fish.png\n" " :alt: Fun Fish 1" msgstr ".. image:: poisson-amusant.png\n" " :alt: Poisson amusant 1" msgid ".. image:: fun-fish.png\n" " :alt: Fun Fish 2" msgstr ".. image:: poisson-amusant.png\n" " :alt: Poisson amusant 2" msgid ".. image:: fun-fish.png\n" " :alt: Fun Fish 3" msgstr ".. image:: poisson-amusant.png\n" " :alt: Poisson amusant 3" #: ../../index.md:65 msgid "footnote references [^1] [^a]" msgstr "rΓ©fΓ©rences aux notes de bas de page [^1] [^a]" #: ../../index.md:67 msgid "footnote 1" msgstr "note de bas de page 1" #: ../../index.md:69 msgid "footnote a" msgstr "note de bas de page a" ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/gettext/fun-fish.png���������������������������������0000664�0000000�0000000�00000263666�14654155362�0025444�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR��τ��^��Vέ”�� �IDATxœμwœΥΩΗΏgξ½ΫΛ.mι‚;ΨΑWΕ² Ζ$ΖΔυ%F»°`/1±½±kLΤXˆ`AΑJ+HpΩ₯μ.»lΉ{ΛΜyή?ζΞάΉe)² ‹ξΟrο9ε)ηyΞsΜ9ΊΠ9 «*ό²h€XΛ+$όζPh|(_:ͺ>££ ώ!PVπΡ&Ίζ­ζΜ–*�1u‡ΥΧΉ˜οηL*=%_tΤhz²DΔ΄:¬ΎNΕ<ؚΦ+ŸΦW[bZδœ:ΓΧQuu:ζ}ΞUbjΔ΄`λΝ}οΈvίρ]8,‹—6w˜£sΠι4ΠcN”άώLώoε°MΛv…Φ2xΓ·­²μΠeς©ΣΥ~§ΣόΖ'–/ν«ωττΠ ™τPϋ=πꚁό²²Γ$ΰ拓΄Φ%_…BŽι±š ύΟxͺƒκλTš―»₯&·Š9u=ys}_tμŸθŽ1}Υ!₯ώ@TF"”± ζύ—ςYrh€Σ€Vkή8°έiν4Μ‹ˆ1«ΉΩͺ1Mφ,©€Εjuš=­΄2ŽqνNk§±ωΟZ^λΩ­’^ΐτšήΤZΩ/n`Ψ₯ίٍίΎφ΅N£ωω--RkYτ+XM˜0AZyΆ²?5Ϊ’Ζ²¨΅,Ύ:΄]ιν4Μ/b‘¬l,£Ζ4ιqΡ:ς^¨KhφA‚œΗyνJo»Ά£©/*ς}fšζVεΣΪ» (XM―Ώ5σεƒ%ΌΆfž―ά“Hwεzύhk΄=Ιν́;Ώ>z•<σ ‘Ε‹#Ωm¦_ FƒZϋ‹ςΎG£m}«Vž¬ά…ZΣ€Φ²ΨhY(ΰ›]wm7š;¬Ω‡B!ϊτι3δ²Λ6,υ^Ÿ6Πœ9αμΜΜLχΪ7|#uMύ©΅LjL“ JJΠZ£”Mžˆ`γoό‰?aY–{ΐ0ŒΔΛ63Ÿ™ιŸrν΅ζΙ?4Η£ο:ΌΪπίΈ€΅3Χrδ‘GΪΔy˜wPWWGχξέΚPJQUUEίΎ}wœ ‡Γ\y%RQaMš„œr 2ϊpδΣηλ3DΟEd."σμΏχE>εέΖFQJ‰ˆˆΦZDDΞ:λ,QJ‰ΦΪ½vΛ-·ˆΦZήxγ ιΧ―Ÿ{]D€¬¬l«BAeš&~ΆwχYYYς©ΠιΝ³AHΣ€²Tμ«Ψiή nzάΗΥoΧsL^žD)WλoΏύ6J)Fˆ$άxσΝ79ώψγέί–e©-εΗΘΚΚΎ©’9δΥΊ΅ χοί?«01η"­s‰σϋρ’ΣΚεί–‡‚{ΑΕγ,ξ<ΆΐeΜiζΣ¦M#‰D\‘؟P3ŠŠŠHξYό~Σ–o̜9}"ΐ 'H–Σ\srr~΅©L"Β‹χ"+_ώΎ΅~&e73ωΥ$ΉΡΕpΘ1“’ςΗοη?3δ'ΪφuΧ]—P_β'”dAύτΖτ<Ÿ/>Η©”ΚΩRζ•ΦšI“Œ6mε†Μδf$znR!e“lWwU/bkH(›ΔδGŸβχεΛν …εw(ͺz</N·/;80>WιmήίJ)ώ~ƒβςŸΗΚVvKš6Ζ\ ΙΚΚ:*‰Μj‹Ÿώg–}ύύ?«φ0bέDz4ΑΝ7ϋ₯’9ο<¬nωˆΜ³™² Š1ˆΰ6rOΣ@υΌ 0ΨM―ς`ς›žΊ »{LΆiοoησςS<UΕͺ;˜o°)Ζχ»lwΙΝΙΩsχσ†H¬ΚT†ρ4KbτΨcfΖmΩΥjΜq)Χ“y €―€γφ|Η½o;<α‚ΰΥ©/Ύ ‹β-ΦΡr2nΊ4Moζ‘#:?… �žl¨τ(Λ¦€O6ΚPμ~Α.ΏIe>hŽ3ν@Ο‹7³νేoΛLbΞM(Ύ_».ΙαΩM ΰ‡>%Ξ5π ΘBε8"’πχμ]ŠΞΖν1ά::”]†aΛΊ‡]1¨Ηwoμ)Žv£΄o6έ{f’_ Ώ σ™Έ1G‰ύT¬ν-1Ι:Œγ4wP*YΣ*8χ$q―Mš‚aŒgΖ 0Zαεϋ‘ΘJΰ›OΖ³ρ#˜:#^—( Τg>B ²CΑ}W+.'όζ(OύΙ‚φ\Pή{π^ϋζΛΊ°Aχ>Y\²XQ'@q―, Ÿ"k}˜uί·zΖσΨ@£§$ΐ²βΉ•Ζ€nζφPMυa”φωΠ5£ΆσάηΪψxΊεžύμτw= >+^Y€žkΣ‘Η§’Ψ—¬lΝβŸμ †Β0`―γSF)~ρdεω1 ΘΜραχ†Βˆωžx³oŒύ5%Vk‘qν8D8Mψ5GσTœΐAΑ?^…KO·Ύσόβ©Oyκ@ c8όnΩ᜽ό΄1œIλFΠ{p.}η{ύω‡ͺzΞεŸΓ"<‘W‰Ά ¦*HΛΖ(‘°F±™P’§§βŸgόώυg�<’wΚπώώπ½‘vd˜€{Y±’ύ}xη₯‹P}Ζπόν.Ο)υ;_υ<ϋ‹1β�žΖn!n4<^„Φ–qυ''DΎέ’°ζ›Ήυ„[-š7F)ξ‘©ύ�>h§‹mr°Εβ4vίrFBΛμ8β0νΐ%RxσΞ₯Lš >ƒWώo†€zNτD=.„C§_»νζ €ΌZχH[9­nτ «¦ΖR02Ξ8€aψ4ΰΈwρωώ―¬ΊhݚVΒ­_<ψ­Oœy¦²†•DΟ‰ ΐp ‚ργQέΊuΛ¨{·>Œ'Ζ‰Υ½&\+›dST=>Χ+>φu©“^ϊςΌ- Ή% ψLdΌ-xŞ2ο―_+₯”ΝΪ /³RRe،+¨ργν‚λλλ#Ζώ(cΪ‘Ρ5Q/pI‰έœόθS ό€ΜΓ€ςδυTξ½€<xδΒΐ–00žo”?�wί}Χ―“9LO˜Πf‘>c*밌+ΉΨC€ση*πς?+ψύ˜ε^YΔκ¦ΎXžΕςΓc7<AL‚ΗWπψΒG}ψΗ?ΆnήΜ©ΟL˜8ΡZ)ΨΓ›DIIΙ‰΅΅΅―ηB–·i: x”ΰ €Ι{OΕΏ# φC(Ψi/ΈΥhΦZη:SPQ‘>,ά„Γa²²²ΞPJ ƒΛΗ#‘O‘ΠHλ'ΘΪYΘEώurΔˆaΨΐ­u‡>NϋAήZL˜€€ ΣΣ’’bϋΠΜόΔ‰ˆΦ0gŽ2g̐‘‘Hde pM μfύgΞύA€#iΩαΘΞΞv'L ΓΈGӳݐ““3怓TΗ.΅ψ1@D:ΥΊ‡^s·�Dήί_�šοf‰Υ1n SIVeτΗͺό»!ΡΨ²%Fύ-έώΡuu*ΖE’HυSflf֏oΉ°#κκTŒ%g*1-Δ4i~Άg‡.2ξtΠZΣ:e 4=YξΡe§†ˆψ«£QYXΈΕOX~:USXνϊ…οG7 ΝΫΡ΄lW¬‹FeγσeaήBΡΦOδ- ρƒποc’4φƒ9Ύ9f睊ρ%λƒŸ™gאΉΘdζ¬ήΌX=€ΓκΪnCΒ-AM4*3š›Ω³[₯»ͺjcζΖO Ÿ² ½λκ4Έ©K„™5½ωβžnh4ώ°~GΤΧiVSn¬²ϊΣ&φ/&Μ‹kz3χW»QcY0 ύλλ4M}νŸΦΚΌŠljM“½»―t›z MFΣΤ³τY'΅g}¦©Χί[ΟΰΒ*,₯˜ΎΎSͺ#hΑΠΖ‰ν]_§iꡍύ(Νϋžƒ‹« dξΝΉό³r/{ΙΈeA;;ψNΡΤΏV_·Zef-}«„Σb’e)kf›2›ͺ/_\Φ^uΆ[S·,‹oDŽ:κ¨­/σ䜬ΐ'Qφ(ͺΖBxsέ@^ލΎάK 6ϊ΄­Π·,‹›oφ‰ψύpΗωeMMMΥ›Κ³°₯Ej΄¦oώjB„δ£[ ωτ7ξzYS€σ―• …Bdff&L)ƒύpς‘‡zοΆf͚%Ξ΅}χΪ—}ύ/©lμK­eΡοδ5L=τIξΈγΐξί?ϋμ3^>πeJ)ύψΞ>wRUUε–Y^^NϞ=}O=υΤVφΫΜψ 7 Ϋ²Ψ²χ>/1κ{"£ŠGSSWε.r–9ί Γΐ4M ΓHYVζσω΄ˆlρ Βνͺρμμ¬[Ί*δς‹D`Ζ;0ϊ�Έςθ{&φ³΄Hο€U4ώ3Φsΐ«SVDΏςΚ+œrΚ)n_}υΓ† #77—††€+¨{ο½W]~ωενΙ¦“ΌΤ̎/ϊ՞ΐ sγχC!8YΔ7$,τ‰H¦M›&ΏψΕ/ά{W]u•{šš7O―^½Άx4§**lΊ?ϊθ˜ΐΫoΟΨΪG±’ηۏ~έ‘NΑ±ULͺηU°ξΞ6Λ*αε™π—Ώ[ξ‚@­5>ŸiΣ¦ΉiΛΛΛνr•‚ω 5¦NŠRŠςςr―9lQ+VΙON- nΊi³&Έ<΄ΟD¨ž+‘ΔeA¨ͺέΕONΛΰμ±w%UΨ‚Μƒ—…*₯\Ζ¦{2?NސŸΑ²JνΝ·EŒ§τΉ>ŸύΉ’)+3VyουνΫ=?‰ieWψό _βͺw₯ ½ΔΛ»Όμœ n°σ ίAπί™pζ™gΖAkMyyy ΣZλψ‚`Ω«ΐ|ŸΟG8ή$³{ώ~χέw?wH€‘²zΩƒίNχχ¬Ž> ςΥΥβν ”e"ΐ˜Σ―I†‡Xο*W½'2ρBπϋμτΓzό+Αδ?>Ÿ/Ύπ f^Jž+dee΅ΙΛ>ο*ώ Yͺ©μΧ}.7RΊ’FΟχPόkΛ{ΑωήΕ=ŽV₯Χ• ΒΎ=ΎPΠγΉ%ΆL8±Ϊ v^m—uέoh“p§ΫzςΙ'‘yρςέ’b«­d^βRP—φ·~]Z–CiίlςΊΘΛΞύ›ρα‡I&Q€½&Ξ@#TTΰΪ¬Δθ¬U1Nν,™)›δ¦CjΝw΅€œ(β°nCΌάΠ‡‘”υ―Ά�†apφ°sάΕ‡Ξ§³ΦYNb~’{Ω9μΊaΘΜέ³€O₯}²),Ιpg<UQ‘λ.ψυ.sŠIφ”C`Oq ώ«Ο${½{ ŸJ<n§ž€Ώέ�§£χD;gΥxœί―…n·‰>utΌξ‘Ώ‡>ƒώύΊ±ςεϊ˜�ν]—λ½>βŸ{€R”τΙΒ0ΐ0}‡ζαχT.mbΥβ&Τ‡ΞΞyϋν‘- ΉmΗ m©ƒ;/‰œΌ&-¦-Η© ρΕΏ›Β„ν7&]zΫO=6i œG ήEDΙίOύ`‚–e(”‚W #­QΞͺκf―wυ) Š3ΘΘ4Xυm«5arΘαA’ΨΝΫωsΦlΕ*ψό[/5$PηΠ欁XςΥ~›e\Έq0 §]KΒj(7Mμš#lAvO`Œ€³—ŽݏHν ϊgp.}εgp—lμΞ£½),Ιδ™!-vΟ`c]˜ λΓ„‚шΆλIθΛ½n<Ϊν‘ ϋ³Δe]ή5―nπRz)J˜τΘ„f#ΈώΘ1biϋL"Z5ž)ΣαιiπίΏ₯6ηAΔκι?*ΧyΗž(ΰ�­ Γ@DψΣ‚ƒGωΜ’χ|ωA–)l¬‹PΏ.œ4γ,τuœrfXοƒwΏ†£φ"‘Y{Χ¨@ –2xν8ιWPύ5<όχ‰ ͺzΌλδˆθ3‘Sΐ-OښΤσ<q@R3wπύ΄XKP tάΡυ8‘dίΪZ;4‰uο;₯όζΉΓdΡάzZM J2hάAcL�1άsOAχΖΖΖ $Gm<žΥε P½GT?ώ8瞰*Ρ3φždησ¬ƒυ–ε^ς΄¨KsΊΦα ΅­ιMaοΛ­ςKVίΟξ]δk{@cϊo+°qγΖο=ΌRΓ…žέ•¬{;΅KυώP 0μwTΟ-_ηYψϊ Μωx.Gτ1δα*YΙΏτΞ’ξΝ1 πείW pΎ·Ιψν·g …ή‡)χbΝHΕ*λS{’Α!Π b$ζ™Τš )κR=/ΰπώ―y2z4-0σ+8zοā7αYΗΎ΅Hiκύkώ™MMMΟmmAαp˜ΜΜLkδ~οMN­Ετ°σπ+Ε\τσ )Ν7Ωwόώ6ψΟ[P?Σώ-~πν"²₯γ‘Ά1a’ŸŸ7~σ)·Gu>Ÿo 1_tςhdα+HλΧHhπ²βδƒη;„tˏ―oνΡ£ΗAνMΫ(²ΝΓ0ΤUγΗΛ[’φΞ;sƒ·v4MЁŒτΈβŠΖuJΑ}χε<W]]¦=™0UΖϋοζ»οκ@Ϋ%u :\γ^8ΎΔ0ΰ†6ίύό(0a2t萂ͧμΒ‡hώzΈ�XK―σΛ %τφ’΅=5)ζΞΉκό'`g? ²ςβ#hxM”²ƒO Χ kfCΈιΓ°CΏζ§zYΜ“ϊΫ ŽΫ‘΄n-Ί”ήJ/ψ#±,ΜΉϋ[²ρλS΅₯Ι³ς�αώμΛ20-ς/ϊ|ϊŽ&wk°];τ ²θˆηuDJ‚At(‚E0ŠG—EΎ}ρ#1₯Ώ}-ͺ»]ξ°m;]JίDgο-:AbŠΧ­Qϋ³%Xτ§`Ꭶ― „ō­χ·ΎΤGZώ]*:ϊΣΪ²ϋ' Ρ2Έω­f©ŽFεϋpXžhΨ°‰‡―]ξ}3‘ŒΚH$άύ¬V‹οςρŽ κΏ”–ξT}Ήƒθ}3X{εΊ/³ ƒ†#Μ_ΫΜΚWbυXΜΘεΖ¬ŒYoνhϊ~Ί,}Kϊ6ΏΣ\©5o«©·,‚Z!¨5Ν†π—ΦB_Ή;U'ί₯τ6 "ΖκhΤς=W λ5&&Q’TŸΰ½GJh΅4A­™ά»ςωwOί₯τ6P}aυίςOΜΏόƒ#… 1 οuΫFzί]O4ιŸ‰ΙXΖξ4²άiݞΠZrίln©ϋσz"ίΨσλ_ΌTHυ¨€νΪ-+ζβ…±ψD ƒώ±βΖσͺΖέΌƒIί"t)= –7‡d£²Xcš„κ-φΈΞuνΞg”(ΛΗeρφe„Cv#xcΐ@ŸΟPΎοRz΄Φy+†­hŠ|‘"ΥΜs· GφZFΔ2Sά»σύ Ξθτ2ντno|Φ” ΦηWΊΧ4ӈπϊΊ2‚V<zw#yΣ’1Λ π] --ΡşΏο;…Ν’KιT_RW4›ξνζ*ΤZeχƒΦ¦΅jϋw„•£³™~]_ͺd’ુƒ•Ώ―ιtJο¬]»ζΨξέK6ŸΈ±ˆE"±Ez ψͺΎwΒΈ<(‚ϊ6Μa£–΅ΩœkqQ§“­ƒNKΨo°ο]q…ŒrMžl¬…Šφ^·n]C Π~kΛ>zγ(ϊί3Ÿm&ηΒ ξu&J”gρωέJά­·θTW­€ ·FW/ίgΟ~νF`;’S+= Γ8Ή’BOΡibdŸžžΠš5Ε»UW―ωή{,Π氈Ej@‹G©eΏ¨!kF«kΑ�cK-΅�)oί3ψI|­kZ)Ν£—)Γo ΅&''ηoαpψrο›ΖJ)²²²^niiωεφ\,ΈC”>x°!Η#δζŠΞΚΒΘΚJzΓσ„ΫΊΠ`ζL" ΅aΓ†γN–χXqId}ΘέyΤ*S,ωΊA­Ήη¬³XωηTVV&cM +Qωo½υcΚΗp;·s₯yeΒ±*’•/"μ½χή,Z΄hΦϊΐmη΄mt*K4h`ί=V­*/oM>χ€ό~hn†εΛaΙ¨¬„_υG)/gθ~ϋSάk‚0ιdOΞζόσΟχ”‘ώ ‘δλήΰχϋill$777!]ςQ4ήΌ«W―fπΰΑ³LΣ<ͺ]…ΰΤΧ…ΆLΣ$//―W$ωVk]α‡‡o‚ί‹ϋ:.ΰΎΈ•ΐHς›_Ξ5ο-­axηxφ Έρβ:ZFgԚ_ Lύϊυm*Έ-Wμ=H)ω¨Λ²Z|QQυυυ›ͺ§έu€JKωό΄ΣΨη±Η²χnmmύͺ½+Ψ’Ρ(yyy ‡ΓgŒ S#ŒΤΧ—ήτ\ƒψ;›Ιοz©ΔμnΩ`ο4PU3ηΑΌoμοwΟ\ΞGΟ~Δgœ+7n™ήχΒ»wοΞΣO?ΒOΒφ18Ϋ(xαl™ΰ”;f̘—oY~Ώ—ΐΛ›βVBΓ+*Hχ*<˜³vmλΘφ8€ΞAϞ=ϋ―[·nΥM€‹NτXlρYΌσA5£χ°κQ’Fι1ŠSš~ϋ4°ΰͺρδ8;˜¨Δ‡cYSί†,š Ί.Ί>ω*qϋˆ[±cεŽ8χǎ›πΉ·χmLμ:π$¨\§˜:uͺ«t'­§>χ€‘φ‚ …Bά~{Φ-… Ρ{ο}}ΰζ›oΩβ9fΓ0κχέU-x6ηu.τ™„ (R5>Αr½ΙΌ΄@μ~Ÿ‰;4,Oavό=ΏxΛ @ٍ<χΔ$Ξ8ή~Yαςϋΐ Γ=ΧΨG?͚ –Fže₯Έp―Λ>ωδ“ΉπΒ Δ‘GI^^ϊΝYE„Œ€Aτγ4]‘‡cΌψβ‹Œ7ΞΝgΖ {š,?mΏ’»)`αΎξισΑwζNjhhœΰΈ±²²²βκκͺ:λΣXE*1"OpΓͺl’[τ’οΎg·¬GγŠή„Υγο=Ξ³ˆπΥ·ί2,Ή„4J@Κn±‰α•ΎΙ)}„ο@{οƒ_]cœz ¨ρ3“#μΆΠΦ}₯}ϋφ₯ςΥ*7–HζΗΫ9§PΓ!??Ÿ††•.Ψv?ohό­g¨ ~χΤͺ\§Ύ”·κ\XΨ ͺ5MοΛλI¨¨�™kΥ^Mφ­Ξ½’sŒ¨ΨEΛW±GΦc‰oόz²&¬lRόŠ(ήxu<ε%zTΩD@ΉΧsη©‰°¦.…γ΅ΣξάΝ}Χ;₯Oχ"9Oχ=;;›ΰœ*YΎ^–&Θtx6F$Hl³τΫώ5½Κ J Γ>X+Ά΅X˜¦&0ψόΑEΚ�¨«k£ΜΨ†7ξ~Δ%ξ|6±M|>.=.~PΔ[ĘHώC€Œ±"νmUv)άeUyϊ~η»§st&N~θΚφΌϋSd�Ž%Ϊιƒ![(οΞƒ‘ϋΕ‹ϋ.φœEζΑΊχ ΧΝoJαήϋŽυάqΗ ͺhŠ+ΓC:Σ€‘y•‰lξtςθΗϋ„­ωΓe·}KJJϊdQΪ7‡²lJzgΣ­G&ΩΉ~̈栿μm«dΐ�Vsύ7YjWΉ) H<,,z!ιΊ7=©n€˜΅Ύψςλœzπ')U—ž�ύJ}œwv9ηž}0ΩU7ΪeϊBι9<φψ3œWΎ,ήU$Gπ}nB\o °fΏΌ ~}dψα»ΰ―ŠΧ·ηΨk@’G9ωΟ0υ=˜5k£FJqϋ‘PˆΌΌ< ₯‰|œδάEΖE‘–gΓ­5}Nν5°°ΰΕΌ’�έ2b Ζήa¦Gίl2³}ddω0£š–Ζ(M’lάacm3*. 'WT0%EΪΝ€&΅e¦ι œ~4 )Mε1y+Žd&ΣvΨI‘Ϋ-oďΈάZh ™™P] λ+α…ΨζjxΌOώ67wl"Ιi{sb’‡“ι†ŠRΊ¨4ιB’8ώ΅aΆ‰y)#£δfg`Υ·PΎ —‚n1ο bۈ)ŠJ3ΘΞυSX’A°Ι€‘&LCm˜†š ΅aZ›-»ΎP(dά~{VͺHM ˜DY:Nbχήf<””,©3φΆή”ςΪθe χDn~lιζά·έrα²£βŠ2FΨ§Yž–€ψφ„Α½=}lty‡`^eώίkpύ_‘΄ΨΎΈΌΚώτe(v[Ζ.Ηυα…έ›P†«‘™³jzΊu{ΫδΔuύOφήΐ²™ΝΑηWάRXG‰ŽςΏΑή(₯ΘΜ6ˆ„4™9>¬¨Π²1Jγ† uΆ₯‡[­8;›ΰ“–Mα:ΖψΔ{μ~(έΛ+ΐ6‡nιΰ+—" nš<!νΌόζ _|%~xδκX}e“xdς“\8α;ώ}+όοmφωνηΗΆŽ:υX,Ψε#©ϋJgΥήQΗΨ?Αsμλxσ\₯ξͺΒ\δ«ηΓV―dυH°ZΗΝoͺˆn3jˆΕ‚&‹ησϋP[’±>B Γ@k!άjl2iΤ₯Gίμ-Pz²²ϋXίpΗΞχ|Έγψv*τ-τ\—8#BšΌ’ΛpN‘9枧ΣοM’<ώΈβΙΟ‘=IΨηΛ)Λe₯η_#₯`έ† τhύ;ΖψŸaαhi…•Σ ·3BNγ₯’-=₯Ž$φZLΘ?$~ΨΓα­{ΣΧΡλxhεφliiYŸ–ao="άπωq}†Ώΰ‹κΨ°.dοΡ„‚&­Ν& Θ/φrι»ϊj$;ΫSŠγμΣ ½'©{‡lΝ@l~"Ά™κ£ƒΚ8ω«$(>Eήk.ρ[”Mbς£s~ωΚx ˜\dξ%gΈ #d¬™Πΐϊ^@bΗΩΊΥ:Ϋy9ΏΕ3 πδΖ(·Y‡JemSuδΝ³ν.gτθсιΣ§ ƒQެΨGP°vU+ώ€"'ΟΟ%εWϊ~7ϊ<ν²4lυγΖQ΄Ω’φUσβα‡{φ[»vέκtχ|>ίΜ€5€yv<‚ί”»wλŽaΣX‘‹>Α3—κρiΫQΌpb#§ΨŽ_ή<BβޏI LŽ·ικ{Ώέ•�� �IDAT0F€ίο?Κ4ΝY[YάVÝTϊk7އ6•pnππΓ½χ―^³0~s]ϊ<€eYCƒ–ΝœišVΙ²>#šΪΏ»ε½Φ¦tν >ŠK_hs8μ’η‰ή&¦π„<*±QzΛTΓcΗ”oͺŽMΐ[‡1rssΛ ₯zscρφ‚[SO=i¬Xqφ&E·ήšqR$™Ϊ„ˆ>Ÿο5­υ‰ύzΑ²iH§|muœi>,S@•MBDψtζήΝS–'Ÿkε*Ρͺ½i&=@p.d«€:<Ÿ^w @ώHhi%x;ΤνWt–eqΣMΎρήt“eέ·ύΙJ„i𔕕°aΓ†7’Ρh `΄ά} 1 {h©R­N<_\αCβˆΓΉδν_“ϊZο°S4OΎ—έ ΑV;‘Οη{󨣎ϋα‡žΰχϋΪΨΨΈk¬!7›ZZZξσω|βEˆ9eeωο …Μ?ξ(bΆ……―\~yδ”φXVεΕΪ΅θ»phCΓΖοΪ·δƒvΟφEvvφ¨ki}―­q»D"θ7ίTΖΙ'Λ­±{θ!΅Έͺ*ΊG{!θlΨι”ξσ1Ψ°}Ξ›?ΑBe»Υ6Ӛ¦ΙΝ7ϋΣ6‰ϊzxυΥώ.]ΊlAFFF‡ΡΫ±Σ)} ΡwΒ*`κŸ Τ~ϋm¨ggιS»ΠŽΘΘΘΈ?++σλ‡>™ιBΌ5΄6;ο j[ωrŸ+΄6±>*+5Σ,sΦ>Vθυ!?ΰqOηB—Ϋ€^ϊ3‹όΓώͺ�¬ˆ!‘ZDk|e?w_ kš\$υwg=±γ¨όaθRzPέN3‡|Ήωτψ]_€Φφ½ΛΠ‘zD F@½ƒIέjt)½-ψς1œCnΧZ :ξΩ[žΩσΡ‚θΟΫw)½ Hd5ΚΘE΄6�$΄>ρ€/|’‘m]Κ³Π₯τΆ°qΪd B΄`~΄Ώ%αZνXzΛΤc2Πb[~Δ?gSΊΥθRzPCώ{©θJ h ΜπJΡ–}ϊε†/Β’5’…’«άΡ΄n-Ί”ή”αƒΊφ΄•«A,Z|ΎL\+Χ‚ςωw:ή₯τMΐQ½žHΓοq6-8Ž /ήΈSNcο”DooDήμ=F[9Σt(‚΄F°B Ξ―ο’ݏ"’·Ίώ ΎΨW–ξυrΧΔώOΝasԚHDV‡Γ²μΐe’͝O@WŸΎh­Φ;λgϊšνχΦ6Ύί›όyι½›ΟΩ…"RΤ8₯Qšg4ΛΊͺ¬ ‡εuu;ί4œ]–Ύ¬kŠŒρε(₯Θ]dRψb e~?3?«ΫiΧSuE ›€ΦΪXX†άχΒ4ΏΥLνΣ΅„›Β„C‘Πaϊπ²„y[±ΣΆΦν„‚<{ίΎ;Μ‡δ DƒQ,,Δ~£o§D—{ίŸk^„ˆί„CΜXUʌοϊΰ¬–ŸΩcζ¨M—Π9Ρ₯τ6 ΅&²$ς<Dn―§YkD)Μ<ΕΤ΅x₯zӟθގ¦σ‡ Kιm@)•γ—gXuζ= ^²A‹ ­uϋfbv=Zύρ fMψ Ω#@Γ!tƒF‹π?₯Υίσ{όυ±§mJqΞβοgμhZ·]Ρ{ˆ+>kΆr‡es[[1žmfΐΕ i7σεNΨ©δΨeιι‘QόeΤ―‘ζΧΩΌ_ΧρόάοΪΪΉ\|—Σ@‡t/£Πΐ?r %mB°ί”™±ΎŒΧk`:‘LρMΩΈ£iήμTni{aI}λšβGZzΥ\WΫ†E˜QΣΓ>ΚΓs|G Bζ7AφΉ£’?L?f§‘εNCθφ‚ΦΪXcšΦκh”όάUξυ(QΜ¬(SΎοG«₯iњVη­6΅‘Ϋν—μΧ°Iίbt)= ’₯ *ΩΈ8¦Y„έŠͺ!%ˆΣF„W^@Υ°LZMM³ΦΌ7xπN!ΟiΨ$TŸU}vtYλξˆ κza­2Ωgκ„~܊ς–'4„e¦¦+KBδ»Θ½‘!ϊ¬F°wImνg0³¦Œ―ξ+N‰ά½ž-{vΣϋλvt)= ΏΞF’Άjχ(ZC―ϋšνθ¨:-ikσΊ‘DKUκπ­JVmͺμΞ‚’Ϊ^> ΕΈ³Ό‰ξυ(Qζύ§U#3hI>gUkš|B$hbT‡xο†uz™vz·'6Ά,28(B¨Φbΰ j�LL"DμΟ\“―ΪΕ>>ΫΊyŽε4>©;jΑ™ΟΪ±œl]Jχ`‹€‘ΉŸmΑ–}&ϊή%ΥD­ΤσTiΨPw“Ω—υbΑ/»³1[1`ρ !ZšΈν +b±$c‰�¬n,£Υ±`ZΠVΌ‚Θ&Υυ6„s"η(Fηuͺ@Ξ²,Š‹‹wȞ1‹ϊ,ΪΥ ΜΚ VψڌMΏ h˜Ύ~�oL€‘΅ ŸθϋΡ۝­@§΄τ~ύϊΉΰ‚ΥKηΟWϊw²Οlllϊχ9±hkπYK0š™»οd³λzΪVοn±ώ»Ν ‡ΧqΐΝ+‰εφωŽΕ_Β%RΆΠI•ξ W―^9gœ±Ά₯ Ά ρ·ί*^=ΊΊ ΄χζ~Ÿ·%*Bnή*Όb‰ΕTQήXΫ/υν4Gi;Ϋΐ~ΎΛ.*°OJήtj₯;X΅j•qυΥ¬έw_ΚJ₯Ÿ~Ϊwskkλ„m9K][Β—αV‰Δ”Ω}Ÿjό+μ'iΙύw$;Κ ίμJ³Οcω± ―UkWι½ζΤώξΉ‡ΈΝΜw�v ₯;0M“‘#ύΡγO>uλO<ψΏ¦¦ζ‹·fΘo²Ώ£–;-ψhwwψΥ‚°WaU‚g1‹kΉ6ν}ϋv?Œ³‹.$°Ά ‹+ΉR\ύυY·ήzkˆδ$ŸέVXXΈGCCΓβvΠb§Rz( ##ƒAƒ|uηœ#Εm₯†x챬ίxγ„3―ΎϊΪ6W:,b‘½«w¬][–θ²ΓΒ3}Nβcυ1‘Pˆ@ r螣ψξέ»ΣPίΐίω;Q’\ΈφΡhτή>ψ€C=4ν1ΪUUUτλΧ₯Τ›"RΎΝBΪlw₯gff~tκ©ΡCŠ‹EgdΩΩ>_β6Ϋι6ψέ֝E †Ι“3ή=ϊ”ςηŸΑiΖ7|c)ΞY―ΛjzτΫϋœβb"‘~Ώ?νΡΪvΩ‰Κ7 ƒ[Έ…ΣΏ8AΓ₯α%υˆNΣ4‰y§ΧΙ΅τ’’’!ϋξ[·tδΘχjΨύχ³π½Υ­ϋω²W€Gρ�{°‡{ζ*€WV[ΧϊφνΛρ½/γΑΩ—‘™™™ΆKH—Χ0 "‘ˆκΘMŠ;{‡ΓNΎμ²Πω™™ν_ΎΦΨ£j5¬X‹Ώ…βsκyη°ο!‡2hL6Re’PμΑφŠWR’ΞN瓏⬬¬€wοή »U'Ω™œ_)…išͺ£Άο4Jχ"‰0pΰΐ’β⡫ƍΣ9θς Γώ½v-,_«VΒΘ½αˆΓμ“φ�CrζxΌη°Hό4‡u`φΏΖώ ΛιΗΞΙߝJ«U€G9¦i’““ƒišτκΥ‹κκj7Mr―”" ‘™™‰ΦšύφۏoΏύ–ργΗsέuΧ%δρΦΣ离4vD‘νΣ4ΙΟΟΏ­΅΅υ*ΐ8xxηQΘ3bGoxNRr‘|‹I纈ΐΚ5πψψυ_ΣΪ8Π‡Ÿ\ZJ8l,›l•'œpo½υV ½UUUτιΣ'εϊϋοΏOii)χί?=”z.’χΘn/ΚΛΛ9ε”S|]tQ»/΅νTJίc=ϊ,^ΌΈRDŒΛΟ†Ώ^²ωyβύJό(-οy-βQΈχŒ–΅uπβtxo>ά6s ž)β–w―fΚ£ΊVšάž —Λ/ΏœcŽ9€—^z‰ΗάMλEΊ�°W―^<σΜ3�nΙ^%-ΛΚ݌Άͺ’yψaβκκΘΖ˜A:όσ3{μ±°ˆ°τ Ψ₯t‰½φžΔDbλMwv©Yii…‹α½πνJψ姏σσΊs]E{0xπ`V¬XΐΤ©SSΕqΗ‡Σ{ƒΆdΉN›6-!MyyyΪψ –―έ ΣΠ.ΊΘά}$CƏG²²2ώάΡ<bΜΎΘ―}4lΝτΌψ‰Μ;,ιΟQ²χ;@°τΖXΑρΌ^wξώN$deΒƒΰθα0κ�ψτ€sӞ‰ξΠΌrεJ�FŽιήσφϋ΅΅΅)Ό*₯Έδ’K°ζΩηΚ{(Œ;–κκj7_KK‹W.ξ_Ϟ=·L [ ΓϋΓ0ΰšk"wMšδ“sΞQVώύϊΆgeZk”Ru>ŸsžŒΣσΰΨ}cJι3Ι=鉏׽ʣ4Χjr r²ΪΊυx”aΜ½ϋ θ–{ν£‚γsΚLŒΪeά{―½ΥŒ€%#YINΏώυ―Q†MΣΫχΩωϊ{ƎΛoΌAnnn‚gpς]tΡEθΨ޴퉴])0@ŒsΟ­¬œ0ΩcΥΊ­Φοσωfψ C¬O₯Ψϊ”ΖΎΔώ3zOL™˜QΣwzτ„’Ό<>Z”˜7αl΅ώw"*±A\yΏ}vzv. ώμ;΄mϊE„K/½°§»ŸόέQb]]]Ό‘Ζκξk[ώνΏ{�Γ0XΊtiJ¦i¦ŒγΫΖκΥ›ξ2”‚ΣN“¬›nςΙ€IˆRκ)'²έf�šk­ηΕϋXηhh`AΜ₯=ωΐψ=oΪ4Ÿ�ͺψWξχCNΈσή~^†Υ e7ΕM_ΰž§ΰτγ!s„}vzAn’‹΅ωW Ώ΅Φόόη?O°H­5cǎMΘ—Ÿβξ»οF,›.§«qψΘU saώk»ΉθΤχΠCΡ‡ ‹Ιͺ5L˜ Ώ½νΆLΉβ €¨¨`ψ¦€aŸο>`cXζί±lγΫ.ώˆ gξ¬DKNvσx¬Uψ‹pΤ«L35hsσΨaό;KŽΰΓ%pτˆψψ_)P>'�Œ+4έM8f̘1”——S^^ΞΨ±cέtι,ώύχί‡n<νΞαOΑιGΪ–o•••ˆ6lΨRΥ€Ε€ίτ}©ο―{ί•μ-ό ΕίΑ†![UZ#ΐε—7Ξ½υΦLFRf^^yφλ―Ώξ=!Vκζh c³‰Ε¦™[—Μ!$χΎξ‘ΩήίΔϋι„όxB\o‚)Ϋ|μΥοpΔ™ποΫΰ©©πΠ΅v²OΎ‚Ο§@MM ₯₯₯iϋu›–ΔΟδF‘ά?{»Pgψ¨ΔΓ±‡1™‡ŸΤŸ}½Γ0j½Σΐ[ŠώΏ)λŸ“™½JbRΩύό]lZ¦ςϋμ‘…ρΕ^ίκRφκΨΚ8ϊhρtΠλъ €ΈΨ zpŸ0\ςΈvε\{Ξ[‘Ϊ|οΖuΧ«χ6–Ζ2ΨudΈ»R°ΰ»8―�Ε±E•k`ο2; Kηβ!QΑ.]I3wή|£FΒtN`φvižΚαΙ)αƒGaXχ‡‘ιι%Ρ6Ž»f΄ΏΈ8UfŽŸ@Fμ)‚Γ.ΨΓ%ά0 γ₯6KhjγΊ“½1υVCƒy˜ώΜΤ\=Φ팟ί.%Μ’ρK^Α$ϋn[P±†β6ϊmP˜Έdνγ/Š‹SžF$0νaψπΓτλΪz– ΗΚηΜ™ƒ²β|;tΉmΗ‘1n�όαψεqrzNNΞ°-ͺGΒlΤΥќ<?Ήω~rςdεψ\šΛΞθυ<€qβ‰cΫ^έ‘­ψdεϋ‰KΜΘΦΦΒ½ΧaΟy'•ΌΦ§~bΗbύΊ;‘β"IHnš@Ώ„ ž~φΕΔϊWŸwh<£Δ‰V€Inΐ˜αpΔ‡osδl†{ΞΊ;― β2pKOꎜ…›! ~Ή%u‰hδέa’S · @na€ά|?Ωy~2³νqyiIΡ―�Œόη₯MwΞφx^ε;OύΠOϊΐpΙ)qΒ½—B€“ί(”›ζ±ΗžHP΄Δ΅ ‰†.�έOEˆPΏ=ϊ«De;‰ΡΔ[›β„Γ›πY{Ί„Ο—Ϊy *ΖlypfατάΈ’½u8PΚζΝε7™?l:”R›/7xr–|u˜9™dηϊΙ)p,=¦τ†­Ν&χώχnŒΝ ^«lΕ‡= ( Ρ(,žW”Ϋo%{CsHρΈX9ΆβΟ+_oτΪλ&ώο₯B[H->;rWJΡ΄rBBo£σΆ:ap)X:©ŠXβ₯+pλyΠΏw&‡rHΚΔ‰SVς΅Ω³g» w*HŠ']ϊΨT‰τ$ [ENΠh­9π/»Φ?mE«YίΜ'„μ\?Ήωr dηωΙΚρ‘™ε#i―TylΖC0²²²6Δ lοθ5γάz+μΪƒDE§qΛ^% 2:DΦNˆ7σXš;ώ½Ž…σšΒ~GŸIe}ΒIY Vυxς3άbGNΔ«ϋΡǞNεO%ώΉ’ΐš·αƒ‡>A)Ε Aƒ°,+­ς/Ύψb ΓΐZ9ΚVΈβ ؜Qˆ$њΠ0=@έ8πΐϋ�άσέΖ ίφ[ΊϋyCεθ›χ—‚‚μ’ΜεsόάW—GVŽœ|?ΉqΧΘ4πg( +;pί©ΔUT“#(! ϋΙIjGθ(ΠΫ'κ$AώΙ?D4ί―]Oy0ξ™=VpΝ`v˚ΗτηΕ³ (5­α»ο࣏ Ψg–Γž{›υσ»‚΅€σΗ,O`‘€Π~φξm(β±:πYΆΥ‹¬βΥΙΞ»šmό>8ύg»ςΔυKxΰR½βKΆκΨoΞ΅]ΔΚΠ†F«φ΅oΞ}”ξ₯ωψ|*€Ω(Y9~|EvžŸO!α …? πϋνB³23μz+*t»hN¦”DŽ<œ½?¦{{™NH·QŽ7_B Χ=Y©ͺ·"φ3̟SΖΫUžy#Ίτ뿏ήφ>»Αnύ“ž¨“%4‰ρ†GΉ’&ί3ίυΰ±ozΕΛT0ύX…D’|Ώ¦…?Υ–bψœΩB»¬’’L”a2 jΓ4ΤDbŸφχ^rμ±Ο)ΣΙq·ΒF₯pγڊM3Ά%!η^Β„ q8n5 nύίRn™Z“Jγΐδ8ΰ€Έkύη$0Fΐ ·CS0ΡΊ>_W:ΊQ‡$]Oξ]χ”>M·Σp’ώΌVYŠίX=ŠΌΒ] ”R™Ά-φΛΦdηωcΚVn—jΔτhYθ8οŽ.”RΆλλi$ήLM6™CΨeΠ>0<BΪ!m’λςΆ|Ο‡+!₯@ΊŸΞŠΕΡθ<Άn€‰ύh5 @Ε#PqAbέ’’ΡσΣ±$7ν|ο}ό—6ΪK³”‚Ό^YzΡdχΜζΕ½‚H(Β™+‹@A·b\Ηaε*ώΥΥ­ŒΙlαό–~dfۚžάm=ί6 —^ˆ@4lΡΪlbψ‘Ζ25–%8ρΊˆΨJ_Ύ\τώϋaΠ‚;ΊIΫ$Ϋ”"το%GBέΜΉ₯~Rίοzy―HŽό₯<zΧIά4y^Κξ�τό ΑοΒ8Π~ΨςΝwq―ΰZ§£X#Ι1bΒ5Oίύ—σαΚ;λύΝΏ·ο+Εΐ€‰Ώ(³^Έ¬[O¨ž`Oy,ά.Q)x[eπΆUH~7»Qά›_‹/·€έi$Λ4Πk#ΆWπA$€‰„4fΔVΎ�Q3j―FZΉ2»δa»τ|Οg~§ιϊζ˜PφέέvU+IJ‹9ά| ά9h§1xgρœΐNΕΜξσy{±-Έλ.Ύ\θ5‘ϊOΰ΄kαωΫαΤ«γ οϋέI]Jσιάwς_qͺό…ΔσΥ}ΫH~· ς»ؐŸM΄Ά έζ?έΚΘοˆύexΎΫΏ ’~;ί7˜ #&’…ΜœΨΈ<ίOKS”–F“`³I8h k’š[ƒΊ_«¨ΰΔ΄’ ’₯λ―“‚ΊŠ{lfχ¨W©’’z\arλH1ζήqZϋΔGΖ§%3ή|ΖWό"MWΣ{(‘1ζ©Ι·ςΗΫΰ…;lΕ?›MίiΗyθIκ»“ωpyMF,aΘžžΞΧ‚±#ˆ{ΑΨgΤ€¬αF£ΦΊΠIkι>#ƒ7ͺ)š΅ώŸ7Zαμ+|J»³β›&jΒ(Ca™šPΠ"ΨdάΕηW|ρΠ"εΘΘΘψDR•.Δ§YΫRΈσ»VQjxLρΦ&—'Ι_<­Γυʞ’}λe8ώ©‚±—DΟ€Œ9W‘©aό‰mΔ•pYY\2v ǝ ΉΖ9Š'ξmHκ’’ωHŽΎέ:œψ{ΕLΰ {bȁžορ"{·ΛΙ8� p�ŸaOH”—]Π�\ϋγŠ‡φΙσUedDB¦)hS‡,B-"PΨ=Ÿα³ϋτγŽ;φU˜–*ΙfΟχ|ΟwηA‹Cl _&N΄οΞJ₯Œ«Μ€:“’ΏΨmύoΎ\ΑΑ€©ZΓ}χΒ’ΉΧS’›α>XX·h<= γ–˜2ηΰΒΎψθ”Ξ?9ˆžƁ6έώƒα—ε`xF-ιΖΫ›―ƒ/i~ Χ< >˜x> γΩf|Ημkw‘Ύ@k­Άt±κ=|T ¨λŽYΏΊ΅€±ΊΛ²;3*δϊ £# ΆΒψΥW§„RJi&ή§{ξ}ψ’K|XW€;O―5”–ϊ#<}ΌwΨΰΘΖ+D―yLIŠΟD>Μ58αϋF?Œ'Γ†Έ w²yB Oμ>Ξ τŽέ³'0νq„}_pXŸ‚azθk#k³•Πλ%δ»ν"[αΚc�ǝLί„€-VΈ·ξ7½t—ύςφΟ- ZˆF4…%h­YψχoηAμΙ΅iš©ΉσΪ(ΥkέΙ·όπθdU]U%eNΏΰ;€¦# oφ#ρ1£J ΧR’OPw?ʊ?bW Ξ9ΛrgEπλΈΠ“γ ϋobίνΕ‘`8Ρb=4$Œ4’Fιšΐ7—·4uψb«x.ΉΙ_ζ›©έr<8ϊύ…o-˜ζ»αΉ«’†Ouuσ–=Z9ΒΉοΘΚΚ[Xb)o ˆΐ3Ο¨ΪeΛ¬‰SZgώgίζf¨α-αΣa`aά­§rI]½ΆΜšsΫ±"WρρΒζ}ώ%#zΔ+w»Oβˏ ν»‘ Έ‰Σ—ΙΧΪκ‘κpΨH“8ΉΌΧ>Ai­-_{½{pόcΫ|-Κ­a‹ΗΏI4=χœj?ήRί}'₯mάΤ.Ηεj¬nΐνΣγ+`HŽEψ=Αmfξr%ΒπIιZ½sωv^I°ήŸe¦Έbο"οƒ’€žju€z²tu΄ όμb…ˆ΄›Β7·–-\βbΚΉρFK-Y"έΆt ­υ›€Ϊ₯<p¬1*žˆΥM§G²*ω·$¦WΕΏtGͺ&xγFήάμˆ•;}Φ yάΆζQ’w‰Σ±Γ¨ Ά€ŽΔ²Υ±!9#@$Εt(\₯oI#7ήPzΒQŸ}&™?tΗ§h4:PƒG<ι󀴡!'ΊΑ“η·»n]<žΙΘbck©O¦gaDœθx ίρ»Ϋ[)™άGžIω�¦?Ÿ=,M >κHιθυ(9œ ©ν§ΓαVxύυΘ¦φκ™=σ7"ŽzY>//―oKKΛ*DŒή§"Α‡Ά%OΜ”ψΓγKέ7\ˆ― ΥσB647Σm㝩ώ8VWΊ�Ly` ‡ƒχ‹ηOΘCjΩσWˆq››;΄₯₯eY;‰o«ΰ;­¬Dœϊ’θ§Ÿ’§NΥ>Γ0θΘέš››W <tg AΏύHk}‘ΰΥαΔƒA9cΪ€Θέ…Σoz£η€ΎcUψHŠWŒ§[&‰Šς›ξ™ΆΧ7;uΘ<Ππνk_{τV8§”ι±t_VΒώΏ°œ qή_ΫpY;θ Ә1¦;PϋςKxρΕ-ŸθHh­1 γ^ΰ2ηΪΥΑ-ΨvHtεμt ήξΑi›πβω’ΪhX|ί�O„Χη8 Dι‚‚‚_ξΏώ5kΦc†aό6F³αχϋ§0ΰ_ύυ7i4[—œ>Ώκ*φYΆ ύΤS–―£whάVD"£¨¨hH4½6žν΅ ₯ Γ{†FΒ!ΐΑ{BQ7?¨(`‚… ­Qh ΓΖhl‚Ε+α“/ΰγω°δϋψJα<žΌρ΄ΣN»οΉηžkμμ2j σςr―ϋΓώpϋwή΅s2Γ΅Χ^γ‡o€™4ΪV<π€oαΊu‘ύwV%'c»GŽν Σ49ϋlΏ ΩΊ³6 ˜1C™3gFΫ²egΕN­τQ£°Ž>:ύ%"φnR_~©τ[o —_Ύω―kkαα‡ύϋ›¦Ή°ύ©ν<Ψι”΅fθPΝYgι§―­©AO™’šύώ~—Ύψβž=ΰ€΅γг³yοκ«iσœsΓ€ΫoΟΈ³±1xuGmαΥΩ°S)=++kJVV`ΟΈgυκͺ`vvφ&ΣχοOΝΉηR’ξή#ψ—UUE‡nι»i?&όh9>κ(δΘ#γΏEΰΣOaψπ|7έtσN¬Ά~”J?χ\€μ„΄ΦVxθ‘όc›ήέ±Tu‘ΓpυΥΘΔ‰HvΆρDGμΧ…N­5C†k^}λχXψ©αGιή»°ύ ΪBφHI―Ÿ!f *ΈhCKύHΤl”hx–Xώ«³^΅d“ϋ“ΕŽ˜…ϊΞ5ž ¬�� �IDATΕG7Ι_ˆ,:DDΗφN^ϋLݎΚ.€h³!*ΓΐΘ*•±Δkδ"Bӣݍt[ΧπΧΜ_ν0F~Bθ2τ.lτΧχ§ώ%‹^Wε‘ ”‘U“μ‰ΜžΏ I€ΩΈ�Z Zhk$sμwW'bEΑηΛ�ιadg<Ώρώ+²bzW[μ@ό4fš»ΠnPYCφ‘Μ!(«17 DΠuSκEGσΑ4ώLγ+1°,ΫΠUήHΓH|LΩτDqT�Ρ΄F,1ZžΩkΐΨΓՏ]^΄ [#χ+$Ѝ P>D Šœ<=oΏ«”ah όPBλ@ΡZgω:a ­5 ΅-Δ4έ²£Xϊ) ΛΠ»°uπ+UΣ{&Ύ\”ΏΤξ΅΅ dήaΞ4ΞΘ?ψxΒ΅ˆD"ρ7~΅Φ4O.xΓ_μμ…#ΪvE7F;ε‘΄?tzΆ Κπ#ω#³Uύ$c{1Ή‚«όuνΜw$΄α]΄ΪΒ025€Ž4|¦d£ΚΘΌH΄kΰ 5ΊΙxgXdcFΧγ΅.ό h³‰†h1-Δ΄ΐ΄Π±O1-tΛ†k1ςnΓΤnš„Ώ 9΅Ϋ΅Ρ“v4??vtzΆ ζGŽFΟHkĎΑGΣίΣΝΦΣΕΧ†·£yψ) ΛΠ»Π.ˆΞ(ϋ¨‚g↬ΣSΫ†ny >d7ΊνΪ3·Ÿνh²2θ2τ.΄Dk#ϊΕcτκΎ&ή>j!‘Φ/Θ<"7ŸGv4]θB~ D-Λ`k΄*‘κhDΎ_–κίWΙ’ξ‹dAΞ‚#v4?etMuv‘½PPwKν_{Tγ7”B ψŠ­χw§ϊΛ>dϊ³—ŒZ’΅£‰ό©’ke\Ά"’a3τ Œσ―²P«4ΝϊΡ9Š ₯θ[œΙΚώ,ŠDZt±φΎώe{£ΛΠ»°MϊWU†fvοε9yσMD ‘"…ήΛΟΰŒ Β`άZΉ~•Άτ€.c߾蚌λΒ6ADŠΎin_œιμ 9ŸFQ(D VƒExi˜Πβ‘uΒMQ¦ίSΐκnrσ]»υ½qGΣώSB—‘wαCD2ͺΦ…~+έŒΙ™±γS4˜ΑšBΣ›M„–…0ƒ&–Xh4φgΖ^ωΓΏήΌΉ:ΊΠ>θ2τ.ό ˆˆΠΏφζΪό±ΙQX"4kΝΚH„Υ¦I0lqȁk1ͺΝ#·°°”Ε‘#”θ α·Ί ½ ?Zλ‚u—¬ϋ χΨάaΎ–!Tβgy$ΜzΛ",BT„ˆΦDΑώn@—šΨη†υ¨Z“¨?Z}TλQe]Ζήρθ2τ.l5DΔ_χaσί7ζ”ΐ �b α/Β4>ΫHSΘδӏ»ΥbΈΦDE\cwbχΜzσφΙ{Όv³τ£G—‘wa« "ˆH―οΜȚBε#cAsN+ŸήHψ«0bΩ;rj4Ρ"Νμw{ΠάΗ ŠN0φ`Ɯΐ>ίκ²?ŽP½Cϋ‘£ΛΠ»°U‘gοΜγ€(ξώξžcοX–EAΠ ‚xkΌ5ΔσρŽ>1ρgβHŒ1yŒζρxbŒIŒΖϋŠβ ˆ€ Š —Θ}»,{ΝΞτQυϋ£§gzfgv—sϊΓk™ξκκϊVUχ§ΎίͺϊVutICΛ[e…‘ΡΠΰ8¬°,Š.¬‘δ₯™όηυΙ3Ž…ƒc8l>0Δ7g³μδΆτ1ψ{u/aKUw’θ0€”šΉΔΨόzσB.+‘9ͺXiYl²νTŸάnQŒάk=ΜCto0Ξw.‘˜Β\qjόΤ½΄H@φ VtJ)’΄φw΅Ÿ…φ ‘ΏƒΣΎ₯ε“8€¦Φœ(L]WΝϋ›zπN]o6žM}¬Z‘ΘŒs΄ώ/Ύtv§p7G ΡtRJ£fBΝΕ‘Ύ‘GE‘ ιω&šήnB5Ή€΅ϊ >W…mΛΦo©Α7…©}^ǐ‰‰΄^χŽzί+2όŸΓƒn;Ρ΄‹δ�\Υ*ΛϊΆ@7o¦εΡzœzΗυ‚C₯~%§H2mV±* “€χΊg7 q₯Μ7ϋτ‹θF`lξHDΠ.”RαeίΆό»¨8‘ΑqXoΫΔ€€πoΝtE}:žGtœ¬~ΉCύP™ͺ’v`ΫVXψ¦ά€ΜhΤΊψ?ί9b :­ΐ»!’hž6ίτ«Mί6L*c£cΣμ͍'§Ι,N―₯hj"ΡΫŒs�‡ΪΑ!VŽ,fω‘% ψ2^qσŒΪΩεί]=@›PREW³r±ΡΕθ›ΓΩd³fiOέ„KtΏ)ž<ξς\3―ή„£TN²·ΥψlXh ΏC=@›X2£ώ�ρ“ δf‰Σθd\“έ5ζ/θŽ₯§Mπμ>·© όM‚Γ΄}­Υ!‚{ΧβαψŒKΜKŽθœ’ο^ˆ /€T|)[Aθ†ΝDr›ωί�Μ}­‚šΓΒXΚGx|ΔΟς{Χjmxp=ύώ]Kxm•’»Gϊx—–\Q{εΜΞͺƒέΡδŜ?₯H{2=h¦Πίl‘ΫΈ²_l¬pXώ³b>MSf Ό₯Θξσ7 €GδMσφήGθ"xU·AνΘ ιHŽ^βoU»#δI¦V£‘θΒ& fΩyGΫs™γJwX{LŸ\_Ε·C άF ί’—d# νUσ† κ VΉm3’Θ‰―JΎΊY4Š»�ΜρlωK—ά„L†υœ΄…χ5ΰ΄ΣΟηΫή@]KEΛ±ΧΦ];₯skεϋ‹€θZAΪR[Zμ$»ΰ)¨"Εςυ½±}}n°=3<i‚›:τΏk3ύX‹½dn+L Εe‰Λ„Φ;£JΎχˆή€”TTTή£GΓ‡ž:UŸ^_οάkΫφ«J) НΗ/G/{BŸš8_d½ή @ό`vΓvςxΌω΄Ώ© a(Ί½ΫΘ‘Χ―ΖXoΆr}νΘH|‚ΔΊŸΗήKdίZDίJH)8p@Χ¦¦]z©3Π0@pXΈPπα‡Ϊ’M›œ{FŒώμΗό;Ž##‘Hgg»ΓhY“Π–T8–Biϊε5OΕZΕρήx[tkΞ+Lo8‘š^Λγώš:wΊB5;D6˜”-k’pE αΝ P’ζς[ϊGωφ€RPœόΙθƒήά΅΅ςύG@τν„”’cŽk̞=γο\`ύΈGΜ*iώκ:,]*˜:Ul\ΉRώaΨ°Cώ1{φ'5–eΙ‚‚‚ΞΘzNΜ]Χ8M+ӎT€ ˜J!WΩtΌ.U?ςia»\1λρξ¬?’�ΫRzΩσνfžFΐΝE9½΄G¨²{ρngIνLDί RR\\|υθΡ-ώΰ*'AόP B!XΉRπα‡Δ–,Q;dΘA~φٜ5J)‡wIΎΧŒ_clQΆε<^…Bε\~+N―q΅œGοˆΙνΕ[Μbζρ9«‹Χ3o΄BD‰τθAρ!|0z$βq,αzέeΈη( œˆFhyγ’Ϗ²ŸΚmΒ' �-ΛΣN;mίΙ“'WF£ΡςX,Φtκ©§6θΊώΥσΟ?”ς{emm’οΨΆM(9x0― Ηi?”Γ€ 3fˆΨ_¨§†~ΧGΝX …vˆf“¦daρΒ/„)†rXˆ¦i=r{»‘Τʎbπθo -4SdΧΠΈŒΛ˜Γ�„\uΥU\{ν΅ 8!BT²υB ₯€ΉΉ™wί}—I“&ρω矣”BCγjζ�h=8ΧKνΓΪI))--½ͺΉΉωOJ) °°λ»ŽSO=•‘C‡FSς€”,Y²„χίŸx€₯K—¦…B‘§‰ΔyΪnΈΣΝCτx<ξj�αpMΣδΚ•Λ΅ϊϊz­₯₯E»ψβKŒU«ViΝΝΝF2žΦ₯K—h·n]+ +C!£rφμΟJ•R…α°^\^^ZVRRTΈvνκRM£R*… \Χ),.֍ΒB.*Βšα8f8Β((ΐ((@‹F%ƒ)š0c†Ÿ7OLξΧoΏIwά1aήΉηŽ“’Ξ&oςfa_ϊ6KOA±ωρJΟ.L›ίYoΛΏψ‚»=€;οΌ“[o½pIμζO₯ΘέΦ―?wΌyσfΘζΝ›©’Š›ΈΙ%:ŠΈ#F0eΚŠŠŠΆY†—W)%·ήz+wί}7�%%%g466ΎΊ#žQgc Ί“T‘ΥΥΥα––ζk{χΆ;ΦͺξΡΓDΫݝΌƒRπΡGΒώβ mΊat½«ΌΌβƒE‹I ΌpKΣRyumo-9ψζpKŸCÏ ψζΡrΧ|0›Vδ»ξ⦛nj—h²ΟύΘWeY”——‹Εψό?†œ0„s_>Χk΄ΫL§£2όΏϊΧΏ8οΌσ�šnΉε–²»ξΊλ{;.°›ΏβƒmΫhšFaaα…UUΦΔ±cώϋξ Ά½ϋ7μώ&­‚9sυΛβG ΰXŽΝŒ—œX?Ÿσ™Γ¦NΚQG•W[Ά/·uά|Ϊ6;ΌͺͺŠššζΟ_HϞέ)**Β0ŒV„ίήq}}=εεε�1 ¨C…ϋŽax·–eρΟ>ΑύΧu'·ά?j”5πΰƒ¦Ήs?ω„p뀄xjj`Σ&¨―wcMΠ§+τιUΥpΠ�θΧ*»C2¨LΎšJ‚ξ―#‘)k6‚<ξ[DaIJΆ“2ΛΪΏcTόΤυm1ˆ#F0kΦ, S;vT£η"_[χδ“±eΛ***8ςΘ#yε•W())Α0ŒT<ΏΌΆdu΄χί?Χ]wš¦‘RNݞ绫};ΰ8oΌ1™qγΖλΪ5|_ίΎ[FΧΦBm-Δb`Y`™ξΤΪή½αόΣαάγ w5I“ZπΏ‡Ι―‘ AΪ1Ν;W€ž˜ΐwžό*yH{χ§nJž',ΨΈ|Ÿ.„cŸ‹βEGBԝVΛπmWŠΊωΙ€ΌυΦ[όρnrm˜Η©β$γLœ8‘‰'Ά7‰°nέ:*++s0Βα0ΊSWWG4EΑΫoΏΝI'Τζ½γƍγ駟ήͺrX–E$AΧυ‡ZZZΩU3"Ϋ‹€θ€eYŒ7.όφΫo_‹Εώ�”Ί»’BU%ότ4Έα? ΊRsBΒGΖ¬σ7“΅ογo ‰ύ„M«ΦχfΗΙ‹JψN^P &l¬ƒωΛ\’/Yλ5ώτρBœ5κgχΐJz½ ]ηΨ’"^yεN;ν΄6Νάl<τΠC\sΝ5[Sέ€Ϋˆz#τνΙHz(·o_ξΉηƏΏU²ϊχοΟ7ί|S†ΏΡ0M“H$B4ύE<`«„uD8,κu=ϊ󦦦θϊžνZhΫ6 θ½vνΪΗMΣ<\B w_c†ΨJ“=›ΔΚ§­³Ι¨ΤV€₯Ν3ΏElXπ5 (Χtoh‚ΥaΡ X²5γλ 1œρB TDrJXΎ|Ή+#ι›.£{ν‰'žΰΒ /l•υ^½zρ—Ώό)smyχŸ|ςΙνΚπŸwdZμΙ'Ÿ€¬¬,g9N9ε”vexηοΎϋ.Η<W_}΅ώΠC}ηιDοήέ^ΊτMgz¦‘ΓόωπKβω}φΩοΌ… š\ωΎ ‘HΠΤΤDŸ>}~άς¨RͺXψΑAπΔοa―iz2΅¨δjΕlR„diXίυί@UαWt-ρYΨΩ¦Ίžd`Ά•Π*rcαφΣmš[`ΣX· Φn„ ΅P³Ά4BS θ›ϋρχ™+©««£ΌΌΌ]7•Ε€–ΝŽ?yςδΌid7Γ‡§ͺͺͺM9~?xπ`V|³Ίπ»ΏΓ€u4€#F0i$lΫΞΫ?ζ˜cΘε@“oΰ.‰ ”šiΫφ:T)Q]έύμ+―όφ…φΈ‹Α³ΟŠ εγ7mͺωΐΆνœ•ς]„RŠκκκͺ7~¬”Ϊΰ¬cαŸχ@§E= γo―6sΡρ‹ΡΌi)$Ξυ›–ΣNΌΪΧ;Q½&!pΏ>ϊΥGw0tŸΜΖ&%ƒα^ώ~ΊBdΕ!έxI ¦ ±846»ίάΰώni„Η }!R¦tΑ5WFλΑ―^½z±~ύϊTψΣO?Mqqq»χyαΗw‘P(oάlΒ>υΤSœwήy¨9€ΜκΦhπt8οWO€λάx㍌5*•ζI'”a΄Χ=ΉόςΛyμ±ΗˆΕbzAAΑwZ«‹‚‚‚ž·ά²ΦΞγXά ¦L̚ύο“N:ι–gžyΞτF=;½zυ*_·nέB₯T΅‘ΓΛΒ)‡¦΅*δQv=&ΉsΖž~ώߌυI«ΈώΑ²Vi¨Θ λ%$=oΝx‘ži2η6³΅&χ§›«―¬Ω½»ΆΞc«q�Ϊ‘Π£+¬žμϊάράύ˜ςΠ―~||ΊP€|ς9dχΫ½p8Bήxγ μδ‹–Ο™ΕCii)GqD»2ό²ζϟϐ!C°>]Ά]W(ˆλ0r<Μ_κ†?ρΔήΌyήFΕίΈάύός—Ώ”ρx\+=­©©iCK ΫΤΩ6Œ­Έα†–wΠA/%~σCέqκͺ«PUUΖά>}ϊμλl­Ώη6ΒΆmt]Ώχ9ͺΛΞZ[η|’ͺΥ§`Ξ‚κΖKυ[=φ(ί‹ �_UŒ?ηTœžwRΧ➠•&‹_ωΒRZ³-^Ώω]v|«ςœ{Φ)ΌΉΰΈŒFB$΅±'/γ}χΙκ=t"τžΔΓ/¦§|ύyP†Kr€Ή4'ώά%ω­—ύ wŒωWή΄ΆmΛ%ϋ\JΙ AƒPJ1}ϊτŒΆμ_GqG‘{OΘ|έH!S¦LAΠiΏ„€¨σžυ ΘO`L― (ˆjhšΖΰΑƒScΉς+„`ξάΉ�š”ς;ο3+�Ξ9uΠA;OˆR‰ψϊλΔ,ί0rδa|ψα‡r{}Š•R\Η ˜σ ιEΊOμ3mS„Ιξs+ŸΦ+<ΚOO^)-`J λο δΕσ₯»Υ2|ωOiΪ^“p˜Lυ¬”βΕ§ξ䜣Μώu:f:Ύ—`¨ͺλε©|9šΖϊy·»ΒUK“όΉ{άΌΎρ1<ώ άt12Θ ϋΡq B  σηΟg°Οg·-³6Χ9ΐƍyφΩgΩ{ο½34€”’}φΩ‡AƒεM§#2JJJ(5³ρRmΦ™ ΅ΧEC­ΓgΓβ0hΠ ,XΠΚ¬Ov+¦8Ž“ιYτ„0M“‘C£ΦψρrηΪάή{μ«`Mƒ%KoΌz³  λEΛ—―ΨΨ‘yΙύχί?ΌpαΒz ϊκƒpκΘ¬Ύ2­ΝγΆϊΩߞn?ٟ€kΖ ž}ξ%Ζ1wϋedυλQͺη„τK›"Ή›ξ”©3;`r«)΄VSg^ͺoDι…n9 ιΈ ŸLΉƒάϋφ=ΎY Οώ.ωh”k’οΧξΌ2Ώ€’8h<,^i`šξ'ΡrM―ε χε2Ώ½ψΩq²γuTΖτιΣ=z4[fA™ήΑΊς=?―κρž§HZAΒέ ²ςHwΰςψηŸ>O<ρ]t?ό°ώ³Ÿύl—υϏό―#Ίn¬ί°VΣ΄QΌ24Ηc¬~rνΨ\χ €²²Π+Χ]gΎΣsِό$r@)·―ψΜ3’iεJc|KK|²oΪo_`i$-³p½Ό|Κξ“ωUhκ!ϋ5£――Ρλ@kM^`sS•MΏOYφΫ,Γ―I¨²ΣE#άθ©6&ιl*σΎZȐς₯Ν2e₯΄wk’?')Y¦�±ξvjcΠs4Ί?ό*9σuανΝsχΈ€χΜKφ*τ0dθPζΝ›·μf9?©σϋγ·…|χxσΪΌ ώλμΜG·ςΙΘΎ'«%ψΒζž†Γα³LΣ|Ήνw O.,έ»ŸzοEr…ςš—¬χ0nΕ7,NJB€§Λ“+ΉΚ^Κ3₯™Ή»iC—τ9d αςwž*ΎωfλυI“tuΗn―6f©œρI9¦€œH ώΦ\ˆ4Ρ”/nFφP0₯4οrfž²Ž·Y†/,•ο’‘iΒ O0sΪ΄ŒBxI­γ5rΰšνΚ%€Rn&]r(ΒJρτδγ~αF½ν2χήHΘ%ωi-ηυo5 š’~ΞgπΕ_°Ο>ϋ$ΣW)βu”΄ΉϊηώψΩγ�‘QSSC$αΦ«ΰΊsΟ’έΊRξ±ΧyΘkP]€Lyχώ§ΫŸΏγj0Mσ₯H$r{«‚ξ@ΨŽΝ€ΨΫ|@ϊ‚"‚b‚bƒ’’Ε‘¨†ςi8…Υϋ_6Hέϊ·›RVΊpΤQ£¦ϋf1:΄ΰΆ‘Ž_#“5Ν@SώθJΑίώwά[fBΛ W‹Cϊ‘yψIŸggΩ{Έ©‘sοaVžΧ/φˆ"P©4ί}ύ-pΆS†J—K)Wc %3ˁ―Φu.ϊαšT₯ ΏLš]~βk(T²ΡI Aά)ηγ/ܐxςΓΔS>uΟ?9χ3xcj2_}Αν–εhš–=Ο˜ΛεΣξ‘8i³οΟΧΗΟ>?묳θΦ­ίΌ “.υΥ{Gκ ί«˜ύ³ž1d’`Β% ?…ΒΔD@υθΡc‡ΘI)yδ=Ώ8πΚύUuŸ"£ Ψ °Δ ¨4DQ‰Aa©AQ©Aa’πΡBέps)… ^žυ‚υά΄g4HύΕ_ύ:½\{+P�”βVFcΦ_.βg7&Ι(ega$hάβΎ`eFΙr £%Η§e}8%·ΥΉΜhΝ!Ή0S€…δ¬#ΏΨ2’χx•Ÿž’αEπΜK₯i¬™s Ιsu2Κ―§δ ŸͺςΦ——nΖ‘S”WΞλάίͺΚVΩL•―ΕJŸ―ϊ7ΤΞpύΛKKK}ρr/\ΙEφ|ΛσyΓyα―Ώώ:š¦QΏξeδ'ΠΏ’ ‘Ίς‚U&α³£§ž­ŸΉ�Ύ}^}Φ―_οD"‘σͺƒR2cΠ2gΦ0υ‡– ι»OE>’—–†(,qΓ J —θE.ΩCa·½ql… &όλζMŽt\’›¦Ι7߈mP(²‡ς<Β7ΰjmd³ωtΩ•‚;ο„žέ`Σ;™œΡΕw͟€J?hα3{SidΗ/žΟ5_έΥΨ–”4/OΈwD}οζ±Χ"©RJ֟†Q|X:-Ο€U0kξ<X{+}ΊϊςλΣ,M^„ϊ¦ς侈ξj3Ο|m2MΞ=Ξe¬ν³LΚ“ώ+q3myυλqρίψΚ& 2 κSXύnšζNGωW³e›θ~͞ξϋύιψ΅ϋ°aΓΠ4Ώής˜ς`²~TΪjκP]yΟΓ3η}Ηέ1_~ήΉWί§ ‡Ο_€D"ρe—.]φf+a;6ϋ]Σϋθco¬œVαpρήBΔ„ RδΩ%ΊKς’δ_a±αšςE:ΡBHNΈ@Γk€"ήβPR­{ΛaƒR»­|υΫgzžΣSvK*Ι­ι³[Ϊ$Ω_|ѝŽ[υz&ΌXAκ)€FO}š/eΆe3Zdήλυέ¨8 HΏx*yόχ'Ÿ%΄αΚ#mΛPΈωMΙ²\vε-ΠσNžx#”.¦ΘΰJΩΙa7Χ\Ώh +nη°ξΟ·n<|ynˆ.γ}¦BΖ!RΣh\vš„’δΤz(Ή{ν‘Γάσχfg5€ΎcMƒΈ“Ω.”.αε'0σΥΓΡ4 !—\rI†Ζnkξ;_˜RŠ PQQ‚ŠR©ΜE} /ώυ³έͺΊΚ–Ω*™ιˆ¬΄ό}οoh?Έθ,ΨΌyσ2Λ²²SLAJΙΈ»~TΨ‚>wψυ ϊ£n?H½s˜κή΅ς}+¬sμ;πΛιqήYΪΒ―–M’Έ Δ5Σ‹S&{R“D t"α¨N8βjuΝp3ΦάhΣdΦΏ•*c―^₯^vYΓh!p‰™tq7Tςύ‰δoF'' M€§ΣΪ0ŸZU‘Α„†ίέ�ΏߎœΘ={d>γΊΠλŽ”m¦€G~˜«ΞXŸWlΆ )`ΠxψιyΙ’$_ ǁ–ΨΌV„5k`γ·P…nέΚ9|δ ztq`Χiu” +άΎ;ι΄:Tθ^wϊlQ―°°©Ύ’¦{‰&›ρ7ηΐΙWΐ/~ GœžZΣ4ψΧ]ιϊΙ.£¦ΑΩcΫϏR υ€―ωΓξ*9χ~ή½{3zτhHyy9ΝΝΝΤΦΦ2mΪ4–.]J]]]ͺ8p_xαΠ-Μ­|/ΆιΎ<q34»_  †aόdΜ £^[ΊnΙME‘’kCF¨ΨΫ‘ΗK―ͺw!ή³ς‡§Aeu]hΊp ΡΠtW 9–ΒL8$Z$‰Ηύ‹9Δc6ρ˜C<ζ`%$J)Ίυ*”©lVUuϋεΟ~Άιή6d ΰ5VΩδmΕqςέη«P!ΰώSŸ†½ΛhML_ςށΏΟ”+K*׍ήΕ’‘ΜόΊ/«Ύz‘'3ΝΎ­‘‘Αΰσ`+WHζ…Ώ +„K4₯άΝ&V­‚ukaΝZˆ5ƒŽΖˆa:¬7GŒμΟ>ύ*¨κVΘβiw2bZyτι#ά2xσθο}χάόpπ~d<γxΖ1Z7Ω hκ\‘φ­OΦcκš—Ύt―…ύϊRΫ"Γ Ουg„gε«=ιDο Π`iC”I3{±€�ϟFΠΌ{¬νζΟvP “±³KсΒRƒpDK[4ΩΦ�ϋδ�� �IDATB2U4B)Σ<֐ ΜΈGlο/Iπf;#\)¨ξ[.†λL˜ΰ,Ψκi6‹΄φoUsΎp|Χς…γΎΠS¦ΐoƒQϋ₯㉬τrΆΩ²}²ς5δ9Ϋ!‘»νΚΠ‡ό‡β¬³rκ$TΑ΅cIuy„€Ϊ8t=*Kαα›άx—άι:„<wOΊ"Θ|ωΓœ>¦΅6σΟ*x2Rƒ‚ΎΌ€ͺ.λzF7Hew¦ X&―ιΒΣΛͺXί!”\ι”ξβψvΦσeδυ#lτΒh2–@6Ε‘±g}ݍ’R#U©­΅ΉH₯]RBTŠh‘ξšιQ)‰–$Ή›³‰žyŽ‚ύ ΣYSJi&KΣΆ±―nγΏϋ]Ϋσœη>L-qψθ―™ΑyΧύΡ‹Τ†˜ά= _@ΆfhWFΡ¨<žΓO»•SNΙ#t£’~>Ά5¦}c.„~=ΰχΧΊε“[Ά�–Σϊρœu\—œάυ@Ž{r(Ɯν½b*ΞVΚπO·BλW@h€X΅ϋ €@Y6—­ͺ€Q ίθΊΘ”—AJ74c<##žΰ²ξ-ΧՍ€L ΩbςhmS…a-9Ψθήβ Π“Zέ'špTGiΔ›mW›G4Œλšm[³E’πiφ ς'My₯ η^…™u|Ι%¨Ύ}Ι ˆ“vrΙϋ€hΙζC2ަ»Zύ§gΐe§δΧΔήƒυ·ΜΩα^\ο Γτς%œMφ\i΅+£Χέ Mιy歜pB;εέπ4Ί|³^°wΕΚΝ°Χ `θπΤ]ny.ΈΝ]Άϊ7CEiλ2Eα”#²κ#»^Θ r½6ΉΜg²ΣNήΤγ$ψΆΆceœωΏΓ³΄¦ «αpί^ ΄HεHWγ6Ηy£!ΜsNE¦Ι qVΪ/™vλ{Όx’Υ=·”ΤΡ7κF¦j1ω0ζy½›&AΧ ›MΒw4]Σ݊vε’=ξ`Ζ}ύτ–$ιc–ιφΡ{τ/Jϋ·K)9f΄.ϋV)-chΨϋυŽ5ί1YρΌBδT•8χςβΐ‘GΒ=†βBψρΡ™IϊΕ¦ˆλ«|Έοye,FΙx™| z#ͺ*GZmΚPB™ΩoK¦Ώ|GŸ{ ΗΣΊ|» © 2«zοαΏiςΙμ7pζΜ$4Ζέά�OL‚½Wώͺ*ΰOΏφsΛ‹ƒηωΖ/όυy½οe7Ύ©4³dlx+χσ•pό₯P[Ÿ£π.ψη¨ ­λ₯ΫBεΔPΆ†’ž �3K*)F†ζΡϸζO7KF.‹ΐόKϊDZQΤνΠ7'ΆdL’‰Χ «Sρ·XH©ˆ5Ω!Ν΅F�ε€mKlSb&ά?ΛtlKbΫF.* Ράϋ&CYvοώδg?3‡η¨ΆφαMεk²ύΞ₯Ωs… Έγ^ΊΜύ'™•žμV ϋ²ΚjsΕWδάc­C2ŠΖ JΝŒΡ9αΗ·pδ‘mδ{;‘”λ2ΌjΌσt/†;…ΉκΜ€i―M%ΰΕ''’:œ•άΪνω{άίύΪ-ςψγαμci•ΒI£hΉκŽ<aΩαE– iΐOo‚gήH‡EK Χ€BJPυ—Ž$—„[,κβ β6–\~†βΌ“ ‰‘Μ¨HύΊ&:σΏΥ9?0ψŠθ;]’½*AυBν£P½£zρΎ-½C"Φ„¦αΠΠΠΤ`s§΅–°�l‡KρΗςώιΥΎ]Ռ’°ωΫΊ!Π47J*€£άοΪ™+Ꮂ'β–·-—θέϋΦ‹ΊeT―aoΉΕΎ½CS:lƒqώΰΥHςΆkΒϋQ ;,_‹_‡έ[‹J%Ω–9ž}έ―=όρ²μΟV1ŸŒž“H―2HΓΦuΞΌδVFŽμp‰3ΰυ9C!˜=¦O‡³Ž†―€}Ίƒp²4j95:]r"ͺψˆV…ώΛΓΰ²3šΈχiΈα^7τεzΜy}χχΫ/w―{"ξxL.ΩuΥV]’Ύ–qK{εhG ^œ ηώΌύ:Φ„λνW捑呑‘%ΙmοΏΎ;vlϋ‚rΐ–΄§ΏΉ[ϋΌξ½s5Νψ»‘…Β)£@ΐW³λΠ4¨ύ6ζY@Κuu΅m…c₯΅Ή•Ψ–[a]{Fijiώό³ί/=$ƒ£F~ψ‰'ΞόΈ-7Σ xήlω4wiΉμΉυlάnΜΊ^’.πo~γn‘Όd2 ¨JVz²ζ½γ”FΞ"dv?2ϋΙn2‚φd( zMHΚ𭳂OήΉ!ΐO&Α!‡δF/o±ΌχlΪPΒυΧΝΕ?N±ξ‰BΤ/½²B2ϊΎιD|/§Κ,‹πΧy―ί€$‘Y/_z;zΊ—κ,¨>Κν―λΜ{&<�ΟΏν^?ϋ8xα[6ε²δ²Κ—―άΫTŽ­‘tθ~Œ»ž!`Ϊ“0j@dψ»zžj ΊΊzπ† Ύj-uϋ‘”β†ΉGŽ+ΠKžB0ηύM jΦΕSΧ₯i+Χ„·Ά)SeξR!aZζμ{ΎŠθΊήΪ`š0ΥFIG4\B·΅¬§υs™π:­Ώ}αχ}/₯ώτ'wοτ_\χύœά-nŽ2_/<»?ίΚ’T€ϊœ9e*9&ugMC#λζύ7CχIˈ)ΈψχPVoΌύ«ΰ·Ώ„ΡC„(@υΈ‘ύH<2j‚ζε·QΞύRgδ?«!MΟ\„=o₯K’2žϊΧsόtΜ—­¦β„©ωxΌ2Ξ8"— 2»H9ςθ―Ώm+ΗΞ—1c)ρψχCπΓ‘°©Ίq―UTTt―««ΫΨZϊΞΓ sΌχ³ΙMΏΤ4w f]<eΎKίrνh‘λΧk^΅πΑύRες'fš&Χ^qͺ«ΥŽέΗ―ωσ‘»xδν›ββ½ωκ«―B‘‘Hδ8Σ4ίXτ:μΧέ§εΙρΠ“yH‘Wψ΄΅οεΙMφηΫ»ž%cSΡuΌςά œ9z]‹·QFΕ8(Θ½&B+Φ£Ώx$£½γ Λ%»ΰΎλ’τDTѨ֍I2κԏg1¦λƒx[-_ύdiΔVϊ;*γ­Oαδ«ΰŸ„ „ek�˜©”ϊAgοˆ<θέ{Wu[ IkE*€ε(€T8ΆdρΪεE-/š1}Ήniiα”S ՘1YΝάφΐ#Ήλί(ε:Ξ<ώΈΨΨΨX9΄¦¦fC[lΫ6αpψZ)εύ�OΖ•£%Οnέύ/‡_«g΅~G θήύ;D€vΝ•–ζ}t;CχΚH2·άμtρ…χš„R]¦Ε£>Κε?\ΣΚΒΩ*Πz7—imW9v’ŒΡWΐτδFBBˆoΎϊκ>ψΰwn‡WΗqX΄φ+ν‡wΧ_IδςΏ_α(‡ž{½y«Ίιέ;²π²ΛƒvHnlZ―jΛ―βŸxBl^·.rH,Φ²j[[NΫΆ‰F£ϋ:Žσ₯R*Ϊ½ν_vσv΄I>Ψ\s΄)ΣάžΤΘΩήrΩ/YχlŒ’ηΝ©>Ύ['ξϊ3₯ f½s‡ϋEφη'ΫJHY0 „κuk2_™2 … αλΫ(/Ψώ:ΛQWYŠω;%c³ ]Ž�MӚjkkΛ***Ύsδή΄’‘e•Ό«TbΠ±PςάΣΨΟ?/šV¬(>€±±ρλδ Ξφ˜GΙν¦ΏΖ9`C­’°°π§---O�Z4o> £hML/o<Ν–ύ%α‹ηχfΚvΉΜn0ςΚ¨8+©±„/\0σΣΟ9¬Χ‹ΆŽ—SδȏH§ιε#eQ” „o'†ΤRQΎ~;cΩNΙ€μ§·χι0|<3)wΪΫ+Γ_7ΉΨΆd΄�E#άc]ΧΛΗi¨¨¨`wC.F=q"οwx佃Π4xυUμ/Ύ1MsFgυu€”TUUUΧΥΥ½γ8΁�{υ„ώχΛ‘©;€”6ρ™ν*Ox6”Β χ\•β©§_dό˜/γ›ώt•―aρΛΘ—Oϋυtχ«OΕV.+l!Ψ΄ΰvz”ο�ψκ,«q»μwπΧ\ϊM‚°w° _ν–CΑ;ŸΓ‰—»]8H$Ύ1ωέ­^Ώώύϋ_Ό"‚ΪŽ&,ΰw°ηΜ)<Ή‘‘αέοΚ‡rΑΆmzφμYU__°išgͺδζqcFΐγ“ WΪ}©’§9―·j0|JθΜΩt‹>{™ŸœdΊ όχε0STw/[>¦<Ν†w¬!zMH&•tΈ‚žΈƒsqvŒ, š§u&τ¦}{ΐ’Χ œ΅ˆf{eδ,0eœp™»4Wρ¬”r|gν*΄*ερΗˁΎ§’ί‘λxBfΜΐž>½π'MΟoοžνίΨΆ­ν³Ο>₯555“š››/!9œhθ0vLϊŒ„;α‡Oνψϋη/$δ61³3‘Gέeh6²NόPϊC(‰‚Ώ=φW.<iFΆι²½2²―u Ά§_ oNwƒ»”»ΣY‡ αl‡ ε¦}χίΰΞ‡ά}„hšve"‘ψσwYιμ,΄ͺ.Σ4΅3ό:#GΆ?1gLžl\nYΦ_φ”–Ρƒγ8466j•••g†qeY£ό»ͺ„C0ξdΈθ4χ+¬ΊHΎΌδ7γSΘΆό$!GWΐO†δΉςδ$5£ΏŸ»SdψŽ;"#UUaX°&O…GŸ‚―ΧδοφςwΉ¬R°Ή‘Œ9δtƒ*d$ωο›nΊιΆΫoΏ}·ϋHθΆ U Δγq:¨dυyηY½ύαJΑ’%πβ‹α_Ηb-ΏίΣ?±ά(₯hnnΦ***–––ž][[ϋ#!ΔΑή5BΈ«Β�£…ΐΘ‘ΠΏGς%N$};ϋdπ'›”νfŒT~σΨΝLλώp>ξ<.a€™€i ΰσ/aΚ'πεBχ;pYfŠLΖΒαπ³RΚ'~ύλ_ΟΌνΆΫβ†aΠ–Ά5MMΣπή=o?χ�ν#ηλ‰πψ7rρΚ•πδ“ΪoMΣΉ%hw.‰‘PΣ4 ‡ΓΪ„ ’Ώύνo{‡ΓΞΗW\A₯»DσiZξσμ^SΎG—"²O­Α:o6ε³Ο„œ2ΕψGEEυ/V­ZΥΌ;œO w§Έ‚ΦrΧ’n3½{W?xα…ζΥUU[©₯;±Όπ‚Ά±μςιΣ§Ώ6`ΐ@ΪκΨψŽΏJ»7’‹_~zκ©βΙαΓ·BuΆ™ζŽo tζΝƒW^ў:tΨE³f͎νƒ­{’οB$Ώ>pΘ5χœs(lk>₯ά?Γ�)‘+W mρb%W­2Φ¬]kOξΧ―ί+‡:lήσΟΏΈΞ²,ΚʊŸΈρFσόνρπξ}ζaYSx^}}ΓσΑXΜθ;RJϊυλ[κ8λζ^~Ήά[¨―G.]*΄―Ώ5±XΙη«VΥΏΎΧ^{½6zτ‘kόοq€­Ρ–UUϊ«―vφݚ|yZιRxν5ύν^½φ»θ‹/ΎΨ˜έ»/’οDΨΆέζ(ςΆbτθΡZ}ύΤΔ™gb΄g¦+εΞ#ϋί4-ZώωΔ‰qΓ Ώ’¦ή³ύ{„ž={–~ψΊϊ!Cr_–-Όϊͺ>₯OŸA|ρΕΌuA_:�D^@qΰΟΎ¬τ>„¨ά²W_rΑ‚θυΏψΕ΅Lšτ›`Δ;@€ο’59aκΚ+Q••ϊg•••ύMΣlοΦ�Z!Πθv(”΄Pθ€ΐ‘B ¬Œο’Ψf(Η†š5ΡύΐωtΨ­JοzZ—¨l\Žj^+Q‘E2ήπvττuΧ mΟ[Lς]A0R`› —ž^Θ’Γ—©ϊχR;Ό+½ψΡύ‚BΡε ‘iθE†Bˆtκ’w.’Ψj¨‡\&0š1ΚχzQ\“] EEΈ+ͺe5X)―ŸΘ ŸύΦύŸ lx΄’Ήα‘’›_9)xw‚J°UP_Ό_υ(ΕGϋό�‘…PJΪ8 Tσbχ»ZJ‘μΔt ϋdψ� ύ…& эΡφšιVΓcϋοαNFPΑ: %-0z\,JO�ΘBD/2‘ŒalPv$6¦φ’#άε<MΛrΞ±τꔏ―RšS³β…]\”=ΡtJiθe₯θe`o�”ˆ ή. fνWΚ¬AΩ1W›+%#cήZΥ*½π Ό†@†:S9‰VΡμ8DΠqhεR!P2–άKhjՍξŽύJ{‡Δ–«­₯cξΪ*a¨ƒ]eξju׍Wήŝˆ rtΚAΉί$D ά}Φ•BΥΎω �‘^_‡§­•cΙ6Ϋ•cƒ0zz¦»λ€p7… °³ΜyΨH‘μ TiΡδ>t Ÿ* ‘σμΩ'₯ΧΨ*ζd'{ah±Bi~Σ]ΩRͺ_’ °γhτ�†ΠB`ož©” zΉoG[ό䠟’l”Y+URS+Ϋj΅Υ£¬_ύŒHΆ)­žΠfkFt—fΟB@τ�[-ϊ¬oz\ΕμiοΠ ¬ΖΟQξ·”…Π3,F§ώk0B§ ΒgΊ+iήΫYΕΩS=ΐVAυlŠˆ}*•^ "δλgkšσα^₯¬ϊ‰H;ΉSd€8uŸRΔ^ώJŠά¨Τ—TBNΉσJ΄g z€­‚¦ι’ΨœΙXί‚(Jχ³(½δ>ν9ΗΚ‰ χξkώkτ‘‡NϘVC‘βΕγŸΛώF€Œ`0.ΐΦ£μ”3hžν( Ÿιžό³c΅J9^ί½―’ΝOv…½‡ χΗoQ­ιαN.Πξ@£ΨztΏ^²τJ¬Νώφ€OjΪ )=έύ}aD>J™ψžιžΌGίλ°‰]œ=Α2Υ�Ϋ₯rξΠ…Κ ΒvP9ώRαVvΈDΩNLΝ(Ώ‘ώˆ@£ο|=ΐ6A>lήώH«ΙoΎ+Ÿ†χkn―Ÿ½η1Ιw ’Ψ.ˆŠ“ΚPΆT&<Ηξ{zJ ₯P jLΩ…³‚AΈ]„€θΆ ϊΐίKΡνμ±έώyΦΰ\֟R ¬Π·΅LνμΌοIϊθvœš©ΨŸ]X«€QιφΝ%ΆρŽ•ε L³A9α>eΧΤ6tv~χ4D°Γ ₯,Ώ=d₯0›Λύr²₯J8§_V;9ΨgΎsΤz€)₯T/σIΉ]<0eͺ[λχβλΛ>Έ¦τŠΊ€δ|ί!₯ŒnJ\±"‘PλMS­±LUσpƒZ6b™ϊ2τeBZΑκ΄ΞDΠΔΨn(₯ˆ:!ο B )hΈ$BxX­D /Έ Ό³σΉ'# z€M‘ͺzύ%ΦUσ}υ1$5χU8±kυοNΜߏ€θΆJ©hΓS 'Υ%ΣӟŒ@±¦±α‘.|ςqQ–ΑϋΦI*>ΐvΑ3Ϋ_&&h%BBΙG¦»¦ AWCGί+¬ύολk~Ϊ©™έƒ=ΐφBSRU‡ϊ…JE(iΆ;в, !₯ΊNWΓ ωΠπc ε:Ρl”RΡ%‰Δ5z‘ ξnBAΕ4 a)W«λ:₯Q#όΖδ Α \' z€m†t7n-w—˜£"€»ΨE(‘ά3NQςf α[P 4Ωϋσd§fzE@τ�Ϋ#‘= uM“έ5Trgg…B%Φ*‹ΨτζC›ι~ςZΊON…~’ vvήε\`l3€”…Kk㏗? DQς‘‰΄ζΧ&ΝӚ‰Νan2q,ΫΆq,ӈ5Ϊ<zzgηOB Ρlά !E©,ηιsΆΖ^e{?FσΤfΜε&φ§ΩA%J*„Τ-ν@«οJD°­Πμ vua\žY¨”"bήωabŸΆ`o²ράχ5y£VΎφΎ΅Α~…»Ρl”RαΊΩ|eω{ άavΤ9-›χηT²ψχ₯‘2οKώ[zΗ_uJΖχPD°ΥπœdTB]¬hλ”R4KΙFΫ¦ΙqΐΪ y{SoίYŠ0@‹iƒ9υ]‡€θΆšSλT†φ EEX^jc'›‡zΗΑέΥ=Ήγ³T,Ώͺ”ΧΧτγe}ωφ””0¦ν=­ͺs‹±η z€­†R*\{Oν•F•([}¨‘ΊF›ΈRH₯[Η₯ώv‘ΰγΗͺyqΝΎ<ϋν�f^Uρ/;˜jΫ%ˆ`«!…QWh₯(υ’Δ φέos-rΞΪ&—―*@ ΆbΩ…]Ž&xw ‚J°URjV₯‰ίUА«Ν­‰/8M’ƒŽ­eθ™΅HΝΏ!lZΓϋ‘”n˜΅ς˜]_Š=Ρl„Ζς±+ΓB?:Šl”$ΎL`­ΆPŽKε’ιc+Χ±ίΝ[p ‘&»Gx•–«ιΛ εv:ΟΈ�[)eι’ζΔΪΚ¨Q,€†&qτz ά₯έΑA&98˜έsο¬`ε9Ε8 …XΚύύαj-4ξ=ƒ=ήw"’θ0’ZΉη*ΛZ[¬iXJ±ΑΆY½Ωd@Ÿu άΥk~’gώJ‰*X=6ΚΧg–²ζ°bMφ„g‡μ}gg—owF@τ�†RΚ¨ω}νωΦu₯‡… IJVš&›‡ΈRo’Aε!ΉΣͺπŽmaΗNŽŸ\€E‚žδΞBP³: ₯TΤ\Έ₯θ8ŽR4II³”HεφΈg/οΞ†Λ RŽ1ΩΏΩaή±P’p፠ƒwq'"¨ά�‚”(6zϋj† τ|ŒΗΑτΦ”»αΔί•ςα†Θ2χΎ\$χΓ [ϊΰΫΕΨc=@G‘5ΎΪ80Τ7 ¬/Tρ-ŽΘtŒ@W|°΄'Ψ‘όXj.MξΥ,ν’`EΫΞC@τ�‚"άψBγmz§ήΑœoΒR‹ͺΦ₯ζΜΑ7g. ioξΛ;σϋΠ84 yLx�‘„φJ·W—؝„€θ:₯T±V ށ΅ΒΒ\l’β •€CΚΦS4Ϋς‘\d8ɘ]5>x³7/}»/οLνΗΖγ Π…D%‡‚=-ο4:κΔ"ξΦFέ΄ ₯”Φ²ΖXWͺΏ§ιΥ&š^kB6€Χšƒ 1@γγ™]±₯tηΙ½_₯RsζfκšΒ4@ΫhS1Ώ‰κ)υτœΊ…σž,4#Π?;Ρ΄ ₯Tψ›Υ±ϋŠͺCW[kμ:ΧAΖɌηM™­ύ(_ώΎ<Mxθ*ν(c*…­¦Ί”TΜn:ώΙρ½Ϋ Εά­=@»R–.kLΤ–Fm³ΎΡ’Ίz»:Ε/kž|γΙafΉ+¦–η —όΙp{‹Ήfςϋφ1­ΎCΤf€6‘”‡ΒhfXJΡ(%VΎλ…*Ξί7ΰΦεN賂S{-c―ΗΆ€£’ύχ¬%¬>xYκ¨Ÿ€θΪƒΆnql΄† EΚΤzs€E«{Πpz€MΗ�)ƒo­αŒήK9·η"N΅„}ŸΩŒΡ$qBξόœ"Υœως—?ή΅Eάύ΄Ϊ„R*Όζά5Ÿθ?/ςνHƒ:Η!‘μO{&ΈΎΘζ lΒΞλγήΪύ5υ+$›–2ΑΊƒ X1Ά˜e β/ώθ έΠ;»ψ» ’h‘ελ/X_Gjz 6ύΊΨLƒΤ`›©–€}.ΫLΕ Νν’=;<WC0^ŽB ^Ο…ΐtJ)_j¬0η›„PO·γ7’’ί@WΙc�ŠE`κϊžΔχv_«|.―ΉLύμσύγŠ]ž=Ρ΄­ζφšΛ­5ζrLΟ²Ψ«ϋ”™½'\rP-$˜1³'ο­μClς»½…/".ώμ»γ=@^(GaΧΫe.5‘[|bhύΊ­₯ό©˜;Fλ e`Ϊϋ½y}Γή¬Έ²ΜύΌͺ—nV·ιJOωρ”θ(ηž€  /-γkέL”―”ι†ešΫU Ÿ.¨Β,pηΚM|sεsζ c#―YE·w±eξ΅ιώίf­ω7WΚ+oΫυ%ίύ=@^|±Ύιh»TΌoΩPVΆpwY―BΡp˜Ξ§―wΑΞαγ9Ζx^pΆ#i‰ z½Ά…Ω@Εg()±”DωˆnkΆyAβ‚ˆ Fί·ΡδŜΊ¦Ή2,v]V‘ͺ|8­_oϋ(‡-GΜzΎ Kδwυ\`ΣΧ\k % Ά£ΥXhu¦ϋΦXςθu‡7νςΒοfϊθrBJ₯i1$’XΫΠΩ΅u\HzΙτΗT―d쁫(ώ2‘Χ.;�#‘Π,EΌT§Ύo„†žf +Ό{'oC ΡδΔ‚uMΕVΉh΄dΦbέ.¬₯θεx*_£·ž3wΨ4&Œϋ»ΣΤMo­εsωΌϋδ%”²ηο΅o( tφ z€œ˜―}y±½iοΗΝHV;y,–Ϊ Ή₯@fύΛο,γΠR-˜³Jζ_Ψ…„ž&½ν7ηI‡; φŸVWςΒ₯#σ};=@+HS²°pαrΝύκϊaΛkΖ’R\Έ}Ο­₯θ½xϋΉvŽξ°₯_ˆΗ–°lLφR_a`ιΰ(ΠΦ·<²πΘƒ~ΦΩυς}F@τ�­ -©- /²„š’Ά¦V(ΣδN‘^Jd£δƒΧΓ–­πqoσZϊ‰ƒ₯ΩζερΛ#z8}ίVŸ�­πυΰ―‹…ξ»!]*WΓ&ΩzH�!pJ4>^Ϊ“™sz ‹Z»΅ζsyυ‡e^σo$ šΤΒέϊQxΗ”nΟD@τ�­`­±&f†ͺχ^GΡΝ­`?d΅�� �IDATΎŸ–ϊθ£σΑς~ΌΏΈ/‰^"‹Ίmο›οšwόωßi'uA@τ6PRRrm$™tϊι§WY–ΥΩΩΩ%¦D$Δ%ŠΦ*―©£Ο±›PΙ-žIN“e’^a— ή¬?―ΧμΓςkΚΡhν³ή-ο?֚΄ΛΣi7@Η½ 466>πμ³ΟNxο½Χο?ϋμ°³ώΤά7|ψπjΣ41M³³³ΈΓ‘4p(ˆ”œ8ς™Νeλ(œm¦Νx‘κρ^Ψ0ΦnΌ΄v/½+RκξώJΗΜϋŒ}ί•¦}pεΑϋΊγ:₯……Ρ{Ξ8#ρ8�mΓψθ#½aρbύŸGuΤ]χίΐΊAƒφGΣΎίοβΌn:XR87TΉ‘ty2ŽI†Θξ‚YσΊaιΙ=αrμϊκχ„³q§ζT|ΪΔΰ‡ΧΣλν͘2<Ό?,‘%ψ₯όε/:‘ZΎχˆΎ•RRRRτŸGέrˆhJCm-rϊtbί|SψbΧ='3ϊλGω3†atv–· sW7Ύ‘uΡO’1E΄ΫJR›―'αχuχešΜ~« Λΐύ$r’·Ϊς9ylKEBs ½Ζ’hmŒςωM„kLΒM Z tbέB¬RΚ¦>…ςΛ‘ϋιΖχΌ1ν DίFH)ιΦ­λιƒΥ=wΒ *,₯kΑ*š0}Ί[²$τjAAε]ώσŸΏ:ωδSδwYγKGρEKL‰dάTP}’9w|…ΚΠΎf7ΕΜ—»SΏ―њθ~mOξ=ί³}ΰe†,w₯λ/׊’ΛΖξΫΉ5±ϋ! ϊvΒqϊτι3¬Ό|ύϋγΖ©R₯2Ί¬xηρ8rϊtμeΛŠή•²hβΈqγgίwί}ί)/₯βΛ– Rδ+=vΖ,3§)Ÿk+(…dυOŠψόΞΔ‹–’™sο΄±ν³―QΘΒKόiZ™?zhΰ<³•ˆΎƒ`Ϋ6Υ=zΘΟ.ΊΘι©i™„χΰ_J˜6MΘ… £Sš›υ»>ώxΖΤ8°S5ώη‹λΟ€Oθ%T’θ)R*΄iqΊpSͺ—.y^όΗJΨ¬;±9ΏξFΝ Ž₯άuλI·ΧŒ ‹πι―΄ΊŸxB`*Ε’„‘«rδEP[;J)ϊτιS―ψς˝Βαά„OΗO_Μ _~‹EξΎκͺ+'ζ7w …vYή„ζhoάk΄ŠœύjS‡~ΓΎ%ΌΔI”·7€ζΰ £³‘|Ι|–‰―˜?,NMw‡P—.Dϋυ£τ°Γ(8πΐ΄ιžΤθξ‡žπ–Ύ! ΏϋύŠΘY—wΚΓq�ν¬³Ξ oάΈqΠΜ™3‹u]7***šŽ<ςΘ5/½τ)%ΊΎηxΪDί‰8τΠCΒK—Ξ{λK£KKΫ&|6€„9s„όδ“πΜΊ:yί—_Ξ{qΰΐARμ$M&Ι"}‘€ΉΉV$«μ3΅Εb‹ύ°©Υ.1ώ_“ILb SZΙςΚΰ-WI Pͺ`|ΥΕ )‰Σ’@Δ,"5/½…ΒA’ˆ$~sS⦌glΫ&ž’”ΊEJyx2=Ν//K¦B¬*))Ήoƌ;pΰ@Ή+Υ]οξΘΠn€Ο>›k648c<πQύcνΪTW³]h ΄«JŒΊωfλΉ'Ÿάί9ηαtοš[TTtα܏eY;μωYΛ-M $Β•+a•Σzyς/1Πΰ“šj–ώ£’L7˜Ε,F3š±Œε}ρ>|0Ο?< 8Žƒ”ΗqRΗRJlΫfαΒ…\sΝ54Ϊ[xtν}ό|ρOxpΥ]Φ€ƒ†ν—dr³΄έ{GU¨iΪ\Γ0”mΫ―K)G{μ±Ϊ3Ο<£­X±Ηq°mΛ²p‡ΪΪZή{ο=.½τRMJΩΏΎΎώώΑƒ;‘H€ͺͺj˜”»η†”FίIˆΗέυΪJ) Γ@ΧuΦ­[«ν΅Χ^“Ξ>ΫΎyύ·-]ρbΑΤ©ΖW7:χtАΏΝ™3Ηvg›4ΣBώX‘RŸ-@μΏ+hΊ²8c΅ZΡς’7cDΞ›Ε8Ζ!‘”••ρή{ο1lΨ°”ΆnK‹ϋγ(₯°,‹;ξΈƒίύξw(₯Δ ώ“ΔΖφ¬ωXρcE‹›/VJυBpύυΧ3qβD ReΚ'ß₯O=υ—^z©η�e¨――Ÿχ](έ^μ1DOOΠuΓ0€eY,^ΌP3MΣΈοΎΡ>ψΰCm͚5`�šBλίΏ_yIIIy$Τ4­rΦ¬O 5βββŠ²²’ΒϊϊΊBΛJT AΉ¦Q)εΡ¨f £¨H jαp˜°m[FAF4ŠQP ιΡͺͺΆΏ\ρ•‚―ΏFNͺ―©­ έ§λ‘ΏΦΥΥ5(₯:ΤϚ―ZXƒΌyς”WZO΅ {b“9*ξ  9ΐ„ΓgΓ₯”——³dΙΊvνΊUχΰλ]»ϋξ»Ήε–[�ψ%Ώ€½H^γ5¦iΣxα…8γŒ3ς¦Ϋήο7ί|Γ!‡Bcc#BˆUΥΥΥϋ¬_ΏήήΖGσΒnOτh4z±eYχwœ*οΥKi‘D"HMSZ(”ξ?η)χ~=RεCg{yV|πΆqεJηΎξέ{όuυκΥ5J©l― 4ν+ζ'@dtΞ1ŠURwNλ—ΤζMόgώ(₯xυΥW9υΤSΫ$vφyΎΈΩΏΆm3`ΐ�V\Ι`sabrCβ ΓΘθƒo« =οΌσ'žx"�έΊu;dΣ¦MŸoσωŽ`·':ΈΞ-‹-~ψΓ“\Ώ~Υ}cΗrτπαJΫ]=Žι:¬^|}aYϊ£”<lšζ:@ϋυ™“ͺ~ϊΧλΧ†*W΄Ϊα5†bρμ*šϋλ¬]Όˆ_ύΰP__ŸΣ Ι;ϊ›}ί½χήΛ 7ά@άȍ\Σt ‘P(ƒμΫ+Γƒ”’>}ϊ°~ύz€ €nKύW°G=Žγ°lΩRmθΠCκή=qΣqΗ©žύϊ)ΝΆ;_#ο (υΩ;ο0+ͺ³ΞΜ­ΫwYX€7AzSECΔ‚έΨ[{Fέhτ3ΡD£FSŒ-%&‚Ψ, M€Χ…]Άά6sΎ?ΞΜά3sο6@E³οσά;3§½§½εΌ§A8 +Vΐλ―“κΨaβ¬ώzΟΈN}zb”.C$‚λΪρ-{έίΘψΖρtνΪ•+VdΓ€§ξήV·¦ς­·ήbΒ„ ”PΜΓ―ΎΓΔέ{‹Ε0M³YΙήz9&L˜ΐ[o½…išg&“ΙΏ|WΗνέΊeH§ΣΖΨ±czΝ™σργΖqόΎϋJ#ς?t́mC(kΧΒ;ο› ϋψ~bAUΎ΅ν }ƒ¨¨¨`γƍ9c^š£7―)pΓΎχή{Œ;–ςCψτε”••F½ E;‡ώ}ΐπςΛ/ό�ςΜ~ ΠΙdψςΛ%ΖθΡ{SPP{Σώϋ‹>ƒI#ώnH{)ΥΟ4Υ “†šZΨ°κΆΒƍ°~½Z_SϋcϊυλCχAƒθXΩ‰N]»P4§ˆΒc7ωVΒ f0–PΣcA‚Κζ‘ιρ°λŸOš6EŒωp<τΠCœvΪiόφ·ΏετΣO§ΈΈ˜p8ΌCqθR~Χ]weΙ’%τοί?ΌpαΒξ;ΠuΏ]Θd2 4°ΛβΕ‹/:”K>Xͺ]k_α»Δ*„ϊ…BŠhSIΨZ§$oΝΨT λΦAizVA‡0 μΦ v©€ΚJΨ₯"!°%€₯N₯ac ,[Σ›’>ΝZ…Π6’@吕ΛU‡?σxΧΨ΄iεεε@“‹Qš%4ΫΆ}iF‹γη €}φΩ‡wί}—εΛ—Σ‘Cb±Bˆ­ξ­Ε‘‡q§I₯” Λ²βί΅Uuν„ήH§ΣΜ™3ǘ4iήαpέ&ˆQ#GJΓ]cαφές­Ώ†ϊΆ,¨­…κM°~46@υF›Π―+t*…ύ`pθΩΚJ ¬ L΅kTΨψo8Άqη.C½U₯G{Zaεψt1 ά«kCε—ά 'rQ†’=²gf/»ξ:½φڜΊiJr«²+χ·ήz‹“O>™•+Wz~†apΨa‡ρψ㏉DšΤςα°m›P(DUU_|ρ………†α…illdκΤ©<ωδ“lήΌ™X,Ζ¨Q£Έηž{8p`«pθεψκ«―θέ»7‘Pθ²L&s{‹f'‚vBίH§ΣLœΈ_Ω»οΎ{VϞφMεε„6n„-[ V8cA‡RΨo œzŒ U…€νPΝVδ1—0ΑGΔ€ΈΡά\"υ}kD/Θ~Ϋlm€/WÜωπωg•ό΄ο\2Χ—#Eξ% ))9¦[7R θGj΅dΉvέκλλιΤ© Νο.=σΜ3ΉοΎϋrβ7‡γ7ή`βΔ‰ΜŸ?Ÿ~ύϊ …°m›#FπΙ'Ÿ4‰+‰°pαBzτθΡͺ)@P?~όxή~ϋmlΫ;σ–γ ΄zAJΙ]wݺ馛φ[·nέM†aŒ²m;ŠΈ:w€c„sŽƒΎέ δŽζ\‚Σιΐ­ύ|nyά₯ΤΌƒα‚-™!8±`k=,^ ³?ƒΉ ‘Γ‚Γ9eλ‘\Н”π―€[Ώr%'Δ‹/ΎΘψΓfj'ͺ««ιΠ‘C«Γ2„yσζ΅Ιx‹Ε(,,dύϊυX–EAA­]ΚϊΤSOqΤQG΅—«E˜¦y»eY—΅*βN�ν„ή °,ΛθΨ±γn‰D⦆††Γg`μΈτt8β`4fΗՐ₯?ι|₯nVίVNέ»R]χvUο`ό&βΈιιΈέh–u °t•’θsΑŠu°’_pΐκΣh˜Ρ™ΔήaOuρθΡ¬ZΌΨ#žζV‘©ΌdΥίp8μξ&k5L:•[o½΅Υ8¦OŸΞ!‡B2™$‹εh-ΑŠ+θΦ­[³8t·I“&ρΪk―ΩιtΪόL·}7rω C:fλΦ­F=Ž―««»Λ4Ν P„3f0\qΎΠ rIΐΘ/œ…φ”Θ>βΥΌ€CΨ.Έλ“μ:“PΈ‡[ϐfΰ3 ˆE‘€ʊ‘¦^κs+“&ŸBΌ»ΙΊO»`‚U‹sΩe—ε§ΦŸAχK/½΄I"οΡ£Ώύο‰hσ˜BjkkΉπΒ Ήι¦›|sγΝα>πΐBPYYΩ*"?ώψγ9ν΄Σ0M)%Ÿ}φ]»vmUω„<φΨcTUU]»vέψ E„;ˆβbσ₯]wzΒμΩs6~Χ,‰;‰‘H„X,vN:ώ”²� dΒ₯?…«~E¦ί.5)”ΊžU>ŸZέψ$² ΈΠZ¨“[B"Άΐ’0K%έΧoV*ύΐ΅Gpκ7#€OYΑžŸL:nΣi8•:Ÿ ύΗ?ώ‘^½z59Ο-₯€[·n >ΌUx� ΐ’E‹š ;fΜ»ξΊΌΜ`βΔ‰Ύ 1-α3M“x<ώaCCΓθ#ν`\|±5ιπΓ?ήπΓ†¬H$ςΫΆΏ—Η7–e‹ΕŒΗγk ЩTκή‚˜,xΰf°ηBκ=ΈεΜ,‘»]Δ5”Ή}Ζ5‚ έO{Άψ“š…^Ο ΞHMy°οκFyP ΘSο…b`E1θXέ« Η.Π₯£ϊ^ΪγYΫ{? ΒάύΌΊ΅Ψσαη¦766ζ%ς|ΠGδΰW•]’w-σΝαΠγή|σΝ9Έt8δCΈζšk°m;/‘λ†;‡ž]΅Ÿ<y2 £Ϊ:LψΆΐH$T?^W\‘ϊε•WrθΠ‚ G|τΡ‡F&σ[Π"آ͘1cŠ„/™¦)‰ΔtӐpd>„­oΒι�)²Δ₯΅f-ΒΔ @VϊζWϊ -쟞Žgq8?―I?nί»›¦Θ~λLΐe"AΞ`:ͺ{E t­‚ή] OθQ]*‘¨r=W°+o‹7ιίΏΏoΪJ'H•™C<ΞqLš4ΙΫΩζΖӟξxΠ­)ϊχΐ‚0οYΨΫ_&LΘΑ‘ΓζΝ›σβp!oκΤ©�φάΉsΏ¦w£Ά6{Ÿ‹Α 'd*/Ί¨ϊ™ϋξ•ξΨ1ςQϞ=z΄Υ ²3B&“‘΄΄t?Σ4kf͚΅)'{ ΤΌ―$χ…G@FSf\"ΦΑ#hM²JέΏαK”Τ:Žs.ψ%Ό6XΛ…fΤ“Z>΄1Ά›†$©γџzίvΏ#a()„ͺrθΡϊt…Ύέ‘wWυέ½d€ΝΔ‰΅:ΎN―?uBΘ'Ν/ΏόrίwSγο¦όƒ8tχ‚‚�^y†v…Οž�λCψηPS„9eΚξ»οΎΌΪ‰nh βΘ‡sΏύφ0FŒΡ/oζw206lMr€Ξ1.ΊΘρ“Ÿ,κπΓCVqqδΟC‡-ϊ½eY„B‘KΒα°USSσZq,yυ!°>€Ηo„Η4!$4tψ%³€7d­ζš~žΣ=5I¬Ηrr“pέΓ=Bpς‰ΗςΟ·†g™GΙνβэlžΏnΣ!O~…PR="¨ͺ€ξ‘χλ~}»©°ϋξ»o³Ξ‡Κ!„]»ϊά‹‹‹}sπA•Έ©_s8τ΄ά9νwζj Φ†cΗΑΦ· ζ=?ž{ξ9:θ .Ύψb2™Œ‡'ΨάΠτž›·>}ϊŒiΎFv0Φ­“Νκζnηή}wi\ziꌣŽϊdλθΡ‘FΓ0Θ1γ’Ιδ7•Χ6ƒ”’‚‚‚[MΣ΄2™ΜƒϋJcσ»°εuΨo`–X²γlAYaœέ'έΘ΄χDJόΤ}x]B8Ζ8m,ŸΨƒκ7CΤζ!8ώΨ£ψΣ3eŠašz.³Ήn τΖόωκ-]̈c}/„Κ2₯ΚχάEω=TΈ:δ¨ΥΝ£”’x<ξ#–!C†4i|Σ΅χΧ«W/|8‚ci!7εΦ(fώϊŸΤΠμΊ `Ι’%~ψαœ~ϊι€Σi_G0ΑaΖςεΛs#ξ„`lΨΐϊΦvΥΖ#ސ±«―ΆόKΚή½£«βρψξ;“QΒ™Ώ½D!¦NΨ#=ζ=₯ξ!QBφ[Q� [rΰ170oiVMχ¬ιd;OΞSfΏυx>š~νφuθhͺ³ž}Αe,ZνΤΙ½τΘΊ{—Ίa΅όθΣrnάΏM‡Πhxež’μEE°ΫΡpΔ₯Π΅“Z~ PRRβ«Ϋ¦–ŽκώBN<ρDΟί΅h7?ƒnU·ΩτRΙfκJ€iΓ΅§ƒύόυΧP½i#Gy$S¦L!‘HδΰpΣΧίέ…3�Άm—ΆX˜�ŒΝ›Γ[Ά…F…PγΜ3ιrō³?^ΘΒΒΠ3C†μVφm©φΞ”ΞήB™N§ο=RΑkχ€ιžμJSbέo„p¨Η°m:Ύ”΄ΘO£?σ… †'Ϋ]_†*|SH›5©)ώ4΄ψξSo7O²‡ΊπξΚ£¨OkιΉΩΠθΛ6ΰ ηΥΙ{)5ώ€«Τχaϋ©΅υ•ε*ŠkXΛ'‰υχ ³葇Ό0_~ω₯―š‹WUUεΫrΪ\Ψ`zE₯΄Ί~r dfΓ]WΑ‚ (((ΰΤSOmθ§!έόmΚΙΠN†a,۞„Pϋ™„Ÿ<sď~΄`σ„ !+]iY–wHβΧ Γ‡7„k2™ΜΜ²bΨς.|πw΅UhήΝs>…ΞΌ­T{°;•—ςχη{zώM₯C3~98€[JΐΞ€ΞPBυΜργφd~φL_œ €χα-ΕΨέ‡³9r[S~›€ώτkΥσŒ#`υj°BπτΛΚmΜ ₯ΞΗγ*»K—.uΚ”+‰ƒ.H˜‹/‘·Fš›¦Ι¨Q£ZCΟ—”’ώ=ύu\]ΉpΑ`gώyδ Γ`Ϊ΄i9³ ω†/K›-ΠNF"‘ωpG%ζŽη'M’ΖΤ©‰›~ωKS\Έ¦S§NX–υ΅LC8†˜KηΝk θόPύ*”„τ0ώŸ³’Μρ‘nΞ8<K₯gœsΥ Zψ@YیCψU{0B:κ₯κ’B€’χ?οMPc*ή4œ¦ž»y Ύ+B@·]:³,q*v`΅lόG}°|ΎŽύΉϊΎώl΅j.‚ˆ‘ζ۟}φY_}CtΝ'i…τιΣ‡εΛ—ψN£ΡΣpŸEEEpΐ9ώ-αpύ„Lή§ uY;‡χO…ΖΤΊ‚)S¦Π³gOoή½)+ύςεΛgεdj'£ΆΆώΛV ™Ϊ B@a!œrŠΥωόσΧΟ8σ̐UZz«kΧ.•;J΅ο₯‹!„XgΫφοƏV†– ΡTc7/hν8θͺtΆ3D²F-ǚ%,‹§^ιœCΤΎρo[pΈA\υ> >;°Ÿ|θ‘jE½žŽΧ‡OΟ„ΩAiΐΠ}ωϋ΄>~JpχΣκυ'Ξͺύš:xφυ>Πα-΅ ͺ ;–Γ‡~Ψ,‘΅έ»wΗΆm’Ι€·]O/‰°ώϋ³οΎϋ6)­[‚E‹!₯dQ΄Ύτφp^’ΐW… +W¬  ρζ›ozxά|ΏπΒ �φόωσ—·*ƒί2ˆΒΒΒ—_^Ρ7LJ%-fΞ™™3ΓμΩ³οsηΞK΄υςΖΖFzτθ1jΓ† s�ζ<#{h4Žξƒ΅†vΏsž]opΪή‘Z¨KΦWo’Sςώ[ΆΊ+™‚,γtF©‰ Β ³κjΒ³π:-ώ΄έ(²λ Z%R|πκΥμ1 ›ΧΨXHeΰΙ[Υχ‡ ΰ–ΏΓρΐQϋ«p]«`μΈoœ{-9‡Ex8Dξώρζ¦ΕςY―u|i΄ǏόczπA2³³ΪR³u₯ω9Αύ³*(;FΏ)j;οδΙ“™>}Ί—ŸqγΖ1sζΜo|»ͺmΫμuρξ‘UλΧ\j†Œ“€E‘βΫ>ωΛgӚ[ΒnτκΥsιΧ!Ρs •­μ½χ–‘Ÿ<uΙΡGΟo92²΅ΈΈψψόη?†>ΟΪΨΆMiiι6l˜Σ₯€?„QΞΈL'λ μ=eΰM•Q5ΕεHOΣΉ€N•Y_³#pΰMΏyξ΅N&²γIgΝκUY|ή½—,NOPΉšˆ)Ψ’ϊ葞=ώ)"οTl+RΒοk~δμ@•ΐΚ΅κύ$΅ΰŒΧ_=‡8σΗt‹xS›Bά§npkjE\kq<ϊθ£ μ­ VΧ•σ碏 Jΐ°aΙΏαχΏ‚3fPYYι©ς3gΞ€  ΰΕo’Θ₯”t?±Ϋ[΅ [“ΕEEΏ)ˆ )ˆμgΦσΟμoυ=΅Χ ¦β'NΜ|#3cI`kφSu<ΡGΛ’K/έϊΨK/juν^F5·Φή0Œ—R©ΤU'L•ΟƒiΖ ψΏ=mΨ‘Ά,³ŒΕ½Έΐkx7…L†Ή‹w�Mτ…YŽ«›gΑδίΈ1OωDvlιuP „{"…pςοŽϋ%ΖνΙWTœί]₯qΙ‰Ω6H$Υ3“Ρˆΐα8EN?>ωδ“΅rδnί Ίη°M-om-ŽυλΧ“ΙdxπΦ6Τ•σ:CΊ;i\t,~Qν­‡Γ̝;€P(t6ίΨΆM―SΊΝ-.,ηΊIk „‡?λpLΩaωβ;vόf γ&*S΅~gαpԊ 8ο<ϊ]uUς³cΘ’’Θ£:u*Ρζ+B|Lϊσ πθ΅d-ΫΎρIΥ •[Ί/� †i«,ΰžT1 6ψΪZPΧMrΒ;άŸ gœνΦΪΣEΰJ(71Y0άιΈnu:‚mσ;εHΰŽ‡”Wg¨³ΎZ='ο•[Ÿ Iεvχ΅°zυj’Ι€Πthjκ-ΈFχ † ¦ΥRJ;LυνΡ}ΪPW.³ΕΊQUoΈΎΠ8GεaδΘ‘!μκκκe| ₯€ΗΙ]f … ̐Ζψœ?αΨy:–vόwΥΡUέ‚iΧ^{]WGλŽγΨp‡‚bΧΑ²`ΔΈμ²Τ‰ηŸΏΎf―½ ‰D/‰F£³₯”ƒ¦~z9ε}j θυwόc4χιc‘θΥ—=Χ\Ή¦­πφγΌKBS6³‰»y‚*νΪ&·jA² ήΧιΤΩ±›‡A£&"%¬ή¨βΨN§uΆ zΘ8ό α³ΕκyξαΚiόψρΩl©±v6ο~ ίTœζζισω%“If͚ΕΥηα£ΪλJwΎu¦κ}“eθ1©ΦΟ‡LRύϋχ/Θ)θΧ�½Nν~GeeΩ‘ˆA("… ΒQƒP8{ΟVTaKKŠV ή†eYFuunΓ4 ΫΒ\Bw+~kSΈΔrπΑ0`@ςŽt:½ϋcwΐδŽΏΦ+¨ϋžνη^cΉ„θ₯­Η—€ˆzœQ8­μZή₯”ΔΒι€Γ‡p‡—–°D»‹–Žπ§“3|0+uUΞ‹$% Ά+²XΕοX–MΗ%τ.³ €«._λ”Ι†.„Ω³g³nέ:­4ΦPΟ[Rέ[σήΓ† ຟ:υΣΪΊΒy^σ >έΓ†€SgK—.­oiόφBΕΡ₯'WV_ŽxΏ¨φ‹Έf·ΝMΣ ϋΙ]ΤΣ1,Λ²Χ¬m#]%•Ϋ²Μέ\ΊˆkŐaρbψδΈώ|8Ξ‘:M’Κ¬„uA�1F:\ΐ§ŽΙlΧM`iω“Χ²SΫ‡ΏtA‚ˆυpΈ†?w| °δΛκ"c“Ή8< ²›–W@w¬^Z\Κ–-ΚmΑx„PS§ γ1�� �IDAT‚¦Ή ΛΆρ:MΉυμΩ³Y•:Ÿ­9iέΤΊχ δΓ1{φl-ZΔ3w)τκΈ₯ΊΓiαέΎDπιΛ$ζ¨οώύϋoϊΊ–9s਎₯ŽΔLBGܟNτ±Kΐ0εΕ₯§.^5,ΆmS_ks.JP„ήZ‚Χ*Ϊƒtΰ;<ς λWŸžu“NzžρKϋš»/ΌK”n6dφ‰C’•ΰ΅ΈK$„B 뻝847—‘Θ‚aYK— ώW¦ύ+/€‡@Ίx) ρ(υUxηΜW―ƒϋfURΛΞ•vΊV’Κd=–½©TŠ)S¦ψ€j[${[$~s82™ {ξΉ']:Βα{ωσίr]iaέΆΠʍΐΣΨ‚έΣUν£Ύ˜RΚ Γ0ξΫΡΔΎβhŸβpfNYΗ‘ˆ"μHΤ$5inzDr~.e3,˜8uί;άτ €εΛΣ͌š›BTβ.Α7w0V‰ΎΦhF…w ωψ1mΌ€ύ@“ζω€΄Π// Δ;_x,\—)λ6¬§cιvβyšΕZ<ιό@‰4 Ž™΄9+τ2juα&/#=Qd΅ΆU΅Ξ”YΗ2£Ž1H ψli6lχ2ΈεR˜6mώσŸ•{†5έ�§Kφ|’Ώ)- )γ@QQBΐς²]ͺΥu₯»λ_cή^ά\ΤτοgRΚ³ wΐ%Ψ 6>WΨ―Sχ^K^=Ψ"R"¨λ"GΤx=^³3’β’KάƒcŒX,F]½l›’Ivμ Jo‰ΰ’P鍹Α-‚T όο t7zWΞγξΆ¨$7žχξ„ρašτp¦nΘJΧηž|Bεa{p+Ω₯Lg%8Β‰£$ς|Š…ώrzο2O™γΓό~Ξ<ΌλΏnγͺ½-ΙJ0ι| ­ƒλD±l₯χΤΰ‡{ΓΩgŸΝΏύoŸδΕ­3Θqϊλašš^Λ§H))//'™L²α­¬Κξ‹ΫR]iαΌΊΏΫ¦m'η]dέάπχύ’ahllόbGHυ oΪ«¬σ€EF4B½"1GᨙUΫ½ρΉ©»2 g%e:m‰†zΑΐΰHτŠŠΞΫ~sΉ’Ά9‚wYͺ7€"οXύΡGΥ±Fύ«²ρτΣW<"r½…ŸƒCΆat7c ­Α’=|’Ϊ'aLƒcΈΆΥ8€�iδΑ‘N‚ ’α’Ω4$-›CΖ|쩉ή"‘Ε£«Χρώώ<:Β™ώ`φ§„œL؁<Ή gt’›οŒkΌΥπΞψŒ�Gq·άr‹^²&%΅J³ιρxs’ήύN§Σ˜¦IMM Λ_±€δmm]e«Η'Ι= Hkgoδps­ϊH˜υH)ΛΒαπvBQJχ«* ΝwXB&nˆ:D¬«λYiŽ Η /… Lη©Κ"X²ρ&p}ŊuKΆ'ƒαg™nMΊ*½Ύΰ-ŸDwΓ:ΰμ`ή³ώΖπESΡά_™Ίj™žιθ<΅"μ*½ZΦ”dΏž»)΅‡0ʘ΅ϊhκ3šT�‘*G’»ZzΧ&½πδEω Ό{ίnžBεŽΤZXυ-‘lψςM*œmε —;ωkLϊ%:ψ‰Γ֘²Λζ<?:ΌςJFŒΡ’τnnϊ-ί<Ίξ'₯dΜ9D"€”TΏέKΌ,孟fλJϊΫRοW9 ΩmCM-Z ν1°m{zN%΄.ύΫy »€Οά΄Yr£Μd© Ψ6οl O=Χ-νή3¬Τv3l(beL%,b±θ‰+£}ψπaŸ77i'·vέZs%ΌΖ!st)‡Π₯„Ώ]σεξ@ΣU*Θͺ[ϊOhξzςαςn>=•UdΥ2‰ε Τ­Ϊ°‰3_γΉ΄ G|({ŽNmΑElM9ι‹l<OjΖ‡z‰H€Nπ§»~Λαl_5ιοz9ΌΊ€Μ€£ώgΓ:>ΣδθRτξ₯όVΣΚ*•ΤΆ½Δ Υ|Ί§AiεψηπίΑΌyσ0 Γ·LΆ9Λ|kT}χέΆmƍΗξ»οNΗr°?‚²ˆVZŸkU]Κα…uΫΠνš›/ŽζοΆ«�ΏlΫhν 1�–mƒ/ιρΛχΏ)‹ †χšΐnLa5$±“iΆ ΣGδYΥέτα‘ Œΐ S € “²)ˆHΗ(Ι'Ÿn‘„Ιφ·Ζsj]σΧΏέpi΅ΣΆαζKιλβ[‹β€ξΏkΜ!ˆ_ΐ,r8³τ$,ΛοΔ”-ΰ K₯� †’.•X-‚­ν>σIΛψ°¬‡`šάwΧ­œsTm~ $ί»«-hR\?Φ}>ώθG`xε6Ο!\)Αpl,fSν/`ΙJ-οψΛqΒ¨›εΕκlτRοθδζΏίσ©ρgœq¦iςΞ;οπ»_ΐΊAXΌ΄Ής—CwΣ‡?z8t==‡μ₯ή §d¬ ™L†ς£K&υ:₯ϋΜ ΧŽ°*JΚ~γJγFaπΓΧLώυ₯ΕΓK‘ ’79tαΰLGŠ›¦ϊ¦"xW}7LΙ1·T0 £vΐΦΡ"²«ήt5^'ζf:°v³ϊ< α—ζ>ώ rέ\\ω¦Fd§γt5-Ύ ΞXV ξ{ΕkΩgH+pˆμquΐbΎ/°Ο=:΄+γFwεΣsβ?C€²qΕ`P υΧVobαϋΰμ£4 ^ ·^₯R�‘Έ;νt&' ’Žž‡κ„_€9Ÿγ1΅ξU°l΅ΪžΚψ›ΗΕ‘Jkψ΄Šumlzf~OΫΚ°aΓBpφΩgsϋν·FσZΞƒΛ\-ΛβέwίεΤSOeΩ²e�Ό/<χΏΡMο.3ou]IM« ”#Xw€²C/­y~–κiΛΊψ?P§†aŒ:XΑ¦Ϊκ;vϋΙ§†ΓαHUY{xΜ'ϋT u•:¬²‹�΅.’UΛm „°‘lKbeCp₯Ήi�–_Ό»�˜3gVδΉηΖ$=cD 56ςό‚,.’W½ε­A^~fΎ­Nhm²’]‚Ν—•ΌŽΝd·Γiˆh_υ.%kͺ·P»δtΛ¦ΥŽ›†L…Dτ)΄T jjԴ֊°bΉ:NΊ΄v4ˆ½φθΖϊ%οrω[)-…B§q‚7¬6y'%‡Bα9•ΐ}wίΜΩG$T±!΄§ͺΗ'Ϊλsΰž'αΖs‘ΟάNŽƒβ¨4#υuœo„c.†OΊjΎ ¬¬Œ]wέ•}χέ—ΚΚJ ©©©aαΒ…ΌρΖ¬\Ή;Μ!†_ Wž§4Ymiλ6φ‹mS…GžΗΆm;ΌΫY}FX–ύηx,:JΓ§‡(*uT`­ΏdŸŠhΛ;E‘’qΣYςͺ΄Ϋ’€“6©€E²Ρ"Ω`‘pŸ ‰† ‰ Ϋ†’Š0uΙ-ΏW QJ.»LX%%ψχάI %샕”oLη2}π“ODδΗoΪ‹πΑgy0OΣtιβrdg–ώ’‡Υ³"wΉPσΦϋΛ_9eς2"Α‡-ΰ 8N<±yΒt…—FΕͺ«aε X½V­iAqμ3†½C―κ”Φ¨ {G: vωˆB―n€ƒμ±ΗΕ >ρ FŸ -€ΗoVg$Rpκ50|WψΥOύu£Γΰ]aPO}ζ+ͺO3`}-άϊWuL՚j/ƒ;Ζuλ²ΌΔ`πΐξ ν΅…ΛN©‘OUVκ6‡Γ+W }ΌΊψξ‹Ο—^«q+—τ²Ϊny©„'Wvƌ˜cμUh³΄!;-TtŽeΣΦ€ΉΗ „#₯"Ψ6Δβ&‘˜²Ίd2’tΒ"Ωh“lΜ8Δ­y½b�VF/ QXz=L&-[„QR ^ZŠΨτ5Š•SZ 2�ʊTϊ»cdOUΣ8€«²ζ]­¦;:ΐζϊž}βŸLΩϋK~zP‰Φ67INsS©ω˜€”CU•ϊΦά]¨7ΰ΅/‘ρsXΏ^i+WΒΖ L@χ±Οžέ9Ί£vb—.εΌϋΪtŽϋΑ'J3ΣΪ↋αΠsaΖ{pΠήw¬ϋsεgDn}-Z{jEo†BΌi,ͺŠαŽKΰφ‹΅τŒμ;Vn΄Ω₯ΣWjϊO΄G0LΎ°ΒwϋN›pδ "%€…ΰ +Ήwn¦P«γΕ*ήυΓ2LθΨ`'<°ΜΰΡ5q@rΗΠDΧΈC₯ͺ±•:Vs冩*ΦΚ „!œŸͺW΅Ο?[V+cƒ ‡—Dξ΅­ƒ$Ωι° › T–―–Z‘>½σΌ;j^Ο“~Sl΅ *™ (ΆKΛζ‰Φΰ0`πIpάq­Οˎwφΐ½ƒ`λVX΅J ¦ί¦vH€s„Ί₯εαT§ΌϊOπΕ2xπ:ˆΗτ„³’Χ–plSW£TζqoͺΙς5νN‡Γύ0`~Mœ{ζuaφΖ"b¦Λ‡σμ‘<>DΘΛΒN€±λτI)P\ž;uΧQdwͺδΒ“βς0©€MΌΠ$V`+  ’Ά'Ή]5έϋΥgΌg&-1C‚ŠͺX"j cΟ=:”9­eˆ:? 4Α+ άmJͺηˆΪ,Δbj‘Œ”ψκλBΌFΤ‡yΠόά[jYs$πˆ<Π rh»%6Lή·B,nVͺΰΪάkςβqθΧOύ ™κκ₯₯« cCΨ„Ÿηά Χέ·\δ”I:MθΤ‰RΦΜ`ύq’5­ξήκύ@ζΦω·ŽΓ€Euq_‰WVW6²„]Rˆ§šψ$2p\Ο F$„‹`§2ˆŒ !ƒ‰iήkŒc†έ’n\α•ΗUα͐›Ό{ H)±νfYUD6œ!PχWW‡RRfš7ώδ$†ZŠΨΙ_ΩA‚oŠν;Cm-ˆHΧ“'Ύ+iΌ±ψn.qUmΖ|}όAϊ‚^…mΕρ»NeχƒαπΓ[¨·o΄N,Όφτό\s/ά|Ύšu6ZΘP]ς©ΖKWΒέ΄ϊsz [:€€œ~εΦ­{Β‹Oeη[ΐ€Ό±Ύœι«*™·₯˜ˆ)=…qΘ±±ΈuμNsΞθ'Ηf{Τ#B$žέGξFτ†:Z:Z.mΆΔΆ$™΄Ί8ΒΚHlΫ]"œ­#mύ3jω³£)μ@4₯ͺ*²¨`[@β—κ9Τ’ΧjžΈΩ2SY©ΦΉoj€Ρ@RωJδϊϋPγτZ›ψ 8nηΙΉN©8„-9xw„ψΰ—κ­·su/Q–ν%+ΥΕ Ά„ŸŸΏ}~σwΈόT­ΘA-X ύΊεϊεΓ‘Ojζ­“¦μvΰvφ;Ηd$@˜`ΥWb5T -›OkαϊeΚνP[aA6oΊ΄vς2‡Hί¨79?U‡mK°md&–ΝΪpŒ(jΊ,KԐBuš—¦ΒaΫ+£~锍aΈSjΫRL@Ρu–θ=βG({�¬τN?"ϊ1€†δiŠ\¨1ΊΎΝT#¨&%w>iH7Q™όΥ]π§Λ³Ρ‚k±›KΪ—'žλ4ΖyMζf'_±šΔ!ism‡³χαpΠAΉζΫ‚`] ο=#„‹nƒ;.ƒ1ƒ•ϋΞ»ϊ΄= Ί²ΦT³zadώnL«Ιό:ο€αΗΒς5)Γ­i*fՐ„M[ ΡIΓI$5¨ZNοq•”τ("1±$ΙΉέ2…2†ŠΏΥόΊc6y$us„οΣœ±Ό„;«6S(mΆ€l.­νB4¦5œyΚή‘4WoQĚJ35΅ u˜r—1ZI&e{ΓYΫVέ²l,KI{Ϋv~Α 5±ά#τ΅k·6}ㄍ"μ δ³ήZΑVˍ4C0Kίf#Iz†·&΄Ο2/šE™4<-β•!QχΆυο9Γψx§”κ¨KΑπnjͺnυFψj τΪn»~ώψρυπχλTx―œn'“`z-წφ€χ‚Χ˜JΎσΥFψT;€sSM3x%|λŠ:Ε|σΣ8―k ‹!BvB 26b„3fV¨ζHkα#drΒ˜π³šJoψ‰‹lzNΑΥ‘aF‘‚³WsΎθ…ιŒ3mKΣ2iΫ[! %Ε3i‡Ψ3‘[Ž&c+F 5Ν‘˜Α–ϊκχτγμΩξ6jΌ]λόκΙyS «ξ˜!HY­a�ΐθΡͺΎ ί!`σΎΡO ]ŸtΦό|¨ςP½—¦σβSγ[ΒQ0ά{ΰΞ£™1#7ύo |εΆΑΊ‚Γrη ¦©wͺ₯°έ;«‹πΚ,mXCΆΓ/_ηO·©&•ZΟ_W‡GŸ|h‚Θέΰ½ΚaΓΫ0¨oΛe.θ‘CB’q“HΜτž‘˜’˜Β4αΒ0ηF6\ά$ͺΗqΎυwΈW—Ες₯ŠL)h@DΓ…1ŒXAΘd€™P{ΛΓ–%‰DM2i›tΚ&²H'mI›LZύ”Z―$»+έ]u 5±,k†Gθƒt_.R¨ (ξΤY5ύδΞΛΉ«γtΠ[Ί))ο†ΣΓδ#v'Œa¨F?δ,²kΤσ€Πγjΐ[<‘‘υωεΙ–oά'²αZ#6ΠQρ$¦mΣ₯rΘ·ΊK-ί^™Γ](‰ΕΊί|τ©ΰχW*η_―Κt»³ΗΰΎ§‘Ύ1—~Ά(π%‡‘ζanΈ`kQΌpyq Ά¦~ϊ8dζΒOnΊμ£Žο™C°ΡΈA$n0'ΖN₯±“ΘŒ–MRJbqƒHΜ 3|„™DβΡΈλg¨t=ΒW~ΧΟρχπ{q”_¬ΐ$rζ™ͺΓͺΣ…MΤϊφ°"4Ϋ–‘Ϋ‘[ή{±λ]f‰ύœI?ϋΠ#ΫςŽ=֚@ ΅-޲¨:Ώ"νWŒ:JͺD{Z'Ψb4α–η[ΨgΥΐΏΌG}{ ƒΐw +š;†sθ’7_Ά<&Β΅G€ ξxNΑcχΗk―ρ‚«^WWΓ“OΒγΗwa€(‘ΖnR²ΗΧpδxΊ+l­‡ΫV;Ωώκά²ϊ“π·€£φ74Q§:΄6“ώψAeΟ γ1Lι―σΌ8„Ίχ/W¨λŸϊD΄»φ�fή»˜XatŽΖL’œΊΖ4vC;‘ΒNeΈͺ¨o@R>m (Ρ#qC{Ο η#φ@ΈX‘ΙK”`§2Ψ d*ν1œ/γEŽDΔ ”4Ο€ά%―Ω_:e“IΉΔξ¨πšdW=Q"m8{ςΕu^σœvΪ©±>}jά¦q₯ Έ§ΞιΤ‘ƒΞšσŠΤ\§gΐΌΟ`ΣL¨ˆhაo˜ i~TΎ8Ί·Ϋ™E3αu]nΜFr›žό0{OXτ΅ΥmΫYhτœ{"\ωc(‹ΚξBΥΕκΰ}~ςΕ"†”=L| $Σ°pφQκtΨϋžV‚ζΙ[₯«NYžFΎϊta[4™¦k%)αύ%0ώdHk3@ÏμFAyΔ±€Ko k₯l’ ј‘1!±RBJ^ύ“Đ’!$a,αH!Y’dίsC$₯aOΌ£ό ΈYRRνΤ)-{ θg‘.BΠΗ&SQ[!CmfPγμ]k·r’½YMΓ%Σό‘ +λΒΞύΞ ·U‹λI&ΤbΓž&©¬ρH9ğ°H&,R 5ΧPXBD2‰χnžχUΧUW!CΞΨ*ž8—‡ ςt>Πύbp½snœ5 6�E iη] ήAz’^_Ηθ-α°Av»ήε‘J…—’΄apθιW3vleέp—Μ~ώ9Όό2μΉ\{Œμ"ν/Ÿ^.W•]oDuΆμΞ±ϋξΎ™³Iή]Ν‘ο3.:ώω"<ύš"φ'nuN…Ǝ€n•ΝΰΠκ(g–C/ >Ύθ΅‰^·mΕ!%<ό*œφ‹6T*°KGX5o‹#oΧu>ΞΏξωD£Ρ=’ΙδM₯mΩi Β’iΦ'–·/8΅_ά,ή«±α”0…“llΫΚΖι·φΓ’Oj1C‚Mλ’˜†›)‰mƒe)ižqTωTRΉ•Q΅Φ©[œΊ††+>Όmρ-^•ΪΆmœwž‘ξά9gή<l%?§mJͺ·zΌΘ(\=μR «^ΘϊϋΖΪZη«ήJ9JC Sε(#Ίs8̎Pu‘/_jJI²ίώΞ&ΉΝRέUΗkkaϊt¨έ·ύŽΩO]G•ζ-§[ΖJσπ*°΅‘βΪ[°‚1j»jΟ]ΰΆ‹αΡiπoη2ΡΏ^ EP\Žυγ%p°Κ€ζη §iDΎφh©­ΐ!Mθ>VohΉŽ/>ξΈHK0€CΗγϊOϋ9"‘Θ=Ιdςό|Ϋp[–6 ²/›5i†ξŽšρ½r�W7²qu‚šM)lKfΧ~Ψ(5=£TxOͺ'7*ͺbŒν?!όΫΣώ˜ρˆ:“ΙΨλΦ΅ρΒΈz|γ΅H°S‡Θ­5ίωΑY‘uΑjηӈ³xšjψΌι;nRζ Τ"Ψ1›ΒβB:H€“ΐ‰“jψ I^Ÿ'›NΊ–oΌw1BbΛDϊtαΣ‡aωαψρŠΘέq°Η€ς‡λξ9ؚUΟβxœΗg οCηjΚνψ+ΥΕ‹w‰Jη§7Βc3 Ά.[98ςΥ‘ξxχw[ΚΡ † +§Α…'5]ΧBΐβιpΗ…~·ΰlΫ&Řή[’ˆά4ΝΟλλλ·™ΘL#l !Έ}Ο™KoΫύƒφŒHΡp§»9₯ͺ{ι”MQiΨ§{ψ”c˜sriΫΛgyU”†D’ξ7'έ‘Ν†n[Ά΄α–~U:H¬a²†ΊΝ/(%[:ΐι§ΓΌ…0ΚΉλΟν²Λ[D\γ>τ~¦§αs¦ΥŽ‚έ|)»aώύίœux5Υ+ςtP ܎΄hά{`ΦΜέ8ξΰŸρΚc7²~ή―Έωη)ξ°‹ΗψΠςͺ—IκD“Ο= w©r—nŽ)ν:I•Ω†Υ3ΤΑΆ '_ ΣgΒͺ7ΥΒ”g_‡S5Νγvί}κΉσΛg�mS9Z‹Cΐ—ΐ³wζΦωπώ�ϊvΜ2–&qkύυ΅Ο`μρ …–Y–5Έ­W~·Q3΍|σβΝ©΅α”ZnK΅=² E ozΝ•ήι€;N—ήΠ*R{֍…Ca% †/h<α;–7:θΖ77‰"ξώ–�5'ŸΦΒ‚Ÿΰ ”e_’=΄Bhι‘`Ω2xπA%qVΏH–Ή$o^€ξŸd€΅—Χ¦ptqΖ½šί΄_γ a―#$d 8φu§œ[ΓP7₯Ύψ"iΈjκ8ζΘ‰„3Ξ QΗ<υάK½ϋΫ9ξ>›ƒο%ΰP|ο‰w §–Vc&MΌϊΧj½„γΎ΄’Œ[‰9ͺ9Ί^œ ‡ώ4€^}ωΤuΆ§Ϋ€cSφ>Iβψί?AΧbΏΔ1ϋ 2 ۝₯„fΐO―‚P(΄0NΨIސRrΩGc/ —?φώ λlZ›ΐΞHΝ —]4£4JAy§‰DͺaΞοΊw¦{¦·X,FUλ-ζ@'ς0j*9hκΪs‰"pύΖ8Š1ψr§:BοήpΡEpη`ކ­³ Πέα¦IΊΰŽ57m·Iν[οοAzφˆίν„ωpxC¬ήy}β¬ΓVyaC6¬Z ƒ+λψΗsΰό“ΰΆ3α§ ¦°:ο‘Ά“α|άΞάP_›Ε"4©¨Uϋ’—Γ“tˆοκδIxv7­x,Ξζ­PΟβθSΙwαΩ·ΤΝ$ ŽzήbAi„‡Φ^αhεπεw[Λ± 8*c°πir €½OUΓ'λεwΔTxξ5BΌ™Ιd&|έDΈ«ννόSžξ=€~뒏k#₯6I`₯Υ’WΛς: R Κ:F°’ŝΊ»D>R‚P¨δC¨mžΠkΙnSmuŽΙUΩM²‡ZθΰjB‰`ξ,]Š œ)α―Ec`ϊύ0ydΆΡυΆΞ1Јΐ·σξ©kŸqH·ΊC8ΐ“ζ+Φgαμ»9λPΌ€.Ž™‡ω+α†c@dœ΄,Eδΐ(™Q›gα}zλ¦Φύλ~ΣrU¨#ΈΣEA–Ε†j(οš‹γˆμ%ͺH ΤΉŽCΟS0ƒΒOLΫ\Ž―ΗG_ͺυάΆ•`ΛVˆD"—§R©ίς ΓΟ>œ²₯8gΘX‘ώ%2i›Νλ“HK’ Ψ$Qσξ5u5ΧΞώέηΥz>RZ·~qsΣ!€s·ίA)žΒd ށyσ`ƌ‚σkjjο …BH)fΖ’ƒΞ’}φoύ„c3πW£]‚ι­δ?Ύm¨Ξ‹;.φ…uq„«xεΝYl^9£`Σc΄–˜†#,aXWM:ιιȌO8½Oj uκ°!ϋ₯i,ϊt”.‘ƒRR₯bi§Δζβ°²YΨYIšwI«ΤάvBΨγXυΪ»„F©χH$28•J}Ξ·†0RyyΏχ "ρ1(νU+ΰl΅NωΦ‡yΥ β~?ϋ½oίΎ_HΉpΗ.έtΗ|EάmΈQZJX°�ž~:ty*•ώ­‚3Ροœ Ϊ7Ÿ3σΓΔ½ζh˜σ$ŒθιΔuώ†έˆβ:ΒxawŸF(όaΘ¬c~ΟC?άC]·GΘ—_υΤԁΙώ{dσγΛƒΦϋu«³Η€ΌΚT§ϋa& �� �IDATj8„  `ΰϊ ¨?ϊ|χΈγ7ͺ;±μw2!VŽ1’ηG}΄-—…οPpTω=ϋŸΧνδxΙΓ‘«9u»ΊΆzςŠΧΏœχΔ]ύ#‰μ~ε•©Ω;,g’¬q­ˆάuςΝΐ’EΨO?½ΊΎΎρfΓh>βΈqγboΏύφ* b·ή0οie²’X:xK°ΓδΡdr΄›@ž€Ψ^±Πα$-Ύ{΄rxεΝχΩΏοσ€–.δݟŸGK@„ΊC§3›Δ!M“ΤWΏ""ΆGΠMζiχs'Δ±Υ‚’=³ί¦iN§Ÿn©}N§{ωȊ 5ΊŒι?vεcSŸΪ2›V“}=•JU›κ˜« 4=oΎόžy¦πΧ55uW«ΉΔ–+ων·ίNH);˜¦yβ‚/ν‡##1Ξ;ώx™Φ˜Κζrϋ€θ¬Χt),jŸΘ&)΅οmΖ˜€γ/<.’ŒfαΊ�‘‹άŽšσ-ωŒρ₯Δ±zνZΊ˜d―ΪώjΘΝoLpgΐ•γά4Ε{§Ÿ~ϊΎ<π@fg$r�gZ―¨ώŠgyςŠζΖΒ{Ν5W­o†)΄β΄šΘ—/‡_Zά~Ψa2kkλ―n«USmΫΈθ’‹Β¦i>qΟ?ΐά]©bϊ5::‘Ήuθ‚8(©ΑIKKΗηΎ-8β»:…�wκK=%/Ώώ6ϋŽΘE‹ηϋφ{εˆ+θ9q %―Όπ’wcμ6γМdΰι cΆ·_`SΤEc-ΛϋΐOBόNƒΠ/Ώόu‰DΝ΄)υ\Φ¬_ΪψΣ–-G‰LF^vτΡΗlώ;οΌΣΞd2Η 4(lš‘wΌŒΡpυίΘn·Είπ9†όΜG šŸgΥΥUΘΆΰ0 =pfIΫfXηs:wpΝΎž¨>Ε$u―p₯η¦γ7Ϊ­λ‚νΗ‘ΉyWΰέi¦΅w8³Ά‡„SnP·Χ„Γα{ήΫY₯ψφ€―DαpΨΨΊU|ν₯”Φ­ƒ[n νξ»3"“±Ο}ϊι<“œΫB>όσL&“ΩηΔO ›¦ωΞMχ‚1 NΉξ}hhκ΄ΤΫƒ€Φid6¬o,ˆλS[‹CͺΓΧ₯ŽΠΌπ―¨rg9œαƒ«!hύΪλάΊΚκ p;t&»Njsζ~Κ»ν�z=9~σW*FΫ 5œ;N}zn­ΔpΑοαΡ€βεt:}>ίSπu,³Χ¬i*θφƒ”j5Ψo~c>ς‡?€D2™ώih›ΆΛ΅ώρd,ΛΪηWΏϊ•FŸ}δ?}ƒk³ fkH'Tο©KwόΣ%π&qˆ˜†Γν•‚Gώz‡ Θ1ΐ�o,|’n–šhsӐB`m|ΒG$Ϋ„#πtί;;Η°ν«τU;GΎ4ZΒpμ―ΰžGxΟΆν¦N­^€Π₯”lά(wψ4‚”κ²Ϋn3ŸνΪυf3•²N‰Έ· |CpΣM7ΩΙdςHΛ²ΜX,vρ²΅‚Sΐά.ύ#Xϊ‰³Yzσ«ε4=ΦsύΌŸΘώΌqΉϋ­γˆφRS…Nζ•_Γ)ZΩ©.7}ιγžjκ{’‡HWπpΘl|)ωσύaΜn;�‡ΜΖΡλ£" [ίWίέ&ΒΓ/νxΎ0­)‡ =¦ΐΏ^ΰ…t:=φ›Xιφm‚―t©TŠ1cbςˆ#v ­K ‰όρβΕ]w~ΘΗΌΣ8,Λ’¨¨¨W:ώO&“j ζo§Β™G‚Hiκ΅K”RSΛqά5ΥΡ›v <ύ‘Τ·§Ι–ƒŒΓΰ=Γ”1Rβα2w‘‹Τίέ$στO7―ž_ρΑP΄—OM‘ή~γzώΫ>l'Ž<\o Ψ&”ο«N²άζύK­ρί‘8Zͺ+ ,Xƒ¦x)\ δΩςςύŸDD"lάHuS[ .ίuWδΝ—^­―—“w&"0M“ΖΖΖe™Lfh&“‘HδΘΊΆœs˜Γ‘ςpηӐ i$ ™σI“`Η“2V_’λ :£<ψ–ΞΉšΗHiL C6Mτχ€V γφ-ϋuέ ‚Πnό�fΞώ½Ί[΄°#p8/2O|Ϊ6Zσ†ΪχΩbu-Τƒ/kuΊp4WŽŒ £OUD.„°ξό9δα•½z•Όqϊι΅γσn €„dξΉΗx§€d—,]ϊeβ›VΡ·lΫζάsΟ =ϊθ£§744άjΫv¨{ʎ Ώωt)agUz]`KΝ!(Ωƒξ άlœc™ΘΥ tCΰΣΌo‘Ε­ΖάΪ·›Η.7#eΪ"<πΐÜ6yƎΔαJWν;_9€„:zLRλΗC&<υG8t‡C/GΖ€S―‚Η§«oΣ4―««;!oi'Φχ r]ΈζNoːEJuυο½χ³ :ο»rεΚΤw}ŠB]%}™qΧ]w`YΦο€”»I) €ς˜z&œqTΔ4ΒΟGΰψό’Ghί’~9Οƒ£λυ€ΰΛUkXόΑŸψαrΗβω£Ά„cζ0ιΗκ¬:!ΰ¬ΑS!ζmΖaΐ’υpΘΩ°xΉς2 γΣ²²²ΡΥΥΥ©<%ϊήCΎfΌδškΈ£5t*₯ΊΨοή{CσφΩgςΟ=χίΤχΡ¨a9KǏ_4gΜ«-Λ:+N—ͺΐp.<Ξώτέ„Ά-Χ•NA‰Y†�šΔ€zpx―K·|_Χ*„ΖΒdΪ'γ°·ΌΑaP*ΔΖ‘oΩυ$,­Η1s!όθ"X»)[GΗό�~yŒθ«)–†Σeš.ΎlMΒΏ^ƒ[οUΔνζΑ4Ν‡~θ¬Y³R_χ ΟΞ 9TΩ³gO?}ωτζθUJ΅Lφή{Ε‚αΓǏ|υΥ7M‡ώώA*₯„Β AƒzmΪ΄ιg›7o>YQ&₯τ.1ΪΞ:ΨϊuιχΌju;©šΊξ QEV] ΎηHΌΰΣυΦŠώΫΖ!A†•4νψΫ30νMhLz)Ψ€‘kHξ5L V±m©Λ§9 Ϋ0ŒmΫώ™mΫo~ΟΆ@N-tνΪuΨΩg―škη1Ό»~ο½bYMMtx"‘žϊ? ©TŠ#<2φΞ;οΡΠΠpf*•Ϊ0Τζ¦Ό&ŒQΗ%ο?ͺ:€H€΄Υ‰3ϊ84ΒшΛ£yhPc&>Ιϊ γa₯ω½9ώϋ6Όρ6|ΌΠW}6@(Z-₯|hĈΞž={ΑδΙ“{½ρΖS€ΓΣιτ(!D™mg{¦a™βββε555o=3vμΨiΣ§O·—%wSCθΗstΕπαOm nl1 Έ~c΅mwΎ|ωςν•Ω<d2lΫζ7ΏωMΡ-·ά2NqJCCΓ1BˆsΜ²78zνCΑΔΡ0|μ;Œ°Θ4# 1]Π ΤyzΑς y€oKn:ȈJoρJ˜υΌχ9Όχ!|Ί’)ΏΔ5 )%αpψΒΒΒ'ž«――_fš¦έœτM&“!άΝH)I§ΣD£m9εςΦμ 7 m[5iΒίώ&ͺ“Ιͺ‘_}΅|υwɊΎ³A"‘ΐ­ΏC9€bώόω»-[Άμ:μΏyσζQΆm‡„†Τ)ƒ,‘v,‡₯PΥϊυ„Α½ ²#τθέ« ²b`‡U$!Kq₯3Ξ΅mub•χ³ ν<“iE˜ξ―¦6TCc–­„Ο—ΑΚ•°₯V]Ξθέ£«εnžΨΆ@q8žQTT4oΣ¦M‹“I₯›·θ7 9„.₯4.»L€KJ0~XlY·`ψΦ­uΛΫΗ:_/€R)"‘‰D˜?>ϋμ³O%pμ^{5άε*ιΤsο¦s ¦ξ·ξηBSΝœ†!ί¬Akΐ^}β ±eέΊψq›6UΏ‹ΕΎυΪ!‘'“I£{χψ†ΪΪΘΘΖΖΖv†ΑΆmΚΛΛGνΊkΝΜ)ShωDήoάM=/½$}Ύφ˜cŽΉύ‘‡Ωiχq―B^*v₯K;|s ₯€°°°G·nŸt’,²ν6Ž£ΏARisηb?ΌρDiiεΧ­[—h ;/΄·Μ· ©TŠ=zT†Γλ?;σL»SΎΩŽ Φ­ƒGεγH€Γ6lΨΈΈΈΏΠήJί"TUUΕ2™ s.Έΐ΄#θ₯ΝΦτV¦™JΑ3Ο[–. ύ΄ΎΎώι};I;|ύΠNθί\ύuΖm·έψωη[ϋΗbm'Nw6DX³FΨK—Β_Θκ]v‘ς€Ά?RB(/Ώ,˜3§ΰ†>ϊθϊΎ}ϋΩνγξο.΄ϊ7ΆmF>ηœτΙΝΈ+#Ψ²EΨσηKcαB#SWWπκš5 ΟΗγ±7Ǐ?ο?ω/ϋν7‘ ’bζΦ‘#·O’̟Σ¦…§uθΠνΗ .ZίΎ^βϋν„ώ ΐ₯KάtIι_φpξΑΡ§°LS©Η‹,^,_~i}^[š …ŸΩ}χέΏφΪku‘PΘN&“9σΟ‘P¨σI'eΦτξέφ|ΉΣg55πψγ,kl,=zσζΝΆKξο΄ϊΧRJJK‹/8θ Ί» ‚tΦ¬|ώΉL,Yb¬nh=g±”––|ΊbΕΚυ©TʐRΪ­]LΗGœuVγGεεmΝ—Ϊ«πμ³’vαΒπωd2™φE,ίch'τ― &NœXτΦ[o}‹7M³π₯ΊΊΊiόηc΅‡zΈ‡νT*΅Ν„ε\ΎpπWπ|k“p5ˆ™3ΙΌρ†qη ACυα‡%Ϊ₯χ΄ϊΧωTνν)%‘Hψœ+ΘάΫ5 XΌXπτΣαWGŽsτ›oΎ΅₯}JμΪ[ό;RJŠŠ o:΅ajKΛSkjΰ©§BΛV―ζ„d2ωžΉCoζh‡ο΄ϊwB!ώyυΥΫάϊτόGd,ˆ_XSSϋ'!νήΠNθί(,δέ©SΩ+x€q8 3gΒ+―˜χΠβ?ώ4ΡNάν„vBίΙ!NΣΉsxΙ…²’{εJψχΏC³jkΝ‰Δφqw;4ν½c'† Ζ+WΎ΅ω”Sd ¨#΄\l\»6zB}}ύΛν’»Ϊα;{ο½whΤ(Ρxν΅Θ±cΖ²²’K<ςˆ½³οzi‡vh‡ΦΑATPY)ρxθαξέ»Έ‡QΆC;l+΄«ξνΠν°Σ”)%¬Ί;fΧ~Ε»w–΅U’X‘Ι JφXOΝ§ΥΦΖΩ)³Ηi"e©Πΰ›l)%ν‹ΐΪαΪz;΄C;|£ „΅…X°_²ώX2ΥC—ή#Œ¬mΩϊόΔ2’+Ύ‘žD΄˜ejVΓ—Ψ΅Ÿ#“Υ~ [‚-‘ΆΜ4.Η(;ψΣΥΒhίtΩ{ΠήλΫ‘ΪαkΫN#6? koΫ‹ωϋά%ŒΨ()LCΘŒ¨nάR ­4φƒBDΊ–‰‚ˆ’QH†ϊΕΘΤFΘlU§—;η’J)‘™†΅Δ:NzK>a.₯€ζŽhD„£}dbkΚ¬˜ υž°66ώξŒD΄κΫα{ν½Ϊ‘ΎVΛ/‰°`ί›d¨ό †‡„YV-€V€LΩ2³qΐ\ΰE5Ά w±…tŒˆ©j¨ϋΩΈ¬„#ΜQO;]'νΖΙρI³·θ£ό EΦΏAa…!­΅€>Fjώ£ΆlH=W}}δ”²«u†Ω.ΨΫα» ν½·Ϊ‘Ύ6«n¨€ρ‹EξωsQvDH”Ρ~ S™�a μΊ“YV$ŒΔzΫ@v2SLF6.‡Lƒ#Δ՝ΩRJμtΝ…±Γ6ΜkN˜ uSh/€T—ž: ">Β(5·Φά^0^Zν ΣΪα» ν½Ϊ‘ΎVΪ αƒ.˜Ε݈…θ�1Θ¬‡ΜF�š$?Ή›΄ΣΩΘM`§—Κτdz3$Χ!Σ[Ά₯Lμ FθvκC³σ!-Μ™K+cˆHΗ‘`ͺϋ@]s=J9†�Γ~rΛ3“’8»Ί{Ξ=Ψ‹eεFPTnDEEQγγ•x¨IԘhΤ$jŒΖσS£ρŠ_cŒρˆΔ[Q’xα‚€€ΛΉμξμ5gwΥ™™Ω]ŽΔzσfΊ»Ί««gΆ?ύ<υΤSύχήΡhz-荦w |»Uc–‘Μ> LP”Σ„R1TΒVΒ*E‰TγΏΣχ#sΨΟ£Ψα…Δ ξŠ9N‘dΪΥ€”2ήr£wŸϋΊ5«γ‹ώμ%;ε€έυ*υŽJM%X₯’Ρ³”΄{υ²h4½…tFΣ+( „ŠYA0|(JΩ  $"•MIΐ:–•—}#%¦R& ήψœŠ7H’λΑn%έHχ”uνDBΦΰS_L πy8qo_³†œHΖώ©Ο’Γb7„?L‘#δ4_MτW£ΡτΘΘFTΒJΊcd…‰‘t›«δ”`%Jοξ9R91ͺϋρϊM*Άe·ƒ”™b,Q|δ™ψ§Fax»> aJΙ_ ,#+˜.#Jεž.ΎšQ‰§Ρμ€hAΧh4½‚ax%ESW([Šl$?Κ(”§EάΑζΖ3rΕU^00Gύ.N’εTΌμφdω䜠Jΰϋ •θς¦€Mλ'aGΉ~͟u:D]Κ΅ ω„aϊt>FΝW-荦ΧPUg΅§ωβ«ΑiαC˜• ‚ DΆ ])”ŒRυzΫyη€b””8κ6βQμ0*•χX%#άα¨κbF2εΨ΄έ7p”πχ TλΌ£]�8”]τΕΪήΏ*Mο ]£Ρτ€*?α·*όΡZbKAΕQVΚ*Μτπ1RΒ¬ΚŽWρΠμΧ‡­C>_ϋ ND",AΒ² ₯ΊTŽMλ_«'#β`˜AςXε™/UQ£r―„Nž©ω £]£ΡτΒ0εΗΗ…ΣςMΪζGEτSw½ΩΧΒ–vy'ίΑyαΫKΕk/Τξ%œr΅Š7Ά!¨T”»”aWΒΣΙ=”CΫ}e ΣxaΣyα³^QξJ!p~WzΞ››„ιΩΧG£Ω–θΗQFΣλ(ιΐgΣφΗͺ~(”ς@d *Άε$Ι|μn^vŽL/o~\)σm„F%₯»]JT<ΌΦͺ˜4Π{Θ³€«ρνν·»00¬Z€D9Ι²Ι}Θ©GI 1ω™wΜΡγ‚G?†o_)fΛΡ‚ΡhΆ JJψlίέ•(z£’BΩH„PN<ΨJp’οΚψ΄Ψ'Z9v[jTMYΰΤ½r&†y£fE€»“ΈdŠ{Β‰#½γΚ.kω¬«LsΝW-θf»‘d΅τ[^[σψΒ±³,θΑΝ°¬Ξ–΅+ΘεH‰ΒP9YΗΜk₯+”γΨ**ΏY~EόY‘‡žkv΄ k4šνŽR6ςέχΑ(ϊ·Rfu'λ<eY+9‚œϋžOμ³Ά92™ˆ&£¬-γ2jQ~yδeav3Ž]£ωŠ ]£Ρμ0€Œ!ίrVί”Α|’άΡ§žiΉπ|ϋΊ©b“Η‰'VΘ°1΅όηΡMΒΠ·@Νƒφ3i4š†aψ0¦­}\ΤΜ-"ή|g-KF½“zOm#+j=sψ[ηαi$ηLWmΚρmφέmDΕU1-ζš]ύ‹Φh4; Nθ]œGž€QzΒ(Νκ3w²έςJ*D*@.m§ΆeΈνγφ|Tό΄’ΖWΊ―\³ £]£Ρμt(iρ;Μ‡VM*ΈM₯#ήσ»ά•T(ΫΆ‰'žUR^QzAϋ"₯ =Ύ\σ5@ ΊF£Ω©H&‚ρ !*’φΔ mKϊώΕF΄‘sp[*bέ–¨Xπgf@ώ!8η‹6=MσuD ΊF£ΩiR"„°”*₯†~}(θ1F SFπΤύ Ϛη17mD6φ'όώLZ_˜Bb­"KΌU:«tϊ°η†u;?ΊF³+’]£Ρμ4(₯ ₯T1P»Έ=ϊ+ΛcKΈ·ͺT<œƒΒYλΌ·θ»’‹£$6$H8‰{Η΅Œ;ΛπιΎrΝΧ-θf§@)e�^₯Τ€πσν36%œ;ΕαΓƒ@d:J!•Β"JΡΎ*Nι5MΨo†IΤ'ˆ'βηOŒLΌΓπhQΧ|½Π‚Ρhv8©~s Β©wΖ4ήΪψ€o΄o€YmΰΑ4@ˆ΄ §,u[)ΒRθ8¬Ϋξk‘υq#ξLšπaiQΧ|}Π‚Ρhv8RJCQͺ5Έαϊ†›ΜJs–5ΘΒS  hgα‹Ž™Vq@XJ‡υΆΝ¦„Mk£έxΐcρϋύt`Θ4u€œζ끡£O@£Ρ|½IΊΪύ(ͺšοm>ƒYf΅‰α7©―„„βlWΨχ4Iτ€μ AΉiΊx₯p*©xγω˜υLΓ€’Σ|-Πώ(F³ΓR’”²”nl‰OŒlJόΤ3ΔƒQlΈJτ!ΊNv}dS6ΟΖχ₯ƒ�nΠ\Π0¨0MϊZ妉§ΏgΖ«Χ;RκϋœζkvΉk4š‚r}η†RͺΕ€E‘θsE†1Έβ΅¦%fΖνI‘u·Jξ‹’ Η‚Φέ-’• G"%υΆνΊίG²<φνΛ¦|ά4 Ή=Ϋ§Ρlo΄ k4šBΚΥ”ͺYΪύ…0Ξ  ~hcΆ(Iρ$Cάέw•P¨˜ΒispZ’―6ΫQlœh±κ@/ ^IΘvhŽΫρš5jσ'υ_aι 9Ν.ŒtF³έI&ρ*EΥΪ¦Ψa-u_‰i!HzΡ17HKœQ— β Ω&±7ΩΨλlβuqλ؍6N«ƒŒK€|ElιΠ4dΥΑΎE{‡¬ISξΨ-jjQΧμ’θ 8F³]Ιp΅e\U5›ςΖ"Σ4,‘o\Ί]mΧΐ™΅V"Ϋ%Ξz‡ψΚ8ρeqβ«γ$6&pZœ˜ƒ²RΉs¨+’ŸQ”Όk³η»Ρ1qΛώύ†±%ίΫΑΝΧhz m‘k4šνJ2œ¨ωβ“φ_¨Ρή3ƒBΈΦENFΈt[bΎΕ_Ρ/b$Φ$\7{άA:pηώ“d―—B·βgάvπιLrš]-θf»!₯°’ͺερΦ"σΒ™ΗYr?ϊf”)ζ ₯h—’γΠδ84I +ŒόaEoŐ²{!Ο\'…lsΞΤι Σ-κš] νrΧh4Ϋ…dΏΉ"(c²"όRϋυή1^ΛΣ¨P$ˆMHNqͺˆ)E›”49ŽC«γUŠΔƒwŸͺΔ@»€φΎ6ίъ΅ΞNoK‘τŒΕ„ωΧͺVνθ¨wΝ.…ΆΠ5Νv!iϋκϊΛλl ½»{1Κ „%ΐDΖ{H!ͺ­I!9mRS p’‚Ÿυΐ6@JEΩ›Qύ£•š§Ϋa‰ ¨«=!9Τ9τ{ΒΠ·@Νƒώ5k4š^'ΓΥ^Φφ\ΫδΆ§ΫώνŸδ·¬ αwƒα”T¨¨"ͺ$kfxhT˜·KI<Ω—ξΠΡ―^θ=υY*p$Lπl°©x?Βΐ'[ιχRžζ1αœrhβ°¦v½kv ΄ k4š^G)εΊΪγrΐ†lxΨ7Ζ7ή3ΔƒQb€ HQ‰³Ρ!Ύ8Nτƒ(Ν¦dџJ‰T 7+βk™§­τŒuΉeΫ3Λ+EΒ₯ŸD§ύΏYΓ†uΝWύ+Φh4½Jr˜šͺμ‹ Ρsβ?,oV›ˆ"αށ$¨¨Βِσχ£Δ—ΖρΎcά¨L΄ώw‡ΑIΞ²¦’³³AΗ lddKEΚ§–έ™άΑv©ύLA04ΒσΠO³’xϋ] ¦χΠΊF£ι5’vDYλΚΨΨ΅ς₯’€ix…ΐ·ΨΖά(QQ…]o4Nta”ψ’8Ξ&Sιμpιήο€’ξT?_\TLx€‰” )`©“ΗŠΟ΅τΔνΏέΏηΰΣ΄•ωͺ£]£ΡτIλ8¨bͺζσΦθÁ>ΦdŸ˜I+ZΪ σ?œ·’DίKŠy½+ζ) [ IΓ’4LσςΕ™ΕΤοη#Ze μnDœlΑ·©‹}ο}†ίkθ|0ZΠ5M―!₯΄@T|Ρω,6/2’ι]…Ϋ/—’V)i ;”ž± ο‹Qd2W¨,1ο~¬ΉJξ#QBΌ—‡ϊ‰>&ωhγ₯eˆ‡H©Tξ€.Iφ· ˆ&€½[άγ—Σ†,3uœζ+ŠtFΣ+$3Β·Gεπ:•ψ_±eψ}†‘κ6'mŽC(™8&,%q©θu Υ··»!κΠ­ w•H&ΏθKχ „[*Viι₯±RΌ;½¬tΪΨΗλωΣ5_I΄ k4šmN]ξEQ΅φœ΅Χ{†{Οδ¬ŒJ$’IcBŽCsΞΠ4ιΊΑρœ`τΩ!ΌKνςά½˜φόϋΩϋΧG6ω3ΣkξΨ ¨ΡlZΠ5Ν6%Υ.) έΪ?ςNδ_ώΙ~ΛΣίƒ*„'xhχ)BIλΌ]JJaθγvτy1Κn—†π¬r6Λ*ο”Ο½»e!eΌ2>ύΨυΗΎaθYΩ4_1΄ k4šmŠ”*GU­;{έ“Ύ=|γ½#Όˆ" KμU6ν_ΔX}^ζA‚xf8₯p„ΘŸ4F)Cΰ]‘`Δoš©z&ŒŠv/=΅ΤSŸΣY­ϊͺ)Η¬>f£αΥ’ωκ ]£Ρl3Rv%UΩ†‹6œmψŒλ}{ω0«LTB‘ψ2A죇ͺ{�� �IDATΡ’$VΪ8RRwKBΗ²‡Ÿ)……ΚHξ:ŠCξn¦γmMRm½ >H<~lλ±Ηk+]σUB ΊF£ΩfH) (nϋoΫπ–Ώ·ΌβŸδ/σ ς€φz›Ψ‡1b cΔ—ΗqB$’; EΛα>VήΪ‡X΅‘%؝ςΆwυΨ‚ŸΗ©}Ό…šη[)ϊ<1‰³}ιJ(bžΨχOl?ρvαΡ·IΝWύKΥh4Ϋ„΄u([Ύ2|OΙΛ±£ό>£Θΐ©wˆ-Ž}7J|Y§Ρs₯ά‘iΠ1LM˜ŠugYyE1‰£’Ιc(œ·½ΛρζJα(HψΚV₯ί‚6*ίSΊ$JpM3d2ύ` QΨŽ:~9α„φγ>3 $§ΩωΡ‚ΡhΆ Ιaj₯kWDfΗϊ›<†ε‰‚ω\˜ψ;1bD‰/Žγ48ΘΈD¨ŽΫOJΜSŸΣ’MGxωόŠRZΗXn‘‘—=ι–ϛǝœόνδ ΈK–‘2ιΰ°„;K[}lΕΟEχόφ%{F=ν~ΧμάhAΧh4[M2#œ?–U_FγΟωJΜ½ΌB °”΄48ψΞ©Ηx)ŠŠw$ŽI‘k₯ηληVHœbXwB€ε”Π:ΒBΩyRΏφdς{Ύm€¨‹ήώΜ΄Qί7…tΝ΍tF³U$ΕάJWωdέδOήZ’ΙLp-R•’D\Q~U3}noCΡYΘΣΗμ¦―;΅Œ!iΫέCέ±AVWLλ"*]7½θΊ―=eΡ§—ιU/˜^ ωΐ™γž5uΎwΝNŒtF³UH) !„?Ό>>|]PώΧο7˜BSŠVΗ‘MJΒ©qζΙώlΗ�kQžί„U'ΣΆz¦ΐoΙXs‰r3ΐym#,6L °~ §h«4Q€-‘dΈκ DΧgΊργ§ξO·NϊΙOΖo΄tjXΝNŠtF³U(₯,₯TΕΊ3Φ]!O,ΊΨ8<HE»”΄9₯H€‚ΨςيŠΏΆS{u+’έuΔoχĚO-BzρRA{•IhOυΓύlά3@γ(νU1Ÿ@ 29DN ΥͺπγΧρ{ϊ©#τ.š-θf‹QJ(‚ν/ΆoΊ­ιο^CيΆIρ%™WΌe†°η ́ΎχΆ3θ¦VŒM))ήΆι]{V·^‘P*υ e„Θ§‡Οό›ŸΩΡ‚ΡhΆˆTŠW%UΩ—‡y—§Φs,°λlΛΨλ„χΣπϋ œΧ΅• ._VΈ΄«ŠίŠ1όκ&Šί‰γ¨|²½ε™βΆd?ΗrΝζ”“–ž΄ΒπkQΧμ\hAΧh4[„RΚ@\σ5Ψ«νgΜ*ΣpšμΥ6v½Š(ΙώπΑ&XAΫ!^wΪR:¬τά ΅NΓΞ蘰₯ίZ|{3₯‰N‰b6'½λΦμ—π&^?-rΪtCχ₯kv2΄ k4š-BIe(Gy—οΆόfsΌ²N£ƒ IT¬CΜSΈoŠπa>κn+#>ΐΔ‘9χ|ΡθδFŸ»3«:(*_ 3μΞ&Κί §‡°mk|§υBΔ/=½ωτί™pF³σ ]£ΡlR*γΓPψBλΉΘ-ή‹ 2.έtIWtŒ+Ο–& h=ΤΗͺίυ!2ΨtΠDΆ₯ž7κœ<}π l D›€οKm z,DίWΪ1ΩΙUΏeΑtΩλαĝ"gΚ™‘3?ύ隝-θf‹ψθ³–*§Ώω‘΄ x~ڈ'\>aοXEtw“U—•°αx*Ρ‘0¦«Μo…ΖŽ»Λΰ…m‚΅Ρ‘lq˜ώmaΰKΝ­ŽαΘΤ±³γκ{jΙΫΒ^4ϋ…Ω{Φ\ƒuΝΞ€tF³ΩH)…›ΒΧ%ΖeŽTFښN€κ&‚jGdΉάS€„=ίrZ0½’ЁV\RJγT/*™š5od<9yΫ3—Ι3T.#7ΌmΈΛF»ƒoS‚β*> S²:JΙϊ(ΑU1ό›b©@Jχ₯\A—B3םΎιΜ_ψŠ<½z½5šž ]£ΡlR*–|Ω>2Z)ήS‚Ό"« π—VJBD 3+\Αγ"Σοβ–€}€Ιί+aνQEΔϊˆξEΎΠ.™nό|eΘqν+–|Λ?κ(9tAστgΏ3ι EN³£Ρ‚Ρh6‹5’l0νŒ ψN‡Ψ加ΒIfc«ϊ}§οGv—ΒΎΉΓΘπ(ZGY¬<©„5GΡ6ΐr£ζWz^k=_t}Wοtε€xK|ΕO:{Ÿ>w―°GGΎkv ZΠ5M‘Άbωο7Žj›X"†ZcΛ‘“f ’tϋ²ϋάΣNυ―Z0$δτ­oNvή~m‘@I„) φ²κ˜ΦO Έ›h™rά΄―Ži±Ο+ήtαΟέΗ΅φ₯w]τξ—ΖŒ8Ώͺ*¨³ΘivZΠ5M‘ ΙβςΕνΖΙΞq’wU!½’ΓυGΠ;ΉΐHϊήΪJΝοΫ­nϊΆ#ήυΎ$αƒΖq~֏ R?>@γP‘Α^"}L¦�GΉcε•BΚδ”ͺ©σΟM„ qάνâßϊΦψ΅•ΩQhAΧh4=BF%Ÿ?έΧTζkB ―k]Cό%„UŽcε±r τQ§3Ε%·•=eθU!¬:'-ΓΫ"½λζν§’ύψξγ…ξ[μ ΔJ "₯‰€A, ˆϋ l ’CΩb‰•‡VVν}Θ?g΄™^=>]³ύΡ‚ΡhzĚ ΧX‘?†ž1€1+s}Z؏ Ί»ιΩ3˜ΡΩŸ)θιώμ€[ή³Κ¦φO-ΤάߊŒηŸy­7Σ»nΝƒÄύρδwOώaί‰}·σ·£ΡhAΧh4=@:’Εύ%κΕ“B‰.|Κ {ŒEΓ}UDχ°²ζοvb–¬χ䴦όŸ'¨½³™ώΆ’Ϊς9·―hwU§ƒƒ ͺCΞk9οUΣVΊfϋ’]³E8ŽΓμΩ³½εεες‘‡²ΗAΗ£ΗγξŠ|yΜ—VΛΣ-ο)Ζg&† $Œ,h9£ˆϊ_υΑ ŠΌtǐΣيw”Β1@4KϊΎΠΞΰΏ6QΊ0‚Œž?½§’½5ΉλVbYΕ^Sζ,œΪΎί’ζλŽtΝ3tθPΊuλφM$—†qPi)qΗ±—ΪΆχu―7ψJssΛG§žzκ¦ϋοΏί6MSΪΆeY;ϊ΄5›‰t€±ΈtρI",Da@φΠ³”°g’™,F�ͺXΠp~λ\‚γΛ±Φ3ΝΊφN)`SCγ„BΕε SϋTˆ~/Άb5Ψ(Gm3k~sχ‹c·_ΊπϋΊ/]³=Ρ‚Ω&$ ΎύοχάsΟ(ΣδGΓ†qΒώϋ;C†@Cƒ+V(VΡPΘ»’Ύή~9(~Ν0ΔΒΓŸUχ·Ώύέ–RJ�―Χ»£›’Ιΐq$±/ΦRObuUS΅yO+…n)+½³΅.²Jα…ϊΣƒ¬ωq1Ρ# ¦ΗΰθΒ}ŸΚ§Ά)Ž’xy”/4SσJ eK"X Ά�ΧMŽχ­qέKCΪN?ηπϊαΛZΤ5Ϋ -θš^!ceeeαpψΌšσœ}χM έcπxά šυυΘU«+Wb¬[Ηg--ζ|Ÿ―θ•––ΦχΟ8γ΄wί}oT”R[ψΫιH>\Ρφ£ΦΊ Δζy›0ΩNWIbr…<Σ=Ÿ½N(XωΣ֟ΐ± ωΞ;œΏδ‹ͺ—©„0>c@puŒΟ"T,k§μσ0}–DnŒβmN Βa;(‘ΖFg«?΅JHwͺW΄V±΄~Ϊ )·όσ›-Ϋς;Ρh ‘]³]ˆΕbx<fΞ<ΤϊλoœΨηOžΜ>“&)JJΐq\qPI™4lB!ΑκՊ•+…lh𨫋ΏΟ+**zwΚ”ΙŸ<ώψ6 ΗΑησνφνͺ,zΎ±:>Ιχžπ‹ΪΤέB*…γ€uCίMΝ(»πώΩχΞŸkε‚$ZkPwN1u§­4PΆJsΟGΟ²»υXψ;₯…u·©Œ:ΡρΩ} I~@!Tκsrƒ!P‘ψ_?š°Η\=6]³=Π‚ΩaΨΆΝ±ΗmΌπΒK3,ΛΉhχέεμύφSVΏ~`ΫŸKΰ77ΓΊuB\‰QWΗ² ŒOόώβWZ[[άtΣo^tΡ%qΣ4₯γ8ΪΒί €T,\Ρϊ+s u% C%/|z˜YR(—’Ÿ½ Q/σΊά!ΰœ{¬ξέΪX’¦©^Ύ<©„ΊcЉ—ˆΛŽ„/τΠjΟί­εŸοXλέvt}uΐ6>i:bΡ±S^…~ΠΝ6BΒ4; Žγpύ5.Ίθβέc±πEƒΛοx ΑαΓU—ŸK¦ΰ+νν°~=¬^-δΪ΅ήΊeΛb‹‚ΑβΧjjϊ½1rδΘO?ύŒ-„Žγθ>ό$Q|9―₯Ίq‚Ήά°ŒβԝBΡE?wDQtS %ΏkF)Ρεd,έυCξΧv“Ύ $‘&υϊYud)λg‘π ˆΚΒyά3>o‘υž±.+ P©.ž>A΅%–Nxyγ”Ώδ`νzΧτ*ZΠ5;-RJ€” T; j:½’"ώύ)S0v¬2 £λϋhW€?59V$›6!W¬\ΙϊuλŒ†α}Ή΅5ςζΜ™‡-¨¬¬l{θ‘Ψ‰DΒBH₯Τ./όR*>ΉψΛ_Ιk+―Δ# !:ΌΙέυk;�%U—6Rτο(Ψ�ΩAr[hΦ“‡�H’} Ι¦ ~ΦPΒ†ΙAZϋHψ Χ}2ϊΤ•Β‘²³hCg|F;URΤΣ??!:~X©ΟB ”ΣΐXάτ»Ž˜τSΣ4ΆYχh4 €eY˜¦I"‘Hoσz½H)I$$γM ΫͺjΝNŠtΝW†”Λwΐ€₯³ƒΑψγΖ±Χ>ϋ(«¨Θ½‡n©ΘwΤΡρYχCCƒΈWWg„V­rV |Ωο/žΧςξΙ'Ÿάxϋν·G ΓΔγρΗρϋύ[ΩΪ‡ŒK>νiΡd,J”Ι9EΨ·W)P’€k:―‚#@΅K*_+UiOηm‡ΝŸ]-w@%JuΌΗ{ΌΟϋ,g9ν΄%ŠέiξυΌ$Xx<˜�fq1Αέw§ΟώϋS2m‡‚ι!a€m*lά§Hφ=₯0…sπ‡β6Ε ΤΗ¨\ΪBεΝτY܊§95¬θτKW_Άΐτuυžc!‡z¨wΑ‚~ΏŸD"1^)5,‰Œ5M³Ϊ4Νbΐ²mΫ, ΥYoΆΗγ±₯”ρD"Ρ,-//_‹Ε>οΫ·ολννν«ίx㍖αΓ‡KΓ0Rξςͺ»:ZΠ5_YRΏΫn»yλλλχM$Ϊ~<z΄<lύU°Ί:[œ·m½ξ{Jπ₯„¦&δ_V­"Όq£YΧΦfΌ‹©y••οN˜0~ν³Οώ'œΊAομΙwd\²¨tΡ-fΜΌ8₯…J(Τ,?ρ{«qΚD†˜ε-#!ψFŒΏn!ψN)»r―g[θ‹YΜγ<Ξ|ζ"”%Τ"i χιΣ‡ςςrϊφνΛθΡ£=z4ΕΕΕ”••₯_�‘PˆζζfB‘mmm,Y²„%K–°qγFšššhnnN3]‚bŠΩ›½9˜ƒΒP γήƒ„3ώΔG΅‡ΦN9ω±“γ–Ώ#–#5"dĈΕ cc±Ψ₯ΤQΆmBJ)#·–eQ^^NII Α`0ύ*))!ΣΦΦF8NΏB‘­­­YΗH}έB{½ήχc±Ψƒeee9ηœsVίxγΠsΌ₯Π‚ΩeHe«ϋϋί4ΌςΚαλΦ­ύѐ!κ€ύφ“UΓ‡gyB{ά‡Σtλkjr]ϊ«V Ήv­ͺ‹Dό―z<Εσ|ο{ηόӟn†!ΗΑΆν­o'l–X6RΦΙχ„₯K(Tƒπ=}‰θλθ―Ξ싦λ9Ζ;R»Ί|εΓν Έ½™ΐ§q€μ°ά_αξΰΎΰ‹,ρφϋύŒ?ž“N:‰O<‘šš Γ 7θ,SΈ2·)₯ς.«œ/O)…”’7ςΘ#ππΓσΑ€]έΰŠ|?ϊq$G2‘‰έ>˜DθΟΎ³β;Ώ2x•••Βαπ™ρxόϋ@M¦p{<ƌΓQGΕa‡ΖΎϋξ‹ΗγAΡ©ΉmN{>R²~ύz^~ωež~ϊiζΝ›Η† ²`„°…―7ξ½χή―.\Έ0ϋvnτ·£Ω*R7·δ λqή4M<χFΗS›ε”Rι •R² fΟ>œ@ `†α΅mΫkY–WJιUJz•RήΆΆvοόω³"‘ˆAύθυz½%%%~  …~TVζπoΐˆΫτ2l6™{†--Θ•+1V­rγFkνƍjΎγX―y<Φ‚™3ϋμ‘GkKυ…φ¦…_F™ρ!ήΣNϋι7g{Κ½>χτ²"~„Ÿζ[*°š…£Γστ΅η'ήήβ™[ofήνwβ(']ߐ!C8χάs9ηœs¨ͺͺJ―Ο―|b–O€2Ό;,΄½±±‘»οΎ›;ξΈƒ•+W¦ΧLg:³™_'AΒ·pKέZ֎JοcŒ7ŽσΞ;9sζ  žΗΆjGΎς©γ,Z΄ˆΫn»‡~˜P(+{mΤ4ΝΏ”––ή΄iΣ¦:ΣΤ sv6΄ οŒjI ˜Χλ z<ΏΗcωMΣ Z–0 Γο8N°nπ–iβ΅,ΓλσY~―Χ²Ό^Σςω,#iυ:NάkšψM“Μw―aΰ7 ΌB`x½,‹τ{Ζg™ϊ{7 WΈ, L#U.ΉŒa(in9Λrί Γ4;zζBO•Ι|Ο]—r•οΜd ΎΠkΧ Ήjƚ5Τ54xίχωJηΥΧΧΏuΣMΏ]xΙ%?omz]0žα™‘»³ϋ’1χ<ΘCžΉœεςΒ§iψU‰j”υεrΟ`¦€δ?ϊώνo‰‡Γ€δuόρΗsν΅Χ²Ϋn»ΉΗοΖ’ΞΆΝηάν[RNJ+Έκͺ«xδ‘GΑi<Μb3˜‘%κ«XΕS΅Oqωε—σέο~ŸΟ—{G·#· ΐ’%KΈζškxτΡGqœτƒVά0Œ{'L˜πΣwί}·E[ξ;ϊ[ΨˆΕb<ωδ“ΖΉηž;8ξkκπ²²ΨŒ!CΔΰ#`Θ…ίοŽν.δr֏_-2#υ…€pΈch^]Ήqυjω‰RžΧ,ΛzkζΜCίz챡I)Ι‘o€ίΖβωm9Χn<Κ|.šJ–ΟBΟ}ο(¬ˆξηaΓ5e΄νλA9€Γ€ΔΌ₯ΎžίŸ~:Λή~;½Ϋ‘GΙm·έΖΠ‘CέΓtσ£,δ:Οόœ+\›+<[RΗκΥ«ωя~ΔΏώυ―τ~ƒΔ\ζRDΆ°9μφΓ{ΖX Σΐ4ΝNτ‘ΉεκλλΉςΚ+ΉοΎϋΡσBˆυJ©9±XμeΨiΗ’oγ»0Žγ ”2.Έΰήxcή€eΛ–WʞٿΏη¨ͺͺΨΰQ£„5l˜’EE)±-ξ»Ή‚‰€#υ/ΎPW―fi,Ζ|₯˜'σQ"ϊβoνίwƞΟHSxEL`^ή€qWkzΌZ>+=]_AKd™ αŒ k/(bmhΏ>αx6}ω%�EEEάsΟ=œx≝¬ΤBŸά}Ί²D·GJ){μ1Ξ:λ¬t@ZeœΝΩτ­¬ζ;oΞ‘€ –ΗΒ²¬t@‘X€ՎBu|ϊι§}τΡι.!DΤ4Ν+Ξ;οΌ?άvΫmR[νΫ}ΕΏ†€°*₯˜7οuγΫί>ΉΚqμ1±Xδp'2{Π cΤπα?b„2JJς»¬5_mr»βqhj‚•+ ‘2†°χ”˜<uγΓ“¨ϊ)¨†¬Ύΰ.ΗdΥ…"DˆΉΜe K�¨©©αΙ'ŸdΚ”)Ισθάœ».΅>·|OΚdnΫήu�Όχή{{챬Y³�Ο¨‘œtΫ½άΌχ,Ÿ―Χ‹ΗγΑ4ΝN~;K; •ijjβτΣOη™gžI«M)u–Οηϋg,C³ύΠ·fM'‰†aπη?ίΞuΧ]_fΫ‰Q--Ν³JJŒ#ϊφ΅G©ͺ†W²Όά_Kzή΄Πο`ςj™ίIκ³HFϋKΩρƒm 6Δ’ŠΦ6hk…h$^bqλΦϋ 5›”5σ‹ψΟΩ‡}άγεΈί310Έ‘Ήϋ�(--εΑδΘ#Μ8―ΞBΡΡ¦όλSΫRϋηΫ§ΠϋŽͺΰωηŸη”SN‘©© €SO=•λ»Ž`0H ΐλυv²ΦwΆvZίΠΠΐ‘GΙ‚ Ru­‡„B‘z|ϋφAί‚5=&cš&RJ>όp‘1sζ,οΐ†ώωYBΨG dŽ>ά©6L}ϋΊnj${ω*²9βš*―”;IM"αΎlΫ}F uϋΙ[š!‘, $86H”•@ίrχUV Ε~(+ƒ>•P]}Kά—Ολ;…Ά04…Ό|£vBΊ_4ur"ωžΚͺ–ŠP— ’’Λρ=†yϋΫλ¨γ8Ž£Χέ|φΩgsηwμ+ΞG‘ν=u5οŒu(₯ψαȟόg”RσΨc1vμX‚Α`'Qοξ<wT; γΝ7ίδΘ#€₯%ιφ7BˆŸ)₯ΆY–<M~Ύf·YMocΫΆ‘œŘ:ujνΗ4Ϋ0ΜΓ«ͺβGŽTƒGŒΐ¨©Qψ|βφϋBB›z₯–ΑWΫξΦHΤΣDR [[‘­ΝνŸ6”]f(Ž+²�”W@UYRPϋ@°ΚK‘Ίͺ+‘ΌJύΰυ‚ςβ*£ "9žK$…>}+ΜsžωJΦ_wϊAB<α(΄΄Cc34΄Υoφ<ŒšκΌ.WESš*q(Ύ΅™?΄"Zƒgx†σcΐν'ο½χ5jTA r[“)8›6mbρβΕ,^Ό˜E‹ΡήήΈγΩGŞ{ξΙθΡ£0`@ή>μή:ΏεΛ—3i€΄πέtΣMœqΖY–zWη“j£Rξxω΅kΧΤΤ”φ°ω|>ϊυλGeeeϊ»μ­Άελf8ε”Sxψα‡0 ca ˜ΦΦΦΦ}뽇Ύ²šν†mΫ(₯0M“Ι“'Τ.]Ίόΰp8|ψ!ž}ϋχ1B΅΅ ΊbŸ)΄RΊ―”‹A4κΎΗb¨¦^ννΠΖbnΩ€Κ‚PΪJ‚0°ϊU@E)”ψ‘O)””CE T»/ ιš&ω pΦIŠkR0σYέ™δθjφϊ”ζˆŒ‚ΙχΤƒŽΚ\ΏuΈ’μ>œDγeήΨ š`]=¬ ΖΎx+ƒ4ϋ” ›Φ4yΠΜΙL Ξ`¦4αώ³.瑇o`όψρΌφΪk”””dΫζΊs»ά`ωσηsΝ5Χπβ‹/ά§+&OžΜUW]ΕQG•>ΧΖΆ΄J)ΪΪΪ8δCxο½χ�8묳Έωζ›Σ}κΉVΊRŠΦΦVξ½χ^ώψΗ?²|ωςn-πΜs5k_|1³fΝΚkύoi;ςC)ΕέwίΝΉηž €a›,˚‡WθY{-θšνNΚu/„ΰπΓ/{ϋν·'‡Γα‰RΚi>ŸoχH$2’œ$5"ύŸ+rΥ0~7ΨmLήF †έCίR7³IrΏάϋRfPX¦ Η\²φΙίΜγe.gœ~+Ω–u€¬σ„ Ρ4·Α¦fXΏ κ6ΒΊM°‘¬ {pώFΜ(ΖΎ£/τ7 ZηΉ³”!w_y%ήv�3gΞδ駟ΞLΤmŸm!qθς:)EKK §Ÿ~:O=υTχλ ϋοΏ??ό0Μ:―mَx<ΞqΗ—*;οΌσΈυΦ[1M“TςΫΆωΝo~ΓuΧ]—™ i«¨­­εoϋtPϊ\·€ωΚdξΪk―1{φlb±BˆFΓ0¦Δb1-κ½€tΝ6'EoΫ6ΗΌχΩgŸέΗησœH$±m{ Pƒ›SJ8Σ€‘ΰ€I0m μ=† „κ€xΩΙ‚’π·§’ΌΉδŠf¨ζ=J$-ε ‹»«sο:ς zΘς” ol„P+΄DαΐUgsόκΛpΌ6Ξ9%Δ~UŽγΩi^•Β"=·ψγ·ήΚ_Ύ”bϊτιΌψβ‹ι·ž[εsέvηr>γŒ3xΰ \ΡmΓa‡ΖO<A0μ•vH)9βˆ#xα…�ΈζškψΩΟ~ΐΥW_͍7ޘ™Τe›R^^ΞSO=Ε΄iΣ >°tՎ|ΡπΉΗxυΥW™1cFjΖaΓ†νρΩgŸmΤΑrΫ-θšΝ&‹aYJ)xΰγ’K.ρ{<ž}f³•R#₯”Ε™ϋ\ΛΩcΑΔέα ©0s?=jϊ€!ά ―Bε,b† :SΈΊΛάύ{R†«˜ŒjΙ\—Q―ΚYŸϋ9Ÿ—½SΩ^¨C)Χ垰!‡Φ044»"ΎΆΦ7ΈŸ›Zάm‘Δl‹γVώŒCΧΟΑΑ†€ φέ"Ϊ^ŽSŒΫ.ΐ‘’e|ΐχ>€αΓ‡σξ»ο¦'BςŠBO„ PY€΅kΧ2eΚΦ­[—ηΫμ!>Ÿ±cΗ2aΒLyy9–e‹Εhlldωςε|πΑ|φΩg$ ό~?oΏύ6{ο½wΦqΆ¦™ŸC‘S§NεσΟ?Η0 ώοώŸόηY©e·Σ4ρϋύ 6Œͺͺ*Ό^/‰D‚ζζfφίώπ‡?d΅msΪΡ•ΰάύ̝;7uσO>ωδιχή{―­“Ρl¦€θ�� �IDAT;Δ°aΓ†Πυ«―Ύf§Ζ@j4)’s’sηΞ5^yε•uuu3Ό^ο·Η™(₯¬Ξ컀iAU8h ̞M„•ΰ5άώη¬Βdksz9Η­ δ΅\σν_π˜[XGπwΡνΥߝΥέΝΉζu(εΎlΗυpΤ΅S’Ύ± κ› ±Ε]ίvϋΪc ˆ;&3Ώ<Ÿ#λ.θθχ· ~¦_–Ρ62ΞΉΐΪεΛρz½ΜŸ?Ÿ‰'vΤί…+7s{Φ9wΡ_­”bύϊυLš4i³Δάησ1wξ\fϞΞΓΠ]xja΄··σΘ#pε•W2vμΨ­nG&©2~ψ!S¦LΑΆνNeΆ„>}ϊpΪi§qΘ!‡²G1δ9ΗΎ}ϋ2yςδNηΈ-β”R|χ»ίεώϋοΐ4Νί¬[·ξŠκκκ-nŸ&1p kN;Ÿ}&δG‰Ζ†οΣ†α°ΆΆvΑ‚ο΄ωύ~ρηk@"‘ΐ²,ž~ϊicΜ9Υ¦iΞhjjϊΆa+₯ŠUΦŽΠ§&μGΟ€c†ώ}ΑKΚ†,ΡI“t £’›σXΚYVfΦzjή#_ Z–ʦʐ§\jUj}ξnΉO½X‡Rξ:)]Q' IFΊ·Έ―†fΧB΅Bk;΄E\χ|4ᖏΫ0 y2g.ύ-ε‘Έap‚‡xˆkΉpƒΊξΊλδ5νώΎ±9Φm )%sζΜαψG·Ηwr—nΈ>}ϊδ΅2» ΊΛwEEEtΠAyϋŒ7§ωφ•Rςƒό€;ξΈ£“€φΓ08ꨣ8οΌσΗθ.¨/΅]Jɘ1c6lXήνέYαέulΪ΄‰½χή› 6 „°άŊ›τD/Ϋ1xpΩKsζ„fψ|.G!άΧκΥ°p!v]ΑƍΡkkkŸΎΰ‚ κ.½τ2©”ΪιηuΦδ'5ς™gži=υΤS»···[Jy:P›Ϋ―]^ϋއoŽž}‚ ϊ’λ&Ξgъ¬€E·Π\ξε:ΠΨA?ψ­œ}s,αΜ:­ύΜcwZύήΫ±Ž”•žŠv%\Αn‹ΈήάζΎBmΠ·…‘=βZσ‘XZO Ϋs ¦¬Γ1Λ/azβPi€ΈΈ˜χίŸ‘#Gv+vω"₯{²^)73YΏ~ύΊ΅b-ΛβΪk―eάΈqέΕ©:Rδε¬―H)Ηaϊτι”––fν³%νΛwό+V0yςdB‘EΈξbxδ?°p±;t²+™;v,7άpC·υ:?p‡σ|πΑιεξΪ‘―ŽBυJ)Ήωζ›Ήμ²Λ�d0Ό»ΉΉω|Λ²τυm€(* άyζ™‘³«ͺ0Ίz VʝE+‚O>|ό1λ7l4MλΑY³θΙ'ŸŒΪeΏ’ ¦©ͺͺ‡O‹Εbη™eLF …9Ηΐ‰³`·A ’"Ρ'M–»7©0ΉF¦Κ³ΎΣΎ;ͺ TŸES¬œώύφί{{#kθWξq:‰hΞ!sλΟ,—ι.9ε{£ŽTΑ΄¨;Β‰ΉΒέN |ΈCΠΫ£IQΊnψh<i±'`νFxξξ1:θ ^}υΥΌύ­©Οιs. ιv° •R|ϊ駌?>―ϋ8…ΟηγΞ;ο€ͺͺͺΗ=νPJ1qβD °ΕνΘέ–[Η¬Y³xι₯—0„β©ΫαˆIΙc >X°~ώυ<¬ZίaŒ₯θίΏ?ίϊΦ·8πΐ)//O?όtu™~ΰRTT΄Uν(τ °aΓFŽI{{;¦i.Ϋc=¦~ςΙ'hΆ1jΤn?ΨoΏe· ’Ψ\-VʝήΡΆασΟαγEψ‹/Œ—mΫ|°ΊΊίσ+V¬hΤύςΫ—ΤMnςδΙ₯Ÿ~ϊι ΆmŸ/₯œ˜iy&μίωœp˜ΫΗM*ϋ˜ΘvΧΦ‡ΛxτyΕ43€šŽΉnς[ιcfάp²κ [|2·mχ:D)Τό…‰@α˜|θQ†T~Θώ{α†Ο₯ wyΚBΞu…§Ξ ςŸg―Φ‘:^Žμˆ~'ά€ΉHά΅ά#I!Η:¬τ”¨Η’ύλσΊΗΎε–[ΈπΒ 1 £G–h!«;Ρ¨――§ώ] ϊυΧ_ΟΈqγzμRίΗα€Hύmi;RΛωΔοφΫoη?ψBΐOƒ[/’#7@ζwž:΄>[ xώρ4,]}Ξ¦i2qβDΎωΝo2qβΔΌψΤ»eYtΠAψύώ΅£».…άλ"₯dΦ¬YΌόςΛ�”””ΈqγΖ7ό~χ_Σ%Φ_¬\8x0$»L6 !ά>9Γ€Ρ£aτhTΚ9Jη(Γψ’‹.ςπι§‚κjkaK‹υTeeΕCoΌρζ‘C‡JwΝϋCt&lR[[[³iΣ¦sMΣ<G)U›Y¦_œqœωMΨ} λN/’ΛιΏΧ ‹΄ͺfη}* ₯xμ‰g ͺ·9bΐΙ±„SB™)˜"uŽnνά:rTLelKŸΣφ¨Q(a&λ˜RqςIΗWίβ/wίΗ7φ[ΕΐΚ<Φsς\: 2κΝ(›Ϊ€rΞ%λ― χ<{£ŽδqR/Σp_ ό^Ϊny<αŠv,ήρJYθ±€•ώl:Ώ`πΰΑέ»©2©εBVmWAf©ύ*++9βˆ#γΆs1bγǏ/(2…,ς|δΫ »󞢣P}�C‡Mο·βKά¬ ™ΏηΤbςoƒμ^Χ|™λnw,XπόεŸπψήyηήyηt]ƒζ„NΰCΙzλΣ§)qνi;r=έέΫǍΗK/½„BΦΦΦNBΜΗυ‘iΆŒš0wΎυ-J»xΰέ*R7[Γp3x-_}d­_ΆΜ~΅’’βώ)Sφyω±Η³½^―L₯;Τδ' …˜1cFιβΕ‹/Ύη8Ξ€ΤvŒ—ž G�%ά?“œ'z‘ySΘ΄r3–ΑBΤ\ˆ2ϊ€λW†Α³Οώβ έ‡¬δ-©·Νͺ#ΧΘ8VnŸx―Φ‘€Κ3ΐ?"£Žμ'ˆEK–±ψ8ξPΥό—ηxYυη˜ΜΉž„\:=”t*°mκP bNΎ† „«Ο‡>–λŠ—I«έq -Η_O†οηŠx")ψΆ η\ —Ί7τωση3uκΤdΩ–hαs)œε¬«mΛ–-cΚ”)477wΪηΠCεΗ?ώqΊ«©+ΧvO,θΜe₯ϋν·Y=V[܎|u�,Z΄ˆ±cΗ"₯dϊDxρ.°Τ–η�˜°±ώρΈιnXSŸ½yΠ Aœxβ‰ός—ΏΜr·χ΄…Κδ{Έι¦›ΈβŠ+�€β·‘Hδ =|mλ1nΈαϊυMMΎM½™΄'u“’MλΉχή0gŽ]sΥUœ|ᅍΟν³Οb_\δL›ζ‰”–š³,σšššηž{Ž%₯μφG΄«γ8΅΅΅^Σ4ΏWWW«O>ω€Ωqœ_’œϋξ Οώ’ο‚σ.|π Μ9J-7΄‘*2¬<:¬ΏΤ:‘QFxϊιφA¦^†R5{&u5w=YΛϊζŒύΆ€ŽT‘½.]&sή¬Γ‚8•α wΊ‘1£F0λψΛΉλ_E$r nΩ”ΰfžsκΌDφΉ‹άsΚx8ΙάG ?Ύ>žΌ-’ΩΆ₯`};Œ8ž|ώπ7θwΜ[δv‘y,πz`Ε&},όοcΈα>s"΄'άΙ_j*a`_7O}ŠΤ bΉ–xW―ΜςΉλ»ΪδΘ‘ΌφΪk„G)•9)H'ρN•Ιά–[oζΉd–•R²Ο>ϋPQQ±ΝΪ‘― @cccΊnΜ­όΞ…�$τ+‚‹Ž‡/Ÿω4ΏχέΰfY¬«ϋ’›oΎ™’’,ΛβΐδΥW_M?uՎBΧ3ί5I]Λ l`fΫ`\xαΕ-6$ΦG£Θν­›©›‹aΐΐπoΰΏδΉοΟξόώόσΧ―)-½+qΤQ¦3hρe0hύ9 ξ»Χ^{Η顬I;‰D₯•••΅†aάišf{]]]ΜqœΗΩ}τPψλ ΠΊ� `ώ½0{brΨΧ5ΛΐUŸ‘γα>]&η»W TpξTZΦ‰Jή9|ΒΰœσΎΗΚφoρβ{ξξ›]Gζ*•gΫ =­Γ?™ngJ˜;Žοή¨Jό~ζœύ#ξ{² Η £?2ž6²Ο!ν9Θ(’r‰gž‹Κ(—v.(0{2η”γ™}ό΅|ω.y"HSn΄σfΤ±dŒώ†›P oάy%μ·GΗοηΕ0ω$7ϊ`ψ@ψλ5°η7~i—ΐΐڎ‘ϊϊϊτυƒl1νΈΦͺGθ™‚ͺ²~ϋŽ;– 60mΪ΄¬}?ώψcΣϋδ sζ±s]Ε…ή}>3gΞ€oίΎΞkkΪQΘk°rεΚτrίͺ!Οbk~WΈΏ­Θ KsΖ7α†K _₯δΝ7ίdƌx<ϊφνΛυΧ_Ÿ~ΠΘ|εΆ·ΠuΙlσΊuλΛ»νΆΫšX,¦­Ά†išFyyΕ’Ά6±S\Π΄•’ ΈφΩGg₯j/½Τ>ο§? οΈγ>iŸ;ΧR&Xν••ή—ŠŠ‚§:€V)ΥeΜΎR ΫΆ { !œ†††/₯”ηϊ}O9VΌ�Ξ{°ψχ°8ηΛ½|Λδ,§Δ1λ?½έ@ψχΘY'²¬b€bί)>ώ\}Ι£σM€λ:2ΞQ>ο­kGκP ‚γ;iŸ‹¬Bn�RΪΞ§Θγα€3Ξ偛ιŒσ™utœ`Η9e^—ΤΝYeΝ²Π3ΧΚA(Ε#†rξ—ΣΌ€»žNt<Pt[‡‚OΧΒΤo»Qμ�ύ«ΰO—CI|²άέ畏απsά(x€½Fΐο.vχb­;ΪΕηΏ™ΠqM_yεχZδXΒΉŸ ΉγsE"³/6_ί­‚`0ΘΌyσψόσΟΩk―½�ˆD"ά|σΝYΓjσ w‘ώσΜe―ΧΛ~ϋνnj3Θ ΪΪVνΘ]/₯δυΧ_wΫLŸΰz7;vάFΏ«T;Re”ϋΰςSaΝ³`Ώο< 3¦B(Τΐ/~ρ *++ρω|œ}φΩ¬Y³&«©6Š+ΘΌήo½υVzϋŠ+ήEχŸoάί€ΰβ9sΈeδΘ}:='σoΘ² ‘>ϊHΘO?U«[[ύWJ<rκ©§,ΊγŽ;γ;sΏΌRŠ`08&‰άμ›Z_V?9 ~|:ψ’7Φ”εΥ—\ΰ=υ‘Σφδ‡Τg‘Q¦γœ�ο θ{…R!Tς¦!\k5£3W)Εη«ΎdρΫχṕ*}ΐnλΨνθI’Τ\„ݞZ/Vy§ΰ)₯Pΐ > (φFdœKwueœoζΚtRΫR›2TΏ‚π€.wGY!xυυω¨ζη8dRςλ(P‡R°1#w‡₯ ¨‚χ#ΧC&„;ϊaΠΨοD·/`Μpψεχ:fΏ ψ`Φ4π$Yα‡»QπΓ‡gΑ‚YΣuΊηRxXWο™ϋfR¨Έbxο½χς›ίό†ͺͺ*ΎϊκΌΗ(„”―ΧΛΠ‘C1bDΦlgΫ«---L:•%K–τΓ'†‘eΩΏρ­ώ]ΡYΤ ώv“šπ³[α―r#Sν?ρΔωΓώ@uuuΑ6f.ώωηŒ?žH$‚Οη[tι₯—N½ξΊλΪzτiΊD$/ψμΩ³yfί}Ω)¬τ­E)Wδc1X².muuβyΗ±ξ>|Ψλ‹-εφ™mOΗaȐ!ΥλΦ­»Ιqœο΄σʊαϊKΰ¬cΑλρ—ΪρǜEζϊŒΏΒΜ²…ώp;3χX₯ί€’ύ@Ɏ›XΪPiΑƒδM ψοKo0΄ψyF*pήΫ»=©PΑ)P~LF‹pΫ(Dς!&ωΰ’y,1%ωλδάΐΞ¨#ηŽΩι†šρ9}:.u�Α)PώM”’ι»kΗχαxSs+OόύvΞ:.Œp:Χ¦ο/r—ƒ~ψσnT{ͺ|ά†‹ηfŒwF»Ϋ.Λ~H’&ν#ϊ'OΣ ίώ <ϊ‚ϋ;ΈσΞ;9ϋμ³³.}ξ =s}!—m!!,dΥͺC)wŠM›6 …ˆΕbιi|-ΛΒησQZZJUU}ϊτIgsκΨ–νPJρΐ0wξ\”R{<v+‰mό»ΚΨ'λο­u�΄JψυέpΛ_έ@Ip½W\q—]v@ ΰυΊός˹馛�Χ΅ΆΆώβλ’)ΞΆm`fΦυq€c [{D,γςΛ/<oήm«Ž>Z’σ»άeHύ( κκ\k~ιRγέ–ρHUUΥŸ}ΆxYII)½ωΓrΣ4ξ"™ΨΕcΑχO…kνB/τĜ΅=Χ$ΝٝŸΜsΛδ­C θΒ ’2σ«fκ|CR–Ε_ώπ[Ξ:ΆKμνθIJ ͺΞ�ί°΄"³χ†–aIeZξ†Α#=ΗA{ΌIΏ’<—(]GαmΟl½ θϋ]”oˆ[ofύιΗχˆqΰή?έΒ™ί 0³λP.»nΎΗ]opΝχ`ΤΰŽkjpΛƒπΖ‡ξ²Ο οb7�.Χ²σ{αΘι€#ύ?YϋœδZm555¬Z΅*=ej!K=_vϊšΨΦέqv…:ΐNVWW‡eΒ{Βή΅ξ…ίfΏ«nΆmN XΧ \~ΉΓ³3rδH|πA¦L™’ΥΆ5kΦ°Η{ΠΦΦ†"|ωε—χ½ζškΒ»r„ϋΜKfΈϊƒ½~Ο Γ˜νσψά;½RFκKAΒNΘΈ_”p7tμ½Ούϊ…ψ杠΄΄4X^ήϊεάΉͺ’»vzΠ†kσ +ŸC¦Θ77Γ₯‚?6λΦ­3ώœ3ηΤΧo»νΆ.žΧλ-vηΟIk€q£ΰο7Γύ™ρtLώ'ξN.Τd[3ŸͺEr]–«Ž?ΌΧa €~’T<Ϋ"$Υ‡2Ž“-4―Ύω6Υ泌Ό΄£GuxaΐΥμ΄ ηΊΪsI ©�ήYψ4>Κδέ;ΧΑgοΌγ­(ΞƝέ=εφ{ιpι‚ ˆŠ ’ ’h4V,[μΡK5jή_bβ›’)Ζ^σ£FΕFbD ‚PŠH‘ήnΏηœέωύ1[fχμΉ\:(Οηs>»gvfžyfgŸ2σΜ3z›ά²ήB L¨Ν€]nr1zΒο!}a_ŸΙπψΓα’ΣjC–ϊGKΰ€Sƒ6? .<;ΐυρpλ#A3.<Ž;4Τ$„^UΊcΐOο€?>ͺž_rΙ%άύ!F^Θβmim½΅Μμ›‚ΓqΈβ ξΏ~�~8ξψ1‘wΉuΖUXQ.d‘o )AšπŸαάλa™λpiY7ί|37ήx#–eqμ±ΗϊGΔ&“Ι«ςM΅Ξ‡]=΄Σ’UKžO§Š†ϊ]¦[_Σ;VλμζlσΧ6œ»ς©5oYfλΆ‘ €λϋiς™gξ{{μΨڑ߈3ηλ»X€…{€TB>›…₯KaΖ Q·`5£©‰G{φμωΒ•W^±~άΈ«œMΫ2€ΛŒ3žΝεrC,ΏnΎRΪ!&! Rӈυ—+€ϋ7’^kr+TFz›Œ£β(Τ•gϊEς¬εε«Wσώ›wqςα2―M۝ŽΦΰ(>�QuR»&B‚H§];ιDΈυ2η 6|ω8ΓφΣϊ$jΥxʈχ™>rBνrDρP5 €ƒΧš€>―=o•γ«e˘9ι>FξΦcΒργΰΥwΤίΚRψΛuΚΧ™φu…_«ϋαχγ‚>σ›€ε/)‚οl§’ie₯0[=μ±Η;v¬ίŸAω‚pcΧΈ: Ρ]ΗSO=ΕΩgŸ ΐΐ>0σ90šƒχ°UΖ„ ₯o!½Ύ ΈόVxϊ%O τξέ›ωση`šζ ‹-:΅ΊΊšo8aΘ•ƒ+WΦ,₯΄¨xh΄c$.’ρΊ‘ώyΙeVohΨpj}cέ䦡|~πϋίί–YΈ°vAS“Ζ<weΠ>4΅¨π¦­ Ο"–=zΐ©§Κk―Ν~ΣMΩ‡ΗŽ»fαΒkμcŽ1³:σS)λΆΚΚΚύ9䐀”’l6KuuuW!Δ'οΏώ\.7΄Όώvdώ ΏΊξKσ¬ΘΈ—˜§&hω‰ζ—‘2šζ·Ι8H@ўn?ˆpFα₯©Ÿ$²WŠΛΛY_SδΏƒFGkqBJ;D‡Η€|*D˜‘‰€ώš υ”Ί'Ώ{1ίu%ΓS,όhuξ8fŠΤΪV΄/ΎΒζ2h“Χ^ίI=ͺ«iϋ³Ά€3Ύ€7¦xF€’€ϋ…²Ά?šs!`τΘψ~Υϋ±¦–¬ς: Dόλ^θΦI=Ώΰ‚ xζ™g‚n4ύκ/ΩDzΎBqœέqL˜0sΟ=Pϋϋ_Ύ_ζ[{\‰€Ο‹θu3pθΰq‡ŠόγΠ<nΎ,SϊΒX›J₯.ιΨ±cZvMΨχβ}έΗT?ΩLݚʊ‘VΐJ¨Ÿ™00,i LCψލ €+{d¨“V²]ϋςφοt¨θψΟ.ΫΏΈ₯C‰ ―B)ωdέΊoΘΦ] λ=Σ„²ή7γ¨a™UVΒa‡IλςΛeοnΘύδškΦΟ<ꨩͣG ™J%κ—.]ΊXJΉOE)Ότ�¬ΞŠͺ&|9ͺΫ·EδcΡ>&©§Ή ώGΣήΝΒ‘μf[ ‰χρ MΩσ˜šή&mcWŒφΏέιh £ ’Υ!νΡαΡ*₯¦δJa0wήWτξΤ}·^B:…–!TFο7£Rέ}%& A½ΏξUx Ϋq8dΨήΨ€$<ψ¬Šϊj«Ω‘ƒƒuN€²Τ_ž΄§¬†ξ«5Ž˜{Ԛϋ¬Ή!I… Z2γYθP₯όEΞ:λ,ž|ςΙX§xNό>ζ–ά’e’εwEΟ>ϋ,§vΉ\Ž6ε0σy¨. Ο­6η‰ΝΏ‰8Όο%Z‡`9pΛEΠ8 ώ|½ςΪ444¬(//ΈW―^»tD™œ“γ…)ϝΎΧξΖ¬ΡTΫ‘SεYΙ”a$’ήΟJ¨k2i’Hš$R‰”ι>˜–ZJχ8¨ίηΎς¨~ΕιβΧΤ―Y:ΰ’~έ£γΝ ›ΝΥΥ]f­Z΅OQ‘@Κb.€βm hiIΖkCέ–·AςS¦ΐψρΰ8§*ϊڷể…^υšΖλMkyιyižFΡ’}z<f3~Ή™8ŠφœΠ€ς„pΰκΊ .ƒj¬©₯²ΌμLGkp€χ�‘Œ₯CΥ'ƒΩχκGƒjus)+>:"mΡΙρΗ‹.ϊΟΛ#�‘ήDΒΗν?s/τΒ{ zTW³h₯š%yρ­€ό½{«€0žR$Q‡°|2/Θ3t ΦžPηi„ΰΡ‹Wh΄h›„9/Α€=”ΰ;v,W^ye(F„.μΌϋ­;λω •ΥΛμ 8ΗαškaτθΡ8ŽCžπΕΛΠ.…όq΄΅ΖUL™-Εωi:ΩB€)aάP?M-;£‘‘αΒ/Ώό²Γ. Οκp⏼fC‡vmo-«LY‰„•TΏD ‘2H¦ Wˆ$΄ϋ€'ΨS*Ώi „AΈσΨ°i JŠ•6ΞηΟξpPœP7�LΣt²ΩάΧ«V‰†mκŸ €bk-Pγ^·Ά€7ΠFnΏχ“.ξ,› RΒΪ΅π›ίΐΔ‰*νœ“U8ΕσC£IDΚω–b„iz–—Ο¨eπίϋ(ύι2yχ"’Ά©8�Q΄Ÿ+ԁ>₯ξαO³{yf}>Ύ=u}‡ΠΡDρΎ‚Mώ:— HWΕ€{ΫS8젺ЌΗυrΒ+ΰ)(ω€Š T0wJ'šWD/—TΟ Λ£„OΐΊ *ξl1ςŠΟ^Xπ�C¨Xνθ(<3Lkˆ”jίϊ¬yΚ)NoKU>|.₯ξ½χ^ϊυλΗ’%K I{γ֘γόTβ¦° ΥΉ³αRςυΧ_3`ΐ�ξΈγ�Ξ>>~Ϊ¦‚±“-WϊϋŒΙ»Ω8tt2@‘'π$$όζ2X=«8@IΰqΓ0fwθΠ‘ΓΖΞΈίΐvΚO(νΣ}lΧ―Ϊ–΅ωgIIͺ΄¬2©,nW'S&‰΄ι lSύΧ…ΈfΑ'4αŸHΈ‚έε?^:Ψ9‰™0H§“ιŠ²·»ŸΫyίhΔTԁ‡zΘΒ΅kEMΜΈήϊ�Κ¦λšQσΦπ‚xοv©ύΌ|ξoSQxο=ΈσNhj‚6πρψΫΟ5‡7½=Z_@‘}dž{χΝ« Ά¨φμη‘lŽD€Yΰ�ι«phQ°|i™|ρΡdϊvίΑt΄‡‘F¦z‡G‡χOFzLJ_.^Bvν$φθ‚oρΖA¨mR;[ζ΅K‚0ː©nΑ3< ˆ¦ υΎΤ‚dΞ|u*š½Ί„ϋEXΊRSzPΑfό˜‘)h^_ ΛW‡Ϋ�`ΪπΘΝπϊCjΟϋόωσιή½;·άrKΑ°ΝΡiι¨SZ\ώBy •ΫΡ8lΫζ·Ώύ-ΥΥΥ|ώωη₯ΰ₯ϋαρ[ΐcOxε ΅Λ»Ω”qεεΩΪ8ttζΫbžͺLϋ?xώ.΅δ8N•+W.Ά,λΔ–ήǎ)ΎώGΊwΓΏΊ}ΎςŠsgœnv?Ό*Ϊ₯°’+!ΑœΚΦΙ”~Ν£YχVΒΐ05ή"οΝ4;˜¦ •J₯_πƒ=Ϋe²ΑGn�ρΒ /^Ά,Wγ3m (Ey Cΐ-α―­U�� �IDAT!_ΐ·™-…ΦΡ=΅QOΛυ­Γα}ϋΌφšJy¬ψμΣ90π|’4m[7t}‹X³…ώρiL6ο'Γυ„x©Πpn*Žβ}δάΊ χk-z–»‡ΓEπΚ+9κΰLΩŽνAΗΖpHEϋ�2UNq¨mμyΟ/[½†χώύ§ŒyΛ:žE£—ΧΫ ¨BŸf.>·roŒω ‘ΉΉ Λ¨g½f Eι O½ώάP΄±ΈR©0―oB ΡlšπΩ<Β!o π½l˜ §­ρ‹_PRRΒψργÊ‘ oŒ›βΞλ«ςrRΫQ8�^|ρEΚΚΚΈρΖ8ιHX?Ύ{�D[i\…‡VΗ‘—“Οϋφτ±uΚΑ°d"τTηE&&‰?e2™ό vHi³ςεβξM“φόΌ}uίω©²Š=E2AY±Eͺ*κ€I2e„¬ρdΪύiΣλΙdίκΊ W‚](g:ΛγOΒn›mLKP\TΤΕ–ΩΏκ[ͺ ΡΘf™QS³γ’(k=:�t&βy©Χ }kΌG™(΄„Γf£λκž0Ώηu,ΐ—Αw+‹$”W�h ’gyVOθΏ–ŠAϊιš‚ 5…Α£Ιϋ Cυl*’ξγζAΕ!.–2`ΰB₯Ϟ·�jή€o‰±#θh @œ<:€ΐχχλ QΟζ.\Μ;/ίΕΩΗεςPΥpxχθ4‰€έψΧ™¨D ‹φAβy€¦έδε 6ΐόy ιΫ­Ρ?XΤ–ΙTΜ–Τ†ζ�C2‘ςωΦ\”ŽΘΦm€k sΣ†g«&Γ{Ass3£G¦²²’'Ÿ|2΄Ύςq£Οβœtˆ γν‰Γqžzκ)*++5j ΨV½/ή έQV„ήvΑ–Ž«m‹CŸΕЇB4e΄mΎψœx„z”Λε.**zό裏ޑ‘K₯eυ›έŽoώο 5m;ψ*Y^΅§H'©$-ώ[ŸbV6ι{²{kαΚΞ οTώΟJŠΠz»ΊΎ£œϊ‰` ^ƒζFΓ‚’β’γϋ_ή󬜭–*όΛf³$%_¬_Ώi(‘ξξ ™Xzάη­πf€‘<:]θ· Τ…€„+Τύ_n‚__‚ψ! QλΙG)CγΊE Sη!‘΄HCεd T΄G’Xm}+8― άtί©‡ΐ kήW‹™σώc?LΖΦΏ₯tΨ2ΑΣοΰ•©‚œΜ"›ŒΓ¬@$»Ήy‚xkώΜƒŒΦ!Α0ωΧΛo°ώΛ‡8σh;x‡Γ“‘1 iώPΦξ½υΚΌgF1"Ω+Θ©.HθHΌόŽa0νέΙ4@R₯,šΛASŒΏHYQ0NššUμ…θ,H^#"`πι\Τ7'Ι{‡ή}»L –Ό ‡ξ555Œ;–T*Ε%—\Bmm­‹WψΧ8Η³θ³Bε…,ο9½m))% \yε•€R)Ξ:λ,jjj²|υoψδ)hWξ›_pΗμVWΫ‡7ˆ|6©C–7S)ΤrΓ „‹NWΟlΫ3qβΔΗ¦NΊέδ‘wTw―K«Kηφχg§μgW·})a&Ϋ`Α‘.αΟN’N _0GwR[?Oz{ ―™' Χ·Βίβ¦ξ–&Τ½ώ”RbηrYI"aιTϊ7Ηά|d:kgn†SRR>w‡n]K‘¦α£ cξ½Ρδ Ά£ι>KΰeBqL)š/F¨›&<ύ΄ 4ΚSσ‡ξΰΛΣz#ŒΨδBΣ’e€ΦϋοiΏ~>νcΪ/€-λu@X£ήΕjΟ³J“.NΧ2qΣό« œζώ3i*+>ˆSGΨξ`Ϋϊt˜©^œyζXΎ{ϊ-,²/αώηKX[ŸŸΏΥ8Rύ"ιΞŸV!UD6Ώ―\š/_ΑΓwίΒ1ϋΎΓΰ~ψŒΠ«V?]{†~‘ό€Lοf˜4œ>nW‘’*ȗwΖ̏سΛŠ-hΫ.Μ¨kλ5FλΦUYΰhl†z-…>[Ί %¬^+Χ†iŒώΌΎκR“„Ϊiπ£sΐ ΗΓ?Lyy9•••άyηΤΧΧ·h-Η₯Ϊ֚zΆŽϊϊzξ»ο>*++)--εή{οEγς³ fΌχWθV©υΠξ τΥVWΫGh@Ο«ρΦΈ6θΌΣpΰŸΓqξiΈΉ\nΜ°aΓnά–ŽrŽγΰ8ϋ\Υ£ϋ€«{ά=δϊ½;Ά©ͺ}eUΩ₯a8ΩNsΩЌΣЌlΞβdmV4HΎhΆό)rOHη­“ϋ^νfμΪΉgέ{Sμ–ehΊp¦)0L‘)N‚ζΓ%{.]? R³ΠsΉ©TjƊΫΕ1(‘ž ΜMβ8K\šƒrr«uŸλΒZh£#4ZodMύ£`–{°Εwƒ_]Žš¦—š¦ͺ‘ρn„–Θ½,ΓZsΘͺΡσδA†΅ά-6‡€’}kΒͺ½"nαjΜeΉοξ;Ψ·Σ+ Έ 鐨£M,H‡=Ίuε²+―'S5Žϋž-¦9Θί*ˆβ€gΉ}₯*Y²rχέω[Κξα’“3€΅±ο\Fθˆ<χσΘόtVΐ=*5θΓ ρ^Βο·΄[φ«₯_σΥ§/pθ~ Ο~{ͺΈλ^WΜωJH©’ΒZc-ßΥΡ!γiς–ιZι^hί\‘ο£Τ„;‚¦i0u1κjk7n₯₯₯€Σi.ΈΰfϞνOΛ·f ™ώ,ΞΊnM=-=Σ…ύ_|ΑE]DQQ₯₯₯\qΕΤΥΦpψ0χUhžχόΚ΄@"‘wޚΎΪq΅­q|―Ρτ�A$L„�‘…'o‡ΎO¨”ςW;vά§#ekΑΆmΗΑvln{ζΆδήWτμ=πΪ·ωYU‡ύΟ~vEYωWmΚ+―H₯¬΄•€’‚?n2z’ΰ“UrM8MΘΖ 4e˜ΈΞτ§Ι}‹Ϊ³Τυυr}ۚΆfξ sοjX–ΐLLΣΉŒΖ°”@Ϊ‹•R’iΆU~ΣΊrΑςΉVτέ΅λߟ/Ο>›–‹ΆΨ¨=γΊ`φŒIxtDΫ. €ι‡ΓYΩ άuΤΤ(ωΙ‹°‡fύxkŽz;tλXDΪιυ­^F'Αo‚lΗF›„#ΩΪ_„ΔAD+Ρ*Rb Α³γ'Π½|:CΥ2τΡ!%`ΐoBΊ:–Ae””Ce*iDυ΄*+₯ŠŒ"ΓΰέiP³δŽ=4Ψ&Ψb_eΠι'*ƒtιςΈ™Tώ‘oΎ9‰υKΓ¨‘)O@…_o¨N/,f(έ»Ά!Z^LT!;ύ!΄ΣUάvJ8ο)νCψύ °lυjή|αNƞ 1€"MΓ€aΞ—*O―jψ󏃣/‘*β˜›oψaϋΑOΞUΫΫτw¦5%t՟K©ΞΞnWτΩ¦τ•χYόΏ»ΰρͺYLΣδδ“OζάsΟε°Γ£mΫΆώ³ΈmbQΨ”τ8οφ΅kΧ2yςd{μ1^|ρEtΛ1„³O„[~Υe ΠΖήyτΩΆWΫG‹ΌΘϋΓ«υY΅Ϋ^˜g\­>uΓ0&ŸvΪiGŒ?ΎΕΩc)%ŽT<μπŸ +ŸΏxΑήfBž°’ΗHGM&“Ε¦aU’XI#OαP·"@‘Ρξ²+ͺ:€°ΒPtx΄i CύΤβu@Έγ€t$Ά-qlu΅sjϊάΞIμ¬$—sΒΧ¬šZWSμή½ϊΐ%`˜‚6Rd²Ή¦Ϊ†ΪƒCM9ς¨βΩ³ίyηK³δ½0οE䍎ν�¨iτB|S`SΚJ ˜³žzJ%όυό½Ηžeθ .O–]«υ˜p J‡/k)ΪΗΒSίFqTœŒ(=0ς=ͺ;oj½1“αΩρ/»έ'κ ςMΒΡΐΪ&tœp*TWCc#ΤΧCm­:8§‘A)T6¨4οy.'¨,KS^άHžΠ©΄ο=ΪCχvP^m+ M%”'!Y~0²jHα8 κx{⻬όj2'™£]ώY�‘ulούΖυΉ›z‘όΊε(‚¬: a5)[¦Ύ?ƒ¦•/pδ(G= Η/[ξQ%-ώx tlΠešpΧSπŸικ: άδΖzΠtΪVΐ‘γGEά’Ύ’�Iψx>όαΰΕ7UΘY„”••1lΨ0† Ζ!‡BχξέιΨ±#%%%~žh™θΤ9@CC+V¬`Ρ’EL:•wί}—Ι“'³aΓ†<Ϊˊဣΰ'ΐώ}ΜfΌs–χՎΔ!υχA4?(C8ΏΧVYOYσΑ0Œ\›6m/[ΆμCG:X¦…f-ϊΜϊξΝGοis„i˜ί5 qT:Y”vΫ―&ž4€†!hΧ%­ΖƒŽ˜q.<˜ί~a ͺ:$•ΠιȐEm˜žPΧ+Vέρ„yΞθY%ΜσxΦ!—σώ«4ύY DKͺ:€NLύ4DΖ§Ÿ~l rΰσγΖeOL₯Z˜zΟ‘lN{‰Ρ7ιΊ)?½¬šoiTθψ h‹‘:)π\«Γ4αΙ 0λs•τΪΓ0r φž΄AŸ§,D>ŽΈηymŽή·τlSκ,XO:³<―lΓΰ½χ¦3{ΖŒΩ@;ΟΏa“q΄ŽŽ5Ν°ο©pΒ)J¨·fιG·…~¦»‡3—SŽ^MMPWό<E‘¦F) υυΠά€βœw¨‚Ξν‘² ΊvVΣ«Tze;θT+ ‘ΤΪ`ƒ°…%4†cȍv£:ΖυdͺJ%‘R„#oΞSBC6Λ£=ΒχŽωš6%1]*aΑtšŠκpμ!pρ¨pΏ-ZΧέ”=D8axxhE?“<eΔM°8ϊh[€ym } ZΉ Ώ―$`€mΒΜ9πΜ›0ω=˜ωΉšaΘϋ„EΛ{Μ[“Χ4‘}%\t ΩΫέΡβ)΄›CG4ODθm•ΎΪΞ8bω&ψ£3;2’?Žίϊ8όόΟ`Xe}‹Η·^΅<a$ΎcΡ'™HήΦΝ<6•δ.΄ι˜RΣΦ‘Η"ΎH΄^_ΐ«ΰ.m•@G(!νm1³ά)sΓ΅Τ½)rι€γxΒάβšΰΞΈi!α­ χHšc»^4J+””&hΚdž ΅9“Ι=zt»mτθ•WWUΙM[KwPB>KpYœΐΡ‘`*$Œ[ζQ…F`!Ρ²nšaΐΫ“`ς 5?|φμGŸ’‰cͺ:‘iJο‹Σ~%Α–ͺZ3αͺƒ•p}-βHtƒ—ƒΜA"ΑW‹3ι?ο’Θ~ΖΘCr΄/'8ήusq΄’$,­U§v ;βμ†θŒ‚αugO9π„ΖFu]Ώ^)ή―‘^ΜhW‘ΟΪTBϋNΠ½ƒϊ΅­‚Ξ Ί΄/ƒ’’œ.ƒ ‡Θ9D:ξt°ΟqΤ²Ηψρ€GωΥ²‡DŽ~§ ‘’Έ]σ'Έσ1W ψΛOΥ9ηή;0 ψύ£πώgͺ\IξΉnΤ²Έo$4 yά‘->(hPˆ‘{}Kώ}ήηΑ–ίεe‘Š€ΒPΛ‹ΧΒ²ε°b Τ6Γ†Zυ[―ι©,ƒŠR¨(ƒ4tj ΙΚn¬\3€Υ_Ο’"ύ5ƒφΚΡ£#ώφΔνALj#ŽFη±]σFiΒͺ‹IKΚψΟβr>YULCΞΐΤν=Ά„Σ»;œήΝ¦g‘rfΝΩ³kΰ― “L[oaκό H™””'όVδ-½θ\“ξqΊA2ePZ™ΐ0Τ ™'Π}―tΟ©Να:¨H Žg‰ΗXδϊ5O€gς-u;η9h %mS89ωq¨©MMMTVVŽ9ι€ζΗ ΘΧV7$ʊΟ�QŸ†¨ΐ.t%rWžH^ΘΥ­Α3’…€wށ5ΰΛ%πΑ?‘WiΐθόμϊG’ pΠώΗΰYtΪ-‰(ΔΤ―ΥΝS‡4ΰ­ΚψzYŽΎ½ιΧ*‹)8έΌ986•€•ΠDs΄oΞ³«@ΤΨσhπvΎ8ŽϊεrJ)hnV³ήμΑΪ΅κZ[ ΅5ΗIPV’€΄Δ"—YΟΐώjζ _7Έό{`ζάώΥ”*o,6ν†λΡ}»ΑοΖ©―^ž upι­A{‡ο׎ ς„‰sq ύ›qu΄j₯7>2Γ™χ-„Φδγθˆχϊ8Μ–ΰ 2.·ŽνAΗvΗƒTκιR νf[πακ&}]ΑG«Jψͺ6‰-Ύ7—Ξ{#7Ά„ {ۜί[‚0‚†H™s9™³q²9~Ή ˜χj’~Ω’Š–\θ•‹Hσ…v‰HυdΚ €άB˜ei'«‰ΐs]sdσΦΛ[ΪYχ>,θνXžΛJ·%Ι€A›Ni[…šH§Σ�KV­"#ΙVΞVςVOhi%02SφhW½οβΉˆΉ/$ΜγςΒ‡S‚aB"Ue°" kRM j'1‚έΝ]ϋΦσ{• "8wQ¨B½Ξ˜2qH8jP- θΘ{η[Šcι@@‡"˜ώ  £Ο†6mv=‘^¨½Z „Pc+α~νΫͺM"eυΡe…�YBΘσ8Ž™§%<~;œ>N½‹Ή‹α―Γ#%«’.= xN•™ς!μΏ'~@ώ8φΫ‡ w_ϊ<>ˆΠΛ1xZqtθ ξ}\o)ލσΦΆΐ±=θΨ^8’ό’ΑΊ&‹Χ•2uE9Ÿ­)aU³…#¦ΘΗ•ς"…F£ Bpd{›σϊ„•@X¦šn’€mγdm„aΰ!%Ώκ]Οe ,Νͺ΅·TJ)�‘q\�gtν\αξυur}2:οgΈέH„ξ4Ό'‚ Όo:T‰Η¨ύυD]σRmuεΰ8”‡ΊmΫ}τΘ/V­šΤ`Nr w Δƒ@ (Š€ΗMΩλetΣ”/YΌgϊσBΚIœ"‘ΥeΫPQΛ—CχΞ0yμέί²‘z#[Bω(’Σρ:/ΏΎž*cκς΅aοΩ.ˆCθέΆ˜χίΊ„ΓοαΌσ³»€PߚG»”ΑQ¨ΎΠΥ#οj5 nΊ ~}ŸJ~ϊ θΠƝwλ8v(Μύ ώσJΊλi•§_x!iΏQκω²U°ͺά“θt%Vo^τΎ%:ό<^—Ÿ{όn7Ž­‹#4%.άMGŽΙςΖ+εΓ5e|^SLMF‰_ ,•Ώtζ=ΛK1·BRΏ\ maˆ„‰H˜ΰHd„#‘Žƒ°Rϊ–9¬jL"PΫΙΌ6F‘„Ϊ ΄‹'z4ΧNΒ=άAJχXcχ›t\ov·'q΅|ζΕπ(x@ljό“¨’-€<ώΗ?ώaωwΏ;ΈΖΆ©,€™o0PeRZšgΙ{ξΡΡΧRΫΌόΛ»‘t)‘KXΆL2ρΪ[pΙ( ‰όυEM`…f"8|2DΌNβ Lΰz&―Z©GϋX}»«βHu§k»φLϋχ8;ώnΞΣDUΥ·[¨·BΚ£§H9π‹Kα«―α± κΩ=Ο¨Hqƒϊ«W’sΰŠ3aεzψΜ mόλ‡αΦ+ {§°’&tFX@β̞‡jg«Τ©₯;T"bι 2Ζ+–»q΄‡cagА9 „ƒH4ς΅m0·Ύ˜/jJ˜]SΚβϊ4υΆ‰†Τ^­VΉ ©’cAOŠfhA˜°―Υ€8ΆC#i‘,M™sP~&V?\‘Ή2g0]–ψ3�V"Π|’VΊˆi·Ξ§T>!�S(g7ΟαΝ@υ'R:ΨFπΎΌ­jž§»_ΞέΞ&%ΰ(a/ύ47]Ί•x πœfMΣΌ>mjj2μφΪθΡ«N$δΆe ₯φΩ¨ιχΈuv=oK7†'š·Pωι3f*g';?<F“mcmt‡Φ§ά4S$N‘ŠΗ{ω£λ€ykΣ»@V†β % –Χqΐˆ?sΡΕYΚΛw uͺJΰ‡Gƒa‡‚>Ξ|f/œώxώίAWކα[†7έ _, ςάςθί£0ύ…{iŽΗ¦œΞό™Έ1β)}‘±Pˆ},BώXΫipHΐ„&VΧBƒ{ͺcΒ‚bε4i` |'fšrΠΨuυPΧ�υu°’j•ƒ_]£’Χΐ_J6΄Ÿ0P».R JΪ$)n—F”³€!ΝIε‚}ŠMν]I°έ5hΫ¦>λpγͺΆ¬t«;ZΖκ6N2η ΘψϊDάΕc ΈΎC{kžΊR*ž³‘Ήo5€y΄±2tΰf(ΊFTJ8μ—hf?«™"lΦΨ&ΪiζΘ4}™"L�‰„αN»Cνϊ,†)T`}뚻~ξ}žΠwά-kΊ—»qx‹z»ΫQΟχ\pvCq™Ee»$vNΈθTT”όαΒ k;v,€'Άνύ΄N ΈxδZZ›―₯Ί7&ΘcžK©œ–ή}Wmcil‚ χB»t0¦B Κ$6α ρuθύ.Œ0› m‘ ;=) ΛΟρ¬H`Φ—λ8ό€»9‚έB]‡< Φΰ6τήlγn‡{ž κ9υH8η»α³Ρ(LŸ­ξpΩι0rHπξςΔ@u8d?6ΊΞmk!: ŠζΩΡ8€„ιsaψωΪτ[ΪνYΖΰ χ Έ*‰Ud"mplΗo„>½,άΦ­ŽΞi°L„©Δ²lmdΦFfsκšΙρ»ΊΆΜqRAωBο8*άγ{$½`}yŠ‚ Ά ‘δRBΛΚQ"Φ:‹μ„V·Θ«OΗΩέΚρ“²υ€ #PΪ Ά­ϊ$›cENp]hΪΙ‡ήG$••a κkr8ΆΔτ˘Α»JGYήΆΎ]χzΟIMx‡ƒΙD·°9np-‰€²}Šβ’υM Oθ‡Œπλ_Ϋ–½ϋφεψΆmiιdA%°½=ιMξ―ΩύySε97Ÿ·oΣ— haΐδ}9…Ύ*ύ>Znc P9χΦ΄ ΈV­R OΌœŽ %ͺ•ΝC«ΧΑšjvλχ~™h{΄~ ι!"¨žhΪ„#ΥJΉΒ^ej_•ζΈγ2ξΗΣ4ΘΑ²v uPϋζ‡τ&»ύάomφΊ#xφΥ ΄oΧDU ? *ͺΰ΅Ικωœ…πΑ,8β@0έθWG� M₯>}6Μ_’’ΙωŒ*2–£³1΅υj/ΚΪγ}'z^-½ΡΌΈω’–τNC@u{8`?˜τίό€8[ žΫ‹‘οAΊΜΒJ˜*‰©,D/”¨ι퍢ύ‹Ž―Μb$)ub˜‘0/½Ÿ))1>0Λ°,ΟςtΓ’ZΑΟ²Ό#>Γ?LΉp}ωεΒu o·e…q'†e°Α°Xm$¨·,ί»άtΓ¨ZάΒPΣΣύ’Y~ZQC2•ΐHYˆ”…HXJΙ1 ½— 9Κ^ΗΔDxBΪΨ ¦Π½aΤά`cΓΫujKll'°ΚνΘΥΙ©{'§έkQδ‚iϊ`Κήφ"eΊν¬h›Β–6•%Uwε±Δl6g 2xhϋφ½sθΑŽ!<‘νS ¨h«ΒF4ύΗόyκ€–Ω aϞπΪύŒx.ηαΣ­Tά{/\»$!‡£-ƒhΪ%qH κ,(ξwΤ€Τς̜»Š‘§άΓΕ—Ψ”Ζδσ-έB‚±šUlBυ-H™#γ8<χμͺΛf2|˜σ5 ­eMξ† `ΏΎAΏΟ] 7ίXζ%EpΛεΠ͍·„δ2zVΓΰ½ctε–,δ8:"cP·†CΛ?; `@}^yxώύ› ϋœ\Νΰσz…μ"gDΛυψM‘ά^΅+i) έRΣξž5*3…žΙ"39žu*˜hT†πΌν™ˆy b²¬OPΰo(s|}"œ^�‡““δɘd-‡e1Β퉓Ν!39ΥΝ9œl‘Ιπh’#'ΚB•J)i¨ΝωŠΤΊ•Νκ@6Ο2w­σ _<g85υ.΅υτ l~ΨΐRŽD5²‚φΥE4g²λkjη τœMΒ2»άǘ=ϊL§Ψ‰zœo ’£,Ξ—ξυ΄& ‡-TχΖςζq”˜τΈς‘Ί.„ΓΗsaŸ>0ωοPξΞuθk…:S‹¦·ˆΒΛ[ΰΤ2(ΰ0ΉkβΕ*r(*P¦ΞZΑq§=ΐΈqΉo₯wαZΠ+W�Νπ—«ΐΘDŽg)JEϋA›ΡνŒυœŒϊyϊuœΙ^}ΰΌaόAωήΥJh'\·Ωœ­δfδ9p/Έξ<ukΩΊ`Ϋ0κ(e₯G}0τε==ΒΚcΑΌ1uν”8$H „Ό > ‹Ύv-΄{Ϋ™#ξ‡τΌ¨σεhlz{ΓζϊΤZ’¦αOΉγθλΟjΊύuQΞ+Ι6˜:£ŠΊ18Ό>ΘoPλ„n^]1Έ γh©>…?Σμ°—lδβT²Κ-w?ΉDΡο-;ds8™d²όΏςή4f0΄έzλ7δΘfΜ¨Ω‘aCV[;W±ά£’Ζsv 9Ω >β€χξ½`S‘TuL“JNMCέΔ7nžvL,+<λ¬3Ϋ|ψαKΣƎ­ο³MΆ΅YT$Œ8‘[θK η~­[ –/‡‡ώ‘]2oύνŸ/ b―z[τφϊρHi…πά%p€ϊ#۝ 2ΈaO£•JΙ΄Ω+8φ΄{ωΑ$ιτ/ΤC~ξ΅© /†yσΰΛ/υƒ‘Γΰ胑W5”%Q‘ΜβSοΪφ|Hχ₯ ‘’\mhhδ‰GξζΌ“j˜Ώ Ύs±:ΥƒΓ€+F«bB¨©ω¬τv�� �IDATύ«:;·ΊS‚³ΎSxΌ=ΊΐΰψJzhM=’ό€#ͺ4Δ”ΡοJ8ΌŽΛ ˜ώάώ0Ό2I;H'fΒ`Σ»qΠΩ=H—YΎ ͺ<ζ]*±9Ζ©aoΩHΒ±q$¬“ΜΆJ(‘E p‰ήOWύC‘Ώ*έWhΌγ~UBh­YJG:AMΟn[t³Ϊ‡Ώ”獷|€‘ ASƒM_»‘ο‹u˜†‘’ΉI|oyr6NΞ¦.+Ή§’ŒDlί:Άdε’F΅}Ν€ k28Άτfρ—3΄wμy°=μύξ[θΎ€w\aΦΡ₯ θM$m;§Ιε§‘φ„™·}ωj,όα―δώϋοωΟΝ7Λ›c™mHT¬φhΨX" ]½<DΚ΅¦l!Ÿ§y$JοΈοAεύpρhΈοF0rA™X ]oͺΩG˜zTxϊiή‡‘?Nΰξr8ͺΞDΐ;§ΌA¬m/ξφΔ—rϊ9sΕφ.c©λ>Ά­ΖΞ—_Β_ΐͺΠ¦ ΩŽ‡ RργSDοί“Zz Pp¬ QαΞx$R;ΨΕνC!Ž<σΜκυ_zuG^‚ύ:&8~8œ{‚Ί7 xξ-xκυΐ’Ξ;Α/σί…pμp(Mβ ΒM’#Ϊ‡δ+ ώ8σΎ±]*nύϋ³αΖ?Α”™Κ€Ψ(΄φ;h·₯ΰ―…ž¦τ©]γκ‘z{bž7ίΉD1BΌ7xπΰ‘Sί› ‘‰λ±f !OHΎ²δ£ΡM:NΞXχΊQ“[“μ_~pε’ϊY]$Nw[ζ:%ŒtgΛHξ™±Ί›"QiV©@”ƒ0μ,N¦Ω1Κ€ΝΑΩZϊ؍€› >K”03UNΞΕ%t:άo|―_ΥΔ†5YΦlέΚf5έn ŒχR₯K·γoMΣΊ8Κε vΧbχgΛ%H$ν:§1Lƒ¦ζ¦·Ξ<τάczΚΟs±―ήύΠοΏφZ..+Ϋη£{ŽtΠϊΑΈ1ˆ`- ΘΝ¨_¦ΐHΓoΐdΧΉ¨€ΖŽ=ΐΕ%.o.*θdπΔY―ώ½ΠH‘e…Xα»3γΐ„.7w|¨― ΝJχ¦ξ”υ0qζRN;ηAΈB’Hμx‘+3B¨έ«W++{ξ\¨―>έα¨!0r8  ΫD6Μ8B‘6i…ͺευH"=ڜN ){ŒEχΐU΅Όυφ»Tρ*ƒϊͺπ|~φg₯xx0°\3Fm»xό˜0)<ΩWm…KhJ–”°Gw8 _ ό6‰ύ»Υϊf«φΥNŒΓƒ5Νκ<ϊ‚ Λ»5A΅#α±Ϋ Wa₯€5txυθ•Fψ­”€ yύ―:BˆKŽ>ϊθGήxγ Ά6δμ,B ‘œ�m'k€α<97Φ€eOŸcV»b³΄L Ί Ψί4] !Ϊ˜†ήφΈi~|9«VM½ ΘfjΧdό5t―?ΌΎρΦΡ=w}κ=l©{VΊ·έ *@yU’T±I6›kXΊvι_ή»fzΒLΔ‹ΆL&cτι³Η#F,½³W/gΫ1Ie•Η Ϋ8Α7Β‰”‰K'ςΌ%qω αH�Eκ57ΓC)ζ °GWxνAθέ>ΐχθυE…`A}Dš-¦Α…#έΡv,Έk½9―9(-έΒR žzi&W\χ<?όapΚΪΆOxyqΩkjTΰ‘ΉsΥOfαΠaδP8vτλιΖZχβ’»cΑgŒκP_ρ‹ό—nϊ}N>³ 1Vd»σ©ή±g₯{Z †ΙΏώυ:ύΪO’o§γ'ΑΕ7…=΅‹Rpα)0β@…ϊυχΰ‘ a ²Ό~τ=΅LพΏ§Ž„„ά*:ΆG_νb8κ £σo€ΌŒΊκpο/ΰΔC�-Ύ«ι²¨<BΛ‡φπζΗpƏΤΩ�Bˆ—‹‹‹GΧΧΧ7l>[l;‹B\7sD)s—$Μτ9–Hv ”`—^©Ά ~6m­ϊZ6γPγ υHέJ K_¨ϋGͺjBέw”sΧΦΥ4»Β(‘—Y—%l¨―ϋιΗšw»i('XΦηZθΗsŒρβπᎡM¦έυ3Ξ7&Xύ†iωΌ{Kϋ ΒΦ>­¬7G¬ΊIχBΨjy–,ΗWn�΄Όpt)UeυΪΗαU―υuήŸŒC½Y2œEv¨ϊ²xoτΟ@j7ΒδήӌγπχGΞ‘ΜcφBϋ3ψяA»%ΰ΅Χ4ΥύκΥπΥWJ`/Y"θ‘-‡λΕ1‡χaψΑ=θΪΉ ™³Žΰ‘ϋ;cF~NΪΏο@1‘ •ΒνOA,ƒ(Œ#θς37AδePΒ"΄~‰m<ϊΰœuΜbŠ-νέ0k œ#|πYΈ ]ΪΓ'Α #Τρ…7ΐΌΕα<}»Αω'ΑI‡++ΣθΨ}΅‹βͺΟο|~v;4·rΟ{Q »nΌvΛίϊFιˆδ‚0γK8α2uϊ€išsΚΛΛOX·nέ‚Φ΅xΗƒmηΈjΖA{[ΏL©Q¦ε1²†Ί,ŸΟXκ{Κε$λW5η+bΊ@—A”8]¨ΫvpnΊ8€€€<AΊΨΔq$uυ?ΔΕητΤ›}ƒΨWΠΨΨΘθΡ§χ^±βΥΩ'δ$7ΩΣ½Ε^K―%QΝUf‘,b³P« Ÿ™-Ώ)ψR@’`}‘ςω1ιQ{Ξxζuš@―jψη=°wWWψyBΝpšΠ ­·h£½ΗΆO/Ά+ΰ :]Bύ‹Ο%τiΗΌώΖΫȚsμP0\ΟM+o…K/kPχΪiYκ=-Y’Φ³ηΝƒΥ« φΫ«š£FξΙ‘Γzrΐΐ.T”¦9Ϋ'J_χτλ‚ρΟΏΚύ¦¨£guζ'5uF-½²Ωz™SS¬bqBT¦iSΟΙW.έrΑϊ­dώ’Ε̝ώΗκθΗ―ϋ—cΒSoΒU·Βκυα>mS/άCχ…{žƒ›ώυα<έ:Αͺcˆ[EΗφθ«o¦Νƒ³―Q!~£,°Ό½ƒŠΗfΡαΥ©}Λq4J^žc― Yδ_§ΣιSκλλ§ϊΉΔ»H)ΉαΓ]Ζο,#1Ζ¦ΡP—γΣwΧψϋΤ֯ʐΛ:‘r€ςvΧzΔI.ϊς€„ŠvI΅VοΐΊΊ ―ώε’ϋN8fΠwΟ:w³†]©Ώμ2Š·š§{=ρΡβτΦ$P‚²%Α]κ΄ϊtβύ«ΟΛη ρhoY \4φ| |ύ5όύοΠΰN(U”Β]?‡1ία:Ο ­}‘©.ΒΒQ¨Ό<ώ­γςμτ8’ύ ύω, k‹JSΝΟ? bG,1bpŒ.5\u•η|’„{"‘ήΑόωJ`/Z™FεΕύ*ζxΏnNˆͺK ΡΟ'Μθ<ΓLΧη{@Ρ νΚ4š5πσjυFϋKοƒhλ}νχc\ΉΆη"Σ}π½ZC‡”`Y<pχ\tςJεΥΫ„Nλoƒ―–©ŠίΡΟ�Νώράτ'ΚτΏΓΐ„Ζ~A:ΆG_}q`BC3P^δ.sΨρΈ7GFΐιΧΒkS`π@Έu1P?1αΧΒο Φω ØUUUuʚ5kζρ „k>8xŸ€Qτ°‘K ™9i•t\k}e³Z7‡ΐRw€ @γx‡·’Sžπ/*΅\«\εέPWσΘΙŸvΩνίKžEA‘ι8νΫS/Ώœ‘‰D‘\­o+šΕ­GΥΫΠ§π!_„`ΤzPHˆGAXλ^=�₯/λ}ΐuupΟ=Βih¨΄‡nN%ρν:œΕ£΅±Pώ–κΩ)p�΄9άόG»#ύΰ#>|οuNQK΅λ¬S‡€Ηί„Λ EEPQ¬Άx}8΄ti£βA‹Jͺ0«E’ΰv@tάψ™½t%ύλί3r.)ƒ0§Œ(•Ύg΄^Ÿz™(Ύ₯ @”B§kΒΔί1ΠZ: ΑΏώωƒzL¦ΊmLέ…θˆy–Χή< h#tDqθy ራk7Ž-Ζ!jYλ―¨Ηϋτ™Ο‚™ ψt œs|όΉ_ƒ#„xΊ¨¨θ²ΊΊΊš]Ω"o H)ΉfΖΑ–egϞΉ{ύ2»Rο{ι@έϊ ΅9s“2όϊΌ©uΓ””%0-#•°Οεr™uuλΟ^ψΠŠη …p΅bS\.g˜fŜϊϊš‘›yH‹'M ŒπΐΪšΰ…Ÿƒ¨€o­Φ‘tΡO€Ϋ6|ς Ξ΄iΦ‚•+ίτθΡc|mνΌš²²2+›ΝŽΛf³ΏόΧΫ”v9IψΙEpέPκΞεΑ‚…άRS=rEδ6w§Α!RΘT_X΄δkήyk")9Ÿ£†f9Έ3<*Ϊ-β0v$Œΰ YA’Ό€E!:ŠφQe"sž±S ž†£Yΐu$r_‘T‡X…­½Ό—¦΅+oVC/#bR+Ε‘Ϊ)R€YΨ8HIYU5uΠ΅m 8βθ`#tΔΡΣq8Άv_νΖΡ2 YNΏ ώυΆz΄woxη1X΅~ό{xζΥΐ!0Œε†aόΰψγaΒ„ 444πMζ€7£—žpωΔ1Ώέ·ηϊš†—Š“%{ƒZ7O—X€K,ΰΘΐ Ξ­@ρ8νΔ΅\ΦΑqpκ›ώ±GΗ=Ύα_dΔΓ……WΑ'ŽγNέxΞ9™_uν*wήχη)―ƒ@ ρΫD‘Πψœ90i’˜·fΈ»OŸ=zλ­·κΪΆmK*•?/___Oeee'ΰOΩlφ \εͺͺnΈ<Š EOž ΣιAόim-]'ΐt°#pH`ώRƒχ>1Ψo―}ΊΊŜp™νFG‡B’=Α>½ˆ 0ϋ•yϋΉ%πο·&Ρ½τίμY΄gc^e‘«ήξΈ΅οΌρίξϋκt²Olλθxλwι’x•½Ίΐ±=θ؍c‡γκ8β|˜9GU9¨  }Z‹U DpΧ^{νυΛΟ>ϋ¬‘εC@Ύ= ₯dΐΥέژ¼#(>Λ4 ΛS’Τ5 «¦βƒΩlΆ1Σt[Jό~Φ½ šZΣ§s455½{χ>ξ ƒ–½4hΠ6>FuK@_—χ` q} ρΌύΆXΈj•yϞ=οš4靺:`šygή΄‹/¦W―^{wδrΉ£½τT~r!\s΄IRVtΑUhxZ5υ“[ƒΓκ―ά�,ΫΪ₯>L―_±pΑϋ0WoΨΐkΟέΕΨγ3!_έ±(TΖm›—ΰ?Ž)Κ―=“qω 5έ.…εUΰmXO?9ž£φŸI»’HΗn;Η‡‹ΰοτžΟY–υD―^½μ³Ο–[–υ­°Δ7€#Ήϊ‘Λ©ͺ₯ρΕQI£θtΣϋ"E;)e1ˆ:G:+›š3ο7gŸέ§η^ύΥλΞ¦*F˽ϐ!Μ<αΆΝΦ΅-o‹šG…7Ύ @%ΐ§N5—/Z$ξνΫ·Ο=Ÿ}6k5°Uq.—£¬¬¬g&“ω“mΫ'’-‹sόr 폚Ψ1/PϋPc_ηΛK‹~Ψί&₯# β(7Ρ3Y‚{_ΐKpύΕΥ~x)ΙHΙέwœΌŽ€Θ+"€3”ΗH£ecš›ζχEρΘͺQͺϊM C ~N:<rΈτ΄ΊπΎδνIΗn; �ά|/όοαͺ„M¦i>ΉsηŸ/Z΄hνnK|η‚ίFIII‡φνλ{Ι%tΟn£3}7Ό©φm`‰K©φϟS§šλ—,IήWZZzχςε+–¨}†Ϋg;ŽCuuuεκΥ«œΛε~(₯¬τž΅)‡+Ξ†+Η@Η2Β³q‚π½ρΊi.•S >όρKωMΕaBϋK!Ρ)\±/θ΄d­@³γπΘ}χρύ“—“Šs]ιŠ%#R―NƒŽΓ/y‡C‚h{2έ'ΪU₯ë띩3(·_`Ώ^αώέtμΖ±CpH ³WΐΘσaω―±2™Lώ<•JύmνΪ΅M–UΠυj7μ`hQ2M:Ω:ώψ£¦]{mζ€œεκξ,#‹ΑΔ‰4,X J&ΣwΤΧΧ/؞Όε6JŽ;ξ8λ7ή.„ψ•mΫ‡β/ τξ O€Qž$oΚWFꋝ†ΦΉΑ”8Hψ&ΰ0ͺ ΣŽύ*·ΟψάΒ}ΊΆ–gvί•!α‘χ§ήν*5zt‡#n䡈ƒbθ|;s਑ΕŏőέΧ7gxζΡίsώΙY Ήι؍c»β@£„ούώ5ΙOΞ%‰«²Ωμ=1MΪ ;!΄(©lΫ6Ϊ΄©|ζΚ+kG%Ϋ!¦ϋv�©›¦:1mβDΡ°p‘ω!RΏ»ύφΫζ]zιeΞ¦oohnn&‘HΠΏβeΛ–XWWχ€ώRJ_ΐwlcN‚«ΟƒmP{ήΙΧΞ}~'εβ‘ †Ώ‘ό;=ŽΓ‘β„οm€τ΅ `šL˜π S:�εΔa²ώ4ΏN@ŒΒέμΚ„’s΅„£xTy±Ϋυ ωtθ ­RBFJΉο.:y% ‘ €AΗ&ΰΐό•pΗίαwΧhΑw†χ±³γ�r&άp'όωQΠ‚ˆM�ΞF…Ϋ »΄(’›ššhΧνgŸέpk—.;±cάF@J\dΥ*˜<Y4̝k>W\\uΫΈqγ>½α†œΔo΄ί±ΰ8Ή\Ž‘C‡¦?ώψ㣁ŸζrΉ‘hΙ„ qιχΰΤPj>َΘ7αϋϊlΖ0ͺ‡λέ<Z…Š‹JΤ@šωΡ'|ϊίη8ϋΈ\ΰΰΓ|£S£Ί‘§€xeΒUΆΎβp8@» !έΈ«γξφ=’Γ?m υί‚‡ξ½“1Η­RG²ξH:Z‹Cœs#<ρ >œ~,<π?P•*€{g£cΰRόΉτWπψ„ΰΤ<Γ0>,**:f͚5«Σι4»aΧ‚Φˆθ1§œΒγƒmσΆl5πψš50eŠhψμ3ω2€wΠA}8qβΔά7} (“Ι`YW_}΅uί}χν \–ΝfΟ:θV|i1 ?�.:ŽUiόνbΓ B0ΐ–”Ί‘ ηΧ[¨ΎΓμˆθπ^τdυ<πv·…`;ο±|ώkœ~΄MRΔ Œ΄…HΏ .]:SŽKΣihQŽμtB$άϊΒ0ιβnύ’kΧρςψϋΉΰ”Fp'Ϊ?Ϋ›ŽMΔ!š,œs=ΌτN0Nϊv‡Ώέχ}βeg₯c{ΰΐάUpφaΖ¬Puo%“Ιο577―ή–wΓζA‹oΞqΪ΅kΫΏ_ΏuŸw†ŒŽ¨<Ύ~=L™BΣ§ŸZ―74δn=μ°α3&Mz'μλΰ;ΗΑΆmͺ««“Άm¨――Ώ¨ΉΉω( Τ^l‚ώ½αΌSαψΓ o0½„oνΊ\"jύΖZΒC V=VϋvΕΘ£ βHMWKΓ`ΞάωLzύ%?p{uΗ !KΚ½Ž°Pœn=]WRόΔό΄MΒ!A�U§β- D!oΓs„ΰωηώΙνΛώ}\\;šŽ-ΐ!₯š>ώΥCπϋ‡ Ωέ#mpρπλqΠ6.Ώ3±΅q  Ξ†;‡[ΰπͺ\2™Ό/“Ιό,—ΛΥ}Σ o΄(ε2™ ]taϊ½χž¨=ηœmtκΪf€'ΐkj`κT‘™1CLL§ΛΉzυκw ΓΨ½rΐq€”TWW_½zυχ₯”ί±m» šΓ`™pμ‘pΚwΰΘƒ GGWΠ;a樃&‹CCά}\93©m‚Γ1�‰Ž`,_΅Š)“ήcν²ιsˆMΟΞ„b`ΗΥ©[H…š₯#ο΄ΞMΕ!²έΉˆΤ~Žό:Ռƒ#“§NgΕάrΪHGΕk; [ ΜZ έ Σ>ž™Œ= ώχ*θR?~wV:6¨΅9xδEψω*†Ύ KKKΟ―««›ΔnψFΑFΝΦ;ξψ³υΐ·|vΖkχάQF'ΐλλaΪ4œιΣΕ$ΗIξε—_z}Ψ°αN2Ή6Ÿ ‘ΉΉΛ²p‡^½zuX΅jΥ‰RΚΡ™LfΈ’Ψ›²χ„¨eΒAΰΈ#`Δ`ά)~©|­Kΰ<λ#ΒΔBΣ‰.xΕ£Ξ&㐰‘Ρΰ™Χ-φΪ#Γΐ=ΥAž�βτπ„j™D wφωk„+’kσq$]ώG5ήMτ¬t―xVJ^yιudέTN<ά ^Ω©θΨΊ8€πΦ Έώvψ`Vψωΰ}ΰϊKΰ„aŒψCξLtl ‡” πρ΅wόΉΧΑvτ:ΔΚT*uύώϋο·©S§nrΐ’έ°kΐFίκO<Α~pΑ3—]–9£Έx{4)ΰΝΝπώϋ0}Ίω^]Έν¬³Ύ7αo{,·ΫίώΰyΦtνΪ΅K]]έαυυυ§J)v§~  ¨UœVŽx‡ ΒA{Ci ˆfŽzΗ…@Ί‘+1š°•ήΛfSql Be"οΦ‚‚8�ŠAΟ»]eΓ`ϊτ™ωήk7¬Žž!Ξ‘§ c;ΰΐ„OΑΟώ―NV!›=0 8x \<NmJlαvνP: ΘπΖ{πΘsπςΔόhn†aΌŸH$~ήΨΨψΊ”r“#Xξ†]Z;τnϋΑΈΆC‡m³uΝϋ¦Mƒ3ΜOkkΏιίΏί 3fΜl€­m7l=ππ€” ><ύώϋοχO$#Ηωn6›ιNwΖ5υΩ½μΥFƒχ‡‘{A24£œσŒ° †xa[πyΤBr―qCΈP±3ΡΪL@žrΡBΎ8b6 ‡Ϊ^�ι^H+ΑΌΉσxϋ­w¨L-ΰˆƒlΪ»S˝–Ž€#gΒΔα·χΓήGσ7P°``_8v8Œ<ŽΨίUD›Ο Ν&mM:d0» 0g!Ότ6Lx >œ ΅‘ΝdB='‘HάVRR2~νΪ΅ίψΣΝvC>lT<ηr9£S§ŽguΤΪΗϋχί:‡΄θΡΰ̜™\°z΅ψΥ{τ~αΣO?«έό›�ΝΝΝΈ> Ζ©§žj̞=»ϋΒ… χŽ•Rްm»§”2ι2£`ΝΕΰ*K‘ΊƒϊCΒAϋΒΐήPRI€ΐ"tΙίήCX¨Η nΝŠ*�Q†*GώΗԚς_ί¦βhΘΒΫ5Ψ³·CΧφκp›¨oΓ–βΨtμ0R{nΑx~2άu?Μ]DAHZΠ₯tν {ο‘N λ^ ½»AΗ (M‘B6©ƒ ™¨i‚5΅°tΜ]sΎTΏ₯Λ`ιΚΰΰάo%gΖΧΐpΒ _<ϊθ£9Γ0ΎυΞΏίvΨθΫΟd2€Σ鑇Κ;Η³yŽqž�·mψτSœ)SΔΒ5kŒΫιτλΧ――ΨΥχ‚ο†MƒL&ƒad³Y,Λ2nΌρFλψC›N:ν½vνΪαΩlφ)εώ@Ή”2νN燴<!ΐPV •ε°wΨ·/μ΅ ξ Ϊ©i”Λυ…$Μρ΅zdœTˆ*Zrμg cκ WU°žέ8ΆŽ‰.…ϊ59ΠΠ‹—Γτ90η ˜1,‚υ΅Pί¨ŠΗπ8Giš Άm―—R~ τ·,«mΫ₯qcs ΐqsƒγ8+-Λz7™LN-..žΤΆmΫ}τQS2™tΗΩ=…Ύς`£½©©‰1cΞκύΥW―N5ͺ©=Ω,τ)τΟ?Όύ6 V―6ξμΪ΅λ½ός+λϋχοΏΫί …L&ƒišH) Γ0œσΞ;ΟzσΝ7KΗιΊbŊ‘%%%{577 „θ™ΝfΫ!Κ':½οI‘¨)Τ’”—Βέ ¨ξύzBοΞΠ JΛ 2©–€«'άΆ8οeύΤRykς“2$Λ ™€ίB~=~g+,„ΊΟδ`}κk`ω:˜ΏDYΈ‹Γη‹`α¨o‚Ζ&uF·ώώ5p„Ώ½{βΈγ�ώΩέσϊ€³}>YgσHμ΄ζ0y Ѝk‡@H"₯B(Κƒ?’Š’5"NΥVQΥJκ?‘ͺ* Qώ(’HJ„ HΤ•"&‰š†‡_αaΞΘΆγ{ψ|ΆοΞ»³3ύcoΓΥ„ΰπŒαχ‘VwΎ³ΟγΗνogζ7Ώαp_Ί§LΣμBΙησ‘HδΏΉ\nhυκΥcoΏύΆ΄m›3Ζ€γ8π ΨΆ )% Γΰœsωβ‹/κ�Μ>ψ@‡Γζ’E‹fφφφΞ<zτθeν†Γa±dΙ’ΤαΓ‡ΗcbεΚ•" ε·lΩ"”RάΆm©ihωΎ¦Π7lψ%ί·oΗW--²^ˆ‹?§ψMzκpθοK$ŒwkkλΆμέ»'S[[GW“δΊ°, Œ1θΊΫΆΑγX·nokk㍍w~ρΕw›¦Y722²PJΩΰσωͺ„A�3₯[λς’W—ΕA‡ζτ9*Λά ‚pΠ½Uα*`nW�ώΐ¬ΐ ?`κ€ΙέrΓ’])ψζ“z…—†^ œœΐχν]ΰοαr_g‰‹Φ=‚/ “€- ι!fΡq ;œOηRΐΠΧ@|H€έ AΜs{Μή<²,šΏΜ‘Χ»Νhš6dYΦ Οηλ4Mσ€a=υυυνŸώωΠƍεζΝ›e €”R†!”R 3d:›„‹R ₯₯μ_―ΎŠ•“kΊχ|ruΧ��ωIDATτ�‡a(ΣΆj+—Λ †§W› Ή&,Λ⚦AΣ4™ΟηΑγ½½½hkk lάΈqžeYu†a„ΚΛΛkΗΗΗλlΫu=˜Λε‚�ΒΈΜf½ή η…ιξN|3”Ο.}pξŽ”š@‰(1άς½Œ]xΣJ�JΊe;e‘* {+UΘ{gξλqp­θώδƒΉΟs0―έ…ϋ=ζ=Ξ/n{ρ­wx?σδη9Ώό}MsD8y’ΙφvvJνc!ΔvΛ²: Γ€”’ !h+ΉmMiLGΑ++«ΪGGγ+ΗΖΪΪxͺ§Gύ-˜υΦπpΊΟΫ‘LJ‡†‰Θ΄ασωΎH/ £z§ G»mۈΗγ�ά ΫΒάeSi)mρbΉjΩ2π™3έ@JωHWO)7pΫ6<{φ¬~p|άΩ1wξœύΡhoβΒˆξŸΛΛΏαœΛοxiBnyS:Y–…ššš{GGG³Ιd²Η4M άδΆ ₯D ψ‘mη0ΎσtS“ςWUΉ žΐ―ŽR€a�©ΠΥΕΠΥΕΟ ϋ>؎—_ώυ±Ν›lišFω6„L’)°m±X"‘εJ©ί†Γbύ£ͺͺ;ξ ψ•ςζΌ½˜2;¦ΔωσΎOΣiΉ½΄΄΄uώύύK—.•Ό Ή:tŠ"·-Ηq`Yκλλύ‰DόΉ@ΐϊ}c£¬kh�Χ΄’Ll2%ΕΑ{l θθ`’« ‰tΪ·Ϋ4gmXϋΐΐ@–φ[ δϊ ΣΉm2Ϊρΰƒ˜]]ݏ̚εΌ~ί}βώ₯K•ξσέψ�^œ±]œ4ζev~Ώ;§όCRΌΛ”ΐΉs ǎ©l,fK§νsηΞΫ³pα‚ώέ»χJ₯MΟrƒP@'·4₯ZZ^αΫΆm{ΐqΖώΨΠ V57+ί΅Nd›Ό•«w+₯»'A6 €ΣΙ$ηρ8²Ω¬‘ŽΕ¬t>―Ξ–”ψ;s9«7‰τ G‡†^[Ύ\ώbΩ2π›=Το]δ0ŒŽ_}Εdg'οO$΄ύΊ^ϊ^ ψρς΅΅΅°m›–}rQ@'·―M ¨"Ώι»œυΛ—ΓBL-8χœ½eSξk»9“art|pH&U&•ϊ‡‡Y‚s_T)td³ΩΎŠŠŠΞwί}ηl,v>ΏjΥ*άsΟ=RJ !„WΜJ)˜¦ιeΞ‡fΜΠv<ω€X΅`Aaνυ ζmŠδ8@?pό8ς]]όΘΔ>¬«»λ[·nM477Λ Y愐zW’iΝ Œ~Ώ?dYΦ†9sTKS“ ͟οpOρΊf!€‰ †‘`dD!•‚L$ΈΜdx"“ΡΞ N jšΦY^^qΖ²¬³?άΤ“ΛεϋZ[-ΗαJ)©”βRJιU »RΥΥΥσςω}O?»««―ς—1Eή‹¦Ή½ξ“''τ‘ή^φqyyΩΞΗ{μ“νΫ. UΠnL£!W:™v”RX³foϞ=λΚΛρ›ϋο—‘yσQ2™RblŒEm{F_2™ο ƒ'“ΙΤ !DssΣΩ7ήx#΅xρ8Ž#KJJ ₯„γ87zΈψ‘šμzζΤΧο›xCζœ±ΠΡΑδ™3όH:Νwϊύ₯»S©α¨RJJ)iΈœiŽ:™vZZZΠΪΪzg$IμΪ΅kLJΙmΫ†a²°™ΠΝnβ·J&¨¬ ­©―ΗΆ΅k0Œk?‡―λ@>tw,;0 οΞηεϋO=υ³ƒ~ψQ†’ΤΉuQ@'δ:²m 6πX,φ»{οΝΏώψγnΉΨ+ δΕσϋš|ύ5pτ(§O«žρρχ�ΆϋΝ7zjύϊ Βq¨r#!· θ„\J)ΤΤΤψβρwV¬ΐ Λ–ί­‡‹ΧuOL�§O3?ΞRρΈρΙψΈάQS3ϋ`4MQ’! €NΘ5‰DBƒƒ=;ŸxB<‰Lmy\ρŽ…Ι$ΠήΞ¬ξnDGG΅χKJόllόIΟή½[RJH)QRRrc~BΘ΄Ak 0‡©¨ΐgŸECUΥ₯ ΥxΛΓr9 ―αΛ/UjpΠό4“™ΨV_γΦM›6e_zιWξΎTQ2EΠ Ή Ÿ}φϊpu΅Ψωάs¨ςϋ/<W\”%Ί»™μθΰ§2ύ£²²ΐϋϋφνλ^΄h±€ynBΘ΅@+ „@eeε ³ggήZ»VΝτφμΆ, e²½]ε£Q~1σ½²²²ύηΟχ§ dnvΣ !„Ϋ›R GŽηψSc#μW^Z±ΞμΩΌWΧω_ͺ««zώωgu!·,λf7—B!“ ! …~λϊ`0ψB0œsβΔ H)111q³›G!ψ²j°!ε¦����IENDB`‚��������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/gettext/index.md�������������������������������������0000664�0000000�0000000�00000001364�14654155362�0024631�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# **bold** text 1 **bold** text 2 > **bold** text 3 ```{eval-rst} .. note:: **bold** text 4 ``` * **bold** text 5 1. **bold** text 6 **bold** text 7 : **bold** text 8 | **bold** text 9 | | ---------------- | | **bold** text 10 | <div markdown=1> **bold** text 11 Extra ```backticks``` </div> **additional** text 12 ``` **additional** text 13 ``` ```json { "additional": "text 14" } ``` <h3>**additional** text 15</h3> ```python >>> print('doctest block') doctest block ``` ```{raw} html <iframe src="http://sphinx-doc.org"></iframe> ``` ![Fun Fish 1](fun-fish.png) ```{image} fun-fish.png :alt: Fun Fish 2 ``` ```{figure} fun-fish.png :alt: Fun Fish 3 ``` footnote references [^1] [^a] [^1]: footnote 1 [^a]: footnote a ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/gettext/poisson-amusant.png��������������������������0000664�0000000�0000000�00000263666�14654155362�0027065�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR��τ��^��Vέ”�� �IDATxœμwœΥΩΗΏgξ½ΫΛ.mι‚;ΨΑWΕ² Ζ$ΖΔυ%F»°`/1±½±kLΤXˆ`AΑJ+HpΩ₯μ.»lΉ{ΛΜyή?ζΞάΉe)² ‹ξΟrο9ε)ηyΞsΜ9ΊΠ9 «*ό²h€XΛ+$όζPh|(_:ͺ>££ ώ!PVπΡ&Ίζ­ζΜ–*�1u‡ΥΧΉ˜οηL*=%_tΤhz²DΔ΄:¬ΎNΕ<ؚΦ+ŸΦW[bZδœ:ΓΧQuu:ζ}ΞUbjΔ΄`λΝ}οΈvίρ]8,‹—6w˜£sΠι4ΠcN”άώLώoε°MΛv…Φ2xΓ·­²μΠeς©ΣΥ~§ΣόΖ'–/ν«ωττΠ ™τPϋ=πꚁό²²Γ$ΰ拓΄Φ%_…BŽι±š ύΟxͺƒκλTš―»₯&·Š9u=ys}_tμŸθŽ1}Υ!₯ώ@TF"”± ζύ—ςYrh€Σ€Vkή8°έiν4Μ‹ˆ1«ΉΩͺ1Mφ,©€Εjuš=­΄2ŽqνNk§±ωΟZ^λΩ­’^ΐτšήΤZΩ/n`Ψ₯ίٍίΎφ΅N£ωω--RkYτ+XM˜0AZyΆ²?5Ϊ’Ζ²¨΅,Ύ:΄]ιν4Μ/b‘¬l,£Ζ4ιqΡ:ς^¨KhφA‚œΗyνJo»Ά£©/*ς}fšζVεΣΪ» (XM―Ώ5σεƒ%ΌΆfž―ά“Hwεzύhk΄=Ιν́;Ώ>z•<σ ‘Ε‹#Ωm¦_ FƒZϋ‹ςΎG£m}«Vž¬ά…ZΣ€Φ²ΨhY(ΰ›]wm7š;¬Ω‡B!ϊτι3δ²Λ6,υ^Ÿ6Πœ9αμΜΜLχΪ7|#uMύ©΅LjL“ JJΠZ£”Mžˆ`γoό‰?aY–{ΐ0ŒΔΛ63Ÿ™ιŸrν΅ζΙ?4Η£ο:ΌΪπίΈ€΅3Χrδ‘GΪΔy˜wPWWGχξέΚPJQUUEίΎ}wœ ‡Γ\y%RQaMš„œr 2ϊpδΣηλ3DΟEd."σμΏχE>εέΖFQJ‰ˆˆΦZDDΞ:λ,QJ‰ΦΪ½vΛ-·ˆΦZήxγ ιΧ―Ÿ{]D€¬¬l«BAeš&~ΆwχYYYς©ΠιΝ³AHΣ€²Tμ«Ψiή nzάΗΥoΧsL^žD)WλoΏύ6J)Fˆ$άxσΝ79ώψγέί–e©-εΗΘΚΚΎ©’9δΥΊ΅ χοί?«01η"­s‰σϋρ’ΣΚεί–‡‚{ΑΕγ,ξ<ΆΐeΜiζΣ¦M#‰D\‘؟P3ŠŠŠHξYό~Σ–o̜9}"ΐ 'H–Σ\srr~΅©L"Β‹χ"+_ώΎ΅~&e73ωΥ$ΉΡΕpΘ1“’ςΗοη?3δ'ΪφuΧ]—P_β'”dAύτΖτ<Ÿ/>Η©”ΚΩRζ•ΦšI“Œ6mε†Μδf$znR!e“lWwU/bkH(›ΔδGŸβχεΛν …εw(ͺz</N·/;80>WιmήίJ)ώ~ƒβςŸΗΚVvKš6Ζ\ ΙΚΚ:*‰Μj‹Ÿώg–}ύύ?«φ0bέDz4ΑΝ7ϋ₯’9ο<¬nωˆΜ³™² Š1ˆΰ6rOΣ@υΌ 0ΨM―ς`ς›žΊ »{LΆiοoησςS<UΕͺ;˜o°)Ζχ»lwΙΝΙΩsχσ†H¬ΚT†ρ4KbτΨcfΖmΩΥjΜq)Χ“y €―€γφ|Η½o;<α‚ΰΥ©/Ύ ‹β-ΦΡr2nΊ4Moζ‘#:?… �žl¨τ(Λ¦€O6ΚPμ~Α.ΏIe>hŽ3ν@Ο‹7³νేoΛLbΞM(Ύ_».ΙαΩM ΰ‡>%Ξ5π ΘBε8"’πχμ]ŠΞΖν1ά::”]†aΛΊ‡]1¨Ηwoμ)Žv£΄o6έ{f’_ Ώ σ™Έ1G‰ύT¬ν-1Ι:Œγ4wP*YΣ*8χ$q―Mš‚aŒgΖ 0Zαεϋ‘ΘJΰ›OΖ³ρ#˜:#^—( Τg>B ²CΑ}W+.'όζ(OύΙ‚φ\Pή{π^ϋζΛΊ°Aχ>Y\²XQ'@q―, Ÿ"k}˜uί·zΖσΨ@£§$ΐ²βΉ•Ζ€nζφPMυa”φωΠ5£ΆσάηΪψxΊεžύμτw= >+^Y€žkΣ‘Η§’Ψ—¬lΝβŸμ †Β0`―γSF)~ρdεω1 ΘΜραχ†Βˆωžx³oŒύ5%Vk‘qν8D8Mψ5GσTœΐAΑ?^…KO·Ύσόβ©Oyκ@ c8όnΩ᜽ό΄1œIλFΠ{p.}η{ύω‡ͺzΞεŸΓ"<‘W‰Ά ¦*HΛΖ(‘°F±™P’§§βŸgόώυg�<’wΚπώώπ½‘vd˜€{Y±’ύ}xη₯‹P}Ζπόν.Ο)υ;_υ<ϋ‹1β�žΖn!n4<^„Φ–qυ''DΎέ’°ζ›Ήυ„[-š7F)ξ‘©ύ�>h§‹mr°Εβ4vίrFBΛμ8β0νΐ%RxσΞ₯Lš >ƒWώo†€zNτD=.„C§_»νζ €ΌZχH[9­nτ «¦ΖR02Ξ8€aψ4ΰΈwρωώ―¬ΊhݚVΒ­_<ψ­Oœy¦²†•DΟ‰ ΐp ‚ργQέΊuΛ¨{·>Œ'Ζ‰Υ½&\+›dST=>Χ+>φu©“^ϊςΌ- Ή% ψLdΌ-xŞ2ο―_+₯”ΝΪ /³RRe،+¨ργν‚λλλ#Ζώ(cΪ‘Ρ5Q/pI‰έœόθS ό€ΜΓ€ςδυTξ½€<xδΒΐ–00žo”?�wί}Χ―“9LO˜Πf‘>c*밌+ΉΨC€ση*πς?+ψύ˜ε^YΔκ¦ΎXžΕςΓc7<AL‚ΗWπψΒG}ψΗ?ΆnήΜ©ΟL˜8ΡZ)ΨΓ›DIIΙ‰΅΅΅―ηB–·i: x”ΰ €Ι{OΕΏ# φC(Ψi/ΈΥhΦZη:SPQ‘>,ά„Γa²²²ΞPJ ƒΛΗ#‘O‘ΠHλ'ΘΪYΘEώurΔˆaΨΐ­u‡>NϋAήZL˜€€ ΣΣ’’bϋΠΜόΔ‰ˆΦ0gŽ2g̐‘‘Hde pM μfύgΞύA€#iΩαΘΞΞv'L ΓΈGӳݐ““3怓TΗ.΅ψ1@D:ΥΊ‡^s·�Dήί_�šοf‰Υ1n SIVeτΗͺό»!ΡΨ²%Fύ-έώΡuu*ΖE’HυSflf֏oΉ°#κκTŒ%g*1-Δ4i~Άg‡.2ξtΠZΣ:e 4=YξΡe§†ˆψ«£QYXΈΕOX~:USXνϊ…οG7 ΝΫΡ΄lW¬‹FeγσeaήBΡΦOδ- ρƒποc’4φƒ9Ύ9f睊ρ%λƒŸ™gאΉΘdζ¬ήΌX=€ΓκΪnCΒ-AM4*3š›Ω³[₯»ͺjcζΖO Ÿ² ½λκ4Έ©K„™5½ωβžnh4ώ°~GΤΧiVSn¬²ϊΣ&φ/&Μ‹kz3χW»QcY0 ύλλ4M}νŸΦΚΌŠljM“½»―t›z MFΣΤ³τY'΅g}¦©Χί[ΟΰΒ*,₯˜ΎΎSͺ#hΑΠΖ‰ν]_§iꡍύ(Νϋžƒ‹« dξΝΉό³r/{ΙΈeA;;ψNΡΤΏV_·Zef-}«„Σb’e)kf›2›ͺ/_\Φ^uΆ[S·,‹oDŽ:κ¨­/σ䜬ΐ'Qφ(ͺΖBxsέ@^ލΎάK 6ϊ΄­Π·,‹›oφ‰ψύpΗωeMMMΥ›Κ³°₯Ej΄¦oώjB„δ£[ ωτ7ξzYS€σ―• …Bdff&L)ƒύpς‘‡zοΆf͚%Ξ΅}χΪ—}ύ/©lμK­eΡοδ5L=τIξΈγΐξί?ϋμ3^>πeJ)ύψΞ>wRUUε–Y^^NϞ=}O=υΤVφΫΜψ 7 Ϋ²Ψ²χ>/1κ{"£ŠGSSWε.r–9ί Γΐ4M ΓHYVζσω΄ˆlρ Βνͺρμμ¬[Ί*δς‹D`Ζ;0ϊ�Έςθ{&φ³΄Hο€U4ώ3Φsΐ«SVDΏςΚ+œrΚ)n_}υΓ† #77—††€+¨{ο½W]~ωενΙ¦“ΌΤ̎/ϊ՞ΐ sγχC!8YΔ7$,τ‰H¦M›&ΏψΕ/ά{W]u•{šš7O―^½Άx4§**lΊ?ϊθ˜ΐΫoΟΨΪG±’ηۏ~έ‘NΑ±ULͺηU°ξΞ6Λ*αε™π—Ώ[ξ‚@­5>ŸiΣ¦ΉiΛΛΛνr•‚ω 5¦NŠRŠςςr―9lQ+VΙON- nΊi³&Έ<΄ΟD¨ž+‘ΔeA¨ͺέΕONΛΰμ±w%UΨ‚Μƒ—…*₯\Ζ¦{2?NސŸΑ²JνΝ·EŒ§τΉ>ŸύΉ’)+3VyουνΫ=?‰ieWψό _βͺw₯ ½ΔΛ»Όμœ n°σ ίAπί™pζ™gΖAkMyyy ΣZλψ‚`Ω«ΐ|ŸΟG8ή$³{ώ~χέw?wH€‘²zΩƒίNχχ¬Ž> ςΥΥβν ”e"ΐ˜Σ―I†‡Xο*W½'2ρBπϋμτΓzό+Αδ?>Ÿ/Ύπ f^Jž+dee΅ΙΛ>ο*ώ Yͺ©μΧ}.7RΊ’FΟχPόkΛ{ΑωήΕ=ŽV₯Χ• ΒΎ=ΎPΠγΉ%ΆL8±Ϊ v^m—uέoh“p§ΫzςΙ'‘yρςέ’b«­d^βRP—φ·~]Z–CiίlςΊΘΛΞύ›ρα‡I&Q€½&Ξ@#TTΰΪ¬Δθ¬U1Nν,™)›δ¦CjΝw΅€œ(β°nCΌάΠ‡‘”υ―Ά�†apφ°sάΕ‡Ξ§³ΦYNb~’{Ω9μΊaΘΜέ³€O₯}²),Ιpg<UQ‘λ.ψυ.sŠIφ”C`Oq ώ«Ο${½{ ŸJ<n§ž€Ώέ�§£χD;gΥxœί―…n·‰>utΌξ‘Ώ‡>ƒώύΊ±ςεϊ˜�ν]—λ½>βŸ{€R”τΙΒ0ΐ0}‡ζαχT.mbΥβ&Τ‡ΞΞyϋν‘- ΉmΗ m©ƒ;/‰œΌ&-¦-Η© ρΕΏ›Β„ν7&]zΫO=6i œG ήEDΙίOύ`‚–e(”‚W #­QΞͺκf―wυ) Š3ΘΘ4Xυm«5arΘαA’ΨΝΫωsΦlΕ*ψό[/5$PηΠ欁XςΥ~›e\Έq0 §]KΒj(7Mμš#lAvO`Œ€³—ŽݏHν ϊgp.}εgp—lμΞ£½),Ιδ™!-vΟ`c]˜ λΓ„‚шΆλIθΛ½n<Ϊν‘ ϋ³Δe]ή5―nπRz)J˜τΘ„f#ΈώΘ1biϋL"Z5ž)ΣαιiπίΏ₯6ηAΔκι?*ΧyΗž(ΰ�­ Γ@DψΣ‚ƒGωΜ’χ|ωA–)l¬‹PΏ.œ4γ,τuœrfXοƒwΏ†£φ"‘Y{Χ¨@ –2xν8ιWPύ5<όχ‰ ͺzΌλδˆθ3‘Sΐ-OښΤσ<q@R3wπύ΄XKP tάΡυ8‘dίΪZ;4‰uο;₯όζΉΓdΡάzZM J2hάAcL�1άsOAχΖΖΖ $Gm<žΥε P½GT?ώ8瞰*Ρ3φždησ¬ƒυ–ε^ς΄¨KsΊΦα ΅­ιMaοΛ­ςKVίΟξ]δk{@cϊo+°qγΖο=ΌRΓ…žέ•¬{;΅KυώP 0μwTΟ-_ηYψϊ Μωx.Gτ1δα*YΙΏτΞ’ξΝ1 πείW pΎ·Ιψν·g …ή‡)χbΝHΕ*λS{’Α!Π b$ζ™Τš )κR=/ΰπώ―y2z4-0σ+8zοā7αYΗΎ΅Hiκύkώ™MMMΟmmAαp˜ΜΜLkδ~οMN­Ετ°σπ+Ε\τσ )Ν7Ωwόώ6ψΟ[P?Σώ-~πν"²₯γ‘Ά1a’ŸŸ7~σ)·Gu>Ÿo 1_tςhdα+HλΧHhπ²βδƒη;„tˏ―oνΡ£ΗAνMΫ(²ΝΓ0ΤUγΗΛ[’φΞ;sƒ·v4MЁŒτΈβŠΖuJΑ}χε<W]]¦=™0UΖϋοζ»οκ@Ϋ%u :\γ^8ΎΔ0ΰ†6ίύό(0a2t萂ͧμΒ‡hώzΈ�XK―σΛ %τφ’΅=5)ζΞΉκό'`g? ²ςβ#hxM”²ƒO Χ kfCΈιΓ°CΏζ§zYΜ“ϊΫ ŽΫ‘΄n-Ί”ήJ/ψ#±,ΜΉϋ[²ρλS΅₯Ι³ς�αώμΛ20-ς/ϊ|ϊŽ&wk°];τ ²θˆηuDJ‚At(‚E0ŠG—EΎ}ρ#1₯Ώ}-ͺ»]ξ°m;]JίDgο-:AbŠΧ­Qϋ³%Xτ§`Ꭶ― „ō­χ·ΎΤGZώ]*:ϊΣΪ²ϋ' Ρ2Έω­f©ŽFεϋpXžhΨ°‰‡―]ξ}3‘ŒΚH$άύ¬V‹οςρŽ κΏ”–ξT}Ήƒθ}3X{εΊ/³ ƒ†#Μ_ΫΜΚWbυXΜΘεΖ¬ŒYoνhϊ~Ί,}Kϊ6ΏΣ\©5o«©·,‚Z!¨5Ν†π—ΦB_Ή;U'ί₯τ6 "ΖκhΤς=W λ5&&Q’TŸΰ½GJh΅4A­™ά»ςωwOί₯τ6P}aυίςOΜΏόƒ#… 1 οuΫFzί]O4ιŸ‰ΙXΖξ4²άiݞΠZrίln©ϋσz"ίΨσλ_ΌTHυ¨€νΪ-+ζβ…±ψD ƒώ±βΖσͺΖέΌƒIί"t)= –7‡d£²Xcš„κ-φΈΞuνΞg”(ΛΗeρφe„Cv#xcΐ@ŸΟPΎοRz΄Φy+†­hŠ|‘"ΥΜs· GφZFΔ2Sά»σύ Ξθτ2ντno|Φ” ΦηWΊΧ4ӈπϊΊ2‚V<zw#yΣ’1Λ π] --ΡşΏο;…Ν’KιT_RW4›ξνζ*ΤZeχƒΦ¦΅jϋw„•£³™~]_ͺd’ુƒ•Ώ―ιtJο¬]»ζΨξέK6ŸΈ±ˆE"±Ez ψͺΎwΒΈ<(‚ϊ6Μa£–΅ΩœkqQ§“­ƒNKΨo°ο]q…ŒrMžl¬…Šφ^·n]C Π~kΛ>zγ(ϊί3Ÿm&ηΒ ξu&J”gρωέJά­·θTW­€ ·FW/ίgΟ~νF`;’S+= Γ8Ή’BOΡibdŸžžΠš5Ε»UW―ωή{,Π氈Ej@‹G©eΏ¨!kF«kΑ�cK-΅�)oί3ψI|­kZ)Ν£—)Γo ΅&''ηoαpψrο›ΖJ)²²²^niiωεφ\,ΈC”>x°!Η#δζŠΞΚΒΘΚJzΓσ„ΫΊΠ`ζL" ΅aΓ†γN–χXqId}ΘέyΤ*S,ωΊA­Ήη¬³XωηTVV&cM +Qωo½υcΚΗp;·s₯yeΒ±*’•/"μ½χή,Z΄hΦϊΐmη΄mt*K4h`ί=V­*/oM>χ€ό~hn†εΛaΙ¨¬„_υG)/gθ~ϋSάk‚0ιdOΞζόσΟχ”‘ώ ‘δλήΰχϋill$777!]ςQ4ήΌ«W―fπΰΑ³LΣ<ͺ]…ΰΤΧ…ΆLΣ$//―W$ωVk]α‡‡o‚ί‹ϋ:.ΰΎΈ•ΐHς›_Ξ5ο-­axηxφ Έρβ:ZFgԚ_ Lύϊυm*Έ-Wμ=H)ω¨Λ²Z|QQυυυ›ͺ§έu€JKωό΄ΣΨη±Η²χnmmύͺ½+Ψ’Ρ(yyy ‡ΓgŒ S#ŒΤΧ—ήτ\ƒψ;›Ιοz©ΔμnΩ`ο4PU3ηΑΌoμοwΟ\ΞGΟ~Δgœ+7n™ήχΒ»wοΞΣO?ΒOΒφ18Ϋ(xαl™ΰ”;f̘—oY~Ώ—ΐΛ›βVBΓ+*Hχ*<˜³vmλΘφ8€ΞAϞ=ϋ―[·nΥM€‹NτXlρYΌσA5£χ°κQ’Fι1ŠSš~ϋ4°ΰͺρδ8;˜¨Δ‡cYSί†,š Ί.Ί>ω*qϋˆ[±cεŽ8χǎ›πΉ·χmLμ:π$¨\§˜:uͺ«t'­§>χ€‘φ‚ …Bά~{Φ-… Ρ{ο}}ΰζ›oΩβ9fΓ0κχέU-x6ηu.τ™„ (R5>Αr½ΙΌ΄@μ~Ÿ‰;4,Oavό=ΏxΛ @ٍ<χΔ$Ξ8ή~Yαςϋΐ Γ=ΧΨG?͚ –Fže₯Έp―Λ>ωδ“ΉπΒ Δ‘GI^^ϊΝYE„Œ€Aτγ4]‘‡cΌψβ‹Œ7ΞΝgΖ {š,?mΏ’»)`αΎξισΑwζNjhhœΰΈ±²²²βκκͺ:λΣXE*1"OpΓͺl’[τ’οΎg·¬GγŠή„Υγο=Ξ³ˆπΥ·ί2,Ή„4J@Κn±‰α•ΎΙ)}„ο@{οƒ_]cœz ¨ρ3“#μΆΠΦ}₯}ϋφ₯ςΥ*7–HζΗΫ9§PΓ!??Ÿ††•.Ψv?ohό­g¨ ~χΤͺ\§Ύ”·κ\XΨ ͺ5MοΛλI¨¨�™kΥ^Mφ­Ξ½’sŒ¨ΨEΛW±GΦc‰oόz²&¬lRόŠ(ήxu<ε%zTΩD@ΉΧsη©‰°¦.…γ΅ΣξάΝ}Χ;₯Oχ"9Oχ=;;›ΰœ*YΎ^–&Θtx6F$Hl³τΫώ5½Κ J Γ>X+Ά΅X˜¦&0ψόΑEΚ�¨«k£ΜΨ†7ξ~Δ%ξ|6±M|>.=.~PΔ[ĘHώC€Œ±"νmUv)άeUyϊ~η»§st&N~θΚφΌϋSd�Ž%Ϊιƒ![(οΞƒ‘ϋΕ‹ϋ.φœEζΑΊχ ΧΝoJαήϋŽυάqΗ ͺhŠ+ΓC:Σ€‘y•‰lξtςθΗϋ„­ωΓe·}KJJϊdQΪ7‡²lJzgΣ­G&ΩΉ~̈栿μm«dΐ�Vsύ7YjWΉ) H<,,z!ιΊ7=©n€˜΅Ύψςλœzπ')U—ž�ύJ}œwv9ηž}0ΩU7ΪeϊBι9<φψ3œWΎ,ήU$Gπ}nB\o °fΏΌ ~}dψα»ΰ―ŠΧ·ηΨk@’G9ωΟ0υ=˜5k£FJqϋ‘PˆΌΌ< ₯‰|œδάEΖE‘–gΓ­5}Nν5°°ΰΕΌ’�έ2b Ζήa¦Gίl2³}ddω0£š–Ζ(M’lάacm3*. 'WT0%EΪΝ€&΅e¦ι œ~4 )Mε1y+Žd&ΣvΨI‘Ϋ-oďΈάZh ™™P] λ+α…ΨζjxΌOώ67wl"Ιi{sb’‡“ι†ŠRΊ¨4ιB’8ώ΅aΆ‰y)#£δfg`Υ·PΎ —‚n1ο bۈ)ŠJ3ΘΞυSX’A°Ι€‘&LCm˜†š ΅aZ›-»ΎP(dά~{VͺHM ˜DY:Nbχήf<””,©3φΆή”ςΪθe χDn~lιζά·έrα²£βŠ2FΨ§Yž–€ψφ„Α½=}lty‡`^eώίkpύ_‘΄ΨΎΈΌΚώτe(v[Ζ.Ηυα…έ›P†«‘™³jzΊu{ΫδΔuύOφήΐ²™ΝΑηWάRXG‰ŽςΏΑή(₯ΘΜ6ˆ„4™9>¬¨Π²1Jγ† uΆ₯‡[­8;›ΰ“–Mα:ΖψΔ{μ~(έΛ+ΐ6‡nιΰ+—" nš<!νΌόζ _|%~xδκX}e“xdς“\8α;ώ}+όοmφωνηΗΆŽ:υX,Ψε#©ϋJgΥήQΗΨ?Αsμλxσ\₯ξͺΒ\δ«ηΓV―dυH°ZΗΝoͺˆn3jˆΕ‚&‹ησϋP[’±>B Γ@k!άjl2iΤ₯Gίμ-Pz²²ϋXίpΗΞχ|Έγψv*τ-τ\—8#BšΌ’ΛpN‘9枧ΣοM’<ώΈβΙΟ‘=IΨηΛ)Λe₯η_#₯`έ† τhύ;ΖψŸaαhi…•Σ ·3BNγ₯’-=₯Ž$φZLΘ?$~ΨΓα­{ΣΧΡλxhεφliiYŸ–ao="άπωq}†Ώΰ‹κΨ°.dοΡ„‚&­Ν& Θ/φrι»ϊj$;ΫSŠγμΣ ½'©{‡lΝ@l~"Ά™κ£ƒΚ8ω«$(>Eήk.ρ[”Mbς£s~ωΚx ˜\dξ%gΈ #d¬™Πΐϊ^@bΗΩΊΥ:Ϋy9ΏΕ3 πδΖ(·Y‡JemSuδΝ³ν.gτθсιΣ§ ƒQެΨGP°vU+ώ€"'ΟΟ%εWϊ~7ϊ<ν²4lυγΖQ΄Ω’φUσβα‡{φ[»vέκtχ|>ίΜ€5€yv<‚ί”»wλŽaΣX‘‹>Α3—κρiΫQΌpb#§ΨŽ_ή<BβޏI LŽ·ικ{Ώέ•�� �IDAT0F€ίο?Κ4ΝY[YάVÝTϊk7އ6•pnππΓ½χ―^³0~s]ϊ<€eYCƒ–ΝœišVΙ²>#šΪΏ»ε½Φ¦tν >ŠK_hs8μ’η‰ή&¦π„<*±QzΛTΓcΗ”oͺŽMΐ[‡1rssΛ ₯zscρφ‚[SO=i¬Xqφ&E·ήšqR$™Ϊ„ˆ>Ÿο5­υ‰ύzΑ²iH§|muœi>,S@•MBDψtζήΝS–'Ÿkε*Ρͺ½i&=@p.d«€:<Ÿ^w @ώHhi%x;ΤνWt–eqΣMΎρήt“eέ·ύΙJ„i𔕕°aΓ†7’Ρh `΄ά} 1 {h©R­N<_\αCβˆΓΉδν_“ϊZο°S4OΎ—έ ΑV;‘Οη{󨣎ϋα‡žΰχϋΪΨΨΈk¬!7›ZZZξσω|βEˆ9eeωο …Μ?ξ(bΆ……―\~yδ”φXVεΕΪ΅θ»phCΓΖοΪ·δƒvΟφEvvφ¨ki}―­q»D"θ7ίTΖΙ'Λ­±{θ!΅Έͺ*ΊG{!θlΨι”ξσ1Ψ°}Ξ›?ΑBe»Υ6Ӛ¦ΙΝ7ϋΣ6‰ϊzxυΥώ.]ΊlAFFF‡ΡΫ±Σ)} ΡwΒ*`κŸ Τ~ϋm¨ggιS»ΠŽΘΘΘΈ?++σλ‡>™ιBΌ5΄6;ο j[ωrŸ+΄6±>*+5Σ,sΦ>Vθυ!?ΰqOηB—Ϋ€^ϊ3‹όΓώͺ�¬ˆ!‘ZDk|e?w_ kš\$υwg=±γ¨όaθRzPέN3‡|Ήωτψ]_€Φφ½ΛΠ‘zD F@½ƒIέjt)½-ψς1œCnΧZ :ξΩ[žΩσΡ‚θΟΫw)½ Hd5ΚΘE΄6�$΄>ρ€/|’‘m]Κ³Π₯τΆ°qΪd B΄`~΄Ώ%αZνXzΛΤc2Πb[~Δ?gSΊΥθRzPCώ{©θJ h ΜπJΡ–}ϊε†/Β’5’…’«άΡ΄n-Ί”ή”αƒΊφ΄•«A,Z|ΎL\+Χ‚ςωw:ή₯τMΐQ½žHΓοq6-8Ž /ήΈSNcο”DooDήμ=F[9Σt(‚΄F°B Ξ―ο’ݏ"’·Ίώ ΎΨW–ξυrΧΔώOΝasԚHDV‡Γ²μΐe’͝O@WŸΎh­Φ;λgϊšνχΦ6Ύί›όyι½›ΟΩ…"RΤ8₯Qšg4ΛΊͺ¬ ‡εuu;ί4œ]–Ύ¬kŠŒρε(₯Θ]dRψb e~?3?«ΫiΧSuE ›€ΦΪXX†άχΒ4ΏΥLνΣ΅„›Β„C‘Πaϊπ²„y[±ΣΆΦν„‚<{ίΎ;Μ‡δ DƒQ,,Δ~£o§D—{ίŸk^„ˆί„CΜXUʌοϊΰ¬–ŸΩcζ¨M—Π9Ρ₯τ6 ΅&²$ς<Dn―§YkD)Μ<ΕΤ΅x₯zӟθގ¦σ‡ Kιm@)•γ—gXuζ= ^²A‹ ­uϋfbv=Zύρ fMψ Ω#@Γ!tƒF‹π?₯Υίσ{όυ±§mJqΞβοgμhZ·]Ρ{ˆ+>kΆr‡es[[1žmfΐΕ i7σεNΨ©δΨeιι‘QόeΤ―‘ζΧΩΌ_ΧρόάοΪΪΉ\|—Σ@‡t/£Πΐ?r %mB°ί”™±ΎŒΧk`:‘LρMΩΈ£iήμTni{aI}λšβGZzΥ\WΫ†E˜QΣΓ>ΚΓs|G Bζ7AφΉ£’?L?f§‘εNCθφ‚ΦΪXcšΦκh”όάUξυ(QΜ¬(SΎοG«₯iњVη­6΅‘Ϋν—μΧ°Iίbt)= ’₯ *ΩΈ8¦Y„έŠͺ!%ˆΣF„W^@Υ°LZMM³ΦΌ7xπN!ΟiΨ$TŸU}vtYλξˆ κza­2Ωgκ„~܊ς–'4„e¦¦+KBδ»Θ½‘!ϊ¬F°wImνg0³¦Œ―ξ+N‰ά½ž-{vΣϋλvt)= ΏΞF’Άjχ(ZC―ϋšνθ¨:-ikσΊ‘DKUκπ­JVmͺμΞ‚’Ϊ^> ΕΈ³Ό‰ξυ(Qζύ§U#3hI>gUkš|B$hbT‡xο†uz™vz·'6Ά,28(B¨Φbΰ j�LL"DμΟ\“―ΪΕ>>ΫΊyŽε4>©;jΑ™ΟΪ±œl]Jχ`‹€‘ΉŸmΑ–}&ϊή%ΥD­ΤσTiΨPw“Ω—υbΑ/»³1[1`ρ !ZšΈν +b±$c‰�¬n,£Υ±`ZΠVΌ‚Θ&Υυ6„s"η(Fηuͺ@Ξ²,Š‹‹wȞ1‹ϊ,ΪΥ ΜΚ VψڌMΏ h˜Ύ~�oL€‘΅ ŸθϋΡ۝­@§΄τ~ύϊΉΰ‚ΥKηΟWϊw²Οlllϊχ9±hkπYK0š™»οd³λzΪVοn±ώ»Ν ‡ΧqΐΝ+‰εφωŽΕ_Β%RΆΠI•ξ W―^9gœ±Ά₯ Ά ρ·ί*^=ΊΊ ΄χζ~Ÿ·%*Bnή*Όb‰ΕTQήXΫ/υν4Gi;Ϋΐ~ΎΛ.*°OJήtj₯;X΅j•qυΥ¬έw_ΚJ₯Ÿ~Ϊwskkλ„m9K][Β—αV‰Δ”Ω}Ÿjό+μ'iΙύw$;Κ ίμJ³Οcω± ―UkWι½ζΤώξΉ‡ΈΝΜw�v ₯;0M“‘#ύΡγO>uλO<ψΏ¦¦ζ‹·fΘo²Ώ£–;-ψhwwψΥ‚°WaU‚g1‹kΉ6ν}ϋv?Œ³‹.$°Ά ‹+ΉR\ύυY·ήzkˆδ$ŸέVXXΈGCCΓβvΠb§Rz( ##ƒAƒ|uηœ#Εm₯†x챬ίxγ„3―ΎϊΪ6W:,b‘½«w¬][–θ²ΓΒ3}Nβcυ1‘Pˆ@ r螣ψξέ»ΣPίΐίω;Q’\ΈφΡhτή>ψ€C=4ν1ΪUUUτλΧ₯Τ›"RΎΝBΪlw₯gff~tκ©ΡCŠ‹EgdΩΩ>_β6Ϋι6ψέ֝E †Ι“3ή=ϊ”ςηŸΑiΖ7|c)ΞY―ΛjzτΫϋœβb"‘~Ώ?νΡΪvΩ‰Κ7 ƒ[Έ…ΣΏ8AΓ₯α%υˆNΣ4‰y§ΧΙ΅τ’’’!ϋξ[·tδΘχjΨύχ³π½Υ­ϋω²W€Gρ�{°‡{ζ*€WV[ΧϊφνΛρ½/γΑΩ—‘™™™ΆKH—Χ0 "‘ˆκΘMŠ;{‡ΓNΎμ²Πω™™ν_ΎΦΨ£j5¬X‹Ώ…βsκyη°ο!‡2hL6Re’PμΑφŠWR’ΞN瓏⬬¬€wοή »U'Ω™œ_)…išͺ£Άο4Jχ"‰0pΰΐ’β⡫ƍΣ9θς Γώ½v-,_«VΒΘ½αˆΓμ“φ�CrζxΌη°Hό4‡u`φΏΖώ ΛιΗΞΙߝJ«U€G9¦i’““ƒišτκΥ‹κκj7Mr―”" ‘™™‰ΦšύφۏoΏύ–ργΗsέuΧ%δρΦΣ离4vD‘νΣ4ΙΟΟΏ­΅΅υ*ΐ8xxηQΘ3bGoxNRr‘|‹I纈ΐΚ5πψψυ_ΣΪ8Π‡Ÿ\ZJ8l,›l•'œpo½υV ½UUUτιΣ'εϊϋοΏOii)χί?=”z.’χΘn/ΚΛΛ9ε”S|]tQ»/΅νTJίc=ϊ,^ΌΈRDŒΛΟ†Ώ^²ωyβύJό(-οy-βQΈχŒ–΅uπβtxo>ά6s ž)β–w―fΚ£ΊVšάž —Λ/ΏœcŽ9€—^z‰ΗάMλEΊ�°W―^<σΜ3�nΙ^%-ΛΚ݌Άͺ’yψaβκκΘΖ˜A:όσ3{μ±°ˆ°τ Ψ₯t‰½φžΔDbλMwv©Yii…‹α½πνJψ姏σσΊs]E{0xπ`V¬XΐΤ©SSΕqΗ‡Σ{ƒΆdΉN›6-!MyyyΪψ –―έ ΣΠ.ΊΘά}$CƏG²²2ώάΡ<bΜΎΘ―}4lΝτΌψ‰Μ;,ιΟQ²χ;@°τΖXΑρΌ^wξώN$deΒƒΰθα0κ�ψτ€sӞ‰ξΠΌrεJ�FŽιήσφϋ΅΅΅)Ό*₯Έδ’K°ζΩηΚ{(Œ;–κκj7_KK‹W.ξ_Ϟ=·L [ ΓϋΓ0ΰšk"wMšδ“sΞQVώύϊΆgeZk”Ru>ŸsžŒΣσΰΨ}cJι3Ι=鉏׽ʣ4Χjr r²ΪΊυx”aΜ½ϋ θ–{ν£‚γsΚLŒΪeά{―½ΥŒ€%#YINΏώυ―Q†MΣΫχΩωϊ{ƎΛoΌAnnn‚gpς]tΡEθΨ޴퉴])0@ŒsΟ­¬œ0ΩcΥΊ­Φοσωfψ C¬O₯Ψϊ”ΖΎΔώ3zOL™˜QΣwzτ„’Ό<>Z”˜7αl΅ώw"*±A\yΏ}vzv. ώμ;΄mϊE„K/½°§»ŸόέQb]]]Ό‘Ζκξk[ώνΏ{�Γ0XΊtiJ¦i¦ŒγΫΖκΥ›ξ2”‚ΣN“¬›nςΙ€IˆRκ)'²έf�šk­ηΕϋXηhh`AΜ₯=ωΐψ=oΪ4Ÿ�ͺψWξχCNΈσή~^†Υ e7ΕM_ΰž§ΰτγ!s„}vzAn’‹΅ωW Ώ΅Φόόη?O°H­5cǎMΘ—Ÿβξ»οF,›.§«qψΘU saώk»ΉθΤχΠCΡ‡ ‹Ιͺ5L˜ Ώ½νΆLΉβ €¨¨`ψ¦€aŸο>`cXζί±lγΫ.ώˆ gξ¬DKNvσx¬Uψ‹pΤ«L35hsσΨaό;KŽΰΓ%pτˆψψ_)P>'�Œ+4έM8f̘1”——S^^ΞΨ±cέtι,ώύχί‡n<νΞαOΑιGΪ–o•••ˆ6lΨRΥ€Ε€ίτ}©ο―{ί•μ-ό ΕίΑ†![UZ#ΐε—7Ξ½υΦLFRf^^yφλ―Ώξ=!Vκζh c³‰Ε¦™[—Μ!$χΎξ‘ΩήίΔϋι„όxB\o‚)Ϋ|μΥοpΔ™ποΫΰ©©πΠ΅v²OΎ‚Ο§@MM ₯₯₯iϋu›–ΔΟδF‘ά?{»Pgψ¨ΔΓ±‡1™‡ŸΤŸ}½Γ0j½Σΐ[ŠώΏ)λŸ“™½JbRΩύό]lZ¦ςϋμ‘…ρΕ^ίκRφκΨΚ8ϊhρtΠλъ €ΈΨ zpŸ0\ςΈvε\{Ξ[‘Ϊ|οΖuΧ«χ6–Ζ2ΨudΈ»R°ΰ»8―�Ε±E•k`ο2; Kηβ!QΑ.]I3wή|£FΒtN`φvižΚαΙ)αƒGaXχ‡‘ιι%Ρ6Ž»f΄ΏΈ8UfŽŸ@Fμ)‚Γ.ΨΓ%ά0 γ₯6KhjγΊ“½1υVCƒy˜ώΜΤ\=Φ팟ί.%Μ’ρK^Α$ϋn[P±†β6ϊmP˜Έdνγ/Š‹SžF$0νaψπΓτλΪz– ΗΚηΜ™ƒ²β|;tΉmΗ‘1n�όαψεqrzNNΞ°-ͺGΒlΤΥќ<?Ήω~rςdεψ\šΛΞθυ<€qβ‰cΫ^έ‘­ψdεϋ‰KΜΘΦΦΒ½ΧaΟy'•ΌΦ§~bΗbύΊ;‘β"IHnš@Ώ„ ž~φΕΔϊWŸwh<£Δ‰V€Inΐ˜αpΔ‡osδl†{ΞΊ;― β2pKOꎜ…›! ~Ή%u‰hδέa’S · @na€ά|?Ωy~2³νqyiIΡ―�Œόη₯MwΞφx^ε;OύΠOϊΐpΙ)qΒ½—B€“ί(”›ζ±ΗžHP΄Δ΅ ‰†.�έOEˆPΏ=ϊ«De;‰ΡΔ[›β„Γ›πY{Ί„Ο—Ϊy *ΖlypfατάΈ’½u8PΚζΝε7™?l:”R›/7xr–|u˜9™dηϊΙ)p,=¦τ†­Ν&χώχnŒΝ ^«lΕ‡= ( Ρ(,žW”Ϋo%{CsHρΈX9ΆβΟ+_oτΪλ&ώο₯B[H->;rWJΡ΄rBBo£σΆ:ap)X:©ŠXβ₯+pλyΠΏw&‡rHΚΔ‰SVς΅Ω³g» w*HŠ']ϊΨT‰τ$ [ENΠh­9π/»Φ?mE«YίΜ'„μ\?Ήωr dηωΙΚρ‘™ε#i―TylΖC0²²²6Δ lοθ5γάz+μΪƒDE§qΛ^% 2:DΦNˆ7σXš;ώ½Ž…σšΒ~GŸIe}ΒIY Vυxς3άbGNΔ«ϋΡǞNεO%ώΉ’ΐš·αƒ‡>A)Ε Aƒ°,+­ς/Ύψb ΓΐZ9ΚVΈβ ؜Qˆ$њΠ0=@έ8πΐϋ�άσέΖ ίφ[ΊϋyCεθ›χ—‚‚μ’ΜεsόάW—GVŽœ|?ΉqΧΘ4πg( +;pί©ΔUT“#(! ϋΙIjGθ(ΠΫ'κ$AώΙ?D4ί―]Oy0ξ™=VpΝ`v˚ΗτηΕ³ (5­α»ο࣏ Ψg–Γž{›υσ»‚΅€σΗ,O`‘€Π~φξm(β±:πYΆΥ‹¬βΥΙΞ»šmό>8ύg»ςΔυKxΰR½βKΆκΨoΞ΅]ΔΚΠ†F«φ΅oΞ}”ξ₯ωψ|*€Ω(Y9~|EvžŸO!α …? πϋνB³23μz+*t»hN¦”DŽ<œ½?¦{{™NH·QŽ7_B Χ=Y©ͺ·"φ3̟SΖΫUžy#Ίτ뿏ήφ>»Αnύ“ž¨“%4‰ρ†GΉ’&ί3ίυΰ±ozΕΛT0ύX…D’|Ώ¦…?Υ–bψœΩB»¬’’L”a2 jΓ4ΤDbŸφχ^rμ±Ο)ΣΙq·ΒF₯pγڊM3Ά%!η^Β„ q8n5 nύίRn™Z“Jγΐδ8ΰ€Έkύη$0Fΐ ·CS0ΡΊ>_W:ΊQ‡$]Oξ]χ”>M·Σp’ώΌVYŠίX=ŠΌΒ] ”R™Ά-φΛΦdηωcΚVn—jΔτhYθ8οŽ.”RΆλλi$ήLM6™CΨeΠ>0<BΪ!m’λςΆ|Ο‡+!₯@ΊŸΞŠΕΡθ<Άn€‰ύh5 @Ε#PqAbέ’’ΡσΣ±$7ν|ο}ό—6ΪK³”‚Ό^YzΡdχΜζΕ½‚H(Β™+‹@A·b\Ηaε*ώΥΥ­ŒΙlαό–~dfۚžάm=ί6 —^ˆ@4lΡΪlbψ‘Ζ25–%8ρΊˆΨJ_Ύ\τώϋaΠ‚;ΊIΫ$Ϋ”"το%GBέΜΉ₯~Rίοzy―HŽό₯<zΧIά4y^Κξ�τό ΑοΒ8Π~ΨςΝwq―ΰZ§£X#Ι1bΒ5Oίύ—σαΚ;λύΝΏ·ο+Εΐ€‰Ώ(³^Έ¬[O¨ž`Oy,ά.Q)x[eπΆUH~7»Qά›_‹/·€έi$Λ4Πk#ΆWπA$€‰„4fΔVΎ�Q3j―FZΉ2»δa»τ|Οg~§ιϊζ˜PφέέvU+IJ‹9ά| ά9h§1xgρœΐNΕΜξσy{±-Έλ.Ύ\θ5‘ϊOΰ΄kαωΫαΤ«γ οϋέI]Jσιάwς_qͺό…ΔσΥ}ΫH~· ς»ؐŸM΄Ά έζ?έΚΘοˆύexΎΫΏ ’~;ί7˜ #&’…ΜœΨΈ<ίOKS”–F“`³I8h k’š[ƒΊ_«¨ΰΔ΄’ ’₯λ―“‚ΊŠ{lfχ¨W©’’z\arλH1ζήqZϋΔGΖ§%3ή|ΖWό"MWΣ{(‘1ζ©Ι·ςΗΫΰ…;lΕ?›MίiΗyθIκ»“ωpyMF,aΘžžΞΧ‚±#ˆ{ΑΨgΤ€¬αF£ΦΊΠIkι>#ƒ7ͺ)š΅ώŸ7Zαμ+|J»³β›&jΒ(Ca™šPΠ"ΨdάΕηW|ρΠ"εΘΘΘψDR•.Δ§YΫRΈσ»VQjxLρΦ&—'Ι_<­Γυʞ’}λe8ώ©‚±—DΟ€Œ9W‘©aό‰mΔ•pYY\2v ǝ ΉΖ9Š'ξmHκ’’ωHŽΎέ:œψ{ΕLΰ {bȁžορ"{·ΛΙ8� p�ŸaOH”—]Π�\ϋγŠ‡φΙσUedDB¦)hS‡,B-"PΨ=Ÿα³ϋτγŽ;φU˜–*ΙfΟχ|ΟwηA‹Cl _&N΄οΞJ₯Œ«Μ€:“’ΏΨmύoΎ\ΑΑ€©ZΓ}χΒ’ΉΧS’›α>XX·h<= γ–˜2ηΰΒΎψθ”Ξ?9ˆžƁ6έώƒα—ε`xF-ιΖΫ›―ƒ/i~ Χ< >˜x> γΩf|Ημkw‘Ύ@k­Άt±κ=|T ¨λŽYΏΊ΅€±ΊΛ²;3*δϊ £# ΆΒψΥW§„RJi&ή§{ξ}ψ’K|XW€;O―5”–ϊ#<}ΌwΨΰΘΖ+D―yLIŠΟD>Μ58αϋF?Œ'Γ†Έ w²yB Oμ>Ξ τŽέ³'0νq„}_pXŸ‚azθk#k³•Πλ%δ»ν"[αΚc�ǝLί„€-VΈ·ξ7½t—ύςφΟ- ZˆF4…%h­YψχoηAμΙ΅iš©ΉσΪ(ΥkέΙ·όπθdU]U%eNΏΰ;€¦# oφ#ρ1£J ΧR’OPw?ʊ?bW Ξ9ΛrgEπλΈΠ“γ ϋobίνΕ‘`8Ρb=4$Œ4’Fιšΐ7—·4uψb«x.ΉΙ_ζ›©έr<8ϊύ…o-˜ζ»αΉ«’†Ouuσ–=Z9ΒΉοΘΚΚ[Xb)o ˆΐ3Ο¨ΪeΛ¬‰SZgώgίζf¨α-αΣa`aά­§rI]½ΆΜšsΫ±"WρρΒζ}ώ%#zΔ+w»Oβˏ ν»‘ Έ‰Σ—ΙΧΪκ‘κpΨH“8ΉΌΧ>Ai­-_{½{pόcΫ|-Κ­a‹ΗΏI4=χœj?ήRί}'₯mάΤ.Ηεj¬nΐνΣγ+`HŽEψ=Αmfξr%ΒπIιZ½sωv^I°ήŸe¦Έbο"οƒ’€žju€z²tu΄ όμb…ˆ΄›Β7·–-\βbΚΉρFK-Y"έΆt ­υ›€Ϊ₯<p¬1*žˆΥM§G²*ω·$¦WΕΏtGͺ&xγFήάμˆ•;}Φ yάΆζQ’w‰Σ±Γ¨ Ά€ŽΔ²Υ±!9#@$Εt(\₯oI#7ήPzΒQŸ}&™?tΗ§h4:PƒG<ι󀴡!'ΊΑ“η·»n]<žΙΘbck©O¦gaDœθx ίρ»Ϋ[)™άGžIω�¦?Ÿ=,M >κHιθυ(9œ ©ν§ΓαVxύυΘ¦φκ™=σ7"ŽzY>//―oKKΛ*DŒή§"Α‡Ά%OΜ”ψΓγKέ7\ˆ― ΥσB647Σm㝩ώ8VWΊ�Ly` ‡ƒχ‹ηOΘCjΩσWˆq››;΄₯₯eY;‰o«ΰ;­¬Dœϊ’θ§Ÿ’§NΥ>Γ0θΘέš››W <tg AΏύHk}‘ΰΥαΔƒA9cΪ€Θέ…Σoz£η€ΎcUψHŠWŒ§[&‰Šς›ξ™ΆΧ7;uΘ<Ππνk_{τV8§”ι±t_VΒώΏ°œ qή_ΫpY;θ Ә1¦;PϋςKxρΕ-ŸθHh­1 γ^ΰ2ηΪΥΑ-ΨvHtεμt ήξΑi›πβω’ΪhX|ί�O„Χη8 Dι‚‚‚_ξΏώ5kΦc†aό6F³αχϋ§0ΰ_ύυ7i4[—œ>Ώκ*φYΆ ύΤS–―£whάVD"£¨¨hH4½6žν΅ ₯ Γ{†FΒ!ΐΑ{BQ7?¨(`‚… ­Qh ΓΖhl‚Ε+α“/ΰγω°δϋψJα<žΌρ΄ΣN»οΉηžkμμ2j σςr―ϋΓώpϋwή΅s2Γ΅Χ^γ‡o€™4ΪV<π€oαΊu‘ύwV%'c»GŽν Σ49ϋlΏ ΩΊ³6 ˜1C™3gFΫ²egΕN­τQ£°Ž>:ύ%"φnR_~©τ[o —_Ύω―kkαα‡ύϋ›¦Ή°ύ©ν<Ψι”΅fθPΝYgι§―­©AO™’šύώ~—Ύψβž=ΰ€΅γг³yοκ«iσœsΓ€ΫoΟΈ³±1xuGmαΥΩ°S)=++kJVV`ΟΈgυκͺ`vvφ&ΣχοOΝΉηR’ξή#ψ—UUE‡nι»i?&όh9>κ(δΘ#γΏEΰΣOaψπ|7έtσN¬Ά~”J?χ\€μ„΄ΦVxθ‘όc›ήέ±Tu‘ΓpυΥΘΔ‰HvΆρDGμΧ…N­5C†k^}λχXψ©αGιή»°ύ ΪBφHI―Ÿ!f *ΈhCKύHΤl”hx–Xώ«³^΅d“ϋ“ΕŽ˜…ϊΞ5ž ¬�� �IDATΕG7Ι_ˆ,:DDΗφN^ϋLݎΚ.€h³!*ΓΐΘ*•±Δkδ"Bӣݍt[ΧπΧΜ_ν0F~Bθ2τ.lτΧχ§ώ%‹^Wε‘ ”‘U“μ‰ΜžΏ I€ΩΈ�Z Zhk$sμwW'bEΑηΛ�ιadg<Ώρώ+²bzW[μ@ό4fš»ΠnPYCφ‘Μ!(«17 DΠuSκEGσΑ4ώLγ+1°,ΫΠUήHΓH|LΩτDqT�Ρ΄F,1ZžΩkΐΨΓՏ]^΄ [#χ+$Ѝ P>D Šœ<=oΏ«”ah όPBλ@ΡZgω:a ­5 ΅-Δ4έ²£Xϊ) ΛΠ»°uπ+UΣ{&Ύ\”ΏΤξ΅΅ dήaΞ4ΞΘ?ψxΒ΅ˆD"ρ7~΅Φ4O.xΓ_μμ…#ΪvE7F;ε‘΄?tzΆ Κπ#ω#³Uύ$c{1Ή‚«όuνΜw$΄α]΄ΪΒ025€Ž4|¦d£ΚΘΌH΄kΰ 5ΊΙxgXdcFΧγ΅.ό h³‰†h1-Δ΄ΐ΄Π±O1-tΛ†k1ςnΓΤnš„Ώ 9΅Ϋ΅Ρ“v4??vtzΆ ζGŽFΟHkĎΑGΣίΣΝΦΣΕΧ†·£yψ) ΛΠ»Π.ˆΞ(ϋ¨‚g↬ΣSΫ†ny >d7ΊνΪ3·Ÿνh²2θ2τ.΄Dk#ϊΕcτκΎ&ή>j!‘Φ/Θ<"7ŸGv4]θB~ D-Λ`k΄*‘κhDΎ_–κίWΙ’ξ‹dAΞ‚#v4?etMuv‘½PPwKν_{Tγ7”B ψŠ­χw§ϊΛ>dϊ³—ŒZ’΅£‰ό©’ke\Ά"’a3τ Œσ―²P«4ΝϊΡ9Š ₯θ[œΙΚώ,ŠDZt±φΎώe{£ΛΠ»°MϊWU†fvοε9yσMD ‘"…ήΛΟΰŒ Β`άZΉ~•Άτ€.c߾蚌λΒ6ADŠΎin_œιμ 9ŸFQ(D VƒExi˜Πβ‘uΒMQ¦ίSΐκnrσ]»υ½qGΣώSB—‘wαCD2ͺΦ…~+έŒΙ™±γS4˜ΑšBΣ›M„–…0ƒ&–Xh4φgΖ^ωΓΏήΌΉ:ΊΠ>θ2τ.ό ˆˆΠΏφζΪό±ΙQX"4kΝΚH„Υ¦I0lqȁk1ͺΝ#·°°”Ε‘#”θ α·Ί ½ ?Zλ‚u—¬ϋ χΨάaΎ–!Tβgy$ΜzΛ",BT„ˆΦDΑώn@—šΨη†υ¨Z“¨?Z}TλQe]Ζήρθ2τ.l5DΔ_χaσί7ζ”ΐ �b α/Β4>ΫHSΘδӏ»ΥbΈΦDE\cwbχΜzσφΙ{Όv³τ£G—‘wa« "ˆH―οΜȚBε#cAsN+ŸήHψ«0bΩ;rj4Ρ"Νμw{ΠάΗ ŠN0φ`Ɯΐ>ίκ²?ŽP½Cϋ‘£ΛΠ»°U‘gοΜγ€(ξώξžcοX–EAΠ ‚xkΌ5ΔσρŽ>1ρgβHŒ1yŒζρxbŒIŒΖϋŠβ ˆ€ Š —Θ}»,{ΝΞτQυϋ£§gzfgv—sϊΓk™ξκκϊVUχ§ΎίͺϊVutICΛ[e…‘ΡΠΰ8¬°,Š.¬‘δ₯™όηυΙ3Ž…ƒc8l>0Δ7g³μδΆτ1ψ{u/aKUw’θ0€”šΉΔΨόzσB.+‘9ͺXiYl²νTŸάnQŒάk=ΜCto0Ξw.‘˜Β\qjόΤ½΄H@φ VtJ)’΄φw΅Ÿ…φ ‘ΏƒΣΎ₯ε“8€¦Φœ(L]WΝϋ›zπN]o6žM}¬Z‘ΘŒs΄ώ/Ύtv§p7G ΡtRJ£fBΝΕ‘Ύ‘GE‘ ιω&šήnB5Ή€΅ϊ >W…mΛΦo©Α7…©}^ǐ‰‰΄^χŽzί+2όŸΓƒn;Ρ΄‹δ�\Υ*ΛϊΆ@7o¦εΡzœzΗυ‚C₯~%§H2mV±* “€χΊg7 q₯Μ7ϋτ‹θF`lξHDΠ.”RαeίΆό»¨8‘ΑqXoΫΔ€€πoΝtE}:žGtœ¬~ΉCύP™ͺ’v`ΫVXψ¦ά€ΜhΤΊψ?ί9b :­ΐ»!’hž6ίτ«Mί6L*c£cΣμ͍'§Ι,N―₯hj"ΡΫŒs�‡ΪΑ!VŽ,fω‘% ψ2^qσŒΪΩεί]=@›PREW³r±ΡΕθ›ΓΩd³fiOέ„KtΏ)ž<ξς\3―ή„£TN²·ΥψlXh ΏC=@›X2£ώ�ρ“ δf‰Σθd\“έ5ζ/θŽ₯§Mπμ>·© όM‚Γ΄}­Υ!‚{ΧβαψŒKΜKŽθœ’ο^ˆ /€T|)[Aθ†ΝDr›ωί�Μ}­‚šΓΒXΚGx|ΔΟς{Χjmxp=ύώ]Kxm•’»Gϊx—–\Q{εΜΞͺƒέΡδŜ?₯H{2=h¦Πίl‘ΫΈ²_l¬pXώ³b>MSf Ό₯Θξσ7 €GδMσφήGθ"xU·AνΘ ιHŽ^βoU»#δI¦V£‘θΒ& fΩyGΫs™γJwX{LŸ\_Ε·C άF ί’—d# νUσ† κ VΉm3’Θ‰―JΎΊY4Š»�ΜρlωK—ά„L†υœ΄…χ5ΰ΄ΣΟηΫή@]KEΛ±ΧΦ];₯skεϋ‹€θZAΪR[Zμ$»ΰ)¨"Εςυ½±}}n°=3<i‚›:τΏk3ύX‹½dn+L Εe‰Λ„Φ;£JΎχˆή€”TTTή£GΓ‡ž:UŸ^_οάkΫφ«J) НΗ/G/{BŸš8_d½ή @ό`vΓvςxΌω΄Ώ© a(Ί½ΫΘ‘Χ―ΖXoΆr}νΘH|‚ΔΊŸΗήKdίZDίJH)8p@Χ¦¦]z©3Π0@pXΈPπα‡Ϊ’M›œ{FŒώμΗό;Ž##‘Hgg»ΓhY“Π–T8–Biϊε5OΕZΕρήx[tkΞ+Lo8‘š^Λγώš:wΊB5;D6˜”-k’pE αΝ P’ζς[ϊGωφ€RPœόΙθƒήά΅΅ςύG@τν„”’cŽk̞=γο\`ύΈGΜ*iώκ:,]*˜:Ul\ΉRώaΨ°Cώ1{φ'5–eΙ‚‚‚ΞΘzNΜ]Χ8M+ӎT€ ˜J!WΩtΌ.U?ςia»\1λρξ¬?’�ΫRzΩσνfžFΐΝE9½΄G¨²{ρngIνLDί RR\\|υθΡ-ώΰ*'AόP B!XΉRπα‡Δ–,Q;dΘA~φٜ5J)‡wIΎΧŒ_clQΆε<^…Bε\~+N―q΅œGοˆΙνΕ[Μbζρ9«‹Χ3o΄BD‰τθAρ!|0z$βq,αzέeΈη( œˆFhyγ’Ϗ²ŸΚmΒ' �-ΛΣN;mίΙ“'WF£ΡςX,Φtκ©§6θΊώΥσΟ?”ς{emm’οΨΆM(9x0― Ηi?”Γ€ 3fˆΨ_¨§†~ΧGΝX …vˆf“¦daρΒ/„)†rXˆ¦i=r{»‘Τʎbπθo -4SdΧΠΈŒΛ˜Γ�„\uΥU\{ν΅ 8!BT²υB ₯€ΉΉ™wί}—I“&ρω矣”BCγjζ�h=8ΧKνΓΪI))--½ͺΉΉωOJ) °°λ»ŽSO=•‘C‡FSς€”,Y²„χίŸx€₯K—¦…B‘§‰ΔyΪnΈΣΝCτx<ξj�αpMΣδΚ•Λ΅ϊϊz­₯₯E»ψβKŒU«ViΝΝΝF2žΦ₯K—h·n]+ +C!£rφμΟJ•R…α°^\^^ZVRRTΈvνκRM£R*… \Χ),.֍ΒB.*Βšα8f8Β((ΐ((@‹F%ƒ)š0c†Ÿ7OLξΧoΏIwά1aήΉηŽ“’Ξ&oςfa_ϊ6KOA±ωρJΟ.L›ίYoΛΏψ‚»=€;οΌ“[o½pIμζO₯ΘέΦ―?wΌyσfΘζΝ›©’Š›ΈΙ%:ŠΈ#F0eΚŠŠŠΆY†—W)%·ήz+wί}7�%%%g466ΎΊ#žQgc Ί“T‘ΥΥΥα––ζk{χΆ;ΦͺξΡΓDΫݝΌƒRπΡGΒώβ mΊat½«ΌΌβƒE‹I ΌpKΣRyumo-9ψζpKŸCÏ ψζΡrΧ|0›Vδ»ξ⦛nj—h²ΟύΘWeY”——‹Εψό?†œ0„s_>Χk΄ΫL§£2όΏϊΧΏ8οΌσ�šnΉε–²»ξΊλ{;.°›ΏβƒmΫhšFaaα…UUΦΔ±cώϋξ Ά½ϋ7μώ&­‚9sυΛβG ΰXŽΝŒ—œX?Ÿσ™Γ¦NΚQG•W[Ά/·uά|Ϊ6;ΌͺͺŠššζΟ_HϞέ)**Β0ŒV„ίήq}}=εεε�1 ¨C…ϋŽax·–eρΟ>ΑύΧu'·ά?j”5πΰƒ¦Ήs?ω„p뀄xjj`Σ&¨―wcMΠ§+τιUΥpΠ�θΧ*»C2¨LΎšJ‚ξ―#‘)k6‚<ξ[DaIJΆ“2ΛΪΏcTόΤυm1ˆ#F0kΦ, S;vT£η"_[χδ“±eΛ***8ςΘ#yε•W())Α0ŒT<ΏΌΆdu΄χί?Χ]wš¦‘RNݞ绫};ΰ8oΌ1™qγΖλΪ5|_ίΎ[FΧΦBm-Δb`Y`™ξΤΪή½αόΣαάγ w5I“ZπΏ‡Ι―‘ AΪ1Ν;W€ž˜ΐwžό*yH{χ§nJž',ΨΈ|Ÿ.„cŸ‹βEGBԝVΛπmWŠΊωΙ€ΌυΦ[όρnrm˜Η©β$γLœ8‘‰'Ά7‰°nέ:*++s0Βα0ΊSWWG4EΑΫoΏΝI'Τζ½γƍγ駟ήͺrX–E$AΧυ‡ZZZΩU3"Ϋ‹€θ€eYŒ7.όφΫo_‹Εώ�”Ί»’BU%ότ4Έα? ΊRsBΒGΖ¬σ7“΅ογo ‰ύ„M«ΦχfΗΙ‹JψN^P &l¬ƒωΛ\’/Yλ5ώτρBœ5κgχΐJz½ ]ηΨ’"^yεN;ν΄6Νάl<τΠC\sΝ5[Sέ€Ϋˆz#τνΙHz(·o_ξΉηƏΏU²ϊχοΟ7ί|S†ΏΡ0M“H$B4ύE<`«„uD8,κu=ϊ󦦦θϊžνZhΫ6 θ½vνΪΗMΣ<\B w_c†ΨJ“=›ΔΚ§­³Ι¨ΤV€₯Ν3ΏElXπ5 (Χtoh‚ΥaΡ X²5γλ 1œρB TDrJXΎ|Ή+#ι›.£{ν‰'žΰΒ /l•υ^½zρ—Ώό)smyχŸ|ςΙνΚπŸwdZμΙ'Ÿ€¬¬,g9N9ε”vexηοΎϋ.Η<W_}΅ώΠC}ηιDοήέ^ΊτMgz¦‘ΓόωπKβω}φΩοΌ… š\ωΎ ‘HΠΤΤDŸ>}~άς¨RͺXψΑAπΔοa―iz2΅¨δjΕlR„diXίυί@UαWt-ρYΨΩ¦Ίžd`Ά•Π*rcαφΣmš[`ΣX· Φn„ ΅P³Ά4BS θ›ϋρχ™+©««£ΌΌΌ]7•Ε€–ΝŽ?yςδΌid7Γ‡§ͺͺͺM9~?xπ`V|³Ίπ»ΏΓ€u4€#F0i$lΫΞΫ?ζ˜cΘε@“oΰ.‰ ”šiΫφ:T)Q]έύμ+―όφ…φΈ‹Α³ΟŠ εγ7mͺωΐΆνœ•ς]„RŠκκκͺ7~¬”Ϊΰ¬cαŸχ@§E= γo―6sΡρ‹ΡΌi)$Ξυ›–ΣNΌΪΧ;Q½&!pΏ>ϊΥGw0tŸΜΖ&%ƒα^ώ~ΊBdΕ!έxI ¦ ±846»ίάΰώni„Η }!R¦tΑ5WFλΑ―^½z±~ύϊTψΣO?Mqqq»χyαΗw‘P(oάlΒ>υΤSœwήy¨9€ΜκΦhπt8οWO€λάx㍌5*•ζI'”a΄Χ=ΉόςΛyμ±ΗˆΕbzAAΑwZ«‹‚‚‚ž·ά²ΦΞγXά ¦L̚ύο“N:ι–gžyΞτF=;½zυ*_·nέB₯T΅‘ΓΛΒ)‡¦΅*δQv=&ΉsΖž~ώߌυI«ΈώΑ²Vi¨Θ λ%$=oΝx‘ži2η6³΅&χ§›«―¬Ω½»ΆΞc«q�Ϊ‘Π£+¬žμϊάράύ˜ςΠ―~||ΊP€|ς9dχΫ½p8Bήxγ μδ‹–Ο™ΕCii)GqD»2ό²ζϟϐ!C°>]Ά]W(ˆλ0r<Μ_κ†?ρΔήΌyήFΕίΈάύός—Ώ”ρx\+=­©©iCK ΫΤΩ6Œ­Έα†–wΠA/%~σCέqκͺ«PUUΖά>}ϊμλl­Ώη6ΒΆmt]Ώχ9ͺΛΞZ[η|’ͺΥ§`Ξ‚κΖKυ[=φ(ί‹ �_UŒ?ηTœžwRΧ➠•&‹_ωΒRZ³-^Ώω]v|«ςœ{Φ)ΌΉΰΈŒFB$΅±'/γ}χΙκ=t"τžΔΓ/¦§|ύyP†Kr€Ή4'ώά%ω­—ύ wŒωWή΄ΆmΛ%ϋ\JΙ AƒPJ1}ϊτŒΆμ_GqG‘{OΘ|έH!S¦LAΠiΏ„€¨σžυ ΘO`L― (ˆjhšΖΰΑƒScΉς+„`ξάΉ�š”ς;ο3+�Ξ9uΠA;OˆR‰ψϊλΔ,ί0rδa|ψα‡r{}Š•R\Η ˜σ ιEΊOμ3mS„Ιξs+ŸΦ+<ΚOO^)-`J λο δΕσ₯»Υ2|ωOiΪ^“p˜Lυ¬”βΕ§ξ䜣Μώu:f:Ύ—`¨ͺλε©|9šΖϊy·»ΒUK“όΉ{άΌΎρ1<ώ άt12Θ ϋΡq B  σηΟg°Οg·-³6Χ9ΐƍyφΩgΩ{ο½34€”’}φΩ‡AƒεM§#2JJJ(5³ρRmΦ™ ΅ΧEC­ΓgΓβ0hΠ ,XΠΚ¬Ov+¦8Ž“ιYτ„0M“‘C£ΦψρrηΪάή{μ«`Mƒ%KoΌz³  λEΛ—―ΨΨ‘yΙύχί?ΌpαΒz ϊκƒpκΘ¬Ύ2­ΝγΆϊΩߞn?ٟ€kΖ ž}ξ%Ζ1wϋedυλQͺη„τK›"Ή›ξ”©3;`r«)΄VSg^ͺoDι…n9 ιΈ ŸLΉƒάϋφ=ΎY Οώ.ωh”k’οΧξΌ2Ώ€’8h<,^i`šξ'ΡrM―ε χε2Ώ½ψΩq²γuTΖτιΣ=z4[fA™ήΑΊς=?―κρž§HZAΒέ ²ςHwΰςψηŸ>O<ρ]t?ό°ώ³Ÿύl—υϏό―#Ίn¬ί°VΣ΄QΌ24Ηc¬~rνΨ\χ €²²Π+Χ]gΎΣsِό$r@)·―ψΜ3’iεJc|KK|²oΪo_`i$-³p½Ό|Κξ“ωUhκ!ϋ5£――Ρλ@kM^`sS•MΏOYφΫ,Γ―I¨²ΣE#άθ©6&ιl*σΎZȐς₯Ν2e₯΄wk’?')Y¦�±ξvjcΠs4Ί?ό*9σuανΝsχΈ€χΜKφ*τ0dθPζΝ›·μf9?©σϋγ·…|χxσΪΌ ώλμΜG·ςΙΘΎ'«%ψΒζž†Γα³LΣ|Ήνw O.,έ»ŸzοEr…ςš—¬χ0nΕ7,NJB€§Λ“+ΉΚ^Κ3₯™Ή»iC—τ9d αςwž*ΎωfλυI“tuΗn―6f©œρI9¦€œH ώΦ\ˆ4Ρ”/nFφP0₯4οrfž²Ž·Y†/,•ο’‘iΒ O0sΪ΄ŒBxI­γ5rΰšνΚ%€Rn&]r(ΒJρτδγ~αF½ν2χήHΘ%ωi-ηυo5 š’~ΞgπΕ_°Ο>ϋ$ΣW)βu”΄ΉϊηώψΩγ�‘QSSC$αΦ«ΰΊsΟ’έΊRξ±ΧyΘkP]€Lyχώ§ΫŸΏγj0Mσ₯H$r{«‚ξ@ΨŽΝ€ΨΫ|@ϊ‚"‚b‚bƒ’’Ε‘¨†ςi8…Υϋ_6Hέϊ·›RVΊpΤQ£¦ϋf1:΄ΰΆ‘Ž_#“5Ν@SώθJΑίώwά[fBΛ W‹Cϊ‘yψIŸggΩ{Έ©‘sοaVžΧ/φˆ"P©4ί}ύ-pΆS†J—K)Wc %3ˁ―Φu.ϊαšT₯ ΏLš]~βk(T²ΡI Aά)ηγ/ܐxςΓΔS>uΟ?9χ3xcj2_}Αν–εhš–=Ο˜ΛεΣξ‘8i³οΟΧΗΟ>?묳θΦ­ίΌ “.υΥ{Gκ ί«˜ύ³ž1d’`Β% ?…ΒΔD@υθΡc‡ΘI)yδ=Ώ8πΚύUuŸ"£ Ψ °Δ ¨4DQ‰Aa©AQ©Aa’πΡBέps)… ^žυ‚υά΄g4HύΕ_ύ:½\{+P�”βVFcΦ_.βg7&Ι(ega$hάβΎ`eFΙr £%Η§e}8%·ΥΉΜhΝ!Ή0S€…δ¬#ΏΨ2’χx•Ÿž’αEπΜK₯i¬™s Ιsu2Κ―§δ ŸͺςΦ——nΖ‘S”WΞλάίͺΚVΩL•―ΕJŸ―ϊ7ΤΞpύΛKKK}ρr/\ΙEφ|ΛσyΓyα―Ώώ:š¦QΏξeδ'ΠΏ’ ‘Ίς‚U&α³£§ž­ŸΉ�Ύ}^}Φ―_οD"‘σͺƒR2cΠ2gΦ0υ‡– ι»OE>’—–†(,qΓ J —θE.ΩCa·½ql… &όλζMŽt\’›¦Ι7߈mP(²‡ς<Β7ΰjmd³ωtΩ•‚;ο„žέ`Σ;™œΡΕw͟€J?hα3{SidΗ/žΟ5_έΥΨ–”4/OΈwD}οζ±Χ"©RJ֟†Q|X:-Ο€U0kξ<X{+}ΊϊςλΣ,M^„ϊ¦ς侈ξj3Ο|m2MΞ=Ξe¬ν³LΚ“ώ+q3myυλqρίψΚ& 2 κSXύnšζNGωW³e›θ~͞ξϋύιψ΅ϋ°aΓΠ4Ώής˜ς`²~TΪjκP]yΟΓ3η}Ηέ1_~ήΉWί§ ‡Ο_€D"ρe—.]φf+a;6ϋ]Σϋθco¬œVαpρήBΔ„ RδΩ%ΊKς’δ_a±αšςE:ΡBHNΈ@Γk€"ήβPR­{ΛaƒR»­|υΫgzžΣSvK*Ι­ι³[Ϊ$Ω_|ѝŽ[υz&ΌXAκ)€FO}š/eΆe3Zdήλυέ¨8 HΏx*yόχ'Ÿ%΄αΚ#mΛPΈωMΙ²\vε-ΠσNžx#”.¦ΘΰJΩΙa7Χ\Ώh +nη°ξΟ·n<|ynˆ.γ}¦BΖ!RΣh\vš„’δΤz(Ή{ν‘Γάσχfg5€ΎcMƒΈ“Ω.”.αε'0σΥΓΡ4 !—\rI†Ζnkξ;_˜RŠ PQQ‚ŠR©ΜE} /ώυ³έͺΊΚ–Ω*™ιˆ¬΄ό}οoh?Έθ,ΨΌyσ2Λ²²SLAJΙΈ»~TΨ‚>wψυ ϊ£n?H½s˜κή΅ς}+¬sμ;πΛιqήYΪΒ―–M’Έ Δ5Σ‹S&{R“D t"α¨N8βjuΝp3ΦάhΣdΦΏ•*c―^₯^vYΓh!p‰™tq7Tςύ‰δoF'' M€§ΣΪ0ŸZU‘Α„†ίέ�ΏߎœΘ={d>γΊΠλŽ”m¦€G~˜«ΞXŸWlΆ )`ΠxψιyΙ’$_ ǁ–ΨΌV„5k`γ·P…nέΚ9|δ ztq`Χiu” +άΎ;ι΄:Tθ^wϊlQ―°°©Ύ’¦{‰&›ρ7ηΐΙWΐ/~ GœžZΣ4ψΧ]ιϊΙ.£¦ΑΩcΫϏR υ€―ωΓξ*9χ~ή½{3zτhHyy9ΝΝΝΤΦΦ2mΪ4–.]J]]]ͺ8p_xαΠ-Μ­|/ΆιΎ<q34»_  †aόdΜ £^[ΊnΙME‘’kCF¨ΨΫ‘ΗK―ͺw!ή³ς‡§Aeu]hΊp ΡΠtW 9–ΒL8$Z$‰Ηύ‹9Δc6ρ˜C<ζ`%$J)Ίυ*”©lVUuϋεΟ~Άιή6d ΰ5VΩδmΕqςέη«P!ΰώSŸ†½ΛhML_ςށΏΟ”+K*׍ήΕ’‘ΜόΊ/«Ύz‘'3ΝΎ­‘‘Αΰσ`+WHζ…Ώ +„K4₯άΝ&V­‚ukaΝZˆ5ƒŽΖˆa:¬7GŒμΟ>ύ*¨κVΘβiw2bZyτι#ά2xσθο}χάόpπ~d<γxΖ1Z7Ω hκ\‘φ­OΦcκš—Ύt―…ύϊRΫ"Γ Ουg„gε«=ιDο Π`iC”I3{±€�ϟFΠΌ{¬νζΟvP “±³KсΒRƒpDK[4ΩΦ�ϋδ�� �IDATB2U4B)Σ<֐ ΜΈGlο/Iπf;#\)¨ξ[.†λL˜ΰ,Ψκi6‹΄φoUsΎp|Χς…γΎΠS¦ΐoƒQϋ₯㉬τrΆΩ²}²ς5δ9Ϋ!‘»νΚΠ‡ό‡β¬³rκ$TΑ΅cIuy„€Ϊ8t=*Kαα›άx—άι:„<wOΊ"Θ|ωΓœ>¦΅6σΟ*x2Rƒ‚ΎΌ€ͺ.λzF7Hew¦ X&―ιΒΣΛͺXί!”\ι”ξβψvΦσeδυ#lτΒh2–@6Ε‘±g}ݍ’R#U©­΅ΉH₯]RBTŠh‘ξšιQ)‰–$Ή›³‰žyŽ‚ύ ΣYSJi&KΣΆ±―nγΏϋ]Ϋσœη>L-qψθ―™ΑyΧύΡ‹Τ†˜ά= _@ΆfhWFΡ¨<žΓO»•SNΙ#t£’~>Ά5¦}c.„~=ΰχΧΊε“[Ά�–Σϊρœu\—œάυ@Ž{r(Ɯν½b*ΞVΚπO·BλW@h€X΅ϋ €@Y6—­ͺ€Q ίθΊΘ”—AJ74c<##žΰ²ξ-ΧՍ€L ΩbςhmS…a-9Ψθήβ Π“Zέ'špTGiΔ›mW›G4Œλšm[³E’πiφ ς'My₯ η^…™u|Ι%¨Ύ}Ι ˆ“vrΙϋ€hΙζC2ަ»Zύ§gΐe§δΧΔήƒυ·ΜΩα^\ο Γτς%œMφ\i΅+£Χέ Mιy歜pB;εέπ4Ί|³^°wΕΚΝ°Χ `θπΤ]ny.ΈΝ]Άϊ7CEiλ2Eα”#²κ#»^Θ r½6ΉΜg²ΣNήΤγ$ψΆΆceœωΏΓ³΄¦ «αpί^ ΄HεHWγ6Ηy£!ΜsNE¦Ι qVΪ/™vλ{Όx’Υ=·”ΤΡ7κF¦j1ω0ζy½›&AΧ ›MΒw4]Σ݊vε’=ξ`Ζ}ύτ–$ιc–ιφΡ{τ/Jϋ·K)9f΄.ϋV)-chΨϋυŽ5ί1YρΌBδT•8χςβΐ‘GΒ=†βBψρΡ™IϊΕ¦ˆλ«|Έοye,FΙx™| z#ͺ*GZmΚPB™ΩoK¦Ώ|GŸ{ ΗΣΊ|» © 2«zοαΏiςΙμ7pζΜ$4Ζέά�OL‚½Wώͺ*ΰOΏφsΛ‹ƒηωΖ/όυy½οe7Ύ©4³dlx+χσ•pό₯P[Ÿ£π.ψη¨ ­λ₯ΫBεΔPΆ†’ž �3K*)F†ζΡϸζO7KF.‹ΐόKϊDZQΤνΠ7'ΆdL’‰Χ «Sρ·XH©ˆ5Ω!Ν΅F�ε€mKlSb&ά?ΛtlKbΫF.* Ράϋ&CYvοώδg?3‡η¨ΆφαMεk²ύΞ₯Ωs… Έγ^ΊΜύ'™•žμV ϋ²ΚjsΕWδάc­C2ŠΖ JΝŒΡ9αΗ·pδ‘mδ{;‘”λ2ΌjΌσt/†;…ΉκΜ€i―M%ΰΕ''’:œ•άΪνω{άίύΪ-ςψγαμci•ΒI£hΉκŽ<aΩαE– iΐOo‚gήH‡EK Χ€BJPυ—Ž$—„[,κβ β6–\~†βΌ“ ‰‘Μ¨HύΊ&:σΏΥ9?0ψŠθ;]’½*AυBν£P½£zρΎ-½C"Φ„¦αΠΠΠΤ`s§΅–°�l‡KρΗςώιΥΎ]Ռ’°ωΫΊ!Π47J*€£άοΪ™+Ꮂ'β–·-—θέϋΦ‹ΊeT―aoΉΕΎ½CS:lƒqώΰΥHςΆkΒϋQ ;,_‹_‡έ[‹J%Ω–9ž}έ―=όρ²μΟV1ŸŒž“H―2HΓΦuΞΌδVFŽμp‰3ΰυ9C!˜=¦O‡³Ž†―€}Ίƒp²4j95:]r"ͺψˆV…ώΛΓΰ²3šΈχiΈα^7τεzΜy}χχΫ/w―{"ξxL.ΩuΥV]’Ύ–qK{εhG ^œ ηώΌύ:Φ„λνW捑呑‘%ΙmοΏΎ;vlϋ‚rΐ–΄§ΏΉ[ϋΌξ½s5Νψ»‘…Β)£@ΐW³λΠ4¨ύ6ζY@Κuu΅m…c₯΅Ή•Ψ–[a]{Fijiώό³ί/=$ƒ£F~ψ‰'ΞόΈ-7Σ xήlω4wiΉμΉυlάnΜΊ^’.πo~γn‘Όd2 ¨JVz²ζ½γ”FΞ"dv?2ϋΙn2‚φd( zMHΚ𭳂OήΉ!ΐO&Α!‡δF/o±ΌχlΪPΒυΧΝΕ?N±ξ‰BΤ/½²B2ϊΎιD|/§Κ,‹πΧy―ί€$‘Y/_z;zΊ—κ,¨>Κν―λΜ{&<�ΟΏν^?ϋ8xα[6ε²δ²Κ—―άΫTŽ­‘tθ~Œ»ž!`Ϊ“0j@dψ»zžj ΊΊzπ† Ύj-uϋ‘”β†ΉGŽ+ΠKžB0ηύM jΦΕSΧ₯i+Χ„·Ά)SeξR!aZζμ{ΎŠθΊήΪ`š0ΥFIG4\B·΅¬§υs™π:­Ώ}αχ}/₯ώτ'wοτ_\χύœά-nŽ2_/<»?ίΚ’T€ϊœ9e*9&ugMC#λζύ7CχIˈ)ΈψχPVoΌύ«ΰ·Ώ„ΡC„(@υΈ‘ύH<2j‚ζε·QΞύRgδ?«!MΟ\„=o₯K’2žϊΧsόtΜ—­¦β„©ωxΌ2Ξ8"— 2»H9ςθ―Ώm+ΗΞ—1c)ρψχCπΓ‘°©Ίq―UTTt―««ΫΨZϊΞΓ sΌχ³ΙMΏΤ4w f]<eΎKίrνh‘λΧk^΅πΑύRες'fš&Χ^qͺ«ΥŽέΗ―ωσ‘»xδν›ββ½ωκ«―B‘‘Hδ8Σ4ίXτ:μΧέ§εΙρΠ“yH‘Wψ΄΅οεΙMφηΫ»ž%cSΡuΌςά œ9z]‹·QFΕ8(Θ½&B+Φ£Ώx$£½γ Λ%»ΰΎλ’τDTѨ֍I2κԏg1¦λƒx[-_ύdiΔVϊ;*γ­Oαδ«ΰŸ„ „ek�˜©”ϊAgοˆ<θέ{Wu[ IkE*€ε(€T8ΆdρΪεE-/š1}Ήniiα”S ՘1YΝάφΐ#Ήλί(ε:Ξ<ώΈΨΨΨX9΄¦¦fC[lΫ6αpψZ)εύ�OΖ•£%Οnέύ/‡_«g΅~G θήύ;D€vΝ•–ζ}t;CχΚH2·άμtρ…χš„R]¦Ε£>Κε?\ΣΚΒΩ*Πz7—imW9v’ŒΡWΐτδFBBˆoΎϊκ>ψΰwn‡WΗqX΄φ+ν‡wΧ_IδςΏ_α(‡ž{½y«Ίιέ;²π²ΛƒvHnlZ―jΛ―βŸxBl^·.rH,Φ²j[[NΫΆ‰F£ϋ:Žσ₯R*Ϊ½ν_vσv΄I>Ψ\s΄)ΣάžΤΘΩήrΩ/YχlŒ’ηΝ©>Ύ['ξϊ3₯ f½s‡ϋEφη'ΫJHY0 „κuk2_™2 … αλΫ(/Ψώ:ΛQWYŠω;%c³ ]Ž�MӚjkkΛ***Ύsδή΄’‘e•Ό«TbΠ±PςάΣΨΟ?/šV¬(>€±±ρλδ Ξφ˜GΙν¦ΏΖ9`C­’°°π§---O�Z4o> £hML/o<Ν–ύ%α‹ηχfΚvΉΜn0ςΚ¨8+©±„/\0σΣΟ9¬Χ‹ΆŽ—SδȏH§ιε#eQ” „o'†ΤRQΎ~;cΩNΙ€μ§·χι0|<3)wΪΫ+Γ_7ΉΨΆd΄�E#άc]ΧΛΗi¨¨¨`wC.F=q"οwx佃Π4xυUμ/Ύ1MsFgυu€”TUUUΧΥΥ½γ8΁�{υ„ώχΛ‘©;€”6ρ™ν*Ox6”Β χ\•β©§_dό˜/γ›ώt•―aρΛΘ—Oϋυtχ«OΕV.+l!Ψ΄ΰvz”ο�ψκ,«q»μwπΧ\ϊM‚°w° _ν–CΑ;ŸΓ‰—»]8H$Ύ1ωέ­^Ώώύϋ_Ό"‚ΪŽ&,ΰw°ηΜ)<Ή‘‘αέοΚ‡rΑΆmzφμYU__°išgͺδζqcFΐγ“ WΪ}©’§9―·j0|JθΜΩt‹>{™ŸœdΊ όχε0STw/[>¦<Ν†w¬!zMH&•tΈ‚žΈƒsqvŒ, š§u&τ¦}{ΐ’Χ œ΅ˆf{eδ,0eœp™»4Wρ¬”r|gν*΄*ερΗˁΎ§’ί‘λxBfΜΐž>½π'MΟoοžνίΨΆ­ν³Ο>₯555“š››/!9œhθ0vLϊŒ„;α‡Oνψϋη/$δ61³3‘Gέeh6²NόPϊC(‰‚Ώ=φW.<iFΆι²½2²―u Ά§_ oNwƒ»”»ΣY‡ αl‡ ε¦}χίΰΞ‡ά}„hšve"‘ψσwYιμ,΄ͺ.Σ4΅3ό:#GΆ?1gLžl\nYΦ_φ”–Ρƒγ8466j•••g†qeY£ό»ͺ„C0ξdΈθ4χ+¬ΊHΎΌδ7γSΘΆό$!GWΐO†δΉςδ$5£ΏŸ»SdψŽ;"#UUaX°&O…GŸ‚―ΧδοφςwΉ¬R°Ή‘Œ9δtƒ*d$ωο›nΊιΆΫoΏ}·ϋHθΆ U Δγq:¨dυyηY½ύαJΑ’%πβ‹α_Ηb-ΏίΣ?±ά(₯hnnΦ***–––ž][[ϋ#!ΔΑή5BΈ«Β�£…ΐΘ‘ΠΏGς%N$};ϋdπ'›”νfŒT~σΨΝLλώp>ξ<.a€™€i ΰσ/aΚ'πεBχ;pYfŠLΖΒαπ³RΚ'~ύλ_ΟΌνΆΫβ†aΠ–Ά5MMΣπή=o?χ�ν#ηλ‰πψ7rρΚ•πδ“ΪoMΣΉ%hw.‰‘PΣ4 ‡ΓΪ„ ’Ώύνo{‡ΓΞΗW\A₯»DσiZξσμ^SΎG—"²O­Α:o6ε³Ο„œ2ΕψGEEυ/V­ZΥΌ;œO w§Έ‚ΦrΧ’n3½{W?xα…ζΥUU[©₯;±Όπ‚Ά±μςιΣ§Ώ6`ΐ@ΪκΨψŽΏJ»7’‹_~zκ©βΙαΓ·BuΆ™ζŽo tζΝƒW^ў:tΨE³f͎νƒ­{’οB$Ώ>pΘ5χœs(lk>₯ά?Γ�)‘+W mρb%W­2Φ¬]kOξΧ―ί+‡:lήσΟΏΈΞ²,ΚʊŸΈρFσόνρπξ}ζaYSx^}}ΓσΑXΜθ;RJϊυλ[κ8λζ^~Ήά[¨―G.]*΄―Ώ5±XΙη«VΥΏΎΧ^{½6zτ‘kόοq€­Ρ–UUϊ«―vφݚ|yZιRxν5ύν^½φ»θ‹/ΎΨ˜έ»/’οDΨΆέζ(ςΆbτθΡZ}ύΤΔ™gb΄g¦+εΞ#ϋί4-ZώωΔ‰qΓ Ώ’¦ή³ύ{„ž={–~ψΊϊ!Cr_–-Όϊͺ>₯OŸA|ρΕΌuA_:�D^@qΰΟΎ¬τ>„¨ά²W_rΑ‚θυΏψΕ΅Lšτ›`Δ;@€ο’59aκΚ+Q••ϊg•••ύMΣlοΦ�Z!Πθv(”΄Pθ€ΐ‘B ¬Œο’Ψf(Η†š5ΡύΐωtΨ­JοzZ—¨l\Žj^+Q‘E2ήπvττuΧ mΟ[Lς]A0R`› —ž^Θ’Γ—©ϊχR;Ό+½ψΡύ‚BΡε ‘iθE†Bˆtκ’w.’Ψj¨‡\&0š1ΚχzQ\“] EEΈ+ͺe5X)―ŸΘ ŸύΦύŸ lx΄’Ήα‘’›_9)xw‚J°UP_Ό_υ(ΕGϋό�‘…PJΪ8 Tσbχ»ZJ‘μΔt ϋdψ� ύ…& эΡφšιVΓcϋοαNFPΑ: %-0z\,JO�ΘBD/2‘ŒalPv$6¦φ’#άε<MΛrΞ±τꔏ―RšS³β…]\”=ΡtJiθe₯θe`o�”ˆ ή. fνWΚ¬AΩ1W›+%#cήZΥ*½π Ό†@†:S9‰VΡμ8DΠqhεR!P2–άKhjՍξŽύJ{‡Δ–«­₯cξΪ*a¨ƒ]eξju׍Wήŝˆ rtΚAΉί$D ά}Φ•BΥΎω �‘^_‡§­•cΙ6Ϋ•cƒ0zz¦»λ€p7… °³ΜyΨH‘μ TiΡδ>t Ÿ* ‘σμΩ'₯ΧΨ*ζd'{ah±Bi~Σ]ΩRͺ_’ °γhτ�†ΠB`ož©” zΉoG[ό䠟’l”Y+URS+Ϋj΅Υ£¬_ύŒHΆ)­žΠfkFt—fΟB@τ�[-ϊ¬oz\ΕμiοΠ ¬ΖΟQξ·”…Π3,F§ώk0B§ ΒgΊ+iήΫYΕΩS=ΐVAυlŠˆ}*•^ "δλgkšσα^₯¬ϊ‰H;ΉSd€8uŸRΔ^ώJŠά¨Τ—TBNΉσJ΄g z€­‚¦ι’ΨœΙXί‚(Jχ³(½δ>ν9ΗΚ‰ χξkώkτ‘‡NϘVC‘βΕγŸΛώF€Œ`0.ΐΦ£μ”3hžν( Ÿιžό³c΅J9^ί½―’ΝOv…½‡ χΗoQ­ιαN.Πξ@£ΨztΏ^²τJ¬Νώφ€OjΪ )=έύ}aD>J™ψžιžΌGίλ°‰]œ=Α2Υ�Ϋ₯rξΠ…Κ ΒvP9ώRαVvΈDΩNLΝ(Ώ‘ώˆ@£ο|=ΐ6A>lήώH«ΙoΎ+Ÿ†χkn―Ÿ½η1Ιw ’Ψ.ˆŠ“ΚPΆT&<Ηξ{zJ ₯P jLΩ…³‚AΈ]„€θΆ ϊΐίKΡνμ±έώyΦΰ\֟R ¬Π·΅LνμΌοIϊθvœš©ΨŸ]X«€QιφΝ%ΆρŽ•ε L³A9α>eΧΤ6tv~χ4D°Γ ₯,Ώ=d₯0›Λύr²₯J8§_V;9ΨgΎsΤz€)₯T/σIΉ]<0eͺ[λχβλΛ>Έ¦τŠΊ€δ|ί!₯ŒnJ\±"‘PλMS­±LUσpƒZ6b™ϊ2τeBZΑκ΄ΞDΠΔΨn(₯ˆ:!ο B )hΈ$BxX­D /Έ Ό³σΉ'# z€M‘ͺzύ%ΦUσ}υ1$5χU8±kυοNΜߏ€θΆJ©hΓS 'Υ%ΣӟŒ@±¦±α‘.|ςqQ–ΑϋΦI*>ΐvΑ3Ϋ_&&h%BBΙG¦»¦ AWCGί+¬ύολk~Ϊ©™έƒ=ΐφBSRU‡ϊ…JE(iΆ;в, !₯ΊNWΓ ωΠπc ε:Ρl”RΡ%‰Δ5z‘ ξnBAΕ4 a)W«λ:₯Q#όΖδ Α \' z€m†t7n-w—˜£"€»ΨE(‘ά3NQςf α[P 4Ωϋσd§fzE@τ�Ϋ#‘= uM“έ5Trgg…B%Φ*‹ΨτζC›ι~ςZΊON…~’ vvήε\`l3€”…Kk㏗? DQς‘‰΄ζΧ&ΝӚ‰Νan2q,ΫΆq,ӈ5Ϊ<zzgηOB Ρlά !E©,ηιsΆΖ^e{?FσΤfΜε&φ§ΩA%J*„Τ-ν@«οJD°­Πμ vua\žY¨”"bήωabŸΆ`o²ράχ5y£VΎφΎ΅Α~…»Ρl”RαΊΩ|eω{ άavΤ9-›χηT²ψχ₯‘2οKώ[zΗ_uJΖχPD°ΥπœdTB]¬hλ”R4KΙFΫ¦ΙqΐΪ y{SoίYŠ0@‹iƒ9υ]‡€θΆšSλT†φ EEX^jc'›‡zΗΑέΥ=Ήγ³T,Ώͺ”ΧΧτγe}ωφ””0¦ν=­ͺs‹±η z€­†R*\{Oν•F•([}¨‘ΊF›ΈRH₯[Η₯ώv‘ΰγΗͺyqΝΎ<ϋν�f^Uρ/;˜jΫ%ˆ`«!…QWh₯(υ’Δ φέos-rΞΪ&—―*@ ΆbΩ…]Ž&xw ‚J°URjV₯‰ίUА«Ν­‰/8M’ƒŽ­eθ™΅HΝΏ!lZΓϋ‘”n˜΅ς˜]_Š=Ρl„Ζς±+ΓB?:Šl”$ΎL`­ΆPŽKε’ιc+Χ±ίΝ[p ‘&»Gx•–«ιΛ εv:ΟΈ�[)eι’ζΔΪΚ¨Q,€†&qτz ά₯έΑA&98˜έsο¬`ε9Ε8 …XΚύύαj-4ξ=ƒ=ήw"’θ0’ZΉη*ΛZ[¬iXJ±ΑΆY½Ωd@Ÿu άΥk~’gώJ‰*X=6ΚΧg–²ζ°bMφ„g‡μ}gg—owF@τ�†RΚ¨ω}νωΦu₯‡… IJVš&›‡ΈRo’Aε!ΉΣͺπŽmaΗNŽŸ\€E‚žδΞBP³: ₯TΤ\Έ₯θ8ŽR4II³”HεφΈg/οΞ†Λ RŽ1ΩΏΩaή±P’p፠ƒwq'"¨ά�‚”(6zϋj† τ|ŒΗΑτΦ”»αΔί•ςα†Θ2χΎ\$χΓ [ϊΰΫΕΨc=@G‘5ΎΪ80Τ7 ¬/Tρ-ŽΘtŒ@W|°΄'Ψ‘όXj.MξΥ,ν’`EΫΞC@τ�‚"άψBγmz§ήΑœoΒR‹ͺΦ₯ζΜΑ7g. ioξΛ;σϋΠ84 yLx�‘„φJ·W—؝„€θ:₯T±V ށ΅ΒΒ\l’β •€CΚΦS4Ϋς‘\d8ɘ]5>x³7/}»/οLνΗΖγ Π…D%‡‚=-ο4:κΔ"ξΦFέ΄ ₯”Φ²ΖXWͺΏ§ιΥ&š^kB6€Χšƒ 1@γγ™]±₯tηΙ½_₯RsζfκšΒ4@ΫhS1Ώ‰κ)υτœΊ…σž,4#Π?;Ρ΄ ₯Tψ›Υ±ϋŠͺCW[kμ:ΧAΖɌηM™­ύ(_ώΎ<Mxθ*ν(c*…­¦Ί”TΜn:ώΙρ½Ϋ Εά­=@»R–.kLΤ–Fm³ΎΡ’Ίz»:Ε/kž|γΙafΉ+¦–η —όΙp{‹Ήfςϋφ1­ΎCΤf€6‘”‡ΒhfXJΡ(%VΎλ…*Ξί7ΰΦεN賂S{-c―ΗΆ€£’ύχ¬%¬>xYκ¨Ÿ€θΪƒΆnql΄† EΚΤzs€E«{Πpz€MΗ�)ƒo­αŒήK9·η"N΅„}ŸΩŒΡ$qBξόœ"Υœως—?ή΅Eάύ΄Ϊ„R*Όζά5Ÿθ?/ςνHƒ:Η!‘μO{&ΈΎΘζ lΒΞλγήΪύ5υ+$›–2ΑΊƒ X1Ά˜e β/ώθ έΠ;»ψ» ’h‘ελ/X_Gjz 6ύΊΨLƒΤ`›©–€}.ΫLΕ Νν’=;<WC0^ŽB ^Ο…ΐtJ)_j¬0η›„PO·γ7’’ί@WΙc�ŠE`κϊžΔχv_«|.―ΉLύμσύγŠ]ž=Ρ΄­ζφšΛ­5ζrLΟ²Ψ«ϋ”™½'\rP-$˜1³'ο­μClς»½…/".ώμ»γ=@^(GaΧΫe.5‘[|bhύΊ­₯ό©˜;Fλ e`Ϊϋ½y}Γή¬Έ²ΜύΌͺ—nV·ιJOωρ”θ(ηž€  /-γkέL”―”ι†ešΫU Ÿ.¨Β,pηΚM|sεsζ c#―YE·w±eξ΅ιώίf­ω7WΚ+oΫυ%ίύ=@^|±Ύιh»TΌoΩPVΆpwY―BΡp˜Ξ§―wΑΞαγ9Ζx^pΆ#i‰ z½Ά…Ω@Εg()±”DωˆnkΆyAβ‚ˆ Fί·ΡδŜΊ¦Ή2,v]V‘ͺ|8­_oϋ(‡-GΜzΎ Kδwυ\`ΣΧ\k % Ά£ΥXhu¦ϋΦXςθu‡7νςΒοfϊθrBJ₯i1$’XΫΠΩ΅u\HzΙτΗT―d쁫(ώ2‘Χ.;�#‘Π,EΌT§Ύo„†žf +Ό{'oC ΡδΔ‚uMΕVΉh΄dΦbέ.¬₯θεx*_£·ž3wΨ4&Œϋ»ΣΤMo­εsωΌϋδ%”²ηο΅o( tφ z€œ˜―}y±½iοΗΝHV;y,–Ϊ Ή₯@fύΛο,γΠR-˜³Jζ_Ψ…„ž&½ν7ηI‡; φŸVWςΒ₯#σ};=@+HS²°pαrΝύκϊaΛkΖ’R\Έ}Ο­₯θ½xϋΉvŽξ°₯_ˆΗ–°lLφR_a`ιΰ(ΠΦ·<²πΘƒ~ΦΩυς}F@τ�­ -©- /²„š’Ά¦V(ΣδN‘^Jd£δƒΧΓ–­πqoσZϊ‰ƒ₯ΩζερΛ#z8}ίVŸ�­πυΰ―‹…ξ»!]*WΓ&ΩzH�!pJ4>^Ϊ“™sz ‹Z»΅ζsyυ‡e^σo$ šΤΒέϊQxΗ”nΟD@τ�­`­±&f†ͺχ^GΡΝ­`?d΅�� �IDATΎŸ–ϊθ£σΑς~ΌΏΈ/‰^"‹Ίmο›οšwόωßi'uA@τ6PRRrm$™tϊι§WY–ΥΩΩΩ%¦D$Δ%ŠΦ*―©£Ο±›PΙ-žIN“e’^a— ή¬?―ΧμΓςkΚΡhν³ή-ο?֚΄ΛΣi7@Η½ 466>πμ³ΟNxο½Χο?ϋμ°³ώΤά7|ψπjΣ41M³³³ΈΓ‘4p(ˆ”œ8ς™Νeλ(œm¦Νx‘κρ^Ψ0ΦnΌ΄v/½+RκξώJΗΜϋŒ}ί•¦}pεΑϋΊγ:₯……Ρ{Ξ8#ρ8�mΓψθ#½aρbύŸGuΤ]χίΐΊAƒφGΣΎίοβΌn:XR87TΉ‘ty2ŽI†Θξ‚YσΊaιΙ=αrμϊκχ„³q§ζT|ΪΔΰ‡ΧΣλν͘2<Ό?,‘%ψ₯όε/:‘ZΎχˆΎ•RRRRτŸGέrˆhJCm-rϊtbί|SψbΧ='3ϊλGω3†atv–· sW7Ύ‘uΡO’1E΄ΫJR›―'αχuχešΜ~« Λΐύ$r’·Ϊς9ylKEBs ½Ζ’hmŒςωM„kLΒM Z tbέB¬RΚ¦>…ςΛ‘ϋιΖχΌ1ν DίFH)ιΦ­λιƒΥ=wΒ *,₯kΑ*š0}Ί[²$τjAAε]ώσŸΏ:ωδSδwYγKGρEKL‰dάTP}’9w|…ΚΠΎf7ΕΜ—»SΏ―њθ~mOξ=ί³}ΰe†,w₯λ/׊’ΛΖξΫΉ5±ϋ! ϊvΒqϊτι3¬Ό|ύϋγΖ©R₯2Ί¬xηρ8rϊtμeΛŠή•²hβΈqγgίwί}ί)/₯βΛ– Rδ+=vΖ,3§)Ÿk+(…dυOŠψόΞΔ‹–’™sο΄±ν³―QΘΒKόiZ™?zhΰ<³•ˆΎƒ`Ϋ6Υ=zΘΟ.ΊΘι©i™„χΰ_J˜6MΘ… £Sš›υ»>ώxΖΤ8°S5ώη‹λΟ€Oθ%T’θ)R*΄iqΊpSͺ—.y^όΗJΨ¬;±9ΏξFΝ Ž₯άuλI·ΧŒ ‹πι―΄ΊŸxB`*Ε’„‘«rδEP[;J)ϊτιS―ψς˝Βαά„OΗO_Μ _~‹EξΎκͺ+'ζ7w …vYή„ζhoάk΄ŠœύjS‡~ΓΎ%ΌΔI”·7€ζΰ £³‘|Ι|–‰―˜?,NMw‡P—.Dϋυ£τ°Γ(8πΐ΄ιžΤθξ‡žπ–Ύ! ΏϋύŠΘY—wΚΓq�ν¬³Ξ oάΈqΠΜ™3‹u]7***šŽ<ςΘ5/½τ)%ΊΎηxΪDί‰8τΠCΒK—Ξ{λK£KKΫ&|6€„9s„όδ“πΜΊ:yί—_Ξ{qΰΐARμ$M&Ι"}‘€ΉΉV$«μ3΅Εb‹ύ°©Υ.1ώ_“ILb SZΙςΚΰ-WI Pͺ`|ΥΕ )‰Σ’@Δ,"5/½…ΒA’ˆ$~sS⦌glΫ&ž’”ΊEJyx2=Ν//K¦B¬*))Ήoƌ;pΰ@Ή+Υ]οξΘΠn€Ο>›k648c<πQύcνΪTW³]h ΄«JŒΊωfλΉ'Ÿάί9ηαtοš[TTtα܏eY;μωYΛ-M $Β•+a•Σzyς/1Πΰ“šj–ώ£’L7˜Ε,F3š±Œε}ρ>|0Ο?< 8Žƒ”ΗqRΗRJlΫfαΒ…\sΝ54Ϊ[xtν}ό|ρOxpΥ]Φ€ƒ†ν—dr³΄έ{GU¨iΪ\Γ0”mΫ―K)G{μ±Ϊ3Ο<£­X±Ηq°mΛ²p‡ΪΪZή{ο=.½τRMJΩΏΎΎώώΑƒ;‘H€ͺͺj˜”»η†”FίIˆΗέυΪJ) Γ@ΧuΦ­[«ν΅Χ^“Ξ>ΫΎyύ·-]ρbΑΤ©ΖW7:χtАΏΝ™3Ηvg›4ΣBώX‘RŸ-@μΏ+hΊ²8c΅ZΡς’7cDΞ›Ε8Ζ!‘”••ρή{ο1lΨ°”ΆnK‹ϋγ(₯°,‹;ξΈƒίύξw(₯Δ ώ“ΔΖφ¬ωXρcE‹›/VJυBpύυΧ3qβD ReΚ'ß₯O=υ—^z©η�e¨――Ÿχ](έ^μ1DOOΠuΓ0€eY,^ΌP3MΣΈοΎΡ>ψΰCm͚5`�šBλίΏ_yIIIy$Τ4­rΦ¬O 5βββŠ²²’ΒϊϊΊBΛJT AΉ¦Q)εΡ¨f £¨H jαp˜°m[FAF4ŠQP ιΡͺͺΆΏ\ρ•‚―ΏFNͺ―©­ έ§λ‘ΏΦΥΥ5(₯:ΤϚ―ZXƒΌyς”WZO΅ {b“9*ξ  9ΐ„ΓgΓ₯”——³dΙΊvνΊUχΰλ]»ϋξ»Ήε–[�ψ%Ώ€½H^γ5¦iΣxα…8γŒ3ς¦Ϋήο7ί|Γ!‡Bcc#BˆUΥΥΥϋ¬_ΏήήΖGσΒnOτh4z±eYχwœ*οΥKi‘D"HMSZ(”ξ?η)χ~=RεCg{yV|πΆqεJηΎξέ{όuυκΥ5J©l― 4ν+ζ'@dtΞ1ŠURwNλ—ΤζMόgώ(₯xυΥW9υΤSΫ$vφyΎΈΩΏΆm3`ΐ�V\Ι`sabrCβ ΓΘθƒo« =οΌσ'žx"�έΊu;dΣ¦MŸoσωŽ`·':ΈΞ-‹-~ψΓ“\Ώ~Υ}cΗrτπαJΫ]=Žι:¬^|}aYϊ£”<lšζ:@ϋυ™“ͺ~ϊΧλΧ†*W΄Ϊα5†bρμ*šϋλ¬]Όˆ_ύΰP__ŸΣ Ι;ϊ›}ί½χήΛ 7ά@άȍ\Σt ‘P(ƒμΫ+Γƒ”’>}ϊ°~ύz€ €nKύW°G=Žγ°lΩRmθΠCκή=qΣqΗ©žύϊ)ΝΆ;_#ο (υΩ;ο0+ͺ³ΞΜ­ΫwYX€7AzSECΔ‚έΨ[{Fέhτ3ΡD£FSŒ-%&‚Ψ, M€Χ…]Άά6sΎ?ΞΜά3sο6@E³οσά;3§½§½εΌ§A8 +Vΐλ―“κΨaβ¬ώzΟΈN}zb”.C$‚λΪρ-{έίΘψΖρtνΪ•+VdΓ€§ξήV·¦ς­·ήbΒ„ ”PΜΓ―ΎΓΔέ{‹Ε0M³YΙήz9&L˜ΐ[o½…išg&“ΙΏ|WΗνέΊeH§ΣΖΨ±czΝ™σργΖqόΎϋJ#ς?t́mC(kΧΒ;ο› ϋψ~bAUΎ΅ν }ƒ¨¨¨`γƍ9c^š£7―)pΓΎχή{Œ;–ςCψτε”••F½ E;‡ώ}ΐπςΛ/ό�ςΜ~ ΠΙdψςΛ%ΖθΡ{SPP{Σώϋ‹>ƒI#ώnH{)ΥΟ4Υ “†šZΨ°κΆΒƍ°~½Z_SϋcϊυλCχAƒθXΩ‰N]»P4§ˆΒc7ωVΒ f0–PΣcA‚Κζ‘ιρ°λŸOš6EŒωp<τΠCœvΪiόφ·ΏετΣO§ΈΈ˜p8ΌCqθR~Χ]weΙ’%τοί?ΌpαΒξ;ΠuΏ]Θd2 4°ΛβΕ‹/:”K>Xͺ]k_α»Δ*„ϊ…BŠhSIΨZ§$oΝΨT λΦAizVA‡0 μΦ v©€ΚJΨ₯"!°%€₯N₯ac ,[Σ›’>ΝZ…Π6’@吕ΛU‡?σxΧΨ΄iεεε@“‹Qš%4ΫΆ}iF‹γη €}φΩ‡wί}—εΛ—Σ‘Cb±Bˆ­ξ­Ε‘‡q§I₯” Λ²βί΅Uuν„ήH§ΣΜ™3ǘ4iήαpέ&ˆQ#GJΓ]cαφές­Ώ†ϊΆ,¨­…κM°~46@υF›Π―+t*…ύ`pθΩΚJ ¬ L΅kTΨψo8Άqη.C½U₯G{Zaεψt1 ά«kCε—ά 'rQ†’=²gf/»ξ:½φڜΊiJr«²+χ·ήz‹“O>™•+Wz~†apΨa‡ρψ㏉DšΤςα°m›P(DUU_|ρ………†α…illdκΤ©<ωδ“lήΌ™X,Ζ¨Q£Έηž{8p`«pθεψκ«―θέ»7‘Pθ²L&s{‹f'‚vBίH§ΣLœΈ_Ω»οΎ{VϞφMεε„6n„-[ V8cA‡RΨo œzŒ U…€νPΝVδ1—0ΑGΔ€ΈΡά\"υ}kD/Θ~Ϋlm€/WÜωπωg•ό΄ο\2Χ—#Eξ% ))9¦[7R θGj΅dΉvέκλλιΤ© Νο.=σΜ3ΉοΎϋrβ7‡γ7ή`βΔ‰ΜŸ?Ÿ~ύϊ …°m›#FπΙ'Ÿ4‰+‰°pαBzτθΡͺ)@P?~όxή~ϋmlΫ;σ–γ ΄zAJΙ]wݺ馛φ[·nέM†aŒ²m;ŠΈ:w€c„sŽƒΎέ δŽζ\‚Σιΐ­ύ|nyά₯ΤΌƒα‚-™!8±`k=,^ ³?ƒΉ ‘Γ‚Γ9eλ‘\Н”π―€[Ώr%'Δ‹/ΎΘψΓfj'ͺ««ιΠ‘C«Γ2„yσζ΅Ιx‹Ε(,,dύϊυX–EAA­]ΚϊΤSOqΤQG΅—«E˜¦y»eY—΅*βN�ν„ή °,ΛθΨ±γn‰D⦆††Γg`μΈτt8β`4fΗՐ₯?ι|₯nVίVNέ»R]χvUο`ό&βΈιιΈέh–u °t•’θsΑŠu°’_pΐκΣh˜Ρ™ΔήaOuρθΡ¬ZΌΨ#žζV‘©ΌdΥίp8μξ&k5L:•[o½΅Υ8¦OŸΞ!‡B2™$‹εh-ΑŠ+θΦ­[³8t·I“&ρΪk―ΩιtΪόL·}7rω C:fλΦ­F=Ž―««»Λ4Ν P„3f0\qΎΠ rIΐΘ/œ…φ”Θ>βΥΌ€CΨ.Έλ“μ:“PΈ‡[ϐfΰ3 ˆE‘€ʊ‘¦^κs+“&ŸBΌ»ΙΊO»`‚U‹sΩe—ε§ΦŸAχK/½΄I"οΡ£Ώύο‰hσ˜BjkkΉπΒ Ήι¦›|sγΝα>πΐBPYYΩ*"?ώψγ9ν΄Σ0M)%Ÿ}φ]»vmUω„<φΨcTUU]»vέψ E„;ˆβbσ₯]wzΒμΩs6~Χ,‰;‰‘H„X,vN:ώ”²� dΒ₯?…«~E¦ί.5)”ΊžU>ŸZέψ$² ΈΠZ¨“[B"Άΐ’0K%έΧoV*ύΐ΅Gpκ7#€OYΑžŸL:nΣi8•:Ÿ ύΗ?ώ‘^½z59Ο-₯€[·n >ΌUx� ΐ’E‹š ;fΜ»ξΊΌΜ`βΔ‰Ύ 1-α3M“x<ώaCCΓθ#ν`\|±5ιπΓ?ήπΓ†¬H$ςΫΆΏ—Η7–e‹ΕŒΗγk ЩTκή‚˜,xΰf°ηBκ=ΈεΜ,‘»]Δ5”Ή}Ζ5‚ έO{Άψ“š…^Ο ΞHMy°οκFyP ΘSο…b`E1θXέ« Η.Π₯£ϊ^ΪγYΫ{? ΒάύΌΊ΅Ψσαη¦766ζ%ς|ΠGδΰW•]’w-σΝαΠγή|σΝ9Έt8δCΈζšk°m;/‘λ†;‡ž]΅Ÿ<y2 £Ϊ:LψΆΐH$T?^W\‘ϊε•WrθΠ‚ G|τΡ‡F&σ[Π"آ͘1cŠ„/™¦)‰ΔtӐpd>„­oΒι�)²Δ₯΅f-ΒΔ @VϊζWϊ -쟞Žgq8?―I?nί»›¦Θ~λLΐe"AΞ`:ͺ{E t­‚ή] OθQ]*‘¨r=W°+o‹7ιίΏΏoΪJ'H•™C<ΞqLš4ΙΫΩζΖӟξxΠ­)ϊχΐ‚0οYΨΫ_&LΘΑ‘ΓζΝ›σβp!oκΤ©�φάΉsΏ¦w£Ά6{Ÿ‹Α 'd*/Ί¨ϊ™ϋξ•ξΨ1ςQϞ=z΄Υ ²3B&“‘΄΄t?Σ4kf͚΅)'{ ΤΌ―$χ…G@FSf\"ΦΑ#hM²JέΏαK”Τ:Žs.ψ%Ό6XΛ…fΤ“Z>΄1Ά›†$©γџzίvΏ#a()„ͺrθΡϊt…Ύέ‘wWυέ½d€ΝΔ‰΅:ΎN―?uBΘ'Ν/ΏόrίwSγο¦όƒ8tχ‚‚�^y†v…Οž�λCψηPS„9eΚξ»οΎΌΪ‰nh βΘ‡sΏύφ0FŒΡ/oζw206lMr€Ξ1.ΊΘρ“Ÿ,κπΓCVqqδΟC‡-ϊ½eY„B‘KΒα°USSσZq,yυ!°>€Ηo„Η4!$4tψ%³€7d­ζš~žΣ=5I¬Ηrr“pέΓ=Bpς‰ΗςΟ·†g™GΙνβэlžΏnΣ!O~…PR="¨ͺ€ξ‘χλ~}»©°ϋξ»o³Ξ‡Κ!„]»ϊά‹‹‹}sπA•Έ©_s8τ΄ά9νwζj Φ†cΗΑΦ· ζ=?ž{ξ9:θ .Ύψb2™Œ‡'ΨάΠτž›·>}ϊŒiΎFv0Φ­“Νκζnηή}wi\ziꌣŽϊdλθΡ‘FΓ0Θ1γ’Ιδ7•Χ6ƒ”’‚‚‚[MΣ΄2™ΜƒϋJcσ»°εuΨo`–X²γlAYaœέ'έΘ΄χDJόΤ}x]B8Ζ8m,ŸΨƒκ7CΤζ!8ώΨ£ψΣ3eŠašz.³Ήn τΖόωκ-]̈c}/„Κ2₯ΚχάEω=TΈ:δ¨ΥΝ£”’x<ξ#–!C†4i|Σ΅χΧ«W/|8‚ci!7εΦ(fώϊŸΤΠμΊ `Ι’%~ψαœ~ϊι€Σi_G0ΑaΖςεΛs#ξ„`lΨΐϊΦvΥΖ#ސ±«―ΆόKΚή½£«βρψξ;“QΒ™Ώ½D!¦NΨ#=ζ=₯ξ!QBφ[Q� [rΰ170oiVMχ¬ιd;OΞSfΏυx>š~νφuθhͺ³ž}Αe,ZνΤΙ½τΘΊ{—Ίa΅όθΣrnάΏM‡Πhxež’μEE°ΫΡpΔ₯Π΅“Z~ PRRβ«Ϋ¦–ŽκώBN<ρDΟί΅h7?ƒnU·ΩτRΙfκJ€iΓ΅§ƒύόυΧP½i#Gy$S¦L!‘HδΰpΣΧίέ…3�Άm—ΆX˜�ŒΝ›Γ[Ά…F…PγΜ3ιrō³?^ΘΒΒΠ3C†μVφm©φΞ”ΞήB™N§ο=RΑkχ€ιžμJSbέo„p¨Η°m:Ύ”΄ΘO£?σ… †'Ϋ]_†*|SH›5©)ώ4΄ψξSo7O²‡ΊπξΚ£¨OkιΉΩΠθΛ6ΰ ηΥΙ{)5ώ€«Τχaϋ©΅υ•ε*ŠkXΛ'‰υχ ³葇Ό0_~ω₯―š‹WUUεΫrΪ\Ψ`zE₯΄Ί~r dfΓ]WΑ‚ (((ΰΤSOmθ§!έόmΚΙΠN†a,۞„Pϋ™„Ÿ<sď~΄`σ„ !+]iY–wHβΧ Γ‡7„k2™ΜΜ²bΨς.|πw΅UhήΝs>…ΞΌ­T{°;•—ςχη{zώM₯C3~98€[JΐΞ€ΞPBυΜργφd~φL_œ €χα-ΕΨέ‡³9r[S~›€ώτkΥσŒ#`υj°BπτΛΚmΜ ₯ΞΗγ*»K—.uΚ”+‰ƒ.H˜‹/‘·Fš›¦Ι¨Q£ZCΟ—”’ώ=ύu\]ΉpΑ`gώyδ Γ`Ϊ΄i9³ ω†/K›-ΠNF"‘ωpG%ζŽη'M’ΖΤ©‰›~ωKS\Έ¦S§NX–υ΅LC8†˜KηΝk θόPύ*”„τ0ώŸ³’Μρ‘nΞ8<K₯gœsΥ Zψ@YیCψU{0B:κ₯κ’B€’χ?οMPc*ή4œ¦ž»y Ύ+B@·]:³,q*v`΅lόG}°|ΎŽύΉϊΎώl΅j.‚ˆ‘ζ۟}φY_}CtΝ'i…τιΣ‡εΛ—ψN£ΡΣpŸEEEpΐ9ώ-αpύ„Lή§ uY;‡χO…ΖΤΊ‚)S¦Π³gOoή½)+ύςεΛgεdj'£ΆΆώΛV ™Ϊ B@a!œrŠΥωόσΧΟ8σ̐UZz«kΧ.•;J΅ο₯‹!„XgΫφοƏV†– ΡTc7/hν8θͺtΆ3D²F-ǚ%,‹§^ιœCΤΎρo[pΈA\υ> >;°Ÿ|θ‘jE½žŽΧ‡OΟ„ΩAiΐΠ}ωϋ΄>~JpχΣκυ'Ξͺύš:xφυ>Πα-΅ ͺ ;–Γ‡~Ψ,‘΅έ»wΗΆm’Ι€·]O/‰°ώϋ³οΎϋ6)­[‚E‹!₯dQ΄Ύτφp^’ΐW… +W¬  ρζ›ozxά|ΏπΒ �φόωσ—·*ƒί2ˆΒΒΒ—_^Ρ7LJ%-fΞ™™3ΓμΩ³οsηΞK΄υςΖΖFzτθ1jΓ† s�ζ<#{h4Žξƒ΅†vΏsž]opΪή‘Z¨KΦWo’Sςώ[ΆΊ+™‚,γtF©‰ Β ³κjΒ³π:-ώ΄έ(²λ Z%R|πκΥμ1 ›ΧΨXHeΰΙ[Υχ‡ ΰ–ΏΓρΐQϋ«p]«`μΈoœ{-9‡Ex8Dξώρζ¦ΕςY―u|i΄ǏόczπA2³³ΪR³u₯ω9Αύ³*(;FΏ)j;οδΙ“™>}Ί—ŸqγΖ1sζΜo|»ͺmΫμuρξ‘UλΧ\j†Œ“€E‘βΫ>ωΛgӚ[ΒnτκΥsιΧ!Ρs •­μ½χ–‘Ÿ<uΙΡGΟo92²΅ΈΈψψόη?†>ΟΪΨΆMiiι6l˜Σ₯€?„QΞΈL'λ μ=eΰM•Q5ΕεHOΣΉ€N•Y_³#pΰMΏyξ΅N&²γIgΝκUY|ή½—,NOPΉšˆ)Ψ’ϊ葞=ώ)"οTl+RΒοk~δμ@•ΐΚ΅κύ$΅ΰŒΧ_=‡8σΗt‹xS›Bά§npkjE\kq<ϊθ£ μ­ VΧ•σ碏 Jΐ°aΙΏαχΏ‚3fPYYι©ς3gΞ€  ΰΕo’Θ₯”t?±Ϋ[΅ [“ΕEEΏ)ˆ )ˆμgΦσΟμoυ=΅Χ ¦β'NΜ|#3cI`kφSu<ΡGΛ’K/έϊΨK/juν^F5·Φή0Œ—R©ΤU'L•ΟƒiΖ ψΏ=mΨ‘Ά,³ŒΕ½Έΐkx7…L†Ή‹w�Mτ…YŽ«›gΑδίΈ1OωDvlιuP „{"…pςοŽϋ%ΖνΙWTœί]₯qΙ‰Ω6H$Υ3“Ρˆΐα8EN?>ωδ“΅rδnί Ίη°M-om-ŽυλΧ“ΙdxπΦ6Τ•σ:CΊ;i\t,~Qν­‡Γ̝;€P(t6ίΨΆM―SΊΝ-.,ηΊIk „‡?λpLΩaωβ;vόf γ&*S΅~gαpԊ 8ο<ϊ]uUς³cΘ’’Θ£:u*Ρζ+B|Lϊσ πθ΅d-ΫΎρIΥ •[Ί/� †i«,ΰžT1 6ψΪZPΧMrΒ;άŸ gœνΦΪΣEΰJ(71Y0άιΈnu:‚mσ;εHΰŽ‡”Wg¨³ΎZ='ο•[Ÿ Iεvχ΅°zυj’Ι€Πthjκ-ΈFχ † ¦ΥRJ;LυνΡ}ΪPW.³ΕΊQUoΈΎΠ8GεaδΘ‘!μκκκe| ₯€ΗΙ]f … ̐Ζψœ?αΨy:–vόwΥΡUέ‚iΧ^{]WGλŽγΨp‡‚bΧΑ²`ΔΈμ²Τ‰ηŸΏΎf―½ ‰D/‰F£³₯”ƒ¦~z9ε}j θυwόc4χιc‘θΥ—=Χ\Ή¦­πφγΌKBS6³‰»y‚*νΪ&·jA² ήΧιΤΩ±›‡A£&"%¬ή¨βΨN§uΆ zΘ8ό α³ΕκyξαΚiόψρΩl©±v6ο~ ίTœζζισω%“If͚ΕΥηα£ΪλJwΎu¦κ}“eθ1©ΦΟ‡LRύϋχ/Θ)θΧ�½Nν~GeeΩ‘ˆA("… ΒQƒP8{ΟVTaKKŠV ή†eYFuunΓ4 ΫΒ\Bw+~kSΈΔrπΑ0`@ςŽt:½ϋcwΐδŽΏΦ+¨ϋžνη^cΉ„θ₯­Η—€ˆzœQ8­μZή₯”ΔΒι€Γ‡p‡—–°D»‹–Žπ§“3|0+uUΞ‹$% Ά+²XΕοX–MΗ%τ.³ €«._λ”Ι†.„Ω³g³nέ:­4ΦPΟ[Rέ[σήΓ† ຟ:υΣΪΊΒy^σ >έΓ†€SgK—.­oiόφBΕΡ₯'WV_ŽxΏ¨φ‹Έf·ΝMΣ ϋΙ]ΤΣ1,Λ²Χ¬m#]%•Ϋ²Μέ\ΊˆkŐaρbψδΈώ|8Ξ‘:M’Κ¬„uA�1F:\ΐ§ŽΙlΧM`iω“Χ²SΫ‡ΏtA‚ˆυpΈ†?w| °δΛκ"c“Ή8< ²›–W@w¬^Z\Κ–-ΚmΑx„PS§ γ1�� �IDAT‚¦Ή ΛΆρ:MΉυμΩ³Y•:Ÿ­9iέΤΊχ δΓ1{φl-ZΔ3w)τκΈ₯ΊΓiαέΎDπιΛ$ζ¨οώύϋoϊΊ–9s਎₯ŽΔLBGܟNτ±Kΐ0εΕ₯§.^5,ΆmS_ks.JP„ήZ‚Χ*Ϊƒtΰ;<ς λWŸžu“NzžρKϋš»/ΌK”n6dφ‰C’•ΰ΅ΈK$„B 뻝847—‘Θ‚aYK— ώW¦ύ+/€‡@Ίx) ρ(υUxηΜW―ƒϋfURΛΞ•vΊV’Κd=–½©TŠ)S¦ψ€j[${[$~s82™ {ξΉ']:Βα{ωσίr]iaέΆΠʍΐΣΨ‚έΣUν£Ύ˜RΚ Γ0ξΫΡΔΎβhŸβpfNYΗ‘ˆ"μHΤ$5inzDr~.e3,˜8uί;άτ €εΛΣ͌š›BTβ.Α7w0V‰ΎΦhF…w ωψ1mΌ€ύ@“ζω€΄Π// Δ;_x,\—)λ6¬§cιvβyšΕZ<ιό@‰4 Ž™΄9+τ2juα&/#=Qd΅ΆU΅Ξ”YΗ2£Ž1H ψli6lχ2ΈεR˜6mώσŸ•{†5έ�§Kφ|’Ώ)- )γ@QQBΐς²]ͺΥu₯»λ_cή^ά\ΤτοgRΚ³ wΐ%Ψ 6>WΨ―Sχ^K^=Ψ"R"¨λ"GΤx=^³3’β’KάƒcŒX,F]½l›’Ivμ Jo‰ΰ’P鍹Α-‚T όο t7zWΞγξΆ¨$7žχξ„ρašτp¦nΘJΧηž|Bεa{p+Ω₯Lg%8Β‰£$ς|Š…ώrzο2O™γΓό~Ξ<ΌλΏnγͺ½-ΙJ0ι| ­ƒλD±l₯χΤΰ‡{ΓΩgŸΝΏύoŸδΕ­3Θqϊλašš^Λ§H))//'™L²α­¬Κξ‹ΫR]iαΌΊΏΫ¦m'η]dέάπχύ’ahllόbGHυ oΪ«¬σ€EF4B½"1GᨙUΫ½ρΉ©»2 g%e:m‰†zΑΐΰHτŠŠΞΫ~sΉ’Ά9‚wYͺ7€"οXύΡGΥ±Fύ«²ρτΣW<"r½…ŸƒCΆat7c ­Α’=|’Ϊ'aLƒcΈΆΥ8€�iδΑ‘N‚ ’α’Ω4$-›CΖ|쩉ή"‘Ε£«Χρώώ<:Β™ώ`φ§„œL؁<Ή gt’›οŒkΌΥπΞψŒ�Gq·άr‹^²&%΅J³ιρxs’ήύN§Σ˜¦IMM Λ_±€δmm]e«Η'Ι= Hkgoδps­ϊH˜υH)ΛΒαπvBQJχ«* ΝwXB&nˆ:D¬«λYiŽ Η /… Lη©Κ"X²ρ&p}ŊuKΆ'ƒαg™nMΊ*½Ύΰ-ŸDwΓ:ΰμ`ή³ώΖπESΡά_™Ίj™žιθ<΅"μ*½ZΦ”dΏž»)΅‡0ʘ΅ϊhκ3šT�‘*G’»ZzΧ&½πδEω Ό{ίnžBεŽΤZXυ-‘lψςM*œmε —;ωkLϊ%:ψ‰Γ֘²Λζ<?:ΌςJFŒΡ’τnnϊ-ί<Ίξ'₯dΜ9D"€”TΏέKΌ,孟fλJϊΫRοW9 ΩmCM-Z ν1°m{zN%΄.ύΫy »€Οά΄Yr£Μd© Ψ6οl O=Χ-νή3¬Τv3l(beL%,b±θ‰+£}ψπaŸ77i'·vέZs%ΌΖ!st)‡Π₯„Ώ]σεξ@ΣU*Θͺ[ϊOhξzςαςn>=•UdΥ2‰ε Τ­Ϊ°‰3_γΉ΄ G|({ŽNmΑElM9ι‹l<OjΖ‡z‰H€Nπ§»~Λαl_5ιοz9ΌΊ€Μ€£ώgΓ:>ΣδθRτξ₯όVΣΚ*•ΤΆ½Δ Υ|Ί§AiεψηπίΑΌyσ0 Γ·LΆ9Λ|kT}χέΆmƍΗξ»οNΗr°?‚²ˆVZŸkU]Κα…uΫΠνš›/ŽζοΆ«�ΏlΫhν 1�–mƒ/ιρΛχΏ)‹ †χšΐnLa5$±“iΆ ΣGδYΥέτα‘ Œΐ S € “²)ˆHΗ(Ι'Ÿn‘„Ιφ·Ζsj]σΧΏέpi΅ΣΆαζKιλβ[‹β€ξΏkΜ!ˆ_ΐ,r8³τ$,ΛοΔ”-ΰ K₯� †’.•X-‚­ν>σIΛψ°¬‡`šάwΧ­œsTm~ $ί»«-hR\?Φ}>ώθG`xε6Ο!\)Αpl,fSν/`ΙJ-οψΛqΒ¨›εΕκlτRοθδζΏίσ©ρgœq¦iςΞ;οπ»_ΐΊAXΌ΄Ής—CwΣ‡?z8t==‡μ₯ή §d¬ ™L†ς£K&υ:₯ϋΜ ΧŽ°*JΚ~γJγFaπΓΧLώυ₯ΕΓK‘ ’79tαΰLGŠ›¦ϊ¦"xW}7LΙ1·T0 £vΐΦΡ"²«ήt5^'ζf:°v³ϊ< α—ζ>ώ rέ\\ω¦Fd§γt5-Ύ ΞXV ξ{ΕkΩgH+pˆμquΐbΎ/°Ο=:΄+γFwεΣsβ?C€²qΕ`P υΧVobαϋΰμ£4 ^ ·^₯R�‘Έ;νt&' ’Žž‡κ„_€9Ÿγ1΅ξU°l΅ΪžΚψ›ΗΕ‘Jkψ΄Šumlzf~OΫΚ°aΓBpφΩgsϋν·FσZΞƒΛ\-ΛβέwίεΤSOeΩ²e�Ό/<χΏΡMο.3ou]IM« ”#Xw€²C/­y~–κiΛΊψ?P§†aŒ:XΑ¦Ϊκ;vϋΙ§†ΓαHUY{xΜ'ϋT u•:¬²‹�΅.’UΛm „°‘lKbeCp₯Ήi�–_Ό»�˜3gVδΉηΖ$=cD 56ςό‚,.’W½ε­A^~fΎ­Nhm²’]‚Ν—•ΌŽΝd·Γiˆh_υ.%kͺ·P»δtΛ¦ΥŽ›†L…Dτ)΄T jjԴ֊°bΉ:NΊ΄v4ˆ½φθΖϊ%οrω[)-…B§q‚7¬6y'%‡Bα9•ΐ}wίΜΩG$T±!΄§ͺΗ'Ϊλsΰž'αΖs‘ΟάNŽƒβ¨4#υuœo„c.†OΊjΎ ¬¬Œ]wέ•}χέ—ΚΚJ ©©©aαΒ…ΌρΖ¬\Ή;Μ!†_ Wž§4Ymiλ6φ‹mS…GžΗΆm;ΌΫY}FX–ύηx,:JΓ§‡(*uT`­ΏdŸŠhΛ;E‘’qΣYςͺ΄Ϋ’€“6©€E²Ρ"Ω`‘pŸ ‰† ‰ Ϋ†’Š0uΙ-ΏW QJ.»LX%%ψχάI %샕”oLη2}π“ODδΗoΪ‹πΑgy0OΣtιβrdg–ώ’‡Υ³"wΉPσΦϋΛ_9eς2"Α‡-ΰ 8N<±yΒt…—FΕͺ«aε X½V­iAqμ3†½C―κ”Φ¨ {G: vωˆB―n€ƒμ±ΗΕ >ρ FŸ -€ΗoVg$Rpκ50|WψΥOύu£Γΰ]aPO}ζ+ͺO3`}-άϊWuL՚j/ƒ;Ζuλ²ΌΔ`πΐξ ν΅…ΛN©‘OUVκ6‡Γ+W }ΌΊψξ‹Ο—^«q+—τ²Ϊny©„'Wvƌ˜cμUh³΄!;-TtŽeΣΦ€ΉΗ „#₯"Ψ6Δβ&‘˜²Ίd2’tΒ"Ωh“lΜ8Δ­y½b�VF/ QXz=L&-[„QR ^ZŠΨτ5Š•SZ 2�ʊTϊ»cdOUΣ8€«²ζ]­¦;:ΐζϊž}βŸLΩϋK~zP‰Φ67INsS©ω˜€”CU•ϊΦά]¨7ΰ΅/‘ρsXΏ^i+WΒΖ L@χ±Οžέ9Ί£vb—.εΌϋΪtŽϋΑ'J3ΣΪ↋αΠsaΖ{pΠήw¬ϋsεgDn}-Z{jEo†BΌi,ͺŠαŽKΰφ‹΅τŒμ;Vn΄Ω₯ΣWjϊO΄G0LΎ°ΒwϋN›pδ "%€…ΰ +Ήwn¦P«γΕ*ήυΓ2LθΨ`'<°ΜΰΡ5q@rΗΠDΧΈC₯ͺ±•:Vs冩*ΦΚ „!œŸͺW΅Ο?[V+cƒ ‡—Dξ΅­ƒ$Ωι° › T–―–Z‘>½σΌ;j^Ο“~Sl΅ *™ (ΆKΛζ‰Φΰ0`πIpάq­Οˎwφΐ½ƒ`λVX΅J ¦ί¦vH€s„Ί₯εαT§ΌϊOπΕ2xπ:ˆΗτ„³’Χ–plSW£TζqoͺΙς5νN‡Γύ0`~Mœ{ζuaφΖ"b¦Λ‡σμ‘<>DΘΛΒN€±λτI)P\ž;uΧQdwͺδΒ“βς0©€MΌΠ$V`+  ’Ά'Ή]5έϋΥgΌg&-1C‚ŠͺX"j cΟ=:”9­eˆ:? 4Α+ άmJͺηˆΪ,Δbj‘Œ”ψκλBΌFΤ‡yΠόά[jYs$πˆ<Π rh»%6Lή·B,nVͺΰΪάkςβqθΧOύ ™κκ₯₯« cCΨ„Ÿηά Χέ·\δ”I:MθΤ‰RΦΜ`ύq’5­ξήκύ@ζΦω·ŽΓ€Euq_‰WVW6²„]Rˆ§šψ$2p\Ο F$„‹`§2ˆŒ !ƒ‰iήkŒc†έ’n\α•ΗUα͐›Ό{ H)±νfYUD6œ!PχWW‡RRfš7ώδ$†ZŠΨΙ_ΩA‚oŠν;Cm-ˆHΧ“'Ύ+iΌ±ψn.qUmΖ|}όAϊ‚^…mΕρ»NeχƒαπΓ[¨·o΄N,Όφτό\s/ά|Ύšu6ZΘP]ς©ΖKWΒέ΄ϊsz [:€€œ~εΦ­{Β‹Oeη[ΐ€Ό±Ύœι«*™·₯˜ˆ)=…qΘ±±ΈuμNsΞθ'Ηf{Τ#B$žέGξFτ†:Z:Z.mΆΔΆ$™΄Ί8ΒΚHlΫ]"œ­#mύ3jω³£)μ@4₯ͺ*²¨`[@β—κ9Τ’ΧjžΈΩ2SY©ΦΉoj€Ρ@RωJδϊϋPγτZ›ψ 8nηΙΉN©8„-9xw„ψΰ—κ­·su/Q–ν%+ΥΕ Ά„ŸŸΏ}~σwΈόT­ΘA-X ύΊεϊεΓ‘Ojζ­“¦μvΰvφ;Ηd$@˜`ΥWb5T -›OkαϊeΚνP[aA6oΊ΄vς2‡Hί¨79?U‡mK°md&–ΝΪpŒ(jΊ,KԐBuš—¦ΒaΫ+£~锍aΈSjΫRL@Ρu–θ=βG({�¬τN?"ϊ1€†δiŠ\¨1ΊΎΝT#¨&%w>iH7Q™όΥ]π§Λ³Ρ‚k±›KΪ—'žλ4ΖyMζf'_±šΔ!ism‡³χαpΠAΉζΫ‚`] ο=#„‹nƒ;.ƒ1ƒ•ϋΞ»ϊ΄= Ί²ΦT³zadώnL«Ιό:ο€αΗΒς5)Γ­i*fՐ„M[ ΡIΓI$5¨ZNοq•”τ("1±$ΙΉέ2…2†ŠΏΥόΊc6y$us„οΣœ±Ό„;«6S(mΆ€l.­νB4¦5œyΚή‘4WoQĚJ35΅ u˜r—1ZI&e{ΓYΫVέ²l,KI{Ϋv~Α 5±ά#τ΅k·6}ㄍ"μ δ³ήZΑVˍ4C0Kίf#Iz†·&΄Ο2/šE™4<-β•!QχΆυο9Γψx§”κ¨KΑπnjͺnυFψj τΪn»~ώψρυπχλTx―œn'“`z-წφ€χ‚Χ˜JΎσΥFψT;€sSM3x%|λŠ:Ε|σΣ8―k ‹!BvB 26b„3fV¨ζHkα#drΒ˜π³šJoψ‰‹lzNΑΥ‘aF‘‚³WsΎθ…ιŒ3mKΣ2iΫ[! %Ε3i‡Ψ3‘[Ž&c+F 5Ν‘˜Α–ϊκχτγμΩξ6jΌ]λόκΙyS «ξ˜!HY­a�ΐθΡͺΎ ί!`σΎΡO ]ŸtΦό|¨ςP½—¦σβSγ[ΒQ0ά{ΰΞ£™1#7ύo |εΆΑΊ‚Γrη ¦©wͺ₯°έ;«‹πΚ,mXCΆΓ/_ηO·©&•ZΟ_W‡GŸ|h‚Θέΰ½ΚaΓΫ0¨oΛe.θ‘CB’q“HΜτž‘˜’˜Β4αΒ0ηF6\ά$ͺΗqΎυwΈW—Ες₯ŠL)h@DΓ…1ŒXAΘd€™P{ΛΓ–%‰DM2i›tΚ&²H'mI›LZύ”Z―$»+έ]u 5±,k†Gθƒt_.R¨ (ξΤY5ύδΞΛΉ«γtΠ[Ί))ο†ΣΓδ#v'Œa¨F?δ,²kΤσ€Πγjΐ[<‘‘υωεΙ–oά'²αZ#6ΠQρ$¦mΣ₯rΘ·ΊK-ί^™Γ](‰ΕΊί|τ©ΰχW*η_―Κt»³ΗΰΎ§‘Ύ1—~Ά(π%‡‘ζanΈ`kQΌpyq Ά¦~ϊ8dζΒOnΊμ£Žο™C°ΡΈA$n0'ΖN₯±“ΘŒ–MRJbqƒHΜ 3|„™DβΡΈλg¨t=ΒW~ΧΟρχπ{q”_¬ΐ$rζ™ͺΓͺΣ…MΤϊφ°"4Ϋ–‘Ϋ‘[ή{±λ]f‰ύœI?ϋΠ#ΫςŽ=֚@ ΅-޲¨:Ώ"νWŒ:JͺD{Z'Ψb4α–η[ΨgΥΐΏΌG}{ ƒΐw +š;†sθ’7_Ά<&Β΅G€ ξxNΑcχΗk―ρ‚«^WWΓ“OΒγΗwa€(‘ΖnR²ΗΧpδxΊ+l­‡ΫV;Ωώκά²ϊ“π·€£φ74Q§:΄6“ώψAeΟ γ1Lι―σΌ8„Ίχ/W¨λŸϊD΄»φ�fή»˜XatŽΖL’œΊΖ4vC;‘ΒNeΈͺ¨o@R>m (Ρ#qC{Ο η#φ@ΈX‘ΙK”`§2Ψ d*ν1œ/γEŽDΔ ”4Ο€ά%―Ω_:e“IΉΔξ¨πšdW=Q"m8{ςΕu^σœvΪ©±>}jά¦q₯ Έ§ΞιΤ‘ƒΞšσŠΤ\§gΐΌΟ`ΣL¨ˆhაo˜ i~TΎ8Ί·Ϋ™E3αu]nΜFr›žό0{OXτ΅ΥmΫYhτœ{"\ωc(‹ΚξBΥΕκΰ}~ςΕ"†”=L| $Σ°pφQκtΨϋžV‚ζΙ[₯«NYžFΎϊta[4™¦k%)αύ%0ώdHk3@ÏμFAyΔ±€Ko k₯l’ ј‘1!±RBJ^ύ“Đ’!$a,αH!Y’dίsC$₯aOΌ£ό ΈYRRνΤ)-{ θg‘.BΠΗ&SQ[!CmfPγμ]k·r’½YMΓ%Σό‘ +λΒΞύΞ ·U‹λI&ΤbΓž&©¬ρH9ğ°H&,R 5ΧPXBD2‰χnžχUΧUW!CΞΨ*ž8—‡ ςt>Πύbp½snœ5 6�E iη] ήAz’^_Ηθ-α°Av»ήε‘J…—’΄apθιW3vleέp—Μ~ώ9Όό2μΉ\{Œμ"ν/Ÿ^.W•]oDuΆμΞ±ϋξΎ™³Iή]Ν‘ο3.:ώω"<ύš"φ'nuN…Ǝ€n•ΝΰΠκ(g–C/ >Ύθ΅‰^·mΕ!%<ό*œφ‹6T*°KGX5o‹#oΧu>ΞΏξωD£Ρ=’ΙδM₯mΩi Β’iΦ'–·/8΅_ά,ή«±α”0…“llΫΚΖι·φΓ’Oj1C‚Mλ’˜†›)‰mƒe)ižqTωTRΉ•Q΅Φ©[œΊ††+>Όmρ-^•ΪΆmœwž‘ξά9gή<l%?§mJͺ·zΌΘ(\=μR «^ΘϊϋΖΪZη«ήJ9JC Sε(#Ίs8̎Pu‘/_jJI²ίώΞ&ΉΝRέUΗkkaϊt¨έ·ύŽΩO]G•ζ-§[ΖJσπ*°΅‘βΪ[°‚1j»jΟ]ΰΆ‹αΡiπoη2ΡΏ^ EP\Žυγ%p°Κ€ζη §iDΎφh©­ΐ!Mθ>VohΉŽ/>ξΈHK0€CΗγϊOϋ9"‘Θ=Ιdςό|Ϋp[–6 ²/›5i†ξŽšρ½r�W7²qu‚šM)lKfΧ~Ψ(5=£TxOͺ'7*ͺbŒν?!όΫΣώ˜ρˆ:“ΙΨλΦ΅ρΒΈz|γ΅H°S‡Θ­5ίωΑY‘uΑjηӈ³xšjψΌι;nRζ Τ"Ψ1›ΒβB:H€“ΐ‰“jψ I^Ÿ'›NΊ–oΌw1BbΛDϊtαΣ‡aωαψρŠΘέq°Η€ς‡λξ9ؚUΟβxœΗg οCηjΚνψ+ΥΕ‹w‰Jη§7Βc3 Ά.[98ςΥ‘ξxχw[ΚΡ † +§Α…'5]ΧBΐβιpΗ…~·ΰlΫ&Řή[’ˆά4ΝΟλλλ·™ΘL#l !Έ}Ο™KoΫύƒφŒHΡp§»9₯ͺ{ι”MQiΨ§{ψ”c˜sriΫΛgyU”†D’ξ7'έ‘Ν†n[Ά΄α–~U:H¬a²†ΊΝ/(%[:ΐι§ΓΌ…0ΚΉλΟν²Λ[D\γ>τ~¦§αs¦ΥŽ‚έ|)»aώύίœux5Υ+ςtP ܎΄hά{`ΦΜέ8ξΰŸρΚc7²~ή―Έωη)ξ°‹ΗψΠςͺ—IκD“Ο= w©r—nŽ)ν:I•Ω†Υ3ΤΑΆ '_ ΣgΒͺ7ΥΒ”g_‡S5Νγvί}κΉσΛg�mS9Z‹Cΐ—ΐ³wζΦωπώ�ϊvΜ2–&qkύυ΅Ο`μρ …–Y–5Έ­W~·Q3΍|σβΝ©΅α”ZnK΅=² E ozΝ•ήι€;N—ήΠ*R{֍…Ca% †/h<α;–7:θΖ77‰"ξώ–�5'ŸΦΒ‚Ÿΰ ”e_’=΄Bhι‘`Ω2xπA%qVΏH–Ή$o^€ξŸd€΅—Χ¦ptqΖ½šί΄_γ a―#$d 8φu§œ[ΓP7₯Ύψ"iΈjκ8ζΘ‰„3Ξ QΗ<υάK½ϋΫ9ξ>›ƒο%ΰP|ο‰w §–Vc&MΌϊΧj½„γΎ΄’Œ[‰9ͺ9Ί^œ ‡ώ4€^}ωΤuΆ§Ϋ€cSφ>Iβψί?AΧbΏΔ1ϋ 2 ۝₯„fΐO―‚P(΄0NΨIސRrΩGc/ —?φώ λlZ›ΐΞHΝ —]4£4JAy§‰DͺaΞοΊw¦{¦·X,FUλ-ζ@'ς0j*9hκΪs‰"pύΖ8Š1ψr§:BοήpΡEpη`ކ­³ Πέα¦IΊΰŽ57m·Iν[οοAzφˆίν„ωpxC¬ήy}β¬ΓVyaC6¬Z ƒ+λψΗsΰό“ΰΆ3α§ ¦°:ο‘Ά“α|άΞάP_›Ε"4©¨Uϋ’—Γ“tˆοκδIxv7­x,Ξζ­PΟβθSΙwαΩ·ΤΝ$ ŽzήbAi„‡Φ^αhεπεw[Λ± 8*c°πir €½OUΓ'λεwΔTxξ5BΌ™Ιd&|έDΈ«ννόSžξ=€~뒏k#₯6I`₯Υ’WΛς: R Κ:F°’ŝΊ»D>R‚P¨δC¨mžΠkΙnSmuŽΙUΩM²‡ZθΰjB‰`ξ,]Š œ)α―Ec`ϊύ0ydΆΡυΆΞ1Јΐ·σξ©kŸqH·ΊC8ΐ“ζ+Φgαμ»9λPΌ€.Ž™‡ω+α†c@dœ΄,Eδΐ(™Q›gα}zλ¦Φύλ~ΣrU¨#ΈΣEA–Ε†j(οš‹γˆμ%ͺH ΤΉŽCΟS0ƒΒOLΫ\Ž―ΗG_ͺυάΆ•`ΛVˆD"—§R©ίς ΓΟ>œ²₯8gΘX‘ώ%2i›Νλ“HK’ Ψ$Qσξ5u5ΧΞώέηΥz>RZ·~qsΣ!€s·ίA)žΒd ށyσ`ƌ‚σkjjο …BH)fΖ’ƒΞ’}φoύ„c3πW£]‚ι­δ?Ύm¨Ξ‹;.φ…uq„«xεΝYl^9£`Σc΄–˜†#,aXWM:ιιȌO8½Oj uκ°!ϋ₯i,ϊt”.‘ƒRR₯bi§Δζβ°²YΨYIšwI«ΤάvBΨγXυΪ»„F©χH$28•J}Ξ·†0RyyΏχ "ρ1(νU+ΰl΅NωΦ‡yΥ β~?ϋ½oίΎ_HΉpΗ.έtΗ|EάmΈQZJX°�ž~:ty*•ώ­‚3Ροœ Ϊ7Ÿ3σΓΔ½ζh˜σ$ŒθιΔuώ†έˆβ:ΒxawŸF(όaΘ¬c~ΟC?άC]·GΘ—_υΤԁΙώ{dσγΛƒΦϋu«³Η€ΌΚT§ϋa& �� �IDATj8„  `ΰϊ ¨?ϊ|χΈγ7ͺ;±μw2!VŽ1’ηG}΄-—…οPpTω=ϋŸΧνδxΙΓ‘«9u»ΊΆzςŠΧΏœχΔ]ύ#‰μ~ε•©Ω;,g’¬q­ˆάuςΝΐ’EΨO?½ΊΎΎρfΓh>βΈqγboΏύφ* b·ή0οie²’X:xK°ΓδΡdr΄›@ž€Ψ^±Πα$-Ύ{΄rxεΝχΩΏοσ€–.δݟŸGK@„ΊC§3›Δ!M“ΤWΏ""ΆGΠMζiχs'Δ±Υ‚’=³ί¦iN§Ÿn©}N§{ωȊ 5ΊŒι?vεcSŸΪ2›V“}=•JU›κ˜« 4=oΎόžy¦πΧ55uW«ΉΔ–+ων·ίNH);˜¦yβ‚/ν‡##1Ξ;ώx™Φ˜Κζrϋ€θ¬Χt),jŸΘ&)΅οmΖ˜€γ/<.’ŒfαΊ�‘‹άŽšσ-ωŒρ₯Δ±zνZΊ˜d―ΪώjΘΝoLpgΐ•γά4Ε{§Ÿ~ϊΎ<π@fg$r�gZ―¨ώŠgyςŠζΖΒ{Ν5W­o†)΄β΄šΘ—/‡_Zά~Ψa2kkλ―n«USmΫΈθ’‹Β¦i>qΟ?ΐά]©bϊ5::‘Ήuθ‚8(©ΑIKKΗηΎ-8β»:…�wκK=%/Ώώ6ϋŽΘE‹ηϋφ{εˆ+θ9q %―Όπ’wcμ6γМdΰι cΆ·_`SΤEc-ΛϋΐOBόNƒΠ/Ώόu‰DΝ΄)υ\Φ¬_ΪψΣ–-G‰LF^vτΡΗlώ;οΌΣΞd2Η 4(lš‘wΌŒΡpυίΘn·Είπ9†όΜG šŸgΥΥUΘΆΰ0 =pfIΫfXηs:wpΝΎž¨>Ε$u―p₯η¦γ7Ϊ­λ‚νΗ‘ΉyWΰέi¦΅w8³Ά‡„SnP·Χ„Γα{ήΫY₯ψφ€―DαpΨΨΊU|ν₯”Φ­ƒ[n νξ»3"“±Ο}ϊι<“œΫB>όσL&“ΩηΔO ›¦ωΞMχ‚1 NΉξ}hhκ΄ΤΫƒ€Φid6¬o,ˆλS[‹CͺΓΧ₯ŽΠΌπ―¨rg9œαƒ«!hύΪλάΊΚκ p;t&»Njsζ~Κ»ν�z=9~σW*FΫ 5œ;N}zn­ΔpΑοαΡ€βεt:}>ίSπu,³Χ¬i*θφƒ”j5Ψo~c>ς‡?€D2™ώih›ΆΛ΅ώρd,ΛΪηWΏϊ•FŸ}δ?}ƒk³ fkH'Tο©KwόΣ%π&qˆ˜†Γν•‚Gώz‡ Θ1ΐ�o,|’n–šhsӐB`m|ΒG$Ϋ„#πtί;;Η°ν«τU;GΎ4ZΒpμ―ΰžGxΟΆν¦N­^€Π₯”lά(wψ4‚”κ²Ϋn3ŸνΪυf3•²N‰Έ· |CpΣM7ΩΙdςHΛ²ΜX,vρ²΅‚Sΐά.ύ#Xϊ‰³Yzσ«ε4=ΦsύΌŸΘώΌqΉϋ­γˆφRS…Nζ•_Γ)ZΩ©.7}ιγžjκ{’‡HWπpΘl|)ωσύaΜn;�‡ΜΖΡλ£" [ίWίέ&ΒΓ/νxΎ0­)‡ =¦ΐΏ^ΰ…t:=φ›Xιφm‚―t©TŠ1cbςˆ#v ­K ‰όρβΕ]w~ΘΗΌΣ8,Λ’¨¨¨W:ώO&“j ζo§Β™G‚Hiκ΅K”RSΛqά5ΥΡ›v <ύ‘Τ·§Ι–ƒŒΓΰ=Γ”1Rβα2w‘‹Τίέ$στO7―ž_ρΑP΄—OM‘ή~γzώΫ>l'Ž<\o Ψ&”ο«N²άζύK­ρί‘8Zͺ+ ,Xƒ¦x)\ δΩςςύŸDD"lάHuS[ .ίuWδΝ—^­―—“w&"0M“ΖΖΖe™Lfh&“‘HδΘΊΆœs˜Γ‘ςpηӐ i$ ™σI“`Η“2V_’λ :£<ψ–ΞΉšΗHiL C6Mτχ€V γφ-ϋuέ ‚Πnό�fΞώ½Ί[΄°#p8/2O|Ϊ6Zσ†ΪχΩbu-Τƒ/kuΊp4WŽŒ £OUD.„°ξό9δα•½z•Όqϊι΅γσn €„dξΉΗx§€d—,]ϊeβ›VΡ·lΫζάsΟ =ϊθ£§744άjΫv¨{ʎ Ώωt)agUz]`KΝ!(Ωƒξ άlœc™ΘΥ tCΰΣΌo‘Ε­ΖάΪ·›Η.7#eΪ"<πΐÜ6yƎΔαJWν;_9€„:zLRλΗC&<υG8t‡C/GΖ€S―‚Η§«oΣ4―««;!oi'Φχ r]ΈζNoːEJuυο½χ³ :ο»rεΚΤw}ŠB]%}™qΧ]w`YΦο€”»I) €ς˜z&œqTΔ4ΒΟGΰψό’Ghί’~9Οƒ£λυ€ΰΛUkXόΑŸψαrΗβω£Ά„cζ0ιΗκ¬:!ΰ¬ΑS!ζmΖaΐ’υpΘΩ°xΉς2 γΣ²²²ΡΥΥΥ©<%ϊήCΎfΌδškΈ£5t*₯ΊΨοή{CσφΩgςΟ=χίΤχΡ¨a9KǏ_4gΜ«-Λ:+N—ͺΐp.<Ξώτέ„Ά-Χ•NA‰Y†�šΔ€zpx―K·|_Χ*„ΖΒdΪ'γ°·ΌΑaP*ΔΖ‘oΩυ$,­Η1s!όθ"X»)[GΗό�~yŒθ«)–†Σeš.ΎlMΒΏ^ƒ[οUΔνζΑ4Ν‡~θ¬Y³R_χ ΟΞ 9TΩ³gO?}ωτζθUJ΅Lφή{Ε‚αΓǏ|υΥ7M‡ώώA*₯„Β AƒzmΪ΄ιg›7o>YQ&₯τ.1ΪΞ:ΨϊuιχΌju;©šΊξ QEV] ΎηHΌΰΣυΦŠώΫΖ!A†•4νψΫ30νMhLz)Ψ€‘kHξ5L V±m©Λ§9 Ϋ0ŒmΫώ™mΫo~ΟΆ@N-tνΪuΨΩg―škη1Ό»~ο½bYMMtx"‘žϊ? ©TŠ#<2φΞ;οΡΠΠpf*•Ϊ0Τζ¦Ό&ŒQΗ%ο?ͺ:€H€΄Υ‰3ϊ84ΒшΛ£yhPc&>Ιϊ γa₯ω½9ώϋ6Όρ6|ΌΠW}6@(Z-₯|hĈΞž={ΑδΙ“{½ρΖS€ΓΣιτ(!D™mg{¦a™βββε555o=3vμΨiΣ§O·—%wSCθΗstΕπαOm nl1 Έ~c΅mwΎ|ωςν•Ω<d2lΫζ7ΏωMΡ-·ά2NqJCCΓ1BˆsΜ²78zνCΑΔΡ0|μ;Œ°Θ4# 1]Π ΤyzΑς y€oKn:ȈJoρJ˜υΌχ9Όχ!|Ί’)ΏΔ5 )%αpψΒΒΒ'ž«――_fš¦έœτM&“!άΝH)I§ΣD£m9εςΦμ 7 m[5iΒίώ&ͺ“Ιͺ‘_}΅|υwɊΎ³A"‘ΐ­ΏC9€bώόω»-[Άμ:μΏyσζQΆm‡„†Τ)ƒ,‘v,‡₯PΥϊυ„Α½ ²#τθέ« ²b`‡U$!Kq₯3Ξ΅mub•χ³ ν<“iE˜ξ―¦6TCc–­„Ο—ΑΚ•°₯V]Ξθέ£«εnžΨΆ@q8žQTT4oΣ¦M‹“I₯›·θ7 9„.₯4.»L€KJ0~XlY·`ψΦ­uΛΫΗ:_/€R)"‘‰D˜?>ϋμ³O%pμ^{5άε*ιΤsο¦s ¦ξ·ξηBSΝœ†!ί¬Akΐ^}β ±eέΊψq›6UΏ‹ΕΎυΪ!‘'“I£{χψ†ΪΪΘΘΖΖΖv†ΑΆmΚΛΛGνΊkΝΜ)ShωDήoάM=/½$}Ύφ˜cŽΉύ‘‡Ωiχq―B^*v₯K;|s ₯€°°°G·nŸt’,²ν6Ž£ΏARisηb?ΌρDiiεΧ­[—h ;/΄·Μ· ©TŠ=zT†Γλ?;σL»SΎΩŽ Φ­ƒGεγH€Γ6lΨΈΈΈΏΠήJί"TUUΕ2™ s.Έΐ΄#θ₯ΝΦτV¦™JΑ3Ο[–. ύ΄ΎΎώι};I;|ύΠNθί\ύuΖm·έψωη[ϋΗbm'Nw6DX³FΨK—Β_Θκ]v‘ς€Ά?RB(/Ώ,˜3§ΰ†>ϊθϊΎ}ϋΩνγξο.΄ϊ7ΆmF>ηœτΙΝΈ+#Ψ²EΨσηKcαB#SWWπκš5 ΟΗγ±7Ǐ?ο?ω/ϋν7‘ ’bζΦ‘#·O’̟Σ¦…§uθΠνΗ .ZίΎ^βϋν„ώ ΐ₯KάtIι_φpξΑΡ§°LS©Η‹,^,_~i}^[š …ŸΩ}χέΏφΪku‘PΘN&“9σΟ‘P¨σI'eΦτξέφ|ΉΣg55πψγ,kl,=zσζΝΆKξο΄ϊΧRJJK‹/8θ Ί» ‚tΦ¬|ώΉL,Yb¬nh=g±”––|ΊbΕΚυ©TʐRΪ­]LΗGœuVγGεεmΝ—Ϊ«πμ³’vαΒπωd2™φE,ίch'τ― &NœXτΦ[o}‹7M³π₯ΊΊΊiόηc΅‡zΈ‡νT*΅Ν„ε\ΎpπWπ|k“p5ˆ™3ΙΌρ†qη ACυα‡%Ϊ₯χ΄ϊΧωTνν)%‘Hψœ+ΘάΫ5 XΌXπτΣαWGŽsτ›oΎ΅₯}JμΪ[ό;RJŠŠ o:΅ajKΛSkjΰ©§BΛV―ζ„d2ωžΉCoζh‡ο΄ϊwB!ώyυΥΫάϊτόGd,ˆ_XSSϋ'!νήΠNθί(,δέ©SΩ+x€q8 3gΒ+―˜χΠβ?ώ4ΡNάν„vBίΙ!NΣΉsxΙ…²’{εJψχΏC³jkΝ‰Δφqw;4ν½c'† Ζ+WΎ΅ω”Sd ¨#΄\l\»6zB}}ύΛν’»Ϊα;{ο½whΤ(Ρxν΅Θ±cΖ²²’K<ςˆ½³οzi‡vh‡ΦΑATPY)ρxθαξέ»Έ‡QΆC;l+΄«ξνΠν°Σ”)%¬Ί;fΧ~Ε»w–΅U’X‘Ι JφXOΝ§ΥΦΖΩ)³Ηi"e©Πΰ›l)%ν‹ΐΪαΪz;΄C;|£ „΅…X°_²ώX2ΥC—ή#Œ¬mΩϊόΔ2’+Ύ‘žD΄˜ejVΓ—Ψ΅Ÿ#“Υ~ [‚-‘ΆΜ4.Η(;ψΣΥΒhίtΩ{ΠήλΫ‘ΪαkΫN#6? koΫ‹ωϋά%ŒΨ()LCΘŒ¨nάR ­4φƒBDΊ–‰‚ˆ’QH†ϊΕΘΤFΘlU§—;η’J)‘™†΅Δ:NzK>a.₯€ζŽhD„£}dbkΚ¬˜ υž°66ώξŒD΄κΫα{ν½Ϊ‘ΎVΛ/‰°`ί›d¨ό †‡„YV-€V€LΩ2³qΐ\ΰE5Ά w±…tŒˆ©j¨ϋΩΈ¬„#ΜQO;]'νΖΙρI³·θ£ό EΦΏAa…!­΅€>Fjώ£ΆlH=W}}δ”²«u†Ω.ΨΫα» ν½·Ϊ‘Ύ6«n¨€ρ‹EξωsQvDH”Ρ~ S™�a μΊ“YV$ŒΔzΫ@v2SLF6.‡Lƒ#Δ՝ΩRJμtΝ…±Γ6ΜkN˜ uSh/€T—ž: ">Β(5·Φά^0^Zν ΣΪα» ν½Ϊ‘ΎVΪ αƒ.˜Ε݈…θ�1Θ¬‡ΜF�š$?Ή›΄ΣΩΘM`§—Κτdz3$Χ!Σ[Ά₯Lμ FθvκC³σ!-Μ™K+cˆHΗ‘`ͺϋ@]s=J9†�Γ~rΛ3“’8»Ί{Ξ=Ψ‹eεFPTnDEEQγγ•x¨IԘhΤ$jŒΖσS£ρŠ_cŒρˆΔ[Q’xα‚€€ΛΉμξμ5gwΥ™™Ω]ŽΔzσfΊ»Ί««gΆ?ύ<υΤSύχήΡhz-荦w |»Uc–‘Μ> LP”Σ„R1TΒVΒ*E‰TγΏΣχ#sΨΟ£Ψα…Δ ξŠ9N‘dΪΥ€”2ήr£wŸϋΊ5«γ‹ώμ%;ε€έυ*υŽJM%X₯’Ρ³”΄{υ²h4½…tFΣ+( „ŠYA0|(JΩ  $"•MIΐ:–•—}#%¦R& ήψœŠ7H’λΑn%έHχ”uνDBΦΰS_L πy8qo_³†œHΖώ©Ο’Γb7„?L‘#δ4_MτW£ΡτΘΘFTΒJΊcd…‰‘t›«δ”`%Jοξ9R91ͺϋρϊM*Άe·ƒ”™b,Q|δ™ψ§Fax»> aJΙ_ ,#+˜.#Jεž.ΎšQ‰§Ρμ€hAΧh4½‚ax%ESW([Šl$?Κ(”§EάΑζΖ3rΕU^00Gύ.N’εTΌμφdω䜠Jΰϋ •θς¦€Mλ'aGΉ~͟u:D]Κ΅ ω„aϊt>FΝW-荦ΧPUg΅§ωβ«ΑiαC˜• ‚ DΆ ])”ŒRυzΫyη€b””8κ6βQμ0*•χX%#άα¨κbF2εΨ΄έ7p”πχ TλΌ£]�8”]τΕΪήΏ*Mο ]£Ρτ€*?α·*όΡZbKAΕQVΚ*Μτπ1RΒ¬ΚŽWρΠμΧ‡­C>_ϋ ND",AΒ² ₯ΊTŽMλ_«'#β`˜AςXε™/UQ£r―„Nž©ω £]£ΡτΒ0εΗΗ…ΣςMΪζGEτSw½ΩΧΒ–vy'ίΑyαΫKΕk/Τξ%œr΅Š7Ά!¨T”»”aWΒΣΙ=”CΫ}e ΣxaΣyα³^QξJ!p~WzΞ››„ιΩΧG£Ω–θΗQFΣλ(ιΐgΣφΗͺ~(”ς@d *Άε$Ι|μn^vŽL/o~\)σm„F%₯»]JT<ΌΦͺ˜4Π{Θ³€«ρνν·»00¬Z€D9Ι²Ι}Θ©GI 1ω™wΜΡγ‚G?†o_)fΛΡ‚ΡhΆ JJψlίέ•(z£’BΩH„PN<ΨJp’οΚψ΄Ψ'Z9v[jTMYΰΤ½r&†y£fE€»“ΈdŠ{Β‰#½γΚ.kω¬«LsΝW-θf»‘d΅τ[^[σψΒ±³,θΑΝ°¬Ξ–΅+ΘεH‰ΒP9YΗΜk₯+”γΨ**ΏY~EόY‘‡žkv΄ k4šνŽR6ςέχΑ(ϊ·Rfu'λ<eY+9‚œϋžOμ³Ά92™ˆ&£¬-γ2jQ~yδeav3Ž]£ωŠ ]£Ρμ0€Œ!ίrVί”Α|’άΡ§žiΉπ|ϋΊ©b“Η‰'VΘ°1΅όηΡMΒΠ·@Νƒφ3i4š†aψ0¦­}\ΤΜ-"ή|g-KF½“zOm#+j=sψ[ηαi$ηLWmΚρmφέmDΕU1-ζš]ύ‹Φh4; Nθ]œGž€QzΒ(Νκ3w²έςJ*D*@.m§ΆeΈνγφ|Tό΄’ΖWΊ―\³ £]£Ρμt(iρ;Μ‡VM*ΈM₯#ήσ»ά•T(ΫΆ‰'žUR^QzAϋ"₯ =Ύ\σ5@ ΊF£Ω©H&‚ρ !*’φΔ mKϊώΕF΄‘sp[*bέ–¨Xπgf@ώ!8η‹6=MσuD ΊF£ΩiR"„°”*₯†~}(θ1F SFπΤύ Ϛη17mD6φ'όώLZ_˜Bb­"KΌU:«tϊ°η†u;?ΊF³+’]£Ρμ4(₯ ₯T1P»Έ=ϊ+ΛcKΈ·ͺT<œƒΒYλΌ·θ»’‹£$6$H8‰{Η΅Œ;ΛπιΎrΝΧ-θf§@)e�^₯Τ€πσν36%œ;ΕαΓƒ@d:J!•Β"JΡΎ*Nι5MΨo†IΤ'ˆ'βηOŒLΌΓπhQΧ|½Π‚Ρhv8©~s Β©wΖ4ήΪψ€o΄o€YmΰΑ4@ˆ΄ §,u[)ΒRθ8¬Ϋξk‘υq#ξLšπaiQΧ|}Π‚Ρhv8RJCQͺ5Έαϊ†›ΜJs–5ΘΒS  hgα‹Ž™Vq@XJ‡υΆΝ¦„Mk£έxΐcρϋύt`Θ4u€œζ끡£O@£Ρ|½IΊΪύ(ͺšοm>ƒYf΅‰α7©―„„βlWΨχ4Iτ€μ AΉiΊx₯p*©xγω˜υLΓ€’Σ|-Πώ(F³ΓR’”²”nl‰OŒlJόΤ3ΔƒQlΈJτ!ΊNv}dS6ΟΖχ₯ƒ�nΠ\Π0¨0MϊZ妉§ΏgΖ«Χ;RκϋœζkvΉk4š‚r}η†RͺΕ€E‘θsE†1Έβ΅¦%fΖνI‘u·Jξ‹’ Η‚Φέ-’• G"%υΆνΊίG²<φνΛ¦|ά4 Ή=Ϋ§Ρlo΄ k4šBΚΥ”ͺYΪύ…0Ξ  ~hcΆ(Iρ$Cάέw•P¨˜ΒispZ’―6ΫQlœh±κ@/ ^IΘvhŽΫρš5jσ'υ_aι 9Ν.ŒtF³έI&ρ*EΥΪ¦Ψa-u_‰i!HzΡ17HKœQ— β Ω&±7ΩΨλlβuqλ؍6N«ƒŒK€|ElιΠ4dΥΑΎE{‡¬ISξΨ-jjQΧμ’θ 8F³]Ιp΅e\U5›ςΖ"Σ4,‘o\Ί]mΧΐ™΅V"Ϋ%Ξz‡ψΚ8ρeqβ«γ$6&pZœ˜ƒ²RΉs¨+’ŸQ”Όk³η»Ρ1qΛώύ†±%ίΫΑΝΧhz m‘k4šνJ2œ¨ωβ“φ_¨Ρή3ƒBΈΦENFΈt[bΎΕ_Ρ/b$Φ$\7{άA:pηώ“d―—B·βgάvπιLrš]-θf»!₯°’ͺερΦ"σΒ™ΗYr?ϊf”)ζ ₯h—’γΠδ84I +ŒόaEoŐ²{!Ο\'…lsΞΤι Σ-κš] νrΧh4Ϋ…dΏΉ"(c²"όRϋυή1^ΛΣ¨P$ˆMHNqͺˆ)E›”49ŽC«γUŠΔƒwŸͺΔ@»€φΎ6ίъ΅ΞNoK‘τŒΕ„ωΧͺVνθ¨wΝ.…ΆΠ5Νv!iϋκϊΛλl ½»{1Κ „%ΐDΖ{H!ͺ­I!9mRS p’‚Ÿυΐ6@JEΩ›Qύ£•š§Ϋa‰ ¨«=!9Τ9τ{ΒΠ·@Νƒώ5k4š^'ΓΥ^Φφ\ΫδΆ§ΫώνŸδ·¬ αwƒα”T¨¨"ͺ$kfxhT˜·KI<Ω—ξΠΡ―^θ=υY*p$Lπl°©x?Βΐ'[ιχRžζ1αœrhβ°¦v½kv ΄ k4š^G)εΊΪγrΐ†lxΨ7Ζ7ή3ΔƒQb€ HQ‰³Ρ!Ύ8Nτƒ(Ν¦dџJ‰T 7+βk™§­τŒuΉeΫ3Λ+EΒ₯ŸD§ύΏYΓ†uΝWύ+Φh4½Jr˜šͺμ‹ Ρsβ?,oV›ˆ"αށ$¨¨Βِσχ£Δ—ΖρΎcά¨L΄ώw‡ΑIΞ²¦’³³AΗ lddKEΚ§–έ™άΑv©ύLA04ΒσΠO³’xϋ] ¦χΠΊF£ι5’vDYλΚΨΨ΅ς₯’€ix…ΐ·ΨΖά(QQ…]o4Nta”ψ’8Ξ&Sιμpιήο€’ξT?_\TLx€‰” )`©“ΗŠΟ΅τΔνΏέΏηΰΣ΄•ωͺ£]£ΡτIλ8¨bͺζσΦθÁ>ΦdŸ˜I+ZΪ σ?œ·’DίKŠy½+ζ) [ IΓ’4LσςΕ™ΕΤοη#Ze μnDœlΑ·©‹}ο}†ίkθ|0ZΠ5M―!₯΄@T|Ρω,6/2’ι]…Ϋ/—’V)i ;”ž± ο‹Qd2W¨,1ο~¬ΉJξ#QBΌ—‡ϊ‰>&ωhγ₯eˆ‡H©Tξ€.Iφ· ˆ&€½[άγ—Σ†,3uœζ+ŠtFΣ+$3Β·Gεπ:•ψ_±eψ}†‘κ6'mŽC(™8&,%q©θu Υ··»!κΠ­ w•H&ΏθKχ „[*Viι₯±RΌ;½¬tΪΨΗλωΣ5_I΄ k4šmN]ξEQ΅φœ΅Χ{†{Οδ¬ŒJ$’IcBŽCsΞΠ4ιΊΑρœ`τΩ!ΌKνςά½˜φόϋΩϋΧG6ω3ΣkξΨ ¨ΡlZΠ5Ν6%Υ.) έΪ?ςNδ_ώΙ~ΛΣίƒ*„'xhχ)BIλΌ]JJaθγvτy1Κn—†π¬r6Λ*ο”Ο½»e!eΌ2>ύΨυΗΎaθYΩ4_1΄ k4šmŠ”*GU­;{έ“Ύ=|γ½#Όˆ" KμU6ν_ΔX}^ζA‚xf8₯p„ΘŸ4F)Cΰ]‘`Δoš©z&ŒŠv/=΅ΤSŸΣY­ϊͺ)Η¬>f£αΥ’ωκ ]£Ρl3Rv%UΩ†‹6œmψŒλ}{ω0«LTB‘ψ2A죇ͺ{�� �IDATΡ’$VΪ8RRwKBΗ²‡Ÿ)……ΚHξ:ŠCξn¦γmMRm½ >H<~lλ±Ηk+]σUB ΊF£ΩfH) (nϋoΫπ–Ώ·ΌβŸδ/σ ς€φz›Ψ‡1b cΔ—ΗqB$’; EΛα>VήΪ‡X΅‘%؝ςΆwυΨ‚ŸΗ©}Ό…šη[)ϊ<1‰³}ιJ(bžΨχOl?ρvαΡ·IΝWύKΥh4Ϋ„΄u([Ύ2|OΙΛ±£ό>£Θΐ©wˆ-Ž}7J|Y§Ρs₯ά‘iΠ1LM˜ŠugYyE1‰£’Ιc(œ·½ΛρζJα(HψΚV₯ί‚6*ίSΊ$JpM3d2ύ` QΨŽ:~9α„φγ>3 $§ΩωΡ‚ΡhΆ Ιaj₯kWDfΗϊ›<†ε‰‚ω\˜ψ;1bD‰/Žγ48ΘΈD¨ŽΫOJΜSŸΣ’MGxωόŠRZΗXn‘‘—=ι–ϛǝœόνδ ΈK–‘2ιΰ°„;K[}lΕΟEχόφ%{F=ν~ΧμάhAΧh4[M2#œ?–U_FγΟωJΜ½ΌB °”΄48ψΞ©Ηx)ŠŠw$ŽI‘k₯ηληVHœbXwB€ε”Π:ΒBΩyRΏφdς{Ύm€¨‹ήώΜ΄Qί7…tΝ΍tF³U$ΕάJWωdέδOήZ’ΙLp-R•’D\Q~U3}noCΡYΘΣΗμ¦―;΅Œ!iΫέCέ±AVWLλ"*]7½θΊ―=eΡ§—ιU/˜^ ωΐ™γž5uΎwΝNŒtF³UH) !„?Ό>>|]PώΧο7˜BSŠVΗ‘MJΒ©qζΙώlΗ�kQžί„U'ΣΆz¦ΐoΙXs‰r3ΐym#,6L °~ §h«4Q€-‘dΈκ DΧgΊργ§ξO·NϊΙOΖo΄tjXΝNŠtF³U(₯,₯TΕΊ3Φ]!O,ΊΨ8<HE»”΄9₯H€‚ΨςيŠΏΆS{u+’έuΔoχĚO-BzρRA{•IhOυΓύlά3@γ(νU1Ÿ@ 29DN ΥͺπγΧρ{ϊ©#τ.š-θf‹QJ(‚ν/ΆoΊ­ιο^CيΆIρ%™WΌe†°η ́ΎχΆ3θ¦VŒM))ήΆι]{V·^‘P*υ e„Θ§‡Οό›ŸΩΡ‚ΡhΆˆTŠW%UΩ—‡y—§Φs,°λlΛΨλ„χΣπϋ œΧ΅• ._VΈ΄«ŠίŠ1όκ&Šί‰γ¨|²½ε™βΆd?ΗrΝζ”“–ž΄ΒπkQΧμ\hAΧh4[„RΚ@\σ5Ψ«νgΜ*ΣpšμΥ6v½Š(ΙώπΑ&XAΫ!^wΪR:¬τά ΅NΓΞ蘰₯ίZ|{3₯‰N‰b6'½λΦμ—π&^?-rΪtCχ₯kv2΄ k4š-BIe(Gy—οΆόfsΌ²N£ƒ IT¬CΜSΈoŠπa>κn+#>ΐΔ‘9χ|ΡθδFŸ»3«:(*_ 3μΞ&Κί §‡°mk|§υBΔ/=½ωτί™pF³σ ]£ΡlR*γΓPψBλΉΘ-ή‹ 2.έtIWtŒ+Ο–& h=ΤΗͺίυ!2ΨtΠDΆ₯ž7κœ<}π l D›€οKm z,DίWΪ1ΩΙUΏeΑtΩλαĝ"gΚ™‘3?ύ隝-θf‹ψθ³–*§Ώω‘΄ x~ڈ'\>aοXEtw“U—•°αx*Ρ‘0¦«Μo…ΖŽ»Λΰ…m‚΅Ρ‘lq˜ώmaΰKΝ­ŽαΘΤ±³γκ{jΙΫΒ^4ϋ…Ω{Φ\ƒuΝΞ€tF³ΩH)…›ΒΧ%ΖeŽTFښN€κ&‚jGdΉάS€„=ίrZ0½’ЁV\RJγT/*™š5od<9yΫ3—Ι3T.#7ΌmΈΛF»ƒoS‚β*> S²:JΙϊ(ΑU1ό›b©@Jχ₯\A—B3םΎιΜ_ψŠ<½z½5šž ]£ΡlR*–|Ω>2Z)ήS‚Ό"« π—VJBD 3+\Αγ"Σοβ–€}€Ιί+aνQEΔϊˆξEΎΠ.™nό|eΘqν+–|Λ?κ(9tAστgΏ3ι EN³£Ρ‚Ρh6‹5’l0νŒ ψN‡Ψ加ΒIfc«ϊ}§οGv—ΒΎΉΓΘπ(ZGY¬<©„5GΡ6ΐr£ζWz^k=_t}Wοtε€xK|ΕO:{Ÿ>w―°GGΎkv ZΠ5M‘Άbωο7Žj›X"†ZcΛ‘“f ’tϋ²ϋάΣNυ―Z0$δτ­oNvή~m‘@I„) φ²κ˜ΦO Έ›h™rά΄―Ži±Ο+ήtαΟέΗ΅φ₯w]τξ—ΖŒ8Ώͺ*¨³ΘivZΠ5M‘ ΙβςΕνΖΙΞq’wU!½’ΓυGΠ;ΉΐHϊήΪJΝοΫ­nϊΆ#ήυΎ$αƒΖq~֏ R?>@γP‘Α^"}L¦�GΉcε•BΚδ”ͺ©σΟM„ qάνâßϊΦψ΅•ΩQhAΧh4=BF%Ÿ?έΧTζkB ―k]Cό%„UŽcε±r τQ§3Ε%·•=eθU!¬:'-ΓΫ"½λζν§’ύψξγ…ξ[μ ΔJ "₯‰€A, ˆϋ l ’CΩb‰•‡VVν}Θ?g΄™^=>]³ύΡ‚ΡhzĚ ΧX‘?†ž1€1+s}Z؏ Ί»ιΩ3˜ΡΩŸ)θιώμ€[ή³Κ¦φO-ΤάߊŒηŸy­7Σ»nΝƒÄύρδwOώaί‰}·σ·£ΡhAΧh4=@:’Εύ%κΕ“B‰.|Κ {ŒEΓ}UDχ°²ζοvb–¬χ䴦όŸ'¨½³™ώΆ’Ϊς9·―hwU§ƒƒ ͺCΞk9οUΣVΊfϋ’]³E8ŽΓμΩ³½εεες‘‡²ΗAΗ£ΗγξŠ|yΜ—VΛΣ-ο)Ζg&† $Œ,h9£ˆϊ_υΑ ŠΌtǐΣيw”Β1@4KϊΎΠΞΰΏ6QΊ0‚Œž?½§’½5ΉλVbYΕ^Sζ,œΪΎί’ζλŽtΝ3tθPΊuλφM$—†qPi)qΗ±—ΪΆχu―7ψJssΛG§žzκ¦ϋοΏί6MSΪΆeY;ϊ΄5›‰t€±ΈtρI",Da@φΠ³”°g’™,F�ͺXΠp~λ\‚γΛ±Φ3ΝΊφN)`SCγ„BΕε SϋTˆ~/Άb5Ψ(Gm3k~sχ‹c·_ΊπϋΊ/]³=Ρ‚Ω&$ ΎύοχάsΟ(ΣδGΓ†qΒώϋ;C†@Cƒ+V(VΡPΘ»’Ύή~9(~Ν0ΔΒΓŸUχ·Ώύέ–RJ�―Χ»£›’Ιΐq$±/ΦRObuUS΅yO+…n)+½³΅.²Jα…ϊΣƒ¬ωq1Ρ# ¦ΗΰθΒ}ŸΚ§Ά)Ž’xy”/4SσJ eK"X Ά�ΧMŽχ­qέKCΪN?ηπϊαΛZΤ5Ϋ -θš^!ceeeαpψΌšσœ}χM έcπxά šυυΘU«+Wb¬[Ηg--ζ|Ÿ―θ•––ΦχΟ8γ΄wί}oT”R[ψΫιH>\Ρφ£ΦΊ Δζy›0ΩNWIbr…<Σ=Ÿ½N(XωΣ֟ΐ± ωΞ;œΏδ‹ͺ—©„0>c@puŒΟ"T,k§μσ0}–DnŒβmN Βa;(‘ΖFg«?΅JHwͺW΄V±΄~Ϊ )·όσ›-Ϋς;Ρh ‘]³]ˆΕbx<fΞ<ΤϊλoœΨηOžΜ>“&)JJΐq\qPI™4lB!ΑκՊ•+…lh𨫋ΏΟ+**zwΚ”ΙŸ<ώψ6 ΗΑησνφνͺ,zΎ±:>Ιχžπ‹ΪΤέB*…γ€uCίMΝ(»πώΩχΞŸkε‚$ZkPwN1u§­4PΆJsΟGΟ²»υXψ;₯…u·©Œ:ΡρΩ} I~@!Tκsrƒ!P‘ψ_?š°Η\=6]³=Π‚ΩaΨΆΝ±ΗmΌπΒK3,ΛΉhχέεμύφSVΏ~`ΫŸKΰ77ΓΊuB\‰QWΗ² ŒOόώβWZ[[άtΣo^tΡ%qΣ4₯γ8ΪΒί €T,\Ρϊ+s u% C%/|z˜YR(—’Ÿ½ Q/σΊά!ΰœ{¬ξέΪX’¦©^Ύ<©„ΊcЉ—ˆΛŽ„/τΠjΟί­εŸοXλέvt}uΐ6>i:bΡ±S^…~ΠΝ6BΒ4; Žγpύ5.Ίθβέc±πEƒΛοx ΑαΓU—ŸK¦ΰ+νν°~=¬^-δΪ΅ήΊeΛb‹‚ΑβΧjjϊ½1rδΘO?ύŒ-„Žγθ>ό$Q|9―₯Ίq‚Ήά°ŒβԝBΡE?wDQtS %ΏkF)Ρεd,έυCξΧv“Ύ $‘&υϊYud)λg‘π ˆΚΒyά3>o‘υž±.+ P©.ž>A΅%–Nxyγ”Ώδ`νzΧτ*ZΠ5;-RJ€” T; j:½’"ώύ)S0v¬2 £λϋhW€?59V$›6!W¬\ΙϊuλŒ†α}Ή΅5ςζΜ™‡-¨¬¬l{θ‘Ψ‰DΒBH₯Τ./όR*>ΉψΛ_Ιk+―Δ# !:ΌΙέυk;�%U—6Rτο(Ψ�ΩAr[hΦ“‡�H’} Ι¦ ~ΦPΒ†ΙAZϋHψ Χ}2ϊΤ•Β‘²³hCg|F;URΤΣ??!:~X©ΟB ”ΣΐXάτ»Ž˜τSΣ4ΆYχh4 €eY˜¦I"‘Hoσz½H)I$$γM ΫͺjΝNŠtΝW†”Λwΐ€₯³ƒΑψγΖ±Χ>ϋ(«¨Θ½‡n©ΘwΤΡρYχCCƒΈWWg„V­rV |Ωο/žΧςξΙ'Ÿάxϋν·G ΓΔγρΗρϋύ[ΩΪ‡ŒK>νiΡd,J”Ι9EΨ·W)P’€k:―‚#@΅K*_+UiOηm‡ΝŸ]-w@%JuΌΗ{ΌΟϋ,g9ν΄%ŠέiξυΌ$Xx<˜�fq1Αέw§ΟώϋS2m‡‚ι!a€m*lά§Hφ=₯0…sπ‡β6Ε ΤΗ¨\ΪBεΝτY܊§95¬θτKW_Άΐτuυžc!‡z¨wΑ‚~ΏŸD"1^)5,‰Œ5M³Ϊ4Νbΐ²mΫ, ΥYoΆΗγ±₯”ρD"Ρ,-//_‹Ε>οΫ·ολννν«ίx㍖αΓ‡KΓ0Rξςͺ»:ZΠ5_YRΏΫn»yλλλχM$Ϊ~<z΄<lύU°Ί:[œ·m½ξ{Jπ₯„¦&δ_V­"Όq£YΧΦfΌ‹©y••οN˜0~ν³Οώ'œΊAομΙwd\²¨tΡ-fΜΌ8₯…J(Τ,?ρ{«qΚD†˜ε-#!ψFŒΏn!ψN)»r―g[θ‹YΜγ<Ξ|ζ"”%Τ"i χιΣ‡ςςrϊφνΛθΡ£=z4ΕΕΕ”••₯_�‘PˆζζfB‘mmm,Y²„%K–°qγFšššhnnN3]‚bŠΩ›½9˜ƒΒP γήƒ„3ώΔG΅‡ΦN9ω±“γ–Ώ#–#5"dĈΕ cc±Ψ₯ΤQΆmBJ)#·–eQ^^NII Α`0ύ*))!ΣΦΦF8NΏB‘­­­YΗH}έB{½ήχc±Ψƒeee9ηœsVίxγΠsΌ₯Π‚ΩeHe«ϋϋί4ΌςΚαλΦ­ύѐ!κ€ύφ“UΓ‡gyB{ά‡Σtλkjr]ϊ«V Ήv­ͺ‹Dό―z<Εσ|ο{ηόӟn†!ΗΑΆν­o'l–X6RΦΙχ„₯K(Tƒπ=}‰θλθ―Ξ싦λ9Ζ;R»Ί|εΓν Έ½™ΐ§q€μ°ά_αξΰΎΰ‹,ρφϋύŒ?ž“N:‰O<‘šš Γ 7θ,SΈ2·)₯ς.«œ/O)…”’7ςΘ#ππΓσΑ€]έΰŠ|?ϊq$G2‘‰έ>˜DθΟΎ³β;Ώ2x•••Βαπ™ρxόϋ@M¦p{<ƌΓQGΕa‡ΖΎϋξ‹ΗγAΡ©ΉmN{>R²~ύz^~ωež~ϊiζΝ›Η† ²`„°…―7ξ½χή―.\Έ0ϋvnτ·£Ω*R7·δ λqή4M<χFΗS›ε”Rι •R² fΟ>œ@ `†α΅mΫkY–WJιUJz•RήΆΆvοόω³"‘ˆAύθυz½%%%~  …~TVζπoΐˆΫτ2l6™{†--Θ•+1V­rγFkνƍjΎγX―y<Φ‚™3ϋμ‘GkKυ…φ¦…_F™ρ!ήΣNϋι7g{Κ½>χτ²"~„Ÿζ[*°š…£Γστ΅η'ήήβ™[ofήνwβ(']ߐ!C8χάs9ηœs¨ͺͺJ―Ο―|b–O€2Ό;,΄½±±‘»οΎ›;ξΈƒ•+W¦ΧLg:³™_'AΒ·pKέZ֎JοcŒ7ŽσΞ;9sζ  žΗΆjGΎς©γ,Z΄ˆΫn»‡~˜P(+{mΤ4ΝΏ”––ή΄iΣ¦:ΣΤ sv6΄ οŒjI ˜Χλ z<ΏΗcωMΣ Z–0 Γο8N°nπ–iβ΅,ΓλσY~―Χ²Ό^Σςω,#iυ:NάkšψM“Μw―aΰ7 ΌB`x½,‹τ{Ζg™ϊ{7 WΈ, L#U.ΉŒa(in9Λrί Γ4;zζBO•Ι|Ο]—r•οΜd ΎΠkΧ Ήjƚ5Τ54xίχωJηΥΧΧΏuΣMΏ]xΙ%?omz]0žα™‘»³ϋ’1χ<ΘCžΉœεςΒ§iψU‰j”υεrΟ`¦€δ?ϊώνo‰‡Γ€δuόρΗsν΅Χ²Ϋn»ΉΗοΖ’ΞΆΝηάν[RNJ+Έκͺ«xδ‘GΑi<Μb3˜‘%κ«XΕS΅Oqωε—σέο~ŸΟ—{G·#· ΐ’%KΈζškxτΡGqœτƒVά0Œ{'L˜πΣwί}·E[ξ;ϊ[ΨˆΕb<ωδ“ΖΉηž;8ξkκπ²²ΨŒ!CΔΰ#`Θ…ίοŽν.δr֏_-2#υ…€pΈch^]Ήqυjω‰RžΧ,ΛzkζΜCίz챡I)Ι‘o€ίΖβωm9Χn<Κ|.šJ–ΟBΟ}ο(¬ˆξηaΓ5e΄νλA9€Γ€ΔΌ₯ΎžίŸ~:Λή~;½Ϋ‘GΙm·έΖΠ‘CέΓtσ£,δ:Οόœ+\›+<[RΗκΥ«ωя~ΔΏώυ―τ~ƒΔ\ζRDΆ°9μφΓ{ΖX Σΐ4ΝNτ‘ΉεκλλΉςΚ+ΉοΎϋΡσBˆυJ©9±XμeΨiΗ’oγ»0Žγ ”2.Έΰήxcή€eΛ–WʞٿΏη¨ͺͺΨΰQ£„5l˜’EE)±-ξ»Ή‚‰€#υ/ΎPW―fi,Ζ|₯˜'σQ"ϊβoνίwƞΟHSxEL`^ή€qWkzΌZ>+=]_AKd™ αŒ k/(bmhΏ>αx6}ω%�EEEάsΟ=œx≝¬ΤBŸά}Ί²D·GJ){μ1Ξ:λ¬t@ZeœΝΩτ­¬ζ;oΞ‘€ –ΗΒ²¬t@‘X€ՎBu|ϊι§}τΡι.!DΤ4Ν+Ξ;οΌ?άvΫmR[νΫ}ΕΏ†€°*₯˜7οuγΫί>ΉΚqμ1±Xδp'2{Π cΤπα?b„2JJς»¬5_mr»βqhj‚•+ ‘2†°χ”˜<uγΓ“¨ϊ)¨†¬Ύΰ.ΗdΥ…"DˆΉΜe K�¨©©αΙ'ŸdΚ”)Ισθάœ».΅>·|OΚdnΫήu�Όχή{{챬Y³�Ο¨‘œtΫ½άΌχ,Ÿ―Χ‹ΗγΑ4ΝN~;K; •ijjβτΣOη™gžI«M)u–Οηϋg,C³ύΠ·fM'‰†aπη?ίΞuΧ]_fΫ‰Q--Ν³JJŒ#ϊφ΅G©ͺ†W²Όά_Kzή΄Πο`ςj™ίIκ³HFϋKΩρƒm 6Δ’ŠΦ6hk…h$^bqλΦϋ 5›”5σ‹ψΟΩ‡}άγεΈί310Έ‘Ήϋ�(--εΑδΘ#Μ8―ΞBΡΡ¦όλSΫRϋηΫ§ΠϋŽͺΰωηŸη”SN‘©© €SO=•λ»Ž`0H ΐλυv²ΦwΆvZίΠΠΐ‘GΙ‚ Ru­‡„B‘z|ϋφAί‚5=&cš&RJ>όp‘1sζ,οΐ†ώωYBΨG dŽ>ά©6L}ϋΊnj${ω*²9βš*―”;IM"αΎlΫ}F uϋΙ[š!‘, $86H”•@ίrχUV Ε~(+ƒ>•P]}Kά—Ολ;…Ά04…Ό|£vBΊ_4ur"ωžΚͺ–ŠP— ’’Λρ=†yϋΫλ¨γ8Ž£Χέ|φΩgsηwμ+ΞG‘ν=u5οŒu(₯ψαȟόg”RσΨc1vμX‚Α`'Qοξ<wT; γΝ7ίδΘ#€₯%ιφ7BˆŸ)₯ΆY–<M~Ύf·YMocΫΆ‘œŘ:ujνΗ4Ϋ0ΜΓ«ͺβGŽTƒGŒΐ¨©Qψ|βφϋBB›z₯–ΑWΫξΦHΤΣDR [[‘­ΝνŸ6”]f(Ž+²�”W@UYRPϋ@°ΚK‘Ίͺ+‘ΌJύΰυ‚ςβ*£ "9žK$…>}+ΜsžωJΦ_wϊAB<α(΄΄Cc34΄Υoφ<ŒšκΌ.WESš*q(Ύ΅™?΄"Zƒgx†σcΐν'ο½χ5jTA r[“)8›6mbρβΕ,^Ό˜E‹ΡήήΈγΩGŞ{ξΙθΡ£0`@ή>μή:ΏεΛ—3i€΄πέtΣMœqΖY–zWη“j£Rξxω΅kΧΤΤ”φ°ω|>ϊυλGeeeϊ»μ­Άελf8ε”Sxψα‡0 ca ˜ΦΦΦΦ}뽇Ύ²šν†mΫ(₯0M“Ι“'Τ.]Ίόΰp8|ψ!ž}ϋχ1B΅΅ ΊbŸ)΄RΊ―”‹A4κΎΗb¨¦^ννΠΖbnΩ€Κ‚PΪJ‚0°ϊU@E)”ψ‘O)””CE T»/ ιš&ω pΦIŠkR0σYέ™δθjφϊ”ζˆŒ‚ΙχΤƒŽΚ\ΏuΈ’μ>œDγeήΨ š`]=¬ ΖΎx+ƒ4ϋ” ›Φ4yΠΜΙL Ξ`¦4αώ³.瑇o`όψρΌφΪk”””dΫζΊs»ά`ωσηsΝ5Χπβ‹/ά§+&OžΜUW]ΕQG•>ΧΖΆ΄J)ΪΪΪ8δCxο½χ�8묳Έωζ›Σ}κΉVΊRŠΦΦVξ½χ^ώψΗ?²|ωςn-πΜs5k_|1³fΝΚkύoi;ςC)ΕέwίΝΉηž €a›,˚‡WθY{-θšνNΚu/„ΰπΓ/{ϋν·'‡Γα‰RΚi>ŸoχH$2’œ$5"ύŸ+rΥ0~7ΨmLήF †έCίR7³IrΏάϋRfPX¦ Η\²φΙίΜγe.gœ~+Ω–u€¬σ„ Ρ4·Α¦fXΏ κ6ΒΊM°‘¬ {pώFΜ(ΖΎ£/τ7 ZηΉ³”!w_y%ήv�3gΞδ駟ΞLΤmŸm!qθς:)EKK §Ÿ~:O=υTχλ ϋοΏ??ό0Μ:―mَx<ΞqΗ—*;οΌσΈυΦ[1M“TςΫΆωΝo~ΓuΧ]—™ i«¨­­εoϋtPϊ\·€ωΚdξΪk―1{φlb±BˆFΓ0¦Δb1-κ½€tΝ6'EoΫ6ΗΌχΩgŸέΗησœH$±m{ Pƒ›SJ8Σ€‘ΰ€I0m μ=† „κ€xΩΙ‚’π·§’ΌΉδŠf¨ζ=J$-ε ‹»«sο:ς zΘς” ol„P+΄DαΐUgsόκΛpΌ6Ξ9%Δ~UŽγΩi^•Β"=·ψγ·ήΚ_Ύ”bϊτιΌψβ‹ι·ž[εsέvηr>γŒ3xΰ \ΡmΓa‡ΖO<A0μ•vH)9βˆ#xα…�ΈζškψΩΟ~ΐΥW_͍7ޘ™Τe›R^^ΞSO=Ε΄iΣ >°tՎ|ΡπΉΗxυΥW™1cFjΖaΓ†νρΩgŸmΤΑrΫ-θšΝ&‹aYJ)xΰγ’K.ρ{<ž}f³•R#₯”Ε™ϋ\ΛΩcΑΔέα ©0s?=jϊ€!ά ―Bε,b† :SΈΊΛάύ{R†«˜ŒjΙ\—Q―ΚYŸϋ9Ÿ—½SΩ^¨C)Χ垰!‡Φ044»"ΎΆΦ7ΈŸ›Zάm‘Δl‹γVώŒCΧΟΑΑ†€ φέ"Ϊ^ŽSŒΫ.ΐ‘’e|ΐχ>€αΓ‡σξ»ο¦'BςŠBO„ PY€΅kΧ2eΚΦ­[—ηΫμ!>Ÿ±cΗ2aΒLyy9–e‹Εhlldωςε|πΑ|φΩg$ ό~?oΏύ6{ο½wΦqΆ¦™ŸC‘S§NεσΟ?Η0 ώοώŸόηY©e·Σ4ρϋύ 6Œͺͺ*Ό^/‰D‚ζζfφίώπ‡?d΅msΪΡ•ΰάύ̝;7uσO>ωδιχή{―­“Ρl¦€θ�� �IDAT;Δ°aΓ†Πυ«―Ύf§Ζ@j4)’s’sηΞ5^yε•uuu3Ό^ο·Η™(₯¬Ξ컀iAU8h ̞M„•ΰ5άώη¬Βdksz9Η­ δ΅\σν_π˜[XGπwΡνΥߝΥέΝΉζu(εΎlΗυpΤ΅S’Ύ± κ› ±Ε]ίvϋΪc ˆ;&3Ώ<Ÿ#λ.θθχ· ~¦_–Ρ62ΞΉΐΪεΛρz½ΜŸ?Ÿ‰'vΤί…+7s{Φ9wΡ_­”bύϊυLš4i³Δάησ1wξ\fϞΞΓΠ]xja΄··σΘ#pε•W2vμΨ­nG&©2~ψ!S¦LΑΆνNeΆ„>}ϊpΪi§qΘ!‡²G1δ9ΗΎ}ϋ2yςδNηΈ-β”R|χ»ίεώϋοΐ4Νί¬[·ξŠκκκ-nŸ&1p kN;Ÿ}&δG‰Ζ†οΣ†α°ΆΆvΑ‚ο΄ωύ~ρηk@"‘ΐ²,ž~ϊicΜ9Υ¦iΞhjjϊΆa+₯ŠUΦŽΠ§&μGΟ€c†ώ}ΑKΚ†,ΡI“t £’›σXΚYVfΦzjή#_ Z–ʦʐ§\jUj}ξnΉO½X‡Rξ:)]Q' IFΊ·Έ―†fΧB΅Bk;΄E\χ|4ᖏΫ0 y2g.ύ-ε‘Έap‚‡xˆkΉpƒΊξΊλδ5νώΎ±9Φm )%sζΜαψG·Ηwr—nΈ>}ϊδ΅2» ΊΛwEEEtΠAyϋŒ7§ωφ•Rςƒό€;ξΈ£“€φΓ08ꨣ8οΌσΗθ.¨/΅]Jɘ1c6lXήνέYαέulΪ΄‰½χή› 6 „°άŊ›τD/Ϋ1xpΩKsζ„fψ|.G!άΧκΥ°p!v]ΑƍΡkkkŸΎΰ‚ κ.½τ2©”ΪιηuΦδ'5ς™gži=υΤS»···[Jy:P›Ϋ―]^ϋއoŽž}‚ ϊ’λ&Ξgъ¬€E·Π\ξε:ΠΨA?ψ­œ}s,αΜ:­ύΜcwZύήΫ±Ž”•žŠv%\Αn‹ΈήάζΎBmΠ·…‘=βZσ‘XZO Ϋs ¦¬Γ1Λ/azβPi€ΈΈ˜χίŸ‘#Gv+vω"₯{²^)73YΏ~ύΊ΅b-ΛβΪk―eάΈqέΕ©:Rδε¬―H)Ηaϊτι”––fν³%νΛwό+V0yςdB‘EΈξbxδ?°p±;t²+™;v,7άpC·υ:?p‡σ|πΑιεξΪ‘―ŽBυJ)Ήωζ›Ήμ²Λ�d0Ό»ΉΉω|Λ²τυm€(* άyζ™‘³«ͺ0Ίz VʝE+‚O>|ό1λ7l4MλΑY³θΙ'ŸŒΪeΏ’ ¦©ͺͺ‡O‹Εbη™eLF …9Ηΐ‰³`·A ’"Ρ'M–»7©0ΉF¦Κ³ΎΣΎ;ͺ TŸES¬œώύφί{{#kθWξq:‰hΞ!sλΟ,—ι.9ε{£ŽTΑ΄¨;Β‰ΉΒέN |ΈCΠΫ£IQΊnψh<i±'`νFxξξ1:θ ^}υΥΌύ­©Οιs. ιv° •R|ϊ駌?>―ϋ8…ΟηγΞ;ο€ͺͺͺΗ=νPJ1qβD °ΕνΘέ–[Η¬Y³xι₯—0„β©ΫαˆIΙc >X°~ώυ<¬ZίaŒ₯θίΏ?ίϊΦ·8πΐ)//O?όtu™~ΰRTT΄Uν(τ °aΓFŽI{{;¦i.Ϋc=¦~ςΙ'hΆ1jΤn?ΨoΏe· ’Ψ\-VʝήΡΆασΟαγEψ‹/Œ—mΫ|°ΊΊίσ+V¬hΤύςΫ—ΤMnςδΙ₯Ÿ~ϊι ΆmŸ/₯œ˜iy&μίωœp˜ΫΗM*ϋ˜ΘvΧΦ‡ΛxτyΕ43€šŽΉnς[ιcfάp²κ [|2·mχ:D)Τό…‰@α˜|θQ†T~Θώ{α†Ο₯ wyΚBΞu…§Ξ ςŸg―Φ‘:^Žμˆ~'ά€ΉHά΅ά#I!Η:¬τ”¨Η’ύλσΊΗΎε–[ΈπΒ 1 £G–h!«;Ρ¨――§ώ] ϊυΧ_ΟΈqγzμRίΗα€Hύmi;RΛωΔοφΫoη?ψBΐOƒ[/’#7@ζwž:΄>[ xώρ4,]}Ξ¦i2qβDΎωΝo2qβΔΌψΤ»eYtΠAψύώ΅£».…άλ"₯dΦ¬YΌόςΛ�”””ΈqγΖ7ό~χ_Σ%Φ_¬\8x0$»L6 !ά>9Γ€Ρ£aτhTΚ9Jη(Γψ’‹.ςπι§‚κjkaK‹υTeeΕCoΌρζ‘C‡JwΝϋCt&lR[[[³iΣ¦sMΣ<G)U›Y¦_œqœωMΨ} λN/’ΛιΏΧ ‹΄ͺfη}* ₯xμ‰g ͺ·9bΐΙ±„SB™)˜"uŽnνά:rTLelKŸΣφ¨Q(a&λ˜RqςIΗWίβ/wίΗ7φ[ΕΐΚ<Φsς\: 2κΝ(›Ϊ€rΞ%λ― χ<{£ŽδqR/Σp_ ό^Ϊny<αŠv,ήρJYθ±€•ώl:Ώ`πΰΑέ»©2©εBVmWAf©ύ*++9βˆ#γΆs1bγǏ/(2…,ς|δΫ »󞢣P}�C‡Mο·βKά¬ ™ΏηΤbςoƒμ^Χ|™λnw,XπόεŸπψήyηήyηt]ƒζ„NΰCΙzλΣ§)qνi;r=έέΫǍΗK/½„BΦΦΦNBΜΗυ‘iΆŒš0wΎυ-J»xΰέ*R7[Γp3x-_}d­_ΆΜ~΅’’βώ)Sφyω±Η³½^―L₯;Τδ' …˜1cFιβΕ‹/Ύη8Ξ€ΤvŒ—ž G�%ά?“œ'z‘ySΘ΄r3–ΑBΤ\ˆ2ϊ€λW†Α³Οώβ έ‡¬δ-©·Νͺ#ΧΘ8VnŸx―Φ‘€Κ3ΐ?"£Žμ'ˆEK–±ψ8ξPΥό—ηxYυη˜ΜΉž„\:=”t*°mκP bNΎ† „«Ο‡>–λŠ—I«έq -Η_O†οηŠx")ψΆ η\ —Ί7τωση3uκΤdΩ–hαs)œε¬«mΛ–-cΚ”)477wΪηΠCεΗ?ώqΊ«©+ΧvO,θΜe₯ϋν·Y=V[܎|u�,Z΄ˆ±cΗ"₯dϊDxρ.°Τ–η�˜°±ώρΈιnXSŸ½yΠ Aœxβ‰ός—ΏΜr·χ΄…Κδ{Έι¦›ΈβŠ+�€β·‘Hδ =|mλ1nΈαϊυMMΎM½™΄'u“’MλΉχή0gŽ]sΥUœ|ᅍΟν³Οb_\δL›ζ‰”–š³,σšššηž{Ž%₯μφG΄«γ8΅΅΅^Σ4ΏWWW«O>ω€Ωqœ_’œϋξ Οώ’ο‚σ.|π Μ9J-7΄‘*2¬<:¬ΏΤ:‘QFxϊιφA¦^†R5{&u5w=YΛϊζŒύΆ€ŽT‘½.]&sή¬Γ‚8•α wΊ‘1£F0λψΛΉλ_E$r nΩ”ΰfžsκΌDφΉ‹άsΚx8ΙάG ?Ύ>žΌ-’ΩΆ₯`};Œ8ž|ώπ7θwΜ[δv‘y,πz`Ε&},όοcΈα>s"΄'άΙ_j*a`_7O}ŠΤ bΉ–xW―ΜςΉλ»ΪδΘ‘ΌφΪk„G)•9)H'ρN•Ιά–[oζΉd–•R²Ο>ϋPQQ±ΝΪ‘― @cccΊnΜ­όΞ…�$τ+‚‹Ž‡/Ÿω4ΏχέΰfY¬«ϋ’›oΎ™’’,ΛβΐδΥW_M?uՎBΧ3ί5I]Λ l`fΫ`\xαΕ-6$ΦG£Θν­›©›‹aΐΐπoΰΏδΉοΟξόώόσΧ―)-½+qΤQ¦3hρe0hύ9 ξ»Χ^{Η顬I;‰D₯•••΅†aάišf{]]]ΜqœΗΩ}τPψλ ΠΊ� `ώ½0{brΨΧ5ΛΐUŸ‘γα>]&η»W TpξTZΦ‰Jή9|ΒΰœσΎΗΚφoρβ{ξξ›]Gζ*•gΫ =­Γ?™ngJ˜;Žοή¨Jό~ζœύ#ξ{² Η £?2ž6²Ο!ν9Θ(’r‰gž‹Κ(—v.(0{2η”γ™}ό΅|ω.y"HSn΄σfΤ±dŒώ†›P oάy%μ·GΗοηΕ0ω$7ϊ`ψ@ψλ5°η7~i—ΐΐڎ‘ϊϊϊτυƒl1νΈΦͺGθ™‚ͺ²~ϋŽ;– 60mΪ΄¬}?ώψcΣϋδ sζ±s]Ε…ή}>3gΞ€oίΎΞkkΪQΘk°rεΚτrίͺ!Οbk~WΈΏ­Θ KsΖ7α†K _₯δΝ7ίdƌx<ϊφνΛυΧ_Ÿ~ΠΘ|εΆ·ΠuΙlσΊuλΛ»νΆΫšX,¦­Ά†išFyyΕ’Ά6±S\Π΄•’ ΈφΩGg₯j/½Τ>ο§? οΈγ>iŸ;ΧR&Xν••ή—ŠŠ‚§:€V)ΥeΜΎR ΫΆ { !œ†††/₯”ηϊ}O9VΌ�Ξ{°ψχ°8ηΛ½|Λδ,§Δ1λ?½έ@ψχΘY'²¬b€bί)>ώ\}Ι£σM€λ:2ΞQ>ο­kGκP ‚γ;iŸ‹¬Bn�RΪΞ§Θγα€3Ξ偛ιŒσ™utœ`Η9e^—ΤΝYeΝ²Π3ΧΚA(Ε#†rξ—ΣΌ€»žNt<Pt[‡‚OΧΒΤo»Qμ�ύ«ΰO—CI|²άέ畏απsά(x€½Fΐο.vχb­;ΪΕηΏ™ΠqM_yεχZδXΒΉŸ ΉγsE"³/6_ί­‚`0ΘΌyσψόσΟΩk―½�ˆD"ά|σΝYΓjσ w‘ώσΜe―ΧΛ~ϋνnj3Θ ΪΪVνΘ]/₯δυΧ_wΫLŸΰz7;vάFΏ«T;Re”ϋΰςSaΝ³`Ώο< 3¦B(Τΐ/~ρ *++ρω|œ}φΩ¬Y³&«©6Š+ΘΌήo½υVzϋŠ+ήEχŸoάί€ΰβ9sΈeδΘ}:='σoΘ² ‘>ϊHΘO?U«[[ύWJ<rκ©§,ΊγŽ;γ;sΏΌRŠ`08&‰άμ›Z_V?9 ~|:ψ’7Φ”εΥ—\ΰ=υ‘Σφδ‡Τg‘Q¦γœ�ο θ{…R!Tς¦!\k5£3W)Εη«ΎdρΫχṕ*}ΐnλΨνθI’Τ\„ݞZ/Vy§ΰ)₯Pΐ > (φFdœKwueœoζΚtRΫR›2TΏ‚π€.wGY!xυυω¨ζη8dRςλ(P‡R°1#w‡₯ ¨‚χ#ΧC&„;ϊaΠΨοD·/`Μpψεχ:fΏ ψ`Φ4π$Yα‡»QπΓ‡gΑ‚YΣuΊηRxXWο™ϋfR¨Έbxο½χς›ίό†ͺͺ*ΎϊκΌΗ(„”―ΧΛΠ‘C1bDΦlgΫ«---L:•%K–τΓ'†‘eΩΏρ­ώ]ΡYΤ ώv“šπ³[α―r#Sν?ρΔωΓώ@uuuΑ6f.ώωηŒ?žH$‚Οη[tι₯—N½ξΊλΪzτiΊD$/ψμΩ³yfί}Ω)¬τ­E)Wδc1X².muuβyΗ±ξ>|Ψλ‹-εφ™mOΗaȐ!ΥλΦ­»Ιqœο΄σʊαϊKΰ¬cΑλρ—ΪρǜEζϊŒΏΒΜ²…ώp;3χX₯ί€’ύ@Ɏ›XΪPiΑƒδM ψοKo0΄ψyF*pήΫ»=©PΑ)P~LF‹pΫ(Dς!&ωΰ’y,1%ωλδάΐΞ¨#ηŽΩι†šρ9}:.u�Α)PώM”’ι»kΗχαxSs+OόύvΞ:.Œp:Χ¦ο/r—ƒ~ψσnT{ͺ|ά†‹ηfŒwF»Ϋ.Λ~H’&ν#ϊ'OΣ ίώ <ϊ‚ϋ;ΈσΞ;9ϋμ³³.}ξ =s}!—m!!,dΥͺC)wŠM›6 …ˆΕbιi|-ΛΒησQZZJUU}ϊτIgsκΨ–νPJρΐ0wξ\”R{<v+‰mό»ΚΨ'λο­u�΄JψυέpΛ_έ@Ip½W\q—]v@ ΰυΊός˹馛�Χ΅ΆΆώβλ’)ΞΆm`fΦυq€c [{D,γςΛ/<oήm«Ž>Z’σ»άeHύ( κκ\k~ιRγέ–ρHUUΥŸ}ΆxYII)½ωΓrΣ4ξ"™ΨΕcΑχO…kνB/τĜ΅=Χ$ΝٝŸΜsΛδ­C θΒ ’2σ«fκ|CR–Ε_ώπ[Ξ:ΆKμνθIJ ͺΞ�ί°΄"³χ†–aIeZξ†Α#=ΗA{ΌIΏ’<—(]GαmΟl½ θϋ]”oˆ[ofύιΗχˆqΰή?έΒ™ί 0³λP.»nΎΗ]opΝχ`ΤΰŽkjpΛƒπΖ‡ξ²Ο οb7�.Χ²σ{αΘι€#ύ?YϋœδZm555¬Z΅*=ej!K=_vϊšΨΦέqv…:ΐNVWW‡eΒ{Βή΅ξ…ίfΏ«nΆmN XΧ \~ΉΓ³3rδH|πA¦L™’ΥΆ5kΦ°Η{ΠΦΦ†"|ωε—χ½ζškΒ»r„ϋΜKfΈϊƒ½~Ο Γ˜νσψά;½RFκKAΒNΘΈ_”p7tμ½Ούϊ…ψ杠΄΄4X^ήϊεάΉͺ’»vzΠ†kσ +ŸC¦Θ77Γ₯‚?6λΦ­3ώœ3ηΤΧo»νΆ.žΧλ-vηΟIk€q£ΰο7Γύ™ρtLώ'ξN.Τd[3ŸͺEr]–«Ž?ΌΧa €~’T<Ϋ"$Υ‡2Ž“-4―Ύω6Υ泌Ό΄£GuxaΐΥμ΄ ηΊΪsI ©�ήYψ4>Κδέ;ΧΑgοΌγ­(ΞƝέ=εφ{ιpι‚ ˆŠ ’ ’h4V,[μΡK5jή_bβ›’)Ζ^σ£FΕFbD ‚PŠH‘ήnΏηœέωύ1[fχμΉ\:(Οηs>»gvfžyfgŸ2σΜ3z›ά²ήB L¨Ν€]nr1zΒο!}a_ŸΙπψΓα’ΣjC–ϊGKΰ€Sƒ6? .<;ΐυρpλ#A3.<Ž;4Τ$„^UΊcΐOο€?>ͺž_rΙ%άύ!F^Θβmim½΅Μμ›‚ΓqΈβ ξΏ~�~8ξψ1‘wΉuΖUXQ.d‘o )AšπŸαάλa™λpiY7ί|37ήx#–eqμ±ΗϊGΔ&“Ι«ςM΅Ξ‡]=΄Σ’UKžO§Š†ϊ]¦[_Σ;VλμζlσΧ6œ»ς©5oYfλΆ‘ €λϋiς™gξ{{μΨڑ߈3ηλ»X€…{€TB>›…₯KaΖ Q·`5£©‰G{φμωΒ•W^±~άΈ«œMΫ2€ΛŒ3žΝεrC,ΏnΎRΪ!&! Rӈυ—+€ϋ7’^kr+TFz›Œ£β(Τ•gϊEς¬εε«Wσώ›wqςα2―M۝ŽΦΰ(>�QuR»&B‚H§];ιDΈυ2η 6|ω8ΓφΣϊ$jΥxʈχ™>rBνrDρP5 €ƒΧš€>―=o•γ«e˘9ι>FξΦcΒργΰΥwΤίΚRψΛuΚΧ™φu…_«ϋαχγ‚>σ›€ε/)‚οl§’ie₯0[=μ±Η;v¬ίŸAω‚pcΧΈ: Ρ]ΗSO=ΕΩgŸ ΐΐ>0σ90šƒχ°UΖ„ ₯o!½Ύ ΈόVxϊ%O τξέ›ωση`šζ ‹-:΅ΊΊšo8aΘ•ƒ+WΦ,₯΄¨xh΄c$.’ρΊ‘ώyΙeVohΨpj}cέ䦡|~πϋίί–YΈ°vAS“Ζ<weΠ>4΅¨π¦­ Ο"–=zΐ©§Κk―Ν~ΣMΩ‡ΗŽ»fαΒkμcŽ1³:σS)λΆΚΚΚύ9䐀”’l6KuuuW!Δ'οΏώ\.7΄Όώvdώ ΏΊξKσ¬ΘΈ—˜§&hω‰ζ—‘2šζ·Ι8H@ўn?ˆpFα₯©Ÿ$²WŠΛΛY_SδΏƒFGkqBJ;D‡Η€|*D˜‘‰€ώš υ”Ί'Ώ{1ίu%ΓS,όhuξ8fŠΤΪV΄/ΎΒζ2h“Χ^ίI=ͺ«iϋ³Ά€3Ύ€7¦xF€’€ϋ…²Ά?šs!`τΘψ~Υϋ±¦–¬ς: Dόλ^θΦI=Ώΰ‚ xζ™g‚n4ύκ/ΩDzΎBqœέqL˜0sΟ=Pϋϋ_Ύ_ζ[{\‰€Ο‹θu3pθΰq‡ŠόγΠ<nΎ,SϊΒX›J₯.ιΨ±cZvMΨχβ}έΗT?ΩLݚʊ‘VΐJ¨Ÿ™00,i LCψލ €+{d¨“V²]ϋςφοt¨θψΟ.ΫΏΈ₯C‰ ―B)ωdέΊoΘΦ] λ=Σ„²ή7γ¨a™UVΒa‡IλςΛeοnΘύδškΦΟ<ꨩͣG ™J%κ—.]ΊXJΉOE)Ότ�¬ΞŠͺ&|9ͺΫ·EδcΡ>&©§Ή ώGΣήΝΒ‘μf[ ‰χρ MΩσ˜šή&mcWŒφΏέιh £ ’Υ!νΡαΡ*₯¦δJa0wήWτξΤ}·^B:…–!TFο7£Rέ}%& A½ΏξUx Ϋq8dΨήΨ€$<ψ¬Šϊj«Ω‘ƒƒuN€²Τ_ž΄§¬†ξ«5Ž˜{Ԛϋ¬Ή!I… Z2γYθP₯όEΞ:λ,ž|ςΙX§xNό>ζ–ά’e’εwEΟ>ϋ,§vΉ\Ž6ε0σy¨. Ο­6η‰ΝΏ‰8Όο%Z‡`9pΛEΠ8 ώ|½ςΪ444¬(//ΈW―^»tD™œ“γ…)ϝΎΧξΖ¬ΡTΫ‘SεYΙ”a$’ήΟJ¨k2i’Hš$R‰”ι>˜–ZJχ8¨ίηΎς¨~ΕιβΧΤ―Y:ΰ’~έ£γΝ ›ΝΥΥ]f­Z΅OQ‘@Κb.€βm hiIΖkCέ–·AςS¦ΐψρΰ8§*ϊڷể…^υšΖλMkyιyižFΡ’}z<f3~Ή™8ŠφœΠ€ς„pΰκΊ .ƒj¬©₯²ΌμLGkp€χ�‘Œ₯CΥ'ƒΩχκGƒjus)+>:"mΡΙρΗ‹.ϊΟΛ#�‘ήDΒΗν?s/τΒ{ zTW³h₯š%yρ­€ό½{«€0žR$Q‡°|2/Θ3t ΦžPηi„ΰΡ‹Wh΄h›„9/Α€=”ΰ;v,W^ye(F„.μΌϋ­;λω •ΥΛμ 8ΗαškaτθΡ8ŽCžπΕΛΠ.…όq΄΅ΖUL™-Εωi:ΩB€)aάP?M-;£‘‘αΒ/Ώό²Γ. Οκp⏼fC‡vmo-«LY‰„•TΏD ‘2H¦ Wˆ$΄ϋ€'ΨS*Ώi „AΈσΨ°i JŠ•6ΞηΟξpPœP7�LΣt²ΩάΧ«V‰†mκŸ €bk-Pγ^·Ά€7ΠFnΏχ“.ξ,› RΒΪ΅π›ίΐΔ‰*νœ“U8ΕσC£IDΚω–b„iz–—Ο¨eπίϋ(ύι2yχ"’Ά©8�Q΄Ÿ+ԁ>₯ξαO³{yf}>Ύ=u}‡ΠΡDρΎ‚Mώ:— HWΕ€{ΫS8젺ЌΗυrΒ+ΰ)(ω€Š T0wJ'šWD/—TΟ Λ£„OΐΊ *ξl1ςŠΟ^Xπ�C¨Xνθ(<3Lkˆ”jίϊ¬yΚ)NoKU>|.₯ξ½χ^ϊυλΗ’%K I{γ֘γόTβ¦° ΥΉ³αRςυΧ_3`ΐ�ξΈγ�Ξ>>~Ϊ¦‚±“-WϊϋŒΙ»Ω8tt2@‘'π$$όζ2X=«8@IΰqΓ0fwθΠ‘ΓΖΞΈίΐvΚO(νΣ}lΧ―Ϊ–΅ωgIIͺ΄¬2©,nW'S&‰΄ι lSύΧ…ΈfΑ'4αŸHΈ‚έε?^:Ψ9‰™0H§“ιŠ²·»ŸΫyίhΔTԁ‡zΘΒ΅kEMΜΈήϊ�Κ¦λšQσΦπ‚xοv©ύΌ|ξoSQxο=ΈσNhj‚6πρψΫΟ5‡7½=Z_@‘}dž{χΝ« Ά¨φμη‘lŽD€Yΰ�ι«phQ°|i™|ρΡdϊvίΑt΄‡‘F¦z‡G‡χOFzLJ_.^Bvν$φθ‚oρΖA¨mR;[ζ΅K‚0ː©nΑ3< ˆ¦ υΎΤ‚dΞ|u*š½Ί„ϋEXΊRSzPΑfό˜‘)h^_ ΛW‡Ϋ�`ΪπΘΝπϊCjΟϋόωσιή½;·άrKΑ°ΝΡiι¨SZ\ώBy •ΫΡ8lΫζ·Ώύ-ΥΥΥ|ώωη₯ΰ₯ϋαρ[ΐcOxε ΅Λ»Ω”qεεΩΪ8ttζΫbžͺLϋ?xώ.΅δ8N•+W.Ά,λΔ–ήǎ)ΎώGΊwΓΏΊ}ΎςŠsgœnv?Ό*Ϊ₯°’+!ΑœΚΦΙ”~Ν£YχVΒΐ05ή"οΝ4;˜¦ •J₯_πƒ=Ϋe²ΑGn�ρΒ /^Ά,Wγ3m (Ey Cΐ-α―­U�� �IDAT!_ΐ·™-…ΦΡ=΅QOΛυ­Γα}ϋΌφšJy¬ψμΣ90π|’4m[7t}‹X³…ώρiL6ο'Γυ„x©Πpn*Žβ}δάΊ χk-z–»‡ΓEπΚ+9κΰLΩŽνAΗΖpHEϋ�2UNq¨mμyΟ/[½†χώύ§ŒyΛ:žE£—ΧΫ ¨BŸf.>·roŒω ‘ΉΉ Λ¨g½f Eι O½ώάP΄±ΈR©0―oB ΡlšπΩ<Β!o π½l˜ §­ρ‹_PRRΒψργÊ‘ oŒ›βΞλ«ςrRΫQ8�^|ρEΚΚΚΈρΖ8ιHX?Ύ{�D[i\…‡VΗ‘—“Οϋφτ±uΚΑ°d"τTηE&&‰?e2™ό vHi³ςεβξM“φόΌ}uίω©²Š=E2AY±Eͺ*κ€I2e„¬ρdΪύiΣλΙdίκΊ W‚](g:ΛγOΒn›mLKP\TΤΕ–ΩΏκ[ͺ ΡΘf™QS³γ’(k=:�t&βy©Χ }kΌG™(΄„Γf£λκž0Ώηu,ΐ—Αw+‹$”W�h ’gyVOθΏ–ŠAϊιš‚ 5…Α£Ιϋ Cυl*’ξγζAΕ!.–2`ΰB₯Ϟ·�jή€o‰±#θh @œ<:€ΐχχλ QΟζ.\Μ;/ίΕΩΗεςPΥpxχθ4‰€έψΧ™¨D ‹φAβy€¦έδε 6ΐόy ιΫ­Ρ?XΤ–ΙTΜ–Τ†ζ�C2‘ςωΦ\”ŽΘΦm€k sΣ†g«&Γ{Ass3£G¦²²’'Ÿ|2΄Ύςq£Οβœtˆ γν‰Γqžzκ)*++5j ΨV½/ή έQV„ήvΑ–Ž«m‹CŸΕЇB4e΄mΎψœx„z”Λε.**zό裏ޑ‘K₯eυ›έŽoώο 5m;ψ*Y^΅§H'©$-ώ[ŸbV6ι{²{kαΚΞ οTώΟJŠΠz»ΊΎ£œϊ‰` ^ƒζFΓ‚’β’γϋ_ή󬜭–*όΛf³$%_¬_Ώi(‘ξξ ™Xzάη­πf€‘<:]θ· Τ…€„+Τύ_n‚__‚ψ! QλΙG)CγΊE Sη!‘΄HCεd T΄G’Xm}+8― άtί©‡ΐ kήW‹™σώc?LΖΦΏ₯tΨ2ΑΣοΰ•©‚œΜ"›ŒΓ¬@$»Ήy‚xkώΜƒŒΦ!Α0ωΧΛo°ώΛ‡8σh;x‡Γ“‘1 iώPΦξ½υΚΌgF1"Ω+Θ©.HθHΌόŽa0νέΙ4@R₯,šΛASŒΏHYQ0NššUμ…θ,H^#"`πι\Τ7'Ι{‡ή}»L –Ό ‡ξ555Œ;–T*Ε%—\Bmm­‹WψΧ8Η³θ³Bε…,ο9½m))% \yε•€R)Ξ:λ,jjj²|υoψδ)hWξ›_pΗμVWΫ‡7ˆ|6©C–7S)ΤrΓ „‹NWΟlΫ3qβΔΗ¦NΊέδ‘wTw―K«Kηφχg§μgW·})a&Ϋ`Α‘.αΟN’N _0GwR[?Oz{ ―™' Χ·Βίβ¦ξ–&Τ½ώ”RbηrYI"aιTϊ7Ηά|d:kgn†SRR>w‡n]K‘¦α£ cξ½Ρδ Ά£ι>KΰeBqL)š/F¨›&<ύ΄ 4ΚSσ‡ξΰΛΣz#ŒΨδBΣ’e€ΦϋοiΏ~>νcΪ/€-λu@X£ήΕjΟ³J“.NΧ2qΣό« œζώ3i*+>ˆSGΨξ`Ϋϊt˜©^œyζXΎ{ϊ-,²/αώηKX[ŸŸΏΥ8Rύ"ιΞŸV!UD6Ώ―\š/_ΑΓwίΒ1ϋΎΓΰ~ψŒΠ«V?]{†~‘ό€Lοf˜4œ>nW‘’*ȗwΖ̏سΛŠ-hΫ.Μ¨kλ5FλΦUYΰhl†z-…>[Ί %¬^+Χ†iŒώΌΎκR“„Ϊiπ£sΐ ΗΓ?Lyy9•••άyηΤΧΧ·h-Η₯Ϊ֚zΆŽϊϊzξ»ο>*++)--εή{οEγς³ fΌχWθV©υΠξ τΥVWΫGh@Ο«ρΦΈ6θΌΣpΰŸΓqξiΈΉ\nΜ°aΓnά–ŽrŽγΰ8ϋ\Υ£ϋ€«{ά=δϊ½;Ά©ͺ}eUΩ₯a8ΩNsΩЌΣЌlΞβdmV4HΎhΆό)rOHη­“ϋ^νfμΪΉgέ{Sμ–ehΊp¦)0L‘)N‚ζΓ%{.]? R³ΠsΉ©TjƊΫΕ1(‘ž ΜMβ8K\šƒrr«uŸλΒZh£#4ZodMύ£`–{°Εwƒ_]Žš¦—š¦ͺ‘ρn„–Θ½,ΓZsΘͺΡσδA†΅ά-6‡€’}kΒͺ½"nαjΜeΉοξ;Ψ·Σ+ Έ 鐨£M,H‡=Ίuε²+―'S5Žϋž-¦9Θί*ˆβ€gΉ}₯*Y²rχέω[Κξα’“3€΅±ο\Fθˆ<χσΘόtVΐ=*5θΓ ρ^Βο·΄[φ«₯_σΥ§/pθ~ Ο~{ͺΈλ^WΜωJH©’ΒZc-ßΥΡ!γiς–ιZι^hί\‘ο£Τ„;‚¦i0u1κjk7n₯₯₯€Σi.ΈΰfϞνOΛ·f ™ώ,ΞΊnM=-=Σ…ύ_|ΑE]DQQ₯₯₯\qΕΤΥΦpψ0χUhžχόΚ΄@"‘wޚΎΪq΅­q|―Ρτ�A$L„�‘…'o‡ΎO¨”ςW;vά§#ekΑΆmΗΑvln{ζΆδήWτμ=πΪ·ωYU‡ύΟ~vEYωWmΚ+―H₯¬΄•€’‚?n2z’ΰ“UrM8MΘΖ 4e˜ΈΞτ§Ι}‹Ϊ³Τυυr}ۚΆfξ sοjX–ΐLLΣΉŒΖ°”@Ϊ‹•R’iΆU~ΣΊrΑςΉVτέ΅λߟ/Ο>›–‹ΆΨ¨=γΊ`φŒIxtDΫ. €ι‡ΓYΩ άuΤΤ(ωΙ‹°‡fύxkŽz;tλXDΪιυ­^F'Αo‚lΗF›„#ΩΪ_„ΔAD+Ρ*Rb Α³γ'Π½|:CΥ2τΡ!%`ΐoBΊ:–Ae””Ce*iDυ΄*+₯ŠŒ"ΓΰέiP³δŽ=4Ψ&Ψb_eΠι'*ƒtιςΈ™Tώ‘oΎ9‰υKΓ¨‘)O@…_o¨N/,f(έ»Ά!Z^LT!;ύ!΄ΣUάvJ8ο)νCψύ °lυjή|αNƞ 1€"MΓ€aΞ—*O―jψ󏃣/‘*β˜›oψaϋΑOΞUΫΫτw¦5%t՟K©ΞΞnWτΩ¦τ•χYόΏ»ΰρͺYLΣδδ“OζάsΟε°Γ£mΫΆώ³ΈmbQΨ”τ8οφ΅kΧ2yςd{μ1^|ρEtΛ1„³O„[~Υe ΠΖήyτΩΆWΫG‹ΌΘϋΓ«υY΅Ϋ^˜g\­>uΓ0&ŸvΪiGŒ?ΎΕΩc)%ŽT<μπŸ +ŸΏxΑήfBž°’ΗHGM&“Ε¦aU’XI#OαP·"@‘Ρξ²+ͺ:€°ΒPtx΄i CύΤβu@Έγ€t$Ά-qlu΅sjϊάΞIμ¬$—sΒΧ¬šZWSμή½ϊΐ%`˜‚6Rd²Ή¦Ϊ†ΪƒCM9ς¨βΩ³ίyηK³δ½0οE䍎ν�¨iτB|S`SΚJ ˜³žzJ%όυό½Ηžeθ .O–]«υ˜p J‡/k)ΪΗΒSίFqTœŒ(=0ς=ͺ;oj½1“αΩρ/»έ'κ ςMΒΡΐΪ&tœp*TWCc#ΤΧCm­:8§‘A)T6¨4οy.'¨,KS^άHžΠ©΄ο=ΪCχvP^m+ M%”'!Y~0²jHα8 κx{⻬όj2'™£]ώY�‘ulούΖυΉ›z‘όΊε(‚¬: a5)[¦Ύ?ƒ¦•/pδ(G= Η/[ξQ%-ώx tlΠešpΧSπŸικ: άδΖzΠtΪVΐ‘γGEά’Ύ’�Iψx>όαΰΕ7UΘY„”••1lΨ0† Ζ!‡BχξέιΨ±#%%%~žh™θΤ9@CC+V¬`Ρ’EL:•wί}—Ι“'³aΓ†<Ϊˊဣΰ'ΐώ}ΜfΌs–χՎΔ!υχA4?(C8ΏΧVYOYσΑ0Œ\›6m/[ΆμCG:X¦…f-ϊΜϊξΝGοis„i˜ί5 qT:Y”vΫ―&ž4€†!hΧ%­ΖƒŽ˜q.<˜ί~a ͺ:$•ΠιȐEm˜žPΧ+Vέρ„yΞθY%ΜσxΦ!—σώ«4ύY DKͺ:€NLύ4DΖ§Ÿ~l rΰσγΖeOL₯Z˜zΟ‘lN{‰Ρ7ιΊ)?½¬šoiTθψ h‹‘:)π\«Γ4αΙ 0λs•τΪΓ0r φž΄AŸ§,D>ŽΈηymŽή·τlSκ,XO:³<―lΓΰ½χ¦3{ΖŒΩ@;ΟΏa“q΄ŽŽ5Ν°ο©pΒ)J¨·fιG·…~¦»‡3—SŽ^MMPWό<E‘¦F) υυΠά€βœw¨‚Ξν‘² ΊvVΣ«Tze;θT+ ‘ΤΪ`ƒ°…%4†cȍv£:ΖυdͺJ%‘R„#oΞSBC6Λ£=ΒχŽωš6%1]*aΑtšŠκpμ!pρ¨pΏ-ZΧέ”=D8axxhE?“<eΔM°8ϊh[€ym } ZΉ Ώ―$`€mΒΜ9πΜ›0ω=˜ωΉšaΘϋ„EΛ{Μ[“Χ4‘}%\t ΩΫέΡβ)΄›CG4ODθm•ΎΪΞ8bω&ψ£3;2’?Žίϊ8όόΟ`Xe}‹Η·^΅<a$ΎcΡ'™HήΦΝ<6•δ.΄ι˜RΣΦ‘Η"ΎH΄^_ΐ«ΰ.m•@G(!νm1³ά)sΓ΅Τ½)rι€γxΒάβšΰΞΈi!α­ χHšc»^4J+””&hΚdž ΅9“Ι=zt»mτθ•WWUΙM[KwPB>KpYœΐΡ‘`*$Œ[ζQ…F`!Ρ²nšaΐΫ“`ς 5?|φμGŸ’‰cͺ:‘iJο‹Σ~%Α–ͺZ3αͺƒ•p}-βHtƒ—ƒΜA"ΑW‹3ι?ο’Θ~ΖΘCr΄/'8ήusq΄’$,­U§v ;βμ†θŒ‚αugO9π„ΖFu]Ώ^)ή―‘^ΜhW‘ΟΪTBϋNΠ½ƒϊ΅­‚Ξ Ί΄/ƒ’’œ.ƒ ‡Θ9D:ξt°ΟqΤ²Ηψρ€GωΥ²‡DŽ~§ ‘’Έ]σ'Έσ1W ψΛOΥ9ηή;0 ψύ£πώgͺ\IξΉnΤ²Έo$4 yά‘->(hPˆ‘{}Kώ}ήηΑ–ίεe‘Š€ΒPΛ‹ΧΒ²ε°b Τ6Γ†Zυ[―ι©,ƒŠR¨(ƒ4tj ΙΚn¬\3€Υ_Ο’"ύ5ƒφΚΡ£#ώφΔνALj#ŽFη±]σFiΒͺ‹IKΚψΟβr>YULCΞΐΤν=Ά„Σ»;œήΝ¦g‘rfΝΩ³kΰ― “L[oaκό H™””'όVδ-½θ\“ξqΊA2ePZ™ΐ0Τ ™'Π}―tΟ©Να:¨H Žg‰ΗXδϊ5O€gς-u;η9h %mS89ωq¨©MMMTVVŽ9ι€ζΗ ΘΧV7$ʊΟ�QŸ†¨ΐ.t%rWžH^ΘΥ­Α3’…€wށ5ΰΛ%πΑ?‘WiΐθόμϊG’ pΠώΗΰYtΪ-‰(ΔΤ―ΥΝS‡4ΰ­ΚψzYŽΎ½ιΧ*‹)8έΌ986•€•ΠDs΄oΞ³«@ΤΨσhπvΎ8ŽϊεrJ)hnV³ήμΑΪ΅κZ[ ΅5ΗIPV’€΄Δ"—YΟΐώjζ _7Έό{`ζάώΥ”*o,6ν†λΡ}»ΑοΖ©―^ž upι­A{‡ο׎ ς„‰sq ύ›qu΄j₯7>2Γ™χ-„Φδγθˆχϊ8Μ–ΰ 2.·ŽνAΗvΗƒTκιR νf[πακ&}]ΑG«Jψͺ6‰-Ύ7—Ξ{#7Ά„ {ۜί[‚0‚†H™s9™³q²9~Ή ˜χj’~Ω’Š–\θ•‹Hσ…v‰HυdΚ €άB˜ei'«‰ΐs]sdσΦΛ[ΪYχ>,θνXžΛJ·%Ι€A›Ni[…šH§Σ�KV­"#ΙVΞVςVOhi%02SφhW½οβΉˆΉ/$ΜγςΒ‡S‚aB"Ue°" kRM j'1‚έΝ]ϋΦσ{• "8wQ¨B½Ξ˜2qH8jP- θΘ{η[Šcι@@‡"˜ώ  £Ο†6mv=‘^¨½Z „Pc+α~νΫͺM"eυΡe…�YBΘσ8Ž™§%<~;œ>N½‹Ή‹α―Γ#%«’.= xN•™ς!μΏ'~@ώ8φΫ‡ w_ϊ<>ˆΠΛ1xZqtθ ξ}\o)ލσΦΆΐ±=θΨ^8’ό’ΑΊ&‹Χ•2uE9Ÿ­)aU³…#¦ΘΗ•ς"…F£ Bpd{›σϊ„•@X¦šn’€mγdm„aΰ!%Ώκ]Οe ,Νͺ΅·TJ)�‘q\�gtν\αξυur}2:οgΈέH„ξ4Ό'‚ Όo:T‰Η¨ύυD]σRmuεΰ8”‡ΊmΫ}τΘ/V­šΤ`Nr w Δƒ@ (Š€ΗMΩλetΣ”/YΌgϊσBΚIœ"‘ΥeΫPQΛ—CχΞ0yμέί²‘z#[Bω(’Σρ:/ΏΎž*cκς΅aοΩ.ˆCθέΆ˜χίΊ„ΓοαΌσ³»€PߚG»”ΑQ¨ΎΠΥ#οj5 nΊ ~}ŸJ~ϊ θΠƝwλ8v(Μύ ώσJΊλi•§_x!iΏQκω²U°ͺά“θt%Vo^τΎ%:ό<^—Ÿ{όn7Ž­‹#4%.άMGŽΙςΖ+εΓ5e|^SLMF‰_ ,•Ώtζ=ΛK1·BRΏ\ maˆ„‰H˜ΰHd„#‘Žƒ°Rϊ–9¬jL"PΫΙΌ6F‘„Ϊ ΄‹'z4ΧNΒ=άAJχXcχ›t\ov·'q΅|ζΕπ(x@ljό“¨’-€<ώΗ?ώaωwΏ;ΈΖΆ©,€™o0PeRZšgΙ{ξΡΡΧRΫΌόΛ»‘t)‘KXΆL2ρΪ[pΙ( ‰όυEM`…f"8|2DΌNβ Lΰz&―Z©GϋX}»«βHu§k»φLϋχ8;ώnΞΣDUΥ·[¨·BΚ£§H9π‹Kα«―α± κΩ=Ο¨Hqƒϊ«W’sΰŠ3aεzψΜ mόλ‡αΦ+ {§°’&tFX@β̞‡jg«Τ©₯;T"bι 2Ζ+–»q΄‡cagА9 „ƒH4ς΅m0·Ύ˜/jJ˜]SΚβϊ4υΆ‰†Τ^­VΉ ©’cAOŠfhA˜°―Υ€8ΆC#i‘,M™sP~&V?\‘Ή2g0]–ψ3�V"Π|’VΊˆi·Ξ§T>!�S(g7ΟαΝ@υ'R:ΨFπΎΌ­jž§»_ΞέΞ&%ΰ(a/ύ47]Ί•x πœfMΣΌ>mjj2μφΪθΡ«N$δΆe ₯φΩ¨ιχΈuv=oK7†'š·Pωι3f*g';?<F“mcmt‡Φ§ά4S$N‘ŠΗ{ω£λ€ykΣ»@V†β % –Χqΐˆ?sΡΕYΚΛw uͺJΰ‡Gƒa‡‚>Ξ|f/œώxώίAWކα[†7έ _, ςάςθί£0ύ…{iŽΗ¦œΞό™Έ1β)}‘±Pˆ},BώXΫipHΐ„&VΧBƒ{ͺcΒ‚bε4i` |'fšrΠΨuυPΧ�υu°’j•ƒ_]£’Χΐ_J6΄Ÿ0P».R JΪ$)n—F”³€!ΝIε‚}ŠMν]I°έ5hΫ¦>λpγͺΆ¬t«;ZΖκ6N2η ΘψϊDάΕc ΈΎC{kžΊR*ž³‘Ήo5€y΄±2tΰf(ΊFTJ8μ—hf?«™"lΦΨ&ΪiζΘ4}™"L�‰„αN»Cνϊ,†)T`}뚻~ξ}žΠwά-kΊ—»qx‹z»ΫQΟχ\pvCq™Ee»$vNΈθTT”όαΒ k;v,€'Άνύ΄N ΈxδZZ›―₯Ί7&ΘcžK©œ–ή}Wmcil‚ χB»t0¦B Κ$6α ρuθύ.Œ0› m‘ ;=) ΛΟρ¬H`Φ—λ8ό€»9‚έB]‡< Φΰ6τήlγn‡{ž κ9υH8η»α³Ρ(LŸ­ξpΩι0rHπξςΔ@u8d?6ΊΞmk!: ŠζΩΡ8€„ιsaψωΪτ[ΪνYΖΰ χ Έ*‰Ud"mplΗo„>½,άΦ­ŽΞi°L„©Δ²lmdΦFfsκšΙρ»ΊΆΜqRAωBο8*άγ{$½`}yŠ‚ Ά ‘δRBΛΚQ"Φ:‹μ„V·Θ«OΗΩέΚρ“²υ€ #PΪ Ά­ϊ$›cENp]hΪΙ‡ήG$••a κkr8ΆΔτ˘Α»JGYήΆΎ]χzΟIMx‡ƒΙD·°9np-‰€²}Šβ’υM Oθ‡Œπλ_Ϋ–½ϋφεψΆmiιdA%°½=ιMξ―ΩύySε97Ÿ·oΣ— haΐδ}9…Ύ*ύ>Znc P9χΦ΄ ΈV­R OΌœŽ %ͺ•ΝC«ΧΑšjvλχ~™h{΄~ ι!"¨žhΪ„#ΥJΉΒ^ej_•ζΈγ2ξΗΣ4ΘΑ²v uPϋζ‡τ&»ύάomφΊ#xφΥ ΄oΧDU ? *ͺΰ΅Ικωœ…πΑ,8β@0έθWG� M₯>}6Μ_’’ΙωŒ*2–£³1΅υj/ΚΪγ}'z^-½ΡΌΈω’–τNC@u{8`?˜τίό€8[ žΫ‹‘οAΊΜΒJ˜*‰©,D/”¨ι퍢ύ‹Ž―Μb$)ub˜‘0/½Ÿ))1>0Λ°,ΟςtΓ’ZΑΟ²Ό#>Γ?LΉp}ωεΒu o·e…q'†e°Α°Xm$¨·,ί»άtΓ¨ZάΒPΣΣύ’Y~ZQC2•ΐHYˆ”…HXJΙ1 ½— 9Κ^ΗΔDxBΪΨ ¦Π½aΤά`cΓΫujKll'°ΚνΘΥΙ©{'§έkQδ‚iϊ`Κήφ"eΊν¬h›Β–6•%Uwε±Δl6g 2xhϋφ½sθΑŽ!<‘νS ¨h«ΒF4ύΗόyκ€–Ω aϞπΪύŒx.ηαΣ­Tά{/\»$!‡£-ƒhΪ%qH κ,(ξwΤ€Τς̜»Š‘§άΓΕ—Ψ”Ζδσ-έB‚±šUlBυ-H™#γ8<χμͺΛf2|˜σ5 ­eMξ† `ΏΎAΏΟ] 7ίXζ%EpΛεΠ͍·„δ2zVΓΰ½ctε–,δ8:"cP·†CΛ?; `@}^yxώύ› ϋœ\Νΰσz…μ"gDΛυψM‘ά^΅+i) έRΣξž5*3…žΙ"39žu*˜hT†πΌν™ˆy b²¬OPΰo(s|}"œ^�‡““δɘd-‡e1Β퉓Ν!39ΥΝ9œl‘Ιπh’#'ΚB•J)i¨ΝωŠΤΊ•Νκ@6Ο2w­σ _<g85υ.΅υτ l~ΨΐRŽD5²‚φΥE4g²λkjη τœMΒ2»άǘ=ϊL§Ψ‰zœo ’£,Ξ—ξυ΄& ‡-TχΖςζq”˜τΈς‘Ί.„ΓΗsaŸ>0ωοPξΞuθk…:S‹¦·ˆΒΛ[ΰΤ2(ΰ0ΉkβΕ*r(*P¦ΞZΑq§=ΐΈqΉo₯wαZΠ+W�Νπ—«ΐΘDŽg)JEϋA›ΡνŒυœŒϊyϊuœΙ^}ΰΌaόAωήΥJh'\·Ωœ­δfδ9p/Έξ<ukΩΊ`Ϋ0κ(e₯G}0τε==ΒΚcΑΌ1uν”8$H „Ό > ‹Ύv-΄{Ϋ™#ξ‡τΌ¨σεhlz{ΓζϊΤZ’¦αOΉγθλΟjΊύuQΞ+Ι6˜:£ŠΊ18Ό>ΘoPλ„n^]1Έ γh©>…?Σμ°—lδβT²Κ-w?ΉDΡο-;ds8™d²όΏςή4f0΄έzλ7δΘfΜ¨Ω‘aCV[;W±ά£’Ζsv 9Ω >β€χξ½`S‘TuL“JNMCέΔ7nžvL,+<λ¬3Ϋ|ψαKΣƎ­ο³MΆ΅YT$Œ8‘[θK η~­[ –/‡‡ώ‘]2oύνŸ/ b―z[τφϊρHi…πά%p€ϊ#۝ 2ΈaO£•JΙ΄Ω+8φ΄{ωΑ$ιτ/ΤC~ξ΅© /†yσΰΛ/υƒ‘Γΰ胑W5”%Q‘ΜβSοΪφ|Hχ₯ ‘’\mhhδ‰GξζΌ“j˜Ώ Ύs±:ΥƒΓ€+F«bB¨©ω¬τv�� �IDATύ«:;·ΊS‚³ΎSxΌ=ΊΐΰψJzhM=’ό€#ͺ4Δ”ΡοJ8ΌŽΛ ˜ώάώ0Ό2I;H'fΒ`Σ»qΠΩ=H—YΎ ͺ<ζ]*±9Ζ©aoΩHΒ±q$¬“ΜΆJ(‘E p‰ήOWύC‘Ώ*έWhΌγ~UBh­YJG:AMΟn[t³Ϊ‡Ώ”獷|€‘ ASƒM_»‘ο‹u˜†‘’ΉI|oyr6NΞ¦.+Ή§’ŒDlί:Άdε’F΅}Ν€ k28Άτfρ—3΄wμy°=μύξ[θΎ€w\aΦΡ₯ θM$m;§Ιε§‘φ„™·}ωj,όα―δώϋοωΟΝ7Λ›c™mHT¬φhΨX" ]½<DΚ΅¦l!Ÿ§y$JοΈοAεύpρhΈοF0rA™X ]oͺΩG˜zTxϊiή‡‘?Nΰξr8ͺΞDΐ;§ΌA¬m/ξφΔ—rϊ9sΕφ.c©λ>Ά­ΖΞ—_Β_ΐͺΠ¦ ΩŽ‡ RργSDοί“Zz Pp¬ QαΞx$R;ΨΕνC!Ž<σΜκυ_zuG^‚ύ:&8~8œ{‚Ί7 xξ-xκυΐ’Ξ;Α/σί…pμp(Mβ ΒM’#Ϊ‡δ+ ώ8σΎ±]*nύϋ³αΖ?Α”™Κ€Ψ(΄φ;h·₯ΰ―…ž¦τ©]γκ‘z{bž7ίΉD1BΌ7xπΰ‘Sί› ‘‰λ±f !OHΎ²δ£ΡM:NΞXχΊQ“[“μ_~pε’ϊY]$Nw[ζ:%ŒtgΛHξ™±Ί›"QiV©@”ƒ0μ,N¦Ω1Κ€ΝΑΩZϊ؍€› >K”03UNΞΕ%t:άo|―_ΥΔ†5YΦlέΚf5έn ŒχR₯K·γoMΣΊ8Κε vΧbχgΛ%H$ν:§1Lƒ¦ζ¦·Ξ<τάczΚΟs±―ήύΠοΏφZ..+Ϋη£{ŽtΠϊΑΈ1ˆ`- ΘΝ¨_¦ΐHΓoΐdΧΉ¨€ΖŽ=ΐΕ%.o.*θdπΔY―ώ½ΠH‘e…Xα»3γΐ„.7w|¨― ΝJχ¦ξ”υ0qζRN;ηAΈB’Hμx‘+3B¨έ«W++{ξ\¨―>έα¨!0r8  ΫD6Μ8B‘6i…ͺευH"=ڜN ){ŒEχΐU΅Όυφ»Tρ*ƒϊͺπ|~φg₯xx0°\3Fm»xό˜0)<ΩWm…KhJ–”°Gw8 _ ό6‰ύ»Υϊf«φΥNŒΓƒ5Νκ<ϊ‚ Λ»5A΅#α±Ϋ Wa₯€5txυθ•Fψ­”€ yύ―:BˆKŽ>ϊθGήxγ Ά6δμ,B ‘œ�m'k€α<97Φ€eOŸcV»b³΄L Ί Ψί4] !Ϊ˜†ήφΈi~|9«VM½ ΘfjΧdό5t―?ΌΎρΦΡ=w}κ=l©{VΊ·έ *@yU’T±I6›kXΊvι_ή»fzΒLΔ‹ΆL&cτι³Η#F,½³W/gΫ1Ie•Η Ϋ8Α7Β‰”‰K'ςΌ%qω αH�Eκ57ΓC)ζ °GWxνAθέ>ΐχθυE…`A}Dš-¦Α…#έΡv,Έk½9―9(-έΒR žzi&W\χ<?όapΚΪΆOxyqΩkjTΰ‘ΉsΥOfαΠaδP8vτλιΖZχβ’»cΑgŒκP_ρ‹ό—nϊ}N>³ 1Vd»σ©ή±g₯{Z †ΙΏώυ:ύΪO’o§γ'ΑΕ7…=΅‹Rpα)0β@…ϊυχΰ‘ a ²Ό~τ=΅LพΏ§Ž„„ά*:ΆG_νb8κ £σo€ΌŒΊκpο/ΰΔC�-Ύ«ι²¨<BΛ‡φπζΗpƏΤΩ�Bˆ—‹‹‹GΧΧΧ7l>[l;‹B\7sD)s—$Μτ9–Hv ”`—^©Ά ~6m­ϊZ6γPγ υHέJ K_¨ϋGͺjBέw”sΧΦΥ4»Β(‘—Y—%l¨―ϋιΗšw»i('XΦηZθΗsŒρβπᎡM¦έυ3Ξ7&Xύ†iωΌ{Kϋ ΒΦ>­¬7G¬ΊIχBΨjy–,ΗWn�΄Όpt)UeυΪΗαU―υuήŸŒC½Y2œEv¨ϊ²xoτΟ@j7ΒδήӌγπχGΞ‘ΜcφBϋ3ψяA»%ΰ΅Χ4ΥύκΥπΥWJ`/Y"θ‘-‡λΕ1‡χaψΑ=θΪΉ ™³Žΰ‘ϋ;cF~NΪΏο@1‘ •ΒνOA,ƒ(Œ#θς37AδePΒ"΄~‰m<ϊΰœuΜbŠ-νέ0k œ#|πYΈ ]ΪΓ'Α #Τρ…7ΐΌΕα<}»Αω'ΑI‡++ΣθΨ}΅‹βͺΟο|~v;4·rΟ{Q »nΌvΛίϊFιˆδ‚0γK8α2uϊ€išsΚΛΛOX·nέ‚Φ΅xΗƒmηΈjΖA{[ΏL©Q¦ε1²†Ί,ŸΟXκ{Κε$λW5η+bΊ@—A”8]¨ΫvpnΊ8€€€<AΊΨΔq$uυ?ΔΕητΤ›}ƒΨWΠΨΨΘθΡ§χ^±βΥΩ'δ$7ΩΣ½Ε^K―%QΝUf‘,b³P« Ÿ™-Ώ)ψR@’`}‘ςω1ιQ{Ξxζuš@―jψη=°wWWψyBΝpšΠ ­·h£½ΗΆO/Ά+ΰ :]Bύ‹Ο%τiΗΌώΖΫȚsμP0\ΟM+o…K/kPχΪiYκ=-Y’Φ³ηΝƒΥ« φΫ«š£FξΙ‘Γzrΐΐ.T”¦9Ϋ'J_χτλ‚ρΟΏΚύ¦¨£guζ'5uF-½²Ωz™SS¬bqBT¦iSΟΙW.έrΑϊ­dώ’Ε̝ώΗκθΗ―ϋ—cΒSoΒU·Βκυα>mS/άCχ…{žƒ›ώυα<έ:Αͺcˆ[EΗφθ«o¦Νƒ³―Q!~£,°Ό½ƒŠΗfΡαΥ©}Λq4J^žc― Yδ_§ΣιSκλλ§ϊΉΔ»H)ΉαΓ]Ζο,#1Ζ¦ΡP—γΣwΧψϋΤ֯ʐΛ:‘r€ςvΧzΔI.ϊς€„ŠvI΅VοΐΊΊ ―ώε’ϋN8fΠwΟ:w³†]©Ώμ2Š·š§{=ρΡβτΦ$P‚²%Α]κ΄ϊtβύ«ΟΛη ρhoY \4φ| |ύ5όύοΠΰN(U”Β]?‡1ία:Ο ­}‘©.ΒΒQ¨Ό<ώ­γςμτ8’ύ ύω, k‹JSΝΟ? bG,1bpŒ.5\u•η|’„{"‘ήΑόωJ`/Z™FεΕύ*ζxΏnNˆͺK ΡΟ'Μθ<ΓLΧη{@Ρ νΚ4š5πσjυFϋKοƒhλ}νχc\ΉΆη"Σ}π½ZC‡”`Y<pχ\tςJεΥΫ„Nλoƒ―–©ŠίΡΟ�Νώράτ'ΚτΏΓΐ„Ζ~A:ΆG_}q`BC3P^δ.sΨρΈ7GFΐιΧΒkS`π@Έu1P?1αΧΒο Φω ØUUUuʚ5kζρ „k>8xŸ€Qτ°‘K ™9i•t\k}e³Z7‡ΐRw€ @γx‡·’Sžπ/*΅\«\εέPWσΘΙŸvΩνίKžEA‘ι8νΫS/Ώœ‘‰D‘\­o+šΕ­GΥΫΠ§π!_„`ΤzPHˆGAXλ^=�₯/λ}ΐuupΟ=Βih¨΄‡nN%ρν:œΕ£΅±Pώ–κΩ)p�΄9άόG»#ύΰ#>|οuNQK΅λ¬S‡€Ηί„Λ EEPQ¬Άx}8΄ti£βA‹Jͺ0«E’ΰv@tάψ™½t%ύλί3r.)ƒ0§Œ(•Ύg΄^Ÿz™(Ύ₯ @”B§kΒΔί1ΠZ: ΑΏώωƒzL¦ΊmLέ…θˆy–Χή< h#tDqθy ራk7Ž-Ζ!jYλ―¨Ηϋτ™Ο‚™ ψt œs|όΉ_ƒ#„xΊ¨¨θ²ΊΊΊš]Ω"o H)ΉfΖΑ–egϞΉ{ύ2»Rο{ι@έϊ ΅9s“2όϊΌ©uΓ””%0-#•°Οεr™uuλΟ^ψΠŠη …p΅bS\.g˜fŜϊϊš‘›yH‹'M ŒπΐΪšΰ…Ÿƒ¨€o­Φ‘tΡO€Ϋ6|ς Ξ΄iΦ‚•+ίτθΡc|mνΌš²²2+›ΝŽΛf³ΏόΧΫ”v9IψΙEpέPκΞεΑ‚…άRS=rEδ6w§Α!RΘT_X΄δkήyk")9Ÿ£†f9Έ3<*Ϊ-β0v$Œΰ YA’Ό€E!:ŠφQe"sž±S ž†£Yΐu$r_‘T‡X…­½Ό—¦΅+oVC/#bR+Ε‘Ϊ)R€YΨ8HIYU5uΠ΅m 8βθ`#tΔΡΣq8Άv_νΖΡ2 YNΏ ώυΆz΄woxη1X΅~ό{xζΥΐ!0Œε†aόΰψγaΒ„ 444πMζ€7£—žpωΔ1Ώέ·ηϊš†—Š“%{ƒZ7O—X€K,ΰΘΐ Ξ­@ρ8νΔ΅\ΦΑqpκ›ώ±GΗ=Ύα_dΔΓ……WΑ'ŽγNέxΞ9™_uν*wήχη)―ƒ@ ρΫD‘Πψœ90i’˜·fΈ»OŸ=zλ­·κΪΆmK*•?/___Oeee'ΰOΩlφ \εͺͺnΈ<Š EOž ΣιAόim-]'ΐt°#pH`ώRƒχ>1Ψo―}ΊΊŜp™νFG‡B’=Α>½ˆ 0ϋ•yϋΉ%πο·&Ρ½τίμY΄gc^e‘«ήξΈ΅οΌρίξϋκt²Olλθxλwι’x•½Ίΐ±=θ؍c‡γκ8β|˜9GU9¨  }Z‹U DpΧ^{νυΛΟ>ϋ¬‘εC@Ύ= ₯dΐΥέژ¼#(>Λ4 ΛS’Τ5 «¦βƒΩlΆ1Σt[Jό~Φ½ šZΣ§s455½{χ>ξ ƒ–½4hΠ6>FuK@_—χ` q} ρΌύΆXΈj•yϞ=οš4靺:`šygή΄‹/¦W―^{wδrΉ£½τT~r!\s΄IRVtΑUhxZ5υ“[ƒΓκ―ά�,ΫΪ₯>L―_±pΑϋ0WoΨΐkΟέΕΨγ3!_έ±(TΖm›—ΰ?Ž)Κ―=“qω 5έ.…εUΰmXO?9ž£φŸI»’HΗn;Η‡‹ΰοτžΟY–υD―^½μ³Ο–[–υ­°Δ7€#Ήϊ‘Λ©ͺ₯ρΕQI£θtΣϋ"E;)e1ˆ:G:+›š3ο7gŸέ§η^ύΥλΞ¦*F˽ϐ!Μ<αΆΝΦ΅-o‹šG…7Ύ @%ΐ§N5—/Z$ξνΫ·Ο=Ÿ}6k5°Uq.—£¬¬¬g&“ω“mΫ'’-‹sόr 폚Ψ1/PϋPc_ηΛK‹~Ψί&₯# β(7Ρ3Y‚{_ΐKpύΕΥ~x)ΙHΙέwœΌŽ€Θ+"€3”ΗH£ecš›ζχEρΘͺQͺϊM C ~N:<rΈτ΄ΊπΎδνIΗn; �ά|/όοαͺ„M¦i>ΉsηŸ/Z΄hνnK|η‚ίFIII‡φνλ{Ι%tΟn£3}7Ό©φm`‰K©φϟS§šλ—,IήWZZzχςε+–¨}†Ϋg;ŽCuuuεκΥ«œΛε~(₯¬τž΅)‡+Ξ†+Η@Η2Β³q‚π½ρΊi.•S >όρKωMΕaBϋK!Ρ)\±/θ΄d­@³γπΘ}χρύ“—“Šs]ιŠ%#R―NƒŽΓ/y‡C‚h{2έ'ΪU₯ë띩3(·_`Ώ^αώέtμΖ±CpH ³WΐΘσaω―±2™Lώ<•JύmνΪ΅M–UΠυj7μ`hQ2M:Ω:ώψ£¦]{mζ€œεκξ,#‹ΑΔ‰4,X J&ΣwΤΧΧ/؞Όε6JŽ;ξ8λ7ή.„ψ•mΫ‡β/ τξ O€Qž$oΚWFꋝ†ΦΉΑ”8Hψ&ΰ0ͺ ΣŽύ*·ΟψάΒ}ΊΆ–gvί•!α‘χ§ήν*5zt‡#n䡈ƒbθ|;s਑ΕŏőέΧ7gxζΡίsώΙY Ήι؍c»β@£„ούώ5ΙOΞ%‰«²Ωμ=1MΪ ;!΄(©lΫ6Ϊ΄©|ζΚ+kG%Ϋ!¦ϋv�©›¦:1mβDΡ°p‘ω!RΏ»ύφΫζ]zιeΞ¦oohnn&‘HΠΏβeΛ–XWWχ€ώRJ_ΐwlcN‚«ΟƒmP{ήΙΧΞ}~'εβ‘ †Ώ‘ό;=ŽΓ‘β„οm€τ΅ `šL˜π S:�εΔa²ώ4ΏN@ŒΒέμΚ„’s΅„£xTy±Ϋυ ωtθ ­RBFJΉο.:y% ‘ €AΗ&ΰΐό•pΗίαwΧhΑw†χ±³γ�r&άp'όωQΠ‚ˆM�ΞF…Ϋ »΄(’›ššhΧνgŸέpk—.;±cάF@J\dΥ*˜<Y4̝k>W\\uΫΈqγ>½α†œΔo΄ί±ΰ8Ή\Ž‘C‡¦?ώψ㣁ŸζrΉ‘hΙ„ qιχΰΤPj>َΘ7αϋϊlΖ0ͺ‡λέ<Z…Š‹JΤ@šωΡ'|ϊίη8ϋΈ\ΰΰΓ|£S£Ί‘§€xeΒUΆΎβp8@» !έΈ«γξφ=’Γ?m υί‚‡ξ½“1Η­RG²ξH:Z‹Cœs#<ρ >œ~,<π?P•*€{g£cΰRόΉτWπψ„ΰΤ<Γ0>,**:f͚5«Σι4»aΧ‚Φˆθ1§œΒγƒmσΆl5πψš50eŠhψμ3ω2€wΠA}8qβΔά7} (“Ι`YW_}΅uί}χν \–ΝfΟ:θV|i1 ?�.:ŽUiόνbΓ B0ΐ–”Ί‘ ηΧ[¨ΎΓμˆθπ^τdυ<πv·…`;ο±|ώkœ~΄MRΔ Œ΄…HΏ .]:SŽKΣihQŽμtB$άϊΒ0ιβnύ’kΧρςψϋΉΰ”Fp'Ϊ?Ϋ›ŽMΔ!š,œs=ΌτN0Nϊv‡Ώέχ}βeg₯c{ΰΐάUpφaΖ¬Puo%“Ιο577―ή–wΓζA‹oΞqΪ΅kΫΏ_ΏuŸw†ŒŽ¨<Ύ~=L™BΣ§ŸZ―74δn=μ°α3&Mz'μλΰ;ΗΑΆmͺ««“Άm¨――Ώ¨ΉΉω( Τ^l‚ώ½αΌSαψΓ o0½„oνΊ\"jύΖZΒC V=VϋvΕΘ£ βHMWKΓ`ΞάωLzύ%?p{uΗ !KΚ½Ž°Pœn=]WRόΔό΄MΒ!A�U§β- D!oΓs„ΰωηώΙνΛώ}\\;šŽ-ΐ!₯š>ώΥCπϋ‡ Ωέ#mpρπλqΠ6.Ώ3±΅q  Ξ†;‡[ΰπͺ\2™Ό/“Ιό,—ΛΥ}Σ o΄(ε2™ ]taϊ½χž¨=ηœmtκΪf€'ΐkj`κT‘™1CLL§ΛΉzυκw ΓΨ½rΐq€”TWW_½zυχ₯”ί±m» šΓ`™pμ‘pΚwΰΘƒ GGWΠ;a樃&‹CCά}\93©m‚Γ1�‰Ž`,_΅Š)“ήcν²ιsˆMΟΞ„b`ΗΥ©[H…š₯#ο΄ΞMΕ!²έΉˆΤ~Žό:Ռƒ#“§NgΕάrΪHGΕk; [ ΜZ έ Σ>ž™Œ= ώχ*θR?~wV:6¨΅9xδEψω*†Ύ KKKΟ―««›ΔnψFΑFΝΦ;ξψ³υΐ·|vΖkχάQF'ΐλλaΪ4œιΣΕ$ΗIξε—_z}Ψ°αN2Ή6Ÿ ‘ΉΉΛ²p‡^½zuX΅jΥ‰RΚΡ™LfΈ’Ψ›²χ„¨eΒAΰΈ#`Δ`ά)~©|­Kΰ<λ#ΒΔBΣ‰.xΕ£Ξ&㐰‘Ρΰ™Χ-φΪ#Γΐ=ΥAž�βτπ„j™D wφωk„+’kσq$]ώG5ήMτ¬t―xVJ^yιudέTN<ά ^Ω©θΨΊ8€πΦ Έώvψ`Vψωΰ}ΰϊKΰ„aŒψCξLtl ‡” πρ΅wόΉΧΑvτ:ΔΚT*uύώϋο·©S§nrΐ’έ°kΐFίκO<Α~pΑ3—]–9£Έx{4)ΰΝΝπώϋ0}Ίω^]Έν¬³Ύ7αo{,·ΫίώΰyΦtνΪ΅K]]έαυυυ§J)v§~  ¨UœVŽx‡ ΒA{Ci ˆfŽzΗ…@Ί‘+1š°•ήΛfSql Be"οΦ‚‚8�ŠAΟ»]eΓ`ϊτ™ωήk7¬Žž!Ξ‘§ c;ΰΐ„OΑΟώ―NV!›=0 8x \<NmJlαvνP: ΘπΖ{πΘsπςΔόhn†aΌŸH$~ήΨΨψΊ”r“#Xξ†]Z;τnϋΑΈΆC‡m³uΝϋ¦Mƒ3ΜOkkΏιίΏί 3fΜl€­m7l=ππ€” ><ύώϋοχO$#Ηωn6›ιNwΖ5υΩ½μΥFƒχ‡‘{A24£œσŒ° †xa[πyΤBr―qCΈP±3ΡΪL@žrΡBΎ8b6 ‡Ϊ^�ι^H+ΑΌΉσxϋ­w¨L-ΰˆƒlΪ»S˝–Ž€#gΒΔα·χΓήGσ7P°``_8v8Œ<ŽΨίUD›Ο Ν&mM:d0» 0g!Ότ6Lx >œ ΅‘ΝdB='‘HάVRR2~νΪ΅ίψΣΝvC>lT<ηr9£S§ŽguΤΪΗϋχί:‡΄θΡΰ̜™\°z΅ψΥ{τ~αΣO?«έό›�ΝΝΝΈ> Ζ©§žj̞=»ϋΒ… χŽ•Rްm»§”2ι2£`ΝΕΰ*K‘ΊƒϊCΒAϋΒΐήPRI€ΐ"tΙίήCX¨Η nΝŠ*�Q†*GώΗԚς_ί¦βhΘΒΫ5Ψ³·CΧφκp›¨oΓ–βΨtμ0R{nΑx~2άu?Μ]DAHZΠ₯tν {ο‘N λ^ ½»AΗ (M‘B6©ƒ ™¨i‚5΅°tΜ]sΎTΏ₯Λ`ιΚΰΰάo%gΖΧΐpΒ _<ϊθ£9Γ0ΎυΞΏίvΨθΫΟd2€Σ鑇Κ;Η³yŽqž�·mψτSœ)SΔΒ5kŒΫιτλΧ――ΨΥχ‚ο†MƒL&ƒad³Y,Λ2nΌρFλψC›N:ν½vνΪαΩlφ)εώ@Ή”2νN燴<!ΐPV •ε°wΨ·/μ΅ ξ Ϊ©i”Λυ…$Μρ΅zdœTˆ*Zrμg cκ WU°žέ8ΆŽ‰.…ϊ59ΠΠ‹—Γτ90η ˜1,‚υ΅Pί¨ŠΗπ8Giš Άm―—R~ τ·,«mΫ₯qcs ΐqsƒγ8+-Λz7™LN-..žΤΆmΫ}τQS2™tΗΩ=…Ύς`£½©©‰1cΞκύΥW―N5ͺ©=Ω,τ)τΟ?Όύ6 V―6ξμΪ΅λ½ός+λϋχοΏΫί …L&ƒišH) Γ0œσΞ;ΟzσΝ7KΗιΊbŊ‘%%%{577 „θ™ΝfΫ!Κ':½οI‘¨)Τ’”—Βέ ¨ξύzBοΞΠ JΛ 2©–€«'άΆ8οeύΤRykς“2$Λ ™€ίB~=~g+,„ΊΟδ`}κk`ω:˜ΏDYΈ‹Γη‹`α¨o‚Ζ&uF·ώώ5p„Ώ½{βΈγ�ώΩέσϊ€³}>YgσHμ΄ζ0y Ѝk‡@H"₯B(Κƒ?’Š’5"NΥVQΥJκ?‘ͺ* Qώ(’HJ„ HΤ•"&‰š†‡_αaΞΘΆγ{ψ|ΆοΞ»³3ύcoΓΥ„ΰπŒαχ‘VwΎ³ΟγΗνogζ7Ώαp_Ί§LΣμBΙησ‘HδΏΉ\nhυκΥcoΏύΆ΄m›3Ζ€γ8π ΨΆ )% Γΰœsωβ‹/κ�Μ>ψ@‡Γζ’E‹fφφφΞ<zτθeν†Γa±dΙ’ΤαΓ‡ΗcbεΚ•" ε·lΩ"”RάΆm©ihωΎ¦Π7lψ%ί·oΗW--²^ˆ‹?§ψMzκpθοK$ŒwkkλΆμέ»'S[[GW“δΊ°, Œ1θΊΫΆΑγX·nokk㍍w~ρΕw›¦Y722²PJΩΰσωͺ„A�3₯[λς’W—ΕA‡ζτ9*Λά ‚pΠ½Uα*`nW�ώΐ¬ΐ ?`κ€ΙέrΓ’])ψζ“z…—†^ œœΐχν]ΰοαr_g‰‹Φ=‚/ “€- ι!fΡq ;œOηRΐΠΧ@|H€έ AΜs{Μή<²,šΏΜ‘Χ»Νhš6dYΦ Οηλ4Mσ€a=υυυνŸώωΠƍεζΝ›e €”R†!”R 3d:›„‹R ₯₯μ_―ΎŠ•“kΊχ|ruΧ��ωIDATτ�‡a(ΣΆj+—Λ †§W› Ή&,Λ⚦AΣ4™ΟηΑγ½½½hkk lάΈqžeYu†a„ΚΛΛkΗΗΗλlΫu=˜Λε‚�ΒΈΜf½ή η…ιξN|3”Ο.}pξŽ”š@‰(1άς½Œ]xΣJ�JΊe;e‘* {+UΘ{gξλqp­θώδƒΉΟs0―έ…ϋ=ζ=Ξ/n{ρ­wx?σδη9Ώό}MsD8y’ΙφvvJνc!ΔvΛ²: Γ€”’ !h+ΉmMiLGΑ++«ΪGGγ+ΗΖΪΪxͺ§Gύ-˜υΦπpΊΟΫ‘LJ‡†‰Θ΄ασωΎH/ £z§ G»mۈΗγ�ά ΫΒάeSi)mρbΉjΩ2π™3έ@JωHWO)7pΫ6<{φ¬~p|άΩ1wξœύΡhoβΒˆξŸΛΛΏαœΛοxiBnyS:Y–…ššš{GGG³Ιd²Η4M άδΆ ₯D ψ‘mη0ΎσtS“ςWUΉ žΐ―ŽR€a�©ΠΥΕΠΥΕΟ ϋ>؎—_ώυ±Ν›lišFω6„L’)°m±X"‘εJ©ί†Γbύ£ͺͺ;ξ ψ•ςζΌ½˜2;¦ΔωσΎOΣiΉ½΄΄΄uώύύK—.•Ό Ή:tŠ"·-Ηq`Yκλλύ‰DόΉ@ΐϊ}c£¬kh�Χ΄’Ll2%ΕΑ{l θθ`’« ‰tΪ·Ϋ4gmXϋΐΐ@–φ[ δϊ ΣΉm2Ϊρΰƒ˜]]ݏ̚εΌ~ί}βώ₯K•ξσέψ�^œ±]œ4ζev~Ώ;§όCRΌΛ”ΐΉs ǎ©l,fK§νsηΞΫ³pα‚ώέ»χJ₯MΟrƒP@'·4₯ZZ^αΫΆm{ΐqΖώΨΠ V57+ί΅Nd›Ό•«w+₯»'A6 €ΣΙ$ηρ8²Ω¬‘ŽΕ¬t>―Ξ–”ψ;s9«7‰τ G‡†^[Ύ\ώbΩ2π›=Το]δ0ŒŽ_}Εdg'οO$΄ύΊ^ϊ^ ψρς΅΅΅°m›–}rQ@'·―M ¨"Ώι»œυΛ—ΓBL-8χœ½eSξk»9“art|pH&U&•ϊ‡‡Y‚s_T)td³ΩΎŠŠŠΞwί}ηl,v>ΏjΥ*άsΟ=RJ !„WΜJ)˜¦ιeΞ‡fΜΠv<ω€X΅`Aaνυ ζmŠδ8@?pό8ς]]όΘΔ>¬«»λ[·nM477Λ Y愐zW’iΝ Œ~Ώ?dYΦ†9sTKS“ ͟οpOρΊf!€‰ †‘`dD!•‚L$ΈΜdx"“ΡΞ N jšΦY^^qΖ²¬³?άΤ“ΛεϋZ[-ΗαJ)©”βRJιU »RΥΥΥσςω}O?»««―ς—1Eή‹¦Ή½ξ“''τ‘ή^φqyyΩΞΗ{μ“νΫ. UΠnL£!W:™v”RX³foϞ=λΚΛρ›ϋο—‘yσQ2™RblŒEm{F_2™ο ƒ'“ΙΤ !DssΣΩ7ήx#΅xρ8Ž#KJJ ₯„γ87zΈψ‘šμzζΤΧο›xCζœ±ΠΡΑδ™3όH:Νwϊύ₯»S©α¨RJJ)iΈœiŽ:™vZZZΠΪΪzg$IμΪ΅kLJΙmΫ†a²°™ΠΝnβ·J&¨¬ ­©―ΗΆ΅k0Œk?‡―λ@>tw,;0 οΞηεϋO=υ³ƒ~ψQ†’ΤΉuQ@'δ:²m 6πX,φ»{οΝΏώψγnΉΨ+ δΕσϋš|ύ5pτ(§O«žρρχ�ΆϋΝ7zjύϊ Βq¨r#!· θ„\J)ΤΤΤψβρwV¬ΐ Λ–ί­‡‹ΧuOL�§O3?ΞRρΈρΙψΈάQS3ϋ`4MQ’! €NΘ5‰DBƒƒ=;ŸxB<‰Lmy\ρŽ…Ι$ΠήΞ¬ξnDGG΅χKJόllόIΟή½[RJH)QRRrc~BΘ΄Ak 0‡©¨ΐgŸECUΥ₯ ΥxΛΓr9 ―αΛ/UjpΠό4“™ΨV_γΦM›6e_zιWξΎTQ2EΠ Ή Ÿ}φϊpu΅Ψωάs¨ςϋ/<W\”%Ί»™μθΰ§2ύ£²²ΐϋϋφνλ^΄h±€ynBΘ΅@+ „@eeε ³ggήZ»VΝτφμΆ, e²½]ε£Q~1σ½²²²ύηΟχ§ dnvΣ !„Ϋ›R GŽηψSc#μW^Z±ΞμΩΌWΧω_ͺ««zώωgu!·,λf7—B!“ ! …~λϊ`0ψB0œsβΔ H)111q³›G!ψ²j°!ε¦����IENDB`‚��������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/heading_slug_func/�����������������������������������0000775�0000000�0000000�00000000000�14654155362�0025154�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/heading_slug_func/conf.py����������������������������0000664�0000000�0000000�00000000276�14654155362�0026460�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������from docutils.nodes import make_id extensions = ["myst_parser"] exclude_patterns = ["_build"] suppress_warnings = ["config.cache"] myst_heading_anchors = 2 myst_heading_slug_func = make_id ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/heading_slug_func/index.md���������������������������0000664�0000000�0000000�00000000031�14654155362�0026577�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Hyphen - 1 ## Dot 1.1 �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/include_from_rst/������������������������������������0000775�0000000�0000000�00000000000�14654155362�0025046�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/include_from_rst/conf.py�����������������������������0000664�0000000�0000000�00000000111�14654155362�0026336�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������extensions = ["myst_parser"] exclude_patterns = ["_build", "include.md"] �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/include_from_rst/include.md��������������������������0000664�0000000�0000000�00000000064�14654155362�0027013�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Markdown [target] [target]: http://example.com/ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/include_from_rst/index.rst���������������������������0000664�0000000�0000000�00000000106�14654155362�0026704�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Title ===== .. include:: include.md :parser: myst_parser.sphinx_ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/includes/��������������������������������������������0000775�0000000�0000000�00000000000�14654155362�0023316�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/includes/conf.py�������������������������������������0000664�0000000�0000000�00000000126�14654155362�0024614�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������extensions = ["myst_parser"] exclude_patterns = ["_build", "*.inc.md", "**/*.inc.md"] ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/includes/example1.jpg��������������������������������0000664�0000000�0000000�00000160761�14654155362�0025547�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ΨαzExif��MM�*������������������b�������j(�������1����$���r2�������–‡i�������¬���Ψ� ό€��'� ό€��'Adobe Photoshop CC 2015 (Macintosh)�2015:12:17 10:59:45���� ������ ������r �������ώ��������������������&������.(�������������6������<�������H������H���Ψν� Adobe_CM�ξ�Adobe�d€���Ϋ�„�            ΐ��n� "�έ�� Δ?���������� ��������� � 3�!1AQa"q2‘‘±B#$RΑb34r‚ΡC%’Sπαρcs5’²ƒ&D“TdEΒ£t6Uβeς³„ΓΣuγσF'”€…΄•ΔΤδτ₯΅ΕΥευVfv†–¦ΆΖΦζφ7GWgw‡—§·ΗΧηχ�5�!1AQaq"2‘‘±B#ΑRΡπ3$bαr‚’CScs4ρ%’²ƒ&5ΒD“T£dEU6teβς³„ΓΣuγσF”€…΄•ΔΤδτ₯΅ΕΥευVfv†–¦ΆΖΦζφ'7GWgw‡—§·ΗΪ� ��?�λBIBpͺΆO $…'H'„’΄$₯ $₯‘:p 0“ cgύcͺ«€ΦδZΣ΅χjk‡e{€=ΏξτγRL!)šˆ·a%ΟWŸΤνΥωL `ϋ˜»Nv[@άοTwδΫξCˆ2KΗP]DΠ£MΜΉ›› €ΣΘ*i14,RR„ΠŠ–L$”²e$Ι)Π듦 ΥVΒι$%( œ¬lJΕΉV²†8ΓKΜn#σkhχΩύ† υ>£WMΒ~UήωΡLΗ©kΎ…sϋžίRη�‘bζjmΩWœ¬Η›²,ΠΨt�vΆύjoζTΔ™qa3Ԛˆό|žƒφοO'ΩκΌ~πώζ?ώг‰’ΰΚlΓΕn―?ΥkΎŸύmbγUKλkλx{_«^Ψ- χoD» ΆVAα«O«KOζΉ7‹Uη=#Ε7֎‘f& 1¨qeωΕΜή9m-΄9ΏΊϋw²†ΧWzΧMιχ7ϋ₯°XΩmcωzόzΉΤ3ςϊνu§τψ΅Œag;œcώΠ怨ΟQΏΏZ‘GΥΌWRϊl.uχΟΣέΞοόΕM υώ ‚1ΐF<Z™Hνα§‘υz^±s[Xnσa#nΨέΏwΡΩ·σ”:oΦN‡Τ3~Íq}ίΰάζ²Γ«‹){½Ξ³hόφWκ�υΖϊ½‡“*ιy΅ψμ ΑΫ\ν§swέώB~«υ_ό*¨Α ΑΏ ‡ΰάΐf·ƒκ{έ­–1Φ{μό�Sτͺ01λdο‘θ?¬³$€M ώ_’νΣ ½›>X~νΝ�€Υme۟F]^³ Φ΄I0>‹ό»νQZΘ²M56¦ΊlvΏζ3ώŠlNŒrΕ9@·u’Y΄υ Γ«Γ,·ρb»FK/cΫτ«w ~σOη± % GΑ"e"™«&N™%?Ρλ‚’„©U°Ίp”)04ΈhΩχωΙ!δΎ²e›ϊΫqZfΌ Γcώΰ.Έ�[ϋ=K/λOΩϊ-ΒNλ@© (ϋΏπ6½66K³2/Ο³C•kξ?ΈΊΆ�e›^_Υξ§ϊ­χΡhΧiΩξΫ·Υτχ�a< 4H]7ˆΔ!b$āύβκtj~Ιq£ͺ†Έ�›λ;ώ©κ…Χδt&δ_c­²ϋy/$Δ»ΪΖΟζ-‘C/₯ΥΔ΅ν-;uΓn…ͺ?§cτΌ 0qΓ…η™q$›η»Ϋξάυ1•ό �Ά"u�±_βπΌv]_FsjvΛ,΅νk†‘�1\ύyέ[ΟGΦΊ‡πnχμϊ»Ϊζ�UuΈ-υkžwZχ}ξrΧ=7&±^EL΅£³Ϊ―’–9„.2dζqρDŒd4Ρδ1ώΈuκ€Κ^�αυ4ΟΞ§VŠί­ίZ3/Έb§\γ΅R7YΞ΅ΦΆΆ·σμΠ]/όΨθÎsαξϋMί΅Κ�Ωq0qφcTΚ+h>ΪΪ4ώ―ώΪ'6.˜ΕψMxγλ3τέζ³z§Ω©ΚΟΘΫe¬-₯l†ΉΝNΙϊ5ϊΎ­Ÿρh}λUύA˜}CTrFϊΩΔ΅kχ{]΅fuG‘Σ±―-ήΖά,{O}BέίΙάS}[n_TλΨω7υα»Τ{ΐ­€οJ–ΗοΨολ§ qφδHο―jωYsΞC(€'τ} ~ιw­Λλ]G­δτή—”άπkkίnΐχXχmΪ͟Ρξwώ¬ZWϊ^oΪ1³ͺn?Vι― Ό3F8;w§c[ω»φΉ–³θ7eΞl―λGΥξ£λέΥ:fχ·%™”U"Θho½­aέuvlg©S=κΟԎ—ŠΜ¬ΜʟIΙmuΤΫdXζ°ΉΞs˜�}uώη©ο³ϊ‰’8¬΄kχψ�I‹ˆρUΏέαθφmp{Zφπα#ζ’#§§ΐΌ}Ξr*‰ŒθHμ²dι‘Sλ‘8 $ͺ³² —]Ι8½>πaβ‡1‡ωvΖ3?ι\…υβ�O£SDλ••[HρmM~CΏπFŒEΊ"εβσέ-›j hϊ"ε³±~Ο™~3Ϋ%£±k½μ#ω;WgšΡψ+Ή½©VΡ’ΒΑ챇kΫ<ί»ό‡©!˜Bfφ-fqb6|ώ½­ac!#έΆGΙvΏS0mΕιYŽk˜άΗΠΗk`;-ΫτKcίι»σιFΑϊ™Ρ¨°Yc’F‘·;s4γ}- e›–ΆσIf%†uΨLό’ΟΜ Η†7δ°bΔc!dš<ηDΨ΄“άIω­Φϋ@π ’Z>ΝD~γ"ά{΄C ψUησή]d±ΐΜ u7Ɲ½₯&<�7K|œ!Tλy!ΈvkΛ{!ΐ[ϊΗ›‰ΣΛπ™Ukši+¦cγΡHe k+@d?τVG%΄Rx–5¬~₯2,Θι՜ΌΙ²μ=Ε―cΟΉΦb½ίwϊ%4…’.»±]—`kqΣw―₯ΓgΓ…Q[Ξ±gH_}4ύ’ηˆΪΟs*ό+½VΨ±GΧ!hϋ7OΐΘPΆΊξhkγ }›IsΨΧ&ΏψK+Z]‘ώΙΖ΅χv~S™wς\βwϊmwϊ=Ηόji‡<ZΡ΅«ΧGkωˆπ{Ώ,�d 3μ°x:~ρ�˜£ 6 rωŠΕ2r’(ΣλI:ͺΨ\.Kόa_±έ"’`=Ω/ω΅Έμoύ[—Zώ2*³'/§SWΣͺ‹mΗΣ±¬�Ρ ψΎq~?’…Ψ1F¬ΊcšΧ Gu’ώ±Σ±ς±πξ½­ΙΙ U^¦I;YΉΝ΅οwΆΏQpΈέc¨`UυΛƒNΝΒ ώit{^Ε»υ;.Ϋ:žFHΙκn.q¨–ΉΥ΄ϋ=GUτ·~oϊ:*ύ90Χ€tιΓΥ²sΖdΏιq~ˆ�Ύ{ΈH<!u ά ¬:†ΦγψfRΠΠˆψB£υ†·~ΙΛΨγ₯/ππρUΐΤyͺ5Δ<ά>‹„αP‘£€φ]Xΐ0F֟ ‰Yύ2Kς@ ΅xΞD“lΉdn»2mV —|–7Φcφc±Σ‘5[γ^Vo[ͺ<y jAf2xÁκ΄y4~ ££VΆtπs£ΈJΗ„ώR·±μφ†ƒ¨‚vO˜ω²ΟX'R·kΜΟ!ΩΕηύpΝιyοΗΏ§Hqτ^l-uα+%«έϋŠφ?Χξ†ϊœϋΫ‘Žφ7vΗ0?qύΚν©Ξgύ½θ#μδ Dlή¦€₯"υύ?τžŸΝυ­}ΫXψς—²U•ΝύSΙκG33¬eΣφj2©¬ O"–=ΦΊΧqΏΤ}ŸΞ�…�ϊMt‰W˜€lίu’N™%?ΤλΣ„Α:ͺΞΘ.7λCύO¬‘Ÿθ1hgΝζΫ�τkWbΩ:NpYΩ+λQΘn¬9¦VάV�η”θυςfΐ.G7λ&3έ…]¬*tΩδΫ?Ωr'՟«ψJͺσ}|Šo‘εΆ \C‡ΠuVνυ+ήΓΉoU‰VE.ΐ]-sOptr΅ΠΊF?IΓ8Τ?s½Kσξ.:WkX‰ΝXΜA"Wψ/Ɍ{œZ6?Όλ°žόͺ}vbζΗϊώEq€B§Χδlίψ‡�Τ•^;4GζaΝιΏΝ3ΘZ`χνΒΚι“'ΐ-FόQ;–lŸ1l4φYύ`N3njώEwΤ�Δς¨uƒΈ?‘(ξCη5Ežƒ uœ#Ώw‚ά Z<@.3�Edτ_s�Ꜻ*=±Ψr!I”ϊ›1—€yϊΡΤ_CjΒe&윭XΧ³{@ΟΡΤζΉφ_»θ,Z:^GOκέ9Ήυ†6Λ(ΊΖZ[£nΝ–Uξχ{}μ^…φzΜ‡ΦΓmsιΨZ Ϋ?OΣ°ϋ™»ω+#λΥ›:ΎN6N3ΫUΜsYsήN΅o–7θϊ•8½ίπͺLY’�τƒ|Rje‰‘βή«†?›Σ2Fσ$‡4όbοͺͺ_ϊv?‰°iύc·ώό¬• vY=ώŠL’dε―Υλ‚p˜'UYΦΏ%ΈxΧf;θβΤϋύm°jσŽΓ°oΥηW3«�ι.ΫλA΄}\κ“w[EžUΧφ‹?³VεΗtΈίσΧΑ>?,›<Άδ½FΦΖƒΑ^©β}ώ½•©vή'U\―žν†:UN·―GΞ�ˆ³ώ€£Τ]OΘͺυ²�Ω9°4τ,�©(Ηqζ°PσsΊ{@©šžZηƒΖΊ¬Ξžl5³HΠDλΩ^w­"#̝?&τeΉgΘ5έ΅Q?ΕQλDŠ<AσE§νAΔ§Y?άͺυƒ`Ζt‰1―�2J?0[S‡ :):πχϊRΊZ\Ή~‡»c£ύ#�*ι±ghžσ|ΗΝ'䏐nΆ?Ή‚uξͺΦN㦊ΛIž<9Q0ɝš4;χK]χUη OΕQΆ=7nΠAŸΉ]΄nΡΠ$yΖ©ΡκΕ>‹ΚE2zΗΩνΪPhotoshop 3.0�8BIM�����?Z�%GZ�%GZ�%GZ�%GZ�%GZ�%GZ�%G�����8BIM%�����iΩΰυκρ©s $(X8BIM:�����ε����������� printOutput�������PstSbool����Inteenum����Inte����Clrm���printSixteenBitbool���� printerNameTEXT��������printProofSetupObjc��� �P�r�o�o�f� �S�e�t�u�p����� proofSetup�������Bltnenum��� builtinProof��� proofCMYK�8BIM;����-�����������printOutputOptions�������Cptnbool�����Clbrbool�����RgsMbool�����CrnCbool�����CntCbool�����Lblsbool�����Ngtvbool�����EmlDbool�����Intrbool�����BckgObjc���������RGBC�������Rd doub@oΰ���������Grn doub@oΰ���������Bl doub@oΰ���������BrdTUntF#Rlt������������Bld UntF#Rlt������������RsltUntF#Pxl@R��������� vectorDatabool����PgPsenum����PgPs����PgPC����LeftUntF#Rlt������������Top UntF#Rlt������������Scl UntF#Prc@Y���������cropWhenPrintingbool����cropRectBottomlong������� cropRectLeftlong������� cropRectRightlong������� cropRectToplong�����8BIMν������H�����H����8BIM&���������������?€��8BIM ��������8BIM��������8BIMσ����� ���������8BIM'����� ��������8BIMυ�����H�/ff��lff�������/ff��‘™š�������2����Z���������5����-��������8BIMψ�����p��θ����θ����θ����θ��8BIM�������)8BIM�����†��������������������������������������������������������������������������������������������������������������������������������������8BIM0�����C�8BIM-���������68BIM�����L�����@��@��� ������B�œ����"@��ΐΚ@�Ξ��ό@��������.@�Η€ύ€8BIM���������8BIM����c��������������ώ��r����1�2�.�1�5�-�h�o�m�e�p�a�g�e�-�c�u�r�a�t�i�o�n��������������������������������r���ώ��������������������������������������������null������boundsObjc���������Rct1�������Top long��������Leftlong��������Btomlong���ώ����Rghtlong��r���slicesVlLs���Objc��������slice������sliceIDlong�������groupIDlong�������originenum��� ESliceOrigin��� autoGenerated����Typeenum��� ESliceType����Img ���boundsObjc���������Rct1�������Top long��������Leftlong��������Btomlong���ώ����Rghtlong��r���urlTEXT���������nullTEXT���������MsgeTEXT��������altTagTEXT��������cellTextIsHTMLbool���cellTextTEXT�������� horzAlignenum���ESliceHorzAlign���default��� vertAlignenum���ESliceVertAlign���default��� bgColorTypeenum���ESliceBGColorType����None��� topOutsetlong������� leftOutsetlong������� bottomOutsetlong������� rightOutsetlong�����8BIM(����� ���?π������8BIM��������Χ8BIM ����X������ ���n��ΰ��Ξ@��<��Ψν� Adobe_CM�ξ�Adobe�d€���Ϋ�„�            ΐ��n� "�έ�� Δ?���������� ��������� � 3�!1AQa"q2‘‘±B#$RΑb34r‚ΡC%’Sπαρcs5’²ƒ&D“TdEΒ£t6Uβeς³„ΓΣuγσF'”€…΄•ΔΤδτ₯΅ΕΥευVfv†–¦ΆΖΦζφ7GWgw‡—§·ΗΧηχ�5�!1AQaq"2‘‘±B#ΑRΡπ3$bαr‚’CScs4ρ%’²ƒ&5ΒD“T£dEU6teβς³„ΓΣuγσF”€…΄•ΔΤδτ₯΅ΕΥευVfv†–¦ΆΖΦζφ'7GWgw‡—§·ΗΪ� ��?�λBIBpͺΆO $…'H'„’΄$₯ $₯‘:p 0“ cgύcͺ«€ΦδZΣ΅χjk‡e{€=ΏξτγRL!)šˆ·a%ΟWŸΤνΥωL `ϋ˜»Nv[@άοTwδΫξCˆ2KΗP]DΠ£MΜΉ›› €ΣΘ*i14,RR„ΠŠ–L$”²e$Ι)Π듦 ΥVΒι$%( œ¬lJΕΉV²†8ΓKΜn#σkhχΩύ† υ>£WMΒ~UήωΡLΗ©kΎ…sϋžίRη�‘bζjmΩWœ¬Η›²,ΠΨt�vΆύjoζTΔ™qa3Ԛˆό|žƒφοO'ΩκΌ~πώζ?ώг‰’ΰΚlΓΕn―?ΥkΎŸύmbγUKλkλx{_«^Ψ- χoD» ΆVAα«O«KOζΉ7‹Uη=#Ε7֎‘f& 1¨qeωΕΜή9m-΄9ΏΊϋw²†ΧWzΧMιχ7ϋ₯°XΩmcωzόzΉΤ3ςϊνu§τψ΅Œag;œcώΠ怨ΟQΏΏZ‘GΥΌWRϊl.uχΟΣέΞοόΕM υώ ‚1ΐF<Z™Hνα§‘υz^±s[Xnσa#nΨέΏwΡΩ·σ”:oΦN‡Τ3~Íq}ίΰάζ²Γ«‹){½Ξ³hόφWκ�υΖϊ½‡“*ιy΅ψμ ΑΫ\ν§swέώB~«υ_ό*¨Α ΑΏ ‡ΰάΐf·ƒκ{έ­–1Φ{μό�Sτͺ01λdο‘θ?¬³$€M ώ_’νΣ ½›>X~νΝ�€Υme۟F]^³ Φ΄I0>‹ό»νQZΘ²M56¦ΊlvΏζ3ώŠlNŒrΕ9@·u’Y΄υ Γ«Γ,·ρb»FK/cΫτ«w ~σOη± % GΑ"e"™«&N™%?Ρλ‚’„©U°Ίp”)04ΈhΩχωΙ!δΎ²e›ϊΫqZfΌ Γcώΰ.Έ�[ϋ=K/λOΩϊ-ΒNλ@© (ϋΏπ6½66K³2/Ο³C•kξ?ΈΊΆ�e›^_Υξ§ϊ­χΡhΧiΩξΫ·Υτχ�a< 4H]7ˆΔ!b$āύβκtj~Ιq£ͺ†Έ�›λ;ώ©κ…Χδt&δ_c­²ϋy/$Δ»ΪΖΟζ-‘C/₯ΥΔ΅ν-;uΓn…ͺ?§cτΌ 0qΓ…η™q$›η»Ϋξάυ1•ό �Ά"u�±_βπΌv]_FsjvΛ,΅νk†‘�1\ύyέ[ΟGΦΊ‡πnχμϊ»Ϊζ�UuΈ-υkžwZχ}ξrΧ=7&±^EL΅£³Ϊ―’–9„.2dζqρDŒd4Ρδ1ώΈuκ€Κ^�αυ4ΟΞ§VŠί­ίZ3/Έb§\γ΅R7YΞ΅ΦΆΆ·σμΠ]/όΨθÎsαξϋMί΅Κ�Ωq0qφcTΚ+h>ΪΪ4ώ―ώΪ'6.˜ΕψMxγλ3τέζ³z§Ω©ΚΟΘΫe¬-₯l†ΉΝNΙϊ5ϊΎ­Ÿρh}λUύA˜}CTrFϊΩΔ΅kχ{]΅fuG‘Σ±―-ήΖά,{O}BέίΙάS}[n_TλΨω7υα»Τ{ΐ­€οJ–ΗοΨολ§ qφδHο―jωYsΞC(€'τ} ~ιw­Λλ]G­δτή—”άπkkίnΐχXχmΪ͟Ρξwώ¬ZWϊ^oΪ1³ͺn?Vι― Ό3F8;w§c[ω»φΉ–³θ7eΞl―λGΥξ£λέΥ:fχ·%™”U"Θho½­aέuvlg©S=κΟԎ—ŠΜ¬ΜʟIΙmuΤΫdXζ°ΉΞs˜�}uώη©ο³ϊ‰’8¬΄kχψ�I‹ˆρUΏέαθφmp{Zφπα#ζ’#§§ΐΌ}Ξr*‰ŒθHμ²dι‘Sλ‘8 $ͺ³² —]Ι8½>πaβ‡1‡ωvΖ3?ι\…υβ�O£SDλ••[HρmM~CΏπFŒEΊ"εβσέ-›j hϊ"ε³±~Ο™~3Ϋ%£±k½μ#ω;WgšΡψ+Ή½©VΡ’ΒΑ챇kΫ<ί»ό‡©!˜Bfφ-fqb6|ώ½­ac!#έΆGΙvΏS0mΕιYŽk˜άΗΠΗk`;-ΫτKcίι»σιFΑϊ™Ρ¨°Yc’F‘·;s4γ}- e›–ΆσIf%†uΨLό’ΟΜ Η†7δ°bΔc!dš<ηDΨ΄“άIω­Φϋ@π ’Z>ΝD~γ"ά{΄C ψUησή]d±ΐΜ u7Ɲ½₯&<�7K|œ!Tλy!ΈvkΛ{!ΐ[ϊΗ›‰ΣΛπ™Ukši+¦cγΡHe k+@d?τVG%΄Rx–5¬~₯2,Θι՜ΌΙ²μ=Ε―cΟΉΦb½ίwϊ%4…’.»±]—`kqΣw―₯ΓgΓ…Q[Ξ±gH_}4ύ’ηˆΪΟs*ό+½VΨ±GΧ!hϋ7OΐΘPΆΊξhkγ }›IsΨΧ&ΏψK+Z]‘ώΙΖ΅χv~S™wς\βwϊmwϊ=Ηόji‡<ZΡ΅«ΧGkωˆπ{Ώ,�d 3μ°x:~ρ�˜£ 6 rωŠΕ2r’(ΣλI:ͺΨ\.Kόa_±έ"’`=Ω/ω΅Έμoύ[—Zώ2*³'/§SWΣͺ‹mΗΣ±¬�Ρ ψΎq~?’…Ψ1F¬ΊcšΧ Gu’ώ±Σ±ς±πξ½­ΙΙ U^¦I;YΉΝ΅οwΆΏQpΈέc¨`UυΛƒNΝΒ ώit{^Ε»υ;.Ϋ:žFHΙκn.q¨–ΉΥ΄ϋ=GUτ·~oϊ:*ύ90Χ€tιΓΥ²sΖdΏιq~ˆ�Ύ{ΈH<!u ά ¬:†ΦγψfRΠΠˆψB£υ†·~ΙΛΨγ₯/ππρUΐΤyͺ5Δ<ά>‹„αP‘£€φ]Xΐ0F֟ ‰Yύ2Kς@ ΅xΞD“lΉdn»2mV —|–7Φcφc±Σ‘5[γ^Vo[ͺ<y jAf2xÁκ΄y4~ ££VΆtπs£ΈJΗ„ώR·±μφ†ƒ¨‚vO˜ω²ΟX'R·kΜΟ!ΩΕηύpΝιyοΗΏ§Hqτ^l-uα+%«έϋŠφ?Χξ†ϊœϋΫ‘Žφ7vΗ0?qύΚν©Ξgύ½θ#μδ Dlή¦€₯"υύ?τžŸΝυ­}ΫXψς—²U•ΝύSΙκG33¬eΣφj2©¬ O"–=ΦΊΧqΏΤ}ŸΞ�…�ϊMt‰W˜€lίu’N™%?ΤλΣ„Α:ͺΞΘ.7λCύO¬‘Ÿθ1hgΝζΫ�τkWbΩ:NpYΩ+λQΘn¬9¦VάV�η”θυςfΐ.G7λ&3έ…]¬*tΩδΫ?Ωr'՟«ψJͺσ}|Šo‘εΆ \C‡ΠuVνυ+ήΓΉoU‰VE.ΐ]-sOptr΅ΠΊF?IΓ8Τ?s½Kσξ.:WkX‰ΝXΜA"Wψ/Ɍ{œZ6?Όλ°žόͺ}vbζΗϊώEq€B§Χδlίψ‡�Τ•^;4GζaΝιΏΝ3ΘZ`χνΒΚι“'ΐ-FόQ;–lŸ1l4φYύ`N3njώEwΤ�Δς¨uƒΈ?‘(ξCη5Ežƒ uœ#Ώw‚ά Z<@.3�Edτ_s�Ꜻ*=±Ψr!I”ϊ›1—€yϊΡΤ_CjΒe&윭XΧ³{@ΟΡΤζΉφ_»θ,Z:^GOκέ9Ήυ†6Λ(ΊΖZ[£nΝ–Uξχ{}μ^…φzΜ‡ΦΓmsιΨZ Ϋ?OΣ°ϋ™»ω+#λΥ›:ΎN6N3ΫUΜsYsήN΅o–7θϊ•8½ίπͺLY’�τƒ|Rje‰‘βή«†?›Σ2Fσ$‡4όbοͺͺ_ϊv?‰°iύc·ώό¬• vY=ώŠL’dε―Υλ‚p˜'UYΦΏ%ΈxΧf;θβΤϋύm°jσŽΓ°oΥηW3«�ι.ΫλA΄}\κ“w[EžUΧφ‹?³VεΗtΈίσΧΑ>?,›<Άδ½FΦΖƒΑ^©β}ώ½•©vή'U\―žν†:UN·―GΞ�ˆ³ώ€£Τ]OΘͺυ²�Ω9°4τ,�©(Ηqζ°PσsΊ{@©šžZηƒΖΊ¬Ξžl5³HΠDλΩ^w­"#̝?&τeΉgΘ5έ΅Q?ΕQλDŠ<AσE§νAΔ§Y?άͺυƒ`Ζt‰1―�2J?0[S‡ :):πχϊRΊZ\Ή~‡»c£ύ#�*ι±ghžσ|ΗΝ'䏐nΆ?Ή‚uξͺΦN㦊ΛIž<9Q0ɝš4;χK]χUη OΕQΆ=7nΠAŸΉ]΄nΡΠ$yΖ©ΡκΕ>‹ΚE2zΗΩ8BIM!�����]�������A�d�o�b�e� �P�h�o�t�o�s�h�o�p����A�d�o�b�e� �P�h�o�t�o�s�h�o�p� �C�C� �2�0�1�5����8BIM����������αηhttp://ns.adobe.com/xap/1.0/�<?xpacket begin="ο»Ώ" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c067 79.157747, 2015/03/30-23:40:42 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreateDate="2015-10-08T12:38:11-04:00" xmp:ModifyDate="2015-12-17T10:59:45-05:00" xmp:MetadataDate="2015-12-17T10:59:45-05:00" xmp:CreatorTool="Adobe Photoshop CC 2015 (Macintosh)" dc:format="image/jpeg" photoshop:ColorMode="3" photoshop:ICCProfile="VA2703 Series Calibrated" xmpMM:InstanceID="xmp.iid:e2bd0b59-56b1-43bf-b7e2-32743b1a93c0" xmpMM:DocumentID="adobe:docid:photoshop:961aeea4-e565-1178-84a1-ef55e5ef95af" xmpMM:OriginalDocumentID="xmp.did:6524ee62-4040-4486-9730-cc482d0b6dc4"> <photoshop:TextLayers> <rdf:Bag> <rdf:li photoshop:LayerName="Popular Illustration Categories" photoshop:LayerText="Popular Illustration Categories"/> <rdf:li photoshop:LayerName="Popular Vector Categories" photoshop:LayerText="Popular Vector Categories"/> <rdf:li photoshop:LayerName="Popular Photo Categories" photoshop:LayerText="Popular Photo Categories"/> <rdf:li photoshop:LayerName="Bigstock Picks" photoshop:LayerText="Bigstock Picks"/> <rdf:li photoshop:LayerName="Winter Collection" photoshop:LayerText="Winter Collection"/> <rdf:li photoshop:LayerName="Bigstock Video" photoshop:LayerText="Bigstock Video"/> <rdf:li photoshop:LayerName="Images and Video for everyone." photoshop:LayerText="Images and Video for everyone."/> <rdf:li photoshop:LayerName="Over 30 million stock photos, videos, and vectors." photoshop:LayerText="Over 30 million stock photos, videos, and vectors."/> </rdf:Bag> </photoshop:TextLayers> <photoshop:DocumentAncestors> <rdf:Bag> <rdf:li>2338B8E41274008A90C8BD2547960BB3</rdf:li> <rdf:li>2DE4406C10B73422B4EE6D8B0D325FA8</rdf:li> <rdf:li>3197650EE93F798D6A2BAF21AD62272B</rdf:li> <rdf:li>3F298132EF5DF7BD1E7E79C525C0CA86</rdf:li> <rdf:li>5AAA046F1BED5507B4FE582ED12591A4</rdf:li> <rdf:li>65653AF10A51D90FA07ECE63326084AA</rdf:li> <rdf:li>76E417E5E4017D78582B791B963C9F3B</rdf:li> <rdf:li>8F4003C1E5318DE635C83490D514830A</rdf:li> <rdf:li>A1474CB5A10E36D46870F0446E07D3E0</rdf:li> <rdf:li>A4D5D3C7397850DFFCA8C636A6D2AA9E</rdf:li> <rdf:li>A81867ADB2D20376CAF23C6C4455A61F</rdf:li> <rdf:li>C309326AF2D2E3A15A8A224EE0246442</rdf:li> <rdf:li>C4AABDD571F96E9245AF3255DACBE902</rdf:li> <rdf:li>C597FDD2DF29CEE3A08906DEF8235FA3</rdf:li> <rdf:li>D0E41193D0D87ABF69D3A27435FD9CE6</rdf:li> <rdf:li>D493B382008DD02005894F84AB8ACDA5</rdf:li> <rdf:li>DB1AC9D26B1F40C9A5A11B7A6ADC3A12</rdf:li> <rdf:li>E64E952ACE29002EB68F1BCD01B8911B</rdf:li> <rdf:li>E6885685CBDF2324E71158BF2176E1FE</rdf:li> <rdf:li>F5E7577A6B3A341A51CAAAC5E3A59B11</rdf:li> <rdf:li>FD1D7E31C7512BE0A891CDAA5C77DE95</rdf:li> <rdf:li>xmp.did:64946cb8-411a-4b00-9961-c82dffc5464c</rdf:li> </rdf:Bag> </photoshop:DocumentAncestors> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:6524ee62-4040-4486-9730-cc482d0b6dc4" stEvt:when="2015-10-30T14:26:35-04:00" stEvt:softwareAgent="Adobe Photoshop CC 2015 (Macintosh)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvt:parameters="from image/png to application/vnd.adobe.photoshop"/> <rdf:li stEvt:action="derived" stEvt:parameters="converted from image/png to application/vnd.adobe.photoshop"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:64946cb8-411a-4b00-9961-c82dffc5464c" stEvt:when="2015-10-30T14:26:35-04:00" stEvt:softwareAgent="Adobe Photoshop CC 2015 (Macintosh)" stEvt:changed="/"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:6344f71c-48bd-40e8-aa3f-f72a106bce9a" stEvt:when="2015-12-17T10:59:45-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2015 (Macintosh)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvt:parameters="from application/vnd.adobe.photoshop to image/jpeg"/> <rdf:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/jpeg"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:e2bd0b59-56b1-43bf-b7e2-32743b1a93c0" stEvt:when="2015-12-17T10:59:45-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2015 (Macintosh)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:6344f71c-48bd-40e8-aa3f-f72a106bce9a" stRef:documentID="adobe:docid:photoshop:ca754c60-bfc0-1178-b80c-e5ac2abee428" stRef:originalDocumentID="xmp.did:6524ee62-4040-4486-9730-cc482d0b6dc4"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="w"?>β)hICC_PROFILE���)Xappl��mntrRGB XYZ ί� � ���acspAPPL��������������������������φΦ�����Σ-appl�����������������������������������������������desc��P���sdscm��Δ���Lcprt�����#wtpt��4���rXYZ��H���gXYZ��\���bXYZ��p���rTRC��„�� aarg�� ��� vcgt�� °��ndin��Δ��>chad��)���,mmod��)0���(bTRC��„�� gTRC��„�� aabg�� ��� aagg�� ��� desc�������VA2703 Series Calibrated��������������������������������������������������������������������������������mluc���������� enUS���0����V�A�2�7�0�3� �S�e�r�i�e�s� �C�a�l�i�b�r�a�t�e�dtext����Copyright Apple Inc., 2015��XYZ ������σΨ����XYZ ������l��8©��—XYZ ������b6��·r��XYZ ������(‘��ε��Ύ—curv����������� �����#�(�-�2�6�;�@�E�J�O�T�Y�^�c�h�m�r�w�|��†�‹��•�š�Ÿ�£�¨�­�²�·�Ό�Α�Ζ�Λ�Π�Υ�Ϋ�ΰ�ε�λ�π�φ�ϋ %+28>ELRY`gnu|ƒ‹’š‘©±ΉΑΙΡΩαιςϊ &/8AKT]gqz„Ž˜’¬ΆΑΛΥΰλυ� !-8COZfr~Š–’ΊΗΣΰμω -;HUcq~Œš¨ΆΔΣαπώ +:IXgw†–¦΅ΕΥεφ'7HYj{Œ―ΐΡγυ+=Oat†™¬Ώεψ 2FZn‚–ͺΎηϋ  % : O d y  € Ί Ο ε ϋ  ' = T j  ˜ Ε ά σ " 9 Q i € ˜ ° Θ α ω  * C \ u Ž § ΐ Ω σ & @ Z t Ž © Γ ή ψ.Id›Άξ %A^z–³Ομ &Ca~›ΉΧυ1OmŒͺΙθ&Ed„£Γγ#Ccƒ€Εε'Ij‹­Ξπ4Vx›½ΰ&Il²ΦϊAe‰χ@eŠ―Υϊ Ek‘·έ*QwžΕμ;cвΪ*R{£ΜυGp™Γμ@j”Ύι>i”Ώκ  A l ˜ Δ π!!H!u!‘!Ξ!ϋ"'"U"‚"―"έ# #8#f#”#Β#π$$M$|$«$Ϊ% %8%h%—%Η%χ&'&W&‡&·&θ''I'z'«'ά( (?(q(’(Τ))8)k))Π**5*h*›*Ο++6+i++Ρ,,9,n,’,Χ- -A-v-«-α..L.‚.·.ξ/$/Z/‘/Η/ώ050l0€0Ϋ11J1‚1Ί1ς2*2c2›2Τ3 3F33Έ3ρ4+4e4ž4Ψ55M5‡5Β5ύ676r66ι7$7`7œ7Χ88P8Œ8Θ99B99Ό9ω:6:t:²:ο;-;k;ͺ;θ<'<e<€<γ="=a=‘=ΰ> >`> >ΰ?!?a?’?β@#@d@¦@ηA)AjA¬AξB0BrB΅BχC:C}CΐDDGDŠDΞEEUEšEήF"FgF«FπG5G{GΐHHKH‘HΧIIcI©IπJ7J}JΔK KSKšKβL*LrLΊMMJM“MάN%NnN·O�OIO“OέP'PqP»QQPQ›QζR1R|RΗSS_SͺSφTBTTΫU(UuUΒVV\V©VχWDW’WΰX/X}XΛYYiYΈZZVZ¦Zυ[E[•[ε\5\†\Φ]']x]Ι^^l^½__a_³``W`ͺ`όaOa’aυbIbœbπcCc—cλd@d”dιe=e’eηf=f’fθg=g“gιh?h–hμiCišiρjHjŸjχkOk§klWl―mm`mΉnnknΔooxoΡp+p†pΰq:q•qπrKr¦ss]sΈttptΜu(u…uαv>v›vψwVw³xxnxΜy*y‰yηzFz₯{{c{Β|!||α}A}‘~~b~Β#„ε€G€¨ kΝ‚0‚’‚τƒWƒΊ„„€„γ…G…«††r†Χ‡;‡ŸˆˆiˆΞ‰3‰™‰ώŠdŠΚ‹0‹–‹όŒcŒΚ1˜ŽfŽΞ6žnΦ‘?‘¨’’z’γ“M“Ά” ”Š”τ•_•Ι–4–Ÿ— —u—ΰ˜L˜Έ™$™™όšhšΥ›B›―œœ‰œχdž@žŸŸ‹Ÿϊ i Ψ‘G‘Ά’&’–££v£ζ€V€Η₯8₯©¦¦‹¦ύ§n§ΰ¨R¨Δ©7©©ͺͺ««u«ι¬\¬Π­D­Έ-‘――‹°�°u°κ±`±Φ²K²Β³8³΄%΄œ΅΅ŠΆΆyΆπ·h·ΰΈYΈΡΉJΉΒΊ;Ί΅».»§Ό!Ό›½½Ύ Ύ„ΎΏzΏυΐpΐμΑgΑγΒ_ΒΫΓXΓΤΔQΔΞΕKΕΘΖFΖΓΗAΗΏΘ=ΘΌΙ:ΙΉΚ8Κ·Λ6ΛΆΜ5Μ΅Ν5Ν΅Ξ6ΞΆΟ7ΟΈΠ9ΠΊΡ<ΡΎ?ΑΣDΣΖΤIΤΛΥNΥΡΦUΦΨΧ\ΧΰΨdΨθΩlΩρΪvΪϋΫ€ά܊έέ–ήή’ί)ί―ΰ6ΰ½αDαΜβSβΫγcγλδsδόε„ζ ζ–ηη©θ2θΌιFιΠκ[κελpλϋμ†ννœξ(ξ΄ο@οΜπXπερrρςŒσσ§τ4τΒυPυήφmφϋχŠψψ¨ω8ωΗϊWϊηϋwόό˜ύ)ύΊώKώάmpara��������ff��ς§�� Y��Π�� vcgt��������������”�βo°DΨv±W‘Gν — F ο › K ϋ ―aΙ‚:ς­h%γ€f'ν°zC Ψ₯uDλ Α!˜"r#K$)% %ι&Λ'(”){*d+O,<-*./ /ώ0ς1η2ή3Υ4Μ5Δ6Ό7΄8­9¨:€;‘< =‘>£?§@­A΅BΎCΚDΧEζFψH I!J8KRLnM‹N¬OΞPσRSCToUVΝX�Y5Zl[¦\ΰ^_]`aίc!dde¨fνh0iujΈkόm=n}o»pψr2sitžuΠvύx(yNzr{|¬}Γ~Υδ€ξφ‚ό„�…†‡ˆ‰Š‹�‹όŒψςŽμεέ‘Φ’Ν“Ε”»•²–©—Ÿ˜•™‹š›wœndž[ŸR I‘A’:£3€,₯&¦!§¨©ͺ«¬­―%°-±6²B³O΄]΅lΆ{·‹ΈΉΊΐ»ΣΌη½ϋΏΐ&Α=ΒTΓkΔ„ΕœΖΆΗΠΘκΚΛ!Μ>ΝZΞwΟ•Π³ΡρΤΥ0ΦPΧqΨ’Ω³ΪΥΫφέή:ί\ΰα‘βΔγηε ζ.ηSθwιœκΒλθνξ7ο_πˆρ²ςέτυ5φcχ’ψΒωσϋ&όZύώΖ���”"―Bπ₯Bς¨]Ώw 3 ν ͺ g $ η ¦h)ξΆyB ΣŸk5Σ’rCλΐ“kC  ς!Ν"§#„$_%>&&ό'ά(Ώ) *ƒ+f,J-1..ύ/ε0Ξ1·2 3Š4u5`6M798$99ώ:λ;Ψ<Ε=³>‘?Ž@}AlB[CJD;E-F GH HIχJπKμLκMιNκOπPψRST%U<VSWmX‡Y£Zΐ[ί\^_A`daˆb¬cdχfgChii‘j·kέmn)oOpsq–rΈsΩtωvw4xOyhz{”|§}Έ~ΘΧ€ηφƒ„…#†1‡?ˆM‰[Ši‹vŒ„’ŽŸ¬Έ‘Ε’“ή”λ•ψ—˜™š(›4œ@LžWŸc o‘z’†£‘€₯¨¦΄§Ώ¨Κ©Φͺα«μ¬ψ―°±&²1³<΄F΅OΆV·]ΈcΉhΊl»pΌs½vΎyΏ{ΐ~Α€ΒƒΓ…Δ‰ΕŒΖΗ”Θ™Ι Κ¦ΛΜ·ΝΑΞΝΟΫΠκΡϋΣΤ#Υ;ΦUΧsΨ“ΩΈΪέάέ'ήMίtΰ›αΒβκδε>ζjη—θΕιυλ(μ[ν‘ξΙπρBς‚σΖυφYχͺψώϊXϋ·ύώŠ���”"―Aπ„-Φ-άŒAσ ͺ a  Τ  EΓ‡C ΗŽSβ©r>Φ€sE軐f >!!ξ"Κ#₯$ƒ%_&>''(β)Δ*¨+,t-\.C/,011μ2Ω3Ε4²5‘6Ž7~8l9\:K;<<.=!>??ώ@τAμBεCήDΩEΥFΣGΠHΠIΠJKΥLΩMέNδOμPτQώS TU"V0W?XPYaZs[‡\š]―^Ε_Ϋ`ρbcd7eOffgh–ijΕkέlσn op3qGrYskt{uŠv—w€x―y·zΎ{Δ|Θ}Μ~ΟӀՁ؂ۃ܄ޅ߆ΰ‡αˆβ‰βŠγ‹γŒγγŽγγγ‘β’β“β”β•β–β—β˜β™γšδ›εœζθžιŸλ ξ‘π’τ£χ€ϋ¦�§¨ ©ͺ« ¬)­2;―E°O±X²_³f΄n΅tΆz·Έ†ΉŒΊ’»˜ΌŸ½₯Ύ¬Ώ΄ΐΌΑΕΒΟΓΪΔεΕςΗ�ΘΙ!Κ4ΛIΜ`ΝzΕϳΠΥΡωΣ!ΤMΥ}Φ±ΧζΩΪQۈܾέφί.ΰgα‘βέδεYζšηάι"κiλ΄νξSο©ρςaσΔυ.φžψω–ϋό±ώQ��ndin������6��£€��Vΐ��O���ž€��(������P@��T@�κς�κr�ΝΖ����������������� � �������!�%�)�-�1�6�:�?�E�J�O�U�[�a�h�n�u�|�ƒ�Š�’�™�‘�©�²�Ί�Γ�Μ�Υ�ή�η�ρ�ϋ$.9DP[gs‹—€°½ΚΧες�*9GVetƒ’’²ΑΡβς$5FWhzŒž°ΒΤζω 1DXk’¦ΊΞβφ 4I^sˆ³Θήτ  6Lcy¦½Τλ1H`x§ΏΨπ 9Rjƒœ΅Ξη   4 M g  › ΅ Ο ι   8 S m ˆ £ Ύ Ω τ  * F a } ™ ΅ Π μ % A ^ z — ³ Π ν ' E b   » Ψ φ3QoެΛκ (Gg†¦Ζζ&Fg‡¨Θι +KmŽ―Πρ4Vx™»έ!CeˆͺΜο4WyœΏβ(Kn’΅ΨόCfŠφ=b†ͺΞς;_„¨Νς;`…ͺΟτ>cˆ­ΣψCh޳Ωώ$Jp•»α-SyŸΕμ8^…«ΡψEk’Ήί  - S z ‘ Θ ο!!=!d!‹!²!Ω"�"'"N"v""Δ"μ##:#b#‰#±#Ψ$�$($O$w$Ÿ$Η$ο%%?%g%%·%ί&&/&X&€&¨&Ρ&ω'"'J's'œ'Ε'ν((?(h(‘(»(δ) )6)`)‰)³)έ**0*Z*„**Ψ++,+W++¬+Φ,,,,W,‚,­,Ψ--.-Z-…-±-έ. .5.a..Ή.ζ//?/l/™/Ζ/σ0!0N0|0ͺ0Χ1141b1‘1Ώ1ξ22L2{2«2Ϊ3 3:3j3›3Λ3ό4-4^44Α4ς5$5V5ˆ5»5ν6 6S6‡6Ί6ξ7"7V7‹7ΐ7υ8*8_8•8Λ9989n9₯9έ::L:„:½:φ;/;h;’;ά<<Q<‹<Η==>=z=·=τ>1>o>­>λ?*?i?©?θ@)@i@ͺ@λA,AmA―AρB3BuBΈBϋC>CCΔDDLDDΤEE^E£EθF.FsFΉG�GFGGΣHHbH©HρI9IIΚJJ[J€JνK7KKΛLL_LͺLτM?M‹MΦN"NnNΊOOROŸOμP9P†PΤQ"QoQΎR RZR©RψSGS–SζT6T†TΦU&UvUΗVViVΊW W]W―XXSX₯XψYJYYπZDZ—Zλ[>[’[ζ\:\\γ]8]]β^7^^β_8_Ž_δ`:``ηa=a”aλbBb™bρcHc cχdOd§deXe°f fafΊgglgΕhhxhΡi+i„iήj8j’jμkGk‘kϋlVl°m mfmΑnnwno-oˆoδp?p›pφqRqr rerΑssysΥt1ttιuFu’uώvZv·wwpwΜx)x…xβy>y›yχzTz°{ {i{Ζ|"||ά}8}•}ρ~N~ͺcΏ€€x€Τ1κ‚G‚€ƒƒ^ƒ»„„u„…0……λ†H†¦‡‡b‡ΐˆˆ|ˆΪ‰8‰—‰υŠTв‹‹p‹ΟŒ.ŒŒμKͺŽ ŽiŽΘ(‡ηG§‘‘g‘Η’'’ˆ’θ“H“©” ”j”Λ•,••ξ–O–°——s—Τ˜6˜˜˜ω™[™½šššγ›E›¨œ œlœΟ2”χžZž½Ÿ ŸƒŸζ J ­‘‘t‘Ψ’<’ ££g£Μ€0€”€ψ₯]₯Α¦&¦‹¦ο§T§Ή¨¨„¨ι©N©΄ͺͺͺδ«J«°¬¬|¬β­I­―|γ―I―°°°~°ε±L±΄²²‚²κ³R³Ή΄!΄‰΄ρ΅Y΅ΒΆ*Ά’Άϋ·d·ΜΈ5ΈžΉΉpΉΪΊCΊ¬»»»ιΌSΌ½½'½‘½ϋΎfΎΠΏ;Ώ¦ΐΐ{ΐζΑQΑ½Β(Β“ΒΓkΓΧΔCΔ―ΕΕ‡ΕτΖ`ΖΝΗ:Η¦ΘΘ€ΘξΙ[ΙΘΚ6Κ£ΛΛΛνΜ[ΜΙΝ7Ν¦ΞΞƒΞρΟ`ΟΟΠ>Π­ΡΡ‹ΡϊjΩΣIΣΈΤ(ԘΥΥxΥθΦXΦΘΧ9Χ©Ψ؊ΨϋΩlΩάΪMΪΎΫ/Ϋ άάƒάτέeέΧήHήΊί,ߝΰΰΰσαeαΧβIβ»γ-γ δδ„δχεiεάζNζΑη4η¦θθŒθιrιεκXκΛλ>λ±μ$μ—ν ν}νρξdξΧοKοΎπ1π₯ρρŒρςsςζσZσΝτAτ΅υ(υœφφƒφχχjχήψRψΕω9ω­ϊ ϊ”ϋϋ{ϋοόbόΦύJύ½ώ1ώ€‹��������������� � ��������!�$�(�+�/�3�7�<�@�E�J�O�T�Y�_�d�j�p�v�|�ƒ�‰��—�ž�₯�­�΄�Ό�Δ�Μ�Τ�ά�ε�ξ�φ�%/9CMWblw‚Ž™€°ΌΘΤΰμω-:GUcq›ͺΈΗΦετ#3CSct„•¦·ΘΩκό1DVh{ ³ΖΩν�(<Pdx‘ΆΛΰυ  5Kaw£ΉΠζύ+BZqˆ ΈΠθ�1Ib{”­Ζΰω  - F ` { • ― Κ δ  5 P l ‡ £ Ύ Ϊ φ  . K g „   ½ Ϊ χ  2 O m ‹ © Η ε  " @ _ ~  Ό Ϋ ϊ:Yy™ΊΪϊ<]~Ÿΐβ%Gi‹Πσ8\’Ζι 1UzžΒη 1V{ Ζλ7]ƒ©ΠφCj‘Έί.U}€ΜτDl•½ε7_ˆ±Ϊ,U¨Ρϋ$Nw‘ΛυHrœΖπDo™ΓνBl–ΐκ?i“Ύθ<fΊδ  8 b Œ Ά α! !5!`!Š!΅!ΰ" "5"`"‹"Ά"α# #7#c#Ž#Ή#ε$$<$h$“$Ώ$λ%%C%o%›%Η%τ& &M&y&¦&&','Y'†'³'ΰ( (;(h(•(Γ(π))L)z)¨)Φ**2*`**½*μ++I+x+§+Φ,,4,c,“,Β,ς-"-Q--±-α..B.r.£.Σ//5/f/—/Θ/ω0+0\0Ž0ΐ0ρ1#1V1ˆ1Ί1ν22R2…2Έ2λ33R3…3Ή3ν4!4U4‰4Ύ4ς5'5\5‘5Ζ5ϋ616g6œ67 7?7u7¬7γ88Q8ˆ8ΐ8ψ909h9 9Ω::J:ƒ:½:φ;0;j;€;ή<<S<Ž<Ι==@=|=Έ=υ>1>n>«>θ?&?d?’?ΰ@@]@œ@ΫAAYA™AΨBBXB—BΨCCXC™CΩDD[DœDέEE`E’EδF&FhFͺFμG/GrG΄GχH:H~HΑIIHIŒIΠJJXJJαK&KkK°KυL:LLΕM MPM–MάN#NiN°NφO=O„OΛPPZP‘PιQ1QyQΑR RRRšRγS,SuSΎTTQTšTδU.UxUΒV VWV‘VμW7W‚WΝXXdX°XϋYGY“YίZ,ZxZΕ[[^[«[ω\F\“\α]/]}]Λ^^g^Ά__S_’_ρ`@``ίa/aaΟbbobΏccac±ddSd₯dφeHe™eλf=ffαg4g†gΩh,hhi%ixiΜj jtjΗkkpkΔllmlΒmmlmΒnnmnΒoonoΔppqpΗqquqΜr#rzrs)ssΩt1t‰tαu:u’uλvDvvφwOw¨xx\x΅yyiyΔzzyzΣ{.{‰{δ|?|›|φ}R}~ ~e~ΒzΧ€4€‘€ξLͺ‚‚f‚Δƒ#ƒ‚ƒα„A„‘……a…Α†"†ƒ†δ‡F‡§ˆ ˆkˆΝ‰0‰“‰φŠYŠΌ‹ ‹ƒ‹θŒLŒ°zίŽDŽ©uΫA§‘‘u‘ά’C’ͺ““y“α”I”±••‚•κ–S–Ό—%—Ž—χ˜a˜Λ™4™žššsšέ›G›²œœ‡œς]Ιž4žŸŸ ŸvŸβ N Ί‘&‘’‘ώ’j’Φ£C£―€€ˆ€υ₯a₯Ξ¦;¦¨§§‚§ο¨\¨Ι©6©£ͺͺ~ͺλ«X«Ε¬3¬ ­ ­{­θUΒ―0―° °w°ε±R±Ώ²,²™³³s³ΰ΄M΄Ή΅&΅“΅ΆlΆΨ·E·±ΈΈ‰ΈυΉaΉΝΊ9Ί€»»{»ζΌQΌΌ½'½’½όΎgΎΡΏ;Ώ₯ΐΐxΐβΑLΑΆΒ ŠΒυΓ_ΓΚΔ5Δ Ε ΕvΕαΖLΖ·Η#ǎΗϊΘfΘΡΙ=Ι©ΚʁΚνΛZΛΖΜ2ΜŸΝ ΝxΝεΞQΞΎΟ+ϘΠΠrΠίΡLΡΉ&“Σ�ΣmΣΫΤHΤ΅Υ#ՐΥύΦkΦΨΧEΧ³Ψ ΨŽΨϋΩiΩΦΪCΪ±ΫیΫωάfάΤέAέήή‰ήφίcίΠΰ=ΰͺαα„αρβ^βΚγ7γ€δδ}διεVεΒζ.ζšηηrηήθIθ΅ι!ιŒιχκcκΞλ9λ£μμyμγνNνΈξ"ξŒξυο_οΙπ2π›ρρmρΥς>ς¦σσvσήτFτ­υυ{υβφHφ―χχ{χαψFψ«ωωuωΪϊ>ϊ’ϋϋiϋΝό0ό“όυύWύΉώώ|ώέ>Ÿ�������������� � � ��������#�&�*�.�2�6�;�?�D�I�N�S�Y�^�d�j�p�v�}�ƒ�Š�‘�˜�Ÿ�§�―�Ά�Ύ�Ζ�Ο�Χ�ΰ�ι�ς�ϋ !+5?IT_ju€‹—£―»ΗΣΰμω .;IWes‚Ÿ½ΜΫκϊ *:JZk|ž―ΐγυ+=Pbuˆ›ΑΥθό$8L`u‰ž³Θέσ3I_u‹‘ΈΞεό*AYpˆŸ·Οη0Iaz“¬Ζίψ  , E _ y ” Θ γ ύ  3 N i …   » Χ σ  + G c € œ Ή Υ ς  , J g „ ’ ΐ ή ό  8 V u ” ² Ρ π/NnŽ­Νν.Oo±σ6Xy›½ί$Fh‹Πσ9]€£Ηλ2VzžΓη 0UyžΓθ 3X}£Ιξ:`†­Σω Fm”»β 0W¦ΞυEm•½ε 5^†―Ψ�)R{€Ξχ JsΗπDn˜ΓνBl—ΒνBm™Δο  F q  Ι τ! !L!x!€!Ρ!ύ")"V"‚"―"Ϋ##5#b##Ό#ι$$D$r$Ÿ$Ν$ϊ%(%V%„%²%α&&=&l&š&Ι&ψ'&'U'„'³'γ((A(q(‘(Π)�)0)`))ΐ)ρ*!*R*‚*³*δ++F+w+¨+Ϊ, ,=,n, ,--7-i-›-Ξ.�.3.f.™.Μ/�/3/g/š/Ξ0060j0Ÿ0Σ11<1q1¦1Ϋ22F2|2²2η33T3Š3Α3χ4.4e4œ4Σ5 5B5z5²5κ6#6[6”6Ν77?7x7²7λ8%8_8š8Τ99J9…9ΐ9ϋ:7:s:―:λ;(;d;‘;ή<<Y<—<Υ==R=‘=Π>>N>Ž>Ξ??N??Π@@R@”@ΦAAYAœAήB!BcB¦BιC,CpC³CχD;DDΓEELE‘EΦFF`F₯FλG1GvGΌHHIHHΦIIdI«IσJ:J‚JΚKKZK£KλL4L}LΖMMXM’MλN5NNΙOO^O©OτP?PŠPΥQ QlQΈRRPRœRθS5S‚SΟTTiTΆUUQUŸUνV;V‰VΨW&WuWΔXXbX²YYQY‘YπZAZ‘Zα[2[‚[Σ\$\u\Η]]j]»^ ^_^±__V_©_ό`N`‘`υaHa›aοbCb–bκc?c“cηd<ddεe:eeδf:ffεg;ggζh=h“hιi@i–iνjDj›jςkIk‘kψlPl§lmWm―nn`nΈoojoΒpptpΝq'q€qΩr3rrζs@sšsτtOt©uu^uΈvvnvΙw$wwΪx5x‘xμyHy€yz[z·{{o{Λ|(|„|ΰ}=}š}φ~S~° jΗ€$€€ί=›ω‚W‚ΆƒƒtƒΣ„2„’„ς…R…²††s†Τ‡5‡—‡ψˆZˆ»‰‰€‰βŠEЧ‹ ‹m‹ΠŒ4Œ—Œϋ_ΓŽ'ŽŒŽπUΊ„κ‘O‘΅’’€’ζ“M“³””€”η•M•΄––ƒ–κ—Q—Ή˜!˜ˆ˜π™X™ΐš(š‘šω›a›Κœ2œ›mΦž?ž¨ŸŸzŸγ M Ά‘‘‰‘ς’\’Ζ£/£™€€l€Φ₯@₯ͺ¦¦~¦θ§Q§»¨%¨¨ω©c©Νͺ7ͺ‘« «t«ή¬H¬²­­…­οXΒ―,―•―ώ°h°Ρ±:±£² ²u²ή³G³°΄΄΄κ΅R΅ΊΆ"ΆŠΆς·Z·ΒΈ)ΈΈψΉ_ΉΖΊ-Ί“Ίϊ»`»ΖΌ,Ό’Όψ½]½ΒΎ(ΎŒΎρΏVΏΊΐΐ‚ΐζΑKΑ―ΒΒxΒέΓBΓ§Δ ΔqΔΧΕ<Ε‘ΖΖmΖΗ8ǞΘΘjΘΠΙ6ɝΚΚiΚΠΛ6˝ΜΜjΜΡΝ8͟ΞΞlΞΣΟ:Ο‘ΠΠpΠΧΡ>Ρ₯ sΫΣBΣ©ΤΤxΤίΥFΥΦΦ|ΦδΧKΧ²Ψ؁ΨθΩOΩΆΪΪ„ΪλΫRΫΉά ά‡άξέUέ»ή"ή‰ήοίVίΌΰ"ΰˆΰοαUα»β!β†βμγRγ·δδ‚δηεLε±ζζ{ζίηDη¨θ θqθΤι8ιœικcκΖλ)λŒλξμQμ³ννwνΩξ:ξœξύο^οΏπππΰρ?ρŸρώς^ς½σσzσΨτ6τ”τρυOυ«φφdφΑχχxχΣψ.ψ‰ψγω=ω—ωπϊIϊ’ϊϋϋSϋ«όόYό°ύύ\ύ²ώώ\ώ±Y¬��sf32����� ·��–σW��)��ύΧϋ·ύ¦��Ϊ��ΐφmmod������Zc��b*����Ν‰ €����������������ξ�Adobe�d@���Ϋ�„�      ΐ��ώr�έ��/Δ’������������ ��������� �s�!1AQa"q2‘‘±B#ΑRΡα3bπ$r‚ρ%C4S’’²csΒ5D'“£³6TdtΓβ&ƒ „”EF€΄VΣU(ςγσΔΤδτeu…•₯΅ΕΥευfv†–¦ΆΖΦζφ7GWgw‡—§·ΗΧηχ8HXhxˆ˜¨ΈΘΨθψ)9IYiy‰™©ΉΙΩιω*:JZjzŠšͺΊΚΪκϊ�m�!1AQa"q‘2‘±πΑΡα#BRbrρ3$4C‚’S%’c²Βs5βDƒT“ &6E'dtU7ς£³Γ()Σγ󄔀΄ΔΤδτeu…•₯΅ΕΥευFVfv†–¦ΆΖΦζφGWgw‡—§·ΗΧηχ8HXhxˆ˜¨ΈΘΨθψ9IYiy‰™©ΉΙΩιω*:JZjzŠšͺΊΚΪκϊΪ� ��?�ϊa°ΞJνθ•*Αzα\)vύώΑjξ½@―|! οταUλΈΔ-;·Ž>JΨξ:ψœT*ΥάχΓ¦τύ}±CtάτκqK€ ‘αίηUN›w8«tϊ1Vo R·ˆ'εί.§~ύρJνλσ튯Q㊯�aBΰΎΨέMρWqΓHΆψβΆΈ kHί­NV©-ΣϋFhPƒMŽhΦ΅lU’�†*΄Ž›όλ…Vο֘‘i·γŠVχβ‚Υ7­wοŠ†kΎoc«@S¦ΤπΕ[$αŠΝ7>--�GΛΫj? U’sΎ*ΆžΤ-­:ΕZ©Θξ―Πϊ${tχΞ<=*oPΚ™0V—ρ#·Λ Σ`Wzb†ιΆύ»aUΓ¦(wj}ϋb•ΐ »bx늯ιΰ;β•Τ'§_αŠ�֝π+‡ωŠ[άφωβ†ΐή§lRΊV*ΰ»P}J₯?*Έχvΐͺ€h8‘u1EΈ +n§lVΧŠ-ΤΕmΤΕmͺbΆΥ1M΄Fψκb­qΕmi¨Ε+H?†XGOΓ©Σ·α†’έ1C@oO JΈ―qΫ�VΏ‰ο…+h|:wΖΠκtπρΕ]Ηθ―CZn›ψaCGΗ}Ί\Uož*όkΧkσ?Ž?Ρϊͺ@‘άη Ρ*Ž”ν’ ¨ (zžϋ~Sk‡_ &‘k©οΣ|*Ϊ―‡l Ί€ΠψβUx_Ψ₯ΊSΆΨ«~;“νύp*ώ?HU° λτβ«©Nέ0+tΆ¦γ N£c… Σιΐ«ΐΕ]@?†*ΈνΒ†ιŠb‡{γJΉAbAf= β‚”jΎ`Π4-΅nΛM’•O2‰HφŒί†09–άZ|ΉΎˆ“ξ :_ΝΏ Ζά#ΥεΊ=+ »°ΫάΣ sDt.|{W/ொ΅·ζ’ξάF·ΧέL0ιΑγΗΝμ}TwαϋYvŸ¬ι²†Σ΅(.‰ίΣ G�jœrF\‹…—L_\HLθFΔSΔdšZ8²ΆΏVjŸνβ­Z╬>ώΨm+)ώή*°ΓVΣ―Ύ5JoMόN*Ρ­:ΣΗZ &ϋxb‡SΆ*ήΫW*έ?ψU όρU€}ϊβ«ιΫ˜«\zžύ±E5ΐxŽ”ΓiϊγoΖrDnτnή”¦Ω%₯ΰw―QΎ(\£ΗΆ! œNĝqJπ:ΨͺκŸΎ)lίyΐ­xϋtͺΰ6₯zvΕWύΈUP ΕqUΚΏN(oŽηί¨Ε6ΌΆ% ΣΆιŠLUΊb‹n˜iμU‹yΗΞήXς’5Ÿ5jkam)+cjƒΤΉΊ~čΫάτΞ!ΝΙhςκ§ΑˆYλά=ερ‡›�η |εζωe³ΠCyC@bTAlά―₯_§‚Gμ¦ΨN3Τ½ΆƒΩΜ8}Y=rσϊGΓυ° WžFšiZζvbežbd’Ύ,νRNω Pδοx#@WΉXXC·0ώ?  φ?NcΘ—$ˆδΛ¬m‘x©βw^DrTAδαδ‘κΙmγŽ01²Σ”‹Τ~¬‹‰8™lYΦ‰η_Le‡P©`)Θ9ύςƒέΏΘεΝ(y‡Uͺμ¬y7‡€ύdΣυ =V+λ ΔφςwθΚέΥΧ±™‰ ;—±K†BŠ/$Α¬ κaKGJΪ΅Š­#ξΐ•œkΎhŒUgΌ=ρW UΫτκ;βv*έ1U£wκ*ΆΎ;όρBί·πΕVqχΖ•Σϊ"Τc\䞍°6I[γή› i ΤWaΣί €o΅1Uΰt§~Έ₯vΤχΔ«©ΆXkZχΕWψͺ’Ž•?F«(Δ‘TtΕ‰u1[wΎ(ov*[¦CΓVΐΓJσΝOΜνς£Λ―κ¨/΅+²Πyo@ Εο@©υX΅vπΨnpˆ™Ορ»Ωϊ λrπG`9žαϊϋŸ™ZΏ˜όΑη�1άy―ΝΧΟ}©]’*•‚Φ~ Œž(‹ΠS―}σ Δc>}ο¦h΄XτΈΔ1ŠŽ}ε–hϊz3r/@)ΠPϋf,δδNT‹aΗΈ d+�jj;:ύωŽwq&m˜ιρ£„5ιZυʍΈyIYU΅‚žπͺ¨Ω?¦@ΈrΙIͺΪPͺ€°₯h?ΞΎψΌKGΗk$ͺ 7U§α^Έi”€Nt›Ϋ­ρ/­C…Ώ΅;,©ίn•Ž0‘°αjpΗ<xO>‡ΉνΡKΔ1\@βH'A$2κΫŒΨƒbήfQ1$a~*·όλ-b—φπ‘Τΐ•ΏI¦¬#Γ­§‡Ρ…V‘ϊρV©ψβ¦ίΣ»qΆJΡλክφΖ•ΗΗΆ*±Άωb†ΆφρλŠ_Τϊ+Δ ¨μNrFΉEhϋxί½Ό0ͺΰ£}±Uκ>Š―~X₯ΏŸίŠ­c±zwΐ«|6>η ―P6ΐͺ‘qU`0‘S ŠΆ=?,Uw§'ς7݁°ƒςΕ“°„/οΠaUΛokΕεδλiegά^]>Λ1)y“ΰ βv ‘�nNΟΘoΜo?κ›ΎzΤ<Οv²G’[–³ς›ΪΪΒ6<6ιΞOΆΗΉ>Ω™xqσ?Šψ>›Ωz£Β!Το#ήgGZƐ"ƒΔ†§sξRl».-Ωώ›<F΅‰$ό<iQR?UwΚ$ VA.o@ΣdI•I`ͺzž4Ϋ°©§έψ ǐq2΄qF]ωlς§SΆά”ŒœIHυdΊzz, ƒκt v4φZ€Σl8yglΒΪ$‘RŸ Ÿ„°Ϋ₯iΚ›œζαJD&πΐ€ΚΌ a΅~œ Fj’Ωjό;ς|G†<{²&άΣ,ŽZlΕPΕr|Cξ5Μ­1Έ‘άκϋFKωΓνeΉ{―Ά±K_F·…]αŠ{m’ΞƒZ|:œJVŸΨͺή�†WS΅½Go*Φ*ΧΜβ­W΅†½©Ύ*Z§τ醐�Υϊ-ڝύ³”z%β”­1K`υιΕί…qVλ_ž)_½~{β«»Um^½±VΒψtνŠ χψβͺκ1B Ε‰H|ΣζΏ.y'H“\σV­‘§ ύΡsΚiΫ§!_ερΓ}:Άι΄Ω53ΰΗ?Ž}Ο–΅ΏωΚMBώV·ςG”…¬%ΈGͺk,ZCΰλo ωŒ’zšϋ^―Kμ ηžώΆqω—ω­ϊ‡šgΆŠSOͺΨΖΆρ�Β ώ9L¨ω»\}£ΕΚζwW΅Υ<Ου“_ΤͺΓfYδb=ΘT@L΄˜άω3 ;σΟzqΡΦε½@Ώέ^"Μ¦ž$€E~x7‹ƒ—²4Ω?†½ΟJς�ηŽ—$ΡXyΒΘθwO²κpφdφζğ=Ζ[‡ξŸWμώH,'Œwuύ―yΆ’˜ ΊΆ–;›[”[άΔΑγ‘B¬*Μ€opσ&ŽΔ>q�œ°σkω{ςΑ<½i9†�Οw‚ΑψŸ‹κ05ΘΫ …k–cΜyoψψ»ίg4Ύ6§Œ /βvΞΝ4Ηn:*…Εh�χύY•!Δϊ x_ζgζύώ,š–¦HξX7Χ504JέD²ί¨λ›­gDŽ9όž'Ϊi'§‘Α§#‹¬ΉΧσϋž ’ωί͚­Ή§kχŸ€”’νq3Νΐš”š6n,¦›τφ¦m²iρ䏒)β΄ύ«ͺΣερ‘’\^dΘx/ӟɏ=Ωώ`ω~ΟWHR₯&NΜ±&)` ΎΥ}ίΕvŽŒιςpτθ|ŸOΡvŒuΊaš^ΔwHsύ£Φζ+;w–Vαkκ)r₯U@₯kΡ@vkl΅™ΩρOζ·όεύΖ•¨\yςζήΚς[vhυ zρ’YfXα<U¨GVΨμTηM μ1؟ ?IyΞΣνΜzixx@œΗ2~˜ϋ»ΟΨωΧΛΏσ�^ZσCyΊ/9]κ7Χ‘VλJΥΧΦ°Ί΅/ΙWκζŠ‹_±${­kVΊΛΩL˜ό>��κ9ƒούΠΩΥ‰ρNVπ‘Q#Λτύ‚όšόΦΠ8<›gη 6΄q)²Χ4Y7–Ζϊ5 $$χR$nκ|AΞ_£ž)Η=ϊƒή;�_qz,Y‘žxω˜=Ηέφ½w…(Œ»�™Μ.LκΚο%Ιώζ5˜4’ή7 κ―A·ΘεΊcκ>η΄Ηξΰ|ΛшΜΧLΥ0R΅‚–έL &݁ b•6Γ §N£ Z τιΎjŸ†oπ=ρU»V‡‘ΕZ5ώΜUoΛξΕVψ ΄τω*Φψ‘Φϊ, M3•δτAΎ[ς{ΰU@)Oγ‰VΨT~Ίβ–Ε*qBρώgxΕZ4―sόqUγ—Ž*ͺ@qA^1A/"όγόΰΏ)tKi κώmΧ,ωy˜…p»5ΥΙ]Φ;xΉψGs“„ Νμv™Ω³Χd‘΄G3ϊ›σϊζηΜ~}ןΜήqΥ₯Φu‰«Αδ<b+ύΝΌcቂžJRŒEτm.““1CνgΊnŽPz`m_OcΫιΜYM2Θ~™gΒPL<YIτδo„νϋ;ψε2“–[se°ιόε‰π’ *»ž�:퐻 ΙhΤ΄–�Φƒ‹RGˆίε‘Ά&t”jž^3C 4EάΊυή› �L”eMΈ΅4R_#ώgίώSkΦφ£5אυ‹”T…ΨŸΡο#qϊΤφBΧγ^„oΧ31Ω9ύ�΅‡iφ<uψΜαΆP6ώ—‘ύŒΞ\ληTόΧΌΏ «-—–4 wR„2<šn ƒΰSeιΐ ΛΏf―e4Ζ:c3ΞR?μv|iω…ζkŸ-ωVhl#Z“z6οςe¨άΧ—aχœΫh0 Ήn\ƒg΄:ιιtδΓκ;'ƒy3ςΪ�ΜR_[Žhα–Rρ@ηƒLΐΥ™ͺ+BvΎnu:Έβτǟάρ½ΨΥ“›=€MΧYw“εχ²―>ώMκ6Φ£^ςύƒ\Gt#β1φ–5H4¨r/hFG‚fœΎΫφrCχΊqdsˆϋǟ“ΪηΌ―η?[σ|š•ΖŸ€­cŽΞζ#{½άJŒέ„f†•κ+ΎΩνόΨε�A;ςθ?΅³ΩΝ.£Kή(1‰―Iœ>>ΔόΦςœόγδ‹ο/ωFζ;ύN#σΘεKBOΗΘζŽ* TxΉ£ΠgΗ‡0žA`~>Ηi¨ΙNJpŒΈdEχύŸ?)Ώη.ΉYλ?™w*ΡXά‰`ς΅Έ!.VB§?²h‚ΖΔζοYν ƒ#ŸρžηšΣvF §ŒƒΘ}>WΧαΙτ?ζ�δ—ΌύεΗ±ϊ”Z͊Π΅KhΥ »*ό(₯�’6ί (Gaš­idΣOˆ˜ούΎnϋ(Ε‡‡˜mΠ�B<‡Xς­Ÿ�Ξ+λώlό¦όό›ς»Μ°4σ²6ŸͺιξΓƒ^[Διχp·CΜ+%GΪ‰άfσΆα‹W£αΏγάv/7 Η—Gͺ–›/9ώl‡”ƒυ’iΨΔΌW¨%w¦Γ©φ‘Ξ ‡zθŸΛω~±κμ7τμΤ9χ/°Λ΄ίQχ8έ¬+}οY‘V(žy]a‚0L“ΘB"v43NΑΡ ΝlPόΙς6œολΡήΜ›4(Σ΅|*’ŸŽTrΗήμ1v^§'(<φIσsΛ@Ž:‹Ζvυ8 ό dqά\ΨΉΟP›Ω~cωVρ•{‹&~†xσe&˜Dz΄δμ­D:ξ,ΖΦξώqcuδ'R >šn>œ΄HK–ξα(’―†˜­# VRΈk_ŸΣ…+NpΒ­wρρΕV“ϊ±*·Z{ν_| °�΅…Ε_Χϊ$€Ίg)ΝθU}ͺOQ$QΆέ<1Uύ銷NΫνŠWS^Ώk|N*ΌνΕUTS‡ΝΎjΡ|εoΞa”Η€h6ζyΡOΗ4‡α†ή/•ΘUϋϋa�“C™gƒσδαΜώ-ωIu―λί™mΦ<οζ?TΦε bc΄~-a―Dv� ΝO|ΙΙX£Βν};A₯†—„·Όό^‘€iβΫΣ€E˜φ,Γ0'+nœ­θVNΌ aι1!„4¨zxΨ}4ξršp¦,Πέ–ιΨJ=h&‚hE~,ŠlOΛ!(Χ7 ?Ω–Ϋ˜ή©ΓaVp j\‹ƒ+VŽ2OαU»μ Ϋ’1)βΫtA·C@~*ΧzmΏPE;{`bdωΟσƒJŽ·1(V»rSQϊώy›₯—©ι;'ς–‰uwͺΝ-ευδΧχA<Ξ]ύ8WӍ*w∠Ψ ΫHŠ;)Β0ΊΫŸ$ώ ΪςςsK%²“JpηάW±η„f1uqsB;Μ¦ίJ†&β84fψhχ*~}|r©d%¬=M­η³ D�UδCP¨-°cα_o―LŞBγ™pΚή³ε`ΰˆύ5ͺσθΔ“Ϋοω�ή#1rJάdΙώ?©ξš5΄d#7οŸ#Ϋ©]…iΉμ£l¬ŸΟ.ŸΗήΜΈΕt‡NT ―sΆΔxΣ$α‹%&Έ·…ͺA*§‘ΑnDIyF§ωcδ­_Ξ:υ=―3ωX·θPU^.@š5>Χ ςZύ“Σ-œ±Η,q•F\Η{•) p’”n‰ζ/Ή“yƒX·lξ.'—!'•*6―Η16έ6–` εΝν;Eςξ΅y§ͺίω«X»YΒθ} ku3ΚέΤΡPu=vΛαŽϋΛ—―μIηΝ-±DY=Iξ­‡k>bσ7š%•΅ΝZξς%ίΠgγoϋ1­ο9σέΝΣθ°i«‚ ·ζbxν!–xγΟaR½7ωΰMΔʊoάGξŠ3πŽώ;‹A&$υd6Ϊq #n€Φƒ¦EƞKLb‚ξΖUΉΣζ°ΊVψn#b¦ŸG_‘ΐ|šeΓ1S�‡§ωkΟ2άLšg™Q-˜…ΆΥTqŠBz GEcγΣΗ.Η¨ή₯σtšΞΝΰx·GQξzQT§2]H+i•©‘…+iγŠV‘ϊϊb«M|7ρΕ]Ώ€`U•?ΣhώΎΈͺΓχPαU΄φό{b‡Πϊ$ >Œε‰P·lPUTmξ1J ¨φφΖ’ΨχͺργχŒUpኢ:β«… ͺ1 σσώrΫΟ-ω·Fό―ΣξΏά_•j>hD? ΊΒώζ=ώ―­FlΛΑϊSΧ{7£τœΔnvοΪςΪήά[πAΆΜvE*z~™­–ακv³Α *ΉTr…@cΛ½#πω˜τIpεdΥ>N�œ˜όΛΧτ΄―/ω~νμ_†ς-VβI%ΏCΎζ›Τϋ θ»E „Ξbψj½ο;ν7heΡa„1š98―Ό ­ΌχζφίωΔ›J_Κm,jΗχq]άΓ£secυhΘ�μ_[—ΒhΙΜ>ߌF€πσ _½―±η’ZοΞ½έXΕ0`dRνΔSˆΔΤΣ4|.\…>^όΡ�œžOΛΟΜ] Ι1θo¬ΪNmΫ\–W™€γ@΄e-Ηr>"@δ3y‘μS©Γ,†UΞ»wΈ:Ν~-&Xb³1ΟωΆh{ίfB¦h–FΥδTE2ρ•9Ep Q€Ψ€N�eLΡStΆ5έψό}½ο όη‡ώuϋΙV7,FΥψkΎ]¦ϊΓΎμ3ϋΗΕ^J‰…œrŠ―:σjnI?Žn³s§{/’ήmω‘ω­¨ω3Z‹HΠ¬ΰkΙ ŽkΉηΤ#ξΚ”ή»v͞‡³γš<S&ž+ΪOh'‘Ι’ ¨Oέ^cͺD�œƒΧ‘uν{{`‚k)₯Fΐ‡FβOΡΫc–εμ}½ωΊάΩc2>."|Mύ›=ηA�œŒόΈΉ‰LΊ£i¬―΄7P²sκŒ�aF;Ύ9­ΙΨΉΑΨ_Έ» ~ΠθrξgΓο>ˆς‡ζo΅ΰ{8i0Ί© ¨γ-ΙWν HιBΎk3h³@ϊ ~MΤαΞ.‰ψ‡Πzš΄{Ί -^Βτ…,βήζzr;;ζΕ(σδλ²α'pΛίY‡ˆY'ˆΊ3Θ΄,>Ρ"•PmΣ"Π0žt“έω‡O΅F–λQ³…Is ΓbjΜ:S燄ž@ΉΒK ?™ΎEžφΧD²σv•«έΜm­τϋ;€šG˜|LŸ»,₯7&™d΄Ω@³}2„,σ1Συ<σƒΜΧ:…ξ—εΛ ›T”ύl+n'ΔΔ|λŽ ζz=wcι†8„rδ‚Σ¬£΄†ˆΠQΒ…+‘$–Y²“l’λQ΄·6κ8~>₯₯J£Œ— �›,φݚζΡ#˜šιF*H§Ώ·Zm•Κ.ΈΘFVŸAd…΅’Š{lkΎ‰e!ω‡σ Κ~JW›ΜΥΎ—n"IpΤ2ΙO°€]°ω3'“&cP±˜‡Ȉσ@ωσΫς«Ο·Χ:F‡ζ›X΅[d-…ρ[7™Iβ}/U¨ΕOΪ�Τuάo–j{/Q€qN;wά8ζ†IpΒbGΈ�oΑμRi‚t1:Π ˆ‘οΤsZbΜf1,ηΚΜάΏΓϊ„†IaRt«¦;Ιυ„“Τ¨ϋ>Ϋv̌?„όNΏLοaΘσΗ½Σ2jΣξ>Œ –Σ+kzταJ?UΔ bͺ}Θϋ°+DuΪ§­#¦ίN(kόϊŸΏ_Ρϊ#SΫ9G‘UA\R6)^Ezb­ώΦ*έzώ¬Uxώ8«‡ί*’ψυΕV]κz5ώ΅¨2Η§θΦ³_ί3JΪ6•―ˆZcш‰™Ι§β­Ά³{ζ½wZσMό…οόΛ¨άjw^§Ϊ-q!p=Έ© τfΧ$"#άRΡ` "9ObΡ"rΡz|iCΠ«Πμiώ}³Y2εOa»8&(`fΠ°<Οσwͺ±ϋ$τ'­6ε1Έ€v~r~{yuŸΜ©!,ΚΊm΄Zs\#¨Xω·)|ˆU�Gά‘Ηdβπτΰχ›|οΪ½@žΈc‘/ϊΖΛτ›ςgG6—ΎVŽΨ‰"m>'σFe«)D‘)?ΐΚzžC΄gǞdχ½d8a‡!\ά�>π>/bdŠTβ#‡ΰ¦ˆΓά’ΡΣξΜ0εDχό{ί•ΊΫZωΏώr˜Ηy?­`|ΩghϊU4Ύ™<–›H„ώΙ흢pφvάψ ωΌΎ§‡?l€NΡ ₯_?μ~Ε[·Βά@ΛBVλ±…iΎΥρψ¨O]μ쓏Ηγg‚~z±_+j“–)·•ΆάŸ„ώ5ώ9v^Pοϋ3}Ο•<ƒe]έΙ§8Aφ;V€φ§Žm΅©»©š€|ρωΣδλϋΙϘ¬mύab†;Έ’Ή7,~i›ήΛΤ€8 ηΙΰύ―μΉζ­F1f#Τ:οψ>rŽHΩ¨qφΦ‡‘ؐGZΗ7‚F¬ΦΘ‘ •h‚ „ P“Ξ›υ<°$&–ΣΔμβ$υ„δ#ΣεJ†vvR‹Φ£Ά,…"l­­—ΔM-©–Xν¦ϊ‹˜₯"A*HΤgοΤwΒMμYGmΑ―wΕ=M_TXAζ @Κ‹Βήάœ?v’Q˜” ‡f ¦G‚?Ν ΡΤeiŸ·ρΠ1«›ΗΈŒDχΝιΙκ,rΘμ‘€"Ώ$|˜¦™e‘gζYηεn—ζ?3yΎΓGςθ|ΞΛ>‘­"½- ƒ4¬cάΔ*JŸ–av†XbΔe=ΗAή]·baΝͺΤc‘ΤΛΈwώ€:ΎΪ΅»:ǟυ[Ι*m΄€ŠΒΤmZP ΐtΞ/$xqί»μΉ=«γσJ?<?3ζς‘’¬Ϊ怏 œ΅Άψjf ©$·‰ΜΙμρ©Λιo“ΘφΟk~Gήs5/ιwήψjσσOΟ—w‘\Νζ‹ΕxH1ͺ0 £΅U@ΏŽu‘Ρሑ�πsνέl₯Δr—Ϊ�σ�σšή³«,yЍJyBΆ―*¬lI4N›ίοΎ νΔ‹4­ΩPΗέγτο»/΄²koO¨nΫΰGΉχ½«.—₯έκ―->­ :…άŠY€ΆΞw>)W{·Α)žOΘK3ζωΘΝ{MMRxRΌΉΟ'JΗO™€hγ^™Jš±"΅¦w‡ΓΠiΜ€δΔΌ~L™;SYΒdDA5ύGτ½ƒσWώq:χɚ;kΎKΉΉσzΊ–™r£λƒΣ3ZΌaj@ά₯§Ω9‡‘ν±–\9�Τrχ/UΨ0αβΣd?„ΟœHλες{WόβόδΉ¨κV”ώ|Ώ—US„§εη˜'ψ₯δΦΜw0DNθAF؊`φοeB9ρ ―¨Ύ§ζΗ³΅ΣΜx2nzϊζ›τ:ξΪN\Βޝͫ¬ΦŠŽ.»Šœδδ)ΪΒCpy§ιΊ„z₯…Ά‘β.²Gό²)£―Πs2βι2β8¦bz#<rLVŸΗΆ)ZqJΪ~¬ ΡΫY…Vϋύi νΠβUͺ{v¦4ϊ!ϊΞrDΌ5*‰£jšn+ŠW©οΧΗTϋqVι^Έ«©ύžψͺρΣίTQΣΞίσ–>go-ώGω†Φ 8_yΚξΣΛφ£ΉŠwυnHωEϋσ#K,±ςίδμ; Ι©ω»ώ§ζ�•¬ΟΒ( £zΦ›‡2υέτΌ5Γ»Ϋ4UU‰΅ ~3ϋ nw?EOφ ΦΝr'·Ρ;B@B hTŠ…ώj€jM;ΆΛβr8Ξν |Ÿ™7>Nσ?˜?3nΌΈtΩ§Φυma‘IŒO41—2ΞWˆ H 4_φ#;Ψj1γӌ—ιό{嚞ΟΤgν)γ”MΚgΤA1Ÿ-βΓ£φΟΚϊ4–:VŸjΑ=;khγ’‹UPˆMΗ*vψ›Δ-3ΞςOŠDχ½†§(35ψύ 'Z•³Gg?ί”jvŒ0(zš,EUO͘ψΰkΑ rFΟ3ψηϋί•V’ω—ώrG†0³Οζ{Ή.&iPE#ΘΫ2υebU*Η`ΓwΪ1hO”CΜιdgΪ²—t€Oην:Z°ˆΧ‘ϋ,j�Άϋo†yαΨ»�Λη/ωΘ“Ώ’5JΤ Λο(Ώyο™!ϋΨ»ώΕ7)'ΟώP²h΄H#5 DΕiχΝΟ?YwΉΖΰ#“@†ό˜ύ!ΕΨϊ¨ήΥΊΧϋ0G?φγd$<ΓΞ_σŒΊW˜ƒκ:4’jŠ΅!M΄·χІΥ_γ›m'mΚ™Ž!φΌ‡jv›TL£θŸxδ}γτ‡Νzίδwζ—₯¬ώ]“P·AD½²"Tb³P.ΰ R3{‹΄΄ω9J½ο%Ÿ°5˜ΡΔ;γ»»ΠόΙmκG.™s !έ­₯‘)8O�UFb:t9•<ˆuσg‡Υ σQ··Ίšxmc°–K“)Ω�L„ΘκTlάφp>ε9a /£ΒD€"o»«"ΡΌ₯ζ1ήZΩh^\Υ΅;ύ^(¦²x!‘TœŸFWb84/F5$qp@Ϋ+ɨLj)�7#‡6R!+"ϋΆοξ―ΈΎŒςΟόαߞυX‘o0\EεΛk„ 72“ά¨ͺ¨h¬Β ’Ϋ£4Ωϋ >Εχ;ΌΟ?{:χn_]Ωώ[ycς―Ιχ~VӍ―5S¨]ΘΦnˆZNύ φGlζ΅̚™άΟ»Έ{žΗ²°bΗ!‹@Ϊ|ΙκωλΙZΟQΤΫ_K2²Β«P?†_¨ϊ€ξM˜ΎTόή½ΏσGζEώ™�Ι‘g¦D W‘qΎΐ±ό3ͺμΜcœύΛδ~ΡΞzŽΠ8‡Jψο7¬h—&ε½BΒhθ½»ύzμ•%œ―Ϋ©ό-ΠR‚™‰“Y)d=—²πβΐqP6 ž§Ου>uς>­qεΏ:ω{Q΅ik}N+hψ³ "YDg•,Έ$ϋGΆmuΖLR‰δCΔθ3>¦%_3OΨΏΜ.κχςϋ_X"ϊΜηJ™ήPδ•Z΅Rή Ώ†pzIš>πχ~%JQχ‡ζGόγ?™¬Ό§ω±§άή2GcͺGqc$οΔ2ς«¨Vͺ�I>9ΩφΆ—N@ζ7xξΔΚ!©1ώp#τ‡άΎe�œ°ό¨―gΠΑ½ΧΡV5MKLZŒ‘"že(c>|η°φ&¦q½£οζξςv–Ÿ ΐγ³ε½|_]λϊ=§η›ζ_&»>˜<Νc¨θΦw12„š[”υb1!δ5έ75¨Ξœb‘œy9π~NQŸΧ ˜NΖ@ςκ~­Ÿ½’76zΤ’v―^Υώ'<Σ£Ώ’S%ΚBk'u·ΈI’=©*ό_ŠεψΔ8}‘γ.ρχ3\ΌΊυ‡Mxb«Hv)ZiLUoπΐ«ΞΈ­­>έϋb­Pxb—ΣϊM�<δ'’iΏ,)D‡―ΣΦ™ Άͺ§ρΒ¨…†*©ΗύΌ(u=ΎxΌtΕ ΐΔ1%ωΟ�9Ώζ—»σεέhš|Ϊξ‘; ‹ητ`,=’Œύω²ΠCiLϋΏIzOgρΧϋΝ|žεΘKzB Ν]وβͺiχœŽcήχ8θEμšb¬nͺτ!BrP)΅+]σ_=Ϊ¦vΩ–ZΓ �“ΡPXΫtQZ‡Ϊ=ί|­Εœ‰ά3Λ:xΏ‹S΅λFc’ηˆζΡςέ²[m�Κ#Ά d‘{8:T„LŽΏ'Άi‹ £©΅Mi_ΌΣππΚtYnΡWϊrέΐΡΊ‘WRΌJ†δ:QTšόNLlΗco όΏ�œuς?‘<ιω£G<šΕν΄ΦΪ}¬Οκ[Ϊ%ΫΦδΕΛγ>΅δ”ύ“Ύl5§›>ŠG`~uΛδ‰GrΛ,cR—3χΧΏ›θ9Y–><yς†Μ6;ύΏ~j€˜€KδίωΙΙΒyA-ΐβnεŠ(Ξ�i€―zœΙμρϋΰυ…3χ<·ΛπSJjBͺRN‚›t―Ώož]–^§w›i³N Γ†ώ¦ΛZ νψζ4¦αζŸ{Ψtν5c· DΟΕvΒ‚¦„οΫ°Lf]YΩξM ςϊΟŸθπΜΚ Σr;wOΔ§YΈO2ˆ*Z˜ΚΙcm<LXπ=Iκ*¦κΝτd£˜ŽLF¦]ε ό·-δ7w^_ΣeΎ‡šΕ¨’υ@Z ςRΐ=ς᨝pΩλYg—>ΎνΩΆ›£ΫXΒ"΅΅Žή$’€¨T₯k@ͺ�RεH₯w\¦Rκ\yε”Ά'ρψύ¨Ϋ»4‚@„8n>Ηψ ˜γ•—ώsέ%―•΅˜¦Kvt yΨj»MκΘΡv4O‹δωΚόβςν‰Z‚ρ+ΉEνV¨'ΐζΣ/Φξ§fŸ&ήjπh_™^bΥ΅ϋΈQwjp₯EwξGNΩΥβ‡Δw>IͺΤΗOΪ™rK&ΏCσžόΙζ+Ζ™΅ ‹+P‘c…PP3q#“υΛqΰ†1@:νojηΥJ̌G@ ΪSΏΚŸ.\ωΓσ/Ι:J@”W—ξίŽ Vυ€vά~σ•λs 8'3έφ˜φ^ŸUŽ=ΖΟΊ;—ξψΣ"ΈΣM¬ƒΥŠd`ѐ(A �Η<πΊS>'›ρΛσ«ςkΜί•ή`Υo_Ixό₯ͺΝώΥΤ(Y_ή¬? UYjEZmα�fφŒ50ύ`n?KΝφ—gΛ ŽHW;WKιψζπy9sE)θA¦Ω²t—eλ”vΟω›ε-mKj7ΡE¦iΚ¨Βi‹W“s­B²»fhΣΞΝ άώ;ω;žΚ1όΤIίΈ~ΎκζύΰHŒ,m)ΔKšΤ±₯@―Sžn^„J;ΙΧσ©γΥ°IχIπ9<WΑΗνώκ'ΝιgυζK©Zp%m<>Œ)ZO_ՊVυ*·ίΎ*·Γξ8iηΆ*ολαŠΫΤϊΧψŒδ©θš‰Ϋ#Ι*Κ™0„J~ό)E UVΏF(l VΧτb…DRμ¨’¬ΔΔα Kρ«σοΜcΝίσ_˜wι/«e€κθš{Τθ鱬? ιN|σq¦ήlόήί±±˜bˆ#πS} ήEEd*ΤjκXνΰ~μΑΚl½9ζ—ζ˜Ό‘€₯gθύu‚ϊ’FΝ―VN"ƒ‘ρνχf_gθ᨝JκGmφ‡δtΎ$+Šΐ’-δόεwž¬u8u½MΦ4₯eυ¬νΫΞ � $€²“·Fό3k“°p˜Τ ΏŸΨρXύΞeϋΜq1ξύo§ό›�9ωi{<6Ϊύ¦«ε2υ{wžέh)W’hJΧφzΆj³vxο%φ΅Μ‡oi3lx |ŏ˜}!‘ΞB~RjvΡMeω’4“©ΰ“\z-^©ZHpΨψf·'eκ`Mγ—ΙΈfΑ’ΈrDλςz½·ζ”Υuσ6‘υ?³ΡΎ·Td £αbγr§1Ο 5ΒoάXœDυω€ίςΊ?)νM₯Ηζ?—Vqp‹θέΩέΈPp, aB>Yg䳑cΎE…G—Ώxgί€,uXξτϋΨoν%'ΣΉΆ‘eŒ•b―ΕΠ•4jƒN‡lΓΘ;μέ˜š<ί!ΞQ^+iZ!HϊΖ«ϋ|$·ΩρΫeφpΌ„ω©μ8ΤeπϋΨ‡–γ‘μ3QΛμχ―Biνώ}°fΨ»}M [Υt,ΙTEBA¨,<`d›©Τdϋ^©c 5v«~Ι(WρΚΑtω%{²XΪ2x+ρzΤΈάoMιγZd­Ε1=Q Ž$δ”5έ“JυββΈAc·U0ͺ«ΔŠ8†%”Χ­;޽ΖJ2¦ΐ[9£Tύγ5�–―QΨ1ΨόŽγ%Νͺp=ԘzdS‚­)ΔΡNΗjx…Θ_σzΒΕεΫΫn_ΥΨ’ηί@άζ~‚ͺμŒ|"Sξξx/–’ΊŽΌ@W·ˆ†‘&₯FΗΫ3ςš™v'xƒδ$~tωnοIσ]φ²Ι4–±–d!a.Ώ E‡ΓPόΞu˜OQφωΎQνNŠX΅'6ζ3λ[έsΙlm§ΎΊ·Στϋy/o\-ΰS$ΈέUjH©9œHˆ³°yΌp–IΐY=εϊQ�8Οω%qδϊy§^·γζ{ΨΪ3nÐ΅ά1_ςΐZžέ3‘νŽΡΏwθiύAτΚμ‘ ΕΗ“ϋΩ ?ΡήσΧδύ W’E›ŠV•―ω>ώΓ Ο^μs δ§ζο#yΟZ=ώζ;΅ε‘΅t©SΙY�9)ίΗΐεψsΟΔ h‡2‘D\O0yΗ{σΧΞίσ‚:νǘnΌ‹ζ}>ΗΛΧ<d[-Qg’βΥ�l+ >’«Z7bM3¦Σ{F+,Iκ*κuZŽΘΕ’|XηΐB ―‹ιΘίωΖ?)ώP‘­ΘΓΜώw“’�‰g€΅I‹ΕiO�Γ«±ρ§νΦΛ«τύ0ώoΏΏξs4ϊL:aθήGœ?pξ§$Fα) ? “άwΝAoo's>pΉ$ό+¦Κ΄=ώ5ί'‡κψ0νξ½λY’]*ήΈ²[Χ­#­?«©š·‰W}ΕZ8Uoс_ΥϊW92‰Ύ4ϊq₯TT?vD §lR¬Ώ«¦*Ό£U|ρATŊQΥ`Πt½[_Ή`–ϊ …Φ£3ž€ZΒώ%i‡˜€Βrο4όΠη—S½›RΈ$Ν«\ΛrMI\ΘΣ=Aλ»f�(αwlϊ.‡‡'ΡΊ‡XYEx�8τƒιο㚌œέ΄Ή<ησΣL]WΙΊ‡0΅΄Q=Ή$Ž%>"XŽΐΟΨφDψr7Cν—C’'˜ά|?ψ.έCDĎ%ώuΑςP―5³H»'.|Ά ξ(ΓcσΒBΣ0°M:YXΌή‘Ί7ΧVγ iaτQ:G +·NΈ7œˆˆ“σϋ©¨έX\ΗcqυhΪβι`I!ˆŒ’',κwΨ©φΒ,lΚRίϊ© s§\Δ4φ’Ϋ#³§EZŒzG—€+_ž&VΔΐŠ<ΏcυΧώqWG»Ρ'τΙdΎŽζΗ_ΊΊΥt‹xM`ŠήκJ°E$•¬‘λSτgŸφζA=Iڈ�x{m4pΓpn͏ιo_ΞK](ΤΌ›`ΤΤbΔό'Σ_Ϊ?NΩGg¬ω=cWω±GΛB–Ρς’uξ+ΆΩNnnΓSΜ½“B¦V<#έίΖ ώω―™έκdz%½cDxžΝΧ‰λΏΈ?†ΙΥΛr˜[»).A«zlGJϋŽΊa,d&RLjf¨Ž ΧέΑξ:ƒŠQφξ²T0.iίβmΎκΣοXHR.PΗƒ±�’A«oά•4'Ϊ΅Γlf:„±… Hτ£eψ@s·jαeŽ&ί �ΞCLγOΎ #ρpΔ6ηψοό3qΩ€q¬m¦‘ς,ΙrτΨΝTΗmWΔS =2ύHυ*½άΟ5?-ΨλQΗόIr²²,Φξ‘’ESTζ΄"ͺIΚ±j%ŒμiΦΟM‰�Gqά'ΎKό±ςΦ‰47v:]₯₯ΫάC 8Φ‹ΘoAΠoΎGQɐQ$‡γΕ€“Š&ΉFŸIhΆΫƁQ–ŒCΈϋBΏ<ΦΞV]~\„³[1Ί–cΝIΨ† l>œ2αδ6½§)#4r ‰+ΆΗjwρΛξθIwjkAΤχō Ε« rή‡ΉΐYU‹\ΰH§½7Fχ―Q•€ΏΚΌ—ΝλΨIipάΠύrx©ρϋˆzΙΜΒθ֜ γЬ"»Œ X@§L)SκqWR˜ ΄p«[ΰ₯Φϊ+Γqβ{η(τ+ΒυΫ ͺ…ϋϊΰJαO€tΕ+Ί|Ό1UΰχιŠͺƒΎT π_ωΚO0.~@ώaΜ’˜uΫh4&„Ι¨L¨Τ?ρ[24±βΛη-άΞΟΖgž>[Ώ$Ό½οbXΨ*¨ύ―Ϊ§†mσŸCGοή]†fTer©Ι”‘ς'υζ£)’μ2I§š<ΏϊSI»±ΈS$sΔc‘ψΉsΫ‘ω6φΙi³πLαdŒrΔΖ\ŽΟ̍cGΊςήΏ}‘jJaΊ½&·αΘjοΥ9έbΘ2ΔLr/jτ²ζ–)σ‰ϋ:’ΨΚ0†VdϋJ\†%¨ ±n>4]n:6 !6χ5’._ r(b³žͺ]v#в©#ίd9ΚΨΪΓn$τw˜ŽHΩ’@ ­[qέx°£E{W-‘� όy‡‘~XyΜί›žl‹Ιš3΄Άw ―ζ}X€!³²W˜ψ@8Šςϊs[«†“Ήτη»τΉΪ4΅S1ΏHϊpύΌŸΆšf‘e iNiŽ—€ΪΗmee „Xγ‰Dh59ζΩg)“)nI²υφ Ϋαξ|5�9¬ήrςtm&\Μβ€Π(`l»4ϊ&υ½™ύά?­ϊ_•αT‚UΨ -Oλ˜Y₯»•©;’φ½#*9*Τ€V»t‘νΎ`“nS+,Ρ8z\OΫ­BŽžΤ>#«fOM@#~Œ΅‘όzWΓ¦@YX³…­X·P‡ν|ˆθN,ψ-9Σ₯2";ρνΗφˆ―J6ΗοΕ§,hμiΓ?ξΎ6§Β6$Ÿ“n)σΒΦ#ή•κD¬,hVŸέšό5κhON™&Μ|ίΞAή¦^Q95φŽύΗ΅k›ΎΛ©κ"x4³<φaΎLΗoo HγZς·\ΏT,—.41€χm=CΗ AΫwW–»b)Aά|σY.nM‰/BΡ§{V•[ŸίE΅A4qQξ7Tζλ³ξ,=cJ�ςαΔ"οΉρU'Q˜§ΚDœPYΎn§β@i#fae!τΟ@Zvλά_Cˆpζ,£gΈG¨HQ@M|�λψdƒWGηΗόε―όδ5ο”bΘ~DΥ}4ήF·:ζ£n9KamZ€`„“Ώ‚όσ‘μNΛΟ‰zΐwŸΤ>φΠΦώGώφ[ŽΌ1οσΣζϋ ς»QΤuŸΛ_"κΊΉ‰υ-SA΄Ή»šgΠ|JΝΉ¨₯}λš \3N1δ$C—#ΔoΎ–βΩ~ƒHόΥ₯7:™dϋγ9Nλ z½πKΰυŒΝt-b–Όp%oγα…*dΧώ§αΎo؍Όp*™N*Υ}π«Χϊ9αQ\ε‰Ώ–τΕ-Χ½{b­ U‘τTb«Α γJͺ§θ#Ύ*1`_ ΞyλΒ%~]yI7›]Χ§Υ.�&’ :h:ƒ$Ω°μθήB{‡ήν»–B{©πο–νœ˜‘ˆ`Ζ­ZvμOΎdg“θZzrϊΛ–Œ©Γ4회²NIw½0ιζ8Γ N*ΤWβ`h)ά_~c œ.Όε�Όσ‹ςΣΞΦςήι‘‹/0Ω¬†Βυ�α3­Ζβ‚₯H­Q›ΞΝνS€Τ·Qέξtύ«Ω˜»F}9)~‰w΅πŸ˜�/Όιε«½'Xςυβ-΅Ρ† ˜ΌW€ΘR ›”l~‘γf fΡΈΘwΧ_‹Γj{#W§‘‰"φ#p}ΙEΆ…ζ=n蟑j:Πΰ¬ΟΘ±^!©ΔQ]Ηω†[<°€³ >.>=£4ͺ8δOΈ½ΣςσώqΣσ7Ο·|ί’&ςΏ,‘ ί0κ1„ Ζd„ο"€U”€sšν_liτΰοΔ{‡λθν4έ‡štr~μyσ>αίο~§~QώRySςŸΛί‘|΅+›‡kΊΜ΄77sΣgsΠ(© «π€~œγ5Ϊ용ρLϋ‡@μ1Cx1ŠΪOyόlυ»ΏέΫ΅XQWˆo£nΉ­”™ΔY~z~~\zߘ~S¨V;Ζ+шΎ=σkΩΓχS/iΩ FχŸΉ™yrPͺˆ§t‡ $“˜yE·κ{N‹*˜Q… ;|@]ϊζ Žξ8έ›*„Œ@©@@­z€l“vP—’( §Ϊ Δφή›ΦΏF ¦μQ6„ŽT%c.«λ^ψͺ=”οL[Œktή8…@W†β€²oτŠahκΪH¬†&aΈ₯9)#οΕΕΚ(ΫΦnc‰e©ε±Dm©JT(IΘΓ_�Ξ@_¬ΦΖΏšΆ$aLθ;*;½_F’^i_–M,¬dηρzhBΊA\ž~eΛΔ=!ξzDμcΘ!ˆέiZšΤΪ£5³Έ™bωσ_Ν_˜?–�šζ‹Id/λ K ŒςΪΚπ3F₯ oΏΑNΫo?g`Α©Σxgκοί«Δφζ·YΩΪΈη†ψd�£ΚΗ0›.ο'ޟ”_šϊWζ–΄ύ[N­Δ‘;λT?Ό’£‹ƒC^β½³Φθ₯¦ΘbG»ΝΨΒxυXΖlGΣ/˜=ΗΈ½λOΈ‚λΣε‘U`ΰΛ•4χ|§ 1σfΠΜ=%’¦54‚Τu5VΕzxΐ<ι䟝Ώ™zwε§‘΅o0Mx‘]¬M‡ £ˆΈ»qπ’‘έΈυΫιΜΝ”κrŒcγδγœ1—/ΣύύΓήKς§ςgς—_όχσΕαΧonžΡε:‡š<Λ$m#€ξ‹Ÿ‡Υ¨)AΧ ΞΛ΄5ΠΠb�_(Σξ‹I₯–²rϜš»χοτߐιάύ―΄²΅°²΅ΣmaX­΄ψ"΅΅·ŽŠ�§E¦yόμ›<ΛΊβ³hKI½ {Eœ© «±λGͺ}=r5 Ο4x°Μy=„Š;ƒLΨ<κά wπΕV»J-ΧηΧVχ=Ζ*»ΆΨ₯Lντb†«σλ…/Πϊ7^�†rDΩπqV‡)ŠΆ }±UΛψR©JΣUQΪΈͺΈ°/ΛOωΞquΞ/*y}d€~UςΌm:�y©Nӝ»*ΉΆμθΤ${Οά‹±#QΎςρ?,ξ‘ž$�j[½>CΆG?7·ΑTϊ3ΚΑ Q%1hυn|3K™―3Χlbgτ ­όFϋ Ώ€1DTΘΜM1šͺ‚x�8ΈίΕOL"nΘ£wε:π0Ή΅ŠαX«?ͺŠκTΠ‚  žN9ˆ6 (κ$6΅/'i6ς mτΈ#•Ζhβ[Τΰ¬:_δΞyw³ždo#ψόnΟl¬‘c5λρFΐPW»ζI›9Yό~=Ιυ’§&ͺΣόe4θ ΄δ’_ͺ0XdR¦΄ΨS½{ϋδ gˆYΝΟΟ ™Ύ_52§₯pΑ< +R;ζσ³€π$φz#Ά?‹7ςός7¦c$lKξ6vκs(rσDSΪ<»|]š‰$­�ξ6=©˜9#\&«Αθ__2BκΆr»§bξ|+•nλ†*6HbσjΊ½Ό–κ„σ~ U'qφOLΒ‡;T΄Χ,šoNwE2…˜jzuόpW&š`Xd±KhαL�’κ% 5Θ‡Q˜ζ>ΔΥnͺ₯”«xRΏGLq₯?±„y‹RAަwo PvΛ -Ογ6)ωρωέ}λ-ΒWα§ΐkPλLιϋ2ν{N\:BTλΛ+]2Β΅ψaŒ»x£Η§\§?Τ\Μ;cΈ=«Ab°Ζ₯‰aCΉΨS··LΦδjΝή›y—ΘϊOœt›έ3UΆŽγOΤ"α7#ρΏβΒ„0`H#prZ}T°HJ&ˆuyγ4,‘βŒΆ#ρΛΙρuΧε§ζΏδǘΏΔ—Ί…ΥξŸ«ΆI 3T­ε±•*Hό3«ΗΣkaΑ˜�|�Aθρ™ϋYΩΣ94r3‡wρ{₯RcwΈyGώs>ςΒώ2ςw7–;‰tΙΒ5P…w0MN ΆΗΗΓ0³ϋ={βŸΟυ†0νάs›‰λ_¨ξτ½CώsΙQi·θ~^ΦuK΄‘c6χ ΌQ˜δΉc2IΚξ­ΏJΖ‡³ΩΜͺRˆ?ΖΫ¦]©€«R;mUχτ½‹η©—σ/ώr_Ο:tΪΌKu%€\ν΄»E˜YΨΕNN‘ΌίWφ˜3;m›kΑ٘O3Τ՟ΗΨΓ)λe–£ο΅Χν>{ίGιε?喝ωoε›Π»*'Υe+C,νBΤ'°νœ†³S-FC9|=ΞΓ6P@„EDrύ§έ·§Ε‚ΣΪ ΣΫqί0₯&Έ?|ζ#ΐ‘τζŽF¨βΐΤlΩΊ"ΑOob‹Žρμw³ζσ!gα.?~*ΟΚΈ² mχ RxΣϊkο…V‘±ρΕVοα6�Ρϊ5ZSožrDίq_£hνΕixωτΕ+ǏUp“νŠ« Ε\~Ό 0/ΕωΙΝI΅/ωΙ_Ν6yΦUΣ/-4Ψ•z*ZΪD8 5ΝώŠ5¦™'νzNΚ �<’Ÿ+ W EsΗ…jkΤmύsR-ν4δSθ,Τ'ΑΘ­BƒΨW­OžiσY@{¦ˆΐFœΈ³©ύήτj.Τ<©ZŽω―%κμΦ倩Π7Ω­GCρwμG|œγ ΄L³ο·¦ΖœI ZΠΫξ+Σj#…Ρw[dh~{ψŠtΖΠQ–ς„c‹Ι«QΨΤx‰ωγlLz§PΚͺ6<ΉTΧίάτ8ΫD£i±ρ#ρ€SAΤΧϊ`nΓ±~cΞBΝ%—ζg–Ω«WK‚δνEξ:ηGΩ#‹ώQ‡-ύ/Έ2?+κJρ[€WcΈρΕώŽαήe…‡·hzν«‘ŽΣΥJΰ €sq«§Τ㌢&ž™g­\LAύ*μ"(ωŒΗ"dτρρ„α‹8%­ΈΣφ]jkνν‚Ϊ†άŠ$ΨΨ¨W’F n+ΰzβΧβΟ‘V4sτ$–Qπ03ί ‹ΝΜ—Ον)t…H5'―ίMŽŒ—G˜yΚώζ+i#~%ؐ”'‘ωƒάζFrvΊ( °όώόΩ»’[‹‘φ)€G Ξ«A·ŒT;ž£ε9iys±·ˆšw%@ιšνHυ—g„“Ž7ά>η¬θˆ†Hc«�H.ŒhE?Ϊ₯3e9viΡ,¬δ"§19TW―z|ό3 ΘέΊMDδ>)όšU΄¬±ςβ@Vβhvϊ; œf⌲g—ωώq―Θ~sΊ{έKOΧsήάiηκςK±�1‹Ɂ¨ύ¬Ω`νŒψF[wάMT4ڍσc=ό^uο`Zgόαw—ΣV22jΒP±ΥαΚ€94‚ŠκΤΠδfiφ‹)p‹p“tXκ@KηχžΆϋςγςίΛ_—v:w–μΞ;©={Ιπyœ’yΈ†Υ γALκu3ΞnfΚsLH�ξοWB‘Y«ZΣ―†c[ŠASž>Q3PB„ ‰έ1;± Rlδ5'χlNէѐrα/SΨ¬€υ¬¬e�~[BΫ{ Ν”~σYH2ˆΕ‹G©ΥΕ’Σσΐ•‡ΈϋρUΓοΕVΧ ΅ŠΏϊ6sτg(^…Τ‚»ψβ•ΐ{β–ΖΤΫθΕ ‡έŠUW―ρνͺΈΕ‰E[ ’βΟνΘ«χ2LΟηζ&²ΪΟηηδ₯L’yΫWFZς§£9‰h{μ™ΥbΗΓ¦Ζ?’Ηegβ™ƞ‘δε’+Ν(@―Z\ΤjΆ{­$½6ϊG)n±¬A½2ΐρ©$°ξHπμir m‘βzξ™~Β8+›) ΠwΨψ}ω„E:Μ°eρΝKήU�OΗ_CΎɝ•ΔnB2»°†G!ΉωΆD΅δ‰ ¦9"“Š­)Ηu4$ώKSοβξ&$ψ*k@ ^ήΤVά} •γc̍Έ€6?Ϊ+‹Ι ©ͺ‹w Υΐίΐž+ŒΩ~fώx«~jθφρ‘˜ΫΪΞμ£j|akCγf<yzύ,?ΊςύΜ‡ΛΊϋ4k ͺΦ«κTƒAΪ€ ΗΟ–=KΆΙš6KΫt{-rέ£?U’]Δhj ηΓ0d`].yβ•ξφ2-be"PX)RΔPτ πA“$±Gͺaq£jμOŒΥ…xƒOςΊΰ¦υ8Βμ5UR‰HΘA^lHo–ΔδCw‹™%9°²Υc„sτ€gψ”TμOQ^™7.\DνjrhS\ΪξωΗ~‹ZώΘ&™ ΜΔWyŸτmF+"Π­Ή·Š6-(©‘˜ƒφˆ εψ$έάh5'{²όκόΠΣgInδΈΈυ\―Ω]©ΰ>ŒκτS gΫPγΖM½WΙ,GΣkώIG\Φj‡¬ϋݚW†5ά>η°hλρ‚jUψTu=js'$δ–ΟmΠξŸκλ7©!―"�ΔόŽ`Ȑ]>£»'feιΉ†$)5,+Ύη§Ž!ΐ°Κ­Q„H€MAοώ}}²N$Θ½ΣΈUcj,9ς°*FΔΧ±χθpρ4Σψ‚Έ4₯(FίEF6Σ ‰#•+°―SMΗ†ψ±T,Μ§α―n»`,h$–ΡN„T·ȝރ幾±εέ zSΤ²o5_α› @tš‘Yd<Ӝ“JӊV6Ψ²YήΏ†΅Mλ…["ƒXwΕVνγίρΗuΣϊ:»Œε^…³RGλΐ—~ΫoΗocŠ[₯6;b΄¬½†*¬§Ά,Jc¦Στ…‘&€O$τ�0ίr,Cω}Τ5φƒσ+Ο7rΟκΓ¨ω£YΜ„Ρ™΅ Κ°'zοaŽπΔD}Ξ.—Sΰη$ς'τΎςN½ΌDΞ SR7>χΫ|Ρk0“ΡτΎΞΤFqΎ Ρ5;i/֐ΚV±΅E6ι°Ξ&2:;³Π¬5©mΉG΅cψZ‡οι˜ςΕm91‰>Hόψ�œ›σ—3y;ςώα,΅HˆmgΝVς‹‡΄�Τ[ΫυOQ‡Ϋ&ΌFΓ|θ»+°γ!βf:GΏΜωw<ŸnφΔt’πtΔ�Ά<>C§w½žΞ ώbώaωƒNσGψΪβσXΠ-f†/+κΧeŒίX«˜R]έΥA–­ΥΜohtΈ1J'‘ϊ€ξθ[{&«Y‚sΚn ΤdjΟσ‡wό|XκόΩŒ Τ0J|Ή/αœΑnM= dΡά|<WΤ’οΕγ&€Ž΅^ŸvEΕ1]oq<²±e44^'ιθp’q�%ϊΥβ%€€πŠšν°πΕ8 LŸ›~ku/Ξ{Ά4ΩΩƝj9 e4ϋσ ΑιϋΛΪι€:ˆ}ετ–-˜Ι *>.5 #5₯³‹©•υ½67ψ N<©E+΅S”ιςΝlKΗΙy(¦ΐ…?Žp2 L…Β»(64@―MkQ‹W"ωEΔδW© §ή0ΫYΥ"Έ3©aZͺέ}²BTΔΖΠχΘΤ٘Ώ-Œk° +e‡˜yΚΊ³’>„Ž@ρ§ΟΫ¦YŒΡvz3Γ+~}~qZDŸX:΄(6¦β™v|ξ―Χ€¦ΎA2M€ιο<`ΧnTΎμΗΦ ™χΉy‰b‰ςjΡζ(LaxQ€Jψw­vϋ³]1k”=sˍP1R•YŸΒ½ŽΩ…“bκυVŒnʘΩhKr'Žυ­?ΟlΈ\™7qΔ σ¨FnΗ~›ψxΈς…§ά+πj·Δ€(O‡|-&$2;y ’Χ³Fߎ¦I%(€<_Ώk!XΈμά·j}ψX1ΝfκνίΤ“‚€8ΨxΧ�ž(™KeߐΎk·σ―ε/–|ΑkύΛάj–­G+Bx κAι›|Έ p•φ€]>ͺby₯!ΚώνΏCΧ2–†ωœRΟΛθΕ“^±V·Χ΄~μUoΣοLUn6―Τϊ:΄πλΤη*τ;;ψβ—xΫ¦o¦)^7<UUqUuιΆ, �XZΗqvίf Κ(ΩΟκΖ_IXσχςΕζ[)#Τ―υΌ:₯νΝΚνΠΝ3ΙΫoΪΟAΒ}�wχ8άBzSO/yοWΠ!Ε/mγ`}7ψ^ŸλwϊrtρΙΝΙΠφΖm&ΓΤ;λ}9δ/Ξ /Vž;Ao%ΌΥ¬KΔPŸεv―lΣj»6@]Ϋάvwoα՞b]ΖΎΞυ/ΝίΞ‹λKIό―ε‰Rώς�·zŒ$£ΫC(ψ—½$e;xuΙve ρ'Σ£ƒΫ½Ώωppa>²7?Νύρϋ?ω9ω'ζoΝMUν΄ΙM―—tΒΏ§΅XκΔ?άΒXq37RNΛΤζΛ΄;B:8ΩήGύ'Ιε;'²Ώ;?QαΔ>©uχGΎ_w7μGό˜žMΠ4ύ NΠγΣμ΄Έ’ή @TΜ€’I$±κO\σύVyζ™œ’χ“–Ζ0Ζjγ«Υμ΄νMγύΌΘΒ΄ˆχtΜRIεΗΦ%-–Ά\p‘\ VγΐwνΣ#Ec<TŠ[ Jυ #m»5cχoƒ„σj–HKgŸyΉυ«<qΒ#b…₯*w>dG=ݎˆb»%ωΧ¦Hχ_›~lž`ΖHe†:©Eά/Λ:L‚΄±κ0βdςϋŸ[ye$’Κ©ϋ@^»η?™Χκͺž―jόcJξH@(kB~yH;:Y Σψ}SΙ©Jt―€ξrmlqSJ’μΗ§Cο€rGΔC¨!E�‹Q†%§¨ΐ;4^?§l6Χ#Ρ(ι˟ ΔWΏLmCσ#©Θ*MR:‡sΏŽ[;MSΰΞ›vŒήΗ‰AλΉ^ΤΫ:Ξ<ž‹&ϊsξSό΄—ΤΠτΖ­V8#F―R|iΧ ™χ³ŸάΒ»žέ§F‘•ο]Ε+ΣqςΝtΛ9[Ρti€ˆ¬J�RA-°$»x˜“νΒΞΞ!œ‘ ³RΒ΅#Η ―ΧώdΣτ{ΝOT»‡N°±…€ΏΏ™Υ#†%/#>Ή<x₯#Β“сΕ[“°ί}žwa�9ω=4ΡY―ζ6‹υ‚j‘ξBV΄ή¬τ#ΎgK²΅@_‡/“‹-FšR‘š�Yξž_σVŸ¬Β“ιΧpκ6ξ Cqk"ΚߜE†`δΖ`jB½ϋ1Λ¦ XάynΕ½Ψ•Wχ‚€t ­Qτδ]|ΆE5Β‚μYxϋ―ΰ8DZΛα�ωΚ�ωΘ»/!ι—ώBςΝΒ^yίZ²d&$iPΘυξ;9a:ώΦoϋ²Ξ’C$‡ξΑ�Mδ<»ΛF―[?ΫΨ7ϊGτ―|�œ·šΣώqςξ Μ₯₯“Q»OTς<.žE§€=iοjLKW—ȁφUŽ8‘}c2_Xf&°%iλναŠVτΕ-b«OߊVŸ»Y·Ά*�Υϊ9Σ9W‘lΆρλ㊷αMό1Vΐύ}1Jπ�ώ₯UFΨXbΐ±=κ)€yΟΊ¬“}^=?Λz¬Ν?ςͺHϋΘΙΔ@ο#οg„\β<ίΟΞ™εXu­"Φ €HjίΟΗrNωΦΛQαΛg}όŸF:“ ΦΏ)υ‹e–γK�J…jV^[v2±ka-ŽΕΡj{,,γυξ―0hnμnΘ’YέBΥψͺެ;Χc™œέ£(J‚>+™eΉ”Ιqv=Iδ¬χΚG«uvZ˜FΜdLŽηsΜΏPη5�)4Iς―›¬τλ”ΰ!²˜ ?֞M™ΪY‚¬ŽηϋgΪΊ-Lς¦$-φ{½.―I,PΓ†c9‰?₯χ­Œœ€h‘•ˆ(ν8­Šμ=³›‘έΆbΆ?s(€ri Vβ,ΏTΣ+"Ϊ/ފ‰šΏΌΌFή *oN€`Ν2H©%ΰΌROQˆ₯ νύ˜m¬ ζG˜bΉΈ†B‘TPΥΊϋwν.fšQ‰έω«ihΆŸšώx‘—κςŽ΅]σ)^šη·ΑΈ‘οϋŸOhtHCΖό$d Σb;œΡεp3ξ^¦Θ&Œ·*žq‚€S΅j2‚κ³G„²VΎ£6ΛMΏQ7~JΠ72€6χλ€"B‚ea>.*A©₯ήω"Τei΄L AΔr οB 8$‘'ˆwbΌ^γ| ζX/˜B΅΅Π�*JHΫξiJe°stφ| ωΞ΄Yάσ!Ο]‰ρ:Οζτ’#Β,gςΎb4{*[А½kUc½2ΝxυhIπ#ξ{ύ“» θS‘`)»‚)όsT[€Μ¬’AF’¦ŽTΏξΚ%\y‚Ν4«“q'EJ­ 5zžB[ 4xEΌΫσΓΘڏζ'u�,iW0ΫήjΕυiηfzΚ²—ˆ? ₯37³5qΣgŽI ΓΦi�3₯Ι‚ψL†Δςο~My«ΘΎhς6’ϊOš4©N4SDVki”šV9)ΕΎ[αώŸS<x±›oΔ>sμάΪ9pζ_#Ξ'άG4›N½Τ΄i’m#R½Ρ%«–SOjUθΈrΩDOi�}βάlyg‹θ‘Έϊ+ʟσ–Ÿ~Yx󭿚-Λ=–½WΒ’ͺfγ‹μCm𬽇£ΙΚ<'ϊ&ΎΞNΗljcυ1ζ7ωŠzΏ™�η8Όύ―ωrM+DςΕ―”ΌΓ=Dϊό2Ψ’€ƒV‚&�¬ž ΥΆbαφw's‘”{ΉoηδεO·=»‡ ϋΙβαίοΩδ?’‘ήoόςσι;•Έ‹Κμάω»ΞχΡ»Ιvκk,9¬ΣHvb6N€τΪ]§CΧzb:yžαχΈz υsρ2_ξO9yΧΘ?t�)4ΛΚ£CΣ-–ΗNm>Ε>Δ0Η ͺ’ό‚οοœ>)™™JFΙ6}ξί΄€ χ=;-uν`JΣί­8₯oΛaάUi#­μvΖΥ―£ΏγŠΣΦϊ6=ϊvΞUθBκ{|ρUΤΕ+†*ͺ’ΏΧT_σ8xΫϊbΔΌ[ώrORm+ώq�σvιY%ςϋΩΖzοu4pτω1ΛτΓ‹4τƒv”^PόŒς•œ&u% „ψ@QƒΉΝΆ’{—ΆΣγ· •΄‹2Λ�dx«Γ½sΔ!Θπyμω›σΧK†ΖΟIš+$₯τŒΌy0P*΄eΨWί:ΛΘebήKΪl"γ*λWϋ_5[Η$σˆΈHηŠ’BŠΣ`Nmž:1β4:£.΄mZΠ_iWQ˜mΦY’ž!bsΕ\‚(‰ 8Ζc˜-“Σd‰@ςΎ];ίh�Ξ<~h�ΞEhϊχ–Ό³eε½GΟ>Li>©w€j‹Υ,’eŠI Τ$![ΦΌX°4γœχkhτ2„²JBηc©σ›v~^Π&0Ι KΪΟ§„ιuγvύx΅—”TYͺ‘¨œRœ;_œ1;;IF€αΘ€Δ�1’νο‹ Ά€&B(h΄¦€ŽΈŽh<’ΝQ#6w(hj“‰eκ~b4Š�›Ύ{(²ύ!ΑTšπZτό3{�!aξ{έ7χ|ϊΉτ†š(ΆαθFΌ©Ή§oΏ¦i²pržτ,E@Όx²�όTντf16]^se”<Šͺ*yέNϋε ©-(€ΟΗsγˆD‚uŸlύ’χι½~˜Έδ&±V°ό_ νĊž›SV©uPœq…4―#ξ:υQΝ‚kT{k™/5θή&‚‚™dC„QπoηHŒ‹Δ9 vj{σΝχf’τ•x{φyΟεΌκΪ,kȏJV―c³Ή―NΩ™­6=κΐ?^ο€ή»H7ˆ†PGZžΗψf«$@Ήrˆ¦qi=Κ+ͺΥ4§Κs€\L”ΛτλΫτtoJμ½:†§…:S*˜βΞ—{'ύ#wθ³ΆšeR*Z،ͺ.1Εϊž;η}'˞d²{/2ωr=Bΰφ·–^]y k›-\˜εp•"zhfΖqδ©ΗΈΏ>5ό΅ωkεK©,t [ρ«¨΄‚ν€·…Oy9†+αΗvzΉςNJ|½ΫΌ'nθ΄CΑŒ3Πίέξζρ%1!Ω»+€Τπ©Ϋ66σ‘?η?/t̏Ν;/ωΗL“PΠΞ›y~ϊtR΅ΉΈ–Ϋ‡c Sz²χ«νVM6œΟ©XέnΣ²tΠ͘Œ‚ΐ‰?Ύ~ην–—e¦hΪu­…Œ1YXYΔ°YiφΘ(£�6³Ο₯2I$Ω?kΣHJE˜yȟW·«h‘œύ“Ι’ŸvY¦;— ΄c΄OΌ=ζYu‡ε“U¦*°Ÿzβ•„οΣ­¨άž£uzv«ΎŠΏΧϊ6?ηLε‰Qz|»β­τχφΒ«‡Σ*ƒ¨πΕ £ύΌPΈb―–?η4΅eω«Ω‰ MλΪ=Œ1Ό€Nfu�ŽΉ™ ž>V~Η/³βe—nηη•β‚α!S Z·μΦ šžƒ2υΛά`=ŸN΄ψΚ5[>J΅ΙΤ“šΩKοrŒh|^ωρ壬y\]Ϋ««iN.£ψYω •ΒΖ”$ΣΎτΝΟdgαΙGΞ‡Ϊ-Ο€$sβοχμ:Ύ#τš ™ΠςŽH•Έ₯I]NΉΣΎlbAEϊ—ω}‘yϋςϋΛ―}ao-έ©}+[ΆhΡΛKj�œΦ‘…3‰νˆΟO¨4MΗΕτŽΛΥFŽ3κ χΕΎΚΠ4[-6ΞΦΗNΆŽΦΡ–8"βŠ5MOΎhrd36w(Λ”’m[Δ‰6$Κ*̀7ΜrβHΩLΦC±hXr4ΐŽ~cΤ`ͺό"”φ―κΓ{°­’ύS“[]R‹ϋΊ ό΅zbSެ?/۟ό­ΟΜc—UΰZ΄θͺ>�|θ?δ4=Ο{₯£yl>η^fΰ§³‘Q]‡Βk\ε£w¨X?7Œ­}?†’�7₯s«(­“ϊ¬ΐT­~[χ#&γς_Ιc, (ΌΓoΈ$Σόι…iΨ•b!•y œ”χ ψτΔΈό$¦Ξ·bʎ)ΘoM†EQζΤ³8…xΘ¨R7n΅δwW&Gv ­3}^V₯WEΚυΙ9ΨFο‡?9Π ‚ΕΘ—fN…)Φ΅§\ήφo7’»ΔzμςΛ›FΉΣD€(hη‘xΤ;{}9Ÿ­•I―³»­Ÿ½νz]™ΆB”;.ΞΖ»Ζω¬Ι.!ΙΟ&ω³λ+m^ώQH‡ψΉ)δ@ˆLb\|†;³;ΛΧΣΑlσκ;„! ©σΚe”^ΑΑžͺ1&£².(γΆΉo5Ieψkφ‚ŽΫψΰ°(&DΞ#†!ς—όδ‡ηާεk8<£ε¨Φ W[‚IdΥδ©6vκ}2ΡΦW=@7λbφtrŸ|‡Nσϊžw·ϋB]ŸΒήdίσG+}έΟΟΫ ~³}r­Φ­w}pYΔμg»’CN<·bΞ{η]` ;ςŸΔΞ¨ΚDςλ"φΏ=~Uy—Θή\ςΌσι3K\Έ“λ‘*ŽP:[‘#γeOsΣ0΄Ίψj'!΄ξ΅ύ‘-&s‘υ½m°ύ―F�œDΣοt�ΟO.Λ}y«Οg¨XEhf±{ˆO’”₯Pƒ½Faφπ2ΡΚ»ΑϋQΨΠ0ΞLΏšvκύΆ°Xΰ#τΡκ=IXςmσ‚#gy,–wM<«Υ5ˈ޾΅Υ£σ©­Dnzmί,Σν?ƒ—1ά ΠΞf:°¦I5€ϋαU•μ>μU£ΫlUa�on΅ωb­ύ'όϋ`€?Πϊ2ωΣ9G‘Tω}ۊ[ΕWΣ·†ͺφλŠͺ)T±/ƒΏη<υ΅O.ώWyEOο5}fοVG_JΞ SζςœΟμθήIKΊ?yv½“ ™>αϊ_ωzmνί™δ°°γ-~0Ψ³9έμπG“Ψ,PHρLJ}»5>Π‘$ψŽω%Ύ@’ξt(/νΝ€–Βζ —Σ—γ;ςYhNΥi“†SwE¬ΡΨυ~s~oω._&ωΓSΆŽΤΫi—²ΘϊJLΔΒ€.νNέ:ηi ΤψψDΘηο|Σ·΄•Τ’B{Η«μOωΑ»/#σUαŽhmcτίΉt·’H” ‘μξΐ€Τ³ŸφžBρŽ»ϋέΗ³η‡I3Ώͺ@rΫaΜ§½ϊS`ΙΝj8•B―]χ‘ΞD—; Ω8Š―"‘�€μΥ­;�¦C«_DΐΖR„Πί�šS|%JρŽLμ€l*vή» o€ υ' o%>¨‘w9"S ΛςώΰK�+oΟΝ5U�JΉΰwψJ­6λΆo�δ4=Ο}₯ίωΉτ^"¬P†$$d3�Γ`vιγšlΏQΜ½/MxT― Qzi˜ώχW—‰#FI1=jΝ^¦Ή&Š=UYDŽŸcάƒ½|i‡£h2ͺαE ΙTΫ‘ίΏ|K{’­UBC+0zqU]Είcˆ fy…³1Sϋ^­N•=<0†1aΪΧ 4ζγΘ=hGQΣ}²Nfς|-ωΝ+ζ€Ζ@j•jt�Τ§7ݜ:½$Gξ‹Ξ�(’9τσƒ—;©6νU}Ιρ̞Ρ5/ƒWgά_™ϋίNiϊtHf‚Ω#u¬cοšiL‹aŠfΪuŒ–InVJ‚Uw όϊuΜYΘ8Ωf#ΘnΚtνΞ)J<qnNv9JωΈy52#aL΅tM7κςˆ¬•Ϊ₯¨@aSΧνoˆ•κ2ΌŸ ΞA�Ξ>yγσ3Μ.­ε94qΌ1^³[²Δǐ~\X5°ί:^Κνl:Xδ½Νν»Ϋ=Ÿ=xΖa lξ=ί©ο_‘ίσžTό½Ρ4ΦΏΡ¬υ5YΚΧRk· ­/ΚcfŠ΅τΐRBΫ~Ή…―νiκdw"=ή^}μqιqθΰ!r9Κ·'ΏΛΊžG�9½y}eεΏ'‹8nxG«Ό‹qnΦ ”»ΤλPG†l}œ£–Υύ.kq ( x‡!ʁάχ>$ό΄σŽ­mω«ωk¬ΝͺOywcζ;Šk•SXη•Qκδυ`ΔηG­Εi²Fͺβ]‡Q9jq’ozίΈΏUx;�8˜ΠΥΟ2²CўmXΚmόΕ£7-$’ݏ΄¨iψŒ–S y£x₯ε»έ™Ξ¨)Έ²Xwώά*·θάwΕV’~ŽΨ«ŽjΏΫ…]ΘψŸUΡϊ0*3•z^0'’ΰ@Έ«cηςρΕWΧ½wΕ*ŠiŠ« ρCς«ώss_]cσ―Λώ^ŽOR$ωnξ"μ.5)εΧnόfί³£X₯.σχ;ΞΙΗ@2ς�/;(H(’*Qΐ's΅)Ψχ9Npφ8`KΫ4UŽY­ŠD‘FVŠ Σo–k2ΆRή•₯ZEτΙAZυωυι”œLΉ(+ηoΙ½σΣOƒQŒFΦχ~’8ͺ­ύβ€½9Rv̝/iOJIPβja‡Q ’ΐίπ^Ωδ?'i~FΡμτΨYι–Šμ-£Z¨.Ε›ˆΪΎω…©ΤK<Μζl—\"11€δ‘o"+ΔXWα�“±©ύYŠyΈ²‰’[°,e‘bθ½zoίί"φΦFԎwf$P:rDΫ²Όcΰ-A^5Ύ'¦ΨPNιn«ΘΐvPξkJo]†Λυ?-.¦�ΏηΰhυGλZ*ŠoΫ:?Αaξ{­,ΘΉτg—dTτ›€P «‚*i^ω¦ΚMNοV²ΉQ2Ή,„€Τ©�γΫ1έDγΊlΜY(  οL-G’,L…βψκx²¨₯ a‹ N¨?‰hωŸι RğˆYώ/ˆW­+ԚSIΩT•ω2ΓjN§‘>£&ΐ¦'­rŽW„ΠξNύΖΩ'+nψOσ•ε1\3²>Š–4Ύo{8=',&žqω73-›·ν ι…+J“LΚνAΏΑΗμ­τηϊΕυζ•7$$«Υ¨ΌE+πυί¦sσg’4Y΅ΌrI •#βP‚ŽzP(clβ™ ¦]`VC[‹žHGj­?ŽEΒΚ*ΩD2�PPΡΤl}ώxۈb€΅²rαθH ²‚@ Nυλ†Ϋ'-™$0$hΐQvΨ‘αξ;ΰ·Eƒ~`yRΟΝ«§OkΠΉ΄Έ‰ΤΚH™+CΣ―lΘΣζ8ζ$"δi²pάO)l}Εω;δOωΗ―?͏.ωWVΣ[IŽΖq«Ϋkfέ糞:hε²ό+WΨ]=σΊΥvΖ¦–H½«‘υ~§™ΓΨ9pκ€Ι΄#rƒ\‡‘>oά„c$†R₯CŽEcԊηŸAΪHΩ)eάίUΏξ¨Žφ&Z€°θί ~ ž(Hy=~AFaΨ3d]T p3XΜβ«έ{b«IόqVΎŸ» ΄M;}ψ ­εŠΏϊ)Qγ·|ε^†•»¦*Τuρΐ–ιΏΟU¦Ϋ}8₯J Un‚YbŒš` ΐΙω  Ώ 2<ѝΏ92<Υ œνu0\‹sΉ·ΆaoΠD{ θp@ΓOžuχξυ]Ÿ†£δΜt_M˜6ό™x2†44ί·Qΰ33Σβ^ΝεΉ.-=(˜ΒΜ*OZŠošά΅ΊrΒG›Ϊ4₯*-YΑR±ŠWsZνCΣΎ`JV]VmΙfVϋ€€&FcΛ`΄�'!n$εΡ“ZFTV‚ΌA₯8 ΟQΕœ“5oξψπζξ�’ύδχ=2%“ω�Ϋ“φYrkΎ�δB=‹d-ΤΣj±φ§a†˜h’Ζ«”’τ#%ɏ4£R Φ“…`8ρ―ίΧ3‡Τ—Ίͺͺώo~a€ΥUΥΆ�x~Όθaώ+sάhΟ “ά>ηΏh₯„QΣβ’~읏@hsS‘ΗΞτ:αˆϋνξ―·jζ1λ2Dkn~ΚАΰt=Ζτ¦ GuHgUŠP IιΘΰ%+ΤwΫΆ)1²‹ΑŒaΓ—§Ζ’+Ά(πΦ3\’UDeA 7=ΟN˜²!8DhΠ—™I`kΧΆΨ\I›;ζ9˜Δώ“�TžEG`{ογ“ΝΣG}ί ώrLζRŒ/ν�#₯s μΨ»ά›b/4όΈu²ΌŒ” /ά₯OΕJΣήΉ•Ϊqά{œ^Ε$α7όβϊη@‘Ϊ(Αψω’ΛР粊s³ ή₯’»5°©ψƒoΘύšύ―՘’ΊΜ‟ΪΚΙ#=AT&ƒρ©Θ4N6Θε.β©FΫάV΄Ε£†“0α#r£φ¨AΨΠυΒΣVSXeiLQ©―ΒΒZ|ͺFMRZ0π ₯€SR7Ϋ§γ„Ί΅]:Ωcxύ“΅)Άέ²W{°Λ#Ι>ζΌŠ(Τί‘©ψKE1Ο1 X™(Δι"Ž”βAΘΆαάΣΪUύDŠQΈ–4pΦPŽlϊ:[,a±Ε+­"›ƒ©Uiοϊ±VΏ©Β‘ρφ늿Σϊ ΞRή…x5=7#  ͺ©ίΗ ­±§Ύ*¨1Jπ:b¬;σ+Ν)δ_Λ=ωΒNΊ‡w=Έργ1Bϋ7a9w0Î`? |³ciΨ<’λH«;nďsZηIœμφ8υ/‘4Kx“ƒΒ@Z+xoAΰ{Σe—{ΌΖonjΠmΦ‘2!䰁ΔφοZψζ³,˜d•=NΒgˆ„eUJ}ͺΠWo–a—]’[3{]R=‹Υ·ό1p2ΣeoRŒΐ’(Pwϋπ5U"=QλΖ91E%Ή};‘ΧθΐB8vN-€‹’0?eŠχjψ¦@¦~»XА(I BτφΙ[P ΛΘ©V'—σl*<vΐCIeλk*‘Θςc½jv³‡ΤόΔΤ­ΪOΝοΜωψκŒJŽ πZ΅ iaξ{!τ|άχ Χ‚AVgwPxԐIΎσUΈω₯ΝιšT|�Pfen•ξFΫxζ3«Μo}™ ½ΡŒ0wd<Τ©4ΪΏ>ψFξ<‘jβκνλlξW†Ζ‡ΉΫ[+e/\+Ϋ…!ά- ΰMv―Qς¦4ΩWvžΔό£_ސ ‚C�D΄δ˜Λΐ§4‘ΥSνΡΑ؝0΄€mη~bxγ‚sρ3€εφζ›m–AΨiΑ$>όߚF‚ŽΌIRΛΏPqgέΆcϋ’ςίΚ9\E©Bš-ο>'jUGFλ™}€9'°₯Xζ:q>ΑΠΪT‚�Ρ€›Έ4©¨ η'Vμ²€KΥ΄Ή ۏO“Wͺ(؟˜RΊΜ£Υ»!Ά_PͺΠ45$t=j2.<φdv«§!0 88ίμυωtΐβΘ›GΫͺJ#‘"”ωtό1c#I¬"8½9˜KZžΔp5;zp‘ΤΉ–k±ιΆ4Φv „a“Σ�€…ΊƒήΎ&“Ίf¨Ν«ξ­αήΈy°΄—[·gqά•§‰>Ωβ—©ιΊ4ž‹€IZσ³‹uPΏΓ6PϊC€Κ+$½ε0?νδΨ,ω »ΰJ™Ώ *°Ž„ύ­>4ΕZρώl*κ UΤϊΉΞNνθiS²Kk…E?VVS^Έ₯YMkŠ«.υχΕ/”η5ΌΛ>ƒω ϊ=¬ζ όοYι3P^.W71šφ`Š 33A,ΒϊYύN^‚<Y/Έ}οΛ] }9£pUi°―κ ΝΆcaλ΄°§½θ΄‘ΖΌXρ©u§~y¦Μh»ƒΫtH‡:T…B·Κ„šwΝvG!4υ}?βJς WA­wΜ7Y’Ω₯°TŸ΄#<Ή·ύxΈRG*QΉ* ³’Όi@>X– κ#υέΞζ4 ŏ!P+ΠtΘ’Ο ΌNCΜΕZ„P€+ΣΫH&±Ί‚IPvκj=πΫAΑ%7& ½+ޘ°€Σ³ΫΐIψ|>xYDzŸ™Χώ³~q~bI"š₯iQρ+ώήo–‡Ήντƒχ~T>ηΏhΜΫH€ujΖ›S5Y9S”X,ξg€TŒ>"=θFcςuω#Ν4 jP•bΌόEj:WΗ'ΠJ¬M$ΛΘ₯'–ΓόΐΙ�ƒD„T3ΥΫ‹Νzrβ ₯+•“άž “›‘‹‰M”qRAθ:Šδm§ ’nΡ°›†£pPxα?Ίyw›šeζ±’?5± (‰₯Gs™ιΩi�|Sω²eXζ%V*NϋT™Πh–Sϋ’ςOΚY—XξΛt₯�θ>‡η™€6ηΩσc%�;τ>Ίnγ0PHͺ©E#£νΠg7’.λ$wz–‘p‘G"%ΙͺύΟO–ω‰0λsDšeφmHŒZ³υύς—vC%‚`Ρ±βV†„€|\SΦU‚Σβ£�κp0!»Α�ψiΰΨ°)ά$¨Š₯AZΠγ]ε1ˆsY�¨ψ¦ΐV»o…¨£d�ό UͺM†ŠQFh˜7J}<<N%ζΛ|£(—Λzh _GΥ‡ειΘŸvgΰ>€κυ‚³I‘P\ΉΗYβ1JΖλϊ†*¦~μUoсZϋ½ύρV«νΫ ‘Υϊ s”ζτ%R›Φ΅Β…κEωœRV„b•d;{β”Bψ`(~vΞ|k†[�Κ(‘ΤuۘίΤvKX‰q@™³μΑΌεδιv™ŒIο|G₯BΛ(tˆ΅6τλΦΎ9›”μυ˜#δχί,e„: ¨‘Aϋ#­6λš|ξΚCmή壄―ΑVJo±‘ο_³W—“‰—“μP€pzh(ξ ϋlNcΊι›%˜DDlͺΝζ”ιΫ|\SΊa‡Fη*MIvΥ!Ί`VœOnž8†ΑΡk,dq4$Τυψ€α,& xŽ…jϊ ΣΎη"γ›Ds]ΆYˆ©ιαΤ䩈+ΏΉUŒ§¨�!©^ΎNΜqήߚϊ΅Π�•Γωƒ*“Α΅%βϋνϋ΅§Ρ›ψGόη³ΑGΈ}ΟpΡξΰ)Ή {ζ―$i†Leθuε¨@―pͺrU¨¨ΜR ƒ—ΊEυλy”:Θ(�€½·¦#g βζΟ0«O§>gΤ` ΅θzδλkl‰₯ uԎβΤ(γ> *:0-πΣΙ,5_Y„αΓ’΅8ρ5―b<2\\Έ8vMξ5>#…V―Ώ* z q†+`ϊύέ›Α9V>«FK’  ώ~™~739X|Yω©!­Ή¬jΚUUwρ&ΉΡh†xΦ#ξyεs„ΈΧ˜72Ηρl§OlΞν΄]`Υδχ‡Φϊ Abͺ§‹lŽή4Ξk(έήδ!ιΊ4ΚΜμΘJ$Ιωf&G]š<ži"z11VD ρS¦ύ+ΰHnΘh\37_‡δvι‘qΧZΜ―H€c'~΅FΨβC)‘”ΑΖ…ι^uπ\9&JZI"`΄V€μA―†-\L ( mϋ;οπšy5SQVCπ€Ώ«%άlλ β�γΣ½0i9ς<„i·φfœ¬―Ÿ·iT6fιΕΐνϋΐ{Γ2'2mΒXOωœR°šULόΎŒ Ά£ ΅βO}ΟΛ·ΏαŠΏΦϊ"žΩΚEθU–›dήΥ�:ΰK›ψͺͺ{υχΕ(΅­:`Rό‹�œΛ}EΏη ΅?0Ι¬zšZ«%¨F,ιM…e,λQ›ΎΞώδΧ>#ψω;Ο‘ψκπνž₯A<y|kΏZdσrz?=žιεƒρΕπŽ\TDΧζsQΟ/k±,)ΕIoƒˆ'n5ϋ³]7UΥκ[3B‘γhΟ=Ϊ jPœΕuy…™<…‡§Ν\Έ]‰¦�Ž-m ΐ³V΄)α֟<S²i.x(Kv"„$R•άυΐΚ _4ΚΙ₯ŠFY ŠψS|-sω§VΟqU¬'‘αB:ΣΎψ‡`w’ΉΙιƒι7:­A"”ωΧ/›ΏbΌΜq™' Έ&€ο½+ό1r!φ?5υ9/ζηžKAΒC©ό`°4<”ή”¦tΨΐό΄=ΟS€":P―“Ϋ4C?Δ�”ά{Szζ―%[vZ§₯Z6”­J‘Ι-XΨΡ~D³\N ΈΘ4Ž-hπΜ°E A ŒΔρπ -kτdhΨΆΊ"Ι)u•’άέ7閐‚•Ž8eZΤ|_)"Ÿ,ΊGnL₯’t.h@]ZΫ~䦨EΗάE)4Ϋ•°_“•ŠrώnΥή­>ΪV‘+¨M�zQkμ€eg…£,Εmamn‹:�§΄ι֞™―*τψ€ν•]–d¦Ύ,cΝ³ά,r%½ˆx‚ί3 cQΆΑ«·Λ2±ωΆθγdύο‡2Eαk‡ψΖWxEHηJgI‘ͺΩΞΧv{©η?–Ύ·^ƒOε4ΜΠε‹¬μ ΌΎρχ>ͺΠ…drcBW₯+φEO‡Άsٝ켞·‘‹žuκHθ@ OΩϊs%S…Ÿ†·gϊ{OΒ‚1Β£ΤbGΪτ�χΜw_”Kt\Ζxͺ€d|]ιφiψψ`qqΥ‘νKrN oΜ1^£n»`-²δΚνŒΰFz―ΖΓ‘―Ά.$©1Vœ…ψ8Β•5ΫΣΓΥAk_Yxς§ΗΧ·ί ςέ=‡— Α­>/ Z%J’Χ~ƒα<«Φ˜–(Ÿ&>½―_τzBKφυw¨ωΣ2t·Ώs‹ͺ‡~�&v~μΜuαiν·ΛΓ¬?Ž©TώͺΖ­7ϊqBίΎ~8«Ύ, »Ω���������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/includes/include1.inc.md�����������������������������0000664�0000000�0000000�00000000251�14654155362�0026112�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������--- orphan: true --- (inc_header)= ## A Sub-Heading in Include Some text with *syntax* ```{include} subfolder/include2.inc.md :relative-images: :relative-docs: .. ``` �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/includes/include_code.py�����������������������������0000664�0000000�0000000�00000000044�14654155362�0026303�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������def a_func(param): print(param) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/includes/include_literal.txt�������������������������0000664�0000000�0000000�00000000076�14654155362�0027221�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������This should be *literal* Lots of lines so we can select some ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/includes/index.md������������������������������������0000664�0000000�0000000�00000000661�14654155362�0024752�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Main Title ```{include} ../include_from_rst/include.md ``` ```{include} include1.inc.md ``` {ref}`inc_header` ```{include} include_code.py :code: python ``` ```{include} include_code.py :code: python :number-lines: 0 ``` ```{include} include_literal.txt :literal: ``` ```{include} include_literal.txt :literal: :name: literal_ref :start-line: 2 :end-before: lines :number-lines: 0 ``` ### A Sub-sub-Heading some more text �������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/includes/subfolder/����������������������������������0000775�0000000�0000000�00000000000�14654155362�0025303�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/includes/subfolder/example2.jpg����������������������0000664�0000000�0000000�00000160761�14654155362�0027535�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ΨαzExif��MM�*������������������b�������j(�������1����$���r2�������–‡i�������¬���Ψ� ό€��'� ό€��'Adobe Photoshop CC 2015 (Macintosh)�2015:12:17 10:59:45���� ������ ������r �������ώ��������������������&������.(�������������6������<�������H������H���Ψν� Adobe_CM�ξ�Adobe�d€���Ϋ�„�            ΐ��n� "�έ�� Δ?���������� ��������� � 3�!1AQa"q2‘‘±B#$RΑb34r‚ΡC%’Sπαρcs5’²ƒ&D“TdEΒ£t6Uβeς³„ΓΣuγσF'”€…΄•ΔΤδτ₯΅ΕΥευVfv†–¦ΆΖΦζφ7GWgw‡—§·ΗΧηχ�5�!1AQaq"2‘‘±B#ΑRΡπ3$bαr‚’CScs4ρ%’²ƒ&5ΒD“T£dEU6teβς³„ΓΣuγσF”€…΄•ΔΤδτ₯΅ΕΥευVfv†–¦ΆΖΦζφ'7GWgw‡—§·ΗΪ� ��?�λBIBpͺΆO $…'H'„’΄$₯ $₯‘:p 0“ cgύcͺ«€ΦδZΣ΅χjk‡e{€=ΏξτγRL!)šˆ·a%ΟWŸΤνΥωL `ϋ˜»Nv[@άοTwδΫξCˆ2KΗP]DΠ£MΜΉ›› €ΣΘ*i14,RR„ΠŠ–L$”²e$Ι)Π듦 ΥVΒι$%( œ¬lJΕΉV²†8ΓKΜn#σkhχΩύ† υ>£WMΒ~UήωΡLΗ©kΎ…sϋžίRη�‘bζjmΩWœ¬Η›²,ΠΨt�vΆύjoζTΔ™qa3Ԛˆό|žƒφοO'ΩκΌ~πώζ?ώг‰’ΰΚlΓΕn―?ΥkΎŸύmbγUKλkλx{_«^Ψ- χoD» ΆVAα«O«KOζΉ7‹Uη=#Ε7֎‘f& 1¨qeωΕΜή9m-΄9ΏΊϋw²†ΧWzΧMιχ7ϋ₯°XΩmcωzόzΉΤ3ςϊνu§τψ΅Œag;œcώΠ怨ΟQΏΏZ‘GΥΌWRϊl.uχΟΣέΞοόΕM υώ ‚1ΐF<Z™Hνα§‘υz^±s[Xnσa#nΨέΏwΡΩ·σ”:oΦN‡Τ3~Íq}ίΰάζ²Γ«‹){½Ξ³hόφWκ�υΖϊ½‡“*ιy΅ψμ ΑΫ\ν§swέώB~«υ_ό*¨Α ΑΏ ‡ΰάΐf·ƒκ{έ­–1Φ{μό�Sτͺ01λdο‘θ?¬³$€M ώ_’νΣ ½›>X~νΝ�€Υme۟F]^³ Φ΄I0>‹ό»νQZΘ²M56¦ΊlvΏζ3ώŠlNŒrΕ9@·u’Y΄υ Γ«Γ,·ρb»FK/cΫτ«w ~σOη± % GΑ"e"™«&N™%?Ρλ‚’„©U°Ίp”)04ΈhΩχωΙ!δΎ²e›ϊΫqZfΌ Γcώΰ.Έ�[ϋ=K/λOΩϊ-ΒNλ@© (ϋΏπ6½66K³2/Ο³C•kξ?ΈΊΆ�e›^_Υξ§ϊ­χΡhΧiΩξΫ·Υτχ�a< 4H]7ˆΔ!b$āύβκtj~Ιq£ͺ†Έ�›λ;ώ©κ…Χδt&δ_c­²ϋy/$Δ»ΪΖΟζ-‘C/₯ΥΔ΅ν-;uΓn…ͺ?§cτΌ 0qΓ…η™q$›η»Ϋξάυ1•ό �Ά"u�±_βπΌv]_FsjvΛ,΅νk†‘�1\ύyέ[ΟGΦΊ‡πnχμϊ»Ϊζ�UuΈ-υkžwZχ}ξrΧ=7&±^EL΅£³Ϊ―’–9„.2dζqρDŒd4Ρδ1ώΈuκ€Κ^�αυ4ΟΞ§VŠί­ίZ3/Έb§\γ΅R7YΞ΅ΦΆΆ·σμΠ]/όΨθÎsαξϋMί΅Κ�Ωq0qφcTΚ+h>ΪΪ4ώ―ώΪ'6.˜ΕψMxγλ3τέζ³z§Ω©ΚΟΘΫe¬-₯l†ΉΝNΙϊ5ϊΎ­Ÿρh}λUύA˜}CTrFϊΩΔ΅kχ{]΅fuG‘Σ±―-ήΖά,{O}BέίΙάS}[n_TλΨω7υα»Τ{ΐ­€οJ–ΗοΨολ§ qφδHο―jωYsΞC(€'τ} ~ιw­Λλ]G­δτή—”άπkkίnΐχXχmΪ͟Ρξwώ¬ZWϊ^oΪ1³ͺn?Vι― Ό3F8;w§c[ω»φΉ–³θ7eΞl―λGΥξ£λέΥ:fχ·%™”U"Θho½­aέuvlg©S=κΟԎ—ŠΜ¬ΜʟIΙmuΤΫdXζ°ΉΞs˜�}uώη©ο³ϊ‰’8¬΄kχψ�I‹ˆρUΏέαθφmp{Zφπα#ζ’#§§ΐΌ}Ξr*‰ŒθHμ²dι‘Sλ‘8 $ͺ³² —]Ι8½>πaβ‡1‡ωvΖ3?ι\…υβ�O£SDλ••[HρmM~CΏπFŒEΊ"εβσέ-›j hϊ"ε³±~Ο™~3Ϋ%£±k½μ#ω;WgšΡψ+Ή½©VΡ’ΒΑ챇kΫ<ί»ό‡©!˜Bfφ-fqb6|ώ½­ac!#έΆGΙvΏS0mΕιYŽk˜άΗΠΗk`;-ΫτKcίι»σιFΑϊ™Ρ¨°Yc’F‘·;s4γ}- e›–ΆσIf%†uΨLό’ΟΜ Η†7δ°bΔc!dš<ηDΨ΄“άIω­Φϋ@π ’Z>ΝD~γ"ά{΄C ψUησή]d±ΐΜ u7Ɲ½₯&<�7K|œ!Tλy!ΈvkΛ{!ΐ[ϊΗ›‰ΣΛπ™Ukši+¦cγΡHe k+@d?τVG%΄Rx–5¬~₯2,Θι՜ΌΙ²μ=Ε―cΟΉΦb½ίwϊ%4…’.»±]—`kqΣw―₯ΓgΓ…Q[Ξ±gH_}4ύ’ηˆΪΟs*ό+½VΨ±GΧ!hϋ7OΐΘPΆΊξhkγ }›IsΨΧ&ΏψK+Z]‘ώΙΖ΅χv~S™wς\βwϊmwϊ=Ηόji‡<ZΡ΅«ΧGkωˆπ{Ώ,�d 3μ°x:~ρ�˜£ 6 rωŠΕ2r’(ΣλI:ͺΨ\.Kόa_±έ"’`=Ω/ω΅Έμoύ[—Zώ2*³'/§SWΣͺ‹mΗΣ±¬�Ρ ψΎq~?’…Ψ1F¬ΊcšΧ Gu’ώ±Σ±ς±πξ½­ΙΙ U^¦I;YΉΝ΅οwΆΏQpΈέc¨`UυΛƒNΝΒ ώit{^Ε»υ;.Ϋ:žFHΙκn.q¨–ΉΥ΄ϋ=GUτ·~oϊ:*ύ90Χ€tιΓΥ²sΖdΏιq~ˆ�Ύ{ΈH<!u ά ¬:†ΦγψfRΠΠˆψB£υ†·~ΙΛΨγ₯/ππρUΐΤyͺ5Δ<ά>‹„αP‘£€φ]Xΐ0F֟ ‰Yύ2Kς@ ΅xΞD“lΉdn»2mV —|–7Φcφc±Σ‘5[γ^Vo[ͺ<y jAf2xÁκ΄y4~ ££VΆtπs£ΈJΗ„ώR·±μφ†ƒ¨‚vO˜ω²ΟX'R·kΜΟ!ΩΕηύpΝιyοΗΏ§Hqτ^l-uα+%«έϋŠφ?Χξ†ϊœϋΫ‘Žφ7vΗ0?qύΚν©Ξgύ½θ#μδ Dlή¦€₯"υύ?τžŸΝυ­}ΫXψς—²U•ΝύSΙκG33¬eΣφj2©¬ O"–=ΦΊΧqΏΤ}ŸΞ�…�ϊMt‰W˜€lίu’N™%?ΤλΣ„Α:ͺΞΘ.7λCύO¬‘Ÿθ1hgΝζΫ�τkWbΩ:NpYΩ+λQΘn¬9¦VάV�η”θυςfΐ.G7λ&3έ…]¬*tΩδΫ?Ωr'՟«ψJͺσ}|Šo‘εΆ \C‡ΠuVνυ+ήΓΉoU‰VE.ΐ]-sOptr΅ΠΊF?IΓ8Τ?s½Kσξ.:WkX‰ΝXΜA"Wψ/Ɍ{œZ6?Όλ°žόͺ}vbζΗϊώEq€B§Χδlίψ‡�Τ•^;4GζaΝιΏΝ3ΘZ`χνΒΚι“'ΐ-FόQ;–lŸ1l4φYύ`N3njώEwΤ�Δς¨uƒΈ?‘(ξCη5Ežƒ uœ#Ώw‚ά Z<@.3�Edτ_s�Ꜻ*=±Ψr!I”ϊ›1—€yϊΡΤ_CjΒe&윭XΧ³{@ΟΡΤζΉφ_»θ,Z:^GOκέ9Ήυ†6Λ(ΊΖZ[£nΝ–Uξχ{}μ^…φzΜ‡ΦΓmsιΨZ Ϋ?OΣ°ϋ™»ω+#λΥ›:ΎN6N3ΫUΜsYsήN΅o–7θϊ•8½ίπͺLY’�τƒ|Rje‰‘βή«†?›Σ2Fσ$‡4όbοͺͺ_ϊv?‰°iύc·ώό¬• vY=ώŠL’dε―Υλ‚p˜'UYΦΏ%ΈxΧf;θβΤϋύm°jσŽΓ°oΥηW3«�ι.ΫλA΄}\κ“w[EžUΧφ‹?³VεΗtΈίσΧΑ>?,›<Άδ½FΦΖƒΑ^©β}ώ½•©vή'U\―žν†:UN·―GΞ�ˆ³ώ€£Τ]OΘͺυ²�Ω9°4τ,�©(Ηqζ°PσsΊ{@©šžZηƒΖΊ¬Ξžl5³HΠDλΩ^w­"#̝?&τeΉgΘ5έ΅Q?ΕQλDŠ<AσE§νAΔ§Y?άͺυƒ`Ζt‰1―�2J?0[S‡ :):πχϊRΊZ\Ή~‡»c£ύ#�*ι±ghžσ|ΗΝ'䏐nΆ?Ή‚uξͺΦN㦊ΛIž<9Q0ɝš4;χK]χUη OΕQΆ=7nΠAŸΉ]΄nΡΠ$yΖ©ΡκΕ>‹ΚE2zΗΩνΪPhotoshop 3.0�8BIM�����?Z�%GZ�%GZ�%GZ�%GZ�%GZ�%GZ�%G�����8BIM%�����iΩΰυκρ©s $(X8BIM:�����ε����������� printOutput�������PstSbool����Inteenum����Inte����Clrm���printSixteenBitbool���� printerNameTEXT��������printProofSetupObjc��� �P�r�o�o�f� �S�e�t�u�p����� proofSetup�������Bltnenum��� builtinProof��� proofCMYK�8BIM;����-�����������printOutputOptions�������Cptnbool�����Clbrbool�����RgsMbool�����CrnCbool�����CntCbool�����Lblsbool�����Ngtvbool�����EmlDbool�����Intrbool�����BckgObjc���������RGBC�������Rd doub@oΰ���������Grn doub@oΰ���������Bl doub@oΰ���������BrdTUntF#Rlt������������Bld UntF#Rlt������������RsltUntF#Pxl@R��������� vectorDatabool����PgPsenum����PgPs����PgPC����LeftUntF#Rlt������������Top UntF#Rlt������������Scl UntF#Prc@Y���������cropWhenPrintingbool����cropRectBottomlong������� cropRectLeftlong������� cropRectRightlong������� cropRectToplong�����8BIMν������H�����H����8BIM&���������������?€��8BIM ��������8BIM��������8BIMσ����� ���������8BIM'����� ��������8BIMυ�����H�/ff��lff�������/ff��‘™š�������2����Z���������5����-��������8BIMψ�����p��θ����θ����θ����θ��8BIM�������)8BIM�����†��������������������������������������������������������������������������������������������������������������������������������������8BIM0�����C�8BIM-���������68BIM�����L�����@��@��� ������B�œ����"@��ΐΚ@�Ξ��ό@��������.@�Η€ύ€8BIM���������8BIM����c��������������ώ��r����1�2�.�1�5�-�h�o�m�e�p�a�g�e�-�c�u�r�a�t�i�o�n��������������������������������r���ώ��������������������������������������������null������boundsObjc���������Rct1�������Top long��������Leftlong��������Btomlong���ώ����Rghtlong��r���slicesVlLs���Objc��������slice������sliceIDlong�������groupIDlong�������originenum��� ESliceOrigin��� autoGenerated����Typeenum��� ESliceType����Img ���boundsObjc���������Rct1�������Top long��������Leftlong��������Btomlong���ώ����Rghtlong��r���urlTEXT���������nullTEXT���������MsgeTEXT��������altTagTEXT��������cellTextIsHTMLbool���cellTextTEXT�������� horzAlignenum���ESliceHorzAlign���default��� vertAlignenum���ESliceVertAlign���default��� bgColorTypeenum���ESliceBGColorType����None��� topOutsetlong������� leftOutsetlong������� bottomOutsetlong������� rightOutsetlong�����8BIM(����� ���?π������8BIM��������Χ8BIM ����X������ ���n��ΰ��Ξ@��<��Ψν� Adobe_CM�ξ�Adobe�d€���Ϋ�„�            ΐ��n� "�έ�� Δ?���������� ��������� � 3�!1AQa"q2‘‘±B#$RΑb34r‚ΡC%’Sπαρcs5’²ƒ&D“TdEΒ£t6Uβeς³„ΓΣuγσF'”€…΄•ΔΤδτ₯΅ΕΥευVfv†–¦ΆΖΦζφ7GWgw‡—§·ΗΧηχ�5�!1AQaq"2‘‘±B#ΑRΡπ3$bαr‚’CScs4ρ%’²ƒ&5ΒD“T£dEU6teβς³„ΓΣuγσF”€…΄•ΔΤδτ₯΅ΕΥευVfv†–¦ΆΖΦζφ'7GWgw‡—§·ΗΪ� ��?�λBIBpͺΆO $…'H'„’΄$₯ $₯‘:p 0“ cgύcͺ«€ΦδZΣ΅χjk‡e{€=ΏξτγRL!)šˆ·a%ΟWŸΤνΥωL `ϋ˜»Nv[@άοTwδΫξCˆ2KΗP]DΠ£MΜΉ›› €ΣΘ*i14,RR„ΠŠ–L$”²e$Ι)Π듦 ΥVΒι$%( œ¬lJΕΉV²†8ΓKΜn#σkhχΩύ† υ>£WMΒ~UήωΡLΗ©kΎ…sϋžίRη�‘bζjmΩWœ¬Η›²,ΠΨt�vΆύjoζTΔ™qa3Ԛˆό|žƒφοO'ΩκΌ~πώζ?ώг‰’ΰΚlΓΕn―?ΥkΎŸύmbγUKλkλx{_«^Ψ- χoD» ΆVAα«O«KOζΉ7‹Uη=#Ε7֎‘f& 1¨qeωΕΜή9m-΄9ΏΊϋw²†ΧWzΧMιχ7ϋ₯°XΩmcωzόzΉΤ3ςϊνu§τψ΅Œag;œcώΠ怨ΟQΏΏZ‘GΥΌWRϊl.uχΟΣέΞοόΕM υώ ‚1ΐF<Z™Hνα§‘υz^±s[Xnσa#nΨέΏwΡΩ·σ”:oΦN‡Τ3~Íq}ίΰάζ²Γ«‹){½Ξ³hόφWκ�υΖϊ½‡“*ιy΅ψμ ΑΫ\ν§swέώB~«υ_ό*¨Α ΑΏ ‡ΰάΐf·ƒκ{έ­–1Φ{μό�Sτͺ01λdο‘θ?¬³$€M ώ_’νΣ ½›>X~νΝ�€Υme۟F]^³ Φ΄I0>‹ό»νQZΘ²M56¦ΊlvΏζ3ώŠlNŒrΕ9@·u’Y΄υ Γ«Γ,·ρb»FK/cΫτ«w ~σOη± % GΑ"e"™«&N™%?Ρλ‚’„©U°Ίp”)04ΈhΩχωΙ!δΎ²e›ϊΫqZfΌ Γcώΰ.Έ�[ϋ=K/λOΩϊ-ΒNλ@© (ϋΏπ6½66K³2/Ο³C•kξ?ΈΊΆ�e›^_Υξ§ϊ­χΡhΧiΩξΫ·Υτχ�a< 4H]7ˆΔ!b$āύβκtj~Ιq£ͺ†Έ�›λ;ώ©κ…Χδt&δ_c­²ϋy/$Δ»ΪΖΟζ-‘C/₯ΥΔ΅ν-;uΓn…ͺ?§cτΌ 0qΓ…η™q$›η»Ϋξάυ1•ό �Ά"u�±_βπΌv]_FsjvΛ,΅νk†‘�1\ύyέ[ΟGΦΊ‡πnχμϊ»Ϊζ�UuΈ-υkžwZχ}ξrΧ=7&±^EL΅£³Ϊ―’–9„.2dζqρDŒd4Ρδ1ώΈuκ€Κ^�αυ4ΟΞ§VŠί­ίZ3/Έb§\γ΅R7YΞ΅ΦΆΆ·σμΠ]/όΨθÎsαξϋMί΅Κ�Ωq0qφcTΚ+h>ΪΪ4ώ―ώΪ'6.˜ΕψMxγλ3τέζ³z§Ω©ΚΟΘΫe¬-₯l†ΉΝNΙϊ5ϊΎ­Ÿρh}λUύA˜}CTrFϊΩΔ΅kχ{]΅fuG‘Σ±―-ήΖά,{O}BέίΙάS}[n_TλΨω7υα»Τ{ΐ­€οJ–ΗοΨολ§ qφδHο―jωYsΞC(€'τ} ~ιw­Λλ]G­δτή—”άπkkίnΐχXχmΪ͟Ρξwώ¬ZWϊ^oΪ1³ͺn?Vι― Ό3F8;w§c[ω»φΉ–³θ7eΞl―λGΥξ£λέΥ:fχ·%™”U"Θho½­aέuvlg©S=κΟԎ—ŠΜ¬ΜʟIΙmuΤΫdXζ°ΉΞs˜�}uώη©ο³ϊ‰’8¬΄kχψ�I‹ˆρUΏέαθφmp{Zφπα#ζ’#§§ΐΌ}Ξr*‰ŒθHμ²dι‘Sλ‘8 $ͺ³² —]Ι8½>πaβ‡1‡ωvΖ3?ι\…υβ�O£SDλ••[HρmM~CΏπFŒEΊ"εβσέ-›j hϊ"ε³±~Ο™~3Ϋ%£±k½μ#ω;WgšΡψ+Ή½©VΡ’ΒΑ챇kΫ<ί»ό‡©!˜Bfφ-fqb6|ώ½­ac!#έΆGΙvΏS0mΕιYŽk˜άΗΠΗk`;-ΫτKcίι»σιFΑϊ™Ρ¨°Yc’F‘·;s4γ}- e›–ΆσIf%†uΨLό’ΟΜ Η†7δ°bΔc!dš<ηDΨ΄“άIω­Φϋ@π ’Z>ΝD~γ"ά{΄C ψUησή]d±ΐΜ u7Ɲ½₯&<�7K|œ!Tλy!ΈvkΛ{!ΐ[ϊΗ›‰ΣΛπ™Ukši+¦cγΡHe k+@d?τVG%΄Rx–5¬~₯2,Θι՜ΌΙ²μ=Ε―cΟΉΦb½ίwϊ%4…’.»±]—`kqΣw―₯ΓgΓ…Q[Ξ±gH_}4ύ’ηˆΪΟs*ό+½VΨ±GΧ!hϋ7OΐΘPΆΊξhkγ }›IsΨΧ&ΏψK+Z]‘ώΙΖ΅χv~S™wς\βwϊmwϊ=Ηόji‡<ZΡ΅«ΧGkωˆπ{Ώ,�d 3μ°x:~ρ�˜£ 6 rωŠΕ2r’(ΣλI:ͺΨ\.Kόa_±έ"’`=Ω/ω΅Έμoύ[—Zώ2*³'/§SWΣͺ‹mΗΣ±¬�Ρ ψΎq~?’…Ψ1F¬ΊcšΧ Gu’ώ±Σ±ς±πξ½­ΙΙ U^¦I;YΉΝ΅οwΆΏQpΈέc¨`UυΛƒNΝΒ ώit{^Ε»υ;.Ϋ:žFHΙκn.q¨–ΉΥ΄ϋ=GUτ·~oϊ:*ύ90Χ€tιΓΥ²sΖdΏιq~ˆ�Ύ{ΈH<!u ά ¬:†ΦγψfRΠΠˆψB£υ†·~ΙΛΨγ₯/ππρUΐΤyͺ5Δ<ά>‹„αP‘£€φ]Xΐ0F֟ ‰Yύ2Kς@ ΅xΞD“lΉdn»2mV —|–7Φcφc±Σ‘5[γ^Vo[ͺ<y jAf2xÁκ΄y4~ ££VΆtπs£ΈJΗ„ώR·±μφ†ƒ¨‚vO˜ω²ΟX'R·kΜΟ!ΩΕηύpΝιyοΗΏ§Hqτ^l-uα+%«έϋŠφ?Χξ†ϊœϋΫ‘Žφ7vΗ0?qύΚν©Ξgύ½θ#μδ Dlή¦€₯"υύ?τžŸΝυ­}ΫXψς—²U•ΝύSΙκG33¬eΣφj2©¬ O"–=ΦΊΧqΏΤ}ŸΞ�…�ϊMt‰W˜€lίu’N™%?ΤλΣ„Α:ͺΞΘ.7λCύO¬‘Ÿθ1hgΝζΫ�τkWbΩ:NpYΩ+λQΘn¬9¦VάV�η”θυςfΐ.G7λ&3έ…]¬*tΩδΫ?Ωr'՟«ψJͺσ}|Šo‘εΆ \C‡ΠuVνυ+ήΓΉoU‰VE.ΐ]-sOptr΅ΠΊF?IΓ8Τ?s½Kσξ.:WkX‰ΝXΜA"Wψ/Ɍ{œZ6?Όλ°žόͺ}vbζΗϊώEq€B§Χδlίψ‡�Τ•^;4GζaΝιΏΝ3ΘZ`χνΒΚι“'ΐ-FόQ;–lŸ1l4φYύ`N3njώEwΤ�Δς¨uƒΈ?‘(ξCη5Ežƒ uœ#Ώw‚ά Z<@.3�Edτ_s�Ꜻ*=±Ψr!I”ϊ›1—€yϊΡΤ_CjΒe&윭XΧ³{@ΟΡΤζΉφ_»θ,Z:^GOκέ9Ήυ†6Λ(ΊΖZ[£nΝ–Uξχ{}μ^…φzΜ‡ΦΓmsιΨZ Ϋ?OΣ°ϋ™»ω+#λΥ›:ΎN6N3ΫUΜsYsήN΅o–7θϊ•8½ίπͺLY’�τƒ|Rje‰‘βή«†?›Σ2Fσ$‡4όbοͺͺ_ϊv?‰°iύc·ώό¬• vY=ώŠL’dε―Υλ‚p˜'UYΦΏ%ΈxΧf;θβΤϋύm°jσŽΓ°oΥηW3«�ι.ΫλA΄}\κ“w[EžUΧφ‹?³VεΗtΈίσΧΑ>?,›<Άδ½FΦΖƒΑ^©β}ώ½•©vή'U\―žν†:UN·―GΞ�ˆ³ώ€£Τ]OΘͺυ²�Ω9°4τ,�©(Ηqζ°PσsΊ{@©šžZηƒΖΊ¬Ξžl5³HΠDλΩ^w­"#̝?&τeΉgΘ5έ΅Q?ΕQλDŠ<AσE§νAΔ§Y?άͺυƒ`Ζt‰1―�2J?0[S‡ :):πχϊRΊZ\Ή~‡»c£ύ#�*ι±ghžσ|ΗΝ'䏐nΆ?Ή‚uξͺΦN㦊ΛIž<9Q0ɝš4;χK]χUη OΕQΆ=7nΠAŸΉ]΄nΡΠ$yΖ©ΡκΕ>‹ΚE2zΗΩ8BIM!�����]�������A�d�o�b�e� �P�h�o�t�o�s�h�o�p����A�d�o�b�e� �P�h�o�t�o�s�h�o�p� �C�C� �2�0�1�5����8BIM����������αηhttp://ns.adobe.com/xap/1.0/�<?xpacket begin="ο»Ώ" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c067 79.157747, 2015/03/30-23:40:42 "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreateDate="2015-10-08T12:38:11-04:00" xmp:ModifyDate="2015-12-17T10:59:45-05:00" xmp:MetadataDate="2015-12-17T10:59:45-05:00" xmp:CreatorTool="Adobe Photoshop CC 2015 (Macintosh)" dc:format="image/jpeg" photoshop:ColorMode="3" photoshop:ICCProfile="VA2703 Series Calibrated" xmpMM:InstanceID="xmp.iid:e2bd0b59-56b1-43bf-b7e2-32743b1a93c0" xmpMM:DocumentID="adobe:docid:photoshop:961aeea4-e565-1178-84a1-ef55e5ef95af" xmpMM:OriginalDocumentID="xmp.did:6524ee62-4040-4486-9730-cc482d0b6dc4"> <photoshop:TextLayers> <rdf:Bag> <rdf:li photoshop:LayerName="Popular Illustration Categories" photoshop:LayerText="Popular Illustration Categories"/> <rdf:li photoshop:LayerName="Popular Vector Categories" photoshop:LayerText="Popular Vector Categories"/> <rdf:li photoshop:LayerName="Popular Photo Categories" photoshop:LayerText="Popular Photo Categories"/> <rdf:li photoshop:LayerName="Bigstock Picks" photoshop:LayerText="Bigstock Picks"/> <rdf:li photoshop:LayerName="Winter Collection" photoshop:LayerText="Winter Collection"/> <rdf:li photoshop:LayerName="Bigstock Video" photoshop:LayerText="Bigstock Video"/> <rdf:li photoshop:LayerName="Images and Video for everyone." photoshop:LayerText="Images and Video for everyone."/> <rdf:li photoshop:LayerName="Over 30 million stock photos, videos, and vectors." photoshop:LayerText="Over 30 million stock photos, videos, and vectors."/> </rdf:Bag> </photoshop:TextLayers> <photoshop:DocumentAncestors> <rdf:Bag> <rdf:li>2338B8E41274008A90C8BD2547960BB3</rdf:li> <rdf:li>2DE4406C10B73422B4EE6D8B0D325FA8</rdf:li> <rdf:li>3197650EE93F798D6A2BAF21AD62272B</rdf:li> <rdf:li>3F298132EF5DF7BD1E7E79C525C0CA86</rdf:li> <rdf:li>5AAA046F1BED5507B4FE582ED12591A4</rdf:li> <rdf:li>65653AF10A51D90FA07ECE63326084AA</rdf:li> <rdf:li>76E417E5E4017D78582B791B963C9F3B</rdf:li> <rdf:li>8F4003C1E5318DE635C83490D514830A</rdf:li> <rdf:li>A1474CB5A10E36D46870F0446E07D3E0</rdf:li> <rdf:li>A4D5D3C7397850DFFCA8C636A6D2AA9E</rdf:li> <rdf:li>A81867ADB2D20376CAF23C6C4455A61F</rdf:li> <rdf:li>C309326AF2D2E3A15A8A224EE0246442</rdf:li> <rdf:li>C4AABDD571F96E9245AF3255DACBE902</rdf:li> <rdf:li>C597FDD2DF29CEE3A08906DEF8235FA3</rdf:li> <rdf:li>D0E41193D0D87ABF69D3A27435FD9CE6</rdf:li> <rdf:li>D493B382008DD02005894F84AB8ACDA5</rdf:li> <rdf:li>DB1AC9D26B1F40C9A5A11B7A6ADC3A12</rdf:li> <rdf:li>E64E952ACE29002EB68F1BCD01B8911B</rdf:li> <rdf:li>E6885685CBDF2324E71158BF2176E1FE</rdf:li> <rdf:li>F5E7577A6B3A341A51CAAAC5E3A59B11</rdf:li> <rdf:li>FD1D7E31C7512BE0A891CDAA5C77DE95</rdf:li> <rdf:li>xmp.did:64946cb8-411a-4b00-9961-c82dffc5464c</rdf:li> </rdf:Bag> </photoshop:DocumentAncestors> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:6524ee62-4040-4486-9730-cc482d0b6dc4" stEvt:when="2015-10-30T14:26:35-04:00" stEvt:softwareAgent="Adobe Photoshop CC 2015 (Macintosh)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvt:parameters="from image/png to application/vnd.adobe.photoshop"/> <rdf:li stEvt:action="derived" stEvt:parameters="converted from image/png to application/vnd.adobe.photoshop"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:64946cb8-411a-4b00-9961-c82dffc5464c" stEvt:when="2015-10-30T14:26:35-04:00" stEvt:softwareAgent="Adobe Photoshop CC 2015 (Macintosh)" stEvt:changed="/"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:6344f71c-48bd-40e8-aa3f-f72a106bce9a" stEvt:when="2015-12-17T10:59:45-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2015 (Macintosh)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvt:parameters="from application/vnd.adobe.photoshop to image/jpeg"/> <rdf:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/jpeg"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:e2bd0b59-56b1-43bf-b7e2-32743b1a93c0" stEvt:when="2015-12-17T10:59:45-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2015 (Macintosh)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:6344f71c-48bd-40e8-aa3f-f72a106bce9a" stRef:documentID="adobe:docid:photoshop:ca754c60-bfc0-1178-b80c-e5ac2abee428" stRef:originalDocumentID="xmp.did:6524ee62-4040-4486-9730-cc482d0b6dc4"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="w"?>β)hICC_PROFILE���)Xappl��mntrRGB XYZ ί� � ���acspAPPL��������������������������φΦ�����Σ-appl�����������������������������������������������desc��P���sdscm��Δ���Lcprt�����#wtpt��4���rXYZ��H���gXYZ��\���bXYZ��p���rTRC��„�� aarg�� ��� vcgt�� °��ndin��Δ��>chad��)���,mmod��)0���(bTRC��„�� gTRC��„�� aabg�� ��� aagg�� ��� desc�������VA2703 Series Calibrated��������������������������������������������������������������������������������mluc���������� enUS���0����V�A�2�7�0�3� �S�e�r�i�e�s� �C�a�l�i�b�r�a�t�e�dtext����Copyright Apple Inc., 2015��XYZ ������σΨ����XYZ ������l��8©��—XYZ ������b6��·r��XYZ ������(‘��ε��Ύ—curv����������� �����#�(�-�2�6�;�@�E�J�O�T�Y�^�c�h�m�r�w�|��†�‹��•�š�Ÿ�£�¨�­�²�·�Ό�Α�Ζ�Λ�Π�Υ�Ϋ�ΰ�ε�λ�π�φ�ϋ %+28>ELRY`gnu|ƒ‹’š‘©±ΉΑΙΡΩαιςϊ &/8AKT]gqz„Ž˜’¬ΆΑΛΥΰλυ� !-8COZfr~Š–’ΊΗΣΰμω -;HUcq~Œš¨ΆΔΣαπώ +:IXgw†–¦΅ΕΥεφ'7HYj{Œ―ΐΡγυ+=Oat†™¬Ώεψ 2FZn‚–ͺΎηϋ  % : O d y  € Ί Ο ε ϋ  ' = T j  ˜ Ε ά σ " 9 Q i € ˜ ° Θ α ω  * C \ u Ž § ΐ Ω σ & @ Z t Ž © Γ ή ψ.Id›Άξ %A^z–³Ομ &Ca~›ΉΧυ1OmŒͺΙθ&Ed„£Γγ#Ccƒ€Εε'Ij‹­Ξπ4Vx›½ΰ&Il²ΦϊAe‰χ@eŠ―Υϊ Ek‘·έ*QwžΕμ;cвΪ*R{£ΜυGp™Γμ@j”Ύι>i”Ώκ  A l ˜ Δ π!!H!u!‘!Ξ!ϋ"'"U"‚"―"έ# #8#f#”#Β#π$$M$|$«$Ϊ% %8%h%—%Η%χ&'&W&‡&·&θ''I'z'«'ά( (?(q(’(Τ))8)k))Π**5*h*›*Ο++6+i++Ρ,,9,n,’,Χ- -A-v-«-α..L.‚.·.ξ/$/Z/‘/Η/ώ050l0€0Ϋ11J1‚1Ί1ς2*2c2›2Τ3 3F33Έ3ρ4+4e4ž4Ψ55M5‡5Β5ύ676r66ι7$7`7œ7Χ88P8Œ8Θ99B99Ό9ω:6:t:²:ο;-;k;ͺ;θ<'<e<€<γ="=a=‘=ΰ> >`> >ΰ?!?a?’?β@#@d@¦@ηA)AjA¬AξB0BrB΅BχC:C}CΐDDGDŠDΞEEUEšEήF"FgF«FπG5G{GΐHHKH‘HΧIIcI©IπJ7J}JΔK KSKšKβL*LrLΊMMJM“MάN%NnN·O�OIO“OέP'PqP»QQPQ›QζR1R|RΗSS_SͺSφTBTTΫU(UuUΒVV\V©VχWDW’WΰX/X}XΛYYiYΈZZVZ¦Zυ[E[•[ε\5\†\Φ]']x]Ι^^l^½__a_³``W`ͺ`όaOa’aυbIbœbπcCc—cλd@d”dιe=e’eηf=f’fθg=g“gιh?h–hμiCišiρjHjŸjχkOk§klWl―mm`mΉnnknΔooxoΡp+p†pΰq:q•qπrKr¦ss]sΈttptΜu(u…uαv>v›vψwVw³xxnxΜy*y‰yηzFz₯{{c{Β|!||α}A}‘~~b~Β#„ε€G€¨ kΝ‚0‚’‚τƒWƒΊ„„€„γ…G…«††r†Χ‡;‡ŸˆˆiˆΞ‰3‰™‰ώŠdŠΚ‹0‹–‹όŒcŒΚ1˜ŽfŽΞ6žnΦ‘?‘¨’’z’γ“M“Ά” ”Š”τ•_•Ι–4–Ÿ— —u—ΰ˜L˜Έ™$™™όšhšΥ›B›―œœ‰œχdž@žŸŸ‹Ÿϊ i Ψ‘G‘Ά’&’–££v£ζ€V€Η₯8₯©¦¦‹¦ύ§n§ΰ¨R¨Δ©7©©ͺͺ««u«ι¬\¬Π­D­Έ-‘――‹°�°u°κ±`±Φ²K²Β³8³΄%΄œ΅΅ŠΆΆyΆπ·h·ΰΈYΈΡΉJΉΒΊ;Ί΅».»§Ό!Ό›½½Ύ Ύ„ΎΏzΏυΐpΐμΑgΑγΒ_ΒΫΓXΓΤΔQΔΞΕKΕΘΖFΖΓΗAΗΏΘ=ΘΌΙ:ΙΉΚ8Κ·Λ6ΛΆΜ5Μ΅Ν5Ν΅Ξ6ΞΆΟ7ΟΈΠ9ΠΊΡ<ΡΎ?ΑΣDΣΖΤIΤΛΥNΥΡΦUΦΨΧ\ΧΰΨdΨθΩlΩρΪvΪϋΫ€ά܊έέ–ήή’ί)ί―ΰ6ΰ½αDαΜβSβΫγcγλδsδόε„ζ ζ–ηη©θ2θΌιFιΠκ[κελpλϋμ†ννœξ(ξ΄ο@οΜπXπερrρςŒσσ§τ4τΒυPυήφmφϋχŠψψ¨ω8ωΗϊWϊηϋwόό˜ύ)ύΊώKώάmpara��������ff��ς§�� Y��Π�� vcgt��������������”�βo°DΨv±W‘Gν — F ο › K ϋ ―aΙ‚:ς­h%γ€f'ν°zC Ψ₯uDλ Α!˜"r#K$)% %ι&Λ'(”){*d+O,<-*./ /ώ0ς1η2ή3Υ4Μ5Δ6Ό7΄8­9¨:€;‘< =‘>£?§@­A΅BΎCΚDΧEζFψH I!J8KRLnM‹N¬OΞPσRSCToUVΝX�Y5Zl[¦\ΰ^_]`aίc!dde¨fνh0iujΈkόm=n}o»pψr2sitžuΠvύx(yNzr{|¬}Γ~Υδ€ξφ‚ό„�…†‡ˆ‰Š‹�‹όŒψςŽμεέ‘Φ’Ν“Ε”»•²–©—Ÿ˜•™‹š›wœndž[ŸR I‘A’:£3€,₯&¦!§¨©ͺ«¬­―%°-±6²B³O΄]΅lΆ{·‹ΈΉΊΐ»ΣΌη½ϋΏΐ&Α=ΒTΓkΔ„ΕœΖΆΗΠΘκΚΛ!Μ>ΝZΞwΟ•Π³ΡρΤΥ0ΦPΧqΨ’Ω³ΪΥΫφέή:ί\ΰα‘βΔγηε ζ.ηSθwιœκΒλθνξ7ο_πˆρ²ςέτυ5φcχ’ψΒωσϋ&όZύώΖ���”"―Bπ₯Bς¨]Ώw 3 ν ͺ g $ η ¦h)ξΆyB ΣŸk5Σ’rCλΐ“kC  ς!Ν"§#„$_%>&&ό'ά(Ώ) *ƒ+f,J-1..ύ/ε0Ξ1·2 3Š4u5`6M798$99ώ:λ;Ψ<Ε=³>‘?Ž@}AlB[CJD;E-F GH HIχJπKμLκMιNκOπPψRST%U<VSWmX‡Y£Zΐ[ί\^_A`daˆb¬cdχfgChii‘j·kέmn)oOpsq–rΈsΩtωvw4xOyhz{”|§}Έ~ΘΧ€ηφƒ„…#†1‡?ˆM‰[Ši‹vŒ„’ŽŸ¬Έ‘Ε’“ή”λ•ψ—˜™š(›4œ@LžWŸc o‘z’†£‘€₯¨¦΄§Ώ¨Κ©Φͺα«μ¬ψ―°±&²1³<΄F΅OΆV·]ΈcΉhΊl»pΌs½vΎyΏ{ΐ~Α€ΒƒΓ…Δ‰ΕŒΖΗ”Θ™Ι Κ¦ΛΜ·ΝΑΞΝΟΫΠκΡϋΣΤ#Υ;ΦUΧsΨ“ΩΈΪέάέ'ήMίtΰ›αΒβκδε>ζjη—θΕιυλ(μ[ν‘ξΙπρBς‚σΖυφYχͺψώϊXϋ·ύώŠ���”"―Aπ„-Φ-άŒAσ ͺ a  Τ  EΓ‡C ΗŽSβ©r>Φ€sE軐f >!!ξ"Κ#₯$ƒ%_&>''(β)Δ*¨+,t-\.C/,011μ2Ω3Ε4²5‘6Ž7~8l9\:K;<<.=!>??ώ@τAμBεCήDΩEΥFΣGΠHΠIΠJKΥLΩMέNδOμPτQώS TU"V0W?XPYaZs[‡\š]―^Ε_Ϋ`ρbcd7eOffgh–ijΕkέlσn op3qGrYskt{uŠv—w€x―y·zΎ{Δ|Θ}Μ~ΟӀՁ؂ۃ܄ޅ߆ΰ‡αˆβ‰βŠγ‹γŒγγŽγγγ‘β’β“β”β•β–β—β˜β™γšδ›εœζθžιŸλ ξ‘π’τ£χ€ϋ¦�§¨ ©ͺ« ¬)­2;―E°O±X²_³f΄n΅tΆz·Έ†ΉŒΊ’»˜ΌŸ½₯Ύ¬Ώ΄ΐΌΑΕΒΟΓΪΔεΕςΗ�ΘΙ!Κ4ΛIΜ`ΝzΕϳΠΥΡωΣ!ΤMΥ}Φ±ΧζΩΪQۈܾέφί.ΰgα‘βέδεYζšηάι"κiλ΄νξSο©ρςaσΔυ.φžψω–ϋό±ώQ��ndin������6��£€��Vΐ��O���ž€��(������P@��T@�κς�κr�ΝΖ����������������� � �������!�%�)�-�1�6�:�?�E�J�O�U�[�a�h�n�u�|�ƒ�Š�’�™�‘�©�²�Ί�Γ�Μ�Υ�ή�η�ρ�ϋ$.9DP[gs‹—€°½ΚΧες�*9GVetƒ’’²ΑΡβς$5FWhzŒž°ΒΤζω 1DXk’¦ΊΞβφ 4I^sˆ³Θήτ  6Lcy¦½Τλ1H`x§ΏΨπ 9Rjƒœ΅Ξη   4 M g  › ΅ Ο ι   8 S m ˆ £ Ύ Ω τ  * F a } ™ ΅ Π μ % A ^ z — ³ Π ν ' E b   » Ψ φ3QoެΛκ (Gg†¦Ζζ&Fg‡¨Θι +KmŽ―Πρ4Vx™»έ!CeˆͺΜο4WyœΏβ(Kn’΅ΨόCfŠφ=b†ͺΞς;_„¨Νς;`…ͺΟτ>cˆ­ΣψCh޳Ωώ$Jp•»α-SyŸΕμ8^…«ΡψEk’Ήί  - S z ‘ Θ ο!!=!d!‹!²!Ω"�"'"N"v""Δ"μ##:#b#‰#±#Ψ$�$($O$w$Ÿ$Η$ο%%?%g%%·%ί&&/&X&€&¨&Ρ&ω'"'J's'œ'Ε'ν((?(h(‘(»(δ) )6)`)‰)³)έ**0*Z*„**Ψ++,+W++¬+Φ,,,,W,‚,­,Ψ--.-Z-…-±-έ. .5.a..Ή.ζ//?/l/™/Ζ/σ0!0N0|0ͺ0Χ1141b1‘1Ώ1ξ22L2{2«2Ϊ3 3:3j3›3Λ3ό4-4^44Α4ς5$5V5ˆ5»5ν6 6S6‡6Ί6ξ7"7V7‹7ΐ7υ8*8_8•8Λ9989n9₯9έ::L:„:½:φ;/;h;’;ά<<Q<‹<Η==>=z=·=τ>1>o>­>λ?*?i?©?θ@)@i@ͺ@λA,AmA―AρB3BuBΈBϋC>CCΔDDLDDΤEE^E£EθF.FsFΉG�GFGGΣHHbH©HρI9IIΚJJ[J€JνK7KKΛLL_LͺLτM?M‹MΦN"NnNΊOOROŸOμP9P†PΤQ"QoQΎR RZR©RψSGS–SζT6T†TΦU&UvUΗVViVΊW W]W―XXSX₯XψYJYYπZDZ—Zλ[>[’[ζ\:\\γ]8]]β^7^^β_8_Ž_δ`:``ηa=a”aλbBb™bρcHc cχdOd§deXe°f fafΊgglgΕhhxhΡi+i„iήj8j’jμkGk‘kϋlVl°m mfmΑnnwno-oˆoδp?p›pφqRqr rerΑssysΥt1ttιuFu’uώvZv·wwpwΜx)x…xβy>y›yχzTz°{ {i{Ζ|"||ά}8}•}ρ~N~ͺcΏ€€x€Τ1κ‚G‚€ƒƒ^ƒ»„„u„…0……λ†H†¦‡‡b‡ΐˆˆ|ˆΪ‰8‰—‰υŠTв‹‹p‹ΟŒ.ŒŒμKͺŽ ŽiŽΘ(‡ηG§‘‘g‘Η’'’ˆ’θ“H“©” ”j”Λ•,••ξ–O–°——s—Τ˜6˜˜˜ω™[™½šššγ›E›¨œ œlœΟ2”χžZž½Ÿ ŸƒŸζ J ­‘‘t‘Ψ’<’ ££g£Μ€0€”€ψ₯]₯Α¦&¦‹¦ο§T§Ή¨¨„¨ι©N©΄ͺͺͺδ«J«°¬¬|¬β­I­―|γ―I―°°°~°ε±L±΄²²‚²κ³R³Ή΄!΄‰΄ρ΅Y΅ΒΆ*Ά’Άϋ·d·ΜΈ5ΈžΉΉpΉΪΊCΊ¬»»»ιΌSΌ½½'½‘½ϋΎfΎΠΏ;Ώ¦ΐΐ{ΐζΑQΑ½Β(Β“ΒΓkΓΧΔCΔ―ΕΕ‡ΕτΖ`ΖΝΗ:Η¦ΘΘ€ΘξΙ[ΙΘΚ6Κ£ΛΛΛνΜ[ΜΙΝ7Ν¦ΞΞƒΞρΟ`ΟΟΠ>Π­ΡΡ‹ΡϊjΩΣIΣΈΤ(ԘΥΥxΥθΦXΦΘΧ9Χ©Ψ؊ΨϋΩlΩάΪMΪΎΫ/Ϋ άάƒάτέeέΧήHήΊί,ߝΰΰΰσαeαΧβIβ»γ-γ δδ„δχεiεάζNζΑη4η¦θθŒθιrιεκXκΛλ>λ±μ$μ—ν ν}νρξdξΧοKοΎπ1π₯ρρŒρςsςζσZσΝτAτ΅υ(υœφφƒφχχjχήψRψΕω9ω­ϊ ϊ”ϋϋ{ϋοόbόΦύJύ½ώ1ώ€‹��������������� � ��������!�$�(�+�/�3�7�<�@�E�J�O�T�Y�_�d�j�p�v�|�ƒ�‰��—�ž�₯�­�΄�Ό�Δ�Μ�Τ�ά�ε�ξ�φ�%/9CMWblw‚Ž™€°ΌΘΤΰμω-:GUcq›ͺΈΗΦετ#3CSct„•¦·ΘΩκό1DVh{ ³ΖΩν�(<Pdx‘ΆΛΰυ  5Kaw£ΉΠζύ+BZqˆ ΈΠθ�1Ib{”­Ζΰω  - F ` { • ― Κ δ  5 P l ‡ £ Ύ Ϊ φ  . K g „   ½ Ϊ χ  2 O m ‹ © Η ε  " @ _ ~  Ό Ϋ ϊ:Yy™ΊΪϊ<]~Ÿΐβ%Gi‹Πσ8\’Ζι 1UzžΒη 1V{ Ζλ7]ƒ©ΠφCj‘Έί.U}€ΜτDl•½ε7_ˆ±Ϊ,U¨Ρϋ$Nw‘ΛυHrœΖπDo™ΓνBl–ΐκ?i“Ύθ<fΊδ  8 b Œ Ά α! !5!`!Š!΅!ΰ" "5"`"‹"Ά"α# #7#c#Ž#Ή#ε$$<$h$“$Ώ$λ%%C%o%›%Η%τ& &M&y&¦&&','Y'†'³'ΰ( (;(h(•(Γ(π))L)z)¨)Φ**2*`**½*μ++I+x+§+Φ,,4,c,“,Β,ς-"-Q--±-α..B.r.£.Σ//5/f/—/Θ/ω0+0\0Ž0ΐ0ρ1#1V1ˆ1Ί1ν22R2…2Έ2λ33R3…3Ή3ν4!4U4‰4Ύ4ς5'5\5‘5Ζ5ϋ616g6œ67 7?7u7¬7γ88Q8ˆ8ΐ8ψ909h9 9Ω::J:ƒ:½:φ;0;j;€;ή<<S<Ž<Ι==@=|=Έ=υ>1>n>«>θ?&?d?’?ΰ@@]@œ@ΫAAYA™AΨBBXB—BΨCCXC™CΩDD[DœDέEE`E’EδF&FhFͺFμG/GrG΄GχH:H~HΑIIHIŒIΠJJXJJαK&KkK°KυL:LLΕM MPM–MάN#NiN°NφO=O„OΛPPZP‘PιQ1QyQΑR RRRšRγS,SuSΎTTQTšTδU.UxUΒV VWV‘VμW7W‚WΝXXdX°XϋYGY“YίZ,ZxZΕ[[^[«[ω\F\“\α]/]}]Λ^^g^Ά__S_’_ρ`@``ίa/aaΟbbobΏccac±ddSd₯dφeHe™eλf=ffαg4g†gΩh,hhi%ixiΜj jtjΗkkpkΔllmlΒmmlmΒnnmnΒoonoΔppqpΗqquqΜr#rzrs)ssΩt1t‰tαu:u’uλvDvvφwOw¨xx\x΅yyiyΔzzyzΣ{.{‰{δ|?|›|φ}R}~ ~e~ΒzΧ€4€‘€ξLͺ‚‚f‚Δƒ#ƒ‚ƒα„A„‘……a…Α†"†ƒ†δ‡F‡§ˆ ˆkˆΝ‰0‰“‰φŠYŠΌ‹ ‹ƒ‹θŒLŒ°zίŽDŽ©uΫA§‘‘u‘ά’C’ͺ““y“α”I”±••‚•κ–S–Ό—%—Ž—χ˜a˜Λ™4™žššsšέ›G›²œœ‡œς]Ιž4žŸŸ ŸvŸβ N Ί‘&‘’‘ώ’j’Φ£C£―€€ˆ€υ₯a₯Ξ¦;¦¨§§‚§ο¨\¨Ι©6©£ͺͺ~ͺλ«X«Ε¬3¬ ­ ­{­θUΒ―0―° °w°ε±R±Ώ²,²™³³s³ΰ΄M΄Ή΅&΅“΅ΆlΆΨ·E·±ΈΈ‰ΈυΉaΉΝΊ9Ί€»»{»ζΌQΌΌ½'½’½όΎgΎΡΏ;Ώ₯ΐΐxΐβΑLΑΆΒ ŠΒυΓ_ΓΚΔ5Δ Ε ΕvΕαΖLΖ·Η#ǎΗϊΘfΘΡΙ=Ι©ΚʁΚνΛZΛΖΜ2ΜŸΝ ΝxΝεΞQΞΎΟ+ϘΠΠrΠίΡLΡΉ&“Σ�ΣmΣΫΤHΤ΅Υ#ՐΥύΦkΦΨΧEΧ³Ψ ΨŽΨϋΩiΩΦΪCΪ±ΫیΫωάfάΤέAέήή‰ήφίcίΠΰ=ΰͺαα„αρβ^βΚγ7γ€δδ}διεVεΒζ.ζšηηrηήθIθ΅ι!ιŒιχκcκΞλ9λ£μμyμγνNνΈξ"ξŒξυο_οΙπ2π›ρρmρΥς>ς¦σσvσήτFτ­υυ{υβφHφ―χχ{χαψFψ«ωωuωΪϊ>ϊ’ϋϋiϋΝό0ό“όυύWύΉώώ|ώέ>Ÿ�������������� � � ��������#�&�*�.�2�6�;�?�D�I�N�S�Y�^�d�j�p�v�}�ƒ�Š�‘�˜�Ÿ�§�―�Ά�Ύ�Ζ�Ο�Χ�ΰ�ι�ς�ϋ !+5?IT_ju€‹—£―»ΗΣΰμω .;IWes‚Ÿ½ΜΫκϊ *:JZk|ž―ΐγυ+=Pbuˆ›ΑΥθό$8L`u‰ž³Θέσ3I_u‹‘ΈΞεό*AYpˆŸ·Οη0Iaz“¬Ζίψ  , E _ y ” Θ γ ύ  3 N i …   » Χ σ  + G c € œ Ή Υ ς  , J g „ ’ ΐ ή ό  8 V u ” ² Ρ π/NnŽ­Νν.Oo±σ6Xy›½ί$Fh‹Πσ9]€£Ηλ2VzžΓη 0UyžΓθ 3X}£Ιξ:`†­Σω Fm”»β 0W¦ΞυEm•½ε 5^†―Ψ�)R{€Ξχ JsΗπDn˜ΓνBl—ΒνBm™Δο  F q  Ι τ! !L!x!€!Ρ!ύ")"V"‚"―"Ϋ##5#b##Ό#ι$$D$r$Ÿ$Ν$ϊ%(%V%„%²%α&&=&l&š&Ι&ψ'&'U'„'³'γ((A(q(‘(Π)�)0)`))ΐ)ρ*!*R*‚*³*δ++F+w+¨+Ϊ, ,=,n, ,--7-i-›-Ξ.�.3.f.™.Μ/�/3/g/š/Ξ0060j0Ÿ0Σ11<1q1¦1Ϋ22F2|2²2η33T3Š3Α3χ4.4e4œ4Σ5 5B5z5²5κ6#6[6”6Ν77?7x7²7λ8%8_8š8Τ99J9…9ΐ9ϋ:7:s:―:λ;(;d;‘;ή<<Y<—<Υ==R=‘=Π>>N>Ž>Ξ??N??Π@@R@”@ΦAAYAœAήB!BcB¦BιC,CpC³CχD;DDΓEELE‘EΦFF`F₯FλG1GvGΌHHIHHΦIIdI«IσJ:J‚JΚKKZK£KλL4L}LΖMMXM’MλN5NNΙOO^O©OτP?PŠPΥQ QlQΈRRPRœRθS5S‚SΟTTiTΆUUQUŸUνV;V‰VΨW&WuWΔXXbX²YYQY‘YπZAZ‘Zα[2[‚[Σ\$\u\Η]]j]»^ ^_^±__V_©_ό`N`‘`υaHa›aοbCb–bκc?c“cηd<ddεe:eeδf:ffεg;ggζh=h“hιi@i–iνjDj›jςkIk‘kψlPl§lmWm―nn`nΈoojoΒpptpΝq'q€qΩr3rrζs@sšsτtOt©uu^uΈvvnvΙw$wwΪx5x‘xμyHy€yz[z·{{o{Λ|(|„|ΰ}=}š}φ~S~° jΗ€$€€ί=›ω‚W‚ΆƒƒtƒΣ„2„’„ς…R…²††s†Τ‡5‡—‡ψˆZˆ»‰‰€‰βŠEЧ‹ ‹m‹ΠŒ4Œ—Œϋ_ΓŽ'ŽŒŽπUΊ„κ‘O‘΅’’€’ζ“M“³””€”η•M•΄––ƒ–κ—Q—Ή˜!˜ˆ˜π™X™ΐš(š‘šω›a›Κœ2œ›mΦž?ž¨ŸŸzŸγ M Ά‘‘‰‘ς’\’Ζ£/£™€€l€Φ₯@₯ͺ¦¦~¦θ§Q§»¨%¨¨ω©c©Νͺ7ͺ‘« «t«ή¬H¬²­­…­οXΒ―,―•―ώ°h°Ρ±:±£² ²u²ή³G³°΄΄΄κ΅R΅ΊΆ"ΆŠΆς·Z·ΒΈ)ΈΈψΉ_ΉΖΊ-Ί“Ίϊ»`»ΖΌ,Ό’Όψ½]½ΒΎ(ΎŒΎρΏVΏΊΐΐ‚ΐζΑKΑ―ΒΒxΒέΓBΓ§Δ ΔqΔΧΕ<Ε‘ΖΖmΖΗ8ǞΘΘjΘΠΙ6ɝΚΚiΚΠΛ6˝ΜΜjΜΡΝ8͟ΞΞlΞΣΟ:Ο‘ΠΠpΠΧΡ>Ρ₯ sΫΣBΣ©ΤΤxΤίΥFΥΦΦ|ΦδΧKΧ²Ψ؁ΨθΩOΩΆΪΪ„ΪλΫRΫΉά ά‡άξέUέ»ή"ή‰ήοίVίΌΰ"ΰˆΰοαUα»β!β†βμγRγ·δδ‚δηεLε±ζζ{ζίηDη¨θ θqθΤι8ιœικcκΖλ)λŒλξμQμ³ννwνΩξ:ξœξύο^οΏπππΰρ?ρŸρώς^ς½σσzσΨτ6τ”τρυOυ«φφdφΑχχxχΣψ.ψ‰ψγω=ω—ωπϊIϊ’ϊϋϋSϋ«όόYό°ύύ\ύ²ώώ\ώ±Y¬��sf32����� ·��–σW��)��ύΧϋ·ύ¦��Ϊ��ΐφmmod������Zc��b*����Ν‰ €����������������ξ�Adobe�d@���Ϋ�„�      ΐ��ώr�έ��/Δ’������������ ��������� �s�!1AQa"q2‘‘±B#ΑRΡα3bπ$r‚ρ%C4S’’²csΒ5D'“£³6TdtΓβ&ƒ „”EF€΄VΣU(ςγσΔΤδτeu…•₯΅ΕΥευfv†–¦ΆΖΦζφ7GWgw‡—§·ΗΧηχ8HXhxˆ˜¨ΈΘΨθψ)9IYiy‰™©ΉΙΩιω*:JZjzŠšͺΊΚΪκϊ�m�!1AQa"q‘2‘±πΑΡα#BRbrρ3$4C‚’S%’c²Βs5βDƒT“ &6E'dtU7ς£³Γ()Σγ󄔀΄ΔΤδτeu…•₯΅ΕΥευFVfv†–¦ΆΖΦζφGWgw‡—§·ΗΧηχ8HXhxˆ˜¨ΈΘΨθψ9IYiy‰™©ΉΙΩιω*:JZjzŠšͺΊΚΪκϊΪ� ��?�ϊa°ΞJνθ•*Αzα\)vύώΑjξ½@―|! οταUλΈΔ-;·Ž>JΨξ:ψœT*ΥάχΓ¦τύ}±CtάτκqK€ ‘αίηUN›w8«tϊ1Vo R·ˆ'εί.§~ύρJνλσ튯Q㊯�aBΰΎΨέMρWqΓHΆψβΆΈ kHί­NV©-ΣϋFhPƒMŽhΦ΅lU’�†*΄Ž›όλ…Vο֘‘i·γŠVχβ‚Υ7­wοŠ†kΎoc«@S¦ΤπΕ[$αŠΝ7>--�GΛΫj? U’sΎ*ΆžΤ-­:ΕZ©Θξ―Πϊ${tχΞ<=*oPΚ™0V—ρ#·Λ Σ`Wzb†ιΆύ»aUΓ¦(wj}ϋb•ΐ »bx늯ιΰ;β•Τ'§_αŠ�֝π+‡ωŠ[άφωβ†ΐή§lRΊV*ΰ»P}J₯?*Έχvΐͺ€h8‘u1EΈ +n§lVΧŠ-ΤΕmΤΕmͺbΆΥ1M΄Fψκb­qΕmi¨Ε+H?†XGOΓ©Σ·α†’έ1C@oO JΈ―qΫ�VΏ‰ο…+h|:wΖΠκtπρΕ]Ηθ―CZn›ψaCGΗ}Ί\Uož*όkΧkσ?Ž?Ρϊͺ@‘άη Ρ*Ž”ν’ ¨ (zžϋ~Sk‡_ &‘k©οΣ|*Ϊ―‡l Ί€ΠψβUx_Ψ₯ΊSΆΨ«~;“νύp*ώ?HU° λτβ«©Nέ0+tΆ¦γ N£c… Σιΐ«ΐΕ]@?†*ΈνΒ†ιŠb‡{γJΉAbAf= β‚”jΎ`Π4-΅nΛM’•O2‰HφŒί†09–άZ|ΉΎˆ“ξ :_ΝΏ Ζά#ΥεΊ=+ »°ΫάΣ sDt.|{W/ொ΅·ζ’ξάF·ΧέL0ιΑγΗΝμ}TwαϋYvŸ¬ι²†Σ΅(.‰ίΣ G�jœrF\‹…—L_\HLθFΔSΔdšZ8²ΆΏVjŸνβ­Z╬>ώΨm+)ώή*°ΓVΣ―Ύ5JoMόN*Ρ­:ΣΗZ &ϋxb‡SΆ*ήΫW*έ?ψU όρU€}ϊβ«ιΫ˜«\zžύ±E5ΐxŽ”ΓiϊγoΖrDnτnή”¦Ω%₯ΰw―QΎ(\£ΗΆ! œNĝqJπ:ΨͺκŸΎ)lίyΐ­xϋtͺΰ6₯zvΕWύΈUP ΕqUΚΏN(oŽηί¨Ε6ΌΆ% ΣΆιŠLUΊb‹n˜iμU‹yΗΞήXς’5Ÿ5jkam)+cjƒΤΉΊ~čΫάτΞ!ΝΙhςκ§ΑˆYλά=ερ‡›�η |εζωe³ΠCyC@bTAlά―₯_§‚Gμ¦ΨN3Τ½ΆƒΩΜ8}Y=rσϊGΓυ° WžFšiZζvbežbd’Ύ,νRNω Pδοx#@WΉXXC·0ώ?  φ?NcΘ—$ˆδΛ¬m‘x©βw^DrTAδαδ‘κΙmγŽ01²Σ”‹Τ~¬‹‰8™lYΦ‰η_Le‡P©`)Θ9ύςƒέΏΘεΝ(y‡Uͺμ¬y7‡€ύdΣυ =V+λ ΔφςwθΚέΥΧ±™‰ ;—±K†BŠ/$Α¬ κaKGJΪ΅Š­#ξΐ•œkΎhŒUgΌ=ρW UΫτκ;βv*έ1U£wκ*ΆΎ;όρBί·πΕVqχΖ•Σϊ"Τc\䞍°6I[γή› i ΤWaΣί €o΅1Uΰt§~Έ₯vΤχΔ«©ΆXkZχΕWψͺ’Ž•?F«(Δ‘TtΕ‰u1[wΎ(ov*[¦CΓVΐΓJσΝOΜνς£Λ―κ¨/΅+²Πyo@ Εο@©υX΅vπΨnpˆ™Ορ»Ωϊ λrπG`9žαϊϋŸ™ZΏ˜όΑη�1άy―ΝΧΟ}©]’*•‚Φ~ Œž(‹ΠS―}σ Δc>}ο¦h΄XτΈΔ1ŠŽ}ε–hϊz3r/@)ΠPϋf,δδNT‹aΗΈ d+�jj;:ύωŽwq&m˜ιρ£„5ιZυʍΈyIYU΅‚žπͺ¨Ω?¦@ΈrΙIͺΪPͺ€°₯h?ΞΎψΌKGΗk$ͺ 7U§α^Έi”€Nt›Ϋ­ρ/­C…Ώ΅;,©ίn•Ž0‘°αjpΗ<xO>‡ΉνΡKΔ1\@βH'A$2κΫŒΨƒbήfQ1$a~*·όλ-b—φπ‘Τΐ•ΏI¦¬#Γ­§‡Ρ…V‘ϊρV©ψβ¦ίΣ»qΆJΡλክφΖ•ΗΗΆ*±Άωb†ΆφρλŠ_Τϊ+Δ ¨μNrFΉEhϋxί½Ό0ͺΰ£}±Uκ>Š―~X₯ΏŸίŠ­c±zwΐ«|6>η ―P6ΐͺ‘qU`0‘S ŠΆ=?,Uw§'ς7݁°ƒςΕ“°„/οΠaUΛokΕεδλiegά^]>Λ1)y“ΰ βv ‘�nNΟΘoΜo?κ›ΎzΤ<Οv²G’[–³ς›ΪΪΒ6<6ιΞOΆΗΉ>Ω™xqσ?Šψ>›Ωz£Β!Το#ήgGZƐ"ƒΔ†§sξRl».-Ωώ›<F΅‰$ό<iQR?UwΚ$ VA.o@ΣdI•I`ͺzž4Ϋ°©§έψ ǐq2΄qF]ωlς§SΆά”ŒœIHυdΊzz, ƒκt v4φZ€Σl8yglΒΪ$‘RŸ Ÿ„°Ϋ₯iΚ›œζαJD&πΐ€ΚΌ a΅~œ Fj’Ωjό;ς|G†<{²&άΣ,ŽZlΕPΕr|Cξ5Μ­1Έ‘άκϋFKωΓνeΉ{―Ά±K_F·…]αŠ{m’ΞƒZ|:œJVŸΨͺή�†WS΅½Go*Φ*ΧΜβ­W΅†½©Ύ*Z§τ醐�Υϊ-ڝύ³”z%β”­1K`υιΕί…qVλ_ž)_½~{β«»Um^½±VΒψtνŠ χψβͺκ1B Ε‰H|ΣζΏ.y'H“\σV­‘§ ύΡsΚiΫ§!_ερΓ}:Άι΄Ω53ΰΗ?Ž}Ο–΅ΏωΚMBώV·ςG”…¬%ΈGͺk,ZCΰλo ωŒ’zšϋ^―Kμ ηžώΆqω—ω­ϊ‡šgΆŠSOͺΨΖΆρ�Β ώ9L¨ω»\}£ΕΚζwW΅Υ<Ου“_ΤͺΓfYδb=ΘT@L΄˜άω3 ;σΟzqΡΦε½@Ώέ^"Μ¦ž$€E~x7‹ƒ—²4Ω?†½ΟJς�ηŽ—$ΡXyΒΘθwO²κpφdφζğ=Ζ[‡ξŸWμώH,'Œwuύ―yΆ’˜ ΊΆ–;›[”[άΔΑγ‘B¬*Μ€opσ&ŽΔ>q�œ°σkω{ςΑ<½i9†�Οw‚ΑψŸ‹κ05ΘΫ …k–cΜyoψψ»ίg4Ύ6§Œ /βvΞΝ4Ηn:*…Εh�χύY•!Δϊ x_ζgζύώ,š–¦HξX7Χ504JέD²ί¨λ›­gDŽ9όž'Ϊi'§‘Α§#‹¬ΉΧσϋž ’ωί͚­Ή§kχŸ€”’νq3Νΐš”š6n,¦›τφ¦m²iρ䏒)β΄ύ«ͺΣερ‘’\^dΘx/ӟɏ=Ωώ`ω~ΟWHR₯&NΜ±&)` ΎΥ}ίΕvŽŒιςpτθ|ŸOΡvŒuΊaš^ΔwHsύ£Φζ+;w–Vαkκ)r₯U@₯kΡ@vkl΅™ΩρOζ·όεύΖ•¨\yςζήΚς[vhυ zρ’YfXα<U¨GVΨμTηM μ1؟ ?IyΞΣνΜzixx@œΗ2~˜ϋ»ΟΨωΧΛΏσ�^ZσCyΊ/9]κ7Χ‘VλJΥΧΦ°Ί΅/ΙWκζŠ‹_±${­kVΊΛΩL˜ό>��κ9ƒούΠΩΥ‰ρNVπ‘Q#Λτύ‚όšόΦΠ8<›gη 6΄q)²Χ4Y7–Ζϊ5 $$χR$nκ|AΞ_£ž)Η=ϊƒή;�_qz,Y‘žxω˜=Ηέφ½w…(Œ»�™Μ.LκΚο%Ιώζ5˜4’ή7 κ―A·ΘεΊcκ>η΄Ηξΰ|ΛшΜΧLΥ0R΅‚–έL &݁ b•6Γ §N£ Z τιΎjŸ†oπ=ρU»V‡‘ΕZ5ώΜUoΛξΕVψ ΄τω*Φψ‘Φϊ, M3•δτAΎ[ς{ΰU@)Oγ‰VΨT~Ίβ–Ε*qBρώgxΕZ4―sόqUγ—Ž*ͺ@qA^1A/"όγόΰΏ)tKi κώmΧ,ωy˜…p»5ΥΙ]Φ;xΉψGs“„ Νμv™Ω³Χd‘΄G3ϊ›σϊζηΜ~}ןΜήqΥ₯Φu‰«Αδ<b+ύΝΌcቂžJRŒEτm.““1CνgΊnŽPz`m_OcΫιΜYM2Θ~™gΒPL<YIτδo„νϋ;ψε2“–[se°ιόε‰π’ *»ž�:퐻 ΙhΤ΄–�Φƒ‹RGˆίε‘Ά&t”jž^3C 4EάΊυή› �L”eMΈ΅4R_#ώgίώSkΦφ£5אυ‹”T…ΨŸΡο#qϊΤφBΧγ^„oΧ31Ω9ύ�΅‡iφ<uψΜαΆP6ώ—‘ύŒΞ\ληTόΧΌΏ «-—–4 wR„2<šn ƒΰSeιΐ ΛΏf―e4Ζ:c3ΞR?μv|iω…ζkŸ-ωVhl#Z“z6οςe¨άΧ—aχœΫh0 Ήn\ƒg΄:ιιtδΓκ;'ƒy3ςΪ�ΜR_[Žhα–Rρ@ηƒLΐΥ™ͺ+BvΎnu:Έβτǟάρ½ΨΥ“›=€MΧYw“εχ²―>ώMκ6Φ£^ςύƒ\Gt#β1φ–5H4¨r/hFG‚fœΎΫφrCχΊqdsˆϋǟ“ΪηΌ―η?[σ|š•ΖŸ€­cŽΞζ#{½άJŒέ„f†•κ+ΎΩνόΨε�A;ςθ?΅³ΩΝ.£Kή(1‰―Iœ>>ΔόΦςœόγδ‹ο/ωFζ;ύN#σΘεKBOΗΘζŽ* TxΉ£ΠgΗ‡0žA`~>Ηi¨ΙNJpŒΈdEχύŸ?)Ώη.ΉYλ?™w*ΡXά‰`ς΅Έ!.VB§?²h‚ΖΔζοYν ƒ#ŸρžηšΣvF §ŒƒΘ}>WΧαΙτ?ζ�δ—ΌύεΗ±ϊ”Z͊Π΅KhΥ »*ό(₯�’6ί (Gaš­idΣOˆ˜ούΎnϋ(Ε‡‡˜mΠ�B<‡Xς­Ÿ�Ξ+λώlό¦όό›ς»Μ°4σ²6ŸͺιξΓƒ^[Διχp·CΜ+%GΪ‰άfσΆα‹W£αΏγάv/7 Η—Gͺ–›/9ώl‡”ƒυ’iΨΔΌW¨%w¦Γ©φ‘Ξ ‡zθŸΛω~±κμ7τμΤ9χ/°Λ΄ίQχ8έ¬+}οY‘V(žy]a‚0L“ΘB"v43NΑΡ ΝlPόΙς6œολΡήΜ›4(Σ΅|*’ŸŽTrΗήμ1v^§'(<φIσsΛ@Ž:‹Ζvυ8 ό dqά\ΨΉΟP›Ω~cωVρ•{‹&~†xσe&˜Dz΄δμ­D:ξ,ΖΦξώqcuδ'R >šn>œ΄HK–ξα(’―†˜­# VRΈk_ŸΣ…+NpΒ­wρρΕV“ϊ±*·Z{ν_| °�΅…Ε_Χϊ$€Ίg)ΝθU}ͺOQ$QΆέ<1Uύ銷NΫνŠWS^Ώk|N*ΌνΕUTS‡ΝΎjΡ|εoΞa”Η€h6ζyΡOΗ4‡α†ή/•ΘUϋϋa�“C™gƒσδαΜώ-ωIu―λί™mΦ<οζ?TΦε bc΄~-a―Dv� ΝO|ΙΙX£Βν};A₯†—„·Όό^‘€iβΫΣ€E˜φ,Γ0'+nœ­θVNΌ aι1!„4¨zxΨ}4ξršp¦,Πέ–ιΨJ=h&‚hE~,ŠlOΛ!(Χ7 ?Ω–Ϋ˜ή©ΓaVp j\‹ƒ+VŽ2OαU»μ Ϋ’1)βΫtA·C@~*ΧzmΏPE;{`bdωΟσƒJŽ·1(V»rSQϊώy›₯—©ι;'ς–‰uwͺΝ-ευδΧχA<Ξ]ύ8WӍ*w∠Ψ ΫHŠ;)Β0ΊΫŸ$ώ ΪςςsK%²“JpηάW±η„f1uqsB;Μ¦ίJ†&β84fψhχ*~}|r©d%¬=M­η³ D�UδCP¨-°cα_o―LŞBγ™pΚή³ε`ΰˆύ5ͺσθΔ“Ϋοω�ή#1rJάdΙώ?©ξš5΄d#7οŸ#Ϋ©]…iΉμ£l¬ŸΟ.ŸΗήΜΈΕt‡NT ―sΆΔxΣ$α‹%&Έ·…ͺA*§‘ΑnDIyF§ωcδ­_Ξ:υ=―3ωX·θPU^.@š5>Χ ςZύ“Σ-œ±Η,q•F\Η{•) p’”n‰ζ/Ή“yƒX·lξ.'—!'•*6―Η16έ6–` εΝν;Eςξ΅y§ͺίω«X»YΒθ} ku3ΚέΤΡPu=vΛαŽϋΛ—―μIηΝ-±DY=Iξ­‡k>bσ7š%•΅ΝZξς%ίΠgγoϋ1­ο9σέΝΣθ°i«‚ ·ζbxν!–xγΟaR½7ωΰMΔʊoάGξŠ3πŽώ;‹A&$υd6Ϊq #n€Φƒ¦EƞKLb‚ξΖUΉΣζ°ΊVψn#b¦ŸG_‘ΐ|šeΓ1S�‡§ωkΟ2άLšg™Q-˜…ΆΥTqŠBz GEcγΣΗ.Η¨ή₯σtšΞΝΰx·GQξzQT§2]H+i•©‘…+iγŠV‘ϊϊb«M|7ρΕ]Ώ€`U•?ΣhώΎΈͺΓχPαU΄φό{b‡Πϊ$ >Œε‰P·lPUTmξ1J ¨φφΖ’ΨχͺργχŒUpኢ:β«… ͺ1 σσώrΫΟ-ω·Fό―ΣξΏά_•j>hD? ΊΒώζ=ώ―­FlΛΑϊSΧ{7£τœΔnvοΪςΪήά[πAΆΜvE*z~™­–ακv³Α *ΉTr…@cΛ½#πω˜τIpεdΥ>N�œ˜όΛΧτ΄―/ω~νμ_†ς-VβI%ΏCΎζ›Τϋ θ»E „Ξbψj½ο;ν7heΡa„1š98―Ό ­ΌχζφίωΔ›J_Κm,jΗχq]άΓ£secυhΘ�μ_[—ΒhΙΜ>ߌF€πσ _½―±η’ZοΞ½έXΕ0`dRνΔSˆΔΤΣ4|.\…>^όΡ�œžOΛΟΜ] Ι1θo¬ΪNmΫ\–W™€γ@΄e-Ηr>"@δ3y‘μS©Γ,†UΞ»wΈ:Ν~-&Xb³1ΟωΆh{ίfB¦h–FΥδTE2ρ•9Ep Q€Ψ€N�eLΡStΆ5έψό}½ο όη‡ώuϋΙV7,FΥψkΎ]¦ϊΓΎμ3ϋΗΕ^J‰…œrŠ―:σjnI?Žn³s§{/’ήmω‘ω­¨ω3Z‹HΠ¬ΰkΙ ŽkΉηΤ#ξΚ”ή»v͞‡³γš<S&ž+ΪOh'‘Ι’ ¨Oέ^cͺD�œƒΧ‘uν{{`‚k)₯Fΐ‡FβOΡΫc–εμ}½ωΊάΩc2>."|Mύ›=ηA�œŒόΈΉ‰LΊ£i¬―΄7P²sκŒ�aF;Ύ9­ΙΨΉΑΨ_Έ» ~ΠθrξgΓο>ˆς‡ζo΅ΰ{8i0Ί© ¨γ-ΙWν HιBΎk3h³@ϊ ~MΤαΞ.‰ψ‡Πzš΄{Ί -^Βτ…,βήζzr;;ζΕ(σδλ²α'pΛίY‡ˆY'ˆΊ3Θ΄,>Ρ"•PmΣ"Π0žt“έω‡O΅F–λQ³…Is ΓbjΜ:S燄ž@ΉΒK ?™ΎEžφΧD²σv•«έΜm­τϋ;€šG˜|LŸ»,₯7&™d΄Ω@³}2„,σ1Συ<σƒΜΧ:…ξ—εΛ ›T”ύl+n'ΔΔ|λŽ ζz=wcι†8„rδ‚Σ¬£΄†ˆΠQΒ…+‘$–Y²“l’λQ΄·6κ8~>₯₯J£Œ— �›,φݚζΡ#˜šιF*H§Ώ·Zm•Κ.ΈΘFVŸAd…΅’Š{lkΎ‰e!ω‡σ Κ~JW›ΜΥΎ—n"IpΤ2ΙO°€]°ω3'“&cP±˜‡Ȉσ@ωσΫς«Ο·Χ:F‡ζ›X΅[d-…ρ[7™Iβ}/U¨ΕOΪ�Τuάo–j{/Q€qN;wά8ζ†IpΒbGΈ�oΑμRi‚t1:Π ˆ‘οΤsZbΜf1,ηΚΜάΏΓϊ„†IaRt«¦;Ιυ„“Τ¨ϋ>Ϋv̌?„όNΏLοaΘσΗ½Σ2jΣξ>Œ –Σ+kzταJ?UΔ bͺ}Θϋ°+DuΪ§­#¦ίN(kόϊŸΏ_Ρϊ#SΫ9G‘UA\R6)^Ezb­ώΦ*έzώ¬Uxώ8«‡ί*’ψυΕV]κz5ώ΅¨2Η§θΦ³_ί3JΪ6•―ˆZcш‰™Ι§β­Ά³{ζ½wZσMό…οόΛ¨άjw^§Ϊ-q!p=Έ© τfΧ$"#άRΡ` "9ObΡ"rΡz|iCΠ«Πμiώ}³Y2εOa»8&(`fΠ°<Οσwͺ±ϋ$τ'­6ε1Έ€v~r~{yuŸΜ©!,ΚΊm΄Zs\#¨Xω·)|ˆU�Gά‘Ηdβπτΰχ›|οΪ½@žΈc‘/ϊΖΛτ›ςgG6—ΎVŽΨ‰"m>'σFe«)D‘)?ΐΚzžC΄gǞdχ½d8a‡!\ά�>π>/bdŠTβ#‡ΰ¦ˆΓά’ΡΣξΜ0εDχό{ί•ΊΫZωΏώr˜Ηy?­`|ΩghϊU4Ύ™<–›H„ώΙ흢pφvάψ ωΌΎ§‡?l€NΡ ₯_?μ~Ε[·Βά@ΛBVλ±…iΎΥρψ¨O]μ쓏Ηγg‚~z±_+j“–)·•ΆάŸ„ώ5ώ9v^Pοϋ3}Ο•<ƒe]έΙ§8Aφ;V€φ§Žm΅©»©š€|ρωΣδλϋΙϘ¬mύab†;Έ’Ή7,~i›ήΛΤ€8 ηΙΰύ―μΉζ­F1f#Τ:οψ>rŽHΩ¨qφΦ‡‘ؐGZΗ7‚F¬ΦΘ‘ •h‚ „ P“Ξ›υ<°$&–ΣΔμβ$υ„δ#ΣεJ†vvR‹Φ£Ά,…"l­­—ΔM-©–Xν¦ϊ‹˜₯"A*HΤgοΤwΒMμYGmΑ―wΕ=M_TXAζ @Κ‹Βήάœ?v’Q˜” ‡f ¦G‚?Ν ΡΤeiŸ·ρΠ1«›ΗΈŒDχΝιΙκ,rΘμ‘€"Ώ$|˜¦™e‘gζYηεn—ζ?3yΎΓGςθ|ΞΛ>‘­"½- ƒ4¬cάΔ*JŸ–av†XbΔe=ΗAή]·baΝͺΤc‘ΤΛΈwώ€:ΎΪ΅»:ǟυ[Ι*m΄€ŠΒΤmZP ΐtΞ/$xqί»μΉ=«γσJ?<?3ζς‘’¬Ϊ怏 œ΅Άψjf ©$·‰ΜΙμρ©Λιo“ΘφΟk~Gήs5/ιwήψjσσOΟ—w‘\Νζ‹ΕxH1ͺ0 £΅U@ΏŽu‘Ρሑ�πsνέl₯Δr—Ϊ�σ�σšή³«,yЍJyBΆ―*¬lI4N›ίοΎ νΔ‹4­ΩPΗέγτο»/΄²koO¨nΫΰGΉχ½«.—₯έκ―->­ :…άŠY€ΆΞw>)W{·Α)žOΘK3ζωΘΝ{MMRxRΌΉΟ'JΗO™€hγ^™Jš±"΅¦w‡ΓΠiΜ€δΔΌ~L™;SYΒdDA5ύGτ½ƒσWώq:χɚ;kΎKΉΉσzΊ–™r£λƒΣ3ZΌaj@ά₯§Ω9‡‘ν±–\9�Τrχ/UΨ0αβΣd?„ΟœHλες{WόβόδΉ¨κV”ώ|Ώ—US„§εη˜'ψ₯δΦΜw0DNθAF؊`φοeB9ρ ―¨Ύ§ζΗ³΅ΣΜx2nzϊζ›τ:ξΪN\Βޝͫ¬ΦŠŽ.»Šœδδ)ΪΒCpy§ιΊ„z₯…Ά‘β.²Gό²)£―Πs2βι2β8¦bz#<rLVŸΗΆ)ZqJΪ~¬ ΡΫY…Vϋύi νΠβUͺ{v¦4ϊ!ϊΞrDΌ5*‰£jšn+ŠW©οΧΗTϋqVι^Έ«©ύžψͺρΣίTQΣΞίσ–>go-ώGω†Φ 8_yΚξΣΛφ£ΉŠwυnHωEϋσ#K,±ςίδμ; Ι©ω»ώ§ζ�•¬ΟΒ( £zΦ›‡2υέτΌ5Γ»Ϋ4UU‰΅ ~3ϋ nw?EOφ ΦΝr'·Ρ;B@B hTŠ…ώj€jM;ΆΛβr8Ξν |Ÿ™7>Nσ?˜?3nΌΈtΩ§Φυma‘IŒO41—2ΞWˆ H 4_φ#;Ψj1γӌ—ιό{嚞ΟΤgν)γ”MΚgΤA1Ÿ-βΓ£φΟΚϊ4–:VŸjΑ=;khγ’‹UPˆMΗ*vψ›Δ-3ΞςOŠDχ½†§(35ψύ 'Z•³Gg?ί”jvŒ0(zš,EUO͘ψΰkΑ rFΟ3ψηϋί•V’ω—ώrG†0³Οζ{Ή.&iPE#ΘΫ2υebU*Η`ΓwΪ1hO”CΜιdgΪ²—t€Oην:Z°ˆΧ‘ϋ,j�Άϋo†yαΨ»�Λη/ωΘ“Ώ’5JΤ Λο(Ώyο™!ϋΨ»ώΕ7)'ΟώP²h΄H#5 DΕiχΝΟ?YwΉΖΰ#“@†ό˜ύ!ΕΨϊ¨ήΥΊΧϋ0G?φγd$<ΓΞ_σŒΊW˜ƒκ:4’jŠ΅!M΄·χІΥ_γ›m'mΚ™Ž!φΌ‡jv›TL£θŸxδ}γτ‡Νzίδwζ—₯¬ώ]“P·AD½²"Tb³P.ΰ R3{‹΄΄ω9J½ο%Ÿ°5˜ΡΔ;γ»»ΠόΙmκG.™s !έ­₯‘)8O�UFb:t9•<ˆuσg‡Υ σQ··Ίšxmc°–K“)Ω�L„ΘκTlάφp>ε9a /£ΒD€"o»«"ΡΌ₯ζ1ήZΩh^\Υ΅;ύ^(¦²x!‘TœŸFWb84/F5$qp@Ϋ+ɨLj)�7#‡6R!+"ϋΆοξ―ΈΎŒςΟόαߞυX‘o0\EεΛk„ 72“ά¨ͺ¨h¬Β ’Ϋ£4Ωϋ >Εχ;ΌΟ?{:χn_]Ωώ[ycς―Ιχ~VӍ―5S¨]ΘΦnˆZNύ φGlζ΅̚™άΟ»Έ{žΗ²°bΗ!‹@Ϊ|ΙκωλΙZΟQΤΫ_K2²Β«P?†_¨ϊ€ξM˜ΎTόή½ΏσGζEώ™�Ι‘g¦D W‘qΎΐ±ό3ͺμΜcœύΛδ~ΡΞzŽΠ8‡Jψο7¬h—&ε½BΒhθ½»ύzμ•%œ―Ϋ©ό-ΠR‚™‰“Y)d=—²πβΐqP6 ž§Ου>uς>­qεΏ:ω{Q΅ik}N+hψ³ "YDg•,Έ$ϋGΆmuΖLR‰δCΔθ3>¦%_3OΨΏΜ.κχςϋ_X"ϊΜηJ™ήPδ•Z΅Rή Ώ†pzIš>πχ~%JQχ‡ζGόγ?™¬Ό§ω±§άή2GcͺGqc$οΔ2ς«¨Vͺ�I>9ΩφΆ—N@ζ7xξΔΚ!©1ώp#τ‡άΎe�œ°ό¨―gΠΑ½ΧΡV5MKLZŒ‘"že(c>|η°φ&¦q½£οζξςv–Ÿ ΐγ³ε½|_]λϊ=§η›ζ_&»>˜<Νc¨θΦw12„š[”υb1!δ5έ75¨Ξœb‘œy9π~NQŸΧ ˜NΖ@ςκ~­Ÿ½’76zΤ’v―^Υώ'<Σ£Ώ’S%ΚBk'u·ΈI’=©*ό_ŠεψΔ8}‘γ.ρχ3\ΌΊυ‡Mxb«Hv)ZiLUoπΐ«ΞΈ­­>έϋb­Pxb—ΣϊM�<δ'’iΏ,)D‡―ΣΦ™ Άͺ§ρΒ¨…†*©ΗύΌ(u=ΎxΌtΕ ΐΔ1%ωΟ�9Ώζ—»σεέhš|Ϊξ‘; ‹ητ`,=’Œύω²ΠCiLϋΏIzOgρΧϋΝ|žεΘKzB Ν]وβͺiχœŽcήχ8θEμšb¬nͺτ!BrP)΅+]σ_=Ϊ¦vΩ–ZΓ �“ΡPXΫtQZ‡Ϊ=ί|­Εœ‰ά3Λ:xΏ‹S΅λFc’ηˆζΡςέ²[m�Κ#Ά d‘{8:T„LŽΏ'Άi‹ £©΅Mi_ΌΣππΚtYnΡWϊrέΐΡΊ‘WRΌJ†δ:QTšόNLlΗco όΏ�œuς?‘<ιω£G<šΕν΄ΦΪ}¬Οκ[Ϊ%ΫΦδΕΛγ>΅δ”ύ“Ύl5§›>ŠG`~uΛδ‰GrΛ,cR—3χΧΏ›θ9Y–><yς†Μ6;ύΏ~j€˜€KδίωΙΙΒyA-ΐβnεŠ(Ξ�i€―zœΙμρϋΰυ…3χ<·ΛπSJjBͺRN‚›t―Ώož]–^§w›i³N Γ†ώ¦ΛZ νψζ4¦αζŸ{Ψtν5c· DΟΕvΒ‚¦„οΫ°Lf]YΩξM ςϊΟŸθπΜΚ Σr;wOΔ§YΈO2ˆ*Z˜ΚΙcm<LXπ=Iκ*¦κΝτd£˜ŽLF¦]ε ό·-δ7w^_ΣeΎ‡šΕ¨’υ@Z ςRΐ=ς᨝pΩλYg—>ΎνΩΆ›£ΫXΒ"΅΅Žή$’€¨T₯k@ͺ�RεH₯w\¦Rκ\yε”Ά'ρψύ¨Ϋ»4‚@„8n>Ηψ ˜γ•—ώsέ%―•΅˜¦Kvt yΨj»MκΘΡv4O‹δωΚόβςν‰Z‚ρ+ΉEνV¨'ΐζΣ/Φξ§fŸ&ήjπh_™^bΥ΅ϋΈQwjp₯EwξGNΩΥβ‡Δw>IͺΤΗOΪ™rK&ΏCσžόΙζ+Ζ™΅ ‹+P‘c…PP3q#“υΛqΰ†1@:νojηΥJ̌G@ ΪSΏΚŸ.\ωΓσ/Ι:J@”W—ξίŽ Vυ€vά~σ•λs 8'3έφ˜φ^ŸUŽ=ΖΟΊ;—ξψΣ"ΈΣM¬ƒΥŠd`ѐ(A �Η<πΊS>'›ρΛσ«ςkΜί•ή`Υo_Ixό₯ͺΝώΥΤ(Y_ή¬? UYjEZmα�fφŒ50ύ`n?KΝφ—gΛ ŽHW;WKιψζπy9sE)θA¦Ω²t—eλ”vΟω›ε-mKj7ΡE¦iΚ¨Βi‹W“s­B²»fhΣΞΝ άώ;ω;žΚ1όΤIίΈ~ΎκζύΰHŒ,m)ΔKšΤ±₯@―Sžn^„J;ΙΧσ©γΥ°IχIπ9<WΑΗνώκ'ΝιgυζK©Zp%m<>Œ)ZO_ՊVυ*·ίΎ*·Γξ8iηΆ*ολαŠΫΤϊΧψŒδ©θš‰Ϋ#Ι*Κ™0„J~ό)E UVΏF(l VΧτb…DRμ¨’¬ΔΔα Kρ«σοΜcΝίσ_˜wι/«e€κθš{Τθ鱬? ιN|σq¦ήlόήί±±˜bˆ#πS} ήEEd*ΤjκXνΰ~μΑΚl½9ζ—ζ˜Ό‘€₯gθύu‚ϊ’FΝ―VN"ƒ‘ρνχf_gθ᨝JκGmφ‡δtΎ$+Šΐ’-δόεwž¬u8u½MΦ4₯eυ¬νΫΞ � $€²“·Fό3k“°p˜Τ ΏŸΨρXύΞeϋΜq1ξύo§ό›�9ωi{<6Ϊύ¦«ε2υ{wžέh)W’hJΧφzΆj³vxο%φ΅Μ‡oi3lx |ŏ˜}!‘ΞB~RjvΡMeω’4“©ΰ“\z-^©ZHpΨψf·'eκ`Mγ—ΙΈfΑ’ΈrDλςz½·ζ”Υuσ6‘υ?³ΡΎ·Td £αbγr§1Ο 5ΒoάXœDυω€ίςΊ?)νM₯Ηζ?—Vqp‹θέΩέΈPp, aB>Yg䳑cΎE…G—Ώxgί€,uXξτϋΨoν%'ΣΉΆ‘eŒ•b―ΕΠ•4jƒN‡lΓΘ;μέ˜š<ί!ΞQ^+iZ!HϊΖ«ϋ|$·ΩρΫeφpΌ„ω©μ8ΤeπϋΨ‡–γ‘μ3QΛμχ―Biνώ}°fΨ»}M [Υt,ΙTEBA¨,<`d›©Τdϋ^©c 5v«~Ι(WρΚΑtω%{²XΪ2x+ρzΤΈάoMιγZd­Ε1=Q Ž$δ”5έ“JυββΈAc·U0ͺ«ΔŠ8†%”Χ­;޽ΖJ2¦ΐ[9£Tύγ5�–―QΨ1ΨόŽγ%Νͺp=ԘzdS‚­)ΔΡNΗjx…Θ_σzΒΕεΫΫn_ΥΨ’ηί@άζ~‚ͺμŒ|"Sξξx/–’ΊŽΌ@W·ˆ†‘&₯FΗΫ3ςš™v'xƒδ$~tωnοIσ]φ²Ι4–±–d!a.Ώ E‡ΓPόΞu˜OQφωΎQνNŠX΅'6ζ3λ[έsΙlm§ΎΊ·Στϋy/o\-ΰS$ΈέUjH©9œHˆ³°yΌp–IΐY=εϊQ�8Οω%qδϊy§^·γζ{ΨΪ3nÐ΅ά1_ςΐZžέ3‘νŽΡΏwθiύAτΚμ‘ ΕΗ“ϋΩ ?ΡήσΧδύ W’E›ŠV•―ω>ώΓ Ο^μs δ§ζο#yΟZ=ώζ;΅ε‘΅t©SΙY�9)ίΗΐεψsΟΔ h‡2‘D\O0yΗ{σΧΞίσ‚:νǘnΌ‹ζ}>ΗΛΧ<d[-Qg’βΥ�l+ >’«Z7bM3¦Σ{F+,Iκ*κuZŽΘΕ’|XηΐB ―‹ιΘίωΖ?)ώP‘­ΘΓΜώw“’�‰g€΅I‹ΕiO�Γ«±ρ§νΦΛ«τύ0ώoΏΏξs4ϊL:aθήGœ?pξ§$Fα) ? “άwΝAoo's>pΉ$ό+¦Κ΄=ώ5ί'‡κψ0νξ½λY’]*ήΈ²[Χ­#­?«©š·‰W}ΕZ8Uoс_ΥϊW92‰Ύ4ϊq₯TT?vD §lR¬Ώ«¦*Ό£U|ρATŊQΥ`Πt½[_Ή`–ϊ …Φ£3ž€ZΒώ%i‡˜€Βrο4όΠη—S½›RΈ$Ν«\ΛrMI\ΘΣ=Aλ»f�(αwlϊ.‡‡'ΡΊ‡XYEx�8τƒιο㚌œέ΄Ή<ησΣL]WΙΊ‡0΅΄Q=Ή$Ž%>"XŽΐΟΨφDψr7Cν—C’'˜ά|?ψ.έCDĎ%ώuΑςP―5³H»'.|Ά ξ(ΓcσΒBΣ0°M:YXΌή‘Ί7ΧVγ iaτQ:G +·NΈ7œˆˆ“σϋ©¨έX\ΗcqυhΪβι`I!ˆŒ’',κwΨ©φΒ,lΚRίϊ© s§\Δ4φ’Ϋ#³§EZŒzG—€+_ž&VΔΐŠ<ΏcυΧώqWG»Ρ'τΙdΎŽζΗ_ΊΊΥt‹xM`ŠήκJ°E$•¬‘λSτgŸφζA=Iڈ�x{m4pΓpn͏ιo_ΞK](ΤΌ›`ΤΤbΔό'Σ_Ϊ?NΩGg¬ω=cWω±GΛB–Ρς’uξ+ΆΩNnnΓSΜ½“B¦V<#έίΖ ώω―™έκdz%½cDxžΝΧ‰λΏΈ?†ΙΥΛr˜[»).A«zlGJϋŽΊa,d&RLjf¨Ž ΧέΑξ:ƒŠQφξ²T0.iίβmΎκΣοXHR.PΗƒ±�’A«oά•4'Ϊ΅Γlf:„±… Hτ£eψ@s·jαeŽ&ί �ΞCLγOΎ #ρpΔ6ηψοό3qΩ€q¬m¦‘ς,ΙrτΨΝTΗmWΔS =2ύHυ*½άΟ5?-ΨλQΗόIr²²,Φξ‘’ESTζ΄"ͺIΚ±j%ŒμiΦΟM‰�Gqά'ΎKό±ςΦ‰47v:]₯₯ΫάC 8Φ‹ΘoAΠoΎGQɐQ$‡γΕ€“Š&ΉFŸIhΆΫƁQ–ŒCΈϋBΏ<ΦΞV]~\„³[1Ί–cΝIΨ† l>œ2αδ6½§)#4r ‰+ΆΗjwρΛξθIwjkAΤχō Ε« rή‡ΉΐYU‹\ΰH§½7Fχ―Q•€ΏΚΌ—ΝλΨIipάΠύrx©ρϋˆzΙΜΒθ֜ γЬ"»Œ X@§L)SκqWR˜ ΄p«[ΰ₯Φϊ+Γqβ{η(τ+ΒυΫ ͺ…ϋϊΰJαO€tΕ+Ί|Ό1UΰχιŠͺƒΎT π_ωΚO0.~@ώaΜ’˜uΫh4&„Ι¨L¨Τ?ρ[24±βΛη-άΞΟΖgž>[Ώ$Ό½οbXΨ*¨ύ―Ϊ§†mσŸCGοή]†fTer©Ι”‘ς'υζ£)’μ2I§š<ΏϊSI»±ΈS$sΔc‘ψΉsΫ‘ω6φΙi³πLαdŒrΔΖ\ŽΟ̍cGΊςήΏ}‘jJaΊ½&·αΘjοΥ9έbΘ2ΔLr/jτ²ζ–)σ‰ϋ:’ΨΚ0†VdϋJ\†%¨ ±n>4]n:6 !6χ5’._ r(b³žͺ]v#в©#ίd9ΚΨΪΓn$τw˜ŽHΩ’@ ­[qέx°£E{W-‘� όy‡‘~XyΜί›žl‹Ιš3΄Άw ―ζ}X€!³²W˜ψ@8Šςϊs[«†“Ήτη»τΉΪ4΅S1ΏHϊpύΌŸΆšf‘e iNiŽ—€ΪΗmee „Xγ‰Dh59ζΩg)“)nI²υφ Ϋαξ|5�9¬ήrςtm&\Μβ€Π(`l»4ϊ&υ½™ύά?­ϊ_•αT‚UΨ -Oλ˜Y₯»•©;’φ½#*9*Τ€V»t‘νΎ`“nS+,Ρ8z\OΫ­BŽžΤ>#«fOM@#~Œ΅‘όzWΓ¦@YX³…­X·P‡ν|ˆθN,ψ-9Σ₯2";ρνΗφˆ―J6ΗοΕ§,hμiΓ?ξΎ6§Β6$Ÿ“n)σΒΦ#ή•κD¬,hVŸέšό5κhON™&Μ|ίΞAή¦^Q95φŽύΗ΅k›ΎΛ©κ"x4³<φaΎLΗoo HγZς·\ΏT,—.41€χm=CΗ AΫwW–»b)Aά|σY.nM‰/BΡ§{V•[ŸίE΅A4qQξ7Tζλ³ξ,=cJ�ςαΔ"οΉρU'Q˜§ΚDœPYΎn§β@i#fae!τΟ@Zvλά_Cˆpζ,£gΈG¨HQ@M|�λψdƒWGηΗόε―όδ5ο”bΘ~DΥ}4ήF·:ζ£n9KamZ€`„“Ώ‚όσ‘μNΛΟ‰zΐwŸΤ>φΠΦώGώφ[ŽΌ1οσΣζϋ ς»QΤuŸΛ_"κΊΉ‰υ-SA΄Ή»šgΠ|JΝΉ¨₯}λš \3N1δ$C—#ΔoΎ–βΩ~ƒHόΥ₯7:™dϋγ9Nλ z½πKΰυŒΝt-b–Όp%oγα…*dΧώ§αΎo؍Όp*™N*Υ}π«Χϊ9αQ\ε‰Ώ–τΕ-Χ½{b­ U‘τTb«Α γJͺ§θ#Ύ*1`_ ΞyλΒ%~]yI7›]Χ§Υ.�&’ :h:ƒ$Ω°μθήB{‡ήν»–B{©πο–νœ˜‘ˆ`Ζ­ZvμOΎdg“θZzrϊΛ–Œ©Γ4회²NIw½0ιζ8Γ N*ΤWβ`h)ά_~c œ.Όε�Όσ‹ςΣΞΦςήι‘‹/0Ω¬†Βυ�α3­Ζβ‚₯H­Q›ΞΝνS€Τ·Qέξtύ«Ω˜»F}9)~‰w΅πŸ˜�/Όιε«½'Xςυβ-΅Ρ† ˜ΌW€ΘR ›”l~‘γf fΡΈΘwΧ_‹Γj{#W§‘‰"φ#p}ΙEΆ…ζ=n蟑j:Πΰ¬ΟΘ±^!©ΔQ]Ηω†[<°€³ >.>=£4ͺ8δOΈ½ΣςσώqΣσ7Ο·|ί’&ςΏ,‘ ί0κ1„ Ζd„ο"€U”€sšν_liτΰοΔ{‡λθν4έ‡štr~μyσ>αίο~§~QώRySςŸΛί‘|΅+›‡kΊΜ΄77sΣgsΠ(© «π€~œγ5Ϊ용ρLϋ‡@μ1Cx1ŠΪOyόlυ»ΏέΫ΅XQWˆo£nΉ­”™ΔY~z~~\zߘ~S¨V;Ζ+шΎ=σkΩΓχS/iΩ FχŸΉ™yrPͺˆ§t‡ $“˜yE·κ{N‹*˜Q… ;|@]ϊζ Žξ8έ›*„Œ@©@@­z€l“vP—’( §Ϊ Δφή›ΦΏF ¦μQ6„ŽT%c.«λ^ψͺ=”οL[Œktή8…@W†β€²oτŠahκΪH¬†&aΈ₯9)#οΕΕΚ(ΫΦnc‰e©ε±Dm©JT(IΘΓ_�Ξ@_¬ΦΖΏšΆ$aLθ;*;½_F’^i_–M,¬dηρzhBΊA\ž~eΛΔ=!ξzDμcΘ!ˆέiZšΤΪ£5³Έ™bωσ_Ν_˜?–�šζ‹Id/λ K ŒςΪΚπ3F₯ oΏΑNΫo?g`Α©Σxgκοί«Δφζ·YΩΪΈη†ψd�£ΚΗ0›.ο'ޟ”_šϊWζ–΄ύ[N­Δ‘;λT?Ό’£‹ƒC^β½³Φθ₯¦ΘbG»ΝΨΒxυXΖlGΣ/˜=ΗΈ½λOΈ‚λΣε‘U`ΰΛ•4χ|§ 1σfΠΜ=%’¦54‚Τu5VΕzxΐ<ι䟝Ώ™zwε§‘΅o0Mx‘]¬M‡ £ˆΈ»qπ’‘έΈυΫιΜΝ”κrŒcγδγœ1—/ΣύύΓήKς§ςgς—_όχσΕαΧonžΡε:‡š<Λ$m#€ξ‹Ÿ‡Υ¨)AΧ ΞΛ΄5ΠΠb�_(Σξ‹I₯–²rϜš»χοτߐιάύ―΄²΅°²΅ΣmaX­΄ψ"΅΅·ŽŠ�§E¦yόμ›<ΛΊβ³hKI½ {Eœ© «±λGͺ}=r5 Ο4x°Μy=„Š;ƒLΨ<κά wπΕV»J-ΧηΧVχ=Ζ*»ΆΨ₯Lντb†«σλ…/Πϊ7^�†rDΩπqV‡)ŠΆ }±UΛψR©JΣUQΪΈͺΈ°/ΛOωΞquΞ/*y}d€~UςΌm:�y©Nӝ»*ΉΆμθΤ${Οά‹±#QΎςρ?,ξ‘ž$�j[½>CΆG?7·ΑTϊ3ΚΑ Q%1hυn|3K™―3Χlbgτ ­όFϋ Ώ€1DTΘΜM1šͺ‚x�8ΈίΕOL"nΘ£wε:π0Ή΅ŠαX«?ͺŠκTΠ‚  žN9ˆ6 (κ$6΅/'i6ς mτΈ#•Ζhβ[Τΰ¬:_δΞyw³ždo#ψόnΟl¬‘c5λρFΐPW»ζI›9Yό~=Ιυ’§&ͺΣόe4θ ΄δ’_ͺ0XdR¦΄ΨS½{ϋδ gˆYΝΟΟ ™Ύ_52§₯pΑ< +R;ζσ³€π$φz#Ά?‹7ςός7¦c$lKξ6vκs(rσDSΪ<»|]š‰$­�ξ6=©˜9#\&«Αθ__2BκΆr»§bξ|+•nλ†*6HbσjΊ½Ό–κ„σ~ U'qφOLΒ‡;T΄Χ,šoNwE2…˜jzuόpW&š`Xd±KhαL�’κ% 5Θ‡Q˜ζ>ΔΥnͺ₯”«xRΏGLq₯?±„y‹RAަwo PvΛ -Ογ6)ωρωέ}λ-ΒWα§ΐkPλLιϋ2ν{N\:BTλΛ+]2Β΅ψaŒ»x£Η§\§?Τ\Μ;cΈ=«Ab°Ζ₯‰aCΉΨS··LΦδjΝή›y—ΘϊOœt›έ3UΆŽγOΤ"α7#ρΏβΒ„0`H#prZ}T°HJ&ˆuyγ4,‘βŒΆ#ρΛΙρuΧε§ζΏδǘΏΔ—Ί…ΥξŸ«ΆI 3T­ε±•*Hό3«ΗΣkaΑ˜�|�Aθρ™ϋYΩΣ94r3‡wρ{₯RcwΈyGώs>ςΒώ2ςw7–;‰tΙΒ5P…w0MN ΆΗΗΓ0³ϋ={βŸΟυ†0νάs›‰λ_¨ξτ½CώsΙQi·θ~^ΦuK΄‘c6χ ΌQ˜δΉc2IΚξ­ΏJΖ‡³ΩΜͺRˆ?ΖΫ¦]©€«R;mUχτ½‹η©—σ/ώr_Ο:tΪΌKu%€\ν΄»E˜YΨΕNN‘ΌίWφ˜3;m›kΑ٘O3Τ՟ΗΨΓ)λe–£ο΅Χν>{ίGιε?喝ωoε›Π»*'Υe+C,νBΤ'°νœ†³S-FC9|=ΞΓ6P@„EDrύ§έ·§Ε‚ΣΪ ΣΫqί0₯&Έ?|ζ#ΐ‘τζŽF¨βΐΤlΩΊ"ΑOob‹Žρμw³ζσ!gα.?~*ΟΚΈ² mχ RxΣϊkο…V‘±ρΕVοα6�Ρϊ5ZSožrDίq_£hνΕixωτΕ+ǏUp“νŠ« Ε\~Ό 0/ΕωΙΝI΅/ωΙ_Ν6yΦUΣ/-4Ψ•z*ZΪD8 5ΝώŠ5¦™'νzNΚ �<’Ÿ+ W EsΗ…jkΤmύsR-ν4δSθ,Τ'ΑΘ­BƒΨW­OžiσY@{¦ˆΐFœΈ³©ύήτj.Τ<©ZŽω―%κμΦ倩Π7Ω­GCρwμG|œγ ΄L³ο·¦ΖœI ZΠΫξ+Σj#…Ρw[dh~{ψŠtΖΠQ–ς„c‹Ι«QΨΤx‰ωγlLz§PΚͺ6<ΉTΧίάτ8ΫD£i±ρ#ρ€SAΤΧϊ`nΓ±~cΞBΝ%—ζg–Ω«WK‚δνEξ:ηGΩ#‹ώQ‡-ύ/Έ2?+κJρ[€WcΈρΕώŽαήe…‡·hzν«‘ŽΣΥJΰ €sq«§Τ㌢&ž™g­\LAύ*μ"(ωŒΗ"dτρρ„α‹8%­ΈΣφ]jkνν‚Ϊ†άŠ$ΨΨ¨W’F n+ΰzβΧβΟ‘V4sτ$–Qπ03ί ‹ΝΜ—Ον)t…H5'―ίMŽŒ—G˜yΚώζ+i#~%ؐ”'‘ωƒάζFrvΊ( °όώόΩ»’[‹‘φ)€G Ξ«A·ŒT;ž£ε9iys±·ˆšw%@ιšνHυ—g„“Ž7ά>η¬θˆ†Hc«�H.ŒhE?Ϊ₯3e9viΡ,¬δ"§19TW―z|ό3 ΘέΊMDδ>)όšU΄¬±ςβ@Vβhvϊ; œf⌲g—ωώq―Θ~sΊ{έKOΧsήάiηκςK±�1‹Ɂ¨ύ¬Ω`νŒψF[wάMT4ڍσc=ό^uο`Zgόαw—ΣV22jΒP±ΥαΚ€94‚ŠκΤΠδfiφ‹)p‹p“tXκ@KηχžΆϋςγςίΛ_—v:w–μΞ;©={Ιπyœ’yΈ†Υ γALκu3ΞnfΚsLH�ξοWB‘Y«ZΣ―†c[ŠASž>Q3PB„ ‰έ1;± Rlδ5'χlNէѐrα/SΨ¬€υ¬¬e�~[BΫ{ Ν”~σYH2ˆΕ‹G©ΥΕ’Σσΐ•‡ΈϋρUΓοΕVΧ ΅ŠΏϊ6sτg(^…Τ‚»ψβ•ΐ{β–ΖΤΫθΕ ‡έŠUW―ρνͺΈΕ‰E[ ’βΟνΘ«χ2LΟηζ&²ΪΟηηδ₯L’yΫWFZς§£9‰h{μ™ΥbΗΓ¦Ζ?’Ηegβ™ƞ‘δε’+Ν(@―Z\ΤjΆ{­$½6ϊG)n±¬A½2ΐρ©$°ξHπμir m‘βzξ™~Β8+›) ΠwΨψ}ω„E:Μ°eρΝKήU�OΗ_CΎɝ•ΔnB2»°†G!ΉωΆD΅δ‰ ¦9"“Š­)Ηu4$ώKSοβξ&$ψ*k@ ^ήΤVά} •γc̍Έ€6?Ϊ+‹Ι ©ͺ‹w Υΐίΐž+ŒΩ~fώx«~jθφρ‘˜ΫΪΞμ£j|akCγf<yzύ,?ΊςύΜ‡ΛΊϋ4k ͺΦ«κTƒAΪ€ ΗΟ–=KΆΙš6KΫt{-rέ£?U’]Δhj ηΓ0d`].yβ•ξφ2-be"PX)RΔPτ πA“$±Gͺaq£jμOŒΥ…xƒOςΊΰ¦υ8Βμ5UR‰HΘA^lHo–ΔδCw‹™%9°²Υc„sτ€gψ”TμOQ^™7.\DνjrhS\ΪξωΗ~‹ZώΘ&™ ΜΔWyŸτmF+"Π­Ή·Š6-(©‘˜ƒφˆ εψ$έάh5'{²όκόΠΣgInδΈΈυ\―Ω]©ΰ>ŒκτS gΫPγΖM½WΙ,GΣkώIG\Φj‡¬ϋݚW†5ά>η°hλρ‚jUψTu=js'$δ–ΟmΠξŸκλ7©!―"�ΔόŽ`Ȑ]>£»'feιΉ†$)5,+Ύη§Ž!ΐ°Κ­Q„H€MAοώ}}²N$Θ½ΣΈUcj,9ς°*FΔΧ±χθpρ4Σψ‚Έ4₯(FίEF6Σ ‰#•+°―SMΗ†ψ±T,Μ§α―n»`,h$–ΡN„T·ȝރ幾±εέ zSΤ²o5_α› @tš‘Yd<Ӝ“JӊV6Ψ²YήΏ†΅Mλ…["ƒXwΕVνγίρΗuΣϊ:»Œε^…³RGλΐ—~ΫoΗocŠ[₯6;b΄¬½†*¬§Ά,Jc¦Στ…‘&€O$τ�0ίr,Cω}Τ5φƒσ+Ο7rΟκΓ¨ω£YΜ„Ρ™΅ Κ°'zοaŽπΔD}Ξ.—Sΰη$ς'τΎςN½ΌDΞ SR7>χΫ|Ρk0“ΡτΎΞΤFqΎ Ρ5;i/֐ΚV±΅E6ι°Ξ&2:;³Π¬5©mΉG΅cψZ‡οι˜ςΕm91‰>Hόψ�œ›σ—3y;ςώα,΅HˆmgΝVς‹‡΄�Τ[ΫυOQ‡Ϋ&ΌFΓ|θ»+°γ!βf:GΏΜωw<ŸnφΔt’πtΔ�Ά<>C§w½žΞ ώbώaωƒNσGψΪβσXΠ-f†/+κΧeŒίX«˜R]έΥA–­ΥΜohtΈ1J'‘ϊ€ξθ[{&«Y‚sΚn ΤdjΟσ‡wό|XκόΩŒ Τ0J|Ή/αœΑnM= dΡά|<WΤ’οΕγ&€Ž΅^ŸvEΕ1]oq<²±e44^'ιθp’q�%ϊΥβ%€€πŠšν°πΕ8 LŸ›~ku/Ξ{Ά4ΩΩƝj9 e4ϋσ ΑιϋΛΪι€:ˆ}ετ–-˜Ι *>.5 #5₯³‹©•υ½67ψ N<©E+΅S”ιςΝlKΗΙy(¦ΐ…?Žp2 L…Β»(64@―MkQ‹W"ωEΔδW© §ή0ΫYΥ"Έ3©aZͺέ}²BTΔΖΠχΘΤ٘Ώ-Œk° +e‡˜yΚΊ³’>„Ž@ρ§ΟΫ¦YŒΡvz3Γ+~}~qZDŸX:΄(6¦β™v|ξ―Χ€¦ΎA2M€ιο<`ΧnTΎμΗΦ ™χΉy‰b‰ςjΡζ(LaxQ€Jψw­vϋ³]1k”=sˍP1R•YŸΒ½ŽΩ…“bκυVŒnʘΩhKr'Žυ­?ΟlΈ\™7qΔ σ¨FnΗ~›ψxΈς…§ά+πj·Δ€(O‡|-&$2;y ’Χ³Fߎ¦I%(€<_Ώk!XΈμά·j}ψX1ΝfκνίΤ“‚€8ΨxΧ�ž(™KeߐΎk·σ―ε/–|ΑkύΛάj–­G+Bx κAι›|Έ p•φ€]>ͺby₯!ΚώνΏCΧ2–†ωœRΟΛθΕ“^±V·Χ΄~μUoΣοLUn6―Τϊ:΄πλΤη*τ;;ψβ—xΫ¦o¦)^7<UUqUuιΆ, �XZΗqvίf Κ(ΩΟκΖ_IXσχςΕζ[)#Τ―υΌ:₯νΝΚνΠΝ3ΙΫoΪΟAΒ}�wχ8άBzSO/yοWΠ!Ε/mγ`}7ψ^ŸλwϊrtρΙΝΙΠφΖm&ΓΤ;λ}9δ/Ξ /Vž;Ao%ΌΥ¬KΔPŸεv―lΣj»6@]Ϋάvwoα՞b]ΖΎΞυ/ΝίΞ‹λKIό―ε‰Rώς�·zŒ$£ΫC(ψ—½$e;xuΙve ρ'Σ£ƒΫ½Ώωppa>²7?Νύρϋ?ω9ω'ζoΝMUν΄ΙM―—tΒΏ§΅XκΔ?άΒXq37RNΛΤζΛ΄;B:8ΩήGύ'Ιε;'²Ώ;?QαΔ>©uχGΎ_w7μGό˜žMΠ4ύ NΠγΣμ΄Έ’ή @TΜ€’I$±κO\σύVyζ™œ’χ“–Ζ0Ζjγ«Υμ΄νMγύΌΘΒ΄ˆχtΜRIεΗΦ%-–Ά\p‘\ VγΐwνΣ#Ec<TŠ[ Jυ #m»5cχoƒ„σj–HKgŸyΉυ«<qΒ#b…₯*w>dG=ݎˆb»%ωΧ¦Hχ_›~lž`ΖHe†:©Eά/Λ:L‚΄±κ0βdςϋŸ[ye$’Κ©ϋ@^»η?™Χκͺž―jόcJξH@(kB~yH;:Y Σψ}SΙ©Jt―€ξrmlqSJ’μΗ§Cο€rGΔC¨!E�‹Q†%§¨ΐ;4^?§l6Χ#Ρ(ι˟ ΔWΏLmCσ#©Θ*MR:‡sΏŽ[;MSΰΞ›vŒήΗ‰AλΉ^ΤΫ:Ξ<ž‹&ϊsξSό΄—ΤΠτΖ­V8#F―R|iΧ ™χ³ŸάΒ»žέ§F‘•ο]Ε+ΣqςΝtΛ9[Ρti€ˆ¬J�RA-°$»x˜“νΒΞΞ!œ‘ ³RΒ΅#Η ―ΧώdΣτ{ΝOT»‡N°±…€ΏΏ™Υ#†%/#>Ή<x₯#Β“сΕ[“°ί}žwa�9ω=4ΡY―ζ6‹υ‚j‘ξBV΄ή¬τ#ΎgK²΅@_‡/“‹-FšR‘š�Yξž_σVŸ¬Β“ιΧpκ6ξ Cqk"ΚߜE†`δΖ`jB½ϋ1Λ¦ XάynΕ½Ψ•Wχ‚€t ­Qτδ]|ΆE5Β‚μYxϋ―ΰ8DZΛα�ωΚ�ωΘ»/!ι—ώBςΝΒ^yίZ²d&$iPΘυξ;9a:ώΦoϋ²Ξ’C$‡ξΑ�Mδ<»ΛF―[?ΫΨ7ϊGτ―|�œ·šΣώqςξ Μ₯₯“Q»OTς<.žE§€=iοjLKW—ȁφUŽ8‘}c2_Xf&°%iλναŠVτΕ-b«OߊVŸ»Y·Ά*�Υϊ9Σ9W‘lΆρλ㊷αMό1Vΐύ}1Jπ�ώ₯UFΨXbΐ±=κ)€yΟΊ¬“}^=?Λz¬Ν?ςͺHϋΘΙΔ@ο#οg„\β<ίΟΞ™εXu­"Φ €HjίΟΗrNωΦΛQαΛg}όŸF:“ ΦΏ)υ‹e–γK�J…jV^[v2±ka-ŽΕΡj{,,γυξ―0hnμnΘ’YέBΥψͺެ;Χc™œέ£(J‚>+™eΉ”Ιqv=Iδ¬χΚG«uvZ˜FΜdLŽηsΜΏPη5�)4Iς―›¬τλ”ΰ!²˜ ?֞M™ΪY‚¬ŽηϋgΪΊ-Lς¦$-φ{½.―I,PΓ†c9‰?₯χ­Œœ€h‘•ˆ(ν8­Šμ=³›‘έΆbΆ?s(€ri Vβ,ΏTΣ+"Ϊ/ފ‰šΏΌΌFή *oN€`Ν2H©%ΰΌROQˆ₯ νύ˜m¬ ζG˜bΉΈ†B‘TPΥΊϋwν.fšQ‰έω«ihΆŸšώx‘—κςŽ΅]σ)^šη·ΑΈ‘οϋŸOhtHCΖό$d Σb;œΡεp3ξ^¦Θ&Œ·*žq‚€S΅j2‚κ³G„²VΎ£6ΛMΏQ7~JΠ72€6χλ€"B‚ea>.*A©₯ήω"Τei΄L AΔr οB 8$‘'ˆwbΌ^γ| ζX/˜B΅΅Π�*JHΫξiJe°stφ| ωΞ΄Yάσ!Ο]‰ρ:Οζτ’#Β,gςΎb4{*[А½kUc½2ΝxυhIπ#ξ{ύ“» θS‘`)»‚)όsT[€Μ¬’AF’¦ŽTΏξΚ%\y‚Ν4«“q'EJ­ 5zžB[ 4xEΌΫσΓΘڏζ'u�,iW0ΫήjΕυiηfzΚ²—ˆ? ₯37³5qΣgŽI ΓΦi�3₯Ι‚ψL†Δςο~My«ΘΎhς6’ϊOš4©N4SDVki”šV9)ΕΎ[αώŸS<x±›oΔ>sμάΪ9pζ_#Ξ'άG4›N½Τ΄i’m#R½Ρ%«–SOjUθΈrΩDOi�}βάlyg‹θ‘Έϊ+ʟσ–Ÿ~Yx󭿚-Λ=–½WΒ’ͺfγ‹μCm𬽇£ΙΚ<'ϊ&ΎΞNΗljcυ1ζ7ωŠzΏ™�η8Όύ―ωrM+DςΕ―”ΌΓ=Dϊό2Ψ’€ƒV‚&�¬ž ΥΆbαφw's‘”{ΉoηδεO·=»‡ ϋΙβαίοΩδ?’‘ήoόςσι;•Έ‹Κμάω»ΞχΡ»Ιvκk,9¬ΣHvb6N€τΪ]§CΧzb:yžαχΈz υsρ2_ξO9yΧΘ?t�)4ΛΚ£CΣ-–ΗNm>Ε>Δ0Η ͺ’ό‚οοœ>)™™JFΙ6}ξί΄€ χ=;-uν`JΣί­8₯oΛaάUi#­μvΖΥ―£ΏγŠΣΦϊ6=ϊvΞUθBκ{|ρUΤΕ+†*ͺ’ΏΧT_σ8xΫϊbΔΌ[ώrORm+ώq�σvιY%ςϋΩΖzοu4pτω1ΛτΓ‹4τƒv”^PόŒς•œ&u% „ψ@QƒΉΝΆ’{—ΆΣγ· •΄‹2Λ�dx«Γ½sΔ!Θπyμω›σΧK†ΖΟIš+$₯τŒΌy0P*΄eΨWί:ΛΘebήKΪl"γ*λWϋ_5[Η$σˆΈHηŠ’BŠΣ`Nmž:1β4:£.΄mZΠ_iWQ˜mΦY’ž!bsΕ\‚(‰ 8Ζc˜-“Σd‰@ςΎ];ίh�Ξ<~h�ΞEhϊχ–Ό³eε½GΟ>Li>©w€j‹Υ,’eŠI Τ$![ΦΌX°4γœχkhτ2„²JBηc©σ›v~^Π&0Ι KΪΟ§„ιuγvύx΅—”TYͺ‘¨œRœ;_œ1;;IF€αΘ€Δ�1’νο‹ Ά€&B(h΄¦€ŽΈŽh<’ΝQ#6w(hj“‰eκ~b4Š�›Ύ{(²ύ!ΑTšπZτό3{�!aξ{έ7χ|ϊΉτ†š(ΆαθFΌ©Ή§oΏ¦i²pržτ,E@Όx²�όTντf16]^se”<Šͺ*yέNϋε ©-(€ΟΗsγˆD‚uŸlύ’χι½~˜Έδ&±V°ό_ νĊž›SV©uPœq…4―#ξ:υQΝ‚kT{k™/5θή&‚‚™dC„QπoηHŒ‹Δ9 vj{σΝχf’τ•x{φyΟεΌκΪ,kȏJV―c³Ή―NΩ™­6=κΐ?^ο€ή»H7ˆ†PGZžΗψf«$@Ήrˆ¦qi=Κ+ͺΥ4§Κs€\L”ΛτλΫτtoJμ½:†§…:S*˜βΞ—{'ύ#wθ³ΆšeR*Z،ͺ.1Εϊž;η}'˞d²{/2ωr=Bΰφ·–^]y k›-\˜εp•"zhfΖqδ©ΗΈΏ>5ό΅ωkεK©,t [ρ«¨΄‚ν€·…Oy9†+αΗvzΉςNJ|½ΫΌ'nθ΄CΑŒ3Πίέξζρ%1!Ω»+€Τπ©Ϋ66σ‘?η?/t̏Ν;/ωΗL“PΠΞ›y~ϊtR΅ΉΈ–Ϋ‡c Sz²χ«νVM6œΟ©XέnΣ²tΠ͘Œ‚ΐ‰?Ύ~ην–—e¦hΪu­…Œ1YXYΔ°YiφΘ(£�6³Ο₯2I$Ω?kΣHJE˜yȟW·«h‘œύ“Ι’ŸvY¦;— ΄c΄OΌ=ζYu‡ε“U¦*°Ÿzβ•„οΣ­¨άž£uzv«ΎŠΏΧϊ6?ηLε‰Qz|»β­τχφΒ«‡Σ*ƒ¨πΕ £ύΌPΈb―–?η4΅eω«Ω‰ MλΪ=Œ1Ό€Nfu�ŽΉ™ ž>V~Η/³βe—nηη•β‚α!S Z·μΦ šžƒ2υΛά`=ŸN΄ψΚ5[>J΅ΙΤ“šΩKοrŒh|^ωρ壬y\]Ϋ««iN.£ψYω •ΒΖ”$ΣΎτΝΟdgαΙGΞ‡Ϊ-Ο€$sβοχμ:Ύ#τš ™ΠςŽH•Έ₯I]NΉΣΎlbAEϊ—ω}‘yϋςϋΛ―}ao-έ©}+[ΆhΡΛKj�œΦ‘…3‰νˆΟO¨4MΗΕτŽΛΥFŽ3κ χΕΎΚΠ4[-6ΞΦΗNΆŽΦΡ–8"βŠ5MOΎhrd36w(Λ”’m[Δ‰6$Κ*̀7ΜrβHΩLΦC±hXr4ΐŽ~cΤ`ͺό"”φ―κΓ{°­’ύS“[]R‹ϋΊ ό΅zbSެ?/۟ό­ΟΜc—UΰZ΄θͺ>�|θ?δ4=Ο{₯£yl>η^fΰ§³‘Q]‡Βk\ε£w¨X?7Œ­}?†’�7₯s«(­“ϊ¬ΐT­~[χ#&γς_Ιc, (ΌΓoΈ$Σόι…iΨ•b!•y œ”χ ψτΔΈό$¦Ξ·bʎ)ΘoM†EQζΤ³8…xΘ¨R7n΅δwW&Gv ­3}^V₯WEΚυΙ9ΨFο‡?9Π ‚ΕΘ—fN…)Φ΅§\ήφo7’»ΔzμςΛ›FΉΣD€(hη‘xΤ;{}9Ÿ­•I―³»­Ÿ½νz]™ΆB”;.ΞΖ»Ζω¬Ι.!ΙΟ&ω³λ+m^ώQH‡ψΉ)δ@ˆLb\|†;³;ΛΧΣΑlσκ;„! ©σΚe”^ΑΑžͺ1&£².(γΆΉo5Ieψkφ‚ŽΫψΰ°(&DΞ#†!ς—όδ‡ηާεk8<£ε¨Φ W[‚IdΥδ©6vκ}2ΡΦW=@7λbφtrŸ|‡Nσϊžw·ϋB]ŸΒήdίσG+}έΟΟΫ ~³}r­Φ­w}pYΔμg»’CN<·bΞ{η]` ;ςŸΔΞ¨ΚDςλ"φΏ=~Uy—Θή\ςΌσι3K\Έ“λ‘*ŽP:[‘#γeOsΣ0΄Ίψj'!΄ξ΅ύ‘-&s‘υ½m°ύ―F�œDΣοt�ΟO.Λ}y«Οg¨XEhf±{ˆO’”₯Pƒ½Faφπ2ΡΚ»ΑϋQΨΠ0ΞLΏšvκύΆ°Xΰ#τΡκ=IXςmσ‚#gy,–wM<«Υ5ˈ޾΅Υ£σ©­Dnzmί,Σν?ƒ—1ά ΠΞf:°¦I5€ϋαU•μ>μU£ΫlUa�on΅ωb­ύ'όϋ`€?Πϊ2ωΣ9G‘Tω}ۊ[ΕWΣ·†ͺφλŠͺ)T±/ƒΏη<υ΅O.ώWyEOο5}fοVG_JΞ SζςœΟμθήIKΊ?yv½“ ™>αϊ_ωzmνί™δ°°γ-~0Ψ³9έμπG“Ψ,PHρLJ}»5>Π‘$ψŽω%Ύ@’ξt(/νΝ€–Βζ —Σ—γ;ςYhNΥi“†SwE¬ΡΨυ~s~oω._&ωΓSΆŽΤΫi—²ΘϊJLΔΒ€.νNέ:ηi ΤψψDΘηο|Σ·΄•Τ’B{Η«μOωΑ»/#σUαŽhmcτίΉt·’H” ‘μξΐ€Τ³ŸφžBρŽ»ϋέΗ³η‡I3Ώͺ@rΫaΜ§½ϊS`ΙΝj8•B―]χ‘ΞD—; Ω8Š―"‘�€μΥ­;�¦C«_DΐΖR„Πί�šS|%JρŽLμ€l*vή» o€ υ' o%>¨‘w9"S ΛςώΰK�+oΟΝ5U�JΉΰwψJ­6λΆo�δ4=Ο}₯ίωΉτ^"¬P†$$d3�Γ`vιγšlΏQΜ½/MxT― Qzi˜ώχW—‰#FI1=jΝ^¦Ή&Š=UYDŽŸcάƒ½|i‡£h2ͺαE ΙTΫ‘ίΏ|K{’­UBC+0zqU]Είcˆ fy…³1Sϋ^­N•=<0†1aΪΧ 4ζγΘ=hGQΣ}²Nfς|-ωΝ+ζ€Ζ@j•jt�Τ§7ݜ:½$Gξ‹Ξ�(’9τσƒ—;©6νU}Ιρ̞Ρ5/ƒWgά_™ϋίNiϊtHf‚Ω#u¬cοšiL‹aŠfΪuŒ–InVJ‚Uw όϊuΜYΘ8Ωf#ΘnΚtνΞ)J<qnNv9JωΈy52#aL΅tM7κςˆ¬•Ϊ₯¨@aSΧνoˆ•κ2ΌŸ ΞA�Ξ>yγσ3Μ.­ε94qΌ1^³[²Δǐ~\X5°ί:^Κνl:Xδ½Νν»Ϋ=Ÿ=xΖa lξ=ί©ο_‘ίσžTό½Ρ4ΦΏΡ¬υ5YΚΧRk· ­/ΚcfŠ΅τΐRBΫ~Ή…―νiκdw"=ή^}μqιqθΰ!r9Κ·'ΏΛΊžG�9½y}eεΏ'‹8nxG«Ό‹qnΦ ”»ΤλPG†l}œ£–Υύ.kq ( x‡!ʁάχ>$ό΄σŽ­mω«ωk¬ΝͺOywcζ;Šk•SXη•Qκδυ`ΔηG­Εi²Fͺβ]‡Q9jq’ozίΈΏUx;�8˜ΠΥΟ2²CўmXΚmόΕ£7-$’ݏ΄¨iψŒ–S y£x₯ε»έ™Ξ¨)Έ²Xwώά*·θάwΕV’~ŽΨ«ŽjΏΫ…]ΘψŸUΡϊ0*3•z^0'’ΰ@Έ«cηςρΕWΧ½wΕ*ŠiŠ« ρCς«ώss_]cσ―Λώ^ŽOR$ωnξ"μ.5)εΧnόfί³£X₯.σχ;ΞΙΗ@2ς�/;(H(’*Qΐ's΅)Ψχ9Npφ8`KΫ4UŽY­ŠD‘FVŠ Σo–k2ΆRή•₯ZEτΙAZυωυι”œLΉ(+ηoΙ½σΣOƒQŒFΦχ~’8ͺ­ύβ€½9Rv̝/iOJIPβja‡Q ’ΐίπ^Ωδ?'i~FΡμτΨYι–Šμ-£Z¨.Ε›ˆΪΎω…©ΤK<Μζl—\"11€δ‘o"+ΔXWα�“±©ύYŠyΈ²‰’[°,e‘bθ½zoίί"φΦFԎwf$P:rDΫ²Όcΰ-A^5Ύ'¦ΨPNιn«ΘΐvPξkJo]†Λυ?-.¦�ΏηΰhυGλZ*ŠoΫ:?Αaξ{­,ΘΉτg—dTτ›€P «‚*i^ω¦ΚMNοV²ΉQ2Ή,„€Τ©�γΫ1έDγΊlΜY(  οL-G’,L…βψκx²¨₯ a‹ N¨?‰hωŸι RğˆYώ/ˆW­+ԚSIΩT•ω2ΓjN§‘>£&ΐ¦'­rŽW„ΠξNύΖΩ'+nψOσ•ε1\3²>Š–4Ύo{8=',&žqω73-›·ν ι…+J“LΚνAΏΑΗμ­τηϊΕυζ•7$$«Υ¨ΌE+πυί¦sσg’4Y΅ΌrI •#βP‚ŽzP(clβ™ ¦]`VC[‹žHGj­?ŽEΒΚ*ΩD2�PPΡΤl}ώxۈb€΅²rαθH ²‚@ Nυλ†Ϋ'-™$0$hΐQvΨ‘αξ;ΰ·Eƒ~`yRΟΝ«§OkΠΉ΄Έ‰ΤΚH™+CΣ―lΘΣζ8ζ$"δi²pάO)l}Εω;δOωΗ―?͏.ωWVΣ[IŽΖq«Ϋkfέ糞:hε²ό+WΨ]=σΊΥvΖ¦–H½«‘υ~§™ΓΨ9pκ€Ι΄#rƒ\‡‘>oά„c$†R₯CŽEcԊηŸAΪHΩ)eάίUΏξ¨Žφ&Z€°θί ~ ž(Hy=~AFaΨ3d]T p3XΜβ«έ{b«IόqVΎŸ» ΄M;}ψ ­εŠΏϊ)Qγ·|ε^†•»¦*Τuρΐ–ιΏΟU¦Ϋ}8₯J Un‚YbŒš` ΐΙω  Ώ 2<ѝΏ92<Υ œνu0\‹sΉ·ΆaoΠD{ θp@ΓOžuχξυ]Ÿ†£δΜt_M˜6ό™x2†44ί·Qΰ33Σβ^ΝεΉ.-=(˜ΒΜ*OZŠošά΅ΊrΒG›Ϊ4₯*-YΑR±ŠWsZνCΣΎ`JV]VmΙfVϋ€€&FcΛ`΄�'!n$εΡ“ZFTV‚ΌA₯8 ΟQΕœ“5oξψπζξ�’ύδχ=2%“ω�Ϋ“φYrkΎ�δB=‹d-ΤΣj±φ§a†˜h’Ζ«”’τ#%ɏ4£R Φ“…`8ρ―ίΧ3‡Τ—Ίͺͺώo~a€ΥUΥΆ�x~Όθaώ+sάhΟ “ά>ηΏh₯„QΣβ’~읏@hsS‘ΗΞτ:αˆϋνξ―·jζ1λ2Dkn~ΚАΰt=Ζτ¦ GuHgUŠP IιΘΰ%+ΤwΫΆ)1²‹ΑŒaΓ—§Ζ’+Ά(πΦ3\’UDeA 7=ΟN˜²!8DhΠ—™I`kΧΆΨ\I›;ζ9˜Δώ“�TžEG`{ογ“ΝΣG}ί ώrLζRŒ/ν�#₯s μΨ»ά›b/4όΈu²ΌŒ” /ά₯OΕJΣήΉ•Ϊqά{œ^Ε$α7όβϊη@‘Ϊ(Αψω’ΛР粊s³ ή₯’»5°©ψƒoΘύšύ―՘’ΊΜ‟ΪΚΙ#=AT&ƒρ©Θ4N6Θε.β©FΫάV΄Ε£†“0α#r£φ¨AΨΠυΒΣVSXeiLQ©―ΒΒZ|ͺFMRZ0π ₯€SR7Ϋ§γ„Ί΅]:Ωcxύ“΅)Άέ²W{°Λ#Ι>ζΌŠ(Τί‘©ψKE1Ο1 X™(Δι"Ž”βAΘΆαάΣΪUύDŠQΈ–4pΦPŽlϊ:[,a±Ε+­"›ƒ©Uiοϊ±VΏ©Β‘ρφ늿Σϊ ΞRή…x5=7#  ͺ©ίΗ ­±§Ύ*¨1Jπ:b¬;σ+Ν)δ_Λ=ωΒNΊ‡w=Έργ1Bϋ7a9w0Î`? |³ciΨ<’λH«;nďsZηIœμφ8υ/‘4Kx“ƒΒ@Z+xoAΰ{Σe—{ΌΖonjΠmΦ‘2!䰁ΔφοZψζ³,˜d•=NΒgˆ„eUJ}ͺΠWo–a—]’[3{]R=‹Υ·ό1p2ΣeoRŒΐ’(Pwϋπ5U"=QλΖ91E%Ή};‘ΧθΐB8vN-€‹’0?eŠχjψ¦@¦~»XА(I BτφΙ[P ΛΘ©V'—σl*<vΐCIeλk*‘Θςc½jv³‡ΤόΔΤ­ΪOΝοΜωψκŒJŽ πZ΅ iaξ{!τ|άχ Χ‚AVgwPxԐIΎσUΈω₯ΝιšT|�Pfen•ξFΫxζ3«Μo}™ ½ΡŒ0wd<Τ©4ΪΏ>ψFξ<‘jβκνλlξW†Ζ‡ΉΫ[+e/\+Ϋ…!ά- ΰMv―Qς¦4ΩWvžΔό£_ސ ‚C�D΄δ˜Λΐ§4‘ΥSνΡΑ؝0΄€mη~bxγ‚sρ3€εφζ›m–AΨiΑ$>όߚF‚ŽΌIRΛΏPqgέΆcϋ’ςίΚ9\E©Bš-ο>'jUGFλ™}€9'°₯Xζ:q>ΑΠΪT‚�Ρ€›Έ4©¨ η'Vμ²€KΥ΄Ή ۏO“Wͺ(؟˜RΊΜ£Υ»!Ά_PͺΠ45$t=j2.<φdv«§!0 88ίμυωtΐβΘ›GΫͺJ#‘"”ωtό1c#I¬"8½9˜KZžΔp5;zp‘ΤΉ–k±ιΆ4Φv „a“Σ�€…ΊƒήΎ&“Ίf¨Ν«ξ­αήΈy°΄—[·gqά•§‰>Ωβ—©ιΊ4ž‹€IZσ³‹uPΏΓ6PϊC€Κ+$½ε0?νδΨ,ω »ΰJ™Ώ *°Ž„ύ­>4ΕZρώl*κ UΤϊΉΞNνθiS²Kk…E?VVS^Έ₯YMkŠ«.υχΕ/”η5ΌΛ>ƒω ϊ=¬ζ όοYι3P^.W71šφ`Š 33A,ΒϊYύN^‚<Y/Έ}οΛ] }9£pUi°―κ ΝΆcaλ΄°§½θ΄‘ΖΌXρ©u§~y¦Μh»ƒΫtH‡:T…B·Κ„šwΝvG!4υ}?βJς WA­wΜ7Y’Ω₯°TŸ΄#<Ή·ύxΈRG*QΉ* ³’Όi@>X– κ#υέΞζ4 ŏ!P+ΠtΘ’Ο ΌNCΜΕZ„P€+ΣΫH&±Ί‚IPvκj=πΫAΑ%7& ½+ޘ°€Σ³ΫΐIψ|>xYDzŸ™Χώ³~q~bI"š₯iQρ+ώήo–‡Ήντƒχ~T>ηΏhΜΫH€ujΖ›S5Y9S”X,ξg€TŒ>"=θFcςuω#Ν4 jP•bΌόEj:WΗ'ΠJ¬M$ΛΘ₯'–ΓόΐΙ�ƒD„T3ΥΫ‹Νzrβ ₯+•“άž “›‘‹‰M”qRAθ:Šδm§ ’nΡ°›†£pPxα?Ίyw›šeζ±’?5± (‰₯Gs™ιΩi�|Sω²eXζ%V*NϋT™Πh–Sϋ’ςOΚY—XξΛt₯�θ>‡η™€6ηΩσc%�;τ>Ίnγ0PHͺ©E#£νΠg7’.λ$wz–‘p‘G"%ΙͺύΟO–ω‰0λsDšeφmHŒZ³υύς—vC%‚`Ρ±βV†„€|\SΦU‚Σβ£�κp0!»Α�ψiΰΨ°)ά$¨Š₯AZΠγ]ε1ˆsY�¨ψ¦ΐV»o…¨£d�ό UͺM†ŠQFh˜7J}<<N%ζΛ|£(—Λzh _GΥ‡ειΘŸvgΰ>€κυ‚³I‘P\ΉΗYβ1JΖλϊ†*¦~μUoсZϋ½ύρV«νΫ ‘Υϊ s”ζτ%R›Φ΅Β…κEωœRV„b•d;{β”Bψ`(~vΞ|k†[�Κ(‘ΤuۘίΤvKX‰q@™³μΑΌεδιv™ŒIο|G₯BΛ(tˆ΅6τλΦΎ9›”μυ˜#δχί,e„: ¨‘Aϋ#­6λš|ξΚCmή壄―ΑVJo±‘ο_³W—“‰—“μP€pzh(ξ ϋlNcΊι›%˜DDlͺΝζ”ιΫ|\SΊa‡Fη*MIvΥ!Ί`VœOnž8†ΑΡk,dq4$Τυψ€α,& xŽ…jϊ ΣΎη"γ›Ds]ΆYˆ©ιαΤ䩈+ΏΉUŒ§¨�!©^ΎNΜqήߚϊ΅Π�•Γωƒ*“Α΅%βϋνϋ΅§Ρ›ψGόη³ΑGΈ}ΟpΡξΰ)Ή {ζ―$i†Leθuε¨@―pͺrU¨¨ΜR ƒ—ΊEυλy”:Θ(�€½·¦#g βζΟ0«O§>gΤ` ΅θzδλkl‰₯ uԎβΤ(γ> *:0-πΣΙ,5_Y„αΓ’΅8ρ5―b<2\\Έ8vMξ5>#…V―Ώ* z q†+`ϊύέ›Α9V>«FK’  ώ~™~739X|Yω©!­Ή¬jΚUUwρ&ΉΡh†xΦ#ξyεs„ΈΧ˜72Ηρl§OlΞν΄]`Υδχ‡Φϊ Abͺ§‹lŽή4Ξk(έήδ!ιΊ4ΚΜμΘJ$Ιωf&G]š<ži"z11VD ρS¦ύ+ΰHnΘh\37_‡δvι‘qΧZΜ―H€c'~΅FΨβC)‘”ΑΖ…ι^uπ\9&JZI"`΄V€μA―†-\L ( mϋ;οπšy5SQVCπ€Ώ«%άlλ β�γΣ½0i9ς<„i·φfœ¬―Ÿ·iT6fιΕΐνϋΐ{Γ2'2mΒXOωœR°šULόΎŒ Ά£ ΅βO}ΟΛ·ΏαŠΏΦϊ"žΩΚEθU–›dήΥ�:ΰK›ψͺͺ{υχΕ(΅­:`Rό‹�œΛ}EΏη ΅?0Ι¬zšZ«%¨F,ιM…e,λQ›ΎΞώδΧ>#ψω;Ο‘ψκπνž₯A<y|kΏZdσrz?=žιεƒρΕπŽ\TDΧζsQΟ/k±,)ΕIoƒˆ'n5ϋ³]7UΥκ[3B‘γhΟ=Ϊ jPœΕuy…™<…‡§Ν\Έ]‰¦�Ž-m ΐ³V΄)α֟<S²i.x(Kv"„$R•άυΐΚ _4ΚΙ₯ŠFY ŠψS|-sω§VΟqU¬'‘αB:ΣΎψ‡`w’ΉΙιƒι7:­A"”ωΧ/›ΏbΌΜq™' Έ&€ο½+ό1r!φ?5υ9/ζηžKAΒC©ό`°4<”ή”¦tΨΐό΄=ΟS€":P―“Ϋ4C?Δ�”ά{Szζ―%[vZ§₯Z6”­J‘Ι-XΨΡ~D³\N ΈΘ4Ž-hπΜ°E A ŒΔρπ -kτdhΨΆΊ"Ι)u•’άέ7閐‚•Ž8eZΤ|_)"Ÿ,ΊGnL₯’t.h@]ZΫ~䦨EΗάE)4Ϋ•°_“•ŠrώnΥή­>ΪV‘+¨M�zQkμ€eg…£,Εmamn‹:�§΄ι֞™―*τψ€ν•]–d¦Ύ,cΝ³ά,r%½ˆx‚ί3 cQΆΑ«·Λ2±ωΆθγdύο‡2Eαk‡ψΖWxEHηJgI‘ͺΩΞΧv{©η?–Ύ·^ƒOε4ΜΠε‹¬μ ΌΎρχ>ͺΠ…drcBW₯+φEO‡Άsٝ켞·‘‹žuκHθ@ OΩϊs%S…Ÿ†·gϊ{OΒ‚1Β£ΤbGΪτ�χΜw_”Kt\Ζxͺ€d|]ιφiψψ`qqΥ‘νKrN oΜ1^£n»`-²δΚνŒΰFz―ΖΓ‘―Ά.$©1Vœ…ψ8Β•5ΫΣΓΥAk_Yxς§ΗΧ·ί ςέ=‡— Α­>/ Z%J’Χ~ƒα<«Φ˜–(Ÿ&>½―_τzBKφυw¨ωΣ2t·Ώs‹ͺ‡~�&v~μΜuαiν·ΛΓ¬?Ž©TώͺΖ­7ϊqBίΎ~8«Ύ, »Ω���������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/includes/subfolder/include2.inc.md�������������������0000664�0000000�0000000�00000000546�14654155362�0030107�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## A Sub-Heading in Nested Include Some other text with **syntax** This relative path will refer to the importing file: ```{figure} example1.jpg Caption ``` This absolute path will refer to the project root (where the `conf.py` is): ```{figure} /subfolder/example2.jpg Caption ``` ![alt](example2.jpg) ![alt](https://example.com) [text](../index.md) ����������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/mathjax/���������������������������������������������0000775�0000000�0000000�00000000000�14654155362�0023144�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/mathjax/conf.py��������������������������������������0000664�0000000�0000000�00000000302�14654155362�0024436�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������extensions = ["myst_parser"] exclude_patterns = ["_build"] mathjax3_config = {"options": {"processHtmlClass": "other"}} # this should remove the warning # suppress_warnings = ["myst.mathjax"] ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/mathjax/index.md�������������������������������������0000664�0000000�0000000�00000000034�14654155362�0024572�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Test ```{math} a = 1 ``` ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/references/������������������������������������������0000775�0000000�0000000�00000000000�14654155362�0023631�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/references/conf.py�����������������������������������0000664�0000000�0000000�00000000346�14654155362�0025133�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������extensions = ["myst_parser", "sphinx.ext.intersphinx"] exclude_patterns = ["_build"] myst_heading_anchors = 2 intersphinx_mapping = { "inter": ("https://example.com", "objects.inv"), } nitpick_ignore = [("myst", "unknown")] ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/references/file_link.txt�����������������������������0000664�0000000�0000000�00000000000�14654155362�0026314�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/references/index.md����������������������������������0000664�0000000�0000000�00000002041�14654155362�0025257�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������(title)= # Title with **nested** $a=1$ [](https://example.com) [plain text](https://example.com) [nested *syntax*](https://example.com) [](title) [plain text](title) [nested *syntax*](title) [](index.md) [plain text](index.md) [nested *syntax*](index.md) [download **link**](file_link.txt) [](subfolder/file_link2.txt) ```{eval-rst} .. _insidecodeblock: I am inside the eval-rst fence Referencing the :ref:`title` Still inside the codeblock insidecodeblock_ ``` I am outside the [fence](insidecodeblock) ## Title *anchors* ```{toctree} other.md subfolder/other2.md ``` [](#title-anchors) <project:#title-anchors> [](./other.md#title-anchors) [](other.md#title-anchors) [](subfolder/other2.md#title-anchors) # Intersphinx via `#` Unknown [](#unknown) Unknown explicit [**hallo**](#unknown) Known no title [](#paragraph-target) Known explicit [**hallo**](#paragraph-target) Known with title [](#title-target) Ambiguous [](#duplicate) # Image in title ![badge](https://shields.io/or/something.svg) [link up](#image-in-title-) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/references/objects.inv�������������������������������0000664�0000000�0000000�00000000460�14654155362�0026000�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Sphinx inventory version 2 # Project: Example # Version: 0.0.1 # The remainder of this file is compressed using zlib. xΪ…A Β0Eχ9E@·έφ.„‚^`L†$Ά‘’½½M§ΥΤξŸχόŒιcπeŠͺ1}@y”Ύ6ψ<8ͺŽ5΅—J˜7Ϋ‘)ά1HuZΓ‰²XOJ-κΔΙszŠf'Ι›§€b\ώ%+j0|αޜ‘ΫBtŠ ΅HΛ’6v”Ή¦ΞWu­vΉ‘5φ\y^‚E1—yx 4v?‹1ͺͺfT JΩώίν–€.����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/references/other.md����������������������������������0000664�0000000�0000000�00000000025�14654155362�0025271�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Title *anchors* a �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/references/subfolder/��������������������������������0000775�0000000�0000000�00000000000�14654155362�0025616�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/references/subfolder/file_link2.txt������������������0000664�0000000�0000000�00000000000�14654155362�0030363�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/references/subfolder/other2.md�����������������������0000664�0000000�0000000�00000000061�14654155362�0027340�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Title *anchors* [](../index.md#title-anchors) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/references_singlehtml/�������������������������������0000775�0000000�0000000�00000000000�14654155362�0026057�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/references_singlehtml/conf.py������������������������0000664�0000000�0000000�00000000160�14654155362�0027353�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������extensions = [ "myst_parser", ] master_doc = "index" exclude_patterns = ["_build"] myst_heading_anchors = 2 ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/references_singlehtml/index.md�����������������������0000664�0000000�0000000�00000000222�14654155362�0027504�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Title ```{toctree} other/index ``` {doc}`other/other` {any}`other/other` [](./other/other.md) [](#title) [](./other/other.md#other-title) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/references_singlehtml/other/�������������������������0000775�0000000�0000000�00000000000�14654155362�0027200�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/references_singlehtml/other/index.md�����������������0000664�0000000�0000000�00000000055�14654155362�0030631�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Other Index ```{toctree} other other2 ``` �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/references_singlehtml/other/other.md�����������������0000664�0000000�0000000�00000000124�14654155362�0030640�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Other Title {doc}`other2` {any}`other2` [](./other2.md) [](../index.md#title) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/references_singlehtml/other/other2.md����������������0000664�0000000�0000000�00000000020�14654155362�0030715�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Other 2 Title ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/substitutions/���������������������������������������0000775�0000000�0000000�00000000000�14654155362�0024447�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/substitutions/conf.py��������������������������������0000664�0000000�0000000�00000000266�14654155362�0025752�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������extensions = ["myst_parser"] exclude_patterns = ["_build"] myst_enable_extensions = ["substitution"] myst_substitutions = {"conf": "This was from the conf", "override": "From conf"} ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/substitutions/fun-fish.png���������������������������0000664�0000000�0000000�00000263666�14654155362�0026717�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR��τ��^��Vέ”�� �IDATxœμwœΥΩΗΏgξ½ΫΛ.mι‚;ΨΑWΕ² Ζ$ΖΔυ%F»°`/1±½±kLΤXˆ`AΑJ+HpΩ₯μ.»lΉ{ΛΜyή?ζΞάΉe)² ‹ξΟrο9ε)ηyΞsΜ9ΊΠ9 «*ό²h€XΛ+$όζPh|(_:ͺ>££ ώ!PVπΡ&Ίζ­ζΜ–*�1u‡ΥΧΉ˜οηL*=%_tΤhz²DΔ΄:¬ΎNΕ<ؚΦ+ŸΦW[bZδœ:ΓΧQuu:ζ}ΞUbjΔ΄`λΝ}οΈvίρ]8,‹—6w˜£sΠι4ΠcN”άώLώoε°MΛv…Φ2xΓ·­²μΠeς©ΣΥ~§ΣόΖ'–/ν«ωττΠ ™τPϋ=πꚁό²²Γ$ΰ拓΄Φ%_…BŽι±š ύΟxͺƒκλTš―»₯&·Š9u=ys}_tμŸθŽ1}Υ!₯ώ@TF"”± ζύ—ςYrh€Σ€Vkή8°έiν4Μ‹ˆ1«ΉΩͺ1Mφ,©€Εjuš=­΄2ŽqνNk§±ωΟZ^λΩ­’^ΐτšήΤZΩ/n`Ψ₯ίٍίΎφ΅N£ωω--RkYτ+XM˜0AZyΆ²?5Ϊ’Ζ²¨΅,Ύ:΄]ιν4Μ/b‘¬l,£Ζ4ιqΡ:ς^¨KhφA‚œΗyνJo»Ά£©/*ς}fšζVεΣΪ» (XM―Ώ5σεƒ%ΌΆfž―ά“Hwεzύhk΄=Ιν́;Ώ>z•<σ ‘Ε‹#Ωm¦_ FƒZϋ‹ςΎG£m}«Vž¬ά…ZΣ€Φ²ΨhY(ΰ›]wm7š;¬Ω‡B!ϊτι3δ²Λ6,υ^Ÿ6Πœ9αμΜΜLχΪ7|#uMύ©΅LjL“ JJΠZ£”Mžˆ`γoό‰?aY–{ΐ0ŒΔΛ63Ÿ™ιŸrν΅ζΙ?4Η£ο:ΌΪπίΈ€΅3Χrδ‘GΪΔy˜wPWWGχξέΚPJQUUEίΎ}wœ ‡Γ\y%RQaMš„œr 2ϊpδΣηλ3DΟEd."σμΏχE>εέΖFQJ‰ˆˆΦZDDΞ:λ,QJ‰ΦΪ½vΛ-·ˆΦZήxγ ιΧ―Ÿ{]D€¬¬l«BAeš&~ΆwχYYYς©ΠιΝ³AHΣ€²Tμ«Ψiή nzάΗΥoΧsL^žD)WλoΏύ6J)Fˆ$άxσΝ79ώψγέί–e©-εΗΘΚΚΎ©’9δΥΊ΅ χοί?«01η"­s‰σϋρ’ΣΚεί–‡‚{ΑΕγ,ξ<ΆΐeΜiζΣ¦M#‰D\‘؟P3ŠŠŠHξYό~Σ–o̜9}"ΐ 'H–Σ\srr~΅©L"Β‹χ"+_ώΎ΅~&e73ωΥ$ΉΡΕpΘ1“’ςΗοη?3δ'ΪφuΧ]—P_β'”dAύτΖτ<Ÿ/>Η©”ΚΩRζ•ΦšI“Œ6mε†Μδf$znR!e“lWwU/bkH(›ΔδGŸβχεΛν …εw(ͺz</N·/;80>WιmήίJ)ώ~ƒβςŸΗΚVvKš6Ζ\ ΙΚΚ:*‰Μj‹Ÿώg–}ύύ?«φ0bέDz4ΑΝ7ϋ₯’9ο<¬nωˆΜ³™² Š1ˆΰ6rOΣ@υΌ 0ΨM―ς`ς›žΊ »{LΆiοoησςS<UΕͺ;˜o°)Ζχ»lwΙΝΙΩsχσ†H¬ΚT†ρ4KbτΨcfΖmΩΥjΜq)Χ“y €―€γφ|Η½o;<α‚ΰΥ©/Ύ ‹β-ΦΡr2nΊ4Moζ‘#:?… �žl¨τ(Λ¦€O6ΚPμ~Α.ΏIe>hŽ3ν@Ο‹7³νేoΛLbΞM(Ύ_».ΙαΩM ΰ‡>%Ξ5π ΘBε8"’πχμ]ŠΞΖν1ά::”]†aΛΊ‡]1¨Ηwoμ)Žv£΄o6έ{f’_ Ώ σ™Έ1G‰ύT¬ν-1Ι:Œγ4wP*YΣ*8χ$q―Mš‚aŒgΖ 0Zαεϋ‘ΘJΰ›OΖ³ρ#˜:#^—( Τg>B ²CΑ}W+.'όζ(OύΙ‚φ\Pή{π^ϋζΛΊ°Aχ>Y\²XQ'@q―, Ÿ"k}˜uί·zΖσΨ@£§$ΐ²βΉ•Ζ€nζφPMυa”φωΠ5£ΆσάηΪψxΊεžύμτw= >+^Y€žkΣ‘Η§’Ψ—¬lΝβŸμ †Β0`―γSF)~ρdεω1 ΘΜραχ†Βˆωžx³oŒύ5%Vk‘qν8D8Mψ5GσTœΐAΑ?^…KO·Ύσόβ©Oyκ@ c8όnΩ᜽ό΄1œIλFΠ{p.}η{ύω‡ͺzΞεŸΓ"<‘W‰Ά ¦*HΛΖ(‘°F±™P’§§βŸgόώυg�<’wΚπώώπ½‘vd˜€{Y±’ύ}xη₯‹P}Ζπόν.Ο)υ;_υ<ϋ‹1β�žΖn!n4<^„Φ–qυ''DΎέ’°ζ›Ήυ„[-š7F)ξ‘©ύ�>h§‹mr°Εβ4vίrFBΛμ8β0νΐ%RxσΞ₯Lš >ƒWώo†€zNτD=.„C§_»νζ €ΌZχH[9­nτ «¦ΖR02Ξ8€aψ4ΰΈwρωώ―¬ΊhݚVΒ­_<ψ­Oœy¦²†•DΟ‰ ΐp ‚ργQέΊuΛ¨{·>Œ'Ζ‰Υ½&\+›dST=>Χ+>φu©“^ϊςΌ- Ή% ψLdΌ-xŞ2ο―_+₯”ΝΪ /³RRe،+¨ργν‚λλλ#Ζώ(cΪ‘Ρ5Q/pI‰έœόθS ό€ΜΓ€ςδυTξ½€<xδΒΐ–00žo”?�wί}Χ―“9LO˜Πf‘>c*밌+ΉΨC€ση*πς?+ψύ˜ε^YΔκ¦ΎXžΕςΓc7<AL‚ΗWπψΒG}ψΗ?ΆnήΜ©ΟL˜8ΡZ)ΨΓ›DIIΙ‰΅΅΅―ηB–·i: x”ΰ €Ι{OΕΏ# φC(Ψi/ΈΥhΦZη:SPQ‘>,ά„Γa²²²ΞPJ ƒΛΗ#‘O‘ΠHλ'ΘΪYΘEώurΔˆaΨΐ­u‡>NϋAήZL˜€€ ΣΣ’’bϋΠΜόΔ‰ˆΦ0gŽ2g̐‘‘Hde pM μfύgΞύA€#iΩαΘΞΞv'L ΓΈGӳݐ““3怓TΗ.΅ψ1@D:ΥΊ‡^s·�Dήί_�šοf‰Υ1n SIVeτΗͺό»!ΡΨ²%Fύ-έώΡuu*ΖE’HυSflf֏oΉ°#κκTŒ%g*1-Δ4i~Άg‡.2ξtΠZΣ:e 4=YξΡe§†ˆψ«£QYXΈΕOX~:USXνϊ…οG7 ΝΫΡ΄lW¬‹FeγσeaήBΡΦOδ- ρƒποc’4φƒ9Ύ9f睊ρ%λƒŸ™gאΉΘdζ¬ήΌX=€ΓκΪnCΒ-AM4*3š›Ω³[₯»ͺjcζΖO Ÿ² ½λκ4Έ©K„™5½ωβžnh4ώ°~GΤΧiVSn¬²ϊΣ&φ/&Μ‹kz3χW»QcY0 ύλλ4M}νŸΦΚΌŠljM“½»―t›z MFΣΤ³τY'΅g}¦©Χί[ΟΰΒ*,₯˜ΎΎSͺ#hΑΠΖ‰ν]_§iꡍύ(Νϋžƒ‹« dξΝΉό³r/{ΙΈeA;;ψNΡΤΏV_·Zef-}«„Σb’e)kf›2›ͺ/_\Φ^uΆ[S·,‹oDŽ:κ¨­/σ䜬ΐ'Qφ(ͺΖBxsέ@^ލΎάK 6ϊ΄­Π·,‹›oφ‰ψύpΗωeMMMΥ›Κ³°₯Ej΄¦oώjB„δ£[ ωτ7ξzYS€σ―• …Bdff&L)ƒύpς‘‡zοΆf͚%Ξ΅}χΪ—}ύ/©lμK­eΡοδ5L=τIξΈγΐξί?ϋμ3^>πeJ)ύψΞ>wRUUε–Y^^NϞ=}O=υΤVφΫΜψ 7 Ϋ²Ψ²χ>/1κ{"£ŠGSSWε.r–9ί Γΐ4M ΓHYVζσω΄ˆlρ Βνͺρμμ¬[Ί*δς‹D`Ζ;0ϊ�Έςθ{&φ³΄Hο€U4ώ3Φsΐ«SVDΏςΚ+œrΚ)n_}υΓ† #77—††€+¨{ο½W]~ωενΙ¦“ΌΤ̎/ϊ՞ΐ sγχC!8YΔ7$,τ‰H¦M›&ΏψΕ/ά{W]u•{šš7O―^½Άx4§**lΊ?ϊθ˜ΐΫoΟΨΪG±’ηۏ~έ‘NΑ±ULͺηU°ξΞ6Λ*αε™π—Ώ[ξ‚@­5>ŸiΣ¦ΉiΛΛΛνr•‚ω 5¦NŠRŠςςr―9lQ+VΙON- nΊi³&Έ<΄ΟD¨ž+‘ΔeA¨ͺέΕONΛΰμ±w%UΨ‚Μƒ—…*₯\Ζ¦{2?NސŸΑ²JνΝ·EŒ§τΉ>ŸύΉ’)+3VyουνΫ=?‰ieWψό _βͺw₯ ½ΔΛ»Όμœ n°σ ίAπί™pζ™gΖAkMyyy ΣZλψ‚`Ω«ΐ|ŸΟG8ή$³{ώ~χέw?wH€‘²zΩƒίNχχ¬Ž> ςΥΥβν ”e"ΐ˜Σ―I†‡Xο*W½'2ρBπϋμτΓzό+Αδ?>Ÿ/Ύπ f^Jž+dee΅ΙΛ>ο*ώ Yͺ©μΧ}.7RΊ’FΟχPόkΛ{ΑωήΕ=ŽV₯Χ• ΒΎ=ΎPΠγΉ%ΆL8±Ϊ v^m—uέoh“p§ΫzςΙ'‘yρςέ’b«­d^βRP—φ·~]Z–CiίlςΊΘΛΞύ›ρα‡I&Q€½&Ξ@#TTΰΪ¬Δθ¬U1Nν,™)›δ¦CjΝw΅€œ(β°nCΌάΠ‡‘”υ―Ά�†apφ°sάΕ‡Ξ§³ΦYNb~’{Ω9μΊaΘΜέ³€O₯}²),Ιpg<UQ‘λ.ψυ.sŠIφ”C`Oq ώ«Ο${½{ ŸJ<n§ž€Ώέ�§£χD;gΥxœί―…n·‰>utΌξ‘Ώ‡>ƒώύΊ±ςεϊ˜�ν]—λ½>βŸ{€R”τΙΒ0ΐ0}‡ζαχT.mbΥβ&Τ‡ΞΞyϋν‘- ΉmΗ m©ƒ;/‰œΌ&-¦-Η© ρΕΏ›Β„ν7&]zΫO=6i œG ήEDΙίOύ`‚–e(”‚W #­QΞͺκf―wυ) Š3ΘΘ4Xυm«5arΘαA’ΨΝΫωsΦlΕ*ψό[/5$PηΠ欁XςΥ~›e\Έq0 §]KΒj(7Mμš#lAvO`Œ€³—ŽݏHν ϊgp.}εgp—lμΞ£½),Ιδ™!-vΟ`c]˜ λΓ„‚шΆλIθΛ½n<Ϊν‘ ϋ³Δe]ή5―nπRz)J˜τΘ„f#ΈώΘ1biϋL"Z5ž)ΣαιiπίΏ₯6ηAΔκι?*ΧyΗž(ΰ�­ Γ@DψΣ‚ƒGωΜ’χ|ωA–)l¬‹PΏ.œ4γ,τuœrfXοƒwΏ†£φ"‘Y{Χ¨@ –2xν8ιWPύ5<όχ‰ ͺzΌλδˆθ3‘Sΐ-OښΤσ<q@R3wπύ΄XKP tάΡυ8‘dίΪZ;4‰uο;₯όζΉΓdΡάzZM J2hάAcL�1άsOAχΖΖΖ $Gm<žΥε P½GT?ώ8瞰*Ρ3φždησ¬ƒυ–ε^ς΄¨KsΊΦα ΅­ιMaοΛ­ςKVίΟξ]δk{@cϊo+°qγΖο=ΌRΓ…žέ•¬{;΅KυώP 0μwTΟ-_ηYψϊ Μωx.Gτ1δα*YΙΏτΞ’ξΝ1 πείW pΎ·Ιψν·g …ή‡)χbΝHΕ*λS{’Α!Π b$ζ™Τš )κR=/ΰπώ―y2z4-0σ+8zοā7αYΗΎ΅Hiκύkώ™MMMΟmmAαp˜ΜΜLkδ~οMN­Ετ°σπ+Ε\τσ )Ν7Ωwόώ6ψΟ[P?Σώ-~πν"²₯γ‘Ά1a’ŸŸ7~σ)·Gu>Ÿo 1_tςhdα+HλΧHhπ²βδƒη;„tˏ―oνΡ£ΗAνMΫ(²ΝΓ0ΤUγΗΛ[’φΞ;sƒ·v4MЁŒτΈβŠΖuJΑ}χε<W]]¦=™0UΖϋοζ»οκ@Ϋ%u :\γ^8ΎΔ0ΰ†6ίύό(0a2t萂ͧμΒ‡hώzΈ�XK―σΛ %τφ’΅=5)ζΞΉκό'`g? ²ςβ#hxM”²ƒO Χ kfCΈιΓ°CΏζ§zYΜ“ϊΫ ŽΫ‘΄n-Ί”ήJ/ψ#±,ΜΉϋ[²ρλS΅₯Ι³ς�αώμΛ20-ς/ϊ|ϊŽ&wk°];τ ²θˆηuDJ‚At(‚E0ŠG—EΎ}ρ#1₯Ώ}-ͺ»]ξ°m;]JίDgο-:AbŠΧ­Qϋ³%Xτ§`Ꭶ― „ō­χ·ΎΤGZώ]*:ϊΣΪ²ϋ' Ρ2Έω­f©ŽFεϋpXžhΨ°‰‡―]ξ}3‘ŒΚH$άύ¬V‹οςρŽ κΏ”–ξT}Ήƒθ}3X{εΊ/³ ƒ†#Μ_ΫΜΚWbυXΜΘεΖ¬ŒYoνhϊ~Ί,}Kϊ6ΏΣ\©5o«©·,‚Z!¨5Ν†π—ΦB_Ή;U'ί₯τ6 "ΖκhΤς=W λ5&&Q’TŸΰ½GJh΅4A­™ά»ςωwOί₯τ6P}aυίςOΜΏόƒ#… 1 οuΫFzί]O4ιŸ‰ΙXΖξ4²άiݞΠZrίln©ϋσz"ίΨσλ_ΌTHυ¨€νΪ-+ζβ…±ψD ƒώ±βΖσͺΖέΌƒIί"t)= –7‡d£²Xcš„κ-φΈΞuνΞg”(ΛΗeρφe„Cv#xcΐ@ŸΟPΎοRz΄Φy+†­hŠ|‘"ΥΜs· GφZFΔ2Sά»σύ Ξθτ2ντno|Φ” ΦηWΊΧ4ӈπϊΊ2‚V<zw#yΣ’1Λ π] --ΡşΏο;…Ν’KιT_RW4›ξνζ*ΤZeχƒΦ¦΅jϋw„•£³™~]_ͺd’ુƒ•Ώ―ιtJο¬]»ζΨξέK6ŸΈ±ˆE"±Ez ψͺΎwΒΈ<(‚ϊ6Μa£–΅ΩœkqQ§“­ƒNKΨo°ο]q…ŒrMžl¬…Šφ^·n]C Π~kΛ>zγ(ϊί3Ÿm&ηΒ ξu&J”gρωέJά­·θTW­€ ·FW/ίgΟ~νF`;’S+= Γ8Ή’BOΡibdŸžžΠš5Ε»UW―ωή{,Π氈Ej@‹G©eΏ¨!kF«kΑ�cK-΅�)oί3ψI|­kZ)Ν£—)Γo ΅&''ηoαpψrο›ΖJ)²²²^niiωεφ\,ΈC”>x°!Η#δζŠΞΚΒΘΚJzΓσ„ΫΊΠ`ζL" ΅aΓ†γN–χXqId}ΘέyΤ*S,ωΊA­Ήη¬³XωηTVV&cM +Qωo½υcΚΗp;·s₯yeΒ±*’•/"μ½χή,Z΄hΦϊΐmη΄mt*K4h`ί=V­*/oM>χ€ό~hn†εΛaΙ¨¬„_υG)/gθ~ϋSάk‚0ιdOΞζόσΟχ”‘ώ ‘δλήΰχϋill$777!]ςQ4ήΌ«W―fπΰΑ³LΣ<ͺ]…ΰΤΧ…ΆLΣ$//―W$ωVk]α‡‡o‚ί‹ϋ:.ΰΎΈ•ΐHς›_Ξ5ο-­axηxφ Έρβ:ZFgԚ_ Lύϊυm*Έ-Wμ=H)ω¨Λ²Z|QQυυυ›ͺ§έu€JKωό΄ΣΨη±Η²χnmmύͺ½+Ψ’Ρ(yyy ‡ΓgŒ S#ŒΤΧ—ήτ\ƒψ;›Ιοz©ΔμnΩ`ο4PU3ηΑΌoμοwΟ\ΞGΟ~Δgœ+7n™ήχΒ»wοΞΣO?ΒOΒφ18Ϋ(xαl™ΰ”;f̘—oY~Ώ—ΐΛ›βVBΓ+*Hχ*<˜³vmλΘφ8€ΞAϞ=ϋ―[·nΥM€‹NτXlρYΌσA5£χ°κQ’Fι1ŠSš~ϋ4°ΰͺρδ8;˜¨Δ‡cYSί†,š Ί.Ί>ω*qϋˆ[±cεŽ8χǎ›πΉ·χmLμ:π$¨\§˜:uͺ«t'­§>χ€‘φ‚ …Bά~{Φ-… Ρ{ο}}ΰζ›oΩβ9fΓ0κχέU-x6ηu.τ™„ (R5>Αr½ΙΌ΄@μ~Ÿ‰;4,Oavό=ΏxΛ @ٍ<χΔ$Ξ8ή~Yαςϋΐ Γ=ΧΨG?͚ –Fže₯Έp―Λ>ωδ“ΉπΒ Δ‘GI^^ϊΝYE„Œ€Aτγ4]‘‡cΌψβ‹Œ7ΞΝgΖ {š,?mΏ’»)`αΎξισΑwζNjhhœΰΈ±²²²βκκͺ:λΣXE*1"OpΓͺl’[τ’οΎg·¬GγŠή„Υγο=Ξ³ˆπΥ·ί2,Ή„4J@Κn±‰α•ΎΙ)}„ο@{οƒ_]cœz ¨ρ3“#μΆΠΦ}₯}ϋφ₯ςΥ*7–HζΗΫ9§PΓ!??Ÿ††•.Ψv?ohό­g¨ ~χΤͺ\§Ύ”·κ\XΨ ͺ5MοΛλI¨¨�™kΥ^Mφ­Ξ½’sŒ¨ΨEΛW±GΦc‰oόz²&¬lRόŠ(ήxu<ε%zTΩD@ΉΧsη©‰°¦.…γ΅ΣξάΝ}Χ;₯Oχ"9Oχ=;;›ΰœ*YΎ^–&Θtx6F$Hl³τΫώ5½Κ J Γ>X+Ά΅X˜¦&0ψόΑEΚ�¨«k£ΜΨ†7ξ~Δ%ξ|6±M|>.=.~PΔ[ĘHώC€Œ±"νmUv)άeUyϊ~η»§st&N~θΚφΌϋSd�Ž%Ϊιƒ![(οΞƒ‘ϋΕ‹ϋ.φœEζΑΊχ ΧΝoJαήϋŽυάqΗ ͺhŠ+ΓC:Σ€‘y•‰lξtςθΗϋ„­ωΓe·}KJJϊdQΪ7‡²lJzgΣ­G&ΩΉ~̈栿μm«dΐ�Vsύ7YjWΉ) H<,,z!ιΊ7=©n€˜΅Ύψςλœzπ')U—ž�ύJ}œwv9ηž}0ΩU7ΪeϊBι9<φψ3œWΎ,ήU$Gπ}nB\o °fΏΌ ~}dψα»ΰ―ŠΧ·ηΨk@’G9ωΟ0υ=˜5k£FJqϋ‘PˆΌΌ< ₯‰|œδάEΖE‘–gΓ­5}Nν5°°ΰΕΌ’�έ2b Ζήa¦Gίl2³}ddω0£š–Ζ(M’lάacm3*. 'WT0%EΪΝ€&΅e¦ι œ~4 )Mε1y+Žd&ΣvΨI‘Ϋ-oďΈάZh ™™P] λ+α…ΨζjxΌOώ67wl"Ιi{sb’‡“ι†ŠRΊ¨4ιB’8ώ΅aΆ‰y)#£δfg`Υ·PΎ —‚n1ο bۈ)ŠJ3ΘΞυSX’A°Ι€‘&LCm˜†š ΅aZ›-»ΎP(dά~{VͺHM ˜DY:Nbχήf<””,©3φΆή”ςΪθe χDn~lιζά·έrα²£βŠ2FΨ§Yž–€ψφ„Α½=}lty‡`^eώίkpύ_‘΄ΨΎΈΌΚώτe(v[Ζ.Ηυα…έ›P†«‘™³jzΊu{ΫδΔuύOφήΐ²™ΝΑηWάRXG‰ŽςΏΑή(₯ΘΜ6ˆ„4™9>¬¨Π²1Jγ† uΆ₯‡[­8;›ΰ“–Mα:ΖψΔ{μ~(έΛ+ΐ6‡nιΰ+—" nš<!νΌόζ _|%~xδκX}e“xdς“\8α;ώ}+όοmφωνηΗΆŽ:υX,Ψε#©ϋJgΥήQΗΨ?Αsμλxσ\₯ξͺΒ\δ«ηΓV―dυH°ZΗΝoͺˆn3jˆΕ‚&‹ησϋP[’±>B Γ@k!άjl2iΤ₯Gίμ-Pz²²ϋXίpΗΞχ|Έγψv*τ-τ\—8#BšΌ’ΛpN‘9枧ΣοM’<ώΈβΙΟ‘=IΨηΛ)Λe₯η_#₯`έ† τhύ;ΖψŸaαhi…•Σ ·3BNγ₯’-=₯Ž$φZLΘ?$~ΨΓα­{ΣΧΡλxhεφliiYŸ–ao="άπωq}†Ώΰ‹κΨ°.dοΡ„‚&­Ν& Θ/φrι»ϊj$;ΫSŠγμΣ ½'©{‡lΝ@l~"Ά™κ£ƒΚ8ω«$(>Eήk.ρ[”Mbς£s~ωΚx ˜\dξ%gΈ #d¬™Πΐϊ^@bΗΩΊΥ:Ϋy9ΏΕ3 πδΖ(·Y‡JemSuδΝ³ν.gτθсιΣ§ ƒQެΨGP°vU+ώ€"'ΟΟ%εWϊ~7ϊ<ν²4lυγΖQ΄Ω’φUσβα‡{φ[»vέκtχ|>ίΜ€5€yv<‚ί”»wλŽaΣX‘‹>Α3—κρiΫQΌpb#§ΨŽ_ή<BβޏI LŽ·ικ{Ώέ•�� �IDAT0F€ίο?Κ4ΝY[YάVÝTϊk7އ6•pnππΓ½χ―^³0~s]ϊ<€eYCƒ–ΝœišVΙ²>#šΪΏ»ε½Φ¦tν >ŠK_hs8μ’η‰ή&¦π„<*±QzΛTΓcΗ”oͺŽMΐ[‡1rssΛ ₯zscρφ‚[SO=i¬Xqφ&E·ήšqR$™Ϊ„ˆ>Ÿο5­υ‰ύzΑ²iH§|muœi>,S@•MBDψtζήΝS–'Ÿkε*Ρͺ½i&=@p.d«€:<Ÿ^w @ώHhi%x;ΤνWt–eqΣMΎρήt“eέ·ύΙJ„i𔕕°aΓ†7’Ρh `΄ά} 1 {h©R­N<_\αCβˆΓΉδν_“ϊZο°S4OΎ—έ ΑV;‘Οη{󨣎ϋα‡žΰχϋΪΨΨΈk¬!7›ZZZξσω|βEˆ9eeωο …Μ?ξ(bΆ……―\~yδ”φXVεΕΪ΅θ»phCΓΖοΪ·δƒvΟφEvvφ¨ki}―­q»D"θ7ίTΖΙ'Λ­±{θ!΅Έͺ*ΊG{!θlΨι”ξσ1Ψ°}Ξ›?ΑBe»Υ6Ӛ¦ΙΝ7ϋΣ6‰ϊzxυΥώ.]ΊlAFFF‡ΡΫ±Σ)} ΡwΒ*`κŸ Τ~ϋm¨ggιS»ΠŽΘΘΘΈ?++σλ‡>™ιBΌ5΄6;ο j[ωrŸ+΄6±>*+5Σ,sΦ>Vθυ!?ΰqOηB—Ϋ€^ϊ3‹όΓώͺ�¬ˆ!‘ZDk|e?w_ kš\$υwg=±γ¨όaθRzPέN3‡|Ήωτψ]_€Φφ½ΛΠ‘zD F@½ƒIέjt)½-ψς1œCnΧZ :ξΩ[žΩσΡ‚θΟΫw)½ Hd5ΚΘE΄6�$΄>ρ€/|’‘m]Κ³Π₯τΆ°qΪd B΄`~΄Ώ%αZνXzΛΤc2Πb[~Δ?gSΊΥθRzPCώ{©θJ h ΜπJΡ–}ϊε†/Β’5’…’«άΡ΄n-Ί”ή”αƒΊφ΄•«A,Z|ΎL\+Χ‚ςωw:ή₯τMΐQ½žHΓοq6-8Ž /ήΈSNcο”DooDήμ=F[9Σt(‚΄F°B Ξ―ο’ݏ"’·Ίώ ΎΨW–ξυrΧΔώOΝasԚHDV‡Γ²μΐe’͝O@WŸΎh­Φ;λgϊšνχΦ6Ύί›όyι½›ΟΩ…"RΤ8₯Qšg4ΛΊͺ¬ ‡εuu;ί4œ]–Ύ¬kŠŒρε(₯Θ]dRψb e~?3?«ΫiΧSuE ›€ΦΪXX†άχΒ4ΏΥLνΣ΅„›Β„C‘Πaϊπ²„y[±ΣΆΦν„‚<{ίΎ;Μ‡δ DƒQ,,Δ~£o§D—{ίŸk^„ˆί„CΜXUʌοϊΰ¬–ŸΩcζ¨M—Π9Ρ₯τ6 ΅&²$ς<Dn―§YkD)Μ<ΕΤ΅x₯zӟθގ¦σ‡ Kιm@)•γ—gXuζ= ^²A‹ ­uϋfbv=Zύρ fMψ Ω#@Γ!tƒF‹π?₯Υίσ{όυ±§mJqΞβοgμhZ·]Ρ{ˆ+>kΆr‡es[[1žmfΐΕ i7σεNΨ©δΨeιι‘QόeΤ―‘ζΧΩΌ_ΧρόάοΪΪΉ\|—Σ@‡t/£Πΐ?r %mB°ί”™±ΎŒΧk`:‘LρMΩΈ£iήμTni{aI}λšβGZzΥ\WΫ†E˜QΣΓ>ΚΓs|G Bζ7AφΉ£’?L?f§‘εNCθφ‚ΦΪXcšΦκh”όάUξυ(QΜ¬(SΎοG«₯iњVη­6΅‘Ϋν—μΧ°Iίbt)= ’₯ *ΩΈ8¦Y„έŠͺ!%ˆΣF„W^@Υ°LZMM³ΦΌ7xπN!ΟiΨ$TŸU}vtYλξˆ κza­2Ωgκ„~܊ς–'4„e¦¦+KBδ»Θ½‘!ϊ¬F°wImνg0³¦Œ―ξ+N‰ά½ž-{vΣϋλvt)= ΏΞF’Άjχ(ZC―ϋšνθ¨:-ikσΊ‘DKUκπ­JVmͺμΞ‚’Ϊ^> ΕΈ³Ό‰ξυ(Qζύ§U#3hI>gUkš|B$hbT‡xο†uz™vz·'6Ά,28(B¨Φbΰ j�LL"DμΟ\“―ΪΕ>>ΫΊyŽε4>©;jΑ™ΟΪ±œl]Jχ`‹€‘ΉŸmΑ–}&ϊή%ΥD­ΤσTiΨPw“Ω—υbΑ/»³1[1`ρ !ZšΈν +b±$c‰�¬n,£Υ±`ZΠVΌ‚Θ&Υυ6„s"η(Fηuͺ@Ξ²,Š‹‹wȞ1‹ϊ,ΪΥ ΜΚ VψڌMΏ h˜Ύ~�oL€‘΅ ŸθϋΡ۝­@§΄τ~ύϊΉΰ‚ΥKηΟWϊw²Οlllϊχ9±hkπYK0š™»οd³λzΪVοn±ώ»Ν ‡ΧqΐΝ+‰εφωŽΕ_Β%RΆΠI•ξ W―^9gœ±Ά₯ Ά ρ·ί*^=ΊΊ ΄χζ~Ÿ·%*Bnή*Όb‰ΕTQήXΫ/υν4Gi;Ϋΐ~ΎΛ.*°OJήtj₯;X΅j•qυΥ¬έw_ΚJ₯Ÿ~Ϊwskkλ„m9K][Β—αV‰Δ”Ω}Ÿjό+μ'iΙύw$;Κ ίμJ³Οcω± ―UkWι½ζΤώξΉ‡ΈΝΜw�v ₯;0M“‘#ύΡγO>uλO<ψΏ¦¦ζ‹·fΘo²Ώ£–;-ψhwwψΥ‚°WaU‚g1‹kΉ6ν}ϋv?Œ³‹.$°Ά ‹+ΉR\ύυY·ήzkˆδ$ŸέVXXΈGCCΓβvΠb§Rz( ##ƒAƒ|uηœ#Εm₯†x챬ίxγ„3―ΎϊΪ6W:,b‘½«w¬][–θ²ΓΒ3}Nβcυ1‘Pˆ@ r螣ψξέ»ΣPίΐίω;Q’\ΈφΡhτή>ψ€C=4ν1ΪUUUτλΧ₯Τ›"RΎΝBΪlw₯gff~tκ©ΡCŠ‹EgdΩΩ>_β6Ϋι6ψέ֝E †Ι“3ή=ϊ”ςηŸΑiΖ7|c)ΞY―ΛjzτΫϋœβb"‘~Ώ?νΡΪvΩ‰Κ7 ƒ[Έ…ΣΏ8AΓ₯α%υˆNΣ4‰y§ΧΙ΅τ’’’!ϋξ[·tδΘχjΨύχ³π½Υ­ϋω²W€Gρ�{°‡{ζ*€WV[ΧϊφνΛρ½/γΑΩ—‘™™™ΆKH—Χ0 "‘ˆκΘMŠ;{‡ΓNΎμ²Πω™™ν_ΎΦΨ£j5¬X‹Ώ…βsκyη°ο!‡2hL6Re’PμΑφŠWR’ΞN瓏⬬¬€wοή »U'Ω™œ_)…išͺ£Άο4Jχ"‰0pΰΐ’β⡫ƍΣ9θς Γώ½v-,_«VΒΘ½αˆΓμ“φ�CrζxΌη°Hό4‡u`φΏΖώ ΛιΗΞΙߝJ«U€G9¦i’““ƒišτκΥ‹κκj7Mr―”" ‘™™‰ΦšύφۏoΏύ–ργΗsέuΧ%δρΦΣ离4vD‘νΣ4ΙΟΟΏ­΅΅υ*ΐ8xxηQΘ3bGoxNRr‘|‹I纈ΐΚ5πψψυ_ΣΪ8Π‡Ÿ\ZJ8l,›l•'œpo½υV ½UUUτιΣ'εϊϋοΏOii)χί?=”z.’χΘn/ΚΛΛ9ε”S|]tQ»/΅νTJίc=ϊ,^ΌΈRDŒΛΟ†Ώ^²ωyβύJό(-οy-βQΈχŒ–΅uπβtxo>ά6s ž)β–w―fΚ£ΊVšάž —Λ/ΏœcŽ9€—^z‰ΗάMλEΊ�°W―^<σΜ3�nΙ^%-ΛΚ݌Άͺ’yψaβκκΘΖ˜A:όσ3{μ±°ˆ°τ Ψ₯t‰½φžΔDbλMwv©Yii…‹α½πνJψ姏σσΊs]E{0xπ`V¬XΐΤ©SSΕqΗ‡Σ{ƒΆdΉN›6-!MyyyΪψ –―έ ΣΠ.ΊΘά}$CƏG²²2ώάΡ<bΜΎΘ―}4lΝτΌψ‰Μ;,ιΟQ²χ;@°τΖXΑρΌ^wξώN$deΒƒΰθα0κ�ψτ€sӞ‰ξΠΌrεJ�FŽιήσφϋ΅΅΅)Ό*₯Έδ’K°ζΩηΚ{(Œ;–κκj7_KK‹W.ξ_Ϟ=·L [ ΓϋΓ0ΰšk"wMšδ“sΞQVώύϊΆgeZk”Ru>ŸsžŒΣσΰΨ}cJι3Ι=鉏׽ʣ4Χjr r²ΪΊυx”aΜ½ϋ θ–{ν£‚γsΚLŒΪeά{―½ΥŒ€%#YINΏώυ―Q†MΣΫχΩωϊ{ƎΛoΌAnnn‚gpς]tΡEθΨ޴퉴])0@ŒsΟ­¬œ0ΩcΥΊ­Φοσωfψ C¬O₯Ψϊ”ΖΎΔώ3zOL™˜QΣwzτ„’Ό<>Z”˜7αl΅ώw"*±A\yΏ}vzv. ώμ;΄mϊE„K/½°§»ŸόέQb]]]Ό‘Ζκξk[ώνΏ{�Γ0XΊtiJ¦i¦ŒγΫΖκΥ›ξ2”‚ΣN“¬›nςΙ€IˆRκ)'²έf�šk­ηΕϋXηhh`AΜ₯=ωΐψ=oΪ4Ÿ�ͺψWξχCNΈσή~^†Υ e7ΕM_ΰž§ΰτγ!s„}vzAn’‹΅ωW Ώ΅Φόόη?O°H­5cǎMΘ—Ÿβξ»οF,›.§«qψΘU saώk»ΉθΤχΠCΡ‡ ‹Ιͺ5L˜ Ώ½νΆLΉβ €¨¨`ψ¦€aŸο>`cXζί±lγΫ.ώˆ gξ¬DKNvσx¬Uψ‹pΤ«L35hsσΨaό;KŽΰΓ%pτˆψψ_)P>'�Œ+4έM8f̘1”——S^^ΞΨ±cέtι,ώύχί‡n<νΞαOΑιGΪ–o•••ˆ6lΨRΥ€Ε€ίτ}©ο―{ί•μ-ό ΕίΑ†![UZ#ΐε—7Ξ½υΦLFRf^^yφλ―Ώξ=!Vκζh c³‰Ε¦™[—Μ!$χΎξ‘ΩήίΔϋι„όxB\o‚)Ϋ|μΥοpΔ™ποΫΰ©©πΠ΅v²OΎ‚Ο§@MM ₯₯₯iϋu›–ΔΟδF‘ά?{»Pgψ¨ΔΓ±‡1™‡ŸΤŸ}½Γ0j½Σΐ[ŠώΏ)λŸ“™½JbRΩύό]lZ¦ςϋμ‘…ρΕ^ίκRφκΨΚ8ϊhρtΠλъ €ΈΨ zpŸ0\ςΈvε\{Ξ[‘Ϊ|οΖuΧ«χ6–Ζ2ΨudΈ»R°ΰ»8―�Ε±E•k`ο2; Kηβ!QΑ.]I3wή|£FΒtN`φvižΚαΙ)αƒGaXχ‡‘ιι%Ρ6Ž»f΄ΏΈ8UfŽŸ@Fμ)‚Γ.ΨΓ%ά0 γ₯6KhjγΊ“½1υVCƒy˜ώΜΤ\=Φ팟ί.%Μ’ρK^Α$ϋn[P±†β6ϊmP˜Έdνγ/Š‹SžF$0νaψπΓτλΪz– ΗΚηΜ™ƒ²β|;tΉmΗ‘1n�όαψεqrzNNΞ°-ͺGΒlΤΥќ<?Ήω~rςdεψ\šΛΞθυ<€qβ‰cΫ^έ‘­ψdεϋ‰KΜΘΦΦΒ½ΧaΟy'•ΌΦ§~bΗbύΊ;‘β"IHnš@Ώ„ ž~φΕΔϊWŸwh<£Δ‰V€Inΐ˜αpΔ‡osδl†{ΞΊ;― β2pKOꎜ…›! ~Ή%u‰hδέa’S · @na€ά|?Ωy~2³νqyiIΡ―�Œόη₯MwΞφx^ε;OύΠOϊΐpΙ)qΒ½—B€“ί(”›ζ±ΗžHP΄Δ΅ ‰†.�έOEˆPΏ=ϊ«De;‰ΡΔ[›β„Γ›πY{Ί„Ο—Ϊy *ΖlypfατάΈ’½u8PΚζΝε7™?l:”R›/7xr–|u˜9™dηϊΙ)p,=¦τ†­Ν&χώχnŒΝ ^«lΕ‡= ( Ρ(,žW”Ϋo%{CsHρΈX9ΆβΟ+_oτΪλ&ώο₯B[H->;rWJΡ΄rBBo£σΆ:ap)X:©ŠXβ₯+pλyΠΏw&‡rHΚΔ‰SVς΅Ω³g» w*HŠ']ϊΨT‰τ$ [ENΠh­9π/»Φ?mE«YίΜ'„μ\?Ήωr dηωΙΚρ‘™ε#i―TylΖC0²²²6Δ lοθ5γάz+μΪƒDE§qΛ^% 2:DΦNˆ7σXš;ώ½Ž…σšΒ~GŸIe}ΒIY Vυxς3άbGNΔ«ϋΡǞNεO%ώΉ’ΐš·αƒ‡>A)Ε Aƒ°,+­ς/Ύψb ΓΐZ9ΚVΈβ ؜Qˆ$њΠ0=@έ8πΐϋ�άσέΖ ίφ[ΊϋyCεθ›χ—‚‚μ’ΜεsόάW—GVŽœ|?ΉqΧΘ4πg( +;pί©ΔUT“#(! ϋΙIjGθ(ΠΫ'κ$AώΙ?D4ί―]Oy0ξ™=VpΝ`v˚ΗτηΕ³ (5­α»ο࣏ Ψg–Γž{›υσ»‚΅€σΗ,O`‘€Π~φξm(β±:πYΆΥ‹¬βΥΙΞ»šmό>8ύg»ςΔυKxΰR½βKΆκΨoΞ΅]ΔΚΠ†F«φ΅oΞ}”ξ₯ωψ|*€Ω(Y9~|EvžŸO!α …? πϋνB³23μz+*t»hN¦”DŽ<œ½?¦{{™NH·QŽ7_B Χ=Y©ͺ·"φ3̟SΖΫUžy#Ίτ뿏ήφ>»Αnύ“ž¨“%4‰ρ†GΉ’&ί3ίυΰ±ozΕΛT0ύX…D’|Ώ¦…?Υ–bψœΩB»¬’’L”a2 jΓ4ΤDbŸφχ^rμ±Ο)ΣΙq·ΒF₯pγڊM3Ά%!η^Β„ q8n5 nύίRn™Z“Jγΐδ8ΰ€Έkύη$0Fΐ ·CS0ΡΊ>_W:ΊQ‡$]Oξ]χ”>M·Σp’ώΌVYŠίX=ŠΌΒ] ”R™Ά-φΛΦdηωcΚVn—jΔτhYθ8οŽ.”RΆλλi$ήLM6™CΨeΠ>0<BΪ!m’λςΆ|Ο‡+!₯@ΊŸΞŠΕΡθ<Άn€‰ύh5 @Ε#PqAbέ’’ΡσΣ±$7ν|ο}ό—6ΪK³”‚Ό^YzΡdχΜζΕ½‚H(Β™+‹@A·b\Ηaε*ώΥΥ­ŒΙlαό–~dfۚžάm=ί6 —^ˆ@4lΡΪlbψ‘Ζ25–%8ρΊˆΨJ_Ύ\τώϋaΠ‚;ΊIΫ$Ϋ”"το%GBέΜΉ₯~Rίοzy―HŽό₯<zΧIά4y^Κξ�τό ΑοΒ8Π~ΨςΝwq―ΰZ§£X#Ι1bΒ5Oίύ—σαΚ;λύΝΏ·ο+Εΐ€‰Ώ(³^Έ¬[O¨ž`Oy,ά.Q)x[eπΆUH~7»Qά›_‹/·€έi$Λ4Πk#ΆWπA$€‰„4fΔVΎ�Q3j―FZΉ2»δa»τ|Οg~§ιϊζ˜PφέέvU+IJ‹9ά| ά9h§1xgρœΐNΕΜξσy{±-Έλ.Ύ\θ5‘ϊOΰ΄kαωΫαΤ«γ οϋέI]Jσιάwς_qͺό…ΔσΥ}ΫH~· ς»ؐŸM΄Ά έζ?έΚΘοˆύexΎΫΏ ’~;ί7˜ #&’…ΜœΨΈ<ίOKS”–F“`³I8h k’š[ƒΊ_«¨ΰΔ΄’ ’₯λ―“‚ΊŠ{lfχ¨W©’’z\arλH1ζήqZϋΔGΖ§%3ή|ΖWό"MWΣ{(‘1ζ©Ι·ςΗΫΰ…;lΕ?›MίiΗyθIκ»“ωpyMF,aΘžžΞΧ‚±#ˆ{ΑΨgΤ€¬αF£ΦΊΠIkι>#ƒ7ͺ)š΅ώŸ7Zαμ+|J»³β›&jΒ(Ca™šPΠ"ΨdάΕηW|ρΠ"εΘΘΘψDR•.Δ§YΫRΈσ»VQjxLρΦ&—'Ι_<­Γυʞ’}λe8ώ©‚±—DΟ€Œ9W‘©aό‰mΔ•pYY\2v ǝ ΉΖ9Š'ξmHκ’’ωHŽΎέ:œψ{ΕLΰ {bȁžορ"{·ΛΙ8� p�ŸaOH”—]Π�\ϋγŠ‡φΙσUedDB¦)hS‡,B-"PΨ=Ÿα³ϋτγŽ;φU˜–*ΙfΟχ|ΟwηA‹Cl _&N΄οΞJ₯Œ«Μ€:“’ΏΨmύoΎ\ΑΑ€©ZΓ}χΒ’ΉΧS’›α>XX·h<= γ–˜2ηΰΒΎψθ”Ξ?9ˆžƁ6έώƒα—ε`xF-ιΖΫ›―ƒ/i~ Χ< >˜x> γΩf|Ημkw‘Ύ@k­Άt±κ=|T ¨λŽYΏΊ΅€±ΊΛ²;3*δϊ £# ΆΒψΥW§„RJi&ή§{ξ}ψ’K|XW€;O―5”–ϊ#<}ΌwΨΰΘΖ+D―yLIŠΟD>Μ58αϋF?Œ'Γ†Έ w²yB Oμ>Ξ τŽέ³'0νq„}_pXŸ‚azθk#k³•Πλ%δ»ν"[αΚc�ǝLί„€-VΈ·ξ7½t—ύςφΟ- ZˆF4…%h­YψχoηAμΙ΅iš©ΉσΪ(ΥkέΙ·όπθdU]U%eNΏΰ;€¦# oφ#ρ1£J ΧR’OPw?ʊ?bW Ξ9ΛrgEπλΈΠ“γ ϋobίνΕ‘`8Ρb=4$Œ4’Fιšΐ7—·4uψb«x.ΉΙ_ζ›©έr<8ϊύ…o-˜ζ»αΉ«’†Ouuσ–=Z9ΒΉοΘΚΚ[Xb)o ˆΐ3Ο¨ΪeΛ¬‰SZgώgίζf¨α-αΣa`aά­§rI]½ΆΜšsΫ±"WρρΒζ}ώ%#zΔ+w»Oβˏ ν»‘ Έ‰Σ—ΙΧΪκ‘κpΨH“8ΉΌΧ>Ai­-_{½{pόcΫ|-Κ­a‹ΗΏI4=χœj?ήRί}'₯mάΤ.Ηεj¬nΐνΣγ+`HŽEψ=Αmfξr%ΒπIιZ½sωv^I°ήŸe¦Έbο"οƒ’€žju€z²tu΄ όμb…ˆ΄›Β7·–-\βbΚΉρFK-Y"έΆt ­υ›€Ϊ₯<p¬1*žˆΥM§G²*ω·$¦WΕΏtGͺ&xγFήάμˆ•;}Φ yάΆζQ’w‰Σ±Γ¨ Ά€ŽΔ²Υ±!9#@$Εt(\₯oI#7ήPzΒQŸ}&™?tΗ§h4:PƒG<ι󀴡!'ΊΑ“η·»n]<žΙΘbck©O¦gaDœθx ίρ»Ϋ[)™άGžIω�¦?Ÿ=,M >κHιθυ(9œ ©ν§ΓαVxύυΘ¦φκ™=σ7"ŽzY>//―oKKΛ*DŒή§"Α‡Ά%OΜ”ψΓγKέ7\ˆ― ΥσB647Σm㝩ώ8VWΊ�Ly` ‡ƒχ‹ηOΘCjΩσWˆq››;΄₯₯eY;‰o«ΰ;­¬Dœϊ’θ§Ÿ’§NΥ>Γ0θΘέš››W <tg AΏύHk}‘ΰΥαΔƒA9cΪ€Θέ…Σoz£η€ΎcUψHŠWŒ§[&‰Šς›ξ™ΆΧ7;uΘ<Ππνk_{τV8§”ι±t_VΒώΏ°œ qή_ΫpY;θ Ә1¦;PϋςKxρΕ-ŸθHh­1 γ^ΰ2ηΪΥΑ-ΨvHtεμt ήξΑi›πβω’ΪhX|ί�O„Χη8 Dι‚‚‚_ξΏώ5kΦc†aό6F³αχϋ§0ΰ_ύυ7i4[—œ>Ώκ*φYΆ ύΤS–―£whάVD"£¨¨hH4½6žν΅ ₯ Γ{†FΒ!ΐΑ{BQ7?¨(`‚… ­Qh ΓΖhl‚Ε+α“/ΰγω°δϋψJα<žΌρ΄ΣN»οΉηžkμμ2j σςr―ϋΓώpϋwή΅s2Γ΅Χ^γ‡o€™4ΪV<π€oαΊu‘ύwV%'c»GŽν Σ49ϋlΏ ΩΊ³6 ˜1C™3gFΫ²egΕN­τQ£°Ž>:ύ%"φnR_~©τ[o —_Ύω―kkαα‡ύϋ›¦Ή°ύ©ν<Ψι”΅fθPΝYgι§―­©AO™’šύώ~—Ύψβž=ΰ€΅γг³yοκ«iσœsΓ€ΫoΟΈ³±1xuGmαΥΩ°S)=++kJVV`ΟΈgυκͺ`vvφ&ΣχοOΝΉηR’ξή#ψ—UUE‡nι»i?&όh9>κ(δΘ#γΏEΰΣOaψπ|7έtσN¬Ά~”J?χ\€μ„΄ΦVxθ‘όc›ήέ±Tu‘ΓpυΥΘΔ‰HvΆρDGμΧ…N­5C†k^}λχXψ©αGιή»°ύ ΪBφHI―Ÿ!f *ΈhCKύHΤl”hx–Xώ«³^΅d“ϋ“ΕŽ˜…ϊΞ5ž ¬�� �IDATΕG7Ι_ˆ,:DDΗφN^ϋLݎΚ.€h³!*ΓΐΘ*•±Δkδ"Bӣݍt[ΧπΧΜ_ν0F~Bθ2τ.lτΧχ§ώ%‹^Wε‘ ”‘U“μ‰ΜžΏ I€ΩΈ�Z Zhk$sμwW'bEΑηΛ�ιadg<Ώρώ+²bzW[μ@ό4fš»ΠnPYCφ‘Μ!(«17 DΠuSκEGσΑ4ώLγ+1°,ΫΠUήHΓH|LΩτDqT�Ρ΄F,1ZžΩkΐΨΓՏ]^΄ [#χ+$Ѝ P>D Šœ<=oΏ«”ah όPBλ@ΡZgω:a ­5 ΅-Δ4έ²£Xϊ) ΛΠ»°uπ+UΣ{&Ύ\”ΏΤξ΅΅ dήaΞ4ΞΘ?ψxΒ΅ˆD"ρ7~΅Φ4O.xΓ_μμ…#ΪvE7F;ε‘΄?tzΆ Κπ#ω#³Uύ$c{1Ή‚«όuνΜw$΄α]΄ΪΒ025€Ž4|¦d£ΚΘΌH΄kΰ 5ΊΙxgXdcFΧγ΅.ό h³‰†h1-Δ΄ΐ΄Π±O1-tΛ†k1ςnΓΤnš„Ώ 9΅Ϋ΅Ρ“v4??vtzΆ ζGŽFΟHkĎΑGΣίΣΝΦΣΕΧ†·£yψ) ΛΠ»Π.ˆΞ(ϋ¨‚g↬ΣSΫ†ny >d7ΊνΪ3·Ÿνh²2θ2τ.΄Dk#ϊΕcτκΎ&ή>j!‘Φ/Θ<"7ŸGv4]θB~ D-Λ`k΄*‘κhDΎ_–κίWΙ’ξ‹dAΞ‚#v4?etMuv‘½PPwKν_{Tγ7”B ψŠ­χw§ϊΛ>dϊ³—ŒZ’΅£‰ό©’ke\Ά"’a3τ Œσ―²P«4ΝϊΡ9Š ₯θ[œΙΚώ,ŠDZt±φΎώe{£ΛΠ»°MϊWU†fvοε9yσMD ‘"…ήΛΟΰŒ Β`άZΉ~•Άτ€.c߾蚌λΒ6ADŠΎin_œιμ 9ŸFQ(D VƒExi˜Πβ‘uΒMQ¦ίSΐκnrσ]»υ½qGΣώSB—‘wαCD2ͺΦ…~+έŒΙ™±γS4˜ΑšBΣ›M„–…0ƒ&–Xh4φgΖ^ωΓΏήΌΉ:ΊΠ>θ2τ.ό ˆˆΠΏφζΪό±ΙQX"4kΝΚH„Υ¦I0lqȁk1ͺΝ#·°°”Ε‘#”θ α·Ί ½ ?Zλ‚u—¬ϋ χΨάaΎ–!Tβgy$ΜzΛ",BT„ˆΦDΑώn@—šΨη†υ¨Z“¨?Z}TλQe]Ζήρθ2τ.l5DΔ_χaσί7ζ”ΐ �b α/Β4>ΫHSΘδӏ»ΥbΈΦDE\cwbχΜzσφΙ{Όv³τ£G—‘wa« "ˆH―οΜȚBε#cAsN+ŸήHψ«0bΩ;rj4Ρ"Νμw{ΠάΗ ŠN0φ`Ɯΐ>ίκ²?ŽP½Cϋ‘£ΛΠ»°U‘gοΜγ€(ξώξžcοX–EAΠ ‚xkΌ5ΔσρŽ>1ρgβHŒ1yŒζρxbŒIŒΖϋŠβ ˆ€ Š —Θ}»,{ΝΞτQυϋ£§gzfgv—sϊΓk™ξκκϊVUχ§ΎίͺϊVutICΛ[e…‘ΡΠΰ8¬°,Š.¬‘δ₯™όηυΙ3Ž…ƒc8l>0Δ7g³μδΆτ1ψ{u/aKUw’θ0€”šΉΔΨόzσB.+‘9ͺXiYl²νTŸάnQŒάk=ΜCto0Ξw.‘˜Β\qjόΤ½΄H@φ VtJ)’΄φw΅Ÿ…φ ‘ΏƒΣΎ₯ε“8€¦Φœ(L]WΝϋ›zπN]o6žM}¬Z‘ΘŒs΄ώ/Ύtv§p7G ΡtRJ£fBΝΕ‘Ύ‘GE‘ ιω&šήnB5Ή€΅ϊ >W…mΛΦo©Α7…©}^ǐ‰‰΄^χŽzί+2όŸΓƒn;Ρ΄‹δ�\Υ*ΛϊΆ@7o¦εΡzœzΗυ‚C₯~%§H2mV±* “€χΊg7 q₯Μ7ϋτ‹θF`lξHDΠ.”RαeίΆό»¨8‘ΑqXoΫΔ€€πoΝtE}:žGtœ¬~ΉCύP™ͺ’v`ΫVXψ¦ά€ΜhΤΊψ?ί9b :­ΐ»!’hž6ίτ«Mί6L*c£cΣμ͍'§Ι,N―₯hj"ΡΫŒs�‡ΪΑ!VŽ,fω‘% ψ2^qσŒΪΩεί]=@›PREW³r±ΡΕθ›ΓΩd³fiOέ„KtΏ)ž<ξς\3―ή„£TN²·ΥψlXh ΏC=@›X2£ώ�ρ“ δf‰Σθd\“έ5ζ/θŽ₯§Mπμ>·© όM‚Γ΄}­Υ!‚{ΧβαψŒKΜKŽθœ’ο^ˆ /€T|)[Aθ†ΝDr›ωί�Μ}­‚šΓΒXΚGx|ΔΟς{Χjmxp=ύώ]Kxm•’»Gϊx—–\Q{εΜΞͺƒέΡδŜ?₯H{2=h¦Πίl‘ΫΈ²_l¬pXώ³b>MSf Ό₯Θξσ7 €GδMσφήGθ"xU·AνΘ ιHŽ^βoU»#δI¦V£‘θΒ& fΩyGΫs™γJwX{LŸ\_Ε·C άF ί’—d# νUσ† κ VΉm3’Θ‰―JΎΊY4Š»�ΜρlωK—ά„L†υœ΄…χ5ΰ΄ΣΟηΫή@]KEΛ±ΧΦ];₯skεϋ‹€θZAΪR[Zμ$»ΰ)¨"Εςυ½±}}n°=3<i‚›:τΏk3ύX‹½dn+L Εe‰Λ„Φ;£JΎχˆή€”TTTή£GΓ‡ž:UŸ^_οάkΫφ«J) НΗ/G/{BŸš8_d½ή @ό`vΓvςxΌω΄Ώ© a(Ί½ΫΘ‘Χ―ΖXoΆr}νΘH|‚ΔΊŸΗήKdίZDίJH)8p@Χ¦¦]z©3Π0@pXΈPπα‡Ϊ’M›œ{FŒώμΗό;Ž##‘Hgg»ΓhY“Π–T8–Biϊε5OΕZΕρήx[tkΞ+Lo8‘š^Λγώš:wΊB5;D6˜”-k’pE αΝ P’ζς[ϊGωφ€RPœόΙθƒήά΅΅ςύG@τν„”’cŽk̞=γο\`ύΈGΜ*iώκ:,]*˜:Ul\ΉRώaΨ°Cώ1{φ'5–eΙ‚‚‚ΞΘzNΜ]Χ8M+ӎT€ ˜J!WΩtΌ.U?ςia»\1λρξ¬?’�ΫRzΩσνfžFΐΝE9½΄G¨²{ρngIνLDί RR\\|υθΡ-ώΰ*'AόP B!XΉRπα‡Δ–,Q;dΘA~φٜ5J)‡wIΎΧŒ_clQΆε<^…Bε\~+N―q΅œGοˆΙνΕ[Μbζρ9«‹Χ3o΄BD‰τθAρ!|0z$βq,αzέeΈη( œˆFhyγ’Ϗ²ŸΚmΒ' �-ΛΣN;mίΙ“'WF£ΡςX,Φtκ©§6θΊώΥσΟ?”ς{emm’οΨΆM(9x0― Ηi?”Γ€ 3fˆΨ_¨§†~ΧGΝX …vˆf“¦daρΒ/„)†rXˆ¦i=r{»‘Τʎbπθo -4SdΧΠΈŒΛ˜Γ�„\uΥU\{ν΅ 8!BT²υB ₯€ΉΉ™wί}—I“&ρω矣”BCγjζ�h=8ΧKνΓΪI))--½ͺΉΉωOJ) °°λ»ŽSO=•‘C‡FSς€”,Y²„χίŸx€₯K—¦…B‘§‰ΔyΪnΈΣΝCτx<ξj�αpMΣδΚ•Λ΅ϊϊz­₯₯E»ψβKŒU«ViΝΝΝF2žΦ₯K—h·n]+ +C!£rφμΟJ•R…α°^\^^ZVRRTΈvνκRM£R*… \Χ),.֍ΒB.*Βšα8f8Β((ΐ((@‹F%ƒ)š0c†Ÿ7OLξΧoΏIwά1aήΉηŽ“’Ξ&oςfa_ϊ6KOA±ωρJΟ.L›ίYoΛΏψ‚»=€;οΌ“[o½pIμζO₯ΘέΦ―?wΌyσfΘζΝ›©’Š›ΈΙ%:ŠΈ#F0eΚŠŠŠΆY†—W)%·ήz+wί}7�%%%g466ΎΊ#žQgc Ί“T‘ΥΥΥα––ζk{χΆ;ΦͺξΡΓDΫݝΌƒRπΡGΒώβ mΊat½«ΌΌβƒE‹I ΌpKΣRyumo-9ψζpKŸCÏ ψζΡrΧ|0›Vδ»ξ⦛nj—h²ΟύΘWeY”——‹Εψό?†œ0„s_>Χk΄ΫL§£2όΏϊΧΏ8οΌσ�šnΉε–²»ξΊλ{;.°›ΏβƒmΫhšFaaα…UUΦΔ±cώϋξ Ά½ϋ7μώ&­‚9sυΛβG ΰXŽΝŒ—œX?Ÿσ™Γ¦NΚQG•W[Ά/·uά|Ϊ6;ΌͺͺŠššζΟ_HϞέ)**Β0ŒV„ίήq}}=εεε�1 ¨C…ϋŽax·–eρΟ>ΑύΧu'·ά?j”5πΰƒ¦Ήs?ω„p뀄xjj`Σ&¨―wcMΠ§+τιUΥpΠ�θΧ*»C2¨LΎšJ‚ξ―#‘)k6‚<ξ[DaIJΆ“2ΛΪΏcTόΤυm1ˆ#F0kΦ, S;vT£η"_[χδ“±eΛ***8ςΘ#yε•W())Α0ŒT<ΏΌΆdu΄χί?Χ]wš¦‘RNݞ绫};ΰ8oΌ1™qγΖλΪ5|_ίΎ[FΧΦBm-Δb`Y`™ξΤΪή½αόΣαάγ w5I“ZπΏ‡Ι―‘ AΪ1Ν;W€ž˜ΐwžό*yH{χ§nJž',ΨΈ|Ÿ.„cŸ‹βEGBԝVΛπmWŠΊωΙ€ΌυΦ[όρnrm˜Η©β$γLœ8‘‰'Ά7‰°nέ:*++s0Βα0ΊSWWG4EΑΫoΏΝI'Τζ½γƍγ駟ήͺrX–E$AΧυ‡ZZZΩU3"Ϋ‹€θ€eYŒ7.όφΫo_‹Εώ�”Ί»’BU%ότ4Έα? ΊRsBΒGΖ¬σ7“΅ογo ‰ύ„M«ΦχfΗΙ‹JψN^P &l¬ƒωΛ\’/Yλ5ώτρBœ5κgχΐJz½ ]ηΨ’"^yεN;ν΄6Νάl<τΠC\sΝ5[Sέ€Ϋˆz#τνΙHz(·o_ξΉηƏΏU²ϊχοΟ7ί|S†ΏΡ0M“H$B4ύE<`«„uD8,κu=ϊ󦦦θϊžνZhΫ6 θ½vνΪΗMΣ<\B w_c†ΨJ“=›ΔΚ§­³Ι¨ΤV€₯Ν3ΏElXπ5 (Χtoh‚ΥaΡ X²5γλ 1œρB TDrJXΎ|Ή+#ι›.£{ν‰'žΰΒ /l•υ^½zρ—Ώό)smyχŸ|ςΙνΚπŸwdZμΙ'Ÿ€¬¬,g9N9ε”vexηοΎϋ.Η<W_}΅ώΠC}ηιDοήέ^ΊτMgz¦‘ΓόωπKβω}φΩοΌ… š\ωΎ ‘HΠΤΤDŸ>}~άς¨RͺXψΑAπΔοa―iz2΅¨δjΕlR„diXίυί@UαWt-ρYΨΩ¦Ίžd`Ά•Π*rcαφΣmš[`ΣX· Φn„ ΅P³Ά4BS θ›ϋρχ™+©««£ΌΌΌ]7•Ε€–ΝŽ?yςδΌid7Γ‡§ͺͺͺM9~?xπ`V|³Ίπ»ΏΓ€u4€#F0i$lΫΞΫ?ζ˜cΘε@“oΰ.‰ ”šiΫφ:T)Q]έύμ+―όφ…φΈ‹Α³ΟŠ εγ7mͺωΐΆνœ•ς]„RŠκκκͺ7~¬”Ϊΰ¬cαŸχ@§E= γo―6sΡρ‹ΡΌi)$Ξυ›–ΣNΌΪΧ;Q½&!pΏ>ϊΥGw0tŸΜΖ&%ƒα^ώ~ΊBdΕ!έxI ¦ ±846»ίάΰώni„Η }!R¦tΑ5WFλΑ―^½z±~ύϊTψΣO?Mqqq»χyαΗw‘P(oάlΒ>υΤSœwήy¨9€ΜκΦhπt8οWO€λάx㍌5*•ζI'”a΄Χ=ΉόςΛyμ±ΗˆΕbzAAΑwZ«‹‚‚‚ž·ά²ΦΞγXά ¦L̚ύο“N:ι–gžyΞτF=;½zυ*_·nέB₯T΅‘ΓΛΒ)‡¦΅*δQv=&ΉsΖž~ώߌυI«ΈώΑ²Vi¨Θ λ%$=oΝx‘ži2η6³΅&χ§›«―¬Ω½»ΆΞc«q�Ϊ‘Π£+¬žμϊάράύ˜ςΠ―~||ΊP€|ς9dχΫ½p8Bήxγ μδ‹–Ο™ΕCii)GqD»2ό²ζϟϐ!C°>]Ά]W(ˆλ0r<Μ_κ†?ρΔήΌyήFΕίΈάύός—Ώ”ρx\+=­©©iCK ΫΤΩ6Œ­Έα†–wΠA/%~σCέqκͺ«PUUΖά>}ϊμλl­Ώη6ΒΆmt]Ώχ9ͺΛΞZ[η|’ͺΥ§`Ξ‚κΖKυ[=φ(ί‹ �_UŒ?ηTœžwRΧ➠•&‹_ωΒRZ³-^Ώω]v|«ςœ{Φ)ΌΉΰΈŒFB$΅±'/γ}χΙκ=t"τžΔΓ/¦§|ύyP†Kr€Ή4'ώά%ω­—ύ wŒωWή΄ΆmΛ%ϋ\JΙ AƒPJ1}ϊτŒΆμ_GqG‘{OΘ|έH!S¦LAΠiΏ„€¨σžυ ΘO`L― (ˆjhšΖΰΑƒScΉς+„`ξάΉ�š”ς;ο3+�Ξ9uΠA;OˆR‰ψϊλΔ,ί0rδa|ψα‡r{}Š•R\Η ˜σ ιEΊOμ3mS„Ιξs+ŸΦ+<ΚOO^)-`J λο δΕσ₯»Υ2|ωOiΪ^“p˜Lυ¬”βΕ§ξ䜣Μώu:f:Ύ—`¨ͺλε©|9šΖϊy·»ΒUK“όΉ{άΌΎρ1<ώ άt12Θ ϋΡq B  σηΟg°Οg·-³6Χ9ΐƍyφΩgΩ{ο½34€”’}φΩ‡AƒεM§#2JJJ(5³ρRmΦ™ ΅ΧEC­ΓgΓβ0hΠ ,XΠΚ¬Ov+¦8Ž“ιYτ„0M“‘C£ΦψρrηΪάή{μ«`Mƒ%KoΌz³  λEΛ—―ΨΨ‘yΙύχί?ΌpαΒz ϊκƒpκΘ¬Ύ2­ΝγΆϊΩߞn?ٟ€kΖ ž}ξ%Ζ1wϋedυλQͺη„τK›"Ή›ξ”©3;`r«)΄VSg^ͺoDι…n9 ιΈ ŸLΉƒάϋφ=ΎY Οώ.ωh”k’οΧξΌ2Ώ€’8h<,^i`šξ'ΡrM―ε χε2Ώ½ψΩq²γuTΖτιΣ=z4[fA™ήΑΊς=?―κρž§HZAΒέ ²ςHwΰςψηŸ>O<ρ]t?ό°ώ³Ÿύl—υϏό―#Ίn¬ί°VΣ΄QΌ24Ηc¬~rνΨ\χ €²²Π+Χ]gΎΣsِό$r@)·―ψΜ3’iεJc|KK|²oΪo_`i$-³p½Ό|Κξ“ωUhκ!ϋ5£――Ρλ@kM^`sS•MΏOYφΫ,Γ―I¨²ΣE#άθ©6&ιl*σΎZȐς₯Ν2e₯΄wk’?')Y¦�±ξvjcΠs4Ί?ό*9σuανΝsχΈ€χΜKφ*τ0dθPζΝ›·μf9?©σϋγ·…|χxσΪΌ ώλμΜG·ςΙΘΎ'«%ψΒζž†Γα³LΣ|Ήνw O.,έ»ŸzοEr…ςš—¬χ0nΕ7,NJB€§Λ“+ΉΚ^Κ3₯™Ή»iC—τ9d αςwž*ΎωfλυI“tuΗn―6f©œρI9¦€œH ώΦ\ˆ4Ρ”/nFφP0₯4οrfž²Ž·Y†/,•ο’‘iΒ O0sΪ΄ŒBxI­γ5rΰšνΚ%€Rn&]r(ΒJρτδγ~αF½ν2χήHΘ%ωi-ηυo5 š’~ΞgπΕ_°Ο>ϋ$ΣW)βu”΄ΉϊηώψΩγ�‘QSSC$αΦ«ΰΊsΟ’έΊRξ±ΧyΘkP]€Lyχώ§ΫŸΏγj0Mσ₯H$r{«‚ξ@ΨŽΝ€ΨΫ|@ϊ‚"‚b‚bƒ’’Ε‘¨†ςi8…Υϋ_6Hέϊ·›RVΊpΤQ£¦ϋf1:΄ΰΆ‘Ž_#“5Ν@SώθJΑίώwά[fBΛ W‹Cϊ‘yψIŸggΩ{Έ©‘sοaVžΧ/φˆ"P©4ί}ύ-pΆS†J—K)Wc %3ˁ―Φu.ϊαšT₯ ΏLš]~βk(T²ΡI Aά)ηγ/ܐxςΓΔS>uΟ?9χ3xcj2_}Αν–εhš–=Ο˜ΛεΣξ‘8i³οΟΧΗΟ>?묳θΦ­ίΌ “.υΥ{Gκ ί«˜ύ³ž1d’`Β% ?…ΒΔD@υθΡc‡ΘI)yδ=Ώ8πΚύUuŸ"£ Ψ °Δ ¨4DQ‰Aa©AQ©Aa’πΡBέps)… ^žυ‚υά΄g4HύΕ_ύ:½\{+P�”βVFcΦ_.βg7&Ι(ega$hάβΎ`eFΙr £%Η§e}8%·ΥΉΜhΝ!Ή0S€…δ¬#ΏΨ2’χx•Ÿž’αEπΜK₯i¬™s Ιsu2Κ―§δ ŸͺςΦ——nΖ‘S”WΞλάίͺΚVΩL•―ΕJŸ―ϊ7ΤΞpύΛKKK}ρr/\ΙEφ|ΛσyΓyα―Ώώ:š¦QΏξeδ'ΠΏ’ ‘Ίς‚U&α³£§ž­ŸΉ�Ύ}^}Φ―_οD"‘σͺƒR2cΠ2gΦ0υ‡– ι»OE>’—–†(,qΓ J —θE.ΩCa·½ql… &όλζMŽt\’›¦Ι7߈mP(²‡ς<Β7ΰjmd³ωtΩ•‚;ο„žέ`Σ;™œΡΕw͟€J?hα3{SidΗ/žΟ5_έΥΨ–”4/OΈwD}οζ±Χ"©RJ֟†Q|X:-Ο€U0kξ<X{+}ΊϊςλΣ,M^„ϊ¦ς侈ξj3Ο|m2MΞ=Ξe¬ν³LΚ“ώ+q3myυλqρίψΚ& 2 κSXύnšζNGωW³e›θ~͞ξϋύιψ΅ϋ°aΓΠ4Ώής˜ς`²~TΪjκP]yΟΓ3η}Ηέ1_~ήΉWί§ ‡Ο_€D"ρe—.]φf+a;6ϋ]Σϋθco¬œVαpρήBΔ„ RδΩ%ΊKς’δ_a±αšςE:ΡBHNΈ@Γk€"ήβPR­{ΛaƒR»­|υΫgzžΣSvK*Ι­ι³[Ϊ$Ω_|ѝŽ[υz&ΌXAκ)€FO}š/eΆe3Zdήλυέ¨8 HΏx*yόχ'Ÿ%΄αΚ#mΛPΈωMΙ²\vε-ΠσNžx#”.¦ΘΰJΩΙa7Χ\Ώh +nη°ξΟ·n<|ynˆ.γ}¦BΖ!RΣh\vš„’δΤz(Ή{ν‘Γάσχfg5€ΎcMƒΈ“Ω.”.αε'0σΥΓΡ4 !—\rI†Ζnkξ;_˜RŠ PQQ‚ŠR©ΜE} /ώυ³έͺΊΚ–Ω*™ιˆ¬΄ό}οoh?Έθ,ΨΌyσ2Λ²²SLAJΙΈ»~TΨ‚>wψυ ϊ£n?H½s˜κή΅ς}+¬sμ;πΛιqήYΪΒ―–M’Έ Δ5Σ‹S&{R“D t"α¨N8βjuΝp3ΦάhΣdΦΏ•*c―^₯^vYΓh!p‰™tq7Tςύ‰δoF'' M€§ΣΪ0ŸZU‘Α„†ίέ�ΏߎœΘ={d>γΊΠλŽ”m¦€G~˜«ΞXŸWlΆ )`ΠxψιyΙ’$_ ǁ–ΨΌV„5k`γ·P…nέΚ9|δ ztq`Χiu” +άΎ;ι΄:Tθ^wϊlQ―°°©Ύ’¦{‰&›ρ7ηΐΙWΐ/~ GœžZΣ4ψΧ]ιϊΙ.£¦ΑΩcΫϏR υ€―ωΓξ*9χ~ή½{3zτhHyy9ΝΝΝΤΦΦ2mΪ4–.]J]]]ͺ8p_xαΠ-Μ­|/ΆιΎ<q34»_  †aόdΜ £^[ΊnΙME‘’kCF¨ΨΫ‘ΗK―ͺw!ή³ς‡§Aeu]hΊp ΡΠtW 9–ΒL8$Z$‰Ηύ‹9Δc6ρ˜C<ζ`%$J)Ίυ*”©lVUuϋεΟ~Άιή6d ΰ5VΩδmΕqςέη«P!ΰώSŸ†½ΛhML_ςށΏΟ”+K*׍ήΕ’‘ΜόΊ/«Ύz‘'3ΝΎ­‘‘Αΰσ`+WHζ…Ώ +„K4₯άΝ&V­‚ukaΝZˆ5ƒŽΖˆa:¬7GŒμΟ>ύ*¨κVΘβiw2bZyτι#ά2xσθο}χάόpπ~d<γxΖ1Z7Ω hκ\‘φ­OΦcκš—Ύt―…ύϊRΫ"Γ Ουg„gε«=ιDο Π`iC”I3{±€�ϟFΠΌ{¬νζΟvP “±³KсΒRƒpDK[4ΩΦ�ϋδ�� �IDATB2U4B)Σ<֐ ΜΈGlο/Iπf;#\)¨ξ[.†λL˜ΰ,Ψκi6‹΄φoUsΎp|Χς…γΎΠS¦ΐoƒQϋ₯㉬τrΆΩ²}²ς5δ9Ϋ!‘»νΚΠ‡ό‡β¬³rκ$TΑ΅cIuy„€Ϊ8t=*Kαα›άx—άι:„<wOΊ"Θ|ωΓœ>¦΅6σΟ*x2Rƒ‚ΎΌ€ͺ.λzF7Hew¦ X&―ιΒΣΛͺXί!”\ι”ξβψvΦσeδυ#lτΒh2–@6Ε‘±g}ݍ’R#U©­΅ΉH₯]RBTŠh‘ξšιQ)‰–$Ή›³‰žyŽ‚ύ ΣYSJi&KΣΆ±―nγΏϋ]Ϋσœη>L-qψθ―™ΑyΧύΡ‹Τ†˜ά= _@ΆfhWFΡ¨<žΓO»•SNΙ#t£’~>Ά5¦}c.„~=ΰχΧΊε“[Ά�–Σϊρœu\—œάυ@Ž{r(Ɯν½b*ΞVΚπO·BλW@h€X΅ϋ €@Y6—­ͺ€Q ίθΊΘ”—AJ74c<##žΰ²ξ-ΧՍ€L ΩbςhmS…a-9Ψθήβ Π“Zέ'špTGiΔ›mW›G4Œλšm[³E’πiφ ς'My₯ η^…™u|Ι%¨Ύ}Ι ˆ“vrΙϋ€hΙζC2ަ»Zύ§gΐe§δΧΔήƒυ·ΜΩα^\ο Γτς%œMφ\i΅+£Χέ Mιy歜pB;εέπ4Ί|³^°wΕΚΝ°Χ `θπΤ]ny.ΈΝ]Άϊ7CEiλ2Eα”#²κ#»^Θ r½6ΉΜg²ΣNήΤγ$ψΆΆceœωΏΓ³΄¦ «αpί^ ΄HεHWγ6Ηy£!ΜsNE¦Ι qVΪ/™vλ{Όx’Υ=·”ΤΡ7κF¦j1ω0ζy½›&AΧ ›MΒw4]Σ݊vε’=ξ`Ζ}ύτ–$ιc–ιφΡ{τ/Jϋ·K)9f΄.ϋV)-chΨϋυŽ5ί1YρΌBδT•8χςβΐ‘GΒ=†βBψρΡ™IϊΕ¦ˆλ«|Έοye,FΙx™| z#ͺ*GZmΚPB™ΩoK¦Ώ|GŸ{ ΗΣΊ|» © 2«zοαΏiςΙμ7pζΜ$4Ζέά�OL‚½Wώͺ*ΰOΏφsΛ‹ƒηωΖ/όυy½οe7Ύ©4³dlx+χσ•pό₯P[Ÿ£π.ψη¨ ­λ₯ΫBεΔPΆ†’ž �3K*)F†ζΡϸζO7KF.‹ΐόKϊDZQΤνΠ7'ΆdL’‰Χ «Sρ·XH©ˆ5Ω!Ν΅F�ε€mKlSb&ά?ΛtlKbΫF.* Ράϋ&CYvοώδg?3‡η¨ΆφαMεk²ύΞ₯Ωs… Έγ^ΊΜύ'™•žμV ϋ²ΚjsΕWδάc­C2ŠΖ JΝŒΡ9αΗ·pδ‘mδ{;‘”λ2ΌjΌσt/†;…ΉκΜ€i―M%ΰΕ''’:œ•άΪνω{άίύΪ-ςψγαμci•ΒI£hΉκŽ<aΩαE– iΐOo‚gήH‡EK Χ€BJPυ—Ž$—„[,κβ β6–\~†βΌ“ ‰‘Μ¨HύΊ&:σΏΥ9?0ψŠθ;]’½*AυBν£P½£zρΎ-½C"Φ„¦αΠΠΠΤ`s§΅–°�l‡KρΗςώιΥΎ]Ռ’°ωΫΊ!Π47J*€£άοΪ™+Ꮂ'β–·-—θέϋΦ‹ΊeT―aoΉΕΎ½CS:lƒqώΰΥHςΆkΒϋQ ;,_‹_‡έ[‹J%Ω–9ž}έ―=όρ²μΟV1ŸŒž“H―2HΓΦuΞΌδVFŽμp‰3ΰυ9C!˜=¦O‡³Ž†―€}Ίƒp²4j95:]r"ͺψˆV…ώΛΓΰ²3šΈχiΈα^7τεzΜy}χχΫ/w―{"ξxL.ΩuΥV]’Ύ–qK{εhG ^œ ηώΌύ:Φ„λνW捑呑‘%ΙmοΏΎ;vlϋ‚rΐ–΄§ΏΉ[ϋΌξ½s5Νψ»‘…Β)£@ΐW³λΠ4¨ύ6ζY@Κuu΅m…c₯΅Ή•Ψ–[a]{Fijiώό³ί/=$ƒ£F~ψ‰'ΞόΈ-7Σ xήlω4wiΉμΉυlάnΜΊ^’.πo~γn‘Όd2 ¨JVz²ζ½γ”FΞ"dv?2ϋΙn2‚φd( zMHΚ𭳂OήΉ!ΐO&Α!‡δF/o±ΌχlΪPΒυΧΝΕ?N±ξ‰BΤ/½²B2ϊΎιD|/§Κ,‹πΧy―ί€$‘Y/_z;zΊ—κ,¨>Κν―λΜ{&<�ΟΏν^?ϋ8xα[6ε²δ²Κ—―άΫTŽ­‘tθ~Œ»ž!`Ϊ“0j@dψ»zžj ΊΊzπ† Ύj-uϋ‘”β†ΉGŽ+ΠKžB0ηύM jΦΕSΧ₯i+Χ„·Ά)SeξR!aZζμ{ΎŠθΊήΪ`š0ΥFIG4\B·΅¬§υs™π:­Ώ}αχ}/₯ώτ'wοτ_\χύœά-nŽ2_/<»?ίΚ’T€ϊœ9e*9&ugMC#λζύ7CχIˈ)ΈψχPVoΌύ«ΰ·Ώ„ΡC„(@υΈ‘ύH<2j‚ζε·QΞύRgδ?«!MΟ\„=o₯K’2žϊΧsόtΜ—­¦β„©ωxΌ2Ξ8"— 2»H9ςθ―Ώm+ΗΞ—1c)ρψχCπΓ‘°©Ίq―UTTt―««ΫΨZϊΞΓ sΌχ³ΙMΏΤ4w f]<eΎKίrνh‘λΧk^΅πΑύRες'fš&Χ^qͺ«ΥŽέΗ―ωσ‘»xδν›ββ½ωκ«―B‘‘Hδ8Σ4ίXτ:μΧέ§εΙρΠ“yH‘Wψ΄΅οεΙMφηΫ»ž%cSΡuΌςά œ9z]‹·QFΕ8(Θ½&B+Φ£Ώx$£½γ Λ%»ΰΎλ’τDTѨ֍I2κԏg1¦λƒx[-_ύdiΔVϊ;*γ­Oαδ«ΰŸ„ „ek�˜©”ϊAgοˆ<θέ{Wu[ IkE*€ε(€T8ΆdρΪεE-/š1}Ήniiα”S ՘1YΝάφΐ#Ήλί(ε:Ξ<ώΈΨΨΨX9΄¦¦fC[lΫ6αpψZ)εύ�OΖ•£%Οnέύ/‡_«g΅~G θήύ;D€vΝ•–ζ}t;CχΚH2·άμtρ…χš„R]¦Ε£>Κε?\ΣΚΒΩ*Πz7—imW9v’ŒΡWΐτδFBBˆoΎϊκ>ψΰwn‡WΗqX΄φ+ν‡wΧ_IδςΏ_α(‡ž{½y«Ίιέ;²π²ΛƒvHnlZ―jΛ―βŸxBl^·.rH,Φ²j[[NΫΆ‰F£ϋ:Žσ₯R*Ϊ½ν_vσv΄I>Ψ\s΄)ΣάžΤΘΩήrΩ/YχlŒ’ηΝ©>Ύ['ξϊ3₯ f½s‡ϋEφη'ΫJHY0 „κuk2_™2 … αλΫ(/Ψώ:ΛQWYŠω;%c³ ]Ž�MӚjkkΛ***Ύsδή΄’‘e•Ό«TbΠ±PςάΣΨΟ?/šV¬(>€±±ρλδ Ξφ˜GΙν¦ΏΖ9`C­’°°π§---O�Z4o> £hML/o<Ν–ύ%α‹ηχfΚvΉΜn0ςΚ¨8+©±„/\0σΣΟ9¬Χ‹ΆŽ—SδȏH§ιε#eQ” „o'†ΤRQΎ~;cΩNΙ€μ§·χι0|<3)wΪΫ+Γ_7ΉΨΆd΄�E#άc]ΧΛΗi¨¨¨`wC.F=q"οwx佃Π4xυUμ/Ύ1MsFgυu€”TUUUΧΥΥ½γ8΁�{υ„ώχΛ‘©;€”6ρ™ν*Ox6”Β χ\•β©§_dό˜/γ›ώt•―aρΛΘ—Oϋυtχ«OΕV.+l!Ψ΄ΰvz”ο�ψκ,«q»μwπΧ\ϊM‚°w° _ν–CΑ;ŸΓ‰—»]8H$Ύ1ωέ­^Ώώύϋ_Ό"‚ΪŽ&,ΰw°ηΜ)<Ή‘‘αέοΚ‡rΑΆmzφμYU__°išgͺδζqcFΐγ“ WΪ}©’§9―·j0|JθΜΩt‹>{™ŸœdΊ όχε0STw/[>¦<Ν†w¬!zMH&•tΈ‚žΈƒsqvŒ, š§u&τ¦}{ΐ’Χ œ΅ˆf{eδ,0eœp™»4Wρ¬”r|gν*΄*ερΗˁΎ§’ί‘λxBfΜΐž>½π'MΟoοžνίΨΆ­ν³Ο>₯555“š››/!9œhθ0vLϊŒ„;α‡Oνψϋη/$δ61³3‘Gέeh6²NόPϊC(‰‚Ώ=φW.<iFΆι²½2²―u Ά§_ oNwƒ»”»ΣY‡ αl‡ ε¦}χίΰΞ‡ά}„hšve"‘ψσwYιμ,΄ͺ.Σ4΅3ό:#GΆ?1gLžl\nYΦ_φ”–Ρƒγ8466j•••g†qeY£ό»ͺ„C0ξdΈθ4χ+¬ΊHΎΌδ7γSΘΆό$!GWΐO†δΉςδ$5£ΏŸ»SdψŽ;"#UUaX°&O…GŸ‚―ΧδοφςwΉ¬R°Ή‘Œ9δtƒ*d$ωο›nΊιΆΫoΏ}·ϋHθΆ U Δγq:¨dυyηY½ύαJΑ’%πβ‹α_Ηb-ΏίΣ?±ά(₯hnnΦ***–––ž][[ϋ#!ΔΑή5BΈ«Β�£…ΐΘ‘ΠΏGς%N$};ϋdπ'›”νfŒT~σΨΝLλώp>ξ<.a€™€i ΰσ/aΚ'πεBχ;pYfŠLΖΒαπ³RΚ'~ύλ_ΟΌνΆΫβ†aΠ–Ά5MMΣπή=o?χ�ν#ηλ‰πψ7rρΚ•πδ“ΪoMΣΉ%hw.‰‘PΣ4 ‡ΓΪ„ ’Ώύνo{‡ΓΞΗW\A₯»DσiZξσμ^SΎG—"²O­Α:o6ε³Ο„œ2ΕψGEEυ/V­ZΥΌ;œO w§Έ‚ΦrΧ’n3½{W?xα…ζΥUU[©₯;±Όπ‚Ά±μςιΣ§Ώ6`ΐ@ΪκΨψŽΏJ»7’‹_~zκ©βΙαΓ·BuΆ™ζŽo tζΝƒW^ў:tΨE³f͎νƒ­{’οB$Ώ>pΘ5χœs(lk>₯ά?Γ�)‘+W mρb%W­2Φ¬]kOξΧ―ί+‡:lήσΟΏΈΞ²,ΚʊŸΈρFσόνρπξ}ζaYSx^}}ΓσΑXΜθ;RJϊυλ[κ8λζ^~Ήά[¨―G.]*΄―Ώ5±XΙη«VΥΏΎΧ^{½6zτ‘kόοq€­Ρ–UUϊ«―vφݚ|yZιRxν5ύν^½φ»θ‹/ΎΨ˜έ»/’οDΨΆέζ(ςΆbτθΡZ}ύΤΔ™gb΄g¦+εΞ#ϋί4-ZώωΔ‰qΓ Ώ’¦ή³ύ{„ž={–~ψΊϊ!Cr_–-Όϊͺ>₯OŸA|ρΕΌuA_:�D^@qΰΟΎ¬τ>„¨ά²W_rΑ‚θυΏψΕ΅Lšτ›`Δ;@€ο’59aκΚ+Q••ϊg•••ύMΣlοΦ�Z!Πθv(”΄Pθ€ΐ‘B ¬Œο’Ψf(Η†š5ΡύΐωtΨ­JοzZ—¨l\Žj^+Q‘E2ήπvττuΧ mΟ[Lς]A0R`› —ž^Θ’Γ—©ϊχR;Ό+½ψΡύ‚BΡε ‘iθE†Bˆtκ’w.’Ψj¨‡\&0š1ΚχzQ\“] EEΈ+ͺe5X)―ŸΘ ŸύΦύŸ lx΄’Ήα‘’›_9)xw‚J°UP_Ό_υ(ΕGϋό�‘…PJΪ8 Tσbχ»ZJ‘μΔt ϋdψ� ύ…& эΡφšιVΓcϋοαNFPΑ: %-0z\,JO�ΘBD/2‘ŒalPv$6¦φ’#άε<MΛrΞ±τꔏ―RšS³β…]\”=ΡtJiθe₯θe`o�”ˆ ή. fνWΚ¬AΩ1W›+%#cήZΥ*½π Ό†@†:S9‰VΡμ8DΠqhεR!P2–άKhjՍξŽύJ{‡Δ–«­₯cξΪ*a¨ƒ]eξju׍Wήŝˆ rtΚAΉί$D ά}Φ•BΥΎω �‘^_‡§­•cΙ6Ϋ•cƒ0zz¦»λ€p7… °³ΜyΨH‘μ TiΡδ>t Ÿ* ‘σμΩ'₯ΧΨ*ζd'{ah±Bi~Σ]ΩRͺ_’ °γhτ�†ΠB`ož©” zΉoG[ό䠟’l”Y+URS+Ϋj΅Υ£¬_ύŒHΆ)­žΠfkFt—fΟB@τ�[-ϊ¬oz\ΕμiοΠ ¬ΖΟQξ·”…Π3,F§ώk0B§ ΒgΊ+iήΫYΕΩS=ΐVAυlŠˆ}*•^ "δλgkšσα^₯¬ϊ‰H;ΉSd€8uŸRΔ^ώJŠά¨Τ—TBNΉσJ΄g z€­‚¦ι’ΨœΙXί‚(Jχ³(½δ>ν9ΗΚ‰ χξkώkτ‘‡NϘVC‘βΕγŸΛώF€Œ`0.ΐΦ£μ”3hžν( Ÿιžό³c΅J9^ί½―’ΝOv…½‡ χΗoQ­ιαN.Πξ@£ΨztΏ^²τJ¬Νώφ€OjΪ )=έύ}aD>J™ψžιžΌGίλ°‰]œ=Α2Υ�Ϋ₯rξΠ…Κ ΒvP9ώRαVvΈDΩNLΝ(Ώ‘ώˆ@£ο|=ΐ6A>lήώH«ΙoΎ+Ÿ†χkn―Ÿ½η1Ιw ’Ψ.ˆŠ“ΚPΆT&<Ηξ{zJ ₯P jLΩ…³‚AΈ]„€θΆ ϊΐίKΡνμ±έώyΦΰ\֟R ¬Π·΅LνμΌοIϊθvœš©ΨŸ]X«€QιφΝ%ΆρŽ•ε L³A9α>eΧΤ6tv~χ4D°Γ ₯,Ώ=d₯0›Λύr²₯J8§_V;9ΨgΎsΤz€)₯T/σIΉ]<0eͺ[λχβλΛ>Έ¦τŠΊ€δ|ί!₯ŒnJ\±"‘PλMS­±LUσpƒZ6b™ϊ2τeBZΑκ΄ΞDΠΔΨn(₯ˆ:!ο B )hΈ$BxX­D /Έ Ό³σΉ'# z€M‘ͺzύ%ΦUσ}υ1$5χU8±kυοNΜߏ€θΆJ©hΓS 'Υ%ΣӟŒ@±¦±α‘.|ςqQ–ΑϋΦI*>ΐvΑ3Ϋ_&&h%BBΙG¦»¦ AWCGί+¬ύολk~Ϊ©™έƒ=ΐφBSRU‡ϊ…JE(iΆ;в, !₯ΊNWΓ ωΠπc ε:Ρl”RΡ%‰Δ5z‘ ξnBAΕ4 a)W«λ:₯Q#όΖδ Α \' z€m†t7n-w—˜£"€»ΨE(‘ά3NQςf α[P 4Ωϋσd§fzE@τ�Ϋ#‘= uM“έ5Trgg…B%Φ*‹ΨτζC›ι~ςZΊON…~’ vvήε\`l3€”…Kk㏗? DQς‘‰΄ζΧ&ΝӚ‰Νan2q,ΫΆq,ӈ5Ϊ<zzgηOB Ρlά !E©,ηιsΆΖ^e{?FσΤfΜε&φ§ΩA%J*„Τ-ν@«οJD°­Πμ vua\žY¨”"bήωabŸΆ`o²ράχ5y£VΎφΎ΅Α~…»Ρl”RαΊΩ|eω{ άavΤ9-›χηT²ψχ₯‘2οKώ[zΗ_uJΖχPD°ΥπœdTB]¬hλ”R4KΙFΫ¦ΙqΐΪ y{SoίYŠ0@‹iƒ9υ]‡€θΆšSλT†φ EEX^jc'›‡zΗΑέΥ=Ήγ³T,Ώͺ”ΧΧτγe}ωφ””0¦ν=­ͺs‹±η z€­†R*\{Oν•F•([}¨‘ΊF›ΈRH₯[Η₯ώv‘ΰγΗͺyqΝΎ<ϋν�f^Uρ/;˜jΫ%ˆ`«!…QWh₯(υ’Δ φέos-rΞΪ&—―*@ ΆbΩ…]Ž&xw ‚J°URjV₯‰ίUА«Ν­‰/8M’ƒŽ­eθ™΅HΝΏ!lZΓϋ‘”n˜΅ς˜]_Š=Ρl„Ζς±+ΓB?:Šl”$ΎL`­ΆPŽKε’ιc+Χ±ίΝ[p ‘&»Gx•–«ιΛ εv:ΟΈ�[)eι’ζΔΪΚ¨Q,€†&qτz ά₯έΑA&98˜έsο¬`ε9Ε8 …XΚύύαj-4ξ=ƒ=ήw"’θ0’ZΉη*ΛZ[¬iXJ±ΑΆY½Ωd@Ÿu άΥk~’gώJ‰*X=6ΚΧg–²ζ°bMφ„g‡μ}gg—owF@τ�†RΚ¨ω}νωΦu₯‡… IJVš&›‡ΈRo’Aε!ΉΣͺπŽmaΗNŽŸ\€E‚žδΞBP³: ₯TΤ\Έ₯θ8ŽR4II³”HεφΈg/οΞ†Λ RŽ1ΩΏΩaή±P’p፠ƒwq'"¨ά�‚”(6zϋj† τ|ŒΗΑτΦ”»αΔί•ςα†Θ2χΎ\$χΓ [ϊΰΫΕΨc=@G‘5ΎΪ80Τ7 ¬/Tρ-ŽΘtŒ@W|°΄'Ψ‘όXj.MξΥ,ν’`EΫΞC@τ�‚"άψBγmz§ήΑœoΒR‹ͺΦ₯ζΜΑ7g. ioξΛ;σϋΠ84 yLx�‘„φJ·W—؝„€θ:₯T±V ށ΅ΒΒ\l’β •€CΚΦS4Ϋς‘\d8ɘ]5>x³7/}»/οLνΗΖγ Π…D%‡‚=-ο4:κΔ"ξΦFέ΄ ₯”Φ²ΖXWͺΏ§ιΥ&š^kB6€Χšƒ 1@γγ™]±₯tηΙ½_₯RsζfκšΒ4@ΫhS1Ώ‰κ)υτœΊ…σž,4#Π?;Ρ΄ ₯Tψ›Υ±ϋŠͺCW[kμ:ΧAΖɌηM™­ύ(_ώΎ<Mxθ*ν(c*…­¦Ί”TΜn:ώΙρ½Ϋ Εά­=@»R–.kLΤ–Fm³ΎΡ’Ίz»:Ε/kž|γΙafΉ+¦–η —όΙp{‹Ήfςϋφ1­ΎCΤf€6‘”‡ΒhfXJΡ(%VΎλ…*Ξί7ΰΦεN賂S{-c―ΗΆ€£’ύχ¬%¬>xYκ¨Ÿ€θΪƒΆnql΄† EΚΤzs€E«{Πpz€MΗ�)ƒo­αŒήK9·η"N΅„}ŸΩŒΡ$qBξόœ"Υœως—?ή΅Eάύ΄Ϊ„R*Όζά5Ÿθ?/ςνHƒ:Η!‘μO{&ΈΎΘζ lΒΞλγήΪύ5υ+$›–2ΑΊƒ X1Ά˜e β/ώθ έΠ;»ψ» ’h‘ελ/X_Gjz 6ύΊΨLƒΤ`›©–€}.ΫLΕ Νν’=;<WC0^ŽB ^Ο…ΐtJ)_j¬0η›„PO·γ7’’ί@WΙc�ŠE`κϊžΔχv_«|.―ΉLύμσύγŠ]ž=Ρ΄­ζφšΛ­5ζrLΟ²Ψ«ϋ”™½'\rP-$˜1³'ο­μClς»½…/".ώμ»γ=@^(GaΧΫe.5‘[|bhύΊ­₯ό©˜;Fλ e`Ϊϋ½y}Γή¬Έ²ΜύΌͺ—nV·ιJOωρ”θ(ηž€  /-γkέL”―”ι†ešΫU Ÿ.¨Β,pηΚM|sεsζ c#―YE·w±eξ΅ιώίf­ω7WΚ+oΫυ%ίύ=@^|±Ύιh»TΌoΩPVΆpwY―BΡp˜Ξ§―wΑΞαγ9Ζx^pΆ#i‰ z½Ά…Ω@Εg()±”DωˆnkΆyAβ‚ˆ Fί·ΡδŜΊ¦Ή2,v]V‘ͺ|8­_oϋ(‡-GΜzΎ Kδwυ\`ΣΧ\k % Ά£ΥXhu¦ϋΦXςθu‡7νςΒοfϊθrBJ₯i1$’XΫΠΩ΅u\HzΙτΗT―d쁫(ώ2‘Χ.;�#‘Π,EΌT§Ύo„†žf +Ό{'oC ΡδΔ‚uMΕVΉh΄dΦbέ.¬₯θεx*_£·ž3wΨ4&Œϋ»ΣΤMo­εsωΌϋδ%”²ηο΅o( tφ z€œ˜―}y±½iοΗΝHV;y,–Ϊ Ή₯@fύΛο,γΠR-˜³Jζ_Ψ…„ž&½ν7ηI‡; φŸVWςΒ₯#σ};=@+HS²°pαrΝύκϊaΛkΖ’R\Έ}Ο­₯θ½xϋΉvŽξ°₯_ˆΗ–°lLφR_a`ιΰ(ΠΦ·<²πΘƒ~ΦΩυς}F@τ�­ -©- /²„š’Ά¦V(ΣδN‘^Jd£δƒΧΓ–­πqoσZϊ‰ƒ₯ΩζερΛ#z8}ίVŸ�­πυΰ―‹…ξ»!]*WΓ&ΩzH�!pJ4>^Ϊ“™sz ‹Z»΅ζsyυ‡e^σo$ šΤΒέϊQxΗ”nΟD@τ�­`­±&f†ͺχ^GΡΝ­`?d΅�� �IDATΎŸ–ϊθ£σΑς~ΌΏΈ/‰^"‹Ίmο›οšwόωßi'uA@τ6PRRrm$™tϊι§WY–ΥΩΩΩ%¦D$Δ%ŠΦ*―©£Ο±›PΙ-žIN“e’^a— ή¬?―ΧμΓςkΚΡhν³ή-ο?֚΄ΛΣi7@Η½ 466>πμ³ΟNxο½Χο?ϋμ°³ώΤά7|ψπjΣ41M³³³ΈΓ‘4p(ˆ”œ8ς™Νeλ(œm¦Νx‘κρ^Ψ0ΦnΌ΄v/½+RκξώJΗΜϋŒ}ί•¦}pεΑϋΊγ:₯……Ρ{Ξ8#ρ8�mΓψθ#½aρbύŸGuΤ]χίΐΊAƒφGΣΎίοβΌn:XR87TΉ‘ty2ŽI†Θξ‚YσΊaιΙ=αrμϊκχ„³q§ζT|ΪΔΰ‡ΧΣλν͘2<Ό?,‘%ψ₯όε/:‘ZΎχˆΎ•RRRRτŸGέrˆhJCm-rϊtbί|SψbΧ='3ϊλGω3†atv–· sW7Ύ‘uΡO’1E΄ΫJR›―'αχuχešΜ~« Λΐύ$r’·Ϊς9ylKEBs ½Ζ’hmŒςωM„kLΒM Z tbέB¬RΚ¦>…ςΛ‘ϋιΖχΌ1ν DίFH)ιΦ­λιƒΥ=wΒ *,₯kΑ*š0}Ί[²$τjAAε]ώσŸΏ:ωδSδwYγKGρEKL‰dάTP}’9w|…ΚΠΎf7ΕΜ—»SΏ―њθ~mOξ=ί³}ΰe†,w₯λ/׊’ΛΖξΫΉ5±ϋ! ϊvΒqϊτι3¬Ό|ύϋγΖ©R₯2Ί¬xηρ8rϊtμeΛŠή•²hβΈqγgίwί}ί)/₯βΛ– Rδ+=vΖ,3§)Ÿk+(…dυOŠψόΞΔ‹–’™sο΄±ν³―QΘΒKόiZ™?zhΰ<³•ˆΎƒ`Ϋ6Υ=zΘΟ.ΊΘι©i™„χΰ_J˜6MΘ… £Sš›υ»>ώxΖΤ8°S5ώη‹λΟ€Oθ%T’θ)R*΄iqΊpSͺ—.y^όΗJΨ¬;±9ΏξFΝ Ž₯άuλI·ΧŒ ‹πι―΄ΊŸxB`*Ε’„‘«rδEP[;J)ϊτιS―ψς˝Βαά„OΗO_Μ _~‹EξΎκͺ+'ζ7w …vYή„ζhoάk΄ŠœύjS‡~ΓΎ%ΌΔI”·7€ζΰ £³‘|Ι|–‰―˜?,NMw‡P—.Dϋυ£τ°Γ(8πΐ΄ιžΤθξ‡žπ–Ύ! ΏϋύŠΘY—wΚΓq�ν¬³Ξ oάΈqΠΜ™3‹u]7***šŽ<ςΘ5/½τ)%ΊΎηxΪDί‰8τΠCΒK—Ξ{λK£KKΫ&|6€„9s„όδ“πΜΊ:yί—_Ξ{qΰΐARμ$M&Ι"}‘€ΉΉV$«μ3΅Εb‹ύ°©Υ.1ώ_“ILb SZΙςΚΰ-WI Pͺ`|ΥΕ )‰Σ’@Δ,"5/½…ΒA’ˆ$~sS⦌glΫ&ž’”ΊEJyx2=Ν//K¦B¬*))Ήoƌ;pΰ@Ή+Υ]οξΘΠn€Ο>›k648c<πQύcνΪTW³]h ΄«JŒΊωfλΉ'Ÿάί9ηαtοš[TTtα܏eY;μωYΛ-M $Β•+a•Σzyς/1Πΰ“šj–ώ£’L7˜Ε,F3š±Œε}ρ>|0Ο?< 8Žƒ”ΗqRΗRJlΫfαΒ…\sΝ54Ϊ[xtν}ό|ρOxpΥ]Φ€ƒ†ν—dr³΄έ{GU¨iΪ\Γ0”mΫ―K)G{μ±Ϊ3Ο<£­X±Ηq°mΛ²p‡ΪΪZή{ο=.½τRMJΩΏΎΎώώΑƒ;‘H€ͺͺj˜”»η†”FίIˆΗέυΪJ) Γ@ΧuΦ­[«ν΅Χ^“Ξ>ΫΎyύ·-]ρbΑΤ©ΖW7:χtАΏΝ™3Ηvg›4ΣBώX‘RŸ-@μΏ+hΊ²8c΅ZΡς’7cDΞ›Ε8Ζ!‘”••ρή{ο1lΨ°”ΆnK‹ϋγ(₯°,‹;ξΈƒίύξw(₯Δ ώ“ΔΖφ¬ωXρcE‹›/VJυBpύυΧ3qβD ReΚ'ß₯O=υ—^z©η�e¨――Ÿχ](έ^μ1DOOΠuΓ0€eY,^ΌP3MΣΈοΎΡ>ψΰCm͚5`�šBλίΏ_yIIIy$Τ4­rΦ¬O 5βββŠ²²’ΒϊϊΊBΛJT AΉ¦Q)εΡ¨f £¨H jαp˜°m[FAF4ŠQP ιΡͺͺΆΏ\ρ•‚―ΏFNͺ―©­ έ§λ‘ΏΦΥΥ5(₯:ΤϚ―ZXƒΌyς”WZO΅ {b“9*ξ  9ΐ„ΓgΓ₯”——³dΙΊvνΊUχΰλ]»ϋξ»Ήε–[�ψ%Ώ€½H^γ5¦iΣxα…8γŒ3ς¦Ϋήο7ί|Γ!‡Bcc#BˆUΥΥΥϋ¬_ΏήήΖGσΒnOτh4z±eYχwœ*οΥKi‘D"HMSZ(”ξ?η)χ~=RεCg{yV|πΆqεJηΎξέ{όuυκΥ5J©l― 4ν+ζ'@dtΞ1ŠURwNλ—ΤζMόgώ(₯xυΥW9υΤSΫ$vφyΎΈΩΏΆm3`ΐ�V\Ι`sabrCβ ΓΘθƒo« =οΌσ'žx"�έΊu;dΣ¦MŸoσωŽ`·':ΈΞ-‹-~ψΓ“\Ώ~Υ}cΗrτπαJΫ]=Žι:¬^|}aYϊ£”<lšζ:@ϋυ™“ͺ~ϊΧλΧ†*W΄Ϊα5†bρμ*šϋλ¬]Όˆ_ύΰP__ŸΣ Ι;ϊ›}ί½χήΛ 7ά@άȍ\Σt ‘P(ƒμΫ+Γƒ”’>}ϊ°~ύz€ €nKύW°G=Žγ°lΩRmθΠCκή=qΣqΗ©žύϊ)ΝΆ;_#ο (υΩ;ο0+ͺ³ΞΜ­ΫwYX€7AzSECΔ‚έΨ[{Fέhτ3ΡD£FSŒ-%&‚Ψ, M€Χ…]Άά6sΎ?ΞΜά3sο6@E³οσά;3§½§½εΌ§A8 +Vΐλ―“κΨaβ¬ώzΟΈN}zb”.C$‚λΪρ-{έίΘψΖρtνΪ•+VdΓ€§ξήV·¦ς­·ήbΒ„ ”PΜΓ―ΎΓΔέ{‹Ε0M³YΙήz9&L˜ΐ[o½…išg&“ΙΏ|WΗνέΊeH§ΣΖΨ±czΝ™σργΖqόΎϋJ#ς?t́mC(kΧΒ;ο› ϋψ~bAUΎ΅ν }ƒ¨¨¨`γƍ9c^š£7―)pΓΎχή{Œ;–ςCψτε”••F½ E;‡ώ}ΐπςΛ/ό�ςΜ~ ΠΙdψςΛ%ΖθΡ{SPP{Σώϋ‹>ƒI#ώnH{)ΥΟ4Υ “†šZΨ°κΆΒƍ°~½Z_SϋcϊυλCχAƒθXΩ‰N]»P4§ˆΒc7ωVΒ f0–PΣcA‚Κζ‘ιρ°λŸOš6EŒωp<τΠCœvΪiόφ·ΏετΣO§ΈΈ˜p8ΌCqθR~Χ]weΙ’%τοί?ΌpαΒξ;ΠuΏ]Θd2 4°ΛβΕ‹/:”K>Xͺ]k_α»Δ*„ϊ…BŠhSIΨZ§$oΝΨT λΦAizVA‡0 μΦ v©€ΚJΨ₯"!°%€₯N₯ac ,[Σ›’>ΝZ…Π6’@吕ΛU‡?σxΧΨ΄iεεε@“‹Qš%4ΫΆ}iF‹γη €}φΩ‡wί}—εΛ—Σ‘Cb±Bˆ­ξ­Ε‘‡q§I₯” Λ²βί΅Uuν„ήH§ΣΜ™3ǘ4iήαpέ&ˆQ#GJΓ]cαφές­Ώ†ϊΆ,¨­…κM°~46@υF›Π―+t*…ύ`pθΩΚJ ¬ L΅kTΨψo8Άqη.C½U₯G{Zaεψt1 ά«kCε—ά 'rQ†’=²gf/»ξ:½φڜΊiJr«²+χ·ήz‹“O>™•+Wz~†apΨa‡ρψ㏉DšΤςα°m›P(DUU_|ρ………†α…illdκΤ©<ωδ“lήΌ™X,Ζ¨Q£Έηž{8p`«pθεψκ«―θέ»7‘Pθ²L&s{‹f'‚vBίH§ΣLœΈ_Ω»οΎ{VϞφMεε„6n„-[ V8cA‡RΨo œzŒ U…€νPΝVδ1—0ΑGΔ€ΈΡά\"υ}kD/Θ~Ϋlm€/WÜωπωg•ό΄ο\2Χ—#Eξ% ))9¦[7R θGj΅dΉvέκλλιΤ© Νο.=σΜ3ΉοΎϋrβ7‡γ7ή`βΔ‰ΜŸ?Ÿ~ύϊ …°m›#FπΙ'Ÿ4‰+‰°pαBzτθΡͺ)@P?~όxή~ϋmlΫ;σ–γ ΄zAJΙ]wݺ馛φ[·nέM†aŒ²m;ŠΈ:w€c„sŽƒΎέ δŽζ\‚Σιΐ­ύ|nyά₯ΤΌƒα‚-™!8±`k=,^ ³?ƒΉ ‘Γ‚Γ9eλ‘\Н”π―€[Ώr%'Δ‹/ΎΘψΓfj'ͺ««ιΠ‘C«Γ2„yσζ΅Ιx‹Ε(,,dύϊυX–EAA­]ΚϊΤSOqΤQG΅—«E˜¦y»eY—΅*βN�ν„ή °,ΛθΨ±γn‰D⦆††Γg`μΈτt8β`4fΗՐ₯?ι|₯nVίVNέ»R]χvUο`ό&βΈιιΈέh–u °t•’θsΑŠu°’_pΐκΣh˜Ρ™ΔήaOuρθΡ¬ZΌΨ#žζV‘©ΌdΥίp8μξ&k5L:•[o½΅Υ8¦OŸΞ!‡B2™$‹εh-ΑŠ+θΦ­[³8t·I“&ρΪk―ΩιtΪόL·}7rω C:fλΦ­F=Ž―««»Λ4Ν P„3f0\qΎΠ rIΐΘ/œ…φ”Θ>βΥΌ€CΨ.Έλ“μ:“PΈ‡[ϐfΰ3 ˆE‘€ʊ‘¦^κs+“&ŸBΌ»ΙΊO»`‚U‹sΩe—ε§ΦŸAχK/½΄I"οΡ£Ώύο‰hσ˜BjkkΉπΒ Ήι¦›|sγΝα>πΐBPYYΩ*"?ώψγ9ν΄Σ0M)%Ÿ}φ]»vmUω„<φΨcTUU]»vέψ E„;ˆβbσ₯]wzΒμΩs6~Χ,‰;‰‘H„X,vN:ώ”²� dΒ₯?…«~E¦ί.5)”ΊžU>ŸZέψ$² ΈΠZ¨“[B"Άΐ’0K%έΧoV*ύΐ΅Gpκ7#€OYΑžŸL:nΣi8•:Ÿ ύΗ?ώ‘^½z59Ο-₯€[·n >ΌUx� ΐ’E‹š ;fΜ»ξΊΌΜ`βΔ‰Ύ 1-α3M“x<ώaCCΓθ#ν`\|±5ιπΓ?ήπΓ†¬H$ςΫΆΏ—Η7–e‹ΕŒΗγk ЩTκή‚˜,xΰf°ηBκ=ΈεΜ,‘»]Δ5”Ή}Ζ5‚ έO{Άψ“š…^Ο ΞHMy°οκFyP ΘSο…b`E1θXέ« Η.Π₯£ϊ^ΪγYΫ{? ΒάύΌΊ΅Ψσαη¦766ζ%ς|ΠGδΰW•]’w-σΝαΠγή|σΝ9Έt8δCΈζšk°m;/‘λ†;‡ž]΅Ÿ<y2 £Ϊ:LψΆΐH$T?^W\‘ϊε•WrθΠ‚ G|τΡ‡F&σ[Π"آ͘1cŠ„/™¦)‰ΔtӐpd>„­oΒι�)²Δ₯΅f-ΒΔ @VϊζWϊ -쟞Žgq8?―I?nί»›¦Θ~λLΐe"AΞ`:ͺ{E t­‚ή] OθQ]*‘¨r=W°+o‹7ιίΏΏoΪJ'H•™C<ΞqLš4ΙΫΩζΖӟξxΠ­)ϊχΐ‚0οYΨΫ_&LΘΑ‘ΓζΝ›σβp!oκΤ©�φάΉsΏ¦w£Ά6{Ÿ‹Α 'd*/Ί¨ϊ™ϋξ•ξΨ1ςQϞ=z΄Υ ²3B&“‘΄΄t?Σ4kf͚΅)'{ ΤΌ―$χ…G@FSf\"ΦΑ#hM²JέΏαK”Τ:Žs.ψ%Ό6XΛ…fΤ“Z>΄1Ά›†$©γџzίvΏ#a()„ͺrθΡϊt…Ύέ‘wWυέ½d€ΝΔ‰΅:ΎN―?uBΘ'Ν/ΏόrίwSγο¦όƒ8tχ‚‚�^y†v…Οž�λCψηPS„9eΚξ»οΎΌΪ‰nh βΘ‡sΏύφ0FŒΡ/oζw206lMr€Ξ1.ΊΘρ“Ÿ,κπΓCVqqδΟC‡-ϊ½eY„B‘KΒα°USSσZq,yυ!°>€Ηo„Η4!$4tψ%³€7d­ζš~žΣ=5I¬Ηrr“pέΓ=Bpς‰ΗςΟ·†g™GΙνβэlžΏnΣ!O~…PR="¨ͺ€ξ‘χλ~}»©°ϋξ»o³Ξ‡Κ!„]»ϊά‹‹‹}sπA•Έ©_s8τ΄ά9νwζj Φ†cΗΑΦ· ζ=?ž{ξ9:θ .Ύψb2™Œ‡'ΨάΠτž›·>}ϊŒiΎFv0Φ­“Νκζnηή}wi\ziꌣŽϊdλθΡ‘FΓ0Θ1γ’Ιδ7•Χ6ƒ”’‚‚‚[MΣ΄2™ΜƒϋJcσ»°εuΨo`–X²γlAYaœέ'έΘ΄χDJόΤ}x]B8Ζ8m,ŸΨƒκ7CΤζ!8ώΨ£ψΣ3eŠašz.³Ήn τΖόωκ-]̈c}/„Κ2₯ΚχάEω=TΈ:δ¨ΥΝ£”’x<ξ#–!C†4i|Σ΅χΧ«W/|8‚ci!7εΦ(fώϊŸΤΠμΊ `Ι’%~ψαœ~ϊι€Σi_G0ΑaΖςεΛs#ξ„`lΨΐϊΦvΥΖ#ސ±«―ΆόKΚή½£«βρψξ;“QΒ™Ώ½D!¦NΨ#=ζ=₯ξ!QBφ[Q� [rΰ170oiVMχ¬ιd;OΞSfΏυx>š~νφuθhͺ³ž}Αe,ZνΤΙ½τΘΊ{—Ίa΅όθΣrnάΏM‡Πhxež’μEE°ΫΡpΔ₯Π΅“Z~ PRRβ«Ϋ¦–ŽκώBN<ρDΟί΅h7?ƒnU·ΩτRΙfκJ€iΓ΅§ƒύόυΧP½i#Gy$S¦L!‘HδΰpΣΧίέ…3�Άm—ΆX˜�ŒΝ›Γ[Ά…F…PγΜ3ιrō³?^ΘΒΒΠ3C†μVφm©φΞ”ΞήB™N§ο=RΑkχ€ιžμJSbέo„p¨Η°m:Ύ”΄ΘO£?σ… †'Ϋ]_†*|SH›5©)ώ4΄ψξSo7O²‡ΊπξΚ£¨OkιΉΩΠθΛ6ΰ ηΥΙ{)5ώ€«Τχaϋ©΅υ•ε*ŠkXΛ'‰υχ ³葇Ό0_~ω₯―š‹WUUεΫrΪ\Ψ`zE₯΄Ί~r dfΓ]WΑ‚ (((ΰΤSOmθ§!έόmΚΙΠN†a,۞„Pϋ™„Ÿ<sď~΄`σ„ !+]iY–wHβΧ Γ‡7„k2™ΜΜ²bΨς.|πw΅UhήΝs>…ΞΌ­T{°;•—ςχη{zώM₯C3~98€[JΐΞ€ΞPBυΜργφd~φL_œ €χα-ΕΨέ‡³9r[S~›€ώτkΥσŒ#`υj°BπτΛΚmΜ ₯ΞΗγ*»K—.uΚ”+‰ƒ.H˜‹/‘·Fš›¦Ι¨Q£ZCΟ—”’ώ=ύu\]ΉpΑ`gώyδ Γ`Ϊ΄i9³ ω†/K›-ΠNF"‘ωpG%ζŽη'M’ΖΤ©‰›~ωKS\Έ¦S§NX–υ΅LC8†˜KηΝk θόPύ*”„τ0ώŸ³’Μρ‘nΞ8<K₯gœsΥ Zψ@YیCψU{0B:κ₯κ’B€’χ?οMPc*ή4œ¦ž»y Ύ+B@·]:³,q*v`΅lόG}°|ΎŽύΉϊΎώl΅j.‚ˆ‘ζ۟}φY_}CtΝ'i…τιΣ‡εΛ—ψN£ΡΣpŸEEEpΐ9ώ-αpύ„Lή§ uY;‡χO…ΖΤΊ‚)S¦Π³gOoή½)+ύςεΛgεdj'£ΆΆώΛV ™Ϊ B@a!œrŠΥωόσΧΟ8σ̐UZz«kΧ.•;J΅ο₯‹!„XgΫφοƏV†– ΡTc7/hν8θͺtΆ3D²F-ǚ%,‹§^ιœCΤΎρo[pΈA\υ> >;°Ÿ|θ‘jE½žŽΧ‡OΟ„ΩAiΐΠ}ωϋ΄>~JpχΣκυ'Ξͺύš:xφυ>Πα-΅ ͺ ;–Γ‡~Ψ,‘΅έ»wΗΆm’Ι€·]O/‰°ώϋ³οΎϋ6)­[‚E‹!₯dQ΄Ύτφp^’ΐW… +W¬  ρζ›ozxά|ΏπΒ �φόωσ—·*ƒί2ˆΒΒΒ—_^Ρ7LJ%-fΞ™™3ΓμΩ³οsηΞK΄υςΖΖFzτθ1jΓ† s�ζ<#{h4Žξƒ΅†vΏsž]opΪή‘Z¨KΦWo’Sςώ[ΆΊ+™‚,γtF©‰ Β ³κjΒ³π:-ώ΄έ(²λ Z%R|πκΥμ1 ›ΧΨXHeΰΙ[Υχ‡ ΰ–ΏΓρΐQϋ«p]«`μΈoœ{-9‡Ex8Dξώρζ¦ΕςY―u|i΄ǏόczπA2³³ΪR³u₯ω9Αύ³*(;FΏ)j;οδΙ“™>}Ί—ŸqγΖ1sζΜo|»ͺmΫμuρξ‘UλΧ\j†Œ“€E‘βΫ>ωΛgӚ[ΒnτκΥsιΧ!Ρs •­μ½χ–‘Ÿ<uΙΡGΟo92²΅ΈΈψψόη?†>ΟΪΨΆMiiι6l˜Σ₯€?„QΞΈL'λ μ=eΰM•Q5ΕεHOΣΉ€N•Y_³#pΰMΏyξ΅N&²γIgΝκUY|ή½—,NOPΉšˆ)Ψ’ϊ葞=ώ)"οTl+RΒοk~δμ@•ΐΚ΅κύ$΅ΰŒΧ_=‡8σΗt‹xS›Bά§npkjE\kq<ϊθ£ μ­ VΧ•σ碏 Jΐ°aΙΏαχΏ‚3fPYYι©ς3gΞ€  ΰΕo’Θ₯”t?±Ϋ[΅ [“ΕEEΏ)ˆ )ˆμgΦσΟμoυ=΅Χ ¦β'NΜ|#3cI`kφSu<ΡGΛ’K/έϊΨK/juν^F5·Φή0Œ—R©ΤU'L•ΟƒiΖ ψΏ=mΨ‘Ά,³ŒΕ½Έΐkx7…L†Ή‹w�Mτ…YŽ«›gΑδίΈ1OωDvlιuP „{"…pςοŽϋ%ΖνΙWTœί]₯qΙ‰Ω6H$Υ3“Ρˆΐα8EN?>ωδ“΅rδnί Ίη°M-om-ŽυλΧ“ΙdxπΦ6Τ•σ:CΊ;i\t,~Qν­‡Γ̝;€P(t6ίΨΆM―SΊΝ-.,ηΊIk „‡?λpLΩaωβ;vόf γ&*S΅~gαpԊ 8ο<ϊ]uUς³cΘ’’Θ£:u*Ρζ+B|Lϊσ πθ΅d-ΫΎρIΥ •[Ί/� †i«,ΰžT1 6ψΪZPΧMrΒ;άŸ gœνΦΪΣEΰJ(71Y0άιΈnu:‚mσ;εHΰŽ‡”Wg¨³ΎZ='ο•[Ÿ Iεvχ΅°zυj’Ι€Πthjκ-ΈFχ † ¦ΥRJ;LυνΡ}ΪPW.³ΕΊQUoΈΎΠ8GεaδΘ‘!μκκκe| ₯€ΗΙ]f … ̐Ζψœ?αΨy:–vόwΥΡUέ‚iΧ^{]WGλŽγΨp‡‚bΧΑ²`ΔΈμ²Τ‰ηŸΏΎf―½ ‰D/‰F£³₯”ƒ¦~z9ε}j θυwόc4χιc‘θΥ—=Χ\Ή¦­πφγΌKBS6³‰»y‚*νΪ&·jA² ήΧιΤΩ±›‡A£&"%¬ή¨βΨN§uΆ zΘ8ό α³ΕκyξαΚiόψρΩl©±v6ο~ ίTœζζισω%“If͚ΕΥηα£ΪλJwΎu¦κ}“eθ1©ΦΟ‡LRύϋχ/Θ)θΧ�½Nν~GeeΩ‘ˆA("… ΒQƒP8{ΟVTaKKŠV ή†eYFuunΓ4 ΫΒ\Bw+~kSΈΔrπΑ0`@ςŽt:½ϋcwΐδŽΏΦ+¨ϋžνη^cΉ„θ₯­Η—€ˆzœQ8­μZή₯”ΔΒι€Γ‡p‡—–°D»‹–Žπ§“3|0+uUΞ‹$% Ά+²XΕοX–MΗ%τ.³ €«._λ”Ι†.„Ω³g³nέ:­4ΦPΟ[Rέ[σήΓ† ຟ:υΣΪΊΒy^σ >έΓ†€SgK—.­oiόφBΕΡ₯'WV_ŽxΏ¨φ‹Έf·ΝMΣ ϋΙ]ΤΣ1,Λ²Χ¬m#]%•Ϋ²Μέ\ΊˆkŐaρbψδΈώ|8Ξ‘:M’Κ¬„uA�1F:\ΐ§ŽΙlΧM`iω“Χ²SΫ‡ΏtA‚ˆυpΈ†?w| °δΛκ"c“Ή8< ²›–W@w¬^Z\Κ–-ΚmΑx„PS§ γ1�� �IDAT‚¦Ή ΛΆρ:MΉυμΩ³Y•:Ÿ­9iέΤΊχ δΓ1{φl-ZΔ3w)τκΈ₯ΊΓiαέΎDπιΛ$ζ¨οώύϋoϊΊ–9s਎₯ŽΔLBGܟNτ±Kΐ0εΕ₯§.^5,ΆmS_ks.JP„ήZ‚Χ*Ϊƒtΰ;<ς λWŸžu“NzžρKϋš»/ΌK”n6dφ‰C’•ΰ΅ΈK$„B 뻝847—‘Θ‚aYK— ώW¦ύ+/€‡@Ίx) ρ(υUxηΜW―ƒϋfURΛΞ•vΊV’Κd=–½©TŠ)S¦ψ€j[${[$~s82™ {ξΉ']:Βα{ωσίr]iaέΆΠʍΐΣΨ‚έΣUν£Ύ˜RΚ Γ0ξΫΡΔΎβhŸβpfNYΗ‘ˆ"μHΤ$5inzDr~.e3,˜8uί;άτ €εΛΣ͌š›BTβ.Α7w0V‰ΎΦhF…w ωψ1mΌ€ύ@“ζω€΄Π// Δ;_x,\—)λ6¬§cιvβyšΕZ<ιό@‰4 Ž™΄9+τ2juα&/#=Qd΅ΆU΅Ξ”YΗ2£Ž1H ψli6lχ2ΈεR˜6mώσŸ•{†5έ�§Kφ|’Ώ)- )γ@QQBΐς²]ͺΥu₯»λ_cή^ά\ΤτοgRΚ³ wΐ%Ψ 6>WΨ―Sχ^K^=Ψ"R"¨λ"GΤx=^³3’β’KάƒcŒX,F]½l›’Ivμ Jo‰ΰ’P鍹Α-‚T όο t7zWΞγξΆ¨$7žχξ„ρašτp¦nΘJΧηž|Bεa{p+Ω₯Lg%8Β‰£$ς|Š…ώrzο2O™γΓό~Ξ<ΌλΏnγͺ½-ΙJ0ι| ­ƒλD±l₯χΤΰ‡{ΓΩgŸΝΏύoŸδΕ­3Θqϊλašš^Λ§H))//'™L²α­¬Κξ‹ΫR]iαΌΊΏΫ¦m'η]dέάπχύ’ahllόbGHυ oΪ«¬σ€EF4B½"1GᨙUΫ½ρΉ©»2 g%e:m‰†zΑΐΰHτŠŠΞΫ~sΉ’Ά9‚wYͺ7€"οXύΡGΥ±Fύ«²ρτΣW<"r½…ŸƒCΆat7c ­Α’=|’Ϊ'aLƒcΈΆΥ8€�iδΑ‘N‚ ’α’Ω4$-›CΖ|쩉ή"‘Ε£«Χρώώ<:Β™ώ`φ§„œL؁<Ή gt’›οŒkΌΥπΞψŒ�Gq·άr‹^²&%΅J³ιρxs’ήύN§Σ˜¦IMM Λ_±€δmm]e«Η'Ι= Hkgoδps­ϊH˜υH)ΛΒαπvBQJχ«* ΝwXB&nˆ:D¬«λYiŽ Η /… Lη©Κ"X²ρ&p}ŊuKΆ'ƒαg™nMΊ*½Ύΰ-ŸDwΓ:ΰμ`ή³ώΖπESΡά_™Ίj™žιθ<΅"μ*½ZΦ”dΏž»)΅‡0ʘ΅ϊhκ3šT�‘*G’»ZzΧ&½πδEω Ό{ίnžBεŽΤZXυ-‘lψςM*œmε —;ωkLϊ%:ψ‰Γ֘²Λζ<?:ΌςJFŒΡ’τnnϊ-ί<Ίξ'₯dΜ9D"€”TΏέKΌ,孟fλJϊΫRοW9 ΩmCM-Z ν1°m{zN%΄.ύΫy »€Οά΄Yr£Μd© Ψ6οl O=Χ-νή3¬Τv3l(beL%,b±θ‰+£}ψπaŸ77i'·vέZs%ΌΖ!st)‡Π₯„Ώ]σεξ@ΣU*Θͺ[ϊOhξzςαςn>=•UdΥ2‰ε Τ­Ϊ°‰3_γΉ΄ G|({ŽNmΑElM9ι‹l<OjΖ‡z‰H€Nπ§»~Λαl_5ιοz9ΌΊ€Μ€£ώgΓ:>ΣδθRτξ₯όVΣΚ*•ΤΆ½Δ Υ|Ί§AiεψηπίΑΌyσ0 Γ·LΆ9Λ|kT}χέΆmƍΗξ»οNΗr°?‚²ˆVZŸkU]Κα…uΫΠνš›/ŽζοΆ«�ΏlΫhν 1�–mƒ/ιρΛχΏ)‹ †χšΐnLa5$±“iΆ ΣGδYΥέτα‘ Œΐ S € “²)ˆHΗ(Ι'Ÿn‘„Ιφ·Ζsj]σΧΏέpi΅ΣΆαζKιλβ[‹β€ξΏkΜ!ˆ_ΐ,r8³τ$,ΛοΔ”-ΰ K₯� †’.•X-‚­ν>σIΛψ°¬‡`šάwΧ­œsTm~ $ί»«-hR\?Φ}>ώθG`xε6Ο!\)Αpl,fSν/`ΙJ-οψΛqΒ¨›εΕκlτRοθδζΏίσ©ρgœq¦iςΞ;οπ»_ΐΊAXΌ΄Ής—CwΣ‡?z8t==‡μ₯ή §d¬ ™L†ς£K&υ:₯ϋΜ ΧŽ°*JΚ~γJγFaπΓΧLώυ₯ΕΓK‘ ’79tαΰLGŠ›¦ϊ¦"xW}7LΙ1·T0 £vΐΦΡ"²«ήt5^'ζf:°v³ϊ< α—ζ>ώ rέ\\ω¦Fd§γt5-Ύ ΞXV ξ{ΕkΩgH+pˆμquΐbΎ/°Ο=:΄+γFwεΣsβ?C€²qΕ`P υΧVobαϋΰμ£4 ^ ·^₯R�‘Έ;νt&' ’Žž‡κ„_€9Ÿγ1΅ξU°l΅ΪžΚψ›ΗΕ‘Jkψ΄Šumlzf~OΫΚ°aΓBpφΩgsϋν·FσZΞƒΛ\-ΛβέwίεΤSOeΩ²e�Ό/<χΏΡMο.3ou]IM« ”#Xw€²C/­y~–κiΛΊψ?P§†aŒ:XΑ¦Ϊκ;vϋΙ§†ΓαHUY{xΜ'ϋT u•:¬²‹�΅.’UΛm „°‘lKbeCp₯Ήi�–_Ό»�˜3gVδΉηΖ$=cD 56ςό‚,.’W½ε­A^~fΎ­Nhm²’]‚Ν—•ΌŽΝd·Γiˆh_υ.%kͺ·P»δtΛ¦ΥŽ›†L…Dτ)΄T jjԴ֊°bΉ:NΊ΄v4ˆ½φθΖϊ%οrω[)-…B§q‚7¬6y'%‡Bα9•ΐ}wίΜΩG$T±!΄§ͺΗ'Ϊλsΰž'αΖs‘ΟάNŽƒβ¨4#υuœo„c.†OΊjΎ ¬¬Œ]wέ•}χέ—ΚΚJ ©©©aαΒ…ΌρΖ¬\Ή;Μ!†_ Wž§4Ymiλ6φ‹mS…GžΗΆm;ΌΫY}FX–ύηx,:JΓ§‡(*uT`­ΏdŸŠhΛ;E‘’qΣYςͺ΄Ϋ’€“6©€E²Ρ"Ω`‘pŸ ‰† ‰ Ϋ†’Š0uΙ-ΏW QJ.»LX%%ψχάI %샕”oLη2}π“ODδΗoΪ‹πΑgy0OΣtιβrdg–ώ’‡Υ³"wΉPσΦϋΛ_9eς2"Α‡-ΰ 8N<±yΒt…—FΕͺ«aε X½V­iAqμ3†½C―κ”Φ¨ {G: vωˆB―n€ƒμ±ΗΕ >ρ FŸ -€ΗoVg$Rpκ50|WψΥOύu£Γΰ]aPO}ζ+ͺO3`}-άϊWuL՚j/ƒ;Ζuλ²ΌΔ`πΐξ ν΅…ΛN©‘OUVκ6‡Γ+W }ΌΊψξ‹Ο—^«q+—τ²Ϊny©„'Wvƌ˜cμUh³΄!;-TtŽeΣΦ€ΉΗ „#₯"Ψ6Δβ&‘˜²Ίd2’tΒ"Ωh“lΜ8Δ­y½b�VF/ QXz=L&-[„QR ^ZŠΨτ5Š•SZ 2�ʊTϊ»cdOUΣ8€«²ζ]­¦;:ΐζϊž}βŸLΩϋK~zP‰Φ67INsS©ω˜€”CU•ϊΦά]¨7ΰ΅/‘ρsXΏ^i+WΒΖ L@χ±Οžέ9Ί£vb—.εΌϋΪtŽϋΑ'J3ΣΪ↋αΠsaΖ{pΠήw¬ϋsεgDn}-Z{jEo†BΌi,ͺŠαŽKΰφ‹΅τŒμ;Vn΄Ω₯ΣWjϊO΄G0LΎ°ΒwϋN›pδ "%€…ΰ +Ήwn¦P«γΕ*ήυΓ2LθΨ`'<°ΜΰΡ5q@rΗΠDΧΈC₯ͺ±•:Vs冩*ΦΚ „!œŸͺW΅Ο?[V+cƒ ‡—Dξ΅­ƒ$Ωι° › T–―–Z‘>½σΌ;j^Ο“~Sl΅ *™ (ΆKΛζ‰Φΰ0`πIpάq­Οˎwφΐ½ƒ`λVX΅J ¦ί¦vH€s„Ί₯εαT§ΌϊOπΕ2xπ:ˆΗτ„³’Χ–plSW£TζqoͺΙς5νN‡Γύ0`~Mœ{ζuaφΖ"b¦Λ‡σμ‘<>DΘΛΒN€±λτI)P\ž;uΧQdwͺδΒ“βς0©€MΌΠ$V`+  ’Ά'Ή]5έϋΥgΌg&-1C‚ŠͺX"j cΟ=:”9­eˆ:? 4Α+ άmJͺηˆΪ,Δbj‘Œ”ψκλBΌFΤ‡yΠόά[jYs$πˆ<Π rh»%6Lή·B,nVͺΰΪάkςβqθΧOύ ™κκ₯₯« cCΨ„Ÿηά Χέ·\δ”I:MθΤ‰RΦΜ`ύq’5­ξήκύ@ζΦω·ŽΓ€Euq_‰WVW6²„]Rˆ§šψ$2p\Ο F$„‹`§2ˆŒ !ƒ‰iήkŒc†έ’n\α•ΗUα͐›Ό{ H)±νfYUD6œ!PχWW‡RRfš7ώδ$†ZŠΨΙ_ΩA‚oŠν;Cm-ˆHΧ“'Ύ+iΌ±ψn.qUmΖ|}όAϊ‚^…mΕρ»NeχƒαπΓ[¨·o΄N,Όφτό\s/ά|Ύšu6ZΘP]ς©ΖKWΒέ΄ϊsz [:€€œ~εΦ­{Β‹Oeη[ΐ€Ό±Ύœι«*™·₯˜ˆ)=…qΘ±±ΈuμNsΞθ'Ηf{Τ#B$žέGξFτ†:Z:Z.mΆΔΆ$™΄Ί8ΒΚHlΫ]"œ­#mύ3jω³£)μ@4₯ͺ*²¨`[@β—κ9Τ’ΧjžΈΩ2SY©ΦΉoj€Ρ@RωJδϊϋPγτZ›ψ 8nηΙΉN©8„-9xw„ψΰ—κ­·su/Q–ν%+ΥΕ Ά„ŸŸΏ}~σwΈόT­ΘA-X ύΊεϊεΓ‘Ojζ­“¦μvΰvφ;Ηd$@˜`ΥWb5T -›OkαϊeΚνP[aA6oΊ΄vς2‡Hί¨79?U‡mK°md&–ΝΪpŒ(jΊ,KԐBuš—¦ΒaΫ+£~锍aΈSjΫRL@Ρu–θ=βG({�¬τN?"ϊ1€†δiŠ\¨1ΊΎΝT#¨&%w>iH7Q™όΥ]π§Λ³Ρ‚k±›KΪ—'žλ4ΖyMζf'_±šΔ!ism‡³χαpΠAΉζΫ‚`] ο=#„‹nƒ;.ƒ1ƒ•ϋΞ»ϊ΄= Ί²ΦT³zadώnL«Ιό:ο€αΗΒς5)Γ­i*fՐ„M[ ΡIΓI$5¨ZNοq•”τ("1±$ΙΉέ2…2†ŠΏΥόΊc6y$us„οΣœ±Ό„;«6S(mΆ€l.­νB4¦5œyΚή‘4WoQĚJ35΅ u˜r—1ZI&e{ΓYΫVέ²l,KI{Ϋv~Α 5±ά#τ΅k·6}ㄍ"μ δ³ήZΑVˍ4C0Kίf#Iz†·&΄Ο2/šE™4<-β•!QχΆυο9Γψx§”κ¨KΑπnjͺnυFψj τΪn»~ώψρυπχλTx―œn'“`z-წφ€χ‚Χ˜JΎσΥFψT;€sSM3x%|λŠ:Ε|σΣ8―k ‹!BvB 26b„3fV¨ζHkα#drΒ˜π³šJoψ‰‹lzNΑΥ‘aF‘‚³WsΎθ…ιŒ3mKΣ2iΫ[! %Ε3i‡Ψ3‘[Ž&c+F 5Ν‘˜Α–ϊκχτγμΩξ6jΌ]λόκΙyS «ξ˜!HY­a�ΐθΡͺΎ ί!`σΎΡO ]ŸtΦό|¨ςP½—¦σβSγ[ΒQ0ά{ΰΞ£™1#7ύo |εΆΑΊ‚Γrη ¦©wͺ₯°έ;«‹πΚ,mXCΆΓ/_ηO·©&•ZΟ_W‡GŸ|h‚Θέΰ½ΚaΓΫ0¨oΛe.θ‘CB’q“HΜτž‘˜’˜Β4αΒ0ηF6\ά$ͺΗqΎυwΈW—Ες₯ŠL)h@DΓ…1ŒXAΘd€™P{ΛΓ–%‰DM2i›tΚ&²H'mI›LZύ”Z―$»+έ]u 5±,k†Gθƒt_.R¨ (ξΤY5ύδΞΛΉ«γtΠ[Ί))ο†ΣΓδ#v'Œa¨F?δ,²kΤσ€Πγjΐ[<‘‘υωεΙ–oά'²αZ#6ΠQρ$¦mΣ₯rΘ·ΊK-ί^™Γ](‰ΕΊί|τ©ΰχW*η_―Κt»³ΗΰΎ§‘Ύ1—~Ά(π%‡‘ζanΈ`kQΌpyq Ά¦~ϊ8dζΒOnΊμ£Žο™C°ΡΈA$n0'ΖN₯±“ΘŒ–MRJbqƒHΜ 3|„™DβΡΈλg¨t=ΒW~ΧΟρχπ{q”_¬ΐ$rζ™ͺΓͺΣ…MΤϊφ°"4Ϋ–‘Ϋ‘[ή{±λ]f‰ύœI?ϋΠ#ΫςŽ=֚@ ΅-޲¨:Ώ"νWŒ:JͺD{Z'Ψb4α–η[ΨgΥΐΏΌG}{ ƒΐw +š;†sθ’7_Ά<&Β΅G€ ξxNΑcχΗk―ρ‚«^WWΓ“OΒγΗwa€(‘ΖnR²ΗΧpδxΊ+l­‡ΫV;Ωώκά²ϊ“π·€£φ74Q§:΄6“ώψAeΟ γ1Lι―σΌ8„Ίχ/W¨λŸϊD΄»φ�fή»˜XatŽΖL’œΊΖ4vC;‘ΒNeΈͺ¨o@R>m (Ρ#qC{Ο η#φ@ΈX‘ΙK”`§2Ψ d*ν1œ/γEŽDΔ ”4Ο€ά%―Ω_:e“IΉΔξ¨πšdW=Q"m8{ςΕu^σœvΪ©±>}jά¦q₯ Έ§ΞιΤ‘ƒΞšσŠΤ\§gΐΌΟ`ΣL¨ˆhაo˜ i~TΎ8Ί·Ϋ™E3αu]nΜFr›žό0{OXτ΅ΥmΫYhτœ{"\ωc(‹ΚξBΥΕκΰ}~ςΕ"†”=L| $Σ°pφQκtΨϋžV‚ζΙ[₯«NYžFΎϊta[4™¦k%)αύ%0ώdHk3@ÏμFAyΔ±€Ko k₯l’ ј‘1!±RBJ^ύ“Đ’!$a,αH!Y’dίsC$₯aOΌ£ό ΈYRRνΤ)-{ θg‘.BΠΗ&SQ[!CmfPγμ]k·r’½YMΓ%Σό‘ +λΒΞύΞ ·U‹λI&ΤbΓž&©¬ρH9ğ°H&,R 5ΧPXBD2‰χnžχUΧUW!CΞΨ*ž8—‡ ςt>Πύbp½snœ5 6�E iη] ήAz’^_Ηθ-α°Av»ήε‘J…—’΄apθιW3vleέp—Μ~ώ9Όό2μΉ\{Œμ"ν/Ÿ^.W•]oDuΆμΞ±ϋξΎ™³Iή]Ν‘ο3.:ώω"<ύš"φ'nuN…Ǝ€n•ΝΰΠκ(g–C/ >Ύθ΅‰^·mΕ!%<ό*œφ‹6T*°KGX5o‹#oΧu>ΞΏξωD£Ρ=’ΙδM₯mΩi Β’iΦ'–·/8΅_ά,ή«±α”0…“llΫΚΖι·φΓ’Oj1C‚Mλ’˜†›)‰mƒe)ižqTωTRΉ•Q΅Φ©[œΊ††+>Όmρ-^•ΪΆmœwž‘ξά9gή<l%?§mJͺ·zΌΘ(\=μR «^ΘϊϋΖΪZη«ήJ9JC Sε(#Ίs8̎Pu‘/_jJI²ίώΞ&ΉΝRέUΗkkaϊt¨έ·ύŽΩO]G•ζ-§[ΖJσπ*°΅‘βΪ[°‚1j»jΟ]ΰΆ‹αΡiπoη2ΡΏ^ EP\Žυγ%p°Κ€ζη §iDΎφh©­ΐ!Mθ>VohΉŽ/>ξΈHK0€CΗγϊOϋ9"‘Θ=Ιdςό|Ϋp[–6 ²/›5i†ξŽšρ½r�W7²qu‚šM)lKfΧ~Ψ(5=£TxOͺ'7*ͺbŒν?!όΫΣώ˜ρˆ:“ΙΨλΦ΅ρΒΈz|γ΅H°S‡Θ­5ίωΑY‘uΑjηӈ³xšjψΌι;nRζ Τ"Ψ1›ΒβB:H€“ΐ‰“jψ I^Ÿ'›NΊ–oΌw1BbΛDϊtαΣ‡aωαψρŠΘέq°Η€ς‡λξ9ؚUΟβxœΗg οCηjΚνψ+ΥΕ‹w‰Jη§7Βc3 Ά.[98ςΥ‘ξxχw[ΚΡ † +§Α…'5]ΧBΐβιpΗ…~·ΰlΫ&Řή[’ˆά4ΝΟλλλ·™ΘL#l !Έ}Ο™KoΫύƒφŒHΡp§»9₯ͺ{ι”MQiΨ§{ψ”c˜sriΫΛgyU”†D’ξ7'έ‘Ν†n[Ά΄α–~U:H¬a²†ΊΝ/(%[:ΐι§ΓΌ…0ΚΉλΟν²Λ[D\γ>τ~¦§αs¦ΥŽ‚έ|)»aώύίœux5Υ+ςtP ܎΄hά{`ΦΜέ8ξΰŸρΚc7²~ή―Έωη)ξ°‹ΗψΠςͺ—IκD“Ο= w©r—nŽ)ν:I•Ω†Υ3ΤΑΆ '_ ΣgΒͺ7ΥΒ”g_‡S5Νγvί}κΉσΛg�mS9Z‹Cΐ—ΐ³wζΦωπώ�ϊvΜ2–&qkύυ΅Ο`μρ …–Y–5Έ­W~·Q3΍|σβΝ©΅α”ZnK΅=² E ozΝ•ήι€;N—ήΠ*R{֍…Ca% †/h<α;–7:θΖ77‰"ξώ–�5'ŸΦΒ‚Ÿΰ ”e_’=΄Bhι‘`Ω2xπA%qVΏH–Ή$o^€ξŸd€΅—Χ¦ptqΖ½šί΄_γ a―#$d 8φu§œ[ΓP7₯Ύψ"iΈjκ8ζΘ‰„3Ξ QΗ<υάK½ϋΫ9ξ>›ƒο%ΰP|ο‰w §–Vc&MΌϊΧj½„γΎ΄’Œ[‰9ͺ9Ί^œ ‡ώ4€^}ωΤuΆ§Ϋ€cSφ>Iβψί?AΧbΏΔ1ϋ 2 ۝₯„fΐO―‚P(΄0NΨIސRrΩGc/ —?φώ λlZ›ΐΞHΝ —]4£4JAy§‰DͺaΞοΊw¦{¦·X,FUλ-ζ@'ς0j*9hκΪs‰"pύΖ8Š1ψr§:BοήpΡEpη`ކ­³ Πέα¦IΊΰŽ57m·Iν[οοAzφˆίν„ωpxC¬ήy}β¬ΓVyaC6¬Z ƒ+λψΗsΰό“ΰΆ3α§ ¦°:ο‘Ά“α|άΞάP_›Ε"4©¨Uϋ’—Γ“tˆοκδIxv7­x,Ξζ­PΟβθSΙwαΩ·ΤΝ$ ŽzήbAi„‡Φ^αhεπεw[Λ± 8*c°πir €½OUΓ'λεwΔTxξ5BΌ™Ιd&|έDΈ«ννόSžξ=€~뒏k#₯6I`₯Υ’WΛς: R Κ:F°’ŝΊ»D>R‚P¨δC¨mžΠkΙnSmuŽΙUΩM²‡ZθΰjB‰`ξ,]Š œ)α―Ec`ϊύ0ydΆΡυΆΞ1Јΐ·σξ©kŸqH·ΊC8ΐ“ζ+Φgαμ»9λPΌ€.Ž™‡ω+α†c@dœ΄,Eδΐ(™Q›gα}zλ¦Φύλ~ΣrU¨#ΈΣEA–Ε†j(οš‹γˆμ%ͺH ΤΉŽCΟS0ƒΒOLΫ\Ž―ΗG_ͺυάΆ•`ΛVˆD"—§R©ίς ΓΟ>œ²₯8gΘX‘ώ%2i›Νλ“HK’ Ψ$Qσξ5u5ΧΞώέηΥz>RZ·~qsΣ!€s·ίA)žΒd ށyσ`ƌ‚σkjjο …BH)fΖ’ƒΞ’}φoύ„c3πW£]‚ι­δ?Ύm¨Ξ‹;.φ…uq„«xεΝYl^9£`Σc΄–˜†#,aXWM:ιιȌO8½Oj uκ°!ϋ₯i,ϊt”.‘ƒRR₯bi§Δζβ°²YΨYIšwI«ΤάvBΨγXυΪ»„F©χH$28•J}Ξ·†0RyyΏχ "ρ1(νU+ΰl΅NωΦ‡yΥ β~?ϋ½oίΎ_HΉpΗ.έtΗ|EάmΈQZJX°�ž~:ty*•ώ­‚3Ροœ Ϊ7Ÿ3σΓΔ½ζh˜σ$ŒθιΔuώ†έˆβ:ΒxawŸF(όaΘ¬c~ΟC?άC]·GΘ—_υΤԁΙώ{dσγΛƒΦϋu«³Η€ΌΚT§ϋa& �� �IDATj8„  `ΰϊ ¨?ϊ|χΈγ7ͺ;±μw2!VŽ1’ηG}΄-—…οPpTω=ϋŸΧνδxΙΓ‘«9u»ΊΆzςŠΧΏœχΔ]ύ#‰μ~ε•©Ω;,g’¬q­ˆάuςΝΐ’EΨO?½ΊΎΎρfΓh>βΈqγboΏύφ* b·ή0οie²’X:xK°ΓδΡdr΄›@ž€Ψ^±Πα$-Ύ{΄rxεΝχΩΏοσ€–.δݟŸGK@„ΊC§3›Δ!M“ΤWΏ""ΆGΠMζiχs'Δ±Υ‚’=³ί¦iN§Ÿn©}N§{ωȊ 5ΊŒι?vεcSŸΪ2›V“}=•JU›κ˜« 4=oΎόžy¦πΧ55uW«ΉΔ–+ων·ίNH);˜¦yβ‚/ν‡##1Ξ;ώx™Φ˜Κζrϋ€θ¬Χt),jŸΘ&)΅οmΖ˜€γ/<.’ŒfαΊ�‘‹άŽšσ-ωŒρ₯Δ±zνZΊ˜d―ΪώjΘΝoLpgΐ•γά4Ε{§Ÿ~ϊΎ<π@fg$r�gZ―¨ώŠgyςŠζΖΒ{Ν5W­o†)΄β΄šΘ—/‡_Zά~Ψa2kkλ―n«USmΫΈθ’‹Β¦i>qΟ?ΐά]©bϊ5::‘Ήuθ‚8(©ΑIKKΗηΎ-8β»:…�wκK=%/Ώώ6ϋŽΘE‹ηϋφ{εˆ+θ9q %―Όπ’wcμ6γМdΰι cΆ·_`SΤEc-ΛϋΐOBόNƒΠ/Ώόu‰DΝ΄)υ\Φ¬_ΪψΣ–-G‰LF^vτΡΗlώ;οΌΣΞd2Η 4(lš‘wΌŒΡpυίΘn·Είπ9†όΜG šŸgΥΥUΘΆΰ0 =pfIΫfXηs:wpΝΎž¨>Ε$u―p₯η¦γ7Ϊ­λ‚νΗ‘ΉyWΰέi¦΅w8³Ά‡„SnP·Χ„Γα{ήΫY₯ψφ€―DαpΨΨΊU|ν₯”Φ­ƒ[n νξ»3"“±Ο}ϊι<“œΫB>όσL&“ΩηΔO ›¦ωΞMχ‚1 NΉξ}hhκ΄ΤΫƒ€Φid6¬o,ˆλS[‹CͺΓΧ₯ŽΠΌπ―¨rg9œαƒ«!hύΪλάΊΚκ p;t&»Njsζ~Κ»ν�z=9~σW*FΫ 5œ;N}zn­ΔpΑοαΡ€βεt:}>ίSπu,³Χ¬i*θφƒ”j5Ψo~c>ς‡?€D2™ώih›ΆΛ΅ώρd,ΛΪηWΏϊ•FŸ}δ?}ƒk³ fkH'Tο©KwόΣ%π&qˆ˜†Γν•‚Gώz‡ Θ1ΐ�o,|’n–šhsӐB`m|ΒG$Ϋ„#πtί;;Η°ν«τU;GΎ4ZΒpμ―ΰžGxΟΆν¦N­^€Π₯”lά(wψ4‚”κ²Ϋn3ŸνΪυf3•²N‰Έ· |CpΣM7ΩΙdςHΛ²ΜX,vρ²΅‚Sΐά.ύ#Xϊ‰³Yzσ«ε4=ΦsύΌŸΘώΌqΉϋ­γˆφRS…Nζ•_Γ)ZΩ©.7}ιγžjκ{’‡HWπpΘl|)ωσύaΜn;�‡ΜΖΡλ£" [ίWίέ&ΒΓ/νxΎ0­)‡ =¦ΐΏ^ΰ…t:=φ›Xιφm‚―t©TŠ1cbςˆ#v ­K ‰όρβΕ]w~ΘΗΌΣ8,Λ’¨¨¨W:ώO&“j ζo§Β™G‚Hiκ΅K”RSΛqά5ΥΡ›v <ύ‘Τ·§Ι–ƒŒΓΰ=Γ”1Rβα2w‘‹Τίέ$στO7―ž_ρΑP΄—OM‘ή~γzώΫ>l'Ž<\o Ψ&”ο«N²άζύK­ρί‘8Zͺ+ ,Xƒ¦x)\ δΩςςύŸDD"lάHuS[ .ίuWδΝ—^­―—“w&"0M“ΖΖΖe™Lfh&“‘HδΘΊΆœs˜Γ‘ςpηӐ i$ ™σI“`Η“2V_’λ :£<ψ–ΞΉšΗHiL C6Mτχ€V γφ-ϋuέ ‚Πnό�fΞώ½Ί[΄°#p8/2O|Ϊ6Zσ†ΪχΩbu-Τƒ/kuΊp4WŽŒ £OUD.„°ξό9δα•½z•Όqϊι΅γσn €„dξΉΗx§€d—,]ϊeβ›VΡ·lΫζάsΟ =ϊθ£§744άjΫv¨{ʎ Ώωt)agUz]`KΝ!(Ωƒξ άlœc™ΘΥ tCΰΣΌo‘Ε­ΖάΪ·›Η.7#eΪ"<πΐÜ6yƎΔαJWν;_9€„:zLRλΗC&<υG8t‡C/GΖ€S―‚Η§«oΣ4―««;!oi'Φχ r]ΈζNoːEJuυο½χ³ :ο»rεΚΤw}ŠB]%}™qΧ]w`YΦο€”»I) €ς˜z&œqTΔ4ΒΟGΰψό’Ghί’~9Οƒ£λυ€ΰΛUkXόΑŸψαrΗβω£Ά„cζ0ιΗκ¬:!ΰ¬ΑS!ζmΖaΐ’υpΘΩ°xΉς2 γΣ²²²ΡΥΥΥ©<%ϊήCΎfΌδškΈ£5t*₯ΊΨοή{CσφΩgςΟ=χίΤχΡ¨a9KǏ_4gΜ«-Λ:+N—ͺΐp.<Ξώτέ„Ά-Χ•NA‰Y†�šΔ€zpx―K·|_Χ*„ΖΒdΪ'γ°·ΌΑaP*ΔΖ‘oΩυ$,­Η1s!όθ"X»)[GΗό�~yŒθ«)–†Σeš.ΎlMΒΏ^ƒ[οUΔνζΑ4Ν‡~θ¬Y³R_χ ΟΞ 9TΩ³gO?}ωτζθUJ΅Lφή{Ε‚αΓǏ|υΥ7M‡ώώA*₯„Β AƒzmΪ΄ιg›7o>YQ&₯τ.1ΪΞ:ΨϊuιχΌju;©šΊξ QEV] ΎηHΌΰΣυΦŠώΫΖ!A†•4νψΫ30νMhLz)Ψ€‘kHξ5L V±m©Λ§9 Ϋ0ŒmΫώ™mΫo~ΟΆ@N-tνΪuΨΩg―škη1Ό»~ο½bYMMtx"‘žϊ? ©TŠ#<2φΞ;οΡΠΠpf*•Ϊ0Τζ¦Ό&ŒQΗ%ο?ͺ:€H€΄Υ‰3ϊ84ΒшΛ£yhPc&>Ιϊ γa₯ω½9ώϋ6Όρ6|ΌΠW}6@(Z-₯|hĈΞž={ΑδΙ“{½ρΖS€ΓΣιτ(!D™mg{¦a™βββε555o=3vμΨiΣ§O·—%wSCθΗstΕπαOm nl1 Έ~c΅mwΎ|ωςν•Ω<d2lΫζ7ΏωMΡ-·ά2NqJCCΓ1BˆsΜ²78zνCΑΔΡ0|μ;Œ°Θ4# 1]Π ΤyzΑς y€oKn:ȈJoρJ˜υΌχ9Όχ!|Ί’)ΏΔ5 )%αpψΒΒΒ'ž«――_fš¦έœτM&“!άΝH)I§ΣD£m9εςΦμ 7 m[5iΒίώ&ͺ“Ιͺ‘_}΅|υwɊΎ³A"‘ΐ­ΏC9€bώόω»-[Άμ:μΏyσζQΆm‡„†Τ)ƒ,‘v,‡₯PΥϊυ„Α½ ²#τθέ« ²b`‡U$!Kq₯3Ξ΅mub•χ³ ν<“iE˜ξ―¦6TCc–­„Ο—ΑΚ•°₯V]Ξθέ£«εnžΨΆ@q8žQTT4oΣ¦M‹“I₯›·θ7 9„.₯4.»L€KJ0~XlY·`ψΦ­uΛΫΗ:_/€R)"‘‰D˜?>ϋμ³O%pμ^{5άε*ιΤsο¦s ¦ξ·ξηBSΝœ†!ί¬Akΐ^}β ±eέΊψq›6UΏ‹ΕΎυΪ!‘'“I£{χψ†ΪΪΘΘΖΖΖv†ΑΆmΚΛΛGνΊkΝΜ)ShωDήoάM=/½$}Ύφ˜cŽΉύ‘‡Ωiχq―B^*v₯K;|s ₯€°°°G·nŸt’,²ν6Ž£ΏARisηb?ΌρDiiεΧ­[—h ;/΄·Μ· ©TŠ=zT†Γλ?;σL»SΎΩŽ Φ­ƒGεγH€Γ6lΨΈΈΈΏΠήJί"TUUΕ2™ s.Έΐ΄#θ₯ΝΦτV¦™JΑ3Ο[–. ύ΄ΎΎώι};I;|ύΠNθί\ύuΖm·έψωη[ϋΗbm'Nw6DX³FΨK—Β_Θκ]v‘ς€Ά?RB(/Ώ,˜3§ΰ†>ϊθϊΎ}ϋΩνγξο.΄ϊ7ΆmF>ηœτΙΝΈ+#Ψ²EΨσηKcαB#SWWπκš5 ΟΗγ±7Ǐ?ο?ω/ϋν7‘ ’bζΦ‘#·O’̟Σ¦…§uθΠνΗ .ZίΎ^βϋν„ώ ΐ₯KάtIι_φpξΑΡ§°LS©Η‹,^,_~i}^[š …ŸΩ}χέΏφΪku‘PΘN&“9σΟ‘P¨σI'eΦτξέφ|ΉΣg55πψγ,kl,=zσζΝΆKξο΄ϊΧRJJK‹/8θ Ί» ‚tΦ¬|ώΉL,Yb¬nh=g±”––|ΊbΕΚυ©TʐRΪ­]LΗGœuVγGεεmΝ—Ϊ«πμ³’vαΒπωd2™φE,ίch'τ― &NœXτΦ[o}‹7M³π₯ΊΊΊiόηc΅‡zΈ‡νT*΅Ν„ε\ΎpπWπ|k“p5ˆ™3ΙΌρ†qη ACυα‡%Ϊ₯χ΄ϊΧωTνν)%‘Hψœ+ΘάΫ5 XΌXπτΣαWGŽsτ›oΎ΅₯}JμΪ[ό;RJŠŠ o:΅ajKΛSkjΰ©§BΛV―ζ„d2ωžΉCoζh‡ο΄ϊwB!ώyυΥΫάϊτόGd,ˆ_XSSϋ'!νήΠNθί(,δέ©SΩ+x€q8 3gΒ+―˜χΠβ?ώ4ΡNάν„vBίΙ!NΣΉsxΙ…²’{εJψχΏC³jkΝ‰Δφqw;4ν½c'† Ζ+WΎ΅ω”Sd ¨#΄\l\»6zB}}ύΛν’»Ϊα;{ο½whΤ(Ρxν΅Θ±cΖ²²’K<ςˆ½³οzi‡vh‡ΦΑATPY)ρxθαξέ»Έ‡QΆC;l+΄«ξνΠν°Σ”)%¬Ί;fΧ~Ε»w–΅U’X‘Ι JφXOΝ§ΥΦΖΩ)³Ηi"e©Πΰ›l)%ν‹ΐΪαΪz;΄C;|£ „΅…X°_²ώX2ΥC—ή#Œ¬mΩϊόΔ2’+Ύ‘žD΄˜ejVΓ—Ψ΅Ÿ#“Υ~ [‚-‘ΆΜ4.Η(;ψΣΥΒhίtΩ{ΠήλΫ‘ΪαkΫN#6? koΫ‹ωϋά%ŒΨ()LCΘŒ¨nάR ­4φƒBDΊ–‰‚ˆ’QH†ϊΕΘΤFΘlU§—;η’J)‘™†΅Δ:NzK>a.₯€ζŽhD„£}dbkΚ¬˜ υž°66ώξŒD΄κΫα{ν½Ϊ‘ΎVΛ/‰°`ί›d¨ό †‡„YV-€V€LΩ2³qΐ\ΰE5Ά w±…tŒˆ©j¨ϋΩΈ¬„#ΜQO;]'νΖΙρI³·θ£ό EΦΏAa…!­΅€>Fjώ£ΆlH=W}}δ”²«u†Ω.ΨΫα» ν½·Ϊ‘Ύ6«n¨€ρ‹EξωsQvDH”Ρ~ S™�a μΊ“YV$ŒΔzΫ@v2SLF6.‡Lƒ#Δ՝ΩRJμtΝ…±Γ6ΜkN˜ uSh/€T—ž: ">Β(5·Φά^0^Zν ΣΪα» ν½Ϊ‘ΎVΪ αƒ.˜Ε݈…θ�1Θ¬‡ΜF�š$?Ή›΄ΣΩΘM`§—Κτdz3$Χ!Σ[Ά₯Lμ FθvκC³σ!-Μ™K+cˆHΗ‘`ͺϋ@]s=J9†�Γ~rΛ3“’8»Ί{Ξ=Ψ‹eεFPTnDEEQγγ•x¨IԘhΤ$jŒΖσS£ρŠ_cŒρˆΔ[Q’xα‚€€ΛΉμξμ5gwΥ™™Ω]ŽΔzσfΊ»Ί««gΆ?ύ<υΤSύχήΡhz-荦w |»Uc–‘Μ> LP”Σ„R1TΒVΒ*E‰TγΏΣχ#sΨΟ£Ψα…Δ ξŠ9N‘dΪΥ€”2ήr£wŸϋΊ5«γ‹ώμ%;ε€έυ*υŽJM%X₯’Ρ³”΄{υ²h4½…tFΣ+( „ŠYA0|(JΩ  $"•MIΐ:–•—}#%¦R& ήψœŠ7H’λΑn%έHχ”uνDBΦΰS_L πy8qo_³†œHΖώ©Ο’Γb7„?L‘#δ4_MτW£ΡτΘΘFTΒJΊcd…‰‘t›«δ”`%Jοξ9R91ͺϋρϊM*Άe·ƒ”™b,Q|δ™ψ§Fax»> aJΙ_ ,#+˜.#Jεž.ΎšQ‰§Ρμ€hAΧh4½‚ax%ESW([Šl$?Κ(”§EάΑζΖ3rΕU^00Gύ.N’εTΌμφdω䜠Jΰϋ •θς¦€Mλ'aGΉ~͟u:D]Κ΅ ω„aϊt>FΝW-荦ΧPUg΅§ωβ«ΑiαC˜• ‚ DΆ ])”ŒRυzΫyη€b””8κ6βQμ0*•χX%#άα¨κbF2εΨ΄έ7p”πχ TλΌ£]�8”]τΕΪήΏ*Mο ]£Ρτ€*?α·*όΡZbKAΕQVΚ*Μτπ1RΒ¬ΚŽWρΠμΧ‡­C>_ϋ ND",AΒ² ₯ΊTŽMλ_«'#β`˜AςXε™/UQ£r―„Nž©ω £]£ΡτΒ0εΗΗ…ΣςMΪζGEτSw½ΩΧΒ–vy'ίΑyαΫKΕk/Τξ%œr΅Š7Ά!¨T”»”aWΒΣΙ=”CΫ}e ΣxaΣyα³^QξJ!p~WzΞ››„ιΩΧG£Ω–θΗQFΣλ(ιΐgΣφΗͺ~(”ς@d *Άε$Ι|μn^vŽL/o~\)σm„F%₯»]JT<ΌΦͺ˜4Π{Θ³€«ρνν·»00¬Z€D9Ι²Ι}Θ©GI 1ω™wΜΡγ‚G?†o_)fΛΡ‚ΡhΆ JJψlίέ•(z£’BΩH„PN<ΨJp’οΚψ΄Ψ'Z9v[jTMYΰΤ½r&†y£fE€»“ΈdŠ{Β‰#½γΚ.kω¬«LsΝW-θf»‘d΅τ[^[σψΒ±³,θΑΝ°¬Ξ–΅+ΘεH‰ΒP9YΗΜk₯+”γΨ**ΏY~EόY‘‡žkv΄ k4šνŽR6ςέχΑ(ϊ·Rfu'λ<eY+9‚œϋžOμ³Ά92™ˆ&£¬-γ2jQ~yδeav3Ž]£ωŠ ]£Ρμ0€Œ!ίrVί”Α|’άΡ§žiΉπ|ϋΊ©b“Η‰'VΘ°1΅όηΡMΒΠ·@Νƒφ3i4š†aψ0¦­}\ΤΜ-"ή|g-KF½“zOm#+j=sψ[ηαi$ηLWmΚρmφέmDΕU1-ζš]ύ‹Φh4; Nθ]œGž€QzΒ(Νκ3w²έςJ*D*@.m§ΆeΈνγφ|Tό΄’ΖWΊ―\³ £]£Ρμt(iρ;Μ‡VM*ΈM₯#ήσ»ά•T(ΫΆ‰'žUR^QzAϋ"₯ =Ύ\σ5@ ΊF£Ω©H&‚ρ !*’φΔ mKϊώΕF΄‘sp[*bέ–¨Xπgf@ώ!8η‹6=MσuD ΊF£ΩiR"„°”*₯†~}(θ1F SFπΤύ Ϛη17mD6φ'όώLZ_˜Bb­"KΌU:«tϊ°η†u;?ΊF³+’]£Ρμ4(₯ ₯T1P»Έ=ϊ+ΛcKΈ·ͺT<œƒΒYλΌ·θ»’‹£$6$H8‰{Η΅Œ;ΛπιΎrΝΧ-θf§@)e�^₯Τ€πσν36%œ;ΕαΓƒ@d:J!•Β"JΡΎ*Nι5MΨo†IΤ'ˆ'βηOŒLΌΓπhQΧ|½Π‚Ρhv8©~s Β©wΖ4ήΪψ€o΄o€YmΰΑ4@ˆ΄ §,u[)ΒRθ8¬Ϋξk‘υq#ξLšπaiQΧ|}Π‚Ρhv8RJCQͺ5Έαϊ†›ΜJs–5ΘΒS  hgα‹Ž™Vq@XJ‡υΆΝ¦„Mk£έxΐcρϋύt`Θ4u€œζ끡£O@£Ρ|½IΊΪύ(ͺšοm>ƒYf΅‰α7©―„„βlWΨχ4Iτ€μ AΉiΊx₯p*©xγω˜υLΓ€’Σ|-Πώ(F³ΓR’”²”nl‰OŒlJόΤ3ΔƒQlΈJτ!ΊNv}dS6ΟΖχ₯ƒ�nΠ\Π0¨0MϊZ妉§ΏgΖ«Χ;RκϋœζkvΉk4š‚r}η†RͺΕ€E‘θsE†1Έβ΅¦%fΖνI‘u·Jξ‹’ Η‚Φέ-’• G"%υΆνΊίG²<φνΛ¦|ά4 Ή=Ϋ§Ρlo΄ k4šBΚΥ”ͺYΪύ…0Ξ  ~hcΆ(Iρ$Cάέw•P¨˜ΒispZ’―6ΫQlœh±κ@/ ^IΘvhŽΫρš5jσ'υ_aι 9Ν.ŒtF³έI&ρ*EΥΪ¦Ψa-u_‰i!HzΡ17HKœQ— β Ω&±7ΩΨλlβuqλ؍6N«ƒŒK€|ElιΠ4dΥΑΎE{‡¬ISξΨ-jjQΧμ’θ 8F³]Ιp΅e\U5›ςΖ"Σ4,‘o\Ί]mΧΐ™΅V"Ϋ%Ξz‡ψΚ8ρeqβ«γ$6&pZœ˜ƒ²RΉs¨+’ŸQ”Όk³η»Ρ1qΛώύ†±%ίΫΑΝΧhz m‘k4šνJ2œ¨ωβ“φ_¨Ρή3ƒBΈΦENFΈt[bΎΕ_Ρ/b$Φ$\7{άA:pηώ“d―—B·βgάvπιLrš]-θf»!₯°’ͺερΦ"σΒ™ΗYr?ϊf”)ζ ₯h—’γΠδ84I +ŒόaEoŐ²{!Ο\'…lsΞΤι Σ-κš] νrΧh4Ϋ…dΏΉ"(c²"όRϋυή1^ΛΣ¨P$ˆMHNqͺˆ)E›”49ŽC«γUŠΔƒwŸͺΔ@»€φΎ6ίъ΅ΞNoK‘τŒΕ„ωΧͺVνθ¨wΝ.…ΆΠ5Νv!iϋκϊΛλl ½»{1Κ „%ΐDΖ{H!ͺ­I!9mRS p’‚Ÿυΐ6@JEΩ›Qύ£•š§Ϋa‰ ¨«=!9Τ9τ{ΒΠ·@Νƒώ5k4š^'ΓΥ^Φφ\ΫδΆ§ΫώνŸδ·¬ αwƒα”T¨¨"ͺ$kfxhT˜·KI<Ω—ξΠΡ―^θ=υY*p$Lπl°©x?Βΐ'[ιχRžζ1αœrhβ°¦v½kv ΄ k4š^G)εΊΪγrΐ†lxΨ7Ζ7ή3ΔƒQb€ HQ‰³Ρ!Ύ8Nτƒ(Ν¦dџJ‰T 7+βk™§­τŒuΉeΫ3Λ+EΒ₯ŸD§ύΏYΓ†uΝWύ+Φh4½Jr˜šͺμ‹ Ρsβ?,oV›ˆ"αށ$¨¨Βِσχ£Δ—ΖρΎcά¨L΄ώw‡ΑIΞ²¦’³³AΗ lddKEΚ§–έ™άΑv©ύLA04ΒσΠO³’xϋ] ¦χΠΊF£ι5’vDYλΚΨΨ΅ς₯’€ix…ΐ·ΨΖά(QQ…]o4Nta”ψ’8Ξ&Sιμpιήο€’ξT?_\TLx€‰” )`©“ΗŠΟ΅τΔνΏέΏηΰΣ΄•ωͺ£]£ΡτIλ8¨bͺζσΦθÁ>ΦdŸ˜I+ZΪ σ?œ·’DίKŠy½+ζ) [ IΓ’4LσςΕ™ΕΤοη#Ze μnDœlΑ·©‹}ο}†ίkθ|0ZΠ5M―!₯΄@T|Ρω,6/2’ι]…Ϋ/—’V)i ;”ž± ο‹Qd2W¨,1ο~¬ΉJξ#QBΌ—‡ϊ‰>&ωhγ₯eˆ‡H©Tξ€.Iφ· ˆ&€½[άγ—Σ†,3uœζ+ŠtFΣ+$3Β·Gεπ:•ψ_±eψ}†‘κ6'mŽC(™8&,%q©θu Υ··»!κΠ­ w•H&ΏθKχ „[*Viι₯±RΌ;½¬tΪΨΗλωΣ5_I΄ k4šmN]ξEQ΅φœ΅Χ{†{Οδ¬ŒJ$’IcBŽCsΞΠ4ιΊΑρœ`τΩ!ΌKνςά½˜φόϋΩϋΧG6ω3ΣkξΨ ¨ΡlZΠ5Ν6%Υ.) έΪ?ςNδ_ώΙ~ΛΣίƒ*„'xhχ)BIλΌ]JJaθγvτy1Κn—†π¬r6Λ*ο”Ο½»e!eΌ2>ύΨυΗΎaθYΩ4_1΄ k4šmŠ”*GU­;{έ“Ύ=|γ½#Όˆ" KμU6ν_ΔX}^ζA‚xf8₯p„ΘŸ4F)Cΰ]‘`Δoš©z&ŒŠv/=΅ΤSŸΣY­ϊͺ)Η¬>f£αΥ’ωκ ]£Ρl3Rv%UΩ†‹6œmψŒλ}{ω0«LTB‘ψ2A죇ͺ{�� �IDATΡ’$VΪ8RRwKBΗ²‡Ÿ)……ΚHξ:ŠCξn¦γmMRm½ >H<~lλ±Ηk+]σUB ΊF£ΩfH) (nϋoΫπ–Ώ·ΌβŸδ/σ ς€φz›Ψ‡1b cΔ—ΗqB$’; EΛα>VήΪ‡X΅‘%؝ςΆwυΨ‚ŸΗ©}Ό…šη[)ϊ<1‰³}ιJ(bžΨχOl?ρvαΡ·IΝWύKΥh4Ϋ„΄u([Ύ2|OΙΛ±£ό>£Θΐ©wˆ-Ž}7J|Y§Ρs₯ά‘iΠ1LM˜ŠugYyE1‰£’Ιc(œ·½ΛρζJα(HψΚV₯ί‚6*ίSΊ$JpM3d2ύ` QΨŽ:~9α„φγ>3 $§ΩωΡ‚ΡhΆ Ιaj₯kWDfΗϊ›<†ε‰‚ω\˜ψ;1bD‰/Žγ48ΘΈD¨ŽΫOJΜSŸΣ’MGxωόŠRZΗXn‘‘—=ι–ϛǝœόνδ ΈK–‘2ιΰ°„;K[}lΕΟEχόφ%{F=ν~ΧμάhAΧh4[M2#œ?–U_FγΟωJΜ½ΌB °”΄48ψΞ©Ηx)ŠŠw$ŽI‘k₯ηληVHœbXwB€ε”Π:ΒBΩyRΏφdς{Ύm€¨‹ήώΜ΄Qί7…tΝ΍tF³U$ΕάJWωdέδOήZ’ΙLp-R•’D\Q~U3}noCΡYΘΣΗμ¦―;΅Œ!iΫέCέ±AVWLλ"*]7½θΊ―=eΡ§—ιU/˜^ ωΐ™γž5uΎwΝNŒtF³UH) !„?Ό>>|]PώΧο7˜BSŠVΗ‘MJΒ©qζΙώlΗ�kQžί„U'ΣΆz¦ΐoΙXs‰r3ΐym#,6L °~ §h«4Q€-‘dΈκ DΧgΊργ§ξO·NϊΙOΖo΄tjXΝNŠtF³U(₯,₯TΕΊ3Φ]!O,ΊΨ8<HE»”΄9₯H€‚ΨςيŠΏΆS{u+’έuΔoχĚO-BzρRA{•IhOυΓύlά3@γ(νU1Ÿ@ 29DN ΥͺπγΧρ{ϊ©#τ.š-θf‹QJ(‚ν/ΆoΊ­ιο^CيΆIρ%™WΌe†°η ́ΎχΆ3θ¦VŒM))ήΆι]{V·^‘P*υ e„Θ§‡Οό›ŸΩΡ‚ΡhΆˆTŠW%UΩ—‡y—§Φs,°λlΛΨλ„χΣπϋ œΧ΅• ._VΈ΄«ŠίŠ1όκ&Šί‰γ¨|²½ε™βΆd?ΗrΝζ”“–ž΄ΒπkQΧμ\hAΧh4[„RΚ@\σ5Ψ«νgΜ*ΣpšμΥ6v½Š(ΙώπΑ&XAΫ!^wΪR:¬τά ΅NΓΞ蘰₯ίZ|{3₯‰N‰b6'½λΦμ—π&^?-rΪtCχ₯kv2΄ k4š-BIe(Gy—οΆόfsΌ²N£ƒ IT¬CΜSΈoŠπa>κn+#>ΐΔ‘9χ|ΡθδFŸ»3«:(*_ 3μΞ&Κί §‡°mk|§υBΔ/=½ωτί™pF³σ ]£ΡlR*γΓPψBλΉΘ-ή‹ 2.έtIWtŒ+Ο–& h=ΤΗͺίυ!2ΨtΠDΆ₯ž7κœ<}π l D›€οKm z,DίWΪ1ΩΙUΏeΑtΩλαĝ"gΚ™‘3?ύ隝-θf‹ψθ³–*§Ώω‘΄ x~ڈ'\>aοXEtw“U—•°αx*Ρ‘0¦«Μo…ΖŽ»Λΰ…m‚΅Ρ‘lq˜ώmaΰKΝ­ŽαΘΤ±³γκ{jΙΫΒ^4ϋ…Ω{Φ\ƒuΝΞ€tF³ΩH)…›ΒΧ%ΖeŽTFښN€κ&‚jGdΉάS€„=ίrZ0½’ЁV\RJγT/*™š5od<9yΫ3—Ι3T.#7ΌmΈΛF»ƒoS‚β*> S²:JΙϊ(ΑU1ό›b©@Jχ₯\A—B3םΎιΜ_ψŠ<½z½5šž ]£ΡlR*–|Ω>2Z)ήS‚Ό"« π—VJBD 3+\Αγ"Σοβ–€}€Ιί+aνQEΔϊˆξEΎΠ.™nό|eΘqν+–|Λ?κ(9tAστgΏ3ι EN³£Ρ‚Ρh6‹5’l0νŒ ψN‡Ψ加ΒIfc«ϊ}§οGv—ΒΎΉΓΘπ(ZGY¬<©„5GΡ6ΐr£ζWz^k=_t}Wοtε€xK|ΕO:{Ÿ>w―°GGΎkv ZΠ5M‘Άbωο7Žj›X"†ZcΛ‘“f ’tϋ²ϋάΣNυ―Z0$δτ­oNvή~m‘@I„) φ²κ˜ΦO Έ›h™rά΄―Ži±Ο+ήtαΟέΗ΅φ₯w]τξ—ΖŒ8Ώͺ*¨³ΘivZΠ5M‘ ΙβςΕνΖΙΞq’wU!½’ΓυGΠ;ΉΐHϊήΪJΝοΫ­nϊΆ#ήυΎ$αƒΖq~֏ R?>@γP‘Α^"}L¦�GΉcε•BΚδ”ͺ©σΟM„ qάνâßϊΦψ΅•ΩQhAΧh4=BF%Ÿ?έΧTζkB ―k]Cό%„UŽcε±r τQ§3Ε%·•=eθU!¬:'-ΓΫ"½λζν§’ύψξγ…ξ[μ ΔJ "₯‰€A, ˆϋ l ’CΩb‰•‡VVν}Θ?g΄™^=>]³ύΡ‚ΡhzĚ ΧX‘?†ž1€1+s}Z؏ Ί»ιΩ3˜ΡΩŸ)θιώμ€[ή³Κ¦φO-ΤάߊŒηŸy­7Σ»nΝƒÄύρδwOώaί‰}·σ·£ΡhAΧh4=@:’Εύ%κΕ“B‰.|Κ {ŒEΓ}UDχ°²ζοvb–¬χ䴦όŸ'¨½³™ώΆ’Ϊς9·―hwU§ƒƒ ͺCΞk9οUΣVΊfϋ’]³E8ŽΓμΩ³½εεες‘‡²ΗAΗ£ΗγξŠ|yΜ—VΛΣ-ο)Ζg&† $Œ,h9£ˆϊ_υΑ ŠΌtǐΣيw”Β1@4KϊΎΠΞΰΏ6QΊ0‚Œž?½§’½5ΉλVbYΕ^Sζ,œΪΎί’ζλŽtΝ3tθPΊuλφM$—†qPi)qΗ±—ΪΆχu―7ψJssΛG§žzκ¦ϋοΏί6MSΪΆeY;ϊ΄5›‰t€±ΈtρI",Da@φΠ³”°g’™,F�ͺXΠp~λ\‚γΛ±Φ3ΝΊφN)`SCγ„BΕε SϋTˆ~/Άb5Ψ(Gm3k~sχ‹c·_ΊπϋΊ/]³=Ρ‚Ω&$ ΎύοχάsΟ(ΣδGΓ†qΒώϋ;C†@Cƒ+V(VΡPΘ»’Ύή~9(~Ν0ΔΒΓŸUχ·Ώύέ–RJ�―Χ»£›’Ιΐq$±/ΦRObuUS΅yO+…n)+½³΅.²Jα…ϊΣƒ¬ωq1Ρ# ¦ΗΰθΒ}ŸΚ§Ά)Ž’xy”/4SσJ eK"X Ά�ΧMŽχ­qέKCΪN?ηπϊαΛZΤ5Ϋ -θš^!ceeeαpψΌšσœ}χM έcπxά šυυΘU«+Wb¬[Ηg--ζ|Ÿ―θ•––ΦχΟ8γ΄wί}oT”R[ψΫιH>\Ρφ£ΦΊ Δζy›0ΩNWIbr…<Σ=Ÿ½N(XωΣ֟ΐ± ωΞ;œΏδ‹ͺ—©„0>c@puŒΟ"T,k§μσ0}–DnŒβmN Βa;(‘ΖFg«?΅JHwͺW΄V±΄~Ϊ )·όσ›-Ϋς;Ρh ‘]³]ˆΕbx<fΞ<ΤϊλoœΨηOžΜ>“&)JJΐq\qPI™4lB!ΑκՊ•+…lh𨫋ΏΟ+**zwΚ”ΙŸ<ώψ6 ΗΑησνφνͺ,zΎ±:>Ιχžπ‹ΪΤέB*…γ€uCίMΝ(»πώΩχΞŸkε‚$ZkPwN1u§­4PΆJsΟGΟ²»υXψ;₯…u·©Œ:ΡρΩ} I~@!Tκsrƒ!P‘ψ_?š°Η\=6]³=Π‚ΩaΨΆΝ±ΗmΌπΒK3,ΛΉhχέεμύφSVΏ~`ΫŸKΰ77ΓΊuB\‰QWΗ² ŒOόώβWZ[[άtΣo^tΡ%qΣ4₯γ8ΪΒί €T,\Ρϊ+s u% C%/|z˜YR(—’Ÿ½ Q/σΊά!ΰœ{¬ξέΪX’¦©^Ύ<©„ΊcЉ—ˆΛŽ„/τΠjΟί­εŸοXλέvt}uΐ6>i:bΡ±S^…~ΠΝ6BΒ4; Žγpύ5.Ίθβέc±πEƒΛοx ΑαΓU—ŸK¦ΰ+νν°~=¬^-δΪ΅ήΊeΛb‹‚ΑβΧjjϊ½1rδΘO?ύŒ-„Žγθ>ό$Q|9―₯Ίq‚Ήά°ŒβԝBΡE?wDQtS %ΏkF)Ρεd,έυCξΧv“Ύ $‘&υϊYud)λg‘π ˆΚΒyά3>o‘υž±.+ P©.ž>A΅%–Nxyγ”Ώδ`νzΧτ*ZΠ5;-RJ€” T; j:½’"ώύ)S0v¬2 £λϋhW€?59V$›6!W¬\ΙϊuλŒ†α}Ή΅5ςζΜ™‡-¨¬¬l{θ‘Ψ‰DΒBH₯Τ./όR*>ΉψΛ_Ιk+―Δ# !:ΌΙέυk;�%U—6Rτο(Ψ�ΩAr[hΦ“‡�H’} Ι¦ ~ΦPΒ†ΙAZϋHψ Χ}2ϊΤ•Β‘²³hCg|F;URΤΣ??!:~X©ΟB ”ΣΐXάτ»Ž˜τSΣ4ΆYχh4 €eY˜¦I"‘Hoσz½H)I$$γM ΫͺjΝNŠtΝW†”Λwΐ€₯³ƒΑψγΖ±Χ>ϋ(«¨Θ½‡n©ΘwΤΡρYχCCƒΈWWg„V­rV |Ωο/žΧςξΙ'Ÿάxϋν·G ΓΔγρΗρϋύ[ΩΪ‡ŒK>νiΡd,J”Ι9EΨ·W)P’€k:―‚#@΅K*_+UiOηm‡ΝŸ]-w@%JuΌΗ{ΌΟϋ,g9ν΄%ŠέiξυΌ$Xx<˜�fq1Αέw§ΟώϋS2m‡‚ι!a€m*lά§Hφ=₯0…sπ‡β6Ε ΤΗ¨\ΪBεΝτY܊§95¬θτKW_Άΐτuυžc!‡z¨wΑ‚~ΏŸD"1^)5,‰Œ5M³Ϊ4Νbΐ²mΫ, ΥYoΆΗγ±₯”ρD"Ρ,-//_‹Ε>οΫ·ολννν«ίx㍖αΓ‡KΓ0Rξςͺ»:ZΠ5_YRΏΫn»yλλλχM$Ϊ~<z΄<lύU°Ί:[œ·m½ξ{Jπ₯„¦&δ_V­"Όq£YΧΦfΌ‹©y••οN˜0~ν³Οώ'œΊAομΙwd\²¨tΡ-fΜΌ8₯…J(Τ,?ρ{«qΚD†˜ε-#!ψFŒΏn!ψN)»r―g[θ‹YΜγ<Ξ|ζ"”%Τ"i χιΣ‡ςςrϊφνΛθΡ£=z4ΕΕΕ”••₯_�‘PˆζζfB‘mmm,Y²„%K–°qγFšššhnnN3]‚bŠΩ›½9˜ƒΒP γήƒ„3ώΔG΅‡ΦN9ω±“γ–Ώ#–#5"dĈΕ cc±Ψ₯ΤQΆmBJ)#·–eQ^^NII Α`0ύ*))!ΣΦΦF8NΏB‘­­­YΗH}έB{½ήχc±Ψƒeee9ηœsVίxγΠsΌ₯Π‚ΩeHe«ϋϋί4ΌςΚαλΦ­ύѐ!κ€ύφ“UΓ‡gyB{ά‡Σtλkjr]ϊ«V Ήv­ͺ‹Dό―z<Εσ|ο{ηόӟn†!ΗΑΆν­o'l–X6RΦΙχ„₯K(Tƒπ=}‰θλθ―Ξ싦λ9Ζ;R»Ί|εΓν Έ½™ΐ§q€μ°ά_αξΰΎΰ‹,ρφϋύŒ?ž“N:‰O<‘šš Γ 7θ,SΈ2·)₯ς.«œ/O)…”’7ςΘ#ππΓσΑ€]έΰŠ|?ϊq$G2‘‰έ>˜DθΟΎ³β;Ώ2x•••Βαπ™ρxόϋ@M¦p{<ƌΓQGΕa‡ΖΎϋξ‹ΗγAΡ©ΉmN{>R²~ύz^~ωež~ϊiζΝ›Η† ²`„°…―7ξ½χή―.\Έ0ϋvnτ·£Ω*R7·δ λqή4M<χFΗS›ε”Rι •R² fΟ>œ@ `†α΅mΫkY–WJιUJz•RήΆΆvοόω³"‘ˆAύθυz½%%%~  …~TVζπoΐˆΫτ2l6™{†--Θ•+1V­rγFkνƍjΎγX―y<Φ‚™3ϋμ‘GkKυ…φ¦…_F™ρ!ήΣNϋι7g{Κ½>χτ²"~„Ÿζ[*°š…£Γστ΅η'ήήβ™[ofήνwβ(']ߐ!C8χάs9ηœs¨ͺͺJ―Ο―|b–O€2Ό;,΄½±±‘»οΎ›;ξΈƒ•+W¦ΧLg:³™_'AΒ·pKέZ֎JοcŒ7ŽσΞ;9sζ  žΗΆjGΎς©γ,Z΄ˆΫn»‡~˜P(+{mΤ4ΝΏ”––ή΄iΣ¦:ΣΤ sv6΄ οŒjI ˜Χλ z<ΏΗcωMΣ Z–0 Γο8N°nπ–iβ΅,ΓλσY~―Χ²Ό^Σςω,#iυ:NάkšψM“Μw―aΰ7 ΌB`x½,‹τ{Ζg™ϊ{7 WΈ, L#U.ΉŒa(in9Λrί Γ4;zζBO•Ι|Ο]—r•οΜd ΎΠkΧ Ήjƚ5Τ54xίχωJηΥΧΧΏuΣMΏ]xΙ%?omz]0žα™‘»³ϋ’1χ<ΘCžΉœεςΒ§iψU‰j”υεrΟ`¦€δ?ϊώνo‰‡Γ€δuόρΗsν΅Χ²Ϋn»ΉΗοΖ’ΞΆΝηάν[RNJ+Έκͺ«xδ‘GΑi<Μb3˜‘%κ«XΕS΅Oqωε—σέο~ŸΟ—{G·#· ΐ’%KΈζškxτΡGqœτƒVά0Œ{'L˜πΣwί}·E[ξ;ϊ[ΨˆΕb<ωδ“ΖΉηž;8ξkκπ²²ΨŒ!CΔΰ#`Θ…ίοŽν.δr֏_-2#υ…€pΈch^]Ήqυjω‰RžΧ,ΛzkζΜCίz챡I)Ι‘o€ίΖβωm9Χn<Κ|.šJ–ΟBΟ}ο(¬ˆξηaΓ5e΄νλA9€Γ€ΔΌ₯ΎžίŸ~:Λή~;½Ϋ‘GΙm·έΖΠ‘CέΓtσ£,δ:Οόœ+\›+<[RΗκΥ«ωя~ΔΏώυ―τ~ƒΔ\ζRDΆ°9μφΓ{ΖX Σΐ4ΝNτ‘ΉεκλλΉςΚ+ΉοΎϋΡσBˆυJ©9±XμeΨiΗ’oγ»0Žγ ”2.Έΰήxcή€eΛ–WʞٿΏη¨ͺͺΨΰQ£„5l˜’EE)±-ξ»Ή‚‰€#υ/ΎPW―fi,Ζ|₯˜'σQ"ϊβoνίwƞΟHSxEL`^ή€qWkzΌZ>+=]_AKd™ αŒ k/(bmhΏ>αx6}ω%�EEEάsΟ=œx≝¬ΤBŸά}Ί²D·GJ){μ1Ξ:λ¬t@ZeœΝΩτ­¬ζ;oΞ‘€ –ΗΒ²¬t@‘X€ՎBu|ϊι§}τΡι.!DΤ4Ν+Ξ;οΌ?άvΫmR[νΫ}ΕΏ†€°*₯˜7οuγΫί>ΉΚqμ1±Xδp'2{Π cΤπα?b„2JJς»¬5_mr»βqhj‚•+ ‘2†°χ”˜<uγΓ“¨ϊ)¨†¬Ύΰ.ΗdΥ…"DˆΉΜe K�¨©©αΙ'ŸdΚ”)Ισθάœ».΅>·|OΚdnΫήu�Όχή{{챬Y³�Ο¨‘œtΫ½άΌχ,Ÿ―Χ‹ΗγΑ4ΝN~;K; •ijjβτΣOη™gžI«M)u–Οηϋg,C³ύΠ·fM'‰†aπη?ίΞuΧ]_fΫ‰Q--Ν³JJŒ#ϊφ΅G©ͺ†W²Όά_Kzή΄Πο`ςj™ίIκ³HFϋKΩρƒm 6Δ’ŠΦ6hk…h$^bqλΦϋ 5›”5σ‹ψΟΩ‡}άγεΈί310Έ‘Ήϋ�(--εΑδΘ#Μ8―ΞBΡΡ¦όλSΫRϋηΫ§ΠϋŽͺΰωηŸη”SN‘©© €SO=•λ»Ž`0H ΐλυv²ΦwΆvZίΠΠΐ‘GΙ‚ Ru­‡„B‘z|ϋφAί‚5=&cš&RJ>όp‘1sζ,οΐ†ώωYBΨG dŽ>ά©6L}ϋΊnj${ω*²9βš*―”;IM"αΎlΫ}F uϋΙ[š!‘, $86H”•@ίrχUV Ε~(+ƒ>•P]}Kά—Ολ;…Ά04…Ό|£vBΊ_4ur"ωžΚͺ–ŠP— ’’Λρ=†yϋΫλ¨γ8Ž£Χέ|φΩgsηwμ+ΞG‘ν=u5οŒu(₯ψαȟόg”RσΨc1vμX‚Α`'Qοξ<wT; γΝ7ίδΘ#€₯%ιφ7BˆŸ)₯ΆY–<M~Ύf·YMocΫΆ‘œŘ:ujνΗ4Ϋ0ΜΓ«ͺβGŽTƒGŒΐ¨©Qψ|βφϋBB›z₯–ΑWΫξΦHΤΣDR [[‘­ΝνŸ6”]f(Ž+²�”W@UYRPϋ@°ΚK‘Ίͺ+‘ΌJύΰυ‚ςβ*£ "9žK$…>}+ΜsžωJΦ_wϊAB<α(΄΄Cc34΄Υoφ<ŒšκΌ.WESš*q(Ύ΅™?΄"Zƒgx†σcΐν'ο½χ5jTA r[“)8›6mbρβΕ,^Ό˜E‹ΡήήΈγΩGŞ{ξΙθΡ£0`@ή>μή:ΏεΛ—3i€΄πέtΣMœqΖY–zWη“j£Rξxω΅kΧΤΤ”φ°ω|>ϊυλGeeeϊ»μ­Άελf8ε”Sxψα‡0 ca ˜ΦΦΦΦ}뽇Ύ²šν†mΫ(₯0M“Ι“'Τ.]Ίόΰp8|ψ!ž}ϋχ1B΅΅ ΊbŸ)΄RΊ―”‹A4κΎΗb¨¦^ννΠΖbnΩ€Κ‚PΪJ‚0°ϊU@E)”ψ‘O)””CE T»/ ιš&ω pΦIŠkR0σYέ™δθjφϊ”ζˆŒ‚ΙχΤƒŽΚ\ΏuΈ’μ>œDγeήΨ š`]=¬ ΖΎx+ƒ4ϋ” ›Φ4yΠΜΙL Ξ`¦4αώ³.瑇o`όψρΌφΪk”””dΫζΊs»ά`ωσηsΝ5Χπβ‹/ά§+&OžΜUW]ΕQG•>ΧΖΆ΄J)ΪΪΪ8δCxο½χ�8묳Έωζ›Σ}κΉVΊRŠΦΦVξ½χ^ώψΗ?²|ωςn-πΜs5k_|1³fΝΚkύoi;ςC)ΕέwίΝΉηž €a›,˚‡WθY{-θšνNΚu/„ΰπΓ/{ϋν·'‡Γα‰RΚi>ŸoχH$2’œ$5"ύŸ+rΥ0~7ΨmLήF †έCίR7³IrΏάϋRfPX¦ Η\²φΙίΜγe.gœ~+Ω–u€¬σ„ Ρ4·Α¦fXΏ κ6ΒΊM°‘¬ {pώFΜ(ΖΎ£/τ7 ZηΉ³”!w_y%ήv�3gΞδ駟ΞLΤmŸm!qθς:)EKK §Ÿ~:O=υTχλ ϋοΏ??ό0Μ:―mَx<ΞqΗ—*;οΌσΈυΦ[1M“TςΫΆωΝo~ΓuΧ]—™ i«¨­­εoϋtPϊ\·€ωΚdξΪk―1{φlb±BˆFΓ0¦Δb1-κ½€tΝ6'EoΫ6ΗΌχΩgŸέΗησœH$±m{ Pƒ›SJ8Σ€‘ΰ€I0m μ=† „κ€xΩΙ‚’π·§’ΌΉδŠf¨ζ=J$-ε ‹»«sο:ς zΘς” ol„P+΄DαΐUgsόκΛpΌ6Ξ9%Δ~UŽγΩi^•Β"=·ψγ·ήΚ_Ύ”bϊτιΌψβ‹ι·ž[εsέvηr>γŒ3xΰ \ΡmΓa‡ΖO<A0μ•vH)9βˆ#xα…�ΈζškψΩΟ~ΐΥW_͍7ޘ™Τe›R^^ΞSO=Ε΄iΣ >°tՎ|ΡπΉΗxυΥW™1cFjΖaΓ†νρΩgŸmΤΑrΫ-θšΝ&‹aYJ)xΰγ’K.ρ{<ž}f³•R#₯”Ε™ϋ\ΛΩcΑΔέα ©0s?=jϊ€!ά ―Bε,b† :SΈΊΛάύ{R†«˜ŒjΙ\—Q―ΚYŸϋ9Ÿ—½SΩ^¨C)Χ垰!‡Φ044»"ΎΆΦ7ΈŸ›Zάm‘Δl‹γVώŒCΧΟΑΑ†€ φέ"Ϊ^ŽSŒΫ.ΐ‘’e|ΐχ>€αΓ‡σξ»ο¦'BςŠBO„ PY€΅kΧ2eΚΦ­[—ηΫμ!>Ÿ±cΗ2aΒLyy9–e‹Εhlldωςε|πΑ|φΩg$ ό~?oΏύ6{ο½wΦqΆ¦™ŸC‘S§NεσΟ?Η0 ώοώŸόηY©e·Σ4ρϋύ 6Œͺͺ*Ό^/‰D‚ζζfφίώπ‡?d΅msΪΡ•ΰάύ̝;7uσO>ωδιχή{―­“Ρl¦€θ�� �IDAT;Δ°aΓ†Πυ«―Ύf§Ζ@j4)’s’sηΞ5^yε•uuu3Ό^ο·Η™(₯¬Ξ컀iAU8h ̞M„•ΰ5άώη¬Βdksz9Η­ δ΅\σν_π˜[XGπwΡνΥߝΥέΝΉζu(εΎlΗυpΤ΅S’Ύ± κ› ±Ε]ίvϋΪc ˆ;&3Ώ<Ÿ#λ.θθχ· ~¦_–Ρ62ΞΉΐΪεΛρz½ΜŸ?Ÿ‰'vΤί…+7s{Φ9wΡ_­”bύϊυLš4i³Δάησ1wξ\fϞΞΓΠ]xja΄··σΘ#pε•W2vμΨ­nG&©2~ψ!S¦LΑΆνNeΆ„>}ϊpΪi§qΘ!‡²G1δ9ΗΎ}ϋ2yςδNηΈ-β”R|χ»ίεώϋοΐ4Νί¬[·ξŠκκκ-nŸ&1p kN;Ÿ}&δG‰Ζ†οΣ†α°ΆΆvΑ‚ο΄ωύ~ρηk@"‘ΐ²,ž~ϊicΜ9Υ¦iΞhjjϊΆa+₯ŠUΦŽΠ§&μGΟ€c†ώ}ΑKΚ†,ΡI“t £’›σXΚYVfΦzjή#_ Z–ʦʐ§\jUj}ξnΉO½X‡Rξ:)]Q' IFΊ·Έ―†fΧB΅Bk;΄E\χ|4ᖏΫ0 y2g.ύ-ε‘Έap‚‡xˆkΉpƒΊξΊλδ5νώΎ±9Φm )%sζΜαψG·Ηwr—nΈ>}ϊδ΅2» ΊΛwEEEtΠAyϋŒ7§ωφ•Rςƒό€;ξΈ£“€φΓ08ꨣ8οΌσΗθ.¨/΅]Jɘ1c6lXήνέYαέulΪ΄‰½χή› 6 „°άŊ›τD/Ϋ1xpΩKsζ„fψ|.G!άΧκΥ°p!v]ΑƍΡkkkŸΎΰ‚ κ.½τ2©”ΪιηuΦδ'5ς™gži=υΤS»···[Jy:P›Ϋ―]^ϋއoŽž}‚ ϊ’λ&Ξgъ¬€E·Π\ξε:ΠΨA?ψ­œ}s,αΜ:­ύΜcwZύήΫ±Ž”•žŠv%\Αn‹ΈήάζΎBmΠ·…‘=βZσ‘XZO Ϋs ¦¬Γ1Λ/azβPi€ΈΈ˜χίŸ‘#Gv+vω"₯{²^)73YΏ~ύΊ΅b-ΛβΪk―eάΈqέΕ©:Rδε¬―H)Ηaϊτι”––fν³%νΛwό+V0yςdB‘EΈξbxδ?°p±;t²+™;v,7άpC·υ:?p‡σ|πΑιεξΪ‘―ŽBυJ)Ήωζ›Ήμ²Λ�d0Ό»ΉΉω|Λ²τυm€(* άyζ™‘³«ͺ0Ίz VʝE+‚O>|ό1λ7l4MλΑY³θΙ'ŸŒΪeΏ’ ¦©ͺͺ‡O‹Εbη™eLF …9Ηΐ‰³`·A ’"Ρ'M–»7©0ΉF¦Κ³ΎΣΎ;ͺ TŸES¬œώύφί{{#kθWξq:‰hΞ!sλΟ,—ι.9ε{£ŽTΑ΄¨;Β‰ΉΒέN |ΈCΠΫ£IQΊnψh<i±'`νFxξξ1:θ ^}υΥΌύ­©Οιs. ιv° •R|ϊ駌?>―ϋ8…ΟηγΞ;ο€ͺͺͺΗ=νPJ1qβD °ΕνΘέ–[Η¬Y³xι₯—0„β©ΫαˆIΙc >X°~ώυ<¬ZίaŒ₯θίΏ?ίϊΦ·8πΐ)//O?όtu™~ΰRTT΄Uν(τ °aΓFŽI{{;¦i.Ϋc=¦~ςΙ'hΆ1jΤn?ΨoΏe· ’Ψ\-VʝήΡΆασΟαγEψ‹/Œ—mΫ|°ΊΊίσ+V¬hΤύςΫ—ΤMnςδΙ₯Ÿ~ϊι ΆmŸ/₯œ˜iy&μίωœp˜ΫΗM*ϋ˜ΘvΧΦ‡ΛxτyΕ43€šŽΉnς[ιcfάp²κ [|2·mχ:D)Τό…‰@α˜|θQ†T~Θώ{α†Ο₯ wyΚBΞu…§Ξ ςŸg―Φ‘:^Žμˆ~'ά€ΉHά΅ά#I!Η:¬τ”¨Η’ύλσΊΗΎε–[ΈπΒ 1 £G–h!«;Ρ¨――§ώ] ϊυΧ_ΟΈqγzμRίΗα€Hύmi;RΛωΔοφΫoη?ψBΐOƒ[/’#7@ζwž:΄>[ xώρ4,]}Ξ¦i2qβDΎωΝo2qβΔΌψΤ»eYtΠAψύώ΅£».…άλ"₯dΦ¬YΌόςΛ�”””ΈqγΖ7ό~χ_Σ%Φ_¬\8x0$»L6 !ά>9Γ€Ρ£aτhTΚ9Jη(Γψ’‹.ςπι§‚κjkaK‹υTeeΕCoΌρζ‘C‡JwΝϋCt&lR[[[³iΣ¦sMΣ<G)U›Y¦_œqœωMΨ} λN/’ΛιΏΧ ‹΄ͺfη}* ₯xμ‰g ͺ·9bΐΙ±„SB™)˜"uŽnνά:rTLelKŸΣφ¨Q(a&λ˜RqςIΗWίβ/wίΗ7φ[ΕΐΚ<Φsς\: 2κΝ(›Ϊ€rΞ%λ― χ<{£ŽδqR/Σp_ ό^Ϊny<αŠv,ήρJYθ±€•ώl:Ώ`πΰΑέ»©2©εBVmWAf©ύ*++9βˆ#γΆs1bγǏ/(2…,ς|δΫ »󞢣P}�C‡Mο·βKά¬ ™ΏηΤbςoƒμ^Χ|™λnw,XπόεŸπψήyηήyηt]ƒζ„NΰCΙzλΣ§)qνi;r=έέΫǍΗK/½„BΦΦΦNBΜΗυ‘iΆŒš0wΎυ-J»xΰέ*R7[Γp3x-_}d­_ΆΜ~΅’’βώ)Sφyω±Η³½^―L₯;Τδ' …˜1cFιβΕ‹/Ύη8Ξ€ΤvŒ—ž G�%ά?“œ'z‘ySΘ΄r3–ΑBΤ\ˆ2ϊ€λW†Α³Οώβ έ‡¬δ-©·Νͺ#ΧΘ8VnŸx―Φ‘€Κ3ΐ?"£Žμ'ˆEK–±ψ8ξPΥό—ηxYυη˜ΜΉž„\:=”t*°mκP bNΎ† „«Ο‡>–λŠ—I«έq -Η_O†οηŠx")ψΆ η\ —Ί7τωση3uκΤdΩ–hαs)œε¬«mΛ–-cΚ”)477wΪηΠCεΗ?ώqΊ«©+ΧvO,θΜe₯ϋν·Y=V[܎|u�,Z΄ˆ±cΗ"₯dϊDxρ.°Τ–η�˜°±ώρΈιnXSŸ½yΠ Aœxβ‰ός—ΏΜr·χ΄…Κδ{Έι¦›ΈβŠ+�€β·‘Hδ =|mλ1nΈαϊυMMΎM½™΄'u“’MλΉχή0gŽ]sΥUœ|ᅍΟν³Οb_\δL›ζ‰”–š³,σšššηž{Ž%₯μφG΄«γ8΅΅΅^Σ4ΏWWW«O>ω€Ωqœ_’œϋξ Οώ’ο‚σ.|π Μ9J-7΄‘*2¬<:¬ΏΤ:‘QFxϊιφA¦^†R5{&u5w=YΛϊζŒύΆ€ŽT‘½.]&sή¬Γ‚8•α wΊ‘1£F0λψΛΉλ_E$r nΩ”ΰfžsκΌDφΉ‹άsΚx8ΙάG ?Ύ>žΌ-’ΩΆ₯`};Œ8ž|ώπ7θwΜ[δv‘y,πz`Ε&},όοcΈα>s"΄'άΙ_j*a`_7O}ŠΤ bΉ–xW―ΜςΉλ»ΪδΘ‘ΌφΪk„G)•9)H'ρN•Ιά–[oζΉd–•R²Ο>ϋPQQ±ΝΪ‘― @cccΊnΜ­όΞ…�$τ+‚‹Ž‡/Ÿω4ΏχέΰfY¬«ϋ’›oΎ™’’,ΛβΐδΥW_M?uՎBΧ3ί5I]Λ l`fΫ`\xαΕ-6$ΦG£Θν­›©›‹aΐΐπoΰΏδΉοΟξόώόσΧ―)-½+qΤQ¦3hρe0hύ9 ξ»Χ^{Η顬I;‰D₯•••΅†aάišf{]]]ΜqœΗΩ}τPψλ ΠΊ� `ώ½0{brΨΧ5ΛΐUŸ‘γα>]&η»W TpξTZΦ‰Jή9|ΒΰœσΎΗΚφoρβ{ξξ›]Gζ*•gΫ =­Γ?™ngJ˜;Žοή¨Jό~ζœύ#ξ{² Η £?2ž6²Ο!ν9Θ(’r‰gž‹Κ(—v.(0{2η”γ™}ό΅|ω.y"HSn΄σfΤ±dŒώ†›P oάy%μ·GΗοηΕ0ω$7ϊ`ψ@ψλ5°η7~i—ΐΐڎ‘ϊϊϊτυƒl1νΈΦͺGθ™‚ͺ²~ϋŽ;– 60mΪ΄¬}?ώψcΣϋδ sζ±s]Ε…ή}>3gΞ€oίΎΞkkΪQΘk°rεΚτrίͺ!Οbk~WΈΏ­Θ KsΖ7α†K _₯δΝ7ίdƌx<ϊφνΛυΧ_Ÿ~ΠΘ|εΆ·ΠuΙlσΊuλΛ»νΆΫšX,¦­Ά†išFyyΕ’Ά6±S\Π΄•’ ΈφΩGg₯j/½Τ>ο§? οΈγ>iŸ;ΧR&Xν••ή—ŠŠ‚§:€V)ΥeΜΎR ΫΆ { !œ†††/₯”ηϊ}O9VΌ�Ξ{°ψχ°8ηΛ½|Λδ,§Δ1λ?½έ@ψχΘY'²¬b€bί)>ώ\}Ι£σM€λ:2ΞQ>ο­kGκP ‚γ;iŸ‹¬Bn�RΪΞ§Θγα€3Ξ偛ιŒσ™utœ`Η9e^—ΤΝYeΝ²Π3ΧΚA(Ε#†rξ—ΣΌ€»žNt<Pt[‡‚OΧΒΤo»Qμ�ύ«ΰO—CI|²άέ畏απsά(x€½Fΐο.vχb­;ΪΕηΏ™ΠqM_yεχZδXΒΉŸ ΉγsE"³/6_ί­‚`0ΘΌyσψόσΟΩk―½�ˆD"ά|σΝYΓjσ w‘ώσΜe―ΧΛ~ϋνnj3Θ ΪΪVνΘ]/₯δυΧ_wΫLŸΰz7;vάFΏ«T;Re”ϋΰςSaΝ³`Ώο< 3¦B(Τΐ/~ρ *++ρω|œ}φΩ¬Y³&«©6Š+ΘΌήo½υVzϋŠ+ήEχŸoάί€ΰβ9sΈeδΘ}:='σoΘ² ‘>ϊHΘO?U«[[ύWJ<rκ©§,ΊγŽ;γ;sΏΌRŠ`08&‰άμ›Z_V?9 ~|:ψ’7Φ”εΥ—\ΰ=υ‘Σφδ‡Τg‘Q¦γœ�ο θ{…R!Tς¦!\k5£3W)Εη«ΎdρΫχṕ*}ΐnλΨνθI’Τ\„ݞZ/Vy§ΰ)₯Pΐ > (φFdœKwueœoζΚtRΫR›2TΏ‚π€.wGY!xυυω¨ζη8dRςλ(P‡R°1#w‡₯ ¨‚χ#ΧC&„;ϊaΠΨοD·/`Μpψεχ:fΏ ψ`Φ4π$Yα‡»QπΓ‡gΑ‚YΣuΊηRxXWο™ϋfR¨Έbxο½χς›ίό†ͺͺ*ΎϊκΌΗ(„”―ΧΛΠ‘C1bDΦlgΫ«---L:•%K–τΓ'†‘eΩΏρ­ώ]ΡYΤ ώv“šπ³[α―r#Sν?ρΔωΓώ@uuuΑ6f.ώωηŒ?žH$‚Οη[tι₯—N½ξΊλΪzτiΊD$/ψμΩ³yfί}Ω)¬τ­E)Wδc1X².muuβyΗ±ξ>|Ψλ‹-εφ™mOΗaȐ!ΥλΦ­»Ιqœο΄σʊαϊKΰ¬cΑλρ—ΪρǜEζϊŒΏΒΜ²…ώp;3χX₯ί€’ύ@Ɏ›XΪPiΑƒδM ψοKo0΄ψyF*pήΫ»=©PΑ)P~LF‹pΫ(Dς!&ωΰ’y,1%ωλδάΐΞ¨#ηŽΩι†šρ9}:.u�Α)PώM”’ι»kΗχαxSs+OόύvΞ:.Œp:Χ¦ο/r—ƒ~ψσnT{ͺ|ά†‹ηfŒwF»Ϋ.Λ~H’&ν#ϊ'OΣ ίώ <ϊ‚ϋ;ΈσΞ;9ϋμ³³.}ξ =s}!—m!!,dΥͺC)wŠM›6 …ˆΕbιi|-ΛΒησQZZJUU}ϊτIgsκΨ–νPJρΐ0wξ\”R{<v+‰mό»ΚΨ'λο­u�΄JψυέpΛ_έ@Ip½W\q—]v@ ΰυΊός˹馛�Χ΅ΆΆώβλ’)ΞΆm`fΦυq€c [{D,γςΛ/<oήm«Ž>Z’σ»άeHύ( κκ\k~ιRγέ–ρHUUΥŸ}ΆxYII)½ωΓrΣ4ξ"™ΨΕcΑχO…kνB/τĜ΅=Χ$ΝٝŸΜsΛδ­C θΒ ’2σ«fκ|CR–Ε_ώπ[Ξ:ΆKμνθIJ ͺΞ�ί°΄"³χ†–aIeZξ†Α#=ΗA{ΌIΏ’<—(]GαmΟl½ θϋ]”oˆ[ofύιΗχˆqΰή?έΒ™ί 0³λP.»nΎΗ]opΝχ`ΤΰŽkjpΛƒπΖ‡ξ²Ο οb7�.Χ²σ{αΘι€#ύ?YϋœδZm555¬Z΅*=ej!K=_vϊšΨΦέqv…:ΐNVWW‡eΒ{Βή΅ξ…ίfΏ«nΆmN XΧ \~ΉΓ³3rδH|πA¦L™’ΥΆ5kΦ°Η{ΠΦΦ†"|ωε—χ½ζškΒ»r„ϋΜKfΈϊƒ½~Ο Γ˜νσψά;½RFκKAΒNΘΈ_”p7tμ½Ούϊ…ψ杠΄΄4X^ήϊεάΉͺ’»vzΠ†kσ +ŸC¦Θ77Γ₯‚?6λΦ­3ώœ3ηΤΧo»νΆ.žΧλ-vηΟIk€q£ΰο7Γύ™ρtLώ'ξN.Τd[3ŸͺEr]–«Ž?ΌΧa €~’T<Ϋ"$Υ‡2Ž“-4―Ύω6Υ泌Ό΄£GuxaΐΥμ΄ ηΊΪsI ©�ήYψ4>Κδέ;ΧΑgοΌγ­(ΞƝέ=εφ{ιpι‚ ˆŠ ’ ’h4V,[μΡK5jή_bβ›’)Ζ^σ£FΕFbD ‚PŠH‘ήnΏηœέωύ1[fχμΉ\:(Οηs>»gvfžyfgŸ2σΜ3z›ά²ήB L¨Ν€]nr1zΒο!}a_ŸΙπψΓα’ΣjC–ϊGKΰ€Sƒ6? .<;ΐυρpλ#A3.<Ž;4Τ$„^UΊcΐOο€?>ͺž_rΙ%άύ!F^Θβmim½΅Μμ›‚ΓqΈβ ξΏ~�~8ξψ1‘wΉuΖUXQ.d‘o )AšπŸαάλa™λpiY7ί|37ήx#–eqμ±ΗϊGΔ&“Ι«ςM΅Ξ‡]=΄Σ’UKžO§Š†ϊ]¦[_Σ;VλμζlσΧ6œ»ς©5oYfλΆ‘ €λϋiς™gξ{{μΨڑ߈3ηλ»X€…{€TB>›…₯KaΖ Q·`5£©‰G{φμωΒ•W^±~άΈ«œMΫ2€ΛŒ3žΝεrC,ΏnΎRΪ!&! Rӈυ—+€ϋ7’^kr+TFz›Œ£β(Τ•gϊEς¬εε«Wσώ›wqςα2―M۝ŽΦΰ(>�QuR»&B‚H§];ιDΈυ2η 6|ω8ΓφΣϊ$jΥxʈχ™>rBνrDρP5 €ƒΧš€>―=o•γ«e˘9ι>FξΦcΒργΰΥwΤίΚRψΛuΚΧ™φu…_«ϋαχγ‚>σ›€ε/)‚οl§’ie₯0[=μ±Η;v¬ίŸAω‚pcΧΈ: Ρ]ΗSO=ΕΩgŸ ΐΐ>0σ90šƒχ°UΖ„ ₯o!½Ύ ΈόVxϊ%O τξέ›ωση`šζ ‹-:΅ΊΊšo8aΘ•ƒ+WΦ,₯΄¨xh΄c$.’ρΊ‘ώyΙeVohΨpj}cέ䦡|~πϋίί–YΈ°vAS“Ζ<weΠ>4΅¨π¦­ Ο"–=zΐ©§Κk―Ν~ΣMΩ‡ΗŽ»fαΒkμcŽ1³:σS)λΆΚΚΚύ9䐀”’l6KuuuW!Δ'οΏώ\.7΄Όώvdώ ΏΊξKσ¬ΘΈ—˜§&hω‰ζ—‘2šζ·Ι8H@ўn?ˆpFα₯©Ÿ$²WŠΛΛY_SδΏƒFGkqBJ;D‡Η€|*D˜‘‰€ώš υ”Ί'Ώ{1ίu%ΓS,όhuξ8fŠΤΪV΄/ΎΒζ2h“Χ^ίI=ͺ«iϋ³Ά€3Ύ€7¦xF€’€ϋ…²Ά?šs!`τΘψ~Υϋ±¦–¬ς: Dόλ^θΦI=Ώΰ‚ xζ™g‚n4ύκ/ΩDzΎBqœέqL˜0sΟ=Pϋϋ_Ύ_ζ[{\‰€Ο‹θu3pθΰq‡ŠόγΠ<nΎ,SϊΒX›J₯.ιΨ±cZvMΨχβ}έΗT?ΩLݚʊ‘VΐJ¨Ÿ™00,i LCψލ €+{d¨“V²]ϋςφοt¨θψΟ.ΫΏΈ₯C‰ ―B)ωdέΊoΘΦ] λ=Σ„²ή7γ¨a™UVΒa‡IλςΛeοnΘύδškΦΟ<ꨩͣG ™J%κ—.]ΊXJΉOE)Ότ�¬ΞŠͺ&|9ͺΫ·EδcΡ>&©§Ή ώGΣήΝΒ‘μf[ ‰χρ MΩσ˜šή&mcWŒφΏέιh £ ’Υ!νΡαΡ*₯¦δJa0wήWτξΤ}·^B:…–!TFο7£Rέ}%& A½ΏξUx Ϋq8dΨήΨ€$<ψ¬Šϊj«Ω‘ƒƒuN€²Τ_ž΄§¬†ξ«5Ž˜{Ԛϋ¬Ή!I… Z2γYθP₯όEΞ:λ,ž|ςΙX§xNό>ζ–ά’e’εwEΟ>ϋ,§vΉ\Ž6ε0σy¨. Ο­6η‰ΝΏ‰8Όο%Z‡`9pΛEΠ8 ώ|½ςΪ444¬(//ΈW―^»tD™œ“γ…)ϝΎΧξΖ¬ΡTΫ‘SεYΙ”a$’ήΟJ¨k2i’Hš$R‰”ι>˜–ZJχ8¨ίηΎς¨~ΕιβΧΤ―Y:ΰ’~έ£γΝ ›ΝΥΥ]f­Z΅OQ‘@Κb.€βm hiIΖkCέ–·AςS¦ΐψρΰ8§*ϊڷể…^υšΖλMkyιyižFΡ’}z<f3~Ή™8ŠφœΠ€ς„pΰκΊ .ƒj¬©₯²ΌμLGkp€χ�‘Œ₯CΥ'ƒΩχκGƒjus)+>:"mΡΙρΗ‹.ϊΟΛ#�‘ήDΒΗν?s/τΒ{ zTW³h₯š%yρ­€ό½{«€0žR$Q‡°|2/Θ3t ΦžPηi„ΰΡ‹Wh΄h›„9/Α€=”ΰ;v,W^ye(F„.μΌϋ­;λω •ΥΛμ 8ΗαškaτθΡ8ŽCžπΕΛΠ.…όq΄΅ΖUL™-Εωi:ΩB€)aάP?M-;£‘‘αΒ/Ώό²Γ. Οκp⏼fC‡vmo-«LY‰„•TΏD ‘2H¦ Wˆ$΄ϋ€'ΨS*Ώi „AΈσΨ°i JŠ•6ΞηΟξpPœP7�LΣt²ΩάΧ«V‰†mκŸ €bk-Pγ^·Ά€7ΠFnΏχ“.ξ,› RΒΪ΅π›ίΐΔ‰*νœ“U8ΕσC£IDΚω–b„iz–—Ο¨eπίϋ(ύι2yχ"’Ά©8�Q΄Ÿ+ԁ>₯ξαO³{yf}>Ύ=u}‡ΠΡDρΎ‚Mώ:— HWΕ€{ΫS8젺ЌΗυrΒ+ΰ)(ω€Š T0wJ'šWD/—TΟ Λ£„OΐΊ *ξl1ςŠΟ^Xπ�C¨Xνθ(<3Lkˆ”jίϊ¬yΚ)NoKU>|.₯ξ½χ^ϊυλΗ’%K I{γ֘γόTβ¦° ΥΉ³αRςυΧ_3`ΐ�ξΈγ�Ξ>>~Ϊ¦‚±“-WϊϋŒΙ»Ω8tt2@‘'π$$όζ2X=«8@IΰqΓ0fwθΠ‘ΓΖΞΈίΐvΚO(νΣ}lΧ―Ϊ–΅ωgIIͺ΄¬2©,nW'S&‰΄ι lSύΧ…ΈfΑ'4αŸHΈ‚έε?^:Ψ9‰™0H§“ιŠ²·»ŸΫyίhΔTԁ‡zΘΒ΅kEMΜΈήϊ�Κ¦λšQσΦπ‚xοv©ύΌ|ξoSQxο=ΈσNhj‚6πρψΫΟ5‡7½=Z_@‘}dž{χΝ« Ά¨φμη‘lŽD€Yΰ�ι«phQ°|i™|ρΡdϊvίΑt΄‡‘F¦z‡G‡χOFzLJ_.^Bvν$φθ‚oρΖA¨mR;[ζ΅K‚0ː©nΑ3< ˆ¦ υΎΤ‚dΞ|u*š½Ί„ϋEXΊRSzPΑfό˜‘)h^_ ΛW‡Ϋ�`ΪπΘΝπϊCjΟϋόωσιή½;·άrKΑ°ΝΡiι¨SZ\ώBy •ΫΡ8lΫζ·Ώύ-ΥΥΥ|ώωη₯ΰ₯ϋαρ[ΐcOxε ΅Λ»Ω”qεεΩΪ8ttζΫbžͺLϋ?xώ.΅δ8N•+W.Ά,λΔ–ήǎ)ΎώGΊwΓΏΊ}ΎςŠsgœnv?Ό*Ϊ₯°’+!ΑœΚΦΙ”~Ν£YχVΒΐ05ή"οΝ4;˜¦ •J₯_πƒ=Ϋe²ΑGn�ρΒ /^Ά,Wγ3m (Ey Cΐ-α―­U�� �IDAT!_ΐ·™-…ΦΡ=΅QOΛυ­Γα}ϋΌφšJy¬ψμΣ90π|’4m[7t}‹X³…ώρiL6ο'Γυ„x©Πpn*Žβ}δάΊ χk-z–»‡ΓEπΚ+9κΰLΩŽνAΗΖpHEϋ�2UNq¨mμyΟ/[½†χώύ§ŒyΛ:žE£—ΧΫ ¨BŸf.>·roŒω ‘ΉΉ Λ¨g½f Eι O½ώάP΄±ΈR©0―oB ΡlšπΩ<Β!o π½l˜ §­ρ‹_PRRΒψργÊ‘ oŒ›βΞλ«ςrRΫQ8�^|ρEΚΚΚΈρΖ8ιHX?Ύ{�D[i\…‡VΗ‘—“Οϋφτ±uΚΑ°d"τTηE&&‰?e2™ό vHi³ςεβξM“φόΌ}uίω©²Š=E2AY±Eͺ*κ€I2e„¬ρdΪύiΣλΙdίκΊ W‚](g:ΛγOΒn›mLKP\TΤΕ–ΩΏκ[ͺ ΡΘf™QS³γ’(k=:�t&βy©Χ }kΌG™(΄„Γf£λκž0Ώηu,ΐ—Αw+‹$”W�h ’gyVOθΏ–ŠAϊιš‚ 5…Α£Ιϋ Cυl*’ξγζAΕ!.–2`ΰB₯Ϟ·�jή€o‰±#θh @œ<:€ΐχχλ QΟζ.\Μ;/ίΕΩΗεςPΥpxχθ4‰€έψΧ™¨D ‹φAβy€¦έδε 6ΐόy ιΫ­Ρ?XΤ–ΙTΜ–Τ†ζ�C2‘ςωΦ\”ŽΘΦm€k sΣ†g«&Γ{Ass3£G¦²²’'Ÿ|2΄Ύςq£Οβœtˆ γν‰Γqžzκ)*++5j ΨV½/ή έQV„ήvΑ–Ž«m‹CŸΕЇB4e΄mΎψœx„z”Λε.**zό裏ޑ‘K₯eυ›έŽoώο 5m;ψ*Y^΅§H'©$-ώ[ŸbV6ι{²{kαΚΞ οTώΟJŠΠz»ΊΎ£œϊ‰` ^ƒζFΓ‚’β’γϋ_ή󬜭–*όΛf³$%_¬_Ώi(‘ξξ ™Xzάη­πf€‘<:]θ· Τ…€„+Τύ_n‚__‚ψ! QλΙG)CγΊE Sη!‘΄HCεd T΄G’Xm}+8― άtί©‡ΐ kήW‹™σώc?LΖΦΏ₯tΨ2ΑΣοΰ•©‚œΜ"›ŒΓ¬@$»Ήy‚xkώΜƒŒΦ!Α0ωΧΛo°ώΛ‡8σh;x‡Γ“‘1 iώPΦξ½υΚΌgF1"Ω+Θ©.HθHΌόŽa0νέΙ4@R₯,šΛASŒΏHYQ0NššUμ…θ,H^#"`πι\Τ7'Ι{‡ή}»L –Ό ‡ξ555Œ;–T*Ε%—\Bmm­‹WψΧ8Η³θ³Bε…,ο9½m))% \yε•€R)Ξ:λ,jjj²|υoψδ)hWξ›_pΗμVWΫ‡7ˆ|6©C–7S)ΤrΓ „‹NWΟlΫ3qβΔΗ¦NΊέδ‘wTw―K«Kηφχg§μgW·})a&Ϋ`Α‘.αΟN’N _0GwR[?Oz{ ―™' Χ·Βίβ¦ξ–&Τ½ώ”RbηrYI"aιTϊ7Ηά|d:kgn†SRR>w‡n]K‘¦α£ cξ½Ρδ Ά£ι>KΰeBqL)š/F¨›&<ύ΄ 4ΚSσ‡ξΰΛΣz#ŒΨδBΣ’e€ΦϋοiΏ~>νcΪ/€-λu@X£ήΕjΟ³J“.NΧ2qΣό« œζώ3i*+>ˆSGΨξ`Ϋϊt˜©^œyζXΎ{ϊ-,²/αώηKX[ŸŸΏΥ8Rύ"ιΞŸV!UD6Ώ―\š/_ΑΓwίΒ1ϋΎΓΰ~ψŒΠ«V?]{†~‘ό€Lοf˜4œ>nW‘’*ȗwΖ̏سΛŠ-hΫ.Μ¨kλ5FλΦUYΰhl†z-…>[Ί %¬^+Χ†iŒώΌΎκR“„Ϊiπ£sΐ ΗΓ?Lyy9•••άyηΤΧΧ·h-Η₯Ϊ֚zΆŽϊϊzξ»ο>*++)--εή{οEγς³ fΌχWθV©υΠξ τΥVWΫGh@Ο«ρΦΈ6θΌΣpΰŸΓqξiΈΉ\nΜ°aΓnά–ŽrŽγΰ8ϋ\Υ£ϋ€«{ά=δϊ½;Ά©ͺ}eUΩ₯a8ΩNsΩЌΣЌlΞβdmV4HΎhΆό)rOHη­“ϋ^νfμΪΉgέ{Sμ–ehΊp¦)0L‘)N‚ζΓ%{.]? R³ΠsΉ©TjƊΫΕ1(‘ž ΜMβ8K\šƒrr«uŸλΒZh£#4ZodMύ£`–{°Εwƒ_]Žš¦—š¦ͺ‘ρn„–Θ½,ΓZsΘͺΡσδA†΅ά-6‡€’}kΒͺ½"nαjΜeΉοξ;Ψ·Σ+ Έ 鐨£M,H‡=Ίuε²+―'S5Žϋž-¦9Θί*ˆβ€gΉ}₯*Y²rχέω[Κξα’“3€΅±ο\Fθˆ<χσΘόtVΐ=*5θΓ ρ^Βο·΄[φ«₯_σΥ§/pθ~ Ο~{ͺΈλ^WΜωJH©’ΒZc-ßΥΡ!γiς–ιZι^hί\‘ο£Τ„;‚¦i0u1κjk7n₯₯₯€Σi.ΈΰfϞνOΛ·f ™ώ,ΞΊnM=-=Σ…ύ_|ΑE]DQQ₯₯₯\qΕΤΥΦpψ0χUhžχόΚ΄@"‘wޚΎΪq΅­q|―Ρτ�A$L„�‘…'o‡ΎO¨”ςW;vά§#ekΑΆmΗΑvln{ζΆδήWτμ=πΪ·ωYU‡ύΟ~vEYωWmΚ+―H₯¬΄•€’‚?n2z’ΰ“UrM8MΘΖ 4e˜ΈΞτ§Ι}‹Ϊ³Τυυr}ۚΆfξ sοjX–ΐLLΣΉŒΖ°”@Ϊ‹•R’iΆU~ΣΊrΑςΉVτέ΅λߟ/Ο>›–‹ΆΨ¨=γΊ`φŒIxtDΫ. €ι‡ΓYΩ άuΤΤ(ωΙ‹°‡fύxkŽz;tλXDΪιυ­^F'Αo‚lΗF›„#ΩΪ_„ΔAD+Ρ*Rb Α³γ'Π½|:CΥ2τΡ!%`ΐoBΊ:–Ae””Ce*iDυ΄*+₯ŠŒ"ΓΰέiP³δŽ=4Ψ&Ψb_eΠι'*ƒtιςΈ™Tώ‘oΎ9‰υKΓ¨‘)O@…_o¨N/,f(έ»Ά!Z^LT!;ύ!΄ΣUάvJ8ο)νCψύ °lυjή|αNƞ 1€"MΓ€aΞ—*O―jψ󏃣/‘*β˜›oψaϋΑOΞUΫΫτw¦5%t՟K©ΞΞnWτΩ¦τ•χYόΏ»ΰρͺYLΣδδ“OζάsΟε°Γ£mΫΆώ³ΈmbQΨ”τ8οφ΅kΧ2yςd{μ1^|ρEtΛ1„³O„[~Υe ΠΖήyτΩΆWΫG‹ΌΘϋΓ«υY΅Ϋ^˜g\­>uΓ0&ŸvΪiGŒ?ΎΕΩc)%ŽT<μπŸ +ŸΏxΑήfBž°’ΗHGM&“Ε¦aU’XI#OαP·"@‘Ρξ²+ͺ:€°ΒPtx΄i CύΤβu@Έγ€t$Ά-qlu΅sjϊάΞIμ¬$—sΒΧ¬šZWSμή½ϊΐ%`˜‚6Rd²Ή¦Ϊ†ΪƒCM9ς¨βΩ³ίyηK³δ½0οE䍎ν�¨iτB|S`SΚJ ˜³žzJ%όυό½Ηžeθ .O–]«υ˜p J‡/k)ΪΗΒSίFqTœŒ(=0ς=ͺ;oj½1“αΩρ/»έ'κ ςMΒΡΐΪ&tœp*TWCc#ΤΧCm­:8§‘A)T6¨4οy.'¨,KS^άHžΠ©΄ο=ΪCχvP^m+ M%”'!Y~0²jHα8 κx{⻬όj2'™£]ώY�‘ulούΖυΉ›z‘όΊε(‚¬: a5)[¦Ύ?ƒ¦•/pδ(G= Η/[ξQ%-ώx tlΠešpΧSπŸικ: άδΖzΠtΪVΐ‘γGEά’Ύ’�Iψx>όαΰΕ7UΘY„”••1lΨ0† Ζ!‡BχξέιΨ±#%%%~žh™θΤ9@CC+V¬`Ρ’EL:•wί}—Ι“'³aΓ†<Ϊˊဣΰ'ΐώ}ΜfΌs–χՎΔ!υχA4?(C8ΏΧVYOYσΑ0Œ\›6m/[ΆμCG:X¦…f-ϊΜϊξΝGοis„i˜ί5 qT:Y”vΫ―&ž4€†!hΧ%­ΖƒŽ˜q.<˜ί~a ͺ:$•ΠιȐEm˜žPΧ+Vέρ„yΞθY%ΜσxΦ!—σώ«4ύY DKͺ:€NLύ4DΖ§Ÿ~l rΰσγΖeOL₯Z˜zΟ‘lN{‰Ρ7ιΊ)?½¬šoiTθψ h‹‘:)π\«Γ4αΙ 0λs•τΪΓ0r φž΄AŸ§,D>ŽΈηymŽή·τlSκ,XO:³<―lΓΰ½χ¦3{ΖŒΩ@;ΟΏa“q΄ŽŽ5Ν°ο©pΒ)J¨·fιG·…~¦»‡3—SŽ^MMPWό<E‘¦F) υυΠά€βœw¨‚Ξν‘² ΊvVΣ«Tze;θT+ ‘ΤΪ`ƒ°…%4†cȍv£:ΖυdͺJ%‘R„#oΞSBC6Λ£=ΒχŽωš6%1]*aΑtšŠκpμ!pρ¨pΏ-ZΧέ”=D8axxhE?“<eΔM°8ϊh[€ym } ZΉ Ώ―$`€mΒΜ9πΜ›0ω=˜ωΉšaΘϋ„EΛ{Μ[“Χ4‘}%\t ΩΫέΡβ)΄›CG4ODθm•ΎΪΞ8bω&ψ£3;2’?Žίϊ8όόΟ`Xe}‹Η·^΅<a$ΎcΡ'™HήΦΝ<6•δ.΄ι˜RΣΦ‘Η"ΎH΄^_ΐ«ΰ.m•@G(!νm1³ά)sΓ΅Τ½)rι€γxΒάβšΰΞΈi!α­ χHšc»^4J+””&hΚdž ΅9“Ι=zt»mτθ•WWUΙM[KwPB>KpYœΐΡ‘`*$Œ[ζQ…F`!Ρ²nšaΐΫ“`ς 5?|φμGŸ’‰cͺ:‘iJο‹Σ~%Α–ͺZ3αͺƒ•p}-βHtƒ—ƒΜA"ΑW‹3ι?ο’Θ~ΖΘCr΄/'8ήusq΄’$,­U§v ;βμ†θŒ‚αugO9π„ΖFu]Ώ^)ή―‘^ΜhW‘ΟΪTBϋNΠ½ƒϊ΅­‚Ξ Ί΄/ƒ’’œ.ƒ ‡Θ9D:ξt°ΟqΤ²Ηψρ€GωΥ²‡DŽ~§ ‘’Έ]σ'Έσ1W ψΛOΥ9ηή;0 ψύ£πώgͺ\IξΉnΤ²Έo$4 yά‘->(hPˆ‘{}Kώ}ήηΑ–ίεe‘Š€ΒPΛ‹ΧΒ²ε°b Τ6Γ†Zυ[―ι©,ƒŠR¨(ƒ4tj ΙΚn¬\3€Υ_Ο’"ύ5ƒφΚΡ£#ώφΔνALj#ŽFη±]σFiΒͺ‹IKΚψΟβr>YULCΞΐΤν=Ά„Σ»;œήΝ¦g‘rfΝΩ³kΰ― “L[oaκό H™””'όVδ-½θ\“ξqΊA2ePZ™ΐ0Τ ™'Π}―tΟ©Να:¨H Žg‰ΗXδϊ5O€gς-u;η9h %mS89ωq¨©MMMTVVŽ9ι€ζΗ ΘΧV7$ʊΟ�QŸ†¨ΐ.t%rWžH^ΘΥ­Α3’…€wށ5ΰΛ%πΑ?‘WiΐθόμϊG’ pΠώΗΰYtΪ-‰(ΔΤ―ΥΝS‡4ΰ­ΚψzYŽΎ½ιΧ*‹)8έΌ986•€•ΠDs΄oΞ³«@ΤΨσhπvΎ8ŽϊεrJ)hnV³ήμΑΪ΅κZ[ ΅5ΗIPV’€΄Δ"—YΟΐώjζ _7Έό{`ζάώΥ”*o,6ν†λΡ}»ΑοΖ©―^ž upι­A{‡ο׎ ς„‰sq ύ›qu΄j₯7>2Γ™χ-„Φδγθˆχϊ8Μ–ΰ 2.·ŽνAΗvΗƒTκιR νf[πακ&}]ΑG«Jψͺ6‰-Ύ7—Ξ{#7Ά„ {ۜί[‚0‚†H™s9™³q²9~Ή ˜χj’~Ω’Š–\θ•‹Hσ…v‰HυdΚ €άB˜ei'«‰ΐs]sdσΦΛ[ΪYχ>,θνXžΛJ·%Ι€A›Ni[…šH§Σ�KV­"#ΙVΞVςVOhi%02SφhW½οβΉˆΉ/$ΜγςΒ‡S‚aB"Ue°" kRM j'1‚έΝ]ϋΦσ{• "8wQ¨B½Ξ˜2qH8jP- θΘ{η[Šcι@@‡"˜ώ  £Ο†6mv=‘^¨½Z „Pc+α~νΫͺM"eυΡe…�YBΘσ8Ž™§%<~;œ>N½‹Ή‹α―Γ#%«’.= xN•™ς!μΏ'~@ώ8φΫ‡ w_ϊ<>ˆΠΛ1xZqtθ ξ}\o)ލσΦΆΐ±=θΨ^8’ό’ΑΊ&‹Χ•2uE9Ÿ­)aU³…#¦ΘΗ•ς"…F£ Bpd{›σϊ„•@X¦šn’€mγdm„aΰ!%Ώκ]Οe ,Νͺ΅·TJ)�‘q\�gtν\αξυur}2:οgΈέH„ξ4Ό'‚ Όo:T‰Η¨ύυD]σRmuεΰ8”‡ΊmΫ}τΘ/V­šΤ`Nr w Δƒ@ (Š€ΗMΩλetΣ”/YΌgϊσBΚIœ"‘ΥeΫPQΛ—CχΞ0yμέί²‘z#[Bω(’Σρ:/ΏΎž*cκς΅aοΩ.ˆCθέΆ˜χίΊ„ΓοαΌσ³»€PߚG»”ΑQ¨ΎΠΥ#οj5 nΊ ~}ŸJ~ϊ θΠƝwλ8v(Μύ ώσJΊλi•§_x!iΏQκω²U°ͺά“θt%Vo^τΎ%:ό<^—Ÿ{όn7Ž­‹#4%.άMGŽΙςΖ+εΓ5e|^SLMF‰_ ,•Ώtζ=ΛK1·BRΏ\ maˆ„‰H˜ΰHd„#‘Žƒ°Rϊ–9¬jL"PΫΙΌ6F‘„Ϊ ΄‹'z4ΧNΒ=άAJχXcχ›t\ov·'q΅|ζΕπ(x@ljό“¨’-€<ώΗ?ώaωwΏ;ΈΖΆ©,€™o0PeRZšgΙ{ξΡΡΧRΫΌόΛ»‘t)‘KXΆL2ρΪ[pΙ( ‰όυEM`…f"8|2DΌNβ Lΰz&―Z©GϋX}»«βHu§k»φLϋχ8;ώnΞΣDUΥ·[¨·BΚ£§H9π‹Kα«―α± κΩ=Ο¨Hqƒϊ«W’sΰŠ3aεzψΜ mόλ‡αΦ+ {§°’&tFX@β̞‡jg«Τ©₯;T"bι 2Ζ+–»q΄‡cagА9 „ƒH4ς΅m0·Ύ˜/jJ˜]SΚβϊ4υΆ‰†Τ^­VΉ ©’cAOŠfhA˜°―Υ€8ΆC#i‘,M™sP~&V?\‘Ή2g0]–ψ3�V"Π|’VΊˆi·Ξ§T>!�S(g7ΟαΝ@υ'R:ΨFπΎΌ­jž§»_ΞέΞ&%ΰ(a/ύ47]Ί•x πœfMΣΌ>mjj2μφΪθΡ«N$δΆe ₯φΩ¨ιχΈuv=oK7†'š·Pωι3f*g';?<F“mcmt‡Φ§ά4S$N‘ŠΗ{ω£λ€ykΣ»@V†β % –Χqΐˆ?sΡΕYΚΛw uͺJΰ‡Gƒa‡‚>Ξ|f/œώxώίAWކα[†7έ _, ςάςθί£0ύ…{iŽΗ¦œΞό™Έ1β)}‘±Pˆ},BώXΫipHΐ„&VΧBƒ{ͺcΒ‚bε4i` |'fšrΠΨuυPΧ�υu°’j•ƒ_]£’Χΐ_J6΄Ÿ0P».R JΪ$)n—F”³€!ΝIε‚}ŠMν]I°έ5hΫ¦>λpγͺΆ¬t«;ZΖκ6N2η ΘψϊDάΕc ΈΎC{kžΊR*ž³‘Ήo5€y΄±2tΰf(ΊFTJ8μ—hf?«™"lΦΨ&ΪiζΘ4}™"L�‰„αN»Cνϊ,†)T`}뚻~ξ}žΠwά-kΊ—»qx‹z»ΫQΟχ\pvCq™Ee»$vNΈθTT”όαΒ k;v,€'Άνύ΄N ΈxδZZ›―₯Ί7&ΘcžK©œ–ή}Wmcil‚ χB»t0¦B Κ$6α ρuθύ.Œ0› m‘ ;=) ΛΟρ¬H`Φ—λ8ό€»9‚έB]‡< Φΰ6τήlγn‡{ž κ9υH8η»α³Ρ(LŸ­ξpΩι0rHπξςΔ@u8d?6ΊΞmk!: ŠζΩΡ8€„ιsaψωΪτ[ΪνYΖΰ χ Έ*‰Ud"mplΗo„>½,άΦ­ŽΞi°L„©Δ²lmdΦFfsκšΙρ»ΊΆΜqRAωBο8*άγ{$½`}yŠ‚ Ά ‘δRBΛΚQ"Φ:‹μ„V·Θ«OΗΩέΚρ“²υ€ #PΪ Ά­ϊ$›cENp]hΪΙ‡ήG$••a κkr8ΆΔτ˘Α»JGYήΆΎ]χzΟIMx‡ƒΙD·°9np-‰€²}Šβ’υM Oθ‡Œπλ_Ϋ–½ϋφεψΆmiιdA%°½=ιMξ―ΩύySε97Ÿ·oΣ— haΐδ}9…Ύ*ύ>Znc P9χΦ΄ ΈV­R OΌœŽ %ͺ•ΝC«ΧΑšjvλχ~™h{΄~ ι!"¨žhΪ„#ΥJΉΒ^ej_•ζΈγ2ξΗΣ4ΘΑ²v uPϋζ‡τ&»ύάomφΊ#xφΥ ΄oΧDU ? *ͺΰ΅Ικωœ…πΑ,8β@0έθWG� M₯>}6Μ_’’ΙωŒ*2–£³1΅υj/ΚΪγ}'z^-½ΡΌΈω’–τNC@u{8`?˜τίό€8[ žΫ‹‘οAΊΜΒJ˜*‰©,D/”¨ι퍢ύ‹Ž―Μb$)ub˜‘0/½Ÿ))1>0Λ°,ΟςtΓ’ZΑΟ²Ό#>Γ?LΉp}ωεΒu o·e…q'†e°Α°Xm$¨·,ί»άtΓ¨ZάΒPΣΣύ’Y~ZQC2•ΐHYˆ”…HXJΙ1 ½— 9Κ^ΗΔDxBΪΨ ¦Π½aΤά`cΓΫujKll'°ΚνΘΥΙ©{'§έkQδ‚iϊ`Κήφ"eΊν¬h›Β–6•%Uwε±Δl6g 2xhϋφ½sθΑŽ!<‘νS ¨h«ΒF4ύΗόyκ€–Ω aϞπΪύŒx.ηαΣ­Tά{/\»$!‡£-ƒhΪ%qH κ,(ξwΤ€Τς̜»Š‘§άΓΕ—Ψ”Ζδσ-έB‚±šUlBυ-H™#γ8<χμͺΛf2|˜σ5 ­eMξ† `ΏΎAΏΟ] 7ίXζ%EpΛεΠ͍·„δ2zVΓΰ½ctε–,δ8:"cP·†CΛ?; `@}^yxώύ› ϋœ\Νΰσz…μ"gDΛυψM‘ά^΅+i) έRΣξž5*3…žΙ"39žu*˜hT†πΌν™ˆy b²¬OPΰo(s|}"œ^�‡““δɘd-‡e1Β퉓Ν!39ΥΝ9œl‘Ιπh’#'ΚB•J)i¨ΝωŠΤΊ•Νκ@6Ο2w­σ _<g85υ.΅υτ l~ΨΐRŽD5²‚φΥE4g²λkjη τœMΒ2»άǘ=ϊL§Ψ‰zœo ’£,Ξ—ξυ΄& ‡-TχΖςζq”˜τΈς‘Ί.„ΓΗsaŸ>0ωοPξΞuθk…:S‹¦·ˆΒΛ[ΰΤ2(ΰ0ΉkβΕ*r(*P¦ΞZΑq§=ΐΈqΉo₯wαZΠ+W�Νπ—«ΐΘDŽg)JEϋA›ΡνŒυœŒϊyϊuœΙ^}ΰΌaόAωήΥJh'\·Ωœ­δfδ9p/Έξ<ukΩΊ`Ϋ0κ(e₯G}0τε==ΒΚcΑΌ1uν”8$H „Ό > ‹Ύv-΄{Ϋ™#ξ‡τΌ¨σεhlz{ΓζϊΤZ’¦αOΉγθλΟjΊύuQΞ+Ι6˜:£ŠΊ18Ό>ΘoPλ„n^]1Έ γh©>…?Σμ°—lδβT²Κ-w?ΉDΡο-;ds8™d²όΏςή4f0΄έzλ7δΘfΜ¨Ω‘aCV[;W±ά£’Ζsv 9Ω >β€χξ½`S‘TuL“JNMCέΔ7nžvL,+<λ¬3Ϋ|ψαKΣƎ­ο³MΆ΅YT$Œ8‘[θK η~­[ –/‡‡ώ‘]2oύνŸ/ b―z[τφϊρHi…πά%p€ϊ#۝ 2ΈaO£•JΙ΄Ω+8φ΄{ωΑ$ιτ/ΤC~ξ΅© /†yσΰΛ/υƒ‘Γΰ胑W5”%Q‘ΜβSοΪφ|Hχ₯ ‘’\mhhδ‰GξζΌ“j˜Ώ Ύs±:ΥƒΓ€+F«bB¨©ω¬τv�� �IDATύ«:;·ΊS‚³ΎSxΌ=ΊΐΰψJzhM=’ό€#ͺ4Δ”ΡοJ8ΌŽΛ ˜ώάώ0Ό2I;H'fΒ`Σ»qΠΩ=H—YΎ ͺ<ζ]*±9Ζ©aoΩHΒ±q$¬“ΜΆJ(‘E p‰ήOWύC‘Ώ*έWhΌγ~UBh­YJG:AMΟn[t³Ϊ‡Ώ”獷|€‘ ASƒM_»‘ο‹u˜†‘’ΉI|oyr6NΞ¦.+Ή§’ŒDlί:Άdε’F΅}Ν€ k28Άτfρ—3΄wμy°=μύξ[θΎ€w\aΦΡ₯ θM$m;§Ιε§‘φ„™·}ωj,όα―δώϋοωΟΝ7Λ›c™mHT¬φhΨX" ]½<DΚ΅¦l!Ÿ§y$JοΈοAεύpρhΈοF0rA™X ]oͺΩG˜zTxϊiή‡‘?Nΰξr8ͺΞDΐ;§ΌA¬m/ξφΔ—rϊ9sΕφ.c©λ>Ά­ΖΞ—_Β_ΐͺΠ¦ ΩŽ‡ RργSDοί“Zz Pp¬ QαΞx$R;ΨΕνC!Ž<σΜκυ_zuG^‚ύ:&8~8œ{‚Ί7 xξ-xκυΐ’Ξ;Α/σί…pμp(Mβ ΒM’#Ϊ‡δ+ ώ8σΎ±]*nύϋ³αΖ?Α”™Κ€Ψ(΄φ;h·₯ΰ―…ž¦τ©]γκ‘z{bž7ίΉD1BΌ7xπΰ‘Sί› ‘‰λ±f !OHΎ²δ£ΡM:NΞXχΊQ“[“μ_~pε’ϊY]$Nw[ζ:%ŒtgΛHξ™±Ί›"QiV©@”ƒ0μ,N¦Ω1Κ€ΝΑΩZϊ؍€› >K”03UNΞΕ%t:άo|―_ΥΔ†5YΦlέΚf5έn ŒχR₯K·γoMΣΊ8Κε vΧbχgΛ%H$ν:§1Lƒ¦ζ¦·Ξ<τάczΚΟs±―ήύΠοΏφZ..+Ϋη£{ŽtΠϊΑΈ1ˆ`- ΘΝ¨_¦ΐHΓoΐdΧΉ¨€ΖŽ=ΐΕ%.o.*θdπΔY―ώ½ΠH‘e…Xα»3γΐ„.7w|¨― ΝJχ¦ξ”υ0qζRN;ηAΈB’Hμx‘+3B¨έ«W++{ξ\¨―>έα¨!0r8  ΫD6Μ8B‘6i…ͺευH"=ڜN ){ŒEχΐU΅Όυφ»Tρ*ƒϊͺπ|~φg₯xx0°\3Fm»xό˜0)<ΩWm…KhJ–”°Gw8 _ ό6‰ύ»Υϊf«φΥNŒΓƒ5Νκ<ϊ‚ Λ»5A΅#α±Ϋ Wa₯€5txυθ•Fψ­”€ yύ―:BˆKŽ>ϊθGήxγ Ά6δμ,B ‘œ�m'k€α<97Φ€eOŸcV»b³΄L Ί Ψί4] !Ϊ˜†ήφΈi~|9«VM½ ΘfjΧdό5t―?ΌΎρΦΡ=w}κ=l©{VΊ·έ *@yU’T±I6›kXΊvι_ή»fzΒLΔ‹ΆL&cτι³Η#F,½³W/gΫ1Ie•Η Ϋ8Α7Β‰”‰K'ςΌ%qω αH�Eκ57ΓC)ζ °GWxνAθέ>ΐχθυE…`A}Dš-¦Α…#έΡv,Έk½9―9(-έΒR žzi&W\χ<?όapΚΪΆOxyqΩkjTΰ‘ΉsΥOfαΠaδP8vτλιΖZχβ’»cΑgŒκP_ρ‹ό—nϊ}N>³ 1Vd»σ©ή±g₯{Z †ΙΏώυ:ύΪO’o§γ'ΑΕ7…=΅‹Rpα)0β@…ϊυχΰ‘ a ²Ό~τ=΅LพΏ§Ž„„ά*:ΆG_νb8κ £σo€ΌŒΊκpο/ΰΔC�-Ύ«ι²¨<BΛ‡φπζΗpƏΤΩ�Bˆ—‹‹‹GΧΧΧ7l>[l;‹B\7sD)s—$Μτ9–Hv ”`—^©Ά ~6m­ϊZ6γPγ υHέJ K_¨ϋGͺjBέw”sΧΦΥ4»Β(‘—Y—%l¨―ϋιΗšw»i('XΦηZθΗsŒρβπᎡM¦έυ3Ξ7&Xύ†iωΌ{Kϋ ΒΦ>­¬7G¬ΊIχBΨjy–,ΗWn�΄Όpt)UeυΪΗαU―υuήŸŒC½Y2œEv¨ϊ²xoτΟ@j7ΒδήӌγπχGΞ‘ΜcφBϋ3ψяA»%ΰ΅Χ4ΥύκΥπΥWJ`/Y"θ‘-‡λΕ1‡χaψΑ=θΪΉ ™³Žΰ‘ϋ;cF~NΪΏο@1‘ •ΒνOA,ƒ(Œ#θς37AδePΒ"΄~‰m<ϊΰœuΜbŠ-νέ0k œ#|πYΈ ]ΪΓ'Α #Τρ…7ΐΌΕα<}»Αω'ΑI‡++ΣθΨ}΅‹βͺΟο|~v;4·rΟ{Q »nΌvΛίϊFιˆδ‚0γK8α2uϊ€išsΚΛΛOX·nέ‚Φ΅xΗƒmηΈjΖA{[ΏL©Q¦ε1²†Ί,ŸΟXκ{Κε$λW5η+bΊ@—A”8]¨ΫvpnΊ8€€€<AΊΨΔq$uυ?ΔΕητΤ›}ƒΨWΠΨΨΘθΡ§χ^±βΥΩ'δ$7ΩΣ½Ε^K―%QΝUf‘,b³P« Ÿ™-Ώ)ψR@’`}‘ςω1ιQ{Ξxζuš@―jψη=°wWWψyBΝpšΠ ­·h£½ΗΆO/Ά+ΰ :]Bύ‹Ο%τiΗΌώΖΫȚsμP0\ΟM+o…K/kPχΪiYκ=-Y’Φ³ηΝƒΥ« φΫ«š£FξΙ‘Γzrΐΐ.T”¦9Ϋ'J_χτλ‚ρΟΏΚύ¦¨£guζ'5uF-½²Ωz™SS¬bqBT¦iSΟΙW.έrΑϊ­dώ’Ε̝ώΗκθΗ―ϋ—cΒSoΒU·Βκυα>mS/άCχ…{žƒ›ώυα<έ:Αͺcˆ[EΗφθ«o¦Νƒ³―Q!~£,°Ό½ƒŠΗfΡαΥ©}Λq4J^žc― Yδ_§ΣιSκλλ§ϊΉΔ»H)ΉαΓ]Ζο,#1Ζ¦ΡP—γΣwΧψϋΤ֯ʐΛ:‘r€ςvΧzΔI.ϊς€„ŠvI΅VοΐΊΊ ―ώε’ϋN8fΠwΟ:w³†]©Ώμ2Š·š§{=ρΡβτΦ$P‚²%Α]κ΄ϊtβύ«ΟΛη ρhoY \4φ| |ύ5όύοΠΰN(U”Β]?‡1ία:Ο ­}‘©.ΒΒQ¨Ό<ώ­γςμτ8’ύ ύω, k‹JSΝΟ? bG,1bpŒ.5\u•η|’„{"‘ήΑόωJ`/Z™FεΕύ*ζxΏnNˆͺK ΡΟ'Μθ<ΓLΧη{@Ρ νΚ4š5πσjυFϋKοƒhλ}νχc\ΉΆη"Σ}π½ZC‡”`Y<pχ\tςJεΥΫ„Nλoƒ―–©ŠίΡΟ�Νώράτ'ΚτΏΓΐ„Ζ~A:ΆG_}q`BC3P^δ.sΨρΈ7GFΐιΧΒkS`π@Έu1P?1αΧΒο Φω ØUUUuʚ5kζρ „k>8xŸ€Qτ°‘K ™9i•t\k}e³Z7‡ΐRw€ @γx‡·’Sžπ/*΅\«\εέPWσΘΙŸvΩνίKžEA‘ι8νΫS/Ώœ‘‰D‘\­o+šΕ­GΥΫΠ§π!_„`ΤzPHˆGAXλ^=�₯/λ}ΐuupΟ=Βih¨΄‡nN%ρν:œΕ£΅±Pώ–κΩ)p�΄9άόG»#ύΰ#>|οuNQK΅λ¬S‡€Ηί„Λ EEPQ¬Άx}8΄ti£βA‹Jͺ0«E’ΰv@tάψ™½t%ύλί3r.)ƒ0§Œ(•Ύg΄^Ÿz™(Ύ₯ @”B§kΒΔί1ΠZ: ΑΏώωƒzL¦ΊmLέ…θˆy–Χή< h#tDqθy ራk7Ž-Ζ!jYλ―¨Ηϋτ™Ο‚™ ψt œs|όΉ_ƒ#„xΊ¨¨θ²ΊΊΊš]Ω"o H)ΉfΖΑ–egϞΉ{ύ2»Rο{ι@έϊ ΅9s“2όϊΌ©uΓ””%0-#•°Οεr™uuλΟ^ψΠŠη …p΅bS\.g˜fŜϊϊš‘›yH‹'M ŒπΐΪšΰ…Ÿƒ¨€o­Φ‘tΡO€Ϋ6|ς Ξ΄iΦ‚•+ίτθΡc|mνΌš²²2+›ΝŽΛf³ΏόΧΫ”v9IψΙEpέPκΞεΑ‚…άRS=rEδ6w§Α!RΘT_X΄δkήyk")9Ÿ£†f9Έ3<*Ϊ-β0v$Œΰ YA’Ό€E!:ŠφQe"sž±S ž†£Yΐu$r_‘T‡X…­½Ό—¦΅+oVC/#bR+Ε‘Ϊ)R€YΨ8HIYU5uΠ΅m 8βθ`#tΔΡΣq8Άv_νΖΡ2 YNΏ ώυΆz΄woxη1X΅~ό{xζΥΐ!0Œε†aόΰψγaΒ„ 444πMζ€7£—žpωΔ1Ώέ·ηϊš†—Š“%{ƒZ7O—X€K,ΰΘΐ Ξ­@ρ8νΔ΅\ΦΑqpκ›ώ±GΗ=Ύα_dΔΓ……WΑ'ŽγNέxΞ9™_uν*wήχη)―ƒ@ ρΫD‘Πψœ90i’˜·fΈ»OŸ=zλ­·κΪΆmK*•?/___Oeee'ΰOΩlφ \εͺͺnΈ<Š EOž ΣιAόim-]'ΐt°#pH`ώRƒχ>1Ψo―}ΊΊŜp™νFG‡B’=Α>½ˆ 0ϋ•yϋΉ%πο·&Ρ½τίμY΄gc^e‘«ήξΈ΅οΌρίξϋκt²Olλθxλwι’x•½Ίΐ±=θ؍c‡γκ8β|˜9GU9¨  }Z‹U DpΧ^{νυΛΟ>ϋ¬‘εC@Ύ= ₯dΐΥέژ¼#(>Λ4 ΛS’Τ5 «¦βƒΩlΆ1Σt[Jό~Φ½ šZΣ§s455½{χ>ξ ƒ–½4hΠ6>FuK@_—χ` q} ρΌύΆXΈj•yϞ=οš4靺:`šygή΄‹/¦W―^{wδrΉ£½τT~r!\s΄IRVtΑUhxZ5υ“[ƒΓκ―ά�,ΫΪ₯>L―_±pΑϋ0WoΨΐkΟέΕΨγ3!_έ±(TΖm›—ΰ?Ž)Κ―=“qω 5έ.…εUΰmXO?9ž£φŸI»’HΗn;Η‡‹ΰοτžΟY–υD―^½μ³Ο–[–υ­°Δ7€#Ήϊ‘Λ©ͺ₯ρΕQI£θtΣϋ"E;)e1ˆ:G:+›š3ο7gŸέ§η^ύΥλΞ¦*F˽ϐ!Μ<αΆΝΦ΅-o‹šG…7Ύ @%ΐ§N5—/Z$ξνΫ·Ο=Ÿ}6k5°Uq.—£¬¬¬g&“ω“mΫ'’-‹sόr 폚Ψ1/PϋPc_ηΛK‹~Ψί&₯# β(7Ρ3Y‚{_ΐKpύΕΥ~x)ΙHΙέwœΌŽ€Θ+"€3”ΗH£ecš›ζχEρΘͺQͺϊM C ~N:<rΈτ΄ΊπΎδνIΗn; �ά|/όοαͺ„M¦i>ΉsηŸ/Z΄hνnK|η‚ίFIII‡φνλ{Ι%tΟn£3}7Ό©φm`‰K©φϟS§šλ—,IήWZZzχςε+–¨}†Ϋg;ŽCuuuεκΥ«œΛε~(₯¬τž΅)‡+Ξ†+Η@Η2Β³q‚π½ρΊi.•S >όρKωMΕaBϋK!Ρ)\±/θ΄d­@³γπΘ}χρύ“—“Šs]ιŠ%#R―NƒŽΓ/y‡C‚h{2έ'ΪU₯ë띩3(·_`Ώ^αώέtμΖ±CpH ³WΐΘσaω―±2™Lώ<•JύmνΪ΅M–UΠυj7μ`hQ2M:Ω:ώψ£¦]{mζ€œεκξ,#‹ΑΔ‰4,X J&ΣwΤΧΧ/؞Όε6JŽ;ξ8λ7ή.„ψ•mΫ‡β/ τξ O€Qž$oΚWFꋝ†ΦΉΑ”8Hψ&ΰ0ͺ ΣŽύ*·ΟψάΒ}ΊΆ–gvί•!α‘χ§ήν*5zt‡#n䡈ƒbθ|;s਑ΕŏőέΧ7gxζΡίsώΙY Ήι؍c»β@£„ούώ5ΙOΞ%‰«²Ωμ=1MΪ ;!΄(©lΫ6Ϊ΄©|ζΚ+kG%Ϋ!¦ϋv�©›¦:1mβDΡ°p‘ω!RΏ»ύφΫζ]zιeΞ¦oohnn&‘HΠΏβeΛ–XWWχ€ώRJ_ΐwlcN‚«ΟƒmP{ήΙΧΞ}~'εβ‘ †Ώ‘ό;=ŽΓ‘β„οm€τ΅ `šL˜π S:�εΔa²ώ4ΏN@ŒΒέμΚ„’s΅„£xTy±Ϋυ ωtθ ­RBFJΉο.:y% ‘ €AΗ&ΰΐό•pΗίαwΧhΑw†χ±³γ�r&άp'όωQΠ‚ˆM�ΞF…Ϋ »΄(’›ššhΧνgŸέpk—.;±cάF@J\dΥ*˜<Y4̝k>W\\uΫΈqγ>½α†œΔo΄ί±ΰ8Ή\Ž‘C‡¦?ώψ㣁ŸζrΉ‘hΙ„ qιχΰΤPj>َΘ7αϋϊlΖ0ͺ‡λέ<Z…Š‹JΤ@šωΡ'|ϊίη8ϋΈ\ΰΰΓ|£S£Ί‘§€xeΒUΆΎβp8@» !έΈ«γξφ=’Γ?m υί‚‡ξ½“1Η­RG²ξH:Z‹Cœs#<ρ >œ~,<π?P•*€{g£cΰRόΉτWπψ„ΰΤ<Γ0>,**:f͚5«Σι4»aΧ‚Φˆθ1§œΒγƒmσΆl5πψš50eŠhψμ3ω2€wΠA}8qβΔά7} (“Ι`YW_}΅uί}χν \–ΝfΟ:θV|i1 ?�.:ŽUiόνbΓ B0ΐ–”Ί‘ ηΧ[¨ΎΓμˆθπ^τdυ<πv·…`;ο±|ώkœ~΄MRΔ Œ΄…HΏ .]:SŽKΣihQŽμtB$άϊΒ0ιβnύ’kΧρςψϋΉΰ”Fp'Ϊ?Ϋ›ŽMΔ!š,œs=ΌτN0Nϊv‡Ώέχ}βeg₯c{ΰΐάUpφaΖ¬Puo%“Ιο577―ή–wΓζA‹oΞqΪ΅kΫΏ_ΏuŸw†ŒŽ¨<Ύ~=L™BΣ§ŸZ―74δn=μ°α3&Mz'μλΰ;ΗΑΆmͺ««“Άm¨――Ώ¨ΉΉω( Τ^l‚ώ½αΌSαψΓ o0½„oνΊ\"jύΖZΒC V=VϋvΕΘ£ βHMWKΓ`ΞάωLzύ%?p{uΗ !KΚ½Ž°Pœn=]WRόΔό΄MΒ!A�U§β- D!oΓs„ΰωηώΙνΛώ}\\;šŽ-ΐ!₯š>ώΥCπϋ‡ Ωέ#mpρπλqΠ6.Ώ3±΅q  Ξ†;‡[ΰπͺ\2™Ό/“Ιό,—ΛΥ}Σ o΄(ε2™ ]taϊ½χž¨=ηœmtκΪf€'ΐkj`κT‘™1CLL§ΛΉzυκw ΓΨ½rΐq€”TWW_½zυχ₯”ί±m» šΓ`™pμ‘pΚwΰΘƒ GGWΠ;a樃&‹CCά}\93©m‚Γ1�‰Ž`,_΅Š)“ήcν²ιsˆMΟΞ„b`ΗΥ©[H…š₯#ο΄ΞMΕ!²έΉˆΤ~Žό:Ռƒ#“§NgΕάrΪHGΕk; [ ΜZ έ Σ>ž™Œ= ώχ*θR?~wV:6¨΅9xδEψω*†Ύ KKKΟ―««›ΔnψFΑFΝΦ;ξψ³υΐ·|vΖkχάQF'ΐλλaΪ4œιΣΕ$ΗIξε—_z}Ψ°αN2Ή6Ÿ ‘ΉΉΛ²p‡^½zuX΅jΥ‰RΚΡ™LfΈ’Ψ›²χ„¨eΒAΰΈ#`Δ`ά)~©|­Kΰ<λ#ΒΔBΣ‰.xΕ£Ξ&㐰‘Ρΰ™Χ-φΪ#Γΐ=ΥAž�βτπ„j™D wφωk„+’kσq$]ώG5ήMτ¬t―xVJ^yιudέTN<ά ^Ω©θΨΊ8€πΦ Έώvψ`Vψωΰ}ΰϊKΰ„aŒψCξLtl ‡” πρ΅wόΉΧΑvτ:ΔΚT*uύώϋο·©S§nrΐ’έ°kΐFίκO<Α~pΑ3—]–9£Έx{4)ΰΝΝπώϋ0}Ίω^]Έν¬³Ύ7αo{,·ΫίώΰyΦtνΪ΅K]]έαυυυ§J)v§~  ¨UœVŽx‡ ΒA{Ci ˆfŽzΗ…@Ί‘+1š°•ήΛfSql Be"οΦ‚‚8�ŠAΟ»]eΓ`ϊτ™ωήk7¬Žž!Ξ‘§ c;ΰΐ„OΑΟώ―NV!›=0 8x \<NmJlαvνP: ΘπΖ{πΘsπςΔόhn†aΌŸH$~ήΨΨψΊ”r“#Xξ†]Z;τnϋΑΈΆC‡m³uΝϋ¦Mƒ3ΜOkkΏιίΏί 3fΜl€­m7l=ππ€” ><ύώϋοχO$#Ηωn6›ιNwΖ5υΩ½μΥFƒχ‡‘{A24£œσŒ° †xa[πyΤBr―qCΈP±3ΡΪL@žrΡBΎ8b6 ‡Ϊ^�ι^H+ΑΌΉσxϋ­w¨L-ΰˆƒlΪ»S˝–Ž€#gΒΔα·χΓήGσ7P°``_8v8Œ<ŽΨίUD›Ο Ν&mM:d0» 0g!Ότ6Lx >œ ΅‘ΝdB='‘HάVRR2~νΪ΅ίψΣΝvC>lT<ηr9£S§ŽguΤΪΗϋχί:‡΄θΡΰ̜™\°z΅ψΥ{τ~αΣO?«έό›�ΝΝΝΈ> Ζ©§žj̞=»ϋΒ… χŽ•Rްm»§”2ι2£`ΝΕΰ*K‘ΊƒϊCΒAϋΒΐήPRI€ΐ"tΙίήCX¨Η nΝŠ*�Q†*GώΗԚς_ί¦βhΘΒΫ5Ψ³·CΧφκp›¨oΓ–βΨtμ0R{nΑx~2άu?Μ]DAHZΠ₯tν {ο‘N λ^ ½»AΗ (M‘B6©ƒ ™¨i‚5΅°tΜ]sΎTΏ₯Λ`ιΚΰΰάo%gΖΧΐpΒ _<ϊθ£9Γ0ΎυΞΏίvΨθΫΟd2€Σ鑇Κ;Η³yŽqž�·mψτSœ)SΔΒ5kŒΫιτλΧ――ΨΥχ‚ο†MƒL&ƒad³Y,Λ2nΌρFλψC›N:ν½vνΪαΩlφ)εώ@Ή”2νN燴<!ΐPV •ε°wΨ·/μ΅ ξ Ϊ©i”Λυ…$Μρ΅zdœTˆ*Zrμg cκ WU°žέ8ΆŽ‰.…ϊ59ΠΠ‹—Γτ90η ˜1,‚υ΅Pί¨ŠΗπ8Giš Άm―—R~ τ·,«mΫ₯qcs ΐqsƒγ8+-Λz7™LN-..žΤΆmΫ}τQS2™tΗΩ=…Ύς`£½©©‰1cΞκύΥW―N5ͺ©=Ω,τ)τΟ?Όύ6 V―6ξμΪ΅λ½ός+λϋχοΏΫί …L&ƒišH) Γ0œσΞ;ΟzσΝ7KΗιΊbŊ‘%%%{577 „θ™ΝfΫ!Κ':½οI‘¨)Τ’”—Βέ ¨ξύzBοΞΠ JΛ 2©–€«'άΆ8οeύΤRykς“2$Λ ™€ίB~=~g+,„ΊΟδ`}κk`ω:˜ΏDYΈ‹Γη‹`α¨o‚Ζ&uF·ώώ5p„Ώ½{βΈγ�ώΩέσϊ€³}>YgσHμ΄ζ0y Ѝk‡@H"₯B(Κƒ?’Š’5"NΥVQΥJκ?‘ͺ* Qώ(’HJ„ HΤ•"&‰š†‡_αaΞΘΆγ{ψ|ΆοΞ»³3ύcoΓΥ„ΰπŒαχ‘VwΎ³ΟγΗνogζ7Ώαp_Ί§LΣμBΙησ‘HδΏΉ\nhυκΥcoΏύΆ΄m›3Ζ€γ8π ΨΆ )% Γΰœsωβ‹/κ�Μ>ψ@‡Γζ’E‹fφφφΞ<zτθeν†Γa±dΙ’ΤαΓ‡ΗcbεΚ•" ε·lΩ"”RάΆm©ihωΎ¦Π7lψ%ί·oΗW--²^ˆ‹?§ψMzκpθοK$ŒwkkλΆμέ»'S[[GW“δΊ°, Œ1θΊΫΆΑγX·nokk㍍w~ρΕw›¦Y722²PJΩΰσωͺ„A�3₯[λς’W—ΕA‡ζτ9*Λά ‚pΠ½Uα*`nW�ώΐ¬ΐ ?`κ€ΙέrΓ’])ψζ“z…—†^ œœΐχν]ΰοαr_g‰‹Φ=‚/ “€- ι!fΡq ;œOηRΐΠΧ@|H€έ AΜs{Μή<²,šΏΜ‘Χ»Νhš6dYΦ Οηλ4Mσ€a=υυυνŸώωΠƍεζΝ›e €”R†!”R 3d:›„‹R ₯₯μ_―ΎŠ•“kΊχ|ruΧ��ωIDATτ�‡a(ΣΆj+—Λ †§W› Ή&,Λ⚦AΣ4™ΟηΑγ½½½hkk lάΈqžeYu†a„ΚΛΛkΗΗΗλlΫu=˜Λε‚�ΒΈΜf½ή η…ιξN|3”Ο.}pξŽ”š@‰(1άς½Œ]xΣJ�JΊe;e‘* {+UΘ{gξλqp­θώδƒΉΟs0―έ…ϋ=ζ=Ξ/n{ρ­wx?σδη9Ώό}MsD8y’ΙφvvJνc!ΔvΛ²: Γ€”’ !h+ΉmMiLGΑ++«ΪGGγ+ΗΖΪΪxͺ§Gύ-˜υΦπpΊΟΫ‘LJ‡†‰Θ΄ασωΎH/ £z§ G»mۈΗγ�ά ΫΒάeSi)mρbΉjΩ2π™3έ@JωHWO)7pΫ6<{φ¬~p|άΩ1wξœύΡhoβΒˆξŸΛΛΏαœΛοxiBnyS:Y–…ššš{GGG³Ιd²Η4M άδΆ ₯D ψ‘mη0ΎσtS“ςWUΉ žΐ―ŽR€a�©ΠΥΕΠΥΕΟ ϋ>؎—_ώυ±Ν›lišFω6„L’)°m±X"‘εJ©ί†Γbύ£ͺͺ;ξ ψ•ςζΌ½˜2;¦ΔωσΎOΣiΉ½΄΄΄uώύύK—.•Ό Ή:tŠ"·-Ηq`Yκλλύ‰DόΉ@ΐϊ}c£¬kh�Χ΄’Ll2%ΕΑ{l θθ`’« ‰tΪ·Ϋ4gmXϋΐΐ@–φ[ δϊ ΣΉm2Ϊρΰƒ˜]]ݏ̚εΌ~ί}βώ₯K•ξσέψ�^œ±]œ4ζev~Ώ;§όCRΌΛ”ΐΉs ǎ©l,fK§νsηΞΫ³pα‚ώέ»χJ₯MΟrƒP@'·4₯ZZ^αΫΆm{ΐqΖώΨΠ V57+ί΅Nd›Ό•«w+₯»'A6 €ΣΙ$ηρ8²Ω¬‘ŽΕ¬t>―Ξ–”ψ;s9«7‰τ G‡†^[Ύ\ώbΩ2π›=Το]δ0ŒŽ_}Εdg'οO$΄ύΊ^ϊ^ ψρς΅΅΅°m›–}rQ@'·―M ¨"Ώι»œυΛ—ΓBL-8χœ½eSξk»9“art|pH&U&•ϊ‡‡Y‚s_T)td³ΩΎŠŠŠΞwί}ηl,v>ΏjΥ*άsΟ=RJ !„WΜJ)˜¦ιeΞ‡fΜΠv<ω€X΅`Aaνυ ζmŠδ8@?pό8ς]]όΘΔ>¬«»λ[·nM477Λ Y愐zW’iΝ Œ~Ώ?dYΦ†9sTKS“ ͟οpOρΊf!€‰ †‘`dD!•‚L$ΈΜdx"“ΡΞ N jšΦY^^qΖ²¬³?άΤ“ΛεϋZ[-ΗαJ)©”βRJιU »RΥΥΥσςω}O?»««―ς—1Eή‹¦Ή½ξ“''τ‘ή^φqyyΩΞΗ{μ“νΫ. UΠnL£!W:™v”RX³foϞ=λΚΛρ›ϋο—‘yσQ2™RblŒEm{F_2™ο ƒ'“ΙΤ !DssΣΩ7ήx#΅xρ8Ž#KJJ ₯„γ87zΈψ‘šμzζΤΧο›xCζœ±ΠΡΑδ™3όH:Νwϊύ₯»S©α¨RJJ)iΈœiŽ:™vZZZΠΪΪzg$IμΪ΅kLJΙmΫ†a²°™ΠΝnβ·J&¨¬ ­©―ΗΆ΅k0Œk?‡―λ@>tw,;0 οΞηεϋO=υ³ƒ~ψQ†’ΤΉuQ@'δ:²m 6πX,φ»{οΝΏώψγnΉΨ+ δΕσϋš|ύ5pτ(§O«žρρχ�ΆϋΝ7zjύϊ Βq¨r#!· θ„\J)ΤΤΤψβρwV¬ΐ Λ–ί­‡‹ΧuOL�§O3?ΞRρΈρΙψΈάQS3ϋ`4MQ’! €NΘ5‰DBƒƒ=;ŸxB<‰Lmy\ρŽ…Ι$ΠήΞ¬ξnDGG΅χKJόllόIΟή½[RJH)QRRrc~BΘ΄Ak 0‡©¨ΐgŸECUΥ₯ ΥxΛΓr9 ―αΛ/UjpΠό4“™ΨV_γΦM›6e_zιWξΎTQ2EΠ Ή Ÿ}φϊpu΅Ψωάs¨ςϋ/<W\”%Ί»™μθΰ§2ύ£²²ΐϋϋφνλ^΄h±€ynBΘ΅@+ „@eeε ³ggήZ»VΝτφμΆ, e²½]ε£Q~1σ½²²²ύηΟχ§ dnvΣ !„Ϋ›R GŽηψSc#μW^Z±ΞμΩΌWΧω_ͺ««zώωgu!·,λf7—B!“ ! …~λϊ`0ψB0œsβΔ H)111q³›G!ψ²j°!ε¦����IENDB`‚��������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/substitutions/index.md�������������������������������0000664�0000000�0000000�00000001577�14654155362�0026112�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������--- myst: substitutions: text: "- text" text_with_nest: > output with *Markdown* {{ nested }} nested: nested substitution admonition: | prefix ```{note} A note {{ nested }} ``` inline_admonition: | ```{note} Inline note ``` override: Overridden by front matter date: 2020-01-01 nested_list: - item1 nested_dict: key1: value1 --- {{ text_with_nest }} {{ admonition }} a {{ text }} b c {{ text_with_nest }} d e {{ inline_admonition }} f {{ conf }} {{ override }} This will process the substitution ```{parsed-literal} {{ text_with_nest }} ``` This will not process the substitution ```python {{ text_with_nest }} ``` Using env and filters: {{ env.docname | upper }} ```{toctree} other.md ``` {{ date.strftime("%b %d, %Y") }} {{ nested_list.0 }} {{ nested_dict.key1 }} ���������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/substitutions/other.md�������������������������������0000664�0000000�0000000�00000000030�14654155362�0026103�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Other {{ override }} ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/texinfo/���������������������������������������������0000775�0000000�0000000�00000000000�14654155362�0023164�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/texinfo/conf.py��������������������������������������0000664�0000000�0000000�00000000073�14654155362�0024463�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������extensions = ["myst_parser"] exclude_patterns = ["_build"] ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/texinfo/file.md��������������������������������������0000664�0000000�0000000�00000000025�14654155362�0024422�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������--- orphan: true --- �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/sourcedirs/texinfo/index.md�������������������������������������0000664�0000000�0000000�00000000205�14654155362�0024612�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Check that NoURIError is handled correctly: [](file.md) Check that tables can be built: | foo | bar | | --- | --- | | baz | bim | �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds.py�������������������������������������������0000664�0000000�0000000�00000044377�14654155362�0023631�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������"""Uses sphinx's pytest fixture to run builds. see conftest.py for fixture usage """ from __future__ import annotations import os import re from pathlib import Path import pytest import sphinx from sphinx.util.console import strip_colors SOURCE_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), "sourcedirs")) @pytest.mark.sphinx( buildername="html", srcdir=os.path.join(SOURCE_DIR, "basic"), freshenv=True, confoverrides={"myst_enable_extensions": ["dollarmath"]}, ) def test_basic( app, status, warning, get_sphinx_app_doctree, get_sphinx_app_output, ): """basic test.""" app.build() assert "build succeeded" in status.getvalue() # Build succeeded warnings = warning.getvalue().strip() assert warnings == "" try: get_sphinx_app_doctree( app, docname="content", regress=True, replace={ # changed in sphinx 7.1 '<literal classes="code" language="">': '<literal classes="code">', }, ) finally: get_sphinx_app_doctree( app, docname="content", resolve=True, regress=True, replace={ # changed in sphinx 7.1 '<literal classes="code" language="">': '<literal classes="code">', }, ) get_sphinx_app_output( app, filename="content.html", regress_html=True, regress_ext=".html", ) assert app.env.metadata["content"] == { "author": "Chris Sewell", "authors": ["Chris Sewell", "Chris Hodgraf"], "organization": "EPFL", "address": "1 Cedar Park Close\nThundersley\nEssex\n", "contact": "https://example.com", "version": "1.0", "revision": "1.1", "status": "good", "date": "2/12/1985", "copyright": "MIT", "other": "Something else", "other_dict": '{"key": "value"}', "wordcount": {"minutes": 0, "words": 57}, } @pytest.mark.sphinx( buildername="html", srcdir=os.path.join(SOURCE_DIR, "references"), freshenv=True, confoverrides={ "myst_enable_extensions": ["dollarmath"], "show_warning_types": True, }, ) def test_references( app, status, warning, get_sphinx_app_doctree, get_sphinx_app_output, ): """Test reference resolution.""" app.build() assert "build succeeded" in status.getvalue() # Build succeeded # should be one warning: # WARNING: Multiple matches found for 'duplicate': # inter:py:module:duplicate, inter:std:label:duplicate [myst.iref_ambiguous] warnings = warning.getvalue().strip().splitlines() assert len(warnings) == 1 assert "[myst.iref_ambiguous]" in warnings[0] try: get_sphinx_app_doctree(app, docname="index", regress=True) finally: try: get_sphinx_app_doctree(app, docname="index", resolve=True, regress=True) finally: get_sphinx_app_output( app, filename="index.html", regress_html=True, replace={"Permalink to this headline": "Permalink to this heading"}, ) @pytest.mark.sphinx( buildername="singlehtml", srcdir=os.path.join(SOURCE_DIR, "references_singlehtml"), freshenv=True, confoverrides={"nitpicky": True}, ) def test_references_singlehtml( app, status, warning, get_sphinx_app_doctree, get_sphinx_app_output, ): """Test reference resolution for singlehtml builds.""" app.build() assert "build succeeded" in status.getvalue() # Build succeeded warnings = warning.getvalue().strip() assert warnings == "" # try: # get_sphinx_app_doctree(app, docname="index", regress=True) # finally: # get_sphinx_app_doctree(app, docname="index", resolve=True, regress=True) try: get_sphinx_app_doctree( app, docname="other/other", regress=True, replace={"other\\other.md": "other/other.md"}, ) finally: get_sphinx_app_doctree( app, docname="other/other", resolve=True, regress=True, replace={ "other\\other.md": "other/other.md", # changed in sphinx 7.3 '="#document-index': '="index.html#document-index', '="#document-other': '="index.html#document-other', }, ) get_sphinx_app_output( app, filename="index.html", buildername="singlehtml", regress_html=True, replace={ "Permalink to this headline": "Permalink to this heading", # changed in sphinx 7.3 '="#document-index': '="index.html#document-index', '="#document-other': '="index.html#document-other', }, ) @pytest.mark.sphinx( buildername="html", srcdir=os.path.join(SOURCE_DIR, "heading_slug_func"), freshenv=True, ) def test_heading_slug_func( app, status, warning, get_sphinx_app_doctree, get_sphinx_app_output, ): """Test heading_slug_func configuration.""" app.build() assert "build succeeded" in status.getvalue() # Build succeeded warnings = warning.getvalue().strip() assert warnings == "" try: get_sphinx_app_doctree(app, docname="index", regress=True) finally: get_sphinx_app_doctree(app, docname="index", resolve=True, regress=True) get_sphinx_app_output( app, filename="index.html", regress_html=True, replace={"Permalink to this headline": "Permalink to this heading"}, ) @pytest.mark.sphinx( buildername="html", srcdir=os.path.join(SOURCE_DIR, "extended_syntaxes"), freshenv=True, ) def test_extended_syntaxes( app, status, warning, get_sphinx_app_doctree, get_sphinx_app_output, monkeypatch, ): """test setting addition configuration values.""" from myst_parser.mdit_to_docutils.sphinx_ import SphinxRenderer monkeypatch.setattr(SphinxRenderer, "_random_label", lambda self: "mock-uuid") app.build() assert "build succeeded" in status.getvalue() # Build succeeded warnings = warning.getvalue().strip() assert warnings == "" try: get_sphinx_app_doctree( app, docname="index", regress=True, ) finally: get_sphinx_app_output( app, filename="index.html", regress_html=True, replace={"Permalink to this headline": "Permalink to this heading"}, ) @pytest.mark.sphinx( buildername="html", srcdir=os.path.join(SOURCE_DIR, "includes"), freshenv=True ) def test_includes( app, status, warning, get_sphinx_app_doctree, get_sphinx_app_output, ): """Test of include directive.""" app.build() assert "build succeeded" in status.getvalue() # Build succeeded warnings = warning.getvalue().strip() assert warnings == "" try: get_sphinx_app_doctree( app, docname="index", regress=True, rstrip_lines=True, # fix for Windows CI replace={ r"subfolder\example2.jpg": "subfolder/example2.jpg", r"subfolder\\example2.jpg": "subfolder/example2.jpg", r"subfolder\\\\example2.jpg": "subfolder/example2.jpg", # added in sphinx 7.2 (#9846) 'original_uri="/subfolder/example2.jpg" ': "", }, ) finally: get_sphinx_app_output( app, filename="index.html", regress_html=True, replace={ "Permalink to this headline": "Permalink to this heading", r"'subfolder\\example2'": "'subfolder/example2'", r'uri="subfolder\\example2"': 'uri="subfolder/example2"', "_images/example21.jpg": "_images/example2.jpg", }, ) @pytest.mark.sphinx( buildername="html", srcdir=os.path.join(SOURCE_DIR, "include_from_rst"), freshenv=True, ) def test_include_from_rst( app, status, warning, get_sphinx_app_doctree, ): """Test of include directive inside RST file.""" app.build() assert "build succeeded" in status.getvalue() # Build succeeded warnings = warning.getvalue().strip() assert warnings == "" get_sphinx_app_doctree( app, docname="index", regress=True, regress_ext=".xml", ) @pytest.mark.sphinx( buildername="html", srcdir=os.path.join(SOURCE_DIR, "footnotes"), freshenv=True ) def test_footnotes( app, status, warning, get_sphinx_app_doctree, get_sphinx_app_output, ): """Test of include directive.""" app.build() assert "build succeeded" in status.getvalue() # Build succeeded warnings = strip_colors(warning.getvalue()).replace( str(app.srcdir) + os.path.sep, "source/" ) # print(warnings) assert ( warnings.strip() == """ source/footnote_md.md:29: WARNING: Footnote [1] is not referenced. [ref.footnote] source/footnote_md.md:31: WARNING: Footnote [#] is not referenced. [ref.footnote] source/footnote_rst.rst:26: WARNING: Footnote [1] is not referenced. [ref.footnote] source/footnote_rst.rst:28: WARNING: Footnote [#] is not referenced. [ref.footnote] """.strip() ) try: get_sphinx_app_doctree(app, docname="footnote_md", regress=True) finally: get_sphinx_app_output( app, filename="footnote_md.html", regress_html=True, regress_ext=".html", replace={ 'role="note">': 'role="doc-footnote">', # changed in docutils 0.20 }, ) @pytest.mark.sphinx( buildername="html", srcdir=os.path.join(SOURCE_DIR, "commonmark_only"), freshenv=True, ) def test_commonmark_only( app, status, warning, get_sphinx_app_doctree, get_sphinx_app_output, ): """test setting addition configuration values.""" app.build() assert "build succeeded" in status.getvalue() # Build succeeded warnings = warning.getvalue().strip() assert "lexer name '{note}'" in warnings try: get_sphinx_app_doctree(app, docname="index", regress=True) finally: get_sphinx_app_output( app, filename="index.html", regress_html=True, replace={"Permalink to this headline": "Permalink to this heading"}, ) @pytest.mark.sphinx( buildername="html", srcdir=os.path.join(SOURCE_DIR, "substitutions"), freshenv=True, ) def test_substitutions( app, status, warning, get_sphinx_app_doctree, get_sphinx_app_output, file_regression, ): """test setting addition configuration values.""" app.build() assert "build succeeded" in status.getvalue() # Build succeeded warnings = warning.getvalue().strip() assert warnings == "" try: get_sphinx_app_doctree(app, docname="index", regress=True) file_regression.check( get_sphinx_app_doctree(app, docname="other").pformat(), extension=".other.xml", ) finally: get_sphinx_app_output(app, filename="index.html", regress_html=True) @pytest.mark.sphinx( buildername="gettext", srcdir=os.path.join(SOURCE_DIR, "gettext"), freshenv=True ) def test_gettext( app, status, warning, get_sphinx_app_output, file_regression, ): """Test gettext message extraction.""" app.build() assert "build succeeded" in status.getvalue() # Build succeeded warnings = warning.getvalue().strip() assert warnings == "" output = get_sphinx_app_output(app, filename="index.pot", buildername="gettext") output = re.sub(r"POT-Creation-Date: [0-9: +-]+", "POT-Creation-Date: ", output) output = re.sub(r"Copyright \(C\) [0-9]{4}", "Copyright (C) XXXX", output) if sphinx.version_info < (7, 4): output = output.replace("Python ", "Project name not set ") file_regression.check(output, extension=".pot") @pytest.mark.sphinx( buildername="html", srcdir=os.path.join(SOURCE_DIR, "gettext"), freshenv=True, confoverrides={"language": "fr", "gettext_compact": False, "locale_dirs": ["."]}, ) def test_gettext_html( app, status, warning, get_sphinx_app_doctree, get_sphinx_app_output, ): """Test gettext message extraction.""" app.build() assert "build succeeded" in status.getvalue() # Build succeeded warnings = warning.getvalue().strip() assert warnings == "" try: get_sphinx_app_doctree( app, docname="index", regress=True, ) finally: get_sphinx_app_doctree( app, docname="index", resolve=True, regress=True, ) get_sphinx_app_output( app, filename="index.html", regress_html=True, regress_ext=".html", replace={ # upstream bug https://github.com/sphinx-doc/sphinx/issues/11689 '"Permalink to this heading"': '"Lien permanent vers cette rubrique"', # which was fixed to a different translation in sphinx 7.3 '"Lien vers cette rubrique"': '"Lien permanent vers cette rubrique"', # changed in docutils>0.19 ' role="note">': ' role="doc-footnote">', }, ) @pytest.mark.sphinx( buildername="gettext", srcdir=os.path.join(SOURCE_DIR, "gettext"), freshenv=True, confoverrides={ "gettext_additional_targets": [ "index", "literal-block", "doctest-block", "raw", "image", ], }, ) def test_gettext_additional_targets( app, status, warning, get_sphinx_app_output, file_regression, ): """Test gettext message extraction.""" app.build() assert "build succeeded" in status.getvalue() # Build succeeded warnings = warning.getvalue().strip() assert warnings == "" output = get_sphinx_app_output(app, filename="index.pot", buildername="gettext") output = re.sub(r"POT-Creation-Date: [0-9: +-]+", "POT-Creation-Date: ", output) output = re.sub(r"Copyright \(C\) [0-9]{4}", "Copyright (C) XXXX", output) if sphinx.version_info < (7, 4): output = output.replace("Python ", "Project name not set ") file_regression.check(output, extension=".pot") @pytest.mark.sphinx( buildername="html", srcdir=os.path.join(SOURCE_DIR, "mathjax"), freshenv=True, confoverrides={"myst_enable_extensions": ["dollarmath"]}, ) def test_mathjax_warning( app, status, warning, ): """Test mathjax config override warning.""" app.build() assert "build succeeded" in status.getvalue() # Build succeeded warnings = warning.getvalue().strip() assert ( "overridden by myst-parser: 'other' -> 'tex2jax_process|mathjax_process|math|output_area'" in warnings ) @pytest.mark.sphinx( buildername="html", srcdir=os.path.join(SOURCE_DIR, "fieldlist"), freshenv=True, ) def test_fieldlist_extension( app, status, warning, get_sphinx_app_doctree, get_sphinx_app_output, ): """test setting addition configuration values.""" app.build() assert "build succeeded" in status.getvalue() # Build succeeded warnings = warning.getvalue().strip() assert warnings == "" try: get_sphinx_app_doctree( app, docname="index", regress=True, replace={ # changed in sphinx 7.2 for desc_sig_name node 'classes="n n"': 'classes="n"', # changed in sphinx 7.2 for desc_parameterlist node 'multi_line_parameter_list="False" ': "", # changed in sphinx 7.1 (but fixed in 7.2) for desc_signature/desc_name nodes 'classes="sig sig-object sig sig-object"': 'classes="sig sig-object"', 'classes="sig-name descname sig-name descname"': 'classes="sig-name descname"', # changed in sphinx 7.2 (#11533) ( 'no-contents-entry="False" no-index="False" ' 'no-index-entry="False" no-typesetting="False" ' ): "", }, ) finally: get_sphinx_app_output( app, filename="index.html", regress_html=True, regress_ext=".html", ) @pytest.mark.sphinx( buildername="texinfo", srcdir=os.path.join(SOURCE_DIR, "texinfo"), freshenv=True, ) def test_texinfo(app, status, warning): """Test Texinfo builds.""" app.build() assert "build succeeded" in status.getvalue() # Build succeeded warnings = warning.getvalue().strip() assert warnings == "" @pytest.mark.skipif( sphinx.version_info < (7, 2, 5), reason="include-read event added in sphinx 7.2.5" ) @pytest.mark.sphinx( buildername="html", srcdir=os.path.join(SOURCE_DIR, "includes"), freshenv=True, ) def test_include_read_event(app, status, warning): """Test that include-read event is emitted correctly.""" include_read_events = [] def handle_include_read( app, relative_path: Path, parent_docname: str, content: list[str] ) -> None: include_read_events.append((relative_path, parent_docname, content)) app.connect("include-read", handle_include_read) app.build() assert "build succeeded" in status.getvalue() # Build succeeded warnings = warning.getvalue().strip() assert warnings == "" expected = [ ("../include_from_rst/include.md", "index"), ("include1.inc.md", "index"), (os.path.join("subfolder", "include2.inc.md"), "include1.inc"), ("include_code.py", "index"), ("include_code.py", "index"), ("include_literal.txt", "index"), ("include_literal.txt", "index"), ] expected_events = [] for include_file_name, parent_docname in expected: with open(os.path.join(SOURCE_DIR, "includes", include_file_name)) as file: content = file.read() expected_events.append((Path(include_file_name), parent_docname, [content])) assert len(include_read_events) == len(expected_events), "Wrong number of events" for evt in expected_events: assert evt in include_read_events �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/���������������������������������������������0000775�0000000�0000000�00000000000�14654155362�0023240�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_basic.html������������������������������0000664�0000000�0000000�00000012213�14654155362�0026245�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="documentwrapper"> <div class="bodywrapper"> <div class="body" role="main"> <div class="topic dedication" role="doc-dedication"> <p class="topic-title"> Dedication </p> <p> To my <em> homies </em> </p> </div> <div class="topic abstract" role="doc-abstract"> <p class="topic-title"> Abstract </p> <p> Something something <strong> dark </strong> side </p> </div> <section class="tex2jax_ignore mathjax_ignore" id="header"> <span id="target"> </span> <h1> Header <a class="headerlink" href="#header" title="Permalink to this heading"> ΒΆ </a> </h1> <div class="admonition note"> <p class="admonition-title"> Note </p> <p> abcd <em> abc </em> <a class="reference external" href="https://www.google.com"> google </a> </p> <div class="admonition warning"> <p class="admonition-title"> Warning </p> <p> xyz </p> </div> </div> <div class="admonition-title-with-link-target2 admonition"> <p class="admonition-title"> Title with <a class="reference internal" href="#target2"> <span class="std std-ref"> link </span> </a> </p> <p> Content </p> </div> <figure class="align-default" id="id1"> <span id="target2"> </span> <a class="reference external image-reference" href="https://www.google.com"> <img alt="_images/example.jpg" src="_images/example.jpg" style="height: 40px;"/> </a> <figcaption> <p> <span class="caption-text"> Caption </span> <a class="headerlink" href="#id1" title="Permalink to this image"> ΒΆ </a> </p> </figcaption> </figure> <p> <img alt="alternative text" src="_images/example.jpg"/> </p> <p> <a class="reference external" href="https://www.google.com"> https://www.google.com </a> </p> <p> <strong> <code class="code docutils literal notranslate"> <span class="pre"> a=1{`} </span> </code> </strong> </p> <p> <span class="math notranslate nohighlight"> \(sdfds\) </span> </p> <p> <strong> <span class="math notranslate nohighlight"> \(a=1\) </span> </strong> </p> <div class="math notranslate nohighlight"> \[b=2\] </div> <div class="math notranslate nohighlight" id="equation-eq-label"> <span class="eqno"> (1) <a class="headerlink" href="#equation-eq-label" title="Permalink to this equation"> ΒΆ </a> </span> \[c=2\] </div> <p> <a class="reference internal" href="#equation-eq-label"> (1) </a> </p> <p> <code class="docutils literal notranslate"> <span class="pre"> a=1{`} </span> </code> </p> <table class="docutils align-default"> <thead> <tr class="row-odd"> <th class="head"> <p> a </p> </th> <th class="head text-right"> <p> b </p> </th> </tr> </thead> <tbody> <tr class="row-even"> <td> <p> <em> a </em> </p> </td> <td class="text-right"> <p> 2 </p> </td> </tr> <tr class="row-odd"> <td> <p> <a class="reference external" href="https://google.com"> link-a </a> </p> </td> <td class="text-right"> <p> <a class="reference external" href="https://python.org"> link-b </a> </p> </td> </tr> </tbody> </table> <p> this is a paragraph </p> <p> this is a second paragraph </p> <ul class="simple"> <li> <p> a list </p> <ul> <li> <p> a sub list </p> </li> </ul> </li> </ul> <ul class="simple"> <li> <p> new list? </p> </li> </ul> <p> <a class="reference internal" href="#target"> <span class="std std-ref"> Header </span> </a> <a class="reference internal" href="#target2"> <span class="std std-ref"> Caption </span> </a> </p> <p> <a class="reference external" href="https://www.google.com" title="a title"> name </a> </p> <div class="highlight-default notranslate"> <div class="highlight"> <pre><span></span><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span> <span class="nb">print</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> </pre> </div> </div> <p> Special substitution references: </p> <p> 57 words | 0 min read </p> </section> </div> </div> </div> �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_basic.resolved.xml����������������������0000664�0000000�0000000�00000011712�14654155362�0027726�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="content.md"> <topic classes="dedication"> <title> Dedication <paragraph> To my <emphasis> homies <topic classes="abstract"> <title> Abstract <paragraph> Something something <strong> dark side <target refid="target"> <section classes="tex2jax_ignore mathjax_ignore" ids="header target" names="header target"> <title> Header <comment xml:space="preserve"> comment <note> <paragraph> abcd <emphasis> abc <reference refuri="https://www.google.com"> google <warning> <paragraph> xyz <admonition classes="admonition-title-with-link-target2"> <title> Title with <reference internal="True" refid="target2"> <inline classes="std std-ref"> link <paragraph> Content <target refid="target2"> <figure ids="id1 target2" names="target2"> <reference refuri="https://www.google.com"> <image candidates="{'*': 'example.jpg'}" height="40px" uri="example.jpg"> <caption> Caption <paragraph> <image alt="alternative text" candidates="{'*': 'example.jpg'}" uri="example.jpg"> <paragraph> <reference refuri="https://www.google.com"> https://www.google.com <paragraph> <strong> <literal classes="code"> a=1{`} <paragraph> <math> sdfds <paragraph> <strong> <math> a=1 <math_block nowrap="False" number="True" xml:space="preserve"> b=2 <target refid="equation-eq-label"> <math_block docname="content" ids="equation-eq-label" label="eq:label" nowrap="False" number="1" xml:space="preserve"> c=2 <paragraph> <reference internal="True" refid="equation-eq-label"> (1) <paragraph> <literal> a=1{`} <table classes="colwidths-auto"> <tgroup cols="2"> <colspec colwidth="50"> <colspec colwidth="50"> <thead> <row> <entry> <paragraph> a <entry classes="text-right"> <paragraph> b <tbody> <row> <entry> <paragraph> <emphasis> a <entry classes="text-right"> <paragraph> 2 <row> <entry> <paragraph> <reference refuri="https://google.com"> link-a <entry classes="text-right"> <paragraph> <reference refuri="https://python.org"> link-b <paragraph> this is a paragraph <comment xml:space="preserve"> a comment 2 <paragraph> this is a second paragraph <bullet_list bullet="-"> <list_item> <paragraph> a list <bullet_list bullet="-"> <list_item> <paragraph> a sub list <comment xml:space="preserve"> a comment 3 <bullet_list bullet="-"> <list_item> <paragraph> new list? <paragraph> <reference internal="True" refid="target"> <inline classes="std std-ref"> Header <reference internal="True" refid="target2"> <inline classes="std std-ref"> Caption <comment classes="block_break" xml:space="preserve"> a block break <paragraph> <reference reftitle="a title" refuri="https://www.google.com"> name <literal_block language="default" linenos="False" xml:space="preserve"> def func(a, b=1): print(a) <paragraph> Special substitution references: <paragraph> 57 words | 0 min read ������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_basic.xml�������������������������������0000664�0000000�0000000�00000012404�14654155362�0026103�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="content.md"> <topic classes="dedication"> <title> Dedication <paragraph> To my <emphasis> homies <topic classes="abstract"> <title> Abstract <paragraph> Something something <strong> dark side <target refid="target"> <section classes="tex2jax_ignore mathjax_ignore" ids="header target" names="header target"> <title> Header <comment xml:space="preserve"> comment <note> <paragraph> abcd <emphasis> abc <reference refuri="https://www.google.com"> google <warning> <paragraph> xyz <admonition classes="admonition-title-with-link-target2"> <title> Title with <pending_xref refdoc="content" refdomain="True" refexplicit="True" reftarget="target2" reftype="myst"> <inline classes="xref myst"> link <paragraph> Content <target refid="target2"> <figure ids="id1 target2" names="target2"> <reference refuri="https://www.google.com"> <image candidates="{'*': 'example.jpg'}" height="40px" uri="example.jpg"> <caption> Caption <paragraph> <image alt="alternative text" candidates="{'*': 'example.jpg'}" uri="example.jpg"> <paragraph> <reference refuri="https://www.google.com"> https://www.google.com <paragraph> <strong> <literal classes="code"> a=1{`} <paragraph> <math> sdfds <paragraph> <strong> <math> a=1 <math_block nowrap="False" number="True" xml:space="preserve"> b=2 <target refid="equation-eq-label"> <math_block docname="content" ids="equation-eq-label" label="eq:label" nowrap="False" number="1" xml:space="preserve"> c=2 <paragraph> <pending_xref refdoc="content" refdomain="math" refexplicit="False" reftarget="eq:label" reftype="eq" refwarn="True"> <literal classes="xref eq"> eq:label <paragraph> <literal> a=1{`} <table classes="colwidths-auto"> <tgroup cols="2"> <colspec colwidth="50"> <colspec colwidth="50"> <thead> <row> <entry> <paragraph> a <entry classes="text-right"> <paragraph> b <tbody> <row> <entry> <paragraph> <emphasis> a <entry classes="text-right"> <paragraph> 2 <row> <entry> <paragraph> <reference refuri="https://google.com"> link-a <entry classes="text-right"> <paragraph> <reference refuri="https://python.org"> link-b <paragraph> this is a paragraph <comment xml:space="preserve"> a comment 2 <paragraph> this is a second paragraph <bullet_list bullet="-"> <list_item> <paragraph> a list <bullet_list bullet="-"> <list_item> <paragraph> a sub list <comment xml:space="preserve"> a comment 3 <bullet_list bullet="-"> <list_item> <paragraph> new list? <paragraph> <pending_xref refdoc="content" refdomain="std" refexplicit="False" reftarget="target" reftype="ref" refwarn="True"> <inline classes="xref std std-ref"> target <pending_xref refdoc="content" refdomain="std" refexplicit="False" reftarget="target2" reftype="ref" refwarn="True"> <inline classes="xref std std-ref"> target2 <comment classes="block_break" xml:space="preserve"> a block break <paragraph> <reference reftitle="a title" refuri="https://www.google.com"> name <literal_block language="default" xml:space="preserve"> def func(a, b=1): print(a) <paragraph> Special substitution references: <paragraph> 57 words | 0 min read ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_commonmark_only.html��������������������0000664�0000000�0000000�00000001042�14654155362�0030366�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="documentwrapper"> <div class="bodywrapper"> <div class="body" role="main"> <section id="test"> <h1> Test <a class="headerlink" href="#test" title="Permalink to this heading"> ΒΆ </a> </h1> <div class="highlight-{note} notranslate"> <div class="highlight"> <pre><span></span>hallo </pre> </div> </div> <p> {a} <code class="docutils literal notranslate"> <span class="pre"> b </span> </code> </p> </section> </div> </div> </div> ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_commonmark_only.xml���������������������0000664�0000000�0000000�00000000401�14654155362�0030220�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="index.md"> <section ids="test" names="test"> <title> Test <literal_block language="{note}" xml:space="preserve"> hallo <paragraph> {a} <literal> b ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_extended_syntaxes.html������������������0000664�0000000�0000000�00000010437�14654155362�0030730�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="documentwrapper"> <div class="bodywrapper"> <div class="body" role="main"> <section class="tex2jax_ignore mathjax_ignore" id="test"> <h1> Test <a class="headerlink" href="#test" title="Permalink to this heading"> ΒΆ </a> </h1> <p> *disabled* </p> <p> <span class="math notranslate nohighlight"> \(a=1\) </span> </p> <div class="math notranslate nohighlight"> \[x=5\] </div> <div class="math notranslate nohighlight" id="equation-2"> <span class="eqno"> (1) <a class="headerlink" href="#equation-2" title="Permalink to this equation"> ΒΆ </a> </span> \[x=5\] </div> <p> $ a=1 $ </p> <p> a <div class="math notranslate nohighlight"> \[c=3\] </div> b </p> <div class="amsmath math notranslate nohighlight" id="equation-mock-uuid"> <span class="eqno"> (2) <a class="headerlink" href="#equation-mock-uuid" title="Permalink to this equation"> ΒΆ </a> </span> \[\begin{equation} b=2 \end{equation}\] </div> <div class="math notranslate nohighlight"> \[ \begin{align}\begin{aligned}c=3\\d=4\end{aligned}\end{align} \] </div> <dl class="simple myst"> <dt> Term **1** </dt> <dd> <p> Definition *1* </p> <p> second paragraph </p> </dd> <dt> Term 2 </dt> <dd> <p> Definition 2a </p> </dd> <dd> <p> Definition 2b </p> </dd> <dt> Term 3 </dt> <dd> <div class="highlight-none notranslate"> <div class="highlight"> <pre><span></span>code block </pre> </div> </div> </dd> <dd> <blockquote> <div> <p> quote </p> </div> </blockquote> </dd> <dd> <p> other </p> </dd> </dl> <dl class="simple myst glossary" id="myid1"> <dt id="term-term"> term </dt> <dd> <p> definition </p> </dd> <dt id="term-other-term"> other term </dt> <dd> <p> other definition </p> </dd> </dl> <p> <a class="reference internal" href="#term-other-term"> <span class="xref std std-term"> other term </span> </a> </p> <figure class="other align-default" id="target"> <img alt="fun-fish" src="_images/fun-fish.png"/> <figcaption> <p> <span class="caption-text"> This is a caption in **Markdown** </span> <a class="headerlink" href="#target" title="Permalink to this image"> ΒΆ </a> </p> </figcaption> </figure> <figure class="other align-default" id="other-target"> <a class="bg-primary mb-1 reference internal image-reference" href="_images/fun-fish.png"> <img alt="fishy" class="bg-primary mb-1" src="_images/fun-fish.png" style="width: 200px;"/> </a> <figcaption> <p> <span class="caption-text"> This is a caption in **Markdown** </span> <a class="headerlink" href="#other-target" title="Permalink to this image"> ΒΆ </a> </p> </figcaption> </figure> <div class="other docutils"> <p> Hallo *there* </p> </div> <p> linkify URL: <a class="reference external" href="http://www.example.com"> www.example.com </a> </p> <ul class="contains-task-list simple"> <li class="task-list-item"> <p> <input class="task-list-item-checkbox" disabled="disabled" type="checkbox"/> hallo </p> </li> <li class="task-list-item"> <p> <input checked="checked" class="task-list-item-checkbox" disabled="disabled" type="checkbox"/> there </p> </li> </ul> <p> Numbered code block: </p> <div class="highlight-typescript notranslate"> <div class="highlight"> <pre><span></span><span class="linenos">1</span><span class="kr">type</span> <span class="nx">Result</span> <span class="o">=</span> <span class="s2">"pass"</span> <span class="o">|</span> <span class="s2">"fail"</span> </pre> </div> </div> </section> </div> </div> </div> ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_extended_syntaxes.xml�������������������0000664�0000000�0000000�00000011075�14654155362�0030563�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="index.md"> <meta content="meta description" lang="en" name="description"> <meta content="en_US" property="og:locale"> <section classes="tex2jax_ignore mathjax_ignore" ids="test" names="test"> <title> Test <paragraph> *disabled* <paragraph> <math> a=1 <math_block nowrap="False" number="True" xml:space="preserve"> x=5 <target refid="equation-2"> <math_block docname="index" ids="equation-2" label="2" nowrap="False" number="1" xml:space="preserve"> x=5 <paragraph> $ a=1 $ <paragraph> a <math_block nowrap="False" number="True" xml:space="preserve"> c=3 b <target refid="equation-mock-uuid"> <math_block classes="amsmath" docname="index" ids="equation-mock-uuid" label="mock-uuid" nowrap="True" number="2" xml:space="preserve"> \begin{equation} b=2 \end{equation} <math_block docname="index" label="True" nowrap="False" number="True" xml:space="preserve"> c=3 d=4 <definition_list classes="simple myst"> <definition_list_item> <term> Term **1** <definition> <paragraph> Definition *1* <paragraph> second paragraph <definition_list_item> <term> Term 2 <definition> <paragraph> Definition 2a <definition> <paragraph> Definition 2b <definition_list_item> <term> Term 3 <definition> <literal_block language="none" xml:space="preserve"> code block <definition> <block_quote> <paragraph> quote <definition> <paragraph> other <definition_list classes="simple myst glossary" ids="myid1" names="myid1"> <definition_list_item> <term ids="term-term"> term <index entries="('single',\ 'term',\ 'term-term',\ 'main',\ None)"> <definition> <paragraph> definition <definition_list_item> <term ids="term-other-term"> other term <index entries="('single',\ 'other\ term',\ 'term-other-term',\ 'main',\ None)"> <definition> <paragraph> other definition <paragraph> <pending_xref refdoc="index" refdomain="std" refexplicit="False" reftarget="other term" reftype="term" refwarn="True"> <inline classes="xref std std-term"> other term <figure classes="other" ids="target" names="target"> <image alt="fun-fish" candidates="{'*': 'fun-fish.png'}" uri="fun-fish.png"> <caption> This is a caption in **Markdown** <figure classes="other" ids="other-target" names="other-target"> <image alt="fishy" candidates="{'*': 'fun-fish.png'}" classes="bg-primary mb-1" uri="fun-fish.png" width="200px"> <caption> This is a caption in **Markdown** <container classes="other" is_div="True"> <paragraph> Hallo *there* <paragraph> linkify URL: <reference refuri="http://www.example.com"> www.example.com <bullet_list bullet="-" classes="contains-task-list"> <list_item classes="task-list-item"> <paragraph> <raw format="html" xml:space="preserve"> <input class="task-list-item-checkbox" disabled="disabled" type="checkbox"> hallo <list_item classes="task-list-item"> <paragraph> <raw format="html" xml:space="preserve"> <input class="task-list-item-checkbox" checked="checked" disabled="disabled" type="checkbox"> there <paragraph> Numbered code block: <literal_block language="typescript" linenos="True" xml:space="preserve"> type Result = "pass" | "fail" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_fieldlist_extension.html����������������0000664�0000000�0000000�00000005561�14654155362�0031247�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="documentwrapper"> <div class="bodywrapper"> <div class="body" role="main"> <section id="test"> <h1> Test <a class="headerlink" href="#test" title="Permalink to this heading"> ΒΆ </a> </h1> <dl class="myst field-list simple"> <dt class="field-odd"> field <span class="colon"> : </span> </dt> <dd class="field-odd"> <p> </p> </dd> <dt class="field-even"> <em> field </em> <span class="colon"> : </span> </dt> <dd class="field-even"> <p> content </p> </dd> </dl> <dl class="py function"> <dt class="sig sig-object py" id="send_message"> <span class="sig-name descname"> <span class="pre"> send_message </span> </span> <span class="sig-paren"> ( </span> <em class="sig-param"> <span class="n"> <span class="pre"> sender </span> </span> </em> , <em class="sig-param"> <span class="n"> <span class="pre"> priority </span> </span> </em> <span class="sig-paren"> ) </span> <a class="headerlink" href="#send_message" title="Permalink to this definition"> ΒΆ </a> </dt> <dd> <p> Send a message to a recipient </p> <dl class="myst field-list simple"> <dt class="field-odd"> Parameters <span class="colon"> : </span> </dt> <dd class="field-odd"> <ul class="simple"> <li> <p> <strong> sender </strong> ( <em> str </em> ) – The person sending the message </p> </li> <li> <p> <strong> priority </strong> ( <em> int </em> ) – The priority of the message, can be a number 1-5 </p> </li> </ul> </dd> <dt class="field-even"> Returns <span class="colon"> : </span> </dt> <dd class="field-even"> <p> the message id </p> </dd> <dt class="field-odd"> Return type <span class="colon"> : </span> </dt> <dd class="field-odd"> <p> int </p> </dd> <dt class="field-even"> Raises <span class="colon"> : </span> </dt> <dd class="field-even"> <p> <strong> ValueError </strong> – if the message_body exceeds 160 characters </p> </dd> </dl> </dd> </dl> </section> </div> </div> </div> �����������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_fieldlist_extension.xml�����������������0000664�0000000�0000000�00000010254�14654155362�0031076�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="index.md"> <section ids="test" names="test"> <title> Test <field_list classes="myst field-list"> <field> <field_name> field <field_body> <field> <field_name> <emphasis> field <field_body> <paragraph> content <index entries="('pair',\ 'built-in\ function;\ send_message()',\ 'send_message',\ '',\ None)"> <desc classes="py function" desctype="function" domain="py" nocontentsentry="False" noindex="False" noindexentry="False" objtype="function"> <desc_signature _toc_name="send_message()" _toc_parts="('send_message',)" class="" classes="sig sig-object" fullname="send_message" ids="send_message" module="True"> <desc_name classes="sig-name descname" xml:space="preserve"> send_message <desc_parameterlist xml:space="preserve"> <desc_parameter xml:space="preserve"> <desc_sig_name classes="n"> sender <desc_parameter xml:space="preserve"> <desc_sig_name classes="n"> priority <desc_content> <paragraph> Send a message to a recipient <field_list classes="myst field-list"> <field> <field_name> Parameters <field_body> <bullet_list> <list_item> <paragraph> <literal_strong> sender ( <pending_xref py:class="True" py:module="True" refdomain="py" refexplicit="False" refspecific="True" reftarget="str" reftype="class"> <literal_emphasis> str ) – The person sending the message <list_item> <paragraph> <literal_strong> priority ( <pending_xref py:class="True" py:module="True" refdomain="py" refexplicit="False" refspecific="True" reftarget="int" reftype="class"> <literal_emphasis> int ) – The priority of the message, can be a number 1-5 <field> <field_name> Returns <field_body> <paragraph> the message id <field> <field_name> Return type <field_body> <paragraph> <pending_xref py:class="True" py:module="True" refdomain="py" refexplicit="False" refspecific="True" reftarget="int" reftype="class"> int <field> <field_name> Raises <field_body> <paragraph> <pending_xref py:class="True" py:module="True" refdomain="py" refexplicit="False" refspecific="True" reftarget="ValueError" reftype="exc"> <literal_strong> ValueError – if the message_body exceeds 160 characters ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_footnotes.html��������������������������0000664�0000000�0000000�00000012032�14654155362�0027203�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="documentwrapper"> <div class="bodywrapper"> <div class="body" role="main"> <section id="footnotes-with-markdown"> <h1> Footnotes with Markdown <a class="headerlink" href="#footnotes-with-markdown" title="Permalink to this heading"> ΒΆ </a> </h1> <p> c <a class="footnote-reference brackets" href="#c" id="id1" role="doc-noteref"> <span class="fn-bracket"> [ </span> 2 <span class="fn-bracket"> ] </span> </a> </p> <div class="admonition note"> <p class="admonition-title"> Note </p> <p> d <a class="footnote-reference brackets" href="#d" id="id2" role="doc-noteref"> <span class="fn-bracket"> [ </span> 3 <span class="fn-bracket"> ] </span> </a> </p> </div> <p> a <a class="footnote-reference brackets" href="#a" id="id3" role="doc-noteref"> <span class="fn-bracket"> [ </span> 4 <span class="fn-bracket"> ] </span> </a> </p> <p> b <a class="footnote-reference brackets" href="#b" id="id4" role="doc-noteref"> <span class="fn-bracket"> [ </span> 5 <span class="fn-bracket"> ] </span> </a> </p> <p> 123 <a class="footnote-reference brackets" href="#id7" id="id5" role="doc-noteref"> <span class="fn-bracket"> [ </span> 123 <span class="fn-bracket"> ] </span> </a> 123 <a class="footnote-reference brackets" href="#id7" id="id6" role="doc-noteref"> <span class="fn-bracket"> [ </span> 123 <span class="fn-bracket"> ] </span> </a> </p> <p> e <a class="footnote-reference brackets" href="#e" id="id8" role="doc-noteref"> <span class="fn-bracket"> [ </span> 6 <span class="fn-bracket"> ] </span> </a> </p> <blockquote> <div> <ul class="simple"> <li> </li> </ul> </div> </blockquote> </section> <hr class="footnotes docutils"/> <aside class="footnote-list brackets"> <aside class="footnote brackets" id="id9" role="doc-footnote"> <span class="label"> <span class="fn-bracket"> [ </span> 1 <span class="fn-bracket"> ] </span> </span> <p> unreferenced footnote (1) </p> </aside> <aside class="footnote brackets" id="c" role="doc-footnote"> <span class="label"> <span class="fn-bracket"> [ </span> <a href="#id1" role="doc-backlink"> 2 </a> <span class="fn-bracket"> ] </span> </span> <p> a footnote referenced first (c) </p> </aside> <aside class="footnote brackets" id="d" role="doc-footnote"> <span class="label"> <span class="fn-bracket"> [ </span> <a href="#id2" role="doc-backlink"> 3 </a> <span class="fn-bracket"> ] </span> </span> <p> a footnote referenced in a directive (d) </p> </aside> <aside class="footnote brackets" id="a" role="doc-footnote"> <span class="label"> <span class="fn-bracket"> [ </span> <a href="#id3" role="doc-backlink"> 4 </a> <span class="fn-bracket"> ] </span> </span> <p> some footnote <em> text </em> (a) </p> </aside> <aside class="footnote brackets" id="b" role="doc-footnote"> <span class="label"> <span class="fn-bracket"> [ </span> <a href="#id4" role="doc-backlink"> 5 </a> <span class="fn-bracket"> ] </span> </span> <p> a footnote before its reference (b) </p> </aside> <aside class="footnote brackets" id="e" role="doc-footnote"> <span class="label"> <span class="fn-bracket"> [ </span> <a href="#id8" role="doc-backlink"> 6 </a> <span class="fn-bracket"> ] </span> </span> <p> footnote definition in a block element (e) </p> </aside> <aside class="footnote brackets" id="x" role="doc-footnote"> <span class="label"> <span class="fn-bracket"> [ </span> 7 <span class="fn-bracket"> ] </span> </span> <p> another unreferenced footnote (x) </p> </aside> <aside class="footnote brackets" id="id7" role="doc-footnote"> <span class="label"> <span class="fn-bracket"> [ </span> 123 <span class="fn-bracket"> ] </span> </span> <span class="backrefs"> ( <a href="#id5" role="doc-backlink"> 1 </a> , <a href="#id6" role="doc-backlink"> 2 </a> ) </span> <p> multiple references footnote (123) </p> </aside> </aside> </div> </div> </div> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_footnotes.xml���������������������������0000664�0000000�0000000�00000005146�14654155362�0027047�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="footnote_md.md"> <section ids="footnotes-with-markdown" names="footnotes\ with\ markdown"> <title> Footnotes with Markdown <paragraph> c <footnote_reference auto="1" docname="footnote_md" ids="id1" refid="c"> 2 <note> <paragraph> d <footnote_reference auto="1" docname="footnote_md" ids="id2" refid="d"> 3 <paragraph> a <footnote_reference auto="1" docname="footnote_md" ids="id3" refid="a"> 4 <paragraph> b <footnote_reference auto="1" docname="footnote_md" ids="id4" refid="b"> 5 <paragraph> 123 <footnote_reference docname="footnote_md" ids="id5" refid="id7"> 123 123 <footnote_reference docname="footnote_md" ids="id6" refid="id7"> 123 <paragraph> e <footnote_reference auto="1" docname="footnote_md" ids="id8" refid="e"> 6 <block_quote> <bullet_list bullet="-"> <list_item> <transition classes="footnotes"> <footnote docname="footnote_md" ids="id9" names="1"> <label> 1 <paragraph> unreferenced footnote (1) <footnote auto="1" backrefs="id1" docname="footnote_md" ids="c" names="c"> <label> 2 <paragraph> a footnote referenced first (c) <footnote auto="1" backrefs="id2" docname="footnote_md" ids="d" names="d"> <label> 3 <paragraph> a footnote referenced in a directive (d) <footnote auto="1" backrefs="id3" docname="footnote_md" ids="a" names="a"> <label> 4 <paragraph> some footnote <emphasis> text (a) <footnote auto="1" backrefs="id4" docname="footnote_md" ids="b" names="b"> <label> 5 <paragraph> a footnote before its reference (b) <footnote auto="1" backrefs="id8" docname="footnote_md" ids="e" names="e"> <label> 6 <paragraph> footnote definition in a block element (e) <footnote auto="1" docname="footnote_md" ids="x" names="x"> <label> 7 <paragraph> another unreferenced footnote (x) <footnote backrefs="id5 id6" docname="footnote_md" ids="id7" names="123"> <label> 123 <paragraph> multiple references footnote (123) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_gettext.pot�����������������������������0000664�0000000�0000000�00000003131�14654155362�0026505�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# SOME DESCRIPTIVE TITLE. # Copyright (C) XXXX, Executable Book Project # This file is distributed under the same license as the Project name not set package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Project name not set \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: \n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../../index.md:1 msgid "**bold** text 1" msgstr "" #: ../../index.md:3 msgid "**bold** text 2" msgstr "" #: ../../index.md:5 msgid "**bold** text 3" msgstr "" #: ../../index.md:10 msgid "**bold** text 4" msgstr "" #: ../../index.md:13 msgid "**bold** text 5" msgstr "" #: ../../index.md:15 msgid "**bold** text 6" msgstr "" #: ../../index.md:17 msgid "**bold** text 7" msgstr "" #: ../../index.md:18 msgid "**bold** text 8" msgstr "" #: ../../index.md:0 msgid "**bold** text 9" msgstr "" #: ../../index.md:0 msgid "**bold** text 10" msgstr "" #: ../../index.md:26 msgid "**bold** text 11" msgstr "" #: ../../index.md:28 msgid "Extra ```backticks```" msgstr "" #: ../../index.md:55 msgid "![Fun Fish 1](fun-fish.png)" msgstr "" #: ../../index.md:55 msgid "Fun Fish 1" msgstr "" #: ../../index.md:57 msgid "Fun Fish 2" msgstr "" #: ../../index.md:61 msgid "Fun Fish 3" msgstr "" #: ../../index.md:65 msgid "footnote references [^1] [^a]" msgstr "" #: ../../index.md:67 msgid "footnote 1" msgstr "" #: ../../index.md:69 msgid "footnote a" msgstr "" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_gettext_additional_targets.pot����������0000664�0000000�0000000�00000004425�14654155362�0032435�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# SOME DESCRIPTIVE TITLE. # Copyright (C) XXXX, Executable Book Project # This file is distributed under the same license as the Project name not set package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Project name not set \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: \n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../../index.md:1 msgid "**bold** text 1" msgstr "" #: ../../index.md:3 msgid "**bold** text 2" msgstr "" #: ../../index.md:5 msgid "**bold** text 3" msgstr "" #: ../../index.md:10 msgid "**bold** text 4" msgstr "" #: ../../index.md:13 msgid "**bold** text 5" msgstr "" #: ../../index.md:15 msgid "**bold** text 6" msgstr "" #: ../../index.md:17 msgid "**bold** text 7" msgstr "" #: ../../index.md:18 msgid "**bold** text 8" msgstr "" #: ../../index.md:0 msgid "**bold** text 9" msgstr "" #: ../../index.md:0 msgid "**bold** text 10" msgstr "" #: ../../index.md:24 msgid "<div markdown=1>\n" "" msgstr "" #: ../../index.md:26 msgid "**bold** text 11" msgstr "" #: ../../index.md:28 msgid "Extra ```backticks```" msgstr "" #: ../../index.md:30 msgid "</div>\n" "" msgstr "" #: ../../index.md:32 msgid "**additional** text 12\n" "" msgstr "" #: ../../index.md:34 msgid "**additional** text 13\n" "" msgstr "" #: ../../index.md:38 msgid "{\n" " \"additional\": \"text 14\"\n" "}\n" "" msgstr "" #: ../../index.md:44 msgid "<h3>**additional** text 15</h3>\n" "" msgstr "" #: ../../index.md:46 msgid ">>> print('doctest block')\n" "doctest block\n" "" msgstr "" #: ../../index.md:51 msgid "<iframe src=\"http://sphinx-doc.org\"></iframe>" msgstr "" #: ../../index.md:55 msgid "![Fun Fish 1](fun-fish.png)" msgstr "" #: ../../index.md:55 msgid "Fun Fish 1" msgstr "" #: ../../index.md:55 #: ../../index.md:57 #: ../../index.md:61 msgid ".. image:: fun-fish.png" msgstr "" #: ../../index.md:57 msgid "Fun Fish 2" msgstr "" #: ../../index.md:61 msgid "Fun Fish 3" msgstr "" #: ../../index.md:65 msgid "footnote references [^1] [^a]" msgstr "" #: ../../index.md:67 msgid "footnote 1" msgstr "" #: ../../index.md:69 msgid "footnote a" msgstr "" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_gettext_html.html�����������������������0000664�0000000�0000000�00000011012�14654155362�0027670�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="documentwrapper"> <div class="bodywrapper"> <div class="body" role="main"> <section id="bold-text-1"> <h1> texte 1 en <strong> gras </strong> <a class="headerlink" href="#bold-text-1" title="Lien permanent vers cette rubrique"> ΒΆ </a> </h1> <p> texte 2 en <strong> gras </strong> </p> <blockquote> <div> <p> texte 3 en <strong> gras </strong> </p> </div> </blockquote> <div class="admonition note"> <p class="admonition-title"> Note </p> <p> texte 4 en <strong> gras </strong> </p> </div> <ul class="simple"> <li> <p> texte 5 en <strong> gras </strong> </p> </li> </ul> <ol class="arabic simple"> <li> <p> texte 6 en <strong> gras </strong> </p> </li> </ol> <dl class="simple myst"> <dt> texte 7 en <strong> gras </strong> </dt> <dd> <p> texte 8 en <strong> gras </strong> </p> </dd> </dl> <table class="docutils align-default"> <thead> <tr class="row-odd"> <th class="head"> <p> texte 9 en <strong> gras </strong> </p> </th> </tr> </thead> <tbody> <tr class="row-even"> <td> <p> texte 10 en <strong> gras </strong> </p> </td> </tr> </tbody> </table> <div markdown="1"> <p> texte 11 en <strong> gras </strong> </p> <p> Β« <code class="docutils literal notranslate"> <span class="pre"> Backtick </span> </code> Β» supplΓ©mentaire </p> </div> <div class="highlight-none notranslate"> <div class="highlight"> <pre><span></span>**additional** text 12 </pre> </div> </div> <div class="highlight-default notranslate"> <div class="highlight"> <pre><span></span><span class="o">**</span><span class="n">additional</span><span class="o">**</span> <span class="n">text</span> <span class="mi">13</span> </pre> </div> </div> <div class="highlight-json notranslate"> <div class="highlight"> <pre><span></span><span class="p">{</span> <span class="nt">"additional"</span><span class="p">:</span> <span class="s2">"text 14"</span> <span class="p">}</span> </pre> </div> </div> <h3> **additional** text 15 </h3> <div class="highlight-python notranslate"> <div class="highlight"> <pre><span></span><span class="gp">>>> </span><span class="nb">print</span><span class="p">(</span><span class="s1">'doctest block'</span><span class="p">)</span> <span class="go">doctest block</span> </pre> </div> </div> <iframe src="http://sphinx-doc.org"> </iframe> <p> <img alt="Poisson amusant 1" src="_images/poisson-amusant.png"/> </p> <img alt="Poisson amusant 2" src="_images/fun-fish.png"/> <figure class="align-default"> <img alt="Poisson amusant 3" src="_images/fun-fish.png"/> </figure> <p> rΓ©fΓ©rences aux notes de bas de page <a class="footnote-reference brackets" href="#id3" id="id1" role="doc-noteref"> <span class="fn-bracket"> [ </span> 1 <span class="fn-bracket"> ] </span> </a> <a class="footnote-reference brackets" href="#a" id="id2" role="doc-noteref"> <span class="fn-bracket"> [ </span> 2 <span class="fn-bracket"> ] </span> </a> </p> </section> <hr class="footnotes docutils"/> <aside class="footnote-list brackets"> <aside class="footnote brackets" id="id3" role="doc-footnote"> <span class="label"> <span class="fn-bracket"> [ </span> <a href="#id1" role="doc-backlink"> 1 </a> <span class="fn-bracket"> ] </span> </span> <p> note de bas de page 1 </p> </aside> <aside class="footnote brackets" id="a" role="doc-footnote"> <span class="label"> <span class="fn-bracket"> [ </span> <a href="#id2" role="doc-backlink"> 2 </a> <span class="fn-bracket"> ] </span> </span> <p> note de bas de page a </p> </aside> </aside> </div> </div> </div> ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_gettext_html.resolved.xml���������������0000664�0000000�0000000�00000007452�14654155362�0031363�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="index.md"> <section ids="bold-text-1" names="bold\ text\ 1 texte\ 1\ en\ gras"> <title> texte 1 en <strong> gras <paragraph> texte 2 en <strong> gras <block_quote> <paragraph> texte 3 en <strong> gras <note> <paragraph> texte 4 en <strong> gras <bullet_list bullet="*"> <list_item> <paragraph> texte 5 en <strong> gras <enumerated_list enumtype="arabic" prefix="" suffix="."> <list_item> <paragraph> texte 6 en <strong> gras <definition_list classes="simple myst"> <definition_list_item> <term> texte 7 en <strong> gras <definition> <paragraph> texte 8 en <strong> gras <table classes="colwidths-auto"> <tgroup cols="1"> <colspec colwidth="100"> <thead> <row> <entry> <paragraph> texte 9 en <strong> gras <tbody> <row> <entry> <paragraph> texte 10 en <strong> gras <raw format="html" xml:space="preserve"> <div markdown=1> <paragraph> texte 11 en <strong> gras <paragraph> «  <literal> Backtick Β Β» supplΓ©mentaire <raw format="html" xml:space="preserve"> </div> <literal_block language="none" linenos="False" xml:space="preserve"> **additional** text 12 <literal_block language="default" linenos="False" xml:space="preserve"> **additional** text 13 <literal_block language="json" linenos="False" xml:space="preserve"> { "additional": "text 14" } <raw format="html" xml:space="preserve"> <h3>**additional** text 15</h3> <literal_block language="python" linenos="False" xml:space="preserve"> >>> print('doctest block') doctest block <raw format="html" xml:space="preserve"> <iframe src="http://sphinx-doc.org"></iframe> <paragraph> <image alt="Poisson amusant 1" candidates="{'*': 'poisson-amusant.png'}" uri="poisson-amusant.png"> <image alt="Poisson amusant 2" candidates="{'*': 'fun-fish.png'}" uri="fun-fish.png"> <figure> <image alt="Poisson amusant 3" candidates="{'*': 'fun-fish.png'}" uri="fun-fish.png"> <paragraph> rΓ©fΓ©rences aux notes de bas de page <footnote_reference docname="index" ids="id1" refid="id3"> 1 <footnote_reference auto="1" docname="index" ids="id2" refid="a"> 2 <transition classes="footnotes"> <footnote backrefs="id1" docname="index" ids="id3" names="1"> <label> 1 <paragraph> note de bas de page 1 <footnote auto="1" backrefs="id2" docname="index" ids="a" names="a"> <label> 2 <paragraph> note de bas de page a ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_gettext_html.xml������������������������0000664�0000000�0000000�00000007352�14654155362�0027540�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="index.md"> <section ids="bold-text-1" names="bold\ text\ 1 texte\ 1\ en\ gras"> <title> texte 1 en <strong> gras <paragraph> texte 2 en <strong> gras <block_quote> <paragraph> texte 3 en <strong> gras <note> <paragraph> texte 4 en <strong> gras <bullet_list bullet="*"> <list_item> <paragraph> texte 5 en <strong> gras <enumerated_list enumtype="arabic" prefix="" suffix="."> <list_item> <paragraph> texte 6 en <strong> gras <definition_list classes="simple myst"> <definition_list_item> <term> texte 7 en <strong> gras <definition> <paragraph> texte 8 en <strong> gras <table classes="colwidths-auto"> <tgroup cols="1"> <colspec colwidth="100"> <thead> <row> <entry> <paragraph> texte 9 en <strong> gras <tbody> <row> <entry> <paragraph> texte 10 en <strong> gras <raw format="html" xml:space="preserve"> <div markdown=1> <paragraph> texte 11 en <strong> gras <paragraph> «  <literal> Backtick Β Β» supplΓ©mentaire <raw format="html" xml:space="preserve"> </div> <literal_block language="none" xml:space="preserve"> **additional** text 12 <literal_block language="default" xml:space="preserve"> **additional** text 13 <literal_block language="json" xml:space="preserve"> { "additional": "text 14" } <raw format="html" xml:space="preserve"> <h3>**additional** text 15</h3> <literal_block language="python" xml:space="preserve"> >>> print('doctest block') doctest block <raw format="html" xml:space="preserve"> <iframe src="http://sphinx-doc.org"></iframe> <paragraph> <image alt="Poisson amusant 1" candidates="{'*': 'poisson-amusant.png'}" uri="poisson-amusant.png"> <image alt="Poisson amusant 2" candidates="{'*': 'fun-fish.png'}" uri="fun-fish.png"> <figure> <image alt="Poisson amusant 3" candidates="{'*': 'fun-fish.png'}" uri="fun-fish.png"> <paragraph> rΓ©fΓ©rences aux notes de bas de page <footnote_reference docname="index" ids="id1" refid="id3"> 1 <footnote_reference auto="1" docname="index" ids="id2" refid="a"> 2 <transition classes="footnotes"> <footnote backrefs="id1" docname="index" ids="id3" names="1"> <label> 1 <paragraph> note de bas de page 1 <footnote auto="1" backrefs="id2" docname="index" ids="a" names="a"> <label> 2 <paragraph> note de bas de page a ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_heading_slug_func.html������������������0000664�0000000�0000000�00000000721�14654155362�0030631�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="documentwrapper"> <div class="bodywrapper"> <div class="body" role="main"> <section id="hyphen-1"> <h1> Hyphen - 1 <a class="headerlink" href="#hyphen-1" title="Permalink to this heading"> ΒΆ </a> </h1> <section id="dot-1-1"> <h2> Dot 1.1 <a class="headerlink" href="#dot-1-1" title="Permalink to this heading"> ΒΆ </a> </h2> </section> </section> </div> </div> </div> �����������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_heading_slug_func.resolved.xml����������0000664�0000000�0000000�00000000362�14654155362�0032310�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="index.md"> <section ids="hyphen-1" names="hyphen\ -\ 1" slug="hyphen-1"> <title> Hyphen - 1 <section ids="dot-1-1" names="dot\ 1.1" slug="dot-1-1"> <title> Dot 1.1 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_heading_slug_func.xml�������������������0000664�0000000�0000000�00000000362�14654155362�0030466�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="index.md"> <section ids="hyphen-1" names="hyphen\ -\ 1" slug="hyphen-1"> <title> Hyphen - 1 <section ids="dot-1-1" names="dot\ 1.1" slug="dot-1-1"> <title> Dot 1.1 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_include_from_rst.xml��������������������0000664�0000000�0000000�00000000463�14654155362�0030362�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="index.rst"> <section ids="title" names="title"> <title> Title <section ids="markdown" names="markdown"> <title> Markdown <paragraph> <reference refuri="http://example.com/"> target �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_includes.html���������������������������0000664�0000000�0000000�00000010676�14654155362�0027005�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="documentwrapper"> <div class="bodywrapper"> <div class="body" role="main"> <section id="main-title"> <h1> Main Title <a class="headerlink" href="#main-title" title="Permalink to this heading"> ΒΆ </a> </h1> </section> <section id="markdown"> <h1> Markdown <a class="headerlink" href="#markdown" title="Permalink to this heading"> ΒΆ </a> </h1> <p> <a class="reference external" href="http://example.com/"> target </a> </p> <section id="a-sub-heading-in-include"> <span id="inc-header"> </span> <h2> A Sub-Heading in Include <a class="headerlink" href="#a-sub-heading-in-include" title="Permalink to this heading"> ΒΆ </a> </h2> <p> Some text with <em> syntax </em> </p> </section> <section id="a-sub-heading-in-nested-include"> <h2> A Sub-Heading in Nested Include <a class="headerlink" href="#a-sub-heading-in-nested-include" title="Permalink to this heading"> ΒΆ </a> </h2> <p> Some other text with <strong> syntax </strong> </p> <p> This relative path will refer to the importing file: </p> <figure class="align-default" id="id1"> <img alt="_images/example1.jpg" src="_images/example1.jpg"/> <figcaption> <p> <span class="caption-text"> Caption </span> <a class="headerlink" href="#id1" title="Permalink to this image"> ΒΆ </a> </p> </figcaption> </figure> <p> This absolute path will refer to the project root (where the <code class="docutils literal notranslate"> <span class="pre"> conf.py </span> </code> is): </p> <figure class="align-default" id="id2"> <img alt="_images/example2.jpg" src="_images/example2.jpg"/> <figcaption> <p> <span class="caption-text"> Caption </span> <a class="headerlink" href="#id2" title="Permalink to this image"> ΒΆ </a> </p> </figcaption> </figure> <p> <img alt="alt" src="_images/example2.jpg"/> </p> <p> <img alt="alt" src="https://example.com"/> </p> <p> <a class="reference internal" href="#"> <span class="std std-doc"> text </span> </a> </p> <p> <a class="reference internal" href="#inc-header"> <span class="std std-ref"> A Sub-Heading in Include </span> </a> </p> <div class="code python highlight-default notranslate"> <div class="highlight"> <pre><span></span><span class="k">def</span> <span class="nf">a_func</span><span class="p">(</span><span class="n">param</span><span class="p">):</span> <span class="nb">print</span><span class="p">(</span><span class="n">param</span><span class="p">)</span> </pre> </div> </div> <pre class="code python literal-block"><small class="ln">0 </small><code data-lineno="0 "><span class="keyword">def</span> <span class="name function">a_func</span><span class="punctuation">(</span><span class="name">param</span><span class="punctuation">):</span><span class="whitespace"> </span></code><small class="ln">1 </small><code data-lineno="1 "><span class="whitespace"></span> <span class="name builtin">print</span><span class="punctuation">(</span><span class="name">param</span><span class="punctuation">)</span></code></pre> <div class="highlight-default notranslate"> <div class="highlight"> <pre><span></span><span class="n">This</span> <span class="n">should</span> <span class="n">be</span> <span class="o">*</span><span class="n">literal</span><span class="o">*</span> <span class="n">Lots</span> <span class="n">of</span> <span class="n">lines</span> <span class="n">so</span> <span class="n">we</span> <span class="n">can</span> <span class="n">select</span> <span class="n">some</span> </pre> </div> </div> <pre class="literal-block" id="literal-ref"><span class="ln">0 </span>Lots <span class="ln">1 </span>of</pre> <section id="a-sub-sub-heading"> <h3> A Sub-sub-Heading <a class="headerlink" href="#a-sub-sub-heading" title="Permalink to this heading"> ΒΆ </a> </h3> <p> some more text </p> </section> </section> </section> </div> </div> </div> ������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_includes.xml����������������������������0000664�0000000�0000000�00000011053�14654155362�0026627�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="index.md"> <section ids="main-title" names="main\ title"> <title> Main Title <section ids="markdown" names="markdown"> <title> Markdown <paragraph> <reference refuri="http://example.com/"> target <target refid="inc-header"> <section ids="a-sub-heading-in-include inc-header" names="a\ sub-heading\ in\ include inc_header"> <title> A Sub-Heading in Include <paragraph> Some text with <emphasis> syntax <section ids="a-sub-heading-in-nested-include" names="a\ sub-heading\ in\ nested\ include"> <title> A Sub-Heading in Nested Include <paragraph> Some other text with <strong> syntax <paragraph> This relative path will refer to the importing file: <figure ids="id1"> <image candidates="{'*': 'example1.jpg'}" uri="example1.jpg"> <caption> Caption <paragraph> This absolute path will refer to the project root (where the <literal> conf.py is): <figure ids="id2"> <image candidates="{'*': 'subfolder/example2.jpg'}" uri="subfolder/example2.jpg"> <caption> Caption <paragraph> <image alt="alt" candidates="{'*': 'subfolder/example2.jpg'}" uri="subfolder/example2.jpg"> <paragraph> <image alt="alt" candidates="{'?': 'https://example.com'}" uri="https://example.com"> <paragraph> <pending_xref refdoc="index" refdomain="doc" refexplicit="True" reftarget="index" reftargetid="True" reftype="myst"> <inline classes="xref myst"> text <paragraph> <pending_xref refdoc="index" refdomain="std" refexplicit="False" reftarget="inc_header" reftype="ref" refwarn="True"> <inline classes="xref std std-ref"> inc_header <literal_block classes="code python" source="include_code.py" xml:space="preserve"> <inline classes="keyword"> def <inline classes="name function"> a_func <inline classes="punctuation"> ( <inline classes="name"> param <inline classes="punctuation"> ): <inline classes="whitespace"> <inline classes="name builtin"> print <inline classes="punctuation"> ( <inline classes="name"> param <inline classes="punctuation"> ) <literal_block classes="code python" source="include_code.py" xml:space="preserve"> <inline classes="ln"> 0 <inline classes="keyword"> def <inline classes="name function"> a_func <inline classes="punctuation"> ( <inline classes="name"> param <inline classes="punctuation"> ): <inline classes="whitespace"> <inline classes="ln"> 1 <inline classes="whitespace"> <inline classes="name builtin"> print <inline classes="punctuation"> ( <inline classes="name"> param <inline classes="punctuation"> ) <literal_block source="include_literal.txt" xml:space="preserve"> This should be *literal* Lots of lines so we can select some <literal_block ids="literal-ref" names="literal_ref" source="include_literal.txt" xml:space="preserve"> <inline classes="ln"> 0 Lots <inline classes="ln"> 1 of <section ids="a-sub-sub-heading" names="a\ sub-sub-heading"> <title> A Sub-sub-Heading <paragraph> some more text�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_references.html�������������������������0000664�0000000�0000000�00000014731�14654155362�0027314�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="documentwrapper"> <div class="bodywrapper"> <div class="body" role="main"> <section class="tex2jax_ignore mathjax_ignore" id="title-with-nested-a-1"> <span id="title"> </span> <h1> Title with <strong> nested </strong> <span class="math notranslate nohighlight"> \(a=1\) </span> <a class="headerlink" href="#title-with-nested-a-1" title="Permalink to this heading"> ΒΆ </a> </h1> <p> <a class="reference external" href="https://example.com"> </a> </p> <p> <a class="reference external" href="https://example.com"> plain text </a> </p> <p> <a class="reference external" href="https://example.com"> nested <em> syntax </em> </a> </p> <p> <a class="reference internal" href="#title"> <span class="std std-ref"> Title with nested a=1 </span> </a> </p> <p> <a class="reference internal" href="#title"> <span class="std std-ref"> plain text </span> </a> </p> <p> <a class="reference internal" href="#title"> <span class="std std-ref"> nested <em> syntax </em> </span> </a> </p> <p> <a class="reference internal" href="#"> <span class="std std-doc"> Title with nested a=1 </span> </a> </p> <p> <a class="reference internal" href="#"> <span class="std std-doc"> plain text </span> </a> </p> <p> <a class="reference internal" href="#"> <span class="std std-doc"> nested <em> syntax </em> </span> </a> </p> <p> <a class="reference download internal" download="" href="_downloads/ab0d698fdd2b6a81c34b5ed380fe6f61/file_link.txt"> <span class="xref download myst"> download <strong> link </strong> </span> </a> </p> <p> <a class="reference download internal" download="" href="_downloads/1952147a8403903cb78cecf56f049085/file_link2.txt"> <code class="xref download myst docutils literal notranslate"> <span class="pre"> subfolder/file_link2.txt </span> </code> </a> </p> <p id="insidecodeblock"> I am inside the eval-rst fence </p> <p> Referencing the <a class="reference internal" href="#title"> <span class="std std-ref"> Title with nested a=1 </span> </a> </p> <p> Still inside the codeblock <a class="reference internal" href="#insidecodeblock"> insidecodeblock </a> </p> <p> I am outside the <a class="reference internal" href="#insidecodeblock"> <span class="std std-ref"> fence </span> </a> </p> <section id="title-anchors"> <h2> Title <em> anchors </em> <a class="headerlink" href="#title-anchors" title="Permalink to this heading"> ΒΆ </a> </h2> <div class="toctree-wrapper compound"> <ul> <li class="toctree-l1"> <a class="reference internal" href="other.html"> Title <em> anchors </em> </a> </li> <li class="toctree-l1"> <a class="reference internal" href="subfolder/other2.html"> Title <em> anchors </em> </a> </li> </ul> </div> <p> <a class="reference internal" href="#title-anchors"> <span class="std std-ref"> Title anchors </span> </a> </p> <p> <a class="reference internal" href="#title-anchors"> <span class="std std-ref"> Title anchors </span> </a> </p> <p> <a class="reference internal" href="other.html#title-anchors"> <span class="std std-ref"> Title anchors </span> </a> </p> <p> <a class="reference internal" href="other.html#title-anchors"> <span class="std std-ref"> Title anchors </span> </a> </p> <p> <a class="reference internal" href="subfolder/other2.html#title-anchors"> <span class="std std-ref"> Title anchors </span> </a> </p> </section> </section> <section class="tex2jax_ignore mathjax_ignore" id="intersphinx-via"> <h1> Intersphinx via <code class="docutils literal notranslate"> <span class="pre"> # </span> </code> <a class="headerlink" href="#intersphinx-via" title="Permalink to this heading"> ΒΆ </a> </h1> <p> Unknown <a class="reference internal" href="#unknown"> <code class="xref myst docutils literal notranslate"> <span class="pre"> unknown </span> </code> </a> </p> <p> Unknown explicit <a class="reference internal" href="#unknown"> <span class="xref myst"> <strong> hallo </strong> </span> </a> </p> <p> Known no title <a class="reference external" href="https://example.com/index.html#paragraph-target" title="Example 0.0.1"> <code class="iref myst docutils literal notranslate"> <span class="pre"> paragraph-target </span> </code> </a> </p> <p> Known explicit <a class="reference external" href="https://example.com/index.html#paragraph-target" title="Example 0.0.1"> <span class="xref myst"> <strong> hallo </strong> </span> </a> </p> <p> Known with title <a class="reference external" href="https://example.com/index.html#title-target" title="Example 0.0.1"> <span class="iref myst"> Title </span> </a> </p> <p> Ambiguous <a class="reference external" href="https://example.com/index.html#module-duplicate" title="Example 0.0.1"> <code class="iref myst docutils literal notranslate"> <span class="pre"> duplicate </span> </code> </a> </p> </section> <section class="tex2jax_ignore mathjax_ignore" id="image-in-title"> <h1> Image in title <img alt="badge" src="https://shields.io/or/something.svg"/> <a class="headerlink" href="#image-in-title" title="Permalink to this heading"> ΒΆ </a> </h1> <p> <a class="reference internal" href="#image-in-title"> link up </a> </p> </section> </div> </div> </div> ���������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_references.resolved.xml�����������������0000664�0000000�0000000�00000015556�14654155362�0031000�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="index.md"> <target refid="title"> <section classes="tex2jax_ignore mathjax_ignore" ids="title-with-nested-a-1 title" names="title\ with\ nested\ a=1 title" slug="title-with-nested-"> <title> Title with <strong> nested <math> a=1 <paragraph> <reference refuri="https://example.com"> <paragraph> <reference refuri="https://example.com"> plain text <paragraph> <reference refuri="https://example.com"> nested <emphasis> syntax <paragraph> <reference internal="True" refid="title"> <inline classes="std std-ref"> Title with nested a=1 <paragraph> <reference internal="True" refid="title"> <inline classes="std std-ref"> plain text <paragraph> <reference internal="True" refid="title"> <inline classes="std std-ref"> nested <emphasis> syntax <paragraph> <reference internal="True" refuri=""> <inline classes="std std-doc"> Title with nested a=1 <paragraph> <reference internal="True" refuri=""> <inline classes="std std-doc"> plain text <paragraph> <reference internal="True" refuri=""> <inline classes="std std-doc"> nested <emphasis> syntax <paragraph> <download_reference filename="ab0d698fdd2b6a81c34b5ed380fe6f61/file_link.txt" refdoc="index" refdomain="True" refexplicit="True" reftarget="file_link.txt" reftype="myst"> <inline classes="xref download myst"> download <strong> link <paragraph> <download_reference filename="1952147a8403903cb78cecf56f049085/file_link2.txt" refdoc="index" refdomain="True" refexplicit="False" reftarget="subfolder/file_link2.txt" reftype="myst"> <literal classes="xref download myst"> subfolder/file_link2.txt <target refid="insidecodeblock"> <paragraph ids="insidecodeblock" names="insidecodeblock"> I am inside the eval-rst fence <paragraph> Referencing the <reference internal="True" refid="title"> <inline classes="std std-ref"> Title with nested a=1 <paragraph> Still inside the codeblock <reference name="insidecodeblock" refid="insidecodeblock"> insidecodeblock <paragraph> I am outside the <reference internal="True" refid="insidecodeblock"> <inline classes="std std-ref"> fence <section ids="title-anchors" names="title\ anchors" slug="title-anchors"> <title> Title <emphasis> anchors <compound classes="toctree-wrapper"> <compact_paragraph toctree="True"> <bullet_list> <list_item classes="toctree-l1"> <compact_paragraph classes="toctree-l1"> <reference anchorname="" internal="True" refuri="other.html"> Title <emphasis> anchors <list_item classes="toctree-l1"> <compact_paragraph classes="toctree-l1"> <reference anchorname="" internal="True" refuri="subfolder/other2.html"> Title <emphasis> anchors <paragraph> <reference id_link="True" refid="title-anchors"> <inline classes="std std-ref"> Title anchors <paragraph> <reference id_link="True" refid="title-anchors"> <inline classes="std std-ref"> Title anchors <paragraph> <reference internal="True" refuri="other.html#title-anchors"> <inline classes="std std-ref"> Title anchors <paragraph> <reference internal="True" refuri="other.html#title-anchors"> <inline classes="std std-ref"> Title anchors <paragraph> <reference internal="True" refuri="subfolder/other2.html#title-anchors"> <inline classes="std std-ref"> Title anchors <section classes="tex2jax_ignore mathjax_ignore" ids="intersphinx-via" names="intersphinx\ via\ #" slug="intersphinx-via-"> <title> Intersphinx via <literal> # <paragraph> Unknown <reference refid="unknown"> <literal classes="xref myst"> unknown <paragraph> Unknown explicit <reference refid="unknown"> <inline classes="xref myst"> <strong> hallo <paragraph> Known no title <reference internal="False" reftitle="Example 0.0.1" refuri="https://example.com/index.html#paragraph-target"> <literal classes="iref myst"> paragraph-target <paragraph> Known explicit <reference internal="False" reftitle="Example 0.0.1" refuri="https://example.com/index.html#paragraph-target"> <inline classes="xref myst"> <strong> hallo <paragraph> Known with title <reference internal="False" reftitle="Example 0.0.1" refuri="https://example.com/index.html#title-target"> <inline classes="iref myst"> Title <paragraph> Ambiguous <reference internal="False" reftitle="Example 0.0.1" refuri="https://example.com/index.html#module-duplicate"> <literal classes="iref myst"> duplicate <section classes="tex2jax_ignore mathjax_ignore" ids="image-in-title" names="image\ in\ title" slug="image-in-title-"> <title> Image in title <image alt="badge" candidates="{'?': 'https://shields.io/or/something.svg'}" uri="https://shields.io/or/something.svg"> <paragraph> <reference id_link="True" refid="image-in-title"> link up ��������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_references.xml��������������������������0000664�0000000�0000000�00000015514�14654155362�0027150�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="index.md"> <target refid="title"> <section classes="tex2jax_ignore mathjax_ignore" ids="title-with-nested-a-1 title" names="title\ with\ nested\ a=1 title" slug="title-with-nested-"> <title> Title with <strong> nested <math> a=1 <paragraph> <reference refuri="https://example.com"> <paragraph> <reference refuri="https://example.com"> plain text <paragraph> <reference refuri="https://example.com"> nested <emphasis> syntax <paragraph> <pending_xref refdoc="index" refdomain="True" refexplicit="False" reftarget="title" reftype="myst"> <inline classes="xref myst"> <paragraph> <pending_xref refdoc="index" refdomain="True" refexplicit="True" reftarget="title" reftype="myst"> <inline classes="xref myst"> plain text <paragraph> <pending_xref refdoc="index" refdomain="True" refexplicit="True" reftarget="title" reftype="myst"> <inline classes="xref myst"> nested <emphasis> syntax <paragraph> <pending_xref refdoc="index" refdomain="doc" refexplicit="False" reftarget="index" reftargetid="True" reftype="myst"> <inline classes="xref myst"> <paragraph> <pending_xref refdoc="index" refdomain="doc" refexplicit="True" reftarget="index" reftargetid="True" reftype="myst"> <inline classes="xref myst"> plain text <paragraph> <pending_xref refdoc="index" refdomain="doc" refexplicit="True" reftarget="index" reftargetid="True" reftype="myst"> <inline classes="xref myst"> nested <emphasis> syntax <paragraph> <download_reference filename="ab0d698fdd2b6a81c34b5ed380fe6f61/file_link.txt" refdoc="index" refdomain="True" refexplicit="True" reftarget="file_link.txt" reftype="myst"> <inline classes="xref download myst"> download <strong> link <paragraph> <download_reference filename="1952147a8403903cb78cecf56f049085/file_link2.txt" refdoc="index" refdomain="True" refexplicit="False" reftarget="subfolder/file_link2.txt" reftype="myst"> <literal classes="xref download myst"> subfolder/file_link2.txt <target refid="insidecodeblock"> <paragraph ids="insidecodeblock" names="insidecodeblock"> I am inside the eval-rst fence <paragraph> Referencing the <pending_xref refdoc="index" refdomain="std" refexplicit="False" reftarget="title" reftype="ref" refwarn="True"> <inline classes="xref std std-ref"> title <paragraph> Still inside the codeblock <reference name="insidecodeblock" refid="insidecodeblock"> insidecodeblock <paragraph> I am outside the <pending_xref refdoc="index" refdomain="True" refexplicit="True" reftarget="insidecodeblock" reftype="myst"> <inline classes="xref myst"> fence <section ids="title-anchors" names="title\ anchors" slug="title-anchors"> <title> Title <emphasis> anchors <compound classes="toctree-wrapper"> <toctree caption="True" entries="(None,\ 'other') (None,\ 'subfolder/other2')" glob="False" hidden="False" includefiles="other subfolder/other2" includehidden="False" maxdepth="-1" numbered="0" parent="index" rawentries="" titlesonly="False"> <paragraph> <reference id_link="True" refid="title-anchors"> <inline classes="std std-ref"> Title anchors <paragraph> <reference id_link="True" refid="title-anchors"> <inline classes="std std-ref"> Title anchors <paragraph> <pending_xref refdoc="index" refdomain="doc" refexplicit="False" reftarget="other" reftargetid="title-anchors" reftype="myst"> <inline classes="xref myst"> <paragraph> <pending_xref refdoc="index" refdomain="doc" refexplicit="False" reftarget="other" reftargetid="title-anchors" reftype="myst"> <inline classes="xref myst"> <paragraph> <pending_xref refdoc="index" refdomain="doc" refexplicit="False" reftarget="subfolder/other2" reftargetid="title-anchors" reftype="myst"> <inline classes="xref myst"> <section classes="tex2jax_ignore mathjax_ignore" ids="intersphinx-via" names="intersphinx\ via\ #" slug="intersphinx-via-"> <title> Intersphinx via <literal> # <paragraph> Unknown <pending_xref refdoc="index" refdomain="True" refexplicit="False" reftarget="unknown" reftype="myst"> <inline classes="xref myst"> <paragraph> Unknown explicit <pending_xref refdoc="index" refdomain="True" refexplicit="True" reftarget="unknown" reftype="myst"> <inline classes="xref myst"> <strong> hallo <paragraph> Known no title <pending_xref refdoc="index" refdomain="True" refexplicit="False" reftarget="paragraph-target" reftype="myst"> <inline classes="xref myst"> <paragraph> Known explicit <pending_xref refdoc="index" refdomain="True" refexplicit="True" reftarget="paragraph-target" reftype="myst"> <inline classes="xref myst"> <strong> hallo <paragraph> Known with title <pending_xref refdoc="index" refdomain="True" refexplicit="False" reftarget="title-target" reftype="myst"> <inline classes="xref myst"> <paragraph> Ambiguous <pending_xref refdoc="index" refdomain="True" refexplicit="False" reftarget="duplicate" reftype="myst"> <inline classes="xref myst"> <section classes="tex2jax_ignore mathjax_ignore" ids="image-in-title" names="image\ in\ title" slug="image-in-title-"> <title> Image in title <image alt="badge" candidates="{'?': 'https://shields.io/or/something.svg'}" uri="https://shields.io/or/something.svg"> <paragraph> <reference id_link="True" refid="image-in-title"> link up ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_references_singlehtml.html��������������0000664�0000000�0000000�00000005240�14654155362�0031535�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="documentwrapper"> <div class="bodywrapper"> <div class="body" role="main"> <section id="title"> <h1> Title <a class="headerlink" href="#title" title="Permalink to this heading"> ΒΆ </a> </h1> <div class="toctree-wrapper compound"> <span id="document-other/index"> </span> <section id="other-index"> <h2> Other Index <a class="headerlink" href="#other-index" title="Permalink to this heading"> ΒΆ </a> </h2> <div class="toctree-wrapper compound"> <span id="document-other/other"> </span> <section id="other-title"> <h3> Other Title <a class="headerlink" href="#other-title" title="Permalink to this heading"> ΒΆ </a> </h3> <p> <a class="reference internal" href="index.html#document-other/other2"> <span class="doc"> Other 2 Title </span> </a> </p> <p> <a class="reference internal" href="index.html#document-other/other2"> <span class="doc"> Other 2 Title </span> </a> </p> <p> <a class="reference internal" href="index.html#document-other/other2"> <span class="std std-doc"> Other 2 Title </span> </a> </p> <p> <a class="reference internal" href="index.html#title"> <span class="std std-ref"> Title </span> </a> </p> </section> <span id="document-other/other2"> </span> <section id="other-2-title"> <h3> Other 2 Title <a class="headerlink" href="#other-2-title" title="Permalink to this heading"> ΒΆ </a> </h3> </section> </div> </section> </div> <p> <a class="reference internal" href="index.html#document-other/other"> <span class="doc"> Other Title </span> </a> </p> <p> <a class="reference internal" href="index.html#document-other/other"> <span class="doc"> Other Title </span> </a> </p> <p> <a class="reference internal" href="index.html#document-other/other"> <span class="std std-doc"> Other Title </span> </a> </p> <p> <a class="reference internal" href="#title"> <span class="std std-ref"> Title </span> </a> </p> <p> <a class="reference internal" href="index.html#other-title"> <span class="std std-ref"> Other Title </span> </a> </p> </section> </div> </div> </div> ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_references_singlehtml.resolved.xml������0000664�0000000�0000000�00000001530�14654155362�0033211�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="other.md"> <section ids="other-title" names="other\ title" slug="other-title"> <title> Other Title <paragraph> <reference internal="True" refuri="index.html#document-other/other2"> <inline classes="doc"> Other 2 Title <paragraph> <reference internal="True" refuri="index.html#document-other/other2"> <inline classes="doc doc doc"> Other 2 Title <paragraph> <reference internal="True" refuri="index.html#document-other/other2"> <inline classes="std std-doc"> Other 2 Title <paragraph> <reference internal="True" refuri="index.html#document-index#title"> <inline classes="std std-ref"> Title ������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_references_singlehtml.xml���������������0000664�0000000�0000000�00000001753�14654155362�0031376�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="other.md"> <section ids="other-title" names="other\ title" slug="other-title"> <title> Other Title <paragraph> <pending_xref refdoc="other/other" refdomain="std" refexplicit="False" reftarget="other2" reftype="doc" refwarn="True"> <inline classes="xref std std-doc"> other2 <paragraph> <pending_xref refdoc="other/other" refdomain="" refexplicit="False" reftarget="other2" reftype="any" refwarn="True"> <literal classes="xref any"> other2 <paragraph> <pending_xref refdoc="other/other" refdomain="doc" refexplicit="False" reftarget="other/other2" reftargetid="True" reftype="myst"> <inline classes="xref myst"> <paragraph> <pending_xref refdoc="other/other" refdomain="doc" refexplicit="False" reftarget="index" reftargetid="title" reftype="myst"> <inline classes="xref myst"> ���������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_substitutions.html����������������������0000664�0000000�0000000�00000002735�14654155362�0030133�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<div class="documentwrapper"> <div class="bodywrapper"> <div class="body" role="main"> <p> output with <em> Markdown </em> nested substitution </p> <p> prefix </p> <div class="admonition note"> <p class="admonition-title"> Note </p> <p> A note nested substitution </p> </div> <p> a - text b </p> <p> c output with <em> Markdown </em> nested substitution d </p> <p> e <div class="admonition note"> <p class="admonition-title"> Note </p> <p> Inline note </p> </div> f </p> <p> This was from the conf </p> <p> Overridden by front matter </p> <p> This will process the substitution </p> <pre class="literal-block">output with <em>Markdown</em> nested substitution </pre> <p> This will not process the substitution </p> <div class="highlight-python notranslate"> <div class="highlight"> <pre><span></span><span class="p">{{</span> <span class="n">text_with_nest</span> <span class="p">}}</span> </pre> </div> </div> <p> Using env and filters: </p> <p> INDEX </p> <div class="toctree-wrapper compound"> <ul> <li class="toctree-l1"> <a class="reference internal" href="other.html"> Other </a> </li> </ul> </div> <p> Jan 01, 2020 </p> <p> item1 </p> <p> value1 </p> </div> </div> </div> �����������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_substitutions.other.xml�����������������0000664�0000000�0000000�00000000221�14654155362�0031073�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="other.md"> <section ids="other" names="other"> <title> Other <paragraph> From conf �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tests/test_sphinx/test_sphinx_builds/test_substitutions.xml�����������������������0000664�0000000�0000000�00000002641�14654155362�0027763�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<document source="index.md"> <paragraph> output with <emphasis> Markdown nested substitution <paragraph> prefix <note> <paragraph> A note nested substitution <paragraph> a - text b <paragraph> c output with <emphasis> Markdown nested substitution d <paragraph> e <note> <paragraph> Inline note f <paragraph> This was from the conf <paragraph> Overridden by front matter <paragraph> This will process the substitution <literal_block xml:space="preserve"> output with <emphasis> Markdown nested substitution <paragraph> This will not process the substitution <literal_block language="python" xml:space="preserve"> {{ text_with_nest }} <paragraph> Using env and filters: <paragraph> INDEX <compound classes="toctree-wrapper"> <toctree caption="True" entries="(None,\ 'other')" glob="False" hidden="False" includefiles="other" includehidden="False" maxdepth="-1" numbered="0" parent="index" rawentries="" titlesonly="False"> <paragraph> Jan 01, 2020 <paragraph> item1 <paragraph> value1 �����������������������������������������������������������������������������������������������MyST-Parser-4.0.0/tox.ini���������������������������������������������������������������������������0000664�0000000�0000000�00000002455�14654155362�0015135�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# To use tox, see https://tox.readthedocs.io # Simply pip or conda install tox # If you use conda, you may also want to install tox-conda # then run `tox` or `tox -- {pytest args}` # To run in parallel using `tox -p` (this does not appear to work for this repo) # To rebuild the tox environment, for example when dependencies change, use # `tox -r` # Note: if the following error is encountered: `ImportError while loading conftest` # then then deleting compiled files has been found to fix it: `find . -name \*.pyc -delete` [tox] envlist = py310-sphinx8 [testenv] usedevelop = true [testenv:py{310,311,312}-sphinx{7,8}] deps = sphinx7: sphinx>=7,<8 sphinx8: sphinx>=8,<9 extras = linkify testing commands = pytest {posargs} [testenv:docs-{update,clean}] extras = linkify rtd allowlist_externals = rm passenv = BUILDER TERM commands = clean: rm -rf docs/_build/{env:BUILDER:html} sphinx-build -nW --keep-going -b {env:BUILDER:html} docs/ docs/_build/{env:BUILDER:html} {posargs:-P} [testenv:docs-live] description = Build the documentation and launch browser deps = sphinx-autobuild extras = linkify rtd commands = sphinx-autobuild \ --re-ignore _build/.* \ --port 0 --open-browser \ -n -b {posargs:html} docs/ docs/_build/{posargs:html} �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������