[
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.yaml",
    "content": "name: 🐞 Bug Report\ndescription: Create a bug report to help us improve GPTCache\ntitle: \"[Bug]: \"\nbody:\n- type: markdown\n  attributes:\n    value: |\n      Thanks for taking the time to fill out this bug report! Please fill the form in English!\n- type: textarea\n  attributes:\n    label: Current Behavior\n    description: A concise description of what you're experiencing.\n    placeholder: |\n      When I do <X>, <Y> happens and I see the error message attached below:\n      ```...```\n  validations:\n    required: true\n- type: textarea\n  attributes:\n    label: Expected Behavior\n    description: A concise description of what you expected to happen.\n    placeholder: When I do <X>, <Z> should happen instead.\n  validations:\n    required: false\n- type: textarea\n  attributes:\n    label: Steps To Reproduce\n    description: Steps to reproduce the behavior.\n    placeholder: |\n      1. In this environment...\n      2. With this config...\n      3. Run '...'\n      4. See error...\n    render: markdown\n  validations:\n    required: false\n- type: textarea\n  attributes:\n    label: Environment\n    description: |\n      Enter the Environment Details:\n    render: markdown\n  validations:\n    required: false\n- type: textarea\n  attributes:\n    label: Anything else?\n    description: |\n      Links? References? Anything that will give us more context about the issue you are encountering!\n  validations:\n    required: false"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/documentation_improvement.yaml",
    "content": "name: 📖 Documentation Improvement\ndescription: Suggest improvements to our documentation\ntitle: \"[DOCS]: \"\nlabels: [Documentation]\nbody:\n- type: markdown\n  attributes:\n    value: |\n      Thanks for taking the time to fill out this documentation improvement request!\n- type: textarea\n  attributes:\n    label: Documentation Link\n    description: Add a link to the page which needs improvement (if relevant)\n  validations:\n    required: false\n- type: textarea\n  attributes:\n    label: Describe the problem\n    description: Is the documentation missing? Or is it confusing? Why is it confusing?\n  validations:\n    required: false\n- type: textarea\n  attributes:\n    label: Describe the improvement\n    description: A clear and concise description of the improvement.\n  validations:\n    required: false\n- type: textarea\n  attributes:\n    label: Anything else?\n    description: |\n      Links? References? Anything that will give us more context about the issue you are encountering!\n  validations:\n    required: false"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/enhancement.yaml",
    "content": "name: Enhancement Request\ndescription: As a developer, I want to make an enhancement for GPTCache\ntitle: \"[Enhancement]:\"\nlabels: [kind/enhancement]\nbody:\n- type: markdown\n  attributes:\n    value: |\n      Thanks for taking the time to request/suggest an enhancement for GPTCache! Please fill the form in English!\n- type: textarea\n  attributes:\n    label: What would you like to be added?\n    description: A concise description of what you're expecting/suggesting.\n    placeholder: |\n      I would like to suggest/request a feature that's like...\n  validations:\n    required: false\n- type: textarea\n  attributes:\n    label: Why is this needed?\n    description: A concise description of the reason/motivation\n  validations:\n    required: false\n- type: textarea\n  attributes:\n    label: Anything else?\n    description: |\n      Links? References? Anything that will give us more context about this!\n  validations:\n    required: false"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.yaml",
    "content": "name: 🚀 Feature Request\ndescription: As a user, I want to request a feature for GPTCache\ntitle: \"[Feature]:\"\nlabels: [kind/feature]\nbody:\n- type: markdown\n  attributes:\n    value: |\n      Thanks for taking the time to request a feature for GPTCache! Please fill the form in English!\n- type: textarea\n  attributes:\n    label: Is your feature request related to a problem? Please describe.\n    description: A concise description of the problem you are facing or the motivetion behind this feature request.\n    placeholder: |\n      I faced a problem due to which ...\n  validations:\n    required: false\n- type: textarea\n  attributes:\n    label: Describe the solution you'd like.\n    description: A concise description of the solution for the issue.\n  validations:\n    required: false\n- type: textarea\n  attributes:\n    label: Describe an alternate solution.\n    description: Is there any other approack to solve the problem?\n  validations:\n    required: false\n- type: textarea\n  attributes:\n    label: Anything else? (Additional Context)\n    description: |\n      Links? References? Anything that will give us more context about this!\n  validations:\n    required: false"
  },
  {
    "path": ".github/mergify.yml",
    "content": "pull_request_rules:\n  - name: Add needs-dco label when DCO check failed\n    conditions:\n      - or:\n        - base=main\n        - base=dev\n      - -status-success=DCO\n    actions:\n      label:\n        remove:\n          - dco-passed\n        add:\n          - needs-dco\n\n  - name: Add dco-passed label when DCO check passed\n    conditions:\n      - or:\n        - base=main\n        - base=dev\n      - status-success=DCO\n    actions:\n      label:\n        remove:\n          - needs-dco\n        add:\n          - dco-passed\n\n  # - name: Blocking PR if missing a related issue or PR doesn't have kind/improvement label\n  #   conditions:\n  #     - base=main\n  #     - and:\n  #       - -body~=\\#[0-9]{1,6}(\\s+|$)\n  #       - -body~=https://github.com/zilliztech/GPTCache/issues/[0-9]{1,6}(\\s+|$)\n  #     - -label=kind/improvement\n  #     - -title~=\\[automated\\]\n  #   actions:\n  #     label:\n  #       add:\n  #         - do-not-merge/missing-related-issue\n  #     comment:\n  #       message: |\n  #         @{{author}} Please associate the related issue to the body of your Pull Request.  (eg. “issue: #<xyz>”)\n\n  # - name: Dismiss block label if related issue be added into PR\n  #   conditions:\n  #     - base=main\n  #     - or:\n  #       - or:\n  #         - body~=\\#[0-9]{1,6}(\\s+|$)\n  #         - body~=https://github.com/milvus-io/knowhere/issues/[0-9]{1,6}(\\s+|$)\n  #       - label=kind/improvement\n  #   actions:\n  #     label:\n  #       remove:\n  #         - do-not-merge/missing-related-issue\n\n  - name: Test passed for code changed\n    conditions:\n      - or:\n        - base=main\n        - base=dev\n      - \"status-success=pylint\"\n      - \"status-success=build-pypi\"\n      - \"status-success=unit-test-main\"\n      - \"status-success=codecov/patch\"\n      - \"status-success=codecov/project\"\n    actions:\n      label:\n        add:\n          - ci-passed\n\n  - name: Test passed for title skip ci\n    conditions:\n      - or:\n        - base=main\n        - base=dev\n      - title~=\\[skip ci\\]\n      - -files~=^(?=.*((\\.(sh|py)|Makefile))).*$\n    actions:\n      label:\n        add:\n          - ci-passed\n\n  - name: Test passed for markdown file\n    conditions:\n      - or:\n        - base=main\n        - base=dev\n      - files=^.*\\.md$\n    actions:\n      label:\n        add:\n          - ci-passed\n\n  - name: Remove ci-passed label when ut failed for main\n    conditions:\n      - or:\n        - base=main\n        - base=dev\n      - or:\n        - \"status-success!=pylint\"\n        - \"status-success!=build-pypi\"\n        - \"status-success!=unit-test-main\"\n      - files~=^(?=.*((\\.(sh|py)|Makefile))).*$\n    actions:\n      label:\n        remove:\n          - ci-passed"
  },
  {
    "path": ".github/workflows/Nightly_CI_main.yaml",
    "content": "name: Nightly CI\n\non:\n  schedule:\n    # * is a special character in YAML so you have to quote this string\n    #        ┌───────────── minute (0 - 59)\n    #        │ ┌───────────── hour (0 - 23)\n    #        │ │ ┌───────────── day of the month (1 - 31)\n    #        │ │ │ ┌───────────── month (1 - 12 or JAN-DEC)\n    #        │ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT)\n    #        │ │ │ │ │\n    #        │ │ │ │ │\n    #        │ │ │ │ │\n    - cron: \"0 22 * * *\"\n  pull_request:\n    branches:\n      - main\n      - dev\n    paths:\n      - '.github/workflows/Nightly_CI_main.yaml'\n\njobs:\n  nightly-CI-gpt-cache-cli-main:\n    runs-on: ubuntu-20.04\n    strategy:\n      fail-fast: false\n    services:\n      postgres:\n        image: ankane/pgvector\n        ports:\n          - 5432:5432\n        env:\n          POSTGRES_PASSWORD: postgres\n        options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5\n    steps:\n      - uses: actions/checkout@main\n\n      - name: Set up Python 3.8\n        uses: actions/setup-python@v4\n        with:\n          python-version: 3.8\n          cache: pip\n\n      - name: Install dependency\n        shell: bash\n        run: |\n          pip install -r requirements.txt\n\n      - name: Build and install\n        shell: bash\n        run: |\n          python setup.py install\n\n      - name: Install test dependency\n        shell: bash\n        working-directory: tests\n        run: |\n          pip install -r requirements.txt\n\n      - name: Download the `en_core_web_sm` model\n        shell: bash\n        working-directory: tests\n        run: |\n          python3 -m spacy download en_core_web_sm\n\n      - name: Nightly CI Tests\n        timeout-minutes: 30\n        shell: bash\n        working-directory: tests\n        run: |\n          export IS_CI=true\n          export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python\n          python3 -m pytest ./ --tags L2\n"
  },
  {
    "path": ".github/workflows/build_dev_python_package.yaml",
    "content": "name: Build dev package\non:\n  push:\n    branches:\n      - main\n      - dev\n    paths:\n      - 'examples/**'\n      - 'gptcache/**'\n      - 'tests/**'\n      - '!**.md'\n      - '.github/workflows/**'\n  pull_request:\n    branches:\n      - main\n      - dev\n    paths:\n      - 'examples/**'\n      - 'gptcache/**'\n      - 'tests/**'\n      - '!**.md'\n      - '.github/workflows/**'\n  workflow_dispatch:\n\njobs:\n  build-pypi:\n    runs-on: ubuntu-20.04\n    steps:\n    - uses: actions/checkout@master\n    - name: Setup Python\n      uses: actions/setup-python@v4\n      with:\n        python-version: 3.8\n    # - name: Get history and tags for SCM versioning\n    #   run: |\n    #       git fetch --prune --unshallow\n    #       git fetch --depth=1 origin +refs/tags/*:refs/tags/*\n    - name: Install pypa/build\n      run: >-\n        python -m\n        pip install\n        build\n        --user\n    - name: Build a binary wheel and a source tarball\n      run: >-\n        python -m\n        build\n        --sdist\n        --wheel\n        --outdir dist/\n        .\n    - name: Archive production artifacts\n      uses: actions/upload-artifact@v3\n      with:\n        name: dist\n        path: |\n          dist\n          !dist/**/*.md\n"
  },
  {
    "path": ".github/workflows/publish_dev_package.yaml",
    "content": "name: Publish package to TestPyPI\n# on:\n#   push:\n#     branches:\n#       - 'main'\n#     paths:\n#       - 'gptcache/**'\n#       - '!**.md'\n#       - '.github/workflows/publish_dev_package.yaml'\n#   pull_request:\n#     branches:\n#       - main\n#     paths:\n#       - '.github/workflows/publish_dev_package.yaml'\non:\n  workflow_dispatch:\n\n  schedule:\n    # * is a special character in YAML so you have to quote this string\n    #         ┌───────────── minute (0 - 59)\n    #         │ ┌───────────── hour (0 - 23)\n    #         │ │ ┌───────────── day of the month (1 - 31)\n    #         │ │ │ ┌───────────── month (1 - 12 or JAN-DEC)\n    #         │ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT)\n    #         │ │ │ │ │\n    #         │ │ │ │ │\n    #         │ │ │ │ │\n    - cron:  '30 9 * * 1,4'\n\n\njobs:\n  build-and-publish-dev:\n    runs-on: ubuntu-20.04\n    steps:\n    - uses: actions/checkout@master\n    - name: Setup Python\n      uses: actions/setup-python@v4\n      with:\n        python-version: 3.8\n    # - name: Get history and tags for SCM versioning\n    #   run: |\n    #       git fetch --prune --unshallow\n    #       git fetch --depth=1 origin +refs/tags/*:refs/tags/*\n    - name: Install pypi/build\n      run: >-\n        python -m\n        pip install\n        build\n        --user\n    - name: Build a binary wheel and a source tarball\n      run: >-\n        python -m\n        build\n        --sdist\n        --wheel\n        --outdir dist/\n        .\n    - name: Publish distribution 📦 to Test PyPI\n      uses: pypa/gh-action-pypi-publish@master\n      with:\n        password: ${{ secrets.PYPI_TEST_TOKEN }}\n        repository_url: https://test.pypi.org/legacy/\n"
  },
  {
    "path": ".github/workflows/publish_release_image.yaml",
    "content": "name: Publish image to dockerhub\non:\n  release:\n    types: [published]\n  workflow_dispatch:\n\njobs:\n  build-and-publish-image:\n    runs-on: ubuntu-20.04\n    steps:\n    - name: Checkout \n      uses: actions/checkout@master\n\n    - name: Get version\n      id: get_version\n      run: echo ::set-output name=VERSION::${GITHUB_REF/refs\\/tags\\//}\n\n    - name: Docker Build\n      shell: bash\n      run: |\n        docker build \"./gptcache_server/dockerfiles\" -t \"zilliz/gptcache:${{ steps.get_version.outputs.VERSION }}\"\n\n    - name: Docker login \n      if: success()\n      uses: azure/docker-login@v1\n      with:\n        username: ${{ secrets.ZILLIZ_DOCKERHUB_USERNAME }} \n        password: ${{ secrets.ZILLIZ_DOCKERHUB_PASSWORD }}\n\n    - name: Docker Push\n      if: success()\n      continue-on-error: false\n      shell: bash\n      run: |\n        docker push zilliz/gptcache:${{ steps.get_version.outputs.VERSION }}\n        docker tag zilliz/gptcache:${{ steps.get_version.outputs.VERSION }} zilliz/gptcache:latest\n        docker push zilliz/gptcache:latest"
  },
  {
    "path": ".github/workflows/publish_release_package.yaml",
    "content": "name: Publish package to PyPI\n# on:\n#   push:\n#     branches:\n#       - 'main'\n#     paths:\n#       - 'gptcache/**'\n#       - '!**.md'\n#       - '.github/workflows/publish_dev_package.yaml'\n#   pull_request:\n#     branches:\n#       - main\n#     paths:\n#       - '.github/workflows/publish_dev_package.yaml'\non:\n  workflow_dispatch:\n\n  release:\n    types: [published]\n      # tags:\n      #   description: 'Test scenario tags'\n      #   required: false\n      #   type: boolean\n\njobs:\n  build-and-publish-release:\n    runs-on: ubuntu-20.04\n    steps:\n    - uses: actions/checkout@master\n    - name: Setup Python\n      uses: actions/setup-python@v4\n      with:\n        python-version: 3.8\n    # - name: Get history and tags for SCM versioning\n    #   run: |\n    #       git fetch --prune --unshallow\n    #       git fetch --depth=1 origin +refs/tags/*:refs/tags/*\n    - name: Install pypi/build\n      run: >-\n        python -m\n        pip install\n        build\n        --user\n    - name: Build a binary wheel and a source tarball\n      run: >-\n        python -m\n        build\n        --sdist\n        --wheel\n        --outdir dist/\n        .\n    - name: Publish distribution 📦 to Test PyPI\n      uses: pypa/gh-action-pypi-publish@master\n      with:\n        password: ${{ secrets.PYPI_TOKEN }}"
  },
  {
    "path": ".github/workflows/pylint.yaml",
    "content": "name: Pylint\non:\n  push:\n    branches:\n      - main\n      - dev\n      # file paths to consider in the event\n    paths:\n      - 'examples/**'\n      - 'gptcache/**'\n      - 'tests/**'\n      - 'docs/**'\n      - '!**.md'\n      - '.github/workflows/**'\n  pull_request:\n    branches:\n      - main\n      - dev\n      # file paths to consider in the event\n    paths:\n      - 'examples/**'\n      - 'gptcache/**'\n      - 'tests/**'\n      - 'docs/**'\n      - '!**.md'\n      - '.github/workflows/**'\n  workflow_dispatch:\n\njobs:\n  pylint:\n    runs-on: ubuntu-20.04\n    steps:\n    - uses: actions/checkout@v3.0.0\n    - name: Setup Python\n      uses: actions/setup-python@v4\n      with:\n        python-version: 3.8\n    - name: Python pylint\n      run: |\n        pip install pylint==2.10.2\n        make pylint_check\n    - name: Make the readthedoc html\n      shell: bash\n      working-directory: docs\n      run: |\n        pip install -r requirements.txt\n        make html\n"
  },
  {
    "path": ".github/workflows/unit_test_main.yaml",
    "content": "name: Unit test\n\non:\n  push:\n    branches:\n      - main\n      - dev\n    paths:\n      - 'examples/**'\n      - 'gptcache/**'\n      - 'tests/**'\n      - '!**.md'\n      - '.github/workflows/**'\n  pull_request:\n    branches:\n      - main\n      - dev\n    paths:\n      - 'examples/**'\n      - 'gptcache/**'\n      - 'tests/**'\n      - '!**.md'\n      - '.github/workflows/**'\n  workflow_dispatch:\n\njobs:\n  unit-test-main:\n    runs-on: ubuntu-20.04\n    strategy:\n      fail-fast: false\n    services:\n      postgres:\n        image: ankane/pgvector\n        ports:\n          - 5432:5432\n        env:\n          POSTGRES_PASSWORD: postgres\n        options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5\n      redis:\n        image: redis/redis-stack-server\n        ports:\n          - 6379:6379\n      dynamodb:\n        image: amazon/dynamodb-local:2.0.0\n        # rebinding to a different port since 8000 is a commonly used port\n        ports:\n          - 9999:8000\n      mongo:\n        image: mongo\n        ports:\n          - 27017:27017\n    steps:\n      - uses: actions/checkout@main\n\n      - name: Set up Python 3.8\n        uses: actions/setup-python@v4\n        with:\n          python-version: 3.8\n          cache: pip\n\n      - name: Install dependency\n        shell: bash\n        run: |\n          pip install -r requirements.txt\n\n      - name: Build and install\n        shell: bash\n        timeout-minutes: 10\n        run: |\n          python setup.py install\n\n      - name: Install test dependency\n        shell: bash\n        working-directory: tests\n        run: |\n          pip install -r requirements.txt\n\n      - name: Download the `en_core_web_sm` model\n        shell: bash\n        working-directory: tests\n        run: |\n          python3 -m spacy download en_core_web_sm\n\n      - name: Remove coverage xml\n        run: |\n          rm -rf ./coverage.xml\n\n      - name: Normal Unit Tests\n        timeout-minutes: 30\n        shell: bash\n        run: |\n          export IS_CI=true\n          export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python\n          python3 -m pytest -k \"not embedding and not processor\" --cov=gptcache --cov-report xml:coverage.xml --cov-append ./tests/\n\n      - name: Processor Unit Tests\n        timeout-minutes: 30\n        shell: bash\n        run: |\n          export IS_CI=true\n          export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python\n          python3 -m pytest --cov=gptcache --cov-append --cov-report xml:coverage.xml ./tests/unit_tests/processor/\n\n      - name: Embedding Unit Tests\n        timeout-minutes: 30\n        shell: bash\n        run: |\n          export IS_CI=true\n          export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python\n          python3 -m pytest --cov=gptcache --cov-report xml:coverage.xml --cov-append ./tests/unit_tests/embedding/\n\n      - name: Upload coverage to Codecov\n        uses: codecov/codecov-action@v3.1.0\n        with:\n          token: ${{ secrets.CODECOV_TOKEN }}\n          files: ./coverage.xml\n          fail_ci_if_error: true\n"
  },
  {
    "path": ".gitignore",
    "content": "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packaging\n.Python\nbuild/\ndevelop-eggs/\ndist/\ndownloads/\neggs/\n.eggs/\nlib/\nlib64/\nparts/\nsdist/\nvar/\nwheels/\npip-wheel-metadata/\nshare/python-wheels/\n*.egg-info/\n.installed.cfg\n*.egg\nMANIFEST\n*.DS_Store\n# PyInstaller\n#  Usually these files are written by a python script from a template\n#  before PyInstaller builds the exe, so as to inject date/other infos into it.\n*.manifest\n*.spec\n\n# Installer logs\npip-log.txt\npip-delete-this-directory.txt\n\n# Unit test / coverage reports\nhtmlcov/\n.tox/\n.nox/\n.coverage\n.coverage.*\n.cache\nnosetests.xml\ncoverage.xml\n*.cover\n*.py,cover\n.hypothesis/\n.pytest_cache/\n\n# Translations\n*.mo\n*.pot\n\n# Django stuff:\n*.log\nlocal_settings.py\ndb.sqlite3\ndb.sqlite3-journal\n*.db\n\n# Flask stuff:\ninstance/\n.webassets-cache\n\n# Scrapy stuff:\n.scrapy\n\n# Sphinx documentation\ndocs/_build/\n\n# PyBuilder\ntarget/\n\n# Jupyter Notebook\n.ipynb_checkpoints\n\n# IPython\nprofile_default/\nipython_config.py\n\n# pyenv\n.python-version\n\n# pipenv\n#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.\n#   However, in case of collaboration, if having platform-specific dependencies or dependencies\n#   having no cross-platform support, pipenv may install dependencies that don't work, or not\n#   install all needed dependencies.\n#Pipfile.lock\n\n# PEP 582; used by e.g. github.com/David-OConnor/pyflow\n__pypackages__/\n\n# Celery stuff\ncelerybeat-schedule\ncelerybeat.pid\n\n# SageMath parsed files\n*.sage.py\n\n# Environments\n.env\n.venv\nenv/\nvenv/\nENV/\nenv.bak/\nvenv.bak/\n\n# Spyder project settings\n.spyderproject\n.spyproject\n\n# Rope project settings\n.ropeproject\n\n# mkdocs documentation\n/site\n\n# mypy\n.mypy_cache/\n.dmypy.json\ndmypy.json\n\n# Pyre type checker\n.pyre/\n\n.idea\n**/data_map**.txt\n**/faiss**.index\n**/sqlite**.db\n**/gpt_cache**.db\n**/example.py\n**/example.db\n**/.chroma\ndocs/references/*\n!docs/references/index.rst"
  },
  {
    "path": "LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) Zilliz\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "MANIFEST.in",
    "content": "include requirements.txt\n"
  },
  {
    "path": "Makefile",
    "content": "install:\n\t@pip install -r requirements.txt\n\t@python setup.py install\n\npip_upgrade:\n\t@python -m pip install --upgrade pip\n\npackage:\n\t@python setup.py sdist bdist_wheel\n\nupload:\n\t@python -m twine upload dist/*\n\nupload_test:\n\t@python -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*\n\nremove_example_cache:\n\t@bash ./scripts/remove_example_cache.sh\n\ncreate_conda_env:\n\t@bash ./scripts/manage_conda_env.sh create\n\nremove_conda_env:\n\t@bash ./scripts/manage_conda_env.sh remove\n\npylint_check:\n\tpylint --rcfile=pylint.conf --output-format=colorized gptcache\n\npytest:\n\tpytest tests/"
  },
  {
    "path": "OWNERS",
    "content": "filters:\n  \".*\":\n    reviewers:\n      - SimFG\n      - xiaofan-luan\n      - cxie\n    approvers:\n      - SimFG\n      - xiaofan-luan\n      - cxie\n"
  },
  {
    "path": "README.md",
    "content": "# GPTCache : A Library for Creating Semantic Cache for LLM Queries\nSlash Your LLM API Costs by 10x 💰, Boost Speed by 100x ⚡ \n\n[![Release](https://img.shields.io/pypi/v/gptcache?label=Release&color&logo=Python)](https://pypi.org/project/gptcache/)\n[![pip download](https://img.shields.io/pypi/dm/gptcache.svg?color=bright-green&logo=Pypi)](https://pypi.org/project/gptcache/)\n[![Codecov](https://img.shields.io/codecov/c/github/zilliztech/GPTCache/dev?label=Codecov&logo=codecov&token=E30WxqBeJJ)](https://codecov.io/gh/zilliztech/GPTCache)\n[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/license/mit/)\n[![Twitter](https://img.shields.io/twitter/url/https/twitter.com/zilliz_universe.svg?style=social&label=Follow%20%40Zilliz)](https://twitter.com/zilliz_universe)\n[![Discord](https://img.shields.io/discord/1092648432495251507?label=Discord&logo=discord)](https://discord.gg/Q8C6WEjSWV)\n\n🎉 GPTCache has been fully integrated with 🦜️🔗[LangChain](https://github.com/hwchase17/langchain) ! Here are detailed [usage instructions](https://python.langchain.com/docs/modules/model_io/models/llms/integrations/llm_caching#gptcache).\n\n🐳 [The GPTCache server docker image](https://github.com/zilliztech/GPTCache/blob/main/docs/usage.md#Use-GPTCache-server) has been released, which means that **any language** will be able to use GPTCache!\n\n📔 This project is undergoing swift development, and as such, the API may be subject to change at any time. For the most up-to-date information, please refer to the latest [documentation]( https://gptcache.readthedocs.io/en/latest/) and [release note](https://github.com/zilliztech/GPTCache/blob/main/docs/release_note.md).\n\n**NOTE:** As the number of large models is growing explosively and their API shape is constantly evolving, we no longer add support for new API or models. We encourage the usage of using the get and set API in gptcache, here is the demo code: https://github.com/zilliztech/GPTCache/blob/main/examples/adapter/api.py\n\n## Quick Install\n\n`pip install gptcache`\n\n## 🚀 What is GPTCache?\n\nChatGPT and various large language models (LLMs) boast incredible versatility, enabling the development of a wide range of applications. However, as your application grows in popularity and encounters higher traffic levels, the expenses related to LLM API calls can become substantial. Additionally, LLM services might exhibit slow response times, especially when dealing with a significant number of requests.\n\nTo tackle this challenge, we have created GPTCache, a project dedicated to building a semantic cache for storing LLM responses. \n\n## 😊 Quick Start\n\n**Note**:\n\n- You can quickly try GPTCache and put it into a production environment without heavy development. However, please note that the repository is still under heavy development.\n- By default, only a limited number of libraries are installed to support the basic cache functionalities. When you need to use additional features, the related libraries will be **automatically installed**.\n- Make sure that the Python version is **3.8.1 or higher**, check: `python --version`\n- If you encounter issues installing a library due to a low pip version, run: `python -m pip install --upgrade pip`.\n\n### dev install\n\n```bash\n# clone GPTCache repo\ngit clone -b dev https://github.com/zilliztech/GPTCache.git\ncd GPTCache\n\n# install the repo\npip install -r requirements.txt\npython setup.py install\n```\n\n### example usage\n\nThese examples will help you understand how to use exact and similar matching with caching. You can also run the example on [Colab](https://colab.research.google.com/drive/1m1s-iTDfLDk-UwUAQ_L8j1C-gzkcr2Sk?usp=share_link). And more examples you can refer to the [Bootcamp](https://gptcache.readthedocs.io/en/latest/bootcamp/openai/chat.html)\n\nBefore running the example, **make sure** the OPENAI_API_KEY environment variable is set by executing `echo $OPENAI_API_KEY`. \n\nIf it is not already set, it can be set by using `export OPENAI_API_KEY=YOUR_API_KEY` on Unix/Linux/MacOS systems or `set OPENAI_API_KEY=YOUR_API_KEY` on Windows systems. \n\n> It is important to note that this method is only effective temporarily, so if you want a permanent effect, you'll need to modify the environment variable configuration file. For instance, on a Mac, you can modify the file located at `/etc/profile`.\n\n<details>\n\n<summary> Click to <strong>SHOW</strong> example code </summary>\n\n#### OpenAI API original usage\n\n```python\nimport os\nimport time\n\nimport openai\n\n\ndef response_text(openai_resp):\n    return openai_resp['choices'][0]['message']['content']\n\n\nquestion = 'what‘s chatgpt'\n\n# OpenAI API original usage\nopenai.api_key = os.getenv(\"OPENAI_API_KEY\")\nstart_time = time.time()\nresponse = openai.ChatCompletion.create(\n  model='gpt-3.5-turbo',\n  messages=[\n    {\n        'role': 'user',\n        'content': question\n    }\n  ],\n)\nprint(f'Question: {question}')\nprint(\"Time consuming: {:.2f}s\".format(time.time() - start_time))\nprint(f'Answer: {response_text(response)}\\n')\n\n```\n\n#### OpenAI API + GPTCache, exact match cache\n\n> If you ask ChatGPT the exact same two questions, the answer to the second question will be obtained from the cache without requesting ChatGPT again.\n\n```python\nimport time\n\n\ndef response_text(openai_resp):\n    return openai_resp['choices'][0]['message']['content']\n\nprint(\"Cache loading.....\")\n\n# To use GPTCache, that's all you need\n# -------------------------------------------------\nfrom gptcache import cache\nfrom gptcache.adapter import openai\n\ncache.init()\ncache.set_openai_key()\n# -------------------------------------------------\n\nquestion = \"what's github\"\nfor _ in range(2):\n    start_time = time.time()\n    response = openai.ChatCompletion.create(\n      model='gpt-3.5-turbo',\n      messages=[\n        {\n            'role': 'user',\n            'content': question\n        }\n      ],\n    )\n    print(f'Question: {question}')\n    print(\"Time consuming: {:.2f}s\".format(time.time() - start_time))\n    print(f'Answer: {response_text(response)}\\n')\n```\n\n#### OpenAI API + GPTCache, similar search cache\n\n> After obtaining an answer from ChatGPT in response to several similar questions, the answers to subsequent questions can be retrieved from the cache without the need to request ChatGPT again.\n\n```python\nimport time\n\n\ndef response_text(openai_resp):\n    return openai_resp['choices'][0]['message']['content']\n\nfrom gptcache import cache\nfrom gptcache.adapter import openai\nfrom gptcache.embedding import Onnx\nfrom gptcache.manager import CacheBase, VectorBase, get_data_manager\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\n\nprint(\"Cache loading.....\")\n\nonnx = Onnx()\ndata_manager = get_data_manager(CacheBase(\"sqlite\"), VectorBase(\"faiss\", dimension=onnx.dimension))\ncache.init(\n    embedding_func=onnx.to_embeddings,\n    data_manager=data_manager,\n    similarity_evaluation=SearchDistanceEvaluation(),\n    )\ncache.set_openai_key()\n\nquestions = [\n    \"what's github\",\n    \"can you explain what GitHub is\",\n    \"can you tell me more about GitHub\",\n    \"what is the purpose of GitHub\"\n]\n\nfor question in questions:\n    start_time = time.time()\n    response = openai.ChatCompletion.create(\n        model='gpt-3.5-turbo',\n        messages=[\n            {\n                'role': 'user',\n                'content': question\n            }\n        ],\n    )\n    print(f'Question: {question}')\n    print(\"Time consuming: {:.2f}s\".format(time.time() - start_time))\n    print(f'Answer: {response_text(response)}\\n')\n```\n\n#### OpenAI API + GPTCache, use temperature\n\n> You can always pass a parameter of temperature while requesting the API service or model.\n> \n> The range of `temperature` is [0, 2], default value is 0.0.\n> \n> A higher temperature means a higher possibility of skipping cache search and requesting large model directly.\n> When temperature is 2, it will skip cache and send request to large model directly for sure. When temperature is 0, it will search cache before requesting large model service.\n> \n> The default `post_process_messages_func` is `temperature_softmax`. In this case, refer to [API reference](https://gptcache.readthedocs.io/en/latest/references/processor.html#module-gptcache.processor.post) to learn about how `temperature` affects output.\n\n```python\nimport time\n\nfrom gptcache import cache, Config\nfrom gptcache.manager import manager_factory\nfrom gptcache.embedding import Onnx\nfrom gptcache.processor.post import temperature_softmax\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\nfrom gptcache.adapter import openai\n\ncache.set_openai_key()\n\nonnx = Onnx()\ndata_manager = manager_factory(\"sqlite,faiss\", vector_params={\"dimension\": onnx.dimension})\n\ncache.init(\n    embedding_func=onnx.to_embeddings,\n    data_manager=data_manager,\n    similarity_evaluation=SearchDistanceEvaluation(),\n    post_process_messages_func=temperature_softmax\n    )\n# cache.config = Config(similarity_threshold=0.2)\n\nquestion = \"what's github\"\n\nfor _ in range(3):\n    start = time.time()\n    response = openai.ChatCompletion.create(\n        model=\"gpt-3.5-turbo\",\n        temperature = 1.0,  # Change temperature here\n        messages=[{\n            \"role\": \"user\",\n            \"content\": question\n        }],\n    )\n    print(\"Time elapsed:\", round(time.time() - start, 3))\n    print(\"Answer:\", response[\"choices\"][0][\"message\"][\"content\"])\n```\n\n</details>\n\nTo use GPTCache exclusively, only the following lines of code are required, and there is no need to modify any existing code.\n\n```python\nfrom gptcache import cache\nfrom gptcache.adapter import openai\n\ncache.init()\ncache.set_openai_key()\n```\n\nMore Docs：\n\n- [Usage, how to use GPTCache better](docs/usage.md)\n- [Features, all features currently supported by the cache](docs/feature.md)\n- [Examples, learn better custom caching](examples/README.md)\n- [Distributed Caching and Horizontal Scaling ](docs/horizontal-scaling-usage.md)\n\n## 🎓 Bootcamp\n\n- GPTCache with **LangChain**\n  - [QA Generation](https://gptcache.readthedocs.io/en/latest/bootcamp/langchain/qa_generation.html)\n  - [Question Answering](https://gptcache.readthedocs.io/en/latest/bootcamp/langchain/question_answering.html)\n  - [SQL Chain](https://gptcache.readthedocs.io/en/latest/bootcamp/langchain/sqlite.html)\n  - [BabyAGI User Guide](https://gptcache.readthedocs.io/en/latest/bootcamp/langchain/baby_agi.html)\n- GPTCache with **Llama_index**\n  - [WebPage QA](https://gptcache.readthedocs.io/en/latest/bootcamp/llama_index/webpage_qa.html)\n- GPTCache with **OpenAI**\n  - [Chat completion](https://gptcache.readthedocs.io/en/latest/bootcamp/openai/chat.html)\n  - [Language Translation](https://gptcache.readthedocs.io/en/latest/bootcamp/openai/language_translate.html)\n  - [SQL Translate](https://gptcache.readthedocs.io/en/latest/bootcamp/openai/sql_translate.html)\n  - [Twitter Classifier](https://gptcache.readthedocs.io/en/latest/bootcamp/openai/tweet_classifier.html)\n  - [Multimodal: Image Generation](https://gptcache.readthedocs.io/en/latest/bootcamp/openai/image_generation.html)\n  - [Multimodal: Speech to Text](https://gptcache.readthedocs.io/en/latest/bootcamp/openai/speech_to_text.html)\n- GPTCache with **Replicate**\n  - [Visual Question Answering](https://gptcache.readthedocs.io/en/latest/bootcamp/replicate/visual_question_answering.html)\n- GPTCache with **Temperature Param**\n  - [OpenAI Chat](https://gptcache.readthedocs.io/en/latest/bootcamp/temperature/chat.html)\n  - [OpenAI Image Creation](https://gptcache.readthedocs.io/en/latest/bootcamp/temperature/create_image.html)\n\n## 😎 What can this help with?\nGPTCache offers the following primary benefits:\n\n- **Decreased expenses**: Most LLM services charge fees based on a combination of number of requests and [token count](https://openai.com/pricing). GPTCache effectively minimizes your expenses by caching query results, which in turn reduces the number of requests and tokens sent to the LLM service. As a result, you can enjoy a more cost-efficient experience when using the service.\n- **Enhanced performance**: LLMs employ generative AI algorithms to generate responses in real-time, a process that can sometimes be time-consuming. However, when a similar query is cached, the response time significantly improves, as the result is fetched directly from the cache, eliminating the need to interact with the LLM service. In most situations, GPTCache can also provide superior query throughput compared to standard LLM services.\n- **Adaptable development and testing environment**: As a developer working on LLM applications, you're aware that connecting to LLM APIs is generally necessary, and comprehensive testing of your application is crucial before moving it to a production environment. GPTCache provides an interface that mirrors LLM APIs and accommodates storage of both LLM-generated and mocked data. This feature enables you to effortlessly develop and test your application, eliminating the need to connect to the LLM service.\n- **Improved scalability and availability**: LLM services frequently enforce [rate limits](https://platform.openai.com/docs/guides/rate-limits), which are constraints that APIs place on the number of times a user or client can access the server within a given timeframe. Hitting a rate limit means that additional requests will be blocked until a certain period has elapsed, leading to a service outage. With GPTCache, you can easily scale to accommodate an increasing volume of queries, ensuring consistent performance as your application's user base expands.\n\n## 🤔 How does it work?\n\nOnline services often exhibit data locality, with users frequently accessing popular or trending content. Cache systems take advantage of this behavior by storing commonly accessed data, which in turn reduces data retrieval time, improves response times, and eases the burden on backend servers. Traditional cache systems typically utilize an exact match between a new query and a cached query to determine if the requested content is available in the cache before fetching the data.\n\nHowever, using an exact match approach for LLM caches is less effective due to the complexity and variability of LLM queries, resulting in a low cache hit rate. To address this issue, GPTCache adopt alternative strategies like semantic caching. Semantic caching identifies and stores similar or related queries, thereby increasing cache hit probability and enhancing overall caching efficiency. \n\nGPTCache employs embedding algorithms to convert queries into embeddings and uses a vector store for similarity search on these embeddings. This process allows GPTCache to identify and retrieve similar or related queries from the cache storage, as illustrated in the [Modules section](https://github.com/zilliztech/GPTCache#-modules). \n\nFeaturing a modular design, GPTCache makes it easy for users to customize their own semantic cache. The system offers various implementations for each module, and users can even develop their own implementations to suit their specific needs.\n\nIn a semantic cache, you may encounter false positives during cache hits and false negatives during cache misses. GPTCache offers three metrics to gauge its performance, which are helpful for developers to optimize their caching systems:\n\n- **Hit Ratio**: This metric quantifies the cache's ability to fulfill content requests successfully, compared to the total number of requests it receives. A higher hit ratio indicates a more effective cache.\n- **Latency**: This metric measures the time it takes for a query to be processed and the corresponding data to be retrieved from the cache. Lower latency signifies a more efficient and responsive caching system.\n- **Recall**: This metric represents the proportion of queries served by the cache out of the total number of queries that should have been served by the cache. Higher recall percentages indicate that the cache is effectively serving the appropriate content.\n\nA [sample benchmark](https://github.com/zilliztech/gpt-cache/blob/main/examples/benchmark/benchmark_sqlite_faiss_onnx.py) is included for users to start with assessing the performance of their semantic cache.\n\n## 🤗 Modules\n\n![GPTCache Struct](docs/GPTCacheStructure.png)\n\n- **LLM Adapter**: \nThe LLM Adapter is designed to integrate different LLM models by unifying their APIs and request protocols. GPTCache offers a standardized interface for this purpose, with current support for ChatGPT integration.\n  - [x] Support OpenAI ChatGPT API.\n  - [x] Support [langchain](https://github.com/hwchase17/langchain).\n  - [x] Support [minigpt4](https://github.com/Vision-CAIR/MiniGPT-4.git).\n  - [x] Support [Llamacpp](https://github.com/ggerganov/llama.cpp.git).\n  - [x] Support [dolly](https://github.com/databrickslabs/dolly.git).\n  - [ ] Support other LLMs, such as Hugging Face Hub, Bard, Anthropic.\n- **Multimodal Adapter (experimental)**: \nThe Multimodal Adapter is designed to integrate different large multimodal models by unifying their APIs and request protocols. GPTCache offers a standardized interface for this purpose, with current support for integrations of image generation, audio transcription.\n  - [x] Support OpenAI Image Create API.\n  - [x] Support OpenAI Audio Transcribe API.\n  - [x] Support Replicate BLIP API.\n  - [x] Support Stability Inference API.\n  - [x] Support Hugging Face Stable Diffusion Pipeline (local inference).\n  - [ ] Support other multimodal services or self-hosted large multimodal models.\n- **Embedding Generator**: \nThis module is created to extract embeddings from requests for similarity search. GPTCache offers a generic interface that supports multiple embedding APIs, and presents a range of solutions to choose from. \n  - [x] Disable embedding. This will turn GPTCache into a keyword-matching cache.\n  - [x] Support OpenAI embedding API.\n  - [x] Support [ONNX](https://onnx.ai/) with the GPTCache/paraphrase-albert-onnx model.\n  - [x] Support [Hugging Face](https://huggingface.co/) embedding with transformers, ViTModel, Data2VecAudio.\n  - [x] Support [Cohere](https://docs.cohere.ai/reference/embed) embedding API.\n  - [x] Support [fastText](https://fasttext.cc) embedding.\n  - [x] Support [SentenceTransformers](https://www.sbert.net) embedding.\n  - [x] Support [Timm](https://timm.fast.ai/) models for image embedding.\n  - [ ] Support other embedding APIs.\n- **Cache Storage**:\n**Cache Storage** is where the response from LLMs, such as ChatGPT, is stored. Cached responses are retrieved to assist in evaluating similarity and are returned to the requester if there is a good semantic match. At present, GPTCache supports SQLite and offers a universally accessible interface for extension of this module.\n  - [x] Support [SQLite](https://sqlite.org/docs.html).\n  - [x] Support [DuckDB](https://duckdb.org/).\n  - [x] Support [PostgreSQL](https://www.postgresql.org/).\n  - [x] Support [MySQL](https://www.mysql.com/).\n  - [x] Support [MariaDB](https://mariadb.org/).\n  - [x] Support [SQL Server](https://www.microsoft.com/en-us/sql-server/).\n  - [x] Support [Oracle](https://www.oracle.com/).\n  - [x] Support [DynamoDB](https://aws.amazon.com/dynamodb/).\n  - [ ] Support [MongoDB](https://www.mongodb.com/).\n  - [ ] Support [Redis](https://redis.io/).\n  - [ ] Support [Minio](https://min.io/).\n  - [ ] Support [HBase](https://hbase.apache.org/).\n  - [ ] Support [ElasticSearch](https://www.elastic.co/).\n  - [ ] Support other storages.\n- **Vector Store**:\nThe **Vector Store** module helps find the K most similar requests from the input request's extracted embedding. The results can help assess similarity. GPTCache provides a user-friendly interface that supports various vector stores, including Milvus, Zilliz Cloud, and FAISS. More options will be available in the future.\n  - [x] Support [Milvus](https://milvus.io/), an open-source vector database for production-ready AI/LLM applications. \n  - [x] Support [Zilliz Cloud](https://cloud.zilliz.com/), a fully-managed cloud vector database based on Milvus.\n  - [x] Support [Milvus Lite](https://github.com/milvus-io/milvus-lite), a lightweight version of Milvus that can be embedded into your Python application.\n  - [x] Support [FAISS](https://faiss.ai/), a library for efficient similarity search and clustering of dense vectors.\n  - [x] Support [Hnswlib](https://github.com/nmslib/hnswlib), header-only C++/python library for fast approximate nearest neighbors.\n  - [x] Support [PGVector](https://github.com/pgvector/pgvector), open-source vector similarity search for Postgres.\n  - [x] Support [Chroma](https://github.com/chroma-core/chroma), the AI-native open-source embedding database.\n  - [x] Support [DocArray](https://github.com/docarray/docarray), DocArray is a library for representing, sending and storing multi-modal data, perfect for Machine Learning applications.\n  - [x] Support qdrant\n  - [x] Support weaviate\n  - [ ] Support other vector databases.\n- **Cache Manager**:\nThe **Cache Manager** is responsible for controlling the operation of both the **Cache Storage** and **Vector Store**.\n  - **Eviction Policy**:\n  Cache eviction can be managed in memory using python's `cachetools` or in a distributed fashion using Redis as a key-value store. \n  - **In-Memory Caching**\n  \n  Currently, GPTCache makes decisions about evictions based solely on the number of lines. This approach can result in inaccurate resource evaluation and may cause out-of-memory (OOM) errors. We are actively investigating and developing a more sophisticated strategy.\n    - [x] Support LRU eviction policy.\n    - [x] Support FIFO eviction policy.\n    - [x] Support LFU eviction policy.\n    - [x] Support RR eviction policy.\n    - [ ] Support more complicated eviction policies.\n  - **Distributed Caching**\n  \n  If you were to scale your GPTCache deployment horizontally using in-memory caching, it won't be possible. Since the cached information would be limited to the single pod.\n  \n  With Distributed Caching, cache information consistent across all replicas we can use Distributed Cache stores like Redis. \n    - [x] Support Redis distributed cache\n    - [x] Support memcached distributed cache\n  \n- **Similarity Evaluator**: \nThis module collects data from both the **Cache Storage** and **Vector Store**, and uses various strategies to determine the similarity between the input request and the requests from the **Vector Store**. Based on this similarity, it determines whether a request matches the cache. GPTCache provides a standardized interface for integrating various strategies, along with a collection of implementations to use. The following similarity definitions are currently supported or will be supported in the future:\n  - [x] The distance we obtain from the **Vector Store**.\n  - [x] A model-based similarity determined using the GPTCache/albert-duplicate-onnx model from [ONNX](https://onnx.ai/).\n  - [x] Exact matches between the input request and the requests obtained from the **Vector Store**.\n  - [x] Distance represented by applying linalg.norm from numpy to the embeddings.\n  - [ ] BM25 and other similarity measurements.\n  - [ ] Support other model serving framework such as PyTorch.\n \n  \n  **Note**:Not all combinations of different modules may be compatible with each other. For instance, if we disable the **Embedding Extractor**, the **Vector Store** may not function as intended. We are currently working on implementing a combination sanity check for **GPTCache**.\n\n## 😇 Roadmap\nComing soon! [Stay tuned!](https://twitter.com/zilliz_universe)\n\n## 😍 Contributing\nWe are extremely open to contributions, be it through new features, enhanced infrastructure, or improved documentation.\n\nFor comprehensive instructions on how to contribute, please refer to our [contribution guide](docs/contributing.md).\n"
  },
  {
    "path": "cache_config_template.yml",
    "content": "# For `model_src`, `evaluation`, `post_function`, `pre_function`,\n# `storage_config` options, Check README for more.\n\nembedding:\n    onnx\nembedding_config:\n    # Set model kws here including `model`, `api_key` if needed\nstorage_config:\n    data_dir:\n        gptcache_data\n    manager:\n        sqlite,faiss\n    vector_params:\n        # Set vector storage related params here\nevaluation: \n    distance\nevaluation_config:\n    # Set evaluation metric kws here\npre_function:\n    get_prompt\npost_function:\n    first\nconfig:\n    similarity_threshold: 0.8\n    # Set other config here\n"
  },
  {
    "path": "codecov.yml",
    "content": "# Configuration File for CodeCov\ncodecov:\n  require_ci_to_pass: no\n  notify:\n    require_ci_to_pass: no\n    wait_for_ci: false\n\ncoverage:\n  precision: 2\n  round: down\n  range: \"70...100\"\n\n  status:\n    project:\n      default:\n        target: 90%\n        threshold: 0% #Allow the coverage to drop by threshold%, and posting a success status.\n    patch:\n      default:\n        target: 90%   #target of patch diff\n        threshold: 0%\n        if_ci_failed: error #success, failure, error, ignore\n\ncomment:\n  layout: \"reach, diff, flags, files\"\n  behavior: default\n  require_changes: false\n  branches: # branch names that can post comment\n    - main\n    - dev\n\nignore:\n  - \"LICENSES\"\n  - \".git\"\n  - \"*.yml\"\n  - \"*.md\"\n  - \"**/minigpt4.py\"\n"
  },
  {
    "path": "docs/.readthedocs.yaml",
    "content": "version: 2\n\npython:\n   version: 3.8\n   system_packages: true"
  },
  {
    "path": "docs/Makefile",
    "content": "# Minimal makefile for Sphinx documentation\n#\n\n# You can set these variables from the command line, and also\n# from the environment for the first two.\nSPHINXOPTS    ?=\nSPHINXBUILD   ?= sphinx-build\nSPHINXAUTOBUILD   ?= sphinx-autobuild\nSOURCEDIR     = .\nBUILDDIR      = _build\n\n# Put it first so that \"make\" without argument is like \"make help\".\nhelp:\n\t@$(SPHINXBUILD) -M help \"$(SOURCEDIR)\" \"$(BUILDDIR)\" $(SPHINXOPTS) $(O)\n\n.PHONY: help Makefile\n\n# Catch-all target: route all unknown targets to Sphinx using the new\n# \"make mode\" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).\n%: Makefile\n\t@$(SPHINXBUILD) -M $@ \"$(SOURCEDIR)\" \"$(BUILDDIR)\" $(SPHINXOPTS) $(O)\n"
  },
  {
    "path": "docs/_exts/docgen2.py",
    "content": "import os\nimport sys\n\nfrom jinja2 import Environment, FileSystemLoader, select_autoescape\n\n_default_skip_file_list = [\"__init__.py\"]\n_default_skip_dir_list = [\"__pycache__\"]\n_conflict_name_dict = {\n            \"manager\": [\"eviction\", \"object_data\", \"scalar_data\", \"vector_data\"]\n        }\n\n\nclass DocGen:\n    def __init__(\n        self,\n        lib_name=\"gptcache\",\n        source_dir=\"../gptcache\",\n        output_dir=\"references\",\n        skip_list=[],\n    ):\n        self.lib_name = lib_name\n        self.output_dir = os.path.abspath(output_dir)\n        self.source_dir = os.path.abspath(source_dir)\n        self.skip_list = skip_list\n\n    @staticmethod\n    def title_bar(input_str):\n        return \"=\" * len(input_str)\n\n    @staticmethod\n    def section_bar(input_str):\n        return \"-\" * len(input_str)\n\n    @staticmethod\n    def get_filename(input_str):\n        if input_str == \"gptcache\":\n            return input_str\n        suffix = os.path.splitext(input_str)[1][1:]\n        for conflict_dir, conflict_names in _conflict_name_dict.items():\n            for conflict_name in conflict_names:\n                if f\"{conflict_dir}.{conflict_name}\" in input_str:\n                    return f\"{conflict_name}.{suffix}\"\n\n        return suffix\n\n    @staticmethod\n    def cap(input_str):\n        input_str = DocGen.get_filename(input_str)\n        if input_str == \"gptcache\":\n            return \"GPTCache\"\n        return str.join(\" \", [i.capitalize() for i in input_str.split(\"_\")])\n\n    def model_name(self, input_str: str):\n        return self.lib_name + input_str[len(self.source_dir) :].replace(\"/\", \".\")\n\n    def get_module_and_libs(self, module_dir, is_root):\n        module = self.model_name(module_dir)\n        libs = []\n        for file in os.listdir(module_dir):\n            if (\n                os.path.isfile(os.path.join(module_dir, file))\n                and file not in _default_skip_file_list\n            ):\n                libs.append(module + \".\" + os.path.splitext(file)[0])\n            if not is_root:\n                if (\n                    os.path.isdir(os.path.join(module_dir, file))\n                    and file not in _default_skip_dir_list\n                ):\n                    _, child_libs = self.get_module_and_libs(\n                        os.path.join(module_dir, file), False\n                    )\n                    libs.extend(child_libs)\n        if len(libs) > 0:\n            sorted(libs)\n            return module, libs\n        return \"\", []\n\n    def generate(self):\n        # Set the output directory\n        env = Environment(\n            loader=FileSystemLoader(os.path.join(self.output_dir, \"../_templates\")),\n            autoescape=select_autoescape(),\n        )\n\n        # Add custom filters\n        env.filters[\"title_bar\"] = DocGen.title_bar\n        env.filters[\"section_bar\"] = DocGen.section_bar\n        env.filters[\"cap\"] = DocGen.cap\n\n        # Add the target path to the system path\n        sys.path.insert(0, os.path.abspath(\"..\"))\n\n        # Load the modules\n        modules = []\n        libs = []\n\n        a, b = self.get_module_and_libs(self.source_dir, True)\n        if a:\n            modules.append(a)\n            libs.append(b)\n\n        for file in os.listdir(self.source_dir):\n            tmp_dir = os.path.join(self.source_dir, file)\n            if os.path.isdir(tmp_dir) and file not in _default_skip_dir_list:\n                a, b = self.get_module_and_libs(tmp_dir, False)\n                if a:\n                    modules.append(a)\n                    libs.append(b)\n\n        # Render the index templates and write rendered output to files\n        index_temp = env.get_template(\"index.rst\")\n\n        with open(os.path.join(self.output_dir, \"index.rst\"), \"w\") as f:\n            t = index_temp.render(\n                {\"modules\": [DocGen.get_filename(module) for module in modules]}\n            )\n            f.write(t)\n\n        # Render the function templates and write rendered output to files\n        func_temp = env.get_template(\"function.rst\")\n\n        for index, module in enumerate(modules):\n            with open(\n                os.path.join(self.output_dir, f\"{DocGen.get_filename(module)}.rst\"), \"w\"\n            ) as f:\n                t = func_temp.render(\n                    {\n                        \"module_name\": module,\n                        \"funcs\": [\n                            (DocGen.get_filename(lib), lib) for lib in libs[index]\n                        ],\n                    }\n                )\n                f.write(t)\n\n\n# if __name__ == \"__main__\":\n#     gen = DocGen(source_dir=\"/Users/derek/fubang/gptcache/gptcache\", output_dir=\"/Users/derek/fubang/gptcache/docs/references\")\n#     gen.generate()\n"
  },
  {
    "path": "docs/_exts/index_con.py",
    "content": "from m2r2 import convert\nimport os\n\nclass IndexCon:\n    \n  def __init__(self, source, output):\n    self.source = source\n    self.output = output\n    self.preprocess()\n\n  def preprocess(self):\n    with open(self.source, 'r') as f:\n      \n      # remove the CI link from the file\n      lines = f.readlines()\n      lines = [line for line in lines if '[CI]' not in line]\n\n      # change local links to the ones related to the _build/html directory and extension to .html\n      lines = [line.replace('](docs/', '](') for line in lines] \n      lines = [line.replace('.md)', '.html)') for line in lines]\n\n      # get the raw text within the <details> tag\n      start_details_tag = [line for line in lines if '<details>' in line]\n      summary_tag = [line for line in lines if '<summary>' in line]\n      end_details_tag = [line for line in lines if '</details>' in line]\n      start_details = lines.index(start_details_tag[0])\n      summary_line = lines.index(summary_tag[0])\n      end_details = lines.index(end_details_tag[0])\n\n      before = convert(''.join(lines[:start_details-1]))\n      end = convert(''.join(lines[end_details+1:]))\n\n      collapse_rst = lines[summary_line+1:end_details]\n      collapse_rst = [ \"**\" + x.split(\"# \")[1][:-1] + \"**\\n\" if '# ' in x else x for x in collapse_rst]\n\n      # print(collapse_rst)\n\n      collapse_rst = convert(''.join(collapse_rst))\n      collapse_rst = collapse_rst.split(\"\\n\")\n      collapse_rst = [ '    ' + x for x in collapse_rst]\n\n      collapse_rst = [f'\\n.. collapse:: Click to SHOW examples\\n'] + collapse_rst\n      os.remove(self.output)\n\n      with open(self.output, 'a') as f:\n        f.write(before)\n        f.write('\\n'.join(collapse_rst))\n        f.write(end)\n        f.write('\\n\\n')\n        \n        with open('toc.bak', 'r') as t:\n          f.write(t.read())\n\nif __name__ == '__main__':\n  index = IndexCon('../../README.md')\n\n"
  },
  {
    "path": "docs/_templates/author.html",
    "content": "By <a href=\"https://zilliz.com/cloud\">Zilliz Inc.</a>"
  },
  {
    "path": "docs/_templates/copyright.html",
    "content": "<p>© Copyright 2023, <a href=\"https://zilliz.com/cloud\">Zilliz Inc.</a></p>"
  },
  {
    "path": "docs/_templates/function.rst",
    "content": "{{ module_name | cap }}\n{{ module_name | title_bar }}\n\n.. contents:: Index\n\n{% for func in funcs  -%}\n{{func[0]}}\n{{ func[0] | section_bar }}\n.. automodule:: {{func[1]}}\n   :members:\n   :undoc-members:\n   :show-inheritance:\n\n{% endfor %}"
  },
  {
    "path": "docs/_templates/index.rst",
    "content": "🥸 API References\n=================\n\n.. toctree::\n   :maxdepth: 1\n   :caption: Contents:\n\n{% for module in modules %}\n   {{ module }}\n{%- endfor -%}"
  },
  {
    "path": "docs/bootcamp/langchain/baby_agi.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"517a9fd4\",\n   \"metadata\": {},\n   \"source\": [\n    \"# BabyAGI User Guide\\n\",\n    \"\\n\",\n    \"This notebook demonstrates how to implement [BabyAGI](https://github.com/yoheinakajima/babyagi/tree/main) by [Yohei Nakajima](https://twitter.com/yoheinakajima). BabyAGI is an AI agent that can generate and pretend to execute tasks based on a given objective, and you can find the origin notebook in [LangChain example](https://github.com/hwchase17/langchain/blob/master/docs/use_cases/autonomous_agents/baby_agi.ipynb).\\n\",\n    \"\\n\",\n    \"This guide will help you understand the components to create your own recursive agents, And it will also show how to use GPTCache to cache the response. You can also try this example on [Google Colab](https://colab.research.google.com/drive/1WTvWIujioZtpwwVz7GGDzYhooul-rBeG?usp=sharing).\\n\",\n    \"\\n\",\n    \"Although BabyAGI uses specific vectorstores/model providers (Pinecone, OpenAI), one of the benefits of implementing it with LangChain is that you can easily swap those out for different options. In this implementation we use a Milvus vector datavase (because it runs locally and is free).\\n\",\n    \"\\n\",\n    \" \"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"47ef6fe7\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Go into GPTCache\\n\",\n    \"\\n\",\n    \"Please [install gptcache](https://gptcache.readthedocs.io/en/latest/index.html#) first, then we can initialize the cache.There are two ways to initialize the cache, the first is to use the map cache (exact match cache) and the second is to use the DataBse cache (similar search cache), it is more recommended to use the second one, but you have to install the related requirements.\\n\",\n    \"\\n\",\n    \"Before running the example, make sure the `OPENAI_API_KEY` environment variable is set by executing `echo $OPENAI_API_KEY`. If it is not already set, it can be set by using `export OPENAI_API_KEY=YOUR_API_KEY` on Unix/Linux/MacOS systems or `set OPENAI_API_KEY=YOUR_API_KEY` on Windows systems. And there is `get_content_func` for the cache settings:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"id\": \"9cbf1dbe\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# get the content(only question) form the prompt to cache\\n\",\n    \"def get_content_func(data, **_):\\n\",\n    \"    return data.get(\\\"prompt\\\").split(\\\"Question\\\")[-1]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"93a8cb06\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 1. Init for exact match cache\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"id\": \"daebf19a\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# from gptcache import cache\\n\",\n    \"# cache.init(pre_embedding_func=get_content_func)\\n\",\n    \"# cache.set_openai_key()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"e1f328a8\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2. Init for similar match cache\\n\",\n    \"\\n\",\n    \"When initializing gptcahe, the following four parameters are configured:\\n\",\n    \"\\n\",\n    \"- `pre_embedding_func`: pre-processing before extracting feature vectors, it will use the `get_content_func` method\\n\",\n    \"- `embedding_func`: the method to extract the text feature vector\\n\",\n    \"- `data_manager`: DataManager for cache management\\n\",\n    \"- `similarity_evaluation`: the evaluation method after the cache hit\\n\",\n    \"\\n\",\n    \"The `data_manager` is used to audio feature vector, response text in the example, it takes [Milvus](https://milvus.io/docs) (please make sure it is started), you can also configure other vector storage, refer to [VectorBase API](https://gptcache.readthedocs.io/en/latest/references/manager.html#module-gptcache.manager.vector_data).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"id\": \"23197b36\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from gptcache import cache\\n\",\n    \"from gptcache.embedding import Onnx\\n\",\n    \"from gptcache.manager import CacheBase, VectorBase, get_data_manager\\n\",\n    \"from gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"onnx = Onnx()\\n\",\n    \"cache_base = CacheBase('sqlite')\\n\",\n    \"vector_base = VectorBase('milvus', host='127.0.0.1', port='19530', dimension=onnx.dimension)\\n\",\n    \"data_manager = get_data_manager(cache_base, vector_base)\\n\",\n    \"cache.init(\\n\",\n    \"    pre_embedding_func=get_content_func,\\n\",\n    \"    embedding_func=onnx.to_embeddings,\\n\",\n    \"    data_manager=data_manager,\\n\",\n    \"    similarity_evaluation=SearchDistanceEvaluation(),\\n\",\n    \"    )\\n\",\n    \"cache.set_openai_key()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"2092f7e6\",\n   \"metadata\": {},\n   \"source\": [\n    \"After initializing the cache, you can use the LangChain LLMs with `gptcache.adapter.langchain_models`. At this point **gptcache** will cache the answer, the only difference from the original example is to change `llm = OpenAI(temperature=0)` to `llm = LangChainLLMs(llm=OpenAI(temperature=0))`, which will be commented in the code block. And you can also set the `session` to set the session settings with `llm = LangChainLLMs(llm=OpenAI(temperature=0), session=session)`, more details refer to [session example](https://github.com/zilliztech/GPTCache/tree/main/examples#how-to-run-with-session).\\n\",\n    \"\\n\",\n    \"Then you will find that it will be more fast when search the similar content, let's play with it.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"556af556\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Install and Import Required Modules\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"id\": \"c8a354b6\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import os\\n\",\n    \"from collections import deque\\n\",\n    \"from typing import Dict, List, Optional, Any\\n\",\n    \"\\n\",\n    \"from langchain import LLMChain, OpenAI, PromptTemplate\\n\",\n    \"from langchain.embeddings import OpenAIEmbeddings\\n\",\n    \"from langchain.llms import BaseLLM\\n\",\n    \"from langchain.vectorstores.base import VectorStore\\n\",\n    \"from pydantic import BaseModel, Field\\n\",\n    \"from langchain.chains.base import Chain\\n\",\n    \"from langchain.experimental import BabyAGI\\n\",\n    \"\\n\",\n    \"from gptcache.adapter.langchain_models import LangChainLLMs\\n\",\n    \"from gptcache.session import Session\\n\",\n    \"session = Session(name=\\\"baby_agi\\\") # set session for LangChainLLMs\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"09f70772\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Connect to the Vector Store\\n\",\n    \"\\n\",\n    \"Depending on what vectorstore you use, this step may look different.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"id\": \"794045d4\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# from langchain.vectorstores import FAISS\\n\",\n    \"from langchain.vectorstores import Milvus\\n\",\n    \"from langchain.docstore import InMemoryDocstore\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"id\": \"6e0305eb\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Define your embedding model\\n\",\n    \"embeddings_model = OpenAIEmbeddings()\\n\",\n    \"embedding_size = 1536\\n\",\n    \"vectorstore = Milvus(embeddings_model,\\n\",\n    \"                     collection_name=\\\"baby_agi\\\",\\n\",\n    \"                     connection_args={\\\"host\\\": \\\"127.0.0.1\\\", \\\"port\\\": \\\"19530\\\"},\\n\",\n    \"                    )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"05ba762e\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Run the BabyAGI\\n\",\n    \"\\n\",\n    \"Now it's time to create the BabyAGI controller and watch it try to accomplish your objective.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"id\": \"3d220b69\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"OBJECTIVE = \\\"Write a weather report for SF today\\\"\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"id\": \"8a8e5543\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# llm = OpenAI(temperature=0)\\n\",\n    \"llm = LangChainLLMs(llm=OpenAI(temperature=0), session=session)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"id\": \"3d69899b\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# Logging of LLMChains\\n\",\n    \"verbose = False\\n\",\n    \"# If None, will keep on going forever\\n\",\n    \"max_iterations: Optional[int] = 3\\n\",\n    \"baby_agi = BabyAGI.from_llm(\\n\",\n    \"    llm=llm, vectorstore=vectorstore, verbose=verbose, max_iterations=max_iterations\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"id\": \"f7957b51\",\n   \"metadata\": {\n    \"scrolled\": false\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\u001b[95m\\u001b[1m\\n\",\n      \"*****TASK LIST*****\\n\",\n      \"\\u001b[0m\\u001b[0m\\n\",\n      \"1: Make a todo list\\n\",\n      \"\\u001b[92m\\u001b[1m\\n\",\n      \"*****NEXT TASK*****\\n\",\n      \"\\u001b[0m\\u001b[0m\\n\",\n      \"1: Make a todo list\\n\",\n      \"\\u001b[93m\\u001b[1m\\n\",\n      \"*****TASK RESULT*****\\n\",\n      \"\\u001b[0m\\u001b[0m\\n\",\n      \"\\n\",\n      \"\\n\",\n      \"1. Check the weather forecast for San Francisco today\\n\",\n      \"2. Make note of the temperature, humidity, wind speed, and other relevant weather conditions\\n\",\n      \"3. Write a weather report summarizing the forecast\\n\",\n      \"4. Check for any weather alerts or warnings\\n\",\n      \"5. Share the report with the relevant stakeholders\\n\",\n      \"\\u001b[95m\\u001b[1m\\n\",\n      \"*****TASK LIST*****\\n\",\n      \"\\u001b[0m\\u001b[0m\\n\",\n      \"2: Check the current temperature in San Francisco\\n\",\n      \"3: Check the current humidity in San Francisco\\n\",\n      \"4: Check the current wind speed in San Francisco\\n\",\n      \"5: Check for any weather alerts or warnings in San Francisco\\n\",\n      \"6: Check the forecast for the next 24 hours in San Francisco\\n\",\n      \"7: Check the forecast for the next 48 hours in San Francisco\\n\",\n      \"8: Check the forecast for the next 72 hours in San Francisco\\n\",\n      \"9: Check the forecast for the next week in San Francisco\\n\",\n      \"10: Check the forecast for the next month in San Francisco\\n\",\n      \"11: Check the forecast for the next 3 months in San Francisco\\n\",\n      \"1: Write a weather report for SF today\\n\",\n      \"\\u001b[92m\\u001b[1m\\n\",\n      \"*****NEXT TASK*****\\n\",\n      \"\\u001b[0m\\u001b[0m\\n\",\n      \"2: Check the current temperature in San Francisco\\n\",\n      \"\\u001b[93m\\u001b[1m\\n\",\n      \"*****TASK RESULT*****\\n\",\n      \"\\u001b[0m\\u001b[0m\\n\",\n      \"\\n\",\n      \"\\n\",\n      \"I will check the current temperature in San Francisco. I will use an online weather service to get the most up-to-date information.\\n\",\n      \"\\u001b[95m\\u001b[1m\\n\",\n      \"*****TASK LIST*****\\n\",\n      \"\\u001b[0m\\u001b[0m\\n\",\n      \"3: Check the current UV index in San Francisco.\\n\",\n      \"4: Check the current air quality in San Francisco.\\n\",\n      \"5: Check the current precipitation levels in San Francisco.\\n\",\n      \"6: Check the current cloud cover in San Francisco.\\n\",\n      \"7: Check the current barometric pressure in San Francisco.\\n\",\n      \"8: Check the current dew point in San Francisco.\\n\",\n      \"9: Check the current wind direction in San Francisco.\\n\",\n      \"10: Check the current humidity levels in San Francisco.\\n\",\n      \"1: Check the current temperature in San Francisco to the average temperature for this time of year.\\n\",\n      \"2: Check the current visibility in San Francisco.\\n\",\n      \"11: Write a weather report for SF today.\\n\",\n      \"\\u001b[92m\\u001b[1m\\n\",\n      \"*****NEXT TASK*****\\n\",\n      \"\\u001b[0m\\u001b[0m\\n\",\n      \"3: Check the current UV index in San Francisco.\\n\",\n      \"\\u001b[93m\\u001b[1m\\n\",\n      \"*****TASK RESULT*****\\n\",\n      \"\\u001b[0m\\u001b[0m\\n\",\n      \"\\n\",\n      \"\\n\",\n      \"I have checked the current UV index in San Francisco and it is currently at a moderate level of 5. This means that it is safe to be outside for short periods of time without sunscreen, but it is still recommended to wear sunscreen and protective clothing when outside for extended periods of time.\\n\",\n      \"\\u001b[91m\\u001b[1m\\n\",\n      \"*****TASK ENDING*****\\n\",\n      \"\\u001b[0m\\u001b[0m\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'objective': 'Write a weather report for SF today'}\"\n      ]\n     },\n     \"execution_count\": 10,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"baby_agi({\\\"objective\\\": OBJECTIVE})\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"id\": \"898a210b\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.12\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 5\n}\n"
  },
  {
    "path": "docs/bootcamp/langchain/index.rst",
    "content": "LangChain\n=================\n\n.. toctree::\n   :maxdepth: 1\n   :caption: Contents:\n\n\n   qa_generation\n   question_answering\n   sqlite\n   baby_agi"
  },
  {
    "path": "docs/bootcamp/langchain/qa_generation.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"ee2a3a21\",\n   \"metadata\": {},\n   \"source\": [\n    \"# QA Generation\\n\",\n    \"This notebook shows how to use the `QAGenerationChain` to come up with question-answer pairs over a specific document.\\n\",\n    \"This is important because often times you may not have data to evaluate your question-answer system over, so this is a cheap and lightweight way to generate it!\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"And You can find the origin notebook in [LangChain example](https://github.com/hwchase17/langchain/blob/master/docs/use_cases/evaluation/qa_generation.ipynb), and this example will show you how to set the LLM with GPTCache so that you can cache the data with LLM. You can also try this example on [Google Colab](https://colab.research.google.com/drive/1avQR-ANehLmyfDcKR_2A_IycxwCpTa-k?usp=sharing).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"bb3f83a2\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Go into GPTCache\\n\",\n    \"\\n\",\n    \"Please [install gptcache](https://gptcache.readthedocs.io/en/latest/index.html#) first, then we can initialize the cache.There are two ways to initialize the cache, the first is to use the map cache (exact match cache) and the second is to use the DataBse cache (similar search cache), it is more recommended to use the second one, but you have to install the related requirements.\\n\",\n    \"\\n\",\n    \"Before running the example, make sure the `OPENAI_API_KEY` environment variable is set by executing `echo $OPENAI_API_KEY`. If it is not already set, it can be set by using `export OPENAI_API_KEY=YOUR_API_KEY` on Unix/Linux/MacOS systems or `set OPENAI_API_KEY=YOUR_API_KEY` on Windows systems. And there is `get_msg_func` for the cache settings:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"id\": \"29ea2668\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# get the content(only question) form the prompt to cache\\n\",\n    \"def get_msg_func(data, **_):\\n\",\n    \"    return data.get(\\\"messages\\\")[-1].content\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"ae0efe00\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 1. Init for exact match cache\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"id\": \"7892a80f\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# from gptcache import cache\\n\",\n    \"# cache.init(pre_embedding_func=get_msg_func)\\n\",\n    \"# cache.set_openai_key()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"7cc2c7a7\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2. Init for similar match cache\\n\",\n    \"\\n\",\n    \"When initializing gptcahe, the following four parameters are configured:\\n\",\n    \"\\n\",\n    \"- `pre_embedding_func`: pre-processing before extracting feature vectors, it will use the `get_msg_func` method\\n\",\n    \"- `embedding_func`: the method to extract the text feature vector\\n\",\n    \"- `data_manager`: DataManager for cache management\\n\",\n    \"- `similarity_evaluation`: the evaluation method after the cache hit\\n\",\n    \"\\n\",\n    \"The `data_manager` is used to audio feature vector, response text in the example, it takes [Milvus](https://milvus.io/docs) (please make sure it is started), you can also configure other vector storage, refer to [VectorBase API](https://gptcache.readthedocs.io/en/latest/references/manager.html#module-gptcache.manager.vector_data).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"id\": \"c00c0422\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from gptcache import cache\\n\",\n    \"from gptcache.embedding import Onnx\\n\",\n    \"from gptcache.manager import CacheBase, VectorBase, get_data_manager\\n\",\n    \"from gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"onnx = Onnx()\\n\",\n    \"cache_base = CacheBase('sqlite')\\n\",\n    \"vector_base = VectorBase('milvus', host='127.0.0.1', port='19530', dimension=onnx.dimension)\\n\",\n    \"data_manager = get_data_manager(cache_base, vector_base)\\n\",\n    \"cache.init(\\n\",\n    \"    pre_embedding_func=get_msg_func,\\n\",\n    \"    embedding_func=onnx.to_embeddings,\\n\",\n    \"    data_manager=data_manager,\\n\",\n    \"    similarity_evaluation=SearchDistanceEvaluation(),\\n\",\n    \"    )\\n\",\n    \"cache.set_openai_key()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"083c33dd\",\n   \"metadata\": {},\n   \"source\": [\n    \"After initializing the cache, you can use the LangChain Chat Models with `gptcache.adapter.langchain_models`. At this point **gptcache** will cache the answer, the only difference from the original example is to change `chat=ChatOpenAI(temperature=0)` to `chat = LangChainChat(chat=ChatOpenAI(temperature=0))`, which will be commented in the code block.\\n\",\n    \"\\n\",\n    \"Then you will find that it will be more fast when search the similar content, let's play with it.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"8a0b2c33\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Getting Started\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"id\": \"33d3f0b4\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from langchain.document_loaders import TextLoader\\n\",\n    \"from langchain.text_splitter import RecursiveCharacterTextSplitter, TextSplitter\\n\",\n    \"\\n\",\n    \"text_splitter =  RecursiveCharacterTextSplitter(chunk_overlap=500, chunk_size=2000)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"id\": \"2029a29c\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"loader = TextLoader(\\\"./state_of_the_union.txt\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"id\": \"87edb84c\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"doc = loader.load()[0]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"id\": \"04125b6d\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from langchain.chat_models import ChatOpenAI\\n\",\n    \"from langchain.chains import QAGenerationChain\\n\",\n    \"from gptcache.adapter.langchain_models import LangChainChat\\n\",\n    \"\\n\",\n    \"# chat = ChatOpenAI(temperature=0) # using the following code to cache with gptcache\\n\",\n    \"chat = LangChainChat(chat=ChatOpenAI(temperature=0))\\n\",\n    \"\\n\",\n    \"chain = QAGenerationChain.from_llm(chat, text_splitter=text_splitter)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"id\": \"4f1593e4\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"qa = chain.run(doc.page_content)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"id\": \"ee831f92\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'question': 'What did President Zelenskyy say in his speech to the European Parliament?',\\n\",\n       \" 'answer': \\\"President Zelenskyy said in his speech to the European Parliament that 'Light will win over darkness.'\\\"}\"\n      ]\n     },\n     \"execution_count\": 9,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"qa[1]\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"id\": \"7028754e\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.12\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 5\n}\n"
  },
  {
    "path": "docs/bootcamp/langchain/question_answering.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"05859721\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Question Answering\\n\",\n    \"\\n\",\n    \"This notebook walks through how to use LangChain for question answering over a list of documents. It covers four different types of chains: `stuff`, `map_reduce`, `refine`, `map_rerank`. And You can find the origin notebook in [LangChain example](https://github.com/hwchase17/langchain/blob/master/docs/modules/chains/index_examples/question_answering.ipynb), and this example will show you how to set the LLM with GPTCache so that you can cache the data with LLM. You can also try this example on [Google Colab](https://colab.research.google.com/drive/1C3VBKn3L38opEyaOH-SlGQrANzHkR_5f?usp=sharing).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"ea19ae7e\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Go into GPTCache\\n\",\n    \"\\n\",\n    \"Please [install gptcache](https://gptcache.readthedocs.io/en/latest/index.html#) first, then we can initialize the cache.There are two ways to initialize the cache, the first is to use the map cache (exact match cache) and the second is to use the DataBse cache (similar search cache), it is more recommended to use the second one, but you have to install the related requirements.\\n\",\n    \"\\n\",\n    \"Before running the example, make sure the `OPENAI_API_KEY` environment variable is set by executing `echo $OPENAI_API_KEY`. If it is not already set, it can be set by using `export OPENAI_API_KEY=YOUR_API_KEY` on Unix/Linux/MacOS systems or `set OPENAI_API_KEY=YOUR_API_KEY` on Windows systems. And there is `get_content_func` for the cache settings:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"id\": \"04759af1\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# get the content(only question) form the prompt to cache\\n\",\n    \"def get_content_func(data, **_):\\n\",\n    \"    return data.get(\\\"prompt\\\").split(\\\"Question\\\")[-1]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"0740dd59\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 1. Init for exact match cache\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"id\": \"3f19b149\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# from gptcache import cache\\n\",\n    \"# cache.init(pre_embedding_func=get_content_func)\\n\",\n    \"# cache.set_openai_key()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"a06c2c25\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2. Init for similar match cache\\n\",\n    \"\\n\",\n    \"When initializing gptcahe, the following four parameters are configured:\\n\",\n    \"\\n\",\n    \"- `pre_embedding_func`: pre-processing before extracting feature vectors, it will use the `get_file_name` method\\n\",\n    \"- `embedding_func`: the method to extract the text feature vector\\n\",\n    \"- `data_manager`: DataManager for cache management\\n\",\n    \"- `similarity_evaluation`: the evaluation method after the cache hit\\n\",\n    \"\\n\",\n    \"The `data_manager` is used to audio feature vector, response text in the example, it takes [Milvus](https://milvus.io/docs) (please make sure it is started), you can also configure other vector storage, refer to [VectorBase API](https://gptcache.readthedocs.io/en/latest/references/manager.html#module-gptcache.manager.vector_data).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"id\": \"169b0d11\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from gptcache import cache\\n\",\n    \"from gptcache.embedding import Onnx\\n\",\n    \"from gptcache.manager import CacheBase, VectorBase, get_data_manager\\n\",\n    \"from gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"onnx = Onnx()\\n\",\n    \"cache_base = CacheBase('sqlite')\\n\",\n    \"vector_base = VectorBase('milvus', host='127.0.0.1', port='19530', dimension=onnx.dimension, collection_name='chatbot')\\n\",\n    \"data_manager = get_data_manager(cache_base, vector_base)\\n\",\n    \"cache.init(\\n\",\n    \"    pre_embedding_func=get_content_func,\\n\",\n    \"    embedding_func=onnx.to_embeddings,\\n\",\n    \"    data_manager=data_manager,\\n\",\n    \"    similarity_evaluation=SearchDistanceEvaluation(),\\n\",\n    \"    )\\n\",\n    \"cache.set_openai_key()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"44538b8b\",\n   \"metadata\": {},\n   \"source\": [\n    \"After initializing the cache, you can use the LangChain LLMs with `gptcache.adapter.langchain_models`. At this point **gptcache** will cache the answer, the only difference from the original example is to change `llm = OpenAI(temperature=0)` to `llm = LangChainLLMs(llm=OpenAI(temperature=0))`, which will be commented in the code block.\\n\",\n    \"\\n\",\n    \"Then you will find that it will be more fast when search the similar content, let's play with it.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"726f4996\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Prepare Data\\n\",\n    \"First we [prepare the data](https://raw.githubusercontent.com/hwchase17/langchain/master/docs/extras/modules/state_of_the_union.txt). For this example we do similarity search over a vector database, but these documents could be fetched in any manner (the point of this notebook to highlight what to do AFTER you fetch the documents). You can learn more detail about Milvus in Langchain refer to [it](https://python.langchain.com/en/latest/modules/indexes/vectorstores/examples/milvus.html?highlight=milvus).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"id\": \"17fcbc0f\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from langchain.embeddings.openai import OpenAIEmbeddings\\n\",\n    \"from langchain.text_splitter import CharacterTextSplitter\\n\",\n    \"from langchain.vectorstores import Milvus\\n\",\n    \"from langchain.document_loaders import TextLoader\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"id\": \"ef9305cc\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"loader = TextLoader('./state_of_the_union.txt')\\n\",\n    \"documents = loader.load()\\n\",\n    \"text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)\\n\",\n    \"docs = text_splitter.split_documents(documents)\\n\",\n    \"\\n\",\n    \"embeddings = OpenAIEmbeddings()\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"id\": \"99ebc875\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"vector_db = Milvus.from_documents(\\n\",\n    \"    docs,\\n\",\n    \"    embeddings,\\n\",\n    \"    connection_args={\\\"host\\\": \\\"127.0.0.1\\\", \\\"port\\\": \\\"19530\\\"},\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"id\": \"d1eaf6e6\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"query = \\\"What did the president say about Justice Breyer\\\"\\n\",\n    \"docs = vector_db.similarity_search(query)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"id\": \"a16e3453\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from langchain.chains.question_answering import load_qa_chain\\n\",\n    \"from langchain.llms import OpenAI\\n\",\n    \"\\n\",\n    \"from gptcache.adapter.langchain_models import LangChainLLMs\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"2f64b7f8\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Quickstart\\n\",\n    \"If you just want to get started as quickly as possible, this is the recommended way to do it:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"id\": \"fd9e6190\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"' The president said that Justice Breyer is an Army veteran, Constitutional scholar, and retiring Justice of the United States Supreme Court, and thanked him for his service.'\"\n      ]\n     },\n     \"execution_count\": 9,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"# llm = OpenAI(temperature=0) # using the following code to cache with gptcache\\n\",\n    \"llm = LangChainLLMs(llm=OpenAI(temperature=0))\\n\",\n    \"chain = load_qa_chain(llm, chain_type=\\\"stuff\\\")\\n\",\n    \"query = \\\"What did the president say about Justice Breyer\\\"\\n\",\n    \"chain.run(input_documents=docs, question=query)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"eea01309\",\n   \"metadata\": {},\n   \"source\": [\n    \"If you want more control and understanding over what is happening, please see the information below.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"f78787a0\",\n   \"metadata\": {},\n   \"source\": [\n    \"## The `stuff` Chain\\n\",\n    \"\\n\",\n    \"This sections shows results of using the `stuff` Chain to do question answering.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"id\": \"180fd4c1\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"chain = load_qa_chain(llm, chain_type=\\\"stuff\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"id\": \"77fdf1aa\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'output_text': ' The president said that Justice Breyer is an Army veteran, Constitutional scholar, and retiring Justice of the United States Supreme Court, and thanked him for his service.'}\"\n      ]\n     },\n     \"execution_count\": 11,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"query = \\\"What did the president say about Justice Breyer\\\"\\n\",\n    \"chain({\\\"input_documents\\\": docs, \\\"question\\\": query}, return_only_outputs=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"6ea50ad0\",\n   \"metadata\": {},\n   \"source\": [\n    \"## The `refine` Chain\\n\",\n    \"\\n\",\n    \"This sections shows results of using the `refine` Chain to do question answering.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"id\": \"fb167057\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"chain = load_qa_chain(llm, chain_type=\\\"refine\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"id\": \"d8b5286e\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'output_text': '\\\\nThe president said that Justice Breyer is an Army veteran, Constitutional scholar, and retiring Justice of the United States Supreme Court, and thanked him for his service. He also praised Justice Breyer for his dedication to the rule of law and his commitment to justice and fairness.'}\"\n      ]\n     },\n     \"execution_count\": 13,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"query = \\\"What did the president say about Justice Breyer\\\"\\n\",\n    \"chain({\\\"input_documents\\\": docs, \\\"question\\\": query}, return_only_outputs=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"f95dfb2e\",\n   \"metadata\": {},\n   \"source\": [\n    \"**Intermediate Steps**\\n\",\n    \"\\n\",\n    \"We can also return the intermediate steps for `refine` chains, should we want to inspect them. This is done with the `return_refine_steps` variable.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"id\": \"a5c64200\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"chain = load_qa_chain(llm, chain_type=\\\"refine\\\", return_refine_steps=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"id\": \"817546ac\",\n   \"metadata\": {\n    \"tags\": []\n   },\n   \"outputs\": [\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"{'intermediate_steps': [' The president said that Justice Breyer is an Army veteran, Constitutional scholar, and retiring Justice of the United States Supreme Court, and thanked him for his service.',\\n\",\n       \"  ' The president said that Justice Breyer is an Army veteran, Constitutional scholar, and retiring Justice of the United States Supreme Court, and thanked him for his service.',\\n\",\n       \"  ' The president said that Justice Breyer is an Army veteran, Constitutional scholar, and retiring Justice of the United States Supreme Court, and thanked him for his service.',\\n\",\n       \"  '\\\\nThe president said that Justice Breyer is an Army veteran, Constitutional scholar, and retiring Justice of the United States Supreme Court, and thanked him for his service. He also praised Justice Breyer for his dedication to the rule of law and his commitment to justice and fairness.'],\\n\",\n       \" 'output_text': '\\\\nThe president said that Justice Breyer is an Army veteran, Constitutional scholar, and retiring Justice of the United States Supreme Court, and thanked him for his service. He also praised Justice Breyer for his dedication to the rule of law and his commitment to justice and fairness.'}\"\n      ]\n     },\n     \"execution_count\": 15,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"chain({\\\"input_documents\\\": docs, \\\"question\\\": query}, return_only_outputs=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"id\": \"e0f0bbdf\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.8.8\"\n  },\n  \"vscode\": {\n   \"interpreter\": {\n    \"hash\": \"b1677b440931f40d89ef8be7bf03acb108ce003de0ac9b18e8d43753ea2e7103\"\n   }\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 5\n}\n"
  },
  {
    "path": "docs/bootcamp/langchain/sqlite.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"0ed6aab1\",\n   \"metadata\": {\n    \"pycharm\": {\n     \"name\": \"#%% md\\n\"\n    }\n   },\n   \"source\": [\n    \"# SQLite Example\\n\",\n    \"\\n\",\n    \"This example showcases hooking up an LLM to answer questions over a database, and you can find the origin notebook in [LangChain example](https://github.com/hwchase17/langchain/blob/master/docs/modules/chains/examples/sqlite.ipynb), and this example will show you how to set the LLM with [GPTCache](https://github.com/zilliztech/GPTCache) so that you can cache the data with LLM. You can also try this example on [Google Colab](https://colab.research.google.com/drive/1iWvezcPpnHEo_NF4wfzT5Mo5yk0dhxUC?usp=share_link).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"b149ab99\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Go into GPTCache\\n\",\n    \"\\n\",\n    \"Please [install gptcache](https://gptcache.readthedocs.io/en/latest/index.html#) first, then we can initialize the cache.There are two ways to initialize the cache, the first is to use the map cache (exact match cache) and the second is to use the DataBse cache (similar search cache), it is more recommended to use the second one, but you have to install the related requirements.\\n\",\n    \"\\n\",\n    \"Before running the example, make sure the `OPENAI_API_KEY` environment variable is set by executing `echo $OPENAI_API_KEY`. If it is not already set, it can be set by using `export OPENAI_API_KEY=YOUR_API_KEY` on Unix/Linux/MacOS systems or `set OPENAI_API_KEY=YOUR_API_KEY` on Windows systems. And there is `get_content_func` for the cache settings:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"id\": \"13b9ad2b\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# get the content(only question) form the prompt to cache\\n\",\n    \"def get_content_func(data, **_):\\n\",\n    \"    return data.get(\\\"prompt\\\").split(\\\"Question\\\")[-1]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"1ff6051f\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 1. Init for exact match cache\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"id\": \"c1d8b12f\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# from gptcache import cache\\n\",\n    \"# cache.init(pre_embedding_func=get_content_func)\\n\",\n    \"# cache.set_openai_key()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"dfc5ab39\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2. Init for similar match cache\\n\",\n    \"\\n\",\n    \"When initializing gptcahe, the following four parameters are configured:\\n\",\n    \"\\n\",\n    \"- `pre_embedding_func`: pre-processing before extracting feature vectors, it will use the `get_content_func` method\\n\",\n    \"- `embedding_func`: the method to extract the text feature vector\\n\",\n    \"- `data_manager`: DataManager for cache management\\n\",\n    \"- `similarity_evaluation`: the evaluation method after the cache hit\\n\",\n    \"\\n\",\n    \"The `data_manager` is used to audio feature vector, response text in the example, it takes [Milvus](https://milvus.io/docs) (please make sure it is started), you can also configure other vector storage, refer to [VectorBase API](https://gptcache.readthedocs.io/en/latest/references/manager.html#module-gptcache.manager.vector_data).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"id\": \"3173048a\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from gptcache import cache\\n\",\n    \"from gptcache.embedding import Onnx\\n\",\n    \"from gptcache.manager import CacheBase, VectorBase, get_data_manager\\n\",\n    \"from gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"onnx = Onnx()\\n\",\n    \"cache_base = CacheBase('sqlite')\\n\",\n    \"vector_base = VectorBase('milvus', host='127.0.0.1', port='19530', dimension=onnx.dimension)\\n\",\n    \"data_manager = get_data_manager(cache_base, vector_base)\\n\",\n    \"cache.init(\\n\",\n    \"    pre_embedding_func=get_content_func,\\n\",\n    \"    embedding_func=onnx.to_embeddings,\\n\",\n    \"    data_manager=data_manager,\\n\",\n    \"    similarity_evaluation=SearchDistanceEvaluation(),\\n\",\n    \"    )\\n\",\n    \"cache.set_openai_key()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"0afdbe86\",\n   \"metadata\": {},\n   \"source\": [\n    \"After initializing the cache, you can use the LangChain LLMs with `gptcache.adapter.langchain_models`. At this point **gptcache** will cache the answer, the only difference from the original example is to change `llm = OpenAI(temperature=0)` to `llm = LangChainLLMs(llm=OpenAI(temperature=0))`, which will be commented in the code block. And you can also set the `session` to set the session settings with `llm = LangChainLLMs(llm=OpenAI(temperature=0), session=session)`, more details refer to [session example](https://github.com/zilliztech/GPTCache/tree/main/examples#how-to-run-with-session).\\n\",\n    \"\\n\",\n    \"Then you will find that it will be more fast when search the similar content, let's play with it.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"a37a26f4\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Getting Started\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"b2f66479\",\n   \"metadata\": {\n    \"pycharm\": {\n     \"name\": \"#%% md\\n\"\n    }\n   },\n   \"source\": [\n    \"This uses the example Chinook database.\\n\",\n    \"To set it up follow the instructions on https://database.guide/2-sample-databases-sqlite/, placing the `.db` file in a notebooks folder at the root of this repository.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"id\": \"d0e27d88\",\n   \"metadata\": {\n    \"pycharm\": {\n     \"name\": \"#%%\\n\"\n    }\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"from langchain import OpenAI, SQLDatabase, SQLDatabaseChain\\n\",\n    \"\\n\",\n    \"from gptcache.adapter.langchain_models import LangChainLLMs\\n\",\n    \"from gptcache.session import Session\\n\",\n    \"session = Session(name=\\\"sqlite-example\\\") # set session for LangChainLLMs\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"id\": \"72ede462\",\n   \"metadata\": {\n    \"pycharm\": {\n     \"name\": \"#%%\\n\"\n    }\n   },\n   \"outputs\": [],\n   \"source\": [\n    \"db = SQLDatabase.from_uri(\\\"sqlite:///./Chinook.db\\\")\\n\",\n    \"# llm = OpenAI(temperature=0) # using the following code to cache with gptcache\\n\",\n    \"llm = LangChainLLMs(llm=OpenAI(temperature=0), session=session)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"3d1e692e\",\n   \"metadata\": {},\n   \"source\": [\n    \"**NOTE:** For data-sensitive projects, you can specify `return_direct=True` in the `SQLDatabaseChain` initialization to directly return the output of the SQL query without any additional formatting. This prevents the LLM from seeing any contents within the database. Note, however, the LLM still has access to the database scheme (i.e. dialect, table and key names) by default.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 6,\n   \"id\": \"a8fc8f23\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"db_chain = SQLDatabaseChain(llm=llm, database=db, verbose=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 7,\n   \"id\": \"15ff81df\",\n   \"metadata\": {\n    \"pycharm\": {\n     \"name\": \"#%%\\n\"\n    }\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\",\n      \"\\n\",\n      \"\\u001b[1m> Entering new SQLDatabaseChain chain...\\u001b[0m\\n\",\n      \"How many employees are there? \\n\",\n      \"SQLQuery:\"\n     ]\n    },\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/Users/chenshiyu/miniconda3/envs/shiyu/lib/python3.9/site-packages/langchain/sql_database.py:191: SAWarning: Dialect sqlite+pysqlite does *not* support Decimal objects natively, and SQLAlchemy must convert from floating point - rounding errors and other issues may occur. Please consider storing Decimal numbers as strings or integers on this platform for lossless storage.\\n\",\n      \"  sample_rows = connection.execute(command)\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\u001b[32;1m\\u001b[1;3m SELECT COUNT(*) FROM Employee;\\u001b[0m\\n\",\n      \"SQLResult: \\u001b[33;1m\\u001b[1;3m[(8,)]\\u001b[0m\\n\",\n      \"Answer:\\u001b[32;1m\\u001b[1;3m There are 8 employees.\\u001b[0m\\n\",\n      \"\\u001b[1m> Finished chain.\\u001b[0m\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"' There are 8 employees.'\"\n      ]\n     },\n     \"execution_count\": 7,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"db_chain.run(\\\"How many employees are there?\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"aad2cba6\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Customize Prompt\\n\",\n    \"You can also customize the prompt that is used. Here is an example prompting it to understand that foobar is the same as the Employee table\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"id\": \"8ca7bafb\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from langchain.prompts.prompt import PromptTemplate\\n\",\n    \"\\n\",\n    \"_DEFAULT_TEMPLATE = \\\"\\\"\\\"Given an input question, first create a syntactically correct {dialect} query to run, then look at the results of the query and return the answer.\\n\",\n    \"Use the following format:\\n\",\n    \"\\n\",\n    \"Question: \\\"Question here\\\"\\n\",\n    \"SQLQuery: \\\"SQL Query to run\\\"\\n\",\n    \"SQLResult: \\\"Result of the SQLQuery\\\"\\n\",\n    \"Answer: \\\"Final answer here\\\"\\n\",\n    \"\\n\",\n    \"Only use the following tables:\\n\",\n    \"\\n\",\n    \"{table_info}\\n\",\n    \"\\n\",\n    \"If someone asks for the table foobar, they really mean the employee table.\\n\",\n    \"\\n\",\n    \"Question: {input}\\\"\\\"\\\"\\n\",\n    \"PROMPT = PromptTemplate(\\n\",\n    \"    input_variables=[\\\"input\\\", \\\"table_info\\\", \\\"dialect\\\"], template=_DEFAULT_TEMPLATE\\n\",\n    \")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"id\": \"ec47a2bf\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"db_chain = SQLDatabaseChain(llm=llm, database=db, prompt=PROMPT, verbose=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"id\": \"ebb0674e\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\",\n      \"\\n\",\n      \"\\u001b[1m> Entering new SQLDatabaseChain chain...\\u001b[0m\\n\",\n      \"How many employees are there in the foobar table? \\n\",\n      \"SQLQuery:\\u001b[32;1m\\u001b[1;3m SELECT COUNT(*) FROM Employee;\\u001b[0m\\n\",\n      \"SQLResult: \\u001b[33;1m\\u001b[1;3m[(8,)]\\u001b[0m\\n\",\n      \"Answer:\\u001b[32;1m\\u001b[1;3m There are 8 employees in the foobar table.\\u001b[0m\\n\",\n      \"\\u001b[1m> Finished chain.\\u001b[0m\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"' There are 8 employees in the foobar table.'\"\n      ]\n     },\n     \"execution_count\": 10,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"db_chain.run(\\\"How many employees are there in the foobar table?\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"88d8b969\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Return Intermediate Steps\\n\",\n    \"\\n\",\n    \"You can also return the intermediate steps of the SQLDatabaseChain. This allows you to access the SQL statement that was generated, as well as the result of running that against the SQL Database.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"id\": \"38559487\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"db_chain = SQLDatabaseChain(llm=llm, database=db, prompt=PROMPT, verbose=True, return_intermediate_steps=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"id\": \"78b6af4d\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\",\n      \"\\n\",\n      \"\\u001b[1m> Entering new SQLDatabaseChain chain...\\u001b[0m\\n\",\n      \"How many employees are there in the foobar table? \\n\",\n      \"SQLQuery:\\u001b[32;1m\\u001b[1;3m SELECT COUNT(*) FROM Employee;\\u001b[0m\\n\",\n      \"SQLResult: \\u001b[33;1m\\u001b[1;3m[(8,)]\\u001b[0m\\n\",\n      \"Answer:\\u001b[32;1m\\u001b[1;3m There are 8 employees in the foobar table.\\u001b[0m\\n\",\n      \"\\u001b[1m> Finished chain.\\u001b[0m\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"[' SELECT COUNT(*) FROM Employee;', '[(8,)]']\"\n      ]\n     },\n     \"execution_count\": 12,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"result = db_chain(\\\"How many employees are there in the foobar table?\\\")\\n\",\n    \"result[\\\"intermediate_steps\\\"]\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"b408f800\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Choosing how to limit the number of rows returned\\n\",\n    \"If you are querying for several rows of a table you can select the maximum number of results you want to get by using the 'top_k' parameter (default is 10). This is useful for avoiding query results that exceed the prompt max length or consume tokens unnecessarily.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 13,\n   \"id\": \"6adaa799\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"db_chain = SQLDatabaseChain(llm=llm, database=db, verbose=True, top_k=3)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 14,\n   \"id\": \"edfc8a8e\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\",\n      \"\\n\",\n      \"\\u001b[1m> Entering new SQLDatabaseChain chain...\\u001b[0m\\n\",\n      \"What are some example tracks by composer Johann Sebastian Bach? \\n\",\n      \"SQLQuery:\\u001b[32;1m\\u001b[1;3m SELECT Name, Composer FROM Track WHERE Composer LIKE '%Johann Sebastian Bach%' LIMIT 3;\\u001b[0m\\n\",\n      \"SQLResult: \\u001b[33;1m\\u001b[1;3m[('Concerto for 2 Violins in D Minor, BWV 1043: I. Vivace', 'Johann Sebastian Bach'), ('Aria Mit 30 Veränderungen, BWV 988 \\\"Goldberg Variations\\\": Aria', 'Johann Sebastian Bach'), ('Suite for Solo Cello No. 1 in G Major, BWV 1007: I. Prélude', 'Johann Sebastian Bach')]\\u001b[0m\\n\",\n      \"Answer:\\u001b[32;1m\\u001b[1;3m Some example tracks by composer Johann Sebastian Bach are 'Concerto for 2 Violins in D Minor, BWV 1043: I. Vivace', 'Aria Mit 30 Veränderungen, BWV 988 \\\"Goldberg Variations\\\": Aria', and 'Suite for Solo Cello No. 1 in G Major, BWV 1007: I. Prélude'.\\u001b[0m\\n\",\n      \"\\u001b[1m> Finished chain.\\u001b[0m\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"' Some example tracks by composer Johann Sebastian Bach are \\\\'Concerto for 2 Violins in D Minor, BWV 1043: I. Vivace\\\\', \\\\'Aria Mit 30 Veränderungen, BWV 988 \\\"Goldberg Variations\\\": Aria\\\\', and \\\\'Suite for Solo Cello No. 1 in G Major, BWV 1007: I. Prélude\\\\'.'\"\n      ]\n     },\n     \"execution_count\": 14,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"db_chain.run(\\\"What are some example tracks by composer Johann Sebastian Bach?\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"bcc5e936\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Adding example rows from each table\\n\",\n    \"Sometimes, the format of the data is not obvious and it is optimal to include a sample of rows from the tables in the prompt to allow the LLM to understand the data before providing a final query. Here we will use this feature to let the LLM know that artists are saved with their full names by providing two rows from the `Track` table.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 15,\n   \"id\": \"9a22ee47\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"db = SQLDatabase.from_uri(\\n\",\n    \"    \\\"sqlite:///./Chinook.db\\\",\\n\",\n    \"    include_tables=['Track'], # we include only one table to save tokens in the prompt :)\\n\",\n    \"    sample_rows_in_table_info=2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"952c0b4d\",\n   \"metadata\": {},\n   \"source\": [\n    \"The sample rows are added to the prompt after each corresponding table's column information:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 16,\n   \"id\": \"9de86267\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\",\n      \"CREATE TABLE \\\"Track\\\" (\\n\",\n      \"\\t\\\"TrackId\\\" INTEGER NOT NULL, \\n\",\n      \"\\t\\\"Name\\\" NVARCHAR(200) NOT NULL, \\n\",\n      \"\\t\\\"AlbumId\\\" INTEGER, \\n\",\n      \"\\t\\\"MediaTypeId\\\" INTEGER NOT NULL, \\n\",\n      \"\\t\\\"GenreId\\\" INTEGER, \\n\",\n      \"\\t\\\"Composer\\\" NVARCHAR(220), \\n\",\n      \"\\t\\\"Milliseconds\\\" INTEGER NOT NULL, \\n\",\n      \"\\t\\\"Bytes\\\" INTEGER, \\n\",\n      \"\\t\\\"UnitPrice\\\" NUMERIC(10, 2) NOT NULL, \\n\",\n      \"\\tPRIMARY KEY (\\\"TrackId\\\"), \\n\",\n      \"\\tFOREIGN KEY(\\\"MediaTypeId\\\") REFERENCES \\\"MediaType\\\" (\\\"MediaTypeId\\\"), \\n\",\n      \"\\tFOREIGN KEY(\\\"GenreId\\\") REFERENCES \\\"Genre\\\" (\\\"GenreId\\\"), \\n\",\n      \"\\tFOREIGN KEY(\\\"AlbumId\\\") REFERENCES \\\"Album\\\" (\\\"AlbumId\\\")\\n\",\n      \")\\n\",\n      \"\\n\",\n      \"/*\\n\",\n      \"2 rows from Track table:\\n\",\n      \"TrackId\\tName\\tAlbumId\\tMediaTypeId\\tGenreId\\tComposer\\tMilliseconds\\tBytes\\tUnitPrice\\n\",\n      \"1\\tFor Those About To Rock (We Salute You)\\t1\\t1\\t1\\tAngus Young, Malcolm Young, Brian Johnson\\t343719\\t11170334\\t0.99\\n\",\n      \"2\\tBalls to the Wall\\t2\\t2\\t1\\tNone\\t342562\\t5510424\\t0.99\\n\",\n      \"*/\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"print(db.table_info)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 17,\n   \"id\": \"bcb7a489\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"db_chain = SQLDatabaseChain(llm=llm, database=db, verbose=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 18,\n   \"id\": \"81e05d82\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\",\n      \"\\n\",\n      \"\\u001b[1m> Entering new SQLDatabaseChain chain...\\u001b[0m\\n\",\n      \"What are some example tracks by Bach? \\n\",\n      \"SQLQuery:\\u001b[32;1m\\u001b[1;3m SELECT Name, Composer FROM Track WHERE Composer LIKE '%Johann Sebastian Bach%' LIMIT 3;\\u001b[0m\\n\",\n      \"SQLResult: \\u001b[33;1m\\u001b[1;3m[('Concerto for 2 Violins in D Minor, BWV 1043: I. Vivace', 'Johann Sebastian Bach'), ('Aria Mit 30 Veränderungen, BWV 988 \\\"Goldberg Variations\\\": Aria', 'Johann Sebastian Bach'), ('Suite for Solo Cello No. 1 in G Major, BWV 1007: I. Prélude', 'Johann Sebastian Bach')]\\u001b[0m\\n\",\n      \"Answer:\\u001b[32;1m\\u001b[1;3m Examples of tracks by Johann Sebastian Bach include Concerto for 2 Violins in D Minor, BWV 1043: I. Vivace, Aria Mit 30 Veränderungen, BWV 988 \\\"Goldberg Variations\\\": Aria, and Suite for Solo Cello No. 1 in G Major, BWV 1007: I. Prélude.\\u001b[0m\\n\",\n      \"\\u001b[1m> Finished chain.\\u001b[0m\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"' Examples of tracks by Johann Sebastian Bach include Concerto for 2 Violins in D Minor, BWV 1043: I. Vivace, Aria Mit 30 Veränderungen, BWV 988 \\\"Goldberg Variations\\\": Aria, and Suite for Solo Cello No. 1 in G Major, BWV 1007: I. Prélude.'\"\n      ]\n     },\n     \"execution_count\": 18,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"db_chain.run(\\\"What are some example tracks by Bach?\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"ef94e948\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Custom Table Info\\n\",\n    \"In some cases, it can be useful to provide custom table information instead of using the automatically generated table definitions and the first `sample_rows_in_table_info` sample rows. For example, if you know that the first few rows of a table are uninformative, it could help to manually provide example rows that are more diverse or provide more information to the model. It is also possible to limit the columns that will be visible to the model if there are unnecessary columns. \\n\",\n    \"\\n\",\n    \"This information can be provided as a dictionary with table names as the keys and table information as the values. For example, let's provide a custom definition and sample rows for the Track table with only a few columns:\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 19,\n   \"id\": \"2ad33ab1\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"custom_table_info = {\\n\",\n    \"    \\\"Track\\\": \\\"\\\"\\\"CREATE TABLE Track (\\n\",\n    \"\\t\\\"TrackId\\\" INTEGER NOT NULL, \\n\",\n    \"\\t\\\"Name\\\" NVARCHAR(200) NOT NULL,\\n\",\n    \"\\t\\\"Composer\\\" NVARCHAR(220),\\n\",\n    \"\\tPRIMARY KEY (\\\"TrackId\\\")\\n\",\n    \")\\n\",\n    \"/*\\n\",\n    \"3 rows from Track table:\\n\",\n    \"TrackId\\tName\\tComposer\\n\",\n    \"1\\tFor Those About To Rock (We Salute You)\\tAngus Young, Malcolm Young, Brian Johnson\\n\",\n    \"2\\tBalls to the Wall\\tNone\\n\",\n    \"3\\tMy favorite song ever\\tThe coolest composer of all time\\n\",\n    \"*/\\\"\\\"\\\"\\n\",\n    \"}\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 20,\n   \"id\": \"db144352\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\",\n      \"CREATE TABLE \\\"Playlist\\\" (\\n\",\n      \"\\t\\\"PlaylistId\\\" INTEGER NOT NULL, \\n\",\n      \"\\t\\\"Name\\\" NVARCHAR(120), \\n\",\n      \"\\tPRIMARY KEY (\\\"PlaylistId\\\")\\n\",\n      \")\\n\",\n      \"\\n\",\n      \"/*\\n\",\n      \"2 rows from Playlist table:\\n\",\n      \"PlaylistId\\tName\\n\",\n      \"1\\tMusic\\n\",\n      \"2\\tMovies\\n\",\n      \"*/\\n\",\n      \"\\n\",\n      \"CREATE TABLE Track (\\n\",\n      \"\\t\\\"TrackId\\\" INTEGER NOT NULL, \\n\",\n      \"\\t\\\"Name\\\" NVARCHAR(200) NOT NULL,\\n\",\n      \"\\t\\\"Composer\\\" NVARCHAR(220),\\n\",\n      \"\\tPRIMARY KEY (\\\"TrackId\\\")\\n\",\n      \")\\n\",\n      \"/*\\n\",\n      \"3 rows from Track table:\\n\",\n      \"TrackId\\tName\\tComposer\\n\",\n      \"1\\tFor Those About To Rock (We Salute You)\\tAngus Young, Malcolm Young, Brian Johnson\\n\",\n      \"2\\tBalls to the Wall\\tNone\\n\",\n      \"3\\tMy favorite song ever\\tThe coolest composer of all time\\n\",\n      \"*/\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"db = SQLDatabase.from_uri(\\n\",\n    \"    \\\"sqlite:///./Chinook.db\\\",\\n\",\n    \"    include_tables=['Track', 'Playlist'],\\n\",\n    \"    sample_rows_in_table_info=2,\\n\",\n    \"    custom_table_info=custom_table_info)\\n\",\n    \"\\n\",\n    \"print(db.table_info)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"5fc6f507\",\n   \"metadata\": {},\n   \"source\": [\n    \"Note how our custom table definition and sample rows for `Track` overrides the `sample_rows_in_table_info` parameter. Tables that are not overridden by `custom_table_info`, in this example `Playlist`, will have their table info gathered automatically as usual.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 21,\n   \"id\": \"dfbda4e6\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\",\n      \"\\n\",\n      \"\\u001b[1m> Entering new SQLDatabaseChain chain...\\u001b[0m\\n\",\n      \"What are some example tracks by Bach? \\n\",\n      \"SQLQuery:\\u001b[32;1m\\u001b[1;3m SELECT Name, Composer FROM Track WHERE Composer LIKE '%Johann Sebastian Bach%' LIMIT 3;\\u001b[0m\\n\",\n      \"SQLResult: \\u001b[33;1m\\u001b[1;3m[('Concerto for 2 Violins in D Minor, BWV 1043: I. Vivace', 'Johann Sebastian Bach'), ('Aria Mit 30 Veränderungen, BWV 988 \\\"Goldberg Variations\\\": Aria', 'Johann Sebastian Bach'), ('Suite for Solo Cello No. 1 in G Major, BWV 1007: I. Prélude', 'Johann Sebastian Bach')]\\u001b[0m\\n\",\n      \"Answer:\\u001b[32;1m\\u001b[1;3m Some example tracks by Bach are Concerto for 2 Violins in D Minor, BWV 1043: I. Vivace, Aria Mit 30 Veränderungen, BWV 988 \\\"Goldberg Variations\\\": Aria, and Suite for Solo Cello No. 1 in G Major, BWV 1007: I. Prélude.\\u001b[0m\\n\",\n      \"\\u001b[1m> Finished chain.\\u001b[0m\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"text/plain\": [\n       \"' Some example tracks by Bach are Concerto for 2 Violins in D Minor, BWV 1043: I. Vivace, Aria Mit 30 Veränderungen, BWV 988 \\\"Goldberg Variations\\\": Aria, and Suite for Solo Cello No. 1 in G Major, BWV 1007: I. Prélude.'\"\n      ]\n     },\n     \"execution_count\": 21,\n     \"metadata\": {},\n     \"output_type\": \"execute_result\"\n    }\n   ],\n   \"source\": [\n    \"db_chain = SQLDatabaseChain(llm=llm, database=db, verbose=True)\\n\",\n    \"db_chain.run(\\\"What are some example tracks by Bach?\\\")\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"id\": \"5eb39db6\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"@webio\": {\n   \"lastCommId\": null,\n   \"lastKernelId\": null\n  },\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.12\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 5\n}\n"
  },
  {
    "path": "docs/bootcamp/llama_index/index.rst",
    "content": "Llama Index\n=================\n\n.. toctree::\n   :maxdepth: 1\n   :caption: Contents:\n\n\n   webpage_qa"
  },
  {
    "path": "docs/bootcamp/llama_index/webpage_qa.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"d39937ca\",\n   \"metadata\": {},\n   \"source\": [\n    \"# WebPage QA\\n\",\n    \"\\n\",\n    \"This is an example of a QA example， reference [llama_index example](https://gpt-index.readthedocs.io/en/latest/examples/data_connectors/WebPageDemo.html#using-simplewebpagereader). \\n\",\n    \"\\n\",\n    \"It works by first obtaining a list of URLs from the user, then extracting relevant information from the pages associated with those URLs.Next, a vector index is created based on this information, and finally, the program is able to answer questions using the indexed information.\\n\",\n    \"\\n\",\n    \"Before running this example, please set **OPENAI_API_KEY** environment param.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"a411d62e\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Init GPTCache\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"id\": \"9c2022a5\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import hashlib\\n\",\n    \"from gptcache import Cache\\n\",\n    \"from gptcache.adapter.api import init_similar_cache\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def get_hashed_name(name):\\n\",\n    \"    return hashlib.sha256(name.encode()).hexdigest()\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def init_gptcache(cache_obj: Cache, llm: str):\\n\",\n    \"    hashed_llm = get_hashed_name(llm)\\n\",\n    \"    init_similar_cache(cache_obj=cache_obj, data_dir=f\\\"similar_cache_{hashed_llm}\\\")\\n\",\n    \"\\n\",\n    \"gptcache_obj = GPTCache(init_gptcache)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"c24b1889\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Load WebPage Data\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 9,\n   \"id\": \"36f5198f\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from llama_index import (\\n\",\n    \"    GPTVectorStoreIndex,\\n\",\n    \"    ServiceContext,\\n\",\n    \"    LLMPredictor,\\n\",\n    \"    SimpleWebPageReader,\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"loader = SimpleWebPageReader(html_to_text=True)\\n\",\n    \"documents = loader.load_data(urls=[\\\"https://milvus.io/docs/overview.md\\\"])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"ff637b81\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Build Index and Get Query Engine\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 10,\n   \"id\": \"c3753032\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"index = GPTVectorStoreIndex.from_documents(\\n\",\n    \"    documents,\\n\",\n    \"    service_context=ServiceContext.from_defaults(\\n\",\n    \"        llm_predictor=LLMPredictor(cache=gptcache_obj)\\n\",\n    \"    ),\\n\",\n    \")\\n\",\n    \"query_engine = index.as_query_engine()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"200c03c5\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Query\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 11,\n   \"id\": \"b933dd69\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\",\n      \"Milvus is an open source vector database for building and managing large-scale AI applications. It provides fast and accurate vector search capabilities, enabling users to quickly search and retrieve vectors from large datasets.\\n\",\n      \"CPU times: user 1.21 s, sys: 206 ms, total: 1.42 s\\n\",\n      \"Wall time: 9.69 s\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"print(query_engine.query(\\\"What is milvus?\\\"))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 12,\n   \"id\": \"2dae9741\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\",\n      \"Milvus is an open source vector database for building and managing large-scale AI applications. It provides fast and accurate vector search capabilities, enabling users to quickly search and retrieve vectors from large datasets.\\n\",\n      \"CPU times: user 784 ms, sys: 17.8 ms, total: 801 ms\\n\",\n      \"Wall time: 940 ms\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"%%time\\n\",\n    \"print(query_engine.query(\\\"What's milvus?\\\"))\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.8.8\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 5\n}\n"
  },
  {
    "path": "docs/bootcamp/openai/chat.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"6b3ba1cc\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Chat\\n\",\n    \"\\n\",\n    \"This example will show you how to chat with GPT, the original example is on [OpenAI Example](https://platform.openai.com/docs/guides/chat/introduction), the difference is that we will teach you how to cache the  response for exact and similar matches with **gptcache**, it will be very simple, you just need to add an extra step to initialize the cache.\\n\",\n    \"\\n\",\n    \"Before running the example, make sure the `OPENAI_API_KEY` environment variable is set by executing `echo $OPENAI_API_KEY`. If it is not already set, it can be set by using `export OPENAI_API_KEY=YOUR_API_KEY` on Unix/Linux/MacOS systems or `set OPENAI_API_KEY=YOUR_API_KEY` on Windows systems.\\n\",\n    \"\\n\",\n    \"Then we can learn the usage and acceleration effect of gptcache by the following code, which consists of three parts, the original openai way, the exact search and the similar search. You can also try this example on [Google Colab](https://colab.research.google.com/drive/1m1s-iTDfLDk-UwUAQ_L8j1C-gzkcr2Sk?usp=share_link).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"aa0ba70e\",\n   \"metadata\": {},\n   \"source\": [\n    \"## OpenAI API original usage\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"id\": \"80e9dae2\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Question: what‘s github\\n\",\n      \"Time consuming: 6.04s\\n\",\n      \"Answer: GitHub is a web-based platform used for version control and collaboration of coding projects. It allows individuals and teams to store, share, and collaborate on changes to code, software, and applications. It also provides features such as issue tracking, project management tools, and code review. It is one of the most popular and widely used online platforms for open-source projects.\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import time\\n\",\n    \"import openai\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def response_text(openai_resp):\\n\",\n    \"    return openai_resp['choices'][0]['message']['content']\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"question = 'what‘s github'\\n\",\n    \"\\n\",\n    \"# OpenAI API original usage\\n\",\n    \"start_time = time.time()\\n\",\n    \"response = openai.ChatCompletion.create(\\n\",\n    \"  model='gpt-3.5-turbo',\\n\",\n    \"  messages=[\\n\",\n    \"    {\\n\",\n    \"        'role': 'user',\\n\",\n    \"        'content': question\\n\",\n    \"    }\\n\",\n    \"  ],\\n\",\n    \")\\n\",\n    \"print(f'Question: {question}')\\n\",\n    \"print(\\\"Time consuming: {:.2f}s\\\".format(time.time() - start_time))\\n\",\n    \"print(f'Answer: {response_text(response)}\\\\n')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"9d871550\",\n   \"metadata\": {},\n   \"source\": [\n    \"## OpenAI API + GPTCache, exact match cache\\n\",\n    \"\\n\",\n    \"Initalize the cache to run GPTCache and import `openai` form `gptcache.adapter`, which will automatically set the map data manager to match the exact cahe, more details refer to [build your cache](https://gptcache.readthedocs.io/en/dev/usage.html#build-your-cache).\\n\",\n    \"\\n\",\n    \"And if you ask ChatGPT the exact same two questions, the answer to the second question will be obtained from the cache without requesting ChatGPT again.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"id\": \"024484f3\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Cache loading.....\\n\",\n      \"Question: what's github\\n\",\n      \"Time consuming: 6.88s\\n\",\n      \"Answer: GitHub is a web-based platform that allows developers to store, share, and collaborate on programming projects. It is primarily used for version control, where developers can work on different features and changes of a project simultaneously without overwriting each other's work. GitHub also provides tools for issue tracking, code review, and project management. It is widely used in the open-source community and by software development teams in organizations of all sizes.\\n\",\n      \"\\n\",\n      \"Question: what's github\\n\",\n      \"Time consuming: 0.00s\\n\",\n      \"Answer: GitHub is a web-based platform that allows developers to store, share, and collaborate on programming projects. It is primarily used for version control, where developers can work on different features and changes of a project simultaneously without overwriting each other's work. GitHub also provides tools for issue tracking, code review, and project management. It is widely used in the open-source community and by software development teams in organizations of all sizes.\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import time\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def response_text(openai_resp):\\n\",\n    \"    return openai_resp['choices'][0]['message']['content']\\n\",\n    \"\\n\",\n    \"print(\\\"Cache loading.....\\\")\\n\",\n    \"\\n\",\n    \"# To use GPTCache, that's all you need\\n\",\n    \"# -------------------------------------------------\\n\",\n    \"from gptcache import cache\\n\",\n    \"from gptcache.adapter import openai\\n\",\n    \"\\n\",\n    \"cache.init()\\n\",\n    \"cache.set_openai_key()\\n\",\n    \"# -------------------------------------------------\\n\",\n    \"\\n\",\n    \"question = \\\"what's github\\\"\\n\",\n    \"for _ in range(2):\\n\",\n    \"    start_time = time.time()\\n\",\n    \"    response = openai.ChatCompletion.create(\\n\",\n    \"      model='gpt-3.5-turbo',\\n\",\n    \"      messages=[\\n\",\n    \"        {\\n\",\n    \"            'role': 'user',\\n\",\n    \"            'content': question\\n\",\n    \"        }\\n\",\n    \"      ],\\n\",\n    \"    )\\n\",\n    \"    print(f'Question: {question}')\\n\",\n    \"    print(\\\"Time consuming: {:.2f}s\\\".format(time.time() - start_time))\\n\",\n    \"    print(f'Answer: {response_text(response)}\\\\n')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"6f2ff699\",\n   \"metadata\": {},\n   \"source\": [\n    \"## OpenAI API + GPTCache, similar search cache\\n\",\n    \"\\n\",\n    \"Set the cache with `embedding_func` to generate embedding for the text, and `data_manager` to manager the cache data, `similarity_evaluation` to evaluate the similarities, more details refer to [build your cache](https://gptcache.readthedocs.io/en/dev/usage.html#build-your-cache).\\n\",\n    \"\\n\",\n    \"After obtaining an answer from ChatGPT in response to several similar questions, the answers to subsequent questions can be retrieved from the cache without the need to request ChatGPT again.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"id\": \"fd1ff06e\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Cache loading.....\\n\",\n      \"Question: what's github\\n\",\n      \"Time consuming: 7.11s\\n\",\n      \"Answer: GitHub is a web-based platform that allows developers to store, manage, review, and collaborate on code repositories. It is a version control system that enables developers to track changes they make in code over time and collaborate on projects with other developers. GitHub is used by millions of developers worldwide to share code, collaborate on open-source projects, and contribute to projects owned by others. It's also a hub for various communities and forums related to software development.\\n\",\n      \"\\n\",\n      \"Question: can you explain what GitHub is\\n\",\n      \"Time consuming: 0.19s\\n\",\n      \"Answer: GitHub is a web-based platform that allows developers to store, manage, review, and collaborate on code repositories. It is a version control system that enables developers to track changes they make in code over time and collaborate on projects with other developers. GitHub is used by millions of developers worldwide to share code, collaborate on open-source projects, and contribute to projects owned by others. It's also a hub for various communities and forums related to software development.\\n\",\n      \"\\n\",\n      \"Question: can you tell me more about GitHub\\n\",\n      \"Time consuming: 0.23s\\n\",\n      \"Answer: GitHub is a web-based platform that allows developers to store, manage, review, and collaborate on code repositories. It is a version control system that enables developers to track changes they make in code over time and collaborate on projects with other developers. GitHub is used by millions of developers worldwide to share code, collaborate on open-source projects, and contribute to projects owned by others. It's also a hub for various communities and forums related to software development.\\n\",\n      \"\\n\",\n      \"Question: what is the purpose of GitHub\\n\",\n      \"Time consuming: 0.21s\\n\",\n      \"Answer: GitHub is a web-based platform that allows developers to store, manage, review, and collaborate on code repositories. It is a version control system that enables developers to track changes they make in code over time and collaborate on projects with other developers. GitHub is used by millions of developers worldwide to share code, collaborate on open-source projects, and contribute to projects owned by others. It's also a hub for various communities and forums related to software development.\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import time\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def response_text(openai_resp):\\n\",\n    \"    return openai_resp['choices'][0]['message']['content']\\n\",\n    \"\\n\",\n    \"from gptcache import cache\\n\",\n    \"from gptcache.adapter import openai\\n\",\n    \"from gptcache.embedding import Onnx\\n\",\n    \"from gptcache.manager import CacheBase, VectorBase, get_data_manager\\n\",\n    \"from gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\\n\",\n    \"\\n\",\n    \"print(\\\"Cache loading.....\\\")\\n\",\n    \"\\n\",\n    \"onnx = Onnx()\\n\",\n    \"data_manager = get_data_manager(CacheBase(\\\"sqlite\\\"), VectorBase(\\\"faiss\\\", dimension=onnx.dimension))\\n\",\n    \"cache.init(\\n\",\n    \"    embedding_func=onnx.to_embeddings,\\n\",\n    \"    data_manager=data_manager,\\n\",\n    \"    similarity_evaluation=SearchDistanceEvaluation(),\\n\",\n    \"    )\\n\",\n    \"cache.set_openai_key()\\n\",\n    \"\\n\",\n    \"questions = [\\n\",\n    \"    \\\"what's github\\\",\\n\",\n    \"    \\\"can you explain what GitHub is\\\",\\n\",\n    \"    \\\"can you tell me more about GitHub\\\",\\n\",\n    \"    \\\"what is the purpose of GitHub\\\"\\n\",\n    \"]\\n\",\n    \"\\n\",\n    \"for question in questions:\\n\",\n    \"    start_time = time.time()\\n\",\n    \"    response = openai.ChatCompletion.create(\\n\",\n    \"        model='gpt-3.5-turbo',\\n\",\n    \"        messages=[\\n\",\n    \"            {\\n\",\n    \"                'role': 'user',\\n\",\n    \"                'content': question\\n\",\n    \"            }\\n\",\n    \"        ],\\n\",\n    \"    )\\n\",\n    \"    print(f'Question: {question}')\\n\",\n    \"    print(\\\"Time consuming: {:.2f}s\\\".format(time.time() - start_time))\\n\",\n    \"    print(f'Answer: {response_text(response)}\\\\n')\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"id\": \"07d92eae\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.12\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 5\n}\n"
  },
  {
    "path": "docs/bootcamp/openai/image_generation.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"8b0e0905\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Image Generation\\n\",\n    \"\\n\",\n    \"This example will show you how to use GPTCache and OpenAI to implement image generation, i.e. to generate relevant images based on text descriptions. Where the OpenAI model will be used to generate the images, and GPTCache will cache the generated images so that the next time the same or similar text description is requested, it can be returned directly from the cache, which can improve efficiency and reduce costs.\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"This bootcamp is divided into three parts: how to initialize gptcache, running the openai model to generate images, and finally showing how to start the service with gradio. You can also try this example on [Google Colab](https://colab.research.google.com/drive/1YRNR5MLux9UbbWs0SgGI3OSPfkPqIBrM?usp=share_link).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"11b0f837\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Initialize the gptcache\\n\",\n    \"\\n\",\n    \"Please [install gptcache](https://gptcache.readthedocs.io/en/latest/index.html#) first, then we can initialize the cache. There are two ways to initialize the cache, the first is to use the map cache (exact match cache) and the second is to use the database cache (similar search cache), it is more recommended to use the second one, but you have to install the related requirements.\\n\",\n    \"\\n\",\n    \"Before running the example, make sure the `OPENAI_API_KEY` environment variable is set by executing `echo $OPENAI_API_KEY`. If it is not already set, it can be set by using `export OPENAI_API_KEY=YOUR_API_KEY` on Unix/Linux/MacOS systems or `set OPENAI_API_KEY=YOUR_API_KEY` on Windows systems.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"46326449\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 1. Init for exact match cache\\n\",\n    \"\\n\",\n    \"`cache.init` is used to initialize gptcache, the default is to use map to search for cached data, `pre_embedding_func` is used to pre-process the data inserted into the cache, more configuration refer to [initialize Cache](https://gptcache.readthedocs.io/en/latest/references/gptcache.html#module-gptcache.Cache).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"id\": \"bbd4d14f\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# from gptcache import cache\\n\",\n    \"# from gptcache.adapter import openai\\n\",\n    \"# from gptcache.processor.pre import get_prompt\\n\",\n    \"\\n\",\n    \"# cache.init(pre_embedding_func=get_prompt)\\n\",\n    \"# cache.set_openai_key()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"f3ebda74\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2. Init for similar match cache\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"When initializing gptcahe, the following four parameters are configured:\\n\",\n    \"\\n\",\n    \"- `pre_embedding_func`: pre-processing before extracting feature vectors\\n\",\n    \"- `embedding_func`: the method to extract the text feature vector\\n\",\n    \"- `data_manager`: DataManager for cache management\\n\",\n    \"- `similarity_evaluation`: the evaluation method after the cache hit\\n\",\n    \"\\n\",\n    \"The `data_manager` is used to store text, feature vector, and image object data, in the example, it takes [Milvus](https://milvus.io/docs) (please make sure it is started), you can also configure other vector storage, refer to [VectorBase API](https://gptcache.readthedocs.io/en/latest/references/manager.html#module-gptcache.manager.vector_data). Also you can [set ObjectBase](https://gptcache.readthedocs.io/en/latest/references/manager.html#module-gptcache.manager.object_data) to configure which method to use to save the generated image, this example will be stored locally, you can also set it to S3 storage.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"id\": \"db7e64ae\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from gptcache import cache\\n\",\n    \"from gptcache.adapter import openai\\n\",\n    \"from gptcache.processor.pre import get_prompt\\n\",\n    \"\\n\",\n    \"from gptcache.embedding import Onnx\\n\",\n    \"from gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\\n\",\n    \"from gptcache.manager import get_data_manager, CacheBase, VectorBase, ObjectBase\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"onnx = Onnx()\\n\",\n    \"cache_base = CacheBase('sqlite')\\n\",\n    \"vector_base = VectorBase('milvus', host='localhost', port='19530', dimension=onnx.dimension)\\n\",\n    \"object_base = ObjectBase('local', path='./images')\\n\",\n    \"data_manager = get_data_manager(cache_base, vector_base, object_base)\\n\",\n    \"\\n\",\n    \"cache.init(\\n\",\n    \"    pre_embedding_func=get_prompt,\\n\",\n    \"    embedding_func=onnx.to_embeddings,\\n\",\n    \"    data_manager=data_manager,\\n\",\n    \"    similarity_evaluation=SearchDistanceEvaluation(),\\n\",\n    \"    )\\n\",\n    \"cache.set_openai_key()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"4201d301\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Run openai image generation \\n\",\n    \"\\n\",\n    \"Then run `openai.Image.create` to generate the image. The generated images can have a size of \\\"256x256\\\", \\\"512x512\\\", or \\\"1024x1024\\\" pixels, and smaller sizes are faster to generate.\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"Note that `openai` here is imported from `gptcache.adapter.openai`, which can be used to cache with gptcache at request time.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"id\": \"7555c46b\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"response = openai.Image.create(\\n\",\n    \"  prompt=\\\"a white siamese cat\\\",\\n\",\n    \"  n=1,\\n\",\n    \"  size=\\\"256x256\\\"\\n\",\n    \")\\n\",\n    \"image_url = response['data'][0]['url']\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"02d816d5\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Start with gradio\\n\",\n    \"\\n\",\n    \"Finally, we can start a gradio application for image generation.\\n\",\n    \"\\n\",\n    \"First define the `image_generation` method, which is used to generate an image based on the input text and also return whether the cache hit or not. Then start the service with gradio, as shown below:\\n\",\n    \"\\n\",\n    \"![](../assets/image_generation_gradio.png)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"id\": \"b160e01f\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def image_generation(prompt):\\n\",\n    \"    response = openai.Image.create(\\n\",\n    \"      prompt=prompt,\\n\",\n    \"      n=1,\\n\",\n    \"      size=\\\"256x256\\\"\\n\",\n    \"    )\\n\",\n    \"    return response['data'][0]['url'], response.get(\\\"gptcache\\\", False)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"id\": \"a5f12582\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import gradio\\n\",\n    \"\\n\",\n    \"interface = gradio.Interface(image_generation, \\n\",\n    \"                             gradio.Textbox(lines=1, placeholder=\\\"Description Here...\\\"),\\n\",\n    \"                             [gradio.Image(shape=(200, 200)), gradio.Textbox(label=\\\"is hit\\\")]\\n\",\n    \"                            )\\n\",\n    \"\\n\",\n    \"interface.launch(inline=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"id\": \"f2b5959d\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.12\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 5\n}\n"
  },
  {
    "path": "docs/bootcamp/openai/index.rst",
    "content": "OpenAI\n=================\n\n.. toctree::\n   :maxdepth: 1\n   :caption: Contents:\n\n\n   chat\n   image_generation\n   sql_translate\n   tweet_classifier\n   image_generation\n   speech_to_text\n"
  },
  {
    "path": "docs/bootcamp/openai/language_translate.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"0ac4a3bc\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Language Translation \\n\",\n    \"\\n\",\n    \"This example will show you how to translates English to other languages, the original example is on [OpenAI Example](https://platform.openai.com/examples/default-translate), the difference is that we will teach you how to cache the response for exact and similar matches with **gptcache**, it will be very simple, you just need to add an extra step to initialize the cache.\\n\",\n    \"\\n\",\n    \"Before running the example, make sure the `OPENAI_API_KEY` environment variable is set by executing `echo $OPENAI_API_KEY`. If it is not already set, it can be set by using `export OPENAI_API_KEY=YOUR_API_KEY` on Unix/Linux/MacOS systems or `set OPENAI_API_KEY=YOUR_API_KEY` on Windows systems.\\n\",\n    \"\\n\",\n    \"Then we can learn the usage and acceleration effect of gptcache by the following code, which consists of three parts, the original openai way, the exact search and the similar search.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"79934be0\",\n   \"metadata\": {},\n   \"source\": [\n    \"## OpenAI API original usage\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"id\": \"74499030\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\",\n      \"Answer: 1. Quels salles avez-vous disponibles?\\n\",\n      \"2. ¿Qué habitaciones tienen disponibles?\\n\",\n      \"3. どの部屋が利用可能ですか？\\n\",\n      \"Time consuming: 2.06s\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import time\\n\",\n    \"import openai\\n\",\n    \"\\n\",\n    \"def response_text(openai_resp):\\n\",\n    \"    return openai_resp[\\\"choices\\\"][0][\\\"text\\\"]\\n\",\n    \"\\n\",\n    \"start_time = time.time()\\n\",\n    \"response = openai.Completion.create(\\n\",\n    \"  model=\\\"text-davinci-003\\\",\\n\",\n    \"  prompt=\\\"Translate this into 1. French, 2. Spanish and 3. Japanese:\\\\n\\\\nWhat rooms do you have available?\\\\n\\\\n1.\\\",\\n\",\n    \"  temperature=0.3,\\n\",\n    \"  max_tokens=100,\\n\",\n    \"  top_p=1.0,\\n\",\n    \"  frequency_penalty=0.0,\\n\",\n    \"  presence_penalty=0.0\\n\",\n    \")\\n\",\n    \"\\n\",\n    \"print(f\\\"\\\\nAnswer: 1.{response_text(response)}\\\")\\n\",\n    \"print(\\\"Time consuming: {:.2f}s\\\".format(time.time() - start_time))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"d8f271f0\",\n   \"metadata\": {},\n   \"source\": [\n    \"## OpenAI API + GPTCache, exact match cache\\n\",\n    \"\\n\",\n    \"Initalize the cache to run GPTCache and import `openai` form `gptcache.adapter`, which will automatically set the map data manager to match the exact cahe, more details refer to [build your cache](https://gptcache.readthedocs.io/en/dev/usage.html#build-your-cache).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"id\": \"76bdb5e5\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Cache loading.....\\n\",\n      \"\\n\",\n      \"Answer: 1. Quels sont les chambres que vous avez disponibles ?\\n\",\n      \"2. ¿Qué habitaciones tienes disponibles?\\n\",\n      \"3. どの部屋が利用可能ですか？\\n\",\n      \"Time consuming: 1.81s\\n\",\n      \"\\n\",\n      \"Answer: 1. Quelles pièces avez-vous disponibles?\\n\",\n      \"2. ¿Qué habitaciones tienen disponibles?\\n\",\n      \"3. どの部屋が利用可能ですか？\\n\",\n      \"Time consuming: 4.47s\\n\",\n      \"\\n\",\n      \"Answer: 1. Quels types de chambres avez-vous disponibles ?\\n\",\n      \"2. ¿Qué tipos de habitaciones tienen disponibles?\\n\",\n      \"3. どんな部屋が利用可能ですか？\\n\",\n      \"Time consuming: 1.40s\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import time\\n\",\n    \"\\n\",\n    \"def response_text(openai_resp):\\n\",\n    \"    return openai_resp[\\\"choices\\\"][0][\\\"text\\\"]\\n\",\n    \"\\n\",\n    \"print(\\\"Cache loading.....\\\")\\n\",\n    \"\\n\",\n    \"# To use GPTCache, that's all you need\\n\",\n    \"# -------------------------------------------------\\n\",\n    \"from gptcache import cache\\n\",\n    \"from gptcache.processor.pre import get_prompt\\n\",\n    \"\\n\",\n    \"cache.init(pre_embedding_func=get_prompt)\\n\",\n    \"cache.set_openai_key()\\n\",\n    \"# -------------------------------------------------\\n\",\n    \"\\n\",\n    \"questions = [\\n\",\n    \"    \\\"Translate this into 1. French, 2. Spanish and 3. Japanese:\\\\n\\\\nWhat rooms do you have available?\\\\n\\\\n1.\\\",\\n\",\n    \"    \\\"Translate this into 1. French, 2. Spanish and 3. Japanese:\\\\n\\\\nWhich rooms do you have available?\\\\n\\\\n1.\\\",\\n\",\n    \"    \\\"Translate this into 1. French, 2. Spanish and 3. Japanese:\\\\n\\\\nWhat kind of rooms do you have available?\\\\n\\\\n1.\\\",\\n\",\n    \"]\\n\",\n    \"\\n\",\n    \"for question in questions:\\n\",\n    \"    start_time = time.time()\\n\",\n    \"    response = openai.Completion.create(\\n\",\n    \"                  model=\\\"text-davinci-003\\\",\\n\",\n    \"                  prompt=question,\\n\",\n    \"                  temperature=0.3,\\n\",\n    \"                  max_tokens=100,\\n\",\n    \"                  top_p=1.0,\\n\",\n    \"                  frequency_penalty=0.0,\\n\",\n    \"                  presence_penalty=0.0\\n\",\n    \"                )\\n\",\n    \"    print(f\\\"\\\\nAnswer: 1.{response_text(response)}\\\")\\n\",\n    \"    print(\\\"Time consuming: {:.2f}s\\\".format(time.time() - start_time))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"ba5b959a\",\n   \"metadata\": {},\n   \"source\": [\n    \"## OpenAI API + GPTCache, similar search cache\\n\",\n    \"\\n\",\n    \"Set the cache with `pre_embedding_func` to preprocess the input data, `embedding_func` to generate embedding for the text, and `data_manager` to manager the cache data, `similarity_evaluation` to evaluate the similarities, more details refer to [build your cache](https://gptcache.readthedocs.io/en/dev/usage.html#build-your-cache).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"id\": \"f2278a87\",\n   \"metadata\": {\n    \"scrolled\": true\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Cache loading.....\\n\",\n      \"\\n\",\n      \"Answer: 1. Quels salles avez-vous disponibles?\\n\",\n      \"2. ¿Qué habitaciones tienes disponibles?\\n\",\n      \"3. どの部屋が利用可能ですか？\\n\",\n      \"Time consuming: 4.40s\\n\",\n      \"\\n\",\n      \"Answer: 1. Quels salles avez-vous disponibles?\\n\",\n      \"2. ¿Qué habitaciones tienes disponibles?\\n\",\n      \"3. どの部屋が利用可能ですか？\\n\",\n      \"Time consuming: 0.19s\\n\",\n      \"\\n\",\n      \"Answer: 1. Quels salles avez-vous disponibles?\\n\",\n      \"2. ¿Qué habitaciones tienes disponibles?\\n\",\n      \"3. どの部屋が利用可能ですか？\\n\",\n      \"Time consuming: 0.21s\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import time\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def response_text(openai_resp):\\n\",\n    \"    return openai_resp[\\\"choices\\\"][0][\\\"text\\\"]\\n\",\n    \"\\n\",\n    \"from gptcache import cache\\n\",\n    \"from gptcache.adapter import openai\\n\",\n    \"from gptcache.embedding import Onnx\\n\",\n    \"from gptcache.processor.pre import get_prompt\\n\",\n    \"from gptcache.manager import CacheBase, VectorBase, get_data_manager\\n\",\n    \"from gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\\n\",\n    \"\\n\",\n    \"print(\\\"Cache loading.....\\\")\\n\",\n    \"\\n\",\n    \"onnx = Onnx()\\n\",\n    \"data_manager = get_data_manager(CacheBase(\\\"sqlite\\\"), VectorBase(\\\"faiss\\\", dimension=onnx.dimension))\\n\",\n    \"cache.init(pre_embedding_func=get_prompt,\\n\",\n    \"    embedding_func=onnx.to_embeddings,\\n\",\n    \"    data_manager=data_manager,\\n\",\n    \"    similarity_evaluation=SearchDistanceEvaluation(),\\n\",\n    \"    )\\n\",\n    \"cache.set_openai_key()\\n\",\n    \"\\n\",\n    \"questions = [\\n\",\n    \"    \\\"Translate this into 1. French, 2. Spanish and 3. Japanese:\\\\n\\\\nWhat rooms do you have available?\\\\n\\\\n1.\\\",\\n\",\n    \"    \\\"Translate this into 1. French, 2. Spanish and 3. Japanese:\\\\n\\\\nWhich rooms do you have available?\\\\n\\\\n1.\\\",\\n\",\n    \"    \\\"Translate this into 1. French, 2. Spanish and 3. Japanese:\\\\n\\\\nWhat kind of rooms do you have available?\\\\n\\\\n1.\\\",\\n\",\n    \"]\\n\",\n    \"\\n\",\n    \"for question in questions:\\n\",\n    \"    start_time = time.time()\\n\",\n    \"    response = openai.Completion.create(\\n\",\n    \"                  model=\\\"text-davinci-003\\\",\\n\",\n    \"                  prompt=question,\\n\",\n    \"                  temperature=0.3,\\n\",\n    \"                  max_tokens=100,\\n\",\n    \"                  top_p=1.0,\\n\",\n    \"                  frequency_penalty=0.0,\\n\",\n    \"                  presence_penalty=0.0\\n\",\n    \"                )\\n\",\n    \"    print(f\\\"\\\\nAnswer: 1.{response_text(response)}\\\")\\n\",\n    \"    print(\\\"Time consuming: {:.2f}s\\\".format(time.time() - start_time))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"a2094a47\",\n   \"metadata\": {},\n   \"source\": [\n    \"We find that the performance improvement when searching the similar because the three statements of the query are similar, and hitting cache in gptcache, so it will return the cached results directly instead of requesting. And you can then also try running the query again for exact search, which will also speed up.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"id\": \"4030b170\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.12\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 5\n}\n"
  },
  {
    "path": "docs/bootcamp/openai/speech_to_text.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"8b0e0905\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Speech to Text\\n\",\n    \"\\n\",\n    \"This example will show you how to use GPTCache and OpenAI to implement speech to text, i.e. to turn audio into text. Where the OpenAI model will be used to turn the audio data, and GPTCache will cache the generated text so that the next time the same or similar audio is requested, it can be returned directly from the cache, which can improve efficiency and reduce costs.\\n\",\n    \"\\n\",\n    \"This bootcamp is divided into three parts: how to initialize gptcache, running the openai model to turn audio data into text, and finally showing how to start the service with gradio. You can also find the colab in here. You can also try this example on [Google Colab](https://colab.research.google.com/drive/1vtiD-emu9gJdzPq0c5dwGOV2ngmug9EN?usp=share_link).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"11b0f837\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Initialize the gptcache\\n\",\n    \"\\n\",\n    \"Please [install gptcache](https://gptcache.readthedocs.io/en/latest/index.html#) first, then we can initialize the cache. There are two ways to initialize the cache, the first is to use the map cache (exact match cache) and the second is to use the database cache (similar search cache), it is more recommended to use the second one, but you have to install the related requirements.\\n\",\n    \"\\n\",\n    \"Before running the example, make sure the `OPENAI_API_KEY` environment variable is set by executing `echo $OPENAI_API_KEY`. If it is not already set, it can be set by using `export OPENAI_API_KEY=YOUR_API_KEY` on Unix/Linux/MacOS systems or `set OPENAI_API_KEY=YOUR_API_KEY` on Windows systems.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"46326449\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 1. Init for exact match cache\\n\",\n    \"\\n\",\n    \"`cache.init` is used to initialize gptcache, the default is to use map to search for cached data, `pre_embedding_func` is used to pre-process the data inserted into the cache, and it will use the `get_file_bytes` method, more configuration refer to [initialize Cache](https://gptcache.readthedocs.io/en/latest/references/gptcache.html#module-gptcache.Cache).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"id\": \"bbd4d14f\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# from gptcache import cache\\n\",\n    \"# from gptcache.adapter import openai\\n\",\n    \"# from gptcache.processor.pre import get_file_bytes\\n\",\n    \"\\n\",\n    \"# cache.init(pre_embedding_func=get_file_bytes)\\n\",\n    \"# cache.set_openai_key()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"f3ebda74\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2. Init for similar match cache\\n\",\n    \"\\n\",\n    \"When initializing gptcahe, the following four parameters are configured:\\n\",\n    \"\\n\",\n    \"- `pre_embedding_func`: pre-processing before extracting feature vectors, it will use the `get_file_name` method\\n\",\n    \"- `embedding_func`: the method to extract the text feature vector\\n\",\n    \"- `data_manager`: DataManager for cache management\\n\",\n    \"- `similarity_evaluation`: the evaluation method after the cache hit\\n\",\n    \"\\n\",\n    \"The `data_manager` is used to audio feature vector, response text in the example, it takes [Milvus](https://milvus.io/docs) (please make sure it is started), you can also configure other vector storage, refer to [VectorBase API](https://gptcache.readthedocs.io/en/latest/references/manager.html#module-gptcache.manager.vector_data).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"id\": \"db7e64ae\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from gptcache import cache\\n\",\n    \"from gptcache.adapter import openai\\n\",\n    \"from gptcache.processor.pre import get_file_name\\n\",\n    \"\\n\",\n    \"from gptcache.embedding import Data2VecAudio\\n\",\n    \"from gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\\n\",\n    \"from gptcache.manager import get_data_manager, CacheBase, VectorBase, ObjectBase\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"data2vec = Data2VecAudio()\\n\",\n    \"cache_base = CacheBase('sqlite')\\n\",\n    \"vector_base = VectorBase('milvus', host='localhost', port='19530', dimension=data2vec.dimension)\\n\",\n    \"data_manager = get_data_manager(cache_base, vector_base)\\n\",\n    \"\\n\",\n    \"cache.init(\\n\",\n    \"    pre_embedding_func=get_file_name,\\n\",\n    \"    embedding_func=data2vec.to_embeddings,\\n\",\n    \"    data_manager=data_manager,\\n\",\n    \"    similarity_evaluation=SearchDistanceEvaluation(),\\n\",\n    \"    )\\n\",\n    \"cache.set_openai_key()\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"4201d301\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Run openai speech to text \\n\",\n    \"\\n\",\n    \"Then run `openai.Audio.translations`, which can translate and transcribe the audio into english, and it is based on large-v2 Whisper model. The file uploads are currently limited to 25 MB and the following input file types are supported: mp3, mp4, mpeg, mpga, m4a, wav, and webm.\\n\",\n    \"\\n\",\n    \"Note that `openai` here is imported from `gptcache.adapter.openai`, which can be used to cache with gptcache at request time. Please download the [blues.00000.mp3](https://github.com/towhee-io/examples/releases/download/data/blues.00000.mp3) before running the following code.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"id\": \"7555c46b\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"One bourbon, one scotch and one bill Hey Mr. Bartender, come here I want another drink and I want it now My baby she gone, she been gone tonight I ain't seen my baby since night of her life One bourbon, one scotch and one bill\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"audio_file= open(\\\"./blues.00000.mp3\\\", \\\"rb\\\")\\n\",\n    \"transcript = openai.Audio.transcribe(\\\"whisper-1\\\", audio_file)\\n\",\n    \"print(transcript[\\\"text\\\"])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"02d816d5\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Start with gradio\\n\",\n    \"\\n\",\n    \"Finally, we can start a gradio application to translate and transcribe the audio.\\n\",\n    \"\\n\",\n    \"First define the `speech_to_text` method, which is used to generate text based on the input audio and also return whether the cache hit or not. Then start the service with gradio, as shown below:\\n\",\n    \"\\n\",\n    \"![](../assets/speech_to_text_gradio.png)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"id\": \"b160e01f\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def speech_to_text(audio_file):\\n\",\n    \"    audio_file= open(audio_file, \\\"rb\\\")\\n\",\n    \"    transcript = openai.Audio.transcribe(\\\"whisper-1\\\", audio_file)\\n\",\n    \"    return transcript[\\\"text\\\"], transcript.get(\\\"gptcache\\\", False)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"id\": \"d6cbf624\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import gradio\\n\",\n    \"\\n\",\n    \"interface = gradio.Interface(speech_to_text, \\n\",\n    \"                             gradio.Audio(source=\\\"upload\\\", type=\\\"filepath\\\"),\\n\",\n    \"                             [gradio.Textbox(label=\\\"transcript\\\"), gradio.Textbox(label=\\\"is hit\\\")]\\n\",\n    \"                            )\\n\",\n    \"\\n\",\n    \"interface.launch(inline=True)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"id\": \"f2b5959d\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.12\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 5\n}\n"
  },
  {
    "path": "docs/bootcamp/openai/sql_translate.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"2d5f1205\",\n   \"metadata\": {},\n   \"source\": [\n    \"# SQL Translate\\n\",\n    \"\\n\",\n    \"This example will show you how to translate natural language to SQL queries, the original example is on [OpenAI Example](https://platform.openai.com/examples/default-sql-translate), the difference is that we will teach you how to cache the response for exact and similar matches with **gptcache**, it will be very simple, you just need to add an extra step to initialize the cache.\\n\",\n    \"\\n\",\n    \"Before running the example, make sure the `OPENAI_API_KEY` environment variable is set by executing `echo $OPENAI_API_KEY`. If it is not already set, it can be set by using `export OPENAI_API_KEY=YOUR_API_KEY` on Unix/Linux/MacOS systems or `set OPENAI_API_KEY=YOUR_API_KEY` on Windows systems.\\n\",\n    \"\\n\",\n    \"Then we can learn the usage and acceleration effect of gptcache by the following code, which consists of three parts, the original openai way, the exact search and the similar search.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"4dd7eb8a\",\n   \"metadata\": {},\n   \"source\": [\n    \"## OpenAI API original usage\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"id\": \"6fe19528\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"\\n\",\n      \"SELECT  d.name \\n\",\n      \"FROM Department d \\n\",\n      \"INNER JOIN Employee e ON d.id = e.department_id \\n\",\n      \"INNER JOIN Salary_Payments sp ON e.id = sp.employee_id \\n\",\n      \"WHERE sp.date > NOW() - INTERVAL '3 months' \\n\",\n      \"GROUP BY d.name \\n\",\n      \"HAVING COUNT(*) > 10\\n\",\n      \"Time consuming: 2.78s\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import time\\n\",\n    \"import openai\\n\",\n    \"\\n\",\n    \"question = \\\"A query to list the names of the departments which employed more than 10 employees in the last 3 months\\\\nSELECT\\\"\\n\",\n    \"def response_text(openai_resp):\\n\",\n    \"    return openai_resp[\\\"choices\\\"][0][\\\"text\\\"]\\n\",\n    \"\\n\",\n    \"start_time = time.time()\\n\",\n    \"response = openai.Completion.create(\\n\",\n    \"  model=\\\"text-davinci-003\\\",\\n\",\n    \"  prompt=\\\"### Postgres SQL tables, with their properties:\\\\n#\\\\n# Employee(id, name, department_id)\\\\n# Department(id, name, address)\\\\n# Salary_Payments(id, employee_id, amount, date)\\\\n#\\\\n### \\\" + question,\\n\",\n    \"  temperature=0,\\n\",\n    \"  max_tokens=150,\\n\",\n    \"  top_p=1.0,\\n\",\n    \"  frequency_penalty=0.0,\\n\",\n    \"  presence_penalty=0.0,\\n\",\n    \"  stop=[\\\"#\\\", \\\";\\\"]\\n\",\n    \")\\n\",\n    \"print(\\\"\\\\nSELECT\\\", response_text(response))\\n\",\n    \"print(\\\"Time consuming: {:.2f}s\\\".format(time.time() - start_time))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"37112300\",\n   \"metadata\": {},\n   \"source\": [\n    \"## OpenAI API + GPTCache, exact match cache\\n\",\n    \"\\n\",\n    \"Initalize the cache to run GPTCache and import `openai` form `gptcache.adapter`, which will automatically set the map data manager to match the exact cahe, more details refer to [build your cache](https://gptcache.readthedocs.io/en/dev/usage.html#build-your-cache).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"id\": \"7b5a627c\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Cache loading.....\\n\",\n      \"\\n\",\n      \"SELECT  d.name \\n\",\n      \"FROM Department d \\n\",\n      \"INNER JOIN Employee e ON d.id = e.department_id \\n\",\n      \"INNER JOIN Salary_Payments sp ON e.id = sp.employee_id \\n\",\n      \"WHERE sp.date > NOW() - INTERVAL '3 months' \\n\",\n      \"GROUP BY d.name \\n\",\n      \"HAVING COUNT(*) > 10\\n\",\n      \"Time consuming: 1.88s\\n\",\n      \"\\n\",\n      \"SELECT  d.name\\n\",\n      \"FROM Department d\\n\",\n      \"INNER JOIN Employee e ON d.id = e.department_id\\n\",\n      \"INNER JOIN Salary_Payments sp ON e.id = sp.employee_id\\n\",\n      \"WHERE sp.date > NOW() - INTERVAL '3 months'\\n\",\n      \"GROUP BY d.name\\n\",\n      \"HAVING COUNT(*) > 10\\n\",\n      \"Time consuming: 1.46s\\n\",\n      \"\\n\",\n      \"SELECT  d.name\\n\",\n      \"FROM Department d\\n\",\n      \"INNER JOIN Employee e ON d.id = e.department_id\\n\",\n      \"INNER JOIN Salary_Payments sp ON e.id = sp.employee_id\\n\",\n      \"WHERE sp.date > DATE_SUB(CURDATE(), INTERVAL 3 MONTH)\\n\",\n      \"GROUP BY d.name\\n\",\n      \"HAVING COUNT(*) > 10\\n\",\n      \"Time consuming: 2.08s\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import time\\n\",\n    \"\\n\",\n    \"def response_text(openai_resp):\\n\",\n    \"    return openai_resp[\\\"choices\\\"][0][\\\"text\\\"]\\n\",\n    \"\\n\",\n    \"print(\\\"Cache loading.....\\\")\\n\",\n    \"\\n\",\n    \"# To use GPTCache, that's all you need\\n\",\n    \"# -------------------------------------------------\\n\",\n    \"from gptcache import cache\\n\",\n    \"from gptcache.processor.pre import get_prompt\\n\",\n    \"\\n\",\n    \"cache.init(pre_embedding_func=get_prompt)\\n\",\n    \"cache.set_openai_key()\\n\",\n    \"# -------------------------------------------------\\n\",\n    \"\\n\",\n    \"questions = [\\n\",\n    \"    \\\"A query to list the names of the departments which employed more than 10 employees in the last 3 months\\\\nSELECT\\\",\\n\",\n    \"    \\\"Query the names of the departments which employed more than 10 employees in the last 3 months\\\\nSELECT\\\",\\n\",\n    \"    \\\"List the names of the departments which employed more than 10 employees in the last 3 months\\\\nSELECT\\\",\\n\",\n    \"]\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"for question in questions:\\n\",\n    \"    start_time = time.time()\\n\",\n    \"    response = openai.Completion.create(\\n\",\n    \"      model=\\\"text-davinci-003\\\",\\n\",\n    \"      prompt=\\\"### Postgres SQL tables, with their properties:\\\\n#\\\\n# Employee(id, name, department_id)\\\\n# Department(id, name, address)\\\\n# Salary_Payments(id, employee_id, amount, date)\\\\n#\\\\n### \\\" + question,\\n\",\n    \"      temperature=0,\\n\",\n    \"      max_tokens=150,\\n\",\n    \"      top_p=1.0,\\n\",\n    \"      frequency_penalty=0.0,\\n\",\n    \"      presence_penalty=0.0,\\n\",\n    \"      stop=[\\\"#\\\", \\\";\\\"]\\n\",\n    \"    )\\n\",\n    \"    print(\\\"\\\\nSELECT\\\", response_text(response))\\n\",\n    \"    print(\\\"Time consuming: {:.2f}s\\\".format(time.time() - start_time))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"b57d718a\",\n   \"metadata\": {},\n   \"source\": [\n    \"## OpenAI API + GPTCache, similar search cache\\n\",\n    \"\\n\",\n    \"Set the cache with `pre_embedding_func` to preprocess the input data, `embedding_func` to generate embedding for the text, and `data_manager` to manager the cache data, `similarity_evaluation` to evaluate the similarities, more details refer to [build your cache](https://gptcache.readthedocs.io/en/dev/usage.html#build-your-cache).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"id\": \"4018bb39\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Cache loading.....\\n\",\n      \"A query to list the names of the departments which employed more than 10 employees in the last 3 months\\n\",\n      \"SELECT  d.name \\n\",\n      \"FROM Department d \\n\",\n      \"INNER JOIN Employee e ON d.id = e.department_id \\n\",\n      \"INNER JOIN Salary_Payments sp ON e.id = sp.employee_id \\n\",\n      \"WHERE sp.date > NOW() - INTERVAL '3 months' \\n\",\n      \"GROUP BY d.name \\n\",\n      \"HAVING COUNT(*) > 10\\n\",\n      \"Time consuming: 1.89s\\n\",\n      \"Query the names of the departments which employed more than 10 employees in the last 3 months\\n\",\n      \"SELECT  d.name \\n\",\n      \"FROM Department d \\n\",\n      \"INNER JOIN Employee e ON d.id = e.department_id \\n\",\n      \"INNER JOIN Salary_Payments sp ON e.id = sp.employee_id \\n\",\n      \"WHERE sp.date > NOW() - INTERVAL '3 months' \\n\",\n      \"GROUP BY d.name \\n\",\n      \"HAVING COUNT(*) > 10\\n\",\n      \"Time consuming: 0.25s\\n\",\n      \"List the names of the departments which employed more than 10 employees in the last 3 months\\n\",\n      \"SELECT  d.name \\n\",\n      \"FROM Department d \\n\",\n      \"INNER JOIN Employee e ON d.id = e.department_id \\n\",\n      \"INNER JOIN Salary_Payments sp ON e.id = sp.employee_id \\n\",\n      \"WHERE sp.date > NOW() - INTERVAL '3 months' \\n\",\n      \"GROUP BY d.name \\n\",\n      \"HAVING COUNT(*) > 10\\n\",\n      \"Time consuming: 0.22s\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import time\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def response_text(openai_resp):\\n\",\n    \"    return openai_resp[\\\"choices\\\"][0][\\\"text\\\"]\\n\",\n    \"\\n\",\n    \"from gptcache import cache\\n\",\n    \"from gptcache.adapter import openai\\n\",\n    \"from gptcache.embedding import Onnx\\n\",\n    \"from gptcache.processor.pre import get_prompt\\n\",\n    \"from gptcache.manager import CacheBase, VectorBase, get_data_manager\\n\",\n    \"from gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\\n\",\n    \"\\n\",\n    \"print(\\\"Cache loading.....\\\")\\n\",\n    \"\\n\",\n    \"onnx = Onnx()\\n\",\n    \"data_manager = get_data_manager(CacheBase(\\\"sqlite\\\"), VectorBase(\\\"faiss\\\", dimension=onnx.dimension))\\n\",\n    \"cache.init(pre_embedding_func=get_prompt,\\n\",\n    \"    embedding_func=onnx.to_embeddings,\\n\",\n    \"    data_manager=data_manager,\\n\",\n    \"    similarity_evaluation=SearchDistanceEvaluation(),\\n\",\n    \"    )\\n\",\n    \"cache.set_openai_key()\\n\",\n    \"\\n\",\n    \"questions = [\\n\",\n    \"    \\\"A query to list the names of the departments which employed more than 10 employees in the last 3 months\\\\nSELECT\\\",\\n\",\n    \"    \\\"Query the names of the departments which employed more than 10 employees in the last 3 months\\\\nSELECT\\\",\\n\",\n    \"    \\\"List the names of the departments which employed more than 10 employees in the last 3 months\\\\nSELECT\\\",\\n\",\n    \"]\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"for question in questions:\\n\",\n    \"    start_time = time.time()\\n\",\n    \"    response = openai.Completion.create(\\n\",\n    \"      model=\\\"text-davinci-003\\\",\\n\",\n    \"      prompt=\\\"### Postgres SQL tables, with their properties:\\\\n#\\\\n# Employee(id, name, department_id)\\\\n# Department(id, name, address)\\\\n# Salary_Payments(id, employee_id, amount, date)\\\\n#\\\\n### \\\" + question,\\n\",\n    \"      temperature=0,\\n\",\n    \"      max_tokens=150,\\n\",\n    \"      top_p=1.0,\\n\",\n    \"      frequency_penalty=0.0,\\n\",\n    \"      presence_penalty=0.0,\\n\",\n    \"      stop=[\\\"#\\\", \\\";\\\"]\\n\",\n    \"    )\\n\",\n    \"    print(question, response_text(response))\\n\",\n    \"    print(\\\"Time consuming: {:.2f}s\\\".format(time.time() - start_time))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"8666399e\",\n   \"metadata\": {},\n   \"source\": [\n    \"We find that the performance improvement when searching the similar because the three statements of the query are similar, and hitting cache in gptcache, so it will return the cached results directly instead of requesting. And you can then also try running the query again for exact search, which will also speed up.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"id\": \"d6a69fef\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.12\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 5\n}\n"
  },
  {
    "path": "docs/bootcamp/openai/tweet_classifier.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"6b3ba1cc\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Tweet Classifier\\n\",\n    \"\\n\",\n    \"This example will show you how to determine sentiment of tweets, the original example is on [OpenAI Example](https://platform.openai.com/examples/default-tweet-classifier), the difference is that we will teach you how to cache the response for exact and similar matches with **gptcache**, it will be very simple, you just need to add an extra step to initialize the cache.\\n\",\n    \"\\n\",\n    \"Before running the example, make sure the `OPENAI_API_KEY` environment variable is set by executing `echo $OPENAI_API_KEY`. If it is not already set, it can be set by using `export OPENAI_API_KEY=YOUR_API_KEY` on Unix/Linux/MacOS systems or `set OPENAI_API_KEY=YOUR_API_KEY` on Windows systems.\\n\",\n    \"\\n\",\n    \"Then we can learn the usage and acceleration effect of gptcache by the following code, which consists of three parts, the original openai way, the exact search and the similar search.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"aa0ba70e\",\n   \"metadata\": {},\n   \"source\": [\n    \"## OpenAI API original usage\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"id\": \"80e9dae2\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Tweet: I loved the new Batman movie!\\n\",\n      \"Time consuming: 0.81s\\n\",\n      \"Sentiment: Positive\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import time\\n\",\n    \"import openai\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"def response_text(openai_resp):\\n\",\n    \"    return openai_resp['choices'][0]['message']['content']\\n\",\n    \"\\n\",\n    \"tweet = \\\"I loved the new Batman movie!\\\"\\n\",\n    \"\\n\",\n    \"# OpenAI API original usage\\n\",\n    \"start_time = time.time()\\n\",\n    \"response = openai.ChatCompletion.create(\\n\",\n    \"  model='gpt-3.5-turbo',\\n\",\n    \"  messages=[\\n\",\n    \"    {\\n\",\n    \"        'role': 'user',\\n\",\n    \"        'content': f\\\"Decide whether a Tweet's sentiment is positive, neutral, or negative.\\\\n\\\\nTweet: \\\\\\\"{tweet}\\\\\\\"\\\\nSentiment:\\\",\\n\",\n    \"    }\\n\",\n    \"  ],\\n\",\n    \")\\n\",\n    \"print(f'Tweet: {tweet}')\\n\",\n    \"print(\\\"Time consuming: {:.2f}s\\\".format(time.time() - start_time))\\n\",\n    \"print(f'Sentiment: {response_text(response)}\\\\n')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"9d871550\",\n   \"metadata\": {},\n   \"source\": [\n    \"## OpenAI API + GPTCache, exact match cache\\n\",\n    \"\\n\",\n    \"Initalize the cache to run GPTCache and import `openai` form `gptcache.adapter`, which will automatically set the map data manager to match the exact cahe, more details refer to [build your cache](https://gptcache.readthedocs.io/en/dev/usage.html#build-your-cache).\\n\",\n    \"\\n\",\n    \"And if you send the exact same tweets, the answer to the second tweet will be obtained from the cache without requesting ChatGPT again.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"id\": \"024484f3\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Cache loading.....\\n\",\n      \"Tweet: The weather today is neither good nor bad\\n\",\n      \"Time consuming: 0.62s\\n\",\n      \"Sentiment: neutral\\n\",\n      \"\\n\",\n      \"Tweet: The weather today is neither good nor bad\\n\",\n      \"Time consuming: 0.00s\\n\",\n      \"Sentiment: neutral\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import time\\n\",\n    \"\\n\",\n    \"def response_text(openai_resp):\\n\",\n    \"    return openai_resp['choices'][0]['message']['content']\\n\",\n    \"\\n\",\n    \"print(\\\"Cache loading.....\\\")\\n\",\n    \"\\n\",\n    \"# To use GPTCache, that's all you need\\n\",\n    \"# -------------------------------------------------\\n\",\n    \"from gptcache import cache\\n\",\n    \"from gptcache.adapter import openai\\n\",\n    \"\\n\",\n    \"cache.init()\\n\",\n    \"cache.set_openai_key()\\n\",\n    \"# -------------------------------------------------\\n\",\n    \"\\n\",\n    \"tweet = \\\"The weather today is neither good nor bad\\\"\\n\",\n    \"for _ in range(2):\\n\",\n    \"    start_time = time.time()\\n\",\n    \"    response = openai.ChatCompletion.create(\\n\",\n    \"      model='gpt-3.5-turbo',\\n\",\n    \"      messages=[\\n\",\n    \"        {\\n\",\n    \"            'role': 'user',\\n\",\n    \"            'content': f\\\"Decide whether a Tweet's sentiment is positive, neutral, or negative.\\\\n\\\\nTweet: \\\\\\\"{tweet}\\\\\\\"\\\\nSentiment:\\\",\\n\",\n    \"        }\\n\",\n    \"      ],\\n\",\n    \"    )\\n\",\n    \"    print(f'Tweet: {tweet}')\\n\",\n    \"    print(\\\"Time consuming: {:.2f}s\\\".format(time.time() - start_time))\\n\",\n    \"    print(f'Sentiment: {response_text(response)}\\\\n')\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"6f2ff699\",\n   \"metadata\": {},\n   \"source\": [\n    \"## OpenAI API + GPTCache, similar search cache\\n\",\n    \"\\n\",\n    \"We are going to use [DocArray's in-memory](https://docs.docarray.org/user_guide/storing/index_in_memory/) index to perform similarity search.\\n\",\n    \"\\n\",\n    \"Set the cache with `embedding_func` to generate embedding for the text, and `data_manager` to manager the cache data, `similarity_evaluation` to evaluate the similarities, more details refer to [build your cache](https://gptcache.readthedocs.io/en/dev/usage.html#build-your-cache).\\n\",\n    \"\\n\",\n    \"After obtaining an answer from ChatGPT in response to several similar tweets, the answers to subsequent questions can be retrieved from the cache without the need to request ChatGPT again.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"id\": \"fd1ff06e\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stderr\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"/Users/jinaai/Desktop/GPTCache/venv1/lib/python3.8/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\\n\",\n      \"  from .autonotebook import tqdm as notebook_tqdm\\n\",\n      \"None of PyTorch, TensorFlow >= 2.0, or Flax have been found. Models won't be available and only tokenizers, configuration and file/data utilities can be used.\\n\"\n     ]\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Cache loading.....\\n\",\n      \"Tweet: The new restaurant in town exceeded my expectations with its delectable cuisine and impeccable service\\n\",\n      \"Time consuming: 0.70s\\n\",\n      \"Sentiment:  Positive\\n\",\n      \"\\n\",\n      \"Tweet: New restaurant in town exceeded my expectations with its delectable cuisine and impeccable service\\n\",\n      \"Time consuming: 0.59s\\n\",\n      \"Sentiment:  Positive\\n\",\n      \"\\n\",\n      \"Tweet: The new restaurant exceeded my expectations with its delectable cuisine and impeccable service\\n\",\n      \"Time consuming: 0.74s\\n\",\n      \"Sentiment:  Positive\\n\",\n      \"\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"import time\\n\",\n    \"\\n\",\n    \"def response_text(openai_resp):\\n\",\n    \"    return openai_resp['choices'][0]['message']['content']\\n\",\n    \"\\n\",\n    \"from gptcache import cache\\n\",\n    \"from gptcache.adapter import openai\\n\",\n    \"from gptcache.embedding import Onnx\\n\",\n    \"from gptcache.manager import CacheBase, VectorBase, get_data_manager\\n\",\n    \"from gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\\n\",\n    \"\\n\",\n    \"print(\\\"Cache loading.....\\\")\\n\",\n    \"\\n\",\n    \"onnx = Onnx()\\n\",\n    \"data_manager = get_data_manager(CacheBase(\\\"sqlite\\\"), VectorBase(\\\"docarray\\\"))\\n\",\n    \"cache.init(\\n\",\n    \"    embedding_func=onnx.to_embeddings,\\n\",\n    \"    data_manager=data_manager,\\n\",\n    \"    similarity_evaluation=SearchDistanceEvaluation(),\\n\",\n    \"    )\\n\",\n    \"cache.set_openai_key()\\n\",\n    \"\\n\",\n    \"tweets = [\\n\",\n    \"    \\\"The new restaurant in town exceeded my expectations with its delectable cuisine and impeccable service\\\",\\n\",\n    \"    \\\"New restaurant in town exceeded my expectations with its delectable cuisine and impeccable service\\\",\\n\",\n    \"    \\\"The new restaurant exceeded my expectations with its delectable cuisine and impeccable service\\\",\\n\",\n    \"]\\n\",\n    \"\\n\",\n    \"for tweet in tweets:\\n\",\n    \"    start_time = time.time()\\n\",\n    \"    response = openai.ChatCompletion.create(\\n\",\n    \"        model='gpt-3.5-turbo',\\n\",\n    \"        messages=[\\n\",\n    \"            {\\n\",\n    \"                'role': 'user',\\n\",\n    \"                'content': f\\\"Decide whether a Tweet's sentiment is positive, neutral, or negative.\\\\n\\\\nTweet: \\\\\\\"{tweet}\\\\\\\"\\\\nSentiment:\\\",\\n\",\n    \"            }\\n\",\n    \"        ],\\n\",\n    \"    )\\n\",\n    \"    print(f'Tweet: {tweet}')\\n\",\n    \"    print(\\\"Time consuming: {:.2f}s\\\".format(time.time() - start_time))\\n\",\n    \"    print(f'Sentiment: {response_text(response)}\\\\n')\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.8.8\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 5\n}\n"
  },
  {
    "path": "docs/bootcamp/replicate/index.rst",
    "content": "Replicate\n=================\n\n.. toctree::\n   :maxdepth: 1\n   :caption: Contents:\n\n\n   visual_question_answering"
  },
  {
    "path": "docs/bootcamp/replicate/visual_question_answering.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"39354318\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Visual Question Answering\\n\",\n    \"\\n\",\n    \"This example will show you how to use GPTCache and Replicate to implement question answering about images, it uses BLIP model to answer free-form questions about images in natural language. Where the Replicate will be used to return the answer, and GPTCache will cache the generated answer so that the next time the same or similar question about the image is requested, it can be returned directly from the cache, which can improve efficiency and reduce costs.\\n\",\n    \"\\n\",\n    \"This bootcamp is divided into three parts: how to initialize gptcache, running the Replicate model to get the answer, and finally showing how to start the service with gradio. You can also try this example on [Google Colab](https://colab.research.google.com/drive/1W6dQfkX9p8cMfdIuWBVPi-iru7OlGPSH?usp=share_link).\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"b7abc8f5\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Initialize the gptcache\\n\",\n    \"\\n\",\n    \"Please [install gptcache](https://gptcache.readthedocs.io/en/latest/index.html#) first, then we can initialize the cache. There are two ways to initialize the cache, the first is to use the map cache (exact match cache) and the second is to use the database cache (similar search cache), it is more recommended to use the second one, but you have to install the related requirements.\\n\",\n    \"\\n\",\n    \"Before running the example, make sure the `REPLICATE_API_TOKEN` environment variable is set by executing `echo $REPLICATE_API_TOKEN`. If it is not already set, it can be set by using `export REPLICATE_API_TOKEN=YOUR_API_TOKEN` on Unix/Linux/MacOS systems or `set REPLICATE_API_TOKEN=YOUR_API_TOKEN` on Windows systems.\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"f78f8d1b\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 1. Init for exact match cache\\n\",\n    \"\\n\",\n    \"`cache.init` is used to initialize gptcache, the default is to use map to search for cached data, `pre_embedding_func` is used to pre-process the data inserted into the cache, and it will use the `get_input_str` method, more configuration refer to [initialize Cache](https://gptcache.readthedocs.io/en/latest/references/gptcache.html#module-gptcache.Cache).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"id\": \"9cd436f4\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"# from gptcache import cache\\n\",\n    \"# from gptcache.processor.pre import get_input_str\\n\",\n    \"# # init gptcache\\n\",\n    \"# cache.init(pre_embedding_func=get_input_str)\"\n   ]\n  },\n  {\n   \"attachments\": {},\n   \"cell_type\": \"markdown\",\n   \"id\": \"f88b92d6\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 2. Init for similar match cache\\n\",\n    \"\\n\",\n    \"When initializing gptcahe, the following four parameters are configured:\\n\",\n    \"\\n\",\n    \"- `pre_embedding_func`: \\n\",\n    \"\\n\",\n    \"   Pre-processing before extracting feature vectors, it will use the `get_input_image_file_name` method.\\n\",\n    \"\\n\",\n    \"- `embedding_func`:\\n\",\n    \"\\n\",\n    \"   The method to extract the image feature vector, you can refer to [gptcache.embedding](https://gptcache.readthedocs.io/en/latest/references/embedding.html) for options of image embedding methods.\\n\",\n    \"\\n\",\n    \"- `data_manager`:\\n\",\n    \"\\n\",\n    \"   DataManager for cache management. It is used for image feature vector, question and response answer in the example, it takes [Milvus](https://milvus.io/docs) (please make sure it is started), you can also configure other vector storage, refer to [VectorBase API](https://gptcache.readthedocs.io/en/latest/references/manager.html#module-gptcache.manager.vector_data).\\n\",\n    \"\\n\",\n    \"- `similarity_evaluation`:\\n\",\n    \"\\n\",\n    \"   The evaluation method after the cache hit. It evaluates the similarity between the current question and questions of cache hits. In this case, you can select `ExactMatchEvaluation`, `OnnxModelEvaluation`, `NumpyNormEvaluation` from [gptcache.similarity_evaluation](https://gptcache.readthedocs.io/en/latest/references/similarity_evaluation.html).\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"id\": \"5bb28fb8\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"from gptcache import cache\\n\",\n    \"from gptcache.adapter import openai\\n\",\n    \"from gptcache.processor.pre import get_input_image_file_name\\n\",\n    \"\\n\",\n    \"from gptcache.embedding import Timm\\n\",\n    \"from gptcache.similarity_evaluation.onnx import OnnxModelEvaluation\\n\",\n    \"from gptcache.manager import get_data_manager, CacheBase, VectorBase\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"timm = Timm()\\n\",\n    \"cache_base = CacheBase('sqlite')\\n\",\n    \"vector_base = VectorBase('milvus', host='localhost', port='19530', dimension=timm.dimension)\\n\",\n    \"data_manager = get_data_manager(cache_base, vector_base)\\n\",\n    \"\\n\",\n    \"cache.init(\\n\",\n    \"    pre_embedding_func=get_input_image_file_name,\\n\",\n    \"    embedding_func=timm.to_embeddings,\\n\",\n    \"    data_manager=data_manager,\\n\",\n    \"    similarity_evaluation=OnnxModelEvaluation(),\\n\",\n    \"    )\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"266888ef\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Run replicate blip\\n\",\n    \"\\n\",\n    \"Then run `replicate.run`, which will use blip model to answer free-form questions about images in natural language.\\n\",\n    \"\\n\",\n    \"Note that `replicate` here is imported from `gptcache.adapter.replicate`, which can be used to cache with gptcache at request time. Please download the [merlion.png](https://github.com/salesforce/LAVIS/raw/main/docs/_static/merlion.png) before running the following code.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"id\": \"a4e83890\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"singapore\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"from gptcache.adapter import replicate\\n\",\n    \"\\n\",\n    \"output = replicate.run(\\n\",\n    \"            \\\"andreasjansson/blip-2:4b32258c42e9efd4288bb9910bc532a69727f9acd26aa08e175713a0a857a608\\\",\\n\",\n    \"            input={\\\"image\\\": open(\\\"./merlion.png\\\", \\\"rb\\\"),\\n\",\n    \"                   \\\"question\\\": \\\"Which city is this photo taken?\\\"}\\n\",\n    \"        )\\n\",\n    \"print(output)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"15f7734a\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Start with gradio\\n\",\n    \"\\n\",\n    \"Finally, we can start a gradio application to answer the questions about images. First define the `vqa` method, then start the service with gradio, as shown below:\\n\",\n    \"\\n\",\n    \"![](../assets/vqa.png)\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"id\": \"319fcb7d\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"def vqa(img, question):\\n\",\n    \"    output = replicate.run(\\n\",\n    \"            \\\"andreasjansson/blip-2:4b32258c42e9efd4288bb9910bc532a69727f9acd26aa08e175713a0a857a608\\\",\\n\",\n    \"            input={\\\"image\\\": open(img, \\\"rb\\\"),\\n\",\n    \"                   \\\"question\\\": question}\\n\",\n    \"        )\\n\",\n    \"    return output\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"id\": \"65b9134a\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import gradio\\n\",\n    \"\\n\",\n    \"interface = gradio.Interface(vqa, \\n\",\n    \"                             [gradio.Image(source=\\\"upload\\\", type=\\\"filepath\\\"), gradio.Textbox(label=\\\"Question\\\")],\\n\",\n    \"                             gradio.Textbox(label=\\\"Answer\\\")\\n\",\n    \"                            )\\n\",\n    \"\\n\",\n    \"interface.launch(inline=True)\"\n   ]\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.9.12\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 5\n}\n"
  },
  {
    "path": "docs/bootcamp/streamlit/gptcache-streamlit-audio/.streamlit/config.toml",
    "content": "[theme]\nbase=\"dark\"\n"
  },
  {
    "path": "docs/bootcamp/streamlit/gptcache-streamlit-audio/README.md",
    "content": "# GPTCache Demo for OpenAI Audio Transcription\nThis project demonstrates how [GPTcache](https://github.com/zilliztech/GPTCache) can be used to save costs when using OpenAI’s audio transcription API. It provides a simple Streamlit app that allows users to input an audio file and see the corresponding transcribed text. The app uses a cache to store previously generated transcriptions and reuses them for the same audio file, thus avoiding making duplicate API calls.\n\n## Requirements\n* Python 3.6 or later \n* Dependencies listed in requirements.txt \n* OpenAI API key\n## Usage\n1. Clone the repository to your local machine\nInstall the required packages: pip install -r requirements.txt\n2. Run the app: streamlit run audio.py\n3. Open the app in your browser at http://localhost:8501\n4. Enter your OpenAI API key and upload an audio file to transcribe, then click “generate” to wait for the transcribed text to appear.\nIf a cache hit occurred, you should see a message like “cache” at the bottom of the transcribed text.\n\n<p align=\"center\">\n  <img src=\"./example.png\" alt=\"example\"/>\n</p>\n\n\n\n"
  },
  {
    "path": "docs/bootcamp/streamlit/gptcache-streamlit-audio/audio.py",
    "content": "import streamlit as st\nimport os\nimport uuid\n\nfrom gptcache import cache\nfrom gptcache.manager import get_data_manager, CacheBase, VectorBase, ObjectBase\nfrom gptcache.adapter import openai\nfrom gptcache.processor.pre import get_file_name\nfrom gptcache.embedding import Data2VecAudio\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\n\n\n@st.cache_resource\ndef initialize_configuration():\n    data2vec = Data2VecAudio()\n    data_manager = get_data_manager(CacheBase('sqlite', sql_url='sqlite:///./local/gptcache20.db'),\n                                    VectorBase('faiss', dimension=data2vec.dimension, index_path='./local/faiss20.index'),\n                                    ObjectBase('local', path='./local'))\n    cache.init(\n        pre_embedding_func=get_file_name,\n        embedding_func=data2vec.to_embeddings,\n        data_manager=data_manager,\n        similarity_evaluation=SearchDistanceEvaluation(),\n        )\n    return data_manager\n\ndata_manager = initialize_configuration()\n\ndef api_call(audio_bytes, open_ai_key):\n    os.environ['OPENAI_API_KEY'] =  open_ai_key\n    os.environ['CURL_CA_BUNDLE'] = ''\n    os.environ['KMP_DUPLICATE_LIB_OK']='TRUE'\n    cache.set_openai_key()\n    transcript = openai.Audio.transcribe('whisper-1', audio_bytes, api_key=open_ai_key)\n    is_cached = transcript.get('gptcache', False)\n    return transcript['text'], is_cached\n\ndef main():\n\n    st.title('GPTCache for Audio Demo')\n    open_ai_key = st.text_input('OpenAI key')\n    audio_file = st.file_uploader('Choose an audio file (.mp3, .wav, or .ogg)', type=['mp3', 'wav', 'ogg'])\n\n    if st.button('generate', key='button'):\n        file_extension = os.path.splitext(audio_file.name)[1]  # Get the extension of the uploaded file\n        random_filename = str(uuid.uuid4()) + file_extension\n        with open(random_filename, 'wb') as f:\n            f.write(audio_file.getbuffer())\n        audio_file_handler = open(random_filename, 'rb')\n        text, is_cached = api_call(audio_file_handler, open_ai_key)\n        st.write(text)\n        os.remove(random_filename)\n\n        if is_cached:\n            st.markdown('<div style=\"display: flex; align-items: center; justify-content: center; \\\n                    background-color: green; padding: 10px; color: white; font-weight: bold; border-radius: \\\n                    5px; margin: 10px auto; max-width: 100px;\">cache</div>', unsafe_allow_html=True)\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "docs/bootcamp/streamlit/gptcache-streamlit-audio/requirements.txt",
    "content": "gptcache\npillow\nstreamlit\ntorch\nfaiss-cpu\ntorchaudio\ntransformers\nsqlalchemy\n"
  },
  {
    "path": "docs/bootcamp/streamlit/gptcache-streamlit-image/README.md",
    "content": "# GPTCache Demo for OpenAI Image Generation\nThis project demonstrates how [GPTcache](https://github.com/zilliztech/GPTCache) can be used to save costs when using OpenAI’s DALL-E API. It provides a simple Streamlit app that allows users to input a prompt and see the corresponding DALL-E output image. The app uses a cache to store previously generated images and reuses them for the same prompt, thus avoiding making duplicate API calls. There is an online [demo](https://gptcache-openai-image.streamlit.app/) hosted for preview.\n\n## Requirements\n* Python 3.6 or later \n* Dependencies listed in requirements.txt \n* OpenAI API key\n## Usage\n1. Clone the repository to your local machine\nInstall the required packages: pip install -r requirements.txt\n2. Run the app: streamlit run imagen.py\n3. Open the app in your browser at http://localhost:8501\n4. Enter your OpenAI key and prompt then click “generate” to\nwait for the DALL-E output image to appear.\nIf a cache hit occurred, you should see a message like “cache” at the bottom of the image.\n\n<p align=\"center\">\n  <img src=\"./example.png\" alt=\"example\"/>\n</p>\n\n\n\n"
  },
  {
    "path": "docs/bootcamp/streamlit/gptcache-streamlit-image/imagen.py",
    "content": "import streamlit as st\nfrom PIL import Image\nimport os\nimport io\nimport base64\nfrom io import BytesIO\nimport requests\n\nfrom gptcache import cache\nfrom gptcache.manager import get_data_manager, CacheBase, VectorBase, ObjectBase\nfrom gptcache.adapter import openai\nfrom gptcache.processor.pre import get_prompt\nfrom gptcache.embedding import Onnx\nfrom gptcache.similarity_evaluation import ExactMatchEvaluation\n\nst.title('GPTCache for Image Demo')\n\n@st.cache_resource\ndef initialize_configuration():\n    onnx = Onnx()\n    data_manager = get_data_manager(CacheBase('sqlite', sql_url='sqlite:///./local/gptcache10.db'),\n                                    VectorBase('faiss', dimension=onnx.dimension, index_path='./local/faiss10.index'),\n                                    ObjectBase('local', path='./local'))\n    cache.init(\n        pre_embedding_func=get_prompt,\n        embedding_func=onnx.to_embeddings,\n        data_manager=data_manager,\n        similarity_evaluation=ExactMatchEvaluation(),\n        )\n    return data_manager\n\ndata_manager = initialize_configuration()\n\ndef api_call(text_input, open_ai_key):\n    os.environ['CURL_CA_BUNDLE'] = ''\n    response = openai.Image.create(\n      prompt=text_input,\n      n=1,\n      size='256x256',\n      api_key=open_ai_key\n    )\n    image_url = response['data'][0]['url']\n\n    is_cached = response.get('gptcache', False)\n    if is_cached is False:\n        response = requests.get(image_url)\n        img = Image.open(BytesIO(response.content))\n    else:\n        img = Image.open(image_url)\n    return img, is_cached\n\ndef main():\n    open_ai_key = st.text_input('OpenAI key:')\n    text_input = st.text_input('prompt:')\n\n    if st.button('generate', key='button'):\n        try:\n            image, is_cached = api_call(text_input, open_ai_key)\n            width, height = image.size\n            desired_width = 500\n            desired_height = int(height * desired_width / width)\n            resized_image = image.resize((desired_width, desired_height))\n            img_bytes = io.BytesIO()\n            resized_image.save(img_bytes, format='PNG')\n            img_str = base64.b64encode(img_bytes.getvalue()).decode()\n\n            st.markdown(\n                f'<div style=\"display: flex; justify-content: center;\"><img src=\"data:image/png;base64,{img_str}\" \\\n                        alt=\"Uploaded Image\" width=\"{desired_width}\"></div>',\n                unsafe_allow_html=True\n            )\n\n            if is_cached:\n                st.markdown('<div style=\"display: flex; align-items: center; justify-content: center; background-color: \\\n                        green; padding: 10px; color: white; font-weight: bold; border-radius: 5px; margin: 10px auto; \\\n                        max-width: 100px;\">cache</div>', unsafe_allow_html=True)\n        except Exception as e:\n            st.error('invalid OpenAI API key or inappropriate prompt rejected by OpenAI.')\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "docs/bootcamp/streamlit/gptcache-streamlit-image/requirements.txt",
    "content": "gptcache\npillow\nstreamlit\nonnxruntime\nfaiss-cpu\ntransformers\nsqlalchemy\n"
  },
  {
    "path": "docs/bootcamp/temperature/chat.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"82e45532\",\n   \"metadata\": {},\n   \"source\": [\n    \"# OpenAI Chat with Temperature\\n\",\n    \"\\n\",\n    \"Temperature in deep learning is a parameter usually used to adjust the probability distribution of the predicted outputs. It is also known as softmax temperature or softmax scaling. In simple terms, it controls the level of confidence that a neural network has in its predictions. It helps to **increase the diversity of the model's outputs**.\\n\",\n    \"\\n\",\n    \"For temperature in OpenAI chat request, \\\"higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic\\\" as explained in [OpenAI documentation](https://platform.openai.com/docs/api-reference/chat/create).\\n\",\n    \"\\n\",\n    \"GPTCache also enables a similar `temperature` parameter at request, in range of [0.0, 2.0], which works at two stages:\\n\",\n    \"- control the possibility of sending request to OpenAI directly without searching in cache\\n\",\n    \"- affect the selection of final answer from potential answers retrieved from cache\\n\",\n    \"\\n\",\n    \"Let us try the adapted OpenAI Chat API with GPTCache enabled and see how `temperature` affects output given the same question. \\n\",\n    \"\\n\",\n    \"\\n\",\n    \"## Set Cache\\n\",\n    \"\\n\",\n    \"Initiate GPTCache with preferred configurations and modules.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"id\": \"c6e46737\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import time\\n\",\n    \"\\n\",\n    \"from gptcache import cache, Config\\n\",\n    \"from gptcache.manager import manager_factory\\n\",\n    \"from gptcache.embedding import Onnx\\n\",\n    \"from gptcache.processor.post import temperature_softmax\\n\",\n    \"from gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\\n\",\n    \"from gptcache.adapter import openai\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"onnx = Onnx()\\n\",\n    \"data_manager = manager_factory(\\\"sqlite,faiss\\\", vector_params={\\\"dimension\\\": onnx.dimension})\\n\",\n    \"\\n\",\n    \"cache.init(\\n\",\n    \"    embedding_func=onnx.to_embeddings,\\n\",\n    \"    data_manager=data_manager,\\n\",\n    \"    similarity_evaluation=SearchDistanceEvaluation(),\\n\",\n    \"    post_process_messages_func=temperature_softmax\\n\",\n    \"    )\\n\",\n    \"# cache.config = Config(similarity_threshold=0.2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"a47ceff8\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Getting Started\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"id\": \"15c6dfee\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"cache.set_openai_key()\\n\",\n    \"question = 'what is github'\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"a7517ddd\",\n   \"metadata\": {},\n   \"source\": [\n    \"### default: temperature=0.0\\n\",\n    \"\\n\",\n    \"If temperature is not specified in request, it will use the default value 0. When temperature is 0, it will firstly search through cache and return the most confident answer retrieved from cache. If there is no satisfactory answer available in cache, it will continue on sending request to OpenAI.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"id\": \"04683730\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Time elapsed: 7.906\\n\",\n      \"GitHub is a web-based platform that is used to manage, store, and share software development projects. It offers a version control system and collaboration tools for developers to work together on code and other digital assets. GitHub is popular in the open-source community, but it is also used by companies to manage their proprietary code. It allows developers to easily contribute to projects, track changes, and manage project workflows. It also provides tools for issue tracking, documentation, and continuous integration and deployment.\\n\",\n      \"Time elapsed: 0.22\\n\",\n      \"GitHub is a web-based platform that is used to manage, store, and share software development projects. It offers a version control system and collaboration tools for developers to work together on code and other digital assets. GitHub is popular in the open-source community, but it is also used by companies to manage their proprietary code. It allows developers to easily contribute to projects, track changes, and manage project workflows. It also provides tools for issue tracking, documentation, and continuous integration and deployment.\\n\",\n      \"Time elapsed: 0.239\\n\",\n      \"GitHub is a web-based platform that is used to manage, store, and share software development projects. It offers a version control system and collaboration tools for developers to work together on code and other digital assets. GitHub is popular in the open-source community, but it is also used by companies to manage their proprietary code. It allows developers to easily contribute to projects, track changes, and manage project workflows. It also provides tools for issue tracking, documentation, and continuous integration and deployment.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"for _ in range(3):\\n\",\n    \"    # use cache without temperature (temperature=0.0)\\n\",\n    \"    start = time.time()\\n\",\n    \"    response = openai.ChatCompletion.create(\\n\",\n    \"        model='gpt-3.5-turbo',\\n\",\n    \"        messages=[{\\n\",\n    \"            'role': 'user',\\n\",\n    \"            'content': question\\n\",\n    \"        }],\\n\",\n    \"    )\\n\",\n    \"    print('Time elapsed:', round(time.time() - start, 3))\\n\",\n    \"    print(response[\\\"choices\\\"][0][\\\"message\\\"][\\\"content\\\"])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"85af6b19\",\n   \"metadata\": {},\n   \"source\": [\n    \"### maximum: temperature=2.0\\n\",\n    \"\\n\",\n    \"When temperature is at its maximum value of 2, it will skip searching cache and send request to OpenAI directly.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"id\": \"18301cae\",\n   \"metadata\": {\n    \"scrolled\": true\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Time elapsed: 2.675\\n\",\n      \"GitHub is a web-based platform used for version control and collaboration that helps developers store and manage their code repositories online. It allows multiple developers to work collabor\\n\",\n      \"Time elapsed: 2.667\\n\",\n      \"GitHub is a web-based platform used for version control and collaboration in software development projects. It provides a centralized location for developers to manage and store their code\\n\",\n      \"Time elapsed: 2.56\\n\",\n      \"GitHub is a web-based platform where developers can store, share, and collaborate on their code projects. It is also a version control system, meaning it\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# use cache with temperature 2.0\\n\",\n    \"for _ in range(3):\\n\",\n    \"    start = time.time()\\n\",\n    \"    response = openai.ChatCompletion.create(\\n\",\n    \"        model='gpt-3.5-turbo',\\n\",\n    \"        temperature=2.0,\\n\",\n    \"        max_tokens=30,\\n\",\n    \"        messages=[{\\n\",\n    \"            'role': 'user',\\n\",\n    \"            'content': question\\n\",\n    \"        }],\\n\",\n    \"    )\\n\",\n    \"    print('Time elapsed:', round(time.time() - start, 3))\\n\",\n    \"    print(response[\\\"choices\\\"][0][\\\"message\\\"][\\\"content\\\"])\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"440b120a\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 0.0<temperature<2.0\\n\",\n    \"\\n\",\n    \"When temperature is between 0 and 2, a higher value will increase the probability of skipping cache search and makes the output more random.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 8,\n   \"id\": \"10515319\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Time elapsed: 0.197\\n\",\n      \"GitHub is a web-based platform used for version control and collaboration that helps developers store and manage their code repositories online. It allows multiple developers to work collabor\\n\",\n      \"Time elapsed: 6.116\\n\",\n      \"GitHub is a web-based platform that hosts and manages software development projects using the Git version control system. It provides a collaborative environment for developers to work together on coding projects, including features such as task management, code review, and bug tracking. GitHub enables developers to share their code with the rest of the community, discover new projects and contribute to them, collaborate with others on open-source software, and showcase their work to potential employers.\\n\",\n      \"Time elapsed: 6.757\\n\",\n      \"GitHub is a web-based platform used for version control and collaboration of software development projects. It provides tools for developers to manage and store their code, as well as to collaborate with others through features such as pull requests, code reviews, and issue tracking. GitHub has become a popular platform for open-source projects and offers various features such as version control, documentation, bug tracking, task management, wikis, and more. It is widely used in the technology industry and by developers all over the world.\\n\"\n     ]\n    }\n   ],\n   \"source\": [\n    \"# use cache with temperature 1.0\\n\",\n    \"for _ in range(3):\\n\",\n    \"    start = time.time()\\n\",\n    \"    response = openai.ChatCompletion.create(\\n\",\n    \"        model='gpt-3.5-turbo',\\n\",\n    \"        temperature=1.0,\\n\",\n    \"        messages=[{\\n\",\n    \"            'role': 'user',\\n\",\n    \"            'content': question\\n\",\n    \"        }],\\n\",\n    \"    )\\n\",\n    \"    print('Time elapsed:', round(time.time() - start, 3))\\n\",\n    \"    print(response[\\\"choices\\\"][0][\\\"message\\\"][\\\"content\\\"])\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"id\": \"da9d46f3\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"develop\",\n   \"language\": \"python\",\n   \"name\": \"develop\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.8.12\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 5\n}\n"
  },
  {
    "path": "docs/bootcamp/temperature/create_image.ipynb",
    "content": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"2215b430\",\n   \"metadata\": {},\n   \"source\": [\n    \"# OpenAI Image Creation with Temperature\\n\",\n    \"\\n\",\n    \"Temperature in deep learning is a parameter usually used to adjust the probability distribution of the predicted outputs. It is also known as softmax temperature or softmax scaling. In simple terms, it controls the level of confidence that a neural network has in its predictions. It helps to **increase the diversity of the model's outputs**.\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"GPTCache also enables a similar `temperature` parameter at request, in range of [0.0, 2.0], which works at two stages:\\n\",\n    \"- control the possibility of sending request to OpenAI directly without searching in cache\\n\",\n    \"- affect the selection of final answer from potential answers retrieved from cache\\n\",\n    \"\\n\",\n    \"Let us try the adapted OpenAI Chat API with GPTCache enabled and see how `temperature` affects output given the same question. \\n\",\n    \"\\n\",\n    \"\\n\",\n    \"## Set Cache\\n\",\n    \"\\n\",\n    \"Initiate GPTCache with preferred configurations and modules.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"id\": \"c6e46737\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"import time\\n\",\n    \"from IPython import display\\n\",\n    \"from base64 import b64decode\\n\",\n    \"\\n\",\n    \"from gptcache import cache, Config\\n\",\n    \"from gptcache.manager import manager_factory\\n\",\n    \"from gptcache.embedding import Onnx\\n\",\n    \"from gptcache.processor.pre import get_prompt\\n\",\n    \"from gptcache.processor.post import temperature_softmax\\n\",\n    \"from gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\\n\",\n    \"from gptcache.adapter import openai\\n\",\n    \"\\n\",\n    \"\\n\",\n    \"onnx = Onnx()\\n\",\n    \"data_manager = manager_factory(\\\"sqlite,faiss,local\\\", vector_params={\\\"dimension\\\": onnx.dimension})\\n\",\n    \"\\n\",\n    \"cache.init(\\n\",\n    \"    pre_embedding_func=get_prompt,\\n\",\n    \"    embedding_func=onnx.to_embeddings,\\n\",\n    \"    data_manager=data_manager,\\n\",\n    \"    similarity_evaluation=SearchDistanceEvaluation(),\\n\",\n    \"    post_process_messages_func=temperature_softmax\\n\",\n    \"    )\\n\",\n    \"# cache.config = Config(similarity_threshold=0.2)\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"079328e9\",\n   \"metadata\": {},\n   \"source\": [\n    \"## Getting Started\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"id\": \"83a2969c\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n    \"prompt = 'a white siamese cat'\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"21db0aa7\",\n   \"metadata\": {},\n   \"source\": [\n    \"### default: temperature=0.0\\n\",\n    \"\\n\",\n    \"If temperature is not specified in request, it will use the default value 0. When temperature is 0, it will firstly search through cache and return the most confident answer retrieved from cache. If there is no satisfactory answer available in cache, it will continue on sending request to OpenAI.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 3,\n   \"id\": \"04683730\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Time elapsed: 5.716\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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AAAA/wABAP8BAgIBAP8B/QEAAP8AAAABAAAAAQABAAAAAQABAQEAAQEAAAEAAAEAAQABAP8A//////7+/f3//v7+/v/+/v7//wAA//////8AAQADAAEBAgACAwICAgMBAQIAAgEAAQIBAAD/AAACAAEAAQEBAQIAAP//AAABAAEAAQEAAAAAAQEEAwQBAAMB//7/AAABAgMAAPsBAAD//v8A//79/f0AAQD+/v4CAgP9/f3+/f0BAwMEAwQA/gD18/T+/gEICQkBAgMEBwYICAj+/v4BAAH8/f4AAAADBAP//wMCAgMBAv8DAQX9Af3+/wD9/f//AP77+PcBBAP+/v4BAwINDhQS9/Tx8OcAAP4AAQD/AQAAAQAAAAEAAf4A/v4AAQEA////AAD/AP////8A/v7+/v7//f/+/v////7+/v7+//8A/v////8BAAD/AAAAAAAAAAD/AP8BAAD/AAEAAP//AAABAAEAAP4AAAEAAAAAAAD/AP7//wEAAP8A/wD/AP8A/gABAQAAAAD//wAAAP///wAA/wAAAQAB/wH/AAAAAP8AAQEAAAD//wEBAP//AAABAAH/AP8AAQD/AAEBAAAAAAABAQEAAAAAAQAAAAEBAAAAAAAAAQEBAAABAAH/AQABAAAA/wD/AAABAQAB/wEAAf8A/wEAAAAAAAD/AgAA/wEAAQAAAAAAAAAAAQD/AP8BAAH/AAAAAP8AAAABAAH+/wABAP//AAABAAAA/wAAAgD/AAAA/wAAAP8BAAH/AQAA/wAAAAAAAP8AAAD/Af8A/wEAAQAAAAD///8CAQIA/wEAAQEBAQICAgIAAQD9/f39/v/+//8CAQAEBAQFBgYEBgYCAgH//wH//wAGBwcHBwgHBgYEBAQBAAEEAP////3+/v39/v7+/v7+//7/AAL//wAAAQEBAQEBAgEDAwMCAQIDAQAC//8AAf//////AP8CAAEAAP8AAAEAAP8AAQAB/wEAAP8A/wEAAP//AAH/AP8AAAAAAAEAAf8B/wAAAAD//wAAAAAAAf8AAQEB/wEBAQABAAEBAP8AAAEBAQABAQAAAQEAAQEAAAABAAD/AAAAAP8B//7//f79/v3+/v39/v3+/v79/f7/AgP/AQD//wEAAAEBAgEBAAIBAQICAQEBAf8B/gH/BAABAAEBAAACAAEBAQABAQD+AQEAAQIBAP8BBAMCBAMDBAIEAwYB9vb4AwICAAAB//8A/Pz8AQD+////AQAA/v3+///6AP8EAgQFAQID+/r6BgUGCQoL/f/+9/f2AwQEAvv59vPw/v//BwYJAgAC/f7+/QkICw0MAwMC/f3+//7/AgME//7+/v//BgUF/P38Av/+AQIE/v39BAUHExMb9vXv/Pz2/wD/AP//AP8AAAAA//8A/wAB///+AAAAAAD/AP8A/v7//f8A/v7+/v7///8A/v8B/v8A/////wAAAAD//wAAAAAAAAABAAH/Af8AAAAAAAD/AAAAAQAAAAD/AAABAAAAAP//AAD///8BAAD/AP///wAAAAAAAAAA//8A/wAAAQAA/wAA////AQAA/wACAAH/AAEBAP8B/wD/AP4BAAEAAAAB/wEBAAD//wAAAf8AAAEA/wAAAAAAAf8AAAAAAQABAAD/AAEBAAAAAQD//wABAAH/AQAA//8AAAAAAQEAAAAAAAD/AP8AAAEAAAAA/wAAAf///wABAQAA/wAAAAAAAAAAAQABAAAAAf8AAAAB/wEAAP8AAAD//wAAAQAB////AAEAAP7//wABAQH/AAAAAAD/AAD/AAABAP//AAEBAAEBAQABAAEAAAD/AAABAQAAAAAAAAEBAgABAQICAQIBAwIC///+/Pz6/Pz7/P39AP8AAQEBAwIDAQMCAP8AAwQEBQQFBwcGBggIBQcHAAIBAv///v7//v3+/v39/P/+/v////8AAAEAAAABAAACAAABAAECAgMCAwACAv8AAP8AAP8AAAEAAAEAAP8A/wD/AAABAAAAAP8AAAEAAAAAAAAAAAAAAQABAAAAAAAAAAAAAAAAAAAA/wABAAEAAAABAAD/AAAAAAAAAAEAAAAAAQAAAAABAAEBAAEAAAEBAQEBAAEAAAAAAAAB/////v7+/f3+/P39/P7+/f3+/v7//f7+//7/AAD//wIAAQECAQICAgIBAgAAAQAA/wIAAQECAgEBAgECAQAAAf8BAAAAAP8BAAAAAAIDAwYFBwEAAwECAwQFBQcGBfr6+gICAgD+/wEB//v6+v///wD/AAIAAQIAAf/9/v36+gQBAgcHCP7+/vv8/AkKCggKCf39/QD//wUGBwUFBvr5+Pv7+AgHBgcGB/39/vj4+fz7/AICAgMFBQMEBAQFBP79/f36+vz6+QD+/f38+/r5+QYGCQ0PFf7+AP///wAAAP//AP8A/wAAAAD//wAAAQD/AP//Af/////////+/v7+//3+/f//AP//AP//AP//Af8AAAAAAP8AAAAA/wABAAAAAQAAAQAA/wAAAAAAAAAAAAD/AAD/AP8A//8AAP//Af8AAP////4AAAD/AP//AP///wD//wD/AP8AAAD/AAEBAQABAQAAAAEAAQEA//8AAAAAAQEBAQEBAQAAAAD///8A/wEAAAAAAAD/AAEAAAEAAAABAAEBAAAB/wABAQEBAQEAAAABAgEBAQAAAQAAAQEBAAECAQEAAgEAAQECAQECAQECAgEBAQIBAQEBAgEBAAABAQEAAgAAAQAAAAAAAAABAQABAAABAAH/AP8AAAAAAAAAAf//AP8BAP7///7/AAAA/v/+/v/+//7+//7/AP3+/v8A///////+/v///v8A/gAAAQAAAAEAAQABAAEBAAECAgIBAgMCAwICAgEBAf38/P38/f38/f7//gEAAQEBAQEBAgEBAgMCAgYGBQcHBgcHCAYGBgEAAgT////+/v39/fz+/f39/v3///8AAAAAAAAAAAABAAECAQEDAQMCAgQBAQIB/////wAAAAAAAP//AP8BAAH+AP8AAAAAAAAAAP8AAAABAAD/AP8BAAAAAAAAAQH/AP8A/wD///8AAAEAAP8AAAAAAAEAAQEA/wAAAQAAAAAAAQAAAAEBAAAA/wEAAAEAAAABAQEAAAEAAAAAAP//AAD+/v7+/v3+/v79/f3+/v3//f//A/4BAAEBAQACAgECAgMDAgMBAwIBAgEA/gEBAQEAAQICAgEAAAIAAgD//f///wD//wAAAAABAAEEBAUCAgQAAAIAAAEEBgX8/f3//v/+/v4CAAMFBAb+/v0BAgH+/v4CAQECAQP+/v75+fYEBQYDBQMCAwT9+vr/AQEGBQYBAgP+/v4ICwsEDAP//v/7+/z29/UCBAUFBAQB/wD6/f3/AP8BAAAFBAT8/v4CAQH+/v/++/wDBQgDAwb+//8MDBLw7en+/PX+/wAAAAD///8AAP//AP//AP/////////+AP/////+/v7+/v7+/wD+/v/+/v7///7+////////AP8AAAD/AAAAAP8B/wH/AP8AAAAA////AAAAAAAA/wD/AAAB//8AAAD//wAAAf//AAEAAP//AAAAAAEAAAD/AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEBAQAAAAAAAQAAAAEAAf8AAAABAQAAAAABAAEAAAAAAAAAAQECAQEAAQAAAAAAAQECAAEAAQEAAQAAAAAAAAAAAAEA////AQABAAEAAAH/////AQABAAAAAQEAAAEAAP8B/gH/AAAAAP8BAAH/AAEBAQD+//8BAQH//wABAv8A/wEA/wD/AAAAAf8AAAAAAAEAAP///wEAAAAAAP///wAAAP8B/wH+//8BAAAAAQAAAAAB/wD/Af4BAQEAAQEAAQAAAQEBAQEBAwEDAwMEAwMCAwP+/v78/Pv7+/v9/f4A/wAAAQEBAQEBAQACAgMEAwMGBwcHCAcGBgf/AQAE//////79/v79/v78//7////+///+AAACAAAAAQABAQICAQMCAAMDAAEB/wAB/wAAAAAB/wAAAQAB/wH/AQAA//7/AAD/AQEA/wAA/////wAAAAAA/wAA////AP8AAAAAAAAAAQAAAAABAAH/AQAAAQD/AQAAAAAAAAAAAQAAAQAAAQEC/wH8AQH/AQEAAAAAAQABAAAA//8A///+/v7+/v39/v79/v/9///+/wD+AAAAAAEAAQEAAQIBAgICAwQEAgIDAAABAAABAAEBAQABAAADAAD/AAAAAQIAAf8AAQEB/wABAAAAAgID/v4AAAEB/wAAAwQHAgH6/f36/Pr5/Pn5AgIBAgMC/fz8AQD//wAD/wEB/wAAAgAAAP7+//0BAgMAAAABBAMGAgQE/v///v7/+vX3/AQEBQgICQ4LAgEC/fz9AQEBAQEB///+/vv7+vn5AAD+BAQFAgIDAgIBAQEC//38Av4F/f4BCAkMCw0P8u/1AAEAAAAAAAAAAP8AAAABAP///wEBAAD/AP7//v7+/v///P3+/v7//v7///4A/v7/AAD//wD//wAA/wAAAQABAf8A/wD/AAD/AP8B/wAAAAAAAP8A/wAAAAD///8AAAEA/wAAAP8A////AAAAAAAAAQD/AAAAAAAAAAEAAAAAAAAAAAEAAAABAAAAAAEAAP8A/wABAQAAAAAAAQEAAAABAAAAAAEAAAAAAAAAAQEBAAAAAQEBAQEAAQECAAAAAQEBAAEAAQAB/wD/AQABAAAAAAAA/wAAAgAAAAAB/wD/AP8BAQAAAAEAAQAAAP8B/wAAAAIAAf8AAAEB////AAEAAf8AAQEBAAD/AQAAAQABAAH/AAABAAAA/wAAAP8AAAH/AQAB/wAA//7/AAAAAP///wAA//8AAQAA/wD/AAABAQD/AQAAAQAAAP8AAAIAAf8BAAL+AAECAgEAAgMBAwQDAwEB/v79/P38+/r7/f39/v7+AP8AAQAAAAAAAQIAAwQEBQUFBwcHBgYGAQACBP////7+/f78/P38/f7+/f/+AP///wEA/wAAAAEBAQIBAgICAwIBBAABAv//AP/9/wAE/wH/Af8BAAAAAQAA/wABAQD/AP///wAA/wEAAAAAAP7//wD//wAAAP8AAAAA/wAAAP8AAAEAAP//AAABAAAAAAEBAAEBAAAAAAEBAAAAAAEAAAEBAgAA/gAAAAAAAAABAAH/AAAA/wD///8A//7//gD//gD//wD/AAAAAAABAAEAAAECAgMBAgMCAwMCAwECAv8AAP8AAAL/AP7//wAA/gEBAQAAAf8AAf4BAQABAQABAQIBAgUBBAD+AQQCAwACAv7//wICA/j5+gEAAAH//v/9AP7//v///QABAQECAgIBAAMCBAEBAQICAQICAQEAAAIEA/0A/QEAAwQFBAEBAv3+//39/gL7+/4EBAEDAwMFBf7+//z++wYFBgEAAQEAAP79+/39/AEBAgD//wD+/gP9/vv49wMKCf8CAgwNEfDu6AAA/QAAAAD/AP//AAAAAAD/AAD+///+AP7//v7///39AP7+///+AP//AP3///7////////+AAD/AAEBAAAA////AP8AAAAAAAAA/wD/AP8AAAAAAAAAAP//AAAAAAD/AAAAAAD/AAAAAAEAAAABAAD/AQAB/wD/AQAAAAEBAQAA/wAAAQEBAP8AAAEBAQABAQEA/wAAAQEB/wD/AQEBAP8AAQAA/wABAQEAAAEBAQEAAAEBAQABAQEBAQIBAf8AAAEBAQAAAAEAAQEAAQAA/wAAAf8A////AAEAAAEAAf8BAAEAAP8BAAAAAAH/AP7/AQAB/gD/AP//AAICAf//AAABAAIAAAH/AP8BAAAAAAD/AQAB/wD/AAAAAAABAAH/AP8AAAEA/wABAf8A//8AAQD//wAAAP8A/wAAAQD//gD/Af8BAAEAAAEAAAD+/wMAAQACAgAAAAAAAAH//wMCAQIDAv////37/Pv7+/38/f7//wAAAP8AAAEBAQEBAQICAwYEBQcGBwYGBwMEAwT+/v39/v39/f38/vz+/f3+//3//wD/Av8B/wEAAAABAQIBAQIBAgIBAAL+/wH/////AP//AQEAAAAA//8AAAAAAAD/Af8A/wH//wAAAP///wABAQD//wH///4A//8AAAAAAAD/AAD///8AAAAA//8AAAD///8A//8BAQAAAAABAQD/AP8B/wABAAEBAAEBAAABAAAAAAAAAP8AAP///v8A/////wD/AP4AAf8AAAABAQAAAQIC/wICAwIDAwICAwMBAgP/AQH//v/9AP/+AgED/gEBAgAB//8AAAEAAQIAAQABAgACAAH6+vwKBwkAAQIA/gD+/v4CAQEBAQEBAAACAwP+/f0BAAAEBAX8/vv5+vcF/wcAAv0FBQYCAf39/v38+/wE/f3+///7AfgCAwUFCQcBAgMFBgUDAwMAAAD5+/gBAQEJCAoDAAP5+fgEAgMAAgIHBQn5+fn//f3+/gD+//sBAP4BBAUA/QX+AgALDhMKDRL28uwB/wAAAAEAAAAA/wAAAAD/AAD/AP///wD+/gD+/v/9/v/+/v/+/v/9/v7//wD//gD/AAAA/wD/AAAA/wAAAQD/AAAA//8AAAAAAAAA/wH/AP8AAAAAAAEBAAD/AAAA//8AAAEBAQEBAAAAAAD/AgAB/wEAAQEBAQEAAQAAAAAAAQIBAQABAAAAAAABAQEA/wEBAQEAAAEAAv8A/wEBAAD/AAABAQIBAAAAAgABAAEBAQAAAQICAQEBAQEBAAEBAP8AAQEBAAAAAAAAAAL///4BAAH/AAAAAQAAAAABAAAAAAABAAAAAAAAAQAC/wAA/wL/AP8AAf8AAAEBAAD/AP8CAAH/AAEBAP8AAAAAAP//AAEBAAAAAAAAAAAAAQEB////AAEAAv8A/gEAAP//AQEA/////wAAAP8AAAAAAf///gABAf8BAQEBAAH+/gAC/v7//v0A/wMAAAABAAECAAH//f76/Pr5+vn6+vn9/fz+//4C/wIAAAAB/wECAQEEBAMHBwYGBgYFBgYE/v7//v7+/f79/f38/f79/v7+//////8BAP//AAEAAQEAAQICAgIEAgME/wICAAH+AAAA/wAAAQAA/wAAAAAAAAAAAf8A/wD/AAD/AAAAAAEA//4AAAAAAQEBAAD///8BAQEAAf/+/wEA//8A/wAAAAABAQEBAQEBAQEAAAAAAAEAAQAAAAAAAAEAAQEAAQEBAQD/AQEA/wAA//8AAAAA//7////+AP8AAP8AAQEAAP8BAgIA/wECAwMCAwQDAgMDAQMD/v4A/fz9/gMAAwEB//8BA/8CAQICAAEAAQAB/wAB/wABAwMFBQQFAwEDAAAA/P39/f38/Pz9AQEBAgID/P8A/v//Af7//AH9AQEABAUFAgEAAgQD///+/v0ABgcG/P3+/fz7AQEDAAH9/wEA+PX8BwkJ+/7+/QL7AP38AQEC/f798vf3AwMFBAUEAQEB//z9+/39AQAB/v///v79+/r6/AMBBwsC/Pr4AwEIAAEGFBcf5vf0+/71AAAA/wAAAAD/AAAAAAD/AP8AAP4A//7//f39/v7//QD//f///v7+/v///v//AP4AAAEAAAAAAAD/AAAAAP8AAAAAAAAA/wAAAAD+//8BAQEAAAD//wEBAP8AAAEBAQEBAAABAAD/AAABAQEAAQEBAQAA/wEBAQAAAAABAQEBAAEAAAEBAQAAAQAB/wIAAf8AAAEBAAABAAH/AP8AAQECAQEBAAABAQH/AAABAQEBAQEBAAEBAAEAAgEBAAACAQD/AAAAAAABAAABAAAAAAAAAQH//wAAAAAAAAAAAAAB/wD/AQAA//8AAQH//wD/AQEAAP8BAAAA//8BAQABAAABAQH/AAAB/wD/AQABAAAAAAD+AAABAAAA//8AAAEAAP8AAAAAAAEBAQAAAAD+AAAB////AAAAAAAA//8A/wD/Af8B/wD/Af8A/wIB/v4A/v7//v7///8A/v/+AAD//f78/Pr6/Pv6+/r7/Pv8/v7+//8AAAAA/wAAAgICBAQFBwYGBQUFBQUEAv7//f/9/f7+/f39/f39/P/+/v///wEA/wABAAEBAAABAAIBAQIDAgABAwAAAf//Af8A/wAAAAAA/wEAAP///////wABAQEBAAH/AAAA/wH/AAAAAAAAAAAAAAAAAQD/AP///wAAAQD/AAEAAAEBAQABAP8AAP8AAAEAAAEAAAAAAAAAAQEBAAAAAP8BAQAAAAAAAP8BAP8AAP8A/////f/+/gD//wAAAAEAAAAAAAEBAAEAAQEBAQEBAwIBAgMDAwEBAv7/APv+/fv9/vz8//7+//3+//7+//////7//wAAAAH/AQMCAwIAAgD+AAEBAv///v7+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AAAAAAEAAP8AAAEBAQD//////wABAAEAAQABAAAA//8AAAAA////AAABAQH//wABAQAAAf//AAABAQEBAAD//wAAAAAA/wEA//8AAQAAAAEAAP8AAAH/AQEBAAAA/wH/AP8AAAAAAQEB/wH/AAAAAP4BAAAA//8AAAAAAAAAAQD/AAABAAAAAAEAAP8AAAD//wAAAP8AAQAA/wAAAAEAAP8AAQAAAAEBAAD/AAABAQAA/wAB/wD/AQD//wACAQEBAQEBAQEBAAABAQIBAQICAgICAgMDAQECAAEA/wD//v79/P38+fn5+vv7/P39Bf79/gEAAQAAAAAAAwIDBAYEBQUEBAQFBP///v////7+/f3+/P79/f7+/v7//gL/AgABAQABAQEBAAIBAQICAgECAf8AAP7///8A/wAAAQEA//4A/wD/AAABAAD+AQAA/wAAAAD/AAAAAP8AAAD/AAAAAQAA/wAAAAD/AP//AAAAAQAB/wEAAf///wH/AQD/AQAAAAAAAQEBAAAAAAAA/wAAAAAAAAABAAEBAQD//wAAAAD///8A//7+/v/+/v7+/f/+/wEA/wD/AAAAAQABAgIAAgICAQICAgECAgEBAf39/gEA/QEBAQABAAEBAQEA/wIBAf8B/wL/AAMDAwMAAQICAwEDBQMDAgEBAgEBAQICAwICBAgJCvb8+v/9/AH//wUDAgD+/wEC/wP///8AAv79/v8A/QD+/gMDBAQDAwUKCgcAAf8A/wYHBvn4+vr6+vf29Qb8BwUIBgABA/8CAAUEBfr6+/78/QYHBwoOD/j08/v6+wQGBgH/AP38/AL//wMBAQH////9/v/+/wQBAhMTF/Py7PLv+QD//f8AAP////////7+/v3+/fz9/f3+/vz9/vz+//z+//3///8A/wAAAAAAAAAAAP8BAAAAAAD/AAAAAAAAAAEAAAAAAAACAQEAAAECAP//AAEBAgAAAAABAAABAQABAQD//wAAAAAAAQAAAAAAAAAAAAABAAAAAAD/AP8BAQEAAf8A/wH///8BAAABAQD/AAEAAAD//wEBAf8AAAEAAQABAAAAAP//AAEBAAAAAAABAQABAAAAAP8AAAABAP///wD/AAAA//8AAQAA/wAAAgEAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAP///wEBAP///wAAAQEBAP//////AAAA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AAEAAAEBAQEAAAEAAQEA/wIA//4AAQEBAAAA/wAAAP/+/v7+/f///////v7+//8C/v//AP///wAA/wABAQECAgEBAwEBAv8AAAAAAP///wD//wABAAAAAP//AAIAAf//AP7//QQCBgICAQD+AP7///37/fr6+AoJBwcHB/b7+QIDA/v7+gIBAAABAQD/AP/9//0B/v///QAA///7+/n+/wAEBAICBQQEBfv3+PsAAQMNBAEEAAABAPPx8fP19xAUEwUKCggGCf//AQEAAQABAQUGBPr49wMEAf/9/fv5+v38/AIDAv/+/gD9/AICAgH/AAIAAP38/QsMDgcIDPf08AAAAAD////+//79/f39/vz+//3+//3+/vz///7//v8AAAAAAAAAAP8A/wAAAQEAAAABAAEBAQEAAAEBAf8AAQEAAAAAAf8AAQEAAP8AAAEAAQABAAAAAAAAAAAAAAAAAAD/AAABAQAB/wAAAAAAAAD/AAAAAAAAAAABAQEAAP8A/wD/AAAA/wAAAQEBAQAAAQAB/wAAAQABAAD///8AAAAAAgH/AQACAQAA/v//AgABAAAAAAAAAQABAAEBAQAAAAAAAAEAAgEA//8AAAAAAAAAAP//AAAAAAAAAAD///8AAAH/AP8AAAD/AAEBAP8BAQEBAAH/AP8A/wABAQEAAQEBAf/+/gEBAQABAAEAAQAA/gIBABAPDBkXExkYFBQVERAQDgUCBQD+AQD/AQEBAQD/AP3//wECBAAAAPz69/39//3+/P79/QUEBfz8+wICAgICAwAA//z8+v39/fz5/Pr49/j29fj39x8iJQ0OEgIBAf7//wICAgUGBgcHBgQAAP8AAP7+/v7//f7+//79/v3+/v8A////AP8A/wAAAf8AAAECAgMAAQH/AAL+AAH/AP8AAAAAAAD/AQEA/wAAAAD/AP8AAAAAAAAAAAABAP//AAEAAP4AAAAAAf8B/wD/AAABAP/+AAAAAQD//v8AAQAAAQACAQH9AAEBAAAAAAABAQEAAQEBAQABAgAA/gABAQEAAQABAAEAAAH//////v7+///9/v7+/v3+/v7///3+/wD///////0AAP8CAQACAQECAgIBAQL/AAAAAAAAAAD/AP8AAAD/////AQD/AP8A/v4AAAEBAQEDAQH+AgIFBwf9+/wA/f759/j/AP8FBQf8/wAHAQL89/X//v0FBAQA///9+/z/Av8BAf8AAAEEAwMFBQUFBAT6/PwDBAP//gD8+vr++f79//8ICQn9/v3w6ekGCgwICwwLDg8AAwP/AAD+//7/AAD9/f7/AQIEBAb8+/v9/fwCAgICAv8BAQEBAP/+/fwB/PoDAwMKCw/w7+cA/AD+/wD//v79/f/9/v79/v78/f/9/v///v7/AAAA//8AAAAAAP8BAAEAAAABAQAAAAAAAAABAQEBAQEAAAEAAAABAQEAAAAAAQEB/wAAAAAAAAAA//8BAQH/AAAAAAAAAQAA//8AAQAAAAAAAP/+/wEAAP4CAQEAAAD//wABAQD/AAAAAQABAP8AAAEAAP///wEBAf///gABAAEAAQAAAP8BAQEA//8AAQAAAf8A/wEAAQAAAAAAAAD///8BAQECAQH/Af///wEB//8AAAD/AAAAAAEBAf/+//8AAAAAAAD/AAEBAQAAAQAAAAACAQH//wAAAAABAQAAAAEBAQD/AAABAgECAQADAgIODAoUFRAZFxUbGBUUExIIBwcAAAEB/wH7+v3+Af8A/wIBAQH9/f4DAwACAgL7+/sEAwcFBQD+/P7/BAMDAwP9/P4BAAIGBgcAAAH7+/wAAP//AAH4+Pn6+uvW/dH3+PkrLTEJCw3///4BAAEFBAUGBgYE/wAA//7///7+AP/+/v39//7+AAD+////AQD/AQAAAQABAQEBAQIBAgEEAAAB//////8BAP8AAAEAAP7//wD/AQD/////AAAAAAAA/wAAAP8BAAD/AAEBAf8A/wAA/wD/AAAA/wEAAP4AAP8AAQAB/wD/AQAA/gAAAAD/AAIBAf4BAAAAAQEAAAEB/wAAAQAAAAAAAAAAAAAAAAD/AP8A//7+/v39/vz9/f38/v79/f79Av4B//8A///+////AAAAAgIBAwIBAQICAP8B//7///8AAAAA/v///v7+AQEC/wECBAIEAP7/AAD+/f/+AwQEAgQEBwkI/Pr5+fr5CAkHAPv8/wABAAACAAMD//v9/fz9/v/9////BgcGAAAB/gD//P//+vj5BQj4BwwMBwYEAQIFAgQEAgEC9/f59vX2/v7+CgsLAvv69e/u//39DBAQAgME/P/+BAYG/QEA/wAA+/v7BQUIAgD+AAIAAgID//7++/r6Af//AQICBQQIDQ8TAucJAAD2AP/+/v7//v7+/P3+/P3//f7+/f3+/f8A//8A/wABAAD//wABAQEAAAAB/wAAAQABAQEBAAAA//8AAQEAAQABAAABAAAAAP8BAAD/AAAA/wAAAQEA/wEAAP8AAAAAAAAA/wEBAQD/AAAA/wAAAQH/AAABAAAAAP//AAEB//8A/wAAAf8AAAAA/wEAAQD/AAD///8BAAAA/wH/AP8BAQEA/wD/AQAA/wACAAAAAQAAAAD/AAAA////AQECAAAA////AAAAAf8A/wAAAAD///8AAAAA/v8AAP8B///+AAAAAAAAAAAAAAAAAQEBAAABAQEA/wD/AP8BAQEAAAEAAgD/CQkGCggIHh0YJiUiEQ8NCwgJBgYH/fv9/vz+/f4AAQACAgECAgD//v/+AP8BBAECAQIC/P38/Pr7BwcIAAEBAQMB/f7+AQABBQQA/wD//fz+/v/+BAUI/Pz6AAD+//7//v3/9PDv49/dFRcYGhwH//8BAQEABQUEBAQEBAD///7+//7//v3+//7+/P3+/f7+/gD//wAB/gAAAAAA/wEBAAICAgECAgABAQAAAQD//gAA/wD/AQABAAD+AP//AQAA/wAAAAAAAAAAAAAAAAEAAP////8A/////wEAAP//AAEAAAAB////AAAAAAAAAAAAAAEBAQECAQH9AQABAQEBAQABAQEAAQEBAQABAQEBAAEBAP8AAAD/AP////////7//v/+/f79/f79/v/+/v/+/wAA//8A/wAA/wAA/wECAAICAwEBAQAAAP7///////////7+/v8BAf7+/gMDAQMEAwYEBgIABP/9/v3/+wAD/QH//wUFBAD//QH/AAcHCP/9/f7///0AAgEDBP79/AH/AAIBAf36+wMDAwMDBPz7/QACAP76+fbs+QMFBgMGBwAICQEHBwsREAn///39/Pz9/gUJCgL9/fbz8/r6+hAVFAAAAf8AAAAB//4B/wIEA/39/Pr5+wQEAgEDAgIAA/78/QIDBP/+/v/9/g4NEg8QFvf27//+////AP3/AP3+//3+/v7+//7//wD+/////gH///7//wEAAQAAAQH/AAABAQAAAQAAAAAAAgAAAAAAAP8BAAEA/wAAAQAA/wH/AP8BAAEAAAD/AQAAAAAAAAABAAD/AAEA/wD/AAAAAAEAAAABAAD/AAABAAABAQD///8BAAEAAf8A//8AAQH///8AAAEAAAABAAAAAAD//wAAAP//AAAAAAABAQEAAAD/AP8B/wD/AAAA/wAAAAAA/wAAAAD/AAABAP///wAAAAD/AP8AAAAA////AAD//wAAAP8A/wAAAAEBAQAAAAABAAD+AAAAAAAAAQEBAAEB/wYGAxMRDyMgGx0cGxUTEggIBwIAAgH+APv2/Pr6/AUEBAMBAAIDAfr6+gMCBAD+/wMDAvz9/QH///z3+QL9/v/6+/39/QABAgABAAD/AQEA/wUGBfz7+wMDBP7+/P/+//79/QAB/wAB//r6+fHw6uHe2wsMDwkKDQEBAQQEBQYGBgQAAAH/AP/9/f3//v39/f7//v7+////AP7//wIA/wAAAP8CAQECAQEBAgMBAQL/AAH//wD/AAABAAAA//8AAQAAAP8A/wAAAAAAAAEBAP//AQAA/wABAQH//wABAP//AAAAAQD//wEAAP8BAAAAAAABAP//AAABAP8A/wEBAAEBAAAAAAABAAAAAv8B/QABAQABAQEAAP8AAAEAAAEBAP/+///+/v79/P38/Pz9/f39/f4DAv0AAAH//v//AAAAAAD//wEBAQEBAQL///////////7+//8C//7+/wICAP8CAQAEAQIEBQcC/wT9//z+/f3++voDAwP8+vz9+/v+/v0DAwQEBQX9/v79AwP///0AAQL9/fsAAQIBAQL//v78/vv9//8AAwMFCAUGBwj8/v/8AAAKCAYBBgb/AP4ABAMHCAoC+/wCBQMDBwYBBAT9/v/w6+sEBQUDBQQJCgkAAwP6+f8CAwL/BQP9/PsB+wABAAD9/wAA/AMAAwMAAvsHBQcUFhvv7+n69/n+/wD+/v/+/v/+/v/+/v4A/wD//wD//wD+AAAAAQEA/wEA/wD/AQEBAAEAAAD+AAACAP8AAAEA/wAAAP//AAICAQD/AAH/Af4AAAEAAAAAAQAAAAABAAD//wD/AAABAAAAAAAAAQAA/wAAAAAAAf//AAAA/wAAAAAA/wAAAP8AAAABAQAA/wAAAAD/AQEB/wAAAf8A/wAAAQAAAAAA/wD/AAAA//4AAQH/AAABAAAAAAEAAP////8BAQEBAQD//gD/AAABAAAAAAD//wAAAP//AAAAAP///wAAAAABAQEAAAABAgEA/gD/AP4BAQIEAQAFBAIQDwwjIh4jIh8TEBAIBgf//v/8+f37/v0A/gH//f7//Pz7//4DAgMA/gD9+/wBAwACAQH//f4CAAEB/v8GBAT9/wAB/v4A/f39/fv/AQD9/P0GCAf89/z+/v//AfsAAQEGBAT2+vn+//0AAv8CAgD49/bm5eMZHCEICQsDAQIGBQUGBQYEAAAA/v7+///+/f39//7+/v7+//7+////AAAAAAAAAAABAAEBAgIDAwIDAQICAAAB/gD//wAAAAEBAAABAP//AP8B/wD/AAEAAAAAAP8AAAABAAD/AP8AAQD//wEAAP8AAAD/Af///v8A/wAA/wAA//8AAAAA//8BAAH+/wD/AAAAAQABAAAAAQABAAEBAQABAAH+AAABAAABAAEA/wAB///+//79/v7+/v7+///+//79//4CAAEB////AP//AAABAQEAAQEBAgICAAAA/v7//v7+//////8A//////8ABAQDAwICBAQFAf4D//3//v37+fb2BAUEBAIB+/39/fz8AQgB/wAAAAAAAgME+/v6AP//AQEC/f7+/P38CAYGBQQE/v39/vz98vDxERgJCA8O9/r6+v7+DQoIBAgJ/Pv9+Pr6CQoL9/X1AgIEDQ8OAQAB8vLxAwECAf7/+Pb4DAwMBAsB+ff1AgIB+vz7/Pr7AQECAQECAP4A//7/AwIDAAAADA0REhQa9PLu/v7+/v7+/v8A/f7//v///v4AAP//AP8AAP8AAAEBAAABAAAAAQABAAABAP//AQABAAAAAAEAAAAAAAAAAAD//wABAP//AAEBAAAAAAAAAAAA/wAAAAAAAAAAAAAA//8AAP8AAQEB/wD/AP8AAAAAAAABAAD/AQEAAP8A/wEBAP8A////AQEA/wEAAQD//wAA//8BAQAAAf///wAAAAEAAP8AAAAA/wAAAf8A/wIBAP7+/wEBAQAAAP///gEAAQAA//8AAAAAAAAAAAEB//8AAAAA//8AAAAAAAAAAQABAQEBAQAA/wH/Av8BBgUDEA4LIiAdIiAcGBYVBAIB+/r9/Pr9/fv9AQAAAP7//v3/AQABBAME/f38//8B/v7/AwECAP7+AAABAAABAQD/AP8A//z9AP7+AQEBBAABAQD/+vn6AAD///sBBAQF+/78/f7+/wH/Af4EBQMD+vz9/f39/f3/AQL/9PPy7OvqFhkcAgICAwMCBgYGBAAA/wAA///+///+/f39/f39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AAD/AAEBAAD/AP8AAAABAQH/////AP8AAAABAQH+/wAA/wD/AQAA/gAAAQEB/wAAAf//AQECAAABAQP///4HBwcHBgQvLScuKicRDw7z8PD6+vsJBwn+AP7//f8AAQAFBAT5AQP4+PgLCwsHBwcAAQH///759/n9AvwHCAgBAP8FBQX6Avr9+/v6+foDAwX/Av8GBgYA/v8B/wADAgH//Pz6//4DBAMEBQX9+/sEBQT9/PsA//4HBgb/AQH6+/v9/v4BAAADAgH///4CAQMDBAQCAQQEBAQCAgIBAAEDAwIEAwUCAAAA/wAA/v/+/f39/v79/f39/v7+/f////8AAP8AAAD/AAEAAAABAgICAQEB/wAB/gD/AP//AAD/Af8AAP8AAAAAAAAAAAEBAAAAAAEAAQD/AP8AAAEBAAACAAEBAQABAAAA/wAAAAEAAQAAAQEAAP8AAAAAAAABAP8CAAAAAQAAAAEAAAAAAgEBAQH/AAAAAP8AAAABAQH/AAD+AAD//wD//wD+AP7///7+/gD9///+Af8AAAD+AAAAAQECAgECAQICAgECAgECAAAB/v7+/Pz8/f39/f7+AP8AAPz7//f4/vb2/Pf2AwUCAAIBAQMCAwMDAgMCBwgIBgYG//39BAMDAQIDAAAB/fv9+/39BAUHAQQF/v8C/P7//QEA/v8A/gEB/P/+/wAAAP3+//39AwIBCAgGBwYFBQQD+vn3+/n6//z8AwIBAf7+APz8+vf3AgMF//8B/wAAAAEBBwcHAwIEBAQEAwIEAgAB/v7+/Pz8/f79/v7+/v/9/v38AwMEAP8B//3+AQABEhUZCQsP/gAC/P7//QD///8B//8B/wD//wD/////AAEA//7/////AAAAAAAAAAAA/wD/AQAA/wAA/wAA/wAAAAABAP///wD//gD//wAA//////////8AAP8A//8AAAAAAP8AAAAA/gD/AP8A/wABAP8B//8B/wEB/v8A//8A//4A//8A//8A//////4A/wAAAP8A//8A/////v///////////v////8A//////8A////AP///wAAAP8AAQAAAAAA/wAAAAAAAAAAAgMDBwcFCAcEFRQPMzIrNTMuFRIT9/P09PH0APwAAP8BAwUFAgMEAwMEAAABAAD/BQUF/v7+/v7+/f3+AAAAAgIBAf8A/Pv7/////v7+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9//+/P3+AP/+//79/AD/Af0AAQQDA/39+wAAAQAAAAABAQEBAf/+/v/+//7/AP/+/gQEBAICAf8A/wIEBhEUFgADAgECAQICAgQDAwQFBQQAAP//////AP///v7+///+/vz+/v3//v7/////AAABAAAAAAABAAICAQIDAgMDAgT8AAH///////8BAAEAAP8AAQAA/wH/AP4BAAD/AAD/AAEAAgAA/gD/AQEA//8BAQD/AAAAAQEA/v8AAAD/AAEAAQAA//8AAQAA/wABAAEAAQABAAAAAAABAQEBAQABAP8AAAABAQAA/gABAAD/AAD///////7/AP7//v/+/v3///4AAP8BAAEAAQABAf8BAgECAgMCAwIEBAMEAwMEBAQCAgP///4HBQcGAgQA//sCAQMDBQYFDA0JEBMDCQsCAwIC/f3/+/r++/n9+/j8+PsEBAUDAAH39PMCAP///PwEAgL7+fr6+vv///////35+/kBAwX/9fT7+/sAAwMEBgj/AgIDBQYIC/AHDQ4NFBMJCwoEBAQGBgsDAwP8+vv+//728/L//Pr7/PsKCgsICggA///39PIA/v39/P0DCAYAAgIEBAUDBgUDBAX+AQD8+/sEBv8AAAIAAQD//v///v4A///+/fsBAP8EBQYBAAEAAP7//wEBAQAAAAAAAP8ABQUBAAICAQEAAgEBAAD///8A/wD/AP8ICQsAAAAA//8AAAAA//8WFxn8/PwoKy7k4+Pi4eDb2dnq6ujw7u/y8vP9/Pv+/v0AAAD//wAA//8AAAAAAQEAAAAA/wAAAf//AAEBAP8A/wH/AQAAAAAAAAAA//8AAQAAAQEAAAAAAAEBAQEBAQAAAQAICAUgHRs9PDodGxoA/f7+/f3//v4A///6+/v+/v4CBAMEBgUCAQH+/wD/AAACAgIBAgICAAEGAAn///4DAgQBAQD//v/+/v8EBQb7/vr9/PwIBgb49/kBAAEJCgv39vcRFRfq5+YH/QQLBAb49/QCCwwOEBL28fEA+/v9/fwCAgEAAP7//v39/QAAAP///QL+/f4DAgP8/v4D/v4BAQIDAwEBAv7//Pz/AP7+/f4BAwMCAwMOEhIPExQCAgEBAQECAgECAgMFBAUEAAABAAAA///////+/v79/v7+/v39/v/+///+AAD/AAAAAQEAAQIAAQEBAQIDAQICAgEBAP8A/wD//wD/AQEAAP//AQAAAQAA/wAAAAH/Af//AQAAAQAAAQIAAP8A/v8AAAEAAQAA/wEAAQAAAAD///4AAAAAAAAAAAAAAAAAAAEBAAABAAABAAAAAAABAP8AAQD/AAAAAAEAAP8BAAD/AAAA/wAA/wD//v/+/wD+//7//////wD/Af8BAAAAAQEBAQIBAgICAQMDBAQEBQYGAgMDAAAABgQEAgEB/wAA/wD/AAUFCQ8PBg0M/gECAP79A/379fPz/vz7///+/fv8AgEBAgIC/fv7/fz7/vr6+PX1/v78+/v6/fv9/wAA/wIC/wH/Af8BAgMECA4QCQsLAQUE/v8BAQMEAQIB+/j6CgkL+vr8AwME/vv7+/n5AgICBwcHAwgIDQwO//79+Pbz+/r5/fr5//v9AwUDAgMD/P7/BQUEAAIDAAMCAAEAAQIBAQICAgMDAAD+/f79AwEF////AQH/+/f4CQkPBQUG/v/+/////wAAAQEBAf8BAAEAAgIB/wAAAQAA//8AAAEBAP//AAAAAAAA/wAAAQAA/wAAAP//BAQG/wAADQ4RFRYZJykqMjU15ubj4N7e2NbY7ezs7u7tAf7//P39/fr7/wH//v7+////AAEAAAABAQAAAP8AAAH/AP8BAAEAAAABAAEA////AQEAAAAAAAEAAAD/AQIDEhIQNDIuNDMxFBIU//z/AwAB/Pz9/f38AwIC/wEBBAUGAwQDAQIC////AwMDAAECAgIC//7/AwMEA/v7/f3+//7+/v4ABwgGAgT5/Pv7BAUF//7+/f7+DxER8vDw8vDvExUUAwIDDhEQ9vPyAP79APz99vHxCw0MAgEC+vv7AwIB/v78AP//BAEC/f77AQEB///+/f3+AAEBAAEB/wABAgIC/f39/Pz9AgICAP8AAQEBAQIB/QICEhgaAwYIAgABAgEB/gECAwMBBAQDBP//AAAA/wAA///+/f/+/v79/f/+/gD+AAD/AAD///8BAQEAAAEAAAEBAgECAgECAv8BAf8A/wD/AgEAAAAAAQEAAP8A/gEBAf///wAAAAAAAAAAAQEBAQD+/wABAAAA/wD+AQABAAEAAf///wAAAAABAAH/AP8AAAEAAP8BAAD/AAAAAAAAAAD/AP8AAAABAQAAAAEB/wIAAP0BAAABAQH////+/v/9///////+//7//v//////////AAAAAQEAAQEBAQICAwQEAwQEBQUEBQQEBQAA/gQFBQH//wADAQEFBAMICPv+AAUAAQD+/fXv7wH9/f359wD+/gQFBv4CAf39/gIDAgABAP38/fPx8/n39QQDA/37/f4AAAMEBQQHCPv//wIFBQECAv79/Pz8+wH/AAMKCQUKCQcJCggICgIDAwkJCPz6+vv6+gMBAQD//v3////+//z59vn29P/+/AEA/////wADAQACAgEEBQMCAQYJCf4AAAACAQACAgD/AAADAf/9/wD///39/P8AAP7//v/9APn49Pr5DwYFCAMDAgAAAAAAAAD/AQABAAAA/wEBAgAAAP///wICAAAAAAD/AQAA/wABAQD//wABAQAAAP///wAD/wEAAQD/AAYGBgkJCRARExwdHigoKzAzNePj4djW1/Xx8uno6PPy8fj29/n6+f3//v/+/gH/AAAAAAAAAAAAAAABAAEAAAAA/wD/Af8AAAAAAAEAAAIAAQQFBCIhHDk5NjAwMAoICvv5+v36+v39/P///wEAAPv5+f78+wD///r4/wMEA/3+/gICAwMEBP37/AIDAwYGCP3+/vz8/QECA/v7/AABAAgICQQGB/v6+vz7+wAAAPDw7wUEBAICAOLf3xwcHAcICPj29vz9/gUGBvr6+vn4+P77+v7+/QQDBQL/Af7///3//gUFB/39+/7+/wEBAAEAAQEBAgEBAf//AAD+/wMCAv7+/gICAQABAgMCBPwDAw8WGAEBAgECAAEBAAIBAgMDAwQFBAQAAQD//gAB/wD////+/f3//fz9/f3+//7+/////wEBAAD/AQAA/wEBAQACAQMCAgMBAgEAAAIAAP//AAEB/wD/AAABAQH///8BAAEBAAH/AP8AAQD//wABAAD/AAABAAIAAf4A/wAAAQAAAAEAAAAAAP//AAEAAAABAQEB/wEBAAABAQEBAQAAAQABAAAAAAABAQEA/wD/AAEB//8AAf//AAAA/wD///7//v7///3///7/////AP8AAP8AAAEBAgICAQEDAgIDAwMFBQUGBQYGBgcA//0JBwf/+/3/BQUHEBMOFBYBBwj8/P39+vj++vv59PMB//8AAP/9AQIBAAH///0AAf8CAgL+AgL7/Pz5+vn8AgL+/v79/P4A+/wJBAQCBgb8/PsAAQL9/PQA/wAMEBEKBwn+/QD4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AAAAAQEBAAABAf8BAQAB/wEBAAABAAAAAAABAQAAAAABAQAAAQH/AAAA/wABAAABAAEAAAEAAAEA/wABAQABAAD/AAAAAAEAAQAAAAAAAAAA//8A////////AP4AAAD//wAAAAAA//8A/wAAAAAA/wAAAAAAAAD/AP/+//79/v7+/gEAAQAAAf38/fb19/38/f/+/vv7+v3+/P8A/f///gMDBAQHBwMEBQgKCwQGBgIGBQYHB/36/P/6/AUCAwD+//Py8/bx9fr4+wsMDwEDAwMFBgECAwEFBQoPDhQYGAcJCfP09AEBAgUGBQAA/wEBAQcICAQEBAUGBAICAQQEBAoKCgICAQAAAAICAgEAAAD/AAD/AAABAQMCAQECAgABAQEBAgEBAgUDBQIBAgEBAgEBAQIBAwABAgICAwAAAgMCAwEBAgECAwABAwECAv8BAv//AP8AAP//AQECAAICAgEBAAAAAP8B/wAA/wAA/wAAAAEBAf8AAAAAAgEBAQEAAAIBAQABAAEAAgEAAAAAAQABAQAA/////gAB/gD//v8A/f///gAA/gD////+/v/+/QD+/v7+/fz8+vj49/r49fbz8PTy8AcFBwoKDQUFBwAAAAD/Af///wAAAf/+/wABAf8A/wEAAAABAfz9/wADBAkNDw8VFg0UFP4DAfj59/v6+/v8/P4AAQ4REg0REgUKCwEDA/////z3+fHs7gP/APj29/38+wD//vv6+wEAAAQDAgkKCgMEBAAAAgUGBv37+/v6+/7//gEEAfHx8AkICfj2+AcICQD+/wQEBQAAAf7//wUFBgD/AAAAAQABBAMCAwQEBgECBAIDAwICAv7+//39/f8A/gAFBPH4+OTn5wEBAf7+/v///f3+/f39+/38/f38/f39/f///wAAAAICAgT//wAAAP//AAABAQEA//8A/v7+/f79/v3+/f3+/v0A/v4AAQIAAAABAAABAQECAgMBAQIAAQH/AAAA/wAAAAAAAP8AAAABAAH/AP8AAAEAAP8AAAAA/wAAAAABAQAB/wL/AP8BAP3/AAEA//4AAP8AAAAAAAAAAQAA/wEA//8A/wD/AQD/AAD/AP//AAAAAAEAAQABAAAAAAABAAH//wAAAQAB//////////4A/v////8AAAAAAP8A/wD//wABAAEAAQAAAP/+/v79/f37/Pz8/Pz//v7///79/v/7/Pvz9fQAAgz9+/wACAACAQD9////AP4CAgIGCAb9/fz89fX9//////8D/v8A/f7//v4DAQEDAQP7+vv39Pb//f8EBwkEBgUEBgUCAAEEBgYFAQECAgL29fX39/gMDAwKCwYBAQABAQH9/v4A/wD9/fsCAgYFBQT//v0BAQH/AAD8+/0BAf0DBAP+/QADBAT///4AAAAA/wD///8EBQMC/wAAAQH///8DBAT//v8CAwT///8BAgEBAAD//wEBAQH/AAECAAH/AgIAAAABAP///wAAAAAAAQECAAAAAAEBAQEBAQEBAAEBAQH/AP8AAP8BAAEAAQD///8AAAABAgAA/wEAAP8AAP8A//////4A//8AAf////8CAAH//////v4A/v///v7//v7//fz++/v++/n38/D79/UHBwcGBQYHCAgAAAL8/v8AAgIA/QACAv8BAQICAgIDAQH+/f0AAAAFBQX//f39+/v//wD+/f4EBAYBBgf9/PwEAwT7+/z7Av0JDA4IDA718wz17u4A+/z59fX19fUNDw7z8vH+/fwBAf/9/Pv39fQA/v4ICAcCAwMDBAQCBAT29vUICwsKCgv8+vr5+/kCAwEDAwMDBwYFBgb9/f0CAgICBAUB/f8CBAUFBQT9/f4BAQL6+/r8+/sBAP/+AP7+//8DBQX6//7l6un29/cGBwX+/wD+/gD8/Pr6+vr6+/r8/v3+//8AAAAAAQEBAQEEAgEA/v8AAAAAAP8A///+/f79/f39/fz9/f79/v3+//3+AAL/AP4AAAD/AQAAAAIAAQIBAAACAAAC/wH//wAAAgABAAEBAAD//wAAAP//AQAA/wAAAAEAAgAA/v8BAAD/AQAA/wABAQH///8BAAAAAAD/AAEAAP8AAAD/AAH/AAD/AQD/AQAAAAEBAQD/AQEAAAAAAAEAAAH/AAAAAAEAAAAB////AP/+/v7////+/v7+/v7+//7//v//AgD+//8A////AP8A/wAA/f7+/v79/v3+/Pz9/Pz9AwECBQQFAQAC+vj6+wr6//78/v79//77/vv+/f79/wICBQYGBgYHAP8A/AL9AwUEAQH/AgEAAwIDCw4KEBocDxYWAQECBwcIAAEDBAMFAwICAwECAQMCAgMCDg4O9fT0/f39BAMDAgIC/v7+Af///Pv6/f7+Av38AQEB+v39BAUEAAABAP//AQED//7+AAIA/f3+//////4A/wAAAQIA/v4AAAABAgAA/gD+AgIF/f/9AAAAAAAA//7/AQICAAEAAAABAgICAAEBAQEBAAD/AQECAAEAAQEAAAEAAf8BAAIBAgEAAAIBAQAAAAH/AgAAAAABAQAB/v///wD/AAAAAQEA/////wD+AQAA/wD//wD+AQABAP8AAwAAAP/+AAAAAQAA/f/+///////+AP//Af/8//v3AP77CQkJAgIDAwMEAgMD/v//AQAA/wAAAQMCAP8AAv8AAgIDAf/+AwEB9/j4BQYFAQcI/gMD+vn5//0CAf39AgIDAwgJAgIC/QEB/fv89PPzCgwMDRETCg0Q8u3sAgcH8u7u6+zsDAsLAwME9/bz/fv7BAMC9/b1+Pb0BwcICw8PBwoJ9vX2AP//+fn5ERUV9PHxAgEC////BwkJBAYG/fn5/gAB//7+AQUEBAYG/v/+//78+fn6/fz8/QD+AwMC/Pz9AgMCBQgI7PLw5+vp/v/9AAAFAAD//gD+/f39/Pz8+/v7/f38AQD//wD/AQEBAgICBAABAAAAAP8A//8A/wH////+/v3+/P39/P78/f79/f39/AMCAv//Af///v///wAAAQEBAgEBAQD/AP8AAQAAAP8BAAEA/wABAAD/AQEAAf8B/wEAAAD/Af7//wAAAAEAAf8B/wAAAAD+AAAAAAEBAP//AAH/AP8AAAABAAD+AAEBAP//AQAAAQD//wABAAEA/wEBAQEAAQEAAQEA/wABAAD//wEAAP/////+/v3+/v79/v79/v3+/f///v7+AgAAAP7+//7/AAAAAAD///z8/fz9/P///gAAAAMEA/8AAf//APz9/vz9+/3++wEAAP79/fz7+P79AP39/Pz7/P3//v///wD/AQAFBPv+/f3+/gYMDBQgIxooJwcLDPr6+v3+/gkEBAEBAAICAv7//gL+AP4AAAICAggJCP////v8+wUBBv7//////v7//gEAAP////z8/QQFBPr5+QUGBvz8+wUEBQAAAwAA/wAAAAAAAv3//gMCA//+/v4B/gICAv7/AAD/Af///QABAf8A//8A/wMDAwEAAf//AP8A/wEA/wABAQEBAAEBAgEAAf8AAAABAQIAAQABAAEBAAABAQEBAQEBAAAA/wD/AQEBAf///wAAAAAAAAEBAAAAAP8A/gEA/wAAAP8A/gAAAP8A/wIAAQEAAP8AAQD//v//AP8A/wD//wAA/wIB/v/9+v/+/QgICQICAv7+/wEAAAABAf7+/wEBAAACAf//AAMCAAIBAwEBAfz6+QD+/wECAfb09QYHBwACAgUGCAED/f8BAfv7+gMB/wMGCQoFCvr7+v////z7+/v8+wEDBA4WFvz5+v8EBO7p5u/x8g4LCwwQEfXz8vry8wYGBvb09P8F/P/7+wMDAwoLCgUFBfT29QYJCAcKC/35+wAA/wYHCP4A/gECAvz8/AYGBQQGBv///vr5+fr5+P3+/gICBAD///39/QQEAgMFBPn+/eTq6ufq6gQEAwEAAAAAAAD///7//vz9/fv6+/z8/P3+/v8AAAIAAQICAwQAAAEBAQEA/wAB//8AAAD9/v39/f3+/v38/fv9/Pz+/v7+/v0BAAIA/v8AAAAAAQABAgL+AQL/AAAA/wAA//8A/wEAAQEA//8A//8AAAABAAEA//7/AQAAAAAAAAABAQD//gAA/wEAAf8AAAD//wAAAAEAAP8AAAEAAAEBAQD//wEAAAAA/wABAAAAAAAAAAEBAAD/AQABAAABAAD//wABAQD/AAAA/wD+//7+/v/9/v/9/v/+/f/+/v4BAv4A/wH//wAA//8A////AP////7/AP////8A///8/P0HBf8CAgIAAAH8/P4A//8BAQL/AAACAAP8+/n59/b6+vr5+Pf9+vv/+/z9/f7+AwQGDxEVHR8UICIOFhYCBAQG/Pz+/PoCAgP9/v4FAP8CAQH8/fsCAAMA/wIBAQH9/f0BAQL+//39/f7//v7///4DAwQBAQH9/fwCAgAAAAD+/f37+foA/wAFBgEC/wL9/f0EBAL///8AAAAAAQH//f4AAgP//v4BAgL9/v8CAQAA//8A/wABAAH/AAAAAAABAQEBAQEAAP8AAAEBAQEAAAECAQABAQIAAQEBAAEAAAACAQEAAf8BAQEAAAD///8AAAAAAAABAQEBAQD//wAAAP8CAQH/AP////8AAAEBAAH/AP4BAAAAAAEBAP//AQEAAP4AAAABAgED/wH+/wEAAP8GBQcCAwMAAAH9/fz//v7//wACAf0BAQL9/f0DAgIDAgEAAAD+//8BAgT7+voCAQAFBQX39vUDAQP8/f39/P0DAwEHAwb7/f349vYEBQUBAgEAAAIDBQUA///9/fz4+fkAAQQOExYKCwzq5OLt7u4F8wIFBQT9/v39+/oKCgj6+vn49vQKDQ0FBQQEBgUC+QP+/v/9/f0BAwIBAQECBQP7+v8CBAQHBAUCBAT8+/z6+vr8+/r+/v//AAEBAgACAgL+AP0CAwIAAwPl6+re4+P6+/sEBAL+///////+///+/v/9/Pz6+vr8+/3//f3///4AAgECAgEEAAD/AAAAAQD//wAA//7///7//f38/fz6/f38/f38/fz8/wMC/wAA///+AAD/AQAAAAABAQEA//4BAAD+/wABAQAAAP//AAAAAAEAAP8A//8A//8BAAD/AAEAAP8AAAAAAQEAAQAA//8AAQAAAAAAAAEA/wAAAQH/Av8C/QD+AQEAAQEAAAIBAP4BAgAA/gEAAAAAAQEA/wAA/wEAAAABAP8AAAD//////////v7+/v79//79///+/v7+A/7/AAEAAQAA/wAA//8AAP8BAAECAgECAQIBAwMDBgYFBAUFAAAAAwID/P38/gD+BAQGBAX/+vz6/v///wAA//3+/vz9/f3+/wD/AQMEDRYYHCEjBxAPBQsMAAQCBAYEAQMBAQYE+vn6////+/z8CQUFA/8C/fz9AgUAAQACAAD//v39/v4BAAAA/f39/f0AAgEDAAH/BAMD/f39BAMDAQEAAQEA/v7+//7+AAIDAQAA/v3+AQEC/wL+AAABAAAAAP////8AAwEB/wAAAAAA/wABAAH//v7+AAEAAQAAAQECAQABAP8AAAEAAAAAAQEAAQECAQEAAAEAAAAAAgIBAAH/AQABAAAAAAAAAQIAAQD+AAEAAAAAAP4BAAL///7/AQEBAP4BAAEAAf//AAEAAwECAAAAAQAA/v8BAv7//AH+AgICAAAA/v7/AP4AAwQGBAIF/wAAAAACAQIC/vz8//8A/wICAAD/AQEBAgICAgIBAP4AAf//AP3/BgcJ+/n4/vz7BgUH/f39AgAC+vv59/X5BAcFCAkI+/r7+ff4AQMCAQIB/Pv7AP7/AQH/AP7+/wD89Pr7+vn5FhobAP7+/vj3/vr3+vf1APv7AQAHCQoI/v4A+fb2BwoLAgIDBgYGAgIC/v7+/wD/BgcH//8AAgMCAQAD/f39+Pn6AAAAAQEBAgIC//79AQIC/wD//f79AAEB+/7/6enq2N/f5efoBwYF/v////8AAP8A///////9/Pz6+/v6/fz8/f79//7+AAMDAQEBBAEBAAAAAAABAAEB/wAAAP///v79/f3+/f79/f39+/79/f39/gICAAD//v///gD/AAEBAQEAAQAAAAAAAAABAQAAAAABAP//AAEAAf8B/wEBAP8CAAD+AAEAAQAAAP8A/wABAQH//wEBAQD///8AAAAAAAEBAf//Af8B/wEBAf8AAP8A/gAAAAEBAf8AAQD/AAABAQAAAAEBAAEAAP8B/wAAAQH//wAA/v///v3//f7+/f7+/v7//wD/AP///wEBAQAAAAEAAAEAAQAAAQIBAf7//vz7/AD+/Pz8/P7+/AUGCAUGBP79/vj4+QIJBgADAgACAAEAAP77/Pz6+vr4+f8A/wMCAwIHCSEkIgoREwIHBwADBP7//f8AAQQFBv/+/gD8/AD9/v7//vf4+AoLCv76+vz9/QYDAQQDA/v//Pz7+wYGBwEDBPz9/Pv7+gABBgYGBvr7+////vz9/AgJCfv6+//////+/gIDAv7+/gIDAP7/AQICBAABAAABAAEAAP8BAP/+/wAEAgAA/wAAAP7//gIBAwECAQEBAf8AAAEBAAIBAQD/AAABAAABAAAAAAEAAQEAAQEBAAEAAAAAAAAAAAAAAQEBAAAAAQD/AAAAAAACAQD+AAICAv///gABAAAAAQIBAAD/AAEBAQAA/wD/AQD//v8B/wEAAQEBAP7//wEAAQEBAgMDBf4A/QIBAQAAAQAAAAEDAAAAAP///v///v8C/wEBAQEAAgIEAQD9/f0CAf79AQQGCQICBvj18wAA/AAC/wwPDPv6B/j6+fv6+wgICPsC+/r6+fz7/QECAgMDBfz5+/Xy8f39/A0PEQMFBe3r7QIBA/3+/v36+gkHBvoA/QABAP3+/gMCAwD+/v37+vr59wUFA/78+wQDBfz//v8AAf/+//38/v/+/v7+/gECAgUEBPr5+f3//wMFBQcJCfz9/QQCAAAA//T9++jw8d7h4v78/v8E/gD///8A/v7//v/+/v79//v7/Pv7+v38/P78/f/+/gAA/wEBAAIAAAAAAAAAAAEA/wAA/////gD+/v7+/P79/f3+/v7//v7//v0A/v7+/v3//v8AAP8BAQAAAQIBAAEAAAEA/wAAAAAAAAABAAAAAAAAAAAAAAABAAEBAQEAAQEAAQABAAEAAAAAAAAAAAAAAQEBAQEAAAAAAQABAAABAAD/AAEA//8B/wABAAH/AAABAQH/AQAAAAEBAQAAAQAAAQEA/wEAAAEAAAEAAAD+/v///f/////+//7//v7/AP7/AAD//wD//wD////+//8AAAABAQEAAAAAAP////8BAAACAgMDBAIAAP/7+/n08/L5+ff6+vr8/f3+AP/9/v/8/v8AAAD+/f4BBgYRGRkLExQIDg4CBQUEBAQEBAX/AAABAgMAAgIICAkBAgICAQL+/v39/f0GBwYBAAD6+/oAAAABAAACAwL9/v0CAwIJCQkFBgUBAQH/AP8HBwUEBQUDAgIDAgMCAwMCAgICAgEAAQECAwEAAQABAQEDAwEBAQEAAAECAwMA/wAAAQAAAAEAAAEBAQIBAgICAgIAAQEAAAAAAQABAQEAAQEBAgEBAAACAQEDAgIBAAABAQEB/wAA/wAAAAABAAABAP8AAAAAAP8BAQABAQABAP8BAf////8A/wD/AAAB//8B/wEB/wABAAAB/wEAAAABAQABAAECAgIBAQEAAAABAQECAwICAwQEBgYEBQUCAgMCAwMDBAUDAwMDAwMCAwQCAgMEBAUCAgIAAgMCAgQDBAUDBQYAAgIAAgEGCQoHCAr//wD39/YDBAINEA8HDg77/wAABAQDBQUCAgH8+vr39PQAAAAKDA4A/f/t5+b27+wGAwEFBgUFCAj+AAD6/PwCAwT////+/P0IBwf5+/r9/Pz49fX//v4CAwT8/P0DAAMA/gD69/n6+fn7+/sAAAAFBAQAAAD/AAADAQICAgL9+/wBAAABAgAECQf4/f7i5+j09vb/AAAAAAAA/wD////+///+/v/9/f39+/37+/v7/fz+/v7+/v7//wAAAAEEAQEAAQEAAf4A/gEAAQD/AAD////+//78/v79/v7+/f/+/////f/+//8AAAD+AAABAAACAQEC/wAB//8BAP8AAQABAAAAAAH/AP8AAQABAAEA////AAAAAf///wEBAAH/Af8A/wEBAQD///8B/wD/AQEB////AAEBAP//AQAAAAABAAEBAAAAAQEBAAABAAABAAH+AAABAQAAAAAAAAEAAf8A/wD//wD////////+/v7+/v3+/v7+/v7/////AAD/AAD///8AAAEBAgIDAAEBAQABAAEBAQIDAgMCBgUEBwUG/v//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8fHx+PPzCQoHBQEBBQEB/vn4BwkI/vv9//39BgUGAAAA/wAAAgID/Pz9BAIDBAYF/v8ACAkICQgK9/b1BQUGAwIDAQEB/v7+/wD/AgMCAQUDBQcHAgUE/v/9+/r6Cg0N5+jq/f3/AAEAAP8A/v///v7+/v7+///+Af//AP///v79+/z7+/z7/v39/P39AP8AAP//BAEAAAABAQEAAP//AQAAAAD//////wD/////AAEAAAACAgEAAgABAQMCAAICAQECAgICAgEBAgAAAQAAAQAA/wAAAQH/AP8AAAEAAP8AAAEBAAABAAECAf//AAEAAQD///8AAAEBAP8AAAD/AAEBAAAAAQH///8A/wIAAf4CAAH+AQEBAAEBAQEAAgEA/wEBAgAA/QEAAf8AAAAAAAAAAAEAAf8B/wABAf4A/v7//f79/f3+/v///////v/+/v4AAQAAAAAAAAABAAABAQEBAgECAQICAwUFBQcICAQGB/8AAAEBAQMDBP4BAQAB/wUCCP7+//7+AAMEBAYICQIDBQACA////wICAQD/AP7//wD///8AAP39/QMEA/8A/v37/AIDAv79/QQEBAIDCf39/AQDAwUFB/8BAAAAAQABAgMEAQUBAf3+/gQEBfv8+wT/AAkICvj4+AEDAgAAAP7//wMBAwABAAAA/wABAf8BAAMDBAAAAAABAf7//wEAAQICAgAAAQEBAQECAAAAAAD/AAABAAD/AAACAAAAAAABAAAAAQEAAAAB////AQEBAQEBAQEBAQEBAAEAAP7+/wEBAAABAQEA/wAAAAAA//8A/wAAAP////8AAP//AP8A/wEAAAEAAQABAQH/AAEBAP4A//8BAf/+/wH//wABAQAAAf8A/wEBAgH//wD//////gAAAAICAgD/AAAD/wD/AAAA/////wABAQECAgD/AP8BAAEBAP3++/7+/gAAAAUGBv7+/wEBAQABAQQEBgcJDPLw8Pb19BAeH/Lu7Obm5g8NC/Xy7g0PEfv9/wgICRkfI+/n6Or64vr6+vv39QsGBA0LCAD/AP/+/fz8/AYICAD+/gIAAvr4+AQFB/4BAAIFBQcJCgACAvv5+QkHCP8CAgUGBQMFBf8AAAQICAMDAv8CAf8C//4A/ff08gUFBev1+OLl5f7//wAAAP///wD//wD/AAD///////////7+/v79/f38+/r6+fv8+/79/v///wEAAQQAAP8B////AAEBAQAAAAAAAAAA//7+//8AAAD/AAAAAAAAAQACAQEAAQEBAQICAgMCAwQBAgMBAQEAAAD/AAEAAAH/AAAAAQD//wAAAQEA/wEAAAABAAH/AP8A/wD/AAAAAQAA/wEBAP8AAAD/AAEAAAAAAQAA/wEAAP8BAAD/AAAAAQH/AAAAAQAAAQAAAAEBAQEAAQAAAQAAAAAAAAAAAQAA/wEA/wAAAP/+//79///+/v38/f3+/f3+BP4B/wAB/wEAAP8AAQEAAQH//////wABAgIDAwQDAgUDAwQCAQD/AAD+/////wH//wAAAQIFBwQBAQQBAwMCAwQCAgQBAQEBAQEBAQL/AP8CAQD+/wACAgH+AgEA/wACAgH8+/v+/gEDBAP///4ICAn/AAD/AP8CBAT///8BAQEDAgMAAQH+/v0BAQIAAAAIBwj///4AAQMEBQQAAAACAwIA/wAAAP8BAQIAAAEAAQEBAf8AAP8AAQH/AAEAAAAAAP8AAAD/AP4BAAIBAAL+//8AAf8CAAEBAgEA/gD/Af4CAgMDAwIAAAABAAECAQAAAQEBAQEAAAD/AP8A////AP///gADAQEAAAEAAf//AP8BAAD///8A//8A/wABAAAA//8BAgEBAQAA/gEAAQAA/wAA/wAA//4AAAD/AAABAQAB/wEBAAEAAP8AAQD///////8BAgECAAH//wD+/v8BAf///gAA/wAAAQEBAQEBAP/+AAAAAAAAAQEBAQECAwMAAAACAgACAAAAA//7//sAAgEJCAf6+Pb0+fcFBwcSFRP08fECAAP39fYDAwLy9vUFBAYGBgQYHBz69vTw6+f9+vj4+fkLCgoAAAEAAQH8/Pz+/v8DBgf9/v0EBAUBBAX//wECBAT7+/wFBQYCAgEJDQwCBQT//v0C//0E/gP09PT9/vwMAg8FAwP59O8PGRza0Nb5+PkAAf8AAAH//wD+/wH//wAA//8AAP////////7+/v78/Pz7+/r8+/z8/fz+/f4BAQEEAAABAAH/Af8A/gAAAQD//wD//v7+AP/+/////wABAAAAAAAAAQECAAAAAQICAwICAgECAQEBAAABAP8AAP//AAAAAAAAAAAAAQAA/wAAAAAAAAEAAP8AAQAA/wAAAQAA/wAAAQAA/wABAAEAAP//AAAAAQAAAAEA//8BAAD/AAEBAAABAQABAAABAQABAQEAAAABAQAAAQACAQD+AQH/AP8AAAEA/wH//v7/AP7///79/v7+//7+/v7+/wD+AP8BAAAAAP8AAQABAQEBAQIBAQECAQICAgQD/wD//P39BQQFAgED/v8AAQICAwMCAAEBAgMEAgUGAwMHAgMDAQAB//8AAAD/AQEBAQAB/gH/AgMA/Pz/AwMCAQAAAP8BBQYH/v39AQICAQEB/P39BwgI//8AAQICAgABAQAAAgQD/v7/BgYH+/z7AP8AAQECAQEBAQEAAwIC/f7+//////8AAP7+AgH/AAECAQABAAEB////AQAAAP/+AgICAP8A/wD///7+AQICAAD/AQABAQABAAEBAP//AAD/Af8BAQIB/v/+AwIDAQEAAQICAAAAAQEBAP////4BAAD////+AgEB/wD/AAAAAP7///8BAQEAAQAA/gD/AAAAAAEAAgEBAQABAP8AAQABAAAA/wH/AAEBAAACAP/+AAH/AQAB/wH/AQAAAAAC///+//8AAQECAgEB////AAEA///9AAABAAAAAQEBAQIA//8A/wAAAQAA/wEBBQUE+/z9/wEBAP/+AQEB/P/++/z7/v7+AQH/AwUEBwcG+vT1AQD9AgICCQwM+fb38/LwAwD//v7/+vj7Af//BAL/CQUEBwME/gIB/Pj49///CAoKCAcI/v7+/f77AAQE//8BAQEB/Pv8/wIDAgQDBAIBBQQGCQwLBgkJ/P38Af78+Pbz8O7s+fj4CwwKAvv6+fT2BgID9fr73+Hi///+//8AAQAAAAEAAP////8A/gAB//8A/////f7//v3+/Pz8+/r7/Pz8/Pz8/v7+BAUEAgAAAQAAAAAAAAH/AP//AAD/AP///////v7+/wD//////wAA/wABAAABAQIAAQECAgECAgIBAgABAgABAf8AAP///wAAAAAAAP8BAAEAAAABAAAAAAAAAAAAAAEAAAAAAQAAAP8AAAABAAAA/wEAAAABAAAA/wAA/wABAAAAAAD/AAAAAAAAAQEAAP8BAQAAAgEBAAEBAgABAP8AAP//AQD/AP//AAD//wD//v7//////wD//v/+/v///v/+/wD+AP//AAABAgICAgICAwMDBAMFBQUFBgMEAv///v////7/AAACAwIEAwIEAwMEBAMFBgEEBgMEBgMEAwD/AP8AAAEBAQD/AP/+/v/+/gAAAAD//wUEA/7+//8AAAQEBAMCAgYFBgYFBQcHBwQFBf//AQMDAwEBAgEBAQECAv/+/wIBAAAAAAUFBgAAAP/+/wEAAf7/AAABAQMDAwEBAQMDA/8A/wACAAAB/wD//gH//wD//wD//v//AAD/AAICAQAAAAIBAQAAAQABAgAAAAAAAQH/AAAAAf//AAECAQAAAAH/AQABAAAAAQEBAQABAAAAAAABAQAB/////gEBAf8AAQEAAQD//wD/AAEB/wAAAP///wD//wAAAAD/Af//AP/+/wEAAQICAQEBAAAAAAEBAAAA/wAA/wEAAf8BAP8A/wACAAEC/////wICAQQFBAAAAAECAf///gEBAgABAAAAAQECAf//Af///////wECAgICAv3+AAD////+/gEBAf39/P39/QAAAAAAAAIDAwAAAAsMDBcaGQQBA/z5+gH8/gIBAAMDA/v6/AMDBAUGBgoMCQQAAPLs6gH7+QcDAwMA//v29v77+//+/v8AAQQGB/7+/gMDBAABAQgKCg4QDwcKCgkODgsSEAgOCwADAgAA//j39fHw7v79+woJCAQBAfv29Pz49wsOD9HY2ufr6/z+/gAAAQEAAAD+AP8AAf8A/wD///7//v7//v////7//f39/Pv7+vz8+/78/f///wD//wIBAQAAAAD///8AAQAAAAD/AP/+/v3+/f4AAP7/AAABAQEBAQIBAQEBAAABAQACAQECAgEBAgIBAQAAAP8A/wD/AAD/AQAAAAEAAAEAAAAB/wEAAAABAAAAAAD/AAAAAAABAAEBAAAA/wAAAAAAAQAA/wAAAQEAAAEB/wAAAQAAAf8AAAABAQAAAQEA/wAAAf8AAAAAAAABAAABAQAAAQAAAAAAAAD//wAAAAD///7////+/v//AP//AAEA/wEAAQAA//8AAP8AAAABAQACAwMCAwMDBAICAwQAAQEBAgMEBQcAAgP/AAL/AAIAAwQDBgcFBwgCAwQBAgIAAP/9/f3///8AAQD/AAH9/wAAAgECAwMCAgIJCQkAAAH9//4GCAgCBAMDBAQCAgQDAwQFBQQCAgMA/wACAgP///8CAgIAAAH9/f0AAAAFBQf+/v7/AP4CAQEBAAEBAQH/AAD/AP8CAgIAAAABAAD+/v3+/v4AAP8A//8AAf/+/vz/AP8CAQH/AAAAAQEA//8BAQEAAP//AQD///8AAAD+/v7///8BAgAA//8AAP8AAAABAAEA////////////AAD///8BAQD///8AAAD/Af//AP8AAf8AAP8AAQAAAP8BAf8BAQAAAAAAAQAAAAAAAAABAAD/AAAAAAABAQEAAAECAQEBAQEB/wEA/gABAQABAQH//v8CAQIAAAABAQECAgEAAAABAQABAQEBAAABAgICAgL/AP/+/v8BAgH/AAAAAAAAAAH8/P39/f0AAgEEBQYAAAEDBAX9/P4DBAYTGBgNDA38+PkC/gABAAD8AP8BAgPy8vEBAAD8/PoFAwMA/wAAAAEEBwgHCgr7+/z29/cAAAAAAQMEBQQEBQUAAQIDBAUEBgcBAwMHCAgDBQT+/v7++/r39PP08/MDAwMFBgUBAwD+/Pz8+fkCBgb0/wDU2dv3+PkA/wEB/wAAAP//AQAA/////////wAA/wAAAAAAAP/+/f39/v38/Pz8/P39/f3+/v7/AAAEAAAAAP8AAAEA////AQEAAP//AP8AAP///v7+///+/wABAAEBAAABAQEBAAECAAECAQEDAgIDAAED/wAC/wD+AAD/AAABAAABAAD//wD//wEA//8AAAAA/wAAAAAAAAEBAP///wABAAD/AAABAAD/AAAAAP8AAAAAAAEAAP4BAAABAQD/AAAAAAAAAQEAAAABAAAAAQEAAQABAAAAAQD/AQEBAP8AAAEA/wAA//8A///+///+/f7+///9/wD+AQAEAAIAAf8CAAAAAP8AAgABAgEBAAIEBQQHBgcKBggLBQYI/v////8AAgQEAwUGAwMFAQQDAgAC/wAAAQIDAf/8/f78AwIDAgICAQIA/v79AQD/AQICAgECCQoD/v79/wEBAwUGAAAAAwMD//7+//8AAQEBAwMB/wD/AQIC/f39BAME/QD+/fz9AwP/AgIC/v3+AAAAAQEBAP8AAP/+//8AAgQE/v39AwMDAwEC/gD/Af//AgIDAP/+//8A//7/AgED/wD9Af//AAAAAAAAAAEBAP7/////AQIBAP8A///+/wABAAABAAAA/wD/AAD//wAAAQAA////AP///wAAAAAAAAD/////AAAAAAABAAD/AQEAAQAAAAAAAQABAAD/AQEBAQAA/wD//wD/AAEBAv8B/gEBAQAA/wAAAAAAAgAC/wD+//8AAQEBAQABAgIBAP//AP4BAQABAAEAAQEBAQAAAAEBAQIBAP79/v//AQABAgIA/v7//v//AgID/v7///8AAgMFAAEA/vz8AAAAAQIB9fb19fb1AgH/FBoZAAMD4+HhCgkLBgkK/Pf5Dw0N7efmDQcGBQYG//z6AAMCBgUFAf///v39+vv9AQIC/v/8Af0E/wP+AwIC//79/fz9BgIDAQEB/v79AgAA+fn3+Pf2/v/9AwYFAf0AAv/+/v/6/f/+ChAP2+ru6err//7/AQAAAAAA/gABAv8A/gD///4AAAAAAAABAAABAP8B/gD//v38/P37/fz7/v39/v//AAAABAAAAAABAAH/AQAAAQEA/wABAAAA//7//////v///wD//wEAAQAAAQAAAQIBAgIBAgICBAICAwEAAgEBAQAA/wAAAgAAAQAA/wD//wD/AQEA/gEAAP4AAAH/AP8AAAAAAAAAAAAB/wD/AAAAAP//AAAAAAAAAAAAAAD/AAAAAAEAAf8BAAEAAAEBAAAAAAAAAAAAAAD/AAAAAAAAAAAAAf8AAAAAAAD/AAD/AAD/AP79//7+/v/+///+/wD/AQABAAEBAQAA/v////8A//8AAQICAv//BAUGBwUGCQEBA/z+/gEDAgICBAQEBgIEBQMDBAICBAEBAQAAAP8B/wECAf79/f//AAICAQIDAwT+Av/+/gICAgEBAf8AAAMFBQEAAAAAAP//AAAAAAECAwAAAAD///7/AAMCAwEB//3/Af3+/gICAv7//vz8/AECAgEAAP79/gEBAP8AAAD/AAIDAQD//wEBAfz8/AQEBP////4A/wIBAAEAAQABAAD//wECAAMAAf38/AMEBAICAf////4BAAAAAAD//wABAQIBAAD/AAAA//8A////Af/+/v///wMCAwAAAP8AAAD/AAEAAAAA/wEAAAAAAP8A/gD/AgABAAIAAP8BAQEAAAEBAQEAAAAB///+//4AAAMBAP4AAAEAAQABAQAB/wD/AP7//gABAgAB/wEA/wD/AAAA//4AAQAAAQEBAf8AAAAAAQECAQD/AP3//f///////wEAAf3+/fj4+QEBAQICAv39/QMEBAEBAfv6+gEAAQgJCPTy8wcJCfn39f36+/f4+RQZGfn8/AYEBOLc2/v39goEAw4JBgcDAv79/f8CAgUFB/z8/AICAQMFBgL/+gQGBf3/APv7+wQCA/35+P37+ggBAP35BQAA/QQFBfv9/P39/QACAQMDBQABAAQDA//69/39/AQGBwQMDdzN0+/w8gAA////AAAAAQEA/wAAAAD/AAAAAf8AAQABAQD/Af8A///+//39/fz7+vz9+vz9/P/9/f///wQBAQABAAD/AP8AAQD/AAAC/wD//v/+/f79/f79/f3+/v7///8BAP8AAAEBAQEBAgECAQEBAQMBAQL/AAEAAQL/AAAAAAAAAAD/AAAAAQD//gAAAAAAAQEAAP4AAQAA/v7/AAAB/wD/AAAAAAAAAQEBAP////8AAAAAAQAB/wD/AP8AAAD/AQAAAAABAgAB/gABAQEAAQEBAAEBAQABAAAB/wEBAAD+//////////7/AP/+//7////+///+/v8A/wAAAAEA/wAAAAEAAAABAf8CAQIDAwQFBAcAAQH6/PoD/wQCAAQBAAQBAwQEAwQCAgMCAQEBAQEAAAEAAwAAAAECAAH9/v0AAAAB/wAAAQEDBAQA//8BAgIAAAACAQEAAAH//wAEAgH+//8BAgH//f4AAQABAAD+/f0CAwICAwL9/P3//wAAAf8A/v8A//4AAAL/AP4AAQIA//7//v//AQL+/wEBAQAA/wD///8BAAH+/v7//v//AP8BAAAAAP8CAAD+/wACAgH+/v4A/wEBAwIBAP8AAQEBAAACAQABAgIAAf8AAAEBAQH+/v7/AP///////vwCAAIAAP8CAQH/AP8C/wEAAQL///4BAAEBAgH///7/Af8B/wEBAQEA/wAAAQD///8A//8CAAEA/wACAQD/AQH//gAB/wD+//8AAAABAQAAAgD//wEAAQAA/v8BAAAAAAH/AQIB//8CAgEAAAEA//8AAAAA/wAAAAD9/v3////7+/sLDAv9/f0BAQEBAQAAAP8EBAMCAQH7+/oBAgIDBQPx7/D19PQTFhUTFhgSFhj8+PYJCgn89vT9/f4IBwcFAQD2+vsICAj///7+/v0EBAb/AQEBAgL/AQH5+/oB/gD29PP5AAEMDgz89wL7BwUBAgH8/wD9/P3+/wEFBQf+Av0A//4BAQD5/Pz//wADCQr3/gHj4+j//wEAAf8AAAAAAAAAAAD//v//////AP////////////8AAAD////+/v38/Pv8/P39/Pz9/f4A/wAEAQEBAAEAAP8AAAD/AP///wD//v7+/f79/v7+//7//v7//v/+//8AAQEAAAAAAgADAQIDAQIDAQEDAAAB/wAA/wD/AAD/AAABAQEA/v//AAAA/wD/AAD/AAEBAf4A/wECAf/+/wEBAP//AAAAAQD//wAAAAABAAAAAAAAAAH/AP8AAQAAAQABAQEBAP8BAAEBAQEAAQAAAAEAAQAAAAAAAAH/AP4AAQEAAAD/AAD+///+AP//AP//AP7/AAD/////AQH/AQEBAQEAAAAAAAD/AgICAAEA+/z8A/r6BQQEAgUGBQUGAwQFAgEBAAAAAAABAQEB/wAAAP/+AP8AAP/9AQEBBAMF/wAAAgIBAAEDAP7+AQICAQEBAAEA/v3+AP/+AQEB/gABAAAA//3/////AAD///0AAwID/fz8AgMCAQD+/f39AwID/wEA//7/AAH9AgEC/v78AQABAP//////AQH///8BBAMD+/v7AgMCAQAA//78AQIC//8AAAAAAP8A/v//AwEC////AAL/AP//AgECAAD/AQAAAAD/AAH/AAABAAH/AAAAAAD/AP8AAAAA//3/AAMAAQAB/gAAA////wEBAP//AAAAAQEAAAAAAAAAAP8AAAAA////AQAAAAEB/wD/AAEAAP///wD/AAABAP//AQAA/wEBAgAB/gAAAP8AAP8AAP///wD/AAABAP//AQEBAAAA/gAAAAACAP///wEAAAD//wEBAP/+AAAA/P3+CgoKAAAAAAABAAAB////AwMD/wAAAAAA/f3+AQEB8O/wDRAQDxQUFBYX9vf3AAICBAUH+/r8CAYIBgMCDg4LAfr5/wAB/v38/Pv8AP8A+vv7BQcGAgYG+f39+fv8BQAB/ff4BQIB+fcDBQgJ////AQIC//79//7/BAQF+v3+Af//AAEA/v39//4AAQcIBxASzdjd3+Hj/wD/Af8B/wD/AQD//wABAAAA//////7//wAAAAAA/wD/AAD//wD//f39/fz9/f38/f39/P39/v/+BAAAAAAAAAD/AAAAAAABAAD/AAAA/v7+/f79/v79/f7//v39/f7//gMCAgAAAQECAAICAgEBAgABAQAAAf//AAAAAf8AAAEAAAAAAQAA/wABAQH/Af8AAAAB/wACAAH+AAABAQD//wABAAD/AAAAAQAAAAEA//8AAAABAAD/AQEBAf4BAQAB/wAAAAAB/wAAAAD/AP8A/wEA/wABAAABAAD/AAABAf///wD//v/+/gD+/v/+/wD//v8A/wD//gAB/wABAQEBAQEBAAIBAQEAAf3+/QEAAP39/QD//wACAwIDAwIBAgICA/8A//8AAAAB/wAAAAAAAP//AP7//v///wAAAAECAQABAQEBAgIDAwACAv///////wH/AQICA/8A/v/9/wAA/wEBAf8BAAMCAvv8+wD/AP///wAA//7+/AIDAwD/AP39/QEBAQAAAP79/gEDAP///wECAQIDAf///wD9/gIDA/39/QIA///8/AECAf0AAAMAAP///wABAv7//v/+/v8CAf///wEBAv///wEB/wABAAABAQAA/wD/AAABAP///wAAAQEAAAD/AAMBAv0B/v7//wEBAQD/AP/+AAECAAAA/gABAf7/AAIB/wEAAQD//wAB//8AAQABAAAAAP/9AAEBAf///wAAAQAAAAAAAf8A/wAAAP8AAAAAAQEAAAAB//8AAQH/Af8A/gABAAEAAQAAAAL/AAABAP4AAAD///8AAf8A/gEAAv8A/QQEBAEBAP7+/wMCAv8AAAQEBAAAAQACAP38/AIDA/37/A0ODwcICAUGBvn3+AICAgwODurm5hgdHvTt7RMRDwH//PLq6AAAAP37/AAA//z+/gEAAQD8/Pz//wD+/wABAfv6+vv7+fz+/goLCgMEAQIBAQD+AAMEBAMGAv4BAQIBAgEGBgH//f/9Bv4GBgoSEPD8/8XKzPz8/AEAAAAA/wEAAP8AAAEAAP///wD/AP8AAP/+////AAAAAAD/AAD//v/+/fz9+/z8/P39/f39/QD/AAT/AAAAAAAAAP8AAAAAAP////7//v7+/f3+/fv+/v7//v7///////7///4AAQABAAEAAAEBAQIBAQH/AAAAAP8AAAEBAAEBAQH///8CAAH/AP8AAQEB/wAAAAH/AP8AAQAA/wD/AAABAAD/AAABAAD/AAEAAAEAAAAAAP8AAQD/AAEAAAEA/wAAAAEAAAIBAP4AAQECAAH9AQABAAAAAAD/AAD+//8AAQAAAAAA/wD/AAAA//////8B//4AAAAAAP8BAP8BAgADAwMDAwICAAL+/gECAAAEBAQDBQUFBQYEBAYCBAUDAgMCAwQBAgMCAQMAAQAA/v////8A/wAAAQEAAAH///8CAQEAAQEBAQEAAQAB/gEBAQAA///+//4A/wABAwIAAP/+/v8AAAD/AAACAgMAAP8A/wD///////4AAAEAAQABAgH//v8DAgL8/wD+//8BAAD+/f0DAwP//v78//0EAgAA/wD//wAAAP/9/P8GBwQAAAD9/v0CAgD9/fv/AAH//wAAAAD//v7/AAAAAAD///8BAQEAAQEBAgEBAAAAAAEBAQEBAAEAAAAAAQACAgL///8AAAABAAACAwL///8AAP8BAAEBAAD//v8BAQEBAgH+/v4AAAAAAAD//wAAAP/+/wAA/wAAAP8BAAAAAAAA/wD/AAAAAP8BAQEA//8AAAICAf//////AAD//wAAAAABAQEAAQD9/f4AAQH//wABAQIDAwL9/f0BAQEBAgL+/f0CAwL+/f4B/wADAgP////8/v8AAQECAwMBBAIKDA0HCAgBAAH59/oKCw3z8/IWGhv18vIaHh/9+Pbv5+b4+Pr7+/v7+/v6+fj9/gAEBAMD/wADBwcICgr7+vv5/PUBAAAAAQAGBgb//v79+vsACP8BAQH9/v8BAAEFBgcA//7+/AD+/wD/AwQEDA7X0NXm5un//gAAAAEAAAD/AP8BAAAA//8AAQH/AP//////AAD+//7//v8A//4A///+/v37+/v8/fz8/Pz9/fz/AAAEAf8AAAD/AAABAAEA/wAAAP////7+/v38/f79/v78///+////AAD/Af//AAD//gD/AQIBAQEBAAEB/wAA/wAA/wD//wAA/wAAAQEB////AAAA/wEAAQEA//8AAQABAP///wD/AQEA/wABAQEA////AAD/AAAAAQEA//8B//8AAAD/AQAAAQEBAQAAAQH/AQEAAAEAAQEAAgABAAAAAQAAAQAAAQEA////AP////////7+/v/+/v79/v/9///9AP//////AAAAAQAAAgECAwQDBwUGAQEBBQUHBgUHBAUFAgIDAgIDAwMFAwQEAQECAAAA//8A/wAAAQIAAgAB/wAAAAAB////AgICAQEBAAAAAAAB///+/wAAAgAA//8A////Af8BAAEAAQAB///+/f/+AQECAgABAAIB//8B/f7/AAEAAP8AAgABAAIBAAABAwMC/Pz9AwMCAQEBAP//AgMC/v3+//7+AQICAgEC//8A/wD9/v//AgABAwIDAAEB/////wAAAAD/AAD////8AQADAAD/AAAAAAAAAgECAQABAAEAAAABAP8AAQEC/wD+//8AAQEA//7/AAEBAAEA//8AAQABAAEBAAAAAAABAAD+AAAB/v7///7/AQIBAAAA//7+AAEBAAD/AQAB/wABAAD//wABAAD/AQAAAAAB////AAAAAAAA//8A/v/+AP8AAgEBAAAA/wD/AAEAAgID////AQICAv/+/v8BAgH9/gECAAD/AwQEAP//AAIA/////////v3+AQEBBAQE+/v8BwcIAgICAP///fz+CQoJ+/z7DA0O/f38DhESAgEA/fz7+vz7BgUG9/z99vb2//7/BAQFAQICAwUEBggIAAEB/Pz8AwMGAgEDDAoIAAAB/vwA//3//v3+/Pj7/f39AAUFBwsK//7+//36/P37AwgI7vX3y8zQ/Pv7/wAAAAABAAAAAQAAAAD/AQABAAAAAAAA//////////////////8A/v7//v3+/fz8/Pr7/P38/fz+//7+BAABAAAAAQABAAD///8AAAIBAP8A//7//v7+/f3//v78/gD//wD/AP8A/wAA/wAA/wAAAAEBAQAAAQD/AQAAAQAAAAABAAAA/wAAAAEBAP//AAH/AP8AAAAAAAAAAAABAQD/AQAAAAEAAP8A/wABAQH/AP8AAAD/AAEAAAEB/wD+AP8AAP8A/wAAAAEAAQAAAAIBAP4BAQABAAEAAAABAAABAAD//wAAAP8A/wAAAP7//v7//v8A//////8A/v7+/gEB/gAAAQAA/wICAQMDAgMDAgAAAf8AAQEAAgEBAwEBAwEAAf8AAP//AP8A/wD/AP7//gIBAQD///3//gAAAQH/AQEDAgMDAwAAAQAAAQEBAAACAgD//////wAAAAAAAP8A/gEBAQAAAP///wD/AP7//f3//wIBAQIBAgEAAv7+/wUDA///AAMDAv///wEAAQQFA/7+/gEAAf7//wL/AAMDAwD/AP/+//7//gMDAgIDA/r7+wYBAgUGBP38/wAA/gAA/wD//wICAv///wAC///+/gACAgAAAAAAAQAAAAEAAQICA/38/P4B/wACAAD/AQD/AAABAQD/AAABAAAA/wAAAAABAgEAAP8AAAD/Af///gD//wABAQAAAAAAAP8AAAAA/wIAAAAAAgAAAP//AAAA/wAA/wABAgEBAP/9/wD/AAAA/wD+/gD/AP8AAAAAAAEAAP/+/wAAAQAA/wEBAAEAAQAAAQH///8BAQECAAEAAgAAAP7/AAEAAAABAf7+AAABAQIBAgAA/////gICAwEBAP8AAAIEAvv8/v//AAIDAwMEBP8D/fz7+efo5vf19fLz8/Hy8wYCBP8A/vv+/wUHCAcKDPr7/f359wL/AAkKCwQB/wgHBv///wEBAgQEBAD+//z7+fb09AYMCwcJCAMDBPv9/f4B//8ICMTJzObm6P//AAEB/wD/AP8AAAAAAAD/AP8BAQH/AP////8AAP//////AP////8A//////39/fz8/fr7+/38/P39/f7//gQBAAEBAQEAAP8AAAAB/wD///4A/////v3//v3+/f7+//3//v7+/v4CAgMA/wAAAAEBAP8AAQABAAIAAQAAAQAA//8B//8BAQIAAAD/AP8AAAEBAf///wEBAQD/AAAA//8BAQH///8A//8BAAH///8AAQAAAQAAAAAB/wAAAAAAAAAAAAAAAAEAAQAA//8BAAAAAAEAAf8BAQAAAQAA/wAB/wABAAD/AP///gD+//7///7+/f7+/fz+//8AAAAAAAEAAAIBAQECAgMCAgIBAgMEBQYGBQcJCgoHCgoEBAUCAwUDBAMBAgH/AAABAQABAAAA/v/9/v0BAQH9/v4BAQABAAIDAAL/AAACAQEAAAAAAAABAgH+/P////7///7//v/+/v0DAwIAAAD//v8BAgEDAAL+AP4BAAH/AP4CAQH//v/9/v0EBAX+/f0BAQIBAQIBAAAAAQABAAH/AP/+/v8CAf4AAAEBAgIAAAD+/wADAwQFAv///v///f8BAQD+/gD/AP//AP8BAP////4B/wH9//4BAAACAQEAAP///wAAAAEAAAAAAQH/AAAC/wEAAQH///8AAP8AAQAAAAH//v4AAgICAAAAAAABAP//AP8AAAD/AAAAAAAAAQD///8AAP8AAAH/AAEA//8AAQH///8BAQEBAAEAAP///wD///8AAQEA//8AAAEAAQAA/v8BAgH//v4BAQH+/v4BAAEAAQAC/wD/AAH/Af8CAQH+//8BAAH9/v4CAgH9/wEBAAEAAP0CAgECAgP+/v8DAgQEBAT////+/v79/PoBAQIHBgMAAAH7+/v////w7+7+/v4KDQ4C//8DAgH69fX8+vkHBQcFBgf5+vsBAQEGBQQGBQUHAwMEAgH+/P0BAQIBAQEBAgMCBAQCAAEGBwX+/fv7+PcDBgf6+/sABQXl7e7Q0tT7/Pv/AAD//wABAAAAAP8AAAEAAQAAAP//AQEA/wD//v/+/////wD/AAD//v/////9/v79/fz8/Pv8/Pz9/v0A/v8EAAEB//4AAP8A/wD/AAEA/wAB//////7+/f39//38//79/v7+//8AAP///wD/AAD//wABAAABAAEAAQAAAQABAAD+AP8AAAH/AAABAQAB/wD/AAABAQD9/gABAAD/AAAB/wD+AQEB/wIB//7+AAEAAP8AAQH//////wD/AAH/AAAAAAAAAQAA/wEA/wEBAAABAQAAAQECAAD+AgEBAQH/AAEAAf8AAAD//wD+///+/v///v/9/gD/AP/+/v3//wT/AAD/AAABAAAAAAAAAQEABQUEBgYFBAQFAQEBAQEBAgIBAAAB//7/AAH+AP8B/wD/AAAA/v7/AAD+AAAA/wABAgIBAgICAQABAQEBAQAB/wD/////AAEAAP4A/v//AP7+AQH//v79AQEBAQEC/////gH/AQEB/v79Af8BAgIBAwQF/f39/fz8AwQEAAAA/v7+AwQDAwED//4A///9/fz8AAMDAQECAP8AAgMC/f3+////AwME/Pz8/f7+AwMFAAD+AgEB/v39AQABAP8A/////wD/AP///wAA/v8BAv8BAQAA/v3/AQEAAAACAAAAAP8AAQEB//8BAQEBAQAA/wEAAAD////+AAEAAAAA/wABAAD/AAD/AAABAP8A//8AAAACAQAA////AQABAAAAAQEA////AAEAAP8A/v8AAAEAAQEA/v8A////AAD/AAD///7/AAAA////AAAAAAEB///+AAEAAP8AAAACAAD/AgMDAP////4AAQAAAgIDAP//AgIDAAD/AQECAAH+BAUFAQEB/vz9/v7+/v8ABQQGAAAA/f78AQEA/P/+BQcIGx8h+/b16fz69PX2+fPzCAcHBgsKAwQECgYIBQcHAQD/BQEB/fv7AgMDAgUBAwD/AgMFAwQGBAYGAgYA/v/9/gEB/v/+/Pj0+/36BA0L1c/R8vP0AP/+AAAAAAAA/v8AAQAA/wH/AP8AAQEB//8AAP8A//////8A//////8A/v////////7+/Pz8+vv7/f39/v3+/P39BAEAAQMCAf7+/wEAAP//AAEBAAAA///+/v///v7+/f38/P7+/P7+/f7/Av//AP8A/wAB/wABAAABAf8AAQAA/wEAAQAAAAABAQAAAP//AAEBAP7/AP8BAQD+/gD/AAAA/wD/AP///wAAAAEAAP8BAAD/AAAAAQEBAAD//wH/Af8A/wABAAAB/wD+AAEBAAAB/wABAAAAAAEAAQAAAQEAAQEAAAAA/wAAAAD//////wD////+/v/+/v7+/v///////v///wAA//7/AP7+/wEBAgIC/wECAgECAf8AAP7/AAD9/gL/AAEBAwAB/v4AAAAAAP//AAAAAAABAQH/Af8A/wEAAf///wAAAAAAAP7//////v7+/gH/AAABAf///wIDAf/+AQAA//39/QEB/wEBAP39/wQDBAQEBf///gAAAf8AAAQFBf////79/gQFBP7//fz6+wMEBAICAAD/A/8D/v///wEBAP39/AICBQEBAf//AP///wMEBP///gEAAAAAAQAAAAEBAf////7//wMA/gAB/wEBBP8AAAAA//8AAP7//gEBAgH/AQEBAP8AAAEB/wAAAQICAQAAAf8BAQEBAAABAP8BAAIAAQAAAAAB///9/////wAAAAAAAQABAAD//wAAAgAAAAABAAEAAP8AAQEA//8AAP8AAAABAAAAAf7+/v7//wABAAAAAQAAAP///wD/AP//////AAAA/gAAAP//AAAAAP///gEAAAICA/z8+wIBAP8AAAICAv7+/gIDA/79/v//AAEAAQABAgD//QEBAAABAgQEBAMCAv79/f39/wMCAwAE/w8PEPz5+e/n6PLs7QD+/w0ODwkMCwUHBwUEBAQEBQAAAQYEBQD9/gQFAwQHBwMDAgD9+wQEBAACAgABAf8A/wMIBgYEBv8CAvf59gYNDPD8++Ll6Pz9/v8AAAAAAAAAAAEBAP8AAAEAAAAAAP8A/wEAAf4A//8AAP//AP//AP7+/v7/AP////3///z9/fz7+vz8/P3+/f78/QQBAQD+AAAAAQAA/wAAAQD//wAAAAD+/////v7+/f3///7+/f0A//7///4A/wEA//8AAAAAAAABAQIA////AP//AAAAAf////8BAAAAAAAAAAABAAAAAAEAAQEB////AAABAQEAAP8A/wH/AAEBAAAAAAAAAf///wD/AAAAAAAAAAABAAABAAEAAQAAAAEAAAEAAAABAAAAAgAAAQAAAQEBAP8AAAAAAAD/AP8A///+/v7+////AP//AP//AP///wD+/v4CAgAAAAAEAwMEBAT+/gECAwMCAgMCAAL/AP////////////0BAQICAgIAAP//AAAAAAD+/v0CAgMBAAEAAQABAQL///8BAAEAAQAAAAEA/wD//v////8B/wD+//8BAQIA////AP/9/PwCAQEBAgH6/PoD/gQDAwIBAQEBAQEAAQABAAIBAf/9/P0EAwQCAf38/f3/AQEBAgEDAgT7+/sAAf///v7////+/v4EAwL8/f0EBAQAAAH+/v4DAgL+/v4AAgH/AAABAP//AAEAAAIAAQEBAQEAAAD//wAAAf8BAAD///7///8CAgL+/QABAv8BAQEBAQEBAQD/AAABAAAAAAD/AAACAAD//gD//////v8BAgEAAP8A/wEAAAH/AP8BAQAA/wD/Af8AAAAAAQEBAQAA/wD/AP//AAD+AP8AAAEAAP7+/v8BAAAA/////////v8AAf///wEAAAAAAAH///8AAAABAgP+/v4AAQIBAf4CAgP/AAACAgL//f0CAgH//wABAQH//v79/gEAAAABAQECAgT//v7/AAACAwMAAgABAgH8+fry7/Dx7e0FBAYQFBYHBwUEBQUA/wAB//4BAQIDBQQICQv7+PgBAgMJCgr6+vkCAwIBAwMAAwL+Af8A/wEFCAoBBgX6/f0DAwsABgPg09Tp6usA//4AAAEAAP8AAAAAAAAAAAAAAAH/AAABAAAAAAAAAAH////////+/v/9/wD+///9///+///8/fz7/Pv7+/r9/Pz9/v4EAAAAAQEBAAEBAP8BAQABAAEA/wAAAP///v7+///+/v/+//////////8AAQAAAAAAAAAAAQABAQEB/wAC/wABAP/+//8BAgEAAAABAQEA//8AAAAA/wD/AP///wAAAAABAP//AAABAAD/AAAAAAAAAAEA//4BAAAAAQEB////AQAA/wAAAAAAAAAAAAAAAQABAQEBAAEBAQAAAQABAAD/AAABAAD/AAAAAQAA/wD/AP////////7+/v7+/v7+/v/9Av8C//8BAgEBAQICAwECAgMBBAMEAgICAAEAAQAAAQD////+/wAAAf//AP///wH/AP///wH/AQABAP/9AQIEAQEBAAD/AQEC/////wD/AAD/AQIB/f78AP///wD////+//7/AwQEBQIF/wMD/f39/f39AQAA/f78//4BBQUF//8BAf8B/wAA/wABAgIB/P38AQEAAwQD/v7+/vz9AQEBAwQD/v7+BQUF/f7+AAAA/wD/AgECAP//AgIC/wD/AgIDAP//AP8AAQEA/gD/AQAAAAEBAQICAQEBAP8AAAD/AQECAP8AAP4AAAIAAQAB/wD9//8BAQEBAAD/AAACAAD+AAACAQD/AQAA/gAA/gD//wD+AAEAAAEBAAAAAAAAAAH/AAAAAAABAAEAAQEB/wAAAAEAAQAA////AAAAAf//AP8BAP//Af8AAQAB//7+/wAAAP8AAAEAAQABAAEAAP///v//AAAAAwIC/v//AP8AAwEB/wIDAQABAQAA/gD///8AAgEC/wEA/v/+AAEAAQEB/v/+AwMD///+AAD/AQIBAP8BAP/+AP//+/r6/Pv7DxMVABQS+vb2APr5Av3+/Pz9AQIBBQUEAwID/f8A/gEDBwcIAQUGAwD+AP78AwMFAQMCAgEC/gIBAggH/gMDAgQEBgMD5+/uzdHT9vb3//8AAAAAAAAAAAABAAD+AAAAAP//AAEA/wAAAf8B//7///7+/v39/f7+//7//v8A//8A/v7+/f38+/v7/Pz8+/v8/Pz8BAABAQAAAAEAAf8A//8AAAD/AQH/AAAA/gD+/f7+/v79/f7//v///gD//gABAv//AAAAAP8BAP8BAv8AAQAA/wAAAAAAAAABAQEAAf///wABAAD//wEAAAEBAf///wEAAP8BAAD/AAAA/wAAAAAAAP///wAA/wAA/wAAAAEAAf8CAgD9/wAAAQAAAQEBAQEBAQEAAQAAAAEAAgAA/gAAAP8A/wABAAD/AAAAAAEAAP/////+//39/v/+//79/f/9/QADBAEBAgAA/wMDBAQGBf7+/wMDAwAA//7//wH/AAECAQIBAf////////4A/QD/AP///gABAP8AAAMDBAAA/wAAAAABAQEBAf4A/gAAAAD/AP/+/QEAAP4A/////f/+/v//AAD8/AMDBAAAAAICAgEBAPz7+/7+/v3/Af3+/QMDBQICAgUEBgICAgAAAAICAv7//v79/QAAAQIDA/79/f///wEBAv39/gMDAv7//wD/AP8A/gEBAwEBAf////3+/gEBAf///wABAQD/Af///wIAAAAAAAAAAAAA/wD/AQD/AP7//QEBAQD/AP8A/gABAAEBAQEBAQAAAQAA/wEAAQAA///+AAAB/wAAAP//////AP///wD+/gABAQIBAQAAAAEBAAAAAP8AAP8A/wAAAQD/AP4A/wAAAAEAAQABAAIB//4AAP4AAAD//wABAAH//wABAQEAAQAA//7//wAA/wAAAAEAAf7+/v7//gIBAwEAAAABAP//AAD/AP//AAMDAwD//wAAAAH+Af8AAf8A/gECAgIBAf79//8CAP/9/wD/AP//AP39/f8A/woNDQgMCgYEA/Tv7fLp6f/8+wkLCwECAQABAAMBBAIBAQIDBQcJCAECAQUDCP/9/AMDAgACAv0CAQQGBf4CAwAEAwUGB/v+/+ns7+bn6v7+/wD/AQAA/wAAAQEB////AAEAAP8BAAAAAAAAAAAA/wABAP8AAf8AAf/+//7+/v7+////AP////79/vz7+/r6+vv8+//+/gQBAAABAQEAAP8AAAAA/wAAAQAAAP/+///+//7+/v3///////7+//7//wAAAAAAAAAA/wEBAAEAAAABAQH//wH/AAAAAAAAAAAAAP8AAAAAAAABAQH///7/AAAAAAD/AAAAAQAA/wAAAAAAAQAA/wAAAAAAAAAAAAAAAAD/AP8AAP8AAQAAAP8BAAAAAAAAAAAAAAABAAD/AP8AAP8AAQAAAP8AAAAAAAD/AAH///8AAAH///7+/v/+/v7/AP8AAAABAAEBAQEAAQAB/gEBAAEA//4AAAAAAQEBAQABAQD////+/wAAAQAAAP///wABAP8BAQAAAAEBAgEBAQEBAQIBAAABAAD///8AAQAAAAAAAP8AAP//AP8AAP3///7//v4BAP///v77/vwBAQIDAgIAAQEEBgb+/f79/fwAAAAA/wAA/wH9/v0C/wEBAgEBAgMEAgP/AQD9/P3///8CAwP7/Pv//fsEBAUAAQEBAAAAAgH//v/+AP4C/wACAgP7+/oDAwMBAAEA//4BAAAAAAD/AQEBAAAA/wD+AAADAgAAAAABAQL///4BAQH/AAD/AAABAf8AAAAAAP7//wEBAgH/AAABAQD/AAAA//8A/wD/AAD/AAABAQABAQH/AP8BAAEAAAEBAAAAAQAA/wD+AP8BAQAB/wAAAgAAAAH/////AP////8A/v////8A/wAAAAD///8BAAD+//7//v4BAQABAQH///7//wACAQIBAP///wAAAAAA/wAAAQECAQL//wD/AP8A//8BAQIBAP8BAgMCAQD+/v7/AAAAAAAAAAAAAQAAAgEBAQIEBQYACgH//fz9+vkDAgMKCgz7AvcFBwf+/v7//v8BAgD+/v4GCQgGCgkDAQH+APwB/wACBAH+AAEAAwMAAwMBBQMDCAj+AgPq6OvJysv49fcA/wD/AP////8AAAAA//8AAAEAAAABAAD///8BAQD/AAAA///////////+//7+/////v////7//v/+/f38/P37+/z7/Pv8/f0EAQEBAAAAAP8A/////wABAQEAAAEBAQD///7+//7+/v39//7///3/AAX/AAD/AQAAAAAAAAECAQEB//8BAAAAAAAAAAEBAQEBAAAAAQD/AP8A/gD/AAABAAD+AAAAAAAAAP8AAAAAAAAAAAABAAH/AQEB////AAEAAP8AAAEBAf4AAQABAAEBAQEBAAAAAQEAAAEAAAAAAQEAAQABAQAAAQEAAf8AAQABAAD/AQEB//////4A/v7+/v7///7//v///v/+Af79AAAB/f39/v7+AQECAAEBAQABAAAA//7+AAIBAQIAAQAB/gD+AP8A////AQEBAQL///8BAP8BAP/9/v8AAP8BAf/+/wAAAgECAP///v7+/f38//39/fz8Af///f/+AAAAAQACAgP//QEAA/8C/wEBAwMDAwME/wAA//3+/wAA/v7+/wIBA/4CAQMBAAECAQD/BQUF/f39/fz7AQAAAwME/Pv7AwMDAQIBAP/+AgMD/fz9/wP+AAD/AQEB//7+////AgIC/wD///8CAwD//wAA/wD/AAAAAAEC/wAAAQAAAAAAAQEB//7+AQEBAAAB/wD/AQAAAAD/AP8BAQEAAAEAAP///wAA/wD/AP8AAQAAAAAAAAEA//7/AAABAQEA/wAA////AQEBAQEBAf8A/wH/AQAB/wAA//4AAAABAQAA/wEA//7+AP8AAP//AQEB/v/9//7/////AAEBAP7+/wAAAAAB//7/AAEBAQAA/wAAAQIBAAAA//8AAAD/AAAAAAEAAAH/AQABAwIC/wD/AQEBAgEC/f/+/wAAAgIB//4A/gEB/P3+/Pv7Af//////BAUF+QICAQICAgECAgQC/fz9AQEABwgGBAYGAwQE//78AAAAAAQCAgYGAP8AAQIC/AD/AgQDAAQD+/r+09PT3Nzc+vr6/wAAAAAAAQAB/wD/AAEBAP//AAD//wABAAAA/wAAAQD//wABAP///////v7///7//v/+/v7//wD//f79/fz6+/z7/fz9/fz9BAEAAAAAAAAB/wAAAQEBAQAAAAAA/wAAAP///v7//v7///7+/v8AAAD/AAAAAAAAAQEBAQEBAQECAgECAgD+AgAA/gD/AAAAAAEAAf8AAAAA/wEAAf8A/wEAAQAB////AAEAAP8AAAABAQD//gD/AP8AAAAAAQAA/wAAAAEAAP4B/wD//wD/AAAAAAEAAP8AAQEAAQECAAD9AQEBAQEBAAAAAAAA/wAAAAD/AP7+/v//AP8A///+//7+/v7+/v/+AAD//wD/AP8AAP8A///+/wMEAwEBAf8A/wAA/gEBAwAA/v//AQABAQD/AAAA/wEBAAECAAEAAAD//gD/Af3+/wMAAP7+//8BAQMDA/3+/gD//v7+/f/+/fz9/P/9/QH//v3+/f7+/wIAAQIEBAH9/fz/AAABAgEDAgMCBAIDBAIFBQEAAP///wEBAv8CAvr7/AMDAgQDBP7/AAAAAQQFB/z9+wEAAAUCA/v8/AUFBf8AAAD+/QEAAAMBBP///gAAAP8AAAEAAPz9/AICAgIBAQIBAQAAAP///wEBAf///wEBAP/+/wAAAP///wAA/wEAAQH//wAAAAABAQEBAQEBAAEBAP8AAP8AAAAAAP////7//gEBAQH/AP///wECAQAA//8AAf8A/wAAAAD/AAEAAQABAAEAAQAAAAD///8A/wAAAAECAQD+/wEBAAAA//8A//8A/wD//////wABAP///wAAAP//AAEA/wEBAQD//v8BAv8BAQEAAAAAAQAA/gAAAAAAAAH/Af4AAAAB/wIBAv3+/gIBAvwA/QEAAAMCAgD///0A/f7//wICAgcJCfv39wEBAff4+P39/QQFBv7//gUDBAQIA/79/v4A/vv7+P39AQMEAgADAgEBAf7+/gACA/3+/gADAwEEBPv8/uHi4tLR0vr4+AAAAAD/AAD/AAAA/wD/AP8A/wAAAAD/AQEA//8AAAH/Af8A/wH/AP8A//7//gAAAP8A//////7+/v7+//7+//z8/fz7+/v7/P7//gQAAQABAAEAAAEAAP4AAP8BAQIAAAD//wD+/v///v///v7+/v////7///8BAgABAQABAQECAQIBAQIAAQIAAAEAAAAAAAAA/wAAAQAAAAAAAAEAAP8AAQABAQH//wEBAf/+/wEAAf8B/wABAAH/Af8C/wD+AQAA/gH/AP8AAP8A/wAAAAEBAQH+/wAAAAAAAAAAAAEAAAICAf8AAAAAAAABAQAAAAEAAAD+AP8B/v7+/fz9/f39/v7//wD//wEAAAD/AAEAAQECAAEBAAEBAgIAAAD///8A//4B/gIAAv4AAAH//v/+AAECAAIAAQD/AAAA/gAAAf///////wACAQH9//8AAQIDAwT//QD9/v3//fv9+/v+/P3///4A/wEA/v79+vr7/vv/AAEGBQYFBggCAgL9/v39/P8BAQMDBAMCBAUFBAQDAwQAAAECAQIDBwT8/Pz6+/sFBQYCAwP8+/sIBwr5+vgAAf8DAwT9/v4DAwIA/wABAQD+/v7///79/f0EBAQCAwP//f4BAgEBAQEAAAD+/v4EAwP///8AAAD///8BAQH//wAA/v8CAgEAAP//AAACAQEAAP8AAAEBAQEAAQABAP///v///wD///4BAAABAQEBAQABAQEAAAAAAQH///4AAQABAAEBAQD///8B/wD/AAEBAgEAAAACAgL///7+/f8AAAAAAAD///8A/wD///8A/gABAAD///8AAAD/AAAAAAD/AAAB/wD/AAAA//7//wH/AAAAAQAAAAEAAAD9/v0BAAEAAAACAQL+//8CAgH+/v8BAQEAAQIAAP//AAAAAQEFBgYEBQX9/PwEAwP49fMLDA/7AwX58/L///7+//8C/wIDBAT//v3//vwBAwP+/v0AAgEBAAD+//79/Pz+AQIICgj/AQLo6OvCw8To6Of///8AAP8AAQAA/wD/AQEAAP8BAAAA/wD+Af8AAAAAAAD/AP4BAAH/AAAA/wAA/wAAAP///wD/AP///////v79/f38/fv7/Pv6+/r9/f0EAAABAAEBAAAAAQEA//8AAP//AQAAAAD////+/v79/v7+///+/////wAAAAAAAAEAAQACAQEBAgEDAQIC//0AAAAAAAD/AAEAAAD/AP8AAAD/AAAAAAAB/wD/AAAAAAABAQH/AQAB/v8AAAD/AQAB/gD/AP///wH/AAAB//8AAAAAAAAA/wAAAQAAAAABAAAAAAD/AQAAAAAAAQEAAQBCasLCAAEAAElEQVQAAAAAAAAAAP//AQD/AP8A/v79/vz9/v7//f3+/v79/wD//wAA/wD///8AAAEBAgICAAD///7+AAAC/gL/Af7+AQABAQEAAgEBAAD/AP8AAQIA///+AP8A/wD/AP/+/QECAf//AwMA/vz7/v///v79AP/+//37/fr6/Pr6AP7+//7//f/+/Pz79/f39/f5CAoKBwcHAwYGAwUGAgQFBP0GBf////3+AwP+BgYH/f7+/vv8AwMDAQIC/v/+BAIEAwUF+fr5AwQF/Pv6AgEAAAEB//7/AAAB///+/f7+AQAB/f39AQEA/v79AQEBAAABAAAA/vz+AQMCAP7/AAAAAP8AAAEBAAEBAP//AQEA////AAEAAgEC/wD/AQABAQEAAAAAAP8A/wAAAAAAAP//AQAAAAECAQD//wABAAAAAQEBAQAA/v//AwECAAEBAQAB/wAAAAEBAgEB/wD/AP///////f7/AP/+//7/AP8A//8AAf8AAQAA/wEAAf8AAAAA////AQABAAD//wEB/wAAAAEA//8AAQEA//7//wABAQH/AQECAgEAAAEBAP7//v//////AAD/AAEAAgIC/f//AAAAAP//AgIC/f/+AP//BQYG+f38BQYHAgIDAwEAAf78/fr6/v39AwUFAQAA/f/+AgMD/v3+AQQDAP///v/+/Pr9+/38CQ4PAAIE9/j629zd3d3e+fn5//39AAAAAf8A/wEAAP//AAAAAAAB/wD/AP8AAAEAAP8AAAEB/wD/AQABAAAA///////////+//7///8A/v7//v7+/fz9/Pv7/Pz8/f7+ACuB1H4EAAAAAQAAAAAAAP8AAAD/AAAA/wAAAAD///7+/////////v7+/v7+AAD//wD/AAABAAECAQEDAQMDAgID/gEBAAAAAAABAP8AAAEAAAH/AP8AAAD/AAD/AAAAAAAAAQAA/wEA//4BAAH/AAABAAD/AAAAAAIBAf4A///+AAABAAD/AP//AAD//wAAAAAA/wAAAAEAAAAAAQABAAEBAQAAAQAAAQAAAQEAAAAAAAD/AAAA/f7//f38/v7+AP8AAAD/AP7///7/AwICAgIC/gIC//7+//8AAAD/AP//AQEBAQEAAAAB////AP//AQIB/v7/AAD//wD/AQAB/wAAAQH/AAD+//4B/wD///7//////vz9AP7/AwME/wUA+vn3/fz6/f38+/r68e/t6+zt/P7/EBMUDA0PBwoMAgICBQUGAwMDBAUGBQcHCgkKCAgKAwMB/v7/AgEBAAEA/P7+Af//AwMDAP/+AwMD/f79AQAB/v7+AP/9/f7+AgIABAMDAQEA/v79AQAAAgMDAQEA//8AAAEAAf7//gH/AQIB/v/9AQABAf4CAAAAAAAB/v//BAAC/wAAAf8AAAIB///+AAAAAQEBAP/////+/v/+/wAAAP/+AQACAQIAAAAAAP///wAAAgICAAEA/wAAAAD/AQEB//8AAAD/AAAA////AP//Af8A/v//AQAA/wEBAgEB/////v3+AQAA/gD/AP/+/wAAAQD//wAAAgEBAAEA//8AAAAB/wAAAAEBAAD///8AAAD+////AAD+AAH/Af4A////AAEAAgEC/gIAAv7+/QD/AAEAAP8AAQEAAQMD/Pv6AQECAAID/wD8/f798O7uBwYDCgoM/wAA+vv7AP/+AwD/AQICAAICAQEB/f39+vn4AwcGAgUF9/r61tnb0tLS+ff3//7+AAAAAQAA/wAAAAD/AAABAAD/AP//AAEBAAAAAQD//wEAAAAAAAABAAAA/gAAAAAA/v7//v8A//8A//8A/wAA/f3+/Pz8/P38+/v6/f39BAEBAAAAAAEAAP8A//8BAQAA/wH//wD///8A///+//7+/v///v///v///wEBAQEBAQEBAAICAQIBAgEBAgIBAf//AAAAAP8AAAH/AAD/AQAA/wAAAQEA/wEA//8BAf7//wH/AP8B/wD+AQEB////AAABAAD+/wD/AAAAAQAA/gAAAP8BAQH/AQEAAQABAAEBAAAAAQAAAP8A/wAAAAAAAf//AAABAAABAAD/AAABAP8AAAAA////AP//AP8CAQD/AAABAAIBAQEBAQMCA/8DAP4C/v///wEBAAICAgEBAQAAAAEAAAEBAQABAAAA/wD//v7+/gABAAIBAgECAQAA/wD/Af8A/wAAAAAAAQIBAgEFAgD+BAH//gEEBP8BAQEDAwH7+v38+wIBAQYFA/n19fLx7vj6+g37/AgJCv7//gMBBPr6+gP39vr39wcI9QcHCAoJCwQFBgMFBP///wAA//3+/gICAf7//gD+/wIEA/8BAP79/v7+/fr6+wkICAD//wEBAv8B//78/P0EBgQDAf8AAP8BAP8A/wH/Af7//wEBAAEC/wABAf8A/wAA/wAAAAD+//8BAQH//wABAf///wAAAP7+/v///wD+/wEAAP8AAP8A/wL/AQABAAAAAAEAAP/+//8BAAEB//7/AQEBAQAA////AP8AAP/+//4A/wAA/wEBAf///wD/AAAAAAECAQL/Av39/P7//gEA/wAAAQACAQD/AP///v/+AQEBAQAAAAD+/wACAQD//wEAAf8A/wEBAQAA//8AAP8B/wEBAf///wEAAAEBAP8BAgD+/wEAAv4A/QACAv79/f//AAADAgD9AQIEBAQFBgwPDv37+v///gMEBQkDBP/+/QD//AAAAPz//v39/Pn4+P8B/wQDCfv9/Ovt8MvMzN3c3fv6+v3+/v8AAAD///8BAAD/AQEAAP//AAABAQEAAAAAAP8AAAD/AAAA/wABAQAAAAD/AP7+////AP/+//////7+/v///////vz8+/38/fz8/Pz9/gQBAAEBAQAAAQABAQEA/wABAQEBAAAAAAD//v////7//v7+/v7//wD///8A/wABAAEBAQEBAgECAwECAgL9AAEAAP//AAABAP8AAAEAAAAAAQAA/wAAAAEAAAEB//4BAAD/AAAA/wAAAP//AAAAAAEB/wH/AAEAAf8A//8A/wAAAAAB////AAAAAQABAAAAAAEBAAABAQAAAAAAAP//Af8CAQD+/wAAAAAAAP///////v//////////AP/+/v7+//8AAAEAAgIBAgEC/wAC/gD//wAAAf8AAAD///4AAQEAAAEAAAD///8BAQAAAP7///7/AP8A/v/+AgAC/wMBAQD/AAAAAAABAAECAgD//wECAQIAAQAAAP8C/v4EAP8AAgEDBAX9/v8OEf8DBgb75ubh5eUBAwYJC+0EBAQKCQkRExMMCwwMCwr+/AH9+wH6AP7+/v0HBggFBwcDAwQDBAIDAwL+/f4CAQL/Af/8/fz//v7///4AAP8DAgL+//7//v78//wCAQEBAwMB/fwBBAT///4FAwUAAAD+//4BAQEAAAH///8BAQH///8A/wD/AAAAAQACAgEBAQEA//8AAAH/AP8AAAAAAP8A////AQAAAAAAAAD/AAABAAAAAAD/AAAAAf8BAAH//wEBAQEBAQD//wEAAP8A//8AAQEA/f7+/v4BAAECAQD8/v3+/v4A//////8AAAAAAAD+//4BAAEA/gH/AAAA/wAAAAIAAAEAAP4AAAEA/wABAQEAAAABAP8BAQD+/gEAAP8BAAH/Af8A/wD+///+/v8BAQAAAgD+/P8AAQEB//////8BAwIB/wEBBwH/AwMA/f0LDxH28vD7+vv+//8A//8AAP8BAQAAAf/////8+/z7+/oHCggABAL19vbU1dXf3t/6+/r+//4AAP8AAAH/AAABAP8AAAD/AAAAAQAAAAAAAAAAAAAB/wEAAP//AQEA/wD//wAAAf8A/wD//wD//v/+/gD//wD+/gD+/gD9/f39/f38+/z9/PwEAAAAAAEBAAAA////AAEBAAAAAAAAAP///////f79/v7+//7///////8AAAAAAAAAAQEAAQECAQECAQIC/wAC/wABAAAAAAAAAAAAAAH/AP4BAAD/AAD/AP///wAAAAAAAQEAAAAAAP8AAf///wH/AAAAAAAAAAAAAQEBAQEB/wD/AAEBAP//AQAAAAEBAQEA/wAAAAABAAEBAQAAAQAB/wEAAAAA////AAABAQAAAAD/////////////AP8AAAABAAAAAP///wAAAAAAAAAA///9//8AAAEAAAD+Av4CAAH//wABAQH//v8AAP//////AAD+/v/9Af39AP8EAAAEAgICAQAAAAD/AAAC///+/f7/AwME//7/AQIBAwMEAQIC//3+//8AAAACBQYH+Pf64+ft4OLm+fviBQYHCAoIGxkcAgEBCQcFFhQSDw8MCwsLEhIVBQUC+/sA/v/9+vv/BAYGBAMEAAAAAAICAf3+//8AAP7+/v7+/v78AP0AAwAC/v7+/wEBAgMC/wD//v/+//3+/wT/AQEBAP8AAQEABAMC/f79//79AQEBAQECAP//AgACAf8A///+AAAAAAD/AP8AAAD+/vz+////AAEBAQACAQEAAQEAAP//AAEB/wAAAQAB/v8AAgEAAAAB//4A/wH/AP//////////AAAAAgEB/v7//v7+/f7+AP//AQAA/wD/AAD/AAAAAgEC/////wD/AQEBAP7/AAH+/v4AAQIAAP8AAAEAAgAC/gD/AAAA//8AAQEA/v4AAQAAAP//AQEB////AQEBAP8AAgIDAAMA/////v3+AgIC//7//wH/AP4CAgMD/QQEAgQFBQYG/P7+AQAA/P78/v79AQAAAAEA/wD++Pn3/f/9AAMC9/n53eHlzs/Q9fX1//7+AP////8AAAD/AAEA//8AAAAAAAEAAP8AAAD//wAAAAAAAAEA/wAAAP8AAAAAAQEA/wAA//8A/v0A/v7//v3//v7////+//7+/P39/P38/fz8/Pz7BAEBAQEAAAAAAQAAAAD/AAAB//8AAP8AAP///v79/v3+/P3//P7+/QD//wAAAAAAAAAAAAIBAQIBAQABAv8CAf//Af//AP//AAECAAD/AQEB//8AAAD/AAABAQD/AAAB/wD+Af///wABAAABAQD+AP8B/gD/AQD///8A////AAD/AAAAAQEBAf//AQAAAAAAAAAAAAAAAAEAAAABAQEBAAAAAP8AAAEBAAD+//8A/////wD///7+/f7+/f///wAA/////////wD///7//f7//wAAAQEBAAECAQEBAgABAAD/AAAAAP//AP///v///wAA//79/f8A/gEBAQD//wL/AAAAAAABAf/+/wAA/wMDBAD9/QAAAAMEAwEBAAADA/79/f4C/gL7/AkLC/76BAwNDCAgIfb5/tLW0w8SExIOEvT6+/79/Ors9urt7RANCxwaF/r6+Q339Q0NDwgKCgMFBvr4/gEICQICAgH/AAECAQEAAQD/Af///vz8/QEBAQAB/v7//wIAAgD/AP//AP38+wEBAv/////+/wEBAAEAAf79/f7//QIBAv8BAAIBAP8BAP8A/wABAAEAAP///wEAAP//AP///////v8AAAMAAgABAAD////+/gECAwAAAAL/Af4A/gEAAv//AAEA//8AAQD///7+/gAAAQD//wEBAf7//v///gD//gICAgH+//7//gH/AQABAAAAAAD//wAAAQEAAAAAAAABAQAAAQEAAAEAAQACAP8A//7//v///gABAgD/AAAAAQIBAP7//gAAAQIBAf4AAQAB/gAAAAH+AAMDBP/+/gAAAQABAP8A/v////4B/QABAAIDAgEEA/3///r6+QICAAUFBP3+Af39/AEBAQABAwYKCQADAPr+/dze4srL0evs7v7+/wAAAAAAAAAAAAAAAAD/AAEAAP8AAAAAAAABAAD/AAAAAAAAAAD//wAAAAABAAD/AP//AAH/AP///wAA/v/////+/v7+/v78//4E//37/fz7+/7+/vv8/AQA//8AAAAAAQABAAH/AP8BAAEA/wAA//////7+//7+/v7//v7/////AP7//v//AP8AAAD/AP8AAQEBAQEAAAL///8AAAAAAAABAAH/AP////8A/wD//wAAAAEBAf4A/gD/AP8BAAD+//8A//8AAf8A/wAAAf8AAQAA/gABAQAA/wEAAf7+/wAAAAABAAAAAAEBAQAAAQAAAAEBAAAA/wABAAEBAf8AAAAAAAEAAP//AP79/v39/P3+/f79/v39/f7+/v3+/v4CAgIA/wEB/wAAAAAAAAD+/v8BAv4DAQICAgEAAAD///8A/wAAAQH//v4BAQIA/wABAQMDAgQA/wEAAAEA//8DBAQBAQIBAAECAgP+/v7/AAAA/wABAQACBAQA/P4EBgf//v76/f0ODhDj5OkMDAoODxEOERT/AgL/AQD29/f+/v399/ry9Pj2+Prz9fgZF/r8+fgICgoMDhAICQv6+vcFAwYBAQH9/fwDAgL+//0BAQEBAQABAAH9/v4BAAH+AP8D///9/fwEAgQBAAH+/P0BBAAAAAH9/v0CAgEBAAABAP/+/wD///4B/gD/AQAB/gIAAQAA////AAD////+/v4A//8BAQIAAAAAAAD//wAAAQAAAP8AAAH/AP8AAAEAAQEAAAAAAQH//v8AAP8AAAAAAP7//wD+//3//v7+//8A/wAA////AP8AAAAAAP////8A//8AAAABAQD/AAAB/wEBAP/+//8AAAAA/wD//v8AAQD/AAABAQEA/wD/AAABAP8BAQECAAIBAQD/AAAB//8AAAIAAf8CAgAA/wD9AQADAwECAQL+AP38/fwCAgEAAAIDAgEAAf8CAQIAAgAA//8BAgMFBAIB/QMBAAD/AgAA//z8//z3+Pnj4uXj5OX7+vr//wAAAAAA//8AAAD/AAAAAP8A/wEAAAD/AP8A/wAAAAABAAD/AAAAAQEAAP8A/wAAAP8AAQEAAAD/AP/+/v/+///+//7////+AP7+/v79/f39/f36+fr8+/0EAQEA/wAAAP8A/wEAAP8A/wAAAQD/AAD//v7//v7+//7+/v3///7+//7//v/+AQEC/wD/AAAAAQAAAQEBAQAA/wD/AP8BAAAA/wAAAQAAAAEB////AQEBAAD+//8BAAH/AP8A/wEBAP8C/wD+AP//AAAAAP8A/wD/AAAA/wAAAAEAAP4AAQAAAAAAAAAAAAAAAAABAAABAQEAAQACAQEBAQAAAAABAAD/AAEAAP8AAP8A///+/wD/AAAA/v7+/P39/Pz9AwP9//8DAAAA/wAAAAABAAEAAQAAAP///f79AAICAgABAQAA/wECAP79AAEBAP8AAwMFAgICAQECAgECAAABAAEC//8AAQEBAAEC///+AQICAP//AAABAAAA//8AAgMCAwUB/v38AwUJBAb8Hx4c+v39HBweAgcKAgQC/f37/v8ABwgM+vj49vf53fHy6ert5OTmIyEeFBIP+Pf3Dg8RCg0P/wX+Af8AAQICAAD+Af8A//7/AP8A/f39/v/+BAMEAwME/v7+Av39/gEB/gH+AgICAP8B//8A/wAAAQACAAEA/wECAQABAQEAAAH/AP///wD+AP8A/wAA////AQD///7+AAAAAgEAAAAA////AQEBAAAA//8A///+AP8AAQEBAP/+AQEC////AQD/////AP8A//8A/v/+/v3+AP7+AP8AAQAB/wD//////v7/AQAAAAAAAAEAAAABAQAAAQAB///9/f4AAQEAAAABAAAAAAEA/wAAAQAAAP8AAAH/AQABAAEAAP//AQAA////AAAAAgIB/f7/AQEBAQAB////AwID/////wL+AAD/BAEDAP8B/vz9/QIBAwQGBQkI/vwJ/Pj4/v39AgEAAAD/AAIAAQMBBgIGAP0B7vDy7e/y+/v9////AP8AAAAAAAEBAQD/AP///wABAAAAAQD/AP8A/wAA/wABAQAAAAH/AP8AAAAAAAAAAAABAP8A/wEAAP/+//////////8A/v8A//8A/v///f7+/Pv7+/z8/P39BAAAAAIBAAEA/wAA/wAAAf8A/wEAAf8AAAAAAP/+//3+/v3+/f3+////////AAAB/wD+////////AAAAAf8CAgH+Af//AAD/AAD/AP8BAAD/AAAAAQAA////AQAB/wD/AAAAAQH//gAA/wEAAP8BAAH/AP8AAAAAAQAA/wEAAP8AAAAAAQAA/wABAQAAAgAB/wABAAEAAAABAQEBAAEBAQEBAAEAAAEAAAAA//8A/gD//v7+//79/vv7/P79/v/9/v///wAAAf8BAAEAAQEB///+/gEAAAACAQEAAQAA/v79/v8BAQAA/wEAAQEBAQD/AQABAAAAAQABAwEBAgACAgECAQAAAAIBAgEBAAEBAQECAwD///39/gD/AAABAgMDAgAAAAgEBfz8/AEAAQQEBP/9/BcVE/r+Au/2+/n++/39/PLy9fv57/j29wICAvr6+O3u7ubn6ezt7yAcGCAdGvkU9RP8/A4REv3//gAAAQYGBwICAgEBAf///f3//wH///39+wMDA/3+/QMEBP79/QICAv/+/P79/wABAQEBAf7+AAECAf8AAAMBAAAA/wD/AAAB/wAAAAD/AAAA///+/v8AAQAA/wEAAgAAAP///wEBAAAAAgEAAf4AAAAA//8AAQH///8BAAAA/wAAAAD/AP//AP7+/QD/AAD+/v79/AH/AP7//wD/AP///wABAAICAf//AAEAAP//AP/+/v4A/wIBAv//AAICAgAAAP//AP///gEAAQABAP//AAAB/wH/AAABAAD/AAECA////gD/AAD/AP8AAAEAAQABAQAAAAACAAEBAf7+/gD/AgH//gIBAv8A/wMEA///B//9/vsEBf4AAfz+/fn29gQGBQQHBf8BAQMDAwMEA/37/N3h5ePl5vz9+wAAAAABAP/+//8AAAAAAAAAAQAA/wAB////AAAA/wEAAQAA/wAAAAEAAP8A/wAAAAEBAAAAAP//AAAAAP8AAQAA////AP////7////+//////39/fz9/f3+/P38/QQAAQAAAAABAQEAAAH/AP8B/wD/AP8A//8A///+//3//v7+/v79/v39/v0FAP7//wIAAQACAgIBAgH/AAEC/wH//gH/Av8AAAD/AP8B////AAAAAf8A/wEAAv8B/gH/AQEAAf8A/wD/AAD/AAD//wD+AAH///8A/wAAAAEAAP8AAAAAAQAB/wH///8BAf8B/wABAAEBAQABAAABAQEBAAEAAAABAQAAAAAA/wAAAP////8BAf8AAP/+//3+//8AAQEBAQH/AP8B/wACAQL9AQIBAv7//wACAAECAQH+/gD/AP4A/wEBAgIAAAABAAECAgL//wH/AP8A////AP8BAAABAQEBAAH/Af8BAAL+//0A/gD/AAEBAQH+//79/fwD/gIBAQH/AgEEBAQCAwP9+fkQFRYBAwYEBwwG7PHq8PL//gEBAQL9/f0JCAjy8vIBAAD+/gD4/P3i5urq7O/u7u8mIR339fUY/PkOERMBAgP8/PoCAgIAAAECAwMDAwP6+vgA/wH8/PoBAgP9/Pz+//4GBgX8/P8BAQUBAQIBAgP//v4DAwQCAQD+/vwB/wEDAwMB/wEBAAD/AP////4BAAD/AP8AAAAAAAD//wABAf///gAAAf7/AgIAAAD/AP8BAAH/AAEBAAEA//7/AAH//v///////v4A/wD+/P0A/v/9/v7///4AAAD//wAAAAAAAgIBAQH//wAAAP8AAQADAQIAAAABAQMAAAAA////AP4A/wD+////AQABAAAA/wEAAQABAQAAAQAA//8BAAEAAQAAAAAAAQEBAQEAAAD/AAABAAH+///+/v8A/wABAgQAAf0B/wIA//4FAAAA/v4HCQj9+gv//fv9/Pv9//0EAgYEBwYDBAX/AQPh5eDe4OL19vYA/wAAAAEAAP//AAAAAAAA/////wAAAQAA/wEBAQD/AAD/AP8A/wAAAP8AAAAAAQAB/wD/AAABAAAAAf8A/wAA/wH+/wD////+//7+/v7+//3+/wP+/v/9/P39/Pz8/fwEAAAAAAAAAAEAAQAAAP8AAAH/AAEBAP////////7+/f79/v7+/v/+/v7+/v//AwEAAAAAAAAAAAABAgECAAEBAAEB///+/wAAAgAAAAABAAH/Af8BAAH/Af4A/gAAAP8AAAAAAAEAAAAAAQH/AP//Af///wEAAP8AAAD/AAAA/wD/AAAA/wD/AAH/AP8AAQAAAQABAAEBAQEBAAAAAAEAAAACAP///wD/AAD/AAABAQD+AAAAAAH/AQEB////AAAAAAEBAQABAAEC/gH/AAEAAQAB/wD+//8A/wD/AAEAAf4A/wD///39AQECAwMEAAAAAQEBAgECAAEBAAAAAAAAAP//AAEC//4A/QH+BAMC/wD/AgEAAAAB/v8AAf8A/v/+AP8ABAEC/Pz/AwMDAgQE/v8ACxERFPv8/P8A+/v8/f3+DQ8S/vz/9/T09fT1CQkIAAABAQEA/v8C9vn92N7l9/f4J/j4+vn5GBz5DxATBQYG/QIBAAEBBAUF/v/+BAQF+/r7//7+///////+AAEA/f0BAAAD/QEBAgIC///+AgIC//8C//4AAQAAAQEAAP///wH/AP8AAAAAAP8A////AAEBAP///wH+AgAD//7/AAAAAAD+AAABAP8AAAAA/wAAAgEBAP///wEB//4A////AP//AP8A/f39/fz8//79////AAD//v7+AAABAwEDAAH/AAAAAAD/AP8AAAAA/v7+AP8AAAD/AAAB/wD//wAAAgAAAAIBAwEBAP8A/v//AAAAAP8AAAABAAD/AAEBAAABAAD/AP8A/wEAAQEA//8AAQEAAAABAwMEAAAA///+/wABAAD/AP7+/wAAAwUGCAwNAwMDAgMC/wICAgQCCxANAQMD/v//7vDy1tnb7ezu/vz+AAAAAAD/////AAH/Af8A/wABAQEAAAD//wD///8AAAD/AP8AAAAAAAAAAAAAAAAAAAEAAP8A/wAAAQABAAAAAAAAAAAA//7//v////7+/v7///4A/f3++/z8/Pz9/fz7BAEAAQEAAAEBAQAAAP8BAQAAAAH/AP8BAf8A///+/v/+/v7+/v/+/////wD/AAAAAAAAAAABAAEBAQECAQABAgEAAgAA/v//AAABAAAAAAD/AQAB////AAEBAAEAAAABAP//AAAAAAAAAAD/AAH/Af///wD//wAA/wAAAP8AAAEAAf8A/gAAAAD/AP8AAf//AQABAQEAAAAAAP8AAAEAAAEBAAABAAEBAQAA/wEBAAABAgEBAf////39/P/+/vz+/P37+/8FBwEAAP4AAQABAgAB/QD//wAAAQAAAAH/AP4A/wAAAQAAAAD/AAAAAAABAwMBAQABAQABAP/+///+/v3//wEB/wQDBAIBAgAAAP8AAAEAAgAAAQMBAP0B/f///v//AP39/gMDBP3+/f/+/wMDAv8ABBASEfz9/f38//f5+wkKC/f2+PLx8gICAvf2+AcHBwQGBQABAP7+/wMKDO/3/eHl6f37+vb09BobHBATFAQFBQEFA/7+CAQEBgMCAf///f3+AP7+/gIEBAICAv39AQAA/gECAf7+/wID/wEBAP38+wAEBAMCAwEAAQAAAAEA////AAABAP///gAAAf7+/gEAAAAAAf8A/////wECAQAAAQD///8AAAAAAAEB/////v8AAQD//gD///7+/wD//wD//wD//gAA/wAAAAEB///+/wD//gIBAgECAAD//v7+AP7//wEBAQAAAAAA//7+/////gEAAQECAQABAP8AAQEAAP8AAAABAQEB/wAAAQAAAAEBAAABAf//AAEAAAACAf8AAP/+////AQABAP//AQECAQEAAP/+/wEBAP0AAAH//wACAAEBBQcDAwAIB/0JCgYKCwwTFAMEAwEEAvn49/X29eTm6Onr7fv8/P8A/wAAAAAAAAAAAAH/AAABAQAA////AAD/AAAAAQAB////AQAB/wD//wAAAAAB/wD/////AQAAAAAAAP8AAAAAAP8AAAD/AP8A///+/////v///////v/9/v37/P78+/38/AQBAQEBAQEA/wAAAQAB/wEAAAH/AQABAQAAAAH////+/v7+//7//v7//wAAAAAAAP8AAAABAAAAAQEBAAIBAAL+AAD/AQAAAAAAAAAAAAEAAP8BAAEBAf/+AAEA//8AAAEBAQD//wEAAP//AAD/AP//Af8A/v///wD//wAA//////8A/wEAAf8AAQAB/wABAQAA////AAEBAAABAQAAAQAAAAAB//8BAAABAQH/AAL//////v7+/v7+/f38/Pz8+/z9Bf7+/f78/f0BAgIAAAAAAAEAAQEAAP/+/gABAP8BAAD///8AAQD///7+/v4BAQABAwMA/v8AAQABAAEBAQH/AQABAgH+/v4AAgEDAQQDAgP/AAEA/wABAwMCAP/+/gAA//8AAAIBAQEA/wABAwH+/f0FAwMGCwsYBQUGCAsFBQcDBAQFBQUEBgbz7Q349/X9/PwAAQAEBwYICAkGCAgICAX5//vp7e/59vT++fgCAP8ICwwEBwX+/f7+B/0CAgICAgH///39/f3/AQAA/wP+AQABAQP9+/oDAgT9/wICAQABAQAB/gICAgL/AP4B/wL+//8B/////wD+/v4BAQEA////AAEDAQH//wD/AP7//gEBAgEB/wAAAQD//wAA////AAAAAP8AAP/+//8AAAAAAP8AAP////////8A//7//fz8+/wAAQH/Av/+/wACAgIAAQECAQEBAgL//////wIBAf4BAQL///8AAAAA/wD/AP//AAABAAABAQD/AAEA//4AAQEA/wEBAAAAAAD+//8BAAEBAQEBAQD/AAABAAH/AAAA/wEBAQEAAv/+/wACAP8AAQACAQYCAP//AP8A//8DBPwBAwMECQgDAv/+///9AP8A9/gICQsICQj+/v7///8AAAD/AAEAAP//AQEBAP8BAQH///8BAQH///8BAAAAAQD//wAAAQEA//8A/wEAAAEAAP8B/wD/AAAAAQABAAAA/////////v///////v///v/+/v/+//7+/f38/fz8/f0EAAEAAAEAAAEBAQAB/wH/AQD//wABAAAAAAD//wD+///+//7//v///wD///8AAAAAAQEAAAD/AQABAAEBAAEB/wEB//8A/wAA//8BAQAAAAAA/wAAAAABAQD/AAAB/wD/AAAAAAAAAQABAQABAAAAAP8A/wAAAAH/Af///wAAAAAA/wAAAP8A//8AAAEAAAAAAAABAQAAAAEAAAAAAAABAQAAAAEAAQEBAAD/////AAEA//8AAP8B/v///v7+AAAA/gAA/P/9A///Af//AAD/AAEAAgAC//7+AAEAAQAB/wAAAAAAAAD/AAEBAAD//////f39AQEAAwEDAQIBAQEA//8AAQAAAQIB/////v7/AgIAAAAA/////////v//AAAA//8AAQH/////AgICAP///gAAAP//AwUECQMJFRUHAwMD/gEA/QAAAgMEDgwN+fj3/v3+/f78AgICAwUDAgEC/wAAAgH8+/z39ff68vLx7OroEhQVBvsJ/wABAQIBBAQF/wABAf4A/v//A//+/Pz9AAAEAP/9/wMDAQQAAAAC/PwAAAAAAgEC/gECAf8C/wP/Af7+/f//////AP///wECAAAAAQH//gD/AP//AQAB/wAA//79/wIDAAAB////AAD+AAAC/////wAAAP/+AAEB//7/Af/+/v/+/v78APz9+/r5///+AQMDAv8CAQAAAAICAQABAAAA//7/AAD/AQIAAf8CAAAA/wD/AP8A///+AP8AAAAA/wAA////AQEBAAAB//8AAAD//wD9AQICAwEC/gAA/wEBAQEBAQAA//8AAQAB/wAA/wH/////AAEAAP8BAQEBAAEB/wIBAgD/////AP8EBAECA/8D/v79A//9BwYHBQYHCwwOCQkJAwQDAfsB/v//AAD/AAEAAP///wABAP//AQAAAAAAAAAA/wAAAAAAAP8BAAD/AAABAAD/AP8AAQAB/wD+AAABAP8AAAABAAEB/wAA/wD///4A/v///v/+//7//v7//Pz8/fz9/f38BAEBAQIBAgIA/QAAAAD/AP8BAAD/AAD//wD//wD/AP7//v7+/QD//////wAA/wD/AP8AAAAAAgEBAQEBAgEBAQAAAf//AP8AAP///wECAQH/AP8AAAAB/wD/AAAAAAAAAAD///8AAAD/AP8AAAAAAP8A/wEAAP8AAAAAAQAA/wAAAAAA/wAAAAABAQD/AAABAAEAAAAAAAAAAAEAAQAAAAABAAAAAP//////AAAAAAEA/wAAAAAA/wD/AAAAAAEBAQIDAwMFBAEDAQABAAD+AAECAwD//gEBAf////8A/gD+/wEAAQIDAwAAAQD/AQABAQICAv////7//gL+AQEDAv8A///9/QMEAQEBAgEBAAEBAf//AAD/AP///wIBAv3+/QECAf////z9/QMA/wQDBAQFBQH9/gD/AP8AAAQEAxMSEQUFBQUEBOLn6eru8PcIBwD//vz8/P8A///+/gICAQECAwMBAAD9B/z48vT3+fLv7QcHBgABAAIDBAIDBAEBAQMBBP7///7///sA+wD//////v79AgUFBf//AAQFBQAAAQUFBP7+/gD+/AEBBAD+AP8AAf8A/wAAAP///wD//QICA//////8/AECAwAA//8BAf//AAH//wEA/////wAAAAAB//7//gD+AAAB/////wD//wAA/wD/AP/+//38/Pz+/QIAAQD/Af8AAf8AAAAAAP8BAAH/AP8A/wICAQAAAQACAP/+/wIBAQAA//4BAgD//gAAAf7/AAECAP8AAAICAgEBAQAAAQABAP8AAf8AAP///wEBAQEAAf///wEAAf8BAAD/AAD/AAEBAQEAAgAB/////wEBAQEAAQABAAEB////AQEAAAD+AgIB//8BAAICBAECAwMFBQsMDQD/AAD//wAAAAAAAAAAAAABAQD+AAAAAAABAAD/AAAAAAAAAAD/AAAB/wD/AAAAAP8AAQAA/wAAAAAAAQAAAAAAAP8A/wH/AAD/AAD/AP///v///////v///v7//vz9/fz8/P37/AQBAQEBAgEBAgEBAQEBAQD/AQEAAAD/AAD////+/v/+/f7+/gD+/////gD//v//AwEB/wABAAIBAQMCAQIBAQIBAQIB/wEA/wEAAQD/AAAAAQAAAAAA/gEAAP8AAAAAAAD/AQAA/wD/AAAAAf8AAAABAAH/Af8B/wD/Af8BAAAA/wAAAAEAAP8BAAAAAAABAAEAAQAAAAAAAAH/Af8AAAAAAAEAAQAAAAABAQAB/wAAAAEBAQABAQEBAAEBAQEBAQEBAQEBAAAAAAAAAAABAgEBAQIA/wEAAP/+/f3+/v8BAQEBAAEAAAEBAQIAAQAAAAEA/wABAAEBAP/+/v3+//4BAQEDAgMBAAIBAQIAAAEAAP8BAQEBAgEA/gL9/vwAAQEA//8AAQAA///8/P0B/wADAwMEBgb+/vz//v8AAQAFBgYREA4JBwcSDg7f5Ofm7O33+/v9/Pz9/fwA/wAAAQEEBAQBAgH9/Af9AAD59u/29PT28fEDBAX/AAMAAwMCAgH/AP8BAQIAAP///QH/Af///f/9/P8BAgED//8EAwP/Af3+/v4AAQEB/QD9AAD+/QEDAwP/AP8AAAABAAEBAgH+/v3+/v8DAwQA//4AAAH/AP///////gEBAf8AAAH//wAAAf4A/v7//wD//v8AAP8BAAH+/v/+/f3+/v37/v39/P3/AgMEAwEDAwMCAwIBAAD//v8BAgL/AQH+//8AAP8AAAH/AAACAAEAAQAAAAEAAAD/AAACAQIAAQAAAAD/AAAA/wAAAf8A/v8AAQICAQL/AQH//wAAAQABAAH//wABAQEAAf8BAAH/AQEBAf8AAQMAAP8AAAABAQEAAP4A/wEAAQEAAAEAAAD/AAABAQEAAAABAgP/AAD7+/v+/v7/AAAAAAABAAD/AAAA/wAAAP8BAQEA/v//AP8AAAAAAAD/AAAAAAAAAQAA//8A/wAAAf8A/wEAAgAA/gAAAQAA/wD/AAAA////AAD+//////7//v/+//7+/f79/fz7+/v7/PsEAQEBAQABAQIBAgMB//8AAAAAAAEBAAABAAAA/v/+/f7//f79/f3+/v/+/wAAAAABAAEBAAH9AQEBAQMDAQIDAAABAAABAP/+AAACAAD/AAAAAAAAAAEAAf8B/wH/AAAAAQAAAP//AAD+AQABAQAAAQAB/wAAAAABAAD/AQABAAEAAAD//wABAP//AAABAAAAAAAAAQABAAAAAQABAQAAAQAAAf8BAQH/AQABAQAAAAEAAAAAAQAAAgICAgMDAQECAgICAAABAP8AAQMBAwECAAAA//0B/wEAAgMDAAD/AP/+//7/AP8AAgIBAQABAAEC////////AQAC///9AwMDAQAC/wAAAAEAAAD+//8B/v7+AQECAQACAgMBBAUJ/Pv7+fj4/Pz7AQIBAgEBAQD/AAAA/P38AP7/BAUEAQIC////AgICCQoJGQYHDg4PGOzt5+vr7/Ly9vf2/gABAQED/gD///79AQAEAggK+/j09vb0+fT0BAgH/wABBQYGAAkIAP7+/wH/AgIC/wD/AgEB/v79AAAB/v39AAAA+/z8BAEB/v79AAAAAQEB/fv7BAMDAAEAAP7//v/9AgECAAEAAAACAQIC/v/+AQACAQD//wABAAABAQD//v3/AP8AAQEBAAEB/v7/AAEA/f3+AwIB/wAA////AAEA/v7///7+AAEBAwQEAgMDAAD////+AAAC/wAA/f7+AAIBAQEBAAAA/wABAgIB/v//AAABAQEAAAEDAQAAAQABAAAAAAAAAQABAQEA/wAA/wAAAQABAAAAAAABAAAAAP8AAAAAAQH//wABAgEC/wAAAgAB/wAAAQABAQEAAP8A/wAA//8BAAD/AAAB/wAA//8B/wH//v///v7//P399/b49/f3//7+AQAA/wAAAAAAAP8AAP//AAEB////AAAA/wAAAAEAAQABAQD//v8AAAEAAP8BAAH/AP8BAAEAAP8AAAH/AP8BAAEAAAAA/wD//////////v7//v///v7//v/+/Pz8/f38+/z7BAIDBQED/gH/BAL9//4C/f//AQEAAP//Af///wD/AP/+/v7+//79/f//////AAEBAP8AAQEAAgEBAv8BAQAAAQEAAf8AAf8A/wAA/wEAAgAAAAEBAP7///8AAAD/AAEAAP8AAQAAAQAAAQD//wAAAAAA/wAAAf///gD/AQAA/wAAAQAA/wAAAAEBAAAAAAEBAQEBAQEBAAIBAQEAAQACAQEBAQEBAAEBAQAA/wAAAQD/AAMCAgQFBQQEBAQDAwUFBQQDBAMEBAMDAwAAAAAAAAD//wECAgH///8B/wIDBP/+/QAA/wAAAP//AAECAgAAAAEAAgQEAgABAQL/A/7+/gECAQEBAf3+/AD+AQMDAAICBAEAAQECAQIBAgABAQMEBAkKCfv6A//+/v7//vz8/AD//wMCA/////38/QIDAAIBAv8BAQIAAQYCBAYEAwgDABQMCfX5+O3v8Ovu8PL4+vn7/Pv+/gH//////v4BAvn8APr7+xIEBQkIBwYEA/n4+AcBAQQFBQEBAgABAP8AAAIDBgICAf7+/gD/AP8D/P39APz8AQEBA/7+/QIDA/0A/wD//vz8/AMCAv0B/QICA/8B/wD9/gMAAP8BAP///wABAQMCA/3+/////wD/AAEBAQAAAQD/AP7/AAH///7+AAAA/wD//v/9//////7+/wIEBAIFBAECAQABAf8AAAEAAAABAQD/AQD/AQACAQECAgIAAAEBAQIBAP/+/gAAAQABAP/+///+/wAAAAEBAf8AAQABAAD//wABAf////8A/wAAAQEBAQABAAAAAQAAAQAAAAAA/wABAQEBAAAAAQEBAAAAAQAB/////wD///8B/v79/v/+/P7+/AAA/wAAAP3///v6/PPz8+3s7fz9/f7//wD///7/AAAAAQEAAP//AAD/AAAAAAD/AAAAAAABAP8AAAEAAAD/Af8A/wEAAf8B/wEAAAAAAf8AAAAA/wD/AQABAP8AAAD//wAA////AP////8A/////vz9/P38/f78/QQICxIBA/YE/vzz/PL9/f4BAAAA/wABAQAAAQEAAQD///////8AAP8AAAAAAf8AAQECAQL8AQH/AAEBAAEAAQIAAQEA//7/AAAA/wL/AQABAAD/AAAAAAD/AQAAAQAAAQAAAAACAgD9/QAAAQAAAQEAAQEA//8BAQH///7/AAAAAf8A/wEAAP8AAAIAAP4AAAAAAAEAAQH/AQAAAQEBAAEBAQABAQEAAP8AAQEBAQECBAIFBgYEBAQCAgICAwIBAgACAgECAQAAAQAAAAAAAAD/AQEA//8BAgAB/wAAAAEBAQL+AP3+/////v//Af8BAQIBAgH+//8BAQADAwMDBAQA/wAAAQD+/gD//v8A//8BAQEBAQEAAAD///8A/v/+/v4AAAAGBgb7+/v//P0B///9/PsBBQAHCAkEBAX8+/v8/f4EBAUCAgIA/v77+P0EBQMNDAkKBwUNBQQVDw/z9vjt8PHu8vD19/T6AwD/BgYD/Qb39/rx7e4DBAX/AQIPEhQAAgMAAgMAAgIAAAH+/v4CAv///gD////+AP0B+/wFAQL8+/sAAPwABQYA//4CBAT9/////v3+AP8AAgEB/gH/AQH/AAABAQEBAQEBAQH9/f3+/v8BAAAAAQD//v8A/wD/AAEBAAEAAAD//////wAAAQECAAD9//3+AP0EBQQBAwMBAQIBAgT+AP8CAQP/AQABAgMBAQEAAAAAAQEAAP//AAH///8B/wH/AAIA//8AAAABAgIBAQAAAAD/AQEB///+//8AAAEAAP//AAABAAABAAD/AP8BAAEAAP8AAQIA//8AAAICAAAAAAEBAP////8BAQD///8A/wAAAAAB/gABAAD+/wH//v//AP/////8/f74+fnu7uz29vb/AAABAAD+AAABAAAAAAAAAQEAAP8AAAD//wABAQD//wD///8AAAAAAQAA/gAAAQH/AP4A/wD//wAAAP8BAAD/AAAAAAAAAP8A/wH+/wD//gD//v7//wD////////+/v78/fz8/P0EEhYf8fHu+vj19fX6Av3+Af8A/f3+AgED/wABAAAAAAEBAAD//wABAP8A//8BAAAAAAABAQEBAAEAAQEBAQEB/wABAP8AAAAA/wD/AgAA/wAAAAAAAAEAAf8AAAAA/wABAf8A/gABAAAAAAAAAAAAAAABAQEB//8AAAEBAP//AP8BAAD/AQEB///+/wAAAAAAAf8AAAEAAAAAAQEBAQEBAAEBAAIBAv7/AgIA/v4B/v3++/v7BPz8BAUEBgUFAwMEAgEC/wAAAAAAAQAAAAABAgAA/wIBAP//AQAAAAAA/f//AAAAAQECAAEB/v//AgEAAQAAAQICAQEB/wAAAP7/AQEBAQECAQD/AAIAAAAA//7+AQMCAAABAAD/AQIDBAEB/P38AAABBAQD//8B+/z6AwECAQED/Pz7AQICAAMCAf7/+/z8AgYGAAAABQYF/AIA/gD+AgECCAEGBAMCDQcFFAwJ+foR6+zr8fTy8QUB+QQA/vj27Orq/f7+HCIJ/Pz5AgAHAwQFAAMDAwIA/Pz9AAAA/f78/fz7BAQE/Pz8AwMD/QEAAgEC/v78AQIE/v7+AgL////9/fz+AgMD/gIA/v8AAAIBAQABAAIAAwIEAQIC//39/v///////v7/AP4AAAEAAwIDAQECAP/+/v7+AAIC/wAB///+AwMEAAMBAQECAgIDAgID/wAAAQEBAAAA/wAA//////4AAAH+AQEBAQD/AQIDAQEBAP///v/+//4AAQEBAQIBAAAAAP4A/wEAAQEBAQEBAP///gD/AAAA////AAEBAf8AAAEAAP8AAAAAAAEA/wEAAP//AAD/AAAB/////wAAAAAAAQEB/wABAgEC//4B/gAA//7+/gAA+/z+5+jp1NTV8fHxAP//AAH/Af8AAAD//gAAAf8AAAD//wAAAQEA/wAAAAAAAQAA//8AAP8B/wH/AAAAAP8AAAAAAQEA//8A/wAAAAEB//8AAQAAAAAAAAAA/wD//wAA//////7///8A/v39/Pv8/Pz7BBYbJAkM7u/v6vn9Afb18f37+vz8/P7+/wEBAQECAgEAAQD+AP///wAAAf///////wAA/wAAAAEAAQABAQABAQEAAgEAAAD/AAD/AP//AAABAAD/AAD/AP////8AAP8BAP8B/wD//wAAAP8A/wAAAAABAAD/AAABAAD/AAAAAAAB/wAAAP//AAAAAAAAAAABAf8BAAD/AQAAAAABAAAAAAEBAAEBAAECAgH//wEBAAIDAgMDAQMDA/////z8/Pv7+vsHBwL/BQD/AAACAgEBAQABAAIAAAEBAv///wD//QL/Av4AAAD+/wEBAAICAgIDAgIBAgEBAf8AAP7+/wAA/gD+AQL//v///wAAAP8A//7+/gEB/gIDAgD/AQAA/wECAQYDBv38/AICBAEACAQFBwAA/wMCAwACAgAAAQUFBgYFAfn5+QABAQECAwEDAwQDAwcJCfv5+f36+gYH/fz8/AX7/An7BwwIBvb3EPX0Eu7s6vn39Orl5PPw8PHt7QgODgIAAP///wMBAQAAAQAA/v7+/AD/AAAAAf79/gMDAwECAf79/gAC//79AQQCAvz/+gD/AP/+/gEBAQP9/f4DAgECAwD/Af3/AQMBAf7+/AD/AP8A//z8/gEA/wH/AP39/gECAPz+/QICA/79/vz9+wMEBAECAwD/AAEBAv////7//gEBAv7+/QECAf/+Af8BAQD//wAAAQD///37/P4B/wIBAQICAwEBAQAAAAEAAP8A/wEAAgH9AQICAwACAAD/AAAAAP/+/wABAAEBAf7+/wAAAAH/Af4A/wEAAQEB/wAAAP///wEAAQD/AP8BAQEA//4AAAAA/wEAAf8AAAEBAv///QAAAAAA//8AAPz8/fT199HQ0OLh3/v6+QD+/v//AAD/AP8AAAAAAP8AAAAAAQEA/wAAAAD/AAAAAAD/AAABAAD/AAAAAP//AAAAAAAAAP///wD/AAEBAAD/AP///wABAQD/AAD/////AP////////////7+/v3+/vz8/P39/QQNEBUHCw4KDxMMEBXv7ery8u75+fb++/z9/f0BAgMCAwQBAQIBAAH+AP//AP/+//8BAf8A//8AAQABAAEBAQEAAgH//gIAAf4AAQEBAQAAAAH/AP8AAAABAAEAAQAB/v8A/wEBAAEAAQEB/wH/AAABAP//AAEBAP8AAAH/Af///wAA/wABAAD/AQEA//8AAAACAAH//wABAQEAAAAAAQEAAQEBAAABAQADAwMCAwIAAQL+/v3+/fz8/f0AAQEDAwMDAQMDAgEBAgEBAP///v8AAQEAAQEAAQABAAD//wEAAAEBAAABAgIAAAEAAAEA/wD/AP/8/f39+/sAAQEDAwP//v//AwMBAgH+/f0EBAECAgH//v79//wA/wIAAP8BAgMEBAMFBgb+/v4CAwP/AQD+/f4A//8BAQEDAwMBAAABAwEHCgj++/4CAgEBAAACAwMFAwMGBwj+/f38+/v+/Pz9+/z7+Pn69wQDBQULCwoJBgXp6OUQDg/39fT79fb89/gAEAACBAMDAwL/AQED/wP////9/fn+/v4DBAP////7+foBAgEFBQT8/PkBAP4AAAECAQH7+/sGBQX6/v8EBAUCBAAAAgMBAP0B/QEBAf//AAD+/v8A///+//8BAAEAAQD9/f7///0CAf3////+/v0C/gH//gAA//8CAgP///8AAAH+//8AAQACAQIAAgP//v/+//4CAgMBAQECAgAA/v/+/f//A/8CAQEAAAEAAP8BAQH/AQACAQL9//0A+wECBAIBAAD+//4A/wD//wAA/wABAgD/AP4BAAIAAAD/AAAAAAEBAAABAAD/Af///wAAAAAAAP8BAAABAQD/////AP8AAP//AP7+///8+/v4+vvd3t3W19b59/f//v7/AAEAAQAA//8AAQAA/wAAAP8AAAEAAAAAAAAAAAD/AAAAAQEA//8AAQAA/wABAAD/AAEAAP8AAAEAAf//AAABAAABAQH//wAAAgD/AAAA/wD//wD////+///////+/v/9/vz9/f0EAgQGBwMFBAUIBwkMCgwQEfXy8fHu+ff1+/r6/Pz8AgEDAgMEAQEC//7///7/////AP//AAAAAAABAAAAAQABAAAB//8AAP8A//8AAAAAAAAAAAAAAAEBAAEAAP7/AAAAAAEAAP8AAgEA/gEAAAEAAP8BAQH//v8A/wEAAf8BAAAA/wEAAP//AQAAAQAB/wD/AAEAAAEAAAAAAAAAAQAAAAABAAEBAQAAAf/+/wAC/wH/AgEA/v////38//7//v7//wD+////AP///wAA/wAAAgEBAAEBAQAAAAABAQAAAAAAAAABAAAAAQEBAAAAAP//AAAAAgABAAUEAP8A//7+//8A/v39Af4BAAH//v7++/v7AwMEAwMC//8AAQACAgMCAAEB/wEBAQMD////Af/+AwMDAgEBAAEBAQICAAAAAgICAgIDAQQB/Pz8//7/AgIC/wEBAAMCBAQDAQQEAf4A/v3+AwX4AwUH/f36+fb1DgABAwIBCwYH8Ozq9/j3+/n3AgEBAP7+/v//AgACBAQEAP8AAAD/AP/7AAEBAP8A/v//A/8A///+AQAC+/v7AQEBAwEB/Pr5AgEBAAAA+Pn8BwIJBAMD/v3+/v37AwMD//8AAQIC/v7//////v7+BAMDAQAB/v79+//9AgABAgMC/f3+AP/9AQEC///++/v7AP8BAgH/AQIC//7/AgMF/v3+AAEAAQIDAAECAQICAAAAAQEC/v3+/QEAAAAAAAAAAAEBAP//BQYHAP4CAQICAP7///4AAP//AQIBAAAB/v/9AP0BAQIBAgL///8CAQACAAD/AAIBAAABAAABAQH/AAAAAQAB//8AAP8AAAEB/wD//v7+/v7+/fz89/n67fDx19fX8e7t/f3+/wD/////AAEAAAEAAAAAAQEAAAAB/wAAAP8AAAAAAAEAAP8AAf///wAA/wAAAAAA/wD/AQEBAP8AAAEA//8AAQAA/wAAAAAAAAAAAP//AP8BAAAAAP//////AP///wAA///+/f39/fz6BAABAQEBAgMBAQgDAwYGBw4NERESFvf29fLx8Pb19P7+/gQDAwEDA/7///7//////gEBAv8A/wEBAAABAgABAQABAf8AAf///wEA//8AAgEAAAAAAAH/AAAAAP8AAAAAAf///wAAAP8AAQAAAQEA/wAAAAAAAAIBAf7/AP7//wAAAQAA/gAAAf8A/wEBAAD/AAAAAAAAAQEBAQAAAAAAAQEAAAD/AAEAAAICAwAAAP4AAAEAAQEBAf8AAPr7+gj9/v/+///+/v8CAgABAQEAAQEBAQAAAAAAAAEBAAACAQIAAv//AP///wEBAgEAAP7//wIBAQECAAMAAgAAAP4AAP39/v////7+/gEBAAEBAgMEAgIDAwICAgEBAwIEBQMBAv7//v8A/wIBAwIDAAIBBAAAAP38/QQDAwEDAgEBAQEBAQMEBQMCAgMEBP///wD/AAICAQD/AAABAAIE//79///7/QQHCAIEBP79CAICBPwCA/36/P0O+wUCA+jn5f78/v78/AABAAUFBQECA/39/gID/wYCAvv//wMDAv7//f///gMAAwEAAfz7+v38/AcHBvz/AAH////9/AABAQECAgEBAQEBAQABAPz6+/z9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///+AQEB////AAEBAf///wEA//8A//3+/v//AgIAAQICAQECAQAAAQABAQMBAP38/P38/wAAAwMBAwIDAwMDAP8AAAIB/v78/v79/v38BQcGAgEBAAAAAwQC//78/wABBAQDAgEC/////wD9AQACAwQEAgEBAQEAAAEA/v39Av4BAwMD/wD///7//v///f78/fz8/Pf38+7s+PLx9/Xz9vPx9/bz/wEC+/r6BQgKAgT/AQEBAQEC/P37BgUFAQD////9//////3+/fz9////AP7/AwMCAQEBAP7+/gD/BAQBAQAAAQEB///9BAAD/P7//wAB/wMBAgEBAAEBAAEBAQMBAP4A//7+AQABAP///vz7+vf38ezr2dXU4ubo9Pz//QQKDhQSCPv7CAgJBwcHFRMU7PDx+vz9/v39AwgO8/Lv+fXy/v38+/3/Cg4QAgkKBQkNA/n4+vj3CAsPEhX++/j1EA0NBwMC/fn3+PTz/w4PAQD+AQD+AgEAAwICAQICAAD//v//AgEA/v/9AP8B//8AAQEBAAAB///+AAAA/v//////AAIBAAAA/f397ezt3d3c9fT0//7///8AAP///wAAAAABAAD/AAD//wAAAAAA/wAA/wAAAAAB/wD+//8BAAH/AP8AAAABAAEAAQD//v8AAAAAAAD/AAEAAf///wEA/wD/AP8AAAAA/wAAAAAA//8AAP8A//////8A//7//v7+/v3+/fv9BAH/Af8BAQD//wABAAEAAAD//wEA//8AAAAAAQIAAP8A/wEBAAAAAQECAgABBAIDAgH9AvwAAAH++wIDAQECAgIBAv4AAgEAAgAAAQEBAf8BAgD//gAAAAAA/wAAAQABAQEAAgAB/wAAAP7/AgEBAQAAAAADAgEA/gEBAAAAAQABAAEBAwIDBAABAQD/AP4AAAADBf8AAP8AAgECBf4AAQAAAP79/fz8/P7//wD/Af3//wAAAQQDBAYHCAQEBQAAAP7//v7//wAA////AAEAAQABAAIAAAABAQEBAf7+/wABAQH///7+//3//AEAAP//AQEBAf7+/v/+AQABAQEAAAMDBAECAgMBBQL+/gEDAf///vz9/wICAwEBAQD+AP0B/QIBAv4AAfz7+wECAgEAAQEFAQECAgD/AP7/AP/+/f4A/wIBAAABAgH+AQEDA//+AAIDAQIDAwECAgAAAAMBAv4A/wMFAwD+///+/v79+vfy7vz39vr28v769v78+wIICf3//wECAgQFBP7//v38+wkIB/z8+////gICAP/+/vv7+wMCAP8BAfz//wIDBAD//wIFBQIA/wD/AAEA/wIBAAD///7+/AEAAQIDBf78/P8EAQD/AgEAAAABAgAC/wD9AP7+/Pz4+f76+fbx7+nl4/Hw8Pr6/Q0RFAoRFAsPE+3u8f7+/vb19OHi5AACAwoNDv4FARQYDRIVGf39+gYFAw0NCw0SEwEDBPz//wL7+wMEBwYICwcDABkVJBsZFhELCAcGBAgIBwsPEAcKDAQGBwIDBf8AAAAAAAAAAAIA//7+/wECAAAAAgAAAf///v//AQAA////////AP8A/wD/AQD/Afr7/PPz8/j39gEAAAIBA/8AAAABAP8A////////AQAAAAAAAAAA/wAAAQAAAAEB////AQEB/wAAAP8AAAABAP//AAD/AAD/AAABAAAAAAAAAP4BAAH/AAD/AQAA/wAAAQEAAAD/Af8AAP8AAP///////v//AP////3+//v8/AQAAQAAAAABAQEAAP8AAP//AAD/AQEB//8AAQABAAAAAAAA/wEBAAAAAQECAAL/AQEBAAAAAAAA//7//P37BPkDBQf//QcB//8BAgAAAQEBAQH/AAAAAf8A/wAAAf4A/wH/AQL/AAAAAAABAgAAAAEBAQIA/wL/BAECAAL/AQMAAQMBAQMDAwYDBAUCAwT/AQIBAwQAAQIBAgICAgQAAgEAAAL+/fz8/fz+/f7//wD+/v3//v3+/v0BAP8EBQUDAgMBAgIA///9/f0CAwIDAQMCAAIAAgAA/wD/AP8AAP8BAAD/AQEBAf8C/v//AP8AAAIA/wABAgH/AP8CAQD+/f38/foBAAIBAQEAAQIDAAMEBAQAAQP/AP8AAQIBAAAAAAABAQAA/////v4BAAEAAgD9/f4BAgAA/wAB//8CAQIB/wECAwQAAQD+/v0AAAADAwMA/wAAAQD+/v8CAgD+AAD9//4C/wIEBgT/AAj9BwkFBgX/+f///vn09vP4+fcBAQH///8EBQQCAAIAAgH//wD9/fsAAP78/PoB//4BAAAEAgH49/n6+PUODw8A///+//4A/wABAQABAP7///7///4EAQD9/fsCAgP+/QEAAgP//wIBAAP9/v0CAwD+/v7+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AP////8AAAAAAAD/AAAAAP8A///////+/vz9/QQBAAEAAAEAAP8BAQEBAAAAAAD/AAABAAAAAAECAQD/AAAAAf///wEBAQAA/wACAAEAAQH/AP8CAgMAAAECAgMGBgj//////v3//v7///0A//7+//79/fsA/v39/P3+/vz+/Pv///4AAAECAwQBAwYAAQQBAwQBAQIBAQIAAQEA/wAAAAAAAf//AAABAAAB//8BAAAAAQAA/wAB/wH/AP8AAAEA/wD+Af8AAP8AAgEA/wEB/wEB/gECAQEDAQH+AAEAAQD/AP/+AP////8A////AQABAP8BAAAAAAEAAAAAAAAAAAADAwIBAgT+/v0A/wAB/v//AAAAAP4A/wD9/v7//wAA//8AAQICAv8BAQQCAQD///8B//8CAQEAAP8DAgP//v///v4ABAACAQEBAQEAAP/+/v4CAgP9//4C/wD/AQH+/v4CAgL+/v8CAgEAAP/9/QD//wACAgMDAwMCAgIAAP8AAP8AAAIA//4AAAEGCAoLDxIFCgwHBgTt7esPEhb/AgP+/gACAf4DAwMAAAD///4EAwD9//8DAgQCAgEA//4BAwMA//8AAQADAQICAQIA//8AAwP///4EAwUAAQH//v8DAwH/AgL/AAAAAf//AAAAAAAAAgH//wD6+vjz8e728fADAAIABAcFBwgJCw3/AQIHCg38/PoKDAwCAgMAAQPr7e0CA/7x+/n5+/sH//4MEgkcDRb5+PUFAwIPDw4MDg4CAgIGBQcEAwMCAQH///7///0CAgICAP8CAf8CAQECAgQBAwL/AQH///8BAQEAAQEB/wAAAQEBAf8B/wH/AAD+/v3+/v7///4AAAD/AAAA/wABAP///gD9/v78/v739vfo5+bw7u3///8BAgD//P8AAAD//wAAAf8B//8AAAEAAAAAAQH///8AAAAAAP8AAAAAAAAAAAAA/wAAAAD/AAABAAD//wAAAAAAAAEBAf//AAD/AP8B/wAAAQABAAEA/wAAAP8BAQAA/v8AAgAA/wAA///+///////+//79/f0E/wAAAQEAAAABAf8AAAH/AQABAAD/AAAAAQAAAQAA/wEAAQABAAAAAP8AAAH/AAAAAAD/AAAAAQEBAwIC/wAAAP///////wMCAP8AAAD/AP8A/wD+//////7/////AP7//gD+AP8A/wD//gAAAgAB/v8AAAAA/wABAAD+Af8A/wAAAAD/AAABAAAAAP//AAECAAD+//8AAQEA////AQEB//8AAAH+AgAA/wEA/wAB/v8AAQECAQECAgMD/wD/Af4CAAEBAQEB/v3+/AH9AQICBAECAAAAAAEBAP8A/wD/AP7//wAAAQD/////AgMC//8C/wD//v//////AAD/Af8BAgH/AAEA/wD+//8A//39/f7+AQMDAgEC//8BAAAA//77/wECAwQD/v7+/wAAAgIDAQAA/f39AQEBAgEBAQEAAgEC/wAA////AAAA//8BAQEAAQD/AAAAAP//AP//AP//AQICAQEB///+/fz9AQAABAYIDBEV+vz5BQMECA4S+fn5+/r5AgEA/f7/AgD//f79//36+v7+/v/+AQYAAQADAP//AAD/AgIBAgIBAQEBAQEB////Af4CAgAD/wAAAAABAgMCAQACAQEC/wEBAAECAAMCAQEA///+/v3++ff19vLw/Pf4AQMF/QL5BwgLBwgJAgUGAAEB8/Px/P7/BQMCAwQECAoJCQgGDgwJ9fb1/Pz8CwoL+/379PTyBAMEDxARAAECAgIDAQIB+vn8/v38AgECAQEBBQUEAQEA/f7/Af79AQH+AAECAAABAgMCAQIBAAAB//////////7+/v/+/v7+/v3+/v/+////AAAAAAEA//8BAQD///8A////Af///fz88/Ly+vj4/Pr6/vz+/wD/AAEAAP8AAP4AAAAAAAD/AQAAAAAAAAAA/wAAAAAA/wAAAAAAAAAAAAEBAAD/Af8AAP8AAAAAAAAAAAD//wAAAAAAAQAA/wAAAAD/AP8AAAAAAAAA//8A/wEA/////v///v/+//8A/////v7//Pz8BAEAAAEAAP8AAAEBAP8AAf8A/wAAAQAAAAAAAP8AAAEAAQH/AAABAAAA//8AAQAAAAAAAQEBAAD/AP8BAQEA/wABAQD//wH/AP8B/wD/AAABAAAAAgH/AAACAAAAAP///gIAAQD///////8A/wD/AAL////+/wAB////AQAAAP8A/wH/AAAA//8AAAAA/wD/////AgAA/////gAB/////wAAAAAAAAACAQH/AgAB/wIAAgABA///A///AwH//gD//f7///3+/gMCAP/9Af8C/v8C/wECAgEAAP8CAAH+AQABAAAAAAD/AAD/AQD/AgEBA/8CAAD9/AAA/////v7/AAAA/wEBAQICAgAA/wABAP4A/wL+/f0B/wIBBP///gECAgICAAD////+/QEBAf7+/QMBAwAD/v7+/QABAQD/AAQDAgEAAP7+/gEBAQEBAQEBAgECAgQDAwAAAAABAP3+/gQCAQAAAf7+/f///gAA/wECAQIFBgcDAv///wL+/QcHB//+/Pf19//+/fj2+wD//f79/AQEAgEAAf36+QAEBAUDAwEBAf7+/AEBBAEBAQMDA/8AAAEBAAH/AP3+/gAAAAD/APz8/QQCAwEBAAEBAf8AAAD//v79/fv39/bw7/fw8AH8/wEF/wcICwYIBwUHBwIFBgIEBAACAfr7+wMEBAgJCAUIBv36+fz9/Aj+/P8ACAMBAgUHBQsKC/7//wQGBwICAwD/AP4A/woFBwEAAAICAwICAQAAAQIEAgEDAwEBAv8AAQEBAQECAgEBAAAAAgABAP///wD/AP7/AP7+/v39/v////7//wD//wAAAAD/AAEAAAABAQAA/wAA//v8/Orr7N/e3vb29QECAAECAAD+AAAAAQABAAAAAAABAQD/AP8A/gD/AAAAAAD///8AAAD//wABAf8A/wAAAf//AAAAAAEAAAAAAAAAAAAAAAD//wAAAP//AAAAAAAAAQAB/wD/AAAAAAAAAP8A//8AAAAAAP//AAD//wAAAP///v39/QQAAAH/AAABAAH/AP8AAAABAAAAAAABAAD/AAABAQEAAAAAAAABAAAAAAABAQD/AAAAAAEAAP8AAP8A/wAAAAL/AP8BAAAAAf8AAAEAAAD/AP8C/wH/AQAAAAAAAAEBAgL///8A//8AAP///wAAAAD/////Av7///8AAAABAQH///8AAP/+//4B/wD///////4AAP8BAAD/AAAAAAABAAH+//4AAAECAQH/AQAB/wD/AwL//f4DAgQAA/4B///8/v4A/fz+//4B/wICAQL+//7+/v4AAAEBAQEBAAD/AP8CAQEAAAD+//4BAAEBAQICAgMA/v7+AQAB/wD///8A///9/vz///8DAgMDAgT8Af4BAQL/AQMBAQD/AfwCAQMAAAD////9/f3//v8B/v4CAQH/AgMD/wQBBQEAAAIA/wD8//sBAQEDAwQBAQEAAP7/AAH//f38AAEEBAQA/wABAQH//wD+/v3+/f4AAAACAwQEAP/7/fz9/f0BAgH+/v38/Pv9+/v9+/kA/v3///4DAgAB//7++v4CAwQBAAD9+vwBBQYFAwQAAAEBAQIBAgIAAQECAP8BAwT//v4BAP/+/f3+///9/f8BAwMEAgT/AP8CAAD+AAD+/fv59fTz6+ry6+oODA8GCwwMDw8GCgwBBQUAAwL/AAAKDg4I/f0A//8BAgIB//4EBAID+/sICQn/AAAAAAH//v78/f0CAgICAwT/AP/5+fkGBgcBAgIA////AAABAgEBAQEBAwMBAQIAAgEDAQMBAQAAAQEBAAH/AAD///8AAAAAAAABAAEBAQIBAf/+//4A/////v//AP8AAAAAAQEB/wEAAP/+/v/29Pbg4ODw7+4BAP8AAAEEBAUCAgL+/f3+//7//v7////+//0A/gH+AP//AAAAAQAA//8AAQEA//8BAAAA/wAAAAD/AAD/AP8AAQEA////AAAAAQAA/wAAAQEA//8AAAAA/wEAAP8AAAD/AP8CAAEBAAAA/wABAAD/AP//AP7//gD+/f0EAQEAAQEA/wAAAf8AAAD/AAABAAAAAAEBAQEBAAD/Af8AAAEAAAAA/wECAAD/AQAAAAAA//8AAAECAQH/AP8AAQAB/wEAAP8A//8AAAD/AAABAAEAAQABAAAAAAAAAQAA/gEAAAEAAP4AAAEAAAAAAQAA/wEC/wABAQD///8BAgH/////AQAB/gD+/wD/AAEAAAAA////AQEAAAAA/wAAAAD/AQABAAAAAQAB/wEAAf7//wECAgIAAQAG/gAA/f78/QD+AP3///8DAQL8A/8D///+AAACAQEBAAAAAQAB/wAAAQABAQEBAAD/AgAB/f4B//8AAAECAAIAAP7////+AQABAAD+/f38////AQIEAgIAAgEBAQACAQABAQEBAQAAAP7/AQEAAQIBAgEB//7+/f7//////wD+AwQEAgIFAgICAQIC///+/f7/AgECAAECAAEAAv///f3+AAD/AwID/wH//////f7/////Af7//vv8/f39/P7+A///AAD/+/r5+fn2/vv4//38BAMC/v7//v38AAD/BAYAAwID//7+/gH7/QABBAYGAgMCAAABAAAAAAECAgEB/wICAP0BAQEC/vr5AgEAAP4AAAABAQAAAP/+AQABAf7++/n4+ff0BAIACwwJCAoKBwkMBAgIAwYFBAQG/wD/BQUG/wX/////AgIC//7+/v/+BgcI+/v5AQEC/v8BAQH/BP7/+vn6/v7+BAYFCwUGAAEA/v//AAAA//7/AQEBAwMDAAIAAAAA/wAAAQH/AQECAQEB//8AAAD/AP////8AAAD/AAAA//7+/v3+/v79/v/+//4AAAAAAAEAAv///wAC/wAA+fj44eHh19XV7Ovq+vn5//7+///+//7+//8AAAD//wD////+AAAAAAAAAAD/AQAAAAABAAAAAAD//wEAAP8B/wEAAAAAAf8AAAEB/wAAAAAAAAAAAQAB/wD/Af8A/wEAAP8BAAH/AP8BAAD/AQAA/wAA//8A/wH//gD/AP8A//4A/v/9/f79BAEAAAD/AQEA/wAAAAAAAQABAf///wAA////AAEAAP8AAQEAAAABAAEAAP//AQAA/wECAAD+AgAA/gAAAf8A/wAAAAEAAf8AAQEA/wABAAH/AAAAAAAAAAAAAP8AAQAAAAEAAAD/AP8CAAH/AP8A/wAAAQEBAgL///8AAQEB////AQEBAAD/AQH/AQL+Av8B//7///8AAP7//wD/AAEAAAIBAv7/AP///gAAAAD////+/gAA/////v8AAAABAQQEBP7+Bf79/gAA/v7+/f39/QICAwIC/wD/AAABAQAB/wAAAQABAAIAAgABAP3+/AAB/wIDAwIAAv/+//4A/AIAAfz/+//+AP////z8/AMEAQAA/////wIB/wICAP/+/gEBAQAB/wAAAAL9/AIDBAMDA////gD/AQD/A/7+/wD//gAAAAD+/gICAgICAwEBAgEAAQEAAv8AAAD//wMDAwECAQAAAf///gAA//7+/f38+/3+/QMEBf/9/f39+/n49/78+/v59/j08gMB//4DAgQCAv7+/wUGBQD///4A/wQGBgQEBwECAgABAv7/AAEBAP8AAQIAAgEBAQEA/wEEAgH+/fz8/P/9/QEBAP///QL/AgAAAAEA/gEA/v78+gEA/AkMBwIFAwcMCgMKCAIGBwMGBQAAAQIDA/4A/wMCAgECAgEBAAICBvz+/AEA/wEDAv8AAP7+/v38/QED/wcJCP7+/v7/AP8BAAQEAwH/AAEBAP8AAP78/f3+/P/+AQECAQEAAv8BAQEBAP///v////7/AP//////AP///v///v3+/v7//f7//wD//wAAAAAAAAD/AP7/AP8A/fz8/Obn6NHS0eTj4fv6+QD//v7+/v/+/v8A/wD/AAAA/wAAAAAAAf8A/wD//wABAP//AAEBAAAAAP//AQAA/wAAAAAA/wD/AQAA/wAAAAEAAP8AAAEAAP8AAP8AAAAAAAD/AQAAAAD/AAAAAP//AAEA/wD//wD////+/gD/Av////8A/wD/AP7+/wQAAAAA//8BAQAAAAAAAAEAAAABAAEAAAEBAQD/Af8BAAAA/wAAAQABAAEAAP4AAAEA//8BAAAAAQIA//8AAQIA//8AAAAAAQABAAD/AAAAAAEAAQAA/wD/AP4AAP8AAAECAAH/AQEBAP///wACAP8AAAAA/wD/AQEA//8A/wAAAf8AAAAAAAEDAQL/AP7+AQL/AP8B/wEB/wH/Af///wD/AAEB//7/AP8A/wD/AAD/AAABAAD/AP8AAP8AAAEBAgQEBP78//v+/v3+//39/fwBAQEBAQEBAQEBAAEBAQEBAQD//wAAAP///v3+/f0BAQIBAQL///3/AP4BAgP///8CAgL+/QH///4AAAD9/Pz/AgMCAv4AAgD9/f4CAgIAAAECAwEA///4+/sCAgMFBgYEBAX/AQD//QAEAgL/AP4BAQMCAQH/AQIA/wAAAf8AAAABAgEBAAEAAAEBAQAAAP///v4BAAEAAAAA///+/f7+/v4BAAD5+fj7+vj9+/n8+vf69vT9+vkBAwEBAAT7/v0BAAD9/QL+/wEBBAb/AAL9/wADAQIAAgMBAQH//wD9/f7+Av8DAgIBAQEAAAACAwQDAwT+/v/+AP8A/f0AAQMCAwD//wEA/v8HCAYNDwwEAAgOEhMJEBIIDg0ECAcAAAEDBQUDAwIAAQEBAAAAAAADAwMAAAEFAwX///8DBAX9/v3///8CA/z+/v////8B//8D/wD9/f339vcCAwMCAgICAwIEBQT////+/////v8AAP7///3//wP+//8A/gD/AP/9/v3+/v//AP////79/v7//wAAAAH/AAD///4AAQEB/wH/AAD8/P3r7O3W1tff3t7y8fD9+/v///4A//4AAP8BAAH/Af8AAAEA/wAAAAAAAP//AAAB/wEBAP///wAAAAEAAP8AAAH/Af8B/wH/Af8A/wD/AAABAAAAAAAAAAAA/wABAAD/AAAAAAAAAAAAAQD///8AAAAAAAEBAAEAAP8AAAH///8AAAAAAAAAAP////4EAAAAAQEBAAEAAP8AAQEAAAAA/wEBAAEAAAEAAQABAP8AAQEBAP//AAIAAAABAf8AAAAC/wL/AQAA/wABAf8AAAEB/wEAAf8A/wAAAQEBAf8B/wAAAAH/AP4CAQH/AAABAAEAAf8AAAABAQEAAAD/AAAAAP4AAAD/AAAAAAEAAP8AAAABAAD/AAD/AQIAAP8AAP8AAQAAAAEA//3//gD+AQAAAAICAAAAAP//AwEB/QABAQEAAgIC/v79/wICAf4CAP//AP//+/v+AP/9AP/+///+///+/v/+Av8BAQIDAAEAAQEA////AAAAAQICAf8BAAD///8AAQEAAP8AAQEBAQECAQMDAwAA/f7+///+/f3//v4CBAQBAQEBAAABAAEB/v7/AQEABAQDAwQEAwIBAP//AP/+/wAA//7/AAQB/v7+AAIDAgICAQEBAQEC/wD////+AAACAwIA//7//wIBAQD/AAAA/v3+/f39///+AgIC/Pr69/f4AgH+AgIB//79AAD/CQkI/v7+AwIBAP7+/wEAAQEBBAUGAwQHAAIFAQEE/v8BAP3/AQQCAAH//wAAAQEB/f7+AgMDAgIC////AwUE/wAA/wAB//8AAP/+//4BAP8AAAD/CAoKFBkdAQH+Cg4UBQkPBAgHBAYF/f0AAAEAAQICAQIBAgECAAEAAgECAQEA/wAAAAAA////AAIC/v79AQIC//4A/f//A/7+/v7+AQIC/wD//f3+/gD9//3//v7+AgEBAgIDAAEA/v8AAQAB//////7+//7//v///f79////AAAA/gD+Af/+AAEAAQAAAQAB/gAB/wAA/wAB/Pz77/Dx4eHi3d3d7Orp/vz7AP//AP//AAAAAAACAAD/AP8BAAD//wD/AP//AQAAAAEAAP8AAAABAAD/AP8AAAAAAAAAAQABAAH/AP8BAAH/Af8A/wD/AAAB////AAEAAP8AAQEA//8AAAAA//8AAAAAAAEAAAD//wD//wAB/wAAAAAA////AP///v8A/v/+BAEAAQABAAH/AP8BAQAAAAEAAAABAAEAAf4AAAEA/wABAAAAAAABAQD/AAIAAf8BAAAAAAEAAQABAAIAAP8AAP8AAAIAAP8BAAABAAH/AQACAAIBAf7+/gADAAD/AQAAAAEAAAABAAAAAAABAAD/AP8BAAABAAH/AP//Af///wAA/////wEBAf8A/wAAAAEBAQH/AAEAAAMAAf3//QL+Af8AAP///wIAAQACAQEBAAMBAwAAAP79AAEB/wAAAP8B/gECAgECAQMCAv39/f79/AEBAf0BAf///wMDBAACAQMAAv//AP//AP8AAQEBAAEBAf///gAAAf//AAAAAQECAgMBAP///v7/AP//AP7//AAAAAD//f79AAECAgICAgMCBAABAAEAAgABAAD///8AAAEBAP//AP/+/v0B/AD9AQAABP8BAgD+/QACAgD+Af7//gQDAQIC//7//gIAAf37+wQDAwABAf7///39/v7//wIB/wACAQsNDPbz8fz5+Pr5+QAA//7//wICAgEA//8A///+AAD/AAQFBwUGCAABBAIDBAEBAAMDAf7+/gEB/wABAP///wMBAgD///7+/QD///8AAAQEBfz+/v79/v/+/wEB//8A/wEBAQQGCQYWCwYGBwAFBQECBQIDAwIDAgMDBP8AAP8A/wMBAwEBAQAAAAABAQAAAAEAAP8A/wECAgL///8A///9/gEDAQP+AP8CAgH+/gL+/gMEA/7//wD/AAEA//3+//7+/QEAAv///AD/APz+/AD/Af///wAAAP8A/v8A/////v////7//wABAAD//wEAAf7/AP8A////Af/+/Pr5+vDw8ODg4Ojm4/r49v7+/f8A/wAAAAAAAAABAAAAAAEA////AAEAAf8BAAD//wD/AAAAAAAB/wD/AAAB/wAAAAD/AAAAAAAAAAAA/wAAAQAA/wD/AQAAAAEBAP//AAD/AAAAAAABAP///wEAAP8AAAAAAP8AAAEA/wAA/wAAAP8AAP///////////v/+/gQAAQAAAAH/Af8AAAABAAD/AQABAAABAAAC/wAAAQEAAAAAAQH/AP8A/wAAAAABAAAAAAH/AP8BAAEAAQABAQABAAEAAP8A/wABAAEBAQD/AAAAAAABAQEBAAEAAP8AAAD/AQABAAAA/wAAAP//AQEBAP8AAQAAAAD/AQAB/gEAAQAA/wD/AP8B/wH/AAIB//8CAQACAgL+Af4BAQL+//3//v8AAAAAAAABAAAAAAD//wABAf/9AQH+/QH///8BAgECAQEAAf8CAQEB/AD9/f4AAAD+/v4CAv8AAP8A/wD+/v8BAAABAAABAgEAAAEA/wD//wEAAQECAwP//v4A//7+/gAAAQIBAv8B/wAA/wH//f7+/f/9Av0EBAT9AQEBAQECAgMAAQICAgMCAgICAgL/AAEAAAECAQMCAQMAAAEAAAEBAAD//wABAAIBAQECAQEAAQAAAAD+/v8AA/8AAAABAgL//v4AAQEBAQH////8/Pz+///8/PwAAAD+AP/+/vz9/f0CAQD7+fkA//4HCAoICAgCAwYDBQj/AQMDBAUBAQICAgAAAAAAAf79/fwCAwMAAQH/AP8AAAEB/wAAAAD////+//8CAQEBAwIAAAD//wACAwMBAgQEAwMDBQgEBwcEBAT+//8A/wAA/wABAwEDAQL+//8AAAAAAQEAAAD///8AAgAA/v8BAgH+//8AAAABAAECAwIA/wD/AgD//wD/AwL/AQH+//4DAAAA//8AAQEB/v7+/QH+AP4DAgUD///////+/v7//wD+/f7+/////v3////+AAD/AP4A/gH/AP7/AAAAAAAAAAH////6+/vz9PTn5ujq6en08/P9/PwA/wAA/wAAAAAAAAEA//8AAAD//wEAAP//AP8AAP//AQAA/wD///8BAAABAAD/AAAB/wD/AAAAAAD//wAAAAEBAP/+AQEAAP8AAAD//wAAAf////8AAAEAAAABAAD/Af8AAAEA////AAH/AAD/AAEAAAAA/wD////+///////+/v8EAP8AAAEAAQABAAEBAP//AQAAAAABAQAAAQAA//8AAAAAAAAAAQAA/wAAAAAAAAEAAAAAAv8B/wAAAAAAAAABAAAAAAABAgIB/wD/AP7/AQEB////AQEBAAAAAAEBAAD/AQABAAD/AAEAAP8AAAH///4AAAABAAAAAgAA/wL/Af8B/gAAAQAAAAEB/v7/AAD/AQIBAP//AQACAQH9Af8A/wL/AP8A////AP8AAQIBAAAA//7+AQH+AQEBAAD/AP8D/wL/AwAF/gAABf8AAQH8AQABAgMDAwMDAwMDAQICAgEAAAABAQEAAAAB////AAD/AAIDA/8B/wD+/v/+/wACAQL+Af8A/wD///8AAf///wD//wD/AP///fz9//8A/v7+BAUGAwMAAP4AAAIBAQAAAgEBAAACAQECAAD/AP////8A/fz9AgMB/wMB/wABAwMCAAAAAAAA/wAA/f39AgID/v7+/v7+AQD/AQIC/Pz8///9/v39/f79/v/9/fz7AQH//v39/AH++/r6AQMCBgQFBAkOAwUIAQQFAQIEAAADAAAA/wD///8AAQEBAQIC///+/f38AAICAQABAAAA/wD//wD/AAAA/wAAAAEAAAEBAAABAgIEAgUFBAYIAgUFAQMDBQUH/wD//vz+/gD/AP//AQIBAwEA/wD/AQD/AAEAAAABAAAB/wEAAP8AAgEB/v//AgECAAD//wAA/wEA/////v7+AAIBAf4A/v7+/v/+Af4AAQECAQMCBAAD/v3+/wD+AAAAAQECAQEA//8AAP3+//8AAAECAf/+AAAC/wD/AP8A////AAD/AAAAAAD//f396uvq4eHg5+bk9/b1/v//////AAD///8A/wD/AAAAAAAAAQD//wAAAQABAAAAAAD//wEAAQABAAAA/wD/AP8A/wAAAAAAAP8AAAABAAD+/wABAf//AAAAAP8A/wAAAP8BAAEAAQAA/wD/AAAAAP8AAAD/AAAAAQAAAAABAAD//////wAA//////7+/v7//v7+ACuB1H4EAAEBAQABAAAAAQAAAAEBAAAAAAAA/wAAAQAAAQEB/wAAAQAA//8AAAEAAQAB////AAEA/wEAAAABAAEAAQAAAAABAAD/AAD/AP8AAAIBAf8AAAEBAAD/AAABAAD/AAACAAD//wABAAD/AAABAQD/AAEBAP8A/wEAAAAAAAAAAQAAAQECAAD/AP//AwIB/v8AAP4AAQIA//4BAAH+AP8C/wH+/v//AQEB/v/+//7/AQEB//8AAP//AgID//4B/wP+AP4D/gD+Av/+/QP/AgEB//7/AAAB/wAA/f/+AwAD/v8AAQH//wABAP/+/wD/AP8AAAAA/wAC//8AAQEEAgD8/QECAQH+AgICAwP+/wEEAf7/AAD8/f39/v/8AAAA//7///8A/wT/AwL+///+AQMF/wICAwIG///9AP8E/wD/AQD+AAEC//7+/Pz6AAECBwEHAgICAQICAP8A////AP7+/gEAAQEBAQECAQEA/f3++/v5AwEC/vz8/fz7/v79/Pv6AAD//Pz9/wEBBwgIAgUHAgYJAQIFAAEBAAABAAD/AgID////AQL///8CAwIF/v/+AAAA/wAB//8AAP/+AQEB//8A//////78AQACAwUEAQEBAAEBAQECAwMEAwQGAQIDAQECAwMB/gH//v7+/f7+/v/9AgICAQAA/wD/AgEC////AAAAAQEA//4AAAD/AP//AQEC/v7/////AAAAAAAA/wAA/v/+AAEBAgMCAf4A////AAAAAQAB//7//wD/AAAB/wAAAAH+/v7//wD+/wD/AQIB/wD/AP4A///+//8A/v//AP///wD/AAABAgEC/wAA+fr79fT09/b0//79AP/+AAAA//8AAAD/AQAA/wAAAAAA/wAAAAAAAAAAAAAAAAABAQAA/wD/AAAAAAABAAAAAAD/AAAAAAEAAP//AAABAAAAAAAA/wAAAAH/Af8AAAEAAP8AAAAAAAAAAAAAAQEB//8AAAD/AAAA/wAA//8AAAAAAP/+/wAC//8A/v3+/v79BAEBAAAAAAEAAP8BAQH//wAAAAAAAAAAAP8AAAEAAAEAAAAAAAEAAQEAAAAAAQABAAABAAAAAQEAAP8AAAAAAQAAAAAAAQAAAAEAAAAAAAABAAEAAAAAAf8A/wEAAf//AAEAAQAA/wABAQAA////AQEBAAAA////AAAAAQEAAAAAAAIBAAAAAf8AAf8A/wEAAAACAAAAAQEB/gECAgIAAP7/AAIC/v7+/wIBAf7//wD//wICAQIDBQD/AAAA///////+/v7+BP0DBQMD/P7+/f39/AD//gMDBAECAgMDAwICBAABAP///gH/AP///wAB/v7+//4A/gH/Af8AAf3+///+/wEBAgECAAD+AAADAP4A/QEEAf/+AP7//P///wIBAP79/f3//wEEBQABAP0AAAL+AwEEAv7/AQMDAAIDBQD/AAEA/gACAQAAAAEAAfr7+wICAgUEBAEBAQEBAv3//v/6/gICAf7+/v7+/wYGBv///f79/P79/Pz6+fz6+f7+/gD////+/gUGBQQFCAMFBwECBP7//wH/AwIBAgAAAf/+/wABAAIBAwACBAICAAH9/QICAAAA//7+/f8AAf/+AP//AAEBAQEBBP8AAAAAAAAAAP7+/QUBAQIBAgEAAQIAAQD/////AQABAf8A/wEBAQEAAAAA/wAAAP//AP/+/wIDAv///wIBAf4CAAAAAAEAAQECAQH/Af////8A/wABAQACAQH9Af///wH//wABAQD+//7//wAAAQAAAAAAAP3+/v7//v7///78/Pz+/f/+/v///////////v8AAP/+/wAAAAAAAAH/Af8BAPr7++3t7uDg3+Lh3/n29wAAAAAAAAABAAD/AAAAAQAAAAAB////AAABAQEAAP8A/wD/AAAAAAAAAAAAAP8A/wH/AP8AAAEBAP//AAAAAAEAAf8A/gAAAQAAAAAAAAAAAQAA//8AAAD/AAABAAAAAQABAAD//wAA/wAAAAAAAAAAAAAA/wAAAP//AAD//wAAAAAB//79/wT/AAEBAQAAAAABAP8AAAAAAQEB//8AAAEAAf8AAP8AAAEAAQABAAD/AAAAAAAAAAAAAAEA/wD/AQEBAAAAAAD/AAABAAAAAQEAAf//AAABAAEAAAD///8CAAH/AQEBAP8AAP8AAAEB////AAEAAAAAAf8A/wECAQH/AAAAAAAAAQAAAAABAQH//v//AAD/AAD+/wAAAP7/AgEB/wIAAAAB/wAB/gEAAv///v4CAf7//v///wABAAAA/wAAAQEBAAEAAv8CAAL/AAP+AP8A///+//79/Pr9/foEBAYA/wABBgIDAgQAAQICAgECAQL+/v39/v7//v7+/fz+/gEEAAT+AQD+/f3/AAABAgEA//8CAwH+//wCAwMA/v/+///+//7//wEAAP///AAC/v0BBgD/Av/++v4BAQH7APoCAwQBAwUCAgIDAgQBAgMCAwMGBwf9/P38+voDBAMBAAIBAQEAAQH9/QD///8BAQEAAgL+///9/fz+/v38/P38+/wA/f7//v/9/f8ICAYBAgUCAgUEBAcDBAX+/f0BAAAEBQQBAQD//wAAAQAAAP8AAAL/AP//AAABAQH////9/f3///4DAgP+/wADAwIDAgIBAAIBAgIDBQYCAgP/AQABAQEDBAUBAAH+/v7//v7+/v8AAP//AAEBAQH///8BAQEAAP/9/f4A//7+AQEBAAEAAQH//wAB/f79/v////8AAP/+/v8BAQH/AQEA///9/v4AAAD//wD///////8AAQD/AAACAgIA/v/9/f3+//8A/wAAAAAAAAD//////wD+//8A//8AAQAAAAAAAAD9/P319fbi4ODb2Njz8vH//vwA//8AAAAA/wABAQH///8AAAAB/wEBAP//AAAA//8AAAAAAAEAAP8AAAAAAQEA/v//AAAAAAAAAAAAAQAA//8AAAAAAAEAAAAAAQAA/wAA/wAAAAAAAP8AAgH///8AAP8A/wAAAAABAAH/AP8AAAAB/wAAAQH//wD+AAD//wD//v/////+//8EAQEAAP8AAAEAAAAAAAEBAQAAAAEBAAAA//8AAQIBAf8AAP8AAAABAAAAAAD/AQABAAD//wEBAQH/AP8B/wAAAQAAAAEBAAAAAAD/AQABAAH/AQABAAEAAQAAAP//AAEA/wAAAgAA/wAAAQEAAP4AAP8BAAEAAAD/AAAAAP8BAAAA/wD/////AAEAAP8AAAEAAQEA/v8AAP///v//AAAA//8AAQAAAAD/AP//AP8AAQEB/////////wAA//3+AP///gD+AP////79/fz7/vz8//79/vz6+/37+QD1AgIEBwcIBQYIAwQFAgMEAwID/v/+//7/AP7/AP8BAgIBAQAEAgIDAAQAAP///v39/f79//79AAACAAAB/f0BAf//AP/+AQEBAwICAQEBAQAA/f38AP7/AQABAwME/wD/AQABBAQG/f39//7/AAH8APsB/v7+BAME/wAA/f78AQECAQECAwMEAAEAAP8AAAD//fv8AP//+vr6/P39/v7+/v3//Pv9Av8AAgEC/v3/AP//AgEBAP//BAMD/gECAAEBAAIBAQIBAP7///7+AwQEAQAAAQEAAgED/wD+AP/+///8AQEEAQIDAQD//wAA/v7/AwMBAgIDAgIDAQMDAgICAgMDAAAB/wEBAQEC////AAAA/v7/AP/+AP8A//8AAQD9/gMDAwID/v//AQD//gABAf4BAAEA/P7+AP7/AAAAAQICAAD//v7+//7+/v7+/wAAAP///v7+AAAA/v///v3+/v79//8A/////f39/v7+/fz9/v/9//8AAAD/AQEBAgICAAAAAP///v7+/wD//f398vHx6unq9fLy/fv6/v8AAP//AAAAAQEA////AQAA/wAAAAH/AAABAAD/AP8AAAD/AAEAAP8AAAD/AQABAAAA/wABAAD//wAAAP8AAAEBAAAAAf//////AAAAAAD/AAEAAP8AAP8AAAH/AAEAAP8AAAAAAAAAAAEAAP8AAAAA/wD/AP8AAP//AP///gD//wD///8AAAD/BAAA/wABAQD/AAABAQAAAAAAAAD//wABAQEAAQD/AP8BAAAAAQEAAAEA//8AAQEBAP//AQEAAP8AAAAA/wAAAAABAQAAAAAA/wABAQEAAP8AAAAAAAEAAAAAAQEBAAAA/wH/Af8AAAABAAD//wEBAQABAAAAAP//AAD/AAAB////AAEBAf///wAA/wEBAAAAAQACAAL/Av///wL+/v7//wIBAf8AAAEAAQACAQD/AP7+/v//AAAA////AAD//v7//wAA/////v///wH/AAD+/gL+AAEAAgEA//38/P4A+//9+/z7+gYHCQUGCAAEBgEBAQEAAf8B/wD//////wD/AAEAAv8AAP///v8AAQIDBAEDAwICAwMEBPz9/P/+/v/+/gAA/wD//wABAAEBAgEBAgIDAwAAAQEBAwEAAP8AAP39/QMEBQICAgICAwABAQAA//3+/QAAAQIDAwMBAwMDA/7+/wABAAEAAf8AAP3+/vv7+/38/Pz7+vz7/P38/QH//wYGB/37+v/7/P0D+vz49vgAAv/8+wIGCAMFBQD/AP37/AD//wD/Af8BAgIEBAICAQABAQH/AQIFAgL/AAECAAECAf39/AAAAAMCAf4AAAQBAwIEAv8AAP7+/////wAB/wAAAAD/AAABAQAAAP///v8AAf77/AACAgMBAv/9/v/9/wECAAAAAQAAAAAA///+///+/gD/AAABAf/+/gEAAP3+/v79/f79/v7//QECAgAAAf/+/v3+/v79/v7+/f7//////v7+//7///8B/wD/AQICAAEBAv///wAAAAAAAP8BAQEBAf39/vn6++fo6ufn5vz8+wEAAAD///8AAP//////AAAA/wAAAAAAAAAAAAD//wD/AAABAAAAAQD//wAAAAAAAQAAAP8BAQD//wAAAAEAAf8B/wD/AAAAAAAAAAABAAAAAQD+AAAA/wAAAAEBAf//AAEA//8AAAAAAAAAAAD/AAD/AAAAAAABAAAAAAAAAP8AAAD/AP8AAP8A/////wQA/wEBAP8AAQIBAP//AAAAAAEAAAH/AP8BAQEAAQABAAEAAP8AAAIA/wACAAD/AQAAAAAAAQAA/wABAAAAAgEAAAABAAAAAQAAAAAAAAABAAAAAP8A/wAAAf8AAAEAAAD/AQABAAAA/wD/AQAAAAAAAAEA//8BAAAAAQD//wABAQAAAAABAAH/AAAAAQABAAAAAAAAAAAAAQAAAAMCAQH//v4A/wAB/wD+AAD//v4BAQD//wD//////wD+/v8A//7//v/+//7///7//wD+AAD9/f38/Pz8+/z//vwCAgL+AP79Afv6AAH+/f8FB/4DAwMCAQIBAgICAwL/AAL/A////v8A/v8AAwECAQMA/wD+/vz+////AAAAAP8A//8AAQD9/P4CAQAA/wD/Af8A//36+vsAAQMEBP4EBQYDAgIBAQIA/wAAAAD9/v4BAAEBAwMBAAABAgEAAAD/AAD+//78/f0CAgIBAgIA///+/v78/fz+//74+Pj8+vkB//7+/Pz+AgIA/f8AAQEA/Pz/+/wBAvn6/PsF/fwB/ggBAgL//v4B/wADAgIAAAD+/wEBAgH6+vsCAgMFBgQBBAH/AP7/AP4CAQD9//7+/wAEAQMAAgIBAQMDBAYCAwQBAQIAAAEBAAH/Af8B/wECAgL9/QH+/f3+AAAA/f0AAgACAgL+AP8C/gABAgMCAQD+/////v8AAAH///7//v7+/wACAgIA///+/v7+//3+/v8A/v0BAQH////+/v39/v7+/v7+/v7+//4AAAAA/wABAAEAAQD/AP7//v8AAQABAAH/AP8A/gAA//8A///29/bs7Ovz8/P7+/v/AAAAAQEBAAH/AP8BAAAA/wAAAAEAAP//AAAAAQABAAD//wEAAP8AAAABAAD/AAAA//8BAAD/AAAAAAD/AP8AAAAAAQAA////AAAAAAEAAP8AAAAAAQAA/gD/AQAAAQAA/wAAAAAAAAAAAAEAAP8AAQEA//8A/wD/AQD/AAABAP///////////v/+/v4EAAD/AAEBAAAAAAAAAAAAAP//AQEBAAABAAAAAQAAAAAAAAABAAD+AAEC/wD/Af8AAAAAAP8AAAEAAAAB/wAAAQAA/wD/AAAAAQEAAAAAAP8AAAAAAAEAAAABAAD/AAEAAf8A/wAAAQEAAAACAQAA/////wABAAEAAAAAAQAAAAD//wAAAAAAAAABAP//AAEAAQABAQEA//8B/gH/AAACAAH/AQEA//8CAgAAAAAA/wAAAAH/AP8A/v8AAgIB///9/f7/BP8CAAAA/v7+AgMDAwMEAgUE+/sF/vz6//79AgECBAQGBQUGAgMD///+/v7//gEB//0AAQECAQABAAD/AQACAgMC//8A/P37/Pz8AQEAAgIC/f0AAgED/wMCAQEBBQT//f3/AQEBAQICAgMEAgIEAAICAAABAP////8C/v///Pr7/wD/BAQFBAQGAgABAQAA/v7+AAD/AgAC/f4AAQEBAQAA/v39/Pv7+vn4/Pr7+vj4+PX1//j2APv5AP78AP7+BwUFAgAA//z+/vz8/gP7AP4A/P7+/fr5AgQEAwQD/vz9/QEDAwUFAQMFAwUHBQQD/v8A//8BAAIC+ff3BQUFAQEFAP77AQECAwMGAAMD/wEEAQEEAAID/v8A//7/AgEA/wD/AAAA/wAAAgMDAQIB/v7//v/+AP8A//8AAAAA/wAA//7+/wAA//8AAP///f/+AP//AQEBAAAA/f39AAD/AAEAAQACAQH+//8A/////v7//f3+/v39AAAAAAAA//7/AAD//v7////+AQD//wAAAAABAQEBAQEAAQAB/wH/AP8B/P3+397g19bW7+7u/v7+BAUF/v/+/Pz+AQAB/wEAAP8AAAD/AAABAAD/AAD//wEBAP//AQEA//8BAAAAAQD//wEBAAAAAQAA///+AQAA/wAAAP8A/wAAAAEAAP////8AAAEAAP8AAAEAAQAA/wAA/wEAAP8B/wAAAf//AAAAAAAAAAEBAAAAAQAA//////8A/wAA//////7//f7+BAAAAAAAAAAA/wAAAAEAAQABAP8AAAAAAAEAAQAAAAAAAAAAAAAAAgAA/wEAAP8AAQAA/wAAAAAAAQEBAQD///8BAAEAAAAAAAAAAQD///8AAAEAAQEBAAAAAP8AAQAA/wAAAAEBAQAAAAH/AAAAAAEAAQAB/wAAAQD//wABAP8AAQD/AAEBAAD//wACAQAAAQEA//8AAQAA/wEBAAD//wADAgD+/wAAAgECAAEAAf4BAQH+//7/AQQBAAD/AP//AwL+/v8A/wAAAAMA//79Av4DAwADAQAB//wBAP/9/f///fv7+f39/AMFBwUFBwICBQIAAQACAv/+/////v7+/v///AH7AAAAAAICAAQEAwEBAgQDBAEBAf39/vv8+vz7+wIDAgYIBQEBAQEAAQACAwIDBAICAwAAAvz8/f79/QAAAAMCAf39/fz7/AMCBP/+Af8BAAABAQEAAfz7+/8A/wEDAgQCBP//AAD/AP/9/v77/Pz6+v37+v76+f34+P379wsJCv4BAv8AAgUFBAD+/gH9/gEBAv76+wP/AAIAAf78/P////4D/QMBAAMCAv/8+gEDCQQEBAMFBP7+/wQFB/v8+wMD//7+/wH+AP3/AQQDBAEDA/4BAAIAAP///wD+/f4AAQABAf8A/wEBAgEBAAEBAQEBAQMA//3+/f/+/////wAAAAEAAf8AAAAA//3+/v///v//AAICAf8A//3+/fz8+wEAAQECAv8AAf/+/v3+/v////7+/gAA//3+/v37/Pz+/P///wABAAD//gICAgIBAgABAAEBAQABAQAAAAEAAf4B//j5+Ofm5vLx8fv7+vj4+AMEAwcICQL7+fv7+//9/v8B/wH/Af8A/wEAAAABAgMCAwIGAgAAAf/+/v3+/P7+AP/+/gD//wAA/wAAAQAA/wAAAQAB/wH/AP8AAf8A/wABAAD/AAAAAP8AAAEAAAAA/wD/AAAAAAEAAAEBAf///wAA/wD/AQAB////AAEBAQD/AQD/AP7///7//v7+/gQAAAH///8BAQEBAAH/AAD/AAACAAH/AP8AAf8AAAEAAAAAAAAAAf8B/wH/AP8BAf//AAEAAP8BAAD///8AAQABAQAAAAEAAAAA/wAAAAABAAEAAf//AAEBAAABAAH/AAAAAQAAAAAAAAEAAf8AAAEAAP8AAAEBAAD/AAD//wABAQABAAAAAAAAAAD/AP8A////AAAAAAABAAABAQEBAgL/AP//Av4B/gAAAQP/Af4A/gD/Af8A/wH//v4AAQEBAf8DAgL/AP8A/wD///4CAAH/AgICAgABAP8BAAL8Avv+/Pr////+APwB/gP+/wT+/wMBAAMA//7+/v4A//8A//8A//7+/v7/AP/9/QAAAP/+////BgYFBAgBAAECAgMCA//+//77+/v+/v4CAgEAAQIDAgQFBwcBAQQCAQMCBQQBAQECAQIAAQD8+/v39vYAAQADBAMEBAUAAAIAAQEAAAACAP//AwQA/wADAwIFBAX5AwP///7//vz9/Pn7+ff/+/n+AwX6AAEKCQoEAQEEAAD9+voCAwQAAQAAAAL9//sAAAAAAP8C/gP8/PgC//8AAwX+AgIB/v////8BAQECAQH//wD7+/oCAgQAAQL/AAH/AQMAAgP//wH+/v8BAgABAQH/AQAA//////8AAQAAAAEAAAEAAP3/AAEDAQP+Av7///7/AAD+/v7/AP/+/f7+/v4A////AP/8/AAAAP////7///7+//8A/gEBAQH/AAH+//79/fz+/f39/Pz+/v3//////v7///4AAQEBAgL//wH/AAABAQEBAQEBAQH/AAD+///7/Pzx8PH19fX9+/sA//8SExMJCAj09fT8/PsIBwcAAQEBAQECAgIDAgP//v8AAP8AAAL9/v3//v7/AAAA/v7+AP78/Pv6+vr9/f0AAP8AAAABAP///wD/AAAA//8BAAH///8AAAAAAQAB/wD/AAAAAAAAAQAA/wAAAAAA//8AAAAB/wEAAf//AAABAAAA//8AAAD/AP8B/wD////+/v8EAAD/AAD/AAAA/wAAAAABAgAA/wD/AQAA//8AAQEAAAAA/wEAAf8A/wD/AQAAAP8AAAH/AAABAAAAAQAAAAAA/wABAAAAAAEAAAAAAAABAAAAAAABAQAAAQAB/wH/Af8A/wAAAQABAAEA//8AAAAAAAAAAf8A/wEAAQAAAAEBAAAAAAAA/wD/AAEBAf8A/wD/AAAAAQAA/wEBAQD/AAECAP/+AAADAAP/AP7+AAACAgIA/wD/AP3//gEA/wD/AAABAP8AAQABAAH///8AAAEAAQACAwMFBwcBBAUH/fz8/Pv5+vr4AP//AQEC/f39AAD5/gMEAf8CAAD/AAABAAAAAAEA/wD+///+/v/9///+AQAB+/v/AgIEAgEDAQEBAgEA+Pn6//7+AwQEAwMF/wAAAP////7+AAH9AgEBAQIF//8A/wAAAwIDBQUB/AX8/v/9AQED/v4AAAH+AP8BAAEBAwACAP8AAQIB//4BAQMBBQYE/v779/Px9OvpBwAABQIC//z7BwgHBAD/APz6/f7/AwMDAP/+AAAB/f3+Av0DAgIDAQICAf7//gD/+/39AwcH/v39AAMFAwcIAgMD/v79//79AAECAAIB/wEAAAECAQEEAv8DAQMCAQECAQEB////AAAB///////+AP8AAAAA/wAAAP8AAAD//v//AQEBAQAC/f7/AAD///7//v7+/f39///+///+//8AAQAA/f79AAEA//7/AAEAAAECAP8B/v79/f7+/v39/v39+/z6///+AAECAQICAQEBAAEBAQABAAABAP8AAQABAP///f7+/f79+vn58PDw8O/uBgUFDQ0X/v/+AP//GBkZGhoZ+vv67Ovr9PT1+fj4/fz8/f39AAD/AP8A/wAAAAAAAAAAAQEAAQIAAQEBAAEAAQAB/wH/AP8A//8BAAD/Af8A/wAAAAAAAQEA//8A//8AAQAAAAD//wABAAD/AAEAAf///wEBAAD/AP8A/wABAP///wEAAAAA////AAD//gD/AgD/AQEABAAB/wEAAAAA//8AAAAAAAAAAQAAAAABAQAA//8AAAAA/wH/AQAAAAAAAAAAAP8AAQAA/wAAAAAAAAAAAP8AAQD/AAABAAH/AAABAAAAAQAA/wEAAAEBAP//AAAAAAAAAQEA/wAAAAD/AAH/AAABAAAAAf8B/wD/AAABAQEA////AAABAAIAAf//AP8BAAD//wABAAD/AAABAQIAAP7//wEBAQAAAAD/AAACAgH//v7/AQD/AAAA/wEBAAD+AQAA/wAAAAEBAf8AAAIBAgAAAf8A/wEBAgICBAL//wIC/AIDBQQGCQD+/v/+AAECAAICAwICAAEBAv8A////AP/+/f39/AIBAv/+/QD+APz8/wABAP7+/vn49gMCBAIDA/7+/gEBAQECAgAA/v39/f8AAPv+/f339vr3+AQHCBIRFwIEBQEDAv8BAP8AAQUHCP///wAA//7///79/f3+/QICAv7//v79/AIDBAD/AAEBAQIDAwH/APf08+rk5B8bGwYEAwUCAAL///78/AIBA/4A/gMGBwAAAAAAAf8A/f4BAv4BAAUFBgACAgABAf39/f39/AIEBQIDBgH//v8EBPz+/v/9/wAFBPz9/gH//QQGB/8A//4A/gMAAv///v7+AQD/AAABAP///////wEBAAABAQD///7//wAAAQAA/wD/AP8BAAAAAP//AP8A//8AAP///v39/f/+/QABAf38/P8A//8AAAEAAAAAAf///AABAf79/v3+/vz7+//+/v7+/v///gICAAD/AAAAAgD//wAC/wAAAQAA//39/QAAAf///v37/fT09ejo6AICAiUmJfT29Pr6+gD+/u7t7uzs6/b29f3+/QH/AQEBAAD//wAAAAD/AP8AAAH/AP8BAAAAAP/+//4AAAH//v8A//8BAAH/Af4AAAAB/wEAAP8AAQH/AP////8BAQAAAAAB/wD/AQAAAAAA/wD/AAAAAP8BAAH/AP8AAAABAAEA//8AAAAAAAAAAAAA//////////////7+/gQAAAAAAQAA/wEBAAEAAAEAAAABAAAAAAAAAAEBAAAAAAH/AAABAAABAQAA/wABAQAA/wD/AQAAAAAAAAABAP//AQABAAEAAQAAAAEBAAAAAAAAAAH//wABAQD/AAIBAQAA/wH/Af8AAP8AAAH/AP//AP8A/wAAAQAAAAAA/wAAAAABAAAAAAAAAQAB/wEBAQL/AP8AAf8AAAD/AAAAAQEA//8AAAAAAQAA/wAAAQEB/wH//wACAgL//gAAAgD////+//7//v4AAAECAAEAAQH/Af////4A/wACAQEBAwUBAAH7/f38/Pr+/f3//v8AAQEBAQECAwICBAMCAgIBAAECAgIBAwL//gT9/QMCAv0A//////3//v/+/v39/vv9+/v7/PsAAAADAgQABAACAgQCAgACAQTw9vb68fIDAgULDBAF/wcDBAMAAAABAwH//P//AAD///8AAQEBAAABAAH//v//AgEBAAD+AP///wL+/gAFBAT//fz+/fz9+voCCAj//f/+/P0DAgMCBgUA/v7+/PkA/wQBAAMA/wMAAv8CAwL++/sBAgIBAQL/AgH//QL+/v/+A/3/AP0BAwX8/v/8/v7/+QACBwYECQkAAQH+/////gD+Af8CAgL///8AAAD//v//AP8A/wAAAAEAAP8AAAD/AAD//f0AAP8AAQEAAAD////+/v79/fz9/f79/f39/fz9/fz//v39/f3+/f7+AP8CAQL/AAEAAAD/AAABAAH+/v79/fz///////7///7+/gAB//4AAgIEAQL+/QIBAgMB/wAAAAH9/v77+/z4+fnx8fH19PUBAADt7u3x8e/o6Oj39vf+/v4CAAD///8BAAD/AP8B/wEAAAAAAAAAAAABAAD/AQAA/wAAAQD/AAAA////AP8AAAAA//8AAP8BAP8AAAH///8A/wD/Af8AAAAB/wAAAf8A/wEAAP8AAAABAAH/AP8BAAD//wH/AP8A/wAAAAAAAAAAAQEA//8AAf///wEAAAAA/wAAAAD///8EAQABAP//AQAAAAEAAf8A/wAA/wAAAQAAAQAB/wD/AAAAAQAAAAEBAAAAAAEAAAAB/wD/AQAA/wAAAQEA/wABAP//AAEAAQAAAAAAAAAAAP8BAQEAAAEBAAAAAQAAAAAAAAAAAP8AAAEBAAEAAf8AAAAB/wL/AAAAAP4AAAEBAv8A/wEAAf8AAAAAAAH//wABAP///wAAAf///wEBAgD//wABAQEA//8A/wAAAQAAAAICAgAA//79/gIB//3+AAD/AQAB/////wD/AAAA///+AAAA/wD/AAAAAAD///79AP/+AwQDAAEG//39/fv6/v7+//7//P3+AfsBAwQEAgIDAQMC//4AAQEBBQQG/fz7/v79AAD//gD++/v6/v37AAEAAQD/AQECAgIBAgECAgIC/wABAgICFxkZ+vr8AAD/+/v5/f78BwgJAQEB//3//v//AQEBAwID/v39AAIC////AQEBAAEA/Pz9AP/+/wAAAwME/P3+AwIDBAYG4eTlGRf+Dw0NBgUHAf7//fv8AQEB//37BAP+AwMG/wAAAgEA//z/+/78/gQDBAQF//8BAQMBAPz+//39/P37AgUH/wEC/vz8+Pf1Cg8QAwsMAAD///3+/gL+Af8CAAAAAAAB////AAAAAAAA/wD//v7/AP/+/wAA////AAAA///////+//8A/wD///7//v7+/v39/v39/v39/vz9/Pz8/v/+/fz9/wH/AQAB//8B/wD+AAAB/v79AP///v/+//7/AgIBAQAC////AAEAAAD9/P/+AQIDAwAC/wAA///+/f8A/v7++/z87+7v7ezr5OPj8PDt+/v6/Pv7/v7/AQAA/wICAAEAAP8BAQD//wAAAQAAAAAAAAEAAAAAAP4AAAEAAAAAAQEA/wABAAAAAAD/AAAAAAABAAD/AAAAAAAB/wD/AAABAQD//wEA//8AAAAAAQEBAAD///8AAQEA//8AAAD/AQAA/wAAAAAAAAAAAQD//wEAAP8AAAEA////AAD///8A////BAABAAAAAQAAAAAAAQABAQEAAAAAAP8AAAD//wEBAAAAAAAAAQEAAAAAAAAAAAAA/wEBAf8AAAAAAP//AP8A/wECAQEAAAEAAgAAAAAAAAAB/wABAf8AAAEAAQD///8B/wEBAQH/AQAAAAAA//8BAQEA//8AAQAAAAECAP////8BAAAAAAABAAEAAf//AAEB/wAAAQD/AAEBAQEAAP8AAQAA/wEBAAD/AAAAAP8A/wAAAQAA/gABAQEAAgABAP///gEB/wABAgD//wEAAAABAv///wAAAQD///7///8AAAABAAEAAQIBA/4C/wIEBQD9/P38+/7+/f7+/f39+wMEBgP+AwICA/8BAf8A//7/AP7/AP7+//39/QAAAAEBA/7+/QAAAPr6+wMC/QUGAAQCAwECAQAAAgACAAQEBP//APv7+AD7AgQDA/8A///+AAIDAwAAAv////8AAP39/gEBAQD//////////wD/AP7//f8AAAMFBggLCwgNDubo6+Dl6xYUFCwmJxYSDwYGBAMCAgH/APz+///+AQEB/wEAAQEBAgAA/v//Af79/P79///7AAECAQACAgABAP38/P7//+zr6f7+/QkMDAEAAf/+AP////7+/gMDAP79/gABAAABAf///////////////gD/////AP8B/wEAAf7+/v8A//79/gD///8A//39/v38/Pz8+/v8+gH///z8+/7+/v39/f7//v39/gEBAP///v7+//38/AEB/wECAAQDBf7/AQEBAwEB/wAAAgH/AwABAgAAAv7+/v8BAf/+//v8+/f5+e7t7eLh4OHf3/Dv7f3+/AEAAAEBAgEC/gD+/v///gAAAgEAAP8AAAH/AP8AAQEB////AAAAAAABAAAAAAAA/wD/AQEB/wAAAP8AAAEBAf///wEAAf4AAAEAAAABAAAA//8AAAAA/wABAAH/AP8AAAAAAAABAP/+AAEAAP8AAAAAAAAAAAAAAAAAAP8AAAD/AP8BAAEA/wAAAQAA/wAA/wD/AAQBAAAA/wAAAQEBAAAAAAAAAQABAAEA////AP8AAAAAAQEA//8AAAEBAAD/AAAAAAAAAAABAAD/AP//AQEA/wEAAAH/AAAC/wD/AQABAAD/AAEA/wAAAQAAAP8AAQAAAAH/AAABAQAAAAAAAAEA//8AAAABAAAAAP8AAAABAQAA/wD/AQAA/wAAAf8BAAAA/wAAAQEAAQEA/wAAAP8B/wAAAQEAAAAAAAAAAgAB/wIAAP8AAQL/AP4A/wABAQECAQIAAAD/Av///////v8BAAD/AP8A/wD/AAABAQEBAQP//wD//wAA//8AAQQBAAABAAD/AP8BAAD8AP/+//7//Pv9/v4CAv4FBQUDBAQBAv8A/P/9/P3+/fsBAAEDAgIAAP/5+Pn8/Pv9AQEA/wD//wEFBgcABP8AAAEAAgIB//4A/P4EBAUCAgD8+/76+/sDAwMBAAD/AQEBAAEBAQIBAQL+//8B/////v/9/fz+/v3/AP8HCAoMERIO9fEQ8hXq7t7P1trj5uwnIh0rIx4ODAkFAwUCAwT//f8CAv7//v4CBAQBAQH+AP/+/fv+/f39/v4AAgIAAQD/AAD29vbt6ugAAfwLEhT9/vwBAQEBAgMAAQEAAQD9/fwBAgIB/wAAAAAAAQEBAAH9/vz///8AAAABAAD//v7+/wAAAP/9/f8A//7/AAD+/v39/f3+/v3+/v3+/f37+/r8+/r8+/v8/v0B/wEAAQABAAD9/fv+/v7///8BAgEA////BPwBAQMCAgIDAwMCBAQCAAMAAAAA//7+/wH/AP/8/P73+Pn19fPz8vMA//8UFBIDAv719fX09PUAAPwA/wABAAL/AAAAAP7/AAIB/wAAAAAA////AAD/AAAAAAAAAAAAAAAAAAEAAQAAAAD/AAAAAAAAAAAAAAAAAAEBAP8AAQAA/wD//wAAAAAAAAEBAAAAAQAA////AAAA/wAAAQAAAAAB/wAAAAAAAAAAAQAA/wAA/wAAAP//AAH///8AAAD+AAAC/wD///8E/wAAAAEAAQH//wAAAQAAAAEB/wD/AAD/AQEAAAAAAAD/AQEAAAEAAP8BAAAAAAEAAP8A/wAA/wABAf8AAQEBAP8AAQEB/wAAAP//AAEBAAEA//8AAAAAAAAAAAABAQD/AAEAAf8B/wD//wD/AAD/AAEBAP//AQAAAAAA/wABAAH/AQAAAAAAAP8AAAD/AAEBAQAAAQAA/v/+AAAAAAEAAP//AAAAAAEAAQAA/wAA/wEAAAIBAf4CAQMA/wIBAP3///7+AP8AAAEAAAEAAAAAAQABAAECAf/////+/wD+AQABAAABAgICAf8A/v8CAAEABgMB/gMEAvwD/f79/v7//f3+/fz9/v7+/vz9AAEA/v79AAEBBAQFAQIA+/v7+/v6+fn4+fn4BgcGBAQFAQEAAQAA/v38/f3//v//AwICAgMEAQIA9vb3/////fz7+vr///7+AQEBAwQFAgIEAAABAgMCBggJAAAA/wD/AwMCAQECAAoKDhIW+vr29PLz8Bbu9Pf45O3q4+vp4+fmQTYwFA8PBAT/AgH+AwL+/fz8BP4E/wABAAAAAAEB+/788vT15unq/fz7/fz7+vn2CAUDEBUQBw0MBwsMAQMDAwICAQEB/////f7+AP/+AQABAAAAAAAAAQAA/v7+/wD+AQAB/P7/AAD//v7+/v79/v7////+/////v79/f3+/v37+vr6/Pv5+Pj2+fj2+vn7///+BQUFAQICAAD/AAAAAQEB////Af4AAgMC//8CAAD9AAABAAEAAQAA//8AAP7+/gABAAD//f7/+vv9+/v69PP15+Xl2NbW5+fk+Pj5//79AAEBAf8AAAD//wEBAAAAAP8BAAH//wAAAAD/AQIA//8AAAAAAQAA/wAA/wAAAAAAAAD/AAD/AQAA/wAAAAAAAAAAAAEAAP8AAAAAAAAAAAAAAQAA/gAAAQAAAAD/AAD/AQAA/wAAAQAAAP8AAAAAAAABAAD/AP8AAP8AAAEAAAABAQD/AQABAAAAAP8A//////8ABAD/AAEBAf///wEBAAABAP8A/wAAAAEBAAEAAQD//wAAAAABAQEAAQAAAAABAAEAAP8AAAD/AAEBAAAAAAEAAf8AAAD//wABAAAAAP8AAAH/AAAAAP8AAAAAAQAAAAAAAQAA//8A/wAAAAEAAP8AAQD/AAH/AAABAQAAAAAA/wD/AAABAAABAAD/AAAAAQAAAAAAAAAAAAEBAQAAAP/+////AAAB/wEBAf//AAAAAQEAAAABAAACAf///gL/Af4BAAACAQEBAf/+/v8CAP//AAAAAQEAAQAA//4BAAD/AP8A/gD//wEBAQAAAgICBAH////////++wIFAQL/AP38/AEA/f///wIBAgEBAAMCBAEDBf7///39+/v7+AEBAQUFBQYQEvv6+vn7+fz9/gP7+wICAwABAv39/gEBAf//AQICAf7+/v//AAEBAQQEBP39/fX29v7+/gcJCQMC+/7/AAEBAQIBAQMGBv///vv9/gMDA/8BAgUJCwsPExEU7xrx8fj5+efp/vT1+dri5BYPCjYsLAgIAAIAAP8DBgIBBPz9/gADAf8BAO/2+NLZ2djh4fDz8w4LCg4LCBIPDBsQFQ0aGw4ZGQMKCgEEBP8BAAABAQAAAAEBAP//Af7//v/+/////v/+//8A/gD//wEBAf7//v3+/v/+/f79/f7//gAAAP8A//7+/v7+/vv7+vr5+fv5+Pv59/37+wH//QABAQMDAgH/AP8BAQEBAgAAAAAB//7//gD//v///gICBAEBAQD/AQD/AgACAAECAgAAAf///v////v7++3t7dfU1dTT0vDw7/39/QECAAD/AQAAAP8AAAEBAf//AAAAAAAAAAEAAP8AAAEAAP//AAEBAQAA//8AAQD//wEAAP8AAAEAAQAAAP8AAAAAAAD/AAAAAAAA/wAAAAAAAAABAAH/AP8AAAH//wABAf8AAQD/AP8A/wAAAP//AAEAAP8AAQH//wAAAAAAAP8BAAAAAP//AAIAAf8BAf//AP//AAAA//8A/gQBAQH/AQABAAAAAAD///8AAAAAAQAAAAEAAP8AAQAAAAABAAAAAP8AAQABAAH//wAAAAACAQH/AQEBAAAAAAAB/wEAAQAA/wABAQAA//8AAAEAAQABAAAAAQAA//8AAAEAAAABAQD/////AAAAAAAAAP8AAQEAAP8AAAABAAH/Af8AAAAA/wAAAAAAAAAAAAEAAQAA//8BAAH/AAAAAf8BAAAA/wEAAQABAQEAAAAAAAAA/wAAAf8AAAEAAQAAAf8B/wH/AP4AAQAAAAABAAEBAQP+//8AAf8A/v8AAAH+/v4AAAD//wACAgIBAQICAgEBAQEBAQn////7+/z8+/n5APn8/Pv8/Pr9/P8CAwQFBAX+AP79/fv9/v7//vwDAgL8/Pz8/P3//QABAwD////+/v7///7+/v4AAQH////+/v8BAAL/AQAEAwMDBQQDAwL+Cgr29/b9/PsBBAT+/P3+///7BgYBAwIAAQAA/v79/f79//8AAgQHCQ0QEhb49PP6+voCAP/p6u/z9fb0+Pn2+PcEBAQA/f79Af0EAwQCBAYAAwHv9/e8ycrj6+0AAgEGCAYECAUJDgsSFhMXHR4RFhoIDBEDBggBAQH+//7//fwCAQIAAAECAQL+//39/f7//f7+/v38/Pv//v4DBAMCAQH8/f75+vf///38/Pv+/v4AAAACAgL/AP/9/P339/T49fL59vX6+vf9/P0CAwP4BwkCBAQDAgMDAQMAAgEBAgEEBAQAAQIBAQEBAQEA/wD//////////v8B//0AAQL8/P74+vnz8/Ln5ubi4uHu7ez5+fj9/P3/AP8AAAAAAAAAAQAAAAABAQAAAAEAAAAAAAABAgAA/wAAAAD/AP8AAAEA////AAABAQAB/wAAAf8A/wAAAAABAAH/AP4AAP8A/wAAAAAAAAAA/wD/AAEAAP8AAQD/AP8A/wD/AQAA/wAAAAAAAAAAAAABAAD/AAAAAQAA/wAB/wH/Af8BAAD/AQABAP8A//8AAAD//wD//wAEAQEAAAAAAAECAP//AAAAAQEAAAAAAQAAAAD/AAAAAQABAAD/AAAB//8AAAAAAAEAAQABAAABAQAAAAAAAQAA/wH/AAEAAP//AAAB/wAAAQAAAgAB/gAAAP8AAAAAAAD/AAABAAD//wAAAQAAAAEA//8AAAH/AP8AAQEB//8AAAAAAQAA/wAAAAD/AP8AAAH/AP8BAAAA/wEAAQAAAAABAAABAAH/AAD/AAABAAH///4BAAD/AQAA/v//AAD//wAAAAEA/wABAP8AAAAAAQIAAQABAgAA///+AQAAAAEBAwMDAAD+///+AQEB///+AQAB/v/+/v/++/v7/fz9/f39AP/+AP/+/wH/AwMDAQD++Pnz/P38/v79AgACAAEB+/v8AP8A/f39AQAAAgAB/f39/fj3AwQEBAIFAQMB/f7+/Pr6AP8ABAUFAf8F//79AgIDCAgHBQUD/Pz9/f3+AwQBBAEB/vz8+f32AwUEAQAB/P38AQEB/v8AAwQGCQ0RFBgbAf7+Av//AQAB/er+9/j38/TzCgkJAPz+//78/wUFAgAA+vj719rb7O/xCgoKBwYDDQkHCw0LEhMQFxcYDxIUCw0RBwgOAwQHAQIDAQABAAAAAQAB/v///gD+/v7//v38//7//Pz8/Pz7AP///f79AwQEAQAA//7//f3/AgEEAgP//v7+/wD/AP8A//39AP79AwIECAoLCAsMAQIBAQABAQIA/v7/+/z8/v/+Af8BAv8CAP//AQICAQED//8B/wEAAwICAAEA///+/v4B/wD++vr89fX26Obo4eHg7ezr/wAAAQEBAgQDAQAB/v/+AP8BAAH/AQAAAQEBAP8A/wAAAQEA//8AAQEA/v7/AP//AAAAAAEA/wAAAP8AAQIAAAECAQAAAAAA//7//gD///4A/wD/AAAAAAD/AAAAAQEA//8AAP8BAAD/AAAAAQAA/wAAAQAAAAABAAD/AAD/AQAA/wAAAAAAAAH/Af8A/wAAAP8AAAAA/wAAAAAA////AP8ABAAAAAABAQD//wEBAAD/AQAAAAD///8BAAEAAQEAAAAAAAD/Af8B/wABAAD/AAD/AQABAAAA/wAAAAAAAAAAAAAAAAEAAAACAQD//wH/AAABAP8A/wEAAP8AAQAAAf8A/wEA////AAEAAAAAAAAAAAABAQAA/wEBAP///wAAAQEAAAAAAQEBAAAAAP8AAAAA/wAAAP//AAABAAAAAAAAAAEBAAAAAf//AAD/AAEAAQAB/v8AAAEAAgMDAQD//wMCAP7+/v/+/v7//gEAAf8A//7//////////wAA/wH/AgD//v8AAf/+Af4A/v7+/gAB/////////gEBAQMEAQECBAMDAQX+BAABAP38+/f39vz7+gMBAgUDBf7+/v7//v7//v38/AECAQH/Afv8+wEA/AQFBfv6/v4D/QT/BQECAwEBAPz9/AL9Avr+/wICAQIBAwICAgACAf8AAAIDAwEAAP39/fn6+AAAAQgACAMDAwD+//r8+gICAQECBAMGCQgMEQ8S+P35+/z+APn7+gYCA/r8/Pr5+gL+//38/QUCAAEDAvDw8Pz4+h8WFvwC/wgFAw0LCQgNChIVFRYXGhAUGQcNEAIHCAEDBQECAwIDAwAAAQAAAAABAQEAAAEBAQIDBP4A/QIDAwYCCAIBAQECAQEBAQIDAggJCf////7+/v39/Pr6+Pr5+ff39Pb08vv59/3++wEBAgECAwIAAwECAgICAwQEAgcHCP7+/wAA/wIDAgICAwQEBAIDBQD/AAABAgICA/8AAQD/AP//AP39//z8/Pj29/T08wICAxIUFQsMC/z7+wABAQIBAf////z8+/v7/Pv7+/79/fr5+v3+/f38/f/+/v8BAP/+/v//AAAAAAEBAQAAAAAAAP//AAEA//8AAP///wEAAQICAwEC//7+///+/f4A/wEAAP8AAAAAAAAAAAEAAP8AAAAAAAABAQD///8B/wH/AAAAAAABAAD/AAAAAAAAAAAAAQAA//8A/wAAAQH/AAAA/wAAAf8A/wQAAAAB/wAAAAAA/wEAAAAAAAAAAQEAAAAAAAD//wABAQAAAQABAAEA/wAAAQH//wAAAAD//wAAAf8BAAEAAP8AAAEAAAEA/wAA/wEAAP//AP8BAAEAAAAAAAAAAP8BAAEAAP8AAQD/AAAB/wD/AAAA//4BAAH/Af8BAAH/AAAAAAAAAAAAAAAAAAABAQD/AAAAAP8A/wAB/wD/AAAAAAAAAQEA/wAAAAAAAf//AP8A/wAAAAD/AP8AAAAAAAEAAP8BAQH+AAACAgL///7//v////8A/wAA//8AAAD/AP//AAEA/wD/AAAA/wEBAQIAAgD//f0CAQIAAgAAAAID/wD+A/7///37+/r7/P8FBAcCAQP//v///vz+/v/9/v4A////AP/9/f0A/wAFBAT+/v/5+Pf//wEHCAgCAgMEAQICAAEBAAH4+PcBAgMDAwIDAgMCAgL//v8DBAUCAwMEAwUFBAb8/v39/Pv//v/9AP4BAAEDAgEAAAH7/P8AAQQFCAwKDhT++/75+/37+voE/wAGBgf9/wD//v///PsB/wX++vv3+PkLCwoJBAQEBQMGBwQGCAYJDg0SFhgOExYIDBADBgoBBAYBAgQCAgMAAAACAQIAAQEB/v////8BAAEBAAABAAEDAwMBAAH///8BAQACAgIBAQIA////AP4BAAD///8A/v8BAf8DAwEAAf75+vb8+/oEBAUEBAYBAwD9/v////8AAQEAAAAA//8AAQEC/QECA/7+/v4DAv8CBAQBAQH/AP0AAAP/AAD8/f74+fny8fPp6ejr6urw7u7v7+75+fj//v7///8BAAABAAD8/Pz+/v7+/f3+/wD+/f7///0AAAABAQH///8AAAEBAf///wD///8AAAAAAAAAAAD//wAAAAAAAP/+//8AAf8AAAACAQH+AgIB/gD/AP4A/wAAAAAAAQAAAAAB/wH/AP8BAP8AAAAAAAAAAAAAAQEA/wABAP/+AAABAAD/Af8B/wAAAAEA/wD/AP///wD/AAAA//4EAP8CAAH//wABAAEAAQAAAAAAAAAAAQD/AAABAQEAAAABAAEAAP8A/wEAAQAAAQEAAAAAAQEAAAABAAAAAAABAAD///8AAQEAAAEB//8AAAABAAAAAAABAAAA/wABAQD/AQAB/wD/AQAA/wEAAf8AAAABAAH/Af8B/wAAAP//AAEBAAAA////AQD/AAEBAP8A//8AAAD//wAAAAABAAABAP//AP//AAAAAP//AAAAAAABAQD/AAAAAAAA/wIAAv8B//8BAAEA//3/AP8AAgEBAQL//v//Af4AAQAAAAEAAP8A/v7+AP8BAQIBAAD////9AwIC////////AAD/AAD/AAEC//8BBf8BAgsE/v38+/r6+vn4AgMF/P7//v/8/f38/Pz8BAQFBQQE+/n6+vn6AQICAwIB/fz7AAEB/wD/AP8AAQH/AgMBAQEB/f38+vr5BgUGAQEB/Pn9AgMD/wX+/wAB/v8ABAMDAwID/gAAAP7/AgIEAAD+AQICAQMEAAEEBQoPDAAC+/v8/Pn7APv7AwUF/wAB/P79///+BAAB+/z8AgUGCw8GAgcGBwgHBAcEBwoJCA0MDRMXBgsPAgYKAAIEAAABAAAA/f7+AAAA/QH+AQECAAAA//7/AAD//v7++vr6AQEBAgIBAP8AAQIA////Av//AAAA/v79/Pz6/f37/f79/v7/AgIECgkNAwIC/Pz8//8AAgEBAAECAP8A/v/9////////AAAAAgH/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//8AAAAAAAEAAAAAAAAAAQECAAD/AAABAP//AAAAAQAB/wABAgIBAP//AAAC//8A//8A//8BAAAAAQD/AAABAAD//wD/AP8A/wD/AQICAgAAAAL/AAD+/gEBAQIDAf0AAQAFAAAA/wIAAvf48/z8+/7+/f3+/gEB/wD//vz9/gEBAgAAAPz8/P/+/wICAgAAAgACAgIBAv8BAgEA/gD//gH/AAIDA/7//v7+/QEBAQAA/wAAAP////r7+gT+/f0BAv///v38+wD+/v78/f/8+/v59v35+vz+//8DBfz8/gECBP4FBgQGCAcHBwoTEwwTFAcLDgQGCAMEBwIGBgL/AAIBAgEDAv8AAv8A//r7/AAA/wABAQH////+AAAAAAAAAP/+/v///wECAwYICv7+/gEBAAIBAQICAgMDAwEBAQIBAQAB/v7+AP8B/wEA/gEB/wACAf78/wAAAP8AAgD/////AP7//wD/AAABAAICAQICAwEBAQIBAQACAgAAAvz8/fr8/fLx8uzs7e3t7urp6+7t7vr7+/39/gsKCg4ODgsMCwEBAf7+/QD/Afj49/r5+gkRCPr6+vX19fz8/gH+AP8A////AP//AAEAAQAA/wAAAAEBAP///wAAAAAAAAEBAQAA//8CAAD/AAEAAf8AAAD/AAAAAAAAAAABAP//AAAAAAAAAAAAAAAA//8BAAEAAAH/AAAAAAEBAf//AP8A/wAA/wD/AQEAAP8A/wAAAP8AAQAA/wAAAAAAAAAAAAABAP//////Af8A/wQB/wEAAAAAAAD/AP8BAAD//wD/AAEBAf8BAQH//wAB////AQABAAEAAAAA/wAAAf8AAQEB//8AAAAAAAEAAAD/AAABAQEAAAH/AP8BAf8BAQEB/wH/AQABAQD+/wAAAQAAAAAAAP8AAAEAAP////7/AQAB/gEAAQD/AAABAf8A/wAA////AAABAf//AAABAAD/AAAAAAAAAQAA/wAAAP///wABAAD/AAABAAD/AQAA/wAA/wAAAAAAAAAAAAEAAAEAAP7///8AAQEAAP8AAAABAQIAAP7/AAIBAf//////AP8AAQEBAQEA//8CAQEA////Af7//gH/Av///gH/AAEAAP8BAAAAAQEA/wIBAQABAv//AQEBAQEBAAH//////wAI//wA/fv+/fsA//77/P36+fcBAQAEAwUDBAT//f3/AwMEAwUDAwICAAH/AAD9+/oBAgP+/f4BAgL9/fwBAQEAAP8BAAEBAAD+/v79//3//wD9//76/f0A/v8A//8B//77+fj++/r7+fkC/v0DBgcAAAH0+PkGAwQDCAsECQgDCAgABQb5/P4B+/oAAwQA/fsE/QMBAwP/AQD7+/0CA/8BAgICAgEA/wEAAAD/AAEDBP8A/v//AQH+/f0BAQIDBAECAAH/A/8AAP8CAQIAAAAAAP8BAQAAAf/8/Pv4+PUAAP0BAQEKCwoKCwv9/v7+/v78+vz8/Pv7+/v7/Pv9/v3//v3+/f4BAQEBAf/+AQEA/f37/Pn4+Pn19fXo6ejo5+nw8PH08vXx8vP7+/r9/f7w7+4AAAAAAQABAAABAQEFBgYGBwcEAwT9/P8NDA8LCQz5+vr8/Pz9/f7+/v3////9/f37+/v+/v7///8BAAAAAQEA/wD/AP8AAAAA/wAAAAAAAP8BAAD/Af8A/wAA/wAAAAABAQH//wAAAP8A/wAAAAEAAAAA//8AAP8AAAEAAAABAQD///8A/wAAAQAA//8BAAD/AAAB/wD/AQD/AAAA//8AAAEAAAAAAP//AP8A/wAEAQEBAAD/AAABAP8AAAEAAQAAAQD/AAABAAAAAQEAAAABAQAAAAAAAQAB/wEAAAAAAQD/AAEBAAAAAQAA/wAAAAAAAAEAAAAAAAAAAAABAP8A/gD/AP//AAABAAAAAP8AAAD/AAEA/wD/Af//AAAAAP///wAAAP//AAAB//8AAAAAAAD/AAAAAP8AAQEA//8AAAD///8BAAAAAP//AAAAAAD//wABAAD//wAA//8AAQAAAAIAAP8BAQAAAAAAAP//AQIBAgAB//8AAAAB/wD///7//wABAP//AQEBAAAAAAEAAP8AAAAAAAEB///+AAAAAP8AAAEAAP8BAQIBAf4AAQECAAABAP8AAQD/AQEBAAEBAf/+/gADAgMABP//////AAAI/f37CP7++P71//7+AAL9+fr7//8A+/r7AgMD/wMD/QL9AwP8AwQFAgICAP8AAP8AAQEB/v38/f7+AAAB/v3+AwME////AgIEAQH++/v7/AEB/fv7AQD///////7++/j4Af/+AQEA/v7+BQYG+vj4/f3+/wEDAAAA/wMEAAID/P389PPx/Pv8Bfn5BgkJCQwQAAIDCAYH/f7+/v4BAQEBBAUFAQIB/f39AQEBAQAB/v/+/v39//8AAP//AQIB/f7+/gD+AP7+AAAAAgIC///+/wD9/v37/f38+vv5+ff3/v78AAEBAgIEBgUGBAUFBQYFBgYE/v8I/v///v3+/f38/v7++/v79/j3+/v8+Pj68fHw8vHx8fHy8/P08/T0/Pz9AQEBAQEBBAMEAgL//wD///7//f79/v/////++/f39/b3AAEBAP8B7u7vAgIBAQABAAD//wAAAgICAwMDAwMCAQAF/f7+/Pz8//7+////AAAAAP///wEAAAD//wAAAQD//wAAAAD/AAAAAAAAAf8A/wAAAQD//wAA/wAAAAAAAP/+/wAB/wABAAD/AQAB//8AAAABAAH/AP//AAEA//8BAAH/////AAAAAf8A/wABAAAAAP8AAP8AAP8A//8ABAAA/wAAAP///wABAQH/AAABAP8AAAEAAP//AQAB/wH/AQABAQAAAP8AAAD/AAEAAQABAAEA/wAAAQABAAD/AAEAAP///wABAAAAAP//AAEBAAEAAf8AAP8AAAAAAAAAAAABAQAA/wEAAP8A/wD//wAA/wD//wABAQAAAAEAAP4AAAEAAAEA/wAAAQD/AAEAAP7/AAEAAAAAAQABAQAA/wD/AP///wABAAAAAAEAAP8A/wH+AP8AAAAAAAEAAAAAAAEAAf//AAAA/wECAQD/AAABAAD//wABAAAAAAEAAQH/AP8BAQEAAP8A/wMAA/8B//8BAf//AAABAQD/AgEBAv7+/QAA/wAAAP8BAgL//gAAAP8AAgEA/gECAgEEBAUAAAD//wYI/wAAAf///v///P7//gQE//z7+////wP/BP///gAA/AYGAP///wIBAQIDAwH/Av7+//z8/P//AAUFBgD///z6+f//AAQF///+/vz6+AMDBP37+//+/QICAgIAAAICAQD/Av79/Pv8/P7+/fz9/f7+/f7/BP8CAv3//gIA/gD+/QUFBf3+/P31/Pv7+fz7/QQHCf8J/wAA/wAAAAMEBPz8+wICAfz9/gQDBAEBAP79/Pz9/fz7+wQDA/3+/QICAvz7+v///gAA/wIBAf///P8A/QAA/vz7+/z9/gABAAABAPz7+vv79vQAAAEAAQMEA/38/gEBAgQFBQH/AP4BAAUEBf8BAQEBAgAA/AAAAAQEBggIDAAABQAABPb2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AAAAAAAAAP8AAAEBAQAAAAEB/wAAAP//AP///wAA/wAAAP///wAAAAD/AP8AAQAA/wAA/wD/AAAAAQABAAD/AAABAQAAAAABAAAAAgAA/wD/AAAA/wAAAf/+AAAAAQEAAP8AAAAAAAD//gAAAQEAAAABAP//AAEBAAH/AAAAAAAA////AAAAAAAAAAH/AAEBAf///v//AP7+/wEBAAAAAQEBAAACAv///wIAAP8AAP8AAAEA/wAAAQECAQEBAf/+//8BAf8A/wH///7//QECAwD+/v4A/QD/AQECAQD/AQICAwMDBP8FBgb//////v7+/f39/AD//wEAAPv8+gD//P0DBAMDBP///wEAAP7//////v39+//9/f78+wEBAwUFBQQEB/7/AAEA/wAAAPz8/AH/AP8B///9//z5+v/9/fv6+fr39/j29Pn4+Pv3+f/+/gACAvv8+wIA/wAA/v8AAAICAv4A/v///wYGBwD///37+vn39gABAQQEBAEAAP7//wH/Av39/fz9/AQDBAAB/wD+/gcHBvv7+vz7+AMDAvn6+/n5+QUHBwMCA/r6//X09wgKCBYXGvb18vj49vz6/AABAPz9+/v8+wUEBgcHCQYJB///AAYICgwLDAMEAwYFBgQFBAMCAgIDAwECAQQEBQABAgICAgIBAgABAQ0ADAD+/xsaGf39/fT19urq6tjY2M3Nzdva2fb29f79/v///wABAQAAAAAAAP8A/wAAAAAAAAAAAAAAAAD///8AAQD/AAAAAAAA/wABAQAAAAAB//7+/wEAAAAAAAACAgAA/wD+/QAAAQEA//8AAAAAAQAB/gD/AAABAAD//wAA////AAAAAAAAAAAA/wAAAQAA/wAA/wD/AAEAAAABAAH/Af8BAAD/AAEAAP8BAP///wAAAQABAAAAAAAAAP8AAAQBAP///wABAAEAAQAAAQEAAAAB/gD+Af8BAAAA/wAAAAAAAAABAAAAAQAAAAH//wEBAQAAAAEAAQAB/v/+AAABAAABAAD/AAECAAD/AAAAAAAAAAD/AAEAAP//AAAAAAAAAAEA//8AAAD///8AAAH/AP4BAAEAAAAAAAAAAP8A/wABAAD//wABAAEAAAAAAAAAAAH/AP8AAAAAAP8AAAAAAP8AAAEAAP8B/wAAAAH/AQAAAAAA////AAEA/v//AAABAAEAAf8A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AP///wABAAD/AAAAAAAAAQAA//8A/wAAAQABAAD/AAAAAAAAAAD///8BAQH/BAABAAAAAAAAAAAAAP///////wIBAf8AAAAAAQD//wEA/wABAQIAAQAA/wAAAf///wABAQD/AAEBAP8A/wAAAAAAAP8BAAD+/wECAQABAAEAAAAAAQD//wABAP///wAAAAAAAAD/AAAAAAEAAP8A/wAAAAD/AAAAAf///wEBAQD//wAAAf///wAAAAAA////AAABAQEAAf////8AAAEAAAAAAAAAAAAAAP//AAEBAP//AAABAAAA/wD/AAABAQD//wAAAAAAAAAAAP8AAAL/AAAB/////wECAQD/AQEBAQAAAP//////AAAA/wEAAQAA//8BAAH///8AAAEAAP8AAAEBAf4A/wAAAf///wIBAv7//wEBAQH///8BAAACAv///wICAP4A/wMABQH/AAAAAAAA/////gIC//8D/wQF/wAA/wD///8A/gAAAP8AAfj5+P////n6+gACAgMHAwIDAgABAAEBAgICAwL/BP//APv7/QQEBAD///7//wD+//8BAQED/gIBAwICA/v5+wH9/v///gMGBvz7+v///gD7AwL+BP8CAQD7+/8A/wYHAvz7+gABAAABAAEBAQEBAAEAAf//AAECAQUEBP39/gMFBAAA////AAIBAgICAwD/AP8A/////////vr6+wgICgUGB/z9/QICAgICAwcJCgICAQIDAgYFBwECAQABAQECBAAAAAMCAwIDAwEBAQAA/wEDBAEBAQAAAAAAAP8A/wEAAQAAAQAAAAAA/wAAAQD//wABAAIBAf///gAAAAEBAQAAAQAB//7+/gABAAH/AAMDAgkJCB0eHTU3N/j399bV1fXz9f3+/gAAAAAAAAH/AP8B/wABAAH//wABAQEAAAD/AAEAAP8A/wAAAQAA/wEAAf//AP8A/wAAAAD//gD/AAAAAAAAAAD/AAAAAf8B/wD/AAD///8AAQABAQH///8BAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAA/wABAAH/AAAAAAABAAD/AAAA/wD/AQAAAAAAAAQAAAEA/wD/AAAAAP8BAP8AAQD+/wAAAQAB/wD/AQAB/wEAAAD/AAAAAAAA//8BAAH/AP8BAAD/AAEA/wD//wABAQAAAAAAAQH/AAAB//8AAAEAAf8A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+AICBAICBwICAwEBAwABAf/+AAABAAEAAQEAAwICAv4C///9/gECAgH/AAMFAgEBAP4B//8CAQECBAIBAQEBAPj6+QL9/f8AAgcGBfz9/P79/gT//v79/AQEBP/+/vz8+wMDAgIEBQIDAgICAwEBAQIEA///AAABAAECAwICBAICBAQFBAIDAwICBAIDBAQDBAQEBAEBAgEBAQH//wMEAgP/AgD/+wAABQAA//////79/QEDAQICA//+//7//gEBAQABAQABAQAAAQEBAQAAAQEA/wAAAAEBAQD//v7+/f8A/v8A/wMCAAECAf7+//////7+/QEBAAEAAv7+/gH/Av8B//7+/wD//ggGBg4ODhQVFQkJCPb09P7+/QAAAP///wABAAABAAD/AAAAAAAAAAD/AAAAAQAA/wAAAQD/AAAB/////wD//wEAAf8BAQD//wAB/wH/AP8AAAABAAEAAP//AQAA/wEAAP//AAD/AAAAAQAAAAAAAf8BAAH/////AAABAQABAAH/AP8B/wD//wAAAAAAAf8AAAAAAAAAAAAA/wAAAgQAAQAA/wD/Af8BAAD//wABAQEBAQH//wAAAAAAAQAAAAAA//8AAQD/AAEBAAAA/wEAAAH/AAABAQAA/wABAP//AAAAAP///wAAAAAAAQEBAAAA/wAAAP8BAAD/AP//AAAAAQAA/wAAAAAAAAAB/wD/AAAAAQAAAAAB/wEAAP8AAP8A/wAAAAAAAAEAAAAAAAABAAEAAQAA////AQEB/wEAAP8AAAEBAP8AAAEAAAEAAP8AAAH///8AAAABAAEBAgAAAAAAAAAA/wD/AAEBAQABAQEA////AAAA/wD/AQACAQEAAP8A/wEAAQAA/wEAAQABAAEAAP8BAAAAAgEAAAAAAAABAQD/AP8AAQEA/wACAgD//wAAAf8A/wEBAf///wEBAgAA/gABAgICAP/+/gEBAQECAgECAwIEBQUBAQAB3dkxfQABAABJREFUAQAAAAAA////BAT//v7/AP4BAgACAgH9/P35+fr0/vMMAQEFBgcEAP8DBAMCBAIB/v/9/v4AAAD9/v8DAwIAAwIAAAD+//sFBQX+/v78+/sDBQT8/Pz/AP8AAAIICAj7+/sBAQH/AP8BAgH8Av0A/wAABQUEBAP//v8GAAgBAwMBAP8AAQECAgL//wABAwMA/wABAQIDBAQFBQYCAgECAwQFBAUCBAUDAwUEBAQDAgIBAQEBAf7+/vwA+/8BAgH7+vkCA/kBAgwA/wACA///AP8A/v39/v76+vgHBwkAAQADAwQAAAEBAQEAAAD+/v////8BAf0AAP//AP7+/QAAAP///v8CAgIBAAD+//4A///+AAAA//0AAQIBAgMA/wAA//0A/wACAgENDg0PEA8FBgcDAwP8/Pv+AAEAAAAAAAAA////AAABAAABAQH///8AAP8AAAAAAAAAAAAA/wAAAAD/AAAAAf8A/wH/AQAA/wAAAP8AAAEAAP////8AAAAA/wD/AP8AAAAAAAAAAAAAAP8AAAEAAP//AQAAAAAA//8AAQAAAAAB/wD+AAEBAP8AAAABAAD/AP8BAQEAAAEBAAAEAAAAAAD///8AAAAAAQEAAAD///8BAAAAAQAA/////wH/AP8A/wACAgEAAAACAAAA///+AQEB/v8AAP//AAAB/wAAAAD/AQEAAQAB////AAEBAAEAAP8A/wAAAP8AAAABAAD/AAAAAQAAAAAA/wAAAAAAAAD/AAAA/wAA/wD/Af8A////AAEBAP///wAAAgEBAAAAAAAAAAEBAQABAAD/AAAAAAAAAAEBAP8AAAIA//8A////AQEBAQD/AAAB/v8AAQEBAQAAAAEAAQEAAAAB////AAACAAD/AAAAAQAAAAAAAQAA/wAAAQEBAAMAAQAA//8AAP8AAAECAAD/AAH/AP8AAAD/AgEBAQAA/wEBAP8BAAH/AAAAAAAA/wABAQH///8AAgEBAAIA/wD/Af8AAQIAAQACAgIEAwQAAgEAAgECAAABAP8AAAABAQEBAAEA/////v39BwcJAQEC/v397/DuCQkLDAwOAQQEAgEBAQMCAwECAQECAwMCAP8AAgMD/f38Av7+AwQEAQD//v/+AQEBAwH//v3+AQMCAf8DAf/////9AgID/P79BAUDAAAAAgMCAwIC/f7+AP//AwQEAAD/AP8BAAEA//8AAQEAAgIDAQEBAgMDAwQEBAQEAgECAwQFBAQGBAQEAgMDAgIA//7+//7//f36/f78BAQDAwL//f37/fv4AP/+AgD+/v79AAMD/P38/v39AAH/AQEBAQICAQEB/wAAAgEBAAAAAgIBAQEA/v7+///+///9/PwCAQH8Af8AAgMEAQECAQEB//3/////AgMC/v79AP8AAAD/AQAAAQABBAIDDw4RERES8e7v+/z7//3+///+Af8AAAABAAD/AAAAAAAAAQAA/wAAAAAA////AAAAAAABAP//AQAB//8AAAD/AP8AAAAAAAABAAAA//8B////AQEAAAEAAf8B/wD/AAD/AAABAAABAAD/AQAA//8AAAABAAD/AP8AAAD/AAEBAv///wAAAAD/AAAAAQAAAAAAAP8A////ACuB1H4E/f39AQAAAQEAAQABAAD///8BAQD+/wABAAEBAAAA//7/AQEBAQH//wABAP/+AQECAAEA/wAAAP//AQAA/wAAAAAAAQEBAAAB/wAAAQEBAQAB//8AAAEAAP///wEAAAAAAQAA//4AAQEA/wAAAAAAAAAAAAAA/wAAAAAAAf///v8AAAAAAf////8AAAEA////AAABAQAAAQEBAAEAAQAB//8BAQH/AAAB/wEAAP//AAAAAQEAAQAA//8BAQAAAQEAAQABAAAAAAAB///+AQEAAQAC/wAAAAAAAAEAAQAA/v//AQABAAH/AAAAAQAA/wAAAQEAAAABAQD/AAEAAAABAAEAAP8B//8AAAEA////AQEBAQAB//8BAAH/Af8AAAEAAAAA/wD/AQABAgECAAMAAP4AAAACAQYFAfsB/f8BAQMCAQABAgICAgIC+wEB/wAA/v7+AP8B/gABAAEC9fXz/v3+9vb0AwIDAwQFBgoIAwME+vr6AAAAAgMD/v7+////AAEBAQMCAwQEAwIBAgMC//79/PwCAgT/BAQEBAUF//b2/f4C/fz7AgMDAAEA//7//wABAgMFAgQA////AAAAAAAAAAAAAQICAQAAAQEBAgIDAwMCAwQEBAIEAgMDAgICAAEBAgL/AAH+AQABAP8BAAD//wD+/Pr5/fv2+AAABwYGAAEB+f/2BgcABAD/AQIG+/78AP/+BgcHBAMEAwMCAgEAAAEAAP8A/v//AgEC/wD////+//7+AAD+//3+AAH+/Pz9///+AwIFAwQE/wABAAABBgUGAQMDAAAAAAAAAQIEAgEA/v78BgUGFRQUICAi/Pv65ubl9vX2/Pv7AAAA//8AAf////8A///+/wD/AAAB//8AAAAAAP///wEAAAAA/wAAAAAAAAAAAQAA/wABAQD/AAAA/wD/AQAAAP8AAAAAAP8AAAEAAAEBAAAAAP8AAAAAAAAAAAD/AAABAAAA/wAAAQABAAAAAAAAAAABAQAA/wAAAAEA//8AAQEAAAAABAD///8BAgEAAP8AAP//AAEA/wEBAQABAAAA////AP8AAAIAAP///wEB/v8AAgD//v//AAEBAQAAAP8AAAAAAAABAAAAAP8AAAEAAAAAAP8B/wD/AAD/AP///wAAAAABAP//AAABAP//AAAAAAEAAP8AAP//AAAAAAD//v7/AQD//wAB////Af8A/wL/AQABAAEBAQD//wEAAP//AP8AAAEBAAAAAQAA/wEAAf///wEBAf//AAD//wEBAQAAAAAAAP///wEBAQAAAAD/Af///wAAAAABAAEAAQAAAAEBAAIAAAAAAAABAQAAAf8A/wAAAP8AAAEBAAAAAf///wEBAAD/AAABAAEAAAAAAAABAQD//wABAQEAAAABAgAA/wD/AAEBAP8AAP8AAAICAgD//wAAAgAABAH//f8EAAEAAf0AAf8BAAMAAAAA//8AAAD/Af8G////AAb//wEAAf4A/gMEAvj4+fb29gYHCAwODwAAAgABAQMCA////wD/AAECAv79/f/+//r7+gMEBQUFB/v6+AMEAgEBAQMDBAQFAP39APz7+v39/QAB/wEBAAQEAv39//3+/gICAgIDBAD//wICAgAAAAAAAAICAgEAAQEDAQICAgMCAgUGBgICAgMCAgABAQEBAf/+//7//gIEAgEBAQMBA/v6+Pz59wD//gD9+wICA/wDAgIBAQQDA/3++gD//gMEBAD+AP7+////AP7//wIBAv7//gD/AAECAf/////9/P7+/f8A/wEBAf/+/gIBAf//Af/+/f37/wECBAACAv4A/wQA/wIDBAAAAf39/wAB/wMDAgoKChkaGfj5+vz9+vX19fr5+vv7+gEAAQEBAP7//wAAAAAAAAAAAQAAAAEAAP////8BAAAAAAAAAAD/AAAAAAAAAQAAAAAA//8AAAAAAAEBAQAAAP8A/wD/AP8B/wAAAAAAAAAAAAABAP//AAAAAQEBAP4A/wH/AAEBAAD/AAAAAAAAAAAAAAAAAAEA/////wEAAQAAAAAAAAQBAQEAAAABAAAAAAAB/wD/AQAA/wEAAAAAAAAAAAABAQD/AP8A/wH/AAABAQD/AP8BAQEAAP8AAAD//wABAf8AAAAAAAEAAAAAAAAAAP8A/wEAAAD/AP8BAQH///8A//8AAAAAAAAAAQAA/v//AAAAAP8AAAAA/wAAAAAAAP8AAQAA/wAAAAABAP//AAAA/wEAAP8AAAAAAP8AAAEAAAD///8BAQEAAAH//wAAAQH///8BAQAAAQH//wACAgD/AAABAAAAAP8BAAAAAQEAAAEAAAAAAP8AAAEBAAD/////AAEBAAAA/wAAAQAA/wD/Af8AAAEAAAAA/wAAAAAAAAAAAQH///8AAP8AAQAB/wEBAQH/AAEBAQH/AAAAAAABAQAA/wAAAQAAAAAAAAABAAMCAv4BAQH9/QEEAwP+//wAAAAB/QEBAAEAAP/+/wEA/wD/AAABAQECAgQAAQH+//4CAQEDAgX8/fz39/b49/YFBggGBgf9/Pz9/v0A/wH//v0A////AP/8+/z+/gAFBQYBAgX/+/v/Af4BAv4GBQYDBAP+/wMF/wf+/f39/fwEBQgEA/3/AAAAAAABAAAAAgICAgIBAgEDAQMBAgD+/v4EBAQCAgEBAQMAAP8BAQAAAP8BAAABAQECAQABAQABAAADAgIAAf/7+fr8+PcA//359/YCAwIJCgn8BAP6AAECAwQBAgIDAwMAAP8AAP/9/f0FAwP+/v4A/wD/AP79/QD/AP3+//4BAP/+/f39/fwDAQIBAQL9/f0AAAH/AP4GBwQBAQL+/v38/P8DAAEAAAEAAAABAQEDAwMEAAEPDw8fHx739/b3+Pj29/cAAAAAAQH8+vr6+vr+//8AAAAAAAAAAAD/AP8AAAAAAAAA/wAAAAAAAQAA/wAAAAAAAAAAAAABAAD/AP8AAAAAAAABAAD/AAABAQD//wAAAAAAAAAAAAABAAD/AP//AAAB/wH/Af8AAAAAAAAA//8AAAAAAAAAAAAAAAAAAAEAAAAAAAAA/wAEAP8AAAH/AP8B////AAEA//4A/gH+Af8A/wEB/v//AQEA/wECAgIAAAEAAP//AAEBAAAAAP///wEBAQIAAP8AAP8AAAH/AAAA//8BAAAAAAH/AAAAAAABAP8AAAAAAAAAAAAAAP8A////AAEAAP//AAAAAQAAAAEA//8AAP//AP8A/wAAAAD/AQECAAAAAQAAAP8AAAEA//8AAQEAAAAAAAD/AP8AAAAAAQEBAAABAAAAAP8AAAAAAAD///8BAAEAAAABAAAA/wEAAP8AAAAAAAD/AAABAQAAAAEBAAAAAf//AAAAAAAAAAD/AAAAAP8BAQEAAAAAAAH/AAAB/wEAAP7/AAAAAAEAAAAB/wEAAAAC//8AAQEBAP//AQABAQAA/wIBAP///wD+AQAAAgEB/v8AAP//AwAA/v3/AAMDAwD+AAAA/wEAAwD/AAABAAD//v//AQAAAQIEAgMDAQEBAQECAgL5Avv7////9PPwCgsPBgf/////AgIC/f3+//7+/v79/wD//f39BQMD/fz7AwME/f39+Pn3Bf//AwICAQIBAAAABAQD/wMCAfoAAwICAwQF/v/+AAAAAQEBAQAAAAEAAQIBAgABAQIBBQQEAAH/AQECAgIBAP/9Af8B/wAAAQABAQABAQECAwQEAgICAgAA+/z9/P399vb1BAMC+fr5BwcGCQgG/v36/fwC//8FBQYIAAD//f38A/7+AQL//v7+AQEC/P38AP/+AQIC///+AP/+/f78/f38AQEBAQEB/f38AAEBAAABAwIEAwMEAQECAAIBAAAB/v78AQEC//8AAAECAP8AAgEBBAQDDQ0LHyAg9vf36enp//799fT0+/z8/v//AAD///8AAAAAAAAAAAAB/wD/AAD/AAAAAAABAQAA/wAAAAAAAP//AQEAAAAAAAABAAD+/wAAAP8AAAD///8AAAAAAAAA////AQEAAAEBAP//AAAA/wH/Af8A/wAAAQH//wAAAAAAAP8AAAAAAAABAAAAAAD/AAAAAAAABAABAAAAAP////39/gECAQICAQABAAD/AQAAAAEBAAABAQEAAAD/AAAAAAAAAAD/AP8A/gEBAgEA/gD/Af8AAAEAAP//AQEAAAAB/wD/AQAAAAAAAAAB/wD//wEBAf//AAAB/wAAAAEBAP8AAAAAAQAA//////8AAQAAAAAAAAABAAIBAP8AAAH/AP8AAAABAQAAAAAAAAD/AP8A/wEBAQEBAv8AAAD//wEA/wAAAQD/AAECAQAAAAD//wAAAAH/AQAB/wAAAQD+/wABAAAAAf//AAEB//8AAAEA/wEAAf8BAQAAAAEAAP8AAP8A/gAAAAAAAgAB////AQAA/wD/AAABAAAAAAD/AQEBAAEAAgD/AAEBAP///wEAAAAAAP4BAAAA/wAB/wAAAf8A/wAAAQEAAgEB/v7/AQECAAIBAf//BP//AP8AAQADAP7/AAP+/wAGAf0DBAH7+wEBAf8A/wECAfj4Af8CAv37/Pz7/PLx7gQFBgYFBgABAgICAwEBAAECAwIAAf4BAAD//vz+/goGBPn++P78+/wAAfkAAf7///7+/gIBAQMEBAEBAv7//wMCAgMBAwAA/gEAAQH///8BAAICAgAA/wEAAQECAQD/AAIBAQIAAAABAAICAAICAQABAgIDAQMDAwQFBQD////+AP39+P7+/vf2+AQD//7+/wIB//f29QICAwMDBQEBAQAA/v7+/QAAAf79/AQFBf39/gEA/v39+wEAAQQCAv39/f///vn59wQCAgQGB/79/v8AAQUHCAICAwMDAwAAAQAAAAEAAgEDAwABAf//Af8A///+/v3+/gAAAQQDAgoIBxcWFAD+J/Lx78r18/b29gICAf/+Af7/AAEA/wAAAP//AAAAAAEBAP8AAAAAAP8AAAEAAAAA//8AAAABAAEAAP//AAABAAAAAQEA/v8BAQAAAAH///8AAAAAAAAAAf///wAB/wAAAAAAAAH/AP8AAAAAAP8AAf8A/wEAAP8AAAEAAP8AAAEA//8AAAH/AAABAAQA/wD///////4BAgIBAQEAAAD//v//AP8CAQIBAAH//wAAAP8AAQIA////AQEBAP8AAAD/AP8AAP8A/////wAAAgEB/wEAAQD//wABAf8AAAEBAAD+/wAAAAABAAABAQD//wH/AP8BAAABAAD/AP/+AAAAAAAAAf///v8AAQEA//8AAAEBAP8AAQAAAAAAAP8A/wEAAf8AAQEBAAAAAAD///8AAQEBAQEAAP8AAAABAgEA/wAAAQEAAgAA/wD/AQABAAAAAP8AAQEAAAD//wAAAAAAAAAAAQEAAAD/AAABAAAAAAAAAP8AAAABAQEAAAD/AP8BAAEAAQAAAAH///8CAAAAAAAAAAABAAH///8BAQEA/wAAAAEAAf///wAA/wAAAQIAAP8AAf4BAQL+/f4AAAAAAAIBAgADAP/+/wAAAwAAAAMA/wAAAQIDAgQABAAB/gEBAAH///8C//8FBggA/////wABAAL9Avv7+/r7+vn8+vn0/fwFBAYHCQr+/v4CBAQHBgcDBAQAAQH8/Pv8/P38+/v+/v8B/v79/f0CAgICAwICAQAAAP4DBAL9/P39/PsCAQIAAgACAAEAAQEA//7+/f4CAQD+//4B/wIBAgEAAAL/AwIEAQIAAQACAgIBAgICAwQCAgMB////AQIBAv8BAgMBAQLt7OwLCgYJCwsA/wH7/P7+/wEDBAYEBAT//v8BAP8CAQL///8AAP/+/fv9/f4AAf8DAgT9/v3///79+/kA/f7+/wD7+foDBAQEBAUDBAUEAwQAAQH8/f4EAwMEBAQBAQP+AAD//wACAAD+/f0AAQH//v////4EAwMJBwcYGBYsLCvt7Oz19Pb8+fv+Af8AAP0AAAD//wAAAAAAAQD//gAAAAEAAQABAAAA/wAAAAABAP//AAAAAAABAAD/AP8A////AAAAAP8A/wAAAQAA/wAAAAABAf//AAAA/wAA/wAAAQAAAQEBAP//AAAA/wEBAAAAAAABAP8AAP8BAAD/AQAA/wD/AAABAP8E///////+AAECAQAAAP8AAAD//wABAAAA/wD/AP8BAAAAAAAAAP/+AAABAAD/AAAB/wD/AQEAAP8AAAD/AQAAAQACAAH///8AAQEAAAACAAAA/wAAAQAA/wEBAAABAAEAAQD/AP8BAAEAAP//AQEBAf//AAIB//7//wEAAP8AAQEBAAAAAAAB/wAAAQAAAQEB/wAAAAEBAAAB////AP//AQABAQD/AAEAAAABAP8A/wD/AAAAAgABAP8AAAAAAAAAAAAAAf8A/wH/AAABAQH/Af8AAAEB//8AAAEAAf8A/wD/AAAAAQABAQEAAAAB/wD/AAEAAAABAAAAAAAAAQEB///+AP8AAQAB/wEBAP8AAQAA/wAAAAD///8AAAD/AAEBAAAAAAEAAf8BAAAAAgIC//7//wD/AQAB/wIBAv8A//8AAgAA//8A/wAAAwAA////AQABAAQB/wEAAgEC+/sAAP8HAAAB////AvsA//7//gP9/gD8/vr8AAUE8e3s/P78BwoK+AQGDg4P/v8A//8AAgECAAH/BAMCAAEBAP//+vr5///9/gAAAQAAAQEBAf///v3+/gAAAQIA/P7+AAEABAICAAEAAAIBAQEA/v8BBP8DAAD/AgABAgIBAwIBAQEBAwIEAgQFAQAA/wABAAAA/gD/////Dw8PHB0f+vr2Dg4R/v/9BAYFDRARBgcJAAAA/v//AQIDAAEBAQEB/fz9/f7+//7+AQIB/f76/gD+//39/v38/fz8AQUF/Pz8/v7+BgcD/////gAAAgEABAME/wD//v//AgD/AAAA/v7+AAECAgICAf8B/f/9//8AAQH/AgEABQQEHRwcLC0u7u7w+/j59fX0/v7+/v//AAEAAAAAAP8AAQEA/wAAAP8AAAAAAAAAAAAA/wAAAAAAAAAA/wEAAAAAAAEAAP8AAAAA/wD/AP8AAAD//wABAQAAAAAAAAAAAAEAAAAAAP//AAAAAQAA/wD/AAEAAP///wAAAQABAAAAAP8AAAD/AAAA/wABBP8AAAEBA////gABAQAA//7/AAAB/wEAAAAAAQEBAf///gEBAf///wEBAQAA//8AAAAAAP/+/wAAAAAA/wIBAgAAAQAAAQAA/wAAAQAAAAAAAAAAAAABAQH//wAAAAD/////AAAB/wAAAP8AAAAAAAAAAf8A//8AAAEAAf8A/wABAP4A/wD/AAIBAQD/AP///wAAAQD/AAEA//8AAAEBAAD/////AQAAAAAA/wECAAH/AQAAAAABAAAAAQAAAQAA/wEAAf8A/wEAAP8A/wEAAAABAgD//wEBAQAA/wEBAf8AAAAAAAAAAP8AAAEA/wACAQH//wAAAAEA//8AAAD/Af//////AAEBAAL/AQAA//8AAQAAAAAA//8AAAABAAD/AAEBAAAAAAAAAP///wD/AAABAAEAAP//AQEAAP8BAQEBAQEBAgID/wAAAQAAAP7///8BAf8A/wQAAPwAAAP+BQD+AP8F/wb9CPoAAAcBAgICAvr5+AgJ/wMCAf3/+gEBAPv49/sC+QYFA/39/gUFBvwEA/z8/QEBAgH//vr7+vv8+wIBAf7+/AIAAQEBAQIBAf39/QD//wICAgICAQH/AP4A/QEA//4AAwQEBAIB/wEB/wICAgIDAwMDBAQDBQIDBAEDAwIBAwEBAQABAf//AAIAAQMCAvr6+gMFBAgDDAMFBwcFAwQFBPb2+AQEBgQGBwMCAwEBA/8BAvr7+gUBAQD//wAAAf/+/f7+/v///gABAf7+/gUGCAIDAwEAAAECAv4AAfz9/gAC/v/+AAAA/f4A//79/QMEBP////8AAAICAv8AAv8A/wICAv7/////AAEA/wMDAgsKCygnKunq7Orp6fT19QAAAQEBAf//////AAEAAP8AAAEAAP8BAAH/AP8AAAEBAQD/AAAA//8BAAD//wAAAAAAAAAAAQAA/wEBAQD///8AAQEAAAAAAQH///8BAAD/AAAAAAABAQD///8AAAAAAAD/AAAAAAEBAAD/AAAA/wEAAP8AAAABAAD//wQA//8AAP8AAAD/////AP8CAQH//wAAAQEAAAD///4AAAD/AAABAQEAAP8AAAEA////AP8AAAAAAAAAAQAAAAEBAAAAAAD/AAAAAQD/AP8BAAEAAAAA//8AAQEAAP8AAAABAQD//wAAAAABAQEA/wD/AP4CAAD+AQH/AP8AAAD/AAEAAAACAgEA//8AAQEAAAAAAAABAAEBAAAAAAAAAP8AAQEAAAAAAQABAAEA/wEBAQEAAP8AAQEA//8AAP8AAAEAAf8BAAEAAAABAAAAAP8AAf8A/wABAAAAAAEAAAACAAH/AP8BAQEA////AAAB/wAAAQIA////AAEBAAAAAQEBAAL/AP8AAAH+//8BAAAA/wABAQAAAAEA/////v8BAf//AAEB/wAA/wAA//8AAAAA////AAEAAP8AAQAB/wEBAQEBAQEBAQIBA/4CAAME///9AP3/AAD///8CAgQDA/8A/wAAAAABCAICAwL8+/v/AP/9/f3/Af///fwFBQX////7+/sGBAb08vD/AQAKCwwD+wP+/wAFBAX9/fz+//7//vz/AgIC//8AAP7//wD+AAAB/wAAAf8AAP4AAAIBAQEA/wACAwMEAgMDAgIDBAQDAwQDBAQDBAQEBAYDBAUBAQMBAQICAQMBAgEBAgQAAP/8/f0AAgICAwMKCwwJCAgFBwcBAgMEBAL29/j29vcLAwUIBwj8/Pz7+voBAQICAQD9/f0CAgP+/v7+/fr///8DAwQDBQQEBQQBAQMBAgMCAgL/AAMAAP/+/P0DBgX///8EAQMAAQD9/fwAAAD//wEA/wAAAP//AP8AAAL/AP///wD/AAACAQEBBAQREQ8vLi7f3t3w7/D//f/9/v3//f3+AP8AAAAAAAH/AP8A/wD/AAAAAAD///8AAAD/AAEA//8AAQAA//8AAAABAP//AAAAAAAAAAAAAf8A/wD/AAABAAEAAP8AAAAAAAAAAAD/AAAAAAAAAAD/AP8BAAD//wAAAAABAAEAAP8AAP8AAAEAAAAE/////wEBAP//AAAAAQEA/v/+AAEAAP8CAP7/AgECAAEBAgEBAAEB//7+AAD//////wD/AQABAAEAAQACAAAAAP8AAAEAAQAAAP8AAAAAAAEAAQAAAAEB/wAAAAABAAD/AAABAQEAAP8A/wAA/wD/AQEBAAAAAAAAAQAAAAAAAAEAAAAB/wAAAQEBAAABAQAAAAAAAQABAQAA///+AAABAAAAAAAAAQAB/wAAAQAA/wD/Af8AAP//AAEAAAAAAAD///8AAQEAAAAAAAAAAAAAAAABAQEAAAAAAAAAAAAAAAAAAQAAAP8AAAAAAQECAQAA/wAAAAEBAAD/AP8AAAD/AAEBAQEB////AQAAAf8AAQEAAAABAAD//////wAAAQABAAAAAAAAAAAAAQEB//8AAAAA//7/AQEA///+AAABAAAAAQEBAQIBAf4CAgIAAAMEAAECAPwB/wP/AAABAAP/AAEBAAAA/wAB/wAA/v//Bf8IAQEC/P0F+/n3BwkJ/Pr6AwMC/v79AAAAAP7//fv6+gEBAwQF/v0A/f79Af8AAgH/AgH+AQIA/v7/AgAAAQABAAH/AQICAQEAAwIBAQECAgECAgQDBgUFAgMEAQQDAwMEAwQEAwMFAgMFAQIEAQEDAQECAQICAgIDAAEB/wEBAQAAAgICAQEAAAAA/P38A/4DAwIBAAEDDA0O/v39+Pj3BAYG/f38+vj3AgMD/v37///+BwcH/v4A+vn2/Pz8CQkMBQYHAAABAQEDAwMDAQACAQIDAAEAAAEAAgIBAP8B//8A/v7+//7+/wAAAAAB/f4AAQEB////AAD/AAAB/wEBAAAA//8A/wAAAwMDGhoZMzI05eLk6vn6//v+/QEBAAAAAP//AAAAAP8BAAD/AAAAAP//AAAAAAD/AAAAAAAAAf8BAAAA/wD//wAAAAAAAP///wAAAP8BAP8AAQAA/wD/AP8AAAAAAAAAAP8AAAEAAP8AAP8AAQEB////AAEAAP//AAABAAEAAP8BAAAAAAAABP///wH/AAACAAAAAAAAAP7+/QICAgAB/wEAAQABAAD/AP4A/wH//wABAAD//wAAAAEAAf8A/wEAAQAAAP//AAABAAEAAAAAAQAA/wAAAgD/AP8BAAEA/wEAAAAAAf8AAAAA/wD/AQAA/wAA/wEBAP//AAAAAAAA/wABAAEBAf///wAAAAH/AAEBAAD//wEBAgABAQD/AAAB/wD/AQAAAAAAAAAAAP///wEBAQAAAAD///8AAQD//wEBAAAAAQAAAAAAAAAAAAAAAAAAAQEAAQD//wABAQAA/wAAAQAAAAD//wAAAQABAAEAAQAAAAAAAQAAAAAA/wH/AQABAAD/AAAA/wAAAAEAAP8AAAABAAAAAAAA//8AAAEBAQEAAAAAAAEAAAAAAQAA/v7/AAEAAP8AAAABAAABAQD/AgEAAP4AAf8A/wAAAAAA/wEBAQECAQD+AQABAQICA//+/gECAwH+/wECAwAB/QABAgMDBQAAAQICAwH7Av/+/gAAAAQDBP38+/v8+wD/AAEBAAEBAf/+/v79/P0BAAEAAP79/QECAgIBAgIBAQMBAQEBAQD//wAAAAIDAwEBAQIBAQIDAgMCAgIEAwMEAwQFBgACAwMCAwIDAwIDBAEDAwECAwEBAgECAwEBAgABAQECAv8A/wAAAAQFBgIDBAABAP///v39/P39/f//AAIC//4A//39/fX19QcIBwQFBPz7+/z6+QMCAP0B//38/vv59wQFBQQDAgQEBAMCAwACAf//AAABAAD//v///wEBAvz//f///wAAAP7+/f///wD/AAAAAAACAwIBA/8BAAD+//8AAAIDAgAAAgEBAf8AAAEBAgcHBh0dHRsdHe7t7f38+wAAAQEA/wABAf///gEAAP8A//8AAAAAAAAAAAAAAQEA//8AAAAAAP8AAAAAAAABAQD+//8BAAD/AAAAAP8BAAD//wEBAP//AAAAAAAA/wAAAAH/Af8A/wABAAD//wAAAAD//wAAAAAAAAD/AAAAAAD/AP8AAAT/AP4AAQMA/v/+/v0AAP////8A/wACAwIAAgAA/gAAAf8BAAD/AQAAAAAAAAH///4BAQABAAECAQMAAQABAQAAAAAAAP//AAACAAH/AAAAAP8AAAH/AAEAAAAAAAACAQH//gD/AP8AAAAAAAEAAAAAAf//AAABAAH/AP8AAP8BAAD/AP8BAQEBAQEAAQAAAAD///4CAQEAAAEBAQD/AP8A/wAAAAEAAP//AAAA//8BAQAAAP8AAf///wEBAQEAAP8BAAEAAP8AAAEBAAD/Af8BAAEBAAH//wAAAP//AQEBAQEA/wABAQAAAAD/AAAAAQACAAD/AAD/AQEBAP8AAQAAAAH/AAAAAAACAAD//wAAAQH//wAAAP8BAQL/AP8A///+//8AAP8A/wAA///+AAAAAAABAQEAAAAAAAD/AP8A/////wD/AAEBAQIAAQAB/wABAf4BAQIBAf8BAgIC/wH+Av8A/v4DAgIAAgMBA/8CAQL9AAL///////4BAQH9/AIBAQEBAwMA/v8AAQEBAQECAwIAAAIBAAECAgEBBAEBAQACAgECAQIAAAACAgEBAAIBAQAAAAECAgIBAQEDAwMCAgIDBAMDBAQDBAYAAgEEAwUCAgICAgMBAgMCAgP/AAABAQIBAgEAAQEBAgEC/wL/Av/9/gIHCQv49PD8+/oAAAD///8BAQMCAwABAgEBAgH9/Pv8+wEBAQEAAP8CAgEEBQUBAQEAAP0HBgYGCAkGBwgBAAAAAQIDAQMAAQEBAQAAAQAA/wAA//79//8A//7+/v////7+/f0CAgP/AAECAAD/AwIB/wL/Af8BAAAAAAABAQEAAAEBAAEB/wADAwUWGBcqLSza29j49/UAAP7/AP8A/wAA/wD/AAAAAAEBAAD/Af8B/wD/AAAAAAEBAP//AAAAAQAA/wAB////AQAB/wH/AP8AAP8B/wEAAAD//wAAAAEAAP8AAAEAAf8A//8BAAH/AP8AAAEA//8AAAAAAAH/AAAAAQAAAAAAAAABAAAE//4AAAH+AAH///7/AAEAAQAC//8AAP8A//7/AAEAAQEA//8AAAABAAAAAAD/AAEBAAD/AQEBAQEA/wAB//8AAAEAAQAAAAAAAAEAAP8AAAEBAQEBAP8A/wAAAQIA/wAAAAEAAAAB/wD///8AAAH/AP8AAAD//wAAAQAA/wABAAH/AQAB/v8AAv8AAAEBAP//AAEB/wAAAAD/AAH/AP8AAQEA////AQEB/wD/AAAAAAAAAAABAAABAAAA/wD/AQAAAAEAAAAB/wAAAP//AAAAAAEA/wD/AAH/AAAAAP//AAEBAAIAAAAAAAAAAAAAAQEAAP8AAAABAQAAAQECAAAA/wD/Af///wEBAP8AAQH/AAD/AQAAAQEB/wABAf///wAAAAAA////////AQABAQEA////AQAA/gD/AAAA////AAAAAQAAAAAAAQIC//4AAAD+AQEBAgIBAP8CAAMF/wD8Av4BAgMC//4CAQMDAQH/Afz/AQICAgMEBAAGAQECAgICAgMEA/37//3/AAEAAQEBAAEAAgECAgMDAQIBAwABAAD/AgICAgEB/wABAgABAQICAgIBAP//AwMDAgIDAgMCAgIDAwIDAwQDAgIDAQICAgMEAgIDAQICAQECAAIBAgACAgMCAQECAAABAAECAQEA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AAAAAP8AAQAA/wAE/fz8AQEA/v////8AAgIB/v79AgH/AQICAgEAAAIBAAABAAAAAAAB/wD///7/AAEAAQAB////AQEAAQEDAAEBAAEBAQABAAAAAQAB/wAAAAD//wAAAAEB////AQAAAAEBAQAA/wAA//8AAQAA/wEBAAAAAQEA//8AAf8AAAAAAAD//wABAQAA////AQABAAAAAAAAAAEBAAAAAQAAAP8A/wAAAAEAAP8CAQL/AP8AAAAA////AgEBAAACAAH/AQABAAAAAAEBAQAAAAEBAAD/AQEC/wAAAQAA////Af8BAAEAAP8AAAAAAAD/AAAAAAACAP///wEAAAAAAQAAAQEA/wAAAAAAAQABAQAA////AAAAAAEAAf8AAAEA//////8AAf8A/wAAAAD//v//AP//AAEA//8AAP//AAEBAP//////AP8A/wD+/f3+/fz8/P38AP7//wEB//79////////AQEDBAQC/Pz8AAABAAEBAgME/wIC/v39Af39AgP//wEAAwIEAP8AAAH///7+AQEBAAEAAgAAAAABAAEBAAAAAf8AAQICAgEBAgIB/wAAAgECAwMD/wEAAQABAgMDAwMCAQIDAQABAgIBAgECAQICAAABAgECAAACAQIBAAEC/wABAQECAAECAP8AAQECAQEC/wD/AQD+AAACAQMF/wED+/v7AwIBAQED/f39CgMDCQwL/wAAAQEAAgEB+vr4AQEB+fr5AQEC/wD//fz8AQEC/wH//v77A/0E/v4AAgMB/gIBAQEBAwIDAQMDAgIC/v79AwME/P39/Pr5+/r4AQAB/v4GBQUHAQUBAQMB///+/wECAf7+AAEC/wAB/wD//v7+AQIDAgEBDQ0MExQVCgwNBAUE+fj5AAEAAf8BAAD//wAA/wAAAQAA/wD/AAEAAAAAAf8A/wAAAAAAAQAA/wAAAAAAAP8AAAAAAAAB/wAAAP8AAAAAAAAAAAAAAP8AAAAAAQABAAAAAP//AAD//wEAAAD/AAAAAP8AAAEAAP8AAAD/BP///gABAQEBAf///gD/AAEBAf7//gIAAQAAAAH/AAACAAEAAAD+/wAB/wD/AQAA/wABAQECAgEBAf8A/wIAAgEAAf8AAAAAAQABAAD/AAAAAAABAAABAQEA////AP8AAAD//wAA//8AAAEAAAEAAf8A///+AAAAAAABAQAAAAAAAAIBAQAAAQAB/gD/AAABAQEAAP///gAAAAAAAAAAAAAAAQD//wAA/wD/AQAA/wAAAQAB////AAICAP8AAf8AAAEAAQECAgD//gAAAQEAAQABAAIAAf///wEBAP8AAAEAAAACAQAAAAABAf///wAA/wAA/wD/AQAA//8BAQAAAQEA//8AAAAAAP8A/wABAAD/AAD/AP8BAP8AAP//AAEAAQACAAAAAP//AAH+AAAAAf///wD//wAA/wD+//8AAAD///8A///+/v79/P7+/QEAAQECAf4A/wEBAv8B/wEBAf7+/v39/QABAAABAQICBAEBA/39/f39/gEDAv//AwIBAQEAAQIBAgAAAf///gD/AP8A/gAA/wEAAQEA/wAAAAEAAQEBAQICAgEBAAABAQECAQIDBAIBAgABAAICAwICAgIBAwECAQEBAQEBAQEBAgEBAQAAAQABAAABAgEAAQEBAgAAAQEBAQD/AAAAAQAAAAH/Af8AAgEAAgcGCwUFCfb87/7+/QECAAABAv39/fv6+/7//QICAPn5+Pr7+vr5+gUEBAACAfX39QQEBQEDBQEBAAEAAfr/+QQEBAECBQIABAICAgABAf/+/v7//QAAAQIBAAD//////v/+/AD+//8BAf0BBAEC/QQDA////wH+AAACAQEBAf/+AP///wD/AP7+/v//AAYGBSMjI+Pi4uvp5/T09P/+AAAA/wABAP//AAEAAP8AAAD/AQAA/wAAAP8BAAD/AAH/AAABAAD/AAAAAAAB/wD/AAAAAAD//wAAAAAAAAAA/wD/AAAAAAAAAP8AAAEAAP8AAAEAAP//AAAAAAAAAAABAAAAAAAAAP8BAQT9/fwA/wD+/f8BAQEAAgMDAgICAgICAQH//wD///8B//8A/wD+AAABAAH///4AAAEAAgEA////AQECAQIAAQIAAAABAAAAAP8AAAEAAf8A/wAAAAAA/////wAAAf8A/wAAAQABAAEB/wD/AAAA/wABAAH/AP8BAgEAAAAAAAEAAP8BAQH///8BAAEAAQAAAAAAAAABAQEAAP///wD//wAAAAAAAAAAAP8B/wAAAQAAAP8BAAAAAP/+//8BAQIBAQEBAQEA//8AAAEAAAEAAQACAAH/AAABAQH/AAAB/wAAAAAAAAAAAQEAAP8CAQH/AAAAAQIAAP8AAAEAAAAAAP8BAgEA/wEA//4AAQEA/wAAAQD/AP8A/wAAAf8BAgABAAEAAAEA//7//wAAAQAAAP////////////8BAAD/AAAA//8AAP////7///8CAgIAAAD+/v4A/gH/AAAAAAH///7//wD//wD+/gAAAAAAAQH//wAAAAECAgP+/gACAAAAAgMAAAEBAQEAAAABAAMA/v7/AAIAAP4AAAABAAEBAQABAQIBAQECAgEAAAECAQEAAQIBAQEBAgICAgMBAAEBAQEBAQICAgMBAAEBAgEBAQEBAgIBAQEAAAAAAAEAAAEAAQAA/wIA/wEBAQEAAAAAAAD/AAH/AP8BAQIDBAUKDQ/9+fb07+r++voCAwT9CPz4+PgGBwT9/f7+//4AAQH//wD+/gYAAAD+/PsB/gABBP8DAwMBAQL///4DAQUA//////7//gD6/PsAAAAEBAQAAP/9/f4BAAECAQH//v/+/v0B/fsBAgT+/gUA/wAAAP8AAf//AAAA/wAAAP8BAQH+Af7////+/v8A//8FBgUTEhESERL18vL39/f+/v8AAAABAP8AAAABAAH/Af8AAAAAAAAA/wAAAAAAAQEAAAAAAP8AAAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA/wAAAAABAAAA//8AAAD/AAABAAD/AAEAAAAAAP8AAAH/Af4B/wEE/v79AQAB////AP8A/gEAAf8AAv8A/wADAgAAAAD//v7+AAABAgEB/v7+AAAAAQEAAf///wECAQABAAEBAAD//wABAAEAAgABAAEAAAAB/wAAAQAA////AAAAAP8BAP//AAD//v8AAQEBAP//AAAAAAAAAAEAAQD/AAACAAEAAP8BAAD/AAAAAAAAAAEAAP8AAAAAAAAAAP8BAAEAAQD/AP8AAAEC///+AAEAAAEBAQAB/wD/AAEAAQAAAAAAAAAA/wD/AAABAQAAAQEBAQEA/wAAAAAAAAAAAQABAAH//wAA/wEAAQAAAQAAAAEBAP//AQAA/wAAAAAAAAAAAP8B/wAAAAD/AAAAAAABAQEA/wD/AQAA/wAAAQABAAABAAD/AAD///8A/wD/AP7+/wAAAP8AAAEB//7+/wEBAf8A/wAB///+//8BAQAC/gD+//7///8AAAEBAQAC////AQEAAAH+/f7+/v39/f7///8A/f7+AAAA/wABAgIDAAAB//8AAQEBAQAA/wAA//7+AQEDAQH///8CAQAAAgICAAEAAgICAAEBAQAAAQEBAgECAQEBAQICAQEAAQECAwIDAAEBAQEBAQACAQIBAAAAAAEBAQEB/wABAQEAAQEDAQEA//8BAAEAAQECAAAAAAAAAAABAAD/AQAC/wH///8B//8B+/z7+/n3BQUGAQEC+vr6BQEC/fwCBQUD+vj3BQUGAgAA/v39BAQE+/7/Av/+Avz8AgEB/wMA/v7+9vj3CgoL/fz8/QEBAAH/AQIC/v/+/v39////AgMEAgIEAAEB/f7+A//////+AP/+/v38AQIEAAABAAD+AAIB/v///////v7+//7//v8B+fn67Ovq5eXl+Pn4AAEB////AP///wEAAAEAAP8AAAD/AAAAAAAAAAD/AAD//wAAAf//AAABAAAAAAAAAAEAAP8A////AAAAAAAAAAAA//8BAQD//wAAAAAAAAAA/wEBAAD/AP8A/wEAAf8A/wD/AAAAAAD/Af8B/wEABP///gD9Af7+/QAAAQAAAAD+//4CAwQBAwD//f//AQICAgIDA/3+/f8AAAIBAgEAAQAAAAEBAAEAAAAAAQEBAQEBAP//AP8BAAAAAAEAAQEBAP/+/gAA/wAAAP//AP///wD/AAEBAAD//wAAAAAAAQAA/wD/AP8AAAEB/wD/AQAAAP//AAABAAD/AAAAAAAAAAABAAD/AQAB/wEAAAAAAf8C/wD//wEBAAD/Af//AAABAAABAQAA//8AAAEBAAABAQEAAAABAAABAQABAP//AAAAAAEAAAAAAQAB/wD/AQABAAEAAAABAAAAAQAA/wEBAQAA/wD/AAAAAAABAAEAAP8AAAEAAAAAAAD//wEBAQAAAQABAAD/AAABAAAAAP7+/wAAAAAAAAEAAf4BAgD//gACAQD+/wAAAAD/AP7/AP/+/v3+AP//AAAAAf//Af7+/v///wEAAf8A/wAA//8AAP79/gD/AAEBAv/+/QEBAQEBAQEAAQADA/7//gD/AQEA/wAA//4A/wH/AAECAgAAAAAAAQICAQICAgAAAAEBAQMBAf8AAQEBAAEBAgICAQEBAAIDAwAA/wIBAwECAgEAAQABAAABAgECAQABAAAAAQAAAgEBAQAAAAEAAP//AAAAAAEAAf//AAEBAQAAAAIBAf4AAAD//wL/Af8CBAgJDQkKD/gI8AIA/vv8/QEB+AIDAvsB/wIDBgQDBPz7+wIBAwQFAv/9/wQDBP///wMEAwICAfv7/AAA/wUGB////f7+/gECAgYGBwD///7+/gABAQEBAgD/AQECAQQFBgEAAQIDBAEBAf39/AECBAMBAwAA///+/QH///4AAf/+//7////+//7+/vn5+O7t7evr6vPz8wIBAQMDA/z//gEAAP///wAAAP8A/wAAAQH///8A/wAAAAH/AAABAf8A/wD/AAAA/wD/AP//AAEBAP8AAAD/AAAA/wABAP//AAEBAP8AAQD//wEAAP//AAD/AAABAP8A/wAAAQD//wAAAAAAAAH/AAQA/v/9//0AAAEBAQH9/Pz+AQIAAf0AAAACAgIDBAYBAgP+//8AAQECAAIBAQAAAAD/////AAEAAAIB//8AAAD/AQIAAf8AAAABAAEAAP8AAAH/AAABAAD//QAAAf8A//8AAQEA//8AAQEAAAABAP//AAABAQABAAEBAQH//wAAAf8BAAEAAAAAAQAAAAEAAf8AAP//AQEAAAEBAP//AAABAAEAAAD/AAABAgH//v//AAACAAAAAQEAAQABAAAAAf8AAQEAAAAAAP//AAAAAQEA/////wABAQABAAAAAQAAAAAAAAAA/wAAAP8AAQAAAAAAAAEAAf8AAAEBAQD//wABAAD///8BAQEBAAD/AAAAAAD//wAAAP8A/wD/AAEBAQH//wACAgH+/v4CAAD+AAEA/v8A/wAAAAH//v//AAD+/v/+//8AAP/9/v39/P4AAf8BAAH/AAAA/wD/AP/8/P39/f8A/wD+/gABAAIAAAACAQH/AQAC/wP9+/0AAP///v4BAQD9/v0BAAACAgQBAgADAwMBAAEA////AAAB/wD+Af8BAQAAAAABAgABAgEAAAEAAQIBAP8AAAH//wIAAgABAQEAAAD//wEBAQEAAAD/AQEBAAECAgEAAAACAQH/AAD//wEBAQEA/wAAAAD+/wABAQH/AQAAAAAB/wEEBQYOExgGCQfq5d76+PL8/fv6/PoICQr9/fwCAwL39vULCgADAwT5+vcAAAAGBwcBAQACAQIIBwMAAgEBAAH8+/z/Af8D/wD8/PsCAQL+//8BAgMBAQMAAAEAAP8A/wAAAQH+/v4AAfwDAgIA//3///0A/wIAAP/+//3+/wD/AAD+/v///v78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AP//AAAAAAD/AP8AAQEBAQD//gEAAP//AAEAAP8AAgD/AAAAAAAAAAD/AAAAAP8BAAEAAAABAQEAAAAAAAAAAAEA/wAAAAEBAAAAAQAB/wD+AAABAP8A/wEBAf8AAAEAAP///wABAP8BAAD/AAEAAAAAAAD//wAAAAAAAQD//wABAP8AAQEB/wH/AP7+/wAAAP///wAAAAAAAAAAAAD/AP8AAAAAAAD/AAAB/wD+AAAAAAACAQP8//7//wABAAL8/Pz8/P38/PwAAP8A/wAA////AAAAAAAAAAD//wD8/P3+/v0CAwL+//3+//0AAQL9/Pz/AP4CAgECAgQDAwQBAgMCAQEAAQEBAQEBAAEAAP8AAAABAgEAAAABAQIBAAEBAgEBAQH//wAAAQEAAAACAAIBAgEA/wD/AQEAAQEA//8AAAEBAgIAAP///wABAQEAAAD//v8AAAABAP8BAwP+/f3/AAAA/v8AAQAA/wAA////AAAA//7+/fwGBgQBAP7x7+7y7+4CAwIBAgL+/f729PT//vz8+vnz8fIMDhD29fX/AP/08/f/AP4HCAkGCAn/AQEA/wD//f8AAAL///8EBAT9/wACAwIEAwUAAAD6+vr+/wACAQMEBwcF/f3+/v79/fwAAgIAAgX/AP7/AQAAAAAA/wD+AAD+///+/v4EAgIHBwf8+/r4+Pf8/Pz//v3/////AP8AAQAA/wAAAQAB/wAAAP//AAAAAAAAAAAAAAAAAP////8AAAEAAAAA//8AAQAAAAABAAEAAAAAAP8AAf8B/wH/AP//AP8B/wH/AP4AAAEAAAAAAAEAAP//AAAAAAAAAP//AAEE/v7+AP//AgMCCgUKAgICAQAAAAAA/wAB/wD////+////AAEAAQEBAAEAAAD///8AAAEBAAAAAAAAAQICAAEB/wEBAAAAAAAAAgAAAAEB/v7+/wAAAAEAAP4AAAEA/wAAAQD/AAACAAD/AAD/AAAA/wAAAv8B/wD/AQEBAQAAAAEB/wAAAQAB////AAAAAP8AAAAAAAD/AP8BAQEA/wAAAAAA/wAAAf8AAAAAAAEAAQAAAAABAAD/AQH///8AAf8A/wEA/wAAAf8A/wAAAQD/AAAAAP8B/gAAAQD//wACAQEA/wAAAQD/AAABAQAAAQAAAAAAAf7//wAAAAEBAQAA/wAA////AQAB//8AAQAA////AQAA/wAAAP8AAQEA//8AAAAAAAAAAP8A////AAAAAQAAAAH/AAD/AAAA/P7+/f39/v8A/fz5/fz9/v3+/v/+/v7+AP///v/+AwMD/v7/+/v7//7//f39AgMC//8BAP8AAQACAgAA/P8ABQUG///+AgMEAgIDAQEBAQEBAP8AAAD/AAEA/wAAAQAB////AAABAQABAAEB//4A/wIAAAD///7+AQEB/wH9AgIDAQD/AQECAAAAAAAB/wD//wD+AgEDAP/+AAAA//4AAQEC//7+/f/+AwEBAQECAP/+AAEB/wAAAP/+/f7+///+/Pz8/Pz6+Pbz+ff1+ff3BQMD/QAA+ff3CgsD//z88/LwCgkJ9fLzAAACAAAACAkK/f38BwgI/wD/+/v8BQcHAAABAAECAgIC/P//+vn5AAECBQQH+vz7AgEB/wAA//7+/wAAAgEDBgcH/wECAAAA/v3+/QP9/wD8/wABAgMDAQEBAP7///7+//7++/v8/f78+vr6/fv7AAAAAP8A////AAEAAP8AAAD///8AAP//AAAA/wAAAQAB/wAAAAAAAf8B/wEAAP8AAQABAAEAAAD/AAAAAQEA//8AAAAB////AQAAAQAAAP8AAAD/AQAB/wD/AQAA/wAAAAAAAAAA/wAAAAABAQAABAABAQIDAv////7+/v38/gEB/wEAAwMFBAICAgICAv//AAEBAQABAAEBAv8A/gD/AAEAAP4A/wMAAAABAAAAAf8A/wAAAQAA//7//wIAAgEAAP///wD//wAB//8AAAD/AAABAAEB//8AAAEAAQAAAAEBAf8AAAAAAf8AAAEBAAD/AAAB/////wAAAQIBAf7//gEBAf8AAAAAAAAAAAAAAAEA/wEAAAABAP8AAAAAAP//AAAB/wEAAf///wAAAf8BAAD/AAEAAAAAAAAA////AAABAQABAAH//wABAQH/AP8A/wD/AAAAAAEB/wD/AP///wEBAf//AAAA/wAAAQABAP8A/wABAf///wH/AAAAAAD/AP8AAQEA//8AAAD//wABAAD/AAD//wEAAAABAQD///8AAf//AP////7/AAD///7+//z7+/v7/f7//gD//wABAf39/f39/QEBAP79/v3+/fz9/f38/AICAwMBAf7+/fz8/P7//v38/AEBAv7+AAIBAgD/AAEBAf///v3+AgIBAQD//wAAAAAAAQABAAAAAQEBAQABAAABAAABAQABAP7//wIB/wAAAf///v/+AQECAgD/AAABAf///gD/AP0A/QACAAMCAv7//wEBAQEBAQACA//+/v7+/wICAQEBAQAAAQD//v4AAf/////+/v38+vz6+fj29QEA/wEAAPr7+wYGCP/9/uro5//+/f/9//n5+v39/gUHBvX0Af///wEBAPX08woMDgsNDgICAgEDA/8A/f///wIEBQABAgYFA/39/AH+AwEDAwABAAEBAgAA/v4BAgEDBQEA//39/QD+AP0A+QMD//8AAgL+/gMDBf//AP//AP39/e3s7Ojm5v79/P7//v///wAAAAAAAAD/AAAA/wABAAD//wAAAQAAAAAA//8B////AAEAAP8B/wEAAf8A//8AAP8A/wAAAAAAAP//AAD/AAABAAEAAP8A/wAAAAEAAP8AAAD/AAAAAP//AAABAQAA/wEAAAAAAAAA/wAAAAT9/fz7+/8AAAABAAACAgICAgMBAQH////////+/v4CAQAAAQAA/wD//v4AAAAAAQAAAAAA/gAABAEA/wAAAf8AAAEAAP8A/gAAAQH///8BAQABAQD+/wAAAAABAP//AQAAAAEA//////8AAAABAQIAAAABAAD/Af8A/wD/AAEB//8AAQEAAQAB/wD/AAAA/wEBAAAAAQEA//8AAAABAQH+AP8BAAAAAAAAAAAA/wAAAAD/////AP8BAAAAAAABAAABAAH///8AAQEBAAAAAAAA/wABAQD+AAAB/v8AAf8AAAAA/wAAAQH//wAA//8A/wD///8BAQAA/wD/AP7/AAH/AP8B//8AAAD/AAEAAP8AAQAA////AAD///8AAP8AAAEA/wD//wAAAf8AAAD/AAD///8AAAH/AAD+/v79///9/v7+/wD////+/v4AAAACAAACAgIAAQD//v7+///+/v77+/sBAAAFBQT////9/f38/Pv+/v3+/f0BAgECAgP+//8AAP8A+/8DBAQCAf79AQIEAwIAAAAAAQH//wABAQD///////8BAQECAgL+/f8AAQD///8AAP8CAgL/AQAAAP8AAAH/AP7///8CAgEA///9/P0BBAABAgIAAAAA/wABAQEDAgL+/v7+/f0AAQAAAAEAAP8AAAABAAD9/v4AAAD//v8A///8+fr+/f7///739/YDBQX49vb19PQGBgX8+/sHCQn39vYAAAMCAQMCBQQJCQv6+foAAfMECPsJCQr/AAICAgQBAAP8/fz4//kFBAYBAP7+AQMDAgIA//4AAAIA//0AAAH+///7/PwCAwIC/v/+AP3/AP4B/v0E/gEBAgIA/wD7+vv39vby8vH//v4BAAH///8AAAAAAAAAAP//AAEA//8AAAEAAf8A/wABAAD/AAABAAAA/wABAAD/AP8BAAD/AAABAAD/AAAA/wAAAAEAAf8AAAAA/wEBAf//AAAAAAEAAP//AQAA/wAAAQABAP8AAAD/AAAAAAAAAAEAAAAE/v7/AgICAQAAAgMDAgEB/f7/AwEBAQAB//4AAQABAQIB//8AAAH/AAAAAgECAAEAAAH/AQABAAAA////AQABAAD//wABAgEBAAD/AQEAAP4AAP//AAAAAQAB/wD/AP8A/wD/AAAAAAEAAAABAAAA/wD/////AAABAAAAAAD/AAABAP7/AAEA//8BAgH//wAAAP8AAAD/AAAAAAAA////AQABAAAAAAD/AAAA////AQABAQEA/wAAAQABAQAA//8A/wD/AAAA/wD/AgEB/v8AAQAA////AP//AAAB//8A////AP8AAQD/AP8AAQAAAAAAAAAAAP8AAP8BAAD/AP//AQEB//8AAAD/AAAAAAAAAAEA////AAAAAAH/AP8B//8AAAD/AAD//wAAAP//AAAAAQEBAQEAAQEBAgEC/f/+//8A//8A/wD//v//BQQFAAD/AQEA//z+/wEB//7+/v//AwIDAQIC/////f39/f39/Pz8/fz8AQEBAgIB/v39AgICAwECAgMC/////gAAAgD//v8AAwIDAAH//wD//v/+AP//AAEBAgECAP8AAQMAAAEB/wABAAAA/v//AQD//QACAwD/AQACAAH//v//AwECAAEA/v3+Af8AAgID/wEA/v39AAAAAQIB//7///7+AAAAAAAB///+/wD////+/Pr7/v39BQQEBQUEAQD+/fr8+vz6BQQDAgEA////9fX2/f3+EwYG//8AAwUEBgcHBQYG+vr5/v7/Bf8GBQQE/v3+/gD/AAAC/Pz7AQECAgACAQECAgMDBAQE//8A/wABAQEAAAMBAf/+//37/wAB/wD/AAAB//7//wAAAAIBAAD/////AP8A/P39/f79+vj4/f39///+/wAAAAD/AAAAAAABAQAAAAAA/wD/AQAB/wEAAAAAAf8A/wD//wH/AAAAAP8A/wAA/wAAAQAAAAAAAQEB////AQAA/wAAAAEA/wAAAQAA/wH/AP8AAP//AAAAAQAB////AQEAAf8A/wAAAAAAAAAABAICAQICAAAAAQAAAAEBAQIB/vz7+f7/AAgIAv8GAP///v7/AgL+/wEDBP//AAEAAQAAAAABAP7//QIBAv8A/wEAAQEBAAAAAAAAAAD/AP8AAP//AAEA//7//wABAQAA/v//AAEBAQEAAQH//v8BAgD/////AAD//wABAAD/Af8B/wEAAQD//wABAP7/AgAAAf8A/wH/AQABAP///wAAAAAA/wEBAf//AP8AAAD/AP8A/wAAAAH/AQAB//8BAQAAAAH/AP8AAAH///4A/wAAAf8AAAAAAAABAP8A//8A/wH/AP8A////AQAAAP//AAD//wABAQEAAAAA/wD/AP8A/wEBAf7//wEAAQAA/wABAQD//wD/AAAAAP8AAAEA/wD//wAAAQAAAQD/////AAD/AAAA/wAAAAEAAgEB/QAAAAH//wD/AAABAgYGAgECAv38/P3+/wECAv/+/v7//wEDAgIBAQIBAPn6+QD+/vr7+vv7+gUEAwEBAf/+/wEBAv8A//39/f///wECAgIBAf8BAAAAAAD/AAAAAAIDAgEBAv///wEBAAD///7/AP4A/QECAgMCA/8AAAD///8AAQEA/gAAAAD//gEBAQD+AAAC/gIBAv3//wL+/gAAAP8AAAAAAAAAAP78/gIBAQICA////wAA/wD/AAD/AQMCAwECAv39/Pf29vj29vj3+P37+v/9/PTy8gEEBAEBAQMDBAEA/fX19Pr8/AYICQMDA/j49/z+/gwMDQIBAvj2+gcKAgQEBvz7+/z4+f//AAgJCgIDBAEBAfr5+v////7//wEAAf3+/f8A//39/P8BAf8AAf7+/v8A/wABAgEAAf39/QEC////Af7+/vj4+AoJCvPw8P8AAAAA/wAAAAAAAAAA////AAAAAAEAAf8AAAEAAP8AAP8B/wD//wAAAAEAAP8AAAAA/wEAAAAAAQEAAAD//wAAAAAAAAAAAAAAAAEAAAAAAAH/AQAA/wABAQEAAAAAAQAAAAAAAP8A/wAAAAAAAAAA/wQCAgIAAAABAAD+/fz6+Pz9/fz+//0EAwb/AP7+/vwA/wMA//7/AAEA////AgEBAP8AAAEAAAAA//8AAgEBAAD//wABAQAAAP8A/wD////+AP8AAP//AAAAAAAA/////wAAAAAA/wD+AP4C/wEBAP8AAP////8AAP8A/wEAAQEAAAEAAP8BAQEA/wD///3//wAAAAEBAQEB/wD/AAAAAAAAAAD//v8BAQD///8AAAAAAAAA/wD/AP8B/wABAQEAAQH//wAAAP8AAQAAAAEAAP8AAAH///8BAAEAAAAAAAD//wAAAAAAAAABAAD///////8BAAD/AAAAAAAAAAAAAAD+//4A/wD/AQAAAAAAAAEA/wAAAP//AAAAAAAAAAEAAAH/////AP8AAAAAAAEAAf///gD/AAAAAgD+/f/9/v3/AAD+//39/v3/AAICAP79/v7+//4CAwH+/f4BAgH+/f7/AP/4+fr//v39/Pz+/fwDAgIAAQH//wAA///+Af3+/f4EBAMBAQEB////AAACAQD//wD//wAEAwMAAQAAAAACBAL///8AAQAAAAEAAQEAAAD9/v4AAAABAQEAAQECAQH/Af4CAQEA/wABAAD//f/+Af//AAD+AgEA/gAAAQAA/wEAAP/+///9/v4CAwMBAQD//wACAQH/AQAAAQMFBQcBAgT6+/34+fr5+vgBAQD//v0GBgcBAwMDCgvz9PUCBAP5+voLDg/9/Pr8+gT+AP8EBAb39vX+/v4LDhEEAwYBAQQDAwQCAv4DBAUGBgb//v39AP7+/f37/P3+/f0CAwP/AAACAQIAAAACAwMEBAYA/wD8/wACAQEA/wD+AP4B/gAAAAL6/Pvw8PD49/cAAP8AAAABAAD/AAAAAAAAAAEBAQAAAP///wAB/wD/AQAAAP8B/wD/AAEBAP8A/wD/AAABAAEAAAAAAAD/AP8BAQABAAD//wAAAAD/Af8AAAAB/wAAAQAA/wEBAAAAAAAAAAAAAAD//wAAAAD/AAABAAAAAAAE/f79/vz9/v//AQAAAQEBAwQDAv8CAwMCAQAAAP8AAP8AAP///gAAAP7+AwEC/wIBAf8AAAH/AgACAP7//wEAAQIAAP8AAAABAAD//wEAAf8A/gD///4AAAH/AAAB/wD/AP8A/wH/AP8B/gD/Af//AP///gD/AQECAAAAAP//AP/9AAEDAAAAAP8A/v/+AQAAAAEBAP8B/gABAAD/AAAAAQAB////AAAAAAAA/wD/AAAAAQEAAAABAAEB////Af//AAAAAAABAP///wD/AQEB////AQD///8B/wD/AAABAAAAAQAA/wD+AP8BAAD/AQAAAP//AAABAAD//wAAAP//AAEB/wD/AP//AAABAAD+/wAAAQAA//8AAAD/AAD//wEBAP/+/wAAAQABAAH/////AAAAAQEBAP7+//8AAQAA///+////////+vr6/v/+AgIBAgIC/Pv8/////v7+AP8A/v39/v7+//7//Pz7/v39BQUF/v39AP///gAAAQEAAgECAAABAAAAAAAAAAEBAAEAAAEAAAD//v/+Af0A/wEAAQH/AQEB/v3+AAAAAQEB/wEAAwICAAEC////Af7//gIBAgEB/gECAQD/AQABAAD/AP8AAQABAwED/wD/Af8BAAEA/wAAAP///gD///39AwMDAP///wABAQEBAQEBAgMECQkLCwwN+g0P/fr2+PPxCAcGBAUG+fr7////AQEA+vv7+vv7+/n6+QX6AgICAgQFAwT/AwICCAcH/Pr58/HwCQsOAQEEAwMCAP7++/z6AAD/AAAA/////Pv6AAAAAQIA//7//gMEAwMDAAAB/v7/AQIDAgABAAAA/v//AwEA//8AAAD/9/f47u7u9vf3//8AAAAAAAEAAQAA/wABAP//AQAA//8BAQD/AAEAAQAA//8AAAAAAQAA//8AAAEAAgAB/wD/AP8AAAAAAQABAAAAAAAAAAH/Af8AAAABAP//AAAAAP8AAAEAAP//AAABAAAAAAABAAH/AAABAf//AQAA/wABBP39/QABAAAAAP7+/wH/AAQDAgAB/wIAAf79/QD//v7//gD/AQICAgAAAP7+/gIAAQAAAgH///8BAAEA/wEAAQEAAf8AAP7//gD/AAEAAAAA////AP8A/wD//wEAAQH/AP7+/wECAQD/AP8B/wEBAP7//gAA//8AAAEAAQAAAP8AAQAA/wD/////AP8A/wABAQD+//8BAAD//gABAAAAAP8AAP/+AAAA/wAAAP//AAIBAP8BAQAA/v8AAQEBAQABAQAAAf8A/gAA/wAAAf//AAEAAP8AAQEB/wEAAP///wAAAP8A/wEAAQD///8A/wAAAAABAQD//////wABAAAAAAD+/wAA//8AAAAA//4AAAEBAf8AAAAAAAAAAP7//wEAAP8AAQAA/wAAAP///wD///7///7+/v7+/v///v7//v8A/wECAQD9/wEBAAEAAAEBAPz7/P8A/////wAAAP7//fz8+wAA//z8+/z8/QMBAf///vz9/AAAAAIAAAACAgEDAgEAAf///wEAAAH/AP////////8A/f7//wIBAQECAQABAQD//wABAP/+//7//gEBAv3//v/+/AMEBAAAAQH+AAAEAgEAAAAAAf8AAAEAAAAAAP/+/v0BAAMCBAECAAEBAAEAAf4DAwP/Af/+/////gD///7+/wAA/vv8/P/9/QABAgQDBfv7/AEBBAQGBwH+/gEA/wcHBAH8/wUEBPr6+AQDA/Pz8wYICQoBBP//AAoKDP7+//r7/Pn59QkLDPz79/7+//v7+gcIBwgKC/7/AAICA/39/f///wIEAwAAAAABAQAA/wICAf8AAP///wIAAQEBAf0A/wEAAf39/QMDAv7///X09PT08wD//gEAAAACAv/+/gAAAQD//gAAAP8AAAABAP8AAAH/AAAAAP8BAQEA/wAAAQAAAAD/AAAB/wEAAP8AAAAAAAAAAAD//wABAAEAAP8AAAAAAAABAQD//wABAAAAAP8AAAAA/wEAAAEAAAAA/wAAAf8BAf///wABAAQA//8CAgL+//8BAAEBAQH//v8AAQD9//4C/v79/v4B/P0AAAABAQIBAwD+//4B/wIBAgAAAAEBAAD//wAAAf8A//8AAf////8AAP8A/wIA////AP////4A/wAAAP7/AP8AAP8A/////wAA/wD+AQD///4AAAAA///+//8BAQAAAAEAAQH/AP7/AAAA/wD/AP8BAQH///0BAAEAAAEAAP8BAAH/////AP8BAAEAAAD+/wAA//////8BAQECAQH/AQEBAQEAAAD/AP8CAAD/AAD/AAAAAP8A/wAAAAH///8BAf/+AAAC/wD/AP////8BAQAA/wEAAAAAAAAA/wAA///+AAABAAD/AP//AAD/AAACAAD//gEAAP8AAQAA/wD/AAAAAQAAAAD+/wAAAAAA/wD/AP///v///wAAAAABAQEAAQH+AAAAAQH/AP/+/f37+/78+vsDBAMCAQL9/fz49/cBAQH+///8+/wDAgMFBQP8/PwA/wACAQEBAwIDAwMCAQEBAQEBAAEAAQIBAQIBAQH//////wAA/v//AgECAAH//v////8AAAD+AP8CAQEBAAH//v7//wD+/f0DAgP+AAAA/f7/AQECAQEBAQEAAAAA//8AAQH////8/fwCAAICAQIAAgIAAAAAAQH+AP4C/wAA/////v7/AP/9/Pz29PL9+ff6+fcHCAj9+wcCAP3+/PoFBQT/AQAHAQT9/P4BAgADAwbz9fX39/cFBwj+///9/e4MDQz+/gD+/v8CAQD6+ff8/fwICAkGBgf9/v0B/wD8/fwAAAH//wAA/gD+/v39//4DAgP6/v4CAgUCBAEBAgQAAQEBAAEBAQIAAP4AAQD9/P709PX5+PkBAQAAAQABAP//AQEBAAABAQIAAAD///////8BAAH/AP8AAAABAAAAAAH/AP8AAQABAAD/AAAAAAEBAAAAAf///wAAAQEAAAAAAAABAP8AAAAAAAD/AAAAAQEA//8BAAD/AAD/AAAAAAEAAAAAAAABAAAAAAAAAAAE/////v3+AAEAAgMCAgAB/v79//4AAQIBAQEBAP8A/////f7+Af7+AgECAQECAP8AAQAAAAAA/////wEAAf8A/wD+////////AP///wD/AP///v7+AAAAAAAAAAAA/v//AAAA/////v7+AgIBAAAB//4AAAEAAAH/////AAABAAD//wD/////AgABAAIBAP8A////AAAA/wD/AP//////AAABAAAAAAAA/wD+AAABAAAAAAAAAAABAP///wEBAQD///7/AAEAAAAB/gD+AP8AAAAAAAAA/wEBAQAB//////8AAAAA/gH/AQABAAAA/v4AAQD//wEAAP//AAAAAAAAAAAA/gD/AAAAAP//AAAA/gABAAD/AAAAAf8A/gD/AQAAAP8A/wAAAAD/AAACAAD/AP8AAAEAAQEAAQEBAAEB/v7///79/f38/Pz8//7+/fr8AAAA/vz++/36+vv7AP//AQIA/v7+AAEBBwgH+/r7/v7/AwIDAQIAAgIDAgEBAAABAQABAQIDAQAC/wAB/v7/AgEAAQICAAAAAP///v7/AAH/AP8A/////wD+/QEBAf/+AAD/AQIC//8A/v7+AAABAQABAAH//gECAQH/AQAAAAD/AQEC//7/AAAA/v7+AQMCA/8DAgIC////AQD//v8A//79/vz8+/z6+/r4+vfx7enl+fPw//37BAMDAwgIAP4FAgL//P38/wAADA4KAvkG/PwAEggK9vn4AgMECwoM/P388PDxAgICERIR/v7+/v3+AgQD/f3++/v7AAECAQEBAwMDAQMC//3+/v79AAEC////+fn5AQEBBQYBBgQFAP//AAD///8A/gD9AgID//4A9/b36+vs9/f2/v7+AQIB/v3/AQAAAAD/AQECAQEB/f79AAAAAP8AAAAAAQEAAAAA//8AAP8AAQEB/wD/AAAAAAD//wEAAP8AAAAAAAAAAAAAAAAA/wAAAQEAAP8AAAABAQD//wAA/wEBAf///wAAAAD/AAAAAAABAP//AAEA//8ABAQEAwD/Af7+/fz8/AIBAQAAAAICAgICAv3+/v3+/QIAAwIAAgD///4A/wL/////AP8A/wAAAAD/AAEAAf7//gIBAQAAAAD//////v///wD/AP7//gAAAAH/Af4BAP///wAA/wAAAAD/AP/+AP8BAAD//wAAAAD+AAAAAP7//gEAAgAB/wD///4B/wD9AQEBAQD//wABAP8A/wH/AP8AAAAA////AAEBAQEBAQAA//8AAAH/AAABAAAAAQD/AP///wABAQD/AAD//gAA/wD/AQABAQAAAAEAAP8A/////////wEBAAEAAf8AAP8A/wAAAP//////AAD/AP8A/wEBAAAAAQABAP///wD//wABAAEAAAD/AP8AAP7+/wAB//8AAQAAAAIBAQABAgAAAP/+//8BAQEAAAAAAP8AAP///wAA//3+/v/+/gIBAv3///7////+/f/+//z9/AIAAQACAgABAPz8+gcGBwECAv///gMDAgMCAgEBAQEBAQEBAQMCAwEBAgEBAgEBAgAAAAAAAQABAAAAAQEBAQAAAP7//wD//wAAAf/+//8AAAAA/wEAAAEBAAH/AP//AP4B/wEB//39/v///wEBAgEAAAIDAgIBAQAB/wEAAAABAQEBAAD+/fz+/QICAgD/APz8+v7//gMBAfv5+Pj38/Du6/n08Pbx7Pjz8P79/QMCAwD//gUGBAQEAQD//wQECAMICAcJBP3+AQQFBfj6/Pz+/v///gMCAgMIBwQEBQcHCPj4+QICAQMABfz7/Pn6+gUFBQUHCAECAP76/P7+AAQFBQAA/wEAAAQEAwMDAwMDBP/+//4B/gEBAP7/AAEBAwEAAf8AAfr8/AQEBAcHBwAAAAD//wEBAQABAAD+AP8AAAIBAQIBAv7//gABAAAAAQAA/wAAAAAA/wEBAQAAAAAAAAAAAQAAAAEAAP8A/wAAAAABAAD/AAAAAAEBAQAA//8AAAAAAP//AAAAAQAA//8AAAEAAP8BAAD/AAAA/gABAQAAAQAA/wT8/P3//////v7//wD8/fwBAQH9/v8DAgIFBgcCAwQCAwMBAQMAAf8C/gD/A/8A/wD+//8B/wAAAQD///0AAQH+AP8AAAD//////v//AP///////v4AAAD+//8BAAEA/wAAAf//AQD/AAECAAAA/v8AAf8BAAEAAQD//wD//wAAAf4B/wEAAP//AAABAAEAAP8AAQAA/wAAAP//AAEA//4AAAEBAQEAAP/+/v8BAQH/AP///wABAAAAAf///gABAQABAAIBAgEAAAD//wEAAQAAAP8AAAD//wAAAAD///8AAP//AAH//wAB//8AAQD/AP8AAAEAAP8AAf8A///+/v8BAQEBAAEA/////wAA////Af8A/gD/AAAAAAAA/wAAAP4BAQH+AAAB//////8AAAH/AP4AAAEAAQABAQAEAgH+AwIGBAEEAgb7/Pz8/Pv/AP7+/v8A/wADBAUBAQEBAQH5+PgHBggGBgX9/PwGBQcBAgEBAQD/AQACAAEAAQH/Af8BAQEAAAAAAP4BAQIAAAD+/v4BAAAAAAEBAAAAAQEAAAABAP8AAQAA/gAAAP8AAgIAAQAAAAEAAQAAAP8A/wD9/f4AAAAA//4BAgH+/v4CAwIBAAABAgH+/f8CAgEBAQH///79/v0B//7+/fz5+ff7+Pb8+vf9+/j17+rx7ev7+Pb9/Pr+/f3+/Pz//v4GBwYCAgAJCQoFBwn8/f308vH5+v0NDxEKDA35+fr8/Pr+/fwEBQYBAAX19fQA//8GBwYB/wABAQAAAP7+/fr29foFBQcEBAYFBQb+/v8BAgECAQMDBAQEBAUBAQP9/gD//v7/AP//AAEAAgH+//79/P36+vr9/f35+fn+/v7+/wAA//8AAAABAgECAAH/AAABAgEB/wH/AP8A//8AAAAAAP8BAAD/AAAAAAAAAAAAAAAAAAAAAAABAAH/Af8A/wAAAAABAAAAAP8AAAD/AQAA//8AAAAAAP8BAP//AAH/AP8A/wAA/wAAAQEAAAD/AP8AAQAEAgIC//7++///+/r6+vr6AQAAAQICAgID/wABAgQFBAUG////AQAAAAEAAf8BAAIA//3+/wMBAf8BAAEBAf//AAAAAAAB/v79/v3+AgEB///+/v7+AgEB//7+AAAC/wD/AAAAAP8AAAECAAAAAAEB//7//wEAAQD//wAA////AQEC/wABAAAAAP8BAAH//v3/AQEAAAAA/wD/AAD//v7/AQEAAf8AAAAA/wAAAAAAAAD//wAAAQABAAAAAQEBAAAA////AP4AAAABAQEA///+//8BAAAAAAD/AAEBAAABAAABAQAA/////wAAAgAB//8A//79AAEAAAAA//4AAAAA/wD/AAAAAAAAAAD+AAAA//7/AAABAAAA//8AAQEB//8AAP//AAD//gH/AQECAQEAAP8AAQD/AQD/AwEBAQQDAQD/BAII/P79/v38AgEAAQEABAUEAwQFAQAB/v7+AP8AAQgBBQUGAAD/AgEDAgIBAQEB///+/v//AQAAAAD/AP//AAH/AQEB/v7/AAD8AAEC///+//8BAwQBAgEDAQIBAAAA//7+/wAAAgIAAAAB//7//gH//wD/AQEBAQEBAQEA/v//AP/+AQAA//0A/wD/Af0A///+//7+///+AQECAQAA/v7+//78/f38//38+vj3+vnz+vf09/Xx+vb0/Pn0/Pv6+vr6AP79+Pj3AQAA+/z5BwcHAgIDAQP3/P39+/v6/v7+9/bzBQUDAwID+vr6BQYFCQkI/Pz9AgED/P3+8/TzAgD0AQAAAgMCBwkHAwQD/wEE/wL+/v7+BAQEAwMFAwQEBAUGAAAB/Pz+AAEB/v39//8AAQMEAf////7/+/38+vv77+/u9PLz/f38AAAAAAAAAP//AP8AAAIBAP//AAAAAAAAAP8AAQEBAP8A/wAA/wD/AAAAAAEAAf8A/wAAAAAAAAAA/wD/AQAAAAAA/wD/AAABAAAA/wAAAf8AAAEA//8AAP8A/wABAAAAAAAAAAEAAAEA//8AAP//AQAA/wAABPv6+v39/f39/f39/QEBAQIBAQECAwMCAgD//wD+/gD//gAA/wAAAP///v8BAQH+AP4BAAH+AAABAAD+/wACAf/////+AP7//v79/f8AAf8A/wD//v0AAAD//gACAf39/QECAgAAAQIC/v4AAQEAAQAAAP///wABAP/+//8BAAD///8A/gAAAAEAAP7/AAEAAP//////AAEBAP8B/wD///4A/wIBAgAAAQAAAP///wEBAAEAAAD//wAAAQABAAAA/wAAAf///wEBAP7+AAAA/wAA/wAAAwAA/wAA/wAA/wEAAgAAAAEAAAAAAP7///8AAAABAAD/AP7//wAA/wAAAQEAAAAAAP///v//AP///wEBAAAAAAD/AAAAAP////8A/wECAv8AAAEAAQEBAQAA/wAAAAAAAAEAAgAB/gMBAQEFBAIC/gP/AwMDAQcHBfn6/AAAAv7/AP38/v79//v8+wcECQMEAwAAAAIAAv7//gH///3//gH//QEAAP79/P8A/gEBAQAAAAEBAP8AAQABAAIBA/8A//7/AP///f/8/wAB/wAAAAEAAQD//v7//gEBAAD/AAABAgECAAEAAAEA///9/f8A/gD//f/+/v7//gD//v7+/v8A/wD//wAAAAEAAP/+/v7+/f/9/f79+/v69/f18fj28vv39P36+QIA/gEA/gIA/vn7+vz8+//+/f7/BQIDAgL8Bv73+AEBAgABAgUFAwEB//X08wMEBf//AP/9A+7s6/T29QgICgQFBgcGBv0BAQEBAAYCB///AgYGCwYGBgMEBQQEBAUHBwQFBgICA/8AAf3+AAEDAwIAAf3//f8A/wEBAAADAv7+AP79/vz8+/3+/gIDAgEBAv/+/gABAAAAAf//AAD+/v8BAAD/AAAAAAAAAQAA/v8BAAD/AAEBAP//AAD/AAABAQH//wAAAP8AAAAAAAD/AAAAAQEAAP//AAD/AQAB//8A/wD+AAAAAAAAAAAA/wAAAQAAAAD/AAABAAAAAAAAAP8AAQAA/wT+/v4A//8AAAABAQIDAgABAQEBAQH/AP8EBQQFBgUCAgMAAP/////////+//8BAQEAAAAA//8BAAD+AP8B/gEAAP///wD9/f0A/v39/wABAQH///7/AAABAQEBAP////8A//8A///+AAECAgH///8BAAEAAQD//v8AAAAA/wD+AP8AAP8AAAH///4AAAEAAQAAAAD//wAA/wD/AQD/AAD//v//Av8AAP8BAAEAAQH//wAAAAD/AP8DAP//AAIAAAACAQEAAQAAAAAAAP8AAAAAAAEAAP4AAAEBAAH+AQAA//8BAAEAAQH//wD/AP8A///////+//8CAAH/AAAAAAAAAAD///8AAAEAAP8BAQD///8AAAAAAAEAAAAAAQABAAEAAAABAAEBAQD/////AAAA//8AAAEBAAAAAQD+//8BAAACAwIC//8DAwcFBAYJCP7//wD8/v77+v38/P0F/AMBAQIBAgP///////8A/gEAAAAC/f3//f7+/v3/AQAA/wH///8BAP//AP8AAAAA/v/+AP/+/v8AAP7///8CAQEBAQH/AP8A//8BAAH/AAAA//8BAQAA//0A/gD+//8A/v4AAP///v3///z+/v4A//4A//7+//4A//7//////v7///3//v/9/Pr9+vr+/Pn7+vj59vP7+vj//fsB//4B//8A//3+/vz///0BAP7+AP8BAAACAgMA///9/f0DAwIBAgH8/Pz49fUDAwMODxAEBAX9/fvw8fD39/f6+fkCAwQCAgMHBwYKCgsEBQX9/f76+vr+/f4FBvwAAQoCBQb//PwAAf4AAQIBAAIAAQIA//4A/wECAgIBAgMBAAL/AQD8/f3z9PXx8PL///8BAQD/Af///wEBAQAAAQD///8A/wD///8AAAH///8BAQAA/wD/AP8A/wAAAAAAAAD///8AAAAAAAABAAAAAQEA//8AAP8AAAAAAP//AP8A/wAAAAAAAQAA/wD/AP8AAAEAAP8AAAD/AQAA/wABAAD/AQAA//8AAAAEAAEBAAEBAQEBAAH+/v4AAgD////+AgMD/f39+fn5AQID/wAAAQIEAQAEAv8AAAIBAQD//wAA/wABAAAA//////7/AP///v39//39AQECAgIA/wAAAAAA/v//AP//AAEA/v7+AQICAgABAAAB/////wD/AgAB/v8A/////wAAAgIBAQAAAAEAAAAAAAD///8BAP/+/wAB/wEAAP4AAAD/AQEB//4AAAH+/wAB//8BAgABAQIAAQAB/wEBAQAAAQEB/wD/AP8AAAEAAAAAAP8A/gD/AP8AAgEB/wH/AAAAAAEA/wD/AP////8AAAAA/////wAAAgEBAAAAAAABAP///v8AAQAAAAAAAAAAAAAAAAAAAAAAAQAA/wAA//7/AAEAAAAAAAAA//8AAAD/AAD/AQEBAP//AAABAQECAgD+/wD/AQAB/wD/AAABAgH/AQMBAAABA/8CBAMC/v4E/f3//v///v3//v7+/P3+AQAA/v8AAQL/Af8AAgAA//8B/QD9/vz8AQD+/v3+AAAA/wD/AQAAAAH/AP8AAAD//wEB/wEBAP//AQAA/wD/AQABAQAA/wD+AQH//gAAAP//////AAH+//4AAP//AP//////AP////38///9//7//fz6//78/fv8+/r3/fz8/fv6/fv5/vz6AgD+/QD//wH//gD+AP/+///+AQH/AgIBAQEDAAIC/wAA/v//Av//+fn4/v/9/Pv79fb4BAQFBAUGCAkJ/f39/v38BAMB/f38AQH/AgIA/f39+/v6A/kD/v///wD9BwYJBAYF//8A+/v8Af3/AgIEAAEBAgIEAAH+AQABAAEBAgEDAAIC/gAA+/z99vf48PHw9/fz+/v6////AAABAQABAAD/Af8A/v8AAAAAAAAA/wAAAAD///8BAP8AAAAAAAAA/wD/AP8AAAAAAQAA/wAA//8AAAAAAAD/AP8BAAD/AP8AAQAB/wD/AQAB/wD+AAABAQAB/wAAAAAAAP8AAQAA/wAAAAD/AP8AAAAA/wD/BP///gAA/wMCAgMDA/4D///+/v7///////39/gL+/vz9/QED/gD9/QAC/f8D/wP+AP8BAAH/AP8DAAD/Af///gD///7+/v/+/v///gICAf//////AAABAAABAQEAAAEBAf7+/AIAAgABAP7+/gEAAf8A/v4AAf//AAAA/wEAAQEAAf///wAA/wEBAf///v///wD/AAAA/wEAAAAAAAEBAQAAAf8BAAAAAv///wEB///////+AQMCAQEAAQAAAP///wAAAAAAAAIBAf8BAQABAAH9//4AAP4A/wH/AQEAAP8A////AAH//wEBAf8AAP8A/wEBAf///wD//wAAAP//AP8A/wAAAAEBAgAA/v7+AAEAAAAA//8AAP4A/wH/AP//AP8B/wEAAAEBAQECAgAAAQD//wAAAAABAf8A//7/AAD/AAAA/wEAAQD/AQEBAQAAAgABAP8AAAIBAf4C/wQDAP/+/vwD/v/+AAX+Af3+/v39/vv7AAEAAfwAAf37/QIBAQADAf79//8A/gQDBAABAQEA///+/v8A/wABAAAAAP///QH//wAAAAEBAAEAAQAAAAEB/wAA/gD+AAAA/QAAAAD9/v/+/v///wAB/wD//v7+/f///f/+/P38/Pz7+v38+/37+/79+//9/f79/QABAAEBAQABAAEBAQECAgABAQABAQEBAQICAgMEBP7//wMDBAECAgEDAwICAQAAA/r3+vn5+wEBA/39/vj4+f/+//8BAP///gAA/wICAAMDAwcIBwQEBwcHCAkKCQcJCgMDAwABAv7///3+/f79/QH+/wICAAIEBP78/AAAAAECAwQDBP8AAAEAAQD/AP39/fj6+vb29vj49v38+v///wD/AAAA/wD/AP7//wAA////AAAB/wD//wD/AP8B/gAAAQD///8A/wAAAAD/AP8AAP8A/wD/AAABAQD/AAAAAQAA/wD/AAD//wAAAAAAAP8A/v//AAEAAP8A/gAAAf8AAAEAAAAA/wD/AQAAAAAAAAAAAAEAAAT8/PwA//8AAQEBAQICAQECAwIA/wAAAAAAAQEAAP/9/fsD/QQCA/7+/v0BAgIA/wAAAQD/AP8A//////8A/v///////v8A/wD//wD+/v4AAAEAAP8BAAL/AP///wD///8AAAD///7+/gAA/wAAAgH///4AAAEBAQL+/v8AAAH/AAAAAAEA////////AAAAAAAAAQAAAAH/AP8AAP8AAAIAAP//AAAA/wEAAP///gAAAQEBAAD/////AP8A//8AAAABAAIAAQD//wEAAP4AAAAAAgEC/wAA/wABAf//AAAAAAAAAP7+/v8BAgEAAAABAQH/AP//AP8BAQEAAAABAP4A/wABAAEAAAAAAAECAf//AAD///8AAAABAP//AAEA//0AAAIBAgIBAQH///7+//8BAAECAQIAAP8AAAABAQEAAAABAAD//wABAQD/AAEAAAAAAAECAAD+AgAD/wH//wD/AQACAgD+/gH+//0FAAT8/f0FBQD9/QT9/v/+/f78/Pz//v3/Af8B/wD8/Pz//f0A/wD/Af0AAAAAAP8AAP8A/wIA//8BAf////8AAAABAQAA///+/wD/AP3///7//v////7///0AAP8A/f7/AP/+//0A/v3//v0AAP4AAAABAAABAQABAAD+/v4CAgH+/f8CAwEBAAL8AgIBAQD+/gMBAwMEBQT/AP8BAgIAAAEFBQYCAwQCAQH/AP4AAQIEBgb7/f37+foEBAX+///6/PsFBQUODg35+fkBAQEDAwMDBAQHCQcJCAkGBggDAwT+AP4B///+//7+//4D/v7/AgH9/fz9/v4BAAEBAgMB/v///wADAQIC/f79/v/49/nx8PDp6Obr6ef7+fcA/wD///8AAQEA/wD///4A/wD/AP8A/wAAAAAA/wAA////AAAA//7/AAAAAAAAAAAAAAAA//8AAAD//v8BAAH/AP8A/wAAAAAAAAAAAAD//////wAAAP//Af8A/wEAAP8AAAD+AAABAAD/AP////8AAAAAAAABAAAEAP8A/////v3+/f36AgIDBQUEAQIDAAAAAAD/+/z8AwMF/v///v79AAAE//7+/wEB//0AAgIBAAAA//7/////AAD//v7+////AAD//f7+AQACAgIBAAD///8B/wD//v7+AAAAAAAAAAD/AAEAAAAA//8AAQEBAQABAQECAP8A//7/AAAAAQEAAAD/AP//AAAA/wAAAAAAAAD//wD/Af79AAIBAgEB/v79/wEAAQECAQEAAQAAAAAAAP8AAAECAgAAAAABAAEAAAD/AAAB////AQEA/wAA/wAA//8AAAAAAQEAAQACAAL+AAAB////AAD/AAAAAgEB//8AAQAA//8BAAAA/wAAAgD/AAEB/wAAAP8AAAAAAAD/////AAD/AAECAAAAAAAA/wAAAP8AAQEBAP8A/f79AgEBAAEA//7/AAAAAQEB/wD/AQEBAf8BAAAA/wAAAAAAAgAB/wAAAQH//wEC//8AAQD/Av8C/wH+AgEB/v8D/gT+/f7//////f0D/P39/fv9/f38AgID/wIDAf//AP8CAP8AAAEA///9//8AAP/+/v79///+AAD+/v7+//7+AP/+/wD+AP//AAD/AAD/AP8A/v79AQAA/wD9AP3+///+AAEA//7///79AP79AAD+AAD/AQEA////AQEBAAACAAEDAgL+/P3+AQECAwUG/v8AA/7//v7+AAEC/wAB/v7+/wD9AQICAQEAAgMABwgHAQIDAgIB//8AAgECAgIDAgMDBwgI/f39AgMCAP/++fj3/v38+fv6AAECAgMDBQUG/f7+/wACAwQAAQIEAAIB//8BAgIDAwL/AgIEAAL+Af3+/wH++/v99fb25uPj49/f+PT1/f4AAf8A/wAAAP//AQAA////AP8A/wAAAP//AAEAAAAA//7/AQEA////AAAAAP8A/wAA/wAAAf8AAAAAAAAA/wD/AAAAAP///wAAAAAAAAD/AP8AAAAAAAAAAP8AAAD/AAAA/wAAAP///wAAAAAAAAAAAAAAAAAA/wAAASl71oQE///+/v3+AAH/AgIBAgIB/v3+AP7/AQEBAgMEAv8B/v39/v7+//7//v7/AQD9/QAAAAEAAAACAgEBAAAA/v//AP/+AAH//////v////78AAEBAQEF/wEBAP////4AAQEB//4A////AAAAAAD///8BAQEC//8B/v8A/wAAAAABAQAAAP/+//8A/wD/AAEBAP///v8AAAD+///+AgEB/wEDAf///v8AAAEBAQAAAQAAAAAB//8AAQEAAP8AAAD//wEBAAEAAQAAAAEBAP8AAP///wEBAQH/AAEAAP8AAAH/AAABAQEAAAAC////AAAAAQAA/v//AP8AAAEBAP//AAAAAQAA/wD//v8A//7+AP8A/wH/AP8AAAAA/////wABAgH/AQECAAAAAAD/AAAAAQAB/wD/AgICAQABAP/+//8AAQIBAQECAgH/////AAAAAAAAAQEAAQABAAAAAQEA/v//AgAB/wED/wH+AQAB/gADAAL//v/////+AwD///8A///+//8A//7//P38/f39/fz9/v39/f38AP///v7+AP7/AP/+/wD/AgEA/wL///8BAP8AAAAAAAICAQAA///+AP4AAP8A//8AAAAA///+/v39//79///+/v78/v38/v79AAD+AAAAAQABAAEAAQEA/wEBAf8B/wAC/wEEAAH+AAMFAwECAQED//8AAf7+AgECAAIB//8BAgEC/wAA/f38//8BAgICBgcFAQAB/f3+BAUFBAUF/wABAwUFAQABAQICAQECAAEA/Pz9/wH6BQYHBQQFBAQGAQEB/f3+AAH9AP//Af4DAQID//////8A/wD//////v//APz9+Pr76ero3tza7uvq/vz8AgABAAH/AP8A/wAA////////////AAAA//8AAf8AAAD//wAA////////AQAAAAAA//8AAAAA//8AAAAAAAAAAAAAAAEAAAAAAAAA////AAAAAAAA//8AAQH///8BAAAAAQEAAP//AAAAAAABAAD/AAAAAAAAAAAAAAEABP//AP8A/v//AP/+//7+/wD//wMEBQMBAgAC/gAAAgECAf///vz8/AEBAf8EBQP/AAIDAv/+/v4CAgAAAP///gD///7+/f79/v////39/QECAv0B/gIBAQAAAP39/AABAAEBAf7+/wAA/gEAAAECBAEBAgD/AQABAf/+//8A/QAAAQICAQEAAQAAAAH/Af4A//7//QMCAv7+/v8BAgEA/wAAAgAAAAIBAgABAP/+/gEBAQECAf//AP4A/wEAAQAAAAEAAAAAAP8AAAAA//4A/wH+/v7//wICAQAAAAEAAQAAAQEAAAABAAABAAH/Af/+/wEAAAAA/wAA//8AAAAB////AP///wAAAP8A/wEAAAD/AAEBAAAAAAAAAgD//wABAAABAAABAP/+//8AAAH///8A/wD/Av8B/wD//wABAP8A//8A/wAA/wAAAAABAAAAAAH/AAABAAEBAf7+/gAAAAEBAQEAAP8BAgAAAAL/AAABAQEAAP//AQH/AAAA//8AAgD///8AAAT/BP/+//////7+/v39+/r6+vv7+v38//4A/wD+AgEB/wD/AgH+//8CAv4BAAD+/f8AAAH/AP//////AP8A/v8A/////gAB/wABAAD//wAAAQEBAgQEBP79//////8DAAIBA/37/gECAv7/AAADAQIBAQABAgH+/f4A/gP9/v8AAP7+/gABAgD/Af///gD/Afz9/P7+AQACAgMCAwMAAQICBf39/AABAwAAAf//AQICBAEGBAIBAQACAQIBAgMEBAMEBAMEBgACA/4AAAD+AQH9/wAC/gIBAwEBAQEBAgAAAgABAAEBAQAAAf7///v6/PPy8+Ti4uzq6fz6+P3+/QD/AQAB/wAAAAEA//7/////AP///wAAAAD+//8AAP8AAAAAAAAAAAAAAP7//wEBAQAA/wD/AAAAAQAAAP8AAAAAAAH/AP///wABAAEAAP4AAAEA/wAAAP//AAAA/wAAAP//AAAAAAAAAAAA/wABAAD/AAAAAAAAAAD/AAQDAwL8/f/+/f7///8A/wEDBAT+/f3+AP0GAwIBAAD+/f4DA/7+APv8/QEBAgMBAAEAAQEAAv8A/f4CAgL//v////79/v3///4AAP//AP8B///+//4A/gEAAAD+/v8BAgECAAEBAQH+//8BAAACAf4AAAL//////wD//////wABAf7+/QEAAQABAQL/Af/+/v4B/wAA//8A/wD//v8AAwAB/wABAQD/Af8A/wEAAgEBAAEBAAD/AQAAAAAAAQEAAQD/AAAAAAD///8A/wAAAAAAAAABAQH///8AAAAAAAABAQD+/wD///8AAQD/AP8BAQECAQIAAP/+/v4AAQAAAQIA//8A/v8A/wAB/wD///8BAQEBAAEAAP8AAgEB/wEAAf8AAAH+/v//AP8BAAEAAAD//wEAAf8B/wD///8A/wABAgH+//0AAAEBAAAAAQEBAAEAAQAAAAAA//8BAQEA/wAAAAEAAAABAAD/AAACAgAA/wD/////AQEBAgD//wEAAAD///////8AAQD/Af8AAAD//wIEBAIEBQX9/Qf8+/v8/Pz+/f3+/Pv9/Pz/APz//wEA/gD+AQAA//wAAQICAQAAAwABAQMB/gH/AQH//wH/Af4AAgIA/PsAAgH//v0AAP8A//8AAP///wD+AwMA/QAAAv8A/gIAAQADAwIBAgIDAP//Av7+AAAAAP///wH+/P3+/v4AAAEDAAEBAQQBAQL/AAAAAQEAAAACBAUEBAUCAwMBAAL+/wADAgICAwMBAQEBAQMCAwQAAgL/AAL+AAICAQMBAgMAAgIAAQIBAQIBAQIAAAAAAP8AAAD//wABAAH9/f719vbc2tjY1dPz8u8EBQUA/wD5+vr/AAD//v39/v4AAAAA/wAAAP8A/wD//wD/AQAA//8AAAAAAAABAAAAAAD///8AAQAAAAD/AP8B/wAAAAAAAAD+AAAAAAAA////AAAA/wD/AAAAAAEAAP8AAAEBAAD/AQABAP///wAAAAAA/wAAAAAAAAAAAAAAAAAE/wD/BQMF+v76AgID//7///3+AAIAAAAA///+/QD+//38APsAAwQFAwL+/v/+AP0AAAAB//4AAAT9AQAB//7+/v/9//7//v/+Af8AAQEBAAEAAQAAAP8AAAEA//8AAv8A/gD/AQAA///+/wABAv8A/v7/AQAA/v7+////AAAB/f7+BAMD/v4A/wD8AgIBAQAAAAIBAAAAAwMC/v7/AP8A/wL///8AAf4BAgEA/////gH+AgACAQECAAAAAAAAAP8AAAD//wEBAAD/AAAAAQECAQAB//79/wEAAgAB//8AAAD//wAA/wEAAgEBAP8AAAAAAP//AAEAAQIB//4AAP//AAEAAAEAAP7/AAAA////AQEBAAD/////AP8AAAEA//4AAQH/AAD+//7/AAEB/gAAAgEB//7/AAAB/f7+AwMC//7+AAEAAAD/AQECAQEAAAD/AP8AAAD//wEB////AAEB/wD//wD/AQABAQEA/wAAAQAAAQIB////AQEBAQEB/wD/Af8AAP8B/wEAAP///wD/AP4A/wACAwMC/wQD/QUF/v7+/vz8/fz9/Pz7/fz7/Pv6/Pz8Af/9//4DAAD///7+Av/+AAD+/v3+/v/8///9//79/v39AgIC/v39/v8AAAL/AAP+/wD//wEABQEB/AEBAP0B/QD9AgAB///+AP8AAQECAQMCBgED///+/v7//QH8Af3+AP//AwME/wAC/v/+/v3/AAEA/P3+AwIEAQMFAAECAAIBAgECAwIDAAIBAQICAQECAAMFAAIBAAEDAAEDAAIDAAED/wECAgECAAEA/wAA//7/AAH/AAH//gAAAfz++Pn75+bl3dza6ujn9/b1AAD/BgYGBgcH+fj4/v3/AAAA/wAAAP//AAD///8AAAEBAP7+AAEBAAAAAP8A/gAAAQD/AAEBAP7//wAAAAAB/wAAAAD/AAAAAAAAAAABAP8AAAAAAAAAAAABAAAAAAAAAQAA/wEAAP8A/wABAAD/AAAAAAAAAAAAAAAAAAAAAAAABAD/Af3//QQEBP38/f8AAAAA/wD/AQEBAP38/gEB/v0B/wIBAgEC//7//wH9/f8B/gECAQEAAQH+AgMC////AP7+/v8A/wD/AP////8AAAAAAP3+/QQEBP///wEBAf8BAAD/AP/+////AAICAQAAAP/+/gACAgAAAQAAAAEBAAD+Afz9/AMDBAD/AP79//8A/gQDA////wABAQEBAQIBAP8AAAIBAf4A/v8AAgEAAgAAAP/+//8B/QICBAAAAf8A/wEAAAD///7//wICAgEBAP7+/gABAQAA//8AAAAA/v//AQABAQD/AP7//gEBAQAA//7//wEAAQD/AAEBAAAAAf///gEAAQABAP///wICAgAA////AP8A/wIBAQAAAf8B/////v7+/wIBAf7//wAAAf///v7/AAIA/wEBAP79/gECAQIAAQABAAABAAAAAAD/AP///////wICAAEAAf8AAAABAAH/AQEBAAAAAQIAAAABAAAAAQIBAP4AAAEAAAEAAAABAf8BAAD//wABAQEAAAADAgEA////////AAMCA/3//gAEBAD+///+/vv9/P38/P3+/f37/P7//QD///z8+/z7+v/+/AAB/QH+Afz9Af4A/wEBAP4AAf8B/wACAgD/AgACAgH/AgD//wABAAIBAv4B/gEBAQABAQABAQMCAgAAAP39/gAB/v//AgAB/gIBAwIEAwEBAP7/AP7//wH/AgEBAP///wQB/wEBAwECAgECAwAAAAMEBQIEBAD/AQACAQEBAAEBAgEBAv4BAf//AAL+/wEC/gL+//7+/gEAAQEBAQECAgEBAQABAgABAvz9/u/u79zb2+jl4/39+wABAP7+/vn5+QUFBggICPj39/z9/AD///8AAAD/AAAAAAD//wABAAD/AAABAP8A/wABAP//AAD//wAAAAAAAAAA/wAAAAD/AQAA/wABAQAA/wAAAAAAAAAAAQAA/wAAAQABAf8AAAH///8AAQAAAAAAAQAAAAAA/wAAAQAA/wABAAD/AAT///0BAQH8+/v//wAAAAEDAwL/AAABAQICAgH8/PwEBAP/AP/8/PsBAgL/AP8DAwT+/gMBAQEBAP3+AwP/AP/9/f0BAAD//wD//v8BAQD/AAAAAP/+//8BAP8BAAAA/gEA////AgABAQH+//0B/wIBAQAA//////8BAgEA/v4BAwD+/QD8+/wDBAMCAgD//wH9/P3/AQEDAQABAgH+/////f7+AQECAgH///3/AQECAAIAAQEAAAH//v8BA/8AAAEAAQEAAP8CAAEAAAAA/wACAQH//wAAAAH/AP8BAAEAAAEA//8AAAAAAAH///8BAAAAAAD///8BAQH/AAABAAABAAD+/v7//v4AAAABAQIAAAAAAAAA/wD+//4AAQABAAD+//8CAQAAAQEAAP8BAAH/AAEBAP8AAAD//v8BAQABAAEAAP8BAAIAAAD+/v4AAAAAAAABAQEA/wEAAQEBAQD/AAEAAP8A/wABAQAAAQAA/wEBAAAAAAEDAQEBAAD+AP8A/wABAP4AAgIA/wAAAP//AAABAAEAAQH///4AAAACAAL///8AAv//AAAD/wX+/v/+/v7+/v7/AP79/P35+vgBAwT9/PoB/f3+/PwEAfsEAwX/AP4A/vz8/Pr9+wD///4B/wMAAf7+AP4BAgIBAAMA/v4BAv8CAwP///4A/wD9//0C/wH+/gABAf4BAQIAAgP///7+/f4AAQIBAP8AAP8BAv4A/wEDAAL/AAD+//8EAAABAgIAAQH///8CAgEBAQL/AQD///8CAQEAAAEAAP/9//4B/f7/Av/+/v8B//0AAf8DAAQBAwEBAQMAAQH5+fru7+3s7Or4+fgEBAMBAAX6+wD//v/8/PwCAgIFBgb++f79/f0B////AAAA/wD/AP8AAAABAf///wAAAAAA/gAAAAAAAAAAAQAA/wAAAQAAAAAAAP8AAQAA//8AAQAAAAAAAAAAAAABAQD//wAB/wD/AP8AAAAAAP8AAAAAAQEAAAAA/wAAAP8AAQAA/wEAAAAE+vr7BAUF+/z8AwIDAgEA/v7/AAAA/wD+9fn4AwME//8FAAIBAgIF/fz8AAABAQED////AAD//v8B//7+/v7+/////v7+AP//AAD/AAECAP//AQABAP3+AQQD/wD/AAD/AAAAAQAB/wD/AP8AAAAA/v8AAP7+AgEA//8A/wABAwEBAQMB/Pz9//7/AAIAAQICAQEA//7+/v//Av8BAQEBAgMBAQAAAAABAQEBAQEA/wD/Af8BAAEAAAL///8BAAD/AAAAAQEAAAEBAAAAAAAAAAEBAgEA/f7+AAD/////AQEB/wAAAP///gD/AgEB////////AQIB/////v7+AQIBAAAAAQEBAAIBAAABAQABAAAB////AQD//v/+AAABAQABAgEA/wAAAAD/AQABAAD/Af8A/v7+AAEAAwIC///////+AAABAQH/AAAAAQAA/wAAAP8AAQEA/wD+AQADAAAAAP/+AQAAAAABAAAAAP8AAAEAAAD/AQAAAAEBAf8AAQAA/wD/AQABAAAAAAAAAAEBAQAA/wAAAf8AAAEB/wAAAgAA/wAAAAEB/////wEBAQD/AgEBAAMD/wAA/gT/AwYG/fz8/v38/Pv7/Pr5/fz7/fr5/f/7/v0BA//+//7+Av78/wD/Av///wIAAP/9AQAAAgP//wID////AP4AAQH/Av8DAAH///0BAgL+/vz8/v/+//7//wEBAQEBAAAC//7+AAAA//7+//79//8A/f78AQEAAwAE/wH9/P79AAECAQH7AAEDAQIC/wEBAgMEAwECAQAB/wAC//8AAP8A/gAAAgEB/wADAQEC//8A+/v97+/w5OTk7Orp9fX0/Pr8/v//AAD+AP8AAAEA/Pv8AQIBBAUF/v///v7+AP///wH/AAAAAP8A//8AAAEAAP8AAAEAAP8AAAEAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAEAAAAA//8BAAAA/wAAAAAA/wEBAP//AAAAAQAA//8AAAAAAAABAAAAAAEAAAD/BPz8+wAAAQMCA/v7+gIBAgEBAAAAAAECAgICAgAAAP3+/gL8/f8DAf8BAgEDBP/+/wAAAAAAAQAAAPz9/f79/QD///7+/gAA/wAAAAH+/gEBAQEBA/8A/wD/AAEAAQAAAf4A/wAAAAQDBPv++/z9/AMCBf7//gAAAQEAAAAAAP4AAQEBAQIDAv39/QMBAwH/AAECAQAAAwEA/wEBAgEAAQEBAQAAAAAAAP8AAP/+/gEBAv8A/wEBAP//AQAA/wECAf8AAAEAAf8AAAIAAf8A///+/gEBAQAAAP//AAICAv/+/v8AAAAAAAIBAf/+/gAAAP7//wH9/wECAQECAQEBAQD///7//wAAAQEAAQD/AP8A/////wAA//8A/wEAAf8BAAEAAgEBAf///wAA/wAAAP///wD//wEAAv7+/v///gEDBAICA////////v7+/wEBAQIBAf7/AAICAgABAP7//gD/AAAAAAAAAP8A/wIBAgH//wABAAEAAf////8AAAEAAAEBAP8AAQEA//8BAQAAAAAA/wEA/wABAQH/AAAAAAEAAAABAQAA/wEAAf4A/wABAAEBAAAAAP8AAQEAAQMDAv4FBP79/v8H//78+/r6+Pv6B/v7+Pz6+fwAAAL/AAMAAAAC+wABAgABAf79AQIC/wQAAf7+/f/+/v4AAQD//wD//v7//gEBAQECBP7+/wD+AQEEAP/9/v4AAAEBAQEDBAD//QABAAABAQEB/wH+/gD///3+/QACAQABA////wAAAQMCAQABAAEBAQICAgABAgEBBAIDAwACA/8BAgMDBAACAwIDAwEBA/7/APX09uTk49/e3O/w7/n4+P//AP///wAA/wEAAgICAAECAf7+/QIAAggGB/n6+f7+/QD+AP8AAAAAAAAAAAD/AAEAAP8AAAABAAD/AAAAAAABAAAAAAD/AAAAAAAAAAABAAD/AAAAAAD/AAAAAAEAAP8AAAAA/wEAAP///wABAAAAAP8AAAAA/wAAAQEAAP8AAAD/AAAAAAQBAQECAgEBAgIBAQb6+vsA//8A//8CAAEDAgL////+/P36//8FBQD//wH8AgQEAwX//wAAAAD9/v//AP4A//7+/v//AAD+/v8A//4BAQADAwX+/v4AAAEAAP4CBAQCAAAA//0A/wABAAECAgP+/v8AAAAB/wD+//8AAP4CAgICAAAAAQEBAQADAwMBAAD///8B/wIBAv///gAAAQAAAQAAAAD///8CAgD//wABAgMA///////+/P4BAgACAgIB/v8AAQD/AQABAAH///7/AAAAAAD///8AAAD////9/f4AAQEA/v8AAAD/Af8BAAAAAQECAQH///7//v7//wABAQEAAAAAAAEA////Af//AAEAAP////4AAP8BAAEA//8AAAD/AQAA///////////+/v8AAP8BAAH+//0A/wEBAgMDAwP///7//wAA//8AAP8A/wD/AAABAQEAAAD//v0BAQAAAQH///8BAAEAAAH///8AAgEA/wAAAAABAQAAAP//AAAAAP8AAAH/AAD///8BAAABAQH+AP8A//8BAQAB/wAAAQAA/wAAAAEAAf8CAAH/AgAA/wH/AP8BAAAAAAH/AAACAQL/AAIAAv/9AgEDBAMGBwf9/An+/P349/T4+fb9/Pv6+fgAAvsBAvoB/fr9/fwBAAMB/fz/APz///z////+//7/AP/9/v8BAP8BAQL+//4A/wD/AAIAAQD//wH///8BAgIDAQIBBAH+/v4BAv8BAQH//wD8/f4CAgEBAwMCAgIAAQECAgMBAQICAwQBAQMCAgMBAAIBAgQBAgIAAQICAQIAAQL+/v/6/Pvu7u7i4d/q6ef49vb///8AAAEAAP8AAAEBAf8BAgP9/Pz////9/f4DAwQHBwf5+fn+//0AAAD///8BAAAAAAAAAAEAAP8A/wAAAAEBAf8AAAH/AAAAAAABAf///wAAAAAAAQAB/wD/AQEA////AQAA/wEAAQD/AAAA/wAAAAAAAAABAAAAAAH/AQAA/wEA/wABAP8AAQEEAwMDAgEB+fr7AgMEBgYG+Pf3AAD/AP/8/QD9AQEBAAECAv4BAQABBQID/fz7/f0G/v7+AQICAQAA/v39/v7+//7+///+AAD//f7+AgEBAQH+BAME/wD//wD/AP7//wIAAAABAAAA/P3+AgED/wL9//7/AQIC/v79AQEBAAEA/wD///////8A/v3+AgEBAQL//wABAQABAQEBAAAAAQEBAgEB/gAA/wABAgEB/gD/AQEBAAAAAAD////+/v7/AAECAQIAAf8C/v//AQD//////wAAAQEB/wD/AAEA/v3/AQD/AAIAAAAAAQAB/v//AQAAAQAAAQAB/wAA///+AAAAAgECAAIAAP8BAAD/Af8A/v8A/wAAAgECAAAAAAD/AAAA//7/AP8A/wD+//7/AAD/AQEC/v/+AAAAAwMDAgIC////AP8A///9AAABAQABAAAA//7+AAIB/v/9AQAB//4AAQD/AQEBAAEAAQAAAAEBAP8AAQAAAAH/AAEBAAABAf///wABAQD/AAABAQEA/wD//v/+AP//AQEA//8BAQEAAAABAgIAAAAAAP8B////AAEBAAEAAQAA////AAAAAAAAAAAAAAEB/wD/AwMDAgMCBAQD/wcIAP4ACAoK/fz7/f399ff1/Pr59/bz+vj2//n2/v8AAP8AAP7/AQD+/gD/AAAB//8AAAEB//8A/wAAAgID/gD///3+/v4AAQD//gABAQABAQIBAAEBBAMF/v7+AQIB/Pz9AAAB/wAAAf//AQICAwQFAgIDAQID//8BAgMCAQICAgMDAQEBAQABAQAAAQIBAQAA+vv87u7w4uHg5OPh+Pb2///+AP8BAAD/AQAB/wAAAQID///+//////8AAAD9+vr6CQkIBQUF+wAA/v//Af8A////AQAA/wEAAv8AAAEB/wD/AP8BAAEAAf8AAAEA//8AAAAAAAAAAP8A/wAAAAAAAQEB//8AAAD/AAAAAAAAAQEA/wAAAP8BAAAAAAEAAQABAAEAAQD/AAEAAf8BBPr6+v0D/QEBAvz7+wEBAgUEBfn7+fv6+f///wACAgQEBQIDAwEC/QP9/QAB/Pz9/Ab//wD//////wEAAP7+/f/+/v7//QEBAf////8BAQD/AP7//gH+Af7//gD//AP/AwABAP8AAAEAAP7//wD/Af4A/wQBA//+/AEDAf//AAABAQAAAAEB/wEAAPv8+gICAgQAAQICAgIBAf////39/gADAgAAAP////v+/QEDAgH/AAEAAP8AAAD//gABAv///wD/////AQAAAf7//////gAAAP//AAEBAf//AAEBAf///QH/AgIBAf8A/wD///7+/wEBAP8AAAEA/wICAQAAAQAAAP/+/wAAAP///////wD//wAAAP8AAQD//wABAQEAAP8A/gAA////AP8AAAABAf8AAAMDAwEAAQAAAf///wEA//8AAP7+/wEA/wABAAAAAQIBAQAA/gD/Af//AAABAf8AAAD/AAICAgAAAAAAAAAAAf8BAAEBAAAAAAAAAAAAAAEBAf8AAQAA//8A///+/v///wEBAQAAAAIAAP8AAAEAAAABAQD+/wABAQEBAQH///8AAAABAAH/Af//AAAAAAAAAAEA//8BAgABAP//AAEBAwD/AP8D/wIDAgQEBf///wUHB/n5+QcJCfn39fj29Pr49fj39v0DBP8DBAL9/Pz8/AL+/fz9/f/////+/gEAAQH+/wECAAMAAgEBAQH+//3//QEBAgAAAQABAQIEBf///QEDAQD/AQEBAAEBAgAA/wABAAABAQABAf8BAP////8AAP8AAP8A//8A/v8BAQABAf7///f39ufm5eLh3vHx7/39/QEBAf8AAP//AAEAAAEBAQEAAPz9/v8A//8A/wAAAP///vn5+QcGB/////39/f/+//8BAP//AAIBAQICAf////7+/f8AAAD/AAAAAP8A/wAAAAAAAAABAAAAAAD/AAD///8AAAAAAAAAAAAAAQEBAP//AAEA//8AAAABAQAAAP///wEBAAABAAEBAQEBAQQAAAD+//8DAgEA/wH5+vkFBAUDAgT9Af38/P0B/v8AAAEC//8CAQL9Bf0A/wP9/Pv9/fwCAAT/AAAB/////v7///3///4AAAIAAP/+/v0AAwT//////wACA//9/f0AAgAB/wH//wEBBAL+//8BAQD+/v8AAAD/AP7//wD/AQL//v4B/wABAAEAAgEA/QD7+vr9/f0EAwQCAgICAwL//wD/AAICAAL9//4AAQAC/f//AAADAwMBAAEAAAH//wD+AP4B/wH+/fwBAAEBAQD///8A/wABAgH+//8CAAAAAQEBAgP//v//AAD//wD/AAD///7+/gACAwH//wEAAAD///4BAQEAAAD//v////7/////AAABAQEBAP//AP8BAAIAAP7//v///wAAAP/+//4A/wEBAf///wP/AAACAQABAQEAAP///v8BAQH///4AAAICAQD/AP8A/wD/AAABAAAA/wAAAAEBAP////4AAAEBAQH/AP8B/wABAQIAAAAAAP//AQAA//8AAQAA/wD///8AAAEBAP8AAP//AAIBAAABAAAAAAAB/wAAAQEAAAABAQEAAQEAAAD///8AAgH//wAAAAD///8AAQH/AP7/AAABAQAAAP8AAQEB/wD/AgH/AQEA/wACAgIFBAT+CQr+DRD9/fz39vXx8O759/T6+ff9+/kA+Pf9/PsB//sA//0CAAEBAwT9/v4B/QL//wAAAQAC///+//////8AAQD+//8DAwEA/gICAgEAAP8AAAIBAQAAAAEAAAD/AP//AQADAgEAAgH///////8BAAACAwMDAwQBAQH7/P319PTi4t/t7Or9/PwBAgL//v7/AP8AAAD///8CAQL/AAD//v8AAAABAAEAAAD/AAD+/f77/PsEBAQCAQL9/v3+/v4AAAAAAAH//v7////+/wABAAAAAP8AAAEBAAH/AQAAAAABAP//AAEAAQAAAP8A/wABAQEAAAAAAQAA/wABAAAAAAEBAQABAf//AAEDAgIBAQEAAAAAAAECAwIEAgICBQUG+Pj5AQEA/v7++/z7AP//BAQFAAAB/Pz8/f39AgID/wAB/P3+AQP//f3++/v7BAABAAEBAP7+/v78AQD////+AAH///7//////AP+BAMDAgEA//7+AgEC/v3+AQEBAAAB/P0AAQEBAAEB//7+/f38AgACAAAAAQAAAP7//wD//P3+Af///////v39/f37/wMFAQICAQEBAAIBAv0CAgID///+AAEB/gICAgEC/v7/AgIBAAACAgEAAAAB//7+//8BAAH+AQEBAAAAAQEAAP8A/v/+/wAAAAECAgEB/////wAAAgEBAAAAAQIC//8A/wD/AgAA//////8A/////wD///7+AAAB//8A/v/+AwMC/gABAQAB/////gAAAAECAQD/////AQECAgECAAAAAQEBAAAA/wAAAgAB/f7+/wD/AP8AAQABAQD//wACAQAAAAH/////AQEAAAAA////AAAA//8AAQIC////AgEBAAAB///+AAABAAD/AAAAAAEBAAD/////AAEBAP//AAABAP8AAAD//wICAgAA/wEAAAAAAQEAAAABAQEBAAAA/wD/AgEB/wAAAQEBAP8A/wAAAAEA//4CAAEA/////wABAAAAAQEC/wD//wD/AQEA/wAA//8CAgP///4GAwP+AwQIBwgM+fn2+/r4+ff18/Lv+vj3+/n4+/v5+vn5AQABAwP/AgIE/fz7/f79/wEAAwQF///9/v3/AgIBAQAB/gABAQD/AgMEAAACAAEBAAEBAgECAwIDAgIDAgMDAQECAAAAAAEAAAAAAQEBAwMD/P3+9vb28PDw9fT09/b2/wAAAAAAAAAAAP8AAP8AAAEBAQIC//7+AQEA//8AAAABAQEAAP//AgIBAQABAP8AAwMCBAQD/f79/fv9/f79AAAA//8AAAAAAP8AAAECAQEAAP8AAQEAAQEB/v//AQAAAAAAAP8AAQIAAQEC////AAD/AAIBAQEBAAABAwICAQEBAgMCAgID/v78//7/AwMECQsLBP7+Afv6/P39/fv8/QD///r6+gQEBAMEBQQFBgECAv39/gAA/wECAQAAAQABAQEBAP3+/QH7+wMFA//+/f/+/v8B//7+///+/gICAQAAAP38/QICA///AAD/AP8DAAD9AQEBAQEBAf/+/wIBAQECAf////////8BAf/+/gL//gECAv//AAMBAv7+/AD+/wECAfv5/AD+//8AAAAA/gAAAAECAgMEBAAAAQIDAgIDBQADBAMDA/7+AAD//AABAwAB/wAAAAD//gECAv///f//AP8AAAQDAgEAAf///wH///8B/wECAv///wAAAQAAAP8AAAECAAH/AQACAQD//wAA///+//8A/wABAf///wABAAQDA///AAAA//8BAv//////AAIAAAEBAQABAwH///8BAAEAAf8AAf/9/QICA/7//wEBAgD//v8B//8AAQEAAf8A/wAAAQD+AAAB//3+/wD///8AAAMBAwD+/wD//gAAAP8CAgAA////AQEC/wAAAQAAAP/+/wAA/wD//////wD/AAEBAQAA/wABAAD///8AAf8AAAAA/wAAAAABAQAAAAAA/wEAAAABAAH/AQAAAP8AAAEBAgAB/wABAQAA/gEBAf///wAAAAABAQEAAAABAP//AP//AQEBAQAA/gAB/wICAAICAwQECQcIB/7+/vv7+hASFvn4+Pb19Pb09Pb29Pr69wEA/vz7+fn4AP77AAAB/wIBA/8AAwMDAP////8AAAMCAv8BAgIBAgIDBAABAQD//wECBAEBAwEBAgD/AQECAQEBAgMDAwECAv7+//X19vH09Ozr7ubl5vDw8Pj5+f38/P7+/wAAAAICAv7+/QIAAf/+/v///gEAAQABAAAAAQABAAMBAQMDAwICAf///gMDBQMCAv7+/gABAAAAAAEBAQICAAD/AQIBAgAAAAEAAP8AAAIBAf7//wH//wEAAP8A/wABAAAAAAD//wICAgABAAMDAwIDBAoJCQUFBgABAAMDA///AP79/QIDAgsLDBAREAT6+vv9/P0DAwH+/f0AAAH////8/f0CAwT/AQEDAwT/AP3/AQH8/P4CAv///gD9/f8A+vv/BP8BAQD+//4AAP/9/P7///7//f3+AgECAgP///0D/f3//wAAAAADAQABAAEAAAIDAwP+//0BAwP//f4A/wD+AgH+/v8BAP/+AQACAQD8/P0BAQEBAP/////+/f4DAwT9//0CAQD+/vwA/////P/9/AMBAgICBAMFAAH/AAABAAEBAgIBAgL+//8CAAEAAAD/AAAA//4BAQEA//8AAP/9/f4CAgAAAAIBAQD9/v8BAP4EAgP+AP8BAAAAAAD+/wAA//8A//8AAAAAAAEAAQAA/wABAAABAgIBAQH///8CAgH////+/f3/AAABAQH/////AAEAAP8AAAABAQEAAAH9/f3///8CAAABAAH/AP8AAAH/AAAA/wD/AQEA/wAAAP/9/v0A//8AAAEBAQABAQIAAP////3//gEAAQEA////AAEA//8BAgECAgIAAf7//gEAAAAAAAAAAAACAQEBAQD/AAABAAH/AAAA//8AAAD/AQAAAAIB////AP8BAAD/AQAB/gAAAf//AAEBAAH/AAAA/wABAf///wEAAP8BAAH/AQAAAP//AP8BAAH/Af8BAAEAAP8A/wAAAQABAQD//wAAAAAEBAP+/gIDAwP+CAkHCg0NEBP8+vv29/X5+Pb29vX29PEEB/f8+vr7+/r7+vn///4CAQEB//8AAAAAAgIEAgEBAgECAQIAAQH//wECAgIBAgMDAwQCBAQCAgIBAgMA/wD7+/z3+Pf7+/34+Prx8O/y8u/4+PcAAAADAgQB//0AAP8AAQEBAAABAQAAAAD9/QECAwH/AAAA//8BAAACAwMEAwP+//4GBgcAAAD6+/sAAQAEBAQGBQQAAAD+/wAAAAEAAP8BAQL9/fz9/f4A/////f4CAgEB/wD/AAEAAP8AAAEFBAQBBAQBAgIHBwgNDg4PEBADBAUAAAD+/v8DAgEJCAgKCgoTFBMKCgkEAAAB9vf0BwYG/P39AAAAAwME//7+/Pv6AwQEAAABBQUF/f3+AQAA/f79A/7+/fz8/v79/f39AQD+AQEC/wD////+/fz+/Pz7AgICAwP+AQL9Bf8EAAAB/v7+Av4BAAEBAP///gD//gD/AAD/AgID////AP7+//7//v//AAIAA/8BAf///////gD////+/wEA/v/+AwQEAQD+AQEE/v3+/v77/vv7AgMCAQD//wT+Af7+/AD8BAEEAQACAQAA/wAAAQEBAP////8AAAAA/wD/AAAAAAAA//4A/wD/AAMAAQEBAP///v/+AQABAAEAAQEAAAABAAEB////AAAAAQD//v7/////AgMDAAEAAQAB/v7+////AAEA/wAAAAAAAP//AAAAAP///wAAAQIB/wAA/f38/Pv8AgIC/wQA/wD//////v79//8AAQAB/wH///////7+AQEA/wEBAQAAAAABAQIB//8A/v7/AAD/AP8B/gAAAAAAAQEBAf4B//8AAQH/AAAAAAAAAQABAAEA//8AAAAAAAACAAH/Af8AAAEAAAEAAAEBAP//AAIBAAAA/wAAAP//AP8AAAABAAD//gAAAP//AQEBAAABAgH///8C/wH/AQAA////AQABAAAAAgAB/wH/AAABAAD/AAAB//8AAQIAAv8BAAEAAgMA//8B//8A/gEA/v4BBAMCBQUD/QwMEP38+/oX/Pv6+/r5+Pn59PPx+Pj2/Pv7AP7+/f/+AAAAAAAAAgEBAQEAAgIDAgIDAQICAgMEBAQGAgMDAQEBAgME/Pv78/Pz9vb4AQAB8/Ly7Ovr8fDyBQUGFhUW/Pz8+/v79fX0AAAABwYG+vr6/Pv8BgkG//4A/f78////AQEBCAgIAAAAAgICAQEC+fj4BAQEAwICAgICCgkKAwUD9vX2/P39BwcI+Pf19/f9AwQE//7+CggHAQEB+vn6AP8AAQEABAUFBQYGCAgJBQcHDxERFRYYEBAQAgMEAAAAAf/+CQkIDQwMDQ0MDQ4MBgcHBAD///38+/sB/wIDA/v8/P/+/gEBAv7+/QICAgAAAP38AQABAfz7+wIA/wAAAAMDAwIBAgECAv/+/AUGBgEBAgAAAP///gEBAf/+/v4BAAD///39/QMDBP/////+/v4BAAEAAf/9/wABAP///wABAgAA//7+/gAA/wABAP79/gACAP/9/gABAQECAP///wICAf38/wECAQECAwEDBAED/gL9A/v6+vv7+f7//wAB+gYHAgIDBP//AP3//gEAAAAAAAECAQAAAAEAAf///////wAAAP///wD/AAIDAv/+AAAA/wD/AP0A/QIBAv/+/gIDA////gEAAQAAAQAA//8BAQACAgEA/gAAAP7+/gEBAQECAQAAAAD/AAIBAP39/v4A/wIBAQIBAQD///////7+//37/QEAAAIBAgAAAP7+///+/gABAQECAQEA//39/v///wAAAAICAgEA////AAACA/8AAAAAAQIC//7+/wAAAAAAAAEAAQAAAP7+/gEA/gABAQAAAQIBAf8BAAIBAQAAAAAAAQAAAP//AQABAAEBAQEA/wAAAQECAP///wEAAf///wAA//8BAQH//wAAAQABAAEAAQAA/wD/Af8BAf8BAAAAAAD/AAEBAP//AAABAAAA/wEAAP//AAABAQH//gEBAQAB/wABAQEAAP//AQAB/wAAAAIAAQECAAD/AQIFBQQA/gD/Bf4ICf///v39/gAA/vz8Gvz7+/j49/j49/8A/wL/AP7//wICAQD//wIDAgMCA/8AAQIDAwUFBwECAgEAAP//APX09AQEBwoLDvn5+AEBA/7+/wcHCf8A//v7/Pn5+P39/e3s7AMDAwsKC+7v7gQDBAUFBPn5+Pn5+f///v//ABAQDwAAAPj4+fz8+g4ODQUGBwICAf7+/gAAAP8BAAoLDAMFBPv8+/0A/wkMDQcHB/v7+wkJCfb19fT09QMCAwMCAgYIBwQFBQ8REQsMDhkaGhISEw4ODQYHB////wQCAQwLCw4ODQkKCQQDBAIDAgT+/f3+/v74+fkLCgsDAgL9/PwBAQECAwT9/fwAAAH7+vr/AP//AAEE/wf8/PwFAwUDBQMBAQH9/v0AAQEFBAUAAQEBAQEAAAD+/wAB/////wD7/PsBAQEAAf/9//0CAAL9/f4CAv//AQD9AP8AAgEBAAL+//4BAQIBAAD//wD+/v8BAgD9/fwCAAL+//4DAgMEBgX+/f4C/wIBAQECAgUAAQQAAQP+AP///f7//v39/PwAAAIABAABAgIBAQEAAP/+/v8AAAEBAP//AAAAAP8AAAABAQH//////f8CAgIBAQIAAP8BAAL+/v7+AP/+/f0CAQH/AQAAAP4A//8AAAEAAP8AAAH+//4AAQD//wD///////4AAAEBAQAAAQABAAEAAAD9//0A/v4AAQH+/gABAgECAQMCAwL//////v8AAf8BAAIA///9/v3+/v8AAAAAAQD9/f4AAP8BAQD//v8A/wEAAAABAgECAQH+/v4AAAEAAf7//gH+//4BAAAAAAACAQL/AwMB/wD+/gADAwH///8AAP8BAQIA/wAAAP//Af8BAAD//wABAAD///7//wAAAP8AAAEAAAAAAAABAP/+/wABAAABAP8A/wABAAAAAAAAAAH/AAAAAf8A//8AAf8AAAABAP8AAAD/AgEBAAAA/wH/AAAAAQAAAAABAAEAAP8AAAEAAQEBAAAAAAAA/wP/AP8DAAAAAAD//wD///4GBgD/AP8MDQ39/f39/Pz/AAAB/wABAwICAQIAAP8A/wD/AAABAQECAgIBAQL+///6+voBAQIKCwz9/v75+fkKCw4JCgsTExb3+Pf5+vn39/gAAP8UFRUNDQ/t7esbHh/6+/r49vYFBgX39/X9/fz8/P0VFRTm5ecGBwj+//4VFBX4+Pjx8PD8+voOEA8PDw8EBQT8+/v8/P36+/oODQ3//v8HCAj8/Pzv7e8TFP36+voIBwj8/v4JCgoLDA0VFxYcGhsNDQ4LDAsHBwYFBgUGBgYHBgUGBQUGBQUAAQH/AP8E/f79BwgI9fT0/P38BQYG/v7+AgIBAQH/+fj3////////AQEC//8A//79BQUG9vn5BQUGBAUEAwP/+QAB/wf+AgIDAQAB//////79/gECAQEC/fz9/AH8AgIBAAECAAMA/f79/wD/AQEB/wD//f38AAABAgICAAECAAEB/wAA///+AgAB//79/f/+////AwICAwECAAQC/v7/AQEBAQAB/wECAgMABwcJ+/n4//8AAAAAAP///v79AP7+/wIBAAEA//8AAgEB/wEAAQICAQEA/v3+AQACAQEA/wD//v7/AgL+/wABAv//AAAAAQAA////AAIAAAAA///+AP8AAQABAAAB/v7/AQD/AP8AAP///wAA////AQIBAAEBAgMA//7///7+/f79AAAAAP//AP8AAAAB/f/9/wD/AQABAQIBAgAB///+/v3+/v/9AAABAAEBAgAA/f79AP//AgIDAAD/AQD/AAECAP///P7+AQABAQEA/////f7+/wD/AQABAAABAAAAAf8A/wEAAf///f3+AQAAAgEB/gD/AQAAAQECAP8AAP8AAAIBAP////8BAAD/AAABAP8A/wEBAQAA/wAAAAAA/////wEBAQAAAAAAAAD/AAD//wAA/wD/AQH/AAAAAAAA/wAAAP8AAAEA/wABAQD/AP8A/gAAAgAAAAEAAAECAP7+AgAAAAEA//8AAAAAAQEB/wAAAP8AAAD+AgIEAAD/AP8AAAUB//7///////8AAQD/AAEBAQAB/wD/AAAAAAAAAQEBAP8B/wD+/f3+CAcGBQQE/f79//8ABgYHBgYH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AAABBQUF/Pz7BQUF/v/++fj2BAQFAAECAgIC/v7+AgEB/wABAAACAP/+/v38/P8AAQIA//v9AgMD/wP/AgECAAABAQECAAEC///+/f3+APr7BQYCAgMC/f39AwICAAD+/v7/AgIC/wD//v/+AQEBAQAB//39AAEDAgAA/gAAAgEAAgED/v79/wH/AgAAAAIAAAEBAP//AP8B/wD/AQEB/wAAAAAA/wD/AQAA//7+//8AAQEB/////////////wD/AQEB//7+/f39AQAB/wD///7+/v4A/wD/AQIBAAD/AP///Pz8/v7+AwMDAQEA/f7+AwIC+/r7/v/+AQICAQABAQIAAP8AAQIC/v7+AP79AAEBAAABAgEAAAICAAD+Af4C/wIAAAABAP//AQAB/////wH/AQEBAAAAAAAAAQAB/wAA/wD/AgAB/wAAAQEAAP//AAABAAEBAP//AAABAAEA/wD/AQAAAP8A/wAAAAAAAAAA/wAAAAAB////AAD//v8AAAD/AP8AAAAAAQAC/wD+//8AAQEAAAAC/wD+AAAAAf8A/gH/Af4A/wEAAQAB//8AAAAAAAAA////AQABAAH/AAEAAf8BAQEAAQIA//8CAQD//wEAAAAAAQEBAQAA/wD/AQEAAP8C/wH/////Av8C/gD+Av8BAQIBAAAD/gMC/v4E////AP///wAA//8A///+AgIDAAABAgL/AAABAgICAAABAAEA/v7+/v4MAQD//////v7/AQEBAgICAAAA/v//AAAAAQAAAAEAAQICAQAAAQEBAAD///7//wEA/f39AP8A///+/v7+/Pv6/wD/AAEA/v7/AQEBAwECAgIBAAAAAwMCAgH///8A/v7/AQH/AAICAAD+//8BAf//BAwNDfj4+AICBPz9/gQCAv79/QAEBPr5+/r7+f79/vb19wMDAwIDA/39/AUEBgQF//7+/wQDBPv9/PT08vv7+wkMDP3+A/z9/QUEBP8AAQMDAQEAAP///QEBAQD/AQUE/wIDAvz8/QEAAAIBAP7+/vr6+gECAfv7/P//AAICAgEEBf7//wACA/z8/v/+/QD//wEAAf8D/QD9AAAAAf8A/wAAAf8B/wICAgEAAf//////AP/+/v78/v3//wcIB/7+/gD/A/8A//8AAAH+//8B/wIBAv8AAAAA/wAAAAD+/f0BAAICA/7+/wEB/AECAf//AP8A/wD+AP7//gEAAQAA/gIAAf7+AQEAAP3//wIBAAEBAf//AP///wD//wABAP//AAAA/wEBAgD/AP7//gD/AAIEAwAAAP39/v///wICAgH/Af7///39/P8A/wMDAwMDAwAA///9/fz9/P///wMCAwAA//8A/wD+Af7+/v77+wABAAEBAQIBAf8AAAADAgIA/wEAAgECAQEAAP8A/v//AP7+/v4AAQABAAMCAwEBAQEBAAEBAwECAAD+//4BAAH/AP8B/wD/AAAB/wD+/wABAQEBAQEAAgEBAP///v8AAQIAAP//AQAA//8A////AAAA/wAAAAAA//8AAAEA/wAAAv///wEBAQD/AAAAAQEA/v8AAQAA//8A/wD/AAABAAAAAAAAAAAAAAABAAD/AAEAAQABAAAAAAAAAAAB/wEBAAAAAQEA/v8AAAABAAD///4AAQEB/wD+AP8AAQEA/wAAAAAAAAAA/wEBAAMBAQD/AQABAQICAf//////AAAA/////wD/AQABAAEBAAEBAgAAAAEBAgEBAAEBAf////7+/gAAAQAAAAAAAP8A/wH/AAABAAAAAP///wAAAP//AAAAAAECAAEAAP4AAAIAAP8CAP7+/gIEAQD///8AAv7+/gMCAf8A/wAAAAAA//7+/wH///8A/wEAAAEB/wEAAf///v7//wIAAQD+/wABAQABAf//AAQGCQr/AAD9/PsNDQ/08vL8//z4+foBAQH6+foBAAD9///9/v4HAQIAAAH8/f0BAf3////7/v7///77+/r5+fr8/v0MDQ3+/v3//f0BAQL/Bf8BAwT/AAD+/v7//wEBAQEDAQP9/f0AAP/+//4BAQH7+/sEBAQBAQH7/PwEAwP+/v//AAACAv3///79/PwCAQIAAf/8+/4BAAAAAQEC/AEABgECAwMA/wACAgH+/v79/f0AAAEBAAH/AP38+vwCBAP9/v4CAAEAAP/9Af4BAQD+AP4CAQIBAwH+/v8BAQH//f////4CAQL8/P0BAgEAAAEB/gAAAP//AAACAgL/////AAIAAP8AAAEA//79AQAB//7/AQH//f4BAQIAAf///wAAAAABAAAAAQABAQICA/8CAgH//v7///7+/v38/f7+/v/6+voCAQECAQD//v8BAgD8+vr39/gAAQABAP8FBgYFBQUBAgIA//8A/wL/AP8BAQADAwT+AgMCAgL/AgL+/gAAAv7+/f0BAAIAAAEBAQEBAQD///8A/wD+/v4BAQEBAAABAgAB/wEBAAEAAQD/AP8A/wAAAP8A/wD///8BAgEAAAH//wABAAABAQEAAP//AQEAAP/+/wABAQEBAf7//wD/AP///v8BAQD/AAAA//4AAQEA/wAAAQEA//7/AQAAAAABAAAAAAAAAAD///8AAAAA/wD/AP/+/f4AAAAAAAAAAAACAgIBAQAAAAH//wAAAP8A//8AAgEA/wD/AP8BAAAA/v//AAAB///+AQAAAAEAAP8BAQEAAAAAAAAAAQABAQAA/wL/Av8A/wABAQAAAAH//v////8BAgIBAgIBAP8AAAH///8A//8AAAABAgAAAAEBAAAAAAAAAAEAAP///wAAAP8AAQEA////AP8AAP///wD//wACAQH//wD+//7/AP8A//8AAQABAAACAgABAQIAAAD//////v4AAf////8AAAAAAAABAAD///////4BAP8A/wH+/wAAAQEBAAEAAAAEDA0PAgID8e7tCAYH8v////4A+fn5CQsL/wABAQICAP79//7/+/z8AwEC/P78BAID/wAA+/v8/Pv8AAEAAQIC/P39BAQECAgJ+fv9AgMCBP/+AAX+AQEC/v4A/v35AAEBCAMHAQEC+/r5AAEBAwMBAAAAAQICAAAB/f3+AAAB///8BQUG/Pz8///+/fz7BAMEAQEB/f39AP////8AAgID/f/+CQgJ/AD+Av4B/////////v79AgADBAEC+/z7BQEAAwIC/QD/AQEBAP7+/gEAAQAA/wEA/wECAAD//v7+Af8A/Pr+AgMCAgIC+/v7////BAUEAAAAAf///wAB/f7+AwEAAAABAAD/AQIA//7+AQIDAf///f/9AP7+AgMD/////wD/BAID////AAH+/////fz9+/r6/v38+fr5/f38+fj4AQECBAQE+Pb2+vn59/f19/X1BAMDAwQC//8AAwMCAAEC//8A+/z8BwYGAwIDAQMDBAUGDQ8QCAsLBf0GBQUGAAACAgICAAD/AAAA/wAAAP8AAQABAQECAAEA///+AQIDAQABAP8A/wL/AP8AAAAAAQD//v/+AAEAAP8AAP4AAAL/AAEAAAABAAAAAQAB/wD/AQABAAD///8A//8AAAD//v/////+//3+////AAAAAwIDAAAA/wEAAgEBAgIDAAAA////AAEAAAD/AAAAAAAB/wD/////AAAAAAAAAQAAAAEB////////AQEBAQEC////AAD///3/AAEAAQAAAP///wAAAQEBAAAAAP8BAQEA/wABAQEA/wABAP//AAABAAABAAEAAgAB/wEAAAAAAAAAAAEBAQABAQEBAQAAAP8B/wD/AP///wAAAAD/AP8AAAD+/wAAAAAAAQAA/wD//wD/AP8BAAD//wD/Af///gD///////8A/wIB//7//v79////AAAAAQEAAQEBAAAAAQAA/wD/AP/+///+///+Af//AP7/AAIC//7+AAAAAf//AAD//wD+//8AAQEC/wAB/wEABBASEgMDA/Ty8fj6+gQEBff39ggJC//+AAgIC/f39QECAwAB/v/+//8DAPz8/PsDAwABAfv7/Pv8+gD//wAAAPr6+f/+/RQVF/3+/wEBAQYFBf79/gIDA/8AAgD//wABAAICAQMDBPz8/f8A/gEABvr++wECAwQDBf39/gEBAgAAAf39/gEAAP/+//z7+wD+/wQEBf/+//7//v/+//8AAP/8/vj5AQQDA/wAAAIAAf7+//8AAP78/f4BAgICA/v8+wEFBgEBAv7+/wAA/////wIBAgEBAP///wD//wAAAf7//gAA//37/AAEBAQDBPr8+/38/gECAQD///8A/f7+AAAC/gEBAP7+/wH/Af/+/v39/QEBAf7+/wAAAAH//////wAAAP8AAP8AAP78/f39/fn49/n49vv6+vr5+fr6+f7+/gMDA/v5+f37++/v7fj49wMCAQQDA/38+/b29gAA/wMDBQMDA/3//wMCAwYGB/8AARQWFwMDAvv7+gkKC/8ICQUGBv8CAwMDAgACAgD/AP8BAQQBAgEBAQEBAAEBAQABAP8BAAEAAAEAAgACAAD/AP///QEBAf8A/wAA//4AAAD+AAEA/QEBAgIBAQABAgAAAf8A/wEAAP8BAAD+//3+/f3+/f79/gAB/wAAAAEBAAD+AAICAwAAAQAAAf8A/v/+/wAAAAD/AQEBAQAA/////gABAAAAAQIAAAABAP//AAD//v//AAAA/wICAv///QAAAAEBAQAAAAD/AAABAAAAAAAAAP///wABAAD/AP//AAABAP//AAAAAAAAAQAA//8AAAH/Af8CAAH/AP8A/wAAAAEAAAACAAAA///+AgAB//7+/////gEBAP//AP8A/gD/AQEBAAAAAP8AAAAAAP///wAA/v///wAA////AP7////+/gAAAP7/AP////7+/v///wD//wABAQEBAAAAAQAAAAAA////AP7+/gD+AP//AP///wMBAAEA//7+/gAAAQAA/v7+/gAAAAECAAABAgD/AAQJCAoCAQP19PTu7ewKCwzy8/MJCQX7/PwBAQEDAwMA//8AAgP///8BAAECAgH6+voDAwP7+vr5+vj//v4BAQD//wD7+vr9/P0PEhP+/f3//wj9//4BAQIAAQECAQP+/v8CAwMEA/7+//77+vsBAQADAgT6+fkBCAICAgL7+/sGBwf//wD/AP/////+///6+/wBAgT+///9/f79/f0D/v8DBAP/APv+/f0CAQL+AgIAAQADAQL7+/z/+/oFAQYCAQL8APsEBQUDAwT8/fz//v78//4FBQUB/wH/AAEA//7//v/9/f0BAQH9/f3///8A/v/9//z/AQEDAgL+//3//v///wIA/wAAAQAA/v8BAQEA///9//7///8DAgT///3+/v8BAgP9/f38/Pv6+vj8/Pz+/Pv9/Pv29PT5+Pf8+/r49/j49vT39vb9/fwBAP/29ff3+PUDAgP8/fwDAgIJCAn4+vIDAgIDBAT8+/38/P0EBQfy8vIHCAgNDxAVFRYMDg8ICQoHCggHBgkDBQQBAQIBAAEAAP//AAAAAAH/AAAB//8CAf/+/v8BAgABAAD///8BAAD+//4A/wEBAQEB/wD/AP7+/wABAf8AAQIAAf8BAAECAgP/AQD//v7+//7///7+/v39//0A/f8DAwMAAAH/AP////8BAQH///8A/gEAAAAA////Af///gABAAD/AAAA/wEBAf//AQEA/wAAAf8A/wABAAD+AAD+//8AAP8AAAAB/wIAAAAAAQD//gAAAAAAAP8AAAAAAAAAAAAAAAABAQABAQEAAAEAAAD/AAAB//8AAAD//v//AP//AAAA/wAAAAAA/wAAAAAAAP4A/wH///7//wAA/wD/AP////8AAP8AAAH///8AAQAA//8A////AP8AAAD//v7/AAD+//8A/v8AAQD//wD+/v//AP4A/////////gAAAAACAgIAAAABAAAA/wAA//8AAAAA/v4AAQEB/wH///7///7//wD///8AAP8AAAH+//////0AAAEEBAUGAgQEEBMV9/j6AP78Cwvz+/v7CgsL7/n2////+vn5AgIDAwMD+/v7/f3/+fr4CQgI/wD//f38/f38/v79////BPsE//7/BAUEBAUH//7+AwUEAwQF/Pv8BQcHAwP8AwMB/wYG/v39/Pz6AvoB/gQA/f/+AAECAwMF///+/Pr6BQYG/Pz8AP8A/v4A/Pv6AQECAQIB+vv6AP8AAP//AQEA/wD/AAAF/P77AgMCAgEDAAMCAgIB/f7///r6BQQF/gAAAQL+AAH9AQAA/f7//Pv7/f38BQUGAgEB/wD/AQAB/f39AP8AAQICAgECAAEC/v/+AP/+/QD///7/AQAB/v7+///+AQICAP7+AAAAAAEA/v3+AAAAAQYC/fv/+/v7AwMD/f399fTz/Pv5/Pv6Af8A8vDv8O7s+Pb1+Pj4+/j4/Pz7+ff5AAAB+vv6AQEACwsK/f7+AgEDCAcH/v////8AAAAA+/r79vj5+/v9/v71B/X0CAkI/fv5+/j2CgsMDRAQEhMV/Qz+BgcHBQUGAgICAAEBAAACAwMCAAEB//8A/v7+AgEBAP8A/v3/AAH/AQEBAP8BAQEA/wD/AAAA/wABAAEAAQAA/wAAAf8AAAMBAAEAAP//////AAD//wAA////AP8B/wEA/f//BAIDAgIDAAABAP///wEBAP//AAAA//7//wD+AAABAQAA/wABAQH/AP8A/gAAAAAAAQEAAAAA/wAAAgEBAAAA//8AAAD//wD9AQABAQAB//8AAAD/AQAA/wAAAAAAAQEBAAEAAAAB////////AAEAAQAB/wEAAP///wAAAAAA/wAAAQAAAAAAAP///wD//wAAAP8B////AAD//wAA////AAEBAP/////+/wD/Af8A////////////AP//AAEB/////////v//Av8A/////////v/+AAD///7//wAAAQEA/v7/AQAA/wECAgEAAf8B/wD/AAIAAQAA/gD+AQAA//4A/v79//79AAEBAAEBAP/9/wABAAABBAQDBAECAgwNDhIS+Pf39hASFfv6+AEA/wQCA/0DAvz8+wAA+wMEBP79/gUEBfv8+wX9BQAA///+/vj39wABAf///voA+vn8+wICAgsOEAYFBf749gkKCvb39wX5CAcJCAEA//////39/fv6+v///wT+BQECAwAAAQMD/QECAv39/QECAgAA//39/P8AAPv8/AAB+gYGBv38/gMDAvz9/QABAAH/AgD/AQECAfz8/AMD/wABBAEAAAIAAP/+//v8/AP+/gD///z8AgABAf///v39/f3+/f79/gMDAwAAAAIBAv7+//7+/gL+/v4CAwIB/v7+/gEBAf/9/QACAf7//gIBAPz8/f7+/QEAAP///v//////AP8AAP39/fz7+v39/Pz7+/X19P37+fr4+fj49/v6+vXy8vXz8vn5+Pz7+wD//v7/APn6+gAAAP8A/wYFBvf4+fj5+f//APP09f7+/vn6+gkICvn5+Pr8/QAAAAQCAv39/f3++wUFA/r5+Onn5g0QEPTz8xYYGQwODwkKDAMFBgQEBQMC//7//gH/AP8AAAEAAP3/AQH+/f///wABAQICAwAA/wAAAQD//gABAAABAQEAAAABAgEBAQICAgEBAQAA//8AAQEBAv8AAAAA/wAAAgECAAIBAQIBAQICAwECAQEBAQAAAP///////v///////v7//gD/AAAAAAMCAf8AAv///////wABAAEBAgEBAQIBAQAAAQD/AAD//wAA/wAAAQECAQAAAAEAAP8AAP7//////wIBAv8AAAEAAP8A/wAAAAEAAQAAAP8AAAD/AAAAAAAAAP//AAEBAAAAAP//AAAAAP//Af///v///wEBAP/+//8AAAAAAAH//v4A/wAAAAAA/////v//AP///wAA////AAD/AAD///7//gAA//4A//7+/gD/AP7//v///////wAAAAABAAEA/wEAAQICAP8CAQAAAAEAAf8AAgD//v8AAAEBAf8AAP/+/v3+/P39/gEBAQABAf7//wD/AAQDAgMAAQELCQr9EBEGBgcIBwn18/L6+vb+/v7v7esGBQb3+fgA/P3+/v4CAgMEAwT7/PsCAgH/AAD7/PsBAQP//v3///76+voCAQIDBgUAAAn39/f+/v74+fn2//YO/g4A/f0DAQH8/f38/PwAAQD/////AAEA//8EBQYBAQEBAgH8+/sGBwj+/f38/f3+/v75+fgBAQAAAAD9/fz//wD///4CAwMCAQIEAQT+/v/8//z///8CAAEAAAACAgH+/gD+/f4BAQH//P0CAwIAAQH+/v4BAQEAAP78//4BAAH8//8DAwIA//79/v8B/v7+AAEAAQAA////AAAAAAD///79/v4AAP7+/v4A//8AAP8A/wD/AAAA/wD39PP7+/r39vX29vYGBQPz8vDy7/H08/P9/fz5+Pf9/Pz//v/+/v7+//0AAAL6+/oDAwMGBgbw8fL+/v719vf+/wD/AAD8+/sAAQIFA/b9/f7+//4BAAECAQACAgEGBwT09PUDAgMGBgX7+/v29fb29fUYGRoQExQJCwwCCgz//wMD/wIBAQABAAEAAQEAAf8AAAAAAQEBAQH/AP8B/wAA//4AAAD/AAAA//4AAQL/AQAAAQD+AP8CAAD//wAAAQD//wD+/wAAAQIDBAX//v4BAgECAQL/AQABAQL/AAABAP8BAAD/AQD//v///////v////8AAAD//gD/AP0BAAAAAAABAgECAP//AgD/AAIBAgIBAgH/AAAA//8AAQD+/v4BAQEAAAD//wD/////AAD+AP8BAf8B/wL/AP8AAAD/AP8AAAEBAAEBAQD+/v8AAP8BAQH//wEAAAAAAAAA/wH///3///8AAAD//gD////+//8AAQAA//////8BAQH///4AAf///wAA//8AAAAA////AP7//v7+AP8A/v//AP///v7///4AAAEAAAD//f0AAQAAAQEAAQABAAEA/wD//wMBAAD/AP//AP8AAP///f3/AgMBAQH+///6+vv9/PsAAAAA///9//4A/wEEAwIC/f7+BQUFBgYIBAQG/Qv8////APUADAAB9fX1DgIE++zrAAABAAEA+fr7CQgI8/TyCAcHAwID/v4ABAP//wEA+/v9AQIB9/f2BfTyBQQF+fj3/fz7AgID+vr5AgAA///+BQYE+/z+/Pv8/v8ACgoE+vr5/v3+CQsC/Pz9AwQDAQAB/wAABAQF/v79/P38AgEB9fX1BgUF/f79AgEB/v8CA////AICAQECAQIBAP/+AP7+/f///v7/AQIAAwME//8A+fn/AwQC/P3/AwID/fz9///9/QIDAQEBAQEBAQEA/f0AAAAAAAH/AwEE/f79AQICAAAA///+AAAA//7//gD+AP//AAD+AP8A/wAAAf8B/wD/AP/+/wD+/f38/v79/v388fby9/T19PPx8PDx+vj4/////f79AwIDAwMD+vv7/v7+//8A/Pz+8/P29fb2/wEB/////gABAP8A/wAB+/v6/AME/f3+///9AwIDBAMDAP79+fr69PX2BgQEEhAR9PPz8fHy8O7v7+7tHR8gGRwdAwIDBQcIAgIFAf8A/wD/AAABAQECAAABAQEB/wD/Af8B/wD///8AAAD/AP8AAQEBAQEBAAAB///+AP8C/gL///8BAQAA//8AAQEAAAACAAH/AAAAAQAA/wAAAf8A/wD//wAA/wD/AAD/AP7//////v3+AP///wD/AQD//f////7+AAH/AAABAv4C/wEBAP8CAQD+Af4CAQIBAQEBAQEBAP8AAAEAAAAA//7/AAEAAQEBAAD/AQAA//4A/gD+AP8AAAABAQEAAQEB/wD///4A/wD/Af8A/wAAAAAA/wD/AAAAAP/+/////wAAAP/+//8A///////+AP4A/wAAAAAA////AAD+//8AAf///wD/AQAB/v7+AAD//f79//7+////AAD//v//AP//AAAA//8AAAAAAf8BAgIB////AAEB//8AAP3+AAIBAAD/AQD//v8A/v//Av/+AgECAP8A/fz7+vr5//39/P39//7+////BP7//gAAAAEAAQICAQEBAgUFCRMTFP7+/ggJCvHx8voC9wsNDvX19AgECfHw8AcGBv////7/AP8BAf////z9/QAAAP8A/wD+APv7+/X09Q0MDf39/P38/AUFBfr5+gD/8/39/QMEA/7+APz7/fn4+AICAfv9/vn5+AQGBgEBAfn4+AQDA/7+/QgI//v6+f39+/4BAv79/f7+/QMCAgADAwL///z+/gD8/AEAAAMDBAEBAP3//f/+//7+/gIAAv39+AEAAv4A/wX9BAD/AP0DAv7+//z8+wMDAwMDAwAAAAABAQQDA/7+/gICAv4D/QAAAP7+/gEBAQEBAQICAQADAf8A/wEA//7+/v/9/f8AAP8A/wL+/vv7+vz6+PDt6/Tz8e/t7fb39/n39/v7+/r6+/r6+vv5+f8BAAsKCwQCAv3+/fb19wIDA//+APX39/r6+wcJCPz9/gEBAv3+/wAAAP/+AfwA/f3+/gEAAQH/APv9/gIC/wEBAQD/AP3+APDx8QD//gMEBAYGBvz8+vz7+//+/v//AQ0PEQgA/wMDBAEBAAEAAgL//gABAv///wEBAQABAAD/AAEBAP//AP//AP8A/v//AAL//wIBAv8A/wAAAgAAAP7//wD/AP8A/wAA///+//8AAAD/AAAA/wEAAf8B///+/////wAAAP7+/gD+/v7////+/v7//f///////wEA/gABAgEB//3///4BAgL//wEBAQIBAAABAgEBAQAAAAEBAQAAAP//AP4A/wD/AP///wAAAAEAAAAA//8AAAEBAgEA////AAD+/gABAQD//wAAAAABAP///v//AAAAAAD//v7//gAAAAAA//////7+/wAAAf/+//8B/wD/AAEBAQAAAP///wD//wABAAABAP7+/v///v/////+/v39/QD///7/AAEB/wEAAf///wAAAQAA//8AAP/9AAECAf///////gEAAAAAAQIAAf8A/gAAAAAAAP///wACAAIEAgMDBP/+9vn4+Pz8+/7+/fz7+wT+/v8AAP8AAQMGBgb///4DAwQCAgAO+g/9/v4NDxD39gUGCAj85uUCAAH3+PkJCgkEBAb9/P0A//8CAgMBAAD9/v4A/wEAAAH/AP/7+vr6+vr//////v/9/PwAAAD29/cAAAH18/QCAgP7/Pv///8DBAMEBQf39/cDBQYMDQ3+/v/y9fIHBwYA//77+/v9/PsBAQEBAgH9/f0B/wAHCQgAAQUB/v79/wD7/////v8BAgEAAP8A/wABAQL5+fkBAP8AAAEFBQX49/YDAwQA+/8CAQL///76/fsEAwMFBwcFBAQGBgYAAP////8BAQEAAQICAgEBAQEBAAD/AP8A/wD/AP/8/Pz8/Pv+/f39/f78+/r49/bw7e7p6Ob59vf6+/ny8fLy8/QEBAP+/v/8/PwBAQH19fj+//0AAAL9/v/7+/37/P0A/f36+vz5+vsBAQL6+/0A/wAAAf79/f7///8CAgL+/gAB/wIAAQL9/v4CAgACAAMAAP8AAQECAwT9//4A/v8C///7+vnz8v79/Pz+/fz///8ZHgAAAhIIBwACAwQCAf///gH/Af0AAAEBAQEAAP4A////AQD//v0BAQEBAQIB//8BAAQAAAEAAAAA/////wD//wD/////AP8A////AAABAQEAAQAA/wEAAv/+/gD///7///8AAP7//wD+/////v/////+//8A/v4AAAD+AAABAP4AAAEBAAAAAf/+/v8BAQL/Af4BAAAA//8CAgL/AQEBAgIA//4A//8AAAAAAAAAAP////8AAAAAAAAA//7/AQEAAP8A/wEBAQEAAAEAAP////8AAAD/AP8B/wD+/v7/AP//////AP///v8AAP8AAAH/AQAA//8AAQEAAP///v//AAAAAAD+//8C/wD+///////+/v3+/f3+/f0AAAH///8BAgEAAP///v4AAAABAQL/AP78/f8DAwIBAgIAAQH+/wAC/wL+AP////8BAQABAQAA/wD+//4CAQMFBQYCAgP8/Pv8+/r6+fn8/f0E/wD/AAAAAQD/AgMC//4BAQEABAUFCwwM/v3+CwwOCAkI/Pr6+vj69PTyBwcH+vr7CwsK9vb1//4AAwIEAwQD/vj4AQEDAQAB/wD+/f3++fn5//7//v/9/P4A/wD+//79+vr5/Pv6/v7//f39/wD/9vX0CwwB+/r59vT0CQkKAP//AQEA9PX0AP8A/f37/wD/AAABAwQDAf8B+/r6BAMCAgED/v79+/36/AMDBgYFAwQEAP//AQEBAgMDAP///wAB///+AAEBAgIEAQD/AQEBAgIBAwEEBAQDAwUEBwcHBQUGAQEBAQAA/wD/AQEBAAAA/v39/v7+/v7+//7//wD++/z7+ff4+vn4+Pn5/Pv59PLx6ejp8O/v8vHy/v3+BgYH8/T27vDx/wD/AP8BAAAA+/r6///+BQQF+Pj6AgMD+fv7/P7+/Pz9/f7+/f7+AQEB/Pn7AAEBBQUF//8A/Pv+BgYDAwUEAQAA//8B/v79/v79/AH+AP7/AwIB+gD8//79AgAAAP/7AAEA/f39/Pv79vf1/P38BgkKCAoLAwMDBQABAf8C/QH/AQEAAgEB/wAB////AP8AAQICAQECAQEBAgEDAQEB//8AAP//AQAB/v//AQABAAD/AAAAAQAB/wAAAQEBAQAAAQEB/wD//v8A/wD/AAAAAAAAAAABAAH/AQEB/wEAAgEBAf4C/gEA/v79/wD/AP//AQID/gD/Av//AP//AQABAAEAAP7+/f4A/gL/AwMDAAD/AQEAAP8A/////wD/AAAA//8AAQEAAAAA/wAAAP/+AQAA//8BAAEAAgICAQAA/wAAAAAAAAAA/wAAAAEAAP7/AAD/AP/+AP8AAAH/AAAAAQAAAAEB/wD///4BAAAAAQD//v//AAD//v///wD////+/v39/v78////AAABAAAA/v7///7+AP8A/wAAAgL//f7/AAD+/wADAwICAgABAAD+/f79AQECAP7+AQAAAgMC/v/+Av4CAQEBAQMDBQcJBgf6+vn5/v/+AwMDBAEAAf8A/wAAAAAAAAABAAABAQICAwkKCvz7+w0NDv/9/f39/P39/wcHCPb19vb29AkKCvn5+v7+/wQFBQYFBf37/AAAAQIEA/79/P////n5+gUFBP7+/wD+/QECAQMDAvv7+vr6+gICAvf49wIAAgEA9QUFBv79+/X19A4PEPz+/ggHB/38/Pb29f7+/AEBAQUFBQUEBAICAgQICAgHCgEDA/0AAPv5+vn5+Pn6BQwMCgQEBQYGBwIDAgUEBQABAP8AAAIBAf7+/gICAwcFBQEBAQABAAECAQUFBAIDAgICAgD///8AAAIAAQAAAP///wMDAvz9+/z8/P/+/vr7+vv4+PX19fX18/Lx8vTz8ezr6+3t7vf2+Pv8/fv6+wQGBfn6+/39//n7+wD///7+/f39/gIAAP//AP8BAfb4+P7+/vz8/AEBAv7//gEBAv39/P7+AAMEBP////39/QMEAwEDAwD/AAAAAQQDBPj8/P7+/gAAAf/+/gMCBAAAAP4AAAIBAv8BAQAA//7/Afz+/gH8/evp6enm5BQWFwUFBQEA//8CAwECAgIBAf8BAgECAgAAAAAAAAH/AAEBAgAAAf/+AAECAQAAAQD+AP4A/gAAAQABAP//AAAA/wABAAEBAQEBAf//AAAAAAICAv8A/wEAAQD/AP///wD///4B/wAB/gEA/wAA/wD///////7+/f8A/gMDA/8A/wD////+AAAAAf3//gIAAQEAAAECAwIBAAAAAP8A/wD/AP8A//8BAAAAAQEAAAEA/wABAf///////v//AAEBAP///gEAAf/+AP8BAQEBAP8AAAEAAAD////+//7+///+/v4A/gAAAAD/AAAAAAEBAP8A/wEAAP8A/wD/AP8A//7+/gEAAAAA//4A/v/+/v///v///v//AAH//wEBAP3///79/v///wAAAAAAA/////7//wAB/wD9/f8C/gD/AAEAAP8B/v79/v///wYBBQEBAf8AAP////8BAQIEBgYICQL39v75+QH//gT+/v3/AQAB/wECAgL8/P3//wADAgACBQQBAAALDAv++/wBAQL5+fkAAP8YGhvr6ugEBAYFBQcAAP8A/woAAf8ICwr+/P0BAwPz8/MGBQUBAAECAgQEAwT7/PsAAAEBAQIBAP76+foCAwH29fYFBQUJCgkCAgAGBgb19PX18/IOEA////8ODg35+fn8+wL5+vgJCQwLCgwEBAUIBwcGBQYAAgIDAgL9/fz6+/sBAAAGBwYGBggEBAMCAgMDAwMCAwIAAAABAQEAAAD///8DAgMAAAD9/PwAAP8DAwIAAP/+//4CAQH//v7///8AAAD+//79/f0A/v4AAP/6+vj19PX39fT29fXr7Ovo5ubl5eUBAQH39/n3+Pn//wH////+9vf/AQEAAQH+/v8A//7//v4FBQQBAAH+///3+PkFBAMAAAD9/f79/foBAgIDAwYAAAEDBAMJCQn8/PwCAQICAgP9/P3+AQH9/P0FBf4CAgIAAAL8/P0BAP8AAAD9/f4AAP8AAQD8/v8EAQD9/v7/AAL///wA9fXq5eQbHiAFBgcBAQkABQEEAAH+/v8BAgAB/gABAQEBAQH+//8B/wABAQABAgL//////v//AAAAAQACAgL/AP8BAAEAAQABAAEA/wD+//4BAQEAAAEAAAAA/wAAAP8AAAAAAQAAAQACAAL//wD//v39/Pz9/f3+/fz+/v3///4B/wAAAf7/AAEEAgH/AP8BAQH//gIBAgEBAQD/AP////4A/gEAAgIAAAD///////8AAAAB/wAAAf///wAAAP8AAAD/AAAAAAD////9//0BAgIB/wH/AP8BAAABAQAAAAD/AAD/AQAA/gEAAP7/AAAAAP///wAAAAD/AQEA/wAAAAD+/v3/////////AAD///3///8AAAD//wD///7/AAEA/wD//v7/AP7//v8AAQH+/v7/AAABAAAAAAABAAD+/f4AAAD//wAB//38/f3+/f8A//8DBAQBAQEA/wEA/gH+/f/8/v4AAQL/AAL8/PsEAAEAAP///v7+AgIC/f38AQIEAQEDAAEBAQEBBQUF/AD/BAQFDA4N/v/8//4SAP///v399ALzDRITDA0M7e3s9/b2AgME//8AAP8BBQYEAgECAwMCBQUF//j4CQgIAQD//P3+/Pz7Dg0P/v8ABAMEBQUGCgoLDQ0N9/b4/wACDQsMBQUFBgYFAAEB/P38AAAAAwIBDQ0NBAQGBwYF//4AAQIDAQD/AQIB/v8AAgICAwICAAD/AQEDAQEAAQICAAEAAQECAQABAQAA/v7+AAD/////BAQH//79/f/+AP//Af8AAAD//v39/Pz8AgIC+vr5/f78/f3++fb3+fn39vT07+7u5eTk4+Pk9PT09/f3AgIEAQME+/3//Pz8BQUF/P4AAwMBAQEC/v78AQH/BAQEBAUEAwID+/v7/vv8AAEB/v7//f39/P3+Af3//v/7AgEDBgQFAwMD+/v6AgMDAgIBBQYH+vr8BQUC/P38BQQF//8AAwMD///9+fr6AgIBBAMC/f7+AgD/AggHAQD//f3+/v7+//397u3u5uPjCAkLBQUFAwME/wH+AQEC/v7+AAD+AQEBAQABAQIDAAABAgIB//7/AAABAAAAAgEBAAAB/v7+AAAAAQICAP7//wAAAAAAAP8AAAH/AgECAAAAAAD/AAH///7/AAABAAEBAAAA/v/+/v79/f39/vz9///+//7+AAEB//8AAQAAAgEA////AAEB/////gD+AP8B/v3/Av4C/wP/AQECAf8AAQEAAP////7+AP///QD/AgECAQIBAP8A/wAA//7/AQAAAAEBAQEBAf8AAAEAAP8A/v/+AAABAQEAAgAA/gAB/////wEBAAAA///+AAEBAQAAAP8AAQAA/f7+///+/v7+AP8AAAEA/////v79AAAA/v////7//v//AQEB//3+AAAB/wD/////Af8AAAEAAAAAAAAA/////v79AP8AAAAB/f/+/f3+/vz89/78CAYIAAIBAgECAAEBAgMBBAUGCQkK9/X2/P/7BP/9/f8AAQEB/wEBAP7+/gD/AAAAAAH/AAEBAgICAQQEBQICAwgHCP4NDgUFBQUFBQUFBAwNDQAB/w0MDAkKDPr4+AcJCfv6++/w7wUFBf79/AIDA/7+/h4ODgUEAwQFBP38/Pj4+AkJCRr9/gkICQMEBAUFBgoLCwkJCPz8/QYGCAICAQQGBgIBAQAAAAICAf7+/gIBAgcIBwEAAgAA/wAAAQD//wECAgECAwICAAD/AAABAAABAgD//wEBAQAAAP///wEAAv4A/gIBAf79/QD//wAA/wEBAQH+/v7+/gD//wACAf/+/gD///38+/39/Pn5+P/9/ff29Pb09Ozr6+fm5+Pj4/Lz8/z8/fr6/f4A/QEC/gYGCPz89wABAwgHBgMEAwEBAgH/AAICAgIDAAgHBvv6+/39/v8AAP39/vr6+vz8/P7+/wYFBQD/AAEDAf7+/Pf39gICAv7+/vv9/QH8AQQDBP///wH+/QIDA/37+QQEAwEBA/79+/7+APv++wMCAgQEA/3+/QUFBAUDAvz7/P3+/Pz9+/Lu7fPx7woLCgIBAv8EBAMCAv8AAAECAgAAAAEAAAD9/gABAQICAwICAgEBAQABAf///wEBAQAAAQICAP78/gEBAQABAf8A/wD/AAEAAP3//QD//////wAAAAAA//8AAAEBAAEAAv7//f79/v39/f///gH//wEBAQAAAQAAAP///wABAAD//wD//wEBAQAAAP7/AAH/AP8D//z8/QIC/wEC/gEAAQEBAgAAAAABAQH/AAAAAf/+/////wD/AP8A/wACAgIAAQD/AP4A/wH///////7//gEAAP8AAf///v7+AAAAAf/+/wEB/wD/Af/+/wAA//8AAP////7+/v8A/wH//v7//wAAAP///v39/v///v7+/f/+/gEBAf/+AQAAAP7//v///wAAAAAA/wAAAf7//wL//////wAAAf7//gD///////38/P/9/QD9//0DBAH+Av8C/wECAgEBAgQEBQAJCwsO+/3w/QT9+/wBAQL/A//9/wD+/PwABAQAAP/+/wAAAP8DAgMCAAEBAwMGBwb/AP8IBwcLCwv9/f4EBAQFBQQICAgQEBD8/v0BAQH7+vwWGBf9/v4EAwT//wAHBwYEBgQBAQIHBgUAAAD+/v75+PgFBgYDAwMFBQcCAgECAgMHBgUBAQIBAQH//wADBAMAAAAAAAABAQD///8BAQICAgL//wABAAD///8AAQECAQEBAgIA//8BBAIA/wD/AAABAAD/AAABAQD//wEA/wABAAECAP7//v39//4BAAD//v7///7+/v0BAQIBAAACAgH+/QD9/Pz8+vn7+Pf39fXv7u3s6+zo5+fn5+jy9vUA/wH7/Pz/AgH8+/7//PsDBAQODw///v8AAQIHBgYFBQQCAAD///wKCwkBAQH8/P37/f0A/v/9/f36+vkAAAECAQMAAQH9/f39/f0ICAgGCQUBAQH6+/wFAQMFBAQBAgIA/wEBAQH/AP8AAAAA/wEJCQcAAAf29vX//wD/AQEAAQL7+/wAAf8FAwQAAP//AAD5+fnr6ugHCQgGBQYCFgEHCAr/BAMBAQIA/v4AAQEBAAD/AP4CAQL//////wMCAgIBAQEAAQEAAQAAAAD+/gAAAAD//wAAAf//AP8A/v8AAP8AAP4AAAAAAAD/AP/+/f7//v4CAgIBAAD+AP/+/v4A/v7+/fwAAP8AAQECAQEAAQEBAAEA/v//Af8BAQH+//8CAAAA/wAAAQD9/v4CAQD+/gAB/wECAQL/Af0BAAEAAQABAAH//v4AAP8AAAAAAAEBAAH//v7+Af///wABAQAA/wAA/wD/AP/+//8AAAAAAAAA////AAAA///9//8AAP7//v8AAAABAQD//gAAAQEBAP///wD///8AAf////////7///7///8AAAAAAAEAAQD9/v7//////wAA///9AgICAAD//v79AAEB//8BAQECAQL9//3//wD/AP/+//4CAf/+/v4BAgAA/P0CAwQAAQEBAQD/AAAEBQQFBQYE/Pz6AQACA/8EAwP///7//Pz7BgcG/wD/AgICAgQE/vz8AP//BQUGAQEBAAD/AP///P38CQgIAgICBQUE+vr4AgIB//8B+vv7//////7/BAUF/f7+BgYFAwMCAgICAwICAgICAAAA/f39AQEBAQEBAwICAAABAQIBAgECAgICAP8AAAEAAQEB////AAD/AAABAAABAgEB/wD/AAAAAP//AgMCAAABAQIBAP8A/wAAAP3+AQICAAD//gAB//7+AQEBAQEAAAEB//z+/f38+vr5/Pz7AQAAAQIAAP7/AP///P35AAEBAQEB/P39/Pz79vTy7erp9/b27e7v4+Hi7e7u9ff3+vr8AAAC/wEBAwMEBwkI9PP1/P39EgwOAQEB9vX0DA0L9fX2BggHAwEGBQUDAgID9PX0//7+AAAA/Pz9/v3+AwMEBwgH/v7//P36BAIDAwMDAgECAAEBBwYIBwgJ/////P38CQkJ8/P0AwIEHBwX+/v59fXy+fn3AAEAAQAB//7//Pv7BAUCCAcJBAQD9fX1/v8A9vb3/PzpCgsLHiAiAAACAAAB/f3/AAH8AQEBAgICAAABAAEAAAEA/v/+//3///8DAgICAgICAP7/AQEC/wEA//8A///9AAECAQD////+AP/+////AAD/AAABAAAA/f38/v79Av4DAQEC/wD///7+//7/AAAAAAAAAf///wD+/v8BAgECAgICAP////8AAP///gH/AQABAAICAP///f8AAQIAAgIB/gAAAf8B/gD/AgECAAD////+/v7/AQEAAQICAP///wD//wAA//8AAP4BAP//////////AQEBAAD/AAAA/wEAAf8B/////wD/AAAA//8AAQEAAP8AAAEA///+AP//AQAAAAAA/v7////////+/f7+AP//AP8A///9//8AAQEB//////7/AAIAAQEAAwME/wD8///+//0B/wD+BQMF/////v79/f38/fz8AwQCA/79AQD+//8AAQEBAQEE/v7/+/v5//7/BwcHBAH///4A/QD+AQAAAQD//v39/f/+AP8A/wAAAAIBAQIEBPz8/P7//gUGBP//AAAA/wYABvsE+v8AAAMCAggDCgEBAAICBAf9/Pz8/AD/AAMFBQD/AAMDAwIDAQD//wEBAQECAQD/AAYGBv7//wEAAQAAAAEBAAEAAf///wABAQICAP7/AAAAAAEBAP8AAQAAAQEBAAAAAAD/AAICAf//AAEAAQABAQD/AP8A/wAAAP3//wL+/QAAAv///gACAQAAAP/////+/v7+/P///QEB///+/AECAv78/fv7+wAA//////z8/QICAf/+/fb19O3s6+bl5fr6++3s7vDy8v7+/wQEBP7/Af8AAfz9//7+//7+/g8PDvn5+vr4+AwNDf39/gD/APTz8woJBwgKCAICAQQEA//+/wEBAQICAvv6+wQEBAUFBgUFBP39/wL6AwMEBQ0ODvz9/Q8PDw8QEQQEBfT19P79/vn5+RQVFQIBA/f39+7u7gD//QAAAP79/QEAAAIBAf8AAgEBAQABAPr6+QAAAP39/f7//wICAQYHBQD//gD///3+/gECAQH/AP8BAAAA/gIBAgEBAQAA/wAAAQABAf8A//7//v/9//8A/wEAAf8A/wAAAAD//wICAgAAANPgIFgAAAEkSURBVP8AAAAA/gH/////AP8A/f////8AAQD/A/7//wEB/gEBAAAAAP8A/wAAAf////4A/wH/AAAA//8B//8AAAD///8AAP///v8BAAH/AQD+AgEBAQH/AAH////+Af8A/QMCAgABAQAB/wAAAAAAAAABAAD////+/gABAP///wD/AAEAAf///v//AP///wAAAP7//wEAAAAA///+AP8A//8A/wEAAAEBAQAB/wAAAP3+/gAAAP///gAA/wAAAAAA/wD/AAH/AAAAAf/+/////gD/AP//AAAA/wECAv///wABAAEAAf//AAABAAMCAv7+/////v//APn6+v7//v7+/vv7+//+/gH9APwB/AABAQICAf0BAQECAP///v/+/wMEA///BVHLdv5Qlz5SAAAAAElFTkSuQmCC\\n\",\n      \"text/plain\": [\n       \"<IPython.core.display.Image object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Time elapsed: 0.209\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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AAAA/wABAP8BAgIBAP8B/QEAAP8AAAABAAAAAQABAAAAAQABAQEAAQEAAAEAAAEAAQABAP8A//////7+/f3//v7+/v/+/v7//wAA//////8AAQADAAEBAgACAwICAgMBAQIAAgEAAQIBAAD/AAACAAEAAQEBAQIAAP//AAABAAEAAQEAAAAAAQEEAwQBAAMB//7/AAABAgMAAPsBAAD//v8A//79/f0AAQD+/v4CAgP9/f3+/f0BAwMEAwQA/gD18/T+/gEICQkBAgMEBwYICAj+/v4BAAH8/f4AAAADBAP//wMCAgMBAv8DAQX9Af3+/wD9/f//AP77+PcBBAP+/v4BAwINDhQS9/Tx8OcAAP4AAQD/AQAAAQAAAAEAAf4A/v4AAQEA////AAD/AP////8A/v7+/v7//f/+/v////7+/v7+//8A/v////8BAAD/AAAAAAAAAAD/AP8BAAD/AAEAAP//AAABAAEAAP4AAAEAAAAAAAD/AP7//wEAAP8A/wD/AP8A/gABAQAAAAD//wAAAP///wAA/wAAAQAB/wH/AAAAAP8AAQEAAAD//wEBAP//AAABAAH/AP8AAQD/AAEBAAAAAAABAQEAAAAAAQAAAAEBAAAAAAAAAQEBAAABAAH/AQABAAAA/wD/AAABAQAB/wEAAf8A/wEAAAAAAAD/AgAA/wEAAQAAAAAAAAAAAQD/AP8BAAH/AAAAAP8AAAABAAH+/wABAP//AAABAAAA/wAAAgD/AAAA/wAAAP8BAAH/AQAA/wAAAAAAAP8AAAD/Af8A/wEAAQAAAAD///8CAQIA/wEAAQEBAQICAgIAAQD9/f39/v/+//8CAQAEBAQFBgYEBgYCAgH//wH//wAGBwcHBwgHBgYEBAQBAAEEAP////3+/v39/v7+/v7+//7/AAL//wAAAQEBAQEBAgEDAwMCAQIDAQAC//8AAf//////AP8CAAEAAP8AAAEAAP8AAQAB/wEAAP8A/wEAAP//AAH/AP8AAAAAAAEAAf8B/wAAAAD//wAAAAAAAf8AAQEB/wEBAQABAAEBAP8AAAEBAQABAQAAAQEAAQEAAAABAAD/AAAAAP8B//7//f79/v3+/v39/v3+/v79/f7/AgP/AQD//wEAAAEBAgEBAAIBAQICAQEBAf8B/gH/BAABAAEBAAACAAEBAQABAQD+AQEAAQIBAP8BBAMCBAMDBAIEAwYB9vb4AwICAAAB//8A/Pz8AQD+////AQAA/v3+///6AP8EAgQFAQID+/r6BgUGCQoL/f/+9/f2AwQEAvv59vPw/v//BwYJAgAC/f7+/QkICw0MAwMC/f3+//7/AgME//7+/v//BgUF/P38Av/+AQIE/v39BAUHExMb9vXv/Pz2/wD/AP//AP8AAAAA//8A/wAB///+AAAAAAD/AP8A/v7//f8A/v7+/v7///8A/v8B/v8A/////wAAAAD//wAAAAAAAAABAAH/Af8AAAAAAAD/AAAAAQAAAAD/AAABAAAAAP//AAD///8BAAD/AP///wAAAAAAAAAA//8A/wAAAQAA/wAA////AQAA/wACAAH/AAEBAP8B/wD/AP4BAAEAAAAB/wEBAAD//wAAAf8AAAEA/wAAAAAAAf8AAAAAAQABAAD/AAEBAAAAAQD//wABAAH/AQAA//8AAAAAAQEAAAAAAAD/AP8AAAEAAAAA/wAAAf///wABAQAA/wAAAAAAAAAAAQABAAAAAf8AAAAB/wEAAP8AAAD//wAAAQAB////AAEAAP7//wABAQH/AAAAAAD/AAD/AAABAP//AAEBAAEBAQABAAEAAAD/AAABAQAAAAAAAAEBAgABAQICAQIBAwIC///+/Pz6/Pz7/P39AP8AAQEBAwIDAQMCAP8AAwQEBQQFBwcGBggIBQcHAAIBAv///v7//v3+/v39/P/+/v////8AAAEAAAABAAACAAABAAECAgMCAwACAv8AAP8AAP8AAAEAAAEAAP8A/wD/AAABAAAAAP8AAAEAAAAAAAAAAAAAAQABAAAAAAAAAAAAAAAAAAAA/wABAAEAAAABAAD/AAAAAAAAAAEAAAAAAQAAAAABAAEBAAEAAAEBAQEBAAEAAAAAAAAB/////v7+/f3+/P39/P7+/f3+/v7//f7+//7/AAD//wIAAQECAQICAgIBAgAAAQAA/wIAAQECAgEBAgECAQAAAf8BAAAAAP8BAAAAAAIDAwYFBwEAAwECAwQFBQcGBfr6+gICAgD+/wEB//v6+v///wD/AAIAAQIAAf/9/v36+gQBAgcHCP7+/vv8/AkKCggKCf39/QD//wUGBwUFBvr5+Pv7+AgHBgcGB/39/vj4+fz7/AICAgMFBQMEBAQFBP79/f36+vz6+QD+/f38+/r5+QYGCQ0PFf7+AP///wAAAP//AP8A/wAAAAD//wAAAQD/AP//Af/////////+/v7+//3+/f//AP//AP//AP//Af8AAAAAAP8AAAAA/wABAAAAAQAAAQAA/wAAAAAAAAAAAAD/AAD/AP8A//8AAP//Af8AAP////4AAAD/AP//AP///wD//wD/AP8AAAD/AAEBAQABAQAAAAEAAQEA//8AAAAAAQEBAQEBAQAAAAD///8A/wEAAAAAAAD/AAEAAAEAAAABAAEBAAAB/wABAQEBAQEAAAABAgEBAQAAAQAAAQEBAAECAQEAAgEAAQECAQECAQECAgEBAQIBAQEBAgEBAAABAQEAAgAAAQAAAAAAAAABAQABAAABAAH/AP8AAAAAAAAAAf//AP8BAP7///7/AAAA/v/+/v/+//7+//7/AP3+/v8A///////+/v///v8A/gAAAQAAAAEAAQABAAEBAAECAgIBAgMCAwICAgEBAf38/P38/f38/f7//gEAAQEBAQEBAgEBAgMCAgYGBQcHBgcHCAYGBgEAAgT////+/v39/fz+/f39/v3///8AAAAAAAAAAAABAAECAQEDAQMCAgQBAQIB/////wAAAAAAAP//AP8BAAH+AP8AAAAAAAAAAP8AAAABAAD/AP8BAAAAAAAAAQH/AP8A/wD///8AAAEAAP8AAAAAAAEAAQEA/wAAAQAAAAAAAQAAAAEBAAAA/wEAAAEAAAABAQEAAAEAAAAAAP//AAD+/v7+/v3+/v79/f3+/v3//f//A/4BAAEBAQACAgECAgMDAgMBAwIBAgEA/gEBAQEAAQICAgEAAAIAAgD//f///wD//wAAAAABAAEEBAUCAgQAAAIAAAEEBgX8/f3//v/+/v4CAAMFBAb+/v0BAgH+/v4CAQECAQP+/v75+fYEBQYDBQMCAwT9+vr/AQEGBQYBAgP+/v4ICwsEDAP//v/7+/z29/UCBAUFBAQB/wD6/f3/AP8BAAAFBAT8/v4CAQH+/v/++/wDBQgDAwb+//8MDBLw7en+/PX+/wAAAAD///8AAP//AP//AP/////////+AP/////+/v7+/v7+/wD+/v/+/v7///7+////////AP8AAAD/AAAAAP8B/wH/AP8AAAAA////AAAAAAAA/wD/AAAB//8AAAD//wAAAf//AAEAAP//AAAAAAEAAAD/AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEBAQAAAAAAAQAAAAEAAf8AAAABAQAAAAABAAEAAAAAAAAAAQECAQEAAQAAAAAAAQECAAEAAQEAAQAAAAAAAAAAAAEA////AQABAAEAAAH/////AQABAAAAAQEAAAEAAP8B/gH/AAAAAP8BAAH/AAEBAQD+//8BAQH//wABAv8A/wEA/wD/AAAAAf8AAAAAAAEAAP///wEAAAAAAP///wAAAP8B/wH+//8BAAAAAQAAAAAB/wD/Af4BAQEAAQEAAQAAAQEBAQEBAwEDAwMEAwMCAwP+/v78/Pv7+/v9/f4A/wAAAQEBAQEBAQACAgMEAwMGBwcHCAcGBgf/AQAE//////79/v79/v78//7////+///+AAACAAAAAQABAQICAQMCAAMDAAEB/wAB/wAAAAAB/wAAAQAB/wH/AQAA//7/AAD/AQEA/wAA/////wAAAAAA/wAA////AP8AAAAAAAAAAQAAAAABAAH/AQAAAQD/AQAAAAAAAAAAAQAAAQAAAQEC/wH8AQH/AQEAAAAAAQABAAAA//8A///+/v7+/v39/v79/v/9///+/wD+AAAAAAEAAQEAAQIBAgICAwQEAgIDAAABAAABAAEBAQABAAADAAD/AAAAAQIAAf8AAQEB/wABAAAAAgID/v4AAAEB/wAAAwQHAgH6/f36/Pr5/Pn5AgIBAgMC/fz8AQD//wAD/wEB/wAAAgAAAP7+//0BAgMAAAABBAMGAgQE/v///v7/+vX3/AQEBQgICQ4LAgEC/fz9AQEBAQEB///+/vv7+vn5AAD+BAQFAgIDAgIBAQEC//38Av4F/f4BCAkMCw0P8u/1AAEAAAAAAAAAAP8AAAABAP///wEBAAD/AP7//v7+/v///P3+/v7//v7///4A/v7/AAD//wD//wAA/wAAAQABAf8A/wD/AAD/AP8B/wAAAAAAAP8A/wAAAAD///8AAAEA/wAAAP8A////AAAAAAAAAQD/AAAAAAAAAAEAAAAAAAAAAAEAAAABAAAAAAEAAP8A/wABAQAAAAAAAQEAAAABAAAAAAEAAAAAAAAAAQEBAAAAAQEBAQEAAQECAAAAAQEBAAEAAQAB/wD/AQABAAAAAAAA/wAAAgAAAAAB/wD/AP8BAQAAAAEAAQAAAP8B/wAAAAIAAf8AAAEB////AAEAAf8AAQEBAAD/AQAAAQABAAH/AAABAAAA/wAAAP8AAAH/AQAB/wAA//7/AAAAAP///wAA//8AAQAA/wD/AAABAQD/AQAAAQAAAP8AAAIAAf8BAAL+AAECAgEAAgMBAwQDAwEB/v79/P38+/r7/f39/v7+AP8AAQAAAAAAAQIAAwQEBQUFBwcHBgYGAQACBP////7+/f78/P38/f7+/f/+AP///wEA/wAAAAEBAQIBAgICAwIBBAABAv//AP/9/wAE/wH/Af8BAAAAAQAA/wABAQD/AP///wAA/wEAAAAAAP7//wD//wAAAP8AAAAA/wAAAP8AAAEAAP//AAABAAAAAAEBAAEBAAAAAAEBAAAAAAEAAAEBAgAA/gAAAAAAAAABAAH/AAAA/wD///8A//7//gD//gD//wD/AAAAAAABAAEAAAECAgMBAgMCAwMCAwECAv8AAP8AAAL/AP7//wAA/gEBAQAAAf8AAf4BAQABAQABAQIBAgUBBAD+AQQCAwACAv7//wICA/j5+gEAAAH//v/9AP7//v///QABAQECAgIBAAMCBAEBAQICAQICAQEAAAIEA/0A/QEAAwQFBAEBAv3+//39/gL7+/4EBAEDAwMFBf7+//z++wYFBgEAAQEAAP79+/39/AEBAgD//wD+/gP9/vv49wMKCf8CAgwNEfDu6AAA/QAAAAD/AP//AAAAAAD/AAD+///+AP7//v7///39AP7+///+AP//AP3///7////////+AAD/AAEBAAAA////AP8AAAAAAAAA/wD/AP8AAAAAAAAAAP//AAAAAAD/AAAAAAD/AAAAAAEAAAABAAD/AQAB/wD/AQAAAAEBAQAA/wAAAQEBAP8AAAEBAQABAQEA/wAAAQEB/wD/AQEBAP8AAQAA/wABAQEAAAEBAQEAAAEBAQABAQEBAQIBAf8AAAEBAQAAAAEAAQEAAQAA/wAAAf8A////AAEAAAEAAf8BAAEAAP8BAAAAAAH/AP7/AQAB/gD/AP//AAICAf//AAABAAIAAAH/AP8BAAAAAAD/AQAB/wD/AAAAAAABAAH/AP8AAAEA/wABAf8A//8AAQD//wAAAP8A/wAAAQD//gD/Af8BAAEAAAEAAAD+/wMAAQACAgAAAAAAAAH//wMCAQIDAv////37/Pv7+/38/f7//wAAAP8AAAEBAQEBAQICAwYEBQcGBwYGBwMEAwT+/v39/v39/f38/vz+/f3+//3//wD/Av8B/wEAAAABAQIBAQIBAgIBAAL+/wH/////AP//AQEAAAAA//8AAAAAAAD/Af8A/wH//wAAAP///wABAQD//wH///4A//8AAAAAAAD/AAD///8AAAAA//8AAAD///8A//8BAQAAAAABAQD/AP8B/wABAAEBAAEBAAABAAAAAAAAAP8AAP///v8A/////wD/AP4AAf8AAAABAQAAAQIC/wICAwIDAwICAwMBAgP/AQH//v/9AP/+AgED/gEBAgAB//8AAAEAAQIAAQABAgACAAH6+vwKBwkAAQIA/gD+/v4CAQEBAQEBAAACAwP+/f0BAAAEBAX8/vv5+vcF/wcAAv0FBQYCAf39/v38+/wE/f3+///7AfgCAwUFCQcBAgMFBgUDAwMAAAD5+/gBAQEJCAoDAAP5+fgEAgMAAgIHBQn5+fn//f3+/gD+//sBAP4BBAUA/QX+AgALDhMKDRL28uwB/wAAAAEAAAAA/wAAAAD/AAD/AP///wD+/gD+/v/9/v/+/v/+/v/9/v7//wD//gD/AAAA/wD/AAAA/wAAAQD/AAAA//8AAAAAAAAA/wH/AP8AAAAAAAEBAAD/AAAA//8AAAEBAQEBAAAAAAD/AgAB/wEAAQEBAQEAAQAAAAAAAQIBAQABAAAAAAABAQEA/wEBAQEAAAEAAv8A/wEBAAD/AAABAQIBAAAAAgABAAEBAQAAAQICAQEBAQEBAAEBAP8AAQEBAAAAAAAAAAL///4BAAH/AAAAAQAAAAABAAAAAAABAAAAAAAAAQAC/wAA/wL/AP8AAf8AAAEBAAD/AP8CAAH/AAEBAP8AAAAAAP//AAEBAAAAAAAAAAAAAQEB////AAEAAv8A/gEAAP//AQEA/////wAAAP8AAAAAAf///gABAf8BAQEBAAH+/gAC/v7//v0A/wMAAAABAAECAAH//f76/Pr5+vn6+vn9/fz+//4C/wIAAAAB/wECAQEEBAMHBwYGBgYFBgYE/v7//v7+/f79/f38/f79/v7+//////8BAP//AAEAAQEAAQICAgIEAgME/wICAAH+AAAA/wAAAQAA/wAAAAAAAAAAAf8A/wD/AAD/AAAAAAEA//4AAAAAAQEBAAD///8BAQEAAf/+/wEA//8A/wAAAAABAQEBAQEBAQEAAAAAAAEAAQAAAAAAAAEAAQEAAQEBAQD/AQEA/wAA//8AAAAA//7////+AP8AAP8AAQEAAP8BAgIA/wECAwMCAwQDAgMDAQMD/v4A/fz9/gMAAwEB//8BA/8CAQICAAEAAQAB/wAB/wABAwMFBQQFAwEDAAAA/P39/f38/Pz9AQEBAgID/P8A/v//Af7//AH9AQEABAUFAgEAAgQD///+/v0ABgcG/P3+/fz7AQEDAAH9/wEA+PX8BwkJ+/7+/QL7AP38AQEC/f798vf3AwMFBAUEAQEB//z9+/39AQAB/v///v79+/r6/AMBBwsC/Pr4AwEIAAEGFBcf5vf0+/71AAAA/wAAAAD/AAAAAAD/AP8AAP4A//7//f39/v7//QD//f///v7+/v///v//AP4AAAEAAAAAAAD/AAAAAP8AAAAAAAAA/wAAAAD+//8BAQEAAAD//wEBAP8AAAEBAQEBAAABAAD/AAABAQEAAQEBAQAA/wEBAQAAAAABAQEBAAEAAAEBAQAAAQAB/wIAAf8AAAEBAAABAAH/AP8AAQECAQEBAAABAQH/AAABAQEBAQEBAAEBAAEAAgEBAAACAQD/AAAAAAABAAABAAAAAAAAAQH//wAAAAAAAAAAAAAB/wD/AQAA//8AAQH//wD/AQEAAP8BAAAA//8BAQABAAABAQH/AAAB/wD/AQABAAAAAAD+AAABAAAA//8AAAEAAP8AAAAAAAEBAQAAAAD+AAAB////AAAAAAAA//8A/wD/Af8B/wD/Af8A/wIB/v4A/v7//v7///8A/v/+AAD//f78/Pr6/Pv6+/r7/Pv8/v7+//8AAAAA/wAAAgICBAQFBwYGBQUFBQUEAv7//f/9/f7+/f39/f39/P/+/v///wEA/wABAAEBAAABAAIBAQIDAgABAwAAAf//Af8A/wAAAAAA/wEAAP///////wABAQEBAAH/AAAA/wH/AAAAAAAAAAAAAAAAAQD/AP///wAAAQD/AAEAAAEBAQABAP8AAP8AAAEAAAEAAAAAAAAAAQEBAAAAAP8BAQAAAAAAAP8BAP8AAP8A/////f/+/gD//wAAAAEAAAAAAAEBAAEAAQEBAQEBAwIBAgMDAwEBAv7/APv+/fv9/vz8//7+//3+//7+//////7//wAAAAH/AQMCAwIAAgD+AAEBAv///v7+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AAAAAAEAAP8AAAEBAQD//////wABAAEAAQABAAAA//8AAAAA////AAABAQH//wABAQAAAf//AAABAQEBAAD//wAAAAAA/wEA//8AAQAAAAEAAP8AAAH/AQEBAAAA/wH/AP8AAAAAAQEB/wH/AAAAAP4BAAAA//8AAAAAAAAAAQD/AAABAAAAAAEAAP8AAAD//wAAAP8AAQAA/wAAAAEAAP8AAQAAAAEBAAD/AAABAQAA/wAB/wD/AQD//wACAQEBAQEBAQEBAAABAQIBAQICAgICAgMDAQECAAEA/wD//v79/P38+fn5+vv7/P39Bf79/gEAAQAAAAAAAwIDBAYEBQUEBAQFBP///v////7+/f3+/P79/f7+/v7//gL/AgABAQABAQEBAAIBAQICAgECAf8AAP7///8A/wAAAQEA//4A/wD/AAABAAD+AQAA/wAAAAD/AAAAAP8AAAD/AAAAAQAA/wAAAAD/AP//AAAAAQAB/wEAAf///wH/AQD/AQAAAAAAAQEBAAAAAAAA/wAAAAAAAAABAAEBAQD//wAAAAD///8A//7+/v/+/v7+/f/+/wEA/wD/AAAAAQABAgIAAgICAQICAgECAgEBAf39/gEA/QEBAQABAAEBAQEA/wIBAf8B/wL/AAMDAwMAAQICAwEDBQMDAgEBAgEBAQICAwICBAgJCvb8+v/9/AH//wUDAgD+/wEC/wP///8AAv79/v8A/QD+/gMDBAQDAwUKCgcAAf8A/wYHBvn4+vr6+vf29Qb8BwUIBgABA/8CAAUEBfr6+/78/QYHBwoOD/j08/v6+wQGBgH/AP38/AL//wMBAQH////9/v/+/wQBAhMTF/Py7PLv+QD//f8AAP////////7+/v3+/fz9/f3+/vz9/vz+//z+//3///8A/wAAAAAAAAAAAP8BAAAAAAD/AAAAAAAAAAEAAAAAAAACAQEAAAECAP//AAEBAgAAAAABAAABAQABAQD//wAAAAAAAQAAAAAAAAAAAAABAAAAAAD/AP8BAQEAAf8A/wH///8BAAABAQD/AAEAAAD//wEBAf8AAAEAAQABAAAAAP//AAEBAAAAAAABAQABAAAAAP8AAAABAP///wD/AAAA//8AAQAA/wAAAgEAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAP///wEBAP///wAAAQEBAP//////AAAA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AAEAAAEBAQEAAAEAAQEA/wIA//4AAQEBAAAA/wAAAP/+/v7+/f///////v7+//8C/v//AP///wAA/wABAQECAgEBAwEBAv8AAAAAAP///wD//wABAAAAAP//AAIAAf//AP7//QQCBgICAQD+AP7///37/fr6+AoJBwcHB/b7+QIDA/v7+gIBAAABAQD/AP/9//0B/v///QAA///7+/n+/wAEBAICBQQEBfv3+PsAAQMNBAEEAAABAPPx8fP19xAUEwUKCggGCf//AQEAAQABAQUGBPr49wMEAf/9/fv5+v38/AIDAv/+/gD9/AICAgH/AAIAAP38/QsMDgcIDPf08AAAAAD////+//79/f39/vz+//3+//3+/vz///7//v8AAAAAAAAAAP8A/wAAAQEAAAABAAEBAQEAAAEBAf8AAQEAAAAAAf8AAQEAAP8AAAEAAQABAAAAAAAAAAAAAAAAAAD/AAABAQAB/wAAAAAAAAD/AAAAAAAAAAABAQEAAP8A/wD/AAAA/wAAAQEBAQAAAQAB/wAAAQABAAD///8AAAAAAgH/AQACAQAA/v//AgABAAAAAAAAAQABAAEBAQAAAAAAAAEAAgEA//8AAAAAAAAAAP//AAAAAAAAAAD///8AAAH/AP8AAAD/AAEBAP8BAQEBAAH/AP8A/wABAQEAAQEBAf/+/gEBAQABAAEAAQAA/gIBABAPDBkXExkYFBQVERAQDgUCBQD+AQD/AQEBAQD/AP3//wECBAAAAPz69/39//3+/P79/QUEBfz8+wICAgICAwAA//z8+v39/fz5/Pr49/j29fj39x8iJQ0OEgIBAf7//wICAgUGBgcHBgQAAP8AAP7+/v7//f7+//79/v3+/v8A////AP8A/wAAAf8AAAECAgMAAQH/AAL+AAH/AP8AAAAAAAD/AQEA/wAAAAD/AP8AAAAAAAAAAAABAP//AAEAAP4AAAAAAf8B/wD/AAABAP/+AAAAAQD//v8AAQAAAQACAQH9AAEBAAAAAAABAQEAAQEBAQABAgAA/gABAQEAAQABAAEAAAH//////v7+///9/v7+/v3+/v7///3+/wD///////0AAP8CAQACAQECAgIBAQL/AAAAAAAAAAD/AP8AAAD/////AQD/AP8A/v4AAAEBAQEDAQH+AgIFBwf9+/wA/f759/j/AP8FBQf8/wAHAQL89/X//v0FBAQA///9+/z/Av8BAf8AAAEEAwMFBQUFBAT6/PwDBAP//gD8+vr++f79//8ICQn9/v3w6ekGCgwICwwLDg8AAwP/AAD+//7/AAD9/f7/AQIEBAb8+/v9/fwCAgICAv8BAQEBAP/+/fwB/PoDAwMKCw/w7+cA/AD+/wD//v79/f/9/v79/v78/f/9/v///v7/AAAA//8AAAAAAP8BAAEAAAABAQAAAAAAAAABAQEBAQEAAAEAAAABAQEAAAAAAQEB/wAAAAAAAAAA//8BAQH/AAAAAAAAAQAA//8AAQAAAAAAAP/+/wEAAP4CAQEAAAD//wABAQD/AAAAAQABAP8AAAEAAP///wEBAf///gABAAEAAQAAAP8BAQEA//8AAQAAAf8A/wEAAQAAAAAAAAD///8BAQECAQH/Af///wEB//8AAAD/AAAAAAEBAf/+//8AAAAAAAD/AAEBAQAAAQAAAAACAQH//wAAAAABAQAAAAEBAQD/AAABAgECAQADAgIODAoUFRAZFxUbGBUUExIIBwcAAAEB/wH7+v3+Af8A/wIBAQH9/f4DAwACAgL7+/sEAwcFBQD+/P7/BAMDAwP9/P4BAAIGBgcAAAH7+/wAAP//AAH4+Pn6+uvW/dH3+PkrLTEJCw3///4BAAEFBAUGBgYE/wAA//7///7+AP/+/v39//7+AAD+////AQD/AQAAAQABAQEBAQIBAgEEAAAB//////8BAP8AAAEAAP7//wD/AQD/////AAAAAAAA/wAAAP8BAAD/AAEBAf8A/wAA/wD/AAAA/wEAAP4AAP8AAQAB/wD/AQAA/gAAAAD/AAIBAf4BAAAAAQEAAAEB/wAAAQAAAAAAAAAAAAAAAAD/AP8A//7+/v39/vz9/f38/v79/f79Av4B//8A///+////AAAAAgIBAwIBAQICAP8B//7///8AAAAA/v///v7+AQEC/wECBAIEAP7/AAD+/f/+AwQEAgQEBwkI/Pr5+fr5CAkHAPv8/wABAAACAAMD//v9/fz9/v/9////BgcGAAAB/gD//P//+vj5BQj4BwwMBwYEAQIFAgQEAgEC9/f59vX2/v7+CgsLAvv69e/u//39DBAQAgME/P/+BAYG/QEA/wAA+/v7BQUIAgD+AAIAAgID//7++/r6Af//AQICBQQIDQ8TAucJAAD2AP/+/v7//v7+/P3+/P3//f7+/f3+/f8A//8A/wABAAD//wABAQEAAAAB/wAAAQABAQEBAAAA//8AAQEAAQABAAABAAAAAP8BAAD/AAAA/wAAAQEA/wEAAP8AAAAAAAAA/wEBAQD/AAAA/wAAAQH/AAABAAAAAP//AAEB//8A/wAAAf8AAAAA/wEAAQD/AAD///8BAAAA/wH/AP8BAQEA/wD/AQAA/wACAAAAAQAAAAD/AAAA////AQECAAAA////AAAAAf8A/wAAAAD///8AAAAA/v8AAP8B///+AAAAAAAAAAAAAAAAAQEBAAABAQEA/wD/AP8BAQEAAAEAAgD/CQkGCggIHh0YJiUiEQ8NCwgJBgYH/fv9/vz+/f4AAQACAgECAgD//v/+AP8BBAECAQIC/P38/Pr7BwcIAAEBAQMB/f7+AQABBQQA/wD//fz+/v/+BAUI/Pz6AAD+//7//v3/9PDv49/dFRcYGhwH//8BAQEABQUEBAQEBAD///7+//7//v3+//7+/P3+/f7+/gD//wAB/gAAAAAA/wEBAAICAgECAgABAQAAAQD//gAA/wD/AQABAAD+AP//AQAA/wAAAAAAAAAAAAAAAAEAAP////8A/////wEAAP//AAEAAAAB////AAAAAAAAAAAAAAEBAQECAQH9AQABAQEBAQABAQEAAQEBAQABAQEBAAEBAP8AAAD/AP////////7//v/+/f79/f79/v/+/v/+/wAA//8A/wAA/wAA/wECAAICAwEBAQAAAP7///////////7+/v8BAf7+/gMDAQMEAwYEBgIABP/9/v3/+wAD/QH//wUFBAD//QH/AAcHCP/9/f7///0AAgEDBP79/AH/AAIBAf36+wMDAwMDBPz7/QACAP76+fbs+QMFBgMGBwAICQEHBwsREAn///39/Pz9/gUJCgL9/fbz8/r6+hAVFAAAAf8AAAAB//4B/wIEA/39/Pr5+wQEAgEDAgIAA/78/QIDBP/+/v/9/g4NEg8QFvf27//+////AP3/AP3+//3+/v7+//7//wD+/////gH///7//wEAAQAAAQH/AAABAQAAAQAAAAAAAgAAAAAAAP8BAAEA/wAAAQAA/wH/AP8BAAEAAAD/AQAAAAAAAAABAAD/AAEA/wD/AAAAAAEAAAABAAD/AAABAAABAQD///8BAAEAAf8A//8AAQH///8AAAEAAAABAAAAAAD//wAAAP//AAAAAAABAQEAAAD/AP8B/wD/AAAA/wAAAAAA/wAAAAD/AAABAP///wAAAAD/AP8AAAAA////AAD//wAAAP8A/wAAAAEBAQAAAAABAAD+AAAAAAAAAQEBAAEB/wYGAxMRDyMgGx0cGxUTEggIBwIAAgH+APv2/Pr6/AUEBAMBAAIDAfr6+gMCBAD+/wMDAvz9/QH///z3+QL9/v/6+/39/QABAgABAAD/AQEA/wUGBfz7+wMDBP7+/P/+//79/QAB/wAB//r6+fHw6uHe2wsMDwkKDQEBAQQEBQYGBgQAAAH/AP/9/f3//v39/f7//v7+////AP7//wIA/wAAAP8CAQECAQEBAgMBAQL/AAH//wD/AAABAAAA//8AAQAAAP8A/wAAAAAAAAEBAP//AQAA/wABAQH//wABAP//AAAAAQD//wEAAP8BAAAAAAABAP//AAABAP8A/wEBAAEBAAAAAAABAAAAAv8B/QABAQABAQEAAP8AAAEAAAEBAP/+///+/v79/P38/Pz9/f39/f4DAv0AAAH//v//AAAAAAD//wEBAQEBAQL///////////7+//8C//7+/wICAP8CAQAEAQIEBQcC/wT9//z+/f3++voDAwP8+vz9+/v+/v0DAwQEBQX9/v79AwP///0AAQL9/fsAAQIBAQL//v78/vv9//8AAwMFCAUGBwj8/v/8AAAKCAYBBgb/AP4ABAMHCAoC+/wCBQMDBwYBBAT9/v/w6+sEBQUDBQQJCgkAAwP6+f8CAwL/BQP9/PsB+wABAAD9/wAA/AMAAwMAAvsHBQcUFhvv7+n69/n+/wD+/v/+/v/+/v/+/v4A/wD//wD//wD+AAAAAQEA/wEA/wD/AQEBAAEAAAD+AAACAP8AAAEA/wAAAP//AAICAQD/AAH/Af4AAAEAAAAAAQAAAAABAAD//wD/AAABAAAAAAAAAQAA/wAAAAAAAf//AAAA/wAAAAAA/wAAAP8AAAABAQAA/wAAAAD/AQEB/wAAAf8A/wAAAQAAAAAA/wD/AAAA//4AAQH/AAABAAAAAAEAAP////8BAQEBAQD//gD/AAABAAAAAAD//wAAAP//AAAAAP///wAAAAABAQEAAAABAgEA/gD/AP4BAQIEAQAFBAIQDwwjIh4jIh8TEBAIBgf//v/8+f37/v0A/gH//f7//Pz7//4DAgMA/gD9+/wBAwACAQH//f4CAAEB/v8GBAT9/wAB/v4A/f39/fv/AQD9/P0GCAf89/z+/v//AfsAAQEGBAT2+vn+//0AAv8CAgD49/bm5eMZHCEICQsDAQIGBQUGBQYEAAAA/v7+///+/f39//7+/v7+//7+////AAAAAAAAAAABAAEBAgIDAwIDAQICAAAB/gD//wAAAAEBAAABAP//AP8B/wD/AAEAAAAAAP8AAAABAAD/AP8AAQD//wEAAP8AAAD/Af///v8A/wAA/wAA//8AAAAA//8BAAH+/wD/AAAAAQABAAAAAQABAAEBAQABAAH+AAABAAABAAEA/wAB///+//79/v7+/v7+///+//79//4CAAEB////AP//AAABAQEAAQEBAgICAAAA/v7//v7+//////8A//////8ABAQDAwICBAQFAf4D//3//v37+fb2BAUEBAIB+/39/fz8AQgB/wAAAAAAAgME+/v6AP//AQEC/f7+/P38CAYGBQQE/v39/vz98vDxERgJCA8O9/r6+v7+DQoIBAgJ/Pv9+Pr6CQoL9/X1AgIEDQ8OAQAB8vLxAwECAf7/+Pb4DAwMBAsB+ff1AgIB+vz7/Pr7AQECAQECAP4A//7/AwIDAAAADA0REhQa9PLu/v7+/v7+/v8A/f7//v///v4AAP//AP8AAP8AAAEBAAABAAAAAQABAAABAP//AQABAAAAAAEAAAAAAAAAAAD//wABAP//AAEBAAAAAAAAAAAA/wAAAAAAAAAAAAAA//8AAP8AAQEB/wD/AP8AAAAAAAABAAD/AQEAAP8A/wEBAP8A////AQEA/wEAAQD//wAA//8BAQAAAf///wAAAAEAAP8AAAAA/wAAAf8A/wIBAP7+/wEBAQAAAP///gEAAQAA//8AAAAAAAAAAAEB//8AAAAA//8AAAAAAAAAAQABAQEBAQAA/wH/Av8BBgUDEA4LIiAdIiAcGBYVBAIB+/r9/Pr9/fv9AQAAAP7//v3/AQABBAME/f38//8B/v7/AwECAP7+AAABAAABAQD/AP8A//z9AP7+AQEBBAABAQD/+vn6AAD///sBBAQF+/78/f7+/wH/Af4EBQMD+vz9/f39/f3/AQL/9PPy7OvqFhkcAgICAwMCBgYGBAAA/wAA///+///+/f39/f39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AAD/AAEBAAD/AP8AAAABAQH/////AP8AAAABAQH+/wAA/wD/AQAA/gAAAQEB/wAAAf//AQECAAABAQP///4HBwcHBgQvLScuKicRDw7z8PD6+vsJBwn+AP7//f8AAQAFBAT5AQP4+PgLCwsHBwcAAQH///759/n9AvwHCAgBAP8FBQX6Avr9+/v6+foDAwX/Av8GBgYA/v8B/wADAgH//Pz6//4DBAMEBQX9+/sEBQT9/PsA//4HBgb/AQH6+/v9/v4BAAADAgH///4CAQMDBAQCAQQEBAQCAgIBAAEDAwIEAwUCAAAA/wAA/v/+/f39/v79/f39/v7+/f////8AAP8AAAD/AAEAAAABAgICAQEB/wAB/gD/AP//AAD/Af8AAP8AAAAAAAAAAAEBAAAAAAEAAQD/AP8AAAEBAAACAAEBAQABAAAA/wAAAAEAAQAAAQEAAP8AAAAAAAABAP8CAAAAAQAAAAEAAAAAAgEBAQH/AAAAAP8AAAABAQH/AAD+AAD//wD//wD+AP7///7+/gD9///+Af8AAAD+AAAAAQECAgECAQICAgECAgECAAAB/v7+/Pz8/f39/f7+AP8AAPz7//f4/vb2/Pf2AwUCAAIBAQMCAwMDAgMCBwgIBgYG//39BAMDAQIDAAAB/fv9+/39BAUHAQQF/v8C/P7//QEA/v8A/gEB/P/+/wAAAP3+//39AwIBCAgGBwYFBQQD+vn3+/n6//z8AwIBAf7+APz8+vf3AgMF//8B/wAAAAEBBwcHAwIEBAQEAwIEAgAB/v7+/Pz8/f79/v7+/v/9/v38AwMEAP8B//3+AQABEhUZCQsP/gAC/P7//QD///8B//8B/wD//wD/////AAEA//7/////AAAAAAAAAAAA/wD/AQAA/wAA/wAA/wAAAAABAP///wD//gD//wAA//////////8AAP8A//8AAAAAAP8AAAAA/gD/AP8A/wABAP8B//8B/wEB/v8A//8A//4A//8A//8A//////4A/wAAAP8A//8A/////v///////////v////8A//////8A////AP///wAAAP8AAQAAAAAA/wAAAAAAAAAAAgMDBwcFCAcEFRQPMzIrNTMuFRIT9/P09PH0APwAAP8BAwUFAgMEAwMEAAABAAD/BQUF/v7+/v7+/f3+AAAAAgIBAf8A/Pv7/////v7+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9//+/P3+AP/+//79/AD/Af0AAQQDA/39+wAAAQAAAAABAQEBAf/+/v/+//7/AP/+/gQEBAICAf8A/wIEBhEUFgADAgECAQICAgQDAwQFBQQAAP//////AP///v7+///+/vz+/v3//v7/////AAABAAAAAAABAAICAQIDAgMDAgT8AAH///////8BAAEAAP8AAQAA/wH/AP4BAAD/AAD/AAEAAgAA/gD/AQEA//8BAQD/AAAAAQEA/v8AAAD/AAEAAQAA//8AAQAA/wABAAEAAQABAAAAAAABAQEBAQABAP8AAAABAQAA/gABAAD/AAD///////7/AP7//v/+/v3///4AAP8BAAEAAQABAf8BAgECAgMCAwIEBAMEAwMEBAQCAgP///4HBQcGAgQA//sCAQMDBQYFDA0JEBMDCQsCAwIC/f3/+/r++/n9+/j8+PsEBAUDAAH39PMCAP///PwEAgL7+fr6+vv///////35+/kBAwX/9fT7+/sAAwMEBgj/AgIDBQYIC/AHDQ4NFBMJCwoEBAQGBgsDAwP8+vv+//728/L//Pr7/PsKCgsICggA///39PIA/v39/P0DCAYAAgIEBAUDBgUDBAX+AQD8+/sEBv8AAAIAAQD//v///v4A///+/fsBAP8EBQYBAAEAAP7//wEBAQAAAAAAAP8ABQUBAAICAQEAAgEBAAD///8A/wD/AP8ICQsAAAAA//8AAAAA//8WFxn8/PwoKy7k4+Pi4eDb2dnq6ujw7u/y8vP9/Pv+/v0AAAD//wAA//8AAAAAAQEAAAAA/wAAAf//AAEBAP8A/wH/AQAAAAAAAAAA//8AAQAAAQEAAAAAAAEBAQEBAQAAAQAICAUgHRs9PDodGxoA/f7+/f3//v4A///6+/v+/v4CBAMEBgUCAQH+/wD/AAACAgIBAgICAAEGAAn///4DAgQBAQD//v/+/v8EBQb7/vr9/PwIBgb49/kBAAEJCgv39vcRFRfq5+YH/QQLBAb49/QCCwwOEBL28fEA+/v9/fwCAgEAAP7//v39/QAAAP///QL+/f4DAgP8/v4D/v4BAQIDAwEBAv7//Pz/AP7+/f4BAwMCAwMOEhIPExQCAgEBAQECAgECAgMFBAUEAAABAAAA///////+/v79/v7+/v39/v/+///+AAD/AAAAAQEAAQIAAQEBAQIDAQICAgEBAP8A/wD//wD/AQEAAP//AQAAAQAA/wAAAAH/Af//AQAAAQAAAQIAAP8A/v8AAAEAAQAA/wEAAQAAAAD///4AAAAAAAAAAAAAAAAAAAEBAAABAAABAAAAAAABAP8AAQD/AAAAAAEAAP8BAAD/AAAA/wAA/wD//v/+/wD+//7//////wD/Af8BAAAAAQEBAQIBAgICAQMDBAQEBQYGAgMDAAAABgQEAgEB/wAA/wD/AAUFCQ8PBg0M/gECAP79A/379fPz/vz7///+/fv8AgEBAgIC/fv7/fz7/vr6+PX1/v78+/v6/fv9/wAA/wIC/wH/Af8BAgMECA4QCQsLAQUE/v8BAQMEAQIB+/j6CgkL+vr8AwME/vv7+/n5AgICBwcHAwgIDQwO//79+Pbz+/r5/fr5//v9AwUDAgMD/P7/BQUEAAIDAAMCAAEAAQIBAQICAgMDAAD+/f79AwEF////AQH/+/f4CQkPBQUG/v/+/////wAAAQEBAf8BAAEAAgIB/wAAAQAA//8AAAEBAP//AAAAAAAA/wAAAQAA/wAAAP//BAQG/wAADQ4RFRYZJykqMjU15ubj4N7e2NbY7ezs7u7tAf7//P39/fr7/wH//v7+////AAEAAAABAQAAAP8AAAH/AP8BAAEAAAABAAEA////AQEAAAAAAAEAAAD/AQIDEhIQNDIuNDMxFBIU//z/AwAB/Pz9/f38AwIC/wEBBAUGAwQDAQIC////AwMDAAECAgIC//7/AwMEA/v7/f3+//7+/v4ABwgGAgT5/Pv7BAUF//7+/f7+DxER8vDw8vDvExUUAwIDDhEQ9vPyAP79APz99vHxCw0MAgEC+vv7AwIB/v78AP//BAEC/f77AQEB///+/f3+AAEBAAEB/wABAgIC/f39/Pz9AgICAP8AAQEBAQIB/QICEhgaAwYIAgABAgEB/gECAwMBBAQDBP//AAAA/wAA///+/f/+/v79/f/+/gD+AAD/AAD///8BAQEAAAEAAAEBAgECAgECAv8BAf8A/wD/AgEAAAAAAQEAAP8A/gEBAf///wAAAAAAAAAAAQEBAQD+/wABAAAA/wD+AQABAAEAAf///wAAAAABAAH/AP8AAAEAAP8BAAD/AAAAAAAAAAD/AP8AAAABAQAAAAEB/wIAAP0BAAABAQH////+/v/9///////+//7//v//////////AAAAAQEAAQEBAQICAwQEAwQEBQUEBQQEBQAA/gQFBQH//wADAQEFBAMICPv+AAUAAQD+/fXv7wH9/f359wD+/gQFBv4CAf39/gIDAgABAP38/fPx8/n39QQDA/37/f4AAAMEBQQHCPv//wIFBQECAv79/Pz8+wH/AAMKCQUKCQcJCggICgIDAwkJCPz6+vv6+gMBAQD//v3////+//z59vn29P/+/AEA/////wADAQACAgEEBQMCAQYJCf4AAAACAQACAgD/AAADAf/9/wD///39/P8AAP7//v/9APn49Pr5DwYFCAMDAgAAAAAAAAD/AQABAAAA/wEBAgAAAP///wICAAAAAAD/AQAA/wABAQD//wABAQAAAP///wAD/wEAAQD/AAYGBgkJCRARExwdHigoKzAzNePj4djW1/Xx8uno6PPy8fj29/n6+f3//v/+/gH/AAAAAAAAAAAAAAABAAEAAAAA/wD/Af8AAAAAAAEAAAIAAQQFBCIhHDk5NjAwMAoICvv5+v36+v39/P///wEAAPv5+f78+wD///r4/wMEA/3+/gICAwMEBP37/AIDAwYGCP3+/vz8/QECA/v7/AABAAgICQQGB/v6+vz7+wAAAPDw7wUEBAICAOLf3xwcHAcICPj29vz9/gUGBvr6+vn4+P77+v7+/QQDBQL/Af7///3//gUFB/39+/7+/wEBAAEAAQEBAgEBAf//AAD+/wMCAv7+/gICAQABAgMCBPwDAw8WGAEBAgECAAEBAAIBAgMDAwQFBAQAAQD//gAB/wD////+/f3//fz9/f3+//7+/////wEBAAD/AQAA/wEBAQACAQMCAgMBAgEAAAIAAP//AAEB/wD/AAABAQH///8BAAEBAAH/AP8AAQD//wABAAD/AAABAAIAAf4A/wAAAQAAAAEAAAAAAP//AAEAAAABAQEB/wEBAAABAQEBAQAAAQABAAAAAAABAQEA/wD/AAEB//8AAf//AAAA/wD///7//v7///3///7/////AP8AAP8AAAEBAgICAQEDAgIDAwMFBQUGBQYGBgcA//0JBwf/+/3/BQUHEBMOFBYBBwj8/P39+vj++vv59PMB//8AAP/9AQIBAAH///0AAf8CAgL+AgL7/Pz5+vn8AgL+/v79/P4A+/wJBAQCBgb8/PsAAQL9/PQA/wAMEBEKBwn+/QD4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AAAAAQEBAAABAf8BAQAB/wEBAAABAAAAAAABAQAAAAABAQAAAQH/AAAA/wABAAABAAEAAAEAAAEA/wABAQABAAD/AAAAAAEAAQAAAAAAAAAA//8A////////AP4AAAD//wAAAAAA//8A/wAAAAAA/wAAAAAAAAD/AP/+//79/v7+/gEAAQAAAf38/fb19/38/f/+/vv7+v3+/P8A/f///gMDBAQHBwMEBQgKCwQGBgIGBQYHB/36/P/6/AUCAwD+//Py8/bx9fr4+wsMDwEDAwMFBgECAwEFBQoPDhQYGAcJCfP09AEBAgUGBQAA/wEBAQcICAQEBAUGBAICAQQEBAoKCgICAQAAAAICAgEAAAD/AAD/AAABAQMCAQECAgABAQEBAgEBAgUDBQIBAgEBAgEBAQIBAwABAgICAwAAAgMCAwEBAgECAwABAwECAv8BAv//AP8AAP//AQECAAICAgEBAAAAAP8B/wAA/wAA/wAAAAEBAf8AAAAAAgEBAQEAAAIBAQABAAEAAgEAAAAAAQABAQAA/////gAB/gD//v8A/f///gAA/gD////+/v/+/QD+/v7+/fz8+vj49/r49fbz8PTy8AcFBwoKDQUFBwAAAAD/Af///wAAAf/+/wABAf8A/wEAAAABAfz9/wADBAkNDw8VFg0UFP4DAfj59/v6+/v8/P4AAQ4REg0REgUKCwEDA/////z3+fHs7gP/APj29/38+wD//vv6+wEAAAQDAgkKCgMEBAAAAgUGBv37+/v6+/7//gEEAfHx8AkICfj2+AcICQD+/wQEBQAAAf7//wUFBgD/AAAAAQABBAMCAwQEBgECBAIDAwICAv7+//39/f8A/gAFBPH4+OTn5wEBAf7+/v///f3+/f39+/38/f38/f39/f///wAAAAICAgT//wAAAP//AAABAQEA//8A/v7+/f79/v3+/f3+/v0A/v4AAQIAAAABAAABAQECAgMBAQIAAQH/AAAA/wAAAAAAAP8AAAABAAH/AP8AAAEAAP8AAAAA/wAAAAABAQAB/wL/AP8BAP3/AAEA//4AAP8AAAAAAAAAAQAA/wEA//8A/wD/AQD/AAD/AP//AAAAAAEAAQABAAAAAAABAAH//wAAAQAB//////////4A/v////8AAAAAAP8A/wD//wABAAEAAQAAAP/+/v79/f37/Pz8/Pz//v7///79/v/7/Pvz9fQAAgz9+/wACAACAQD9////AP4CAgIGCAb9/fz89fX9//////8D/v8A/f7//v4DAQEDAQP7+vv39Pb//f8EBwkEBgUEBgUCAAEEBgYFAQECAgL29fX39/gMDAwKCwYBAQABAQH9/v4A/wD9/fsCAgYFBQT//v0BAQH/AAD8+/0BAf0DBAP+/QADBAT///4AAAAA/wD///8EBQMC/wAAAQH///8DBAT//v8CAwT///8BAgEBAAD//wEBAQH/AAECAAH/AgIAAAABAP///wAAAAAAAQECAAAAAAEBAQEBAQEBAAEBAQH/AP8AAP8BAAEAAQD///8AAAABAgAA/wEAAP8AAP8A//////4A//8AAf////8CAAH//////v4A/v///v7//v7//fz++/v++/n38/D79/UHBwcGBQYHCAgAAAL8/v8AAgIA/QACAv8BAQICAgIDAQH+/f0AAAAFBQX//f39+/v//wD+/f4EBAYBBgf9/PwEAwT7+/z7Av0JDA4IDA718wz17u4A+/z59fX19fUNDw7z8vH+/fwBAf/9/Pv39fQA/v4ICAcCAwMDBAQCBAT29vUICwsKCgv8+vr5+/kCAwEDAwMDBwYFBgb9/f0CAgICBAUB/f8CBAUFBQT9/f4BAQL6+/r8+/sBAP/+AP7+//8DBQX6//7l6un29/cGBwX+/wD+/gD8/Pr6+vr6+/r8/v3+//8AAAAAAQEBAQEEAgEA/v8AAAAAAP8A///+/f79/f39/fz9/f79/v3+//3+AAL/AP4AAAD/AQAAAAIAAQIBAAACAAAC/wH//wAAAgABAAEBAAD//wAAAP//AQAA/wAAAAEAAgAA/v8BAAD/AQAA/wABAQH///8BAAAAAAD/AAEAAP8AAAD/AAH/AAD/AQD/AQAAAAEBAQD/AQEAAAAAAAEAAAH/AAAAAAEAAAAB////AP/+/v7////+/v7+/v7+//7//v//AgD+//8A////AP8A/wAA/f7+/v79/v3+/Pz9/Pz9AwECBQQFAQAC+vj6+wr6//78/v79//77/vv+/f79/wICBQYGBgYHAP8A/AL9AwUEAQH/AgEAAwIDCw4KEBocDxYWAQECBwcIAAEDBAMFAwICAwECAQMCAgMCDg4O9fT0/f39BAMDAgIC/v7+Af///Pv6/f7+Av38AQEB+v39BAUEAAABAP//AQED//7+AAIA/f3+//////4A/wAAAQIA/v4AAAABAgAA/gD+AgIF/f/9AAAAAAAA//7/AQICAAEAAAABAgICAAEBAQEBAAD/AQECAAEAAQEAAAEAAf8BAAIBAgEAAAIBAQAAAAH/AgAAAAABAQAB/v///wD/AAAAAQEA/////wD+AQAA/wD//wD+AQABAP8AAwAAAP/+AAAAAQAA/f/+///////+AP//Af/8//v3AP77CQkJAgIDAwMEAgMD/v//AQAA/wAAAQMCAP8AAv8AAgIDAf/+AwEB9/j4BQYFAQcI/gMD+vn5//0CAf39AgIDAwgJAgIC/QEB/fv89PPzCgwMDRETCg0Q8u3sAgcH8u7u6+zsDAsLAwME9/bz/fv7BAMC9/b1+Pb0BwcICw8PBwoJ9vX2AP//+fn5ERUV9PHxAgEC////BwkJBAYG/fn5/gAB//7+AQUEBAYG/v/+//78+fn6/fz8/QD+AwMC/Pz9AgMCBQgI7PLw5+vp/v/9AAAFAAD//gD+/f39/Pz8+/v7/f38AQD//wD/AQEBAgICBAABAAAAAP8A//8A/wH////+/v3+/P39/P78/f79/f39/AMCAv//Af///v///wAAAQEBAgEBAQD/AP8AAQAAAP8BAAEA/wABAAD/AQEAAf8B/wEAAAD/Af7//wAAAAEAAf8B/wAAAAD+AAAAAAEBAP//AAH/AP8AAAABAAD+AAEBAP//AQAAAQD//wABAAEA/wEBAQEAAQEAAQEA/wABAAD//wEAAP/////+/v3+/v79/v79/v3+/f///v7+AgAAAP7+//7/AAAAAAD///z8/fz9/P///gAAAAMEA/8AAf//APz9/vz9+/3++wEAAP79/fz7+P79AP39/Pz7/P3//v///wD/AQAFBPv+/f3+/gYMDBQgIxooJwcLDPr6+v3+/gkEBAEBAAICAv7//gL+AP4AAAICAggJCP////v8+wUBBv7//////v7//gEAAP////z8/QQFBPr5+QUGBvz8+wUEBQAAAwAA/wAAAAAAAv3//gMCA//+/v4B/gICAv7/AAD/Af///QABAf8A//8A/wMDAwEAAf//AP8A/wEA/wABAQEBAAEBAgEAAf8AAAABAQIAAQABAAEBAAABAQEBAQEBAAAA/wD/AQEBAf///wAAAAAAAAEBAAAA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AAAAAAAAAAAAAQEBAQEAAAAAAQABAAABAAD/AAEA//8B/wABAAH/AAABAQH/AQAAAAEBAQAAAQAAAQEA/wEAAAEAAAEAAAD+/v///f/////+//7//v7/AP7/AAD//wD//wD////+//8AAAABAQEAAAAAAP////8BAAACAgMDBAIAAP/7+/n08/L5+ff6+vr8/f3+AP/9/v/8/v8AAAD+/f4BBgYRGRkLExQIDg4CBQUEBAQEBAX/AAABAgMAAgIICAkBAgICAQL+/v39/f0GBwYBAAD6+/oAAAABAAACAwL9/v0CAwIJCQkFBgUBAQH/AP8HBwUEBQUDAgIDAgMCAwMCAgICAgEAAQECAwEAAQABAQEDAwEBAQEAAAECAwMA/wAAAQAAAAEAAAEBAQIBAgICAgIAAQEAAAAAAQABAQEAAQEBAgEBAAACAQEDAgIBAAABAQEB/wAA/wAAAAABAAABAP8AAAAAAP8BAQABAQABAP8BAf////8A/wD/AAAB//8B/wEB/wABAAAB/wEAAAABAQABAAECAgIBAQEAAAABAQECAwICAwQEBgYEBQUCAgMCAwMDBAUDAwMDAwMCAwQCAgMEBAUCAgIAAgMCAgQDBAUDBQYAAgIAAgEGCQoHCAr//wD39/YDBAINEA8HDg77/wAABAQDBQUCAgH8+vr39PQAAAAKDA4A/f/t5+b27+wGAwEFBgUFCAj+AAD6/PwCAwT////+/P0IBwf5+/r9/Pz49fX//v4CAwT8/P0DAAMA/gD69/n6+fn7+/sAAAAFBAQAAAD/AAADAQICAgL9+/wBAAABAgAECQf4/f7i5+j09vb/AAAAAAAA/wD////+///+/v/9/f39+/37+/v7/fz+/v7+/v7//wAAAAEEAQEAAQEAAf4A/gEAAQD/AAD////+//78/v79/v7+/f/+/////f/+//8AAAD+AAABAAACAQEC/wAB//8BAP8AAQABAAAAAAH/AP8AAQABAAEA////AAAAAf///wEBAAH/Af8A/wEBAQD///8B/wD/AQEB////AAEBAP//AQAAAAABAAEBAAAAAQEBAAABAAABAAH+AAABAQAAAAAAAAEAAf8A/wD//wD////////+/v7+/v3+/v7+/v7/////AAD/AAD///8AAAEBAgIDAAEBAQABAAEBAQIDAgMCBgUEBwUG/v//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8fHx+PPzCQoHBQEBBQEB/vn4BwkI/vv9//39BgUGAAAA/wAAAgID/Pz9BAIDBAYF/v8ACAkICQgK9/b1BQUGAwIDAQEB/v7+/wD/AgMCAQUDBQcHAgUE/v/9+/r6Cg0N5+jq/f3/AAEAAP8A/v///v7+/v7+///+Af//AP///v79+/z7+/z7/v39/P39AP8AAP//BAEAAAABAQEAAP//AQAAAAD//////wD/////AAEAAAACAgEAAgABAQMCAAICAQECAgICAgEBAgAAAQAAAQAA/wAAAQH/AP8AAAEAAP8AAAEBAAABAAECAf//AAEAAQD///8AAAEBAP8AAAD/AAEBAAAAAQH///8A/wIAAf4CAAH+AQEBAAEBAQEAAgEA/wEBAgAA/QEAAf8AAAAAAAAAAAEAAf8B/wABAf4A/v7//f79/f3+/v///////v/+/v4AAQAAAAAAAAABAAABAQEBAgECAQICAwUFBQcICAQGB/8AAAEBAQMDBP4BAQAB/wUCCP7+//7+AAMEBAYICQIDBQACA////wICAQD/AP7//wD///8AAP39/QMEA/8A/v37/AIDAv79/QQEBAIDCf39/AQDAwUFB/8BAAAAAQABAgMEAQUBAf3+/gQEBfv8+wT/AAkICvj4+AEDAgAAAP7//wMBAwABAAAA/wABAf8BAAMDBAAAAAABAf7//wEAAQICAgAAAQEBAQECAAAAAAD/AAABAAD/AAACAAAAAAABAAAAAQEAAAAB////AQEBAQEBAQEBAQEBAAEAAP7+/wEBAAABAQEA/wAAAAAA//8A/wAAAP////8AAP//AP8A/wEAAAEAAQABAQH/AAEBAP4A//8BAf/+/wH//wABAQAAAf8A/wEBAgH//wD//////gAAAAICAgD/AAAD/wD/AAAA/////wABAQECAgD/AP8BAAEBAP3++/7+/gAAAAUGBv7+/wEBAQABAQQEBgcJDPLw8Pb19BAeH/Lu7Obm5g8NC/Xy7g0PEfv9/wgICRkfI+/n6Or64vr6+vv39QsGBA0LCAD/AP/+/fz8/AYICAD+/gIAAvr4+AQFB/4BAAIFBQcJCgACAvv5+QkHCP8CAgUGBQMFBf8AAAQICAMDAv8CAf8C//4A/ff08gUFBev1+OLl5f7//wAAAP///wD//wD/AAD///////////7+/v79/f38+/r6+fv8+/79/v///wEAAQQAAP8B////AAEBAQAAAAAAAAAA//7+//8AAAD/AAAAAAAAAQACAQEAAQEBAQICAgMCAwQBAgMBAQEAAAD/AAEAAAH/AAAAAQD//wAAAQEA/wEAAAABAAH/AP8A/wD/AAAAAQAA/wEBAP8AAAD/AAEAAAAAAQAA/wEAAP8BAAD/AAAAAQH/AAAAAQAAAQAAAAEBAQEAAQAAAQAAAAAAAAAAAQAA/wEA/wAAAP/+//79///+/v38/f3+/f3+BP4B/wAB/wEAAP8AAQEAAQH//////wABAgIDAwQDAgUDAwQCAQD/AAD+/////wH//wAAAQIFBwQBAQQBAwMCAwQCAgQBAQEBAQEBAQL/AP8CAQD+/wACAgH+AgEA/wACAgH8+/v+/gEDBAP///4ICAn/AAD/AP8CBAT///8BAQEDAgMAAQH+/v0BAQIAAAAIBwj///4AAQMEBQQAAAACAwIA/wAAAP8BAQIAAAEAAQEBAf8AAP8AAQH/AAEAAAAAAP8AAAD/AP4BAAIBAAL+//8AAf8CAAEBAgEA/gD/Af4CAgMDAwIAAAABAAECAQAAAQEBAQEAAAD/AP8A////AP///gADAQEAAAEAAf//AP8BAAD///8A//8A/wABAAAA//8BAgEBAQAA/gEAAQAA/wAA/wAA//4AAAD/AAABAQAB/wEBAAEAAP8AAQD///////8BAgECAAH//wD+/v8BAf///gAA/wAAAQEBAQEBAP/+AAAAAAAAAQEBAQECAwMAAAACAgACAAAAA//7//sAAgEJCAf6+Pb0+fcFBwcSFRP08fECAAP39fYDAwLy9vUFBAYGBgQYHBz69vTw6+f9+vj4+fkLCgoAAAEAAQH8/Pz+/v8DBgf9/v0EBAUBBAX//wECBAT7+/wFBQYCAgEJDQwCBQT//v0C//0E/gP09PT9/vwMAg8FAwP59O8PGRza0Nb5+PkAAf8AAAH//wD+/wH//wAA//8AAP////////7+/v78/Pz7+/r8+/z8/fz+/f4BAQEEAAABAAH/Af8A/gAAAQD//wD//v7+AP/+/////wABAAAAAAAAAQECAAAAAQICAwICAgECAQEBAAABAP8AAP//AAAAAAAAAAAAAQAA/wAAAAAAAAEAAP8AAQAA/wAAAQAA/wAAAQAA/wABAAEAAP//AAAAAQAAAAEA//8BAAD/AAEBAAABAQABAAABAQABAQEAAAABAQAAAQACAQD+AQH/AP8AAAEA/wH//v7/AP7///79/v7+//7+/v7+/wD+AP8BAAAAAP8AAQABAQEBAQIBAQECAQICAgQD/wD//P39BQQFAgED/v8AAQICAwMCAAEBAgMEAgUGAwMHAgMDAQAB//8AAAD/AQEBAQAB/gH/AgMA/Pz/AwMCAQAAAP8BBQYH/v39AQICAQEB/P39BwgI//8AAQICAgABAQAAAgQD/v7/BgYH+/z7AP8AAQECAQEBAQEAAwIC/f7+//////8AAP7+AgH/AAECAQABAAEB////AQAAAP/+AgICAP8A/wD///7+AQICAAD/AQABAQABAAEBAP//AAD/Af8BAQIB/v/+AwIDAQEAAQICAAAAAQEBAP////4BAAD////+AgEB/wD/AAAAAP7///8BAQEAAQAA/gD/AAAAAAEAAgEBAQABAP8AAQABAAAA/wH/AAEBAAACAP/+AAH/AQAB/wH/AQAAAAAC///+//8AAQECAgEB////AAEA///9AAABAAAAAQEBAQIA//8A/wAAAQAA/wEBBQUE+/z9/wEBAP/+AQEB/P/++/z7/v7+AQH/AwUEBwcG+vT1AQD9AgICCQwM+fb38/LwAwD//v7/+vj7Af//BAL/CQUEBwME/gIB/Pj49///CAoKCAcI/v7+/f77AAQE//8BAQEB/Pv8/wIDAgQDBAIBBQQGCQwLBgkJ/P38Af78+Pbz8O7s+fj4CwwKAvv6+fT2BgID9fr73+Hi///+//8AAQAAAAEAAP////8A/gAB//8A/////f7//v3+/Pz8+/r7/Pz8/Pz8/v7+BAUEAgAAAQAAAAAAAAH/AP//AAD/AP///////v7+/wD//////wAA/wABAAABAQIAAQECAgECAgIBAgABAgABAf8AAP///wAAAAAAAP8BAAEAAAABAAAAAAAAAAAAAAEAAAAAAQAAAP8AAAABAAAA/wEAAAABAAAA/wAA/wABAAAAAAD/AAAAAAAAAQEAAP8BAQAAAgEBAAEBAgABAP8AAP//AQD/AP//AAD//wD//v7//////wD//v/+/v///v/+/wD+AP//AAABAgICAgICAwMDBAMFBQUFBgMEAv///v////7/AAACAwIEAwIEAwMEBAMFBgEEBgMEBgMEAwD/AP8AAAEBAQD/AP/+/v/+/gAAAAD//wUEA/7+//8AAAQEBAMCAgYFBgYFBQcHBwQFBf//AQMDAwEBAgEBAQECAv/+/wIBAAAAAAUFBgAAAP/+/wEAAf7/AAABAQMDAwEBAQMDA/8A/wACAAAB/wD//gH//wD//wD//v//AAD/AAICAQAAAAIBAQAAAQABAgAAAAAAAQH/AAAAAf//AAECAQAAAAH/AQABAAAAAQEBAQABAAAAAAABAQAB/////gEBAf8AAQEAAQD//wD/AAEB/wAAAP///wD//wAAAAD/Af//AP/+/wEAAQICAQEBAAAAAAEBAAAA/wAA/wEAAf8BAP8A/wACAAEC/////wICAQQFBAAAAAECAf///gEBAgABAAAAAQECAf//Af///////wECAgICAv3+AAD////+/gEBAf39/P39/QAAAAAAAAIDAwAAAAsMDBcaGQQBA/z5+gH8/gIBAAMDA/v6/AMDBAUGBgoMCQQAAPLs6gH7+QcDAwMA//v29v77+//+/v8AAQQGB/7+/gMDBAABAQgKCg4QDwcKCgkODgsSEAgOCwADAgAA//j39fHw7v79+woJCAQBAfv29Pz49wsOD9HY2ufr6/z+/gAAAQEAAAD+AP8AAf8A/wD///7//v7//v////7//f39/Pv7+vz8+/78/f///wD//wIBAQAAAAD///8AAQAAAAD/AP/+/v3+/f4AAP7/AAABAQEBAQIBAQEBAAABAQACAQECAgEBAgIBAQAAAP8A/wD/AAD/AQAAAAEAAAEAAAAB/wEAAAABAAAAAAD/AAAAAAABAAEBAAAA/wAAAAAAAQAA/wAAAQEAAAEB/wAAAQAAAf8AAAABAQAAAQEA/wAAAf8AAAAAAAABAAABAQAAAQAAAAAAAAD//wAAAAD///7////+/v//AP//AAEA/wEAAQAA//8AAP8AAAABAQACAwMCAwMDBAICAwQAAQEBAgMEBQcAAgP/AAL/AAIAAwQDBgcFBwgCAwQBAgIAAP/9/f3///8AAQD/AAH9/wAAAgECAwMCAgIJCQkAAAH9//4GCAgCBAMDBAQCAgQDAwQFBQQCAgMA/wACAgP///8CAgIAAAH9/f0AAAAFBQf+/v7/AP4CAQEBAAEBAQH/AAD/AP8CAgIAAAABAAD+/v3+/v4AAP8A//8AAf/+/vz/AP8CAQH/AAAAAQEA//8BAQEAAP//AQD///8AAAD+/v7///8BAgAA//8AAP8AAAABAAEA////////////AAD///8BAQD///8AAAD/Af//AP8AAf8AAP8AAQAAAP8BAf8BAQAAAAAAAQAAAAAAAAABAAD/AAAAAAABAQEAAAECAQEBAQEB/wEA/gABAQABAQH//v8CAQIAAAABAQECAgEAAAABAQABAQEBAAABAgICAgL/AP/+/v8BAgH/AAAAAAAAAAH8/P39/f0AAgEEBQYAAAEDBAX9/P4DBAYTGBgNDA38+PkC/gABAAD8AP8BAgPy8vEBAAD8/PoFAwMA/wAAAAEEBwgHCgr7+/z29/cAAAAAAQMEBQQEBQUAAQIDBAUEBgcBAwMHCAgDBQT+/v7++/r39PP08/MDAwMFBgUBAwD+/Pz8+fkCBgb0/wDU2dv3+PkA/wEB/wAAAP//AQAA/////////wAA/wAAAAAAAP/+/f39/v38/Pz8/P39/f3+/v7/AAAEAAAAAP8AAAEA////AQEAAP//AP8AAP///v7+///+/wABAAEBAAABAQEBAAECAAECAQEDAgIDAAED/wAC/wD+AAD/AAABAAABAAD//wD//wEA//8AAAAA/wAAAAAAAAEBAP///wABAAD/AAABAAD/AAAAAP8AAAAAAAEAAP4BAAABAQD/AAAAAAAAAQEAAAABAAAAAQEAAQABAAAAAQD/AQEBAP8AAAEA/wAA//8A///+///+/f7+///9/wD+AQAEAAIAAf8CAAAAAP8AAgABAgEBAAIEBQQHBgcKBggLBQYI/v////8AAgQEAwUGAwMFAQQDAgAC/wAAAQIDAf/8/f78AwIDAgICAQIA/v79AQD/AQICAgECCQoD/v79/wEBAwUGAAAAAwMD//7+//8AAQEBAwMB/wD/AQIC/f39BAME/QD+/fz9AwP/AgIC/v3+AAAAAQEBAP8AAP/+//8AAgQE/v39AwMDAwEC/gD/Af//AgIDAP/+//8A//7/AgED/wD9Af//AAAAAAAAAAEBAP7/////AQIBAP8A///+/wABAAABAAAA/wD/AAD//wAAAQAA////AP///wAAAAAAAAD/////AAAAAAABAAD/AQEAAQAAAAAAAQABAAD/AQEBAQAA/wD//wD/AAEBAv8B/gEBAQAA/wAAAAAAAgAC/wD+//8AAQEBAQABAgIBAP//AP4BAQABAAEAAQEBAQAAAAEBAQIBAP79/v//AQABAgIA/v7//v//AgID/v7///8AAgMFAAEA/vz8AAAAAQIB9fb19fb1AgH/FBoZAAMD4+HhCgkLBgkK/Pf5Dw0N7efmDQcGBQYG//z6AAMCBgUFAf///v39+vv9AQIC/v/8Af0E/wP+AwIC//79/fz9BgIDAQEB/v79AgAA+fn3+Pf2/v/9AwYFAf0AAv/+/v/6/f/+ChAP2+ru6err//7/AQAAAAAA/gABAv8A/gD///4AAAAAAAABAAABAP8B/gD//v38/P37/fz7/v39/v//AAAABAAAAAABAAH/AQAAAQEA/wABAAAA//7//////v///wD//wEAAQAAAQAAAQIBAgIBAgICBAICAwEAAgEBAQAA/wAAAgAAAQAA/wD//wD/AQEA/gEAAP4AAAH/AP8AAAAAAAAAAAAB/wD/AAAAAP//AAAAAAAAAAAAAAD/AAAAAAEAAf8BAAEAAAEBAAAAAAAAAAAAAAD/AAAAAAAAAAAAAf8AAAAAAAD/AAD/AAD/AP79//7+/v/+///+/wD/AQABAAEBAQAA/v////8A//8AAQICAv//BAUGBwUGCQEBA/z+/gEDAgICBAQEBgIEBQMDBAICBAEBAQAAAP8B/wECAf79/f//AAICAQIDAwT+Av/+/gICAgEBAf8AAAMFBQEAAAAAAP//AAAAAAECAwAAAAD///7/AAMCAwEB//3/Af3+/gICAv7//vz8/AECAgEAAP79/gEBAP8AAAD/AAIDAQD//wEBAfz8/AQEBP////4A/wIBAAEAAQABAAD//wECAAMAAf38/AMEBAICAf////4BAAAAAAD//wABAQIBAAD/AAAA//8A////Af/+/v///wMCAwAAAP8AAAD/AAEAAAAA/wEAAAAAAP8A/gD/AgABAAIAAP8BAQEAAAEBAQEAAAAB///+//4AAAMBAP4AAAEAAQABAQAB/wD/AP7//gABAgAB/wEA/wD/AAAA//4AAQAAAQEBAf8AAAAAAQECAQD/AP3//f///////wEAAf3+/fj4+QEBAQICAv39/QMEBAEBAfv6+gEAAQgJCPTy8wcJCfn39f36+/f4+RQZGfn8/AYEBOLc2/v39goEAw4JBgcDAv79/f8CAgUFB/z8/AICAQMFBgL/+gQGBf3/APv7+wQCA/35+P37+ggBAP35BQAA/QQFBfv9/P39/QACAQMDBQABAAQDA//69/39/AQGBwQMDdzN0+/w8gAA////AAAAAQEA/wAAAAD/AAAAAf8AAQABAQD/Af8A///+//39/fz7+vz9+vz9/P/9/f///wQBAQABAAD/AP8AAQD/AAAC/wD//v/+/f79/f79/f3+/v7///8BAP8AAAEBAQEBAgECAQEBAQMBAQL/AAEAAQL/AAAAAAAAAAD/AAAAAQD//gAAAAAAAQEAAP4AAQAA/v7/AAAB/wD/AAAAAAAAAQEBAP////8AAAAAAQAB/wD/AP8AAAD/AQAAAAABAgAB/gABAQEAAQEBAAEBAQABAAAB/wEBAAD+//////////7/AP/+//7////+///+/v8A/wAAAAEA/wAAAAEAAAABAf8CAQIDAwQFBAcAAQH6/PoD/wQCAAQBAAQBAwQEAwQCAgMCAQEBAQEAAAEAAwAAAAECAAH9/v0AAAAB/wAAAQEDBAQA//8BAgIAAAACAQEAAAH//wAEAgH+//8BAgH//f4AAQABAAD+/f0CAwICAwL9/P3//wAAAf8A/v8A//4AAAL/AP4AAQIA//7//v//AQL+/wEBAQAA/wD///8BAAH+/v7//v//AP8BAAAAAP8CAAD+/wACAgH+/v4A/wEBAwIBAP8AAQEBAAACAQABAgIAAf8AAAEBAQH+/v7/AP///////vwCAAIAAP8CAQH/AP8C/wEAAQL///4BAAEBAgH///7/Af8B/wEBAQEA/wAAAQD///8A//8CAAEA/wACAQD/AQH//gAB/wD+//8AAAABAQAAAgD//wEAAQAA/v8BAAAAAAH/AQIB//8CAgEAAAEA//8AAAAA/wAAAAD9/v3////7+/sLDAv9/f0BAQEBAQAAAP8EBAMCAQH7+/oBAgIDBQPx7/D19PQTFhUTFhgSFhj8+PYJCgn89vT9/f4IBwcFAQD2+vsICAj///7+/v0EBAb/AQEBAgL/AQH5+/oB/gD29PP5AAEMDgz89wL7BwUBAgH8/wD9/P3+/wEFBQf+Av0A//4BAQD5/Pz//wADCQr3/gHj4+j//wEAAf8AAAAAAAAAAAD//v//////AP////////////8AAAD////+/v38/Pv8/P39/Pz9/f4A/wAEAQEBAAEAAP8AAAD/AP///wD//v7+/f79/v7+//7//v7//v/+//8AAQEAAAAAAgADAQIDAQIDAQEDAAAB/wAA/wD/AAD/AAABAQEA/v//AAAA/wD/AAD/AAEBAf4A/wECAf/+/wEBAP//AAAAAQD//wAAAAABAAAAAAAAAAH/AP8AAQAAAQABAQEBAP8BAAEBAQEAAQAAAAEAAQAAAAAAAAH/AP4AAQEAAAD/AAD+///+AP//AP//AP7/AAD/////AQH/AQEBAQEAAAAAAAD/AgICAAEA+/z8A/r6BQQEAgUGBQUGAwQFAgEBAAAAAAABAQEB/wAAAP/+AP8AAP/9AQEBBAMF/wAAAgIBAAEDAP7+AQICAQEBAAEA/v3+AP/+AQEB/gABAAAA//3/////AAD///0AAwID/fz8AgMCAQD+/f39AwID/wEA//7/AAH9AgEC/v78AQABAP//////AQH///8BBAMD+/v7AgMCAQAA//78AQIC//8AAAAAAP8A/v//AwEC////AAL/AP//AgECAAD/AQAAAAD/AAH/AAABAAH/AAAAAAD/AP8AAAAA//3/AAMAAQAB/gAAA////wEBAP//AAAAAQEAAAAAAAAAAP8AAAAA////AQAAAAEB/wD/AAEAAP///wD/AAABAP//AQAA/wEBAgAB/gAAAP8AAP8AAP///wD/AAABAP//AQEBAAAA/gAAAAACAP///wEAAAD//wEBAP/+AAAA/P3+CgoKAAAAAAABAAAB////AwMD/wAAAAAA/f3+AQEB8O/wDRAQDxQUFBYX9vf3AAICBAUH+/r8CAYIBgMCDg4LAfr5/wAB/v38/Pv8AP8A+vv7BQcGAgYG+f39+fv8BQAB/ff4BQIB+fcDBQgJ////AQIC//79//7/BAQF+v3+Af//AAEA/v39//4AAQcIBxASzdjd3+Hj/wD/Af8B/wD/AQD//wABAAAA//////7//wAAAAAA/wD/AAD//wD//f39/fz9/f38/f39/P39/v/+BAAAAAAAAAD/AAAAAAABAAD/AAAA/v7+/f79/v79/f7//v39/f7//gMCAgAAAQECAAICAgEBAgABAQAAAf//AAAAAf8AAAEAAAAAAQAA/wABAQH/Af8AAAAB/wACAAH+AAABAQD//wABAAD/AAAAAQAAAAEA//8AAAABAAD/AQEBAf4BAQAB/wAAAAAB/wAAAAD/AP8A/wEA/wABAAABAAD/AAABAf///wD//v/+/gD+/v/+/wD//v8A/wD//gAB/wABAQEBAQEBAAIBAQEAAf3+/QEAAP39/QD//wACAwIDAwIBAgICA/8A//8AAAAB/wAAAAAAAP//AP7//v///wAAAAECAQABAQEBAgIDAwACAv///////wH/AQICA/8A/v/9/wAA/wEBAf8BAAMCAvv8+wD/AP///wAA//7+/AIDAwD/AP39/QEBAQAAAP79/gEDAP///wECAQIDAf///wD9/gIDA/39/QIA///8/AECAf0AAAMAAP///wABAv7//v/+/v8CAf///wEBAv///wEB/wABAAABAQAA/wD/AAABAP///wAAAQEAAAD/AAMBAv0B/v7//wEBAQD/AP/+AAECAAAA/gABAf7/AAIB/wEAAQD//wAB//8AAQABAAAAAP/9AAEBAf///wAAAQAAAAAAAf8A/wAAAP8AAAAAAQEAAAAB//8AAQH/Af8A/gABAAEAAQAAAAL/AAABAP4AAAD///8AAf8A/gEAAv8A/QQEBAEBAP7+/wMCAv8AAAQEBAAAAQACAP38/AIDA/37/A0ODwcICAUGBvn3+AICAgwODurm5hgdHvTt7RMRDwH//PLq6AAAAP37/AAA//z+/gEAAQD8/Pz//wD+/wABAfv6+vv7+fz+/goLCgMEAQIBAQD+AAMEBAMGAv4BAQIBAgEGBgH//f/9Bv4GBgoSEPD8/8XKzPz8/AEAAAAA/wEAAP8AAAEAAP///wD/AP8AAP/+////AAAAAAD/AAD//v/+/fz9+/z8/P39/f39/QD/AAT/AAAAAAAAAP8AAAAAAP////7//v7+/f3+/fv+/v7//v7///////7///4AAQABAAEAAAEBAQIBAQH/AAAAAP8AAAEBAAEBAQH///8CAAH/AP8AAQEB/wAAAAH/AP8AAQAA/wD/AAABAAD/AAABAAD/AAEAAAEAAAAAAP8AAQD/AAEAAAEA/wAAAAEAAAIBAP4AAQECAAH9AQABAAAAAAD/AAD+//8AAQAAAAAA/wD/AAAA//////8B//4AAAAAAP8BAP8BAgADAwMDAwICAAL+/gECAAAEBAQDBQUFBQYEBAYCBAUDAgMCAwQBAgMCAQMAAQAA/v////8A/wAAAQEAAAH///8CAQEAAQEBAQEAAQAB/gEBAQAA///+//4A/wABAwIAAP/+/v8AAAD/AAACAgMAAP8A/wD///////4AAAEAAQABAgH//v8DAgL8/wD+//8BAAD+/f0DAwP//v78//0EAgAA/wD//wAAAP/9/P8GBwQAAAD9/v0CAgD9/fv/AAH//wAAAAD//v7/AAAAAAD///8BAQEAAQEBAgEBAAAAAAEBAQEBAAEAAAAAAQACAgL///8AAAABAAACAwL///8AAP8BAAEBAAD//v8BAQEBAgH+/v4AAAAAAAD//wAAAP/+/wAA/wAAAP8BAAAAAAAA/wD/AAAAAP8BAQEA//8AAAICAf//////AAD//wAAAAABAQEAAQD9/f4AAQH//wABAQIDAwL9/f0BAQEBAgL+/f0CAwL+/f4B/wADAgP////8/v8AAQECAwMBBAIKDA0HCAgBAAH59/oKCw3z8/IWGhv18vIaHh/9+Pbv5+b4+Pr7+/v7+/v6+fj9/gAEBAMD/wADBwcICgr7+vv5/PUBAAAAAQAGBgb//v79+vsACP8BAQH9/v8BAAEFBgcA//7+/AD+/wD/AwQEDA7X0NXm5un//gAAAAEAAAD/AP8BAAAA//8AAQH/AP//////AAD+//7//v8A//4A///+/v37+/v8/fz8/Pz9/fz/AAAEAf8AAAD/AAABAAEA/wAAAP////7+/v38/f79/v78///+////AAD/Af//AAD//gD/AQIBAQEBAAEB/wAA/wAA/wD//wAA/wAAAQEB////AAAA/wEAAQEA//8AAQABAP///wD/AQEA/wABAQEA////AAD/AAAAAQEA//8B//8AAAD/AQAAAQEBAQAAAQH/AQEAAAEAAQEAAgABAAAAAQAAAQAAAQEA////AP////////7+/v/+/v79/v/9///9AP//////AAAAAQAAAgECAwQDBwUGAQEBBQUHBgUHBAUFAgIDAgIDAwMFAwQEAQECAAAA//8A/wAAAQIAAgAB/wAAAAAB////AgICAQEBAAAAAAAB///+/wAAAgAA//8A////Af8BAAEAAQAB///+/f/+AQECAgABAAIB//8B/f7/AAEAAP8AAgABAAIBAAABAwMC/Pz9AwMCAQEBAP//AgMC/v3+//7+AQICAgEC//8A/wD9/v//AgABAwIDAAEB/////wAAAAD/AAD////8AQADAAD/AAAAAAAAAgECAQABAAEAAAABAP8AAQEC/wD+//8AAQEA//7/AAEBAAEA//8AAQABAAEBAAAAAAABAAD+AAAB/v7///7/AQIBAAAA//7+AAEBAAD/AQAB/wABAAD//wABAAD/AQAAAAAB////AAAAAAAA//8A/v/+AP8AAgEBAAAA/wD/AAEAAgID////AQICAv/+/v8BAgH9/gECAAD/AwQEAP//AAIA/////////v3+AQEBBAQE+/v8BwcIAgICAP///fz+CQoJ+/z7DA0O/f38DhESAgEA/fz7+vz7BgUG9/z99vb2//7/BAQFAQICAwUEBggIAAEB/Pz8AwMGAgEDDAoIAAAB/vwA//3//v3+/Pj7/f39AAUFBwsK//7+//36/P37AwgI7vX3y8zQ/Pv7/wAAAAABAAAAAQAAAAD/AQABAAAAAAAA//////////////////8A/v7//v3+/fz8/Pr7/P38/fz+//7+BAABAAAAAQABAAD///8AAAIBAP8A//7//v7+/f3//v78/gD//wD/AP8A/wAA/wAA/wAAAAEBAQAAAQD/AQAAAQAAAAABAAAA/wAAAAEBAP//AAH/AP8AAAAAAAAAAAABAQD/AQAAAAEAAP8A/wABAQH/AP8AAAD/AAEAAAEB/wD+AP8AAP8A/wAAAAEAAQAAAAIBAP4BAQABAAEAAAABAAABAAD//wAAAP8A/wAAAP7//v7//v8A//////8A/v7+/gEB/gAAAQAA/wICAQMDAgMDAgAAAf8AAQEAAgEBAwEBAwEAAf8AAP//AP8A/wD/AP7//gIBAQD///3//gAAAQH/AQEDAgMDAwAAAQAAAQEBAAACAgD//////wAAAAAAAP8A/gEBAQAAAP///wD/AP7//f3//wIBAQIBAgEAAv7+/wUDA///AAMDAv///wEAAQQFA/7+/gEAAf7//wL/AAMDAwD/AP/+//7//gMDAgIDA/r7+wYBAgUGBP38/wAA/gAA/wD//wICAv///wAC///+/gACAgAAAAAAAQAAAAEAAQICA/38/P4B/wACAAD/AQD/AAABAQD/AAABAAAA/wAAAAABAgEAAP8AAAD/Af///gD//wABAQAAAAAAAP8AAAAA/wIAAAAAAgAAAP//AAAA/wAA/wABAgEBAP/9/wD/AAAA/wD+/gD/AP8AAAAAAAEAAP/+/wAAAQAA/wEBAAEAAQAAAQH///8BAQECAAEAAgAAAP7/AAEAAAABAf7+AAABAQIBAgAA/////gICAwEBAP8AAAIEAvv8/v//AAIDAwMEBP8D/fz7+efo5vf19fLz8/Hy8wYCBP8A/vv+/wUHCAcKDPr7/f359wL/AAkKCwQB/wgHBv///wEBAgQEBAD+//z7+fb09AYMCwcJCAMDBPv9/f4B//8ICMTJzObm6P//AAEB/wD/AP8AAAAAAAD/AP8BAQH/AP////8AAP//////AP////8A//////39/fz8/fr7+/38/P39/f7//gQBAAEBAQEAAP8AAAAB/wD///4A/////v3//v3+/f7+//3//v7+/v4CAgMA/wAAAAEBAP8AAQABAAIAAQAAAQAA//8B//8BAQIAAAD/AP8AAAEBAf///wEBAQD/AAAA//8BAQH///8A//8BAAH///8AAQAAAQAAAAAB/wAAAAAAAAAAAAAAAAEAAQAA//8BAAAAAAEAAf8BAQAAAQAA/wAB/wABAAD/AP///gD+//7///7+/f7+/fz+//8AAAAAAAEAAAIBAQECAgMCAgIBAgMEBQYGBQcJCgoHCgoEBAUCAwUDBAMBAgH/AAABAQABAAAA/v/9/v0BAQH9/v4BAQABAAIDAAL/AAACAQEAAAAAAAABAgH+/P////7///7//v/+/v0DAwIAAAD//v8BAgEDAAL+AP4BAAH/AP4CAQH//v/9/v0EBAX+/f0BAQIBAQIBAAAAAQABAAH/AP/+/v8CAf4AAAEBAgIAAAD+/wADAwQFAv///v///f8BAQD+/gD/AP//AP8BAP////4B/wH9//4BAAACAQEAAP///wAAAAEAAAAAAQH/AAAC/wEAAQH///8AAP8AAQAAAAH//v4AAgICAAAAAAABAP//AP8AAAD/AAAAAAAAAQD///8AAP8AAAH/AAEA//8AAQH///8BAQEBAAEAAP///wD///8AAQEA//8AAAEAAQAA/v8BAgH//v4BAQH+/v4BAAEAAQAC/wD/AAH/Af8CAQH+//8BAAH9/v4CAgH9/wEBAAEAAP0CAgECAgP+/v8DAgQEBAT////+/v79/PoBAQIHBgMAAAH7+/v////w7+7+/v4KDQ4C//8DAgH69fX8+vkHBQcFBgf5+vsBAQEGBQQGBQUHAwMEAgH+/P0BAQIBAQEBAgMCBAQCAAEGBwX+/fv7+PcDBgf6+/sABQXl7e7Q0tT7/Pv/AAD//wABAAAAAP8AAAEAAQAAAP//AQEA/wD//v/+/////wD/AAD//v/////9/v79/fz8/Pv8/Pz9/v0A/v8EAAEB//4AAP8A/wD/AAEA/wAB//////7+/f39//38//79/v7+//8AAP///wD/AAD//wABAAABAAEAAQAAAQABAAD+AP8AAAH/AAABAQAB/wD/AAABAQD9/gABAAD/AAAB/wD+AQEB/wIB//7+AAEAAP8AAQH//////wD/AAH/AAAAAAAAAQAA/wEA/wEBAAABAQAAAQECAAD+AgEBAQH/AAEAAf8AAAD//wD+///+/v///v/9/gD/AP/+/v3//wT/AAD/AAABAAAAAAAAAQEABQUEBgYFBAQFAQEBAQEBAgIBAAAB//7/AAH+AP8B/wD/AAAA/v7/AAD+AAAA/wABAgIBAgICAQABAQEBAQAB/wD/////AAEAAP4A/v//AP7+AQH//v79AQEBAQEC/////gH/AQEB/v79Af8BAgIBAwQF/f39/fz8AwQEAAAA/v7+AwQDAwED//4A///9/fz8AAMDAQECAP8AAgMC/f3+////AwME/Pz8/f7+AwMFAAD+AgEB/v39AQABAP8A/////wD/AP///wAA/v8BAv8BAQAA/v3/AQEAAAACAAAAAP8AAQEB//8BAQEBAQAA/wEAAAD////+AAEAAAAA/wABAAD/AAD/AAABAP8A//8AAAACAQAA////AQABAAAAAQEA////AAEAAP8A/v8AAAEAAQEA/v8A////AAD/AAD///7/AAAA////AAAAAAEB///+AAEAAP8AAAACAAD/AgMDAP////4AAQAAAgIDAP//AgIDAAD/AQECAAH+BAUFAQEB/vz9/v7+/v8ABQQGAAAA/f78AQEA/P/+BQcIGx8h+/b16fz69PX2+fPzCAcHBgsKAwQECgYIBQcHAQD/BQEB/fv7AgMDAgUBAwD/AgMFAwQGBAYGAgYA/v/9/gEB/v/+/Pj0+/36BA0L1c/R8vP0AP/+AAAAAAAA/v8AAQAA/wH/AP8AAQEB//8AAP8A//////8A//////8A/v////////7+/Pz8+vv7/f39/v3+/P39BAEAAQMCAf7+/wEAAP//AAEBAAAA///+/v///v7+/f38/P7+/P7+/f7/Av//AP8A/wAB/wABAAABAf8AAQAA/wEAAQAAAAABAQAAAP//AAEBAP7/AP8BAQD+/gD/AAAA/wD/AP///wAAAAEAAP8BAAD/AAAAAQEBAAD//wH/Af8A/wABAAAB/wD+AAEBAAAB/wABAAAAAAEAAQAAAQEAAQEAAAAA/wAAAAD//////wD////+/v/+/v7+/v///////v///wAA//7/AP7+/wEBAgIC/wECAgECAf8AAP7/AAD9/gL/AAEBAwAB/v4AAAAAAP//AAAAAAABAQH/Af8A/wEAAf///wAAAAAAAP7//////v7+/gH/AAABAf///wIDAf/+AQAA//39/QEB/wEBAP39/wQDBAQEBf///gAAAf8AAAQFBf////79/gQFBP7//fz6+wMEBAICAAD/A/8D/v///wEBAP39/AICBQEBAf//AP///wMEBP///gEAAAAAAQAAAAEBAf////7//wMA/gAB/wEBBP8AAAAA//8AAP7//gEBAgH/AQEBAP8AAAEB/wAAAQICAQAAAf8BAQEBAAABAP8BAAIAAQAAAAAB///9/////wAAAAAAAQABAAD//wAAAgAAAAABAAEAAP8AAQEA//8AAP8AAAABAAAAAf7+/v7//wABAAAAAQAAAP///wD/AP//////AAAA/gAAAP//AAAAAP///gEAAAICA/z8+wIBAP8AAAICAv7+/gIDA/79/v//AAEAAQABAgD//QEBAAABAgQEBAMCAv79/f39/wMCAwAE/w8PEPz5+e/n6PLs7QD+/w0ODwkMCwUHBwUEBAQEBQAAAQYEBQD9/gQFAwQHBwMDAgD9+wQEBAACAgABAf8A/wMIBgYEBv8CAvf59gYNDPD8++Ll6Pz9/v8AAAAAAAAAAAEBAP8AAAEAAAAAAP8A/wEAAf4A//8AAP//AP//AP7+/v7/AP////3///z9/fz7+vz8/P3+/f78/QQBAQD+AAAAAQAA/wAAAQD//wAAAAD+/////v7+/f3///7+/f0A//7///4A/wEA//8AAAAAAAABAQIA////AP//AAAAAf////8BAAAAAAAAAAABAAAAAAEAAQEB////AAABAQEAAP8A/wH/AAEBAAAAAAAAAf///wD/AAAAAAAAAAABAAABAAEAAQAAAAEAAAEAAAABAAAAAgAAAQAAAQEBAP8AAAAAAAD/AP8A///+/v7+////AP//AP//AP///wD+/v4CAgAAAAAEAwMEBAT+/gECAwMCAgMCAAL/AP////////////0BAQICAgIAAP//AAAAAAD+/v0CAgMBAAEAAQABAQL///8BAAEAAQAAAAEA/wD//v////8B/wD+//8BAQIA////AP/9/PwCAQEBAgH6/PoD/gQDAwIBAQEBAQEAAQABAAIBAf/9/P0EAwQCAf38/f3/AQEBAgEDAgT7+/sAAf///v7////+/v4EAwL8/f0EBAQAAAH+/v4DAgL+/v4AAgH/AAABAP//AAEAAAIAAQEBAQEAAAD//wAAAf8BAAD///7///8CAgL+/QABAv8BAQEBAQEBAQD/AAABAAAAAAD/AAACAAD//gD//////v8BAgEAAP8A/wEAAAH/AP8BAQAA/wD/Af8AAAAAAQEBAQAA/wD/AP//AAD+AP8AAAEAAP7+/v8BAAAA/////////v8AAf///wEAAAAAAAH///8AAAABAgP+/v4AAQIBAf4CAgP/AAACAgL//f0CAgH//wABAQH//v79/gEAAAABAQECAgT//v7/AAACAwMAAgABAgH8+fry7/Dx7e0FBAYQFBYHBwUEBQUA/wAB//4BAQIDBQQICQv7+PgBAgMJCgr6+vkCAwIBAwMAAwL+Af8A/wEFCAoBBgX6/f0DAwsABgPg09Tp6usA//4AAAEAAP8AAAAAAAAAAAAAAAH/AAABAAAAAAAAAAH////////+/v/9/wD+///9///+///8/fz7/Pv7+/r9/Pz9/v4EAAAAAQEBAAEBAP8BAQABAAEA/wAAAP///v7+///+/v/+//////////8AAQAAAAAAAAAAAQABAQEB/wAC/wABAP/+//8BAgEAAAABAQEA//8AAAAA/wD/AP///wAAAAABAP//AAABAAD/AAAAAAAAAAEA//4BAAAAAQEB////AQAA/wAAAAAAAAAAAAAAAQABAQEBAAEBAQAAAQABAAD/AAABAAD/AAAAAQAA/wD/AP////////7+/v7+/v7+/v/9Av8C//8BAgEBAQICAwECAgMBBAMEAgICAAEAAQAAAQD////+/wAAAf//AP///wH/AP///wH/AQABAP/9AQIEAQEBAAD/AQEC/////wD/AAD/AQIB/f78AP///wD////+//7/AwQEBQIF/wMD/f39/f39AQAA/f78//4BBQUF//8BAf8B/wAA/wABAgIB/P38AQEAAwQD/v7+/vz9AQEBAwQD/v7+BQUF/f7+AAAA/wD/AgECAP//AgIC/wD/AgIDAP//AP8AAQEA/gD/AQAAAAEBAQICAQEBAP8AAAD/AQECAP8AAP4AAAIAAQAB/wD9//8BAQEBAAD/AAACAAD+AAACAQD/AQAA/gAA/gD//wD+AAEAAAEBAAAAAAAAAAH/AAAAAAABAAEAAQEB/wAAAAEAAQAA////AAAAAf//AP8BAP//Af8AAQAB//7+/wAAAP8AAAEAAQABAAEAAP///v//AAAAAwIC/v//AP8AAwEB/wIDAQABAQAA/gD///8AAgEC/wEA/v/+AAEAAQEB/v/+AwMD///+AAD/AQIBAP8BAP/+AP//+/r6/Pv7DxMVABQS+vb2APr5Av3+/Pz9AQIBBQUEAwID/f8A/gEDBwcIAQUGAwD+AP78AwMFAQMCAgEC/gIBAggH/gMDAgQEBgMD5+/uzdHT9vb3//8AAAAAAAAAAAABAAD+AAAAAP//AAEA/wAAAf8B//7///7+/v39/f7+//7//v8A//8A/v7+/f38+/v7/Pz8+/v8/Pz8BAABAQAAAAEAAf8A//8AAAD/AQH/AAAA/gD+/f7+/v79/f7//v///gD//gABAv//AAAAAP8BAP8BAv8AAQAA/wAAAAAAAAABAQEAAf///wABAAD//wEAAAEBAf///wEAAP8BAAD/AAAA/wAAAAAAAP///wAA/wAA/wAAAAEAAf8CAgD9/wAAAQAAAQEBAQEBAQEAAQAAAAEAAgAA/gAAAP8A/wABAAD/AAAAAAEAAP/////+//39/v/+//79/f/9/QADBAEBAgAA/wMDBAQGBf7+/wMDAwAA//7//wH/AAECAQIBAf////////4A/QD/AP///gABAP8AAAMDBAAA/wAAAAABAQEBAf4A/gAAAAD/AP/+/QEAAP4A/////f/+/v//AAD8/AMDBAAAAAICAgEBAPz7+/7+/v3/Af3+/QMDBQICAgUEBgICAgAAAAICAv7//v79/QAAAQIDA/79/f///wEBAv39/gMDAv7//wD/AP8A/gEBAwEBAf////3+/gEBAf///wABAQD/Af///wIAAAAAAAAAAAAA/wD/AQD/AP7//QEBAQD/AP8A/gABAAEBAQEBAQAAAQAA/wEAAQAA///+AAAB/wAAAP//////AP///wD+/gABAQIBAQAAAAEBAAAAAP8AAP8A/wAAAQD/AP4A/wAAAAEAAQABAAIB//4AAP4AAAD//wABAAH//wABAQEAAQAA//7//wAA/wAAAAEAAf7+/v7//gIBAwEAAAABAP//AAD/AP//AAMDAwD//wAAAAH+Af8AAf8A/gECAgIBAf79//8CAP/9/wD/AP//AP39/f8A/woNDQgMCgYEA/Tv7fLp6f/8+wkLCwECAQABAAMBBAIBAQIDBQcJCAECAQUDCP/9/AMDAgACAv0CAQQGBf4CAwAEAwUGB/v+/+ns7+bn6v7+/wD/AQAA/wAAAQEB////AAEAAP8BAAAAAAAAAAAA/wABAP8AAf8AAf/+//7+/v7+////AP////79/vz7+/r6+vv8+//+/gQBAAABAQEAAP8AAAAA/wAAAQAAAP/+///+//7+/v3///////7+//7//wAAAAAAAAAA/wEBAAEAAAABAQH//wH/AAAAAAAAAAAAAP8AAAAAAAABAQH///7/AAAAAAD/AAAAAQAA/wAAAAAAAQAA/wAAAAAAAAAAAAAAAAD/AP8AAP8AAQAAAP8BAAAAAAAAAAAAAAABAAD/AP8AAP8AAQAAAP8AAAAAAAD/AAH///8AAAH///7+/v/+/v7/AP8AAAABAAEBAQEAAQAB/gEBAAEA//4AAAAAAQEBAQABAQD////+/wAAAQAAAP///wABAP8BAQAAAAEBAgEBAQEBAQIBAAABAAD///8AAQAAAAAAAP8AAP//AP8AAP3///7//v4BAP///v77/vwBAQIDAgIAAQEEBgb+/f79/fwAAAAA/wAA/wH9/v0C/wEBAgEBAgMEAgP/AQD9/P3///8CAwP7/Pv//fsEBAUAAQEBAAAAAgH//v/+AP4C/wACAgP7+/oDAwMBAAEA//4BAAAAAAD/AQEBAAAA/wD+AAADAgAAAAABAQL///4BAQH/AAD/AAABAf8AAAAAAP7//wEBAgH/AAABAQD/AAAA//8A/wD/AAD/AAABAQABAQH/AP8BAAEAAAEBAAAAAQAA/wD+AP8BAQAB/wAAAgAAAAH/////AP////8A/v////8A/wAAAAD///8BAAD+//7//v4BAQABAQH///7//wACAQIBAP///wAAAAAA/wAAAQECAQL//wD/AP8A//8BAQIBAP8BAgMCAQD+/v7/AAAAAAAAAAAAAQAAAgEBAQIEBQYACgH//fz9+vkDAgMKCgz7AvcFBwf+/v7//v8BAgD+/v4GCQgGCgkDAQH+APwB/wACBAH+AAEAAwMAAwMBBQMDCAj+AgPq6OvJysv49fcA/wD/AP////8AAAAA//8AAAEAAAABAAD///8BAQD/AAAA///////////+//7+/////v////7//v/+/f38/P37+/z7/Pv8/f0EAQEBAAAAAP8A/////wABAQEAAAEBAQD///7+//7+/v39//7///3/AAX/AAD/AQAAAAAAAAECAQEB//8BAAAAAAAAAAEBAQEBAAAAAQD/AP8A/gD/AAABAAD+AAAAAAAAAP8AAAAAAAAAAAABAAH/AQEB////AAEAAP8AAAEBAf4AAQABAAEBAQEBAAAAAQEAAAEAAAAAAQEAAQABAQAAAQEAAf8AAQABAAD/AQEB//////4A/v7+/v7///7//v///v/+Af79AAAB/f39/v7+AQECAAEBAQABAAAA//7+AAIBAQIAAQAB/gD+AP8A////AQEBAQL///8BAP8BAP/9/v8AAP8BAf/+/wAAAgECAP///v7+/f38//39/fz8Af///f/+AAAAAQACAgP//QEAA/8C/wEBAwMDAwME/wAA//3+/wAA/v7+/wIBA/4CAQMBAAECAQD/BQUF/f39/fz7AQAAAwME/Pv7AwMDAQIBAP/+AgMD/fz9/wP+AAD/AQEB//7+////AgIC/wD///8CAwD//wAA/wD/AAAAAAEC/wAAAQAAAAAAAQEB//7+AQEBAAAB/wD/AQAAAAD/AP8BAQEAAAEAAP///wAA/wD/AP8AAQAAAAAAAAEA//7/AAABAQEA/wAA////AQEBAQEBAf8A/wH/AQAB/wAA//4AAAABAQAA/wEA//7+AP8AAP//AQEB/v/9//7/////AAEBAP7+/wAAAAAB//7/AAEBAQAA/wAAAQIBAAAA//8AAAD/AAAAAAEAAAH/AQABAwIC/wD/AQEBAgEC/f/+/wAAAgIB//4A/gEB/P3+/Pv7Af//////BAUF+QICAQICAgECAgQC/fz9AQEABwgGBAYGAwQE//78AAAAAAQCAgYGAP8AAQIC/AD/AgQDAAQD+/r+09PT3Nzc+vr6/wAAAAAAAQAB/wD/AAEBAP//AAD//wABAAAA/wAAAQD//wABAP///////v7///7//v/+/v7//wD//f79/fz6+/z7/fz9/fz9BAEAAAAAAAAB/wAAAQEBAQAAAAAA/wAAAP///v7//v7///7+/v8AAAD/AAAAAAAAAQEBAQEBAQECAgECAgD+AgAA/gD/AAAAAAEAAf8AAAAA/wEAAf8A/wEAAQAB////AAEAAP8AAAABAQD//gD/AP8AAAAAAQAA/wAAAAEAAP4B/wD//wD/AAAAAAEAAP8AAQEAAQECAAD9AQEBAQEBAAAAAAAA/wAAAAD/AP7+/v//AP8A///+//7+/v7+/v/+AAD//wD/AP8AAP8A///+/wMEAwEBAf8A/wAA/gEBAwAA/v//AQABAQD/AAAA/wEBAAECAAEAAAD//gD/Af3+/wMAAP7+//8BAQMDA/3+/gD//v7+/f/+/fz9/P/9/QH//v3+/f7+/wIAAQIEBAH9/fz/AAABAgEDAgMCBAIDBAIFBQEAAP///wEBAv8CAvr7/AMDAgQDBP7/AAAAAQQFB/z9+wEAAAUCA/v8/AUFBf8AAAD+/QEAAAMBBP///gAAAP8AAAEAAPz9/AICAgIBAQIBAQAAAP///wEBAf///wEBAP/+/wAAAP///wAA/wEAAQH//wAAAAABAQEBAQEBAAEBAP8AAP8AAAAAAP////7//gEBAQH/AP///wECAQAA//8AAf8A/wAAAAD/AAEAAQABAAEAAQAAAAD///8A/wAAAAECAQD+/wEBAAAA//8A//8A/wD//////wABAP///wAAAP//AAEA/wEBAQD//v8BAv8BAQEAAAAAAQAA/gAAAAAAAAH/Af4AAAAB/wIBAv3+/gIBAvwA/QEAAAMCAgD///0A/f7//wICAgcJCfv39wEBAff4+P39/QQFBv7//gUDBAQIA/79/v4A/vv7+P39AQMEAgADAgEBAf7+/gACA/3+/gADAwEEBPv8/uHi4tLR0vr4+AAAAAD/AAD/AAAA/wD/AP8A/wAAAAD/AQEA//8AAAH/Af8A/wH/AP8A//7//gAAAP8A//////7+/v7+//7+//z8/fz7+/v7/P7//gQAAQABAAEAAAEAAP4AAP8BAQIAAAD//wD+/v///v///v7+/v////7///8BAgABAQABAQECAQIBAQIAAQIAAAEAAAAAAAAA/wAAAQAAAAAAAAEAAP8AAQABAQH//wEBAf/+/wEAAf8B/wABAAH/Af8C/wD+AQAA/gH/AP8AAP8A/wAAAAEBAQH+/wAAAAAAAAAAAAEAAAICAf8AAAAAAAABAQAAAAEAAAD+AP8B/v7+/fz9/f39/v7//wD//wEAAAD/AAEAAQECAAEBAAEBAgIAAAD///8A//4B/gIAAv4AAAH//v/+AAECAAIAAQD/AAAA/gAAAf///////wACAQH9//8AAQIDAwT//QD9/v3//fv9+/v+/P3///4A/wEA/v79+vr7/vv/AAEGBQYFBggCAgL9/v39/P8BAQMDBAMCBAUFBAQDAwQAAAECAQIDBwT8/Pz6+/sFBQYCAwP8+/sIBwr5+vgAAf8DAwT9/v4DAwIA/wABAQD+/v7///79/f0EBAQCAwP//f4BAgEBAQEAAAD+/v4EAwP///8AAAD///8BAQH//wAA/v8CAgEAAP//AAACAQEAAP8AAAEBAQEAAQABAP///v///wD///4BAAABAQEBAQABAQEAAAAAAQH///4AAQABAAEBAQD///8B/wD/AAEBAgEAAAACAgL///7+/f8AAAAAAAD///8A/wD///8A/gABAAD///8AAAD/AAAAAAD/AAAB/wD/AAAA//7//wH/AAAAAQAAAAEAAAD9/v0BAAEAAAACAQL+//8CAgH+/v8BAQEAAQIAAP//AAAAAQEFBgYEBQX9/PwEAwP49fMLDA/7AwX58/L///7+//8C/wIDBAT//v3//vwBAwP+/v0AAgEBAAD+//79/Pz+AQIICgj/AQLo6OvCw8To6Of///8AAP8AAQAA/wD/AQEAAP8BAAAA/wD+Af8AAAAAAAD/AP4BAAH/AAAA/wAA/wAAAP///wD/AP///////v79/f38/fv7/Pv6+/r9/f0EAAABAAEBAAAAAQEA//8AAP//AQAAAAD////+/v79/v7+///+/////wAAAAAAAAEAAQACAQEBAgEDAQIC//0AAAAAAAD/AAEAAAD/AP8AAAD/AAAAAAAB/wD/AAAAAAABAQH/AQAB/v8AAAD/AQAB/gD/AP///wH/AAAB//8AAAAAAAAA/wAAAQAAAAABAAAAAAD/AQAAAAAAAQEAAQBCasLCAAEAAElEQVQAAAAAAAAAAP//AQD/AP8A/v79/vz9/v7//f3+/v79/wD//wAA/wD///8AAAEBAgICAAD///7+AAAC/gL/Af7+AQABAQEAAgEBAAD/AP8AAQIA///+AP8A/wD/AP/+/QECAf//AwMA/vz7/v///v79AP/+//37/fr6/Pr6AP7+//7//f/+/Pz79/f39/f5CAoKBwcHAwYGAwUGAgQFBP0GBf////3+AwP+BgYH/f7+/vv8AwMDAQIC/v/+BAIEAwUF+fr5AwQF/Pv6AgEAAAEB//7/AAAB///+/f7+AQAB/f39AQEA/v79AQEBAAABAAAA/vz+AQMCAP7/AAAAAP8AAAEBAAEBAP//AQEA////AAEAAgEC/wD/AQABAQEAAAAAAP8A/wAAAAAAAP//AQAAAAECAQD//wABAAAAAQEBAQAA/v//AwECAAEBAQAB/wAAAAEBAgEB/wD/AP///////f7/AP/+//7/AP8A//8AAf8AAQAA/wEAAf8AAAAA////AQABAAD//wEB/wAAAAEA//8AAQEA//7//wABAQH/AQECAgEAAAEBAP7//v//////AAD/AAEAAgIC/f//AAAAAP//AgIC/f/+AP//BQYG+f38BQYHAgIDAwEAAf78/fr6/v39AwUFAQAA/f/+AgMD/v3+AQQDAP///v/+/Pr9+/38CQ4PAAIE9/j629zd3d3e+fn5//39AAAAAf8A/wEAAP//AAAAAAAB/wD/AP8AAAEAAP8AAAEB/wD/AQABAAAA///////////+//7///8A/v7//v7+/fz9/Pv7/Pz8/f7+ACuB1H4EAAAAAQAAAAAAAP8AAAD/AAAA/wAAAAD///7+/////////v7+/v7+AAD//wD/AAABAAECAQEDAQMDAgID/gEBAAAAAAABAP8AAAEAAAH/AP8AAAD/AAD/AAAAAAAAAQAA/wEA//4BAAH/AAABAAD/AAAAAAIBAf4A///+AAABAAD/AP//AAD//wAAAAAA/wAAAAEAAAAAAQABAAEBAQAAAQAAAQAAAQEAAAAAAAD/AAAA/f7//f38/v7+AP8AAAD/AP7///7/AwICAgIC/gIC//7+//8AAAD/AP//AQEBAQEAAAAB////AP//AQIB/v7/AAD//wD/AQAB/wAAAQH/AAD+//4B/wD///7//////vz9AP7/AwME/wUA+vn3/fz6/f38+/r68e/t6+zt/P7/EBMUDA0PBwoMAgICBQUGAwMDBAUGBQcHCgkKCAgKAwMB/v7/AgEBAAEA/P7+Af//AwMDAP/+AwMD/f79AQAB/v7+AP/9/f7+AgIABAMDAQEA/v79AQAAAgMDAQEA//8AAAEAAf7//gH/AQIB/v/9AQABAf4CAAAAAAAB/v//BAAC/wAAAf8AAAIB///+AAAAAQEBAP/////+/v/+/wAAAP/+AQACAQIAAAAAAP///wAAAgICAAEA/wAAAAD/AQEB//8AAAD/AAAA////AP//Af8A/v//AQAA/wEBAgEB/////v3+AQAA/gD/AP/+/wAAAQD//wAAAgEBAAEA//8AAAAB/wAAAAEBAAD///8AAAD+////AAD+AAH/Af4A////AAEAAgEC/gIAAv7+/QD/AAEAAP8AAQEAAQMD/Pv6AQECAAID/wD8/f798O7uBwYDCgoM/wAA+vv7AP/+AwD/AQICAAICAQEB/f39+vn4AwcGAgUF9/r61tnb0tLS+ff3//7+AAAAAQAA/wAAAAD/AAABAAD/AP//AAEBAAAAAQD//wEAAAAAAAABAAAA/gAAAAAA/v7//v8A//8A//8A/wAA/f3+/Pz8/P38+/v6/f39BAEBAAAAAAEAAP8A//8BAQAA/wH//wD///8A///+//7+/v///v///v///wEBAQEBAQEBAAICAQIBAgEBAgIBAf//AAAAAP8AAAH/AAD/AQAA/wAAAQEA/wEA//8BAf7//wH/AP8B/wD+AQEB////AAABAAD+/wD/AAAAAQAA/gAAAP8BAQH/AQEAAQABAAEBAAAAAQAAAP8A/wAAAAAAAf//AAABAAABAAD/AAABAP8AAAAA////AP//AP8CAQD/AAABAAIBAQEBAQMCA/8DAP4C/v///wEBAAICAgEBAQAAAAEAAAEBAQABAAAA/wD//v7+/gABAAIBAgECAQAA/wD/Af8A/wAAAAAAAQIBAgEFAgD+BAH//gEEBP8BAQEDAwH7+v38+wIBAQYFA/n19fLx7vj6+g37/AgJCv7//gMBBPr6+gP39vr39wcI9QcHCAoJCwQFBgMFBP///wAA//3+/gICAf7//gD+/wIEA/8BAP79/v7+/fr6+wkICAD//wEBAv8B//78/P0EBgQDAf8AAP8BAP8A/wH/Af7//wEBAAEC/wABAf8A/wAA/wAAAAD+//8BAQH//wABAf///wAAAP7+/v///wD+/wEAAP8AAP8A/wL/AQABAAAAAAEAAP/+//8BAAEB//7/AQEBAQAA////AP8AAP/+//4A/wAA/wEBAf///wD/AAAAAAECAQL/Av39/P7//gEA/wAAAQACAQD/AP///v/+AQEBAQAAAAD+/wACAQD//wEAAf8A/wEBAQAA//8AAP8B/wEBAf///wEAAAEBAP8BAgD+/wEAAv4A/QACAv79/f//AAADAgD9AQIEBAQFBgwPDv37+v///gMEBQkDBP/+/QD//AAAAPz//v39/Pn4+P8B/wQDCfv9/Ovt8MvMzN3c3fv6+v3+/v8AAAD///8BAAD/AQEAAP//AAABAQEAAAAAAP8AAAD/AAAA/wABAQAAAAD/AP7+////AP/+//////7+/v///////vz8+/38/fz8/Pz9/gQBAAEBAQAAAQABAQEA/wABAQEBAAAAAAD//v////7//v7+/v7//wD///8A/wABAAEBAQEBAgECAwECAgL9AAEAAP//AAABAP8AAAEAAAAAAQAA/wAAAAEAAAEB//4BAAD/AAAA/wAAAP//AAAAAAEB/wH/AAEAAf8A//8A/wAAAAAB////AAAAAQABAAAAAAEBAAABAQAAAAAAAP//Af8CAQD+/wAAAAAAAP///////v//////////AP/+/v7+//8AAAEAAgIBAgEC/wAC/gD//wAAAf8AAAD///4AAQEAAAEAAAD///8BAQAAAP7///7/AP8A/v/+AgAC/wMBAQD/AAAAAAABAAECAgD//wECAQIAAQAAAP8C/v4EAP8AAgEDBAX9/v8OEf8DBgb75ubh5eUBAwYJC+0EBAQKCQkRExMMCwwMCwr+/AH9+wH6AP7+/v0HBggFBwcDAwQDBAIDAwL+/f4CAQL/Af/8/fz//v7///4AAP8DAgL+//7//v78//wCAQEBAwMB/fwBBAT///4FAwUAAAD+//4BAQEAAAH///8BAQH///8A/wD/AAAAAQACAgEBAQEA//8AAAH/AP8AAAAAAP8A////AQAAAAAAAAD/AAABAAAAAAD/AAAAAf8BAAH//wEBAQEBAQD//wEAAP8A//8AAQEA/f7+/v4BAAECAQD8/v3+/v4A//////8AAAAAAAD+//4BAAEA/gH/AAAA/wAAAAIAAAEAAP4AAAEA/wABAQEAAAABAP8BAQD+/gEAAP8BAAH/Af8A/wD+///+/v8BAQAAAgD+/P8AAQEB//////8BAwIB/wEBBwH/AwMA/f0LDxH28vD7+vv+//8A//8AAP8BAQAAAf/////8+/z7+/oHCggABAL19vbU1dXf3t/6+/r+//4AAP8AAAH/AAABAP8AAAD/AAAAAQAAAAAAAAAAAAAB/wEAAP//AQEA/wD//wAAAf8A/wD//wD//v/+/gD//wD+/gD+/gD9/f39/f38+/z9/PwEAAAAAAEBAAAA////AAEBAAAAAAAAAP///////f79/v7+//7///////8AAAAAAAAAAQEAAQECAQECAQIC/wAC/wABAAAAAAAAAAAAAAH/AP4BAAD/AAD/AP///wAAAAAAAQEAAAAAAP8AAf///wH/AAAAAAAAAAAAAQEBAQEB/wD/AAEBAP//AQAAAAEBAQEA/wAAAAABAAEBAQAAAQAB/wEAAAAA////AAABAQAAAAD/////////////AP8AAAABAAAAAP///wAAAAAAAAAA///9//8AAAEAAAD+Av4CAAH//wABAQH//v8AAP//////AAD+/v/9Af39AP8EAAAEAgICAQAAAAD/AAAC///+/f7/AwME//7/AQIBAwMEAQIC//3+//8AAAACBQYH+Pf64+ft4OLm+fviBQYHCAoIGxkcAgEBCQcFFhQSDw8MCwsLEhIVBQUC+/sA/v/9+vv/BAYGBAMEAAAAAAICAf3+//8AAP7+/v7+/v78AP0AAwAC/v7+/wEBAgMC/wD//v/+//3+/wT/AQEBAP8AAQEABAMC/f79//79AQEBAQECAP//AgACAf8A///+AAAAAAD/AP8AAAD+/vz+////AAEBAQACAQEAAQEAAP//AAEB/wAAAQAB/v8AAgEAAAAB//4A/wH/AP//////////AAAAAgEB/v7//v7+/f7+AP//AQAA/wD/AAD/AAAAAgEC/////wD/AQEBAP7/AAH+/v4AAQIAAP8AAAEAAgAC/gD/AAAA//8AAQEA/v4AAQAAAP//AQEB////AQEBAP8AAgIDAAMA/////v3+AgIC//7//wH/AP4CAgMD/QQEAgQFBQYG/P7+AQAA/P78/v79AQAAAAEA/wD++Pn3/f/9AAMC9/n53eHlzs/Q9fX1//7+AP////8AAAD/AAEA//8AAAAAAAEAAP8AAAD//wAAAAAAAAEA/wAAAP8AAAAAAQEA/wAA//8A/v0A/v7//v3//v7////+//7+/P39/P38/fz8/Pz7BAEBAQEAAAAAAQAAAAD/AAAB//8AAP8AAP///v79/v3+/P3//P7+/QD//wAAAAAAAAAAAAIBAQIBAQABAv8CAf//Af//AP//AAECAAD/AQEB//8AAAD/AAABAQD/AAAB/wD+Af///wABAAABAQD+AP8B/gD/AQD///8A////AAD/AAAAAQEBAf//AQAAAAAAAAAAAAAAAAEAAAABAQEBAAAAAP8AAAEBAAD+//8A/////wD///7+/f7+/f///wAA/////////wD///7//f7//wAAAQEBAAECAQEBAgABAAD/AAAAAP//AP///v///wAA//79/f8A/gEBAQD//wL/AAAAAAABAf/+/wAA/wMDBAD9/QAAAAMEAwEBAAADA/79/f4C/gL7/AkLC/76BAwNDCAgIfb5/tLW0w8SExIOEvT6+/79/Ors9urt7RANCxwaF/r6+Q339Q0NDwgKCgMFBvr4/gEICQICAgH/AAECAQEAAQD/Af///vz8/QEBAQAB/v7//wIAAgD/AP//AP38+wEBAv/////+/wEBAAEAAf79/f7//QIBAv8BAAIBAP8BAP8A/wABAAEAAP///wEAAP//AP///////v8AAAMAAgABAAD////+/gECAwAAAAL/Af4A/gEAAv//AAEA//8AAQD///7+/gAAAQD//wEBAf7//v///gD//gICAgH+//7//gH/AQABAAAAAAD//wAAAQEAAAAAAAABAQAAAQEAAAEAAQACAP8A//7//v///gABAgD/AAAAAQIBAP7//gAAAQIBAf4AAQAB/gAAAAH+AAMDBP/+/gAAAQABAP8A/v////4B/QABAAIDAgEEA/3///r6+QICAAUFBP3+Af39/AEBAQABAwYKCQADAPr+/dze4srL0evs7v7+/wAAAAAAAAAAAAAAAAD/AAEAAP8AAAAAAAABAAD/AAAAAAAAAAD//wAAAAABAAD/AP//AAH/AP///wAA/v/////+/v7+/v78//4E//37/fz7+/7+/vv8/AQA//8AAAAAAQABAAH/AP8BAAEA/wAA//////7+//7+/v7//v7/////AP7//v//AP8AAAD/AP8AAQEBAQEAAAL///8AAAAAAAABAAH/AP////8A/wD//wAAAAEBAf4A/gD/AP8BAAD+//8A//8AAf8A/wAAAf8AAQAA/gABAQAA/wEAAf7+/wAAAAABAAAAAAEBAQAAAQAAAAEBAAAA/wABAAEBAf8AAAAAAAEAAP//AP79/v39/P3+/f79/v39/f7+/v3+/v4CAgIA/wEB/wAAAAAAAAD+/v8BAv4DAQICAgEAAAD///8A/wAAAQH//v4BAQIA/wABAQMDAgQA/wEAAAEA//8DBAQBAQIBAAECAgP+/v7/AAAA/wABAQACBAQA/P4EBgf//v76/f0ODhDj5OkMDAoODxEOERT/AgL/AQD29/f+/v399/ry9Pj2+Prz9fgZF/r8+fgICgoMDhAICQv6+vcFAwYBAQH9/fwDAgL+//0BAQEBAQABAAH9/v4BAAH+AP8D///9/fwEAgQBAAH+/P0BBAAAAAH9/v0CAgEBAAABAP/+/wD///4B/gD/AQAB/gIAAQAA////AAD////+/v4A//8BAQIAAAAAAAD//wAAAQAAAP8AAAH/AP8AAAEAAQEAAAAAAQH//v8AAP8AAAAAAP7//wD+//3//v7+//8A/wAA////AP8AAAAAAP////8A//8AAAABAQD/AAAB/wEBAP/+//8AAAAA/wD//v8AAQD/AAABAQEA/wD/AAABAP8BAQECAAIBAQD/AAAB//8AAAIAAf8CAgAA/wD9AQADAwECAQL+AP38/fwCAgEAAAIDAgEAAf8CAQIAAgAA//8BAgMFBAIB/QMBAAD/AgAA//z8//z3+Pnj4uXj5OX7+vr//wAAAAAA//8AAAD/AAAAAP8A/wEAAAD/AP8A/wAAAAABAAD/AAAAAQEAAP8A/wAAAP8AAQEAAAD/AP/+/v/+///+//7////+AP7+/v79/f39/f36+fr8+/0EAQEA/wAAAP8A/wEAAP8A/wAAAQD/AAD//v7//v7+//7+/v3///7+//7//v/+AQEC/wD/AAAAAQAAAQEBAQAA/wD/AP8BAAAA/wAAAQAAAAEB////AQEBAAD+//8BAAH/AP8A/wEBAP8C/wD+AP//AAAAAP8A/wD/AAAA/wAAAAEAAP4AAQAAAAAAAAAAAAAAAAABAAABAQEAAQACAQEBAQAAAAABAAD/AAEAAP8AAP8A///+/wD/AAAA/v7+/P39/Pz9AwP9//8DAAAA/wAAAAABAAEAAQAAAP///f79AAICAgABAQAA/wECAP79AAEBAP8AAwMFAgICAQECAgECAAABAAEC//8AAQEBAAEC///+AQICAP//AAABAAAA//8AAgMCAwUB/v38AwUJBAb8Hx4c+v39HBweAgcKAgQC/f37/v8ABwgM+vj49vf53fHy6ert5OTmIyEeFBIP+Pf3Dg8RCg0P/wX+Af8AAQICAAD+Af8A//7/AP8A/f39/v/+BAMEAwME/v7+Av39/gEB/gH+AgICAP8B//8A/wAAAQACAAEA/wECAQABAQEAAAH/AP///wD+AP8A/wAA////AQD///7+AAAAAgEAAAAA////AQEBAAAA//8A///+AP8AAQEBAP/+AQEC////AQD/////AP8A//8A/v/+/v3+AP7+AP8AAQAB/wD//////v7/AQAAAAAAAAEAAAABAQAAAQAB///9/f4AAQEAAAABAAAAAAEA/wAAAQAAAP8AAAH/AQABAAEAAP//AQAA////AAAAAgIB/f7/AQEBAQAB////AwID/////wL+AAD/BAEDAP8B/vz9/QIBAwQGBQkI/vwJ/Pj4/v39AgEAAAD/AAIAAQMBBgIGAP0B7vDy7e/y+/v9////AP8AAAAAAAEBAQD/AP///wABAAAAAQD/AP8A/wAA/wABAQAAAAH/AP8AAAAAAAAAAAABAP8A/wEAAP/+//////////8A/v8A//8A/v///f7+/Pv7+/z8/P39BAAAAAIBAAEA/wAA/wAAAf8A/wEAAf8AAAAAAP/+//3+/v3+/f3+////////AAAB/wD+////////AAAAAf8CAgH+Af//AAD/AAD/AP8BAAD/AAAAAQAA////AQAB/wD/AAAAAQH//gAA/wEAAP8BAAH/AP8AAAAAAQAA/wEAAP8AAAAAAQAA/wABAQAAAgAB/wABAAEAAAABAQEBAAEBAQEBAAEAAAEAAAAA//8A/gD//v7+//79/vv7/P79/v/9/v///wAAAf8BAAEAAQEB///+/gEAAAACAQEAAQAA/v79/v8BAQAA/wEAAQEBAQD/AQABAAAAAQABAwEBAgACAgECAQAAAAIBAgEBAAEBAQECAwD///39/gD/AAABAgMDAgAAAAgEBfz8/AEAAQQEBP/9/BcVE/r+Au/2+/n++/39/PLy9fv57/j29wICAvr6+O3u7ubn6ezt7yAcGCAdGvkU9RP8/A4REv3//gAAAQYGBwICAgEBAf///f3//wH///39+wMDA/3+/QMEBP79/QICAv/+/P79/wABAQEBAf7+AAECAf8AAAMBAAAA/wD/AAAB/wAAAAD/AAAA///+/v8AAQAA/wEAAgAAAP///wEBAAAAAgEAAf4AAAAA//8AAQH///8BAAAA/wAAAAD/AP//AP7+/QD/AAD+/v79/AH/AP7//wD/AP///wABAAICAf//AAEAAP//AP/+/v4A/wIBAv//AAICAgAAAP//AP///gEAAQABAP//AAAB/wH/AAABAAD/AAECA////gD/AAD/AP8AAAEAAQABAQAAAAACAAEBAf7+/gD/AgH//gIBAv8A/wMEA///B//9/vsEBf4AAfz+/fn29gQGBQQHBf8BAQMDAwMEA/37/N3h5ePl5vz9+wAAAAABAP/+//8AAAAAAAAAAQAA/wAB////AAAA/wEAAQAA/wAAAAEAAP8A/wAAAAEBAAAAAP//AAAAAP8AAQAA////AP////7////+//////39/fz9/f3+/P38/QQAAQAAAAABAQEAAAH/AP8B/wD/AP8A//8A///+//3//v7+/v79/v39/v0FAP7//wIAAQACAgIBAgH/AAEC/wH//gH/Av8AAAD/AP8B////AAAAAf8A/wEAAv8B/gH/AQEAAf8A/wD/AAD/AAD//wD+AAH///8A/wAAAAEAAP8AAAAAAQAB/wH///8BAf8B/wABAAEBAQABAAABAQEBAAEAAAABAQAAAAAA/wAAAP////8BAf8AAP/+//3+//8AAQEBAQH/AP8B/wACAQL9AQIBAv7//wACAAECAQH+/gD/AP4A/wEBAgIAAAABAAECAgL//wH/AP8A////AP8BAAABAQEBAAH/Af8BAAL+//0A/gD/AAEBAQH+//79/fwD/gIBAQH/AgEEBAQCAwP9+fkQFRYBAwYEBwwG7PHq8PL//gEBAQL9/f0JCAjy8vIBAAD+/gD4/P3i5urq7O/u7u8mIR339fUY/PkOERMBAgP8/PoCAgIAAAECAwMDAwP6+vgA/wH8/PoBAgP9/Pz+//4GBgX8/P8BAQUBAQIBAgP//v4DAwQCAQD+/vwB/wEDAwMB/wEBAAD/AP////4BAAD/AP8AAAAAAAD//wABAf///gAAAf7/AgIAAAD/AP8BAAH/AAEBAAEA//7/AAH//v///////v4A/wD+/P0A/v/9/v7///4AAAD//wAAAAAAAgIBAQH//wAAAP8AAQADAQIAAAABAQMAAAAA////AP4A/wD+////AQABAAAA/wEAAQABAQAAAQAA//8BAAEAAQAAAAAAAQEBAQEAAAD/AAABAAH+///+/v8A/wABAgQAAf0B/wIA//4FAAAA/v4HCQj9+gv//fv9/Pv9//0EAgYEBwYDBAX/AQPh5eDe4OL19vYA/wAAAAEAAP//AAAAAAAA/////wAAAQAA/wEBAQD/AAD/AP8A/wAAAP8AAAAAAQAB/wD/AAABAAAAAf8A/wAA/wH+/wD////+//7+/v7+//3+/wP+/v/9/P39/Pz8/fwEAAAAAAAAAAEAAQAAAP8AAAH/AAEBAP////////7+/f79/v7+/v/+/v7+/v//AwEAAAAAAAAAAAABAgECAAEBAAEB///+/wAAAgAAAAABAAH/Af8BAAH/Af4A/gAAAP8AAAAAAAEAAAAAAQH/AP//Af///wEAAP8AAAD/AAAA/wD/AAAA/wD/AAH/AP8AAQAAAQABAAEBAQEBAAAAAAEAAAACAP///wD/AAD/AAABAQD+AAAAAAH/AQEB////AAAAAAEBAQABAAEC/gH/AAEAAQAB/wD+//8A/wD/AAEAAf4A/wD///39AQECAwMEAAAAAQEBAgECAAEBAAAAAAAAAP//AAEC//4A/QH+BAMC/wD/AgEAAAAB/v8AAf8A/v/+AP8ABAEC/Pz/AwMDAgQE/v8ACxERFPv8/P8A+/v8/f3+DQ8S/vz/9/T09fT1CQkIAAABAQEA/v8C9vn92N7l9/f4J/j4+vn5GBz5DxATBQYG/QIBAAEBBAUF/v/+BAQF+/r7//7+///////+AAEA/f0BAAAD/QEBAgIC///+AgIC//8C//4AAQAAAQEAAP///wH/AP8AAAAAAP8A////AAEBAP///wH+AgAD//7/AAAAAAD+AAABAP8AAAAA/wAAAgEBAP///wEB//4A////AP//AP8A/f39/fz8//79////AAD//v7+AAABAwEDAAH/AAAAAAD/AP8AAAAA/v7+AP8AAAD/AAAB/wD//wAAAgAAAAIBAwEBAP8A/v//AAAAAP8AAAABAAD/AAEBAAABAAD/AP8A/wEAAQEA//8AAQEAAAABAwMEAAAA///+/wABAAD/AP7+/wAAAwUGCAwNAwMDAgMC/wICAgQCCxANAQMD/v//7vDy1tnb7ezu/vz+AAAAAAD/////AAH/Af8A/wABAQEAAAD//wD///8AAAD/AP8AAAAAAAAAAAAAAAAAAAEAAP8A/wAAAQABAAAAAAAAAAAA//7//v////7+/v7///4A/f3++/z8/Pz9/fz7BAEAAQEAAAEBAQAAAP8BAQAAAAH/AP8BAf8A///+/v/+/v7+/v/+/////wD/AAAAAAAAAAABAAEBAQECAQABAgEAAgAA/v//AAABAAAAAAD/AQAB////AAEBAAEAAAABAP//AAAAAAAAAAD/AAH/Af///wD//wAA/wAAAP8AAAEAAf8A/gAAAAD/AP8AAf//AQABAQEAAAAAAP8AAAEAAAEBAAABAAEBAQAA/wEBAAABAgEBAf////39/P/+/vz+/P37+/8FBwEAAP4AAQABAgAB/QD//wAAAQAAAAH/AP4A/wAAAQAAAAD/AAAAAAABAwMBAQABAQABAP/+///+/v3//wEB/wQDBAIBAgAAAP8AAAEAAgAAAQMBAP0B/f///v//AP39/gMDBP3+/f/+/wMDAv8ABBASEfz9/f38//f5+wkKC/f2+PLx8gICAvf2+AcHBwQGBQABAP7+/wMKDO/3/eHl6f37+vb09BobHBATFAQFBQEFA/7+CAQEBgMCAf///f3+AP7+/gIEBAICAv39AQAA/gECAf7+/wID/wEBAP38+wAEBAMCAwEAAQAAAAEA////AAABAP///gAAAf7+/gEAAAAAAf8A/////wECAQAAAQD///8AAAAAAAEB/////v8AAQD//gD///7+/wD//wD//wD//gAA/wAAAAEB///+/wD//gIBAgECAAD//v7+AP7//wEBAQAAAAAA//7+/////gEAAQECAQABAP8AAQEAAP8AAAABAQEB/wAAAQAAAAEBAAABAf//AAEAAAACAf8AAP/+////AQABAP//AQECAQEAAP/+/wEBAP0AAAH//wACAAEBBQcDAwAIB/0JCgYKCwwTFAMEAwEEAvn49/X29eTm6Onr7fv8/P8A/wAAAAAAAAAAAAH/AAABAQAA////AAD/AAAAAQAB////AQAB/wD//wAAAAAB/wD/////AQAAAAAAAP8AAAAAAP8AAAD/AP8A///+/////v///////v/9/v37/P78+/38/AQBAQEBAQEA/wAAAQAB/wEAAAH/AQABAQAAAAH////+/v7+//7//v7//wAAAAAAAP8AAAABAAAAAQEBAAIBAAL+AAD/AQAAAAAAAAAAAAEAAP8BAAEBAf/+AAEA//8AAAEBAQD//wEAAP//AAD/AP//Af8A/v///wD//wAA//////8A/wEAAf8AAQAB/wABAQAA////AAEBAAABAQAAAQAAAAAB//8BAAABAQH/AAL//////v7+/v7+/f38/Pz8+/z9Bf7+/f78/f0BAgIAAAAAAAEAAQEAAP/+/gABAP8BAAD///8AAQD///7+/v4BAQABAwMA/v8AAQABAAEBAQH/AQABAgH+/v4AAgEDAQQDAgP/AAEA/wABAwMCAP/+/gAA//8AAAIBAQEA/wABAwH+/f0FAwMGCwsYBQUGCAsFBQcDBAQFBQUEBgbz7Q349/X9/PwAAQAEBwYICAkGCAgICAX5//vp7e/59vT++fgCAP8ICwwEBwX+/f7+B/0CAgICAgH///39/f3/AQAA/wP+AQABAQP9+/oDAgT9/wICAQABAQAB/gICAgL/AP4B/wL+//8B/////wD+/v4BAQEA////AAEDAQH//wD/AP7//gEBAgEB/wAAAQD//wAA////AAAAAP8AAP/+//8AAAAAAP8AAP////////8A//7//fz8+/wAAQH/Av/+/wACAgIAAQECAQEBAgL//////wIBAf4BAQL///8AAAAA/wD/AP//AAABAAABAQD/AAEA//4AAQEA/wEBAAAAAAD+//8BAAEBAQEBAQD/AAABAAH/AAAA/wEBAQEAAv/+/wACAP8AAQACAQYCAP//AP8A//8DBPwBAwMECQgDAv/+///9AP8A9/gICQsICQj+/v7///8AAAD/AAEAAP//AQEBAP8BAQH///8BAQH///8BAAAAAQD//wAAAQEA//8A/wEAAAEAAP8B/wD/AAAAAQABAAAA/////////v///////v///v/+/v/+//7+/f38/fz8/f0EAAEAAAEAAAEBAQAB/wH/AQD//wABAAAAAAD//wD+///+//7//v///wD///8AAAAAAQEAAAD/AQABAAEBAAEB/wEB//8A/wAA//8BAQAAAAAA/wAAAAABAQD/AAAB/wD/AAAAAAAAAQABAQABAAAAAP8A/wAAAAH/Af///wAAAAAA/wAAAP8A//8AAAEAAAAAAAABAQAAAAEAAAAAAAABAQAAAAEAAQEBAAD/////AAEA//8AAP8B/v///v7+AAAA/gAA/P/9A///Af//AAD/AAEAAgAC//7+AAEAAQAB/wAAAAAAAAD/AAEBAAD//////f39AQEAAwEDAQIBAQEA//8AAQAAAQIB/////v7/AgIAAAAA/////////v//AAAA//8AAQH/////AgICAP///gAAAP//AwUECQMJFRUHAwMD/gEA/QAAAgMEDgwN+fj3/v3+/f78AgICAwUDAgEC/wAAAgH8+/z39ff68vLx7OroEhQVBvsJ/wABAQIBBAQF/wABAf4A/v//A//+/Pz9AAAEAP/9/wMDAQQAAAAC/PwAAAAAAgEC/gECAf8C/wP/Af7+/f//////AP///wECAAAAAQH//gD/AP//AQAB/wAA//79/wIDAAAB////AAD+AAAC/////wAAAP/+AAEB//7/Af/+/v/+/v78APz9+/r5///+AQMDAv8CAQAAAAICAQABAAAA//7/AAD/AQIAAf8CAAAA/wD/AP8A///+AP8AAAAA/wAA////AQEBAAAB//8AAAD//wD9AQICAwEC/gAA/wEBAQEBAQAA//8AAQAB/wAA/wH/////AAEAAP8BAQEBAAEB/wIBAgD/////AP8EBAECA/8D/v79A//9BwYHBQYHCwwOCQkJAwQDAfsB/v//AAD/AAEAAP///wABAP//AQAAAAAAAAAA/wAAAAAAAP8BAAD/AAABAAD/AP8AAQAB/wD+AAABAP8AAAABAAEB/wAA/wD///4A/v///v/+//7//v7//Pz8/fz9/f38BAEBAQIBAgIA/QAAAAD/AP8BAAD/AAD//wD//wD/AP7//v7+/QD//////wAA/wD/AP8AAAAAAgEBAQEBAgEBAQAAAf//AP8AAP///wECAQH/AP8AAAAB/wD/AAAAAAAAAAD///8AAAD/AP8AAAAAAP8A/wEAAP8AAAAAAQAA/wAAAAAA/wAAAAABAQD/AAABAAEAAAAAAAAAAAEAAQAAAAABAAAAAP//////AAAAAAEA/wAAAAAA/wD/AAAAAAEBAQIDAwMFBAEDAQABAAD+AAECAwD//gEBAf////8A/gD+/wEAAQIDAwAAAQD/AQABAQICAv////7//gL+AQEDAv8A///9/QMEAQEBAgEBAAEBAf//AAD/AP///wIBAv3+/QECAf////z9/QMA/wQDBAQFBQH9/gD/AP8AAAQEAxMSEQUFBQUEBOLn6eru8PcIBwD//vz8/P8A///+/gICAQECAwMBAAD9B/z48vT3+fLv7QcHBgABAAIDBAIDBAEBAQMBBP7///7///sA+wD//////v79AgUFBf//AAQFBQAAAQUFBP7+/gD+/AEBBAD+AP8AAf8A/wAAAP///wD//QICA//////8/AECAwAA//8BAf//AAH//wEA/////wAAAAAB//7//gD+AAAB/////wD//wAA/wD/AP/+//38/Pz+/QIAAQD/Af8AAf8AAAAAAP8BAAH/AP8A/wICAQAAAQACAP/+/wIBAQAA//4BAgD//gAAAf7/AAECAP8AAAICAgEBAQAAAQABAP8AAf8AAP///wEBAQEAAf///wEAAf8BAAD/AAD/AAEBAQEAAgAB/////wEBAQEAAQABAAEB////AQEAAAD+AgIB//8BAAICBAECAwMFBQsMDQD/AAD//wAAAAAAAAAAAAABAQD+AAAAAAABAAD/AAAAAAAAAAD/AAAB/wD/AAAAAP8AAQAA/wAAAAAAAQAAAAAAAP8A/wH/AAD/AAD/AP///v///////v///v7//vz9/fz8/P37/AQBAQEBAgEBAgEBAQEBAQD/AQEAAAD/AAD////+/v/+/f7+/gD+/////gD//v//AwEB/wABAAIBAQMCAQIBAQIBAQIB/wEA/wEAAQD/AAAAAQAAAAAA/gEAAP8AAAAAAAD/AQAA/wD/AAAAAf8AAAABAAH/Af8B/wD/Af8BAAAA/wAAAAEAAP8BAAAAAAABAAEAAQAAAAAAAAH/Af8AAAAAAAEAAQAAAAABAQAB/wAAAAEBAQABAQEBAAEBAQEBAQEBAQEBAAAAAAAAAAABAgEBAQIA/wEAAP/+/f3+/v8BAQEBAAEAAAEBAQIAAQAAAAEA/wABAAEBAP/+/v3+//4BAQEDAgMBAAIBAQIAAAEAAP8BAQEBAgEA/gL9/vwAAQEA//8AAQAA///8/P0B/wADAwMEBgb+/vz//v8AAQAFBgYREA4JBwcSDg7f5Ofm7O33+/v9/Pz9/fwA/wAAAQEEBAQBAgH9/Af9AAD59u/29PT28fEDBAX/AAMAAwMCAgH/AP8BAQIAAP///QH/Af///f/9/P8BAgED//8EAwP/Af3+/v4AAQEB/QD9AAD+/QEDAwP/AP8AAAABAAEBAgH+/v3+/v8DAwQA//4AAAH/AP///////gEBAf8AAAH//wAAAf4A/v7//wD//v8AAP8BAAH+/v/+/f3+/v37/v39/P3/AgMEAwEDAwMCAwIBAAD//v8BAgL/AQH+//8AAP8AAAH/AAACAAEAAQAAAAEAAAD/AAACAQIAAQAAAAD/AAAA/wAAAf8A/v8AAQICAQL/AQH//wAAAQABAAH//wABAQEAAf8BAAH/AQEBAf8AAQMAAP8AAAABAQEAAP4A/wEAAQEAAAEAAAD/AAABAQEAAAABAgP/AAD7+/v+/v7/AAAAAAABAAD/AAAA/wAAAP8BAQEA/v//AP8AAAAAAAD/AAAAAAAAAQAA//8A/wAAAf8A/wEAAgAA/gAAAQAA/wD/AAAA////AAD+//////7//v/+//7+/f79/fz7+/v7/PsEAQEBAQABAQIBAgMB//8AAAAAAAEBAAABAAAA/v/+/f7//f79/f3+/v/+/wAAAAABAAEBAAH9AQEBAQMDAQIDAAABAAABAP/+AAACAAD/AAAAAAAAAAEAAf8B/wH/AAAAAQAAAP//AAD+AQABAQAAAQAB/wAAAAABAAD/AQABAAEAAAD//wABAP//AAABAAAAAAAAAQABAAAAAQABAQAAAQAAAf8BAQH/AQABAQAAAAEAAAAAAQAAAgICAgMDAQECAgICAAABAP8AAQMBAwECAAAA//0B/wEAAgMDAAD/AP/+//7/AP8AAgIBAQABAAEC////////AQAC///9AwMDAQAC/wAAAAEAAAD+//8B/v7+AQECAQACAgMBBAUJ/Pv7+fj4/Pz7AQIBAgEBAQD/AAAA/P38AP7/BAUEAQIC////AgICCQoJGQYHDg4PGOzt5+vr7/Ly9vf2/gABAQED/gD///79AQAEAggK+/j09vb0+fT0BAgH/wABBQYGAAkIAP7+/wH/AgIC/wD/AgEB/v79AAAB/v39AAAA+/z8BAEB/v79AAAAAQEB/fv7BAMDAAEAAP7//v/9AgECAAEAAAACAQIC/v/+AQACAQD//wABAAABAQD//v3/AP8AAQEBAAEB/v7/AAEA/f3+AwIB/wAA////AAEA/v7///7+AAEBAwQEAgMDAAD////+AAAC/wAA/f7+AAIBAQEBAAAA/wABAgIB/v//AAABAQEAAAEDAQAAAQABAAAAAAAAAQABAQEA/wAA/wAAAQABAAAAAAABAAAAAP8AAAAAAQH//wABAgEC/wAAAgAB/wAAAQABAQEAAP8A/wAA//8BAAD/AAAB/wAA//8B/wH//v///v7//P399/b49/f3//7+AQAA/wAAAAAAAP8AAP//AAEB////AAAA/wAAAAEAAQABAQD//v8AAAEAAP8BAAH/AP8BAAEAAP8AAAH/AP8BAAEAAAAA/wD//////////v7//v///v7//v/+/Pz8/f38+/z7BAIDBQED/gH/BAL9//4C/f//AQEAAP//Af///wD/AP/+/v7+//79/f//////AAEBAP8AAQEAAgEBAv8BAQAAAQEAAf8AAf8A/wAA/wEAAgAAAAEBAP7///8AAAD/AAEAAP8AAQAAAQAAAQD//wAAAAAA/wAAAf///gD/AQAA/wAAAQAA/wAAAAEBAAAAAAEBAQEBAQEBAAIBAQEAAQACAQEBAQEBAAEBAQAA/wAAAQD/AAMCAgQFBQQEBAQDAwUFBQQDBAMEBAMDAwAAAAAAAAD//wECAgH///8B/wIDBP/+/QAA/wAAAP//AAECAgAAAAEAAgQEAgABAQL/A/7+/gECAQEBAf3+/AD+AQMDAAICBAEAAQECAQIBAgABAQMEBAkKCfv6A//+/v7//vz8/AD//wMCA/////38/QIDAAIBAv8BAQIAAQYCBAYEAwgDABQMCfX5+O3v8Ovu8PL4+vn7/Pv+/gH//////v4BAvn8APr7+xIEBQkIBwYEA/n4+AcBAQQFBQEBAgABAP8AAAIDBgICAf7+/gD/AP8D/P39APz8AQEBA/7+/QIDA/0A/wD//vz8/AMCAv0B/QICA/8B/wD9/gMAAP8BAP///wABAQMCA/3+/////wD/AAEBAQAAAQD/AP7/AAH///7+AAAA/wD//v/9//////7+/wIEBAIFBAECAQABAf8AAAEAAAABAQD/AQD/AQACAQECAgIAAAEBAQIBAP/+/gAAAQABAP/+///+/wAAAAEBAf8AAQABAAD//wABAf////8A/wAAAQEBAQABAAAAAQAAAQAAAAAA/wABAQEBAAAAAQEBAAAAAQAB/////wD///8B/v79/v/+/P7+/AAA/wAAAP3///v6/PPz8+3s7fz9/f7//wD///7/AAAAAQEAAP//AAD/AAAAAAD/AAAAAAABAP8AAAEAAAD/Af8A/wEAAf8B/wEAAAAAAf8AAAAA/wD/AQABAP8AAAD//wAA////AP////8A/////vz9/P38/f78/QQICxIBA/YE/vzz/PL9/f4BAAAA/wABAQAAAQEAAQD///////8AAP8AAAAAAf8AAQECAQL8AQH/AAEBAAEAAQIAAQEA//7/AAAA/wL/AQABAAD/AAAAAAD/AQAAAQAAAQAAAAACAgD9/QAAAQAAAQEAAQEA//8BAQH///7/AAAAAf8A/wEAAP8AAAIAAP4AAAAAAAEAAQH/AQAAAQEBAAEBAQABAQEAAP8AAQEBAQECBAIFBgYEBAQCAgICAwIBAgACAgECAQAAAQAAAAAAAAD/AQEA//8BAgAB/wAAAAEBAQL+AP3+/////v//Af8BAQIBAgH+//8BAQADAwMDBAQA/wAAAQD+/gD//v8A//8BAQEBAQEAAAD///8A/v/+/v4AAAAGBgb7+/v//P0B///9/PsBBQAHCAkEBAX8+/v8/f4EBAUCAgIA/v77+P0EBQMNDAkKBwUNBQQVDw/z9vjt8PHu8vD19/T6AwD/BgYD/Qb39/rx7e4DBAX/AQIPEhQAAgMAAgMAAgIAAAH+/v4CAv///gD////+AP0B+/wFAQL8+/sAAPwABQYA//4CBAT9/////v3+AP8AAgEB/gH/AQH/AAABAQEBAQEBAQH9/f3+/v8BAAAAAQD//v8A/wD/AAEBAAEAAAD//////wAAAQECAAD9//3+AP0EBQQBAwMBAQIBAgT+AP8CAQP/AQABAgMBAQEAAAAAAQEAAP//AAH///8B/wH/AAIA//8AAAABAgIBAQAAAAD/AQEB///+//8AAAEAAP//AAABAAABAAD/AP8BAAEAAP8AAQIA//8AAAICAAAAAAEBAP////8BAQD///8A/wAAAAAB/gABAAD+/wH//v//AP/////8/f74+fnu7uz29vb/AAABAAD+AAABAAAAAAAAAQEAAP8AAAD//wABAQD//wD///8AAAAAAQAA/gAAAQH/AP4A/wD//wAAAP8BAAD/AAAAAAAAAP8A/wH+/wD//gD//v7//wD////////+/v78/fz8/P0EEhYf8fHu+vj19fX6Av3+Af8A/f3+AgED/wABAAAAAAEBAAD//wABAP8A//8BAAAAAAABAQEBAAEAAQEBAQEB/wABAP8AAAAA/wD/AgAA/wAAAAAAAAEAAf8AAAAA/wABAf8A/gABAAAAAAAAAAAAAAABAQEB//8AAAEBAP//AP8BAAD/AQEB///+/wAAAAAAAf8AAAEAAAAAAQEBAQEBAAEBAAIBAv7/AgIA/v4B/v3++/v7BPz8BAUEBgUFAwMEAgEC/wAAAAAAAQAAAAABAgAA/wIBAP//AQAAAAAA/f//AAAAAQECAAEB/v//AgEAAQAAAQICAQEB/wAAAP7/AQEBAQECAQD/AAIAAAAA//7+AQMCAAABAAD/AQIDBAEB/P38AAABBAQD//8B+/z6AwECAQED/Pz7AQICAAMCAf7/+/z8AgYGAAAABQYF/AIA/gD+AgECCAEGBAMCDQcFFAwJ+foR6+zr8fTy8QUB+QQA/vj27Orq/f7+HCIJ/Pz5AgAHAwQFAAMDAwIA/Pz9AAAA/f78/fz7BAQE/Pz8AwMD/QEAAgEC/v78AQIE/v7+AgL////9/fz+AgMD/gIA/v8AAAIBAQABAAIAAwIEAQIC//39/v///////v7/AP4AAAEAAwIDAQECAP/+/v7+AAIC/wAB///+AwMEAAMBAQECAgIDAgID/wAAAQEBAAAA/wAA//////4AAAH+AQEBAQD/AQIDAQEBAP///v/+//4AAQEBAQIBAAAAAP4A/wEAAQEBAQEBAP///gD/AAAA////AAEBAf8AAAEAAP8AAAAAAAEA/wEAAP//AAD/AAAB/////wAAAAAAAQEB/wABAgEC//4B/gAA//7+/gAA+/z+5+jp1NTV8fHxAP//AAH/Af8AAAD//gAAAf8AAAD//wAAAQEA/wAAAAAAAQAA//8AAP8B/wH/AAAAAP8AAAAAAQEA//8A/wAAAAEB//8AAQAAAAAAAAAA/wD//wAA//////7///8A/v39/Pv8/Pz7BBYbJAkM7u/v6vn9Afb18f37+vz8/P7+/wEBAQECAgEAAQD+AP///wAAAf///////wAA/wAAAAEAAQABAQABAQEAAgEAAAD/AAD/AP//AAABAAD/AAD/AP////8AAP8BAP8B/wD//wAAAP8A/wAAAAABAAD/AAABAAD/AAAAAAAB/wAAAP//AAAAAAAAAAABAf8BAAD/AQAAAAABAAAAAAEBAAEBAAECAgH//wEBAAIDAgMDAQMDA/////z8/Pv7+vsHBwL/BQD/AAACAgEBAQABAAIAAAEBAv///wD//QL/Av4AAAD+/wEBAAICAgIDAgIBAgEBAf8AAP7+/wAA/gD+AQL//v///wAAAP8A//7+/gEB/gIDAgD/AQAA/wECAQYDBv38/AICBAEACAQFBwAA/wMCAwACAgAAAQUFBgYFAfn5+QABAQECAwEDAwQDAwcJCfv5+f36+gYH/fz8/AX7/An7BwwIBvb3EPX0Eu7s6vn39Orl5PPw8PHt7QgODgIAAP///wMBAQAAAQAA/v7+/AD/AAAAAf79/gMDAwECAf79/gAC//79AQQCAvz/+gD/AP/+/gEBAQP9/f4DAgECAwD/Af3/AQMBAf7+/AD/AP8A//z8/gEA/wH/AP39/gECAPz+/QICA/79/vz9+wMEBAECAwD/AAEBAv////7//gEBAv7+/QECAf/+Af8BAQD//wAAAQD///37/P4B/wIBAQICAwEBAQAAAAEAAP8A/wEAAgH9AQICAwACAAD/AAAAAP/+/wABAAEBAf7+/wAAAAH/Af4A/wEAAQEB/wAAAP///wEAAQD/AP8BAQEA//4AAAAA/wEAAf8AAAEBAv///QAAAAAA//8AAPz8/fT199HQ0OLh3/v6+QD+/v//AAD/AP8AAAAAAP8AAAAAAQEA/wAAAAD/AAAAAAD/AAABAAD/AAAAAP//AAAAAAAAAP///wD/AAEBAAD/AP///wABAQD/AAD/////AP////////////7+/v3+/vz8/P39/QQNEBUHCw4KDxMMEBXv7ery8u75+fb++/z9/f0BAgMCAwQBAQIBAAH+AP//AP/+//8BAf8A//8AAQABAAEBAQEAAgH//gIAAf4AAQEBAQAAAAH/AP8AAAABAAEAAQAB/v8A/wEBAAEAAQEB/wH/AAABAP//AAEBAP8AAAH/Af///wAA/wABAAD/AQEA//8AAAACAAH//wABAQEAAAAAAQEAAQEBAAABAQADAwMCAwIAAQL+/v3+/fz8/f0AAQEDAwMDAQMDAgEBAgEBAP///v8AAQEAAQEAAQABAAD//wEAAAEBAAABAgIAAAEAAAEA/wD/AP/8/f39+/sAAQEDAwP//v//AwMBAgH+/f0EBAECAgH//v79//wA/wIAAP8BAgMEBAMFBgb+/v4CAwP/AQD+/f4A//8BAQEDAwMBAAABAwEHCgj++/4CAgEBAAACAwMFAwMGBwj+/f38+/v+/Pz9+/z7+Pn69wQDBQULCwoJBgXp6OUQDg/39fT79fb89/gAEAACBAMDAwL/AQED/wP////9/fn+/v4DBAP////7+foBAgEFBQT8/PkBAP4AAAECAQH7+/sGBQX6/v8EBAUCBAAAAgMBAP0B/QEBAf//AAD+/v8A///+//8BAAEAAQD9/f7///0CAf3////+/v0C/gH//gAA//8CAgP///8AAAH+//8AAQACAQIAAgP//v/+//4CAgMBAQECAgAA/v/+/f//A/8CAQEAAAEAAP8BAQH/AQACAQL9//0A+wECBAIBAAD+//4A/wD//wAA/wABAgD/AP4BAAIAAAD/AAAAAAEBAAABAAD/Af///wAAAAAAAP8BAAABAQD/////AP8AAP//AP7+///8+/v4+vvd3t3W19b59/f//v7/AAEAAQAA//8AAQAA/wAAAP8AAAEAAAAAAAAAAAD/AAAAAQEA//8AAQAA/wABAAD/AAEAAP8AAAEAAf//AAABAAABAQH//wAAAgD/AAAA/wD//wD////+///////+/v/9/vz9/f0EAgQGBwMFBAUIBwkMCgwQEfXy8fHu+ff1+/r6/Pz8AgEDAgMEAQEC//7///7/////AP//AAAAAAABAAAAAQABAAAB//8AAP8A//8AAAAAAAAAAAAAAAEBAAEAAP7/AAAAAAEAAP8AAgEA/gEAAAEAAP8BAQH//v8A/wEAAf8BAAAA/wEAAP//AQAAAQAB/wD/AAEAAAEAAAAAAAAAAQAAAAABAAEBAQAAAf/+/wAC/wH/AgEA/v////38//7//v7//wD+////AP///wAA/wAAAgEBAAEBAQAAAAABAQAAAAAAAAABAAAAAQEBAAAAAP//AAAAAgABAAUEAP8A//7+//8A/v39Af4BAAH//v7++/v7AwMEAwMC//8AAQACAgMCAAEB/wEBAQMD////Af/+AwMDAgEBAAEBAQICAAAAAgICAgIDAQQB/Pz8//7/AgIC/wEBAAMCBAQDAQQEAf4A/v3+AwX4AwUH/f36+fb1DgABAwIBCwYH8Ozq9/j3+/n3AgEBAP7+/v//AgACBAQEAP8AAAD/AP/7AAEBAP8A/v//A/8A///+AQAC+/v7AQEBAwEB/Pr5AgEBAAAA+Pn8BwIJBAMD/v3+/v37AwMD//8AAQIC/v7//////v7+BAMDAQAB/v79+//9AgABAgMC/f3+AP/9AQEC///++/v7AP8BAgH/AQIC//7/AgMF/v3+AAEAAQIDAAECAQICAAAAAQEC/v3+/QEAAAAAAAAAAAEBAP//BQYHAP4CAQICAP7///4AAP//AQIBAAAB/v/9AP0BAQIBAgL///8CAQACAAD/AAIBAAABAAABAQH/AAAAAQAB//8AAP8AAAEB/wD//v7+/v7+/fz89/n67fDx19fX8e7t/f3+/wD/////AAEAAAEAAAAAAQEAAAAB/wAAAP8AAAAAAAEAAP8AAf///wAA/wAAAAAA/wD/AQEBAP8AAAEA//8AAQAA/wAAAAAAAAAAAP//AP8BAAAAAP//////AP///wAA///+/f39/fz6BAABAQEBAgMBAQgDAwYGBw4NERESFvf29fLx8Pb19P7+/gQDAwEDA/7///7//////gEBAv8A/wEBAAABAgABAQABAf8AAf///wEA//8AAgEAAAAAAAH/AAAAAP8AAAAAAf///wAAAP8AAQAAAQEA/wAAAAAAAAIBAf7/AP7//wAAAQAA/gAAAf8A/wEBAAD/AAAAAAAAAQEBAQAAAAAAAQEAAAD/AAEAAAICAwAAAP4AAAEAAQEBAf8AAPr7+gj9/v/+///+/v8CAgABAQEAAQEBAQAAAAAAAAEBAAACAQIAAv//AP///wEBAgEAAP7//wIBAQECAAMAAgAAAP4AAP39/v////7+/gEBAAEBAgMEAgIDAwICAgEBAwIEBQMBAv7//v8A/wIBAwIDAAIBBAAAAP38/QQDAwEDAgEBAQEBAQMEBQMCAgMEBP///wD/AAICAQD/AAABAAIE//79///7/QQHCAIEBP79CAICBPwCA/36/P0O+wUCA+jn5f78/v78/AABAAUFBQECA/39/gID/wYCAvv//wMDAv7//f///gMAAwEAAfz7+v38/AcHBvz/AAH////9/AABAQECAgEBAQEBAQABAPz6+/z9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///+AQEB////AAEBAf///wEA//8A//3+/v//AgIAAQICAQECAQAAAQABAQMBAP38/P38/wAAAwMBAwIDAwMDAP8AAAIB/v78/v79/v38BQcGAgEBAAAAAwQC//78/wABBAQDAgEC/////wD9AQACAwQEAgEBAQEAAAEA/v39Av4BAwMD/wD///7//v///f78/fz8/Pf38+7s+PLx9/Xz9vPx9/bz/wEC+/r6BQgKAgT/AQEBAQEC/P37BgUFAQD////9//////3+/fz9////AP7/AwMCAQEBAP7+/gD/BAQBAQAAAQEB///9BAAD/P7//wAB/wMBAgEBAAEBAAEBAQMBAP4A//7+AQABAP///vz7+vf38ezr2dXU4ubo9Pz//QQKDhQSCPv7CAgJBwcHFRMU7PDx+vz9/v39AwgO8/Lv+fXy/v38+/3/Cg4QAgkKBQkNA/n4+vj3CAsPEhX++/j1EA0NBwMC/fn3+PTz/w4PAQD+AQD+AgEAAwICAQICAAD//v//AgEA/v/9AP8B//8AAQEBAAAB///+AAAA/v//////AAIBAAAA/f397ezt3d3c9fT0//7///8AAP///wAAAAABAAD/AAD//wAAAAAA/wAA/wAAAAAB/wD+//8BAAH/AP8AAAABAAEAAQD//v8AAAAAAAD/AAEAAf///wEA/wD/AP8AAAAA/wAAAAAA//8AAP8A//////8A//7//v7+/v3+/fv9BAH/Af8BAQD//wABAAEAAAD//wEA//8AAAAAAQIAAP8A/wEBAAAAAQECAgABBAIDAgH9AvwAAAH++wIDAQECAgIBAv4AAgEAAgAAAQEBAf8BAgD//gAAAAAA/wAAAQABAQEAAgAB/wAAAP7/AgEBAQAAAAADAgEA/gEBAAAAAQABAAEBAwIDBAABAQD/AP4AAAADBf8AAP8AAgECBf4AAQAAAP79/fz8/P7//wD/Af3//wAAAQQDBAYHCAQEBQAAAP7//v7//wAA////AAEAAQABAAIAAAABAQEBAf7+/wABAQH///7+//3//AEAAP//AQEBAf7+/v/+AQABAQEAAAMDBAECAgMBBQL+/gEDAf///vz9/wICAwEBAQD+AP0B/QIBAv4AAfz7+wECAgEAAQEFAQECAgD/AP7/AP/+/f4A/wIBAAABAgH+AQEDA//+AAIDAQIDAwECAgAAAAMBAv4A/wMFAwD+///+/v79+vfy7vz39vr28v769v78+wIICf3//wECAgQFBP7//v38+wkIB/z8+////gICAP/+/vv7+wMCAP8BAfz//wIDBAD//wIFBQIA/wD/AAEA/wIBAAD///7+/AEAAQIDBf78/P8EAQD/AgEAAAABAgAC/wD9AP7+/Pz4+f76+fbx7+nl4/Hw8Pr6/Q0RFAoRFAsPE+3u8f7+/vb19OHi5AACAwoNDv4FARQYDRIVGf39+gYFAw0NCw0SEwEDBPz//wL7+wMEBwYICwcDABkVJBsZFhELCAcGBAgIBwsPEAcKDAQGBwIDBf8AAAAAAAAAAAIA//7+/wECAAAAAgAAAf///v//AQAA////////AP8A/wD/AQD/Afr7/PPz8/j39gEAAAIBA/8AAAABAP8A////////AQAAAAAAAAAA/wAAAQAAAAEB////AQEB/wAAAP8AAAABAP//AAD/AAD/AAABAAAAAAAAAP4BAAH/AAD/AQAA/wAAAQEAAAD/Af8AAP8AAP///////v//AP////3+//v8/AQAAQAAAAABAQEAAP8AAP//AAD/AQEB//8AAQABAAAAAAAA/wEBAAAAAQECAAL/AQEBAAAAAAAA//7//P37BPkDBQf//QcB//8BAgAAAQEBAQH/AAAAAf8A/wAAAf4A/wH/AQL/AAAAAAABAgAAAAEBAQIA/wL/BAECAAL/AQMAAQMBAQMDAwYDBAUCAwT/AQIBAwQAAQIBAgICAgQAAgEAAAL+/fz8/fz+/f7//wD+/v3//v3+/v0BAP8EBQUDAgMBAgIA///9/f0CAwIDAQMCAAIAAgAA/wD/AP8AAP8BAAD/AQEBAf8C/v//AP8AAAIA/wABAgH/AP8CAQD+/f38/foBAAIBAQEAAQIDAAMEBAQAAQP/AP8AAQIBAAAAAAABAQAA/////v4BAAEAAgD9/f4BAgAA/wAB//8CAQIB/wECAwQAAQD+/v0AAAADAwMA/wAAAQD+/v8CAgD+AAD9//4C/wIEBgT/AAj9BwkFBgX/+f///vn09vP4+fcBAQH///8EBQQCAAIAAgH//wD9/fsAAP78/PoB//4BAAAEAgH49/n6+PUODw8A///+//4A/wABAQABAP7///7///4EAQD9/fsCAgP+/QEAAgP//wIBAAP9/v0CAwD+/v7+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AP////8AAAAAAAD/AAAAAP8A///////+/vz9/QQBAAEAAAEAAP8BAQEBAAAAAAD/AAABAAAAAAECAQD/AAAAAf///wEBAQAA/wACAAEAAQH/AP8CAgMAAAECAgMGBgj//////v3//v7///0A//7+//79/fsA/v39/P3+/vz+/Pv///4AAAECAwQBAwYAAQQBAwQBAQIBAQIAAQEA/wAAAAAAAf//AAABAAAB//8BAAAAAQAA/wAB/wH/AP8AAAEA/wD+Af8AAP8AAgEA/wEB/wEB/gECAQEDAQH+AAEAAQD/AP/+AP////8A////AQABAP8BAAAAAAEAAAAAAAAAAAADAwIBAgT+/v0A/wAB/v//AAAAAP4A/wD9/v7//wAA//8AAQICAv8BAQQCAQD///8B//8CAQEAAP8DAgP//v///v4ABAACAQEBAQEAAP/+/v4CAgP9//4C/wD/AQH+/v4CAgL+/v8CAgEAAP/9/QD//wACAgMDAwMCAgIAAP8AAP8AAAIA//4AAAEGCAoLDxIFCgwHBgTt7esPEhb/AgP+/gACAf4DAwMAAAD///4EAwD9//8DAgQCAgEA//4BAwMA//8AAQADAQICAQIA//8AAwP///4EAwUAAQH//v8DAwH/AgL/AAAAAf//AAAAAAAAAgH//wD6+vjz8e728fADAAIABAcFBwgJCw3/AQIHCg38/PoKDAwCAgMAAQPr7e0CA/7x+/n5+/sH//4MEgkcDRb5+PUFAwIPDw4MDg4CAgIGBQcEAwMCAQH///7///0CAgICAP8CAf8CAQECAgQBAwL/AQH///8BAQEAAQEB/wAAAQEBAf8B/wH/AAD+/v3+/v7///4AAAD/AAAA/wABAP///gD9/v78/v739vfo5+bw7u3///8BAgD//P8AAAD//wAAAf8B//8AAAEAAAAAAQH///8AAAAAAP8AAAAAAAAAAAAA/wAAAAD/AAABAAD//wAAAAAAAAEBAf//AAD/AP8B/wAAAQABAAEA/wAAAP8BAQAA/v8AAgAA/wAA///+///////+//79/f0E/wAAAQEAAAABAf8AAAH/AQABAAD/AAAAAQAAAQAA/wEAAQABAAAAAP8AAAH/AAAAAAD/AAAAAQEBAwIC/wAAAP///////wMCAP8AAAD/AP8A/wD+//////7/////AP7//gD+AP8A/wD//gAAAgAB/v8AAAAA/wABAAD+Af8A/wAAAAD/AAABAAAAAP//AAECAAD+//8AAQEA////AQEB//8AAAH+AgAA/wEA/wAB/v8AAQECAQECAgMD/wD/Af4CAAEBAQEB/v3+/AH9AQICBAECAAAAAAEBAP8A/wD/AP7//wAAAQD/////AgMC//8C/wD//v//////AAD/Af8BAgH/AAEA/wD+//8A//39/f7+AQMDAgEC//8BAAAA//77/wECAwQD/v7+/wAAAgIDAQAA/f39AQEBAgEBAQEAAgEC/wAA////AAAA//8BAQEAAQD/AAAAAP//AP//AP//AQICAQEB///+/fz9AQAABAYIDBEV+vz5BQMECA4S+fn5+/r5AgEA/f7/AgD//f79//36+v7+/v/+AQYAAQADAP//AAD/AgIBAgIBAQEBAQEB////Af4CAgAD/wAAAAABAgMCAQACAQEC/wEBAAECAAMCAQEA///+/v3++ff19vLw/Pf4AQMF/QL5BwgLBwgJAgUGAAEB8/Px/P7/BQMCAwQECAoJCQgGDgwJ9fb1/Pz8CwoL+/379PTyBAMEDxARAAECAgIDAQIB+vn8/v38AgECAQEBBQUEAQEA/f7/Af79AQH+AAECAAABAgMCAQIBAAAB//////////7+/v/+/v7+/v3+/v/+////AAAAAAEA//8BAQD///8A////Af///fz88/Ly+vj4/Pr6/vz+/wD/AAEAAP8AAP4AAAAAAAD/AQAAAAAAAAAA/wAAAAAA/wAAAAAAAAAAAAEBAAD/Af8AAP8AAAAAAAAAAAD//wAAAAAAAQAA/wAAAAD/AP8AAAAAAAAA//8A/wEA/////v///v/+//8A/////v7//Pz8BAEAAAEAAP8AAAEBAP8AAf8A/wAAAQAAAAAAAP8AAAEAAQH/AAABAAAA//8AAQAAAAAAAQEBAAD/AP8BAQEA/wABAQD//wH/AP8B/wD/AAABAAAAAgH/AAACAAAAAP///gIAAQD///////8A/wD/AAL////+/wAB////AQAAAP8A/wH/AAAA//8AAAAA/wD/////AgAA/////gAB/////wAAAAAAAAACAQH/AgAB/wIAAgABA///A///AwH//gD//f7///3+/gMCAP/9Af8C/v8C/wECAgEAAP8CAAH+AQABAAAAAAD/AAD/AQD/AgEBA/8CAAD9/AAA/////v7/AAAA/wEBAQICAgAA/wABAP4A/wL+/f0B/wIBBP///gECAgICAAD////+/QEBAf7+/QMBAwAD/v7+/QABAQD/AAQDAgEAAP7+/gEBAQEBAQEBAgECAgQDAwAAAAABAP3+/gQCAQAAAf7+/f///gAA/wECAQIFBgcDAv///wL+/QcHB//+/Pf19//+/fj2+wD//f79/AQEAgEAAf36+QAEBAUDAwEBAf7+/AEBBAEBAQMDA/8AAAEBAAH/AP3+/gAAAAD/APz8/QQCAwEBAAEBAf8AAAD//v79/fv39/bw7/fw8AH8/wEF/wcICwYIBwUHBwIFBgIEBAACAfr7+wMEBAgJCAUIBv36+fz9/Aj+/P8ACAMBAgUHBQsKC/7//wQGBwICAwD/AP4A/woFBwEAAAICAwICAQAAAQIEAgEDAwEBAv8AAQEBAQECAgEBAAAAAgABAP///wD/AP7/AP7+/v39/v////7//wD//wAAAAD/AAEAAAABAQAA/wAA//v8/Orr7N/e3vb29QECAAECAAD+AAAAAQABAAAAAAABAQD/AP8A/gD/AAAAAAD///8AAAD//wABAf8A/wAAAf//AAAAAAEAAAAAAAAAAAAAAAD//wAAAP//AAAAAAAAAQAB/wD/AAAAAAAAAP8A//8AAAAAAP//AAD//wAAAP///v39/QQAAAH/AAABAAH/AP8AAAABAAAAAAABAAD/AAABAQEAAAAAAAABAAAAAAABAQD/AAAAAAEAAP8AAP8A/wAAAAL/AP8BAAAAAf8AAAEAAAD/AP8C/wH/AQAAAAAAAAEBAgL///8A//8AAP///wAAAAD/////Av7///8AAAABAQH///8AAP/+//4B/wD///////4AAP8BAAD/AAAAAAABAAH+//4AAAECAQH/AQAB/wD/AwL//f4DAgQAA/4B///8/v4A/fz+//4B/wICAQL+//7+/v4AAAEBAQEBAAD/AP8CAQEAAAD+//4BAAEBAQICAgMA/v7+AQAB/wD///8A///9/vz///8DAgMDAgT8Af4BAQL/AQMBAQD/AfwCAQMAAAD////9/f3//v8B/v4CAQH/AgMD/wQBBQEAAAIA/wD8//sBAQEDAwQBAQEAAP7/AAH//f38AAEEBAQA/wABAQH//wD+/v3+/f4AAAACAwQEAP/7/fz9/f0BAgH+/v38/Pv9+/v9+/kA/v3///4DAgAB//7++v4CAwQBAAD9+vwBBQYFAwQAAAEBAQIBAgIAAQECAP8BAwT//v4BAP/+/f3+///9/f8BAwMEAgT/AP8CAAD+AAD+/fv59fTz6+ry6+oODA8GCwwMDw8GCgwBBQUAAwL/AAAKDg4I/f0A//8BAgIB//4EBAID+/sICQn/AAAAAAH//v78/f0CAgICAwT/AP/5+fkGBgcBAgIA////AAABAgEBAQEBAwMBAQIAAgEDAQMBAQAAAQEBAAH/AAD///8AAAAAAAABAAEBAQIBAf/+//4A/////v//AP8AAAAAAQEB/wEAAP/+/v/29Pbg4ODw7+4BAP8AAAEEBAUCAgL+/f3+//7//v7////+//0A/gH+AP//AAAAAQAA//8AAQEA//8BAAAA/wAAAAD/AAD/AP8AAQEA////AAAAAQAA/wAAAQEA//8AAAAA/wEAAP8AAAD/AP8CAAEBAAAA/wABAAD/AP//AP7//gD+/f0EAQEAAQEA/wAAAf8AAAD/AAABAAAAAAEBAQEBAAD/Af8AAAEAAAAA/wECAAD/AQAAAAAA//8AAAECAQH/AP8AAQAB/wEAAP8A//8AAAD/AAABAAEAAQABAAAAAAAAAQAA/gEAAAEAAP4AAAEAAAAAAQAA/wEC/wABAQD///8BAgH/////AQAB/gD+/wD/AAEAAAAA////AQEAAAAA/wAAAAD/AQABAAAAAQAB/wEAAf7//wECAgIAAQAG/gAA/f78/QD+AP3///8DAQL8A/8D///+AAACAQEBAAAAAQAB/wAAAQABAQEBAAD/AgAB/f4B//8AAAECAAIAAP7////+AQABAAD+/f38////AQIEAgIAAgEBAQACAQABAQEBAQAAAP7/AQEAAQIBAgEB//7+/f7//////wD+AwQEAgIFAgICAQIC///+/f7/AgECAAECAAEAAv///f3+AAD/AwID/wH//////f7/////Af7//vv8/f39/P7+A///AAD/+/r5+fn2/vv4//38BAMC/v7//v38AAD/BAYAAwID//7+/gH7/QABBAYGAgMCAAABAAAAAAECAgEB/wICAP0BAQEC/vr5AgEAAP4AAAABAQAAAP/+AQABAf7++/n4+ff0BAIACwwJCAoKBwkMBAgIAwYFBAQG/wD/BQUG/wX/////AgIC//7+/v/+BgcI+/v5AQEC/v8BAQH/BP7/+vn6/v7+BAYFCwUGAAEA/v//AAAA//7/AQEBAwMDAAIAAAAA/wAAAQH/AQECAQEB//8AAAD/AP////8AAAD/AAAA//7+/v3+/v79/v/+//4AAAAAAAEAAv///wAC/wAA+fj44eHh19XV7Ovq+vn5//7+///+//7+//8AAAD//wD////+AAAAAAAAAAD/AQAAAAABAAAAAAD//wEAAP8B/wEAAAAAAf8AAAEB/wAAAAAAAAAAAQAB/wD/Af8A/wEAAP8BAAH/AP8BAAD/AQAA/wAA//8A/wH//gD/AP8A//4A/v/9/f79BAEAAAD/AQEA/wAAAAAAAQABAf///wAA////AAEAAP8AAQEAAAABAAEAAP//AQAA/wECAAD+AgAA/gAAAf8A/wAAAAEAAf8AAQEA/wABAAH/AAAAAAAAAAAAAP8AAQAAAAEAAAD/AP8CAAH/AP8A/wAAAQEBAgL///8AAQEB////AQEBAAD/AQH/AQL+Av8B//7///8AAP7//wD/AAEAAAIBAv7/AP///gAAAAD////+/gAA/////v8AAAABAQQEBP7+Bf79/gAA/v7+/f39/QICAwIC/wD/AAABAQAB/wAAAQABAAIAAgABAP3+/AAB/wIDAwIAAv/+//4A/AIAAfz/+//+AP////z8/AMEAQAA/////wIB/wICAP/+/gEBAQAB/wAAAAL9/AIDBAMDA////gD/AQD/A/7+/wD//gAAAAD+/gICAgICAwEBAgEAAQEAAv8AAAD//wMDAwECAQAAAf///gAA//7+/f38+/3+/QMEBf/9/f39+/n49/78+/v59/j08gMB//4DAgQCAv7+/wUGBQD///4A/wQGBgQEBwECAgABAv7/AAEBAP8AAQIAAgEBAQEA/wEEAgH+/fz8/P/9/QEBAP///QL/AgAAAAEA/gEA/v78+gEA/AkMBwIFAwcMCgMKCAIGBwMGBQAAAQIDA/4A/wMCAgECAgEBAAICBvz+/AEA/wEDAv8AAP7+/v38/QED/wcJCP7+/v7/AP8BAAQEAwH/AAEBAP8AAP78/f3+/P/+AQECAQEAAv8BAQEBAP///v////7/AP//////AP///v///v3+/v7//f7//wD//wAAAAAAAAD/AP7/AP8A/fz8/Obn6NHS0eTj4fv6+QD//v7+/v/+/v8A/wD/AAAA/wAAAAAAAf8A/wD//wABAP//AAEBAAAAAP//AQAA/wAAAAAA/wD/AQAA/wAAAAEAAP8AAAEAAP8AAP8AAAAAAAD/AQAAAAD/AAAAAP//AAEA/wD//wD////+/gD/Av////8A/wD/AP7+/wQAAAAA//8BAQAAAAAAAAEAAAABAAEAAAEBAQD/Af8BAAAA/wAAAQABAAEAAP4AAAEA//8BAAAAAQIA//8AAQIA//8AAAAAAQABAAD/AAAAAAEAAQAA/wD/AP4AAP8AAAECAAH/AQEBAP///wACAP8AAAAA/wD/AQEA//8A/wAAAf8AAAAAAAEDAQL/AP7+AQL/AP8B/wEB/wH/Af///wD/AAEB//7/AP8A/wD/AAD/AAABAAD/AP8AAP8AAAEBAgQEBP78//v+/v3+//39/fwBAQEBAQEBAQEBAAEBAQEBAQD//wAAAP///v3+/f0BAQIBAQL///3/AP4BAgP///8CAgL+/QH///4AAAD9/Pz/AgMCAv4AAgD9/f4CAgIAAAECAwEA///4+/sCAgMFBgYEBAX/AQD//QAEAgL/AP4BAQMCAQH/AQIA/wAAAf8AAAABAgEBAAEAAAEBAQAAAP///v4BAAEAAAAA///+/f7+/v4BAAD5+fj7+vj9+/n8+vf69vT9+vkBAwEBAAT7/v0BAAD9/QL+/wEBBAb/AAL9/wADAQIAAgMBAQH//wD9/f7+Av8DAgIBAQEAAAACAwQDAwT+/v/+AP8A/f0AAQMCAwD//wEA/v8HCAYNDwwEAAgOEhMJEBIIDg0ECAcAAAEDBQUDAwIAAQEBAAAAAAADAwMAAAEFAwX///8DBAX9/v3///8CA/z+/v////8B//8D/wD9/f339vcCAwMCAgICAwIEBQT////+/////v8AAP7///3//wP+//8A/gD/AP/9/v3+/v//AP////79/v7//wAAAAH/AAD///4AAQEB/wH/AAD8/P3r7O3W1tff3t7y8fD9+/v///4A//4AAP8BAAH/Af8AAAEA/wAAAAAAAP//AAAB/wEBAP///wAAAAEAAP8AAAH/Af8B/wH/Af8A/wD/AAABAAAAAAAAAAAA/wABAAD/AAAAAAAAAAAAAQD///8AAAAAAAEBAAEAAP8AAAH///8AAAAAAAAAAP////4EAAAAAQEBAAEAAP8AAQEAAAAA/wEBAAEAAAEAAQABAP8AAQEBAP//AAIAAAABAf8AAAAC/wL/AQAA/wABAf8AAAEB/wEAAf8A/wAAAQEBAf8B/wAAAAH/AP4CAQH/AAABAAEAAf8AAAABAQEAAAD/AAAAAP4AAAD/AAAAAAEAAP8AAAABAAD/AAD/AQIAAP8AAP8AAQAAAAEA//3//gD+AQAAAAICAAAAAP//AwEB/QABAQEAAgIC/v79/wICAf4CAP//AP//+/v+AP/9AP/+///+///+/v/+Av8BAQIDAAEAAQEA////AAAAAQICAf8BAAD///8AAQEAAP8AAQEBAQECAQMDAwAA/f7+///+/f3//v4CBAQBAQEBAAABAAEB/v7/AQEABAQDAwQEAwIBAP//AP/+/wAA//7/AAQB/v7+AAIDAgICAQEBAQEC/wD////+AAACAwIA//7//wIBAQD/AAAA/v3+/f39///+AgIC/Pr69/f4AgH+AgIB//79AAD/CQkI/v7+AwIBAP7+/wEAAQEBBAUGAwQHAAIFAQEE/v8BAP3/AQQCAAH//wAAAQEB/f7+AgMDAgIC////AwUE/wAA/wAB//8AAP/+//4BAP8AAAD/CAoKFBkdAQH+Cg4UBQkPBAgHBAYF/f0AAAEAAQICAQIBAgECAAEAAgECAQEA/wAAAAAA////AAIC/v79AQIC//4A/f//A/7+/v7+AQIC/wD//f3+/gD9//3//v7+AgEBAgIDAAEA/v8AAQAB//////7+//7//v///f79////AAAA/gD+Af/+AAEAAQAAAQAB/gAB/wAA/wAB/Pz77/Dx4eHi3d3d7Orp/vz7AP//AP//AAAAAAACAAD/AP8BAAD//wD/AP//AQAAAAEAAP8AAAABAAD/AP8AAAAAAAAAAQABAAH/AP8BAAH/Af8A/wD/AAAB////AAEAAP8AAQEA//8AAAAA//8AAAAAAAEAAAD//wD//wAB/wAAAAAA////AP///v8A/v/+BAEAAQABAAH/AP8BAQAAAAEAAAABAAEAAf4AAAEA/wABAAAAAAABAQD/AAIAAf8BAAAAAAEAAQABAAIAAP8AAP8AAAIAAP8BAAABAAH/AQACAAIBAf7+/gADAAD/AQAAAAEAAAABAAAAAAABAAD/AP8BAAABAAH/AP//Af///wAA/////wEBAf8A/wAAAAEBAQH/AAEAAAMAAf3//QL+Af8AAP///wIAAQACAQEBAAMBAwAAAP79AAEB/wAAAP8B/gECAgECAQMCAv39/f79/AEBAf0BAf///wMDBAACAQMAAv//AP//AP8AAQEBAAEBAf///gAAAf//AAAAAQECAgMBAP///v7/AP//AP7//AAAAAD//f79AAECAgICAgMCBAABAAEAAgABAAD///8AAAEBAP//AP/+/v0B/AD9AQAABP8BAgD+/QACAgD+Af7//gQDAQIC//7//gIAAf37+wQDAwABAf7///39/v7//wIB/wACAQsNDPbz8fz5+Pr5+QAA//7//wICAgEA//8A///+AAD/AAQFBwUGCAABBAIDBAEBAAMDAf7+/gEB/wABAP///wMBAgD///7+/QD///8AAAQEBfz+/v79/v/+/wEB//8A/wEBAQQGCQYWCwYGBwAFBQECBQIDAwIDAgMDBP8AAP8A/wMBAwEBAQAAAAABAQAAAAEAAP8A/wECAgL///8A///9/gEDAQP+AP8CAgH+/gL+/gMEA/7//wD/AAEA//3+//7+/QEAAv///AD/APz+/AD/Af///wAAAP8A/v8A/////v////7//wABAAD//wEAAf7/AP8A////Af/+/Pr5+vDw8ODg4Ojm4/r49v7+/f8A/wAAAAAAAAABAAAAAAEA////AAEAAf8BAAD//wD/AAAAAAAB/wD/AAAB/wAAAAD/AAAAAAAAAAAA/wAAAQAA/wD/AQAAAAEBAP//AAD/AAAAAAABAP///wEAAP8AAAAAAP8AAAEA/wAA/wAAAP8AAP///////////v/+/gQAAQAAAAH/Af8AAAABAAD/AQABAAABAAAC/wAAAQEAAAAAAQH/AP8A/wAAAAABAAAAAAH/AP8BAAEAAQABAQABAAEAAP8A/wABAAEBAQD/AAAAAAABAQEBAAEAAP8AAAD/AQABAAAA/wAAAP//AQEBAP8AAQAAAAD/AQAB/gEAAQAA/wD/AP8B/wH/AAIB//8CAQACAgL+Af4BAQL+//3//v8AAAAAAAABAAAAAAD//wABAf/9AQH+/QH///8BAgECAQEAAf8CAQEB/AD9/f4AAAD+/v4CAv8AAP8A/wD+/v8BAAABAAABAgEAAAEA/wD//wEAAQECAwP//v4A//7+/gAAAQIBAv8B/wAA/wH//f7+/f/9Av0EBAT9AQEBAQECAgMAAQICAgMCAgICAgL/AAEAAAECAQMCAQMAAAEAAAEBAAD//wABAAIBAQECAQEAAQAAAAD+/v8AA/8AAAABAgL//v4AAQEBAQH////8/Pz+///8/PwAAAD+AP/+/vz9/f0CAQD7+fkA//4HCAoICAgCAwYDBQj/AQMDBAUBAQICAgAAAAAAAf79/fwCAwMAAQH/AP8AAAEB/wAAAAD////+//8CAQEBAwIAAAD//wACAwMBAgQEAwMDBQgEBwcEBAT+//8A/wAA/wABAwEDAQL+//8AAAAAAQEAAAD///8AAgAA/v8BAgH+//8AAAABAAECAwIA/wD/AgD//wD/AwL/AQH+//4DAAAA//8AAQEB/v7+/QH+AP4DAgUD///////+/v7//wD+/f7+/////v3////+AAD/AP4A/gH/AP7/AAAAAAAAAAH////6+/vz9PTn5ujq6en08/P9/PwA/wAA/wAAAAAAAAEA//8AAAD//wEAAP//AP8AAP//AQAA/wD///8BAAABAAD/AAAB/wD/AAAAAAD//wAAAAEBAP/+AQEAAP8AAAD//wAAAf////8AAAEAAAABAAD/Af8AAAEA////AAH/AAD/AAEAAAAA/wD////+///////+/v8EAP8AAAEAAQABAAEBAP//AQAAAAABAQAAAQAA//8AAAAAAAAAAQAA/wAAAAAAAAEAAAAAAv8B/wAAAAAAAAABAAAAAAABAgIB/wD/AP7/AQEB////AQEBAAAAAAEBAAD/AQABAAD/AAEAAP8AAAH///4AAAABAAAAAgAA/wL/Af8B/gAAAQAAAAEB/v7/AAD/AQIBAP//AQACAQH9Af8A/wL/AP8A////AP8AAQIBAAAA//7+AQH+AQEBAAD/AP8D/wL/AwAF/gAABf8AAQH8AQABAgMDAwMDAwMDAQICAgEAAAABAQEAAAAB////AAD/AAIDA/8B/wD+/v/+/wACAQL+Af8A/wD///8AAf///wD//wD/AP///fz9//8A/v7+BAUGAwMAAP4AAAIBAQAAAgEBAAACAQECAAD/AP////8A/fz9AgMB/wMB/wABAwMCAAAAAAAA/wAA/f39AgID/v7+/v7+AQD/AQIC/Pz8///9/v39/f79/v/9/fz7AQH//v39/AH++/r6AQMCBgQFBAkOAwUIAQQFAQIEAAADAAAA/wD///8AAQEBAQIC///+/f38AAICAQABAAAA/wD//wD/AAAA/wAAAAEAAAEBAAABAgIEAgUFBAYIAgUFAQMDBQUH/wD//vz+/gD/AP//AQIBAwEA/wD/AQD/AAEAAAABAAAB/wEAAP8AAgEB/v//AgECAAD//wAA/wEA/////v7+AAIBAf4A/v7+/v/+Af4AAQECAQMCBAAD/v3+/wD+AAAAAQECAQEA//8AAP3+//8AAAECAf/+AAAC/wD/AP8A////AAD/AAAAAAD//f396uvq4eHg5+bk9/b1/v//////AAD///8A/wD/AAAAAAAAAQD//wAAAQABAAAAAAD//wEAAQABAAAA/wD/AP8A/wAAAAAAAP8AAAABAAD+/wABAf//AAAAAP8A/wAAAP8BAAEAAQAA/wD/AAAAAP8AAAD/AAAAAQAAAAABAAD//////wAA//////7+/v7//v7+ACuB1H4EAAEBAQABAAAAAQAAAAEBAAAAAAAA/wAAAQAAAQEB/wAAAQAA//8AAAEAAQAB////AAEA/wEAAAABAAEAAQAAAAABAAD/AAD/AP8AAAIBAf8AAAEBAAD/AAABAAD/AAACAAD//wABAAD/AAABAQD/AAEBAP8A/wEAAAAAAAAAAQAAAQECAAD/AP//AwIB/v8AAP4AAQIA//4BAAH+AP8C/wH+/v//AQEB/v/+//7/AQEB//8AAP//AgID//4B/wP+AP4D/gD+Av/+/QP/AgEB//7/AAAB/wAA/f/+AwAD/v8AAQH//wABAP/+/wD/AP8AAAAA/wAC//8AAQEEAgD8/QECAQH+AgICAwP+/wEEAf7/AAD8/f39/v/8AAAA//7///8A/wT/AwL+///+AQMF/wICAwIG///9AP8E/wD/AQD+AAEC//7+/Pz6AAECBwEHAgICAQICAP8A////AP7+/gEAAQEBAQECAQEA/f3++/v5AwEC/vz8/fz7/v79/Pv6AAD//Pz9/wEBBwgIAgUHAgYJAQIFAAEBAAABAAD/AgID////AQL///8CAwIF/v/+AAAA/wAB//8AAP/+AQEB//8A//////78AQACAwUEAQEBAAEBAQECAwMEAwQGAQIDAQECAwMB/gH//v7+/f7+/v/9AgICAQAA/wD/AgEC////AAAAAQEA//4AAAD/AP//AQEC/v7/////AAAAAAAA/wAA/v/+AAEBAgMCAf4A////AAAAAQAB//7//wD/AAAB/wAAAAH+/v7//wD+/wD/AQIB/wD/AP4A///+//8A/v//AP///wD/AAABAgEC/wAA+fr79fT09/b0//79AP/+AAAA//8AAAD/AQAA/wAAAAAA/wAAAAAAAAAAAAAAAAABAQAA/wD/AAAAAAABAAAAAAD/AAAAAAEAAP//AAABAAAAAAAA/wAAAAH/Af8AAAEAAP8AAAAAAAAAAAAAAQEB//8AAAD/AAAA/wAA//8AAAAAAP/+/wAC//8A/v3+/v79BAEBAAAAAAEAAP8BAQH//wAAAAAAAAAAAP8AAAEAAAEAAAAAAAEAAQEAAAAAAQABAAABAAAAAQEAAP8AAAAAAQAAAAAAAQAAAAEAAAAAAAABAAEAAAAAAf8A/wEAAf//AAEAAQAA/wABAQAA////AQEBAAAA////AAAAAQEAAAAAAAIBAAAAAf8AAf8A/wEAAAACAAAAAQEB/gECAgIAAP7/AAIC/v7+/wIBAf7//wD//wICAQIDBQD/AAAA///////+/v7+BP0DBQMD/P7+/f39/AD//gMDBAECAgMDAwICBAABAP///gH/AP///wAB/v7+//4A/gH/Af8AAf3+///+/wEBAgECAAD+AAADAP4A/QEEAf/+AP7//P///wIBAP79/f3//wEEBQABAP0AAAL+AwEEAv7/AQMDAAIDBQD/AAEA/gACAQAAAAEAAfr7+wICAgUEBAEBAQEBAv3//v/6/gICAf7+/v7+/wYGBv///f79/P79/Pz6+fz6+f7+/gD////+/gUGBQQFCAMFBwECBP7//wH/AwIBAgAAAf/+/wABAAIBAwACBAICAAH9/QICAAAA//7+/f8AAf/+AP//AAEBAQEBBP8AAAAAAAAAAP7+/QUBAQIBAgEAAQIAAQD/////AQABAf8A/wEBAQEAAAAA/wAAAP//AP/+/wIDAv///wIBAf4CAAAAAAEAAQECAQH/Af////8A/wABAQACAQH9Af///wH//wABAQD+//7//wAAAQAAAAAAAP3+/v7//v7///78/Pz+/f/+/v///////////v8AAP/+/wAAAAAAAAH/Af8BAPr7++3t7uDg3+Lh3/n29wAAAAAAAAABAAD/AAAAAQAAAAAB////AAABAQEAAP8A/wD/AAAAAAAAAAAAAP8A/wH/AP8AAAEBAP//AAAAAAEAAf8A/gAAAQAAAAAAAAAAAQAA//8AAAD/AAABAAAAAQABAAD//wAA/wAAAAAAAAAAAAAA/wAAAP//AAD//wAAAAAB//79/wT/AAEBAQAAAAABAP8AAAAAAQEB//8AAAEAAf8AAP8AAAEAAQABAAD/AAAAAAAAAAAAAAEA/wD/AQEBAAAAAAD/AAABAAAAAQEAAf//AAABAAEAAAD///8CAAH/AQEBAP8AAP8AAAEB////AAEAAAAAAf8A/wECAQH/AAAAAAAAAQAAAAABAQH//v//AAD/AAD+/wAAAP7/AgEB/wIAAAAB/wAB/gEAAv///v4CAf7//v///wABAAAA/wAAAQEBAAEAAv8CAAL/AAP+AP8A///+//79/Pr9/foEBAYA/wABBgIDAgQAAQICAgECAQL+/v39/v7//v7+/fz+/gEEAAT+AQD+/f3/AAABAgEA//8CAwH+//wCAwMA/v/+///+//7//wEAAP///AAC/v0BBgD/Av/++v4BAQH7APoCAwQBAwUCAgIDAgQBAgMCAwMGBwf9/P38+voDBAMBAAIBAQEAAQH9/QD///8BAQEAAgL+///9/fz+/v38/P38+/wA/f7//v/9/f8ICAYBAgUCAgUEBAcDBAX+/f0BAAAEBQQBAQD//wAAAQAAAP8AAAL/AP//AAABAQH////9/f3///4DAgP+/wADAwIDAgIBAAIBAgIDBQYCAgP/AQABAQEDBAUBAAH+/v7//v7+/v8AAP//AAEBAQH///8BAQEAAP/9/f4A//7+AQEBAAEAAQH//wAB/f79/v////8AAP/+/v8BAQH/AQEA///9/v4AAAD//wD///////8AAQD/AAACAgIA/v/9/f3+//8A/wAAAAAAAAD//////wD+//8A//8AAQAAAAAAAAD9/P319fbi4ODb2Njz8vH//vwA//8AAAAA/wABAQH///8AAAAB/wEBAP//AAAA//8AAAAAAAEAAP8AAAAAAQEA/v//AAAAAAAAAAAAAQAA//8AAAAAAAEAAAAAAQAA/wAA/wAAAAAAAP8AAgH///8AAP8A/wAAAAABAAH/AP8AAAAB/wAAAQH//wD+AAD//wD//v/////+//8EAQEAAP8AAAEAAAAAAAEBAQAAAAEBAAAA//8AAQIBAf8AAP8AAAABAAAAAAD/AQABAAD//wEBAQH/AP8B/wAAAQAAAAEBAAAAAAD/AQABAAH/AQABAAEAAQAAAP//AAEA/wAAAgAA/wAAAQEAAP4AAP8BAAEAAAD/AAAAAP8BAAAA/wD/////AAEAAP8AAAEAAQEA/v8AAP///v//AAAA//8AAQAAAAD/AP//AP8AAQEB/////////wAA//3+AP///gD+AP////79/fz7/vz8//79/vz6+/37+QD1AgIEBwcIBQYIAwQFAgMEAwID/v/+//7/AP7/AP8BAgIBAQAEAgIDAAQAAP///v39/f79//79AAACAAAB/f0BAf//AP/+AQEBAwICAQEBAQAA/f38AP7/AQABAwME/wD/AQABBAQG/f39//7/AAH8APsB/v7+BAME/wAA/f78AQECAQECAwMEAAEAAP8AAAD//fv8AP//+vr6/P39/v7+/v3//Pv9Av8AAgEC/v3/AP//AgEBAP//BAMD/gECAAEBAAIBAQIBAP7///7+AwQEAQAAAQEAAgED/wD+AP/+///8AQEEAQIDAQD//wAA/v7/AwMBAgIDAgIDAQMDAgICAgMDAAAB/wEBAQEC////AAAA/v7/AP/+AP8A//8AAQD9/gMDAwID/v//AQD//gABAf4BAAEA/P7+AP7/AAAAAQICAAD//v7+//7+/v7+/wAAAP///v7+AAAA/v///v3+/v79//8A/////f39/v7+/fz9/v/9//8AAAD/AQEBAgICAAAAAP///v7+/wD//f398vHx6unq9fLy/fv6/v8AAP//AAAAAQEA////AQAA/wAAAAH/AAABAAD/AP8AAAD/AAEAAP8AAAD/AQABAAAA/wABAAD//wAAAP8AAAEBAAAAAf//////AAAAAAD/AAEAAP8AAP8AAAH/AAEAAP8AAAAAAAAAAAEAAP8AAAAA/wD/AP8AAP//AP///gD//wD///8AAAD/BAAA/wABAQD/AAABAQAAAAAAAAD//wABAQEAAQD/AP8BAAAAAQEAAAEA//8AAQEBAP//AQEAAP8AAAAA/wAAAAABAQAAAAAA/wABAQEAAP8AAAAAAAEAAAAAAQEBAAAA/wH/Af8AAAABAAD//wEBAQABAAAAAP//AAD/AAAB////AAEBAf///wAA/wEBAAAAAQACAAL/Av///wL+/v7//wIBAf8AAAEAAQACAQD/AP7+/v//AAAA////AAD//v7//wAA/////v///wH/AAD+/gL+AAEAAgEA//38/P4A+//9+/z7+gYHCQUGCAAEBgEBAQEAAf8B/wD//////wD/AAEAAv8AAP///v8AAQIDBAEDAwICAwMEBPz9/P/+/v/+/gAA/wD//wABAAEBAgEBAgIDAwAAAQEBAwEAAP8AAP39/QMEBQICAgICAwABAQAA//3+/QAAAQIDAwMBAwMDA/7+/wABAAEAAf8AAP3+/vv7+/38/Pz7+vz7/P38/QH//wYGB/37+v/7/P0D+vz49vgAAv/8+wIGCAMFBQD/AP37/AD//wD/Af8BAgIEBAICAQABAQH/AQIFAgL/AAECAAECAf39/AAAAAMCAf4AAAQBAwIEAv8AAP7+/////wAB/wAAAAD/AAABAQAAAP///v8AAf77/AACAgMBAv/9/v/9/wECAAAAAQAAAAAA///+///+/gD/AAABAf/+/gEAAP3+/v79/f79/v7//QECAgAAAf/+/v3+/v79/v7+/f7//////v7+//7///8B/wD/AQICAAEBAv///wAAAAAAAP8BAQEBAf39/vn6++fo6ufn5vz8+wEAAAD///8AAP//////AAAA/wAAAAAAAAAAAAD//wD/AAABAAAAAQD//wAAAAAAAQAAAP8BAQD//wAAAAEAAf8B/wD/AAAAAAAAAAABAAAAAQD+AAAA/wAAAAEBAf//AAEA//8AAAAAAAAAAAD/AAD/AAAAAAABAAAAAAAAAP8AAAD/AP8AAP8A/////wQA/wEBAP8AAQIBAP//AAAAAAEAAAH/AP8BAQEAAQABAAEAAP8AAAIA/wACAAD/AQAAAAAAAQAA/wABAAAAAgEAAAABAAAAAQAAAAAAAAABAAAAAP8A/wAAAf8AAAEAAAD/AQABAAAA/wD/AQAAAAAAAAEA//8BAAAAAQD//wABAQAAAAABAAH/AAAAAQABAAAAAAAAAAAAAQAAAAMCAQH//v4A/wAB/wD+AAD//v4BAQD//wD//////wD+/v8A//7//v/+//7///7//wD+AAD9/f38/Pz8+/z//vwCAgL+AP79Afv6AAH+/f8FB/4DAwMCAQIBAgICAwL/AAL/A////v8A/v8AAwECAQMA/wD+/vz+////AAAAAP8A//8AAQD9/P4CAQAA/wD/Af8A//36+vsAAQMEBP4EBQYDAgIBAQIA/wAAAAD9/v4BAAEBAwMBAAABAgEAAAD/AAD+//78/f0CAgIBAgIA///+/v78/fz+//74+Pj8+vkB//7+/Pz+AgIA/f8AAQEA/Pz/+/wBAvn6/PsF/fwB/ggBAgL//v4B/wADAgIAAAD+/wEBAgH6+vsCAgMFBgQBBAH/AP7/AP4CAQD9//7+/wAEAQMAAgIBAQMDBAYCAwQBAQIAAAEBAAH/Af8B/wECAgL9/QH+/f3+AAAA/f0AAgACAgL+AP8C/gABAgMCAQD+/////v8AAAH///7//v7+/wACAgIA///+/v7+//3+/v8A/v0BAQH////+/v39/v7+/v7+/v7+//4AAAAA/wABAAEAAQD/AP7//v8AAQABAAH/AP8A/gAA//8A///29/bs7Ovz8/P7+/v/AAAAAQEBAAH/AP8BAAAA/wAAAAEAAP//AAAAAQABAAD//wEAAP8AAAABAAD/AAAA//8BAAD/AAAAAAD/AP8AAAAAAQAA////AAAAAAEAAP8AAAAAAQAA/gD/AQAAAQAA/wAAAAAAAAAAAAEAAP8AAQEA//8A/wD/AQD/AAABAP///////////v/+/v4EAAD/AAEBAAAAAAAAAAAAAP//AQEBAAABAAAAAQAAAAAAAAABAAD+AAEC/wD/Af8AAAAAAP8AAAEAAAAB/wAAAQAA/wD/AAAAAQEAAAAAAP8AAAAAAAEAAAABAAD/AAEAAf8A/wAAAQEAAAACAQAA/////wABAAEAAAAAAQAAAAD//wAAAAAAAAABAP//AAEAAQABAQEA//8B/gH/AAACAAH/AQEA//8CAgAAAAAA/wAAAAH/AP8A/v8AAgIB///9/f7/BP8CAAAA/v7+AgMDAwMEAgUE+/sF/vz6//79AgECBAQGBQUGAgMD///+/v7//gEB//0AAQECAQABAAD/AQACAgMC//8A/P37/Pz8AQEAAgIC/f0AAgED/wMCAQEBBQT//f3/AQEBAQICAgMEAgIEAAICAAABAP////8C/v///Pr7/wD/BAQFBAQGAgABAQAA/v7+AAD/AgAC/f4AAQEBAQAA/v39/Pv7+vn4/Pr7+vj4+PX1//j2APv5AP78AP7+BwUFAgAA//z+/vz8/gP7AP4A/P7+/fr5AgQEAwQD/vz9/QEDAwUFAQMFAwUHBQQD/v8A//8BAAIC+ff3BQUFAQEFAP77AQECAwMGAAMD/wEEAQEEAAID/v8A//7/AgEA/wD/AAAA/wAAAgMDAQIB/v7//v/+AP8A//8AAAAA/wAA//7+/wAA//8AAP///f/+AP//AQEBAAAA/f39AAD/AAEAAQACAQH+//8A/////v7//f3+/v39AAAAAAAA//7/AAD//v7////+AQD//wAAAAABAQEBAQEAAQAB/wH/AP8B/P3+397g19bW7+7u/v7+BAUF/v/+/Pz+AQAB/wEAAP8AAAD/AAABAAD/AAD//wEBAP//AQEA//8BAAAAAQD//wEBAAAAAQAA///+AQAA/wAAAP8A/wAAAAEAAP////8AAAEAAP8AAAEAAQAA/wAA/wEAAP8B/wAAAf//AAAAAAAAAAEBAAAAAQAA//////8A/wAA//////7//f7+BAAAAAAAAAAA/wAAAAEAAQABAP8AAAAAAAEAAQAAAAAAAAAAAAAAAgAA/wEAAP8AAQAA/wAAAAAAAQEBAQD///8BAAEAAAAAAAAAAQD///8AAAEAAQEBAAAAAP8AAQAA/wAAAAEBAQAAAAH/AAAAAAEAAQAB/wAAAQD//wABAP8AAQD/AAEBAAD//wACAQAAAQEA//8AAQAA/wEBAAD//wADAgD+/wAAAgECAAEAAf4BAQH+//7/AQQBAAD/AP//AwL+/v8A/wAAAAMA//79Av4DAwADAQAB//wBAP/9/f///fv7+f39/AMFBwUFBwICBQIAAQACAv/+/////v7+/v///AH7AAAAAAICAAQEAwEBAgQDBAEBAf39/vv8+vz7+wIDAgYIBQEBAQEAAQACAwIDBAICAwAAAvz8/f79/QAAAAMCAf39/fz7/AMCBP/+Af8BAAABAQEAAfz7+/8A/wEDAgQCBP//AAD/AP/9/v77/Pz6+v37+v76+f34+P379wsJCv4BAv8AAgUFBAD+/gH9/gEBAv76+wP/AAIAAf78/P////4D/QMBAAMCAv/8+gEDCQQEBAMFBP7+/wQFB/v8+wMD//7+/wH+AP3/AQQDBAEDA/4BAAIAAP///wD+/f4AAQABAf8A/wEBAgEBAAEBAQEBAQMA//3+/f/+/////wAAAAEAAf8AAAAA//3+/v///v//AAICAf8A//3+/fz8+wEAAQECAv8AAf/+/v3+/v////7+/gAA//3+/v37/Pz+/P///wABAAD//gICAgIBAgABAAEBAQABAQAAAAEAAf4B//j5+Ofm5vLx8fv7+vj4+AMEAwcICQL7+fv7+//9/v8B/wH/Af8A/wEAAAABAgMCAwIGAgAAAf/+/v3+/P7+AP/+/gD//wAA/wAAAQAA/wAAAQAB/wH/AP8AAf8A/wABAAD/AAAAAP8AAAEAAAAA/wD/AAAAAAEAAAEBAf///wAA/wD/AQAB////AAEBAQD/AQD/AP7///7//v7+/gQAAAH///8BAQEBAAH/AAD/AAACAAH/AP8AAf8AAAEAAAAAAAAAAf8B/wH/AP8BAf//AAEAAP8BAAD///8AAQABAQAAAAEAAAAA/wAAAAABAAEAAf//AAEBAAABAAH/AAAAAQAAAAAAAAEAAf8AAAEAAP8AAAEBAAD/AAD//wABAQABAAAAAAAAAAD/AP8A////AAAAAAABAAABAQEBAgL/AP//Av4B/gAAAQP/Af4A/gD/Af8A/wH//v4AAQEBAf8DAgL/AP8A/wD///4CAAH/AgICAgABAP8BAAL8Avv+/Pr////+APwB/gP+/wT+/wMBAAMA//7+/v4A//8A//8A//7+/v7/AP/9/QAAAP/+////BgYFBAgBAAECAgMCA//+//77+/v+/v4CAgEAAQIDAgQFBwcBAQQCAQMCBQQBAQECAQIAAQD8+/v39vYAAQADBAMEBAUAAAIAAQEAAAACAP//AwQA/wADAwIFBAX5AwP///7//vz9/Pn7+ff/+/n+AwX6AAEKCQoEAQEEAAD9+voCAwQAAQAAAAL9//sAAAAAAP8C/gP8/PgC//8AAwX+AgIB/v////8BAQECAQH//wD7+/oCAgQAAQL/AAH/AQMAAgP//wH+/v8BAgABAQH/AQAA//////8AAQAAAAEAAAEAAP3/AAEDAQP+Av7///7/AAD+/v7/AP/+/f7+/v4A////AP/8/AAAAP////7///7+//8A/gEBAQH/AAH+//79/fz+/f39/Pz+/v3//////v7///4AAQEBAgL//wH/AAABAQEBAQEBAQH/AAD+///7/Pzx8PH19fX9+/sA//8SExMJCAj09fT8/PsIBwcAAQEBAQECAgIDAgP//v8AAP8AAAL9/v3//v7/AAAA/v7+AP78/Pv6+vr9/f0AAP8AAAABAP///wD/AAAA//8BAAH///8AAAAAAQAB/wD/AAAAAAAAAQAA/wAAAAAA//8AAAAB/wEAAf//AAABAAAA//8AAAD/AP8B/wD////+/v8EAAD/AAD/AAAA/wAAAAABAgAA/wD/AQAA//8AAQEAAAAA/wEAAf8A/wD/AQAAAP8AAAH/AAABAAAAAQAAAAAA/wABAAAAAAEAAAAAAAABAAAAAAABAQAAAQAB/wH/Af8A/wAAAQABAAEA//8AAAAAAAAAAf8A/wEAAQAAAAEBAAAAAAAA/wD/AAEBAf8A/wD/AAAAAQAA/wEBAQD/AAECAP/+AAADAAP/AP7+AAACAgIA/wD/AP3//gEA/wD/AAABAP8AAQABAAH///8AAAEAAQACAwMFBwcBBAUH/fz8/Pv5+vr4AP//AQEC/f39AAD5/gMEAf8CAAD/AAABAAAAAAEA/wD+///+/v/9///+AQAB+/v/AgIEAgEDAQEBAgEA+Pn6//7+AwQEAwMF/wAAAP////7+AAH9AgEBAQIF//8A/wAAAwIDBQUB/AX8/v/9AQED/v4AAAH+AP8BAAEBAwACAP8AAQIB//4BAQMBBQYE/v779/Px9OvpBwAABQIC//z7BwgHBAD/APz6/f7/AwMDAP/+AAAB/f3+Av0DAgIDAQICAf7//gD/+/39AwcH/v39AAMFAwcIAgMD/v79//79AAECAAIB/wEAAAECAQEEAv8DAQMCAQECAQEB////AAAB///////+AP8AAAAA/wAAAP8AAAD//v//AQEBAQAC/f7/AAD///7//v7+/f39///+///+//8AAQAA/f79AAEA//7/AAEAAAECAP8B/v79/f7+/v39/v39+/z6///+AAECAQICAQEBAAEBAQABAAABAP8AAQABAP///f7+/f79+vn58PDw8O/uBgUFDQ0X/v/+AP//GBkZGhoZ+vv67Ovr9PT1+fj4/fz8/f39AAD/AP8A/wAAAAAAAAAAAQEAAQIAAQEBAAEAAQAB/wH/AP8A//8BAAD/Af8A/wAAAAAAAQEA//8A//8AAQAAAAD//wABAAD/AAEAAf///wEBAAD/AP8A/wABAP///wEAAAAA////AAD//gD/AgD/AQEABAAB/wEAAAAA//8AAAAAAAAAAQAAAAABAQAA//8AAAAA/wH/AQAAAAAAAAAAAP8AAQAA/wAAAAAAAAAAAP8AAQD/AAABAAH/AAABAAAAAQAA/wEAAAEBAP//AAAAAAAAAQEA/wAAAAD/AAH/AAABAAAAAf8B/wD/AAABAQEA////AAABAAIAAf//AP8BAAD//wABAAD/AAABAQIAAP7//wEBAQAAAAD/AAACAgH//v7/AQD/AAAA/wEBAAD+AQAA/wAAAAEBAf8AAAIBAgAAAf8A/wEBAgICBAL//wIC/AIDBQQGCQD+/v/+AAECAAICAwICAAEBAv8A////AP/+/f39/AIBAv/+/QD+APz8/wABAP7+/vn49gMCBAIDA/7+/gEBAQECAgAA/v39/f8AAPv+/f339vr3+AQHCBIRFwIEBQEDAv8BAP8AAQUHCP///wAA//7///79/f3+/QICAv7//v79/AIDBAD/AAEBAQIDAwH/APf08+rk5B8bGwYEAwUCAAL///78/AIBA/4A/gMGBwAAAAAAAf8A/f4BAv4BAAUFBgACAgABAf39/f39/AIEBQIDBgH//v8EBPz+/v/9/wAFBPz9/gH//QQGB/8A//4A/gMAAv///v7+AQD/AAABAP///////wEBAAABAQD///7//wAAAQAA/wD/AP8BAAAAAP//AP8A//8AAP///v39/f/+/QABAf38/P8A//8AAAEAAAAAAf///AABAf79/v3+/vz7+//+/v7+/v///gICAAD/AAAAAgD//wAC/wAAAQAA//39/QAAAf///v37/fT09ejo6AICAiUmJfT29Pr6+gD+/u7t7uzs6/b29f3+/QH/AQEBAAD//wAAAAD/AP8AAAH/AP8BAAAAAP/+//4AAAH//v8A//8BAAH/Af4AAAAB/wEAAP8AAQH/AP////8BAQAAAAAB/wD/AQAAAAAA/wD/AAAAAP8BAAH/AP8AAAABAAEA//8AAAAAAAAAAAAA//////////////7+/gQAAAAAAQAA/wEBAAEAAAEAAAABAAAAAAAAAAEBAAAAAAH/AAABAAABAQAA/wABAQAA/wD/AQAAAAAAAAABAP//AQABAAEAAQAAAAEBAAAAAAAAAAH//wABAQD/AAIBAQAA/wH/Af8AAP8AAAH/AP//AP8A/wAAAQAAAAAA/wAAAAABAAAAAAAAAQAB/wEBAQL/AP8AAf8AAAD/AAAAAQEA//8AAAAAAQAA/wAAAQEB/wH//wACAgL//gAAAgD////+//7//v4AAAECAAEAAQH/Af////4A/wACAQEBAwUBAAH7/f38/Pr+/f3//v8AAQEBAQECAwICBAMCAgIBAAECAgIBAwL//gT9/QMCAv0A//////3//v/+/v39/vv9+/v7/PsAAAADAgQABAACAgQCAgACAQTw9vb68fIDAgULDBAF/wcDBAMAAAABAwH//P//AAD///8AAQEBAAABAAH//v//AgEBAAD+AP///wL+/gAFBAT//fz+/fz9+voCCAj//f/+/P0DAgMCBgUA/v7+/PkA/wQBAAMA/wMAAv8CAwL++/sBAgIBAQL/AgH//QL+/v/+A/3/AP0BAwX8/v/8/v7/+QACBwYECQkAAQH+/////gD+Af8CAgL///8AAAD//v//AP8A/wAAAAEAAP8AAAD/AAD//f0AAP8AAQEAAAD////+/v79/fz9/f79/f39/fz9/fz//v39/f3+/f7+AP8CAQL/AAEAAAD/AAABAAH+/v79/fz///////7///7+/gAB//4AAgIEAQL+/QIBAgMB/wAAAAH9/v77+/z4+fnx8fH19PUBAADt7u3x8e/o6Oj39vf+/v4CAAD///8BAAD/AP8B/wEAAAAAAAAAAAABAAD/AQAA/wAAAQD/AAAA////AP8AAAAA//8AAP8BAP8AAAH///8A/wD/Af8AAAAB/wAAAf8A/wEAAP8AAAABAAH/AP8BAAD//wH/AP8A/wAAAAAAAAAAAQEA//8AAf///wEAAAAA/wAAAAD///8EAQABAP//AQAAAAEAAf8A/wAA/wAAAQAAAQAB/wD/AAAAAQAAAAEBAAAAAAEAAAAB/wD/AQAA/wAAAQEA/wABAP//AAEAAQAAAAAAAAAAAP8BAQEAAAEBAAAAAQAAAAAAAAAAAP8AAAEBAAEAAf8AAAAB/wL/AAAAAP4AAAEBAv8A/wEAAf8AAAAAAAH//wABAP///wAAAf///wEBAgD//wABAQEA//8A/wAAAQAAAAICAgAA//79/gIB//3+AAD/AQAB/////wD/AAAA///+AAAA/wD/AAAAAAD///79AP/+AwQDAAEG//39/fv6/v7+//7//P3+AfsBAwQEAgIDAQMC//4AAQEBBQQG/fz7/v79AAD//gD++/v6/v37AAEAAQD/AQECAgIBAgECAgIC/wABAgICFxkZ+vr8AAD/+/v5/f78BwgJAQEB//3//v//AQEBAwID/v39AAIC////AQEBAAEA/Pz9AP/+/wAAAwME/P3+AwIDBAYG4eTlGRf+Dw0NBgUHAf7//fv8AQEB//37BAP+AwMG/wAAAgEA//z/+/78/gQDBAQF//8BAQMBAPz+//39/P37AgUH/wEC/vz8+Pf1Cg8QAwsMAAD///3+/gL+Af8CAAAAAAAB////AAAAAAAA/wD//v7/AP/+/wAA////AAAA///////+//8A/wD///7//v7+/v39/v39/v39/vz9/Pz8/v/+/fz9/wH/AQAB//8B/wD+AAAB/v79AP///v/+//7/AgIBAQAC////AAEAAAD9/P/+AQIDAwAC/wAA///+/f8A/v7++/z87+7v7ezr5OPj8PDt+/v6/Pv7/v7/AQAA/wICAAEAAP8BAQD//wAAAQAAAAAAAAEAAAAAAP4AAAEAAAAAAQEA/wABAAAAAAD/AAAAAAABAAD/AAAAAAAB/wD/AAABAQD//wEA//8AAAAAAQEBAAD///8AAQEA//8AAAD/AQAA/wAAAAAAAAAAAQD//wEAAP8AAAEA////AAD///8A////BAABAAAAAQAAAAAAAQABAQEAAAAAAP8AAAD//wEBAAAAAAAAAQEAAAAAAAAAAAAA/wEBAf8AAAAAAP//AP8A/wECAQEAAAEAAgAAAAAAAAAB/wABAf8AAAEAAQD///8B/wEBAQH/AQAAAAAA//8BAQEA//8AAQAAAAECAP////8BAAAAAAABAAEAAf//AAEB/wAAAQD/AAEBAQEAAP8AAQAA/wEBAAD/AAAAAP8A/wAAAQAA/gABAQEAAgABAP///gEB/wABAgD//wEAAAABAv///wAAAQD///7///8AAAABAAEAAQIBA/4C/wIEBQD9/P38+/7+/f7+/f39+wMEBgP+AwICA/8BAf8A//7/AP7/AP7+//39/QAAAAEBA/7+/QAAAPr6+wMC/QUGAAQCAwECAQAAAgACAAQEBP//APv7+AD7AgQDA/8A///+AAIDAwAAAv////8AAP39/gEBAQD//////////wD/AP7//f8AAAMFBggLCwgNDubo6+Dl6xYUFCwmJxYSDwYGBAMCAgH/APz+///+AQEB/wEAAQEBAgAA/v//Af79/P79///7AAECAQACAgABAP38/P7//+zr6f7+/QkMDAEAAf/+AP////7+/gMDAP79/gABAAABAf///////////////gD/////AP8B/wEAAf7+/v8A//79/gD///8A//39/v38/Pz8+/v8+gH///z8+/7+/v39/f7//v39/gEBAP///v7+//38/AEB/wECAAQDBf7/AQEBAwEB/wAAAgH/AwABAgAAAv7+/v8BAf/+//v8+/f5+e7t7eLh4OHf3/Dv7f3+/AEAAAEBAgEC/gD+/v///gAAAgEAAP8AAAH/AP8AAQEB////AAAAAAABAAAAAAAA/wD/AQEB/wAAAP8AAAEBAf///wEAAf4AAAEAAAABAAAA//8AAAAA/wABAAH/AP8AAAAAAAABAP/+AAEAAP8AAAAAAAAAAAAAAAAAAP8AAAD/AP8BAAEA/wAAAQAA/wAA/wD/AAQBAAAA/wAAAQEBAAAAAAAAAQABAAEA////AP8AAAAAAQEA//8AAAEBAAD/AAAAAAAAAAABAAD/AP//AQEA/wEAAAH/AAAC/wD/AQABAAD/AAEA/wAAAQAAAP8AAQAAAAH/AAABAQAAAAAAAAEA//8AAAABAAAAAP8AAAABAQAA/wD/AQAA/wAAAf8BAAAA/wAAAQEAAQEA/wAAAP8B/wAAAQEAAAAAAAAAAgAB/wIAAP8AAQL/AP4A/wABAQECAQIAAAD/Av///////v8BAAD/AP8A/wD/AAABAQEBAQP//wD//wAA//8AAQQBAAABAAD/AP8BAAD8AP/+//7//Pv9/v4CAv4FBQUDBAQBAv8A/P/9/P3+/fsBAAEDAgIAAP/5+Pn8/Pv9AQEA/wD//wEFBgcABP8AAAEAAgIB//4A/P4EBAUCAgD8+/76+/sDAwMBAAD/AQEBAAEBAQIBAQL+//8B/////v/9/fz+/v3/AP8HCAoMERIO9fEQ8hXq7t7P1trj5uwnIh0rIx4ODAkFAwUCAwT//f8CAv7//v4CBAQBAQH+AP/+/fv+/f39/v4AAgIAAQD/AAD29vbt6ugAAfwLEhT9/vwBAQEBAgMAAQEAAQD9/fwBAgIB/wAAAAAAAQEBAAH9/vz///8AAAABAAD//v7+/wAAAP/9/f8A//7/AAD+/v39/f3+/v3+/v3+/f37+/r8+/r8+/v8/v0B/wEAAQABAAD9/fv+/v7///8BAgEA////BPwBAQMCAgIDAwMCBAQCAAMAAAAA//7+/wH/AP/8/P73+Pn19fPz8vMA//8UFBIDAv719fX09PUAAPwA/wABAAL/AAAAAP7/AAIB/wAAAAAA////AAD/AAAAAAAAAAAAAAAAAAEAAQAAAAD/AAAAAAAAAAAAAAAAAAEBAP8AAQAA/wD//wAAAAAAAAEBAAAAAQAA////AAAA/wAAAQAAAAAB/wAAAAAAAAAAAQAA/wAA/wAAAP//AAH///8AAAD+AAAC/wD///8E/wAAAAEAAQH//wAAAQAAAAEB/wD/AAD/AQEAAAAAAAD/AQEAAAEAAP8BAAAAAAEAAP8A/wAA/wABAf8AAQEBAP8AAQEB/wAAAP//AAEBAAEA//8AAAAAAAAAAAABAQD/AAEAAf8B/wD//wD/AAD/AAEBAP//AQAAAAAA/wABAAH/AQAAAAAAAP8AAAD/AAEBAQAAAQAA/v/+AAAAAAEAAP//AAAAAAEAAQAA/wAA/wEAAAIBAf4CAQMA/wIBAP3///7+AP8AAAEAAAEAAAAAAQABAAECAf/////+/wD+AQABAAABAgICAf8A/v8CAAEABgMB/gMEAvwD/f79/v7//f3+/fz9/v7+/vz9AAEA/v79AAEBBAQFAQIA+/v7+/v6+fn4+fn4BgcGBAQFAQEAAQAA/v38/f3//v//AwICAgMEAQIA9vb3/////fz7+vr///7+AQEBAwQFAgIEAAABAgMCBggJAAAA/wD/AwMCAQECAAoKDhIW+vr29PLz8Bbu9Pf45O3q4+vp4+fmQTYwFA8PBAT/AgH+AwL+/fz8BP4E/wABAAAAAAEB+/788vT15unq/fz7/fz7+vn2CAUDEBUQBw0MBwsMAQMDAwICAQEB/////f7+AP/+AQABAAAAAAAAAQAA/v7+/wD+AQAB/P7/AAD//v7+/v79/v7////+/////v79/f3+/v37+vr6/Pv5+Pj2+fj2+vn7///+BQUFAQICAAD/AAAAAQEB////Af4AAgMC//8CAAD9AAABAAEAAQAA//8AAP7+/gABAAD//f7/+vv9+/v69PP15+Xl2NbW5+fk+Pj5//79AAEBAf8AAAD//wEBAAAAAP8BAAH//wAAAAD/AQIA//8AAAAAAQAA/wAA/wAAAAAAAAD/AAD/AQAA/wAAAAAAAAAAAAEAAP8AAAAAAAAAAAAAAQAA/gAAAQAAAAD/AAD/AQAA/wAAAQAAAP8AAAAAAAABAAD/AP8AAP8AAAEAAAABAQD/AQABAAAAAP8A//////8ABAD/AAEBAf///wEBAAABAP8A/wAAAAEBAAEAAQD//wAAAAABAQEAAQAAAAABAAEAAP8AAAD/AAEBAAAAAAEAAf8AAAD//wABAAAAAP8AAAH/AAAAAP8AAAAAAQAAAAAAAQAA//8A/wAAAAEAAP8AAQD/AAH/AAABAQAAAAAA/wD/AAABAAABAAD/AAAAAQAAAAAAAAAAAAEBAQAAAP/+////AAAB/wEBAf//AAAAAQEAAAABAAACAf///gL/Af4BAAACAQEBAf/+/v8CAP//AAAAAQEAAQAA//4BAAD/AP8A/gD//wEBAQAAAgICBAH////////++wIFAQL/AP38/AEA/f///wIBAgEBAAMCBAEDBf7///39+/v7+AEBAQUFBQYQEvv6+vn7+fz9/gP7+wICAwABAv39/gEBAf//AQICAf7+/v//AAEBAQQEBP39/fX29v7+/gcJCQMC+/7/AAEBAQIBAQMGBv///vv9/gMDA/8BAgUJCwsPExEU7xrx8fj5+efp/vT1+dri5BYPCjYsLAgIAAIAAP8DBgIBBPz9/gADAf8BAO/2+NLZ2djh4fDz8w4LCg4LCBIPDBsQFQ0aGw4ZGQMKCgEEBP8BAAABAQAAAAEBAP//Af7//v/+/////v/+//8A/gD//wEBAf7//v3+/v/+/f79/f7//gAAAP8A//7+/v7+/vv7+vr5+fv5+Pv59/37+wH//QABAQMDAgH/AP8BAQEBAgAAAAAB//7//gD//v///gICBAEBAQD/AQD/AgACAAECAgAAAf///v////v7++3t7dfU1dTT0vDw7/39/QECAAD/AQAAAP8AAAEBAf//AAAAAAAAAAEAAP8AAAEAAP//AAEBAQAA//8AAQD//wEAAP8AAAEAAQAAAP8AAAAAAAD/AAAAAAAA/wAAAAAAAAABAAH/AP8AAAH//wABAf8AAQD/AP8A/wAAAP//AAEAAP8AAQH//wAAAAAAAP8BAAAAAP//AAIAAf8BAf//AP//AAAA//8A/gQBAQH/AQABAAAAAAD///8AAAAAAQAAAAEAAP8AAQAAAAABAAAAAP8AAQABAAH//wAAAAACAQH/AQEBAAAAAAAB/wEAAQAA/wABAQAA//8AAAEAAQABAAAAAQAA//8AAAEAAAABAQD/////AAAAAAAAAP8AAQEAAP8AAAABAAH/Af8AAAAA/wAAAAAAAAAAAAEAAQAA//8BAAH/AAAAAf8BAAAA/wEAAQABAQEAAAAAAAAA/wAAAf8AAAEAAQAAAf8B/wH/AP4AAQAAAAABAAEBAQP+//8AAf8A/v8AAAH+/v4AAAD//wACAgIBAQICAgEBAQEBAQn////7+/z8+/n5APn8/Pv8/Pr9/P8CAwQFBAX+AP79/fv9/v7//vwDAgL8/Pz8/P3//QABAwD////+/v7///7+/v4AAQH////+/v8BAAL/AQAEAwMDBQQDAwL+Cgr29/b9/PsBBAT+/P3+///7BgYBAwIAAQAA/v79/f79//8AAgQHCQ0QEhb49PP6+voCAP/p6u/z9fb0+Pn2+PcEBAQA/f79Af0EAwQCBAYAAwHv9/e8ycrj6+0AAgEGCAYECAUJDgsSFhMXHR4RFhoIDBEDBggBAQH+//7//fwCAQIAAAECAQL+//39/f7//f7+/v38/Pv//v4DBAMCAQH8/f75+vf///38/Pv+/v4AAAACAgL/AP/9/P339/T49fL59vX6+vf9/P0CAwP4BwkCBAQDAgMDAQMAAgEBAgEEBAQAAQIBAQEBAQEA/wD//////////v8B//0AAQL8/P74+vnz8/Ln5ubi4uHu7ez5+fj9/P3/AP8AAAAAAAAAAQAAAAABAQAAAAEAAAAAAAABAgAA/wAAAAD/AP8AAAEA////AAABAQAB/wAAAf8A/wAAAAABAAH/AP4AAP8A/wAAAAAAAAAA/wD/AAEAAP8AAQD/AP8A/wD/AQAA/wAAAAAAAAAAAAABAAD/AAAAAQAA/wAB/wH/Af8BAAD/AQABAP8A//8AAAD//wD//wAEAQEAAAAAAAECAP//AAAAAQEAAAAAAQAAAAD/AAAAAQABAAD/AAAB//8AAAAAAAEAAQABAAABAQAAAAAAAQAA/wH/AAEAAP//AAAB/wAAAQAAAgAB/gAAAP8AAAAAAAD/AAABAAD//wAAAQAAAAEA//8AAAH/AP8AAQEB//8AAAAAAQAA/wAAAAD/AP8AAAH/AP8BAAAA/wEAAQAAAAABAAABAAH/AAD/AAABAAH///4BAAD/AQAA/v//AAD//wAAAAEA/wABAP8AAAAAAQIAAQABAgAA///+AQAAAAEBAwMDAAD+///+AQEB///+AQAB/v/+/v/++/v7/fz9/f39AP/+AP/+/wH/AwMDAQD++Pnz/P38/v79AgACAAEB+/v8AP8A/f39AQAAAgAB/f39/fj3AwQEBAIFAQMB/f7+/Pr6AP8ABAUFAf8F//79AgIDCAgHBQUD/Pz9/f3+AwQBBAEB/vz8+f32AwUEAQAB/P38AQEB/v8AAwQGCQ0RFBgbAf7+Av//AQAB/er+9/j38/TzCgkJAPz+//78/wUFAgAA+vj719rb7O/xCgoKBwYDDQkHCw0LEhMQFxcYDxIUCw0RBwgOAwQHAQIDAQABAAAAAQAB/v///gD+/v7//v38//7//Pz8/Pz7AP///f79AwQEAQAA//7//f3/AgEEAgP//v7+/wD/AP8A//39AP79AwIECAoLCAsMAQIBAQABAQIA/v7/+/z8/v/+Af8BAv8CAP//AQICAQED//8B/wEAAwICAAEA///+/v4B/wD++vr89fX26Obo4eHg7ezr/wAAAQEBAgQDAQAB/v/+AP8BAAH/AQAAAQEBAP8A/wAAAQEA//8AAQEA/v7/AP//AAAAAAEA/wAAAP8AAQIAAAECAQAAAAAA//7//gD///4A/wD/AAAAAAD/AAAAAQEA//8AAP8BAAD/AAAAAQAA/wAAAQAAAAABAAD/AAD/AQAA/wAAAAAAAAH/Af8A/wAAAP8AAAAA/wAAAAAA////AP8ABAAAAAABAQD//wEBAAD/AQAAAAD///8BAAEAAQEAAAAAAAD/Af8B/wABAAD/AAD/AQABAAAA/wAAAAAAAAAAAAAAAAEAAAACAQD//wH/AAABAP8A/wEAAP8AAQAAAf8A/wEA////AAEAAAAAAAAAAAABAQAA/wEBAP///wAAAQEAAAAAAQEBAAAAAP8AAAAA/wAAAP//AAABAAAAAAAAAAEBAAAAAf//AAD/AAEAAQAB/v8AAAEAAgMDAQD//wMCAP7+/v/+/v7//gEAAf8A//7//////////wAA/wH/AgD//v8AAf/+Af4A/v7+/gAB/////////gEBAQMEAQECBAMDAQX+BAABAP38+/f39vz7+gMBAgUDBf7+/v7//v7//v38/AECAQH/Afv8+wEA/AQFBfv6/v4D/QT/BQECAwEBAPz9/AL9Avr+/wICAQIBAwICAgACAf8AAAIDAwEAAP39/fn6+AAAAQgACAMDAwD+//r8+gICAQECBAMGCQgMEQ8S+P35+/z+APn7+gYCA/r8/Pr5+gL+//38/QUCAAEDAvDw8Pz4+h8WFvwC/wgFAw0LCQgNChIVFRYXGhAUGQcNEAIHCAEDBQECAwIDAwAAAQAAAAABAQEAAAEBAQIDBP4A/QIDAwYCCAIBAQECAQEBAQIDAggJCf////7+/v39/Pr6+Pr5+ff39Pb08vv59/3++wEBAgECAwIAAwECAgICAwQEAgcHCP7+/wAA/wIDAgICAwQEBAIDBQD/AAABAgICA/8AAQD/AP//AP39//z8/Pj29/T08wICAxIUFQsMC/z7+wABAQIBAf////z8+/v7/Pv7+/79/fr5+v3+/f38/f/+/v8BAP/+/v//AAAAAAEBAQAAAAAAAP//AAEA//8AAP///wEAAQICAwEC//7+///+/f4A/wEAAP8AAAAAAAAAAAEAAP8AAAAAAAABAQD///8B/wH/AAAAAAABAAD/AAAAAAAAAAAAAQAA//8A/wAAAQH/AAAA/wAAAf8A/wQAAAAB/wAAAAAA/wEAAAAAAAAAAQEAAAAAAAD//wABAQAAAQABAAEA/wAAAQH//wAAAAD//wAAAf8BAAEAAP8AAAEAAAEA/wAA/wEAAP//AP8BAAEAAAAAAAAAAP8BAAEAAP8AAQD/AAAB/wD/AAAA//4BAAH/Af8BAAH/AAAAAAAAAAAAAAAAAAABAQD/AAAAAP8A/wAB/wD/AAAAAAAAAQEA/wAAAAAAAf//AP8A/wAAAAD/AP8AAAAAAAEAAP8BAQH+AAACAgL///7//v////8A/wAA//8AAAD/AP//AAEA/wD/AAAA/wEBAQIAAgD//f0CAQIAAgAAAAID/wD+A/7///37+/r7/P8FBAcCAQP//v///vz+/v/9/v4A////AP/9/f0A/wAFBAT+/v/5+Pf//wEHCAgCAgMEAQICAAEBAAH4+PcBAgMDAwIDAgMCAgL//v8DBAUCAwMEAwUFBAb8/v39/Pv//v/9AP4BAAEDAgEAAAH7/P8AAQQFCAwKDhT++/75+/37+voE/wAGBgf9/wD//v///PsB/wX++vv3+PkLCwoJBAQEBQMGBwQGCAYJDg0SFhgOExYIDBADBgoBBAYBAgQCAgMAAAACAQIAAQEB/v////8BAAEBAAABAAEDAwMBAAH///8BAQACAgIBAQIA////AP4BAAD///8A/v8BAf8DAwEAAf75+vb8+/oEBAUEBAYBAwD9/v////8AAQEAAAAA//8AAQEC/QECA/7+/v4DAv8CBAQBAQH/AP0AAAP/AAD8/f74+fny8fPp6ejr6urw7u7v7+75+fj//v7///8BAAABAAD8/Pz+/v7+/f3+/wD+/f7///0AAAABAQH///8AAAEBAf///wD///8AAAAAAAAAAAD//wAAAAAAAP/+//8AAf8AAAACAQH+AgIB/gD/AP4A/wAAAAAAAQAAAAAB/wH/AP8BAP8AAAAAAAAAAAAAAQEA/wABAP/+AAABAAD/Af8B/wAAAAEA/wD/AP///wD/AAAA//4EAP8CAAH//wABAAEAAQAAAAAAAAAAAQD/AAABAQEAAAABAAEAAP8A/wEAAQAAAQEAAAAAAQEAAAABAAAAAAABAAD///8AAQEAAAEB//8AAAABAAAAAAABAAAA/wABAQD/AQAB/wD/AQAA/wEAAf8AAAABAAH/Af8B/wAAAP//AAEBAAAA////AQD/AAEBAP8A//8AAAD//wAAAAABAAABAP//AP//AAAAAP//AAAAAAABAQD/AAAAAAAA/wIAAv8B//8BAAEA//3/AP8AAgEBAQL//v//Af4AAQAAAAEAAP8A/v7+AP8BAQIBAAD////9AwIC////////AAD/AAD/AAEC//8BBf8BAgsE/v38+/r6+vn4AgMF/P7//v/8/f38/Pz8BAQFBQQE+/n6+vn6AQICAwIB/fz7AAEB/wD/AP8AAQH/AgMBAQEB/f38+vr5BgUGAQEB/Pn9AgMD/wX+/wAB/v8ABAMDAwID/gAAAP7/AgIEAAD+AQICAQMEAAEEBQoPDAAC+/v8/Pn7APv7AwUF/wAB/P79///+BAAB+/z8AgUGCw8GAgcGBwgHBAcEBwoJCA0MDRMXBgsPAgYKAAIEAAABAAAA/f7+AAAA/QH+AQECAAAA//7/AAD//v7++vr6AQEBAgIBAP8AAQIA////Av//AAAA/v79/Pz6/f37/f79/v7/AgIECgkNAwIC/Pz8//8AAgEBAAECAP8A/v/9////////AAAAAgH/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//8AAAAAAAEAAAAAAAAAAQECAAD/AAABAP//AAAAAQAB/wABAgIBAP//AAAC//8A//8A//8BAAAAAQD/AAABAAD//wD/AP8A/wD/AQICAgAAAAL/AAD+/gEBAQIDAf0AAQAFAAAA/wIAAvf48/z8+/7+/f3+/gEB/wD//vz9/gEBAgAAAPz8/P/+/wICAgAAAgACAgIBAv8BAgEA/gD//gH/AAIDA/7//v7+/QEBAQAA/wAAAP////r7+gT+/f0BAv///v38+wD+/v78/f/8+/v59v35+vz+//8DBfz8/gECBP4FBgQGCAcHBwoTEwwTFAcLDgQGCAMEBwIGBgL/AAIBAgEDAv8AAv8A//r7/AAA/wABAQH////+AAAAAAAAAP/+/v///wECAwYICv7+/gEBAAIBAQICAgMDAwEBAQIBAQAB/v7+AP8B/wEA/gEB/wACAf78/wAAAP8AAgD/////AP7//wD/AAABAAICAQICAwEBAQIBAQACAgAAAvz8/fr8/fLx8uzs7e3t7urp6+7t7vr7+/39/gsKCg4ODgsMCwEBAf7+/QD/Afj49/r5+gkRCPr6+vX19fz8/gH+AP8A////AP//AAEAAQAA/wAAAAEBAP///wAAAAAAAAEBAQAA//8CAAD/AAEAAf8AAAD/AAAAAAAAAAABAP//AAAAAAAAAAAAAAAA//8BAAEAAAH/AAAAAAEBAf//AP8A/wAA/wD/AQEAAP8A/wAAAP8AAQAA/wAAAAAAAAAAAAABAP//////Af8A/wQB/wEAAAAAAAD/AP8BAAD//wD/AAEBAf8BAQH//wAB////AQABAAEAAAAA/wAAAf8AAQEB//8AAAAAAAEAAAD/AAABAQEAAAH/AP8BAf8BAQEB/wH/AQABAQD+/wAAAQAAAAAAAP8AAAEAAP////7/AQAB/gEAAQD/AAABAf8A/wAA////AAABAf//AAABAAD/AAAAAAAAAQAA/wAAAP///wABAAD/AAABAAD/AQAA/wAA/wAAAAAAAAAAAAEAAAEAAP7///8AAQEAAP8AAAABAQIAAP7/AAIBAf//////AP8AAQEBAQEA//8CAQEA////Af7//gH/Av///gH/AAEAAP8BAAAAAQEA/wIBAQABAv//AQEBAQEBAAH//////wAI//wA/fv+/fsA//77/P36+fcBAQAEAwUDBAT//f3/AwMEAwUDAwICAAH/AAD9+/oBAgP+/f4BAgL9/fwBAQEAAP8BAAEBAAD+/v79//3//wD9//76/f0A/v8A//8B//77+fj++/r7+fkC/v0DBgcAAAH0+PkGAwQDCAsECQgDCAgABQb5/P4B+/oAAwQA/fsE/QMBAwP/AQD7+/0CA/8BAgICAgEA/wEAAAD/AAEDBP8A/v//AQH+/f0BAQIDBAECAAH/A/8AAP8CAQIAAAAAAP8BAQAAAf/8/Pv4+PUAAP0BAQEKCwoKCwv9/v7+/v78+vz8/Pv7+/v7/Pv9/v3//v3+/f4BAQEBAf/+AQEA/f37/Pn4+Pn19fXo6ejo5+nw8PH08vXx8vP7+/r9/f7w7+4AAAAAAQABAAABAQEFBgYGBwcEAwT9/P8NDA8LCQz5+vr8/Pz9/f7+/v3////9/f37+/v+/v7///8BAAAAAQEA/wD/AP8AAAAA/wAAAAAAAP8BAAD/Af8A/wAA/wAAAAABAQH//wAAAP8A/wAAAAEAAAAA//8AAP8AAAEAAAABAQD///8A/wAAAQAA//8BAAD/AAAB/wD/AQD/AAAA//8AAAEAAAAAAP//AP8A/wAEAQEBAAD/AAABAP8AAAEAAQAAAQD/AAABAAAAAQEAAAABAQAAAAAAAQAB/wEAAAAAAQD/AAEBAAAAAQAA/wAAAAAAAAEAAAAAAAAAAAABAP8A/gD/AP//AAABAAAAAP8AAAD/AAEA/wD/Af//AAAAAP///wAAAP//AAAB//8AAAAAAAD/AAAAAP8AAQEA//8AAAD///8BAAAAAP//AAAAAAD//wABAAD//wAA//8AAQAAAAIAAP8BAQAAAAAAAP//AQIBAgAB//8AAAAB/wD///7//wABAP//AQEBAAAAAAEAAP8AAAAAAAEB///+AAAAAP8AAAEAAP8BAQIBAf4AAQECAAABAP8AAQD/AQEBAAEBAf/+/gADAgMABP//////AAAI/f37CP7++P71//7+AAL9+fr7//8A+/r7AgMD/wMD/QL9AwP8AwQFAgICAP8AAP8AAQEB/v38/f7+AAAB/v3+AwME////AgIEAQH++/v7/AEB/fv7AQD///////7++/j4Af/+AQEA/v7+BQYG+vj4/f3+/wEDAAAA/wMEAAID/P389PPx/Pv8Bfn5BgkJCQwQAAIDCAYH/f7+/v4BAQEBBAUFAQIB/f39AQEBAQAB/v/+/v39//8AAP//AQIB/f7+/gD+AP7+AAAAAgIC///+/wD9/v37/f38+vv5+ff3/v78AAEBAgIEBgUGBAUFBQYFBgYE/v8I/v///v3+/f38/v7++/v79/j3+/v8+Pj68fHw8vHx8fHy8/P08/T0/Pz9AQEBAQEBBAMEAgL//wD///7//f79/v/////++/f39/b3AAEBAP8B7u7vAgIBAQABAAD//wAAAgICAwMDAwMCAQAF/f7+/Pz8//7+////AAAAAP///wEAAAD//wAAAQD//wAAAAD/AAAAAAAAAf8A/wAAAQD//wAA/wAAAAAAAP/+/wAB/wABAAD/AQAB//8AAAABAAH/AP//AAEA//8BAAH/////AAAAAf8A/wABAAAAAP8AAP8AAP8A//8ABAAA/wAAAP///wABAQH/AAABAP8AAAEAAP//AQAB/wH/AQABAQAAAP8AAAD/AAEAAQABAAEA/wAAAQABAAD/AAEAAP///wABAAAAAP//AAEBAAEAAf8AAP8AAAAAAAAAAAABAQAA/wEAAP8A/wD//wAA/wD//wABAQAAAAEAAP4AAAEAAAEA/wAAAQD/AAEAAP7/AAEAAAAAAQABAQAA/wD/AP///wABAAAAAAEAAP8A/wH+AP8AAAAAAAEAAAAAAAEAAf//AAAA/wECAQD/AAABAAD//wABAAAAAAEAAQH/AP8BAQEAAP8A/wMAA/8B//8BAf//AAABAQD/AgEBAv7+/QAA/wAAAP8BAgL//gAAAP8AAgEA/gECAgEEBAUAAAD//wYI/wAAAf///v///P7//gQE//z7+////wP/BP///gAA/AYGAP///wIBAQIDAwH/Av7+//z8/P//AAUFBgD///z6+f//AAQF///+/vz6+AMDBP37+//+/QICAgIAAAICAQD/Av79/Pv8/P7+/fz9/f7+/f7/BP8CAv3//gIA/gD+/QUFBf3+/P31/Pv7+fz7/QQHCf8J/wAA/wAAAAMEBPz8+wICAfz9/gQDBAEBAP79/Pz9/fz7+wQDA/3+/QICAvz7+v///gAA/wIBAf///P8A/QAA/vz7+/z9/gABAAABAPz7+vv79vQAAAEAAQMEA/38/gEBAgQFBQH/AP4BAAUEBf8BAQEBAgAA/AAAAAQEBggIDAAABQAABPb2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AAAAAAAAAP8AAAEBAQAAAAEB/wAAAP//AP///wAA/wAAAP///wAAAAD/AP8AAQAA/wAA/wD/AAAAAQABAAD/AAABAQAAAAABAAAAAgAA/wD/AAAA/wAAAf/+AAAAAQEAAP8AAAAAAAD//gAAAQEAAAABAP//AAEBAAH/AAAAAAAA////AAAAAAAAAAH/AAEBAf///v//AP7+/wEBAAAAAQEBAAACAv///wIAAP8AAP8AAAEA/wAAAQECAQEBAf/+//8BAf8A/wH///7//QECAwD+/v4A/QD/AQECAQD/AQICAwMDBP8FBgb//////v7+/f39/AD//wEAAPv8+gD//P0DBAMDBP///wEAAP7//////v39+//9/f78+wEBAwUFBQQEB/7/AAEA/wAAAPz8/AH/AP8B///9//z5+v/9/fv6+fr39/j29Pn4+Pv3+f/+/gACAvv8+wIA/wAA/v8AAAICAv4A/v///wYGBwD///37+vn39gABAQQEBAEAAP7//wH/Av39/fz9/AQDBAAB/wD+/gcHBvv7+vz7+AMDAvn6+/n5+QUHBwMCA/r6//X09wgKCBYXGvb18vj49vz6/AABAPz9+/v8+wUEBgcHCQYJB///AAYICgwLDAMEAwYFBgQFBAMCAgIDAwECAQQEBQABAgICAgIBAgABAQ0ADAD+/xsaGf39/fT19urq6tjY2M3Nzdva2fb29f79/v///wABAQAAAAAAAP8A/wAAAAAAAAAAAAAAAAD///8AAQD/AAAAAAAA/wABAQAAAAAB//7+/wEAAAAAAAACAgAA/wD+/QAAAQEA//8AAAAAAQAB/gD/AAABAAD//wAA////AAAAAAAAAAAA/wAAAQAA/wAA/wD/AAEAAAABAAH/Af8BAAD/AAEAAP8BAP///wAAAQABAAAAAAAAAP8AAAQBAP///wABAAEAAQAAAQEAAAAB/gD+Af8BAAAA/wAAAAAAAAABAAAAAQAAAAH//wEBAQAAAAEAAQAB/v/+AAABAAABAAD/AAECAAD/AAAAAAAAAAD/AAEAAP//AAAAAAAAAAEA//8AAAD///8AAAH/AP4BAAEAAAAAAAAAAP8A/wABAAD//wABAAEAAAAAAAAAAAH/AP8AAAAAAP8AAAAAAP8AAAEAAP8B/wAAAAH/AQAAAAAA////AAEA/v//AAABAAEAAf8A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AP///wABAAD/AAAAAAAAAQAA//8A/wAAAQABAAD/AAAAAAAAAAD///8BAQH/BAABAAAAAAAAAAAAAP///////wIBAf8AAAAAAQD//wEA/wABAQIAAQAA/wAAAf///wABAQD/AAEBAP8A/wAAAAAAAP8BAAD+/wECAQABAAEAAAAAAQD//wABAP///wAAAAAAAAD/AAAAAAEAAP8A/wAAAAD/AAAAAf///wEBAQD//wAAAf///wAAAAAA////AAABAQEAAf////8AAAEAAAAAAAAAAAAAAP//AAEBAP//AAABAAAA/wD/AAABAQD//wAAAAAAAAAAAP8AAAL/AAAB/////wECAQD/AQEBAQAAAP//////AAAA/wEAAQAA//8BAAH///8AAAEAAP8AAAEBAf4A/wAAAf///wIBAv7//wEBAQH///8BAAACAv///wICAP4A/wMABQH/AAAAAAAA/////gIC//8D/wQF/wAA/wD///8A/gAAAP8AAfj5+P////n6+gACAgMHAwIDAgABAAEBAgICAwL/BP//APv7/QQEBAD///7//wD+//8BAQED/gIBAwICA/v5+wH9/v///gMGBvz7+v///gD7AwL+BP8CAQD7+/8A/wYHAvz7+gABAAABAAEBAQEBAAEAAf//AAECAQUEBP39/gMFBAAA////AAIBAgICAwD/AP8A/////////vr6+wgICgUGB/z9/QICAgICAwcJCgICAQIDAgYFBwECAQABAQECBAAAAAMCAwIDAwEBAQAA/wEDBAEBAQAAAAAAAP8A/wEAAQAAAQAAAAAA/wAAAQD//wABAAIBAf///gAAAAEBAQAAAQAB//7+/gABAAH/AAMDAgkJCB0eHTU3N/j399bV1fXz9f3+/gAAAAAAAAH/AP8B/wABAAH//wABAQEAAAD/AAEAAP8A/wAAAQAA/wEAAf//AP8A/wAAAAD//gD/AAAAAAAAAAD/AAAAAf8B/wD/AAD///8AAQABAQH///8BAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAA/wABAAH/AAAAAAABAAD/AAAA/wD/AQAAAAAAAAQAAAEA/wD/AAAAAP8BAP8AAQD+/wAAAQAB/wD/AQAB/wEAAAD/AAAAAAAA//8BAAH/AP8BAAD/AAEA/wD//wABAQAAAAAAAQH/AAAB//8AAAEAAf8A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+AICBAICBwICAwEBAwABAf/+AAABAAEAAQEAAwICAv4C///9/gECAgH/AAMFAgEBAP4B//8CAQECBAIBAQEBAPj6+QL9/f8AAgcGBfz9/P79/gT//v79/AQEBP/+/vz8+wMDAgIEBQIDAgICAwEBAQIEA///AAABAAECAwICBAICBAQFBAIDAwICBAIDBAQDBAQEBAEBAgEBAQH//wMEAgP/AgD/+wAABQAA//////79/QEDAQICA//+//7//gEBAQABAQABAQAAAQEBAQAAAQEA/wAAAAEBAQD//v7+/f8A/v8A/wMCAAECAf7+//////7+/QEBAAEAAv7+/gH/Av8B//7+/wD//ggGBg4ODhQVFQkJCPb09P7+/QAAAP///wABAAABAAD/AAAAAAAAAAD/AAAAAQAA/wAAAQD/AAAB/////wD//wEAAf8BAQD//wAB/wH/AP8AAAABAAEAAP//AQAA/wEAAP//AAD/AAAAAQAAAAAAAf8BAAH/////AAABAQABAAH/AP8B/wD//wAAAAAAAf8AAAAAAAAAAAAA/wAAAgQAAQAA/wD/Af8BAAD//wABAQEBAQH//wAAAAAAAQAAAAAA//8AAQD/AAEBAAAA/wEAAAH/AAABAQAA/wABAP//AAAAAP///wAAAAAAAQEBAAAA/wAAAP8BAAD/AP//AAAAAQAA/wAAAAAAAAAB/wD/AAAAAQAAAAAB/wEAAP8AAP8A/wAAAAAAAAEAAAAAAAABAAEAAQAA////AQEB/wEAAP8AAAEBAP8AAAEAAAEAAP8AAAH///8AAAABAAEBAgAAAAAAAAAA/wD/AAEBAQABAQEA////AAAA/wD/AQACAQEAAP8A/wEAAQAA/wEAAQABAAEAAP8BAAAAAgEAAAAAAAABAQD/AP8AAQEA/wACAgD//wAAAf8A/wEBAf///wEBAgAA/gABAgICAP/+/gEBAQECAgECAwIEBQUBAQAB3dkxfQABAABJREFUAQAAAAAA////BAT//v7/AP4BAgACAgH9/P35+fr0/vMMAQEFBgcEAP8DBAMCBAIB/v/9/v4AAAD9/v8DAwIAAwIAAAD+//sFBQX+/v78+/sDBQT8/Pz/AP8AAAIICAj7+/sBAQH/AP8BAgH8Av0A/wAABQUEBAP//v8GAAgBAwMBAP8AAQECAgL//wABAwMA/wABAQIDBAQFBQYCAgECAwQFBAUCBAUDAwUEBAQDAgIBAQEBAf7+/vwA+/8BAgH7+vkCA/kBAgwA/wACA///AP8A/v39/v76+vgHBwkAAQADAwQAAAEBAQEAAAD+/v////8BAf0AAP//AP7+/QAAAP///v8CAgIBAAD+//4A///+AAAA//0AAQIBAgMA/wAA//0A/wACAgENDg0PEA8FBgcDAwP8/Pv+AAEAAAAAAAAA////AAABAAABAQH///8AAP8AAAAAAAAAAAAA/wAAAAD/AAAAAf8A/wH/AQAA/wAAAP8AAAEAAP////8AAAAA/wD/AP8AAAAAAAAAAAAAAP8AAAEAAP//AQAAAAAA//8AAQAAAAAB/wD+AAEBAP8AAAABAAD/AP8BAQEAAAEBAAAEAAAAAAD///8AAAAAAQEAAAD///8BAAAAAQAA/////wH/AP8A/wACAgEAAAACAAAA///+AQEB/v8AAP//AAAB/wAAAAD/AQEAAQAB////AAEBAAEAAP8A/wAAAP8AAAABAAD/AAAAAQAAAAAA/wAAAAAAAAD/AAAA/wAA/wD/Af8A////AAEBAP///wAAAgEBAAAAAAAAAAEBAQABAAD/AAAAAAAAAAEBAP8AAAIA//8A////AQEBAQD/AAAB/v8AAQEBAQAAAAEAAQEAAAAB////AAACAAD/AAAAAQAAAAAAAQAA/wAAAQEBAAMAAQAA//8AAP8AAAECAAD/AAH/AP8AAAD/AgEBAQAA/wEBAP8BAAH/AAAAAAAA/wABAQH///8AAgEBAAIA/wD/Af8AAQIAAQACAgIEAwQAAgEAAgECAAABAP8AAAABAQEBAAEA/////v39BwcJAQEC/v397/DuCQkLDAwOAQQEAgEBAQMCAwECAQECAwMCAP8AAgMD/f38Av7+AwQEAQD//v/+AQEBAwH//v3+AQMCAf8DAf/////9AgID/P79BAUDAAAAAgMCAwIC/f7+AP//AwQEAAD/AP8BAAEA//8AAQEAAgIDAQEBAgMDAwQEBAQEAgECAwQFBAQGBAQEAgMDAgIA//7+//7//f36/f78BAQDAwL//f37/fv4AP/+AgD+/v79AAMD/P38/v39AAH/AQEBAQICAQEB/wAAAgEBAAAAAgIBAQEA/v7+///+///9/PwCAQH8Af8AAgMEAQECAQEB//3/////AgMC/v79AP8AAAD/AQAAAQABBAIDDw4RERES8e7v+/z7//3+///+Af8AAAABAAD/AAAAAAAAAQAA/wAAAAAA////AAAAAAABAP//AQAB//8AAAD/AP8AAAAAAAABAAAA//8B////AQEAAAEAAf8B/wD/AAD/AAABAAABAAD/AQAA//8AAAABAAD/AP8AAAD/AAEBAv///wAAAAD/AAAAAQAAAAAAAP8A////ACuB1H4E/f39AQAAAQEAAQABAAD///8BAQD+/wABAAEBAAAA//7/AQEBAQH//wABAP/+AQECAAEA/wAAAP//AQAA/wAAAAAAAQEBAAAB/wAAAQEBAQAB//8AAAEAAP///wEAAAAAAQAA//4AAQEA/wAAAAAAAAAAAAAA/wAAAAAAAf///v8AAAAAAf////8AAAEA////AAABAQAAAQEBAAEAAQAB//8BAQH/AAAB/wEAAP//AAAAAQEAAQAA//8BAQAAAQEAAQABAAAAAAAB///+AQEAAQAC/wAAAAAAAAEAAQAA/v//AQABAAH/AAAAAQAA/wAAAQEAAAABAQD/AAEAAAABAAEAAP8B//8AAAEA////AQEBAQAB//8BAAH/Af8AAAEAAAAA/wD/AQABAgECAAMAAP4AAAACAQYFAfsB/f8BAQMCAQABAgICAgIC+wEB/wAA/v7+AP8B/gABAAEC9fXz/v3+9vb0AwIDAwQFBgoIAwME+vr6AAAAAgMD/v7+////AAEBAQMCAwQEAwIBAgMC//79/PwCAgT/BAQEBAUF//b2/f4C/fz7AgMDAAEA//7//wABAgMFAgQA////AAAAAAAAAAAAAQICAQAAAQEBAgIDAwMCAwQEBAIEAgMDAgICAAEBAgL/AAH+AQABAP8BAAD//wD+/Pr5/fv2+AAABwYGAAEB+f/2BgcABAD/AQIG+/78AP/+BgcHBAMEAwMCAgEAAAEAAP8A/v//AgEC/wD////+//7+AAD+//3+AAH+/Pz9///+AwIFAwQE/wABAAABBgUGAQMDAAAAAAAAAQIEAgEA/v78BgUGFRQUICAi/Pv65ubl9vX2/Pv7AAAA//8AAf////8A///+/wD/AAAB//8AAAAAAP///wEAAAAA/wAAAAAAAAAAAQAA/wABAQD/AAAA/wD/AQAAAP8AAAAAAP8AAAEAAAEBAAAAAP8AAAAAAAAAAAD/AAABAAAA/wAAAQABAAAAAAAAAAABAQAA/wAAAAEA//8AAQEAAAAABAD///8BAgEAAP8AAP//AAEA/wEBAQABAAAA////AP8AAAIAAP///wEB/v8AAgD//v//AAEBAQAAAP8AAAAAAAABAAAAAP8AAAEAAAAAAP8B/wD/AAD/AP///wAAAAABAP//AAABAP//AAAAAAEAAP8AAP//AAAAAAD//v7/AQD//wAB////Af8A/wL/AQABAAEBAQD//wEAAP//AP8AAAEBAAAAAQAA/wEAAf///wEBAf//AAD//wEBAQAAAAAAAP///wEBAQAAAAD/Af///wAAAAABAAEAAQAAAAEBAAIAAAAAAAABAQAAAf8A/wAAAP8AAAEBAAAAAf///wEBAAD/AAABAAEAAAAAAAABAQD//wABAQEAAAABAgAA/wD/AAEBAP8AAP8AAAICAgD//wAAAgAABAH//f8EAAEAAf0AAf8BAAMAAAAA//8AAAD/Af8G////AAb//wEAAf4A/gMEAvj4+fb29gYHCAwODwAAAgABAQMCA////wD/AAECAv79/f/+//r7+gMEBQUFB/v6+AMEAgEBAQMDBAQFAP39APz7+v39/QAB/wEBAAQEAv39//3+/gICAgIDBAD//wICAgAAAAAAAAICAgEAAQEDAQICAgMCAgUGBgICAgMCAgABAQEBAf/+//7//gIEAgEBAQMBA/v6+Pz59wD//gD9+wICA/wDAgIBAQQDA/3++gD//gMEBAD+AP7+////AP7//wIBAv7//gD/AAECAf/////9/P7+/f8A/wEBAf/+/gIBAf//Af/+/f37/wECBAACAv4A/wQA/wIDBAAAAf39/wAB/wMDAgoKChkaGfj5+vz9+vX19fr5+vv7+gEAAQEBAP7//wAAAAAAAAAAAQAAAAEAAP////8BAAAAAAAAAAD/AAAAAAAAAQAAAAAA//8AAAAAAAEBAQAAAP8A/wD/AP8B/wAAAAAAAAAAAAABAP//AAAAAQEBAP4A/wH/AAEBAAD/AAAAAAAAAAAAAAAAAAEA/////wEAAQAAAAAAAAQBAQEAAAABAAAAAAAB/wD/AQAA/wEAAAAAAAAAAAABAQD/AP8A/wH/AAABAQD/AP8BAQEAAP8AAAD//wABAf8AAAAAAAEAAAAAAAAAAP8A/wEAAAD/AP8BAQH///8A//8AAAAAAAAAAQAA/v//AAAAAP8AAAAA/wAAAAAAAP8AAQAA/wAAAAABAP//AAAA/wEAAP8AAAAAAP8AAAEAAAD///8BAQEAAAH//wAAAQH///8BAQAAAQH//wACAgD/AAABAAAAAP8BAAAAAQEAAAEAAAAAAP8AAAEBAAD/////AAEBAAAA/wAAAQAA/wD/Af8AAAEAAAAA/wAAAAAAAAAAAQH///8AAP8AAQAB/wEBAQH/AAEBAQH/AAAAAAABAQAA/wAAAQAAAAAAAAABAAMCAv4BAQH9/QEEAwP+//wAAAAB/QEBAAEAAP/+/wEA/wD/AAABAQECAgQAAQH+//4CAQEDAgX8/fz39/b49/YFBggGBgf9/Pz9/v0A/wH//v0A////AP/8+/z+/gAFBQYBAgX/+/v/Af4BAv4GBQYDBAP+/wMF/wf+/f39/fwEBQgEA/3/AAAAAAABAAAAAgICAgIBAgEDAQMBAgD+/v4EBAQCAgEBAQMAAP8BAQAAAP8BAAABAQECAQABAQABAAADAgIAAf/7+fr8+PcA//359/YCAwIJCgn8BAP6AAECAwQBAgIDAwMAAP8AAP/9/f0FAwP+/v4A/wD/AP79/QD/AP3+//4BAP/+/f39/fwDAQIBAQL9/f0AAAH/AP4GBwQBAQL+/v38/P8DAAEAAAEAAAABAQEDAwMEAAEPDw8fHx739/b3+Pj29/cAAAAAAQH8+vr6+vr+//8AAAAAAAAAAAD/AP8AAAAAAAAA/wAAAAAAAQAA/wAAAAAAAAAAAAABAAD/AP8AAAAAAAABAAD/AAABAQD//wAAAAAAAAAAAAABAAD/AP//AAAB/wH/Af8AAAAAAAAA//8AAAAAAAAAAAAAAAAAAAEAAAAAAAAA/wAEAP8AAAH/AP8B////AAEA//4A/gH+Af8A/wEB/v//AQEA/wECAgIAAAEAAP//AAEBAAAAAP///wEBAQIAAP8AAP8AAAH/AAAA//8BAAAAAAH/AAAAAAABAP8AAAAAAAAAAAAAAP8A////AAEAAP//AAAAAQAAAAEA//8AAP//AP8A/wAAAAD/AQECAAAAAQAAAP8AAAEA//8AAQEAAAAAAAD/AP8AAAAAAQEBAAABAAAAAP8AAAAAAAD///8BAAEAAAABAAAA/wEAAP8AAAAAAAD/AAABAQAA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AQAAAAAAAQAAAAAA/wH/AQABAAD/AAAA/wAAAAEAAP8AAAABAAAAAAAA//8AAAEBAQEAAAAAAAEAAAAAAQAA/v7/AAEAAP8AAAABAAABAQD/AgEAAP4AAf8A/wAAAAAA/wEBAQECAQD+AQABAQICA//+/gECAwH+/wECAwAB/QABAgMDBQAAAQICAwH7Av/+/gAAAAQDBP38+/v8+wD/AAEBAAEBAf/+/v79/P0BAAEAAP79/QECAgIBAgIBAQMBAQEBAQD//wAAAAIDAwEBAQIBAQIDAgMCAgIEAwMEAwQFBgACAwMCAwIDAwIDBAEDAwECAwEBAgECAwEBAgABAQECAv8A/wAAAAQFBgIDBAABAP///v39/P39/f//AAIC//4A//39/fX19QcIBwQFBPz7+/z6+QMCAP0B//38/vv59wQFBQQDAgQEBAMCAwACAf//AAABAAD//v///wEBAvz//f///wAAAP7+/f///wD/AAAAAAACAwIBA/8BAAD+//8AAAIDAgAAAgEBAf8AAAEBAgcHBh0dHRsdHe7t7f38+wAAAQEA/wABAf///gEAAP8A//8AAAAAAAAAAAAAAQEA//8AAAAAAP8AAAAAAAABAQD+//8BAAD/AAAAAP8BAAD//wEBAP//AAAAAAAA/wAAAAH/Af8A/wABAAD//wAAAAD//wAAAAAAAAD/AAAAAAD/AP8AAAT/AP4AAQMA/v/+/v0AAP////8A/wACAwIAAgAA/gAAAf8BAAD/AQAAAAAAAAH///4BAQABAAECAQMAAQABAQAAAAAAAP//AAACAAH/AAAAAP8AAAH/AAEAAAAAAAACAQH//gD/AP8AAAAAAAEAAAAAAf//AAABAAH/AP8AAP8BAAD/AP8BAQEBAQEAAQAAAAD///4CAQEAAAEBAQD/AP8A/wAAAAEAAP//AAAA//8BAQAAAP8AAf///wEBAQEAAP8BAAEAAP8AAAEBAAD/Af8BAAEBAAH//wAAAP//AQEBAQEA/wABAQAAAAD/AAAAAQACAAD/AAD/AQEBAP8AAQAAAAH/AAAAAAACAAD//wAAAQH//wAAAP8BAQL/AP8A///+//8AAP8A/wAA///+AAAAAAABAQEAAAAAAAD/AP8A/////wD/AAEBAQIAAQAB/wABAf4BAQIBAf8BAgIC/wH+Av8A/v4DAgIAAgMBA/8CAQL9AAL///////4BAQH9/AIBAQEBAwMA/v8AAQEBAQECAwIAAAIBAAECAgEBBAEBAQACAgECAQIAAAACAgEBAAIBAQAAAAECAgIBAQEDAwMCAgIDBAMDBAQDBAYAAgEEAwUCAgICAgMBAgMCAgP/AAABAQIBAgEAAQEBAgEC/wL/Av/9/gIHCQv49PD8+/oAAAD///8BAQMCAwABAgEBAgH9/Pv8+wEBAQEAAP8CAgEEBQUBAQEAAP0HBgYGCAkGBwgBAAAAAQIDAQMAAQEBAQAAAQAA/wAA//79//8A//7+/v////7+/f0CAgP/AAECAAD/AwIB/wL/Af8BAAAAAAABAQEAAAEBAAEB/wADAwUWGBcqLSza29j49/UAAP7/AP8A/wAA/wD/AAAAAAEBAAD/Af8B/wD/AAAAAAEBAP//AAAAAQAA/wAB////AQAB/wH/AP8AAP8B/wEAAAD//wAAAAEAAP8AAAEAAf8A//8BAAH/AP8AAAEA//8AAAAAAAH/AAAAAQAAAAAAAAABAAAE//4AAAH+AAH///7/AAEAAQAC//8AAP8A//7/AAEAAQEA//8AAAABAAAAAAD/AAEBAAD/AQEBAQEA/wAB//8AAAEAAQAAAAAAAAEAAP8AAAEBAQEBAP8A/wAAAQIA/wAAAAEAAAAB/wD///8AAAH/AP8AAAD//wAAAQAA/wABAAH/AQAB/v8AAv8AAAEBAP//AAEB/wAAAAD/AAH/AP8AAQEA////AQEB/wD/AAAAAAAAAAABAAABAAAA/wD/AQAAAAEAAAAB/wAAAP//AAAAAAEA/wD/AAH/AAAAAP//AAEBAAIAAAAAAAAAAAAAAQEAAP8AAAABAQAAAQECAAAA/wD/Af///wEBAP8AAQH/AAD/AQAAAQEB/wABAf///wAAAAAA////////AQABAQEA////AQAA/gD/AAAA////AAAAAQAAAAAAAQIC//4AAAD+AQEBAgIBAP8CAAMF/wD8Av4BAgMC//4CAQMDAQH/Afz/AQICAgMEBAAGAQECAgICAgMEA/37//3/AAEAAQEBAAEAAgECAgMDAQIBAwABAAD/AgICAgEB/wABAgABAQICAgIBAP//AwMDAgIDAgMCAgIDAwIDAwQDAgIDAQICAgMEAgIDAQICAQECAAIBAgACAgMCAQECAAABAAECAQEA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AAAAAP8AAQAA/wAE/fz8AQEA/v////8AAgIB/v79AgH/AQICAgEAAAIBAAABAAAAAAAB/wD///7/AAEAAQAB////AQEAAQEDAAEBAAEBAQABAAAAAQAB/wAAAAD//wAAAAEB////AQAAAAEBAQAA/wAA//8AAQAA/wEBAAAAAQEA//8AAf8AAAAAAAD//wABAQAA////AQABAAAAAAAAAAEBAAAAAQAAAP8A/wAAAAEAAP8CAQL/AP8AAAAA////AgEBAAACAAH/AQABAAAAAAEBAQAAAAEBAAD/AQEC/wAAAQAA////Af8BAAEAAP8AAAAAAAD/AAAAAAACAP///wEAAAAAAQAAAQEA/wAAAAAAAQABAQAA////AAAAAAEAAf8AAAEA//////8AAf8A/wAAAAD//v//AP//AAEA//8AAP//AAEBAP//////AP8A/wD+/f3+/fz8/P38AP7//wEB//79////////AQEDBAQC/Pz8AAABAAEBAgME/wIC/v39Af39AgP//wEAAwIEAP8AAAH///7+AQEBAAEAAgAAAAABAAEBAAAAAf8AAQICAgEBAgIB/wAAAgECAwMD/wEAAQABAgMDAwMCAQIDAQABAgIBAgECAQICAAABAgECAAACAQIBAAEC/wABAQECAAECAP8AAQECAQEC/wD/AQD+AAACAQMF/wED+/v7AwIBAQED/f39CgMDCQwL/wAAAQEAAgEB+vr4AQEB+fr5AQEC/wD//fz8AQEC/wH//v77A/0E/v4AAgMB/gIBAQEBAwIDAQMDAgIC/v79AwME/P39/Pr5+/r4AQAB/v4GBQUHAQUBAQMB///+/wECAf7+AAEC/wAB/wD//v7+AQIDAgEBDQ0MExQVCgwNBAUE+fj5AAEAAf8BAAD//wAA/wAAAQAA/wD/AAEAAAAAAf8A/wAAAAAAAQAA/wAAAAAAAP8AAAAAAAAB/wAAAP8AAAAAAAAAAAAAAP8AAAAAAQABAAAAAP//AAD//wEAAAD/AAAAAP8AAAEAAP8AAAD/BP///gABAQEBAf///gD/AAEBAf7//gIAAQAAAAH/AAACAAEAAAD+/wAB/wD/AQAA/wABAQECAgEBAf8A/wIAAgEAAf8AAAAAAQABAAD/AAAAAAABAAABAQEA////AP8AAAD//wAA//8AAAEAAAEAAf8A///+AAAAAAABAQAAAAAAAAIBAQAAAQAB/gD/AAABAQEAAP///gAAAAAAAAAAAAAAAQD//wAA/wD/AQAA/wAAAQAB////AAICAP8AAf8AAAEAAQECAgD//gAAAQEAAQABAAIAAf///wEBAP8AAAEAAAACAQAAAAABAf///wAA/wAA/wD/AQAA//8BAQAAAQEA//8AAAAAAP8A/wABAAD/AAD/AP8BAP8AAP//AAEAAQACAAAAAP//AAH+AAAAAf///wD//wAA/wD+//8AAAD///8A///+/v79/P7+/QEAAQECAf4A/wEBAv8B/wEBAf7+/v39/QABAAABAQICBAEBA/39/f39/gEDAv//AwIBAQEAAQIBAgAAAf///gD/AP8A/gAA/wEAAQEA/wAAAAEAAQEBAQICAgEBAAABAQECAQIDBAIBAgABAAICAwICAgIBAwECAQEBAQEBAQEBAgEBAQAAAQABAAABAgEAAQEBAgAAAQEBAQD/AAAAAQAAAAH/Af8AAgEAAgcGCwUFCfb87/7+/QECAAABAv39/fv6+/7//QICAPn5+Pr7+vr5+gUEBAACAfX39QQEBQEDBQEBAAEAAfr/+QQEBAECBQIABAICAgABAf/+/v7//QAAAQIBAAD//////v/+/AD+//8BAf0BBAEC/QQDA////wH+AAACAQEBAf/+AP///wD/AP7+/v//AAYGBSMjI+Pi4uvp5/T09P/+AAAA/wABAP//AAEAAP8AAAD/AQAA/wAAAP8BAAD/AAH/AAABAAD/AAAAAAAB/wD/AAAAAAD//wAAAAAAAAAA/wD/AAAAAAAAAP8AAAEAAP8AAAEAAP//AAAAAAAAAAABAAAAAAAAAP8BAQT9/fwA/wD+/f8BAQEAAgMDAgICAgICAQH//wD///8B//8A/wD+AAABAAH///4AAAEAAgEA////AQECAQIAAQIAAAABAAAAAP8AAAEAAf8A/wAAAAAA/////wAAAf8A/wAAAQABAAEB/wD/AAAA/wABAAH/AP8BAgEAAAAAAAEAAP8BAQH///8BAAEAAQAAAAAAAAABAQEAAP///wD//wAAAAAAAAAAAP8B/wAAAQAAAP8BAAAAAP/+//8BAQIBAQEBAQEA//8AAAEAAAEAAQACAAH/AAABAQH/AAAB/wAAAAAAAAAAAQEAAP8CAQH/AAAAAQIAAP8AAAEAAAAAAP8BAgEA/wEA//4AAQEA/wAAAQD/AP8A/wAAAf8BAgABAAEAAAEA//7//wAAAQAAAP////////////8BAAD/AAAA//8AAP////7///8CAgIAAAD+/v4A/gH/AAAAAAH///7//wD//wD+/gAAAAAAAQH//wAAAAECAgP+/gACAAAAAgMAAAEBAQEAAAABAAMA/v7/AAIAAP4AAAABAAEBAQABAQIBAQECAgEAAAECAQEAAQIBAQEBAgICAgMBAAEBAQEBAQICAgMBAAEBAgEBAQEBAgIBAQEAAAAAAAEAAAEAAQAA/wIA/wEBAQEAAAAAAAD/AAH/AP8BAQIDBAUKDQ/9+fb07+r++voCAwT9CPz4+PgGBwT9/f7+//4AAQH//wD+/gYAAAD+/PsB/gABBP8DAwMBAQL///4DAQUA//////7//gD6/PsAAAAEBAQAAP/9/f4BAAECAQH//v/+/v0B/fsBAgT+/gUA/wAAAP8AAf//AAAA/wAAAP8BAQH+Af7////+/v8A//8FBgUTEhESERL18vL39/f+/v8AAAABAP8AAAABAAH/Af8AAAAAAAAA/wAAAAAAAQEAAAAAAP8AAAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA/wAAAAABAAAA//8AAAD/AAABAAD/AAEAAAAAAP8AAAH/Af4B/wEE/v79AQAB////AP8A/gEAAf8AAv8A/wADAgAAAAD//v7+AAABAgEB/v7+AAAAAQEAAf///wECAQABAAEBAAD//wABAAEAAgABAAEAAAAB/wAAAQAA////AAAAAP8BAP//AAD//v8AAQEBAP//AAAAAAAAAAEAAQD/AAACAAEAAP8BAAD/AAAAAAAAAAEAAP8AAAAAAAAAAP8BAAEAAQD/AP8AAAEC///+AAEAAAEBAQAB/wD/AAEAAQAAAAAAAAAA/wD/AAABAQAAAQEBAQEA/wAAAAAAAAAAAQABAAH//wAA/wEAAQAAAQAAAAEBAP//AQAA/wAAAAAAAAAAAP8B/wAAAAD/AAAAAAABAQEA/wD/AQAA/wAAAQABAAABAAD/AAD///8A/wD/AP7+/wAAAP8AAAEB//7+/wEBAf8A/wAB///+//8BAQAC/gD+//7///8AAAEBAQAC////AQEAAAH+/f7+/v39/f7///8A/f7+AAAA/wABAgIDAAAB//8AAQEBAQAA/wAA//7+AQEDAQH///8CAQAAAgICAAEAAgICAAEBAQAAAQEBAgECAQEBAQICAQEAAQECAwIDAAEBAQEBAQACAQIBAAAAAAEBAQEB/wABAQEAAQEDAQEA//8BAAEAAQECAAAAAAAAAAABAAD/AQAC/wH///8B//8B+/z7+/n3BQUGAQEC+vr6BQEC/fwCBQUD+vj3BQUGAgAA/v39BAQE+/7/Av/+Avz8AgEB/wMA/v7+9vj3CgoL/fz8/QEBAAH/AQIC/v/+/v39////AgMEAgIEAAEB/f7+A//////+AP/+/v38AQIEAAABAAD+AAIB/v///////v7+//7//v8B+fn67Ovq5eXl+Pn4AAEB////AP///wEAAAEAAP8AAAD/AAAAAAAAAAD/AAD//wAAAf//AAABAAAAAAAAAAEAAP8A////AAAAAAAAAAAA//8BAQD//wAAAAAAAAAA/wEBAAD/AP8A/wEAAf8A/wD/AAAAAAD/Af8B/wEABP///gD9Af7+/QAAAQAAAAD+//4CAwQBAwD//f//AQICAgIDA/3+/f8AAAIBAgEAAQAAAAEBAAEAAAAAAQEBAQEBAP//AP8BAAAAAAEAAQEBAP/+/gAA/wAAAP//AP///wD/AAEBAAD//wAAAAAAAQAA/wD/AP8AAAEB/wD/AQAAAP//AAABAAD/AAAAAAAAAAABAAD/AQAB/wEAAAAAAf8C/wD//wEBAAD/Af//AAABAAABAQAA//8AAAEBAAABAQEAAAABAAABAQABAP//AAAAAAEAAAAAAQAB/wD/AQABAAEAAAABAAAAAQAA/wEBAQAA/wD/AAAAAAABAAEAAP8AAAEAAAAAAAD//wEBAQAAAQABAAD/AAABAAAAAP7+/wAAAAAAAAEAAf4BAgD//gACAQD+/wAAAAD/AP7/AP/+/v3+AP//AAAAAf//Af7+/v///wEAAf8A/wAA//8AAP79/gD/AAEBAv/+/QEBAQEBAQEAAQADA/7//gD/AQEA/wAA//4A/wH/AAECAgAAAAAAAQICAQICAgAAAAEBAQMBAf8AAQEBAAEBAgICAQEBAAIDAwAA/wIBAwECAgEAAQABAAABAgECAQABAAAAAQAAAgEBAQAAAAEAAP//AAAAAAEAAf//AAEBAQAAAAIBAf4AAAD//wL/Af8CBAgJDQkKD/gI8AIA/vv8/QEB+AIDAvsB/wIDBgQDBPz7+wIBAwQFAv/9/wQDBP///wMEAwICAfv7/AAA/wUGB////f7+/gECAgYGBwD///7+/gABAQEBAgD/AQECAQQFBgEAAQIDBAEBAf39/AECBAMBAwAA///+/QH///4AAf/+//7////+//7+/vn5+O7t7evr6vPz8wIBAQMDA/z//gEAAP///wAAAP8A/wAAAQH///8A/wAAAAH/AAABAf8A/wD/AAAA/wD/AP//AAEBAP8AAAD/AAAA/wABAP//AAEBAP8AAQD//wEAAP//AAD/AAABAP8A/wAAAQD//wAAAAAAAAH/AAQA/v/9//0AAAEBAQH9/Pz+AQIAAf0AAAACAgIDBAYBAgP+//8AAQECAAIBAQAAAAD/////AAEAAAIB//8AAAD/AQIAAf8AAAABAAEAAP8AAAH/AAABAAD//QAAAf8A//8AAQEA//8AAQEAAAABAP//AAABAQABAAEBAQH//wAAAf8BAAEAAAAAAQAAAAEAAf8AAP//AQEAAAEBAP//AAABAAEAAAD/AAABAgH//v//AAACAAAAAQEAAQABAAAAAf8AAQEAAAAAAP//AAAAAQEA/////wABAQABAAAAAQAAAAAAAAAA/wAAAP8AAQAAAAAAAAEAAf8AAAEBAQD//wABAAD///8BAQEBAAD/AAAAAAD//wAAAP8A/wD/AAEBAQH//wACAgH+/v4CAAD+AAEA/v8A/wAAAAH//v//AAD+/v/+//8AAP/9/v39/P4AAf8BAAH/AAAA/wD/AP/8/P39/f8A/wD+/gABAAIAAAACAQH/AQAC/wP9+/0AAP///v4BAQD9/v0BAAACAgQBAgADAwMBAAEA////AAAB/wD+Af8BAQAAAAABAgABAgEAAAEAAQIBAP8AAAH//wIAAgABAQEAAAD//wEBAQEAAAD/AQEBAAECAgEAAAACAQH/AAD//wEBAQEA/wAAAAD+/wABAQH/AQAAAAAB/wEEBQYOExgGCQfq5d76+PL8/fv6/PoICQr9/fwCAwL39vULCgADAwT5+vcAAAAGBwcBAQACAQIIBwMAAgEBAAH8+/z/Af8D/wD8/PsCAQL+//8BAgMBAQMAAAEAAP8A/wAAAQH+/v4AAfwDAgIA//3///0A/wIAAP/+//3+/wD/AAD+/v///v78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AP//AAAAAAD/AP8AAQEBAQD//gEAAP//AAEAAP8AAgD/AAAAAAAAAAD/AAAAAP8BAAEAAAABAQEAAAAAAAAAAAEA/wAAAAEBAAAAAQAB/wD+AAABAP8A/wEBAf8AAAEAAP///wABAP8BAAD/AAEAAAAAAAD//wAAAAAAAQD//wABAP8AAQEB/wH/AP7+/wAAAP///wAAAAAAAAAAAAD/AP8AAAAAAAD/AAAB/wD+AAAAAAACAQP8//7//wABAAL8/Pz8/P38/PwAAP8A/wAA////AAAAAAAAAAD//wD8/P3+/v0CAwL+//3+//0AAQL9/Pz/AP4CAgECAgQDAwQBAgMCAQEAAQEBAQEBAAEAAP8AAAABAgEAAAABAQIBAAEBAgEBAQH//wAAAQEAAAACAAIBAgEA/wD/AQEAAQEA//8AAAEBAgIAAP///wABAQEAAAD//v8AAAABAP8BAwP+/f3/AAAA/v8AAQAA/wAA////AAAA//7+/fwGBgQBAP7x7+7y7+4CAwIBAgL+/f729PT//vz8+vnz8fIMDhD29fX/AP/08/f/AP4HCAkGCAn/AQEA/wD//f8AAAL///8EBAT9/wACAwIEAwUAAAD6+vr+/wACAQMEBwcF/f3+/v79/fwAAgIAAgX/AP7/AQAAAAAA/wD+AAD+///+/v4EAgIHBwf8+/r4+Pf8/Pz//v3/////AP8AAQAA/wAAAQAB/wAAAP//AAAAAAAAAAAAAAAAAP////8AAAEAAAAA//8AAQAAAAABAAEAAAAAAP8AAf8B/wH/AP//AP8B/wH/AP4AAAEAAAAAAAEAAP//AAAAAAAAAP//AAEE/v7+AP//AgMCCgUKAgICAQAAAAAA/wAB/wD////+////AAEAAQEBAAEAAAD///8AAAEBAAAAAAAAAQICAAEB/wEBAAAAAAAAAgAAAAEB/v7+/wAAAAEAAP4AAAEA/wAAAQD/AAACAAD/AAD/AAAA/wAAAv8B/wD/AQEBAQAAAAEB/wAAAQAB////AAAAAP8AAAAAAAD/AP8BAQEA/wAAAAAA/wAAAf8AAAAAAAEAAQAAAAABAAD/AQH///8AAf8A/wEA/wAAAf8A/wAAAQD/AAAAAP8B/gAAAQD//wACAQEA/wAAAQD/AAABAQAAAQAAAAAAAf7//wAAAAEBAQAA/wAA////AQAB//8AAQAA////AQAA/wAAAP8AAQEA//8AAAAAAAAAAP8A////AAAAAQAAAAH/AAD/AAAA/P7+/f39/v8A/fz5/fz9/v3+/v/+/v7+AP///v/+AwMD/v7/+/v7//7//f39AgMC//8BAP8AAQACAgAA/P8ABQUG///+AgMEAgIDAQEBAQEBAP8AAAD/AAEA/wAAAQAB////AAABAQABAAEB//4A/wIAAAD///7+AQEB/wH9AgIDAQD/AQECAAAAAAAB/wD//wD+AgEDAP/+AAAA//4AAQEC//7+/f/+AwEBAQECAP/+AAEB/wAAAP/+/f7+///+/Pz8/Pz6+Pbz+ff1+ff3BQMD/QAA+ff3CgsD//z88/LwCgkJ9fLzAAACAAAACAkK/f38BwgI/wD/+/v8BQcHAAABAAECAgIC/P//+vn5AAECBQQH+vz7AgEB/wAA//7+/wAAAgEDBgcH/wECAAAA/v3+/QP9/wD8/wABAgMDAQEBAP7///7+//7++/v8/f78+vr6/fv7AAAAAP8A////AAEAAP8AAAD///8AAP//AAAA/wAAAQAB/wAAAAAAAf8B/wEAAP8AAQABAAEAAAD/AAAAAQEA//8AAAAB////AQAAAQAAAP8AAAD/AQAB/wD/AQAA/wAAAAAAAAAA/wAAAAABAQAABAABAQIDAv////7+/v38/gEB/wEAAwMFBAICAgICAv//AAEBAQABAAEBAv8A/gD/AAEAAP4A/wMAAAABAAAAAf8A/wAAAQAA//7//wIAAgEAAP///wD//wAB//8AAAD/AAABAAEB//8AAAEAAQAAAAEBAf8AAAAAAf8AAAEBAAD/AAAB/////wAAAQIBAf7//gEBAf8AAAAAAAAAAAAAAAEA/wEAAAABAP8AAAAAAP//AAAB/wEAAf///wAAAf8BAAD/AAEAAAAAAAAA////AAABAQABAAH//wABAQH/AP8A/wD/AAAAAAEB/wD/AP///wEBAf//AAAA/wAAAQABAP8A/wABAf///wH/AAAAAAD/AP8AAQEA//8AAAD//wABAAD/AAD//wEAAAABAQD///8AAf//AP////7/AAD///7+//z7+/v7/f7//gD//wABAf39/f39/QEBAP79/v3+/fz9/f38/AICAwMBAf7+/fz8/P7//v38/AEBAv7+AAIBAgD/AAEBAf///v3+AgIBAQD//wAAAAAAAQABAAAAAQEBAQABAAABAAABAQABAP7//wIB/wAAAf///v/+AQECAgD/AAABAf///gD/AP0A/QACAAMCAv7//wEBAQEBAQACA//+/v7+/wICAQEBAQAAAQD//v4AAf/////+/v38+vz6+fj29QEA/wEAAPr7+wYGCP/9/uro5//+/f/9//n5+v39/gUHBvX0Af///wEBAPX08woMDgsNDgICAgEDA/8A/f///wIEBQABAgYFA/39/AH+AwEDAwABAAEBAgAA/v4BAgEDBQEA//39/QD+AP0A+QMD//8AAgL+/gMDBf//AP//AP39/e3s7Ojm5v79/P7//v///wAAAAAAAAD/AAAA/wABAAD//wAAAQAAAAAA//8B////AAEAAP8B/wEAAf8A//8AAP8A/wAAAAAAAP//AAD/AAABAAEAAP8A/wAAAAEAAP8AAAD/AAAAAP//AAABAQAA/wEAAAAAAAAA/wAAAAT9/fz7+/8AAAABAAACAgICAgMBAQH////////+/v4CAQAAAQAA/wD//v4AAAAAAQAAAAAA/gAABAEA/wAAAf8AAAEAAP8A/gAAAQH///8BAQABAQD+/wAAAAABAP//AQAAAAEA//////8AAAABAQIAAAABAAD/Af8A/wD/AAEB//8AAQEAAQAB/wD/AAAA/wEBAAAAAQEA//8AAAABAQH+AP8BAAAAAAAAAAAA/wAAAAD/////AP8BAAAAAAABAAABAAH///8AAQEBAAAAAAAA/wABAQD+AAAB/v8AAf8AAAAA/wAAAQH//wAA//8A/wD///8BAQAA/wD/AP7/AAH/AP8B//8AAAD/AAEAAP8AAQAA////AAD///8AAP8AAAEA/wD//wAAAf8AAAD/AAD///8AAAH/AAD+/v79///9/v7+/wD////+/v4AAAACAAACAgIAAQD//v7+///+/v77+/sBAAAFBQT////9/f38/Pv+/v3+/f0BAgECAgP+//8AAP8A+/8DBAQCAf79AQIEAwIAAAAAAQH//wABAQD///////8BAQECAgL+/f8AAQD///8AAP8CAgL/AQAAAP8AAAH/AP7///8CAgEA///9/P0BBAABAgIAAAAA/wABAQEDAgL+/v7+/f0AAQAAAAEAAP8AAAABAAD9/v4AAAD//v8A///8+fr+/f7///739/YDBQX49vb19PQGBgX8+/sHCQn39vYAAAMCAQMCBQQJCQv6+foAAfMECPsJCQr/AAICAgQBAAP8/fz4//kFBAYBAP7+AQMDAgIA//4AAAIA//0AAAH+///7/PwCAwIC/v/+AP3/AP4B/v0E/gEBAgIA/wD7+vv39vby8vH//v4BAAH///8AAAAAAAAAAP//AAEA//8AAAEAAf8A/wABAAD/AAABAAAA/wABAAD/AP8BAAD/AAABAAD/AAAA/wAAAAEAAf8AAAAA/wEBAf//AAAAAAEAAP//AQAA/wAAAQABAP8AAAD/AAAAAAAAAAEAAAAE/v7/AgICAQAAAgMDAgEB/f7/AwEBAQAB//4AAQABAQIB//8AAAH/AAAAAgECAAEAAAH/AQABAAAA////AQABAAD//wABAgEBAAD/AQEAAP4AAP//AAAAAQAB/wD/AP8A/wD/AAAAAAEAAAABAAAA/wD/////AAABAAAAAAD/AAABAP7/AAEA//8BAgH//wAAAP8AAAD/AAAAAAAA////AQABAAAAAAD/AAAA////AQABAQEA/wAAAQABAQAA//8A/wD/AAAA/wD/AgEB/v8AAQAA////AP//AAAB//8A////AP8AAQD/AP8AAQAAAAAAAAAAAP8AAP8BAAD/AP//AQEB//8AAAD/AAAAAAAAAAEA////AAAAAAH/AP8B//8AAAD/AAD//wAAAP//AAAAAQEBAQEAAQEBAgEC/f/+//8A//8A/wD//v//BQQFAAD/AQEA//z+/wEB//7+/v//AwIDAQIC/////f39/f39/Pz8/fz8AQEBAgIB/v39AgICAwECAgMC/////gAAAgD//v8AAwIDAAH//wD//v/+AP//AAEBAgECAP8AAQMAAAEB/wABAAAA/v//AQD//QACAwD/AQACAAH//v//AwECAAEA/v3+Af8AAgID/wEA/v39AAAAAQIB//7///7+AAAAAAAB///+/wD////+/Pr7/v39BQQEBQUEAQD+/fr8+vz6BQQDAgEA////9fX2/f3+EwYG//8AAwUEBgcHBQYG+vr5/v7/Bf8GBQQE/v3+/gD/AAAC/Pz7AQECAgACAQECAgMDBAQE//8A/wABAQEAAAMBAf/+//37/wAB/wD/AAAB//7//wAAAAIBAAD/////AP8A/P39/f79+vj4/f39///+/wAAAAD/AAAAAAABAQAAAAAA/wD/AQAB/wEAAAAAAf8A/wD//wH/AAAAAP8A/wAA/wAAAQAAAAAAAQEB////AQAA/wAAAAEA/wAAAQAA/wH/AP8AAP//AAAAAQAB////AQEAAf8A/wAAAAAAAAAABAICAQICAAAAAQAAAAEBAQIB/vz7+f7/AAgIAv8GAP///v7/AgL+/wEDBP//AAEAAQAAAAABAP7//QIBAv8A/wEAAQEBAAAAAAAAAAD/AP8AAP//AAEA//7//wABAQAA/v//AAEBAQEAAQH//v8BAgD/////AAD//wABAAD/Af8B/wEAAQD//wABAP7/AgAAAf8A/wH/AQABAP///wAAAAAA/wEBAf//AP8AAAD/AP8A/wAAAAH/AQAB//8BAQAAAAH/AP8AAAH///4A/wAAAf8AAAAAAAABAP8A//8A/wH/AP8A////AQAAAP//AAD//wABAQEAAAAA/wD/AP8A/wEBAf7//wEAAQAA/wABAQD//wD/AAAAAP8AAAEA/wD//wAAAQAAAQD/////AAD/AAAA/wAAAAEAAgEB/QAAAAH//wD/AAABAgYGAgECAv38/P3+/wECAv/+/v7//wEDAgIBAQIBAPn6+QD+/vr7+vv7+gUEAwEBAf/+/wEBAv8A//39/f///wECAgIBAf8BAAAAAAD/AAAAAAIDAgEBAv///wEBAAD///7/AP4A/QECAgMCA/8AAAD///8AAQEA/gAAAAD//gEBAQD+AAAC/gIBAv3//wL+/gAAAP8AAAAAAAAAAP78/gIBAQICA////wAA/wD/AAD/AQMCAwECAv39/Pf29vj29vj3+P37+v/9/PTy8gEEBAEBAQMDBAEA/fX19Pr8/AYICQMDA/j49/z+/gwMDQIBAvj2+gcKAgQEBvz7+/z4+f//AAgJCgIDBAEBAfr5+v////7//wEAAf3+/f8A//39/P8BAf8AAf7+/v8A/wABAgEAAf39/QEC////Af7+/vj4+AoJCvPw8P8AAAAA/wAAAAAAAAAA////AAAAAAEAAf8AAAEAAP8AAP8B/wD//wAAAAEAAP8AAAAA/wEAAAAAAQEAAAD//wAAAAAAAAAAAAAAAAEAAAAAAAH/AQAA/wABAQEAAAAAAQAAAAAAAP8A/wAAAAAAAAAA/wQCAgIAAAABAAD+/fz6+Pz9/fz+//0EAwb/AP7+/vwA/wMA//7/AAEA////AgEBAP8AAAEAAAAA//8AAgEBAAD//wABAQAAAP8A/wD////+AP8AAP//AAAAAAAA/////wAAAAAA/wD+AP4C/wEBAP8AAP////8AAP8A/wEAAQEAAAEAAP8BAQEA/wD///3//wAAAAEBAQEB/wD/AAAAAAAAAAD//v8BAQD///8AAAAAAAAA/wD/AP8B/wABAQEAAQH//wAAAP8AAQAAAAEAAP8AAAH///8BAAEAAAAAAAD//wAAAAAAAAABAAD///////8BAAD/AAAAAAAAAAAAAAD+//4A/wD/AQAAAAAAAAEA/wAAAP//AAAAAAAAAAEAAAH/////AP8AAAAAAAEAAf///gD/AAAAAgD+/f/9/v3/AAD+//39/v3/AAICAP79/v7+//4CAwH+/f4BAgH+/f7/AP/4+fr//v39/Pz+/fwDAgIAAQH//wAA///+Af3+/f4EBAMBAQEB////AAACAQD//wD//wAEAwMAAQAAAAACBAL///8AAQAAAAEAAQEAAAD9/v4AAAABAQEAAQECAQH/Af4CAQEA/wABAAD//f/+Af//AAD+AgEA/gAAAQAA/wEAAP/+///9/v4CAwMBAQD//wACAQH/AQAAAQMFBQcBAgT6+/34+fr5+vgBAQD//v0GBgcBAwMDCgvz9PUCBAP5+voLDg/9/Pr8+gT+AP8EBAb39vX+/v4LDhEEAwYBAQQDAwQCAv4DBAUGBgb//v39AP7+/f37/P3+/f0CAwP/AAACAQIAAAACAwMEBAYA/wD8/wACAQEA/wD+AP4B/gAAAAL6/Pvw8PD49/cAAP8AAAABAAD/AAAAAAAAAAEBAQAAAP///wAB/wD/AQAAAP8B/wD/AAEBAP8A/wD/AAABAAEAAAAAAAD/AP8BAQABAAD//wAAAAD/Af8AAAAB/wAAAQAA/wEBAAAAAAAAAAAAAAD//wAAAAD/AAABAAAAAAAE/f79/vz9/v//AQAAAQEBAwQDAv8CAwMCAQAAAP8AAP8AAP///gAAAP7+AwEC/wIBAf8AAAH/AgACAP7//wEAAQIAAP8AAAABAAD//wEAAf8A/gD///4AAAH/AAAB/wD/AP8A/wH/AP8B/gD/Af//AP///gD/AQECAAAAAP//AP/9AAEDAAAAAP8A/v/+AQAAAAEBAP8B/gABAAD/AAAAAQAB////AAAAAAAA/wD/AAAAAQEAAAABAAEB////Af//AAAAAAABAP///wD/AQEB////AQD///8B/wD/AAABAAAAAQAA/wD+AP8BAAD/AQAAAP//AAABAAD//wAAAP//AAEB/wD/AP//AAABAAD+/wAAAQAA//8AAAD/AAD//wEBAP/+/wAAAQABAAH/////AAAAAQEBAP7+//8AAQAA///+////////+vr6/v/+AgIBAgIC/Pv8/////v7+AP8A/v39/v7+//7//Pz7/v39BQUF/v39AP///gAAAQEAAgECAAABAAAAAAAAAAEBAAEAAAEAAAD//v/+Af0A/wEAAQH/AQEB/v3+AAAAAQEB/wEAAwICAAEC////Af7//gIBAgEB/gECAQD/AQABAAD/AP8AAQABAwED/wD/Af8BAAEA/wAAAP///gD///39AwMDAP///wABAQEBAQEBAgMECQkLCwwN+g0P/fr2+PPxCAcGBAUG+fr7////AQEA+vv7+vv7+/n6+QX6AgICAgQFAwT/AwICCAcH/Pr58/HwCQsOAQEEAwMCAP7++/z6AAD/AAAA/////Pv6AAAAAQIA//7//gMEAwMDAAAB/v7/AQIDAgABAAAA/v//AwEA//8AAAD/9/f47u7u9vf3//8AAAAAAAEAAQAA/wABAP//AQAA//8BAQD/AAEAAQAA//8AAAAAAQAA//8AAAEAAgAB/wD/AP8AAAAAAQABAAAAAAAAAAH/Af8AAAABAP//AAAAAP8AAAEAAP//AAABAAAAAAABAAH/AAABAf//AQAA/wABBP39/QABAAAAAP7+/wH/AAQDAgAB/wIAAf79/QD//v7//gD/AQICAgAAAP7+/gIAAQAAAgH///8BAAEA/wEAAQEAAf8AAP7//gD/AAEAAAAA////AP8A/wD//wEAAQH/AP7+/wECAQD/AP8B/wEBAP7//gAA//8AAAEAAQAAAP8AAQAA/wD/////AP8A/wABAQD+//8BAAD//gABAAAAAP8AAP/+AAAA/wAAAP//AAIBAP8BAQAA/v8AAQEBAQABAQAAAf8A/gAA/wAAAf//AAEAAP8AAQEB/wEAAP///wAAAP8A/wEAAQD///8A/wAAAAABAQD//////wABAAAAAAD+/wAA//8AAAAA//4AAAEBAf8AAAAAAAAAAP7//wEAAP8AAQAA/wAAAP///wD///7///7+/v7+/v///v7//v8A/wECAQD9/wEBAAEAAAEBAPz7/P8A/////wAAAP7//fz8+wAA//z8+/z8/QMBAf///vz9/AAAAAIAAAACAgEDAgEAAf///wEAAAH/AP////////8A/f7//wIBAQECAQABAQD//wABAP/+//7//gEBAv3//v/+/AMEBAAAAQH+AAAEAgEAAAAAAf8AAAEAAAAAAP/+/v0BAAMCBAECAAEBAAEAAf4DAwP/Af/+/////gD///7+/wAA/vv8/P/9/QABAgQDBfv7/AEBBAQGBwH+/gEA/wcHBAH8/wUEBPr6+AQDA/Pz8wYICQoBBP//AAoKDP7+//r7/Pn59QkLDPz79/7+//v7+gcIBwgKC/7/AAICA/39/f///wIEAwAAAAABAQAA/wICAf8AAP///wIAAQEBAf0A/wEAAf39/QMDAv7///X09PT08wD//gEAAAACAv/+/gAAAQD//gAAAP8AAAABAP8AAAH/AAAAAP8BAQEA/wAAAQAAAAD/AAAB/wEAAP8AAAAAAAAAAAD//wABAAEAAP8AAAAAAAABAQD//wABAAAAAP8AAAAA/wEAAAEAAAAA/wAAAf8BAf///wABAAQA//8CAgL+//8BAAEBAQH//v8AAQD9//4C/v79/v4B/P0AAAABAQIBAwD+//4B/wIBAgAAAAEBAAD//wAAAf8A//8AAf////8AAP8A/wIA////AP////4A/wAAAP7/AP8AAP8A/////wAA/wD+AQD///4AAAAA///+//8BAQAAAAEAAQH/AP7/AAAA/wD/AP8BAQH///0BAAEAAAEAAP8BAAH/////AP8BAAEAAAD+/wAA//////8BAQECAQH/AQEBAQEAAAD/AP8CAAD/AAD/AAAAAP8A/wAAAAH///8BAf/+AAAC/wD/AP////8BAQAA/wEAAAAAAAAA/wAA///+AAABAAD/AP//AAD/AAACAAD//gEAAP8AAQAA/wD/AAAAAQAAAAD+/wAAAAAA/wD/AP///v///wAAAAABAQEAAQH+AAAAAQH/AP/+/f37+/78+vsDBAMCAQL9/fz49/cBAQH+///8+/wDAgMFBQP8/PwA/wACAQEBAwIDAwMCAQEBAQEBAAEAAQIBAQIBAQH//////wAA/v//AgECAAH//v////8AAAD+AP8CAQEBAAH//v7//wD+/f0DAgP+AAAA/f7/AQECAQEBAQEAAAAA//8AAQH////8/fwCAAICAQIAAgIAAAAAAQH+AP4C/wAA/////v7/AP/9/Pz29PL9+ff6+fcHCAj9+wcCAP3+/PoFBQT/AQAHAQT9/P4BAgADAwbz9fX39/cFBwj+///9/e4MDQz+/gD+/v8CAQD6+ff8/fwICAkGBgf9/v0B/wD8/fwAAAH//wAA/gD+/v39//4DAgP6/v4CAgUCBAEBAgQAAQEBAAEBAQIAAP4AAQD9/P709PX5+PkBAQAAAQABAP//AQEBAAABAQIAAAD///////8BAAH/AP8AAAABAAAAAAH/AP8AAQABAAD/AAAAAAEBAAAAAf///wAAAQEAAAAAAAABAP8AAAAAAAD/AAAAAQEA//8BAAD/AAD/AAAAAAEAAAAAAAABAAAAAAAAAAAE/////v3+AAEAAgMCAgAB/v79//4AAQIBAQEBAP8A/////f7+Af7+AgECAQECAP8AAQAAAAAA/////wEAAf8A/wD+////////AP///wD/AP///v7+AAAAAAAAAAAA/v//AAAA/////v7+AgIBAAAB//4AAAEAAAH/////AAABAAD//wD/////AgABAAIBAP8A////AAAA/wD/AP//////AAABAAAAAAAA/wD+AAABAAAAAAAAAAABAP///wEBAQD///7/AAEAAAAB/gD+AP8AAAAAAAAA/wEBAQAB//////8AAAAA/gH/AQABAAAA/v4AAQD//wEAAP//AAAAAAAAAAAA/gD/AAAAAP//AAAA/gABAAD/AAAAAf8A/gD/AQAAAP8A/wAAAAD/AAACAAD/AP8AAAEAAQEAAQEBAAEB/v7///79/f38/Pz8//7+/fr8AAAA/vz++/36+vv7AP//AQIA/v7+AAEBBwgH+/r7/v7/AwIDAQIAAgIDAgEBAAABAQABAQIDAQAC/wAB/v7/AgEAAQICAAAAAP///v7/AAH/AP8A/////wD+/QEBAf/+AAD/AQIC//8A/v7+AAABAQABAAH//gECAQH/AQAAAAD/AQEC//7/AAAA/v7+AQMCA/8DAgIC////AQD//v8A//79/vz8+/z6+/r4+vfx7enl+fPw//37BAMDAwgIAP4FAgL//P38/wAADA4KAvkG/PwAEggK9vn4AgMECwoM/P388PDxAgICERIR/v7+/v3+AgQD/f3++/v7AAECAQEBAwMDAQMC//3+/v79AAEC////+fn5AQEBBQYBBgQFAP//AAD///8A/gD9AgID//4A9/b36+vs9/f2/v7+AQIB/v3/AQAAAAD/AQECAQEB/f79AAAAAP8AAAAAAQEAAAAA//8AAP8AAQEB/wD/AAAAAAD//wEAAP8AAAAAAAAAAAAAAAAA/wAAAQEAAP8AAAABAQD//wAA/wEBAf///wAAAAD/AAAAAAABAP//AAEA//8ABAQEAwD/Af7+/fz8/AIBAQAAAAICAgICAv3+/v3+/QIAAwIAAgD///4A/wL/////AP8A/wAAAAD/AAEAAf7//gIBAQAAAAD//////v///wD/AP7//gAAAAH/Af4BAP///wAA/wAAAAD/AP/+AP8BAAD//wAAAAD+AAAAAP7//gEAAgAB/wD///4B/wD9AQEBAQD//wABAP8A/wH/AP8AAAAA////AAEBAQEBAQAA//8AAAH/AAABAAAAAQD/AP///wABAQD/AAD//gAA/wD/AQABAQAAAAEAAP8A/////////wEBAAEAAf8AAP8A/wAAAP//////AAD/AP8A/wEBAAAAAQABAP///wD//wABAAEAAAD/AP8AAP7+/wAB//8AAQAAAAIBAQABAgAAAP/+//8BAQEAAAAAAP8AAP///wAA//3+/v/+/gIBAv3///7////+/f/+//z9/AIAAQACAgABAPz8+gcGBwECAv///gMDAgMCAgEBAQEBAQEBAQMCAwEBAgEBAgEBAgAAAAAAAQABAAAAAQEBAQAAAP7//wD//wAAAf/+//8AAAAA/wEAAAEBAAH/AP//AP4B/wEB//39/v///wEBAgEAAAIDAgIBAQAB/wEAAAABAQEBAAD+/fz+/QICAgD/APz8+v7//gMBAfv5+Pj38/Du6/n08Pbx7Pjz8P79/QMCAwD//gUGBAQEAQD//wQECAMICAcJBP3+AQQFBfj6/Pz+/v///gMCAgMIBwQEBQcHCPj4+QICAQMABfz7/Pn6+gUFBQUHCAECAP76/P7+AAQFBQAA/wEAAAQEAwMDAwMDBP/+//4B/gEBAP7/AAEBAwEAAf8AAfr8/AQEBAcHBwAAAAD//wEBAQABAAD+AP8AAAIBAQIBAv7//gABAAAAAQAA/wAAAAAA/wEBAQAAAAAAAAAAAQAAAAEAAP8A/wAAAAABAAD/AAAAAAEBAQAA//8AAAAAAP//AAAAAQAA//8AAAEAAP8BAAD/AAAA/gABAQAAAQAA/wT8/P3//////v7//wD8/fwBAQH9/v8DAgIFBgcCAwQCAwMBAQMAAf8C/gD/A/8A/wD+//8B/wAAAQD///0AAQH+AP8AAAD//////v//AP///////v4AAAD+//8BAAEA/wAAAf//AQD/AAECAAAA/v8AAf8BAAEAAQD//wD//wAAAf4B/wEAAP//AAABAAEAAP8AAQAA/wAAAP//AAEA//4AAAEBAQEAAP/+/v8BAQH/AP///wABAAAAAf///gABAQABAAIBAgEAAAD//wEAAQAAAP8AAAD//wAAAAD///8AAP//AAH//wAB//8AAQD/AP8AAAEAAP8AAf8A///+/v8BAQEBAAEA/////wAA////Af8A/gD/AAAAAAAA/wAAAP4BAQH+AAAB//////8AAAH/AP4AAAEAAQABAQAEAgH+AwIGBAEEAgb7/Pz8/Pv/AP7+/v8A/wADBAUBAQEBAQH5+PgHBggGBgX9/PwGBQcBAgEBAQD/AQACAAEAAQH/Af8BAQEAAAAAAP4BAQIAAAD+/v4BAAAAAAEBAAAAAQEAAAABAP8AAQAA/gAAAP8AAgIAAQAAAAEAAQAAAP8A/wD9/f4AAAAA//4BAgH+/v4CAwIBAAABAgH+/f8CAgEBAQH///79/v0B//7+/fz5+ff7+Pb8+vf9+/j17+rx7ev7+Pb9/Pr+/f3+/Pz//v4GBwYCAgAJCQoFBwn8/f308vH5+v0NDxEKDA35+fr8/Pr+/fwEBQYBAAX19fQA//8GBwYB/wABAQAAAP7+/fr29foFBQcEBAYFBQb+/v8BAgECAQMDBAQEBAUBAQP9/gD//v7/AP//AAEAAgH+//79/P36+vr9/f35+fn+/v7+/wAA//8AAAABAgECAAH/AAABAgEB/wH/AP8A//8AAAAAAP8BAAD/AAAAAAAAAAAAAAAAAAAAAAABAAH/Af8A/wAAAAABAAAAAP8AAAD/AQAA//8AAAAAAP8BAP//AAH/AP8A/wAA/wAAAQEAAAD/AP8AAQAEAgIC//7++///+/r6+vr6AQAAAQICAgID/wABAgQFBAUG////AQAAAAEAAf8BAAIA//3+/wMBAf8BAAEBAf//AAAAAAAB/v79/v3+AgEB///+/v7+AgEB//7+AAAC/wD/AAAAAP8AAAECAAAAAAEB//7//wEAAQD//wAA////AQEC/wABAAAAAP8BAAH//v3/AQEAAAAA/wD/AAD//v7/AQEAAf8AAAAA/wAAAAAAAAD//wAAAQABAAAAAQEBAAAA////AP4AAAABAQEA///+//8BAAAAAAD/AAEBAAABAAABAQAA/////wAAAgAB//8A//79AAEAAAAA//4AAAAA/wD/AAAAAAAAAAD+AAAA//7/AAABAAAA//8AAQEB//8AAP//AAD//gH/AQECAQEAAP8AAQD/AQD/AwEBAQQDAQD/BAII/P79/v38AgEAAQEABAUEAwQFAQAB/v7+AP8AAQgBBQUGAAD/AgEDAgIBAQEB///+/v//AQAAAAD/AP//AAH/AQEB/v7/AAD8AAEC///+//8BAwQBAgEDAQIBAAAA//7+/wAAAgIAAAAB//7//gH//wD/AQEBAQEBAQEA/v//AP/+AQAA//0A/wD/Af0A///+//7+///+AQECAQAA/v7+//78/f38//38+vj3+vnz+vf09/Xx+vb0/Pn0/Pv6+vr6AP79+Pj3AQAA+/z5BwcHAgIDAQP3/P39+/v6/v7+9/bzBQUDAwID+vr6BQYFCQkI/Pz9AgED/P3+8/TzAgD0AQAAAgMCBwkHAwQD/wEE/wL+/v7+BAQEAwMFAwQEBAUGAAAB/Pz+AAEB/v39//8AAQMEAf////7/+/38+vv77+/u9PLz/f38AAAAAAAAAP//AP8AAAIBAP//AAAAAAAAAP8AAQEBAP8A/wAA/wD/AAAAAAEAAf8A/wAAAAAAAAAA/wD/AQAAAAAA/wD/AAABAAAA/wAAAf8AAAEA//8AAP8A/wABAAAAAAAAAAEAAAEA//8AAP//AQAA/wAABPv6+v39/f39/f39/QEBAQIBAQECAwMCAgD//wD+/gD//gAA/wAAAP///v8BAQH+AP4BAAH+AAABAAD+/wACAf/////+AP7//v79/f8AAf8A/wD//v0AAAD//gACAf39/QECAgAAAQIC/v4AAQEAAQAAAP///wABAP/+//8BAAD///8A/gAAAAEAAP7/AAEAAP//////AAEBAP8B/wD///4A/wIBAgAAAQAAAP///wEBAAEAAAD//wAAAQABAAAA/wAAAf///wEBAP7+AAAA/wAA/wAAAwAA/wAA/wAA/wEAAgAAAAEAAAAAAP7///8AAAABAAD/AP7//wAA/wAAAQEAAAAAAP///v//AP///wEBAAAAAAD/AAAAAP////8A/wECAv8AAAEAAQEBAQAA/wAAAAAAAAEAAgAB/gMBAQEFBAIC/gP/AwMDAQcHBfn6/AAAAv7/AP38/v79//v8+wcECQMEAwAAAAIAAv7//gH///3//gH//QEAAP79/P8A/gEBAQAAAAEBAP8AAQABAAIBA/8A//7/AP///f/8/wAB/wAAAAEAAQD//v7//gEBAAD/AAABAgECAAEAAAEA///9/f8A/gD//f/+/v7//gD//v7+/v8A/wD//wAAAAEAAP/+/v7+/f/9/f79+/v69/f18fj28vv39P36+QIA/gEA/gIA/vn7+vz8+//+/f7/BQIDAgL8Bv73+AEBAgABAgUFAwEB//X08wMEBf//AP/9A+7s6/T29QgICgQFBgcGBv0BAQEBAAYCB///AgYGCwYGBgMEBQQEBAUHBwQFBgICA/8AAf3+AAEDAwIAAf3//f8A/wEBAAADAv7+AP79/vz8+/3+/gIDAgEBAv/+/gABAAAAAf//AAD+/v8BAAD/AAAAAAAAAQAA/v8BAAD/AAEBAP//AAD/AAABAQH//wAAAP8AAAAAAAD/AAAAAQEAAP//AAD/AQAB//8A/wD+AAAAAAAAAAAA/wAAAQAAAAD/AAABAAAAAAAAAP8AAQAA/wT+/v4A//8AAAABAQIDAgABAQEBAQH/AP8EBQQFBgUCAgMAAP/////////+//8BAQEAAAAA//8BAAD+AP8B/gEAAP///wD9/f0A/v39/wABAQH///7/AAABAQEBAP////8A//8A///+AAECAgH///8BAAEAAQD//v8AAAAA/wD+AP8AAP8AAAH///4AAAEAAQAAAAD//wAA/wD/AQD/AAD//v//Av8AAP8BAAEAAQH//wAAAAD/AP8DAP//AAIAAAACAQEAAQAAAAAAAP8AAAAAAAEAAP4AAAEBAAH+AQAA//8BAAEAAQH//wD/AP8A///////+//8CAAH/AAAAAAAAAAD///8AAAEAAP8BAQD///8AAAAAAAEAAAAAAQABAAEAAAABAAEBAQD/////AAAA//8AAAEBAAAAAQD+//8BAAACAwIC//8DAwcFBAYJCP7//wD8/v77+v38/P0F/AMBAQIBAgP///////8A/gEAAAAC/f3//f7+/v3/AQAA/wH///8BAP//AP8AAAAA/v/+AP/+/v8AAP7///8CAQEBAQH/AP8A//8BAAH/AAAA//8BAQAA//0A/gD+//8A/v4AAP///v3///z+/v4A//4A//7+//4A//7//////v7///3//v/9/Pr9+vr+/Pn7+vj59vP7+vj//fsB//4B//8A//3+/vz///0BAP7+AP8BAAACAgMA///9/f0DAwIBAgH8/Pz49fUDAwMODxAEBAX9/fvw8fD39/f6+fkCAwQCAgMHBwYKCgsEBQX9/f76+vr+/f4FBvwAAQoCBQb//PwAAf4AAQIBAAIAAQIA//4A/wECAgIBAgMBAAL/AQD8/f3z9PXx8PL///8BAQD/Af///wEBAQAAAQD///8A/wD///8AAAH///8BAQAA/wD/AP8A/wAAAAAAAAD///8AAAAAAAABAAAAAQEA//8AAP8AAAAAAP//AP8A/wAAAAAAAQAA/wD/AP8AAAEAAP8AAAD/AQAA/wABAAD/AQAA//8AAAAEAAEBAAEBAQEBAAH+/v4AAgD////+AgMD/f39+fn5AQID/wAAAQIEAQAEAv8AAAIBAQD//wAA/wABAAAA//////7/AP///v39//39AQECAgIA/wAAAAAA/v//AP//AAEA/v7+AQICAgABAAAB/////wD/AgAB/v8A/////wAAAgIBAQAAAAEAAAAAAAD///8BAP/+/wAB/wEAAP4AAAD/AQEB//4AAAH+/wAB//8BAgABAQIAAQAB/wEBAQAAAQEB/wD/AP8AAAEAAAAAAP8A/gD/AP8AAgEB/wH/AAAAAAEA/wD/AP////8AAAAA/////wAAAgEBAAAAAAABAP///v8AAQAAAAAAAAAAAAAAAAAAAAAAAQAA/wAA//7/AAEAAAAAAAAA//8AAAD/AAD/AQEBAP//AAABAQECAgD+/wD/AQAB/wD/AAABAgH/AQMBAAABA/8CBAMC/v4E/f3//v///v3//v7+/P3+AQAA/v8AAQL/Af8AAgAA//8B/QD9/vz8AQD+/v3+AAAA/wD/AQAAAAH/AP8AAAD//wEB/wEBAP//AQAA/wD/AQABAQAA/wD+AQH//gAAAP//////AAH+//4AAP//AP//////AP////38///9//7//fz6//78/fv8+/r3/fz8/fv6/fv5/vz6AgD+/QD//wH//gD+AP/+///+AQH/AgIBAQEDAAIC/wAA/v//Av//+fn4/v/9/Pv79fb4BAQFBAUGCAkJ/f39/v38BAMB/f38AQH/AgIA/f39+/v6A/kD/v///wD9BwYJBAYF//8A+/v8Af3/AgIEAAEBAgIEAAH+AQABAAEBAgEDAAIC/gAA+/z99vf48PHw9/fz+/v6////AAABAQABAAD/Af8A/v8AAAAAAAAA/wAAAAD///8BAP8AAAAAAAAA/wD/AP8AAAAAAQAA/wAA//8AAAAAAAD/AP8BAAD/AP8AAQAB/wD/AQAB/wD+AAABAQAB/wAAAAAAAP8AAQAA/wAAAAD/AP8AAAAA/wD/BP///gAA/wMCAgMDA/4D///+/v7///////39/gL+/vz9/QED/gD9/QAC/f8D/wP+AP8BAAH/AP8DAAD/Af///gD///7+/v/+/v///gICAf//////AAABAAABAQEAAAEBAf7+/AIAAgABAP7+/gEAAf8A/v4AAf//AAAA/wEAAQEAAf///wAA/wEBAf///v///wD/AAAA/wEAAAAAAAEBAQAAAf8BAAAAAv///wEB///////+AQMCAQEAAQAAAP///wAAAAAAAAIBAf8BAQABAAH9//4AAP4A/wH/AQEAAP8A////AAH//wEBAf8AAP8A/wEBAf///wD//wAAAP//AP8A/wAAAAEBAgAA/v7+AAEAAAAA//8AAP4A/wH/AP//AP8B/wEAAAEBAQECAgAAAQD//wAAAAABAf8A//7/AAD/AAAA/wEAAQD/AQEBAQAAAgABAP8AAAIBAf4C/wQDAP/+/vwD/v/+AAX+Af3+/v39/vv7AAEAAfwAAf37/QIBAQADAf79//8A/gQDBAABAQEA///+/v8A/wABAAAAAP///QH//wAAAAEBAAEAAQAAAAEB/wAA/gD+AAAA/QAAAAD9/v/+/v///wAB/wD//v7+/f///f/+/P38/Pz7+v38+/37+/79+//9/f79/QABAAEBAQABAAEBAQECAgABAQABAQEBAQICAgMEBP7//wMDBAECAgEDAwICAQAAA/r3+vn5+wEBA/39/vj4+f/+//8BAP///gAA/wICAAMDAwcIBwQEBwcHCAkKCQcJCgMDAwABAv7///3+/f79/QH+/wICAAIEBP78/AAAAAECAwQDBP8AAAEAAQD/AP39/fj6+vb29vj49v38+v///wD/AAAA/wD/AP7//wAA////AAAB/wD//wD/AP8B/gAAAQD///8A/wAAAAD/AP8AAP8A/wD/AAABAQD/AAAAAQAA/wD/AAD//wAAAAAAAP8A/v//AAEAAP8A/gAAAf8AAAEAAAAA/wD/AQAAAAAAAAAAAAEAAAT8/PwA//8AAQEBAQICAQECAwIA/wAAAAAAAQEAAP/9/fsD/QQCA/7+/v0BAgIA/wAAAQD/AP8A//////8A/v///////v8A/wD//wD+/v4AAAEAAP8BAAL/AP///wD///8AAAD///7+/gAA/wAAAgH///4AAAEBAQL+/v8AAAH/AAAAAAEA////////AAAAAAAAAQAAAAH/AP8AAP8AAAIAAP//AAAA/wEAAP///gAAAQEBAAD/////AP8A//8AAAABAAIAAQD//wEAAP4AAAAAAgEC/wAA/wABAf//AAAAAAAAAP7+/v8BAgEAAAABAQH/AP//AP8BAQEAAAABAP4A/wABAAEAAAAAAAECAf//AAD///8AAAABAP//AAEA//0AAAIBAgIBAQH///7+//8BAAECAQIAAP8AAAABAQEAAAABAAD//wABAQD/AAEAAAAAAAECAAD+AgAD/wH//wD/AQACAgD+/gH+//0FAAT8/f0FBQD9/QT9/v/+/f78/Pz//v3/Af8B/wD8/Pz//f0A/wD/Af0AAAAAAP8AAP8A/wIA//8BAf////8AAAABAQAA///+/wD/AP3///7//v////7///0AAP8A/f7/AP/+//0A/v3//v0AAP4AAAABAAABAQABAAD+/v4CAgH+/f8CAwEBAAL8AgIBAQD+/gMBAwMEBQT/AP8BAgIAAAEFBQYCAwQCAQH/AP4AAQIEBgb7/f37+foEBAX+///6/PsFBQUODg35+fkBAQEDAwMDBAQHCQcJCAkGBggDAwT+AP4B///+//7+//4D/v7/AgH9/fz9/v4BAAEBAgMB/v///wADAQIC/f79/v/49/nx8PDp6Obr6ef7+fcA/wD///8AAQEA/wD///4A/wD/AP8A/wAAAAAA/wAA////AAAA//7/AAAAAAAAAAAAAAAA//8AAAD//v8BAAH/AP8A/wAAAAAAAAAAAAD//////wAAAP//Af8A/wEAAP8AAAD+AAABAAD/AP////8AAAAAAAABAAAEAP8A/////v3+/f36AgIDBQUEAQIDAAAAAAD/+/z8AwMF/v///v79AAAE//7+/wEB//0AAgIBAAAA//7/////AAD//v7+////AAD//f7+AQACAgIBAAD///8B/wD//v7+AAAAAAAAAAD/AAEAAAAA//8AAQEBAQABAQECAP8A//7/AAAAAQEAAAD/AP//AAAA/wAAAAAAAAD//wD/Af79AAIBAgEB/v79/wEAAQECAQEAAQAAAAAAAP8AAAECAgAAAAABAAEAAAD/AAAB////AQEA/wAA/wAA//8AAAAAAQEAAQACAAL+AAAB////AAD/AAAAAgEB//8AAQAA//8BAAAA/wAAAgD/AAEB/wAAAP8AAAAAAAD/////AAD/AAECAAAAAAAA/wAAAP8AAQEBAP8A/f79AgEBAAEA//7/AAAAAQEB/wD/AQEBAf8BAAAA/wAAAAAAAgAB/wAAAQH//wEC//8AAQD/Av8C/wH+AgEB/v8D/gT+/f7//////f0D/P39/fv9/f38AgID/wIDAf//AP8CAP8AAAEA///9//8AAP/+/v79///+AAD+/v7+//7+AP/+/wD+AP//AAD/AAD/AP8A/v79AQAA/wD9AP3+///+AAEA//7///79AP79AAD+AAD/AQEA////AQEBAAACAAEDAgL+/P3+AQECAwUG/v8AA/7//v7+AAEC/wAB/v7+/wD9AQICAQEAAgMABwgHAQIDAgIB//8AAgECAgIDAgMDBwgI/f39AgMCAP/++fj3/v38+fv6AAECAgMDBQUG/f7+/wACAwQAAQIEAAIB//8BAgIDAwL/AgIEAAL+Af3+/wH++/v99fb25uPj49/f+PT1/f4AAf8A/wAAAP//AQAA////AP8A/wAAAP//AAEAAAAA//7/AQEA////AAAAAP8A/wAA/wAAAf8AAAAAAAAA/wD/AAAAAP///wAAAAAAAAD/AP8AAAAAAAAAAP8AAAD/AAAA/wAAAP///wAAAAAAAAAAAAAAAAAA/wAAASl71oQE///+/v3+AAH/AgIBAgIB/v3+AP7/AQEBAgMEAv8B/v39/v7+//7//v7/AQD9/QAAAAEAAAACAgEBAAAA/v//AP/+AAH//////v////78AAEBAQEF/wEBAP////4AAQEB//4A////AAAAAAD///8BAQEC//8B/v8A/wAAAAABAQAAAP/+//8A/wD/AAEBAP///v8AAAD+///+AgEB/wEDAf///v8AAAEBAQAAAQAAAAAB//8AAQEAAP8AAAD//wEBAAEAAQAAAAEBAP8AAP///wEBAQH/AAEAAP8AAAH/AAABAQEAAAAC////AAAAAQAA/v//AP8AAAEBAP//AAAAAQAA/wD//v8A//7+AP8A/wH/AP8AAAAA/////wABAgH/AQECAAAAAAD/AAAAAQAB/wD/AgICAQABAP/+//8AAQIBAQECAgH/////AAAAAAAAAQEAAQABAAAAAQEA/v//AgAB/wED/wH+AQAB/gADAAL//v/////+AwD///8A///+//8A//7//P38/f39/fz9/v39/f38AP///v7+AP7/AP/+/wD/AgEA/wL///8BAP8AAAAAAAICAQAA///+AP4AAP8A//8AAAAA///+/v39//79///+/v78/v38/v79AAD+AAAAAQABAAEAAQEA/wEBAf8B/wAC/wEEAAH+AAMFAwECAQED//8AAf7+AgECAAIB//8BAgEC/wAA/f38//8BAgICBgcFAQAB/f3+BAUFBAUF/wABAwUFAQABAQICAQECAAEA/Pz9/wH6BQYHBQQFBAQGAQEB/f3+AAH9AP//Af4DAQID//////8A/wD//////v//APz9+Pr76ero3tza7uvq/vz8AgABAAH/AP8A/wAA////////////AAAA//8AAf8AAAD//wAA////////AQAAAAAA//8AAAAA//8AAAAAAAAAAAAAAAEAAAAAAAAA////AAAAAAAA//8AAQH///8BAAAAAQEAAP//AAAAAAABAAD/AAAAAAAAAAAAAAEABP//AP8A/v//AP/+//7+/wD//wMEBQMBAgAC/gAAAgECAf///vz8/AEBAf8EBQP/AAIDAv/+/v4CAgAAAP///gD///7+/f79/v////39/QECAv0B/gIBAQAAAP39/AABAAEBAf7+/wAA/gEAAAECBAEBAgD/AQABAf/+//8A/QAAAQICAQEAAQAAAAH/Af4A//7//QMCAv7+/v8BAgEA/wAAAgAAAAIBAgABAP/+/gEBAQECAf//AP4A/wEAAQAAAAEAAAAAAP8AAAAA//4A/wH+/v7//wICAQAAAAEAAQAAAQEAAAABAAABAAH/Af/+/wEAAAAA/wAA//8AAAAB////AP///wAAAP8A/wEAAAD/AAEBAAAAAAAAAgD//wABAAABAAABAP/+//8AAAH///8A/wD/Av8B/wD//wABAP8A//8A/wAA/wAAAAABAAAAAAH/AAABAAEBAf7+/gAAAAEBAQEAAP8BAgAAAAL/AAABAQEAAP//AQH/AAAA//8AAgD///8AAAT/BP/+//////7+/v39+/r6+vv7+v38//4A/wD+AgEB/wD/AgH+//8CAv4BAAD+/f8AAAH/AP//////AP8A/v8A/////gAB/wABAAD//wAAAQEBAgQEBP79//////8DAAIBA/37/gECAv7/AAADAQIBAQABAgH+/f4A/gP9/v8AAP7+/gABAgD/Af///gD/Afz9/P7+AQACAgMCAwMAAQICBf39/AABAwAAAf//AQICBAEGBAIBAQACAQIBAgMEBAMEBAMEBgACA/4AAAD+AQH9/wAC/gIBAwEBAQEBAgAAAgABAAEBAQAAAf7///v6/PPy8+Ti4uzq6fz6+P3+/QD/AQAB/wAAAAEA//7/////AP///wAAAAD+//8AAP8AAAAAAAAAAAAAAP7//wEBAQAA/wD/AAAAAQAAAP8AAAAAAAH/AP///wABAAEAAP4AAAEA/wAAAP//AAAA/wAAAP//AAAAAAAAAAAA/wABAAD/AAAAAAAAAAD/AAQDAwL8/f/+/f7///8A/wEDBAT+/f3+AP0GAwIBAAD+/f4DA/7+APv8/QEBAgMBAAEAAQEAAv8A/f4CAgL//v////79/v3///4AAP//AP8B///+//4A/gEAAAD+/v8BAgECAAEBAQH+//8BAAACAf4AAAL//////wD//////wABAf7+/QEAAQABAQL/Af/+/v4B/wAA//8A/wD//v8AAwAB/wABAQD/Af8A/wEAAgEBAAEBAAD/AQAAAAAAAQEAAQD/AAAAAAD///8A/wAAAAAAAAABAQH///8AAAAAAAABAQD+/wD///8AAQD/AP8BAQECAQIAAP/+/v4AAQAAAQIA//8A/v8A/wAB/wD///8BAQEBAAEAAP8AAgEB/wEAAf8AAAH+/v//AP8BAAEAAAD//wEAAf8B/wD///8A/wABAgH+//0AAAEBAAAAAQEBAAEAAQAAAAAA//8BAQEA/wAAAAEAAAABAAD/AAACAgAA/wD/////AQEBAgD//wEAAAD///////8AAQD/Af8AAAD//wIEBAIEBQX9/Qf8+/v8/Pz+/f3+/Pv9/Pz/APz//wEA/gD+AQAA//wAAQICAQAAAwABAQMB/gH/AQH//wH/Af4AAgIA/PsAAgH//v0AAP8A//8AAP///wD+AwMA/QAAAv8A/gIAAQADAwIBAgIDAP//Av7+AAAAAP///wH+/P3+/v4AAAEDAAEBAQQBAQL/AAAAAQEAAAACBAUEBAUCAwMBAAL+/wADAgICAwMBAQEBAQMCAwQAAgL/AAL+AAICAQMBAgMAAgIAAQIBAQIBAQIAAAAAAP8AAAD//wABAAH9/f719vbc2tjY1dPz8u8EBQUA/wD5+vr/AAD//v39/v4AAAAA/wAAAP8A/wD//wD/AQAA//8AAAAAAAABAAAAAAD///8AAQAAAAD/AP8B/wAAAAAAAAD+AAAAAAAA////AAAA/wD/AAAAAAEAAP8AAAEBAAD/AQABAP///wAAAAAA/wAAAAAAAAAAAAAAAAAE/wD/BQMF+v76AgID//7///3+AAIAAAAA///+/QD+//38APsAAwQFAwL+/v/+AP0AAAAB//4AAAT9AQAB//7+/v/9//7//v/+Af8AAQEBAAEAAQAAAP8AAAEA//8AAv8A/gD/AQAA///+/wABAv8A/v7/AQAA/v7+////AAAB/f7+BAMD/v4A/wD8AgIBAQAAAAIBAAAAAwMC/v7/AP8A/wL///8AAf4BAgEA/////gH+AgACAQECAAAAAAAAAP8AAAD//wEBAAD/AAAAAQECAQAB//79/wEAAgAB//8AAAD//wAA/wEAAgEBAP8AAAAAAP//AAEAAQIB//4AAP//AAEAAAEAAP7/AAAA////AQEBAAD/////AP8AAAEA//4AAQH/AAD+//7/AAEB/gAAAgEB//7/AAAB/f7+AwMC//7+AAEAAAD/AQECAQEAAAD/AP8AAAD//wEB////AAEB/wD//wD/AQABAQEA/wAAAQAAAQIB////AQEBAQEB/wD/Af8AAP8B/wEAAP///wD/AP4A/wACAwMC/wQD/QUF/v7+/vz8/fz9/Pz7/fz7/Pv6/Pz8Af/9//4DAAD///7+Av/+AAD+/v3+/v/8///9//79/v39AgIC/v39/v8AAAL/AAP+/wD//wEABQEB/AEBAP0B/QD9AgAB///+AP8AAQECAQMCBgED///+/v7//QH8Af3+AP//AwME/wAC/v/+/v3/AAEA/P3+AwIEAQMFAAECAAIBAgECAwIDAAIBAQICAQECAAMFAAIBAAEDAAEDAAIDAAED/wECAgECAAEA/wAA//7/AAH/AAH//gAAAfz++Pn75+bl3dza6ujn9/b1AAD/BgYGBgcH+fj4/v3/AAAA/wAAAP//AAD///8AAAEBAP7+AAEBAAAAAP8A/gAAAQD/AAEBAP7//wAAAAAB/wAAAAD/AAAAAAAAAAABAP8AAAAAAAAAAAABAAAAAAAAAQAA/wEAAP8A/wABAAD/AAAAAAAAAAAAAAAAAAAAAAAABAD/Af3//QQEBP38/f8AAAAA/wD/AQEBAP38/gEB/v0B/wIBAgEC//7//wH9/f8B/gECAQEAAQH+AgMC////AP7+/v8A/wD/AP////8AAAAAAP3+/QQEBP///wEBAf8BAAD/AP/+////AAICAQAAAP/+/gACAgAAAQAAAAEBAAD+Afz9/AMDBAD/AP79//8A/gQDA////wABAQEBAQIBAP8AAAIBAf4A/v8AAgEAAgAAAP/+//8B/QICBAAAAf8A/wEAAAD///7//wICAgEBAP7+/gABAQAA//8AAAAA/v//AQABAQD/AP7//gEBAQAA//7//wEAAQD/AAEBAAAAAf///gEAAQABAP///wICAgAA////AP8A/wIBAQAAAf8B/////v7+/wIBAf7//wAAAf///v7/AAIA/wEBAP79/gECAQIAAQABAAABAAAAAAD/AP///////wICAAEAAf8AAAABAAH/AQEBAAAAAQIAAAABAAAAAQIBAP4AAAEAAAEAAAABAf8BAAD//wABAQEAAAADAgEA////////AAMCA/3//gAEBAD+///+/vv9/P38/P3+/f37/P7//QD///z8+/z7+v/+/AAB/QH+Afz9Af4A/wEBAP4AAf8B/wACAgD/AgACAgH/AgD//wABAAIBAv4B/gEBAQABAQABAQMCAgAAAP39/gAB/v//AgAB/gIBAwIEAwEBAP7/AP7//wH/AgEBAP///wQB/wEBAwECAgECAwAAAAMEBQIEBAD/AQACAQEBAAEBAgEBAv4BAf//AAL+/wEC/gL+//7+/gEAAQEBAQECAgEBAQABAgABAvz9/u/u79zb2+jl4/39+wABAP7+/vn5+QUFBggICPj39/z9/AD///8AAAD/AAAAAAD//wABAAD/AAABAP8A/wABAP//AAD//wAAAAAAAAAA/wAAAAD/AQAA/wABAQAA/wAAAAAAAAAAAQAA/wAAAQABAf8AAAH///8AAQAAAAAAAQAAAAAA/wAAAQAA/wABAAD/AAT///0BAQH8+/v//wAAAAEDAwL/AAABAQICAgH8/PwEBAP/AP/8/PsBAgL/AP8DAwT+/gMBAQEBAP3+AwP/AP/9/f0BAAD//wD//v8BAQD/AAAAAP/+//8BAP8BAAAA/gEA////AgABAQH+//0B/wIBAQAA//////8BAgEA/v4BAwD+/QD8+/wDBAMCAgD//wH9/P3/AQEDAQABAgH+/////f7+AQECAgH///3/AQECAAIAAQEAAAH//v8BA/8AAAEAAQEAAP8CAAEAAAAA/wACAQH//wAAAAH/AP8BAAEAAAEA//8AAAAAAAH///8BAAAAAAD///8BAQH/AAABAAABAAD+/v7//v4AAAABAQIAAAAAAAAA/wD+//4AAQABAAD+//8CAQAAAQEAAP8BAAH/AAEBAP8AAAD//v8BAQABAAEAAP8BAAIAAAD+/v4AAAAAAAABAQEA/wEAAQEBAQD/AAEAAP8A/wABAQAAAQAA/wEBAAAAAAEDAQEBAAD+AP8A/wABAP4AAgIA/wAAAP//AAABAAEAAQH///4AAAACAAL///8AAv//AAAD/wX+/v/+/v7+/v7/AP79/P35+vgBAwT9/PoB/f3+/PwEAfsEAwX/AP4A/vz8/Pr9+wD///4B/wMAAf7+AP4BAgIBAAMA/v4BAv8CAwP///4A/wD9//0C/wH+/gABAf4BAQIAAgP///7+/f4AAQIBAP8AAP8BAv4A/wEDAAL/AAD+//8EAAABAgIAAQH///8CAgEBAQL/AQD///8CAQEAAAEAAP/9//4B/f7/Av/+/v8B//0AAf8DAAQBAwEBAQMAAQH5+fru7+3s7Or4+fgEBAMBAAX6+wD//v/8/PwCAgIFBgb++f79/f0B////AAAA/wD/AP8AAAABAf///wAAAAAA/gAAAAAAAAAAAQAA/wAAAQAAAAAAAP8AAQAA//8AAQAAAAAAAAAAAAABAQD//wAB/wD/AP8AAAAAAP8AAAAAAQEAAAAA/wAAAP8AAQAA/wEAAAAE+vr7BAUF+/z8AwIDAgEA/v7/AAAA/wD+9fn4AwME//8FAAIBAgIF/fz8AAABAQED////AAD//v8B//7+/v7+/////v7+AP//AAD/AAECAP//AQABAP3+AQQD/wD/AAD/AAAAAQAB/wD/AP8AAAAA/v8AAP7+AgEA//8A/wABAwEBAQMB/Pz9//7/AAIAAQICAQEA//7+/v//Av8BAQEBAgMBAQAAAAABAQEBAQEA/wD/Af8BAAEAAAL///8BAAD/AAAAAQEAAAEBAAAAAAAAAAEBAgEA/f7+AAD/////AQEB/wAAAP///gD/AgEB////////AQIB/////v7+AQIBAAAAAQEBAAIBAAABAQABAAAB////AQD//v/+AAABAQABAgEA/wAAAAD/AQABAAD/Af8A/v7+AAEAAwIC///////+AAABAQH/AAAAAQAA/wAAAP8AAQEA/wD+AQADAAAAAP/+AQAAAAABAAAAAP8AAAEAAAD/AQAAAAEBAf8AAQAA/wD/AQABAAAAAAAAAAEBAQAA/wAAAf8AAAEB/wAAAgAA/wAAAAEB/////wEBAQD/AgEBAAMD/wAA/gT/AwYG/fz8/v38/Pv7/Pr5/fz7/fr5/f/7/v0BA//+//7+Av78/wD/Av///wIAAP/9AQAAAgP//wID////AP4AAQH/Av8DAAH///0BAgL+/vz8/v/+//7//wEBAQEBAAAC//7+AAAA//7+//79//8A/f78AQEAAwAE/wH9/P79AAECAQH7AAEDAQIC/wEBAgMEAwECAQAB/wAC//8AAP8A/gAAAgEB/wADAQEC//8A+/v97+/w5OTk7Orp9fX0/Pr8/v//AAD+AP8AAAEA/Pv8AQIBBAUF/v///v7+AP///wH/AAAAAP8A//8AAAEAAP8AAAEAAP8AAAEAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAEAAAAA//8BAAAA/wAAAAAA/wEBAP//AAAAAQAA//8AAAAAAAABAAAAAAEAAAD/BPz8+wAAAQMCA/v7+gIBAgEBAAAAAAECAgICAgAAAP3+/gL8/f8DAf8BAgEDBP/+/wAAAAAAAQAAAPz9/f79/QD///7+/gAA/wAAAAH+/gEBAQEBA/8A/wD/AAEAAQAAAf4A/wAAAAQDBPv++/z9/AMCBf7//gAAAQEAAAAAAP4AAQEBAQIDAv39/QMBAwH/AAECAQAAAwEA/wEBAgEAAQEBAQAAAAAAAP8AAP/+/gEBAv8A/wEBAP//AQAA/wECAf8AAAEAAf8AAAIAAf8A///+/gEBAQAAAP//AAICAv/+/v8AAAAAAAIBAf/+/gAAAP7//wH9/wECAQECAQEBAQD///7//wAAAQEAAQD/AP8A/////wAA//8A/wEAAf8BAAEAAgEBAf///wAA/wAAAP///wD//wEAAv7+/v///gEDBAICA////////v7+/wEBAQIBAf7/AAICAgABAP7//gD/AAAAAAAAAP8A/wIBAgH//wABAAEAAf////8AAAEAAAEBAP8AAQEA//8BAQAAAAAA/wEA/wABAQH/AAAAAAEAAAABAQAA/wEAAf4A/wABAAEBAAAAAP8AAQEAAQMDAv4FBP79/v8H//78+/r6+Pv6B/v7+Pz6+fwAAAL/AAMAAAAC+wABAgABAf79AQIC/wQAAf7+/f/+/v4AAQD//wD//v7//gEBAQECBP7+/wD+AQEEAP/9/v4AAAEBAQEDBAD//QABAAABAQEB/wH+/gD///3+/QACAQABA////wAAAQMCAQABAAEBAQICAgABAgEBBAIDAwACA/8BAgMDBAACAwIDAwEBA/7/APX09uTk49/e3O/w7/n4+P//AP///wAA/wEAAgICAAECAf7+/QIAAggGB/n6+f7+/QD+AP8AAAAAAAAAAAD/AAEAAP8AAAABAAD/AAAAAAABAAAAAAD/AAAAAAAAAAABAAD/AAAAAAD/AAAAAAEAAP8AAAAA/wEAAP///wABAAAAAP8AAAAA/wAAAQEAAP8AAAD/AAAAAAQBAQECAgEBAgIBAQb6+vsA//8A//8CAAEDAgL////+/P36//8FBQD//wH8AgQEAwX//wAAAAD9/v//AP4A//7+/v//AAD+/v8A//4BAQADAwX+/v4AAAEAAP4CBAQCAAAA//0A/wABAAECAgP+/v8AAAAB/wD+//8AAP4CAgICAAAAAQEBAQADAwMBAAD///8B/wIBAv///gAAAQAAAQAAAAD///8CAgD//wABAgMA///////+/P4BAgACAgIB/v8AAQD/AQABAAH///7/AAAAAAD///8AAAD////9/f4AAQEA/v8AAAD/Af8BAAAAAQECAQH///7//v7//wABAQEAAAAAAAEA////Af//AAEAAP////4AAP8BAAEA//8AAAD/AQAA///////////+/v8AAP8BAAH+//0A/wEBAgMDAwP///7//wAA//8AAP8A/wD/AAABAQEAAAD//v0BAQAAAQH///8BAAEAAAH///8AAgEA/wAAAAABAQAAAP//AAAAAP8AAAH/AAD///8BAAABAQH+AP8A//8BAQAB/wAAAQAA/wAAAAEAAf8CAAH/AgAA/wH/AP8BAAAAAAH/AAACAQL/AAIAAv/9AgEDBAMGBwf9/An+/P349/T4+fb9/Pv6+fgAAvsBAvoB/fr9/fwBAAMB/fz/APz///z////+//7/AP/9/v8BAP8BAQL+//4A/wD/AAIAAQD//wH///8BAgIDAQIBBAH+/v4BAv8BAQH//wD8/f4CAgEBAwMCAgIAAQECAgMBAQICAwQBAQMCAgMBAAIBAgQBAgIAAQICAQIAAQL+/v/6/Pvu7u7i4d/q6ef49vb///8AAAEAAP8AAAEBAf8BAgP9/Pz////9/f4DAwQHBwf5+fn+//0AAAD///8BAAAAAAAAAAEAAP8A/wAAAAEBAf8AAAH/AAAAAAABAf///wAAAAAAAQAB/wD/AQEA////AQAA/wEAAQD/AAAA/wAAAAAAAAABAAAAAAH/AQAA/wEA/wABAP8AAQEEAwMDAgEB+fr7AgMEBgYG+Pf3AAD/AP/8/QD9AQEBAAECAv4BAQABBQID/fz7/f0G/v7+AQICAQAA/v39/v7+//7+///+AAD//f7+AgEBAQH+BAME/wD//wD/AP7//wIAAAABAAAA/P3+AgED/wL9//7/AQIC/v79AQEBAAEA/wD///////8A/v3+AgEBAQL//wABAQABAQEBAAAAAQEBAgEB/gAA/wABAgEB/gD/AQEBAAAAAAD////+/v7/AAECAQIAAf8C/v//AQD//////wAAAQEB/wD/AAEA/v3/AQD/AAIAAAAAAQAB/v//AQAAAQAAAQAB/wAA///+AAAAAgECAAIAAP8BAAD/Af8A/v8A/wAAAgECAAAAAAD/AAAA//7/AP8A/wD+//7/AAD/AQEC/v/+AAAAAwMDAgIC////AP8A///9AAABAQABAAAA//7+AAIB/v/9AQAB//4AAQD/AQEBAAEAAQAAAAEBAP8AAQAAAAH/AAEBAAABAf///wABAQD/AAABAQEA/wD//v/+AP//AQEA//8BAQEAAAABAgIAAAAAAP8B////AAEBAAEAAQAA////AAAAAAAAAAAAAAEB/wD/AwMDAgMCBAQD/wcIAP4ACAoK/fz7/f399ff1/Pr59/bz+vj2//n2/v8AAP8AAP7/AQD+/gD/AAAB//8AAAEB//8A/wAAAgID/gD///3+/v4AAQD//gABAQABAQIBAAEBBAMF/v7+AQIB/Pz9AAAB/wAAAf//AQICAwQFAgIDAQID//8BAgMCAQICAgMDAQEBAQABAQAAAQIBAQAA+vv87u7w4uHg5OPh+Pb2///+AP8BAAD/AQAB/wAAAQID///+//////8AAAD9+vr6CQkIBQUF+wAA/v//Af8A////AQAA/wEAAv8AAAEB/wD/AP8BAAEAAf8AAAEA//8AAAAAAAAAAP8A/wAAAAAAAQEB//8AAAD/AAAAAAAAAQEA/wAAAP8BAAAAAAEAAQABAAEAAQD/AAEAAf8BBPr6+v0D/QEBAvz7+wEBAgUEBfn7+fv6+f///wACAgQEBQIDAwEC/QP9/QAB/Pz9/Ab//wD//////wEAAP7+/f/+/v7//QEBAf////8BAQD/AP7//gH+Af7//gD//AP/AwABAP8AAAEAAP7//wD/Af4A/wQBA//+/AEDAf//AAABAQAAAAEB/wEAAPv8+gICAgQAAQICAgIBAf////39/gADAgAAAP////v+/QEDAgH/AAEAAP8AAAD//gABAv///wD/////AQAAAf7//////gAAAP//AAEBAf//AAEBAf///QH/AgIBAf8A/wD///7+/wEBAP8AAAEA/wICAQAAAQAAAP/+/wAAAP///////wD//wAAAP8AAQD//wABAQEAAP8A/gAA////AP8AAAABAf8AAAMDAwEAAQAAAf///wEA//8AAP7+/wEA/wABAAAAAQIBAQAA/gD/Af//AAABAf8AAAD/AAICAgAAAAAAAAAAAf8BAAEBAAAAAAAAAAAAAAEBAf8AAQAA//8A///+/v///wEBAQAAAAIAAP8AAAEAAAABAQD+/wABAQEBAQH///8AAAABAAH/Af//AAAAAAAAAAEA//8BAgABAP//AAEBAwD/AP8D/wIDAgQEBf///wUHB/n5+QcJCfn39fj29Pr49fj39v0DBP8DBAL9/Pz8/AL+/fz9/f/////+/gEAAQH+/wECAAMAAgEBAQH+//3//QEBAgAAAQABAQIEBf///QEDAQD/AQEBAAEBAgAA/wABAAABAQABAf8BAP////8AAP8AAP8A//8A/v8BAQABAf7///f39ufm5eLh3vHx7/39/QEBAf8AAP//AAEAAAEBAQEAAPz9/v8A//8A/wAAAP///vn5+QcGB/////39/f/+//8BAP//AAIBAQICAf////7+/f8AAAD/AAAAAP8A/wAAAAAAAAABAAAAAAD/AAD///8AAAAAAAAAAAAAAQEBAP//AAEA//8AAAABAQAAAP///wEBAAABAAEBAQEBAQQAAAD+//8DAgEA/wH5+vkFBAUDAgT9Af38/P0B/v8AAAEC//8CAQL9Bf0A/wP9/Pv9/fwCAAT/AAAB/////v7///3///4AAAIAAP/+/v0AAwT//////wACA//9/f0AAgAB/wH//wEBBAL+//8BAQD+/v8AAAD/AP7//wD/AQL//v4B/wABAAEAAgEA/QD7+vr9/f0EAwQCAgICAwL//wD/AAICAAL9//4AAQAC/f//AAADAwMBAAEAAAH//wD+AP4B/wH+/fwBAAEBAQD///8A/wABAgH+//8CAAAAAQEBAgP//v//AAD//wD/AAD///7+/gACAwH//wEAAAD///4BAQEAAAD//v////7/////AAABAQEBAP//AP8BAAIAAP7//v///wAAAP/+//4A/wEBAf///wP/AAACAQABAQEAAP///v8BAQH///4AAAICAQD/AP8A/wD/AAABAAAA/wAAAAEBAP////4AAAEBAQH/AP8B/wABAQIAAAAAAP//AQAA//8AAQAA/wD///8AAAEBAP8AAP//AAIBAAABAAAAAAAB/wAAAQEAAAABAQEAAQEAAAD///8AAgH//wAAAAD///8AAQH/AP7/AAABAQAAAP8AAQEB/wD/AgH/AQEA/wACAgIFBAT+CQr+DRD9/fz39vXx8O759/T6+ff9+/kA+Pf9/PsB//sA//0CAAEBAwT9/v4B/QL//wAAAQAC///+//////8AAQD+//8DAwEA/gICAgEAAP8AAAIBAQAAAAEAAAD/AP//AQADAgEAAgH///////8BAAACAwMDAwQBAQH7/P319PTi4t/t7Or9/PwBAgL//v7/AP8AAAD///8CAQL/AAD//v8AAAABAAEAAAD/AAD+/f77/PsEBAQCAQL9/v3+/v4AAAAAAAH//v7////+/wABAAAAAP8AAAEBAAH/AQAAAAABAP//AAEAAQAAAP8A/wABAQEAAAAAAQAA/wABAAAAAAEBAQABAf//AAEDAgIBAQEAAAAAAAECAwIEAgICBQUG+Pj5AQEA/v7++/z7AP//BAQFAAAB/Pz8/f39AgID/wAB/P3+AQP//f3++/v7BAABAAEBAP7+/v78AQD////+AAH///7//////AP+BAMDAgEA//7+AgEC/v3+AQEBAAAB/P0AAQEBAAEB//7+/f38AgACAAAAAQAAAP7//wD//P3+Af///////v39/f37/wMFAQICAQEBAAIBAv0CAgID///+AAEB/gICAgEC/v7/AgIBAAACAgEAAAAB//7+//8BAAH+AQEBAAAAAQEAAP8A/v/+/wAAAAECAgEB/////wAAAgEBAAAAAQIC//8A/wD/AgAA//////8A/////wD///7+AAAB//8A/v/+AwMC/gABAQAB/////gAAAAECAQD/////AQECAgECAAAAAQEBAAAA/wAAAgAB/f7+/wD/AP8AAQABAQD//wACAQAAAAH/////AQEAAAAA////AAAA//8AAQIC////AgEBAAAB///+AAABAAD/AAAAAAEBAAD/////AAEBAP//AAABAP8AAAD//wICAgAA/wEAAAAAAQEAAAABAQEBAAAA/wD/AgEB/wAAAQEBAP8A/wAAAAEA//4CAAEA/////wABAAAAAQEC/wD//wD/AQEA/wAA//8CAgP///4GAwP+AwQIBwgM+fn2+/r4+ff18/Lv+vj3+/n4+/v5+vn5AQABAwP/AgIE/fz7/f79/wEAAwQF///9/v3/AgIBAQAB/gABAQD/AgMEAAACAAEBAAEBAgECAwIDAgIDAgMDAQECAAAAAAEAAAAAAQEBAwMD/P3+9vb28PDw9fT09/b2/wAAAAAAAAAAAP8AAP8AAAEBAQIC//7+AQEA//8AAAABAQEAAP//AgIBAQABAP8AAwMCBAQD/f79/fv9/f79AAAA//8AAAAAAP8AAAECAQEAAP8AAQEAAQEB/v//AQAAAAAAAP8AAQIAAQEC////AAD/AAIBAQEBAAABAwICAQEBAgMCAgID/v78//7/AwMECQsLBP7+Afv6/P39/fv8/QD///r6+gQEBAMEBQQFBgECAv39/gAA/wECAQAAAQABAQEBAP3+/QH7+wMFA//+/f/+/v8B//7+///+/gICAQAAAP38/QICA///AAD/AP8DAAD9AQEBAQEBAf/+/wIBAQECAf////////8BAf/+/gL//gECAv//AAMBAv7+/AD+/wECAfv5/AD+//8AAAAA/gAAAAECAgMEBAAAAQIDAgIDBQADBAMDA/7+AAD//AABAwAB/wAAAAD//gECAv///f//AP8AAAQDAgEAAf///wH///8B/wECAv///wAAAQAAAP8AAAECAAH/AQACAQD//wAA///+//8A/wABAf///wABAAQDA///AAAA//8BAv//////AAIAAAEBAQABAwH///8BAAEAAf8AAf/9/QICA/7//wEBAgD//v8B//8AAQEAAf8A/wAAAQD+AAAB//3+/wD///8AAAMBAwD+/wD//gAAAP8CAgAA////AQEC/wAAAQAAAP/+/wAA/wD//////wD/AAEBAQAA/wABAAD///8AAf8AAAAA/wAAAAABAQAAAAAA/wEAAAABAAH/AQAAAP8AAAEBAgAB/wABAQAA/gEBAf///wAAAAABAQEAAAABAP//AP//AQEBAQAA/gAB/wICAAICAwQECQcIB/7+/vv7+hASFvn4+Pb19Pb09Pb29Pr69wEA/vz7+fn4AP77AAAB/wIBA/8AAwMDAP////8AAAMCAv8BAgIBAgIDBAABAQD//wECBAEBAwEBAgD/AQECAQEBAgMDAwECAv7+//X19vH09Ozr7ubl5vDw8Pj5+f38/P7+/wAAAAICAv7+/QIAAf/+/v///gEAAQABAAAAAQABAAMBAQMDAwICAf///gMDBQMCAv7+/gABAAAAAAEBAQICAAD/AQIBAgAAAAEAAP8AAAIBAf7//wH//wEAAP8A/wABAAAAAAD//wICAgABAAMDAwIDBAoJCQUFBgABAAMDA///AP79/QIDAgsLDBAREAT6+vv9/P0DAwH+/f0AAAH////8/f0CAwT/AQEDAwT/AP3/AQH8/P4CAv///gD9/f8A+vv/BP8BAQD+//4AAP/9/P7///7//f3+AgECAgP///0D/f3//wAAAAADAQABAAEAAAIDAwP+//0BAwP//f4A/wD+AgH+/v8BAP/+AQACAQD8/P0BAQEBAP/////+/f4DAwT9//0CAQD+/vwA/////P/9/AMBAgICBAMFAAH/AAABAAEBAgIBAgL+//8CAAEAAAD/AAAA//4BAQEA//8AAP/9/f4CAgAAAAIBAQD9/v8BAP4EAgP+AP8BAAAAAAD+/wAA//8A//8AAAAAAAEAAQAA/wABAAABAgIBAQH///8CAgH////+/f3/AAABAQH/////AAEAAP8AAAABAQEAAAH9/f3///8CAAABAAH/AP8AAAH/AAAA/wD/AQEA/wAAAP/9/v0A//8AAAEBAQABAQIAAP////3//gEAAQEA////AAEA//8BAgECAgIAAf7//gEAAAAAAAAAAAACAQEBAQD/AAABAAH/AAAA//8AAAD/AQAAAAIB////AP8BAAD/AQAB/gAAAf//AAEBAAH/AAAA/wABAf///wEAAP8BAAH/AQAAAP//AP8BAAH/Af8BAAEAAP8A/wAAAQABAQD//wAAAAAEBAP+/gIDAwP+CAkHCg0NEBP8+vv29/X5+Pb29vX29PEEB/f8+vr7+/r7+vn///4CAQEB//8AAAAAAgIEAgEBAgECAQIAAQH//wECAgIBAgMDAwQCBAQCAgIBAgMA/wD7+/z3+Pf7+/34+Prx8O/y8u/4+PcAAAADAgQB//0AAP8AAQEBAAABAQAAAAD9/QECAwH/AAAA//8BAAACAwMEAwP+//4GBgcAAAD6+/sAAQAEBAQGBQQAAAD+/wAAAAEAAP8BAQL9/fz9/f4A/////f4CAgEB/wD/AAEAAP8AAAEFBAQBBAQBAgIHBwgNDg4PEBADBAUAAAD+/v8DAgEJCAgKCgoTFBMKCgkEAAAB9vf0BwYG/P39AAAAAwME//7+/Pv6AwQEAAABBQUF/f3+AQAA/f79A/7+/fz8/v79/f39AQD+AQEC/wD////+/fz+/Pz7AgICAwP+AQL9Bf8EAAAB/v7+Av4BAAEBAP///gD//gD/AAD/AgID////AP7+//7//v//AAIAA/8BAf///////gD////+/wEA/v/+AwQEAQD+AQEE/v3+/v77/vv7AgMCAQD//wT+Af7+/AD8BAEEAQACAQAA/wAAAQEBAP////8AAAAA/wD/AAAAAAAA//4A/wD/AAMAAQEBAP///v/+AQABAAEAAQEAAAABAAEB////AAAAAQD//v7/////AgMDAAEAAQAB/v7+////AAEA/wAAAAAAAP//AAAAAP///wAAAQIB/wAA/f38/Pv8AgIC/wQA/wD//////v79//8AAQAB/wH///////7+AQEA/wEBAQAAAAABAQIB//8A/v7/AAD/AP8B/gAAAAAAAQEBAf4B//8AAQH/AAAAAAAAAQABAAEA//8AAAAAAAACAAH/Af8AAAEAAAEAAAEBAP//AAIBAAAA/wAAAP//AP8AAAABAAD//gAAAP//AQEBAAABAgH///8C/wH/AQAA////AQABAAAAAgAB/wH/AAABAAD/AAAB//8AAQIAAv8BAAEAAgMA//8B//8A/gEA/v4BBAMCBQUD/QwMEP38+/oX/Pv6+/r5+Pn59PPx+Pj2/Pv7AP7+/f/+AAAAAAAAAgEBAQEAAgIDAgIDAQICAgMEBAQGAgMDAQEBAgME/Pv78/Pz9vb4AQAB8/Ly7Ovr8fDyBQUGFhUW/Pz8+/v79fX0AAAABwYG+vr6/Pv8BgkG//4A/f78////AQEBCAgIAAAAAgICAQEC+fj4BAQEAwICAgICCgkKAwUD9vX2/P39BwcI+Pf19/f9AwQE//7+CggHAQEB+vn6AP8AAQEABAUFBQYGCAgJBQcHDxERFRYYEBAQAgMEAAAAAf/+CQkIDQwMDQ0MDQ4MBgcHBAD///38+/sB/wIDA/v8/P/+/gEBAv7+/QICAgAAAP38AQABAfz7+wIA/wAAAAMDAwIBAgECAv/+/AUGBgEBAgAAAP///gEBAf/+/v4BAAD///39/QMDBP/////+/v4BAAEAAf/9/wABAP///wABAgAA//7+/gAA/wABAP79/gACAP/9/gABAQECAP///wICAf38/wECAQECAwEDBAED/gL9A/v6+vv7+f7//wAB+gYHAgIDBP//AP3//gEAAAAAAAECAQAAAAEAAf///////wAAAP///wD/AAIDAv/+AAAA/wD/AP0A/QIBAv/+/gIDA////gEAAQAAAQAA//8BAQACAgEA/gAAAP7+/gEBAQECAQAAAAD/AAIBAP39/v4A/wIBAQIBAQD///////7+//37/QEAAAIBAgAAAP7+///+/gABAQECAQEA//39/v///wAAAAICAgEA////AAACA/8AAAAAAQIC//7+/wAAAAAAAAEAAQAAAP7+/gEA/gABAQAAAQIBAf8BAAIBAQAAAAAAAQAAAP//AQABAAEBAQEA/wAAAQECAP///wEAAf///wAA//8BAQH//wAAAQABAAEAAQAA/wD/Af8BAf8BAAAAAAD/AAEBAP//AAABAAAA/wEAAP//AAABAQH//gEBAQAB/wABAQEAAP//AQAB/wAAAAIAAQECAAD/AQIFBQQA/gD/Bf4ICf///v39/gAA/vz8Gvz7+/j49/j49/8A/wL/AP7//wICAQD//wIDAgMCA/8AAQIDAwUFBwECAgEAAP//APX09AQEBwoLDvn5+AEBA/7+/wcHCf8A//v7/Pn5+P39/e3s7AMDAwsKC+7v7gQDBAUFBPn5+Pn5+f///v//ABAQDwAAAPj4+fz8+g4ODQUGBwICAf7+/gAAAP8BAAoLDAMFBPv8+/0A/wkMDQcHB/v7+wkJCfb19fT09QMCAwMCAgYIBwQFBQ8REQsMDhkaGhISEw4ODQYHB////wQCAQwLCw4ODQkKCQQDBAIDAgT+/f3+/v74+fkLCgsDAgL9/PwBAQECAwT9/fwAAAH7+vr/AP//AAEE/wf8/PwFAwUDBQMBAQH9/v0AAQEFBAUAAQEBAQEAAAD+/wAB/////wD7/PsBAQEAAf/9//0CAAL9/f4CAv//AQD9AP8AAgEBAAL+//4BAQIBAAD//wD+/v8BAgD9/fwCAAL+//4DAgMEBgX+/f4C/wIBAQECAgUAAQQAAQP+AP///f7//v39/PwAAAIABAABAgIBAQEAAP/+/v8AAAEBAP//AAAAAP8AAAABAQH//////f8CAgIBAQIAAP8BAAL+/v7+AP/+/f0CAQH/AQAAAP4A//8AAAEAAP8AAAH+//4AAQD//wD///////4AAAEBAQAAAQABAAEAAAD9//0A/v4AAQH+/gABAgECAQMCAwL//////v8AAf8BAAIA///9/v3+/v8AAAAAAQD9/f4AAP8BAQD//v8A/wEAAAABAgECAQH+/v4AAAEAAf7//gH+//4BAAAAAAACAQL/AwMB/wD+/gADAwH///8AAP8BAQIA/wAAAP//Af8BAAD//wABAAD///7//wAAAP8AAAEAAAAAAAABAP/+/wABAAABAP8A/wABAAAAAAAAAAH/AAAAAf8A//8AAf8AAAABAP8AAAD/AgEBAAAA/wH/AAAAAQAAAAABAAEAAP8AAAEAAQEBAAAAAAAA/wP/AP8DAAAAAAD//wD///4GBgD/AP8MDQ39/f39/Pz/AAAB/wABAwICAQIAAP8A/wD/AAABAQECAgIBAQL+///6+voBAQIKCwz9/v75+fkKCw4JCgsTExb3+Pf5+vn39/gAAP8UFRUNDQ/t7esbHh/6+/r49vYFBgX39/X9/fz8/P0VFRTm5ecGBwj+//4VFBX4+Pjx8PD8+voOEA8PDw8EBQT8+/v8/P36+/oODQ3//v8HCAj8/Pzv7e8TFP36+voIBwj8/v4JCgoLDA0VFxYcGhsNDQ4LDAsHBwYFBgUGBgYHBgUGBQUGBQUAAQH/AP8E/f79BwgI9fT0/P38BQYG/v7+AgIBAQH/+fj3////////AQEC//8A//79BQUG9vn5BQUGBAUEAwP/+QAB/wf+AgIDAQAB//////79/gECAQEC/fz9/AH8AgIBAAECAAMA/f79/wD/AQEB/wD//f38AAABAgICAAECAAEB/wAA///+AgAB//79/f/+////AwICAwECAAQC/v7/AQEBAQAB/wECAgMABwcJ+/n4//8AAAAAAP///v79AP7+/wIBAAEA//8AAgEB/wEAAQICAQEA/v3+AQACAQEA/wD//v7/AgL+/wABAv//AAAAAQAA////AAIAAAAA///+AP8AAQABAAAB/v7/AQD/AP8AAP///wAA////AQIBAAEBAgMA//7///7+/f79AAAAAP//AP8AAAAB/f/9/wD/AQABAQIBAgAB///+/v3+/v/9AAABAAEBAgAA/f79AP//AgIDAAD/AQD/AAECAP///P7+AQABAQEA/////f7+/wD/AQABAAABAAAAAf8A/wEAAf///f3+AQAAAgEB/gD/AQAAAQECAP8AAP8AAAIBAP////8BAAD/AAABAP8A/wEBAQAA/wAAAAAA/////wEBAQAAAAAAAAD/AAD//wAA/wD/AQH/AAAAAAAA/wAAAP8AAAEA/wABAQD/AP8A/gAAAgAAAAEAAAECAP7+AgAAAAEA//8AAAAAAQEB/wAAAP8AAAD+AgIEAAD/AP8AAAUB//7///////8AAQD/AAEBAQAB/wD/AAAAAAAAAQEBAP8B/wD+/f3+CAcGBQQE/f79//8ABgYHBgYHERAQ+fj5+vz89/b1/P79//7/AQIC//7+7/DwDAsL6erqDw4P9PT0/f37+fn4CQkI9vX2BQcIFhUW+/z8BgYG8/Py/v39BwcICgoKAAEA/v7+9/X2AQMCBQQEDxAP+fj5CgsK5uXnDg4PCAgI8fHxBwcH+vn6BwkIDA0OGRkaEhERCAgJCgsJBwcGBgYFAwMDAgICAwIDAwMCAQEB//8BBP38+wQEBQICAvf3+AQEBQcGBvf49/z7/P7//v/9/wECAgQDAgABAfv6/QUEBP79/vP49gUGCAkJCv7/AP//AAUFBAAAAgAB/////v38/wMC/gD/AAAAAAQFBAEBAQEBAAAAAP39/AEAAf8A/wMCAwAAAP3//QMAAQEBAgEAAP39/QIEAwECAf7+/v7+/fz7/QQEBgICAwAA//8A/wEBAAEBAQD+AQQEBgD/AP39/gD+/wAD/gEAAv4A/v7/AQIBAv/+/v0BAQIBAf///QEBAQEAAf3+/QIBAQEBAgEBAQAAAQEAAf79/gICAf8A/wAAAP7/AAIBAAAAAQAA/v7//gAAAAD///8BAQD///8A/wD/AP8A//79/QICAgD//wAAAP7//wAAAQAA//8AAAEBAP/+/////wICAgECAAAAAP8AAP39/f///wEBAv/+/v7+/fz+/wICAQEBAQEBAAEBAgAAAP7//v/+AAD/AP8A//8A/gEBAP7/AAAAAP///wMCAgAAAP///wH///4AAAEBAAIBAv4AAAEA//8AAf7//gD/AAECAQL///4AAAABAAD+AAEBAf8AAAD//wAAAP//AQAA/gABAAH/AAAAAAABAf//AAABAQAA/wEAAAAAAQAAAP8A/gAAAAAB/wD/AAAA/v//AQAB/wEAAf8AAAD/AAAA/wIBAf8BAAEAAQEBAP///wD//wEBAf8A/wEBAgEBAQAAAQABAQEAAP4BAAD+/gABAQD//wEBAQAAAQAA/wAAAQAA/wECAf//AP//AQICAgD+A/wD/QX/Bf7//wICAgUFA/z7BgkJCfn6+Q0MC////gECAwEBAQD/ABwcHP7+/h4fH/////n5+fv6+fr7+wICAff39ysHCAMFBPn5+fr4+AgKJfn5+gD//wMEAwUEBAMCA/z9/AICAAkJCwAA/wECAv7+/hESEwMDA/v6+/j49/7+/v/9/QADAw0MDQ8PDwgHCQYGBAgICAYGBgICAgMDAgEBAQEBAgICAgEBAP8AAAT4+fkODw///v8BAgH5+fkGBgb5+fr//v//AP4EAwQFBgb7+vsEBQP7+vz09fUDAwT+/v/39fQA//8ICQAAAQD+/f0CBAMDAgIAAQD+//4A/gEABAH++//+//8FBAH8//0BAAD9/f0CAQIBAQL5+fgGBgb7+vsHCAr/Af8BAQEA//79/QABAAEA/////v78AQD//PwEAwD///8BAAL/AP4DAgL//wH/Af8AAgIB/v77/fz+//8FBwECAwP/AAAAAAEBAgH+/v//AQAAAAABAAEAAAACAgEA/wAAAQEA///+//8AAAAAAAD8/f4BAQEBAf8A/gH8AP8A/wAAAAEAAP8BAQEAAQAA//8A//////4AAAABAgIBAQAA////AAD/AP8AAAD+/v0BAQECAgP+/v/+/v0EAwQBAgEAAAH////+//4AAAD/AAD//v79/f3//v4BAgIAAAD/AAAAAAD9/v0A//8AAAAAAAH+//4A//8BAQD/AQEAAAABAQEAAQH///8AAP79//8C/wEAAQAAAAH9AP4DAAIAAAEAAP8A/gABAQH/////AAEBAQH/AAAAAQD+////AAABAAD/AAABAgAA/wAA/wAAAQD/AAEAAAABAAH/AP8AAAAA/wD/AP8AAAD//wABAAD//wAAAQAA/wD/Af8A/wABAQAAAAAAAAABAAEAAP8BAAEBAAD/AQECAAEAAgAAAAAA////AAAAAAAAAAAAAAEA/wABAP//AgEA/wABAQIBAgAA/wEBAgIAAAD///8AAAABAQABAQD//wEAAQAEAgH//v8A//4GAQb+/wQFBf39/f0HCAb//v//AP8DAgP/AAACAQEAAQEBAQL///7+/v4AAQH///79/f76+fj/AAEFBQT7+vv7/PwCAQEGBgb7/PwBAf8CAgMFBQUBAQEBAgECAQIBAQH+/v4BAgH8/P0UFBQA/wD7/Pv7+vr+/v7/AAAA//8GBgUFBQYFBQQCAQIFBQUDBAQAAP8CAQAAAQABAP8A//8AAQEA//8E/wAC/v3+BggJ+fn3+fn5/fz9CAcJ9/j2/fv9+/v7/f39/wAA+Pn4AAABAv38AwEEAAIB/v3/9vT0AQAAAQH//QEDA/0DBAQEAgID/v/+/gED/wD8AQAC/f3+Af8BAwP/AQIA/Pz8AAABBQUF/Pz7BQUF/v/++fj2BAQFAAECAgIC/v7+AgEB/wABAAACAP/+/v38/P8AAQIA//v9AgMD/wP/AgECAAABAQECAAEC///+/f3+APr7BQYCAgMC/f39AwICAAD+/v7/AgIC/wD//v/+AQEBAQAB//39AAEDAgAA/gAAAgEAAgED/v79/wH/AgAAAAIAAAEBAP//AP8B/wD/AQEB/wAAAAAA/wD/AQAA//7+//8AAQEB/////////////wD/AQEB//7+/f39AQAB/wD///7+/v4A/wD/AQIBAAD/AP///Pz8/v7+AwMDAQEA/f7+AwIC+/r7/v/+AQICAQABAQIAAP8AAQIC/v7+AP79AAEBAAABAgEAAAICAAD+Af4C/wIAAAABAP//AQAB/////wH/AQEBAAAAAAAAAQAB/wAA/wD/AgAB/wAAAQEAAP//AAABAAEBAP//AAABAAEA/wD/AQAAAP8A/wAAAAAAAAAA/wAAAAAB////AAD//v8AAAD/AP8AAAAAAQAC/wD+//8AAQEAAAAC/wD+AAAAAf8A/gH/Af4A/wEAAQAB//8AAAAAAAAA////AQABAAH/AAEAAf8BAQEAAQIA//8CAQD//wEAAAAAAQEBAQAA/wD/AQEAAP8C/wH/////Av8C/gD+Av8BAQIBAAAD/gMC/v4E////AP///wAA//8A///+AgIDAAABAgL/AAABAgICAAABAAEA/v7+/v4MAQD//////v7/AQEBAgICAAAA/v//AAAAAQAAAAEAAQICAQAAAQEBAAD///7//wEA/f39AP8A///+/v7+/Pv6/wD/AAEA/v7/AQEBAwECAgIBAAAAAwMCAgH///8A/v7/AQH/AAICAAD+//8BAf//BAwNDfj4+AICBPz9/gQCAv79/QAEBPr5+/r7+f79/vb19wMDAwIDA/39/AUEBgQF//7+/wQDBPv9/PT08vv7+wkMDP3+A/z9/QUEBP8AAQMDAQEAAP///QEBAQD/AQUE/wIDAvz8/QEAAAIBAP7+/vr6+gECAfv7/P//AAICAgEEBf7//wACA/z8/v/+/QD//wEAAf8D/QD9AAAAAf8A/wAAAf8B/wICAgEAAf//////AP/+/v78/v3//wcIB/7+/gD/A/8A//8AAAH+//8B/wIBAv8AAAAA/wAAAAD+/f0BAAICA/7+/wEB/AECAf//AP8A/wD+AP7//gEAAQAA/gIAAf7+AQEAAP3//wIBAAEBAf//AP///wD//wABAP//AAAA/wEBAgD/AP7//gD/AAIEAwAAAP39/v///wICAgH/Af7///39/P8A/wMDAwMDAwAA///9/fz9/P///wMCAwAA//8A/wD+Af7+/v77+wABAAEBAQIBAf8AAAADAgIA/wEAAgECAQEAAP8A/v//AP7+/v4AAQABAAMCAwEBAQEBAAEBAwECAAD+//4BAAH/AP8B/wD/AAAB/wD+/wABAQEBAQEAAgEBAP///v8AAQIAAP//AQAA//8A////AAAA/wAAAAAA//8AAAEA/wAAAv///wEBAQD/AAAAAQEA/v8AAQAA//8A/wD/AAABAAAAAAAAAAAAAAABAAD/AAEAAQABAAAAAAAAAAAB/wEBAAAAAQEA/v8AAAABAAD///4AAQEB/wD+AP8AAQEA/wAAAAAAAAAA/wEBAAMBAQD/AQABAQICAf//////AAAA/////wD/AQABAAEBAAEBAgAAAAEBAgEBAAEBAf////7+/gAAAQAAAAAAAP8A/wH/AAABAAAAAP///wAAAP//AAAAAAECAAEAAP4AAAIAAP8CAP7+/gIEAQD///8AAv7+/gMCAf8A/wAAAAAA//7+/wH///8A/wEAAAEB/wEAAf///v7//wIAAQD+/wABAQABAf//AAQGCQr/AAD9/PsNDQ/08vL8//z4+foBAQH6+foBAAD9///9/v4HAQIAAAH8/f0BAf3////7/v7///77+/r5+fr8/v0MDQ3+/v3//f0BAQL/Bf8BAwT/AAD+/v7//wEBAQEDAQP9/f0AAP/+//4BAQH7+/sEBAQBAQH7/PwEAwP+/v//AAACAv3///79/PwCAQIAAf/8+/4BAAAAAQEC/AEABgECAwMA/wACAgH+/v79/f0AAAEBAAH/AP38+vwCBAP9/v4CAAEAAP/9Af4BAQD+AP4CAQIBAwH+/v8BAQH//f////4CAQL8/P0BAgEAAAEB/gAAAP//AAACAgL/////AAIAAP8AAAEA//79AQAB//7/AQH//f4BAQIAAf///wAAAAABAAAAAQABAQICA/8CAgH//v7///7+/v38/f7+/v/6+voCAQECAQD//v8BAgD8+vr39/gAAQABAP8FBgYFBQUBAgIA//8A/wL/AP8BAQADAwT+AgMCAgL/AgL+/gAAAv7+/f0BAAIAAAEBAQEBAQD///8A/wD+/v4BAQEBAAABAgAB/wEBAAEAAQD/AP8A/wAAAP8A/wD///8BAgEAAAH//wABAAABAQEAAP//AQEAAP/+/wABAQEBAf7//wD/AP///v8BAQD/AAAA//4AAQEA/wAAAQEA//7/AQAAAAABAAAAAAAAAAD///8AAAAA/wD/AP/+/f4AAAAAAAAAAAACAgIBAQAAAAH//wAAAP8A//8AAgEA/wD/AP8BAAAA/v//AAAB///+AQAAAAEAAP8BAQEAAAAAAAAAAQABAQAA/wL/Av8A/wABAQAAAAH//v////8BAgIBAgIBAP8AAAH///8A//8AAAABAgAAAAEBAAAAAAAAAAEAAP///wAAAP8AAQEA////AP8AAP///wD//wACAQH//wD+//7/AP8A//8AAQABAAACAgABAQIAAAD//////v4AAf////8AAAAAAAABAAD///////4BAP8A/wH+/wAAAQEBAAEAAAAEDA0PAgID8e7tCAYH8v////4A+fn5CQsL/wABAQICAP79//7/+/z8AwEC/P78BAID/wAA+/v8/Pv8AAEAAQIC/P39BAQECAgJ+fv9AgMCBP/+AAX+AQEC/v4A/v35AAEBCAMHAQEC+/r5AAEBAwMBAAAAAQICAAAB/f3+AAAB///8BQUG/Pz8///+/fz7BAMEAQEB/f39AP////8AAgID/f/+CQgJ/AD+Av4B/////////v79AgADBAEC+/z7BQEAAwIC/QD/AQEBAP7+/gEAAQAA/wEA/wECAAD//v7+Af8A/Pr+AgMCAgIC+/v7////BAUEAAAAAf///wAB/f7+AwEAAAABAAD/AQIA//7+AQIDAf///f/9AP7+AgMD/////wD/BAID////AAH+/////fz9+/r6/v38+fr5/f38+fj4AQECBAQE+Pb2+vn59/f19/X1BAMDAwQC//8AAwMCAAEC//8A+/z8BwYGAwIDAQMDBAUGDQ8QCAsLBf0GBQUGAAACAgICAAD/AAAA/wAAAP8AAQABAQECAAEA///+AQIDAQABAP8A/wL/AP8AAAAAAQD//v/+AAEAAP8AAP4AAAL/AAEAAAABAAAAAQAB/wD/AQABAAD///8A//8AAAD//v/////+//3+////AAAAAwIDAAAA/wEAAgEBAgIDAAAA////AAEAAAD/AAAAAAAB/wD/////AAAAAAAAAQAAAAEB////////AQEBAQEC////AAD///3/AAEAAQAAAP///wAAAQEBAAAAAP8BAQEA/wABAQEA/wABAP//AAABAAABAAEAAgAB/wEAAAAAAAAAAAEBAQABAQEBAQAAAP8B/wD/AP///wAAAAD/AP8AAAD+/wAAAAAAAQAA/wD//wD/AP8BAAD//wD/Af///gD///////8A/wIB//7//v79////AAAAAQEAAQEBAAAAAQAA/wD/AP/+///+///+Af//AP7/AAIC//7+AAAAAf//AAD//wD+//8AAQEC/wAB/wEABBASEgMDA/Ty8fj6+gQEBff39ggJC//+AAgIC/f39QECAwAB/v/+//8DAPz8/PsDAwABAfv7/Pv8+gD//wAAAPr6+f/+/RQVF/3+/wEBAQYFBf79/gIDA/8AAgD//wABAAICAQMDBPz8/f8A/gEABvr++wECAwQDBf39/gEBAgAAAf39/gEAAP/+//z7+wD+/wQEBf/+//7//v/+//8AAP/8/vj5AQQDA/wAAAIAAf7+//8AAP78/f4BAgICA/v8+wEFBgEBAv7+/wAA/////wIBAgEBAP///wD//wAAAf7//gAA//37/AAEBAQDBPr8+/38/gECAQD///8A/f7+AAAC/gEBAP7+/wH/Af/+/v39/QEBAf7+/wAAAAH//////wAAAP8AAP8AAP78/f39/fn49/n49vv6+vr5+fr6+f7+/gMDA/v5+f37++/v7fj49wMCAQQDA/38+/b29gAA/wMDBQMDA/3//wMCAwYGB/8AARQWFwMDAvv7+gkKC/8ICQUGBv8CAwMDAgACAgD/AP8BAQQBAgEBAQEBAAEBAQABAP8BAAEAAAEAAgACAAD/AP///QEBAf8A/wAA//4AAAD+AAEA/QEBAgIBAQABAgAAAf8A/wEAAP8BAAD+//3+/f3+/f79/gAB/wAAAAEBAAD+AAICAwAAAQAAAf8A/v/+/wAAAAD/AQEBAQAA/////gABAAAAAQIAAAABAP//AAD//v//AAAA/wICAv///QAAAAEBAQAAAAD/AAABAAAAAAAAAP///wABAAD/AP//AAABAP//AAAAAAAAAQAA//8AAAH/Af8CAAH/AP8A/wAAAAEAAAACAAAA///+AgAB//7+/////gEBAP//AP8A/gD/AQEBAAAAAP8AAAAAAP///wAA/v///wAA////AP7////+/gAAAP7/AP////7+/v///wD//wABAQEBAAAAAQAAAAAA////AP7+/gD+AP//AP///wMBAAEA//7+/gAAAQAA/v7+/gAAAAECAAABAgD/AAQJCAoCAQP19PTu7ewKCwzy8/MJCQX7/PwBAQEDAwMA//8AAgP///8BAAECAgH6+voDAwP7+vr5+vj//v4BAQD//wD7+vr9/P0PEhP+/f3//wj9//4BAQIAAQECAQP+/v8CAwMEA/7+//77+vsBAQADAgT6+fkBCAICAgL7+/sGBwf//wD/AP/////+///6+/wBAgT+///9/f79/f0D/v8DBAP/APv+/f0CAQL+AgIAAQADAQL7+/z/+/oFAQYCAQL8APsEBQUDAwT8/fz//v78//4FBQUB/wH/AAEA//7//v/9/f0BAQH9/f3///8A/v/9//z/AQEDAgL+//3//v///wIA/wAAAQAA/v8BAQEA///9//7///8DAgT///3+/v8BAgP9/f38/Pv6+vj8/Pz+/Pv9/Pv29PT5+Pf8+/r49/j49vT39vb9/fwBAP/29ff3+PUDAgP8/fwDAgIJCAn4+vIDAgIDBAT8+/38/P0EBQfy8vIHCAgNDxAVFRYMDg8ICQoHCggHBgkDBQQBAQIBAAEAAP//AAAAAAH/AAAB//8CAf/+/v8BAgABAAD///8BAAD+//4A/wEBAQEB/wD/AP7+/wABAf8AAQIAAf8BAAECAgP/AQD//v7+//7///7+/v39//0A/f8DAwMAAAH/AP////8BAQH///8A/gEAAAAA////Af///gABAAD/AAAA/wEBAf//AQEA/wAAAf8A/wABAAD+AAD+//8AAP8AAAAB/wIAAAAAAQD//gAAAAAAAP8AAAAAAAAAAAAAAAABAQABAQEAAAEAAAD/AAAB//8AAAD//v//AP//AAAA/wAAAAAA/wAAAAAAAP4A/wH///7//wAA/wD/AP////8AAP8AAAH///8AAQAA//8A////AP8AAAD//v7/AAD+//8A/v8AAQD//wD+/v//AP4A/////////gAAAAACAgIAAAABAAAA/wAA//8AAAAA/v4AAQEB/wH///7///7//wD///8AAP8AAAH+//////0AAAEEBAUGAgQEEBMV9/j6AP78Cwvz+/v7CgsL7/n2////+vn5AgIDAwMD+/v7/f3/+fr4CQgI/wD//f38/f38/v79////BPsE//7/BAUEBAUH//7+AwUEAwQF/Pv8BQcHAwP8AwMB/wYG/v39/Pz6AvoB/gQA/f/+AAECAwMF///+/Pr6BQYG/Pz8AP8A/v4A/Pv6AQECAQIB+vv6AP8AAP//AQEA/wD/AAAF/P77AgMCAgEDAAMCAgIB/f7///r6BQQF/gAAAQL+AAH9AQAA/f7//Pv7/f38BQUGAgEB/wD/AQAB/f39AP8AAQICAgECAAEC/v/+AP/+/QD///7/AQAB/v7+///+AQICAP7+AAAAAAEA/v3+AAAAAQYC/fv/+/v7AwMD/f399fTz/Pv5/Pv6Af8A8vDv8O7s+Pb1+Pj4+/j4/Pz7+ff5AAAB+vv6AQEACwsK/f7+AgEDCAcH/v////8AAAAA+/r79vj5+/v9/v71B/X0CAkI/fv5+/j2CgsMDRAQEhMV/Qz+BgcHBQUGAgICAAEBAAACAwMCAAEB//8A/v7+AgEBAP8A/v3/AAH/AQEBAP8BAQEA/wD/AAAA/wABAAEAAQAA/wAAAf8AAAMBAAEAAP//////AAD//wAA////AP8B/wEA/f//BAIDAgIDAAABAP///wEBAP//AAAA//7//wD+AAABAQAA/wABAQH/AP8A/gAAAAAAAQEAAAAA/wAAAgEBAAAA//8AAAD//wD9AQABAQAB//8AAAD/AQAA/wAAAAAAAQEBAAEAAAAB////////AAEAAQAB/wEAAP///wAAAAAA/wAAAQAAAAAAAP///wD//wAAAP8B////AAD//wAA////AAEBAP/////+/wD/Af8A////////////AP//AAEB/////////v//Av8A/////////v/+AAD///7//wAAAQEA/v7/AQAA/wECAgEAAf8B/wD/AAIAAQAA/gD+AQAA//4A/v79//79AAEBAAEBAP/9/wABAAABBAQDBAECAgwNDhIS+Pf39hASFfv6+AEA/wQCA/0DAvz8+wAA+wMEBP79/gUEBfv8+wX9BQAA///+/vj39wABAf///voA+vn8+wICAgsOEAYFBf749gkKCvb39wX5CAcJCAEA//////39/fv6+v///wT+BQECAwAAAQMD/QECAv39/QECAgAA//39/P8AAPv8/AAB+gYGBv38/gMDAvz9/QABAAH/AgD/AQECAfz8/AMD/wABBAEAAAIAAP/+//v8/AP+/gD///z8AgABAf///v39/f3+/f79/gMDAwAAAAIBAv7+//7+/gL+/v4CAwIB/v7+/gEBAf/9/QACAf7//gIBAPz8/f7+/QEAAP///v//////AP8AAP39/fz7+v39/Pz7+/X19P37+fr4+fj49/v6+vXy8vXz8vn5+Pz7+wD//v7/APn6+gAAAP8A/wYFBvf4+fj5+f//APP09f7+/vn6+gkICvn5+Pr8/QAAAAQCAv39/f3++wUFA/r5+Onn5g0QEPTz8xYYGQwODwkKDAMFBgQEBQMC//7//gH/AP8AAAEAAP3/AQH+/f///wABAQICAwAA/wAAAQD//gABAAABAQEAAAABAgEBAQICAgEBAQAA//8AAQEBAv8AAAAA/wAAAgECAAIBAQIBAQICAwECAQEBAQAAAP///////v///////v7//gD/AAAAAAMCAf8AAv///////wABAAEBAgEBAQIBAQAAAQD/AAD//wAA/wAAAQECAQAAAAEAAP8AAP7//////wIBAv8AAAEAAP8A/wAAAAEAAQAAAP8AAAD/AAAAAAAAAP//AAEBAAAAAP//AAAAAP//Af///v///wEBAP/+//8AAAAAAAH//v4A/wAAAAAA/////v//AP///wAA////AAD/AAD///7//gAA//4A//7+/gD/AP7//v///////wAAAAABAAEA/wEAAQICAP8CAQAAAAEAAf8AAgD//v8AAAEBAf8AAP/+/v3+/P39/gEBAQABAf7//wD/AAQDAgMAAQELCQr9EBEGBgcIBwn18/L6+vb+/v7v7esGBQb3+fgA/P3+/v4CAgMEAwT7/PsCAgH/AAD7/PsBAQP//v3///76+voCAQIDBgUAAAn39/f+/v74+fn2//YO/g4A/f0DAQH8/f38/PwAAQD/////AAEA//8EBQYBAQEBAgH8+/sGBwj+/f38/f3+/v75+fgBAQAAAAD9/fz//wD///4CAwMCAQIEAQT+/v/8//z///8CAAEAAAACAgH+/gD+/f4BAQH//P0CAwIAAQH+/v4BAQEAAP78//4BAAH8//8DAwIA//79/v8B/v7+AAEAAQAA////AAAAAAD///79/v4AAP7+/v4A//8AAP8A/wD/AAAA/wD39PP7+/r39vX29vYGBQPz8vDy7/H08/P9/fz5+Pf9/Pz//v/+/v7+//0AAAL6+/oDAwMGBgbw8fL+/v719vf+/wD/AAD8+/sAAQIFA/b9/f7+//4BAAECAQACAgEGBwT09PUDAgMGBgX7+/v29fb29fUYGRoQExQJCwwCCgz//wMD/wIBAQABAAEAAQEAAf8AAAAAAQEBAQH/AP8B/wAA//4AAAD/AAAA//4AAQL/AQAAAQD+AP8CAAD//wAAAQD//wD+/wAAAQIDBAX//v4BAgECAQL/AQABAQL/AAABAP8BAAD/AQD//v///////v////8AAAD//gD/AP0BAAAAAAABAgECAP//AgD/AAIBAgIBAgH/AAAA//8AAQD+/v4BAQEAAAD//wD/////AAD+AP8BAf8B/wL/AP8AAAD/AP8AAAEBAAEBAQD+/v8AAP8BAQH//wEAAAAAAAAA/wH///3///8AAAD//gD////+//8AAQAA//////8BAQH///4AAf///wAA//8AAAAA////AP7//v7+AP8A/v//AP///v7///4AAAEAAAD//f0AAQAAAQEAAQABAAEA/wD//wMBAAD/AP//AP8AAP///f3/AgMBAQH+///6+vv9/PsAAAAA///9//4A/wEEAwIC/f7+BQUFBgYIBAQG/Qv8////APUADAAB9fX1DgIE++zrAAABAAEA+fr7CQgI8/TyCAcHAwID/v4ABAP//wEA+/v9AQIB9/f2BfTyBQQF+fj3/fz7AgID+vr5AgAA///+BQYE+/z+/Pv8/v8ACgoE+vr5/v3+CQsC/Pz9AwQDAQAB/wAABAQF/v79/P38AgEB9fX1BgUF/f79AgEB/v8CA////AICAQECAQIBAP/+AP7+/f///v7/AQIAAwME//8A+fn/AwQC/P3/AwID/fz9///9/QIDAQEBAQEBAQEA/f0AAAAAAAH/AwEE/f79AQICAAAA///+AAAA//7//gD+AP//AAD+AP8A/wAAAf8B/wD/AP/+/wD+/f38/v79/v388fby9/T19PPx8PDx+vj4/////f79AwIDAwMD+vv7/v7+//8A/Pz+8/P29fb2/wEB/////gABAP8A/wAB+/v6/AME/f3+///9AwIDBAMDAP79+fr69PX2BgQEEhAR9PPz8fHy8O7v7+7tHR8gGRwdAwIDBQcIAgIFAf8A/wD/AAABAQECAAABAQEB/wD/Af8B/wD///8AAAD/AP8AAQEBAQEBAAAB///+AP8C/gL///8BAQAA//8AAQEAAAACAAH/AAAAAQAA/wAAAf8A/wD//wAA/wD/AAD/AP7//////v3+AP///wD/AQD//f////7+AAH/AAABAv4C/wEBAP8CAQD+Af4CAQIBAQEBAQEBAP8AAAEAAAAA//7/AAEAAQEBAAD/AQAA//4A/gD+AP8AAAABAQEAAQEB/wD///4A/wD/Af8A/wAAAAAA/wD/AAAAAP/+/////wAAAP/+//8A///////+AP4A/wAAAAAA////AAD+//8AAf///wD/AQAB/v7+AAD//f79//7+////AAD//v//AP//AAAA//8AAAAAAf8BAgIB////AAEB//8AAP3+AAIBAAD/AQD//v8A/v//Av/+AgECAP8A/fz7+vr5//39/P39//7+////BP7//gAAAAEAAQICAQEBAgUFCRMTFP7+/ggJCvHx8voC9wsNDvX19AgECfHw8AcGBv////7/AP8BAf////z9/QAAAP8A/wD+APv7+/X09Q0MDf39/P38/AUFBfr5+gD/8/39/QMEA/7+APz7/fn4+AICAfv9/vn5+AQGBgEBAfn4+AQDA/7+/QgI//v6+f39+/4BAv79/f7+/QMCAgADAwL///z+/gD8/AEAAAMDBAEBAP3//f/+//7+/gIAAv39+AEAAv4A/wX9BAD/AP0DAv7+//z8+wMDAwMDAwAAAAABAQQDA/7+/gICAv4D/QAAAP7+/gEBAQEBAQICAQADAf8A/wEA//7+/v/9/f8AAP8A/wL+/vv7+vz6+PDt6/Tz8e/t7fb39/n39/v7+/r6+/r6+vv5+f8BAAsKCwQCAv3+/fb19wIDA//+APX39/r6+wcJCPz9/gEBAv3+/wAAAP/+AfwA/f3+/gEAAQH/APv9/gIC/wEBAQD/AP3+APDx8QD//gMEBAYGBvz8+vz7+//+/v//AQ0PEQgA/wMDBAEBAAEAAgL//gABAv///wEBAQABAAD/AAEBAP//AP//AP8A/v//AAL//wIBAv8A/wAAAgAAAP7//wD/AP8A/wAA///+//8AAAD/AAAA/wEAAf8B///+/////wAAAP7+/gD+/v7////+/v7//f///////wEA/gABAgEB//3///4BAgL//wEBAQIBAAABAgEBAQAAAAEBAQAAAP//AP4A/wD/AP///wAAAAEAAAAA//8AAAEBAgEA////AAD+/gABAQD//wAAAAABAP///v//AAAAAAD//v7//gAAAAAA//////7+/wAAAf/+//8B/wD/AAEBAQAAAP///wD//wABAAABAP7+/v///v/////+/v39/QD///7/AAEB/wEAAf///wAAAQAA//8AAP/9AAECAf///////gEAAAAAAQIAAf8A/gAAAAAAAP///wACAAIEAgMDBP/+9vn4+Pz8+/7+/fz7+wT+/v8AAP8AAQMGBgb///4DAwQCAgAO+g/9/v4NDxD39gUGCAj85uUCAAH3+PkJCgkEBAb9/P0A//8CAgMBAAD9/v4A/wEAAAH/AP/7+vr6+vr//////v/9/PwAAAD29/cAAAH18/QCAgP7/Pv///8DBAMEBQf39/cDBQYMDQ3+/v/y9fIHBwYA//77+/v9/PsBAQEBAgH9/f0B/wAHCQgAAQUB/v79/wD7/////v8BAgEAAP8A/wABAQL5+fkBAP8AAAEFBQX49/YDAwQA+/8CAQL///76/fsEAwMFBwcFBAQGBgYAAP////8BAQEAAQICAgEBAQEBAAD/AP8A/wD/AP/8/Pz8/Pv+/f39/f78+/r49/bw7e7p6Ob59vf6+/ny8fLy8/QEBAP+/v/8/PwBAQH19fj+//0AAAL9/v/7+/37/P0A/f36+vz5+vsBAQL6+/0A/wAAAf79/f7///8CAgL+/gAB/wIAAQL9/v4CAgACAAMAAP8AAQECAwT9//4A/v8C///7+vnz8v79/Pz+/fz///8ZHgAAAhIIBwACAwQCAf///gH/Af0AAAEBAQEAAP4A////AQD//v0BAQEBAQIB//8BAAQAAAEAAAAA/////wD//wD/////AP8A////AAABAQEAAQAA/wEAAv/+/gD///7///8AAP7//wD+/////v/////+//8A/v4AAAD+AAABAP4AAAEBAAAAAf/+/v8BAQL/Af4BAAAA//8CAgL/AQEBAgIA//4A//8AAAAAAAAAAP////8AAAAAAAAA//7/AQEAAP8A/wEBAQEAAAEAAP////8AAAD/AP8B/wD+/v7/AP//////AP///v8AAP8AAAH/AQAA//8AAQEAAP///v//AAAAAAD+//8C/wD+///////+/v3+/f3+/f0AAAH///8BAgEAAP///v4AAAABAQL/AP78/f8DAwIBAgIAAQH+/wAC/wL+AP////8BAQABAQAA/wD+//4CAQMFBQYCAgP8/Pv8+/r6+fn8/f0E/wD/AAAAAQD/AgMC//4BAQEABAUFCwwM/v3+CwwOCAkI/Pr6+vj69PTyBwcH+vr7CwsK9vb1//4AAwIEAwQD/vj4AQEDAQAB/wD+/f3++fn5//7//v/9/P4A/wD+//79+vr5/Pv6/v7//f39/wD/9vX0CwwB+/r59vT0CQkKAP//AQEA9PX0AP8A/f37/wD/AAABAwQDAf8B+/r6BAMCAgED/v79+/36/AMDBgYFAwQEAP//AQEBAgMDAP///wAB///+AAEBAgIEAQD/AQEBAgIBAwEEBAQDAwUEBwcHBQUGAQEBAQAA/wD/AQEBAAAA/v39/v7+/v7+//7//wD++/z7+ff4+vn4+Pn5/Pv59PLx6ejp8O/v8vHy/v3+BgYH8/T27vDx/wD/AP8BAAAA+/r6///+BQQF+Pj6AgMD+fv7/P7+/Pz9/f7+/f7+AQEB/Pn7AAEBBQUF//8A/Pv+BgYDAwUEAQAA//8B/v79/v79/AH+AP7/AwIB+gD8//79AgAAAP/7AAEA/f39/Pv79vf1/P38BgkKCAoLAwMDBQABAf8C/QH/AQEAAgEB/wAB////AP8AAQICAQECAQEBAgEDAQEB//8AAP//AQAB/v//AQABAAD/AAAAAQAB/wAAAQEBAQAAAQEB/wD//v8A/wD/AAAAAAAAAAABAAH/AQEB/wEAAgEBAf4C/gEA/v79/wD/AP//AQID/gD/Av//AP//AQABAAEAAP7+/f4A/gL/AwMDAAD/AQEAAP8A/////wD/AAAA//8AAQEAAAAA/wAAAP/+AQAA//8BAAEAAgICAQAA/wAAAAAAAAAA/wAAAAEAAP7/AAD/AP/+AP8AAAH/AAAAAQAAAAEB/wD///4BAAAAAQD//v//AAD//v///wD////+/v39/v78////AAABAAAA/v7///7+AP8A/wAAAgL//f7/AAD+/wADAwICAgABAAD+/f79AQECAP7+AQAAAgMC/v/+Av4CAQEBAQMDBQcJBgf6+vn5/v/+AwMDBAEAAf8A/wAAAAAAAAABAAABAQICAwkKCvz7+w0NDv/9/f39/P39/wcHCPb19vb29AkKCvn5+v7+/wQFBQYFBf37/AAAAQIEA/79/P////n5+gUFBP7+/wD+/QECAQMDAvv7+vr6+gICAvf49wIAAgEA9QUFBv79+/X19A4PEPz+/ggHB/38/Pb29f7+/AEBAQUFBQUEBAICAgQICAgHCgEDA/0AAPv5+vn5+Pn6BQwMCgQEBQYGBwIDAgUEBQABAP8AAAIBAf7+/gICAwcFBQEBAQABAAECAQUFBAIDAgICAgD///8AAAIAAQAAAP///wMDAvz9+/z8/P/+/vr7+vv4+PX19fX18/Lx8vTz8ezr6+3t7vf2+Pv8/fv6+wQGBfn6+/39//n7+wD///7+/f39/gIAAP//AP8BAfb4+P7+/vz8/AEBAv7//gEBAv39/P7+AAMEBP////39/QMEAwEDAwD/AAAAAQQDBPj8/P7+/gAAAf/+/gMCBAAAAP4AAAIBAv8BAQAA//7/Afz+/gH8/evp6enm5BQWFwUFBQEA//8CAwECAgIBAf8BAgECAgAAAAAAAAH/AAEBAgAAAf/+AAECAQAAAQD+AP4A/gAAAQABAP//AAAA/wABAAEBAQEBAf//AAAAAAICAv8A/wEAAQD/AP///wD///4B/wAB/gEA/wAA/wD///////7+/f8A/gMDA/8A/wD////+AAAAAf3//gIAAQEAAAECAwIBAAAAAP8A/wD/AP8A//8BAAAAAQEAAAEA/wABAf///////v//AAEBAP///gEAAf/+AP8BAQEBAP8AAAEAAAD////+//7+///+/v4A/gAAAAD/AAAAAAEBAP8A/wEAAP8A/wD/AP8A//7+/gEAAAAA//4A/v/+/v///v///v//AAH//wEBAP3///79/v///wAAAAAAA/////7//wAB/wD9/f8C/gD/AAEAAP8B/v79/v///wYBBQEBAf8AAP////8BAQIEBgYICQL39v75+QH//gT+/v3/AQAB/wECAgL8/P3//wADAgACBQQBAAALDAv++/wBAQL5+fkAAP8YGhvr6ugEBAYFBQcAAP8A/woAAf8ICwr+/P0BAwPz8/MGBQUBAAECAgQEAwT7/PsAAAEBAQIBAP76+foCAwH29fYFBQUJCgkCAgAGBgb19PX18/IOEA////8ODg35+fn8+wL5+vgJCQwLCgwEBAUIBwcGBQYAAgIDAgL9/fz6+/sBAAAGBwYGBggEBAMCAgMDAwMCAwIAAAABAQEAAAD///8DAgMAAAD9/PwAAP8DAwIAAP/+//4CAQH//v7///8AAAD+//79/f0A/v4AAP/6+vj19PX39fT29fXr7Ovo5ubl5eUBAQH39/n3+Pn//wH////+9vf/AQEAAQH+/v8A//7//v4FBQQBAAH+///3+PkFBAMAAAD9/f79/foBAgIDAwYAAAEDBAMJCQn8/PwCAQICAgP9/P3+AQH9/P0FBf4CAgIAAAL8/P0BAP8AAAD9/f4AAP8AAQD8/v8EAQD9/v7/AAL///wA9fXq5eQbHiAFBgcBAQkABQEEAAH+/v8BAgAB/gABAQEBAQH+//8B/wABAQABAgL//////v//AAAAAQACAgL/AP8BAAEAAQABAAEA/wD+//4BAQEAAAEAAAAA/wAAAP8AAAAAAQAAAQACAAL//wD//v39/Pz9/f3+/fz+/v3///4B/wAAAf7/AAEEAgH/AP8BAQH//gIBAgEBAQD/AP////4A/gEAAgIAAAD///////8AAAAB/wAAAf///wAAAP8AAAD/AAAAAAD////9//0BAgIB/wH/AP8BAAABAQAAAAD/AAD/AQAA/gEAAP7/AAAAAP///wAAAAD/AQEA/wAAAAD+/v3/////////AAD///3///8AAAD//wD///7/AAEA/wD//v7/AP7//v8AAQH+/v7/AAABAAAAAAABAAD+/f4AAAD//wAB//38/f3+/f8A//8DBAQBAQEA/wEA/gH+/f/8/v4AAQL/AAL8/PsEAAEAAP///v7+AgIC/f38AQIEAQEDAAEBAQEBBQUF/AD/BAQFDA4N/v/8//4SAP///v399ALzDRITDA0M7e3s9/b2AgME//8AAP8BBQYEAgECAwMCBQUF//j4CQgIAQD//P3+/Pz7Dg0P/v8ABAMEBQUGCgoLDQ0N9/b4/wACDQsMBQUFBgYFAAEB/P38AAAAAwIBDQ0NBAQGBwYF//4AAQIDAQD/AQIB/v8AAgICAwICAAD/AQEDAQEAAQICAAEAAQECAQABAQAA/v7+AAD/////BAQH//79/f/+AP//Af8AAAD//v39/Pz8AgIC+vr5/f78/f3++fb3+fn39vT07+7u5eTk4+Pk9PT09/f3AgIEAQME+/3//Pz8BQUF/P4AAwMBAQEC/v78AQH/BAQEBAUEAwID+/v7/vv8AAEB/v7//f39/P3+Af3//v/7AgEDBgQFAwMD+/v6AgMDAgIBBQYH+vr8BQUC/P38BQQF//8AAwMD///9+fr6AgIBBAMC/f7+AgD/AggHAQD//f3+/v7+//397u3u5uPjCAkLBQUFAwME/wH+AQEC/v7+AAD+AQEBAQABAQIDAAABAgIB//7/AAABAAAAAgEBAAAB/v7+AAAAAQICAP7//wAAAAAAAP8AAAH/AgECAAAAAAD/AAH///7/AAABAAEBAAAA/v/+/v79/f39/vz9///+//7+AAEB//8AAQAAAgEA////AAEB/////gD+AP8B/v3/Av4C/wP/AQECAf8AAQEAAP////7+AP///QD/AgECAQIBAP8A/wAA//7/AQAAAAEBAQEBAf8AAAEAAP8A/v/+AAABAQEAAgAA/gAB/////wEBAAAA///+AAEBAQAAAP8AAQAA/f7+///+/v7+AP8AAAEA/////v79AAAA/v////7//v//AQEB//3+AAAB/wD/////Af8AAAEAAAAAAAAA/////v79AP8AAAAB/f/+/f3+/vz89/78CAYIAAIBAgECAAEBAgMBBAUGCQkK9/X2/P/7BP/9/f8AAQEB/wEBAP7+/gD/AAAAAAH/AAEBAgICAQQEBQICAwgHCP4NDgUFBQUFBQUFBAwNDQAB/w0MDAkKDPr4+AcJCfv6++/w7wUFBf79/AIDA/7+/h4ODgUEAwQFBP38/Pj4+AkJCRr9/gkICQMEBAUFBgoLCwkJCPz8/QYGCAICAQQGBgIBAQAAAAICAf7+/gIBAgcIBwEAAgAA/wAAAQD//wECAgECAwICAAD/AAABAAABAgD//wEBAQAAAP///wEAAv4A/gIBAf79/QD//wAA/wEBAQH+/v7+/gD//wACAf/+/gD///38+/39/Pn5+P/9/ff29Pb09Ozr6+fm5+Pj4/Lz8/z8/fr6/f4A/QEC/gYGCPz89wABAwgHBgMEAwEBAgH/AAICAgIDAAgHBvv6+/39/v8AAP39/vr6+vz8/P7+/wYFBQD/AAEDAf7+/Pf39gICAv7+/vv9/QH8AQQDBP///wH+/QIDA/37+QQEAwEBA/79+/7+APv++wMCAgQEA/3+/QUFBAUDAvz7/P3+/Pz9+/Lu7fPx7woLCgIBAv8EBAMCAv8AAAECAgAAAAEAAAD9/gABAQICAwICAgEBAQABAf///wEBAQAAAQICAP78/gEBAQABAf8A/wD/AAEAAP3//QD//////wAAAAAA//8AAAEBAAEAAv7//f79/v39/f///gH//wEBAQAAAQAAAP///wABAAD//wD//wEBAQAAAP7/AAH/AP8D//z8/QIC/wEC/gEAAQEBAgAAAAABAQH/AAAAAf/+/////wD/AP8A/wACAgIAAQD/AP4A/wH///////7//gEAAP8AAf///v7+AAAAAf/+/wEB/wD/Af/+/wAA//8AAP////7+/v8A/wH//v7//wAAAP///v39/v///v7+/f/+/gEBAf/+AQAAAP7//v///wAAAAAA/wAAAf7//wL//////wAAAf7//gD///////38/P/9/QD9//0DBAH+Av8C/wECAgEBAgQEBQAJCwsO+/3w/QT9+/wBAQL/A//9/wD+/PwABAQAAP/+/wAAAP8DAgMCAAEBAwMGBwb/AP8IBwcLCwv9/f4EBAQFBQQICAgQEBD8/v0BAQH7+vwWGBf9/v4EAwT//wAHBwYEBgQBAQIHBgUAAAD+/v75+PgFBgYDAwMFBQcCAgECAgMHBgUBAQIBAQH//wADBAMAAAAAAAABAQD///8BAQICAgL//wABAAD///8AAQECAQEBAgIA//8BBAIA/wD/AAABAAD/AAABAQD//wEA/wABAAECAP7//v39//4BAAD//v7///7+/v0BAQIBAAACAgH+/QD9/Pz8+vn7+Pf39fXv7u3s6+zo5+fn5+jy9vUA/wH7/Pz/AgH8+/7//PsDBAQODw///v8AAQIHBgYFBQQCAAD///wKCwkBAQH8/P37/f0A/v/9/f36+vkAAAECAQMAAQH9/f39/f0ICAgGCQUBAQH6+/wFAQMFBAQBAgIA/wEBAQH/AP8AAAAA/wEJCQcAAAf29vX//wD/AQEAAQL7+/wAAf8FAwQAAP//AAD5+fnr6ugHCQgGBQYCFgEHCAr/BAMBAQIA/v4AAQEBAAD/AP4CAQL//////wMCAgIBAQEAAQEAAQAAAAD+/gAAAAD//wAAAf//AP8A/v8AAP8AAP4AAAAAAAD/AP/+/f7//v4CAgIBAAD+AP/+/v4A/v7+/fwAAP8AAQECAQEAAQEBAAEA/v//Af8BAQH+//8CAAAA/wAAAQD9/v4CAQD+/gAB/wECAQL/Af0BAAEAAQABAAH//v4AAP8AAAAAAAEBAAH//v7+Af///wABAQAA/wAA/wD/AP/+//8AAAAAAAAA////AAAA///9//8AAP7//v8AAAABAQD//gAAAQEBAP///wD///8AAf////////7///7///8AAAAAAAEAAQD9/v7//////wAA///9AgICAAD//v79AAEB//8BAQECAQL9//3//wD/AP/+//4CAf/+/v4BAgAA/P0CAwQAAQEBAQD/AAAEBQQFBQYE/Pz6AQACA/8EAwP///7//Pz7BgcG/wD/AgICAgQE/vz8AP//BQUGAQEBAAD/AP///P38CQgIAgICBQUE+vr4AgIB//8B+vv7//////7/BAUF/f7+BgYFAwMCAgICAwICAgICAAAA/f39AQEBAQEBAwICAAABAQIBAgECAgICAP8AAAEAAQEB////AAD/AAABAAABAgEB/wD/AAAAAP//AgMCAAABAQIBAP8A/wAAAP3+AQICAAD//gAB//7+AQEBAQEAAAEB//z+/f38+vr5/Pz7AQAAAQIAAP7/AP///P35AAEBAQEB/P39/Pz79vTy7erp9/b27e7v4+Hi7e7u9ff3+vr8AAAC/wEBAwMEBwkI9PP1/P39EgwOAQEB9vX0DA0L9fX2BggHAwEGBQUDAgID9PX0//7+AAAA/Pz9/v3+AwMEBwgH/v7//P36BAIDAwMDAgECAAEBBwYIBwgJ/////P38CQkJ8/P0AwIEHBwX+/v59fXy+fn3AAEAAQAB//7//Pv7BAUCCAcJBAQD9fX1/v8A9vb3/PzpCgsLHiAiAAACAAAB/f3/AAH8AQEBAgICAAABAAEAAAEA/v/+//3///8DAgICAgICAP7/AQEC/wEA//8A///9AAECAQD////+AP/+////AAD/AAABAAAA/f38/v79Av4DAQEC/wD///7+//7/AAAAAAAAAf///wD+/v8BAgECAgICAP////8AAP///gH/AQABAAICAP///f8AAQIAAgIB/gAAAf8B/gD/AgECAAD////+/v7/AQEAAQICAP///wD//wAA//8AAP4BAP//////////AQEBAAD/AAAA/wEAAf8B/////wD/AAAA//8AAQEAAP8AAAEA///+AP//AQAAAAAA/v7////////+/f7+AP//AP8A///9//8AAQEB//////7/AAIAAQEAAwME/wD8///+//0B/wD+BQMF/////v79/f38/fz8AwQCA/79AQD+//8AAQEBAQEE/v7/+/v5//7/BwcHBAH///4A/QD+AQAAAQD//v39/f/+AP8A/wAAAAIBAQIEBPz8/P7//gUGBP//AAAA/wYABvsE+v8AAAMCAggDCgEBAAICBAf9/Pz8/AD/AAMFBQD/AAMDAwIDAQD//wEBAQECAQD/AAYGBv7//wEAAQAAAAEBAAEAAf///wABAQICAP7/AAAAAAEBAP8AAQAAAQEBAAAAAAD/AAICAf//AAEAAQABAQD/AP8A/wAAAP3//wL+/QAAAv///gACAQAAAP/////+/v7+/P///QEB///+/AECAv78/fv7+wAA//////z8/QICAf/+/fb19O3s6+bl5fr6++3s7vDy8v7+/wQEBP7/Af8AAfz9//7+//7+/g8PDvn5+vr4+AwNDf39/gD/APTz8woJBwgKCAICAQQEA//+/wEBAQICAvv6+wQEBAUFBgUFBP39/wL6AwMEBQ0ODvz9/Q8PDw8QEQQEBfT19P79/vn5+RQVFQIBA/f39+7u7gD//QAAAP79/QEAAAIBAf8AAgEBAQABAPr6+QAAAP39/f7//wICAQYHBQD//gD///3+/gECAQH/AP8BAAAA/gIBAgEBAQAA/wAAAQABAf8A//7//v/9//8A/wEAAf8A/wAAAAD//wICAgAAANPgIFgAAAEkSURBVP8AAAAA/gH/////AP8A/f////8AAQD/A/7//wEB/gEBAAAAAP8A/wAAAf////4A/wH/AAAA//8B//8AAAD///8AAP///v8BAAH/AQD+AgEBAQH/AAH////+Af8A/QMCAgABAQAB/wAAAAAAAAABAAD////+/gABAP///wD/AAEAAf///v//AP///wAAAP7//wEAAAAA///+AP8A//8A/wEAAAEBAQAB/wAAAP3+/gAAAP///gAA/wAAAAAA/wD/AAH/AAAAAf/+/////gD/AP//AAAA/wECAv///wABAAEAAf//AAABAAMCAv7+/////v//APn6+v7//v7+/vv7+//+/gH9APwB/AABAQICAf0BAQECAP///v/+/wMEA///BVHLdv5Qlz5SAAAAAElFTkSuQmCC\\n\",\n      \"text/plain\": [\n       \"<IPython.core.display.Image object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"for _ in range(2):\\n\",\n    \"    start = time.time()\\n\",\n    \"    response = openai.Image.create(\\n\",\n    \"        prompt=prompt,\\n\",\n    \"        response_format='b64_json'\\n\",\n    \"    )\\n\",\n    \"    print('Time elapsed:', round(time.time() - start, 3))\\n\",\n    \"    base64_data = response['data'][0]['b64_json']\\n\",\n    \"    \\n\",\n    \"    display.display(display.Image(b64decode(base64_data)))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"2a0152a1\",\n   \"metadata\": {},\n   \"source\": [\n    \"### maximum: temperature=2.0\\n\",\n    \"\\n\",\n    \"When temperature is at its maximum value of 2, it will skip searching cache and send request to OpenAI directly.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 4,\n   \"id\": \"18301cae\",\n   \"metadata\": {\n    \"scrolled\": true\n   },\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Time elapsed: 5.663\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAaGVYSWZNTQAqAAAACAACknwAAgAAACkAAAAmkoYAAgAAABgAAABQAAAAAE9wZW5BSS0tNTRkNmFiODVhMThiZTdjZTE5YWE4ZWQ5ZTVhOTFmMjIAAE1hZGUgd2l0aCBPcGVuQUkgREFMTC1FAHKzUHkAAQAASURBVHgBACuB1H4Bvb2yAAICAf8A/wAAAAAAAQAAAQABAAEBAAAAAAD/AAAAAAABAAAAAAAA/wAAAQABAAAA/wAAAAAAAAD//v7///79/f36/Pz3/Pr2+/n0+/j2+Pfz9vTw/Pr2AP//BQcGCQsM/wEA/v//AAABAQAAAQECAgIEAQACAAAC/wAAAP/+BAMCAgMBAgECAgIBAgICBQUGBAQFAgQEBAQHBQcKBwgLAwUJBQYKAQAGAAECAQEEAQED/v7//P7+/v79/P3+/f39/Pz8/Pz8/f39/v38/v7+/v/+//3+/gH+AP//AAH///7+AAAAAAEAAAAAAP8AAAD/AAAA/wD/AP//AQEB/wAAAAD/AAAAAP8A/wD/AAAAAQABAAAAAAAAAAD//wAAAP8AAQAAAAD/////AP7+AAD+AQD/AAD/AP8AAAD/AAAAAAAB/wD/Af7//wEB//7/AAEA//8A/wAAAAEB////AAAB/v8CAAAB/gAB/v///v7///8B/wEB/wABAAAAAAECAAICAAECAgMCAQECAQMCAwQFBQUFBgYHCAYHBwYHCAYGBgcHBgYFBQMFAgQDBAIDAQIBAgIBAgACAAEAAQAA/wAA//8B/v7+/P39/Pv6+fv8+vv7+fr6+vv7+vv5+/v7/Pv8/v79///+//7+AP/+///+AP/+AAD+Af//////AAD/AQD+////AP/+AP/////+Af//AAD/AP/+/////wD+/v7+///+//7+/v7//v79/f39/v79/v79/f39/v7+/f79/fz9/f79/v3+/f39+vr8/Pz8/Pz8/Pz8/Pv8/f39/P39/f39AQAEAAEDAwMDBgYFGBgWGhkXFhUSCAT+Afz3/fv1/Pz4/f78AAD/AQEE/wAD/wAEAAEFAP8C/wABAAEBAAAAAAAAAAACAP//AAEB//7+AAD//v7+AP8BAP////7+AP/+AP/+/wD9AP/+AP7////9/fz7/vz7//37/v37APv6AP36//39//78//76AAH8/wQEBQwQ+wMN8Pb/6+/4BP8AAAD//gAAAQAAAQAAAP//Af8BAAD//wAAAAABAAH/AAAA//8AAAD/AP///wAAAAAAAP8AAP///wD/AP8A///+/v79AAD+Af7///3+/vz+/P79/AEA/gICAgEAAQMDA/z9+wACAQEBAgL//wABAQIB/wH//f8A/wMCAgEBAgABBAEAAP/9/v8D//7+AQH/Af4A//0AAP7+/v7++f3+/Pv69AMGBgUFCQUECAMECAEBAwAABQABBf7/AP3+AP39/vz8/fr7/fz9+/38/P39/P/+/v7///7+/v///v8A/wD///8A/wEA/wAAAAAAAAD///////8A/wAAAP8AAAAAAAAA/wAA//8AAAD//wAAAAEBAQAAAAH/AQEAAP8A/wEBAAAA/wEBAAAA/wD+/wEAAQH//gAB/wEA/wEAAQEBAAD/AAEBAAEAAQD/AQH//wAAAQD/AP8AAQAAAAD//wAAAAABAf4AAQABAv4AAgABAQAAAQAAAgABAgADAwABAQICAwACAwECAwECAwIEAwIDAgIEBAUFBgcHBggGBwkFBwkHCAcHBgUFBAQEAwMCAgICAgEBAQEAAQABAQD/////AP8A//7//v39/v7+/vsEAgQE+wMCAAEA/wAA//7//P3+/QH9AAD/AP///////v/+/v/+/f///P///QD//wD//wD//////f///gD//v/+/v///////v/+/f/+/v3//v/+/f79/v39/P/+/v3+/Pz7/Pz9/P39/f39/fv7/P7+/fz8+/z9/vz7/P38/Pv8/vz7+/j5+f38/fv7/Pz8+/z7/Pz8/P3+AAIDBQkJChAQDw0ODBEQDhMSDwgFAQH++/79+P79+v/+/QEAAf8BAgABAgAAAQAAAQABAAABAgEAAAEAAv8A/wD/AQICAf//Af7+/gEBAAAA/wEB/////gABAAAB/wEAAAAA/wD+///+//39/AD//QD//QD//v///gD+/f78/AH9/f/9/P///f///gAD/wIDAwACBPv9//T3+vDz9gT+/f8AAgEAAP8A//8AAAAAAAAAAAEA////AAEA//8AAAD/AAAAAP///v//AP8A//8AAAD+AP///v8AAAAA//7//v7+//3+/fv+/fz9/Pv8/Pr9/vsCAgH/AgMA//7//v0A/gICAQICAAABAQEAAAAA/v//AP8DAgEBAP8AAP0B/v4AAAICAgEB/wABAQQBAQT//wP//QP///8AAP7+/vz+BQIAAP7//fz9A/gFBQkCAwQBAAQAAAT/AAT7/P/6/f77/P77/P37/Pz8/Pv9/Pv+/v8A///+/v/+//7/////////AP0BAAH//wAA////AP7///////8AAAAAAQEA/wAAAAAAAP8AAQAAAQAB/wAAAQECAQECAQIAAQABAAABAgECAP4BAQABAAEBAAACAQEBAAAC/v4BAQABAQAA/wABAAEA/wABAAAA/wEAAQEA/wAAAQIAAAAAAP8AAAD/AQEA/wABAAAAAAADAQD/AgIBAAIBAgQBAgIAAQMAAgIAAgIBAQMAAgIBAwICAgMAAgQEAwQEAwUFBAYHBQYIBgYHBgUIBQYFBQMEBQQDAQMCAgEAAQEBAQABAAH/AP///wD////+///9Avz8/v0AAP/9//0D/QID+wEBAQAAAQD+/v79/f38+/r9/f3//v39/fv+/P3//vz+//3//v3//v7//v7+//3//v3+/v3///7+/v7//v39/v3+/fz9/f/9/fv+/Pz9/f39/P39/fz9/P37/Pz9/Pv8/f78+/v7/Pz8/P38/f36+vv8+/37/Pv8+/z6+vz8/f39/P78/fz8/P39/f3//gAGBgcVFQUREBEdHBsXGBYLCQYD//n9/Pj+/fn+/vwAAAACAgP+/wAAAQIBAQMCAQT/AAQA/wIAAAH//wH//vwAAP79/QEBAP8A/wAA//3///4CAAH+AP7+/wAAAQAA/v7///8A//4B//4AAP7//vz+/fwA//4CAf/+AAACAf8BAP/+//7///0AAP4AAAECBAX/AAP3+Pvz9Pft8PME+vr6/wABAAD/AP8A/wAAAP//AAAA/wAB/////wD/AP8A/wAAAP/+/v7////+///////+//7//v//AAD////+/v79/wD+Af/9AgD5/f38AP77AP/+/wEBAwQE//77AgEAAwD+Af8BAQH+BAIF/v7/AP8AAwMDAQIC/wD/AP/+AQACAQEBAQABAAACAgD/AP79/wIB//78/wEB/vwAAwMCAAED/gD/AP4AAP7+AP74BAQEBAQGAQH8/wADAgEBAf/8/fz7+/r9/f0A/Pv7+/v5/Pz8/v7+/v7+/f7+/v7+//7+/wAAAAAAAf8A/wD/AAAAAAAAAAD//wEAAAABAAAAAAAAAQECAAAAAAH/AgEAAQICAgADAwICAQEBAgICAgEB/wL/AgAAAQICAgEAAP8DAQH/AQABAQABAf//Af8AAQEBAP//AAEBAP8AAP//AAAB///+AQAB/wEBAQAAAQABAAEC/wECAAABAAIBAAABAQICAQICAAICAAACAAIB/wABAQIBAAEBAgACAQACAgECAwIDBgMEBgMEBgMFBQUGBgUFBgYEBQQEAwMDAgMBAgECAQABAQEAAAAB/////v7//wL+AP7///4BAf8A//7//v7//fz++/39+/z6+vn6+vn5+Pj3+fj3/Pz8/fz7/v39/v37/f38/f38/v/9//7+/v38/v38/f39/v79///9/v3+/f38/f39/Pz8/f39/Pz7/Pv8/fz7/Pz8/Pz8/Pv8+/v9/fz8+/z8/Pz9/Pz8/Pz+/Pz8+/v8+/z+/f39/f39/fz+/f7//f7////+AP//AAD/AgEAAwQEDQwMHBwaIR8dDwwHAf/3/fj2//33/v79AAEBAQECAAADAQEAAAEEAAAEAQEEAf8D/wEB//8AAAD/AgECAAAA/v/+/v//AP79AP//AP///v/9/wAAAP///v7+//3+AgEAAP7///7+AP7+AQD/Av/9/f37AP79AP77Af/+Af7+AQD+//39/wH9AAIDAAMH+/4D9fb37O7y6+7wBPP09QEAAP7//wD//wAA//8A////AP////////////7//v/+//7+/v/+//7+/v7//f7+///+//8A/wEAAP7+/v7//QAA/gYEAQcG/wP//P///QAB/QIBAAADAgD8AwEB/gD//wL/AAIAAgH/AAMBAwECAwEBAwEAAQEBAf8AAwIAAgEBAv8AAQEAAv/9/v8B/gIB/f4AAQH/AwEBAwAAAwD/A/79AQD/AAD//f/+/f/+/wD+/gMEBAECBAUEBAIDAQMDBQH///X8+f79+P38+/38+/n5+fr8/P79/P39/f7//v///wAAAQMCAgAAAAAAAAEBAAAAAf8BAQD/AAECAgEAAQACAAEBAgICAgEBAAMCAwMC////AwMCAgAAAQICAAD/AQABAAIAAQH/AQEBAAEAAwEB/wIAAQD/AAIBAAAAAAABAAAA/wABAAAAAf7//wEBAgAAAQEAAAABAQABAgAAAQEAAgABAQEAAgACAgECAv8AAP8AAAAB/gD/AQACAf7//wIBAP4A/wMAAAAAAAIBAwICAwUDBQcHBQgGBgUFBQMCAgIBAQEB/wD/AP///v////4AAAD/AP/+/v0A///+/v////z9/fr7+/j5+vj5+fn4+Pj29/b39vT19fb19fX39fr5+Pv7+/v7+/z8+/39+v38/P79/P79/P39/P7+/f38/Pz8/P39/P39/f78/Pz9/Pz8/fz9/fv7+/37+/z7/Pz9/Pz7/Pv8/Pz7/P79/vz9/f39/v38/f7+/vz9//38/v3+/v7+/v//AP7+/v//AP8A/wAAAf8AAAIBAAcGBQgICQ4PDh4eGh8dGhEOCgL/+vz6+P389/79/AEB//8AAgAAAQEAAgAAAgABBQAAAwEAA/8AAP///wEAAQABAQABAf///gD/AAD//wD//gH/Af8AAQAAAQIA/wACAAEAAf7+AAH+//79/P79/f/9+v///AD++gD9+/79+wD+/QH+/f4A/v///gEA/gAAAAIEA/8BAvb5/vL1+uvv8+/y9ATw7+////8AAAD+/v0AAP/+//0A/wH+/v3+/v////7+///+/f3+///+/v7//v79/v79/v7+/f4AAAADAwP9/f39/f0CAgAMCwcPDQcIBf4BAAEBAAH/AQEAAgEBAwIDAf8EAQECAQABAP4B/wMEBAQCAgT+/wAAAQEAAAMBAAIBAAABAQP//v7+/wACAgcCBAL//wD//gAAAQEAAAD////+/v8CAQH//wD9/P4CAwABAP37//39/fkEBgYC/wYDAwMKBwQHBAoMCwjv8ALu/O4AAP0DAgH+/Pv5+ff8/v39/v4A//4AAQMBAQICAQABAgIBAAEBAQD/AAEAAQECAQACAQMAAgIDAgL//gEDAwP+AAABAAAAAQACAAEA//8AAAIAAAEBAQEAAAEBAQABAAEAAAAAAAAAAAAAAAD+/wAAAf8AAAABAAAAAAAAAP8AAAH/AAAAAAAAAAABAAEAAAAAAAAAAAD/AQEAAAEAAAH+/v8BAwD///8AAAAAAQEAAAEBAAH/AAECAAEAAQACAgICAQEGBAMFBQQEAgMBAQAB///+/f77//3//AAB/wD+///+/v////7////+/v/+/v79/f7+/v38/f35+vr3+Pn2+Pf29/fz9PX09fTz9PPz9PT5+fj4+fj8+vr5+/j7+/r8/Pv8/Pv9/Pz9+/r+/f79/Pv8/fz8/P39/Pz8/fz+/f38+/v8/P38/f39/P3+/f39/f/9/f39/v3//v/8/v7+/f7+/v/////+/v4BAAH+/v//////AP/+AAAB/gD/Af8A/wD/AP8BAQIBAQEBAAIICAkZGxkeHBkmJCMWFREEAvz9+fX+/Pf///wAAf8AAAIB/wEAAAL/AQIBAAMAAAMBAQMAAAL///4BAAABAQAAAAEAAAEA/wABAP8AAQD/AQIAAQEA/gACAQEAAP0AAAABAP8CAQH/APwBAAACAQD+AP8A//3//vwA/voA/vv//f4B/v4A/v3///3/AP0CAgICAwf8AAP0+Pnu8vXw8/b7+vwE6uvr/wD////+//7+AAD////9/v8A//7+/v7//v7+/v/+/v3+/v///v7+/v7+/v79/f7+//7+//////8BAAD///8ABgcE//8MBwYCBgQEAwEEAQEBAQEAAgICAQH/Av78AP/7//8AAgEABQQBAgEA///+BAMFAQIEAgEFAQEDAAECAAAA/f38AAEBAgID/v8BAQMAAAD//gAAAAAAAP7//gD/AQL//v4CAAAC//3+AAD//wAA/v/8APv/AgL9AwAGBP//BQMGBAQECxkVBAUC7e3u/AP9AQEC///+//n4/P38/v/+/wD+AQECAQABAgIBAQEAAAICAAAAAQAA/wED/QH+AQIC/gEBAQID/v79AgID/gL+A/8AAP8AAAMBAQEAAQEB/v4C/wIAAAECAgH+/wAB/v//AAABAP8AAQAA/wAAAf8A/wEAAAABAP8BAQEA////AP8AAAEBAP//AAEBAQIAAAD/Af//AAH////+AAEC///+/wACAQAA//4A/wABAQIAAP4A/////wH/APz9AwP9+vr7AwH3Af79/Pv8+QIDAAD//wD+/v79/f39/v7+/v7+/f39/Pz9/v7+/f39/Pz8/Pz8+vv7+fv79vj49vb29PX19PP29Pbz9PX09vb2+fn4+fn5+Pn4+vn4+vv6/fz7/v38/Pz8/vz8/v3//v78/fz9/f79/v7+/v7+/v7+/v79/v8A//3+/f7///7//wD//wD/AP//AAAB//7//wAAAP///wD///8BAP///wD+/wAB////AAAA/wAAAP//AAAB/wABAgEABQUFBwUGFhUULCsoLiopIB0bCAYE/vr1/fz2/v37AP8BAAAEAAAAAAEA/wABAQABAAEDAQEDAAABAAAAAQICAP8AAQH///7+AP8BAQABAgEA//8C/wEB////AQH/AP8AAQAA/v/9AP79//z8//39/v39AQD/AQD///79//38AP79Av/+/v/9AP/+/wD9/v78///8AAMIAQYH+/4C9Pf27O/y8/X2+Pj5BOjp5/8BAP///gD+/////v8A/v7+AP//AP8A/v79//7//v////7+/v/+//8A/v39//7//v//AP//////AAIAAgECAAYGBAIBAAkIBwoIBQQEBAQEB/z8+gUDAwH///38/AEBAQIBAAQCAwQBAAECAwUGCQMDBP//AP8BAP/+/P8AAgECAwMDBP////3+/wEB/wEBAv8AAQL/AQEBAgABAwEAAP/+AgECAgACAAEAAwD/AgD+AAEEAf7+/////gAC/QH+AP/+/wIEBAID/x0YFgsIB/L09/j4+QUFBPHx8QICAvv8/AACAP//AP//AAAA//8A/wEAAAEBAQEAAf8AAAEBAQAAAf8AAQH/AP7/AAEAAP4AAAL/AP4A//4A//7//v3/AgAB/wIAAf7///0BAP8A/wL///8AAQEAAQAAAAEAAf8AAQEAAQEAAf8AAP//AQABAAEAAf//AP8BAAD+/gD///8A//8B/P8AAv8BAQABAf4AAv8AAv7///3/AP4AA/8AAf8AAf8AAAEBAQICAwUEBAYEBAYEAwgICAcHBgMCAv3+/f38+/r8+/v8+/z7+/n6+vr7+/r5+fr7+/r6+vn5+vn5+fj6+fn6+ff3+fj4+Pj3+Pf39/f39vj5+fr5+fr7+vz8/P39/P7+/v79/f///v///v//AP/+/v///wD/AP///v////8AAAD/AP//AAAAAP//////AAAA/wAAAP8A/wAA/gAAAQD//wD/AP8AAP8AAAD/AAEAAP4A/wAAAQAA/wEBAQD/AP8AAAEBAP/+AAAA/wQEBhEPEBEQDyopJSwpJyEfHA4KCP379/77/P79/AAA/gECAgH/Av4A/v///wEBAQEBAwEABAEBAgAAAv4A/wH/AP8A/wD/AAD+AAAB/wEA/gAA/wAB/v///wH///8AAAAA/f39/f/+/P/9+/39/P78+//8+wD/AAIA/f/9+wD8/AAA/QAA/wIA/wAB/gD//gEA/f8DAQEEBAACBvj5//Hy9u7y9Pn4+/z6+wTp6+kAAQEA/wD/AP////////8A/wD/AAD/AP////8A///+/wD///8A/wD///7/AAEAAP///wD//wAAAAABAAECAgH7+wUFBAUODPj4DAgFBAMDAgUCAv4B//8EAwQAAQECAf4DAwADAgAA//sB//7++/3+/QL///8BAgP/AQMAAQUDAAIBAQEAAAADBAIAAAMAAP/+AAEAAQIDAgQCAgMAAP8BAQL/AQEBAgIBAAEBAgIAAQD/AAIBAAH///3//QH9AQH+/f0A+/wCA/oHCP8SDwsPDgz3+fzu7ggIBwf09fb29/T+///+/v/8/v4BAAD8/f0BAgEAAAECAAEAAQEAAQEBAAEBAQIBAQABAQIDAwIDAgQCAwQEAgMDAgECAQIBAAH/AP7/AAL+AAAA/v/+AAAC//8AAAAAAAAA//8A//8A/wIB/wAAAAD///7//wD+//8A///+///+/gD///7+/gD9///9/wD+///9/v/9/wD9/gH9/v/9/v38/f/7/v/+/v/////+/v/+//4A/wABAQECAgECAQEDAwEBAAD////+/v38/Pr7+vv5+fn4+vr5+/r6+vv5+/r9+/z7+/v6+fr7/Pv6/Pz7/Pv8+/39/f39/f3//f3+/v7+/v39/v///v4AAAAAAP8A/wEAAAAAAP//AAABAAAAAAABAAD//wAAAQD/AP8AAAEA/wABAQAA/wAAAf8AAAEAAP8AAAABAf8A/wEAAAH/AAAAAf8B/wEAAP8AAQEAAP8BAAAA//8AAAIA////AQABAAD/AAIBAwEDAgEHBwcVFRQsKicoJiMgHRsNCwcB/vr9+/X+/fj///0AAAEAAf//AP7+/v4AAQEBAQIBAgQBAAMAAAIAAAAB/wH+AP8BAQH///8BAgAA//4AAP8A//wBAAADAgD//wD9/f7///3//vz//fz//f0A/v0A/v4A//8B/vz//fsB//wBAf/+/P4BAP0B/wD+/wAB//wAAP0BAwQBBgj+Awb3+vnz9/v09vn6+vz8/P0E7/DyAAEAAQAA/wABAQAAAAAAAAABAAEAAP8AAAH//wD/AQAA/wAAAf8B/wEBAQAA/wAAAAABAAAAAAABAQAAAv8CAQD8+vn69vj6+/z+//8FAQIEAgH7/v39AgMDAwMEAf35Af78AAAA/wD//v8B/QH5AAMEAwQJAwIIAgUJAgQH/wACAAAAAAAA/wAA//4A/gAAAwACAgMDAAACAgEB/v8A/wD+AAACAP//AAIAAAH/AQECAP4C/wIBAgICAP8BAP8A/v7/AAD/AP///Pr4AgH/AgIDDw4JDAsKDxAP7u7w7O0D+fr6+vr8A/78/wEBAPv9AAEC///+AP/+AQECAP8AAQECAAABAAAAAAAA//4A/f/9//8A//39/AIBAwAAAQIBAQEAAAECAAD/AQAAAf////7+//////39/v7///7+AP///v///v3+/v7+/P39/f79/v7//f3+/f7+/v79/Pz//P3//f7/+/7+/P39/P3+/Pz//v7++/39/Pz9/P3+/P38/f3+/v7+/v7+/wD///8A////AAD+/f7+//3+/v3+/v79/v/9/fv9/Pz8/f7+/P79/f39/v7+//7+/v7//v39/v/+/////v//AP8A////AP8AAAD/AP8AAAEAAAABAAD/AAEBAAAAAQABAQD/AAACAAEA/wD/AQEB/wAAAAABAf8AAAAAAQD/AAEB/wAAAQEB/wABAQD//wEBAP8AAf8A/wEAAP8AAQEBAAAA/wEAAf8CAAD//wABAf8AAQL///8B/wEAAAD//wAABAMDCAgICQcJExIRIiAdLywpIB4dDQwIAQD8/Pv3//74///7/wD//wAA/////v//AQAC/wICAAEDAAAB/wAAAAEAAQAAAP8AAQAA/gD/////AQD+/wD+AP/+AAD///7////+/wABAQD/AP//AgD//gECAAECAgEB///9Af79//38AP77//79AP//AQEAAP0CAP/+AP//////AAMBAwUFAwYI+P8D9ff67fH09vf3+/v6/f38BPf4+gEBAAAAAAICAQAAAQEBAQICAgAAAAAAAP8AAAABAAEAAAD/AQEBAAABAAAA/wEBAQAA/wAAAQAB/wEAAP////7//vr8/Pv8/fz8AP8AAwMCAAIE/f78+QEAAAMBAf3//wD9+//+/QICAwIBBQEFBgMECgIFDAICBwEDBwABAgAAAP8AAP8A/wEAAf8CAAMBAgIDAwIBAwEAAAABAAH/AAAAAAAAAAAAAAAA/wD//v7//gAB/wH+AP8AAv8AAP8BAgIAAQAA/wD+/fz5/P/+/AECAQD//AYIChIRDAkJBgYGBPDx8/f3+fT29Pn6+/v6/f7//Pz7+/z8+v8A/wAAAQEBAP8AAQIAAP//AQEBAAEAAAAAAQABAQEAAAEA//8A/////wEAAQAAAP8A///+/v79///+/f3+/v3+/wD///7+/vz8/f79/v3+/f39/fz8/v4A//78/vz9/P39/v3+//3+//z9/vz+/vz9/f7+/v39/v39/v39/f3+//79/f3+/v3+/v7+/f//AP7//gAAAP/+/wD///7+/wD///8A//7+/wD/AP///v/+//8AAP7//gAAAAAAAAH//v7/AAAA/wAAAAAAAP8AAAH//wABAQD/AQAAAAEBAAAAAAAAAAAAAQAAAQEBAAH/AQABAQABAAEAAQEAAf8BAAH/AP8BAAAAAAEBAQAAAAEAAAD/AQABAAIAAP8BAQL/AP8CAAEAAAD/AQEB//8AAP//AQEAAAABAAAAAAD/AAABAAAAAQAA/wEAAAEAAP4AAAICARMRERUTFR8eHC8vKR8dGg8OCwIB/vz7+/39+v/++v///QEBAv8B/////wAAAQECAgECBAEABQABAwD/Av8AAf8AAP8B/wAAAgH//f8AAP//AQEBAv8A/wD/AP8A////AP///f/////+/P/8/f38+////QL+/QL/AP7//AD//QD//wD//wAAAAMBBv8B+/v8+/7+/gABAQMDAwIGBwEDCPf0/O7w9O7v8Pf4+f39/P7+/gT9/f0BAQABAgH//gECAQH//wEAAAABAQEAAAABAQEA/wEAAQAAAgEAAAEBAQEAAQECAQEBAAEAAQABAQECAQABAQIDAgIA///8/Pz7+/39/gEAAQQEBAb+APwBAfoBAv////0B/wEC/wACBQMDAgIBAgMCAgMAAAAAAQEDAgEAAwP/AP8AAQIAAAH//wEEAQMBAQIAAQEAAAEBAQEAAAADAQEA///+AP7//v4AAQAAAAABAAAAAQD/AP8A/wH/AQAA/wH/AQECAgQBAP4AAP7+/P0BAgH7+fkBAAEDBv8MCAgGGRcIBwfs7vD9/f3+/QH3//v39fbz9PP09PT8/fz/AAAAAP8A/wH//wAAAP//AAAAAAAAAAH///8A//8AAQD////////+//////7//wD+/v/+/v7+/v7//v/+/f/9///9/f3+/f7//v78/v7//v7+/v/+/v/////+/v/9/v7+/v7+/v7////+//3+/////v/+/////gD+//7//////gD/AP////4A/wD/AAAAAAAA//8A/wAAAQAA/wD/AAABAP//AAAAAAAAAAABAAD//wAAAQAAAAAB/wH+AQAB/wAAAQD+/wAAAAABAQAAAQIAAAAAAQEBAQAAAAAAAAACAQEAAQAAAAEBAQEAAQAAAAABAQEAAAABAQABAP8AAQEBAAAAAAABAQAA/wD/AQACAQD//wABAAAAAQABAQAAAAAA/wEAAQAA/wEAAQABAAD/AP8AAAAA/wEBAQD///8AAP8AAQAAAAABAAIEAwIDAgENDAsrKSggIB0hIB8QEA0FAgH+/vr//vn///n+//3/AAEBAQUBAQABAPwAAAAAAAMB/wQBAgEAAAIAAAIA/wH/AAAA//7///8A/wICAAD9AP0A//8AAAL/AP8AAP8AAQAAAAICAf7/AAD+AP4DAf//AAEAAgIBBAMA/wX+AAD/AAAAAQQBAQIAAP39/PkA//0A//0DBAIBAwADBQf7AAP2+Pbw8vT3+Pr9/P39/P0BAAAEAAAAAQEBAQAAAgEBAQECAQEBAQEBAgIBAQECAQEBAQEBAAEBAQEBAQABAQIBAQAAAQICAQAAAAIBAgAAAQECAwIBAAEAAQMC+vr89vf4+voL/wcHAgP+Af8CAf7+AP//A/8AAf7+AQIDAQIBAAD//wD+///8A//8AgD9Af79AAABAQEBAQL+/wECAQEDAAEB/wAAAAAAAQEDAQEA/gAAAAD/AQECAwEB/wIDAAD/AAABAQEC///+AQICAQAAAAD+AP//AAAAAP///wABAAABAAACAf4A/vz8+gD4BP4AAQcBBgUFGRcTCwoJCQcI5ufr9/f5AgMC8/P06uvr+fn7+vz7/P3+/v7///8A/wD/AAAA/wD/AP4A//8AAP//AAH//wAA/////////wD//////wAAAP8AAAABAP8A//8A//7/AAD/////AAAA/v/+AP8A/wAA//7/AAAAAAAA//8A/wD///7+/wAAAAD/AAAA//8AAAAA////AAABAP8A////AAEAAP8B/wAAAAD/AP8AAQECAAD//wAAAQEAAAAAAP8BAQD/AAEBAAAAAAAAAgEAAAAAAP//AAIBAAAAAQH/AAEBAwAB/wAAAgAA/wAAAAABAAD/AgICAAAAAAABAQEAAAABAAAAAAAAAQEBAAAAAQEAAAAAAAEBAP//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BAADBQIDBgMDBQABBAAAAQQDAgAAAP8A/gAAAP8AAAICAQICBAEAAgD+/////gECAgIAAP8BAAECAwABAQABAAMBAf7//v7//QIBAgEB/v7//f/+/gEBAAEAAAD/Af//AP7+//78+////f7/+gMDBQgFCSAcFhcWEyAjIMbKztja3QIGA+/w8f739/79/f8AAAEBAAAAAQABAAAAAAD//wABAAEAAQEAAQIAAQEBAAEBAgIBAQECAQMBAQECAQEAAQEBAQECAQAAAQEBAQAB/wD/AAICAv8A/wAAAf////8AAAH/AP8BAAEAAQAAAP8A/wD/AAABAP8AAAEAAP8AAQH/AP8A////AAAAAAAAAAABAAAAAAAAAQEAAQAA/wAAAAABAAAAAAEAAP8AAAABAQAA/wAAAAD/AAAAAAD//wAAAAAAAAAAAP8A/wEA////AAD///8DAAD/AAAA////AP///wD//wD/AAABAP//AQAA//8AAAAA/wD/AP7/AAAAAP///wD/////AAD///8BAAAAAQAA/wD/AP//AAAA////AAAA//8AAAD/AAAA////AAD/////AAECAQMDAwwMCxsaHC0rKSopKRkYFgoJCAIB//38/f///gD///8A/wD/AAD+/f/9/P/9/QEAAQACAwD+/wECAQABAQH/AP0AAAABAAEBAgAAAwIAAP///wEAAAABAAIBAgABAAD/AAEEAAEAAAABAAD//v//Af8A/////wAAAP//AP8A///9/f8C/QD+/wABAAQBAQD8/////AACA/4BAgEDAgEAAwEBAgAEBv4BBff4/PP1+PP19/v7/f39/wAAAAAAAAABAQT5+fkBAQIAAAAAAQABAf8AAAD/AAAA/wAA/wD/AQAA/wAAAP8AAQD//wD///4AAAD///////7+/v///wD+/f7/AP/+/v8AAP8AAQACAQL29vYA//8ICAULCgcKBg8FBAoABvoB/fn/+/v//v3//QAAAgICAv8A//8AAgABAfz//////QABAAEAAAH+AAAAAv8BAQQA/wEBAf4A//8AAQIAAQABAQEAAf4A//4BAQMDBAUBAAH/AQEBAP8BAQECBAL///////0B/v0DAAICAQEA/v4CAQP/Af0AAP8BAQQBAQH/AAABAAEDAQD//v78+vn+A/v//vwEBAcHBQcnJR4QEQ4bGxjM0dXf4OLw8PH19Pb7+/r//gD/AAABAP8AAQEAAAIAAP8BAQIBAAEBAAABAAECAgECAgEBAQIDAgIBAgACAQIBAQICAQIBAgEAAQABAAAAAQIBAgEAAAAAAQH//v8AAAAA/wAAAQD//wAAAAD///8AAP8AAAH/AAAAAAACAQEAAAH/AAAAAP8AAQEAAAD+AAABAAABAQEBAQEAAAAAAP///wABAQEA/wD/AAABAQD///8AAQD///8BAAAA////AAD///////8A////AP8A/v////8A/wD/Af///wAAAP4A/wD+AAAAAf///v///////wD///4AAAD///8AAAAA/gD/AP8AAAD/AP8AAAAA/gH/AP8BAP8AAQD//wAAAAD/AAAAAAD//wAAAP8B/wAAAP//AAAAAP8CAwUWGBcXFRcgHRwvKysjHx4PDAsEAgH+/v7///4A//4AAP8BAP8AAP7+/v3//v0A////AAIB/wAAAQAAAP4BAAL/AAECAgAAAAIAAQEBAQD///7///4BAQQBAQEBAQIBAAD/AQD/Af4BAAEAAQAA/gMBAQAAAQACAAD//v8A/wD+/v7+Af4AAAEAAf4A//////3+/vwA/fz+/Pv+/vwA//4BAgEBAQEABAT/AQT6/Pz19/r3+fv9/f8BAAD/AAEAAP8AAAEE9fb4AAD/AAAA/wH/AQAAAAD///8AAP///gD/AAABAP///wAAAQAB/////////wEAAf8A//7//v///wD///7//v/+////AAAAAQABAQEA+vn6AQEBCwsJEg8ODwwJBwoHAgYKAP34/vv7//r4/v7/Af39AgP9AgIB//8BAQADAQEAAwIBAAH+AQD8/wAA/v39AQEHAgID/wH8AAADAgEDAQIDAgIFAQIDAwIEAgIEAP8A/f/+Af//AQMDAgEB//7+/v79////AQEA//8A/wD/AQECAAAAAQEBAQEAAwMD//8BAf/+/v/9AAAAAgICAAD+/////Pv9/v75BAQBBQYDHRcTEg41GhcVx83Q29zf6Ons8fHz+fj5/v3+AAEAAP8AAQH/AQACAQAAAQEAAAEBAQEAAgEAAgEBAgIBAQIBAgMCAwICAgICAgEDAQEAAQICAgECAQIAAQEB/wAAAP8A/wABAAD/AP8A/wAA/wAA////AAAA////AAABAAAAAQEAAAABAQEBAAAAAQEB/wAAAAAA/wEAAQAAAQECAAAAAAEAAQAA/wABAAAAAQAA/wAAAAEA////////AAD/AP8A////AAD///7///7+/v7+AP///gD+////////AP8A///+/wD//gD+////////AP8A//////8A//8AAAAA//8A/v/+AQABAAEBAP////8BAP/+AAEAAAAA/wAA//8AAAH/AP8A/wAAAP8AAAABAAAA/gD/AQECAP//AwQEFBQTIB4fKycpJCEeJSQiEhIPBQQD/wD+//3+/wD+AAH/AQEA/gEA/wD+//7+//7+//8AAQEBAAABAAAAAP8A/wAAAAAB//8AAAH///7+/wD9AAD9AQAA/wAAAP4BAAIEAAEB/wH//////gIAAf8AAQEDAP/+Af4AAAAAAP4A//79//79//78AP78AP/8AQD+/v77Af38AP79Af79AP79/v78AQIAAAICAAIF/wAF+vr39/f6+fn7/v/+AAEAAQEAAAABAP//BPf2+P8A/wAB//8A/wABAAD//wEAAP8AAAAAAAD/AAAAAAAAAP8A/wD/AP8A/wEAAQAAAP8A////AAD/AP///////wAAAQD//wACAAH/Av7/+wL09e3u8Ovt7hMPDQsIBQgFCAH9DQD6+//+/f79+QL9/f/8/AABAAICAAIBAv8BAAAA/gEC/gEEAQEA/wMDAQICBAEBBP4BBAABAgEAA/8BAAEBAgQEBgEAAv7//f7+/wD/AAAB/wD+/f3//////wD/AAICAv///wEBAAD+/gABAQAAAQECAP8A/v79/wAAAf8A/wEAAQD+AP8AAwECAAIA/wD//v38/f/++P8A/wMEBwsIBTArJhkXFsrO0cvQ1Onq7evr7Pb29/z8/P79/v8AAAEA/wAAAQAA/wEBAgEBAAAAAAEBAQEBAQICAgQCAwIDAQICAwIBAgMDAgECAwICAgIBAQABAAAA/wAAAgD/Af8A/////v7/AP7//wAA////AAABAAAAAAEAAQAAAQEBAQAAAAABAQEAAf8BAQEB/wABAgEA/wECAgABAQD/AAEBAAD/AAAAAQEBAP7//wAB//8AAP///wD+//7//v/+/////v8B/v8BAQEBAf79/QABAQD///////////7+/v7+/v7+/v/////+/wABAQD/AAD/AAAAAQEBAf///gEBAgMEBQYHBgD+//r6+f39/AAAAQICA/39/QIBAP7///////8A/wEBAAD/AP8AAQAAAQEBAQECARAQECIgIiUhISgkISMiHxISDgUFA/8A/v79/f4A/f///wEAAf8A/wD//v7+/f7+/f7+/v//AgEBAgEBAgACBAEAAwACA/8AAAEAAQAAAAACAAP/AP8BAgD/Af8A/wEBAQH/AAEA/wAAAP///v/7/v////7/AP7+/v//AAD+AAEB/wD+/v3+/AD+/QD//f7//f7//f/9+wH7+f/7+AD8+v/9+v8A/AAAAAACAgEBAgAAAvr7/vf4+vr8/P/+/gEAAQAB/wAAAAABAQT7/P0AAP//AP8AAf8B/wAAAQAAAQAAAAAA/wABAAD/AQAA/wAAAQAAAAD///8BAAABAQH//wEAAAD///8A/wAAAAEA/wAA/wH//gAAAP/+/P76+fzx8vTp6u0RDw4NDQoGDQkDBgv/Cfv9//v/+f0AAP0A/vwA/v8A/v8A/gICAQIB//3//QL/AfsBAgUBAf8BAf4BA/4B/wP//wEAAQIDAwMBAgIAAAD+/v0AAP8DAgEBAgD9/P38/P4CAQIDAQMCBAL/AP///v4A/v8AAQAAAP7/AAH+/f4BAP3+Af///wADAgP+AAEB/wL+/f0D/wMAAgH+/vwAAf/+//76+v4D/PsEBAYFBggdFxETQTwiIB3P09jS1dnr7O3w8fH29fb9/PwAAAD/AQABAQEAAP8AAAEBAAEBAAABAQECAQEBAQICAgEDAgMBAgECAwMDAwQCAgIBAQEAAAABAQAAAAEAAAD/AP/+/gIC/wD+///+/v7/AP8AAAEBAQAAAAAAAAIBAQAAAAABAgMBAAAAAQIBAQEBAgABAQEAAQEBAAH/AP8AAAEBAQEA//8AAQEC//8BAQD+AP4A/////v/+/v7+/v7//QH+AAH+//4AAP7/AAAA/gD+/v7+/f79/v3+/v/+//7+/v4A/gD/AAACAQEBAQIFBwYBAQIEBAQEBgX8/fwHBgcPEBAAAP/y8vL4+Pj//v4JCQry8fAAAP/7/P39/fwBAAACAQL7+vwEAwL/AP8EAgQNDg0dHB0uKiooJSIiIR4QEA4EBQP+//7///3//v7//v4AAP4AAf8BAQH/AP/+////AAEBAAEAAAMBAQL/AAEB/wAAAP///vz///7/AP8AAAEA/wD+AAAAAAL/AAEAAP8BAf///wD+/v8A/v7+/f0AAf/+/v7/////AAAA//8B//////7////+/fwA//3///7+//79/v4A/fwC+/r/+vn//Pr///oBAvwAAQMBAgQAAgX9/gD7+vz6+/3//wAAAQAAAQABAAEA/wAAAAAE///+AAAAAAAAAAABAAD/AP8AAQABAAAA/wAAAAAAAP8AAAAAAP8AAQAA//8AAQEC//8AAAEAAP8AAQAA/wEBAf8AAAEA/wH/Af8AAAD//wD//f799/f47fDy6OvtDw4LBgUEDAYFAgUL/wb5//78/vz4/wD+AP7/Af7/Af/8Af8BAf8AAQEDAP/+AQD+AgD//v/6//3+AQEEAgIHAgMEAgQFAAEDAP/+AgIA/wAA///9/fv9//7/BAMFAgIDAQID//7//f79AAEAAQEAAQIBAP8AAP8AAgEDAQEC//77AgEB////AgIC/v8AAAD+/v0BAgD/AAD/AP//AAAAAf79/gD++vr7/P35CQYJCwcJLykjHhwaJSMiycvP29/g6erq9PT1/v39/fz9//8A/gAAAf8A/wAB//8AAP8AAAAB/wD/AAADAQEBAgIBAQECAQEAAQEBAgIB/wAAAgEBAAABAAAA/f//AAL/AP7/AAD/AAIBAQAAAf8BAAEAAQEB/wACAQEAAAECAQEBAQECAgIAAAACAgICAQEAAAECAQEA/wAAAQAAAQABAAAAAP///gD//wD/AgAAAP///gD/AgAA/////wEBAAAA////AP4A/v3//f7+/Pz+//79/f7+/v7/AP7//wEBAgMBBQUHCAYIAgMDERESDQwN+v36DAsN////CAkJCQoKCQkI9fT09/f4/v7/CgkI6+vq/Pv79fb09fX2BgYFBAIE7+/vCwkJ/P38DAwNJSIiGxoZLConISAdEA8NBAQA////AAD///7//v/+/v//AAAAAAABAP8AAP8BAQABAAACAQEDAAAB/wAAAP7+/gD6////AP/////9AQEAAP8A//8A/wABAP8A/wAA//7+///9AP7/AQEBAP3/AQAAAgEAAP39//37AQD+Af79/fz9/P78/wAAAAAAAQAB/gD//v/+/wABAP7+APz8APz6/v38AQH8/wD+AQIGAQIFAQIG/Pr9+vr6/v3+AAABAQABAQAAAAEB/wAAAgABBAEAAQABAAEAAf8B/wEAAQAAAQEA//8A/wEBAAAAAAEAAP8AAQEAAAAAAAIAAQABAQAAAAEB////AQACAAH+AAAB/wAAAAD/AAABAP//AAEAAP7+/vv6+vTz9Orr7xAODQwKCQcQDQgDBgQGCv79+wD/////+v//AAL/AQH+/wEC/QEBAgD//wAA/wD+/f39+gEDAAECAgEDAQICAgAB//7+/QEB//8AAAEBAQAA//7+///8/QMEAgD/+/3+/AD9A/4AAAICAwICAwMDAv///////gAAAQEAAf///gAAAP8AAAH/AP79AAIDAgICAgEBAQEB/gIBBgAA/////QD+/v8A/gAAAvz9+ff9/f///wMGCRMPDTYxLhYTE9DU18vPzuXn6Pf3+vHx8f79/wD/AP//AP///v7+AAIBAf7//gH/AgD///7//gH/AgAA/wAAAAEBAAD/AAEBAQAAAQAAAP///wAA/wD+/wAAAAAAAAEAAP8AAf8B/wEAAv8AAP8A/wAAAgEAAP8BAAICAAEBAgABAQADAgEBAgAAAAEBAQEAAAEBAAEAAP///wAAAgL+/v8A////AP8A/wEA/v8AAP//AP////79/v/+/vz+/f39/P38/P79/v3+/gAAAQICAgIFAwcICQgHBxMUFAYGCAUFBQ4NDRkYGA8QEAAAAAUDBBAREgQEBAgIB/j49/Dy8QgGCAMDA+7u7f///+3t7Obn6BEQDwEAAeXk4woLCg0MDRISER0aGRYVESAeHBEPDAQCAf///v///v/+/v/+/v/+/QD//wD//wAA/wABAP8A//8AAQAAAf8BAgAAAAD///8A/f/+/f//AAAAAQEBAQH/Af7+/wD//wEB//3+/f/+/gD9/f/+/QEBAgAAAP/9/gAA//z8+//9+wL+/P78+wD//P79/fz//wEEBAIBAv8BAwACAwEAAAAAAAEAAAEB/wAB/wAA/gAB/gEDAwIDBwEDCP8DBfv8+/z7/P39/v79/gD//wIBAf8AAAEAAQEB/wQBAgD//wAAAAACAQAAAAAAAAD//wAAAQEBAAEAAP//AQABAQAB/wABAQEA/wAAAQAA/wAAAAH/AgAAAAH/AQAAAAH/AP8AAAAA//8AAQH//wD//v/6+vz08/bsBe8LCwkLCwgIBgMFDAkFBQgB//oAAP0A/P8A/v4A/gEB/f4BAgEB/gABAQD//wD/AQAB//4BAP3///3//fr8/f0AAQEBAAIBAgMCAgP/AQQAAQICAQH/BP/9/fr/AP8AAAIDAwgGBgkCAwUBAQEAAAABAgIBAQEA////AQEA//8A/v7//v3///////4CAQEBAgL//vwCAQMA//7///3/AAEAAQEB/gH/AP8CAf7+/v349/UG/v8HCgQKBgglIx4XFhMYFhPU19jY3N8CAgLz8vX7+/v/AQH+/v4AAf/9Av4B/f8BAP79AQH/AQABAQABAf4AAQIAAf8CAQEBAP////8BAQD+/wD+/v7+/v7+AP///wD9AP8B/wAAAP8AAv8A/gIBAQD/AP8BAQACAQH/AQH/AQEBAQIBAQEAAQADAgMAAQEA/wABAP8AAAAAAAD///4BAgH//wD/AAH+/v7////+/v7//v/+/f7+//79/f39/P39/f3+//8AAQAFBgUDAgQLDA0HCAgWFhYMDAwREREaGBkLCgoKCQgQEBIfHx0CAAAA//8LCw0FBgUBAAH6+/n19/YFBQX8+/z59/j9/v/w8PDl5uUODg0CAwLq6SMCAgATExMNDAwSEA4KCQUNCwkGBAL+/v3//v3//v3////+/v7///4BAAD/AAEA/wD///8A/wAB/wAAAAEBAQIAAAD///7//v3/AP8AAAD///8BAAP/AAIAAP8AAf7+/Pv//vv//v4A/wABAP8DAQH//v4AAP0A/P3//fwB//0B//z//vr+/vz+/QEBBAQCAwMBAQEAAQD/AQAA/wICAAAAAf4AAP8AAQABAwH/AgQBAwQCBAgCBQf6/wH5+vr5+/r9/fz///4BAAEBAQEB/wABAQAAAQEE/wD/AQEBAQD/AQAAAAEAAAD/AAEAAAABAAAAAAEBAgEBAAAAAAEAAQAAAAEBAP8AAAIAAAAAAP/+AAABAAL/AP8AAAABAAAA/wAAAf///wEAAf8A/v7++Pr68PLyCOoHCAgICgYFCQYDDQcFAgUJAP/9/wD//vz4/wAA/wACAQADAgEDAQIB/wIA/wL/AAH/AP79/wD7AAH+AQECAAABAAD/AP4E/v8D/f4AAAEFAgIDAgIGAwMHAwMEAgQFAgIGAgMGAgMDAAECAAAAAQIB/v38/vz9AP7+AQIBAAICAAEAAP//Af8D////Af//AQEDAAD/AAAAAAIBAf8BAQIB///+Av////8BAP///wH9/Pr5AQH0BwkABQQHEg8MNzMvHx0bHh3b0NTY1dbY8PDy/fz7/fv+/wEAAP3/AQD8AAD/AAH/AwADAf8A///9BAABAf///wICAQECAQEA/wD//v4A/f/+//7//v/+/wAA/wD///8A/wAAAP4AAQH/AgICAgABAP8BAQEDAQABAQECAwMEAQICAwMCAgEDAgMD////AgAA/f39/v/+AP8BAQEA/vz8Af8A//8A/v4A//4B/v3+/f3+/fv9/v7/AQICBQUGAAABBQUFFBUVAP8BGxwcDQwMHBobGRkYCQgIGhoaCgkICgkJCQgIDQwMAQIB////AwIEAwMB/////f39+/z6AQAA+/z7/fz8/f4BFhMPGBYSCAgIAgMB9R4b/f36BggHBwcGCAUFBAIBAwEAAQD+AP78/v78//39/v7+AAAAAf8A////AP/+//7+//7/AAAAAAEBAgMD/v0D//79///9AQEBAP8CAQIA//3/AQEC/wABAQEB/v3+///8AP78Af7/AQABAQIDAP8AAf8A/v39/v78AwH/Af8A/v38//7+/wAE/wQFAQMCAgMEAAIA/wAAAf8CAgEBAf7//v8AAAD//wH+/wL/AAQCAQQFAQQFAQQF/vz++/v8/fz+/fv9//3/AQAAAgABAAH/AAEBAP//BAAAAQAAAAABAAAAAQABAAEAAAAA/wAAAP8AAQEBAAAAAAEAAAABAAEAAQABAAH/AQAAAAAAAP8BAv//AAEBAP//AAH/AP8AAP4AAQAB/wEA/gD/Af8AAP////r6+u/x8wbo6goJBQwLCQYTDQkFCAL//wD/AP////4B/QECAf8BA/4AAAMBAAEB/wAB//8B/wAB/wEB/gEBAwAB//8AAP8AAQD+AAACAQEBAwABAgEBBAMFBgIDCQEAAQACBAACAwABAf///wD//wAA//7+/wD//wAB/wICAgEAAQABAAD/AQAAAQD///8AAP/+/QH//f///wECAQEAAf//Av/+//8AAf//AAECAgD+/gAA//38+////v///gcHDAIFCAoIBR4bGBAQDxcXFhIPENrb3eXm5+/w8AD+/v79//z//v7+//8A////////AAP/AP////4DAwEBAQEBAQEBAf////3+/////v7/AP8A//8AAAAA////AP4AAAEDAQAB/wL/AAUDAwIBAgD/AQQFBQgICgMEAwoJCwIBAQUHCP/+/////wEBAf39/fb49/39/AH//wMC+vv8+/39+QEA/gH///79/v79/f79/gIDAwwKCgMFBQwLCxAQEhkYGA8PEBsYGBcWFRYUFRcWFgIEAgsLCwQCAgQEBAIDAwMCAQEBAv8A/gD/AQD//v//AAMCAgIC/v79/QD/AgQDBv8AAAUFAAkJBQABAQEA/gsKBf79/AEB/wICAQD//wEA/v7+/v/9+/79+//+/v8A/wAB/wD//wAA////AP///wAA/wAAAQIBAgICAgIBBAEAAv8A/AEBAQEBAwABAgD+//8C/gEBAv7/AP8AAAAA/wH/AAD//wIBAQEDBAACBf/9/v3+/AAAAQMEBP/+/f/9/P4BAgIDCAEBAwECAwECAAEDAwACAQIBAf/+AAH8/v7+/QH+/P7+/f8B/gIDAQAEBAAFBQIDBQEBAgD+/f78/Pz7/f3+/v/+/gEAAAACAAD/AP8AAAAAAQQBAQABAAEAAAEBAf8AAAEAAQABAAIAAAABAAABAgD//wABAQEBAQABAQEA/wAAAQEAAP8AAAAA/wAAAQAA/wEAAP7/AAAAAQEC/wD//////wL/AQAA///+//77+//y8vL9/f0EBAQOCwoKCQQEDgkHBQkDAAD/AP///fn/Af//AAEAAAD///4CAAEAAAEBAP//AAABAAH/AQAAAgMDAgMAAQUAAAUCAgT/AQUAAQMBAQMBAgIBAQAA/wD//vz+//7//vwBAQMBAQH//v8BAgICAwMCAgQBAQH//v8AAQAAAQAA/wD/AP4B/v//AAH/AQEAAQH//wICAgIBA///AAL//v0BAQAA//7/AP///v0BAQL9+vsA/v4C/wAE//8DBggFAwMSDgwvKygRDxAhIRzGyM3a29/19fb5+Pf8/foC/wH/AQD9/gAD/f8CAvwDAwICAwICAgMCAAEAAQD//wD+///+/v7+//8AAAAAAAD/AP//AAD/AQEB/gMEBAQAAwL/AQMUFBb6+/wICQgQDxAXFxcGBQYEAwP+/wEGBgb//wABAQH+/f319vX29vf5+ff9/fzz8vL19fP7+vn6+fr//wAAAAEBAQQNDAsUFhUSERATExQaGBoiISEaGRkTERILCgkHBgcIBgYBAQH/Af8AAAABAgEBAAD///8BAQEA/wP+AP/+/wAAAQH/AAD+/f/+////AP8BAQICAP//AQEBBAT///3+/v4DAf8CBAEA//8CAQD/AP/+/v3///3+/f3//v////8AAAEAAAAAAP4A////AP8AAP8A/wAAAP8CAQIEAwT9AgQCAgT//f0BAQABAgP+///+//7/AP8BAP8AAAIAAP7//vz//v0CAAMCBAUBAwT+/v/9/fz9/vwCAQACAgL+/f0AAgQBAAMAAwD//wABAwMABAICAwIAAAAA/v4B//3///wB//sA//sC//z/AgL/AwEBAwUBAwYCAwT/AQH8/fz7/Pz6+/v8/P0A//8A//8BAQD/AAIAAP8AAAAEAQABAQEAAAAAAQICAAAAAAAAAAEAAAABAgEA/wEBAQH/AAABAQEAAQABAAEAAQAA/wACAAD/AAABAQD//gD/AAABAQD/AP8A/gD/AAABAAH/Af8A/wABAQAA///+/Pv89vX15+npCwoGCgoGAwMVFA0JBAQBAf7/AAABAQH7AgD9Af//Af79Af0AAQAB/wIBAQD//v79AQACAAEBAf8CAAACAAMDAQEDAAECAQEEAAIBAQEBAP/8/v7/AAEBBAIEAQEDAQD/AP//AAEAAwICAQAB/wD///8AAQMCAgABAP8AAAIB//7+/wL/Af////4C/v78AQH/AAD//wD//wABAQEB/wD+////Af8CAQEAAf/+/wD//v76+/kD/wACAAECBAAHAgQCDAgGJB8aExENEhERxxHP3eDi5+jo7ezq/vz//v78AgL+/QIDAgIAAgICAwMBAgICAQEB//8A/wAA/////////v//////////AAABAQMDAgUGAgADBQYGBQYHDAoOIiMn/wD/AwMCFRMTGhgYCgkKBQUG/v7+AwECBgcG/v7++Pj5AgIC8/Tz9PX1+vn5+/z55ubm8/Pz9PT0+Pj5AwEBBwcHFRUTEhITGRYWGBgXIB4eFhUWCwoLBwYGAwICAQEAAP8AAAEA/wD///8AAQAAAQD/AAAA///+/v///////v7+AAEA///9/f7+/v79AAD/AAEA/v8AAAH/AQD+AgEAAgAC/v8AAP8A/gAAAAH/AP8BAAAAAP//AAEB/wAB/wACAgEBAQD//gD/AAL/Av7+/v///wEAAgID//8AAAEEAQMEAQEEAQH9AAEAAAAA//78AAD+AQABAQEC/v7///78//38AQIDAgUGAQED/vz+/vz7AP78AgH/AQIC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AQMB/wEAAAAB/wAAAQEBAwMFAwIF/v78/v3+AQD+/v7//f3/AQIAAAABAAICAAED/wQCAgABAQMCAQEBAQEB///9AQH+AAAB/wD/AAABAQECAgICAAAEAP7+/gMDAf79/gEC//wAAP8AAQD+/wH/AQEAAP//AAD//v77/Pv4A/8AAAD//f//BQIAAgEDCQgEGRYRCQkrFhMTHRwax8nL29vc+Pf3/v7+/f3+//7//wD/AP///v7/////AAEAAQEBAgQFBwoKBAYICwwMFBUWDxETJyQkJyQjFxMVCwoJCgkHDAkKBAQDAgMCAgEBAQAAAAD/Af8AAAAAAAABAAIAAQAA/wACAAEAAgACAgACAAL/AAUFCQkJAf8A/wD/AAEAAP8AAP//AAABAAEBAAEAAP//AQEB/wD/AAAAAQD/AAD/AQEA/f////7//wD+AQAA///+AP////8A///9/v39/P38AP8A/v7+AAD/AQEBAAABAP//AQEAAQICAQABAQEAAQEB/wEAAP4BAAD//wAB/QD8Af79/QAAAAD/AgEE/wEBAQABAQABAAMCAP8AAAH/AQD+AgAA/fz+AgQAAQEC/P7/Afz9/wH8AAMAAwMEAgAAAAICAgIEAAD+/v38//7/AQAA/Pv6AAEDBQYGAQD///37/QD9//8DAggHAQUGAAACAAABAwEBAAAAAv7///z8Avv7AP36/fz6AP36AP78AQEAAgIEAAICAAMCAQQHAQUJAgUHAAEE/v38/Pz8+vz7+fr6+fv6/P3+////AAABAAAAAQAAAAABAQAABAAAAP8AAAEAAAAAAQAAAAAAAAEBAQAAAAAAAP8B/wAAAQAAAAABAAAAAAEBAAEAAP8BAQEAAAACAAH/AP//AAL+Af8BAAL+AAAAAf8BAP8A///+/wABAf////8CAAEA/wD//wAAAP39/vf2+Ors8OUR7w0MCg8LDAYJBgEE/wAA/f////7+/gL+/P/8/f8AAgAAAQADBP4BAgD//gABAwAAAP/+//4B+wIDBQAB/QICAwIBAAH//f////7+/f8A/f///wEBAAD+AAD+AAEAAgAAAgMGBQABBAABAgAA//////8A/gEA/v7//wEB/wIBAf///wD//QH/AP8BAf8B/gD/AAEBAgECAwIDBgD/Af4A/AIA/wAA//8B/wD//f/+/P/9+v4BAwAB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9//9+gEAAP8BAf4AAgIFBQIGCAEFBgMGBgADAgECAv8AAQD/Af//AP3//fz8+/z++/v9+/n6+vv9/f/+/QAB/wAAAQH/AQABAAABAAH/AQQBAgEBAAEBAQABAgEB/wEAAgEAAAEBAQABAQEAAgACAQL/AAACAgEAAAABAgEBAQICAQMAAAABAQD//wACAP///wAA/wD///7/AAIC/v///wD///4A/wD/////AQEA//8A//8A/wD+////Af7+//8A/gD19vbp6uwQDwwNCgcFFhIFBwcAAgIAAQEA+wH/AAH9APsC//8A//8B//4AAP4AAP8AAAAAAAH/AQEBAAEBAAECAgIAAQEAAAD//////wABAAEBAgEBAgMCAgQAAQL//v8BA//+//8B/gAAAP8AAQABAAECAQL+//4AAAEBAQEA/wD/AAABAf3+/v7+//8CAQL/AAAAAAAAAP4A//7///8AAAD///8A/v//AP8A/v8AAgEB/wD//PwBAPoBAAL/AQD8AAEC/gL/Av8BAAD8AP8BAgIDAwIDAQIGAgESDgoRDw0jIB76/P0CAggPDg8JCAkAAQEDAwIEAwQAAP8BAQAAAP8A/wD/AQABAAAAAAAAAAEAAAD/AP8AAAAB/wAAAQEAAQABAAAA//8BAQD/AAAB/wD/AQAA/wAAAf8AAAEAAAAAAAD///8AAQABAAD/AAAA/wAAAQAAAAAA//8AAAAAAAD/AP8AAP///v//AP8BAAEAAAEAAQAA/wABAAAAAgMB/v//Af4AAAECAgEAAAD/AAACAgICAgEAAQEB/P4BAAEDBAQA//4AAQAA/////wEAAQL///4BAP8BAQIAAQMAAP8CAQICAwP+/f0CAwMBAAD//v8CAgMBAQIAAf4BAQICAgD9/f0CAQL/AAEAAgEC/wP/AQECAQL9/gECBQEEAgMAAgIEBQYAAQACAAQHAgkA////A/37+/oAAgIBAQQGBwQBAgP7+vn+/f8BAwUEAQIA//z//fr++/kA+/kA/foCAAD/AQL+AAIDBQUDBwkCBgYABAL/Av3//vwA//8BAwYBAwgBAAD+/wD8/v3+//77/f77/fv///wBAAABAAAAAAAAAQD/AAAA/wEBAQAEAQEBAQICAgEBAQECAAEAAP8AAgICAAEBAAAAAgEBAQEBAQICAQIAAQEBAAABAQEBAgEBAQABAAEAAAD///8AAAD///8A//8B/v7/AAH//v8AAP8BAP///v8AAAD/AP8B/v//AAABAv/+//8BAP7+//8A/Pv88PLz5uboDgkGCgcHCBYSBQQEAQABAAABAf0C//4B///8Af7//wH9/f8AAgEEAQIFAwIEAQMFAQIDAP//AP//AAAA//7+AP8AAAEB/v79AQEDAwAC///+AgL/AQMAAP79AP4B/wEAAf//AQEBAAIA/v//AAECAQAAAAAA/wAAAP/+////AP8AAgEAAQD/AQAA/wD//wD/AAH/AQH//wAAAAABAAABAf4BAAD/AP7/AAAB/wD//fz7AP8BAf8A/wIDAQH//v8D/gD/AAD9AQP///8AAQIAAQEBA//+AQT/AQQBDg0NBQUKAwQGAwMBAgIEAQAAAgIC/wD////9/v78AQECAQAB/wABAQEAAP8BAQABAAEAAP///wEBAP///wEAAQAA/wEA////AQAA/wAAAAAAAAAB//8AAAH/AP8BAQH/AAEBAAD//wD/AP8AAAEA//8AAQEA///+/wABAQD//wD/AAAA/v/9//7+AQICAQEA//8BAgEAAQEBAQEB/wIAAf4BAAH/AQEB/v7+AQAAAgQEAAABAQACAAD+AAD/AQEB/wABAP8AAAEBAQAAAP/+AQAAAAECAAD+AQICAv8D/v//AP8A/wD/AgEBAP8AAQICAP8B//7/AAABBAQE/v7////9AQEB/wAAAAABAAIAAf8B//8CAQICAgEEAAIBBAQGAgID//7/AwQEAv8C//3++v3+/P//AQQFBAMGAQEA+/j5AQEBBAYH/wMC/f36/vr8AP36//z5AP38///8AAAC/v8AAQQEAQQHAwYG/wIA/f35/vv6///8AAIBAwUJAgUEAQEF/wEB/v8A/f4A/Pz+/P39AQIAAQIAAf0B/wD/AAAAAQABAAAAAAAABAIDAwEBAQECAgIAAQABAAEBAgIAAP8BAQEBAQIBAQEBAQEBAf8BAgICAQEBAAAAAAICAQEAAQABAf///wIAAP///wAA//79AQED/v//AAD+/gD/Av///wL/AAAA/wABAQL+//8A//7/A//+/QAAAv7//v3+//j3+e7u8ucM7A8ODQ0NDAgPDQMDAQEBAQD8Af/8//79///+/v8A/gIEBAABAf8BAP7//gD+/QL/AQIAAf0A+wD//wAAAgEBAwIBAQUEBwECAf79AP7+/gD//QH/AQIEBAICAQAA//8BAP4AAAH/AAEAAAEBAQEA/wD/AAABAAICAgEAAP7//wAA/wD/AAEAAAEBAP7//wEBAv8C/gD9/wEBAAEBAwABAf8AAgD//gAAAAAA/////vz/+QQA/wEDBv8CBAH/Av4B/gH9//7+///9AQIEAAACAQEC/gL/AAH9AAD8+f8DBf/+Af8B/////wACAf//AP8AAP7+/f7//gMCAgABAQIAAQACAgD/AAAAAv8AAAEAAAD//wABAAD///8BAAAAAQEBAP//AAAAAAH/Af8B/wH/AQD//wABAP//AAAB/wAAAAAAAP8AAAH//wAA//////8A//////7//wEAAQAA//7+/v///gH+/wEBAQAAAf8BAgEBAv8A/wAAAAABAf//AAAA/wEBAAABAQD+/gEEAgAA/wABAAECAgAA/wEAAQABAAABAgEAAP0B/wD8AQAAAgEBAQH/AAICAQD+/f/+/wEAAgECAP/+AP///wABAf/+/gIAAQACAf/++wEBAQACA/79/gAAAwEB//8A/wAAAAEBAgAAAAMCAQMDBAAAAgED/wAAAv39/Pz+/f79/wICAwIGCAEA/fz6+gABAgQFBP8A//37/wD8+wH+///9/AH9/P38+f/+/f7//AEHCwcLDQIDA/7//fz59/7/+f3++gAA/QACAv/+/wUDCQEEBQIEAwACBP8ABv4AA/7/Af/+/wIAAP8BAf8AAP//AAEBAAEAAAABAQQCAgIBAQEBAgICAQEAAAACAQIBAQEAAQEBAQEAAQEBAQEBAQEDAQEAAgECAQEBAQAAAAACAQEAAAD/AAH//wACAAD///8AAf///gH///8AAAAA/wAAAP//////AAAAAAAAAQD/AAAB/v/+AQAAAf4A/QD+///8/fzz9ffp7PEODe0PDg4MCwsMBwcBAAAAAf8A//0B//4A/vwB///+/gD//fwAAQL+AAIEAgX/Av/+Af8A//8BAQEBAAABAQECAQL//v7//wIBAgMCAAIBAgQDAwUBAQH/AQD/AAACAQICAgQAAAEBAQEBAQAB/wD+//4AAP8A/v7+//8AAP///wAAAP8AAP/+/wAAAP///wAA//////4A/v////8BAQICAAD/AAEA//0AAAD//v0AAQD9/QACAgAB/wEA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AQEBAgIBAv0B/QMCAgAA//7+/wIBAwEAAv4A/v///wECAf//AAD//gECA////wAAAAD/Af38/f8A///+/v//AAAAAQMDBAH+/fv+/f8AAQIDAwUGBv/+AAEAAAUEBvr4/Pz8+fv8+wcMEgICBgICAwQEBP/++fr27vr38//8+v///QAA/gAB/gH//wIAAQIC/gD9/AD++wD//QIEBwYICAQGCAABAgEBAgMDA/0C/gD//v8B//8AAQEAAAABAAEAAAQCAgIBAQIBAgICAQEAAQEBAAACAgIBAgIBAAEBAQAAAQECAgICAgIAAAEBAf8AAAEBAAABAQEAAAAAAP///v7/AAACAf8AAAD+AQEA/wACAQD//wD/AQAA//4CAQEAAQH///8BAP//AgEB/wEBAAL+//0BAgEA/gD////7+/vw8vMF6QMNCwoPDAwKBggOCwcDBwH/AP/9+wAC/AH//fv8+PgA+/kBAP4ABAL/BgT/BQQCAwcCBAACBAICA/8AAQD///7//v0BAwH//gAAAAH///8BAAECAQAA/wD///0AAf79/v4BAAEAAgIBAgMAAgQBAQQCAgMCAgMAAAABAAEAAwAA//4AAP7/AAABAQH+/wD/AP4CAAP+AQD///4AAP8AAAEA/wAAAAIBAP//AP4B/wAA/v4AAQAB/wP///4DAwUBAAEB/v//Af8A/v/8/P8FBgMA//79/v0B/vwA/QIBAv/8/AEB/v4CAgMA/v7/AfwCAwQA///+AQAA/gAABAEBAgH///4B/wD//wAAAP8AAgEA////AP8AAQAB/wD/AAD///0BAAABAgH//gEAAQD///4AAAIBAQEAAP8AAAD///7///8AAAH+/////v4AAAECAQEAAP7/AAABAgL//gABAP8AAQAAAAD///8BAQAAAf///v8AAf8BAAACAQD+AQABAgIAAP///gD+//8AAAD/AP8A////AP8DAgX+/v8AAQAA/wACAgMBAQL//v0A/wEAAP8A//8CAQL+//4CBAIBAQP///8AAQEAAQH8+/wBAgEDAwP+//8BAAACAgIA/wH//v/+/wAEAAL/AP4AAAD/AP8A////AAD+/v3/AAACAQL///7//////f4AAP8EBQYDAwX/Af/+/v/+/v/+/v76+PgAAgX/AwUCBgsIBgX+/Pn28vP9/PwAAAEAAAP+/f4CAwH//gAB/v7//v/8AP4DAgX+/f4A/v4BAQADAwQCAwQCAgMDAwMCAgICAgL+/gEBAf4A//8AAQAAAQEBAAAEAAABAQEBAgAAAQABAQEBAQEBAgICAQECAQEAAQEBAAIBAgEBAgEBAAEBAAAAAQABAQEBAQAAAAEBAQD//gEA//4A/gIBAf7+AgIB/v79AAAAAAH///8BAQECAAEAAQAA/wABAQAAAgEA//4CAAH/AAIA///+AQH/AQEA/v//+vr77/Hz5unrExAQDgwOCQgGAwQGAQX8A/79//8AAP//AAMD/v0B//39AP3+Af4CAQACAgMDAwMFAQICAP/+AAABAQABAQD/Av/+AAAAAgECAAIEAAABAAD/AQEAAQAC/wD/BAIA/v7+AAAA////AP/+AgL/AgEBAgECAAECAQAA////AAAA/wECAAD+////AAABAAAB////AP8AAQADAQAB///+AAAA/v7+AP/+AgEAAAEBAv8AAAD+Af/8AP8BAP/+AgMD/f78/wEAAAD+AP8B/v4AAQIB//0B/gL+AQH/AQEA/v79AP7+/wIDAAED//8B//3/AAIBAgEA/wAAAgIC/f8B//8CAwEA/wEBAP8A/v/9Af8AAAEAAP4AAAICAP8A/wD+/gAAAv4CAAH/Av8BAAECAAD+//8CAQAAAAD//wD/AAD//v//AP8A////AAAAAAEAAP8BAAD/AP8AAQD//wABAQAB/wEAAQD/AAAAAP///wD+AQAB/v/+AQECAAH+AAAA/wD//wEAAP//AQIB//7////+//8A/gH+AQIBAwAC/wEAAgACAAD//wEB/v7+AQAAAAEB/v38AAAAAQECAQEA/v7/AgEB/v///wD/AwID//4AAf8AAgICAAEB/fz8/f79AP//AQEB/Pz+////AgEB/gAA//////8AAP7//wAA///////9/wD+AgIDBwcJAAAB/f/9/v36/v38/v/+AAICAAEDAwUJCQwQ//76+/n3/wECAAEEAQEFAQMDAAID/v/7AP34/wD+///9AP0CAv3+//8A/gEAAQAAAgIBAwMDBAQEAwMDAwMCAQECAQH9AgEC/wH/////AAABAAEAACuB1H4EAQIBAQEBAAEBAQIBAQEBAQIBAQEBAgIAAAEBAQABAQEBAQEB/wEBAgAAAAEBAAAAAAEA/wABAgICAAD/Af8BAAD+AgAA//8BAP//AQMBAP0AAP8CAgIAAP8A/wD/AAABAgEA/wAA//4A/gEAAAEAAQEBAwEBAAICAAABAP7+/v7++fj67+/x5OnqDw8ODQwKFA8LBQQHAP79AQD//wH/BAD9/QH//PwA/gD8AQABA/8BAf3//wD7/v3+AQIEAQL//wIA/gEBAAEBAwIBAAABAgEBAAABAQEC/v8A/v79AQECAAAAAgMCAAAA/wH/AAAAAQD+///9/f4BAwIA/wABAQAB/wACAQIAAP4B/wD9AQEBAQAA/wL+/v4CAQEA//8AAQH//v7/AP8AAQABAgECAP/+///9AP8A/P/+AQP//wEC////AAL/AAD/AAEAAQIA/vz9AQEDAQQBAP8C//4AAQIC//8B/////v//AQP+AAEC//78Af8AAAMEAQEA/v3+AgL+AAEB//8AAAAA////AP4A/wAAAP8AAQAAAP/+AP///wABAQAAAAEAAP///wEAAP/+AAABAQEAAAAA/wAAAAABAAD/AAD/AQH/AgIA/v/+/v8B/////wAAAP8AAQABAQAAAAAAAf8AAAD//wH+/wD/AAD/AP//AQAB/wABAwIA/f3+/////wD/////AQACAAD+AAEA///+///+AP8C/wIB/////wD/AQEB/v39AQEAAQEAAv4C/gICAgAAAQEAAQAAAAEA/////v/+AwIDAQECAAIAAAH+AgAB/Pz9AAEA//7+AgIDAAD////+AwMD//4AAQAAAAD/AP8A/v//AQEBAAEA//8AAQECAwMCAQIEAP///v36///+AAD+/P379vj5CggLCQwTAwQI+Pf8BAQIAwj/+Pz6+wD6AQL9AgAD//3+AQEC/f/+/v/9AQEA/v/+////AP8AAAAAAQEABQUEBwcIBQUFAwIDAgL9AgH//gIAAP/+AQAA//8AAQAABAIAAQEAAQEBAQEBAQABAQABAQACAQACAQEBAQEBAQEBAQEBAQAAAAABAQEAAQECAQD/AAEBAQICAgD///8B//8AAP//AAACAf4AAP/+AAAC/gEAAf////4AAAEAAQAAAAD///8BAQAB/wIAAf4CAAIAAv0A/wH+AQL/AAABAAABAfz8/e/y8+Tn6AkIBw0LCQcGHBENCwMEAf34/wD6/wD/BAH+/gMB/wL/BAICAgD+AAD8/f/9+gADBgADAf7/AAAAAgIE/wMEAwEAAgAAAf8AAAEAAQAAAQIBAgIEAv8AAAD///8A/wEA/QIBAQD///7//gD/+/8A/gAABgMCA/8BAQAAAgAA/wEAAAAAAAD///8AAQD/AAECAf79Af///wD/AAEBAAICAQEAAQEAAAECA/7//v8B/wEAAAEBAAAAAAABAAAAAP4AAAEAAP/9/gD/AgEDAQH+AgEABP/+AP//AAD//wAAAQEBAAH//wAA/gEBAv7+/gICAQD/Av8BAP//AAEA/wAA//7+/gAAAP//AQMCAgAAAAABAP//AAIAAgAAAAECAQAA/wD///8A//8A/wD+Af8CAgIBBAEBAQAA/wAAAAAA//8B/wAAAAEAAAEBAP/+/gD/AAAAAQAAAP8AAAIBAv///gAA//8A/wD//gAAAf7//wICAQEAAP7+AAD//wICAv39/P7//v///QD/AAICAgEBAf4A/gMAAv/+/////wECAv/9/gAAAAECAv7+/f8BAQMCBP4A/QAAAAECAQH/AP39/QMDAwEBAQD/Af8A/wABAvz8/AAA/wEAAAICAgUFBPz9/QECAgEBAv4B/QD/AP//AP///gEBAgECAP/9AQEBAgICBAMCAgIBAfv7/P7+/gEBAv4B//j5+AYHCQsPEwYKDvn3+AIBBP//Afb28fr5+AQEBgABAQD9/AUAAPn6+f/9AQEBAgAAAv//AP//Af8AAf///gAAAP8A/gIBAQMEAgACAQIBAAECAAL/////Af///wAAAQEAAQQAAQEBAgABAQEAAQECAQEAAQEBAQEBAQIBAgACAQIAAQEBAAABAQEBAAEBAgEAAQECAAEBAQEBAQEA/wD//wD/AgP//v4AAwL/AP4C/wH/AQH9/wD/AAABAf///wABAQEAAQEC//8AAwP+//4C/gD/AgACAAEA/wL/Av4BAAIBAP7//f/6+vvu7/HkB+cMCggLCgoJCAgKCAcDBv0AAP/8/fsCAgIB/wQA/gT//f79AP8AAv4BBAMB/////f4BAQMDAgECAAH//fsAAAMBAQH/AQEBAQEBAAH/AgICAwH////+/v0B/wABAAMB////AAACAAABAQH/AQADAf8AAP7////+/gD/AAEBAP4AAf8AAAAA/v//AP/+//7+//4CAQAAAAAAAQICAgMA/gAB//7///0BAQEAAAABAQEBAgIBAAD+//4CAQIB/wAAAQEBAf//AAL//wMB/gIAAAD//v///v4AAAIAAgEBAAH+/////v0EBAYAAAD9/f0BAgADAAEAAQMAAQH//wEBAAH///4AAAD///4BAQEBAQL//v8BAwEBAAIBAQD9//4AAAAA//7/AP4A/wH9/gABAv4AAAL//wAAAAD/AP////8AAQAB//8A/wAA/wEBAQEA//7/AQECAAIA//8BAP//AP8A//7///8BAgEBAAEAAAAAAP8A//8BAQH//wD///8A////AAD///8CAAEAAQAA/wAAAAACAgD/AAIBAAD5/vwBAAEAAAABAQIDAv/+/v0BAgMA//8A/wEBAAECAwMCAgH//v//Av8A/gABAQMA/fz/AAD/AAABAwIBAgL++vsEAgP+AAABAAH///////8DAgQAAAD/AP//AAAAAQECAgIBAwL+/wD/AAABAwMBAP38/f8GBwkIDgsICQv+/wAAAPv7+vL48e77+PcFBwoCBAYC/wEB+/f49voCBQwDBAb8+/UA//8AAQUBAgQBAAIA/wEBAQADAQMBAQD//f8CAQABAgEEAwL9/v4A/wD/AAMAAAD/AAAEAgICAgEBAAICAgEBAQICAQIBAQEBAQEBAgECAQEAAQEBAAEBAQABAQEBAgIBAQEBAQABAQEBAQEB////AP//Af8A/gAAAv7+/wEC/wEA/wH/Af//AAAAAAAAAQIBAAABAAAAAAAA/wD/AgAC/wL+//8BAAD/AP//AAEBAf8AAAH/AAIB////9/j56evuCAYGDw4ODg0NBgUSCAQKAP7//gL5+wH6/wABAgEAAQIEAwMCAQIDAgMDAQIDAAEDAQIDAf8AAf3+AP7/AAH/AAIC/wIA/wIB/wEAAQAC//8AAAAAAgICAf8AAP//AQEC/wD9/wABAgIA/wAC///+AP//AAACAgAA/gAAAAH//wD/Af8AAP//AAAAAQD/AgEA//3/Af///wEB/wH/AQD/////AQEBAAEBAgECAAEAAAAC/wEBAf//AAIB//4BAf8BAQED/wABAQEEAQME//7//f7+AgMDAwQE/f38AQIF//7/AAEC////AQMC/fz9AgEBAv/9///+AQEE////AQEAAAEBAQEAAQECAAAAAAAAAgIB/wAAAQH//v////7+/wD/AQAA////////AwMB/v/8AwIFAAAAAAAAAP//AAD/AP8A/wEAAQD+AAH/AAAC/wD/AwABAAAAAAH+/wD/AAAAAP4AAQEA/v79AwIEAQAA/gAAAQICAAAA//39AgIBAAAC/////wD//v//AAAA/v//Av/+//8CAAAA/f/+/wD/AgICAgIB/v4A////AQACAgL///4AAQIBAQACBAEB/////wH/AAD/BAQD/wD+AAABAQEBAAEAAv8D/wAAAQIBAwQE//v7AAAA/gD/AwMDAQEB/fz+AgEC/gH+AQECAQMAAP8AAAEA/wEAAAIB//8A/gABCg0OBwcL/vwAAPz7/Pb1+/by///8BwwRBAgIAf4B/vv4+vn2BAgLAgIK+fj2Af//AQMBBAgKAQMG/wACAAAAAf8AAAAA//4AAAABAgECAwICAQAAAQEBAAAA/wD+/wABAP4ABAEBAAACAQEBAQICAgEBAQEBAQECAQECAQEBAQEBAAEBAQEBAgEBAQEBAQEBAQIBAQABAQIBAQEAAP8AAQAB////AP////8AAQECAQH/AQH/AQECAP///wD/AQAAAAAAAAABAAEAAQIAAf8BAP//Af/+/wECAAEB/gH9/wAE/wD9AAIBAf3+/v79/vX39+nt8N3g4w8MDQsJCQcOCwIFBwMIDAICAP/7+gD9/v/+/v4AAAEBAQIBAQICAf8BAAEA/wH/Af/+/wAB/gEBAf7++wED//39/v0BAQIEAwMCAwECAwABAQAAAP8AAf/+/wABA/8B/v//AAAB/v//AAEAAgIB//4AAQH//gD/AgEBAf8B//8B/wD/AAICAv8A//8A/v/9AAD//QD/AP7/AQIBAf7//wIBAf8AAP//AAL/AAD//wABAQEBAwQFA/79/gACBAMBAf/+/gEBAf8DAwMDBP7//wMA//7//wH+/gIDAwABAQACAgMDAv7/AP7/APz8/AQBBAD/AQMEAwAAAgD//QAAAQICAv///gD/AP4AAAEA/wEBAv7//f7//QD//wAAAQABAf///QD/AgAB/f7+AgEBAQEAAAAAAQD//gABAAD//v4A/wAAAP///QEBAQACAQD//////wAAAf7//v8A/wIAAAD//wD///0A/wEAAAD/AQEBAP8AAAEBAgEB/QAA/wD+AP7//gICAv/+/f4BAfv//gICA/7//wIBAQAAAQD/AP////7//wEBAAEAAQECAQIBAQADA/7+/gEAAgIC/////wIDAv79/wICAQMCBf3+/gIB/v38/QQDBQEBAf8BAAABAQH/AAMDA/7+/gEBAQAA/wEAAQICAgEBAQABAP3+/gABAQMCA/3+/gYHCAICAv3+AP79/Pv29fz6+AAA/wcNDwUJDP8BAfv19Pz8+gMHBv/+Avn59wEDBwYHBgEDAAIGBgMGBwAAAQH+/gH/AQH/Af///v7///7//gIB/wEDAAICAgAAAP8AAv////8DAAQBAQIBAQEBAgEAAgEAAAEAAQEAAQEAAAEAAQAAAgEBAQEBAQECAQEBAQECAQIBAAEBAQABAQEAAAECAQD/AP/9/f4CAQH/AgEA/QEAAQAAAQAAAP8B/wH/AP8BAAEAAQH///8CAgIAAAAB////AQH/Af7//wIA/gEBAf8A/QABAQH+/QH/AAH//wD7+/3y9PTr7O7j5ucWExINCgcIBgcDCf8AAP3+/v79/Pj//vz//wAAAwL//wD//wECAgIBAf8AAP3//wEAAAD+//wCAgD//v4BAAL/AQMA/v///wAA//8AAAEABAMCAgICAwMAAQD///3///4AAP4CAQH/AAD///0A/wAAAAEBAAAA/wAAAAECAgH+/v7//v7/AP7/AP7/AP7//wD/AP8AAQD/AAD/AQD/AAAAAQL/AP//AAECAQICAgQBAQMFBAb8Af0BBAMAAAH+/vv//////wICBAT+//3+/v8EBQb8/f0DBQP9/f4BAAD/AwMCAgD+/v4BAgP9/P4CBf////8A//0AAQEAAAH/AAAAAQH/AP8AAAAAAAH///4A//3//f3///8CAgIBAAACAQH/AP8AAAEB//0AAAT/AAABAAD/AAEAAAAAAAD//v8AAQAAAAD/AP///v4AAQAA/wIBAgABAP///v/8/f0AAQECAP8BAAEAAAAAAAD//v4CAQH//v4AAAAAAAIBAf7+/v7+/v7///////8AAP7+/v/+//8DAQT///4BAQQA//8BAQEDAgIAAAH///4AAAAB/wAAAAABAQEAAQAB/wEA/wL+/vwCAgUBAQH/AP0BAAP+/f8CAgH/AP8CAQH/AP8DAwQBAQEAAAACAgL///4BAQEAAQMCAQH9/v0AAP8DAgL+/v4AAAICAgX//wD+/fz///78/vwBBAYJChUFCAn/AP/28/H69/QCAQAAAAP6/fsABQcFBgMCAwEAAQADBQMBBAMA//7+/f/9/wD+/Pv++/wA/f4B//4BAf4BAQEBAQEA/wD//wD/AAH//wAEAQEBAQECAgEBAAABAQIBAQEAAQIBAgEAAAD/AQACAAABAAAAAQABAQAAAQAAAgEAAQECAQEAAgECAAAA/v//AAIA/QD/Av8B/gEBAQABAAECAAD/AQH/AQAC/wAAAQEAAQEBAAEAAQAAAAECAQAA//8A////AQD//v//AAAAAAAAAAAB//8A//7/AP//+vn77vHx5OfpExEQDAwIFxMPBgEDAAMEAQMEAgMCAP8CAgAB/wECAgECAQAA//7+///9/wAB/v8AAQICAgQG//4A/f3+AQECAgQEAPwF/wL//vwBAQICAf/+AgYFAAAC/v7/AQIBAAAAAAEBAAABAv8B/wACAQH///8AAf7+//8B/gD9/QD+AP/8//7+//7+//7/Af4AAAD/AAAAAf8B/gH/AAAA/wAAAgEBAQIDAAIDAAECAgMEAQEC/wICAwID/f79AQIB/f4ABP//AAAA//4AAgID/v3+AgP/AQAB//8AAgID/wABAP4BAQAC//79AgME/v8A//7//gD+/v//BAMDAgIC/v7+AQAA/wD+/wH/AQAAAf8A/v79/wD9AAAA/v4AAQIAAwIEAQEAAP8BAAEB////AQIAAQABAQEB/wD9///+AQEAAP8A/wD///7//gL8AQABAAAA//4A/v7+AAD//v7/AQIA//8AAQD//wEAAQEB/wAAAgEB/f8BAQACAQEBAQIB//v///8AAgEC//7+AQIBAAEBAAAAAQIB//7/AAEAAQECAAD/AAEBAgIB/fwAAQEB///+AwID/v//AQAC/wH+////AAAAAwMDAAAA/v7/AQEAAgIDAAH///3/AQECAQAAAAEA/f3+AQAAAAIBAP4AAgIC/wH+////AAD/Af8AAgID/v79AQIB//0BAP79Af8A////BAcHBgkHAQQC///9+vTy+/j2CAoL/vz8+/v6AwcKBAUDAgMBAQL9AgICAwMD/wAA/f38////AP4BAP////7+AQH/AwICAAMCAAABAQECAP8AAAD/AAAB/wAABAABAQEAAQEBAgEBAQEBAQACAQEAAQEBAQEBAgEBAgEBAQIBAAEBAAIBAQIBAQEBAgIBAAAAAQEAAQABAAIBAf///wEBAQEBAQEBAAEBAAECAAH9AP8BAAAAAAEAAAEBAAAAAQEBAQEAAf8A/wAAAAEBAv7+/v8CAAH+/wIBAf8CAgD//wAC/wAD/wAAAP7+//P0+Obr7Qrh4wsLBwcEARMOCwMCBAEEBQH+BwIBAQD+Af8AAP//AAD+AAEA/f/+/v//AAEAAAAAAAD9//8CAwEBAAIEBAD+AP7+/wECBAMDBAH/AQD+/v76+v8D/P8AAQIDAv8AAQABAQECAP7+/v/+/gAA/v/9/v/+/v7//gD+/v8A/v8B/wAA/wD+AAD////+AgD/AAABAQACAAMDBAD///8AAAD/AQEBAwMEBgABBAACAwIDBP4AAAMDAgD//QABAQABAv//AAEAAQABAP8AAAQEBP7+AAIEAwECAgIBA/8AAAABAAEAAgEBAv///wMCAwAAAAD/AAIBAf7+/gIDA//+/wEDAQAAAP/+/QICBP7//f/+/f/+/wIBAgEBAP7///8A/wEAAQICAAAAAQEAAQEAAP8B/wEBAP38/v4A/gMCA////wD/Af///v///gABAv///AEAAQAAAAEBAQICAgAAAP7+/QEAAgECAP7//wAAAAEBAQICA/7+/gEBAf3+/wICAv///wAAAPz8/AABAQL/AwEAAgD//wEAAAECAgD+/v/8/v//AP7/AQAA/wECAQEAAf///wEAAAAAAAD+AAEBAQICAwD/AP4A/wMCAf/+/wAB/wICAv7+/gABAAEAAQAAAAAA/wACAQIBAf4AAgD+/AD/AQEA/wD/AQIDAwD//wABAQD/AgAB/gEBAQABAP8AAAMFBQEB/////fz6+fz7+QkKCwD+Afr69QADBgYFBQMFBAIB/wID/P8A/v//////AQACAv///f7+AP78/v38/P/+/QMCAQH/BAABAAAAAQAAAAABAAD/AQAA/wQBAQAAAQAAAAAAAAABAAEAAAEAAQAAAAEAAAABAf8BAQEBAQIBAQEBAQIAAAACAAAAAAEAAAD///8BAQAB/wECAQH+AAEAAAABAQEAAQEB/wD/AAAAAQAAAAABAAAAAAIBAAEBAQAAAQAA/wEA/wAAAP8BAQECAAH/AgD+AP8CAAAAAP7/AAIBAP8AAP8A/QD6/Pvt7/ABAQAHBAIKBgUHBBsOCgcCBgkC///////+APwB//8B/wAB//0AAP8A/v7///7///8BAQL/AQECAAAAAwEB//4AAQL///0A/v//AP//Av0C/wL//gAA/gP/AQH+/gIAAQEAAAD+AQIAAgIBAAEA/wP+//8BAQIB/v/+/gABAAABAf4A//8AAf/+/wAAAP/+/wAAAAL//gD//gH/AAEBAgICAwIBAgMAAQIBAgIBAwP/AQEBAAECBAQB//3//v8GBgcA/wACAgH/AAD//wACAgUAAQABAgABAAL//v//AAAAAwABAAEBAgIA//8AAf//AAAAAP8CAQH+//////4BAQH//v8CAwIBAwMBAQAB/f/9/v/+//8EAwP/AP8BAAAA/wABAQIAAAIAAAH/AAAB/wEA/wD/AP//AP////7+/gEAAAD/AAAAAAD+/v4B//8AAQEB/wEBAQEA/wAAAAAAAAD//wAAAv///wEDAgH//wD/AQABAAICAgEAAAAA//0BAQICAf/+//8BAQIA/gD/AP8CAwH+//8BAAL///8CAQABBAQAAP8BAQECAgT+AP8AAP/+/v4BAgEB/wD+/wACAQD///8CAQEDAQH/AAP9APwCAQH///8BAAEEAwP+/v//AP8CAwIA/wABAQEAAAAAAQEA//8AAAECAgEAAAD9/f0CAAIBAgD+AAL+//wBAQMDBAD+/v4BAf7+/PwA/v4JCQz////18/UCBQUHBgYBAwMDAgICAwD+//n8+/kA/wACAgIBAAQA/gD7AP38/P76+vr7+voAAP8BAQEAAQABAAIAAf8AAAEAAQAAAAEEAQECAQECAQEBAAEBAAEBAQEBAQAAAQAAAQEBAQECAQEBAgEBAQABAQH/Af8BAAABAQAAAAAAAQEAAQABAAEAAQABAQICAf7+AAAAAAAB//8AAAAAAP8AAAAAAAAAAQEAAAEAAQAB/wAAAAD/AAAAAAEAAAABAQAA/wABAAEAAQEBAQEBAQEBAQEBAQEBAgP//v4A+vr77vDy3eHlCAcGCQkIIx0ZCQMGAAX8AP36AP7///39AP/+AP//AP8B/wAAAwEB/wIDAAEDAgMEAgUF/wAAAQICAAEB/wAA//7+/v/8Av8C/f7/AP/9AQIDAQMD/wICAQIBAAABAAADAAIC/wECAgIEAgAEAAD/AgMDAQH+AP/+/v/7/v/9AP7+AAABAAD/AQIAAAAA///+/v38AwUHAQIDAgMFAQMEAAMDAgIDAwQFAgIC/gD//f3+CAgK9vj5AwQF//8AAAECAgID/wD/AQECAgEAAAD/AQEBAAEAAP7//v3+/fz9AAIBAgUA/v/+AgAB/f7/AAACAAEA/f38BAQE/v79AgAEAP8BAQEB//8AAAAAAP///v/+AQEBAQECAAAAAP8AAP//AAL/AP8AAAEBAAEA//7+AQAAAP8A/v/+AgICAgIC/v3+/wD////+Av8E/gD/AgIA/wAB////////AwMDAwIC//8AAAAB///+AP4AAQABAgICAP//AAAAAQICAQAAAf79AAD//wEBAQICAQEBAQEC//4B/v7+AQECAAD+//7/AAABAAAAAAAB/v7/AQABAP8B/v7/AAAAAAEBAAAAAQEBAAEA/wH/AQAAAAABAQD+AgIB//8BAQH+AP8AAwID////////AAAAAgIB/v3/AAEBAP8C/wD+AAABAgME/fv9AP//AQADAwMB/wECAQL9///9AQEBBwUJ///+9fT1AQQGCQkIAgIBAgMBAgEB/fz5/fz+/wAAAQID/wH///4A//8C//79+fr69/b2/Pr8//4AAAAAAQABAQEAAAECAAAAAAAAAAAABAEAAQEBAAEAAQECAQEAAQEAAQEBAAABAQICAQEBAQEBAf///wEBAAD+AQEBAf8A/wEAAQEBAAABAQABAQD///8AAAAAAP8AAf8AAP8A/v8AAAEBAv8A/v///wEAAQAAAAD/AP8B/wD/AAEAAQAB////AQD//wABAAH/AAEBAAABAQEBAQABAAECAQL/Af79AQAAAAAAAPv5++zv8d7i5hEQDhMQDQUPCwQBAQABAAEAAP8A/wD//v///wH/AQEBAgAAAQD/AQEBAQECBQEBBQIBAf8BAAAAAP8BAQEBAAEAAgIAAf3+/P///wH+/QD9/gEDAv8A////AAECAgICA/8BAv0CAwAAAwICAwECAQABAAABAQH+AwECAAD/AgD///8AAAH//v8AAAAAAf/9/wAEAAEBA/8BAgYGB/8CBP//AP/+/wMHBgQCAv39/QEDBgoKBf//AQAA/wEBAP8A/v8AAAAAAP///gD///4AAQQEBP0B/QD+/gEBAv8AAPz8/AMCA/3/AAEBAwABAQEA/v///gD/AwIAAgAAAAEBAAEBAgEBAv7//wAAAQAAAQAAAP///gECAv8A/wEBAgEAAP7//v4A/wAB/wAAAQECAgIBA/79/v7/AAMBAQAAAAD//wAAAP4B/gEAAgAAAf7+/AEBAgIBAQAAAf/+//4A/wMBAwAAAP//AQIBAAEAAf7//wAAAAIAAf8A/gAA/wAA/gEAAwD//wEBAQIBAf8DAf////4A///+//79/QEB/gECAwEBAf/9/wECAv/+/v///wD/AAD//gAAAP8A/wH/AQAAAAABAgAAAAAAAAECAgD+/gAAAAAAAQAB/wEAAf///gEBAf//AQECAgD//wEBAf7/AQMDA/z8/P7//gEBAgEC/gAABP8C/QH+AP39/wQEBv8B/fn29wIGCA0HBwAB/wAA/QQCAv38+v79/v//AAEAAwEBAP7/AAAAAwD/APr6/fX09fTz9P/+/QH/AAAB/wAAAQAAAAD/AAABAAAAAAEBAAQAAQAAAAAAAf8A/wIAAgAAAQAAAAABAQEAAAABAAABAAACAQEAAQEBAAAAAQACAAEBAQEAAAEA//8AAAD/AAAA/wABAAAAAP8AAAAAAAABAAAAAAD/AAEBAAD/AP8B/wABAQAAAAAAAAEAAP8AAAEAAP8BAQH/AP8BAQIB////Af4BAgIC////AP8C/wL/AAAC//7+//38/P319P3l5+kKCQcSDgwFIhsQCQQDAwUBBP4C/wH//v4B//3//gAA//7/AP//AQEBAgYAAQMAAgX/AgIAAgEAAAEDAQEAAQABAAEAAAEBAAIBAP8AAAAA//8B/v8AAAAB///+/fr+AgH/AAIBAQIAAQP9AwMBAQL/AQH/AQD///7+AP4B/wEAAQICAQD+/v8A/wAA/wH+/v7+/f4FBwUCAgT+AAIFBAYCAgP9///+/v8DAwIHBwb+AP7/AP8EBAX/AP8CAQD9//4AAAH+//4DAwIAAgH9/P39/PsAAQH+/v0DAwf//wH+AP4AAQH//v4CAgEA//8BAgH//v8BAP8BAgIAAAAAAQH//wAAAQEBAAEEBAQAAQD9/fsCAgD//wQAAAABAgAA/v8AAP//AP7+/f4A//8BAgECAAP/AgH//v7///4BAgP//v4BAAAAAAH/AAAA//4CAQL+/v/+AP4EAgL/AAEDAQMAAAECAgMAAAD+/v4A/f4AAAACAgIAAP/9/f39/Pv//wD/AP///v7+/v4AAQAAAAABAgL9/f0A/gD+/v4BAAABAP8CAgP//////f0AAQH//wABAQD+AP4AAP7//wL////+/v4AAP8DAwH//wP//wAAAQIBAf////4BAAEAAQAAAAABAQEDAgL+/v3/AAIAAf8DAAP7+/z+/v4EBAP8/f0CAgIAAP8AAAL+AP8B/wL+/gL6/PoBBAQKBwcAAf/+//4DAQP+/fz8/P39/v//AAT/AP4DAAABAf7+//37+/z19fXw8PL39vn9/P7+/v4BAQAAAf7/AgIAAP4AAAIBAAD/AAAEAP8BAAEAAAACAQH/AQACAAABAAAAAP8AAP4A/wP/AQAB/wAAAv8A/wEBAv8AAAL/////AAABAQEBAP8A/wD////9//8AAAD/AP8AAQABAQEBAAAAAv8A/wEAAP8AAAEB/wAAAP8AAQH/AAABAAAAAQEBAP//AAAC/wD+AAEAAf8AAAAAAQEAAQAAAAAAAQAAAQEBAP8BAAD//P398vP13d/kCAYGBgUEKCEZEAcIAQEC/f73/vz6Af3/AP39////AAH/AgIEAv/6//7//gAAAgUHAP8DAAAB/wICAQICAP8A/wEAAwQEAP7+AAD/AAD/AAABAQABAAH/AwAB////AP8AAP/+/wD+AP79/wEBAAAB/gAB/gAA/wD/AAAAAgIBAAEBAgIDAAAC/f7/AP8B/P4ACAIEAwQGBAUGAAABAgMFBQQC+vv7BAICAAABAgIEAP39/f79AAAA/wAAAwQE/wAA///+/f0AAwEDAgIC/v78AAAC/v7/AQD9AgQEAwAD//3+AwMBAQL//wD9/f3///7//QMDAwMCAQAA/v7+AQH/AAD+AwMDAQIC/v38/v77/Pz+BQUBAwL///4AAAD/AAD/AQEAAAD/AAH/AQAC/wD/AQAAAAEB/gD/Af/+////AQAB/gD+AAABAP8B/wH+AAAA//7////+//8AAAH/AgIDAAD//f39AAEAAgICAAAAAQAB/v7+/v7//v/+AgEC////AAD//fz7/QECAgEB//0B/v7+AgACAP//AAAB//7//f/9/////wAAAgAAAP/+AAAB/v3+/v7+AgEAAP//////AQEAAQAB/wAAAgEB/gD+AQEAAQEBAgIC/f79AAECAgD//wEBAP//AQEB///+/v79/v78AgMC////AQECAQEBAAIC//38AgEC/wED/QL+AwYHBQQEAAAA/v36AgEC/v//+/v8/P7//wECAQICAf///v76/P36+/r69fb37/Dx7e7v8/b1+vz7/wAAAQAA//8AAQD+AQEBAP/+/wEAAf8ABAAA/gAAAgAA/v//AgAB/wIA/wEAAgEB/wABAf/+//8B/gEBAv8BAAH/AP8A////AQEAAgD//wAC//8AAf7+//7/AP7//gD/AAEBAAECAQL/Af7///8AAAAA/wAAAP8A/wIAAf8B//8AAAD/AAAA/wD/Af8A/////v////7///7+/v////3+/v7+/v/+/v////////8A/v8A/v7+//78/u3u8dPY3QYHBRAQDAwaFgYFAwH8/AH8Af8B/gD+/wAA//8A/wIAAAD/AP///QH8+wD+Af8BAQABAf8BAAIDAwEEBAEBBAABAgEBAQICAv//AP3//wABAgICAP//AP/9/gD//v8AAAABAAD/AAD+/gD//f///wEBAf8AAf8AAP0A/////wIDBQIEBgIEBgYFA/8BAwEEBAMGBv8BAQMFBQIEBAIDAQcCA/v7/AcIBf8AAQEEAfn6+QUEBf7+/f7+/wECAQICAv3+/gH9AwAA/wD/AQIAAf//AQAA/////wMEAv8AAQEBAP/8+wACAQAAAgICA///AAEBAAEA/////v/9/wEDAAEBAP////3+/Pv7+v/+/gUECAAAAQAAAAEAAQACAAD/AAAAAAD/AP4A/gECAgIAAP3+/gD///7+AP7+AAECAAEAAf7+/gABAQIBAgABAQIB/wAAAf/+//4CAAD//wD//v7//QIAAgAA//7+/wEBAf7//gEA/wAAAQECAv39/QD+AAAC/gD///4AAP79/gMCBP8B/wICAQD/Af7////+/wEBAAMBAv39/v8A/wEAAAD/AP/+//4C/gEBAAEAAP///gABAAIBAv7+/wAAAAAAAAEBAQAAAAEAAQEAAAECAQD//wECAgEAAP//Af39/wAAAQECAf/8/QMDAgECAv/+/gICA/////3+/wICBAQEBgAA//78/AAAAgEAAP37+f39/gIDBAIBAf8BAP78+/3+Afv8/ff4+u/x9ejr7unu7vX49/7//wAAAAABAAAAAQD/AP8A/wAAAAD/Af8A/wT///8A//3//wMAAQAB/////wEAAP/+/f8BAwACAAL/AAH+//4BAAEAAgEAAAEA/f8BAf8A/wAB/wD/AP/+/v/////+AP/9/v7+/v7////+///+//8A////AAD///8A/v/+AAAAAf8A/wEAAP///wEAAAAA/wD+//7+/v7+//////7+/v7+/v/+/v3+/v7+/f/+/f7//////wAAAAAAAQD+/v/y9PXe5Ocg5eoVEREUDAoEAP39/Pf8Afj/Av8B/wICAgIAAAH//wABAQEB/gAA/v0BAQH8/vwA/v0AAQD/BQUFCgwCBgcAAQL9/v//AAABAAEAAQEAAQEBAQIEAQD9//4A////AAD//v7//Pz///7//v0A/wABAAIBAAD+Af///gD8/QAD/wEDAgMFBwkBBAYBAgQEBwgDAwMAAgMEAwMCAwIBAQMAAQL8/PwCAwQEBAT8A/3+//4BAgP9/fwDAAL8//8BAgMBAAAA/wAAAAEBAgECAQL/AQAA//7//f8CAgP///4EBAL8/v4BAQICAgIBAP/+//8CAQAAAAD/Af/+/P0BAQEAAAH//////wADBAUBAgIBAQH//wABAgAB/wD///4AAAABAgL///8A//8AAAAAAP8BAAABAQEBAQMBAAH///8BAAL///8AAAEAAQABAwMBAQEAAv8BAP8AAP3/AP8BAQEAAAD+/gD///8AAQADAgMA//8GAgb8+/0A/v8BAgIBAAL+//8BAQEDAwQAAAH+//8CAAEAAAD///8A/wD////+AQD/AP4BAQH///8AAAAAAAD+/v4CAQIAAQD9/v8BAAEBAP//AP/////+/wABAAAAAAABAQECAf8BAQL9//0CAQEAAAD//wEBAQEEBQT+/f4BBAMBAQL/AP8AAQEBAQH9/f0AAQEDAwQBAAD9/v0BAgMBAP/+/Pv//v8DAwUCAwEAAAD//v3/AgP+/wD+AAL8AQL4/P32+Pv6/Pz/AAABAgAA/////wEAAf8AAAD//wABAAEAAf4B/wAE/wD+AP8C//////7+AAIBAf0BAQEAAQIBAf3+/wD/AQD+AQEAAAABAv4AAQABAAAAAAAAAQAA/wAAAP///////v///v/+/v///////v7//v/9AP8A/v/+/v3/AAAA/wD/AAD/////AP8A//8AAAAAAP8A///+/f7+/wD///3//v/+//8A///+/v3+/v7+/v7+/v7////+/v//Af7//gD/AP7//f775+fq2t3iIRsdCwkKCwQJAwcM/vr3/v38AP3//wD9AP4CAgD/AP7/Av8CAAIA///9//v6AP7+/f/9AfsEAP78AwYIAgUF/gABAAEDAQIEAQH///8CAgIBAQMDAwAC/v8AAQD//v7+/gQC/v0CAf79/v3+Af4B//8AAP8AAgUEAQMF/f8AAwMFAAIEAgQG/f7/+/v7AQMEBgUG/v/+AP8AAgD/BAQE/f0A/v79/v8DAgMD/v79AgEA/gEB/P3+BgYCAQEA/f78AQABAQEAAAECAP79AQMBAgEC/f7/AgQCAf7/AP7/AgACAAEAAQEBAAAAAP7//wEBAQAAAAEBAAIBAP8A////AQABBQUHAwICAAAAAAAAAAD/AP8BAP8A//8AAQAAAgAC/wH+/wABAP/+//0AAQIAAQAB/wD//wAA/wEAAP8AAQEBAAEA/v3/AgMAAgEC/f78/gABAf////3+AgICAAAB///+/Pz8AgEBAQIBAAAAAAAAAAEA/v/+BQEDAwQDAv7//v//AP//AQEB///+//8BAP/9AQECAQMC/v79/v/9AgED///+AP7/AAIB///9AAAA/v8AAwQD/v3+AgIDAAD/AP//AAAAAQABAgIB////AAD/AAECAAAAAAEBAQAAAAD/////AgIC/f3+AgECAAIBAQAA+/z8////AP8AAQAAAQIBAQABAAD/Av8C/wD+/gAA/gAAAQUEBAICAP////7+//8A/wH9AgIEAgIFAAD7/f4B/f8A/wACAQEE/f/+////AAD/AQD/AAACAAAB/wH+AP8A//8ABP79/gAB///+/wAC/v/9AAABAgEBAQIBAf8A/wEBAQEAAQAAAAEA/wABAQD/AAEAAP//AAAB/wAAAAAAAP7+/wD/AAAA/v7///7+//8A///////+//7//v39/wEAAP8A///+/wAAAAAA//7+AAAA///+//8A///+/v7//////////wD///7////+/////v39/gD/AP3//gD//////wAAAP////3+/vHv8tjY3hoWFQoGAR8WFQkKEf79+fz9+gAA+wD+AQL//gD9/wD+APwA/AIBBAEDAQL++v77+wAAAAD//P8A/v79+gH6Bf8BAgECBv8FBf8DAwAAAv0BAQABAgABAwIEAwEBAgMDAwMCBP//Bv7+/P7+AP8AAQEAAv//Av39/QIECAYFBQEDAwYHCgQJCf8BAf//AP79/v38/AMEBP7+//8C/gQCAwEBAv8A//z9/QACAQEAAf8AAQMBAv4B//z8/QUEAwAAAf3//gQCAv///v8AAAD9/wADAAQDAwD//gAA/v7///8BAQIAAQABAAEAAQABAQEBAQABAgD+/gECA/79/QEBAAABAQIBA/8AAP//AP///wEDAv/+/wAA/wAA/wABAQABAP//AQD///8AAAEC/wD/AP4A//4A/QD+AQECAQAB/wAAAAEAAQD//gIAAf//////AAEB//78/wICAf8AAQECAP/9//8A/wABAgICAv7+/gD/AQMC/v0BAQICAv79/QAAAP/+/gEBAf///gEBAf/+///+/wAB/gH///8A/wD///8A/v3+/gIBAQD//wD/AP3+/gMCAv38/P////8A/wD/AP///wD//wICAQD/AP//////AAAA/v4AAAEAAP8BAP/+AAAAAAEBA//+/AMEBP8BAP/8/gD/AAICAQAAAv39/wH/AgEBAAAAAQICAf7+/wABAQEDBAMA/wABAP///wABAAAAAwD+Av4CAwEDBv8A9/j4+Pb19fv7/P79////AAAAAAAA/wD/AQAA//8AAAEAAAAAAAEAAAT8/P0BAQH+Af4BAAH+AQAAAQIAAP8BAAEAAP8BAQAAAQAAAAD//wABAAAAAAAA/wAAAQD/AAAA////AP///gAAAAAA///+/v//AP8A///+/wD/AP7////+/f7/AP7//gAA/wEAAAAAAP/+/v//AP8A//8A/////wD/AAD///7//wD///8AAAAAAP/+/v7//gD//wABAAD/AAEBAAD+AP8AAAABAAEAAAHx8/Lo6ury9hz6/xMIBwcECg39//j++fUA/f4B/P8B+v79/v0A/v8AAgD+/gABAAACAwMAAQABAwICAQACAP8A/v0CAP////sB//4AAgMAAgIAAQP+AAH/AQEA+wIAAgL/AQIAAwMAAQICAgIDAgMAAgT+AAMBAgQEAwP+/wABAgMDBQb9/wAB+/4ICggCAwQCAwT/Af///wACAgP////8/v0CAgL+/PwA/f4A//8A/////wACAgIDAAH7+/z/A/4BAgQBAAD6+/oGBQUBAQT/AAIAAAMEAwT+/vwBAgMB/wD9//8A/wAAAAAAAAD/AAAAAAD+//8BAQEA/////v8AAP8A//8BAQEBAgEBAgAAAP4C/wP+AAAA/wD/AAAA/v/+Av0A/wH/AAAAAAACAQL/AP4AAAACAQL+//7//v////8DAwL+//4AAAAAAf/+/wABAQEB//8DAgEAAQL+/v4BAQH+//4AAAACAgIBAAEAAAABAf/+//4AAP/+//7+/v4BAQH//wD9/vwAAAEEAwX///8AAQH///8AAQD//v//AP8B//4A/v8AAwH//v7+/v3+/v8CAgD+/f4AAAD//f7/AQD+/v4CAQL//v4AAQEA/wD///8AAQAA/wD///8AAP////4BAAH///8GBwgAAP/9/f3+AP8DBAQBAP/+/v8BAgIDAv8A/wD//v//AP7//wD/AQMBAwEBAQD///3//gD//wD+/v79/v8AAAH7/P3v8PHx8PH9/fwDAgEDAwIAAAP//gAAAP///wD/AAAAAf8BAAH/AAD/AAEE/Pv8AQABAAEAAQEAAP8A/wIAAQEAAP8AAQEAAAABAP8A/wD/AQABAAD///8AAAAAAAAA////AAAAAAD///8AAP////////7/AAAA/gD/AP8AAAD///8A/v7+////////AAACAAD+//8B////AP//AAD//wABAP8A/wD+AAD/////AAAA/wAA//7+AAABAP4A/wEA//7//wD///8AAAAAAAAB/wAA/v399fb48/H2/PwA/gH//wMBAQcIA/wJ/v75AAP9AQQCAAUBAfv8Af0BAAEFAQEBAQEBAQED/wAAAAEBAf8BAAH/AAD+AAADAgED/wAB//39//39AQL+/wABAQIB/v8A/wABAQEDAQAB/f4A/AECAgYGAwcJAgQGAQMGAgcGBgYG/v8AAgEFAwIC/P39+vn7BggDAgMAAwMEAQIC/f3+/f7+AgMD/gECAwUG+vn4BAEC/v7/AQMB/f39AwMDAAEB//7+///8AgMD/wIBAAEAAP8BAgEDAQAC/f3/BAQFAP/+AAIAAf79/wD/AQABAwMD/wAAAAABAgABAgIB/f3+/v/+AP//AQEBAAABAAABAQECAAAB/wD+AQEA/v/+/wAA/wD/AP0AAgEAAAAAAQAAAAEAAAABAP//AQICAP/+/wAA/v3+/QAA/wD+AP8AAf0BAgICAQEAAQEC/f38AwMBAAAA/v7///7/AQEB/v/+//4A/wD/AAABAAABAAAAAAAAAAAAAwMD/gH/Af8A//7/AP//AAAAAAAAAQEAAP7//wD/AQAAAP//AQEAAf7//v79//39AgMD/wD//////////wD+AP4A//8A/QH+//8AAf//AAAAAQAB////////AAAAAAAAAAAA/wD/AQMCAP8A/wAAAQABBAMDAAEC/fz8/wH/AgECAP///wAAAAH+AAABAAAAAQECAQEB/wAAAP////77/v/+AAIBAwQE/v/++/79+vv89/n59/f4+Pj4/Pz8///+////AQABAQEAAAAAAP8B/wEAAAH/AQAABPz7+wAAAQAB/wEAAf8AAP8AAAEBAAD/AAAB/wD/Af///wEBAQEA//7/AP///wD/AAABAP///wD/AP//AAAB/wD/AAD/AAAA/v8AAP///wAAAAAAAAD/Af///v7/AAD/AP8A/gEAAAABAP///wAAAAAA/wAAAQD///8AAP///gAA/wAAAP//AQAAAAAA//8AAP/+AAD//wAAAQEA//8A/wEAAf8B/wABAgMCBevu8Nzf4xMRDQkZFAYCAwEEBQACBAEAAP8DBwAFBgIIAQD+AgIAAwH//gD/AAD/AQICAv//AAEAAQD//f8B/gH/Af////7+/v///wD+AP/8+/8BAv/8Af/+/v39/QD//wICAwACBP7/AP37/fz8AQQKBQYHCQEDBAEEBgkEBgAAAAECAgX/AAAA/wMCAv/+/f7+AQIBAAECAv79/v/9/AQCBgICAwQFBP7+/AECAgEAAQEC/wEBAgIDAgABAP39/AICAwIBAwD/AAICAAICAgEBAAAAAP7+/gEBAQEAAAMCBP4A/QAAAAEBAgD////////+/gACAv8A/wMCAv3+/v8AAAAA/wD///79AAIBAwAA/wEBAv7+/gICAv7+/wEBAf3+/gICAgABAQD+/wAAAAEAAQABAP7//wAAAAABAAAA/wH/AP8A//r6+AUFBQMDBQEBAAABAv/+AAD//wECAgEAAP///wAA/wECAwD//gH/AAMAAf0BAQAAAAEAAP39/QICA/z8/gMDBAICBAAA/f3+/v7+/wEBAAD/AAABAQAA/wEBAf3+/QAAAQECAv8AAP7+/gEBAP7+/v///wEBAf8AAAH/AQD///7/AAEBAP8A/wD//wD/AAACAP7+AAD/AQICAf///////wABAAIDAgEBAf39/QABAQIBAgD///4AAAD//wAAAAEBAQIDAwIAAP8A//7+/QABAgECAwMCAQL+//0B/Pr8+/z8/vz+/v3/AAABAwECBQAB/AD//wEAAAAA//8AAQABAAIAAQABAAAAAQEAAQT7+/wA/wEAAf8AAAEAAP8BAQH//wAAAP//AAAA/wAAAP8AAQEA//8AAAD///8AAAD/AAAA/v8AAAD///8AAAAAAAAAAAAA//8AAQH/AAAAAP8A/wEAAAD///8AAP//AAAB/wD+AQEAAAABAAAAAAD///7/AAABAQAA/wD+//8BAAAAAAH/AQAA/wAAAAD///8A/wD/AAAAAP8A/wD/AAAAAQAB/wECAgL7/Pvh5eYH0QYQEQ4PDQgVCwcBAgMBAQH/AQUBAgYAAwoCAgYBAQMA/wEA/vwA/f3//fz///3///4B/v//AP8A/v8BAAAB/v4A//4AAP7+/f///wD//vz/AAH//vwA+/78+Pr/+/4BAAEBAwMDCwz9AAH+AgP+AQILCQoGBQgDBAQAAP////8CAgH9+/38/P0FBwUCAQH+/v8DBAIFBgT4+PgBAvwCAgIBAAAAAAEBAQEAAP8AAAH//v8EAwX/AP4AAQD/AP8BAQL//wABAAIAAP8A/wEAAf/+/f4CAgIBAgIAAgEBAAIBAQH/AP8AAf8A//8AAAD+/f4A/wEBAgMA/v4AAP///wABAQL///////7+/QABAgABAAEAAAECAQL+AP8BAQEAAAACAAH+AAAB///9/v0AAQABAAH///8AAP///wD7+/sEBAQBAAACAQL+/fwCAwQCAgEBAAIB/v/+/f0AAQEDAQMB/////v3+//8BAQH/AAEDAwT+/v8CAgMBAgIAAAADAwMBAQEBAQABAQABAQACAQAAAQEA//8AAP/+//8A/v7+/v4CAQIAAAAA/wH//v4AAQEB/wAAAAEA/wABAAAA/wD+/v4AAf///wAAAAD//wABAQD+/v8A//8AAQD/////AAEBAQAAAQECAQL9/v0AAAADAwP///4A/////f3/AP8AAQECAwIB/wH+//7//v8BAQIBAQABAQT+//79APz+/P8BAQILCwwbGx4GBgkREBPq6Ojo6OX39vb9/f3//v8AAf8AAAEAAAEAAf8BAAEBAQEE/Pz9AP8AAAD/AAEB/wD/AQABAAAAAAAAAP8AAAAA/wAAAQEAAP///wAAAAAAAP////8AAAEA//8AAAD/AP8AAAAAAAAAAf8A/wEAAAAA//8AAAD+AQEB////AAAAAAD//wABAP7+/wD/AAEBAQAAAAD/AAAB/v8AAAD/AP///wAB/wD+Af8A/v//AP8AAAEBAP//AAABAAEA/wAA//8AAAD+/v8B/v/7APwB/wAG7fL14OXoJiAXEgkEAwH+AwP/AAIIAAQKAgQLAQEFAAEC//7/AP8C//v5/wD///z9Af/8+/v8Af39Af7/Af//Afz8///8//7///8A/wMHBAgK/QAA/QEEAP38AP76//j7+vX4///7Bg34BBQDAwYKAgD/+fb1AgQFCAoMAgQBBAIE//79AgcF/f39+/r7BAb/AQID+/v7AwUEBwcG/f38//8AAAEABQUF/v7+/f7+AgIA/wAB/wEAAgEDAQEBAQEABAQF/v7/AQICAQEBAQEAAAAAAAICAQABAAD///8AAQIBAAD9/wD/AQAB///+///+AQIDAP///v79//7+AgICAAH/AQEBAAAAAgIBAP8A/Pz8Af///f38AwMEAgEAAAABAQEA//////79/gD/AP////8AAgIB/Pz+AP//AAAAAgEB//38AQEB/v/9//7+AAMEAgEB/v//AgIC//7/AAAA/wD+/Pz8AQEAAQECAP8AAAAAAAAAAgEBAAAAAgEBAAEAAgIE/v3//wD+/f79AAEAAAIAAQAB/gD+//7//////v39AQEBAAAAAAAB////AgEAAAD//wAAAQEA/v7+AQAC///+AAD/AAD/AP8B//8AAQEA/wAAAQAAAAEB/v7+/v//AQAAAAEBAgEC/wD/////AgIC//8A//8A//8AAAABAQECAAD///8AAAEBAQAAAgIBAAD///8C/v79AQAAAQABAwICBQQE/gUGBgX9CwoNDg75+Pb19vYPAAAA+vn6+/v8///+AAD+AAAAAAECAQAAAQEABP38/QAAAP//AAABAAAA/wAAAQEAAP8AAAAAAAAAAAAAAAAAAAAAAAD//wAAAf8AAAEAAP8AAAAAAAD//gAAAQD//wABAf8A/wH+AAABAQAAAP///wEBAQAAAP8AAAD//gEBAf8A/wAAAAD/AP8AAAEAAAAA/wAAAAABAAAAAf8AAAAAAQABAAH//wACAf//AAEBAf8AAAEAAAAAAAAB////AAAA//////8BAfr7++fo6NHR/iIZEBoRDAoC/wIDAwEDCQACCgIECwAABP8A/f4A+f/9/gAC/wAC/f//+//++wH++v/4+QH6+gD4+fz49f/49/77/f4AAv4HDP8SFwISFAsSFfn39/3/AgIF+gQHCvTo6gL1+gAK9gIL+gL9/wMCAgIBAP39/AEDBf///gQEBP7//gICBQEDAfz8/AH//wEBAvv8/gQFBAL+AgABAAD/AP79/QEBAQMCAgABAAIBAv8A/wEBAwACAQEAAf//AAMCAf///wMCAf8A/wD/AAEAAQAB////AP/+/gICAgAA//79/QEAAf8AAP//AAAAAQEAAAAAAP8AAAABAAEAAf/+/QMDBP///wEAAQIAAP7//wH///38+wECAwIDAQAAAAAA/v7//v////z8/AMCAv8BAQMDAv39/v/9/v/9/f8CAAIBAgD//wIBA/7//wL//wEAAQICAvz+/QAAAAEA/////gICAwIBAv3+/v79/f//AAQEBAABAAABAQEBAgEBAAD//v7+/QIDAQICA/v6/P8A/f3+/AIBAf7+/gECAgICAv39/wEBAQMBAP////39/gABAAAAAQAAAP///v3+/gABAQIAAP8A/wAB////AAEBAQEBAP3//v7//v/+/wECAwAAAf//AP///wMCAv7/AP8A/wAAAf8A/wEBAQEBAf7//wD//wH///4AAf8AAAEAAQAA/gEBAQEAAQACAQECAAEBAQICAgMCAwEAAAAAAAABAgEBAv39//v9/f7+/wAB/wEAAAAAAAAA/wAAAf7/AAT+/f7/Af8AAAEA/wAAAAEBAP/9Af8B/wAAAAABAQEAAP///wABAQEA//8AAP//AAAAAAD/AP///wAAAAAAAP8B/wAA//8AAAAAAQD///8AAAEAAAAA/wAAAAABAf8AAQEAAAAAAAEAAAAAAAAAAAD/AAEBAAAAAf8AAAAAAQAB/wAAAAD//wEAAAIAAAABAAAAAP8BAAAAAAAAAgAA/gEBAQAAAQEAAAD/AAAB/wD++/zs7PDe4uczKyYIDAMDBQkAAgYAAwb/AgIAAAIBAP8B/v////3///v//Pv++vP/+PUA+fgB+f3/9vf88fL88/H/9vMA/f0AAggCCBP8+v8A+wACBw4KFRgJERby8O/99/cQEhb68O8ACQsCCQgBBQL49fcABAYFAAIBAwIB/wH+AAEBAwL+//4BAQMFBgP9/vz//v7+/f79AP8BAQMA/gAAAAD+AP8A//4DAgIBAQL/AP8BAAEBAQH//gECBAMA/wABAQH//v////4BAQH/AQAAAAAAAAEAAP8DAwMAAP8AAQAA/wD+/v4BAQAA/wD//v0A//8A/wADAgIA/gAAAQD8/PwAAAEAAAAA//z/AP8A/wAA///+/wADAQL//f4AAQD+//4AAAEBAQACAgH+//4CAAL//wAAAAD//v4AAP///v/9/v4EBAYBAQD+/v0CAgMAAAEAAQADAgL8/f3/AP/9/f0BAAH/Af79/v8CAQMDBAP///8CAQEAAAECAQL8/fsA///+//8DAgT///7///8CAwEAAP/8/fz+/v8DAwT//wH9/v0DAQL+AgH+/v7//v4BAgP/AP4AAAD/AP7/AP8B///+AAIBAP8AAP//AP8BAAL+/wD//f///v4BAAIBAQABAf//AAAAAf/+/gD////+/////v8BAgEA/wD//wABAAAAAP//AAABAQID/////wABAQAAAP///v4DAgL/AwQE/wD+/f8EAwIDAwEA//4AAP8CAgEEBAMC+gH+Af7+/v8BAP8BAQAAAAD///8BAQEE/gD///4AAQH+AAABAQEA/wAAAf8AAAAAAAAA/////wAAAQAA/v79AQEB//8AAAAAAAAAAAAAAQAB/wD/AAAA/wH/AAABAQAA/wEBAP8AAQEBAAAAAAEAAP4AAAEBAQD//wAAAQAAAAAAAAEA//8AAQD/AAH/AQAB//8AAAAAAAH/AQABAAD/AQIAAP8AAAIBAAEAAQACAQEBAQEBAQIAAQACAQEAAQECAgEBAQICAwIABQUE6uvw7PD2FBAXAQIDAQIE/gEBAQEA/wD/Af3+Av7+//38Af7///77/vr0/vXs//f3Avz/Avr//wD3///2/vv1APv9AAL8APwEAP8EAQQJ+enm/P/9BhIZEh0j+/j4+fb2CBYY+/v7AgkHBQkJBgMGAQQEBAUE/v3+AAME/v//AwAAAgIE/v79/v//AgIDAAL/AP4AAQAA//7+AQEBAAD/AAEAAgAA/wD/AP/+AQECAQIBAQEAAQECAP8BAQEBAAABBAUC/vz+/gH/BAMEAAEBAAAAAP8A/wD/AQAAAP8BAP//AAEA/v79AAAA//0AAAD/AP/+AQAA/v/+AgACAwIE/v79AP//AQEA/////v39AgEC/v//AQD/AAEDAwQEAAECAP/+AQICAP0CAP/9AQIC/f7+AQABAQMCAP78AP/+////AP79/wIBAgICAAAAAAEAAAABAQEDAQD+//7///3+/gH9AAAAAAABAAH/AAAAAQEA/wAAAQAA/v78///+AAABAgIBAAEAAP8BAQH+/v3/AAD/AP///f37AQD//wH9AP8A/f/9Av8CAP8BAQEBAAD/AgEC/v79/f7+AQEBAP8B///+AgIC////AQEAAP8BAP8AAAAAAgECAAEB///+/v8BAAEBAQAA/f79/v7/AQEAAQICAAAAAQEBAAD//v7+AAD//wD/AQEBAP8BAAIA//4CAAD+AgEBAAEDBAIB/AIAAAL9AQIDBQUGBgcHBgYHAQAC/wAB/v///v7+//////8AAQH/AgIB//8AAAAABAD/AAEAAQAAAAD/AQAAAAAAAAAAAAAAAQAB////AAABAP//AAAAAP///wEAAgAA/wABAP//AAEAAAEAAQABAAAAAQAAAAEAAAABAQEBAAAAAAAAAAEBAAADAAAAAAABAgAA/wEAAQAA/wEAAAACAAEBAAEBAgEBAAEBAgECAAIAAQIEAwICAgMBAgMCAgECAwICAQICAgMCAwICAgMCAgECAQICAwICAQICAgUEBAMDAgMCAgcGCe/x+AADCwMFA/8A/QL/BQABBf/////8/QH9/QL7+f/9+QH8/QX/AQH/Av39/P76+f8AAgAFAwMLCv74+/7++QAAAfz/+AP/+QH49P7xBwUMCwAM9vjt+xASFg4OEPr7+wb9/AD+/QYIBwQFBP8CAgMEBAECAv////8A//7+/wAB/v7//wAAAAEBAQAAAgQDAf3+/wEAAQECAwD/AQL//gAA/gAAAAEBAQECAAEAAAAAAgQDA/7//wEBAP7+/gABAQACAAL/AAEBAf8AAQD//gACAf8AAAD///8A/wEA/wD//wAAAf/+//4C/////v7+/QEBAQEAAAABAAEAAAMCA/39/P//AQD//f/+/f4DAwICA/7+/f8B/gH/AgMDBf8B///+//8A/wABAv8AAAICA/z7+wMCAQEBAP/+/gEAAQAAAQAAAAEBAv//AAICAv7+/gABAv8A//7//wABAP7+/gMDAf/+//7/Af/++wD+AAIEBAICAP7+/wICBP7+/QEAAQAA//7+/gD///7+/gD//////gEAAP///v39/gIBAwD+//8BAAICBP4A/wIAAf8AAP7//gD//wAAAQAA/wEBAf//AAD/AAABAv8A/////////wAAAAD+/f8AAP8BAAIAA/8AAP/+/gAAAAEAAwEAAP3+/wAA//////8AAAD/AAEAAQH/Af8BAAEA/v8A/wEAAgACBAIB/gEA//8CAQYFAfwHAQkL/Q34+vn3+vIN9fT09/gD+f37/P8A/QAAAAAAAf//AQABAAAAAQQAAAAAAQAAAAAAAf//AAEBAAD/AAABAP8A/wABAAAA/wAAAf8A/wIBAf8AAP8AAAEAAQECAf/+/wACAQAAAAAAAAEAAAABAQEBAAAAAQACAQEBAgAAAQACAAICAgECAgICAgEDAwMCAgECAwIDAgICAgIEAwMCAwIDAwMCAgMDAwICAwMDAgIEAgICAQICAgICAwICAgIDAgIDAgICAwMCAgIDAwIDAgMDAwMDBAQDAgICAgEGBAX7/P/4+v8IDgv//vwAAQQAAAT9+/3+/v8A/Pj++vYA+vX/+vwA+PwD/gP/AwcAA//+/f8CBgUCAgcB/QX99Pb8+vz//QD28/T++gIIBQgD9vf89fULFBr08vIJDw0FCAkA/wYBAgIDAwEEBQT/AAD/AAABAAH/AP/+/v8AAf0DBQUB/wH9/f0A/wEA//8AAP8CAQL+//8B//8CAQIBAwIAAAD//v//Af8BAgABAAEBAAECAgQBAAD9/fwCAQEB/wABAgL////+//8BAf8BAgIAAQD/////AAAB/wD9/v8BAQAA/wACAgL/AP/+/f7/AP8AAP8BAQMBAAABAQIA/v8A/wH///////8AAQAA/v3+Av8A/wEAAAH/////AP8AAQMAAP4CAgMAAAAAAP8CAQABAf8BAQEAAAH9/v0CAwIBAgH9/f4EBAIAAAH///8CAgP9//0AAAD9/v0AAP4AAAIAAAIAAf/+/vwB/gH+AAAGAQQA/wABAgICAAEAAQEAAAD/AP////7+////AP/9/v38+/wBAQL+/gD//v4AAgL/Af8BAQD///4B/wD/Af///gAAAAEBAgL//wD///8AAAD/AQACAgIA/gD+//0AAAEAAP7///8AAAEAAAACAAL////+/v7/AP8BAAH/AP7//gAA/wD/AP////8A//8BAAIAAv////8A/gD//wABAAABAgL//wH/AAH9Af4CAwQFAAMKCQMAAAD+/f/9+v319Pj19PX5+/r9/Pz//AD/AP8AAP8A//8BAAEAAP8E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CQsMEBX9BAYDBAgKDAf9//wA//8CAQL+AP7//P8EAwMCAAH+/v8BAQEBAgADAAQBAP7/AAAAAAEGBQf+/v8A/f4CBAX///8BAAAAAQAAAAABAAAA//////8CAgP/AAAAAAABAQH+/v4CAwEAAQH/AAEA/v4AAQD/AP///v0BAQAAAQH+/v3+//8BAAABAgIBAQD+/v7/AAH//v8A//8AAAD/AAACAQIBAQEAAAEA/wABAgMCAAD/AP3+/QAAAAEAAQECAgIA///+//4CAP4AAP4AAAIAAP0EAwP+/v79/v8BAQEA///+/v4DAwUAAf38/f0B/QIBAQIAAAD+/v0BAgD/AAEDAgH7//////3////9/v0BAgMAAf///wEDAgIAAQAAAP8CAgL9/P7///8AAAH+//8AAAH9/f3///8CAwH///8A/wD///8CAwH+//4B//8A/wABAgL+//8AAAAA//8BAgEBAQH9//7//v8CAgD/AP7/AAAA//7///4AAQEBAQH+/v/+//8BAQIBAAAAAQAA/wAAAAH+//8A//8BAQIAAAAA//8A//8AAAH/AAABAQAA/wD///8BAQEAAQEA//8AAP8AAAAAAAAAAP8BAQEDAwIGBgT9/gUHBwYGBgYDBAUCAwQAAQMAAQH+AP/+/v4BAf4BAAH/AAAEFxQSAgQDAgMDAwMCAgIAAwMDAwMDAwMDBAICAgMCAwEDBAQBAwMEAgMCBQMEAwMDAwMEAgMDBQQDAwIDAwMDBQMEAwQBAwIDAwIDAwQEAwMCAgECAgMCAwICAgICAwICAwICAgICAwMDAwEBAQECAgMCAgIDAwICAgIDAgECAgICAgIBAgICAQICAgECAQIBAgICAgEBAQECAQABAQEBAQIBAQEBAgAAAQIDAQEBAQECAQIAAgEBAAEAAwUC//7/AQECAQEB/gL/AAH8/wL//wMC/AEB//39Af77///9AAAB/fwCAP8C/QAC//r/AAUBAQcH/gcLAAMIBAUG+v3+BgcLBAYJ/gQE+wICDQ0OAAICAAIBBgMH/wD+AQD/AwIDAAABAP///wD/AQAA/v79AgEC/wH/AAAAAQABAP8AAP4AAwIC/////fz8BAMFAQIB/v//AAD/Av8C/wAA//4AAgEAAAAAAQEBAgEC/wAAAP7/AgIB//7+/wD+//7//wD//wMBAQEBAP8AAAD/AAD//v7/AP7+AQEAAAAA/v7+AAAA/wEAAQABAwIDAQEBAQAC//8AAAIBAQEDAQD/AAD/AQIDAf79/Pz7AgECAQIB/f3/AQH+AP8AAQIAAAD////+AAD/AP/+AAAAAAEB/Pz8AgIDAQABAQAA/////v79AQH//f/9Af7/AQEDAQEBAgICAgEC/wP///8AAQH/AAAA//7+AQIBAP/+/v4B/wAAAQECAAD/AAEB//3+AAD//P38AwIC/wAAAQICAP/+AQAB/v3+AP8AAQICAAD9Af8A//7//wAAAgMCAAEB/wD+//7+AQD//v7////+/wAA/wD9/v/9AgEE/v8A/v7+AAABAgEB/wD///8A////AAD///7/AAEBAP7/AAAA///+AP8B/wD/AAEA/v4AAAD/AP8A/wL+AQABAAD/////AAD/AQABAAEBAQAB/v/+/fz8+/v5+vr5AgEACgkIDAsL9fIJ+ff2AP/6AP////8AAAH/AQEBBBoYFAICAgECAgIDAQIDAgMDAgMCAQMDAwMCAwICAgQDAwMCAgMEAwQCAwMEAgMCBgMDBAMDBAQDAwMDAwQDAgMDAgMCAwMDAwMDAwICAgMCAgEBAgMDAgICAgICAgICAgIBAQIDAQIBAgIBAgICAQEBAgECAgIBAgICAgIAAAEDAwEBAgECAQEBAQEBAgICAAEBAQEAAQEBAQEBAgABAAAAAAIAAgEBAAABAgEBAQMCAQAAAgECAQEBAAIDAQAAAQIAAwED///+/gABAf8BAP0AAP4DAf4B/wH//P7/+gAA/wECBf3+AwEDCP8ECv8EBwAEBgEGCAMJDAEFBwf/Af37/v0CAAoMDAUHBwAB/wUFBQACAP8A/QIAAQABAAABAAIBAwEAAv79/QAB/wIBAQD//gICAwEAAP///gAAAQEAAAEAAQMDAgD+AAD//v//AwAAAQAAAAAAAgIAAAABAQEBAAAB/wD+//7//QAAAQEAAf7/Af///wEBAQEBAQAA/wD+//8AAf8A/gEBAAD///8A///+/v8A/wIAAf8AAf8A////AAECAAAAAP///wEDAQEAAQICAv/+/gEAAP4AAAECAgICA/39/fv8+wMEAwAB/v/+AgACAv/+/wEBAv7//wIBAQEBAQD+/wMDA/39AAICAv/+/gMDAwIBAQD/AP79/QMDAgD/AAACAAIBAgMBAgICAwEAAwEBAP/+//7//gEBAfz8/P//AAQFAQD9/wAC/wAAAP/+//7//QEAAAAA/wABAP/9/QMDA/8BAfz5+//+/gEBAQL/APz9/AQEAf8BAAMCAwEDAf7+/v8AAAEA/v7//////v/+//8BAP/+/wAAAf7+/P79AAECAgD/AP3//AEBAv//AP8A/wAAAAAAAQD//wD//wAAAAD+//8A/v8AAAEAAgEAAP8A//8AAAD+//8AAAEBAf///wAAAAACAQEAAP///wAA/wAAAAQEBAkJCfr7/A4NDvIMDfEH8PcEB/wD+v///gAA/gAA///+/wQVEhECAgICAwIBAgEDAwECAgIEAwMDAwIDAgMDAwMDAgMDAwMDAwIDAgQDAwIDAwQDBAQDAgQDAgIDAwMCAwIDAwIDAQMDAwMCAQEBAgIDAgEBAQICAgICAQIBAgICAgECAgEAAQEBAQIDAQEAAQECAQEBAgICAQIBAQEBAQAAAQIBAQEBAAIAAgACAQEAAAABAQIAAQAB/wD/AQEBAAABAAAAAAEBAQABAAEBAgEBAAEBAQIBAgAAAAEDAQIBAAIBAAECAgMBAv0BAwABAQIBAwL/AwX/BAb/AgD+//v/AAD+AP39AAIBAgUBBwcCCQsECw4DCw0CCQsBBQcBAwX//P3//gD/AgMEBgYDBAQBAgEBAgAAAAP///0AAAEAAAD+/v0CAgEBAgH+//8DAgL9/gIAAP8BAAAAAQIA//4AAP8AAAD//AADAgQBAQH+/v4AAgECAQH+AAACAQEBAQD/AP8BAAH+AAABAQEBAAH/AAACAQEBAAD///8AAQABAAEBAQH/////AAD///7+/v4CAQH/AAD//f//AgABAgD//f7/AAAA/wP/AAD/AAD+/v4BAQP+//8AAAECAgP+//4CAQL/AgIA/v38/Pn/AAQCAwP8AAEEAQb/AAD/AP8AAAAAAAECAQL/Av8B/gABAf//////AQECAQH9/f7///4CAwMFAgL/AQD//v7/AQECAQIEAwT/AAH8/fsAAAAAAP/+/gABAQEA///+/v4AAAEBAAD+/////fwA/wD+AP8BAgECAgP9/PwBAQD7/fz//v3+/f4AAP8BAQAAAQEBAgEA/v0AAgP/AAD/Af8A/v/+//////4AAAD/AAAA/wD/AAD/AAD///8BAgABAP7/AAAAAAD///7/AAAA//7/AAIBAP/+/v///v4AAf///gEAAQH//wD/APwAAQEBAAEAAAD/AP8BAgH+/v8AAAD/AP8C/wH+AAAAAQAAAQADBQMIAgcCAgT+/f8QEA/08/XzD/T59/b8/fn6/vz9/v4A/wD///8EFRQTAgICAwIBAQIBAgIBAwMBAgICAwIDAwMEAgMCAwEDAwMDAwIDAgMCAgIDBAMCAwMEAgICAgIDAgICAgIBAgICAQECAwICAgECAgMCAQABAQEBAQECAQIBAAECAwEAAAEBAQEBAQAAAQICAAAAAQEBAQABAQEBAAAAAAEAAAACAQAAAQEBAAAAAQAB/wEAAAAAAAAB/wD/Af8AAAEBAAAAAAAA/wAAAAEBAAAAAP//AAH/AP8BAQH//////v////7/AAQAAQMCAQIFAAMF/wIEAQIF/wQG/wUF/QL+/wD6/wL///8F/gH+AgEBAwACAwMDBQcIAQUG/wUHAwUHAwgCAAEBAgMFAQID/wAA/wD/AgECAAD/AAEDAQD/AAABAQEBAP7/AAAAAgIB//8AAQD///7/AQMAAf8AAQIB//8AAP39AAAD//7+AAECAAEBAgICAAAAAwEC/v/9Af//AQD/AP8AAAD/AP8AAQICAQAAAP//AQEB/v//AQAAAAEAAAEAAP8B/v78AQAAAAAA/v3+AQEAAwMB/v39//4C/wD//wAB/wD/AP////8AAP//AAD/AgAB//8AAAEAAgED/wMBAAD+/f37//7+/vz+AwEC/v78/wEDAQIE///+AAEA/wH/AAEC//79/wD+AQEA/wD/AwIC/f37//8A///++/v6//7/BgcH//8AAQIBAQACAgMF/v/+Av8D/f38+/r7AgMDAgIB/v//AP7+///+Af8EAgEB/wD/AwMD/v79AwIC/wAAAQIC/Pr7/v7+/Pz8AP8BAP3+/gL/AgEB/v39AAAA//39/wH//v///wD+AQAB/////wD//wAAAQAA///9/v8AAP8AAQAB/wAA/wAAAgACAAH/AP/+/v///wD9/v////7+//8AAP8AAQEA/wABAAAA/wAAAQABAAACAQEAAP//AP4A//8AAP//AAIB/wH/AQACAAD/AAD/AQICAwEDBQABBwgHCwoLCwwKCQsJBgkHA/cDAAEBAAABAAD/AQAABBIRDwIBAQICAQEBAQIDAQEBAgMCAgICAwIBAQICAwICAgMCAgECAgMCAQICAwEBAgMDAgICAwIBAgICAwABAQICAAEBAwEAAAICAQEBAgABAQEBAQAAAAEBAgEBAAEAAQEBAQABAAEBAQAAAAEBAgAAAQAAAP//AP8BAAH/AAAA/wAAAAAAAAEAAAABAAH/AP8AAQIA/wAAAQAAAAD///8AAAEBAQD+AP8B/gABAQABAAD//wAA/wAAAf7//v39/fz+/AIAAgECAgICAwIEBQICBAECAgACAv4DBv8FBv/9+v78/P/9Af7++wL9+wD7+vn29QAHCQQGBwMC/wQEAwIBAwIDBAIEBQEBAgAAAAD/////AAEDAgH+/v7+/gD/AQICAgEAAf4A/gH/AAAAAAAAAAAAAP7+/gEAAQEBAQMCA/7+/wAAAAECAQABAQEBAf///wECAQEBAQL9/v78/AECAQEBAQQCAf4AAf///wICAgAAAAABAQMDA/8A/v/+AP///wABAP///////gMDBP4A/vz8/AIBAP8AAAAA/v7+/wAAAP8AAAABAgAB/wD/AQAB////AAECAP//AAAAAAEBAQACAgECAv4AAAIB//r6+QMDBP0CAwQBAv8A/wABAPz9/wMCAv///v/+/gAAAP39/QICAgAAAv///f//AP/+/v4C/v/+/gAAAf/9/P4A/gEBAQEAAgICA/r7+f7//QMBAgECAgD/Avz7+wQDBAD/////AP8A/wAB/wAAAQABAQICAvz///7+/v/+/gAAAQICAQD/Af38/AAEBP77/gQFBP///v4A//3+AAEBAAAA/wEBAP/+/wEBAf7+///+AP79/gMEA/8AAP//AAEAAP8B/wAAAAD/AP////8AAAEBAQABAQABAP8A//8AAQD/AP8B/wD+////AAEB//8BAf8A/wAAAQEAAf8BAQH/AAEBAQAAAAAAAAABAQL/AQABAAIDAQMDAwUGBQYGBgcHBwcHCQQEBQABAP///wD/AAEAAAQMCQgBAgIBAgACAQIAAQABAQECAQMBAQECAQECAQMDAgIBAQACAQMBAgEBAgEBAQECAgICAgIBAQIBAgEBAQIBAAABAAABAQIAAAH/AAECAAEAAAAAAQAA//8AAAD/AQH///8CAAEAAQAAAAH///8BAAD/AQAAAAAA/wH/AAAAAP8AAQAA/wD/AAAC/wAAAQEAAP7+/wEBAQAA/wABAQH/AAAA//8AAQAAAAEA//8AAAH///4BAQECAgAA/gD8/f36+vwFBwYBAQIBAwQCAwUBBQYAAwMAAgUAAwYABQYB/AQAA/v+/fr//vn/+vn+BfkC+gb99vUBBQj/AgMDAwYDBwUDBAQBAgICAgL/AQH+AP8BAP8B/v8A/wACAgIA/wABAAAAAQAB/wH/AP4A/wABAQABAQAB/wH/AQD+/v4BAwMCAgT+//4AAQECAAH/AAAA//8A////AP8AAAABAwMA//8A/wD+AAEBAAH/AAD///4AAQICAAD/AQADAQP/AP79///+/v8BAQH+/v/+/v4AAAABAAD9/v4CAQH/AAAA//4AAAEA//7///4A/wEAAAECAgD/Af4A/wH//wABAQIA//8BAAEDAgQEAgP+/v4CAgH//v7+/f3/Av8AAgAB/wAAAAD8/P0BAQEBAQL///4DAQP+/f7/AP8BAQH+/v0AAAICAQABAQH////9/v4AAAAAAQAB/wEAAAAEAwT+/f0BAQIBAAIBAQEBAwQBAgECAgL///8A/wD+/v//AP8CAQP+/v0AAQEDAwIAAAT+/f3+/f4CAgH+/f3//PwBAQH/+/8BAgIAAAIAAgH9/f0CAQP+/f0AAP8AAAH/////AAACAwL///8A/wACAgEBAQIAAP/+/v7///8A//4BAQEAAAABAQAB///+AP8A//8A/////v//AP8AAAL+AP4A/gEAAP///wD/AQIBAAL/AAEA//4AAAIBAQAA/wAAAP7/AAAB/wADAgAGBgUKCgkPDg708vPz8/D29fL9/Pr//wD//wAEBgUDAQECAQEBAQEBAAH/AQABAAEBAgABAQICAQEAAAEAAQEBAQIAAQIAAgABAQEBAQABAAAB/wAAAgAAAAEAAP8B/wEAAAD/AAD/AQAC/wABAP//AP8A/wH/Av8BAAD+AQEB/wAAAP4AAAEAAQABAAH///8AAAAAAAD/AQAAAAAB/wABAAH/AQAB/v/+AQABAAABAQAB////AQEA//8A/wD/AAABAAABAQD//wEBAP//AQAB/////gAAAQEBAfz++vr7B/z9BAQDAQEBAQMEAgMEAAQGAQQFAQMGAQII/wH3AgP7AAL7/gD7AP/6/v76/vn2AggHAP/8//37+/z6AwUG/v4EAgEB/v4AAwQEAAEBAf//////AQIBAgEC/wD/Af8BAQEB/QD+AP8BAQD/AQECAgEB///+/wAAAAEAAP//AAIAAwID//7//gD/AQIDAP/+AP8AAQAA/v8AAAECAgMB//3/AP7/AQMDAgD//gD+AP/+/wABAAAAAAEB///+AP/+/v/+AgECAQAB/vz9AQIB/wD+AAD//f//AP//AAAAAgEBAQECAQABAQAB/v3+AQIBAgICAQEBAQAA/v8A///+AAAB/wAAAQIDAf7//v3+AQABAwD/AQIA/f79AQEBAQICAQIA/wAAAP7//wAA/wAB/v/9//8AAgEBAwMDAQEB/wABAAD//v79/v79////AgMCAAAB/v3+AP8ABQUFAgEDAQABAQMCAv8AAAAA/v39AAH//f3/AgIAAQIA/wAB/v3+AgEA/wMEAQEC/AP8//7///7//wD///39AgIC/v8AAgABAAH+//0AAf8A/f/7//8AAgEB/wD/AgID//79/fz8AQEAAQEB//8CAP/8//3+/v///v79AAD//wAAAQEBAQAA//7+//8A/wABAAD///8A/wABAAH//v//AP8AAP/+AAAAAAACAAECAQEB/v8BAQEAAAABAQABAAEAAgAB/wIAAgMDBgcHDAwMDQ0OCwvwCAYIAgICAP8BAAD///8ABAMDAQEAAAAA/wAAAAD/AAABAAH//wECAgEA/wH//wEBAAAAAv8A/gH/Af4BAAH/AQIBAQD//gECAv8A/wH///8A/wH/AgAB/wD/Af8A/wAA/gABAQEAAAH/Af4BAAIA//8AAAD+AQABAQEAAf8B///+AAEBAf8A/wEBAf4AAAEB/wAAAAH/AQAB/wD/AP8AAP8A/wIA/gEBAf//AQAA/wAAAP8A/wAAAAAAAQEAAP8AAAABAAAAAAH/AQAAAP7/APz7/vr4+wMLAwABAQECAQEEBQEFBwEGBwD49/8ABf78Av76/gMBAv4CAf4E/wIDAv4CAvj6+gL8+QYBDQD///z7+wIDBAMDAwICAf///gMCAwAAAAAAAQD/AP7+/wAA//8A/wEAAgEAAQAA///////+/gECAgAAAf///gD/AAACAAD+/gECAgIDAgEBA/8A//8AAAH//gAAAQD/AgD//wAAAQABAP8AAf7+/QACAAH/AP///vz/AAICAf39/gIBAwABAQMCAgAAAAIDA/z/+/79/f7//gAA//8A/wD/AQEAAPz+/v8B/QMDAwEBAAIBAP/9/v7/AAACAf/+/QEBAQAA/wAA/wAAAQMDAwAAAP7//P79/v38/fwE/QAAAAECAgABAQEBAQEAAP8A/v/+//8B////AQIBAQIBAAECAv/+AAH//////wAA/wICAwAA/wICA/4AAAIDAv8AAQEABAAAAAABAAD+//8AAP/+AAABAAAAAQAA/vz9/AUCBAD//QEB////AAEAAAABAAICAf8DAwD///77/f8AAP//AP///f8B/wICAwD/AP//////AAAAAP8BAQEAAf39/P39/QECAQIAAP7+/v///f////79/P7//QEAAv///v8AAAEBAAEBAQEAAP//AP8AAQEBAgD//wAAAP7//gAAAQAA/v///wAAAQABAAD//wICAwIBAQD//gABAgABAQAAAf8BAQIAAAMDAwYGBQoKCgkICAYHBwQFBgIBBAEBAv/+/QABAAQAAQD/AP8A//8BAAIAAQAB/wAAAQH+//0B/wEBAgEB//4CAQAAAAL+AAABAP8BAAD///8AAf4A/gD+Av8C//8BAgH//wAAAQH//wACAAD//wABAv///wEAAv8A/wH/AAEB//8AAv//AP4AAAIB/wAA////AP8AAQH///8BAQEA/wEBAAD/AQAA/wEBAQEA//8CAQH/AAD///8BAQEBAAAAAP8AAAEA/wH/Af8A//8BAAH/AAABAQD/////AP8C/gL9Af34+PkEBQQFBgIBAgICBAUCBQYABQYBBAYBAQX+AQP6+vsE/QEDDgn/Agn/AwQCCAf+BAP9/f39/PsEBwoEBQQBAQH/AP4BAQMBAgIBAQABAAEAAQH///4AAP//AAAAAAAB//8AAQECAgH//wD+/gD9/f4CAgICAQICAwMAAQIA/wH//wABAAEAAgEBAAEC/v3+/v/+/v8BAQL//wH/AAAAAAABAP/+//4B/QD/AQAA//8A/////wMBAQIAAf8DAgL8/f3//v//AP8CAQL7APz///8A///+//4BAAEAAAEAAf///wH+/v0B/wIA/wEAAv///////f0AAAH/AAH//wD+//8BAAEAAQP/AP4AAQIAAv8AAQD+/v0CAgIBAQAEAwL+/v8AAQECAwH/AP8A+/0BAQD///79//8DAQQAAP8AAP////4BAQEAAAEBAQL//wAAAf8DAwMA//7+AP8A/v8A/wABAgD+/v79/v8BAQH+/v4CBAP9+/oD/gAAAQIBAP//AP8BAgH//QABAAECAgEAAAEA/QECAAIAAAD//wAA/v/7/PoAAQACAQIAAQIAAQIA////AP7///8A///9+/z/AQABAAH+//79/Pz7/PoCAgIBAP7/AAABAQD+/v////4BAQIBAQMAAP4AAP7//gEAAAD+AQAA/wD/AP8AAf8BAQMCAQACAgEA//7///8BAQIA////Af8BAAEAAAAAAQECAgEFBAQGBQUHBwUJCAcMDAwLCg78+vn7///+/v4EAf///gAAAQAB/wD/Af8B/wEAAQD+Af8C/wEAAf8AAAEA////Af///wAAAAD+/wECAAD///8AAgD+AP4B/wIBAP8BAQD///8AAQAA/wD/AAACAP8AAQEAAAABAAD//wABAQEA/wAAAQD//////wD/AQAAAAAAAf8AAAIBAAAAAAAA/wABAP8AAAEAAAD/AAEBAP8AAAEAAQABAP8A/wD/AQEAAAAAAAH+AP8AAAEB/wD/AQAB//8AAAH+AAAB/v////39+foAA/j4AgMKAQIDAgQFAwUHAAUG/wMF/wIC/wICAQQF/Pb3//b5BwkD/wIG/wIEBQcK/wACAQEE/f3+/Pz9BQYBAwMDAwICAAIBAQECAQEBAP8AAAAAAQICAAAAAAD/AAABAP//AP8BBAMF/wP//f7+AgAB/wD///4AAgMCAgMCAAAB//////38AQIBAgIBAQAC/f7+////AAAA/v3/AgMAAAD+AgIBAAAAAP///wD//wAAAP/+AAAC/vz+/wMBBAID+//8/vz9/wD+AP8AAP//AAEA//7////+AgICAQAC//7///8A/v7/AAEAAP8BAgEA/wEAAP//AP//AAAAAgID/P3/AwQF/v79/v/+/wEA///+AP/+/v8B/fv6AQIH////AQAAAAAA//7+//79AP7+AAAB/v39BAID/gAAAP/+/v38AQID////AQIBAP///wD/AP7/AAICAf7//gH+///+AP8BAgEC/wL///7+AwMD//7/BAME/f3+BQUD/QAAAAAAAAABAQECBQYG+vr6/fz9//8AAQMAAf8CAwMA/v79AQAA//8A/v/+/wD+AQID//7+/wD//fz9AQAAAgIC/f39/v39/f79/Pz9AgIC/v8BAgECAAEBAAAAAQEA/wD/AAEB//8A/v8AAQD//wD/AP///v8BAAH///8AAP//AQEAAQD//f/9AQACAQEDAQH//wD/AQD//wAAAgECAAAAAgACAgL/BAUECAgICQkJBgYIBgYGBAQF/Pz7AAH/BP4AAAAA////AAAAAAAAAAEAAAABAQAB/wEAAP8AAQEAAAAAAAAAAAAAAQAAAP//AAEBAAH//wAAAQABAP///gAAAAAAAgD+AAABAAAAAQEB////AQEA//8AAAABAQEA////AgEA//8AAQEB/wD/AP8BAAEAAP8AAAH/AP8B/wEAAAAA/wEAAv8A/wD/AQH/AAAA//8AAQEB/wAA//8AAQD/AAABAAD/AAAAAAD//wAAAQAA/wEBAP8AAAH/AQAB///+AP4A/fj3+gMDBAgIBgMCBAMEBwIDBAEEAwAFA/8DBAAEBwAF+/v39frv7QsIDwIDBv8CAwYIDAMECAYGCQIDBP//AAD//////wIAAAAAAAH//gABAv////79/QECAgAAAAAA////AAEB//3+/wIBAgICAQD/AAEBAv/+AP39/f7+/wQEBAIBAf4AAv/9/v4A/gEBAf//AAICAf8AAf8A//7//wEAAQD+//8A/gD/AP8A/wEBAQAAAf///v8A//79+/79Af7//v7+/v7+/f/+/v39/QEBAQABAfz9/AgCBP/+/wIDAP7//gH+/gEDAwEAAQH///8AAAEAAf////7//QMDA////wEBAAAAAQIEA/36/fz9/AMFBAIAAwICA/39/QEBAQEAAQABAAD+/wAA/wAAAP////79/vv7+/8AAP0CAQH8/QQEBP7+/wECAgUGBQD/AQEB/gD+AAD////+/v/+/gADAfz+AAAAAQAA//7//QQEBfz6+gAAAPn5+gEBAAEBAf3+/gD/AAEAAQUFBf39/QICAgD/AAICAP//////AP7//v7+//8AAAMBAP3+/v7//wD//gD/AQAAAPf4+AL/AP//AAECAQQEBAEBAQAAAP///gEAAQABAf/+/wAA///+AgAAAAEAAAABAQIBAAAAAQAA//4AAQEBAAAAAAD//v39/wEBAAEC/gMBAgAAAAEAAgD/AAEBAAAA/wEBAQAAAQIBAwQEBQUGBwYHBwcGBgUGBgQEBgEC+AH+AQT/AP4A//8AAAAAAAEAAAIAAAAA/wAAAQAA/wECAf8AAAIAAAH//wECAf8AAAEBAAAA//8AAQEAAP8A/wD/AAEAAP8AAf4BAAIAAAAAAAAA/wAAAQD/AAEBAP8AAAAA/wEBAQD//wABAQAAAP8AAAH///8AAAABAQH///8BAAD/AQAAAAAAAP0A/wAAAAL/AQEAAAAA/wD+AAABAAEAAf///wEAAP8BAQEAAP///wABAQH/AAD/AP4B/wIAAP8AAAAAAAAA/gH8/Pz39/oCAgMEAwQCBAYCBAQCBQIAAwIBBwsBCP3//f4A/f/+Af75+vYMBhQCCgoCBwcCBQMAAQIAAgMCAwMAAQH/AP////8CAf8AAQEAAAABAQEBAwP/AAABAQEBAAAAAAD+/v//AQD+Af8CAAEBAgMAAQEAAQH//v79/v38/P8EBAMA/wEAAAEAAAH//v8A/wD+/f0CAwMCAQD//wD///8BAQABAQH+AP7//v7/AAH//v4CAQECAwH+/v//AP7+/v7///4AAAD/AAAAAAAAAP8B/wAB/wD9/f4DAwP+/v8C///+//0A/wAD/wD/AQIA/wD/AP8BAQH//gD+//8BAQD+//8CBAL+/v8CAwIBAQD5+fgJCgQAAQD///8A////AwIA/wACAgD8+/4AAAD9/Pv9/v7++/8BAgAA/QEDBAP9/QH/AAAB/wD//v7//wD///4CAAD7//8AAQD//v//Av4AAAACAgT+/gH+/v0AAAAA///8/v0CAQEAAAH///8A/v7+/wAEAwQB/f8DAwT+/P0CAgP+//0A/wD+/v7+////AP/6+Pn/AAABAwEDAwT//v/8/Pz+/v4DAgX/AgIA//3+/v39/fv+/vwAAAACAQEBAQD//v4A/wAA/////v/+AP8BAAEAAQIBAgEBAgIBAgP/AgQBAQEAAAEBAQAAAAABAAAA////AP7//wIBAf8CAAIAAAEA/wAAAAAAAAABAQADAgMHBwcICQgHCQkGBwcEBgYC9wT9AP4EAAAAAAAA////AAAAAAH+AP8CAAEBAP8BAQEB/wAAAAAAAAABAQAA/v8AAgEA/v//AgH/AAABAAD/AP8AAQH/AAABAP8A/wEAAP8AAAEAAAAAAgEAAAAA/wAAAf8AAAEA/wAAAQAAAAAA//8BAAEAAgAB/wAAAAAAAAEAAAABAP//AAD//wEBAf8B/wH/Af///wAAAAECAP8AAAH/AP7iYJ+WAAEAAElEQVQAAAECAP8AAAAAAQEBAQEBAAEAAAAAAQACAP8BAAEA/wD/AAAC/wD/Af0A+fr6AgIBCQkHAwQHBQcI/AUBAAgEAfwHAv0LAAEC//v5CAUK/gD89/TxBwkMBQMCAwUCBAYEAgQEAAABAAICAgMDAgEB////AAAAAAEAAAIBAAAAAf7/AQEBAAABAAD/AQMAAP//AgEBAAAAAQEAAQECAAEB/wIBAf0B/wAA/f3+AQEBAAEBAQAB////AgEC/wAA//7+AAIBAP//AAD//v3+/wH/AQEBAgIC/wAA/AD9/v8A//4C////AP8AAgIDAP8A/gD+AAD//v7/AwQD/////v8A/f37AgEA/wEB/wEAAQEBAP7+/wEB/v8AAQAB/wAAAP8AAAD+//4A/wD//v3+/gAA//8A/wABAAEC/f37/v79Af8AAAAAAwIBAP4A/wABAAAAAgIB/fz9+/z7AQAC/v77BQMFAQAB/v79AAEBBAMEAQAB/Pv8AAAAAgIDAQAAAQEAAAABAgQCAgID/f3+/v7+//7+AQEB/f39AQEBAQABAQIBAAAAAP///v///P38BAMD/P3+AQEBAQMD///+AP8A/f38/f39AP//+vr7/v/+AQECAQAB+/r7/P38AwIDBAMD+/v3/fv7/v/6/f39/v39///+//7/AP7//vz6/vz6/v3+///9Af3+AAECAgEDAwUHAQQEAQICAQMEAgUGAwQHAgQFAgMCAgIC/wIBAgIB/v39AQMC///+/wABAAEAAgABAAD/AAABAQEBAgMBBQUEBwcHAwUDAgMDAgMCAQMDAPwCACuB1H4EAf8BAAD//wABAAAAAf8BAAEAAAAAAAAA/wD/AQACAAAAAAH/AAEBAAEA/wAAAQEAAP8AAAEAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAAAAAAA/v7/AQEAAQABAAEBAAABAAD//wABAQEAAQAAAAAA/wAAAAEB/wD/AP8BAAD/AAAAAAABAQAB/wAAAAAAAAAAAAABAP//AQEB/v8AAQAAAQD/AAABAAAAAP8A/wD/AAAAAAH/AP8CAAD/AAABAP8AAQD//wAAAQEB//39+Pj5AQAACgkEBQcN+AYIAQcDA/0EAQAI/wAB/wED+vv8BgcBAgL///v5//78AQID/wH/AAIBAgQFAgIBAf8BAQICAQEA/wAAAQEBAQIB//7/AAEBAQAB///+//8AAgIA/gAA///+AAEC/f7+AQEAAQECAQEC/wAAAQEBAQEB//8A//7/AAD/AAD/AAABAgEBAQEC/gD//v7+AQAAAQICAP///v7+AQEAAAIAAQD///8BAAAAAAAB/wD+//4A//////7+AP8AAAD//v79//8AAgEB/v39/QL9BAUGAf8B//7/AAIA/v7/AgH/AAEA/f3+AQEBAAAA///9////AAEAAgAA/P/+AgEBAQIAAAD/+/r7BgYCAAAA/f3+///9AwIEAQEDAQID/f76AQEBAQEBAgAC////AQH+//4A/wH9/gECAgIC///9AQECAAD/AAAAAgAAAAEC+//9AQEBAAABAQH//gD+AP8B/P38////AgEAAQABAAAA///////+AgED/wABAwQE/v7+Av4A/fz7/P77/Pz9AP/++/z7/f79AwMD/v7/+/v8/v79AgIB+/r29ff3/Pv4AQD+/Pr68fDz8vHz+/n59fX1+Pf3/vv3Av76BAAAAwEAAQD/BQQDBgIHCAkMCAoLCAwLBQoJBAgLAwgJBAoKBQcJAwYGA/8D//8CAAP+//7//wH//wH/AQAB////AQEBAAD/AQEBAwMDBgYGCgkJDAsLCQkKBgUGBAQE+vn5BAEBA///AQEB/wAAAP8AAAAA/wAAAAAA/wEAAQABAAAA/wD/Af8BAAEAAQD/AAABAQAB/wD//wEAAQAAAAD/AP8A/wABAQD+AAEBAP8A/gAAAgIBAQAAAAAA//8A/wD//gD/AQICAQD/AP8A//8AAAEBAQEA/wD/AQEBAAAAAAAAAAAAAP8AAAAAAQD//wEAAQABAAAAAP///wABAP8AAQD/AAEA//8AAAAB//8AAQH/AAD/AAAB/gAAAAAAAQAAAP8AAQEBAf8A/wD///38//f3AAICAQgECgcJE/35+Pz9//79/QH8AgMCBv36Bfn7/wT7/wH9/v/9/v/+/wIDBAMDAgIBAAIBAwAAAP7//wIBAQICAgEAAQAAAAABAAAAAAABAQEAAgEB/wABAAIBAAABAQEAAQABAf//AAAAAP///gIDAv/+/v79/gACAQAAAP/+/wECAQD/AP8BAP/+//8AAAMDA/38/P78/QIDAgAAAP//AQH+/gD/AAD//v37/gAAAAAAAAAA/////v39/f79/AAA/wH+AgIC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AAEAAAAA//8A/wEAAAD/AAABAQD/AAEA////AQAA/wECAAEBAAAAAAAAAAD//wAAAP8B/wEAAf///wEBAQH/AAAB//7/AAEBAAEAAAH/AP8AAAAA/wABAgAAAP8BAAAA/wEAAf8AAP8AAAEA/wD/Af8B/wH/AAABAP8AAAEAAP7/AAEBAQAAAAAA/wD/AAAAAQAA////AQEBAP4AAAEA/v//AQEAAP8AAQL/AP////8A/v79/fv9/fwADQsGBwwBAQEBAQICAwn9/fwBAQT8/v0IBQIFBgUBAAEAAAECAQIAAAEAAAEB//8AAQECAgIBAQD//wAAAAD/AAAAAQEAAAABAgIA/wD/AP8BAQH////+//8CAQIAAQD/AAEA////Af7//wABAQIAAQEBAQAAAAD9/f0AAQD//gAAAP7///4BAP8AAQEBAAABAgD9+/3+/gECAQEAAP/9/PwCAgIAAP4CAQL9//7+//4A/wD+/v3//v8AAP/8/v0A/gL8+/wDBQQCAAAA/v////8B/wD+AP0A/wEBAQD/AAD+/fwBAQIAAP/9/v7+/v4AAAABAAH//v///QABAf///f7/AP3//v4BAwL//f7+AQACAwL/AP4A/wH9//4BAAECAQEBAQH/AP8A//8BAQD+/v8CAv8CAgMAAQAAAv///v7+//8DAwT///7+/v8B///9/fwBAQIEBAX7+/oHBgf6+vr/AAEBAQACAwH9+/4CAgL+/wAEAgT+/v3//gD///4CAgH8+//+/v4FBgT19POytLvHydDv8/b8/PoA/wD9//4AAP//AP//AAEB//z9+vQB/fQJBvgSEBENEQ0DCQgHCAMODggICAMLCQcLCwsVERIOCAn78vLw+PMCDQsIARX9BAYB//0DBQoGBwoGBgkGBQgFBQcCAwQBAgIBAQEAAAAAAAD/AAACAQAAAf8AAQEBAQEDAgMDBQQCAwIB/wAAAP////8EAQQEAf0BAv79AAAB///+Af///wAAAgAA/wAAAQD///8AAQEA/wAAAQEA////AAEAAQAA/wABAQAAAAAAAAD/AgEBAP//AAEA/wAAAAAAAQEA/wAC/v8AAgAA/wH////+AgABAAEB/wD/AAD/AQAAAAABAP8AAAAAAP///wAAAAEAAAAAAf//AAEA//4AAAH/Af8B/wD/AQABAAEA/wD+AAABAP//AAAAAAD/AAACAQD//wABAAABAP/+/wAAAQEAAAABAP///wH/AP39/wD/AAD//v3+//78+vn9/wH/ExMTBQgOAf4AAQEF/vz7AQIGAAQHAwQEBwcFBAQHAAEDAAEBAQECAQIAAQEDAQEAAAAAAAABAgMB/v7+//8A/wAAAAABAf8AAQAB/wD///7/AAEAAgABAQAAAQECAAH/AgADAAEA/f79///+AAAAAQEBAQEBAAIBAAD//wD9///+/v/+AQAAAP7+AAEC/wD/AgED/v/+//8A/v7/AQIC/v/+AP8A/v/8/gD//v///v7+/wD/AQAA/v8AAf//+/37//7+/Pz/BQEC/QD+Av/8Af4CAAAAAgIA/v39AAEAAP8AAAAB/wAA/fz8///+AQIB/wAA//39AP/+///9AwIA/f0B//79/wEC/wEBAwD//v39AAD//////v4AAwME/f/6/v79/v7//wH9AQEBAgMBAQD//wD+//4C/v79AQD//fz7AAAAAgIB/f7+/v/+//7/BAUEBQYG+/z7/////v7+AQMCAQECAAECAAL//f7+////AQMDAf0ABAP//f0B+fv5+/38AwQE8/Hzqauyx8nN9ff5/f//AAAA/v7+AQD/AAEBAQABAwMB//4A/fz5+vjv//wLBwUQEhAIBg0PBggEEREMDAoIEA0MDg4NCggGAP3+/Pn1BQ4P/PYQ/vv6AAj8//38/wUJAAUHAAUHAAIFAAIFAQEEAQEBAP8B/wEA/wAAAgAA////AAEAAf8BAAABAQAB/fz+9/j4+vv7/f39/v3+BAMCBP8AAf8AAAEAAAH/AP///wH/AAAAAAH//gAAAQEAAAAAAAEA////AAEBAAABAf8AAAEA/wEA//8AAAEAAv7/AAIA//8BAQH/////AAACAgEB//8AAP8AAAAAAAEAAf8AAAAA/wEAAQD/AP8AAAEA/wAAAAABAf//AAABAf//AAEB//8AAAH/AAAAAAAAAP///wABAQAA/wAAAQEAAAD//wAAAP/+AQABAAAA/gAAAQAA/wAA/wAAAAABAAD/AAAAAP8BAAD+AP///v7+/v7+/fz7+/z6+/v++/r9/AoMCw4MDAT+Cf8AAAAE/QIDBQQICQEEBwIDBAEDAgIDBQEBAwEAAAAAAAIBAgEDAQABAQEBAQD//wICAgD//v//AQABAAIAAf//AAH/Av7//v///wEAAAAAAAICAQEBAgAA/v39/f///gICAgAAAAAAAP///////gAAAP7+/AAAAAEBAf//AAABAAAA/////wABAQEAAgAA//8A//7+/wAAAQEAAPv9/wEC//8AAQABAf/+/v//AAD//gD///78/P/+/////wAB+v8B/wQEBAEBAP7+/P//AgAAAAIDAf/+/wICAP7+/wECAv///gH+Af///gAA/wAA////AAD/AP/9/v4BAQEA/gEDA/8A//7+/gD//wAA/wEBAPz7+wD+/v79/f8AAP////3//wYDBv/+/f7+//4DAgH/AP7//v39/AMEAv//Av//AAICA/3+/gAAAP39/AIBAv3+/f4A/gL+AAAEAgD//gMCAvz/AAABAAD+AAICA/////7+/fr7+wD///r7+7i5vs7P1vb2+f3+/P4AAAMEAwMCAgD//wD/AP8AAAEAAP4B/wD//vj38/Xz7f36FwwKBhMXFAYJBBERCxANDBEODQYFBfv8/Pn29QEC/wEBAf0AAfr8+//7+f/7+vv8+/7+/f79/f///gD//wAAAAD/AQABAQAAAQEAAAAAAAAAAAAAAgEBAAAA///////+/f38/Pz8+v39/f3+/QQAAgQCAAABAAD/AAH+//4A//4AAP8A/v//AAEA/wAAAAAAAAD//wABAQAAAAH///8BAAAAAAH/AP8AAQL///8BAQD/AAAB////AQEBAQD//wAAAAABAAD/AAABAAAA//8AAgEA/wAAAQAAAP4AAQH/AAABAAEAAP8AAAEA//8AAQAA/wAAAAH/AAAAAP8BAAEBAAD/AAAAAAAA/wD/AAAAAP8BAAD/Af8A/wEAAQAAAAAA/wAAAAAAAAAAAAEAAP////8BAAD+//7+/v78/Pv6+vr5+Pn8+vr+AP77/v0O9fYNCwwBBAQCBAICBAECAgQDBAQDBgUBAQEBAgIBAQEAAQD//gABAQABAwICAgEAAQH/AAAAAAAAAQAB/wIB/gAAAP8A//8BAAD/AQACAgL//wACAQL/AAH////+/v0BAQH+/v4CAgIA/wD+//4BAAD//wD///7+//8BAQEAAQD//v8BAAD+/v8AAAABAQD+/v/+/v3//wAAAQAAAQD//v79////AP7+/f8CAgL//f4AAAD+/v39/v4B//4AAQH+AP3//v8D/wP9/Pz8+/oFBQb+/f4CAgH+//7//wL9/v0DAf8AAQIA/f0AAgEBAQH+/P3/AP///P0BAgD9/gD+//8B/PwCAQIAAAEA/QP9AP8DAgMA//8BAf8BAgH7/Pz////8/PwCAwUCAwL8/PsAAgICAQL/AAADAQL///8BAgEAAAD+/f3/AQH///8BAgH8/fsA/QECAQEBAgMDBAT6+voC//4AAAIDAwP+/fz8//4BAQL9/f0A/wD+//0CAgH+/gHU09bR1Njy8/T7/fwBAQAAAAD//wACAQD/AAH/AP8AAAD/AQEAAAACAgD//vz39vX59/YEAwANDAgICgUSEA4QDQ0KCQf9/v7/+/78/fz9/fz9/Pr59/f7+foA+PgC/fv++fn9+fr//fz+/f3+//4C/wABAAAA/wAAAQD/AAAAAP8BAQIA////AQH+///8/fv4+fn39vX7+vr7+/v7/PsEAgECAAIE/wAA/wACAP/9//79//7+/wH+AQECAP//AP//AAAAAAAB/wAAAAD/AP8BAAEA/wD//wAAAf//AQEB////AAEAAP//AQEB/wABAQD/AAAB/wD/AQABAAAAAAEAAAAA/wAAAP8AAQEBAf8AAAAAAAEAAP8AAAD/AAAAAP8C/wH+Af8A/wEAAQAAAP8A/wEBAP//AAEAAAD/AAAAAAABAAABAP//AAD/AAAA/wAAAAAAAQAA/wAAAP//AP8A/v/////+/f38+vr7+vj59/j4+vn4////BQcHDQcIBwYJAgIFAwD/AQUG//79AwMEAgMDAgMDAwUFAgIDAQEAAP//AQICAQMCAgEBAgIC/wABAQAA/wH/AP3+AAD//gD+AQABAAAAAAAAAAAAAAEA//8A/P79AgICAAAAAAEB/wD/AQEBAAAAAQABBAID/v/+/v79/v7+AAECAQIBAQEA/gD//v3+//7/////AQEBAAEAAAEB/v78AAAC/v79AP///v7+AP///v78AQEDAAEA/v39AP//AP/+/f38AAEAAAAAAQAA/Pz9BAUC+fn6/v/+AQEC/wD/AAEB//7+/v39/wH/AAAAAgIDAgAD/v3+/AD9AgH//v79AP4AAgIB/gAAAgID/vz9AAIABAUE//39AAQAAAAAAwID/gL9/f39AgABBAUF+/v8/wAB/v7+AgQEAQQE//4B/AD/Af//AQECAP8B/f7+/wIB//7+AgEC/wD/////AAICAv8AAgABAP8A/v7/BQMAAQABAgID/vr9AAH+//8A/v79AQH/AQIB8vD1y83T5Obo+vv7AAD+/wACAQEBAQAAAAACAAD+AQEB/wD/AP//AQAA//8AAQEB+/n59fT0/fv6Af78BAEGBQEDBAMC/wD/AAEA/P37+/z7/v7+AAH//v/8/v39/Pj5APr1+PQJDPv6AQAAAQECAP8A/wD9/wAA/wECAf//AAEAAAABAP//AAIBAP//AP/+/fv8+fb0+vX1/Pj4/Pr6/fv9BAACAgL+AP8CA/4A/gL+AP8CAP4A/wD/Av/+/gAAAAABAAAA//8A/wEAAAD/AQAAAAD///8CAAEAAf8A/wEBAAAAAgD/Af8BAAD//wAA/gABAgAA/wH/Af8B/wD/AAAAAQAA/wD/AQACAAEA//8AAQEAAAAAAP8AAAD/AAAAAAEB////AQD/AAAAAP8AAAAB/wD/AAAAAAD/AAAAAP8BAAEAAP8A/wABAAD/AQEAAAAA//8AAAAAAf8A/wD///3/AP/+/fz9+/r5+ff4+fn3+Pn5+QD/AQUFBQwLDBQTFQ8NDwQCAwABAwIFBv7+/QEDBQQGCAMEBgAAAQAAAQD//wABAQABAAEAAAAA////AQIDAgD//v7/AP4A/wD/AAAAAP7+/gD/AAABAQIBAP7//wAAAAAAAAAAAAH//wAAAP7//gD//////v8BAgH/Af39/f7//wEBAQEBAP/+/v3////+/v///wEBAAABAf/+/v39/gAB/wEBAP///AD//v7//v7//QEAAf7//v/8/gH/Af///wAAAQD9/gD+AP4A/v79/gECAwMBAf79/QQDA/7+/wID//79AAAC/wABAQD/AP7//QAAAAEBAfz7/QEBAgICAP//AP39/AMDA/39AP8AAf78/QABAAUEA/v59wEAAP0AAAECAgAB//3+/QAAAPz+/QUDA/7//QD+Av39+/v7+QAKCgIBBf4A/gD/AAUEBf3+/v7+/QMCA/v/AAEBAf/+/wICAQMDA////wECAv///wIAAP8AAf7+AP39/v7+/gUEBfz//gEAAf7+//39/ePj6tXV3fb29f3++/8BAAEAAAIBAf8AAAD//gEBAP//AAD/AAAAAQAA/wECAv//AP39/vPy8fb19fv6+wIAAv79/fn4+/4A//z8+vn6+//+AP8AAAEDAwEBAgICAvz7/AL9///9/fz6+vv6+gX//f8A/wABAQEAAAAAAP8AAAAAAAAAAAEBAAD///7///77/Pv4+Pn09fr49vr49/36+gL8/gQCAQL/AgEAAAECAP3/AAD+/gABAgAB//3+AAD///4B/wD/AAABAAAAAAD/AAEAAAD/AP8CAAEAAAAAAP///gABAQD/AAABAAAAAf8A/wAAAP8AAAEBAf///v8BAQMAAP//AAABAQD/AAD//wEAAf8AAAAA/wEAAAD/AP8BAAH/AP8AAAD/AAAAAAEAAAAA/gABAv///wD/AAABAQEA/wD/Af8BAAEA/wAAAP///wEAAAAA///+AAAAAP7+/v79/f38/Pz6+fn29/X49/j6+vv+/f4CAQMFBgYHCQkODg4KCQgBAP7+/wEBBAUD/wUBAQQAAgT/AAMBAAAAAP//AAEBAAAAAQEAAQAAAQEBAQD+/v7///8A//8BAAD//wAA/wD//v8BAAAAAAH+//7+AP8BAAICAgEAAP8BAQL///8A//8BAQH+/////v7+/v8CAQECAgH//v//AP/+/f0AAQAAAQAA/wAAAQEB///+AP8CAQD+/wD+//7+//39/v3///8BAAD///4CAAH+/v7/AP8CAQL/AP//AAH9/fz/AAADAgP9/v7+/f0DBAUDAQIA/wEA/v8BAwIDAgP9/fwBAgIA//8AAAD+/v7+/v4CAv/+/QD9/v3//fwBAQH/AAIBAQL///0CAgEBAAD+/vz/AQID//7//wH+/v4A//8CAgL+//7+/v0CAAEA/v4EAwT+Af39+vv+Av8DBAUCAQIA/wH9/PwAAQL+/wABAQEAAP8CAwIBAAADAgP8/f3//v8EAwQAAQMBAAL+/v4DAgICAQD///4AAP8BAQIAAAH09/rLz9js7fL9/PwAAf8CAQQBAQECAQIBAgEAAAABAAD+AP////8BAAD/AQEB/wEAAf8AAP739/Tu7ur6+fj69/rs++7/Ae8JCggDBAL/AP4B/v0BAgMAAAEBAgICAQH//v4BAQL+/v3//v3+/fz+/vwA////////AP8BAP8BAP////8BAf///wEAAAD9/v79/f36+vr6+PcA/P0GAAAKAAADAP8EAAEBAQEAAf8C/gH+AAIDAgAA//////7/AQH/AAABAP8AAQAA/wAAAAAAAQAAAAD///8A////AAD/AQEB/wABAQEAAAAA/wAAAf8AAAEAAAD/AAAAAAABAQABAAD+AP8DAAD/AAEBAP8A/wD/AQAA/wEBAf///wABAQAA/wH/AP8AAP8AAQEA//7/AAABAAH///4BAAEAAQAB////AAAAAP8AAAEAAAAAAAAA///+AQAA/wAB///9/v/+/fz8+/v7+fn59vf29vX1+fj7/v79AP8BBAUGBwAAAwQDBgcGAgQDAP//AP0BAAIEAwEDAgIFAwMFAQECAQEBAQAB//8A/wD+AP8BAAAEAAAB/v7/AAD/AgEB/wEA/v3////9AP8AAgIB/v7///79AQEAAgAAAQMC/v7+AwMEAgAA//8A/wAC////AgEC/gEAAwH+AAABAQAB/wP/AAD/AgEC/////v/+/wH//f38/f7+/v39AAH//wAA///+/P38///+//8A//7+/v//AP//AP8BAAAA/QD+////AQEDAAED/fz8///+AAAA//8AAQAA//7/AAH/AAAA/wEB/f4AAAAA/v/+AQEBAAAB/Pv7BAQEAgEB/Pz8//79AgAA//8A//////7/AAAA//7+/f39///+AQIB/wAAAQAAAP8AAQECAAEB/v//BAIDAQH9/v7/AP4AAP4BAAH//f78AgMCAAEC/v7//wD/AQICAgEAAAEBAwMD///+/v///f//AQICAgICBAUF/v7+AAEBAQD//f3+AQEA/v/+/wAAAQAB+vz72tzkzc7Z/f//AQICAgEB/wABAQAB/wD/Af8BAQEBAAEAAgAA/wEBAAEAAgAC/gD/Af4A/wAA+vj78e7z8fD09PT6AAD/AgQCBgkKERENDQoHBAL+AQD/AP8AAwEB+/79/Pv9BQQCAgAA/vz7//7+//7+/v/9A/8A//8AAAABAAABAAAAAAAAAf8A/gH////+/fv8/Pf2BPn7EP8CAv4B+Pz/+f7/BAEAAf8AAAAA/wEBAQAAAP8BAgH//gABAv8B/gEAAP8C/wD/AAH/AQAAAAD/AAABAQEB/wAAAQD//v8AAwABAP//AAAB/wEAAP8AAQIBAAABAQEBAf//AAEBAAAAAQAA/wAAAQD//gABAf8AAAD/AgH///8BAAAAAAAAAAD/AAAAAP8AAAD/AAABAAD/////AAAA/wD/AQAB/wD/AAABAQEBAP7+/wAAAAAA/wAAAP7/AP/+/f39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AQEBAQICAgEC///+///+//8BAQD///8A/////gH/AQIA/P3/AwMCAP7//v/+Av4D/wD/AAD9+vr+AQIEAgMC+vv/AgIDAAACAAH/AAIA/f39/AD/AAAAA/8A/v7++/r6BAUHAgEAAgAB/QAAAQD//f38////BQQF/wABBQEC/fz7AQAB//7//v//AQEC/v39//7/AQIC//8A/P7+6ev08fUAEBUa+Pbi/f30Af7+AQAA/////f79AQMBAgICAQEB/wH/AQD/AAEB/wH/AAD+///+/v79//8D+v0G+v4I+fsC+PsA+Pv/Cv0B+/v//QYBAf////78//79+/r5+fb1Af7+AgL+AAD/AQMBAgICAgIDAQEA//8A////AP8AAf8AAP8A/wD+AAACAAABAwACAAACAv4AAPz9//v6Bf3+Bv4A/P8ABAABAAAAAAABAQIBAP8AAf8A/wEBAf4BAf7/AQAAAQEAAQAB/wH/AP//AAAAAAAAAAEBAP//AAEBAAAA//8AAAAAAP//AQD//wECAQD/AAACAQAAAP8A//8AAAIAAf8A/v//AgEBAAAA/wAAAP///////wAAAgAAAf8B/wH/Af4A/wD/AAABAP//AAAAAAD/AAEBAAD/AAAA/wAAAAEA//7+AP4AAP/+/v///v38/v39/fr8/f39/v3+AAACBQUIBwQIDAsDBAYICA0NDgkKCwcJCAoLChAPDwkJBwH//P///QAAAwAAAAEAAQD/AP8A/gAAAQAAAAEAAgMCAgEBAAAAAAEBAAECAgEBAgAAAf/+Af///gAAAAEAAQACAP7+//////8A/gAAAv7+/gAAAQD/AP8AAAAAAf///v38/P//AAMDAv///wEAAP7+//7//QAAAAAAAP8AAP7+//8A/gAAAQABAQQEBgEBAQAB/vv7+/v7+wAAAfv8/Pz6+f38+QAA/wMDAQMCAgIBAP7//v36+fz/AQABAAAAAAEAAAABAAD/AP38+/8BAQIBAQABAQMBAgAA/v8AAP7+AAMDBAEAAf/+/v79/QAB//8AAgABAf///wICAgAA/wD/AQABAP///wAA/wIAA/7+/QIEBP///gEAAQAAAAD/AQEBAv4B/gMBAPz+AP8BAf4AAQH/AAMEAgD/AAEBAQABAQECAQUFB/8AAP37+gEAAQIBA/7+AAQBAwD//wIEA////////v/9/QMDA/39/f8B/wECAgABAAAAAPz9/efq8vn9AQEGCQMID//17QEB/f///wECAQEBAQD/AP///gIBAgEAAgQDA/v8/f7/AAEAAQD/AQH///4BAwIGDf8CCf4ABP3/A/4AAf3//vz9/fj6/wYC/AgC/f78+f36+fjz9QkDAgMDAQEEAAABAQEDAwAAAQAA/////gD/AgEAAQAAAP8AAAH/Af8B/wD+//7+/fv4+ffy8/ry9AH3+gL6/AH9/gIA/wQAAAD/Af8A/wEBAQH//wEAAAABAAABAQACAQEAAAH/AAAB/wD/AQAAAQEBAAEA//8AAAABAf//AP8BAAEAAAABAP8AAQAAAP8A/gD/Av8B/wAAAgD//wAAAQD+AP4B/wEBAf4AAAEAAAD//wD/AAAAAQAA//8AAP4AAAEAAP8A/wAAAAAA/wEAAAAAAAAB/wD/AP8AAAEAAAEB/wD+AP8AAAH///3+///9/v/+//78/wAAAgMEBwUEBgEBAwMHCAkHCAoHCAkICggJCQkHBwYEBAUFBQQIBwgEBAIB/gL///8B/wABAQAAAAL/Af8AAQAA/wABAAACAgICAgIAAQAAAAABAQIBAQIAAQD///8AAP7///7///4CAgL+/v4BAAAAAAABAgP///8AAAD//f8AAAAAAQAB///9/Pz///4CAgL///7//v78/v3/AAABAgIAAf//AQEBAAICAwP//v4AAAD+//7/AAH6+vn9/v0A///9/f79/v/+AP8DBwUAAwH//Pz39vb7+/n//v4DAwQFBgYDAwQBAwP+//8BAQECAQD8/P3///8A/wD+/v4DAwQBAAH/AAAA//8EAwP///4B/wH8/Pz///8AAP8CAgL//wABAQIBAQL///4AAQABAQH//wEBAf/+//8A//8A/v0AAQEBAgIDAgL8/v3/AP4A///+AP8BAQD+/v////8AAAD+/wAAAQAAAQIAAAD+/v7+//8A/wAAAAAEBAUGBgb+/wD+//4EAwUAAAADAwMA/gL9/wD9/vz//f0A/////gABAgL///77+/r09f0FBgn6/PoIChb48e3+++4A/vsAAgAAAQIBAgABAAD+//4DAQH+/v////////7//gAB/wH//wMDBAsFCA4CAP8A/v0DAQUFBAQEAwIBAP8B//7//Pn+Avz49/H9+fj++PoMDwwGBQcEBAYFBwcCAwMAAgH//wAAAAAAAQAAAQEBAAABAAAAAQH///8AAAEA/wH//Pz89vj79PX7+Pf8/Pv+//38//8E/wD/AP8BAQD/AAABAAABAAEB/wACAAD/AQEB/wACAP///wAAAAH/Af8BAAD/AAEA//8AAAEBAAAAAAH/AQACAAEBAAD/AAAC/wEBAQAA/wEAAP8AAAAAAAAA/wAAAgD///8BAQAAAAAAAAH/AP8BAAAB/wAAAAABAP8AAAAAAAAAAP//AAAAAAD/AQEB/wEBAQEBAgEDAAEBAQEAAQAA//7/AgAAAQIA//38AQMDBAID//7+BgcKBwcJBQUGBwcICQoJCAkJBgYGCAkIAQEBAgEDAgEBBAQEAf/+/v0CAf/9Af//AAD/AAICAf8A/wD/AgABAQEBAAAA/v7/AQEBAQEBAQACAAAAAP8AAAAA/v79AP//AQAA/wD//v/+//7+AAEBAf////7////9/wABBAMEAAD//fz8+/z8AwMB/v//AP3/AAAAAwIDAQICAAEBAAICAAIC/f/+//39AP8B//39/f7+AP79/vz7+PTz9O7s+fXz9/b1+fv7CQwN+fr6BQMCAwMEAQMBBwYF+wH/9/T+/wEECgsNCQkM/f//AwEE/P/9AAABAgEB//79AQQEAAAA/v3+//8A///9AAEB//7//v/+////AgIB/f3+AgICAQEB/f7/AQEBAgEB/v7+AAAAAQIBAwIDAAD/////AgECAf8A/vz9/v7+AQIB///9/v0ABAUF/f7+/wABAQQC/v3//P38AwQDAQAC/v7//v78AAABAgEDAgMDAQICAgACAP8B/wABAgICAf3+AAEAAwIB/v3+/vz/Af8A//8AAf8B//4A/Pv+/f4EBwcLAQIKBBAB+/Xz8+/3AQD/AgMBAQH//wD//gABAf///v7//v77/v7///7//v//Af8B/gEGBwoXCgkPAwIABQQBBAMBBQQABQQAAQD8/v79AgL+/vv2+fX09/LzAf/+CAgIAAEAAgQGBAYIAgMDAAEBAAECAQECAAABAf//AQICAAAC/////wAAAAD/AP7+AQAAAwEDAwQG/wID/gEB/gD/AQEABAEAAQAAAAAAAQAAAAEBAAEBAwAA/f8AAgABAQD//gEBAAAAAP8A/v8AAf///wH/AQAB/wD/AAABAAD/AAABAAAA//8A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CwsLCgkLCAcIBQUEAwIEAgIBAAAB//8AAQD//wAAAP/+AP8AAAD+AP//AAEA////AAD+//7+AP/+/wD+AP///wAA///+AAAAAP////8A/wD+////AQH///7/AP//////AAABAQEBAQEDAQEBAQECAQADAAACAAH///8BAQD//wAAAAH/AQACAQECAQICAf0BAQEA/wAAAQEAAAABAQAAAP8A//7+AAAAAQAB/wH/AQICAv/+//4B/gADAAH/AwQCAP////8AAAEC///7AP4CAAQFAQcH/vj2AgQECgYC9/XuAvz7AgEDAQED/wIDBwkJCgH68/v4BAcH9fD1CAsMCg8Q8+ruAgAA/QH+AQABAgEBAgIC/f39/f79/v79//8AAwMBAgIDBgcJBQUKBgUGAgECAwICBQUECAkHBAYFBAYEAgEAAgMDAwUECgkJ3dvdEBEPKgkMBgwOAAEBAQEBAQECAQAAAQEAAAAB/f39BgYG//7+AgIC/////f7+AQAA/v8AAAH/Af8BAP8AAAAB/wD/AQEBAQABAgMD//7/Af7/AwEBAP7/AAH+AgEE/f8AAgICAAD//gD/AgMCAP8BAP4A/wEAAQMA/v7+AAD9AwIB//4AAQIBAP/+AAACAAEAAAD/AgEB/gABAAEAAQICAgQEAwYJBQkLBw4MBw0LBAgHDRMVBAwNAAUG+v38/P39+vr6+/z9/Pn7+vkD/fz+AwMDFBUQBAQFAwUDCg0NCQwJBggHAgUGAQMEBwYIAAEDAQMEAgMEAwMGAAADAP8BAAAAAAD+AQAA/wABAAAAAQEBAgECAgIDAQECAQEBAgEBAAEBAAD/AP8AAP///Pv69vPz9fTy+Pj29/n39/z79v799wD99/79+f79BAD//wEBAAAB/wD/AAABAAAAAf///wAA/wAAAP8AAAEBAAAA/wEAAP8AAAEAAQAAAAAA/wEBAQEBAgIC/wD//wAA/wEBAgEBAQMDAgQEBQQEBQUFBQgICQkKCwsKDAsMDAsMDQsKCwkICQgJCAUEBQIDAgECAQAAAAD//wABAP//AP////8B/QH//wAA/gD//v//AQD//wAA/wD//v7//wD///8A/gD/AAD//v4A/wAAAAD//wD///////8A/wD+/wD///8A/wEAAQEDBAACAQAABAABBQEBBAAAAv8AAAEA/wAAAAEBAP//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AAEBBQMD/f38/v/+AAD+/wAA/wD//v7+//7+/gEBAAD///7//wD+AgMB//79AQACAgIBAAEA/wD+AQH/AQH/AQEAAAH////+//8B//7/AQL//f39AgIBAAAB/wAAAQIBAwACAv8F/P7+AvwGAwcJChIVAPz7+/7//wUI/f8D+Pn6DA4OBv8J+vz8/wD/Av4G//78/v39AgX9Av39AQD/AgEBAAAAAP7/A/0A/wD//v7/AgEAAgABAAAA/v//AP/9//7+AwD/AwIFAwQDAgEDAAIBAgIBAgIDAQEDAQEA//8BAAECAAECAAAC///9/f38+vn3+fTz+vHy/vX2Av8ABQgGBgwJ+gD7+wD+/vj//QEABP7//gH/AAABAAH///8A/wAA/gAAAP///wABAP/+AP////7+/v7//wD//wH/AP3+///+//7//gAA//7//wEBAgMCAwMEBQQEBgYGBwgHCAoJDAwLDQwLCgsLCwkKCQkICAYHBwQEBAMDAgEBAQEAAP8A////AP/+/v8A/gD//v8A/wD//wD//v8AAAD//v///wAAAAAAAAD////+/wD/AAAAAAD//wD//wD//wD//////gAA/v8AAAD//wH/AAAA/wABAQAAAAECAwEBAwAAAwEBAgEAAQAAAAEAAAAAAAD//wAB/wAAAAAA//8AAP8BAAABAQACAQABAQABAQD+AAAA/wAAAP//////AAEBAf//AAABAQAAAAEAAAICAwAA/f7+AgACAv//Af8CAAEA//8A/wEAAAMCA/4ABgIDBP4DAAUJCQkGB/zw8A8IAvP49PwJC//3/gAECgQB/w8JBgYHCff5AO3x9AcJFgMECP779P3+/gIAAAEBAP//AAIBAf4CAgH/AgABAwIAAgQFBwcMFgACBQMDAggIBgUEAwH//wEAAAIBAgMGBfnx+fTv7fT19vz+AQH+AfDq7fjv8fzz8wUMEAICBQEA///+/v8CAP79/gD//gEAAgAA/wEBAQIBAv///v7+AQICAgIBAf8A//3+/QICAgH/APv8/gABAP4AAAQEBgD/AP78/AD+AP7//gMCAv38/QAA/wADBfz9/wUFAgIB//38+gQBBwACAf8A//39/gAAAQICAf7+/gEBAf8A/wEBAAD/AAAAAAABAf8AAP8A/wMEBgABBAICA/Hu6vr8+REcIAQEB/T19AACAwgHCQQEBv3+/AEAAfz//wECAQEBA/8B+/z8/Pz9/f/9/gECAAEA//////7+////+wECAQMAAf39/vz+/gICAwYHBwMFBQIBAgIDAgECAwEAAQEBAgICAQAAAAEBAgABAgAAAv7/AP////z6+vny8/bs7ffr6/jt7Pr09Pr7+v7+/v8CAf8DAPwCAP0A/wT+/f8BAf4AAAEBAQD///8AAP8AAf3//gD/AAAA//7+/v7//v///v/+/v/9/v39/f7+/v7+/v7+/v4A/wAAAQAAAgECAwIEBQUGBgcICAoKCwoKCgcKCwoJCggJCQcGBgYFBAQCAwMBAAEA//7+AAAAAP///v8AAP8A//3+//8B//4AAP///v//AP4A/wAAAAAAAAD//v8BAAAB/////////wD///8A//4AAP7//v8A//7/AAAAAP8BAAAAAAEAAAABAf8BAAIAAQECAgIBAwMAAAH//wABAQEAAAAAAAAAAQD/AAAAAAAA/wAAAAABAAEAAQEBAAEBAgEB/gH/AgEB/gH//wABAAAAAAD///8AAQEB/wAAAAEBAQD+AP8AAAEBAQIAAgMC/gMAAf/+AQACAwMA/gACAAH+/gMDBQgEBwgDDAcCBwT97u4A7usGDxr18/EJAhD/BwIDAQUNCQkD9vkXDwTyFBENBDMH/O3i3ssBAAACAAD//wAA//8AAQECAQL/AQIA/wD/AQIKDRUGCxMAAgQGBgIKCgYGBQUEBAMDAwH///7++/v28vH06+r38/f9/P0E/PwF+/v68fL89vX99/YCBAj9AQMAAQEBAQL9+/wBAQH+/vwBAQQCAQECAgIAAQADAwICAQL//v7//v8DAgP9/v0CAwMEAQD+/f0HBwj8+voA/v4BAgEBAf8CAAH+/P7///sAAgH8/gABAgP7/Pv/AAACAgP+/fsCAQUAAAQAAAD//v8AAP//Af4BAgL///8AAAEAAQEDAQL9/f0AAP//AQEBAwMCAgX+AgT7+vnw7egJEBAKEAcQERAFBgn+AAAAAP8DAgQA//8BAgL//v39/v0CAAIBAQL+/v4CBQD9/fsA/////fwCAgEAAgL//v/9//4BBAUJBgUFBgUEBQYCAwMBAP//AAACAgEBAAIBAQIAAAEBAQH/AAABAQIAAAIB//7///7++/v69fX47/D37+/78vH69fX4+Pj7///5/vz6/f38AP77Av8E/f78AQECAAABAQAA///+AAD+AAD+/////wD/AP/+/v/+/v79/f3+/v7+/f39/f39/v/9/f39//7//wABAwL+AP8AAwMCBQQFBwgHCQkJCgkKCgsLCgkJBwcJBgYGBQQFAgMCAQAA///+/wD+AP//AAD////+AAAAAP/+AAD//wD////9AAAB//8BAP/+AP8BAAH/AP///v8AAv/////+AP8AAP/+/wD+//7+AAD+//8AAP8AAAD//wEBAQD/AAAAAAAAAAIAAQIDAQMFAQIDAQEBAAECAAAAAAD///8AAQAAAAAAAAEAAAABAQD//wAB/wABAQICAf0CAgH9AAAB/gABAQEA/wABAAAAAQD/AAD/AAAAAQEBAAD/AgAB/gEB/wAAAQEBAQMDAQEAAQAAAgMB/gH9AAEBAwAGBQkMCRAT+RLvBhAM9+Xy+OLiCTEW7/n1BPUFAwIA/wUACgYLA/8A9PjzDAj78vwDBQ4pDBHq9vDi/wD9//8CAAEBAAAAAQICAQAA////AQcLDhYiBQYJBgUBDAoECQcABgMBAf8AAQD+Av8A/vv6+vPwBwUD9/n6Av7/DQMAFAsJ/vX2/vX3//n4AQr7AQQCAAECAQAAAgMC//////7/AgAAAP8AAAEBAAAAAwIE/fz9AQEBBAMEAAAAAAAA/wD+AQAAAQAAAQEBAgIBAP///wD/AAD+AQEA/v7+AQAB/v3+AQECAAH/AP8AAP8A///+/P38AwAAAgQCAQID//8A/f79/wAABAECBAD/AAAAAQD//wD/AAD//wEAAQICAv8CAwYEBAMFBgkLBQQG//v5/fv4AAID/QP9AwUF/wH/AP8AAgEBAwMD/v79Av39/v/+//8A/vv7/f//AgIFAgEBAAAD/f/+BAQFAwQEAgMEAwQEAwQEAQICAwMEAwMEAgMCAP8A/wEAAP8CAAABAAAAAAABAgECAQIC//8BAAH/AP7+/fn6/vb5+vT1/ff4/Pf5/fj6/Pv99/37+P78+v/9+v//+wEBBPz9+wEBAQEAAQAAAP///gD/AAAB/wD///8A/v/+//7+/f3+/v/+/v39/f39/P39/v7+/f7+/v/+/wACAQEBAv8AAAICAgUFBAcHCAsKCgoKCgkICAgICAYGBQQEAwECAQD/AP4A/gD//////v8A/wD//wD//gAB/wAAAP///gD//wD/Af///wD/AP/+/wAA/f//AQH//wAAAP/+/wD///8A/////v7//v///gD///8B//8A/wAAAQH/AP8BAAEBAP8AAQAAAgECAgECAwEAAgAAAwAA/wD/AQABAAEBAAAAAAEAAP8AAAAAAAD/AQAA/wH/AP8AAQECAwD+/gECAAH/AAD//v8AAAEBAP//AP//AAAA/wAA/wH+//8A/wEBAQH+AAEBAQEBAgAA/gAAAQECAQEAAQIBAQACAf7+CAUMDggTEwoU6fbt7PPr6gf17gYHEvj18wUDAAELAf/7+AIDAwIB+w0F+gwJAv8RIf/8+eX6/fv35AAA/gIBBgEBAP/+/wABAQEECQ0TI/0EEvn6+g8MBRENBgsGAwIA/v3//Pr6/QH8/PXr5/r18wIGBf3+/gkC/w8DBBITEggJCgH+/gH+AAD9/AACBQEEAwEA/wICAf39/wAAAAD//wAAAQQCBP8A/v39/AABAAEBAv7//gIBAQEBAP79/v78/P8AAP/+/f///gICA/38+v8B//7+AAAAAP7+/v7//gMFAP79/QIAA/79/gUDBv7+//4A/P4AAQIDBQECAwD//wEBAf39/QECAwMBAf//AAD////+/wAAAP7//v79/QEAAAAA/ggLDQIFCPf29QcO+//9+/79BAACAgEDAwECAv39/f///QIBAgMFA//8/AQGAgACAwICAwQBAvz8/AEE/QYDAgMDBAMEAwMDAwMDBAEDAgEAAAEBAgEBAQABAAAAAAAAAQICAgAAAQAAAAAAAAAB///+/wEA///+/vr5+fby8/Ts7v3x9AP8/gEBAvv//vr//fv//vv///z+//v/APkC/wT+/f0AAAAAAAAAAP4AAAEAAP//////////////AAD+/fz+/v7+/f7+/vz8/f3+/f3+/v7+/v8AAAADAAMBAwEDAwMEAwUHBwcJCQkHCAgIBwYHBwcEBQQDBQMBAQIAAAD/AP////8A//7/AP///v4BAP//AP8B//////8AAAD//wAA/wAA/wD/////////AAAB//7/AAAB////////////AP////7///7///4AAP8A/v////8BAQIAAQAA/wH/AP8AAgECAwIBAwQBAwMAAQIAAAAAAAEAAf8AAAAA//8AAAD/AP8BAAH/Af8AAQAA/wAAAAEBAAD/AQH/AgH//gEAAQH/AQEAAAAA/gEAAP4AAP8BAAD////+AP8AAP8AAQIBAwECAQT/AP8B//8C/wL//v8AAAD+AP8AAgEDBgQFCw0KEhcPGOzz6ur38fD66OUMHQzyAQD6+PP++/kBAAL5AAUJBAMSCgb0B/b4AwAQEyL////i3MD9+e0AAP0BAAICAwQBAwoHCx0BBxz8/QADA/0LCgkNCgMIAwD5+Pb7+gEHAwL79fP07ur59/bt7PD9+PoNAwEWFA0UGxkNGBgBBAYCAP7++voDBAgCAAABAQD+/P0B/wACAAEFAwUFBAQAAQAA/wABAAEBAQH8/PwFBAMAAQD++/wA//4BAAL///z//v4CAP/9/Pr8/fwCAwICAQL8/fz9/vwA/wD//f0BAgEA/gD/AAH+/QP+//7//wH//v4DAP8C/wQCAwQBAAP/AP39/PoAAwQDAwT/AAAA/wD+//7//v3///wB//77+fgABAILExP5+fb5+/wHA/8C/f4BA///AgADAQMCBAP+/fz+/v0BAQADAwT9/v0GBgT+/v39//8EBgcGAgH/AQEBAQADAgMDBQQEAwQBAQEBAQEAAQD//wD///4AAAEAAAAA/wH/AAAA/wABAQEBAAH/AQD9/f37+vv59ff58fP67e/67vD69PX6+vr7//77///7AP75/v77///9AQD9/wAE/P38AgAA/wD/AP///wAA//8AAAAA/////wD/AP7+/v79/f79/v7+/v39/f38/f7//v79AP7/AgMDAgMCBgYFCAcICQkJCQkKCQgJCAgIBgYGBAUFBAQEAgECAAEA/wAAAP////////////7+AQD+/gD/AQD////+//8AAAEAAP//AP8A//8A///+AAD/Af///wD/Af///gD/AAAAAAD+//////79/gD+AP//////AP8AAAAB/wD/AQEB/wD+AP8BAgECAQIEAgIEAQEDAAEBAAABAAAAAAAA/wD/AAABAQH/AP8AAAH/AAAA//8AAAAAAAAAAAECAAH+/wEBAAEAAAABAAAAAP8AAAEAAP8BAAAB/wAA//8A//8AAAABAQAA////AAABAQACAwD//QD//wAA/wAAAAEAAAD/AgICBggIARAR/BkaDe7s+v359ebkCQkPDBgg9P7+/fz3/PjzAgQLBwEBCgQDBwL6FA8E7vH5ExUb/gA97uva+vftAf//CQgPBAcU9/0L/v8FAgH9CgkHDgwEBgL9/fz4AQAF/wD//wQB+PPu9PHu8urt8evtCwABGhEOHBkVCQ0LBQoK/P37/vn5AQYIAPz7AAEB/v7//v4AAAAB/v//AAEB/gD/AP39AQD/AgQEAP7+BgUFAQIC/f78AAICAv8AAP/9//8B/v//AP8A/f3+AQEC//3//f77/v/8/f38AgEC/v0BAwAE/Pz6BQYD/fz9///+AQMCAAAB+/75BAUAAwIEAQH///79/wL//P39///+AAAA/v8A/v79AQEBAgID/wD/+vn5/Pz7CQ8P/fMCBwgLBggJAAADAQIDAgIE/v7/AQIBAgMDAgMDAgMC/v7/Av7///7+AAAA/v/9/f/+AQEDBAQCAgICAwMEAwMDAQEBAAABAAAAAQABAQIAAQEF//////////8AAP4AAAEB/wD/AP8A/////f3++fn59vT0+e/w/O/y+/X2+fb3+vz6+/7++///+/7/+wD//AD//f8B/wAAACuB1H4E/v39/wEB///+AP8A/wAB/wD/AP8A///////+/////v7+//7+/v///v/+/v/+//7/////AQIBAgMCBAQEBwYICgkLCwoNCwsMCgoKCAgHBwcHBgQFAgICAQEAAP8A///+AP8AAAD+AP7+AP/+/gD/AQD+/v//AP//AAD/AP8A/wAAAP7/AP//AAAA////AP/+/wAA////AAAAAP/+AP/////9/v/+/wAAAP8A//8AAQABAAAAAQEA////AAAAAQIAAQEDAgMFAQIEAAACAAABAAAAAP8A/wEAAP8AAAD//wD/AAEBAAD/AAAAAQD/////AAAAAAEBAAEBAQEBAAEAAAEBAgAD/gD+/v////8AAP8BAAAA/wD//wH/AQEB/v7/AQD//wD/AgIB/f4B/wEA/gEAAAAB//7+AQEAAAEBBAYFAAsJCRYcE/b6APz97+Ph6tbSD/0CAg8U9fz8//r9Bgr5BAcKBP77GBEH/AEDCQT58fP+Bx0eEhQV/fr59fLz7e7x+f4FBAQCDgoADwwBFA4EDQcCBQIAAv7+BP7/AQD9/PX08+rk6eLg+e/yBfv6GhMOIhoXFRkWDRQVAAMCBQMCAf/+/vz6/vv5/v3+AQUDAgID/QD+AQAC/wD/AP//AgAB/v/+AP7+/f7+AwQD/f/9/wD/AgIDAP8A/vv7//7+AAD////+AgICAQAC/wH++vn5///7/P37AwMFAgMCAP/+BAQFAQAB/vz8AwQFAwAC/P/9AwED/v38/P37BAEA///9/v79AQIB/vz7/f3+BAYJBAME/gIC/wIB//8AAwMFAAEDBgoLAgYKAQMFBQcJAQIE/wACAgMDAAAA////AQEC/v79/Pv9AwMEAQD+AAECBQUHAAD+AgIBAAEA////AQICAQIBAAAA/////f38/wABAgIDAwICAQL/AQABAQAB/gD/AAEAAAABAgAB/wAA/wD//P79+/j5+fHy+ezu+PDw+fX39/n49fr4+P78+f79+/7+/f///QAAAAEAAQABBP7+/wAA/wAAAAAAAP///QD/AP8AAP8A///+//8A/v/+AP7/AP////7+AP8AAQABAAEAAwQDAwUEBQUFBggICQoKCwwMDAoKCQkICAcHBwQFBQIDAgAAAP///wAA////AAD//gD/AP///wD//wAA/v////8A/wD//v8AAAD//wAAAAD/AP//AP///wAA/wAA/wEAAP8A/////wD//wH//wD//wD/AAD/AAAA/wAAAAAAAAABAAAAAQAA//8AAgEBAwECAwIBBAEBAwAAAf8AAQEAAQAB/wD/AAAAAP8AAAH/AQAA//8B/wAAAAAB/wH/AP8AAAAAAQEBAv8BAAACAQD+//8B//8AAAAAAQH///8AAP8AAAD/AAAAAP8AAAAAAf8A/wEAAP4AAAECAgH/AgH/Af8CAv/9/P7+/QICAv8CAgAEBQULDgkWHBD7+//9/u7i3/jh2wshA/wIDfb59/j5+gMI9AIFBgsEAfz8AAMNAAwE//r+BOsEBPj5/QH+Bfv6Bv///wgG/x4YBhURBwsMAgf9+gH7AgcICAP/+/339Orj2+Td1/ny8g8FCBQVEBYTERQZGggTFAgUEv/49QEAAf7+/gP/AP/8/f8DAAID//////39/QMHB/7+/gMCBPz+/QMCAQECAQL+Afz7+/4A//8AAAMCAfr6+/7+/f39/QEBAAAAAAAAAP7+/f///QD//Pz7+f39+v79/AIC/wQHAwIBAAH//gABAgD+//v+/QIEAwD/APv7+f39/v8H/wIDAf79/AECAQQEBQEB/wMBAP8BAAMBA/7//gUICQYJC/r5+AQGCAkPC/39/gMFBgAAAgEBAv7//v7///7//wIB/wAAAQD///39/QICAwEC/wEA//7/AP8A/////wD///z8//79/gEBAQEBAgICAgMCAwICAgEBAQD//////wABAAEAAAAAAgEAAQAAAP7///3+/fr6+Pbw8Pfl5/bk5vry8P349/r7/Pj7+/f+/Pr+/vsA//4B/wAAAQAA/wMAAQQBAQH//wEBAAD+//8AAAIAAf8BAAAA/gD/AAAA/wEAAQABAAIA/wACAgAA/gAAAgABAgIGBQUHBgcICQoLCwwLDQwKCwkKCAkHBwcGBQYEAwMCAQAAAP8A/wD/AAD///8A/wAB/v8A////////AP//AP4AAP////8AAP////8A/wAA/wAB/wAAAAAB////AP//AP8AAAAA//4A/////////wD/AAD/AP8BAAEAAAAAAQEAAAD//wEAAAABAgAAAQECAwQBAgMAAQL/AQAAAP//AAABAP8BAAD/AQEB//8AAAAAAAEA//8AAP8A/wD/AAD/AAABAP///wABAQEAAQEAAQABAQEBAgAA/QD/AAABAQEB///+Af8A/wH//wAA/v//AAAA/wABAAH/AQABAgIA/wL//v7/AQD//v/+//4A/QACAgMFCAYMFRYBBQMAAwH+Av7x5ebt3NMSJiwDBgzu9PP18v8ECAb+/v8FBAcC/QAH/f4GAgUFCgL7B/v0AvsTBgIKCAgCAf0MCvkNCAQJBAMDAgEF/v3+9/P48O/17uft5OAC9PQXCQoYFRYTFBQQFRQIDhEGEhIFCwn98P7/+voAAAEDAQL+/f3+//4A/v/+AvwAAwL9/PwEBf/7+/oCAwH//wL+/P4CAgH6+vsBBAIDAwMAAP8BAQEBAgIGBAP5+Pj+/v4CAQH/AP7+/Pv9/Pr6+fb/AP8CBAD8+voBAQICAvsDBAYBAgT9/vwDBAf///7//gAAAAD//v37+vkEBgUCAAH//gD//v8AAAD39/UICQoAAQMBAgIEBwgECQn6/Pv8/P4KBgcHBAQA/gD/AAD//gAA/gAAAAAEAQH/AP///v8AAgEBAgMAAP8BAQAA/gACAgQBAgD8/f3//v4EAwIBAgEBAQIBAQEBAAIBAAEBAQEAAAH/AP7/AP///v8BAAIAAP/+AAAAAAD+AP/8+/z48fP06On04+T67On+9fP+/vv9Af/8AgH8/v/9AAD//wH///8AAQACAQABAP8E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AgAAAP8BAgAAAQABAf7/AAMFBwUBCPv8+gAA/gMEBgIDAv8A/wABAQH/AP8AAQEC//7+/P77/QP/A/7+/wIDBQMDAgAB//8AAAD//v3+/f/+/wICAgECAQMDA//7/P38/P38/QIE/gEDAwQDAf0C/f/6/gEAAf8A/v7+/wEAAAICAwMCAQEDAQD//v///f///wAAAQABAAIBAgEAA/8B/wAA/wAAAP//AQEBAP//////AAAAAAD/AP8A//3///v7+vb09Pj09f339QH39wP6+gT8/Qb+/QL+//0A/wAAAAP/AAMBAAMBAwcCBAgDAwcEAQUEBAT/AP8A/v8AAQEAAAAAAAD/AAAAAP8AAQEB/wD///4AAAAAAAEBAQEDAgMEBAUGBgcICAgICAkJCQcHBgYGBQUEAwMCAQEAAAD///8AAP8BAP8A//7/////AAAA//8AAP8BAP/+//8AAP////7///8A//////8A//////////8AAf////4AAAEAAQH/AAABAP8A//8AAP8AAAABAAH/AP8BAQEBAP//AAAB//7/AAEBAQEAAQACAwADAwMDAgQCAAIAAAAAAAAAAP4A//8AAAIBAQH///8AAAAA/wAAAP8AAAAAAAEBAAEAAAAAAf///wEAAAAAAAEBAAD/AAEA/wAAAAEAAAAAAAABAQAAAQEAAQD//v8A/wAAAQAAAAABAAEA/wIAAQAB/wH///4AAQIBAAD///3+/v8BAQABAgIB/wAA////Af79AAABAgEA/v/9/vz+/f8BAP/+/wD/AP//AQAFCgkBAgMFCQoIEBD79/f79/b28vED+fkEAgL//v/8/v0DBQUICwwDCAkEBwgDBwcEBwcDBgb/AAEDAQH9/f3/AAEEBQQBAgEEBQkAAAD9/v8DAwQDAgL8+wQEDREOGwL9+vb/BAUFAQMCBAb/AAEBAQD+/vz9APwD/vv+//4BAQACAQIAAP8CAQL/AP8DBAX8/PoAAAAGBgcDAgP+APz9/Pv+//7//v8BAgP///8HBwcAAf///wAFBggDAwb9/fz/AQECAQD////+/gACAwIAAAD8/fwAAf79/vz7+/z/AP8EBAUICQsFBwQAAQEBAQD+//3//f4C//7//gD+/v4EAwP8AQH/Af/9/v38/fsD/QUEAwMA/wEBAAABAQACAQH/AQMAAAD+/v/+/v0BAQMC/gABAP8BAAIDBAEAAAD+/v8CAgL///8BAQAAAAD//wAAAP7///8AAAAAAAEBAQEBAQD//v7+/fz7+vr59/cA/vwFAgEAAv8CAQD9AAAF///+AAD/AAIC/wEEBAMCAgIEBAIGBAYEBAIDBAMEBgUE/gAAAAEBAQAB//8AAQABAAD//gAAAf//AAAAAAABAP//AgEAAQIBBAQEBgYFBwcHCAkJCAgIBgYIBgYGAwMDAgIBAAEB/wD/AQAAAP//////AP8AAAD/AAD///8AAAD/AAEA////AP///wAAAP4A/gAAAP/////+AP/+////AP8AAAD/AQEA//8BAAH/AAAAAAAAAP8AAAEAAP//AAAAAAEBAP4AAAH+/wEBAAEAAAEAAQICAQMCAQMDAQICAAEBAAAAAAD///8CAAD+AAEAAP7/AQAA/wAA/wD/AP8BAAD/AQD/AAAAAAABAAABAAD/AQEAAP8A/gAAAAAAAAEAAP8BAAABAQAA/wEBAAEAAP8AAAEAAAABAP//AQAAAAAB/wEAAP8DAAAAAAEAAAAAAAEAAQEBAgIA/f7+AAH//f3+AAD+/wEBAQEAAP8A/wAAAQABAQH/AQABAv/+/f/+Af//AQEDAwUF/QEAAAMCBAQDAw0MBBISAP7+AP////7/AP8ABggI/wEA/wAAAAMDAwIC/v7//f38AgID/P38/v7+BgcKAwQF/v7+AQEABAUHAgIDAgID/v39AgQIAgsDAQQD+/gG//r7AQECAwUF/v///v4A///9AgEBAf4B//z9/Pr7AgP+AQEBBQgG//7//v79/f38AAD/AQICAAH//fv8/Pz7/f38/wD+BAID/v3+AwMEAwID/gAA/wAAAwQEBAUF//n/AwQD/Pz7/wAA/f78AAAAAQEAAAD/+vr6AAEAAQICAwMDAAD/+fn4BAUHAQEBAAD+AwQFAf///wEAAAD/AgQD/gD+///+/v38/fv8/wf9/v79//7/AP7+AQACAQIA///9AP8AAQEAAQEC/wD//v7+AgIBAAD//Pz+/wD/AQAA/v7+AQECAgMDAP/////+AP8BAAAAAQACAAIAAf8A/////f7/+vr6+PX1+/X2/fj6A/z9BP8AAQEACQAB/gIF/wH/AP8AAgMCAgMCBAQEAgUFBAUEBAQEAwUFAgYEBP7+AAAB/wABAAEBAf///gAAAAEAAP8AAAEAAQAAAAAAAAABAQICAwQDBAUGBwcIBwkICAgHCAcGBgUEBAMDAgEBAgAA/gEAAf//AAD/AAD//wD//gAAAP///wEBAAAAAP/+/////v//AAEAAP8A/wD/AP7/AP/+/////v//AAEAAP8AAP4AAAEA/v8AAQAA/wAAAAEBAgAA//8AAAAB/wEAAP8B/wD/AQABAAABAQABAQECAQEBAwECAgABAgABAAH/AP8AAAAAAAEAAf///wAAAAAA/wD//wAA/wAAAAAA/wAAAv8BAQH/AQAB/gD/AP//AAH//gEAAAAAAf8AAgEA//8AAwAB/gD+////AP8A/wAA/wD/AAAA/wABAAAAAAAAAQD//wEBAgD+/wAAAf8AAv///gEBAwMCBAACAAAC////AP///QEAAgACAAH/Af7//wABAf///wADAwT/A/0A/f39+/4AAAIEBAH/AAEG/////wYABf/9APv7+v79/QAAAgMICAACAAD+/v/9/fz8+gABAQYHCP/+AP8CAwMBBgIEBAECAwUDBQYHCQQFBQD/AP3+/gQFAwELC//9/AABAQIEAfn19P77+/8BAAMCAvr7+fz8+wcBBwH/AQEAAf38/AQFBgECAvz9+////v78/QUEBPz9/v/+/P7//AD//v///gEB/wEA//v7+QAAAf77/gD//v4A/wQC//z9+QUFBgUGBv//AAIDAAAA//7+/f8AAP39/AAA/wMDAv7//wIBAQH/Afz7+wIEAP8CBAEEBAECAQD+//8DAAEAAgMCAQH/AAUFBf38/Pz8+/v7+gT5BP//AgMCAv8A//8CAAIAAQD+AQEEA/////79/P///gABAgAAAf/+AP//AAEBAQIDAwEBAf///////v//AAAAAQEBAAAAAQABAQD///////////79/f77/Pv5+P74+QP3+P/3+QD9/QQBAQIEBP8A/wECAgEDAwIEAgMEBAEDAwEEAwIHBwIFBgMFA/8FAwT/AP8A/wD//wABAf8BAAAA////Af8B///+AAEBAP8AAf8CAgIEBAQEBgUIBwYIBwkHBwgGBwYEBQYCAwMBAQMAAAD//wAAAP//AAAAAP8AAAABAAAA//8AAAD//////wD///7/////AP//AAD///8AAP////3///7//v8AAf/+/wEBAQAA///+AQMBAP8AAP8AAAAAAAEBAP8AAQEA/wD/AP7//wAAAP4AAAEBAAECAwMCAgQCAwQBAQMAAgIAAAEAAf4A/wAAAP/+/v//Af8BAAEA/wAAAAABAAD/AP8AAAEAAP8B/wD/Af8A/wAAAP8BAQD/AQAAAAD/AAAAAAH/AQIAAf4AAAEAAQD/Af4A//////8BAQEA/wH///8A/wAB/wABAQH/AP/+AQH//wEA//8BAAAAAP8BAQEBAwEC/wL//v4AAAL9/f4B/wAAAQEDAQL9AP7+/wAA/wD/AAABAwMEAwQEAP/+/P37+vn+/f3//v7//v38+/z+//4GAwMEBggAAgD8/Pv+/Pv+//4BAQICAgL9/Pz+/v3+/v8DAwUCAwUBAQEBAQL//wD//v7//wAA//4AAAMCAwP/AQEBBgcBBAIF/wD69/YBBAT7/PsAAf4CAP///vz+/Pv9+/sECP/+/f0BAP8DAwUBAAL+Av7/AP4BAAD7+/sAAAABAgH//v4BAAL//wD9/f0BAAECAwP/AAAGBAP///7//v78/PsCAgMDAwQDAwP/Af/9/f39/v7/AP///v0BAQMBAP/+/v79/v0DAgUCAgIBAQAA/v//AP8AAwD///3+//7+/f8AAgECAgP/AAD///78/Pv9/v4C/fwBAAQCAwICAP//AQABAQH/Af4C/wADAwT+/v7//v0A//4BAQICAwL+/v/9/f7///4AAAACAwIBAQICAgIA//8BAAH////+AP///////v/+/f36+Pj99fYA9/cC9vcA+Pn+/vwDBQIGAAYCAgIBBQMCBAUBBAQBAwMBBAT/BgUBBwcABgUBAgIAAwAE/gAA/wD/AQAAAP8A////AAABAP8AAQABAgAAAAEAAwICAQMEAwQEBgYGBgcHCAgHBgYGBQQFAwMCAQECAQH/AAABAAAA////////AP//AP///wD/AQD/AP/+/wAA//8A/wAA/wAA//7//wH/AP///////v79////AAD/AP8BAAD///8AAAACAQD/AQAAAQABAAEA///+AAEAAAD//wD/Af8AAAD///8BAQEBAAECAQACAgIEAQEDAgICAQAA////AP///wD+/////wD/AP4A/wAAAAACAQEAAAAAAQABAAAAAAAB/wAAAP8AAAAAAAEA//4AAQAA/gAAAQAC///+AQAB/wABAAACAAD+AAAAAAAAAP///gD/AAABAf////8A/wD+AAAC/wAAAAABAAABAAAAAAAA/wAAAQAAAf8B//8A//8AAQEAAgIB///+AAIB//7/AQIAAwEC/wD//v7/AAAAAAAAAAABAQQDBAIHAP0FAAD//Pr6AQMEAQAA/v3++/v8AgMDAf8AAwMEBwUD/v7//f7//Pz8////AgICBQUFBQUFAQEBAAEA/v79//8BAAD/BAUE/v4AAQMCAwQDAQIC/vz7//4BBQEC/v78AwAB/Pv7AAD6///+//8A///+//7+AP8BAAAB////AP//AgIC//78/wD/AwMEAAD//v79AgMC/Pv6AwMCAP8C/v7+/v7+BgYG/P3+AQIBAAEABQQF+vv6AQEDAwQE/f79AgIBAgMAAgEB/f36AP///f7+AwIEAgEBAQAA/fz8AwMEAAECAf/+/f36/wACAQIF/wL//v3+AQECAAABAgMD/v7+/Pv7BQUHAQEBAQAC/wD9/wD+AQMBAf0BAgICAQEA/wD/AP8C//8B/wAA//7+AQEBAQECAQIDAAAA/wD/AQAB////AQAA///+/v7+/v7/AAD//v/+/fz9+fT0+vP0//j4Bf/+AAQB/QYDAwIHBAcAAQICAgYFAAQFAAMDAQQF/wQF/wYF/gcGAAYEAAAAA/79BP7+/wABAQD/AP8A/wAAAAEB/gD/AQAB////AAEBAQEBAwICAgQEBQUFBwcGBwYFBQUFBQMEAwIBAgEBAP///wAA//////8A/wD/AAD//wEAAAAAAP///////wAAAP//AP8A//7///8AAAH/AP7//wD//QAA/wD///8AAAH//wABAAAAAAAAAP8BAQAAAAAAAAD/AAEAAP8AAAD///////8AAAAA/wABAAEBAgIBAQECAwABAwECAwABAgAAAQAA//0A/QH///7//wEA/v//AQEAAQEB/wD/AgAA/wABAAAAAAAA//8AAAEAAQAAAP//AQEBAP//AQAAAAAA/gABAQD/AAAAAAABAAAB/wAAAP4A/wAAAQEAAP8AAAABAQAA/wH/Af8A/wAAAQEB/wAAAP8AAgAA/wIAAv4CAQMAAv7+/f3/Af7+/gECAAIBA/4AAP8BAP//AQEAAQEBAAIB////AAEBAf8AAQEBAAEBAf0B/P/+/wMFBv/9/f38/P8BAgAC/gECBAICAP3+/fv8/wEBA/39+wAAAgQEAgMEBgECBAIBA/8AAAEAAf/+/v39/gUFBgMEBQL///7//v///wEDAwEA/wEEBgQBAPz6+AMEAvz6/P3+9v39+wMF/P////38/f8A/gIBBP/+AP///gIDAgECAgAAAwABAvv7+QECAgUFB/8AAfz6+P4A/wEDAQQDA/7+/gICAf8AAAMCA/8A/gEBAf///fz8/vv9/AUFB/3+/wECAwP/BPz9+wEBAQIDA/7/AAEAAf//AP7+/wIA/wEDAv////7//AEAAQECAwQDAwD+/wQDBfz8/AIFA/7+/v///gEBAAAB/wH/AQEBAv///QEBAP8A/v///wEAAf8BAQAA///9//8AAAECAQMCAAABAAD/AAEAAf///wD//wAAAf///v7+/wAAAP/+//7+/v3+/P77+wD6+gL8/QMAAAIFA/8JCQH7/AIAAQIEA/8FBQEFBgADBf8FBQAEBP8GBAEFBAADAgL+/AH5/gT9/wEB//8BAAD/AAABAP8B/gABAf8AAAD/AQABAAEBAQIEBAQFBQYHCAYHBwcFBgYFBAUDAgMBAgEAAAAA/////wAAAP4AAP///wAAAP8A/wAA/wAAAP8AAAD//////wD/AP////7//////wD//wAAAAD/////AP8A/wD+AP8B/wIAAP8AAf8B/v//Af8AAAABAQH//wAAAP8AAP8AAP//AAAAAP4AAQIAAAAAAQIAAQIBAgEAAgL/AQL/AP8A//8A/gD+//////7/AP8AAQABAAH/AP8A//4AAgEB////AAEAAAAAAQEAAP8AAAEBAAD/AAAAAP8AAP7/AP8AAP8AAP8BAP3/AQH/AAAAAQAB/wH/Af///wAB/wAAAP8BAAD/AAEAAP8BAQH//wAAAQAB/wD//wH//wEAAAAAAQEEBAYBAQH+//z/AP7/AAEB/gACAgECAgH9/Pz/AAEBAQIAAP/+//4AAAABAAH/AQD/AAEAAf8CBAIEAgEDAwT+/vz//gAAAP7//v8CAgMABAEBAAAGBwcAAQABAAD7+/0BAgL+//4AAQIDBQQCAwUAAAEAAgICAgT8/fwCAgP///7//v8DAwT+BAYBAQEBAP/9+/0CBQYAAgL8+fkE/vz//vz///z//v3+/fz+AQACAQD+/f/9/vz8+/oBAQECAAH9+/wAAf8DAQL7AAAAAAEAAAD/AAH+/v0BAQL/AP//Av38+/8BAgH+//4BAAICAAECAgL+/v3+/v8AAAEBAAL+//4AAAL/AP//AAACAgMAAP//AAD/AP//AP8BAQAAAP/+/f0CAgECAgIGBgX9/f0A/wD//v39/Pz+BQYD/wABAwIC/f8AAgP9/PwAAQAA/wIAAf0CAwL//gABAf/+//8BAAEBAgEAAAH/AP8AAAAAAAH////+//3//////wAAAAD////8/Pz69vb++foD/gABAgICBgYBCQkA//4ABAQCAgL/AwMCBgYBBgcAAwf/AwL/BAMBAgH/AwL//v4C/f8A+/0EAP7+/wAAAAAAAAAAAAEAAAAAAAEBAAD/AgABAQMCBAMDBQUGBgUFBgUHBgYGBQQFAgICAQEBAAAB//8A/wD/AQD///8AAAAAAP///wD/////AAAAAf///wD/AP////8A///+/////wD/AP///wAAAP8AAP//AAAAAAD/AAABAAD/AAAAAAEB/wD/AAABAP//AAD/AAAAAP8AAQAA/wABAAD+AAEBAQEBAQICAQEBAgEBAQIBAAABAf8AAP////////7+////AAD//wABAAAB/wEB//8AAQEAAP///wABAQAAAAAAAAD/AAAB////AAEAAAAA/wAAAAAA/wD/AAD//wD//wEBAP//AQAA/wEB/wH/AAEBAP/+//8A/wD/AQAAAAABAP///v/+AQEA//8B/wAAAAEC/wD////+//8A/wECAAIEAf8BAf/+/wD/AQQC////AAAA//8D/v79AQECAgEBAf79AQIBAQIB////AP/9/fz/+/v8/v7+AwICAP79+/r6AQABBAYGAwQEAQIBAP8A/v7/AQECAAABBgcEAQIBAgICAwYHBAQF/wEDAQIDAwIC/gD/AwICAAEB/v0AAQIAAf7/BAUF/wL/AgAFAQEDAAD++vUGAPz7/Pz/BQAB//4A/fz9AQIDBAQF/gD///7/AgEBAgECBAUF/v77AQIB/v3//v//AgIC//78/v7/AQH9AAD//wD/AAECAP8BAQMC/v7+CQoK+vr7/f79BgECAgMA/wD/AgECAAICAwEBAAEBAv7//gD+AAEB/v4BAgH//v4AAAD9AgQDAQAB/wIEAQAB/gD+AgICBAID/P7+/f39/v38/v3+AgIDAgABAAICAAD/AwME/wD+AP8B//8BAQEA/wH/AQAB/wAAAAAA////AQAA/gAB///+////AAABAQEDAAD+AAD+/gD//v7+/fv5/Pj4//n6A/7/BAMEAAkIAPwL/gEA/vz8/gICAgQFAQYFAAQGAAMEAQACAAAAAf/+APz+APz9APn8APj7BP7//wEB/wAAAQAAAQAAAAEBAP///gEAAv8CAgIBAQIEAwYEBQcHBgYGBQQEBAQEAwIDAgEBAAD//v8AAAEBAP////8AAAAA//8A/wD/AAAA/gD///8AAAD/////AP///wD/AAAA/wD//////wAAAP///wAAAP//AAAAAAAA/wAAAf8AAAD+/gECAgD//wAA/////wEBAQAAAP8AAAAAAP8AAgEBAQABAgABAgECAgEBAQH/AQL/AQD//////v///v/+/////wAAAAABAQEBAf8A/wEAAAD/AAABAP8A//8AAAEAAQH/AQAAAAEBAQAAAP8A/gABAP//AAAAAAAAAAIBAP7/Af8A/wABAQH/AAH/AAAAAP8AAAAA/wEBAAAAAAD/AP8AAAEAAf8A/wH/AP8AAAEAAQIBAv3//wAA/QAA/wEBAAABAf7+AQD/AP///wAA////AAICAQICA////wEBAQIDBf7//wIDAAD//wABBQIBAgUEBf////////z8+wkFBgD/AAICAgACAf///wABAAkJCQICA/38/P/+/QAAAQMFBQICA/3//v7+/QYCCP4A/wD9/AUDBQAA//8AAAQEA/38/QH/Av8AAwMABQAE/////QYMDwABBPz6/AAAAQECAv7+/vr7+wIDBP///wEA/wACAwIFAAABAf8AAQECAwH//wD9/wAAAAACAgD+/f3+/AMCBAMDA/7/AAAAAAEAAAICA/z7/f79/gEAAPr5+v8BAP7//gACAgQFBv7/AAIBAf8C/vz9/gIBAwECAQAAAQICAv8AAgD/AAEBAgQDBPz9/gD/AQEBAgEDAgL9/gD/AP3+/f38+wIDAgEBAgIDAwD/AAAC/v///////wD//wAAAP7+/v8A/wH/Af8A////AP7//wICAQAAAQIB//7+AAAA///+//8A/v/+//39+/z7+wD7/QD+/gH+/wABAAEDA/4EBAEJCQL//wEDBAEFAwEFBAD/AwD/AAD9/wH9/gH8/wD9/QD8/AD5+wD4/QT///8AAAAAAP8AAAABAAD/AAEAAAAAAv8CAgECAwQFBAUGBgUHBgcGBQYEBAUCAwMCAgEAAAAAAAD///8AAP///v8BAQD/AAAA//8AAP8A/wAAAP///////wAA/wD/////////////AP8A////AAAA////AAAAAAAA/wD/AAAAAAAAAAD/Af8A//8A/wEAAQAAAAAA/wAAAAABAQAAAAEBAQIBAAEBAAEBAQIBAAMAAQL/AAL//////v7/AP8A/v3+/v8B/wAAAQH/Af4A//4BAAIAAQD/AAEAAAAAAAAA/wEAAQAAAQEAAAEAAAAAAP8AAAABAAD/Af7///8AAAEBAAEC/wAAAAH/AAD/AP8AAQH//v4A////AQAAAAABAAH/AP8AAAD/Af4A/wEAAAAAAAD/AP///wABAf8AAgD//wAAAAAA/wEBAQEAAAAA//7/AP8AAP8DAgIAAgL/////AAEBAAADAQEBAQD/AQAC/v8DBP///f7//v8AAQEG/gcBAgL9/PwAAQADAgL+AP/+//77/PsA/f0CAAAAAQEFBQUBAwP///7+/v8EAwUCAgEAAAACAgT/AP8A//8DAwP/AAEBAQEBAwH//wIBAQIBAf/9AwIEBgf6+voEAQP/AAH/AP//AP///v39/fsCAgMAAQACAgMA/v8CAgH+/gICAgIA/gL/AAD//v8CAAIBAwH/AAABAQH+AAD/AAH+/////f8AAv/8+fkBAQEDAwQGCAf9/v3+//4CAgL//wACAgH////+AAEGBwcAAAD/Af8BAQMCAgP/AAAAAP/+/v3//fv+/gECAQH9AAABAQABAQEBAAD+/fz+//z9/AMCAgMBAAQAAgAAAAP///4CAAABAAD//v///wAA//8AAQAB/wABAQABAQEAAQABAAD/AAIAAP4A///////8/f7+/vv7+fn59Pb49PX9+PoB//8BAQEAAwMDCQj+BgUCAQEBBAMAAwL/AAEB/f8A+PsB+/wB+/0B/f0B/P3/+/wA+fv+9/gEAAAA/wAA/wAAAQD//gAAAgAAAgEAAQICAgICBAQDBQUEBQUFBgYGBQYGBAQDAgICAQABAAAA////AAD//v//AQH///8A//8AAAAAAQAAAP8A/v8AAAAA//7/AAAA/v//AP/+////AAAA/wD/AP///wAAAAABAP///wAAAAD//wAAAQABAAABAP8AAP8A/wAAAQABAAABAAH/////AgIC/wEAAAEAAQECAQECAQEBAAECAAAA////AP///v/+//7+//4AAAH/AP8BAf//AQIDAQP+AQABAAD///8AAAACAAEAAQAAAP//AQH/AAAB/wD/AP8B///+AP4BAQAAAAEAAP8A/wEA/wABAQH/AQEBAAAAAAAA/gD/AAAAAQAB////////AP//AAAB/wAAAAAA////AAAAAAAA//8AAAABAgAA/gAB///+AP8A////AAEAAgECAAABAQICAAAA/v/+AgEBAAECAgEAAAABAAEBAAL//wEA//7/AQIC//////8AAf//BggHAAAB/v/9/v38/P39A/8BAgIDAAEAAgIDAP///f7+AwQEBgIEAQEC/wAAAgEB///+AAACAQEAAQMC//7+/wD/AAAAAQEBAwUF/fn5AgACAQICBAYHAQT+AAIC/wAA/fz7/wEBAQcIBAUE/v7+////AgIDAf///v3+AgEE/f77AAIDAwQF/f39AAD/AgEBAQICAQECAQECAwMD+vv7BAMGAwL/+/z9AAEB+/r7+/z7AgUEAgIAAQMBAgED+/z8AQABAP7/AAIBAgIE/wAA/v/9AwIC/////wD///7+AP8C/gAAAQIC//8AAQEB/wH/AAD//vv9/wP+//79//8CAQEC/wD/AgICAP7/AAEA/wEAAAICAf8AAAD/////Af/+AAAA/v39/////v7+AAAA////AP7+///8/v77/fv4/vr3/vv6AAABAgMD/wQE/gYEAgMCAf7+///////+////A///A/v+APv9Afr8Avr8APv8Afv7/vn6/ff4Aff5BP4AAAH/AAABAAAAAAAAAAAA/wAAAgIBAQMCAgUEBAYFBQcHBgUFBQYEBQMDAwEBAAAA/wAAAf8A/gD//wAAAP4AAAEA////AAAA/gD/AAAAAAAAAP//AP8BAQD+/wAA//////8AAAD/////AAABAP///wAA/wD//wABAAAAAAAAAP8A/wH/AP8AAAEBAAAAAAD/AQAAAP8BAQEAAP8AAAAAAQAAAQEBAQEBAgACAgD/AQD/AP8A/wD//v///v7+/v///gD/AQEBAAEBAgD//QD+AgABAf8BAAAAAQAA/wEAAf8BAQIBAQD/AP8B////AAD//gH/AAAAAf8A/wD/AAAAAQAA/wEAAP8AAAEBAQEBAQACAQH/Af/+//8AAAAA/wAAAP8AAAAA/wD/AP///wAAAAAAAQAA/gAAAAEAAP4BAQD//wEBAgEA//4AAQAB/wACAgEBAAABAQH/AAEBAQAAAQICAgIBAQAAAAAAAAACAQAA//8EAQAAAAD/AAABAAD/AP8A/wD/AAL/AAABAQQBAwQFAAMBA/3+/v///////gMAAQAA//v8+gUFBgEAAP7/AAQDBAAAAP39/wIB/v///gEAAAEBAv8CAAD//AMEBfz9/AQGBP/+Bfr6+/3+/gT//wMEBQABAP8A/vv6+gIDAvz7/gAA/gIAAQQCA/38+wICAvz7+wMDAwIDA/3+/wEAAgABAf7+/QEBA/8AAgAAAfv6/AEBAAEBAP7+/gIEAQQFBP7//wAAAQEBAQEBAQQCAgACAv39/gD//wL+/f8A/wABAv4A/wICAgICAv3+//8A/f3+//7+/gADAgL/Af7+/gD/Af4A/v39+wICAgECAQH/AwIBAgACAQEDAgD/AAMC/gMCAv3+/f8AAAH/AgD/Af7+/gABAP/9/gEBAP8BAAEAAQEAAAIA//37/P77+f/9/AMCAP4EAf7+AAH9AwH+Bv8B/P78/AD9/QP+AAP9/wH6+wH6/AL4+wL5+gD4+QD5+//4+QH2+AP4+QL5/gT/AAD/AAAAAP8CAAEAAAAA/wECAgECAQEDAwIFBAMGBgYGBgYFBQUCAwICAgEBAQL/AP8A/wAAAAD///8B/wD/AQD///8BAP////8BAAH/AP///wD///8AAAD/AP//////AP////4A/wD/AQAB//8A////AAAB//8AAP//AAABAAAAAAEAAf//AAAA//8BAAAAAAEAAQEBAAEAAAEAAAEBAAECAQIBAQIBAQEB/wABAv8AAP8A//3+///+/v7//v7///4AAAEAAgL//v//AgAA///+//8AAQAAAQEBAgIAAQEBAAAAAAAAAAAAAAAAAP8AAAAAAAEBAP8AAAH/AP8AAAAAAgEA/v8AAAEAAP8BAAH/AAEBAQH/Af8AAAAA/gEAAP8AAAD//wD/AAAAAAAAAQEB/wAAAAEBAAH///8AAAAAAQABAAH/AQAB/gD/AAD//wD/AAABAQAAAAABAQIBAQECAQEAAQEBAAABAgH//wD/Af8AAP8AAQH///////8A/gD/Af8BAAEAAAEDAgIBAAAAAAD//v7///4BAQH+/f4BAQACAgUBAgEBAQD///8CAgD8/Pv8/P0GBgX6+vkFBQYAAQD+/v4DAgL//gP9AP4BAQEAAAAAAwIDBQT//Pz+/v/+//4C/wH8+/wDBAQAAQD+//0GAwUBAQH/Af4BAwQCAP4DAP/+/v3///4BAQADAgP//wEGBwf6+/r4+PgGBgb+/f4AAgH7+/oCAwL9+fwFBwf//wD/AAD//f7+Af8AAAECAAACAgAAAAACAgIAAP8AAQICAgIAAAEBAQAEAwP8/f4BAP8BAQIDAv/+/f//AAD///4B///////+//39/QEDAQEAAgIAAQAAAQECAgH//gABAQAAAgD//v8A///+/gECAgIBAQUAAgX/AP79/f39/vv+//79/v79/Pz/+/wC/v8DAwIBBQL9/gL++wAAAAACAAED/wEB/P0C+fsD+vwB+vwA+PkC9/kB9vkB+Pn/9/oB9/n/+Pr++/3+/f4E/v/+AAAAAgAB/wH/Af8A/wEAAgEAAwICBAQEBgYGBwUFBAUFBQUFAwMCAgECAAD/AP8A/wD/AAD//wAA/wD/AP8AAAD///8AAP8A/gD/AP/////+AAAA/wD///////////////8AAAD///7/AAD///8AAQEAAAD/AP8AAAAA/wAAAQD//wABAAD/AAEAAAABAQD//wAAAP8AAQEBAAAAAAEBAAEBAAH/AQEBAAEA///+AP8A/wD+//////79/v/+AP8AAAAAAP/+AAEBAP8B/v8AAQIBAAEBAQEBAP8CAAABAAEBAAAA/wEA/wD/AAAAAAAA//8AAAABAQAAAAAA/wEBAf/+//8CAQH/AP/+AQEAAQEA/wEBAAAB//8AAQH/AAAAAP8AAAAAAP//AAABAQD//wD//v///wD//gD/AP///wAAAP8A//7//wH////+////AAEBAf8BAQEA//8AAQECAAICAf8A/wAAAP8B//7+/f78/gD/AAEBAAEBAAABAQABAQAAAAEBAP//AgEC///+AQABAwIB/v7//vz9AAEABgcI+fn5AQIC/v79AgME/v79AAACBgYGAAAAAP8AAQEA/f3/AQAAAAAA/wAA/wAABAcH/v/9Af79AwEBAAEBAQMB/////wMCAAAAAQH/AP//AQD/+/35AwMG///+AAEBAAIEAf7/AQEBAP/8AQD+AgIC//8A/v78/v78AP///f37AQED/f39AwQEAAD+AgQC+vv6BgYH+/z7AQEBBAME/wD+/v8AAwIC/v7+/v39AAEBAgL//Pz9AwMDAAECAQEAAgEB/gEBAQH/AAD////9//79AAIFAAEA///+//7+/gD9AgID/wH+/wAAAwEBAAEBAQIB//8AAQACAQL///7/AgIB/gD/Af7+/wD///0BAAABAQICAf4BAAAA/v7///7////+/////f/+AAABAwQEAQP+Avv9Afn7Aff5Avr6Avj6//f6Afb5AvX4Avb5/fb4//j6//z8/f3+/v///QH/BAD/AAAAAP7//wIBAAADAQEBAAECAgMDBAUFBQUFBQYGBgYFBQQEAwMDAgAAAAD+AP8CAAD//wAA/wAA/v//AAEA/////wAAAAH/AQABAAAA//8A/wAAAAD//////wD///8A/wABAP/+/wD/AP8A/gAAAP/+AAAAAQABAAAA/wAAAP8AAQD//wEB/wD/AQAB//8AAQD/AAABAQEAAAEBAAEAAAAAAAAAAQAAAAAA//7+AAEB/QAA//7+//7+/v///wD//wABAQD+A/8BAP8BAAEAAf//AgEAAQABAgEAAQAAAAAB/wAAAQAA/wAA/wAA/wD/AAEA//8AAAAAAAAAAAEAAf8AAgEA//8A/gABAQABAAECAQH/AAABAP/+/v//AAEAAAAA/wAAAAAAAP///wAA//7+/v///v7//v8A/gD//gAAAP/+//4A/wD/AAABAAEAAf8BAf8BAQD///8A//7+/f/+/gD//wABAQEBAf///wAA/wEA/wAAAAEAAP//AAAA/wD/AP3+/gIBAf4C/v/+/gABAvv8+//+/wMDAwQEA/39/AICAQEBAgQEBPz7/gMEBQAAAf4A/wD/AAQEAwIBAQEEAv79/gEDAwIAAQAEAf78+v4AAAABAQICAQEEAf7+/gAAAP39/QIBAv79A/z9+AcFBQABAwEB/wAAAv///gABAQIDA/8AAAIA/v79//39/AUEBPr7+wAA/gQEAv8A//n69wUGB//9/P7//gIBAwQDBAAA/gUDBPz9/f///wECAAD/AP////7+/f//AAIDA/7/AAEBAQABAgICAv//AP8B/wEAAAMCAv8BAv8C/vr5/AMCAgICAgD//wD//wAA//8A//7//gH/AP7+AQEAAQABAP///gH/Af8AAQECAgD//gH+/f4A/////wAAAAUEA/4BAP///gH8Av/+//79/v7+//8A/wIAAv/+AAD6/P/3+f/3+AT39wL1+AL3+AD3+P/1+P/0+P309/34+v/6+/79/f0AAfwB/v0CAP4BAAT+//8B/wAAAQH/Af8A/wEBAgICAgIEBQQEBAQFBQUFBgUFBQQCAwMBAgL/AP8AAf8A/wEBAP7///8AAAAAAAD///4AAAAA////AAAA/wAA/wAAAP///wAA//4AAAD/AAAA/wEAAP8AAAD/Af8B/wH/AP8AAQAA//8A/wABAQD///8AAP8BAQD//wEAAf8AAAEAAQAAAAACAgAAAAAAAAABAf8BAP8AAAD//wD+/wAB////////AP/+/v7+/v7/AAABAP8BAAEAAP//////AP///wABAQEBAAMB/wEAAQAAAP8AAAH/AP8A/wEAAAAA/wD/AAABAAAAAP///wH/AAAB/wAA/wAAAQECAAH+/wEBAf8A/gEBAAIBAQABAP////4AAAD/AAAAAAABAAD/AP///v8AAAEBAQAB/wD//wD9/f4AAQABAAEBAAAAAQEAAQIAAQEBAAEAAf//AAD///8BAAD9/v7+//4BAAEA/wABAQABAP4AAAACAQAAAQICAQMAAAD///8CAAECAgEAAAEAAAH///4BAgIEBAIAAAH//f8CAwEDBAX8+/37+voCAwQA//8AAAAGBwf6+vkCAgP+///8+/37/PsIBgcCAgEBAAIAAgIFBQf+/fz+/f7/AQABAgH+//7////+/gP+//4BAAH5+vsGBgb///8BAgEAAQIA/wAA//4BAQECAwP9/Pz+/f7+/fwCAgL+/fz/AAEFBQUFBQUA////AQEAAAEA/gD9/vz7+vsHCAcBAAAAAAH+/wIAAP4BAQMCAwP+/v///wAB/wABAgEBAQEAAP8AAAEAAAD/Af8A/wABAwEA/QACAQH+/v4AAAABAgP///////8A//8BAQEBAAEA///+//0AAAICAAEAAgEB//8AAAAAAAD//wEBAQMCBAECAQICAgH8/Pz8/v4A/wIBAAEAAAABAQH//f/9+fkA+PoB+foD/PwD+PkA9fb/8vX+9PcA9vj/9fj+9vj++foA/P39/v7+AQD9AAH9AgD+Af/+AgAE//7//wEAAgD///8A////AQIBAgIDBAQEBgUGBQUFBAQFBAMDAgEBAP//AQEBAf//AAAAAAEAAAEAAP//AP///wD/AAD/AAD/AAABAAD/AP8AAQAA/wD///8A/wD/AP8AAAAA//////8AAAD//wD/AAD/AP8AAAAAAP8B//8A/wEAAf8A/wD/AQEB//8AAAAB/wAAAQEB/wAAAAEBAQAAAAAAAAABAQD/AAD+//4BAAAA/gD/AP///v7+/v/+AP8A/wAAAQH/AgL///8AAP8B/wEAAf8BAAIAAAEAAAAAAQABAP8AAAABAAD//wAAAQABAQD/AAAAAAAAAAH+AP8A/wAAAAEBAAD+AP8AAAABAQAB/wEA/wEAAQAAAAEAAAEBAP//AP8AAAD/////AAAAAQEAAAAA/v4A/wD/Af//AgIB/v7/AAEAAAEB//7+/wEAAAH/AAEB//7////+AAEA//////8BAP7//f/+AgID////AgACAQD9/f7+//79AQP+BAIDAwQDAP8BAAEA/P7+AAEAAgIDAQEA/vv8/wABBAMCAAD//vz8AP/+AQEC//79/gEAAwQG+/r6/fz9AwYDAAAAAwQB/v8B/P38CAQG/v8AAQIDAQIDAQID/vz8AAD+/v79/v7+BAQH/f7+AP38BAIDAgMB/wAA//8A//38AAIC/wD/AgIB/v7/AP7/AQEB/f7/AQD+AQEBAgED+fr5AAEAAwQGAAECAf/+//4B+fj4AgMBBAMG/Pr7AwME/f/9/wL+BQQFAQAB/v8AAAEA/v3+AAAAAgMBAP/+/wACAQEBAP//AgAB/P7+AAAAAAAAAQIBAgIDAAAAAAAA//8A//8A/v7/Af//AwEA/v//AP3/AwMBAAICAQAC/wD+AAD/AAABAwMC/wAAAQABAgABAQEB/wD//f3+//3//fn9/Pn7/Pn6/vz8BAABAAD/Af38Afb2APTy//HzAPH1/vX4//f5APf7/fv8/f39/wH+/gL//gEA/gAA/gEA/wEA////BP7//wH/AP4CAAQAAQIBAAIBAgQEBAYFBQYFBAYEBQUDBAICAwIBAQEAAAAA//8AAP8A/wH//wAAAP///////gD//gAA/gAAAgAA/wH///8AAAAAAAD/AP8A/wD///8A/wAAAAAA/wAA/wAAAAD///8AAAD//wEAAf8A/wAAAAD/AAAAAAD//wAA/gABAf///gEBAQAB/wAAAv8A//8AAf8AAAAA/v//A/7+/gABAAAAAP/+////AP////8A/wD/AAABAQD///7+/gEB/v7/AQP/AgAC/gD/AQABAgEB/wAAAAEAAP8AAAAA/wEAAQAAAAAAAAABAAH/Af8AAAAA/wAA/wEAAP8AAAABAAEBAP//AAEBAAEAAf8BAAEBAQAA//////8A/wAAAP8AAP///v////8A/v8A/gAA/v4A/v////7//gD+AAAA/wABAQAAAP7//wICAwEAAQABAgD///8AAAMCAv4BAgH+/f7+/gH/AP4B/wICAQICBP4B/wAAAf/////+AAAA//7/AAABAAAAAf7+/v/+/gEAAAEBAP3+/gD///////////8B/wIDAwICAv7+/v//AQAAAAAA//39/gECAgICAgUEBQEAAf8AAAAAAAAAAAABAQICAv7+/f7+/f//Af///wICAQICAwACAgAA/wEAAQABAAH/Af39/gMFA/38/QD////+/gMDBQIBAwICAPn6+AABAf7+/gEAAf/+/v4A/gEBAQEAAAcHCP3+/QAAAP79/gUFAv3+/QABA/39/f//AAIDA//+//////7+/fz7AAMFAQEBAAIBAAD/AP38/P/+/v7/AAD//wABAgIBAQH/AgD/AAABAAD//wD//wD///7//wEBAQEBAgD/AAD/AP8A/v7//wIBAQAA//7//wAAAAAAAP3//vz8/fr5+Pz7+//7+//7/AMAAgECBP0A+/78/AD6+f739gL29QLz9f/09AD19v72+gD5/P/8/P3//v0C//8AAf4AAf8A/wAAAAAA/wEAAQAAAQQA/wAAAQAB/wAAAgACAQIEAwMGBQUFBQUFBgYFBgUEBQMDAgMBAAAAAAD///8BAAABAAD//wAAAP8AAP////8AAP4A/wAAAP8AAAAAAP///wD/AAAA//8A//7/AAD///8A////AAD//wAAAP8A/wD/AAABAAD/AP8AAAABAAH/AP//AAEAAQEAAP8AAAAAAQAAAAEBAAD///8CAQH///8A//8AAAH/AP8A/wAAAQD///8AAP///wD/////AP////8B/wEAAAECAwMA//4A/wL/AP////8AAgAAAP4AAAIAAAAAAAAA//4AAQAAAP8AAAEAAAAA/wD/AP8A//4AAP8BAAH/AP8BAP//AP7/AP8AAAAAAAAAAf8A/wAAAP////////8AAAABAQAAAP7///8AAP7//v7+//3/AP8AAP//AP4A//////////8BAgAAAQEBAAEAAP8CAQIAAQH9/f7/AP////////8AAQEDAwQBAQD///4BAAH+//8DAgICAQIAAQD/AP8AAAD+/v7/AAACAQH///7///8BAgEAAAEA///+/v/9/v0CAwICAgMBAgIBAgD+/f3//wIBAQABAQAAAQEAAP8CAgP//wD9/v3+/v0AAf//AP8EAwP+/QAB/gACAwIA/wH+/v7///0AAQECAQEDAwIBAQIB/f////0EBQX+/f8BAQIBAgIA/QEBAQABAgL///0EAwQAAQAKCgr5+vsHCQYEAgH9/P7+//4CAgIAAAL9/PwAAQD5+PcCAwL9/v0FBgf9/v7+//8AAAEAAAEAAAAAAAEA/wD/AP/+//4BAP8BAf/+/vwAAAH+/v7//v7/BAH/Af8BAAH+/f0BAP///gL//QH/AP8CAgIBAAD/AAL+/v4BAQABAAH//////v8AAAABAAAAAAD//v8BAAAEAwL9AQH5/f79+/r7+ff++PgB+voB/PoA+/kA+vkB+fn++fn/+fv/+/3//f8AAP/9AgD+AQH+AAD/AAAAAAAAAAAA//8BAAAAAP8AAQEEAAAAAAAAAQAAAgECAwIDBQQFBgUFBwYGBgUEBQUFBQQEAgIBAAABAAAAAAAA//8A/wEAAP/+AAEAAP//AAD/AP8B/wD/AP//AQAA/v//AAD//wAB/wAAAAABAP///wABAP8A/wD+/wD/AP//AAD/AP8A/wEAAP//AAEB/wD/AAAAAQEAAAAA/wAAAP8AAAD/AAD/////AQEA//8BAQEB//8AAAAAAAH//wAAAf8A//8AAAD//v8AAP///wD/////AAD/AAEC/v//AP//AP/+Af/+AAACAP/+AAECAQD/AAD/AAAA/wEAAAABAf8AAAD9////AAAAAP//AAD/Af///wD/AP//AAAA/wD+AAD/AAEA/wD/AQAAAAL/Af8BAQIAAf8B/gD/AAD//wABAAH9///+AAD+AAH/AP4A//8AAP8BAAH//v7+/v79//3/AQEBAQQEAf7//wH/AgMB/wD+AQAAAAAAAgAA///9/v8ABAICAgECAQECAAABAP///v/9//3+/f3+AAD/AAEBAwMDAAAAAQABAQIB///+///8AP8BAAEAAgIDAQECAAICAQIB/f39AAEC/v78AQAB/f39BQUF/f79AP4AAgIC/v38AQIC//7+AAECAAIB/vz9/wEA/v/+/fz+AgED/wD9AAH/BQUF/wAA/wD/AAAB//7/AP3+/wD9/wD/AgEBAAQD/fz9Af8A//7/AP8ABQUGAgICAQID/Pz7/QABAQEBAAEA/v39/wD/AAH///7/AAH+/gACAAEC///9AQAA/wACAAEA//8AAQIBAAEB//////////39/v4A///+Av8BAAH/AAD/AAIBAAIC/v//BAIBAAD///////7+//7+AQH+//8DAAMBAAEC/v7+AQABAAH/AP8AAAAAAAEAAP8A/wH/AgICAAEA//4D/wAA/v37//z7//79AP/+/fv6Aff3/vf3//j4APj5/vr7/v7+/wH/AQP/AAAC/wEA////////AQH/AP///wAAAP4A/wABAAD//wEBBP///wEBAAECAgIBAQMDAwQEAgUEBAUFBAUFBQQEAgECAgEBAAAA/wD/AP8AAAAAAAD/AP8A/wD/AP///wD/AAAAAAAA////AP8AAAAA/////gAAAv8B/wAAAf8AAQH///4B/wD/AAD//////wAA/wAAAQH+//8BAQAAAAAAAAH/AP8A/wEBAAAAAQAAAAEAAQAA/////wAA/wAB/wAAAP8AAQEAAAD+/wAB//8AAP8AAAD/AP///wD///8A/wD///8AAAAB///+/v4AAQEC/wD//wD///7//wL/AP8AAAEBAP//AQEB/wD///8A/////v//AAEA/gD/AAAAAAH//wAA//8A/wAAAP////8A/wABAQAA/wABAAEBAf8B/gEBAf8CAAL+AP3+/wAA/v/////+/v8A//////8A//////8AAP8AAf///wD//wABAP7//wD7/AICA/8CAAACAf7+/////gH/AAMCAgMBAwMB///////+/f8B/wABAgIBAAEAAgABAAAB/gEAAQICAgEBAQEBAQABAQAA/wIAAv8A/v7/AAAAAAIDAgMEBf8BAf7+/////gICAQAA/fz+AAcDBwEAAAEAAf4A/v7//f3//QMCA/3//gD///r5+gICAv//AP/9//38/Pz//QMCAv0AAAMDAwMDBP8AAAMCA/3+/Pv7+gMEAv///vz+/gIDAv3//gL/AP//AP7+/vf49gMDAQAAAQQEBPn5+QMDA////wAAAPz9/QECAQEEAv/9/f8A/////f78/AAB/wQFBgEAAP0A/wD/////AAAAAAAAAgICAwEBAAD/Av8B/f39+wMBAv8CAAAAAAD///7+/gICBAEBAP//AP///gD+AgEC///+/gAA/f4AAAD/AQEAAAABAAD/AAEBAQACAQIBAgIBAQD+AP4AAQD///7+/P36+f749/74+f739/359v739wD4+QH7/AD+AP0CAv4EAgEABAH9/v/8AQD+/wEA/gAA/gH+AQD+/v8C//4A/wEAAP0B/wQAAP//AAEAAAEDAgEFAwMFBAUFBQQFBQUFBQUEAwMCAQEAAAAAAAD//wAAAAD/AP8AAP////8BAAAAAAH/AP8AAAD//wAAAP////8A/wAAAAAAAP3//gEAAQD//wD///8AAAAA/wD//wAA/wH/AAABAf//AAD/AP8B/wAAAAD/AAAB/wH/AAAAAP8BAAEAAP8BAAEAAP//AAAA/wEBAAEAAP//AAD/AAABAP//AAAAAAD//////wABAP7///8AAAABAAEA////Af8AAP//////AP/+/v8CAf////8AAf4A/wIAAQAA/wD/AAAAAP8B/wAAAf7//v8AAP8AAAAAAQAA//8A//8AAAABAP8AAP////8B/wD/Af8BAQABAQEAAQAAAf/+AAABAAD/AAIAAP4BAQL///0BAAD+/wD/AQD//gAA/v8A/wEAAAIA//////8AAAD+//4B/v8C/QMBAgEA/wEAAf/9/f7+//8BAQEAAP//AP8AAP8CAv/9AQD//v/+/vz///8AAAH8/f0BAQABAQABAAEAAQECAAACBAMBAQH/AP4BAQP////+/v//AP//AQD6+vgAAAIGBQf+//7//wD//v3//v/+Af8BAQD/AP7//v3+/vwBAgH//wL//f8CAwUC/v4A/v8AAP////78+vsFBAX+/v/+Af8BAQP5+/gGAgcCAgIDAwEBAAECAQH9/P38+/kEBAP//fz4+vz/AQACAgQGBQT8/P38/fsAAAEAAQIDAgQBAwL+AQL+/fz///39/P0DBAL+/v4CAgEA//3+/gEDAQD//QH/AgD/AAIA//4CAQL9/v0BAQIBAQD//f///v8A/wAAAAH///8AAAACAgD//v8AAQAAAAEAAAH+//8AAAD////+AAAB/gABAAAAAwMCAAABAAD////////9/v39+/v69ff59fX79PX/+Pn++fr/+vz//f4B/v8AAP8BAgAAAQEBAwP/AQIABAABBf4A/v0A/v4B//0A/gD+/QAA/gH+/fz+AP/9//4EAP//Av8BAgAAAgICBAQDBQUEBgUFBgQDBAMDAgIDAAEAAAAAAAAA/wD/AAD////+AAAAAP///gD/AAEAAAD////+////AP///wD/AP//AAAA/wAAAQD///4A/wAAAAD/Af///wD///8AAAD/AQAAAP///wAAAP8B/wAAAQEAAAAA/wH/AQABAAAAAAAA/wAAAf8AAQEAAAD+AP8C/wAAAQACAAD/AAEA/v7/AAAAAAAA///+AAAB/gAA//8AAP//AAIAAP//AAABAQD////+/v3+AQP+//8CAAD///8B/wH/Af8A/wAAAAD+///+///////+Af8AAAD/AAAA/wAAAQAAAAEBAP//AAEAAP//AAAAAAEAAP//AAAAAQIBAQAA//8C/wH/AAIA///9//8AAAEAAP8AAAABAQD///8AAQAA/wEAAgMC/v4A//7+AP///gD+AP0AAQEB////BAQDAgEC////AAL+//0A/f79//7/AAD+AP8BAAAAAgMDAgEAAAECAQH/AAAA//7+/f39AP//AQECAgIBAQICAP4DAQMBAgEF/wD+/f8C/v7//wD+AQAAAgEEAgMDAgIB/v/9A/8BAwQEAwAA/fz7AAABAQD/AwIA/gD+AQAA/v7/AQAA//7+/vz+AQH/AQECAQABAAEA/P37BgMI/wD/AQEABwgIAgIC/wH/AgAB/v79AwMDAgAAAP4D/v79AP//BQUF/v//AQIE/Pz9/wD+BAQG/v/+/fz9+vn4BAUFAf//AQAAAgED+vr5BQYGAgD////+/v79//8B//7/BQQC/f77AAIDAwABAf//AP4A/wD+AP8BAQEA//7+/f7+AQL/AwICAAEA///+AAACAgAAAAABAAD/AQAB/gD///8A//8AAAEAAQICAAEAAP8A/wAAAAD//v7//fz++/v6+fb1+/X2/Pf4/fr7//v6Afz9Af8AAAD//wEA/gMBAQYCAAUHAv8B//7+//z8AfwBAP/9/v8CAf4A//n/+/z5/f79/f///gEABAEAAAEBAAICAQQDAgQEAwYFBAUEBAQEBQMDAgICAQIBAP///wABAAAA/////gD///8B/wAA/////wD/AAD//wAA/gD///8AAP///wD/AAAA/wAAAf4AAAAA/gD/AAAAAP8A/wD//wAA/wD/Af4A/gAAAAEBAAAA/wABAQD/AAABAAD//wABAAAAAAAA/wEAAQAAAf//AAABAQEAAAAAAP8A/wAAAAD/AAAAAAAA///+//8A//8A/wAA/wD/AAAAAP///wABAQEA///+/v8AAP4B/QL/AQD/Af/+AP8CAAEAAv8AAAAAAAAAAAD/AAD/AAD///8A/wD/AAABAAEAAf8AAP//AAABAAD+AAAAAf8A/wD//wAAAAACAAD8AAAAAQACAQH//v/9////AAAAAP7+/v7+/////gAAAAEAAP4A/gAAAAD/AP//AP8A//8A//7+/gAAAQEA/v79/f38+gYGBwQEBQAAAv4A/QIAAQD/Af///v79/f//AP7+/QACAf7+/wH///8BAP///wIBAvz+/QMA/wD/Av7/AQH+/wEAAAEC//8BAAAAAP/+/f4A/gEAAQEAAAAAA/7//gD+AgECAf79/wQEA/0AAf8A/QD/AP3+/QMCA/r9+P/9/P3+/v7//gABAAICBAIBAgAAAP79/fz6Af/+9wcHCf8A//7+/QIC/QECAAEBAfz8+wAAAQH/AAICAv79/gACAwEAAP/////9/f7//wECAf3+/QMCAgEEA/79/wD+/gAAAP79/f4A/wMBAvr3+AEBAf39/QQHBgMEBgH+//v8+v4AAAEA/QEDA//+Af/9/v///gIDBAIBAP3////+/v////8AAP///wIAAQEBAAAA//////8AAAEAAAAAAQAB/wAAAP7+/////QP///4CAwIA/wAAAP7//v39/Pv6+/n5+fv6+v38/P7+/v/+/wH/AAAAAAEEBAAIBgMDAwH8/P/8/Pz7/AD8/gQBBAEDAf/6APz5+vz4+f76/P79/P3///4CAP0AAQQAAP8BAf8DAgEFBAQHBQUGBgUFBgUEBQQEBAQDAgMAAAEBAQEA//7/AP4A////AP////8A//8A/wD/AQAAAf8A//////8AAAD//wAA//8AAf8A//8AAQAAAAEAAP8AAAD///8A////AAAAAP8AAAEAAP////8AAAIBAAAAAQAAAAAAAQEAAAAAAAD/AAAA/wD/AP4BAAIB//8AAP//AAAAAAAA/wAAAQAAAAD///4AAAD///8AAAAAAP///wAAAAEBAAEAAAD/Af8AAP//AP4A/wL///////8A/////wAAAAABAAAAAAAAAAD//wEA/v4AAAD/Af8AAAACAAEAAAD/AAAAAQD//gAAAAAA/wABAP/+AP8AAQAA/v8AAgD//v//AAEAAQABAgMA//8A/wAAAQEBAQAA/wH+//7///8A/wD///8A//////7+/v7//wACAQL+/v4AAAD/AP79/f0A/wD///8DAwP/AAD/AAEAAAABAgIDAQIAAP///v7///4BAQAAAAABAQAAAAH/AAECAQL/AQD+AAADAAAAAQAAAgEAAwIB/wD/AAAAAgMEAQMDBAQA/gH+AP4AAAEFBQUDAwUCAQH7/PsCAgIBAQD8/PoBAQH///8BAP////8BAQEDBAUCAgMA/wEA//4CAgMA/v/9/Pv//vwFAwP7+/sAAf8FBQP//v8FBgcBAgL//v0AAQEBAwMEAQH+/v36+/oBAAD/AP4CAgIAAQAB/wAA//4AAAEEAwMAAP/8+/sA//8BAQEBAAEDAQH9/f4CAAAB/f4AAv3/AAH+/f4AAgH/AAH+/gIB/v4CAQD8/gD//v7/AAD//v/+/gL+/v0BAQABAwIAAAD/AP/9/v8EAgD//wAAAf8A/wAA/wABAAD/AP///wD+/wAA/v//Af7////9/fz9/f3+/f7+/v39AP8BBQYCA/4ABAL/AwICBwYC/P4A9/f99PYB9/4D/gEDAgIA/wL8+fn++Pn9+Pn++vr//P3+//78AP/8AgD9AQH8Av8EAAEBAwICBgQCBgUEBgUEBgQEBQQEBQMDAwICAQD/AAABAAD//wAAAAD//wD/AAD/AP//AP8AAAD/AP7//wEAAP///wD/AAABAAD/AAAAAP4AAAD/AAABAAD+//8BAAH/AAAAAAAAAP//AAAAAAD/AAAA/wABAQD/AAACAP//AAIAAP///wAAAAEAAQABAAD/AAAAAAD//////gH+Av8C/wAAAAEAAAAAAP8AAAAA/wD/AAD///4AAAAA/wEAAAD/AQAA/gABAv//AQD///8B/////v7+AQH9AQECAv79AAIAAAEBAAABAP8AAP//AAEAAP8BAQACAAH//wABAAEAAf8B////AAD/////AQD//v8AAAAAAAAAAQEB////AAAAAAH+AAD//wD+AQH/AAAAAAAB/wAA/v/+AP////8A/v7+/v7//v7+AAD/AQAA/wAA/wAAAP///wD+////AP8A/f38APoA/gMD/wABAAEAAAAA/wAAAP8AAQIBAf/+/v//AP//AQAAAQEAAQAAAQEAAgUEAP///wAAAgIAAgMCAAH//v7+AQICAgECAgAAAQID/v3//v/9BAQFBAMFAQID/v/+//8AAgEBAAEC/v7+/v7+Af8A+/z7/f3+AgIC/f3+AwUE/v3++vj5AwMCAQABAQMB/f38//3//fz6//79BAQE/Pz8AgQA/f37AAD//Pz9AP7+AQECAQAA/f3+AP//AQEBAAAA//7+AQABAP7+/wIDAQEB/wAA/v3+AgMDAQAA/gAA+vn6AP//BQUG/P38/fz9/v7+AwUGAgMC/v8BAwMEBAME/f78/Pz8/v//Af8AAAAAAQEB/v78/v4EAgMEAwAC/wD//wAAAwEC/wABAAD///4AAAEBAAEB/v39/v7+/////v//AgACAwMCAAABAP8CAAD//v7+AgMECAwLAfz+//7+/Pr6/gT5APz9//z8AgIBBv////v6//P3+/T3/ff5/vn6/fr6//z8//3+/wD//gEB+wIA+gEA/AMA+wAABAIAAAQBAgQDAwQDBAQFBQQFBQUEAwMDAgECAQABAf///wAAAAAA//8AAAAAAP//AAAAAP8A//8A//8A/wD+AAD/AP//AAAB/wD+//8AAAEAAP8BAQAA/wAAAAAB/wD/AAD//v//AQEAAAAAAf8AAP///wABAQAAAP8AAAAAAAH/AAAAAAD/AAAAAf8BAAD/AAABAAD//gAAAQH+AP4BAAIBAv//AAD/AAAAAAD///8A/wAAAP///gABAQD+/wAAAf4C/wH/Af8CAv4A/wL+/v0BAQD+AQICAf///v8BAQH//gABAQD/Af8AAAAAAP//AgAA/gAAAAD/AQAA/wEAAf8A/wAB/////wAA//7//wD///8BAAH///8AAAEBAAABAP8B/wAC/wD//wEBAQEBAAH//wH/AQH/Af7//v///wAA/wAA/gD//v8A////AAAA///9/v////8A/wD/AP////38/v38/QMEBAIDAwMCAwACAQEAAAECAAAB/wECAgL/AAEA//79/f8BAAAAAP8AAAH//gMDAwIAAAEBAgEAAf8BAAH//wD///////8BAAQAAAMDAwMBBAECAwABAgEAAf8A//7+/v7//QH//wICAP/+AQICAQECAQMEA/z6/v8BAQIAAwIDAgUHAAH/AAIBAgD//wYICPz6+fr5+QAA//79+wECAv8BA/8B/QEAAAMDAwABAf/9//z8+wH//wIAAPz8+wICAv8BAP79AAABAf78/AQEBf/+/f////v7+wICAQECBAMCBP39/QAB+wEBAgICAQACAv39/QH/AAIDA//9/v8A/gD///7+/wEAAAH//gAA////Af8CAP4D/gD/AP3+/wABAAQAAQEBAQACAAD/AAABAAD///7+/vz8/AD/AP8A/wEAAQIDAQAAAQD///7//f3//wQEBAUGB/wDBfz++gEBAwAGBgcJCAT+AAD3+Pvs7/nw9Pvp7v319gD5/P76+/77/f79+/3+/v////4CAP0B//wBAPsBAfwA//r//wQCAgEEBAIFBAQHBwQFBQYEBAQEBQQCAgMBAAEA/wAAAQD//wAAAP8AAAH/AP8AAAAA/wAAAAAA//8A/wAA/v8AAAAA//8AAAAAAAD/AQAAAAAA//8AAQEA/////wAAAP8AAAEBAQD+/wAAAP4B/wABAAEAAAAAAAAAAAAAAAD//gAAAQAB/wAAAP///gAAAQAA/wEAAAAAAv/+AP4CAAEA/v//AAAAAQAAAAD///8AAAD/////AAAA/v4AAAAAAP8B/gL/Af8C/f4AAgH+AQICAP7+AwH+/gIBAf0AAAEAAwIC/wEAAAAAAAAAAAEBAAD//wIA////Af8BAAL/AP7///8AAP8A/wD+/wAAAP8AAQABAAD/AAEAAAAAAP8BAQABAQD/AP8AAf8AAf8CAwIA//8AAv8AAAL//f4BAP///wAAAAAAAf/+/v7////+/f//Af8AAP7//v7//gD+/v79//0A///9/f4EBAT/Bf8C/wMBAgH/AAABAQH///7//v8A/wD/AAAA/gACAwIEBAQCAQH//v7+AP8DAwEAAgECAAIAAv7/AAD9/v0AAAL8/PwGBQcAAgQDAwMBAAIBAgEB/wH/AQEC/wH9/Pv9/f7///7/AAIGBgf+/v3//PwFBAb+/P7+/f0FBAUBAQD//f7//v/8/PwCBAT28/EIBgX+AP8DAgUEAQMA/wAAAAD//v8BAAEBAP8B/wACAwECAwQBAgH+/f0BAQL9//4CAgP9/f0BAAABAgIB/v0BBAMAAAD+////AP8DAQMBAAABAwH+AAH//v4DBAUAAAH//v////34+/sDAgH//v3///8CAgMB///+/f/9Af8AAv0CA/0C//8DAgP/AwIBAQECAQL/AP8BAQD//wD///8BAQH+//7///8CAAD//v7/AAD/AP8BAAAEAgMAAAH+AgIBCQkKDQwFAwP++/v79Pb47u/87vD86e397/P99vn9+Pv/+/v+/P3//v39///9AP/9AwD+AQD+AQD7AQD8Af78/wD7//8EAwICAwMCBQQEBAMFBQUEBgUFAwIEAgIAAAD//wABAQABAP/+AAD//wAAAQD//v//AAAA//////4A/wD+AP8AAAD/AP8A/wAAAAD/AAAA/v8BAAEBAv8AAAABAAD/AAEBAP////8AAQEAAP8BAAEAAP///wAAAAAAAf8A/wAAAQAAAP8A/wAAAf4BAQL///8AAAD+AAEBAP//AAAB/gAAAAAAAQEAAP8B/wD/AAAA/wD//wD+AP8A/wD/AP8AAAEAAP7+AAIB/gH/Af4CAQL+Af8B/v7+/QH9AQECAQL+/v/+AAABAQABAAABAAD/AAAAAAEBAAABAgAB/wD+//8AAAD/////AAAAAQAA/wAB///+AAABAAD/AP8BAQAA/wEBAQIBAQABAQAC/wD+Af4AAQICAP//AAH/AgMC//7/AAAAAP8AAAEBAP/////+AQH//////////////wAA/v/9//3/AAEA/wD//Pv8/v7+AQICAwUEAgMDAQABAQICAAH/AQD/AAABAAEAAQECAgECAgIBAQIC////AAEB/wEBAwQCAAAC//8AAQIA/v7/AAECAAIDAgABAAEBAQEC////AgECAQQC/Pz7/gD/AgIBBAUF+/n6AwICBAYG+/z8/gD/AgQDAgQDAQECBQQF+/r5+fj3BAQEAQEABQUG/Pv6AwUE/v3+AgIDAAEBAAAA/P76/wD/APz9Af7+/gD//f79/f39////BAIBAQABAf8AAQAA/P39BAMD////AQEB///9BAMF/wIB/fz9AQAA/vz9AgUF/QEA//79AQICAQAD/vz8AgICAP7//v38/v3+AwP+/f79/v4B/gIA////AP7/AAAA/gH/AwAA/v7+AP38AwMEAAAB////AQEBAAABAP////8A/fz9/wP/AgIBAgEA/QD/AAD/BAgFDxMS/vcK+/b29fDw9+/v/PT1APb4//L1/fb4/fr6/f39/v7+/P39/f/9/gD+/QD//QEA/QIB/QEA/QD+/AAA+////AD//P//BAMCAQQEAwYFBQUFBQQEBAQDAwMDAQABAQEAAAAA/////wABAAAAAQD//v7/AP//AAD//v8A//7//gAA/wAAAAD//wABAQD///8BAP//AQABAQAA//8B/wH/AQEBAAAA////AP8A/wH/AAD//wAB/wEAAf/+/wABAP4AAAEAAP8A/wEAAAAAAAAAAAD+Af8A/gABAAD//wAA/wAA/wAA//8A/wAAAf8A/wAB/wD+/v8AAP8AAAD//////wAAAAD/AP8B/wH/AQAAAQAA/gD/Av7//gL/AP//Af/////+AAAAAP8C/wEAAAAA//8AAQEAAAAAAAEAAAABAAAAAAH/Av8B/wH//v4A/gAA/wD/AAAAAQAAAAEAAQABAP8AAAH/AQAAAQIBAgAC////AP8A/gABAgEB/wAA/v4AAQEBAQEBAQEBAAEAAAABAAD+///+/////QD/AAD+/v///gAA/gAAAAD+//3//gEBAf39AAIDAgAA//3+/wUHBQMBAwICAQAAAAAAAP7//QMCAwQFBP39/QAAAAECAgIDAgABAv7/AQEAAf8B/wEBAQMCAgMDBP////4A/QUAAv/+/P39/QADAwAAAPn5+AEA//4BAP/+/fz7+/4CAgICAQIEBP37/f8CAQIBAgMDAwACAAcJCf7+/QD////9/QMDBP/+/fn3+QgJCfn3+QcIB/37+/7++wAA/gH//wD//fz5+wMDAQECAf3+AP7+/gABAfz8+gECA/z8/P/9/QECAf/9/f7+/QIB/P38/v/+AAIEBAABAQABAP//APwAAAEAAgMA/AH/AP77/P39+/39+wUDBQEA//z49vv9/wEJDP79Bvz9BAP//wYDBwECAv8AAQAAAgEBAQEBAQAAAPz9/v8A/v7//v7+/gIBAwAAAgABAP8BAAMDBAYGBv77Bvb57/Lr6/fv8P73+P76+AD6+v/5+v76+v79+/z9/fz///0AAf0DAvsA/v4AAP0BAfsAAP0AAPwA/vv///wA//z/AP0B//7+/wQDAwIFAwQDBAQEBAQFBAMEAwIBAQEBAP//AQAAAAEAAP8A/wAB////AP8AAP8AAP7/Af///v8AAAD///8BAP//AQAA////AQEBAAEBAQAAAP8B////AQD+AP8B/wAAAAABAP8A/wD/AP8AAQAA/wD///4AAAAA/wAAAP7/AQEAAAEAAAABAAH/AP4AAAEAAAAAAP//AAD///8CAP8BAP//AP//AP4BAQH//v8AAAD///8A///+AP8A//8AAP8AAAEA/wD/AQABAQACAgAA/v//Af7//gD+AQH+Af4BAv4D//3/////AQMBAQEBAP8B/wAAAQEBAAD/AAABAAAAAQD///8AAQAB/wEAAAD/Af8B/wD/AQAAAAD//wAAAAEAAf8A/wAAAQEBAgAC/wL+/wAB//0BAgEC/wH//gH+/wEA/wAA/wD///8A/wAAAQH/AP7//wD//v7+//3//v4AAAAA/wAAAP8AAAD///4A/wEAAQD9/PwDAAD9+gEBBAIAAwIBAwEAAP8AAAH+/v/8/f0FAwQCAwL+/f78/PwCAwABAAABAgIB/wEBAwECAwMCAQIBAQMBAAD+//4BAQIDAwMAAAD8/PsBAQD+/f7//v0AAf8AAP8CAgIBAQEDAQT/AwACAAEAAQH+///+/P8EAwAHBwf//f37//0DAgL/BAUF/QD//gABAP/9+/v//fwB/v39//3//f0BAf/8+vn8AP4CAwMBAwMBAQT+/f/+/wACAAACAP79/v8EAgX8+/wA/v0BAf/++/z/AAD//vwDBAX9+f7/AAAAAQIBAAH+AAEC/wD+/f4E///8+fj7AfgFBQX++vj8+/0AAwUBBQcFBgb9/f/+AAb/AAECAQECAgMBAAH+/v/+/v8A/gD////9/v7//v8AAf4B/f0ABAQEAwP////7/v3z8fDx6uv48PD++vn+/v3/AAD+//////4A///+AAH9BAL8BgT9Af/8/QD5+//7/f/7/v/7///7/v/8/f/7AP79AP/+AP8B/wACAAAEAwICBAQEBAUEBQUEBAQDAgICAgEBAP8BAP8A/wD+AQECAAD//wAAAAAA/////////wD/////AP//AAAAAP8AAAD/AAACAf8AAAAAAP//AAEA/wAA//7/AAABAAAAAP8A//8AAQAAAAAA//8A/wAAAAAA/wAAAQD/AAAA////AQEAAAAAAAAAAAACAAD+/wAAAP8BAQEAAAD///8A/wD//wD/Af8A/wH/AAAAAAD////+//8A/wD/AP///wD/AAD/AAABAf//AAIB//4CAAL+//8D/gD/Af8A///+/v79AAAAAwEAAAAC/wEBAgAAAAEBAAAAAAEBAAD/AQAA/wD/AgAC///+AAEAAAAAAQAA/wAAAf//AAAAAAAAAAD/////AAAAAP//////AAD/AAH/AQL/AQD/AP8AAf8AAQABAQACAQH+AAABAQEAAf7/AQABAQAA/v////7//v///v39/wABAAAA////////AP///f4AAfsBAwUFBP3///4AAAYGBQIE/gEAAgIBAwMDAwMCAgMDAAEAAQICAP4B/fv8AAICAwAEBQUFAQEBAQEBAQIB//7+AAIBAwMD//7//wAA/Pr7+/r4AQEB//79+/v6/vz9/f7/+vr3AwQDBAUFAwAEAgIBAf8A/v/////+/Pz7AP7+AP7+AwICAQQE/f//BgcC/f37/vz8Af/9//z8///+/wD+AP7//f/9AQEBAP8BAP7++/z6AwME/QABAAEC/Pz+BQUE/v7///0BCQgJ+fj2/Pr5AgIB/v8BAAH/AAAAAwAC/v/+/fv6/QAB//z8AAAAAP///fz9/vv5/fz7+wIBAAQFAQAB/Pv7/v39/Pz8BQUGAAAA//79AgQGAwIC/f7//v79/v7+/f7+/Pv8/v3+AwMDBAQFBQUGBAUEAAD//Pv69/f19vTz+fb0/vz8AAAAAwUE/gMCAgID/wME+wEA/v78/wH9/QL++vn++/r++gED9vv+9/v8+P7++f7+/QD+AP3+AQD/AgABBAIBAQEBBAYFBQYGBQUEBQQEBAUEBQIDAgABAAAAAP//AAABAQD//wEAAAAAAAD//wD/AAD//wD//wD//wAAAAD/AP8AAAAAAgAAAQAA/wAB////AAD/AP8A/wAAAAEAAP8B/wEAAAEAAAD/AAAAAAD//wAAAAABAQD+/gABAP8AAAAA//7/AAEAAQIAAAAA/wAAAQABAAAA/////wAAAQEB//8AAAH///8AAAAAAAAAAP///wEBAAAA/gD/AP8A/wD//wAAAQAA/v8BAP//AgAA/wP/AAD//v8AAv7+/v0B/QEBAQABAP//AQAC/wEA/wABAgAAAQEBAP8AAAEAAAAAAAH/AP8AAAEBAQAA/wAAAQEAAP8A/gAAAQD//wEAAP8AAQEA//8A/wAA/wAAAAEBAAEBAP8BAQABAAEAAQEBAQIBAQACAgAAAwMDAAEAAAAAAgAB/gECAQEBAf7+Af3+/QEBAf7/AAEAAP///wAAAAAAAQD///8AAAEBAwECAgIDAgMCAgQEBAEDAgQEAwD/AP8A/wAAAQEBAgEDAAgDBf39/P3+/gICAgD//wECAgEAAQAA/////gD/Avz9/f//AAH/AQMDAv4DA/36+////gMCAwQGBP4A/vn6+v8AAPv7+wcFBv///////wICAgEBAf7+AP7+/gAAAPz+/QMDAgMABv78+/79AP/+/P39/wH//vz7+v3//gQFBgAAAAQCBf39+v38+gMDAPz59v7/AgEDAgECAv3//AIDA/35/P/7/P77+wIA/gEAAwYFBP3///79/fz7/QMDBP77/AEAAAH+/wEA/wEAAAEA//38+//49/0A/v8DBf8IC//+/v79/f/9/QIHAgEBAAICAwEBAvv9/f79/f7+/f7+//3+/QAA/wQEBAMEBAQDBQIBAv78/vz9+fn4+Pn5+Pr6+f3+/AAC/wIDBAABAgIAAAAG/f0EAgAA/f/+/P0A/Pz++f39Af37/vwA/vf+//D9/fP8+/r+/gH/AAT//gYAAQUAAAMAAQIBAQQFBAMFBAQFBQUGBQUEAwIDAQIBAQEAAAABAQEAAAAAAAD///8AAP8A//////7//wD///8AAAEAAP8AAAAAAAEAAAEA/wD/AP8AAAEAAAAAAP8AAAAB/wAAAf8A/wD+//8C/wAA//8AAQAAAAAAAP///v8BAQD/AAAA////AAABAQABAP8AAAAAAAEAAAH///8AAP8AAP8BAQD+//8BAf4BAAIB//8AAAD/AAABAAD+//8A/wD///////8AAAAAAP7/AAAA/wABAv7/AAD+/wL//gADAv////7+/wD9/gABAgUB///+/v8CAwABAAEBAQH/AAABAP///wEBAf8AAAEAAf7+//8AAAAAAAAAAP8CAAL/AP//AQH///8BAAD+/wD/AAD/AAAAAAD/AAAAAQEAAAAAAAEAAQEBAQH/AgIAJECWDAABAABJREFU//8CAgP//wAAAAIBAf3+Af3+/wABAQAA/gAA/gEC/v///wD+/v3//wEBAQD///////4B/wEAAf/+//z8+gAA//8AAf8EBQUCAgIFBQX//v7/AP8CAQICAQIBAgECAwIB/P0AAP7/AQAAAAAAAP8AAAIAAAD9/fwDBAQB/wD7/Pv9+vz9+/z+/vwDBAMB/wD+AP8AAP8EBQT+/f/9/f3+/v4BAgEAAQIBAQIBAv8CAP//AgL///0BAQIBAwL9/PsBAQACAwH8+PwCAv8CAgD+/vwBAAABAAH//wEAAAD//v8A///9/AAAAAQFAwL39/cABAIBAgIHBgYBAAEA/vwDAQABAAP///79+/v9//8BAQMB/wH7+PkBAP/9/PwB//4CAgEC//4BAAAA/fwD/v79+Pb/BAT/BQUA/wkA//8AAQABAAEDAwMBAgL///78/f7///7+/f7//v8BAQECBAQEAwMBAQL///77/P0AAP8A/v3+/v///gECAwQFCAj+AQD//v0BAAD//wD/AAIABAMBBgUBCQYB+QUABwX++QP8+gL5AgH3AP7y//7y/v36//8FAAAKAQAFAAECAAICAQECAQAEBwUFBwYHBwUFBQMDAwIDAQIBAAAAAAAA////AAAAAQD/AAAB//7/AAD////+/wAA/wD/AP///wAAAQAAAAAA/wD/AAAAAAABAP////8AAAEAAQAAAAAAAP8AAAD/AQD//gABAQAAAP8AAAAAAQAB/wAAAAAAAP//AP8BAQEAAP4A/wEAAAD/AAAAAAD/AAAAAAD/AAEA/v//AQH/AP79/wD+AgEB//8BAAAA/wAA////AAAA////AAAAAP///wAA////AQEBAP7//gH+//8AAgIAAQECAf4AAAAAAQAB/v7+AQH/AgH///4B/wP/AQABAQAAAAAAAQAAAP8A/wD+AAAAAf8A/wABAAEAAf8B/gH/AP8BAAD/AQAA/wAAAAEBAP8AAQAAAAD/AP8A////AAABAQECAgL//wADAAD+AAAA/v3+AgL////9/wABAQEBAgECAQEAAAAAAP8A/gL/AP7///8AAAD+/fz9/v///v7+/v/+AgEC/wECAwMC/f4GAQEAAgMD/v7+/v3+AAD/AQEA//7+/gIAAf4BAQIBBgYG/wD//v7+AP///v//A///AQICAv8A//7/AwADAgAB/QD/AwQDAPz+/Pv7/////v79AQIC/gH///8ABQUEAAEB/v8ABQQDAAEB//79AAIDAwQA/wEB/fz3+/n8/P37AP39//z9/gD9AQAA+/v+AgAB/wEC/f7+/fv8BQICAf8BAQEDAAECAv8A/Pv8DAwS+Pn3CAcG+Pn2BQUD/f76Af8B+vr7BAQD/wEDAQAB/v//AQEC//36//8AAv7+AP/+//v8+/39BAUDAgL/AP78Av78/v8AAQH////////+//4AAAEB/v8BAf3+/f3+//8A////AQAAAQMCAgICAgEC//7//gD9/wD/AAAAAwEC/wECBAUEBwgHCgsL/fj0+v/7/vz///79AgAA/wEAAf8D/wgGA/8KBf/9+//9+P/9+gH/9gL+9f779v0B9/4C/f39//7+Bv8B/wEAAwMBBQECBQEBACuB1H4EBgYFBgQEBgQEBAQEAgMBAAAAAP8AAAL/AAAAAQAAAAAA///9AAD////+/wD/////AAAA/wD/AAAA//8AAAAA/wD/AP8BAAAAAAD//wAAAf8A/wAAAAEAAP8AAAEAAP8BAQD//wEAAf8AAAAA/wD/AAAA//8A/wABAAD/Af///wABAf8A/wABAAH/AP8AAAH/AAD/////AAEBAP7+AAEBAQEA/v8AAAD/AAAAAAAAAP8B/wD/AAD///////8BAQD+AAAA/v//AQAAAgACAAD////+/v0AAgIA/wEB//8A//8AAP8AAAEAAQEAAQABAAABAAAAAAAAAAH/AP//AAAAAP8BAAH/Af8B/v/+AAAAAQAB/wH/AQAA//8AAAABAQAAAP///wAA/wAA/wAAAAAAAAD/AP/+AAAB/gD+AAAAAAABAgIB/wACAwAAAgEB//8B/v///v///wD7//8AAP7+/QD8AQEA/v7+/wAAAQAAAgEBAQADAAEAAQD////+AP/++/v5AQIBAAEAAwMCAwICAP8A/wEBAgEBAQAB//4A/gD9AAD////+AQABAAABAP8AAQEA////AP8A/f/8/P38/wD+/f3++vr4AwIDAQAA+vn6AAMCAgMCAAAA/AAABAIAAQICAQEA/Pz8AQAAAP//AQEBAgQEAgME/f36+/n7AgD/AwIAAP8AAP7+/v/8//79AwQF/v/8AwMA/wD/AAEA//z/AQD9AP7/BAAC/Pr7BQQD/v37Af/69PH0AQEBBQQH//7++vwAAQMEAAADAQIDAQABAv79/v79AgEDAQH+/v77Af79AP7+Af/8AQL9AQIAAQQC/////f38Av38AQH/AQEB/wD+/f37/f/+AgEDAgIBAgIDAQECAQAAAP///v/+Af///wD/AQEC/gD/AQAA//7++vv5+/z4/f/8/wL/AAP/AQIAAQAAAAAB/wMDAQQIAQYEAQYE/QYE+wkG9wkHAfEEAgIBCAAB/AIB/Pr7BP3+Bv0ABQACBP8CBf8BBP8ABAUEBAQEBAQEAwMDAgEAAQEAAQAA////AQEBAP8A/wEAAAAA/v8A//7//v///wAB/wD/AAAAAAAA//8BAAD+AQABAQAAAP///wAA/wAAAP8AAAABAAD//wABAQAAAAABAf//AAH/AP////8AAAAAAAAAAAD//wAAAAEAAAAAAQEAAAEAAP8A/wH/AP8A/wD///8A/gAA/wD/Av8AAAAAAP8AAAH/AAAAAP8BAAH/AAAAAAABAP//AQAAAAD///4BAQD//wAA//8AAf7//wIB/v4AAv8C/v//AAD+AgIB///+//8D///+AP8BAAAAAQAAAAEBAP///wAAAP8AAf8AAQAA/v8AAQAA/wAA/wABAP///v8AAAD/AAABAQAAAP////8BAP//AAH/AP8A/wD/AAD/AAAAAQAA/gIBAf4B/wEC///+AQABAAICAv4A//79Af8A/gD//wD/AP8AAf//AAEAAgMDAAAAAAAA/QD/Av8A/v/+AP4A/gAAAAH/AP39+/4A/f4A/gABAAUEBAMGBwcHB/7//v39/QEDAQMBAv39/f7///////3+/f//APwAAAECAgICAgEAAvz7/Pz8+/z7+vr5+f78/QEGBgQDBQgJCv3//f3+/gECAAEBAfv7+wIDAwIBAQICAv3//QEAAPz9/P/9/P///vr7+gIDAf77/QD9/fz8+vv9+QICAQD//wP+/wH//fz5+gL+AwIDAwD8/Pj39f///wQGCAICBAIFAv0B/fv59f759wUDBwMA/f7+/QD/AAD+//8B/f4A/wEBAwH/AAP/AAEA/v/9/AD++wMBAP/9/gD9/P3+/QADAwECBf0AAAACAQECAwIDBAABAAD+//8CAQMDBAQEBAICAgAAAP7+/wEA//8A/wD+//z//wAA/wH//wEB/P79/Pf29fPz7/f29Pz9+QAC/QEBAAEAAgAAAQEAAgAEAQIGAAD7/QAFBP8FBf8ICAELCgIMCwMKCQYH8Qnz9vn1+AD4+QgA/goAAQn/AAf//wb+AAQEBAUFBQQDBAMCAQEBAQH/AAABAAAAAP///wAAAP8A//7///7/AP4AAAAAAP8A//8AAAEAAP8A/wABAAD/AAAA/wD/AAAAAP///wAAAf8AAAAB/wD/AP8A/wABAgAA/wAA/wAAAAAAAQAB/wD/AQH//v8BAAEAAAD/AP8A//8BAQH//wD/AP//AP8AAAEAAf///wABAAL/AAABAQD//v8AAQAAAP8AAAH/////AAEAAAAB/wD/AP8AAAD/AP8A/wAAAAD/AAAA//8AAP/+AQICAP4A/wH//gH/Af7+/v/+/v/+/v3/Av4AAP////8BAAD//wABAgD///8AAP8A/wAA/wECAAD/AP8A/wL+AP0A/wABAP//AAAAAAD//wAA//7//wAA/wD/AAAA/gAAAf8BAQD//v8BAQH///8BAAEAAAL/Af4CAQD+//7/AQAAAf8A/gAAAAABAQMDAgABAAH+Af3+/f8BAP8A/gD9/vv+//4AAAH///4AAQD+//8B/gED/gMCAAH7+vn2AQEAAQADAgICAwMA/wD8+/wCAgIAAQAA///+/v7//v7/AQIAAP8B/wD9/f3///3/AP/+/v/7/Pz+//7/AQD7/PwCAgL/AAH9/v7///8CAAP+/v0AAf/+//39/wMA//8AAAAAAAD+/v78/PsB/f79//7+/Pz8+fcA/fj++vUDAv8EBAYA/f4A/gAA/fwA+Pr8+fwDBAT+/v8E/vz/AgP79vEDAgICBQUDCAcB/wADAQIEAAAA/Pz+/PwFBgf+///+/fwDAwMAAPz//f4C/wD+/f4A/v0BAgADBAT9/f4AAAECAgMAAgH9AwP+/v/9/f7/AAEAAAD+//8CAQADAgIDBgUFAwUA///+/v4CAf///gD+/f////8A/v7/////AgD//v79+/v5+fn8+vr9/foAAP0AAf8AAf8AAAICAgMAAAMAAAEB/wAFBAQBBAMAAwMABgQCCAcDCQkGCAkICAr2CfL27fD+/wEFAPsI/f4H/gAH/v8EAAEEBAQDAwQDAwIDAgMDAAIBAQEA/wAAAf8AAP//AQH/AAAAAP8B/v//AAAA/wABAAAAAAAAAQAB/wD/AAABAAAA/wAA////AAAAAAEA//8AAAAAAAH///8AAQH///8BAgAA/wEAAP//AAABAAH/Af8A/wEAAAAAAP//AAAA/wEAAAD/AAAAAAAAAAAA////AP8B/wAAAAAAAAEA/v//AQAAAP8AAAEA////AAEBAP//AAAA/wD/AAAAAP///wAAAAD/AAEBAAAA/wD/AAABAP79/gABAgID/wH//v7+AQH+/v79/v4B/v///wAAAAD//wAAAQAB//4A//8A/wAAAP8AAAAB/gD/AP8CAAH+AP8CAQH//wD/AP/+//8AAP/+/gAAAAD//wAAAP//AAH///7///8AAAIA//7/AQAAAAEA/wEAAf8A//4BAAEBAf//AAABAgIC////AQH/AAD/AAD/AP8B/wICAv4D/wH//wEBAQAD/gAAAAAB/f38/wD/AQIB/////P39//r6/v8AAQEC/v3/BQYGBQQFAQAB+fr5/v3+/f39/v/8BAQFBAQFAgMEAgEC/P39/f38/v7+AAEABAUFBQYF/fv8AgEDAgICAgMDAPsA+fr5/f3/////AgICAQAB/f39//8AAAABBgYEAgMDA/4F+Pn1/v7+/fz8/v35/Pf0BQH8//v7APv7/vz+AAEB/wEC/vv+/fj4/f38Af8AAQIA/wD/AP38/wQD/AME//sGAgMC/vr9+//7BAUGAgD///4EAgME/wD/AwID/f/+AQEAAPz7APz8Af39AQIB/v8AAAAAAP8AAgMC/wEDAAMC/wECAQQEAgcEAQQDAAEAAgEBAwQDBAIDAQEAAAAAAQAA//8A/////wD//f3+/f39/gD+Av4CAAEA/f7/AP/+AAD+AQIAAgQEAP0BAP//AAD/AAEBAgIAAAECAAACAf8AAwQEAwYGBPwHBvv8BQoKBQgJBAUGCAUFBv0A+/z+BAD4B/r9Bfv8BQH/BAABBAUFBAQEAwIDAgEBAAAAAAAA///+AP8CAAEAAP//AAEAAf7/AAAAAgAA/wH///8BAAH/AP8BAP8AAQD//wD/AP4A/wAAAAD//gAAAP8AAAH/AP8AAAAAAAAAAAH/AAAA/wEAAf8BAAD//wEAAP8BAAH/Af///wAAAP//AAAAAP8AAAD///8AAAEA//8AAAD/AAABAP4AAAD/AAH//wABAf8A////AQAA/v//AQH/AQAB/wAAAQD//v8AAAAB/wD/AAAA/wD/AQABAQAAAP8BAAD////+//8B//8AAP///v4A/wAAAAAA//////8AAAD/AQEBAAAAAAAAAP//AQEAAP///wAAAP//AAAAAQEBAQEA/gD/AP8BAQH//v8BAQAA/wD/AAEAAP8BAAAAAQABAgAA/v//AQABAAAAAAAA/wD/AAH/AQACAgL/AQABAgMC//7+/////v7+/gMDA/z8/Pz/AAAAAAEDAQAAAAH+Av3//QEAAQEBAQUBBwECAgICAgICAgAAAQECAgMEBAEBAfv7+/3+/fj/9wMDAwIDAwEBAAUFBAECBgICAgEBAQMCAgIDBAABAAH///4DAgD//wMEAv//AAIBA/7+//3+/f79AP7//wQEBP38/AH/AP/+/gABAP4BAQEBAgABAP39/gEBAgECAgQEBPz5+P78/Pn19vbx7gcC/QgDAAQCBP38AAMGCgMJCQYJA/8DCf769gL7+v759vz69wD7+f4DAP4CAQL8CwMHCQUDAv8BBAEA/wIBAQMBAf//AQEBBAMFCQL//v/7+v8B/gH//AD+/wD+/v39/gEDBAEDAP4AAP4A//4BAQADAwYJCgYFBwQDAwUEBQICAgD/AP38/v4A/f8AAP7+/v///wH///39/fz8+/7+/gECAgEBAf8A/wEAAAICAgQFBf78Bv4CAQD9/gD+/v8A/gD/AAABAAECAgAAAgEBAQEAAgcAAAT+BwX9/QX8CAcHCAQFBAYEBAUAAvsCAgHv9QL19gT4+QX8/gP//gQEBQQDAwMCAgEAAAAA//8AAAEAAQAB/wAAAQD//////wD/AAAA/gEAAf//AAEA/////wD//wAAAAD///////8A////AAAAAf////8BAAD/AAEBAAEBAAEA/wAAAf8AAAEAAAAB/wAAAAD//wAAAAD/AAAAAAD//wD/AAAA/wAAAAD/AAAA////AAABAP8AAAD//wAAAAABAf//AQH/AAAA//8BAP//AAAAAP///wEAAAD/AP8A/wABAP7//wEAAQAA/gABAv8AAP//AAEBAAEAAAD/AAD//v//Av////8A/////////////////v8BAgD/AAABAAEAAAABAAD//wD//wAAAAAAAP8AAAABAP///wAAAP8BAAD/AgEA/v4CAAH+AAAAAQAB/wD/AP8AAQAAAAECAQD//v///wAAAAABAAH+Af8CAAD+/wD//////v7+//7+/v/9/f3+/f3+/v7/AAACAwMCAwMFAQYA/wD+/wD+//////4AAAH+//////7//wD///8CAQEBAAICAgMDAwMBAgICAgIGBQUCAgIAAAAAAAAAAAD+AP///v/8/Pz++fkAAAD9/v39/v3////7+/v9/P4DAwMAAAACAgIA//3/AP8A/wAAAQIBAgEBAAD/AAAAAAABAgAA///+/v4CAgIBAQL//v8BAQD49/Tu7Of78/D7AwD8Af77BggEAwsMDQoEBwsBAgUBBgn/+wb/+fcDAgICBAIE/QT+/Pv9/vr69PIB/gAECgkABwcAAwH8/f7/AQEFCgsGAwcBAwMA/f79/P38/wAA/wEAAAD9/Pz+AgADAf8AAgMBAf//AgH/BQUBBgkFBwgGBgcBAwQAAgL/AP7+/f3//P7/AP////8AAAD///3+/v/+/f7///8CAwIDAgP/AQEB/wABAQECAQIBAAIA/wL8/P3//fsCAAABAf8BAQABAgQAAgEA/wD+AQACAAAAAgIDAwEBBAQCBQQBBAMBAwIDAQQHBAb7BAf+B/L/8fMB8/QD+PkD/PsEBQQEAwIDAgICAQEBAAAA/wAAAAD/AAAA////AP////8AAP8A/wH/AAAAAAD/AAAB/wH+//4AAAD+//8A/////wAAAP//AP8AAAAA/wAAAAH/Af8B/wD/AQAAAAAB/wEAAAD/AAAA/wAAAAD/AP8A/wAAAP///wD/////AP//AQAAAAAAAAD/AAAA//8AAAH//wABAAAAAP8AAAAAAAD+/wABAP///wEAAP8BAAD+//4BAAD/AAH///8AAAD/AQD/AAAB//8AAAAAAQEBAAAAAAAAAAAAAAAAAQEAAQAAAQAAAP/+/v/9///9/wAB/wABAf8C/wAA//8A/wAA//8A/wD/AQAA////AAD/AAAAAAAA/wAAAAAAAP/+AP8AAAAAAQEAAAAA/wD/AAAAAQD/AAEA////AQEAAAEAAP8A/wEAAgAB/wAAAQH/AAAA/wEBAf8BAgEAAQID/wIC/v39/v/+/v///v3+/f79/v//AP7+AQEC/wABAgEAAgIB//8DAAEAAQAAAQICAgEB//8A/wAAAQABAAAA/gAAAgEBAgEBAAEBAAD/AP3//gH+AQICAAEB/f38+/v6+/v7/wAA//8AAQIBAQEAAQECAgIB//4AAAEC/wL/AgEC//7+AQEBAwMDAAAA/wD/AQEC/////v7+/v7//gICAQID9/v68/Lx8efnAfv4BP38CggLJy82AQUIBAcH/wED/vz//wEF//78AP4IAgUDAv4I/fz4Av38A/r7/vz//vj9AgH+/wgGBQoOBAcI/QEDAQEC////AQD9/v38Af8A/wEA//4B////Af7+/fz+AAED/gUF+gH//QEBAwgJBgkJBQUFAgMCAQD//v0A/wD8//4A/v//AAABAgIC/wD//f78//8A////Av4DAAIBBAMD//////7+AgQDBAQF/wcHAAD8/fv//f38///+AP8AAQD8AP8CAQIBAAAD/gECAgABAAEAAQABAgMEBQAC/wACCgADBgIF+/4D/AIFAAgH/wgI/vLzAvb1BAMDBAICAQAAAf///wEAAQAA//////8BAAEB//7//gEAAP8A/////wAAAAAB/wD/AAAAAAAA/wD/AAAAAP///wAA//8AAAD/AAEAAAAAAAAAAf8B/wL/AQEBAQAA/wD/AAABAf///wAAAQD/AP8AAAD//wAAAAH/AAAA//4A//8AAAAA/wEAAf//AAD//wAAAAAA//8AAP8AAAEA/wAA/wAAAP7/AAAA/wEAAP/+AP8B/wD//////wEBAAEAAP//AAABAAEAAQAAAAD/AAABAQEBAQEAAQABAgAAAQABAQAA//8A///+/v7//QL/AgD+Av8CAAEA/wAB/wD//gAB/wD///7//gH//wAA//8AAQAA/v8AAAD/AP8AAQAB/wD/AAD/AAAA/wAAAQAB/wAAAP/+/////wEAAP8A//8BAQD//v///gAAAQIBAv8CAQH//v8BAv7+/f8A//39/QAAAQD/AgH/AAMCAwQCAAAAAP3//v/+/P39/Pz9/Pz9/f39/f//AAABAAIBAgMEBgUFBgQEBAIEBAICA/////8DAwMEAwEAAv8A/v/+//z9/fv7+wAAAAICAgMEBf8AAPj4+P39/gMCAwMHAwAAAP7+//v7+v//AAEAAP7/AAAA/wUEBQAA//3+/v7//////gIBAgUFBgAAAQQDBf0BAw0PEP0YGv73+ezg4fPr6BcYG///AAMEAv3++gECAAEB/f7++/4A/QEEAgH/BAD9/wL/BgECAwABBQD/Af0AAPz8+wUBCwICBP/+AQH++/z8+P/8+wH+/f77+wD8/gL+Af4AAQIAAf3///7+/v7+APz+Avf/AQMCBQUEBwQDBgACAgAAAv7+/wD/AP8AAP//Af/+/wAB//3+/v//AP7+AAAAAAEBAgEBAQEBAP/+//z+/fv8+/r5+ff49/z6+f7+/wIDBwYDBv7+/P8A//8A/gD//v8A/wD//P//AP8B/wAAAQAB/wD/AgECAQUEAwMICPv+Af73+Pv29QH6BQUNCf8BAP0A/QQDAgIBAQIA/wAA/wD/AP8AAAEAAAD/AP7///4A//7+AAAA//4AAQIA/wAAAP8AAAD/AP////////8AAAABAP//AAABAAD/AP8AAAD/AAEB/wAAAAH/AQH/AP8BAAAAAAD//wABAQAAAAAA/wABAP/+/wAAAP8A//8AAAABAAD///8AAAD/AP8AAAAAAQAA////AAABAAEAAP//AAAAAAAAAP8AAAAA/wD+AP8AAP///wAAAP////8AAAD/AP8AAAIBAAAAAAACAQEBAQACAQABAQEBAAECAAAAAAACAAD/AQAAAAEAAP8A//////7+Af0C/wAAAQEBAAAAAQH///4AAP8AAP//AP4AAAD//v4AAAAAAAAAAf8A//8AAAAAAAAAAQH//v//AP8A/wAA/wEAAf8A/wD/AAAAAQMAAP4BAQIAAQEB/v//AP8BAQH/AAL+Af8CAAL+//4CAQH8//////3////9/v3++v39/f3+//7+//7+/v////8AAAD/AAEBAQH//wD+/wEB/f78Af3///8C//4FAwT9AgEDAgH//wMBAf8BAAL/Af8CAv8DAwMBAgEA/wD9/f///gD+/f/+/v8CAQD//gAAAf/8/fz6+vsA/wABAgD//v8BAgIAAAD+/gP9/v////0AAQEBAwH+//4B/wAAAAD/AAECBAgPFRsD/wIC/gH++fvz8fTq5eQBBgMJDQoAAgADAAEA/Pv//fsCAQAB//7+/v4A/wAA/v8AAQEBAgMCAgD//v379vT/+PgDBgcAAgH++/sA/f7//wAA/f4BAAH//f/+/f79/v/8///9Av/9AAD4/f/9BgUJCAsICQwEBQYCAwUAAAD+/f7/AAEAAAEAAAAAAAH///7//gAAAP8DAgMAAf8CAAMCAwICAQH8/fz+/f3+/fz9/v4AAQD/AP7//v79AP3+AAACAQIAAAAA/wD/AQEAAP//AAEBAf8AAQAAAAH/Af8AAP4AAAEAAQIAAgAABAL/BwP9BgD9Afv/Av0FCAUFAA0EAgICAQABAAD//wAAAAAAAP8AAQEAAP7/AAH+/wD+AAAAAAAB////AQAAAP//AP8AAAD/AAAAAAD/AAAA/wAAAP///wAAAP8A/wAAAAH//wAAAQAB/wD+AAAB/wAAAAAAAAD/AP8AAQD/AAAA//8AAQEA//8A/wD//wD/AP//AAD//wABAAD/AQAA/wABAQEBAP///wD/AAAAAAAA/wD/AQABAAD///8AAAEAAAD+//////8AAQH///4AAAEAAQH/AP8AAAABAQECAgECAQEBAQAAAQIBAQABAgIBAAEBAQABAQAAAQAB/////wD/AP8AAAH/AAAA/wAA/wD/AAEAAP/+AQD+/gD/////AgACAAEAAP8A//8A//8AAAD///8AAAAAAQEAAAABAAAA/wAAAP8BAQIC////AAD/AAEA//3///7+//7/AP8BAAD//v79/f7+//7+/////v/+AQD//wD////+AwICAwMCBP8FAQIEAAAAAQECAAEBAAAA////AQEAAAD+//8AAgEC/wAAAAIBAQAABQYGCAcIAwQD/wAA/////Pz9/f38/f39+/z7/fz8AAACAwMDAAABBAUGA/7+/////f38AwMDAgECAwMC+vr6/Pv9AP//AgICBQQGBAgEBQUD+/v++/v8//79BwcHAAEAAwMCCAkI/v79/fz6CBERFB8e//r76eDiy8bHEtzbMTYyDRIP/QAAAgD////+/wID//3+/fv6AP7+Av8AAgICAQIDAAEAAgIB/Pz8AgH+/fz6//4AAP7+AgEDAP7/////AAACAP7//v39/f79/wQA/QUE+gID/gUHCQwRCQoPCAcJAgMDAQAB/v/+/f//AgEBAAAA/////wAA////AAEBAQECAgMDAQAAAP8A//7/+//8/v39/v79/v39+/v7+/v7/v7+AAAAAQICAgAA/wAA/wAA/wABAAEBAAABAgAB/wABAQEDAAEBAQAAAAEB/v8AAAEAAAMCAAQCAQgFAQgH/wYD/foBBAYDBAQKBAIBAQEBAP8A/wEAAQD/AAAB////AP8AAAD+AP8AAQAAAAEAAAAAAAD/AP8BAAAA/wAAAAAA//8AAAD//wAA////AP8A/wAAAAAAAQEAAAAAAP8A/wAAAAEBAQAA//8AAAEBAAD+AP8AAAD/AP8A/wD/AP///wAA/wD/AAAAAP//AAAB/wH/AP8BAAAA////AAAAAAAAAAD/AAAA/wAAAP///wABAAAA///+/////wAA/wAAAP//AAAA/wD/AQEBAAEBAQIBAQEBAAABAQAAAQEBAgIAAgICAgIAAgECAAEAAAAAAAAAAAEBAAH/AP8B/wAAAAAAAAAAAAH/AQD/AP8AAP8A/wAA/wEAAP7//wH/AQEBAP8A/gABAP/+AAD/AP8A/wEAAQAA/wAA/wAA/wABAP//AP8A/////v//AAEAAAEAAv8A/v8A///+////AAEAAgABAAEBAAEBAgQEBQAAAP8A////AP////////39/fz9+vv7/P39/P78/f79/P7+/v8A/wAAAAEBA/8BAQICAgICBAkKCwQDBAYHBwYGBvv8/AQE/f79Bfz9/AD4AAQEBAMCAwICA/39/QL5+vf4+Pz7/AAB/wQFBAMDBAICAwIEBAYCAv//AAEBAAAA//r7+v/+//z9+/7//gEBBfn5+P79/wEA//79/wABAQMDBP0FBgcQDw4dGv8C/wboBe3q7LqythQXFyMlIxMUEgcGA/wB/v/9/gH/AAIBAQACAwAAAf4A//8AAwEDAwP/Af79/P79/QD+/wD9//39+QIAAAEAAQACAgD/Av79/P8EAPj//Pr9AP4ECAYKDwYLEAUJDQMGBgABAv/+//7/AAMBAvz+/gD/AP//AAABAQICAQICAgIDAwIBAf////7+/f3+/f39/P///v//AP8A/wEAAAAAAAABAQIDBAICAgABAAEBAP/+/f7//gEAAf4AAAEAAQEAAgEBAv8BAAAAAQD+AAAB/wACAAEBAAQHBgb8Cv4ODQH5+/78Af78/QEAAQQBAQH/AAACAAH///8AAf8A/wAAAAAAAP8AAAEA/wEAAAD/AP8AAf8AAQAA/wAAAAD//wAAAAAA/wAAAAD//wAAAP8B/wD/AAAAAQD/AP8BAAH/AAAA/wEBAf//AAAAAP8A/gH///8AAAEBAAD//wAA/wAAAf8A/wH/AP4A/////wABAQD/AAAA/wAAAP8AAAD//wEAAP8AAAAA////AQAAAAAA/wH/AP8A//8AAP8AAAD//v4AAQIAAAEBAQEBAQH/AAH/AQH/AAECAAEBAQEBAAABAQAAAQEBAgAAAAEBAgEBAQAAAQAAAAD/AAACAAEAAAAAAAEAAAD/Af8AAAEA/wAAAAABAAH///8AAP7+AP8B/wH/AP8A//8A////AAD/////AP8A/wD//wD///8BAAAA//8AAAAAAAEAAP//AAAAAP4AAAABAAEAAQACAwL//wABAQMA/v/////+///9/Pz8/fz+/vz+///9/f79/Pv+//z//////v8AAP4BAQECAwH//gEAAAABAQEBAgIBAQEDAgIDAgEBAP8A//78/fz///4AAAAAAQD9/v7+/v77+/sCAwIDAwQCAQECBAMHBwUCAwICAQD/AAAEBAMECQkJ/v76+vn5+Pj7+vv/AAAGAgIBAQABAQAB/wH//v/7+vsDAgICAgMDBgMAAQECAQEAAf////4IFBMAAv//AwAABwT48fTp5erd2N4SEA8hIx0fIRoKCgkDAQICBQYBAAH/AAEA/gH+AgH//gAA/v/++/z8+vkCAAMB/gD+/PsAAAAB/wH/AQEAAgP7//3+AwD4/vv5/gMGBgkDBwsEBwoCBQYBAgP//wH/AP8B/wD8/f3+/wABAgIBAgACAQIBAgECAgIDAgL+/v39/f39/f3+/v0BAAEAAQH//v79/Pz9/v0BAQECAQICAgICAQIAAQEAAQAAAgUDAP////8D/wD//wEAAAABAAEAAQEAAAD+AgACAAD/AAABAAD9AgIFCf8A/wAD/gP6AQMA9PUA//4EAQEBAAD//wD/AQABAP8A/wABAAH+//8AAAABAQAAAAAAAAD/AP8B/wH/AAAA//8A/wD///7////+AAAAAAD//wABAAH/AP8AAP//AQEB/wD/Af8AAQAA//8AAAAAAQAB/wD/AQAA/wD/AP8AAAABAAD+AP8B/wD+AAAAAAAAAQEA//4AAAD/AAABAAAA//8A/wD+AgH///8BAAABAP7//wEAAP/+AAD+AAAA///+AAAAAAAAAAD/AQEBAQAA//8AAgEBAQABAQABAAEAAQEAAAIAAAH/AQL/AQECAgIAAQEAAQEBAgEBAAEAAQEBAAEBAQEBAAABAAAAAP////8AAP8BAQAC/////////wD/AAD+/wABAAAA////AAAAAAAAAQAA/v8A////AQAAAQAA/wD/AP8AAf8A//8AAf4A//7/AAEAAQEA/wAAAQEBAP8AAQEB//7+/v/9/P3+///+////AAH/AQIBAv8BAP8AAAQCAf4E/v7+/wD//v8B/wH+AP8DAwQCAQABAQICAgIC/wD+///++vr5//QA/P3+CQkJAgQEAP///wAAAgEBBQUFAgMCAAAABQQFAQEB+Pj5/f7/AAAAAAAABQUEAgIDAP7//v7+/f39AAAABQcHAwEBAQICAP//BAUE///+//4AAAEBBAMEAgIC/wABBwQDAAD9+voFAgYIBgv+AwQCAAUCAwoG9e7xDxIV9O7y9O3u19HX4t7fKColHiAeAgH9////AAACAwMHAP7///38/fn3/vz7APz9/v/9AQAA/v39/v7+AgICAQEC/wIA/wP/+P7++wQDAwcMBgoNBggMAwUI/wEB//8BAAEA//8AAAEAAQICAf//AQEAAwIDAgMCAgEB/wAA/v3+/v7//v3///3+AAAA/wH//////wAAAP8BAwEB/wID/gEAAgECAAECAAABAgEA/wEBAAD/AP8AAP8AAAAA/wAB/wD/AP8AAAEAAv//AAABAAAAAP8BAQEDAQYCAQACAQABAQIB/QQEAPf4BAABAQEBAQAAAAAAAP8AAQEA/wD+AQEBAP8AAP///wAAAP8AAAIB/wD//////v//////////////AAAAAP//AAEA/wAAAAAAAAAAAP/+/wABAQABAP8AAAD/AAAAAAAA/wD///7//wEBAf8AAQAA/v8AAAAA////AAAAAP8BAAH+AAAA/wAAAP///v8AAAEAAAEA//3+AAEBAAD//gD/AP//AAEA//8AAQEA/gAAAP8AAAAA/wD/AAAAAQABAAEAAQEAAAEBAQEBAAEBAQEAAQABAAABAQIAAQACAQEAAQEBAQEBAQAAAQEAAQEBAQEBAQAAAQEBAAAA/wD/Af//AQAAAf8AAf8A/wABAP//AAD/AP8A/gAAAQH/AQABAP///gD/AAD//wEA/v8AAAAAAAD/AQD/////AQH///8A/wAAAAH/Af////8AAQAA/////////v/+/gD/AAMCAf7+Av8D/gH/A/7/Af7/AAIBAf/8/wEA/QAAAP8B/wD+AAIBAv8A/v/+//z+/AD8//8AAP7//gICAgL+/P7+/v4AAP8A/wUFBf8AAP/+/v3+/v///wD///8AAPv7/AMEAwMDAwgICAAA/wICAgICAv////z8/AD//wMDAwIBAgAAAAECAQAAAQMBAv7//Pz8//8B/wMCAgACAv8BAv7////8/QABAQQHBwMEBAUHCPr3CAMFCQQJCwcN7fnx9QQKCgsQDvfv8fTw7tLO1vj0+CQmIwUIBQIDA/79/gMABP78+/r19QH9/f38/AAAAf//AAAAAAEAAP0AAAMDBP8E//sAAPoEA/4GCwUJDQMHCwQHCQQFBgMCBP////7/AAAAAQAAAAAAAAIAAAABAQAAAP////4AAP///v39/v///wD/AP8BAAAAAQEBAQEBAf/+/AEAAP////39/QAB//4AAAIBAQICAwABAAEBAAAAAQAAAAD/AAD/AAABAQH/AAEB//7/AAEA/wAAAAD+Af8BAAIAAwACAwAAAgD/AQH/Af4DBAD09QQBAAD/AAAAAQAAAP8BAP//AAEAAQAAAAAA/wAA/wD/AAABAQD///8AAP7//////wAA////AP8AAAAA/wABAAD/AAAA//8BAQAAAAAAAQEAAP///wAAAP8CAQL///8AAAEAAAAAAAD///8AAP8AAP8AAAAA////AP8A/wABAAD+AP8A//8BAQH//wAAAP///wAAAf8AAAD//v8AAAAAAAABAAAAAP8AAAH/AAEAAP8BAP//AQAA/wEAAP8AAAIA/wAAAQEAAAAAAAEBAAEAAQECAAICAQEBAgICAQIBAgEBAQIBAQEBAgECAQIAAQEAAP//AP8BAAEA/wH/AP8BAQAA/wEA/wD/AAEAAAEBAAD/AAEA/wAAAAD+AP8A/gAAAP8A////AAD//////wAAAAAA////AAAA////AP///wAAAAD/AAAAAQAA/v7//////////v4AAP//AAH/AAABAQD//wABAAEBAAIB/////wEBAQL9AP0AAQEAAAACAgL9/fz+/v3+/f7+/v3+/v3+/wD/AAAD/gP+/gABAAME/v7//v8BAQEDAgL/AgMD//7+/////wACAgECAQIAAAD7//v+/v/8/Pz9/PwCAwQAAP/9/P0BAQH///8BAgECAgL9/v7//f78/vv/AP8BAQIEBAUAAQAAAQH9/f39/f0CAgEAAQECAwICBAT/+wMHAwUCBgcAAgIFBgj3CO8IDPf9+PwGDgsFCQn05+zY1d/39fgpLSUFCAUCAQL6/AD7+vr++voB/v/9/PwA/wH///4AAAEC/wP/AQD7Avv/BAL5BwT8Cg4BCAwCCQwFBgsDBAcBAQMBAQL/AAABAQEA/wD+AP8AAAABAQEAAAD///7+/gAAAAH+/f3+/////v7///4AAAABAgEDAwUB//8AAQIAAQAA/wAAAAAAAAEAAQAAAQL+AQEBAQEAAAEBAQEAAAH/Af8B/wEAAAAAAQD/AP8AAf8A/wAA/wD/AgD//wD/AAAAAAACAwUEBgD//wABAQMABAcEAAD/AP//AP4AAAEB/wABAAAAAAAAAAAAAP//AAAAAAD+////AAAAAAAAAP8AAP8A/wAAAP8A//8AAP//AAAAAAD/AAAB/wD/AAABAf///wEAAQAAAAAB//7/AQIAAP///wAAAAEA////AAAAAP//AAAAAQAAAP8BAAAA/wD/AAAAAAAB/v/+AP///wAAAAAA////AP8AAAAAAAAAAQAA/wD/AAEAAP//AAD//wD/AAAAAAAAAAD//wACAQAAAQIAAAIAAAAAAQIBAAEAAgEBAQIBAQECAQECAQEBAQECAgEBAQEBAgABAQEBAQAAAAAA///////+/wAAAQAB/wABAAEBAAACAP/+AAABAAEBAQAAAAAA/v7/AAAA///+AAAAAAAA////AAAAAAD/AP8AAAD/AAAA/gD9AP8A//8AAAAAAP///v/////+AP8AAP/+AAEAAAAB//7+////AAEAAAAA/wAAAP//AAAAAQEAAwMB//8C/f3/AQEA/v//AAACAAEAAQH/AAECAgMBAwIDBwUHAwQFBgUFAgQFAgQFBAUFAQED+/v6+vv6/f39AAAAAwECAgMD/f79/fz+/P38+fr4/Pv8/v78BgUHBQUGAgIC/Pv9/wH+//8A/v39/v///v7/AgEBBQcHAgID////AQAB/v///f/9AwMBBwcH+vn/AAEC/v7+A/4A//8BAwMGBQgNAwIC//3+BAQI/gr8AgYECAgHBwQGBAME7Obs3QMBHB8YBggHAP8C/Pz9/f37/fz+/vz9//3+AP//AP8BAQACAQEBAAIA/QMD+wUCAAUHBQoOCAoNBAcI/wAC/f//Af7+AQICAQAA//8A/wD/AAABAAEA///+//8AAAD//////wAAAP7//f7+AP//AgICAgEDAQABAAAAAQABAAAB//7//v//AP8AAgEB/gEAAf8BAAACAQEC/wAAAQEBAP//AAEA//8BAAD/AAEAAAAB/wD//wAAAP//AAEA/wAAAAACAAMAAQAEA/8HAQECAAUGBAAAAP8A/wD/AAAAAQEB/wD/AP8AAAAA/wEA////AQAA/wAA/wAA/wAAAP//AAD///////8A/wAAAP8AAAEBAP//AAAA/wD/AAEAAP8AAAEAAAABAAEAAP8B/wD/Af8AAAEAAAAAAAABAQD///8AAAEA//8AAAEAAP8AAAD/AQD/AAAA/wD/Af8AAP8A/wD//wAA/////wAAAAD//wABAf8A/wH/AP8AAAD/AAAAAAEBAf8A/wIBAP8A/wEBAAABAQEAAAABAAAA/wEBAAACAQIAAQEBAQEBAAECAQEBAQABAQEBAQEBAQEAAQEAAQEAAAAAAP//AP//AP8A/gAA/////////wAAAAABAAD/AQAAAAEBAAEAAP8A/wABAgD//v8AAAEAAf8AAAEAAP8B/v//AAAB/wEB//8AAgEB///+AP///////////wAAAAAA//8AAAAAAP8BAAAAAP7+/////v///wEAAAEBAAEAAf//AQEBAgICAP7//gECAAUDBAIBAwEBAQEBAf7///39/QEB/wMDA/0A//39/P78+wD4AAEBAgICAAABAgMDAwICAwMDAgEAAf8A//j8+Pj39/n5+QABAAUEBfz8/ff48wEA/gYFBvz8/Pv7/P7//gYGBwICAf8DA/z7+/4C/gECAf/+AAICAQD/AP0B//f39/v7+/7//wIBAPv9/gD/AQIDBQQF//z//gcL/wUF+f36+QIEBPwGBwYGCgcJCfLkA+/m7AD29RIZEwgNDwMGA/v7+vv7/f38/QD9/gH////9AQD+AgIFAwEFA/4FBP4FCQYMDggJDAUGBwECAgACAf////39/gQCAv7//wD/AP8BAAAA////AP8AAP////79/f7//gEAAAD/AgMDAwIDAgIBAgECAgEBAf7+/f8B///+AP8BAf//AAABAP7/AAL+/wAB/wABAQAAAQH/AP//AQAAAP4AAQAAAP8BAQEAAP4A/wAB/wABAP//AAAAAAD//gAAAAACAgD//wEDBAEAAgADBQT//wAC//8AAQAAAP8A/wH///8AAAD/AP4AAAAAAP////4AAP8AAAAAAP////4A/wD/AAAAAAH///8BAAD+/v8BAQAAAAAAAAAAAQAA/wD+AAAB////AQAAAAEBAAAAAAD//wAAAAD/AAAAAAD/AAAAAAAB/wD/AAAA/wAA//8AAQD///8AAAAAAP8B///+AP8A/wD///8AAAABAAD/AP8AAP7/AAEA/wAAAQAAAAH/Af8AAAH/AAECAAEAAQIBAAEAAAABAAABAAEAAAABAAEBAgICAQEBAQEAAAEAAQEBAQEAAQAAAQAAAQAAAAAAAQAB/wABAgH+/v///wD+/wAA//////8A/wAAAQABAAL/Af7//gAAAQD//wAB////AAEAAP//AAD///////4AAAABAQD///8AAAEA//8AAAAAAf///wAAAAAA//8AAAAAAAD+//8A/////wAA////AP4A/wAAAAD/AAAAAAAAAP8AAAEDAwQDAwACBAMEAwQA///6/Pz9/PwAAAEEAgADAwP///79/f79/v3/AP0AAf8CAQEHBwcFAwYBAwP9/f77+vv4/v39/fz+//7+/f7+//4BAQD/AAH9/gD9/fsCAgIAAQD8/v38/v0AAAAHBgcCAwL7+/oC/v8DAwD8//wBAQEAAAH6+/kA/wACAwICAQL/AP8FBAX/AAACAwP8//z9/PwCAQH/AAMCBQkDAQMBAwMBBQUFCQoECgwHDQ0FBwb04gP17esBAu0RAgIE/gf7+/38+vz9+/z+/AD//v/+/gEAAQIB//7/Af8AAwoGCwwCCQsECAgBAwL+//0C//4AAAD///78+/wBAQH+AP8AAAEBAQAAAAH/AAD+/v79/v7//v4CAgEDAwMCBAMEBAMBAQIAAAAA/wABAAAB/gAAAQAAAAEAAAH///8B//7+/gECAgIA//////4BAQIAAP8AAQEAAQEA/wAAAAD/AAD/AAEAAQAAAAAAAAAAAP8AAQIA//8A/v4CAgAAAgD+/wD/AQEEAAAA/v8AAgD//wD/AAD/AAAA/wD/AP/+/wD//wAAAQAA////AAD/AP///wD//wAAAf///v8AAAD//wAAAAAA/wAAAQAAAAAA/wAAAAD/AQABAAAAAP8AAQD//gAAAAD/AAABAAD/////AP//AAAA/wAAAP8AAAD//wAAAAEAAP4AAAEA/wD//wD/AQEAAf4A/wD/AP8AAAH+AAAB////AP8AAAH/AAAAAf8B/wH/AP8BAQD/AAIB/wEBAQD/AAEAAQEBAQECAQEBAQECAQEBAQAAAQEBAAABAQD/AQEBAAAAAAEBAAABAAEAAAH/AQABAAEAAAAAAQEBAAD/AgAA/gABAQAB/wD/AP8BAAAAAAACAAD+AAEAAQAA/wAA//7/AQAB/wH+AP7/AAAAAQABAAD/AAABAAD/AAAAAAD/AP8AAAD/AAH/AQEB/////v8AAQD//wD/AAD/////AAAAAAEA/v7/AQABAQEBBAUGBAUFAAAA/P38/v7++fn4/f3+AgIBAgEB/v79+vr8////////AgIB////+/38AAD//f38+PX2BQcHBAYGAwIE/f7+AQD/BQUF/v/+/QH8//8GAQAA9/j4+fn6BQUFCAgIAP/9/wAABQUF//7/+fn49PX3BAMDBgcB/fz/+/z7/v7/////////BQYH/v7//f77BAUEAQIBAgIB/Pn4+/z7AQAA/f//AAICAP8C/wIDAAIEBAgG//8ABQoNARD+AwoKBQ0K8+MK9/Hu//P1A/j6/vz//v7+/v7+/v0AAAECAgMFAQUE/QIBAAUFCQ8QBhITBAgL/gAC/P3/AwH/Af3+AgD+/wIBAQD+AQEA/wEBAQD//QD///8A/v////7+/wAAAQIBAQICAwQDAwMCAgIDAQIB//7//wH/AP8B/wEB/wAAAAEAAQEB/////v//AgAAAP////7+AgID////AQEBAP8B/wAAAQEBAAAA/wEAAQD/AAAB/wD/AQECAAH/Af8A/wD//wEA/wEA/wL+AP4BAP//BAABAAEB/wAAAAD//v4AAAAAAAH//v8AAAAA/wAA//8AAP///wAA////AAAA//8A////AAAAAAAAAP///wEBAAD/AP8A/wEBAQD/AAAAAf///wAAAQAB/wD/AAAAAAAAAP7//gEBAAD/AQAA/wEAAAD/AP8A/wAAAAH/AP8A//8AAP///wD//wD///8AAP4A/wD///8A/gD/AQAB/wAAAAABAAH/AP8B////AAAAAQABAAAAAAD/AAABAAEAAAH/AAECAQEBAQACAQEBAQEBAAAAAQAAAAAAAAEAAQEAAAEBAQH/AQEDAAEBAAEBAAAA/wEBAQAAAAAAAAEAAv///QEAAP4AAQAAAAAAAAD/AAEAAP8BAgH///8A/wAA/QEBAP7//wH/AAACAQH/AP8A/wD///7//wAAAAAAAP//AP8BAAAAAQH/AP8AAP8A/wAAAP8AAP//AAAAAgEEAQMBAwICAv/+/wEBAf///wAAAPz8/Pz8+/39/f///v7+/v3+/fv9///9/QIBAQMBAf7//v////v7/f39/Pv8/QMCAQMDAgIEAwQCAgH+/v7//P/+//8CAP/8//4AAP7/AAAA/wABAgYGCAgIAwkJCQIBAff49vr6+fr6+vj5+P/9/gQDA/4CAf39/QAA/vr6+Pz8/QIDBAYFBf///f39/wQEBP8AAPv7+gAAAPj5+AEBAQYGB//+/v3+AP8B/f8A//z8/AIEAwMEBQMDBQYGBgYNDAgPEAUUFO3k4fLo6Pvz9fz5+QICBAMFBQEDBAUHBwQHCAEFA/0EBAoTEQcVFQQLDP8CBf3+/v/8/gAB/wEB/v/++wAB/AICAwICAv8AAQEBAP7+/v////////7+/gIEBAUEBQICAwIEAwIDAwAAAQD//wABAAD+AP//AAABAP8A//4A//3+/v///QACAgH///0A/wIC/v7/AQEBAgAAAQAA/wAAAQAAAAAAAAL/AP8CAQAAAQEAAQAAAQABAgAA/wAA/wECAP///wEBAgAB/v8A/wT///8AAP//AP8AAP//AAABAAH/AAAA//4AAP8AAQEA//////8AAAAA////AAAAAAAAAP8A/wH+AP8BAP///wEAAQABAAH//wEBAQAAAAAAAQEB/wD//wAAAAEAAQD///8AAP8A/wABAP////8AAAEA//8AAAAAAf//AAH/AP8AAQAA/wAAAAAAAAH/AP8AAP8AAP8BAAAAAP8A/wAAAQAA/wD/Af8A/wD/Af8AAP4B/wL/AQEAAf8BAP//AAAAAQEAAAEBAQECAQEAAAH//wD/Af8AAQIBAQEAAQEBAAEBAQICAgIBAQIBAQEBAQEAAAAAAAAA/wABAQD///8AAAH///8A/wD/AAAA/wAAAAD/AAEB/wD/AQEB//3/AAEA/wEBAQEA//8A/wAAAAAA/wH//wAA/wAA/wH/AP7/AQEAAAABAQEA//8AAgAD/wMAAQECAQIBAQH///3+/wD9/f3+/v7//v79/f3+/v0A/wD////9/v7+/v3//v3+/////wAA//8BAAD+/v38/Pz9/f7//v79/v3+/f7/AP8AAwMAAAH+/fn7+fj+/wAHBwgEBQYDAgUCBAMHBAX////9/v39/fwA/wEAAAD9/v709fT7+/v8/Pz8/PwEAwUAAwAFBQUCAgICAQD+/v8EBAQCAgL//wD+//7++/4BAgMCAgIEBAMBAQH8/PsNDA4AAQD+/v4DAwT7AvkAAAb08fz/BQUABAUBBQYCBAT/AgEDBAgGEgIQDQ0DEBADDhHt4+L+8PADAgMABAUBBAMABgf9BAQCBwQGDQwHEhMFCwwBAgUAAP///////wH//QD7/fwAAf0BAAECAwIDAwQBAQEAAAD//wD///4CAQICAQEDAgEBAQADBQMCAgIAAAABAQAAAAEBAAD/Af8AAAD//wD/AAEA/wAAAP///wAB/wD//v4BAwEA/wIAAf8AAAAA/wD/AP8AAQAAAAABAAEAAAAB/wH/Af//AAECAQD/////AAAAAAAB/wECAAH9AAIAAAD///4E/////wD9AP/+AAEBAQEAAP8A/wAAAAD/AAABAf7+/v///wD/Af8AAAAAAAEA//8AAAAAAAD/Af8AAAEBAAD/Af8AAAEBAAH//wABAQD/AP8A/wEBAP///wD/AAABAAD/AQAAAP8A/gAAAAAAAP//AAAA/wD/AP8A///+AAAAAQD/AAAAAAEAAf8A/wD/AQAA/gAAAAABAAD/////AgABAAAA/wD/AAD///8BAAH/AAD+AQACAP//AAEAAQD/AAAAAAABAAAAAP8BAAIAAQEBAQIBAAAAAAEBAQIBAQIBAQEBAQECAQEBAAABAQAAAAEBAP8AAQEA/wAAAAEBAQIAAQAB//7/AP7//wAAAAAB////AAABAQAAAAECAgAA/gIAAP4A/wD/AAAAAAAAAAABAQEAAAH/AP//Af8CAAD/AAAAAQAB/wH//v3//v7+/v7+/v/9///+/f/9//79AP8A////AP/////+///+AP8A/v7+///+/v79///+//7//////v7+AP8A///+/vz9/v7+///+/wD/AQMCBAMFAAAB+/v5/Pv5BAUFBQYIAwQFAgMDAgMDAgIDAwQDAP//AP3//Pz++vj7+/z8AgEBAwICAQYGBgYGAAEBAQAAAgMC//8A/v39/f39/wD8Af4BAwQFAgEB/Pz8/f7+BAMDAQEBAQICAP/+AgMEAAAA////AAAA/fz7AAEAAQACCQwN/v8L/wD//////f///v8AAwIAAwYH/gEDChITAwIE/v//7gQFBgMDAQAA+vz7+wEDBgkIBA0LCRIQBg0OAgUH/wED/v0A/v/9AgL7/wAAAQACAgICAAEB//4A/P/8AQEAAQEBAQICAgECAQIBAQEAAwQEAwMEAwMDAgICAQAA/wD/AQAA/wAAAQABAAEBAAEBAAEAAAEAAAAAAAD+//7//wEBAP4B/wD9AAIBAAD/AAD+/wEBAQAA//8AAAAAAQEBAAD/AAAAAQAA////AP8BAAD///8AAAD/AAABAAH/AQAA//7/BAAA/v/+AAAA/gD/AQABAP8BAAD///8AAAH/Af7//wAB////AQD///8AAAD/AAEBAP//AAAAAAEBAQAAAAD/AAABAQAAAAD/AAEBAAAAAAD/AAAA/wAAAQD//v8A/wD/AAAAAAAA/wD/AAAAAP//AAABAAD/AAABAAEAAP////8BAP///wD//wD//wAAAP8AAAAA/wAAAP8A/wAA//4AAAEAAP/+AAABAAAA/v//AQEBAAAAAAEBAAAA/wABAQAAAAEB/wABAQABAAEAAQEBAQEAAQEAAQEBAAIAAQEBAQEAAQEBAQEAAgABAf8AAQEAAgEBAP//AP8AAf8A//8A//8A/wD///8AAAAAAP8A/gAA/wAAAP7+/wAAAP//AAEAAQABAQD/Af4A/wEAAwICAQD///////8B//8A/wD+/v3+/f/+/wABAP79/f8AAP///wAA//7+/////wD/AP8A/////gD/AP/+AAD/AP///////wIBAv4A/v////////7+/f/+/wAAAP////8AAP8BAAAAAgQEAwAAAf7//vz7+////wkJCwQGBf7+APz7+v7//gcJCAMEBf38+/r7+vr6+/z7+/39/gIBAwUEBAMEA/39/QECAf7+//7+/f39/v39/QMCAgEBAgIDBAMDA/7+//z7+wEBAgUFBAQFBAMEAwIBAf3/AP79/QEBAQAA//3+/gD+/gAAAv3+/f3/////AP8A//39/QIBAgH9AP8A//7+/fv7+v39/AMLChMfHwULDPXz8vv4+P749wQFBgIKCAYQEQYNDwUJCf4AAv/8/QICAQUCBgAAAv///wAB//7//gIAAv7/AAEA/gABAgEBAQEBAAMCAgIEAwIEBAQEBAEDAwAAAQD//wEBAQD/AAACAQD+/wAAAAD/AAAAAAAAAAD/AP8AAP/+/wEB/wD+/wD//v8AAwEB/wAAAP8BAAD/////AQEA//8BAAD/AP8BAAD+AAABAAD/AAABAP///////v/+/////wD+/wAA/wAAAAT//gD/AAAAAQIA//4AAAEA//8AAP8AAAH/AP////8A////////AAAAAAAAAAD//wABAAABAQEAAP8A/wAAAAAAAQAAAAEAAAD//wAAAAABAQH/AP8BAP//AAAA/wAA////AAAAAAAAAAAA/wAAAP8B/wEAAP///wAA//8AAP///wAA/wAAAAAAAQAA//8B/////wEAAP8AAAEAAAAA/wH/AAAAAAAA/wAAAAEBAAH/AAEAAQEAAAIAAAIAAAAAAAAAAQICAQABAQEBAgABAQABAQEBAgICAQIAAQEBAQEBAgIAAAEAAQEB/wEBAgIA/wH/AQAAAAEA/wAAAP8AAAABAAH/AQEBAP//AAAB/wD+AAABAQAAAAAA/wABAQEAAAEAAQAA//8B/QEBAAD//wD//v7+/v7+//7///7//v8AAP7//////v7//wD/AP8A//7//////wD/AAAAAP7/////AAD/AP/+AP4AAAD///7/Af8A/v4BAAD//wD///8CAgP+Af7//v7//wACAgMCAgUBAgH+/v39/Pz/AAAEBAQCAgH+/gD8+/wAAQEEBAMCAQH19PT9//4AAQECAgL//wAAAAH////9/vsAAP/+/v3////4+vr9/fwCAwL+/P4AAQD+AgIBAgL8/Pz9/v0BAAEFBAX9/f0GBwb+/v/39/YBAQD9/f7//wAEBAQEBQX+/v///wAFBAL8/v37/Pr9/P38/fwA//8DAwUCAgIFAgf/AAD+/f/+/gH//wADCAoQGQX+BQT46+r8+wMCBgMCCQkFCw3+AQP+/wMAAgMAAQL/AAD9//4DAAL///8BAf8BAQMAAQAAAf8AAAEBAQABAQEDBAUDAwQDBQMBAwMBAgMCAgEBAAAAAAD/AP8AAAAA/wAAAQD//gAAAAAA/////wD+/wD//gH+/gABAQAAAP4CAwEA//7+/gIBAv4BAAEBAQH///4AAAIAAP8BAQAB/wD/AAEA/v8AAQD////+////AP////7/////AP8A/wABAgAE/wAAAQAA//4A/wEB//7+AQEAAP8A/wD/Af8A/wD//wAAAAAAAAD/AP8BAAD/AAAAAAEB/wD/Af4BAAIAAgAAAP8AAAH/AAAAAQAB/////wAAAAAA/wAA//8AAQEA/wABAAAAAAD/AAAAAAEAAP8AAAD//wD/AP8A/wAAAAAAAAAAAAD///8AAAD/AAAA/wAAAAD//wD/AP7//wAAAAAA/wD/AQEBAAABAAAAAAAAAQAAAP8B//8AAQH/AP//AQEBAQAAAAACAAAAAQABAQECAgEBAgEAAQABAgEBAQACAQABAAIBAQABAQEBAAAAAAD/AP8B/gAAAAD///////8AAAEAAQEB/wABAf/+/gD+AQEAAP//AQAAAAL///8A/v/9/v3+///+//7+/v/+//4A/wD/////AP////8AAAD+AP////////8A//////8AAAAB///+AAD/Af8B/v4A/wAA/wD//v/+AAD//wAAAAAAAP4A//8A/wAAAQEBAQEB///+/v7/AAD/AgMDBAME//7//f77//7+AwIC/f7/Af8B//8A/v79AQEABQMG/v7/9vPx/v/+AwQDBQYI/AABAAAAAQECAQEBAQIC/wD/+Pr4/Pz9AAAA//7++v38/f39AwECAQcGAwAAAwMDAwQE/v39+/z6AgME+/38/v39+fj49vb1BAQFCwwNAAEB/Pz9/Pv7/v7++fj4/P39AgIB/wAA/v7+BQUGAAEC/gAA/P38AQEBBQYHBP7/+/r7AgUC/wMCBAgI/AAA+/37Av8EBAgGAwMEAAEC+vz7AP/9AQMCAQAAAv0EBQQGAwQE/QECBQUBAAABAf3+AwUDAQEEBAMEBAQEAgIDAQACAQACAQEB/wABAP//AAAA//8AAQEBAQAAAAAAAQECAQD/AAABAQABAQABAP///v7/AQL/AP8BAP4BAQH+Av/9AP8BAAABAAAC/wAAAAD/AQAB/gAAAP8AAQD//wEA//8A/wAA/v/////+/wD/AAD//wEA/gEB/gAABAD//wAAAP8AAf/+/wAAAf/+/gEBAQAAAP4A/wH//wAAAP8AAAEAAAAA/wD/AAABAAAAAAD/AAACAAEAAf8AAAEBAAAAAAAAAf7//gAAAQD/AAD//wABAAAAAAD/AQAA//8A/wD/AAEBAP/+AAEAAP8AAAAA////AQAB/wAAAAAAAAD/AQAA/f7//wAA/wH//gD/AP///gAAAP//AAAB/wAAAf///wABAQAAAQEA////AAEBAAD//wEAAQEBAQABAAAAAAAA/wEBAgEBAQEAAAAAAQEBAQECAQABAgABAAAAAAH/AP8AAAAAAAABAAEBAP///wAA/wAAAAEBAAAAAP/+AAAAAAEA//8B/gH///7//v///v8AAAD+//7+/v7+/P8AAP/+/wEBAP///wAAAQD//v////8AAAAA/wH/AP8AAP8AAP8AAP8AAAAA/////wH/Af///v8AAAAAAAD///7//wAAAP//AAEAAQABAQECAP3//wD+/wABAAABAAEAAQMDAQICBAIBAv/+//3+/P/+/v79/v8A/wIBAwACAvz9/QECAAcHB/v7+/n4+f///wEBAQH+Afr4+QABAAQFBv8B/v//AP7/AP79/v8A/wIDAv7+//7//v38/f////wA/QX/AAMDAwD/APv9/Pv7+wMDA////vv5/f7+/wMDBQYGCAMDBAcGCP3//v///wABAPb49v37/AcIBwICBfr6+gQEBQIBAv4A/wIBAvn6+QMCBAUFBAIEBAL/APz5/vz8/f79///9/vj39wABAQEAAP8A/wD+//39+/7/AAP+AwEBAwL/AP7/AAT//wMDBP//AAMDAwMEBAEBAwMEBAQGBQQEBAEBAQAAAQAAAP/+/wAC/wAAAf///wEBAQAAAAD//wABAQD+/wAA/wAAAP/+/v7//v7/AAAA/v/+//8BAf//AQD//v//AgD//QD/AwAC/wAAAP8A/wABAAD/AAAAAAAAAP8AAP8AAf8AAAEA//4AAAD/Af8AAP///v4B////AAT+/wEBAP7/////AAAA/wAAAQEA//8AAP///wD/AP8AAAD/AAAAAAAAAAAAAAAAAAEBAP8AAQEB/wABAgAA/wEAAP8AAP////8AAAD/AP8A/wAAAf8A/wABAAH/AP7/AAEAAAAA/wD+/wABAP/+AP8B/wAAAQAAAAAA/wAAAAD///8A/wD/AAAA////AP7/AAAA//8A////AAAAAAD//wEAAf8AAAEA//4AAAAAAAAAAQH//v//AwMA/wAAAAEBAAEBAQABAQAAAQEBAAAAAQEAAQEAAQIBAAEAAAAAAQEAAQAAAAAAAf//AAAB/wD+AAAAAAD/AAEBAP8AAAEBAAAAAAEAAf3///////7///3+//7//v///v//////AP8AAAAAAAAAAAD///8A///+//4AAAABAQEA//8AAAH/AgAA/v8AAQAA/wAAAQD//wAAAAD/AP8AAQEA/v8A/wD9//8AAAH/AAABAf8BAAD+AAH/AAAA/wEAAQICAwECAgMAAAD/AAAA//78+/z9/v7//v3+/v0BAgEBAAH/AAAAAAAGBwUDAwD5+Pf8+vsAAgICAAL/AAD9/fsAAgMCAgP+/fwBAQH+AAAB/wADAwMAAQIAAP/8/P3/AwMFAQL7+/oDAwQAAAD5+Pn+//4BAgL////7+vr+AP8DAwQICAcBAQIGCAn+/v7+/wEDAwX///3+/v0CAQECBwYAAQL+/f7+/f7///77//v9/f0AAAD9/v4BAQEJCQsBAfwBAQAAAgD+/wD//v/5+Pj08/T6/PsM8vICBQgHCQoA/gH///8AAgMCAwIBAQMA/wH////+//4BAAIBAwIDAwMEBAQEBAQEBAMBAQEBAQEAAQH/AP8AAAAA/wH/Af8BAAH/AP8A/wAAAQEA/wABAf8AAP//AAD/AAD+//79/v3+/v0AAAAAAQEAAAMCAf/+//4CAAAAAQIA/v//AQABAv8A/wAA//8BAQL+AP8AAAAA/wD/AAD+Av8A/wAAAP8AAAAAAAEB/wH/AAAE/v/+Af//AQD+/wAAAQEBAAD//v//AAD/Af8AAAEA/v//AQAA/wEAAQAAAAEBAQEAAAAAAAAB/wAAAP8AAQEA/wD///8AAAAA////AAAAAQAAAP8AAAD///8AAAD//wD/AQAB/wD/AAAA/wD/////AP//AAAAAP//AAAAAAAAAP8A/wD/AP8AAAAAAP8A///+AP8A/wD//wD/AAAAAP8CAAD/AAABAAAAAAAAAAAAAAEAAAABAQAAAAEAAQEAAAAAAQECAQEBAQAAAAEBAAEAAAEAAAEBAAEAAgEBAQABAAABAAAB//8AAAAAAAAAAAEAAAAAAQD/AAD///8AAP8AAAD+///+/f38/v77///9/v/+//8BAQECAQABAAABAAD+AP/+AAEA/v8AAAAAAQEAAP8A/wAAAAAAAQEAAP//AAEB/v//AAEBAP8AAQEAAAD+//8AAP//AAABAAH/AP8A/wD/AAAA/wACAAAAAAAAAAD/AQECAAEAAQEA//7+/f39/f39AP7/AAAAAQEBAQMDAgMC//8A/Pz9AwQEBwcI9/f1+Pb2AQEBAQICAAEBAP8A//3+AAEAAP7+/f7+AQIBAgIDAgMDAQIC//////39AAIBAgICAQEF/v39AQEG//8B+fn5AAD/BAQEAP/+///+/P39AwIBAgEAAwMDAgMFAP8B/v/+/Pv7+fn4AQIA/Pz6+vr4AgIDAwMD9/v8/Pv7BgUF/f39/v/+/Pv9AAMBAwID+vn5AAIBAgAA/vz89/f18vPyAAMEERYWBggGAgME/Pv8AQL8BAYGBgUGAgMFAwQEAgIDAgQDAwMEAwQFBQQFBwcHBAQEBQUFAgMDAQACAAEB/wAAAAAAAP8A/wD/AAAAAf8A/wEAAQAAAAEA//8AAQD//gAC/gAA/v/9/f/9/v7+AP79/v7+AQH//v0AAQEB//8AAAAB//8CAAD+/wD/AgEDAP7+/wEBAAEBAP//AAH///8AAP///wAA//3/AP/+/wEA//////8A/wD+AAAABP/+/gAA//8A/wAAAP8AAAAA/wAAAAD/AP8A///+AAAB//8AAAH/AP8CAQEAAAD/AAABAQAAAP8AAAABAP8A/wD/AAD///8AAAD+//8BAf///wEA//8AAAAA/gEAAf8A/wAAAf8A/gD/AAEAAAAA//8AAQH/AQD//gAAAP8AAAD/AP8A/wAA/v////8AAAAAAP///wEAAAAAAAAAAP8A/v//AQAB/wAAAAEAAf8A/gH/AQECAgEBAAEAAAEAAQEBAQAAAAEBAgEBAQEBAQEAAQEBAQEBAAEAAf8AAAEAAQAAAv8AAQH/AQEBAv///wH/AAAA/wD/AP4A/wD+/v8A/v/////+/QEA/wIBAf4AAgIBAgD/AQAAAAD/AP7+//7/AP7/AQD//gD/AP8BAQAAAAAAAAEA/wAAAf///wAAAf8A/wEAAf8A/wABAAAAAP//Af8A//8BAf///////gABAAH/AAD/AP8AAP8AAAEBAQEBA/8BAAD//v79/fz+/f/+/QAAAQEBAP//AAIBAP4AAP7+//7+AAcJCgMEA/b18/v6+QECAQAAAAAAAAH//////wICAP3+/f/+/wABAQIBBAICAf39/f7++wAAAAAAAQICAwIEAwABAQMDAwABAPz7/AECAQEBA///AP39/P7+/gAA/v3/Af/7+f39/gUHB/38/fv8/P39/f7+/gIBAPr8+fb39QMDBAQCBfj4+QcHBv38/Pn5+QICAgABAQIBAf8A//3//gP/Avn7+vn39fLw8Pj6+QkMCw0EDgQGBgUHBwUFBwcJBwYGCAQEBwQGBgMEBAUEBgUGBgQFBQQEBAICBAICAgABAAAAAQAB/wABAP8A/wEBAQD//wAAAf//AAEA//8AAQIAAAAAAAAAAAEBAAAAAAH//////v/+//79/f79/P3++/39+wICAQICAP3/AgD+/gIC/v7+/gIBAAABA/8A/wACAAD/////AgEA/QABAQAAAAAAAAABAP///v///wD/AP///wH/AP8AAAABAAQAAAD+//4BAP//AAACAQMA//8AAP////4AAAD///8CAQH/AAD/AAECAAAAAAEAAAD/AQABAAD/AAAA/v8BAAH+//8BAf///gAAAAAAAP8AAAD/Af8A//8AAAD+AAABAAH/AP4A/wAAAAD/AP8A/wAAAAD/AP4AAAAAAAD///8AAAD/AP8A/wD/AAAA/wD/AAAAAQD//wAAAf8A/wD/AAAAAAAAAAAA/wEAAf8AAP8BAAAAAP8A/wABAAAAAAEAAAEBAQEAAQABAAEAAQEBAQEBAQEAAAD/AAECAAEA/wEAAv8BAAIAAAH//wABAAH/AP8A/wD///4BAAD+//4AAP0A//8BAQAAAAEBAQQA//8AAP///wD+//8A//8AAP8BAQEB////AAABAQAA/wAA/wH/AP8AAAEAAP8AAAD/Af8A//8AAQABAAEA////AAAAAQABAgL//v4BAgH//wAC/gD9AP4AAAABAQABAAEAAAH9/v7+/v3//////v4AAAAAAQECAAD/AAAAAAD//wEAAAD/AAILDAv/AP708/L//fsCAgEB/wD/AP///wD/AP8AAQH9/Pz//v0BAAACAwUDAwP7+/v//v8AAQD//wABAwL//wH8/P8AAAAAAAH+/v4CAwMEAgX+/v77+vn+/v78/fz9/f0CAgL/AgICA//49/b8/Pz8/PsAAAH+//8DAwL9+/sHBgf8+/v6/PoBAQABAAABAgEBAgEAAgABAQEAAAD9/f0GBf/6+vn39vX59/X9/v0ICQgDAgECBAMFBQYFBgcFBgcHCAoGBgcFBQkGBgYEBQQFBAYDBQQCAwQAAQIBAQAAAAD//wAAAf///wH/AAAA/wD/AAAAAAAAAP8AAAAA/wEAAP/+AP8CAAL/AP8AAQAAAAEAAQAA//////8A/v////7//v7//v3+AAEAAAEB/fwAAAIAAf4C/v7+AgEBAf7+/wAB/gH/AQAAAAAAAAEBAAD/AAAAAQD+AAAAAQEA//8A//8BAQH/AP8A/wH/AAAEAQD//////////wH///8A/wD+Af///wD/AP8AAAAA//4AAQEAAQIBAAAAAAH/AAABAAAA//8AAQAAAAH//wD/AAAA//8AAAH/AP8B//8AAQD/////AP8AAQEBAP8A/wD/AQAA/wEAAf8AAP8AAAAAAAD+AAABAP///wABAAAA/wD/AP4A/wH/AP8A/wD/////AQAA/wD/AP//AP8AAQEB/wD/AP8A/wAAAP4AAQIAAAABAAAAAAEAAAEAAAEAAgEBAQEBAQABAQIBAQAAAAEAAAAAAAAAAAAAAAAAAAEAAf8BAAEAAAAAAAD//wAA////AP//AP///gEAAP/9AAH/AAD//////wAAAAAAAQEBAP8BAAH+Af8B/wH/AQIB//8AAQAB/wAC/wD//wD/AAD///8AAQEAAAAAAAAAAP8AAP8AAAD///8A/wAA//8AAAAB////AQEC//7/Af8C/wL/Af4B/wAAAAEA/////f39/v7+AQEBAAD/AAEBAP//AAABAAEAAP8AAAEAAAAA/wEBCwsJ/f3+9vX1AQD+AAECAAD+AAAAAP8AAQIBAf7//Pz8AAD/AQICAwIEAQIC/Pv6/f7+AAABAgICAQEC//7//QD8AQICAQICAAAAAwQCAAAB+/z7/fz9/v////8AAAABBAUG//7/BAQE+Pn6AwMD/wD/AAECAP//AwMDAQEA+/39BAQEBAQB/f7/BgYH/v79AAABBgcI///+/P7+/v/+AgMB+fr5+Pf2/fv7AQEBBwcGAAAABAUDBQUGBgYHBQYHBAUHBQUHBAUGBQQIBAYGAwMCAwMEAQID//8AAAH/AP4BAAEAAAAAAP8AAgEA/wABAAD/AP8AAAEAAP8AAgEB/wAAAP8AAAIA/wD/AQACAAAAAAAA///+/v///v7+/v/+/v7+//3+//7//wAAAAH+Av8C//7+/wD//wP+AP8AAP4AAAEAAAEBAAECAAH//wAA/wD//wEBAQAA//////8AAf///wD/AP//AP//////AP8ABP/+/v//AAAA/gAA//7//wH///8AAAAA/wAAAAAAAQAAAP8AAAD//wEBAAD/Af8A/wEBAQAAAP8BAAH/AP4AAAEAAAAAAQD/AP8A/wAAAP//AAAAAAAAAP///wAAAAAAAP//AAEAAAAA/wAAAAAAAP8AAAD//wAAAAAA//8AAAD+AP8A/wD/AP8A/wAAAAD/AP///gABAAD/AQAA//////8AAAABAAAA//8BAQAA/wAAAQAAAQAAAAECAgEBAQECAQEAAAAAAAAAAAABAAAAAAAAAAAAAQABAAAAAQAAAf//AAEAAP8B/gD/AAAAAAD+//4A/gEA/wD+//8A/wD/Af//AAD//wAAAAAA//8A/wAAAf//AAAA/wAAAAAAAAD/Af8A/wAB/wD//wH/AP8AAAAA////AP///wAAAP8AAAAAAP8AAAD///8A/wAA/wD//wAAAP8A/wABAAAA/////wEAAQECAP39/f/+/v8A/wABAP7+/v8A/gAAAf4AAAEBAQD//wECAf//AAEDAgoICPr6+fj49wAA/wAAAv8B/v8AAQH/AQAB/wAAAP3//gEBAQECBAMDA/7+/fr7+v///wABAgICAQEBAf///gAAAAABAQAA/wEAAP///v78//3+//3+/f//AAEBAgEFAAL+Av7+AAAEAAABAgAA/wIBAQEDBAIB/vz8/QMDA/7+/wUEBQECAwEDAgQA/wAAAQMCAf79/gMCAvv8/gUEBPz9+wICA/39/QMCAwMGAgAA/wABAAICAgQEBQcICAQEBQQEBQQFBgMEBgMCBAIEBAMEBAMDAwAAAQD/AAAB///9AAAB/wAAAAAAAQAB/wD/AP8A/wAAAAAB/wH/AAAAAf7//gEAAf8BAQH+AP8BAAAA/gD/AQAAAAD/AP///v////////79/f3+/f3+/QL/Av8BAP4BAQEBAf7/AgD9AQIA/wACAQAAAAAAAgAA/gAAAgAA/wABAf8A////AQAA/wD/AP8A/wAAAAH/Af/+AP///QABAAT+AP//AP0AAP8A/v4AAAAAAQEBAAH/AQABAAAAAP//AAABAAH///8A/wIAAf8AAAEB/wEAAAEB/wD/AAACAAD/AAAA/wAAAP4BAAAA/wH/AAAAAP8AAAAAAAAAAAAAAAAAAAD//wAAAAAA//8AAAAA/wAAAQD/AP8B/wAAAP//AAAAAP//AAEAAP///wAAAQABAAD+AAAAAAH/AP//AP8AAP8A/wEBAAEBAQEBAAEBAQIBAQIBAQIAAAEBAQEAAAD/AQAAAQD/AQD//wAAAAAAAQAAAAABAAD/AP8AAP8AAAD+AP4A/wAAAAAAAP//Af4A//7//wAAAP///wAA////AP7///8AAQAAAAEA////AP///wD/AAAA/wAAAAAAAAABAAEA/wL/AP7/Af7///8AAAAAAAAAAAD//v8AAP////8A////AP8A/wD//wAAAAD///7+AAAAAAAA/wAAAQH///7//v8A/wAAAQH//f8AAP////7+//8BAP8B//8AAP8AAQH/AAEEAwQFBgb4+fj6+vkA/wD/AP8AAf//AQEA/wH+AwAA/gD+/v7/AQECBAQDAgH9/P37+/z/AAAAAQICAgICAwP+/v4AAQAA/wAA/v3/AAD+///+/v7/AAD/AAACAQEBAwIAAQH//wD/AgAD/wD/AAD///8EBQQCAgMCAQL6+vkEBAMEBQX9/f0DBAr+/wEBAAH/AP////8A//3/AwQBAQACAwP/AP4AAQABAgEEBAMFBAT///4AAAIBAQAEBAQFBgcCAwMEAwUDBAQCAwMCAgQDAwQCAwMBAgIAAAH/AAAAAP8A/wAAAQD//wEBAQD///4A/wAAAQH/AP4AAAEAAAAAAAEAAf4A/wEAAQAA/wAAAQAAAP8AAQEA/wAAAQD+//7////////+/f4A/////////f3/Av/9/QADAfz/AgH//v3/AwH//gIAAP7/AgABAP8AAAIA//8AAgIB/gAAAQD/AP8AAQAAAAAA/wABAAD/AP//AP///wD///8EAP/+AAD/AP/9AAAA/wAA////AgECAP8A/wEAAAABAQEA/wAAAQAAAP//AAAAAAEBAP8AAAEB/wD/AQAB/wAAAP//AAD/AAAB/wD//wH/AP////8AAQAAAAAAAAABAAD/AP8AAQH/////AP8AAAEAAAD/AP8AAAAA//8A/wAAAAAA/wAA///+AAAAAAD/AAEA/wEAAf8A//8AAf8B/wEAAQD//wAAAAAAAQAAAQACAAEBAAEAAQEBAQEBAQEBAAAAAP8A//8A//8AAAEB//8BAf4BAAIAAAAAAAAA//7/AQIA////AQAAAAEA////AP/+AP8A/gD/AP7//wD/////////AAAAAP//AP8BAAAAAAH/AAAAAP8AAAD/AAAAAAAAAAAA/wAAAAAAAAAAAP////8A/wAAAP//AAAA//8AAAD//wAAAP8AAAEAAP8AAAAB/wEBAQAA/////wAA//7+////AP8A/wD//////wAA/////gAA////AAAA////AAEA/wEBAwMEBQUG+vr5/Pv7AQAAAAH/Af8A/wECAf/+/wICAP7+/wEAAQMCAv4AAQIA/Pv7/f79AAIBAgECAQEBAQIBAP8AAQIB//4AAAD//wEC//7+////AAEAAAEB/wABAQAB/wABAQABAQEAAQAAAQIB/////v7/AgEDAgEBAgIBAQIBBgQGAAABAgEB/f//Af//AAAB/////wD9AQAEAAAAAQAA/wAC/f39AQECAgIB//8BAQUAAAAAAgEBAQMDAwMEAwIEAQIBAwMEAgMDAgIEAQICAQAB/wABAP8A/wD/Af8A/wAAAgIB//7/AAEAAP//AAACAAAAAAAAAQAA/gD+AP8BAP8AAAIAAQAAAAAAAQD/AAABAQEBAP///wEBAAD///8A///////+AP///v7//v7+/v/+//7/AgL//v4EAf79AAH8AAEAAAMDAgABAP8A/wEBAP//AAACAf4A/wEBAAAAAf8BAAEAAAAAAAEB/v//AQAAAAD/AAAA//8ABP7//QH//wABAAD/AAEBAAAAAP///wABAAEAAQD//wABAgAAAAABAP8AAAIAAQAAAQAAAP8A/wEAAf8A/wD/AP8AAAEAAP////8A/wAA////AAAAAAD/AP8BAAH+//8AAAABAAD//wD//wAAAAD//wAAAP8AAAD/AAD/AAABAP//AAAAAAEAAP///v8AAAD/AAAAAAAAAAABAP8BAAD/AP8AAAAB////Af//AAABAAD/AAEBAAAAAAAAAQAAAQEBAQAAAQAAAAH/AAEAAAEBAQABAAEBAP//AAEBAAAB/v//AgAAAAABAf///gD/AAD///8A/wD+//8AAP///v///wD/AP///wAA/v8AAQEAAQAAAAEAAQD/AP8AAAAA//8AAAABAQD/AAD/AQAAAQABAgAA/wEA////AP8A/wAAAAAAAf8A/wEBAQD//wEBAP//AAEAAP7///8A//8A//8AAAAAAP8AAP//AP///wAA/wEAAAAAAAEBAAD/AAEAAP//AQQDBQMFBfn6+f39/QABAP//AAEAAf8BAAAAAAEAAv8A/wABAQIBAgEBAv8C//38+v4BAAACAgIAAQABAgIBAf8BAAIAAf3+/wAA/QABAP/+//8A/wABAP8AAP///wABAf///f/9/gICAwABAAMCAwABAAAAAP7+/gD///7///79/QUFBgAAAf/9/f8AAQEAAAIBAP//AAEBAAABAgD/AAABAf4A/wAAAQIAAQMEAgIDAv/+/wICAwMDAwAAAgICAQICAgECAwABAgIAAQECAQECAwH/AP8CAQAAAAEA/wAAAAACAQD+Af7+/wEBAQD///8AAAEB/wABAP8AAQAA/wD/AAAA//8BAAL/AQAB//8AAP8AAQEA/wD/AAEBAf8A/wD/Af8A//7///79/v3+/f7+/f39/f79/wID///+Af8C/v/+/gAD/QAAAv//Av7//gAAAAH+AgAAAgEC/////gAAAgEAAf8A/wAAAQIAAP/+/wEBAP///wAA//8A/wABAAQA////AP8B/wH/AQABAAAA////AP8BAAAA/wAAAQEA//8AAQEA/wAAAQD//wEBAQD/AQAAAP8AAAAAAP8AAP8A////AAD///8AAP8AAAAAAAAA/wD//wAAAAD/AQD///8A////AP8BAAEAAP8AAAAA/wAAAAAAAAAAAQD//wAAAf8A/wD//wD//wEAAv8B/wD/AQEA//8A/wABAP//AP//AAAB//8AAP8AAAAAAAEAAAAAAAEAAQIAAQEAAAH//wEBAQACAAIBAQEBAgEBAAABAQEBAAAAAAD///8BAAH/AP8BAAH/AP8AAP////8AAP////8AAP//AP////7//////v//AP///wABAP7/AAEBAgIA/wAAAQABAQH+/v8BAQH///8BAQH/AAEB/gAAAAD/AQEA/wAAAP8AAAAAAAAAAAAAAAD/AP///wAAAAAA/wD//wAAAAAA//8AAAAAAAAAAAD/AP8BAP/+//8A////AAAA/////wAAAP////8EBQUDAwP8+/z+/f0BAAAAAAEBAQEAAAEAAAAB/wH+Af4CAAAAAQMAAAEA/v/9/v4AAQIBAgEA/wABAQEAAAAAAQADAgH+/f3///7+AP8A///+Af8A//8BAQIAAQAA//8AAAD/AAEAAQL//wD/AAAB/v//AP//////AAABAwMA/wAAAAABAQL////+AQH9/P7/AP8CAQD9//7/AAAA//0CAwMDAQMB//8AAP8BBAIEAwX//v/+Af4HCAkDAgUBAQEAAAD/AAABAQICAQH+AP8B/wD//v8AAAH//wABAP/+/wACAQD//wAAAP8AAAD///8BAQEAAAEA//8A////AQEAAAAAAAAAAAEA///+AAABAAEA//8BAgH//wD/Af8A/wABAQEA//8A/wD//f79/v7+/v39/v39/vz+//0A/v8AAQAB/gL/Af//Af//Af7/AP4BAAECAQD/AgABAAEA//3/AQIB/wH/AAAAAAABAAD9AAABAAAA/wAAAP///wAAAAD//wAE//8AAAEA/wD/Af8A/wAAAQEAAP8A/wABAAEAAAAAAQAAAAD/AQECAAAAAAD/AAABAQEAAAD/AP//AAAA/////wD+Af8BAAD//wAAAP8A////AAAAAAABAP///wAAAQD/AAD///8A/wD/AQD/AP8AAQEAAAAAAAABAAAAAAH/AP8BAAD/AQIBAP4AAP8A//8BAAD+AAD///8AAAACAAD/AAD9AAABAAH/AAD/AAD/AAEAAQEBAQEBAQABAQAAAAD/AAAA/wH/AP8AAP8AAAEA/////wEBAf///wAAAAD/AQAA/wEAAQAA////AP/+/wAA/////wD/AP7+/v//AP///wAA///////+/v//AQABAgAAAAEBAP8CAQEAAQEBAAD//wEBAAD/AP8A/wEAAP8AAv8A/v8AAAABAAEA///9//8BAAAAAP8AAAD/AP8A/wD/AAABAP//AAABAQD//wAA/wAAAQAA/gABAQAA/wABAP/+AAAAAAAA/wABAQICAgMD/P7+/f77/v//AAAAAAD/AAAAAAABAP8BAAD/AQABAAACAAIA//7+/v//AQAB/wECAgAAAAIA//8AAgICAQIA//39/////wH/AAEA/wAAAQAC/wEAAAEBAP8AAAH/AAABAgIBAAAB//8AAgICAAAAAQACAQAAAAICAP//AQIBAAEBAQIB//7//v7+/f7+/f/9//39/wAA//8A/f36AwQDBQQGBAQFAwMEAQMCAP/+9PPvAAABDA0PAwMHAQEBAP//////AAAAAAAAAwD//wEAAf8A/wD/AP////8AAAAB/wIAAAD/AAABAQAAAAAA/wD/AQAA/wEAAAAAAAD/AAAAAAAA//8BAAAAAAL/AP8BAgIAAP///wEAAP4BAQH///4AAf8A//7+AP////7//v3+/fz8//7+//7+/wAA/wH9/v4CAgID//7//gH/AgD//wD//gL/Af7/AAL+AP8CAQD/AAD+/wABAAAB/wD/AAAAAAABAQAB/wAA///////+/v/+BP8AAQH/AP8A/wAA/wAAAAAAAQEBAAAA/wD/AQABAAAAAAAAAP8A/wEBAQEAAQEAAAH/AP8AAf8A/wD//wAA/wEAAf8B////AAD//wAAAAABAP//AAD//gAA/wAAAf4A/wEA/wAAAAAA////AAIAAf8AAQEAAAABAAD/AAH/AP4A/gD//wAAAQAAAP//AAAA/wD+//8B//8AAAEAAQEBAAD/AAAA/wAAAf8BAAEBAAAAAP//AAAAAAABAP8AAQEAAQEBAQD/AAACAAD/////AAD//////gAAAwAAAAAA/wAAAAAAAAAAAAD///7//wD//wAAAAD///8AAAAA////AP/+//7//////gAA//8AAQD+AAECAgEBAP//AgEAAf8AAAAA/wAB/wAB/wD//wAA////AAAAAAEBAAD/AQICA/7+/v7//////wAAAAAA/wAAAAAB/wAAAQAAAP8AAAD//wAAAAAAAQAA//8AAQD//wAA/wH/AAAAAQAA/wEDAv3+/P38/QAAAAD///8AAP//AP//AAAAAAABAAAAAQEAAAAAAP7//v7//wACAAD+AAL/AQACAP/+AAMCAQICAv3+/v7///8BAQIAAv4C/gH/AAAAAf8A/wAAAQAAAAEAAQAAAQABAAAAAQABAQMCBAAAAAAA//7/AAH/AP//AAECAQEBAgD/AP4A/Pz+//n7+/z7+v7//QAAAv39/vb29AIC/wYGBxISEwgICQAAAOfl4eLi2w0NDw8PFAwOCQABAf///wL///8A////AAEAAQABAAD///8AAAIAAP/+//8A//7/AAEBAAD//wECAgD/AP8A/wAAAAD/AQAAAAD/AAAAAAABAAAA/wAAAAD/AQAA/v//AgAA/wEAAP8BAAAAAAD/AP//AP/+/v38/v38/Pz9/f39/f79/f///v7+AAABAQH+/v/+/v4B/wL+//8C/wAA/wD//gABAP/+AAIBAAABAv8A/wABAAAB/wAAAgEAAAABAP8A////AP///v7///7+/QQA//7+AAAAAP8AAP8AAQAA/wD//wEBAgABAf8BAQAAAP8AAAIAAAAAAAABAAAAAQAAAP8AAAAB////AAABAAH///8AAAAA/wAA/wD/AAD///8AAAAAAAD/AAD///4BAQEAAAAA/wD/AQABAAEAAAEB//8AAQEA/wD+//7///8AAAAA/wABAAAAAP//AP8BAAAAAgAA/wEAAP8AAP8A////AP8A//8BAQD/AP8A/wAA/wABAAABAAAA/wEBAQD/AAD/AAAAAQEA/wAAAAAAAP/+/wAC/wEBAQABAAH/AP8AAP8A/wEA/wD/AP8A/wD//wD/AP////8AAP///wH/AP7/AP///////wAAAP//////Af8B//8BAgACAQEAAgAAAP8BAf////8AAAAAAQEAAP//AgD//v8BAAAAAQAA/gABAAAB/wEAAQD/AAAAAAAA//8BAAAAAf8B/wD+AP//AAAAAAEAAf8AAAABAAAAAf8A/gH///4BAQH/AQD+/v3+/v8BAAAAAf///wEAAP//AAAAAAD/AAAAAAEBAQEAAP7+//4A/v8BAP//AAEBAAAAAgD//wACAwECAgH//wAAAAAAAAEBAAH/AAAAAQIAAf8BAAAB/wL/AP8BAQH/AAD/AAIBAAEAAQACAAIBAgIAAAH//wACAP//AQH//wABAgH/AAD+/v39/f78/fz8/Pz19vb29vb4+fjx8fDx8PACAgIVFRMMDQwI/wjz7/PMy8zs6OAVExUIBAwnKzEHCwv/AQL//v8BAAABAf4A/wABAf//AAAC/wD//wAAAAAAAP8BAAAA/v8AAQD///7/AAAB/wH///8BAQD/AAABAAAAAQEAAAD/AAABAAAAAP//AAIA//8AAQEAAAD///8AAAEAAP///wD9/f78/Pz6+vr5+fj9/Pv9/fz//f0CAgAAAQAB/gH+/v0BAQH/AgH+/gEBAAAAAQL/AP8BAP//AQD/AQABAQAAAAH/AAIB//7/AQH///8BAAH/AP///gD+/v/+/f8E//8A/wD+AQAAAAH/AP8BAAEAAAAAAQAAAAAAAAD//wEBAgEAAAEAAAAA/wAAAf///wABAAAAAAAAAP8A/////gD/AP//AP///wAAAP///wD/AQAA//8AAAAAAQAAAP///wEAAAAAAf8BAAAA/wD/AAEBAP///wD////+AAAAAP8BAAEAAAD/AAAAAQAAAAD///8AAAAAAAAA/wAAAP//AAAAAAAAAP8BAAAA/wH/AAAAAAABAAACAQEBAAABAQEAAQD/AAAAAAEA/wEAAAD/AQAB/wAA////AAH/////AAABAAH//wD/AP////8AAAD/////////AP///wAAAP//////AP/+///+/v/+AP//AQEBAQH/AwAA/wIAAP4CAAIA/wAA/wAAAQH///8AAAABAQD/AAEBAP//AQAA/wEAAAEBAAAAAf4AAQD//wAA/wEAAP8B////AAAAAAABAQH/AAAB/v7/AAEBAAAAAAEBAAH+AAEA/gH+//4A/gD+//8AAQECAP8AAAEA//8AAAD/AAD/AP8AAQEBAAEA//8A/v7/AQAAAAABAQAAAAEB/wAAAQEBAwMC/////wD+AP//AAEAAQACAAD+AgAB/wABAAD+AAAAAQABAAAAAQEB/wACAQECAAEBAQACAQEDAAD/AAAB//7+/v8AAQEBAAEAAP///v7+////AP7++vr48vHv6ejl8e7t8vP08vT19/n6Dw8PBQcFHx0e4Nve493d+fXxAPb81/nNBgQGJC0vBAUIAAICAf/+//8CAAH//v//AQABAAEA////AAEAAP8BAP///wD/AQAC/v7/AAEAAP//AAIBAAAAAAAA/wAAAP8AAP8BAAH/AAAB/wAAAAH/AAABAQD//wABAQABAP//AP8A//8A/Pz9+/z7+fn5+vn4+vr6/Pv7AP/9AP8AAAEAAgEC/QH8AQECAP7+AgH+AP4B/wIAAv4BAAEB/wD+AQAC/wD/AAAAAQEA/wAAAP//AQEB/wAA//8A/v/+/v7+/v79BP///wAAAP8A//7//wEAAAECAAICAP8AAAEAAv8AAQIAAAAAAQH/AQAAAQABAP8AAAAB/wAAAAH/AAAAAP8B/wD+/wAAAP8BAAD/AP8AAAEAAP//AAAA////AAECAAD/AAAAAAEAAAAAAAAAAP8AAAD//gD/AP8A/gD///8A/wH/Af//AQABAQABAAAAAP8AAAAAAP8AAAAAAP8AAAAAAAAA//8AAAAA/wEA/wH//wEAAAAAAP8A////AAAAAf//AAAAAAEBAAAAAAD/AQEBAAAAAAAAAQABAf4A/wH///8B/wD/AAD/AP8A/wH/AP////////8A/gD/AAD//////wAA/////////v7//QH+AP8BAQIBAP0AAgMA/wEC/wH/AgD//wL/Af4AAQEBAAAAAAAAAAABAP/+AP///wAAAAD/AAEAAQAC/wD/Af8AAAEAAP8A/wD/AAAAAAEBAf8AAQH//wECAgD+/v8CAv/+/P4AAP4B///+/////gD/AQEAAAAA//8A/wD//wAAAAAAAAAAAAAAAQAAAP/+//7//gAAAP8BAAD/AAEAAP8BAQEAAAIDAQD//////wD//v8B/wD+AQAA/wABAQAAAAEAAQD/AgACAAABAAD/AAABAgEAAQEBAgEBAgEBBAAAAAEBAP/+/wADA//+/gECAwD/AP3+/QEB///+/f7+/fz7+/Hu6u3n4vr49vf09vPx9fH1+Orq7fX39yslIv/z8woA/QMCA//4+PTr6tvS0RAUFBccHgECBAABAP8A/wEA/wEAAf8AAP//AAEBAP8A/wEAAP//AAAAAQD//////wEAAf8AAAD+/wAB/wEBAQAAAQAB/wAAAAAAAQAB/wD/AgAAAP8A/gAAAgH///8CAQH/AP4A//3+/fz8/Pn5+vf5+Pf3+Pj39/36+wMB/f8DAgQBAf4CAQH+Av7+/QH+Av8BAgECAgH//wAAAAAA/gD/Af8C/QAAAgABAv///wAAAP8AAAAAAAAA/wD///39/v39/fv8/QT///8AAP8AAP8AAAD/AQAB/wAAAP8BAAIBAAAAAAEAAAEAAAH/AQEAAAAAAP8AAAEB/wAAAAH///8AAP8A/wAAAAAAAP8BAAD/AAAAAAD/AAAAAAAAAAAAAQD//wAA/wABAAEAAAAAAAD/AP8A//7//wAA//8AAf//AP0B/wL/AP8AAAAAAAAA/wAAAAAAAQAB/wEAAAD/AAAA////AP8A/wD/Af8AAAEBAAD/AAAAAQD/AP8A/v//Av////4AAAL/AAAA/wAAAQAAAP//AAEBAQEAAAL//wAAAP//AP8A/gAAAQAAAP8A/wD//////wD/AP////8A/wAA/wD/AP///v//AP/+/v///wAAAAD///8AAP4C/v3+AAAAAgAB/wACAQIAAQAC/wH/AAD+/wD/AP///v//AP///wAAAAABAAEAAf///wEAAQAB/wD/AP4A/wABAAEA/wD+AP4B/wD+AAEA//8AAQAAAf//AQAAAAAAAAABAQAAAAEA////AQEAAP8A/wD/AAD/AP8B/wD//wAAAP/+/v////7/AP8AAf8B/wD/AAAAAAEAAQACAQH//wH//v3+//8B/wAB/wAAAP//AAABAQIAAAD/AQD//wEBAQABAQD//wABAQIBAQMCAgMCAQIBAQP//gD/AQAAAP8BAgEF/v7/AQH//gD+/v0AAAH/AP/8/fv4+PX19PD8+fUC//wJBwEVFQ8BBQTr7/Tg4OAF/fwvHx0TDArv+/UMCAQBAPj+9e/q4eATFRcEBwEBAQIBAAAAAAAAAQABAAAA/wD/AQAB/wH/AP8AAAH/AP//////AAAA//8AAAAAAAAAAAH///8BAQABAAEAAP8BAAD/AAIBAf8AAAAAAAD///8AAQEA/v8AAf///v/9/f76+/r3+Pf39vf19vb29PX//PkGBAAGBQMCAf/+AgACAgP//wP+/v0BAQL+AAECAQAAAAEAAAD/AQEA/wEBAf8AAP7//wAAAAEAAQD//wD//wD//v79///8/Pz7+/sE////AAD+AAEAAQABAAAAAAAAAP8C/wAAAAEBAQEBAAACAAABAAAAAQD//wAAAQD/AP8BAAH//wAAAQAAAP8AAAABAAAA//8A////AP8AAAABAAH/AAABAP7/AAEAAAAAAP///wAAAQAAAP///v//AAAAAQEB///+AAAB/wD/AAABAQAAAAAAAAAAAAAAAAAA/wD//wD/AAAAAAD/AAAA/wABAf8AAAAAAAAAAAEB//8AAf8A/wAAAAAAAP8AAAAAAAD/////AAAA/wEAAgACAAABAAAA/wABAP//AAEAAQH/////AP8AAAD///8AAP8A/v/+AAAAAf/+//8B/wD//wD///8AAQAAAQD///8AAAAA/gAAAQD///////7+AQIB/wL/AP8BAAAA/wAA/wAAAQAB/wH/AP8AAQEA//8AAAEAAP8AAAAAAAD//wH/AP8CAAH/AP///wD/AP8AAAAAAQAA/wEBAP/+AAABAQAB/wEBAQAB////AAAAAQIAAP///wD/AAABAAAAAAAA/wD//wAAAP8AAAD/AAD/AAEAAgAB/wAAAAD//wABAgEAAAABAAD///8AAQAA/wAA//8AAQAAAAEBAAEAAAABAAEAAQEBAQEAAQAB/wIBAQECAwIEAQECAQEDAQAC/wEA/wAAAAH+AAEBAAED/////wL+/QIDAQICAAEC+vz59vjzBggFDAwK+Pb0CQsNEBITD+7yBQbr6Oru6OrpMiEbFRELCAD0ISAY9/T3+fj2/fTu+fX1AgQCAQIDAAMEAf8AAP8AAAH/AAEAAP8AAAAAAAAAAAAAAQAA/v//AAAAAAABAAEA/wAAAP//AQAB/wH///8AAgEB/wAAAAAAAP8B/wAAAQEAAQAB/wD/AQAA//8A/////f39+fr59vX29fXz9PT09vT0APz7/QYCAAgFAwIBAgQC/v79Av79/wIC/wD/AAD/////AAD/AAEBAAD+AAAB//8AAP4BAAH/AAAB//8BAAAB/v/+/v7+/fz+/P38/Pv7ASl71oQEAP///wEAAf8AAAEBAf8BAAEBAP8AAAECAAABAf8BAAH/AQABAP8AAAAAAQAAAAAA/wABAf//AAD///8A/wAAAP///wH/AAD/AAAAAAEAAAAAAAAA/wAA/wH/AP4AAQEA//8AAP///gD/////AQAAAAEAAP8AAAABAP8AAAAAAAH//wAAAf8B/wIAAP7///8AAAD/AAD//wAB//8AAAABAf//AAEB//8A/wD/AP//AP8A/wAAAAAAAQEA/wEAAAAAAP8AAAAAAAAAAQACAAEBAAACAP8AAAEBAAEAAP///wD/////AP8A////AAD///8A//7+AAEA//8A////AAD/////AP8A//////8A////AAAAAQAA/wD+//8C////AP//AP4A/wH//wABAAD/AQAA/gH/AAAAAf8B/wD/AQEA////AQAB/wD/AP8BAf8A/wD/AAD/AAEAAf8BAAD//wAA/wAAAAD/AAABAQAA/wABAAEAAf8B/wEBAQD//wABAQD/AQAC/gAAAQAAAP///wAAAAD//wAAAAD//wEBAQD//wEAAAAAAQACAQEBAAEBAP////7+//8AAAAAAAABAQIAAAABAAABAAD/AQEBAQAAAAECAAEBAQEBAgECAgMDAAECAgEDAgEBAQACAQAC/f//AP8D/wD/AP/+/v7//v//AQD+AAD+///8AQAAAf8ACAcH/w0KCggDERMTDhESDhEQCwsJ/v776ufs5efnJRsSBQYBEBASNDIk3Nbb+wgF+PbwAwcAAwYIBAEK/wACAQIA/v8AAAAAAAAAAAAA////AAABAAAAAAEBAP8A/wH/AP8BAAH/AAAB/wD/AP8AAQAA/gAAAQABAgEA/wD/AAEBAAAA/wD/AP8A/wD/AAAA/v7//f39+/v8+fr59/f49PT19vT1Av/8//0DAQL+AwQCAgQDAQP8Av4EAf///v7+AwH+/v4AAgICAP8AAf//AAH9AAL/AAAB//8CAAH//v8C//8A/v8A/v79/P39+/r7+/v8BAAB/wD///8BAQEA//8AAAIAAQABAAAAAAH/AgABAQD/AQABAf8AAAEAAQAAAAD/AQEB////AQAA/wAA//8A/gAAAP//AAH/AAAAAAAAAAEAAP//AAAA/wH/AP8BAP///////wEAAP///wEBAAAAAAAAAP8B/wD/AAABAQAAAAEBAAEAAf8AAAH/AQABAAAA////AP///wD/AAAA/////wEAAf/+/gABAAAAAQD//wAA/wAA/wABAAEAAQIBAQAAAAAA/wAAAAAAAQEBAgEABAD/Av4B/wH//wAAAAD//////wD///8A/////wD/AAAA//7//wH+AP8B/wD/AAAAAAD/AP////8AAP8A//8A/wAAAAEAAP///////v7+AAEBAQL/AQEAAf//AAEAAQECAf/9/wD/AP8A/wAAAAAAAAAAAf8A/gAAAAAB/wAA/wAA/wD/AAD/AP8BAAAAAf//AAAA/////wD/AAABAAABAQH/Af8B/wEAAP8AAQIAAP8AAQAAAQIA//4A/wAA////AAAAAAEBAAAAAAD/AAEAAv//AAEAAAABAQEBAQAAAP4AAAAAAgAB/wAAAf8A/wAAAAEAAQAB/wEAAgEBAQEAAf8BAQEAAAECBAECAwEBAwEBAAAAAQEBAgEBAQEAAQMAAgAAAAEAAPz9/AD//QAA/f3//P79+/79/AIAAAcGCPP+AgMDBQ0MCRMVEhcYGPj5+xAQDAYF/9b9++To6hwXEf4CA/Xz8xgcIwULGO318/oF//Xx7wcNDwACBwQEAv8AAQEA//4A/wAA/wEAAAEBAQD/////AAEAAP8BAP//AAAB/wAAAAAA/wEAAQD/AP8BAAEA//8A//7//wAAAAEAAAABAQAAAAAAAP//AAAA//8A/v39/vv8+/r7+/j4+fX19fT19wMB/f79AgIC/wUDAgQDAgIDAwID/AL/AwD/BP///gEAAQD////+/v8AAQECAQD+AAABAf8A//4A//8A/v7///7+//39/vr6/Pn5+fn4+AT///8AAAEBAAEAAAEBAAH/AAEBAAIAAAH/AAEBAAIAAAD//wEBAQEAAP8BAAL/////AQAAAP4A////AAAA/wEAAP8B/wD/AAD/AAABAAD/AP8AAQAA/v8AAAAA//4A/wH/AP8A/gAAAQAA/wEAAP8AAAAAAAAAAAAAAQEBAP8AAAL/AAAAAQD///8AAAD///8AAP4AAP//AQD//v8A/v//AQAA/wAAAP//AP///////wD//wAAAAD//////v//AgAAAAIAAQAAAQAA/wAAAQAAAP8B/wAAAf///////v8AAP7//////wAA//8AAAAA//8AAAD/AP8A/wAAAAD/AP8AAP8AAQAAAAAA/wAAAAD/AAD+/wACAf/+AP8C//7//wL/AP8A/wABAQH//wEAAP8CAQH+AAD/////AAAA/wAA//8AAAEAAAAA/////wEAAP8AAAAAAQAA/wAAAAAAAAD/AAAAAAH/AP8AAAABAAD/AAIAAQABAAAAAP8BAP8A/wEAAQD/AAAA//8AAAECAf//AAAAAAD//wABAQEB/wABAQEAAQAAAAIAAQEA//7/AAD/AQEAAAAAAAABAAAAAAEAAQACAQIB/wABAgIBAAEAAAAAAQIBAgMAAQMBAgEBAAEBAAACAgIAAAIAAAEB////AAD/AAABAQEBAQAAAAAC/wD////+/v38/PwBAAEFBQT7AQIDBQULCwoDAQAKBwUFERABGxj87/LV1N729vkC///y7erm6useLTQI8OL8BA3R0NYRBQYEBQsDAwQCAQH+/wAB/wD//wEAAP8DAQH+/wD/AAABAf///wAAAAAA/wAAAf8AAAEAAQAAAAEAAQD+/wABAP8AAP4BAQIAAAD///8BAQEAAAAAAP/////9/f79/fz9+/v7+vr7+/r5+fr4+PgAAP0A/gIEAwAEBQMDBQQCBQYDBP7+/f8CAf7+AQICAf/9AP8CAPwAAQP//wEBAv//AAD+AAD+AAH+/wD+///+/f77+/35+fr5+ff5+fkE/wD/AQEAAP8AAAEBAAEBAAAA//8AAQEBAAAAAAAAAQAAAQABAAAAAAAD///+AAEAAP4A/wAB//8BAQH+AP8AAAEAAAAAAAABAQD//wD/AAAA//////8A/wD///8AAQD/AP4A/wEAAAAAAAD/AAD/AQABAAAAAAEAAAD/AAABAAAAAAAAAP8AAAAAAAAAAAAA//8A////////AP/+/wEAAP//AAAAAQABAAAA/wD//wD/AAAAAQAB/wEAAAIBAAABAAEAAAAAAQAAAP///v/+AQEBAAABAP/+/wD+/wD+AP8A/v7+AAAA//8AAQAAAP//AAAAAAAAAP///wD/AQAB/gAA////AP7/AAAA////AAAA/wD+/v8CAgAA/wID///+//4CAQEBAAAAAQAAAAEBAAIBAf4AAQEAAf///wAAAAAA/wD/AP///wAAAQD///8AAAABAAAAAAD//wAAAAAAAAAA/wAAAAABAAD/AAEBAQEAAAAB/wABAv8B/wAAAQL/////AQAAAQABAAAA/wEAAQAA/wD/AQACAAAAAQECAAEAAAEAAAAAAAAA/wABAQAAAAAAAAAAAQEB////AQEAAAEBAQABAAEAAgECAQEBAAEBAQACAAICAQEDAQECAAAAAAIAAAECAQAA////AAEBAf/9/v/////+/wAAAAAB/wABAAAA/f7+/v7/+vr6/Pz8/P7+AQMCAP8A+fr6AwABAf37+vT05eHl9fT48/X8EAkH8PL3EBgbEx0o8/bx9fX29/f1BfTyAgYMBQcHAP8BAgAA/gAAAAD/AP///wAAAQAAAQD//f4AAAH/AAEAAP8AAAAB/wEB/wABAQAAAP8AAAAA/wAAAQAAAAAA////AQEBAAAAAP//AAAA///+/fz9+/r6+vr7/fv7/fz7/fz9+/v8/v75Av8DBQMCBQQEBAQEAwMEAgMCAgIDAgIDAQECAQEBAP///QEBAAD/AAEBAf4A/wEB/wD//f8B/f///f7/+/z9+vr8+vj5+fj5+/n6BAAA/wD/AP4AAQMAAQAA/wAAAQAAAAAAAAEA//8AAAEAAf8A/wD/AAEB/gAAAAAA//8AAAAAAAEAAP/+AQAA/v///wAAAAAAAP8A/////wD/AAAB/wAAAP/+/wAAAP8A/wEB////AQABAAAA/wAAAP8A/wAAAQEAAAAAAf8AAAEAAAD/AAABAAAAAP///wD/AAAAAAABAQD+AP8AAQD//wAAAAAA//8AAAD/Af//AAD/AAAAAP8A//8AAAD//wABAQEAAQD/AP////8B/wD//v8AAgEA/wAA/////wAA//7+/v7//wH/AP///wABAQAA/wAAAQD//wEBAAD/Af8AAAD///////8BAP//AQAAAP///wD//wAB/////gD/Av///////v8BAgEA/wAAAQD///8AAQAA//8AAQAAAQAA//8AAAD/AAAAAAD///8AAP8AAP8A//8AAP8A/wAA/wAAAAAAAAEBAQAB//3+AAABAQABAAD/AAEBAgEBAAAA////AAAAAQAB/gEAAf8B/gH/AP8AAAH/AgEBAP8BAAEAAQEBAQAAAP8AAAD///8AAQEBAAABAAH+AAABAQEBAQAAAQECAQH/AAABAQEBAQEBAgABAgABAQEAAwECAQICAwAAAAEAAAABAQAA/wAB///+AAABAQEAAAABAQD+AP7+/f///wAAAP79/P/+/QkJCfj3BvoFCAUFCv3+Avj2+gQDAP78+gAAA/r7/Pz/AgEDCAUCAPP28vP69AAB+fj08fTy9/Lv8v0AAgkMEf79DQMB/wEBAQAAAAD/AP8BAAAAAAD///4BAAABAAD/AQEAAAABAP8AAAD/AAABAAAAAQAA/wEAAQAAAP//AAAA/wEBAQAAAAD//wAAAAD///39//z8+/r6+vr6+vv7+vz6+v3+/P38/Pv8+gEAAwUEAgUFAwQGBQMEAwIDAgICAv8AAQQE/v4DBAABAQEAAQAAAQABAAABAP8AAf3+//4AAP39//z///r6/Pr6+/n5+fr5+Pr5/AT/////AAACAf7//wEAAAIBAf8A////AP///wECAP8AAQD//wABAQAAAAD/AP8A/wEAAP8A////AAEA/wD/AQEAAP//AP8BAAH//wAAAAD/Af8A/wD//v7/AP8AAAABAAD/AAEAAP8AAAD/AAAAAP8AAAABAAAAAAH///8BAAD/AAEAAP8AAAAB/wAA////AAAAAAIA//0AAP8AAAD///8AAP8AAAD///8CAf8A/wAAAP8AAAAAAAABAAD/AAAAAAAAAAD/AAD+AAAA//4BAAABAAD/AQIA/v/+AP4A/v/+//7/////AAABAAH///8BAQAA////AAAA/wEA///+////AP//AP////8A/v3//v7+/v8AAAABAf4BAAL/Av7//wMAAAAAAP//AAEAAP8BAQAB/wD/AAABAAD/AQAB/wEAAAD/AP//AAD/AAAAAAAAAP///wAB////AAD/AAEAAP8BAQAA/wD//wACAAEAAP/+AAABAQEA/wH+Av////8AAQD//wAA/wEAAQAB/wEAAAEBAQAA//8AAAABAAAAAAECAgL//////wAAAQABAAAAAAABAAH/Av8AAQEBAAABAAEAAQIAAQEBAQEAAAAAAQMBAgEBAQIAAAEBAQEBAAEAAP8BAQEAAQAAAAEB/wEAAgH//wL+//0BAP8AAf///wD//v38/Pv9/fz7+/r49/f+/gADAwX+/wL+/gADAv7//wP6/QACBQQZGhPl6+Dm6usJGA7d5OrMzMopLzDw7OPt7v7x7/IFBwX9/Pr//v3/AAQAAQEBAAD/AgAA/gD+AP8BAgAA//8A/wABAQD/AP///wABAAH/AAEAAAAAAAAAAAD/AQABAAEAAAAAAP8AAAEA////AAH/AP///v/8/Pz7+/z7+vv7+Pr8+vr8/Pv//vz/AP7//f/7+vz3AvkFBQMFBwUDBQIDAwMBAQL9/wD9/f0DBQT/AAEBAQIAAAD/AP/+AAABAAH8/v/+///8/f/9/v76+vz5+fr5+vr7+vn7+fsEAAAAAP8A/wEAAQAAAAD///8CAQIAAP8AAAIA/wD/AQABAQEAAAAA////AAAAAAD/////AAAB/wD/AAEAAAAA/wABAP8A/wAAAAD//wD/AP8A///+/gAAAQAA/////wABAQEAAAEAAP8AAAEA/wD/AQABAP///v//AAAAAQAB/wD/AQABAAD///8BAAAAAQAA//8AAAAAAAH/AP7/AAAAAP///wD//wAA/v8AAQEB/gAAAAAAAAAA/wD/AAAAAP8B/gABAwEA/////wAA/wD/AQD+AP//AP/+///+///+/v7/AAAAAQEAAAAAAAAAAP8A/wAAAP8A/wAAAAAAAP///////v//AAD//f7/AP7////+AAAAAAAB/v8BAv8AAP8A/v7/AQH/AQEAAAABAAABAAD/AAAAAAAAAAAAAAH/////AAAAAAD/AAEB/wD+AAABAP///wEBAP8AAP/+AAD/AAABAQD/AP8AAAAA//8AAQEAAP8C/wEAAP//AAEBAP8BAQH+/wABAQD/AQAC/wAAAAD/AAAAAAABAP8AAQEAAP8AAAABAgH//v8AAQIAAP8BAAAAAAEBAQAAAQABAAECAQEDAAAAAAAAAAAAAQEBAQACAAABAQIAAAEB////AQAAAAAAAQAB/wD//wD/AAAA//////////7+/f3+///+AAIBAQEBBAIECAcJ/////v79+/r4/P3+/P3+AwIA//39/fwA/P7/CwsIAwIC7fL0GBEK8PT5zMvRNDPP3tja4On79PT4FRcUAQABAAABAAAB//8AAAABAAAAAQEAAv8A/wD/AQAB/wD/AAAAAf//AQAA/wAAAAABAP8AAAAAAAEBAQAAAAAAAQABAQD/AP//AAAB/wD+/wAA/P79/fz8+vn5+ff4+fj3+fj4+vv6/f38///+AAD+/f///P4C+fv8+fr7BQUFBAL6AQEC/v8A/QT+Av39AAIBAQEB/wAA///+/gD///8B/v///f3//f7+/f3++fr8+fn4+vv6/Pr8+/v8BP7//wMBAAH/Af8BAAEAAQAAAAAAAAEBAAAAAAH/AQAAAAABAAAAAAAAAAABAf///wAAAAAA/wD/AAAAAP//AQAA/wD/AP8A/wAAAAAAAP///////wEAAAAAAAAAAAAA////AAEBAAAAAP8A/wAAAP///wABAAD/AQAAAP4A/gEBAP8AAQD+AAEA/wABAP//AP8A/gD//wD//wAAAAAAAP7/AP///wEAAQACAP8AAf///v7////+///+//8C//8A/wAA/////wAB//8A/gEAAgD+/wABAP7//v7+/v///wAA/wIAAQAAAAAAAAAA//7/AAEAAP8AAAH///8AAP4A//7//wD///7/AAD/AP4A/v///wAA/wAAAv///v7//gIA/wEA/////wH/AQABAP///wD/AAABAP8AAAAAAP//AAH/AAAAAP8AAQEA////Af///wAA//7/AQAAAP8BAQH/Af///wAAAP8A/wD/AAAAAAEAAf4A/gAAAAEBAAD/AP8A//8AAQAA/wEAAgAA/wAAAAAAAAABAgEA//8BAAEAAf8A/wEBAP//AQIAAP8BAAEAAf8A/wEB/wEAAQAAAgAAAgAAAQEBAQABAP8A/wAAAAABAAAAAP//AQEAAAAAAAAAAAAA////AP///wAAAAD//////////v///wAAAAICAwH+/gEBAwYHCfz9/fz9/QEB9AIDAf79/Pn5+QD9AP8AAP39/f///gIBAg4HB/L18/PyCgMFCdnY4ZOOlgT9+voADhcbGwEDBQABAwECAgEBAQAAAP8AAAEAAf8BAAAA/wD/AQAAAAIBAP///gABAf8AAAD/AQEBAAAAAAAAAAEBAAAAAQAAAP8A/wAAAAABAP////////7+/vz7/Pn5+fj3+Pf39fj49vj4+Pv6+v38/f///gABAAMBAv//AP3+//r7/Pf5+wABAv8BAv3+/wIF/AL8AwECAgABAQAA//////8AAP/+AP4AAPz9/vz9/fv7/fr7/Pv7/fz8+/v7+/38/gQB/wD/AAEAAQACAAAAAAEAAAAAAAEA/wD/Af//AP8AAAAB/wD/AAABAAH///4AAAAAAAAA//8AAAD///8AAAD//gAAAAEAAf8AAAAA/wAA//8B/wD+AAAA/wD/AAABAAAAAAAA/wAAAP8A/wAAAAAAAAAAAAAAAAAAAAABAQEA/wABAAD/AQAA/////wD/////AP8AAP8AAAD///////4AAP8AAQD/AP8A//////7//wD/AP8AAQABAAEA////AAD//gD+Af8C/gD/AgAA////AAAA/v//AP7//v0AAAEBAQD/AQABAAD//wAAAAAAAAD//wD/AAD/////AAD//v8AAP//AP8AAP//AP7///////4AAAEAAQD/AAEAAAD///8AAAD//////v8AAgABAQH/Af///gAAAAABAAH/AP//AQAAAAEBAAD+/wAAAP//AP8BAAEBAP/+//4BAAH/AP8BAf////8AAAD/AAAA/wAAAf8AAAAA////AP//AAD/AAAA/wAAAAD/AAAAAQAAAAAB/wEAAQD//wEBAQEBAP//AAD/AAAAAQAAAQICAP//AQABAAIAAAD/AAABAAEBAAH/AAEAAQEBAAABAAAAAAEAAAAAAAAAAAAAAAAAAP8AAAEAAAH//v8AAAD+//7/////AP///wD+//4AAP8A/wAA/wADAgP6AP77/PoAAf8BAv8FAwMBAPz59/b9Av3///4AAAH6+fn6+fsMBAEkIh3x+Pn6/P/4/v7g5OsTCgoTEwkEBQgDBwUDBQUDAgMBAQEAAAAAAP///wD//wAAAAEBAQAAAAAA/wH/Af8AAAAA////AAAB/wAAAAABAQD//wAAAQACAP//AAEBAAEA/wD/AAD////9/f77+vv59/j29fX29fb39vf5+vj8/Pv+//0BAf4EAwECAwEDAgEB///9/P77+/oCAgEBAQH+//0D/gMAAwMBAgICAAD/AAH///8AAAD/AAD9/f78/v77/f37/P38/P79/P/9+/38/f/9/f4EAAAA/wAAAQABAP8A/wH/Af8C//8A/wEBAf8AAAAA/wAA/wEAAP8AAAH/AP8AAAAA/wD/AAAA////AAAAAAAAAAECAAD+AAAC//7+AAD+AQAB/wEAAP7/AQEAAP8A////AQAA/gD/AQAAAAEBAAABAAD/AAAAAP8AAAEAAP8AAAAA/wEAAP///wAA//8A//8BAAD//wAA//7/AAAAAP8B///+////AAEBAAEAAP//////AP8A//8A/////v8AAv4A/wP/Af4BAAL/AP///gD+AAAAAQAA///+AAEBAAAAAAEBAQEBAP8AAQH///8A/////wD/AP8B///+AQAAAAH/AP8A///////+AP//AAAA/wAA/wD/Av/////+//4C/gD9AAEBAwMB/gD+Av8D/wAA/wAA/wAAAAAA/wD/AQABAAD//v///wAAAQAA//8AAP8B///+AAAAAP8A/wD/AAAAAAABAAD/AAAAAAEAAAAAAAAAAAEBAAD/AQABAP//AAEBAAD///8BAAAAAQAB/wH/AAAA/wAAAAEAAAAA/wEBAf8BAAD/AAAAAAABAAABAQH/////AgAC/wEB/wAA/wABAAAAAQAAAAEA//8AAQEBAAEAAf8AAQAA////AQABAQEB//8AAAEAAAAAAQABAAAAAP8A/wH9AAD+///9/v7///8A/wD//v/9AAD8AAD6BAT/AwQA/Pv89/j6BQD+BgH///7++fTzAQMF/QYL2+r04+/w9Pj4BwMAAgEABgIGAfXzEwcCBQcLBwkJAgQDAAABAAD/AP8BAAAAAQL///8BAP8AAQEBAAD/Af8D///////+AAD//wEAAf8B/wAAAQEAAAAA/wABAQEB/wEAAP8A//8A//7//v38+/v6+fn5+fn49/f3+Pr4+/z7/P37//77AQH/AQQBAwIBAgMBAAD////9/fwC/QP7+wMBAAL+A/8EAf37AAICAAAAAAAAAAAAAAAA//8A/v7+/P3++/39/P3//Pv9/P3//Pz///0A/v//BP7//wIA/wAA//8AAAH+//8C/gIAAwAA/wAAAf4A/wH/AAEAAQAAAP//AAAAAAAA/wD///8AAQAAAAAAAP///wAAAAAAAP//AAEAAP8BAQD//wD/AAAB////AAAAAAAAAP///wAA//8AAQAB/wEAAAD/////AQEA/wEAAQAAAAAAAAD/AP8AAAAA/wAAAAABAAD+AAAAAQAAAf///v///v8A//4A/gIAAQAAAv8AAAABAAAAAP///////wAA/////wD/AP4B/wD//v//AAH/AAEAAP4B/wD+//8BAAIBAQABAf//AAEA/wD/AP///////wAA/////////v8AAAEAAf///gD/////AP//AP///wAA/wD/AP8A/v//Af///gAAAgH/AP7+/gICAv8A/gAAAQAAAQD/AAAAAAD/AAABAAAAAAD/AAD/AP8AAAABAAEAAP//AP//AAEBAf8A///+/wAAAAAAAQAA/wAA/wAAAP8AAAD//wD/AQAA/wAAAAEAAP8AAAABAAD/AP8AAAD/AP8AAQEAAP8A/wABAAAAAQAB/wEAAf//AP8A/wEBAQAAAQH/AP4BAAD+/wACAgEAAQAAAf8AAQH//wAAAQAAAAEAAAABAP8A/wAAAQAAAQEAAP8B/wAAAP//AAAAAQAA/v///v39/fz9+/7+/f8AAQAAAAABAgEBAgIDAvv4+fz/+wMHAwECB/r3/fv7/QAB/QH8+vPx9Ozu+fD+Befx8PH2+f3+/gIBAvv9A/D1+hQdCRIXFgoNDwQGCv8CAgH/AQD/AQAB/gAA/wAAAQEB//8A////AAAAAQEB////AAEBAQAAAAAAAAABAAABAAAAAQEAAP8BAAAA/wAAAf8B///+AP7+/vv7/Pv6+vn6+Pr5+fr6+fz8+/39/P7//v8BAAICAAICAAQCAQICAQMCAAEA/v///fz9AQL9AQD7//7+/f8CAAIBAAABAgAAAP//AAAAAAD/Af///fz9/v3+/v39//79//79AP/+Af4AAAAAAAQA//4AAAEAAAAAAf8AAAD////+//8C/wEAAQD//f4CAgIAAAABAAAAAQAA////AAAAAAAAAP4A/wH/AP8AAAD//wAAAAAAAAD/AQD//wAB/wH/AP8AAAEAAf////8AAP//Af8A//8BAAAB/wEAAAAAAAH/AP8BAAEA/wAAAQAAAAAAAAAAAAD//wD/AP8A////AP8A//////////////8AAAABAAEA/wD+AP4B/wH//wD//wD//gD/Av8A/wD/AP7+/gEBAQL/AAEA/v8AAAD/Af////8BAAEAAQAAAAAA/wAAAP///wD/AP/////////+//4A/wD///4BAAH+AP4A///+/////v/+/////////v//AP///wIBAP79AQIBAf4BAf0B/wP//v7/AgABAAL/AP8A//8BAP//AQD//v//AAAAAAAAAQAA/wEAAP8AAP//AAAAAP///wAAAAAAAAAAAAD/AP7/AQAA/wD/Af///v8AAAAAAf8A/wAAAAD/AAAAAAAB/wD///8AAAAAAAAAAP/+AAABAAAAAAH/AAABAAH/AP8AAQABAAEBAP/+/wAAAAAA//8AAQIA/wD+AP8BAAEAAf//AP8AAAD//wAAAAEBAAEAAP8BAQEBAQD/AQEAAAD///////8AAAD//wD+/v8A/wAA/wEBAQH+//7/AP0CAgIGBgj4+AUFBQf/CP79/Pv9BPwAAQP/+fn8+/j9/wH8Aw3z+vzy9/v8/v0DAv8BAAEA/wH7/gATFhEoMC0TFRYQEhUFBgYBAAEAAAH/AP//AAEBAP//AAAA/wAA/wAA////AAAA/wAAAQAB/wH/AAAAAAAAAAABAAABAP//AQEBAAAAAAAAAAAA/gH////9/v/6+vr4+Pf4+Pf4+ff7+/n9/Pr+/fsB//0CAv8BAAIBAf8CAwIEAgECA/8CAf8CAf4BAP39/QEA//7//wIBAgH/AQD/AAIA//8AAAAAAAL/AAD+/gD/AP7+/v////8AAAABAQECAQEAAAD+AAAE//8A/wH//wD+//8AAgECAQD+AAAB/wABAf8A/f79AQEAAQED/wD/AP8A////AAD/AAAAAAAAAAD//wAAAP8BAQD//wAAAP8AAAEAAQEB/wD/Af8BAAD///8AAAAA/wAB//8AAQAA/wABAAABAP///wD/AgEA/wAAAAAAAQD//wAAAAAA//7+AAAAAP///wAAAAAA/////wD//wD/AAEAAQAA//7//wABAQAA//////7/////AAD///8A/wH/AP8A/wH+AP8B/wD/AAEBAP8AAQEAAf8AAAD/AP8B/wIBAP//AQAA////AP///v//AP/+AP8A/////wAB////////AAD////////+//8A//7//v/+AQABAAH//v//Af7+/gICAv//AP/+/wAC/v/+AgAAAAABAQAA//8AAP8AAAD/AP8AAQEBAP///wD/AAAA//8AAAAAAAABAAH+//7/AAD/AAEBAP4B/wD+/////wAAAQAAAAAAAP8AAAD/AP8AAAD///8AAAD/AAAA/wAAAQD///8BAAD//wEAAAD/AAAB//8AAAEBAAAA/wD/AAACAP/+/wAAAAAAAAAAAP8A/wD+AAEBAf8AAAAAAAEAAAAAAAABAAH/AAABAAD//wABAP8A/wAA//8AAAABAP//AAABAQEBAAABAQEC/v4BAQD/AAAA//79//3/BgYIAQD/BQQG/f37+/r7AwP5+gH2AgUGBAYBEwUS9PwH7/f4/Pz4A//9/f39BwcEHiEbNTg0Gh0eFRcaDAwOBAED//8CAAH+AP8AAAAA/wEB//7/AAAB/wD//wAAAP//AAAAAQAAAAAAAAAA/wAAAQEBAAAA/wEBAQAAAAAAAAAAAP8AAAAB///+/v38/fz7+vr6+vr6+/v5/P36/f37/v77AAD+BAIA/wICAwIBAwMCAwIBAwIABAIBAgQBAAIAAQH+/wEB/v7+AQABAQEBAQD9AAAA//8CAAH/AP8BAAD///8BAQEBAgH//wEAAQEBAQIBAf7+AQD/BP8A/v////4AAAEB/////wABAv//AQD+AP8CAwQDAwEAAf////8A/wEAAAAAAAD/AP8AAAAAAAAAAAAAAAAA/wAA/wAAAAAAAAD/AQAAAAAAAAAA//8AAP8AAAD/AAD//wEAAAAAAAAAAP///gEAAAH/AP8AAAEA//8B/gAAAgD/////AAAAAP///wAAAAAA/wD///8A//8A/v///wAA/wD+////AAEAAP8A/wD///7+/f7+/v3+/QEDAv////8A/wEAAQD+/v8CAAH+Af8AAQD/AQAAAP8AAAH/AQH+/gABAf8AAP8A/wAA/gD///8AAP7//gD/AAD//wAAAQD//////v8A/v8A//7//f///v/////+/v8BAQICAAEBAAL/Av///wH/AP8BAAH///8A/QAAAgAAAf8A/wAA/wD/AAEAAP7/////AAD/AAD/AAD/AAD/AAAA/wD/AAABAf///wD///8AAP/+//8AAAEAAP//AAEAAAAAAP8AAP8A/wAAAAABAAD/////AAAAAP4AAAEA/gAAAAD/AP8A/gEAAf8AAQEAAP//AAEAAAAAAAABAQD/Af8AAAH+AP8A/wABAP////8A/wIBAQD/AQABAQAAAAD/AAAB//8AAAH///8AAP8A/wD/AP8A/wD///////8AAP8AAAEAAQAAAQABAgEA/gEAAAIBAQQCBP8EBwEAA/4F/gYG/woK/f4P/AH/AP3+APz5/AkPEAsQDOrp6fXz9AEDAxobGyYmJhcZGhASFA4PEAUFCAEAAQAB//8AAQAB/wD//wD/AAEAAP///wD/AAEAAQAB////////AAEBAAEAAgEA//8BAQEA//8AAAAAAf8A/wEAAAAA//7///7+/vz9/Pv8+/z7+vz6+vr7+vz8+/39+/7++wAB/QICAAECAgIDAQUCAwQDAQMDAQMBAgEDAf8CAgECAgECAQEAAAEBAAEBAAEAAQEBAf//AQABAgAAAAD/AgD+////AAAAAAEB/wEBAAEBAAABAQH//wT/////AQAA//4A/wH+Af8C/wD/AQEBAQD//wIAAAEAAf8AAAAA/wD/AQABAAD/AAEAAAD/AP8AAAABAAAAAAD/AAD//wABAf8A/wAAAP8AAP//AP8AAP8AAP//AAD/AP8A//8AAAEAAf8A/v//AQABAAABAAEAAAEA//////8AAQD///4AAQAAAP//AAEA/////////////wAAAAAAAAD/AAAAAAD/AP7/AAAB///+/wL+/v3/AAP//v7+/v0CAQH/AQH/AQAC///+AP4BAgMA//8AAAAAAP//AAD/AAD/AP8B/wD/////AP8AAAD//v7//wAA/wAAAAAAAP//AP/+/////v/+//3////+/v//AP4AAAAB/////gD+AgD+/v7+Af4BAQIA////AAAAAQIAAAD///4AAAAAAAAAAQD//v////8AAP8AAAD/AAAAAAAAAf///v///wAAAAAAAAD//wD///7/AAAA//8AAQH/AP8AAQEA/wAAAAABAAIA////AP8A/wEAAP//AP8AAAD/AAAAAP8AAAEA////AQABAP///wH//wD/AAAAAAAA/wH/AAAAAAH/AAEAAAAA////AP4BAAH/AAABAQD///8BAP//AQEA/wAAAQAAAP//AAABAAD+AP8AAP8AAP8AAP8BAAACAQD/AgEC/wIBAQD7/v0BAQABAwIC/gQEAwACAwUBAAACAQEBAAECBAEAAAD+/gABAAATFxYcIB77+/v8+/0AAQIJCQsLCw0MDQ0HCQsEBAYAAAIAAAEA//0A/wAAAAAAAAEAAQABAAD/AP8AAAAB/wD+AAEAAAABAf8AAAH/AAABAQEBAAD/AAEBAAH//wAAAP//AQEA/wD//v78/fz6+vr5+fn4+fj5+vj6+vn8/Pn9/vr///wAAP0CAgEBAgEEAgMDBAICAgEDAwECAgICAwH/AgEBAQIBAQEBAgIAAAEBAAACAAIAAgIBAAIAAQL//wACAP/6/f0C/wIAAQAAAP8AAP///v8BAQD/AQEEAAAA////AAL/AAAAAf8A/wH/AAD///8AAAAAAAEAAP8AAf8AAAH/AP8B/wEAAAAAAAD/AP8AAAD/AAEAAAAA//8AAAAA//8AAAAAAAABAAD//wAA//8A//8A////AP8A/wAAAf//AAEAAAEBAAD//wAAAP8AAAD/AAAB/wH+Af8BAAAA////AAD/////////AAD+AAD/AAD/////AAAAAAD/AAD///////79AAIE//7+/v79/v39/gMC/v4D/gL/AP7+AQEB/gIAAgEBAP7//wD/AQEBAAAAAAD//wAAAP8B/wD//wAAAP8A/v//AAAAAAD/AP///wAAAP///v/+/////v/+AP8A///+AAD+AP///////wABAQH+Af4B/gH+/gH/AQH/AgH//gAAAf7/AQAA/wD/AP8A/wAAAAD//wD///8A/////wAA/////wD///4AAAAAAAD//////wD/////////AP//AAAA////AQABAP8A//8AAAAAAP///gD/AAD//wAA/wEAAP8BAAD///8AAAEBAQAA////AP8AAAAA/wEAAf8A/wAAAAAA////AQADAAEAAAAA/wD/AAAAAAABAP8A/wH/AAABAQD//wAAAf4A/wEAAP8AAAH/AAEA/wAAAQD/AAABAAEBAAD+/wAAAAEBAQEAAwMD/P0AAgIC/gICAv/+AQIBAQADA/8AAAEAAgEAAQECAgICAQEAAwMCAAAABAUIBwkBAQEBAAABAgIDBgcIBwUHBAYGAgIDAAEC//8BAAD/Af8A/wEAAP8BAAAAAQD//gD/AP8AAf8B/wD/AAAAAAAAAAAB////AQIAAP8B/wAAAAAA/wD+AP8A/wEAAP7//////f39/Pr8+vn6+vn6+vn4+vn4/fv5/fz8/vz8AP8AAQEBAgEAAgIBAwMBAQIAAwMBAgMDAgICAgIBAAICAAIAAQECAgICAQABAAABAQAAAAECAQEBAQAB/wAB/v8AAwAA/v8A/v//AQEAAQEAAQIAAP0AAAABBP///wAAAQD+/wECAQABAQD/AQD/AQAAAQACAAD//wABAf8B/wD/AAEB////AAEAAAD/AAEB/////wD/AQABAQAAAAAA/wD/AAABAAAA//8AAAD/AAAAAQAA////AAAAAAAAAP8AAQD/AAAA/wD//wD//wABAQABAgAA/gD/AP8A//8AAAH/AP7//wD/AAAA//8A///+AAAB//8A/wD//gEAAAH///7//gD/AAD////+/////v8A/v/+/wAD//7+/gEAAQADAQEAAP/+AAAB/wAAAP///gEBAAAAAP8AAQAB/wAAAP//AP7//wD+/v8A/wD/AAD/AP///gAA//7+/////f///////wD/AP//AAAAAQD/AAAAAP//AP//AP7+AP8CAAD/AP//AAAAAAAA//8AAAAAAAD/AP8A/wD/AP7///8A//8AAP/////+/v////8AAP/////+/wABAAD/////AAAAAAAAAP///wABAAEAAf///wAAAAD/AP8AAAAAAAD/AAAAAAD/AP8A/wD/AAAAAAD///8AAQD/AAAA//8BAQD///8AAP8AAP///wAAAQEA/v8AAAAAAQEBAAD/AAAAAP8BAAH/Af8A/wAAAQD/AP4B/wEAAAEAAAAAAAD//wD/AQABAf///wEBAQEBAgH//QIBAQACA/7//gP///8CAwEB/gIC/gMDBAEB/v8AAAD//wECAgICAQICAgICAwIBAwIDAwICBAIDBAQDBQMDBAICAgECAgIAAQABAAAA/wAAAP4A//////8BAAH+AQAB/wAAAP7+/wD/AAAAAAABAAD/AAEA//8AAP8A/wEBAP//AAEAAAEA//8AAAAAAAABAQEA//8A//7+//z8/fr7+vr6+vn6+fn6+fr7+vz8+//9/AD//gECAAT/AgEBAAICAgMCAQICAgICAQIDAQIBAQICAgABAQABAgICAgICAgAAAAABAQEAAQAAAQEAAgAAAQAAAQAAAAEA/wD//wIBAv4A/f7///8A/wAA/v//AQQAAP///wEBAf8A//8AAP8AAf//AP8BAQABAAABAQAAAAD//wABAAD///8AAAD/AQAAAQAA/wAAAAD/Af8B/wAAAQD//v8BAQD/////AP4A////AP7///////8BAQD/AAAA/gAAAf8AAAD///8BAP8AAf//AAAA//0AAAAAAQAAAAAA/gD/AP8A//8A/wH/AP//AAD/AP8A/wAB/v/+AP///wAA//8AAP//AAAB/////v/+/v7+/f//Av79/f4AAQIC//8A/v//AP//Af4C////AQEA/wACAQABAgH///8A/wH/////AP/+//0A/////v8BAAH//wAAAP8A/wAA//7+/v7///8AAP8A//4A//8AAP8BAAD/AQEB/wH/AAEA/wD///7+//4B/gACAgAAAAIA//8AAQEA/wD/AAD////////+//8A//////////////7/AP///wAAAQH//wD/AAEBAP///wEA//8A//8A/wD/AP8AAQAA/wEAAQAA/wAA/wD/AAD///8AAAAA/wABAAD///8AAAAAAf//AAABAP////8AAQEAAAAAAAABAAH/AP/+//0AAAABAAL/AAIA/wEBAAAAAAAAAQAA/wD/AP8AAQD//wAAAAEAAAAAAf8BAAIAAQAA/wABAQEAAQEA//8BAAIAAgAB/gADAAEAAgADAwH//wEA/wMEA/38/f4AAAACAQEAAgICAQEDAwQCAgIDAwQDBAYDAwQCAgIBAgIAAAEAAAAAAQAA/wD///7/AAAA/wD/AAAAAAAAAAD/AQAAAAD/AAAAAAH/AP8AAAH/////AP///wAB//8BAAD/AP8AAAD/AQAAAAABAQH//wAA/wAAAQD////9/Pz7+vr6+Pn4+Pn6+fj6+vn7+/r+/fz//v0BAP4CAQD/AQECAgEDAQIBAQEDAQIBAQIBAQIBAgIAAQECAgEAAwICAQEAAQEBAQEA/wEBAQEBAQIAAAEAAAL//gEBAP8BAQEBAf4AAAEAAP8AAP8A/wD//wH/AP4E/v7/AgL+//8C/gD/Af7/AgEAAAEBAAAAAAAA/wABAQAAAf8AAAH//wD/AAD/Af8BAAEA/wABAQAA/////wAAAf8BAAAA/v/+AP//AAD//wD/AAAAAAEBAf///wD+Af///gH/AP8AAAAAAAD/AQAAAAD/AAD//wAAAAABAP8AAP8AAP8A/wD/AQAA/wD+/wD//v/+AP//AP//AAD/AP////8A///+AAAAAAAA/gAAAQD///4A//4A/v4AAv8AAP8A/v8BAv8A/v4AAQH//gAAAAD/AAAB/wMCAf4A/gEBAQD/AP///v/+///+/v7+AP8AAgEB/wAB//7+/v/+//7//v7+AAAAAAD+AP//AAD//wAAAAABAP8B/wEBAf8B/wH//////v/+Av8A//4CAAL/AP8B////AAAAAP///wD/////////AP/+//8A///+/////v//AP8AAAEA/////wAAAQAAAAD/AQAAAAAA/wD/AP8A//8AAAAAAAAA////AAEAAP//AAEAAP7/AAAA/wAA/wD/AAAAAP4BAAEA/wAAAAEAAP//AAACAAAA/////wD/AP8AAQEB////AQAAAAAA/wABAQD///8AAAD/AAEAAQABAQAAAP8A/wD/AP//AQH/AAABAAEAAAEBAP8A/wAAAQMBAP4CAgIA///+AgADAAABAQAA/wAFAP//BP/+AP8AAQICAQEAAQIEAwICAgIDAgMCAwIEAAEAAAABAQAA/wD/AAH/AP8B/wAAAAEBAP7//wAAAAD//wAAAP8AAQAA/wABAP///wEAAP4AAAAAAAAAAP8AAf8A/wAAAAD/AP8AAAEAAP//AQEB////AAABAAEA/wAB/v4A/P39+vr7+fr6+fj4+Pj5+vr7/Pz7/v38///8AAD/AgH/AQECAgIBAgMDAgEBAgIAAgIBAgECAgABAAEBAQECAQEBAgIBAQECAAABAQECAAEBAAEC/wACAQABAQAAAP7+AAEAAf8C/wD/AAEAAAAA/wAB/////v7/BAD/AP7+AAIC/wEAAf8AAP8AAAH/AAD///8B/wD//v8AAQAA/wH/AAAA/wAAAP8AAAEAAAAA/v8AAAEBAQD/AP7+/wEBAAD/AQAA/v8A/wEAAP8AAQD//f///wABAP///wAA/wD/AP8AAAEAAP4A/wEA//8B/wD/AQABAAH/Af///wEAAAAA/v//AP////8A/wEAAP8AAP8BAAD+////AP8A/wAAAP////8AAAIA//7//v7//v3//QH+AgL+/v7+/gEB/f//AgABAAD/Af8AAQEBAQEAAf//AP4BAAD+//8B/wD//////v7+//7+/gAAAQD/AP8A///////+/v7///////8A/wAA/wH//gAA/wAAAQAA//8BAQD///8A//////4A/gH/Av////8A///+AAAA/wAAAP///wEBAf///v7+/////v//AAD//////v4AAAD/////AAH//wAAAAAAAP8AAP//AAD//wD/AAAAAP8A////AQAB/wD///8AAAD/////AAD/AP8AAAAAAAAA/wAAAf///wAA/wD/AAAA/wEAAf8AAQAA/wD/AAAA/wAA/wABAP//AAD//////wEBAQAA//8BAAEAAP8B/wD/AAAAAAEBAQAA/wAAAAD/AP4A/wAAAAIBAQH/AP8AAAAA////AQABAQEAAAAAAgIB/gEDAwICA/8AAP/+/gMAAAABAQIAAQICAgECAgICAgABAQEAAQECAQAAAf////8AAAAAAAD/AAAA/wD/AP8BAAABAAD+/wAAAAEAAP8AAf8B/wD/AAEAAAEAAP8B//////8BAAABAP/+AAD+AP8AAAABAAAAAAAAAAAAAAAAAAD/AAAA//7//v39/Pv7+/v6+vj49/n5+Pn5+Pv7+vz8/P39/f7/AAEBAQEBAQECAQIBAgICAQMCAwICAQIBAQEAAQECAgABAAEBAgEBAQABAgEBAQEBAwAAAgABAQEAAf8BAf//Af8B//4AAP4A//wB/v//////AAAAAQD/AAAAAQEAAQT+//4B/wH/AQH/AAD//wL+/v8CBP8AAAAA//4AAQIBAAD/AP//AAAAAAAAAAAAAP4B/wEAAAAAAQAA/////wAAAQEA/wD/AP8AAP8A//7+AAABAAAAAAH/Af4BAP//AAAA/wD/AP8A/wEAAQAAAAD/AP///wAB/////wAAAAAAAAH/AP4A/////wD/AP///wAAAP8A//8AAP///wD/AAAA/wEAAAAAAQAB/wD/AP8A/v7+/vz+/QP+AgL9/f0CAQIBAAEAAAACAAEAAQEAAP8AAAABAf8A//8AAAEAAf8A/wD//wD//gAA/v///wAAAP/+AAAAAP///v7+///+/v4AAP7///////4AAP8AAAAAAAABAAAAAP4B/wH//v7/AgD+/gEBAP4AAAD/AQACAgEAAQAAAAEAAAD+/v7///7+//////8A/wD+//4AAP///wAA//8AAAD+AAEA//8AAAAA/wABAAD+/wAAAP///wD/AAAA////AAD///8AAAAAAAD///8AAAAAAAD/AP///gAAAP8AAAAAAAABAQD///8A/wAAAAH/AP8AAAABAAAAAAAA/wAAAP7/AAEBAP4AAAAAAAAAAAH/AAAA/wAAAAAAAAAA////AAABAAD/AAAAAAABAf//AAAA/wD/AQAA/wAAAf8AAAABAQIA//8AAgIAAAEB//8A/wD/BAICAAH+AAACAQECAgIBAQIBAQEAAP8AAAH/AP8AAAAAAQAAAAAAAAAAAAD/AP8AAAAA/wD///8AAQAA/wAAAQABAP8A/wD/////AAAA//4AAP//AP8BAAD/AAEAAP//AAAAAQAA/wAAAAABAQEA/wAAAQEAAP/+//7+/f78/Pz7+/r4+ff4+Pj4+Pb6+vn8+/n9/fv9//3+AP4AAgABAQMBAQABAgIBAQABAQABAgECAwIBAQEAAgEAAQEAAgEAAQIBAAIAAAMAAQIAAQIBAAEAAQAA/wEAAAEAAAD///////8A/v//AP///////wD//wAA////AAAE//39AAMC//4B/wMB//7+AAIC//8AAAD//wH/Af7/AAICAAD//wAAAAD/AgAA/wAB/wD+/wAAAQAB/v8BAQABAP8B/gD9AP/9/wD/AAAAAAAA/wAAAAD/AQAB/v/+AAAA/wAAAAAA/wD///4AAQH/AAABAAD//v8AAAD/AAAAAAD/AP///wH/AAH/AP//AAABAAEA//8B//8AAQAAAP8B/wD/AAAAAP//////AQAB/wH//v/////+/v7+//79/f4CAQEAAgIA//8CAP8AAAH/AAAA/wH/AAD/AAAAAP4AAAH//wAA/////gD/AP8AAAAA/wD+/wAAAP8A//////7///8A/wD///8AAQEAAAAAAf///wEBAP//AAAAAP/+/v4AAAEBAQH+AP4BAgH9/gACAQEBAAD/AAAA///+//8AAP//AP///v//AP7+/wD///8B////AQAAAAH+/wAAAQAB/wEAAP8AAQEA/v4AAAAAAf8B/wH/AP//AAD/////AAABAAEAAP8AAP8AAAEAAQD//wAAAAAAAP8AAAAB/wABAQAAAAD/AP//AAEBAAAAAP8AAAEAAP8BAP7+AAEAAAEA/wAAAP8AAQICAP8AAP8BAAEB/gD/AP8AAAH////+Af8AAAIC/wAAAQD/AP8AAAH/Af8CAAH//wABAAAAAAABAQAAAAECAAL/AQABAAAAAgAAAAABAAEBAAAA/////wEAAQH/AAAAAAAA/wD/AAABAQD//wAAAAAAAAEAAP//AAEA////AAAA//////8AAP8A/wD//wD+AP8AAAAAAf8A/wD///8AAP//AAEAAP///wABAQAAAAEAAP8AAP8A/wAA//8A/v7++/v7+Pj39/j2+fn1+fn4+vr5+/v7/v77/v/8/gD+AgEBAQEAAQEBAQEBAgIBAAMBAQEBAAAAAAEB//8BAQICAAADAgEDAAEBAAEAAAACAQABAAAB/wAAAQAB/f8A/v/+/wAA//4A//8B//7///8A/////wAA/wAAAP8ABAAA/v//Af8BAQD//wABAAAAAAD//v4AAQH+AAABAQD///8A/wD/AAAB//4BAAEA//8AAAAAAf///gAAAv8AAAAA/gD//wAAAQAA/gAAAAAAAP8A/wD/AAAAAAAAAP8A/wAA///+AP8BAAEAAP/+AAAAAAABAQAA/wAAAAD//v8AAAAB/wD/AAAAAP//AP///gD/AQD/AAH/AP//AP8AAP//AAAAAAAAAAAAAP8A/wD/AP/+/v3+/AH+Av3+/AH+Af4CAf7/AQL//wAA/wAAAAAAAP/+AAEC//8AAAEAAP/+/////v///QD+//8A/wD//wAAAf///wD//gD/AAABAQAA/wD/AAEAAP//AAD//wABAQD//wABAP///gL/AgABAf/+//8B/v8CAf8BAv///gL/AQABAP//AP///wAA////AP7////+//8AAAD+AP8A/gD///0AAQH//wEAAP8AAAEBAQAA//7/AAAAAAAA//8AAP7//wAAAP8AAP//AAEA/wD/AQAAAP///wAAAP8AAf8A/wD//wAAAQAA/wEAAf8A//8A//8AAAH///8AAAAA////AAD/AAAAAP8A/gD//gABAgEBAgAAAAD/AAABAf////8A/wAAAP//AAEBAP8A///+/gAAAAEBAQAA/wAAAQEB/gEBAAD+AQAAAAAAAAAAAAEB/wAAAf8AAAAAAAAAAAAAAP7+/gECAgEAAQD/AP8AAAABAQAAAAH/Af8A//8AAAAA/wAAAP8A/////wAAAAD/AP///wAAAAAA//8A/wD/AAH/Af4A/gD/AP4AAP///wH/AAD/AAD///8AAAAB/wABAf//AAAAAf8A/wD/AP/+/vz9/Pv7+vn5+Pn5+fn5+fr6+vz7+/79/P79/f///wEBAAABAQABAQECAAABAQABAgEAAQABAf4BAQMBAgEBAwEBAgEBAgABAgEAAQAAAP8A/v8AAgEAAQD+Af4AAf///v3/////AP7+AP//Af//AP//AP/+/wD/AP/+/////gT+//8C/wAA/gD/AQAAAP////////8AAP8AAAEAAP7//wAAAQD/AP8BAAEB/wD/AAEAAAABAAAAAQEA////AAAA/wD/////AP4BAQEAAP8AAAAA/wAA/wD/AP8A/wEA/wEA//7/Af8A////AAAAAP8AAAAB/wD///8AAf//AAAAAAAA/v//AAABAP////8AAAAAAAAAAP//AP8AAP8AAAAAAAAAAP////////8AAAEBAQD+//0B/gH9/vwC/gL+/wP+/v7+/gMBAAAAAf8AAP8BAQIAAP8AAAEA/v/+AQAB/////wD//wD+//8AAP8A/wD/AP//AAAAAAD/AAD///////////8AAP////8AAQAAAP8AAAAA//8AAAD///8A//8AAf///wD+/v8AAP4BAgH+AP8B/wH/AP//AP8A/wD+/wD/////AP7//v//AAAA//////8AAP//AAD/AAECAAD/AP8A/wEBAf//AAAA/wAA//8BAAD/AP8AAAABAAH///8BAgAA/gAAAAAA/wAAAf8B/wD/AQEA/wD//wAAAf8BAAEA/wABAP8A/wD///8AAf8AAAD//wEAAQAAAAD/AP8B//7/AAAAAP8A/wEBAAIAAQD//wAAAAABAQH+//4A/wAAAP4BAQL///8CAQAAAQAAAAD//gEAAf4BAAD//wEBAQAAAAAAAAAAAP8AAAD/AAAAAAABAAIAAAD///8AAAAAAAAB////AQD/AAEBAAAAAP8AAAD/AAD+AAAAAAEAAAAAAP8AAAH/AP7///8AAAD/////AP8AAAD/AAEBAP8AAAH/AP8AAAAAAQAAAAEBAP8A//8AAQEAAP8A///////9/v79/Pz6+fr6+vv7+vn7+vn7/Pn8/Pv9/vz///4AAAABAAIBAAABAQEAAAEBAQABAQEAAAIAAQECAQL/AAABAQAB/wABAgEA/wEAAAAAAQEA/wAAAAH/AAD/AP/////+/////gD9/v8A//4A/wEA//8AAP7/AP8AAP8BAQABAAEE/////////wL/AAEA/wABAAAAAAAAAAD/AAAA/wAAAAAAAQABAQAAAP4A/wH/AQAAAAD//wECAf8B/wAAAP/+/wAAAAAAAAAA////AAD/AAAAAAAA/wD/AP8AAAACAQH+AAABAf7///8BAAD/AAAA/////wD/AP8AAP8AAAH//wAAAQD/////AAAA//8AAAAAAP/+AQAAAAD/AAEAAP//AAAA//8AAAABAP8AAP///wH/AAEA/gD8AQEC/gL+//7+/wH+/v7+AAH9AgD/AQAB/////wH//f7/AQEAAP///v//AP7+/////wD/AP8AAAD///8A/wAA//7/AP/+Af///v//AP8A/wEAAAAAAP8A/wD/AAAAAP8AAAEA/gD/Af/+Af4CAQD+AQIBAP8A//8AAAAA/gD/AP/+/wABAP///wD///////8A/wD/AP8A//8AAAAB/wD/AP8AAQD//gD/AP8BAQH/AP8A////AAD//gAAAP8A/wAAAAAA//8AAAAB//7/AAEAAf8A/wAAAAAB/wAAAP//AAAAAAEAAAAB//8AAAAA//8BAAD/AAEAAAEB//7/AAEAAf8BAAAA/wAB/wAAAP7+AAEBAAED//7+AAD//wAAAAEAAf8AAAEBAQAA////AAD+AQAAAAEBAP8AAAEA/wAAAQAC/v//AP//AAAA//8AAQEA/wAA/wAAAQAA/wD/AAD/AP4AAAEAAf8AAAAA/wEAAP7/AAEB/gAAAQAA/wAAAAAAAAH//wAAAP8BAQAAAAD/AP8AAAD///8A/wAA//8A//8AAf///wAAAQAA/wABAAH+AP8AAQAAAAAAAAEAAAD/AAABAAAA///+/f38+vr6+vr6+vn5+vr6+vr5/Pv7/P36/f39/v//AP//AAIAAAEBAQEBAAEB/wAAAAECAQEAAAAAAP8BAAICAAAB/wAA/v7/AgL/AAAB//4AAAEBAQAA/wD//v///////v4B//////7//v7///7+/v7+//3/AP//////////AAAABAD/AP/////+//4C/wEAAP8AAP//AAAB/wD/AAAAAAEBAQD///8AAAEA/wAAAP///wAAAAEA/v7/AQABAAAA////AAEBAAH///8AAAAAAAAA/wD/AAD/AP8AAAD///8AAAAAAQAAAv8B/QH//////gAA/wD//wABAAAAAQAA/wAAAP///v//AAAAAAD//gAAAQAAAP8AAP//AAAAAP//AP///wAA//////8A/wAA/wD//////wAA/wH9/P4DBP/+//0B/gD9/gAA/QACAAEBAgAA/wAAAAIB//8A/wD///8A/v8A//7//v/+/////wABAAD/AAD//wAA//7//wEAAAEAAP8AAP/+/wEAAAABAAAAAf8A/wAA/v8A/wIAAgAAAf7//gD/AQD/AQD/AQH9Af8BAAAAAP8AAAAA/v///wD/AP4A/wD/AP///wD/AP//AAEBAQD/Af8A/wAA////Af8A/gEBAAD/AAD/AP8A/////////wAAAf8AAAEAAP//AAEA/wAAAP8AAf8AAAD//wD/AAAAAAAAAAD/AAAA////AAAAAQD///8A/wAAAP//AAEAAP/+/wAAAf8AAP/+/wABAQD/Af8A/wEA/gEB/wABAQABAQD/AP///wAA/wABAP//AAACAAABAf7+AAEC////AAAAAQD//////wABAAD/AAABAQAAAAD/AAAA//8BAAAAAQAA/////wD/AP8AAAD/AAAB//8AAQIAAAAAAf4A/wAAAAAA////AAAAAAD/AP8A////AAAA//8AAQD//v//AP8AAAEAAf4B/wD+AP8AAAEAAAAAAf8A/////wAAAQEAAAABAP8AAP8A//7/AP39/fv7/Pr7+/r7+/v8+vz9+/z9+v7+/P7//f/+/wABAQEA/wAAAP//AQECAgEBAf8AAQAAAgEAAgAAAQD/AgAAAv8AAQABAQD/AgACAQEBAQAAAP//AAAAAP/+//7/AP3+/v7+/v///gD//////gH//wD//wAA/wIAAP8BAf8B/wT/AP4BAAIAAAAB/wD/AP8A/wAAAgAA/wD/AQABAAAA/wD+Af8BAAEA/wAA//8AAAEAAQD//wAAAP8A/wABAQEBAAD/////AAAA/wAAAAAAAAH//wAAAP8BAAD/AAEB////AP//AP8B/wD/AP8A//7/AP8A/wAA/wD+AP8CAQH/AP8A/wEAAP8A/wD/AAEAAP8AAAAAAAD/AP7//wAA/////wD/AP4A/gAAAAD/AP8A////Af/9/f3/AAEC/Pz9AvwAAQIBAP0BAQEAAQICAP7//wH+//4AAAEB////AP7///8AAAAA//////8AAP///gAAAQAA///+//7///8AAQEAAAAAAAACAAD/Af//AAAA/wD/AP////8BAAD9AP4B/gEAAQIB///+/v0AAAIAAQECAAH/AAAAAAAAAAD/AAEBAP8A/wD//wAA//8A/wIA////AP///wAAAAD//wD+AP7/AP8A/QAAAQABAAAA/wD/AP//AP4A/wEAAAL+AP8A////AQAB/wAAAAEAAf/+/wAA//8BAQAAAAH///////8AAAAAAAD///8AAf8A//8AAAD/AAEAAAD/AP7/AAL/AAEA/wH//v4AAAEAAv7+/wEB/wAAAAEAAP8BAQEAAAH///8BAQH//gAAAQAAAQAA/gH/Af8BAf8AAQAA//4AAAH/AAABAAD/////AAAAAQEA/v8AAP8AAAEAAAEAAQD/AP8AAAEA/wAAAf/+/wAAAP8BAAD/AP8AAAD/AP8BAAH/AP8A/wD+AP8A/wD//////wD/AAAAAP/+/////wD/Af8A/wAAAAAAAAAAAAAAAAEAAP//AAEAAAAB/////wH//v/8/P78/Pz8+/r7+/j7+vn8/Pr9/fv+/v3//v7/AP8BAf8AAAEAAAEAAQAAAAD/Af///wH/AAH/AAEAAQIBAAH/AQEBAAEAAAH/AAAA/wAAAAD///7//wD/AAD+///+/wD+/v7+/f///f///////gD///4A//8A/wD///4AAAAAAP8EAP8AAAAAAP8A//8AAv8AAAAAAP///wEBAQD/AAAB/wD/AAAAAAAAAAAA/wAAAAH/AQABAP8AAAEAAAAAAP//AAAAAP//AAAAAAD/AP8A/wAAAAAAAP8A/wAAAAD//wAA//8A//8AAAAAAP8A/wAA//8AAQD+AAAAAQEB/wAA////AQABAAAA/gD/AQD/////AP8AAAEA////AAAA///////+AAH//wEAAP8B/wD/AAD/////AQAA/v79/P77Av0EAAECAQEAAf4BAQEC/wID/v//A/7+/wL/AAAAAAAA///+AP///wAAAAAA/v8AAP//AP////8A////AAD/////AP///wD/AAAA//8AAAAA/wD/AP8AAP8A//8AAAEAAAL//wD+//4B/wID/v//AgAA/v8AAQEBAP8A/wH/AAAA/wABAAAAAAD+/wABAAD//wD/AP8A/wAAAP///////wH//////wABAf///wAAAAAA/////wD/Af////8AAgH//gAAAf8A/gAAAQD+AAAAAP8AAP8A/wAA///+AP///wAAAAD/AQACAAD/AP7/AAEB////AAD/AQEA/v8AAAD+AAAB/v7/AAEA//7+AP0AAAEAAAAAAQAAAgEA/v8A/wABAgEC////AQIBAP8B//8CAgIAAAAB////AAH/AP8AAAD/AAD/AP8BAAEB/wAAAAD/AQAA/v8AAQEAAQAAAAD/////AQECAAAA//8AAAD/AQAA/v8AAAAAAAEA/////wD/AAAAAAABAAAA////AAAAAAAAAP7//wD//////wAAAP8A//7/AAAAAQH/AAAAAAH/AQAAAAAA/////wAAAP8A//79//7+/v3+//////7+/v38/f39/v7//v/+AAD/AAD/AP8A/wEAAQAA/wABAAD/AP8CAAEB/gAAAP8AAv8AAAAAAP8AAQEB//8B/gD/AQAAAP///wD/AAAB//4A/v8A/f3+/f7///7//f3//////f7+//4A/v//AP////8A//7+AQAABP8AAP///wADAQABAQABAAABAP8AAAIAAAAAAP///wEBAQEAAQD///8AAAEAAAD/AP8A/wEAAQAAAAAAAP8A/wAAAf8AAAD///8AAQAA/wABAAD/AAAB/wD/////AP//AP8A/wABAAD/AP8A////AP///gAA/wEAAQABAP8A/wABAAD//wD//wAAAP/+AAAAAP8A/wD/AP//AAAAAAAA//8AAQD/AQD//v8A/gD//wAAAQAA////AP/+/v79/f0C+wEBAgEBAQEBAgECA//+AQUAAf8CAP/+/wEA/wABAAAA//////////7+/wAAAP///wD/////AP8B/wD+//8A/wD//wABAAD//v8AAAD///8AAQAAAAD/AQAB/gD/AAD+/wAC//8A//7+/QMBAv4AAgEAAAABAAAAAAAAAP///wAAAAD//wD/AAD///7/AAD//wAA/wAAAf////8A/wD/AAD//wAA//4AAAD//wAA//8AAQD///8AAAD//v3/AAAAAP8B/wAAAQAAAAD///8AAP//AAD//wABAQABAAD//wABAv///wAAAAABAf8A/wAAAP///wAAAAABAP/+AP7//QH/Af7/Af///wIAAP///wABAgAA//3/AAABAAAAAf7+AAABAAH/AgEBAAEB/v39AgEC/wAAAgABAAD//gAAAQEBAQAA/gEBAgAAAAAAAP8A/wAAAP8BAv8A/gAAAAABAQAA/wAAAP//AP///gEAAP8AAQABAAD/AQD//////wIBAf8BAP////8A/wD/Af8A//8A//7//wAA/wD/AP8BAAABAAAAAf///wD//wAAAf8B/wEA/wAAAAD/Af8A////AP8A/gEBAAEBAQICBAICAwEAAgD//wAAAf8A/wAAAAAAAAD/Af8BAAEAAAD/AQABAQAAAQEAAAEAAAAAAP///wH///4A/wEBAQD/AAAAAAAA//8A/wAAAP7/AP7+///+//7+/wD+//8A//7+///+///+///+//8AAAAA/wEBAP/+/wQA//8BAAEAAAABAQEAAAAA/wAAAQEAAQABAAH/Af8AAAAA/wAAAAAAAAD/AAD/AQAB/wD/AAAAAAABAP8AAAD///8AAAAAAQEAAAAA/wAA/wABAQD//wEBAAAAAAAAAP7/AAAA/wD//wAAAAAAAP8A/wD/AQAAAAAB/wD/AAAAAAD///8AAP8A/wAAAf8A/wAAAAAAAAAAAAD///8AAQAA//8AAP//AP8AAAD/AAABAP8AAAAAAP///////v7+/v3+/vz+/gH+/gIA/f0DAwD+/gACAQIAAAABAP///wD/AP////////////////8AAAH//wAAAP7//v7/AP8A//8A/wAA/wH//wAAAQD//wABAP8AAAD/AP8B/wAAAAAAAf8AAP8AAP8AAAD+/gABAv8AAAAA/wAA/wAAAAAA//8AAAD//////wD/AAAB//7/AAD//wAAAP4AAAAAAP////8AAAAA//8A/wAAAP///wD/AP4AAAD//wAAAAAAAAAAAAAA/wABAQD+AP4A/wAAAP8AAQEAAAAB//8AAQEAAAAA//8A/wD/AAAAAP8AAAAAAAAAAP///wH/AP////4AAAD9//4B/wEAAAD+AQABAAAA/v3/AQAAAAEA/gAAAgABAf//AAEA//8AAP8A/wEAAf///QEAAf8AAP8AAP8AAAECAgEBAAIAAP4AAAH/AP7+/gABAP8BAv//AQEAAAAB//8AAgEAAAEA////////AAAAAP8A/wEAAP8AAAAA/wD+AP////8BAAAAAAD/////AP////8AAAD/AAAAAP4A/gAAAAD/AAD//wABAAEAAAAA/wD/AQAAAAD/AP//////AP8BAQIDAgMDAwIFBAQFBQYFBQb6+wX9/fz+AAIAAP7/AAAAAQABAAEA/wD/AQACAAAAAAD/AAD/AAAAAP8CAAH/AAAA//8A//4AAAEBAf//AAH//wD+///+/v/+/v79//7//wD+/////f7+/v7+//3+/////////wD/AP7//wD/AP8EAAAAAAAAAP8B////Af8AAAAAAAAAAAD/AAABAP8BAAH/AAAAAAAAAAD/AP8BAQAAAAEAAAD/AAAAAAAAAAAAAAAAAAAAAAD/AP8AAAH//v4AAgAA//8AAP8A/////wAA//8AAP8BAP8AAAAAAP8AAAABAf//AAD//v//AQIC/wD/AQEA////AAAA//8AAQD/AAAAAAAAAAAAAAEAAP8BAQEA//8AAAD/AP8AAQAA/wD/AP7//gD/AAAA/f38AQIBAQEBAgEB/AECBAABAQAA/QMBAP4AAAEA/wEAAAD/AP4A///+/gD///4AAAD/AAD//////////wD/AAD/AP/+//8AAAABAP8AAAD/AAD//wAAAAABAP8AAAIA//8AAAAA//8A/wAAAAEAAP/9//4CAgICAP8AAAAAAP8AAP8AAAD+/wAAAAD/AP///wD///8AAP///wAAAAAA/wD+AP8A/wAAAP/+AAAB//8AAP8AAP8B/wD//wD/AAD//wAAAQAAAAAB/wAAAAAAAP//AQEB/wD/Af8B/wAAAAD/AP8AAAD+AAABAAAAAP///wAAAAD///8AAAH+//4A/wAA//7+AQD//wABAAD/AP8B/wAAAAD///8CAQD/AP8B//4A/wH+AgED/wEAAAAA/wD/AP4AAAH+Av8A/wAA/wEAAQAB//4C/wD+AAAAAAAA/wD/AQAB/wEAAP8AAP/+/wAA/wEBAf8AAf//////////AAABAQAAAAD/AAAAAAAB/wEAAf8A//////8BAAEA//8AAAH/AP//AP8AAAH///8A////AAAAAAD/AP8A//8A/wD/AQEA//8AAAABAAH/AP//AQD/AgIBAwQCBQUFBgcHCPsJ/fz9/Pz7/v79/v///f78/wD/AgAA/wEBAAEAAAAA/wAAAP8AAQAA/wD+AP8D/gH/Af/+AQEC//8AAAEA/v4BAAAA/v8A/v8A/v7//f3+/f7+//8A/v3+/v7//v7///8A//8A/gD///8AAQAAAAAAAP8ABP8AAAABAAEBAAEBAQECAQEBAAEBAAEAAQABAAD//wAAAP8AAAAAAAEAAf8BAAEAAAAAAAAAAAD///8AAQAB//8AAQAA/gD/AP4AAAD//wEBAP7//wAAAAAAAP8AAP///wAAAP8A/gABAP///wABAQEA/wAAAQAA/wEAAf///wAA//8AAAD/AP8AAAEB/////wAAAf///wAA/wAAAAAA/wD//wAA/wAA/wABAP///////gAAAAD///7//wEB/v38AAEAAAEAAAMAAAEAAAEBAQEBAAAAAgICAv8AAAD/AP8A//8A/wD/AP///gAAAP8A/wD///4A/gD///7//wAAAAEA/wAAAAEAAAAA/wAAAAAAAQD/AAABAAD/AQEAAAD/AP8AAAAB////AQABAAAA////////AAEBAf///gIAAAAAAQAA////AAD/////////AAABAAD/////AAD/AP8BAAAAAP8AAf//AP8AAAAAAf7//wAAAP8A//8AAAAA//8AAAEAAQEAAgABAQAAAP///gD/AP8BAQD//wAAAAEAAf//AAAA/wAAAP///wAAAAAAAAABAP//Af///gD/AAAAAP//AP///wAAAAEA//8BAAD/AAAA//8AAQAAAAAA////AP8A/wAA////AQIBAP///wD///0BAAD/AAABAQAAAP4C/v8AAgD//wD//wAAAAEBAQECAQAA/gD///8BAQEA/wD+Av//AP///v//AP8A/wEBAgEA/wABAAAA///+AP8AAAAAAAD/AAD//wAAAP//AP8BAAAAAAD/AAD/AAD/AP8A/wD/AAD/AAAAAP8A/wD///8AAAAB///+AAD//wABAAMBAQQEBAUFBgkHCP/9/v//AP7+/gD/AP///gD9Af79/AAB/wH/AQAAAP8BAf//AQEBAP8BAAD/AQAA/wEBAf8AAQD//wAA////AQIBA/8A////AP7+//3+//3+///+//7/////AAD/AP///v39/v///wAAAAEAAP//AAAAAAAAAAT/AAD/AAH/AQABAQEA/wEAAAEBAAD/AAAB//8BAQAAAAEBAAAAAAD/AAABAf8A/wEA/wABAP//AQAA/wD/AAEAAAD/AAEAAAABAf///gD/AP//AAAA/wAAAP/+AP8AAP8A/wABAAH///8A/wAAAAD/AAEBAAAA/wAAAQEB/wAAAQAA/wD/AAEA//7/AAH/AAAAAP8AAAD//wAAAP8A//8AAAAA/wAAAAD///8AAP4AAAD/AAD/AAAA///////9APwAAAAAAAL/AAEBAQIBAQP/AAEEAAAAAAAAAAABAQD+/v8AAAD///////8A////AP//AP////8AAP8A/wAAAAD/AAEAAP8A/wD/AP8CAAH/AP4AAAIB/wD/AP8BAAEAAQEAAP///wAAAP4AAAABAAL+//8BAQAAAP8AAAD/AAAAAP8AAAD/////AAD/AAAAAAAA/wD//wAAAAD/AQAAAAD//wD/AAD/AAD//wAA/wAAAP//AAD/AAD/AP8AAAAAAP//AAAC//0A/wH/AAAAAP8BAAEA//4AAQAA/v//AQEA/wAAAAAA////AQAA/wD/AAAA/wAA////AAAAAAD//wAAAAAAAAAAAP//AAEA/wD/AAEAAP8BAAD/AAAA/wABAAH+AP4BAAIBAP//AAH//v7/AAABAQABAQAAAAD///8A/gIAAP7+/v8BAQEBAQD//////f8BAQAAAQEA////AAECAv7/////AP/+/v8BAAD/AP4AAQEBAAAAAAEAAQAAAAAA/wABAAAAAP//AAAAAQAB/gD+AAD/AP//AP//////AP////8B/wEAAP//////Af//AP4A/v7//wEBAAAB/wADAgIFAwQHBgYA//8AAAAAAAD//f4BAAABAQD3+ff8Avz+/f3/AP7/AP8A/wD/AQH//wIA/wH/AAECAP/+/gEBAgAAAAAAAAEBAAD+AP8AAAD//gD//wD///////8AAP/////////+/wD+////AP8AAP///wACAAD//wD/AP8BAP8E//8AAAAAAQEAAQEAAQIBAQEA/wD/AQAB/wD/AQABAAEAAAAAAP8AAAAA//4AAAEAAQD//wAAAAAA/wD/AP4A/wEA////AQAA/////wAAAP//AAEBAP///v/+////////AAABAQD/AAD/AP//////AQEAAAAA/wAAAAD+AAACAP8BAAD/AAD/AAD//wD/AAAAAAAA////AAD/AAD/AAD//wAAAAD+////AP//AAAAAQAB////AP//AAAB/v/+Af3+AAH9Af39AAEBAgIDAgIDAAEB/QAA/wAAAAD/AQEBAP8AAP/+/v8AAAD/////////AAAA/wEAAP8A////AgEBAQAB/////wEAAP8A/gH/Af//AAH//wD//wD+AAABAf4BAgEC/QH9AQECAgIB////AQH/AAD/AAABAP8A/wAAAAAAAP8A/wH///////8A/wD/Af8A/wD/AAAB/////wAAAQAB//8BAAAA///+AAD/AAD/////AP///wD+AAAAAAAAAQH//gAAAQAAAAABAAAA/wD/AAAB//8AAQAAAP/+/wABAP8AAAEBAP8AAAAAAP8A/wD/AAAAAAD///8AAAAA//8AAAAAAAABAAAAAP//AAAAAAD//wD///8BAAEAAAEBAP8AAAD9AAEC//8AAAEB///+AP8B/wAAAP7/AAD/AQEAAAAB/////wABAP//AQEBAP8AAAEAAQABAAEAAQEC/v8AAP///v/+/////wAAAAACAQAA/wAAAQIAAP8AAP///wAAAAABAAH/Af8AAf8B/wAA/wD//wAA/v/+//4AAP8A/wD//wAAAP/+///9///+///+AAD/AQEBAAACAAAAAQAAAwICBgUGAQAAAAD//v/+//7+AAH/AAABAwED+Pr4+wL8/v78//79/wAAAAAB/gABAf8AAAD/AP8BAgIBAP4B/wH/AQAA/wD/Af/+AAAB/v8A//7/AP7///8AAP8BAP8A//8A/wD+AQAAAQEC//7+AgAA////AAAAAf8A/wABBAEAAQEAAAEBAf8AAAAAAAAAAAAAAQAA/wEBAAAAAAD///8AAQD/AAAA/wAA/wD/AAAA//8BAQD+AP8B/wAA///+AP8A/wABAAD/AAAA//8A/wD//gD/AAD/AAD/AAAAAQD///8BAAD//v8A/wAA////AAAA/wAA////AQD//wAAAAAA/wD///8A/wAA/wAAAAAAAAAB/////wH///8B/wD+Af//AQAA/wAAAAAAAAD//wAA/wABAP/+/gD/Af4A/wD8/v0A+/8BAAABAgECAwMAAQD/AQAA/wABAQAAAAABAQH+//8A////////AAAA/wAAAf///wEBAAAAAAD/AP8AAP8AAAH/////AAEAAP4AAQH//wAA/wAAAQAAAP8AAP4A/wIBAv8AAP7//wH/AAAC////AAEB/wD/AAABAAAAAQEAAP7+/gEAAP//AAAA////AP8A/wAB/wABAAH/AP//AAD//wAA/wEA//8A/wD/AAAA/wAA/gD//wAA//8AAP7+/wECAAIAAQAAAQABAQD/AAABAP//AAABAP8AAAD//wAAAQD/AAEAAP8AAAAA////AAAA/wAAAQD///8A/wAAAP8AAAAA/wD/AAAAAP///gAAAP8AAAD//wD/AQAC/wAAAQAAAQAA/wD//wABAAD+//8BAP/+/wAA/wAAAAEB//8AAQEAAf///gH/AP8BAgEBAAD///8AAQEBAAAB////AQEBAP////7+/gEAAQAB/gAAAQAAAf/+AAD///8A/wD/AP8BAAAAAAH/AAL/AgAA/wAAAP////8A//7///79/gAAAAAA///+/v/++/7//QD+/wECAAICAgEBAgEAAQEBAgICAAUEAgD/BP7+Bf0HCAD/AAD//wIAAQICAgMEA/n6+Pv8A/z8+/7//QAAAAEAAgEAAQAA////AP8AAAAAAAD/AP///wABAAEAAAAA////AP7///4A/wEAAP4BAP7///8A/wD/AAAAAQAA/wEBAAD+/wAAAQAAAP8BAP8AAAQCAQECAgIAAAEBAAEAAQAAAgEAAAAAAAH/AAABAAAAAAAA//8AAAAAAP///wABAf//AAEA/wAAAP8A/v//AP8AAAEB////AAAB//8AAP8A//8A/wD/AAAAAQAA/wABAAD/AQD///4B//8A////AAABAAAAAAH/AP8A/wAA////AP8AAP8AAP//AP8A/wAAAf8A/wD//wAAAQD/AQAA/gD/AP//AP7/AP4A//8AAQD/AAD/AP8A//8AAP//AP8AAAD9/v3//P8DAP8AAAECAgMAAQIAAAIAAAIAAQABAQEAAAEAAP8A/wD///4AAP//AAABAQH/AAAA/gEBAAEAAAIAAf8BAQEA/wAAAP///wAAAAD/AP8AAAABAP8AAAEAAQAAAAD///4AAAH/AAEB//8B/gAAAQAA/gABAQAA/wEBAAD+AP8AAP//AAH/AP////8BAP///wEAAAABAAAAAAEBAf////8A/wAAAP////8AAAD///8A/wAAAAD//v//AP8BAAAA/gH+AQABAP///wACAAEAAAAB/wD/AP8AAAH/AP8B/wH/Af8AAAAA/wD/AAD/AP8BAAD///4BAAD///8AAAH///4AAQAA/wAAAP///wAAAAD//wAAAAAAAAD//v4CAgEAAAH///4AAAH//v8A/wEB////AP8A//8AAQD//v7//wABAgMAAAD/AAABAP3//wEAAAAAAP8BAQEAAP8BAgEAAQD//v8AAP//AAD//wABAgABAAAAAAAA//////8AAQD+/wAA/wACAQD+Af4A/gD////9//7+///+//7//v/+/v4A//7//fz+//3//v0A//8AAgADAgICAgMCAgMCAv8BAQIAAf8CAgAEAwIHBQQA/wf///8AAQEAAQIDAwMCAwMD+vn6AQL8/fz9/v0BAAAAAAEA/wAAAf/+/gABAQABAQD/AAEC/wH/AQH+//8AAP//AP///wD+/wD+//8AAAAAAAH/AP7/AP8AAP//AAEAAQD/AAEAAAAA/wAB//8EAgEAAQEBAQABAAEAAQABAf8AAQAAAAEAAP///wAAAAAAAAABAP//AAAA////AAAAAAAA/wD/AAD///8AAQAA/wD/AAAAAP4A/wD//wAAAP//AP8BAAD//wD/AAAB////AAD+AP/+AP8A/wD/AP//AAEBAAAAAP8A/wD+AAH/AP//AAAA//8AAAAAAP////8AAAEAAAD/AP7/AAH/AAEAAP//AQEA//8AAQIB/v8A////AQAA/v8AAAAAAAAA////AP///v7/AP0BAAH8/fz7AQECAAMBAP8CAAIAAAABAgACAAEAAP8AAAD///8AAAH/AP8A/wAAAQAA/wAAAQH+AP8BAAAB/v//AQEBAP//AAAAAQAA/wAA/wAAAAD+Af8C/gD/AP8CAQEAAQH/AP///wH+AQECAAAA/wABAAAAAQD/AAABAAEA//7+AAAA/v//AgAAAAH/AP4A/wAAAAD/AAAAAP///wAA/wD/AAAA/wD/AAEA/wAA//8AAAEA//8B/wD/AP//Af///wECAQEB/wABAQABAAD/AAD/AP8AAAAA/wH/AP8A//8AAAAA/wD/AAAA/wEA/wAA/wD//wD/AP/+/wAB//7+AQAAAP8B/wD/AP8A/gD+AQABAQEBAAAD//8AAAD/AP///wH/AP8AAP/+/v8BAP//AAAAAQH//v8AAQH///7/AP8CAAEBAAAAAAD+AAABAQEAAAEAAQEBAPwAAAEAAAAAAAAAAAAAAAEA//3/AQABAQIBAgIC/wAA///+AAAA/wEA/v4BAf//AP///v/////+/f7+/v78/v7+/f39//38/v7+AP/9AAD/AAEAAv4A/wMBA//+/v/+A/8CAQADAAAAAAD/AgEBAwQDBf////8HAQABAgECBAMEAgMCAwMEAwME+/v7/P38/P38///+//8A/v8AAQAAAAD///8AAAEA/gAAAAD+//8A/wD//v8B///+AAAAAAAB/wD///8AAAAA////AAABAQD//wACAQAA/wAA/wEAAAD/BAECAgIBAQEA/wEAAAD/AP8AAP8A/wL/AP8A/wABAAH/AAAA//8AAf///wEAAP7/AAEB/wD/AP8A/wD/AP4AAAD//wABAAEAAP8AAP///wAAAAEB/wD+//8A/v/+AQAA/wAA/wD///3//wEBAP8AAP///wAAAAEAAAAA///+/AABAP//AAD/AgAA/wAAAAAA/v/+AAEBAf8AAAAAAAD/AAAAAQAAAQAAAP///wD/AAEAAQD//wAA/AAA/gAA/wAAAf8AAP///gD+/QL9/f0B+wABAQD/AAADBAD9AgECAf8A/gECAgEBAAD/AAAA/wD/Af8BAAAA//7//wEBAf8AAP8A/wH/AQAA////AAEAAP//AAEBAAAA/////v///wAB/wH/Av8A/QABAQIBAgIAAAEA//8A/AAAAgAAAQABAf//AQAA/gD+AAAAAAAAAAD//v8AAQD//wAAAQAAAAAAAAD///8BAAD///8AAQD//v//AP///v8AAP///v8AAAD///8A/wAAAAAAAf8A/wIA/wAB/wEAAv8A/wD/Af8A/wAAAAD///8AAQEBAP//AAAA/wEAAP7/AAD/AP4A///+/wAA/wAA////////AAAA//8A/wD+AAAB//8BAAEAAgAA//8A/v/+AAEAAP//AAD///8AAAAAAAAA/wD/AP7//wABAP/+AAEB//8A/gD+AAAAAP8AAAEBAAD/AQEAAAAB/wEAAQAAAAABAQAA/wEAAwAB/v8AAQEBAQH+Af////8AAAAAAAAAAAL/AP8A//7////+/v////3+/P39/fz9+/z7/P79/P7+/QD//gAA/wECAgIBAQABAAEBAgAAAQL+//4CAQEB/QD/AAAAAAAB/wMCAf8EAwEAAQICAgMDAwQFBAMEAgQDBAQDBPkD+vv7+gH8+v39/f39/AEA/v8A/wAAAAAAAAAA//8A/wD+AP8A//4AAAD/AP7/AAAAAQAA//8BAf8A//8AAf8BAAD+/wAAAP8AAAH/AQD/AAAB/wABAQQB//8A/wACAQECAAH/AP8B/v8AAQEAAP8AAP8A/wH/AP//AAAAAP8A/wD/AAAAAAD//wD///8AAP//AAAA//4AAf8A/gH/AAAAAP//Af8A/wD/////AP////7/AAEB/v8AAQD///8BAAAA/wABAAD/AAAAAAD//wAAAAAAAAD///7//wAA//0AAAEAAP4AAAEAAP8AAAMAAAAA/wEAAP8A/wD//wAAAAD//wEAAAAAAP//AP//////AAAAAP8A//8AAAAA/v////z9/wEA//8AAAEA/wH///8BAgIB/wIBAQEC//8CAQEBAgIAAAEA/wAAAP8AAAEA//4AAAD/AAAAAAD/AP//AAAAAf8A/wH/AP/9/v4AAAAAAP4AAAH//v/+AP4AAQAA/wIAAv4AAAACAAEA/wABAv8AAAD//wAA//8AAAEBAAD///8A////////AQAA/wABAf8A//8AAQH/AAAA/v//AAD///8AAAD/AP8AAP8A/wD//wD///7/AAAA/wAAAQD/AP8B/wD/AP8BAAH/AAAAAAAAAAABAAH/AAAA//8B/wAAAf8AAAAA/wD/AQAA/wD/////AP//AP8A//////8AAP8A/wH///8AAAAA//8BAQIAAAD///////0AAQEBAAH/AAD//wABAAD/AAABAAD//wAAAP///wAA//8AAAD+//8CAAL/AAD//v//Af8BAAABAgH+/wAAAAABAQEA/wABAgAAAAEBAP0AAQEBAQD/AAAAAP8A/wIAAQABAAEAAAABAAAAAP/+/v79/v3+/fz7+/v7/Pv9/fr8+/v//v3/AP8BAAABAgAC/wIAAgP/AQEBAAD//wD9AP8A/QABAAEAAAEBAQIAAAEAAQEEAgIBBAEBAgEDAgIDAwIDAgMCAgMEBAUEBfj5+gUC+gL7+/z7/AL8/fv+/v3/AP4AAAAA/wEAAAAAAP///wAAAP///v8AAAAA/wAAAAEB//8BAQD+AAD//wABAQD/AAAAAAD+AAAAAAD//wABAQAEAAEBAQEBAP8AAP8AAAAA/v//AQD//gABAAD/AP///wEAAP8AAAD//wAAAAAAAP8AAAAA/wH/AP//AAAA////AAAAAf//AAD//wAAAP//AQAB///////+/wAAAQD//wAAAP//AAAA/wD/AAAAAAAAAAD/AAABAAH/AP//AAABAP8BAf/+/wD//wD+AAD/AQAB/wAAAP//AAAAAAAAAAAA/wAAAAEAAP8CAQH///7/////////AAD/AP//AP8B/wD/AP8A/wD+//3//wAA/v/+/v//BP7//gT+AgMDAgEDAQICAAL+AAIDAv8BAAABAQD/AAABAP//AAAA/wAA//7/AAEAAQAB/wD/Af8A/gD/AAAA////AQEAAP8B///+AP8B/wAAAAEAAQH/AP8AAAABAAAAAAEB//8BAf8AAAEAAAAA//7+AAEB//////7/AAD/////AQAA//8AAAEAAf//AAAB////AAH/AQAB/gD/AP8A/wAA/gD+/wD//wAAAAD/AAABAP//AAAC/wEAAf//AAAB/wH/AAAAAQAAAAEAAf8A/wAAAAH//wAA////AAAAAP4BAAEAAAEAAP7//wD/AP////7/AP8AAAD+/wAAAAABAAEAAAD/AQAB/wD/AAAA/////wABAP8AAP8A/wEAAP8B/wH/AP8A////AAAAAP8BAAH/AP///gD9/wAA//8AAP8A/gD/Af8BAP//AAIBAf8BAP8AAP8BAQH/AAABAQEBAgIBAP8CAAIBAAD/AAEAAf8A/wAA/wAA/v/+/f39/P35+vn5+fn4/P37/v38/v78AQAAAAD/AgICAQACAAAA//8AAQIBAf/9/f4AAP8AAAD/AAABAQACAgIDAwMDAf8BAQECAgIBAQADAgQCAgEAAQABAAEBBAQEAwQDAwQEAwQE+/v6+vr5+foC/P38/f38/v/9//8A/wD//wAAAQABAP8AAAAAAP8AAAAAAAAAAf8A/wEBAQABAQECAAD/AAAA/f//AQAA/wIAAP8B/wAABAABAf//////AP3//wL+/gABAP//AQH/AQAAAAABAP//AAH///8BAAD/AAAA//8AAAD/AP8B//8AAAH/AP///wABAAEAAP///wEAAAABAAD//v7/AAAAAP////8AAAEAAP///wAA/wD/AP8A/wABAQD///8AAAEA/wAA/wD//gAA//8AAP8AAAAAAAD/Af8BAAEAAQAA//8AAQD//wAAAQAAAAAAAAAA/wAA/wAA/wAAAAAA/wAAAQAAAQD//wH/AP7//wD/Af/////9/gEBAP//AQEBAgD/AP7+/gMD/wIABAEAAgAA/wEB/wEBAP8AAAD//wABAAD/AAD//wEBAQD///4B/wEAAP7/AAAA/wAAAAD/AP////8A/wD//wAAAP///wEAAgAA/gD+Af8CAv7/AAEAAAAA//8BAQD+AAABAP8A///+AAAA//8A//8A/wAA//8AAAH+AQAAAAACAQAA//8AAAD+AP8A/v8AAAD/AAD/AAD/AAABAQEA/v//AQAAAAAAAQD//wEAAQABAAAAAAH//wAAAQABAAEAAf8A/wAAAP//AAAAAAAB////AAD//wAAAf8AAP//AP///wD//////v//AAAA/wAAAQEA/wABAQAAAP///wAAAAAAAPdzIT4AAAEkSURBVP//AAEB////AP//AQH/AAEA////AP8AAAD+AP8A/wEBAf//AAD//gAAAAAAAv7//gD//wABAf8A/wD//wD9AQEBAQAAAAEBAQD/AAEBAv8AAP7/AAEA/wD//wABAQH/Av7//wD///7///3+/Pv7+fn59/j59vv6+////v7//QD+/QECAQIBAQD//wD//v8B/wH/AgH+AQABAAAAAAD//wAAAAEBAAEBAgD//gD//gICBAICAQEA/wECAQEAAAEAA/4FAP8AAAECAQABAQECAgIDAwMDAwEBAgABAgL8+/v7+v3+/P39/f///gD//wAA//7//v//AAD/AAAAAAAA/wABAAD/AP/+/wEAAP8AAP8AAAEBAAAAAAEBAQAAAP8AANqqSyU+EaMBAAAAAElFTkSuQmCC\\n\",\n      \"text/plain\": [\n       \"<IPython.core.display.Image object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Time elapsed: 5.742\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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AgD9Av3+Av/9//7+/gD9///+///9/vv6+vj99vkA9/39/vv7Bff9Bvj6Bfn+BAADBQUBAAH///8AAQABAQABAP8AAQD/AAD/AAEAAAAC/wAA/wD/AAH/AQAA/wAAAAACAQEBAQD/AAD///8AAQAAAQH+AAD/AAD/AAD+AAAAAAAAAQAAAQEAAAD/AAAAAAH/AAEAAf//AAD//wD/AAD/AQABAAEAAAEBAAAAAAAAAP8AAAAAAAEAAAAA/wABAAAAAAH/AP//AP//AAD/AAAAAAAAAAD///8AAP8BAAEAAAEA/wAB/wAAAAAA//8AAAEAAAAAAQEA/wACAAAA/wAAAAEAAQEAAAAA/wAAAP8CAAAB/wABAAABAAACAf8BAAAAAP8B/wABAAAAAQD//wD/AP8BAP8AAAAA/wAAAAAAAAEA/wAAAAEAAAEAAAEAAAEA/wEAAAAA/wAA/wAAAAAAAP8BAAAAAAAAAAAA/wAAAAABAAAAAAAAAAH/AAAAAAD/AAEA/wD//wAAAAAAAAD/AAEAAP///wD//wD/AQABAQEAAQD/Af//AP8A/wD/AP8B/wEBAP8A/gD///7///8AAf//Af///wAA/wEAAQEBAAAAAQEAAQIAAAH//wD/AAD//wH//wEBAAAAAAAA/wD//v8AAAAAAQAAAP8AAAAAAAEAAQH/AAAAAAAAAAD////+AP8A/wD/AAAAAQAAAAACAAABAQAAAQH/AAADAgEEAAAnHRpMRkL59vj07/P07PD9+fkBAP8EAwMB/v4CAPz/Af4CBAIFBwQCAgEEAgMD//4JBQQMCQgJBwX+/foA/vr89/X++/v9/f//AAAE/wEIBAQFAAIB/wAAAP7///0CAQAFBQUCAgIAAAD+/wAA/wAE/wD/AQAAAAAAAAAAAAABAP//AAEBAQD/Av8ABv/+Bv36A/77/P38/f7+/v39////AAABAAAAAP8B/wAAAQEBAAD/AP8BAAEAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAgABAQQB/gQA/P77AQEAAAD+/gEA+QL89wT+9AH8/Pz///oE/gYA+gP7+gD4/AH8/QH+AAEA/wEA/wH/AP//AQAAAAD/AQD/AQEBAf//AgABAQAAAQAAAQAAAP//AAAAAQEBAAAB//8AAAAAAAEAAP8AAAH/AQAB/wAAAQAAAAAA////AAAAAQD//wAAAf8BAP8AAQEA//8AAAAAAAEAAQD///8AAAEAAAAA/wAAAAAAAAAAAAAA/wD/AAAAAAAA/wAAAAD/AAAAAQAAAP8BAAD/AAEA//8AAQEB////AAH/AAAAAAAA/wEAAAAAAAABAAAA/wAAAP//AAAAAAAAAAAAAAD/AAAAAAABAAEAAP8A/wD/AAAAAQABAAD/AAAAAAAB/wAAAAH//wABAP//AAAAAv8B/wEAAP8BAAD/AAAAAAAAAAEAAAAAAQAA/wD/AAABAAD/AQAAAAAAAAAA/wD/AAAB/wAAAP8AAAAAAAAAAAAA/wAAAQABAAD/AQAA/wD/AQEA/v8AAQAAAAAAAQEA/wD/AP8A/wD/AgACAP///wEAAAAAAQABAAAAAAAA/////gD+AAEAAf8AAAEAAAAA/wD///8AAwABAf8A/wAB/wD///8AAQEBAAD//wAA/wL//wD/AQAB/wAA/gAB/gD/AAEBAAEA//8AAP//AP8AAv8B/wAA/wAA/wD+/gAAAQEAAQAAAAABAQD/AP8A/wAAAAEAAAAAAAAAAgAABAH/Fw0KV1BHEA0H8vD0+PH1/fj+BgYJ/gD++vz7AAD/BQACBQMBAQIABgoK+fz++/r8AwQF+/n9+/z6/P78//77BAMB/fr6BwIDBQIB/QAABAMDAAEA/wAAAQEBAf8AAwICAgIC/v3///8A//4A/v3+/wABBAAAAQAAAAAA/wAAAAAA/wABAAAAAAAAAAEBAAEC/QED/vwC/v/8+/wA/P3+/P/9AAD+AQADAAAAAAEBAP8AAAEAAf8AAAH/AAABAAAAAAAAAAAA/wAAAQAA/wEAAQICAf8EAfoF/vr++v8C/f8CAPwCAPX/+/L//vYAAPwE/gQA/f7+//4B/f3//QABAv/+/wD//gEAAAAAAAAAAAAA/wAA/wAAAQD//wEAAQEAAAEAAQEA/wEAAAEAAQEAAAAAAAAAAAABAAEAAAAAAgD/////AAABAAEAAQAA/wD/AAAAAAEBAf///wAAAP8A/wABAAAAAAAAAAEBAP8AAP8AAQACAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAQEBAAAAAP///wABAQEA/wABAQD/AAEBAP8AAAEAAP8AAAH/AP8AAAAAAP//AAEBAAAAAAEAAAEAAP8AAQAA/wD/AP8A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AAAAAf///wAB/wABAAAAAAD/AP8BAAAAAf8A/wEAAAD/AQABAAD/AAABAQAB/wD/AAAA/wEBAf8AAAAAAAAAAAEAAP8AAP////8A/wAAAQABAQAA/wD///8AAAEAAAAA/wAAAAAAAAEAAP8AAP//Af8A/wEAAf8A/wD/AAEAAP8BAP8AAAD//wAAAQAA//7/AAABAAAAAQEAAP8AAAAAAAAA/wEAAQAAAP8AAAEAAAEAAAEBAQABAv0AAAAAAP///wABAAD/AAAA//4AAQAAAAABAQABAAAAAP//AAAAAP8AAQEAAAAAAQD/AAAA//8BAAD/AP///wAAAP8AAAABAP//AAEAAAAAAQEA/////wEA//8A//8A/v//AQD//wABAP///wEAAgAAAAAAAP8AAAEA//8AAQAA/wAAAf8B/wABAP8B/wAAAQAAAP8AAP8A/wEBAv8A/wD//wAA/v8A/wD//gAA/wAA/gEB/wEAAAIAAf8BAAAAAAIBAQP//gUDAv7+AAABAgsGA09LPz09M/Hv7e7p6/bw8vr2+v79AQABAQIBAgEA///9/QcGBP39+gADAP79AAACBAQEB/8A/wIEBP8AA/3/AgIE/AAC+wIEAf/4/wD9/QAAAPr5+goPDxAQDPTr8/3+/vz7/f39AP//AP79/v//AQAAAAAAAQABAQID/v7+AQECAwQAAQD/AAABAQAAAAAAAAAAAAAAAAEAAAAAAAL+//77//7/AgH//fv+/Pr+/P3+/gEA/wEAAAEAAQD//wABAAAAAQAAAP8AAQEBAAAAAAAAAAAAAAEAAP///wAAAf8BAAEBAAAB/gECAAACAfz+Af7///n9AP39AQD9AAMAAfwCA/sCAvf+AP8GAfoIC/oED/MDC/4AAQEAAAH+AAEDAAAAAP8AAAABAAAAAAAAAAAAAAABAAEA//8AAQIAAAAAAP8BAAAAAQD///4AAAEAAf8A/wEBAv//AAABAP//AAAA//4AAAEAAAD/AAEB////AQAAAAD/AAABAP8AAP//AAEA/wAAAAAAAP8BAAL+//8BAQD/AAABAf8AAAAAAAAAAP//AP8AAQAB/wEAAQAAAAD/AAAAAAAAAP8AAAABAAEAAQH//wAA//4AAAEBAAAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAP8A/wD/Af//AP8AAAEAAAABAAAA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BQUE/P//AwUD/v78BgYE/v38+ff9Dg0MDxoZ//oQFhALNjEvJyMk+/n68/HwAP77BAIA8/Lx8fHv+vr2/v/3AP3/BAUFCg4SAQIF+/wABQUA/QD//gD/BAUDBAYIAAEC/v8B/wAA+/wA/QAB+gMHBREaAggP+vPx/ff0/vn3AQD7/fz9//3//Pz8/Pr7/v/+AQD/AQEA/wIA/f8AAQcECg4LBQQACgcGDg0O/AUFBwYFBwIACP7//f77+Pr2AAH9AgYEAQMCAfr4APv3APv4//v6BP8ACAABAv//AAAB/QICAP///v4C/wECBP8DBwAE/gEAAv8ABAEBAv779AD++QL//QEA9gD68f3w9PkC/wb98/4JGwMLGP4HCAMJDQD8EgABDQD/Bf/9/QD++QD8+QABAgECCP8BBQD+AQAB+wD88wAC/wD4Av4AAvT/Bt38CO3yABTn+hcg+xAW8AYI6PXt5vDx7f3/9wAF/AABAgD+AAEBAf////8AAAAAAP8A//4AAP8B//8AAAABAQD/AAAAAQAAAAAAAAAAAP8AAAAAAP8AAAAAAAAA/gD/AQEBAf//AAAB/wD/AAEA//4BAAD/AP8AAP//AQEC////AAEAAf8AAAACAQAA//8A//8A/////wAAAQD//wEAAAEAAQAAAAEBAP8AAAAAAP///wAB////AQEAAQAAAf8B/t/j4+Ti6hUpHvwA9wD69gwHCAD9+f/7+P/8AP3//wL//woIB/39//3/Af///P7+AgACAgEC/wD//wABAP79/f7+/QD//v/9/vz//v79/AH//wAAAAEBAf39//7/Av///v0AAwUIDAwB/vX//f/+/v7+/QD6+QkD/wYKDwcZFefu8wsLBvb39u/w9P4AAgEEBQ0SDAD///f19f79/P37+vb28////BMXExkdIQ4REwcICf//AAD///8A/v8DAgAAAgEABQH//v0A/P8BAgECAQECAgQGBwQFBAIEAv8B//39AP8BBP4B/wADAQUE/wIDAQUFBv4AAP4AAQQDAfv7+gsJDA0NDgUGBgoICQwKBQkD/yokHyIeHQD9/vn29AP//f/9/P7+/PPx8/z4/AQCBAUEBgkMDAoLBwcKCAMECvz//wAFAgEFBwAABPv9Avv8//z9/P3//////QEDBQMICgX8/QD9AAECBgIECP4GCPjv7vz69AAA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AAAAAgH/AAAA/f4A/QAAAQH8/v/+6f/87/354P/xHAHuLADwL/fwI+z9FgXv/e3W1fDm4v369f3+9QAAAwL//v8A/AAAAP8ABAD/AgEBAQL98//63//x/AD78wIHHgAGFAEIEP8KDv8GCf/9+wACBv8EDAACBwD9+QIB/wAB//8A/wAAAQAAAAAA/gAAAAD++v8F/v8EBAQMAQ0TEAQKE/8DCvz+Avr/Bf8CCgD+B/r0+/f3/fr+BfwABf8CAwP//gD5+f3z9gIF//749//w8gD26gL97QID+wIA/gIB9/397QD56QH37AD7GwH/CwH+A//+AP3/Av0AAP3/AP4CAez8B9T4CyEOGwnx4v308f30/gH9AgACA/r3+f3/APv//wECAwMFCAIDBgEB//z9/wAA/wH+AQkFCP3+//z6+v////4B/PwAAAYKC/36/vz6/wEEAgIGBgEBAPv6+gMA////AAH/AP/+/f8AAAYJCwUIBgEFBAYMDQEEAgIFAAAC/gQICQcJDwMFCAIFBQECBgMEBgAEBgABAwACAQABAQICAwEBAv4AAAEBAAMBAf////////8A/wEA/wAAAP/9/f3//gEA/v37/AAC/gD+///9/v39/gAD/f39+/8AAAQEBP/9//v8+wD+/QH/AQIBAwMCAv3+APr7+v7///39/fn7+v79/wEAAfv9/gP////+/wIBAwEFBv7/Afv8/f8BAwABAQIEBf8A/gIEAwP+AwYGBwH+AP38+wEA/vf29AICAfz8/P38/QQB+fj+8v78/QQICf79AfXx8u/q5wD9+v8AAAwPEPr5+AcEA/z39gT7A/j8+Pv+/AAC/wEDAwIEBPv9+97h3NfY4fX4+wH+AQAAAAABAP8A/gAAAAD//gABAfz/AP8AAP3///8A/wD/AAQCBwIMEAkRFBoBBRAFDRIQGhoLEwn4/vQOFA0K+/7v7PEB//8ABwQbNwv4+v4UFxcd8u7y49z27url19jp4dsB////AP4BAP4A/wEAAQICAQH/AP0A/wH/AP4AAP//AP0AAfUA//b//AP//fEB+uj/9+P89d4A8S/7/SrvC/v05Nf/9/L//vwA//7//wAAAPsAAP0AAQD/APsA/wIAAAP+AAD//foA9/oA/fL/+egABRcC+hgA+RMBBQkAAP/++e7+AAH/AgYA/gAAAP4A/wIAAAAA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AQD/AP//AAABAQH/AAAB/wAAAAAA///+AAAAAAABAAAABNm/tP8A//79/QECAP77+//8+wD8+QD+/P3+AAABAP//AQECAQAA///+/gECAf7///8A////AAAA/gL//QIA//3+/wABAgACAgQBAgD+/gMBAgAAAAAAAP8AAAH/AAACAf///gD//wAAAAABAAD//wAAAQAA////AQECAAD/Af/+/wMCAAACAAAA/wAAAAAAAQEBAAIBAP////8BAf8AAAAAAAD//wD/AP8A//7//gD//wAAAAAAAP8A//7//wECAQAAAAD+////AP//AP8A/wEA/wAAAAAAAAAAAAH/AQAB//8AAf8AAAEAAf//AAAAAf///wD+AAAA/wD//wEAAP8AAf8A/wH/AP///wABAP8A////AQD//gAAAAEAAAAAAQAAAAAB/wABAf8BAAD/AAAAAQABAgH//wAAAP///QAAAAAAAAAA/v//AP8AAP///v///wH/Af8AAOz598fIyCdRRgUH/PgE//77AAEGAgIOCQoJB/v8/vXx7/74BQAHCPv//gAEBAcKCAgIBf38+v8BBf8CBfj4+v79/QD/AgQDBP3+/QL+Cv4ABAIIDRgYHPsA/gACAgIAAv///wAA/wUIBwMFBQABAQMDBAMEBQECBAICAv8B/wICAwICBAIBAgACAQIBAAABAAD/AP8B/wAB/wD+/gAA/gICAwIAA/8AAP3//v/+//38+/j49P7++gL//wIBAwD//P79+//+/f79+////P///gEDBf79/QH/Av38/Pv7+wMCA/v7+PTy8w0BAv8EB/v7+v7//v38/P37+P3//wACBAgBAQACBf7/AQD//gUGBQMCAvz+/AMDAgQDAgACAQIBBAEBCP7+/QQFB////vz9+v39+ggHCAQDBPj59wD+/wYGCQD/Af//+wcICQD+Af/5+QH8/AYPDg8EAQEGBgD7+u/r6vP19Pn7+/j7/fb8/fb6/Pb8+/4BAQL//gMAAwEAAQAA//8A/wAA/wAAAQAAAAD/AAAB/wAA/wEAAf4AAQIBAAD/AP8A/wTy5uD/AQAAAf8BAP////4B/gD+/wAAAQH/AAD//wACAQH/AP4BAAH+AP8A/wD/AQABAf4A/gEAAP4CAQL/AAD+/wABAQL9//0EAwT+/v0AAAAB//8AAQAA/wAAAP8AAQH/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//4AAAH/AgAA//8AAfz//wEAAv7/AAD//gD/////AAAAAP7////+/wAAAP8AAAH//wABAf8AAP4A/wIAAP4A/wEBAAD//wIBAf7//wD/AP7//wD/////AQAAAAAAAQEB//7///7+/wD///8A/wIC/wEAAP8A/wECAP8AAP/+/wEAAP7/AAD//QAA//4A/wEAAAAA//4AAQD+AAEAAQH/AQAA/v7//gH/AQABAf8A/wAAAf8A/wEBAP/9AQD//AEBAP///wAAAQEA/wAAAP8A/QAAAf//AAAB/wD/AAD+AAD//wEBAP8AAQEAAAAAAAAAAf4AAAEB///+//4AAf///wEBAf/+//8AAAD/AP8AAAIBAQEAAAAA////AP8A/wAA/v8AAAAAAP4BAAD/AP8A/gD//wEBAQABAAAAAAD//wEBAf//AAAAAP8BAAAAAf7/AAEB/wAAAf7+AAAAAP8BAf8A/gEAAQEAAvLy9OHk5zg5NRMRFA4TF//6+P37+wIHDwYOEQgMDwEGBQAC/gAAAQQBAP7+AgD+AP8AAAEDAQEBAv8B/wD//wAA/v/+/wAAAAMDAv7+//7+//79/f79///+/v8AAQQFCf//AP7+Af77+/37+gL/AAD//wEBAwD/A/78AQAA/QEA/AEBAgAD+v8CBQEFBwECAP79//79/QMAAAMBBPj7/fz6+gD+/wYFB/v9Av////3+/vb29goMBAICAfz8//z7+QEA/Pn49vn39fPv6/n4+ff1+PDv8gcHBgUDBPv9/QD9/P7//wMEAwMEAv79/gL8//T09Nng4erx8/0AAf8A/v//AAAA/wAA/wD/AQAB/wAAAQEB//7+/AIC/vv8+f0C/wADBP3+/wUEBgEBBAsPFAcKCAL6/RALEAwODwL+/P36+gEJAvwE+/38+wH/Avn19wMH/gUECAECAQABAgAA/wIBAAAAAAEBAgAC/v///gMCAgABAf8A/wAAAP8AAAAAAAAAAAAA/wQA/v8AAAH/Af8A/gD/AP//AP////8BAAEAAAEAAQAA/wD+//0CAgH/AAABAP////7+AAD//v8AAP//AAEAAP8A/wABAgH+/gD/Af/+AAABAAABAP8BAAD9//8AAAAAAAEAAAD//wD//v4AAQEAAAEAAAH///7///8AAAAA/wH9/v0CAQEAAP///wH/AP////8AAAD//gD/AP8BAQH+//4AAP//AP8BAAEAAAL/AQAB/gAAAP//AAAA//////4AAAAAAAEBAQD+/gAAAP8AAAAB/wD///8AAP8AAf8AAAEAAAD///4A/wAAAQEAAAEA//8BAQAB/wD/AP8BAAD/AAEBAf/+/v8BAgH//v//AP8AAQAA/v8A//8AAQL/AQAA///+//8BAAEB////AAAA//8AAQAAAAAAAAAA/wABAAAAAAABAAD//v8BAQAAAQEAAAD//gABAAH/AQAA/wAAAP8A/wH//wABAf8AAAEAAP//AAAA/wECAgQCAwT+Af/o7Or2+vsWGRoECQv9+fX9/PwICxIIDxACBwcBAwMCAQACAP4BAAABAP8AAgIA/gAAAAEAAAACAQEA/wD/AP/+//0A/v78+/z9/vr//v4A/wH+/P3++/r9/fv9/vv+/wABAQIB/v8A/fz9/vwB/gcAAwf+AAMAAQQA/v3//wD8/v8B/f///f0DAfz8+vv8/fwC//7//wABAAEDAQEIBggBDQ3x8fT+AAH+//3+/f7+/v7z8vMLDAIHCAr8/QAA//8DAQL7+Pb++fj58/L08vT69/r8+/oKCgkGBAP5+PYAAP//AAf8/v8BAv38+/rg4ejm7PL+/wP/AP4AAAAAAP8BAAAAAAIBAAD/AAAAAQH///8BAgEC//4FAwMBAwL8A/v/AQEDBgQAAwMNEhb7//0NEgMICgkFBgX89/j9Avj1+vsCBAIA/wP8+/wAAP8FBwj//v4BAP8B/wD//v4AAP3//wECAAIAAP8CAwH+//4KCQkCAfD9//8AAAAAAP8AAAEAAAEE+/z8AAAAAAAA/v8A/v8B/wAAAP///wAAAQEBAQAAAP//AAAA/wEAAQAAAQH//wAA/////v///wAAAQEAAP8A/wAAAf4BAAD///8A/wD/AAEAAf8AAQD//v8AAAEAAAABAP//AQABAAAA/v7/AAAAAP//AAAB////AgECAAD+AP8A/gD/AQEA//3+AQEAAP8A/////wAAAQEAAAIAAP3//wH/AQAAAAD//wD/AQD//wABAP//AAAA/wAAAAAA//8AAQH/AAABAP///wAAAAEAAP8A/wEAAP8B//8AAAD/AAEBAAD//wECAgAB/wAAAAABAP7//wEAAAD//wAAAAAA/v//AAEB//7/AAAAAP//AAABAQEA/wAA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/QAB/wD/CAD/BgQEAwAAAf/+/gACAwAA//8A/wH+AAABAQABAAEAAQEAAQEAAQABAQAAAQD/AAECAf8AAAEA/wABAQEBAQAAAP////8A/wD/AAEAAAEAAAEAAAH/AAD/AQABAAAA/wABAAAAAQEB/wABAQABAAICAAEBAAD/AAAB/wEBAQD/AAAA/wAAAAAAAP8AAP8A/wAAAAABAAABAP8AAAAAAf//AAD/AP8AAAAAAf8B/wEA/wD+AAABAP8AAAAA/wAB/////v39/f7//v/+APz8/P79+////f79/AICAAEEAQAA//r//P79/wUHCv8AAP/+Afv6/AAAAgQFBAEBAAgKCQQGBQAAAQADAQUGAgICAQABAf7+/QABAgEA/////wEC//79AQD/Afz//wD+/P/+/P/9/P8EBQMLDQUREQ0C/wUPDg71+Bb4/Sj7Aevq8A4BBwkJE/v7/f708v/86AH59/fw7vf09QUA/xAGAgUJBAgJBwgJBwgJCAYEAwICBQQFBAMFBAIDA/7/AP8A+wH//gD/AAIDBAQFBAMEAwMEAwH///7+/AAB//77+wABBAP/AP35+wQBAQABAP3+A//+BAIGBgMCA/7+APz8+v7++/7+/gH7AwYHCA0NDwEDA/Lz8//////+APj5+fLy7+zr6u7s8Pj5+//+/wAAAAABAQAAAAEBAgoKCRcWFiAgIQEBAAQDAwcBAAEA/f0CAQH///8AAAEBAQIA//4AAQD//wAAAAAAAAACAQAAAQEB/wEBAgAB//8BAQEAAQABAAH+AAD/AAIBAQIAAgACAAIA/wAAAQEBAQAAAP8B/wABAAEAAP8AAAAAAP8BAAADAgMBAP//AQEAAAABAQACAAH/AAABAAECAQH+AQIAAAH//v8DAgH9/gH+//4BAQD/AAD///8CAAH/AQABAQABBQT///7+/v0CAgMB/fz7/P7+/PwAAwMA/vz//v8A//8FBAH++/z4+PgDBAcA/f4AAP8A//z////6+f0AAv8BAAIA/v4C/wAA/wEBAAABAP8BAwL/AAAA/wABAgAAAP8AAQH/AAEAAAABAQD//wAAAAEBAAEAAQD///8AAAAAAgABAQAAAAABAQD//wABAAD//wABAP8BAAAA//8BAAL///8BAAEBAQEAAAAAAv8AAAABAQABAgEAAf8AAQABAf8B/wEA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AP//AP8B/wIAAf8E/gAAAgABAgIEAQEA//7+/gAAAgEC/wD+/wD//wEBAgEC//8AAQAAAQH/AP8AAAIEAQABAAAAAQABAAIDAAD/AQEBAQICAQEBAQEC/v/////+AQEA/wAAAQEAAAABAAAAAAH////+AQAAAAEBAAEAAQMCAAABAQEB/v//AQEAAAAAAgAB///+/gAAAf8A////AP//AQEA//3+AQD8AAABAgEB/P38/Pv6/fz7/fz9AP///vv6//7+AgQDAgMC/v79/Pv7AP////77//z8/gH//wEB/wIEBggIBwAD/P37/f77+vj7AgECBAIG/v/6+/Xz+gQLBQYJAf7/AAD/AAD/AAAAAAD/AAEDAP//AAICAgECAQECAQEBAAABAQAA//4AAQEA/v/+AQEBAgABAAAAAAAAAgAAAP//AAAA/wIAAAAAAAD//wEAAQABAAEBAQEAAAH/AAEBAAD/AAABAf8BAQAAAf8AAAH//wAAAQD//wAAAAAAAAAAAAABAAD/Af8AAAEA/wAA/wH/AP8BAAAAAQIA/v4BAAAAAP8AAAEAAAABAAD//wEAAAEBAAAA/wAB/wABAAIEBAQHAQL9/v79+/r7/f8AAAECBQYH/v38/f/+BwABBQcJBAcJBwgMAgQEAAACAwMEAgQEAAIB/f////8A/v8AAgACAAEA/gD////+/gABBAMFAwIC/v///v7+/P37/fv7AP/+BAUC/P37+vr5/f79//39+f38AgYGBgUJAAEF/vz3/fz7/fz7/wIC/wcJ+gUH9v0C/QIE9AADGSQrBxUT/QYA/f32Cv0A/P3/+vr4AgL8/wEG+vz8/Pz9BQUG/wH/+v7+Av//AwAABAMF/v7+AgAAAf//AQAAAgECBQMDAgECAgD///37/v37AgQBBgQC+fn+/v7/AwIGAgQFAQL///8AAQAABQIAAP4A//7//f37/PsAAAUGAgMD/wD//gD9ERMQDA0L7evv+fj6AwEEBwYHCwsK+fn5+fv7AAD/AAEAAP8AAAD+//8BBAEAAAD//wAAAQABAQECAgL/AAAAAAEBAQEBAQABAQEAAQECAQEAAf///wAB/wEAAwH/AAEBAQAA//7/AQIBAf8BAQAA////////AAAA/wD///3+/QAAAQMBAQECAwEBAAAAAP79/gEBAQECAAEBAgEBAQABAP//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/gEAAf8BAQD//wAAAAMDAwACAQEBAwABAgABAQICAwECAgAAAAEBAQAAAQABAAIBAv8A/wIAAQECAgEBAQICAv8AAQEBAQABAAABAwABAf4BAf8A//7///8AAP8A/v///f/+/v///gD////+/f///wH/AQEBAgAA/v/9/v4AAAIBAQAA/wEDAvv+AAABAQICAvr7/P7+/AUEAgICA/z7+Pv9/gEAAwEBBAUGCPz7AvwA+QQJDgMEBff28gAA/f/9/fz+AAEDBQEAAgMCBP38/gECAwYEBP76+PwFCAICBAMFBwECAfv5+QMG+wIAAAEA/wABAP8AAAIBAAEBAgEBAgH+AAAA/wEA/wAAAAEA/wAAAAAA/gD+AAECAQABAAIBAAIAAQABAQD/AAD//wABAQD/AAAA/wEBAQD/AAABAAEAAQAA//8AAAAAAAD/AAABAP8A/wEAAf8AAAAAAP8BAP//AAAAAAEAAAAAAQAAAP8A/wD/AAAAAAD/AAAA//8AAQAAAAAA////AAAA/wAA/wEAAQABAAD/AAABAQH/AAAAAQEB/wMCAP0AAQH/AAACAgH+/v/+/v3+/f/+/vv9/gD//gMBAv///wAB/wH/AQEEBPz8+/8A/wAAAf3+/QD//wAA/wMDA/v9/Pv6+gH//wQEAgIA//b29P38+vj/AAUHCAQEBf8CAAQGBgAA/v4CAv4CBAEB//77/QYDBP3/AAUFBf3+/Qb/AQAABgH79//9/v79+wIA/QEDAAUFA/r39vr59gYGCP3//QABAQMCBAQGBgEBAPv9+gEBAQD+/f/9/QECAwIDAwEBAf/+/gAA/gIBAQAAAAIBAv8B/wAA/wICBvn8+wEDAwADAvv99/j7/Pn2+/r+AfT2+AAA//4A/gMCBQD/Af7+AAMDAwEAAf79/QQFBAAAAAD/AAABAf///v7+AQAA/wIBAv///ggKCA8UEOzt8QAAAQEBAP//AAAAAAAAAQEA/wD/AAABAAQDAgQAAf8AAP8CAf///wABAAD/AQACAQIAAQEDAQP/AQECAwEBAwIBAAMAAQIBAgMAAQEBAP/+AAACAgIBAQMBAf8B/wAA//8BAQIBAgEAAgIAAQIAAAEAAAD+/////v/9AP3//wD+//7//v7//f0A/v3+/vz//v4AAP8A/wD///4A/gD///7///8BAgH//AABAQADBAIA//4B/v8CAgMBAAEGBwkCAP7t6uf8+fgGBQQFBQMAAwX/AAH9/f0AAAAEAwj/BgACBQf9/fv8+vcAAv0AAwcB//7//wH+/fsAAQABAv/7+PUHCAj89vEBBggB/v8ICgz5/vv//v8BAQL//wAAAQEAAAD///8A//8A////AP0BAQH//wAA//8AAP8AAP8BAP8AAQAB/wD/AQAA/wAAAQAB/wABAQAAAf8AAAEAAP8BAQEB/wAAAAAB/wAAAQD/AAAAAAAAAAAAAf8AAAEBAAAAAAAAAP//AAEAAAAAAf8AAAD/AAD/AP8A/wAA/wAAAAEAAf8A/wEAAQAA//8AAQD//wEAAP8AAP8AAAEAAAAA/wEAAAEB/wD/AP8AAv8CAAAAAQIA/f8BAAACAAL8AP0AAP8DAP/+AP/+/f/////9//z+/f4DBAQCAgIA/////v7///8AAAD//f3+/f0A//3+///7+voA/wD9/v4CAQH8+vr+/fz9+/n9/fz//fn9BAf8/f0CAQMBAAEBAQYCAQD//vsDAQD/A/8D/wIGBQf8/PsBAQP49/kA/ff8+vn/+voEBAP6/fsB/fwHAgEBAwIEBQMC/wP+AP8CBAUDBQX////89voDAQECAgH//wICAQEAAAADAwQBAv8BAP8AAQH/AAEA/wAEBgP9/f4AAwP8/fz4+Pr8/gD6+fn19Pfz9PMEBwf+AP8AAP4BBAMAAf/+//4C/wH//v0AAgD/AAD+/v8DAwMAAAD+AAABAQMBAgAB/wD//v4AAQABAwIFBQYCAQEB//8B//8AAAABAQEAAAD//wAAAQAAAAAE/wD+AgEBAQAC/wD+AwIDAgABAAEB/wICAAAD/gACAgIBAAICAAABAAEBAQICAAEBAQICAAEBAgEAAAAAAAAAAAACAgIA//8CAgIAAQIC/wEA/gACAf8BAP/+/f3//////wD+/P38/Pz8Af//AgD///36/wD/AP7/AQD//////v3+/v79////AQAAAAECAQEB/wD/+/n9BAMDAQH/AAL/+/3///7+/f7+BwgFAf/8AQAB/P3+AAAC//////36BQME/gADAgIHAP4AAgQFAfz3AAD9///7/fv6BQQG/wD++vv5BQUE/P359fIBBgkNBAD/AAMDAgIF/wAB/f39////AAEAAP//AQD/AgECAf8AAQH+/wD/AP79//8B////AgEAAQD+/f//AgIDAQH/AQABAQICAQEAAQEAAQEAAP8BAAEAAAABAQAAAAEAAgAAAAAA/wAAAAABAAAAAAAAAAABAAAA/wAAAAAAAAABAP8AAAAAAAAB/wH/AP8AAQEB/wH/AQAAAAD/AQAB/wAAAP8B/wD/AAABAP///wAAAQAAAAAA/wAAAQEB/wAAAQH/AQAAAP8AAAIBAf//AgACAQEA/gD+BAAD/gH///8A//7/AgIC/wAB//79AgIDAgAD//3//P78/vz+/v78AAEA/Pv7AP7+//7++/v6//7+/v39/Pr8/wAA/f39/Pz8AAD///77Af4A8evv/Pz+CAkMBQUIAgQE//8CAwIFAgACBf8A/v4BAf///vr6/P38/vz6AP32/v36AQH+/Pz7/Pv5AP/9DQ0L/PwG/QME+fr8/QD+/////Pz8/v/9/v7+////AwUGAgAAAAH//v4AAAAB/wEAAQIEAQEBAgAD/v/+AAD/AAEA+f7/+f8D7PDy9/r8//38/v37/wEC/f79AgMC/gECAQEBAgIDAQIBAgEAAAEAAQD/AgECAP7+/v8AAwQDAwEB/f/+/wABAAEBAAEAAP4AAgEBCwwMBwkI9/f6/wAAAAABAP8AAAD/AAAAAP8AAAEABAMEAwEAAAEBAP/+AQAA/wABAQACAgECAwEAAwABAQAAAQAAAf//AQICAgAAAQAAAf7/AAEBAAEBAgEBAQAAAAEAAQAAAQEBAf4A/wIAAf8AAP/////////9/v///fz8/P7+/v8AAAD///79/f79+gD+/AAA/gD+/gD//v/+/v39/f38/QACAQIAAgEBAf8A/wD//v/+/v0DAwICA/8CAP//AAEEBAQDAgIA/wIB/vv5+/7//wQEBQgICwIBAf78/gAB/wAA/vj59/7+/gEBAgECAP4A+/r49/4DBQgICv4BAP39/v38+wH39gkKDv36+/4B+QH++vr6+AUGAv8B/wIBAgEBAgAAAP///v4B/wD+AAEA/v4AAAD/AAIAAQAAAP8AAAEBAQABAP8BAAEBAQAAAAABAQD/AAD/AAEBAAAAAAAAAAAAAAEAAAAAAAAAAAEA//8AAQEAAP8A/wEAAf8AAAH/Af8B/wAAAQAB/wD/AQAAAAD/AQAB//8A/wAAAf8A/wEAAP//AAAAAP8AAAD/AgAA/v8A/wABAP///wEAAAEAAgD/AAAAAP8BAAAAAQABAP//AAEAAQEBAP8BAP8CAgAA/gEAAgEC/gABAAEAAf7+/P7+////APv6+QD+/QD+/QD//vz+/AAA/vr7+wMAAv7+/Pz6+v/+/fz5+/7//v7/APz8/AEAAAABAf38/fDx8fX08gUCBP/9/foG+v4BAwIDAwQCAf/+/AD//gECAvwBAAABAf38+gEB/gEDAf4CAAICBP/7+wAA/v8EAwABCP4CAv3/AvsAAPz8+wIDA/8BAP79/v4CBP8DAP8BBAIDBAAB/wD9+/4AAP////7/Av//AQEAAP39/vb5+vf5/vL4++fq6O3t7g4MDAoKBgAA/AICAAECAwEDAQIBAAICAgECAgICAgQEBP8A/wAAAAAA/v///wICAP/+/wEBAwICAQABAAEAAP4AAf8A/v7+//38/QEAAP8A//8A/wAAAP8AAAEAAAEBAQAAAQABAAQBAQIA//7//wEAAQIAAAD/AAH//gECAgIAAgEBAAEAAAABAgIB/wEBAQMBAgEA/wEAAQAAAQABAQAAAQAAAAAA/wH/AAD/AAD+///9/f3/AP//AAH//f/+/v0BAP/////9/v3/AP8A/f7//v0A/v0A/v4B///+/f39/fv//vv//f/9/f0AAQD+AAABAQD///7+//7///4DBAQDAgQDBAUCAgP8+vj8+vn//v0CAAAFBAP+/v4DBQMBAgH+/QD9//36+/b29fADAQAFBgn+AgH/APwFAgL+/QD9+/0AAAAGBgb9/P4CBAYA//4AAf4DAwECAQL5+PkB/v3+/v0A////AAH//wD+/v8BAAABAQABAQD///8AAP8A/wH///7/AQEAAP8DAgIA/wAA/wAA//8AAQABAAAAAf//AAABAQECAQABAQABAAABAAAAAAD//wAAAQEAAAAAAAAA/wH/AAAAAQD/AQAAAAAA//8AAQAAAP8AAQAA/wAAAAAA/wAAAf8BAAH/AP8AAP8A/wH//wAAAP8AAAAAAAEB//8AAQIAAAD/AP8A/wEAAQAA/wAAAP//AAAAAAH/AP8AAAAAAQECA///AAH+/wICAQIDAgIAAf79AAAAAQD9+/z9/fz++/wA/v3//v78/Pr+/v36+/sBAgIA/f3///z7+Pn8+/wBAQD//v/4+PgFBQP//fz09fX++fn9/f0AAgP////39/n5+vsEBQT39PP///0DAwIICw0GCAj6+fYLCAQFAQb+Af7/AwD7/v39AAH5AAEBAQP6/wL3/AH39/v29fr2+PcAAAAAAv/7/PoFBAQGBQQGBAMB+v4FBQIDAgX1+Pj29vn+/v/+/gD4+Pnw8fDs7+/z9Pn1+Pn6+/UIBQQKBwP+/f8FBQMCAwQBAQECAgP/Af//AQAAAQACAwP+AAADAgP/AAAA//4BAQEAAP//AAH+/v3//gEDBAIAAQIBAAAA/wH6+/zx8PD4+Pj//v8AAAAAAAAAAAAAAAAAAP8AAAACAQIEAAAAAQEC/wABAP//AQECAP//AAEAAAEAAgEBAAAB/wD/AQAAAAEBAAEAAQEBAAEAAQEAAAEAAP8A/wEAAgECAAEC/wAAAP//AAAB/////f//AP///wD//wD//////v7+/wABAP3////+AP/+AP8AAQACAP//AP8AAP79/fz7AP//AgEBAP/////9/P39///9AQICAgMD//79/wID/wAAAAIDAP8A/P37///+AQECAwQBAwAE9vf5AAAFAwMEAAEA/f77AP77AAEA+/37AwICAgAF/Pr5AwAB+fn39vz6/f7/CQkJBwkL9fTy9PDsDBAYBQUI/AAE+/j5AP0C+/v8/Pz7Av38BAQCAAECAQECAQD/AAACAf8AAAEAAAD/AQEAAAAAAP8AAQEA/wD/AQEAAf//AAH/AQECAQMCAQICAAEAAAAAAAAAAAAAAAAAAAD/AAABAQAA/wD/AAEBAP//Af8B/wEAAAAAAAABAAD/AAAA//8AAAAAAP//AAAAAP8A//8AAAD/AAABAAAAAAD//wAAAQABAAD/AAABAAAAAAABAP8AAAEAAP8AAAAB/wEAAf///wD/AAEAAP8A/wAA/wABAAEAAQIBBAQEAf8AAf8A/////Pz7AAH////9/Pz5/fv7/fv6/fv9/v39/v/+AAMC//79+fj1+vf4BgUG/v39/v39+fj4/fsE+vn4+fn4AgD+/wEC/wEF+f4B/Pz++fv8+fv68PDv/v7+/wEDAvL19/n59fP0ISAfCgYE/Pv3+/z8+fn5/vz8+vr4BAUE9vX39/j67+/x9vb4+Pf49vf4AQL+9PXyAQECDw4OAQL/+vr5Af/+CQkI//4C3d7f9fb3AAAA/Pz+9/f2+/z7//8B/v77ERAMCw8LBQQCAQD//wD/AAAA///+/P0ABQcFAAEAAf8BAQEBAAAB/f3/AQIBAQECAAEAAQEC/wAAAQAAAQD//vz7AgMDAP8AAQD//fr6+fn4/f39AQEAAP8AAAD/AAABAQEBAP//AAD/AAAABAMCA/8AAAH/Af8AAAAAAQAB/gAAAP79/QD//wEBAAICAwAA/wAB/////v4A/wABAgIBAv//AAECAAH/AAAAAAAAAf8BAP8AAf8B/v7+///+AP8A/gD//////v///wAAAAIBAv8A/f///f/+/P/+/QD//v/9/QD+/P7//QIBAAEAAQAAAf8A/gD//gL//P7//wD+AAABAwIEAwICAwECA/7///7//gEBAgECA/0A/P7+/QMDBgYJCPz8+/7/AAMBAv/9AAQEBwMA/Pr59/z9AwQEBP38/v/8+gYFAfz+/AD//vz7AAMGBwICAP379v/9+vwBAwD+/QYFBf0BAf37+f///gIBAAEBAQEBAQECAQH/AgEA/wAA/gAB/wABAAEAAAAAAAH/AAAAAAIA/wH//wAAAAD///7//wMAAAEBAAEAAAEAAAEAAAD/AAABAAEAAf//AAABAP8AAQAAAAABAf8AAAD/AAABAQAB/wAAAQEBAAH///4A/wAAAAAAAAAAAAEB////AQAAAP////8AAAD/AP//AAEBAf8BAAH/AAABAQAAAP//AAABAAD/AAAA////AAABAAEA//8BAAH/AP8AAAEBAAABAQACAQMEBAABAf3//wIA/gUABf78+wECAP/+/P3++v79/Pz6+////v3///39/Pv6+Pn39v76Bf38+wD/APv6+/4CA/j49/f49wECAvr6+g8PCvv6+fn6/AUDA/Dw7vr6+fb2+Pn9/vP19Pf3+AAAAQ0ODQH8+vz7+u/x8vT09AsMC/z6+QQDA/b39/T09/Lz8/Hx8ff29/38+wMDAPr6+vT19QkKCAAB//n49/v7+/n6+wgIC/f2+Pv8+v7+/QQDAwAA//79/QQDAw4MCw4MCgoJBwIDAQEDAQABAf4A/gMCAgECAf///wICAwICAgD/AP8A/wAAAf//AP/+/gEBAAACAQECAf///wEB/wH/AP/8/AABAgD////9/AMBAgYEBfsB/f0A/gD/AQAAAAD///8AAAAAAP7+/gQAAAIBAP8AAAEBAgEAAAEAAAEBAf//AAD/AP0BAQIA//4BAgIAAQD/AQD+/v8CAgD/AQH+AP8B/wABAAD+////AP3/AAH/AP///wD+//7+/v7///0A//////4A/v8BAf8BAAIAAv8B/v////7//vz+/fz+/vwA/fwA//0BAP8BAQH+//0BAP7///v+/fkA/wIAAQMBAQMA/v3//f8AAv/9//z8/PsAAP77+/r5+PYAAQIGAgQEAwX8/vv8/PoBAgQDAQUFBQD+/PX///39/Pv+/QUEAwP9/wIBAAL39vYDAwP39vYDCAkCAwP9+fr49vIFBv359/QB//sCAwQFBQIDAQIBAAH//v7+AQEA//4DAQL///8A//7+/f0CAQABAAABAAEAAgIBAP4BAAEAAP8A/v7/AwEDAQABAQEAAP8AAAH/AAAAAAABAQAAAAAAAQAB/wD/AAAAAAAAAAAAAP//AAEAAQAAAAD/AAEBAAD/AAABAQAB/wH/AP4AAAABAAH///8AAAD//wEAAAD//wAAAAEA/wAAAAAAAAEAAP8AAP8AAAABAAH//wAAAAAA/wEAAP8AAAD/AAAAAAH+Af8A/wIAAf8BAgEA//8AAgIBAP8EBQUBAgEFBAQB//8AAP7+/fv9/gL+Av8BAf38/Pv9/fz8/Pv7+fj9+vf7/fT//v///v76+/v+/f37+vz3+PYCAAL09vcDAwPz9PX///8IBwbo4t8MDA7s5ujv8fH7/vv7/P0BAgXd/foA//8GBQnh5ufr7OkMDQsFBAEHBgT///7x8fPq6ur19vX7+fn9/f4EBAMA/v77/Pvv8v8CAwEBAAAA/wD7+/33+Pj//wAB//8AAQD+/f8BAP8A//7+/f4KBwQSEA0HCQMDBQEABAEAAgEBAwIAAwICAwIAAQIBAQH//wD///8DAgT/AQEAAAABAwL+/v7+/v4EAwUAAP4BAAD/Af7//wAA/////wAEAwMCAQEAAP8BAQIB/wD/AP4AAAH/AAAAAAABAAAB//8EAAH/AP8AAQL////+AQABAAEBAP//AQMCAwIE//7+/wEB/v8BAQEBAQEDAAED/wEC/gAAAAEB/wAB/v8AAAEA///////+/wABAAAAAQACAQD+AP8A//7/AP79/v39/wD+AAD/Af8AAP/+AQAAAAD+AP79Av///gD+//79/v77/P78AwIEAgMDAgICAgMC//3//f76/fr6A/4GBP8AAQH//wAB//78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AgICAgAA//7//gEA/gABAP8AAQEAAgEAAQACAv8BAv8AAP8AAP7//QABAf8BAAABAAUFBQUGBPv5+v7+AAEAAQAC/wAA/wEBAAAAAAH/AAQBAQP/////AQEAAAL/AAIAAAH/AAEBAQAAAAEAAQAAAAABAgAA/v8AAAD/AP4CAQD///8B/wACAAABAP4BAAEB//7+//8A/wABAP4AAP////3//v3////+//4AAAEDAQD9AP////8BAgH//wABAAIAAAD////9//8ABAUA/gcBAwH9/gEEAAQDAgf7+vQDAgIB/wMCAgIA/AD8AAAAAQEBAQD/+/sD/voCAf0BBQX7+PP/+vv69vYBAAwEAg8FAAH6+Pn//f3+/QD/Af//AP4CAf8A//0A//z///38/AQGBAcA/wEFBAUBAwL4+vwAAgL/Av8GBgj+BAMDBAX+/v4B//8AAAAB//4AAAD+//4BAP0A//4AAgEAAAH+AAADAAL+AAIDBAACAgICAwIDAwICAgEAAQAAAAAAAQEAAAAAAQAAAAD/AQAAAAD/AAD/AAD/AP8AAAEAAAAAAAAAAAD/AQABAAAAAAAAAAAAAAAAAAABAAD/AQEA//8BAAD///8AAAEBAAEBAQD//wAAAf///wAAAAEAAQEAAP///gAA////AAEBAQAAAAEAAAAAAP8AAAH//wAAAAAAAQAA//8AAQEA////AAEB/wD/AQEA//8BAgEA//8AAP8BAQH9/f4AAQACAAIEBAX/////AP8GAQoAAQEA/wH//wIDB/4F+/7+/wECBAYDAgUBA/j9BgoBBQr7+/r39/P/8/H+Av78+wIGBwj5+vr+/f3/Afz+/wD9/wD+APsDAwMHBwQAAwADBQIHCQb9/QD4+vj9/P78/f37+vv+/v3//f7//v8AAAH7/P3+/wH/AAABAf8BAf8DAgMDAwQAAQEBAgMEBAMHCAULCwoEBwQFBgMGBwUGBgMEAwMGBAT+AAABAQD/AAECAwIBAQECAQIAAAAA/wEAAQEAAQIBAQAD/wABAQD+/v4CAQH+//8A/wD/Af4AAf8AAAH/////Af/+AQD///v8/vr7Afv+A/4BBAAD/v4BAgACBAECAgIBAf//AAACAwIE/wD+/wACAQEBAAIBAQICAQED/wIBAAAB/wEAAgAA/wABAf/9/v/+//37/v//AAECAP/+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/wD+AQEAAP//AAH/AP8AAAAAAAABAAD//wABAQEAAAAAAAAA/wABAQD/AAEBAP8AAAEAAAAAAQAB/wD/AAH/AQAAAAAAAAEBAAAAAP8A//8AAAABAQAA////AP4CAQAAAAH/AAH/AAAA/wAAAAD//wAAAAAAAAAAAAAAAAD//wAAAAAAAP8BAAH/AP8B/wAAAAEAAP///wABAQAA/wD///8AAAAAAAIAAf4A/wEBAQEAAP8A/QACAgIDAwP//v/+A/wEBgYHCgoCBAP6+PgBAvz9AP8ABAYDBAgA/u/+/foBAPv/AP///v8HBAb/AgP+APUE/gIA/wb9BPwA//4A/v7+/vwCBAMF/wL8/v/9/v4BAgH+//0AAAIDBAMA/wAEBAYAAAH/AAD+/v/+/QD7/PwCBAYCAgAA/wAAAQMCBQYDBQT/APv///wDAQABAwIBAgIBAgICAQQCAf7/AP8BAQIBAgH+/f0BAQABAAD/////AAACAAEAAAAAAQAEBAP/AAD+//7+/f0A/f8AAQABAQIA//8BAAD/////Af8AAAH///4GBAAVFAgACQACDAACCf4DBAAGBAQCAAEB/v8D/gEGAQIC/AIE/v//AQECAAABAAD//wAA//////8A/v/9AAD/AP/+AAD+AP//AP/9AP79AAABAAH+/v7///79AP////79Av///fz6//78AgECAgAE//79AP/+//////7+AQACAQAC//8CAAACAgEAAQED/wICAf/9/wD+Af7//v78//37/vz7AQEBAwIE//37/v/9+ffzAgMF/gEEAgAA+Pj6AP/+/vz6/fn4/Pz6AgD///79//36Af78AP4AAgH//fr7+/j1CQkIAwIB/P78AQD////9Af////39AwEE/f0A/v/6AQED/vv/AQED//4BAQMDAgH9+/z8Af77+vj3Bgb8/vz8/fz8/fz8AgECAQQBAf/+AAD8AgIA/f7+AgEDBQUGAwQGAgEDAgEDAAMDAgQFAAEE/gAAAAEAAAAB//8A/wH/AP///wEAAP//AAEAAAD/AAAA/wABAQEBAQD///8A/wAAAf8AAP8BAAD/AAAAAAEAAAAA//8AAAAAAQEA/wAAAP8AAQEA/wAAAAAAAAEBAQD//v8AAP8AAQH//wABAP8AAQEA////AAEB//4AAAEA//4AAAAAAQEAAAD/AQD/AP8A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AgICAAIAAP////0DAAICAQH//v79/QD//PwF+/kN+fsPAPkF//oC/fwC/gAC/wEAAQIA/wEA//8CAAIB//wE/v7+AAECAAH/AP////7/AAH/AQD+AP//AAD/AQAA/wEA/wIBAPwA/fz8AgD+AgD+/gD9/v79AP79AgAAAQIB//8CAAD/BAIC/gH//vz9AP/9AP3//fwA/fr4Avz7/v39/wEBAgQEAgIB/v8AAAD/AP/+AwICAQUE/fr4//79/P38AQEDAgAA/f39AAAA/f35APr8+ff1BQICAAAB+/r5AwH+AP8AAP8A/P3+//4DAgUIAQIFAP/5//7/AgQD/f79AgAA//7//fz+/v36/wECAQL79vXvCAsOBwcI/Pr1/v35AAAE/gEC///9/Pr5+/j1AP76AwQGAAEA///9/Pv6BQUG/f0A//3+AQD+AwMBAwACAgIFAAIDAwMEAQECAgMEBAYHAQMEAAEBAQAA/wAA/wAAAP8AAAAAAAAAAAD/AAAAAAABAAD//wAAAQAAAP8AAAD/AgAB/wABAAD/AQEAAP8A//8AAAAAAP//AAAAAAABAAAAAAEAAAAAAAAB/wD/AAAAAAD/AP8A/wD/AP8B/gD/Af8A/wAAAQD//wEAAP4AAQAB/gAAAQH//wAA//4AAAH/AAAAAAAA//7//wAAAQEAAAAA//////4AAAEBAAD/AP//AAD////+AP8B/wD///4AAQEA//7////+AP//AP//////AgIEAQQD/Pz+AgEDAAEB+gAAAAEB///+BQYGAwIFAwME/v37BwsOAfn1Afv6/f7//QAAAgMGBgoNDQEDAwUG//77AgMC+/n5AgH1BgcG/Pz9AwQEAQH5/P79AAIBAAEAAgACAQIBAAH/BAUH/wAABQQH/wAA/Pz5//z+AwUHAQAE/v7+///+AQD///8B/v7/AgME//77AgIBAQACAQEAAAACAAAAAQECAAEB//8BAAD9//8AAQEA//4AAAEA///////9AQEDAgAA/wD+AAAC/wH+AP8A/wAAAP/+AQABAP8AAwAA/v38Bfn6Bvv3Bv35BP/8/f37AP7//gECAgIE/wIA//8A/v8AAP7+BAEBAQAA/////wD//wAA/f/+/wD//gD//wEBAAAAAf///wD+/wEA/QIB/wEA/v79/AD+/gH//v///wIAAAIBAv0A//8A//8A///+/QD//AL+APz99/v7/P79/AMCAf7/AgMDCwECAP3+/QECAgD+/P/+/AIC//3/+v4A/P79+vv7+wUGCP8AAf8A/gYFBPn+/Pb28wH+/fX2+gAAAQEA/wUB/v38/QMBAfwA/wQGBwIFCP38+v38/AIDAgED//z8+QMDAQEAAwMEAAME/QEAAAgHBwEA+f//+gMCBgACAvb49AUHCfz/Af39//r4+fr3+QYGBAcICgIDAPz8+fz7+v37+wEA/f8A/AYDBAECAwQAAgIAAgH/AQD/AwICBAQFCAEDBQABAf4BAAD/AAAAAP//AAAAAAABAAD/AAEBAP/+AAAB/wAAAQEAAP//AAEA/wEAAv8A/wAAAAAAAAAAAP8A/wAAAQAAAAABAQD/AP8B/wEAAf///wABAf//AAEAAP8BAAH/AP8BAAD/AP8A/wEAAP8AAAAAAP8AAAD/AAAAAQAAAAAB/wD/AQABAAAB/wAAAAAAAP7//wEAAAAAAAAAAf///wAAAAEBAf7+//8A//8A/wD9/v4A/v8A/wEAAgABAf7+//7+//7+/QD//wEAAgIBAgD/AP4A/gMDBP7+/v7//gAA/wQEBAD//gQDAgIGBv79B/7//P7/+wEC/wECBAD6+wIAAfwB+gEBBAgLDwEDBf78/QMFBPPw7QL8/AMC/gD7/P8CAQAAAP/5+P4AAgICAQABAQAB/////wMDAv0ABf4BBQIB/gMEAwABBv8AAQEEBAQBAf/8/AAA/f7+/gECAgEAAAECAQMCAQEBAP8BAgIBAgABAf8AAAEAAAAAAP//AP79/QICA////wAAAQIDAf7/Af7+/QACAgH/AAABAAD/AP//AAIAAP7///8AAf//AAD8/Qb+AQP8+//5+gH//gAAAgH/AgEA/gL/AQL+AAAAAP4AAP39/QAA/wQCAQAAAAD+//8AAP7/AP8A/v0A//7//v//AP8CAgEB//8A/vz+/f0EAP4A//8BAQD/AAD//wACAQICAQD9/P3+AP4AAf/+/v3+/f4C/wD8+vf+/vsA/v4C/wD//wIBAwQAAAH8+/wBAgAB/gP+/PsA//3+/vz7+vj/Af0BBAD/+vz7+vf//P79+/sBAP/+/gABAP/7+/n7+vgGBQUA/v35+fj+APsDAQAAAAL/AAQA///8+vf7+/YICAYBAf3+/voIBw0BAQP/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AAEBAAAC+/v8/gABAAIAAQD+/vsB//wA/wUCAgYCAv78/vsCAP7///4BAgMBAAMAAQD/AAD+//0CAgECAf4CAwH//QICAwIA/wABAAD//gACAAP+AQABAQAB////AP4CAAD/AAEAAAIB/wP/AAIAAAIA/wAAAv8AAf7//P/+/f/7+vv6+fn18vL37PD+7PISAf0aDQYWCgIA//oE/P8JBQQGAwMEAQD/AAAAAQH+/gAEAgEAAQABAgH///4AAf////8AAQIA/v4A/gD/AgACAQEDAQEBAAAA/v8A/wD/Af//AAEBAQEB/wD9AQEA///+//z+/v/+AQEDAAIAAAACAv8AAAAB/wD+/f39/v36/fr0/v8D+vgB/wMCAgQHAQICBAQE/v8A+v39+ff3/Pn6Af8BAP36//z5/fr2+vj3AgIAAQEBBgMD+Pn9/fv6AgMDAAUI+/r4AgEF/vr3AgH+/P//AQICAwME/gL/AwMFAQEC/v7//v//AP79Af8BAQME/f79//8B/wH7AgEF/wEE/f/69vX3//37Af7+BAQEAAAC//8AAwEAAQD/AAD9//76AP7+//3/AAALAAECAQEDAgIDAgICAwYFBAQFAAEBAQEB/wAAAQAA/wAA//4AAAEAAAEAAAABAQAA//8AAAAAAP4AAAAB/wD/AQAB/gD/AQAA////AQEA//8B/wH/AP8AAf//AP//AAEAAAABAQEB//8AAQAB/wEAAP8BAAH//wAAAf8AAAAAAAABAQEA/v//AQEB/v8AAQEA//8BAP8AAAAA////AP8A/wABAAH/AP8AAAABAgEB/QD9AQAA/gEAAP//////////AP//AAAAAQABAAAB/v79//4AAAEAAAAA/v7/AQEAAQAB//7+////BAQE/wAB/gD///////39//z7Av////8A/gIDAwMEAQECAgEBAAID/P3+/vz8AwQEAPsBAgMD/wUHAAIE//r4BwcG/PoA/Pv4/v79AAABDhEW/gUJBAQF9/f0AQMECAEB+gL3/v78A/8DAP4A/v8AAf0BAwIB/v75AgIB/v8DAQIDBwYD+fr4AQIAAAD/AAMDAP8AAwMB//7/BAME/v/9/Pz8AAEAAAABAQECAgEC///+//79AQD/AgIBAP4AAQAB/wACAQEBAP8A/wAAAAAB/wAAAAIAAAAAAP8A/wAA/wD//////vz9+fr57PL0+PX68v//+P0A/P8E+/7/DQcCAgAAAv4B/QEAAgMAAP/////+BAEBAAD/AP7+AAAAAAECAAD/AP8AAgICAf8AAP8BAgD/AQABAP8AAAAB/wECAgEBAAD/////Af4B/v///wABAgEDBgD//QH+/v8BAgD9AgICAv36/v///gECAQECAwIFCAQBAwABBP4AAP7//v37/QEC/QAA//78+vz69v77+vz59vr8+QH+/AD8+QD+/AICAvn3+AYGBv/9/Pr6+AgJC/v7+goKCf78+P78+//9/wgICgUEBv//+wICAwUEB//+Af7+/f38/AD+/gEAAgAAA/39+/8D/gECAP3///3/Afz+AfX1+AD8+AgHAwIBAPz9+wP8+wUBAf7//QAA/v78+/0A/gUFBgAAAwICBAEDAQABAQMFBwUFCAICBP8BAQAAAAAAAP8AAAAAAAABAAABAAD/AAAB/wAAAQAAAAAA//8AAAAAAAH/AP8AAAEAAAAAAAEBAP//AAD/AAD/AP8A/gH+AP8BAAD//wECAf4AAAIBAP8AAAH/Af8B/wAAAAD/AP8AAQAA//8BAAD//wAAAAAAAAEBAP//AAD/AAAAAP8AAAAAAQABAAAAAAEAAAABAAABAQD//wICAv8A/gIAAP7+AP/+/wD//gAAAAAAAf7+/f//AP//AP///wD+AP7//wAAAP7+/wIAAAEAAAAA/wMCA/wA/wH/Af78/Pz7+vz7+QQDA/8DAv77+QD//v///gABBAABAgMEAf//AAIAAAAA//3+//39/QcGCPT39QH//wEBAAICAgIB/fz59v35+AUECv3+AwQE/QEC//sBAgT+/v7+/gQD/Pv8+/v9/v///gD///7//v/++gMDCP8CAAACAgIDAwD//wEA/wIBAf0A//7/AAQCBgIBAv//AP//AAECAgIBAgABAgAAAwME/wH+/P3+/P///gECAQD+AwAA/gAA/gABAQEAAP8A/wEBAf7+//4B/v7//wD/AP////78/vj29/b19/z9//kAAvz//fv3/vT++xn7ABYKBBYHABEGBAkEAv///f8A/AABAQQAAP//AP8BAQABAQMBAQH+/////v0AAAECAQIBAAL/AgAAAAAB//8AAAAAAQL/AAEAAP7+/f39+/0CAwMAAAL/Af8AAQIAAv8B/fz8/P4A/wAAAgQDAQIAAAIAAAEEBQkA/v/8+vv/+/oBA/38+PX+/v8EBQb//vwC//3//vn6+Pb+/PoA/Pv7+ff+/P0A/gH7+vj9/Pn9+voDBAYGCAoHBwr//fn09vX8+/gFBgcDAwQBAf/+/f8CAwEAAAL+/v4BAP/+/fwBAP/9//39/v7+AAACAgMAAQH9/Pv39fby8fXs6e0B/vgKCgUSEQ8GBwj+//4BAgP//wL//v///v/8/f4BAgMBAQIBAQD+/v0AAQIFBQoDBAgAAgIBAQH//wD/AAAAAQAAAAD/AP8AAAD/AAABAAD/AP8AAAD//wAAAAAAAAAAAQABAP///wAAAAAA/wAB/wAAAAD//wABAAAAAAABAAEAAQD+AP8B/wD9AQACAAD/AQEAAAAAAAEAAQAAAP//AAAA/////wAAAQD//wAAAAAA/wEAAAAAAAAB/wD/AAD/AAAA/wAAAAEAAf8BAAH/AP8BAAD/AQD+/v7+/f7///8BAf8AAAAA//7+/v///gAAAAD+/v7//wABAAD//v/9//4AAQH9/fwBAwT/AQD//v8AAP8AAP///v3+/v3/AgIA///+/fz//vr///7/AP8CAQEBAgL9+/3+//8GBQb5+fj8/f4CAwEDBQX7/PgHCQkICQz9+/X9/Pz49fMGCwQEBgkDBAgAAgAEAgP/AAAEBAj59/f/APoA//sBA/sAAQH/AAH+/v///vr/AAH+AAMCAQH+/gH9/f0AAv0CAQMDAgICAQT/AQEBAv8BAgAA/wEDBAQAAAL///0A/v8EBAQC/f/8/v7//v0BAQEBAgL//v8BAAABAAD9/wEAAAAAAQH//wEA///+/f8A/QH//QD8+/729vn3+fj9//38AQD8/v7z9P/t+f4Y+P/zCgEWCAATBgYIA/4DAv4FBgME//8A/wAA/wABAf7//wD/AgECAAACAgICAP8BAAD/AQAA/wD/AAEBAAIA//7+/Pz6AQAAAAD/AwQDAAECAAAC///+/wABAwMC/f///v8AAQABAwQG//78AQMAAf8F//3//Pv3/fv4//z6/voAAf0A/f4CAP8B+vf4+vj5/vv69vPzCAYEAgICAQIBAwYCAgAABgMC+Pf3AgQECQwNBAUI+ff3+vbx///8AQAAAP7+/Pz6/gEBAgICAP8B/P38AgIDAf4AAgEBAQEC//7+/f//+fz7CQYG/v/++PT48e7w6Ofp9PL0BwQABwUEAgIFAQIE/wAB/QAAAgD//f7+/P7+BQMF//4BAQEA/P39AQQDBgcKAwcG/wMC/gEBAAD/AAAAAAEA//8B/wEAAAAAAQAAAAAA/wAAAP8B/wD/AQEA//8AAP///wAAAP8AAAD//wABAf8B/wAAAQABAAD/AQAB/wEAAAAAAP//AAAA/wEAAQAA/gAAAQD/AAAAAAEBAAD+/wABAP//AAAAAAAAAP8BAQAA//8AAAAAAAD///8BAQAAAQAAAQAA/wEA//8AAQAA/wEAAAEBAAAAAP4AAgABAAID/v79AQAB///+//7+/v7///8A/////v7///79AwIE/fv6AAD//QAB/wH/AgD/AP/+//78//3+AAABAAAAAQAB///+AP8AAP37/fv7AwL//wEA/wAAAP8AAAEB+vn6BAUFAQACBgcH/v79Cw0Q9P39AP78CgsP9PH4AAD9/f/7+/r2AgQGBwgI+///Af4D//0AAwT9AwIF9P7x+/39AQAEAQICAAAD/vz7/vv5AQEEAP8AAwMDAf8ABAID////AP///v/9AQL/AAACAAEAAQECBAMDAP0B/gD9/v78/v37Af3+/wD/AgH+/gL+//7/AQADAAD/AAECAAACAAAAAAIA//4AAQAC//4A//79/fz9+vj8+ff7+/n7+/z9/f78/gAA+/8B/gEA9/z+9vP58/n87wr9HAv+EgQCDQP/BvwBBAAAAAEAAP///////wEBAQD//wH/AP///wEA///+/gABAP8AAQAA/v7//v7+/f8A/gD////+/QD//wACAAAA/////wQEBv7+/fz8/f7/AAQCBQICAf3+//7++/79APr7+v77+P/9+v78+vn5+gL8/gQAA/v9/fv49vz59gD8+gH7+v0A+wAFBAQFBf39+//9/P79/v4AAAcHCQD/Avn49/v49gMBAQMDBf39AgEAAAD+/f4BA/8AAf0A/wMC/gAAAf37+wL///3+/gAAAf79/P7//vz9/fv9/PHx8eno5/Tw8v/+/v//AwECBv8DBf8CAQECAP79/AD+/////vz7+gQDB/z9/v/+AP37/AUHCQMFBgIFBgEBAv///wH/AQABAP8AAQAAAAEBAAD+AAABAAAAAAD+AAAB/wD/AP8AAAAA////AAAAAAAA//8AAAAAAP8AAAD/Af8AAAAAAf4AAQAAAAEAAAEA//8A/wD/AP8AAQEBAP8AAAAAAAAA////AQAA/wEAAP8BAAH/AP4AAAD/Af8AAAH/AP8AAQAA/wAAAQAAAP//AAAA/wD/AQAAAQIB//8BAf8BAAAAAv7/AQEA/QH/Af79/f///fz8/AAAAf//Af///////gEBAf79+////gMCAv7+/wEAAP78+/7//Pz8+wIDAgACAwABAAABAP///////wEA//39/AQFBwACBf8BAv7+//38/v37+wEA/wEAAPz9AAQFBwQEBP0M+vv39v8DBgQICf8AAP7+Af7+/f78+gMFBAUDBAAEBgH/Afr39AMFBgYICfr7+v39+wIBBP4AAgMEBQAA/v7+/QD//wAAAAD/AQIDAgABAP///f///gEBAgECAwMEBQQEBAD//gAC/wL/AQABBP78Bf39+v///f39+gABAAICAQD//gEBAf4AAv7+Af4AAAEBAgEBAP///wAAAQAA//38/fb19vTx9Pb09/79/gAAAQEA//8BAP////sAAvT+/vz4/fX8+fH6/hoLBhcIBg39/QQA//4AAAAC/wAAAAAA/v8A//0AAQH//v3/AQABAAAAAAEAAP7//wAA//7///wA//3///4AAQABAAH+/v3/AP8BAgP9/v0AAAACAwMAAwUCAgL8+/r7+vsAAAIAAAIBAQL////6+vv9+fj6+voA/P0HAAH9/v749/H6+PP99/cCAPwAAQT/AQEBAgH9/P8C/////v8GAwUHAgT69/X9/f0BAf8AAgL9/gD//wD9//0AAf4BBAMAAAQA/wEA/gH7/fsA/PwBAgD8+/r+AAABAgQFBQP9///2+ff09fTq5uf39PYFBAIJCQwDCAUCBQYBBQT/AgL+/v4A//z6+PT/AgUDAgUICAr8/PoBBAUEBQcDBQgAAAP/AAIAAQEAAAAAAAAA//8AAAD//wEAAQAA/wAAAAAAAQD/AAAAAAAAAP8AumkPTAABAABJREFU/wEBAP/+////AAABAAABAQH/AAEAAAD//wAAAf8AAAEAAP8A/wD/AAAAAAIAAf8A/wD/AAEBAP8AAgD/AAAAAQAAAAD//wD//v8AAAIBAAD/AAABAAAA/wAAAP8BAAAAAAAAAQD/Af8A/wEAAP8A/wH/AAH/Af8B/wEBAQEB/wAAAAH+/wD+///+/v4AAAACAgMB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+Pb3AP4BAQIBAwACAgEAAQIAAAEBBP///f/+/f8A/gAB//8BAf8A/wAC9vwABP/9+wD//wECAv////4B/wEBAgEBAgAAAP/+//7//f8A/v39/QD+/gEBAAEA/vz6+f4CAv7//wH///7+/v79/QICBQEFAP3+//7+/QQFBQAAAv7//QD+/vz6+AAB/AIC/gL//Pn39v7/AQEA//n7+////v/+/QABAwYJDwoLDgAFAvf28/36+AP9+f/89/8A//4A/v/+/gIDAP3+/gIB/QH/AP///QIDA/7//gP/BAD9AQIDBP//AP7+/QAAAAD/AP4AAf3+APn7/Pr7/Pz29/Tz8/37+/bx8vXy8/n2+AcLBQgDBQH+/gD+/gEAAfz8/P/9/v0A/f7++gEEAAAGBv38+wMFBQkMDAICBAECAgAAAAEBAAECAQAAAQD/AP8A/wD/AQABAP8A/wABAf///wABAAD+AP8A/wEAAgAA/wAAAf//AAAAAAAAAP8AAf//AAAAAAD//wD+/v4A/wD/AAD/AAABAAAAAP8CAQABAQH/AAABAP8A/wAAAAEBAAD/AQD/AAABAQEA//8BAAD//wH/Af8BAAAAAP4BAQD/////AAEAAAAAAAD/AAD/AQD//wAAAAAAAP8AAP8AAQAB/wD/AQICAv7/AQD+///9/P38/P/+/QABAf/+/v7/AAEBAf7+/wD///3//v/+/AABAv/9//7+/P///v8AAAMCAv77/AP/AP79+/38+wgLCAcDBfj6/AMCAvz6+QMDAwD/AwUFBfz8+/78/f3++QIIBwEBAQYEA/f59fr6+gQHBggLDf79+v///v39/QH///n39wD//QYJCgIBAf8CBPn7+gEBAAMDAwIDAwL+AAECAf3////+/gD//QMCAQIDAgIDBAAAAQECAQAAAQMCAQEBAAEAAQAAAAD+AAYFCPoAAv38+wICAgEA/v7+/QECAgQFAwAA//7//QAAAQEAAAL/Af3///79//39/P/+/gADAAMFAgkJBwQEA//+/gABAP8A////AAIBAgABAf4B/gL+Af8A/wD+Af8B//8B//////3/AQQBAP8CAQAB//4AAP7//wAB/wD+Av8A/v/+/vz+/////wAA//8AAAD+/v4AAAAEBAT+/PwB/v7+AAAB//8FBAMCAwT+/f4BAgEDAwMCAgL9/QD+/wEA/v3+/vz9+vj9+/j6+PT7+/oICQ/7/fr+Av8BAAH8/v0AAAMFCA0DCQv8/PgA/fwE/vz+/Pj//vv/AAL/Af8AAgACBAQA/f77+/wBAAAEAwMBAgP/AAH+/wAAAAMAAAL9/fr9/fsDBAb+AAD5/fv6+/r6+vr+/QD08/X18/X6+Pj39/n5+vsGBAYDAgX////8/PsHAwr+/f75+PgA/wEDAfoGBQD+AgQBAAEBAgIGCAsAAgcAAgQAAgL//wAAAQIB/wEAAQH/AP8B/wABAgEAAAAAAAIA/////wEA/wD/AAAAAAH/AAAA/wEA/wAAAAEA/wAAAQD//gAAAAD///8BAAD//wD/AAABAP//AAD///8BAAEBAAAAAAEAAAEAAAAAAAABAP8A/wAA/wAAAP8B/wEAAAEA/wD//wAAAQD//wD///8AAAD/AAABAAAAAAD//wAA/wD//v8AAP8BAAEAAP////8A/wAAAAABAQD+/wD//////v7+/v8A/wACAQH+AP//AP8BAQIA//8A//3+/v39/Pv+/PwBAgQAAAL////+/fwDAgIA/QADAQD8//39+/wFBgYDBAX8/P8B/f77+vv7+fgCAwMDAwX+BP0C/v8GBQH19vcCAwEAAf/9//0BAQEBAP76+PkGBwUHCA0AAAH69PQA//8C//z9+fX9AwL+/f7+/P4C/gD+//8BAP8BAQMCAgD/AAACAQEAAgIBAQP///0BAgAEBAH+AAEBAQAAAQEBAP4AAP8CAP8AAQH9/fsC/wMGBQj+Agf+/v38/Pj//vz8/foA/wD/AP/+//7//gD+AAH/AAAA/gAA/wD+/wEAAAEAAf8DBQAGCgIKDAT19QD8/AD/AAD//wEB///+AP/9AQD/AAD//wD/Af7+AAD/Af8BAAD/AQAEAAABAAD//gAAAAABAQEAAP8AAP7////9///+AgD//v//AAD//v3+/gD/AP8AAAD//f39AgMCAgABAP7+Af8A//v7AAECAf8DAQEC/fz9/fz9AwEC/wAA/fr39/Tx+fXy//3+Cw8T/wEGAfr/Bf8G+/z5/vr9AgQHAwQD+/z7/vr6+/X1AP37AP7//f8AAP/+AAIC/gD//P3+AP7+/Pz7CQcIAgIC/v7+AgQEAAEEAAID///+/Pz8AAMA/gD9/f8A+vz58/Py+vn8/fwA7+3w7u3tBAQF+vn79/f7/gEDBQcHAwYHAQIC/f7++/n6/vz6/v7+AAMDAwYKAP8DAAIFBwcLAAEEAQEEBAMIAgEEAAICAAAAAP8AAAD/AQAA/wEA////AQAAAQAA/wABAAAB/////wAAAQEA//8AAP4AAQABAf8A/v8A//8AAP8A////AQEA//7+/wD+AP/+/v7/AQEAAQEBAgMBAAEBAQEBAQAA/v8AAQABAAD/AAAAAP8A/wABAAEA/wABAQAAAAEA//7//wAAAAAAAAABAP///wAAAQAAAAAA//8A/wD/AQABAAAB////AAAA///+/wAB/v3+///+Af//AgEAAQME/gEA/v/9//38AgICAP7//v78+/v4/Pv7AP7+//4ABAIFAgIC/v0AAP7/+/v6BAMDAP/9/fz7AwAA//8D/fz9/fv7/fv8/fv6/fr4AgYIBQUG/AAB/P7+BAD+Af77/Pj+BQcH/f/+AgIEBAP8/vv6/fv+AAADBgUJ+wT5+Pz3AwIBAQEBAPv6//79/Pz5AP37AgIABAME/P7+/v78AwMFAQH+AAH+AQAD//8B/v4A/v78AQMEAAIBAwMBAwEBAAEBAAEB/////v/9/Pz9AP3+AwME/wEAAAIBAQECAP///gD9/wAAAAAC/wAA//7/AQAAAQIAAv7/AwIB/f7/AQEABAYCBwoFDRAK/fv39PP6/Pn+Af4AAf4BAQEABAAAAAAD/gL++/79/gAAAQEAAAAA////BAICAgD//wEA/v8AAQAAAP8A///+/v/+/AIBAAH////+/f8A/v/9/P///wAAAf39/QECAf78/v/+/gH///v//f7+AQUGBwECAwEAAwMB/wACBQIE/PX09/bz8fv28gAAAwYLCv0BBfz7+gAA//38/fv4/AQEBwkLCvv8+QIA+/r38vz89/79+/8A/v8AAP7//gL////+/gIHBf3+AAIBAP8B/P7/Av7/AAL/BP8AAQIEA/v6+gAB/wEBAv8BAvv6+vPv8+zq7fv8/vv6/u7r7vDv8goLCQICA/z+////Afr+/vf6+v8FBAf///v59/v69gMEBAQFBQEAAf39/wUHCQQHCgIEBgQEBAICAgABAQAAAQD//wEB/wAAAQAAAAEAAQD/AP8AAAABAAH/AP8A/wAAAQEAAAD//wD/AAAAAP/+////AAD/AQAA/wAAAQEA/wD///8A/f///f///wEBAAABAAABAwD/AAICAQAAAQAAAAEAAAAA/wAAAf///wAAAAEBAP8AAQH/AAAAAAD//wAA/wEBAP//AQAAAAABAAD/AP8AAAD/AAD/AAAAAP////8A/wH/AP8A/wAAAP79/f///wEAAP//AAIBAwAD/gAAAv78/QAAAQD//fz8+vz6+vv49wD//gD/AAIDBv8AAAH//wMCA/z//v37+v/9Af78/P7//QMDBf///fn28gABAv78/f79+gMB/v37+gEBAQMCAv/9+/z+/AMBAfj29QIBAP79/wICAAAB/QEA+/39+/38/gD9/gQEBAD//fz8/AYFAv/+/f79+AIA/P4A/QIBAwQDBf8A+v3+/AICAgMCAv//AwD/AP3//wICAQAA//3+/QMBAwAA/wEBAgABAv7//gAAAAIBAv3+/wD//ff6+QQDA/3+/AIBBP4A/v7/AQAAAP8AAgEBAP7+/P7+/v////z+/f7///8A/P8A/AAB/ggKCBIYEwgNCPbr8/Lp8Pn3/PsA//8AAf///gIBAQEBAf0AAQMA/gD/AQD/AP7/AAQAAQH/AAAB/wEA//79/v0A//8A/v4A/vv+/v3+/P3///0CAgAA//7//f77+vsCBAMA/gP9//8CAP7+/v3///8CBAf/AAD+/////fz//v76+fX++/f7+vj+/f0BAwYGBAgAAQX7+/oBAQH8+/v8+/wFBAYDBAX39PX/Av0A9/z39PL+/fv7/fv+/PoBAAABAf///wADAgICAAT+AgAEBQT//wH/AP7/AAH8/v8AAv7//Pz9/PwAAP8BAP8AAv/49vn38vj07/b29/n09Pb19Pb++/73//gAAP7+/f4LCAn/AQD6+voCBf749fX/BQACAv0B/wH/AP709vYPERIGBwoGCAoFBwgDBAYBAQAAAAEA/v///v/9AP4BAQABAQIAAP8BAAEAAQH//wEAAAAAAAAAAAAAAP8A/wEA//8A/wAA/wAA/wAA//4A/wAAAP4AAQAAAf0BAP4AAQAA//8A/wH/Af8BAP4AAQL/AAAA/v4BAwIBAAD/AAEA//8AAAAAAAAA/wEBAAAAAAAAAP8AAAAAAAAA/wEB/wD/AQAAAAH/AP///wAA////AQH//wABAAAAAAD/AAAA/gD//v4B//8AAAD//v7///8A//8A/////v///v///f78+/v9/Pz//fz8+/kB/wAEBQYBAQP6+/wDAwUA/v/7+vr+/fv8/P79/PoBAgL/AQL6+ff8//4EAwcBAP7//vz8+vkBAf79AQEAAP8FBAL18/gA//78+/n49PwCAgH9/f3///0AAP/9+/r+/f/7+vwBAP////4BAP78+vkFCAAA/fgB//4DAwMBAgYDAAP+AP4CAgABAP8AAAH///8BAf8B/wH+/wABAgECAf////39/P7/Av4CAwUBAQP/AAD+/f4A/wEA//4E/gD//fsBAP8ABAIBAAMBAf/8/gEB//3+/v8CAQH+///9/Pz+/v3+AP/9//39/vwA/f0EAQEHDAsABgUJAwcG/gHt6e7++Pv////+AP//AQD+//4DAgAE/wP////9//8BAAEEAQABAAD/AQIBAP4BAQAAAP//AAD+//79/v36/Pr6AAD+/AD//v4A//8AAAD/AP/+/P39BAUH//8A/gD/AwUFAgME/gEAAP7+AAEA//37/vv9/vv7/fr6+vn7BAQE/f39/v7+/////f38+fn6AAAB/wH/+fj1AAH+/vv5+fn2AwABBAIB+v38AQIBAgAC/v0AAQAAAgEF/v0CAwII/v8C///8/Pz6AgQFAQEC/Pv7/P34AQD+BAQD/v4A+/j47ers6ujq6enr9vX5AQAD/vz+AP79AgAF////BAQEAgMD/////Pz88u7z/PkGDg4IBwgDAgQC+fn4BgkLBgkKAwMFAgIFAwIFAgMEAgMEAwIDAQAA////AQABAQAB/wAAAQAB/wABAAABAP8A/wAAAAAAAP8A/wAB//8AAf8B////AAAAAf8AAP8AAAD////+/////wD9AAH/AAAAAQABAAEAAAABAAAAAQEBAQD/AAECAP//AAAAAQAB/gD/AAEAAQEBAAAA/wAAAQAA//8AAQAA//8BAAAA//8B/wAA/wEAAAABAP////8B/wD/AP8A///+AP8AAP8A/wAAAAABAgIB/f79AAEAAP///wAA//7/AAAAAAAA/v7//f7+AQEA/v7+AwECAgMD/wEB/f///v4BBAUA+Pj4//78/fz9AAD8+/z6BggJ+vn4+vn3AgICAgIG/wEBBAIC+/z7/f/7CAgH+vv9AgIBAQIB/fv9AgIA/fz7/wEBAAMDAP8CAQIDAP7+Av8AAgD/+vv7BAQE/vv5AAH9//4CAgEB/P7/AgICAgED/v//AgEB/wEC/P3+/v/7/v78AgIBAQICAQD//v//AgIDAAH/AP8A/v39//8BAgMBAQEDAAEDAf///v//AAD//f78/v/+CAUJ/wL/AP3/AP///P39//7///7/AP//AAAB//8A/wD//Pz7+Pf3Af/9BQIBAgMEAwME/wwKCBP8Dvz9Ae7y9ff6/P8A/f/+AAABAP8AAQH/AgIC/gD+Af8ABAICAf7+Af3//wEA/gEA/f///v/9/P7+/AD+/QMDAP/+//7+AQQDBP7//v7+/vr5+QICAwIF//0AAwMICQMCBP///QAA//8B//78+v77+vr49v359v78/gUEBf7+/Pj5+QD/AQEDBf/9/QAAAP3+/f78+/77+wMB/vn38wEBAP3/APr5/AIBBAMDA///Av78+///AP4BAAEAAgH/Av79AAAAAAAAAQICAwABAf4A/v7+/v7+/P39/f////f39/Xx8u/v8e/w8/r6/QQDBwQBAAcEBQYEBv4AAgABAP3+/gD9//j3+QEB+vf2+gYE/gQDCgQF/wAC/wcHCQUGCAMDBAIBAQIB//7+/f8A//////7//gL//wAAAP8AAAEBAQAAAP8AAAD+AAABAAD/AAAAAAD/AAAAAAEAAP8AAAD/AAEAAAAAAP8AAP///v///v8A/gD//wAB/wEBAQABAAD/AQEAAQEBAv8AAQEAAgAA/wABAAAAAQD//wEAAAAAAAEAAAAAAAD//wABAQD/Af///wABAP7+AP8A////AQD//wD/AP7//wD/AAD//wD//wABAQECAf///wH+//8AAP7+/gAAAAAAAP8AAAD///////3+/v3+/v79/AAAAAABAQEBAgMFBgAA//39AP8A/QMEB/78/f78+wMCAwAF/vf29gYFB/77/Pf19QD++/wAAAUFCQEBA///AAD//f36+v//DgABAP78AAIAAvr9/gECAwICAfz8/wH+Afz8/f///gD/AQAB//7+/gH//v7+/gEDAgD/Af7+/gICBAIB////AAD//v79/AIC/wABAwABAP///gEDA/7//gD//gICAgAAAQAAAgICAgH/AP79///9/f3/AAMD/wABAv3//f///f///QMDAQH+AP39+v8AAP/////+/v78/f/9/f4AAf3///7/Af8AAP/+//z6/vr4/AEB/P0A/gMCAQQFBgECAgQNCAr7DQD+/gEA9vT3+P7+//8BAQAAAAEAAQD//wIBAf4A/wQA/gD///8A//7+/v0A/vwA//3//fz//f0AAAIAAP/+AAABAAL8/P79/fr/AP4CAQEGBgYEBAUCAQT+AQP7/P0B//7///7+//v49vP7+Pj8+Pf9+voA/v/6+f0A//z9+/gAAQMDAAH+/v39/vz+/Pv+/fwB/v36+/YBAP4D/wH5+fr/AP8EBQj+/QECAgQEBAL9/Pn8/PwBAP8HBwj/AP///f4BAQP+/P79Af38/f4A///6+vr59/j6+vv6+fv4+Pr39vkBAAP9//339/YEAwT+AAX/+fgHCAX7/v/49/YFAwIGBwQGBv4DAQH//v79/fz+//4GBAMICQoFBAUCAgQC/wD9/Pv9/Pr//v7///z/AP3/AP7//wEAAgMAAP8BAAEA/wD/AAAA/wAA/wAAAP///wAA/wD/AAABAAD/AQAA/wD///4AAP8AAf8AAP8A//8BAgD+/wEA/wAAAAAA//8BAAEBAAEA//8AAP4AAAEB/gH/Af8AAAABAQAAAQEBAAD///8BAAH///8AAAEAAAH//wAA/wAAAAAA/wD/AAAA//8BAAAAAQEA////AAABAAAA/gAAAP/+//////7+//8AAAD+/v7+/v8A///8/v38+/r+/v7/AAECAQH8/Pz/AAABBAT+//38+vn9/vwIAgL5+fn6+PgDAwEDAgIBAAIB/wD6+fn9/PoC/vv+/v/9/f0DAwL8/Pv8+/n9/fv5+ff/AgT9//37+PcA/foA///+AP8BAQL/AP4A/f77+vj+//wCAgMAAP79/fv9/f3/AQQDBQL+/fz//P4CBAMA/v///vsBAf7/AP8CAgP/AP/+/f4DAwEB/wH6+/v+/gEDBAcABAMA/wL///0DAAH/AAD+//39/P4DBAUCAgD9/f/+/v4DAwIBAQH9/fz9AP/8/Pz//gEFBAf6//z//v4BAv8A//3+/v78+/z7+vz8/f3/AP4A/PgDAf4F/PkFBwcBBQMJEQwDAgMDBgb46ez69vn//v4CAAIEAwL9//0DAQAA/wAE/f36/v/////+/P37Af79AwH////+/wD///3+/P38/v7+AQAB/v///wD+/v/+AwQFAwUI/gEEAAIE//z9/vz8AgIA//39+/j2+vXz/Pr2/fr5/vv+AgADA///+Pj4/wD+AQIB/f36/Pv6Af/+AP////v6/fz7AAH/Af4B///+AQD+/wAA/v3+AAIFAAABAQIBAP8AAP//AAH+/f37//39////AgIC/v///f37/vz+/P399PLz8/L1//4B/f399PT38/P3/v8BBQYI/gL8/v7+/QEC/wMB9vr69vj6Af8A/QABAv8CA/4AAAADAgECAwMFAgICAgQFBAUFAAEDAgECAAD///z+//7+///9///+AP//AAD/AAAAAQD/AP8B/wH/AAABAf///wAAAP8A/wAAAP7/AAEAAQABAP//AQABAQAA/wAA/wH/AP//AAAAAQECAAAAAgH/AAABAP8AAAEBAQEC//8AAAD+/v8BAQEBAAABAP8AAAEAAQEBAP8AAAD/AAAAAAD/AP8BAAAA//8AAAAAAQEA//8AAQAAAAAAAAEC//7//v79AP/+AAEBAP8A/////wAA/////wAAAQEB/v/+/v4A//7+/v7+/vz8/v//AQABAwMD/Pv8AQABAgICAQIA+/r7/Pz7BQUI/Pv5//38BAQE//79AAACBgYI+Pj3Av8CBgME+v35/f///fz8//8E/v7/+Pj5/wD8+fr2AgQHAwIA/Pv3Af77AwQF+/38/wEBAQIFAwMBAgEB/P38//79BgUG+fj2AwIC/QABAAACAgIA/QH5AgAAAQQC+/r7///+AAEB/f38AwIBAAD/AP7/AAIBAwMD/fz8AQH+///+/wECAQACAgL/AAEBAf8A/wIBAQAAAQH//AD+/wD+/wABAQIBAP8AAP4AAgEB/wMB//8BAAH+AAAA//79/v79/f39+Pf5+/n6/vz9+vv4//77AgH+/Pz8+vr7BAUGCAcKBhINAwoH+gH+/+ns+Pb8/v3/AP//AwAB/QH+AgIBBP8A/wIBAP39/gEAAQAAAfz8/f7+/v/9/QMBAQIBAP7//fz9/gEAAAAA/v79/QQHCPn7/AIEAwH+//z8/P/+/fz7+/79/fr49v/7+fz49fv6+AH+AQECBfv59QD//QMDAv39+/v69f/+/wMCAQH9/P79+/7/+wEA//z9/AEAAP8AAP////7+/gQDAQICAf79AP8BAP8A/v7+/v77/gD//gAAAP4AAf39/vz9/Pr7/Pr4/Pf1+PLw8///AQsKCvv6/fz9/fv9Afv+/v0AAQMCA/7+/vv7/fn6+vj8/AkGBgABAQACAf8BAAECAgECAwECAwIDBQMFBgACBAEBAgECAgIBAgMDAQIBAQEBAf8A/gD//f///v///v/+AgEC/wD/AgD///8AAP///v8AAAH/AAABAf8AAAH///8AAQEA//8BAAD//wD//f8A/gD//wAAAQABAAABAQH/AAACAAEAAf8AAAD//gEAAAAB/wAAAQAAAQEAAP8AAQAAAQD//wEBAQAAAP8AAP8BAP//AAAA/wD/AAD/AQD//////wAAAQAA/wAAAAEAAf8BAgEAAP//AP/////+//7//gAAAAAA//39/v7//v////7//v7//wIAAf8A/vv7+v38/P///wICA/z9+vv6+gQFBQIDAwH/AAQCBP3+/P/+/vz8+v4BAAAAAAD//QIBAAAAAQEAAPr4+AQFAwEDBAEFBAD+/f78+vv6+woKDQYFBfj19QcHBv39//n6+gUG//79+gD//AH+/P4AAgYFCAUGB/38+QMBBPz8/QQEBQD+/gD////9/gEB/wEAAgECAv4A/v///gAAAQD///7+AAIDBP39/fn6+AQCAQMDAf0AAQAAAP79/P8AAAD+AQAA/AEAAQL/AP8BAf///v8BAv7+AAH/AAIAAv3/AP//AP8AAP4A//7//gD+AP/+/vr5+fr5+Pz7+/z8+wD+/P0A//8DAQIB/f36/v79AAgKCQMJAxAWDf/8+vD+9Pn3/P7+//8C////AAIDAgQAAAD/AP8CAwAA/wP/AQD+AAAB/wD////8/Pz9/P4AAAIEAwD+/vz9/P3////8+foBBAEA/wH9//j++/v+/fj6+Pj8+fr5+PX9+/j7+ff//v0AAAD/Av3///8FBAP9/Pr/+/j//foCAQP8+v3//v8EBAf7+v39/PoBAAD+/wD//wEAAAL////6+vf//wADAAH/Av4AAwEA/f4BAQD/AP/9/v0A/f/8/P74+Prs7u/9+f759fb18/P6/fz8/foBAwABAgEFAQP7+f37+/sAAwT7/QEC/v39//4GBAUGBAMBBQECAf8B//8DAwQFBggDBAcDBAoHCAwDAwcFBggCAgL9/fv+/PsB//7//v3//v3+/v0C//7//v//Af8A/wEAAP8A/wD/AP8AAP4AAAD/AAAAAAEB/wEAAAAAAP8A/wEAAAAAAP8A//8A//3/AP8AAAEB/wEBAAL/AP8A/wEBAv8BAP8A/wABAf8BAQAB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//3//gMCAfz+AAEBAgMA//7+/gAA/v38/AEAAP/+/v//AAEDAwABAAAA///////+AP8AAP38/v3++/3//f3+/v////39/fz8+/z8+/b29fPy8fr3+P78/AD8/AECAP39AAAAAgICAf8BAgIA//7//P0AAwICAfsA/AEBAQYKBgQIAwD2+/////8AAAICAQT//f7+/v4AAf///fz8+/oAAAAA/wAA/wECAwP+/P4B///+/f0BAQMCAwQAAAH7/Pz/AQEAAwIBAwP///0AAwQBAAACAQD/APv8+vz9/PwA//3+/vz9+fv8+/n+/P0AAAEBAQH8+/v///7+AAD8/P36+/0EAQECAgMAAQADAP79/v77/fz+/vwCAQL/AgH8/fz7/PsDBAP+/vr+/v38+/r7/Pz49fr28vr6+vcGCAn3+frw8vT8/fwDAwD+AP35+PsODg739voA+/8EAwL7/P0FBAQFBQP+AP4AAAD9/f4DAv79Af8CBAQEBAQEAwT//v3+/fsEAgIAAAAB/v///v3+/vz+/v4B/f0A//0A/v8A/wD//f/+Av4CAAL/AgABAAAAAP8AAP8A//8AAQAAAAAA/wD/AAAAAP4BAQL///8AAAAAAQAA/wEBAAIAAAAB/wD+AP4BAQIBAQABAAEBAQEAAAEAAAEBAAECAQH/AAD/AAEBAQEAAQH///8AAAH/AAABAQD//wD///8BAAAA/wABAQEA/wD/AP8A/wEAAQD//v7+//////8AAQEA//7//wABAf8AAP/9/v8CAgIAAQP+/v38/Pz+/v7+/f3//v8A/////v39/v3//wD9/fv9/Pr///4DBAL///39/v4DBQX+/v3++voFBgf9+/r+//719fUDAgEHCAj5+fcB/wQGCAn78/b9+fb59PMNERX+Cv38+fcCAgIDBQb//f0A/wD9+/sBAwIEBgb7/P37+fgA//8B/fwBAwP//v7+AP8CAf/+/f8EAwUBAAL//gADAgQHBgEEBAL9//4DAgEAAAH+//7//v3//gAAAgEBAQAAAP8A//7+/v0FAwX+/wD9/PwBAwIAAf////4AAP/8/f///v8BAgMAAAIDAQP9/vz9/f38/fv+/f/+/fz9/f33+Pf08/T39Pb9+voA/f4A//4EBAIAAgIBAgABAAEAAP7/AQH9/f//AP8CAwABAgMAAgD9AQH+BAP8AQD+AAEEAgD9/wEE/f37AQAA//z9/fz7AP8A/f7//f39AP7/Av//AQD/+Pr3AAICAwQGAAAC/wABAQAC//4AAgEEAwAE/gH0+vj1AP78+/39+vn3/f39BQQEAQH/+/r5+/n5/v79/f38//7+////AgIB//4B/Pz5/Pv7BAEEAQADAAEA/v/9/f78/v39AAEAAAH+/gAAAAABAAEB/wD//Pr4+/r3/fz8+fn99vf4+vb++Pf7+/z9BQcJ/gAAAAEA/P39AAEC/vn++Pb6Dg4KCwsK8/H3AwAC/gL+AwIBAAEAAf8A//8A/Pz9AQAABQMFAgIBAgEDAAEBAQD//v38/v8AAgEA///6/v4CAQACAgH9AQH///3//wD+AQD/AAD8//8D/v8BAf8C/wABAAABAQAAAAEBAQAA//7//wAA//8AAQAA/wD+AAAAAAABAf//AQAB/wD//////wEAAQAAAAD+AP8AAAEB////AQEBAQEAAQEAAAAAAAAAAAEA/v8AAQD//wAAAAAAAAD//gAAAP8AAAAAAQAB//8A///+AAD/AP8AAAEA////AP8AAP////7+AQEA/wABAP//AAD+/Pv9AP///v/+AAEB/v3//v7//fv9//7+Af////7+AQAAAf///v79/fv8AgEDAgQC//8A+Pn1AQED/vv7+vn2AP3/AP8BAgQE/Pv6AP3+/v8A/AD//wD//wIBBgkI9fP/BQH///z7/P39DA8Q9vEA+PXyAgQH+v33/v38A/4AAgMHAggL+/0A+vj4AQD//wAA//7+/wD+/Pz9BQMBAgEAAAEA///9AAEE/wAB/Pv9BQYF//78////AQEB//4A/f79AQAAAgEF/wAA/v///wD9/f38/PwCAP8BAQEA//3/AgEC////AAD/AQD/AwMB/P39/v//AAAAAAL/AgMB//z//f38/fz8+/v7+PX39vX4+/j9/fv+Af7+Af//Af3/AQYABQMDAQH//wD+/v//AQEC/v/++/sA/gIAAgMC/wECAwcI/AL2/wD/AgAB/gEABP/9/v8A//38+/38/P7+/v39/f78+wH//P8CAv3//f8EBQUFBgIEBAABAvz8/v79+/8A//79APz8/P/9AAEBAvn6+v/+/f/+/AD+/Pj1+QAAAAUEAgEBAv/+/QAAAgICAQAAAPr7+gAA/v39/QIAAf7//QEAAAAA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AAD+//8B///8/gEAAP8B//////8A/wAA//8A////AAH//v/+//v9///+//4A/v7+/f38/v///v///wAAAf/9+vn4/v39AQAA/v7+/v3/AP/9AgEAAf/+/Pv5Af///Pr4/Pz7AQICBgkL//77AP7+DwoP8/LvAP39+fvy/v4BBwcJ/wEBAgEC8/TzAAH+Av79+/b4+vr9DA0P+Pn5//r8/f37BQYIAAAC9vj8Eg4MAgb99/v9/v7//Pr4AP//BgkMAPr4/P36AQH/AAMCAQD/Av8C/v/9AAABAgED////AgIDAAAC9/v3BQYDAgACAAECAAQD/v/9Av7/AP8AAf///wH+/v/+AQIC/v//AQIE//8AAP8AAgIC/f0B//8A+/z6/v/+AAEC+/7//gD9/f79/f39AP79/Pr79fT17u/x9fT3/Pn7/fv8AQD+BAIBBQMCAQIDAgMC//7/Af7/AAH/AQEAAwIDAgIBAP////3+/QD8//8C/v78AAD//wEA+//+AwAABPv8+gEDBAEBAgIDAwAA/gEDBAYHBwEDAvz7/P38+/37+P36+f359/j28vf08/z6+P38/QD//gMDAgEB//7+/f8A/QEA/////Pv6+vn+/v8BAQMDBQECA/v++gEA//z9+/z7/f3+/f///vv6+QD//fz9+fv8+gEAAf7/AAH/AwEBA/7/Afv4+v4BAAAA/fn39/T09vr5+vn4/Pj29/r6+gD+/f7+/gT//wH8/AP//gcEAQQCAgUCBP7/AQABAgEBBAQBBf//AQIA/wUEAfv7AfsBAPn7+gIBAgMEAwIDAQYGBgUGBQD///b39wMEAwb+CQQBAgMEAwAD/v4B/vv9+wcGBQIDAv/+/P79+AD+BAH/+wEABgH//gAA/gD+AQABAgACAgD+AAAB/wD/AP///gAAAAAAAAAAAAEA//8A/wD/AP8A/wH/AP8A/gAAAAAAAgEAAP8AAAEAAAEBAQAAAAABAQIBAf7//v7+/gECAf7//wEAAQAAAf/+//7//gEA/v/+//7//wABAgAA///+AP7+/v7+AAECAQAAAf3+/v79/P7//wD////////+AP0A/QD+Af////z9+/z6+f38+/7+/gMBA/z9/AD+/wD///r9+/78+gAAAAAAAP7//QICAAMEAwD9/Pz8/gD+/vr6+f79+/79+fz8/AQECP38+/3+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//v7+/j2AQIF/f78APwDAQQD/gEAAP///wL/AAD/AP/+AQACAQEAAQECAf8AAQEA/gD/AAAA/v39AwEAAgID////AQEC//8A/////v/9///+AP//AQABAQIB////AQD+//7+/Pz7AP8AAgAAAAAAAQD////9//77/vz7//35AwL/Af7/+/j2+vn6/v79AP/9/fz9/f3+AwID+ff29PDt+/j5AQICAwMAAQQIAAIF+vv5AAH/AAIECwgHAAAE+fr7AAH+AAD7//r7+Pn9+fj4+/n5BQUF/wUA7+3s//z7BAIA//38AAAABwkJAgQE+/j39/Px9vb2BQMb9Pz8/f8BCQwS+vv4+fn0AQQJ9Pb7+ff1//38+fbw/P77+fn7BQUI+vn2BQYG9fP9/f79AQD/DA0P+/z7AwYEAgQK9/j7+vn7/wECAAAA+Pf1AAD9BwUHAgMI+/z7//z+BQcJ+Pf3AP//AgQB+/j5//38/Pz6//z9/Pr8/P3+/f3++/37///9BAUGAQED+/79AQIC/P///fz++/r9/Pv++/3/7ezu7+/w+PX4/fz8Af4AAgIBAwAAAQAAAwICAgEBBQICBAQCBAIB///+/v79BAACAAH/AQL+AAABAf/9////AP7+/wEDAQIB//8A/P4A/P///gAAAwAAAAEBBAQCBwQEBQMDBAIDBAcDAwIDAQEBAvoEAvv3+QEGBAYBAQH///8B+AEAAgQB/gD/AP0J/AEAAf77+vb38vz7/f7+AQYHDAICA/z7/Pz++v38+v/9+/39/f39//v8/vr5+/jz9PLu7vX19/r7/fv6+/7+/fr6+gEA/gMBAgEAAAMDAQICAAgGBQYFBQMDAAMDAfz+/wIFAwECAP8AAQEB/wL/AQD9/v3++wIDAgECAQQDA/7+AAD9/wD/AQEBAAMBAwABAf///f///QUDAPv/AAQCAwECAP//AP3/AQAB/v38/wMBAf3+//f19gUIBgH/AQH/Afz8/AUBAwEEAQMDAQEA/v3++P7/BwD+//77+/0D+f4F+gEE+wIBBQD9/f8DAAEAAAH/AP8AAAABAgAA/v//AQEBAf8A////AAAAAAABAAMBAAAA//8A/gABAv8A////AP7//v/+/wAA/wD//wAB///+/wAAAP7//f/9/AD++///AAACBQH/AAAA/gD9+//8+v78+v/9+QD//v39+/35+f349/7+/QD+/vv8/AD+Af7///nz8frz7gH+/QADBf8FBgECAQAB/QkHAwMGBgABBgICA/39AAMCAPz+/v79/fn8+v78+v/59fz19fj8/fXz7fz+AAkJCf/+APv+//7+//z19AkLC/8A+vj58v///vf38vb3+wwPEPz+/f/7/Pz99f358/z9//f29QgHBfz8/Pz9/AYGBv7//Pz7/Pj18Pz9/P8CAQYHCQQIBvz+/QH/AQMABAMEAfb29gQGBQAA//39/P7++wD+/v8AAQMEBPj49vr6+QMCAvv8+gL/AgAA//z9+vv5+f/+//39/vv7/v////79APr6+v/9/wADBPX39gMFBgEEBPv6//38APXz9vLy8/Ly8v33+QL+/AUDBAEDAAEAAAABAQQCAQQDAgUEAgUEAwEA//39/AICAQQEBQICAgMEAwMDAwAA//7+/f7//v0A/gD+/wEAAwECBP7+//z9/QD///8AAAH/AAT9+/3//wADCQQDBAUCBAL/AAD/AQEBAwYBBf8A//v9/fz7+fkA/v36+ff//fv//Pn8+/j+/fv3+PT5+PgDBAMEBgb//wD+//////37+vb8+fj8+/n8+/z7+//2+f35+f338fH08fP39/j6+v37+vv+/vwDAgAHBwQEBf////0BAgEIBwgICAcEBAUCBP//AP8EBQUAAgMDBAIAAv8A/wD//f4BAPwFAQUC//4BAf8BAAABAQL6/PsA/wEBAwT//wD//v8AAf4DBAH+/QAHBgMCAQP6/PsBAgIDAwT6+vv+/gH//P77+/34+foAAP7/CQn//fz7+voHBQb/AAQBAQABAgIDAwcAAQL6+vcBAgEIAwP++/gCBQj/Avz8/wAC/v0AAgMBAgQAAf8CAwIAAgH///8AAAAAAQABAQEAAAD//v8BAgIB/wEAAAH//v//Af7/AAD//v3/AP8A//8A//8BAP///v4AAQD//v39/vsA//0BAAABAAQBAAD+/fz//Pr++/kA//0BAAH+/v4A/v0A/fgD//n/+/r7/PwCAAICAQH39/T++/YGBAADAgUICw8DBgf6/wEAAgMGCAsBAwX8/gD9AAEEAAD+/wX/AAIAAQAI+//89vLz+fIDCQT+AAcHDRAFCAoAAQQEBQb5+Pr4+Pf5+PT9/Pf9+fgEAgH8APz19vQBBAjz9vcJCQj+AAT7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AP///gD////+/wABAgABAQIDA//+AAEA/gEB//78/QMCAQIAAP/+/v//AAACAgD//QABAf/+/gAAAAD/AP8BAf///wD///0B/wEBAwAA//4AAAABAgAAAQAAAAEB/gAAAAAA//8AAP8A/wD/Af7/AAAA/v/////9/wD/Af3+/v8A//z8/P///wMEAwAAAAECAgAA/v39/v77/v8AAv7/+/z8/P8BAwIJCgMCAQH//P349/b5+gcFAfv6+fj39gD+/f39/v79/AIFAwICAv79/P//AAMEBf7+/AIBAPv7/f8A+gQEAwEDBPz+/P7//v7/AP7+//v5/fn5/AkGBP4BBAEEBgEBA/37+/v7+/7+//7+APv9/QUEAgEAAP38/P/9+/39/gD+/////////wD8AQECAQAAAQACBPv69v7+/v///gECAwMAAfz8/////v3+/wYICAEDAf36+/n8+f8BAAABAP7//vz6+v7/AAUG//v+/ff2+AEA/wMBBP79/gADAP/9AP4A/QIAAPz8+/39/P///wIBAwMDA/8B/gABAv3+/wYFB/r5+vz6+wACAP79/vf29f77/QYHBgoIB/j4+PXx8QcHCQIAAAAAAvz9/gQBAf38/P36+vz9/Pv7+fX19AABAP8AAAEB/gEB/gQDBQMDA/78/fr29QQHCAIEBP77+v76+/36+/n19vz9+/r/8vf18f/79/349Pz49Pnz7//69//7+f/8/AAA//3+/gECAf8AAQEA/gH/AAIBAAD//ggIBA0MCfTv9QQCAgP//wAAAQL/AQAA/wD//v4CBAIDAwL//wUCAgH/AAIAAQABAf78+/3/AP4CAwT+/v7+/gD+/vz7+vn/AAIBAwQDAQL+/vz5+f7//gD9AwMAAgAEBAcMFBoB/vr49fH9//wA/fwB/wADAQIBBQwFCQAB+vL+/vsBAgADAP0D//79/vn6+fQCAP4C+QsFCAoDBAcGCAn//wD8+/n/Av8CBAP9/AMBAwQBAQL//wD9/v4BAQIC/wD/Af7//gAAAAH+//8CBAQBAAP+AAP+/f3/AP/9/v4GBggA/wEBAQEAAAH9/PwBAgD//v/+/v4B////AgH/AAD///8DAQP/AgL///3+/v3//wAEBAX//wABAP/+//4AAf8CAgMAAQAAAAD/AAABAAH///8AAAD/AP4CAQUAAP79/Pr/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AP/+AwAFBQMC/wAA+/8A////AgIC/Pn5/wD/////BQYEBAACAf8ABwUF/wIC//39AwABAwEC/wAAAP//AP7/AQAB//7/BAABAQID/v8BAAD//P7/+/8AAAD//fz7AgADAAD+AP79AQIBAgEBBAUDA/z//AQCAQQEBfn3+PwA+f/++vn39fv6+gMCAfr7+gABAfn7+v7/AQQGBv7/AQEAA/79+wQFAwsMCQUHA/T28vLz7/T38v/+/AQDA9jc2d3c2hAICggCBP8DAfj8+AD9/BMLCv4G/wkHBQEE/wEAAPv+/fb6+vL2/PD5/fD6/PL6+/v+AAABAgMAAgL/AAEAAAAB/wEAAAEAAQEBAf8AAAIAAAH//wMBAQIBAAIAAAMBAAMCAQQCAQX/AAIAAAIBAAgCAwkFBAoFAwgBAQYCAAkGAgsFAg8HBQkEAgoGBAMD/wIBAAQDAgMEAwEDAf3+/QUEBAH/Af38+wD9/QIDAf7////+/gD+AP79/QIBAf8BAf7//wD9AAD//wAAAAEAAf7+AAECAgEBBP////38+/8AAAAAAf//AP79/AIDAgIDBQEBAv/+//8B////AAACAQABAgEB//7//QH+//79/gMEBP///wAAAAMBAQAC/wD/AAAAAQEBAf8B/wIEAv78/v3+AAEAAAABAP/+/v//AgAA/v////8A/v8A//8AAQICAwEAAP39/QACAgIBAAD/AAMBAv8A/wABAQAAAP8A/wYGBf7/AAEBAQICAAcGB/n7+gH/Af37+wACAAEBAtGnO4UAAAEkSURBVP////8A/gD//QAAAQEDAwEAAQH9/wAB/gEAAQIBAf7///78/gD/AQMBAv79/f8AAgIDAQH//f8AAQH//v4AAQD/AP7//gMDBP/+/wEAAP3//gQFBP8A//z///7+/vr9+gYJBwYDBQD9AAD+Av8AAv8CBgEAAAICAgH/Af/+////Av//AAECBP8AAv7+/v3+//7/APwA/wICAQEECP76/AIEBf3/Av39+AECAgD+/wEAAv/+/QAAAf7++wAEBQAAAP///QIFAwMCAv4CAv///gACAwH/Af7//wH+AP4A/fz9+////v3/AAH/AQECAP3+////AAAAAAAAAAEAAQIA/wICAf7/AAD//wMBAAAAAAD/AAD/AP4A/wICAAEA/v/7ANxVLe/KpFuOAAAAAElFTkSuQmCC\\n\",\n      \"text/plain\": [\n       \"<IPython.core.display.Image object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# use cache with temperature 2.0\\n\",\n    \"for _ in range(2):\\n\",\n    \"    start = time.time()\\n\",\n    \"    response = openai.Image.create(\\n\",\n    \"        prompt=prompt,\\n\",\n    \"        response_format='b64_json',\\n\",\n    \"        temperature=2.0\\n\",\n    \"    )\\n\",\n    \"    print('Time elapsed:', round(time.time() - start, 3))\\n\",\n    \"    base64_data = response['data'][0]['b64_json']\\n\",\n    \"    \\n\",\n    \"    display.display(display.Image(b64decode(base64_data)))\"\n   ]\n  },\n  {\n   \"cell_type\": \"markdown\",\n   \"id\": \"6206011c\",\n   \"metadata\": {},\n   \"source\": [\n    \"### 0.0<temperature<2.0\\n\",\n    \"\\n\",\n    \"When temperature is between 0 and 2, a higher value will increase the probability of skipping cache search and makes the output more random.\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 5,\n   \"id\": \"10515319\",\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Time elapsed: 0.197\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"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AAAA/wABAP8BAgIBAP8B/QEAAP8AAAABAAAAAQABAAAAAQABAQEAAQEAAAEAAAEAAQABAP8A//////7+/f3//v7+/v/+/v7//wAA//////8AAQADAAEBAgACAwICAgMBAQIAAgEAAQIBAAD/AAACAAEAAQEBAQIAAP//AAABAAEAAQEAAAAAAQEEAwQBAAMB//7/AAABAgMAAPsBAAD//v8A//79/f0AAQD+/v4CAgP9/f3+/f0BAwMEAwQA/gD18/T+/gEICQkBAgMEBwYICAj+/v4BAAH8/f4AAAADBAP//wMCAgMBAv8DAQX9Af3+/wD9/f//AP77+PcBBAP+/v4BAwINDhQS9/Tx8OcAAP4AAQD/AQAAAQAAAAEAAf4A/v4AAQEA////AAD/AP////8A/v7+/v7//f/+/v////7+/v7+//8A/v////8BAAD/AAAAAAAAAAD/AP8BAAD/AAEAAP//AAABAAEAAP4AAAEAAAAAAAD/AP7//wEAAP8A/wD/AP8A/gABAQAAAAD//wAAAP///wAA/wAAAQAB/wH/AAAAAP8AAQEAAAD//wEBAP//AAABAAH/AP8AAQD/AAEBAAAAAAABAQEAAAAAAQAAAAEBAAAAAAAAAQEBAAABAAH/AQABAAAA/wD/AAABAQAB/wEAAf8A/wEAAAAAAAD/AgAA/wEAAQAAAAAAAAAAAQD/AP8BAAH/AAAAAP8AAAABAAH+/wABAP//AAABAAAA/wAAAgD/AAAA/wAAAP8BAAH/AQAA/wAAAAAAAP8AAAD/Af8A/wEAAQAAAAD///8CAQIA/wEAAQEBAQICAgIAAQD9/f39/v/+//8CAQAEBAQFBgYEBgYCAgH//wH//wAGBwcHBwgHBgYEBAQBAAEEAP////3+/v39/v7+/v7+//7/AAL//wAAAQEBAQEBAgEDAwMCAQIDAQAC//8AAf//////AP8CAAEAAP8AAAEAAP8AAQAB/wEAAP8A/wEAAP//AAH/AP8AAAAAAAEAAf8B/wAAAAD//wAAAAAAAf8AAQEB/wEBAQABAAEBAP8AAAEBAQABAQAAAQEAAQEAAAABAAD/AAAAAP8B//7//f79/v3+/v39/v3+/v79/f7/AgP/AQD//wEAAAEBAgEBAAIBAQICAQEBAf8B/gH/BAABAAEBAAACAAEBAQABAQD+AQEAAQIBAP8BBAMCBAMDBAIEAwYB9vb4AwICAAAB//8A/Pz8AQD+////AQAA/v3+///6AP8EAgQFAQID+/r6BgUGCQoL/f/+9/f2AwQEAvv59vPw/v//BwYJAgAC/f7+/QkICw0MAwMC/f3+//7/AgME//7+/v//BgUF/P38Av/+AQIE/v39BAUHExMb9vXv/Pz2/wD/AP//AP8AAAAA//8A/wAB///+AAAAAAD/AP8A/v7//f8A/v7+/v7///8A/v8B/v8A/////wAAAAD//wAAAAAAAAABAAH/Af8AAAAAAAD/AAAAAQAAAAD/AAABAAAAAP//AAD///8BAAD/AP///wAAAAAAAAAA//8A/wAAAQAA/wAA////AQAA/wACAAH/AAEBAP8B/wD/AP4BAAEAAAAB/wEBAAD//wAAAf8AAAEA/wAAAAAAAf8AAAAAAQABAAD/AAEBAAAAAQD//wABAAH/AQAA//8AAAAAAQEAAAAAAAD/AP8AAAEAAAAA/wAAAf///wABAQAA/wAAAAAAAAAAAQABAAAAAf8AAAAB/wEAAP8AAAD//wAAAQAB////AAEAAP7//wABAQH/AAAAAAD/AAD/AAABAP//AAEBAAEBAQABAAEAAAD/AAABAQAAAAAAAAEBAgABAQICAQIBAwIC///+/Pz6/Pz7/P39AP8AAQEBAwIDAQMCAP8AAwQEBQQFBwcGBggIBQcHAAIBAv///v7//v3+/v39/P/+/v////8AAAEAAAABAAACAAABAAECAgMCAwACAv8AAP8AAP8AAAEAAAEAAP8A/wD/AAABAAAAAP8AAAEAAAAAAAAAAAAAAQABAAAAAAAAAAAAAAAAAAAA/wABAAEAAAABAAD/AAAAAAAAAAEAAAAAAQAAAAABAAEBAAEAAAEBAQEBAAEAAAAAAAAB/////v7+/f3+/P39/P7+/f3+/v7//f7+//7/AAD//wIAAQECAQICAgIBAgAAAQAA/wIAAQECAgEBAgECAQAAAf8BAAAAAP8BAAAAAAIDAwYFBwEAAwECAwQFBQcGBfr6+gICAgD+/wEB//v6+v///wD/AAIAAQIAAf/9/v36+gQBAgcHCP7+/vv8/AkKCggKCf39/QD//wUGBwUFBvr5+Pv7+AgHBgcGB/39/vj4+fz7/AICAgMFBQMEBAQFBP79/f36+vz6+QD+/f38+/r5+QYGCQ0PFf7+AP///wAAAP//AP8A/wAAAAD//wAAAQD/AP//Af/////////+/v7+//3+/f//AP//AP//AP//Af8AAAAAAP8AAAAA/wABAAAAAQAAAQAA/wAAAAAAAAAAAAD/AAD/AP8A//8AAP//Af8AAP////4AAAD/AP//AP///wD//wD/AP8AAAD/AAEBAQABAQAAAAEAAQEA//8AAAAAAQEBAQEBAQAAAAD///8A/wEAAAAAAAD/AAEAAAEAAAABAAEBAAAB/wABAQEBAQEAAAABAgEBAQAAAQAAAQEBAAECAQEAAgEAAQECAQECAQECAgEBAQIBAQEBAgEBAAABAQEAAgAAAQAAAAAAAAABAQABAAABAAH/AP8AAAAAAAAAAf//AP8BAP7///7/AAAA/v/+/v/+//7+//7/AP3+/v8A///////+/v///v8A/gAAAQAAAAEAAQABAAEBAAECAgIBAgMCAwICAgEBAf38/P38/f38/f7//gEAAQEBAQEBAgEBAgMCAgYGBQcHBgcHCAYGBgEAAgT////+/v39/fz+/f39/v3///8AAAAAAAAAAAABAAECAQEDAQMCAgQBAQIB/////wAAAAAAAP//AP8BAAH+AP8AAAAAAAAAAP8AAAABAAD/AP8BAAAAAAAAAQH/AP8A/wD///8AAAEAAP8AAAAAAAEAAQEA/wAAAQAAAAAAAQAAAAEBAAAA/wEAAAEAAAABAQEAAAEAAAAAAP//AAD+/v7+/v3+/v79/f3+/v3//f//A/4BAAEBAQACAgECAgMDAgMBAwIBAgEA/gEBAQEAAQICAgEAAAIAAgD//f///wD//wAAAAABAAEEBAUCAgQAAAIAAAEEBgX8/f3//v/+/v4CAAMFBAb+/v0BAgH+/v4CAQECAQP+/v75+fYEBQYDBQMCAwT9+vr/AQEGBQYBAgP+/v4ICwsEDAP//v/7+/z29/UCBAUFBAQB/wD6/f3/AP8BAAAFBAT8/v4CAQH+/v/++/wDBQgDAwb+//8MDBLw7en+/PX+/wAAAAD///8AAP//AP//AP/////////+AP/////+/v7+/v7+/wD+/v/+/v7///7+////////AP8AAAD/AAAAAP8B/wH/AP8AAAAA////AAAAAAAA/wD/AAAB//8AAAD//wAAAf//AAEAAP//AAAAAAEAAAD/AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEBAQAAAAAAAQAAAAEAAf8AAAABAQAAAAABAAEAAAAAAAAAAQECAQEAAQAAAAAAAQECAAEAAQEAAQAAAAAAAAAAAAEA////AQABAAEAAAH/////AQABAAAAAQEAAAEAAP8B/gH/AAAAAP8BAAH/AAEBAQD+//8BAQH//wABAv8A/wEA/wD/AAAAAf8AAAAAAAEAAP///wEAAAAAAP///wAAAP8B/wH+//8BAAAAAQAAAAAB/wD/Af4BAQEAAQEAAQAAAQEBAQEBAwEDAwMEAwMCAwP+/v78/Pv7+/v9/f4A/wAAAQEBAQEBAQACAgMEAwMGBwcHCAcGBgf/AQAE//////79/v79/v78//7////+///+AAACAAAAAQABAQICAQMCAAMDAAEB/wAB/wAAAAAB/wAAAQAB/wH/AQAA//7/AAD/AQEA/wAA/////wAAAAAA/wAA////AP8AAAAAAAAAAQAAAAABAAH/AQAAAQD/AQAAAAAAAAAAAQAAAQAAAQEC/wH8AQH/AQEAAAAAAQABAAAA//8A///+/v7+/v39/v79/v/9///+/wD+AAAAAAEAAQEAAQIBAgICAwQEAgIDAAABAAABAAEBAQABAAADAAD/AAAAAQIAAf8AAQEB/wABAAAAAgID/v4AAAEB/wAAAwQHAgH6/f36/Pr5/Pn5AgIBAgMC/fz8AQD//wAD/wEB/wAAAgAAAP7+//0BAgMAAAABBAMGAgQE/v///v7/+vX3/AQEBQgICQ4LAgEC/fz9AQEBAQEB///+/vv7+vn5AAD+BAQFAgIDAgIBAQEC//38Av4F/f4BCAkMCw0P8u/1AAEAAAAAAAAAAP8AAAABAP///wEBAAD/AP7//v7+/v///P3+/v7//v7///4A/v7/AAD//wD//wAA/wAAAQABAf8A/wD/AAD/AP8B/wAAAAAAAP8A/wAAAAD///8AAAEA/wAAAP8A////AAAAAAAAAQD/AAAAAAAAAAEAAAAAAAAAAAEAAAABAAAAAAEAAP8A/wABAQAAAAAAAQEAAAABAAAAAAEAAAAAAAAAAQEBAAAAAQEBAQEAAQECAAAAAQEBAAEAAQAB/wD/AQABAAAAAAAA/wAAAgAAAAAB/wD/AP8BAQAAAAEAAQAAAP8B/wAAAAIAAf8AAAEB////AAEAAf8AAQEBAAD/AQAAAQABAAH/AAABAAAA/wAAAP8AAAH/AQAB/wAA//7/AAAAAP///wAA//8AAQAA/wD/AAABAQD/AQAAAQAAAP8AAAIAAf8BAAL+AAECAgEAAgMBAwQDAwEB/v79/P38+/r7/f39/v7+AP8AAQAAAAAAAQIAAwQEBQUFBwcHBgYGAQACBP////7+/f78/P38/f7+/f/+AP///wEA/wAAAAEBAQIBAgICAwIBBAABAv//AP/9/wAE/wH/Af8BAAAAAQAA/wABAQD/AP///wAA/wEAAAAAAP7//wD//wAAAP8AAAAA/wAAAP8AAAEAAP//AAABAAAAAAEBAAEBAAAAAAEBAAAAAAEAAAEBAgAA/gAAAAAAAAABAAH/AAAA/wD///8A//7//gD//gD//wD/AAAAAAABAAEAAAECAgMBAgMCAwMCAwECAv8AAP8AAAL/AP7//wAA/gEBAQAAAf8AAf4BAQABAQABAQIBAgUBBAD+AQQCAwACAv7//wICA/j5+gEAAAH//v/9AP7//v///QABAQECAgIBAAMCBAEBAQICAQICAQEAAAIEA/0A/QEAAwQFBAEBAv3+//39/gL7+/4EBAEDAwMFBf7+//z++wYFBgEAAQEAAP79+/39/AEBAgD//wD+/gP9/vv49wMKCf8CAgwNEfDu6AAA/QAAAAD/AP//AAAAAAD/AAD+///+AP7//v7///39AP7+///+AP//AP3///7////////+AAD/AAEBAAAA////AP8AAAAAAAAA/wD/AP8AAAAAAAAAAP//AAAAAAD/AAAAAAD/AAAAAAEAAAABAAD/AQAB/wD/AQAAAAEBAQAA/wAAAQEBAP8AAAEBAQABAQEA/wAAAQEB/wD/AQEBAP8AAQAA/wABAQEAAAEBAQEAAAEBAQABAQEBAQIBAf8AAAEBAQAAAAEAAQEAAQAA/wAAAf8A////AAEAAAEAAf8BAAEAAP8BAAAAAAH/AP7/AQAB/gD/AP//AAICAf//AAABAAIAAAH/AP8BAAAAAAD/AQAB/wD/AAAAAAABAAH/AP8AAAEA/wABAf8A//8AAQD//wAAAP8A/wAAAQD//gD/Af8BAAEAAAEAAAD+/wMAAQACAgAAAAAAAAH//wMCAQIDAv////37/Pv7+/38/f7//wAAAP8AAAEBAQEBAQICAwYEBQcGBwYGBwMEAwT+/v39/v39/f38/vz+/f3+//3//wD/Av8B/wEAAAABAQIBAQIBAgIBAAL+/wH/////AP//AQEAAAAA//8AAAAAAAD/Af8A/wH//wAAAP///wABAQD//wH///4A//8AAAAAAAD/AAD///8AAAAA//8AAAD///8A//8BAQAAAAABAQD/AP8B/wABAAEBAAEBAAABAAAAAAAAAP8AAP///v8A/////wD/AP4AAf8AAAABAQAAAQIC/wICAwIDAwICAwMBAgP/AQH//v/9AP/+AgED/gEBAgAB//8AAAEAAQIAAQABAgACAAH6+vwKBwkAAQIA/gD+/v4CAQEBAQEBAAACAwP+/f0BAAAEBAX8/vv5+vcF/wcAAv0FBQYCAf39/v38+/wE/f3+///7AfgCAwUFCQcBAgMFBgUDAwMAAAD5+/gBAQEJCAoDAAP5+fgEAgMAAgIHBQn5+fn//f3+/gD+//sBAP4BBAUA/QX+AgALDhMKDRL28uwB/wAAAAEAAAAA/wAAAAD/AAD/AP///wD+/gD+/v/9/v/+/v/+/v/9/v7//wD//gD/AAAA/wD/AAAA/wAAAQD/AAAA//8AAAAAAAAA/wH/AP8AAAAAAAEBAAD/AAAA//8AAAEBAQEBAAAAAAD/AgAB/wEAAQEBAQEAAQAAAAAAAQIBAQABAAAAAAABAQEA/wEBAQEAAAEAAv8A/wEBAAD/AAABAQIBAAAAAgABAAEBAQAAAQICAQEBAQEBAAEBAP8AAQEBAAAAAAAAAAL///4BAAH/AAAAAQAAAAABAAAAAAABAAAAAAAAAQAC/wAA/wL/AP8AAf8AAAEBAAD/AP8CAAH/AAEBAP8AAAAAAP//AAEBAAAAAAAAAAAAAQEB////AAEAAv8A/gEAAP//AQEA/////wAAAP8AAAAAAf///gABAf8BAQEBAAH+/gAC/v7//v0A/wMAAAABAAECAAH//f76/Pr5+vn6+vn9/fz+//4C/wIAAAAB/wECAQEEBAMHBwYGBgYFBgYE/v7//v7+/f79/f38/f79/v7+//////8BAP//AAEAAQEAAQICAgIEAgME/wICAAH+AAAA/wAAAQAA/wAAAAAAAAAAAf8A/wD/AAD/AAAAAAEA//4AAAAAAQEBAAD///8BAQEAAf/+/wEA//8A/wAAAAABAQEBAQEBAQEAAAAAAAEAAQAAAAAAAAEAAQEAAQEBAQD/AQEA/wAA//8AAAAA//7////+AP8AAP8AAQEAAP8BAgIA/wECAwMCAwQDAgMDAQMD/v4A/fz9/gMAAwEB//8BA/8CAQICAAEAAQAB/wAB/wABAwMFBQQFAwEDAAAA/P39/f38/Pz9AQEBAgID/P8A/v//Af7//AH9AQEABAUFAgEAAgQD///+/v0ABgcG/P3+/fz7AQEDAAH9/wEA+PX8BwkJ+/7+/QL7AP38AQEC/f798vf3AwMFBAUEAQEB//z9+/39AQAB/v///v79+/r6/AMBBwsC/Pr4AwEIAAEGFBcf5vf0+/71AAAA/wAAAAD/AAAAAAD/AP8AAP4A//7//f39/v7//QD//f///v7+/v///v//AP4AAAEAAAAAAAD/AAAAAP8AAAAAAAAA/wAAAAD+//8BAQEAAAD//wEBAP8AAAEBAQEBAAABAAD/AAABAQEAAQEBAQAA/wEBAQAAAAABAQEBAAEAAAEBAQAAAQAB/wIAAf8AAAEBAAABAAH/AP8AAQECAQEBAAABAQH/AAABAQEBAQEBAAEBAAEAAgEBAAACAQD/AAAAAAABAAABAAAAAAAAAQH//wAAAAAAAAAAAAAB/wD/AQAA//8AAQH//wD/AQEAAP8BAAAA//8BAQABAAABAQH/AAAB/wD/AQABAAAAAAD+AAABAAAA//8AAAEAAP8AAAAAAAEBAQAAAAD+AAAB////AAAAAAAA//8A/wD/Af8B/wD/Af8A/wIB/v4A/v7//v7///8A/v/+AAD//f78/Pr6/Pv6+/r7/Pv8/v7+//8AAAAA/wAAAgICBAQFBwYGBQUFBQUEAv7//f/9/f7+/f39/f39/P/+/v///wEA/wABAAEBAAABAAIBAQIDAgABAwAAAf//Af8A/wAAAAAA/wEAAP///////wABAQEBAAH/AAAA/wH/AAAAAAAAAAAAAAAAAQD/AP///wAAAQD/AAEAAAEBAQABAP8AAP8AAAEAAAEAAAAAAAAAAQEBAAAAAP8BAQAAAAAAAP8BAP8AAP8A/////f/+/gD//wAAAAEAAAAAAAEBAAEAAQEBAQEBAwIBAgMDAwEBAv7/APv+/fv9/vz8//7+//3+//7+//////7//wAAAAH/AQMCAwIAAgD+AAEBAv///v7+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AAAAAAEAAP8AAAEBAQD//////wABAAEAAQABAAAA//8AAAAA////AAABAQH//wABAQAAAf//AAABAQEBAAD//wAAAAAA/wEA//8AAQAAAAEAAP8AAAH/AQEBAAAA/wH/AP8AAAAAAQEB/wH/AAAAAP4BAAAA//8AAAAAAAAAAQD/AAABAAAAAAEAAP8AAAD//wAAAP8AAQAA/wAAAAEAAP8AAQAAAAEBAAD/AAABAQAA/wAB/wD/AQD//wACAQEBAQEBAQEBAAABAQIBAQICAgICAgMDAQECAAEA/wD//v79/P38+fn5+vv7/P39Bf79/gEAAQAAAAAAAwIDBAYEBQUEBAQFBP///v////7+/f3+/P79/f7+/v7//gL/AgABAQABAQEBAAIBAQICAgECAf8AAP7///8A/wAAAQEA//4A/wD/AAABAAD+AQAA/wAAAAD/AAAAAP8AAAD/AAAAAQAA/wAAAAD/AP//AAAAAQAB/wEAAf///wH/AQD/AQAAAAAAAQEBAAAAAAAA/wAAAAAAAAABAAEBAQD//wAAAAD///8A//7+/v/+/v7+/f/+/wEA/wD/AAAAAQABAgIAAgICAQICAgECAgEBAf39/gEA/QEBAQABAAEBAQEA/wIBAf8B/wL/AAMDAwMAAQICAwEDBQMDAgEBAgEBAQICAwICBAgJCvb8+v/9/AH//wUDAgD+/wEC/wP///8AAv79/v8A/QD+/gMDBAQDAwUKCgcAAf8A/wYHBvn4+vr6+vf29Qb8BwUIBgABA/8CAAUEBfr6+/78/QYHBwoOD/j08/v6+wQGBgH/AP38/AL//wMBAQH////9/v/+/wQBAhMTF/Py7PLv+QD//f8AAP////////7+/v3+/fz9/f3+/vz9/vz+//z+//3///8A/wAAAAAAAAAAAP8BAAAAAAD/AAAAAAAAAAEAAAAAAAACAQEAAAECAP//AAEBAgAAAAABAAABAQABAQD//wAAAAAAAQAAAAAAAAAAAAABAAAAAAD/AP8BAQEAAf8A/wH///8BAAABAQD/AAEAAAD//wEBAf8AAAEAAQABAAAAAP//AAEBAAAAAAABAQABAAAAAP8AAAABAP///wD/AAAA//8AAQAA/wAAAgEAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAP///wEBAP///wAAAQEBAP//////AAAA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AAEAAAEBAQEAAAEAAQEA/wIA//4AAQEBAAAA/wAAAP/+/v7+/f///////v7+//8C/v//AP///wAA/wABAQECAgEBAwEBAv8AAAAAAP///wD//wABAAAAAP//AAIAAf//AP7//QQCBgICAQD+AP7///37/fr6+AoJBwcHB/b7+QIDA/v7+gIBAAABAQD/AP/9//0B/v///QAA///7+/n+/wAEBAICBQQEBfv3+PsAAQMNBAEEAAABAPPx8fP19xAUEwUKCggGCf//AQEAAQABAQUGBPr49wMEAf/9/fv5+v38/AIDAv/+/gD9/AICAgH/AAIAAP38/QsMDgcIDPf08AAAAAD////+//79/f39/vz+//3+//3+/vz///7//v8AAAAAAAAAAP8A/wAAAQEAAAABAAEBAQEAAAEBAf8AAQEAAAAAAf8AAQEAAP8AAAEAAQABAAAAAAAAAAAAAAAAAAD/AAABAQAB/wAAAAAAAAD/AAAAAAAAAAABAQEAAP8A/wD/AAAA/wAAAQEBAQAAAQAB/wAAAQABAAD///8AAAAAAgH/AQACAQAA/v//AgABAAAAAAAAAQABAAEBAQAAAAAAAAEAAgEA//8AAAAAAAAAAP//AAAAAAAAAAD///8AAAH/AP8AAAD/AAEBAP8BAQEBAAH/AP8A/wABAQEAAQEBAf/+/gEBAQABAAEAAQAA/gIBABAPDBkXExkYFBQVERAQDgUCBQD+AQD/AQEBAQD/AP3//wECBAAAAPz69/39//3+/P79/QUEBfz8+wICAgICAwAA//z8+v39/fz5/Pr49/j29fj39x8iJQ0OEgIBAf7//wICAgUGBgcHBgQAAP8AAP7+/v7//f7+//79/v3+/v8A////AP8A/wAAAf8AAAECAgMAAQH/AAL+AAH/AP8AAAAAAAD/AQEA/wAAAAD/AP8AAAAAAAAAAAABAP//AAEAAP4AAAAAAf8B/wD/AAABAP/+AAAAAQD//v8AAQAAAQACAQH9AAEBAAAAAAABAQEAAQEBAQABAgAA/gABAQEAAQABAAEAAAH//////v7+///9/v7+/v3+/v7///3+/wD///////0AAP8CAQACAQECAgIBAQL/AAAAAAAAAAD/AP8AAAD/////AQD/AP8A/v4AAAEBAQEDAQH+AgIFBwf9+/wA/f759/j/AP8FBQf8/wAHAQL89/X//v0FBAQA///9+/z/Av8BAf8AAAEEAwMFBQUFBAT6/PwDBAP//gD8+vr++f79//8ICQn9/v3w6ekGCgwICwwLDg8AAwP/AAD+//7/AAD9/f7/AQIEBAb8+/v9/fwCAgICAv8BAQEBAP/+/fwB/PoDAwMKCw/w7+cA/AD+/wD//v79/f/9/v79/v78/f/9/v///v7/AAAA//8AAAAAAP8BAAEAAAABAQAAAAAAAAABAQEBAQEAAAEAAAABAQEAAAAAAQEB/wAAAAAAAAAA//8BAQH/AAAAAAAAAQAA//8AAQAAAAAAAP/+/wEAAP4CAQEAAAD//wABAQD/AAAAAQABAP8AAAEAAP///wEBAf///gABAAEAAQAAAP8BAQEA//8AAQAAAf8A/wEAAQAAAAAAAAD///8BAQECAQH/Af///wEB//8AAAD/AAAAAAEBAf/+//8AAAAAAAD/AAEBAQAAAQAAAAACAQH//wAAAAABAQAAAAEBAQD/AAABAgECAQADAgIODAoUFRAZFxUbGBUUExIIBwcAAAEB/wH7+v3+Af8A/wIBAQH9/f4DAwACAgL7+/sEAwcFBQD+/P7/BAMDAwP9/P4BAAIGBgcAAAH7+/wAAP//AAH4+Pn6+uvW/dH3+PkrLTEJCw3///4BAAEFBAUGBgYE/wAA//7///7+AP/+/v39//7+AAD+////AQD/AQAAAQABAQEBAQIBAgEEAAAB//////8BAP8AAAEAAP7//wD/AQD/////AAAAAAAA/wAAAP8BAAD/AAEBAf8A/wAA/wD/AAAA/wEAAP4AAP8AAQAB/wD/AQAA/gAAAAD/AAIBAf4BAAAAAQEAAAEB/wAAAQAAAAAAAAAAAAAAAAD/AP8A//7+/v39/vz9/f38/v79/f79Av4B//8A///+////AAAAAgIBAwIBAQICAP8B//7///8AAAAA/v///v7+AQEC/wECBAIEAP7/AAD+/f/+AwQEAgQEBwkI/Pr5+fr5CAkHAPv8/wABAAACAAMD//v9/fz9/v/9////BgcGAAAB/gD//P//+vj5BQj4BwwMBwYEAQIFAgQEAgEC9/f59vX2/v7+CgsLAvv69e/u//39DBAQAgME/P/+BAYG/QEA/wAA+/v7BQUIAgD+AAIAAgID//7++/r6Af//AQICBQQIDQ8TAucJAAD2AP/+/v7//v7+/P3+/P3//f7+/f3+/f8A//8A/wABAAD//wABAQEAAAAB/wAAAQABAQEBAAAA//8AAQEAAQABAAABAAAAAP8BAAD/AAAA/wAAAQEA/wEAAP8AAAAAAAAA/wEBAQD/AAAA/wAAAQH/AAABAAAAAP//AAEB//8A/wAAAf8AAAAA/wEAAQD/AAD///8BAAAA/wH/AP8BAQEA/wD/AQAA/wACAAAAAQAAAAD/AAAA////AQECAAAA////AAAAAf8A/wAAAAD///8AAAAA/v8AAP8B///+AAAAAAAAAAAAAAAAAQEBAAABAQEA/wD/AP8BAQEAAAEAAgD/CQkGCggIHh0YJiUiEQ8NCwgJBgYH/fv9/vz+/f4AAQACAgECAgD//v/+AP8BBAECAQIC/P38/Pr7BwcIAAEBAQMB/f7+AQABBQQA/wD//fz+/v/+BAUI/Pz6AAD+//7//v3/9PDv49/dFRcYGhwH//8BAQEABQUEBAQEBAD///7+//7//v3+//7+/P3+/f7+/gD//wAB/gAAAAAA/wEBAAICAgECAgABAQAAAQD//gAA/wD/AQABAAD+AP//AQAA/wAAAAAAAAAAAAAAAAEAAP////8A/////wEAAP//AAEAAAAB////AAAAAAAAAAAAAAEBAQECAQH9AQABAQEBAQABAQEAAQEBAQABAQEBAAEBAP8AAAD/AP////////7//v/+/f79/f79/v/+/v/+/wAA//8A/wAA/wAA/wECAAICAwEBAQAAAP7///////////7+/v8BAf7+/gMDAQMEAwYEBgIABP/9/v3/+wAD/QH//wUFBAD//QH/AAcHCP/9/f7///0AAgEDBP79/AH/AAIBAf36+wMDAwMDBPz7/QACAP76+fbs+QMFBgMGBwAICQEHBwsREAn///39/Pz9/gUJCgL9/fbz8/r6+hAVFAAAAf8AAAAB//4B/wIEA/39/Pr5+wQEAgEDAgIAA/78/QIDBP/+/v/9/g4NEg8QFvf27//+////AP3/AP3+//3+/v7+//7//wD+/////gH///7//wEAAQAAAQH/AAABAQAAAQAAAAAAAgAAAAAAAP8BAAEA/wAAAQAA/wH/AP8BAAEAAAD/AQAAAAAAAAABAAD/AAEA/wD/AAAAAAEAAAABAAD/AAABAAABAQD///8BAAEAAf8A//8AAQH///8AAAEAAAABAAAAAAD//wAAAP//AAAAAAABAQEAAAD/AP8B/wD/AAAA/wAAAAAA/wAAAAD/AAABAP///wAAAAD/AP8AAAAA////AAD//wAAAP8A/wAAAAEBAQAAAAABAAD+AAAAAAAAAQEBAAEB/wYGAxMRDyMgGx0cGxUTEggIBwIAAgH+APv2/Pr6/AUEBAMBAAIDAfr6+gMCBAD+/wMDAvz9/QH///z3+QL9/v/6+/39/QABAgABAAD/AQEA/wUGBfz7+wMDBP7+/P/+//79/QAB/wAB//r6+fHw6uHe2wsMDwkKDQEBAQQEBQYGBgQAAAH/AP/9/f3//v39/f7//v7+////AP7//wIA/wAAAP8CAQECAQEBAgMBAQL/AAH//wD/AAABAAAA//8AAQAAAP8A/wAAAAAAAAEBAP//AQAA/wABAQH//wABAP//AAAAAQD//wEAAP8BAAAAAAABAP//AAABAP8A/wEBAAEBAAAAAAABAAAAAv8B/QABAQABAQEAAP8AAAEAAAEBAP/+///+/v79/P38/Pz9/f39/f4DAv0AAAH//v//AAAAAAD//wEBAQEBAQL///////////7+//8C//7+/wICAP8CAQAEAQIEBQcC/wT9//z+/f3++voDAwP8+vz9+/v+/v0DAwQEBQX9/v79AwP///0AAQL9/fsAAQIBAQL//v78/vv9//8AAwMFCAUGBwj8/v/8AAAKCAYBBgb/AP4ABAMHCAoC+/wCBQMDBwYBBAT9/v/w6+sEBQUDBQQJCgkAAwP6+f8CAwL/BQP9/PsB+wABAAD9/wAA/AMAAwMAAvsHBQcUFhvv7+n69/n+/wD+/v/+/v/+/v/+/v4A/wD//wD//wD+AAAAAQEA/wEA/wD/AQEBAAEAAAD+AAACAP8AAAEA/wAAAP//AAICAQD/AAH/Af4AAAEAAAAAAQAAAAABAAD//wD/AAABAAAAAAAAAQAA/wAAAAAAAf//AAAA/wAAAAAA/wAAAP8AAAABAQAA/wAAAAD/AQEB/wAAAf8A/wAAAQAAAAAA/wD/AAAA//4AAQH/AAABAAAAAAEAAP////8BAQEBAQD//gD/AAABAAAAAAD//wAAAP//AAAAAP///wAAAAABAQEAAAABAgEA/gD/AP4BAQIEAQAFBAIQDwwjIh4jIh8TEBAIBgf//v/8+f37/v0A/gH//f7//Pz7//4DAgMA/gD9+/wBAwACAQH//f4CAAEB/v8GBAT9/wAB/v4A/f39/fv/AQD9/P0GCAf89/z+/v//AfsAAQEGBAT2+vn+//0AAv8CAgD49/bm5eMZHCEICQsDAQIGBQUGBQYEAAAA/v7+///+/f39//7+/v7+//7+////AAAAAAAAAAABAAEBAgIDAwIDAQICAAAB/gD//wAAAAEBAAABAP//AP8B/wD/AAEAAAAAAP8AAAABAAD/AP8AAQD//wEAAP8AAAD/Af///v8A/wAA/wAA//8AAAAA//8BAAH+/wD/AAAAAQABAAAAAQABAAEBAQABAAH+AAABAAABAAEA/wAB///+//79/v7+/v7+///+//79//4CAAEB////AP//AAABAQEAAQEBAgICAAAA/v7//v7+//////8A//////8ABAQDAwICBAQFAf4D//3//v37+fb2BAUEBAIB+/39/fz8AQgB/wAAAAAAAgME+/v6AP//AQEC/f7+/P38CAYGBQQE/v39/vz98vDxERgJCA8O9/r6+v7+DQoIBAgJ/Pv9+Pr6CQoL9/X1AgIEDQ8OAQAB8vLxAwECAf7/+Pb4DAwMBAsB+ff1AgIB+vz7/Pr7AQECAQECAP4A//7/AwIDAAAADA0REhQa9PLu/v7+/v7+/v8A/f7//v///v4AAP//AP8AAP8AAAEBAAABAAAAAQABAAABAP//AQABAAAAAAEAAAAAAAAAAAD//wABAP//AAEBAAAAAAAAAAAA/wAAAAAAAAAAAAAA//8AAP8AAQEB/wD/AP8AAAAAAAABAAD/AQEAAP8A/wEBAP8A////AQEA/wEAAQD//wAA//8BAQAAAf///wAAAAEAAP8AAAAA/wAAAf8A/wIBAP7+/wEBAQAAAP///gEAAQAA//8AAAAAAAAAAAEB//8AAAAA//8AAAAAAAAAAQABAQEBAQAA/wH/Av8BBgUDEA4LIiAdIiAcGBYVBAIB+/r9/Pr9/fv9AQAAAP7//v3/AQABBAME/f38//8B/v7/AwECAP7+AAABAAABAQD/AP8A//z9AP7+AQEBBAABAQD/+vn6AAD///sBBAQF+/78/f7+/wH/Af4EBQMD+vz9/f39/f3/AQL/9PPy7OvqFhkcAgICAwMCBgYGBAAA/wAA///+///+/f39/f39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AAD/AAEBAAD/AP8AAAABAQH/////AP8AAAABAQH+/wAA/wD/AQAA/gAAAQEB/wAAAf//AQECAAABAQP///4HBwcHBgQvLScuKicRDw7z8PD6+vsJBwn+AP7//f8AAQAFBAT5AQP4+PgLCwsHBwcAAQH///759/n9AvwHCAgBAP8FBQX6Avr9+/v6+foDAwX/Av8GBgYA/v8B/wADAgH//Pz6//4DBAMEBQX9+/sEBQT9/PsA//4HBgb/AQH6+/v9/v4BAAADAgH///4CAQMDBAQCAQQEBAQCAgIBAAEDAwIEAwUCAAAA/wAA/v/+/f39/v79/f39/v7+/f////8AAP8AAAD/AAEAAAABAgICAQEB/wAB/gD/AP//AAD/Af8AAP8AAAAAAAAAAAEBAAAAAAEAAQD/AP8AAAEBAAACAAEBAQABAAAA/wAAAAEAAQAAAQEAAP8AAAAAAAABAP8CAAAAAQAAAAEAAAAAAgEBAQH/AAAAAP8AAAABAQH/AAD+AAD//wD//wD+AP7///7+/gD9///+Af8AAAD+AAAAAQECAgECAQICAgECAgECAAAB/v7+/Pz8/f39/f7+AP8AAPz7//f4/vb2/Pf2AwUCAAIBAQMCAwMDAgMCBwgIBgYG//39BAMDAQIDAAAB/fv9+/39BAUHAQQF/v8C/P7//QEA/v8A/gEB/P/+/wAAAP3+//39AwIBCAgGBwYFBQQD+vn3+/n6//z8AwIBAf7+APz8+vf3AgMF//8B/wAAAAEBBwcHAwIEBAQEAwIEAgAB/v7+/Pz8/f79/v7+/v/9/v38AwMEAP8B//3+AQABEhUZCQsP/gAC/P7//QD///8B//8B/wD//wD/////AAEA//7/////AAAAAAAAAAAA/wD/AQAA/wAA/wAA/wAAAAABAP///wD//gD//wAA//////////8AAP8A//8AAAAAAP8AAAAA/gD/AP8A/wABAP8B//8B/wEB/v8A//8A//4A//8A//8A//////4A/wAAAP8A//8A/////v///////////v////8A//////8A////AP///wAAAP8AAQAAAAAA/wAAAAAAAAAAAgMDBwcFCAcEFRQPMzIrNTMuFRIT9/P09PH0APwAAP8BAwUFAgMEAwMEAAABAAD/BQUF/v7+/v7+/f3+AAAAAgIBAf8A/Pv7/////v7+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9//+/P3+AP/+//79/AD/Af0AAQQDA/39+wAAAQAAAAABAQEBAf/+/v/+//7/AP/+/gQEBAICAf8A/wIEBhEUFgADAgECAQICAgQDAwQFBQQAAP//////AP///v7+///+/vz+/v3//v7/////AAABAAAAAAABAAICAQIDAgMDAgT8AAH///////8BAAEAAP8AAQAA/wH/AP4BAAD/AAD/AAEAAgAA/gD/AQEA//8BAQD/AAAAAQEA/v8AAAD/AAEAAQAA//8AAQAA/wABAAEAAQABAAAAAAABAQEBAQABAP8AAAABAQAA/gABAAD/AAD///////7/AP7//v/+/v3///4AAP8BAAEAAQABAf8BAgECAgMCAwIEBAMEAwMEBAQCAgP///4HBQcGAgQA//sCAQMDBQYFDA0JEBMDCQsCAwIC/f3/+/r++/n9+/j8+PsEBAUDAAH39PMCAP///PwEAgL7+fr6+vv///////35+/kBAwX/9fT7+/sAAwMEBgj/AgIDBQYIC/AHDQ4NFBMJCwoEBAQGBgsDAwP8+vv+//728/L//Pr7/PsKCgsICggA///39PIA/v39/P0DCAYAAgIEBAUDBgUDBAX+AQD8+/sEBv8AAAIAAQD//v///v4A///+/fsBAP8EBQYBAAEAAP7//wEBAQAAAAAAAP8ABQUBAAICAQEAAgEBAAD///8A/wD/AP8ICQsAAAAA//8AAAAA//8WFxn8/PwoKy7k4+Pi4eDb2dnq6ujw7u/y8vP9/Pv+/v0AAAD//wAA//8AAAAAAQEAAAAA/wAAAf//AAEBAP8A/wH/AQAAAAAAAAAA//8AAQAAAQEAAAAAAAEBAQEBAQAAAQAICAUgHRs9PDodGxoA/f7+/f3//v4A///6+/v+/v4CBAMEBgUCAQH+/wD/AAACAgIBAgICAAEGAAn///4DAgQBAQD//v/+/v8EBQb7/vr9/PwIBgb49/kBAAEJCgv39vcRFRfq5+YH/QQLBAb49/QCCwwOEBL28fEA+/v9/fwCAgEAAP7//v39/QAAAP///QL+/f4DAgP8/v4D/v4BAQIDAwEBAv7//Pz/AP7+/f4BAwMCAwMOEhIPExQCAgEBAQECAgECAgMFBAUEAAABAAAA///////+/v79/v7+/v39/v/+///+AAD/AAAAAQEAAQIAAQEBAQIDAQICAgEBAP8A/wD//wD/AQEAAP//AQAAAQAA/wAAAAH/Af//AQAAAQAAAQIAAP8A/v8AAAEAAQAA/wEAAQAAAAD///4AAAAAAAAAAAAAAAAAAAEBAAABAAABAAAAAAABAP8AAQD/AAAAAAEAAP8BAAD/AAAA/wAA/wD//v/+/wD+//7//////wD/Af8BAAAAAQEBAQIBAgICAQMDBAQEBQYGAgMDAAAABgQEAgEB/wAA/wD/AAUFCQ8PBg0M/gECAP79A/379fPz/vz7///+/fv8AgEBAgIC/fv7/fz7/vr6+PX1/v78+/v6/fv9/wAA/wIC/wH/Af8BAgMECA4QCQsLAQUE/v8BAQMEAQIB+/j6CgkL+vr8AwME/vv7+/n5AgICBwcHAwgIDQwO//79+Pbz+/r5/fr5//v9AwUDAgMD/P7/BQUEAAIDAAMCAAEAAQIBAQICAgMDAAD+/f79AwEF////AQH/+/f4CQkPBQUG/v/+/////wAAAQEBAf8BAAEAAgIB/wAAAQAA//8AAAEBAP//AAAAAAAA/wAAAQAA/wAAAP//BAQG/wAADQ4RFRYZJykqMjU15ubj4N7e2NbY7ezs7u7tAf7//P39/fr7/wH//v7+////AAEAAAABAQAAAP8AAAH/AP8BAAEAAAABAAEA////AQEAAAAAAAEAAAD/AQIDEhIQNDIuNDMxFBIU//z/AwAB/Pz9/f38AwIC/wEBBAUGAwQDAQIC////AwMDAAECAgIC//7/AwMEA/v7/f3+//7+/v4ABwgGAgT5/Pv7BAUF//7+/f7+DxER8vDw8vDvExUUAwIDDhEQ9vPyAP79APz99vHxCw0MAgEC+vv7AwIB/v78AP//BAEC/f77AQEB///+/f3+AAEBAAEB/wABAgIC/f39/Pz9AgICAP8AAQEBAQIB/QICEhgaAwYIAgABAgEB/gECAwMBBAQDBP//AAAA/wAA///+/f/+/v79/f/+/gD+AAD/AAD///8BAQEAAAEAAAEBAgECAgECAv8BAf8A/wD/AgEAAAAAAQEAAP8A/gEBAf///wAAAAAAAAAAAQEBAQD+/wABAAAA/wD+AQABAAEAAf///wAAAAABAAH/AP8AAAEAAP8BAAD/AAAAAAAAAAD/AP8AAAABAQAAAAEB/wIAAP0BAAABAQH////+/v/9///////+//7//v//////////AAAAAQEAAQEBAQICAwQEAwQEBQUEBQQEBQAA/gQFBQH//wADAQEFBAMICPv+AAUAAQD+/fXv7wH9/f359wD+/gQFBv4CAf39/gIDAgABAP38/fPx8/n39QQDA/37/f4AAAMEBQQHCPv//wIFBQECAv79/Pz8+wH/AAMKCQUKCQcJCggICgIDAwkJCPz6+vv6+gMBAQD//v3////+//z59vn29P/+/AEA/////wADAQACAgEEBQMCAQYJCf4AAAACAQACAgD/AAADAf/9/wD///39/P8AAP7//v/9APn49Pr5DwYFCAMDAgAAAAAAAAD/AQABAAAA/wEBAgAAAP///wICAAAAAAD/AQAA/wABAQD//wABAQAAAP///wAD/wEAAQD/AAYGBgkJCRARExwdHigoKzAzNePj4djW1/Xx8uno6PPy8fj29/n6+f3//v/+/gH/AAAAAAAAAAAAAAABAAEAAAAA/wD/Af8AAAAAAAEAAAIAAQQFBCIhHDk5NjAwMAoICvv5+v36+v39/P///wEAAPv5+f78+wD///r4/wMEA/3+/gICAwMEBP37/AIDAwYGCP3+/vz8/QECA/v7/AABAAgICQQGB/v6+vz7+wAAAPDw7wUEBAICAOLf3xwcHAcICPj29vz9/gUGBvr6+vn4+P77+v7+/QQDBQL/Af7///3//gUFB/39+/7+/wEBAAEAAQEBAgEBAf//AAD+/wMCAv7+/gICAQABAgMCBPwDAw8WGAEBAgECAAEBAAIBAgMDAwQFBAQAAQD//gAB/wD////+/f3//fz9/f3+//7+/////wEBAAD/AQAA/wEBAQACAQMCAgMBAgEAAAIAAP//AAEB/wD/AAABAQH///8BAAEBAAH/AP8AAQD//wABAAD/AAABAAIAAf4A/wAAAQAAAAEAAAAAAP//AAEAAAABAQEB/wEBAAABAQEBAQAAAQABAAAAAAABAQEA/wD/AAEB//8AAf//AAAA/wD///7//v7///3///7/////AP8AAP8AAAEBAgICAQEDAgIDAwMFBQUGBQYGBgcA//0JBwf/+/3/BQUHEBMOFBYBBwj8/P39+vj++vv59PMB//8AAP/9AQIBAAH///0AAf8CAgL+AgL7/Pz5+vn8AgL+/v79/P4A+/wJBAQCBgb8/PsAAQL9/PQA/wAMEBEKBwn+/QD47vH9B/f5CAcBAQP+//8ICAf+BAP7/PoDAwL7+Pj//Pr6+fcCAAAHBwf7/PwGBwf8/P3/AwMGCAcABAYFAwL+/wD+/f4BBAT+/v7/AAAA/wAAAAD//v7+//4CAQH9/Pr5+PUKCw0EAQUAAQEA//8AAQEAAQAAAP8AAAABAAD/AQEAAAAA/wAAAQEBAgEAAAH///8AAQEA//8BAQEA/wAAAAAAAQECAAEBAQEC/v4EBA8JCQsTFBYhIiMuLTHq6efZ19fo5+bk4+Ty8fD49/f09PP+/v4A/////v8AAP//AAABAAD/AQAAAP8BAAEBAAABAQEFBQUzMi5CQj0ZGBgICAkCAQT+Avz/AAABAgMABAD3+vv5+PkFAwP9/f0BAgECAQL/AP8CAQH++/0B/wD//f3z8PAGCAgCAgQA/wAEAwH8+fr1+vwEBQUKCQv/Cf/8+vv//P349fQLCgwEAQPv7OwQEhMCAgT5+foEAgIDAQAB/fz//PwC///7+voBAQD///0FBgb9/vz8/PwDAgMBAgMBAgL+AQACAgH///4AAAAAAAD+//79/P3/AgH6+v0IERkFCQoA////AP8AAAEBAQACAgICAgEEAgAA/gIAAAAA//7//v39/P39/f39/v3+/v7+/wD/AQEBAAAAAAIAAAEDAQIBAAEAAAABAP8AAP8BAQD/AAABAQAA/wAAAAEAAAEAAP8AAAEBAP//AAAAAQEBAP8BAQH+//8BAAH/AP8BAAD/AAABAAAAAAAAAf/+/gAA/wD/AAAAAAAAAAABAQEBAQECAQH+AAAAAQECAgH+/QAA//8AAQD//wD+/v/+/v7+/v7//v39///+AP8AAAEBAf8AAQH/AQECAQICAgICAwUDBQUFBwcI//78BAQFAfz+BhAPChQUBAoL/v7///36//z9//z+Av8A+vr5AwID/wH5/wAB/v/+AP8BAAEC/Pz7/v38+/v7AQQF/P39BQYIBAcGBAgHBQcIAgUGBggKDA0O/f7/+/j47PLj/v39/fj4AgUDAQcF/QADDRER8wIBAwMEBAcFBQYE9/T0BAIBBwgHBAQDAgEBBAYHAgUFBgUGAgMCBAUHAAEC/wECAAAA/wH/AgEC/wD//gD+/v38AgQDAAAAAQECAgMD//r2/vr3/Pz6AwMFAgAA/wEBAAD/AAABAQAB/wD/AAAAAAD/AAABAQEBAAAAAP8BAAAAAQABAP8AAAEBAQAA/wH///8AAQAAAAEBAf8CAQEC////AgECAwMFBQUHDAoOFxYYIiEk7/Dv5+fm5uXk7e7s3tzc7err+ff59PPx/f7+AQAA/wAAAP8AAAEBAQEBAQAACgkHNzc1QUA+GBcWAQAC//0B/f76/vv8/vz7AgAA/fz8BAIBCQoJ/vv9AQIDAAAA/P3/+/z+A/4B/f38AgICAP7/AwQEAAAB+vr6BwcHBQQFAAABAP//+Pb3/Pr7CgkKBQUEBRERAgEB//z8DQ4Q7evo8/HwDAsM9fTy+/n4APz7BQQE/vz8/Pn5BAQFAAMA/fr7AP8ACAoJ/v37/v/+AwIEAQIDAP//+/r7////AAEA/////P7//gIC/gD++/z+EQ0O+/3//Pz7//4HAAD/AgMBAgIBAgIABP8AAAEAAQAAAP////39/f39/fz8/f7+/f/+/v///v//AAABAf8AAQAA/wEBAQECAgEBAf//AP8BAP8AAAEAAAD/AAAAAAH/AP8AAP8A//8AAAAAAAEBAf///wEBAP7+AQAB/wIAAf4AAAAAAP///wEAAAAAAP8BAQH//wEAAQAAAAAAAAECAAH+AQEBAAAAAAAAAQAA/v//Af///v8A/wH////////+//7+/v/+/v8A/////v///wD///8BAAAAAQECAQECAgMDBAUEBAYHBwoKCgD//QEBAgIGBAkQEAgLDf8AAQIAAQMCA/z9AAD//v8A/wD//vr5+QL8BP8CA/3+//79+/78+vn39/39/f/+/v38/f8AAfr6+QAEBAcBA/n4+QD6/QECA/Hv7ff19gD+/fb29gEB/wIBAQoMDf/8Bf8DBvr1BQIDA/oAAgsBDfT09AYGBwIBAQYICQMDBPr5+AYICgMFBAUGBvv8/QACAwEDAwIFBP//AQEBAAAA//4AAP////7//wQEAwECAwIAAQD//wABAPv6+Pr5+AUEBwACAwABAf8BAAEA/gAAAQEBAAAAAAH/AAABAAAAAAEAAf8A/wEBAQAAAAAAAAAAAAAAAAAAAQIBAP7//wH/AAAAAQABAAIBAf7+/wAA/wIDAgIBAwQDBAcICA8RERwcHPguLvDy8Nvb2d/d3unn5+rm5+3u7vj29/38+v38/QABAQEAAAcGBDc2M0pHRRAQEAICA//+//79/P/9/QD9/QEAAf79+/n39QD+Af7+/v8AAQAAAQECAQUDAgcICf7+/gEBAf///vz7+/r6+gECBAUHBvj6+QIBAgoMDAAAAQUF/f39/fr8+gH9AggKCgYLC/v29f7+/BASEfTz8/v7+QD/AP36+gD9/P35+QsNDPv49gABAAAAAAICAwAB///+/gEBAwABAf4AAQD////+/v38/f4A/wIBAf8BAQACAQH+Af/+/gQJBfP19vTy8vr5+f3+CQT//wEAAP///wAAAAQBAP//AAEAAAD///7+/f39/fz+/fz8/Pz+//7///8AAAEBAAABAAABAQEBAgIBAAL/AQEBAQH//wD///8AAf8AAAD/AAD/AAAAAAEBAAIBAP7/AAEAAP8AAAABAAECAf/+/wD/AAABAAEAAP8BAQAAAAD/AAAB/wH/AAAAAAABAAEAAQAB/gEAAAAAAAAAAQABAQH/AAEAAP8AAAABAQD///8A//7+//7+/v39/v3+/v3///7/AP4AAAAAAAAAAAABAAACAQECAQACAQIEBAQJCgoEAwEDBQUCBAQDBwgDBQX8+/z+/f0DAgQICAn99/b9/v/49/f7+PcDBAQEBwj8/P37+vj8+fr8+PkDAAADAgT8/v76+/z9//8BBAX28/T+/wAECAbr5fH3+foMDg7/AQAEBwb/AQEEBQYDCQoBBgYQFRgICAn18/EGCAsNEA/v7OoICgn7+vkICQkBAwb+//4CBQYGCAkHCQkD/Pv8/f4FBAL+AAEGBwj+/fz+/v3+/v7/AAABAwMDBAYCAwIBAgEBAQEEAgP9/Pr7+fb7BQUEBQcCBAUA/gEAAgD/AP8BAAEA/wAAAAEA/wABAAD/AP8CAQAAAAAAAAAAAQEBAAD//wAAAP8A//8BAAAAAAD/AAAB/wAAAf8A/wACAgL/AP8AAQH/AgMC/wACAQEEAgQHCAkJCAkKCQkhISLt6urq6Onf3+Hx8O7k4uHt7Ov9/f0DAAIvLyw/PjwPDw8CAQL//f7+/P39/f0B/wACAAEAAAD6/v/9/P7//v4B/wL8/v0GBwgFBgT7+vv19/T+/f4FBgYGBgUGCAgAAgL9/P0EAQEIBwf7+/v39PUBAwIDAgMCAwP+/f0AAQH6+/sFBQX8AgL8+vr8/fwKCgr69/gDAwL///8CAQH+AP/6+voFBwf9+foDBQMFBgX7/Pz8/fz+//8BAgMAAQIAAgIA//8AAQIA//4BAQL+/v0CAf/9//3/Af/6/f/48vX5+Pj6/Pr8/P0FBP4BAgIA/wABAQEEAQAA/wAAAP8AAAAA/f/9/fz8/v38//7+/v79////AAD///8BAAAAAQEBAQEBAQIBAQABAAAAAP//AAAAAQAA/wEAAP7/AAEAAP///wAAAAAAAQEAAP8A/wEAAP8AAAABAQAAAAAA/wH+AP8BAQEA//8AAAD/AAAAAAEAAAEAAAAAAAABAAAAAQEAAAEBAAAB/wD/AAAAAAEAAP8BAP8A/////////////v/+/v/8/v39/v79//7+///+AQAB////AP//AAAAAQECAgQDAgMDBQUDBAMDAgICAwQFBAYHAwUGAgMFAgYB/Pr7/fz9BAcIAvf2/v4A+/j4+wABBv3//f79/v39/vz8/v39BAMEBgYH+vr6/f77/P399fj4BQwMDQ8PCAwMBgkK8O3uAQUG/wEACAsLCwsM+Pf3AQEADRAQBQkLAgQFCgQCDhAS+vn6BAUF9vf3AgH///8ACAwMAwYGAQIC+fr5CAUFBgYG//n5AgQFAQQEAQME/fv7/v7+AgIEAQIFAgMBBQcIAwQEAgMD//7+/wECAP//+vn2BQQFAQIBAAICAQECAAABAf8A////AAABAQEBAAAA/gD/AgAB/v8AAgEAAQAB/wAA/wAB///+AAAA/v8AAAD/AQEBAf//AAAA//7/AQEB/wD/AP8AAQECAAD+AAACAgAA/wP/AP//BQUHERASDw4QFxQXHx8jIyQm7u/u3tva5eTj7+3rBwYDPTw3FhUVBAQF/vz9/fv8AQEAAgECAf/+/gAA+/v7/fn7BQUHAQIC/Pv8Afv8/v/++fn6AAAABwcH/v//AQABAAEC//4ABgQG/QL+//3+/gD/AgEB+/38/vj7/wAABwcHAwMC/v79AP/9+/4DAgMC/gEAAgEC+fj5//3++vj4AwIBBAMGAf4D9vX2DA4M/fr6AP8A/wABAAEA+/n7AwUEAP8A/////wL//wEBAAEBAwIDAgMCAP0A+/37/f39/gIA+Pz9CQQE/v79/v39/v7+AAAAAQEAAgIBAAD/ACuB1H4EAAAAAP//AAEAAP////7//v7+/f3+/f39//7//v7+//7/AgEBAP//AAAAAAEBAQIC/wECAQAA/wAAAP8AAAIBAQAAAAEBAP/+AAAAAgH+/v8A/wAAAAAAAQAA/wEAAQAA/wAAAP//Af8B/wH/AP8AAAD/AP8BAAD/AQABAQABAQEBAQAAAAAAAP8AAQAAAQEAAQAAAQAAAAAAAQAB/wD/AAABAAAA//////79/vz9/f78/f3+/v/+/v7+AgICAP//AAAAAQEAAQEBAQAAAQIA//8A/v39/P39AAcIAAECAwMEAAMA/Pr8AwQEBwcH/PkGBAcHAAECAAAE/v/8+fn4AQAA+/r6AP3/BAIC+/z7AQAAAAEBCAkI9Pf3AwYHAQUGAgkIBQ4OCA4QGRQX9fT1AAH///8ABQoLBgsM9/Tx+/z7DAoMAQQFBwD9+Pr8+/v8BAcH8vHwEhER/gEC/wMCCw4PAQIDAfn3/QAABwYH/P8ABAUFAgQFAgEBAAECAAIEAgQFAgMDBAUFBAYGAQEBAQIC/f39AQIBAf4A/fr4+QMDAwQDAQIDAwMF//0BAQEBAAECAQEBAAABAQD/AQAB/wAAAAEAAAAAAAEBAP/////+/wD/////////AQEB/////wD/AgABAAEBAAD/AAACAAD/AQAA/wAAAAEBAAABAP8AAAEAAwMDAgEC/wP+BAMFBgYHDQ4NGBoaGBgX6unn8e7rBQD9GhkYBgUF//7///7///79AAIBAQACAQEB/f39////AgIC+fv7+vj4AQAC/v38AAEACAkJ/////Pz8AAEA/P3//fz8AP3///z9AwUDAwEC/wEBBQYHAP/4/AH7+vj49fn2AP///v4ABwgHBQcICQwN+vj5/Pv5AgIBAAMC/fz8+vj4BgUFBwYG/f39+Pf3AgMDAAEB///+/f7/AgIBAAACAAIBAf8C/f3+/wAA/v8ABQQEAgIB+/v7+/r8/f7+/gUE9Pb4B/7+/Pv8/Pz8////AAD/AAAAAQABAf8ABAEAAAEBAAAAAP//AAD//v///v/+/f/+/f/+/gD//v////4B//8AAAEAAAIBAQEBAgIBAv//AQEA/wAAAAD/AAAA/wABAQAAAAAB/wAAAQAAAAEA//8AAAAAAQEAAP8AAAEA//8AAQAA/wAAAQAA/wAAAQEB/v8AAAAAAAABAAABAAEBAQAAAQABAQAAAAAAAAABAAABAAEAAAAA/wEBAAAA/wD+///+/v7+//7//v/+/v/+/f79/gAD/////wABAAAAAAAAAAEAAP8AAP////z8/f3//fcAAA4MC/z++wEA/gIEBv/+//n5+AAA/gYJCP3+DA4UFAMBAvr59vn5+P37/Pv7+/36+QABAf78/f/+/gAAAAECAgsLCgYMCxYbHOvt7gwTBQYICQMHCQAEBgD+/fj4+PP09hQWFPDw7wgLCQkLCvj7/QQEBfn79wgKCvHu+AcKDe3w8hAaHAIFBgQICgACAgsGB/7//QMDAwcCAwMDBAUHB/r6+gMHCAUBAQYIBwEDAgEBAgMFBf/+/f/+/gICAgEBBAEA/AD//QD++/z69wMDBAEAAQECA/4AAwEA/wIAAP8AAAIBAQEBAAEAAQAAAAD/AP8A/wD/AAAAAAIA//4AAQAA/wH/AP8A/wEAAP8A/wAAAAAAAAABAAAAAAAAAAEAAQAA////AQAAAAD//gAAAQACAQH/AQMCAgEFAQIDAwQEBQYGBw0ODu3mCPz48wsJCQABAfv6+f////7+/gMBAwH//fz7/f/+/QICBAEFAQEDBAEBAQAAAQAABvz8/fX19QEBAf7+/////wUFBQIAAAMFBfwAAP79/Pb19gQFB/wG/AgGBvj7+wMBAPz4+/7+/QICAffx+PgC9P38/AYGBgcLDPXz8QIAAQcHBQD9BQcGBv79/QQEA/r39wsODfz7/AYHBgUBAQAAAAABAv7+//3+/AMCAwECAgEBAAABAvz8/P38/P///v4DAvX8/fX5+g/9/vv6+v7+/v7+/v8AAAAAAAABAAAAAAT/AAEAAAAAAAAAAP////7+/vz//v7+/v79/v7+/v8AAP//AP8AAAAAAQECAgMCAwMBAgL/AQH/AAEAAP8AAQEA/wEBAAD/AAAAAAEAAP8BAQD//wEBAQH//wAAAP8AAAD/AAABAQD/AAAA/v8AAAEAAP//AQAA/////wAAAAEAAAH/AP8AAQAAAAAAAAABAQAAAAABAAEAAP8BAQD/AP8BAAD/AP////7+/v3//v7+/v7+//7/AP//AQABAQAA//8AAQABAQAAAQACAgIBAQH+Af8A/v39//7/AwH/AP76+/cIBAQDBAIDBgT79vv9//4FCAkGCw0A/wD/7wD5+vr8/v0BAAH7+vv8+vr9/v77/PwAAAEGBgUABQMECQgGCwsYCw3s6ekSFRYDBAUPEAj49/cHCQr8/f0FCAkmLS///wABAgL/+vv//wMLDA0HCQfv8PAFBwoC/fsCBQUHCQwCBAYBAgIFAwL+/f7+/v0EAgMDAwQGBgj8/P4GCAIEAwQEBQT/AAACAgIDAwP8AAAC/wMAAP7+//0CAQEBAgEDAwQCAAAA//3//vwAAAEBAgEAAAH/AAEAAQIAAAH/AAEBAAAAAAD+AP8C/wAAAAAB/wD/AAABAP8AAAEBAQEAAAD//wAAAP8BAAEAAQH/AAAAAP//AAAAAAD//wAAAQACAAH/AAT/AP4A//8AAAD/AAAAAAEBAAIAAP8AAP/69fP++/cQDQ4CAgT+/fwAAP8BAAADBAMDAAL+//4AAP8CAgPt6uv7+voDAwMGBQb/AQH9//4CAgMEBAUBAQEAAAAA/v////8A/wH8/PwA//8A/wAGBwf28/UF+gUHDQIDAQLv8e8B/fwFBAX+AQABAQH+/Pv9+vr09/YGBQUHBgj29PP//f78+voHBgQFBQP/BgX2+vn+/f4BAQH9/f0CAwP9//8CAgMDAwMD/wD9+/z//wECAwP+/v/5+fn9+/z8//4BCAbt7ez8/wL7+/z6+/r8+/v9/P3//v7/AwMA/wD///8EAgEA/v8A////AP8A///+//7+/f/9/f7+/v7+/v/+////Af8AAAAAAQEBAQEAAQAB/wABAP8BAQAAAf8AAAD/AAAAAAEBAf8AAAAAAf8B/wEAAAD/AAD/AAH/AAABAP//AAAA/wAAAAAB/wH/AP8A/wAAAQAB/wABAQAA/wD/AAAAAAABAAAAAQAAAQABAQABAQD/AAAAAAAAAP8AAQAA/gH+//////8AAP7///7/AP//////AP//AP8AAQAAAAEBAgEBAQEBAwICBAMCBAMEBQMD/gD++vv7+vv7/wD/+vr4BQUGBAQGCAgIBQIC9/X+/fz9BgkJ/Pn5AQUFBAYHBAQF9vPzAQMFAAL8/wL+/QEC/P38FA8P/gICBQwNAgYIDhER+vv68O3tHRMV/gEAAQQC9fX3BgYHAQQE+/7/AAAAAwEBBQcHAgIFCgsL/f399ff3GBAYAQQECg0QBAUGAwMFAQICAgMDAgL9/v0DAAH/AgICAQQEAQICBQQFAQMDAwEC/wEBAwIC/wD/BAMFAQICAP///wD9AP78AQECAwMGAgQFAAECAP//AAD+//8CAAAA/wD/AgAB/wD/AQAAAAAA/wABAQAAAAEAAAAAAAEAAP8BAAAAAQIA//8AAAAAAAEAAQABAQAB/wAAAQAA/wAAAP//AAAAAAAAAAAAAAICAP78AP8AAQAA/v////8A/v7/+/z7+/r5+PTx8evlCAcCBwgHAQEE/v7/AP38/wAAAwIDAQACAf//AQICAP8ADxMS8+/w9/X1+fb3BAQDAwUGAAL9/gIC/v7+AgID/v39BgYF/fr7/vz8BgcHAgQF/QEACQgF+fb37vn3AAD/EA4O9vTy+fn4CgoLAP//AgAA+vX1BAUD9/f3AQsLAQIB//79BQMD/Pr6AgcGAwQDBAUF/v//AwMD/Pz+BgUGAf//AAEC/wEDAgMC/wAB+/v8AwMD/v79AQEA/gD+AAIB9/387O/vCg4Q/fv6/fr7/Pv9/f39/v4AA/8AAAAAAQICBAAA/wAAAQABAAEA/wD/AP///v79/v7+/v7//v////7//wP///8AAP8AAAEBAQABAgEBAv4BAf//AP8AAAH/AAAAAAD///8AAP8BAQECAAH+/wABAAAAAgH//v8A/gAAAAEAAQD/AP4A/wIAAP//AAEBAf/+/wH/Af8A/wD/AAAAAAAAAAAAAAAAAAAAAAD/AQABAQEA/wEAAP8BAP7//wD/AP///wD///4A//7//v8AAAEAAgEBAQABAP//AAAAAQABAQICAgICAQMDAwQEAwQCA/z+/Pv8+fn4+fsL+wMEA/f49gwMBgABAAECAgQGB/7/+QQGBQMFBQQGBgYJCvz6+f8CAwMIB/7///z+AAQAAAP/CAEHCRQWFvLz9QcJCQkNDRwiI+Tf3+/u7hQZFwEEAwsDBQICAwICAv8AAP7+/f7/AAUGCAUFCAUHCAD9+w0RERIWGPz8/gUICgMEBAEBAgEBAAICAQABAwECAgIBAQEBAQEBAQQEBAQFBQIDAwEAAAEBAgECAfz7+wQFBAECAwEA//7/AgH/AwEBAwIDAwMCBQIBAQEAAAD//wAA/gAAAQD/AgAC/wAB/wAAAf8AAAEA/wABAAABAQD+/gABAQABAQEAAP7/////AAABAAEAAAEAAP8BAAD//wAAAAAAAAEBAv7//gAA/wEB//79/QAAAAEA//7//v7//v/+//n6+fj38/z69+/p4wEA/QoJDgQFBv7+AAD+/QABAQEA/wAAAP8A/wEBAPr5+AH//wQDBBIVE/oNDfPx8fr3+Pr19wEDAgMGBP8AAP8B/P79/fX59gMCA/v7+/Py8QL/AQ0NDQQCBPsCAQH+APr6+e/09AYFAwUDA/79/QMEAwD/Af/+/P35/QH///Hv7xAREfv/AP78/Pn5/AIBAgQEAwIDBP/+//8DAAIEBAEDBAL/AAEBAv8AAP38/QAAAQAAAQEBAgAA/P3+/gACAggLCuHm4/v9/f79/Pv7+vv7+fz8/P7+/v7//f8ABQABAAICAQQAAAAAAP8B/wAAAP////79/f7+/fz//v3//////v8AAAD/AP8A//8BAP8AAQECAgIAAQH/////AP/+/wACAAEAAQH///8BAAAAAAD/AP8AAQABAQEA////AAABAAH/Af8A//8AAQAB/wD/AQEAAf8B////AQAAAf8A//8AAP8A//8BAAABAAEAAAAAAQAAAgAB/gH/AP//AQEA//8BAAD/AP8AAAD/AP8B/wABAAAA/wAAAAAAAQEBAQEDAgL/AAABAQEBAQECAwIFBAMFBQQDAwL59/36+vvz9vQJCgcAAP/+/wAH/AsGAwkAAAEDAgQIBwD2/PwDBgYBBAQHDAwD+gb8/wAC9QT/AQL8/wADAAAAAQH6+/v5//4OFhX9/v79/P0NEhQbAQPq6usABAQTFxcJCwj9/f4BAgL8/PwGBQb39/cHCgkIBwoBAwEA/QIRFBYOEBEDBAX+/v0DAgICAQL/AAABAAD/AAAEAgMAAQABAQD///8CBAUBAwMCAwMBAAL///0A/wADBAMDAgMBAgIAAQAB/wABAAMBAgICAgQBAQIBAAIAAAEA//8AAP0AAQQAAP7/AAEA//8AAP8BAQEAAQEBAQAAAAD/AQAB//8BAQEAAP8AAQAA/wABAAD+AP8CAQEAAAD/////AAABAAABAQAB//7/Af8A//8AAP///////wD+/v///f78/fv6+Pb8+vfy7ef49fIODxAGBwoAAAAA/v7//v8BAQEDAwQBAAD+/P4AAAECAQHw7ez++/wHCAkDAgQMDA78CQr6+fn+/f34+vkCAQD8+/wEAgIDAwT8/PwEAwMGBAP++/7z8PAEBgQEBAX7/PkFBAT39fT//QEAAP8F/v/9/AICAP8EBQX8+/kBAAIGAQD38vIGBQX2+/oAAQH8/PwBAQEEBQX9/P0AAQECBAQAAgQBAAD9/P0CAwL9/v0BAQEEBgT+/v79/PwBAgEFBgny+vrk6uoCBAT9/v3+/f37+/z7+/n8/f38/f8F/v8AAAAAAQEEAQEBAP///wD/AQAAAP////79///9/f79AP7+/wD//wD//wD//wAAAAABAQABAQABAgEBAQEC/wAAAAAAAAAAAAAAAQAB/wEAAP//AAABAQAAAQH//wEBAQEBAP//AAABAAABAAD/AAAAAP8AAAABAP8AAP8A/wABAAABAAABAAABAAABAAH/AAECAQD9AP8AAAAAAQECAAD+AAAAAQD//wD/AAD/////AAD/AAAAAAEAAAD/AQABAgABAAEBAP8AAQEBAQEBAQEBAAIBAQEAAQEAAAL/AwIBAAD//Pz9+/v7AAEA/vz6/wEH/fz+/wAA/wECAgECAgIDBQcI/f38//8ABgsL/wAA/f//9PLz+fr6BgYFAgEAAgICAgYECQsKAQIB+fz8EBcYCA0P8/Tz+vr8CQsEAgUA/fz+BQYHBggHAwUEBAUFBQUG/v7+AgICDQ4OBQYHAQIBAf0AAQICAAECAgAAAQEBAQEC//7+AwID/wH/AQABAgP/AAABAgECAQEB/f4AAQEBAwIFAgIC/v//AgECAAD/AgEBAAACAwMEAAEBAQAB/wD/AP8BAAEBAAAAAQECAf8BAQIBAQEAAAAAAAAAAQABAAD/AAEBAAEBAP8AAAAAAP/+AAEA/wD/Af//AAEBAAD+/wD+AAEB//8A/wD+/wAAAAD//wD/AP///v7+/////f3+/f37+vn5+vj09fDs8+/uCAcGCQkJBAME+/r6//8AAAAAAAAB////AgMEBAYE//v7BAYGDRAS+PX1+fb2//3+BQgJBAcGBAgHAwICCP8L9/f2+/n6/Pr6/fv6//3+AQIBCAkKAQMACAsJ+vj69vj1AQD+////CQoL9vLxCAcH//79/vz8+fr6DxAPBAME+vj5BAYE+fj2AwoLAwQF/f39/v7+/f39BAQE+/z7AP3+BQYCAAAA/v8A/f/+AP4AAQIBAgID///9/f37/wD/BQYH+wQD3t7h9Pf2DAsL//7+/P38+/v8/Pz8/v7+/f79/wD/AAEBAQEBAgAAAAAAAAEAAP////8AAP7+/f39/P/9/v///gD//v8A/gAA/wEA/wABAAABAAABAQABAwAAAQD/AAAAAAAAAQAAAQABAAAAAQEBAQABAP8AAAAAAQEBAAABAf8BAQAB/wEBAAABAAAAAAABAQAAAAABAQAAAQH/AAAA/wABAAABAAEAAAEAAAEA/wABAQABAAD/AAAAAAEAAQAAAAAAAAAA//8A////////AP4AAAD//wAAAAAA//8A/wAAAAAA/wAAAAAAAAD/AP/+//79/v7+/gEAAQAAAf38/fb19/38/f/+/vv7+v3+/P8A/f///gMDBAQHBwMEBQgKCwQGBgIGBQYHB/36/P/6/AUCAwD+//Py8/bx9fr4+wsMDwEDAwMFBgECAwEFBQoPDhQYGAcJCfP09AEBAgUGBQAA/wEBAQcICAQEBAUGBAICAQQEBAoKCgICAQAAAAICAgEAAAD/AAD/AAABAQMCAQECAgABAQEBAgEBAgUDBQIBAgEBAgEBAQIBAwABAgICAwAAAgMCAwEBAgECAwABAwECAv8BAv//AP8AAP//AQECAAICAgEBAAAAAP8B/wAA/wAA/wAAAAEBAf8AAAAAAgEBAQEAAAIBAQABAAEAAgEAAAAAAQABAQAA/////gAB/gD//v8A/f///gAA/gD////+/v/+/QD+/v7+/fz8+vj49/r49fbz8PTy8AcFBwoKDQUFBwAAAAD/Af///wAAAf/+/wABAf8A/wEAAAABAfz9/wADBAkNDw8VFg0UFP4DAfj59/v6+/v8/P4AAQ4REg0REgUKCwEDA/////z3+fHs7gP/APj29/38+wD//vv6+wEAAAQDAgkKCgMEBAAAAgUGBv37+/v6+/7//gEEAfHx8AkICfj2+AcICQD+/wQEBQAAAf7//wUFBgD/AAAAAQABBAMCAwQEBgECBAIDAwICAv7+//39/f8A/gAFBPH4+OTn5wEBAf7+/v///f3+/f39+/38/f38/f39/f///wAAAAICAgT//wAAAP//AAABAQEA//8A/v7+/f79/v3+/f3+/v0A/v4AAQIAAAABAAABAQECAgMBAQIAAQH/AAAA/wAAAAAAAP8AAAABAAH/AP8AAAEAAP8AAAAA/wAAAAABAQAB/wL/AP8BAP3/AAEA//4AAP8AAAAAAAAAAQAA/wEA//8A/wD/AQD/AAD/AP//AAAAAAEAAQABAAAAAAABAAH//wAAAQAB//////////4A/v////8AAAAAAP8A/wD//wABAAEAAQAAAP/+/v79/f37/Pz8/Pz//v7///79/v/7/Pvz9fQAAgz9+/wACAACAQD9////AP4CAgIGCAb9/fz89fX9//////8D/v8A/f7//v4DAQEDAQP7+vv39Pb//f8EBwkEBgUEBgUCAAEEBgYFAQECAgL29fX39/gMDAwKCwYBAQABAQH9/v4A/wD9/fsCAgYFBQT//v0BAQH/AAD8+/0BAf0DBAP+/QADBAT///4AAAAA/wD///8EBQMC/wAAAQH///8DBAT//v8CAwT///8BAgEBAAD//wEBAQH/AAECAAH/AgIAAAABAP///wAAAAAAAQECAAAAAAEBAQEBAQEBAAEBAQH/AP8AAP8BAAEAAQD///8AAAABAgAA/wEAAP8AAP8A//////4A//8AAf////8CAAH//////v4A/v///v7//v7//fz++/v++/n38/D79/UHBwcGBQYHCAgAAAL8/v8AAgIA/QACAv8BAQICAgIDAQH+/f0AAAAFBQX//f39+/v//wD+/f4EBAYBBgf9/PwEAwT7+/z7Av0JDA4IDA718wz17u4A+/z59fX19fUNDw7z8vH+/fwBAf/9/Pv39fQA/v4ICAcCAwMDBAQCBAT29vUICwsKCgv8+vr5+/kCAwEDAwMDBwYFBgb9/f0CAgICBAUB/f8CBAUFBQT9/f4BAQL6+/r8+/sBAP/+AP7+//8DBQX6//7l6un29/cGBwX+/wD+/gD8/Pr6+vr6+/r8/v3+//8AAAAAAQEBAQEEAgEA/v8AAAAAAP8A///+/f79/f39/fz9/f79/v3+//3+AAL/AP4AAAD/AQAAAAIAAQIBAAACAAAC/wH//wAAAgABAAEBAAD//wAAAP//AQAA/wAAAAEAAgAA/v8BAAD/AQAA/wABAQH///8BAAAAAAD/AAEAAP8AAAD/AAH/AAD/AQD/AQAAAAEBAQD/AQEAAAAAAAEAAAH/AAAAAAEAAAAB////AP/+/v7////+/v7+/v7+//7//v//AgD+//8A////AP8A/wAA/f7+/v79/v3+/Pz9/Pz9AwECBQQFAQAC+vj6+wr6//78/v79//77/vv+/f79/wICBQYGBgYHAP8A/AL9AwUEAQH/AgEAAwIDCw4KEBocDxYWAQECBwcIAAEDBAMFAwICAwECAQMCAgMCDg4O9fT0/f39BAMDAgIC/v7+Af///Pv6/f7+Av38AQEB+v39BAUEAAABAP//AQED//7+AAIA/f3+//////4A/wAAAQIA/v4AAAABAgAA/gD+AgIF/f/9AAAAAAAA//7/AQICAAEAAAABAgICAAEBAQEBAAD/AQECAAEAAQEAAAEAAf8BAAIBAgEAAAIBAQAAAAH/AgAAAAABAQAB/v///wD/AAAAAQEA/////wD+AQAA/wD//wD+AQABAP8AAwAAAP/+AAAAAQAA/f/+///////+AP//Af/8//v3AP77CQkJAgIDAwMEAgMD/v//AQAA/wAAAQMCAP8AAv8AAgIDAf/+AwEB9/j4BQYFAQcI/gMD+vn5//0CAf39AgIDAwgJAgIC/QEB/fv89PPzCgwMDRETCg0Q8u3sAgcH8u7u6+zsDAsLAwME9/bz/fv7BAMC9/b1+Pb0BwcICw8PBwoJ9vX2AP//+fn5ERUV9PHxAgEC////BwkJBAYG/fn5/gAB//7+AQUEBAYG/v/+//78+fn6/fz8/QD+AwMC/Pz9AgMCBQgI7PLw5+vp/v/9AAAFAAD//gD+/f39/Pz8+/v7/f38AQD//wD/AQEBAgICBAABAAAAAP8A//8A/wH////+/v3+/P39/P78/f79/f39/AMCAv//Af///v///wAAAQEBAgEBAQD/AP8AAQAAAP8BAAEA/wABAAD/AQEAAf8B/wEAAAD/Af7//wAAAAEAAf8B/wAAAAD+AAAAAAEBAP//AAH/AP8AAAABAAD+AAEBAP//AQAAAQD//wABAAEA/wEBAQEAAQEAAQEA/wABAAD//wEAAP/////+/v3+/v79/v79/v3+/f///v7+AgAAAP7+//7/AAAAAAD///z8/fz9/P///gAAAAMEA/8AAf//APz9/vz9+/3++wEAAP79/fz7+P79AP39/Pz7/P3//v///wD/AQAFBPv+/f3+/gYMDBQgIxooJwcLDPr6+v3+/gkEBAEBAAICAv7//gL+AP4AAAICAggJCP////v8+wUBBv7//////v7//gEAAP////z8/QQFBPr5+QUGBvz8+wUEBQAAAwAA/wAAAAAAAv3//gMCA//+/v4B/gICAv7/AAD/Af///QABAf8A//8A/wMDAwEAAf//AP8A/wEA/wABAQEBAAEBAgEAAf8AAAABAQIAAQABAAEBAAABAQEBAQEBAAAA/wD/AQEBAf///wAAAAAAAAEBAAAA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AAAAAAAAAAAAAQEBAQEAAAAAAQABAAABAAD/AAEA//8B/wABAAH/AAABAQH/AQAAAAEBAQAAAQAAAQEA/wEAAAEAAAEAAAD+/v///f/////+//7//v7/AP7/AAD//wD//wD////+//8AAAABAQEAAAAAAP////8BAAACAgMDBAIAAP/7+/n08/L5+ff6+vr8/f3+AP/9/v/8/v8AAAD+/f4BBgYRGRkLExQIDg4CBQUEBAQEBAX/AAABAgMAAgIICAkBAgICAQL+/v39/f0GBwYBAAD6+/oAAAABAAACAwL9/v0CAwIJCQkFBgUBAQH/AP8HBwUEBQUDAgIDAgMCAwMCAgICAgEAAQECAwEAAQABAQEDAwEBAQEAAAECAwMA/wAAAQAAAAEAAAEBAQIBAgICAgIAAQEAAAAAAQABAQEAAQEBAgEBAAACAQEDAgIBAAABAQEB/wAA/wAAAAABAAABAP8AAAAAAP8BAQABAQABAP8BAf////8A/wD/AAAB//8B/wEB/wABAAAB/wEAAAABAQABAAECAgIBAQEAAAABAQECAwICAwQEBgYEBQUCAgMCAwMDBAUDAwMDAwMCAwQCAgMEBAUCAgIAAgMCAgQDBAUDBQYAAgIAAgEGCQoHCAr//wD39/YDBAINEA8HDg77/wAABAQDBQUCAgH8+vr39PQAAAAKDA4A/f/t5+b27+wGAwEFBgUFCAj+AAD6/PwCAwT////+/P0IBwf5+/r9/Pz49fX//v4CAwT8/P0DAAMA/gD69/n6+fn7+/sAAAAFBAQAAAD/AAADAQICAgL9+/wBAAABAgAECQf4/f7i5+j09vb/AAAAAAAA/wD////+///+/v/9/f39+/37+/v7/fz+/v7+/v7//wAAAAEEAQEAAQEAAf4A/gEAAQD/AAD////+//78/v79/v7+/f/+/////f/+//8AAAD+AAABAAACAQEC/wAB//8BAP8AAQABAAAAAAH/AP8AAQABAAEA////AAAAAf///wEBAAH/Af8A/wEBAQD///8B/wD/AQEB////AAEBAP//AQAAAAABAAEBAAAAAQEBAAABAAABAAH+AAABAQAAAAAAAAEAAf8A/wD//wD////////+/v7+/v3+/v7+/v7/////AAD/AAD///8AAAEBAgIDAAEBAQABAAEBAQIDAgMCBgUEBwUG/v//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8fHx+PPzCQoHBQEBBQEB/vn4BwkI/vv9//39BgUGAAAA/wAAAgID/Pz9BAIDBAYF/v8ACAkICQgK9/b1BQUGAwIDAQEB/v7+/wD/AgMCAQUDBQcHAgUE/v/9+/r6Cg0N5+jq/f3/AAEAAP8A/v///v7+/v7+///+Af//AP///v79+/z7+/z7/v39/P39AP8AAP//BAEAAAABAQEAAP//AQAAAAD//////wD/////AAEAAAACAgEAAgABAQMCAAICAQECAgICAgEBAgAAAQAAAQAA/wAAAQH/AP8AAAEAAP8AAAEBAAABAAECAf//AAEAAQD///8AAAEBAP8AAAD/AAEBAAAAAQH///8A/wIAAf4CAAH+AQEBAAEBAQEAAgEA/wEBAgAA/QEAAf8AAAAAAAAAAAEAAf8B/wABAf4A/v7//f79/f3+/v///////v/+/v4AAQAAAAAAAAABAAABAQEBAgECAQICAwUFBQcICAQGB/8AAAEBAQMDBP4BAQAB/wUCCP7+//7+AAMEBAYICQIDBQACA////wICAQD/AP7//wD///8AAP39/QMEA/8A/v37/AIDAv79/QQEBAIDCf39/AQDAwUFB/8BAAAAAQABAgMEAQUBAf3+/gQEBfv8+wT/AAkICvj4+AEDAgAAAP7//wMBAwABAAAA/wABAf8BAAMDBAAAAAABAf7//wEAAQICAgAAAQEBAQECAAAAAAD/AAABAAD/AAACAAAAAAABAAAAAQEAAAAB////AQEBAQEBAQEBAQEBAAEAAP7+/wEBAAABAQEA/wAAAAAA//8A/wAAAP////8AAP//AP8A/wEAAAEAAQABAQH/AAEBAP4A//8BAf/+/wH//wABAQAAAf8A/wEBAgH//wD//////gAAAAICAgD/AAAD/wD/AAAA/////wABAQECAgD/AP8BAAEBAP3++/7+/gAAAAUGBv7+/wEBAQABAQQEBgcJDPLw8Pb19BAeH/Lu7Obm5g8NC/Xy7g0PEfv9/wgICRkfI+/n6Or64vr6+vv39QsGBA0LCAD/AP/+/fz8/AYICAD+/gIAAvr4+AQFB/4BAAIFBQcJCgACAvv5+QkHCP8CAgUGBQMFBf8AAAQICAMDAv8CAf8C//4A/ff08gUFBev1+OLl5f7//wAAAP///wD//wD/AAD///////////7+/v79/f38+/r6+fv8+/79/v///wEAAQQAAP8B////AAEBAQAAAAAAAAAA//7+//8AAAD/AAAAAAAAAQACAQEAAQEBAQICAgMCAwQBAgMBAQEAAAD/AAEAAAH/AAAAAQD//wAAAQEA/wEAAAABAAH/AP8A/wD/AAAAAQAA/wEBAP8AAAD/AAEAAAAAAQAA/wEAAP8BAAD/AAAAAQH/AAAAAQAAAQAAAAEBAQEAAQAAAQAAAAAAAAAAAQAA/wEA/wAAAP/+//79///+/v38/f3+/f3+BP4B/wAB/wEAAP8AAQEAAQH//////wABAgIDAwQDAgUDAwQCAQD/AAD+/////wH//wAAAQIFBwQBAQQBAwMCAwQCAgQBAQEBAQEBAQL/AP8CAQD+/wACAgH+AgEA/wACAgH8+/v+/gEDBAP///4ICAn/AAD/AP8CBAT///8BAQEDAgMAAQH+/v0BAQIAAAAIBwj///4AAQMEBQQAAAACAwIA/wAAAP8BAQIAAAEAAQEBAf8AAP8AAQH/AAEAAAAAAP8AAAD/AP4BAAIBAAL+//8AAf8CAAEBAgEA/gD/Af4CAgMDAwIAAAABAAECAQAAAQEBAQEAAAD/AP8A////AP///gADAQEAAAEAAf//AP8BAAD///8A//8A/wABAAAA//8BAgEBAQAA/gEAAQAA/wAA/wAA//4AAAD/AAABAQAB/wEBAAEAAP8AAQD///////8BAgECAAH//wD+/v8BAf///gAA/wAAAQEBAQEBAP/+AAAAAAAAAQEBAQECAwMAAAACAgACAAAAA//7//sAAgEJCAf6+Pb0+fcFBwcSFRP08fECAAP39fYDAwLy9vUFBAYGBgQYHBz69vTw6+f9+vj4+fkLCgoAAAEAAQH8/Pz+/v8DBgf9/v0EBAUBBAX//wECBAT7+/wFBQYCAgEJDQwCBQT//v0C//0E/gP09PT9/vwMAg8FAwP59O8PGRza0Nb5+PkAAf8AAAH//wD+/wH//wAA//8AAP////////7+/v78/Pz7+/r8+/z8/fz+/f4BAQEEAAABAAH/Af8A/gAAAQD//wD//v7+AP/+/////wABAAAAAAAAAQECAAAAAQICAwICAgECAQEBAAABAP8AAP//AAAAAAAAAAAAAQAA/wAAAAAAAAEAAP8AAQAA/wAAAQAA/wAAAQAA/wABAAEAAP//AAAAAQAAAAEA//8BAAD/AAEBAAABAQABAAABAQABAQEAAAABAQAAAQACAQD+AQH/AP8AAAEA/wH//v7/AP7///79/v7+//7+/v7+/wD+AP8BAAAAAP8AAQABAQEBAQIBAQECAQICAgQD/wD//P39BQQFAgED/v8AAQICAwMCAAEBAgMEAgUGAwMHAgMDAQAB//8AAAD/AQEBAQAB/gH/AgMA/Pz/AwMCAQAAAP8BBQYH/v39AQICAQEB/P39BwgI//8AAQICAgABAQAAAgQD/v7/BgYH+/z7AP8AAQECAQEBAQEAAwIC/f7+//////8AAP7+AgH/AAECAQABAAEB////AQAAAP/+AgICAP8A/wD///7+AQICAAD/AQABAQABAAEBAP//AAD/Af8BAQIB/v/+AwIDAQEAAQICAAAAAQEBAP////4BAAD////+AgEB/wD/AAAAAP7///8BAQEAAQAA/gD/AAAAAAEAAgEBAQABAP8AAQABAAAA/wH/AAEBAAACAP/+AAH/AQAB/wH/AQAAAAAC///+//8AAQECAgEB////AAEA///9AAABAAAAAQEBAQIA//8A/wAAAQAA/wEBBQUE+/z9/wEBAP/+AQEB/P/++/z7/v7+AQH/AwUEBwcG+vT1AQD9AgICCQwM+fb38/LwAwD//v7/+vj7Af//BAL/CQUEBwME/gIB/Pj49///CAoKCAcI/v7+/f77AAQE//8BAQEB/Pv8/wIDAgQDBAIBBQQGCQwLBgkJ/P38Af78+Pbz8O7s+fj4CwwKAvv6+fT2BgID9fr73+Hi///+//8AAQAAAAEAAP////8A/gAB//8A/////f7//v3+/Pz8+/r7/Pz8/Pz8/v7+BAUEAgAAAQAAAAAAAAH/AP//AAD/AP///////v7+/wD//////wAA/wABAAABAQIAAQECAgECAgIBAgABAgABAf8AAP///wAAAAAAAP8BAAEAAAABAAAAAAAAAAAAAAEAAAAAAQAAAP8AAAABAAAA/wEAAAABAAAA/wAA/wABAAAAAAD/AAAAAAAAAQEAAP8BAQAAAgEBAAEBAgABAP8AAP//AQD/AP//AAD//wD//v7//////wD//v/+/v///v/+/wD+AP//AAABAgICAgICAwMDBAMFBQUFBgMEAv///v////7/AAACAwIEAwIEAwMEBAMFBgEEBgMEBgMEAwD/AP8AAAEBAQD/AP/+/v/+/gAAAAD//wUEA/7+//8AAAQEBAMCAgYFBgYFBQcHBwQFBf//AQMDAwEBAgEBAQECAv/+/wIBAAAAAAUFBgAAAP/+/wEAAf7/AAABAQMDAwEBAQMDA/8A/wACAAAB/wD//gH//wD//wD//v//AAD/AAICAQAAAAIBAQAAAQABAgAAAAAAAQH/AAAAAf//AAECAQAAAAH/AQABAAAAAQEBAQABAAAAAAABAQAB/////gEBAf8AAQEAAQD//wD/AAEB/wAAAP///wD//wAAAAD/Af//AP/+/wEAAQICAQEBAAAAAAEBAAAA/wAA/wEAAf8BAP8A/wACAAEC/////wICAQQFBAAAAAECAf///gEBAgABAAAAAQECAf//Af///////wECAgICAv3+AAD////+/gEBAf39/P39/QAAAAAAAAIDAwAAAAsMDBcaGQQBA/z5+gH8/gIBAAMDA/v6/AMDBAUGBgoMCQQAAPLs6gH7+QcDAwMA//v29v77+//+/v8AAQQGB/7+/gMDBAABAQgKCg4QDwcKCgkODgsSEAgOCwADAgAA//j39fHw7v79+woJCAQBAfv29Pz49wsOD9HY2ufr6/z+/gAAAQEAAAD+AP8AAf8A/wD///7//v7//v////7//f39/Pv7+vz8+/78/f///wD//wIBAQAAAAD///8AAQAAAAD/AP/+/v3+/f4AAP7/AAABAQEBAQIBAQEBAAABAQACAQECAgEBAgIBAQAAAP8A/wD/AAD/AQAAAAEAAAEAAAAB/wEAAAABAAAAAAD/AAAAAAABAAEBAAAA/wAAAAAAAQAA/wAAAQEAAAEB/wAAAQAAAf8AAAABAQAAAQEA/wAAAf8AAAAAAAABAAABAQAAAQAAAAAAAAD//wAAAAD///7////+/v//AP//AAEA/wEAAQAA//8AAP8AAAABAQACAwMCAwMDBAICAwQAAQEBAgMEBQcAAgP/AAL/AAIAAwQDBgcFBwgCAwQBAgIAAP/9/f3///8AAQD/AAH9/wAAAgECAwMCAgIJCQkAAAH9//4GCAgCBAMDBAQCAgQDAwQFBQQCAgMA/wACAgP///8CAgIAAAH9/f0AAAAFBQf+/v7/AP4CAQEBAAEBAQH/AAD/AP8CAgIAAAABAAD+/v3+/v4AAP8A//8AAf/+/vz/AP8CAQH/AAAAAQEA//8BAQEAAP//AQD///8AAAD+/v7///8BAgAA//8AAP8AAAABAAEA////////////AAD///8BAQD///8AAAD/Af//AP8AAf8AAP8AAQAAAP8BAf8BAQAAAAAAAQAAAAAAAAABAAD/AAAAAAABAQEAAAECAQEBAQEB/wEA/gABAQABAQH//v8CAQIAAAABAQECAgEAAAABAQABAQEBAAABAgICAgL/AP/+/v8BAgH/AAAAAAAAAAH8/P39/f0AAgEEBQYAAAEDBAX9/P4DBAYTGBgNDA38+PkC/gABAAD8AP8BAgPy8vEBAAD8/PoFAwMA/wAAAAEEBwgHCgr7+/z29/cAAAAAAQMEBQQEBQUAAQIDBAUEBgcBAwMHCAgDBQT+/v7++/r39PP08/MDAwMFBgUBAwD+/Pz8+fkCBgb0/wDU2dv3+PkA/wEB/wAAAP//AQAA/////////wAA/wAAAAAAAP/+/f39/v38/Pz8/P39/f3+/v7/AAAEAAAAAP8AAAEA////AQEAAP//AP8AAP///v7+///+/wABAAEBAAABAQEBAAECAAECAQEDAgIDAAED/wAC/wD+AAD/AAABAAABAAD//wD//wEA//8AAAAA/wAAAAAAAAEBAP///wABAAD/AAABAAD/AAAAAP8AAAAAAAEAAP4BAAABAQD/AAAAAAAAAQEAAAABAAAAAQEAAQABAAAAAQD/AQEBAP8AAAEA/wAA//8A///+///+/f7+///9/wD+AQAEAAIAAf8CAAAAAP8AAgABAgEBAAIEBQQHBgcKBggLBQYI/v////8AAgQEAwUGAwMFAQQDAgAC/wAAAQIDAf/8/f78AwIDAgICAQIA/v79AQD/AQICAgECCQoD/v79/wEBAwUGAAAAAwMD//7+//8AAQEBAwMB/wD/AQIC/f39BAME/QD+/fz9AwP/AgIC/v3+AAAAAQEBAP8AAP/+//8AAgQE/v39AwMDAwEC/gD/Af//AgIDAP/+//8A//7/AgED/wD9Af//AAAAAAAAAAEBAP7/////AQIBAP8A///+/wABAAABAAAA/wD/AAD//wAAAQAA////AP///wAAAAAAAAD/////AAAAAAABAAD/AQEAAQAAAAAAAQABAAD/AQEBAQAA/wD//wD/AAEBAv8B/gEBAQAA/wAAAAAAAgAC/wD+//8AAQEBAQABAgIBAP//AP4BAQABAAEAAQEBAQAAAAEBAQIBAP79/v//AQABAgIA/v7//v//AgID/v7///8AAgMFAAEA/vz8AAAAAQIB9fb19fb1AgH/FBoZAAMD4+HhCgkLBgkK/Pf5Dw0N7efmDQcGBQYG//z6AAMCBgUFAf///v39+vv9AQIC/v/8Af0E/wP+AwIC//79/fz9BgIDAQEB/v79AgAA+fn3+Pf2/v/9AwYFAf0AAv/+/v/6/f/+ChAP2+ru6err//7/AQAAAAAA/gABAv8A/gD///4AAAAAAAABAAABAP8B/gD//v38/P37/fz7/v39/v//AAAABAAAAAABAAH/AQAAAQEA/wABAAAA//7//////v///wD//wEAAQAAAQAAAQIBAgIBAgICBAICAwEAAgEBAQAA/wAAAgAAAQAA/wD//wD/AQEA/gEAAP4AAAH/AP8AAAAAAAAAAAAB/wD/AAAAAP//AAAAAAAAAAAAAAD/AAAAAAEAAf8BAAEAAAEBAAAAAAAAAAAAAAD/AAAAAAAAAAAAAf8AAAAAAAD/AAD/AAD/AP79//7+/v/+///+/wD/AQABAAEBAQAA/v////8A//8AAQICAv//BAUGBwUGCQEBA/z+/gEDAgICBAQEBgIEBQMDBAICBAEBAQAAAP8B/wECAf79/f//AAICAQIDAwT+Av/+/gICAgEBAf8AAAMFBQEAAAAAAP//AAAAAAECAwAAAAD///7/AAMCAwEB//3/Af3+/gICAv7//vz8/AECAgEAAP79/gEBAP8AAAD/AAIDAQD//wEBAfz8/AQEBP////4A/wIBAAEAAQABAAD//wECAAMAAf38/AMEBAICAf////4BAAAAAAD//wABAQIBAAD/AAAA//8A////Af/+/v///wMCAwAAAP8AAAD/AAEAAAAA/wEAAAAAAP8A/gD/AgABAAIAAP8BAQEAAAEBAQEAAAAB///+//4AAAMBAP4AAAEAAQABAQAB/wD/AP7//gABAgAB/wEA/wD/AAAA//4AAQAAAQEBAf8AAAAAAQECAQD/AP3//f///////wEAAf3+/fj4+QEBAQICAv39/QMEBAEBAfv6+gEAAQgJCPTy8wcJCfn39f36+/f4+RQZGfn8/AYEBOLc2/v39goEAw4JBgcDAv79/f8CAgUFB/z8/AICAQMFBgL/+gQGBf3/APv7+wQCA/35+P37+ggBAP35BQAA/QQFBfv9/P39/QACAQMDBQABAAQDA//69/39/AQGBwQMDdzN0+/w8gAA////AAAAAQEA/wAAAAD/AAAAAf8AAQABAQD/Af8A///+//39/fz7+vz9+vz9/P/9/f///wQBAQABAAD/AP8AAQD/AAAC/wD//v/+/f79/f79/f3+/v7///8BAP8AAAEBAQEBAgECAQEBAQMBAQL/AAEAAQL/AAAAAAAAAAD/AAAAAQD//gAAAAAAAQEAAP4AAQAA/v7/AAAB/wD/AAAAAAAAAQEBAP////8AAAAAAQAB/wD/AP8AAAD/AQAAAAABAgAB/gABAQEAAQEBAAEBAQABAAAB/wEBAAD+//////////7/AP/+//7////+///+/v8A/wAAAAEA/wAAAAEAAAABAf8CAQIDAwQFBAcAAQH6/PoD/wQCAAQBAAQBAwQEAwQCAgMCAQEBAQEAAAEAAwAAAAECAAH9/v0AAAAB/wAAAQEDBAQA//8BAgIAAAACAQEAAAH//wAEAgH+//8BAgH//f4AAQABAAD+/f0CAwICAwL9/P3//wAAAf8A/v8A//4AAAL/AP4AAQIA//7//v//AQL+/wEBAQAA/wD///8BAAH+/v7//v//AP8BAAAAAP8CAAD+/wACAgH+/v4A/wEBAwIBAP8AAQEBAAACAQABAgIAAf8AAAEBAQH+/v7/AP///////vwCAAIAAP8CAQH/AP8C/wEAAQL///4BAAEBAgH///7/Af8B/wEBAQEA/wAAAQD///8A//8CAAEA/wACAQD/AQH//gAB/wD+//8AAAABAQAAAgD//wEAAQAA/v8BAAAAAAH/AQIB//8CAgEAAAEA//8AAAAA/wAAAAD9/v3////7+/sLDAv9/f0BAQEBAQAAAP8EBAMCAQH7+/oBAgIDBQPx7/D19PQTFhUTFhgSFhj8+PYJCgn89vT9/f4IBwcFAQD2+vsICAj///7+/v0EBAb/AQEBAgL/AQH5+/oB/gD29PP5AAEMDgz89wL7BwUBAgH8/wD9/P3+/wEFBQf+Av0A//4BAQD5/Pz//wADCQr3/gHj4+j//wEAAf8AAAAAAAAAAAD//v//////AP////////////8AAAD////+/v38/Pv8/P39/Pz9/f4A/wAEAQEBAAEAAP8AAAD/AP///wD//v7+/f79/v7+//7//v7//v/+//8AAQEAAAAAAgADAQIDAQIDAQEDAAAB/wAA/wD/AAD/AAABAQEA/v//AAAA/wD/AAD/AAEBAf4A/wECAf/+/wEBAP//AAAAAQD//wAAAAABAAAAAAAAAAH/AP8AAQAAAQABAQEBAP8BAAEBAQEAAQAAAAEAAQAAAAAAAAH/AP4AAQEAAAD/AAD+///+AP//AP//AP7/AAD/////AQH/AQEBAQEAAAAAAAD/AgICAAEA+/z8A/r6BQQEAgUGBQUGAwQFAgEBAAAAAAABAQEB/wAAAP/+AP8AAP/9AQEBBAMF/wAAAgIBAAEDAP7+AQICAQEBAAEA/v3+AP/+AQEB/gABAAAA//3/////AAD///0AAwID/fz8AgMCAQD+/f39AwID/wEA//7/AAH9AgEC/v78AQABAP//////AQH///8BBAMD+/v7AgMCAQAA//78AQIC//8AAAAAAP8A/v//AwEC////AAL/AP//AgECAAD/AQAAAAD/AAH/AAABAAH/AAAAAAD/AP8AAAAA//3/AAMAAQAB/gAAA////wEBAP//AAAAAQEAAAAAAAAAAP8AAAAA////AQAAAAEB/wD/AAEAAP///wD/AAABAP//AQAA/wEBAgAB/gAAAP8AAP8AAP///wD/AAABAP//AQEBAAAA/gAAAAACAP///wEAAAD//wEBAP/+AAAA/P3+CgoKAAAAAAABAAAB////AwMD/wAAAAAA/f3+AQEB8O/wDRAQDxQUFBYX9vf3AAICBAUH+/r8CAYIBgMCDg4LAfr5/wAB/v38/Pv8AP8A+vv7BQcGAgYG+f39+fv8BQAB/ff4BQIB+fcDBQgJ////AQIC//79//7/BAQF+v3+Af//AAEA/v39//4AAQcIBxASzdjd3+Hj/wD/Af8B/wD/AQD//wABAAAA//////7//wAAAAAA/wD/AAD//wD//f39/fz9/f38/f39/P39/v/+BAAAAAAAAAD/AAAAAAABAAD/AAAA/v7+/f79/v79/f7//v39/f7//gMCAgAAAQECAAICAgEBAgABAQAAAf//AAAAAf8AAAEAAAAAAQAA/wABAQH/Af8AAAAB/wACAAH+AAABAQD//wABAAD/AAAAAQAAAAEA//8AAAABAAD/AQEBAf4BAQAB/wAAAAAB/wAAAAD/AP8A/wEA/wABAAABAAD/AAABAf///wD//v/+/gD+/v/+/wD//v8A/wD//gAB/wABAQEBAQEBAAIBAQEAAf3+/QEAAP39/QD//wACAwIDAwIBAgICA/8A//8AAAAB/wAAAAAAAP//AP7//v///wAAAAECAQABAQEBAgIDAwACAv///////wH/AQICA/8A/v/9/wAA/wEBAf8BAAMCAvv8+wD/AP///wAA//7+/AIDAwD/AP39/QEBAQAAAP79/gEDAP///wECAQIDAf///wD9/gIDA/39/QIA///8/AECAf0AAAMAAP///wABAv7//v/+/v8CAf///wEBAv///wEB/wABAAABAQAA/wD/AAABAP///wAAAQEAAAD/AAMBAv0B/v7//wEBAQD/AP/+AAECAAAA/gABAf7/AAIB/wEAAQD//wAB//8AAQABAAAAAP/9AAEBAf///wAAAQAAAAAAAf8A/wAAAP8AAAAAAQEAAAAB//8AAQH/Af8A/gABAAEAAQAAAAL/AAABAP4AAAD///8AAf8A/gEAAv8A/QQEBAEBAP7+/wMCAv8AAAQEBAAAAQACAP38/AIDA/37/A0ODwcICAUGBvn3+AICAgwODurm5hgdHvTt7RMRDwH//PLq6AAAAP37/AAA//z+/gEAAQD8/Pz//wD+/wABAfv6+vv7+fz+/goLCgMEAQIBAQD+AAMEBAMGAv4BAQIBAgEGBgH//f/9Bv4GBgoSEPD8/8XKzPz8/AEAAAAA/wEAAP8AAAEAAP///wD/AP8AAP/+////AAAAAAD/AAD//v/+/fz9+/z8/P39/f39/QD/AAT/AAAAAAAAAP8AAAAAAP////7//v7+/f3+/fv+/v7//v7///////7///4AAQABAAEAAAEBAQIBAQH/AAAAAP8AAAEBAAEBAQH///8CAAH/AP8AAQEB/wAAAAH/AP8AAQAA/wD/AAABAAD/AAABAAD/AAEAAAEAAAAAAP8AAQD/AAEAAAEA/wAAAAEAAAIBAP4AAQECAAH9AQABAAAAAAD/AAD+//8AAQAAAAAA/wD/AAAA//////8B//4AAAAAAP8BAP8BAgADAwMDAwICAAL+/gECAAAEBAQDBQUFBQYEBAYCBAUDAgMCAwQBAgMCAQMAAQAA/v////8A/wAAAQEAAAH///8CAQEAAQEBAQEAAQAB/gEBAQAA///+//4A/wABAwIAAP/+/v8AAAD/AAACAgMAAP8A/wD///////4AAAEAAQABAgH//v8DAgL8/wD+//8BAAD+/f0DAwP//v78//0EAgAA/wD//wAAAP/9/P8GBwQAAAD9/v0CAgD9/fv/AAH//wAAAAD//v7/AAAAAAD///8BAQEAAQEBAgEBAAAAAAEBAQEBAAEAAAAAAQACAgL///8AAAABAAACAwL///8AAP8BAAEBAAD//v8BAQEBAgH+/v4AAAAAAAD//wAAAP/+/wAA/wAAAP8BAAAAAAAA/wD/AAAAAP8BAQEA//8AAAICAf//////AAD//wAAAAABAQEAAQD9/f4AAQH//wABAQIDAwL9/f0BAQEBAgL+/f0CAwL+/f4B/wADAgP////8/v8AAQECAwMBBAIKDA0HCAgBAAH59/oKCw3z8/IWGhv18vIaHh/9+Pbv5+b4+Pr7+/v7+/v6+fj9/gAEBAMD/wADBwcICgr7+vv5/PUBAAAAAQAGBgb//v79+vsACP8BAQH9/v8BAAEFBgcA//7+/AD+/wD/AwQEDA7X0NXm5un//gAAAAEAAAD/AP8BAAAA//8AAQH/AP//////AAD+//7//v8A//4A///+/v37+/v8/fz8/Pz9/fz/AAAEAf8AAAD/AAABAAEA/wAAAP////7+/v38/f79/v78///+////AAD/Af//AAD//gD/AQIBAQEBAAEB/wAA/wAA/wD//wAA/wAAAQEB////AAAA/wEAAQEA//8AAQABAP///wD/AQEA/wABAQEA////AAD/AAAAAQEA//8B//8AAAD/AQAAAQEBAQAAAQH/AQEAAAEAAQEAAgABAAAAAQAAAQAAAQEA////AP////////7+/v/+/v79/v/9///9AP//////AAAAAQAAAgECAwQDBwUGAQEBBQUHBgUHBAUFAgIDAgIDAwMFAwQEAQECAAAA//8A/wAAAQIAAgAB/wAAAAAB////AgICAQEBAAAAAAAB///+/wAAAgAA//8A////Af8BAAEAAQAB///+/f/+AQECAgABAAIB//8B/f7/AAEAAP8AAgABAAIBAAABAwMC/Pz9AwMCAQEBAP//AgMC/v3+//7+AQICAgEC//8A/wD9/v//AgABAwIDAAEB/////wAAAAD/AAD////8AQADAAD/AAAAAAAAAgECAQABAAEAAAABAP8AAQEC/wD+//8AAQEA//7/AAEBAAEA//8AAQABAAEBAAAAAAABAAD+AAAB/v7///7/AQIBAAAA//7+AAEBAAD/AQAB/wABAAD//wABAAD/AQAAAAAB////AAAAAAAA//8A/v/+AP8AAgEBAAAA/wD/AAEAAgID////AQICAv/+/v8BAgH9/gECAAD/AwQEAP//AAIA/////////v3+AQEBBAQE+/v8BwcIAgICAP///fz+CQoJ+/z7DA0O/f38DhESAgEA/fz7+vz7BgUG9/z99vb2//7/BAQFAQICAwUEBggIAAEB/Pz8AwMGAgEDDAoIAAAB/vwA//3//v3+/Pj7/f39AAUFBwsK//7+//36/P37AwgI7vX3y8zQ/Pv7/wAAAAABAAAAAQAAAAD/AQABAAAAAAAA//////////////////8A/v7//v3+/fz8/Pr7/P38/fz+//7+BAABAAAAAQABAAD///8AAAIBAP8A//7//v7+/f3//v78/gD//wD/AP8A/wAA/wAA/wAAAAEBAQAAAQD/AQAAAQAAAAABAAAA/wAAAAEBAP//AAH/AP8AAAAAAAAAAAABAQD/AQAAAAEAAP8A/wABAQH/AP8AAAD/AAEAAAEB/wD+AP8AAP8A/wAAAAEAAQAAAAIBAP4BAQABAAEAAAABAAABAAD//wAAAP8A/wAAAP7//v7//v8A//////8A/v7+/gEB/gAAAQAA/wICAQMDAgMDAgAAAf8AAQEAAgEBAwEBAwEAAf8AAP//AP8A/wD/AP7//gIBAQD///3//gAAAQH/AQEDAgMDAwAAAQAAAQEBAAACAgD//////wAAAAAAAP8A/gEBAQAAAP///wD/AP7//f3//wIBAQIBAgEAAv7+/wUDA///AAMDAv///wEAAQQFA/7+/gEAAf7//wL/AAMDAwD/AP/+//7//gMDAgIDA/r7+wYBAgUGBP38/wAA/gAA/wD//wICAv///wAC///+/gACAgAAAAAAAQAAAAEAAQICA/38/P4B/wACAAD/AQD/AAABAQD/AAABAAAA/wAAAAABAgEAAP8AAAD/Af///gD//wABAQAAAAAAAP8AAAAA/wIAAAAAAgAAAP//AAAA/wAA/wABAgEBAP/9/wD/AAAA/wD+/gD/AP8AAAAAAAEAAP/+/wAAAQAA/wEBAAEAAQAAAQH///8BAQECAAEAAgAAAP7/AAEAAAABAf7+AAABAQIBAgAA/////gICAwEBAP8AAAIEAvv8/v//AAIDAwMEBP8D/fz7+efo5vf19fLz8/Hy8wYCBP8A/vv+/wUHCAcKDPr7/f359wL/AAkKCwQB/wgHBv///wEBAgQEBAD+//z7+fb09AYMCwcJCAMDBPv9/f4B//8ICMTJzObm6P//AAEB/wD/AP8AAAAAAAD/AP8BAQH/AP////8AAP//////AP////8A//////39/fz8/fr7+/38/P39/f7//gQBAAEBAQEAAP8AAAAB/wD///4A/////v3//v3+/f7+//3//v7+/v4CAgMA/wAAAAEBAP8AAQABAAIAAQAAAQAA//8B//8BAQIAAAD/AP8AAAEBAf///wEBAQD/AAAA//8BAQH///8A//8BAAH///8AAQAAAQAAAAAB/wAAAAAAAAAAAAAAAAEAAQAA//8BAAAAAAEAAf8BAQAAAQAA/wAB/wABAAD/AP///gD+//7///7+/f7+/fz+//8AAAAAAAEAAAIBAQECAgMCAgIBAgMEBQYGBQcJCgoHCgoEBAUCAwUDBAMBAgH/AAABAQABAAAA/v/9/v0BAQH9/v4BAQABAAIDAAL/AAACAQEAAAAAAAABAgH+/P////7///7//v/+/v0DAwIAAAD//v8BAgEDAAL+AP4BAAH/AP4CAQH//v/9/v0EBAX+/f0BAQIBAQIBAAAAAQABAAH/AP/+/v8CAf4AAAEBAgIAAAD+/wADAwQFAv///v///f8BAQD+/gD/AP//AP8BAP////4B/wH9//4BAAACAQEAAP///wAAAAEAAAAAAQH/AAAC/wEAAQH///8AAP8AAQAAAAH//v4AAgICAAAAAAABAP//AP8AAAD/AAAAAAAAAQD///8AAP8AAAH/AAEA//8AAQH///8BAQEBAAEAAP///wD///8AAQEA//8AAAEAAQAA/v8BAgH//v4BAQH+/v4BAAEAAQAC/wD/AAH/Af8CAQH+//8BAAH9/v4CAgH9/wEBAAEAAP0CAgECAgP+/v8DAgQEBAT////+/v79/PoBAQIHBgMAAAH7+/v////w7+7+/v4KDQ4C//8DAgH69fX8+vkHBQcFBgf5+vsBAQEGBQQGBQUHAwMEAgH+/P0BAQIBAQEBAgMCBAQCAAEGBwX+/fv7+PcDBgf6+/sABQXl7e7Q0tT7/Pv/AAD//wABAAAAAP8AAAEAAQAAAP//AQEA/wD//v/+/////wD/AAD//v/////9/v79/fz8/Pv8/Pz9/v0A/v8EAAEB//4AAP8A/wD/AAEA/wAB//////7+/f39//38//79/v7+//8AAP///wD/AAD//wABAAABAAEAAQAAAQABAAD+AP8AAAH/AAABAQAB/wD/AAABAQD9/gABAAD/AAAB/wD+AQEB/wIB//7+AAEAAP8AAQH//////wD/AAH/AAAAAAAAAQAA/wEA/wEBAAABAQAAAQECAAD+AgEBAQH/AAEAAf8AAAD//wD+///+/v///v/9/gD/AP/+/v3//wT/AAD/AAABAAAAAAAAAQEABQUEBgYFBAQFAQEBAQEBAgIBAAAB//7/AAH+AP8B/wD/AAAA/v7/AAD+AAAA/wABAgIBAgICAQABAQEBAQAB/wD/////AAEAAP4A/v//AP7+AQH//v79AQEBAQEC/////gH/AQEB/v79Af8BAgIBAwQF/f39/fz8AwQEAAAA/v7+AwQDAwED//4A///9/fz8AAMDAQECAP8AAgMC/f3+////AwME/Pz8/f7+AwMFAAD+AgEB/v39AQABAP8A/////wD/AP///wAA/v8BAv8BAQAA/v3/AQEAAAACAAAAAP8AAQEB//8BAQEBAQAA/wEAAAD////+AAEAAAAA/wABAAD/AAD/AAABAP8A//8AAAACAQAA////AQABAAAAAQEA////AAEAAP8A/v8AAAEAAQEA/v8A////AAD/AAD///7/AAAA////AAAAAAEB///+AAEAAP8AAAACAAD/AgMDAP////4AAQAAAgIDAP//AgIDAAD/AQECAAH+BAUFAQEB/vz9/v7+/v8ABQQGAAAA/f78AQEA/P/+BQcIGx8h+/b16fz69PX2+fPzCAcHBgsKAwQECgYIBQcHAQD/BQEB/fv7AgMDAgUBAwD/AgMFAwQGBAYGAgYA/v/9/gEB/v/+/Pj0+/36BA0L1c/R8vP0AP/+AAAAAAAA/v8AAQAA/wH/AP8AAQEB//8AAP8A//////8A//////8A/v////////7+/Pz8+vv7/f39/v3+/P39BAEAAQMCAf7+/wEAAP//AAEBAAAA///+/v///v7+/f38/P7+/P7+/f7/Av//AP8A/wAB/wABAAABAf8AAQAA/wEAAQAAAAABAQAAAP//AAEBAP7/AP8BAQD+/gD/AAAA/wD/AP///wAAAAEAAP8BAAD/AAAAAQEBAAD//wH/Af8A/wABAAAB/wD+AAEBAAAB/wABAAAAAAEAAQAAAQEAAQEAAAAA/wAAAAD//////wD////+/v/+/v7+/v///////v///wAA//7/AP7+/wEBAgIC/wECAgECAf8AAP7/AAD9/gL/AAEBAwAB/v4AAAAAAP//AAAAAAABAQH/Af8A/wEAAf///wAAAAAAAP7//////v7+/gH/AAABAf///wIDAf/+AQAA//39/QEB/wEBAP39/wQDBAQEBf///gAAAf8AAAQFBf////79/gQFBP7//fz6+wMEBAICAAD/A/8D/v///wEBAP39/AICBQEBAf//AP///wMEBP///gEAAAAAAQAAAAEBAf////7//wMA/gAB/wEBBP8AAAAA//8AAP7//gEBAgH/AQEBAP8AAAEB/wAAAQICAQAAAf8BAQEBAAABAP8BAAIAAQAAAAAB///9/////wAAAAAAAQABAAD//wAAAgAAAAABAAEAAP8AAQEA//8AAP8AAAABAAAAAf7+/v7//wABAAAAAQAAAP///wD/AP//////AAAA/gAAAP//AAAAAP///gEAAAICA/z8+wIBAP8AAAICAv7+/gIDA/79/v//AAEAAQABAgD//QEBAAABAgQEBAMCAv79/f39/wMCAwAE/w8PEPz5+e/n6PLs7QD+/w0ODwkMCwUHBwUEBAQEBQAAAQYEBQD9/gQFAwQHBwMDAgD9+wQEBAACAgABAf8A/wMIBgYEBv8CAvf59gYNDPD8++Ll6Pz9/v8AAAAAAAAAAAEBAP8AAAEAAAAAAP8A/wEAAf4A//8AAP//AP//AP7+/v7/AP////3///z9/fz7+vz8/P3+/f78/QQBAQD+AAAAAQAA/wAAAQD//wAAAAD+/////v7+/f3///7+/f0A//7///4A/wEA//8AAAAAAAABAQIA////AP//AAAAAf////8BAAAAAAAAAAABAAAAAAEAAQEB////AAABAQEAAP8A/wH/AAEBAAAAAAAAAf///wD/AAAAAAAAAAABAAABAAEAAQAAAAEAAAEAAAABAAAAAgAAAQAAAQEBAP8AAAAAAAD/AP8A///+/v7+////AP//AP//AP///wD+/v4CAgAAAAAEAwMEBAT+/gECAwMCAgMCAAL/AP////////////0BAQICAgIAAP//AAAAAAD+/v0CAgMBAAEAAQABAQL///8BAAEAAQAAAAEA/wD//v////8B/wD+//8BAQIA////AP/9/PwCAQEBAgH6/PoD/gQDAwIBAQEBAQEAAQABAAIBAf/9/P0EAwQCAf38/f3/AQEBAgEDAgT7+/sAAf///v7////+/v4EAwL8/f0EBAQAAAH+/v4DAgL+/v4AAgH/AAABAP//AAEAAAIAAQEBAQEAAAD//wAAAf8BAAD///7///8CAgL+/QABAv8BAQEBAQEBAQD/AAABAAAAAAD/AAACAAD//gD//////v8BAgEAAP8A/wEAAAH/AP8BAQAA/wD/Af8AAAAAAQEBAQAA/wD/AP//AAD+AP8AAAEAAP7+/v8BAAAA/////////v8AAf///wEAAAAAAAH///8AAAABAgP+/v4AAQIBAf4CAgP/AAACAgL//f0CAgH//wABAQH//v79/gEAAAABAQECAgT//v7/AAACAwMAAgABAgH8+fry7/Dx7e0FBAYQFBYHBwUEBQUA/wAB//4BAQIDBQQICQv7+PgBAgMJCgr6+vkCAwIBAwMAAwL+Af8A/wEFCAoBBgX6/f0DAwsABgPg09Tp6usA//4AAAEAAP8AAAAAAAAAAAAAAAH/AAABAAAAAAAAAAH////////+/v/9/wD+///9///+///8/fz7/Pv7+/r9/Pz9/v4EAAAAAQEBAAEBAP8BAQABAAEA/wAAAP///v7+///+/v/+//////////8AAQAAAAAAAAAAAQABAQEB/wAC/wABAP/+//8BAgEAAAABAQEA//8AAAAA/wD/AP///wAAAAABAP//AAABAAD/AAAAAAAAAAEA//4BAAAAAQEB////AQAA/wAAAAAAAAAAAAAAAQABAQEBAAEBAQAAAQABAAD/AAABAAD/AAAAAQAA/wD/AP////////7+/v7+/v7+/v/9Av8C//8BAgEBAQICAwECAgMBBAMEAgICAAEAAQAAAQD////+/wAAAf//AP///wH/AP///wH/AQABAP/9AQIEAQEBAAD/AQEC/////wD/AAD/AQIB/f78AP///wD////+//7/AwQEBQIF/wMD/f39/f39AQAA/f78//4BBQUF//8BAf8B/wAA/wABAgIB/P38AQEAAwQD/v7+/vz9AQEBAwQD/v7+BQUF/f7+AAAA/wD/AgECAP//AgIC/wD/AgIDAP//AP8AAQEA/gD/AQAAAAEBAQICAQEBAP8AAAD/AQECAP8AAP4AAAIAAQAB/wD9//8BAQEBAAD/AAACAAD+AAACAQD/AQAA/gAA/gD//wD+AAEAAAEBAAAAAAAAAAH/AAAAAAABAAEAAQEB/wAAAAEAAQAA////AAAAAf//AP8BAP//Af8AAQAB//7+/wAAAP8AAAEAAQABAAEAAP///v//AAAAAwIC/v//AP8AAwEB/wIDAQABAQAA/gD///8AAgEC/wEA/v/+AAEAAQEB/v/+AwMD///+AAD/AQIBAP8BAP/+AP//+/r6/Pv7DxMVABQS+vb2APr5Av3+/Pz9AQIBBQUEAwID/f8A/gEDBwcIAQUGAwD+AP78AwMFAQMCAgEC/gIBAggH/gMDAgQEBgMD5+/uzdHT9vb3//8AAAAAAAAAAAABAAD+AAAAAP//AAEA/wAAAf8B//7///7+/v39/f7+//7//v8A//8A/v7+/f38+/v7/Pz8+/v8/Pz8BAABAQAAAAEAAf8A//8AAAD/AQH/AAAA/gD+/f7+/v79/f7//v///gD//gABAv//AAAAAP8BAP8BAv8AAQAA/wAAAAAAAAABAQEAAf///wABAAD//wEAAAEBAf///wEAAP8BAAD/AAAA/wAAAAAAAP///wAA/wAA/wAAAAEAAf8CAgD9/wAAAQAAAQEBAQEBAQEAAQAAAAEAAgAA/gAAAP8A/wABAAD/AAAAAAEAAP/////+//39/v/+//79/f/9/QADBAEBAgAA/wMDBAQGBf7+/wMDAwAA//7//wH/AAECAQIBAf////////4A/QD/AP///gABAP8AAAMDBAAA/wAAAAABAQEBAf4A/gAAAAD/AP/+/QEAAP4A/////f/+/v//AAD8/AMDBAAAAAICAgEBAPz7+/7+/v3/Af3+/QMDBQICAgUEBgICAgAAAAICAv7//v79/QAAAQIDA/79/f///wEBAv39/gMDAv7//wD/AP8A/gEBAwEBAf////3+/gEBAf///wABAQD/Af///wIAAAAAAAAAAAAA/wD/AQD/AP7//QEBAQD/AP8A/gABAAEBAQEBAQAAAQAA/wEAAQAA///+AAAB/wAAAP//////AP///wD+/gABAQIBAQAAAAEBAAAAAP8AAP8A/wAAAQD/AP4A/wAAAAEAAQABAAIB//4AAP4AAAD//wABAAH//wABAQEAAQAA//7//wAA/wAAAAEAAf7+/v7//gIBAwEAAAABAP//AAD/AP//AAMDAwD//wAAAAH+Af8AAf8A/gECAgIBAf79//8CAP/9/wD/AP//AP39/f8A/woNDQgMCgYEA/Tv7fLp6f/8+wkLCwECAQABAAMBBAIBAQIDBQcJCAECAQUDCP/9/AMDAgACAv0CAQQGBf4CAwAEAwUGB/v+/+ns7+bn6v7+/wD/AQAA/wAAAQEB////AAEAAP8BAAAAAAAAAAAA/wABAP8AAf8AAf/+//7+/v7+////AP////79/vz7+/r6+vv8+//+/gQBAAABAQEAAP8AAAAA/wAAAQAAAP/+///+//7+/v3///////7+//7//wAAAAAAAAAA/wEBAAEAAAABAQH//wH/AAAAAAAAAAAAAP8AAAAAAAABAQH///7/AAAAAAD/AAAAAQAA/wAAAAAAAQAA/wAAAAAAAAAAAAAAAAD/AP8AAP8AAQAAAP8BAAAAAAAAAAAAAAABAAD/AP8AAP8AAQAAAP8AAAAAAAD/AAH///8AAAH///7+/v/+/v7/AP8AAAABAAEBAQEAAQAB/gEBAAEA//4AAAAAAQEBAQABAQD////+/wAAAQAAAP///wABAP8BAQAAAAEBAgEBAQEBAQIBAAABAAD///8AAQAAAAAAAP8AAP//AP8AAP3///7//v4BAP///v77/vwBAQIDAgIAAQEEBgb+/f79/fwAAAAA/wAA/wH9/v0C/wEBAgEBAgMEAgP/AQD9/P3///8CAwP7/Pv//fsEBAUAAQEBAAAAAgH//v/+AP4C/wACAgP7+/oDAwMBAAEA//4BAAAAAAD/AQEBAAAA/wD+AAADAgAAAAABAQL///4BAQH/AAD/AAABAf8AAAAAAP7//wEBAgH/AAABAQD/AAAA//8A/wD/AAD/AAABAQABAQH/AP8BAAEAAAEBAAAAAQAA/wD+AP8BAQAB/wAAAgAAAAH/////AP////8A/v////8A/wAAAAD///8BAAD+//7//v4BAQABAQH///7//wACAQIBAP///wAAAAAA/wAAAQECAQL//wD/AP8A//8BAQIBAP8BAgMCAQD+/v7/AAAAAAAAAAAAAQAAAgEBAQIEBQYACgH//fz9+vkDAgMKCgz7AvcFBwf+/v7//v8BAgD+/v4GCQgGCgkDAQH+APwB/wACBAH+AAEAAwMAAwMBBQMDCAj+AgPq6OvJysv49fcA/wD/AP////8AAAAA//8AAAEAAAABAAD///8BAQD/AAAA///////////+//7+/////v////7//v/+/f38/P37+/z7/Pv8/f0EAQEBAAAAAP8A/////wABAQEAAAEBAQD///7+//7+/v39//7///3/AAX/AAD/AQAAAAAAAAECAQEB//8BAAAAAAAAAAEBAQEBAAAAAQD/AP8A/gD/AAABAAD+AAAAAAAAAP8AAAAAAAAAAAABAAH/AQEB////AAEAAP8AAAEBAf4AAQABAAEBAQEBAAAAAQEAAAEAAAAAAQEAAQABAQAAAQEAAf8AAQABAAD/AQEB//////4A/v7+/v7///7//v///v/+Af79AAAB/f39/v7+AQECAAEBAQABAAAA//7+AAIBAQIAAQAB/gD+AP8A////AQEBAQL///8BAP8BAP/9/v8AAP8BAf/+/wAAAgECAP///v7+/f38//39/fz8Af///f/+AAAAAQACAgP//QEAA/8C/wEBAwMDAwME/wAA//3+/wAA/v7+/wIBA/4CAQMBAAECAQD/BQUF/f39/fz7AQAAAwME/Pv7AwMDAQIBAP/+AgMD/fz9/wP+AAD/AQEB//7+////AgIC/wD///8CAwD//wAA/wD/AAAAAAEC/wAAAQAAAAAAAQEB//7+AQEBAAAB/wD/AQAAAAD/AP8BAQEAAAEAAP///wAA/wD/AP8AAQAAAAAAAAEA//7/AAABAQEA/wAA////AQEBAQEBAf8A/wH/AQAB/wAA//4AAAABAQAA/wEA//7+AP8AAP//AQEB/v/9//7/////AAEBAP7+/wAAAAAB//7/AAEBAQAA/wAAAQIBAAAA//8AAAD/AAAAAAEAAAH/AQABAwIC/wD/AQEBAgEC/f/+/wAAAgIB//4A/gEB/P3+/Pv7Af//////BAUF+QICAQICAgECAgQC/fz9AQEABwgGBAYGAwQE//78AAAAAAQCAgYGAP8AAQIC/AD/AgQDAAQD+/r+09PT3Nzc+vr6/wAAAAAAAQAB/wD/AAEBAP//AAD//wABAAAA/wAAAQD//wABAP///////v7///7//v/+/v7//wD//f79/fz6+/z7/fz9/fz9BAEAAAAAAAAB/wAAAQEBAQAAAAAA/wAAAP///v7//v7///7+/v8AAAD/AAAAAAAAAQEBAQEBAQECAgECAgD+AgAA/gD/AAAAAAEAAf8AAAAA/wEAAf8A/wEAAQAB////AAEAAP8AAAABAQD//gD/AP8AAAAAAQAA/wAAAAEAAP4B/wD//wD/AAAAAAEAAP8AAQEAAQECAAD9AQEBAQEBAAAAAAAA/wAAAAD/AP7+/v//AP8A///+//7+/v7+/v/+AAD//wD/AP8AAP8A///+/wMEAwEBAf8A/wAA/gEBAwAA/v//AQABAQD/AAAA/wEBAAECAAEAAAD//gD/Af3+/wMAAP7+//8BAQMDA/3+/gD//v7+/f/+/fz9/P/9/QH//v3+/f7+/wIAAQIEBAH9/fz/AAABAgEDAgMCBAIDBAIFBQEAAP///wEBAv8CAvr7/AMDAgQDBP7/AAAAAQQFB/z9+wEAAAUCA/v8/AUFBf8AAAD+/QEAAAMBBP///gAAAP8AAAEAAPz9/AICAgIBAQIBAQAAAP///wEBAf///wEBAP/+/wAAAP///wAA/wEAAQH//wAAAAABAQEBAQEBAAEBAP8AAP8AAAAAAP////7//gEBAQH/AP///wECAQAA//8AAf8A/wAAAAD/AAEAAQABAAEAAQAAAAD///8A/wAAAAECAQD+/wEBAAAA//8A//8A/wD//////wABAP///wAAAP//AAEA/wEBAQD//v8BAv8BAQEAAAAAAQAA/gAAAAAAAAH/Af4AAAAB/wIBAv3+/gIBAvwA/QEAAAMCAgD///0A/f7//wICAgcJCfv39wEBAff4+P39/QQFBv7//gUDBAQIA/79/v4A/vv7+P39AQMEAgADAgEBAf7+/gACA/3+/gADAwEEBPv8/uHi4tLR0vr4+AAAAAD/AAD/AAAA/wD/AP8A/wAAAAD/AQEA//8AAAH/Af8A/wH/AP8A//7//gAAAP8A//////7+/v7+//7+//z8/fz7+/v7/P7//gQAAQABAAEAAAEAAP4AAP8BAQIAAAD//wD+/v///v///v7+/v////7///8BAgABAQABAQECAQIBAQIAAQIAAAEAAAAAAAAA/wAAAQAAAAAAAAEAAP8AAQABAQH//wEBAf/+/wEAAf8B/wABAAH/Af8C/wD+AQAA/gH/AP8AAP8A/wAAAAEBAQH+/wAAAAAAAAAAAAEAAAICAf8AAAAAAAABAQAAAAEAAAD+AP8B/v7+/fz9/f39/v7//wD//wEAAAD/AAEAAQECAAEBAAEBAgIAAAD///8A//4B/gIAAv4AAAH//v/+AAECAAIAAQD/AAAA/gAAAf///////wACAQH9//8AAQIDAwT//QD9/v3//fv9+/v+/P3///4A/wEA/v79+vr7/vv/AAEGBQYFBggCAgL9/v39/P8BAQMDBAMCBAUFBAQDAwQAAAECAQIDBwT8/Pz6+/sFBQYCAwP8+/sIBwr5+vgAAf8DAwT9/v4DAwIA/wABAQD+/v7///79/f0EBAQCAwP//f4BAgEBAQEAAAD+/v4EAwP///8AAAD///8BAQH//wAA/v8CAgEAAP//AAACAQEAAP8AAAEBAQEAAQABAP///v///wD///4BAAABAQEBAQABAQEAAAAAAQH///4AAQABAAEBAQD///8B/wD/AAEBAgEAAAACAgL///7+/f8AAAAAAAD///8A/wD///8A/gABAAD///8AAAD/AAAAAAD/AAAB/wD/AAAA//7//wH/AAAAAQAAAAEAAAD9/v0BAAEAAAACAQL+//8CAgH+/v8BAQEAAQIAAP//AAAAAQEFBgYEBQX9/PwEAwP49fMLDA/7AwX58/L///7+//8C/wIDBAT//v3//vwBAwP+/v0AAgEBAAD+//79/Pz+AQIICgj/AQLo6OvCw8To6Of///8AAP8AAQAA/wD/AQEAAP8BAAAA/wD+Af8AAAAAAAD/AP4BAAH/AAAA/wAA/wAAAP///wD/AP///////v79/f38/fv7/Pv6+/r9/f0EAAABAAEBAAAAAQEA//8AAP//AQAAAAD////+/v79/v7+///+/////wAAAAAAAAEAAQACAQEBAgEDAQIC//0AAAAAAAD/AAEAAAD/AP8AAAD/AAAAAAAB/wD/AAAAAAABAQH/AQAB/v8AAAD/AQAB/gD/AP///wH/AAAB//8AAAAAAAAA/wAAAQAAAAABAAAAAAD/AQAAAAAAAQEAAQBCasLCAAEAAElEQVQAAAAAAAAAAP//AQD/AP8A/v79/vz9/v7//f3+/v79/wD//wAA/wD///8AAAEBAgICAAD///7+AAAC/gL/Af7+AQABAQEAAgEBAAD/AP8AAQIA///+AP8A/wD/AP/+/QECAf//AwMA/vz7/v///v79AP/+//37/fr6/Pr6AP7+//7//f/+/Pz79/f39/f5CAoKBwcHAwYGAwUGAgQFBP0GBf////3+AwP+BgYH/f7+/vv8AwMDAQIC/v/+BAIEAwUF+fr5AwQF/Pv6AgEAAAEB//7/AAAB///+/f7+AQAB/f39AQEA/v79AQEBAAABAAAA/vz+AQMCAP7/AAAAAP8AAAEBAAEBAP//AQEA////AAEAAgEC/wD/AQABAQEAAAAAAP8A/wAAAAAAAP//AQAAAAECAQD//wABAAAAAQEBAQAA/v//AwECAAEBAQAB/wAAAAEBAgEB/wD/AP///////f7/AP/+//7/AP8A//8AAf8AAQAA/wEAAf8AAAAA////AQABAAD//wEB/wAAAAEA//8AAQEA//7//wABAQH/AQECAgEAAAEBAP7//v//////AAD/AAEAAgIC/f//AAAAAP//AgIC/f/+AP//BQYG+f38BQYHAgIDAwEAAf78/fr6/v39AwUFAQAA/f/+AgMD/v3+AQQDAP///v/+/Pr9+/38CQ4PAAIE9/j629zd3d3e+fn5//39AAAAAf8A/wEAAP//AAAAAAAB/wD/AP8AAAEAAP8AAAEB/wD/AQABAAAA///////////+//7///8A/v7//v7+/fz9/Pv7/Pz8/f7+ACuB1H4EAAAAAQAAAAAAAP8AAAD/AAAA/wAAAAD///7+/////////v7+/v7+AAD//wD/AAABAAECAQEDAQMDAgID/gEBAAAAAAABAP8AAAEAAAH/AP8AAAD/AAD/AAAAAAAAAQAA/wEA//4BAAH/AAABAAD/AAAAAAIBAf4A///+AAABAAD/AP//AAD//wAAAAAA/wAAAAEAAAAAAQABAAEBAQAAAQAAAQAAAQEAAAAAAAD/AAAA/f7//f38/v7+AP8AAAD/AP7///7/AwICAgIC/gIC//7+//8AAAD/AP//AQEBAQEAAAAB////AP//AQIB/v7/AAD//wD/AQAB/wAAAQH/AAD+//4B/wD///7//////vz9AP7/AwME/wUA+vn3/fz6/f38+/r68e/t6+zt/P7/EBMUDA0PBwoMAgICBQUGAwMDBAUGBQcHCgkKCAgKAwMB/v7/AgEBAAEA/P7+Af//AwMDAP/+AwMD/f79AQAB/v7+AP/9/f7+AgIABAMDAQEA/v79AQAAAgMDAQEA//8AAAEAAf7//gH/AQIB/v/9AQABAf4CAAAAAAAB/v//BAAC/wAAAf8AAAIB///+AAAAAQEBAP/////+/v/+/wAAAP/+AQACAQIAAAAAAP///wAAAgICAAEA/wAAAAD/AQEB//8AAAD/AAAA////AP//Af8A/v//AQAA/wEBAgEB/////v3+AQAA/gD/AP/+/wAAAQD//wAAAgEBAAEA//8AAAAB/wAAAAEBAAD///8AAAD+////AAD+AAH/Af4A////AAEAAgEC/gIAAv7+/QD/AAEAAP8AAQEAAQMD/Pv6AQECAAID/wD8/f798O7uBwYDCgoM/wAA+vv7AP/+AwD/AQICAAICAQEB/f39+vn4AwcGAgUF9/r61tnb0tLS+ff3//7+AAAAAQAA/wAAAAD/AAABAAD/AP//AAEBAAAAAQD//wEAAAAAAAABAAAA/gAAAAAA/v7//v8A//8A//8A/wAA/f3+/Pz8/P38+/v6/f39BAEBAAAAAAEAAP8A//8BAQAA/wH//wD///8A///+//7+/v///v///v///wEBAQEBAQEBAAICAQIBAgEBAgIBAf//AAAAAP8AAAH/AAD/AQAA/wAAAQEA/wEA//8BAf7//wH/AP8B/wD+AQEB////AAABAAD+/wD/AAAAAQAA/gAAAP8BAQH/AQEAAQABAAEBAAAAAQAAAP8A/wAAAAAAAf//AAABAAABAAD/AAABAP8AAAAA////AP//AP8CAQD/AAABAAIBAQEBAQMCA/8DAP4C/v///wEBAAICAgEBAQAAAAEAAAEBAQABAAAA/wD//v7+/gABAAIBAgECAQAA/wD/Af8A/wAAAAAAAQIBAgEFAgD+BAH//gEEBP8BAQEDAwH7+v38+wIBAQYFA/n19fLx7vj6+g37/AgJCv7//gMBBPr6+gP39vr39wcI9QcHCAoJCwQFBgMFBP///wAA//3+/gICAf7//gD+/wIEA/8BAP79/v7+/fr6+wkICAD//wEBAv8B//78/P0EBgQDAf8AAP8BAP8A/wH/Af7//wEBAAEC/wABAf8A/wAA/wAAAAD+//8BAQH//wABAf///wAAAP7+/v///wD+/wEAAP8AAP8A/wL/AQABAAAAAAEAAP/+//8BAAEB//7/AQEBAQAA////AP8AAP/+//4A/wAA/wEBAf///wD/AAAAAAECAQL/Av39/P7//gEA/wAAAQACAQD/AP///v/+AQEBAQAAAAD+/wACAQD//wEAAf8A/wEBAQAA//8AAP8B/wEBAf///wEAAAEBAP8BAgD+/wEAAv4A/QACAv79/f//AAADAgD9AQIEBAQFBgwPDv37+v///gMEBQkDBP/+/QD//AAAAPz//v39/Pn4+P8B/wQDCfv9/Ovt8MvMzN3c3fv6+v3+/v8AAAD///8BAAD/AQEAAP//AAABAQEAAAAAAP8AAAD/AAAA/wABAQAAAAD/AP7+////AP/+//////7+/v///////vz8+/38/fz8/Pz9/gQBAAEBAQAAAQABAQEA/wABAQEBAAAAAAD//v////7//v7+/v7//wD///8A/wABAAEBAQEBAgECAwECAgL9AAEAAP//AAABAP8AAAEAAAAAAQAA/wAAAAEAAAEB//4BAAD/AAAA/wAAAP//AAAAAAEB/wH/AAEAAf8A//8A/wAAAAAB////AAAAAQABAAAAAAEBAAABAQAAAAAAAP//Af8CAQD+/wAAAAAAAP///////v//////////AP/+/v7+//8AAAEAAgIBAgEC/wAC/gD//wAAAf8AAAD///4AAQEAAAEAAAD///8BAQAAAP7///7/AP8A/v/+AgAC/wMBAQD/AAAAAAABAAECAgD//wECAQIAAQAAAP8C/v4EAP8AAgEDBAX9/v8OEf8DBgb75ubh5eUBAwYJC+0EBAQKCQkRExMMCwwMCwr+/AH9+wH6AP7+/v0HBggFBwcDAwQDBAIDAwL+/f4CAQL/Af/8/fz//v7///4AAP8DAgL+//7//v78//wCAQEBAwMB/fwBBAT///4FAwUAAAD+//4BAQEAAAH///8BAQH///8A/wD/AAAAAQACAgEBAQEA//8AAAH/AP8AAAAAAP8A////AQAAAAAAAAD/AAABAAAAAAD/AAAAAf8BAAH//wEBAQEBAQD//wEAAP8A//8AAQEA/f7+/v4BAAECAQD8/v3+/v4A//////8AAAAAAAD+//4BAAEA/gH/AAAA/wAAAAIAAAEAAP4AAAEA/wABAQEAAAABAP8BAQD+/gEAAP8BAAH/Af8A/wD+///+/v8BAQAAAgD+/P8AAQEB//////8BAwIB/wEBBwH/AwMA/f0LDxH28vD7+vv+//8A//8AAP8BAQAAAf/////8+/z7+/oHCggABAL19vbU1dXf3t/6+/r+//4AAP8AAAH/AAABAP8AAAD/AAAAAQAAAAAAAAAAAAAB/wEAAP//AQEA/wD//wAAAf8A/wD//wD//v/+/gD//wD+/gD+/gD9/f39/f38+/z9/PwEAAAAAAEBAAAA////AAEBAAAAAAAAAP///////f79/v7+//7///////8AAAAAAAAAAQEAAQECAQECAQIC/wAC/wABAAAAAAAAAAAAAAH/AP4BAAD/AAD/AP///wAAAAAAAQEAAAAAAP8AAf///wH/AAAAAAAAAAAAAQEBAQEB/wD/AAEBAP//AQAAAAEBAQEA/wAAAAABAAEBAQAAAQAB/wEAAAAA////AAABAQAAAAD/////////////AP8AAAABAAAAAP///wAAAAAAAAAA///9//8AAAEAAAD+Av4CAAH//wABAQH//v8AAP//////AAD+/v/9Af39AP8EAAAEAgICAQAAAAD/AAAC///+/f7/AwME//7/AQIBAwMEAQIC//3+//8AAAACBQYH+Pf64+ft4OLm+fviBQYHCAoIGxkcAgEBCQcFFhQSDw8MCwsLEhIVBQUC+/sA/v/9+vv/BAYGBAMEAAAAAAICAf3+//8AAP7+/v7+/v78AP0AAwAC/v7+/wEBAgMC/wD//v/+//3+/wT/AQEBAP8AAQEABAMC/f79//79AQEBAQECAP//AgACAf8A///+AAAAAAD/AP8AAAD+/vz+////AAEBAQACAQEAAQEAAP//AAEB/wAAAQAB/v8AAgEAAAAB//4A/wH/AP//////////AAAAAgEB/v7//v7+/f7+AP//AQAA/wD/AAD/AAAAAgEC/////wD/AQEBAP7/AAH+/v4AAQIAAP8AAAEAAgAC/gD/AAAA//8AAQEA/v4AAQAAAP//AQEB////AQEBAP8AAgIDAAMA/////v3+AgIC//7//wH/AP4CAgMD/QQEAgQFBQYG/P7+AQAA/P78/v79AQAAAAEA/wD++Pn3/f/9AAMC9/n53eHlzs/Q9fX1//7+AP////8AAAD/AAEA//8AAAAAAAEAAP8AAAD//wAAAAAAAAEA/wAAAP8AAAAAAQEA/wAA//8A/v0A/v7//v3//v7////+//7+/P39/P38/fz8/Pz7BAEBAQEAAAAAAQAAAAD/AAAB//8AAP8AAP///v79/v3+/P3//P7+/QD//wAAAAAAAAAAAAIBAQIBAQABAv8CAf//Af//AP//AAECAAD/AQEB//8AAAD/AAABAQD/AAAB/wD+Af///wABAAABAQD+AP8B/gD/AQD///8A////AAD/AAAAAQEBAf//AQAAAAAAAAAAAAAAAAEAAAABAQEBAAAAAP8AAAEBAAD+//8A/////wD///7+/f7+/f///wAA/////////wD///7//f7//wAAAQEBAAECAQEBAgABAAD/AAAAAP//AP///v///wAA//79/f8A/gEBAQD//wL/AAAAAAABAf/+/wAA/wMDBAD9/QAAAAMEAwEBAAADA/79/f4C/gL7/AkLC/76BAwNDCAgIfb5/tLW0w8SExIOEvT6+/79/Ors9urt7RANCxwaF/r6+Q339Q0NDwgKCgMFBvr4/gEICQICAgH/AAECAQEAAQD/Af///vz8/QEBAQAB/v7//wIAAgD/AP//AP38+wEBAv/////+/wEBAAEAAf79/f7//QIBAv8BAAIBAP8BAP8A/wABAAEAAP///wEAAP//AP///////v8AAAMAAgABAAD////+/gECAwAAAAL/Af4A/gEAAv//AAEA//8AAQD///7+/gAAAQD//wEBAf7//v///gD//gICAgH+//7//gH/AQABAAAAAAD//wAAAQEAAAAAAAABAQAAAQEAAAEAAQACAP8A//7//v///gABAgD/AAAAAQIBAP7//gAAAQIBAf4AAQAB/gAAAAH+AAMDBP/+/gAAAQABAP8A/v////4B/QABAAIDAgEEA/3///r6+QICAAUFBP3+Af39/AEBAQABAwYKCQADAPr+/dze4srL0evs7v7+/wAAAAAAAAAAAAAAAAD/AAEAAP8AAAAAAAABAAD/AAAAAAAAAAD//wAAAAABAAD/AP//AAH/AP///wAA/v/////+/v7+/v78//4E//37/fz7+/7+/vv8/AQA//8AAAAAAQABAAH/AP8BAAEA/wAA//////7+//7+/v7//v7/////AP7//v//AP8AAAD/AP8AAQEBAQEAAAL///8AAAAAAAABAAH/AP////8A/wD//wAAAAEBAf4A/gD/AP8BAAD+//8A//8AAf8A/wAAAf8AAQAA/gABAQAA/wEAAf7+/wAAAAABAAAAAAEBAQAAAQAAAAEBAAAA/wABAAEBAf8AAAAAAAEAAP//AP79/v39/P3+/f79/v39/f7+/v3+/v4CAgIA/wEB/wAAAAAAAAD+/v8BAv4DAQICAgEAAAD///8A/wAAAQH//v4BAQIA/wABAQMDAgQA/wEAAAEA//8DBAQBAQIBAAECAgP+/v7/AAAA/wABAQACBAQA/P4EBgf//v76/f0ODhDj5OkMDAoODxEOERT/AgL/AQD29/f+/v399/ry9Pj2+Prz9fgZF/r8+fgICgoMDhAICQv6+vcFAwYBAQH9/fwDAgL+//0BAQEBAQABAAH9/v4BAAH+AP8D///9/fwEAgQBAAH+/P0BBAAAAAH9/v0CAgEBAAABAP/+/wD///4B/gD/AQAB/gIAAQAA////AAD////+/v4A//8BAQIAAAAAAAD//wAAAQAAAP8AAAH/AP8AAAEAAQEAAAAAAQH//v8AAP8AAAAAAP7//wD+//3//v7+//8A/wAA////AP8AAAAAAP////8A//8AAAABAQD/AAAB/wEBAP/+//8AAAAA/wD//v8AAQD/AAABAQEA/wD/AAABAP8BAQECAAIBAQD/AAAB//8AAAIAAf8CAgAA/wD9AQADAwECAQL+AP38/fwCAgEAAAIDAgEAAf8CAQIAAgAA//8BAgMFBAIB/QMBAAD/AgAA//z8//z3+Pnj4uXj5OX7+vr//wAAAAAA//8AAAD/AAAAAP8A/wEAAAD/AP8A/wAAAAABAAD/AAAAAQEAAP8A/wAAAP8AAQEAAAD/AP/+/v/+///+//7////+AP7+/v79/f39/f36+fr8+/0EAQEA/wAAAP8A/wEAAP8A/wAAAQD/AAD//v7//v7+//7+/v3///7+//7//v/+AQEC/wD/AAAAAQAAAQEBAQAA/wD/AP8BAAAA/wAAAQAAAAEB////AQEBAAD+//8BAAH/AP8A/wEBAP8C/wD+AP//AAAAAP8A/wD/AAAA/wAAAAEAAP4AAQAAAAAAAAAAAAAAAAABAAABAQEAAQACAQEBAQAAAAABAAD/AAEAAP8AAP8A///+/wD/AAAA/v7+/P39/Pz9AwP9//8DAAAA/wAAAAABAAEAAQAAAP///f79AAICAgABAQAA/wECAP79AAEBAP8AAwMFAgICAQECAgECAAABAAEC//8AAQEBAAEC///+AQICAP//AAABAAAA//8AAgMCAwUB/v38AwUJBAb8Hx4c+v39HBweAgcKAgQC/f37/v8ABwgM+vj49vf53fHy6ert5OTmIyEeFBIP+Pf3Dg8RCg0P/wX+Af8AAQICAAD+Af8A//7/AP8A/f39/v/+BAMEAwME/v7+Av39/gEB/gH+AgICAP8B//8A/wAAAQACAAEA/wECAQABAQEAAAH/AP///wD+AP8A/wAA////AQD///7+AAAAAgEAAAAA////AQEBAAAA//8A///+AP8AAQEBAP/+AQEC////AQD/////AP8A//8A/v/+/v3+AP7+AP8AAQAB/wD//////v7/AQAAAAAAAAEAAAABAQAAAQAB///9/f4AAQEAAAABAAAAAAEA/wAAAQAAAP8AAAH/AQABAAEAAP//AQAA////AAAAAgIB/f7/AQEBAQAB////AwID/////wL+AAD/BAEDAP8B/vz9/QIBAwQGBQkI/vwJ/Pj4/v39AgEAAAD/AAIAAQMBBgIGAP0B7vDy7e/y+/v9////AP8AAAAAAAEBAQD/AP///wABAAAAAQD/AP8A/wAA/wABAQAAAAH/AP8AAAAAAAAAAAABAP8A/wEAAP/+//////////8A/v8A//8A/v///f7+/Pv7+/z8/P39BAAAAAIBAAEA/wAA/wAAAf8A/wEAAf8AAAAAAP/+//3+/v3+/f3+////////AAAB/wD+////////AAAAAf8CAgH+Af//AAD/AAD/AP8BAAD/AAAAAQAA////AQAB/wD/AAAAAQH//gAA/wEAAP8BAAH/AP8AAAAAAQAA/wEAAP8AAAAAAQAA/wABAQAAAgAB/wABAAEAAAABAQEBAAEBAQEBAAEAAAEAAAAA//8A/gD//v7+//79/vv7/P79/v/9/v///wAAAf8BAAEAAQEB///+/gEAAAACAQEAAQAA/v79/v8BAQAA/wEAAQEBAQD/AQABAAAAAQABAwEBAgACAgECAQAAAAIBAgEBAAEBAQECAwD///39/gD/AAABAgMDAgAAAAgEBfz8/AEAAQQEBP/9/BcVE/r+Au/2+/n++/39/PLy9fv57/j29wICAvr6+O3u7ubn6ezt7yAcGCAdGvkU9RP8/A4REv3//gAAAQYGBwICAgEBAf///f3//wH///39+wMDA/3+/QMEBP79/QICAv/+/P79/wABAQEBAf7+AAECAf8AAAMBAAAA/wD/AAAB/wAAAAD/AAAA///+/v8AAQAA/wEAAgAAAP///wEBAAAAAgEAAf4AAAAA//8AAQH///8BAAAA/wAAAAD/AP//AP7+/QD/AAD+/v79/AH/AP7//wD/AP///wABAAICAf//AAEAAP//AP/+/v4A/wIBAv//AAICAgAAAP//AP///gEAAQABAP//AAAB/wH/AAABAAD/AAECA////gD/AAD/AP8AAAEAAQABAQAAAAACAAEBAf7+/gD/AgH//gIBAv8A/wMEA///B//9/vsEBf4AAfz+/fn29gQGBQQHBf8BAQMDAwMEA/37/N3h5ePl5vz9+wAAAAABAP/+//8AAAAAAAAAAQAA/wAB////AAAA/wEAAQAA/wAAAAEAAP8A/wAAAAEBAAAAAP//AAAAAP8AAQAA////AP////7////+//////39/fz9/f3+/P38/QQAAQAAAAABAQEAAAH/AP8B/wD/AP8A//8A///+//3//v7+/v79/v39/v0FAP7//wIAAQACAgIBAgH/AAEC/wH//gH/Av8AAAD/AP8B////AAAAAf8A/wEAAv8B/gH/AQEAAf8A/wD/AAD/AAD//wD+AAH///8A/wAAAAEAAP8AAAAAAQAB/wH///8BAf8B/wABAAEBAQABAAABAQEBAAEAAAABAQAAAAAA/wAAAP////8BAf8AAP/+//3+//8AAQEBAQH/AP8B/wACAQL9AQIBAv7//wACAAECAQH+/gD/AP4A/wEBAgIAAAABAAECAgL//wH/AP8A////AP8BAAABAQEBAAH/Af8BAAL+//0A/gD/AAEBAQH+//79/fwD/gIBAQH/AgEEBAQCAwP9+fkQFRYBAwYEBwwG7PHq8PL//gEBAQL9/f0JCAjy8vIBAAD+/gD4/P3i5urq7O/u7u8mIR339fUY/PkOERMBAgP8/PoCAgIAAAECAwMDAwP6+vgA/wH8/PoBAgP9/Pz+//4GBgX8/P8BAQUBAQIBAgP//v4DAwQCAQD+/vwB/wEDAwMB/wEBAAD/AP////4BAAD/AP8AAAAAAAD//wABAf///gAAAf7/AgIAAAD/AP8BAAH/AAEBAAEA//7/AAH//v///////v4A/wD+/P0A/v/9/v7///4AAAD//wAAAAAAAgIBAQH//wAAAP8AAQADAQIAAAABAQMAAAAA////AP4A/wD+////AQABAAAA/wEAAQABAQAAAQAA//8BAAEAAQAAAAAAAQEBAQEAAAD/AAABAAH+///+/v8A/wABAgQAAf0B/wIA//4FAAAA/v4HCQj9+gv//fv9/Pv9//0EAgYEBwYDBAX/AQPh5eDe4OL19vYA/wAAAAEAAP//AAAAAAAA/////wAAAQAA/wEBAQD/AAD/AP8A/wAAAP8AAAAAAQAB/wD/AAABAAAAAf8A/wAA/wH+/wD////+//7+/v7+//3+/wP+/v/9/P39/Pz8/fwEAAAAAAAAAAEAAQAAAP8AAAH/AAEBAP////////7+/f79/v7+/v/+/v7+/v//AwEAAAAAAAAAAAABAgECAAEBAAEB///+/wAAAgAAAAABAAH/Af8BAAH/Af4A/gAAAP8AAAAAAAEAAAAAAQH/AP//Af///wEAAP8AAAD/AAAA/wD/AAAA/wD/AAH/AP8AAQAAAQABAAEBAQEBAAAAAAEAAAACAP///wD/AAD/AAABAQD+AAAAAAH/AQEB////AAAAAAEBAQABAAEC/gH/AAEAAQAB/wD+//8A/wD/AAEAAf4A/wD///39AQECAwMEAAAAAQEBAgECAAEBAAAAAAAAAP//AAEC//4A/QH+BAMC/wD/AgEAAAAB/v8AAf8A/v/+AP8ABAEC/Pz/AwMDAgQE/v8ACxERFPv8/P8A+/v8/f3+DQ8S/vz/9/T09fT1CQkIAAABAQEA/v8C9vn92N7l9/f4J/j4+vn5GBz5DxATBQYG/QIBAAEBBAUF/v/+BAQF+/r7//7+///////+AAEA/f0BAAAD/QEBAgIC///+AgIC//8C//4AAQAAAQEAAP///wH/AP8AAAAAAP8A////AAEBAP///wH+AgAD//7/AAAAAAD+AAABAP8AAAAA/wAAAgEBAP///wEB//4A////AP//AP8A/f39/fz8//79////AAD//v7+AAABAwEDAAH/AAAAAAD/AP8AAAAA/v7+AP8AAAD/AAAB/wD//wAAAgAAAAIBAwEBAP8A/v//AAAAAP8AAAABAAD/AAEBAAABAAD/AP8A/wEAAQEA//8AAQEAAAABAwMEAAAA///+/wABAAD/AP7+/wAAAwUGCAwNAwMDAgMC/wICAgQCCxANAQMD/v//7vDy1tnb7ezu/vz+AAAAAAD/////AAH/Af8A/wABAQEAAAD//wD///8AAAD/AP8AAAAAAAAAAAAAAAAAAAEAAP8A/wAAAQABAAAAAAAAAAAA//7//v////7+/v7///4A/f3++/z8/Pz9/fz7BAEAAQEAAAEBAQAAAP8BAQAAAAH/AP8BAf8A///+/v/+/v7+/v/+/////wD/AAAAAAAAAAABAAEBAQECAQABAgEAAgAA/v//AAABAAAAAAD/AQAB////AAEBAAEAAAABAP//AAAAAAAAAAD/AAH/Af///wD//wAA/wAAAP8AAAEAAf8A/gAAAAD/AP8AAf//AQABAQEAAAAAAP8AAAEAAAEBAAABAAEBAQAA/wEBAAABAgEBAf////39/P/+/vz+/P37+/8FBwEAAP4AAQABAgAB/QD//wAAAQAAAAH/AP4A/wAAAQAAAAD/AAAAAAABAwMBAQABAQABAP/+///+/v3//wEB/wQDBAIBAgAAAP8AAAEAAgAAAQMBAP0B/f///v//AP39/gMDBP3+/f/+/wMDAv8ABBASEfz9/f38//f5+wkKC/f2+PLx8gICAvf2+AcHBwQGBQABAP7+/wMKDO/3/eHl6f37+vb09BobHBATFAQFBQEFA/7+CAQEBgMCAf///f3+AP7+/gIEBAICAv39AQAA/gECAf7+/wID/wEBAP38+wAEBAMCAwEAAQAAAAEA////AAABAP///gAAAf7+/gEAAAAAAf8A/////wECAQAAAQD///8AAAAAAAEB/////v8AAQD//gD///7+/wD//wD//wD//gAA/wAAAAEB///+/wD//gIBAgECAAD//v7+AP7//wEBAQAAAAAA//7+/////gEAAQECAQABAP8AAQEAAP8AAAABAQEB/wAAAQAAAAEBAAABAf//AAEAAAACAf8AAP/+////AQABAP//AQECAQEAAP/+/wEBAP0AAAH//wACAAEBBQcDAwAIB/0JCgYKCwwTFAMEAwEEAvn49/X29eTm6Onr7fv8/P8A/wAAAAAAAAAAAAH/AAABAQAA////AAD/AAAAAQAB////AQAB/wD//wAAAAAB/wD/////AQAAAAAAAP8AAAAAAP8AAAD/AP8A///+/////v///////v/9/v37/P78+/38/AQBAQEBAQEA/wAAAQAB/wEAAAH/AQABAQAAAAH////+/v7+//7//v7//wAAAAAAAP8AAAABAAAAAQEBAAIBAAL+AAD/AQAAAAAAAAAAAAEAAP8BAAEBAf/+AAEA//8AAAEBAQD//wEAAP//AAD/AP//Af8A/v///wD//wAA//////8A/wEAAf8AAQAB/wABAQAA////AAEBAAABAQAAAQAAAAAB//8BAAABAQH/AAL//////v7+/v7+/f38/Pz8+/z9Bf7+/f78/f0BAgIAAAAAAAEAAQEAAP/+/gABAP8BAAD///8AAQD///7+/v4BAQABAwMA/v8AAQABAAEBAQH/AQABAgH+/v4AAgEDAQQDAgP/AAEA/wABAwMCAP/+/gAA//8AAAIBAQEA/wABAwH+/f0FAwMGCwsYBQUGCAsFBQcDBAQFBQUEBgbz7Q349/X9/PwAAQAEBwYICAkGCAgICAX5//vp7e/59vT++fgCAP8ICwwEBwX+/f7+B/0CAgICAgH///39/f3/AQAA/wP+AQABAQP9+/oDAgT9/wICAQABAQAB/gICAgL/AP4B/wL+//8B/////wD+/v4BAQEA////AAEDAQH//wD/AP7//gEBAgEB/wAAAQD//wAA////AAAAAP8AAP/+//8AAAAAAP8AAP////////8A//7//fz8+/wAAQH/Av/+/wACAgIAAQECAQEBAgL//////wIBAf4BAQL///8AAAAA/wD/AP//AAABAAABAQD/AAEA//4AAQEA/wEBAAAAAAD+//8BAAEBAQEBAQD/AAABAAH/AAAA/wEBAQEAAv/+/wACAP8AAQACAQYCAP//AP8A//8DBPwBAwMECQgDAv/+///9AP8A9/gICQsICQj+/v7///8AAAD/AAEAAP//AQEBAP8BAQH///8BAQH///8BAAAAAQD//wAAAQEA//8A/wEAAAEAAP8B/wD/AAAAAQABAAAA/////////v///////v///v/+/v/+//7+/f38/fz8/f0EAAEAAAEAAAEBAQAB/wH/AQD//wABAAAAAAD//wD+///+//7//v///wD///8AAAAAAQEAAAD/AQABAAEBAAEB/wEB//8A/wAA//8BAQAAAAAA/wAAAAABAQD/AAAB/wD/AAAAAAAAAQABAQABAAAAAP8A/wAAAAH/Af///wAAAAAA/wAAAP8A//8AAAEAAAAAAAABAQAAAAEAAAAAAAABAQAAAAEAAQEBAAD/////AAEA//8AAP8B/v///v7+AAAA/gAA/P/9A///Af//AAD/AAEAAgAC//7+AAEAAQAB/wAAAAAAAAD/AAEBAAD//////f39AQEAAwEDAQIBAQEA//8AAQAAAQIB/////v7/AgIAAAAA/////////v//AAAA//8AAQH/////AgICAP///gAAAP//AwUECQMJFRUHAwMD/gEA/QAAAgMEDgwN+fj3/v3+/f78AgICAwUDAgEC/wAAAgH8+/z39ff68vLx7OroEhQVBvsJ/wABAQIBBAQF/wABAf4A/v//A//+/Pz9AAAEAP/9/wMDAQQAAAAC/PwAAAAAAgEC/gECAf8C/wP/Af7+/f//////AP///wECAAAAAQH//gD/AP//AQAB/wAA//79/wIDAAAB////AAD+AAAC/////wAAAP/+AAEB//7/Af/+/v/+/v78APz9+/r5///+AQMDAv8CAQAAAAICAQABAAAA//7/AAD/AQIAAf8CAAAA/wD/AP8A///+AP8AAAAA/wAA////AQEBAAAB//8AAAD//wD9AQICAwEC/gAA/wEBAQEBAQAA//8AAQAB/wAA/wH/////AAEAAP8BAQEBAAEB/wIBAgD/////AP8EBAECA/8D/v79A//9BwYHBQYHCwwOCQkJAwQDAfsB/v//AAD/AAEAAP///wABAP//AQAAAAAAAAAA/wAAAAAAAP8BAAD/AAABAAD/AP8AAQAB/wD+AAABAP8AAAABAAEB/wAA/wD///4A/v///v/+//7//v7//Pz8/fz9/f38BAEBAQIBAgIA/QAAAAD/AP8BAAD/AAD//wD//wD/AP7//v7+/QD//////wAA/wD/AP8AAAAAAgEBAQEBAgEBAQAAAf//AP8AAP///wECAQH/AP8AAAAB/wD/AAAAAAAAAAD///8AAAD/AP8AAAAAAP8A/wEAAP8AAAAAAQAA/wAAAAAA/wAAAAABAQD/AAABAAEAAAAAAAAAAAEAAQAAAAABAAAAAP//////AAAAAAEA/wAAAAAA/wD/AAAAAAEBAQIDAwMFBAEDAQABAAD+AAECAwD//gEBAf////8A/gD+/wEAAQIDAwAAAQD/AQABAQICAv////7//gL+AQEDAv8A///9/QMEAQEBAgEBAAEBAf//AAD/AP///wIBAv3+/QECAf////z9/QMA/wQDBAQFBQH9/gD/AP8AAAQEAxMSEQUFBQUEBOLn6eru8PcIBwD//vz8/P8A///+/gICAQECAwMBAAD9B/z48vT3+fLv7QcHBgABAAIDBAIDBAEBAQMBBP7///7///sA+wD//////v79AgUFBf//AAQFBQAAAQUFBP7+/gD+/AEBBAD+AP8AAf8A/wAAAP///wD//QICA//////8/AECAwAA//8BAf//AAH//wEA/////wAAAAAB//7//gD+AAAB/////wD//wAA/wD/AP/+//38/Pz+/QIAAQD/Af8AAf8AAAAAAP8BAAH/AP8A/wICAQAAAQACAP/+/wIBAQAA//4BAgD//gAAAf7/AAECAP8AAAICAgEBAQAAAQABAP8AAf8AAP///wEBAQEAAf///wEAAf8BAAD/AAD/AAEBAQEAAgAB/////wEBAQEAAQABAAEB////AQEAAAD+AgIB//8BAAICBAECAwMFBQsMDQD/AAD//wAAAAAAAAAAAAABAQD+AAAAAAABAAD/AAAAAAAAAAD/AAAB/wD/AAAAAP8AAQAA/wAAAAAAAQAAAAAAAP8A/wH/AAD/AAD/AP///v///////v///v7//vz9/fz8/P37/AQBAQEBAgEBAgEBAQEBAQD/AQEAAAD/AAD////+/v/+/f7+/gD+/////gD//v//AwEB/wABAAIBAQMCAQIBAQIBAQIB/wEA/wEAAQD/AAAAAQAAAAAA/gEAAP8AAAAAAAD/AQAA/wD/AAAAAf8AAAABAAH/Af8B/wD/Af8BAAAA/wAAAAEAAP8BAAAAAAABAAEAAQAAAAAAAAH/Af8AAAAAAAEAAQAAAAABAQAB/wAAAAEBAQABAQEBAAEBAQEBAQEBAQEBAAAAAAAAAAABAgEBAQIA/wEAAP/+/f3+/v8BAQEBAAEAAAEBAQIAAQAAAAEA/wABAAEBAP/+/v3+//4BAQEDAgMBAAIBAQIAAAEAAP8BAQEBAgEA/gL9/vwAAQEA//8AAQAA///8/P0B/wADAwMEBgb+/vz//v8AAQAFBgYREA4JBwcSDg7f5Ofm7O33+/v9/Pz9/fwA/wAAAQEEBAQBAgH9/Af9AAD59u/29PT28fEDBAX/AAMAAwMCAgH/AP8BAQIAAP///QH/Af///f/9/P8BAgED//8EAwP/Af3+/v4AAQEB/QD9AAD+/QEDAwP/AP8AAAABAAEBAgH+/v3+/v8DAwQA//4AAAH/AP///////gEBAf8AAAH//wAAAf4A/v7//wD//v8AAP8BAAH+/v/+/f3+/v37/v39/P3/AgMEAwEDAwMCAwIBAAD//v8BAgL/AQH+//8AAP8AAAH/AAACAAEAAQAAAAEAAAD/AAACAQIAAQAAAAD/AAAA/wAAAf8A/v8AAQICAQL/AQH//wAAAQABAAH//wABAQEAAf8BAAH/AQEBAf8AAQMAAP8AAAABAQEAAP4A/wEAAQEAAAEAAAD/AAABAQEAAAABAgP/AAD7+/v+/v7/AAAAAAABAAD/AAAA/wAAAP8BAQEA/v//AP8AAAAAAAD/AAAAAAAAAQAA//8A/wAAAf8A/wEAAgAA/gAAAQAA/wD/AAAA////AAD+//////7//v/+//7+/f79/fz7+/v7/PsEAQEBAQABAQIBAgMB//8AAAAAAAEBAAABAAAA/v/+/f7//f79/f3+/v/+/wAAAAABAAEBAAH9AQEBAQMDAQIDAAABAAABAP/+AAACAAD/AAAAAAAAAAEAAf8B/wH/AAAAAQAAAP//AAD+AQABAQAAAQAB/wAAAAABAAD/AQABAAEAAAD//wABAP//AAABAAAAAAAAAQABAAAAAQABAQAAAQAAAf8BAQH/AQABAQAAAAEAAAAAAQAAAgICAgMDAQECAgICAAABAP8AAQMBAwECAAAA//0B/wEAAgMDAAD/AP/+//7/AP8AAgIBAQABAAEC////////AQAC///9AwMDAQAC/wAAAAEAAAD+//8B/v7+AQECAQACAgMBBAUJ/Pv7+fj4/Pz7AQIBAgEBAQD/AAAA/P38AP7/BAUEAQIC////AgICCQoJGQYHDg4PGOzt5+vr7/Ly9vf2/gABAQED/gD///79AQAEAggK+/j09vb0+fT0BAgH/wABBQYGAAkIAP7+/wH/AgIC/wD/AgEB/v79AAAB/v39AAAA+/z8BAEB/v79AAAAAQEB/fv7BAMDAAEAAP7//v/9AgECAAEAAAACAQIC/v/+AQACAQD//wABAAABAQD//v3/AP8AAQEBAAEB/v7/AAEA/f3+AwIB/wAA////AAEA/v7///7+AAEBAwQEAgMDAAD////+AAAC/wAA/f7+AAIBAQEBAAAA/wABAgIB/v//AAABAQEAAAEDAQAAAQABAAAAAAAAAQABAQEA/wAA/wAAAQABAAAAAAABAAAAAP8AAAAAAQH//wABAgEC/wAAAgAB/wAAAQABAQEAAP8A/wAA//8BAAD/AAAB/wAA//8B/wH//v///v7//P399/b49/f3//7+AQAA/wAAAAAAAP8AAP//AAEB////AAAA/wAAAAEAAQABAQD//v8AAAEAAP8BAAH/AP8BAAEAAP8AAAH/AP8BAAEAAAAA/wD//////////v7//v///v7//v/+/Pz8/f38+/z7BAIDBQED/gH/BAL9//4C/f//AQEAAP//Af///wD/AP/+/v7+//79/f//////AAEBAP8AAQEAAgEBAv8BAQAAAQEAAf8AAf8A/wAA/wEAAgAAAAEBAP7///8AAAD/AAEAAP8AAQAAAQAAAQD//wAAAAAA/wAAAf///gD/AQAA/wAAAQAA/wAAAAEBAAAAAAEBAQEBAQEBAAIBAQEAAQACAQEBAQEBAAEBAQAA/wAAAQD/AAMCAgQFBQQEBAQDAwUFBQQDBAMEBAMDAwAAAAAAAAD//wECAgH///8B/wIDBP/+/QAA/wAAAP//AAECAgAAAAEAAgQEAgABAQL/A/7+/gECAQEBAf3+/AD+AQMDAAICBAEAAQECAQIBAgABAQMEBAkKCfv6A//+/v7//vz8/AD//wMCA/////38/QIDAAIBAv8BAQIAAQYCBAYEAwgDABQMCfX5+O3v8Ovu8PL4+vn7/Pv+/gH//////v4BAvn8APr7+xIEBQkIBwYEA/n4+AcBAQQFBQEBAgABAP8AAAIDBgICAf7+/gD/AP8D/P39APz8AQEBA/7+/QIDA/0A/wD//vz8/AMCAv0B/QICA/8B/wD9/gMAAP8BAP///wABAQMCA/3+/////wD/AAEBAQAAAQD/AP7/AAH///7+AAAA/wD//v/9//////7+/wIEBAIFBAECAQABAf8AAAEAAAABAQD/AQD/AQACAQECAgIAAAEBAQIBAP/+/gAAAQABAP/+///+/wAAAAEBAf8AAQABAAD//wABAf////8A/wAAAQEBAQABAAAAAQAAAQAAAAAA/wABAQEBAAAAAQEBAAAAAQAB/////wD///8B/v79/v/+/P7+/AAA/wAAAP3///v6/PPz8+3s7fz9/f7//wD///7/AAAAAQEAAP//AAD/AAAAAAD/AAAAAAABAP8AAAEAAAD/Af8A/wEAAf8B/wEAAAAAAf8AAAAA/wD/AQABAP8AAAD//wAA////AP////8A/////vz9/P38/f78/QQICxIBA/YE/vzz/PL9/f4BAAAA/wABAQAAAQEAAQD///////8AAP8AAAAAAf8AAQECAQL8AQH/AAEBAAEAAQIAAQEA//7/AAAA/wL/AQABAAD/AAAAAAD/AQAAAQAAAQAAAAACAgD9/QAAAQAAAQEAAQEA//8BAQH///7/AAAAAf8A/wEAAP8AAAIAAP4AAAAAAAEAAQH/AQAAAQEBAAEBAQABAQEAAP8AAQEBAQECBAIFBgYEBAQCAgICAwIBAgACAgECAQAAAQAAAAAAAAD/AQEA//8BAgAB/wAAAAEBAQL+AP3+/////v//Af8BAQIBAgH+//8BAQADAwMDBAQA/wAAAQD+/gD//v8A//8BAQEBAQEAAAD///8A/v/+/v4AAAAGBgb7+/v//P0B///9/PsBBQAHCAkEBAX8+/v8/f4EBAUCAgIA/v77+P0EBQMNDAkKBwUNBQQVDw/z9vjt8PHu8vD19/T6AwD/BgYD/Qb39/rx7e4DBAX/AQIPEhQAAgMAAgMAAgIAAAH+/v4CAv///gD////+AP0B+/wFAQL8+/sAAPwABQYA//4CBAT9/////v3+AP8AAgEB/gH/AQH/AAABAQEBAQEBAQH9/f3+/v8BAAAAAQD//v8A/wD/AAEBAAEAAAD//////wAAAQECAAD9//3+AP0EBQQBAwMBAQIBAgT+AP8CAQP/AQABAgMBAQEAAAAAAQEAAP//AAH///8B/wH/AAIA//8AAAABAgIBAQAAAAD/AQEB///+//8AAAEAAP//AAABAAABAAD/AP8BAAEAAP8AAQIA//8AAAICAAAAAAEBAP////8BAQD///8A/wAAAAAB/gABAAD+/wH//v//AP/////8/f74+fnu7uz29vb/AAABAAD+AAABAAAAAAAAAQEAAP8AAAD//wABAQD//wD///8AAAAAAQAA/gAAAQH/AP4A/wD//wAAAP8BAAD/AAAAAAAAAP8A/wH+/wD//gD//v7//wD////////+/v78/fz8/P0EEhYf8fHu+vj19fX6Av3+Af8A/f3+AgED/wABAAAAAAEBAAD//wABAP8A//8BAAAAAAABAQEBAAEAAQEBAQEB/wABAP8AAAAA/wD/AgAA/wAAAAAAAAEAAf8AAAAA/wABAf8A/gABAAAAAAAAAAAAAAABAQEB//8AAAEBAP//AP8BAAD/AQEB///+/wAAAAAAAf8AAAEAAAAAAQEBAQEBAAEBAAIBAv7/AgIA/v4B/v3++/v7BPz8BAUEBgUFAwMEAgEC/wAAAAAAAQAAAAABAgAA/wIBAP//AQAAAAAA/f//AAAAAQECAAEB/v//AgEAAQAAAQICAQEB/wAAAP7/AQEBAQECAQD/AAIAAAAA//7+AQMCAAABAAD/AQIDBAEB/P38AAABBAQD//8B+/z6AwECAQED/Pz7AQICAAMCAf7/+/z8AgYGAAAABQYF/AIA/gD+AgECCAEGBAMCDQcFFAwJ+foR6+zr8fTy8QUB+QQA/vj27Orq/f7+HCIJ/Pz5AgAHAwQFAAMDAwIA/Pz9AAAA/f78/fz7BAQE/Pz8AwMD/QEAAgEC/v78AQIE/v7+AgL////9/fz+AgMD/gIA/v8AAAIBAQABAAIAAwIEAQIC//39/v///////v7/AP4AAAEAAwIDAQECAP/+/v7+AAIC/wAB///+AwMEAAMBAQECAgIDAgID/wAAAQEBAAAA/wAA//////4AAAH+AQEBAQD/AQIDAQEBAP///v/+//4AAQEBAQIBAAAAAP4A/wEAAQEBAQEBAP///gD/AAAA////AAEBAf8AAAEAAP8AAAAAAAEA/wEAAP//AAD/AAAB/////wAAAAAAAQEB/wABAgEC//4B/gAA//7+/gAA+/z+5+jp1NTV8fHxAP//AAH/Af8AAAD//gAAAf8AAAD//wAAAQEA/wAAAAAAAQAA//8AAP8B/wH/AAAAAP8AAAAAAQEA//8A/wAAAAEB//8AAQAAAAAAAAAA/wD//wAA//////7///8A/v39/Pv8/Pz7BBYbJAkM7u/v6vn9Afb18f37+vz8/P7+/wEBAQECAgEAAQD+AP///wAAAf///////wAA/wAAAAEAAQABAQABAQEAAgEAAAD/AAD/AP//AAABAAD/AAD/AP////8AAP8BAP8B/wD//wAAAP8A/wAAAAABAAD/AAABAAD/AAAAAAAB/wAAAP//AAAAAAAAAAABAf8BAAD/AQAAAAABAAAAAAEBAAEBAAECAgH//wEBAAIDAgMDAQMDA/////z8/Pv7+vsHBwL/BQD/AAACAgEBAQABAAIAAAEBAv///wD//QL/Av4AAAD+/wEBAAICAgIDAgIBAgEBAf8AAP7+/wAA/gD+AQL//v///wAAAP8A//7+/gEB/gIDAgD/AQAA/wECAQYDBv38/AICBAEACAQFBwAA/wMCAwACAgAAAQUFBgYFAfn5+QABAQECAwEDAwQDAwcJCfv5+f36+gYH/fz8/AX7/An7BwwIBvb3EPX0Eu7s6vn39Orl5PPw8PHt7QgODgIAAP///wMBAQAAAQAA/v7+/AD/AAAAAf79/gMDAwECAf79/gAC//79AQQCAvz/+gD/AP/+/gEBAQP9/f4DAgECAwD/Af3/AQMBAf7+/AD/AP8A//z8/gEA/wH/AP39/gECAPz+/QICA/79/vz9+wMEBAECAwD/AAEBAv////7//gEBAv7+/QECAf/+Af8BAQD//wAAAQD///37/P4B/wIBAQICAwEBAQAAAAEAAP8A/wEAAgH9AQICAwACAAD/AAAAAP/+/wABAAEBAf7+/wAAAAH/Af4A/wEAAQEB/wAAAP///wEAAQD/AP8BAQEA//4AAAAA/wEAAf8AAAEBAv///QAAAAAA//8AAPz8/fT199HQ0OLh3/v6+QD+/v//AAD/AP8AAAAAAP8AAAAAAQEA/wAAAAD/AAAAAAD/AAABAAD/AAAAAP//AAAAAAAAAP///wD/AAEBAAD/AP///wABAQD/AAD/////AP////////////7+/v3+/vz8/P39/QQNEBUHCw4KDxMMEBXv7ery8u75+fb++/z9/f0BAgMCAwQBAQIBAAH+AP//AP/+//8BAf8A//8AAQABAAEBAQEAAgH//gIAAf4AAQEBAQAAAAH/AP8AAAABAAEAAQAB/v8A/wEBAAEAAQEB/wH/AAABAP//AAEBAP8AAAH/Af///wAA/wABAAD/AQEA//8AAAACAAH//wABAQEAAAAAAQEAAQEBAAABAQADAwMCAwIAAQL+/v3+/fz8/f0AAQEDAwMDAQMDAgEBAgEBAP///v8AAQEAAQEAAQABAAD//wEAAAEBAAABAgIAAAEAAAEA/wD/AP/8/f39+/sAAQEDAwP//v//AwMBAgH+/f0EBAECAgH//v79//wA/wIAAP8BAgMEBAMFBgb+/v4CAwP/AQD+/f4A//8BAQEDAwMBAAABAwEHCgj++/4CAgEBAAACAwMFAwMGBwj+/f38+/v+/Pz9+/z7+Pn69wQDBQULCwoJBgXp6OUQDg/39fT79fb89/gAEAACBAMDAwL/AQED/wP////9/fn+/v4DBAP////7+foBAgEFBQT8/PkBAP4AAAECAQH7+/sGBQX6/v8EBAUCBAAAAgMBAP0B/QEBAf//AAD+/v8A///+//8BAAEAAQD9/f7///0CAf3////+/v0C/gH//gAA//8CAgP///8AAAH+//8AAQACAQIAAgP//v/+//4CAgMBAQECAgAA/v/+/f//A/8CAQEAAAEAAP8BAQH/AQACAQL9//0A+wECBAIBAAD+//4A/wD//wAA/wABAgD/AP4BAAIAAAD/AAAAAAEBAAABAAD/Af///wAAAAAAAP8BAAABAQD/////AP8AAP//AP7+///8+/v4+vvd3t3W19b59/f//v7/AAEAAQAA//8AAQAA/wAAAP8AAAEAAAAAAAAAAAD/AAAAAQEA//8AAQAA/wABAAD/AAEAAP8AAAEAAf//AAABAAABAQH//wAAAgD/AAAA/wD//wD////+///////+/v/9/vz9/f0EAgQGBwMFBAUIBwkMCgwQEfXy8fHu+ff1+/r6/Pz8AgEDAgMEAQEC//7///7/////AP//AAAAAAABAAAAAQABAAAB//8AAP8A//8AAAAAAAAAAAAAAAEBAAEAAP7/AAAAAAEAAP8AAgEA/gEAAAEAAP8BAQH//v8A/wEAAf8BAAAA/wEAAP//AQAAAQAB/wD/AAEAAAEAAAAAAAAAAQAAAAABAAEBAQAAAf/+/wAC/wH/AgEA/v////38//7//v7//wD+////AP///wAA/wAAAgEBAAEBAQAAAAABAQAAAAAAAAABAAAAAQEBAAAAAP//AAAAAgABAAUEAP8A//7+//8A/v39Af4BAAH//v7++/v7AwMEAwMC//8AAQACAgMCAAEB/wEBAQMD////Af/+AwMDAgEBAAEBAQICAAAAAgICAgIDAQQB/Pz8//7/AgIC/wEBAAMCBAQDAQQEAf4A/v3+AwX4AwUH/f36+fb1DgABAwIBCwYH8Ozq9/j3+/n3AgEBAP7+/v//AgACBAQEAP8AAAD/AP/7AAEBAP8A/v//A/8A///+AQAC+/v7AQEBAwEB/Pr5AgEBAAAA+Pn8BwIJBAMD/v3+/v37AwMD//8AAQIC/v7//////v7+BAMDAQAB/v79+//9AgABAgMC/f3+AP/9AQEC///++/v7AP8BAgH/AQIC//7/AgMF/v3+AAEAAQIDAAECAQICAAAAAQEC/v3+/QEAAAAAAAAAAAEBAP//BQYHAP4CAQICAP7///4AAP//AQIBAAAB/v/9AP0BAQIBAgL///8CAQACAAD/AAIBAAABAAABAQH/AAAAAQAB//8AAP8AAAEB/wD//v7+/v7+/fz89/n67fDx19fX8e7t/f3+/wD/////AAEAAAEAAAAAAQEAAAAB/wAAAP8AAAAAAAEAAP8AAf///wAA/wAAAAAA/wD/AQEBAP8AAAEA//8AAQAA/wAAAAAAAAAAAP//AP8BAAAAAP//////AP///wAA///+/f39/fz6BAABAQEBAgMBAQgDAwYGBw4NERESFvf29fLx8Pb19P7+/gQDAwEDA/7///7//////gEBAv8A/wEBAAABAgABAQABAf8AAf///wEA//8AAgEAAAAAAAH/AAAAAP8AAAAAAf///wAAAP8AAQAAAQEA/wAAAAAAAAIBAf7/AP7//wAAAQAA/gAAAf8A/wEBAAD/AAAAAAAAAQEBAQAAAAAAAQEAAAD/AAEAAAICAwAAAP4AAAEAAQEBAf8AAPr7+gj9/v/+///+/v8CAgABAQEAAQEBAQAAAAAAAAEBAAACAQIAAv//AP///wEBAgEAAP7//wIBAQECAAMAAgAAAP4AAP39/v////7+/gEBAAEBAgMEAgIDAwICAgEBAwIEBQMBAv7//v8A/wIBAwIDAAIBBAAAAP38/QQDAwEDAgEBAQEBAQMEBQMCAgMEBP///wD/AAICAQD/AAABAAIE//79///7/QQHCAIEBP79CAICBPwCA/36/P0O+wUCA+jn5f78/v78/AABAAUFBQECA/39/gID/wYCAvv//wMDAv7//f///gMAAwEAAfz7+v38/AcHBvz/AAH////9/AABAQECAgEBAQEBAQABAPz6+/z9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///+AQEB////AAEBAf///wEA//8A//3+/v//AgIAAQICAQECAQAAAQABAQMBAP38/P38/wAAAwMBAwIDAwMDAP8AAAIB/v78/v79/v38BQcGAgEBAAAAAwQC//78/wABBAQDAgEC/////wD9AQACAwQEAgEBAQEAAAEA/v39Av4BAwMD/wD///7//v///f78/fz8/Pf38+7s+PLx9/Xz9vPx9/bz/wEC+/r6BQgKAgT/AQEBAQEC/P37BgUFAQD////9//////3+/fz9////AP7/AwMCAQEBAP7+/gD/BAQBAQAAAQEB///9BAAD/P7//wAB/wMBAgEBAAEBAAEBAQMBAP4A//7+AQABAP///vz7+vf38ezr2dXU4ubo9Pz//QQKDhQSCPv7CAgJBwcHFRMU7PDx+vz9/v39AwgO8/Lv+fXy/v38+/3/Cg4QAgkKBQkNA/n4+vj3CAsPEhX++/j1EA0NBwMC/fn3+PTz/w4PAQD+AQD+AgEAAwICAQICAAD//v//AgEA/v/9AP8B//8AAQEBAAAB///+AAAA/v//////AAIBAAAA/f397ezt3d3c9fT0//7///8AAP///wAAAAABAAD/AAD//wAAAAAA/wAA/wAAAAAB/wD+//8BAAH/AP8AAAABAAEAAQD//v8AAAAAAAD/AAEAAf///wEA/wD/AP8AAAAA/wAAAAAA//8AAP8A//////8A//7//v7+/v3+/fv9BAH/Af8BAQD//wABAAEAAAD//wEA//8AAAAAAQIAAP8A/wEBAAAAAQECAgABBAIDAgH9AvwAAAH++wIDAQECAgIBAv4AAgEAAgAAAQEBAf8BAgD//gAAAAAA/wAAAQABAQEAAgAB/wAAAP7/AgEBAQAAAAADAgEA/gEBAAAAAQABAAEBAwIDBAABAQD/AP4AAAADBf8AAP8AAgECBf4AAQAAAP79/fz8/P7//wD/Af3//wAAAQQDBAYHCAQEBQAAAP7//v7//wAA////AAEAAQABAAIAAAABAQEBAf7+/wABAQH///7+//3//AEAAP//AQEBAf7+/v/+AQABAQEAAAMDBAECAgMBBQL+/gEDAf///vz9/wICAwEBAQD+AP0B/QIBAv4AAfz7+wECAgEAAQEFAQECAgD/AP7/AP/+/f4A/wIBAAABAgH+AQEDA//+AAIDAQIDAwECAgAAAAMBAv4A/wMFAwD+///+/v79+vfy7vz39vr28v769v78+wIICf3//wECAgQFBP7//v38+wkIB/z8+////gICAP/+/vv7+wMCAP8BAfz//wIDBAD//wIFBQIA/wD/AAEA/wIBAAD///7+/AEAAQIDBf78/P8EAQD/AgEAAAABAgAC/wD9AP7+/Pz4+f76+fbx7+nl4/Hw8Pr6/Q0RFAoRFAsPE+3u8f7+/vb19OHi5AACAwoNDv4FARQYDRIVGf39+gYFAw0NCw0SEwEDBPz//wL7+wMEBwYICwcDABkVJBsZFhELCAcGBAgIBwsPEAcKDAQGBwIDBf8AAAAAAAAAAAIA//7+/wECAAAAAgAAAf///v//AQAA////////AP8A/wD/AQD/Afr7/PPz8/j39gEAAAIBA/8AAAABAP8A////////AQAAAAAAAAAA/wAAAQAAAAEB////AQEB/wAAAP8AAAABAP//AAD/AAD/AAABAAAAAAAAAP4BAAH/AAD/AQAA/wAAAQEAAAD/Af8AAP8AAP///////v//AP////3+//v8/AQAAQAAAAABAQEAAP8AAP//AAD/AQEB//8AAQABAAAAAAAA/wEBAAAAAQECAAL/AQEBAAAAAAAA//7//P37BPkDBQf//QcB//8BAgAAAQEBAQH/AAAAAf8A/wAAAf4A/wH/AQL/AAAAAAABAgAAAAEBAQIA/wL/BAECAAL/AQMAAQMBAQMDAwYDBAUCAwT/AQIBAwQAAQIBAgICAgQAAgEAAAL+/fz8/fz+/f7//wD+/v3//v3+/v0BAP8EBQUDAgMBAgIA///9/f0CAwIDAQMCAAIAAgAA/wD/AP8AAP8BAAD/AQEBAf8C/v//AP8AAAIA/wABAgH/AP8CAQD+/f38/foBAAIBAQEAAQIDAAMEBAQAAQP/AP8AAQIBAAAAAAABAQAA/////v4BAAEAAgD9/f4BAgAA/wAB//8CAQIB/wECAwQAAQD+/v0AAAADAwMA/wAAAQD+/v8CAgD+AAD9//4C/wIEBgT/AAj9BwkFBgX/+f///vn09vP4+fcBAQH///8EBQQCAAIAAgH//wD9/fsAAP78/PoB//4BAAAEAgH49/n6+PUODw8A///+//4A/wABAQABAP7///7///4EAQD9/fsCAgP+/QEAAgP//wIBAAP9/v0CAwD+/v7+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AP////8AAAAAAAD/AAAAAP8A///////+/vz9/QQBAAEAAAEAAP8BAQEBAAAAAAD/AAABAAAAAAECAQD/AAAAAf///wEBAQAA/wACAAEAAQH/AP8CAgMAAAECAgMGBgj//////v3//v7///0A//7+//79/fsA/v39/P3+/vz+/Pv///4AAAECAwQBAwYAAQQBAwQBAQIBAQIAAQEA/wAAAAAAAf//AAABAAAB//8BAAAAAQAA/wAB/wH/AP8AAAEA/wD+Af8AAP8AAgEA/wEB/wEB/gECAQEDAQH+AAEAAQD/AP/+AP////8A////AQABAP8BAAAAAAEAAAAAAAAAAAADAwIBAgT+/v0A/wAB/v//AAAAAP4A/wD9/v7//wAA//8AAQICAv8BAQQCAQD///8B//8CAQEAAP8DAgP//v///v4ABAACAQEBAQEAAP/+/v4CAgP9//4C/wD/AQH+/v4CAgL+/v8CAgEAAP/9/QD//wACAgMDAwMCAgIAAP8AAP8AAAIA//4AAAEGCAoLDxIFCgwHBgTt7esPEhb/AgP+/gACAf4DAwMAAAD///4EAwD9//8DAgQCAgEA//4BAwMA//8AAQADAQICAQIA//8AAwP///4EAwUAAQH//v8DAwH/AgL/AAAAAf//AAAAAAAAAgH//wD6+vjz8e728fADAAIABAcFBwgJCw3/AQIHCg38/PoKDAwCAgMAAQPr7e0CA/7x+/n5+/sH//4MEgkcDRb5+PUFAwIPDw4MDg4CAgIGBQcEAwMCAQH///7///0CAgICAP8CAf8CAQECAgQBAwL/AQH///8BAQEAAQEB/wAAAQEBAf8B/wH/AAD+/v3+/v7///4AAAD/AAAA/wABAP///gD9/v78/v739vfo5+bw7u3///8BAgD//P8AAAD//wAAAf8B//8AAAEAAAAAAQH///8AAAAAAP8AAAAAAAAAAAAA/wAAAAD/AAABAAD//wAAAAAAAAEBAf//AAD/AP8B/wAAAQABAAEA/wAAAP8BAQAA/v8AAgAA/wAA///+///////+//79/f0E/wAAAQEAAAABAf8AAAH/AQABAAD/AAAAAQAAAQAA/wEAAQABAAAAAP8AAAH/AAAAAAD/AAAAAQEBAwIC/wAAAP///////wMCAP8AAAD/AP8A/wD+//////7/////AP7//gD+AP8A/wD//gAAAgAB/v8AAAAA/wABAAD+Af8A/wAAAAD/AAABAAAAAP//AAECAAD+//8AAQEA////AQEB//8AAAH+AgAA/wEA/wAB/v8AAQECAQECAgMD/wD/Af4CAAEBAQEB/v3+/AH9AQICBAECAAAAAAEBAP8A/wD/AP7//wAAAQD/////AgMC//8C/wD//v//////AAD/Af8BAgH/AAEA/wD+//8A//39/f7+AQMDAgEC//8BAAAA//77/wECAwQD/v7+/wAAAgIDAQAA/f39AQEBAgEBAQEAAgEC/wAA////AAAA//8BAQEAAQD/AAAAAP//AP//AP//AQICAQEB///+/fz9AQAABAYIDBEV+vz5BQMECA4S+fn5+/r5AgEA/f7/AgD//f79//36+v7+/v/+AQYAAQADAP//AAD/AgIBAgIBAQEBAQEB////Af4CAgAD/wAAAAABAgMCAQACAQEC/wEBAAECAAMCAQEA///+/v3++ff19vLw/Pf4AQMF/QL5BwgLBwgJAgUGAAEB8/Px/P7/BQMCAwQECAoJCQgGDgwJ9fb1/Pz8CwoL+/379PTyBAMEDxARAAECAgIDAQIB+vn8/v38AgECAQEBBQUEAQEA/f7/Af79AQH+AAECAAABAgMCAQIBAAAB//////////7+/v/+/v7+/v3+/v/+////AAAAAAEA//8BAQD///8A////Af///fz88/Ly+vj4/Pr6/vz+/wD/AAEAAP8AAP4AAAAAAAD/AQAAAAAAAAAA/wAAAAAA/wAAAAAAAAAAAAEBAAD/Af8AAP8AAAAAAAAAAAD//wAAAAAAAQAA/wAAAAD/AP8AAAAAAAAA//8A/wEA/////v///v/+//8A/////v7//Pz8BAEAAAEAAP8AAAEBAP8AAf8A/wAAAQAAAAAAAP8AAAEAAQH/AAABAAAA//8AAQAAAAAAAQEBAAD/AP8BAQEA/wABAQD//wH/AP8B/wD/AAABAAAAAgH/AAACAAAAAP///gIAAQD///////8A/wD/AAL////+/wAB////AQAAAP8A/wH/AAAA//8AAAAA/wD/////AgAA/////gAB/////wAAAAAAAAACAQH/AgAB/wIAAgABA///A///AwH//gD//f7///3+/gMCAP/9Af8C/v8C/wECAgEAAP8CAAH+AQABAAAAAAD/AAD/AQD/AgEBA/8CAAD9/AAA/////v7/AAAA/wEBAQICAgAA/wABAP4A/wL+/f0B/wIBBP///gECAgICAAD////+/QEBAf7+/QMBAwAD/v7+/QABAQD/AAQDAgEAAP7+/gEBAQEBAQEBAgECAgQDAwAAAAABAP3+/gQCAQAAAf7+/f///gAA/wECAQIFBgcDAv///wL+/QcHB//+/Pf19//+/fj2+wD//f79/AQEAgEAAf36+QAEBAUDAwEBAf7+/AEBBAEBAQMDA/8AAAEBAAH/AP3+/gAAAAD/APz8/QQCAwEBAAEBAf8AAAD//v79/fv39/bw7/fw8AH8/wEF/wcICwYIBwUHBwIFBgIEBAACAfr7+wMEBAgJCAUIBv36+fz9/Aj+/P8ACAMBAgUHBQsKC/7//wQGBwICAwD/AP4A/woFBwEAAAICAwICAQAAAQIEAgEDAwEBAv8AAQEBAQECAgEBAAAAAgABAP///wD/AP7/AP7+/v39/v////7//wD//wAAAAD/AAEAAAABAQAA/wAA//v8/Orr7N/e3vb29QECAAECAAD+AAAAAQABAAAAAAABAQD/AP8A/gD/AAAAAAD///8AAAD//wABAf8A/wAAAf//AAAAAAEAAAAAAAAAAAAAAAD//wAAAP//AAAAAAAAAQAB/wD/AAAAAAAAAP8A//8AAAAAAP//AAD//wAAAP///v39/QQAAAH/AAABAAH/AP8AAAABAAAAAAABAAD/AAABAQEAAAAAAAABAAAAAAABAQD/AAAAAAEAAP8AAP8A/wAAAAL/AP8BAAAAAf8AAAEAAAD/AP8C/wH/AQAAAAAAAAEBAgL///8A//8AAP///wAAAAD/////Av7///8AAAABAQH///8AAP/+//4B/wD///////4AAP8BAAD/AAAAAAABAAH+//4AAAECAQH/AQAB/wD/AwL//f4DAgQAA/4B///8/v4A/fz+//4B/wICAQL+//7+/v4AAAEBAQEBAAD/AP8CAQEAAAD+//4BAAEBAQICAgMA/v7+AQAB/wD///8A///9/vz///8DAgMDAgT8Af4BAQL/AQMBAQD/AfwCAQMAAAD////9/f3//v8B/v4CAQH/AgMD/wQBBQEAAAIA/wD8//sBAQEDAwQBAQEAAP7/AAH//f38AAEEBAQA/wABAQH//wD+/v3+/f4AAAACAwQEAP/7/fz9/f0BAgH+/v38/Pv9+/v9+/kA/v3///4DAgAB//7++v4CAwQBAAD9+vwBBQYFAwQAAAEBAQIBAgIAAQECAP8BAwT//v4BAP/+/f3+///9/f8BAwMEAgT/AP8CAAD+AAD+/fv59fTz6+ry6+oODA8GCwwMDw8GCgwBBQUAAwL/AAAKDg4I/f0A//8BAgIB//4EBAID+/sICQn/AAAAAAH//v78/f0CAgICAwT/AP/5+fkGBgcBAgIA////AAABAgEBAQEBAwMBAQIAAgEDAQMBAQAAAQEBAAH/AAD///8AAAAAAAABAAEBAQIBAf/+//4A/////v//AP8AAAAAAQEB/wEAAP/+/v/29Pbg4ODw7+4BAP8AAAEEBAUCAgL+/f3+//7//v7////+//0A/gH+AP//AAAAAQAA//8AAQEA//8BAAAA/wAAAAD/AAD/AP8AAQEA////AAAAAQAA/wAAAQEA//8AAAAA/wEAAP8AAAD/AP8CAAEBAAAA/wABAAD/AP//AP7//gD+/f0EAQEAAQEA/wAAAf8AAAD/AAABAAAAAAEBAQEBAAD/Af8AAAEAAAAA/wECAAD/AQAAAAAA//8AAAECAQH/AP8AAQAB/wEAAP8A//8AAAD/AAABAAEAAQABAAAAAAAAAQAA/gEAAAEAAP4AAAEAAAAAAQAA/wEC/wABAQD///8BAgH/////AQAB/gD+/wD/AAEAAAAA////AQEAAAAA/wAAAAD/AQABAAAAAQAB/wEAAf7//wECAgIAAQAG/gAA/f78/QD+AP3///8DAQL8A/8D///+AAACAQEBAAAAAQAB/wAAAQABAQEBAAD/AgAB/f4B//8AAAECAAIAAP7////+AQABAAD+/f38////AQIEAgIAAgEBAQACAQABAQEBAQAAAP7/AQEAAQIBAgEB//7+/f7//////wD+AwQEAgIFAgICAQIC///+/f7/AgECAAECAAEAAv///f3+AAD/AwID/wH//////f7/////Af7//vv8/f39/P7+A///AAD/+/r5+fn2/vv4//38BAMC/v7//v38AAD/BAYAAwID//7+/gH7/QABBAYGAgMCAAABAAAAAAECAgEB/wICAP0BAQEC/vr5AgEAAP4AAAABAQAAAP/+AQABAf7++/n4+ff0BAIACwwJCAoKBwkMBAgIAwYFBAQG/wD/BQUG/wX/////AgIC//7+/v/+BgcI+/v5AQEC/v8BAQH/BP7/+vn6/v7+BAYFCwUGAAEA/v//AAAA//7/AQEBAwMDAAIAAAAA/wAAAQH/AQECAQEB//8AAAD/AP////8AAAD/AAAA//7+/v3+/v79/v/+//4AAAAAAAEAAv///wAC/wAA+fj44eHh19XV7Ovq+vn5//7+///+//7+//8AAAD//wD////+AAAAAAAAAAD/AQAAAAABAAAAAAD//wEAAP8B/wEAAAAAAf8AAAEB/wAAAAAAAAAAAQAB/wD/Af8A/wEAAP8BAAH/AP8BAAD/AQAA/wAA//8A/wH//gD/AP8A//4A/v/9/f79BAEAAAD/AQEA/wAAAAAAAQABAf///wAA////AAEAAP8AAQEAAAABAAEAAP//AQAA/wECAAD+AgAA/gAAAf8A/wAAAAEAAf8AAQEA/wABAAH/AAAAAAAAAAAAAP8AAQAAAAEAAAD/AP8CAAH/AP8A/wAAAQEBAgL///8AAQEB////AQEBAAD/AQH/AQL+Av8B//7///8AAP7//wD/AAEAAAIBAv7/AP///gAAAAD////+/gAA/////v8AAAABAQQEBP7+Bf79/gAA/v7+/f39/QICAwIC/wD/AAABAQAB/wAAAQABAAIAAgABAP3+/AAB/wIDAwIAAv/+//4A/AIAAfz/+//+AP////z8/AMEAQAA/////wIB/wICAP/+/gEBAQAB/wAAAAL9/AIDBAMDA////gD/AQD/A/7+/wD//gAAAAD+/gICAgICAwEBAgEAAQEAAv8AAAD//wMDAwECAQAAAf///gAA//7+/f38+/3+/QMEBf/9/f39+/n49/78+/v59/j08gMB//4DAgQCAv7+/wUGBQD///4A/wQGBgQEBwECAgABAv7/AAEBAP8AAQIAAgEBAQEA/wEEAgH+/fz8/P/9/QEBAP///QL/AgAAAAEA/gEA/v78+gEA/AkMBwIFAwcMCgMKCAIGBwMGBQAAAQIDA/4A/wMCAgECAgEBAAICBvz+/AEA/wEDAv8AAP7+/v38/QED/wcJCP7+/v7/AP8BAAQEAwH/AAEBAP8AAP78/f3+/P/+AQECAQEAAv8BAQEBAP///v////7/AP//////AP///v///v3+/v7//f7//wD//wAAAAAAAAD/AP7/AP8A/fz8/Obn6NHS0eTj4fv6+QD//v7+/v/+/v8A/wD/AAAA/wAAAAAAAf8A/wD//wABAP//AAEBAAAAAP//AQAA/wAAAAAA/wD/AQAA/wAAAAEAAP8AAAEAAP8AAP8AAAAAAAD/AQAAAAD/AAAAAP//AAEA/wD//wD////+/gD/Av////8A/wD/AP7+/wQAAAAA//8BAQAAAAAAAAEAAAABAAEAAAEBAQD/Af8BAAAA/wAAAQABAAEAAP4AAAEA//8BAAAAAQIA//8AAQIA//8AAAAAAQABAAD/AAAAAAEAAQAA/wD/AP4AAP8AAAECAAH/AQEBAP///wACAP8AAAAA/wD/AQEA//8A/wAAAf8AAAAAAAEDAQL/AP7+AQL/AP8B/wEB/wH/Af///wD/AAEB//7/AP8A/wD/AAD/AAABAAD/AP8AAP8AAAEBAgQEBP78//v+/v3+//39/fwBAQEBAQEBAQEBAAEBAQEBAQD//wAAAP///v3+/f0BAQIBAQL///3/AP4BAgP///8CAgL+/QH///4AAAD9/Pz/AgMCAv4AAgD9/f4CAgIAAAECAwEA///4+/sCAgMFBgYEBAX/AQD//QAEAgL/AP4BAQMCAQH/AQIA/wAAAf8AAAABAgEBAAEAAAEBAQAAAP///v4BAAEAAAAA///+/f7+/v4BAAD5+fj7+vj9+/n8+vf69vT9+vkBAwEBAAT7/v0BAAD9/QL+/wEBBAb/AAL9/wADAQIAAgMBAQH//wD9/f7+Av8DAgIBAQEAAAACAwQDAwT+/v/+AP8A/f0AAQMCAwD//wEA/v8HCAYNDwwEAAgOEhMJEBIIDg0ECAcAAAEDBQUDAwIAAQEBAAAAAAADAwMAAAEFAwX///8DBAX9/v3///8CA/z+/v////8B//8D/wD9/f339vcCAwMCAgICAwIEBQT////+/////v8AAP7///3//wP+//8A/gD/AP/9/v3+/v//AP////79/v7//wAAAAH/AAD///4AAQEB/wH/AAD8/P3r7O3W1tff3t7y8fD9+/v///4A//4AAP8BAAH/Af8AAAEA/wAAAAAAAP//AAAB/wEBAP///wAAAAEAAP8AAAH/Af8B/wH/Af8A/wD/AAABAAAAAAAAAAAA/wABAAD/AAAAAAAAAAAAAQD///8AAAAAAAEBAAEAAP8AAAH///8AAAAAAAAAAP////4EAAAAAQEBAAEAAP8AAQEAAAAA/wEBAAEAAAEAAQABAP8AAQEBAP//AAIAAAABAf8AAAAC/wL/AQAA/wABAf8AAAEB/wEAAf8A/wAAAQEBAf8B/wAAAAH/AP4CAQH/AAABAAEAAf8AAAABAQEAAAD/AAAAAP4AAAD/AAAAAAEAAP8AAAABAAD/AAD/AQIAAP8AAP8AAQAAAAEA//3//gD+AQAAAAICAAAAAP//AwEB/QABAQEAAgIC/v79/wICAf4CAP//AP//+/v+AP/9AP/+///+///+/v/+Av8BAQIDAAEAAQEA////AAAAAQICAf8BAAD///8AAQEAAP8AAQEBAQECAQMDAwAA/f7+///+/f3//v4CBAQBAQEBAAABAAEB/v7/AQEABAQDAwQEAwIBAP//AP/+/wAA//7/AAQB/v7+AAIDAgICAQEBAQEC/wD////+AAACAwIA//7//wIBAQD/AAAA/v3+/f39///+AgIC/Pr69/f4AgH+AgIB//79AAD/CQkI/v7+AwIBAP7+/wEAAQEBBAUGAwQHAAIFAQEE/v8BAP3/AQQCAAH//wAAAQEB/f7+AgMDAgIC////AwUE/wAA/wAB//8AAP/+//4BAP8AAAD/CAoKFBkdAQH+Cg4UBQkPBAgHBAYF/f0AAAEAAQICAQIBAgECAAEAAgECAQEA/wAAAAAA////AAIC/v79AQIC//4A/f//A/7+/v7+AQIC/wD//f3+/gD9//3//v7+AgEBAgIDAAEA/v8AAQAB//////7+//7//v///f79////AAAA/gD+Af/+AAEAAQAAAQAB/gAB/wAA/wAB/Pz77/Dx4eHi3d3d7Orp/vz7AP//AP//AAAAAAACAAD/AP8BAAD//wD/AP//AQAAAAEAAP8AAAABAAD/AP8AAAAAAAAAAQABAAH/AP8BAAH/Af8A/wD/AAAB////AAEAAP8AAQEA//8AAAAA//8AAAAAAAEAAAD//wD//wAB/wAAAAAA////AP///v8A/v/+BAEAAQABAAH/AP8BAQAAAAEAAAABAAEAAf4AAAEA/wABAAAAAAABAQD/AAIAAf8BAAAAAAEAAQABAAIAAP8AAP8AAAIAAP8BAAABAAH/AQACAAIBAf7+/gADAAD/AQAAAAEAAAABAAAAAAABAAD/AP8BAAABAAH/AP//Af///wAA/////wEBAf8A/wAAAAEBAQH/AAEAAAMAAf3//QL+Af8AAP///wIAAQACAQEBAAMBAwAAAP79AAEB/wAAAP8B/gECAgECAQMCAv39/f79/AEBAf0BAf///wMDBAACAQMAAv//AP//AP8AAQEBAAEBAf///gAAAf//AAAAAQECAgMBAP///v7/AP//AP7//AAAAAD//f79AAECAgICAgMCBAABAAEAAgABAAD///8AAAEBAP//AP/+/v0B/AD9AQAABP8BAgD+/QACAgD+Af7//gQDAQIC//7//gIAAf37+wQDAwABAf7///39/v7//wIB/wACAQsNDPbz8fz5+Pr5+QAA//7//wICAgEA//8A///+AAD/AAQFBwUGCAABBAIDBAEBAAMDAf7+/gEB/wABAP///wMBAgD///7+/QD///8AAAQEBfz+/v79/v/+/wEB//8A/wEBAQQGCQYWCwYGBwAFBQECBQIDAwIDAgMDBP8AAP8A/wMBAwEBAQAAAAABAQAAAAEAAP8A/wECAgL///8A///9/gEDAQP+AP8CAgH+/gL+/gMEA/7//wD/AAEA//3+//7+/QEAAv///AD/APz+/AD/Af///wAAAP8A/v8A/////v////7//wABAAD//wEAAf7/AP8A////Af/+/Pr5+vDw8ODg4Ojm4/r49v7+/f8A/wAAAAAAAAABAAAAAAEA////AAEAAf8BAAD//wD/AAAAAAAB/wD/AAAB/wAAAAD/AAAAAAAAAAAA/wAAAQAA/wD/AQAAAAEBAP//AAD/AAAAAAABAP///wEAAP8AAAAAAP8AAAEA/wAA/wAAAP8AAP///////////v/+/gQAAQAAAAH/Af8AAAABAAD/AQABAAABAAAC/wAAAQEAAAAAAQH/AP8A/wAAAAABAAAAAAH/AP8BAAEAAQABAQABAAEAAP8A/wABAAEBAQD/AAAAAAABAQEBAAEAAP8AAAD/AQABAAAA/wAAAP//AQEBAP8AAQAAAAD/AQAB/gEAAQAA/wD/AP8B/wH/AAIB//8CAQACAgL+Af4BAQL+//3//v8AAAAAAAABAAAAAAD//wABAf/9AQH+/QH///8BAgECAQEAAf8CAQEB/AD9/f4AAAD+/v4CAv8AAP8A/wD+/v8BAAABAAABAgEAAAEA/wD//wEAAQECAwP//v4A//7+/gAAAQIBAv8B/wAA/wH//f7+/f/9Av0EBAT9AQEBAQECAgMAAQICAgMCAgICAgL/AAEAAAECAQMCAQMAAAEAAAEBAAD//wABAAIBAQECAQEAAQAAAAD+/v8AA/8AAAABAgL//v4AAQEBAQH////8/Pz+///8/PwAAAD+AP/+/vz9/f0CAQD7+fkA//4HCAoICAgCAwYDBQj/AQMDBAUBAQICAgAAAAAAAf79/fwCAwMAAQH/AP8AAAEB/wAAAAD////+//8CAQEBAwIAAAD//wACAwMBAgQEAwMDBQgEBwcEBAT+//8A/wAA/wABAwEDAQL+//8AAAAAAQEAAAD///8AAgAA/v8BAgH+//8AAAABAAECAwIA/wD/AgD//wD/AwL/AQH+//4DAAAA//8AAQEB/v7+/QH+AP4DAgUD///////+/v7//wD+/f7+/////v3////+AAD/AP4A/gH/AP7/AAAAAAAAAAH////6+/vz9PTn5ujq6en08/P9/PwA/wAA/wAAAAAAAAEA//8AAAD//wEAAP//AP8AAP//AQAA/wD///8BAAABAAD/AAAB/wD/AAAAAAD//wAAAAEBAP/+AQEAAP8AAAD//wAAAf////8AAAEAAAABAAD/Af8AAAEA////AAH/AAD/AAEAAAAA/wD////+///////+/v8EAP8AAAEAAQABAAEBAP//AQAAAAABAQAAAQAA//8AAAAAAAAAAQAA/wAAAAAAAAEAAAAAAv8B/wAAAAAAAAABAAAAAAABAgIB/wD/AP7/AQEB////AQEBAAAAAAEBAAD/AQABAAD/AAEAAP8AAAH///4AAAABAAAAAgAA/wL/Af8B/gAAAQAAAAEB/v7/AAD/AQIBAP//AQACAQH9Af8A/wL/AP8A////AP8AAQIBAAAA//7+AQH+AQEBAAD/AP8D/wL/AwAF/gAABf8AAQH8AQABAgMDAwMDAwMDAQICAgEAAAABAQEAAAAB////AAD/AAIDA/8B/wD+/v/+/wACAQL+Af8A/wD///8AAf///wD//wD/AP///fz9//8A/v7+BAUGAwMAAP4AAAIBAQAAAgEBAAACAQECAAD/AP////8A/fz9AgMB/wMB/wABAwMCAAAAAAAA/wAA/f39AgID/v7+/v7+AQD/AQIC/Pz8///9/v39/f79/v/9/fz7AQH//v39/AH++/r6AQMCBgQFBAkOAwUIAQQFAQIEAAADAAAA/wD///8AAQEBAQIC///+/f38AAICAQABAAAA/wD//wD/AAAA/wAAAAEAAAEBAAABAgIEAgUFBAYIAgUFAQMDBQUH/wD//vz+/gD/AP//AQIBAwEA/wD/AQD/AAEAAAABAAAB/wEAAP8AAgEB/v//AgECAAD//wAA/wEA/////v7+AAIBAf4A/v7+/v/+Af4AAQECAQMCBAAD/v3+/wD+AAAAAQECAQEA//8AAP3+//8AAAECAf/+AAAC/wD/AP8A////AAD/AAAAAAD//f396uvq4eHg5+bk9/b1/v//////AAD///8A/wD/AAAAAAAAAQD//wAAAQABAAAAAAD//wEAAQABAAAA/wD/AP8A/wAAAAAAAP8AAAABAAD+/wABAf//AAAAAP8A/wAAAP8BAAEAAQAA/wD/AAAAAP8AAAD/AAAAAQAAAAABAAD//////wAA//////7+/v7//v7+ACuB1H4EAAEBAQABAAAAAQAAAAEBAAAAAAAA/wAAAQAAAQEB/wAAAQAA//8AAAEAAQAB////AAEA/wEAAAABAAEAAQAAAAABAAD/AAD/AP8AAAIBAf8AAAEBAAD/AAABAAD/AAACAAD//wABAAD/AAABAQD/AAEBAP8A/wEAAAAAAAAAAQAAAQECAAD/AP//AwIB/v8AAP4AAQIA//4BAAH+AP8C/wH+/v//AQEB/v/+//7/AQEB//8AAP//AgID//4B/wP+AP4D/gD+Av/+/QP/AgEB//7/AAAB/wAA/f/+AwAD/v8AAQH//wABAP/+/wD/AP8AAAAA/wAC//8AAQEEAgD8/QECAQH+AgICAwP+/wEEAf7/AAD8/f39/v/8AAAA//7///8A/wT/AwL+///+AQMF/wICAwIG///9AP8E/wD/AQD+AAEC//7+/Pz6AAECBwEHAgICAQICAP8A////AP7+/gEAAQEBAQECAQEA/f3++/v5AwEC/vz8/fz7/v79/Pv6AAD//Pz9/wEBBwgIAgUHAgYJAQIFAAEBAAABAAD/AgID////AQL///8CAwIF/v/+AAAA/wAB//8AAP/+AQEB//8A//////78AQACAwUEAQEBAAEBAQECAwMEAwQGAQIDAQECAwMB/gH//v7+/f7+/v/9AgICAQAA/wD/AgEC////AAAAAQEA//4AAAD/AP//AQEC/v7/////AAAAAAAA/wAA/v/+AAEBAgMCAf4A////AAAAAQAB//7//wD/AAAB/wAAAAH+/v7//wD+/wD/AQIB/wD/AP4A///+//8A/v//AP///wD/AAABAgEC/wAA+fr79fT09/b0//79AP/+AAAA//8AAAD/AQAA/wAAAAAA/wAAAAAAAAAAAAAAAAABAQAA/wD/AAAAAAABAAAAAAD/AAAAAAEAAP//AAABAAAAAAAA/wAAAAH/Af8AAAEAAP8AAAAAAAAAAAAAAQEB//8AAAD/AAAA/wAA//8AAAAAAP/+/wAC//8A/v3+/v79BAEBAAAAAAEAAP8BAQH//wAAAAAAAAAAAP8AAAEAAAEAAAAAAAEAAQEAAAAAAQABAAABAAAAAQEAAP8AAAAAAQAAAAAAAQAAAAEAAAAAAAABAAEAAAAAAf8A/wEAAf//AAEAAQAA/wABAQAA////AQEBAAAA////AAAAAQEAAAAAAAIBAAAAAf8AAf8A/wEAAAACAAAAAQEB/gECAgIAAP7/AAIC/v7+/wIBAf7//wD//wICAQIDBQD/AAAA///////+/v7+BP0DBQMD/P7+/f39/AD//gMDBAECAgMDAwICBAABAP///gH/AP///wAB/v7+//4A/gH/Af8AAf3+///+/wEBAgECAAD+AAADAP4A/QEEAf/+AP7//P///wIBAP79/f3//wEEBQABAP0AAAL+AwEEAv7/AQMDAAIDBQD/AAEA/gACAQAAAAEAAfr7+wICAgUEBAEBAQEBAv3//v/6/gICAf7+/v7+/wYGBv///f79/P79/Pz6+fz6+f7+/gD////+/gUGBQQFCAMFBwECBP7//wH/AwIBAgAAAf/+/wABAAIBAwACBAICAAH9/QICAAAA//7+/f8AAf/+AP//AAEBAQEBBP8AAAAAAAAAAP7+/QUBAQIBAgEAAQIAAQD/////AQABAf8A/wEBAQEAAAAA/wAAAP//AP/+/wIDAv///wIBAf4CAAAAAAEAAQECAQH/Af////8A/wABAQACAQH9Af///wH//wABAQD+//7//wAAAQAAAAAAAP3+/v7//v7///78/Pz+/f/+/v///////////v8AAP/+/wAAAAAAAAH/Af8BAPr7++3t7uDg3+Lh3/n29wAAAAAAAAABAAD/AAAAAQAAAAAB////AAABAQEAAP8A/wD/AAAAAAAAAAAAAP8A/wH/AP8AAAEBAP//AAAAAAEAAf8A/gAAAQAAAAAAAAAAAQAA//8AAAD/AAABAAAAAQABAAD//wAA/wAAAAAAAAAAAAAA/wAAAP//AAD//wAAAAAB//79/wT/AAEBAQAAAAABAP8AAAAAAQEB//8AAAEAAf8AAP8AAAEAAQABAAD/AAAAAAAAAAAAAAEA/wD/AQEBAAAAAAD/AAABAAAAAQEAAf//AAABAAEAAAD///8CAAH/AQEBAP8AAP8AAAEB////AAEAAAAAAf8A/wECAQH/AAAAAAAAAQAAAAABAQH//v//AAD/AAD+/wAAAP7/AgEB/wIAAAAB/wAB/gEAAv///v4CAf7//v///wABAAAA/wAAAQEBAAEAAv8CAAL/AAP+AP8A///+//79/Pr9/foEBAYA/wABBgIDAgQAAQICAgECAQL+/v39/v7//v7+/fz+/gEEAAT+AQD+/f3/AAABAgEA//8CAwH+//wCAwMA/v/+///+//7//wEAAP///AAC/v0BBgD/Av/++v4BAQH7APoCAwQBAwUCAgIDAgQBAgMCAwMGBwf9/P38+voDBAMBAAIBAQEAAQH9/QD///8BAQEAAgL+///9/fz+/v38/P38+/wA/f7//v/9/f8ICAYBAgUCAgUEBAcDBAX+/f0BAAAEBQQBAQD//wAAAQAAAP8AAAL/AP//AAABAQH////9/f3///4DAgP+/wADAwIDAgIBAAIBAgIDBQYCAgP/AQABAQEDBAUBAAH+/v7//v7+/v8AAP//AAEBAQH///8BAQEAAP/9/f4A//7+AQEBAAEAAQH//wAB/f79/v////8AAP/+/v8BAQH/AQEA///9/v4AAAD//wD///////8AAQD/AAACAgIA/v/9/f3+//8A/wAAAAAAAAD//////wD+//8A//8AAQAAAAAAAAD9/P319fbi4ODb2Njz8vH//vwA//8AAAAA/wABAQH///8AAAAB/wEBAP//AAAA//8AAAAAAAEAAP8AAAAAAQEA/v//AAAAAAAAAAAAAQAA//8AAAAAAAEAAAAAAQAA/wAA/wAAAAAAAP8AAgH///8AAP8A/wAAAAABAAH/AP8AAAAB/wAAAQH//wD+AAD//wD//v/////+//8EAQEAAP8AAAEAAAAAAAEBAQAAAAEBAAAA//8AAQIBAf8AAP8AAAABAAAAAAD/AQABAAD//wEBAQH/AP8B/wAAAQAAAAEBAAAAAAD/AQABAAH/AQABAAEAAQAAAP//AAEA/wAAAgAA/wAAAQEAAP4AAP8BAAEAAAD/AAAAAP8BAAAA/wD/////AAEAAP8AAAEAAQEA/v8AAP///v//AAAA//8AAQAAAAD/AP//AP8AAQEB/////////wAA//3+AP///gD+AP////79/fz7/vz8//79/vz6+/37+QD1AgIEBwcIBQYIAwQFAgMEAwID/v/+//7/AP7/AP8BAgIBAQAEAgIDAAQAAP///v39/f79//79AAACAAAB/f0BAf//AP/+AQEBAwICAQEBAQAA/f38AP7/AQABAwME/wD/AQABBAQG/f39//7/AAH8APsB/v7+BAME/wAA/f78AQECAQECAwMEAAEAAP8AAAD//fv8AP//+vr6/P39/v7+/v3//Pv9Av8AAgEC/v3/AP//AgEBAP//BAMD/gECAAEBAAIBAQIBAP7///7+AwQEAQAAAQEAAgED/wD+AP/+///8AQEEAQIDAQD//wAA/v7/AwMBAgIDAgIDAQMDAgICAgMDAAAB/wEBAQEC////AAAA/v7/AP/+AP8A//8AAQD9/gMDAwID/v//AQD//gABAf4BAAEA/P7+AP7/AAAAAQICAAD//v7+//7+/v7+/wAAAP///v7+AAAA/v///v3+/v79//8A/////f39/v7+/fz9/v/9//8AAAD/AQEBAgICAAAAAP///v7+/wD//f398vHx6unq9fLy/fv6/v8AAP//AAAAAQEA////AQAA/wAAAAH/AAABAAD/AP8AAAD/AAEAAP8AAAD/AQABAAAA/wABAAD//wAAAP8AAAEBAAAAAf//////AAAAAAD/AAEAAP8AAP8AAAH/AAEAAP8AAAAAAAAAAAEAAP8AAAAA/wD/AP8AAP//AP///gD//wD///8AAAD/BAAA/wABAQD/AAABAQAAAAAAAAD//wABAQEAAQD/AP8BAAAAAQEAAAEA//8AAQEBAP//AQEAAP8AAAAA/wAAAAABAQAAAAAA/wABAQEAAP8AAAAAAAEAAAAAAQEBAAAA/wH/Af8AAAABAAD//wEBAQABAAAAAP//AAD/AAAB////AAEBAf///wAA/wEBAAAAAQACAAL/Av///wL+/v7//wIBAf8AAAEAAQACAQD/AP7+/v//AAAA////AAD//v7//wAA/////v///wH/AAD+/gL+AAEAAgEA//38/P4A+//9+/z7+gYHCQUGCAAEBgEBAQEAAf8B/wD//////wD/AAEAAv8AAP///v8AAQIDBAEDAwICAwMEBPz9/P/+/v/+/gAA/wD//wABAAEBAgEBAgIDAwAAAQEBAwEAAP8AAP39/QMEBQICAgICAwABAQAA//3+/QAAAQIDAwMBAwMDA/7+/wABAAEAAf8AAP3+/vv7+/38/Pz7+vz7/P38/QH//wYGB/37+v/7/P0D+vz49vgAAv/8+wIGCAMFBQD/AP37/AD//wD/Af8BAgIEBAICAQABAQH/AQIFAgL/AAECAAECAf39/AAAAAMCAf4AAAQBAwIEAv8AAP7+/////wAB/wAAAAD/AAABAQAAAP///v8AAf77/AACAgMBAv/9/v/9/wECAAAAAQAAAAAA///+///+/gD/AAABAf/+/gEAAP3+/v79/f79/v7//QECAgAAAf/+/v3+/v79/v7+/f7//////v7+//7///8B/wD/AQICAAEBAv///wAAAAAAAP8BAQEBAf39/vn6++fo6ufn5vz8+wEAAAD///8AAP//////AAAA/wAAAAAAAAAAAAD//wD/AAABAAAAAQD//wAAAAAAAQAAAP8BAQD//wAAAAEAAf8B/wD/AAAAAAAAAAABAAAAAQD+AAAA/wAAAAEBAf//AAEA//8AAAAAAAAAAAD/AAD/AAAAAAABAAAAAAAAAP8AAAD/AP8AAP8A/////wQA/wEBAP8AAQIBAP//AAAAAAEAAAH/AP8BAQEAAQABAAEAAP8AAAIA/wACAAD/AQAAAAAAAQAA/wABAAAAAgEAAAABAAAAAQAAAAAAAAABAAAAAP8A/wAAAf8AAAEAAAD/AQABAAAA/wD/AQAAAAAAAAEA//8BAAAAAQD//wABAQAAAAABAAH/AAAAAQABAAAAAAAAAAAAAQAAAAMCAQH//v4A/wAB/wD+AAD//v4BAQD//wD//////wD+/v8A//7//v/+//7///7//wD+AAD9/f38/Pz8+/z//vwCAgL+AP79Afv6AAH+/f8FB/4DAwMCAQIBAgICAwL/AAL/A////v8A/v8AAwECAQMA/wD+/vz+////AAAAAP8A//8AAQD9/P4CAQAA/wD/Af8A//36+vsAAQMEBP4EBQYDAgIBAQIA/wAAAAD9/v4BAAEBAwMBAAABAgEAAAD/AAD+//78/f0CAgIBAgIA///+/v78/fz+//74+Pj8+vkB//7+/Pz+AgIA/f8AAQEA/Pz/+/wBAvn6/PsF/fwB/ggBAgL//v4B/wADAgIAAAD+/wEBAgH6+vsCAgMFBgQBBAH/AP7/AP4CAQD9//7+/wAEAQMAAgIBAQMDBAYCAwQBAQIAAAEBAAH/Af8B/wECAgL9/QH+/f3+AAAA/f0AAgACAgL+AP8C/gABAgMCAQD+/////v8AAAH///7//v7+/wACAgIA///+/v7+//3+/v8A/v0BAQH////+/v39/v7+/v7+/v7+//4AAAAA/wABAAEAAQD/AP7//v8AAQABAAH/AP8A/gAA//8A///29/bs7Ovz8/P7+/v/AAAAAQEBAAH/AP8BAAAA/wAAAAEAAP//AAAAAQABAAD//wEAAP8AAAABAAD/AAAA//8BAAD/AAAAAAD/AP8AAAAAAQAA////AAAAAAEAAP8AAAAAAQAA/gD/AQAAAQAA/wAAAAAAAAAAAAEAAP8AAQEA//8A/wD/AQD/AAABAP///////////v/+/v4EAAD/AAEBAAAAAAAAAAAAAP//AQEBAAABAAAAAQAAAAAAAAABAAD+AAEC/wD/Af8AAAAAAP8AAAEAAAAB/wAAAQAA/wD/AAAAAQEAAAAAAP8AAAAAAAEAAAABAAD/AAEAAf8A/wAAAQEAAAACAQAA/////wABAAEAAAAAAQAAAAD//wAAAAAAAAABAP//AAEAAQABAQEA//8B/gH/AAACAAH/AQEA//8CAgAAAAAA/wAAAAH/AP8A/v8AAgIB///9/f7/BP8CAAAA/v7+AgMDAwMEAgUE+/sF/vz6//79AgECBAQGBQUGAgMD///+/v7//gEB//0AAQECAQABAAD/AQACAgMC//8A/P37/Pz8AQEAAgIC/f0AAgED/wMCAQEBBQT//f3/AQEBAQICAgMEAgIEAAICAAABAP////8C/v///Pr7/wD/BAQFBAQGAgABAQAA/v7+AAD/AgAC/f4AAQEBAQAA/v39/Pv7+vn4/Pr7+vj4+PX1//j2APv5AP78AP7+BwUFAgAA//z+/vz8/gP7AP4A/P7+/fr5AgQEAwQD/vz9/QEDAwUFAQMFAwUHBQQD/v8A//8BAAIC+ff3BQUFAQEFAP77AQECAwMGAAMD/wEEAQEEAAID/v8A//7/AgEA/wD/AAAA/wAAAgMDAQIB/v7//v/+AP8A//8AAAAA/wAA//7+/wAA//8AAP///f/+AP//AQEBAAAA/f39AAD/AAEAAQACAQH+//8A/////v7//f3+/v39AAAAAAAA//7/AAD//v7////+AQD//wAAAAABAQEBAQEAAQAB/wH/AP8B/P3+397g19bW7+7u/v7+BAUF/v/+/Pz+AQAB/wEAAP8AAAD/AAABAAD/AAD//wEBAP//AQEA//8BAAAAAQD//wEBAAAAAQAA///+AQAA/wAAAP8A/wAAAAEAAP////8AAAEAAP8AAAEAAQAA/wAA/wEAAP8B/wAAAf//AAAAAAAAAAEBAAAAAQAA//////8A/wAA//////7//f7+BAAAAAAAAAAA/wAAAAEAAQABAP8AAAAAAAEAAQAAAAAAAAAAAAAAAgAA/wEAAP8AAQAA/wAAAAAAAQEBAQD///8BAAEAAAAAAAAAAQD///8AAAEAAQEBAAAAAP8AAQAA/wAAAAEBAQAAAAH/AAAAAAEAAQAB/wAAAQD//wABAP8AAQD/AAEBAAD//wACAQAAAQEA//8AAQAA/wEBAAD//wADAgD+/wAAAgECAAEAAf4BAQH+//7/AQQBAAD/AP//AwL+/v8A/wAAAAMA//79Av4DAwADAQAB//wBAP/9/f///fv7+f39/AMFBwUFBwICBQIAAQACAv/+/////v7+/v///AH7AAAAAAICAAQEAwEBAgQDBAEBAf39/vv8+vz7+wIDAgYIBQEBAQEAAQACAwIDBAICAwAAAvz8/f79/QAAAAMCAf39/fz7/AMCBP/+Af8BAAABAQEAAfz7+/8A/wEDAgQCBP//AAD/AP/9/v77/Pz6+v37+v76+f34+P379wsJCv4BAv8AAgUFBAD+/gH9/gEBAv76+wP/AAIAAf78/P////4D/QMBAAMCAv/8+gEDCQQEBAMFBP7+/wQFB/v8+wMD//7+/wH+AP3/AQQDBAEDA/4BAAIAAP///wD+/f4AAQABAf8A/wEBAgEBAAEBAQEBAQMA//3+/f/+/////wAAAAEAAf8AAAAA//3+/v///v//AAICAf8A//3+/fz8+wEAAQECAv8AAf/+/v3+/v////7+/gAA//3+/v37/Pz+/P///wABAAD//gICAgIBAgABAAEBAQABAQAAAAEAAf4B//j5+Ofm5vLx8fv7+vj4+AMEAwcICQL7+fv7+//9/v8B/wH/Af8A/wEAAAABAgMCAwIGAgAAAf/+/v3+/P7+AP/+/gD//wAA/wAAAQAA/wAAAQAB/wH/AP8AAf8A/wABAAD/AAAAAP8AAAEAAAAA/wD/AAAAAAEAAAEBAf///wAA/wD/AQAB////AAEBAQD/AQD/AP7///7//v7+/gQAAAH///8BAQEBAAH/AAD/AAACAAH/AP8AAf8AAAEAAAAAAAAAAf8B/wH/AP8BAf//AAEAAP8BAAD///8AAQABAQAAAAEAAAAA/wAAAAABAAEAAf//AAEBAAABAAH/AAAAAQAAAAAAAAEAAf8AAAEAAP8AAAEBAAD/AAD//wABAQABAAAAAAAAAAD/AP8A////AAAAAAABAAABAQEBAgL/AP//Av4B/gAAAQP/Af4A/gD/Af8A/wH//v4AAQEBAf8DAgL/AP8A/wD///4CAAH/AgICAgABAP8BAAL8Avv+/Pr////+APwB/gP+/wT+/wMBAAMA//7+/v4A//8A//8A//7+/v7/AP/9/QAAAP/+////BgYFBAgBAAECAgMCA//+//77+/v+/v4CAgEAAQIDAgQFBwcBAQQCAQMCBQQBAQECAQIAAQD8+/v39vYAAQADBAMEBAUAAAIAAQEAAAACAP//AwQA/wADAwIFBAX5AwP///7//vz9/Pn7+ff/+/n+AwX6AAEKCQoEAQEEAAD9+voCAwQAAQAAAAL9//sAAAAAAP8C/gP8/PgC//8AAwX+AgIB/v////8BAQECAQH//wD7+/oCAgQAAQL/AAH/AQMAAgP//wH+/v8BAgABAQH/AQAA//////8AAQAAAAEAAAEAAP3/AAEDAQP+Av7///7/AAD+/v7/AP/+/f7+/v4A////AP/8/AAAAP////7///7+//8A/gEBAQH/AAH+//79/fz+/f39/Pz+/v3//////v7///4AAQEBAgL//wH/AAABAQEBAQEBAQH/AAD+///7/Pzx8PH19fX9+/sA//8SExMJCAj09fT8/PsIBwcAAQEBAQECAgIDAgP//v8AAP8AAAL9/v3//v7/AAAA/v7+AP78/Pv6+vr9/f0AAP8AAAABAP///wD/AAAA//8BAAH///8AAAAAAQAB/wD/AAAAAAAAAQAA/wAAAAAA//8AAAAB/wEAAf//AAABAAAA//8AAAD/AP8B/wD////+/v8EAAD/AAD/AAAA/wAAAAABAgAA/wD/AQAA//8AAQEAAAAA/wEAAf8A/wD/AQAAAP8AAAH/AAABAAAAAQAAAAAA/wABAAAAAAEAAAAAAAABAAAAAAABAQAAAQAB/wH/Af8A/wAAAQABAAEA//8AAAAAAAAAAf8A/wEAAQAAAAEBAAAAAAAA/wD/AAEBAf8A/wD/AAAAAQAA/wEBAQD/AAECAP/+AAADAAP/AP7+AAACAgIA/wD/AP3//gEA/wD/AAABAP8AAQABAAH///8AAAEAAQACAwMFBwcBBAUH/fz8/Pv5+vr4AP//AQEC/f39AAD5/gMEAf8CAAD/AAABAAAAAAEA/wD+///+/v/9///+AQAB+/v/AgIEAgEDAQEBAgEA+Pn6//7+AwQEAwMF/wAAAP////7+AAH9AgEBAQIF//8A/wAAAwIDBQUB/AX8/v/9AQED/v4AAAH+AP8BAAEBAwACAP8AAQIB//4BAQMBBQYE/v779/Px9OvpBwAABQIC//z7BwgHBAD/APz6/f7/AwMDAP/+AAAB/f3+Av0DAgIDAQICAf7//gD/+/39AwcH/v39AAMFAwcIAgMD/v79//79AAECAAIB/wEAAAECAQEEAv8DAQMCAQECAQEB////AAAB///////+AP8AAAAA/wAAAP8AAAD//v//AQEBAQAC/f7/AAD///7//v7+/f39///+///+//8AAQAA/f79AAEA//7/AAEAAAECAP8B/v79/f7+/v39/v39+/z6///+AAECAQICAQEBAAEBAQABAAABAP8AAQABAP///f7+/f79+vn58PDw8O/uBgUFDQ0X/v/+AP//GBkZGhoZ+vv67Ovr9PT1+fj4/fz8/f39AAD/AP8A/wAAAAAAAAAAAQEAAQIAAQEBAAEAAQAB/wH/AP8A//8BAAD/Af8A/wAAAAAAAQEA//8A//8AAQAAAAD//wABAAD/AAEAAf///wEBAAD/AP8A/wABAP///wEAAAAA////AAD//gD/AgD/AQEABAAB/wEAAAAA//8AAAAAAAAAAQAAAAABAQAA//8AAAAA/wH/AQAAAAAAAAAAAP8AAQAA/wAAAAAAAAAAAP8AAQD/AAABAAH/AAABAAAAAQAA/wEAAAEBAP//AAAAAAAAAQEA/wAAAAD/AAH/AAABAAAAAf8B/wD/AAABAQEA////AAABAAIAAf//AP8BAAD//wABAAD/AAABAQIAAP7//wEBAQAAAAD/AAACAgH//v7/AQD/AAAA/wEBAAD+AQAA/wAAAAEBAf8AAAIBAgAAAf8A/wEBAgICBAL//wIC/AIDBQQGCQD+/v/+AAECAAICAwICAAEBAv8A////AP/+/f39/AIBAv/+/QD+APz8/wABAP7+/vn49gMCBAIDA/7+/gEBAQECAgAA/v39/f8AAPv+/f339vr3+AQHCBIRFwIEBQEDAv8BAP8AAQUHCP///wAA//7///79/f3+/QICAv7//v79/AIDBAD/AAEBAQIDAwH/APf08+rk5B8bGwYEAwUCAAL///78/AIBA/4A/gMGBwAAAAAAAf8A/f4BAv4BAAUFBgACAgABAf39/f39/AIEBQIDBgH//v8EBPz+/v/9/wAFBPz9/gH//QQGB/8A//4A/gMAAv///v7+AQD/AAABAP///////wEBAAABAQD///7//wAAAQAA/wD/AP8BAAAAAP//AP8A//8AAP///v39/f/+/QABAf38/P8A//8AAAEAAAAAAf///AABAf79/v3+/vz7+//+/v7+/v///gICAAD/AAAAAgD//wAC/wAAAQAA//39/QAAAf///v37/fT09ejo6AICAiUmJfT29Pr6+gD+/u7t7uzs6/b29f3+/QH/AQEBAAD//wAAAAD/AP8AAAH/AP8BAAAAAP/+//4AAAH//v8A//8BAAH/Af4AAAAB/wEAAP8AAQH/AP////8BAQAAAAAB/wD/AQAAAAAA/wD/AAAAAP8BAAH/AP8AAAABAAEA//8AAAAAAAAAAAAA//////////////7+/gQAAAAAAQAA/wEBAAEAAAEAAAABAAAAAAAAAAEBAAAAAAH/AAABAAABAQAA/wABAQAA/wD/AQAAAAAAAAABAP//AQABAAEAAQAAAAEBAAAAAAAAAAH//wABAQD/AAIBAQAA/wH/Af8AAP8AAAH/AP//AP8A/wAAAQAAAAAA/wAAAAABAAAAAAAAAQAB/wEBAQL/AP8AAf8AAAD/AAAAAQEA//8AAAAAAQAA/wAAAQEB/wH//wACAgL//gAAAgD////+//7//v4AAAECAAEAAQH/Af////4A/wACAQEBAwUBAAH7/f38/Pr+/f3//v8AAQEBAQECAwICBAMCAgIBAAECAgIBAwL//gT9/QMCAv0A//////3//v/+/v39/vv9+/v7/PsAAAADAgQABAACAgQCAgACAQTw9vb68fIDAgULDBAF/wcDBAMAAAABAwH//P//AAD///8AAQEBAAABAAH//v//AgEBAAD+AP///wL+/gAFBAT//fz+/fz9+voCCAj//f/+/P0DAgMCBgUA/v7+/PkA/wQBAAMA/wMAAv8CAwL++/sBAgIBAQL/AgH//QL+/v/+A/3/AP0BAwX8/v/8/v7/+QACBwYECQkAAQH+/////gD+Af8CAgL///8AAAD//v//AP8A/wAAAAEAAP8AAAD/AAD//f0AAP8AAQEAAAD////+/v79/fz9/f79/f39/fz9/fz//v39/f3+/f7+AP8CAQL/AAEAAAD/AAABAAH+/v79/fz///////7///7+/gAB//4AAgIEAQL+/QIBAgMB/wAAAAH9/v77+/z4+fnx8fH19PUBAADt7u3x8e/o6Oj39vf+/v4CAAD///8BAAD/AP8B/wEAAAAAAAAAAAABAAD/AQAA/wAAAQD/AAAA////AP8AAAAA//8AAP8BAP8AAAH///8A/wD/Af8AAAAB/wAAAf8A/wEAAP8AAAABAAH/AP8BAAD//wH/AP8A/wAAAAAAAAAAAQEA//8AAf///wEAAAAA/wAAAAD///8EAQABAP//AQAAAAEAAf8A/wAA/wAAAQAAAQAB/wD/AAAAAQAAAAEBAAAAAAEAAAAB/wD/AQAA/wAAAQEA/wABAP//AAEAAQAAAAAAAAAAAP8BAQEAAAEBAAAAAQAAAAAAAAAAAP8AAAEBAAEAAf8AAAAB/wL/AAAAAP4AAAEBAv8A/wEAAf8AAAAAAAH//wABAP///wAAAf///wEBAgD//wABAQEA//8A/wAAAQAAAAICAgAA//79/gIB//3+AAD/AQAB/////wD/AAAA///+AAAA/wD/AAAAAAD///79AP/+AwQDAAEG//39/fv6/v7+//7//P3+AfsBAwQEAgIDAQMC//4AAQEBBQQG/fz7/v79AAD//gD++/v6/v37AAEAAQD/AQECAgIBAgECAgIC/wABAgICFxkZ+vr8AAD/+/v5/f78BwgJAQEB//3//v//AQEBAwID/v39AAIC////AQEBAAEA/Pz9AP/+/wAAAwME/P3+AwIDBAYG4eTlGRf+Dw0NBgUHAf7//fv8AQEB//37BAP+AwMG/wAAAgEA//z/+/78/gQDBAQF//8BAQMBAPz+//39/P37AgUH/wEC/vz8+Pf1Cg8QAwsMAAD///3+/gL+Af8CAAAAAAAB////AAAAAAAA/wD//v7/AP/+/wAA////AAAA///////+//8A/wD///7//v7+/v39/v39/v39/vz9/Pz8/v/+/fz9/wH/AQAB//8B/wD+AAAB/v79AP///v/+//7/AgIBAQAC////AAEAAAD9/P/+AQIDAwAC/wAA///+/f8A/v7++/z87+7v7ezr5OPj8PDt+/v6/Pv7/v7/AQAA/wICAAEAAP8BAQD//wAAAQAAAAAAAAEAAAAAAP4AAAEAAAAAAQEA/wABAAAAAAD/AAAAAAABAAD/AAAAAAAB/wD/AAABAQD//wEA//8AAAAAAQEBAAD///8AAQEA//8AAAD/AQAA/wAAAAAAAAAAAQD//wEAAP8AAAEA////AAD///8A////BAABAAAAAQAAAAAAAQABAQEAAAAAAP8AAAD//wEBAAAAAAAAAQEAAAAAAAAAAAAA/wEBAf8AAAAAAP//AP8A/wECAQEAAAEAAgAAAAAAAAAB/wABAf8AAAEAAQD///8B/wEBAQH/AQAAAAAA//8BAQEA//8AAQAAAAECAP////8BAAAAAAABAAEAAf//AAEB/wAAAQD/AAEBAQEAAP8AAQAA/wEBAAD/AAAAAP8A/wAAAQAA/gABAQEAAgABAP///gEB/wABAgD//wEAAAABAv///wAAAQD///7///8AAAABAAEAAQIBA/4C/wIEBQD9/P38+/7+/f7+/f39+wMEBgP+AwICA/8BAf8A//7/AP7/AP7+//39/QAAAAEBA/7+/QAAAPr6+wMC/QUGAAQCAwECAQAAAgACAAQEBP//APv7+AD7AgQDA/8A///+AAIDAwAAAv////8AAP39/gEBAQD//////////wD/AP7//f8AAAMFBggLCwgNDubo6+Dl6xYUFCwmJxYSDwYGBAMCAgH/APz+///+AQEB/wEAAQEBAgAA/v//Af79/P79///7AAECAQACAgABAP38/P7//+zr6f7+/QkMDAEAAf/+AP////7+/gMDAP79/gABAAABAf///////////////gD/////AP8B/wEAAf7+/v8A//79/gD///8A//39/v38/Pz8+/v8+gH///z8+/7+/v39/f7//v39/gEBAP///v7+//38/AEB/wECAAQDBf7/AQEBAwEB/wAAAgH/AwABAgAAAv7+/v8BAf/+//v8+/f5+e7t7eLh4OHf3/Dv7f3+/AEAAAEBAgEC/gD+/v///gAAAgEAAP8AAAH/AP8AAQEB////AAAAAAABAAAAAAAA/wD/AQEB/wAAAP8AAAEBAf///wEAAf4AAAEAAAABAAAA//8AAAAA/wABAAH/AP8AAAAAAAABAP/+AAEAAP8AAAAAAAAAAAAAAAAAAP8AAAD/AP8BAAEA/wAAAQAA/wAA/wD/AAQBAAAA/wAAAQEBAAAAAAAAAQABAAEA////AP8AAAAAAQEA//8AAAEBAAD/AAAAAAAAAAABAAD/AP//AQEA/wEAAAH/AAAC/wD/AQABAAD/AAEA/wAAAQAAAP8AAQAAAAH/AAABAQAAAAAAAAEA//8AAAABAAAAAP8AAAABAQAA/wD/AQAA/wAAAf8BAAAA/wAAAQEAAQEA/wAAAP8B/wAAAQEAAAAAAAAAAgAB/wIAAP8AAQL/AP4A/wABAQECAQIAAAD/Av///////v8BAAD/AP8A/wD/AAABAQEBAQP//wD//wAA//8AAQQBAAABAAD/AP8BAAD8AP/+//7//Pv9/v4CAv4FBQUDBAQBAv8A/P/9/P3+/fsBAAEDAgIAAP/5+Pn8/Pv9AQEA/wD//wEFBgcABP8AAAEAAgIB//4A/P4EBAUCAgD8+/76+/sDAwMBAAD/AQEBAAEBAQIBAQL+//8B/////v/9/fz+/v3/AP8HCAoMERIO9fEQ8hXq7t7P1trj5uwnIh0rIx4ODAkFAwUCAwT//f8CAv7//v4CBAQBAQH+AP/+/fv+/f39/v4AAgIAAQD/AAD29vbt6ugAAfwLEhT9/vwBAQEBAgMAAQEAAQD9/fwBAgIB/wAAAAAAAQEBAAH9/vz///8AAAABAAD//v7+/wAAAP/9/f8A//7/AAD+/v39/f3+/v3+/v3+/f37+/r8+/r8+/v8/v0B/wEAAQABAAD9/fv+/v7///8BAgEA////BPwBAQMCAgIDAwMCBAQCAAMAAAAA//7+/wH/AP/8/P73+Pn19fPz8vMA//8UFBIDAv719fX09PUAAPwA/wABAAL/AAAAAP7/AAIB/wAAAAAA////AAD/AAAAAAAAAAAAAAAAAAEAAQAAAAD/AAAAAAAAAAAAAAAAAAEBAP8AAQAA/wD//wAAAAAAAAEBAAAAAQAA////AAAA/wAAAQAAAAAB/wAAAAAAAAAAAQAA/wAA/wAAAP//AAH///8AAAD+AAAC/wD///8E/wAAAAEAAQH//wAAAQAAAAEB/wD/AAD/AQEAAAAAAAD/AQEAAAEAAP8BAAAAAAEAAP8A/wAA/wABAf8AAQEBAP8AAQEB/wAAAP//AAEBAAEA//8AAAAAAAAAAAABAQD/AAEAAf8B/wD//wD/AAD/AAEBAP//AQAAAAAA/wABAAH/AQAAAAAAAP8AAAD/AAEBAQAAAQAA/v/+AAAAAAEAAP//AAAAAAEAAQAA/wAA/wEAAAIBAf4CAQMA/wIBAP3///7+AP8AAAEAAAEAAAAAAQABAAECAf/////+/wD+AQABAAABAgICAf8A/v8CAAEABgMB/gMEAvwD/f79/v7//f3+/fz9/v7+/vz9AAEA/v79AAEBBAQFAQIA+/v7+/v6+fn4+fn4BgcGBAQFAQEAAQAA/v38/f3//v//AwICAgMEAQIA9vb3/////fz7+vr///7+AQEBAwQFAgIEAAABAgMCBggJAAAA/wD/AwMCAQECAAoKDhIW+vr29PLz8Bbu9Pf45O3q4+vp4+fmQTYwFA8PBAT/AgH+AwL+/fz8BP4E/wABAAAAAAEB+/788vT15unq/fz7/fz7+vn2CAUDEBUQBw0MBwsMAQMDAwICAQEB/////f7+AP/+AQABAAAAAAAAAQAA/v7+/wD+AQAB/P7/AAD//v7+/v79/v7////+/////v79/f3+/v37+vr6/Pv5+Pj2+fj2+vn7///+BQUFAQICAAD/AAAAAQEB////Af4AAgMC//8CAAD9AAABAAEAAQAA//8AAP7+/gABAAD//f7/+vv9+/v69PP15+Xl2NbW5+fk+Pj5//79AAEBAf8AAAD//wEBAAAAAP8BAAH//wAAAAD/AQIA//8AAAAAAQAA/wAA/wAAAAAAAAD/AAD/AQAA/wAAAAAAAAAAAAEAAP8AAAAAAAAAAAAAAQAA/gAAAQAAAAD/AAD/AQAA/wAAAQAAAP8AAAAAAAABAAD/AP8AAP8AAAEAAAABAQD/AQABAAAAAP8A//////8ABAD/AAEBAf///wEBAAABAP8A/wAAAAEBAAEAAQD//wAAAAABAQEAAQAAAAABAAEAAP8AAAD/AAEBAAAAAAEAAf8AAAD//wABAAAAAP8AAAH/AAAAAP8AAAAAAQAAAAAAAQAA//8A/wAAAAEAAP8AAQD/AAH/AAABAQAAAAAA/wD/AAABAAABAAD/AAAAAQAAAAAAAAAAAAEBAQAAAP/+////AAAB/wEBAf//AAAAAQEAAAABAAACAf///gL/Af4BAAACAQEBAf/+/v8CAP//AAAAAQEAAQAA//4BAAD/AP8A/gD//wEBAQAAAgICBAH////////++wIFAQL/AP38/AEA/f///wIBAgEBAAMCBAEDBf7///39+/v7+AEBAQUFBQYQEvv6+vn7+fz9/gP7+wICAwABAv39/gEBAf//AQICAf7+/v//AAEBAQQEBP39/fX29v7+/gcJCQMC+/7/AAEBAQIBAQMGBv///vv9/gMDA/8BAgUJCwsPExEU7xrx8fj5+efp/vT1+dri5BYPCjYsLAgIAAIAAP8DBgIBBPz9/gADAf8BAO/2+NLZ2djh4fDz8w4LCg4LCBIPDBsQFQ0aGw4ZGQMKCgEEBP8BAAABAQAAAAEBAP//Af7//v/+/////v/+//8A/gD//wEBAf7//v3+/v/+/f79/f7//gAAAP8A//7+/v7+/vv7+vr5+fv5+Pv59/37+wH//QABAQMDAgH/AP8BAQEBAgAAAAAB//7//gD//v///gICBAEBAQD/AQD/AgACAAECAgAAAf///v////v7++3t7dfU1dTT0vDw7/39/QECAAD/AQAAAP8AAAEBAf//AAAAAAAAAAEAAP8AAAEAAP//AAEBAQAA//8AAQD//wEAAP8AAAEAAQAAAP8AAAAAAAD/AAAAAAAA/wAAAAAAAAABAAH/AP8AAAH//wABAf8AAQD/AP8A/wAAAP//AAEAAP8AAQH//wAAAAAAAP8BAAAAAP//AAIAAf8BAf//AP//AAAA//8A/gQBAQH/AQABAAAAAAD///8AAAAAAQAAAAEAAP8AAQAAAAABAAAAAP8AAQABAAH//wAAAAACAQH/AQEBAAAAAAAB/wEAAQAA/wABAQAA//8AAAEAAQABAAAAAQAA//8AAAEAAAABAQD/////AAAAAAAAAP8AAQEAAP8AAAABAAH/Af8AAAAA/wAAAAAAAAAAAAEAAQAA//8BAAH/AAAAAf8BAAAA/wEAAQABAQEAAAAAAAAA/wAAAf8AAAEAAQAAAf8B/wH/AP4AAQAAAAABAAEBAQP+//8AAf8A/v8AAAH+/v4AAAD//wACAgIBAQICAgEBAQEBAQn////7+/z8+/n5APn8/Pv8/Pr9/P8CAwQFBAX+AP79/fv9/v7//vwDAgL8/Pz8/P3//QABAwD////+/v7///7+/v4AAQH////+/v8BAAL/AQAEAwMDBQQDAwL+Cgr29/b9/PsBBAT+/P3+///7BgYBAwIAAQAA/v79/f79//8AAgQHCQ0QEhb49PP6+voCAP/p6u/z9fb0+Pn2+PcEBAQA/f79Af0EAwQCBAYAAwHv9/e8ycrj6+0AAgEGCAYECAUJDgsSFhMXHR4RFhoIDBEDBggBAQH+//7//fwCAQIAAAECAQL+//39/f7//f7+/v38/Pv//v4DBAMCAQH8/f75+vf///38/Pv+/v4AAAACAgL/AP/9/P339/T49fL59vX6+vf9/P0CAwP4BwkCBAQDAgMDAQMAAgEBAgEEBAQAAQIBAQEBAQEA/wD//////////v8B//0AAQL8/P74+vnz8/Ln5ubi4uHu7ez5+fj9/P3/AP8AAAAAAAAAAQAAAAABAQAAAAEAAAAAAAABAgAA/wAAAAD/AP8AAAEA////AAABAQAB/wAAAf8A/wAAAAABAAH/AP4AAP8A/wAAAAAAAAAA/wD/AAEAAP8AAQD/AP8A/wD/AQAA/wAAAAAAAAAAAAABAAD/AAAAAQAA/wAB/wH/Af8BAAD/AQABAP8A//8AAAD//wD//wAEAQEAAAAAAAECAP//AAAAAQEAAAAAAQAAAAD/AAAAAQABAAD/AAAB//8AAAAAAAEAAQABAAABAQAAAAAAAQAA/wH/AAEAAP//AAAB/wAAAQAAAgAB/gAAAP8AAAAAAAD/AAABAAD//wAAAQAAAAEA//8AAAH/AP8AAQEB//8AAAAAAQAA/wAAAAD/AP8AAAH/AP8BAAAA/wEAAQAAAAABAAABAAH/AAD/AAABAAH///4BAAD/AQAA/v//AAD//wAAAAEA/wABAP8AAAAAAQIAAQABAgAA///+AQAAAAEBAwMDAAD+///+AQEB///+AQAB/v/+/v/++/v7/fz9/f39AP/+AP/+/wH/AwMDAQD++Pnz/P38/v79AgACAAEB+/v8AP8A/f39AQAAAgAB/f39/fj3AwQEBAIFAQMB/f7+/Pr6AP8ABAUFAf8F//79AgIDCAgHBQUD/Pz9/f3+AwQBBAEB/vz8+f32AwUEAQAB/P38AQEB/v8AAwQGCQ0RFBgbAf7+Av//AQAB/er+9/j38/TzCgkJAPz+//78/wUFAgAA+vj719rb7O/xCgoKBwYDDQkHCw0LEhMQFxcYDxIUCw0RBwgOAwQHAQIDAQABAAAAAQAB/v///gD+/v7//v38//7//Pz8/Pz7AP///f79AwQEAQAA//7//f3/AgEEAgP//v7+/wD/AP8A//39AP79AwIECAoLCAsMAQIBAQABAQIA/v7/+/z8/v/+Af8BAv8CAP//AQICAQED//8B/wEAAwICAAEA///+/v4B/wD++vr89fX26Obo4eHg7ezr/wAAAQEBAgQDAQAB/v/+AP8BAAH/AQAAAQEBAP8A/wAAAQEA//8AAQEA/v7/AP//AAAAAAEA/wAAAP8AAQIAAAECAQAAAAAA//7//gD///4A/wD/AAAAAAD/AAAAAQEA//8AAP8BAAD/AAAAAQAA/wAAAQAAAAABAAD/AAD/AQAA/wAAAAAAAAH/Af8A/wAAAP8AAAAA/wAAAAAA////AP8ABAAAAAABAQD//wEBAAD/AQAAAAD///8BAAEAAQEAAAAAAAD/Af8B/wABAAD/AAD/AQABAAAA/wAAAAAAAAAAAAAAAAEAAAACAQD//wH/AAABAP8A/wEAAP8AAQAAAf8A/wEA////AAEAAAAAAAAAAAABAQAA/wEBAP///wAAAQEAAAAAAQEBAAAAAP8AAAAA/wAAAP//AAABAAAAAAAAAAEBAAAAAf//AAD/AAEAAQAB/v8AAAEAAgMDAQD//wMCAP7+/v/+/v7//gEAAf8A//7//////////wAA/wH/AgD//v8AAf/+Af4A/v7+/gAB/////////gEBAQMEAQECBAMDAQX+BAABAP38+/f39vz7+gMBAgUDBf7+/v7//v7//v38/AECAQH/Afv8+wEA/AQFBfv6/v4D/QT/BQECAwEBAPz9/AL9Avr+/wICAQIBAwICAgACAf8AAAIDAwEAAP39/fn6+AAAAQgACAMDAwD+//r8+gICAQECBAMGCQgMEQ8S+P35+/z+APn7+gYCA/r8/Pr5+gL+//38/QUCAAEDAvDw8Pz4+h8WFvwC/wgFAw0LCQgNChIVFRYXGhAUGQcNEAIHCAEDBQECAwIDAwAAAQAAAAABAQEAAAEBAQIDBP4A/QIDAwYCCAIBAQECAQEBAQIDAggJCf////7+/v39/Pr6+Pr5+ff39Pb08vv59/3++wEBAgECAwIAAwECAgICAwQEAgcHCP7+/wAA/wIDAgICAwQEBAIDBQD/AAABAgICA/8AAQD/AP//AP39//z8/Pj29/T08wICAxIUFQsMC/z7+wABAQIBAf////z8+/v7/Pv7+/79/fr5+v3+/f38/f/+/v8BAP/+/v//AAAAAAEBAQAAAAAAAP//AAEA//8AAP///wEAAQICAwEC//7+///+/f4A/wEAAP8AAAAAAAAAAAEAAP8AAAAAAAABAQD///8B/wH/AAAAAAABAAD/AAAAAAAAAAAAAQAA//8A/wAAAQH/AAAA/wAAAf8A/wQAAAAB/wAAAAAA/wEAAAAAAAAAAQEAAAAAAAD//wABAQAAAQABAAEA/wAAAQH//wAAAAD//wAAAf8BAAEAAP8AAAEAAAEA/wAA/wEAAP//AP8BAAEAAAAAAAAAAP8BAAEAAP8AAQD/AAAB/wD/AAAA//4BAAH/Af8BAAH/AAAAAAAAAAAAAAAAAAABAQD/AAAAAP8A/wAB/wD/AAAAAAAAAQEA/wAAAAAAAf//AP8A/wAAAAD/AP8AAAAAAAEAAP8BAQH+AAACAgL///7//v////8A/wAA//8AAAD/AP//AAEA/wD/AAAA/wEBAQIAAgD//f0CAQIAAgAAAAID/wD+A/7///37+/r7/P8FBAcCAQP//v///vz+/v/9/v4A////AP/9/f0A/wAFBAT+/v/5+Pf//wEHCAgCAgMEAQICAAEBAAH4+PcBAgMDAwIDAgMCAgL//v8DBAUCAwMEAwUFBAb8/v39/Pv//v/9AP4BAAEDAgEAAAH7/P8AAQQFCAwKDhT++/75+/37+voE/wAGBgf9/wD//v///PsB/wX++vv3+PkLCwoJBAQEBQMGBwQGCAYJDg0SFhgOExYIDBADBgoBBAYBAgQCAgMAAAACAQIAAQEB/v////8BAAEBAAABAAEDAwMBAAH///8BAQACAgIBAQIA////AP4BAAD///8A/v8BAf8DAwEAAf75+vb8+/oEBAUEBAYBAwD9/v////8AAQEAAAAA//8AAQEC/QECA/7+/v4DAv8CBAQBAQH/AP0AAAP/AAD8/f74+fny8fPp6ejr6urw7u7v7+75+fj//v7///8BAAABAAD8/Pz+/v7+/f3+/wD+/f7///0AAAABAQH///8AAAEBAf///wD///8AAAAAAAAAAAD//wAAAAAAAP/+//8AAf8AAAACAQH+AgIB/gD/AP4A/wAAAAAAAQAAAAAB/wH/AP8BAP8AAAAAAAAAAAAAAQEA/wABAP/+AAABAAD/Af8B/wAAAAEA/wD/AP///wD/AAAA//4EAP8CAAH//wABAAEAAQAAAAAAAAAAAQD/AAABAQEAAAABAAEAAP8A/wEAAQAAAQEAAAAAAQEAAAABAAAAAAABAAD///8AAQEAAAEB//8AAAABAAAAAAABAAAA/wABAQD/AQAB/wD/AQAA/wEAAf8AAAABAAH/Af8B/wAAAP//AAEBAAAA////AQD/AAEBAP8A//8AAAD//wAAAAABAAABAP//AP//AAAAAP//AAAAAAABAQD/AAAAAAAA/wIAAv8B//8BAAEA//3/AP8AAgEBAQL//v//Af4AAQAAAAEAAP8A/v7+AP8BAQIBAAD////9AwIC////////AAD/AAD/AAEC//8BBf8BAgsE/v38+/r6+vn4AgMF/P7//v/8/f38/Pz8BAQFBQQE+/n6+vn6AQICAwIB/fz7AAEB/wD/AP8AAQH/AgMBAQEB/f38+vr5BgUGAQEB/Pn9AgMD/wX+/wAB/v8ABAMDAwID/gAAAP7/AgIEAAD+AQICAQMEAAEEBQoPDAAC+/v8/Pn7APv7AwUF/wAB/P79///+BAAB+/z8AgUGCw8GAgcGBwgHBAcEBwoJCA0MDRMXBgsPAgYKAAIEAAABAAAA/f7+AAAA/QH+AQECAAAA//7/AAD//v7++vr6AQEBAgIBAP8AAQIA////Av//AAAA/v79/Pz6/f37/f79/v7/AgIECgkNAwIC/Pz8//8AAgEBAAECAP8A/v/9////////AAAAAgH/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//8AAAAAAAEAAAAAAAAAAQECAAD/AAABAP//AAAAAQAB/wABAgIBAP//AAAC//8A//8A//8BAAAAAQD/AAABAAD//wD/AP8A/wD/AQICAgAAAAL/AAD+/gEBAQIDAf0AAQAFAAAA/wIAAvf48/z8+/7+/f3+/gEB/wD//vz9/gEBAgAAAPz8/P/+/wICAgAAAgACAgIBAv8BAgEA/gD//gH/AAIDA/7//v7+/QEBAQAA/wAAAP////r7+gT+/f0BAv///v38+wD+/v78/f/8+/v59v35+vz+//8DBfz8/gECBP4FBgQGCAcHBwoTEwwTFAcLDgQGCAMEBwIGBgL/AAIBAgEDAv8AAv8A//r7/AAA/wABAQH////+AAAAAAAAAP/+/v///wECAwYICv7+/gEBAAIBAQICAgMDAwEBAQIBAQAB/v7+AP8B/wEA/gEB/wACAf78/wAAAP8AAgD/////AP7//wD/AAABAAICAQICAwEBAQIBAQACAgAAAvz8/fr8/fLx8uzs7e3t7urp6+7t7vr7+/39/gsKCg4ODgsMCwEBAf7+/QD/Afj49/r5+gkRCPr6+vX19fz8/gH+AP8A////AP//AAEAAQAA/wAAAAEBAP///wAAAAAAAAEBAQAA//8CAAD/AAEAAf8AAAD/AAAAAAAAAAABAP//AAAAAAAAAAAAAAAA//8BAAEAAAH/AAAAAAEBAf//AP8A/wAA/wD/AQEAAP8A/wAAAP8AAQAA/wAAAAAAAAAAAAABAP//////Af8A/wQB/wEAAAAAAAD/AP8BAAD//wD/AAEBAf8BAQH//wAB////AQABAAEAAAAA/wAAAf8AAQEB//8AAAAAAAEAAAD/AAABAQEAAAH/AP8BAf8BAQEB/wH/AQABAQD+/wAAAQAAAAAAAP8AAAEAAP////7/AQAB/gEAAQD/AAABAf8A/wAA////AAABAf//AAABAAD/AAAAAAAAAQAA/wAAAP///wABAAD/AAABAAD/AQAA/wAA/wAAAAAAAAAAAAEAAAEAAP7///8AAQEAAP8AAAABAQIAAP7/AAIBAf//////AP8AAQEBAQEA//8CAQEA////Af7//gH/Av///gH/AAEAAP8BAAAAAQEA/wIBAQABAv//AQEBAQEBAAH//////wAI//wA/fv+/fsA//77/P36+fcBAQAEAwUDBAT//f3/AwMEAwUDAwICAAH/AAD9+/oBAgP+/f4BAgL9/fwBAQEAAP8BAAEBAAD+/v79//3//wD9//76/f0A/v8A//8B//77+fj++/r7+fkC/v0DBgcAAAH0+PkGAwQDCAsECQgDCAgABQb5/P4B+/oAAwQA/fsE/QMBAwP/AQD7+/0CA/8BAgICAgEA/wEAAAD/AAEDBP8A/v//AQH+/f0BAQIDBAECAAH/A/8AAP8CAQIAAAAAAP8BAQAAAf/8/Pv4+PUAAP0BAQEKCwoKCwv9/v7+/v78+vz8/Pv7+/v7/Pv9/v3//v3+/f4BAQEBAf/+AQEA/f37/Pn4+Pn19fXo6ejo5+nw8PH08vXx8vP7+/r9/f7w7+4AAAAAAQABAAABAQEFBgYGBwcEAwT9/P8NDA8LCQz5+vr8/Pz9/f7+/v3////9/f37+/v+/v7///8BAAAAAQEA/wD/AP8AAAAA/wAAAAAAAP8BAAD/Af8A/wAA/wAAAAABAQH//wAAAP8A/wAAAAEAAAAA//8AAP8AAAEAAAABAQD///8A/wAAAQAA//8BAAD/AAAB/wD/AQD/AAAA//8AAAEAAAAAAP//AP8A/wAEAQEBAAD/AAABAP8AAAEAAQAAAQD/AAABAAAAAQEAAAABAQAAAAAAAQAB/wEAAAAAAQD/AAEBAAAAAQAA/wAAAAAAAAEAAAAAAAAAAAABAP8A/gD/AP//AAABAAAAAP8AAAD/AAEA/wD/Af//AAAAAP///wAAAP//AAAB//8AAAAAAAD/AAAAAP8AAQEA//8AAAD///8BAAAAAP//AAAAAAD//wABAAD//wAA//8AAQAAAAIAAP8BAQAAAAAAAP//AQIBAgAB//8AAAAB/wD///7//wABAP//AQEBAAAAAAEAAP8AAAAAAAEB///+AAAAAP8AAAEAAP8BAQIBAf4AAQECAAABAP8AAQD/AQEBAAEBAf/+/gADAgMABP//////AAAI/f37CP7++P71//7+AAL9+fr7//8A+/r7AgMD/wMD/QL9AwP8AwQFAgICAP8AAP8AAQEB/v38/f7+AAAB/v3+AwME////AgIEAQH++/v7/AEB/fv7AQD///////7++/j4Af/+AQEA/v7+BQYG+vj4/f3+/wEDAAAA/wMEAAID/P389PPx/Pv8Bfn5BgkJCQwQAAIDCAYH/f7+/v4BAQEBBAUFAQIB/f39AQEBAQAB/v/+/v39//8AAP//AQIB/f7+/gD+AP7+AAAAAgIC///+/wD9/v37/f38+vv5+ff3/v78AAEBAgIEBgUGBAUFBQYFBgYE/v8I/v///v3+/f38/v7++/v79/j3+/v8+Pj68fHw8vHx8fHy8/P08/T0/Pz9AQEBAQEBBAMEAgL//wD///7//f79/v/////++/f39/b3AAEBAP8B7u7vAgIBAQABAAD//wAAAgICAwMDAwMCAQAF/f7+/Pz8//7+////AAAAAP///wEAAAD//wAAAQD//wAAAAD/AAAAAAAAAf8A/wAAAQD//wAA/wAAAAAAAP/+/wAB/wABAAD/AQAB//8AAAABAAH/AP//AAEA//8BAAH/////AAAAAf8A/wABAAAAAP8AAP8AAP8A//8ABAAA/wAAAP///wABAQH/AAABAP8AAAEAAP//AQAB/wH/AQABAQAAAP8AAAD/AAEAAQABAAEA/wAAAQABAAD/AAEAAP///wABAAAAAP//AAEBAAEAAf8AAP8AAAAAAAAAAAABAQAA/wEAAP8A/wD//wAA/wD//wABAQAAAAEAAP4AAAEAAAEA/wAAAQD/AAEAAP7/AAEAAAAAAQABAQAA/wD/AP///wABAAAAAAEAAP8A/wH+AP8AAAAAAAEAAAAAAAEAAf//AAAA/wECAQD/AAABAAD//wABAAAAAAEAAQH/AP8BAQEAAP8A/wMAA/8B//8BAf//AAABAQD/AgEBAv7+/QAA/wAAAP8BAgL//gAAAP8AAgEA/gECAgEEBAUAAAD//wYI/wAAAf///v///P7//gQE//z7+////wP/BP///gAA/AYGAP///wIBAQIDAwH/Av7+//z8/P//AAUFBgD///z6+f//AAQF///+/vz6+AMDBP37+//+/QICAgIAAAICAQD/Av79/Pv8/P7+/fz9/f7+/f7/BP8CAv3//gIA/gD+/QUFBf3+/P31/Pv7+fz7/QQHCf8J/wAA/wAAAAMEBPz8+wICAfz9/gQDBAEBAP79/Pz9/fz7+wQDA/3+/QICAvz7+v///gAA/wIBAf///P8A/QAA/vz7+/z9/gABAAABAPz7+vv79vQAAAEAAQMEA/38/gEBAgQFBQH/AP4BAAUEBf8BAQEBAgAA/AAAAAQEBggIDAAABQAABPb2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AAAAAAAAAP8AAAEBAQAAAAEB/wAAAP//AP///wAA/wAAAP///wAAAAD/AP8AAQAA/wAA/wD/AAAAAQABAAD/AAABAQAAAAABAAAAAgAA/wD/AAAA/wAAAf/+AAAAAQEAAP8AAAAAAAD//gAAAQEAAAABAP//AAEBAAH/AAAAAAAA////AAAAAAAAAAH/AAEBAf///v//AP7+/wEBAAAAAQEBAAACAv///wIAAP8AAP8AAAEA/wAAAQECAQEBAf/+//8BAf8A/wH///7//QECAwD+/v4A/QD/AQECAQD/AQICAwMDBP8FBgb//////v7+/f39/AD//wEAAPv8+gD//P0DBAMDBP///wEAAP7//////v39+//9/f78+wEBAwUFBQQEB/7/AAEA/wAAAPz8/AH/AP8B///9//z5+v/9/fv6+fr39/j29Pn4+Pv3+f/+/gACAvv8+wIA/wAA/v8AAAICAv4A/v///wYGBwD///37+vn39gABAQQEBAEAAP7//wH/Av39/fz9/AQDBAAB/wD+/gcHBvv7+vz7+AMDAvn6+/n5+QUHBwMCA/r6//X09wgKCBYXGvb18vj49vz6/AABAPz9+/v8+wUEBgcHCQYJB///AAYICgwLDAMEAwYFBgQFBAMCAgIDAwECAQQEBQABAgICAgIBAgABAQ0ADAD+/xsaGf39/fT19urq6tjY2M3Nzdva2fb29f79/v///wABAQAAAAAAAP8A/wAAAAAAAAAAAAAAAAD///8AAQD/AAAAAAAA/wABAQAAAAAB//7+/wEAAAAAAAACAgAA/wD+/QAAAQEA//8AAAAAAQAB/gD/AAABAAD//wAA////AAAAAAAAAAAA/wAAAQAA/wAA/wD/AAEAAAABAAH/Af8BAAD/AAEAAP8BAP///wAAAQABAAAAAAAAAP8AAAQBAP///wABAAEAAQAAAQEAAAAB/gD+Af8BAAAA/wAAAAAAAAABAAAAAQAAAAH//wEBAQAAAAEAAQAB/v/+AAABAAABAAD/AAECAAD/AAAAAAAAAAD/AAEAAP//AAAAAAAAAAEA//8AAAD///8AAAH/AP4BAAEAAAAAAAAAAP8A/wABAAD//wABAAEAAAAAAAAAAAH/AP8AAAAAAP8AAAAAAP8AAAEAAP8B/wAAAAH/AQAAAAAA////AAEA/v//AAABAAEAAf8AAP8AAAH/AP8AAAH///8B/wAAAAABAQEAAQAB/wAAAgIB/wAAAAD///4BAAIA//////4B////AQIAAP8CAgL/AP7/Af/+//8CAAD/AQACAgEB/wL/Af3+/gH+//8B/f0BAgIEAwUABf4E/wgH/v3+/v4BAQECA/f39/b6+/v+/v0EAP8CAQIDAwQFAwQCAgP+/P0AAAD7/PsA//v6+vkDA/gA/wAB/f/8/Pz+/f7///8AAAH8/fz+/P3//f3//f79+/r59vj8+vn9+/wDBAP7+/v19PUGCQgCBAQGAgP9+/sAAgIA/v78+vkCBAX+///8+fgFBQT9//3+//8BAAD7/v8EBAT+//76/PsCAgD//f0DBAQCAQH6+fj8/foFBAMA/v3x7/MKDAwCAQUAAgDx7+3/AQEMDQ0KDAX+/v4BAAD29fb9/P4EBQUHCQkFBgYKCgsFBgcGBgcEBAQEAwMCAwICAQEAAgIDAgMBAgEBAAEBAwL//wABAP8AAQEBAwIEAwP/BQUFBgULDAsUFBQTExMICAjU1dT08vMA//////4AAAAB//8BAAH/AAABAAD/AAAAAP8AAAEBAP//AQAA/wD/AAAA//8AAAAAAAAAAQAAAAD//wH//f4BAAAAAAIAAP//AAAAAf8A//8A/wEAAP8B/wD/AAH/AAAAAP8AAAAA/wD/AAABAP8A/wAB/wEAAQAA/////wAAAAABAAD/AAAAAAEA//8AAAEAAP8A/wH/AQAAAP8A/wAE/wEAAP8A///+AAEBAf8A/wABAQEAAf8BAAAAAAEA/wAAAQAA/wAAAQABAAEAAQD/AAAAAP8BAAD//wAAAgAAAAAA/wEAAAAA/wEBAf//AAAAAAAAAQAA/wABAQD//wAAAAD//wAAAAAAAAABAQEAAP8AAAAAAAABAAD/AAAA/wAAAP8AAQAA/wD/AAAAAQAAAQEB//8A//////8AAQAAAQAA/gD+Af8B/wEAAP8AAQAAAAAAAAEAAQAAAAABAQEAAAD/AP8AAAEB//8AAQAAAQEBAf///wICAf7//wH/AQECAAAAAQEA///////+AAABAQABAAEAAQED////Af/+AAEBAAAAAf8C/wD/AAD//wMBAAD/AAACAAAA/PwAAAAB//7+AgIDBAEB/gIC/v//AwP/BQf//v8A/wD//v//Bv/9/P39/f39/Pr6BQYG/wH/AgEABQUFAQUG/v3+/gT+//7//fz8AAD+/vz9AP4A/fv8/v79AAAA/fz9//7/////AAD/////AAABBgcHAwMCAAAB/f39+fn6+Pv7Bfn4BAcHDAIB/f78//8ABgcI+vr4A///AgMDAQEA+Pf1BAQF////AAAA///9+P8AAwQD/v39AAD/AP//AAAABQYGBAQDAQEA9vb1BQUGCAgI+Pj3///2AwMEBAQF/wD/8vHwBAQECQgJAQIDDg8SAwMDAQEBAwQEBQQEBQcGBQUFBQUEBAQDAAABAwMDAQEBAQEBAwICAAEBAgMCAAAA/wH/AQACAAAAAQAAAAEAAgABAgIEAQECBBERLCwsDA0MFxcXysrK6enp/fz7AP7//wAAAQAAAQAAAP//AAEAAAABAAD///8AAAD/AP8AAAEBAAAAAAEAAP8AAP8A/wEBAgEA/gAB/wD/AP8AAAAAAP8AAQEA/wEBAP//AAAB/wD+/wAAAQAA/wAAAAAAAAABAQD/AAAAAAAAAQAA/wAA/wEAAP8AAAAAAAAAAAAAAAD/AAAAAAAAAAABAP8AAAEA//8A/wD/BAEAAP8AAAAAAAD+Af8BAAAA/wABAgAB/wAAAAAAAAEAAQAA/wAAAP///wEAAP8AAAEAAf8B/wEBAQH///8AAAD/////AQIB/wEAAQAAAQAA/wAAAf8AAAD/////AAAB////AAAAAAAAAAEB/wD/AAD/AQAB/wD/AAABAf///wEAAAAAAAAA/wEAAf8AAP/////+/wAAAAAB/wEAAAD/AP8AAAAA//8AAAD/AAABAAH/AAABAQD/AQAAAAAB/wEAAQAAAf8B/wH/AQAA//8AAAD/AAEAAQD/AAECAQAAAAEAAAABAAD/AAAAAQEBAgEBAAD/AAABAQEAAf/+/v8BAgD///8A/wABAQEAAAIAAP8BAQAA////AAD//wMCAgEAAAADBf//AAH//QAAAAMDA/4EAwABBv/+/wD//wAAAQAAAP39//f19P///v38/P3+/gcGCAYGBwEAAQQFAf78/f7+/QMEAv7+/wAFBQH/AQYJ//7+/gH+//z7/P37/f/////+/v0C/P8EBf7+/QD+/QYHB/r5+QECAP7///3+/fj29v7+/QQHBQECA/n3+QoN/QUH/QABAQMEA/7+/wIDAwIDAf///wAA//r7+gUGBQAAAQEBAAMEBAH/AAAA/f79BAMEBAMDBPz8/AMDAwUFB/r6+fz7/Pz8/QYIBwsKCwQEBQEBAQcHBwIDAgUEBgUFBQEBBAMEAQEBAgUEBQEBAAD//wIDAQAA/wAAAAAAAAAA/gAAAQD/AAECAQEAAf///wIBAf8AAAIAAAEAAP4AAAMDAgECAQ8PDicnJwsNDQUHBsjIyebl5f77+wD/AP8A/wH/AP8BAAAA/wAAAf8AAAABAQD/AAABAAAAAAAAAAD/AAAAAAAA/wD/AP4AAP7//wEAAP8A/wD//wABAP//AQEA//8BAAH///8AAQD//wAAAAEBAf///gEBAf8AAAD/AAD/AAABAAD/AAEAAP8AAAAA/wAAAAAAAAAAAQAB/wD/AAAA//8BAAIAAQAAAAD/AAT//wAAAAD///8AAf8BAAEAAQD/AP4AAAAA/wEAAAAAAP4BAQEAAAAAAQAAAAAAAAAAAQABAAEAAAD/AQAA////AAAAAP/+AAAC//8BAgEAAAEA//8AAQD/AAABAQD//wEBAP//AAAAAAL///8BAP8AAAAA/wAAAAAB/wD/AAAA/wD/Af8BAAH//wAAAAD/AAAAAAD///8BAAD//wD/AAAB//8AAQEAAP8AAAEA/wAAAQAAAAAAAAABAQEAAAAAAAD///8AAAH/AAD/AP8BAAAAAQAAAAABAP8AAAAAAAAAAP7/AAEBAQEBAAABAQH//wAAAQABAAAA////AAABAQEAAQABAAEA////AQEA//4A/wD///8BAAD/AgEA/wQBAv0C/wEDBAD+/QH//v8CAgMCBAQAAAH/BgAAAQAAAAEAAAH+/f7//v76+Pj7/PoBAAIGBAb///8BAQEAAAEEBQX/AAT+/v79/v7+/f0AAAEC/wID//////8CBgYB/v/9/P0A///++/39/f3//f3//v4JAQD5+vv9/Pr///79/v38/v38/vv7+foAAQL3/Pb7/PsHCQkDBAQBAgL///4FBgYAAQD+/v0BAwP///4BAf8CAgICAgL8+/4CAQL+//0GBgf9/vwGBgf//v/9/v8CAAEKCgz7+/v7/f0EAwYDBAUFBgcFBQQDAwMGBQYGBwcCAQIBAgIFBQb/AP8DAgIAAP8BAQEBAgICAgEBAAH/AP7+AAECAAD///8B/wABAQABAAD//wABAQAAAAD/AP8AAP8AAAEDAgICBgQAAgEcHBw9Pz8BAwPEwMHp6On8/fwB/wH/Af8A/wD/AAAAAP8AAAAAAP8AAQAA/wAAAAAAAQAA/wAAAAAAAAEAAP8AAAABAAAAAAAAAAAAAQEA////AP8AAQAA/wD/AAEAAP8BAAH/AP///wAAAAH/AAAA/wEA/wAAAf//AAAAAP//AAAAAAAAAAH/AAAAAf8A/wABAAD/AAAAAAEBAAD/AAEBAP////8E//7+AAEBAAAB////AAEBAQAAAAAAAP8AAAH/AAAA/wABAP//AAEAAQABAAAAAQEAAAAA/wD/AP8AAAAAAAAAAAAAAf8AAAEAAAD/AP4A/wEAAQAAAP8AAQAAAAAAAAD/AAAAAQAA/wD/AAAA/wABAAH/AAABAP//AAEBAP8AAAEAAQAAAAABAAD/AAAAAQAA//8AAAAA//8AAAAAAAAA/wEBAQAAAAABAQEBAAAAAAAAAQEAAAABAAAAAAABAAAAAAH/AP//AAAAAQEAAAEBAgEA/wD///4AAAD/AAAA/wAAAQAAAAAAAAAA/wAAAAEAAP///wEBAQEAAv8BAAD/AAABAQAA/wAAAAAA/v8AAQEAAAECAAAAAP//AQH/AQEC/wAAAwEA/wD+Av8DAwD//wD+/QD///8EAP///wYA/wABAP8AAAAAAP7//fj4AAAA+fr5AgIDBQYHAgECAgIDAQMBAAD//v3+/f79//8A//4AAgIDAP///v7/AP7+Afz8AP3//wT+BwID/vz9/f39/v7//gL5Bf8IAP79+/77A/37AfsC/P7+AQEB/f7++Pj4AwMC/vz8/gD//wEA/v78AgICAQEC/vz9BwgH//7//f/+AAEBAQAAAAEA/f39+/r5AwUE+/wBCAgKAf4A//4AAQACCQkLCwIC/f79BgUHBwcHAgICBwYGBAUFBAMDBAQFAAEAAQEAAwEDAQIB//7+AgICAgECAQEBAQEBAQADAAAAAQEBAQEBAAAA//8AAQEB////AQD//wABAAEBAAAAAP//AAD+/v3/AQEBBgUFExISKikp6uno9vj38e/wAP//AP7//wEAAP8AAAEAAAABAP///wAAAQAA/wD/Af8B/wD/AQAAAAAA/wAAAAAAAAEAAP8AAAAAAAABAAD/AAAAAP4AAAEBAAD+AP8AAAH/AP8AAQEA//8AAAAAAAAAAAEAAAABAP///wABAAD/AAAAAAAAAQAA//8A/wAAAQABAAD/AAAAAAAAAAD///8BAQH/BAABAAAAAAAAAAAAAP///////wIBAf8AAAAAAQD//wEA/wABAQIAAQAA/wAAAf///wABAQD/AAEBAP8A/wAAAAAAAP8BAAD+/wECAQABAAEAAAAAAQD//wABAP///wAAAAAAAAD/AAAAAAEAAP8A/wAAAAD/AAAAAf///wEBAQD//wAAAf///wAAAAAA////AAABAQEAAf////8AAAEAAAAAAAAAAAAAAP//AAEBAP//AAABAAAA/wD/AAABAQD//wAAAAAAAAAAAP8AAAL/AAAB/////wECAQD/AQEBAQAAAP//////AAAA/wEAAQAA//8BAAH///8AAAEAAP8AAAEBAf4A/wAAAf///wIBAv7//wEBAQH///8BAAACAv///wICAP4A/wMABQH/AAAAAAAA/////gIC//8D/wQF/wAA/wD///8A/gAAAP8AAfj5+P////n6+gACAgMHAwIDAgABAAEBAgICAwL/BP//APv7/QQEBAD///7//wD+//8BAQED/gIBAwICA/v5+wH9/v///gMGBvz7+v///gD7AwL+BP8CAQD7+/8A/wYHAvz7+gABAAABAAEBAQEBAAEAAf//AAECAQUEBP39/gMFBAAA////AAIBAgICAwD/AP8A/////////vr6+wgICgUGB/z9/QICAgICAwcJCgICAQIDAgYFBwECAQABAQECBAAAAAMCAwIDAwEBAQAA/wEDBAEBAQAAAAAAAP8A/wEAAQAAAQAAAAAA/wAAAQD//wABAAIBAf///gAAAAEBAQAAAQAB//7+/gABAAH/AAMDAgkJCB0eHTU3N/j399bV1fXz9f3+/gAAAAAAAAH/AP8B/wABAAH//wABAQEAAAD/AAEAAP8A/wAAAQAA/wEAAf//AP8A/wAAAAD//gD/AAAAAAAAAAD/AAAAAf8B/wD/AAD///8AAQABAQH///8BAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAA/wABAAH/AAAAAAABAAD/AAAA/wD/AQAAAAAAAAQAAAEA/wD/AAAAAP8BAP8AAQD+/wAAAQAB/wD/AQAB/wEAAAD/AAAAAAAA//8BAAH/AP8BAAD/AAEA/wD//wABAQAAAAAAAQH/AAAB//8AAAEAAf8AAQD///8AAAAA/wAAAf//AAAAAQABAAEA/wAAAP//AAAAAAAAAAAA/////wD/AP8BAAAAAAH///////8BAQH/AAABAAAAAAAAAAAAAAAAAQAA/wAAAf8AAAEBAgABAAEAAAD/AP8AAP8AAAABAQL/AAABAP8BAP//AAD///4AAAEA//8AAQEAAAAAAAEBAf8AAAD/AAAAAAD//wAAAAD/AAABAAAAAQAB/wEBAAABAQH/AAAAAP//AAEBAAAAAP//AQABAQECAAH///8A/wAA/wABAv4BBAQBAgEAAAD9/v4D/v///v3/AgIBAwMEBgYG/wr//v/+/wAAAQL////9/f39/fz/AAD9AP8B/wEDAgEBAQMCAP4AAAICAgQAAAH+/fwBAAABAwIFAQIBAAD+/P4CAwQD/gAFCAP+/f7/AP4E/Qb8+/sAAwIEAP4BBQQC+Pj6/PoDAAECBAMAAQEBAwMCAQABAgIDBAMBAgIAAgIBAgIAAf/+/v4DBAMBAgIDBAQCBAQEAgX///8BAgIBAQMBAgL8/fwD/gUICAgAAAEDBAQBAP8EBQUCAQIAAf8EBQUFBAQEBAMBAQIBAQABAQACAQEAAQEAAAABAQIAAP8AAAAA/v8AAf//AAEA/wIAAQH//v4BAgIAAAEAAQABAAIAAAAA//8AAAD+//0A/wAAAAEDAgL/AQH//wMODA0aGBgaGxvn5uf39vf9/QAA/wABAQAAAAAB/wAAAAAAAAEAAAD//wAAAP8AAQEB/wAAAAD/AAH//wAAAAAAAAAA/wAAAAEAAP8AAAAAAAAAAAD/AAAB/wD/AAAAAQEA/wAA/wAA/wAAAQAAAAD//wAAAAAAAAAAAAEAAP8AAAAAAAAAAAAAAAAAAP///wABAAAAAAEAAAD/Af//AAEEAAAAAAAAAAH/AAD/AQECAAAAAAAAAP8AAQEBAP8A/wAAAQEBAAAA//4AAQH/AAEAAQAA//8CAAD/AQAAAAAAAAAAAAAAAQAAAAAA/wAAAAEAAQAAAAAAAAEA//8AAQEA//8AAAAAAAAB////AAAB////AQAA/wAA////AQEBAAD/AAAA//8AAAD//wAAAQECAAAAAQAAAAEBAAAAAQD/AAAB/wAAAQD/AQECAAAAAAAAAAEBAAAAAQAAAAAAAAH/AAAAAQAAAQEA/wABAQAAAP8BAAEAAf8AAAABAAAAAAD//wABAQEBAQAB/v/+AQEBAQAB///+AQEAAAABAQIAAAAAAAAAAQH/AAACAAD+AQECAP//AAH///8AAQIAAP8AAv4CAQMA/v4AAP8AAAIAAwQABf//AP///v/+/v//AgP+AAAABf///////wAAAwME+Pf4AQH7///+/f38AwQGAgMDAAEAAQIAAQADAP8B/QH+/wABAwYGAgEC//7/AQEC/v39/gP+/vz9AgUEBwcJ/Pv5/f79AgUFBAcG//YA/v7+CAUFAwUFBvz8/wAA/f38/v78AgID/v7+AQIBAAIBAQMDAwMEAAIBAgICAAEBAgIDAQMCAQICAQICAwQFAQEBAQMCAgIEAgIDBQUGAQID//4BBgcGBAYFAQAA/v/8AwMCAgD/AQD+AQH/AAEAAQEBAQEBAQAA/v/+AP8AAgIC///+AQEAAAABAAEBAAEBAAD//v7/AQD+//7+AgAAAwMBAQAD/wH/AQAA/v79////AAAA//8AAQEB/gD+AP4BAQEAAwUCERMSKSoq5ubm8PDw8/z9/v79AP//AAAB/wH/AP8AAAAAAAAAAAAAAAEAAAD/AAAAAAAAAAD/AAAAAAEBAP8A/wAAAP//AAAAAAAB/wAAAQD/Af8A/wEAAAAAAAAAAP8AAQH//wAAAAD/AAABAQEAAP8A/wAAAAD/AAEAAP///wAAAP8AAAEAAP8AAQEAAAD///8BAAAAAQAA/wD/BAEAAf8A/wH/AAABAQAAAAAAAAAAAAAAAf///wAAAQEBAf//AAAAAQEA/wAAAv8AAAAAAAEB/wD/AP8BAAABAP///wAAAQECAQAAAAAAAAD///8BAAAAAQD/AAEAAAAAAAAAAAAAAP///wEAAP8A/gAAAP//AAAA/wAAAQD/AQAAAAEAAP8A/wAA/wEAAQAAAP8A/wH/AP8BAQEA/wABAQD/AAEAAAABAf8A/wEAAQAAAQEAAAEBAQABAf7//gD/AQEBAQAAAAAAAAEBAP///wEBAf8BAAEBAf8AAAD+AQABAAAAAP8A/wAAAAEAAAAAAQAB/wEBAQEAAQD//wAAAAEBAP//AAAAAQICAAAAA/7+/wECAQD/AAAB//8AAP////8A////AQD/AP8CAAL/AAAAAf8AAP7//v3+/gP/AAABAPwAAAP/BQX+/wD+AQD/Av//APr6APr7+vf4+AICBAICBwICAwEBAwABAf/+AAABAAEAAQEAAwICAv4C///9/gECAgH/AAMFAgEBAP4B//8CAQECBAIBAQEBAPj6+QL9/f8AAgcGBfz9/P79/gT//v79/AQEBP/+/vz8+wMDAgIEBQIDAgICAwEBAQIEA///AAABAAECAwICBAICBAQFBAIDAwICBAIDBAQDBAQEBAEBAgEBAQH//wMEAgP/AgD/+wAABQAA//////79/QEDAQICA//+//7//gEBAQABAQABAQAAAQEBAQAAAQEA/wAAAAEBAQD//v7+/f8A/v8A/wMCAAECAf7+//////7+/QEBAAEAAv7+/gH/Av8B//7+/wD//ggGBg4ODhQVFQkJCPb09P7+/QAAAP///wABAAABAAD/AAAAAAAAAAD/AAAAAQAA/wAAAQD/AAAB/////wD//wEAAf8BAQD//wAB/wH/AP8AAAABAAEAAP//AQAA/wEAAP//AAD/AAAAAQAAAAAAAf8BAAH/////AAABAQABAAH/AP8B/wD//wAAAAAAAf8AAAAAAAAAAAAA/wAAAgQAAQAA/wD/Af8BAAD//wABAQEBAQH//wAAAAAAAQAAAAAA//8AAQD/AAEBAAAA/wEAAAH/AAABAQAA/wABAP//AAAAAP///wAAAAAAAQEBAAAA/wAAAP8BAAD/AP//AAAAAQAA/wAAAAAAAAAB/wD/AAAAAQAAAAAB/wEAAP8AAP8A/wAAAAAAAAEAAAAAAAABAAEAAQAA////AQEB/wEAAP8AAAEBAP8AAAEAAAEAAP8AAAH///8AAAABAAEBAgAAAAAAAAAA/wD/AAEBAQABAQEA////AAAA/wD/AQACAQEAAP8A/wEAAQAA/wEAAQABAAEAAP8BAAAAAgEAAAAAAAABAQD/AP8AAQEA/wACAgD//wAAAf8A/wEBAf///wEBAgAA/gABAgICAP/+/gEBAQECAgECAwIEBQUBAQAB3dkxfQABAABJREFUAQAAAAAA////BAT//v7/AP4BAgACAgH9/P35+fr0/vMMAQEFBgcEAP8DBAMCBAIB/v/9/v4AAAD9/v8DAwIAAwIAAAD+//sFBQX+/v78+/sDBQT8/Pz/AP8AAAIICAj7+/sBAQH/AP8BAgH8Av0A/wAABQUEBAP//v8GAAgBAwMBAP8AAQECAgL//wABAwMA/wABAQIDBAQFBQYCAgECAwQFBAUCBAUDAwUEBAQDAgIBAQEBAf7+/vwA+/8BAgH7+vkCA/kBAgwA/wACA///AP8A/v39/v76+vgHBwkAAQADAwQAAAEBAQEAAAD+/v////8BAf0AAP//AP7+/QAAAP///v8CAgIBAAD+//4A///+AAAA//0AAQIBAgMA/wAA//0A/wACAgENDg0PEA8FBgcDAwP8/Pv+AAEAAAAAAAAA////AAABAAABAQH///8AAP8AAAAAAAAAAAAA/wAAAAD/AAAAAf8A/wH/AQAA/wAAAP8AAAEAAP////8AAAAA/wD/AP8AAAAAAAAAAAAAAP8AAAEAAP//AQAAAAAA//8AAQAAAAAB/wD+AAEBAP8AAAABAAD/AP8BAQEAAAEBAAAEAAAAAAD///8AAAAAAQEAAAD///8BAAAAAQAA/////wH/AP8A/wACAgEAAAACAAAA///+AQEB/v8AAP//AAAB/wAAAAD/AQEAAQAB////AAEBAAEAAP8A/wAAAP8AAAABAAD/AAAAAQAAAAAA/wAAAAAAAAD/AAAA/wAA/wD/Af8A////AAEBAP///wAAAgEBAAAAAAAAAAEBAQABAAD/AAAAAAAAAAEBAP8AAAIA//8A////AQEBAQD/AAAB/v8AAQEBAQAAAAEAAQEAAAAB////AAACAAD/AAAAAQAAAAAAAQAA/wAAAQEBAAMAAQAA//8AAP8AAAECAAD/AAH/AP8AAAD/AgEBAQAA/wEBAP8BAAH/AAAAAAAA/wABAQH///8AAgEBAAIA/wD/Af8AAQIAAQACAgIEAwQAAgEAAgECAAABAP8AAAABAQEBAAEA/////v39BwcJAQEC/v397/DuCQkLDAwOAQQEAgEBAQMCAwECAQECAwMCAP8AAgMD/f38Av7+AwQEAQD//v/+AQEBAwH//v3+AQMCAf8DAf/////9AgID/P79BAUDAAAAAgMCAwIC/f7+AP//AwQEAAD/AP8BAAEA//8AAQEAAgIDAQEBAgMDAwQEBAQEAgECAwQFBAQGBAQEAgMDAgIA//7+//7//f36/f78BAQDAwL//f37/fv4AP/+AgD+/v79AAMD/P38/v39AAH/AQEBAQICAQEB/wAAAgEBAAAAAgIBAQEA/v7+///+///9/PwCAQH8Af8AAgMEAQECAQEB//3/////AgMC/v79AP8AAAD/AQAAAQABBAIDDw4RERES8e7v+/z7//3+///+Af8AAAABAAD/AAAAAAAAAQAA/wAAAAAA////AAAAAAABAP//AQAB//8AAAD/AP8AAAAAAAABAAAA//8B////AQEAAAEAAf8B/wD/AAD/AAABAAABAAD/AQAA//8AAAABAAD/AP8AAAD/AAEBAv///wAAAAD/AAAAAQAAAAAAAP8A////ACuB1H4E/f39AQAAAQEAAQABAAD///8BAQD+/wABAAEBAAAA//7/AQEBAQH//wABAP/+AQECAAEA/wAAAP//AQAA/wAAAAAAAQEBAAAB/wAAAQEBAQAB//8AAAEAAP///wEAAAAAAQAA//4AAQEA/wAAAAAAAAAAAAAA/wAAAAAAAf///v8AAAAAAf////8AAAEA////AAABAQAAAQEBAAEAAQAB//8BAQH/AAAB/wEAAP//AAAAAQEAAQAA//8BAQAAAQEAAQABAAAAAAAB///+AQEAAQAC/wAAAAAAAAEAAQAA/v//AQABAAH/AAAAAQAA/wAAAQEAAAABAQD/AAEAAAABAAEAAP8B//8AAAEA////AQEBAQAB//8BAAH/Af8AAAEAAAAA/wD/AQABAgECAAMAAP4AAAACAQYFAfsB/f8BAQMCAQABAgICAgIC+wEB/wAA/v7+AP8B/gABAAEC9fXz/v3+9vb0AwIDAwQFBgoIAwME+vr6AAAAAgMD/v7+////AAEBAQMCAwQEAwIBAgMC//79/PwCAgT/BAQEBAUF//b2/f4C/fz7AgMDAAEA//7//wABAgMFAgQA////AAAAAAAAAAAAAQICAQAAAQEBAgIDAwMCAwQEBAIEAgMDAgICAAEBAgL/AAH+AQABAP8BAAD//wD+/Pr5/fv2+AAABwYGAAEB+f/2BgcABAD/AQIG+/78AP/+BgcHBAMEAwMCAgEAAAEAAP8A/v//AgEC/wD////+//7+AAD+//3+AAH+/Pz9///+AwIFAwQE/wABAAABBgUGAQMDAAAAAAAAAQIEAgEA/v78BgUGFRQUICAi/Pv65ubl9vX2/Pv7AAAA//8AAf////8A///+/wD/AAAB//8AAAAAAP///wEAAAAA/wAAAAAAAAAAAQAA/wABAQD/AAAA/wD/AQAAAP8AAAAAAP8AAAEAAAEBAAAAAP8AAAAAAAAAAAD/AAABAAAA/wAAAQABAAAAAAAAAAABAQAA/wAAAAEA//8AAQEAAAAABAD///8BAgEAAP8AAP//AAEA/wEBAQABAAAA////AP8AAAIAAP///wEB/v8AAgD//v//AAEBAQAAAP8AAAAAAAABAAAAAP8AAAEAAAAAAP8B/wD/AAD/AP///wAAAAABAP//AAABAP//AAAAAAEAAP8AAP//AAAAAAD//v7/AQD//wAB////Af8A/wL/AQABAAEBAQD//wEAAP//AP8AAAEBAAAAAQAA/wEAAf///wEBAf//AAD//wEBAQAAAAAAAP///wEBAQAAAAD/Af///wAAAAABAAEAAQAAAAEBAAIAAAAAAAABAQAAAf8A/wAAAP8AAAEBAAAAAf///wEBAAD/AAABAAEAAAAAAAABAQD//wABAQEAAAABAgAA/wD/AAEBAP8AAP8AAAICAgD//wAAAgAABAH//f8EAAEAAf0AAf8BAAMAAAAA//8AAAD/Af8G////AAb//wEAAf4A/gMEAvj4+fb29gYHCAwODwAAAgABAQMCA////wD/AAECAv79/f/+//r7+gMEBQUFB/v6+AMEAgEBAQMDBAQFAP39APz7+v39/QAB/wEBAAQEAv39//3+/gICAgIDBAD//wICAgAAAAAAAAICAgEAAQEDAQICAgMCAgUGBgICAgMCAgABAQEBAf/+//7//gIEAgEBAQMBA/v6+Pz59wD//gD9+wICA/wDAgIBAQQDA/3++gD//gMEBAD+AP7+////AP7//wIBAv7//gD/AAECAf/////9/P7+/f8A/wEBAf/+/gIBAf//Af/+/f37/wECBAACAv4A/wQA/wIDBAAAAf39/wAB/wMDAgoKChkaGfj5+vz9+vX19fr5+vv7+gEAAQEBAP7//wAAAAAAAAAAAQAAAAEAAP////8BAAAAAAAAAAD/AAAAAAAAAQAAAAAA//8AAAAAAAEBAQAAAP8A/wD/AP8B/wAAAAAAAAAAAAABAP//AAAAAQEBAP4A/wH/AAEBAAD/AAAAAAAAAAAAAAAAAAEA/////wEAAQAAAAAAAAQBAQEAAAABAAAAAAAB/wD/AQAA/wEAAAAAAAAAAAABAQD/AP8A/wH/AAABAQD/AP8BAQEAAP8AAAD//wABAf8AAAAAAAEAAAAAAAAAAP8A/wEAAAD/AP8BAQH///8A//8AAAAAAAAAAQAA/v//AAAAAP8AAAAA/wAAAAAAAP8AAQAA/wAAAAABAP//AAAA/wEAAP8AAAAAAP8AAAEAAAD///8BAQEAAAH//wAAAQH///8BAQAAAQH//wACAgD/AAABAAAAAP8BAAAAAQEAAAEAAAAAAP8AAAEBAAD/////AAEBAAAA/wAAAQAA/wD/Af8AAAEAAAAA/wAAAAAAAAAAAQH///8AAP8AAQAB/wEBAQH/AAEBAQH/AAAAAAABAQAA/wAAAQAAAAAAAAABAAMCAv4BAQH9/QEEAwP+//wAAAAB/QEBAAEAAP/+/wEA/wD/AAABAQECAgQAAQH+//4CAQEDAgX8/fz39/b49/YFBggGBgf9/Pz9/v0A/wH//v0A////AP/8+/z+/gAFBQYBAgX/+/v/Af4BAv4GBQYDBAP+/wMF/wf+/f39/fwEBQgEA/3/AAAAAAABAAAAAgICAgIBAgEDAQMBAgD+/v4EBAQCAgEBAQMAAP8BAQAAAP8BAAABAQECAQABAQABAAADAgIAAf/7+fr8+PcA//359/YCAwIJCgn8BAP6AAECAwQBAgIDAwMAAP8AAP/9/f0FAwP+/v4A/wD/AP79/QD/AP3+//4BAP/+/f39/fwDAQIBAQL9/f0AAAH/AP4GBwQBAQL+/v38/P8DAAEAAAEAAAABAQEDAwMEAAEPDw8fHx739/b3+Pj29/cAAAAAAQH8+vr6+vr+//8AAAAAAAAAAAD/AP8AAAAAAAAA/wAAAAAAAQAA/wAAAAAAAAAAAAABAAD/AP8AAAAAAAABAAD/AAABAQD//wAAAAAAAAAAAAABAAD/AP//AAAB/wH/Af8AAAAAAAAA//8AAAAAAAAAAAAAAAAAAAEAAAAAAAAA/wAEAP8AAAH/AP8B////AAEA//4A/gH+Af8A/wEB/v//AQEA/wECAgIAAAEAAP//AAEBAAAAAP///wEBAQIAAP8AAP8AAAH/AAAA//8BAAAAAAH/AAAAAAABAP8AAAAAAAAAAAAAAP8A////AAEAAP//AAAAAQAAAAEA//8AAP//AP8A/wAAAAD/AQECAAAAAQAAAP8AAAEA//8AAQEAAAAAAAD/AP8AAAAAAQEBAAABAAAAAP8AAAAAAAD///8BAAEAAAABAAAA/wEAAP8AAAAAAAD/AAABAQAA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AQAAAAAAAQAAAAAA/wH/AQABAAD/AAAA/wAAAAEAAP8AAAABAAAAAAAA//8AAAEBAQEAAAAAAAEAAAAAAQAA/v7/AAEAAP8AAAABAAABAQD/AgEAAP4AAf8A/wAAAAAA/wEBAQECAQD+AQABAQICA//+/gECAwH+/wECAwAB/QABAgMDBQAAAQICAwH7Av/+/gAAAAQDBP38+/v8+wD/AAEBAAEBAf/+/v79/P0BAAEAAP79/QECAgIBAgIBAQMBAQEBAQD//wAAAAIDAwEBAQIBAQIDAgMCAgIEAwMEAwQFBgACAwMCAwIDAwIDBAEDAwECAwEBAgECAwEBAgABAQECAv8A/wAAAAQFBgIDBAABAP///v39/P39/f//AAIC//4A//39/fX19QcIBwQFBPz7+/z6+QMCAP0B//38/vv59wQFBQQDAgQEBAMCAwACAf//AAABAAD//v///wEBAvz//f///wAAAP7+/f///wD/AAAAAAACAwIBA/8BAAD+//8AAAIDAgAAAgEBAf8AAAEBAgcHBh0dHRsdHe7t7f38+wAAAQEA/wABAf///gEAAP8A//8AAAAAAAAAAAAAAQEA//8AAAAAAP8AAAAAAAABAQD+//8BAAD/AAAAAP8BAAD//wEBAP//AAAAAAAA/wAAAAH/Af8A/wABAAD//wAAAAD//wAAAAAAAAD/AAAAAAD/AP8AAAT/AP4AAQMA/v/+/v0AAP////8A/wACAwIAAgAA/gAAAf8BAAD/AQAAAAAAAAH///4BAQABAAECAQMAAQABAQAAAAAAAP//AAACAAH/AAAAAP8AAAH/AAEAAAAAAAACAQH//gD/AP8AAAAAAAEAAAAAAf//AAABAAH/AP8AAP8BAAD/AP8BAQEBAQEAAQAAAAD///4CAQEAAAEBAQD/AP8A/wAAAAEAAP//AAAA//8BAQAAAP8AAf///wEBAQEAAP8BAAEAAP8AAAEBAAD/Af8BAAEBAAH//wAAAP//AQEBAQEA/wABAQAAAAD/AAAAAQACAAD/AAD/AQEBAP8AAQAAAAH/AAAAAAACAAD//wAAAQH//wAAAP8BAQL/AP8A///+//8AAP8A/wAA///+AAAAAAABAQEAAAAAAAD/AP8A/////wD/AAEBAQIAAQAB/wABAf4BAQIBAf8BAgIC/wH+Av8A/v4DAgIAAgMBA/8CAQL9AAL///////4BAQH9/AIBAQEBAwMA/v8AAQEBAQECAwIAAAIBAAECAgEBBAEBAQACAgECAQIAAAACAgEBAAIBAQAAAAECAgIBAQEDAwMCAgIDBAMDBAQDBAYAAgEEAwUCAgICAgMBAgMCAgP/AAABAQIBAgEAAQEBAgEC/wL/Av/9/gIHCQv49PD8+/oAAAD///8BAQMCAwABAgEBAgH9/Pv8+wEBAQEAAP8CAgEEBQUBAQEAAP0HBgYGCAkGBwgBAAAAAQIDAQMAAQEBAQAAAQAA/wAA//79//8A//7+/v////7+/f0CAgP/AAECAAD/AwIB/wL/Af8BAAAAAAABAQEAAAEBAAEB/wADAwUWGBcqLSza29j49/UAAP7/AP8A/wAA/wD/AAAAAAEBAAD/Af8B/wD/AAAAAAEBAP//AAAAAQAA/wAB////AQAB/wH/AP8AAP8B/wEAAAD//wAAAAEAAP8AAAEAAf8A//8BAAH/AP8AAAEA//8AAAAAAAH/AAAAAQAAAAAAAAABAAAE//4AAAH+AAH///7/AAEAAQAC//8AAP8A//7/AAEAAQEA//8AAAABAAAAAAD/AAEBAAD/AQEBAQEA/wAB//8AAAEAAQAAAAAAAAEAAP8AAAEBAQEBAP8A/wAAAQIA/wAAAAEAAAAB/wD///8AAAH/AP8AAAD//wAAAQAA/wABAAH/AQAB/v8AAv8AAAEBAP//AAEB/wAAAAD/AAH/AP8AAQEA////AQEB/wD/AAAAAAAAAAABAAABAAAA/wD/AQAAAAEAAAAB/wAAAP//AAAAAAEA/wD/AAH/AAAAAP//AAEBAAIAAAAAAAAAAAAAAQEAAP8AAAABAQAAAQECAAAA/wD/Af///wEBAP8AAQH/AAD/AQAAAQEB/wABAf///wAAAAAA////////AQABAQEA////AQAA/gD/AAAA////AAAAAQAAAAAAAQIC//4AAAD+AQEBAgIBAP8CAAMF/wD8Av4BAgMC//4CAQMDAQH/Afz/AQICAgMEBAAGAQECAgICAgMEA/37//3/AAEAAQEBAAEAAgECAgMDAQIBAwABAAD/AgICAgEB/wABAgABAQICAgIBAP//AwMDAgIDAgMCAgIDAwIDAwQDAgIDAQICAgMEAgIDAQICAQECAAIBAgACAgMCAQECAAABAAECAQEA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AAAAAP8AAQAA/wAE/fz8AQEA/v////8AAgIB/v79AgH/AQICAgEAAAIBAAABAAAAAAAB/wD///7/AAEAAQAB////AQEAAQEDAAEBAAEBAQABAAAAAQAB/wAAAAD//wAAAAEB////AQAAAAEBAQAA/wAA//8AAQAA/wEBAAAAAQEA//8AAf8AAAAAAAD//wABAQAA////AQABAAAAAAAAAAEBAAAAAQAAAP8A/wAAAAEAAP8CAQL/AP8AAAAA////AgEBAAACAAH/AQABAAAAAAEBAQAAAAEBAAD/AQEC/wAAAQAA////Af8BAAEAAP8AAAAAAAD/AAAAAAACAP///wEAAAAAAQAAAQEA/wAAAAAAAQABAQAA////AAAAAAEAAf8AAAEA//////8AAf8A/wAAAAD//v//AP//AAEA//8AAP//AAEBAP//////AP8A/wD+/f3+/fz8/P38AP7//wEB//79////////AQEDBAQC/Pz8AAABAAEBAgME/wIC/v39Af39AgP//wEAAwIEAP8AAAH///7+AQEBAAEAAgAAAAABAAEBAAAAAf8AAQICAgEBAgIB/wAAAgECAwMD/wEAAQABAgMDAwMCAQIDAQABAgIBAgECAQICAAABAgECAAACAQIBAAEC/wABAQECAAECAP8AAQECAQEC/wD/AQD+AAACAQMF/wED+/v7AwIBAQED/f39CgMDCQwL/wAAAQEAAgEB+vr4AQEB+fr5AQEC/wD//fz8AQEC/wH//v77A/0E/v4AAgMB/gIBAQEBAwIDAQMDAgIC/v79AwME/P39/Pr5+/r4AQAB/v4GBQUHAQUBAQMB///+/wECAf7+AAEC/wAB/wD//v7+AQIDAgEBDQ0MExQVCgwNBAUE+fj5AAEAAf8BAAD//wAA/wAAAQAA/wD/AAEAAAAAAf8A/wAAAAAAAQAA/wAAAAAAAP8AAAAAAAAB/wAAAP8AAAAAAAAAAAAAAP8AAAAAAQABAAAAAP//AAD//wEAAAD/AAAAAP8AAAEAAP8AAAD/BP///gABAQEBAf///gD/AAEBAf7//gIAAQAAAAH/AAACAAEAAAD+/wAB/wD/AQAA/wABAQECAgEBAf8A/wIAAgEAAf8AAAAAAQABAAD/AAAAAAABAAABAQEA////AP8AAAD//wAA//8AAAEAAAEAAf8A///+AAAAAAABAQAAAAAAAAIBAQAAAQAB/gD/AAABAQEAAP///gAAAAAAAAAAAAAAAQD//wAA/wD/AQAA/wAAAQAB////AAICAP8AAf8AAAEAAQECAgD//gAAAQEAAQABAAIAAf///wEBAP8AAAEAAAACAQAAAAABAf///wAA/wAA/wD/AQAA//8BAQAAAQEA//8AAAAAAP8A/wABAAD/AAD/AP8BAP8AAP//AAEAAQACAAAAAP//AAH+AAAAAf///wD//wAA/wD+//8AAAD///8A///+/v79/P7+/QEAAQECAf4A/wEBAv8B/wEBAf7+/v39/QABAAABAQICBAEBA/39/f39/gEDAv//AwIBAQEAAQIBAgAAAf///gD/AP8A/gAA/wEAAQEA/wAAAAEAAQEBAQICAgEBAAABAQECAQIDBAIBAgABAAICAwICAgIBAwECAQEBAQEBAQEBAgEBAQAAAQABAAABAgEAAQEBAgAAAQEBAQD/AAAAAQAAAAH/Af8AAgEAAgcGCwUFCfb87/7+/QECAAABAv39/fv6+/7//QICAPn5+Pr7+vr5+gUEBAACAfX39QQEBQEDBQEBAAEAAfr/+QQEBAECBQIABAICAgABAf/+/v7//QAAAQIBAAD//////v/+/AD+//8BAf0BBAEC/QQDA////wH+AAACAQEBAf/+AP///wD/AP7+/v//AAYGBSMjI+Pi4uvp5/T09P/+AAAA/wABAP//AAEAAP8AAAD/AQAA/wAAAP8BAAD/AAH/AAABAAD/AAAAAAAB/wD/AAAAAAD//wAAAAAAAAAA/wD/AAAAAAAAAP8AAAEAAP8AAAEAAP//AAAAAAAAAAABAAAAAAAAAP8BAQT9/fwA/wD+/f8BAQEAAgMDAgICAgICAQH//wD///8B//8A/wD+AAABAAH///4AAAEAAgEA////AQECAQIAAQIAAAABAAAAAP8AAAEAAf8A/wAAAAAA/////wAAAf8A/wAAAQABAAEB/wD/AAAA/wABAAH/AP8BAgEAAAAAAAEAAP8BAQH///8BAAEAAQAAAAAAAAABAQEAAP///wD//wAAAAAAAAAAAP8B/wAAAQAAAP8BAAAAAP/+//8BAQIBAQEBAQEA//8AAAEAAAEAAQACAAH/AAABAQH/AAAB/wAAAAAAAAAAAQEAAP8CAQH/AAAAAQIAAP8AAAEAAAAAAP8BAgEA/wEA//4AAQEA/wAAAQD/AP8A/wAAAf8BAgABAAEAAAEA//7//wAAAQAAAP////////////8BAAD/AAAA//8AAP////7///8CAgIAAAD+/v4A/gH/AAAAAAH///7//wD//wD+/gAAAAAAAQH//wAAAAECAgP+/gACAAAAAgMAAAEBAQEAAAABAAMA/v7/AAIAAP4AAAABAAEBAQABAQIBAQECAgEAAAECAQEAAQIBAQEBAgICAgMBAAEBAQEBAQICAgMBAAEBAgEBAQEBAgIBAQEAAAAAAAEAAAEAAQAA/wIA/wEBAQEAAAAAAAD/AAH/AP8BAQIDBAUKDQ/9+fb07+r++voCAwT9CPz4+PgGBwT9/f7+//4AAQH//wD+/gYAAAD+/PsB/gABBP8DAwMBAQL///4DAQUA//////7//gD6/PsAAAAEBAQAAP/9/f4BAAECAQH//v/+/v0B/fsBAgT+/gUA/wAAAP8AAf//AAAA/wAAAP8BAQH+Af7////+/v8A//8FBgUTEhESERL18vL39/f+/v8AAAABAP8AAAABAAH/Af8AAAAAAAAA/wAAAAAAAQEAAAAAAP8AAAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA/wAAAAABAAAA//8AAAD/AAABAAD/AAEAAAAAAP8AAAH/Af4B/wEE/v79AQAB////AP8A/gEAAf8AAv8A/wADAgAAAAD//v7+AAABAgEB/v7+AAAAAQEAAf///wECAQABAAEBAAD//wABAAEAAgABAAEAAAAB/wAAAQAA////AAAAAP8BAP//AAD//v8AAQEBAP//AAAAAAAAAAEAAQD/AAACAAEAAP8BAAD/AAAAAAAAAAEAAP8AAAAAAAAAAP8BAAEAAQD/AP8AAAEC///+AAEAAAEBAQAB/wD/AAEAAQAAAAAAAAAA/wD/AAABAQAAAQEBAQEA/wAAAAAAAAAAAQABAAH//wAA/wEAAQAAAQAAAAEBAP//AQAA/wAAAAAAAAAAAP8B/wAAAAD/AAAAAAABAQEA/wD/AQAA/wAAAQABAAABAAD/AAD///8A/wD/AP7+/wAAAP8AAAEB//7+/wEBAf8A/wAB///+//8BAQAC/gD+//7///8AAAEBAQAC////AQEAAAH+/f7+/v39/f7///8A/f7+AAAA/wABAgIDAAAB//8AAQEBAQAA/wAA//7+AQEDAQH///8CAQAAAgICAAEAAgICAAEBAQAAAQEBAgECAQEBAQICAQEAAQECAwIDAAEBAQEBAQACAQIBAAAAAAEBAQEB/wABAQEAAQEDAQEA//8BAAEAAQECAAAAAAAAAAABAAD/AQAC/wH///8B//8B+/z7+/n3BQUGAQEC+vr6BQEC/fwCBQUD+vj3BQUGAgAA/v39BAQE+/7/Av/+Avz8AgEB/wMA/v7+9vj3CgoL/fz8/QEBAAH/AQIC/v/+/v39////AgMEAgIEAAEB/f7+A//////+AP/+/v38AQIEAAABAAD+AAIB/v///////v7+//7//v8B+fn67Ovq5eXl+Pn4AAEB////AP///wEAAAEAAP8AAAD/AAAAAAAAAAD/AAD//wAAAf//AAABAAAAAAAAAAEAAP8A////AAAAAAAAAAAA//8BAQD//wAAAAAAAAAA/wEBAAD/AP8A/wEAAf8A/wD/AAAAAAD/Af8B/wEABP///gD9Af7+/QAAAQAAAAD+//4CAwQBAwD//f//AQICAgIDA/3+/f8AAAIBAgEAAQAAAAEBAAEAAAAAAQEBAQEBAP//AP8BAAAAAAEAAQEBAP/+/gAA/wAAAP//AP///wD/AAEBAAD//wAAAAAAAQAA/wD/AP8AAAEB/wD/AQAAAP//AAABAAD/AAAAAAAAAAABAAD/AQAB/wEAAAAAAf8C/wD//wEBAAD/Af//AAABAAABAQAA//8AAAEBAAABAQEAAAABAAABAQABAP//AAAAAAEAAAAAAQAB/wD/AQABAAEAAAABAAAAAQAA/wEBAQAA/wD/AAAAAAABAAEAAP8AAAEAAAAAAAD//wEBAQAAAQABAAD/AAABAAAAAP7+/wAAAAAAAAEAAf4BAgD//gACAQD+/wAAAAD/AP7/AP/+/v3+AP//AAAAAf//Af7+/v///wEAAf8A/wAA//8AAP79/gD/AAEBAv/+/QEBAQEBAQEAAQADA/7//gD/AQEA/wAA//4A/wH/AAECAgAAAAAAAQICAQICAgAAAAEBAQMBAf8AAQEBAAEBAgICAQEBAAIDAwAA/wIBAwECAgEAAQABAAABAgECAQABAAAAAQAAAgEBAQAAAAEAAP//AAAAAAEAAf//AAEBAQAAAAIBAf4AAAD//wL/Af8CBAgJDQkKD/gI8AIA/vv8/QEB+AIDAvsB/wIDBgQDBPz7+wIBAwQFAv/9/wQDBP///wMEAwICAfv7/AAA/wUGB////f7+/gECAgYGBwD///7+/gABAQEBAgD/AQECAQQFBgEAAQIDBAEBAf39/AECBAMBAwAA///+/QH///4AAf/+//7////+//7+/vn5+O7t7evr6vPz8wIBAQMDA/z//gEAAP///wAAAP8A/wAAAQH///8A/wAAAAH/AAABAf8A/wD/AAAA/wD/AP//AAEBAP8AAAD/AAAA/wABAP//AAEBAP8AAQD//wEAAP//AAD/AAABAP8A/wAAAQD//wAAAAAAAAH/AAQA/v/9//0AAAEBAQH9/Pz+AQIAAf0AAAACAgIDBAYBAgP+//8AAQECAAIBAQAAAAD/////AAEAAAIB//8AAAD/AQIAAf8AAAABAAEAAP8AAAH/AAABAAD//QAAAf8A//8AAQEA//8AAQEAAAABAP//AAABAQABAAEBAQH//wAAAf8BAAEAAAAAAQAAAAEAAf8AAP//AQEAAAEBAP//AAABAAEAAAD/AAABAgH//v//AAACAAAAAQEAAQABAAAAAf8AAQEAAAAAAP//AAAAAQEA/////wABAQABAAAAAQAAAAAAAAAA/wAAAP8AAQAAAAAAAAEAAf8AAAEBAQD//wABAAD///8BAQEBAAD/AAAAAAD//wAAAP8A/wD/AAEBAQH//wACAgH+/v4CAAD+AAEA/v8A/wAAAAH//v//AAD+/v/+//8AAP/9/v39/P4AAf8BAAH/AAAA/wD/AP/8/P39/f8A/wD+/gABAAIAAAACAQH/AQAC/wP9+/0AAP///v4BAQD9/v0BAAACAgQBAgADAwMBAAEA////AAAB/wD+Af8BAQAAAAABAgABAgEAAAEAAQIBAP8AAAH//wIAAgABAQEAAAD//wEBAQEAAAD/AQEBAAECAgEAAAACAQH/AAD//wEBAQEA/wAAAAD+/wABAQH/AQAAAAAB/wEEBQYOExgGCQfq5d76+PL8/fv6/PoICQr9/fwCAwL39vULCgADAwT5+vcAAAAGBwcBAQACAQIIBwMAAgEBAAH8+/z/Af8D/wD8/PsCAQL+//8BAgMBAQMAAAEAAP8A/wAAAQH+/v4AAfwDAgIA//3///0A/wIAAP/+//3+/wD/AAD+/v///v78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AP//AAAAAAD/AP8AAQEBAQD//gEAAP//AAEAAP8AAgD/AAAAAAAAAAD/AAAAAP8BAAEAAAABAQEAAAAAAAAAAAEA/wAAAAEBAAAAAQAB/wD+AAABAP8A/wEBAf8AAAEAAP///wABAP8BAAD/AAEAAAAAAAD//wAAAAAAAQD//wABAP8AAQEB/wH/AP7+/wAAAP///wAAAAAAAAAAAAD/AP8AAAAAAAD/AAAB/wD+AAAAAAACAQP8//7//wABAAL8/Pz8/P38/PwAAP8A/wAA////AAAAAAAAAAD//wD8/P3+/v0CAwL+//3+//0AAQL9/Pz/AP4CAgECAgQDAwQBAgMCAQEAAQEBAQEBAAEAAP8AAAABAgEAAAABAQIBAAEBAgEBAQH//wAAAQEAAAACAAIBAgEA/wD/AQEAAQEA//8AAAEBAgIAAP///wABAQEAAAD//v8AAAABAP8BAwP+/f3/AAAA/v8AAQAA/wAA////AAAA//7+/fwGBgQBAP7x7+7y7+4CAwIBAgL+/f729PT//vz8+vnz8fIMDhD29fX/AP/08/f/AP4HCAkGCAn/AQEA/wD//f8AAAL///8EBAT9/wACAwIEAwUAAAD6+vr+/wACAQMEBwcF/f3+/v79/fwAAgIAAgX/AP7/AQAAAAAA/wD+AAD+///+/v4EAgIHBwf8+/r4+Pf8/Pz//v3/////AP8AAQAA/wAAAQAB/wAAAP//AAAAAAAAAAAAAAAAAP////8AAAEAAAAA//8AAQAAAAABAAEAAAAAAP8AAf8B/wH/AP//AP8B/wH/AP4AAAEAAAAAAAEAAP//AAAAAAAAAP//AAEE/v7+AP//AgMCCgUKAgICAQAAAAAA/wAB/wD////+////AAEAAQEBAAEAAAD///8AAAEBAAAAAAAAAQICAAEB/wEBAAAAAAAAAgAAAAEB/v7+/wAAAAEAAP4AAAEA/wAAAQD/AAACAAD/AAD/AAAA/wAAAv8B/wD/AQEBAQAAAAEB/wAAAQAB////AAAAAP8AAAAAAAD/AP8BAQEA/wAAAAAA/wAAAf8AAAAAAAEAAQAAAAABAAD/AQH///8AAf8A/wEA/wAAAf8A/wAAAQD/AAAAAP8B/gAAAQD//wACAQEA/wAAAQD/AAABAQAAAQAAAAAAAf7//wAAAAEBAQAA/wAA////AQAB//8AAQAA////AQAA/wAAAP8AAQEA//8AAAAAAAAAAP8A////AAAAAQAAAAH/AAD/AAAA/P7+/f39/v8A/fz5/fz9/v3+/v/+/v7+AP///v/+AwMD/v7/+/v7//7//f39AgMC//8BAP8AAQACAgAA/P8ABQUG///+AgMEAgIDAQEBAQEBAP8AAAD/AAEA/wAAAQAB////AAABAQABAAEB//4A/wIAAAD///7+AQEB/wH9AgIDAQD/AQECAAAAAAAB/wD//wD+AgEDAP/+AAAA//4AAQEC//7+/f/+AwEBAQECAP/+AAEB/wAAAP/+/f7+///+/Pz8/Pz6+Pbz+ff1+ff3BQMD/QAA+ff3CgsD//z88/LwCgkJ9fLzAAACAAAACAkK/f38BwgI/wD/+/v8BQcHAAABAAECAgIC/P//+vn5AAECBQQH+vz7AgEB/wAA//7+/wAAAgEDBgcH/wECAAAA/v3+/QP9/wD8/wABAgMDAQEBAP7///7+//7++/v8/f78+vr6/fv7AAAAAP8A////AAEAAP8AAAD///8AAP//AAAA/wAAAQAB/wAAAAAAAf8B/wEAAP8AAQABAAEAAAD/AAAAAQEA//8AAAAB////AQAAAQAAAP8AAAD/AQAB/wD/AQAA/wAAAAAAAAAA/wAAAAABAQAABAABAQIDAv////7+/v38/gEB/wEAAwMFBAICAgICAv//AAEBAQABAAEBAv8A/gD/AAEAAP4A/wMAAAABAAAAAf8A/wAAAQAA//7//wIAAgEAAP///wD//wAB//8AAAD/AAABAAEB//8AAAEAAQAAAAEBAf8AAAAAAf8AAAEBAAD/AAAB/////wAAAQIBAf7//gEBAf8AAAAAAAAAAAAAAAEA/wEAAAABAP8AAAAAAP//AAAB/wEAAf///wAAAf8BAAD/AAEAAAAAAAAA////AAABAQABAAH//wABAQH/AP8A/wD/AAAAAAEB/wD/AP///wEBAf//AAAA/wAAAQABAP8A/wABAf///wH/AAAAAAD/AP8AAQEA//8AAAD//wABAAD/AAD//wEAAAABAQD///8AAf//AP////7/AAD///7+//z7+/v7/f7//gD//wABAf39/f39/QEBAP79/v3+/fz9/f38/AICAwMBAf7+/fz8/P7//v38/AEBAv7+AAIBAgD/AAEBAf///v3+AgIBAQD//wAAAAAAAQABAAAAAQEBAQABAAABAAABAQABAP7//wIB/wAAAf///v/+AQECAgD/AAABAf///gD/AP0A/QACAAMCAv7//wEBAQEBAQACA//+/v7+/wICAQEBAQAAAQD//v4AAf/////+/v38+vz6+fj29QEA/wEAAPr7+wYGCP/9/uro5//+/f/9//n5+v39/gUHBvX0Af///wEBAPX08woMDgsNDgICAgEDA/8A/f///wIEBQABAgYFA/39/AH+AwEDAwABAAEBAgAA/v4BAgEDBQEA//39/QD+AP0A+QMD//8AAgL+/gMDBf//AP//AP39/e3s7Ojm5v79/P7//v///wAAAAAAAAD/AAAA/wABAAD//wAAAQAAAAAA//8B////AAEAAP8B/wEAAf8A//8AAP8A/wAAAAAAAP//AAD/AAABAAEAAP8A/wAAAAEAAP8AAAD/AAAAAP//AAABAQAA/wEAAAAAAAAA/wAAAAT9/fz7+/8AAAABAAACAgICAgMBAQH////////+/v4CAQAAAQAA/wD//v4AAAAAAQAAAAAA/gAABAEA/wAAAf8AAAEAAP8A/gAAAQH///8BAQABAQD+/wAAAAABAP//AQAAAAEA//////8AAAABAQIAAAABAAD/Af8A/wD/AAEB//8AAQEAAQAB/wD/AAAA/wEBAAAAAQEA//8AAAABAQH+AP8BAAAAAAAAAAAA/wAAAAD/////AP8BAAAAAAABAAABAAH///8AAQEBAAAAAAAA/wABAQD+AAAB/v8AAf8AAAAA/wAAAQH//wAA//8A/wD///8BAQAA/wD/AP7/AAH/AP8B//8AAAD/AAEAAP8AAQAA////AAD///8AAP8AAAEA/wD//wAAAf8AAAD/AAD///8AAAH/AAD+/v79///9/v7+/wD////+/v4AAAACAAACAgIAAQD//v7+///+/v77+/sBAAAFBQT////9/f38/Pv+/v3+/f0BAgECAgP+//8AAP8A+/8DBAQCAf79AQIEAwIAAAAAAQH//wABAQD///////8BAQECAgL+/f8AAQD///8AAP8CAgL/AQAAAP8AAAH/AP7///8CAgEA///9/P0BBAABAgIAAAAA/wABAQEDAgL+/v7+/f0AAQAAAAEAAP8AAAABAAD9/v4AAAD//v8A///8+fr+/f7///739/YDBQX49vb19PQGBgX8+/sHCQn39vYAAAMCAQMCBQQJCQv6+foAAfMECPsJCQr/AAICAgQBAAP8/fz4//kFBAYBAP7+AQMDAgIA//4AAAIA//0AAAH+///7/PwCAwIC/v/+AP3/AP4B/v0E/gEBAgIA/wD7+vv39vby8vH//v4BAAH///8AAAAAAAAAAP//AAEA//8AAAEAAf8A/wABAAD/AAABAAAA/wABAAD/AP8BAAD/AAABAAD/AAAA/wAAAAEAAf8AAAAA/wEBAf//AAAAAAEAAP//AQAA/wAAAQABAP8AAAD/AAAAAAAAAAEAAAAE/v7/AgICAQAAAgMDAgEB/f7/AwEBAQAB//4AAQABAQIB//8AAAH/AAAAAgECAAEAAAH/AQABAAAA////AQABAAD//wABAgEBAAD/AQEAAP4AAP//AAAAAQAB/wD/AP8A/wD/AAAAAAEAAAABAAAA/wD/////AAABAAAAAAD/AAABAP7/AAEA//8BAgH//wAAAP8AAAD/AAAAAAAA////AQABAAAAAAD/AAAA////AQABAQEA/wAAAQABAQAA//8A/wD/AAAA/wD/AgEB/v8AAQAA////AP//AAAB//8A////AP8AAQD/AP8AAQAAAAAAAAAAAP8AAP8BAAD/AP//AQEB//8AAAD/AAAAAAAAAAEA////AAAAAAH/AP8B//8AAAD/AAD//wAAAP//AAAAAQEBAQEAAQEBAgEC/f/+//8A//8A/wD//v//BQQFAAD/AQEA//z+/wEB//7+/v//AwIDAQIC/////f39/f39/Pz8/fz8AQEBAgIB/v39AgICAwECAgMC/////gAAAgD//v8AAwIDAAH//wD//v/+AP//AAEBAgECAP8AAQMAAAEB/wABAAAA/v//AQD//QACAwD/AQACAAH//v//AwECAAEA/v3+Af8AAgID/wEA/v39AAAAAQIB//7///7+AAAAAAAB///+/wD////+/Pr7/v39BQQEBQUEAQD+/fr8+vz6BQQDAgEA////9fX2/f3+EwYG//8AAwUEBgcHBQYG+vr5/v7/Bf8GBQQE/v3+/gD/AAAC/Pz7AQECAgACAQECAgMDBAQE//8A/wABAQEAAAMBAf/+//37/wAB/wD/AAAB//7//wAAAAIBAAD/////AP8A/P39/f79+vj4/f39///+/wAAAAD/AAAAAAABAQAAAAAA/wD/AQAB/wEAAAAAAf8A/wD//wH/AAAAAP8A/wAA/wAAAQAAAAAAAQEB////AQAA/wAAAAEA/wAAAQAA/wH/AP8AAP//AAAAAQAB////AQEAAf8A/wAAAAAAAAAABAICAQICAAAAAQAAAAEBAQIB/vz7+f7/AAgIAv8GAP///v7/AgL+/wEDBP//AAEAAQAAAAABAP7//QIBAv8A/wEAAQEBAAAAAAAAAAD/AP8AAP//AAEA//7//wABAQAA/v//AAEBAQEAAQH//v8BAgD/////AAD//wABAAD/Af8B/wEAAQD//wABAP7/AgAAAf8A/wH/AQABAP///wAAAAAA/wEBAf//AP8AAAD/AP8A/wAAAAH/AQAB//8BAQAAAAH/AP8AAAH///4A/wAAAf8AAAAAAAABAP8A//8A/wH/AP8A////AQAAAP//AAD//wABAQEAAAAA/wD/AP8A/wEBAf7//wEAAQAA/wABAQD//wD/AAAAAP8AAAEA/wD//wAAAQAAAQD/////AAD/AAAA/wAAAAEAAgEB/QAAAAH//wD/AAABAgYGAgECAv38/P3+/wECAv/+/v7//wEDAgIBAQIBAPn6+QD+/vr7+vv7+gUEAwEBAf/+/wEBAv8A//39/f///wECAgIBAf8BAAAAAAD/AAAAAAIDAgEBAv///wEBAAD///7/AP4A/QECAgMCA/8AAAD///8AAQEA/gAAAAD//gEBAQD+AAAC/gIBAv3//wL+/gAAAP8AAAAAAAAAAP78/gIBAQICA////wAA/wD/AAD/AQMCAwECAv39/Pf29vj29vj3+P37+v/9/PTy8gEEBAEBAQMDBAEA/fX19Pr8/AYICQMDA/j49/z+/gwMDQIBAvj2+gcKAgQEBvz7+/z4+f//AAgJCgIDBAEBAfr5+v////7//wEAAf3+/f8A//39/P8BAf8AAf7+/v8A/wABAgEAAf39/QEC////Af7+/vj4+AoJCvPw8P8AAAAA/wAAAAAAAAAA////AAAAAAEAAf8AAAEAAP8AAP8B/wD//wAAAAEAAP8AAAAA/wEAAAAAAQEAAAD//wAAAAAAAAAAAAAAAAEAAAAAAAH/AQAA/wABAQEAAAAAAQAAAAAAAP8A/wAAAAAAAAAA/wQCAgIAAAABAAD+/fz6+Pz9/fz+//0EAwb/AP7+/vwA/wMA//7/AAEA////AgEBAP8AAAEAAAAA//8AAgEBAAD//wABAQAAAP8A/wD////+AP8AAP//AAAAAAAA/////wAAAAAA/wD+AP4C/wEBAP8AAP////8AAP8A/wEAAQEAAAEAAP8BAQEA/wD///3//wAAAAEBAQEB/wD/AAAAAAAAAAD//v8BAQD///8AAAAAAAAA/wD/AP8B/wABAQEAAQH//wAAAP8AAQAAAAEAAP8AAAH///8BAAEAAAAAAAD//wAAAAAAAAABAAD///////8BAAD/AAAAAAAAAAAAAAD+//4A/wD/AQAAAAAAAAEA/wAAAP//AAAAAAAAAAEAAAH/////AP8AAAAAAAEAAf///gD/AAAAAgD+/f/9/v3/AAD+//39/v3/AAICAP79/v7+//4CAwH+/f4BAgH+/f7/AP/4+fr//v39/Pz+/fwDAgIAAQH//wAA///+Af3+/f4EBAMBAQEB////AAACAQD//wD//wAEAwMAAQAAAAACBAL///8AAQAAAAEAAQEAAAD9/v4AAAABAQEAAQECAQH/Af4CAQEA/wABAAD//f/+Af//AAD+AgEA/gAAAQAA/wEAAP/+///9/v4CAwMBAQD//wACAQH/AQAAAQMFBQcBAgT6+/34+fr5+vgBAQD//v0GBgcBAwMDCgvz9PUCBAP5+voLDg/9/Pr8+gT+AP8EBAb39vX+/v4LDhEEAwYBAQQDAwQCAv4DBAUGBgb//v39AP7+/f37/P3+/f0CAwP/AAACAQIAAAACAwMEBAYA/wD8/wACAQEA/wD+AP4B/gAAAAL6/Pvw8PD49/cAAP8AAAABAAD/AAAAAAAAAAEBAQAAAP///wAB/wD/AQAAAP8B/wD/AAEBAP8A/wD/AAABAAEAAAAAAAD/AP8BAQABAAD//wAAAAD/Af8AAAAB/wAAAQAA/wEBAAAAAAAAAAAAAAD//wAAAAD/AAABAAAAAAAE/f79/vz9/v//AQAAAQEBAwQDAv8CAwMCAQAAAP8AAP8AAP///gAAAP7+AwEC/wIBAf8AAAH/AgACAP7//wEAAQIAAP8AAAABAAD//wEAAf8A/gD///4AAAH/AAAB/wD/AP8A/wH/AP8B/gD/Af//AP///gD/AQECAAAAAP//AP/9AAEDAAAAAP8A/v/+AQAAAAEBAP8B/gABAAD/AAAAAQAB////AAAAAAAA/wD/AAAAAQEAAAABAAEB////Af//AAAAAAABAP///wD/AQEB////AQD///8B/wD/AAABAAAAAQAA/wD+AP8BAAD/AQAAAP//AAABAAD//wAAAP//AAEB/wD/AP//AAABAAD+/wAAAQAA//8AAAD/AAD//wEBAP/+/wAAAQABAAH/////AAAAAQEBAP7+//8AAQAA///+////////+vr6/v/+AgIBAgIC/Pv8/////v7+AP8A/v39/v7+//7//Pz7/v39BQUF/v39AP///gAAAQEAAgECAAABAAAAAAAAAAEBAAEAAAEAAAD//v/+Af0A/wEAAQH/AQEB/v3+AAAAAQEB/wEAAwICAAEC////Af7//gIBAgEB/gECAQD/AQABAAD/AP8AAQABAwED/wD/Af8BAAEA/wAAAP///gD///39AwMDAP///wABAQEBAQEBAgMECQkLCwwN+g0P/fr2+PPxCAcGBAUG+fr7////AQEA+vv7+vv7+/n6+QX6AgICAgQFAwT/AwICCAcH/Pr58/HwCQsOAQEEAwMCAP7++/z6AAD/AAAA/////Pv6AAAAAQIA//7//gMEAwMDAAAB/v7/AQIDAgABAAAA/v//AwEA//8AAAD/9/f47u7u9vf3//8AAAAAAAEAAQAA/wABAP//AQAA//8BAQD/AAEAAQAA//8AAAAAAQAA//8AAAEAAgAB/wD/AP8AAAAAAQABAAAAAAAAAAH/Af8AAAABAP//AAAAAP8AAAEAAP//AAABAAAAAAABAAH/AAABAf//AQAA/wABBP39/QABAAAAAP7+/wH/AAQDAgAB/wIAAf79/QD//v7//gD/AQICAgAAAP7+/gIAAQAAAgH///8BAAEA/wEAAQEAAf8AAP7//gD/AAEAAAAA////AP8A/wD//wEAAQH/AP7+/wECAQD/AP8B/wEBAP7//gAA//8AAAEAAQAAAP8AAQAA/wD/////AP8A/wABAQD+//8BAAD//gABAAAAAP8AAP/+AAAA/wAAAP//AAIBAP8BAQAA/v8AAQEBAQABAQAAAf8A/gAA/wAAAf//AAEAAP8AAQEB/wEAAP///wAAAP8A/wEAAQD///8A/wAAAAABAQD//////wABAAAAAAD+/wAA//8AAAAA//4AAAEBAf8AAAAAAAAAAP7//wEAAP8AAQAA/wAAAP///wD///7///7+/v7+/v///v7//v8A/wECAQD9/wEBAAEAAAEBAPz7/P8A/////wAAAP7//fz8+wAA//z8+/z8/QMBAf///vz9/AAAAAIAAAACAgEDAgEAAf///wEAAAH/AP////////8A/f7//wIBAQECAQABAQD//wABAP/+//7//gEBAv3//v/+/AMEBAAAAQH+AAAEAgEAAAAAAf8AAAEAAAAAAP/+/v0BAAMCBAECAAEBAAEAAf4DAwP/Af/+/////gD///7+/wAA/vv8/P/9/QABAgQDBfv7/AEBBAQGBwH+/gEA/wcHBAH8/wUEBPr6+AQDA/Pz8wYICQoBBP//AAoKDP7+//r7/Pn59QkLDPz79/7+//v7+gcIBwgKC/7/AAICA/39/f///wIEAwAAAAABAQAA/wICAf8AAP///wIAAQEBAf0A/wEAAf39/QMDAv7///X09PT08wD//gEAAAACAv/+/gAAAQD//gAAAP8AAAABAP8AAAH/AAAAAP8BAQEA/wAAAQAAAAD/AAAB/wEAAP8AAAAAAAAAAAD//wABAAEAAP8AAAAAAAABAQD//wABAAAAAP8AAAAA/wEAAAEAAAAA/wAAAf8BAf///wABAAQA//8CAgL+//8BAAEBAQH//v8AAQD9//4C/v79/v4B/P0AAAABAQIBAwD+//4B/wIBAgAAAAEBAAD//wAAAf8A//8AAf////8AAP8A/wIA////AP////4A/wAAAP7/AP8AAP8A/////wAA/wD+AQD///4AAAAA///+//8BAQAAAAEAAQH/AP7/AAAA/wD/AP8BAQH///0BAAEAAAEAAP8BAAH/////AP8BAAEAAAD+/wAA//////8BAQECAQH/AQEBAQEAAAD/AP8CAAD/AAD/AAAAAP8A/wAAAAH///8BAf/+AAAC/wD/AP////8BAQAA/wEAAAAAAAAA/wAA///+AAABAAD/AP//AAD/AAACAAD//gEAAP8AAQAA/wD/AAAAAQAAAAD+/wAAAAAA/wD/AP///v///wAAAAABAQEAAQH+AAAAAQH/AP/+/f37+/78+vsDBAMCAQL9/fz49/cBAQH+///8+/wDAgMFBQP8/PwA/wACAQEBAwIDAwMCAQEBAQEBAAEAAQIBAQIBAQH//////wAA/v//AgECAAH//v////8AAAD+AP8CAQEBAAH//v7//wD+/f0DAgP+AAAA/f7/AQECAQEBAQEAAAAA//8AAQH////8/fwCAAICAQIAAgIAAAAAAQH+AP4C/wAA/////v7/AP/9/Pz29PL9+ff6+fcHCAj9+wcCAP3+/PoFBQT/AQAHAQT9/P4BAgADAwbz9fX39/cFBwj+///9/e4MDQz+/gD+/v8CAQD6+ff8/fwICAkGBgf9/v0B/wD8/fwAAAH//wAA/gD+/v39//4DAgP6/v4CAgUCBAEBAgQAAQEBAAEBAQIAAP4AAQD9/P709PX5+PkBAQAAAQABAP//AQEBAAABAQIAAAD///////8BAAH/AP8AAAABAAAAAAH/AP8AAQABAAD/AAAAAAEBAAAAAf///wAAAQEAAAAAAAABAP8AAAAAAAD/AAAAAQEA//8BAAD/AAD/AAAAAAEAAAAAAAABAAAAAAAAAAAE/////v3+AAEAAgMCAgAB/v79//4AAQIBAQEBAP8A/////f7+Af7+AgECAQECAP8AAQAAAAAA/////wEAAf8A/wD+////////AP///wD/AP///v7+AAAAAAAAAAAA/v//AAAA/////v7+AgIBAAAB//4AAAEAAAH/////AAABAAD//wD/////AgABAAIBAP8A////AAAA/wD/AP//////AAABAAAAAAAA/wD+AAABAAAAAAAAAAABAP///wEBAQD///7/AAEAAAAB/gD+AP8AAAAAAAAA/wEBAQAB//////8AAAAA/gH/AQABAAAA/v4AAQD//wEAAP//AAAAAAAAAAAA/gD/AAAAAP//AAAA/gABAAD/AAAAAf8A/gD/AQAAAP8A/wAAAAD/AAACAAD/AP8AAAEAAQEAAQEBAAEB/v7///79/f38/Pz8//7+/fr8AAAA/vz++/36+vv7AP//AQIA/v7+AAEBBwgH+/r7/v7/AwIDAQIAAgIDAgEBAAABAQABAQIDAQAC/wAB/v7/AgEAAQICAAAAAP///v7/AAH/AP8A/////wD+/QEBAf/+AAD/AQIC//8A/v7+AAABAQABAAH//gECAQH/AQAAAAD/AQEC//7/AAAA/v7+AQMCA/8DAgIC////AQD//v8A//79/vz8+/z6+/r4+vfx7enl+fPw//37BAMDAwgIAP4FAgL//P38/wAADA4KAvkG/PwAEggK9vn4AgMECwoM/P388PDxAgICERIR/v7+/v3+AgQD/f3++/v7AAECAQEBAwMDAQMC//3+/v79AAEC////+fn5AQEBBQYBBgQFAP//AAD///8A/gD9AgID//4A9/b36+vs9/f2/v7+AQIB/v3/AQAAAAD/AQECAQEB/f79AAAAAP8AAAAAAQEAAAAA//8AAP8AAQEB/wD/AAAAAAD//wEAAP8AAAAAAAAAAAAAAAAA/wAAAQEAAP8AAAABAQD//wAA/wEBAf///wAAAAD/AAAAAAABAP//AAEA//8ABAQEAwD/Af7+/fz8/AIBAQAAAAICAgICAv3+/v3+/QIAAwIAAgD///4A/wL/////AP8A/wAAAAD/AAEAAf7//gIBAQAAAAD//////v///wD/AP7//gAAAAH/Af4BAP///wAA/wAAAAD/AP/+AP8BAAD//wAAAAD+AAAAAP7//gEAAgAB/wD///4B/wD9AQEBAQD//wABAP8A/wH/AP8AAAAA////AAEBAQEBAQAA//8AAAH/AAABAAAAAQD/AP///wABAQD/AAD//gAA/wD/AQABAQAAAAEAAP8A/////////wEBAAEAAf8AAP8A/wAAAP//////AAD/AP8A/wEBAAAAAQABAP///wD//wABAAEAAAD/AP8AAP7+/wAB//8AAQAAAAIBAQABAgAAAP/+//8BAQEAAAAAAP8AAP///wAA//3+/v/+/gIBAv3///7////+/f/+//z9/AIAAQACAgABAPz8+gcGBwECAv///gMDAgMCAgEBAQEBAQEBAQMCAwEBAgEBAgEBAgAAAAAAAQABAAAAAQEBAQAAAP7//wD//wAAAf/+//8AAAAA/wEAAAEBAAH/AP//AP4B/wEB//39/v///wEBAgEAAAIDAgIBAQAB/wEAAAABAQEBAAD+/fz+/QICAgD/APz8+v7//gMBAfv5+Pj38/Du6/n08Pbx7Pjz8P79/QMCAwD//gUGBAQEAQD//wQECAMICAcJBP3+AQQFBfj6/Pz+/v///gMCAgMIBwQEBQcHCPj4+QICAQMABfz7/Pn6+gUFBQUHCAECAP76/P7+AAQFBQAA/wEAAAQEAwMDAwMDBP/+//4B/gEBAP7/AAEBAwEAAf8AAfr8/AQEBAcHBwAAAAD//wEBAQABAAD+AP8AAAIBAQIBAv7//gABAAAAAQAA/wAAAAAA/wEBAQAAAAAAAAAAAQAAAAEAAP8A/wAAAAABAAD/AAAAAAEBAQAA//8AAAAAAP//AAAAAQAA//8AAAEAAP8BAAD/AAAA/gABAQAAAQAA/wT8/P3//////v7//wD8/fwBAQH9/v8DAgIFBgcCAwQCAwMBAQMAAf8C/gD/A/8A/wD+//8B/wAAAQD///0AAQH+AP8AAAD//////v//AP///////v4AAAD+//8BAAEA/wAAAf//AQD/AAECAAAA/v8AAf8BAAEAAQD//wD//wAAAf4B/wEAAP//AAABAAEAAP8AAQAA/wAAAP//AAEA//4AAAEBAQEAAP/+/v8BAQH/AP///wABAAAAAf///gABAQABAAIBAgEAAAD//wEAAQAAAP8AAAD//wAAAAD///8AAP//AAH//wAB//8AAQD/AP8AAAEAAP8AAf8A///+/v8BAQEBAAEA/////wAA////Af8A/gD/AAAAAAAA/wAAAP4BAQH+AAAB//////8AAAH/AP4AAAEAAQABAQAEAgH+AwIGBAEEAgb7/Pz8/Pv/AP7+/v8A/wADBAUBAQEBAQH5+PgHBggGBgX9/PwGBQcBAgEBAQD/AQACAAEAAQH/Af8BAQEAAAAAAP4BAQIAAAD+/v4BAAAAAAEBAAAAAQEAAAABAP8AAQAA/gAAAP8AAgIAAQAAAAEAAQAAAP8A/wD9/f4AAAAA//4BAgH+/v4CAwIBAAABAgH+/f8CAgEBAQH///79/v0B//7+/fz5+ff7+Pb8+vf9+/j17+rx7ev7+Pb9/Pr+/f3+/Pz//v4GBwYCAgAJCQoFBwn8/f308vH5+v0NDxEKDA35+fr8/Pr+/fwEBQYBAAX19fQA//8GBwYB/wABAQAAAP7+/fr29foFBQcEBAYFBQb+/v8BAgECAQMDBAQEBAUBAQP9/gD//v7/AP//AAEAAgH+//79/P36+vr9/f35+fn+/v7+/wAA//8AAAABAgECAAH/AAABAgEB/wH/AP8A//8AAAAAAP8BAAD/AAAAAAAAAAAAAAAAAAAAAAABAAH/Af8A/wAAAAABAAAAAP8AAAD/AQAA//8AAAAAAP8BAP//AAH/AP8A/wAA/wAAAQEAAAD/AP8AAQAEAgIC//7++///+/r6+vr6AQAAAQICAgID/wABAgQFBAUG////AQAAAAEAAf8BAAIA//3+/wMBAf8BAAEBAf//AAAAAAAB/v79/v3+AgEB///+/v7+AgEB//7+AAAC/wD/AAAAAP8AAAECAAAAAAEB//7//wEAAQD//wAA////AQEC/wABAAAAAP8BAAH//v3/AQEAAAAA/wD/AAD//v7/AQEAAf8AAAAA/wAAAAAAAAD//wAAAQABAAAAAQEBAAAA////AP4AAAABAQEA///+//8BAAAAAAD/AAEBAAABAAABAQAA/////wAAAgAB//8A//79AAEAAAAA//4AAAAA/wD/AAAAAAAAAAD+AAAA//7/AAABAAAA//8AAQEB//8AAP//AAD//gH/AQECAQEAAP8AAQD/AQD/AwEBAQQDAQD/BAII/P79/v38AgEAAQEABAUEAwQFAQAB/v7+AP8AAQgBBQUGAAD/AgEDAgIBAQEB///+/v//AQAAAAD/AP//AAH/AQEB/v7/AAD8AAEC///+//8BAwQBAgEDAQIBAAAA//7+/wAAAgIAAAAB//7//gH//wD/AQEBAQEBAQEA/v//AP/+AQAA//0A/wD/Af0A///+//7+///+AQECAQAA/v7+//78/f38//38+vj3+vnz+vf09/Xx+vb0/Pn0/Pv6+vr6AP79+Pj3AQAA+/z5BwcHAgIDAQP3/P39+/v6/v7+9/bzBQUDAwID+vr6BQYFCQkI/Pz9AgED/P3+8/TzAgD0AQAAAgMCBwkHAwQD/wEE/wL+/v7+BAQEAwMFAwQEBAUGAAAB/Pz+AAEB/v39//8AAQMEAf////7/+/38+vv77+/u9PLz/f38AAAAAAAAAP//AP8AAAIBAP//AAAAAAAAAP8AAQEBAP8A/wAA/wD/AAAAAAEAAf8A/wAAAAAAAAAA/wD/AQAAAAAA/wD/AAABAAAA/wAAAf8AAAEA//8AAP8A/wABAAAAAAAAAAEAAAEA//8AAP//AQAA/wAABPv6+v39/f39/f39/QEBAQIBAQECAwMCAgD//wD+/gD//gAA/wAAAP///v8BAQH+AP4BAAH+AAABAAD+/wACAf/////+AP7//v79/f8AAf8A/wD//v0AAAD//gACAf39/QECAgAAAQIC/v4AAQEAAQAAAP///wABAP/+//8BAAD///8A/gAAAAEAAP7/AAEAAP//////AAEBAP8B/wD///4A/wIBAgAAAQAAAP///wEBAAEAAAD//wAAAQABAAAA/wAAAf///wEBAP7+AAAA/wAA/wAAAwAA/wAA/wAA/wEAAgAAAAEAAAAAAP7///8AAAABAAD/AP7//wAA/wAAAQEAAAAAAP///v//AP///wEBAAAAAAD/AAAAAP////8A/wECAv8AAAEAAQEBAQAA/wAAAAAAAAEAAgAB/gMBAQEFBAIC/gP/AwMDAQcHBfn6/AAAAv7/AP38/v79//v8+wcECQMEAwAAAAIAAv7//gH///3//gH//QEAAP79/P8A/gEBAQAAAAEBAP8AAQABAAIBA/8A//7/AP///f/8/wAB/wAAAAEAAQD//v7//gEBAAD/AAABAgECAAEAAAEA///9/f8A/gD//f/+/v7//gD//v7+/v8A/wD//wAAAAEAAP/+/v7+/f/9/f79+/v69/f18fj28vv39P36+QIA/gEA/gIA/vn7+vz8+//+/f7/BQIDAgL8Bv73+AEBAgABAgUFAwEB//X08wMEBf//AP/9A+7s6/T29QgICgQFBgcGBv0BAQEBAAYCB///AgYGCwYGBgMEBQQEBAUHBwQFBgICA/8AAf3+AAEDAwIAAf3//f8A/wEBAAADAv7+AP79/vz8+/3+/gIDAgEBAv/+/gABAAAAAf//AAD+/v8BAAD/AAAAAAAAAQAA/v8BAAD/AAEBAP//AAD/AAABAQH//wAAAP8AAAAAAAD/AAAAAQEAAP//AAD/AQAB//8A/wD+AAAAAAAAAAAA/wAAAQAAAAD/AAABAAAAAAAAAP8AAQAA/wT+/v4A//8AAAABAQIDAgABAQEBAQH/AP8EBQQFBgUCAgMAAP/////////+//8BAQEAAAAA//8BAAD+AP8B/gEAAP///wD9/f0A/v39/wABAQH///7/AAABAQEBAP////8A//8A///+AAECAgH///8BAAEAAQD//v8AAAAA/wD+AP8AAP8AAAH///4AAAEAAQAAAAD//wAA/wD/AQD/AAD//v//Av8AAP8BAAEAAQH//wAAAAD/AP8DAP//AAIAAAACAQEAAQAAAAAAAP8AAAAAAAEAAP4AAAEBAAH+AQAA//8BAAEAAQH//wD/AP8A///////+//8CAAH/AAAAAAAAAAD///8AAAEAAP8BAQD///8AAAAAAAEAAAAAAQABAAEAAAABAAEBAQD/////AAAA//8AAAEBAAAAAQD+//8BAAACAwIC//8DAwcFBAYJCP7//wD8/v77+v38/P0F/AMBAQIBAgP///////8A/gEAAAAC/f3//f7+/v3/AQAA/wH///8BAP//AP8AAAAA/v/+AP/+/v8AAP7///8CAQEBAQH/AP8A//8BAAH/AAAA//8BAQAA//0A/gD+//8A/v4AAP///v3///z+/v4A//4A//7+//4A//7//////v7///3//v/9/Pr9+vr+/Pn7+vj59vP7+vj//fsB//4B//8A//3+/vz///0BAP7+AP8BAAACAgMA///9/f0DAwIBAgH8/Pz49fUDAwMODxAEBAX9/fvw8fD39/f6+fkCAwQCAgMHBwYKCgsEBQX9/f76+vr+/f4FBvwAAQoCBQb//PwAAf4AAQIBAAIAAQIA//4A/wECAgIBAgMBAAL/AQD8/f3z9PXx8PL///8BAQD/Af///wEBAQAAAQD///8A/wD///8AAAH///8BAQAA/wD/AP8A/wAAAAAAAAD///8AAAAAAAABAAAAAQEA//8AAP8AAAAAAP//AP8A/wAAAAAAAQAA/wD/AP8AAAEAAP8AAAD/AQAA/wABAAD/AQAA//8AAAAEAAEBAAEBAQEBAAH+/v4AAgD////+AgMD/f39+fn5AQID/wAAAQIEAQAEAv8AAAIBAQD//wAA/wABAAAA//////7/AP///v39//39AQECAgIA/wAAAAAA/v//AP//AAEA/v7+AQICAgABAAAB/////wD/AgAB/v8A/////wAAAgIBAQAAAAEAAAAAAAD///8BAP/+/wAB/wEAAP4AAAD/AQEB//4AAAH+/wAB//8BAgABAQIAAQAB/wEBAQAAAQEB/wD/AP8AAAEAAAAAAP8A/gD/AP8AAgEB/wH/AAAAAAEA/wD/AP////8AAAAA/////wAAAgEBAAAAAAABAP///v8AAQAAAAAAAAAAAAAAAAAAAAAAAQAA/wAA//7/AAEAAAAAAAAA//8AAAD/AAD/AQEBAP//AAABAQECAgD+/wD/AQAB/wD/AAABAgH/AQMBAAABA/8CBAMC/v4E/f3//v///v3//v7+/P3+AQAA/v8AAQL/Af8AAgAA//8B/QD9/vz8AQD+/v3+AAAA/wD/AQAAAAH/AP8AAAD//wEB/wEBAP//AQAA/wD/AQABAQAA/wD+AQH//gAAAP//////AAH+//4AAP//AP//////AP////38///9//7//fz6//78/fv8+/r3/fz8/fv6/fv5/vz6AgD+/QD//wH//gD+AP/+///+AQH/AgIBAQEDAAIC/wAA/v//Av//+fn4/v/9/Pv79fb4BAQFBAUGCAkJ/f39/v38BAMB/f38AQH/AgIA/f39+/v6A/kD/v///wD9BwYJBAYF//8A+/v8Af3/AgIEAAEBAgIEAAH+AQABAAEBAgEDAAIC/gAA+/z99vf48PHw9/fz+/v6////AAABAQABAAD/Af8A/v8AAAAAAAAA/wAAAAD///8BAP8AAAAAAAAA/wD/AP8AAAAAAQAA/wAA//8AAAAAAAD/AP8BAAD/AP8AAQAB/wD/AQAB/wD+AAABAQAB/wAAAAAAAP8AAQAA/wAAAAD/AP8AAAAA/wD/BP///gAA/wMCAgMDA/4D///+/v7///////39/gL+/vz9/QED/gD9/QAC/f8D/wP+AP8BAAH/AP8DAAD/Af///gD///7+/v/+/v///gICAf//////AAABAAABAQEAAAEBAf7+/AIAAgABAP7+/gEAAf8A/v4AAf//AAAA/wEAAQEAAf///wAA/wEBAf///v///wD/AAAA/wEAAAAAAAEBAQAAAf8BAAAAAv///wEB///////+AQMCAQEAAQAAAP///wAAAAAAAAIBAf8BAQABAAH9//4AAP4A/wH/AQEAAP8A////AAH//wEBAf8AAP8A/wEBAf///wD//wAAAP//AP8A/wAAAAEBAgAA/v7+AAEAAAAA//8AAP4A/wH/AP//AP8B/wEAAAEBAQECAgAAAQD//wAAAAABAf8A//7/AAD/AAAA/wEAAQD/AQEBAQAAAgABAP8AAAIBAf4C/wQDAP/+/vwD/v/+AAX+Af3+/v39/vv7AAEAAfwAAf37/QIBAQADAf79//8A/gQDBAABAQEA///+/v8A/wABAAAAAP///QH//wAAAAEBAAEAAQAAAAEB/wAA/gD+AAAA/QAAAAD9/v/+/v///wAB/wD//v7+/f///f/+/P38/Pz7+v38+/37+/79+//9/f79/QABAAEBAQABAAEBAQECAgABAQABAQEBAQICAgMEBP7//wMDBAECAgEDAwICAQAAA/r3+vn5+wEBA/39/vj4+f/+//8BAP///gAA/wICAAMDAwcIBwQEBwcHCAkKCQcJCgMDAwABAv7///3+/f79/QH+/wICAAIEBP78/AAAAAECAwQDBP8AAAEAAQD/AP39/fj6+vb29vj49v38+v///wD/AAAA/wD/AP7//wAA////AAAB/wD//wD/AP8B/gAAAQD///8A/wAAAAD/AP8AAP8A/wD/AAABAQD/AAAAAQAA/wD/AAD//wAAAAAAAP8A/v//AAEAAP8A/gAAAf8AAAEAAAAA/wD/AQAAAAAAAAAAAAEAAAT8/PwA//8AAQEBAQICAQECAwIA/wAAAAAAAQEAAP/9/fsD/QQCA/7+/v0BAgIA/wAAAQD/AP8A//////8A/v///////v8A/wD//wD+/v4AAAEAAP8BAAL/AP///wD///8AAAD///7+/gAA/wAAAgH///4AAAEBAQL+/v8AAAH/AAAAAAEA////////AAAAAAAAAQAAAAH/AP8AAP8AAAIAAP//AAAA/wEAAP///gAAAQEBAAD/////AP8A//8AAAABAAIAAQD//wEAAP4AAAAAAgEC/wAA/wABAf//AAAAAAAAAP7+/v8BAgEAAAABAQH/AP//AP8BAQEAAAABAP4A/wABAAEAAAAAAAECAf//AAD///8AAAABAP//AAEA//0AAAIBAgIBAQH///7+//8BAAECAQIAAP8AAAABAQEAAAABAAD//wABAQD/AAEAAAAAAAECAAD+AgAD/wH//wD/AQACAgD+/gH+//0FAAT8/f0FBQD9/QT9/v/+/f78/Pz//v3/Af8B/wD8/Pz//f0A/wD/Af0AAAAAAP8AAP8A/wIA//8BAf////8AAAABAQAA///+/wD/AP3///7//v////7///0AAP8A/f7/AP/+//0A/v3//v0AAP4AAAABAAABAQABAAD+/v4CAgH+/f8CAwEBAAL8AgIBAQD+/gMBAwMEBQT/AP8BAgIAAAEFBQYCAwQCAQH/AP4AAQIEBgb7/f37+foEBAX+///6/PsFBQUODg35+fkBAQEDAwMDBAQHCQcJCAkGBggDAwT+AP4B///+//7+//4D/v7/AgH9/fz9/v4BAAEBAgMB/v///wADAQIC/f79/v/49/nx8PDp6Obr6ef7+fcA/wD///8AAQEA/wD///4A/wD/AP8A/wAAAAAA/wAA////AAAA//7/AAAAAAAAAAAAAAAA//8AAAD//v8BAAH/AP8A/wAAAAAAAAAAAAD//////wAAAP//Af8A/wEAAP8AAAD+AAABAAD/AP////8AAAAAAAABAAAEAP8A/////v3+/f36AgIDBQUEAQIDAAAAAAD/+/z8AwMF/v///v79AAAE//7+/wEB//0AAgIBAAAA//7/////AAD//v7+////AAD//f7+AQACAgIBAAD///8B/wD//v7+AAAAAAAAAAD/AAEAAAAA//8AAQEBAQABAQECAP8A//7/AAAAAQEAAAD/AP//AAAA/wAAAAAAAAD//wD/Af79AAIBAgEB/v79/wEAAQECAQEAAQAAAAAAAP8AAAECAgAAAAABAAEAAAD/AAAB////AQEA/wAA/wAA//8AAAAAAQEAAQACAAL+AAAB////AAD/AAAAAgEB//8AAQAA//8BAAAA/wAAAgD/AAEB/wAAAP8AAAAAAAD/////AAD/AAECAAAAAAAA/wAAAP8AAQEBAP8A/f79AgEBAAEA//7/AAAAAQEB/wD/AQEBAf8BAAAA/wAAAAAAAgAB/wAAAQH//wEC//8AAQD/Av8C/wH+AgEB/v8D/gT+/f7//////f0D/P39/fv9/f38AgID/wIDAf//AP8CAP8AAAEA///9//8AAP/+/v79///+AAD+/v7+//7+AP/+/wD+AP//AAD/AAD/AP8A/v79AQAA/wD9AP3+///+AAEA//7///79AP79AAD+AAD/AQEA////AQEBAAACAAEDAgL+/P3+AQECAwUG/v8AA/7//v7+AAEC/wAB/v7+/wD9AQICAQEAAgMABwgHAQIDAgIB//8AAgECAgIDAgMDBwgI/f39AgMCAP/++fj3/v38+fv6AAECAgMDBQUG/f7+/wACAwQAAQIEAAIB//8BAgIDAwL/AgIEAAL+Af3+/wH++/v99fb25uPj49/f+PT1/f4AAf8A/wAAAP//AQAA////AP8A/wAAAP//AAEAAAAA//7/AQEA////AAAAAP8A/wAA/wAAAf8AAAAAAAAA/wD/AAAAAP///wAAAAAAAAD/AP8AAAAAAAAAAP8AAAD/AAAA/wAAAP///wAAAAAAAAAAAAAAAAAA/wAAASl71oQE///+/v3+AAH/AgIBAgIB/v3+AP7/AQEBAgMEAv8B/v39/v7+//7//v7/AQD9/QAAAAEAAAACAgEBAAAA/v//AP/+AAH//////v////78AAEBAQEF/wEBAP////4AAQEB//4A////AAAAAAD///8BAQEC//8B/v8A/wAAAAABAQAAAP/+//8A/wD/AAEBAP///v8AAAD+///+AgEB/wEDAf///v8AAAEBAQAAAQAAAAAB//8AAQEAAP8AAAD//wEBAAEAAQAAAAEBAP8AAP///wEBAQH/AAEAAP8AAAH/AAABAQEAAAAC////AAAAAQAA/v//AP8AAAEBAP//AAAAAQAA/wD//v8A//7+AP8A/wH/AP8AAAAA/////wABAgH/AQECAAAAAAD/AAAAAQAB/wD/AgICAQABAP/+//8AAQIBAQECAgH/////AAAAAAAAAQEAAQABAAAAAQEA/v//AgAB/wED/wH+AQAB/gADAAL//v/////+AwD///8A///+//8A//7//P38/f39/fz9/v39/f38AP///v7+AP7/AP/+/wD/AgEA/wL///8BAP8AAAAAAAICAQAA///+AP4AAP8A//8AAAAA///+/v39//79///+/v78/v38/v79AAD+AAAAAQABAAEAAQEA/wEBAf8B/wAC/wEEAAH+AAMFAwECAQED//8AAf7+AgECAAIB//8BAgEC/wAA/f38//8BAgICBgcFAQAB/f3+BAUFBAUF/wABAwUFAQABAQICAQECAAEA/Pz9/wH6BQYHBQQFBAQGAQEB/f3+AAH9AP//Af4DAQID//////8A/wD//////v//APz9+Pr76ero3tza7uvq/vz8AgABAAH/AP8A/wAA////////////AAAA//8AAf8AAAD//wAA////////AQAAAAAA//8AAAAA//8AAAAAAAAAAAAAAAEAAAAAAAAA////AAAAAAAA//8AAQH///8BAAAAAQEAAP//AAAAAAABAAD/AAAAAAAAAAAAAAEABP//AP8A/v//AP/+//7+/wD//wMEBQMBAgAC/gAAAgECAf///vz8/AEBAf8EBQP/AAIDAv/+/v4CAgAAAP///gD///7+/f79/v////39/QECAv0B/gIBAQAAAP39/AABAAEBAf7+/wAA/gEAAAECBAEBAgD/AQABAf/+//8A/QAAAQICAQEAAQAAAAH/Af4A//7//QMCAv7+/v8BAgEA/wAAAgAAAAIBAgABAP/+/gEBAQECAf//AP4A/wEAAQAAAAEAAAAAAP8AAAAA//4A/wH+/v7//wICAQAAAAEAAQAAAQEAAAABAAABAAH/Af/+/wEAAAAA/wAA//8AAAAB////AP///wAAAP8A/wEAAAD/AAEBAAAAAAAAAgD//wABAAABAAABAP/+//8AAAH///8A/wD/Av8B/wD//wABAP8A//8A/wAA/wAAAAABAAAAAAH/AAABAAEBAf7+/gAAAAEBAQEAAP8BAgAAAAL/AAABAQEAAP//AQH/AAAA//8AAgD///8AAAT/BP/+//////7+/v39+/r6+vv7+v38//4A/wD+AgEB/wD/AgH+//8CAv4BAAD+/f8AAAH/AP//////AP8A/v8A/////gAB/wABAAD//wAAAQEBAgQEBP79//////8DAAIBA/37/gECAv7/AAADAQIBAQABAgH+/f4A/gP9/v8AAP7+/gABAgD/Af///gD/Afz9/P7+AQACAgMCAwMAAQICBf39/AABAwAAAf//AQICBAEGBAIBAQACAQIBAgMEBAMEBAMEBgACA/4AAAD+AQH9/wAC/gIBAwEBAQEBAgAAAgABAAEBAQAAAf7///v6/PPy8+Ti4uzq6fz6+P3+/QD/AQAB/wAAAAEA//7/////AP///wAAAAD+//8AAP8AAAAAAAAAAAAAAP7//wEBAQAA/wD/AAAAAQAAAP8AAAAAAAH/AP///wABAAEAAP4AAAEA/wAAAP//AAAA/wAAAP//AAAAAAAAAAAA/wABAAD/AAAAAAAAAAD/AAQDAwL8/f/+/f7///8A/wEDBAT+/f3+AP0GAwIBAAD+/f4DA/7+APv8/QEBAgMBAAEAAQEAAv8A/f4CAgL//v////79/v3///4AAP//AP8B///+//4A/gEAAAD+/v8BAgECAAEBAQH+//8BAAACAf4AAAL//////wD//////wABAf7+/QEAAQABAQL/Af/+/v4B/wAA//8A/wD//v8AAwAB/wABAQD/Af8A/wEAAgEBAAEBAAD/AQAAAAAAAQEAAQD/AAAAAAD///8A/wAAAAAAAAABAQH///8AAAAAAAABAQD+/wD///8AAQD/AP8BAQECAQIAAP/+/v4AAQAAAQIA//8A/v8A/wAB/wD///8BAQEBAAEAAP8AAgEB/wEAAf8AAAH+/v//AP8BAAEAAAD//wEAAf8B/wD///8A/wABAgH+//0AAAEBAAAAAQEBAAEAAQAAAAAA//8BAQEA/wAAAAEAAAABAAD/AAACAgAA/wD/////AQEBAgD//wEAAAD///////8AAQD/Af8AAAD//wIEBAIEBQX9/Qf8+/v8/Pz+/f3+/Pv9/Pz/APz//wEA/gD+AQAA//wAAQICAQAAAwABAQMB/gH/AQH//wH/Af4AAgIA/PsAAgH//v0AAP8A//8AAP///wD+AwMA/QAAAv8A/gIAAQADAwIBAgIDAP//Av7+AAAAAP///wH+/P3+/v4AAAEDAAEBAQQBAQL/AAAAAQEAAAACBAUEBAUCAwMBAAL+/wADAgICAwMBAQEBAQMCAwQAAgL/AAL+AAICAQMBAgMAAgIAAQIBAQIBAQIAAAAAAP8AAAD//wABAAH9/f719vbc2tjY1dPz8u8EBQUA/wD5+vr/AAD//v39/v4AAAAA/wAAAP8A/wD//wD/AQAA//8AAAAAAAABAAAAAAD///8AAQAAAAD/AP8B/wAAAAAAAAD+AAAAAAAA////AAAA/wD/AAAAAAEAAP8AAAEBAAD/AQABAP///wAAAAAA/wAAAAAAAAAAAAAAAAAE/wD/BQMF+v76AgID//7///3+AAIAAAAA///+/QD+//38APsAAwQFAwL+/v/+AP0AAAAB//4AAAT9AQAB//7+/v/9//7//v/+Af8AAQEBAAEAAQAAAP8AAAEA//8AAv8A/gD/AQAA///+/wABAv8A/v7/AQAA/v7+////AAAB/f7+BAMD/v4A/wD8AgIBAQAAAAIBAAAAAwMC/v7/AP8A/wL///8AAf4BAgEA/////gH+AgACAQECAAAAAAAAAP8AAAD//wEBAAD/AAAAAQECAQAB//79/wEAAgAB//8AAAD//wAA/wEAAgEBAP8AAAAAAP//AAEAAQIB//4AAP//AAEAAAEAAP7/AAAA////AQEBAAD/////AP8AAAEA//4AAQH/AAD+//7/AAEB/gAAAgEB//7/AAAB/f7+AwMC//7+AAEAAAD/AQECAQEAAAD/AP8AAAD//wEB////AAEB/wD//wD/AQABAQEA/wAAAQAAAQIB////AQEBAQEB/wD/Af8AAP8B/wEAAP///wD/AP4A/wACAwMC/wQD/QUF/v7+/vz8/fz9/Pz7/fz7/Pv6/Pz8Af/9//4DAAD///7+Av/+AAD+/v3+/v/8///9//79/v39AgIC/v39/v8AAAL/AAP+/wD//wEABQEB/AEBAP0B/QD9AgAB///+AP8AAQECAQMCBgED///+/v7//QH8Af3+AP//AwME/wAC/v/+/v3/AAEA/P3+AwIEAQMFAAECAAIBAgECAwIDAAIBAQICAQECAAMFAAIBAAEDAAEDAAIDAAED/wECAgECAAEA/wAA//7/AAH/AAH//gAAAfz++Pn75+bl3dza6ujn9/b1AAD/BgYGBgcH+fj4/v3/AAAA/wAAAP//AAD///8AAAEBAP7+AAEBAAAAAP8A/gAAAQD/AAEBAP7//wAAAAAB/wAAAAD/AAAAAAAAAAABAP8AAAAAAAAAAAABAAAAAAAAAQAA/wEAAP8A/wABAAD/AAAAAAAAAAAAAAAAAAAAAAAABAD/Af3//QQEBP38/f8AAAAA/wD/AQEBAP38/gEB/v0B/wIBAgEC//7//wH9/f8B/gECAQEAAQH+AgMC////AP7+/v8A/wD/AP////8AAAAAAP3+/QQEBP///wEBAf8BAAD/AP/+////AAICAQAAAP/+/gACAgAAAQAAAAEBAAD+Afz9/AMDBAD/AP79//8A/gQDA////wABAQEBAQIBAP8AAAIBAf4A/v8AAgEAAgAAAP/+//8B/QICBAAAAf8A/wEAAAD///7//wICAgEBAP7+/gABAQAA//8AAAAA/v//AQABAQD/AP7//gEBAQAA//7//wEAAQD/AAEBAAAAAf///gEAAQABAP///wICAgAA////AP8A/wIBAQAAAf8B/////v7+/wIBAf7//wAAAf///v7/AAIA/wEBAP79/gECAQIAAQABAAABAAAAAAD/AP///////wICAAEAAf8AAAABAAH/AQEBAAAAAQIAAAABAAAAAQIBAP4AAAEAAAEAAAABAf8BAAD//wABAQEAAAADAgEA////////AAMCA/3//gAEBAD+///+/vv9/P38/P3+/f37/P7//QD///z8+/z7+v/+/AAB/QH+Afz9Af4A/wEBAP4AAf8B/wACAgD/AgACAgH/AgD//wABAAIBAv4B/gEBAQABAQABAQMCAgAAAP39/gAB/v//AgAB/gIBAwIEAwEBAP7/AP7//wH/AgEBAP///wQB/wEBAwECAgECAwAAAAMEBQIEBAD/AQACAQEBAAEBAgEBAv4BAf//AAL+/wEC/gL+//7+/gEAAQEBAQECAgEBAQABAgABAvz9/u/u79zb2+jl4/39+wABAP7+/vn5+QUFBggICPj39/z9/AD///8AAAD/AAAAAAD//wABAAD/AAABAP8A/wABAP//AAD//wAAAAAAAAAA/wAAAAD/AQAA/wABAQAA/wAAAAAAAAAAAQAA/wAAAQABAf8AAAH///8AAQAAAAAAAQAAAAAA/wAAAQAA/wABAAD/AAT///0BAQH8+/v//wAAAAEDAwL/AAABAQICAgH8/PwEBAP/AP/8/PsBAgL/AP8DAwT+/gMBAQEBAP3+AwP/AP/9/f0BAAD//wD//v8BAQD/AAAAAP/+//8BAP8BAAAA/gEA////AgABAQH+//0B/wIBAQAA//////8BAgEA/v4BAwD+/QD8+/wDBAMCAgD//wH9/P3/AQEDAQABAgH+/////f7+AQECAgH///3/AQECAAIAAQEAAAH//v8BA/8AAAEAAQEAAP8CAAEAAAAA/wACAQH//wAAAAH/AP8BAAEAAAEA//8AAAAAAAH///8BAAAAAAD///8BAQH/AAABAAABAAD+/v7//v4AAAABAQIAAAAAAAAA/wD+//4AAQABAAD+//8CAQAAAQEAAP8BAAH/AAEBAP8AAAD//v8BAQABAAEAAP8BAAIAAAD+/v4AAAAAAAABAQEA/wEAAQEBAQD/AAEAAP8A/wABAQAAAQAA/wEBAAAAAAEDAQEBAAD+AP8A/wABAP4AAgIA/wAAAP//AAABAAEAAQH///4AAAACAAL///8AAv//AAAD/wX+/v/+/v7+/v7/AP79/P35+vgBAwT9/PoB/f3+/PwEAfsEAwX/AP4A/vz8/Pr9+wD///4B/wMAAf7+AP4BAgIBAAMA/v4BAv8CAwP///4A/wD9//0C/wH+/gABAf4BAQIAAgP///7+/f4AAQIBAP8AAP8BAv4A/wEDAAL/AAD+//8EAAABAgIAAQH///8CAgEBAQL/AQD///8CAQEAAAEAAP/9//4B/f7/Av/+/v8B//0AAf8DAAQBAwEBAQMAAQH5+fru7+3s7Or4+fgEBAMBAAX6+wD//v/8/PwCAgIFBgb++f79/f0B////AAAA/wD/AP8AAAABAf///wAAAAAA/gAAAAAAAAAAAQAA/wAAAQAAAAAAAP8AAQAA//8AAQAAAAAAAAAAAAABAQD//wAB/wD/AP8AAAAAAP8AAAAAAQEAAAAA/wAAAP8AAQAA/wEAAAAE+vr7BAUF+/z8AwIDAgEA/v7/AAAA/wD+9fn4AwME//8FAAIBAgIF/fz8AAABAQED////AAD//v8B//7+/v7+/////v7+AP//AAD/AAECAP//AQABAP3+AQQD/wD/AAD/AAAAAQAB/wD/AP8AAAAA/v8AAP7+AgEA//8A/wABAwEBAQMB/Pz9//7/AAIAAQICAQEA//7+/v//Av8BAQEBAgMBAQAAAAABAQEBAQEA/wD/Af8BAAEAAAL///8BAAD/AAAAAQEAAAEBAAAAAAAAAAEBAgEA/f7+AAD/////AQEB/wAAAP///gD/AgEB////////AQIB/////v7+AQIBAAAAAQEBAAIBAAABAQABAAAB////AQD//v/+AAABAQABAgEA/wAAAAD/AQABAAD/Af8A/v7+AAEAAwIC///////+AAABAQH/AAAAAQAA/wAAAP8AAQEA/wD+AQADAAAAAP/+AQAAAAABAAAAAP8AAAEAAAD/AQAAAAEBAf8AAQAA/wD/AQABAAAAAAAAAAEBAQAA/wAAAf8AAAEB/wAAAgAA/wAAAAEB/////wEBAQD/AgEBAAMD/wAA/gT/AwYG/fz8/v38/Pv7/Pr5/fz7/fr5/f/7/v0BA//+//7+Av78/wD/Av///wIAAP/9AQAAAgP//wID////AP4AAQH/Av8DAAH///0BAgL+/vz8/v/+//7//wEBAQEBAAAC//7+AAAA//7+//79//8A/f78AQEAAwAE/wH9/P79AAECAQH7AAEDAQIC/wEBAgMEAwECAQAB/wAC//8AAP8A/gAAAgEB/wADAQEC//8A+/v97+/w5OTk7Orp9fX0/Pr8/v//AAD+AP8AAAEA/Pv8AQIBBAUF/v///v7+AP///wH/AAAAAP8A//8AAAEAAP8AAAEAAP8AAAEAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAEAAAAA//8BAAAA/wAAAAAA/wEBAP//AAAAAQAA//8AAAAAAAABAAAAAAEAAAD/BPz8+wAAAQMCA/v7+gIBAgEBAAAAAAECAgICAgAAAP3+/gL8/f8DAf8BAgEDBP/+/wAAAAAAAQAAAPz9/f79/QD///7+/gAA/wAAAAH+/gEBAQEBA/8A/wD/AAEAAQAAAf4A/wAAAAQDBPv++/z9/AMCBf7//gAAAQEAAAAAAP4AAQEBAQIDAv39/QMBAwH/AAECAQAAAwEA/wEBAgEAAQEBAQAAAAAAAP8AAP/+/gEBAv8A/wEBAP//AQAA/wECAf8AAAEAAf8AAAIAAf8A///+/gEBAQAAAP//AAICAv/+/v8AAAAAAAIBAf/+/gAAAP7//wH9/wECAQECAQEBAQD///7//wAAAQEAAQD/AP8A/////wAA//8A/wEAAf8BAAEAAgEBAf///wAA/wAAAP///wD//wEAAv7+/v///gEDBAICA////////v7+/wEBAQIBAf7/AAICAgABAP7//gD/AAAAAAAAAP8A/wIBAgH//wABAAEAAf////8AAAEAAAEBAP8AAQEA//8BAQAAAAAA/wEA/wABAQH/AAAAAAEAAAABAQAA/wEAAf4A/wABAAEBAAAAAP8AAQEAAQMDAv4FBP79/v8H//78+/r6+Pv6B/v7+Pz6+fwAAAL/AAMAAAAC+wABAgABAf79AQIC/wQAAf7+/f/+/v4AAQD//wD//v7//gEBAQECBP7+/wD+AQEEAP/9/v4AAAEBAQEDBAD//QABAAABAQEB/wH+/gD///3+/QACAQABA////wAAAQMCAQABAAEBAQICAgABAgEBBAIDAwACA/8BAgMDBAACAwIDAwEBA/7/APX09uTk49/e3O/w7/n4+P//AP///wAA/wEAAgICAAECAf7+/QIAAggGB/n6+f7+/QD+AP8AAAAAAAAAAAD/AAEAAP8AAAABAAD/AAAAAAABAAAAAAD/AAAAAAAAAAABAAD/AAAAAAD/AAAAAAEAAP8AAAAA/wEAAP///wABAAAAAP8AAAAA/wAAAQEAAP8AAAD/AAAAAAQBAQECAgEBAgIBAQb6+vsA//8A//8CAAEDAgL////+/P36//8FBQD//wH8AgQEAwX//wAAAAD9/v//AP4A//7+/v//AAD+/v8A//4BAQADAwX+/v4AAAEAAP4CBAQCAAAA//0A/wABAAECAgP+/v8AAAAB/wD+//8AAP4CAgICAAAAAQEBAQADAwMBAAD///8B/wIBAv///gAAAQAAAQAAAAD///8CAgD//wABAgMA///////+/P4BAgACAgIB/v8AAQD/AQABAAH///7/AAAAAAD///8AAAD////9/f4AAQEA/v8AAAD/Af8BAAAAAQECAQH///7//v7//wABAQEAAAAAAAEA////Af//AAEAAP////4AAP8BAAEA//8AAAD/AQAA///////////+/v8AAP8BAAH+//0A/wEBAgMDAwP///7//wAA//8AAP8A/wD/AAABAQEAAAD//v0BAQAAAQH///8BAAEAAAH///8AAgEA/wAAAAABAQAAAP//AAAAAP8AAAH/AAD///8BAAABAQH+AP8A//8BAQAB/wAAAQAA/wAAAAEAAf8CAAH/AgAA/wH/AP8BAAAAAAH/AAACAQL/AAIAAv/9AgEDBAMGBwf9/An+/P349/T4+fb9/Pv6+fgAAvsBAvoB/fr9/fwBAAMB/fz/APz///z////+//7/AP/9/v8BAP8BAQL+//4A/wD/AAIAAQD//wH///8BAgIDAQIBBAH+/v4BAv8BAQH//wD8/f4CAgEBAwMCAgIAAQECAgMBAQICAwQBAQMCAgMBAAIBAgQBAgIAAQICAQIAAQL+/v/6/Pvu7u7i4d/q6ef49vb///8AAAEAAP8AAAEBAf8BAgP9/Pz////9/f4DAwQHBwf5+fn+//0AAAD///8BAAAAAAAAAAEAAP8A/wAAAAEBAf8AAAH/AAAAAAABAf///wAAAAAAAQAB/wD/AQEA////AQAA/wEAAQD/AAAA/wAAAAAAAAABAAAAAAH/AQAA/wEA/wABAP8AAQEEAwMDAgEB+fr7AgMEBgYG+Pf3AAD/AP/8/QD9AQEBAAECAv4BAQABBQID/fz7/f0G/v7+AQICAQAA/v39/v7+//7+///+AAD//f7+AgEBAQH+BAME/wD//wD/AP7//wIAAAABAAAA/P3+AgED/wL9//7/AQIC/v79AQEBAAEA/wD///////8A/v3+AgEBAQL//wABAQABAQEBAAAAAQEBAgEB/gAA/wABAgEB/gD/AQEBAAAAAAD////+/v7/AAECAQIAAf8C/v//AQD//////wAAAQEB/wD/AAEA/v3/AQD/AAIAAAAAAQAB/v//AQAAAQAAAQAB/wAA///+AAAAAgECAAIAAP8BAAD/Af8A/v8A/wAAAgECAAAAAAD/AAAA//7/AP8A/wD+//7/AAD/AQEC/v/+AAAAAwMDAgIC////AP8A///9AAABAQABAAAA//7+AAIB/v/9AQAB//4AAQD/AQEBAAEAAQAAAAEBAP8AAQAAAAH/AAEBAAABAf///wABAQD/AAABAQEA/wD//v/+AP//AQEA//8BAQEAAAABAgIAAAAAAP8B////AAEBAAEAAQAA////AAAAAAAAAAAAAAEB/wD/AwMDAgMCBAQD/wcIAP4ACAoK/fz7/f399ff1/Pr59/bz+vj2//n2/v8AAP8AAP7/AQD+/gD/AAAB//8AAAEB//8A/wAAAgID/gD///3+/v4AAQD//gABAQABAQIBAAEBBAMF/v7+AQIB/Pz9AAAB/wAAAf//AQICAwQFAgIDAQID//8BAgMCAQICAgMDAQEBAQABAQAAAQIBAQAA+vv87u7w4uHg5OPh+Pb2///+AP8BAAD/AQAB/wAAAQID///+//////8AAAD9+vr6CQkIBQUF+wAA/v//Af8A////AQAA/wEAAv8AAAEB/wD/AP8BAAEAAf8AAAEA//8AAAAAAAAAAP8A/wAAAAAAAQEB//8AAAD/AAAAAAAAAQEA/wAAAP8BAAAAAAEAAQABAAEAAQD/AAEAAf8BBPr6+v0D/QEBAvz7+wEBAgUEBfn7+fv6+f///wACAgQEBQIDAwEC/QP9/QAB/Pz9/Ab//wD//////wEAAP7+/f/+/v7//QEBAf////8BAQD/AP7//gH+Af7//gD//AP/AwABAP8AAAEAAP7//wD/Af4A/wQBA//+/AEDAf//AAABAQAAAAEB/wEAAPv8+gICAgQAAQICAgIBAf////39/gADAgAAAP////v+/QEDAgH/AAEAAP8AAAD//gABAv///wD/////AQAAAf7//////gAAAP//AAEBAf//AAEBAf///QH/AgIBAf8A/wD///7+/wEBAP8AAAEA/wICAQAAAQAAAP/+/wAAAP///////wD//wAAAP8AAQD//wABAQEAAP8A/gAA////AP8AAAABAf8AAAMDAwEAAQAAAf///wEA//8AAP7+/wEA/wABAAAAAQIBAQAA/gD/Af//AAABAf8AAAD/AAICAgAAAAAAAAAAAf8BAAEBAAAAAAAAAAAAAAEBAf8AAQAA//8A///+/v///wEBAQAAAAIAAP8AAAEAAAABAQD+/wABAQEBAQH///8AAAABAAH/Af//AAAAAAAAAAEA//8BAgABAP//AAEBAwD/AP8D/wIDAgQEBf///wUHB/n5+QcJCfn39fj29Pr49fj39v0DBP8DBAL9/Pz8/AL+/fz9/f/////+/gEAAQH+/wECAAMAAgEBAQH+//3//QEBAgAAAQABAQIEBf///QEDAQD/AQEBAAEBAgAA/wABAAABAQABAf8BAP////8AAP8AAP8A//8A/v8BAQABAf7///f39ufm5eLh3vHx7/39/QEBAf8AAP//AAEAAAEBAQEAAPz9/v8A//8A/wAAAP///vn5+QcGB/////39/f/+//8BAP//AAIBAQICAf////7+/f8AAAD/AAAAAP8A/wAAAAAAAAABAAAAAAD/AAD///8AAAAAAAAAAAAAAQEBAP//AAEA//8AAAABAQAAAP///wEBAAABAAEBAQEBAQQAAAD+//8DAgEA/wH5+vkFBAUDAgT9Af38/P0B/v8AAAEC//8CAQL9Bf0A/wP9/Pv9/fwCAAT/AAAB/////v7///3///4AAAIAAP/+/v0AAwT//////wACA//9/f0AAgAB/wH//wEBBAL+//8BAQD+/v8AAAD/AP7//wD/AQL//v4B/wABAAEAAgEA/QD7+vr9/f0EAwQCAgICAwL//wD/AAICAAL9//4AAQAC/f//AAADAwMBAAEAAAH//wD+AP4B/wH+/fwBAAEBAQD///8A/wABAgH+//8CAAAAAQEBAgP//v//AAD//wD/AAD///7+/gACAwH//wEAAAD///4BAQEAAAD//v////7/////AAABAQEBAP//AP8BAAIAAP7//v///wAAAP/+//4A/wEBAf///wP/AAACAQABAQEAAP///v8BAQH///4AAAICAQD/AP8A/wD/AAABAAAA/wAAAAEBAP////4AAAEBAQH/AP8B/wABAQIAAAAAAP//AQAA//8AAQAA/wD///8AAAEBAP8AAP//AAIBAAABAAAAAAAB/wAAAQEAAAABAQEAAQEAAAD///8AAgH//wAAAAD///8AAQH/AP7/AAABAQAAAP8AAQEB/wD/AgH/AQEA/wACAgIFBAT+CQr+DRD9/fz39vXx8O759/T6+ff9+/kA+Pf9/PsB//sA//0CAAEBAwT9/v4B/QL//wAAAQAC///+//////8AAQD+//8DAwEA/gICAgEAAP8AAAIBAQAAAAEAAAD/AP//AQADAgEAAgH///////8BAAACAwMDAwQBAQH7/P319PTi4t/t7Or9/PwBAgL//v7/AP8AAAD///8CAQL/AAD//v8AAAABAAEAAAD/AAD+/f77/PsEBAQCAQL9/v3+/v4AAAAAAAH//v7////+/wABAAAAAP8AAAEBAAH/AQAAAAABAP//AAEAAQAAAP8A/wABAQEAAAAAAQAA/wABAAAAAAEBAQABAf//AAEDAgIBAQEAAAAAAAECAwIEAgICBQUG+Pj5AQEA/v7++/z7AP//BAQFAAAB/Pz8/f39AgID/wAB/P3+AQP//f3++/v7BAABAAEBAP7+/v78AQD////+AAH///7//////AP+BAMDAgEA//7+AgEC/v3+AQEBAAAB/P0AAQEBAAEB//7+/f38AgACAAAAAQAAAP7//wD//P3+Af///////v39/f37/wMFAQICAQEBAAIBAv0CAgID///+AAEB/gICAgEC/v7/AgIBAAACAgEAAAAB//7+//8BAAH+AQEBAAAAAQEAAP8A/v/+/wAAAAECAgEB/////wAAAgEBAAAAAQIC//8A/wD/AgAA//////8A/////wD///7+AAAB//8A/v/+AwMC/gABAQAB/////gAAAAECAQD/////AQECAgECAAAAAQEBAAAA/wAAAgAB/f7+/wD/AP8AAQABAQD//wACAQAAAAH/////AQEAAAAA////AAAA//8AAQIC////AgEBAAAB///+AAABAAD/AAAAAAEBAAD/////AAEBAP//AAABAP8AAAD//wICAgAA/wEAAAAAAQEAAAABAQEBAAAA/wD/AgEB/wAAAQEBAP8A/wAAAAEA//4CAAEA/////wABAAAAAQEC/wD//wD/AQEA/wAA//8CAgP///4GAwP+AwQIBwgM+fn2+/r4+ff18/Lv+vj3+/n4+/v5+vn5AQABAwP/AgIE/fz7/f79/wEAAwQF///9/v3/AgIBAQAB/gABAQD/AgMEAAACAAEBAAEBAgECAwIDAgIDAgMDAQECAAAAAAEAAAAAAQEBAwMD/P3+9vb28PDw9fT09/b2/wAAAAAAAAAAAP8AAP8AAAEBAQIC//7+AQEA//8AAAABAQEAAP//AgIBAQABAP8AAwMCBAQD/f79/fv9/f79AAAA//8AAAAAAP8AAAECAQEAAP8AAQEAAQEB/v//AQAAAAAAAP8AAQIAAQEC////AAD/AAIBAQEBAAABAwICAQEBAgMCAgID/v78//7/AwMECQsLBP7+Afv6/P39/fv8/QD///r6+gQEBAMEBQQFBgECAv39/gAA/wECAQAAAQABAQEBAP3+/QH7+wMFA//+/f/+/v8B//7+///+/gICAQAAAP38/QICA///AAD/AP8DAAD9AQEBAQEBAf/+/wIBAQECAf////////8BAf/+/gL//gECAv//AAMBAv7+/AD+/wECAfv5/AD+//8AAAAA/gAAAAECAgMEBAAAAQIDAgIDBQADBAMDA/7+AAD//AABAwAB/wAAAAD//gECAv///f//AP8AAAQDAgEAAf///wH///8B/wECAv///wAAAQAAAP8AAAECAAH/AQACAQD//wAA///+//8A/wABAf///wABAAQDA///AAAA//8BAv//////AAIAAAEBAQABAwH///8BAAEAAf8AAf/9/QICA/7//wEBAgD//v8B//8AAQEAAf8A/wAAAQD+AAAB//3+/wD///8AAAMBAwD+/wD//gAAAP8CAgAA////AQEC/wAAAQAAAP/+/wAA/wD//////wD/AAEBAQAA/wABAAD///8AAf8AAAAA/wAAAAABAQAAAAAA/wEAAAABAAH/AQAAAP8AAAEBAgAB/wABAQAA/gEBAf///wAAAAABAQEAAAABAP//AP//AQEBAQAA/gAB/wICAAICAwQECQcIB/7+/vv7+hASFvn4+Pb19Pb09Pb29Pr69wEA/vz7+fn4AP77AAAB/wIBA/8AAwMDAP////8AAAMCAv8BAgIBAgIDBAABAQD//wECBAEBAwEBAgD/AQECAQEBAgMDAwECAv7+//X19vH09Ozr7ubl5vDw8Pj5+f38/P7+/wAAAAICAv7+/QIAAf/+/v///gEAAQABAAAAAQABAAMBAQMDAwICAf///gMDBQMCAv7+/gABAAAAAAEBAQICAAD/AQIBAgAAAAEAAP8AAAIBAf7//wH//wEAAP8A/wABAAAAAAD//wICAgABAAMDAwIDBAoJCQUFBgABAAMDA///AP79/QIDAgsLDBAREAT6+vv9/P0DAwH+/f0AAAH////8/f0CAwT/AQEDAwT/AP3/AQH8/P4CAv///gD9/f8A+vv/BP8BAQD+//4AAP/9/P7///7//f3+AgECAgP///0D/f3//wAAAAADAQABAAEAAAIDAwP+//0BAwP//f4A/wD+AgH+/v8BAP/+AQACAQD8/P0BAQEBAP/////+/f4DAwT9//0CAQD+/vwA/////P/9/AMBAgICBAMFAAH/AAABAAEBAgIBAgL+//8CAAEAAAD/AAAA//4BAQEA//8AAP/9/f4CAgAAAAIBAQD9/v8BAP4EAgP+AP8BAAAAAAD+/wAA//8A//8AAAAAAAEAAQAA/wABAAABAgIBAQH///8CAgH////+/f3/AAABAQH/////AAEAAP8AAAABAQEAAAH9/f3///8CAAABAAH/AP8AAAH/AAAA/wD/AQEA/wAAAP/9/v0A//8AAAEBAQABAQIAAP////3//gEAAQEA////AAEA//8BAgECAgIAAf7//gEAAAAAAAAAAAACAQEBAQD/AAABAAH/AAAA//8AAAD/AQAAAAIB////AP8BAAD/AQAB/gAAAf//AAEBAAH/AAAA/wABAf///wEAAP8BAAH/AQAAAP//AP8BAAH/Af8BAAEAAP8A/wAAAQABAQD//wAAAAAEBAP+/gIDAwP+CAkHCg0NEBP8+vv29/X5+Pb29vX29PEEB/f8+vr7+/r7+vn///4CAQEB//8AAAAAAgIEAgEBAgECAQIAAQH//wECAgIBAgMDAwQCBAQCAgIBAgMA/wD7+/z3+Pf7+/34+Prx8O/y8u/4+PcAAAADAgQB//0AAP8AAQEBAAABAQAAAAD9/QECAwH/AAAA//8BAAACAwMEAwP+//4GBgcAAAD6+/sAAQAEBAQGBQQAAAD+/wAAAAEAAP8BAQL9/fz9/f4A/////f4CAgEB/wD/AAEAAP8AAAEFBAQBBAQBAgIHBwgNDg4PEBADBAUAAAD+/v8DAgEJCAgKCgoTFBMKCgkEAAAB9vf0BwYG/P39AAAAAwME//7+/Pv6AwQEAAABBQUF/f3+AQAA/f79A/7+/fz8/v79/f39AQD+AQEC/wD////+/fz+/Pz7AgICAwP+AQL9Bf8EAAAB/v7+Av4BAAEBAP///gD//gD/AAD/AgID////AP7+//7//v//AAIAA/8BAf///////gD////+/wEA/v/+AwQEAQD+AQEE/v3+/v77/vv7AgMCAQD//wT+Af7+/AD8BAEEAQACAQAA/wAAAQEBAP////8AAAAA/wD/AAAAAAAA//4A/wD/AAMAAQEBAP///v/+AQABAAEAAQEAAAABAAEB////AAAAAQD//v7/////AgMDAAEAAQAB/v7+////AAEA/wAAAAAAAP//AAAAAP///wAAAQIB/wAA/f38/Pv8AgIC/wQA/wD//////v79//8AAQAB/wH///////7+AQEA/wEBAQAAAAABAQIB//8A/v7/AAD/AP8B/gAAAAAAAQEBAf4B//8AAQH/AAAAAAAAAQABAAEA//8AAAAAAAACAAH/Af8AAAEAAAEAAAEBAP//AAIBAAAA/wAAAP//AP8AAAABAAD//gAAAP//AQEBAAABAgH///8C/wH/AQAA////AQABAAAAAgAB/wH/AAABAAD/AAAB//8AAQIAAv8BAAEAAgMA//8B//8A/gEA/v4BBAMCBQUD/QwMEP38+/oX/Pv6+/r5+Pn59PPx+Pj2/Pv7AP7+/f/+AAAAAAAAAgEBAQEAAgIDAgIDAQICAgMEBAQGAgMDAQEBAgME/Pv78/Pz9vb4AQAB8/Ly7Ovr8fDyBQUGFhUW/Pz8+/v79fX0AAAABwYG+vr6/Pv8BgkG//4A/f78////AQEBCAgIAAAAAgICAQEC+fj4BAQEAwICAgICCgkKAwUD9vX2/P39BwcI+Pf19/f9AwQE//7+CggHAQEB+vn6AP8AAQEABAUFBQYGCAgJBQcHDxERFRYYEBAQAgMEAAAAAf/+CQkIDQwMDQ0MDQ4MBgcHBAD///38+/sB/wIDA/v8/P/+/gEBAv7+/QICAgAAAP38AQABAfz7+wIA/wAAAAMDAwIBAgECAv/+/AUGBgEBAgAAAP///gEBAf/+/v4BAAD///39/QMDBP/////+/v4BAAEAAf/9/wABAP///wABAgAA//7+/gAA/wABAP79/gACAP/9/gABAQECAP///wICAf38/wECAQECAwEDBAED/gL9A/v6+vv7+f7//wAB+gYHAgIDBP//AP3//gEAAAAAAAECAQAAAAEAAf///////wAAAP///wD/AAIDAv/+AAAA/wD/AP0A/QIBAv/+/gIDA////gEAAQAAAQAA//8BAQACAgEA/gAAAP7+/gEBAQECAQAAAAD/AAIBAP39/v4A/wIBAQIBAQD///////7+//37/QEAAAIBAgAAAP7+///+/gABAQECAQEA//39/v///wAAAAICAgEA////AAACA/8AAAAAAQIC//7+/wAAAAAAAAEAAQAAAP7+/gEA/gABAQAAAQIBAf8BAAIBAQAAAAAAAQAAAP//AQABAAEBAQEA/wAAAQECAP///wEAAf///wAA//8BAQH//wAAAQABAAEAAQAA/wD/Af8BAf8BAAAAAAD/AAEBAP//AAABAAAA/wEAAP//AAABAQH//gEBAQAB/wABAQEAAP//AQAB/wAAAAIAAQECAAD/AQIFBQQA/gD/Bf4ICf///v39/gAA/vz8Gvz7+/j49/j49/8A/wL/AP7//wICAQD//wIDAgMCA/8AAQIDAwUFBwECAgEAAP//APX09AQEBwoLDvn5+AEBA/7+/wcHCf8A//v7/Pn5+P39/e3s7AMDAwsKC+7v7gQDBAUFBPn5+Pn5+f///v//ABAQDwAAAPj4+fz8+g4ODQUGBwICAf7+/gAAAP8BAAoLDAMFBPv8+/0A/wkMDQcHB/v7+wkJCfb19fT09QMCAwMCAgYIBwQFBQ8REQsMDhkaGhISEw4ODQYHB////wQCAQwLCw4ODQkKCQQDBAIDAgT+/f3+/v74+fkLCgsDAgL9/PwBAQECAwT9/fwAAAH7+vr/AP//AAEE/wf8/PwFAwUDBQMBAQH9/v0AAQEFBAUAAQEBAQEAAAD+/wAB/////wD7/PsBAQEAAf/9//0CAAL9/f4CAv//AQD9AP8AAgEBAAL+//4BAQIBAAD//wD+/v8BAgD9/fwCAAL+//4DAgMEBgX+/f4C/wIBAQECAgUAAQQAAQP+AP///f7//v39/PwAAAIABAABAgIBAQEAAP/+/v8AAAEBAP//AAAAAP8AAAABAQH//////f8CAgIBAQIAAP8BAAL+/v7+AP/+/f0CAQH/AQAAAP4A//8AAAEAAP8AAAH+//4AAQD//wD///////4AAAEBAQAAAQABAAEAAAD9//0A/v4AAQH+/gABAgECAQMCAwL//////v8AAf8BAAIA///9/v3+/v8AAAAAAQD9/f4AAP8BAQD//v8A/wEAAAABAgECAQH+/v4AAAEAAf7//gH+//4BAAAAAAACAQL/AwMB/wD+/gADAwH///8AAP8BAQIA/wAAAP//Af8BAAD//wABAAD///7//wAAAP8AAAEAAAAAAAABAP/+/wABAAABAP8A/wABAAAAAAAAAAH/AAAAAf8A//8AAf8AAAABAP8AAAD/AgEBAAAA/wH/AAAAAQAAAAABAAEAAP8AAAEAAQEBAAAAAAAA/wP/AP8DAAAAAAD//wD///4GBgD/AP8MDQ39/f39/Pz/AAAB/wABAwICAQIAAP8A/wD/AAABAQECAgIBAQL+///6+voBAQIKCwz9/v75+fkKCw4JCgsTExb3+Pf5+vn39/gAAP8UFRUNDQ/t7esbHh/6+/r49vYFBgX39/X9/fz8/P0VFRTm5ecGBwj+//4VFBX4+Pjx8PD8+voOEA8PDw8EBQT8+/v8/P36+/oODQ3//v8HCAj8/Pzv7e8TFP36+voIBwj8/v4JCgoLDA0VFxYcGhsNDQ4LDAsHBwYFBgUGBgYHBgUGBQUGBQUAAQH/AP8E/f79BwgI9fT0/P38BQYG/v7+AgIBAQH/+fj3////////AQEC//8A//79BQUG9vn5BQUGBAUEAwP/+QAB/wf+AgIDAQAB//////79/gECAQEC/fz9/AH8AgIBAAECAAMA/f79/wD/AQEB/wD//f38AAABAgICAAECAAEB/wAA///+AgAB//79/f/+////AwICAwECAAQC/v7/AQEBAQAB/wECAgMABwcJ+/n4//8AAAAAAP///v79AP7+/wIBAAEA//8AAgEB/wEAAQICAQEA/v3+AQACAQEA/wD//v7/AgL+/wABAv//AAAAAQAA////AAIAAAAA///+AP8AAQABAAAB/v7/AQD/AP8AAP///wAA////AQIBAAEBAgMA//7///7+/f79AAAAAP//AP8AAAAB/f/9/wD/AQABAQIBAgAB///+/v3+/v/9AAABAAEBAgAA/f79AP//AgIDAAD/AQD/AAECAP///P7+AQABAQEA/////f7+/wD/AQABAAABAAAAAf8A/wEAAf///f3+AQAAAgEB/gD/AQAAAQECAP8AAP8AAAIBAP////8BAAD/AAABAP8A/wEBAQAA/wAAAAAA/////wEBAQAAAAAAAAD/AAD//wAA/wD/AQH/AAAAAAAA/wAAAP8AAAEA/wABAQD/AP8A/gAAAgAAAAEAAAECAP7+AgAAAAEA//8AAAAAAQEB/wAAAP8AAAD+AgIEAAD/AP8AAAUB//7///////8AAQD/AAEBAQAB/wD/AAAAAAAAAQEBAP8B/wD+/f3+CAcGBQQE/f79//8ABgYHBgYH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AAABBQUF/Pz7BQUF/v/++fj2BAQFAAECAgIC/v7+AgEB/wABAAACAP/+/v38/P8AAQIA//v9AgMD/wP/AgECAAABAQECAAEC///+/f3+APr7BQYCAgMC/f39AwICAAD+/v7/AgIC/wD//v/+AQEBAQAB//39AAEDAgAA/gAAAgEAAgED/v79/wH/AgAAAAIAAAEBAP//AP8B/wD/AQEB/wAAAAAA/wD/AQAA//7+//8AAQEB/////////////wD/AQEB//7+/f39AQAB/wD///7+/v4A/wD/AQIBAAD/AP///Pz8/v7+AwMDAQEA/f7+AwIC+/r7/v/+AQICAQABAQIAAP8AAQIC/v7+AP79AAEBAAABAgEAAAICAAD+Af4C/wIAAAABAP//AQAB/////wH/AQEBAAAAAAAAAQAB/wAA/wD/AgAB/wAAAQEAAP//AAABAAEBAP//AAABAAEA/wD/AQAAAP8A/wAAAAAAAAAA/wAAAAAB////AAD//v8AAAD/AP8AAAAAAQAC/wD+//8AAQEAAAAC/wD+AAAAAf8A/gH/Af4A/wEAAQAB//8AAAAAAAAA////AQABAAH/AAEAAf8BAQEAAQIA//8CAQD//wEAAAAAAQEBAQAA/wD/AQEAAP8C/wH/////Av8C/gD+Av8BAQIBAAAD/gMC/v4E////AP///wAA//8A///+AgIDAAABAgL/AAABAgICAAABAAEA/v7+/v4MAQD//////v7/AQEBAgICAAAA/v//AAAAAQAAAAEAAQICAQAAAQEBAAD///7//wEA/f39AP8A///+/v7+/Pv6/wD/AAEA/v7/AQEBAwECAgIBAAAAAwMCAgH///8A/v7/AQH/AAICAAD+//8BAf//BAwNDfj4+AICBPz9/gQCAv79/QAEBPr5+/r7+f79/vb19wMDAwIDA/39/AUEBgQF//7+/wQDBPv9/PT08vv7+wkMDP3+A/z9/QUEBP8AAQMDAQEAAP///QEBAQD/AQUE/wIDAvz8/QEAAAIBAP7+/vr6+gECAfv7/P//AAICAgEEBf7//wACA/z8/v/+/QD//wEAAf8D/QD9AAAAAf8A/wAAAf8B/wICAgEAAf//////AP/+/v78/v3//wcIB/7+/gD/A/8A//8AAAH+//8B/wIBAv8AAAAA/wAAAAD+/f0BAAICA/7+/wEB/AECAf//AP8A/wD+AP7//gEAAQAA/gIAAf7+AQEAAP3//wIBAAEBAf//AP///wD//wABAP//AAAA/wEBAgD/AP7//gD/AAIEAwAAAP39/v///wICAgH/Af7///39/P8A/wMDAwMDAwAA///9/fz9/P///wMCAwAA//8A/wD+Af7+/v77+wABAAEBAQIBAf8AAAADAgIA/wEAAgECAQEAAP8A/v//AP7+/v4AAQABAAMCAwEBAQEBAAEBAwECAAD+//4BAAH/AP8B/wD/AAAB/wD+/wABAQEBAQEAAgEBAP///v8AAQIAAP//AQAA//8A////AAAA/wAAAAAA//8AAAEA/wAAAv///wEBAQD/AAAAAQEA/v8AAQAA//8A/wD/AAABAAAAAAAAAAAAAAABAAD/AAEAAQABAAAAAAAAAAAB/wEBAAAAAQEA/v8AAAABAAD///4AAQEB/wD+AP8AAQEA/wAAAAAAAAAA/wEBAAMBAQD/AQABAQICAf//////AAAA/////wD/AQABAAEBAAEBAgAAAAEBAgEBAAEBAf////7+/gAAAQAAAAAAAP8A/wH/AAABAAAAAP///wAAAP//AAAAAAECAAEAAP4AAAIAAP8CAP7+/gIEAQD///8AAv7+/gMCAf8A/wAAAAAA//7+/wH///8A/wEAAAEB/wEAAf///v7//wIAAQD+/wABAQABAf//AAQGCQr/AAD9/PsNDQ/08vL8//z4+foBAQH6+foBAAD9///9/v4HAQIAAAH8/f0BAf3////7/v7///77+/r5+fr8/v0MDQ3+/v3//f0BAQL/Bf8BAwT/AAD+/v7//wEBAQEDAQP9/f0AAP/+//4BAQH7+/sEBAQBAQH7/PwEAwP+/v//AAACAv3///79/PwCAQIAAf/8+/4BAAAAAQEC/AEABgECAwMA/wACAgH+/v79/f0AAAEBAAH/AP38+vwCBAP9/v4CAAEAAP/9Af4BAQD+AP4CAQIBAwH+/v8BAQH//f////4CAQL8/P0BAgEAAAEB/gAAAP//AAACAgL/////AAIAAP8AAAEA//79AQAB//7/AQH//f4BAQIAAf///wAAAAABAAAAAQABAQICA/8CAgH//v7///7+/v38/f7+/v/6+voCAQECAQD//v8BAgD8+vr39/gAAQABAP8FBgYFBQUBAgIA//8A/wL/AP8BAQADAwT+AgMCAgL/AgL+/gAAAv7+/f0BAAIAAAEBAQEBAQD///8A/wD+/v4BAQEBAAABAgAB/wEBAAEAAQD/AP8A/wAAAP8A/wD///8BAgEAAAH//wABAAABAQEAAP//AQEAAP/+/wABAQEBAf7//wD/AP///v8BAQD/AAAA//4AAQEA/wAAAQEA//7/AQAAAAABAAAAAAAAAAD///8AAAAA/wD/AP/+/f4AAAAAAAAAAAACAgIBAQAAAAH//wAAAP8A//8AAgEA/wD/AP8BAAAA/v//AAAB///+AQAAAAEAAP8BAQEAAAAAAAAAAQABAQAA/wL/Av8A/wABAQAAAAH//v////8BAgIBAgIBAP8AAAH///8A//8AAAABAgAAAAEBAAAAAAAAAAEAAP///wAAAP8AAQEA////AP8AAP///wD//wACAQH//wD+//7/AP8A//8AAQABAAACAgABAQIAAAD//////v4AAf////8AAAAAAAABAAD///////4BAP8A/wH+/wAAAQEBAAEAAAAEDA0PAgID8e7tCAYH8v////4A+fn5CQsL/wABAQICAP79//7/+/z8AwEC/P78BAID/wAA+/v8/Pv8AAEAAQIC/P39BAQECAgJ+fv9AgMCBP/+AAX+AQEC/v4A/v35AAEBCAMHAQEC+/r5AAEBAwMBAAAAAQICAAAB/f3+AAAB///8BQUG/Pz8///+/fz7BAMEAQEB/f39AP////8AAgID/f/+CQgJ/AD+Av4B/////////v79AgADBAEC+/z7BQEAAwIC/QD/AQEBAP7+/gEAAQAA/wEA/wECAAD//v7+Af8A/Pr+AgMCAgIC+/v7////BAUEAAAAAf///wAB/f7+AwEAAAABAAD/AQIA//7+AQIDAf///f/9AP7+AgMD/////wD/BAID////AAH+/////fz9+/r6/v38+fr5/f38+fj4AQECBAQE+Pb2+vn59/f19/X1BAMDAwQC//8AAwMCAAEC//8A+/z8BwYGAwIDAQMDBAUGDQ8QCAsLBf0GBQUGAAACAgICAAD/AAAA/wAAAP8AAQABAQECAAEA///+AQIDAQABAP8A/wL/AP8AAAAAAQD//v/+AAEAAP8AAP4AAAL/AAEAAAABAAAAAQAB/wD/AQABAAD///8A//8AAAD//v/////+//3+////AAAAAwIDAAAA/wEAAgEBAgIDAAAA////AAEAAAD/AAAAAAAB/wD/////AAAAAAAAAQAAAAEB////////AQEBAQEC////AAD///3/AAEAAQAAAP///wAAAQEBAAAAAP8BAQEA/wABAQEA/wABAP//AAABAAABAAEAAgAB/wEAAAAAAAAAAAEBAQABAQEBAQAAAP8B/wD/AP///wAAAAD/AP8AAAD+/wAAAAAAAQAA/wD//wD/AP8BAAD//wD/Af///gD///////8A/wIB//7//v79////AAAAAQEAAQEBAAAAAQAA/wD/AP/+///+///+Af//AP7/AAIC//7+AAAAAf//AAD//wD+//8AAQEC/wAB/wEABBASEgMDA/Ty8fj6+gQEBff39ggJC//+AAgIC/f39QECAwAB/v/+//8DAPz8/PsDAwABAfv7/Pv8+gD//wAAAPr6+f/+/RQVF/3+/wEBAQYFBf79/gIDA/8AAgD//wABAAICAQMDBPz8/f8A/gEABvr++wECAwQDBf39/gEBAgAAAf39/gEAAP/+//z7+wD+/wQEBf/+//7//v/+//8AAP/8/vj5AQQDA/wAAAIAAf7+//8AAP78/f4BAgICA/v8+wEFBgEBAv7+/wAA/////wIBAgEBAP///wD//wAAAf7//gAA//37/AAEBAQDBPr8+/38/gECAQD///8A/f7+AAAC/gEBAP7+/wH/Af/+/v39/QEBAf7+/wAAAAH//////wAAAP8AAP8AAP78/f39/fn49/n49vv6+vr5+fr6+f7+/gMDA/v5+f37++/v7fj49wMCAQQDA/38+/b29gAA/wMDBQMDA/3//wMCAwYGB/8AARQWFwMDAvv7+gkKC/8ICQUGBv8CAwMDAgACAgD/AP8BAQQBAgEBAQEBAAEBAQABAP8BAAEAAAEAAgACAAD/AP///QEBAf8A/wAA//4AAAD+AAEA/QEBAgIBAQABAgAAAf8A/wEAAP8BAAD+//3+/f3+/f79/gAB/wAAAAEBAAD+AAICAwAAAQAAAf8A/v/+/wAAAAD/AQEBAQAA/////gABAAAAAQIAAAABAP//AAD//v//AAAA/wICAv///QAAAAEBAQAAAAD/AAABAAAAAAAAAP///wABAAD/AP//AAABAP//AAAAAAAAAQAA//8AAAH/Af8CAAH/AP8A/wAAAAEAAAACAAAA///+AgAB//7+/////gEBAP//AP8A/gD/AQEBAAAAAP8AAAAAAP///wAA/v///wAA////AP7////+/gAAAP7/AP////7+/v///wD//wABAQEBAAAAAQAAAAAA////AP7+/gD+AP//AP///wMBAAEA//7+/gAAAQAA/v7+/gAAAAECAAABAgD/AAQJCAoCAQP19PTu7ewKCwzy8/MJCQX7/PwBAQEDAwMA//8AAgP///8BAAECAgH6+voDAwP7+vr5+vj//v4BAQD//wD7+vr9/P0PEhP+/f3//wj9//4BAQIAAQECAQP+/v8CAwMEA/7+//77+vsBAQADAgT6+fkBCAICAgL7+/sGBwf//wD/AP/////+///6+/wBAgT+///9/f79/f0D/v8DBAP/APv+/f0CAQL+AgIAAQADAQL7+/z/+/oFAQYCAQL8APsEBQUDAwT8/fz//v78//4FBQUB/wH/AAEA//7//v/9/f0BAQH9/f3///8A/v/9//z/AQEDAgL+//3//v///wIA/wAAAQAA/v8BAQEA///9//7///8DAgT///3+/v8BAgP9/f38/Pv6+vj8/Pz+/Pv9/Pv29PT5+Pf8+/r49/j49vT39vb9/fwBAP/29ff3+PUDAgP8/fwDAgIJCAn4+vIDAgIDBAT8+/38/P0EBQfy8vIHCAgNDxAVFRYMDg8ICQoHCggHBgkDBQQBAQIBAAEAAP//AAAAAAH/AAAB//8CAf/+/v8BAgABAAD///8BAAD+//4A/wEBAQEB/wD/AP7+/wABAf8AAQIAAf8BAAECAgP/AQD//v7+//7///7+/v39//0A/f8DAwMAAAH/AP////8BAQH///8A/gEAAAAA////Af///gABAAD/AAAA/wEBAf//AQEA/wAAAf8A/wABAAD+AAD+//8AAP8AAAAB/wIAAAAAAQD//gAAAAAAAP8AAAAAAAAAAAAAAAABAQABAQEAAAEAAAD/AAAB//8AAAD//v//AP//AAAA/wAAAAAA/wAAAAAAAP4A/wH///7//wAA/wD/AP////8AAP8AAAH///8AAQAA//8A////AP8AAAD//v7/AAD+//8A/v8AAQD//wD+/v//AP4A/////////gAAAAACAgIAAAABAAAA/wAA//8AAAAA/v4AAQEB/wH///7///7//wD///8AAP8AAAH+//////0AAAEEBAUGAgQEEBMV9/j6AP78Cwvz+/v7CgsL7/n2////+vn5AgIDAwMD+/v7/f3/+fr4CQgI/wD//f38/f38/v79////BPsE//7/BAUEBAUH//7+AwUEAwQF/Pv8BQcHAwP8AwMB/wYG/v39/Pz6AvoB/gQA/f/+AAECAwMF///+/Pr6BQYG/Pz8AP8A/v4A/Pv6AQECAQIB+vv6AP8AAP//AQEA/wD/AAAF/P77AgMCAgEDAAMCAgIB/f7///r6BQQF/gAAAQL+AAH9AQAA/f7//Pv7/f38BQUGAgEB/wD/AQAB/f39AP8AAQICAgECAAEC/v/+AP/+/QD///7/AQAB/v7+///+AQICAP7+AAAAAAEA/v3+AAAAAQYC/fv/+/v7AwMD/f399fTz/Pv5/Pv6Af8A8vDv8O7s+Pb1+Pj4+/j4/Pz7+ff5AAAB+vv6AQEACwsK/f7+AgEDCAcH/v////8AAAAA+/r79vj5+/v9/v71B/X0CAkI/fv5+/j2CgsMDRAQEhMV/Qz+BgcHBQUGAgICAAEBAAACAwMCAAEB//8A/v7+AgEBAP8A/v3/AAH/AQEBAP8BAQEA/wD/AAAA/wABAAEAAQAA/wAAAf8AAAMBAAEAAP//////AAD//wAA////AP8B/wEA/f//BAIDAgIDAAABAP///wEBAP//AAAA//7//wD+AAABAQAA/wABAQH/AP8A/gAAAAAAAQEAAAAA/wAAAgEBAAAA//8AAAD//wD9AQABAQAB//8AAAD/AQAA/wAAAAAAAQEBAAEAAAAB////////AAEAAQAB/wEAAP///wAAAAAA/wAAAQAAAAAAAP///wD//wAAAP8B////AAD//wAA////AAEBAP/////+/wD/Af8A////////////AP//AAEB/////////v//Av8A/////////v/+AAD///7//wAAAQEA/v7/AQAA/wECAgEAAf8B/wD/AAIAAQAA/gD+AQAA//4A/v79//79AAEBAAEBAP/9/wABAAABBAQDBAECAgwNDhIS+Pf39hASFfv6+AEA/wQCA/0DAvz8+wAA+wMEBP79/gUEBfv8+wX9BQAA///+/vj39wABAf///voA+vn8+wICAgsOEAYFBf749gkKCvb39wX5CAcJCAEA//////39/fv6+v///wT+BQECAwAAAQMD/QECAv39/QECAgAA//39/P8AAPv8/AAB+gYGBv38/gMDAvz9/QABAAH/AgD/AQECAfz8/AMD/wABBAEAAAIAAP/+//v8/AP+/gD///z8AgABAf///v39/f3+/f79/gMDAwAAAAIBAv7+//7+/gL+/v4CAwIB/v7+/gEBAf/9/QACAf7//gIBAPz8/f7+/QEAAP///v//////AP8AAP39/fz7+v39/Pz7+/X19P37+fr4+fj49/v6+vXy8vXz8vn5+Pz7+wD//v7/APn6+gAAAP8A/wYFBvf4+fj5+f//APP09f7+/vn6+gkICvn5+Pr8/QAAAAQCAv39/f3++wUFA/r5+Onn5g0QEPTz8xYYGQwODwkKDAMFBgQEBQMC//7//gH/AP8AAAEAAP3/AQH+/f///wABAQICAwAA/wAAAQD//gABAAABAQEAAAABAgEBAQICAgEBAQAA//8AAQEBAv8AAAAA/wAAAgECAAIBAQIBAQICAwECAQEBAQAAAP///////v///////v7//gD/AAAAAAMCAf8AAv///////wABAAEBAgEBAQIBAQAAAQD/AAD//wAA/wAAAQECAQAAAAEAAP8AAP7//////wIBAv8AAAEAAP8A/wAAAAEAAQAAAP8AAAD/AAAAAAAAAP//AAEBAAAAAP//AAAAAP//Af///v///wEBAP/+//8AAAAAAAH//v4A/wAAAAAA/////v//AP///wAA////AAD/AAD///7//gAA//4A//7+/gD/AP7//v///////wAAAAABAAEA/wEAAQICAP8CAQAAAAEAAf8AAgD//v8AAAEBAf8AAP/+/v3+/P39/gEBAQABAf7//wD/AAQDAgMAAQELCQr9EBEGBgcIBwn18/L6+vb+/v7v7esGBQb3+fgA/P3+/v4CAgMEAwT7/PsCAgH/AAD7/PsBAQP//v3///76+voCAQIDBgUAAAn39/f+/v74+fn2//YO/g4A/f0DAQH8/f38/PwAAQD/////AAEA//8EBQYBAQEBAgH8+/sGBwj+/f38/f3+/v75+fgBAQAAAAD9/fz//wD///4CAwMCAQIEAQT+/v/8//z///8CAAEAAAACAgH+/gD+/f4BAQH//P0CAwIAAQH+/v4BAQEAAP78//4BAAH8//8DAwIA//79/v8B/v7+AAEAAQAA////AAAAAAD///79/v4AAP7+/v4A//8AAP8A/wD/AAAA/wD39PP7+/r39vX29vYGBQPz8vDy7/H08/P9/fz5+Pf9/Pz//v/+/v7+//0AAAL6+/oDAwMGBgbw8fL+/v719vf+/wD/AAD8+/sAAQIFA/b9/f7+//4BAAECAQACAgEGBwT09PUDAgMGBgX7+/v29fb29fUYGRoQExQJCwwCCgz//wMD/wIBAQABAAEAAQEAAf8AAAAAAQEBAQH/AP8B/wAA//4AAAD/AAAA//4AAQL/AQAAAQD+AP8CAAD//wAAAQD//wD+/wAAAQIDBAX//v4BAgECAQL/AQABAQL/AAABAP8BAAD/AQD//v///////v////8AAAD//gD/AP0BAAAAAAABAgECAP//AgD/AAIBAgIBAgH/AAAA//8AAQD+/v4BAQEAAAD//wD/////AAD+AP8BAf8B/wL/AP8AAAD/AP8AAAEBAAEBAQD+/v8AAP8BAQH//wEAAAAAAAAA/wH///3///8AAAD//gD////+//8AAQAA//////8BAQH///4AAf///wAA//8AAAAA////AP7//v7+AP8A/v//AP///v7///4AAAEAAAD//f0AAQAAAQEAAQABAAEA/wD//wMBAAD/AP//AP8AAP///f3/AgMBAQH+///6+vv9/PsAAAAA///9//4A/wEEAwIC/f7+BQUFBgYIBAQG/Qv8////APUADAAB9fX1DgIE++zrAAABAAEA+fr7CQgI8/TyCAcHAwID/v4ABAP//wEA+/v9AQIB9/f2BfTyBQQF+fj3/fz7AgID+vr5AgAA///+BQYE+/z+/Pv8/v8ACgoE+vr5/v3+CQsC/Pz9AwQDAQAB/wAABAQF/v79/P38AgEB9fX1BgUF/f79AgEB/v8CA////AICAQECAQIBAP/+AP7+/f///v7/AQIAAwME//8A+fn/AwQC/P3/AwID/fz9///9/QIDAQEBAQEBAQEA/f0AAAAAAAH/AwEE/f79AQICAAAA///+AAAA//7//gD+AP//AAD+AP8A/wAAAf8B/wD/AP/+/wD+/f38/v79/v388fby9/T19PPx8PDx+vj4/////f79AwIDAwMD+vv7/v7+//8A/Pz+8/P29fb2/wEB/////gABAP8A/wAB+/v6/AME/f3+///9AwIDBAMDAP79+fr69PX2BgQEEhAR9PPz8fHy8O7v7+7tHR8gGRwdAwIDBQcIAgIFAf8A/wD/AAABAQECAAABAQEB/wD/Af8B/wD///8AAAD/AP8AAQEBAQEBAAAB///+AP8C/gL///8BAQAA//8AAQEAAAACAAH/AAAAAQAA/wAAAf8A/wD//wAA/wD/AAD/AP7//////v3+AP///wD/AQD//f////7+AAH/AAABAv4C/wEBAP8CAQD+Af4CAQIBAQEBAQEBAP8AAAEAAAAA//7/AAEAAQEBAAD/AQAA//4A/gD+AP8AAAABAQEAAQEB/wD///4A/wD/Af8A/wAAAAAA/wD/AAAAAP/+/////wAAAP/+//8A///////+AP4A/wAAAAAA////AAD+//8AAf///wD/AQAB/v7+AAD//f79//7+////AAD//v//AP//AAAA//8AAAAAAf8BAgIB////AAEB//8AAP3+AAIBAAD/AQD//v8A/v//Av/+AgECAP8A/fz7+vr5//39/P39//7+////BP7//gAAAAEAAQICAQEBAgUFCRMTFP7+/ggJCvHx8voC9wsNDvX19AgECfHw8AcGBv////7/AP8BAf////z9/QAAAP8A/wD+APv7+/X09Q0MDf39/P38/AUFBfr5+gD/8/39/QMEA/7+APz7/fn4+AICAfv9/vn5+AQGBgEBAfn4+AQDA/7+/QgI//v6+f39+/4BAv79/f7+/QMCAgADAwL///z+/gD8/AEAAAMDBAEBAP3//f/+//7+/gIAAv39+AEAAv4A/wX9BAD/AP0DAv7+//z8+wMDAwMDAwAAAAABAQQDA/7+/gICAv4D/QAAAP7+/gEBAQEBAQICAQADAf8A/wEA//7+/v/9/f8AAP8A/wL+/vv7+vz6+PDt6/Tz8e/t7fb39/n39/v7+/r6+/r6+vv5+f8BAAsKCwQCAv3+/fb19wIDA//+APX39/r6+wcJCPz9/gEBAv3+/wAAAP/+AfwA/f3+/gEAAQH/APv9/gIC/wEBAQD/AP3+APDx8QD//gMEBAYGBvz8+vz7+//+/v//AQ0PEQgA/wMDBAEBAAEAAgL//gABAv///wEBAQABAAD/AAEBAP//AP//AP8A/v//AAL//wIBAv8A/wAAAgAAAP7//wD/AP8A/wAA///+//8AAAD/AAAA/wEAAf8B///+/////wAAAP7+/gD+/v7////+/v7//f///////wEA/gABAgEB//3///4BAgL//wEBAQIBAAABAgEBAQAAAAEBAQAAAP//AP4A/wD/AP///wAAAAEAAAAA//8AAAEBAgEA////AAD+/gABAQD//wAAAAABAP///v//AAAAAAD//v7//gAAAAAA//////7+/wAAAf/+//8B/wD/AAEBAQAAAP///wD//wABAAABAP7+/v///v/////+/v39/QD///7/AAEB/wEAAf///wAAAQAA//8AAP/9AAECAf///////gEAAAAAAQIAAf8A/gAAAAAAAP///wACAAIEAgMDBP/+9vn4+Pz8+/7+/fz7+wT+/v8AAP8AAQMGBgb///4DAwQCAgAO+g/9/v4NDxD39gUGCAj85uUCAAH3+PkJCgkEBAb9/P0A//8CAgMBAAD9/v4A/wEAAAH/AP/7+vr6+vr//////v/9/PwAAAD29/cAAAH18/QCAgP7/Pv///8DBAMEBQf39/cDBQYMDQ3+/v/y9fIHBwYA//77+/v9/PsBAQEBAgH9/f0B/wAHCQgAAQUB/v79/wD7/////v8BAgEAAP8A/wABAQL5+fkBAP8AAAEFBQX49/YDAwQA+/8CAQL///76/fsEAwMFBwcFBAQGBgYAAP////8BAQEAAQICAgEBAQEBAAD/AP8A/wD/AP/8/Pz8/Pv+/f39/f78+/r49/bw7e7p6Ob59vf6+/ny8fLy8/QEBAP+/v/8/PwBAQH19fj+//0AAAL9/v/7+/37/P0A/f36+vz5+vsBAQL6+/0A/wAAAf79/f7///8CAgL+/gAB/wIAAQL9/v4CAgACAAMAAP8AAQECAwT9//4A/v8C///7+vnz8v79/Pz+/fz///8ZHgAAAhIIBwACAwQCAf///gH/Af0AAAEBAQEAAP4A////AQD//v0BAQEBAQIB//8BAAQAAAEAAAAA/////wD//wD/////AP8A////AAABAQEAAQAA/wEAAv/+/gD///7///8AAP7//wD+/////v/////+//8A/v4AAAD+AAABAP4AAAEBAAAAAf/+/v8BAQL/Af4BAAAA//8CAgL/AQEBAgIA//4A//8AAAAAAAAAAP////8AAAAAAAAA//7/AQEAAP8A/wEBAQEAAAEAAP////8AAAD/AP8B/wD+/v7/AP//////AP///v8AAP8AAAH/AQAA//8AAQEAAP///v//AAAAAAD+//8C/wD+///////+/v3+/f3+/f0AAAH///8BAgEAAP///v4AAAABAQL/AP78/f8DAwIBAgIAAQH+/wAC/wL+AP////8BAQABAQAA/wD+//4CAQMFBQYCAgP8/Pv8+/r6+fn8/f0E/wD/AAAAAQD/AgMC//4BAQEABAUFCwwM/v3+CwwOCAkI/Pr6+vj69PTyBwcH+vr7CwsK9vb1//4AAwIEAwQD/vj4AQEDAQAB/wD+/f3++fn5//7//v/9/P4A/wD+//79+vr5/Pv6/v7//f39/wD/9vX0CwwB+/r59vT0CQkKAP//AQEA9PX0AP8A/f37/wD/AAABAwQDAf8B+/r6BAMCAgED/v79+/36/AMDBgYFAwQEAP//AQEBAgMDAP///wAB///+AAEBAgIEAQD/AQEBAgIBAwEEBAQDAwUEBwcHBQUGAQEBAQAA/wD/AQEBAAAA/v39/v7+/v7+//7//wD++/z7+ff4+vn4+Pn5/Pv59PLx6ejp8O/v8vHy/v3+BgYH8/T27vDx/wD/AP8BAAAA+/r6///+BQQF+Pj6AgMD+fv7/P7+/Pz9/f7+/f7+AQEB/Pn7AAEBBQUF//8A/Pv+BgYDAwUEAQAA//8B/v79/v79/AH+AP7/AwIB+gD8//79AgAAAP/7AAEA/f39/Pv79vf1/P38BgkKCAoLAwMDBQABAf8C/QH/AQEAAgEB/wAB////AP8AAQICAQECAQEBAgEDAQEB//8AAP//AQAB/v//AQABAAD/AAAAAQAB/wAAAQEBAQAAAQEB/wD//v8A/wD/AAAAAAAAAAABAAH/AQEB/wEAAgEBAf4C/gEA/v79/wD/AP//AQID/gD/Av//AP//AQABAAEAAP7+/f4A/gL/AwMDAAD/AQEAAP8A/////wD/AAAA//8AAQEAAAAA/wAAAP/+AQAA//8BAAEAAgICAQAA/wAAAAAAAAAA/wAAAAEAAP7/AAD/AP/+AP8AAAH/AAAAAQAAAAEB/wD///4BAAAAAQD//v//AAD//v///wD////+/v39/v78////AAABAAAA/v7///7+AP8A/wAAAgL//f7/AAD+/wADAwICAgABAAD+/f79AQECAP7+AQAAAgMC/v/+Av4CAQEBAQMDBQcJBgf6+vn5/v/+AwMDBAEAAf8A/wAAAAAAAAABAAABAQICAwkKCvz7+w0NDv/9/f39/P39/wcHCPb19vb29AkKCvn5+v7+/wQFBQYFBf37/AAAAQIEA/79/P////n5+gUFBP7+/wD+/QECAQMDAvv7+vr6+gICAvf49wIAAgEA9QUFBv79+/X19A4PEPz+/ggHB/38/Pb29f7+/AEBAQUFBQUEBAICAgQICAgHCgEDA/0AAPv5+vn5+Pn6BQwMCgQEBQYGBwIDAgUEBQABAP8AAAIBAf7+/gICAwcFBQEBAQABAAECAQUFBAIDAgICAgD///8AAAIAAQAAAP///wMDAvz9+/z8/P/+/vr7+vv4+PX19fX18/Lx8vTz8ezr6+3t7vf2+Pv8/fv6+wQGBfn6+/39//n7+wD///7+/f39/gIAAP//AP8BAfb4+P7+/vz8/AEBAv7//gEBAv39/P7+AAMEBP////39/QMEAwEDAwD/AAAAAQQDBPj8/P7+/gAAAf/+/gMCBAAAAP4AAAIBAv8BAQAA//7/Afz+/gH8/evp6enm5BQWFwUFBQEA//8CAwECAgIBAf8BAgECAgAAAAAAAAH/AAEBAgAAAf/+AAECAQAAAQD+AP4A/gAAAQABAP//AAAA/wABAAEBAQEBAf//AAAAAAICAv8A/wEAAQD/AP///wD///4B/wAB/gEA/wAA/wD///////7+/f8A/gMDA/8A/wD////+AAAAAf3//gIAAQEAAAECAwIBAAAAAP8A/wD/AP8A//8BAAAAAQEAAAEA/wABAf///////v//AAEBAP///gEAAf/+AP8BAQEBAP8AAAEAAAD////+//7+///+/v4A/gAAAAD/AAAAAAEBAP8A/wEAAP8A/wD/AP8A//7+/gEAAAAA//4A/v/+/v///v///v//AAH//wEBAP3///79/v///wAAAAAAA/////7//wAB/wD9/f8C/gD/AAEAAP8B/v79/v///wYBBQEBAf8AAP////8BAQIEBgYICQL39v75+QH//gT+/v3/AQAB/wECAgL8/P3//wADAgACBQQBAAALDAv++/wBAQL5+fkAAP8YGhvr6ugEBAYFBQcAAP8A/woAAf8ICwr+/P0BAwPz8/MGBQUBAAECAgQEAwT7/PsAAAEBAQIBAP76+foCAwH29fYFBQUJCgkCAgAGBgb19PX18/IOEA////8ODg35+fn8+wL5+vgJCQwLCgwEBAUIBwcGBQYAAgIDAgL9/fz6+/sBAAAGBwYGBggEBAMCAgMDAwMCAwIAAAABAQEAAAD///8DAgMAAAD9/PwAAP8DAwIAAP/+//4CAQH//v7///8AAAD+//79/f0A/v4AAP/6+vj19PX39fT29fXr7Ovo5ubl5eUBAQH39/n3+Pn//wH////+9vf/AQEAAQH+/v8A//7//v4FBQQBAAH+///3+PkFBAMAAAD9/f79/foBAgIDAwYAAAEDBAMJCQn8/PwCAQICAgP9/P3+AQH9/P0FBf4CAgIAAAL8/P0BAP8AAAD9/f4AAP8AAQD8/v8EAQD9/v7/AAL///wA9fXq5eQbHiAFBgcBAQkABQEEAAH+/v8BAgAB/gABAQEBAQH+//8B/wABAQABAgL//////v//AAAAAQACAgL/AP8BAAEAAQABAAEA/wD+//4BAQEAAAEAAAAA/wAAAP8AAAAAAQAAAQACAAL//wD//v39/Pz9/f3+/fz+/v3///4B/wAAAf7/AAEEAgH/AP8BAQH//gIBAgEBAQD/AP////4A/gEAAgIAAAD///////8AAAAB/wAAAf///wAAAP8AAAD/AAAAAAD////9//0BAgIB/wH/AP8BAAABAQAAAAD/AAD/AQAA/gEAAP7/AAAAAP///wAAAAD/AQEA/wAAAAD+/v3/////////AAD///3///8AAAD//wD///7/AAEA/wD//v7/AP7//v8AAQH+/v7/AAABAAAAAAABAAD+/f4AAAD//wAB//38/f3+/f8A//8DBAQBAQEA/wEA/gH+/f/8/v4AAQL/AAL8/PsEAAEAAP///v7+AgIC/f38AQIEAQEDAAEBAQEBBQUF/AD/BAQFDA4N/v/8//4SAP///v399ALzDRITDA0M7e3s9/b2AgME//8AAP8BBQYEAgECAwMCBQUF//j4CQgIAQD//P3+/Pz7Dg0P/v8ABAMEBQUGCgoLDQ0N9/b4/wACDQsMBQUFBgYFAAEB/P38AAAAAwIBDQ0NBAQGBwYF//4AAQIDAQD/AQIB/v8AAgICAwICAAD/AQEDAQEAAQICAAEAAQECAQABAQAA/v7+AAD/////BAQH//79/f/+AP//Af8AAAD//v39/Pz8AgIC+vr5/f78/f3++fb3+fn39vT07+7u5eTk4+Pk9PT09/f3AgIEAQME+/3//Pz8BQUF/P4AAwMBAQEC/v78AQH/BAQEBAUEAwID+/v7/vv8AAEB/v7//f39/P3+Af3//v/7AgEDBgQFAwMD+/v6AgMDAgIBBQYH+vr8BQUC/P38BQQF//8AAwMD///9+fr6AgIBBAMC/f7+AgD/AggHAQD//f3+/v7+//397u3u5uPjCAkLBQUFAwME/wH+AQEC/v7+AAD+AQEBAQABAQIDAAABAgIB//7/AAABAAAAAgEBAAAB/v7+AAAAAQICAP7//wAAAAAAAP8AAAH/AgECAAAAAAD/AAH///7/AAABAAEBAAAA/v/+/v79/f39/vz9///+//7+AAEB//8AAQAAAgEA////AAEB/////gD+AP8B/v3/Av4C/wP/AQECAf8AAQEAAP////7+AP///QD/AgECAQIBAP8A/wAA//7/AQAAAAEBAQEBAf8AAAEAAP8A/v/+AAABAQEAAgAA/gAB/////wEBAAAA///+AAEBAQAAAP8AAQAA/f7+///+/v7+AP8AAAEA/////v79AAAA/v////7//v//AQEB//3+AAAB/wD/////Af8AAAEAAAAAAAAA/////v79AP8AAAAB/f/+/f3+/vz89/78CAYIAAIBAgECAAEBAgMBBAUGCQkK9/X2/P/7BP/9/f8AAQEB/wEBAP7+/gD/AAAAAAH/AAEBAgICAQQEBQICAwgHCP4NDgUFBQUFBQUFBAwNDQAB/w0MDAkKDPr4+AcJCfv6++/w7wUFBf79/AIDA/7+/h4ODgUEAwQFBP38/Pj4+AkJCRr9/gkICQMEBAUFBgoLCwkJCPz8/QYGCAICAQQGBgIBAQAAAAICAf7+/gIBAgcIBwEAAgAA/wAAAQD//wECAgECAwICAAD/AAABAAABAgD//wEBAQAAAP///wEAAv4A/gIBAf79/QD//wAA/wEBAQH+/v7+/gD//wACAf/+/gD///38+/39/Pn5+P/9/ff29Pb09Ozr6+fm5+Pj4/Lz8/z8/fr6/f4A/QEC/gYGCPz89wABAwgHBgMEAwEBAgH/AAICAgIDAAgHBvv6+/39/v8AAP39/vr6+vz8/P7+/wYFBQD/AAEDAf7+/Pf39gICAv7+/vv9/QH8AQQDBP///wH+/QIDA/37+QQEAwEBA/79+/7+APv++wMCAgQEA/3+/QUFBAUDAvz7/P3+/Pz9+/Lu7fPx7woLCgIBAv8EBAMCAv8AAAECAgAAAAEAAAD9/gABAQICAwICAgEBAQABAf///wEBAQAAAQICAP78/gEBAQABAf8A/wD/AAEAAP3//QD//////wAAAAAA//8AAAEBAAEAAv7//f79/v39/f///gH//wEBAQAAAQAAAP///wABAAD//wD//wEBAQAAAP7/AAH/AP8D//z8/QIC/wEC/gEAAQEBAgAAAAABAQH/AAAAAf/+/////wD/AP8A/wACAgIAAQD/AP4A/wH///////7//gEAAP8AAf///v7+AAAAAf/+/wEB/wD/Af/+/wAA//8AAP////7+/v8A/wH//v7//wAAAP///v39/v///v7+/f/+/gEBAf/+AQAAAP7//v///wAAAAAA/wAAAf7//wL//////wAAAf7//gD///////38/P/9/QD9//0DBAH+Av8C/wECAgEBAgQEBQAJCwsO+/3w/QT9+/wBAQL/A//9/wD+/PwABAQAAP/+/wAAAP8DAgMCAAEBAwMGBwb/AP8IBwcLCwv9/f4EBAQFBQQICAgQEBD8/v0BAQH7+vwWGBf9/v4EAwT//wAHBwYEBgQBAQIHBgUAAAD+/v75+PgFBgYDAwMFBQcCAgECAgMHBgUBAQIBAQH//wADBAMAAAAAAAABAQD///8BAQICAgL//wABAAD///8AAQECAQEBAgIA//8BBAIA/wD/AAABAAD/AAABAQD//wEA/wABAAECAP7//v39//4BAAD//v7///7+/v0BAQIBAAACAgH+/QD9/Pz8+vn7+Pf39fXv7u3s6+zo5+fn5+jy9vUA/wH7/Pz/AgH8+/7//PsDBAQODw///v8AAQIHBgYFBQQCAAD///wKCwkBAQH8/P37/f0A/v/9/f36+vkAAAECAQMAAQH9/f39/f0ICAgGCQUBAQH6+/wFAQMFBAQBAgIA/wEBAQH/AP8AAAAA/wEJCQcAAAf29vX//wD/AQEAAQL7+/wAAf8FAwQAAP//AAD5+fnr6ugHCQgGBQYCFgEHCAr/BAMBAQIA/v4AAQEBAAD/AP4CAQL//////wMCAgIBAQEAAQEAAQAAAAD+/gAAAAD//wAAAf//AP8A/v8AAP8AAP4AAAAAAAD/AP/+/f7//v4CAgIBAAD+AP/+/v4A/v7+/fwAAP8AAQECAQEAAQEBAAEA/v//Af8BAQH+//8CAAAA/wAAAQD9/v4CAQD+/gAB/wECAQL/Af0BAAEAAQABAAH//v4AAP8AAAAAAAEBAAH//v7+Af///wABAQAA/wAA/wD/AP/+//8AAAAAAAAA////AAAA///9//8AAP7//v8AAAABAQD//gAAAQEBAP///wD///8AAf////////7///7///8AAAAAAAEAAQD9/v7//////wAA///9AgICAAD//v79AAEB//8BAQECAQL9//3//wD/AP/+//4CAf/+/v4BAgAA/P0CAwQAAQEBAQD/AAAEBQQFBQYE/Pz6AQACA/8EAwP///7//Pz7BgcG/wD/AgICAgQE/vz8AP//BQUGAQEBAAD/AP///P38CQgIAgICBQUE+vr4AgIB//8B+vv7//////7/BAUF/f7+BgYFAwMCAgICAwICAgICAAAA/f39AQEBAQEBAwICAAABAQIBAgECAgICAP8AAAEAAQEB////AAD/AAABAAABAgEB/wD/AAAAAP//AgMCAAABAQIBAP8A/wAAAP3+AQICAAD//gAB//7+AQEBAQEAAAEB//z+/f38+vr5/Pz7AQAAAQIAAP7/AP///P35AAEBAQEB/P39/Pz79vTy7erp9/b27e7v4+Hi7e7u9ff3+vr8AAAC/wEBAwMEBwkI9PP1/P39EgwOAQEB9vX0DA0L9fX2BggHAwEGBQUDAgID9PX0//7+AAAA/Pz9/v3+AwMEBwgH/v7//P36BAIDAwMDAgECAAEBBwYIBwgJ/////P38CQkJ8/P0AwIEHBwX+/v59fXy+fn3AAEAAQAB//7//Pv7BAUCCAcJBAQD9fX1/v8A9vb3/PzpCgsLHiAiAAACAAAB/f3/AAH8AQEBAgICAAABAAEAAAEA/v/+//3///8DAgICAgICAP7/AQEC/wEA//8A///9AAECAQD////+AP/+////AAD/AAABAAAA/f38/v79Av4DAQEC/wD///7+//7/AAAAAAAAAf///wD+/v8BAgECAgICAP////8AAP///gH/AQABAAICAP///f8AAQIAAgIB/gAAAf8B/gD/AgECAAD////+/v7/AQEAAQICAP///wD//wAA//8AAP4BAP//////////AQEBAAD/AAAA/wEAAf8B/////wD/AAAA//8AAQEAAP8AAAEA///+AP//AQAAAAAA/v7////////+/f7+AP//AP8A///9//8AAQEB//////7/AAIAAQEAAwME/wD8///+//0B/wD+BQMF/////v79/f38/fz8AwQCA/79AQD+//8AAQEBAQEE/v7/+/v5//7/BwcHBAH///4A/QD+AQAAAQD//v39/f/+AP8A/wAAAAIBAQIEBPz8/P7//gUGBP//AAAA/wYABvsE+v8AAAMCAggDCgEBAAICBAf9/Pz8/AD/AAMFBQD/AAMDAwIDAQD//wEBAQECAQD/AAYGBv7//wEAAQAAAAEBAAEAAf///wABAQICAP7/AAAAAAEBAP8AAQAAAQEBAAAAAAD/AAICAf//AAEAAQABAQD/AP8A/wAAAP3//wL+/QAAAv///gACAQAAAP/////+/v7+/P///QEB///+/AECAv78/fv7+wAA//////z8/QICAf/+/fb19O3s6+bl5fr6++3s7vDy8v7+/wQEBP7/Af8AAfz9//7+//7+/g8PDvn5+vr4+AwNDf39/gD/APTz8woJBwgKCAICAQQEA//+/wEBAQICAvv6+wQEBAUFBgUFBP39/wL6AwMEBQ0ODvz9/Q8PDw8QEQQEBfT19P79/vn5+RQVFQIBA/f39+7u7gD//QAAAP79/QEAAAIBAf8AAgEBAQABAPr6+QAAAP39/f7//wICAQYHBQD//gD///3+/gECAQH/AP8BAAAA/gIBAgEBAQAA/wAAAQABAf8A//7//v/9//8A/wEAAf8A/wAAAAD//wICAgAAANPgIFgAAAEkSURBVP8AAAAA/gH/////AP8A/f////8AAQD/A/7//wEB/gEBAAAAAP8A/wAAAf////4A/wH/AAAA//8B//8AAAD///8AAP///v8BAAH/AQD+AgEBAQH/AAH////+Af8A/QMCAgABAQAB/wAAAAAAAAABAAD////+/gABAP///wD/AAEAAf///v//AP///wAAAP7//wEAAAAA///+AP8A//8A/wEAAAEBAQAB/wAAAP3+/gAAAP///gAA/wAAAAAA/wD/AAH/AAAAAf/+/////gD/AP//AAAA/wECAv///wABAAEAAf//AAABAAMCAv7+/////v//APn6+v7//v7+/vv7+//+/gH9APwB/AABAQICAf0BAQECAP///v/+/wMEA///BVHLdv5Qlz5SAAAAAElFTkSuQmCC\\n\",\n      \"text/plain\": [\n       \"<IPython.core.display.Image object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Time elapsed: 5.688\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAaGVYSWZNTQAqAAAACAACknwAAgAAACkAAAAmkoYAAgAAABgAAABQAAAAAE9wZW5BSS0tZGU3ZmYwYmQwMmJiMGY2NTlkYmEwOTAzN2E1YTZjYzMAAE1hZGUgd2l0aCBPcGVuQUkgREFMTC1FAHKV2RYAAQAASURBVHgBACuB1H4BjYqPAQEBAP8AAQEBAAABAQICAgEA/wD/AQAB/wAAAP8AAAD/AAAB/wAAAQD//wABAQECAQAAAAECAAAA/v7+/v3/+Pv99Pb88fT97/UA6/L97PP98ff99/z/+/3//gAA/v/+AP8A/wD/////////AP8A/////wD///8A/wD/AAAAAf8AAAH/AAAAAAAAAAAA////AAAA////AAD/AAAAAAAAAf//////AP/+AQAA////AAH/AP//AAEAAP8AAAD/AP//AAAAAP//AP/9//7+AAD9Av/+AP78AP75Af35AP36//36AP75APz3AP34AP34//35AP33AQH7///7/v79/f7+///+//4A/wAAAAD/AAAAAAAAAAAAAAAAAAEAAP8AAAAAAAAAAAEAAP8AAAAAAAAAAQEA/wABAQAAAQEBAQEBAgIBAAACAQEAAQIBAP4AAAEAAgICAQICAQAAAQEBAAAA/wAAAP8A/wAA////AAABAAEAAwMDAQACAgIBAAEBAf8AAAEA//8AAP///wD//v79/Pz7+vr6//79/wAAAP8AAAAAAAEAAP8BAQD//wAAAAABAQD//wABAAD/AAAAAAABAAD/AAAAAAAAAAAAAAABAAD/AQAAFREQVVNRGBUa/vv++/r6+/r6/wD/AgMCAQICAwMDBgcJBgUHAgUFAgMEAP8AAAD+AQABAgH/AP77AQH/AQEABAQEAwMCBAYDtru+tru9+fv6AP//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAP8AAAEAAAABAAD/AAAAAAAAAAABAP//AAABAAEAAP8AAAABAAEAAQABAAEAAQECAgEBAwICAgIBAQEBAgECBQUEBQQEBAUDBAMEBAMDBgQDBAMDAgECAgEBAAAAAgIBAgECAgIBBAIDAgECAAAAAgAAAgABAAEAAP4AAQEAAgECAQEAAQAA//8AAQIBAwUEAAEB/Pz7AQICAQEBAgIDAQIB/v7/AP/+AQAAAP8A//7+AQAAAgIDAf//BAEAAP///wEAAf8A/gEAAgD///8AAAABAf8AAAD///8AAQEAAf8AAAD///8BAAEAAAEAAQAAAP//AP3+/fr6/Pf5//P2/u7z/ury/ury/O/0/PX7//v/AP7//wAAAP//AP7/AQAA/wD/AP//AQAA//8A//4AAAD/AP8AAAD/AQAB//8BAQIBAQAAAP///wAA/wAAAP8AAAAAAQAAAQAAAAAA//8AAAAB/wAAAf///wABAAAAAQABAAAA/wAAAQAAAAACAAH+//8A/wABAAEB/QH//QH++wD/+gD++gL9+AH++gD/+f/9+P/99//9+AD9+AH++f//+gD+/AAA/QD//gIA//4AAAAC/wD/AAAAAP//AAAAAAAAAAAAAAD/AAAAAAAAAAAAAAD/AAAAAAAAAAAAAP//AAEB////AQD//v8BAf7+AAEB/gEBAQH9AQABAAEBAf//AAL//wEBAQAAAAEAAAACAv8AAP//AAD//wEAAAAAAQD/AAABAAAAAAD/AAABAP//AAABAAABAQD//wEAAQH/AQEA//4BAAD/AAAAAAABAAAAAAABAAD/AAAAAAAA//8AAQAA/wAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAgIBggGBwAAAP8A//////39/f38+wACAQD/AAABAv38/wINAwYEBAIBAv8BAAAAAf7//wEBAgIDAf///P/////+AP4B/gH+BEE9O+Lm58/R0/7+/AAAAAAAAQAA/wAAAQAA/wAAAAABAAD/AAD/AQAA/wD/AAAA/wABAAAAAAD/AAAB/wAAAAAA/wAAAQAAAAAAAAD/AP8BAAAAAQD///8AAf3////+AAEBAf4B/v77/Pv+/gT8AwMC/AQEAvoEBAYEBAMCAwMDAgIBAQIBAQABAAIAAQIDAgQDBAQBAgMDAv4A/wH/AAD//wD+AAMC/gAAAAEAAQABAAD+AP36/v4A/wAAAAL//wIDAv7+/wD+Af/+/wEAAAEAAAEAAP///gD+/v78/f8AAAT///8BAAAAAP8AAAEAAP8AAP//AAABAP8BAAL/AAABAAD/AAD///8BAP///wEAAAD////+/wD7/P34+fvz9/zw9ADp8v7s8/3u9P3y9/z5/gD9////AAAAAAAAAAEBAAAA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AQEBAAEBAQH//wIBAf7//wD///8D/wAAAQIAAQEBAgABAAD/AQD+AP7+/P///gH/AAMAAP4AAf8B/wD/AP8B/wD/AAAAAAAAAAAA/wAAAAD/Af8B/wEAAAD/AAEAAAAAAQEA/wAAAAEAAAIAAAUBAgUDAwIAAQAAAQMCAwUFBv39/fz7//79/vn/+/v7/AIFBAYDBf8A/wL/AP39/QD7+/3+/gMEBAUEBAUICQAFBP78+wD+/QAB//z9/wH5+zQxMNzf38LExP39/QAAAAAA/wEAAP8AAAAAAP8AAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAD/AAAAAAAAAAAAAAABAAAAAAAAAAAAAP8A/wEAAQABAAD//wABAQEAAAAA////AAH//wAAAP/9//4C/wEAAP4AAP4AAAH+AAL8/QICAvsDAgQDBAQCAQMDAwQDAwMCAPz+/QH//gEAAAIBAQMCAwD///7//gD/AAAA/wEAAQEBAAH9AAEAAAIDBAAA/gD/AP4CAgAAAAAAAQAAAAEA/wEBAQICAv/+/QQBAAH/AAAAAAAAAQEBAQEBAQIAAAEBAAAAAAH/AAD//v/6+//09/3z9vzz9/3y9/7x9wDy9//x9/7z+f/4/QH9/gD+AAEA/gD/AAD/AAAAAAD//wAAAQAAAAABAAH/AAABAQD///8AAP//AAAAAQEAAP8B/wAAAAAAAAD/AAACAAD/AAAAAAAAAQAAAAAA/////wAAAAD///8AAP8AAP8A//8A/wD/AAAA//8BAP8BAAD/AAAB//8AAf8B//8A//wB/vsC/fcB/vkB/vgD/vkD//oCAPoB//kAAPsAAf4AAwEBAwcBAAcBAAH//wAB/v3//Pj/+/cA+/oBAfwA//4A//0B//7/Af8B/wD/AAH/Af8AAAL+//8B/wH/AAH/Af8B/wEAAP//AAAAAAD/AAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAP//AAAA//8AAAABAP///wAAAAAA/v7+AAEBAgH//wD+//4AAQEC/gECAgIAAAECAQAA/v///v7///0CAP8AAAEBAf//AAH/AAD+AP//AAAAAQAAAAAA/wABAAAAAP8A/wACAAABAAABAAD/AP8BAAAB/wABAAACAQEDAQADAAECAAECAAEAAgEEBgUF/f3+/f7+/f7//f7+AwIDAQIEBAQDBQYFBgYBAgP+AAECAgMCAgICAwT///3/AAIAAwT9//4AAQEB//37+/sGAwJFQj/m5+Xb3N3//gD/AP//AQEBAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAA/wAAAAEAAP8AAAABAAD/AAAAAAABAQEAAAAB/wAAAQAA/wAAAAAAAQAAAAAA/wAA/wAAAv7//wH//wD+/v////8BAP/+AP8BAf78AgH7Av0DAgIEBAQGBP4EBAMEAwMBAgABAQAC/wD/AP0BAQH+//8AAAH+AP///v8CAQAC//8CAQIC//0AAf8BAAAC//8BAQL/AP8BAQEAAgH/AQH+//8C//8E/wAAAAAAAAEBAgECAQEB/wAAAgAAAAAA/wD//Pz/+Pn/7/P86fD57PT+8fYA8/f98/oA+fwB+v4B/QAA/wAAAAAB/////wD/AAAA/wAAAAAAAAABAAAAAAAA/wD/AAAB////AAABAP//AAAAAAAAAAAAAAEAAP8AAAAAAQAA/wAAAQAB/wD/AQAB//8A/wD/AQEA////AQH/AP////8A/wAAAQD/AAD/AAD/AAD//wD/AP//AQD+Af7+Av79///7Av75Av72Af34Av/5A/35Av/6AQD6///8AAH+/wMC/wIEAAIGAAMGAQQIAAIF//39/vv4APn0APr1APz5Afz5AP76AP/9AP/9Af/+////AP8A///+Af/+AP8A/wAAAAAA//////4AAAAAAQEA//8A/wAAAAAA/gAA/wAA//8AAAAAAAAAAAAAAQAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAA////////AAEBAf0AAQD+AQEBAAIB/gEBAgICAQEB/wABAAD+AP7/Av//AAAAAAIAAQAB/v///wD/AP8A/gEA/wAAAP8AAAAAAAAAAQEAA/8AAgABAAD/AAAAAAAAAQEAAQABAQAAAQAAAQAAAQH/AQEB/gD/Af8BAQEDAwIEAgEC/P3/AP7+Av7++v8BAwP6BAECAAIDBgYDBQUFAgMEAAAA/P38AQEAAAAAAgIDAAMF/v38AQAA//z+/vX2FhEQYV1dkZSV6errAP8AAP8A/wAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQH///8AAQEA/wAAAAD/AAABAAAA////AAEBAAAAAAAA/wAAAAAAAP8AAQH//wABAP//AAIBAAH//wAAAAABAgEA/wD/AP///v7+///////9AwEC/wEBAgEBAgIC/P39/PwDBAQDBAQDAwIDBQUEAwMBAAABAQAA/wABAQEBAAADAAL+/v///gABAgD/A//+AP//Af8A/gEBAgMAAQEAAAEC/wACAAAAAQAA/wIBBAEBAQEBAQEBAQEBAf//AAEAAP8AAf////n6/vH1/e3y/ujw/Ofw/O72/vf8Avr9Afz+AP4AAAAAAP8AAAAAAAAA//8BAP8AAAAAAAH/AP8AAAAA/wAAAQAA/wAAAf///wEAAf8A/wABAQH///8A/wEAAP8AAQAAAAAA/wABAAD/Af8AAAD/AAABAP8AAAAAAf////8AAQD//wAAAAAA/wH//gEA/wD//wAA/wH//wAB/wEA/wH+/AH++wD/+gP++gH++QL+9wP99gP++QH/+gD/+gD//QABAAACAwADBP4EB/0ECAAECgAGDQEECAD//gL7+f/58//69wD79//7+P/8+QH++wL//f/+/AL+/AD//gD9/AD//P///gD//v///////f8B/wAAAAD/AAEB//8BAP//AQEAAP7//wAAAP7/AQD//wAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAP8AAAD//wD+AAEBAP0CAQIBAQIAAQEBAAL//wEA/wICAQABAAAAAAIAAP//Af7+//3/////AP8BAAD/AAIAAAIAAAIAAAEA/wEAAAEBAP8AAP8AAAAA/wAAAQABAP8AAAABAv8CA//+/wAA/wEAAAECAgECAgAAAAECAQUFBQYHCQIDAgMCA/79/ff3+AT9/gYHCQcIBwIDAvv5+vz8/AMCAQMBAwIB//z8/AD+/v8A/vr3+RgVFTw7Oq+ytP39/f8AAAD/AAABAQD//wAAAAEAAQAAAP8AAAAA/wAAAAABAP8AAAAAAAAAAAAA/wD/AQEAAf8AAAD/AAAAAAEBAAABAAEAAQEAAAD//wABAAEAAAAAAQAAAAEAAQAAAQABAP///wAAAP////8A//3/AAD/Af8BAP8A//8A//7+/v3+/vv8/AICAwP7/AQEAgQDAwQDAwICAQMCAwECAQABAgD+/v8A//4AAAAA/v/+/wECAQEA/wL+AAIC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AAEAAAABAAEBAAICAQAAAf7+/gEBAAAAAP///wD/AP8A/wAAAAAB/wEAAQABAAAAAAEAAAAAAQEBAQIBAgAA//8BAP/+/QIBAAwHBR4YEyskICIiHwsLD/z/Af//APn7//8B////AQECBAECAAECBQMFAvz8/P/9/wEDBf79/f7//QTW6Pzx+gP6/QH//gAAAAAAAP8AAAD/AQAAAAAAAAAA/wAAAQEB/wAAAAH/AQEA////AP8A/wABAAH/AAD/AP8BAAD//wAAAQABAAAA/wEAAP8AAAD/AAEBAAD/AAD/AP8A/wAAAf8AAP//AAAA////AAEA////AAAAAAD//v8AAP8BAP8BAP8AAP8BAP0A//4B//wB/vwB//wE/vcE//QF/vcD//YD/vcB/vj///v9AQH/Awb+BAn8BQj9BAj9BAUAAAEAAAL//gD9/f7+//r9/P7++/n9+PX/+fQA+vYB//7/AP8BAAH///4AAf8AAQMCBAgFDBACDxcCDBMCCA7/AQT++fj69PL88/H/+PUB/foA//8A/QP/AAH/AQEAAgEABAUCCAoBAQMEBQkCBgcCAQIBAgIB/////////v0B/Pv/+/j//g7//PoC/Pn/+vcA/fkA/fj/+/gA/PkA/voA/foA/v4BAP4AAQABAP8AAAAA//8BAP8A/wH//wEAAAD/AAAA/wABAQEAAAEAAAAAAAAAAQABAQEAAQEA/wD/////Af8BAP///v//AAD///4A/wAAAP8AAQAA/wECAgD9/v8AAAD/AAAAAAAAAQAAAAABAAACAgAFAwQB/wACAwT///0CAQEBAAH/AP8BAAACAQEDAgICAgEEBQMDAAEB//79+vj9/gACAgH9+wD8/P0FBQT7/v0DAwH/AwP+/f0A/v0CAgEFBQT//v0DAgQDAgH////8/PopKCZPTU2rravz9PT//wABAQD/AAAA/wAAAP8AAAAAAAABAQD/AAAAAAAAAAAAAP8A/wABAAH/AAEAAQD/AAAB/wAAAQABAAABAQEBAQIBAgEAAAAA//8AAQAAAP/+/v8A/v//AP8A////AAAAAAAAAf8A/wEBAgEAAAEBAQH/AAEBAQABAAADAf8HBwUWEQ4vKicqJSIJCAb9/wL5+f37/P3/AgMBAwUFBQX9/f78/vwFBAYBAgL//wAEAwQABAL7+/kEAgT//gIE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AAD//wEBAQABAP//AAAA/wAAAAAAAAD/AAAAAAAAAP///wAAAAAAAAAAAQEA/wAAAQAB/wD//wAA/wD//wEAAP8A/wAA/wD//gEA/AH//AL//gP++gP/+gH9+gL/+wL/+wIA/AL/+wIA+gMA+gL/+wEB/AEA/QEDAf0DB/0ECPoECvsGDP8GCwIEBwADAf///v78+/77+/349/319P348QD59QD+/AIBAf8BAQEDAv8BAgACAgEEBgIGCQIICwEIDAIKEAMKDQIFBgD9/f349Pz19AH9+wECBP8FBwIHCQIFCAIFBwIDBgEDAv8AAAIBAQL9/fwB9v3//QECBAIECAEFBgIFBwIDBQEBAf7+/f37+/359/318P/07//28AD79wAA/QABAgACAgAFBgAGCgEJDwIMEwQNFAUMFAUKDgAEBfv7/P36+fz08f3w6wDz6gH38gH+/P4AAgADBQAFBQEGCP4HCwAMDwQLDwMHCAEFCgACAwD+/QD7+v39+v/9+//8+wIH+/78DgD8+gD9+QH7+AD89gD89gD8+AH9+gD8+gH+/AD+/QD//wD///4A/wABAAEAAAACAgD9AP8BAA0OEB0gIAMEBQT9AAIAAf78+/76+fv49/r8/AH//wkKCQD6Debm5vT49/3///sEAf0FAwMLCxseGf8AAAMDAfv7+AMDCfr4+v38+/z7+Pv8+Q4QEAYHCAYGBgECAP79/P38+QIEAQMEBQUFBQMFBQIDAwIBAQEAAP///QABAQEBAQEBAQABAQD/AAIBAQAAAAABAgAAAAIAAP8AAv///wEB/wIBAP8A/wD/AAL/AP/+/gT/BgUGBgkLDBcYHCcpLvX18jk5POHg3t3Z2OXj3/v39TYwLzc0NAIFBvz7/f78/P39/Pz7/P38/AAAAgICAv8BAgECBQABBAEBBQIDAwEAAf7///8AAAABAgMDAgAD//7+//0AAPn49/78/gD+/f/+/gMBA/8CA/v++wH/AAQBAQH/AAAA/wAAAf8AAAD/AAAAAAEAAQEBAP8A/wD/AAABAAD/AP8B/wAAAQD///8AAAABAAD/////AQAB/wAAAf8AAP4BAQD//wABAQAA//8AAP4A//4A/vsC/voC//sD/vgD//cE/vcD/voEAPwC//wCAPsB//wA//wA////Af7/AAL/BAX+BAf8Bgv6BQn7BAoABAcDAwQBAQD9/f38+vn79/P99vT++ff/+/gB+/kA/fkBAQD/AwUAAQD///8BAwQABAYBBwsECQ0ECQ0ECQsDCAoCBQb+/f769vX78ez99fEA/fwCAQP+BAYBBQcCBgoCCA0DCQsDBwgBBAYAAgMBBAIB/gYDBv8CAgUDBQgCBggCBAQAAAEA/////f79+/j/+fYA+fcA/PkB/wEAAgMA/wYBAQABBAMABQgBCAwDDBIEDxUEDRQDCRAAAwX9/Pv8+PX78uz88OkA8ecB9u4A/PkBAf4C/wD/+wL/+gT//AkEBwgFBgcCCAoDBgoABAj+//79/Pz+/f0A/gD/AAMCBQMABAf/BAj+/vwC//39/foC/fkB/fgA/foA/foB/PoB+/gA/Pj//Pn//PkA/fwB//0AAP8AAAEAAv8AAAEJCg0JCQsDBQcFBwoA/P7//Pz5+vwA/wD6+Pn9/f0CAwX/AgL/AQL7AP/9/v709fYDCQgXCQj4+foTGxH+AQHz8fADBQQIAAD08vn///78/Pv6/PwMDgwJCgsCAwIAAP7//foBAPwFBwcBBAMAAwIBAQACAAEDAgIBAAACAAABAP8BAAABAAD/AQACAgEAAAEAAAAAAAEBAQD//wAAAf//AP/+AAD//v8AAQD/AP7/AgIAAAACAgEBAQT/AwcFBggKCw4QEBQcHCMrKS3u6OIE//oUEBEBAgP5+/39/v38/f38+/z8+/z//wAFBgQCAwT/AQEBAgQBAQP/AQD+/wABAQEAAQD9+/3+//r+/P38/Pv+/v4CAgEAAAD9+vr+/fwAAP////4A//0CAgEA/wEE/wD/AAAAAAEB/wD/AAABAAD/AAAA//7//wABAAD/AAAA/////wAAAAAAAP7/AAEAAP///v8BAQEAAAAAAAEAAAAAAAAA/wAAAQD/AAAAAAAAAP//Af79Av36A/32A/73A/7zBP/1Bv/5BAD8AwD+Af/8AAD9AP/+/v///AAA/QIF/gUH/wcL/AUL/AQI/gUHAgMFAgIE//79/Pr5+fj2+/Xy/PXvAPj0Afz7Af/9Af78AAEA/wAAAAIF/wMEAQECAQUHAwkNBQkOBgoNBgcHAgUDAAIB/fv2+vPw9u/u/PTwAPv5AP///gABAAEC/wEE/QQG/QXy/AYJAgcJAggLAgkMBAkLBAQHAgUIAQIBAAEDAQEBAP8A/wH/////AAEDBAUI/gkAAAEA/gUE/vkL//r1APr4AQD/AAMCAQcKAgsQBQ4UBQ4UAggN/wMG/P37+vTw+/Hr/e/oAPPrAPfvAP33/wD9Af7+/wABAAEDAAUKBRAXBxUfBRAX/gcK/gMF/f39/ff3/PPv//j1Af77AAIB/gQFAgQFAQIDAQMFAQEGAQQFAf8HAv8LAQEA/wAB/f7/AP37APv3APv2Afj0AfnzAfz1//z6/vz6/v38Av//CQgKBAUFBAcIBwcK//z9+/n6AQT3///+BggK9/X1/P38/wIEAwYI/Pv9AQUDAwUECwwMCg8QCw8RBgkLCgwOBAcIAwH+//3/9/r8/wICBgkLAwYJCQ0NBQcIBQUFBAMB//78/vz4BQUDBgUEAgQCAwMEBAUEAwMC/wAB/v7+AwAAAgEA/gAAAgICAQAAAAAAAAEAAQAAAQEB/gD/AAABAAAAAwAA/QAAAAAAAAEBAQAA//8AAAABAgIA/gACAv8E/wMABgYIAf3+Ag8RDQcDAf34/fv7/Pr9AP38/vz//Pz+/f3/AQIDAwIDAwQGBQUG/wICAQAB/f7/AP8AAgMC//8A/f7/AQIAAPz//v39/fv8/Pr4///+//7+AP8A////AAAA//79//38/v7+AP7/BP//AAABAAEAAP8AAQAAAAD/AAAAAAD/AP8B/gH/AP8AAAAAAAEA////AAAAAAD+AP8BAQEB//8AAAEAAP///wEBAP8AAAD/AQAAAAH//////gL+/QP9+AT99QP98wL+9AT+9AP/+AMA+gL//gIA/gAA//8A//4AAPwBAv0DB/0IDP0HDf0GDPwEB/8DBQICAwH+//z6+fv49P318vr07vz18AD79QH++wD//QD//wAAAAABA/8CBQADBQIDBwIHCgQKDgMLEAUIDgQHBgMD/wAA+fv38/Tt6Pjw7f/3+AD9/AD//wD/AAAA/wAAAQAAAgD8+AD7+P/5Bv34Bv77EAUEAwMMDAMHCgEBAv/7+f359f///wADBQAEBv8CAwACBAIHCQIGB/8KCwL9+/78+QD69wD5+AD8+v4BAAIGCgQLEAYMDwIHC/4CBPz7+/v08Pru5v7v5v/07gD68wH8+QAA/QD//v8A/wACAwEJDgUTHAYVIQYQGwIIDAIDBPr8/fz39/zy8/7z8QD49AD8+P///gEEBAAFBwMHCAMGCQIGBgEEAgEEBwEDAQEDBAABBQEAA/z9/v/9/f/8+QH79AP49AL78gP79QD39Pz18f37+QUHCf8CAwACAf8CAP8CAQUKCQX4Cf7///3+AQMEBfn49/n6+wUHCAYHBwIGBBYaGg8TFgUJDRIYGgQJCg4SFQQICff19AQDAf4BA/39/gQGCBATFQgLDQUGBQMDAwQEAgH//v/+BwQCAAQEAgMCAgIDAQMDBAIDBQEDBAEBAQH/AP8A/wEBAQIBAAEAAQABAP//AQEBAAAAAAH//wAAAAEAAf8AAAIA//8BAAH/Af8A/wABAP///wEA/wL/AP///gH9/Pv38/r28//8+AMB/v3/Af//Av/+/f/9/v///gD+/wICAQD/AwABAQACA/8DAwICBAEAAv///f3+/Pz7+/8BAQQEBP//Af38/f7+AAIDAgIDAvz6+//9/f7+/v/+/wIBAf///gH//wH/AP7//wQAAQAAAAD/AAABAAEAAP//AAAAAAAAAQAB/wD/AAAAAAAA////AAAAAAD/AAABAQAAAAD/AAEA//7/AQEBAQAAAAABAAH/AP8BAP8BAP4B//wD/vYD/fQF/fID/vUC/vUC/vcCAPoA/vz+//0AAAD/AAH+AQL9AwX+Bgr9CA38CA79Bwv+Awf+AQIAAQD+/f78+ff79fL79O798uz99e8B/vgBAPwAAP//AP7///8AAAIAAwQBAQMBBAQDCA0EDBEEDBECCAwBBAUAAgH8//n9+Pf48Oz48e3/9/QA/P4A//8AAAEAAAAAAAAAAP8AAP0AAP8AAP0AAf8CBwkGDhEHEBQGDRIBAQP8+PT68ej67uj/+/oCBQYDCg4DCQwBCAoBAwcAAwYBBQcABgj+AAv//f4A/fsA/fv//wACBQcDBwoABQj9Agb9/Pv69vX58e3/8eoA9O4A+vUB/fsAAP4A//8A////AgQDChEFFBwFFCADDhcCCQ4BAgb+/vz99/b88/L+9PL/9/YA+fgA/foA//z/+QAAA/j9+Pj/CfoACgsGCgkCCQoCBAMAAQL//wT//wICAgL/BAD/BQgBBgr+CA3++xH//fkB+vYCDPP+9/L8CA8BAgMDAQAA/f0A/gAEBQYGCAr9/f37/P0AAQD8/P0CBAUJCwsXGBr7Af8UGBsJDxACBQYHCgsICw0AAwMLDxEICgoBAP8JDA7//wH3+PgJDA0JCgoCAwICAgEDAgIA//4BAAMDAwEDAgACAgADAgMBAgIBAwQBAwUBAgMBAgIBAQIBAQEBAAABAQEAAAEBAQEAAP8AAAD/AAABAQAAAP8A/wAAAP8B/wAAAAABAAD////+/v4B/////vz//Pn8+fP9+fUC/vn/APv9/v8A/wABAAEAAQH/AAIA/wABAgICAAMB/wD/AQICAQIAAAIBAQMAAAEDBgMB/gX7/Pv9/Pz9+PkCAwIBAQD///76+Pn//v3//v8A//4DAgH/AP/+/v4B//7//wAAAP8CAf8E////AQEAAP8A/wD/AAABAAEAAP///wAAAAAAAQAA/wAAAAAA/wAAAAAAAP8A/wH/AQAB////AAEAAAD/AAAA/wAAAQAAAgD/Af/+A/76Av32A/3xA/3zBP71Av72Av/4AP75///6/f79AP7//wAB/gME/wUG/wgOAQkP/wkPAAcLAAMHAAABAf78/vr4+/f0+/Tw/vPt/fLs//fwAf34AAD/AAL/AAD/AAAAAAAAAAD+AQMFAwYJBAwRBAwUAwoPAQgNAAQE/v79/Pn2/ffz/PXw/fX1Af4AAAIE/wP9AP7/AAABAAEBAAABAP7+AQD+/wIEAAcLAw0UBxIbCBEWBgsQAAIE+/j2+O7q+ejd/fDpAf78/AECAQUHAgcKAgkMBQkOAwgMAwgOAQgLAgUG/wMD/gQIAQAJ/wEDAgQEAQIG/gEE/QAB/v39AP77AwH8/QQBAAcG///8/wAAAf0BAAABAAMBBAwRBhQeBRUfAg0XAQcM/gIF/f38+fXz+vHs/vLtAPbyAfn3//77AP/+AP8AAAD/APz8//8A/gMDAAkKAQUGAAMH/wAA//39/vv5/wAAAgIFAAIDAAECAAQG/wME/wUL//79/wr9AAz6Avz2+wsQ+fz+Cgb/AQD///7/AQEBBAYGBPoGBQb8+fgDBAYF/v38DAwNBgsJCA4OEhsbCg0RAAMF9vf6EhcLBAUFBwcH+/kEBwcH/v/+/v/+CPn5CgsKBggIAQAAAQD/AQAAAAIBAgEDBQUDAQEAAQH/AgMDAQEBAQMDAgMDAwQEAgIDAgIDAAAAAQICAAEBAAD/AAAAAP8B///+AQEA////AAAA////AAD+//8AAQEBAAAA///+Av///v36//v4/fn2//r2Af78AP79AP//Af8AAP4A/v7/AP8BAgICAQEDAQH8AAABAAEBBAQGAAEC/v3+AQH//gD+AQECAgMCBAEFAgIC/Pz7/fr7/Pv6/vz7Av///v7/Av///wABAP//AAD/AQEAAgME//7//Pr6/fz7BAAA/wAAAQAAAP//AAEBAAH/Af8AAAEAAAAAAP8A/wABAAAAAQH///8A//8BAAEAAf8AAAABAAAAAAAAAAAAAAEAAQEA/wIA/gL++QP99wT98QL87gL+9QP9+QIA+QH++v7++v/9/P7+/P7/AP4DBf8ECAAHDgALEgEKEAAHDAAEBwAAAwD8+v/5+Pz08Prz7Pvx6f/z7QD59AH++wAA/gACAf/+AAABAQEA/wECAwIDBwQKEQQPGAUOFgIKEf8FBgICBPz9+/z28/n28v749v779wH+AQECBgEEAQAD/QD/////AAAAAwH////++wAB/wAHDQURGAcUHQcQGAUIDAD/APr08vfu5fnq4f3y7gD++wD//wH+/f/8/P759v728vwE7gMGCgQLDQYOEQILEAEHCgMDBgAEBwADBgEEBv7/A/7//v/9/wEA/wQHBgMOEf0FAv8MEP359v739gH59AD8+AMHCAcVGwISHQQNFQAFC///Afz6+fn08vzx7gDz7QD38AD79v/9/AD//wAAAQD/AAEA/v8BAQEEAgUJCwYMDwQJDf8EBAD8/fz39/z18f78+gMEBQIGCQEFBwEEBwEDBAIDBv8C//8BAP8FCv/+C/wGCPb6/A8IAv8CA/7/AP///gEA/wAA/wQEBAQDAwIBAQECAQ0SEP0EAxEZGwsREwsOEgYHCfX1+Pz8/g0GCAQEBP//AAACAgsJC/39/QgKCgQEBQMDA//+/v/+/QABAQEBAAECAQACBAICAQEBAAIDAgECAQABAQIBBAMCBQIDAgAAAQAAAAEAAQAA/wAAAQAAAAABAAD/AP8A/wAB/wD/AAEC///8/wD//wAAAQAAAP///f8A/P79+f779wD9+QEA/wEA/wAAAQEAAgAA/QIBAAD+/v7+/P8BAAIDAwH9BP/9/gEAAgICAwABAgAAAf/+/f8AAPz+/QX+BQAB/wEAAAIAAf4BAgEAAf/9/f79/P/8/AEB/wEBAQAAAQEDA/4AAP/+/wAA/Pz9/Pf4+AQAAAAA/wD/AP8AAAD//wAAAQAA/wAAAAAAAAAAAP8A/wEAAP//AP8AAAEBAAAA/wAAAQAA/wAAAQABAP8B/wABAP4BAP0D/foD/fUE/PMD+/IC/vUA/vUA/vwA//v+/vz9/f3+/f7+AAP/AwX/Bgr/CA4ACQ//CA4BBgsABAb/AgL//fwA+vf89O/57+j78usA9ewA+vQA/v0AAP//AAAAAAAB/wEBAf8AAQIBBAcEDBMFEBoGDhkDChD/BQj/AP3/+vn99fH69PD++fn//v0A/wEA/wIAAgQBAwAA/wT/AP8CAgMAAAIB//4A/wT+BggHEBkHFBsGDhYFBgz+/f349vL37OX87uT+9vIA/wMAAwv/Af4A/wAA/wD///8B/wD//Pz9AvoB/Pv//v0B/v0F//sB/v79+/z+/v78/f3/AgQB/wICAAAAAAAABAcAAgEDBQj/DPv9/Pr/+/cA+PcA/foBBgYDEBcDDBMABQn//gH8+/n58fD78+7/8+8A9vEA+vUA/fkA/v0AAAAA/wEAAQH/AQEABAYEDQ8GERQFDA4CBwn//v/9+vr88vH47eT/+PEDBQUCCAoBBwsCCAsCBwsDBgoBBQcAAwQBAAMABAYCBQf7/Pz8/AIEAwD+/v37+fkAAP4HBgbz8fEBAwIDBAQFBwgFCwsMDxAIDhAKDhIOERQFBggLDf78+/v//f4ABQEHBwj9/fz9/f0FBwb9/f0CAgIBAAEAAQH/AAH+/v8FBAQAAP//AAH/AAIBAgEAAQIAAQACAQICAwMCAQIBAAH/AP//AAABAAAB/wEBAgEAAAD////+AP8AAAAA/wAAAAAAAAECAQAAAQL/AP8A//8BAAH///4BAQACAwIC/gT//wD+/gAC//8AAAH//v/+/f4AAgIBAgMDBAIA/wL9/v/8/P4BAgH/AAECAAH+/v4CAgMFBAUA//35+fkCAQECAgH//f39+/sA/v4DAgMBAgP8A/z//gABAP8BAgP/AP8BAAH+//77/P39/v4CBAQEAAAA//8AAAEAAAAAAAAAAP8AAAAA/wAAAAD/AAAAAAAAAAAAAQAB/wEAAP8AAAEAAQAAAAEAAP8AA///AAD+AQD+A/75A/72BPzzA/zwAvzyAf72//76///8/f/9/f38/f7+/wADAAUK/wgLAQgO/wgM/gcKAAQIAQIDAAAAAP38//r5+/Xw+vLs/PLrAPXvAPv1AP/7AAAAAP8BAQEAAP8AAQEAAQEDBAcKAwsRBRAZBhEbAwkR/wQH//79/Pn3/PLv+vPu/vr2AP8AAAEDAAAB/wEDAP7+AQIAAf/+AQEBAAIDAQECAgL//wQMCRIZBREbBA0SAgMH+/r5+fTy9u/r+/HuAfv+/wMIAAcEAAD/AP//AP/+AP//AAAA/wAAAAYFAgkLBA4RBA8TBgkNAwQE/vz7Afr4/ff3+/z+/wACAQQGAAQHAgUHAQQEAgIDAQYDAAAHA//9//4MAAr7AP7+AQQGAgsN/wUJAAAB/f38+/f2+/j0//n3//z7AP38AP/+AAD+AP79AP/+AAAAAAIDAAYJBA4TBhEWBQ4SAwgKAAID/Pv3+/X1+e/q/e7kAPnw/gIBAQQGAQYJAgcMAwkN/gkOAQkOAgoOAQYMAwUG/v/++fn69vf9AAAEAf8B/v78+Pb2BQEDCQkI5+fmCgwNBgAACxESDRMXAwsMCAoNBQcKBAQDAwYD/Qb9/////f39AAD/BAME/wD//fz9AgIB//7//wMAAAABAgID///9AAEBAgICAP8AAAEBAQECAQECAQEAAQIDAgIDAAIBAAEBAP/+AQEBAQD+/wABAQAB/wAAAAAAAAABAAD+AAH/AAAAAQABAQEC/wD/AQAAAAABAQIAAv8C/wMEAf8HAgAB/wADBAADAAECAAH9/wADAv8CBP8CAQL+Av7/AQL8CAIEAQID+/r7//7//f/9AQIB/f39AAEBAwIBAAMC/fz9/Pz+/f38AP///////vz8/fz7AP/+AQAAAQEBAQAA//8A///+AP8A/wEBAwUGBAgCBAD/AAEAAP//AAAAAAAB/wAAAf///wABAAD//wABAAAA/wAAAQAB/wD/AAAAAAD//wEB/////wH//gH//gP/+wH/+QT+9QP89AP99AL88v/+9f799/78+/7+/f8A//3/AP8BAgAGCgEJDwAKD/8HCv8GCf8EBv4CAgL//wH9/AD+//37+fv5+Pz59wD++wIB/v4AAQD/AQAA/wAB/wEAAgAAAQEEBQUJDgYMEgMOFAIOFgEKEf4EB/3+/Pr39Pvy7vzw6//48wEA/QADAwECBQEABP//AAAAAP7/AAIAAQIBAAICAAECAgMICgMOFQUTGwUMEgABBPv4+Pjy7/jx8v73+gH/BQAECgEBBv/++wD//AD//gD+/gAA/wAAAgAFBQMKCwYPDwgPEwcLDwEFB/v8/P76+/z39vry7fr18v///wEFCwAIDAIHDAIHCAEFBwAFBgIFBQECAwEDBQEDBQICAwIGBwAEBv//Av/9/f77+wD//gQGBQALDf8EBf4GB/749f/79wD59QD7+AAAAAAGCAQNFQYSGwUPEwMKCgEDBf37/Pvz9/nw7P3y6QH68AD99gD9/v/7Af/3A/4DBP0EBgEGDAIMEwMPGQIOFf8LD/j6BPv9//j2+AH9AAP/Avr5+QD9/efn5A4ODxcXGff+/gcLDAkNEA0RFQQKCwACAgEB/wICAgECAQUEBfv7+/7+/fz8/AUFAwQFBf///gD/AwICAQEAAAABAAAAAAICA////wECAwAA/wEBAgEAAQABAQEAAQEAAQEBAQEAAQAA/wAAAAIBAQD/AAIBAAAA/wAA/////wD//f//AAAAAQAA/wABAAEBAAD/AAD/AP///gEAAAACAwMAAQD/AgAAAf//AQABAgMBAwIC/QMFBwIE+gID+v7+//v7/QAE+wMG/f3/AP389QD///3+/f7+/vz9/vn5+AUFBgAAAAD//wD+/f/8/Pz7+gD//v/+/AD+/P///QABAQIBAgAAAP//////AP8AAAcGBwACAv8A/wT/AAAAAf8A/wEAAAAA/wD/AP7/AAAB/wEAAQAAAAAAAAD/AP8BAP8BAQAAAP8B//8B//8C/vwA//8E//wE/vcE/vME/vMD/fUA+/T9/PX+/fn+/fn+/fz9/wD+AQT+AwUBBQkACA0ACA0ABgkABQcABAX/AgEA//7+/fwBAQIB//8AAAAEBgYBDA7+Af3+BAT99wT/+vUA/fv///3/AQEBBAgGDBEHDhUEDBICDBAACQ7/BAX8+/r59fH68e398e4A9vAB/vgBAwAB/gMBAwf/AgYAAAP//wAA/wH/AP8A/wABAQMDCg4FERcFEBcDCQ8A/gH69vP28Oz58/P/+/8A/wMAAgcA/wAA/wAAAP4A/v8AAAAAAgIAAQIBBQcECgsGDxAGDhAHDQ8BBQf8/P37+/r78vD87eP88en++PP/AQQBBgz/9w39BQoBBAYABAUCCQoBCQ0DCQwECQsDBQcCBgYCAwT+/f7//foA/f4DAP8CBQT+Agr/BQX/CQr/+Qr8+Az9+vf/+fMA+Pb/AP8DDA8FDxYFDxMECgwCBQX//gD79/z58/L89fIA/fsAAgIBAgL/AP4A//8A//0A/fz//fr/+/f+/fwAAwcBCAsACQv7+/wAAAIBAQL6+PkA/P39+voFBAQHCQfs7esSGBsRFhgDCQsBAwYEBwgMDA3//wD6+/r+//4DAgMBAAEFBQX9/f0CAP38/f0AAAEAAAAA/wAEAQT+//0DAwP/AP8AAAEDAwIBAQEDAwMBAAAAAAEAAAH/AAABAQH/AAAAAP8A/wABAAD//v0BAQEAAAIBAP///wABAP////8B//8BAQEAAQEA///+/v4BAAD/AAABAAEAAP8BAQIAAwIAAAEBAQH//wIAAPsAAf7/BAAB/v4BAwYCBPv//f4D/f4E/Pz7+voG/P/8+fz69/b7+vr/AQABAQEC/wD69vf9/f3//v38/Pr8+/v///4A//8A//4BAQH//wD///4BAAEBAv4AAAEBAf8DAgMAAwQCAgL/Af8EAP///wABAAD/AP8AAAH/AAAAAAABAAD+AAABAAAAAQAAAgD//wAAAQD///7/Af/9Af/9Af/+Av77AwD4Bv70Bv3wAv30Af32/f32Af74AP78/v/9/gIEAAQIAgcNAgcL/gQH/QAD/gABAfv8AAL7/wEBAAEDAAEBAAD+AwMDAQECBAMEAwkM/QQF/QkM/ffzAff0//fy//nz/v77AgICBQsPBg0VBgsSAwoOAQYI/QEC+/j4+PLx+fHt/vXwAffzAPz1AAD8/wAAAf4B/v79AQP//wIGAAADAQACAQECAQQEAg4RBhIZBA4VAgcJ//r5+vTy9u/w+vTy/vz7AAAEAQEC////AP37AP79AP79AAD/AAACAAMCAQUJBAwPBw4NBw0QBAsNAAYI+/3++fX0/PHu++ng/fDi//rzAQAAAAMHAP79Afz7AP70APkA/wMC/f4OBQQFBQwOAgYGAQYIAQME/vz9/fj5//z5AP/+AgIDAgMCAQMGAQYF//78/gcEAQgHBPsL/foL/vv6/wICBAkMBAoOBAwNAwUG/gAA+vr89/b3/Pv9AAMHAAgQAQIBAPz1Afr1//76APz7AAAAAAH/AP//AP/8AAEAAQIFAgIFBwUEBwcHAgIA///8///+/v/++vz8DBIRBw8R+v4BBAcLDRIWAQMEAAIC/wAABQYFAgMC+/v7//7/AQIB//7/BQQE/f4C/Pz8/v7+//3+/wAB/v7+/wD+AwICAgICAAAAAAH/AQEAAQIBAQEBAQEAAQAAAQABAAABAf8B//8A/wD/AQD//wD/AgACAAD9/wABAP////8BAf///wAAAP//AQAA////AQD/AAEBAf8AAAEAAP8B/wEAAQABAwIAAgABAAABAAECAf3/////Af/9AgMAAgMG/vz8AP7+APv7/v4BAwf9AAT39vfu+fXy/Pn6AgEBBQYFAQID/v/9/vv7+vn3+/v5AP//AwMCAAABAQIBAQEAAQID////AP8BAgMDAAAA/wAA///+/fz9/gEABP8AAAH//wAAAAAAAP//AAEB/wAAAP8BAAIB/wD/AAEAAAAA/wL///8AAAIA/f/++wD+/QH//AP/+AX+8AX98QT+8wD89/7++gD++gAA/wIEBgUDBv4GCwALEAEKEf4FCPv8/Pv08vv18/78+wAHBQIFCgIFBwACAgEBBAEEBAADBAECAQACAwQJDQMJDf4NE/76+f/69v/69f/9/QQEAwUGCQEFCAMICwMGCPz9/vv29Pjx7/nz8f739gD69v/9+AH//P8A/P/+AgEBAgAA/gEA/wEBAgECAwACAwMICAYOEQYSFwQNEwADBP349/jv7Pnu6/z29f/8/AH/Af8BAf8AAQAA/wD//wD+/AAA/wACAQADBQIHCQUOEQUOEQYMCwMJDf8EB/v7/Pr29frw7/3t5/3x6QD69QH/AP8DBQEDCP8BBAD+/wH//AADAQAFBwQKCwkPEQYOEQIHC/4CA/38/P349vzz8P749QACAAIFBwMFBgAEBAMCA/8A/wEEAgQCBwAGBwIGCP4AAAADBAMGBwUICAQGBwABAv37+/r5+fz8+wAEBAAJDwACA/8GCwH79wEF8gL78v/69AD9+P8A/v8EBQIJDQMLEAMIDgEEBg4LCAgHAgMABgIEA/v///79/AQGBgQKCgoKDQQHCwEEBwIDBAgLDAABAQACAvz8/AUFBQABAAEAAQAAAAIDAf7//wQEBAICAv7+/gIDBAIDAwEBAf/+AAAAAAICAgEBAQEAAAICAgD/AAICAgAAAAEBAQEBAQEBAf8A/wD//////v7//wEAAP8CAAABAAICAv//AAIB//4A/gAAAf8AAQEAAAABAQD/AQD/AAEBAf//AAABAAIBAP//AAICAv4AAQMAAQAAAv4D/v79/gD+AwAC/gIDA/4CAwD9/f8AAQT/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/v7/Af8A/////v/8/vr6/v4A/Pn8/fv7//8G/////v//AAABAgIEAgMFAQMDAwQEAgEDAgICAgIDAQIBAP8A/gH+/v4BAAAA/f39AgACAwQD/wD////+AP4B/wEAAQEC/wAAAf8AAgMBAAABAAAAAgIBAAD/AP8A/gAAAgAA/v/9AQABAAD//wD/Af//AP///wD/AQEAAQACAQICAQEB////////AQAAAQEAAf8A//7//wEBAf8A//8AAAH/AQAB/wH/AQABAQAA/wABAAD/AAD/AAAAAgEA/v8A/wAAAAAAAAEAAf8BAP///wD//wAAAQABAQABAAICBAUEAQII/v/9/v/99/X2BAgHFRsbBQIA6vn5AQEA/vv6AgIBAAID/f3+BQMFBwgIBAYGAwYGBQkKBAkJ+vv+/Ozp+Pn4/fz9////BAEBAAAAAAAAAAAA/wEBAAD//wD++//++wH9+wL99wT+9wX99QT88wL+9gH++AD/+wAA/f4DA/8GCwALEQELFAAHDgAFCP8BAv7+/f36+vv59/r18vr19P/8/P/9/v/9AQADCQABBwD/AAEAAf8AAAEB//8AAAECAQIEBgMODgMSEgQQFQYJDAMAAv/5+Pn59vvw6P3v5P327wEDAwEFCwAHDAMIDAIICgQHCgMHDAIFCQEEBAICAwEEBAIDBgEDBgMDBwAA/wEA/////QD//wD/////AP78+fv3+Pv49////QEEBf/+AwEAAQAAAv8AAgABAwABBAACBQADBwEEBwIICQYLCggPEAQNEgIJDv4AAPz3+fr1+Pz09f718//18AD69AD9+QD+/QAB/gD+AAEA/////AH+/QD//gAFBQYRFAgXHAQSGAAIDvsABPr4+/r08fru6f/x6ADz6gL89AAC/QEEAQH/BgIDBAD+/QD/+/8A/gAHDgYUIAcYIwUPFQIHCAECA/8AAPv4+Pft6vrm3f7s4AD78/4E+//9AAD6/P33+AEH9AIFBQQJCQQLDAQKDAMICAECBAEEAAL/AP8AAAH/AAH+AQQBAQEAAf8B/Pv9/gD//gEBBAECAwACAwACAwEDAwABAv//AQEDAQMDAwIDA//+/wAA/wMDAwMDA/79/QABAf8A/gEBAwEBAgD//v8A/QIAA//+/gECAf8AAf79/AIDA////wAAAAEBAQABAAIA/wABAQD/AP7//gEA/wEBAP7/AAAA/gIAAAAAAP8AAAAAAP///v7+/wEBAQABAv8A/////wABAQEAAAAA/wAAAAAAAf8A////AAAA//8AAQAA/wD/AP8A/wAAAP8AAQAAAAAA//8A/wEAAAABAgEA/wH/AP///gD/AQECAgMAAAABAgABAQD9Af79AAYGCAMREvcBAvjz9AkMD/r08f7//wD+/gEAAP3+/vr7+wgBAAUKCQcMDQgOEAMHB/z19uvs7Pb39wD////+AAQB//4AAQAB/wAAAP0A//4B/fwA/fgC/fcE/PYE/fQD/fUE/fcB/vcA//v/AP7/AQAABQgACg4AChEAChL/CA0AAwf/AQP+///+/f79+vf89O/89fL99/gA/wIAAAIAAAMAAQgAAv8AAAAAAAIAAf7/Af8AAgABBgcDDQ0EDxAFDREGCg0DAQP++Pf68e757eb87OD+8ucA/PYABAj/B/kA+fr79vYBBQf7BAUCBgkCBwoECQoDBwsDCAsABfwCBQgDAwQBAwL/AQD+/QEBAQECAQD+/v4B/wAHCxEDAwT9DRH99vT89vT/+vgBAP8A/f///wAAAQQAAgYBBgkDCQkJEA8JDREECw3+Awr8/gD59/b69fb89PT+9fL/9vEA+/YA/fn/AP8AAAAA/wD///4BAP8CAP3/Af4ABgYHEhcJGSAEEhgBCQ79/wT7+fn68vH77+b+7+UD9u0C/fcCA/7/AwL//wYBAP8C/v8B/v39/gb/BQgGFB8EFiADDhQCBQcCAQL/Af/8+Pj57On55dv/6t4A+vIAAQAA/v4A/PsAAfr//gEA+/r9AwL//PoAAgABBgYB/AQBBQH+/wD+/fwA/wD/AAEAAAABAgMDBQj+APv6/QD+/wD/AAEAAQL/AAIBAQIAAAEDAwMCAgIAAQH///7///8AAQD//f7+AAADAwQDAwT///8AAf/9/PwCBAMDAgH9/v79APwDAQH//gABAQL/AQAA/wAAAQEA/wD/AAAA/gABAgEBAAD///7//v8AAQAAAgD+//4CAAD/AQABAQIBAQL/////AP////4BAQMBAQD///////8BAQIBAQH+/wABAQD///8AAQAAAAAA/wAAAP8AAAH/AAD//v4BAQEA/wD/AP8A//8A/wABAAP/AP4AAQEAAv8C/QD8AP4CAQEAAwP//////wAAAAEBAQID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AAABAf77/vn09vb0AQEAAf8A/v7//v8AAP//AAD/AAECAAEA//7//gL+AwEC/v8AAP7+AP//AAD+/gEBAgEB/wD9AQEAAAAA/fz9/v79BQQE/wEAAAEC//79//7+/gEAAQMEAAAB//7+/wD+AP78/vv5//79AQIC//38AQIGAQIA//4A/gD+AwAB/wD////+AAACAAD/AQEB//8AAAAAAQAAAAAA///+AP8AAQEB/v7/AQEBAAD//wAAAQAA/fz7/f3+AwQD/gD/AP8AAAAA/wD/AP8AAQEAAP8AAAEAAAABAgIB//8B/wAA//4AAgAAAAEAAAH//v8BAwP/////A/78BgkH+QYH/AMD/wD//wAAAAD+//78AAD/BQYIAQME/QAA8Ors7NDUDPX3/QAC+gEE+//+/wH/BAL78AEA/AAA+wEA//4A/wD/AP8A/gACAv4CBv8FDQAJEf4KEQAIDwAGCAADAv8CAv4BAv//AP39//z7+/369/z28v728gD58gD79wD//P//AgABAAAAAAD//gAE/QEFDAQICgUKDgcNEQMLDwQIDgECAfz69/vz8fnw6/r08P759wD+/gABAQABAgD//wAAAAABAQABBAAAAAABAAABAAABAgMKCQcREQcPEgYNEAMFCP8BA/r5+fv19frz7/zy7AD17wT9+AcHBQUGCAEAAf7//v38/P79+gD5+gH89f/27f/68gEEAgQHBQMFAwAAA/3/A/4A///+/wEA/wAA/wEBAwUIDAQDA/4IC/359v/6+f369/76+f/6+P/79wH9+QIBAQEFBAEKDQUOFQMPFAILEQEIDQACBv36+frx7Prt5/vv5wH48AH/+wIC/gIAAAEBAv////4A/QH+AAAAAf0CA/8JDAYPGQELEwAEBwMDAv4BAfn4+Pfv7vnn4/7r5gH69AAA/gAC//8B/wECAv8EBAH/AP///QEBAQMKDgcZHgQVHQQNEQUGCQMCBPv59/nz7vfr4/vt5wD49QD9/QD/AAD//wAAAP8B/wH+/f77/O/w7v3//////////v/+/vz9/AQBBAQEAwMCAgIDAwABAQABAQIAAf4A//78+/z8+wMCAAIDAwMCAv3//gABAAICAwIBAvr6/QABAQICAAAAAP79/wED/wH+/wEBAQEBAP////v7+v/7+gEAAP8AAAAAAP8AAAD/AQABAQH/Av///gH//gEBBAEAAP/+/QACAAECAwD//wAAAf///v////8AAAAA/wAAAAAAAP8AAQH///3+/fz6+QECA///AgAA//8A/wD/AP/+/wAA//8A/wAAAQABAgAAAQEBAgAA/wD/AAICAf7+AQIDAQD/AgH//wEAAAAAAAEABgYHCAYJCfr1AwQEAwAB/gEAAAICAAEEAv4BAAEAAPjz9t7Kz/np6gQDAAMBAgT/Av4A/v8CAgQA/PQAAf8AAP//AAD/AgD/AAAAAQH+AAL8AwX/BQkABQkABAcCBAQAAgQBAgIAAQEAAgP/AAH/Af8CAwQEBQUACQv8/Az9//v9//7/+wAA/v///QAA/v4BAwQDBwcECg4FDhAGCg8HDBABBQn/AQD69/X59PH58Oz99PD+/PkA/wAAAgEA/wAAAAAAAQEA/gAAAQAAAQEAAQAAAgIAAgEECAgJERMIEBMFCw0DBQn9/wH9+vr59fT58/H+9O7+9vAB+/UFAv8HBgcHCAcBAQH/AP/9+/z9/Pv+//7/AQICCgwHERQIEg8HDAf/BAD7AP71/Pr/+v0A//8AAQEBAwIDAgICBQMABAv/Bgj/CAz9/Pn++fj//Pz+/PoA/fn/+/j//fwCBQcFDBECDA8CCgoEBwoBAgT8+fj68uz57eb98OoA+fADAPoCAwABAQECAP////7/AP7///8A/wAAAgQCBwoDERkDCxIBBAcAAwIAAAL79/j37+z45+H/7OYB9/AA/vsBAwEAAwQBAwEAAwMBAP8A/fv//PsCCgsIFx8DFR0EDRIFBwoCBAT9+/v69fL37uj78OoA+vgA/gEAAAIAAP8AAAIAAAAAAAD///4A///19fb7/P3+/v///v/9/f39/fwDAwEBAAQA//4A/wEBAAH//v///////f0AAP4A/vz4+PgCAgEFBAYBAwIBAQP+Av4C/QEAAQL9//8BAAEDAwMCAgECAQEA/f4DAwECAgIA//7//v7+//8CAQEBAgL/AgEBAAAAAP8BAAEAAAEBAAABAAABAP8A//////4A/gAAAgL////+/vz//v4BAgQAAQH//////wABAQEAAP///v/79/b++vgCBgf+AQECAwEA/wD//f4AAP///wD/AP8BAQEAAAAAAAEAAQABAQEBAgIBAAAAAQL//gD+AP8CAgIBAgH/AAAB//8FBgcD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/f/+/wAAAAED/f0A9/b50tXa9wINAg0TAv8CAvwB+/wA9fT2CPX0AgMD/gEA/v//AwMGAQYJAgISCxgg/e3j+fHz9w3v/gL/AP77BA8RAQUKAQEAAQICAAAAAAH///7+/P3+/f397u3t7Oro/v39AgIFAAEAAgIC+/v9AAAAAAAAAgID/f79//8AAQIBAQEA+fn5BAACBQD9//8A/QAA/QD//wD/AQABAgECBgAGCgUKEAMNEwIOFAUPEwUMDwMHCQECAwD+//z4+Pv07/zx6//28wICAv8HCQAIDAQIDgEHCwAFCAIDBgEECwQICQD+/P78+/37+f76+P359v759v759f/5+P/69P/48wD59P/7+P38+wD38v/69gH38wP49AH59QEJDwL9DwH+/f4FB/8DBQIDBP8DBAIDBP8D/wIBAQACAgACAgABAv8BA/7/AP/8/P7+/v/8/f4AAQAFBgAJDAECAf/8/AD9/wH////++wH8/////v3//v///wEA/wUCAQUFCAYLDAMMDgAKDgMJDQoIBg4IAxEFBBcICBkNBRMNCgwJBQYEAwQEAggGBgUDBAIDAQIAAAEBAQABAf8AAAEAAgAB/wICAwECAQICAv8AAQEBAf8AAAEBAgEAAAEBAAEBAgEAAAABAAEAAAAAAAD/////AAAA/wAAAf8A/wD+AAD/AP8BAAEBAQAAAP7//gEAAgD/AAEBAQABAP///wABAP//AP8AAP//////AAD/AQMCBAgIB//+/gIB//gDA/39+wEAAQEAAAABAAAAAAAAAf///wD/AP8A//////7+/gD//gD/AAEBAAEBAgABAAD+/wIBAf8AAQECAf79/f79/AD//f39/AUDBwMDAv39/wMEAhsbGPf34PDc1gofJAoTFgQQEAkLDPv6+v76+fLu7/Pu7wgEAAgB/QH59f3z7Q4CAAUDAv/9/v38/f7/AQMGBgUEAwIBAP79+//9+wEA/f79//8DAf8CAwD/AP8B/wD/AQD/AgAAAf7/////AP8AAQAAAfv8++Tk5PD1/QoWH/wCBQD8/Pz7/vL5AOft9wAJ9SMAAQMBAf37+gEA/QMBA/4FDQUTHQwC/AUICwwPEwEIBvTx7gH//AoPFQD/Cf8DBAABAf7+//3//f/+/vj5+OTi4PXz7v7++wH/AP7//wD//wD//vz8//8AAAIA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//8AAQD///8A///+//8A///+///+/v/+/f7+/v39/vz9/P79/fz8+vv5+fr7+/n9/f3//wABAQAAAQD//wAAAAABAAD/AQH/AAAA//8AAP8AAAAAAP8AAP8AAQAA/wAAAQAAAAABAQH//wAAAP/+AP8A///+AP8AAQL9/v75+fkFBgUFBQT/AAEBAgQCAwQAAgIDAgP/AQIECQoIDf7+/P0CAQH+/f38/P79/Pz+/P369/gD/gD+9fX9//oHBQX/BAQFBQb9/v77+vz9/PsA//0CA/8AAQAA/wMA/vz//QD//AH+AAD/AAEDAgQAAAD+/v//Af//AAD/AP/49vb98vEMAwAEAQH9AwIB//4DBQMG/wgDBQYGCQn9+/r9//8CAwEABAUCBAUIA/8G9u8dEwsJDAYGDg8DBwr9AgH///3/BAcBBw4HBf0AAQD8/wL8AAL7+/vy8fPv6Oj99Pb9+/r8+fkDAgMBAgAAAgADAwT7+/oCAgP///349/r+/v78/P38/PwAAQIEBAQGAgIIAwkMBAwSAg0TAgsPAwcJAAED/f39+vn4+fXy+vLw+/Lt//Hn/vToAfvxAPz5AP7+AQAD/wIGAAIDAAABAP///wD/AP8AAQEFAwkNBxQcBhciBhEVBQkJAwMCAgD//wD//f36/Pb0/fb1/Pz5AQECBQcKAgcKAggKBQYJBgQF/wQD/wAEAAf//v38/f39AwoN/Pv9/fv6/vv7//z8AP78//v5Avr1/vv4AQIAAwkLAwUH//8A//z7/vr4/f4A/vr5AwUFAgMEAAQEAgYIAwUHAQUFBAIACgcFDQsFGgwHIBEIIhkQCgT/CAYEBwQBAwMBAgIFAAD/AgECAQIBAQEAAAAAAAAAAgIC////////AAAA////AAEAAQACAwICAQIBAQEAAQECAAAAAQAA//8AAQH/AAEBAQABAQAAAAAA////AAABAAD/AP8AAAAAAAD//wAAAP///wEBAP8A////AAAAAAAAAAEAAQABAAD/AAAA/wEA//7/AAD//f7+//////7+/f7+/v39/f7+/v39/v39/Pz8/Pv8+vr5/Pz8/f39//7//wD/AAABAAAAAAD/AQABAAAAAAAA///+AP8A/////v/9//7////+AP///wAB////AP//AAEAAQEBAP8CAAD9//////7/AAABAwQE/v/++vv7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BA8YAQoOAgcHAAAB+/n6+Pb1+PLv/fHt//XsA/v0/v/9/wEGAAD7AAH9AAEBAAMDAAACAAABAAIEAAIEAQQFAAMIAAcLBA4SCBQYBw0VBgwRAwcIAAIAAAEBAAD//vz7+fPv9+zm+evl/O/m//jwAf76AP////wA//oA//jz/vjw/frzBPr2+wwTBg4SCAMEAgYIAQIBAQECBAQB/f4BAf7+AQAA/QACAQMHAAAGAQEBAgQGAwQEAgIDAP8AAP38APz6AwkLAAkFBvgDEQT7HBQQGBUWGRkaFRQUCgkJBQYFBAMCAgECAgIBAAAC/wD/AQABAgEAAAIBAgECAQICAAD/AQABAAAA//////7+//8AAgABAAH/AgECAQEBAAABAQEBAQEBAQABAAEAAAAAAAEAAQEBAQEC//8AAAAAAP8A/wD+////AAEB//7+////AAEAAQABAAAAAAABAAEBAQAAAAAA////AAAAAAD+/v7/AAEA//7//////v7+/v7+/v79/fz9/P79/fz9/f39/v39/v79/fz9/f38/f39/v79//8AAAAAAQEBAAEBAQEBAAEB/wAAAAD//wAAAAABAf///gD/AP//AAD//wAAAP8A////AP//AQICAQAB////AQAA/wD/AP///wAAAP8A/f39+/v79vb3AgQEAQEDAQEDAgMFAQH+AP8AAwECAP8A/v79Af0AAQIDAQAA/f/+AgMDAgID/wAB/wIDAgUEAwUB/fv4Af/9AP79Af/8/vz5+vj0BAD+AAMAAP4AAf4AAP7+//8A/fsAAQH9BQEI//v//f7/A/8BAP8DAAH//wD9+vXwBf33CAgOCAkVBggI7fHx+wD2EP/8/AMJ/QH7+/79AAD9Av78//j1CQD6Dg0FAwQDEhUWBgwL/QECAf8A//37/Pz5/Pz7/vz9AAABAAADAAEC//8D7ezs5N3c+vj2//38//7+BwEDBP79AP/9Av0C9wEB+/n5AAEA/wAA/v8A/fz8AQABBgYF/wAB/Pv7BAMLEP8CBP78/vr5+Pr19Pfw7vrx7AD17gcB+AMD/v0AAP4C//0C/wABAwAEDAABAQIBAv4AAQADAwEDBQIGDgIKEQQQFgYSFwcOEwUICwMEBAEB///+/QD//v77+vfy7/br4/rr4v7x6wD69QAA/wADAgH//gABAP/+AAD+/AD89v/5BAD6DgMCEwcHCAgLDQMIDQACA/7///7+/gD//P/7+fz39f37+QEABAIEBAIFB/8CBf8AAQABAwMEAwEFBQUABwYLCw8EERcHIBkKAB0UDhQPDAoICQQEAwMDBAECAQICAAEBAQAAAAEBAv7//gAA/wECAgEBAgABAQAAAAIAAQABAAAAAP8BAQAAAP///wD/AAEBAQECAQABAQIBAgABAAEBAQAAAAAAAAAAAAEAAQAAAAD//wABAAD/AP////8AAAD/AAAAAAEBAP//AAD+//8BAAABAQEA/wAAAAABAf8A/wD/AP/////////////+////AP///v79/f39/fz9/f79/f39/f3+/f79/v79/fz9/Pz7+//+/f///v8A/wAAAAAAAQD/AAEBAAD//wEAAQAA//8AAAEAAf//////AAD//wAA/wAAAAD//wD/AAAAAP7//wD//gIBAgAA/////wEAAAEBAAIBAf4BAP79/f38/f0D+/z7+/3+/f3+/vr6+gEAAAECAgD7AQMDBAD/AQABAQMCAwECAQIBAgEAAQADAgICAwQCBP8CAwIBAQYGBPz7+QH//QD9+vn28/z69QQFBAIDBAD+/wD+/f79/gEBAAICAP77/vv+/AEDBQID/P79/gIGAf4C/v/+/v307gYB+wAA/gUMDRIMDw0WFfj4+PXy8vX18P7+AAIAAP78+QIDAgcMBAACBwUJCQ8TFQQICQACA/8BAP79/vz8+fv7+v/+//8AAAABAf//AP8BAvv8/e7r6u/u6vH38QP/+gT8/vv+AQkAAwj9AQj9BAEBA/X//fj++P4B/wIDAv8BAf78/Pj4/gIDAgECAgT+AwT++/r79/f28vL68+/88u7/9/AA+fMBCAECAwT+AAIB/wABAwL/AgcAAggBAwUAAQACBAQBAgQCBggEDBEHEhoHEhgEDA8CBQkBAgIA/vz//vv+/v3++/v49PP17uz47uwA9PEA/fkAAf8AAwP//gL/AP4BAv4B/wEB/wYABAUDChEJEBYIFRgKERcECA0CBAcA///8/Pz//f0A+fb78ev37+r89vEC/wAEBQcDCQ8DDRL7Cw8FCA0ICQoKBQQOBQEUCgkcDgYbDQURCQMMCAMHBQUDAwIDAgIBAQEBAgAAAQH/AP8BAAD/AP8BAQEBAQEBAQIBAQECAgL/AP///wAAAAD///7/AAABAAEAAQAAAQACAwMBAAABAQIBAgAAAAEBAAD/AAAAAQEBAAABAQH/AAABAQAAAAH/AP4AAQEA/gD+AP8A/v8BAQAAAAD/AAAA/wABAP//AQAB////Af8A/wEA///////////+/v7+/v////////7+/v79/v/9/f39/v3+/f3+/f7+/v38/f3+/f3//v4A//////8A/wAA/wEBAAABAQAB/wABAQEAAAD/AAEA/wD///7///8A/////wAAAAAA////AP//AQD/AAAAAP/+/gACAv8BAQD9/v3//v4AAQEA//8AAAD/AAD7+/oCAwL39/cCAwQCAQUBAgP9/v4D/P79AfwAAAEDBAT+/v8A/f3//wD/AgIDAgQBAQECAwIBAwH7+/f39/IDAwH7+fb8+vX8/QL5+PP/+/n8AAUDAAUCBQT///wCAAMCAAEB//7//Pv9/fwCA/4BBP/8/v8DAAP/Av77+/j68uwJCQf/Af8BBwgABQYE/QgLCwwIDxAR+/v+/Pz+/fz+/fwA//8BBAMHCAkEBgb/AgQAAQH////+/fz8+/f7/Pn/////AAEBAQL9//78/v4AAATz8vPq6eX/AfsEDAX5+fn7+vz9/QD+//wDAgID/v4H+gL9EAX6/v0ABwEAAgEA/f7////4+PYCAgMCAwQE+fj2+/b1+vPz+fLy/fb0APr4AP79AAD//f8AAgABAAIBAAH9AQD/AAEBAAMD/wQFAQMFAgQGAgcJBA0QChMbBxIaAwoLAQME//8DAf/+/v38Af38/vv8+ff4+PTz/PX0APr8AAAFAQQJ//4EAAH9AAH9AAH//wAAAP8CAAIHBA0SCxYgChcfBQ8UBAoNAQIEAP/+AP7/AP36/Pf1+fDr9+rj+u7l/vXuAfz3/QEBBAcKBA4VAxIc/RIbAxEVFhQRIBIJGxALGA0HDAYABAMBBAMBBAQCAwICAAAAAQEAAQABAgAC/wAAAQEAAQAAAAEBAwIDAAEBAAEA/wAAAAAAAAAA//////8AAAD//wAAAQICAQAAAQEBAAAAAAEAAP8AAAEA/gD/AQABAf8AAAEAAAAAAP//AAEBAAAAAAAA/////wD/AP7+/wAAAAAB////AP8AAAH/AAABAQABAAD/AP///////////v7//////v3+/wD+/v7//v7+/v7+/v39/v3+/v3+/f3+//7+/v3+/v3+/vz+//7/////AP8AAf8A////AAEBAAEB/wEBAAD/AQABAf///wAAAAAAAAAAAAABAP8A////AAAAAQAAAP//AP///v7/AAD+/gEAAQAA//7+/v7+AAH/AQEB/f7+//39/gD/A/sCAQEB//7+//4AC/8MAQAAAAAA/wAF//8CAAEBAwEB//7//gD+//7//wP/BAAFAAEA//799fPv8vHs/v36/Pn1+PXx/wMC/Pr3Afz8+//8BP/+AgD//gIABAICAQMBAP7+AgIC//8AAP78//0B//8A/QIE/f/79/Lv+fTv/wgWAQMFAgUFAAUGAQMD//7+AwX/AQj+//79///+////AQEB/gH/AgED/v//AP/////9/fz7+/r4/P35//79/wAB//8C/gAA+/z9/wEC////7+7s7Ovn+vz3BAoH+vf6/f7+9vb6/f8CAv36Cv0EBfwDB/MBDgEE+gUD9vj6/wH/AAEAAAD////+/v79BPjz8vjx8Pz09P/6+wD+/wAAAwADBgD//P3++gP9/f8C/wABAAD+/gD++wH//AADAgADBgIICQUPFAgQFwkUHQQKDgADAv7+//79/P/7+v36+AD9/P36+vr19Pv19P34+AAAAAEFCQD/BQD++wD/+QD++QAA/wACBAMECQUMEwoUHQoUHAQNEgMHCQABAwD/AP/+/f37+fr08Pfu6vfp4vvt4v7z6gH69AP//AMCAAL4AwT57QwA9w8NBRkLEC0aCiEUDgwHBAUDAAUDAgECAgIBAQEBAgEBAf8AAAAAAAAA/wECAAD/AAECAQEAAAAAAQEBAQAAAAAAAQIBAP//AQEBAP4AAP///wAAAQABAAD//wABAQEAAP8AAAD/AP8BAAD//wAAAP8A/wABAAIBAv8A/wEBAf8AAAD/////////////Af8AAQAA//7+/gAAAAEAAQAAAAAA/wAAAAAAAP//AAAA//7+//7//v/9/v7//////v7+//7+/v39/f3+/v7+/f3+/f7+/f/9/v79/f/9/f///gD//wAA/wAAAP8A/wABAQABAAAA/wH//wAAAgAA//8AAAAAAAAAAAAAAAAA/wEBAP39///+/v///wH/AP///v/+/v////8CAgEAAQEBAQEBAP8AAf/+/gEA//8BAP////j4+P39/f7+/f7//wAA//7+/vz7/AkKCQEBAgIDAgD9/QEBAQD+/v0AAAL+AQEAAf38+/j38/f38QEF/wUBBgYHBvv59fv8+wIAAP36+f8EAwgEAv/9AgL+AwH+/QEB/gD/Av7//gEBAv////3+/wIEAP769vv6/fvy7f779QIGAgIEAwACAgECBAIBAwAC/QEBAAD//v7+/f/+/gAAAAAA/wD+/gD//QAA///+/fz7+vv7+Pz7+P7//v7//f8AAv7/Avz9AP8BBAIEBvHx9O/u6/389wYGBQcDBAUEBf8O/PLq7vj0+AH9/AMBAv3//wb5AAn1AQMGBP8HBfL9+AQFAwICAv39/gH/AAT47ev79vUA+voA/wEAAAAAAgIAAAQAAwX+/Pj7+foBBAMA/wcAAf8BAgEA//4BAwQEDBAJERcHEBgGDRYECQ4BAgT9/f38+/z8+ff89vb9+/f++/v89/T89/P89fH/+fQA/v7/BAQAAQUA/wcA/QQA/gQBAf8BBwoIDBQLExoHERcFChEABQgAAQL//f8AAfz++vj58e726uP16uP87+QB9OsC/fYC//4DAP8D/wEGAwIYEg0lJx4bIh0cIRwVEAsLCAMCAgACAQIBAgIBAQMAAf8AAP///wABAQICAQEAAQD/AAACAgICAgL+//8BAQEBAQEAAQEAAAAAAAAAAAD///4AAAEBAQIAAP8AAAABAQIBAgEBAQIBAAAAAQAAAAAAAAD///8BAAEBAQEA//8BAQECAQH/AAD/AP///wAAAAAA//8AAP8A/wAAAAAAAQEAAAABAQEAAQAAAAEAAP8A///+/wD//v7//v7+//7+/v/////+/v7+/v7+/v7//v7//////v3//v7///3+/v7//v7////+//8AAAD//////wABAAABAQD////+AAACAQAAAAABAAH/AP8BAQH/////AAD///8AAP8AAf8B/wEAAQABAQH+//4A///+//0CAgMBAP8AAP7//f3+//8BAQAAAP////3+/v//+/4BAgEBAQL4+PYBAgH//wD/AP8AAAEAAgEC/v7///4CAgIBAQD/AgL7+/f//P38+/oCBAITHBz/+/z+/QDy7+z28+8EAwMDAwEDBQf//fkA/AD8+f3//AMBAgECAwMAAAABAQEEBQX9/gD+AgP/AgX+/P7/+vQGBgMICwoEBgQBAQAAAP8CAgEA/wL///4AAAEBAQIAAQD///7///8A///+/P3///37/Pr+/fv//vz+///+/v/9/wD/AAH9/QAAAgQDBAb8/gDt7evr6eX69/UDAQACBAL/CQb+AwMG+Qn6/Pv3+PwA+/kJ/wIEAgIJ+v8B9Pz+AAP/Bgf1+/oBAgMCAAACAgIE/PTxAfv7AP////7/AAEAAAD9AAD+AAD/AP7//f77AgD/AAIFAAIDAwcJ/gIGBxQbBxMcCA8TBwwTAwgM/gEF/Pz9/Pv7/fj2+PTz+fTz//r4/vz5/vnx/vbyAPn3AP38AAICAAEEAAMDAAD9AAEHAf8EBAcJCA8SCREaBw8UAwYJ/wIDAf//AP/+//8A/v36+fLu9Oni9+nf/PHp//buA/34AgD/BAICBAMDCAcHFBUUMDE0LjM3FRUbBQYIAwMDAgIDBAQCAQEBAAABAQIBAQACAP///wEAAAAAAAEAAAABAAAAAQEBAAEAAwIC//8AAAEAAAAAAAAAAP8AAP///v8AAAD/AAAAAQEBAQIBAQABAAAAAAD/AQICAAAB///+////AAAAAAEAAAAA/wAAAf8A/wAA/wD///8AAAAA//8A/wAA////AP8A/wAAAf//AAEBAAEAAP8A/wH///7//wAA//7+/wD///////////7+////AP///v7+/v7+/v7+/v/+////AP/+/v3////+/wD/AAAAAQAA/v8A//8A/wD/AQEB/wAAAAD/AgEDAAD/AP8A/wEAAAAAAAAAAAEBAQEB/wEAAQEA//4AAAD/AP////////7+/wD/AP8DAQEBAAAAAAD/AAEAAf8AAAAAAAAAAgICAAH/AAAA/Pz7AAABAgMDAQIC//4A/wD/AwQFAQMDBwgH//4B/gAAAwMC/v3+AQIAAAL/DA0PAv4eDQ0R+fb16eHf+vb2//z7/wD+BwgKCAcFAwL/AP78//3////9/gEB/vsAAQIBAQEB/vv5/QD/AAED/wIGAQEC//79DA8QBQkLAgUGAAICAAAAAAEBAAABAAACAAD+AQACAAL///4B//4A/v/+/v/+/f37/v38/f7+/wABAgQGAP8AAP///v4BAQIB/gECAAIF9fLw6ebh5uPd9e7rAP78AwQCAQABAwEEBQsIBfr79/vy//v8BAMGAQQEAwME/vf9BPz8CQoF/gsG9QH6AAIAAP//BP/7+AD9/AH/AAAA/gD//wAA/gD//QD+/wH+/f/6+f7//gEDBQIECAUNDQQMFAYTHAYOFAgNEQIGCv3/Avz6/Pv7+vv39fvy7/jw6/z28//9/QEB/v/79wD6+AD8+gD//gABBgAAAAAAAQAABQADAQUJCQoQFQsSGAMMEgADBP4BAQMBAwEBAQH///79/Pn29Pbw7/fy7v349////wACBAEDBQQBAggFBAoLDBobHCssListMRMVGQQEBwIEBAMBAQMCAgICAwAA/wABAQEAAAICAQEBAv///////v/+/wABAQEAAgICAgECAf7//wIBAQAAAf/+/gICAv8A//8A/wAAAP///wICAgABAP7//wIBAQEBAAABAf///wAA/wAA/wAAAAEBAQEAAQAAAAAA/wAAAf//AP//AP////8A/v//Af///gAAAP8AAAEAAP8AAAEBAAAA/wAAAf/////+//8A//7///79//7+/v7///////7+/v7+/v39/f7+/v///v7//v///v7+/wD//wD//wAA/wAAAP8AAAD//wEBAAEAAgD/AQAAAAABAQICAf8AAAAAAAAA//8A/wEAAQD//////gAAAAAAAAEAAP7//wABAAECAv8AAf39/fwC/AMDAAMCAgQDA/0BAP4A/f///wABAAABAgL///7///3+/QH+/Pz8+/v6+QICAwL8BAT8+wT9BgP8/QAAAAL//gEAAwICAgEBAQEAAv4CBP4CB/4B+vv69fPz9PX09AQC+/4BAAD//f/+/QEABQEBAAEA/////wEAAP/+/gD8//8BAP4A/wABAP8BAwAD/gD/Av8A/wkNDwYND/4CBQMAAQAAAP///wEAAAAA//8AAAAA////AAAA/wAAAAAA//8BAP8AAQACAgECAf/9/wH//wD+//7//v4AAf4A//8AAvz5+ufk4t/b1vDs6f359wAA/gH5AQQFBQcGAAEGAwgPCwIAAP3z+f7+Avb//P/5/gL8/wEB/gUAAg4LDPX6+P0C/f8A/wQA/fkA/v4BAAABAf////8AAP8A//4A/vr//Pn/+/cA//wBBwkECQ0GDxYFDhcGDhUGDRABBQj7/QH7+/z7+ff89vD68e747On+9O8A+/gAAwL/BAUB//8AAAH/AP8AAQAAAP8A/wAAAAEABAQGCQ0LERULEhgHDBD+AgT+AP8AAQEA/wH/AP///v78+vj59vT8+vkBAwcACw8BBAP/AgMA+gIGBP0PDgwpKCstLzEcHiENDhIEAwUBAQIDAgIEAgIAAAD//v4BAgICAQEAAQABAAABAQEBAQH//wEAAAAAAAAAAAD+/v4AAAECAAEAAgAAAP8BAwIBAQEA/v/+/wAA/gABAQEA/wAAAQACAAEAAQEBAAD///8AAAAAAAABAQEBAQABAAEAAQEAAf8A/wH/AQAA/v//AAD/AP///wAA//4A/wD///8AAQD/AAEBAQD/AAAA/wEAAf///v//AP7+/v////7/AP7//////v7+/v7+///9/v7//v7//v/+/v7///8A/wAAAP8AAP8BAQEB/wH///0A/////////v8AAAEBAQEBAQIAAQAAAAABAAD/AAAAAP8BAAH//wABAQEAAQEB/gAAAAD+AAAAAAAAAAAA/wD/AP/9/v4A+/4A//0EBAIDAQEBAP8BAgEA/wABAAAA////AQEDAQEBAAABAQD9/fz8/PsE/fwBAAD+/v7+/fz+/wYAAQABAgEAAQEBAgL+/v4A/v76+vr8/v78/f35+ffz8fL09PMKBgABB/75+AIJCQUBAQICAQEEAgP+/////v4BAAD+//4BAAEBAQIBAgIAAQP+/gD/AQAEBggECQwCCAwBBAYAAQAAAP7//wH/////AP////4A//7+/v3///3+//3+////AAEBAwMBAQAA/f3+AP79/v/8/P38/v8BAgQBAgP8+/7s6+vh393x7+wBAPwAAP4CAgMFBQYICQcHBgf+AAEGBfwFAQPx+e7z9vr4+vkRAQYMAAMC/wD/+fsI9fwQCAfv//b7AP8EAQD+AAD/AAD+Af8AAP///wD+AP78APz3APr1Af7+AQYICBAVCBIbBQ8VBQ4UBQoQ/gMD+Pz9/Pr8+/n5+/Lt++7m++/p/vPwAPr2AP/+AAQGAAcI/wMDAAAAAAMCAP//AAMBAAICAQQGBw8QDBIXCxEUBAkOAAQDAf8AAgAA/v7+/fz6Av/++/v69vTx+fb0////AgYIAv4P/QADAgD/BwgFGBINMSwqLi0vFRcXBwcKAgMEAgABAgMCAwICAgIBAwICAAEBAP8AAAEAAQEA//8AAf//AQIBAAABAgEB/wEAAQEBAQABAQEBAgIDAAAAAQAAAQAA/wAA/wABAQEA/wL//v7+//8ABAIEAAEAAP///gD/AAABAQEBAAAAAAEAAAABAQEBAAAAAAABAAEAAAAB/wH//v7+//7+AP8A/wD/AAEAAP8AAQAA/wAAAAAAAQAAAAH/AP8A/////////v////7+/v7+/v7+/v7+/v7//v/9//7+/wD////+AP////3+//7///7/////AP//AAAAAAAAAQABAAABAP//AAH//v//Af7/AQAC/f/+AQIBAAD/AQEBAAAAAQIA//8AAgEB/QEAAAAAAQEA/wAAAAAAAAEA/v7/+fr6BQQDBgcGAQEB/wEAAP/+/v79///+AP///v/+AP8AAQECAgMC//7+AP/8+f8A/wACBQUHAwUG/Pz8BPz8/wQEAAMCAQEC/v7+///+AQEAAAH+BQUF/QME+fn48e/s8O3s/gwHAv8KBwYCAgAMAgD/BQUDAgICAP79/fz+AgMD/wABAQABAgMD/wABAAEC/v78/wADCAwOBAwQAwYJAgIDAQAAAP/+/gAA//7/AP/////+///9//39/f79/v39/f/////+/v79/v38+/z9/Pz8/Pv8/f7+AQMDAwIA/v8C9vf26Ofj6efhAgD/CwsN/gcI////AP8AAgIE+fr5+vr8/v3//f79+wL/+f37/wEA9//8BwABBgIE//3+/vb4CwME+AQEAQP/BAD//wAB/wD/AQAA/gEA/QD+/f/89wD79AECAAUNFQYWHgYVHQQNEwYNEQULD/4BBPj7/fz5/fz29/vz7/vv5Pzt5P/28gD6+AD9+wEBAf8A/wADAgABBgADAwADBQAA/wACBAMHCggPEQsUGQkSFgYJDAEDBAAAAP79+/v49/z18v75+f4AAPj8+fj39/78+QQB/wMDAQEDAQcEABUOEyUcFzMsKx8cGwkJCwQFBAMDAwECAgMBAQECAgIBAAEBAQAA/wEBAv///gEBAgEBAAABAAAAAQAAAQEBAAABAQIBAP//AP8B/wD/Af///wEBAQAAAP8A////AAAA/wD/AAAAAAMCAgABAQD/AAABAAAAAAAAAQD/AP8A/wEBAQD/AAEBAP8A/wH/AQEAAP8AAP////7//gD+/wD/AP///wAAAAAAAAABAQABAAEAAQABAAAAAAD/AP8A//8A////AP/+/v7+/v79/v///v///////v/+//7+/v/+/wD//gD//wD/AP///gAAAAAAAP8AAP///wAAAP8B/wAA/wECAQAAAAD/AAABAQEBAAEBAAD//wEBAQAAAQEBAAAAAQABAP8AAAIBAQABAgAB/wACAf8AAgICAgMDA/r6/PDv8vr7/BEPDgkIBQMCAv///v///f7//v/+/f38/f8A/wAAAf8AAP8AAAEBAf////z8/P79/f/+/v79/fr6+gAAAAIAAQECAAAAAf7+/v8AAQMDAwIDAfTz8fTy7/bz8QL9BQcE/goJA/77+gQCAgQDBP39/QEAAAD//gAAAgIBAv7+/f8BAP//AAEAAQIDAwAGCAkOEgQKDgEFBwECAgEAAP8AAAD+/v7+/v/9/f39/P/+/v8A/////v7//v39/v79/f7//P38/v3+/fz8/P7+/wEBAgIBAwD/Afn6+vX18+ro4vX07fz6+AD+/f/+/v78/f7+/vn6+gIBAAD/AAEBAgYHBA4SDfMBAP/1+vr5//j+/QH/AgL+Afr5+QAC/QkLA/sC/gQAAP////4BAP7///4A/vz//PkA/PcCBgUGDhgHFBwEDxgFDhMECw4FCgv9AAX5+v76+Pz89Pb87+n87+P98Of/9/EA/PsA/v0A/vv/AAIAAgMA/gYA/gAABQYAAgIAAf4CBgYKEhYMExgJDhIDCAwBAwUAAf/+/Pz89fX78Ov68Ov/+/r9AwT9AgMC/vwC/fsD//0G//wJA/wbGRA3LSkkICAOEBAFBQYBAQECAwIBAAADAQACAgIBAQEBAAECAQEAAQEAAAADBAQAAQAA/wABAP8AAAAA//8BAgICAgIBAAEAAgD+//////////8BAQEAAQAAAAEA//8AAAEAAP8BAAAAAQEBAQD/AAD//wAAAP8AAAAAAAEAAAABAAABAAABAAAAAAEAAP/+/wEBAQAAAQAA/v//AP//AP//AAAA//8BAAEAAf///wABAQAAAAH/AAAA//8A/wAA/wD///7///7////////+/v///v/+/v7+/v7/////AP7//v////8A//8A//8AAP8AAQD///8AAP///wABAAEBAQH///8BAAABAgEBAgIBAQEAAQH/AAAAAQEBAQEAAQEA/wD///4AAAAAAQABAQAAAQD/AQEBAAADAwQGBgUKCgvu8PP36e///gEUEg4JCAYCAgQBAgQAAP7+/v8DA/v+/v7//////wAAAAECAgIFBQUHCAgEBQQCAgH//v7//P3+Avz6/v4EBQQBAQEAAP8A/wD8/fz7//76+vn7+fcDAgEC///7+Pf7+QcA/wACAQEAAAAAAAD///4EAwP6+voCAwP//v/8+/v9/gADBQEDBQQHCwwJDhAGCQwBAwUAAgP/AAAAAP7///7+/fz8/Pr+/gD//v3///8BAQD+/v/9/f79/f39/P37/Pv+/f79/f0AAAEEBQQBAgT6+/zy8vLj39zj39n38vEB//8CAgEDAgIBBAMA/P/+/fwBAgIBAgIBAf8CA/8HCwf8/Pz1+/37+/v4/gEA//wD/gIB+vwEAP8KCgf7APwEAP/+AP/+/wD9AP77Af38AwD9AwoMBxEUAxIZAg4YBgoRBgoMAAYG+/8C+/wA+vj7/fPy++3p/Ozf/fHk//n0AP7+AP4BAAD/AAABAAABAAAAAP8AAAIDAAMGAAUFAgYGChERDBQYCAsPAwYIAQME/wAA/fv8+fXy+e3o+evj+u/pAf//AwkKAgYIBQICAf/9B//6EggDIBgWLyooIyEfCQoLBAQEAQEBAQABAAEAAgICAgMDAgEBAQIBAgECAQEBAAEBAAAA////AQABAgIBAAABAAAAAQABAAEAAwIDAgMC/v7+AP7+/gAA///////+AAABAQEBAAAAAP//AAD/AAAAAP8A/wABAQEA/gAAAP//AQEAAAAAAgEBAAAAAAAAAAAAAAAAAAACAQH///8A/wD//wAAAP8AAP//AQAAAAEAAP///wABAAEAAP8AAAD/AQAA//////////7///7///7///4A/v7+/////////wAA////AP////7//v//AP/////+//8A////////AP8B//8A/v/////+AP8A/wAAAAAAAf8AAAABAAAAAAAAAAAAAQEAAAAAAQAA/wEAAQABAQIC/v7+/gEAAAECAQH+AAICAf/9AgIBAwQB/f7/7/D0AQMCAwL//w4LBgcIAwQCAQAAAQEBAgMFAgMA///+AP8A/wABAgEDBQUFBQYGBAQFAQIDAQEAAAEA/Pv6BQcGAAD///7//wD+/fz8/fz9/Pn6CQwLCw4O/vfzAwIBAf8BBAMFBQUHAAACAQECAQD/AP/+AQAAAP///fz8AQED/fr8/AAAAAIDBAkIBwsMBwoLAwUGAQED//8AAQD///8AAAD/AQEA/wAA/f38AAAAAAAB/f7+/v7++/38+vn5+/n6/Pz7AQIBAAAABAIEAAEB/Pz87/Dw5uTg1tLK9PHuAwIABAMFAgMCAQAB/v39AAAAAv4CAAH/AgEBAwMDAAAA/f39/gIA/wUC/AIB+QH+/vz9AgEABwUGBgACBf4BCQAEBP/+/AEAAAD++wH++QMAAAYKDQcSGAERFQANFgQMEwYIDAADAvv+//v7/fz3/frz8Pvt5fzq4f3x4QH68gEAAAABBv8CAwAAAQD//wABBAADBgAEBgADBgAEBAMJCwgREwwSFAcMDQMFBgEBAv////z6+Pj18fnv6/fr5Pru5v738wIBAAL++gP8CAQGBgUBABAIAy4mIDArKxMTFAgICAMEAwMDAgAAAgEBAAAA/wEAAAEA/wAAAQMBAgECAgECAQAAAf//////////////AQABAAEAAAABAQIBAgIDAgAAAAD/////AAABAAEAAAEBAAEBAf///wAAAAAAAAAAAf//AAABAAEA//8AAQD//wEBAQAAAAEAAQAAAAEAAAAAAP//AAEAAAAA//8AAP8A/wAAAAAA/wAB/wD/AgAA/wAA//8BAQAA/wD/Af8B/wEAAf8A//8AAP////7//v7+/v7//v7+/////////////gD+/v////4A/////////gD//wAAAAD//wD//wD/AAAA/wAAAAIAAf4AAf8A/wEAAP//AAABAAEA//8AAQEA/wEAAf///wEBAQABAQEA////AAAA/wAAAQABAgEC/gL/Af4BAAEAAAIBAAQDAgcIB/z/9PL19goIAwUFAQMCAAIBBv8BAgABAAEAAQICAgMCBAECAAEAAgECAgABAf7//wEBAQYFBf8AAAECAQMBAv/+//v7+gEBAQEB/wD+/v79/fLx8OXi4QoKCfcGBAUHBREUFg4REwQFCQICBQMBAwMFAwAABf7+/v7/Afv7+/39/fv7+/8A//8EAwQHCAgLDwUIDAIEBQEBAQEAAP8A//4A//////8A/wECAQACAf7+/v///v39/fn5+Pf29/z7+v/+/gEAAAD+AgQEBAEDBPv7/PT19+nn5d3Y0/Lv6AQEAwMDBQIBAQD///8AAAECBAMDAP8CAv79/QABAAABAgABAAIBAggJCfv5/PTx9v/8/v3/AQcCBPn8/AID+gkADAsDBgQB/fsBAf4B//wBAgEECg4GEhoCDxcADRMEDBMDBwz8AQH9/Pz7+/z89vj58O/86+P8693/8uUA+/P/AP0BAwgAAwAAAQEAAAQAAgEAAwYABggABQkABgoFDRELEhQJEBIHCgwDBQUCAgIA///8+PX58+/37eb37OX78Ov/+PYAAf4BAgEE/vsG/wMIAQMVEg8tJyUnJCASEhMHBwgCAgIBAAEBAQEBAQABAAEAAAEBAQECAQIAAQD+AP8CAf8CAQIBAQIAAQD//v8AAAABAQH+//8AAQAAAAAAAQD///8A//8BAgIC//3+AAEAAAAAAAH//wAAAAABAAH/Af8A/wAAAQABAQABAQH/AAABAQEAAQABAAH//wAA/v//AQACAQABAAH///7/AP///wABAAH/AQD//wD//gAAAP4A/wD/AAAAAf8AAAABAQAAAAAAAAAA/wD///////////7+/////f////7////////+///+/v7///7//v7/AP4BAAD/AAAA////AAD//wD///////8AAAD/AP8AAP8AAAABAAEBAgABAQD///8CAAAAAQL///4AAAIBAP/+/v0A////AAH//wD/AP8BAQD//gD/AAAA/wABAAABAQEGBAMMCQcB//7o6er8+fQB/voC//0LCwwGBwgCAgQCAgMCAQECAgIBAgIEBAUFBQQCBAUFBAMCAgIDBQQGBQb///8A/v8AAf/7/PsAAP8DAgICAQABAAD8+fj7+fn9/f4FCQwQEhIPFBkLDhAGCgsFBQcCAQIBAgEDBAP/Af8CBPn/9vX89vP6+fkCAwEHAwMKDhEHDBADBwkBAgQAAAH/AAD//wD//wD9/v7+/v4A/wABAQL/AP78/Pv29fXy8vD7+vsBAAEDAwIDAwQGBgUEBAX8/fzu7+/m5eXn5N/v7OcHBQUAAQABAQEAAAD//v4A/wABAQABAwUBAP//AgP+//4BAAAAAQEBAAEDBQIFCQcECgf7+/cC+/4I/gAAAP/6/f37+vwI+wYEAf33AAD+AAQGBQ0SBxEZAxAYAgwUAgsOAQUK/f4A/v36/fv7+fb3/fHv+uvg/enbAPLkAPz0AP/+AAMD/wICAP8EAf8D/wL/AAIEAAQGAAQJAAkMBhAUDRYZCQ4QBQkIAwMDAAEC/f4A/Pf1+O/o+Orh+Ozi+/Pu//38AAIEAgQHBwYECwgHDw0NJyQjKSYlHRsZCwkJAwMCAgICAgIgSD9cAAEAAElEQVQBAwICAgECAQIBAP8AAQAAAAECAQECAgMBAAEBAAAB////AgIAAP8AAAEBAQEBAQEAAf8B/v7+/v/+AAAAAQAAAQECAP//AAEBAf///wAAAP8AAAAAAAAB/wD/AP8A/wD/AQEBAAAA/wAAAAAAAAAAAQABAAEAAQAAAP8AAAAA//8AAAH/AAAA//8AAAAA/wD///4A////AP///wEAAAAAAAAAAAAAAAAA/wD/AQABAAD//wD/AQD//v///v7/AP//AAAA//7///7//////v7+////////AP//AAABAAD//////wD/AP7+AAD/AAAA//////////////8BAAD//wD/AQACAAAAAQAA/wAAAQD/AQECAQIBAQECAAAAAAD/AAEAAP4AAAABAAABAQIBAgAB//8C////Av8BAwQDDAoIExEO/P36AAED+/3//P7/AAEBAgIDBQUGBAMDAQIDAP8AAQEAAQAA//8AAwIDAgIDBAQEAgIDAgMD/v39+//9AgD/AwMB/fz+/Pv6AgICAwUFCQwMCAkJ8/MCCgsRCQoRBAYLBQQLAv8I//0FAQMEAwIDAQIEAgMB/v4FAwP+//71/vz+/f8DAgUJCw8TBgsMAwUHAAAC///+/wAAAAAB/////v/+/v7+/v7////+/fz78/Lx8O/v/Pr5AQABAwQDAwUJBQUFBAQE/f7+8fDv5OHf6ejk6Obf/Pv3BAMCAQEB/wEAAP//AgIFAgEAAQAB/v7+AP7//QH9APz////+AQABAwMDAQEBCQoK+gz69/f7+vn4AAD+DQ0O/QMABAUFAf3/ACuB1H4EAP78AAQGAwwQBREYAxAXAw0TBAwP/wQI/P7//Pv7/vr4+/X0+vHu/e3l/unaAPLlAP31AAD9AAABAP7/AP0BAAED/wACAAIDAAEBAAQEAAoLBhIWCxYXCQ8RBgcIAgICAAEB/v8A+/j5+PDu9+fd+efa/fTsAAEAAggMAgYIBgUHDAcGGhcVKiYkLykqEA4NAgMDAQIAAQIBAgMDBAICAQMBAQEBAgICAAAAAAAAAf8AAAEAAAEBAgIDAAD/AQAAAAAAAQIBAQABAAAAAAAAAAD/AgEB/gAAAf8AAP8AAAH//////wAAAQEBAP////8AAAD/AAEBAQAA//8AAP8A/wD/AgICAAAAAQEBAAAA/wAAAP8AAAAAAAEAAAAAAQEAAAAAAQEBAAAA/wD/AP8B////AAAA/gD/AP4AAQEBAP//AAAAAAEBAQABAQAA////AP7//wD/AAAAAAD/AP7/AP//AAAA/////v///////wD///7//v7/AQAA/v7+//////7//gD/AP8A/////wAA///+AP8AAAAAAQAA/wEBAQEAAAEAAAABAQEBAAABAQIB/wAAAQAAAQEBAAEAAQAB/wL+/v4C///+AAAAAAAB/wAAAAEAAgEDBAP/CQoJEhAO+/39AQD+/wEE/gAE/v8C/gABAAABAQMEAgEBAQEBAgEBAAEBAwMDAgIBAgECAAAAAQEB/v7+/gAAAAAA+/r8///8+/v5AgEABgYHAgMECAgMDA4R6+PiCwIDAf0AA/r/BPwAAgEA/wAA/wAC/wADAQIEAAMDAAEAAQD5AgAHAP4F/P8AAAIGBAgKBAUHAQAA/wD//f//AP/+//8B/f79/v79/////v/++vr78O/v8O3s+vr5AQD/AwMDAgEFAwMDAgIE/Pv99PXz5eTg5OHc9PLuAgD9BAMDAAEA//8AAgIBAQACAAEAAQEBAQD/AgAB/wAAAgABAQQDAQIEAgEB/wAAAf8AAwMDBwkJ/Qr5/vn+AfwA/vv8/gAD+Pf4/fcABAIIDAMMEAYQFgYSGAMNFQEJDf0DB/79/vz7/Pz4+Pz28vrw6v7r4v7s4AD06QH99P8A/wAAAAAAAAD/AAD/AAD/AQEAAP8BAQAGBgAMDwgUGAsXGAgOEAYHBwMCAf//AP39/fv7/Pjy8Pru5/rs5Pzz7f8AAQQJCwUKDwgJCxAKByMbGjEsKh0ZGwoJBwIBAgICAQICAgMDAwMCAQECAQIBAwECAAEBAQEAAf///wECAQABAAEBAQAA/wEBAgEBAAEBAgAAAAAAAP///////wEBAgABAAIBAQIBAf//AP/+/wEBAAD/////AQEBAQABAQAA/wEBAQD/AQEB/gD/////AQD/AAABAP7//gEAAgECAQAAAP///wEBAQAAAQAAAQABAQAAAAAAAAD/AP8A/wAA////AAEBAf//AAAA/wABAQAAAQD/AAABAP8A/wD/AAAAAP/+/////gD/AP8A/////v///v///////v/////+/wAA/wAAAP///v////////8A/wD///7+/wAAAAD//wAAAP8A//////8BAAD/AP8A/wEAAQEBAQABAAECAQAAAAEAAf///wIAAAABAAAAAP8AAQABAAEBAgEB/wABAAEBAQEBAgEDAQQCAAj+/wgHBfr49/Pz9P38DgsKDAoK/wT9/QH7+/7/AAQEAwEAAQICAgICAgMDBAEBAgABAAAAAfz7/Pz8/AMDAgIBAfn9/fv6+P78/AMDAQUFB/7+/wIFBgUICfP09gMEBPwHC/4G+f4D9v8JAAD/AP3/AQAAAQAAAwL+AQD9/gH+Af79Av39Af4B//7/AAMEBQECBP//Af///wEBAP7+/////v//////AAD/AAH/Avr6/PLy8vj5+AL/AAECAQICBAIDA/7/APf39/b19OLg3uXl3/Px7P79+wIAAf8DAgD/AAIDAQEAAP8A/////gEBAgAAAAMDAgAC//7/AQD//////wABAQMBAgEBAgQFAf78//wJ+fz5/gX6AgYEBQMJCAECAf/4+gQGFBwDDBEHDxUGDxQABw3+AwX+/fz9+fj89/j79fL88ur87eUA7uMA9usA/vn/AAEAAAAAAAIAAAAAAgIAAgMAAgP/BAUACAkDEBUIFx4LFhoICw4EBgUCAQH+/v79/f359vf48/L78e/98u3/+/gCBQcDBgcHCgoSEhMmHyEtJiIgGxkMCgoBAQICAgECAgIAAQEDAgMCAQIBAQIBAQEAAP8A/wIAAgEBAQECAAIAAQEBAQEAAQABAQIAAQH/AP//AP8DAgIAAAD//wH///4AAQEA/wAAAP8AAQECAAAAAQD+//8AAAABAQD+//8CAQABAAH//v7+//8AAP8AAQECAAAA/////wAAAQD/Af8A/gAAAQAAAAAAAAABAQAAAAAA////AAH///8AAAAA/gAA/wABAAD/AAABAQAAAAEAAQAAAAABAAAA/wAAAAD/AP///wD/AP///wD/////AAD//wD///8AAAAAAP//////AP///wAA/v7///8A/wAB/wD+////AAEAAf8A/wAAAP///wD///////4A/wEBAQAAAQEAAQIBAQEAAAEAAAAAAAABAQAAAAH/AP8A/wEAAf8BAQEB/wEBAAEBAQL+A/8BAgEC/f7//v8B/wIHCAIREA4WFRT7/P7+/gH5+fn5+voGBQQFAwL//wIA/wICAwIAAAAA/////v7+/f39/f37+/n+//0EBAb//wADBAMBAAEBAAMBAv4DBAQBAQL7/f7+/gEECAoFCgrp6ekDAAIKBQYHAQMB/f7+BvsGBwkA/P3//P4CBQL+//78+/36/P77AAMCCAYCCQsCBgoAAQP/AQD///7+/QD//wABAQIDAQIAAf8BBAMCAAAA///9+/4DAgQBAgADAgMCBAQAAQH4+Pjv7+7q6OTs6eX49e8DAf0DAgABAQACAAP//////wABAAABAQEBAQIBAQECAQIAAAD+/v0B//8AAP8FBAUGBgYDAgMAAAH6+/77+fsBAAEDAgEA//77+vr8AQADAgELBQYEBRMZBwsPBQsR/wgM/gIE//39/vb1/PTw+/Lu+/Hp/fLpAPXvAfrzAAIC/wQGAP4DAP//AAABAAEAAQECAAEF/wMGAAgMBBMZCRghCRQZCAwOBgQFAQEA/v7//Pr6+vb19e7s+e/q/fXxBAD9Ehgg//35/fr0FA4NNC0tKSMhFhMSCAgHAgEDAAEBAAAB/wH/AP//AQAAAQAAAAEAAQEBAgEBAAIA/////v8AAgEAAAEBAAEBAgEBAQEBAQEBAAABAAAA/v7+AgICAQAA/wAA/v39AQEBAAAAAP//AAEAAP4AAAD/AP8A/gD/AAAA//8A/wD/AAAAAQEA/wACAf//AAAAAAEBAP//AAAAAQEBAgEBAAEBAP//AAAAAAAAAAD/AAABAAD/AP8A/wD///8AAAD/AAAAAf8A/wAAAAAAAP8AAAD//wEAAQAAAAD/AP//AAAAAP8A//7+///+/////wH//wAA/wD/////AAD///////7//////////wD/AP//AP//AP/+AP8B///9//8AAAAAAAAAAAABAAD/AAAB//8AAQD//wABAQEAAQABAAIBAQAAAQECAP8AAAEAAAAA////AgEB/wIBAP8DAv///wD+/gL///7///7+/v3+AwMCBAUE+vr58O7u9/Tx/Pn3ARgWAP0JCQn//P7+/wMDAAAAAQIC/Pz7+vv6A/r5CAgJDA4OAgMBAwIC//7+BAQE/v79Af0AAP8B/P3++vr7+vv7BwgLDRET8e/v3Ofm/Pr7ABgaEf39Cfr8Avz+AP3+A/7+/wAF/gMD+/8B+P8B/AYICQ0MDRUZBAkMAAIEAwEC/gAB/v//AgIDAP8B/wD/AgICAQEA+/z//P38AgIABAUEAgIBAQEBAQEA+Pj38fHu6unp8e/q+Pjy//78AgECAQMB///+BAICAAEB//8AAQEB////AgECAgICAQICAwME//7/AQEBAwMB/////////v7+/Pz89/f49vb29vb0/PT1BPsDBgUICgMD+/z7AAUBBAYOFAcLDwEFCv0BAgH8+v749/zz7/3w6vzs4vzw5wD89gD+/gABAQACBgACBAH//v/+/wAA/wEA/wACAv8ECAENEgQVHQkXIQkUGQgKCwQEAwAAAAD//vv5+Pfy7/ju7Pfq5/3y6gEA/AQNEgwPFBIOCfrx5SogHTIrJw8LCwUGBgMBAgICAv8AAP8AAAICAgAAAAECAgECAgIBAgIBAgECAQAAAQIBAQABAAEBAv8AAAD///8AAAEBAQAAAAEBAQAAAAAAAP///wAAAAAAAAICAQAAAQAAAAEBAP7+/wD//v//AAEBAQICAwAA/wD/AQABAAEBAP//AAD//wAAAAAAAf///wAA/wAAAgEAAAEBAf///wD//wABAQD/AP8BAAD//wAAAf8A//////4AAAH/AP///wD///8BAAEAAQD/AP8BAAD/AAAAAAAA//8AAP///////wD/AP//AP///wD+AAD/AAD/////AP//AP/////+/v/+//8A/////wH//wAAAAAAAQAA/wAAAQAA/wAAAAEBAQAAAAAAAQABAAAAAAD/AP8B/wH/AQABAAAAAP8AAAD//wEBAQAAAAEA//8A/wD///8A/wAAAQAAAAAAAP//AP4A//8AAAAAAAIDAw8ODRETEgAAAgQGA/r7/vX1+AYFBgQD/AEHAgMDAgEBAP///gIDAv7//wH+/fn5+ADyAP7+/wcICAQBAvz9/P39/AICAfr7+wD8+QAAAQABAAMFBRMWGPLu7Oz499rk4wIBAwYEBwL+AQAAAf0AAQYDAgIFBe308env6vn8+Q0VEw8YGhAVGwEDBwABAgABAwMBAQH/AAAAAfz9+/v7/P3+/gICAwECAwsKCwMaGwICAAICAf//APv7+vHw7/X19AkKCvr5DQAA//v5+P7+/AIBAQD//gD///8AAP79/v8AAQMDBAMDAwMDA/8AAAD/APz8/P///v38/v7+/f///f3//v7+//79/fv6+vz6+/z6+//9AQ0MCwICA/n9+fz9/AQHDhMABAn+AAH++/r9+fb79PH77eP67eT97eQA+/UAAgIAAgX/AQMAAgAAAP///v4AAwABAAAAAf8ABAYDDxYIGCEIFh4GEBYFCQkDBAIB/v8A///7+Pn38O317Of67+n87ucA+fIFBgUFAQoB+PEWFw0iJDAaFRMPCwwIBwcBAwMBAQH+AP8AAAD/AAEBAAABAQICAgIBAgEDAwICAQIAAQEBAgEBAAEBAQH/AAABAAAAAAD///7//wEBAQD/AAABAQEA/wD//wAAAAACAgL/AAAA/wD///8AAAEBAP8BAgMBAQH9/v7///4AAAEAAP4BAAIA/wD//v/+//4AAAEBAf8AAAAAAAEBAAABAAD+/v7///8AAAABAQEAAP///QAAAQAAAP8A//8AAAEA////AAAAAAAAAQABAAEAAAAAAAABAP8AAQEA/wAAAAIA//4AAAD/AP//AP8AAAAAAAD/AP8AAP////8A//////4A/v/+//7/AP7///////8C/wD//gABAQEA/wAAAf8A/wD/AP8A//8AAP8AAAAA/wEBAgD///8BAAH/AP8AAP8B/wABAAEAAf8AAP8AAAEAAAAAAAAAAAAB/wD/AAABAAAAAQICAv8AAP8BAQEBAQH/AAELDAsQERHx8/b2+vsF+f0M/P/9/wABBAIDAwMAAQACAwMBAwQA/wD/AQD+/v7+/vr7+vz8/P8HCPkDAwMHBwcDBQUBAAAE/wD8/fv8+/v+//79/wAKDQ0UFRT+/Pjq+/vk7uwaFRcEAQIAAgEABQP8+gTi5eXq8+wGCwQPFRIXHR0aISQIDg8AAQQAAQH8/Pz9/v4A/wEAAAH9/v3+/f4CAgIEBAX9/v75+Prv7u75+fcBAP79/fz5+fn49vb+/vwMCQkNCx0DAwP9/v37+fr6+vr49vX6+ff5+fj9/fsBAAH////8+vv5+Pj9/v7///8BAAABAf8A//////4AAP8AAAAA///8+/v29PX6+PkE/v8MBAkPCAv1/vgEBAIGBwYEAQUI/f3+/Pn3/ff2/PXz+vHp++3i/fDo//v1AP/+AAADAAEBAAACAAEAAAD/AAEBAf7/AAEA/wUJBRQdCxsjCBUcBQwQAwYHAgH+A//+//7/+ff49vDt9+nj+vLsAvrzAPv0BAL8CAUGFw0HKyQYNzArEAwMBwgGBAMFAgIDAAAA/wAAAAAAAQAAAgICAQEBAgICAwMCAgEDAQEBAAEAAQEAAf8AAAEA////AAEBAQAB/wD/AQAC/wAA//7/AQIB////AgICAAAA/////v7/AQEBAAAAAAD/AP8AAQMDAP///v//AQEB////AAAAAP8A///9AAICAQEAAP8AAQAAAAABAAD///////////8AAAEBAP8AAAEAAf///wAAAAEAAAABAAAA/wAAAP//AAEAAP//AAAAAAABAAEAAP8AAAEAAAABAAABAAH///7/////////AP8A//8AAP//////AAD////////+/////////v/+AAD///7//v/9AQAB/wAA/wD/AP8A/wD/////////AAABAAEAAP7//wAAAQEA//8BAgMBAgECAAEAAAABAQEBAQEBAQEAAAABAgIC////AgAAAAIB//8C//8A/////v7+AAEBAQECAgH+/gABAQAAAwIBCgkHBQUE6+vs9PPx+ffz9vQOFxYTFRQVCAkIAwUDAAD//v/+/fz9/f3+AQECBwUI+/v6////AwQDAAEABAQE/f39AQD/AQEC//8A/P3++//+AwcHExkZAAH9+fr89vD05/Dt/AkMEAsLCAH/8vPx4ObkDBILExYSGyUoHSUpChAWAgQI/f8BAP4A/v8A//8AAQABAQEBBwcHAQABAAIC/f7++Pn59PTx9/bz9/f1+Pbz9PPy9PPy+/r5+Pf1+/r5+/38AgIDBgYIDg8PCQkLCQoIDQ4NAwIC/P38/Pv7+Pj3+Pf3+Pj3+Pf2/v/+AQAAAP/+AQH/AP8B/f//Af7+/wAA/P3+9/P1//j8CgAFFAoMBgME8/3/BAIDBAMEBP35+/v59vv08vzy7Pvz7Pz08P/39v//AgADBQAA/wACBAABBAECAgABAQD//gD9/AAA/QAEBgUUGwodKQgXHgUMDwMEAwP//gT/Af/+APn29vfu6fbp4Pnt5gH7+QUFAgMEAwcECCIhHD87PCEeIA8NDQMCAgECAwICAwABAAD+/wAAAAICAQEAAQICAwECAQICAQMCAwECAQIBAgECAQABAQEAAf8A/wEBAgICAgAAAAAA/wAAAf8AAAAAAAAAAAAAAP///wAAAAAAAP8A/wD/AP///////wAB/wH+///+/wEBAQEAAAAAAAAA/wABAAEAAQD//wEBAQICAv4A/wAA/wEAAQD//wEBAQEAAAAAAAABAP8AAP8A/gEAAf8AAQABAAAAAAD/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AAAA/////v//AQAA/wEBAgEBAP7/AAD//gAAAP8AAAAA/wAAAAABAAAAAQECAf/9/v///v//AP///wEBAQEBAgEBAAAAAP//AAEBAQAAAAD///8BAAH//wECAQEAAv8A/////wAAAP///wABAQAAAAAA/wAAAAABAQAAAAAA/wABAQAAAP8AAAAAAAABAQAA/wAAAQAA/wD/AP8A/wAAAAAA//4A///+//4A//8A////AAEAAgIBAQIBAAEA/wD+/v3//gICAgICAQEAAAEC/wABAQEAAP//AQEA//8AAAABAAH+//8AAAD//wAAAP4A/wH+/wICAP/+Af8CAQMBAgABAAABAQEAAQD/AAECAf8AAAAA/wAAAAD///7//v/9/v///gAA/gAA/wEAAAAA/wIBAAUEAw4NDPT1+fv8/uHi4/Xz8xESEfHx9PX29hoYFhgVEgcICvb29wYFAgUFBP/+/v//AAMDBP/9+wAA/gMB//z6+fv6+QEAAQECAgYHBgYFB/79/vz6/Pbz8vz39wkJB/f49gf8+QL7BQAAAAEBAP/+/v38+gIDBQUGBgECAwAAAP79/f7//wH/APv69gIDAw8LEvz7+uro5uzr5/39+xQXGuLh4Pj49xcVGOrq5+3q6PLv7+Df3xQUFRobHR4fHuvq6+zt6/77+v37+/8B/gAAAQAA/wECAPz6+f38AwMDBP39/vTz9u7p7vfy9AX6AA3/BxQLDBALDAcDBP74+Pv19ggCAgEMCPgLA/YL/voD/QT7Afr8/gQA//8AAP8AAQAAAAH/AAEBAQD/AAABAP0AAQEBBgwGFBoJGSIHGB0FDREDBAYAAQL/AAD//f/79vX37Oj16uD88OUA/v4ABAsDBwkTCgUyIBU7MSsXFxYGCAoBAP8BAAAA//8CAQEBAgIA//8BAAEAAQAAAAEAAP8BAQEAAAAA//8BAAEAAgECAgICAwIBAQEBAQEA/wAAAQAAAAAA//8AAQEBAAEAAAABAQEBAgH/AP8A/wEA///+/v////4A/wEAAQACAgABAQEB/wD+AQEA//8BAAD+////AP///v8AAQEC/gAAAAEAAQEAAAABAAAAAQD/AP/9/v8AAAAAAAD//v8AAAAA/wD///8AAgEA/v7/AQEBAQEBAQH/////AAAA/////wAAAP///wAAAAABAAD/AAEBAf8A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/wD/AAEBAf8AAAEAAAAAAAD//wEBAQICAf/+Af4BAAAAAgEAAgICAgIDAQL+AgL//v4BAAD/AAAA/v7+AgECAgMCAQEBAQH//gD+AQIBAP7//v7/Av///gMDAf//////Af8BAAABAP8A//4AAAL//gAAAgD/AQABAAAAAQAAAAEA/wAAAAABAQAAAQABAQAAAgIAAAEA//4BAgIBAQICAAAA/wEAAPv8AP/+//8C/vwBBAP/KCci+/0B5ujr+Pf++fr6AAD+AQD/9PPz4N/iBgMCAwACDw8O/v4BAgICAgMDBAQDAQEAAQACAQACAAH///8B/f//Af7+/v//AgIDAQICAAEAAAEB/wAA+vz98/j45+ry2+Dm39/g8unfMSsiJiMhCAgJAQICAP8A/////v///f3//v0AAfwA+/X6///+/gIA8PPuDw8K+PT16uTmFhodBBH//Roc8enrDgQI/wD6APX2Bfz9BQYFBAYD/QEBAAQBBAH+7eTiBBIPAhAJ9PXy//3+/wT8/wgF/QL9+vr4AAAA+/78/f79AQECAgIC/gABAgMEAP/9//79+/38/fz8A/8DBPj49QEBBAECBwEAAwP8+wIAAAEEBv8CBP8BAfv7/fr4+/v2+f73+//8/wEBBP8DAAX99iEUCEI7OCckJgYJCQQEBAECAwIDAgICAwECAgEBAQECAQEBAgEBAAABAQABAAD/AAECAQAAAQAAAAEAAQD//////wAAAAABAAEAAAAAAP8AAAEAAP8B/wH/AAAAAP8B/wEAAQEBAAEBAf8AAAICAf/9/gAAAAABAP///wEBAQEAAQEAAAD/AP8BAAD+/v8A/wEAAQABAAAA////AP///wAAAP8A/wD/////AAABAAEBAP//AAAA///+AAABAAEAAAABAgIBAAD/AP7//gAAAQAA/wIBAQAAAP//AAAAAAAAAAD///8AAAEAAP//AAAA//7//wD///8AAAEAAQEBAP///wAAAAEAAAAAAP8AAAAAAAEBAQD//wAAAAEAAP8BAAD/AP//////AP//////AAEAAQEDAQH+AQECAQP/A/8D//7+/v39/f8AAP//AAAA/wAAAAABAQABAAEAAP8AAQEAAgEBAgEBAf///f3/AQIAAAEBAgL+/v8CAQAAAAAB/wEBAQEBAgEAAAAAAP8AAAEAAAAAAQEBAAD/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AQABAP///wAAAAABAQEAAAEBAQIBAQIBAQMCA/0B/QIDAgABAP/////+/wADAAEBAgECAQEBAQAAAAD+/wEBAQEDAgL+/f0BAAAAAQEBAQEBAAECAgABAQAA//8AAQAA/wD/AQEB////AQECAQAAAAAAAQABAAEBAQAAAAEAAAAAAf/+/gABAQICAQEBAf7+/v///gMDBAECAgH+/AICAQL+AQEBAQIBAQEBAQEBAQECAxkaAjMCAwkLCd3b3fT08//9/QAAAQD//gQDAv3++/35/vX6+P8AAPf3BPb09AIDBP79//3+AP/+Af/9/AD/AQgLAPr5+P39+wgEAQ0LAzk3MTY4NyYmKAgJCgICAwIBAgAA//7/AAD///78/fXx8vPr6Pr79AwUDf77CAoTEPwDAP8JBv4FA/b6+gcICgAA//z19P7+/v///enr6RUVF/Lw7woNERcZGujn5QMCAfv5+QQEAgULC/z6+QD/AAMEAv/+/wIAA/////Lx8hAQEAgHCPP78wEAAPn5+QUEBAECAv7+/QECAvz7+/7//gUEBAQEBAQABAoA/fsA//8AAP8A/wAAAP///wIBAP4B/PkB+PAcChk3JRgTDAcDAgEDAwIBAwMCAgICAgIDAgL+/v3+/v/+//4C/wIAAQEAAQD///////78/f8CAgEA/wEAAQABAAABAQACAQH+//8A/wAAAP8AAQAAAAAA//8AAQAAAAAAAAEA////AAAA//4BAQL/AAAA//8CAgMBAP//AAAAAAD///8BAQEAAgAA/wL+//8B/v4AAAABAQEAAP//AP8BAAEAAQEBAP///v8BAgEBAAABAAD9/P3+/v8AAP8BAAECAQH///8AAAAAAAABAQD+//8AAAAAAAAAAQD+//8AAAEAAP/+/gABAQD+/f4CAgL//v4CAQEAAQL///4AAQEAAP4BAQEAAQAAAAAAAAAAAAAA/wAAAQEAAAD/AAAA//8AAAEBAf//AAABAAABAQH//wD/AAAAAP8BAQEBAQD9//8C/wH8/v7//v7//gAAAAD//wAAAQH/AQAAAgEB/QEBAQABAQIAAQEAAQABAQABAQEBAgEA/wAAAgEC/wIC/wIDAwQBAQL+/v7+/v7+/v7//v0AAwH//wIBAgD//wABAP///wIBAf8AAAEBAQEBAQEAAAABAP8AAAH/AP8BAQADAwMAAAABAQD//wAB/wABAQH//wEB/wICAgH+/fwCAgEBAQADAgICAwIDAgMCAwICAgEcAwQHBwcMCwrc3Nzt7Ov7+fcBAQABAAIFAgL/Af3+/vr+/f/+/QP9+/QJCQUB/wAA/QP8/AUBAAICAQX+/P0A//wFAf4JBwMrKiQuLishISEMDQ8DBAUBAgEAAQAAAAEA//8A/wD59/n49/cJDgj8+wwFFwz4+ff7AwL7//z7+/sD/wD+AgD19/cBAf8EBQX9/Pv//wL3+Pj9/fsDBAH6+fcKCQsSExTv7OkFBAL5+PgHBgYLCwoCAwMCAgL////7/Pz+//8AAQHz9PMNDQ34+fj7/PsCAQL+/v4BAQEBAgH+/Pz/AP8BAQD//wD///8EAQ8d//r1APz6AP78AP39AP7////8AP/7AAD+EQ4OPTYzHRgXBQMFAQMCAQMDBAQDAQEBAQEC/wD/AAEAAgICAAAA/f7+AwMCAP8BAQIAAAEBAQABAQEBAP//AP///wAB/gD+/v4AAQEBAAH//wAAAAAA////AQEBAQEBAAAAAAD/AAEBAP8A/////wD/AQIBAAAA/wD/AP8AAAABAQEBAP//AAEBAQEAAAAB////////AAABAQH///8A///+/wAAAgAA/wAA/wAA/Pv9AQEAAAABAAEAAgIB//7/AgMC/v4AAf///v/+AgEC////AP//AAIBAgABAAAAAQEA/v7/AAAAAQEB/wABAAD/AP//AAIB/v//AP/+AQAAAQICAAAA/wD/AP8AAQECAQEAAAAAAQAA/wAAAAAAAQAAAAD/AP8A/wABAAAAAAAAAAAAAAD/AAAA/wAB///+AP8AAf8B/gD/AQEAAQEBAAD/AP//////////AP7/AQAAAAIBAP0B////AAABAAAB//8A/wAAAv///wABAAEBAQEBAgEC/gL+AP7//v/+Af8B//7+/v39/gMDAgL/AP8AAQIAAAEAAAEAAAEBAAAA/wAAAQAAAAAAAAABAAABAQEAAQEBAQAAAAAAAP//AQEAAQQD//7+AAECAP///v8BAQAA//7+AQEB/gECAQEBAgECAgMCAwIDAwMFBwYHDAsLGRgW2tnZ4uHf9PXz//7/AP8AAAD9AwIAAQD+CAoEGhoVGBgX/Pv94N/o6en3/wEGAgIDAP/9BQL/DAwIKSgfOzw4JCYoDQ8SAwUGAgIDAAEBAAABAAAAAAAA/v3+9fT18fDs+fzzAAcA+v/+/gUD/wD+//0A+fv7//r6BQUG9fXzAwMDAAD//Pz8AAAAAwID5+fmFBMV7+/tCQoKEBAP/fv4+vj4CQgB/fz8+vr6BQME/wMC/wEA/f799/j5BAMEAQIC+/z7Dw8P+/r6+/r7/P78AP7/AQAA/v3/AgIBAv8C/v//AQIBBAIXJP/59f/59wD6+P/7/AD8/AD9+/7++AkD/DQyNyQiJgYGCQIEBAMDBAMEBAIAAQECAQEAAP8AAAMCAwECAgECAgICAwAAAP7//QQBBQIBAgEBAQEBAAAAAP///wAA/////wAAAQAAAAAAAQAAAP7//gICAgEBAf///wAAAAABAAEAAv8A/gD///4A/wL+AQABAAAAAAEBAwIAAAABAf8B/////wEBAgEBAAAAAAEBAP/////+AP8A//7//wH9/f8BAgD//wACAQEBAQEA/////wECAgAB/wAAAgAAAAIAAP///wH/AP///wAAAQICAf8A/wAAAP/+/v8AAQEBAP7+AP7//wIA//4BAAAA/wL/AAABAAEBAAEAAf///wAAAP//AAEBAAAA/gEBAgABAP//AAEAAAAA/wAAAAAAAP8AAAEAAAD/AP7//wEAAP8AAf///gAAAP///wH/AP8A/gEAAAAAAP///gABAP8AAAEBAQIBAf8DAwL//wP////////9/QABAP///wEBAAEAAQABAQIBAf8A/////wH/AQH+AQAAAQAAAP8BAP//AP/////+/v///wAAAAEAAAEAAQEAAQEAAQAAAf8AAP4AAAEAAAEAAAEBAAABAQEAAAEAAQAA//8CAgAAAAH//wEDAgAAAP//AAL/AAEAAP8C/QH+AQIBAgECAgID/QP+BAQE/gME+wQF/AUFBAwLCRISDh0eGeDh3+jm5vf29v39Af39/QcIBCYnHRMVEhgYHBsbIfW1wevs3/3/AgIDAQcHARcVFSorJS8wLB8hIQ8SFAcICQMCBAEBAgEAAQAAAP////7+/fr6+/r49/789/7++QEDAfz8/gEEAfr5/Pj5+QUFBQEDAQD//w0NC/z8/QQEA/X09QECAf7+/vLy8xAQEgICAPb18wYHBRIUFfLx8Pr29QEA/wD+//v7/AD8//7//wQFBgYEBQMEAwAAAv8A/vb19gkKCvf3+fz9/f/9/QAAAAABAAMAAgAAAgABAf4A/wQJFyD8+vj++fn9+vn/+fgA+vgA+/oD+fMhGgwyMDIJCQoCAwQEAwYBAwECAQIBAQAAAQD+//8CAQEAAQEBAQABAAEA/wABAgECAQL/AP7//wABAQIA/wH/Af//AAAA/v8AAgEAAP8AAAAA//8BAwEBAAH///////8BAQH///8A/v//AP4AAAAAAP8A/wD9//4BAAECAgD+AQEBAQEA//8BAQAAAAD//////wD/AP8A/wD+/v8AAP8AAAEA//7/AAD///8CAgIBAP8AAAH/AAH/AP8BAP8AAAEBAgAB/wD+AgIA/v4AAAEA//8AAf8AAAAA/wD//v/+/v8BAQD/AP////7//wD+AAEDAgEAAQD/AAD//wABAAD/Af8AAAEAAAABAQABAAABAQAAAAD///8BAP//AAEAAP8AAAAA/wABAQEAAAAAAQAB/wH////+AP4A/wD/AP7//v8AAQAAAQH///8AAAD//wD//v8A///////+/v7///8BAAABAQECAQEAAwL//wABAQAAAAABAQEAAAAAAQAA/wABAQEAAQECAQEBAgEB/gD////+/v39/QACAgL+AwMBAv4B/wIAAP4B/wH/AQECAAAAAAABAAABAAAAAAAA/wABAQEBAQAAAAEAAQAB/wEAAP8BAQIAAf//AAABAP///gL+AAAA/gEDA/4AAv4CAAP+/P3+//4DA/8CAwMCA/0DAwUFBQYHCAUMDAoWFhPp6eji4d/o6Oj19fQEA/7s6+sHBwXvBu4aGSYtLzX+/wzk4uIMDQgkIRovMCodHhsSFBYODxIHBwkBAwMBAwIBAQD//////wD/AP/9/v739/fv7enz8uv7+/kBAQAAAAD+/v8AAQEHBwf9/f3+/v8A//8AAAAFBAT///8ICQf6+vsBAQD9//7x8fEMDAzw7+/y8O4OERMMDg70AP4A9v8B/f39/f38/v0AAAH9/v0EBQX7+/sBAf4DAwP7+voHBgb///8A/wABAwP+/f3//f4A/v8AAgACAgL/Af8EBwsQBQr+/v39/Pv5/Pr5APz9Afv7Ef/0NjEfEBMTAwUHBAQEAgMCAAEA/wD/AQEBAgICAQAAAQEBAAAAAQIC/wD/AQEAAgICAgICAP8A/gD/Af8AAAD/////AQABAAIC/v7+AQEAAAAA////AAACAQICAQEAAP//AAEA/////v39AgIDAQAAAQECAAAA///+AAEA////AAD/AAAA/wD/Af8AAAABAAABAQEA//7/////AAEA//8A///+AQEB////AQD/AP///v7/AAIBAP8AAQIB//8AAQD/////AAAAAP//////AP7///7+/gAAAP//AQABAAAA/wD//v3+AAAA//8AAgIBAgECAAAAAP//AP8B/wD+/gABAAABAQEAAQAAAAAB/wAAAP/////+AQEBAAEBAAD+AQABAAEAAQAAAAD/AAAAAAAB/wD/AAEAAv8B/gD+AP8AAQEAAAABAAD/////AAAAAQEBAQIB/v4A////AQEA//7//v//AAABAAEBAQACAQEAAQEBAQIBAQEAAQEBAAAAAQEB////AAAAAQICAgICAP8AAP///wAA/////wAAAP8AAP///wAAAwIDAQIBAAEA/wEAAgABAAAA/wAAAQAAAAEAAAEBAAAAAAEAAAABAQIAAAABAAABAf8AAAAAAAABAgIBAQEB/wEB/wABAP8BAf8AAQUBAv8B////Av0EBAT+/AT8+wX8AwQEBAQFCgkKDg4QEhIT6Obl5+fl7u3r9PHz9xH2/A379PT1DA0MGx0XDw8CKiYjJCQgFBYVCAoLCAoNBwcJAwQFAQICAQAAAAEAAQAAAAAA/v4A//7+9PLv7+7q+ff1AP/9AP4AAAAA/v/+BgYF/f39AQEA/f39/Pz9/////f7+AQEBAgIDBAP+/wICBgUB+/z6BQYGBQQG+fn57+/sDg8RAwIECAkJ9/X0/gEBAAEC/v/+/vz9/f3+AgMD/////Pz99/f2+/v7CQoKAP//+vv5/wAAAwIDAgEAAAAA/gD//v7/BAIEBAMBAQD//wYHB/z9+/78/Qn9+ioSEyAcGwQFCAICBAECAwEBAQAA/wAAAAEAAAEBAQEBAQD/AAAAAAAAAP8AAAAAAP/+/wABAP8A/wEAAgAA/wEBAQAAAAEAAP8BAAEBAAEBAAAAAAABAP///wD//gAAAQAAAAD8/////wD/AP/+/gECAf//AAABAAAA/wD/AP7//wICAf//AP///wAAAQAA/wD/AAEBAQABAAAAAP/+/wAAAAAAAf///gAAAP7/AP39/AIBAgH/AQIBAAEBAgD///39/f7//wIBAQABAAAAAAEBAQABAgMAAP7+/f8A/wAAAQD/AP///wAAAAAAAQICAQEAAQAAAQEA/wAAAAEBAQAAAQD/AP8A/wAAAAD//wABAP8AAQAA/wIBAgEAAQD/AQABAAAAAAABAQD///4AAAEAAAD/////AP//AAAAAP///wD//////v7//gD/AP7+/f7+/v///wAAAAD///7///8A/wAAAAABAAEBAQD//wAAAQICAgAAAQEBAQIBAv8A//7//gECAgUCAv39/f79/gECA//9/QEBAQAAAP79/v4C/QIDAgECAQABAAAAAAEAAQEAAf8A/wIBAf8AAQABAAEBAQAA/wAAAQEBAQAA/wEBAgEA/wAAAP8BAQH/AAEAAAABAQP/Af8BAf//AQAAA////wIAA///AP/+/gEBAf7+/wEBAgMDBQUDBQQEBQYFBwcICAwLDBQTFRocHero5tza1wD/ARAPD/Du6gcJDiYiFBISIhsaHg4QEgYHCQUGBgQGBgQDBQEDAgAAAP4B/wL//wABAf//AP7+//f19vTx7wP/+////vr6+QIBAgMDBAICAgMDBAUFBvv8/Pz8/AMDBPz8/P7+/gABAQQDBP79/v///wEBAf/+//v7/BAREe7t6/r49/kGBwYFB/4DBP4DBPb28/79/QMEBP////wAAAH+/gMCAgABAP8BAPX29fz+/A0LDAECB/v7+wAAAQMCAv8A//3+/f3+/gT7+foEBQUCAgMCAgIGAwMDBAAdBgYrHQ8MCQkBAQICAgICAQMBAAD/AQABAQEBAgIBAAIBAAEBAgD+/wABAAEBAQIBAQEAAQH+//8BAgEAAQAAAAD//wABAQEAAQAC/wD+AQH///8AAP8AAP//AP8A/QEBAgIAAAD+AAACAQH/AQAAAAEAAAECAAD/AAAAAQL/AP4AAAD+//8AAP///wABAP//AP8A//8A/wEB////AQAAAAEBAQD//wABAAEBAgECAgH//wD+//4D/wEAAQIAAP//AQAAAAD//v38/wABAgIBAAD/AP8A///9/v7/AAAAAP8A//8AAAD+/v4BAAEDBAL//gD/AP4BAQEAAgEBAAD///8CAgD//wEBAAAAAAAAAAAAAQECAAH/AAAAAAAAAQABAAD//wD///4BAQEBAQAA/wAAAQAAAQAAAP8AAAEAAAACAAH+AAAAAP8A/wAAAP/////+/f0A//8A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5fb18vv9+wQDAgEFBP79/f39/f///wAAAQD/AAUFBAEBAQAAAPz8/AH/AAQDA///AP39/QAAAP/////9/f7+/vn4+AcHBwEBAAYGB/z8/Pv7/AwNDO7u7wsMC/7+/AUFBvz8/AMFBAICA/3+/QIEBAAAAAEAAAQEA/39/v3+/QICAvj4+QQCAQD/AP3+/QQA9e799wP+BgcDBQcFBwkQDRAQCQQEAgEBAP8A/wD/AQD///4A/wIAAQACAQH//wAAAgEBAAAAAP8BAAEAAAAA/////wABAQAAAf8BAAAA/wAAAf/////9/v8AAQEBAQEBAQEBAgEAAAEA////AP///v/+/f0AAQEBAAAAAQD//v0BAgIAAP8AAAAA/wAAAAD//v3/AAEBAQEAAQEBAAL9/fwAAAEAAQACAAACAQMDBgP9/f39/v0CAwIBAQH/AQD//v/9Af8CAQAAAAABAAAA/wD//////////v7/AP///wAAAAABAQEAAQEA///////+/v4AAAD+///9/f3+/f0CAwMCAgIBAAH////9//4B//4BAQIBAv8C/gL+Af8AAQEA//8BAQH/////AAAA/QABAf4BAQH/A/8AAAEAAAABAAAAAf8AAP8A/wD/Af///wABAQH//v//AP//AAAA//8A//8B/wD///8AAAABAAD////9/P3///7+/v///v4AAAD/AQEBAP8A/wAAAf//AAAAAAAC/wAAAQACAQH/AQEBAAAAAQABAQIBAf8BAP8BAwEBAAEAAP8AAAAAAP8AAAAA/wD+/v8DA/8AAAH///8AAgIBAQABAAEAAP8BAQAA/wEAAQABAAAAAAABAAEAAAEBAgABAAEAAQEAAAAAAf8AAP8A/wD///8BAQEBAAD+AgICAP8A/v8AAP8AAQL/Av8B/gEBAQEAAQEDAwMAAP0B/wL+AwMFBQYJCgz///8MDQsPEBEKCwsDBAQCBAIBAgIBAQEBAQABAQEBAQABAQEA/wAAAAD/AP/+/wD6+vvz8u/y8Oz6+ff+/P3/AgH++vn//gACAgL+/v3+/v38/PsAAAAEBAX//////wD/AP0CAAIBAAADAgP/AP8GBQUEBQX19fb9/PwHDQ4EBQf7+/oCAQH19fQNDg8NDg3+/P0JCQr8/fwCAgIBAgD/AgEE/wMA//8CAwIA/wD+/v4CAQH+/v8AAf8CAQAFBQX//v7///8EAPz4AQEC//36//n1A/8IFgkTDQcGAQD/AAAA/wD/AP////8AAf//AAEBAQEBAQAAAAD/AQICAAABAAD/AQEBAAEBAQECAAAAAAAAAgICAAABAQEAAAACAAD/AQEB/wAAAAABAQEAAQAB/wD///7//wP/AP8AAAEA////AAAA////AP//Af8A/wEAAAAAAP//AQIB/////v7+//8B/wD9AP8AAwMBAQEBAAABAAAA/v7///8A////+/r7AwMDAQEC/wD/AP7//P/9AQEBAQECAAD///8AAQEB/wAA/v3+/v7/AQIAAQECAgIB/v7//f7+//39/////wAAAQEAAgMD///+/f3/AgICAQABAAAA//8AAQH/AgEA/v/+AQICAgD//gABAgAA/wAAAQAAAAEAAAAAAAAA//7/AAIAAAAA/wAAAQEBAAAAAAEAAP8B///+/v//Af///v//AP////7///7+//7/AAAAAQAAAAABAQEBAgIB/v0BAAD+AAEAAP////8A////AQECAv//AAD/AP8A/wICAgEA//8A/////wD+AAABAQEBAQIAAgADAgEBAAABAQEAAQAB/f7+Av//AP/+A/8A//8CAQH+AAACAQAAAQABAP//AQIBAAAAAQEBAQABAAEAAAEBAAEAAQEAAQABAAEBAAEAAQABAP8AAAEA/wAAAgEC//8A/v/+AAH/Af8A/wEBAQAAAQEBAgEC/gH+AgEBAQABAP8AAP8AAP//AgEBCAkKExUYBQgJEhIPEhQWBAYHAgIDAgICAQEBAQEBAAEB/wD/AAACAQAA/wEA//7//////f3+9fXz8/Hs//34AQD/AQAAAP///////wAA/v7+//7/AwMDBAUF+/r7+Pj3AwMDAQEBAQACAgIBAAEBAwMD/v7+BAQFCwsL//7++/r8AQICCwoL8/T+/f39/Pv8+fn4AAAC/f7+CQoJ9vb2AgD//f3+AwIBAgMEAAAA//////7+/v7/BAQE/f38AAD/AgMC/v78BAQFAwMEBAD/+///AwL//gUBAxYNBhUPCAQDAQAAAQAAAAABAQAAAAAAAAAAAAD/AAEAAAIDAgICAgD/AAAC/wEAAQICAf7+/////wICAQIBAQEAAAABAQEAAQABAP7+/wD//wABAQEB/wEBAgEAAAD/AQACAQEAAP///////gEBAf///wEAAAD/AAABAP/9/f8AAAABAAH/Af///v7+AAAAAQAAAgICAgEAAQAAAAAA//8A//7+//8A/wEBAQMDAwAAAP///gAAAAAAAQAA////AP///gAAAP3+/gEBAQEAAP8AAP7//gH+AQAA/f7+Af///wAAAP8AAf4A/wIAAf//AAD//v7+AAEB//7+/gIBAgECAAAAAAAA/v79AAECAgP+AP0BAQEA//8CAgAAAAD/Af8C/wAAAP8AAAMB/wAAAP//AAABAQD+/gEBAQAAAAAAAAEBAQD///8AAAAAAP79/v7+/v/+/gD///7+/v/+/gAAAAEBAQD/Af8AAP//AP/+////AP///gABAQAA/wAAAQAAAAABAQH/AAD//wAAAQAAAAAAAgEB/gEBAQMDBP///P7//////gICAv/+/QMCAf7+/QEBAP8AAv///f7+AQABAQIAAAD//wACAQEBAQEBAQABAQIAAf8AAAABAAABAQAAAf8AAAICAf7//wEBAAAAAQEBAQAA/wAAAAAA/gECAgH/AP/+//////8AAP8AAP///wAAAP8AAP////3+/v7//gAAAQAA/wIFBQ4PEAEEAw0NDAcHCQIDBAECAwEBAQIBAAEAAAH/AAEBAQEAAQAAAf////7/AP39/vr5+fHu6/Du6fv69wEBAAECAf/+/gD/Af///vz9/AEBAgQEBQEAAf8A/wIBAgAAAAAA//7///38/gAAAPv7AQIBAQIBAvj3+P7+/wEDAfz8/AoMC/j5+AMEA/3//vn4+BAQEv/3/v7+/ggIB/v5AP///AUGBAEAAfv7/QQEAv8CAf/+/f///QMEAwAAAQQCAvv8+/4A/wcFBAQA+PABAgYCAwUNCgwgGBQVERACAgQAAAABAQEBAAD/AAAAAAAAAAABAQAAAAAAAP8AAAABAQD//wAAAgEBAQIDA/8AAAD///////7/AAIBAP8BAwIAAAEDAwIAAP8AAAAAAQEBAAD/AP8BAQEBAP//AAACAQL/AAD9/f4AAQAAAAEA/wD//v8AAQH///////4B/gD///8AAAEBAAEAAQD////+AP8A/wABAgIBAAEBAgEB///9//4AAP8A/wAAAAABAQIAAAAAAAEAAQEA//////8CAAD///8AAQECAgIAAAD9/f3///8BAQEAAAAAAAAAAf8B/wD+//3//wAAAP8BAf///gABAgH/AP///v//AAAAAAABAAEC/wACAwICAgD//wD9/v4BAAABAQEB/wH/AP8BAAL//wD//gABAQAA////AAABAQEBAAH/Af8B/wAAAQEAAP4A/wAAAQAAAAD//wD+/v7//v7///8A/wD+/v7/AP////8AAAABAQECAAD/AQIAAAD///8AAAAAAQIBAQH/AQAAAAEAAQECAQL/Av///v8AAQD+/f/+//////8CAQH///8CAAIA/wD///////7+/fwBAAQBAwEB/wD///8BAgICAQEBAQIAAAACAAEAAQABAAEBAQEBAgEBAAD/AAABAAEDAQD/AAEAAgAA/wABAQAAAQEA/wAC/////gAAAv8BAP4A/P4A//79/v7+/v7+/v7+///+/v/+/wEA///8/f319PP39/f9/f0NCgkCAQECAAIBAAABAAEBAAEBAQEAAQEBAAEBAQAAAAAAAAD///79/f709PPt6+b59fP//f4AAP4CAgL+//////78+/v//wACAgD+AAEBAAADAgP/Af/+/v3+/f7/Af/+/f79/fwDAwQDAgP4+fj+//38/Pz//wD7+/sICAgGBwb5+voDAAH+/v7+/v0DAwP9/fwCAQEFBQb//wD//gABAgEAAQD///8DAwMBBwcCAQIA///9/f7/Af8EAwICAgL+//4EAPrz/wADAwYJEQoQGRIOCQgFAwECAgECAQECAAIBAQAAAAD/AAAB//7/AAMBAP8AAP///wEAAQABAgABAP//AAEBAQEAAAAAAAD/AAH/AAH+AP8BAAEBAAD/AQECAQEB//8A/wAAAQECAQD/AAACAQEBAQEA/wACAQH+/v7+///+//8AAQAB//7+AP///gAA//////8AAAD+AAEAAgABAAAAAQAB/wD//v39AQEBAQEB/v//AP//AAAA//7//v//AAD9AQICAgD//v8BAAAAAP//AP8AAAAA/v//AQEA/v7/AQEBAQAA/v//AP//AAEBAAAA/////f3+///+AQABAAAA/////v8AAgACAAABAQEBAAABAP////7+/wL+/v4CAgECAQEA////AAAAAAABAP//AAEA/wAAAgEBAQD/AAABAQIBAQAA/wD/AP8A//8A///+/v/+AP8AAP8AAAAAAQEAAQEA/wD////+/////f79///+AgIB//8B/v7+/wAAAAAAAgABAAAA//////7+AAEDAgICAAEAAAAB/gD/AAAAAAEAAP8AAAD/AQEBAgEB/wAAAQAAAQEA/wD//v39AP//AQQC/wD/AQAAAAEAAAAAAQEA//8BAQEAAQAAAAEBAAEAAAAAAAEBAQEBAQAAAQEBAAD/AAABAQEBAf8A/wIAAQAB//8AAAEBAQAAAAECAP/+AAAA/v/+/f7///7+/f39/f7+/f39/P39/fz9+fn45OPi19TR7ejoAP7+ISIiOkBCJiosBQUGAQEBAQECAAABAf8A/gD/Av8AAAABAP8A//8A+fr57Ovn6eXh+fXyAQD+AgEAAQIC/v//BQUFAwME+Pn5AQIC/wD//P39AgEBAAAAAAAAAQEBAgICAQAAAwMHBAQDAAAB////+vr6//7/AQEC///+AAEA/wAB/wAA////////9fX1DAwN+fn3+/3+//7/AgICAQABAQIBBwYGAAD//f3+/////wD+BAUGAQL9/Pz7/wIDAQIC/v7+ACuB1H4EAAMFAQAACggFHhkXFRMSAwID/wD/AAD/AAAAAAABAQICAAEAAAAAAgIBAAD/AQIBAAEBAgEBAAD/////AAH/AwIDAAAAAAABAAD/////AAEB/gD+AQACAgECAgICAAAB///+AQABAQABAAEAAgICAQEBAAAA/wAA/wAAAQEB/v0BAAEA/v7+/v///gAA//8AAAAAAQEAAAAB/////v/+AQIDAAAA//8AAAABAQEAAAAAAgEB/wIC/v7+AAEAAQAA/f7+APz+/QAAAQEBAgECAQEA/wEA//8AAgIB//8AAAD/AAAAAAEAAP8AAAEBAQEB/wAAAAAAAQEB//8B/v7/AAAAAP///v79/wL/AwQDAgECAAEBAAABAP8A/wAAAP///wH/AgACAAEBAAEAAQEBAAICAQAAAgIBAgIAAAACAAD/AAAA/wAAAAAAAAD/AAH///////7+/v3+///+/////////////v///v7+//7+AAD///8A///+AP///v79//8AAQEA/gECAgED/////v7+AgIC/v//AgEBAAEAAgIB//8B/wAAAAAAAgIC//8AAAH/AgAB//8A/Pz8AQMBAAAFAQH//v7+Av4B/gICAf8AAAAB/v7/AgL///8AAQICAAAAAQABAAD/AQEAAQEBAAAAAAAAAQACAAABAAEBAQH/AQAAAAAAAAAAAP8B/wAAAQEA/wAAAP//AP8B//7//f3//Pz9+vr69/b29fT18e/v39zb2dXS9O/tAvz6//381efj8+jnBFdaKTAzAAYHAQEBAAAA//8AAAH//v4AAQD//v///v7/9vT06eXi8vDsAf76AwMDBwcHAQICAf7+/v//AgMDBQUF//7+BwcHAAAA+vr6AgICAgIB////AQEB/f0BAAEA//7/+Pn4CAgIAQEBAAMBAgED+Pj5Bwn6CQkK9vf2AQIB/f39//7//f39BAQG+Pf2+/v7AgIBAgIDAwID/vz9//8AAgEA/v7/+/78AgIDAQEBBwgI/Pz8/v7+/v8ABBQVFQoGBhwWFSkmIwkKCQAAAf///////wAAAAIBAAD//wAAAf8A/wEBAgIBAgEAAQIB/wAAAAEAAQABAAAAAP7+/QEAAQECAv///wAA/wEAAgEAAgEBAQEBAQD/AAACAAEBAgAAAP7+/wICAP/+/gACAgAAAf7+/v///gABAQECAQAA/wMBAgEBBf39/f//Af7+/f8A/////wAAAP///gD+Af4BAAEAAQEBAP//AQAA/v//AAAAAP///v/+//3+/f38/P3+/gQEBAQEBP8A/////wAAAf8AAP//AQAAAAICAgABAP///wIA//39/f///wAAAAAAAAABAQEBAf4B/wH+//8AAP7+/v8A/wH+AgEA/wECAAAAAAH/Af//AAAAAP7+/wAC/gEBAgEAAQABAAD/AAACAQD/////AQABAAEAAQAAAAEAAf8A/wABAQD/AAAAAP///wAA//7//wD///8A//////7+/f79/f8A/wEAAAEB/wD/AP3//gEBAP8A/wEAAgAAAP///v7/AQIBAP8A/wEA////AAEA/wEAAQEBAQIBAf4AAAAAAAEBAf/+/wACAQECAAIBAwMEBAABAAAAAAAAAP7//wH9/gIC/v7+/QEBAgEB/wEBAQAAAP///wEBAQECAQEBAgEBAP8AAAEAAQEBAQAAAQAAAQAAAAAAAAD//wD/AAEBAQD/AP4A/v8AAP//AP///vz7+/r6+/r6+vLw8Ovq6ezn6Obf3uvl4Pvy7Qr8/QoBAwYDBgECAvbj4r6rqfz5+C46OwQFDwIBBAEBAgEBAP7/AP7+//3//vn5+fXy8Pn18ggHBQD+/wQDBQABAP39/v//AP7+//r7+AIBAv8A//8AAP79/f///wAA//8AAP3+/QEAAf////////39/f////n5+gMEAwMCAwAAAP3+/vn5+QYGBgIBAf7///////3//fb29goKCf79B/38/P//AAEAAQICA/0A/QAB//3+AP///wEBAv7+/QICAwICAwUGAv38/f7+/QQ4LSwaFxcOCwoNDQwEAwMBAP8AAAADAwICAgEA/wAAAAAA/v8AAgD+//4C//3//wEAAAMAAQEAAAABAQICAgD/Af7//gAA//8CAgEBAQEA/wH/Af8CAQMAAAAAAQEBAAABAgL//v8EBAIAAQAAAAAAAQAA/wADAwH//wP/AAABAAAA///+/v4CAgEBAgH9/fwAAf//AAD+/v4AAAABAAH/AAACAAIBAgIAAf///wAAAAABAQEAAAABAQL/AP4AAQEDAwMBAQL+/v38/AACAgIAAAABAQL////+AQABAQEBAgH///8A//8AAAABAQH///7//wD/AP8BAP//AAABAAAAAgEA//8BAgEBAQL+/f0AAAAB/wECAgIAAAAA//8BAQEAAAD+/v8BAf4BAgID/wEAAP8AAAEAAAEA/wABAQABAQIAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAP///wD9/f39+/v9/Pz///4A/wD/AQEA////AAABAQABAQIA/vz9//0CAgL+/gAEAQEA/wP//wAAAAAAAAAAAQEAAAAAAAAAAAACAgL+/v8DAwD/AgIBAQEAAAD/AP////8DAgMCAwIAAP/+/f0BAQH8/P0EBAECAQEAAwAA/wD/AP8CAQIAAQAAAAEBAf///wEBAQECAgIAAAAAAAAAAP8AAAAAAAH/AQAB/////wEBAf8A/wEAAAD+/v79/f37+/v29PXz8/Hs6Ojt6ujn4eHt4+H+8+4O/fkUCQkmHyMcIikDCg7t8vHs7u3Tv70NCgcqOT0BCAcBAgEAAAABAQD+Af/8/P339/fo5+L28+4DAAADBQgCAgP6+vr9//4DAgP///8DAgP9/f0BAQH8/PwAAAECAwP//v8DAwEAAAAAAAAAAAD+/f7/AP8CAgIAAP/4+PgBAQIFBQUGBgf+/fwCAQcDBAP9+/oDAwIA/wD///78+/sCAgEJCQn6+/v9/f7/+voAAP8A/wD9/v0BAQEIBwf/AAAA//8BAQH7+/v8+/sAAAEELicmCgoKAgMBAQEBAP8A///+AQEBAP8A////AQAAAP//AQICAQABAf8A//8AAAAAAAAAAAAAAQICAgEBAQIBAgACAAMA/wAAAQEBAwMDAQECAQIBAQAAAQEBAAEA/wABAAD/AgMCAAEAAAEBAAD/AQAAAAIBAQAA/v//AgAA/wAA////AQAAAP8AAQAA//8AAQEC/wD/AAH+AP7+AAEBAP8AAQEBAAAA//8BAQD/AAEBAQAB/f39AP8AAQIBA/4C/wIBAgL/+/z//f7+/f7+AgICAgEAAgMDAP//AAABAQABAQIB//3+/v7+AAD/AQEB/wD/AP4A/wAAAAEBAQEB/wD/AP8AAAD/AAD//wAB/v39AgMD//7/AAEBAgAAAAD/AAABAQEAAAAAAP///wD/AQEBAAAA/wAAAQEBAAEB/wD/AQAA/////v7/AQIA/////v7//////v///v3+/f38/fz8/vz9/v79//7+/wD/AQEDAP8A/v7+///+/v7+AP8AAAAA/v7/AAEAAAEAAAAAAQEBAP7//wIAAf8B///+AP8AAgEB/wABAAH//v7+AAAAAQABAQIBAP8A/////wD/////AAAAAQEB/v7+AgID//3+/wQC/////wH/AP4A/wP/AgECAQAAAAABAQECAAAAAAAAAAABAAAAAQAA/wAAAQEAAAAB//8AAQH//v8AAAD////////+/fz8+vn59fTz7Ofm6eXj7Onn8Onm+fPuCfr5FwUGNScuKDE3EiovBxkdBAoL3tTU2cbA2MPGFhseFiMnAgEFAAAA//8B/P39+vr68e/t8/Ds/v77+/v6Bf8EAgMBAQIDAv4A/v7+AQECAgIB/f39AQEB/v7//v39AgMDAgIC/wAAAAABAwMC//8A/fz8AAIABAEFAwMC/v///v7+AP//+/r5BAQD+vkE////AgAA+vv8AAABBQUB+vv6AgMCAAIBAwQEAwQA/Pz7/v3////9AQAAAwMD+fr5BgYGAAAA/Pv7/f39/Pz7AQIDBA0NDAECAwEA/gABAf7+/gD/Af8AAf4AAAP/AP//AAH/AP/+/wACAP//Af8A/wAAAAAAAQICAgEBAQABAQICAgABAQEBAAAAAP8AAAABAQEBAQEAAgAB/wABAAEBAAAAAAAAAQABAAABAQEBAQEBAQEBAf///wD//wICAQEBAv/+/v8AAf8DAP/+AP/+/wMDAv//Af7+//8BAP0A/wD//wAAAf7+/gABAAABAf8A/wEAAgAAAAECAf/+/wIBA/8AAQAA//8BAQP/AAH9/v7//v38/f8C/wD/AAECAf/+/fz8+wEBAgEBAQECAQD/Av7+/v/9/v8AAAABAQEA/wABAQD///7////+/wAC/wABAAAAAf////8B/wAA/v//AQD/AAAA//8AAAMCAgEBAQD/AAAAAP/+//8B/gEBAAD+AgABAAABAf8AAAABAAAAAQAA/wEAAP7+//39/f///gD//////////v/+/v///wEBAf7+/gD/AAD/Af7+AP//AP///wECAgAAAQECAf//AP79/QABAP4BAgIAAgEBAf//AAABAP7///8A/wH/AAMCAwAA/wEBAQECAv8AAP/+/gAAAf///wABAQD//wL/AP79/QEDAAH+/v7+AQABAAIAAf7+AAAAAAICAgL//wAB/wIBAQAAAAEBAAAAAQAAAAEAAP//AAABAAEA////AQAAAP///////v3+/v79/fz8/Pr59/Xy8fHt6/Hr6vbx7v/5+Af9/gkCAfHl7Nn40BDr+hczABgnKAH8AwHz+/Hr49DCvz0WFwgPEwEBAQD///79/ff39vDu6fr48wIB/wQDBPr7+//6+wAAAAYFBgIBAvv9+wEAAQQEBPr6+/7+/gMDAv//Af39AP7///7+/f//AwUEAwcJCf79/fr5+f8AAAMDAwQDA/7+//7+/vz8/Pv8+v79/QEAAgAAAAUFBAQDBAABAAIBAv7//gICA/39/P7+/gICAP7/AgMDAgIBAv////v8+wEAAgL+/gMDAv8EBAAAAQQEBAUAAQAA/wD+//8BAAH/AP8AAAD////9/v4D//8AAAD/AAAA////AP///v/+/v4CAgD//wACAQEBAQECAgMAAAD+//8BAgACAQICAQEAAAEAAgACAQIAAQABAQEBAAEA/wAAAAEAAAAAAQAAAAABAQIAAf8A//8AAAD/AP8AAQABAAEA/wIAAv8AAAAAAAP//v4AAf4BAQICAgAA/////v0AAQAAAQL/AQEA/wAA//8AAQABAAEAAgAA//8BAwIAAAAB//8AAP8AAQAEAwT+/v4AAAABAgEAAAAAAAABAAEAAAD/AP8A/gD+//7+/v7/AAD+/v4CAgL/////AP/+//7///7+//4B/QABAwIBAQAA/wD//v//AAAA//0C/wMBAv4CAgEA////AAD//wACAv8AAQEB/wL//wABAf8A/wD//wAAAf8AAQAAAP8AAQAAAQECAgH9/QD///8A//8CAQH/AgEA/gAAAAEAAAABAQEBAQH///8B/wAAAAD/AAD+/f0BAQH//wIA//8BAAMB/gICBAEBAAD+//4BAQEA/wD/////AAABAgIAAAAAAAD/AAACAAD///8BAQEBAQEAAP8AAP8BAQMAAQABAQEAAAD+/vwA/P/+/QECAwMDBAABAgH////+/v4B/wABAwIBAQH/AP8BAQAAAAEA/wACAQH/AAD/AQIAAP0B/wEAAAD//////v/+/v79/Pv6+Pf49/X29fX8+/kA+/oD/f0F/gP8+vvm5uPr5uYG2tkOzssQGRz07vDo6N/x//T0//otOToYDREAAgP+///7/fzx7+3t6uf8+vn7/Pr//gD////+/v4AAAH6+/r+/v7+/v4BAgECAAH+/v77/PsBAQUCAgMDAwQA/Pz9/v8BBQH8/f0FAgIFBQX/AAD///8BAQAA/wD7/Pz//wABAQD///8CAgMCAgH/AP8CAgICAwMAAP/7+/oDAwX/AP8GBgb+/f39/v0DAgMBAAD//wD//v4AAQECAwAAAgH///8CAgMBAAAEAwICAAAA/wAAAP///gH9AgIBAP8A/v7+AwIC/v//Av//Af/+/gAAAP4AAAEA/wD///7+AAIB////AP8A/v39AgMDAwICAAAA/wAAAAEAAAABAQEC//8AAgEBAAAAAQEBAAEAAAABAAEAAQABAAEAAP//AgIBAQIC//8A/wD//v//AP//Af8BAP//AQL+/v8AAwMCAQEBAgEB/AAA//7+AAIDAgEA/v8A///+AAEBAQABAAAAAAAAAQABAAEAAP//AAEAAAEBBAME/QL///7+AgEC/gD///7//wAAAQAB/wABAQAAAQABAAH/AQABAQEB///+/wD//v7+AAEAAP8A/v7/AAEAAAAA/v79AQD/AAECAAMBAwEDAAD///8A/v79AQACAQAD/QD/AgL/AAEB/v4BAQAAAAH/AP////4AAAEBAQH/AP//AgIB//8AAQEBAQAAAQAAAgEB/wAB/wEAAAD/AP//AP8A//7+/v//AAEBAQACAAAAAQEBAQECAP8A/v/9/f/+AwH///4C/wMCAAD/AAD/AQICAQEB/wAA/wD/AgICAP8A/v//AP//AQEBAgEBAAIBAf8BAv8AAAD///8BAQEBAQAAAAAB/////v7+AQEB///9AQICAQIC/v3+AQEC/wH9AgICAgL///4A/wABAQIBAP//AAIAAQEC/wD/AAAAAQD/AAAC/wH9AQAB//8AAP///f38/Pv6+vn5+vn3+Pf1/Pv6/f38AAD//AH/9//+/P37BAH8Bfft9+Dx6eLY/v8A+gD9/wQA+e3s7+jmGScu/v///f79+vr58e/u9PHu/Pv5/wAC/f77/P39+vn6BQUE//8EAgIC///9+/r8AP//AwQDAP//AAAA//7+/P76AAAAAAD//vz+AAEA+fj6///+/P39BgYGAgMEAQAA+Pj4AgMD//7//v//AgMBAAABBQUF+fn5////AAAABAQF/f39AAEC////AQIAAv8A/Pz8/fz9BQYFAgMD//7////+Af8B/v///Pv8AgIBBAIBAP8AAf//AQAA/gAAAQD/AP8A////Af8AAP////8A/wABAwMCAAEBAQIBAQEAAQABAP8AAP8A/wH/Af7//wH+/wACAAABAAEAAQD+AP8C/////wMBAgEBAAEBAQEAAQEBAgAA/wAAAQACAAAAAQABAAEBAgEBAQIBAP4A/wH//wAAAAD+//8A////AQH/AP///gEBAP4AAQL///8AAP7+/f7+/wECAQEAAgECAQEAAAD/AAAAAAAAAAD//wABAf8AAP7+/v8BAQH+/v7///7+/gD///4AAAEAAQABAQEBAgEBAP7+/gEBAQABAAEBAAAAAQD/AP3//QMDAwABAAEAAQD/AQD//v3+/QIA/wABAAEBAv8B/gEBAgAAAP8AAAIAAP///gH/Af//AQD///8B/wL+AgAC//7+/gICAgD//wACAAAAAAD+AAABAf/+//7+/v8AAAEBAQEBAAD/AP7+//7+/////v////7//wD//wAA/gIAAgECAQAAAQL/Af4AAQEAAP7+/wEB/wH+//7+/wH//gH9AQECAgAAAP///wABAQECAgP///////8AAAECAQIBAv8A//8BAQAAAAAA/wABAAEBAgEAAP/+/gACAgEAAAECAQAAAP8A//8A//38/AIDAv/+/v4CAwADAP7//wMAAwIBAQH+AP8B/gAAAAAAAP8AAAD////+//3+/v7+/f3+/Pz8+vr5+Pn38/n29Pr49/j29Pz8+wL/APv//vkAAP4BAv0AAf3//wEA+v79Af4AAAABAQD/AgYB/vr59/7+/f4BAvz+//b29vLv7f38+vr6+f79/Pz8/P3+/gMDAgEBAgAB//z8+/39/f79/fv7+wcABwUGBf39/P3+/QIBAgIDAv/+//n9+QICAgICAv///wD/AP39/gH9AAQFBfz9/gUCA/r8/AAAAAcICfn5+QIDAv7+/v///v7+/QUFBgMDBAQEAwEBAv0DA//+/gcHB/4F/v///////wECAQEBAf/+/gH+AAIAAPz6+gT+//////7//wD/AAD//v////4BAAAAAP//AP////7//wIBAQABAQEAAgEAAAEAAQEAAQAAAAD//wD+AP4C/wL/AP///wACAAH/Af8AAQECAAEBAgEAAAAAAQIBAAAAAQABAQABAAL/AP//AAEAAP8BAAIAAAAA/wD+AQABAAEAAQEBAQAAAgAA/v/+AP///v7+/gIAAf8CAQIDAAP+AQAA/wD/Af4A//8CAgIAAQABAAEBAgD//v4AAAEAAQEA//////8BAQEB//7+AAAAAAD///8BAQECAQEA/wD/AAD+/v0B/gAAAQABAAEAAAEA/wABAQACAwIB/gEBAQH//v8DAgP9/v4AAQABAAH//v/+Av8C//7+/gECAv8AAAAAAAD9/f0CAgMAAP4BAAAAAAECAwP///8A//7//wD+/gABAgAA/gH/AAAAAf8BAAH///8BAQABAQEBAQEA///+//8BAAACAgH//gL///v//v//AAABAQL/AQAA/wAAAP//AQEBAQEAAP///v8AAf////79/v0A/AAAAwAB//8DAwIAAAAA//4AAP8AAQEBAQAA/wAAAQABAgIBAAD///8BAAH/AAAAAP8AAAH+/v4BAQH/////AQD+//8DAv////78/P4CAQL/AAACAQADAQH+/wEB/v4BAAD/AgMCAQAAAf8BAQH/AAAA/wD///7+//3+/fz8+/v6+vr5+Pj6+/j8/Pn+/fsFAgAA/v79/f38AAD9AAL/AP/8//7/AQEAAQEBAQD9AP/+/wH/AP8DAgAABQUFCQr+AP/9/v77+/zx7/Dv7On08u/7+vn/AP7+/v0EBAUAAAH8/PwAAAD6+vr+/f0GBwgGBgb+/v36+f/+/v0CAgEDAwP///8BAgD//P4BAQP6+vkDAwQA/wD9/PwAAQH7/PsGBgYCAgIEBQUBAQH+/v8AAQADAgIDAwMCAgH//gL///78+/r+/gIFBAYAAAL9/f74+PQIBwgDBAMA///+/v/+/v4BAAEAAP8A//79+/wE//7+/v/+/////wAAAAD+/wD/AAAAAP//AQAAAQEBAgEBAAEAAQECAAABAAEB/f3+AQEBAAABAgICAwIEAgICAQECAQEAAQICAQEBAAH/AAIBAgEBAQECAgIAAP8BAQAAAAAA/wD///8AAQH/AAACAQABAAABAQEBAQAAAAEBAQH/AAABAAD//wEAAQAAAAIDAgH//v/+AP//AgMAAAAA/wMAAQD//v8AAQD/AgECAAAAAQEBAAIDAP///v7/AAAAAAAAAAAAAAACAgEAAAIA/////v/+AP8AAAAA//////8AAAAAAQEBAQIBAAABAAIBAf8AA/4A/QH9//7///////4AAAD/AAABAgQCAP0AAAD//////v78//8CAgICAAABAQEAAgMC/wD+AP4BAgMB//39/wEAAgEC/v4AAQH/Af8CAgIAAQEB/////wABAQEA/v8AAQEBAQEBAQICAgIA/f8AAP8A/wD//v7+/v7/AAEBAgEAAAEA////AAD/////AAEAAgAC/wMBAQEBAQABAP////7+/gEBAgEBAP8AAQEB/f///v7+AP8AAQIBAAAAAgEDAAD/AAABAQICAQAAAQAA//8AAAABAAIBAAAAAQEBAAABAQEB//8AAP7/AAAB/wD/AP///wAB//4A/wH/AAIA////AP7+/gEBAAEBAQEAAAD///8A/v79/fz9/Pz9/P38/Pz6/f77AgD/BQQFAAD/AwQDAwQD/wEB/f///QH//v///wH//QD//gIDAP7+/wABAAEBAQACAAAAAwsMCxAS/gAA/f7+9vb48O3t/Pv1/f76AQIA+vj6/f3++/r8BAQEBAUE/fz9AwMDAAAA+vr6AgIBAAEAAP/+AQD//v4BAAD//f4CBgUFAAAB+fn5/Pv7BgcBAP4A/v/+BAUE/f38CgoK/wAAAgEBAAEB/f37AQEC+/z7/f7+/v7/AgICAP//AQAB+/z7/fz9/wAC/v4A/v7/+/z8/wD/AgEB//8A+/r7AAAABQID//7/AgICBAABAQEAAf8AAAEA/wABAgH//gAA/wAAAAAAAQAAAf4AAAMAAgABAQEBAQH/AAECAQAAAAEAAQEBAAABAAD//////wEBAAEA/wEBAQAAAgIBAQEAAAD///79AAAB/wEAAQEBAAEBAgECAAEAAQABAQEBAQEAAQD/AAABAQAAAAAAAQEBAQAAAQAC/gH/AAABAP8AAQH9AP8A/wEDAQAAAAEBAQICAv3+/v/+/v///wEBAQD/AAIBAf7//wEBAf///gAAAAEBAQIDAP8BAv/9/wIDAgH/Af//AAD//wAAAAICAgEBAAD/AP//AAABAP8A/wD///8AAP8AAAAAAAD///8A///+/////wD/Af8A/wD+AP8A/v8CAQL//v4AAAEBAQEBAgD/AAEBAAAAAP/+/v8AAQEAAP//AQEAAP8A/wEA/gAAAwEBAf//AAAA/wD/AAEAAAABAAEBAAECAAAAAP////7+/f79/P////8A/wD/AP39/QMAAP7+/wAA/wEBAAAAAQEAAP/+AP4A/v8B/wL//gAABAICAgEBAf8BAAD/AAIAAv8A/wABAQEAAAACAQEAAAEBAv8AAAEAAQEBAAABAQD//wD//wEAAf8BAP///wICAgAAAAEBAP//AAAB/wEAAP7+/QIDA/4A/gD+AAEAAP///wIB/wAAAQECAAAAAP8A//79//7+/v/9/f78/P38/f/+/wIBAgUGBQ0PDQ4QEPXz8/b19Pn4+AL9/P/9AP3/AAH//wD///7+/QAA/wAAAQIAAAMEAQUPCiQwMRUdIP3+APv8/PPx8PHu6fr49v7+/gEBAgIDA/n5+f7///39/QAB/wD/AQEBAQICAv///f7+/gEBAQEBAP39/gQEBPr6+wQEBAAGBQMEBP8A/wQABQECAv7+/fz8/P3+/QQDAgAAAAEAAAEBAP3+/QAAAAICBP//AQYFBvr6+QIBAQABA/r6+v8A/v3//QAABAEBAgICA/v7+wAA/////wMCBAICAfz8/P4AAAMDAwICAQQAAP8BAQEEAgL////+AP8AAP///wACAwMAAQABAQEDAgIAAAECAwQAAAABAQABAQEAAAH/AP8AAAL////+//8CAQD+/gD///8C//4AAQH/AAL/AgICAQL/AAEC/wH/AgAB/wAAAgABAgICAQEA/wAAAQEBAQEAAAEAAP8AAAEBAQAAAQEAAAABAAL/AAAAAf8A/wABAQAAAf8B/v4DAwP+AgEC/gIB/v7+/v4A///+//7//gD+//4A//8AAAEAAAEBAgH+/v4A/gAAAAACAgIB/gH/AP//AP//Av8A/////wEBAQH/AP7///8A/////////wAAAAACAgL+/f0AAAEAAf8BAgEB/wAAAQAA/gD/AP/+//8B/gH/AQEA/wEBAQH//v7///79/QEAAP8AAAACAgIAAgMAAAD//v4AAgECAwMBAQH///8BAQAA/wD/AP8AAAEAAP//AAAAAAECAQH///7+//7+/v3///4CAQD+/wD//wD8/P0AAAACAgD/AAABAAEAAAAAAP8B//8A////AAL/Av7//wD///7+/QAAAP/+/wAAAAABAQAAAAABAAEBAQIAAAEBAf8CAAEBAgD/AAECAQIAAP////8AAAD+//4BAQEBAAEA/wABAgABAQICAQEBAgECAQEBAAAAAAD+/v8BAf0AAgD//wAA/v8AAAD//wAA/////wD+//7+//4A//4BAQADAwIGBgYICgoXHR0BBQP8Af78/v0C/PsE/PwB+/0D/P7+/f7+//4BAAEGAwMFCAYKEg8ZKioxREYFDA75/f729Pbu7Ony7+n7+/n8/f7//fz9/fsCAwP//f0DAwL//v/9/f0AAQAGBQcEBQL9/Pz9/v4DAQEBAgEBAgEBAQECAgH9/Pz9/f4EBAQHBgb6+vsA/wAICAcBAQH8/fz29vX+/gAFBgUGBQX+/v/+Av8BAQH8/v39/f3+/f3+//8A/v7+Af8BAQIAAP39/f7//v7+//36+v7+/f4FBf4EAwQBAQABBAIFBgX7+voEAAD+AQEDAQICAP//AgD+AAAC/v7+AAAAAP8AAQEBAAEBAQEAAQAAAQEBAQIAAQEBAgIBAQIB////////AAEB//7/AgMCAQAA////AQAAAP//AP///wEAAwMDAwIDAAAAAAIBAQEBAgIBAAAAAAD/AAEBAAAAAQEAAQECAAAAAQEBAAAAAAAA/wAAAQEA/wAAAQAAAQMD/wD/AQEB/v79AP4DAAP+AAEBAgEC/v/+Af4B/f/9//8AAAABAQEBAQEC/v7+AQEBAAIAAQAB//8A/wD+/v//AP//AP/+AAAA/////f7+AgEAAAAAAP//////AP8AAAECAgAAAAIC/gD/AwAB////AAAD/v7+AAEAAP8AAP///wD//gAAAP38AAEDAwEC/v7+AAAAAQEBAQECAAABAgABAP///wEAAgAB/wAAAf8A/wD/AQACAgIB/v7+/wD+////AAAAAP8A////AAAA//7+/v/+AP/+/gAA//8BAP8BAQIDAwIDAQIBAQD/AAAA/v7/AQEB/v//AAEAAQEA//8A/f78//wAAQL/AQEBAP//AAAA/v/+AgECAgEA/wD///7+AQIBAAIA/v4AAQEAAAEBAAEAAAABAQEBBAAC/wAAAP//AAEBAgACAAEBAQIDAgICAAD/////AAD+AAEAAP8A////AP///wD/AP8B/wAAAAD/AAD/AP8A////AAAAAQABAQIDAgQEAwYHDBARAgQE/wEBAgEC9/HwAv/8A/z8Bv3//fz9/fz8AgEACgsKCxAPFCEiMkFIEx8l+/4A/vz+8fHy5uLh9vPv+/r4/fv7/f79/fz8BQUGAQEA/f7+/v//AgAB/v7//AL8AQAAAgIC/f79AQAC/////v7+BAQD//8A/v7//v7+AgICAAAB/v7+/wD/AAAB+vn5AQIBAAEA/fz8AQEBAP7//v//BAQE/v7+BgYHAgID+/v6/Pv8AQIB/v/9AP//AgME+vn6AgIA/fz8/wABAgIDBwECBQYGAv0B/v78+/v6AAEABP8AAAIA/////gD/AAAAAAAAAAEBAP39/f7+/gICAgEBAgMC//7//gICAwIBAQEBAQABAQH/AP8A/gEBAwIBAgEBAQAAAP8AAQEBAgEBAQMCAwIDAwMDAgECAwAAAQAA/wICAQEAAQAAAAEBAQABAQEAAQAAAAAAAAAAAAEBAgAA/wAAAAEBAQEBAf8AAAEA/wD/Af////8A/wEBAAAAAAAB/v/+AgIC//8B/wH/AP4BAQABAQL+/gAAAf7//gD+AAMDAwD//wAAAf8A//7+AP4AAAL+/v0AAAD/AP//AAABAAIBAQICAv7+/v7////+/v//AAEDAAEBAgEAAQEB////AAAAAQABAQAAAP//AP8A//8A/wD/AP///gEBAv/+/v4CAQH+/gABAgD//wAC//////7//wD+/QMCAv8B/wAAAP8BAAH/AAAA////AP///wAAAQAAAQEBAQABAP8BAQAA/wAA/////vz9+/8AAP8AAgMCBAMBAQAAAAD/Af8BAAAA/wEBAf8A/wIDAv///wAAAAD//wEAAQD/AAD+/v8CAQH/Af8A/wEBAQABAP7/AAIAAAECAAD///8A/wEBAQAAAP8A/wD/AAAAAAEBAQD/AAEA/wEDA////v4A/gMABAEBAP///gEBAgICAf///wAAAQECAf/+/QABAQIBAv8BAAIBAAD/Af7+/v8A/wAAAAAB/wEC/wQDAv8DBAcHCQIDBAcKCQgLCw4OEOvk5fLx7vv59gD//QP+/gL8/AIEAA4TFR4mLSk0ORkgJv3+Af3+/Pn5/PDv7fHw7Pn59wIA/wD//wUDAwQDA/7+/gAAAAMCAv7+/wACAQD///37+wICA/7//wD///z9/P///wECAQABAgMCAwAA/wEBAf38/fn9+f79/gICAv7+/gECAv/+/AQFBQIFBf8A//j4+AACAQICAvn5+v39/QgICP39AgMEA/v7+////QAA/wMCAQEA/wQDBQUEBQABAgIBAQABAQAAAAkJCfj39v7//AIBBQQA////AgEBAAH/AP4AAQABAQH//wEBAQADAgMAAQD///79/v0B/gECAgL/AAEBAAICAQEAAAICAQAAAAD///8DAwEAAQICAgIAAQABAwMBAgIBAQD//wAA//8BAQABAQH///8BAwIA/wABAAD/AAEAAAEBAQD///////8BAf8AAAAAAAABAAAAAQAAAAEAAAEAAQAB/wD+/wAAAAICAgAA/wD/AP8A/wD+//3+/gIDAwACAgL+/v7///4A/gL/AP////8AAQAAAAAA/wEBAP8BAQH/AQAB/v//AQECAgD/AAEAAP8AAAABAQEAAAABAQEAAQABAAEA/wABAQEBAgIA/v7///4A/gAAAAEBAP7/AAD/AP8A//8AAAEAAP/+/gAAAP7/AAADAgABAQH+/v0A//8AAAABAQL+/v8BAf/+/v4BAP8CAQICAQD///8AAAABAQAAAAD//wEBAgEBAQAAAAEAAAEAAAD///////8AAP8AAQP+/v0AAP4CAgMDAwMBAQEAAgAC/wL//v78//3///8AAQD/AP8B//7/AAEC/wEAAP8BAAAA/wABAAIDAgIBAQH/AQABAAEAAAABAgIBAQEA////AAEAAQABAQAAAAD+//8BAP8BAQEAAAD///79/f8BAQIDAv/+/v8AAQABAAD//gAAAAEAAAABAQEBAQAAAAH/AP7+//7///7/AP8AAAABAQICBAQD/gAFAQIEBgb/AP8ICQwODxIXGRzw7Ozx8e/5+PYA//4JCQcVFhUcICYZHiUHCw/9AAL//fz9/gD39/fv7On9+fMA/vz9//4GBwb//////v7///8EAwQCAgP7/Pv7/PsBAAD///8A/v0CAQIDAwMCAgH//wABAgH//v4AAgL9/f0BAAADAwMDBAP8/Pz//v4EAgIAAgL9/gEIBgf+/v/9/v37+/v//f/+/f4BAAD//////v79/f0BAQEDAgL8/f4A///6+voEBQcEBAUCAgIBAQL+/f0BAQD9/Pz4/Pv+/v4DBAP9+/wEAgIDAQAB//8A//8AAAAA////AAD/AQICAwUDAgICAAEA/wD///8A//8AAP8AAQIAAAABAgIBAQEAAAABAQIA/gAAAgEA/wD/AgECAgEB//8A/v7/AgL+AP8BAAAAAQEAAQABAP////8A/wABAQH/AAAAAAABAgICAAAAAAABAgEBAAD+/wD/AQACAgEBAP8A///+//8AAQABAQEAAAICAgAB/wIA/v7+AQACAv79//8A////AQAB/v4AAAL//wD/AAD/AAAA/wAA/v7+////AQABAQECAQMAAv//AP////7+AQAB/v//AQABAgID/v8BAQD//wAA/wH/AP8AAAD/AAD/AAAA/wH/AP4A/wEB//////7/AP8AAAH/AAEA///9/f0BAwAA/wEC/gAAAQAB/QD+AP8BAf0A/wMABP8B/v/+Af4BAAEAAQIDAP//AQABAAD//v///wD/AAABAQEBAgMCAgIBAQEAAQEB//7+/wD//Pz7AgL/BAQFAAEAAQIBAgIC///+////AAEBAgEC/gD/AAD///39/AD+AwMEAAIA/v8AAQAAAAEA/v7+/wD/AgICBAQDAQICAP8AAP8AAQEAAAIBAQAB/wD//wEAAQAAAgABAP8AAQECAgICAAH/AAABAAEAAAEBAQEA/v7/AAD/AQEBAQEB////AAAAAQEB/v79/Pv7/f39//7/AQD/AgIDAAMAAQIEAgH9Avz7AAAA/wD+AAEAAQkBEBATGx4i/v79AQECBQYHCAgIBQcIAwYGAQID/gD+Af4AAQEB+/v78fHv+PXxBAL//QMC/Pv//v0AAQEB/Pz9AAABAQMCAwQC//8DAP//////AAEA//4AAQAAAwMEAgMBAP//AwMD/QH+////AAEAAQEC/f79//////7/AQICAQMCAP//BAAEAQABBQQDBgAFBAID+fr7BAQEAgMB//8AAQID+fj5AQEBBwkIBAUD+vr5AQADBgUFAwMEAgIC/v3+AP8AAQAABgQDAQEB/f4CAQD//wQBBP////7+/gEBAQAAAQEB/wEAAf4AAQH/AAD/AQD/AAAAAAEAAQEBAf8A/gAAAwEBAQEBAQAA/wAAAgICAAECAwAA/////wEBAQD///79/QACAQMBA/8AAQEAAAABAAAAAAD/Af/+//8BAf//AAAAAAEBAAAAAAAAAAABAQEAAAABAP8AAQEAAQICAQD/AAABAP7/AQECAQEA//8AAQL+/////wAB/wICAgD/AP4CAP///////wAAAAABAAL///8C//8AAAD///7+/wACAQEAAf7//gAA/wEAA/7+/v79/QAAAP/////+//8A/wAAAAICAv8A/wAA/wD+/wABAQD/AP8AAf///gEAAf8B/wH/AAH/AAEAAQAA//7+/v/+AAEDAgEBAQD/A/39/QICAgEAAAAAAP0AAAIC/wEA//4AAP8A/wMCA/8C/////////wICAQD/AAD+AAD/AAAAAAIDAwP9Av0DAgAAAAAA/wABAP//AAEA/wAA/////gD/Av////79/f8A//8A/wIBAQICAQD/AP7//vz+/wQEBQAA//z7/AABAQABAAICAgEBAgIBAwIBAgD/AP7+/gEBAQEAAP//AP8A/wEBAQEBAQAAAQEAAAABAQEAAAECAQEBAQECAgAAAP8A/wAA/wAAAAICAQEAAAABAAAA/wECAf7+/QD+APz8+/7+/gH///8AAAICAwAAAgEAAf/9/QIDAAQBAAAAAAAA/gAAAQEBAwIDAgIDBAMDBAMDBAMEBAIDAv8BAv//AAH//////wEA//8AAQEBAv38+/v69wEA/gEAAQQEBAABAf79/AEBAv///v7+/v39AQAAAAQEBPv8/AYFBgAA//7+/wEBAAIBAQIDA/7+/gMCAv//AAMBAQEBAfz9/P/+////AAL+AAD/AAIAAAkHBwIBAf8A/wAAAAQDBQIJBPr6+QICAvv9/Pv7+g8QD/n5+v38/QAA/QEA/wH//wD+/gIDAAQDA/n8/P///vz8/QD//wACAAIBAQMEAgUEBAQAAAEBAAEBAQEAAQABAAICA/7+/f/+//79/vwCAgT+/gD+///9/f4CAgIBAf////////8CAgMCAgIBAQEAAAABAQEBAQIBAAD+/wABAAACAAH///8BAAAA/wAA/wEAAQIBAgH//wACAQECAQIAAP8BAQIBAQAAAAABAAAAAQEAAQECAAEBAQABAAH/AQAA//8CAgEAAAAA/wEAAAACAwEA/wD+//7+/v//Af8D/wL//wD/AP8BAAECAQH////+/v7+//7/AAEBAgEC/v7+AQEB/wECAQL/AAAAAf//AQEAAAD+/wAAAQD//gABAQD/AP8AAAABAAH+AP8A//8AAAAAAAAAAQEA//8AAAABAQEBAQEBAQD/AAD//gAAAAD9/v4CAgEA/vwBAQIA////AAABAQIEAwAAAAD/AAD+//8B/f4BAAECAgL//v////8AAP/+//8AAAACAgL+/QEA/wAAAAABAAABAgH////+/f7/AAAAAAEBAwEAAAD+/v4A/f0DAgMCAwIBAAAAAAD9/v7///4AAAACAgIAAAD+/f0AAQIAAP8AAAEAAAAAAAABAgD/AP///wD//wAAAgD/Af8AAAD+/f4BAgADAgL/Af8BAQABAQEA/wAA/wD///8CAwP/AP7//v8BAQEBAQICAgD//wAAAP8AAAH//v/+///+/fz/AP8CAQH/AAACAQAAAAEBAf8AAAQB/v4BAwIBAgH///8AAAQB//8CBAQCAwMBAQICAwMCAwMBAgICAwMAAAEAAQEAAAD////9//4AAf/4+fj19PP+/PsA/wAA/wD9/fwCAgMAAAAAAP///wADAgIA/wABAgP////+/f77AfwFBAQEBQP+/v/9/f78/fz9/P0DAwMAAAAEBAT8/f0BAQADAwT7/Pr8/v////8FAgMCAQH9/f0AAQH9/fwCAgP/AP8BAQEBAgECAQD8+vsCAQEKCgr49/b8/P0FBAX//v4DAgEAAP///v7///8HBgb7+vsAAQABAQH5+voEAAQEAgMEAAAAAAH///8AAP8AAAH/AAAAAgAB/gAA//7//v7/AwEA////AQEAAP8A/f3+AAACAgMAAQEBAQEA////AAD//wABAgD+/f8AAQECAQEA//7//wIA/v7//wH+AgAA/////v0AAwQE/v7/AQL+AQECAAD/AAABAAABAAABAQABAQAAAQEBAAAA/wAAAQABAAIBAP8AAQAA/wEAAf///wABAAH+AQECAwH/AAAA/v7+/v//Af8BAQQA//4B////AgIC/f7+/v7+AAAA/gEA/wAAAgEA/wIB/v7+Af8CAQH/AgIAAAD+/v39AAAA//8AAAEAAAD///8AAAAAAAAAAAAAAQEAAwEB/gICAAD///4AAQEAAgIC/v79AQEAAAAA/////f3///7/AQEC/wICAgMDAgEA///+/wABAwAA/f79AQABAwMDAAAAAP////////7//wD/AQEAAAABAwMD/v78AQEBAQIDAQEDAAEB///+////AQMDAQAAAAAAAAD//f7+AQECAP8BAQD/AAAAAAEBBAMF/wD+/v7//v3+AgICAAD/AP8AAQEBAAAA/////v3+AgMCAQIDAQAA/wAAAP8A/wD+AAAAAQEA/wD/AQABAAEBAQABAAD/AAEBAQEBAQD/AAABAgECAP//AgMCAQIBAgEB//7+/v///v/+AQD/AAEBAgAAAf8A/wAAAgEA/wEA//3/AAEBBAQF/v79AAAA///+AgEC/wAAAQICBAQFAAAAAAAAAAD/AQEBAAEBAAEBAAAA/gD/AP7/AgIC/v4A/Pr6+ff1AP/8AwIB///+/Pz7BAMABQYFAgMCAgIDAP8AAQIBAQEC/Pv7/QQDAwQDBAQDAQEC+/v4/v/+/v3+AgAA/gECAgIA/Pz8/P39BAMD/gD+//7/BAIDAQEBAAAA+/z7AwIC/P39/v7//Pz6/f/9AwQD///+AgICAAQA+vn7+/v8AwIBAwMCAgEA/wECAwIBAgIB/P38AAAAAQIDBAUAAwIB/gH+BgEGAAMBAf8ABP7//QIBAwECAQEAAAAAAAAA/wABAAAAAf3+/QD8AAACAQP//wD///8A/gEAAgAA/v/9Afz//AIDAgMCAwIBAgAAAAAAAQEAAAABAAAAAAEBAAAAAQD//wEBAQD///8A//8AAQIA/wEBAQEBAQECAAAAAQABAQEBAQEAAQAAAAD/AQABAAAAAAAAAP8BAAEAAAEAAQABAAIAAP8AAQEBAP//AgAA/wAAAf///wECAgL+/wABAP//AP4D/wH/AP/+AAAB/gEB/f/+/wEDAQAAAf7+AP39/QEBAQABAQIBAf8CAgH//wABAQAA/////wD/AP7////+/gABAAEBAQAAAQAAAQABAP///wAAAQEB/wECAv/+/v8AAQAAAP7//wD//wEBAP3+/wMDAAABAv////z+/gQBAQAC//7+/v39/QECAgD///////8AAAAA/wABAAD+AAAAAQABAAH/AQAAAQABAwABBAECAwABAQABAP/+AAD/APz9/AMAAAECAwMBAAAA/wD/AP8AAAMDAgECAgEAAPz8/wAA/wABAf//AAD//wEDAf////38/AMEBP8A////AP7+/gECAgICAQABAQAAAAMCAgEBAQEBAAABAQEBAQD/AAACAQIBAgEBAf//AAIDAgD///7+/v///wD+/wECAwACAQH+AAIAAf8AAAMCAwAA//8A/wL//////wAAAAACAQEAAQABAAIBAAAAAAAABAEAAQABAf////7+/wMDAgECAgAA//7//QD+AQIBAf8BAQAAAAAAAP38/Pv9/vr7+gMA/wD8+v38+f7+/gEAAAQEA/z7+wIDAwIBAf7////+//8A/P39/AAAAAAAAPb39/7+/gABAAICAgQEBAIAAf8A//3+/gMCAwMDAv7+/v37/AECAQMFBv7+/f7+//7//wL/AP/+/v7//vz9/AIBAgD/AAICAgACAQL+/wIB/gIDAgcFBfb39AQDAf79/Pj59/79//z+AAECA/7//wYDBAIDAvz7/QUGBfb49gIEBAQA////AP3//v8BAAEBAQEBAQEAAAD//v8AAQD/AAD//f78Af0AAAD/AAABAAEBAQH/AgABAP8AAAD////8/f0CAgEDAgMB/wEA/wABAQEAAAAAAAAAAgEAAAEAAQEAAAACAgEBAAEAAAH/AAAB/wAAAP////8AAgIBAQEBAAAAAP///wECAgEBAQH/AAABAAD/AAABAQEAAAABAQAAAAABAAH/AP7/AQAB/wD/AAD/AAD/AAAA/wIC////AP8AAwAD/wMBAQL/Av7+/v4AAAEBAQD/AAD//v7+//8AAQMD/v4AAP8AAAD+/v39/f////8A//4AAAAA/wAAAAAAAQD/AP//AP8BAAAAAQEAAAICAf//Af8CAQH+AAAA//8AAAABAAEAAf///wD+/f//APwBAAEAAP4BAQD+//39/f0FBQb/AAD//v7+AQEAAAD+Af4A/wD/AAABAP///////wAA/wECAgIDAwMDAgP9AQH///78/PsEBQb+/v8DAf8AAAEBAQIBAAH/AAAAAAEB/wD/AAABAQIEAwH9/v/+/v4AAQH//v8BAP//Af8B/gIC/gL/Af//AAACAgIBAQEBAQEAAAEAAQABAQEAAAABAAEC/wH/Af8BAQEBAQABAQACAgL/AAAAAQECAgIAAQAAAAEAAP8A/v////8CAwIA/wD///4AAAIAAP/+/v7///4AAP8BAQIBAf4BAQL+AAAA/v8CAwMAAAD/AAEA//4A/wAAAQABAQEBAgMAAAEBAAAAAQEBAQH///8BAAH+AQD//wAA/wAEBggAAQP4+PgEAwILCw8GBwfy8fEDAwIDAwICAf/9//4BAAEBAwEHBAcEAwUBAAD9/v3+/v8BAgIDAgMAAAD+/fwBAAEBAQEA/wD6+voAAP8FAQX9/Pz//v4AAAD6+vr8AQH+/v8EBAMKBwn4+/n6+voKBgoAAgL9//0CAwEEAwIEAgIEAwQDAwIEAwMFBQb3+Pj7+Pv+/gH8/f0DAwMEAQH+//73+PUA/v/9/fwEAAAAAP8BAAD//gAAAQD/AP4A////AQIB//7////+/f4AAf4A/v4AAP8E/wAA/wAAAAD///8B/////wAAAAH//v7///7/AgEBAgMD//8AAf8AAAEAAf8A/wEAAP7/AQIBAQEB/wD/AQAA/v7/AAEBAwID/wAAAP///wD/AQIBAQECAAEAAAAA/wAAAQEBAQABAAD/AAAA//8AAQEAAAD/AAEBAQABAP8AAAIBAP//AAMAAP/+AP8BAP//AP//Af8A/wH/AgAA/v8CAgEBAQECAQEBAAAA/QEBA////f39AAEBAgID//7/AQECAQH////+//8A/wAAAQAA/wD///3+AAD/AAABAQEBAAAA//7/AAEAAQEBAgICAgICAQEA/v7+/v/+//8AAAD9AAAAAAEB/f7+AwQE/f39////AQABAgIC/v39////AQEAAgEBAQEAAAEA//7/AQICAAD/AAD//wAAAQECAQEEAgED////AP/9AQEDAP//AAD+AQEDAgMBAQEA/v7+AAEAAAEAAQIDAgEAAQID/v78AP79AQEB////AAEA//8A/v8ABAQAAAAAAAEBAP8A/v7+AgICAAEBAQEBAAABAgIB//8AAQEA/wD/AgEBAgIDAAEBAgICAAEAAQAAAQECAP///v//AAD//f0AAgIAAQEAAQEB////AQICAgAB/////gH/AQIB//8AAQABAgIB///+AgID/wD///8AAQIBAQAAAQEC//7+//8AAAAA//8AAAH/////AP8AAP/+AAEC/gD/AAAA/v79/fz7/v37BQYFCwsN//79AwMD+vn4AwMC/f799/T4DAwMAfwA/f7+AwECBwYGAgQEBQYE+/z8+fj6/wAA/wAA/Pr6AQEB/v/+//////8A/v7+CgkIBgYG/fz8/gAB/f38+vr9AAAA/Pz8BQUEAAkCAgIC/vv7//8BAv8AAP/+AwICAf///v7+BwUH/P37AQECAQL/BAQFBggBAAACAAECAgIDAAEBAwQE+vb4BwcG//8ABP/+/gABAAD/Af8A/wABAgEB//8A///+/v7//wD8//8CAgEBAQMD///+///+/QAABAD/AAABAP/+/v4BAAEBAQAAAP7+/v8DAwAB/v///wICBQAA/wAAAQEBAAEBAQEBAv7+AAIA/wACAAEAAQACAQABAAEAAAEBAQEBAQEBAQAAAAEBAQD/AAAAAP8AAAEA/wEBAf8AAAEBAAAA/wAAAgAA/wD/AQEBAAABAAABAAD/AAEAAv8BAP//AP7//wD//gD+AP8BAAEAAAAAAQECAAABAAEBAQH9/AD///////7+/gAA/gABAQIBAv8B/v8BAgEB/gD//wEAAf///wICAgAA//7//wD//wAAAAABAQD//wD/AAAAAQAAAQAAAQAAAP7//wEAAQAA//7+/QAAAQEDAv79/P7+AQMDAwAAAAAA/v7+/gH//wIDAv8CAf7//gIAAf7//wH+/f//AP7/////////AAEBAAECAQAAAP7+/gIB/P79AQICAv39/QAA/AMEAAABAgQBAwIBAwACAf///wD//v8AAQICAf7+AP///wEAAQABAAEA//79/gEB/gH+/v8DAQIA//8BAAICAQEAAgAA/////wAAAQAAAAAAAQABAQACAgICAgAAAAAAAAEBAAMBAv4A/gL///8AAQEA/wD/AQECAgEAAAABAAECAQEAAf/+/gIBAv8AAP8B/wEAAf7+/v4AAQIAAv4C/////gAAAAAAAAAAAAECAgABAP///wAA/gD/APz//gMA/wEBAgH//v7///39//v6+fTz7/Lv6fz7+QUFBf79AwMEAv3+/gEAAf/9//78/PTz8woKCwUEBAIDAQUEBvz8/Pn7+gABAAQEA/8AAP39/gIEA////gMAAwEAAP///wwMDAAA/wEAAAIBAgECAAQEBwAAAf7//wACAv///vn7+QD///3+/vr5+QD//wQFBPv5+QUEBP4BAvz9/fr5+QcHBgABAAECAwQEAf3/AP/9APn7+vz9AQMD/wQFBQEBAgMBAQT9/f0BAf8BAQICAgIAAP/+//7//v/+/wAA/v/+AP8A//7+/f38/QICAvwBAgIC/PwBAQAA/v3//wABAQEEAgMCAwICAgMCAQH///8CAgH+/v4B/wL+/vsBAgECAQMBAv8DAwL//wAA/wAAAAAA/wD///8BAQIAAAEAAP/+/wAAAP8C/gICAgIAAAAAAAEAAAD/AAAAAAABAAD/AAEAAQAAAAEBAAAAAAD/AQAAAAEAAP//AAAAAP8BAQAC/gEAAQP+AP4C//7+/gAAAAAAAAACAQL/AQH/AP8EAAD///////8DAwMAAAD+AP4B/wIDAQH/AAD//v7+/v8BAQD+//8A//8BAQH+///+/v4A/wD///8AAAD/AP8BAQH+//8AAQEBAAH/AP8A//////8AAAABAP/8//8DAgP/AQEAAQH9/PwAAP8BAQMBAgH//f79AAEABAL///8A/wD//////v7/AP8AAP///wACAgICAgP/AAH8/fwDAAAAAQECAwADAwQBAQECAgIAAQD////+/PwBAgIDAwMCAAD+/gL8/fwBAQD+/f4AAgEC/wACAQEDAQECAQEDAgICAgMCAQIBAAH///4BAQAAAQMA///+AP8CAQECAwICAgEA//8BAgEAAAABAAEAAQD//v8AAAAAAAAAAgAAAAABAAABAQEBAAEBAQH///8AAQABAgEBAAP+/v7///8BAQEB/wL/AAAAAQAAAAEAAf8BAAH//wABAgEA//7///8A/v//Af/+/wD+/P4BAgEBAQL+/wD4+Pj18vL08e759/T9/PoFBAP6+fcD/gIA//8CAwMGAgIBAgH///4AAAD/AP/29vkGBv4DBAL8/PsCAgMDAwP+//8BAQAEBAQDAgH+/v8BAQD//v///v78+vv7Af8ICAkGBAf9/f35+/sDBAP+//4JCAkBAgH//f79/v8A//8GBwYC/wD+AwP+/v78/Pz8/f0BAgL19vf9/v4FBAX/AgEAAAEAAP/7+vv8AAAFBQIHBQX8+vsDBgUE/////wD9AQAAAP8AAgEC/////wAAAAD/AAAAAQAA//7//QD9AfwC/AH8AQEBAP///f79AwMDAQICBAIE/wD/////AAD//wAAAgEB/v7//v78AgIDAAIAAwEDAAIAAQD//f39AwMCAP4CAQIBAP////8B///+AQEBAQEAAQEBAQEBAAH//v/+AAABAP/+AgECAAAAAAEA/wAB/wAAAP8AAQEA/wEAAAAA/wABAQAAAAEAAAEBAAAAAP//AAIAAP//AQEBAAACAgL///////7/AAABAQEA//8DAP8ABAT/AQEB/f39AQAA/QAAAAD+/v0AAwICAP/+/wIB/wD/AP7////+/v8AAP7/////AP///////wD/AP8AAAD/AP//AQAAAgEB/f7+AAAAAAAAAQEB//7+/f7/AAMA/v79AQICAQD////+AwT//f0A/QD/AgEDAAAD/v7+AQECAAD+/v3+////AAD+AAD/AAEBAgMDAQICAAD+AQIBAgIBAQEA/Pz9AAD7BAQAAQIDAAD9AQMCAQAB/wAAAAEBAAABAgEC/gH/AQICAAEA/wABAgMC/wAB/wAA////AAAA//7+/wEAAP8A/wEBAgAA/wAAAP8AAQIBAAAB//8AAQEAAAEBAQEBAP8A/v/+AQEA/wEAAf8A//8AAQIAAgICAAAA/wEA/wAAAQEBAQAB////AQEBAwQD/vz9/v8AAgEA/f/+/wD+AAABAAAA/gAAAAD/AP7/AAAA///9AP8A/wABAAEA/wAA//4AAAD+/P389fPz6ejl+PPuBQMC/QQD/Pz7AAEB+/z7AgECAwMDAAEB/f39AAEDAgIB+vr7AAD/AAD//v3+BAMEAwQE//8AAf/9AQABBwYFAAAA+/37AgEC+Pv4//79AAIAAwID+fn4/v0F/v7/BAUE/P38+fr7/Pz8CwsKAQEDBAQDAgEB/v39AQMD/wAA+fn6CgsFAP0A//8ACAgJBgcI9/f4+vr5+fv7AgIBAP8AAwQDAwED//4B+fn7/v4ABP8A/wH/AQD//gABAf7+/v/+/////v8AAAEBAQEAAf///wAAAP79/f4DA/79/fv/AAMBA/8AAQUBAv/+//0BAP7+/f3+/wMD/wICAQIDAwIBAf8A/wH/Af////7+/gACAgAAAP//AAAA//////7+/wIA/wECAP///wAAAQEBAQAAAP//AAEAAP///wEBAP4A/wEBAQEAAQAAAAEBAAD//wAAAQAAAQABAAH/AQAAAAAAAAEAAAABAAAAAAAA//8AAAICAf//AP7/AQD+/gACAAD/AAD/AAIBAgAC/gAAAwEBAQEBAPwBAf8AAP8A//8A/QL/Af4CAf/+///+//39/QAAAAAAAAAA/wEA//8AAQEBAAD///8A//8AAP8AAQEBAAAB/wEAAQABAAD/AP////7+/gD/AAIBAf8AAAD+/wMCAv7+/gEBAQAAAQICAf4B/QAA/wEBAv7+/f39/f79/P7//wEA/////wAAAQECAwQEA/v6/QD///7+/QD+/gIDAP8AAv8A/v//////AwL9AAEBAP//AwEA//8B/wEBAQAAAf8A/gD/AQEBAf39/QMCAAAAAv7+/QH9Af8AAAP//wECAgP/Af7+/QEBAf//AAAA///+/wAC/gECAgEAAQMCAQD+AP8AAAABAf8AAP79/QAAAAAAAQAAAAEBAQEAAP///wEAAQEBAQEAAf8AAQIAAQEC/wD//v8AAAABAQH/Av8B/gEBAgH///8AAP39/gEBAP///v7+//8A/wIDAwAAAgIAAv4AAPv7/fj4+Pf08Pj28QH//v///gACAf/+/gEAAv3+/wMFA////wIDAwYHBv78/QsLC/7//vz8/AQEBP3//v////7+/gECAQcDBgEBAP38/QP/Af7+/QMBAAYICAICAv39/v/+/v///gQEA/8AAAAAAQkKCf/+/v7+AAMDAP7+/gADAwABAP8A/wQFBgIDBAEBAwMDAAIB/wECAvz7/AAA/wUFBQADAvz8+/38/P//Av///wECAQ0ODvz8+wQAAAD/AP/+/////QAAAQIA//8AAP8BAQEA////AAAAAAD/AP//AP/9/fwA//4BAgMAAAUBAAH+AgIAAAABAAEBAQECAQD+/f8AAAMBAQH/AgIA/v4AAQH+AAAAAAD/AP8DAgP+/v4CAgH+/gD/Af8AAf8B/gIAAQADAQH/AAABAAAAAP///wAAAQEAAQABAAAAAAD/AAAAAAABAAH/AAAAAAABAAAA/wD/AP8BAQD///8BAAEAAP8BAQAAAAAA/wH/AQAA/wABAP8AAgEA/gAAAQD//wABAP8BAAMCAAEAAQEAAAEAAPwCAAACAQABAAD7//8C/wIAAv8A///+AQD//v8AAP8AAAEAAAEBAQD//v8AAQECAQL9//0A/v7/AQD///8AAf8BAQL9/v3///4A/wAAAQL9/v4CAQIBAQD+/v/+//8D/f4BAP3+/wH/AAAEAwQAAQD///3+/f78/v4CAQD9/v/+/v7//v8BAAADAwT8Afv+/v0AAQICAgIBAQABAAD+/v4BAQIBAv////8AAAD///4AAQICAQH+AgAB/gICAf/+///+/v4CAwMBAQH//v4BBAT//v//AQD/AAD//v4CAgICAQL/AP8B//8AAAH+//4B/gECAQIBBAD//wD///8BAgABAQIBAP8BAAP///8BAQEAAAD//wAAAQAAAAD///////8AAAAA////AP8AAAECAgL+/f4AAAAAAf8B/wL//////v8BAQAA///9//8BAAABAQD//wD+/f0DBAIBAQAA/gD7+/z49fP8+fUCAP4DAwL+AAD+/QAEBQUAAAD7/PwAAP////4EBQQAAAEFBQYBAQAEAQMBAQEAAAACAAIBAQECAgIAAP/+//78+foBAAABAf8CAQELCQj7+vsEBAUCAQD8+/75+vsGCAT7/PwAAQECAQL///8CAwEFBwb/AP8DBQUDAwP8/Pz7+foAAAAFBAH////7+/r++v4BAgEEBQT+/f0AAP0FBQQHBgX//f7+///4+PgEAwMGBgYE///9AQECAQAA/v/+Af///wAAAAD/AgADAAEA///+//8AAf4AAAL/AP7//gICAwQABAQEAP8A/f39////AQEAAwMD/v7//gACA///////AwMDAgMCAQECAwAA//8AAP7//wD+AAIB/v0AAgL/AQMD/v7+AgIAAgECAAD/AAD//v8AAQAAAAAAAQAAAAABAAEAAP//AQAAAAAA/wD/AAAA//8AAAAAAQEBAQEAAAAAAQAAAAD/AP8A/wABAAAAAQEAAQAB/gL+AP7/AAABAAEA////AQEBAAECAQH+AAEBAgACAAIAAAAEAQEA/wD/Av//AwAA////AP7+//4CAgEC/gL+AP7////+AAAB/v//AP//AAEA/wD/AAD/AAEB////AAAA/wAAAP/+AQD///////8A///9AQEBAQMA//4A+/r+AwQD/////////fv9AQIC/AD9AQH+/fz9/f78AgEB/gEA/v39//7+/wD9AQAAAQEAAAAA/wD////+//8BAAD//v7+AQABAAEA//wAAgMA/v4CBQQDAQAB/wAAAQAAAAIAAP4AAAABAgEA//7+/gECAwMB//7//gL+Af8CAP8AAAAA/v7+AQEA/wAAAQIBAQAB/wD/AP8A/wD/AQAAAP//AAD/AQACAP8AAQICAAH+AQEB/wAAAP8AAP////8AAAD///8A/v/+/v7/AAAA//7+//8AAAAA/v/+/f7+//7/AAH+AQAB/f79AP7//v7+AAAA/wEAAP//AQICAAEB//7//wH/+Pb39/Ty9/Tx+/j2AQH+AAAC/Pz8//7+AgIC+vn5////////AQEB+fj4AwMDBgwMAQAA/P39AQIBAQABBQYFAAD/+/v8/Pz9AQAAAAEBBQUEAP79//79BAMD/wT/BgYF/wAD/fz7BQUDBgYF/v/+AAEAAQAC/AAAAgID/f7+/gAA/v7+/wAA//8A/f39/fz+AwME///+AQIB/vz+BAID/f38AAEBBAEBAAAAAQAB/gEBAgICAQIC/v7/+vr6BP7+/gEB/wEBAf/+AP4AAAEAAQD/AP0C/wEBAQD/AP///f8BAQD/AP/+AAIAAAP///7+/vz8+wL/AgIBAgECAf7+/wMCAQECAgEBA//+AAEBAQABAQIA//4A/QEBAAH/AAEA/wIBAgECA/8AAQAAAP//AAAAAP8AAP7+AAIBAAABAAD/AAAA/wAAAAAAAAAAAAEBAf8A/wEAAQAAAP8AAAAAAP8A/////wH/AQAB/wAAAP8AAAEAAQAA/wAAAQEBAP///wEBAQACAgD//wADAQL+AP/+/wABAAIBAf4CAgD//wEBAQEA/wH/AwMDAP//AP//AAEEAPr7/AIC/wAEAgD8/vz//v//AAD//wAAAAAAAP//AAAAAAEAAQICAP39//7//gEAAP7//v///v8AAAAC/wD/AP8A//39/wAAAQEBAQMABAAAAPv7+/8AAAL//wABAQD/AP39/P///gADAwD////9/P39/P7+/QAAAAIBAgABAP79/gEB/f8AAQAAAAAAAP///gAAAAAAAgMCAgICAf////////4AAAEA/wH/AAEBAgIA//4A/wIBAgECAP7+/QEBAAL/AgMDAAD//wACAf8AAP7+/wAAAAEDAv8AAAEAAQEBAQICAv8AAAEAAQICAf///wAAAP/+/gD/AAABAAD/AP8AAAEBAAD//////////v///////v/+//7+/wAA//////8A/wD/AP8A/v/9/wEA///+/v38/f7+/gIDAgAAAQAAAAIA/wIDAwD/APz9/Pb18+jm4vLt6Pv39gMFAv35/gIDA//+///7/fz8/QAA//z8/AABAfr5+gUEAwP3+P39/QABAAMDAwAAAAEBAvz9/QUFBP8A/wMDBAD+/gH//f8AAAMDAwUFBQICA/z7+gQFBQMDAgMDAgMBAAcFBv7//gABAQEBAf4AAP37/P8AAPv9/fv49wUFBgMEBQcHAwQDBPz8/wEBAAACAQEAAP8A/wYFBQEAAP79/v3+/////gEAAAYGBfj5+f3+/gT+/v4BAQABAQL+/v8BAAEAAAH+//8A/gABAgEBAAEBAf/+/v3///4CAgL//wEAAP7/AAAFBAUC/gIDAwMC/wIBAAH+AQIDAP////8B/v/+AP0BAQEBAgIAAAEDAAIBAwEBAQEAAAD+/v8CAv/9/f4CAgP9/v8CAP8BAQAA/v4BAgL/AP8BAAEAAAD/AAACAAAAAAAA/wD/AAD/AAABAQAAAgAA/wABAQAAAAAAAAEA/wAAAQAAAAAAAAEAAAD/AAABAgIA//////4AAQAA/v8AAAEBAgAA/gAAAQEBAAAAAAACAAAAAwIA//8AAAIDAwMAAAD9AQEFAAD8AP8AAP/+AQACAgH+/gD///4BAAH/AP8BAAD/Af8AAQD+/gABAQABAAEBAAH//f0AAAACAQAAAQL+//3+/wAA/wD///4BAgH+/v37+/v+/v0BAgEBAQb8+/sCAQH9/f0AAP8BAQEDAgH+/v39/vwB//8A///+/v8AAAD/AP///v7/Av79/PwAAQICAgMCAgEBAQD///7+/QH/AgABAAH/AAAAAgD///////79//8AAP//AQD9/f0BAgICAQH/AQL+/v8CAgACAQECAQAAAAABAQD//v7/AgEAAAIDAwEA/wD//v7/AAEAAP8BAQIBAgH//v8AAP8AAAAA/wD//v//AQAAAAD+/v7////+/v79/v3//wAAAAD//wAA///+/////v7+//7//v4A//////8AAP//AP79/f8CAgIBAAH/////AAD//wD29vb19fP39fP9/PgHCQb+/f78Af/9/f79/Pz9/f0EAwMEBAX8/fz+/f4JCQn+/vz29/YDAwQBAgEBAQEBAgL+/v79/v0BAAECAQL//f4A///+/v78+/oEAwL//v37/Pv8+/wGBgYCAQIBAQEGBgUF/gD7/fz//wAICAj3+Pn4/PoAAQEAAQABAAEA//8CAgD+/v0AAwMEBAb5+Pj//v//AAD/AP/8Af4GBQUBAQEAAPz/AAACAgL9/P0BAQH7+vsEAAD+//8BAAD+AAD//wAB/wAA////AAAAAQAC//8AAAD////+///9/v4AAgIC///+AAEBAgEBAAAEAgEC/wIA/v/+AP4AAQEAAAABAAIAAP8AAf7+/f39AgD//AAAAf8CAQEAAQICAgEAAQECAQEB/wD/AP8A//////////8AAf8AAQEAAQEBAgACAAD///8CAAIAAAAAAAD/AAEA//8BAP4BAQEA//4BAAEAAQAAAAABAf//AAABAAIAAQAAAAAB////AQEBAgIC/v/+AAEAAQIB//7/AQIA/gEAAv7+//8A//4AAAAC/wL/AQABAwAAAAEB/wAAAwAAAP8AAQAAAP/+/////v/9AQEA/v/////+AQACAAAA////AQH+////AQAAAAD+AQD//v/+AAIBAP///v7+AAAA/v7/AQIC/////f38AP//AAEBAQAC/f38AP8A/wICAP///////P/8/gL//wD+AQEB/f39//3+/f/9AQACAP///gD/AP7+AQD8APsBAQT//gAAAQEAAAAAAQEBAP8BAAH///8A//3/AP8AAgIC/v39//7//wD9/wAAAQD/AAAAAQEC/wAA/wIB//8A/v4BAgIC//8AAAEAAP8AAAH+/v4BAAD/AQH/AQEC/wD/AgD+Af8A/v79AP///gAA////AP//AAAAAAABAAD//wAAAAEBAQECAQEAAAD///8A/v4BAP7+/v3+/f78/v79/v7+AAD/AgIDAQEBAQEBAQEAAQEB/wEA/wD//Pz78vHu8fDs+/r2+vr5+wD/BAUE/////fz9AgEAAAD//Pz7/f38AAAAAgICAgIBAQEEAQH/AgMCBgUF/P3+9PX1/v7//vz7CwwMBwYG/Pv8/gD//P79/v/++vr6+vsF/v79+/v79/j2+/z7Af8BAQIDAAAA/f7+AQEBAQEBAwIDBAQD+/v8/wEAAQAAAwEB///++/v7AgECAwMEAQEB/v7/AgIBBgUH/f79/Pz+AP//AAACAAEC/fz+AwMDBQMFAAYABP///wEAAP//AAECAf/+/wAB/wAA//8AAf/+/v8A/wD+/wAB/////wEBAP7+/wAAAf38/PwBAgECAv7//gL/Af/+AgABAP//AP7+/gABAf/9/f7+//39/AICBAME/gQDBAEDAgIA/gADAf8A/////wH/Af////3//QEAAAEBAQIAAAABAgABAP4B/gEBAf4B/gH+AQAAAAEBAQAAAQEAAP8B///+AAEB/wAAAQD/Af///wECAAAA/wH/Af8AAAAA/wAAAP///wEBAAL/Af8CAP//AAECAf///wL+Av8BAP4A/wAC/wH+AAIB/wAC//4AAAMBAQAAAAAAAAD//////gL+BAED/gH+/v4A///+/v///wAA/f8A//8A/v7+///+/gAAAP////7//gAA/wD/AP79/f3+/AIAAv7//wL+/wECAv79/QABAAIAAv7+AAEAAQAAAAAAAAAA//8A/wD/APz7/P7//v/+/f7+/v7+/f/9/wEAAf8AAf///wH+/v4A/gEB/v/+/gEB/v78/gADAf4C/wIB/wAAAf///wEBAQABAAECAgH//v//AAAA/wEBAgEAAf///v79+wAAAwL/Av///wAAAP7+/wIBAQEBAQAAAP7+/wEB/v7+AAEBAQEB/v////4A/wEBAv7+/gEBAQAA//8A/wEAAAAAAQAA/wEAAAAA//7+/wD//wABAf////7+/v7+/v79/P3+/f37+/7//v///gAB/wEA/wACAwAAAAABAQEBAQEBA/r6+vf19PLw6/by7f78+AAA/gEBAfb19v7///z8+wsJCAUFA/r5+wABAQUEBf3+/f8A/wgICQMEA/3+/fj3+Pr7+/b3+P/+/wQEAvf39wD/AP/9/QgICAUCAAAGBPb29Pv8+wQDBAkKCPr4+gcICP/+/vv7+wYHBwcFBfv8/QEBAQcICAEDBP798woJCQIBAP38/fn5+QcGBwICAf79/AICAQcGBv7+/vn6+f7+/gQDBAIDAgUDBf7+/QUEBfz8+wEBAwYGBgT//v7/AQICAAAA//8AAP/+/v8AAAAA//7+AAEAAAAA/wAAAAABAQEAAP////////7//v37+/oAAAD///4AAAUCAgP///8B/QECAgIC/f4BAgEBAgEC/wIEAQIA/QEAAPwDAQQAAAIBAv8B///+//7+/v4BAQAAAQECAQEBAQH/AAACAwECAP8BAAL/AAD//wABAf8BAQAAAAEBAQL/AQAA/wABAAH///8BAAD/AP8AAQEA/wAAAQAAAAAAAAD/AAABAAABAQD//wAAAAAAAAEBAgEA/v7/AAAAAQEBAQIBAP7//v8AAAABAgIB/v4BAQAAAAEBAQIDAgIAAgL+AwMC/v0C/QMCAv7/AAAB///+/P39//8AAP/+/vz///7////+//4AAAD///3///8DAgL9//3//v79//4BAQL/AP0A/v/8AP4DAP3/AQMCAwMBAQL//wAA/wD/AQD///4CAgH9/v3//v3+/v3//v/+/v7/AP/+//4AAP8B/wEAAAEBAQICAgECAgEA///+/v4CAwP//wD///////8BAP8AAQICAQIBAAABAAAAAAABAQECAQH/AAABAQEAAAAAAAD9/v0DAQABAQP+//4BAQIA///9/f0CAQH/AAEBAAAAAAD9/Pz///8BAgEAAP4AAP8AAAEAAAEBAQAAAAEAAAABAAH/Af8A/wH///7/AP8A/v/9/f3+/v38/Pv8/Pv9/fwAAAAA/wAAAAACAgIDAwQAAgEAAAICAgL/AAL9/v318/Hs6eb07+z++/cC//wDAQAFBgYA/wD/AP/8AwIBAgH9/v8BAgIFBQYCAgP5+vr6+fn8/P3+/v4DAwMCAgL8/P0DAwT8//wCAwP7+/wGBfwHBAT+/fsCAv///v8JCAoCAwICAgIHBgcHBgcBAQL9/PsFAQH//wD9/fz//v729vf/AgMB/wAGBQUAAP4FBAQA/v0FBQQBAAH7+/sEAwQBAQD//wACAgIC/QADBAQCAgL9/f0BBAUGBgX9/P0AAAAFBQX+/v4E////AAD//gD/Af4BAAH/AQAA/v/+////AP8BAQEA/v7/AgIBAQECAQEC//8A/v7+///7Af79///+/v7+///+AwIEAQICAgMDBAQE/v/+Av4BAgMCAAAB/f39AAABAQEBAv//AQEB//7//f/8AgIDAAEAAf8AAAAAAAICAgIDAP////7+/gEB/wL+Af8BAQEBAAABAP8A/wEAAgD/AAIAAQEB/wD/AAAA//8AAQEAAP7/AAIAAAAC//8AAAD/AQEA/wAAAP8BAAAAAAEBAP//AAAAAAEBAgEB//7+AAMB//4AAgAA//3/////AP//AQEA//8BAgIA//4CAAECAgICAQECAgICAwMDAAD/AAL//QEBAQD+//7+AAD///7+AAD/AAD+//7////+AQEC/f79AP7+///+//8AAgD//wABAf8A////AgEE/wIB/fz/AQIC/v7/AQQA/////wEA/////v39AAD+//4A/v7+/////f39/Pz7AP8AAAEBAAAA/v79+/z////+AwMGAgIC//7+/v77/v8BAgEBAgIEAf8A/gD///79/v3+AAAAAAAB/wEAAAAAAAABAQIBAAD/AQAAAQABAQEB//7+/v7+AwMBAAEA/wAAAP7+/gEBAgIBAAEAAQAAAAAAAQEA/v//AQACAgEB/wAA////AAAA/wD/AQAC///+AAAA//7//v7+/fz8/Pz8/P36/v37/wD/AAABAf8DAAH/AAABAQICAgQEAQAC/v8A/f399/b17+3r8u/q+vfzBQQCAQQD9/b7//8AAAEBBwUGBgYG/fz7BQQD+Pj5AgIC/Pz9AgIDAQEBBgUF/v79AAAAAwQEAwT8BQAB+/v8/fv9/f37AgEKBgYEAwIDAAD+/fv7AQIC/v8A+/r6AP8AAgID/P36Dg0O/v79+fj4BQUF/QL+/fn7AAEABAIDBQcE/Pz7+fn4AwEBBgQD/wABAAD/AgIBAgIDAP4A/wEAAAIA/fz8AQEAAQEA/v79AwQEAQQA//8D9/f3AQEBBP//AAIAAAECAgAA////AAD//wAAAQAAAP8A/v/+AP////7/Af/+AAIBAv///wD//wEB/wED/wD9AAABAQD6//0C/QMDAwMABAAA/wICAv8BAv7//wQAAQEBAgIC/////v39/f/+/gECAgQEBAEBAgD+/wACAQEBAf7+/gEBAQD/AgD/AAAAAAD+//8A/wACAgAA/wABAQD/AAD//wD/AP//AAABAQEB/wAAAf///wAAAP//AAEA/gAAAP///wICAgAAAP8A/wEAAQABAAEBAP8A/wEBAQD/AAACAv///wICAf4AAgIAAAAAAAAAAP7+AAEB/wAAAgIC/wICAf7+AQECAgICAv//A///AP8DAAP+/v39/v8A/wD/AAICAf39/gD//////gD///3+/AEBAP8AAP//AAD///3+/gEAAQAB/gEBAQAA//7//v8A/wH9Af8AAfz+AP/+AAICAv8A/gAA//78/v7///////7///7+/gAAAP/+/gABAAABAQEBAAD///z8/QID/wEBAAAA//7+/v////8CAgABAwD+/gIBAQAAAAECAAIAAgEBAf8AAAAAAAEAAAD+AAADAQICAgACAQEAAQYGBv39/f//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Bgf9+/v7AgIC//3+AAD+AQEE/v7++vv6///+AQEB///++Pj4AwQDAwIGBQYFBP///wABAAD///8AAgEBAf///wEAAAH/AP//AP8A/wABAf//AAAA/wEAAP8A/wABAQD+/gAAAP4B//8AAwD8AAD//gL9/wID/f7+/wIBA/7+/f79/AABAgUFBAAAAP///gAA/wAA//7+/QH/AQD//gAAAQICAgIBAwEBAAAAAf7+/gEBAQAAAQEC/wABAwEA/wD+AP4BAAAB/wL+AQAAAf/+//4B/wEBAAEBAP//AQD//v7/AAAAAAECAgABAQIBAf//AP///wAAAQAA/wAAAf//AAEBAQABAAH/AQAB/wEBAf7+AgAB/gEBAf8AAQECAAD/AAACAQD9AQABAAABAAICAf//AQECAgIBAv4A/gABAAABAAAAAAEBAQEBAAEAAP4A//7//v////7//v7+/v7//v7+/v///wD/AQD//v///gECAgD8Af8A/wEAAAABAQAAAAEBAgICAf/+/wAA////AAAAAP3+/f/9/v39/f///f/+/gD//v/9AAAEAAMDAgAAAv8B/wAAAQEAAAEAAAD///79/QMDAv8A/wIBAAAAAQD/AP///gAAAQIDAwEBAQAAAQEAAgEDAQEBAP//Af79/wEBAP0B/AICAgICAgEBAf8B/wH///8AAQAA/////gH/Af///wAAAQAA/v8AAQD///7+/v8A//4A/v39/Pz9/vz8+/z8+/z8+/39/AH//gIBAAAAAQMDAgQEBQQEBgIDBQEBAQIBAwIDAgICAv/7//Du7PXx8AMA/wwLCff29vn59wH7Av7+/wcGBwIBAgAAAP7+/f39/AQCBP79/f7///z9/fz9/QEBAAQEBPv7+vf3//z8+gAEBAMCAQD//v7+/fv6/w0PDfz6+gIC/v///v8BAAIBAQQDBP3//wgHCP7//v///vn6+f//AAAAAgICBP8BAAEBAwMDBAUEBQUDBAEDA/j4+P/+/fz9/AICBAcGBQcHBv3+/gH/AP///f/+/f8CAPn6/f8B//z8/AIBA///AP////39/QEHAQIBAgQAAQAAAAD/AP8BAP7/AAEBAAIBAQEAAAD///0AAAABAQEAAP8BAAAAAQEA/wAAAAD/AAAA/wD///8DAf79/gAA/wAEBQL//wH//fwAAgABAQD9/wEDBAH+/v/8/PsAAAAAAPv+/v4BAQEBAgICAgICAgMDBAQEBAAA/gEA//wBAQAAAQEAAAECAAEAAAECAv//AQIBAv8B/wH/AgEBAf/+/v4CAf//AQEBAQAAAAEB/wAAAQIBAQEAAP///wD/AAEAAQEB//8AAP//AAEAAAD/AAD+//4B/wD/AAEBAAEAAf8BAQEBAQIAAv///wL///4DAQIAAf7/AQICAP/+AP4AAQEAAAECAgICAwQB/v0CAgICAQECAgL+/v0BAgH//f///v///v7+//79/fz9/Pz/AAD//v//AP8AAAD//v/+/v4CAv79Af4A//8BAQH/AAAEBP4CAgMAAAEBAP8BAQH+/v4AAAH+/v39/v79/PsBAP///v4BAP8AAAH///8A/wABAgH/AAAAAQAAAAAA/wEAAAD////+Av4EAQMBAAD///4AAAIAAQEDAgMAAQL///8BAQACAgEBAQEAAQH/AP4AAAH/AP8B/wACAgMBAQADAwP///8AAQEBAQEBAAEAAAH+AP4B//8A/f0CAgEA//7/AP8AAAD////////+/v79/Pv4+Pf///4A//8B//8AAP8CAQMBAgEEAwQDAwQCAwQDBAMCAgMBAAIAAAH9/f35+Pf08vDy8e8DAP4AAQEJCgnz8vL18vEBAgEDDA8FBAT+/fwAAAP+/v/z8/IEBAUKDA39/fz7+fn/AAAGBwgBAgH+//7//v8HBQYAAQL9/fwGBwYGBAQAAAADAwL7+/wCAgINCwz9/fz/AAEDAAECAgEA/wH6+v4EAwP///78/P0BAgEGBwf9/f37/P0EAwMBAQICAgIEAwP7//4JCAkCAwT//wH8/f4JCAn+/f35+vgAAQEAAAAAAAD7+/sA/wEBAgEDBAP//f4EAwP9/P0AAf4EAQEAAAD+AAAC////AgECAQAA/wEAAQECAgD/AP4AAAH///7/AAEAAAAAAQEC/v/+AP8A//8AAAD//v3/AQL+/P//AAEBAv///gAC/wP//v79AgMFAQECAgL//v4A/f39/f79A/wDAgICBQYGAQEBAAEAAAD+AAAD//79/wABAgEBAQAB///+/v8C//79/wACAQH/AgACAQEA/v7+AAAAAQIC/wD/AgACAAAAAAEAAAACAQD//v8AAv4AAAIB////AQIA/wD/AP8AAQEA/v8AAQEBAAAB/wAAAAD//wAAAf8A//8AAQIBAAABAv4BAAID///9Af4CAQH/AgMCAv4C/gAAAQL+Av4BAQEBAgIC/wICAwMD/v/9/v4CAQH+AAAB/wEA/wD////+/v7+/v////7+////AAEB//79/fz9//8A/AAA//7+AAEAAQEBAQEB/Pv8AwQDAgECAAEBAQAB////AQEA//7+/f3+/wD/////AP///v79/wD+/QMEAwMDAQIDAgACAAAB//7//wH/AgIBAAEB//7//gH9AgADAQECAQEBAwICAAEAAQAAAQECAAAA///+/v8AAQEBAgIDAAEAAAAAAgMDAQAA/v7//fz9AAH//wAAAP8BAgEBAAACAQAA/////v79/v4AAgICAQEA/wAA/f39/Pz7/v38/f37/vz7/wAABAQF/v39AQADAgIEAwQCAgICAwIDBAMDAQMDAgEDAQIDAQEB+fn56+ro9/Ty/Pn49vr5BwcGAf/+/Pv6BAMBAP8ABAH//vr7/vz9AwMECAgJAAIB/Pz8+Pj4BgUF+wYFBwgIBgcH+/r8AgIB/wP/AwMD/v8A/P39BgQD/v799vb7CggIAQAA/v7+/f78BAUF+fr6+/n79Pz0AAEAAAABAwQCBQUEBwUG/fz8/Pv7+vr7BAMEAQEBAAEABQUF+Pf4AAAB/v7+BwkGCwsO8vHyAgME+Pf3BgUH/v7+AAAA/f38BAMFAQEB+fn5BAMD/P7+/Pz8BgcIBQMDBAECAf/+/wEBAAAAAQAA/wEBAgEAAQABAQECAwEB/wAAAP8CAP///wEAAP8AAAH/Af4AAf7+/v//APz9/AD8AQMEAv7+Av7+/gMCAwEAAAABAAD+/P3+AAD8/wQDAP8A/gIBAQEAAQICAv7+/gMAAv///v/+Afv7+gAAAgQFBQAAAv////4AAAL+//8B/////wECAgAAAAACAgD//wAAAAEAAAEBAf8B/gMDAwD+//4A/QIDBAEBAf7/AAH+//8CAP/+//8AAAIAAP7/////AAACAgAAAAAAAAAAAAD//v8BAQAA////AQEAAAABAQEBAf8BAgAC/QH/AP7/AAECAQH+AAEAAAAAAQEBAQEAAQEBAgECAgABAgAAAP//AP8BAAAA/wAAAAD/AAEAAP////7//v78/QAA//3+/v38/f/+//3+/fz8/AABAAEBAQEBAAIBAwIDAgIBAwEBAgICAgICAgICAgD///39/f8A/wEBAf7+/f78/AICAAT+Bv7//gL+/gEDBP////7//wEAAP/+AQACAAEBAv////7//wIAAAABAP7//wEAAQAA/wAAAAECAv//AP8B/wAAAQAAAP8AAP7+/gEBAQMDAwIBAf4A/v/9/wIDAwIBAQICA/8A/wEBAQD/AAAAAAEBAPz8+///AAEAAP/+/v38/Pv7+v37+v7+/QAAAf79/AEBAQAA/wEAAAMCAgIDBAIDAgICAgICAwECAwEBAv4A//38/Pf08vn18wgHBvv79/7+/QD+/f///gUDBP7+/v/9/vn4+vr8/f39/fv8B/z+/QYHBwQFBf/+/xISEv7//wYGBAsKCv/+//z8+///AP7+/vz9/P34/QIAAPn39wMTAwICAwAA/Pj4+QIC+v//AAIDAgD8AQABAAD///v7+wUFBQEBAf7+//r5+QQEBPz7+gIAAAQEBwEBAgECAgH+/wABAv39/vDw7/v6+wgICgIDAggICAAAAfT09P7+AAMDBPj4+P39/fr7+wAAAPj49wQFBfn6/QQBAQIAAf8AAP8BAAIBAAEAAAAAAQEBAAEBAgP/AAAAAP//AP8A/wD///8BAP//AAEDAwD9/fz9/f0AAP/+/v7+/v78/PsCAgMBAQADAQMA///+//7+/v8BAP38AQEDAAMAAgEBAf/+/v4A/f0A+v8AAfwEBQQBAAECAwMBAgMAAP8CAgQAAAD9/v4AAP8CAgICAAD+AAABAQEAAAEAAf/+/v4BAQABAQL//wABAQEAAAAAAf8AAf8CAQIAAP/9/f8CAgEAAAD/AAAAAQEBAgEAAP///wAAAAABAP///wAAAAABAAEAAQAAAQEAAQECAQH/AAAC///+//4B/wEBAQEBAAECAgMCAv8CAgECAwP+//4B/gIBAQEBAgIBAQECAAL9AAH//wAAAQD//////v79/fz8+/v/AP7//v/8/P35xn1DAAABAABJREFU+fn///78/PwCAwL9/Pz//v4BAQEDBAQCAgMEAwQDAwQFBAUCAgP/AP8AAAABAQD+/////v3//v///wH8/PsG/wgAAQEBAAAAAAD+/////vz9//8AAAAEBf//AwMAAAACAgAB/QD//wADBAUAAQAB/wABAP//AAAA/wABAQABAQH///8BAQIBAQH/AAACAQAA/wAAAQIBAAD/AAD+//8CAwH///8DAgMAAAAAAQABAQH9/f7+/v/9/f37+/r59/f9/fsAAQACAQL+/v4BAQABAQEAAgEAAAICAgIDAgMCAgIBAQECAgIAAAIA/f0A//769/X5+vgDAf0GBQX6+/oGBAQHBwYGBAX/AP8CAAMAAvv///708vMOEQMFBQb7+vv//v8A//8DAv/+AAAFAwIAAf4AAP8LCwr7+/z/+fn++v4DAgIAAgEDBATy9PUFAwMICQj9/v8FBAYBAQD5+Pr8/v0LCQv6+/oEAAP8+/v7+/kBAQD/AP77/PoEAwQCAgP+/wD4+PgAAgL/////AQL+/f3+/v8BAAD4+PYBAgH+/gMFBQYLCwr5+vsCAgIAAAABAAf+/v4AAAAGDw4CAwMFAwQEAQEAAAEC/v79/wD+AgECAf7+/wEBAQECAAEBAgAB/wAAAgEAAAD///7//wAAAQD//wAAAQEEAgIC/v0C+/z8///+AP///v7+Af//+wEBAwH+BAUF/wH9/wIBAP/+//8CAP8CAP/+/v8C/vz7//8DBAQE/fz8AgICAAIB+/v6/wAEBAABAgICAP8A////AAEAAP4A//////8ABAQD/v7/AgIBAP8AAAD//wD//wAAAQIC///+AP8A/wIA/wABAgEA/v4AAAD/AQEBAAAAAf8A/wAAAQAAAAD//wEAAQABAf///wEAAP8BAAAAAAAAAAAAAQABAQEBAgIC////Af4BAAIBAP4BAQAAAQECAQECAQEBAAECAwMD/v79AQEB/wH/AQEB/wD//v3+/v///v7+/Pv7+/z6/Pv9AP//+vr5+Pj3/////v79AQIB/f3+/f38AP7+AgQEBAMEAwMEAwMDBQQFAwQF//8AAAAAAgQCAQD/AQACAgEAAP8C+/z7/f38BgEIAQEBAQMCAf4B/v7+/fz9///+/Pv7BAD/AP8AAQEA/P39AwQEAAECAgMD//7+BQIBAQICAgEC/wD/AAH/Af8BAQEAAQEC//7//wIBAQECAQIAAf8BAAABAQEAAP8BAgICAQEBAgEB/////wMCAQL/+vr7+vr69/f1/v39AgD/AAAAAgEAAAAAAAD/AwIDAQECAAICAQICAQMCAQIDAgIDAQEBAQEC+/z79vXz+vn4AQAA/v79AQEAAwMCBAQECAcOBQQEAAAB/Pv8+vz9CQQFAAICAwMDAgIB+/z+9/f1BAMB/vz3BQcIAwsK+/v6AQAA+wEB/P3+/f39BQMC////BgQFCQYH+/v7AgIC/P3+AgD/9Pb2AP/+AAABAgMC/gD+/Pv8/v79CgoJ//7+/P3+/f//AQAB/v8C/v4A9fj2BwcHAwMC///+////+vv8BgUFBQQF+Pn5BAMFAgIA+fj1AwQFBQUD//8ADAwL+Pf3BAQE/wD/AP//BgUFCAkIACuB1H4EAQECAAH+/wAAAP7+/wAB/gEAAf3+/wMCAgAAAgEB/wEBAQEBAP//AAQAAAEAAAAB////AP/9/////gMDAQIC/v39/wD//v7+/v////v8AQUB/f39//////////7/AwP//wP+AAAD/gD/AQAB////AAEAAwAD/wAAAP39BAQD/v79/gABAAABAf//AAEB//7//wD+/gEAAAAA/f4AAQEC/v/+AAABAQAAAgD/AAAAAP7+/wIBAAEC///+//8A/wABAQEAAAEBAf//AgIC/wEAAAAB///+AAEBAQABAP//AAAAAQAB/wD/AAD/AAAA/wAAAQEAAQEBAgEC/wH/AAMA/wD//wL//gICAf/+AQEA/wAA/////v8AAAAAAAAAAP///v7+//7//f3+/Pz9/P38+/r7+fr5+vj5//7+9/f2+/n4/wD+AAABAAEA/v/+//7+////AfsCAQECCAgIBAME+vn4BAQDAAAA/v4ABQUGAgMBAgIDAQEBAwID/wAA/Pz8AAAAAQECAAABAQECAAH9/wL///8AAwIDAQABAQEA/f39BAQCAAD//v79AQEBAAAB////AgEBAQIAAgACAf8A/wH///7//v/+AwECAAABAQEBAAAAAAEAAQEBAAABAQEAAQABAAAB/wABAAEAAP///f3++vr4+fn3/v39AAD+AgMD/wD/AAEAAQH/AP8AAgIAAQIAAAEAAAEB//8AAQIBAgMCAQEC/f7+/Pv77ezp/fv5BwUE+/v7AQH/BQMGAQABAwMFAgQEAwMDAQMEBv3++/v8CwUF/v39AwQDCQMH+ff7A//9BQMEBgQD9fPz+/v9AQEBAQL5BAYH+fj5DAwJ/fz8BwYDAwMFAAAABwcI+vr5+vv7//3/BgYE//8AAAECAAEC/QD+BQYG/wABBAUG//z7AgMDAP8A/wAC//////8A/fz7+/v+BAQCAQAABgYFAgEB/v79BAMCAQEA/f38/f79AP3/AwQGAQED/f7+DQ0N+vn5////BQUF+fn5AgIDBAMEBP78/AL9Av8B/v///v//AQICAQAAAAAAAAACAgMAAgACAQAAAQEA/wABAAEBAQAAAP//BAAA/v7//gMDBP7+/f79/vv7+/8A/v/+//38/P///gIDA////v/+/v/+/QL/Bf///QL+AwIDAwABBP39/f/+/wEDAgEBAf39/QH/AQEEAv///AEBAQECAQEAAf79AAICAgACAP39/gIB/wABAQICAgEBAgABAP7+/QEBAf8AAgIC//3/AQIBAv4A/wEAAAD//wICAv7+/wEBAQECAP///wAAAAH///////4AAAAAAQABAAABAAD/AAABAAD/AAABAQECAQH/AwAA/wL+Av4C/gICAgH9AQAAAQD/Af////7+/v79/v7//v7+//39/fz8/P39/fz7+/r5+fn6+fj29/j39f////b18/38/P/+/QEEAwEBAQD//wACAP/+//39/gABAf79/AYGBwAA//n5AAEAAQIBAwD+/QIDAgEBAv39/QACAAsKDP39DQD/AAMDBAECAv79/QABAQAAAP7+/f8AAAD/AP7+/gEBAv///gD///8A/vz8+gECAwL+AAH+AgIAAQIDBAECAQAAAQIDAQICAv//AAAAAQEBAgD///7//gEB//////7/AgIBAAIAAP8A///+//38/Pn6+fj29v38+QAB/gICAQMDAv8A/wEAAQH/AP8A/wIDAwMDBAMDBAIDBAIEBQEBAQAAAf8AAP7+/vT08vXy7/j28gQCAf8CAvz9+wEDBQMDAwAAAP/+AP8BAAMDBQgJCgED+gsJCfv8/Pr7+//7+gUBAAD8+////vn/AAEDAwUEBgACA/8AAvX19f/9+/78Bv79/f79/QICAwAAAPz7+wICAvj3+AgICAUFBvv8+/7//v38+wMDA/f39gYPEPr6/P7/AP///QUFBvr5+QUFBwkJCQIB//79/P3+/QIFA/38/P0AAAgJCQIBA/j3+Pz++/39/QECBvj29QUEBgsLDAEBAPz7/AQFBAEBAv/5+vb29wQDAgL/AgICAgL8/P7+/v0BAQIBAgP/AP8BAQIBAQECAgMAAAEAAAAAAP8BAgICAgEBAgH+/v4AAAACAP7/A//+/v3+/f0BAgL8/Pr+AP//AP/9/f3+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AQgEBfv8/Pr6+AMDA/v6+/4DAAQDAgMDA/39/QT+//7//v8A///8/P36+/v+//4AAAEBAQAA//8CAQIDAwL9/gIDAgEA//4BAAIAAf8AAQAAAQEB/wAAAQAAAQD//wAA//8A/wABAQIAAP8CAgH+AAIDAQD+/v7//wIAAP8AAgL///7//gIAAQAA/wAAAf///v8AAAD//wAA//8AAP76+fYCAgP9/PsAAP/8+wUDAgP8AgMCAgL9+wQCAwQEBAQBAgMCAQIEBAME/gX+AwQAAQH/AAID//////8CAgL//fwBAQICAgL/AAMDAwP//v7+AAABAAACAgL//v////8B/gH/Af4BAQAAAAAA//7///8AAAAAAAD+///////////+//7+/f7+/v3+/v3+///////9/v/+/v/9/f78+/v69/j19/X39/X5+Pb49/b7+fn/AP///v4BAQP8/Pz8/fz8/Pv6+/sAAQD//f4AAQL9/v4CAAH//v///wAEAwP+//3+/v75//n9/f7//wEJCQkGBgcFAwMBBgYCAQIAAP339vX5+fgAAQMFBgAFBQX//gEBAwMBAgIEAgP/AAQBAQH/AAABAAD9/v39/Pz///8DAwMA///+///9+/sCAQEAA/4B//4A//4A/wMAAAAA/wEBAQEBAAEAAQIAAAD7/Pz39/f19fP5+Pb//v0BAQAA//8A/v4BAQEBAQEBAQECAgEAAAH///4AAAADAwIAAAABAQABAgECAQEBAQEAAAH/Af/////59/f8/PoDAQAIBgUFAAkBAAHz9PMMDQ3////+Af79/Pz/AQAFBAX9/v769/cAAAH8+/sBAwP9/f76+vr8/PwBAPwGBwgDBAX8+/r+/gEAAQP9/v7+AP7+/f3t7/EHBAQEBQcCAwUDBAQCAgL4+fn4+fgIBwcDAAAFBAT1+/oB/wAAAf/6+fkDAgADAQEEBAH29/n+/v0PDw8FBQby8/IEBAMCAQEICQkA///9/fwDAv8A///+AQEEBQb8+//9/fz19fgEBAT9/f8EBAIEBQIBAQH//v3/AAADAgIE//7//f39AP8AAAAA/f39+/z7/P38/fz8/wAAAQICAAEA/wAAAAMAAwEFAQH/AAAB/wAAAgD//v8AAP//AP8AAAD/AAABAAD/AQIAAf4CAAMAAQL//v0BAQEB/v7/AQH/Af///v8BAAP/AP8B/wD+AP7//gL/AAD/AAEBAAAA/wAAAP///f39////AgEB/fv7/wL8AwMF/gAA//79AgT8/fwEAgMDAAD/BQQF/v79BAQF/wIDAQEC/QEBBP4DBQUF/v7+/wAAAgIC/v4C/wQGAgICAgIC//8A/f/9AQAAAAEB/wAAAf8A/wD///8AAAH/AP8AAAD/AAEB//////7///7+//7////+/////v7+AP8AAAAA/v//+vz9+vn79/f39PXy8fDt9fT0+/v7/fz8///9/f39BQYFAwMB/v8ABQYF/v7++vz8//7/AwMDBQYH/Pr5+v37AAEB+/z9AAAA/v/+//79AwICBQYFBQUFAwIC/v79AQEBAQD//wIC/fz8+Pn3/fz7AgICAwMEAQIDAQMCAQICBAMEAAEA/v4BAgMCAgEC/f/9//z/AAMD/v3+AQEAAgIDAf7+AAD////9//4B//4C/v39AP8AAQECAwMBAAEA/wEAAQD/AAAA/fz9+Pj3+/r4/v38AQH/////Af8D/v/+/v7+AwP//wD+AP8CAAICAQACAQEBAQEAAP//AP8AAAAAAQICAQABAAEBAQAB///9+Pj3/fz8//37/f39/f7+CgkH/wIB/f7+/wMD/vz9AwIBCAoJBQUEBwMD+vr5/f7//Pv7Av7+/f39BQMB/AMBAwIG/vz79PTzBAQE+vr5AwMD/wAB+vv7/v79//8CBQQCAwQGCwsNCAoM9/f3AAH8BAUF/wEC9/n5+vz6AAAAAQQE9/r69fX2CQcGBAb8/vj6+vr9+vv8/wD69/f5AwMD//7++fz7BgUGAAD+/v37AQAA/v//AwME+/z+/f7/BwcHAQID+vv6BAIE+fr7AAEABgQDCgkK/Pv6AgD/BP//AP7+/////wABAv////n5+fn5+QcHBwAAAQMCAwIBAvwAAgEGAgICAv0AAAMCAwD/AP39/QAAAAIBAQAAAP8AAAAA/wECAP8AAQAC/wH+AQAAAAICAgAAAQAB/gD/AP///gL//wAAAQAAAP//AQAB/wD//gD/AAABAQAAAAAA/wAAAgEAAAEBAgEAAAAAAP8AAP7+/QABAQH//f/7/v4B/QL+AwICAvv+/f7//fz9/QMEBQEBAgEBAf/9AwD///7//wICAv/+/f//AwAAAAIBAgICAwICAgAAAP8AAAABAQMBAv4A/wABAQEAAf///gD/AAAAAAAA/gAAAP7+/v7+/v////3+//7+//////8A/v7////+/vz8/Pf49/X19PLw7vLx8fX18/r4+P78+v7+/fv6+v38/AYGBgACAP7+/AEBAQMBAfsA/v7//vj4+AcGBQMCA////wAA/wICAQIBAAACAwIBAgABAfz8+wECAQICAwECAwQCAwUEBQIDAwIBAP39+/z9/QP9+wEBAgICAv////8A/wH/AAIDAwQDAwABAAIAAQMCAvz8+/4D/wD+//38/AABAAECAQABAf8AAP7//wH//////wD//gAAAgEBAQABAgEBAP3+//v7+/f19Pn59wD+/QICAAAAAQEBAAAA//79/P8EBAH///7//wMBAAECAgEAAQICAgECAQIDAwEBAgEBAAABAQAAAP7+/vv7/P78/P36+f///gAAAAUGBgQEA/z+//v7+wsHCf8AAAEBAAUEBfv8/AMA/wUFAwH8/f8BAfn5+fr6+QQEAw0KCgICAv3+/vb39wUDAgQEBP///v///vz8/AMCA/39/gABAgMEAfn6+Pj5+vj4+v8BAQYHBwEAAAABAfr6/AMEAwH//gECAxAREgEBAAIEBAACAQIEAwkFBff2+P39/AEAAAYHBAYGBfz8/AIBAP3+//7+/QIBAQEDBP38/P79/vr++wUFBgMBAf38+wECAgICAvz+//v7/Pz6+gQEBAT//////wH8/P37/P33+frw8fL29fQGBgYCAQIFBAUBAQP///8CAgH7AQECA/8A//8AAf8BAAABAQL/AP8CAgIAAAAAAQEA/wABAf///wH/AP4AAAABAQL+//8DAgH/AAD//wIA//8AAAAAAAH//v7+//0D/wD//wAAAQAA/wD+AAAAAAEAAP8BAgAAAAEB//8AAAAAAAACAgH//v7/AAECAgD//QD+//7/AQH+/vz9/fwGAAoBAQMAAP8ABAUCAwP+/v38+/8DBAMD///+/v8DAwMAAPsEAwQBAgL//v8AAwL+AQH//wACAgIBAQH///8BAQD//////v8AAP/////+/v7////+/v39/v39/v78/f3+/f78+/z5+Pj39/by8vHv8O/39/X6+fn7+voA//wA/v8B///+/f349vUBAwIEBAP///4DAwL/AP/5+fr9+/r+/QgGBAT/AAACAgD+/gACAgMCAgMFBQX8/Pv+//8B/PsDBAD4+PUG/gj+//7+//729gf49/cICvn8AwQEBAUAAAABAAEAAAACAgMBAgIBAgIDAwP///4BAv0AAQH//f77+/oEBQT/AAACAwIDAwUBAgECAwMCAgIEBAUDAwICAgIBAQIAAQEAAAAA/gD////29vT6+PYFBAT/AAIDBAMAAP8A////AAD////9/v4DAf0BAAMBAAECAwICAgICAwQBAQECAgIBAgIAAAEAAAEBAv8A//38+/j7+/j9/v4BAgEICAoGBwYD/wD4+vsFBAT9//8BAP/19vUHCQj5+fkA/wH//wD8+/oGBAIEAwj9/fwCAwL//gAEAwQRDw/9/f34+vn+//7+/PsKCAcAAAEBAP8DBAP9+/z9/wAAAP4FBQT7/f4AAP/8/f0A/wD/AQH/AAH5+vv9/f3/Bgf5+fkCAQEGBgMEBQUAAAD8/f0CAQL5+ff+/v35AvkA/wALCgoDBAQA/AABAgH39fX/AAACAwP//f/+AgIDBAX7+/wHBAcDAgIBAwL8/fv7/PkCAf8EAAAB////+vv89/f48/P05OTk9/f1BwcHAQEABQUFAQEB//4GAQEB/v7/AgMDBAUFAAAFAgMCAQD+AAAB/v39AgEBAQIBAAAA////AQEBAgEC/gAA/wAAAgEBAAABAQAAAP8AAAAAAQIC//79/gH9AP7///8AAQAAAAABAAAAAP79AAAAAQIDAQABAAEAAf8CAAEAAQIBAQEBAgICAP8AAAEA/wD/AQECAAH//gAA//38+/r4BAQF//8BAAABAAAAAAEBAP////z/AAAAAP7+//7+AAEA/fz8BAQFAAEBAP/+AAABAAEA/f0BAQEBBAMC/f3+//8A/wD///7/AAD//v7+/v/9//7//v3+/f39+/v8+fr59vX09fTz9fXz+fn3+/v5/Pr5/fz7AwMC/fr/AP/+AQAB//7+AQEA/fz7AQD/AgEBAAIBBAMDAAcH//79+/v8AQAAAwMC/Pz+AAAABQUBBAME/v7+/v7/BAQDBAQEAwMD/v7/AP//+/n5/vz9Bwf6+fj3+fj3/wADAgEDAQECAgICAv4CAAMBAwMCAAEC/v7/AAEBAAACAgIB/f8AAwUF//7+AgICAgICAgIDAQIBBAMEAgMDAwMCAwQDAgEDAQICAAEB/wAA/wH99fb19PPx/fz5AwMCAwIDAQEAAgEC//////7+///+AAD/AAEA/wD+AgEDAQECAAEDAgMEAwIDAwICAQID/////wAAAv8A/fv6+Pb0/fz8DQ0OCQgIAQAB/wD+BgMDCAoJ/wAAAgMCBgYG/P37+/z8+/v7BAID/v7+BQQEAwQDAQEB+/sBAgIC/fz//P39+vn3+fn5BwgIAwQF//4ABQUEBgUH9/f1AwMEAgED+Pj4AQIBAP8AAwQDAAICBQUE/fz+/v7+////CgoK//39+/z9BgUF+vr6+vr+/v8AAQECCAcH/v/+/v4GAwMD/f37BgUF/wD//v8AAAIBAwQFAwQD/Pz7BAQGCAkJ+vr7Dw4O/v8A/Pv8+fv5AP/+AwMCBwgJ/Pn5BAAAAf3+/vn6+fPz8+zs7Orr6vj49wgHBgEBAQICA////wwMCwECAP///wL9Av///gIBAQD/AwACAQAAAAMDAv0AAQP+Af8AAP///wMDAQICAwAA//79AAAAAQABAQEAAAACAP/+AAEA/wABAgEB/wEBAwEBAgEBAAAAAf8AAAECAv//AAEAAP///wEBAgEBAAEAAQABAAEBAQABAQEB/wEBAv///wEBAAICA/////8BAf3+/QH9AQEBA/39/P7//gQEBP///wH//f///QICBAAD/wQEBP7+/vj5+AICAgQEBQABAQAAAQAA/wEAAfv+AgEAAP8BAP/+/v7+/wABAP7//v7+/v/+//z+/Pz9/fz8/Pn5+ff39+3s6ebl4vb08Pv6+Pf29v79/wUDAgAAAAIBAv8C//79/wcGBf8ABP39/AIDBP///gICAwQDA/z8Av/+/wECAQICAv//Av7+/v39//0D//78+wEBAPz8/f7+/gME/gEBAv7//gUEBf7//v7+/vr7+/39/QD//gD//f78+/4BAv8CAv79Av8CAgMEAQACAgAA////Af//////AAICA/7+/f///wAAAgECAQQDBAMDBAICAQICAwEBAgECAQECAQAAAf////////X29PTy8gcGA/8A/gAA/wABAAABAv////79/f39/QQEAwIBAf8AAP8A/wEBAQIBAgIAAQACAgACAQICAv8AAP79/v///v38+/7+/AECAgYGBAYFBfv6+vz8+gQDBP3+/ggJCP8GAf///wMA/wcEBAUGBv/8/v79/fz6+v/+AgICAgYFAwgGCfj6+v73/P8A/wcJBwAAAAUFBfv8/vv7/gAB/AIEBP7//wABAQAAAQYFB/3+/gL///r6+f77+fz8/Pz8/QgJCPr49wMDBAQEBf7//wMDBAkJBvTz8v8C//3+AAEAAAICAQUFBAECAQECAQEDBP77+/7+AgMBAgoLDfz8+/z9/fn6+gcHCfn6+goLC/P09fv6+QUGBAgIBwD/BP79/QT7/Pv6+vn29PXs7Ozp6Of5+Pf6+fj8+/n//v7+/f79/f4TExMBAQAJCf8DAwQAAAABAQEEAwUAAQADBAMBAQACAgP+Af8AAAABAQD///8BAgEA/gACAgIAAAIAAQD//v8CAQL/Av7+/wEBAf8CAgAAAQABAP8AAAABAQH+/////wD//wAA//8BAQEBAgIAAAAA//8CAQL/AAACAQAAAAIAAQEBAQIBAQIAAAICAwEBAQEAAAD//wECAgICAQEBAQH+/PwAAgEA/wH+AP7+/vr//wUAAAACAQIA//79/P7///8DAgP/AgEB/wD+//8AAAADAgMCAwH9/v8A/v8AAgEBAP///v/9/f39/f36+vr4+Pn19PTz8vH29fT19PLv7ewDAgABAQD///36+/v//v0BAAD+/v3///79/QQDBAMBAAICAQH+AAICAQD9/f0A//8GBwX+/f3+/v4AAAL8/P0BAf0BAQEAAAAFBQT7/PsCAgL+/wD39/gHBwcBCgEFAgP8+/v5+fkBAAEBAAD////+/v7+//4A/wH+//7/AQEBAgL/AP8BAQEAAAAAAAACAgIAAAAAAAD///8BAQEBAAICAgMAAAEBAQIAAQABAAABAQEBAQIAAQAA/gD5+vj39vUBAP////7//v////8BAAEAAQAA/v/+Af39/fv9/AMFBf8CAAAAAQABAQEBAgIAAQAAAAAA/wD///8AAQD/AAD9/f/6+vn9/fwCAAH////9/PsA//8HBgcEBQb7/fv9/Pz/AQEEAwT7+/7+/v4A/gACBAQEBAT8+/n//v7/AQH6+fv//AAICQr6+foHBgYBAgL7/Pz4+Pf//wD+///09PMBAQH+/P0CAgIKCQr+/v8AAAD8/Pz6+fgIBgcPDg8BAQD9/fz8+/z+/f0GBAYCAAD9AP/7+vsJCgoEBQX9+/z9/v37+/n+/v0CAQD9/f7++voEAwUCAgD+/f8AAAD//gEGBAX+//8A/v/6/foEBAX///77+/sBAQH29vYEBAMBAgME+vr59PT17u/u6eno8fLx+/v7///+/f3/9PX1/wDqAAIB/wAABQUF/gACCAcHAAEBAQIC/v7/AgMCAAEAAgEC/wH//v3/AwICAAEB//7//gD+AP8AAAH/AAEAAQAAAgMD/v7+AQABAwIB/v/+AQABAgIDAP/+/wAAAAD/AgIC/f3/AP/+AgICAAAAAAABAAEBAQH/AQICAQEB//8AAgECAQEBAQECAAEAAQEBAQACAP8AAQICAQEB//7//QD+BQIDAAMB/v7/AAAAAQAB/wD//f39AAAAAQEAAgIDAAD//P38////AP0AAQEB/wAA///////+AP0BAQEA//8AAP8AAAAAAAAA/v3+/Pv9/Pr89vX17+7u7Ono6ejl+ff2+/r6+//+BgYF/fz8/v7//v8AAgD//f39AwMC/wD/+vr6AAAA//v8BAQDAAAA/wD//wD+AwIBAP4B/f/+AwL/AQEAAQICAgICAwMC/wD//////v79/f39+vr6AAD/AgIA+/v7AwIF+Pb1+vv6Bf39BPz9BAUGAAAA/f7+BAAD/wD//wEABAQGAQEB//////39+wD7/v7+AAD/AQEBAgICAgICAAAAAAD/AAEBAQEBAAEBAAEBAQEB/wAA//8A/f39/v38AQH/AQEAAQAAAAAA/wAAAQAB/gD//v38//0C/v/+//7/AgYEAgEDAQEBAQEAAAABAQAAAQEBAAAAAQACAAD9/f38+/v6/vz8//7///4AAgEC/gH+//7+///+BgUF/f7+AQEBAQAABgYG/P38/f39BgQGCAoIBAQA+ff3AwEB+/8A/P7+////BwcH/f78BAUF/P39+fr7/wAAAQED9/f1AwQEAQAACAcIAgEB/v77/////Pz8AgECCQoK/fz8///+///9BQQEBAUF9/j4AQIC/fz9AQH/Av4D////AQEBBQQEBwYF/fz8AgMDAQH+BgQEAgMB9vX2/v7+BQQDAwIC///++/r6/f39AQEB+/oEAQAA9vb1AQEB/fz7DAwKAwQFBPb29+3t7eLi4uno5vj39P39+wD//v//AP7/+/f29e/t7AcFBAUEA/39/A0MDgALAAAAAQQE/wQABAEBAgMD/gH/AgD///4A/wICAP///wH+/gAAAAEA/wEAAP8AAAAA/wIBAgAAAP8AAAEBAAAAAQEBAv8AAQEBAAAA/wD//wEAAQICAv8AAAEBAQAAAQD/AAECAgEAAQEAAgECAAAAAgAAAQEBAQEBAgAAAP7//v8AAAH+AAQEBgAAAP/+//v8+wQEBAIBAf3//gL/AQICAv7///7+/gECAf/9/AABAQECAv7+/gEBAQEBAgD//wD/AP7+/gEBAf3+/wAAAQAA//79/v8A//z9/Pv5+fj39vPz8u/u7evs6O/t6/r59wMCAfv8/fr5/v/+//z8/AD+//3//v79/v////39/v///wYGBv39/gAB/wL/Afv8/AICAf7+/gMEAwL+Af3+/QICAAEBAAEBAAAAAP////z8/AMCAgIEAwUEA/7+/v39/QMDBPz8+/n59/r49wkJC/z9+gL6AAAB/wECAQL9Af39AgL+AwL/AgQDBQH/AQACAgACAfz7+/0AAQAAAAECAQICAgABAQECAgECAgICAgICAgEBAgEBAgAAAAIB/QMCBAD/AP7+/wAAAAAA////AAAAAAAA/wEAAf7+/f39/QD///8A/wD/AAACAQAAAQEAAAEBAAEBAQEBAQEBAAAAAAAAAPv8+fr49/8A//8A/vn5+wMEAQIA//z+/vj08wsLCgAAAAABAAICAQEBAf3//gQDAP78+/38/AIBAAMEBP7+/wYGCAQDBAABAQUEBQD6/vj2+AIEBAcHB/j6/AMDBAcFCAEDAfv6+fr6+gQDAwMEAwMEAwMDAv7+//Pz8gQDBAUFBAgJCQcHB/Pz8v3+/AIAAwICAQcICQD//wUGBf/+//X18////gEBAQIBAAcGBgQEA/n5+gcGBP/+//7//vz8+gD///v7/AgDBQUEBPz8/Pv7+goKCwcGBgQEA/z8/f8AAQTu7+/h4uLn5+Xz8/L7+/kAAP4AAAD/AAAA///8/P719vLs7AL9/fz39/YTE/n9/v0NAA4AAAABAAABAQH9/AMAAP0BAQIB/f7+/gAAAf8CAQAAAQACAQEBAP79/f4CAgMDAgH/AAAAAAABAAH/AAECAQL/AQIAAP4AAP/+//0CAgEAAAIA//8BAAEBAQH/AQACAQEAAQIAAAABAAIAAQABAQEAAAEAAAACAwL+/wAB/wD/AAD///4EAwX+///+/v39/fwDAwQBAAD///8CAQECAAD+/v0B/wECAgIBAQH//gABAgD/AAD/AP4CAgL//wD/AAAAAAAAAAD+/v3////+/v38+/z6+vr39/fy8fDt6uji4N3z8ez4+Pf9/foDAf/9/fv7/P4BAAD9/f3//////wABAQH8/P4DAwMCAgL8/P0AAf/9AAEDAwL9//4DAgX+/wAEAQP+AgAA/fwAAQAAAf/4+PcEBAUHBgcEAwb9/fsJBgcDAgP7+/z+/v8BAQEAAQD+//4A/wABAQACAgD+//7//v0A//4BAP8BAAAB//8BAAEAAP8BAgIBAAAA/wL+AwMBAQIAAAAAAP//AQABAQABAQH//v7+AgICAAEAAQEAAP8BAQH+/wAAAAAA/wD8/PsDAwH+/f4ABP7///7/AAIBAQAAAAD+/f3+/v0AAAD/AP8AAQECAQIBAgIBAQEAAAAAAAD//wAAAQD/AP/7+vr09fL+/foAAf/+AP38+f0CAQEDBAIEBAT19fUGBQQGBggBAQT+//4CAQAAAAAA///9//3//wIBAQIAAgAGBwcAAP/8/P3//f7+/wAGBwb/AQEBAgMHBgIB/v8CBQYAAwD6+vn5+voDCwr9/v4JCQgDAgL7+/sJCQn7+/oEBQT5+fn9/f37+/vy8vILCwwHCAn////+/f0D/gQGBQUA/wH+/P4BAQAEBgX9/Pz5+fkDBAQHBgf6+voA/QAAAQL///4CAQD+/v7+/v//AP0AAAEEBAT7/fwFBQX9/v4A/v8E5OPk4uLf9vTz/f36///9AAAAAP8AAAEA/wAAAAD//Pz88/Px+/v7+vr6/Pz8/v7+AgMCAwMDAwMD//7//f39AQEBAwIB/wEA///+AgIB/wAA////AQAB/wIBAQD//v78AAD/AAABAQICAAABAAAA/wD+////AAH/AAAAAAAAAgIC//8AAAD/AP///wABAgICAAAAAQEBAP8A/wEAAQAB/v7/AgMA//8AAf8BAQAA/wEAAgEC/P39AgIEAwMC///9/f7+AQH9AwME/f7+AP39AgMC/wAA//7+AAEBBAAB/wD/AP8AAQAAAP8A/gD/AQEB//7+/wAA/v////8A+/v7/Pv6/Pv99vf28vHw6efm6ujm9PPv9fTx/Pz5/Pv7/gIB/v3+/f79AP////4A/v79AP8BAQIC//7+AAEAAAEDBAMCAQABAAAA+/z9BAQCAQEBAgIAAQICAv8AAQMCAv79/f3+BAME/f39/Pz9/f79+/r9+vj8CAoIAP/6/P39/v7/AQECBAMEAgIBAgIDAgIDAgIC/wD//v/+/v//AQABAQEB/v7+APv/AwQEAAEBAQIDAwQA//7+////AP///f/+//7/AAMBAwMDAgIDAQICAQABAAICAAABAAD9+vv6/wAABAQF//7+/f39/v7+AP//AP8AAAEAAQEBAP8AAP7//////v39AwP/AAD/AQAAAgICAQEB/wD/AP8AAAD+////+vn4+/r5AwMBBQUEAgIA+f7+/P39CQsK/vz8/f38/Pz9BAT+/v//AQEABgYG/Pv8BQYEBQQF+fn5//4ABwYF/wD//Pv7//7+Af8AAwQFAAIBAAEAAgIB//z6AgID/f39//0AAwICAgIDBAQF/P36/fz8BwkH/gD//wMC/v///Pz8///++vv+/P38DAwMCQkM/v/+9vb4AgEABAUF+vn6/fz8//7+AQEA/Pr7/QAA/wACAf8B+/z8AwMD/fz9////AgMDBAD//v38/wMC+/3//Pv7AAICAAAB+fv7CAcI9vf2BOPj4PPy8P79+wAA/wMCAv3//wD//wAAAAABAAAA///+/fv7AP/+9f///v///vj59wAA/gEBAQABDwAAAgABAf////4E/gEBAQEA/wAAAwICAQAAAP7+/gD/AAECAf/+/v39/wICAgD//wD/AAAAAgD/AQABAAD/AP///gAAAf8AAAAA/wABAv/+/wEAAP///wD/AAACAAEBAQAAAAEBAP7////+/wABAv/+/QABAQEBAgD//wMBAvz8+wABBQABAQEA///+//8C/wEAAP8AAP/9/wEBAf7+/v38/AICAgICAgAA//7//wL/AgD//v8BAf7///79/f3+/gEBAf7+/ff3+Pf29vLy8err6Ojj4unp5vb08f78+gECAf39/fz9/wMCAgICA/79/f8A/v8AAf7//gT/AQECAv/+//3+/AIAAAMEBAEBAAMBAgICA/39/PwBAQMDAwEBAQD/Af7+//7//vj6+QEBAf3+/QMCBAIDA/j6+gMFBPz+//8AAf7/Av/+//79/fv8/P79/P39BAABAQL+//39/P7+/f39/AL8AgAAAQEFBP7+/gICAwEBAAIBAv8CAP7+/gABAQP/AQAAAAEAAQICAwEBAAABAAECAQIAAv8BAAIBAfv6/P3/AAABAgEC//3+/f//////AP//AQIBAQICAAAAAAABAf//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AP8A/wD/AP/9/f3+Af0EAwT////8/v4AAAAC/v4AAQD+//8C//8AAgAA///+/f0CAwP///7+/f///v0AAAH9AQAC/gUC/AL/AAAA/wACAwIAAAECAv4A//4A//8CAgL/AQAA/wD9/v77+/v5+fr39vXx8e/m5uHm5OL8/Pr19PD7+vgDAwIEBAMBAAABAgD+/v78/fwCAAEBAQH7+/wBAQH///8AAf7///8AAgIEAwP//f7////7/Pz///8CAgH/AAH8/f0BAQEBAgIBAQIBAQD//wICAgEB/wAICAP39/b+/gH9/P//AP38/f4EAwQEBAIBAQIEBAQHCAcDAwP9/fwBAgEAAQACAgEBAgIAAQEAAQD//v38+vgAAQAFAgACBAQBAAAAAP8AAQACAQL/AP8A//8BAQEAAQEBAQECAgEBAAEAAAEA////AP8BAQEFBAQCAP/+/foB/v3+/gD8/P39+/z/Bv/9/v0AAAACAgIDAwL/AAD+//8EAQIBAQEBAQEBAQEBAQEBAAH/AAAAAf/9/P369vUCAfv///3/AP///wH/AAP/AAH9/v4CAgIEBQX7+vv9/f0EBQT+/v/7/fwGCAcB/f39/v0JCQn//v79/f0CAwIHAwj/AP0BAQAAAQICAwD+/v4A/wAAAQHx8/MK/f4MAgP6+/r//f4DAwIDAwMCBAT8+vkDAgH++/v///75+Pj////+AAD2+/MCAwP9Afz8A/r39/cAAAD7+/v+/v35+vf4+AALCwkA/v4EBAMFBQT9+/sCAgL7/PwKCQr9/P39/v/9/v78+/0EBAX39vb4+PgHBwcHCQf8/Pr29vcFBQgCAgEEBAUD/v//AP8AAQAAAAEAAAAAAgIBAf8CAQAA//////8AAAEAAQAAAAEAAQAA/wD//f3+AAD8/Pv6/f37AwMBBAMDAgIBAgICAQAA///+//7+//4BAP8BAAIB/f38AQEDBAMEAQABAAEB///+/f38//7/AAEA/wEBAAIC/v7/AQEAAQEBAQAA///+////AgABAgAA/v7//P/7AQECAP///Pz8BAMDAAH/AP///v8AAP8AAAD/AAAA/f38//8AAQIB//7/AAH/AgAC//38/gICAQID///+/Pv9AgIC/v4CAP///v//AQICAAAB/v7//P39/fz78/P08/Pw5uTi6Ojk7OznAf/+/fz6AP7+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AwQFCQoL9/b1AwICAf//Af///P3+BggG9/f3AAAAAP8A/P3+AwMB/v39CAgI+v74AQIC/P4ACQwOAgYF//7++/z9BQcHAwACDAsM8/T0/P398vPy+vf4Dw8NAgED8vHzAgUF/wIBAQID/fz8BAoHBwUBAvz9/P//Af////wDBP3+/fz+/f39/P3+AQH+/wIBAgEAAf//AP8A/gAAAAABAQEAAQIDAQEA//j6+PPz8g0ODwYHCAEBAgUFAAUFBQIBAQAAAP8A/wD///7//gEBAAAAAAEBAgECAf7//wICAQAAAQEAAQAAAQAAAAD///8A//7/AQEAAP/+//8A/wAAAQAAAQQEBf///wD//wABAf///gEBAAABAAEAAQAAAfz8+/0BAv///wAAAAAA/wECA/4AAP8A/wH/Af4AAfz8/vz9+wECAvLy8uzt7QMBAe7v7uzr5+3sAQUFBPj29ff49wAMDf79+/j49wEAAAIDAgD/Af39/f79/QECAQMCAAAAAf79/QICAgABAwP//wAAAAMDA/////78/wAB/wD+//8CAP39/gAAAAICAv39/v///wAAAf//AAICAAAAAAABAAEAAP8AAAAAAP7+/vz9AAD//wIBAQMEAwD/AP8B//79/gIBAgMEBQAAAv3+/v3//wEC+vf39vr6+AD//gEBAAEBAQMCBAIDAgAAAf39/f//+wMCBP/+/wH/AQEAAAD/AP7+/wABAAL/AAQCAQIBAgAAAAABAP8BAAEAAAIBAf8BAf///+/u7Ono5vv18P7++wH//wAEAPr59/f39QkNDf8A/wAAAAAAAAD/AAABAf7+/v///gAAAAIAAP8A/wIAAP/////9/vf19AD//QgHB/r4/f79/A4NDQACAvv8/AICAgkLDPj29wEAAfz7/QIDAQMAAfz+/vv8/QAA/wcHB/78/QMCAv8AAP4BAAYGBQD7+////f//AAIDAv7+/P3+AP///AcGBP38BPj59gICBAsLCv39/AUFBfv8/Pv8/AQFBAkKCv79//r6+gkIB/v5+fr5/Pb3+Pz8//L09Pn6+wsLC/r6+gkJB/v8/QwEBQAAAP4AAgICA/7+AAECBP3++/8CAfv9/wEFBPb4+f7+/wEAAQkICP38/f3+//z8/fz8/QEBA/3+/v39+wMDAgQCAQAGBQQBAQD//wD9AAAFAgH//gD9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AQEAAAEBAgABAgH///8AAP8BAAAAAAEA/wAAAAD/AQAAAAD/AAD/////AAD//wABAf8A/wACAgIKCw0CAwX8/v/7/fwC//7//////QD6//n8+vsA//8DAgEDAwMCAgIDAgICAgIAAP///wAAAAABAAECAQH+/wABAgEFAwH4+Pv9/P0B+f4ICQgBAgL8/f3++/sBAAD7/fz+/v4BAAEBAQH+/f79Af0EAwIBAwL/AAQBAgP/9gH9/f0FBAQCAgQA//r9+/n7+gQB/wD+/v/8/fz9+/oJCggEBAT6+voDAwT//v39/fz8/fsFBgUGCQkCAgP7+vr9/fwBAQEGBwb7+/sJCwv6+/oFBgcQDxHz9fQBAP/8+/v//wABAgQHCAj9/f36+/z9/wAEBwUFBgb9/v/9/P77+/wDA//0+/sAAP77/Pv7BAP19/b///////////8DAwMEBQYGBQf5+fUICAgEAQAA+vv6AgQDBwgGAAAAAQICBgYH/P4E/Pv7/AME//7/AAAABAUFB/39+fr6/Pz7/wMD/v7+/Pz8AQAAAfz+/P4B/v7+/wD++/n59wH/+Pf39fTz/f7+BwcHBgYHBAQFAgICAQEFAwMDBAEE/f38/f79/wD/AAD///8AAQH/////AAAAAP8A//7+/gH/////AQABAAEC/wD/AP8AAQEBAAAAAQEA//8A/////v7++vr6+vv7+/v8+fn5+fr5AAEBBwcH/Pz9CgoK9vb/+Pf3///++/v6/vn8AgEBBQYF/wEA/v79AQEBAAEA/v/+AQEBAQAA///+AAABAwICAgEBAQICAAAAAAAAAQD//wAA//////8AAgICAAIC//7+/v/+AQICAQEB//8AAgIC/v7+AQEAAgEC/wH/AwMDAAH///8AAP///v///////wAAAAD//v//AQAABAME/f79/f38AP4CAwICAwMD/Pz9AQEBAf//AAABBgUGAQAB+fr5/v4AAgP//f79+vr69vb19/f2/Pv7AwQEAQH/AP8A//8A/v7/BAMCAgMEAgICAQEBAAEAAAEAAP//AQEAAQEAAgEBAAEA/v79AQEAAwMAAAAAAAAA///+AAAAAgMDAwUIAQEDAwMD/Pz9+vj6AwICAgQEAgMCAwMCBAQEAgECAgECAQEBAQEB/wAA///+/wD/AQEBAgEB/wABBAMDCgkLAf35///+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AAEBAAICAwICAwAA//8AAP//Af///gD/Af7/APz+/f79/v3+/v79/v4S//z8+/n5+fr5+fb18vPy8vPz8vX19f39/QUFBQcIBwUFBwUEBQUGBAMBBP8AAPv7+/b49/Tz8vf18fr49/v7+gD//v///gEBAQQDAwEBAgEBAf/+/v39/QMCAgABAQD//wMDAwEBAP78/QABAP///QH+/gD//wIBAgEBAf8A/wACAgIBAwEBAPz7/P39/gEEBAICAfz8/P8AAAIBAgAA/wMDAgIDAwEBAP39/gMEBAUFAQICAP39/Pj59vf39gz6+v8FAP38/AACAQQDBQMEBP8BAgD/AAAFAQMCBAQBAv8AAAAAAQIBAgAAAAICAgAAAP/+/wICAAEBAAAAAAD///8AAP8AARETFBAQEvHv/QIB/v78+wABAAoJCgYGBQAA//3+/P7+/QAA/wEBAQEBAQH/AAABAQIDAwMEAwIBAgEAAAICAv///vj4+P///gMDA/7///z8/QYGBQQEBAQEBPwC/QD/AAQEA/r7/v8AAQYFBgEBAPz7+/4A//v5+fv7+v/8+/r6+goLDAUCAwECAREQEvb28wUFAfj49ggHCgUFBgACAAQEBAIBAvr6+vz9/f3+/wECAQgHBvDv7v79/AD//vv5+v4AAQsK//0BAQkKCQb9B/3+/QEBAQMEBAAAAAMCAwICAgAA//v7+wECAfz8/QICAv/9/vP19P38/vz7+wMCB/f3+P8B//z7/P39/vn6+goJCfv8+wIBAgYGBP/+/vr7+wECAgABAAQDAwP/BQUDAwP7/P37/Pr//v39/f4AAAL//gAAAAL////4+fj8/f0AAAEDAgQBAQEA/wACAgD//v4DBAL//wADBAP9/f79/fz8/P0F+vv6A/oD+vv8/Pz9/v38/v729PTb2dj7+fkYGhoREhP/Cgv///7///4CAQgAAAH+Av4C/gIBAQEAAgABAQIBAAABAgIDAgL/AP8AAAIDAwEBAQEBAAD////+/gT///8AAAACAwMBAQH+/v4AAAAAAAD//wMBAQL/AP8E/gT/////AAH//wD9/v7+//4L/P/+/f75+xMV+/r39/f39vb9/fwBAAICAgABAgIDAgMDAwMBAQICAwL+/f76+/r19PTt6+rw7+v29PL6+vj+/P0AAQAAAAH+/v4DBAMBAwIDAQAE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7/AODg0BAAD3+Pf/AAH8+/v39/UEBAQHBwcBAQIDAgICAQL7+voMCQr4+vj99fn8+/oA/gcCAAIMDAz9/f0DAwMDAwIBAv8CDAoE/wD9/v///wAAAQIBCQkH/v7/AwICAAEA//8B/wH+AwIDAgICAAIBAgIBBAQF/v39/v7/BAUEAQEAAAAB//7+/v7+/v79AQICAgIDAQL///7/BgcGBAUE/v7+/P38+gICBQUG/f7+/Pz7+/v8+/z96ujo9/b2/Pz8AgECEAEA/wD/AAAAAwIC//7+/wECAP8A/////gD+//z/AgQAAgIC//8A/v7/AQEBAQEBAgICAQEBAQEB/////wH/AQEB//7/AAEAAAEBAQD//wD/AgIB/wD/Af8BAAAAAgEB////AQD+/v3+Af/+AAD+AQD9AQD/AgIBAgEDAQIBAQEA//////8A////AP8AAAEB//8BAwQBBAQDABUVAQIBAgEA6+b8/Pv3//79/f39AwMDBgUD/v3+/f0BAQAB////AgECAgUDAAEA/v8AAf8ABAUFBwb//v7/AgIB/wD/AAAAA///AgIC////AgMDAgIC/P38/Pv8AAAAAAD///8ABQMFAgID/Pz9AgIC//7/AQQCAQEC/Pv7+Pj2C/v8/wj/AwICAgMCAQEBAgIBAgEB/v79//7+AAED/////////////v7+AP8DAAEAAQEA////AP///wEBAAAAAgEBAwECAQAC//8A+/z7//7/AwMDCgoKBQYFAgICAAABAQEBAgIDAgMEAQEBAP//AQEBAAAAAAABAP8AAAMBAgAABgcGDg8OBQQDDQwMBwkK7ezp/fv69f7y/wP/CAYH/P399fbz+fsABwUFDg4O+vn5BQQEAP//AP//+vr6AgICAQEABAQEAQMDAQICAgIC+vr5CAcIAgID+//9/wEBAQIC9vb2AgIBAgECBAUFAgIEDQwOBAQD+/r6/P39/v79+vj49fX0/fz9CQkICQkIDg0N/v/8CgkE+/3+/v3/BQQDDA0LCAkHAP8A//8B+Pf4CQkICgoJ9fX2BQUDAgICAwQDBgIG+/v7AQIAAgECCQcJFBMUAAEBBggI7u3uAAEB+fv6BgAEAgABAQECASl71oQE/Pz8/f3+/Pv8AP/9BwcJAP/+/wAAAQEBAQABAQEA/////f3+AQEB//////8AAwQEAv/+//8ABAMEAAEB//7++vv7/f7+BAQEAQQE/P39//7/Av/+AgEC/Pv7A/0CAwEC/f39/f7++/sDAwL7Afr5/P3/9fPz4N3d9vX3GhsaFBYWEhIBAAAABwABBgUG/wD+AP0BAAICAQMB//7+/v8AAP8AAAABAQIBBAIDAAABAQEBAQEBAAAAAQEBAQEB/wH/AAAA/wAAAAAAAf8AAAH+//8BAQH/AAAAAP8A/////v38//78/v77/v36/fz8AQIBAQEAAgIBAQEBAAAAAAEBAAEBAAAAAP8B/////gAAAgICAQEDAwQFAgIC/fz8+/n47+3o//z5AwIC///+/v7//wAAAgIE///+AQACAQIBBAMD/v/+Af8AAAEBAgEBBwcHAAAB///+/v7+/f7+//7+AQECAAD+BAMCAP8EAAD/AgICAP8A/f0AAgIC/gD/AgMDAwD/AQAB/wH/AAAA+/v69PPyDA4OD/v5///9AAD/AgECAgMCAQEBAAD+AAD+/v/+AgD+AwIDAAD/AAAAAAAAAAEBAgICAQAB/wAA/wAAAgABAf8AAAAA/Pz98fP0+Pv9+Pr7BQIBCgkJCw0OAwUFAQIC////////////AAD/AwIDAAEAAAEBAQECAgICAgMCAgIB//8ABAMEDQ0PBgYG+fj4FAUGBwkK7u3p+fr5/Pr5+/v5+fr5AgIBCAgI//7+CQcHAwEB/f38BgYGBQUG+/z7//79BAUGCwsM+vz8/v79/fv8AQAA/vz9/v39BQUF/wAADA4N9/f48/LyDA8O/gAA/vz7/f79/Pj7AwMC/fz7BQUFBgQFBAMC/fz8AgMBBgYDAP/8+vn4CwwP/f4A9/j0+fv5CAgJ+vn4AQAAAgIEAwQCAwMD+fr7BAUE/f39/Pz4DAwLAQEBAwMDAAECBQUFBgYG/v8A+fn4AAECAAICCgkKAwMD//7+9/n3BQQFBAkJCPv7+/f39gQDAgMCAP8AAQAAAAMDBP8A//7+/wD/AAYEBf38/QAAAAAAAP///gMDBAICAv/+/vn6+v7//wUEBgQAAAACAQIBAQX////+/vv8+/8AAAD///3//gMEBAICAgH9/P///wICAQQFA/v6+/r8+/r4+OXi4fn69/j49/79/Q4QEf7+//39/AUEBQMDAgL/BAEBAQABAAAB/v4BAQH//wH9AP4B/gH/Av7+AAEBAP///wICAgECAgH/AP///wEA/wAAAP4CAAD/AgEA/wD/AP//AAAA//78/Pz7+f38/P78/AEBAAUEAgEBAgECAQMCAwEBAQABAQEAAQEBAAABAf//AP7/AP//AAEBAgAAAAQDBAMDBP7//vr5+Pn59/j18QD++wEABQD//v3+/QAAAAMDBP7+/gABAQECAgH+/wEBAQICAgAAAAABAAIBAf7+AP8A/gIBAQADA/7+/f///gAA/wQEAgECBv7+/gD/AQEB+////wIBAv79/gIBAf7+//////79/f39/P7+/fn39vn49/j29wICBQECAgACAAUDBQICAgEAAAEA/v/+/P79AAICA//+//4A/f7+/gMCA/8BAAH////+/v8BAQABAQIBAgQFBAUGCP7/APn7/P0CABAGBwMFBAAAAP///v7+/v7//v8A///9/v8D/gMCBP8AAQABAAABAQAAAAAAAAABAAQFAwIDBwEC/wABAAMEAgQFBAoLDQgJC+zo5/b08AMCAv8AAP37+wIBAfj39wUDBAcFCQMEBPn5+f7+/wQGB/8CBPH09gcGBgMDBff49wQEBQcHBwEBAf39/vj5+P///wID/wkKCAQEA/n6+v38/f8A/wwMDQQDAwcEBPf39wMFBAYFBQIHB/39+wAA/wMDBPf3+O7v9AkKC/37+/Xz8+ro6QoLCQ0MDAYHCfz9/QECAf///QoKCvv7+/39/P39/QUGBv/8/Pz8/AMCAv3+/vv7+/////3+/QoKCvz8+wgIBvf2/P/+AP39/gT+/v729vcEBAUDAgIHBwYA/wD8//wBAQAA/wIBAP4BAQL///8GCAYBAAH+/v4BAAEDAwP//v8BAQMHBQf7Avz//wAA//8AAQAAAQEEAwP+//4DBQX9+/z7AAH/AAABBQD7+/sBAQL+/v8DAwMFBf8EAwQH/gf6Bvv39/js5+n29PTy8vEYGhsZGRsFBQYJCQkNDQ7+/gD//wADAgECAwMBAAABAAAAAwMA/v7///0BAgADAgIBAQIA/////f8AAgEBAgEAAAH//wABAP4AAAECAP7+/wAAAf///v7+/v39+/z6+/r//v0EBQQBAwUA/wAAAP8AAP8BAAEAAQEBAAACAgIAAQH//wACAQH/AAIA/wABAQL/AAECBP8PDhD5Fhjv7uv8+fb9+/3//v8BAAEDAwP+/v8A/wADAgMBAgH/////AAACAAACAgIAAAACAQD///3+//8CAQL/Af8A/wABAgEA/gL+/v7/AP8CAQAAAQH+AAADBAX//v3+//7/AP8CAQICAv4AAQL///76+/rx8/AAAgENDhALDA0AAAABAAH//wD+/v///v/+Af0A/QH/AAAAAQL+/v4BAv4DAAP//v/9/v0DAAAAAgEAAAAAAP8A////AQACAQIKCQkBAP/7+/r5//0BAwP+//7+/fwB//8A//7+/P39+/sABP8C/gICAv8CAwQCAQEBAAD////+//0CAgMBAQEBAAIHBwYCAgL8/Af+/v4JCw4KDA8RERbq5+Px7+r5+PX8/PsLCgoCAgECAgL7+vv+/v/+AAH7/fz/+wD8/fz7+/v/APwJCQoPEBD9/f339/f8/fz7+vsGBQT19vP//v4JCwsCAQIDCQgAAAD19vf39vUGBQb8/PoAAP8CAQL/AgIAAAAGBgcCAwH6+/sHBwn7+/b5+PcGBwcODw8DBAUMCwsICQcGBwj29vn///8DAwL6+vgGBgYCAQABAgL///8CAgMEAwL8/f0A/wEKCgkBAQIEBQT5+fgICAf7+fgEAwIABQX/AgAE+Pf4/f7/AwIBAwUE/v//AgMCAP4DAQAA/P37/v39AgMC/v8BAv8DBgYH/v//AgIB/v7/AQMA///+AgMEAgQC/f39/v7+AgMD//7+AgMCAP4AAgH/Af8EAgICAAAA//7/AAEBAgP9AgMC/////P39AQEB/Pz9////AAcG+fn69fHx8vHw5+bm8STwFhgYEhETAAAABQUHBQUGAwQEA/79AwQE/v//BP///gMCAgH+Af4CAAP/BAQC/v//AQD/Af//AAABAQEBAQEAAQECAf8A/v8A///9/v3+/fz9/f39/wD/AAAAAQICAP8C////AQEAAAABAgEBAQEBAgICAgICAwMD/wEBAAAB/v7/AAAA//4AAAECAAABAgACCAkACw0OCQwO8vDt9/XyAf8ABgYG/v7//v/+AP8ABQQEAgID///+AAEBAQAB/v7+////AwMD/wAAAQIB////AwEDAP8AAv8CAQQA/v///f39AQAAAQH+Af////4A/wEBAf7+/f7+AAD///8AAQAAAgQD/fz9+Pj4AwP09fTz+/n6+/r6BQUFAwAA/gD9/gMDAgMEAP///v7+AwQAAQEAAQAB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AgQB+fn6Av/9/wAECAgI/fz9AAID+/z9//8A9vb3BAMDBgUF/////f39AQMDBPv7+wEBAP///v7//wgICAAA//z8/Pr6/gMDAwAEAwEBAgECAgH//wEAAP///wICAv//AAMEBP/////+/v7+/v39/gABAQIBA/7+/f76+QUHBv////3+/gIBAgIDA/39/QEB/wYIBwD+/wICAQICBP8AAAIBAQABAf/+/wEBAAMEBPr5+f///wMDAwQDAwABAgEBAQEBAwEBAf7//gUFBQICAwD///8AAAEAAP///////wUEBAMEBAABAP39/fv7+/b29/f4+Pf39OHf9OXk4w8QEBQUFBAREQcGCAIFBP/+/v0F/gb//gABAv//AAEAAPz8/P7//v79/fz8/Pf39/n49wQCAvPx8v8AAP7+/fn5+P39+/Lw7vr28gkFAwMC//79/wQFBwEAAvv8/QECAQICAwIAAAECAgUFAwEBAfr7+v7+/gD+AQIDBAEB/wQCBPz8/fv8/AEBAQH/AAMCAvv8/AIBAv/+/wEEAQMCA//+/AEBAf///wD////9/gIBAf3//AEBAgQEBAICAQD/AAEBAgIDAgIDAwMEBP8A//8AAAEBAQICAgMBAgIBAAEAAQAAAAD/AP8AAAIBAQEA/wAA///+/QD/Av8A/wAAAAABAQAAAAEBAAcGBQcHBxMREP35FQMB//f39v/9/NvY1gsKCQ8PEf37+Q4QDggICPz8/AMDAwP/BP7///39/v//APz8/AIBAgAAAgABAQEBAP//AQEBAf3+/fz7+wUGCAIEAv8B/wD/Af3+/ff29fv69wYFAv38+AQDBgL/AgIB/gH+/QEDAvz6+/79/vv6+fn49wYGBv/+/////QMEAf/9/QIEAv8DAf38/QgJB/3+A/r7+/T19AABAAoLChEREPHx8gQEA/n5+AUFBgUFBAABAPb29gkICAD/BgsMC+/v7/f39gcHB/79/QQGBAMCAQcGCQAA/wUFBwACAfz/AAgKCv39/v/4+QgICPr6+QECAQMEA/7+/v3+/QAB/vn9+/j6+A0KCwIFBPv5+/j6+QwHBQT5+fkICAf9//8DAwMBAQEEBAT+/v8CAQICAgICAAEAAQEA/v4AAQABAAH///8A/wD+/v3//gAA//8BAQEEAwT///8AAQP9/v7/+/oEBAX7+/r+/v4A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AwAD//38+wECAgQEBP39/QMCAAIBAQACAwMDAP7+/v////7+/QEBAAQEBf/+/v8A//////7/AAMC/wABAQQDBf8A//////7//wD//wIDAgMDAwAAAP///wIAAAECAwAA////AAECAgECAv8AAgABAgACAgICAQECAwABAgUEAhsaHeISFvT//AEA/hAPD/f4+e3u7e/u7u/v7g4ODfv5+vz6+vf39gQFBv39//v7+/z9/f38/AUEA/8AAf8AAfz+/wL//gAAAP39/Pz7+/7///z09Pz+//f49vPx7vfx7vv38ff28QMCAAMEBAICA///APr6+f7//gIBAgABAAUFBvv7+/r5+QIBAvr5+QsLCwMCAwYGBfDw7gH//gQDA/T19f/+AAME/QEBAv3//QEBAQEB//f39gICAgQEBAICAfDw8AAA/w0LDP7+/v7//v7+/gIBAgIDAfz9/QACAgMCAv38/f78/u/07g8PEAcJCQcICQUFBQAA//z8+/7//f3+/ggGBP7//vz7+wD///78/QgHBf79/QAEBQcGBPf29gMDBQUFCgQEAwIFBQUCAwMHBwcDBAP+/v0BAQEAAAD5+vr6+fr9//8CAQECAgEEBAUAAAEAAQD+/v4AAQL+/v/++/0AAAL/AP8BAAEDBAMGBwcBAQIFBQUAAAL+/v3+/v4A///+/v78+/wHBwcAAP7//gACAgH///4BAQABAgH9/v3+/v4CAAEAAQH8/PsICAgFBQX39/cDBAMBAQIBAQEBAQH9/v0CAAH+Af78+/z/AAAIBAT///8AAAD8/P3//wADAQH/AP8CAgMCAgL///4CAgL5+Pn/AP4AAAADAwQBAf0BAQL//wAHBQQFBAX/AAADBAP7/Pz7+/v9/fwA/f4RDgsJBgT+/v0HBwcFBAQAAAD19Pb+//8EAgQDCgv9/PoCAgMCAgL9/P79/v/8+vsDBAMEAwH9/gAAAv8IBggBAQH8/fwCAgL8Av4FAAQBAQT8/PsBAQEAAP/9/v0D/wIBAgEFBQUDAwP+/v7///8BAQECAQH/Af/////+/v4AAAACAgICAgH6+vr+/v7///8BAQEAAAD+//7//wIGBgYCAgIBAgL+//4B/wD/AAD/AP//AP8AAAABAQICAwMCAwQAAP4DAwMDAwYCAQICAgMCAgIBAQEBAgIDAgL/AAD/AwEPExMX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\\n\",\n      \"text/plain\": [\n       \"<IPython.core.display.Image object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    },\n    {\n     \"name\": \"stdout\",\n     \"output_type\": \"stream\",\n     \"text\": [\n      \"Time elapsed: 0.228\\n\"\n     ]\n    },\n    {\n     \"data\": {\n      \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAAaGVYSWZNTQAqAAAACAACknwAAgAAACkAAAAmkoYAAgAAABgAAABQAAAAAE9wZW5BSS0tNTRkNmFiODVhMThiZTdjZTE5YWE4ZWQ5ZTVhOTFmMjIAAE1hZGUgd2l0aCBPcGVuQUkgREFMTC1FAHKzUHkAAQAASURBVHgBACuB1H4Bvb2yAAICAf8A/wAAAAAAAQAAAQABAAEBAAAAAAD/AAAAAAABAAAAAAAA/wAAAQABAAAA/wAAAAAAAAD//v7///79/f36/Pz3/Pr2+/n0+/j2+Pfz9vTw/Pr2AP//BQcGCQsM/wEA/v//AAABAQAAAQECAgIEAQACAAAC/wAAAP/+BAMCAgMBAgECAgIBAgICBQUGBAQFAgQEBAQHBQcKBwgLAwUJBQYKAQAGAAECAQEEAQED/v7//P7+/v79/P3+/f39/Pz8/Pz8/f39/v38/v7+/v/+//3+/gH+AP//AAH///7+AAAAAAEAAAAAAP8AAAD/AAAA/wD/AP//AQEB/wAAAAD/AAAAAP8A/wD/AAAAAQABAAAAAAAAAAD//wAAAP8AAQAAAAD/////AP7+AAD+AQD/AAD/AP8AAAD/AAAAAAAB/wD/Af7//wEB//7/AAEA//8A/wAAAAEB////AAAB/v8CAAAB/gAB/v///v7///8B/wEB/wABAAAAAAECAAICAAECAgMCAQECAQMCAwQFBQUFBgYHCAYHBwYHCAYGBgcHBgYFBQMFAgQDBAIDAQIBAgIBAgACAAEAAQAA/wAA//8B/v7+/P39/Pv6+fv8+vv7+fr6+vv7+vv5+/v7/Pv8/v79///+//7+AP/+///+AP/+AAD+Af//////AAD/AQD+////AP/+AP/////+Af//AAD/AP/+/////wD+/v7+///+//7+/v7//v79/f39/v79/v79/f39/v7+/f79/fz9/f79/v3+/f39+vr8/Pz8/Pz8/Pz8/Pv8/f39/P39/f39AQAEAAEDAwMDBgYFGBgWGhkXFhUSCAT+Afz3/fv1/Pz4/f78AAD/AQEE/wAD/wAEAAEFAP8C/wABAAEBAAAAAAAAAAACAP//AAEB//7+AAD//v7+AP8BAP////7+AP/+AP/+/wD9AP/+AP7////9/fz7/vz7//37/v37APv6AP36//39//78//76AAH8/wQEBQwQ+wMN8Pb/6+/4BP8AAAD//gAAAQAAAQAAAP//Af8BAAD//wAAAAABAAH/AAAA//8AAAD/AP///wAAAAAAAP8AAP///wD/AP8A///+/v79AAD+Af7///3+/vz+/P79/AEA/gICAgEAAQMDA/z9+wACAQEBAgL//wABAQIB/wH//f8A/wMCAgEBAgABBAEAAP/9/v8D//7+AQH/Af4A//0AAP7+/v7++f3+/Pv69AMGBgUFCQUECAMECAEBAwAABQABBf7/AP3+AP39/vz8/fr7/fz9+/38/P39/P/+/v7///7+/v///v8A/wD///8A/wEA/wAAAAAAAAD///////8A/wAAAP8AAAAAAAAA/wAA//8AAAD//wAAAAEBAQAAAAH/AQEAAP8A/wEBAAAA/wEBAAAA/wD+/wEAAQH//gAB/wEA/wEAAQEBAAD/AAEBAAEAAQD/AQH//wAAAQD/AP8AAQAAAAD//wAAAAABAf4AAQABAv4AAgABAQAAAQAAAgABAgADAwABAQICAwACAwECAwECAwIEAwIDAgIEBAUFBgcHBggGBwkFBwkHCAcHBgUFBAQEAwMCAgICAgEBAQEAAQABAQD/////AP8A//7//v39/v7+/vsEAgQE+wMCAAEA/wAA//7//P3+/QH9AAD/AP///////v/+/v/+/f///P///QD//wD//wD//////f///gD//v/+/v///////v/+/f/+/v3//v/+/f79/v39/P/+/v3+/Pz7/Pz9/P39/f39/fv7/P7+/fz8+/z9/vz7/P38/Pv8/vz7+/j5+f38/fv7/Pz8+/z7/Pz8/P3+AAIDBQkJChAQDw0ODBEQDhMSDwgFAQH++/79+P79+v/+/QEAAf8BAgABAgAAAQAAAQABAAABAgEAAAEAAv8A/wD/AQICAf//Af7+/gEBAAAA/wEB/////gABAAAB/wEAAAAA/wD+///+//39/AD//QD//QD//v///gD+/f78/AH9/f/9/P///f///gAD/wIDAwACBPv9//T3+vDz9gT+/f8AAgEAAP8A//8AAAAAAAAAAAEA////AAEA//8AAAD/AAAAAP///v//AP8A//8AAAD+AP///v8AAAAA//7//v7+//3+/fv+/fz9/Pv8/Pr9/vsCAgH/AgMA//7//v0A/gICAQICAAABAQEAAAAA/v//AP8DAgEBAP8AAP0B/v4AAAICAgEB/wABAQQBAQT//wP//QP///8AAP7+/vz+BQIAAP7//fz9A/gFBQkCAwQBAAQAAAT/AAT7/P/6/f77/P77/P37/Pz8/Pv9/Pv+/v8A///+/v/+//7/////////AP0BAAH//wAA////AP7///////8AAAAAAQEA/wAAAAAAAP8AAQAAAQAB/wAAAQECAQECAQIAAQABAAABAgECAP4BAQABAAEBAAACAQEBAAAC/v4BAQABAQAA/wABAAEA/wABAAAA/wEAAQEA/wAAAQIAAAAAAP8AAAD/AQEA/wABAAAAAAADAQD/AgIBAAIBAgQBAgIAAQMAAgIAAgIBAQMAAgIBAwICAgMAAgQEAwQEAwUFBAYHBQYIBgYHBgUIBQYFBQMEBQQDAQMCAgEAAQEBAQABAAH/AP///wD////+///9Avz8/v0AAP/9//0D/QID+wEBAQAAAQD+/v79/f38+/r9/f3//v39/fv+/P3//vz+//3//v3//v7//v7+//3//v3+/v3///7+/v7//v39/v3+/fz9/f/9/fv+/Pz9/f39/P39/fz9/P37/Pz9/Pv8/f78+/v7/Pz8/P38/f36+vv8+/37/Pv8+/z6+vz8/f39/P78/fz8/P39/f3//gAGBgcVFQUREBEdHBsXGBYLCQYD//n9/Pj+/fn+/vwAAAACAgP+/wAAAQIBAQMCAQT/AAQA/wIAAAH//wH//vwAAP79/QEBAP8A/wAA//3///4CAAH+AP7+/wAAAQAA/v7///8A//4B//4AAP7//vz+/fwA//4CAf/+AAACAf8BAP/+//7///0AAP4AAAECBAX/AAP3+Pvz9Pft8PME+vr6/wABAAD/AP8A/wAAAP//AAAA/wAB/////wD/AP8A/wAAAP/+/v7////+///////+//7//v//AAD////+/v79/wD+Af/9AgD5/f38AP77AP/+/wEBAwQE//77AgEAAwD+Af8BAQH+BAIF/v7/AP8AAwMDAQIC/wD/AP/+AQACAQEBAQABAAACAgD/AP79/wIB//78/wEB/vwAAwMCAAED/gD/AP4AAP7+AP74BAQEBAQGAQH8/wADAgEBAf/8/fz7+/r9/f0A/Pv7+/v5/Pz8/v7+/v7+/f7+/v7+//7+/wAAAAAAAf8A/wD/AAAAAAAAAAD//wEAAAABAAAAAAAAAQECAAAAAAH/AgEAAQICAgADAwICAQEBAgICAgEB/wL/AgAAAQICAgEAAP8DAQH/AQABAQABAf//Af8AAQEBAP//AAEBAP8AAP//AAAB///+AQAB/wEBAQAAAQABAAEC/wECAAABAAIBAAABAQICAQICAAICAAACAAIB/wABAQIBAAEBAgACAQACAgECAwIDBgMEBgMEBgMFBQUGBgUFBgYEBQQEAwMDAgMBAgECAQABAQEAAAAB/////v7//wL+AP7///4BAf8A//7//v7//fz++/39+/z6+vn6+vn5+Pj3+fj3/Pz8/fz7/v39/v37/f38/f38/v/9//7+/v38/v38/f39/v79///9/v3+/f38/f39/Pz8/f39/Pz7/Pv8/fz7/Pz8/Pz8/Pv8+/v9/fz8+/z8/Pz9/Pz8/Pz+/Pz8+/v8+/z+/f39/f39/fz+/f7//f7////+AP//AAD/AgEAAwQEDQwMHBwaIR8dDwwHAf/3/fj2//33/v79AAEBAQECAAADAQEAAAEEAAAEAQEEAf8D/wEB//8AAAD/AgECAAAA/v/+/v//AP79AP//AP///v/9/wAAAP///v7+//3+AgEAAP7///7+AP7+AQD/Av/9/f37AP79AP77Af/+Af7+AQD+//39/wH9AAIDAAMH+/4D9fb37O7y6+7wBPP09QEAAP7//wD//wAA//8A////AP////////////7//v/+//7+/v/+//7+/v7//f7+///+//8A/wEAAP7+/v7//QAA/gYEAQcG/wP//P///QAB/QIBAAADAgD8AwEB/gD//wL/AAIAAgH/AAMBAwECAwEBAwEAAQEBAf8AAwIAAgEBAv8AAQEAAv/9/v8B/gIB/f4AAQH/AwEBAwAAAwD/A/79AQD/AAD//f/+/f/+/wD+/gMEBAECBAUEBAIDAQMDBQH///X8+f79+P38+/38+/n5+fr8/P79/P39/f7//v///wAAAQMCAgAAAAAAAAEBAAAAAf8BAQD/AAECAgEAAQACAAEBAgICAgEBAAMCAwMC////AwMCAgAAAQICAAD/AQABAAIAAQH/AQEBAAEAAwEB/wIAAQD/AAIBAAAAAAABAAAA/wABAAAAAf7//wEBAgAAAQEAAAABAQABAgAAAQEAAgABAQEAAgACAgECAv8AAP8AAAAB/gD/AQACAf7//wIBAP4A/wMAAAAAAAIBAwICAwUDBQcHBQgGBgUFBQMCAgIBAQEB/wD/AP///v////4AAAD/AP/+/v0A///+/v////z9/fr7+/j5+vj5+fn4+Pj29/b39vT19fb19fX39fr5+Pv7+/v7+/z8+/39+v38/P79/P79/P39/P7+/f38/Pz8/P39/P39/f78/Pz9/Pz8/fz9/fv7+/37+/z7/Pz9/Pz7/Pv8/Pz7/P79/vz9/f39/v38/f7+/vz9//38/v3+/v7+/v//AP7+/v//AP8A/wAAAf8AAAIBAAcGBQgICQ4PDh4eGh8dGhEOCgL/+vz6+P389/79/AEB//8AAgAAAQEAAgAAAgABBQAAAwEAA/8AAP///wEAAQABAQABAf///gD/AAD//wD//gH/Af8AAQAAAQIA/wACAAEAAf7+AAH+//79/P79/f/9+v///AD++gD9+/79+wD+/QH+/f4A/v///gEA/gAAAAIEA/8BAvb5/vL1+uvv8+/y9ATw7+////8AAAD+/v0AAP/+//0A/wH+/v3+/v////7+///+/f3+///+/v7//v79/v79/v7+/f4AAAADAwP9/f39/f0CAgAMCwcPDQcIBf4BAAEBAAH/AQEAAgEBAwIDAf8EAQECAQABAP4B/wMEBAQCAgT+/wAAAQEAAAMBAAIBAAABAQP//v7+/wACAgcCBAL//wD//gAAAQEAAAD////+/v8CAQH//wD9/P4CAwABAP37//39/fkEBgYC/wYDAwMKBwQHBAoMCwjv8ALu/O4AAP0DAgH+/Pv5+ff8/v39/v4A//4AAQMBAQICAQABAgIBAAEBAQD/AAEAAQECAQACAQMAAgIDAgL//gEDAwP+AAABAAAAAQACAAEA//8AAAIAAAEBAQEAAAEBAQABAAEAAAAAAAAAAAAAAAD+/wAAAf8AAAABAAAAAAAAAP8AAAH/AAAAAAAAAAABAAEAAAAAAAAAAAD/AQEAAAEAAAH+/v8BAwD///8AAAAAAQEAAAEBAAH/AAECAAEAAQACAgICAQEGBAMFBQQEAgMBAQAB///+/f77//3//AAB/wD+///+/v////7////+/v/+/v79/f7+/v38/f35+vr3+Pn2+Pf29/fz9PX09fTz9PPz9PT5+fj4+fj8+vr5+/j7+/r8/Pv8/Pv9/Pz9+/r+/f79/Pv8/fz8/P39/Pz8/fz+/f38+/v8/P38/f39/P3+/f39/f/9/f39/v3//v/8/v7+/f7+/v/////+/v4BAAH+/v//////AP/+AAAB/gD/Af8A/wD/AP8BAQIBAQEBAAIICAkZGxkeHBkmJCMWFREEAvz9+fX+/Pf///wAAf8AAAIB/wEAAAL/AQIBAAMAAAMBAQMAAAL///4BAAABAQAAAAEAAAEA/wABAP8AAQD/AQIAAQEA/gACAQEAAP0AAAABAP8CAQH/APwBAAACAQD+AP8A//3//vwA/voA/vv//f4B/v4A/v3///3/AP0CAgICAwf8AAP0+Pnu8vXw8/b7+vwE6uvr/wD////+//7+AAD////9/v8A//7+/v7//v7+/v/+/v3+/v///v7+/v7+/v79/f7+//7+//////8BAAD///8ABgcE//8MBwYCBgQEAwEEAQEBAQEAAgICAQH/Av78AP/7//8AAgEABQQBAgEA///+BAMFAQIEAgEFAQEDAAECAAAA/f38AAEBAgID/v8BAQMAAAD//gAAAAAAAP7//gD/AQL//v4CAAAC//3+AAD//wAA/v/8APv/AgL9AwAGBP//BQMGBAQECxkVBAUC7e3u/AP9AQEC///+//n4/P38/v/+/wD+AQECAQABAgIBAQEAAAICAAAAAQAA/wED/QH+AQIC/gEBAQID/v79AgID/gL+A/8AAP8AAAMBAQEAAQEB/v4C/wIAAAECAgH+/wAB/v//AAABAP8AAQAA/wAAAf8A/wEAAAABAP8BAQEA////AP8AAAEBAP//AAEBAQIAAAD/Af//AAH////+AAEC///+/wACAQAA//4A/wABAQIAAP4A/////wH/APz9AwP9+vr7AwH3Af79/Pv8+QIDAAD//wD+/v79/f39/v7+/v7+/f39/Pz9/v7+/f39/Pz8/Pz8+vv7+fv79vj49vb29PX19PP29Pbz9PX09vb2+fn4+fn5+Pn4+vn4+vv6/fz7/v38/Pz8/vz8/v3//v78/fz9/f79/v7+/v7+/v7+/v79/v8A//3+/f7///7//wD//wD/AP//AAAB//7//wAAAP///wD///8BAP///wD+/wAB////AAAA/wAAAP//AAAB/wABAgEABQUFBwUGFhUULCsoLiopIB0bCAYE/vr1/fz2/v37AP8BAAAEAAAAAAEA/wABAQABAAEDAQEDAAABAAAAAQICAP8AAQH///7+AP8BAQABAgEA//8C/wEB////AQH/AP8AAQAA/v/9AP79//z8//39/v39AQD/AQD///79//38AP79Av/+/v/9AP/+/wD9/v78///8AAMIAQYH+/4C9Pf27O/y8/X2+Pj5BOjp5/8BAP///gD+/////v8A/v7+AP//AP8A/v79//7//v////7+/v/+//8A/v39//7//v//AP//////AAIAAgECAAYGBAIBAAkIBwoIBQQEBAQEB/z8+gUDAwH///38/AEBAQIBAAQCAwQBAAECAwUGCQMDBP//AP8BAP/+/P8AAgECAwMDBP////3+/wEB/wEBAv8AAQL/AQEBAgABAwEAAP/+AgECAgACAAEAAwD/AgD+AAEEAf7+/////gAC/QH+AP/+/wIEBAID/x0YFgsIB/L09/j4+QUFBPHx8QICAvv8/AACAP//AP//AAAA//8A/wEAAAEBAQEAAf8AAAEBAQAAAf8AAQH/AP7/AAEAAP4AAAL/AP4A//4A//7//v3/AgAB/wIAAf7///0BAP8A/wL///8AAQEAAQAAAAEAAf8AAQEAAQEAAf8AAP//AQABAAEAAf//AP8BAAD+/gD///8A//8B/P8AAv8BAQABAf4AAv8AAv7///3/AP4AA/8AAf8AAf8AAAEBAQICAwUEBAYEBAYEAwgICAcHBgMCAv3+/f38+/r8+/v8+/z7+/n6+vr7+/r5+fr7+/r6+vn5+vn5+fj6+fn6+ff3+fj4+Pj3+Pf39/f39vj5+fr5+fr7+vz8/P39/P7+/v79/f///v///v//AP/+/v///wD/AP///v////8AAAD/AP//AAAAAP//////AAAA/wAAAP8A/wAA/gAAAQD//wD/AP8AAP8AAAD/AAEAAP4A/wAAAQAA/wEBAQD/AP8AAAEBAP/+AAAA/wQEBhEPEBEQDyopJSwpJyEfHA4KCP379/77/P79/AAA/gECAgH/Av4A/v///wEBAQEBAwEABAEBAgAAAv4A/wH/AP8A/wD/AAD+AAAB/wEA/gAA/wAB/v///wH///8AAAAA/f39/f/+/P/9+/39/P78+//8+wD/AAIA/f/9+wD8/AAA/QAA/wIA/wAB/gD//gEA/f8DAQEEBAACBvj5//Hy9u7y9Pn4+/z6+wTp6+kAAQEA/wD/AP////////8A/wD/AAD/AP////8A///+/wD///8A/wD///7/AAEAAP///wD//wAAAAABAAECAgH7+wUFBAUODPj4DAgFBAMDAgUCAv4B//8EAwQAAQECAf4DAwADAgAA//sB//7++/3+/QL///8BAgP/AQMAAQUDAAIBAQEAAAADBAIAAAMAAP/+AAEAAQIDAgQCAgMAAP8BAQL/AQEBAgIBAAEBAgIAAQD/AAIBAAH///3//QH9AQH+/f0A+/wCA/oHCP8SDwsPDgz3+fzu7ggIBwf09fb29/T+///+/v/8/v4BAAD8/f0BAgEAAAECAAEAAQEAAQEBAAEBAQIBAQABAQIDAwIDAgQCAwQEAgMDAgECAQIBAAH/AP7/AAL+AAAA/v/+AAAC//8AAAAAAAAA//8A//8A/wIB/wAAAAD///7//wD+//8A///+///+/gD///7+/gD9///9/wD+///9/v/9/wD9/gH9/v/9/v38/f/7/v/+/v/////+/v/+//4A/wABAQECAgECAQEDAwEBAAD////+/v38/Pr7+vv5+fn4+vr5+/r6+vv5+/r9+/z7+/v6+fr7/Pv6/Pz7/Pv8+/39/f39/f3//f3+/v7+/v39/v///v4AAAAAAP8A/wEAAAAAAP//AAABAAAAAAABAAD//wAAAQD/AP8AAAEA/wABAQAA/wAAAf8AAAEAAP8AAAABAf8A/wEAAAH/AAAAAf8B/wEAAP8AAQEAAP8BAAAA//8AAAIA////AQABAAD/AAIBAwEDAgEHBwcVFRQsKicoJiMgHRsNCwcB/vr9+/X+/fj///0AAAEAAf//AP7+/v4AAQEBAQIBAgQBAAMAAAIAAAAB/wH+AP8BAQH///8BAgAA//4AAP8A//wBAAADAgD//wD9/f7///3//vz//fz//f0A/v0A/v4A//8B/vz//fsB//wBAf/+/P4BAP0B/wD+/wAB//wAAP0BAwQBBgj+Awb3+vnz9/v09vn6+vz8/P0E7/DyAAEAAQAA/wABAQAAAAAAAAABAAEAAP8AAAH//wD/AQAA/wAAAf8B/wEBAQAA/wAAAAABAAAAAAABAQAAAv8CAQD8+vn69vj6+/z+//8FAQIEAgH7/v39AgMDAwMEAf35Af78AAAA/wD//v8B/QH5AAMEAwQJAwIIAgUJAgQH/wACAAAAAAAA/wAA//4A/gAAAwACAgMDAAACAgEB/v8A/wD+AAACAP//AAIAAAH/AQECAP4C/wIBAgICAP8BAP8A/v7/AAD/AP///Pr4AgH/AgIDDw4JDAsKDxAP7u7w7O0D+fr6+vr8A/78/wEBAPv9AAEC///+AP/+AQECAP8AAQECAAABAAAAAAAA//4A/f/9//8A//39/AIBAwAAAQIBAQEAAAECAAD/AQAAAf////7+//////39/v7///7+AP///v///v3+/v7+/P39/f79/v7//f3+/f7+/v79/Pz//P3//f7/+/7+/P39/P3+/Pz//v7++/39/Pz9/P3+/P38/f3+/v7+/v7+/wD///8A////AAD+/f7+//3+/v3+/v79/v/9/fv9/Pz8/f7+/P79/f39/v7+//7+/v7//v39/v/+/////v//AP8A////AP8AAAD/AP8AAAEAAAABAAD/AAEBAAAAAQABAQD/AAACAAEA/wD/AQEB/wAAAAABAf8AAAAAAQD/AAEB/wAAAQEB/wABAQD//wEBAP8AAf8A/wEAAP8AAQEBAAAA/wEAAf8CAAD//wABAf8AAQL///8B/wEAAAD//wAABAMDCAgICQcJExIRIiAdLywpIB4dDQwIAQD8/Pv3//74///7/wD//wAA/////v//AQAC/wICAAEDAAAB/wAAAAEAAQAAAP8AAQAA/gD/////AQD+/wD+AP/+AAD///7////+/wABAQD/AP//AgD//gECAAECAgEB///9Af79//38AP77//79AP//AQEAAP0CAP/+AP//////AAMBAwUFAwYI+P8D9ff67fH09vf3+/v6/f38BPf4+gEBAAAAAAICAQAAAQEBAQICAgAAAAAAAP8AAAABAAEAAAD/AQEBAAABAAAA/wEBAQAA/wAAAQAB/wEAAP////7//vr8/Pv8/fz8AP8AAwMCAAIE/f78+QEAAAMBAf3//wD9+//+/QICAwIBBQEFBgMECgIFDAICBwEDBwABAgAAAP8AAP8A/wEAAf8CAAMBAgIDAwIBAwEAAAABAAH/AAAAAAAAAAAAAAAA/wD//v7//gAB/wH+AP8AAv8AAP8BAgIAAQAA/wD+/fz5/P/+/AECAQD//AYIChIRDAkJBgYGBPDx8/f3+fT29Pn6+/v6/f7//Pz7+/z8+v8A/wAAAQEBAP8AAQIAAP//AQEBAAEAAAAAAQABAQEAAAEA//8A/////wEAAQAAAP8A///+/v79///+/f3+/v3+/wD///7+/vz8/f79/v3+/f39/fz8/v4A//78/vz9/P39/v3+//3+//z9/vz+/vz9/f7+/v39/v39/v39/f3+//79/f3+/v3+/v7+/f//AP7//gAAAP/+/wD///7+/wD///8A//7+/wD/AP///v/+//8AAP7//gAAAAAAAAH//v7/AAAA/wAAAAAAAP8AAAH//wABAQD/AQAAAAEBAAAAAAAAAAAAAQAAAQEBAAH/AQABAQABAAEAAQEAAf8BAAH/AP8BAAAAAAEBAQAAAAEAAAD/AQABAAIAAP8BAQL/AP8CAAEAAAD/AQEB//8AAP//AQEAAAABAAAAAAD/AAABAAAAAQAA/wEAAAEAAP4AAAICARMRERUTFR8eHC8vKR8dGg8OCwIB/vz7+/39+v/++v///QEBAv8B/////wAAAQECAgECBAEABQABAwD/Av8AAf8AAP8B/wAAAgH//f8AAP//AQEBAv8A/wD/AP8A////AP///f/////+/P/8/f38+////QL+/QL/AP7//AD//QD//wD//wAAAAMBBv8B+/v8+/7+/gABAQMDAwIGBwEDCPf0/O7w9O7v8Pf4+f39/P7+/gT9/f0BAQABAgH//gECAQH//wEAAAABAQEAAAABAQEA/wEAAQAAAgEAAAEBAQEAAQECAQEBAAEAAQABAQECAQABAQIDAgIA///8/Pz7+/39/gEAAQQEBAb+APwBAfoBAv////0B/wEC/wACBQMDAgIBAgMCAgMAAAAAAQEDAgEAAwP/AP8AAQIAAAH//wEEAQMBAQIAAQEAAAEBAQEAAAADAQEA///+AP7//v4AAQAAAAABAAAAAQD/AP8A/wH/AQAA/wH/AQECAgQBAP4AAP7+/P0BAgH7+fkBAAEDBv8MCAgGGRcIBwfs7vD9/f3+/QH3//v39fbz9PP09PT8/fz/AAAAAP8A/wH//wAAAP//AAAAAAAAAAH///8A//8AAQD////////+//////7//wD+/v/+/v7+/v7//v/+/f/9///9/f3+/f7//v78/v7//v7+/v/+/v/////+/v/9/v7+/v7+/v7////+//3+/////v/+/////gD+//7//////gD/AP////4A/wD/AAAAAAAA//8A/wAAAQAA/wD/AAABAP//AAAAAAAAAAABAAD//wAAAQAAAAAB/wH+AQAB/wAAAQD+/wAAAAABAQAAAQIAAAAAAQEBAQAAAAAAAAACAQEAAQAAAAEBAQEAAQAAAAABAQEAAAABAQABAP8AAQEBAAAAAAABAQAA/wD/AQACAQD//wABAAAAAQABAQAAAAAA/wEAAQAA/wEAAQABAAD/AP8AAAAA/wEBAQD///8AAP8AAQAAAAABAAIEAwIDAgENDAsrKSggIB0hIB8QEA0FAgH+/vr//vn///n+//3/AAEBAQUBAQABAPwAAAAAAAMB/wQBAgEAAAIAAAIA/wH/AAAA//7///8A/wICAAD9AP0A//8AAAL/AP8AAP8AAQAAAAICAf7/AAD+AP4DAf//AAEAAgIBBAMA/wX+AAD/AAAAAQQBAQIAAP39/PkA//0A//0DBAIBAwADBQf7AAP2+Pbw8vT3+Pr9/P39/P0BAAAEAAAAAQEBAQAAAgEBAQECAQEBAQEBAgIBAQECAQEBAQEBAAEBAQEBAQABAQIBAQAAAQICAQAAAAIBAgAAAQECAwIBAAEAAQMC+vr89vf4+voL/wcHAgP+Af8CAf7+AP//A/8AAf7+AQIDAQIBAAD//wD+///8A//8AgD9Af79AAABAQEBAQL+/wECAQEDAAEB/wAAAAAAAQEDAQEA/gAAAAD/AQECAwEB/wIDAAD/AAABAQEC///+AQICAQAAAAD+AP//AAAAAP///wABAAABAAACAf4A/vz8+gD4BP4AAQcBBgUFGRcTCwoJCQcI5ufr9/f5AgMC8/P06uvr+fn7+vz7/P3+/v7///8A/wD/AAAA/wD/AP4A//8AAP//AAH//wAA/////////wD//////wAAAP8AAAABAP8A//8A//7/AAD/////AAAA/v/+AP8A/wAA//7/AAAAAAAA//8A/wD///7+/wAAAAD/AAAA//8AAAAA////AAABAP8A////AAEAAP8B/wAAAAD/AP8AAQECAAD//wAAAQEAAAAAAP8BAQD/AAEBAAAAAAAAAgEAAAAAAP//AAIBAAAAAQH/AAEBAwAB/wAAAgAA/wAAAAABAAD/AgICAAAAAAABAQEAAAABAAAAAAAAAQEBAAAAAQEAAAAAAAEBAP//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BAADBQIDBgMDBQABBAAAAQQDAgAAAP8A/gAAAP8AAAICAQICBAEAAgD+/////gECAgIAAP8BAAECAwABAQABAAMBAf7//v7//QIBAgEB/v7//f/+/gEBAAEAAAD/Af//AP7+//78+////f7/+gMDBQgFCSAcFhcWEyAjIMbKztja3QIGA+/w8f739/79/f8AAAEBAAAAAQABAAAAAAD//wABAAEAAQEAAQIAAQEBAAEBAgIBAQECAQMBAQECAQEAAQEBAQECAQAAAQEBAQAB/wD/AAICAv8A/wAAAf////8AAAH/AP8BAAEAAQAAAP8A/wD/AAABAP8AAAEAAP8AAQH/AP8A////AAAAAAAAAAABAAAAAAAAAQEAAQAA/wAAAAABAAAAAAEAAP8AAAABAQAA/wAAAAD/AAAAAAD//wAAAAAAAAAAAP8A/wEA////AAD///8DAAD/AAAA////AP///wD//wD/AAABAP//AQAA//8AAAAA/wD/AP7/AAAAAP///wD/////AAD///8BAAAAAQAA/wD/AP//AAAA////AAAA//8AAAD/AAAA////AAD/////AAECAQMDAwwMCxsaHC0rKSopKRkYFgoJCAIB//38/f///gD///8A/wD/AAD+/f/9/P/9/QEAAQACAwD+/wECAQABAQH/AP0AAAABAAEBAgAAAwIAAP///wEAAAABAAIBAgABAAD/AAEEAAEAAAABAAD//v//Af8A/////wAAAP//AP8A///9/f8C/QD+/wABAAQBAQD8/////AACA/4BAgEDAgEAAwEBAgAEBv4BBff4/PP1+PP19/v7/f39/wAAAAAAAAABAQT5+fkBAQIAAAAAAQABAf8AAAD/AAAA/wAA/wD/AQAA/wAAAP8AAQD//wD///4AAAD///////7+/v///wD+/f7/AP/+/v8AAP8AAQACAQL29vYA//8ICAULCgcKBg8FBAoABvoB/fn/+/v//v3//QAAAgICAv8A//8AAgABAfz//////QABAAEAAAH+AAAAAv8BAQQA/wEBAf4A//8AAQIAAQABAQEAAf4A//4BAQMDBAUBAAH/AQEBAP8BAQECBAL///////0B/v0DAAICAQEA/v4CAQP/Af0AAP8BAQQBAQH/AAABAAEDAQD//v78+vn+A/v//vwEBAcHBQcnJR4QEQ4bGxjM0dXf4OLw8PH19Pb7+/r//gD/AAABAP8AAQEAAAIAAP8BAQIBAAEBAAABAAECAgECAgEBAQIDAgIBAgACAQIBAQICAQIBAgEAAQABAAAAAQIBAgEAAAAAAQH//v8AAAAA/wAAAQD//wAAAAD///8AAP8AAAH/AAAAAAACAQEAAAH/AAAAAP8AAQEAAAD+AAABAAABAQEBAQEAAAAAAP///wABAQEA/wD/AAABAQD///8AAQD///8BAAAA////AAD///////8A////AP8A/v////8A/wD/Af///wAAAP4A/wD+AAAAAf///v///////wD///4AAAD///8AAAAA/gD/AP8AAAD/AP8AAAAA/gH/AP8BAP8AAQD//wAAAAD/AAAAAAD//wAAAP8B/wAAAP//AAAAAP8CAwUWGBcXFRcgHRwvKysjHx4PDAsEAgH+/v7///4A//4AAP8BAP8AAP7+/v3//v0A////AAIB/wAAAQAAAP4BAAL/AAECAgAAAAIAAQEBAQD///7///4BAQQBAQEBAQIBAAD/AQD/Af4BAAEAAQAA/gMBAQAAAQACAAD//v8A/wD+/v7+Af4AAAEAAf4A//////3+/vwA/fz+/Pv+/vwA//4BAgEBAQEABAT/AQT6/Pz19/r3+fv9/f8BAAD/AAEAAP8AAAEE9fb4AAD/AAAA/wH/AQAAAAD///8AAP///gD/AAABAP///wAAAQAB/////////wEAAf8A//7//v///wD///7//v/+////AAAAAQABAQEA+vn6AQEBCwsJEg8ODwwJBwoHAgYKAP34/vv7//r4/v7/Af39AgP9AgIB//8BAQADAQEAAwIBAAH+AQD8/wAA/v39AQEHAgID/wH8AAADAgEDAQIDAgIFAQIDAwIEAgIEAP8A/f/+Af//AQMDAgEB//7+/v79////AQEA//8A/wD/AQECAAAAAQEBAQEAAwMD//8BAf/+/v/9AAAAAgICAAD+/////Pv9/v75BAQBBQYDHRcTEg41GhcVx83Q29zf6Ons8fHz+fj5/v3+AAEAAP8AAQH/AQACAQAAAQEAAAEBAQEAAgEAAgEBAgIBAQIBAgMCAwICAgICAgEDAQEAAQICAgECAQIAAQEB/wAAAP8A/wABAAD/AP8A/wAA/wAA////AAAA////AAABAAAAAQEAAAABAQEBAAAAAQEB/wAAAAAA/wEAAQAAAQECAAAAAAEAAQAA/wABAAAAAQAA/wAAAAEA////////AAD/AP8A////AAD///7///7+/v7+AP///gD+////////AP8A///+/wD//gD+////////AP8A//////8A//8AAAAA//8A/v/+AQABAAEBAP////8BAP/+AAEAAAAA/wAA//8AAAH/AP8A/wAAAP8AAAABAAAA/gD/AQECAP//AwQEFBQTIB4fKycpJCEeJSQiEhIPBQQD/wD+//3+/wD+AAH/AQEA/gEA/wD+//7+//7+//8AAQEBAAABAAAAAP8A/wAAAAAB//8AAAH///7+/wD9AAD9AQAA/wAAAP4BAAIEAAEB/wH//////gIAAf8AAQEDAP/+Af4AAAAAAP4A//79//79//78AP78AP/8AQD+/v77Af38AP79Af79AP79/v78AQIAAAICAAIF/wAF+vr39/f6+fn7/v/+AAEAAQEAAAABAP//BPf2+P8A/wAB//8A/wABAAD//wEAAP8AAAAAAAD/AAAAAAAAAP8A/wD/AP8A/wEAAQAAAP8A////AAD/AP///////wAAAQD//wACAAH/Av7/+wL09e3u8Ovt7hMPDQsIBQgFCAH9DQD6+//+/f79+QL9/f/8/AABAAICAAIBAv8BAAAA/gEC/gEEAQEA/wMDAQICBAEBBP4BBAABAgEAA/8BAAEBAgQEBgEAAv7//f7+/wD/AAAB/wD+/f3//////wD/AAICAv///wEBAAD+/gABAQAAAQECAP8A/v79/wAAAf8A/wEAAQD+AP8AAwECAAIA/wD//v38/f/++P8A/wMEBwsIBTArJhkXFsrO0cvQ1Onq7evr7Pb29/z8/P79/v8AAAEA/wAAAQAA/wEBAgEBAAAAAAEBAQEBAQICAgQCAwIDAQICAwIBAgMDAgECAwICAgIBAQABAAAA/wAAAgD/Af8A/////v7/AP7//wAA////AAABAAAAAAEAAQAAAQEBAQAAAAABAQEAAf8BAQEB/wABAgEA/wECAgABAQD/AAEBAAD/AAAAAQEBAP7//wAB//8AAP///wD+//7//v/+/////v8B/v8BAQEBAf79/QABAQD///////////7+/v7+/v7+/v/////+/wABAQD/AAD/AAAAAQEBAf///gEBAgMEBQYHBgD+//r6+f39/AAAAQICA/39/QIBAP7///////8A/wEBAAD/AP8AAQAAAQEBAQECARAQECIgIiUhISgkISMiHxISDgUFA/8A/v79/f4A/f///wEAAf8A/wD//v7+/f7+/f7+/v//AgEBAgEBAgACBAEAAwACA/8AAAEAAQAAAAACAAP/AP8BAgD/Af8A/wEBAQH/AAEA/wAAAP///v/7/v////7/AP7+/v//AAD+AAEB/wD+/v3+/AD+/QD//f7//f7//f/9+wH7+f/7+AD8+v/9+v8A/AAAAAACAgEBAgAAAvr7/vf4+vr8/P/+/gEAAQAB/wAAAAABAQT7/P0AAP//AP8AAf8B/wAAAQAAAQAAAAAA/wABAAD/AQAA/wAAAQAAAAD///8BAAABAQH//wEAAAD///8A/wAAAAEA/wAA/wH//gAAAP/+/P76+fzx8vTp6u0RDw4NDQoGDQkDBgv/Cfv9//v/+f0AAP0A/vwA/v8A/v8A/gICAQIB//3//QL/AfsBAgUBAf8BAf4BA/4B/wP//wEAAQIDAwMBAgIAAAD+/v0AAP8DAgEBAgD9/P38/P4CAQIDAQMCBAL/AP///v4A/v8AAQAAAP7/AAH+/f4BAP3+Af///wADAgP+AAEB/wL+/f0D/wMAAgH+/vwAAf/+//76+v4D/PsEBAYFBggdFxETQTwiIB3P09jS1dnr7O3w8fH29fb9/PwAAAD/AQABAQEAAP8AAAEBAAEBAAABAQECAQEBAQICAgEDAgMBAgECAwMDAwQCAgIBAQEAAAABAQAAAAEAAAD/AP/+/gIC/wD+///+/v7/AP8AAAEBAQAAAAAAAAIBAQAAAAABAgMBAAAAAQIBAQEBAgABAQEAAQEBAAH/AP8AAAEBAQEA//8AAQEC//8BAQD+AP4A/////v/+/v7+/v7//QH+AAH+//4AAP7/AAAA/gD+/v7+/f79/v3+/v/+//7+/v4A/gD/AAACAQEBAQIFBwYBAQIEBAQEBgX8/fwHBgcPEBAAAP/y8vL4+Pj//v4JCQry8fAAAP/7/P39/fwBAAACAQL7+vwEAwL/AP8EAgQNDg0dHB0uKiooJSIiIR4QEA4EBQP+//7///3//v7//v4AAP4AAf8BAQH/AP/+////AAEBAAEAAAMBAQL/AAEB/wAAAP///vz///7/AP8AAAEA/wD+AAAAAAL/AAEAAP8BAf///wD+/v8A/v7+/f0AAf/+/v7/////AAAA//8B//////7////+/fwA//3///7+//79/v4A/fwC+/r/+vn//Pr///oBAvwAAQMBAgQAAgX9/gD7+vz6+/3//wAAAQAAAQABAAEA/wAAAAAE///+AAAAAAAAAAABAAD/AP8AAQABAAAA/wAAAAAAAP8AAAAAAP8AAQAA//8AAQEC//8AAAEAAP8AAQAA/wEBAf8AAAEA/wH/Af8AAAD//wD//f799/f47fDy6OvtDw4LBgUEDAYFAgUL/wb5//78/vz4/wD+AP7/Af7/Af/8Af8BAf8AAQEDAP/+AQD+AgD//v/6//3+AQEEAgIHAgMEAgQFAAEDAP/+AgIA/wAA///9/fv9//7/BAMFAgIDAQID//7//f79AAEAAQEAAQIBAP8AAP8AAgEDAQEC//77AgEB////AgIC/v8AAAD+/v0BAgD/AAD/AP//AAAAAf79/gD++vr7/P35CQYJCwcJLykjHhwaJSMiycvP29/g6erq9PT1/v39/fz9//8A/gAAAf8A/wAB//8AAP8AAAAB/wD/AAADAQEBAgIBAQECAQEAAQEBAgIB/wAAAgEBAAABAAAA/f//AAL/AP7/AAD/AAIBAQAAAf8BAAEAAQEB/wACAQEAAAECAQEBAQECAgIAAAACAgICAQEAAAECAQEA/wAAAQAAAQABAAAAAP///gD//wD/AgAAAP///gD/AgAA/////wEBAAAA////AP4A/v3//f7+/Pz+//79/f7+/v7/AP7//wEBAgMBBQUHCAYIAgMDERESDQwN+v36DAsN////CAkJCQoKCQkI9fT09/f4/v7/CgkI6+vq/Pv79fb09fX2BgYFBAIE7+/vCwkJ/P38DAwNJSIiGxoZLConISAdEA8NBAQA////AAD///7//v/+/v//AAAAAAABAP8AAP8BAQABAAACAQEDAAAB/wAAAP7+/gD6////AP/////9AQEAAP8A//8A/wABAP8A/wAA//7+///9AP7/AQEBAP3/AQAAAgEAAP39//37AQD+Af79/fz9/P78/wAAAAAAAQAB/gD//v/+/wABAP7+APz8APz6/v38AQH8/wD+AQIGAQIFAQIG/Pr9+vr6/v3+AAABAQABAQAAAAEB/wAAAgABBAEAAQABAAEAAf8B/wEAAQAAAQEA//8A/wEBAAAAAAEAAP8AAQEAAAAAAAIAAQABAQAAAAEB////AQACAAH+AAAB/wAAAAD/AAABAP//AAEAAP7+/vv6+vTz9Orr7xAODQwKCQcQDQgDBgQGCv79+wD/////+v//AAL/AQH+/wEC/QEBAgD//wAA/wD+/f39+gEDAAECAgEDAQICAgAB//7+/QEB//8AAAEBAQAA//7+///8/QMEAgD/+/3+/AD9A/4AAAICAwICAwMDAv///////gAAAQEAAf///gAAAP8AAAH/AP79AAIDAgICAgEBAQEB/gIBBgAA/////QD+/v8A/gAAAvz9+ff9/f///wMGCRMPDTYxLhYTE9DU18vPzuXn6Pf3+vHx8f79/wD/AP//AP///v7+AAIBAf7//gH/AgD///7//gH/AgAA/wAAAAEBAAD/AAEBAQAAAQAAAP///wAA/wD+/wAAAAAAAAEAAP8AAf8B/wEAAv8AAP8A/wAAAgEAAP8BAAICAAEBAgABAQADAgEBAgAAAAEBAQEAAAEBAAEAAP///wAAAgL+/v8A////AP8A/wEA/v8AAP//AP////79/v/+/vz+/f39/P38/P79/v3+/gAAAQICAgIFAwcICQgHBxMUFAYGCAUFBQ4NDRkYGA8QEAAAAAUDBBAREgQEBAgIB/j49/Dy8QgGCAMDA+7u7f///+3t7Obn6BEQDwEAAeXk4woLCg0MDRISER0aGRYVESAeHBEPDAQCAf///v///v/+/v/+/v/+/QD//wD//wAA/wABAP8A//8AAQAAAf8BAgAAAAD///8A/f/+/f//AAAAAQEBAQH/Af7+/wD//wEB//3+/f/+/gD9/f/+/QEBAgAAAP/9/gAA//z8+//9+wL+/P78+wD//P79/fz//wEEBAIBAv8BAwACAwEAAAAAAAEAAAEB/wAB/wAA/gAB/gEDAwIDBwEDCP8DBfv8+/z7/P39/v79/gD//wIBAf8AAAEAAQEB/wQBAgD//wAAAAACAQAAAAAAAAD//wAAAQEBAAEAAP//AQABAQAB/wABAQEA/wAAAQAA/wAAAAH/AgAAAAH/AQAAAAH/AP8AAAAA//8AAQH//wD//v/6+vz08/bsBe8LCwkLCwgIBgMFDAkFBQgB//oAAP0A/P8A/v4A/gEB/f4BAgEB/gABAQD//wD/AQAB//4BAP3///3//fr8/f0AAQEBAAIBAgMCAgP/AQQAAQICAQH/BP/9/fr/AP8AAAIDAwgGBgkCAwUBAQEAAAABAgIBAQEA////AQEA//8A/v7//v3///////4CAQEBAgL//vwCAQMA//7///3/AAEAAQEB/gH/AP8CAf7+/v349/UG/v8HCgQKBgglIx4XFhMYFhPU19jY3N8CAgLz8vX7+/v/AQH+/v4AAf/9Av4B/f8BAP79AQH/AQABAQABAf4AAQIAAf8CAQEBAP////8BAQD+/wD+/v7+/v7+AP///wD9AP8B/wAAAP8AAv8A/gIBAQD/AP8BAQACAQH/AQH/AQEBAQIBAQEAAQADAgMAAQEA/wABAP8AAAAAAAD///4BAgH//wD/AAH+/v7////+/v7//v/+/f7+//79/f39/P39/f3+//8AAQAFBgUDAgQLDA0HCAgWFhYMDAwREREaGBkLCgoKCQgQEBIfHx0CAAAA//8LCw0FBgUBAAH6+/n19/YFBQX8+/z59/j9/v/w8PDl5uUODg0CAwLq6SMCAgATExMNDAwSEA4KCQUNCwkGBAL+/v3//v3//v3////+/v7///4BAAD/AAEA/wD///8A/wAB/wAAAAEBAQIAAAD///7//v3/AP8AAAD///8BAAP/AAIAAP8AAf7+/Pv//vv//v4A/wABAP8DAQH//v4AAP0A/P3//fwB//0B//z//vr+/vz+/QEBBAQCAwMBAQEAAQD/AQAA/wICAAAAAf4AAP8AAQABAwH/AgQBAwQCBAgCBQf6/wH5+vr5+/r9/fz///4BAAEBAQEB/wABAQAAAQEE/wD/AQEBAQD/AQAAAAEAAAD/AAEAAAABAAAAAAEBAgEBAAAAAAEAAQAAAAEBAP8AAAIAAAAAAP/+AAABAAL/AP8AAAABAAAA/wAAAf///wEAAf8A/v7++Pr68PLyCOoHCAgICgYFCQYDDQcFAgUJAP/9/wD//vz4/wAA/wACAQADAgEDAQIB/wIA/wL/AAH/AP79/wD7AAH+AQECAAABAAD/AP4E/v8D/f4AAAEFAgIDAgIGAwMHAwMEAgQFAgIGAgMGAgMDAAECAAAAAQIB/v38/vz9AP7+AQIBAAICAAEAAP//Af8D////Af//AQEDAAD/AAAAAAIBAf8BAQIB///+Av////8BAP///wH9/Pr5AQH0BwkABQQHEg8MNzMvHx0bHh3b0NTY1dbY8PDy/fz7/fv+/wEAAP3/AQD8AAD/AAH/AwADAf8A///9BAABAf///wICAQECAQEA/wD//v4A/f/+//7//v/+/wAA/wD///8A/wAAAP4AAQH/AgICAgABAP8BAQEDAQABAQECAwMEAQICAwMCAgEDAgMD////AgAA/f39/v/+AP8BAQEA/vz8Af8A//8A/v4A//4B/v3+/f3+/fv9/v7/AQICBQUGAAABBQUFFBUVAP8BGxwcDQwMHBobGRkYCQgIGhoaCgkICgkJCQgIDQwMAQIB////AwIEAwMB/////f39+/z6AQAA+/z7/fz8/f4BFhMPGBYSCAgIAgMB9R4b/f36BggHBwcGCAUFBAIBAwEAAQD+AP78/v78//39/v7+AAAAAf8A////AP/+//7+//7/AAAAAAEBAgMD/v0D//79///9AQEBAP8CAQIA//3/AQEC/wABAQEB/v3+///8AP78Af7/AQABAQIDAP8AAf8A/v39/v78AwH/Af8A/v38//7+/wAE/wQFAQMCAgMEAAIA/wAAAf8CAgEBAf7//v8AAAD//wH+/wL/AAQCAQQFAQQFAQQF/vz++/v8/fz+/fv9//3/AQAAAgABAAH/AAEBAP//BAAAAQAAAAABAAAAAQABAAEAAAAA/wAAAP8AAQEBAAAAAAEAAAABAAEAAQABAAH/AQAAAAAAAP8BAv//AAEBAP//AAH/AP8AAP4AAQAB/wEA/gD/Af8AAP////r6+u/x8wbo6goJBQwLCQYTDQkFCAL//wD/AP////4B/QECAf8BA/4AAAMBAAEB/wAB//8B/wAB/wEB/gEBAwAB//8AAP8AAQD+AAACAQEBAwABAgEBBAMFBgIDCQEAAQACBAACAwABAf///wD//wAA//7+/wD//wAB/wICAgEAAQABAAD/AQAAAQD///8AAP/+/QH//f///wECAQEAAf//Av/+//8AAf//AAECAgD+/gAA//38+////v///gcHDAIFCAoIBR4bGBAQDxcXFhIPENrb3eXm5+/w8AD+/v79//z//v7+//8A////////AAP/AP////4DAwEBAQEBAQEBAf////3+/////v7/AP8A//8AAAAA////AP4AAAEDAQAB/wL/AAUDAwIBAgD/AQQFBQgICgMEAwoJCwIBAQUHCP/+/////wEBAf39/fb49/39/AH//wMC+vv8+/39+QEA/gH///79/v79/f79/gIDAwwKCgMFBQwLCxAQEhkYGA8PEBsYGBcWFRYUFRcWFgIEAgsLCwQCAgQEBAIDAwMCAQEBAv8A/gD/AQD//v//AAMCAgIC/v79/QD/AgQDBv8AAAUFAAkJBQABAQEA/gsKBf79/AEB/wICAQD//wEA/v7+/v/9+/79+//+/v8A/wAB/wD//wAA////AP///wAA/wAAAQIBAgICAgIBBAEAAv8A/AEBAQEBAwABAgD+//8C/gEBAv7/AP8AAAAA/wH/AAD//wIBAQEDBAACBf/9/v3+/AAAAQMEBP/+/f/9/P4BAgIDCAEBAwECAwECAAEDAwACAQIBAf/+AAH8/v7+/QH+/P7+/f8B/gIDAQAEBAAFBQIDBQEBAgD+/f78/Pz7/f3+/v/+/gEAAAACAAD/AP8AAAAAAQQBAQABAAEAAAEBAf8AAAEAAQABAAIAAAABAAABAgD//wABAQEBAQABAQEA/wAAAQEAAP8AAAAA/wAAAQAA/wEAAP7/AAAAAQEC/wD//////wL/AQAA///+//77+//y8vL9/f0EBAQOCwoKCQQEDgkHBQkDAAD/AP///fn/Af//AAEAAAD///4CAAEAAAEBAP//AAABAAH/AQAAAgMDAgMAAQUAAAUCAgT/AQUAAQMBAQMBAgIBAQAA/wD//vz+//7//vwBAQMBAQH//v8BAgICAwMCAgQBAQH//v8AAQAAAQAA/wD/AP4B/v//AAH/AQEAAQH//wICAgIBA///AAL//v0BAQAA//7/AP///v0BAQL9+vsA/v4C/wAE//8DBggFAwMSDgwvKygRDxAhIRzGyM3a29/19fb5+Pf8/foC/wH/AQD9/gAD/f8CAvwDAwICAwICAgMCAAEAAQD//wD+///+/v7+//8AAAAAAAD/AP//AAD/AQEB/gMEBAQAAwL/AQMUFBb6+/wICQgQDxAXFxcGBQYEAwP+/wEGBgb//wABAQH+/f319vX29vf5+ff9/fzz8vL19fP7+vn6+fr//wAAAAEBAQQNDAsUFhUSERATExQaGBoiISEaGRkTERILCgkHBgcIBgYBAQH/Af8AAAABAgEBAAD///8BAQEA/wP+AP/+/wAAAQH/AAD+/f/+////AP8BAQICAP//AQEBBAT///3+/v4DAf8CBAEA//8CAQD/AP/+/v3///3+/f3//v////8AAAEAAAAAAP4A////AP8AAP8A/wAAAP8CAQIEAwT9AgQCAgT//f0BAQABAgP+///+//7/AP8BAP8AAAIAAP7//vz//v0CAAMCBAUBAwT+/v/9/fz9/vwCAQACAgL+/f0AAgQBAAMAAwD//wABAwMABAICAwIAAAAA/v4B//3///wB//sA//sC//z/AgL/AwEBAwUBAwYCAwT/AQH8/fz7/Pz6+/v8/P0A//8A//8BAQD/AAIAAP8AAAAEAQABAQEAAAAAAQICAAAAAAAAAAEAAAABAgEA/wEBAQH/AAABAQEAAQABAAEAAQAA/wACAAD/AAABAQD//gD/AAABAQD/AP8A/gD/AAABAAH/Af8A/wABAQAA///+/Pv89vX15+npCwoGCgoGAwMVFA0JBAQBAf7/AAABAQH7AgD9Af//Af79Af0AAQAB/wIBAQD//v79AQACAAEBAf8CAAACAAMDAQEDAAECAQEEAAIBAQEBAP/8/v7/AAEBBAIEAQEDAQD/AP//AAEAAwICAQAB/wD///8AAQMCAgABAP8AAAIB//7+/wL/Af////4C/v78AQH/AAD//wD//wABAQEB/wD+////Af8CAQEAAf/+/wD//v76+/kD/wACAAECBAAHAgQCDAgGJB8aExENEhERxxHP3eDi5+jo7ezq/vz//v78AgL+/QIDAgIAAgICAwMBAgICAQEB//8A/wAA/////////v//////////AAABAQMDAgUGAgADBQYGBQYHDAoOIiMn/wD/AwMCFRMTGhgYCgkKBQUG/v7+AwECBgcG/v7++Pj5AgIC8/Tz9PX1+vn5+/z55ubm8/Pz9PT0+Pj5AwEBBwcHFRUTEhITGRYWGBgXIB4eFhUWCwoLBwYGAwICAQEAAP8AAAEA/wD///8AAQAAAQD/AAAA///+/v///////v7+AAEA///9/f7+/v79AAD/AAEA/v8AAAH/AQD+AgEAAgAC/v8AAP8A/gAAAAH/AP8BAAAAAP//AAEB/wAB/wACAgEBAQD//gD/AAL/Av7+/v///wEAAgID//8AAAEEAQMEAQEEAQH9AAEAAAAA//78AAD+AQABAQEC/v7///78//38AQIDAgUGAQED/vz+/vz7AP78AgH/AQIC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AQMB/wEAAAAB/wAAAQEBAwMFAwIF/v78/v3+AQD+/v7//f3/AQIAAAABAAICAAED/wQCAgABAQMCAQEBAQEB///9AQH+AAAB/wD/AAABAQECAgICAAAEAP7+/gMDAf79/gEC//wAAP8AAQD+/wH/AQEAAP//AAD//v77/Pv4A/8AAAD//f//BQIAAgEDCQgEGRYRCQkrFhMTHRwax8nL29vc+Pf3/v7+/f3+//7//wD/AP///v7/////AAEAAQEBAgQFBwoKBAYICwwMFBUWDxETJyQkJyQjFxMVCwoJCgkHDAkKBAQDAgMCAgEBAQAAAAD/Af8AAAAAAAABAAIAAQAA/wACAAEAAgACAgACAAL/AAUFCQkJAf8A/wD/AAEAAP8AAP//AAABAAEBAAEAAP//AQEB/wD/AAAAAQD/AAD/AQEA/f////7//wD+AQAA///+AP////8A///9/v39/P38AP8A/v7+AAD/AQEBAAABAP//AQEAAQICAQABAQEAAQEB/wEAAP4BAAD//wAB/QD8Af79/QAAAAD/AgEE/wEBAQABAQABAAMCAP8AAAH/AQD+AgAA/fz+AgQAAQEC/P7/Afz9/wH8AAMAAwMEAgAAAAICAgIEAAD+/v38//7/AQAA/Pv6AAEDBQYGAQD///37/QD9//8DAggHAQUGAAACAAABAwEBAAAAAv7///z8Avv7AP36/fz6AP36AP78AQEAAgIEAAICAAMCAQQHAQUJAgUHAAEE/v38/Pz8+vz7+fr6+fv6/P3+////AAABAAAAAQAAAAABAQAABAAAAP8AAAEAAAAAAQAAAAAAAAEBAQAAAAAAAP8B/wAAAQAAAAABAAAAAAEBAAEAAP8BAQEAAAACAAH/AP//AAL+Af8BAAL+AAAAAf8BAP8A///+/wABAf////8CAAEA/wD//wAAAP39/vf2+Ors8OUR7w0MCg8LDAYJBgEE/wAA/f////7+/gL+/P/8/f8AAgAAAQADBP4BAgD//gABAwAAAP/+//4B+wIDBQAB/QICAwIBAAH//f////7+/f8A/f///wEBAAD+AAD+AAEAAgAAAgMGBQABBAABAgAA//////8A/gEA/v7//wEB/wIBAf///wD//QH/AP8BAf8B/gD/AAEBAgECAwIDBgD/Af4A/AIA/wAA//8B/wD//f/+/P/9+v4BAwAB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9//9+gEAAP8BAf4AAgIFBQIGCAEFBgMGBgADAgECAv8AAQD/Af//AP3//fz8+/z++/v9+/n6+vv9/f/+/QAB/wAAAQH/AQABAAABAAH/AQQBAgEBAAEBAQABAgEB/wEAAgEAAAEBAQABAQEAAgACAQL/AAACAgEAAAABAgEBAQICAQMAAAABAQD//wACAP///wAA/wD///7/AAIC/v///wD///4A/wD/////AQEA//8A//8A/wD+////Af7+//8A/gD19vbp6uwQDwwNCgcFFhIFBwcAAgIAAQEA+wH/AAH9APsC//8A//8B//4AAP4AAP8AAAAAAAH/AQEBAAEBAAECAgIAAQEAAAD//////wABAAEBAgEBAgMCAgQAAQL//v8BA//+//8B/gAAAP8AAQABAAECAQL+//4AAAEBAQEA/wD/AAABAf3+/v7+//8CAQL/AAAAAAAAAP4A//7///8AAAD///8A/v//AP8A/v8AAgEB/wD//PwBAPoBAAL/AQD8AAEC/gL/Av8BAAD8AP8BAgIDAwIDAQIGAgESDgoRDw0jIB76/P0CAggPDg8JCAkAAQEDAwIEAwQAAP8BAQAAAP8A/wD/AQABAAAAAAAAAAEAAAD/AP8AAAAB/wAAAQEAAQABAAAA//8BAQD/AAAB/wD/AQAA/wAAAf8AAAEAAAAAAAD///8AAQABAAD/AAAA/wAAAQAAAAAA//8AAAAAAAD/AP8AAP///v//AP8BAAEAAAEAAQAA/wABAAAAAgMB/v//Af4AAAECAgEAAAD/AAACAgICAgEAAQEB/P4BAAEDBAQA//4AAQAA/////wEAAQL///4BAP8BAQIAAQMAAP8CAQICAwP+/f0CAwMBAAD//v8CAgMBAQIAAf4BAQICAgD9/f0CAQL/AAEAAgEC/wP/AQECAQL9/gECBQEEAgMAAgIEBQYAAQACAAQHAgkA////A/37+/oAAgIBAQQGBwQBAgP7+vn+/f8BAwUEAQIA//z//fr++/kA+/kA/foCAAD/AQL+AAIDBQUDBwkCBgYABAL/Av3//vwA//8BAwYBAwgBAAD+/wD8/v3+//77/f77/fv///wBAAABAAAAAAAAAQD/AAAA/wEBAQAEAQEBAQICAgEBAQECAAEAAP8AAgICAAEBAAAAAgEBAQEBAQICAQIAAQEBAAABAQEBAgEBAQABAAEAAAD///8AAAD///8A//8B/v7/AAH//v8AAP8BAP///v8AAAD/AP8B/v//AAABAv/+//8BAP7+//8A/Pv88PLz5uboDgkGCgcHCBYSBQQEAQABAAABAf0C//4B///8Af7//wH9/f8AAgEEAQIFAwIEAQMFAQIDAP//AP//AAAA//7+AP8AAAEB/v79AQEDAwAC///+AgL/AQMAAP79AP4B/wEAAf//AQEBAAIA/v//AAECAQAAAAAA/wAAAP/+////AP8AAgEAAQD/AQAA/wD//wD/AAH/AQH//wAAAAABAAABAf4BAAD/AP7/AAAB/wD//fz7AP8BAf8A/wIDAQH//v8D/gD/AAD9AQP///8AAQIAAQEBA//+AQT/AQQBDg0NBQUKAwQGAwMBAgIEAQAAAgIC/wD////9/v78AQECAQAB/wABAQEAAP8BAQABAAEAAP///wEBAP///wEAAQAA/wEA////AQAA/wAAAAAAAAAB//8AAAH/AP8BAQH/AAEBAAD//wD/AP8AAAEA//8AAQEA///+/wABAQD//wD/AAAA/v/9//7+AQICAQEA//8BAgEAAQEBAQEB/wIAAf4BAAH/AQEB/v7+AQAAAgQEAAABAQACAAD+AAD/AQEB/wABAP8AAAEBAQAAAP/+AQAAAAECAAD+AQICAv8D/v//AP8A/wD/AgEBAP8AAQICAP8B//7/AAABBAQE/v7////9AQEB/wAAAAABAAIAAf8B//8CAQICAgEEAAIBBAQGAgID//7/AwQEAv8C//3++v3+/P//AQQFBAMGAQEA+/j5AQEBBAYH/wMC/f36/vr8AP36//z5AP38///8AAAC/v8AAQQEAQQHAwYG/wIA/f35/vv6///8AAIBAwUJAgUEAQEF/wEB/v8A/f4A/Pz+/P39AQIAAQIAAf0B/wD/AAAAAQABAAAAAAAABAIDAwEBAQECAgIAAQABAAEBAgIAAP8BAQEBAQIBAQEBAQEBAf8BAgICAQEBAAAAAAICAQEAAQABAf///wIAAP///wAA//79AQED/v//AAD+/gD/Av///wL/AAAA/wABAQL+//8A//7/A//+/QAAAv7//v3+//j3+e7u8ucM7A8ODQ0NDAgPDQMDAQEBAQD8Af/8//79///+/v8A/gIEBAABAf8BAP7//gD+/QL/AQIAAf0A+wD//wAAAgEBAwIBAQUEBwECAf79AP7+/gD//QH/AQIEBAICAQAA//8BAP4AAAH/AAEAAAEBAQEA/wD/AAABAAICAgEAAP7//wAA/wD/AAEAAAEBAP7//wEBAv8C/gD9/wEBAAEBAwABAf8AAgD//gAAAAAA/////vz/+QQA/wEDBv8CBAH/Av4B/gH9//7+///9AQIEAAACAQEC/gL/AAH9AAD8+f8DBf/+Af8B/////wACAf//AP8AAP7+/f7//gMCAgABAQIAAQACAgD/AAAAAv8AAAEAAAD//wABAAD///8BAAAAAQEBAP//AAAAAAH/Af8B/wH/AQD//wABAP//AAAB/wAAAAAAAP8AAAH//wAA//////8A//////7//wEAAQAA//7+/v///gH+/wEBAQAAAf8BAgEBAv8A/wAAAAABAf//AAAA/wEBAAABAQD+/gEEAgAA/wABAAECAgAA/wEAAQABAAABAgEAAP0B/wD8AQAAAgEBAQH/AAICAQD+/f/+/wEAAgECAP/+AP///wABAf/+/gIAAQACAf/++wEBAQACA/79/gAAAwEB//8A/wAAAAEBAgAAAAMCAQMDBAAAAgED/wAAAv39/Pz+/f79/wICAwIGCAEA/fz6+gABAgQFBP8A//37/wD8+wH+///9/AH9/P38+f/+/f7//AEHCwcLDQIDA/7//fz59/7/+f3++gAA/QACAv/+/wUDCQEEBQIEAwACBP8ABv4AA/7/Af/+/wIAAP8BAf8AAP//AAEBAAEAAAABAQQCAgIBAQEBAgICAQEAAAACAQIBAQEAAQEBAQEAAQEBAQEBAQEDAQEAAgECAQEBAQAAAAACAQEAAAD/AAH//wACAAD///8AAf///gH///8AAAAA/wAAAP//////AAAAAAAAAQD/AAAB/v/+AQAAAf4A/QD+///8/fzz9ffp7PEODe0PDg4MCwsMBwcBAAAAAf8A//0B//4A/vwB///+/gD//fwAAQL+AAIEAgX/Av/+Af8A//8BAQEBAAABAQECAQL//v7//wIBAgMCAAIBAgQDAwUBAQH/AQD/AAACAQICAgQAAAEBAQEBAQAB/wD+//4AAP8A/v7+//8AAP///wAAAP8AAP/+/wAAAP///wAA//////4A/v////8BAQICAAD/AAEA//0AAAD//v0AAQD9/QACAgAB/wEA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AQEBAgIBAv0B/QMCAgAA//7+/wIBAwEAAv4A/v///wECAf//AAD//gECA////wAAAAD/Af38/f8A///+/v//AAAAAQMDBAH+/fv+/f8AAQIDAwUGBv/+AAEAAAUEBvr4/Pz8+fv8+wcMEgICBgICAwQEBP/++fr27vr38//8+v///QAA/gAB/gH//wIAAQIC/gD9/AD++wD//QIEBwYICAQGCAABAgEBAgMDA/0C/gD//v8B//8AAQEAAAABAAEAAAQCAgIBAQIBAgICAQEAAQEBAAACAgIBAgIBAAEBAQAAAQECAgICAgIAAAEBAf8AAAEBAAABAQEAAAAAAP///v7/AAACAf8AAAD+AQEA/wACAQD//wD/AQAA//4CAQEAAQH///8BAP//AgEB/wEBAAL+//0BAgEA/gD////7+/vw8vMF6QMNCwoPDAwKBggOCwcDBwH/AP/9+wAC/AH//fv8+PgA+/kBAP4ABAL/BgT/BQQCAwcCBAACBAICA/8AAQD///7//v0BAwH//gAAAAH///8BAAECAQAA/wD///0AAf79/v4BAAEAAgIBAgMAAgQBAQQCAgMCAgMAAAABAAEAAwAA//4AAP7/AAABAQH+/wD/AP4CAAP+AQD///4AAP8AAAEA/wAAAAIBAP//AP4B/wAA/v4AAQAB/wP///4DAwUBAAEB/v//Af8A/v/8/P8FBgMA//79/v0B/vwA/QIBAv/8/AEB/v4CAgMA/v7/AfwCAwQA///+AQAA/gAABAEBAgH///4B/wD//wAAAP8AAgEA////AP8AAQAB/wD/AAD///0BAAABAgH//gEAAQD///4AAAIBAQEAAP8AAAD///7///8AAAH+/////v4AAAECAQEAAP7/AAABAgL//gABAP8AAQAAAAD///8BAQAAAf///v8AAf8BAAACAQD+AQABAgIAAP///gD+//8AAAD/AP8A////AP8DAgX+/v8AAQAA/wACAgMBAQL//v0A/wEAAP8A//8CAQL+//4CBAIBAQP///8AAQEAAQH8+/wBAgEDAwP+//8BAAACAgIA/wH//v/+/wAEAAL/AP4AAAD/AP8A////AAD+/v3/AAACAQL///7//////f4AAP8EBQYDAwX/Af/+/v/+/v/+/v76+PgAAgX/AwUCBgsIBgX+/Pn28vP9/PwAAAEAAAP+/f4CAwH//gAB/v7//v/8AP4DAgX+/f4A/v4BAQADAwQCAwQCAgMDAwMCAgICAgL+/gEBAf4A//8AAQAAAQEBAAAEAAABAQEBAgAAAQABAQEBAQEBAgICAQECAQEAAQEBAAIBAgEBAgEBAAEBAAAAAQABAQEBAQAAAAEBAQD//gEA//4A/gIBAf7+AgIB/v79AAAAAAH///8BAQECAAEAAQAA/wABAQAAAgEA//4CAAH/AAIA///+AQH/AQEA/v//+vr77/Hz5unrExAQDgwOCQgGAwQGAQX8A/79//8AAP//AAMD/v0B//39AP3+Af4CAQACAgMDAwMFAQICAP/+AAABAQABAQD/Av/+AAAAAgECAAIEAAABAAD/AQEAAQAC/wD/BAIA/v7+AAAA////AP/+AgL/AgEBAgECAAECAQAA////AAAA/wECAAD+////AAABAAAB////AP8AAQADAQAB///+AAAA/v7+AP/+AgEAAAEBAv8AAAD+Af/8AP8BAP/+AgMD/f78/wEAAAD+AP8B/v4AAQIB//0B/gL+AQH/AQEA/v79AP7+/wIDAAED//8B//3/AAIBAgEA/wAAAgIC/f8B//8CAwEA/wEBAP8A/v/9Af8AAAEAAP4AAAICAP8A/wD+/gAAAv4CAAH/Av8BAAECAAD+//8CAQAAAAD//wD/AAD//v//AP8A////AAAAAAEAAP8BAAD/AP8AAQD//wABAQAB/wEAAQD/AAAAAP///wD+AQAB/v/+AQECAAH+AAAA/wD//wEAAP//AQIB//7////+//8A/gH+AQIBAwAC/wEAAgACAAD//wEB/v7+AQAAAAEB/v38AAAAAQECAQEA/v7/AgEB/v///wD/AwID//4AAf8AAgICAAEB/fz8/f79AP//AQEB/Pz+////AgEB/gAA//////8AAP7//wAA///////9/wD+AgIDBwcJAAAB/f/9/v36/v38/v/+AAICAAEDAwUJCQwQ//76+/n3/wECAAEEAQEFAQMDAAID/v/7AP34/wD+///9AP0CAv3+//8A/gEAAQAAAgIBAwMDBAQEAwMDAwMCAQECAQH9AgEC/wH/////AAABAAEAACuB1H4EAQIBAQEBAAEBAQIBAQEBAQIBAQEBAgIAAAEBAQABAQEBAQEB/wEBAgAAAAEBAAAAAAEA/wABAgICAAD/Af8BAAD+AgAA//8BAP//AQMBAP0AAP8CAgIAAP8A/wD/AAABAgEA/wAA//4A/gEAAAEAAQEBAwEBAAICAAABAP7+/v7++fj67+/x5OnqDw8ODQwKFA8LBQQHAP79AQD//wH/BAD9/QH//PwA/gD8AQABA/8BAf3//wD7/v3+AQIEAQL//wIA/gEBAAEBAwIBAAABAgEBAAABAQEC/v8A/v79AQECAAAAAgMCAAAA/wH/AAAAAQD+///9/f4BAwIA/wABAQAB/wACAQIAAP4B/wD9AQEBAQAA/wL+/v4CAQEA//8AAQH//v7/AP8AAQABAgECAP/+///9AP8A/P/+AQP//wEC////AAL/AAD/AAEAAQIA/vz9AQEDAQQBAP8C//4AAQIC//8B/////v//AQP+AAEC//78Af8AAAMEAQEA/v3+AgL+AAEB//8AAAAA////AP4A/wAAAP8AAQAAAP/+AP///wABAQAAAAEAAP///wEAAP/+AAABAQEAAAAA/wAAAAABAAD/AAD/AQH/AgIA/v/+/v8B/////wAAAP8AAQABAQAAAAAAAf8AAAD//wH+/wD/AAD/AP//AQAB/wABAwIA/f3+/////wD/////AQACAAD+AAEA///+///+AP8C/wIB/////wD/AQEB/v39AQEAAQEAAv4C/gICAgAAAQEAAQAAAAEA/////v/+AwIDAQECAAIAAAH+AgAB/Pz9AAEA//7+AgIDAAD////+AwMD//4AAQAAAAD/AP8A/v//AQEBAAEA//8AAQECAwMCAQIEAP///v36///+AAD+/P379vj5CggLCQwTAwQI+Pf8BAQIAwj/+Pz6+wD6AQL9AgAD//3+AQEC/f/+/v/9AQEA/v/+////AP8AAAAAAQEABQUEBwcIBQUFAwIDAgL9AgH//gIAAP/+AQAA//8AAQAABAIAAQEAAQEBAQEBAQABAQABAQACAQACAQEBAQEBAQEBAQEBAQAAAAABAQEAAQECAQD/AAEBAQICAgD///8B//8AAP//AAACAf4AAP/+AAAC/gEAAf////4AAAEAAQAAAAD///8BAQAB/wIAAf4CAAIAAv0A/wH+AQL/AAABAAABAfz8/e/y8+Tn6AkIBw0LCQcGHBENCwMEAf34/wD6/wD/BAH+/gMB/wL/BAICAgD+AAD8/f/9+gADBgADAf7/AAAAAgIE/wMEAwEAAgAAAf8AAAEAAQAAAQIBAgIEAv8AAAD///8A/wEA/QIBAQD///7//gD/+/8A/gAABgMCA/8BAQAAAgAA/wEAAAAAAAD///8AAQD/AAECAf79Af///wD/AAEBAAICAQEAAQEAAAECA/7//v8B/wEAAAEBAAAAAAABAAAAAP4AAAEAAP/9/gD/AgEDAQH+AgEABP/+AP//AAD//wAAAQEBAAH//wAA/gEBAv7+/gICAQD/Av8BAP//AAEA/wAA//7+/gAAAP//AQMCAgAAAAABAP//AAIAAgAAAAECAQAA/wD///8A//8A/wD+Af8CAgIBBAEBAQAA/wAAAAAA//8B/wAAAAEAAAEBAP/+/gD/AAAAAQAAAP8AAAIBAv///gAA//8A/wD//gAAAf7//wICAQEAAP7+AAD//wICAv39/P7//v///QD/AAICAgEBAf4A/gMAAv/+/////wECAv/9/gAAAAECAv7+/f8BAQMCBP4A/QAAAAECAQH/AP39/QMDAwEBAQD/Af8A/wABAvz8/AAA/wEAAAICAgUFBPz9/QECAgEBAv4B/QD/AP//AP///gEBAgECAP/9AQEBAgICBAMCAgIBAfv7/P7+/gEBAv4B//j5+AYHCQsPEwYKDvn3+AIBBP//Afb28fr5+AQEBgABAQD9/AUAAPn6+f/9AQEBAgAAAv//AP//Af8AAf///gAAAP8A/gIBAQMEAgACAQIBAAECAAL/////Af///wAAAQEAAQQAAQEBAgABAQEAAQECAQEAAQEBAQEBAQIBAgACAQIAAQEBAAABAQEBAAEBAgEAAQECAAEBAQEBAQEA/wD//wD/AgP//v4AAwL/AP4C/wH/AQH9/wD/AAABAf///wABAQEAAQEC//8AAwP+//4C/gD/AgACAAEA/wL/Av4BAAIBAP7//f/6+vvu7/HkB+cMCggLCgoJCAgKCAcDBv0AAP/8/fsCAgIB/wQA/gT//f79AP8AAv4BBAMB/////f4BAQMDAgECAAH//fsAAAMBAQH/AQEBAQEBAAH/AgICAwH////+/v0B/wABAAMB////AAACAAABAQH/AQADAf8AAP7////+/gD/AAEBAP4AAf8AAAAA/v//AP/+//7+//4CAQAAAAAAAQICAgMA/gAB//7///0BAQEAAAABAQEBAgIBAAD+//4CAQIB/wAAAQEBAf//AAL//wMB/gIAAAD//v///v4AAAIAAgEBAAH+/////v0EBAYAAAD9/f0BAgADAAEAAQMAAQH//wEBAAH///4AAAD///4BAQEBAQL//v8BAwEBAAIBAQD9//4AAAAA//7/AP4A/wH9/gABAv4AAAL//wAAAAD/AP////8AAQAB//8A/wAA/wEBAQEA//7/AQECAAIA//8BAP//AP8A//7///8BAgEBAAEAAAAAAP8A//8BAQH//wD///8A////AAD///8CAAEAAQAA/wAAAAACAgD/AAIBAAD5/vwBAAEAAAABAQIDAv/+/v0BAgMA//8A/wEBAAECAwMCAgH//v//Av8A/gABAQMA/fz/AAD/AAABAwIBAgL++vsEAgP+AAABAAH///////8DAgQAAAD/AP//AAAAAQECAgIBAwL+/wD/AAABAwMBAP38/f8GBwkIDgsICQv+/wAAAPv7+vL48e77+PcFBwoCBAYC/wEB+/f49voCBQwDBAb8+/UA//8AAQUBAgQBAAIA/wEBAQADAQMBAQD//f8CAQABAgEEAwL9/v4A/wD/AAMAAAD/AAAEAgICAgEBAAICAgEBAQICAQIBAQEBAQEBAgECAQEAAQEBAAEBAQABAQEBAgIBAQEBAQABAQEBAQEB////AP//Af8A/gAAAv7+/wEC/wEA/wH/Af//AAAAAAAAAQIBAAABAAAAAAAA/wD/AgAC/wL+//8BAAD/AP//AAEBAf8AAAH/AAIB////9/j56evuCAYGDw4ODg0NBgUSCAQKAP7//gL5+wH6/wABAgEAAQIEAwMCAQIDAgMDAQIDAAEDAQIDAf8AAf3+AP7/AAH/AAIC/wIA/wIB/wEAAQAC//8AAAAAAgICAf8AAP//AQEC/wD9/wABAgIA/wAC///+AP//AAACAgAA/gAAAAH//wD/Af8AAP//AAAAAQD/AgEA//3/Af///wEB/wH/AQD/////AQEBAAEBAgECAAEAAAAC/wEBAf//AAIB//4BAf8BAQED/wABAQEEAQME//7//f7+AgMDAwQE/f38AQIF//7/AAEC////AQMC/fz9AgEBAv/9///+AQEE////AQEAAAEBAQEAAQECAAAAAAAAAgIB/wAAAQH//v////7+/wD/AQAA////////AwMB/v/8AwIFAAAAAAAAAP//AAD/AP8A/wEAAQD+AAH/AAAC/wD/AwABAAAAAAH+/wD/AAAAAP4AAQEA/v79AwIEAQAA/gAAAQICAAAA//39AgIBAAAC/////wD//v//AAAA/v//Av/+//8CAAAA/f/+/wD/AgICAgIB/v4A////AQACAgL///4AAQIBAQACBAEB/////wH/AAD/BAQD/wD+AAABAQEBAAEAAv8D/wAAAQIBAwQE//v7AAAA/gD/AwMDAQEB/fz+AgEC/gH+AQECAQMAAP8AAAEA/wEAAAIB//8A/gABCg0OBwcL/vwAAPz7/Pb1+/by///8BwwRBAgIAf4B/vv4+vn2BAgLAgIK+fj2Af//AQMBBAgKAQMG/wACAAAAAf8AAAAA//4AAAABAgECAwICAQAAAQEBAAAA/wD+/wABAP4ABAEBAAACAQEBAQICAgEBAQEBAQECAQECAQEBAQEBAAEBAQEBAgEBAQEBAQEBAQIBAQABAQIBAQEAAP8AAQAB////AP////8AAQECAQH/AQH/AQECAP///wD/AQAAAAAAAAABAAEAAQIAAf8BAP//Af/+/wECAAEB/gH9/wAE/wD9AAIBAf3+/v79/vX39+nt8N3g4w8MDQsJCQcOCwIFBwMIDAICAP/7+gD9/v/+/v4AAAEBAQIBAQICAf8BAAEA/wH/Af/+/wAB/gEBAf7++wED//39/v0BAQIEAwMCAwECAwABAQAAAP8AAf/+/wABA/8B/v//AAAB/v//AAEAAgIB//4AAQH//gD/AgEBAf8B//8B/wD/AAICAv8A//8A/v/9AAD//QD/AP7/AQIBAf7//wIBAf8AAP//AAL/AAD//wABAQEBAwQFA/79/gACBAMBAf/+/gEBAf8DAwMDBP7//wMA//7//wH+/gIDAwABAQACAgMDAv7/AP7/APz8/AQBBAD/AQMEAwAAAgD//QAAAQICAv///gD/AP4AAAEA/wEBAv7//f7//QD//wAAAQABAf///QD/AgAB/f7+AgEBAQEAAAAAAQD//gABAAD//v4A/wAAAP///QEBAQACAQD//////wAAAf7//v8A/wIAAAD//wD///0A/wEAAAD/AQEBAP8AAAEBAgEB/QAA/wD+AP7//gICAv/+/f4BAfv//gICA/7//wIBAQAAAQD/AP////7//wEBAAEAAQECAQIBAQADA/7+/gEAAgIC/////wIDAv79/wICAQMCBf3+/gIB/v38/QQDBQEBAf8BAAABAQH/AAMDA/7+/gEBAQAA/wEAAQICAgEBAQABAP3+/gABAQMCA/3+/gYHCAICAv3+AP79/Pv29fz6+AAA/wcNDwUJDP8BAfv19Pz8+gMHBv/+Avn59wEDBwYHBgEDAAIGBgMGBwAAAQH+/gH/AQH/Af///v7///7//gIB/wEDAAICAgAAAP8AAv////8DAAQBAQIBAQEBAgEAAgEAAAEAAQEAAQEAAAEAAQAAAgEBAQEBAQECAQEBAQECAQIBAAEBAQABAQEAAAECAQD/AP/9/f4CAQH/AgEA/QEAAQAAAQAAAP8B/wH/AP8BAAEAAQH///8CAgIAAAAB////AQH/Af7//wIA/gEBAf8A/QABAQH+/QH/AAH//wD7+/3y9PTr7O7j5ucWExINCgcIBgcDCf8AAP3+/v79/Pj//vz//wAAAwL//wD//wECAgIBAf8AAP3//wEAAAD+//wCAgD//v4BAAL/AQMA/v///wAA//8AAAEABAMCAgICAwMAAQD///3///4AAP4CAQH/AAD///0A/wAAAAEBAAAA/wAAAAECAgH+/v7//v7/AP7/AP7/AP7//wD/AP8AAQD/AAD/AQD/AAAAAQL/AP//AAECAQICAgQBAQMFBAb8Af0BBAMAAAH+/vv//////wICBAT+//3+/v8EBQb8/f0DBQP9/f4BAAD/AwMCAgD+/v4BAgP9/P4CBf////8A//0AAQEAAAH/AAAAAQH/AP8AAAAAAAH///4A//3//f3///8CAgIBAAACAQH/AP8AAAEB//0AAAT/AAABAAD/AAEAAAAAAAD//v8AAQAAAAD/AP///v4AAQAA/wIBAgABAP///v/8/f0AAQECAP8BAAEAAAAAAAD//v4CAQH//v4AAAAAAAIBAf7+/v7+/v7///////8AAP7+/v/+//8DAQT///4BAQQA//8BAQEDAgIAAAH///4AAAAB/wAAAAABAQEAAQAB/wEA/wL+/vwCAgUBAQH/AP0BAAP+/f8CAgH/AP8CAQH/AP8DAwQBAQEAAAACAgL///4BAQEAAQMCAQH9/v0AAP8DAgL+/v4AAAICAgX//wD+/fz///78/vwBBAYJChUFCAn/AP/28/H69/QCAQAAAAP6/fsABQcFBgMCAwEAAQADBQMBBAMA//7+/f/9/wD+/Pv++/wA/f4B//4BAf4BAQEBAQEA/wD//wD/AAH//wAEAQEBAQECAgEBAAABAQIBAQEAAQIBAgEAAAD/AQACAAABAAAAAQABAQAAAQAAAgEAAQECAQEAAgECAAAA/v//AAIA/QD/Av8B/gEBAQABAAECAAD/AQH/AQAC/wAAAQEAAQEBAAEAAQAAAAECAQAA//8A////AQD//v//AAAAAAAAAAAB//8A//7/AP//+vn77vHx5OfpExEQDAwIFxMPBgEDAAMEAQMEAgMCAP8CAgAB/wECAgECAQAA//7+///9/wAB/v8AAQICAgQG//4A/f3+AQECAgQEAPwF/wL//vwBAQICAf/+AgYFAAAC/v7/AQIBAAAAAAEBAAABAv8B/wACAQH///8AAf7+//8B/gD9/QD+AP/8//7+//7+//7/Af4AAAD/AAAAAf8B/gH/AAAA/wAAAgEBAQIDAAIDAAECAgMEAQEC/wICAwID/f79AQIB/f4ABP//AAAA//4AAgID/v3+AgP/AQAB//8AAgID/wABAP4BAQAC//79AgME/v8A//7//gD+/v//BAMDAgIC/v7+AQAA/wD+/wH/AQAAAf8A/v79/wD9AAAA/v4AAQIAAwIEAQEAAP8BAAEB////AQIAAQABAQEB/wD9///+AQEAAP8A/wD///7//gL8AQABAAAA//4A/v7+AAD//v7/AQIA//8AAQD//wEAAQEB/wAAAgEB/f8BAQACAQEBAQIB//v///8AAgEC//7+AQIBAAEBAAAAAQIB//7/AAEAAQECAAD/AAEBAgIB/fwAAQEB///+AwID/v//AQAC/wH+////AAAAAwMDAAAA/v7/AQEAAgIDAAH///3/AQECAQAAAAEA/f3+AQAAAAIBAP4AAgIC/wH+////AAD/Af8AAgID/v79AQIB//0BAP79Af8A////BAcHBgkHAQQC///9+vTy+/j2CAoL/vz8+/v6AwcKBAUDAgMBAQL9AgICAwMD/wAA/f38////AP4BAP////7+AQH/AwICAAMCAAABAQECAP8AAAD/AAAB/wAABAABAQEAAQEBAgEBAQEBAQACAQEAAQEBAQEBAgEBAgEBAQIBAAEBAAIBAQIBAQEBAgIBAAAAAQEAAQABAAIBAf///wEBAQEBAQEBAAEBAAECAAH9AP8BAAAAAAEAAAEBAAAAAQEBAQEAAf8A/wAAAAEBAv7+/v8CAAH+/wIBAf8CAgD//wAC/wAD/wAAAP7+//P0+Obr7Qrh4wsLBwcEARMOCwMCBAEEBQH+BwIBAQD+Af8AAP//AAD+AAEA/f/+/v//AAEAAAAAAAD9//8CAwEBAAIEBAD+AP7+/wECBAMDBAH/AQD+/v76+v8D/P8AAQIDAv8AAQABAQECAP7+/v/+/gAA/v/9/v/+/v7//gD+/v8A/v8B/wAA/wD+AAD////+AgD/AAABAQACAAMDBAD///8AAAD/AQEBAwMEBgABBAACAwIDBP4AAAMDAgD//QABAQABAv//AAEAAQABAP8AAAQEBP7+AAIEAwECAgIBA/8AAAABAAEAAgEBAv///wMCAwAAAAD/AAIBAf7+/gIDA//+/wEDAQAAAP/+/QICBP7//f/+/f/+/wIBAgEBAP7///8A/wEAAQICAAAAAQEAAQEAAP8B/wEBAP38/v4A/gMCA////wD/Af///v///gABAv///AEAAQAAAAEBAQICAgAAAP7+/QEAAgECAP7//wAAAAEBAQICA/7+/gEBAf3+/wICAv///wAAAPz8/AABAQL/AwEAAgD//wEAAAECAgD+/v/8/v//AP7/AQAA/wECAQEAAf///wEAAAAAAAD+AAEBAQICAwD/AP4A/wMCAf/+/wAB/wICAv7+/gABAAEAAQAAAAAA/wACAQIBAf4AAgD+/AD/AQEA/wD/AQIDAwD//wABAQD/AgAB/gEBAQABAP8AAAMFBQEB/////fz6+fz7+QkKCwD+Afr69QADBgYFBQMFBAIB/wID/P8A/v//////AQACAv///f7+AP78/v38/P/+/QMCAQH/BAABAAAAAQAAAAABAAD/AQAA/wQBAQAAAQAAAAAAAAABAAEAAAEAAQAAAAEAAAABAf8BAQEBAQIBAQEBAQIAAAACAAAAAAEAAAD///8BAQAB/wECAQH+AAEAAAABAQEAAQEB/wD/AAAAAQAAAAABAAAAAAIBAAEBAQAAAQAA/wEA/wAAAP8BAQECAAH/AgD+AP8CAAAAAP7/AAIBAP8AAP8A/QD6/Pvt7/ABAQAHBAIKBgUHBBsOCgcCBgkC///////+APwB//8B/wAB//0AAP8A/v7///7///8BAQL/AQECAAAAAwEB//4AAQL///0A/v//AP//Av0C/wL//gAA/gP/AQH+/gIAAQEAAAD+AQIAAgIBAAEA/wP+//8BAQIB/v/+/gABAAABAf4A//8AAf/+/wAAAP/+/wAAAAL//gD//gH/AAEBAgICAwIBAgMAAQIBAgIBAwP/AQEBAAECBAQB//3//v8GBgcA/wACAgH/AAD//wACAgUAAQABAgABAAL//v//AAAAAwABAAEBAgIA//8AAf//AAAAAP8CAQH+//////4BAQH//v8CAwIBAwMBAQAB/f/9/v/+//8EAwP/AP8BAAAA/wABAQIAAAIAAAH/AAAB/wEA/wD/AP//AP////7+/gEAAAD/AAAAAAD+/v4B//8AAQEB/wEBAQEA/wAAAAAAAAD//wAAAv///wEDAgH//wD/AQABAAICAgEAAAAA//0BAQICAf/+//8BAQIA/gD/AP8CAwH+//8BAAL///8CAQABBAQAAP8BAQECAgT+AP8AAP/+/v4BAgEB/wD+/wACAQD///8CAQEDAQH/AAP9APwCAQH///8BAAEEAwP+/v//AP8CAwIA/wABAQEAAAAAAQEA//8AAAECAgEAAAD9/f0CAAIBAgD+AAL+//wBAQMDBAD+/v4BAf7+/PwA/v4JCQz////18/UCBQUHBgYBAwMDAgICAwD+//n8+/kA/wACAgIBAAQA/gD7AP38/P76+vr7+voAAP8BAQEAAQABAAIAAf8AAAEAAQAAAAEEAQECAQECAQEBAAEBAAEBAQEBAQAAAQAAAQEBAQECAQEBAgEBAQABAQH/Af8BAAABAQAAAAAAAQEAAQABAAEAAQABAQICAf7+AAAAAAAB//8AAAAAAP8AAAAAAAAAAQEAAAEAAQAB/wAAAAD/AAAAAAEAAAABAQAA/wABAAEAAQEBAQEBAQEBAQEBAQEBAgP//v4A+vr77vDy3eHlCAcGCQkIIx0ZCQMGAAX8AP36AP7///39AP/+AP//AP8B/wAAAwEB/wIDAAEDAgMEAgUF/wAAAQICAAEB/wAA//7+/v/8Av8C/f7/AP/9AQIDAQMD/wICAQIBAAABAAADAAIC/wECAgIEAgAEAAD/AgMDAQH+AP/+/v/7/v/9AP7+AAABAAD/AQIAAAAA///+/v38AwUHAQIDAgMFAQMEAAMDAgIDAwQFAgIC/gD//f3+CAgK9vj5AwQF//8AAAECAgID/wD/AQECAgEAAAD/AQEBAAEAAP7//v3+/fz9AAIBAgUA/v/+AgAB/f7/AAACAAEA/f38BAQE/v79AgAEAP8BAQEB//8AAAAAAP///v/+AQEBAQECAAAAAP8AAP//AAL/AP8AAAEBAAEA//7+AQAAAP8A/v/+AgICAgIC/v3+/wD////+Av8E/gD/AgIA/wAB////////AwMDAwIC//8AAAAB///+AP4AAQABAgICAP//AAAAAQICAQAAAf79AAD//wEBAQICAQEBAQEC//4B/v7+AQECAAD+//7/AAABAAAAAAAB/v7/AQABAP8B/v7/AAAAAAEBAAAAAQEBAAEA/wH/AQAAAAABAQD+AgIB//8BAQH+AP8AAwID////////AAAAAgIB/v3/AAEBAP8C/wD+AAABAgME/fv9AP//AQADAwMB/wECAQL9///9AQEBBwUJ///+9fT1AQQGCQkIAgIBAgMBAgEB/fz5/fz+/wAAAQID/wH///4A//8C//79+fr69/b2/Pr8//4AAAAAAQABAQEAAAECAAAAAAAAAAAABAEAAQEBAAEAAQECAQEAAQEAAQEBAAABAQICAQEBAQEBAf///wEBAAD+AQEBAf8A/wEAAQEBAAABAQABAQD///8AAAAAAP8AAf8AAP8A/v8AAAEBAv8A/v///wEAAQAAAAD/AP8B/wD/AAEAAQAB////AQD//wABAAH/AAEBAAABAQEBAQABAAECAQL/Af79AQAAAAAAAPv5++zv8d7i5hEQDhMQDQUPCwQBAQABAAEAAP8A/wD//v///wH/AQEBAgAAAQD/AQEBAQECBQEBBQIBAf8BAAAAAP8BAQEBAAEAAgIAAf3+/P///wH+/QD9/gEDAv8A////AAECAgICA/8BAv0CAwAAAwICAwECAQABAAABAQH+AwECAAD/AgD///8AAAH//v8AAAAAAf/9/wAEAAEBA/8BAgYGB/8CBP//AP/+/wMHBgQCAv39/QEDBgoKBf//AQAA/wEBAP8A/v8AAAAAAP///gD///4AAQQEBP0B/QD+/gEBAv8AAPz8/AMCA/3/AAEBAwABAQEA/v///gD/AwIAAgAAAAEBAAEBAgEBAv7//wAAAQAAAQAAAP///gECAv8A/wEBAgEAAP7//v4A/wAB/wAAAQECAgIBA/79/v7/AAMBAQAAAAD//wAAAP4B/gEAAgAAAf7+/AEBAgIBAQAAAf/+//4A/wMBAwAAAP//AQIBAAEAAf7//wAAAAIAAf8A/gAA/wAA/gEAAwD//wEBAQIBAf8DAf////4A///+//79/QEB/gECAwEBAf/9/wECAv/+/v///wD/AAD//gAAAP8A/wH/AQAAAAABAgAAAAAAAAECAgD+/gAAAAAAAQAB/wEAAf///gEBAf//AQECAgD//wEBAf7/AQMDA/z8/P7//gEBAgEC/gAABP8C/QH+AP39/wQEBv8B/fn29wIGCA0HBwAB/wAA/QQCAv38+v79/v//AAEAAwEBAP7/AAAAAwD/APr6/fX09fTz9P/+/QH/AAAB/wAAAQAAAAD/AAABAAAAAAEBAAQAAQAAAAAAAf8A/wIAAgAAAQAAAAABAQEAAAABAAABAAACAQEAAQEBAAAAAQACAAEBAQEAAAEA//8AAAD/AAAA/wABAAAAAP8AAAAAAAABAAAAAAD/AAEBAAD/AP8B/wABAQAAAAAAAAEAAP8AAAEAAP8BAQH/AP8BAQIB////Af4BAgIC////AP8C/wL/AAAC//7+//38/P319P3l5+kKCQcSDgwFIhsQCQQDAwUBBP4C/wH//v4B//3//gAA//7/AP//AQEBAgYAAQMAAgX/AgIAAgEAAAEDAQEAAQABAAEAAAEBAAIBAP8AAAAA//8B/v8AAAAB///+/fr+AgH/AAIBAQIAAQP9AwMBAQL/AQH/AQD///7+AP4B/wEAAQICAQD+/v8A/wAA/wH+/v7+/f4FBwUCAgT+AAIFBAYCAgP9///+/v8DAwIHBwb+AP7/AP8EBAX/AP8CAQD9//4AAAH+//4DAwIAAgH9/P39/PsAAQH+/v0DAwf//wH+AP4AAQH//v4CAgEA//8BAgH//v8BAP8BAgIAAAAAAQH//wAAAQEBAAEEBAQAAQD9/fsCAgD//wQAAAABAgAA/v8AAP//AP7+/f4A//8BAgECAAP/AgH//v7///4BAgP//v4BAAAAAAH/AAAA//4CAQL+/v/+AP4EAgL/AAEDAQMAAAECAgMAAAD+/v4A/f4AAAACAgIAAP/9/f39/Pv//wD/AP///v7+/v4AAQAAAAABAgL9/f0A/gD+/v4BAAABAP8CAgP//////f0AAQH//wABAQD+AP4AAP7//wL////+/v4AAP8DAwH//wP//wAAAQIBAf////4BAAEAAQAAAAABAQEDAgL+/v3/AAIAAf8DAAP7+/z+/v4EBAP8/f0CAgIAAP8AAAL+AP8B/wL+/gL6/PoBBAQKBwcAAf/+//4DAQP+/fz8/P39/v//AAT/AP4DAAABAf7+//37+/z19fXw8PL39vn9/P7+/v4BAQAAAf7/AgIAAP4AAAIBAAD/AAAEAP8BAAEAAAACAQH/AQACAAABAAAAAP8AAP4A/wP/AQAB/wAAAv8A/wEBAv8AAAL/////AAABAQEBAP8A/wD////9//8AAAD/AP8AAQABAQEBAAAAAv8A/wEAAP8AAAEB/wAAAP8AAQH/AAABAAAAAQEBAP//AAAC/wD+AAEAAf8AAAAAAQEAAQAAAAAAAQAAAQEBAP8BAAD//P398vP13d/kCAYGBgUEKCEZEAcIAQEC/f73/vz6Af3/AP39////AAH/AgIEAv/6//7//gAAAgUHAP8DAAAB/wICAQICAP8A/wEAAwQEAP7+AAD/AAD/AAABAQABAAH/AwAB////AP8AAP/+/wD+AP79/wEBAAAB/gAB/gAA/wD/AAAAAgIBAAEBAgIDAAAC/f7/AP8B/P4ACAIEAwQGBAUGAAABAgMFBQQC+vv7BAICAAABAgIEAP39/f79AAAA/wAAAwQE/wAA///+/f0AAwEDAgIC/v78AAAC/v7/AQD9AgQEAwAD//3+AwMBAQL//wD9/f3///7//QMDAwMCAQAA/v7+AQH/AAD+AwMDAQIC/v38/v77/Pz+BQUBAwL///4AAAD/AAD/AQEAAAD/AAH/AQAC/wD/AQAAAAEB/gD/Af/+////AQAB/gD+AAABAP8B/wH+AAAA//7////+//8AAAH/AgIDAAD//f39AAEAAgICAAAAAQAB/v7+/v7//v/+AgEC////AAD//fz7/QECAgEB//0B/v7+AgACAP//AAAB//7//f/9/////wAAAgAAAP/+AAAB/v3+/v7+AgEAAP//////AQEAAQAB/wAAAgEB/gD+AQEAAQEBAgIC/f79AAECAgD//wEBAP//AQEB///+/v79/v78AgMC////AQECAQEBAAIC//38AgEC/wED/QL+AwYHBQQEAAAA/v36AgEC/v//+/v8/P7//wECAQICAf///v76/P36+/r69fb37/Dx7e7v8/b1+vz7/wAAAQAA//8AAQD+AQEBAP/+/wEAAf8ABAAA/gAAAgAA/v//AgAB/wIA/wEAAgEB/wABAf/+//8B/gEBAv8BAAH/AP8A////AQEAAgD//wAC//8AAf7+//7/AP7//gD/AAEBAAECAQL/Af7///8AAAAA/wAAAP8A/wIAAf8B//8AAAD/AAAA/wD/Af8A/////v////7///7+/v////3+/v7+/v/+/v////////8A/v8A/v7+//78/u3u8dPY3QYHBRAQDAwaFgYFAwH8/AH8Af8B/gD+/wAA//8A/wIAAAD/AP///QH8+wD+Af8BAQABAf8BAAIDAwEEBAEBBAABAgEBAQICAv//AP3//wABAgICAP//AP/9/gD//v8AAAABAAD/AAD+/gD//f///wEBAf8AAf8AAP0A/////wIDBQIEBgIEBgYFA/8BAwEEBAMGBv8BAQMFBQIEBAIDAQcCA/v7/AcIBf8AAQEEAfn6+QUEBf7+/f7+/wECAQICAv3+/gH9AwAA/wD/AQIAAf//AQAA/////wMEAv8AAQEBAP/8+wACAQAAAgICA///AAEBAAEA/////v/9/wEDAAEBAP////3+/Pv7+v/+/gUECAAAAQAAAAEAAQACAAD/AAAAAAD/AP4A/gECAgIAAP3+/gD///7+AP7+AAECAAEAAf7+/gABAQIBAgABAQIB/wAAAf/+//4CAAD//wD//v7//QIAAgAA//7+/wEBAf7//gEA/wAAAQECAv39/QD+AAAC/gD///4AAP79/gMCBP8B/wICAQD/Af7////+/wEBAAMBAv39/v8A/wEAAAD/AP/+//4C/gEBAAEAAP///gABAAIBAv7+/wAAAAAAAAEBAQAAAAEAAQEAAAECAQD//wECAgEAAP//Af39/wAAAQECAf/8/QMDAgECAv/+/gICA/////3+/wICBAQEBgAA//78/AAAAgEAAP37+f39/gIDBAIBAf8BAP78+/3+Afv8/ff4+u/x9ejr7unu7vX49/7//wAAAAABAAAAAQD/AP8A/wAAAAD/Af8A/wT///8A//3//wMAAQAB/////wEAAP/+/f8BAwACAAL/AAH+//4BAAEAAgEAAAEA/f8BAf8A/wAB/wD/AP/+/v/////+AP/9/v7+/v7////+///+//8A////AAD///8A/v/+AAAAAf8A/wEAAP///wEAAAAA/wD+//7+/v7+//////7+/v7+/v/+/v3+/v7+/f/+/f7//////wAAAAAAAQD+/v/y9PXe5Ocg5eoVEREUDAoEAP39/Pf8Afj/Av8B/wICAgIAAAH//wABAQEB/gAA/v0BAQH8/vwA/v0AAQD/BQUFCgwCBgcAAQL9/v//AAABAAEAAQEAAQEBAQIEAQD9//4A////AAD//v7//Pz///7//v0A/wABAAIBAAD+Af///gD8/QAD/wEDAgMFBwkBBAYBAgQEBwgDAwMAAgMEAwMCAwIBAQMAAQL8/PwCAwQEBAT8A/3+//4BAgP9/fwDAAL8//8BAgMBAAAA/wAAAAEBAgECAQL/AQAA//7//f8CAgP///4EBAL8/v4BAQICAgIBAP/+//8CAQAAAAD/Af/+/P0BAQEAAAH//////wADBAUBAgIBAQH//wABAgAB/wD///4AAAABAgL///8A//8AAAAAAP8BAAABAQEBAQMBAAH///8BAAL///8AAAEAAQABAwMBAQEAAv8BAP8AAP3/AP8BAQEAAAD+/gD///8AAQADAgMA//8GAgb8+/0A/v8BAgIBAAL+//8BAQEDAwQAAAH+//8CAAEAAAD///8A/wD////+AQD/AP4BAQH///8AAAAAAAD+/v4CAQIAAQD9/v8BAAEBAP//AP/////+/wABAAAAAAABAQECAf8BAQL9//0CAQEAAAD//wEBAQEEBQT+/f4BBAMBAQL/AP8AAQEBAQH9/f0AAQEDAwQBAAD9/v0BAgMBAP/+/Pv//v8DAwUCAwEAAAD//v3/AgP+/wD+AAL8AQL4/P32+Pv6/Pz/AAABAgAA/////wEAAf8AAAD//wABAAEAAf4B/wAE/wD+AP8C//////7+AAIBAf0BAQEAAQIBAf3+/wD/AQD+AQEAAAABAv4AAQABAAAAAAAAAQAA/wAAAP///////v///v/+/v///////v7//v/9AP8A/v/+/v3/AAAA/wD/AAD/////AP8A//8AAAAAAP8A///+/f7+/wD///3//v/+//8A///+/v3+/v7+/v7+/v7////+/v//Af7//gD/AP7//f775+fq2t3iIRsdCwkKCwQJAwcM/vr3/v38AP3//wD9AP4CAgD/AP7/Av8CAAIA///9//v6AP7+/f/9AfsEAP78AwYIAgUF/gABAAEDAQIEAQH///8CAgIBAQMDAwAC/v8AAQD//v7+/gQC/v0CAf79/v3+Af4B//8AAP8AAgUEAQMF/f8AAwMFAAIEAgQG/f7/+/v7AQMEBgUG/v/+AP8AAgD/BAQE/f0A/v79/v8DAgMD/v79AgEA/gEB/P3+BgYCAQEA/f78AQABAQEAAAECAP79AQMBAgEC/f7/AgQCAf7/AP7/AgACAAEAAQEBAAAAAP7//wEBAQAAAAEBAAIBAP8A////AQABBQUHAwICAAAAAAAAAAD/AP8BAP8A//8AAQAAAgAC/wH+/wABAP/+//0AAQIAAQAB/wD//wAA/wEAAP8AAQEBAAEA/v3/AgMAAgEC/f78/gABAf////3+AgICAAAB///+/Pz8AgEBAQIBAAAAAAAAAAEA/v/+BQEDAwQDAv7//v//AP//AQEB///+//8BAP/9AQECAQMC/v79/v/9AgED///+AP7/AAIB///9AAAA/v8AAwQD/v3+AgIDAAD/AP//AAAAAQABAgIB////AAD/AAECAAAAAAEBAQAAAAD/////AgIC/f3+AgECAAIBAQAA+/z8////AP8AAQAAAQIBAQABAAD/Av8C/wD+/gAA/gAAAQUEBAICAP////7+//8A/wH9AgIEAgIFAAD7/f4B/f8A/wACAQEE/f/+////AAD/AQD/AAACAAAB/wH+AP8A//8ABP79/gAB///+/wAC/v/9AAABAgEBAQIBAf8A/wEBAQEAAQAAAAEA/wABAQD/AAEAAP//AAAB/wAAAAAAAP7+/wD/AAAA/v7///7+//8A///////+//7//v39/wEAAP8A///+/wAAAAAA//7+AAAA///+//8A///+/v7//////////wD///7////+/////v39/gD/AP3//gD//////wAAAP////3+/vHv8tjY3hoWFQoGAR8WFQkKEf79+fz9+gAA+wD+AQL//gD9/wD+APwA/AIBBAEDAQL++v77+wAAAAD//P8A/v79+gH6Bf8BAgECBv8FBf8DAwAAAv0BAQABAgABAwIEAwEBAgMDAwMCBP//Bv7+/P7+AP8AAQEAAv//Av39/QIECAYFBQEDAwYHCgQJCf8BAf//AP79/v38/AMEBP7+//8C/gQCAwEBAv8A//z9/QACAQEAAf8AAQMBAv4B//z8/QUEAwAAAf3//gQCAv///v8AAAD9/wADAAQDAwD//gAA/v7///8BAQIAAQABAAEAAQABAQEBAQABAgD+/gECA/79/QEBAAABAQIBA/8AAP//AP///wEDAv/+/wAA/wAA/wABAQABAP//AQD///8AAAEC/wD/AP4A//4A/QD+AQECAQAB/wAAAAEAAQD//gIAAf//////AAEB//78/wICAf8AAQECAP/9//8A/wABAgICAv7+/gD/AQMC/v0BAQICAv79/QAAAP/+/gEBAf///gEBAf/+///+/wAB/gH///8A/wD///8A/v3+/gIBAQD//wD/AP3+/gMCAv38/P////8A/wD/AP///wD//wICAQD/AP//////AAAA/v4AAAEAAP8BAP/+AAAAAAEBA//+/AMEBP8BAP/8/gD/AAICAQAAAv39/wH/AgEBAAAAAQICAf7+/wABAQEDBAMA/wABAP///wABAAAAAwD+Av4CAwEDBv8A9/j4+Pb19fv7/P79////AAAAAAAA/wD/AQAA//8AAAEAAAAAAAEAAAT8/P0BAQH+Af4BAAH+AQAAAQIAAP8BAAEAAP8BAQAAAQAAAAD//wABAAAAAAAA/wAAAQD/AAAA////AP///gAAAAAA///+/v//AP8A///+/wD/AP7////+/f7/AP7//gAA/wEAAAAAAP/+/v//AP8A//8A/////wD/AAD///7//wD///8AAAAAAP/+/v7//gD//wABAAD/AAEBAAD+AP8AAAABAAEAAAHx8/Lo6ury9hz6/xMIBwcECg39//j++fUA/f4B/P8B+v79/v0A/v8AAgD+/gABAAACAwMAAQABAwICAQACAP8A/v0CAP////sB//4AAgMAAgIAAQP+AAH/AQEA+wIAAgL/AQIAAwMAAQICAgIDAgMAAgT+AAMBAgQEAwP+/wABAgMDBQb9/wAB+/4ICggCAwQCAwT/Af///wACAgP////8/v0CAgL+/PwA/f4A//8A/////wACAgIDAAH7+/z/A/4BAgQBAAD6+/oGBQUBAQT/AAIAAAMEAwT+/vwBAgMB/wD9//8A/wAAAAAAAAD/AAAAAAD+//8BAQEA/////v8AAP8A//8BAQEBAgEBAgAAAP4C/wP+AAAA/wD/AAAA/v/+Av0A/wH/AAAAAAACAQL/AP4AAAACAQL+//7//v////8DAwL+//4AAAAAAf/+/wABAQEB//8DAgEAAQL+/v4BAQH+//4AAAACAgIBAAEAAAABAf/+//4AAP/+//7+/v4BAQH//wD9/vwAAAEEAwX///8AAQH///8AAQD//v//AP8B//4A/v8AAwH//v7+/v3+/v8CAgD+/f4AAAD//f7/AQD+/v4CAQL//v4AAQEA/wD///8AAQAA/wD///8AAP////4BAAH///8GBwgAAP/9/f3+AP8DBAQBAP/+/v8BAgIDAv8A/wD//v//AP7//wD/AQMBAwEBAQD///3//gD//wD+/v79/v8AAAH7/P3v8PHx8PH9/fwDAgEDAwIAAAP//gAAAP///wD/AAAAAf8BAAH/AAD/AAEE/Pv8AQABAAEAAQEAAP8A/wIAAQEAAP8AAQEAAAABAP8A/wD/AQABAAD///8AAAAAAAAA////AAAAAAD///8AAP////////7/AAAA/gD/AP8AAAD///8A/v7+////////AAACAAD+//8B////AP//AAD//wABAP8A/wD+AAD/////AAAA/wAA//7+AAABAP4A/wEA//7//wD///8AAAAAAAAB/wAA/v399fb48/H2/PwA/gH//wMBAQcIA/wJ/v75AAP9AQQCAAUBAfv8Af0BAAEFAQEBAQEBAQED/wAAAAEBAf8BAAH/AAD+AAADAgED/wAB//39//39AQL+/wABAQIB/v8A/wABAQEDAQAB/f4A/AECAgYGAwcJAgQGAQMGAgcGBgYG/v8AAgEFAwIC/P39+vn7BggDAgMAAwMEAQIC/f3+/f7+AgMD/gECAwUG+vn4BAEC/v7/AQMB/f39AwMDAAEB//7+///8AgMD/wIBAAEAAP8BAgEDAQAC/f3/BAQFAP/+AAIAAf79/wD/AQABAwMD/wAAAAABAgABAgIB/f3+/v/+AP//AQEBAAABAAABAQECAAAB/wD+AQEA/v/+/wAA/wD/AP0AAgEAAAAAAQAAAAEAAAABAP//AQICAP/+/wAA/v3+/QAA/wD+AP8AAf0BAgICAQEAAQEC/f38AwMBAAAA/v7///7/AQEB/v/+//4A/wD/AAABAAABAAAAAAAAAAAAAwMD/gH/Af8A//7/AP//AAAAAAAAAQEAAP7//wD/AQAAAP//AQEAAf7//v79//39AgMD/wD//////////wD+AP4A//8A/QH+//8AAf//AAAAAQAB////////AAAAAAAAAAAA/wD/AQMCAP8A/wAAAQABBAMDAAEC/fz8/wH/AgECAP///wAAAAH+AAABAAAAAQECAQEB/wAAAP////77/v/+AAIBAwQE/v/++/79+vv89/n59/f4+Pj4/Pz8///+////AQABAQEAAAAAAP8B/wEAAAH/AQAABPz7+wAAAQAB/wEAAf8AAP8AAAEBAAD/AAAB/wD/Af///wEBAQEA//7/AP///wD/AAABAP///wD/AP//AAAB/wD/AAD/AAAA/v8AAP///wAAAAAAAAD/Af///v7/AAD/AP8A/gEAAAABAP///wAAAAAA/wAAAQD///8AAP///gAA/wAAAP//AQAAAAAA//8AAP/+AAD//wAAAQEA//8A/wEAAf8B/wABAgMCBevu8Nzf4xMRDQkZFAYCAwEEBQACBAEAAP8DBwAFBgIIAQD+AgIAAwH//gD/AAD/AQICAv//AAEAAQD//f8B/gH/Af////7+/v///wD+AP/8+/8BAv/8Af/+/v39/QD//wICAwACBP7/AP37/fz8AQQKBQYHCQEDBAEEBgkEBgAAAAECAgX/AAAA/wMCAv/+/f7+AQIBAAECAv79/v/9/AQCBgICAwQFBP7+/AECAgEAAQEC/wEBAgIDAgABAP39/AICAwIBAwD/AAICAAICAgEBAAAAAP7+/gEBAQEAAAMCBP4A/QAAAAEBAgD////////+/gACAv8A/wMCAv3+/v8AAAAA/wD///79AAIBAwAA/wEBAv7+/gICAv7+/wEBAf3+/gICAgABAQD+/wAAAAEAAQABAP7//wAAAAABAAAA/wH/AP8A//r6+AUFBQMDBQEBAAABAv/+AAD//wECAgEAAP///wAA/wECAwD//gH/AAMAAf0BAQAAAAEAAP39/QICA/z8/gMDBAICBAAA/f3+/v7+/wEBAAD/AAABAQAA/wEBAf3+/QAAAQECAv8AAP7+/gEBAP7+/v///wEBAf8AAAH/AQD///7/AAEBAP8A/wD//wD/AAACAP7+AAD/AQICAf///////wABAAIDAgEBAf39/QABAQIBAgD///4AAAD//wAAAAEBAQIDAwIAAP8A//7+/QABAgECAwMCAQL+//0B/Pr8+/z8/vz+/v3/AAABAwECBQAB/AD//wEAAAAA//8AAQABAAIAAQABAAAAAQEAAQT7+/wA/wEAAf8AAAEAAP8BAQH//wAAAP//AAAA/wAAAP8AAQEA//8AAAD///8AAAD/AAAA/v8AAAD///8AAAAAAAAAAAAA//8AAQH/AAAAAP8A/wEAAAD///8AAP//AAAB/wD+AQEAAAABAAAAAAD///7/AAABAQAA/wD+//8BAAAAAAH/AQAA/wAAAAD///8A/wD/AAAAAP8A/wD/AAAAAQAB/wECAgL7/Pvh5eYH0QYQEQ4PDQgVCwcBAgMBAQH/AQUBAgYAAwoCAgYBAQMA/wEA/vwA/f3//fz///3///4B/v//AP8A/v8BAAAB/v4A//4AAP7+/f///wD//vz/AAH//vwA+/78+Pr/+/4BAAEBAwMDCwz9AAH+AgP+AQILCQoGBQgDBAQAAP////8CAgH9+/38/P0FBwUCAQH+/v8DBAIFBgT4+PgBAvwCAgIBAAAAAAEBAQEAAP8AAAH//v8EAwX/AP4AAQD/AP8BAQL//wABAAIAAP8A/wEAAf/+/f4CAgIBAgIAAgEBAAIBAQH/AP8AAf8A//8AAAD+/f4A/wEBAgMA/v4AAP///wABAQL///////7+/QABAgABAAEAAAECAQL+AP8BAQEAAAACAAH+AAAB///9/v0AAQABAAH///8AAP///wD7+/sEBAQBAAACAQL+/fwCAwQCAgEBAAIB/v/+/f0AAQEDAQMB/////v3+//8BAQH/AAEDAwT+/v8CAgMBAgIAAAADAwMBAQEBAQABAQABAQACAQAAAQEA//8AAP/+//8A/v7+/v4CAQIAAAAA/wH//v4AAQEB/wAAAAEA/wABAAAA/wD+/v4AAf///wAAAAD//wABAQD+/v8A//8AAQD/////AAEBAQAAAQECAQL9/v0AAAADAwP///4A/////f3/AP8AAQECAwIB/wH+//7//v8BAQIBAQABAQT+//79APz+/P8BAQILCwwbGx4GBgkREBPq6Ojo6OX39vb9/f3//v8AAf8AAAEAAAEAAf8BAAEBAQEE/Pz9AP8AAAD/AAEB/wD/AQABAAAAAAAAAP8AAAAA/wAAAQEAAP///wAAAAAAAP////8AAAEA//8AAAD/AP8AAAAAAAAAAf8A/wEAAAAA//8AAAD+AQEB////AAAAAAD//wABAP7+/wD/AAEBAQAAAAD/AAAB/v8AAAD/AP///wAB/wD+Af8A/v//AP8AAAEBAP//AAABAAEA/wAA//8AAAD+/v8B/v/7APwB/wAG7fL14OXoJiAXEgkEAwH+AwP/AAIIAAQKAgQLAQEFAAEC//7/AP8C//v5/wD///z9Af/8+/v8Af39Af7/Af//Afz8///8//7///8A/wMHBAgK/QAA/QEEAP38AP76//j7+vX4///7Bg34BBQDAwYKAgD/+fb1AgQFCAoMAgQBBAIE//79AgcF/f39+/r7BAb/AQID+/v7AwUEBwcG/f38//8AAAEABQUF/v7+/f7+AgIA/wAB/wEAAgEDAQEBAQEABAQF/v7/AQICAQEBAQEAAAAAAAICAQABAAD///8AAQIBAAD9/wD/AQAB///+///+AQIDAP///v79//7+AgICAAH/AQEBAAAAAgIBAP8A/Pz8Af///f38AwMEAgEAAAABAQEA//////79/gD/AP////8AAgIB/Pz+AP//AAAAAgEB//38AQEB/v/9//7+AAMEAgEB/v//AgIC//7/AAAA/wD+/Pz8AQEAAQECAP8AAAAAAAAAAgEBAAAAAgEBAAEAAgIE/v3//wD+/f79AAEAAAIAAQAB/gD+//7//////v39AQEBAAAAAAAB////AgEAAAD//wAAAQEA/v7+AQAC///+AAD/AAD/AP8B//8AAQEA/wAAAQAAAAEB/v7+/v//AQAAAAEBAgEC/wD/////AgIC//8A//8A//8AAAABAQECAAD///8AAAEBAQAAAgIBAAD///8C/v79AQAAAQABAwICBQQE/gUGBgX9CwoNDg75+Pb19vYPAAAA+vn6+/v8///+AAD+AAAAAAECAQAAAQEABP38/QAAAP//AAABAAAA/wAAAQEAAP8AAAAAAAAAAAAAAAAAAAAAAAD//wAAAf8AAAEAAP8AAAAAAAD//gAAAQD//wABAf8A/wH+AAABAQAAAP///wEBAQAAAP8AAAD//gEBAf8A/wAAAAD/AP8AAAEAAAAA/wAAAAABAAAAAf8AAAAAAQABAAH//wACAf//AAEBAf8AAAEAAAAAAAAB////AAAA//////8BAfr7++fo6NHR/iIZEBoRDAoC/wIDAwEDCQACCgIECwAABP8A/f4A+f/9/gAC/wAC/f//+//++wH++v/4+QH6+gD4+fz49f/49/77/f4AAv4HDP8SFwISFAsSFfn39/3/AgIF+gQHCvTo6gL1+gAK9gIL+gL9/wMCAgIBAP39/AEDBf///gQEBP7//gICBQEDAfz8/AH//wEBAvv8/gQFBAL+AgABAAD/AP79/QEBAQMCAgABAAIBAv8A/wEBAwACAQEAAf//AAMCAf///wMCAf8A/wD/AAEAAQAB////AP/+/gICAgAA//79/QEAAf8AAP//AAAAAQEAAAAAAP8AAAABAAEAAf/+/QMDBP///wEAAQIAAP7//wH///38+wECAwIDAQAAAAAA/v7//v////z8/AMCAv8BAQMDAv39/v/9/v/9/f8CAAIBAgD//wIBA/7//wL//wEAAQICAvz+/QAAAAEA/////gICAwIBAv3+/v79/f//AAQEBAABAAABAQEBAgEBAAD//v7+/QIDAQICA/v6/P8A/f3+/AIBAf7+/gECAgICAv39/wEBAQMBAP////39/gABAAAAAQAAAP///v3+/gABAQIAAP8A/wAB////AAEBAQEBAP3//v7//v/+/wECAwAAAf//AP///wMCAv7/AP8A/wAAAf8A/wEBAQEBAf7//wD//wH///4AAf8AAAEAAQAA/gEBAQEAAQACAQECAAEBAQICAgMCAwEAAAAAAAABAgEBAv39//v9/f7+/wAB/wEAAAAAAAAA/wAAAf7/AAT+/f7/Af8AAAEA/wAAAAEBAP/9Af8B/wAAAAABAQEAAP///wABAQEA//8AAP//AAAAAAD/AP///wAAAAAAAP8B/wAA//8AAAAAAQD///8AAAEAAAAA/wAAAAABAf8AAQEAAAAAAAEAAAAAAAAAAAD/AAEBAAAAAf8AAAAAAQAB/wAAAAD//wEAAAIAAAABAAAAAP8BAAAAAAAAAgAA/gEBAQAAAQEAAAD/AAAB/wD++/zs7PDe4uczKyYIDAMDBQkAAgYAAwb/AgIAAAIBAP8B/v////3///v//Pv++vP/+PUA+fgB+f3/9vf88fL88/H/9vMA/f0AAggCCBP8+v8A+wACBw4KFRgJERby8O/99/cQEhb68O8ACQsCCQgBBQL49fcABAYFAAIBAwIB/wH+AAEBAwL+//4BAQMFBgP9/vz//v7+/f79AP8BAQMA/gAAAAD+AP8A//4DAgIBAQL/AP8BAAEBAQH//gECBAMA/wABAQH//v////4BAQH/AQAAAAAAAAEAAP8DAwMAAP8AAQAA/wD+/v4BAQAA/wD//v0A//8A/wADAgIA/gAAAQD8/PwAAAEAAAAA//z/AP8A/wAA///+/wADAQL//f4AAQD+//4AAAEBAQACAgH+//4CAAL//wAAAAD//v4AAP///v/9/v4EBAYBAQD+/v0CAgMAAAEAAQADAgL8/f3/AP/9/f0BAAH/Af79/v8CAQMDBAP///8CAQEAAAECAQL8/fsA///+//8DAgT///7///8CAwEAAP/8/fz+/v8DAwT//wH9/v0DAQL+AgH+/v7//v4BAgP/AP4AAAD/AP7/AP8B///+AAIBAP8AAP//AP8BAAL+/wD//f///v4BAAIBAQABAf//AAAAAf/+/gD////+/////v8BAgEA/wD//wABAAAAAP//AAABAQID/////wABAQAAAP///v4DAgL/AwQE/wD+/f8EAwIDAwEA//4AAP8CAgEEBAMC+gH+Af7+/v8BAP8BAQAAAAD///8BAQEE/gD///4AAQH+AAABAQEA/wAAAf8AAAAAAAAA/////wAAAQAA/v79AQEB//8AAAAAAAAAAAAAAQAB/wD/AAAA/wH/AAABAQAA/wEBAP8AAQEBAAAAAAEAAP4AAAEBAQD//wAAAQAAAAAAAAEA//8AAQD/AAH/AQAB//8AAAAAAAH/AQABAAD/AQIAAP8AAAIBAAEAAQACAQEBAQEBAQIAAQACAQEAAQECAgEBAQICAwIABQUE6uvw7PD2FBAXAQIDAQIE/gEBAQEA/wD/Af3+Av7+//38Af7///77/vr0/vXs//f3Avz/Avr//wD3///2/vv1APv9AAL8APwEAP8EAQQJ+enm/P/9BhIZEh0j+/j4+fb2CBYY+/v7AgkHBQkJBgMGAQQEBAUE/v3+AAME/v//AwAAAgIE/v79/v//AgIDAAL/AP4AAQAA//7+AQEBAAD/AAEAAgAA/wD/AP/+AQECAQIBAQEAAQECAP8BAQEBAAABBAUC/vz+/gH/BAMEAAEBAAAAAP8A/wD/AQAAAP8BAP//AAEA/v79AAAA//0AAAD/AP/+AQAA/v/+AgACAwIE/v79AP//AQEA/////v39AgEC/v//AQD/AAEDAwQEAAECAP/+AQICAP0CAP/9AQIC/f7+AQABAQMCAP78AP/+////AP79/wIBAgICAAAAAAEAAAABAQEDAQD+//7///3+/gH9AAAAAAABAAH/AAAAAQEA/wAAAQAA/v78///+AAABAgIBAAEAAP8BAQH+/v3/AAD/AP///f37AQD//wH9AP8A/f/9Av8CAP8BAQEBAAD/AgEC/v79/f7+AQEBAP8B///+AgIC////AQEAAP8BAP8AAAAAAgECAAEB///+/v8BAAEBAQAA/f79/v7/AQEAAQICAAAAAQEBAAD//v7+AAD//wD/AQEBAP8BAAIA//4CAAD+AgEBAAEDBAIB/AIAAAL9AQIDBQUGBgcHBgYHAQAC/wAB/v///v7+//////8AAQH/AgIB//8AAAAABAD/AAEAAQAAAAD/AQAAAAAAAAAAAAAAAQAB////AAABAP//AAAAAP///wEAAgAA/wABAP//AAEAAAEAAQABAAAAAQAAAAEAAAABAQEBAAAAAAAAAAEBAAADAAAAAAABAgAA/wEAAQAA/wEAAAACAAEBAAEBAgEBAAEBAgECAAIAAQIEAwICAgMBAgMCAgECAwICAQICAgMCAwICAgMCAgECAQICAwICAQICAgUEBAMDAgMCAgcGCe/x+AADCwMFA/8A/QL/BQABBf/////8/QH9/QL7+f/9+QH8/QX/AQH/Av39/P76+f8AAgAFAwMLCv74+/7++QAAAfz/+AP/+QH49P7xBwUMCwAM9vjt+xASFg4OEPr7+wb9/AD+/QYIBwQFBP8CAgMEBAECAv////8A//7+/wAB/v7//wAAAAEBAQAAAgQDAf3+/wEAAQECAwD/AQL//gAA/gAAAAEBAQECAAEAAAAAAgQDA/7//wEBAP7+/gABAQACAAL/AAEBAf8AAQD//gACAf8AAAD///8A/wEA/wD//wAAAf/+//4C/////v7+/QEBAQEAAAABAAEAAAMCA/39/P//AQD//f/+/f4DAwICA/7+/f8B/gH/AgMDBf8B///+//8A/wABAv8AAAICA/z7+wMCAQEBAP/+/gEAAQAAAQAAAAEBAv//AAICAv7+/gABAv8A//7//wABAP7+/gMDAf/+//7/Af/++wD+AAIEBAICAP7+/wICBP7+/QEAAQAA//7+/gD///7+/gD//////gEAAP///v39/gIBAwD+//8BAAICBP4A/wIAAf8AAP7//gD//wAAAQAA/wEBAf//AAD/AAABAv8A/////////wAAAAD+/f8AAP8BAAIAA/8AAP/+/gAAAAEAAwEAAP3+/wAA//////8AAAD/AAEAAQH/Af8BAAEA/v8A/wEAAgACBAIB/gEA//8CAQYFAfwHAQkL/Q34+vn3+vIN9fT09/gD+f37/P8A/QAAAAAAAf//AQABAAAAAQQAAAAAAQAAAAAAAf//AAEBAAD/AAABAP8A/wABAAAA/wAAAf8A/wIBAf8AAP8AAAEAAQECAf/+/wACAQAAAAAAAAEAAAABAQEBAAAAAQACAQEBAgAAAQACAAICAgECAgICAgEDAwMCAgECAwIDAgICAgIEAwMCAwIDAwMCAgMDAwICAwMDAgIEAgICAQICAgICAwICAgIDAgIDAgICAwMCAgIDAwIDAgMDAwMDBAQDAgICAgEGBAX7/P/4+v8IDgv//vwAAQQAAAT9+/3+/v8A/Pj++vYA+vX/+vwA+PwD/gP/AwcAA//+/f8CBgUCAgcB/QX99Pb8+vz//QD28/T++gIIBQgD9vf89fULFBr08vIJDw0FCAkA/wYBAgIDAwEEBQT/AAD/AAABAAH/AP/+/v8AAf0DBQUB/wH9/f0A/wEA//8AAP8CAQL+//8B//8CAQIBAwIAAAD//v//Af8BAgABAAEBAAECAgQBAAD9/fwCAQEB/wABAgL////+//8BAf8BAgIAAQD/////AAAB/wD9/v8BAQAA/wACAgL/AP/+/f7/AP8AAP8BAQMBAAABAQIA/v8A/wH///////8AAQAA/v3+Av8A/wEAAAH/////AP8AAQMAAP4CAgMAAAAAAP8CAQABAf8BAQEAAAH9/v0CAwIBAgH9/f4EBAIAAAH///8CAgP9//0AAAD9/v0AAP4AAAIAAAIAAf/+/vwB/gH+AAAGAQQA/wABAgICAAEAAQEAAAD/AP////7+////AP/9/v38+/wBAQL+/gD//v4AAgL/Af8BAQD///4B/wD/Af///gAAAAEBAgL//wD///8AAAD/AQACAgIA/gD+//0AAAEAAP7///8AAAEAAAACAAL////+/v7/AP8BAAH/AP7//gAA/wD/AP////8A//8BAAIAAv////8A/gD//wABAAABAgL//wH/AAH9Af4CAwQFAAMKCQMAAAD+/f/9+v319Pj19PX5+/r9/Pz//AD/AP8AAP8A//8BAAEAAP8E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CQsMEBX9BAYDBAgKDAf9//wA//8CAQL+AP7//P8EAwMCAAH+/v8BAQEBAgADAAQBAP7/AAAAAAEGBQf+/v8A/f4CBAX///8BAAAAAQAAAAABAAAA//////8CAgP/AAAAAAABAQH+/v4CAwEAAQH/AAEA/v4AAQD/AP///v0BAQAAAQH+/v3+//8BAAABAgIBAQD+/v7/AAH//v8A//8AAAD/AAACAQIBAQEAAAEA/wABAgMCAAD/AP3+/QAAAAEAAQECAgIA///+//4CAP4AAP4AAAIAAP0EAwP+/v79/v8BAQEA///+/v4DAwUAAf38/f0B/QIBAQIAAAD+/v0BAgD/AAEDAgH7//////3////9/v0BAgMAAf///wEDAgIAAQAAAP8CAgL9/P7///8AAAH+//8AAAH9/f3///8CAwH///8A/wD///8CAwH+//4B//8A/wABAgL+//8AAAAA//8BAgEBAQH9//7//v8CAgD/AP7/AAAA//7///4AAQEBAQH+/v/+//8BAQIBAAAAAQAA/wAAAAH+//8A//8BAQIAAAAA//8A//8AAAH/AAABAQAA/wD///8BAQEAAQEA//8AAP8AAAAAAAAAAP8BAQEDAwIGBgT9/gUHBwYGBgYDBAUCAwQAAQMAAQH+AP/+/v4BAf4BAAH/AAAEFxQSAgQDAgMDAwMCAgIAAwMDAwMDAwMDBAICAgMCAwEDBAQBAwMEAgMCBQMEAwMDAwMEAgMDBQQDAwIDAwMDBQMEAwQBAwIDAwIDAwQEAwMCAgECAgMCAwICAgICAwICAwICAgICAwMDAwEBAQECAgMCAgIDAwICAgIDAgECAgICAgIBAgICAQICAgECAQIBAgICAgEBAQECAQABAQEBAQIBAQEBAgAAAQIDAQEBAQECAQIAAgEBAAEAAwUC//7/AQECAQEB/gL/AAH8/wL//wMC/AEB//39Af77///9AAAB/fwCAP8C/QAC//r/AAUBAQcH/gcLAAMIBAUG+v3+BgcLBAYJ/gQE+wICDQ0OAAICAAIBBgMH/wD+AQD/AwIDAAABAP///wD/AQAA/v79AgEC/wH/AAAAAQABAP8AAP4AAwIC/////fz8BAMFAQIB/v//AAD/Av8C/wAA//4AAgEAAAAAAQEBAgEC/wAAAP7/AgIB//7+/wD+//7//wD//wMBAQEBAP8AAAD/AAD//v7/AP7+AQEAAAAA/v7+AAAA/wEAAQABAwIDAQEBAQAC//8AAAIBAQEDAQD/AAD/AQIDAf79/Pz7AgECAQIB/f3/AQH+AP8AAQIAAAD////+AAD/AP/+AAAAAAEB/Pz8AgIDAQABAQAA/////v79AQH//f/9Af7/AQEDAQEBAgICAgEC/wP///8AAQH/AAAA//7+AQIBAP/+/v4B/wAAAQECAAD/AAEB//3+AAD//P38AwIC/wAAAQICAP/+AQAB/v3+AP8AAQICAAD9Af8A//7//wAAAgMCAAEB/wD+//7+AQD//v7////+/wAA/wD9/v/9AgEE/v8A/v7+AAABAgEB/wD///8A////AAD///7/AAEBAP7/AAAA///+AP8B/wD/AAEA/v4AAAD/AP8A/wL+AQABAAD/////AAD/AQABAAEBAQAB/v/+/fz8+/v5+vr5AgEACgkIDAsL9fIJ+ff2AP/6AP////8AAAH/AQEBBBoYFAICAgECAgIDAQIDAgMDAgMCAQMDAwMCAwICAgQDAwMCAgMEAwQCAwMEAgMCBgMDBAMDBAQDAwMDAwQDAgMDAgMCAwMDAwMDAwICAgMCAgEBAgMDAgICAgICAgICAgIBAQIDAQIBAgIBAgICAQEBAgECAgIBAgICAgIAAAEDAwEBAgECAQEBAQEBAgICAAEBAQEAAQEBAQEBAgABAAAAAAIAAgEBAAABAgEBAQMCAQAAAgECAQEBAAIDAQAAAQIAAwED///+/gABAf8BAP0AAP4DAf4B/wH//P7/+gAA/wECBf3+AwEDCP8ECv8EBwAEBgEGCAMJDAEFBwf/Af37/v0CAAoMDAUHBwAB/wUFBQACAP8A/QIAAQABAAABAAIBAwEAAv79/QAB/wIBAQD//gICAwEAAP///gAAAQEAAAEAAQMDAgD+AAD//v//AwAAAQAAAAAAAgIAAAABAQEBAAAB/wD+//7//QAAAQEAAf7/Af///wEBAQEBAQAA/wD+//8AAf8A/gEBAAD///8A///+/v8A/wIAAf8AAf8A////AAECAAAAAP///wEDAQEAAQICAv/+/gEAAP4AAAECAgICA/39/fv8+wMEAwAB/v/+AgACAv/+/wEBAv7//wIBAQEBAQD+/wMDA/39AAICAv/+/gMDAwIBAQD/AP79/QMDAgD/AAACAAIBAgMBAgICAwEAAwEBAP/+//7//gEBAfz8/P//AAQFAQD9/wAC/wAAAP/+//7//QEAAAAA/wABAP/9/QMDA/8BAfz5+//+/gEBAQL/APz9/AQEAf8BAAMCAwEDAf7+/v8AAAEA/v7//////v/+//8BAP/+/wAAAf7+/P79AAECAgD/AP3//AEBAv//AP8A/wAAAAAAAQD//wD//wAAAAD+//8A/v8AAAEAAgEAAP8A//8AAAD+//8AAAEBAf///wAAAAACAQEAAP///wAA/wAAAAQEBAkJCfr7/A4NDvIMDfEH8PcEB/wD+v///gAA/gAA///+/wQVEhECAgICAwIBAgEDAwECAgIEAwMDAwIDAgMDAwMDAgMDAwMDAwIDAgQDAwIDAwQDBAQDAgQDAgIDAwMCAwIDAwIDAQMDAwMCAQEBAgIDAgEBAQICAgICAQIBAgICAgECAgEAAQEBAQIDAQEAAQECAQEBAgICAQIBAQEBAQAAAQIBAQEBAAIAAgACAQEAAAABAQIAAQAB/wD/AQEBAAABAAAAAAEBAQABAAEBAgEBAAEBAQIBAgAAAAEDAQIBAAIBAAECAgMBAv0BAwABAQIBAwL/AwX/BAb/AgD+//v/AAD+AP39AAIBAgUBBwcCCQsECw4DCw0CCQsBBQcBAwX//P3//gD/AgMEBgYDBAQBAgEBAgAAAAP///0AAAEAAAD+/v0CAgEBAgH+//8DAgL9/gIAAP8BAAAAAQIA//4AAP8AAAD//AADAgQBAQH+/v4AAgECAQH+AAACAQEBAQD/AP8BAAH+AAABAQEBAAH/AAACAQEBAAD///8AAQABAAEBAQH/////AAD///7+/v4CAQH/AAD//f//AgABAgD//f7/AAAA/wP/AAD/AAD+/v4BAQP+//8AAAECAgP+//4CAQL/AgIA/v38/Pn/AAQCAwP8AAEEAQb/AAD/AP8AAAAAAAECAQL/Av8B/gABAf//////AQECAQH9/f7///4CAwMFAgL/AQD//v7/AQECAQIEAwT/AAH8/fsAAAAAAP/+/gABAQEA///+/v4AAAEBAAD+/////fwA/wD+AP8BAgECAgP9/PwBAQD7/fz//v3+/f4AAP8BAQAAAQEBAgEA/v0AAgP/AAD/Af8A/v/+//////4AAAD/AAAA/wD/AAD/AAD///8BAgABAP7/AAAAAAD///7/AAAA//7/AAIBAP/+/v///v4AAf///gEAAQH//wD/APwAAQEBAAEAAAD/AP8BAgH+/v8AAAD/AP8C/wH+AAAAAQAAAQADBQMIAgcCAgT+/f8QEA/08/XzD/T59/b8/fn6/vz9/v4A/wD///8EFRQTAgICAwIBAQIBAgIBAwMBAgICAwIDAwMEAgMCAwEDAwMDAwIDAgMCAgIDBAMCAwMEAgICAgIDAgICAgIBAgICAQECAwICAgECAgMCAQABAQEBAQECAQIBAAECAwEAAAEBAQEBAQAAAQICAAAAAQEBAQABAQEBAAAAAAEAAAACAQAAAQEBAAAAAQAB/wEAAAAAAAAB/wD/Af8AAAEBAAAAAAAA/wAAAAEBAAAAAP//AAH/AP8BAQH//////v////7/AAQAAQMCAQIFAAMF/wIEAQIF/wQG/wUF/QL+/wD6/wL///8F/gH+AgEBAwACAwMDBQcIAQUG/wUHAwUHAwgCAAEBAgMFAQID/wAA/wD/AgECAAD/AAEDAQD/AAABAQEBAP7/AAAAAgIB//8AAQD///7/AQMAAf8AAQIB//8AAP39AAAD//7+AAECAAEBAgICAAAAAwEC/v/9Af//AQD/AP8AAAD/AP8AAQICAQAAAP//AQEB/v//AQAAAAEAAAEAAP8B/v78AQAAAAAA/v3+AQEAAwMB/v39//4C/wD//wAB/wD/AP////8AAP//AAD/AgAB//8AAAEAAgED/wMBAAD+/f37//7+/vz+AwEC/v78/wEDAQIE///+AAEA/wH/AAEC//79/wD+AQEA/wD/AwIC/f37//8A///++/v6//7/BgcH//8AAQIBAQACAgMF/v/+Av8D/f38+/r7AgMDAgIB/v//AP7+///+Af8EAgEB/wD/AwMD/v79AwIC/wAAAQIC/Pr7/v7+/Pz8AP8BAP3+/gL/AgEB/v39AAAA//39/wH//v///wD+AQAB/////wD//wAAAQAA///9/v8AAP8AAQAB/wAA/wAAAgACAAH/AP/+/v///wD9/v////7+//8AAP8AAQEA/wABAAAA/wAAAQABAAACAQEAAP//AP4A//8AAP//AAIB/wH/AQACAAD/AAD/AQICAwEDBQABBwgHCwoLCwwKCQsJBgkHA/cDAAEBAAABAAD/AQAABBIRDwIBAQICAQEBAQIDAQEBAgMCAgICAwIBAQICAwICAgMCAgECAgMCAQICAwEBAgMDAgICAwIBAgICAwABAQICAAEBAwEAAAICAQEBAgABAQEBAQAAAAEBAgEBAAEAAQEBAQABAAEBAQAAAAEBAgAAAQAAAP//AP8BAAH/AAAA/wAAAAAAAAEAAAABAAH/AP8AAQIA/wAAAQAAAAD///8AAAEBAQD+AP8B/gABAQABAAD//wAA/wAAAf7//v39/fz+/AIAAgECAgICAwIEBQICBAECAgACAv4DBv8FBv/9+v78/P/9Af7++wL9+wD7+vn29QAHCQQGBwMC/wQEAwIBAwIDBAIEBQEBAgAAAAD/////AAEDAgH+/v7+/gD/AQICAgEAAf4A/gH/AAAAAAAAAAAAAP7+/gEAAQEBAQMCA/7+/wAAAAECAQABAQEBAf///wECAQEBAQL9/v78/AECAQEBAQQCAf4AAf///wICAgAAAAABAQMDA/8A/v/+AP///wABAP///////gMDBP4A/vz8/AIBAP8AAAAA/v7+/wAAAP8AAAABAgAB/wD/AQAB////AAECAP//AAAAAAEBAQACAgECAv4AAAIB//r6+QMDBP0CAwQBAv8A/wABAPz9/wMCAv///v/+/gAAAP39/QICAgAAAv///f//AP/+/v4C/v/+/gAAAf/9/P4A/gEBAQEAAgICA/r7+f7//QMBAgECAgD/Avz7+wQDBAD/////AP8A/wAB/wAAAQABAQICAvz///7+/v/+/gAAAQICAQD/Af38/AAEBP77/gQFBP///v4A//3+AAEBAAAA/wEBAP/+/wEBAf7+///+AP79/gMEA/8AAP//AAEAAP8B/wAAAAD/AP////8AAAEBAQABAQABAP8A//8AAQD/AP8B/wD+////AAEB//8BAf8A/wAAAQEAAf8BAQH/AAEBAQAAAAAAAAABAQL/AQABAAIDAQMDAwUGBQYGBgcHBwcHCQQEBQABAP///wD/AAEAAAQMCQgBAgIBAgACAQIAAQABAQECAQMBAQECAQECAQMDAgIBAQACAQMBAgEBAgEBAQECAgICAgIBAQIBAgEBAQIBAAABAAABAQIAAAH/AAECAAEAAAAAAQAA//8AAAD/AQH///8CAAEAAQAAAAH///8BAAD/AQAAAAAA/wH/AAAAAP8AAQAA/wD/AAAC/wAAAQEAAP7+/wEBAQAA/wABAQH/AAAA//8AAQAAAAEA//8AAAH///4BAQECAgAA/gD8/f36+vwFBwYBAQIBAwQCAwUBBQYAAwMAAgUAAwYABQYB/AQAA/v+/fr//vn/+vn+BfkC+gb99vUBBQj/AgMDAwYDBwUDBAQBAgICAgL/AQH+AP8BAP8B/v8A/wACAgIA/wABAAAAAQAB/wH/AP4A/wABAQABAQAB/wH/AQD+/v4BAwMCAgT+//4AAQECAAH/AAAA//8A////AP8AAAABAwMA//8A/wD+AAEBAAH/AAD///4AAQICAAD/AQADAQP/AP79///+/v8BAQH+/v/+/v4AAAABAAD9/v4CAQH/AAAA//4AAAEA//7///4A/wEAAAECAgD/Af4A/wH//wABAQIA//8BAAEDAgQEAgP+/v4CAgH//v7+/f3/Av8AAgAB/wAAAAD8/P0BAQEBAQL///4DAQP+/f7/AP8BAQH+/v0AAAICAQABAQH////9/v4AAAAAAQAB/wEAAAAEAwT+/f0BAQIBAAIBAQEBAwQBAgECAgL///8A/wD+/v//AP8CAQP+/v0AAQEDAwIAAAT+/f3+/f4CAgH+/f3//PwBAQH/+/8BAgIAAAIAAgH9/f0CAQP+/f0AAP8AAAH/////AAACAwL///8A/wACAgEBAQIAAP/+/v7///8A//4BAQEAAAABAQAB///+AP8A//8A/////v//AP8AAAL+AP4A/gEAAP///wD/AQIBAAL/AAEA//4AAAIBAQAA/wAAAP7/AAAB/wADAgAGBgUKCgkPDg708vPz8/D29fL9/Pr//wD//wAEBgUDAQECAQEBAQEBAAH/AQABAAEBAgABAQICAQEAAAEAAQEBAQIAAQIAAgABAQEBAQABAAAB/wAAAgAAAAEAAP8B/wEAAAD/AAD/AQAC/wABAP//AP8A/wH/Av8BAAD+AQEB/wAAAP4AAAEAAQABAAH///8AAAAAAAD/AQAAAAAB/wABAAH/AQAB/v/+AQABAAABAQAB////AQEA//8A/wD/AAABAAABAQD//wEBAP//AQAB/////gAAAQEBAfz++vr7B/z9BAQDAQEBAQMEAgMEAAQGAQQFAQMGAQII/wH3AgP7AAL7/gD7AP/6/v76/vn2AggHAP/8//37+/z6AwUG/v4EAgEB/v4AAwQEAAEBAf//////AQIBAgEC/wD/Af8BAQEB/QD+AP8BAQD/AQECAgEB///+/wAAAAEAAP//AAIAAwID//7//gD/AQIDAP/+AP8AAQAA/v8AAAECAgMB//3/AP7/AQMDAgD//gD+AP/+/wABAAAAAAEB///+AP/+/v/+AgECAQAB/vz9AQIB/wD+AAD//f//AP//AAAAAgEBAQECAQABAQAB/v3+AQIBAgICAQEBAQAA/v8A///+AAAB/wAAAQIDAf7//v3+AQABAwD/AQIA/f79AQEBAQICAQIA/wAAAP7//wAA/wAB/v/9//8AAgEBAwMDAQEB/wABAAD//v79/v79////AgMCAAAB/v3+AP8ABQUFAgEDAQABAQMCAv8AAAAA/v39AAH//f3/AgIAAQIA/wAB/v3+AgEA/wMEAQEC/AP8//7///7//wD///39AgIC/v8AAgABAAH+//0AAf8A/f/7//8AAgEB/wD/AgID//79/fz8AQEAAQEB//8CAP/8//3+/v///v79AAD//wAAAQEBAQAA//7+//8A/wABAAD///8A/wABAAH//v//AP8AAP/+AAAAAAACAAECAQEB/v8BAQEAAAABAQABAAEAAgAB/wIAAgMDBgcHDAwMDQ0OCwvwCAYIAgICAP8BAAD///8ABAMDAQEAAAAA/wAAAAD/AAABAAH//wECAgEA/wH//wEBAAAAAv8A/gH/Af4BAAH/AQIBAQD//gECAv8A/wH///8A/wH/AgAB/wD/Af8A/wAA/gABAQEAAAH/Af4BAAIA//8AAAD+AQABAQEAAf8B///+AAEBAf8A/wEBAf4AAAEB/wAAAAH/AQAB/wD/AP8AAP8A/wIA/gEBAf//AQAA/wAAAP8A/wAAAAAAAQEAAP8AAAABAAAAAAH/AQAAAP7/APz7/vr4+wMLAwABAQECAQEEBQEFBwEGBwD49/8ABf78Av76/gMBAv4CAf4E/wIDAv4CAvj6+gL8+QYBDQD///z7+wIDBAMDAwICAf///gMCAwAAAAAAAQD/AP7+/wAA//8A/wEAAgEAAQAA///////+/gECAgAAAf///gD/AAACAAD+/gECAgIDAgEBA/8A//8AAAH//gAAAQD/AgD//wAAAQABAP8AAf7+/QACAAH/AP///vz/AAICAf39/gIBAwABAQMCAgAAAAIDA/z/+/79/f7//gAA//8A/wD/AQEAAPz+/v8B/QMDAwEBAAIBAP/9/v7/AAACAf/+/QEBAQAA/wAA/wAAAQMDAwAAAP7//P79/v38/fwE/QAAAAECAgABAQEBAQEAAP8A/v/+//8B////AQIBAQIBAAECAv/+AAH//////wAA/wICAwAA/wICA/4AAAIDAv8AAQEABAAAAAABAAD+//8AAP/+AAABAAAAAQAA/vz9/AUCBAD//QEB////AAEAAAABAAICAf8DAwD///77/f8AAP//AP///f8B/wICAwD/AP//////AAAAAP8BAQEAAf39/P39/QECAQIAAP7+/v///f////79/P7//QEAAv///v8AAAEBAAEBAQEAAP//AP8AAQEBAgD//wAAAP7//gAAAQAA/v///wAAAQABAAD//wICAwIBAQD//gABAgABAQAAAf8BAQIAAAMDAwYGBQoKCgkICAYHBwQFBgIBBAEBAv/+/QABAAQAAQD/AP8A//8BAAIAAQAB/wAAAQH+//0B/wEBAgEB//4CAQAAAAL+AAABAP8BAAD///8AAf4A/gD+Av8C//8BAgH//wAAAQH//wACAAD//wABAv///wEAAv8A/wH/AAEB//8AAv//AP4AAAIB/wAA////AP8AAQH///8BAQEA/wEBAAD/AQAA/wEBAQEA//8CAQH/AAD///8BAQEBAAAAAP8AAAEA/wH/Af8A//8BAAH/AAABAQD/////AP8C/gL9Af34+PkEBQQFBgIBAgICBAUCBQYABQYBBAYBAQX+AQP6+vsE/QEDDgn/Agn/AwQCCAf+BAP9/f39/PsEBwoEBQQBAQH/AP4BAQMBAgIBAQABAAEAAQH///4AAP//AAAAAAAB//8AAQECAgH//wD+/gD9/f4CAgICAQICAwMAAQIA/wH//wABAAEAAgEBAAEC/v3+/v/+/v8BAQL//wH/AAAAAAABAP/+//4B/QD/AQAA//8A/////wMBAQIAAf8DAgL8/f3//v//AP8CAQL7APz///8A///+//4BAAEAAAEAAf///wH+/v0B/wIA/wEAAv///////f0AAAH/AAH//wD+//8BAAEAAQP/AP4AAQIAAv8AAQD+/v0CAgIBAQAEAwL+/v8AAQECAwH/AP8A+/0BAQD///79//8DAQQAAP8AAP////4BAQEAAAEBAQL//wAAAf8DAwMA//7+AP8A/v8A/wABAgD+/v79/v8BAQH+/v4CBAP9+/oD/gAAAQIBAP//AP8BAgH//QABAAECAgEAAAEA/QECAAIAAAD//wAA/v/7/PoAAQACAQIAAQIAAQIA////AP7///8A///9+/z/AQABAAH+//79/Pz7/PoCAgIBAP7/AAABAQD+/v////4BAQIBAQMAAP4AAP7//gEAAAD+AQAA/wD/AP8AAf8BAQMCAQACAgEA//7///8BAQIA////Af8BAAEAAAAAAQECAgEFBAQGBQUHBwUJCAcMDAwLCg78+vn7///+/v4EAf///gAAAQAB/wD/Af8B/wEAAQD+Af8C/wEAAf8AAAEA////Af///wAAAAD+/wECAAD///8AAgD+AP4B/wIBAP8BAQD///8AAQAA/wD/AAACAP8AAQEAAAABAAD//wABAQEA/wAAAQD//////wD/AQAAAAAAAf8AAAIBAAAAAAAA/wABAP8AAAEAAAD/AAEBAP8AAAEAAQABAP8A/wD/AQEAAAAAAAH+AP8AAAEB/wD/AQAB//8AAAH+AAAB/v////39+foAA/j4AgMKAQIDAgQFAwUHAAUG/wMF/wIC/wICAQQF/Pb3//b5BwkD/wIG/wIEBQcK/wACAQEE/f3+/Pz9BQYBAwMDAwICAAIBAQECAQEBAP8AAAAAAQICAAAAAAD/AAABAP//AP8BBAMF/wP//f7+AgAB/wD///4AAgMCAgMCAAAB//////38AQIBAgIBAQAC/f7+////AAAA/v3/AgMAAAD+AgIBAAAAAP///wD//wAAAP/+AAAC/vz+/wMBBAID+//8/vz9/wD+AP8AAP//AAEA//7////+AgICAQAC//7///8A/v7/AAEAAP8BAgEA/wEAAP//AP//AAAAAgID/P3/AwQF/v79/v/+/wEA///+AP/+/v8B/fv6AQIH////AQAAAAAA//7+//79AP7+AAAB/v39BAID/gAAAP/+/v38AQID////AQIBAP///wD/AP7/AAICAf7//gH+///+AP8BAgEC/wL///7+AwMD//7/BAME/f3+BQUD/QAAAAAAAAABAQECBQYG+vr6/fz9//8AAQMAAf8CAwMA/v79AQAA//8A/v/+/wD+AQID//7+/wD//fz9AQAAAgIC/f39/v39/f79/Pz9AgIC/v8BAgECAAEBAAAAAQEA/wD/AAEB//8A/v8AAQD//wD/AP///v8BAAH///8AAP//AQEAAQD//f/9AQACAQEDAQH//wD/AQD//wAAAgECAAAAAgACAgL/BAUECAgICQkJBgYIBgYGBAQF/Pz7AAH/BP4AAAAA////AAAAAAAAAAEAAAABAQAB/wEAAP8AAQEAAAAAAAAAAAAAAQAAAP//AAEBAAH//wAAAQABAP///gAAAAAAAgD+AAABAAAAAQEB////AQEA//8AAAABAQEA////AgEA//8AAQEB/wD/AP8BAAEAAP8AAAH/AP8B/wEAAAAA/wEAAv8A/wD/AQH/AAAA//8AAQEB/wAA//8AAQD/AAABAAD/AAAAAAD//wAAAQAA/wEBAP8AAAH/AQAB///+AP4A/fj3+gMDBAgIBgMCBAMEBwIDBAEEAwAFA/8DBAAEBwAF+/v39frv7QsIDwIDBv8CAwYIDAMECAYGCQIDBP//AAD//////wIAAAAAAAH//gABAv////79/QECAgAAAAAA////AAEB//3+/wIBAgICAQD/AAEBAv/+AP39/f7+/wQEBAIBAf4AAv/9/v4A/gEBAf//AAICAf8AAf8A//7//wEAAQD+//8A/gD/AP8A/wEBAQAAAf///v8A//79+/79Af7//v7+/v7+/f/+/v39/QEBAQABAfz9/AgCBP/+/wIDAP7//gH+/gEDAwEAAQH///8AAAEAAf////7//QMDA////wEBAAAAAQIEA/36/fz9/AMFBAIAAwICA/39/QEBAQEAAQABAAD+/wAA/wAAAP////79/vv7+/8AAP0CAQH8/QQEBP7+/wECAgUGBQD/AQEB/gD+AAD////+/v/+/gADAfz+AAAAAQAA//7//QQEBfz6+gAAAPn5+gEBAAEBAf3+/gD/AAEAAQUFBf39/QICAgD/AAICAP//////AP7//v7+//8AAAMBAP3+/v7//wD//gD/AQAAAPf4+AL/AP//AAECAQQEBAEBAQAAAP///gEAAQABAf/+/wAA///+AgAAAAEAAAABAQIBAAAAAQAA//4AAQEBAAAAAAD//v39/wEBAAEC/gMBAgAAAAEAAgD/AAEBAAAA/wEBAQAAAQIBAwQEBQUGBwYHBwcGBgUGBgQEBgEC+AH+AQT/AP4A//8AAAAAAAEAAAIAAAAA/wAAAQAA/wECAf8AAAIAAAH//wECAf8AAAEBAAAA//8AAQEAAP8A/wD/AAEAAP8AAf4BAAIAAAAAAAAA/wAAAQD/AAEBAP8AAAAA/wEBAQD//wABAQAAAP8AAAH///8AAAABAQH///8BAAD/AQAAAAAAAP0A/wAAAAL/AQEAAAAA/wD+AAABAAEAAf///wEAAP8BAQEAAP///wABAQH/AAD/AP4B/wIAAP8AAAAAAAAA/gH8/Pz39/oCAgMEAwQCBAYCBAQCBQIAAwIBBwsBCP3//f4A/f/+Af75+vYMBhQCCgoCBwcCBQMAAQIAAgMCAwMAAQH/AP////8CAf8AAQEAAAABAQEBAwP/AAABAQEBAAAAAAD+/v//AQD+Af8CAAEBAgMAAQEAAQH//v79/v38/P8EBAMA/wEAAAEAAAH//v8A/wD+/f0CAwMCAQD//wD///8BAQABAQH+AP7//v7/AAH//v4CAQECAwH+/v//AP7+/v7///4AAAD/AAAAAAAAAP8B/wAB/wD9/f4DAwP+/v8C///+//0A/wAD/wD/AQIA/wD/AP8BAQH//gD+//8BAQD+//8CBAL+/v8CAwIBAQD5+fgJCgQAAQD///8A////AwIA/wACAgD8+/4AAAD9/Pv9/v7++/8BAgAA/QEDBAP9/QH/AAAB/wD//v7//wD///4CAAD7//8AAQD//v//Av4AAAACAgT+/gH+/v0AAAAA///8/v0CAQEAAAH///8A/v7+/wAEAwQB/f8DAwT+/P0CAgP+//0A/wD+/v7+////AP/6+Pn/AAABAwEDAwT//v/8/Pz+/v4DAgX/AgIA//3+/v39/fv+/vwAAAACAQEBAQD//v4A/wAA/////v/+AP8BAAEAAQIBAgEBAgIBAgP/AgQBAQEAAAEBAQAAAAABAAAA////AP7//wIBAf8CAAIAAAEA/wAAAAAAAAABAQADAgMHBwcICQgHCQkGBwcEBgYC9wT9AP4EAAAAAAAA////AAAAAAH+AP8CAAEBAP8BAQEB/wAAAAAAAAABAQAA/v8AAgEA/v//AgH/AAABAAD/AP8AAQH/AAABAP8A/wEAAP8AAAEAAAAAAgEAAAAA/wAAAf8AAAEA/wAAAQAAAAAA//8BAAEAAgAB/wAAAAAAAAEAAAABAP//AAD//wEBAf8B/wH/Af///wAAAAECAP8AAAH/AP7iYJ+WAAEAAElEQVQAAAECAP8AAAAAAQEBAQEBAAEAAAAAAQACAP8BAAEA/wD/AAAC/wD/Af0A+fr6AgIBCQkHAwQHBQcI/AUBAAgEAfwHAv0LAAEC//v5CAUK/gD89/TxBwkMBQMCAwUCBAYEAgQEAAABAAICAgMDAgEB////AAAAAAEAAAIBAAAAAf7/AQEBAAABAAD/AQMAAP//AgEBAAAAAQEAAQECAAEB/wIBAf0B/wAA/f3+AQEBAAEBAQAB////AgEC/wAA//7+AAIBAP//AAD//v3+/wH/AQEBAgIC/wAA/AD9/v8A//4C////AP8AAgIDAP8A/gD+AAD//v7/AwQD/////v8A/f37AgEA/wEB/wEAAQEBAP7+/wEB/v8AAQAB/wAAAP8AAAD+//4A/wD//v3+/gAA//8A/wABAAEC/f37/v79Af8AAAAAAwIBAP4A/wABAAAAAgIB/fz9+/z7AQAC/v77BQMFAQAB/v79AAEBBAMEAQAB/Pv8AAAAAgIDAQAAAQEAAAABAgQCAgID/f3+/v7+//7+AQEB/f39AQEBAQABAQIBAAAAAP///v///P38BAMD/P3+AQEBAQMD///+AP8A/f38/f39AP//+vr7/v/+AQECAQAB+/r7/P38AwIDBAMD+/v3/fv7/v/6/f39/v39///+//7/AP7//vz6/vz6/v3+///9Af3+AAECAgEDAwUHAQQEAQICAQMEAgUGAwQHAgQFAgMCAgIC/wIBAgIB/v39AQMC///+/wABAAEAAgABAAD/AAABAQEBAgMBBQUEBwcHAwUDAgMDAgMCAQMDAPwCACuB1H4EAf8BAAD//wABAAAAAf8BAAEAAAAAAAAA/wD/AQACAAAAAAH/AAEBAAEA/wAAAQEAAP8AAAEAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAAAAAAA/v7/AQEAAQABAAEBAAABAAD//wABAQEAAQAAAAAA/wAAAAEB/wD/AP8BAAD/AAAAAAABAQAB/wAAAAAAAAAAAAABAP//AQEB/v8AAQAAAQD/AAABAAAAAP8A/wD/AAAAAAH/AP8CAAD/AAABAP8AAQD//wAAAQEB//39+Pj5AQAACgkEBQcN+AYIAQcDA/0EAQAI/wAB/wED+vv8BgcBAgL///v5//78AQID/wH/AAIBAgQFAgIBAf8BAQICAQEA/wAAAQEBAQIB//7/AAEBAQAB///+//8AAgIA/gAA///+AAEC/f7+AQEAAQECAQEC/wAAAQEBAQEB//8A//7/AAD/AAD/AAABAgEBAQEC/gD//v7+AQAAAQICAP///v7+AQEAAAIAAQD///8BAAAAAAAB/wD+//4A//////7+AP8AAAD//v79//8AAgEB/v39/QL9BAUGAf8B//7/AAIA/v7/AgH/AAEA/f3+AQEBAAAA///9////AAEAAgAA/P/+AgEBAQIAAAD/+/r7BgYCAAAA/f3+///9AwIEAQEDAQID/f76AQEBAQEBAgAC////AQH+//4A/wH9/gECAgIC///9AQECAAD/AAAAAgAAAAEC+//9AQEBAAABAQH//gD+AP8B/P38////AgEAAQABAAAA///////+AgED/wABAwQE/v7+Av4A/fz7/P77/Pz9AP/++/z7/f79AwMD/v7/+/v8/v79AgIB+/r29ff3/Pv4AQD+/Pr68fDz8vHz+/n59fX1+Pf3/vv3Av76BAAAAwEAAQD/BQQDBgIHCAkMCAoLCAwLBQoJBAgLAwgJBAoKBQcJAwYGA/8D//8CAAP+//7//wH//wH/AQAB////AQEBAAD/AQEBAwMDBgYGCgkJDAsLCQkKBgUGBAQE+vn5BAEBA///AQEB/wAAAP8AAAAA/wAAAAAA/wEAAQABAAAA/wD/Af8BAAEAAQD/AAABAQAB/wD//wEAAQAAAAD/AP8A/wABAQD+AAEBAP8A/gAAAgIBAQAAAAAA//8A/wD//gD/AQICAQD/AP8A//8AAAEBAQEA/wD/AQEBAAAAAAAAAAAAAP8AAAAAAQD//wEAAQABAAAAAP///wABAP8AAQD/AAEA//8AAAAB//8AAQH/AAD/AAAB/gAAAAAAAQAAAP8AAQEBAf8A/wD///38//f3AAICAQgECgcJE/35+Pz9//79/QH8AgMCBv36Bfn7/wT7/wH9/v/9/v/+/wIDBAMDAgIBAAIBAwAAAP7//wIBAQICAgEAAQAAAAABAAAAAAABAQEAAgEB/wABAAIBAAABAQEAAQABAf//AAAAAP///gIDAv/+/v79/gACAQAAAP/+/wECAQD/AP8BAP/+//8AAAMDA/38/P78/QIDAgAAAP//AQH+/gD/AAD//v37/gAAAAAAAAAA/////v39/f79/AAA/wH+AgIC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AAEAAAAA//8A/wEAAAD/AAABAQD/AAEA////AQAA/wECAAEBAAAAAAAAAAD//wAAAP8B/wEAAf///wEBAQH/AAAB//7/AAEBAAEAAAH/AP8AAAAA/wABAgAAAP8BAAAA/wEAAf8AAP8AAAEA/wD/Af8B/wH/AAABAP8AAAEAAP7/AAEBAQAAAAAA/wD/AAAAAQAA////AQEBAP4AAAEA/v//AQEAAP8AAQL/AP////8A/v79/fv9/fwADQsGBwwBAQEBAQICAwn9/fwBAQT8/v0IBQIFBgUBAAEAAAECAQIAAAEAAAEB//8AAQECAgIBAQD//wAAAAD/AAAAAQEAAAABAgIA/wD/AP8BAQH////+//8CAQIAAQD/AAEA////Af7//wABAQIAAQEBAQAAAAD9/f0AAQD//gAAAP7///4BAP8AAQEBAAABAgD9+/3+/gECAQEAAP/9/PwCAgIAAP4CAQL9//7+//4A/wD+/v3//v8AAP/8/v0A/gL8+/wDBQQCAAAA/v////8B/wD+AP0A/wEBAQD/AAD+/fwBAQIAAP/9/v7+/v4AAAABAAH//v///QABAf///f7/AP3//v4BAwL//f7+AQACAwL/AP4A/wH9//4BAAECAQEBAQH/AP8A//8BAQD+/v8CAv8CAgMAAQAAAv///v7+//8DAwT///7+/v8B///9/fwBAQIEBAX7+/oHBgf6+vr/AAEBAQACAwH9+/4CAgL+/wAEAgT+/v3//gD///4CAgH8+//+/v4FBgT19POytLvHydDv8/b8/PoA/wD9//4AAP//AP//AAEB//z9+vQB/fQJBvgSEBENEQ0DCQgHCAMODggICAMLCQcLCwsVERIOCAn78vLw+PMCDQsIARX9BAYB//0DBQoGBwoGBgkGBQgFBQcCAwQBAgIBAQEAAAAAAAD/AAACAQAAAf8AAQEBAQEDAgMDBQQCAwIB/wAAAP////8EAQQEAf0BAv79AAAB///+Af///wAAAgAA/wAAAQD///8AAQEA/wAAAQEA////AAEAAQAA/wABAQAAAAAAAAD/AgEBAP//AAEA/wAAAAAAAQEA/wAC/v8AAgAA/wH////+AgABAAEB/wD/AAD/AQAAAAABAP8AAAAAAP///wAAAAEAAAAAAf//AAEA//4AAAH/Af8B/wD/AQABAAEA/wD+AAABAP//AAAAAAD/AAACAQD//wABAAABAP/+/wAAAQEAAAABAP///wH/AP39/wD/AAD//v3+//78+vn9/wH/ExMTBQgOAf4AAQEF/vz7AQIGAAQHAwQEBwcFBAQHAAEDAAEBAQECAQIAAQEDAQEAAAAAAAABAgMB/v7+//8A/wAAAAABAf8AAQAB/wD///7/AAEAAgABAQAAAQECAAH/AgADAAEA/f79///+AAAAAQEBAQEBAAIBAAD//wD9///+/v/+AQAAAP7+AAEC/wD/AgED/v/+//8A/v7/AQIC/v/+AP8A/v/8/gD//v///v7+/wD/AQAA/v8AAf//+/37//7+/Pz/BQEC/QD+Av/8Af4CAAAAAgIA/v39AAEAAP8AAAAB/wAA/fz8///+AQIB/wAA//39AP/+///9AwIA/f0B//79/wEC/wEBAwD//v39AAD//////v4AAwME/f/6/v79/v7//wH9AQEBAgMBAQD//wD+//4C/v79AQD//fz7AAAAAgIB/f7+/v/+//7/BAUEBQYG+/z7/////v7+AQMCAQECAAECAAL//f7+////AQMDAf0ABAP//f0B+fv5+/38AwQE8/Hzqauyx8nN9ff5/f//AAAA/v7+AQD/AAEBAQABAwMB//4A/fz5+vjv//wLBwUQEhAIBg0PBggEEREMDAoIEA0MDg4NCggGAP3+/Pn1BQ4P/PYQ/vv6AAj8//38/wUJAAUHAAUHAAIFAAIFAQEEAQEBAP8B/wEA/wAAAgAA////AAEAAf8BAAABAQAB/fz+9/j4+vv7/f39/v3+BAMCBP8AAf8AAAEAAAH/AP///wH/AAAAAAH//gAAAQEAAAAAAAEA////AAEBAAABAf8AAAEA/wEA//8AAAEAAv7/AAIA//8BAQH/////AAACAgEB//8AAP8AAAAAAAEAAf8AAAAA/wEAAQD/AP8AAAEA/wAAAAABAf//AAABAf//AAEB//8AAAH/AAAAAAAAAP///wABAQAA/wAAAQEAAAD//wAAAP/+AQABAAAA/gAAAQAA/wAA/wAAAAABAAD/AAAAAP8BAAD+AP///v7+/v7+/fz7+/z6+/v++/r9/AoMCw4MDAT+Cf8AAAAE/QIDBQQICQEEBwIDBAEDAgIDBQEBAwEAAAAAAAIBAgEDAQABAQEBAQD//wICAgD//v//AQABAAIAAf//AAH/Av7//v///wEAAAAAAAICAQEBAgAA/v39/f///gICAgAAAAAAAP///////gAAAP7+/AAAAAEBAf//AAABAAAA/////wABAQEAAgAA//8A//7+/wAAAQEAAPv9/wEC//8AAQABAf/+/v//AAD//gD///78/P/+/////wAB+v8B/wQEBAEBAP7+/P//AgAAAAIDAf/+/wICAP7+/wECAv///gH+Af///gAA/wAA////AAD/AP/9/v4BAQEA/gEDA/8A//7+/gD//wAA/wEBAPz7+wD+/v79/f8AAP////3//wYDBv/+/f7+//4DAgH/AP7//v39/AMEAv//Av//AAICA/3+/gAAAP39/AIBAv3+/f4A/gL+AAAEAgD//gMCAvz/AAABAAD+AAICA/////7+/fr7+wD///r7+7i5vs7P1vb2+f3+/P4AAAMEAwMCAgD//wD/AP8AAAEAAP4B/wD//vj38/Xz7f36FwwKBhMXFAYJBBERCxANDBEODQYFBfv8/Pn29QEC/wEBAf0AAfr8+//7+f/7+vv8+/7+/f79/f///gD//wAAAAD/AQABAQAAAQEAAAAAAAAAAAAAAgEBAAAA///////+/f38/Pz8+v39/f3+/QQAAgQCAAABAAD/AAH+//4A//4AAP8A/v//AAEA/wAAAAAAAAD//wABAQAAAAH///8BAAAAAAH/AP8AAQL///8BAQD/AAAB////AQEBAQD//wAAAAABAAD/AAABAAAA//8AAgEA/wAAAQAAAP4AAQH/AAABAAEAAP8AAAEA//8AAQAA/wAAAAH/AAAAAP8BAAEBAAD/AAAAAAAA/wD/AAAAAP8BAAD/Af8A/wEAAQAAAAAA/wAAAAAAAAAAAAEAAP////8BAAD+//7+/v78/Pv6+vr5+Pn8+vr+AP77/v0O9fYNCwwBBAQCBAICBAECAgQDBAQDBgUBAQEBAgIBAQEAAQD//gABAQABAwICAgEAAQH/AAAAAAAAAQAB/wIB/gAAAP8A//8BAAD/AQACAgL//wACAQL/AAH////+/v0BAQH+/v4CAgIA/wD+//4BAAD//wD///7+//8BAQEAAQD//v8BAAD+/v8AAAABAQD+/v/+/v3//wAAAQAAAQD//v79////AP7+/f8CAgL//f4AAAD+/v39/v4B//4AAQH+AP3//v8D/wP9/Pz8+/oFBQb+/f4CAgH+//7//wL9/v0DAf8AAQIA/f0AAgEBAQH+/P3/AP///P0BAgD9/gD+//8B/PwCAQIAAAEA/QP9AP8DAgMA//8BAf8BAgH7/Pz////8/PwCAwUCAwL8/PsAAgICAQL/AAADAQL///8BAgEAAAD+/f3/AQH///8BAgH8/fsA/QECAQEBAgMDBAT6+voC//4AAAIDAwP+/fz8//4BAQL9/f0A/wD+//0CAgH+/gHU09bR1Njy8/T7/fwBAQAAAAD//wACAQD/AAH/AP8AAAD/AQEAAAACAgD//vz39vX59/YEAwANDAgICgUSEA4QDQ0KCQf9/v7/+/78/fz9/fz9/Pr59/f7+foA+PgC/fv++fn9+fr//fz+/f3+//4C/wABAAAA/wAAAQD/AAAAAP8BAQIA////AQH+///8/fv4+fn39vX7+vr7+/v7/PsEAgECAAIE/wAA/wACAP/9//79//7+/wH+AQECAP//AP//AAAAAAAB/wAAAAD/AP8BAAEA/wD//wAAAf//AQEB////AAEAAP//AQEB/wABAQD/AAAB/wD/AQABAAAAAAEAAAAA/wAAAP8AAQEBAf8AAAAAAAEAAP8AAAD/AAAAAP8C/wH+Af8A/wEAAQAAAP8A/wEBAP//AAEAAAD/AAAAAAABAAABAP//AAD/AAAA/wAAAAAAAQAA/wAAAP//AP8A/v/////+/f38+vr7+vj59/j4+vn4////BQcHDQcIBwYJAgIFAwD/AQUG//79AwMEAgMDAgMDAwUFAgIDAQEAAP//AQICAQMCAgEBAgIC/wABAQAA/wH/AP3+AAD//gD+AQABAAAAAAAAAAAAAAEA//8A/P79AgICAAAAAAEB/wD/AQEBAAAAAQABBAID/v/+/v79/v7+AAECAQIBAQEA/gD//v3+//7/////AQEBAAEAAAEB/v78AAAC/v79AP///v7+AP///v78AQEDAAEA/v39AP//AP/+/f38AAEAAAAAAQAA/Pz9BAUC+fn6/v/+AQEC/wD/AAEB//7+/v39/wH/AAAAAgIDAgAD/v3+/AD9AgH//v79AP4AAgIB/gAAAgID/vz9AAIABAUE//39AAQAAAAAAwID/gL9/f39AgABBAUF+/v8/wAB/v7+AgQEAQQE//4B/AD/Af//AQECAP8B/f7+/wIB//7+AgEC/wD/////AAICAv8AAgABAP8A/v7/BQMAAQABAgID/vr9AAH+//8A/v79AQH/AQIB8vD1y83T5Obo+vv7AAD+/wACAQEBAQAAAAACAAD+AQEB/wD/AP//AQAA//8AAQEB+/n59fT0/fv6Af78BAEGBQEDBAMC/wD/AAEA/P37+/z7/v7+AAH//v/8/v39/Pj5APr1+PQJDPv6AQAAAQECAP8A/wD9/wAA/wECAf//AAEAAAABAP//AAIBAP//AP/+/fv8+fb0+vX1/Pj4/Pr6/fv9BAACAgL+AP8CA/4A/gL+AP8CAP4A/wD/Av/+/gAAAAABAAAA//8A/wEAAAD/AQAAAAD///8CAAEAAf8A/wEBAAAAAgD/Af8BAAD//wAA/gABAgAA/wH/Af8B/wD/AAAAAQAA/wD/AQACAAEA//8AAQEAAAAAAP8AAAD/AAAAAAEB////AQD/AAAAAP8AAAAB/wD/AAAAAAD/AAAAAP8BAAEAAP8A/wABAAD/AQEAAAAA//8AAAAAAf8A/wD///3/AP/+/fz9+/r5+ff4+fn3+Pn5+QD/AQUFBQwLDBQTFQ8NDwQCAwABAwIFBv7+/QEDBQQGCAMEBgAAAQAAAQD//wABAQABAAEAAAAA////AQIDAgD//v7/AP4A/wD/AAAAAP7+/gD/AAABAQIBAP7//wAAAAAAAAAAAAH//wAAAP7//gD//////v8BAgH/Af39/f7//wEBAQEBAP/+/v3////+/v///wEBAAABAf/+/v39/gAB/wEBAP///AD//v7//v7//QEAAf7//v/8/gH/Af///wAAAQD9/gD+AP4A/v79/gECAwMBAf79/QQDA/7+/wID//79AAAC/wABAQD/AP7//QAAAAEBAfz7/QEBAgICAP//AP39/AMDA/39AP8AAf78/QABAAUEA/v59wEAAP0AAAECAgAB//3+/QAAAPz+/QUDA/7//QD+Av39+/v7+QAKCgIBBf4A/gD/AAUEBf3+/v7+/QMCA/v/AAEBAf/+/wICAQMDA////wECAv///wIAAP8AAf7+AP39/v7+/gUEBfz//gEAAf7+//39/ePj6tXV3fb29f3++/8BAAEAAAIBAf8AAAD//gEBAP//AAD/AAAAAQAA/wECAv//AP39/vPy8fb19fv6+wIAAv79/fn4+/4A//z8+vn6+//+AP8AAAEDAwEBAgICAvz7/AL9///9/fz6+vv6+gX//f8A/wABAQEAAAAAAP8AAAAAAAAAAAEBAAD///7///77/Pv4+Pn09fr49vr49/36+gL8/gQCAQL/AgEAAAECAP3/AAD+/gABAgAB//3+AAD///4B/wD/AAABAAAAAAD/AAEAAAD/AP8CAAEAAAAAAP///gABAQD/AAABAAAAAf8A/wAAAP8AAAEBAf///v8BAQMAAP//AAABAQD/AAD//wEAAf8AAAAA/wEAAAD/AP8BAAH/AP8AAAD/AAAAAAEAAAAA/gABAv///wD/AAABAQEA/wD/Af8BAAEA/wAAAP///wEAAAAA///+AAAAAP7+/v79/f38/Pz6+fn29/X49/j6+vv+/f4CAQMFBgYHCQkODg4KCQgBAP7+/wEBBAUD/wUBAQQAAgT/AAMBAAAAAP//AAEBAAAAAQEAAQAAAQEBAQD+/v7///8A//8BAAD//wAA/wD//v8BAAAAAAH+//7+AP8BAAICAgEAAP8BAQL///8A//8BAQH+/////v7+/v8CAQECAgH//v//AP/+/f0AAQAAAQAA/wAAAQEB///+AP8CAQD+/wD+//7+//39/v3///8BAAD///4CAAH+/v7/AP8CAQL/AP//AAH9/fz/AAADAgP9/v7+/f0DBAUDAQIA/wEA/v8BAwIDAgP9/fwBAgIA//8AAAD+/v7+/v4CAv/+/QD9/v3//fwBAQH/AAIBAQL///0CAgEBAAD+/vz/AQID//7//wH+/v4A//8CAgL+//7+/v0CAAEA/v4EAwT+Af39+vv+Av8DBAUCAQIA/wH9/PwAAQL+/wABAQEAAP8CAwIBAAADAgP8/f3//v8EAwQAAQMBAAL+/v4DAgICAQD///4AAP8BAQIAAAH09/rLz9js7fL9/PwAAf8CAQQBAQECAQIBAgEAAAABAAD+AP////8BAAD/AQEB/wEAAf8AAP739/Tu7ur6+fj69/rs++7/Ae8JCggDBAL/AP4B/v0BAgMAAAEBAgICAQH//v4BAQL+/v3//v3+/fz+/vwA////////AP8BAP8BAP////8BAf///wEAAAD9/v79/f36+vr6+PcA/P0GAAAKAAADAP8EAAEBAQEAAf8C/gH+AAIDAgAA//////7/AQH/AAABAP8AAQAA/wAAAAAAAQAAAAD///8A////AAD/AQEB/wABAQEAAAAA/wAAAf8AAAEAAAD/AAAAAAABAQABAAD+AP8DAAD/AAEBAP8A/wD/AQAA/wEBAf///wABAQAA/wH/AP8AAP8AAQEA//7/AAABAAH///4BAAEAAQAB////AAAAAP8AAAEAAAAAAAAA///+AQAA/wAB///9/v/+/fz8+/v7+fn59vf29vX1+fj7/v79AP8BBAUGBwAAAwQDBgcGAgQDAP//AP0BAAIEAwEDAgIFAwMFAQECAQEBAQAB//8A/wD+AP8BAAAEAAAB/v7/AAD/AgEB/wEA/v3////9AP8AAgIB/v7///79AQEAAgAAAQMC/v7+AwMEAgAA//8A/wAC////AgEC/gEAAwH+AAABAQAB/wP/AAD/AgEC/////v/+/wH//f38/f7+/v39AAH//wAA///+/P38///+//8A//7+/v//AP//AP8BAAAA/QD+////AQEDAAED/fz8///+AAAA//8AAQAA//7/AAH/AAAA/wEB/f4AAAAA/v/+AQEBAAAB/Pv7BAQEAgEB/Pz8//79AgAA//8A//////7/AAAA//7+/f39///+AQIB/wAAAQAAAP8AAQECAAEB/v//BAIDAQH9/v7/AP4AAP4BAAH//f78AgMCAAEC/v7//wD/AQICAgEAAAEBAwMD///+/v///f//AQICAgICBAUF/v7+AAEBAQD//f3+AQEA/v/+/wAAAQAB+vz72tzkzc7Z/f//AQICAgEB/wABAQAB/wD/Af8BAQEBAAEAAgAA/wEBAAEAAgAC/gD/Af4A/wAA+vj78e7z8fD09PT6AAD/AgQCBgkKERENDQoHBAL+AQD/AP8AAwEB+/79/Pv9BQQCAgAA/vz7//7+//7+/v/9A/8A//8AAAABAAABAAAAAAAAAf8A/gH////+/fv8/Pf2BPn7EP8CAv4B+Pz/+f7/BAEAAf8AAAAA/wEBAQAAAP8BAgH//gABAv8B/gEAAP8C/wD/AAH/AQAAAAD/AAABAQEB/wAAAQD//v8AAwABAP//AAAB/wEAAP8AAQIBAAABAQEBAf//AAEBAAAAAQAA/wAAAQD//gABAf8AAAD/AgH///8BAAAAAAAAAAD/AAAAAP8AAAD/AAABAAD/////AAAA/wD/AQAB/wD/AAABAQEBAP7+/wAAAAAA/wAAAP7/AP/+/f39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AQEBAQICAgEC///+///+//8BAQD///8A/////gH/AQIA/P3/AwMCAP7//v/+Av4D/wD/AAD9+vr+AQIEAgMC+vv/AgIDAAACAAH/AAIA/f39/AD/AAAAA/8A/v7++/r6BAUHAgEAAgAB/QAAAQD//f38////BQQF/wABBQEC/fz7AQAB//7//v//AQEC/v39//7/AQIC//8A/P7+6ev08fUAEBUa+Pbi/f30Af7+AQAA/////f79AQMBAgICAQEB/wH/AQD/AAEB/wH/AAD+///+/v79//8D+v0G+v4I+fsC+PsA+Pv/Cv0B+/v//QYBAf////78//79+/r5+fb1Af7+AgL+AAD/AQMBAgICAgIDAQEA//8A////AP8AAf8AAP8A/wD+AAACAAABAwACAAACAv4AAPz9//v6Bf3+Bv4A/P8ABAABAAAAAAABAQIBAP8AAf8A/wEBAf4BAf7/AQAAAQEAAQAB/wH/AP//AAAAAAAAAAEBAP//AAEBAAAA//8AAAAAAP//AQD//wECAQD/AAACAQAAAP8A//8AAAIAAf8A/v//AgEBAAAA/wAAAP///////wAAAgAAAf8B/wH/Af4A/wD/AAABAP//AAAAAAD/AAEBAAD/AAAA/wAAAAEA//7+AP4AAP/+/v///v38/v39/fr8/f39/v3+AAACBQUIBwQIDAsDBAYICA0NDgkKCwcJCAoLChAPDwkJBwH//P///QAAAwAAAAEAAQD/AP8A/gAAAQAAAAEAAgMCAgEBAAAAAAEBAAECAgEBAgAAAf/+Af///gAAAAEAAQACAP7+//////8A/gAAAv7+/gAAAQD/AP8AAAAAAf///v38/P//AAMDAv///wEAAP7+//7//QAAAAAAAP8AAP7+//8A/gAAAQABAQQEBgEBAQAB/vv7+/v7+wAAAfv8/Pz6+f38+QAA/wMDAQMCAgIBAP7//v36+fz/AQABAAAAAAEAAAABAAD/AP38+/8BAQIBAQABAQMBAgAA/v8AAP7+AAMDBAEAAf/+/v79/QAB//8AAgABAf///wICAgAA/wD/AQABAP///wAA/wIAA/7+/QIEBP///gEAAQAAAAD/AQEBAv4B/gMBAPz+AP8BAf4AAQH/AAMEAgD/AAEBAQABAQECAQUFB/8AAP37+gEAAQIBA/7+AAQBAwD//wIEA////////v/9/QMDA/39/f8B/wECAgABAAAAAPz9/efq8vn9AQEGCQMID//17QEB/f///wECAQEBAQD/AP///gIBAgEAAgQDA/v8/f7/AAEAAQD/AQH///4BAwIGDf8CCf4ABP3/A/4AAf3//vz9/fj6/wYC/AgC/f78+f36+fjz9QkDAgMDAQEEAAABAQEDAwAAAQAA/////gD/AgEAAQAAAP8AAAH/Af8B/wD+//7+/fv4+ffy8/ry9AH3+gL6/AH9/gIA/wQAAAD/Af8A/wEBAQH//wEAAAABAAABAQACAQEAAAH/AAAB/wD/AQAAAQEBAAEA//8AAAABAf//AP8BAAEAAAABAP8AAQAAAP8A/gD/Av8B/wAAAgD//wAAAQD+AP4B/wEBAf4AAAEAAAD//wD/AAAAAQAA//8AAP4AAAEAAP8A/wAAAAAA/wEAAAAAAAAB/wD/AP8AAAEAAAEB/wD+AP8AAAH///3+///9/v/+//78/wAAAgMEBwUEBgEBAwMHCAkHCAoHCAkICggJCQkHBwYEBAUFBQQIBwgEBAIB/gL///8B/wABAQAAAAL/Af8AAQAA/wABAAACAgICAgIAAQAAAAABAQIBAQIAAQD///8AAP7///7///4CAgL+/v4BAAAAAAABAgP///8AAAD//f8AAAAAAQAB///9/Pz///4CAgL///7//v78/v3/AAABAgIAAf//AQEBAAICAwP//v4AAAD+//7/AAH6+vn9/v0A///9/f79/v/+AP8DBwUAAwH//Pz39vb7+/n//v4DAwQFBgYDAwQBAwP+//8BAQECAQD8/P3///8A/wD+/v4DAwQBAAH/AAAA//8EAwP///4B/wH8/Pz///8AAP8CAgL//wABAQIBAQL///4AAQABAQH//wEBAf/+//8A//8A/v0AAQEBAgIDAgL8/v3/AP4A///+AP8BAQD+/v////8AAAD+/wAAAQAAAQIAAAD+/v7+//8A/wAAAAAEBAUGBgb+/wD+//4EAwUAAAADAwMA/gL9/wD9/vz//f0A/////gABAgL///77+/r09f0FBgn6/PoIChb48e3+++4A/vsAAgAAAQIBAgABAAD+//4DAQH+/v////////7//gAB/wH//wMDBAsFCA4CAP8A/v0DAQUFBAQEAwIBAP8B//7//Pn+Avz49/H9+fj++PoMDwwGBQcEBAYFBwcCAwMAAgH//wAAAAAAAQAAAQEBAAABAAAAAQH///8AAAEA/wH//Pz89vj79PX7+Pf8/Pv+//38//8E/wD/AP8BAQD/AAABAAABAAEB/wACAAD/AQEB/wACAP///wAAAAH/Af8BAAD/AAEA//8AAAEBAAAAAAH/AQACAAEBAAD/AAAC/wEBAQAA/wEAAP8AAAAAAAAA/wAAAgD///8BAQAAAAAAAAH/AP8BAAAB/wAAAAABAP8AAAAAAAAAAP//AAAAAAD/AQEB/wEBAQEBAgEDAAEBAQEAAQAA//7/AgAAAQIA//38AQMDBAID//7+BgcKBwcJBQUGBwcICQoJCAkJBgYGCAkIAQEBAgEDAgEBBAQEAf/+/v0CAf/9Af//AAD/AAICAf8A/wD/AgABAQEBAAAA/v7/AQEBAQEBAQACAAAAAP8AAAAA/v79AP//AQAA/wD//v/+//7+AAEBAf////7////9/wABBAMEAAD//fz8+/z8AwMB/v//AP3/AAAAAwIDAQICAAEBAAICAAIC/f/+//39AP8B//39/f7+AP79/vz7+PTz9O7s+fXz9/b1+fv7CQwN+fr6BQMCAwMEAQMBBwYF+wH/9/T+/wEECgsNCQkM/f//AwEE/P/9AAABAgEB//79AQQEAAAA/v3+//8A///9AAEB//7//v/+////AgIB/f3+AgICAQEB/f7/AQEBAgEB/v7+AAAAAQIBAwIDAAD/////AgECAf8A/vz9/v7+AQIB///9/v0ABAUF/f7+/wABAQQC/v3//P38AwQDAQAC/v7//v78AAABAgEDAgMDAQICAgACAP8B/wABAgICAf3+AAEAAwIB/v3+/vz/Af8A//8AAf8B//4A/Pv+/f4EBwcLAQIKBBAB+/Xz8+/3AQD/AgMBAQH//wD//gABAf///v7//v77/v7///7//v//Af8B/gEGBwoXCgkPAwIABQQBBAMBBQQABQQAAQD8/v79AgL+/vv2+fX09/LzAf/+CAgIAAEAAgQGBAYIAgMDAAEBAAECAQECAAABAf//AQICAAAC/////wAAAAD/AP7+AQAAAwEDAwQG/wID/gEB/gD/AQEABAEAAQAAAAAAAQAAAAEBAAEBAwAA/f8AAgABAQD//gEBAAAAAP8A/v8AAf///wH/AQAB/wD/AAABAAD/AAABAAAA//8A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CwsLCgkLCAcIBQUEAwIEAgIBAAAB//8AAQD//wAAAP/+AP8AAAD+AP//AAEA////AAD+//7+AP/+/wD+AP///wAA///+AAAAAP////8A/wD+////AQH///7/AP//////AAABAQEBAQEDAQEBAQECAQADAAACAAH///8BAQD//wAAAAH/AQACAQECAQICAf0BAQEA/wAAAQEAAAABAQAAAP8A//7+AAAAAQAB/wH/AQICAv/+//4B/gADAAH/AwQCAP////8AAAEC///7AP4CAAQFAQcH/vj2AgQECgYC9/XuAvz7AgEDAQED/wIDBwkJCgH68/v4BAcH9fD1CAsMCg8Q8+ruAgAA/QH+AQABAgEBAgIC/f39/f79/v79//8AAwMBAgIDBgcJBQUKBgUGAgECAwICBQUECAkHBAYFBAYEAgEAAgMDAwUECgkJ3dvdEBEPKgkMBgwOAAEBAQEBAQECAQAAAQEAAAAB/f39BgYG//7+AgIC/////f7+AQAA/v8AAAH/Af8BAP8AAAAB/wD/AQEBAQABAgMD//7/Af7/AwEBAP7/AAH+AgEE/f8AAgICAAD//gD/AgMCAP8BAP4A/wEAAQMA/v7+AAD9AwIB//4AAQIBAP/+AAACAAEAAAD/AgEB/gABAAEAAQICAgQEAwYJBQkLBw4MBw0LBAgHDRMVBAwNAAUG+v38/P39+vr6+/z9/Pn7+vkD/fz+AwMDFBUQBAQFAwUDCg0NCQwJBggHAgUGAQMEBwYIAAEDAQMEAgMEAwMGAAADAP8BAAAAAAD+AQAA/wABAAAAAQEBAgECAgIDAQECAQEBAgEBAAEBAAD/AP8AAP///Pv69vPz9fTy+Pj29/n39/z79v799wD99/79+f79BAD//wEBAAAB/wD/AAABAAAAAf///wAA/wAAAP8AAAEBAAAA/wEAAP8AAAEAAQAAAAAA/wEBAQEBAgIC/wD//wAA/wEBAgEBAQMDAgQEBQQEBQUFBQgICQkKCwsKDAsMDAsMDQsKCwkICQgJCAUEBQIDAgECAQAAAAD//wABAP//AP////8B/QH//wAA/gD//v//AQD//wAA/wD//v7//wD///8A/gD/AAD//v4A/wAAAAD//wD///////8A/wD+/wD///8A/wEAAQEDBAACAQAABAABBQEBBAAAAv8AAAEA/wAAAAEBAP//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AAEBBQMD/f38/v/+AAD+/wAA/wD//v7+//7+/gEBAAD///7//wD+AgMB//79AQACAgIBAAEA/wD+AQH/AQH/AQEAAAH////+//8B//7/AQL//f39AgIBAAAB/wAAAQIBAwACAv8F/P7+AvwGAwcJChIVAPz7+/7//wUI/f8D+Pn6DA4OBv8J+vz8/wD/Av4G//78/v39AgX9Av39AQD/AgEBAAAAAP7/A/0A/wD//v7/AgEAAgABAAAA/v//AP/9//7+AwD/AwIFAwQDAgEDAAIBAgIBAgIDAQEDAQEA//8BAAECAAECAAAC///9/f38+vn3+fTz+vHy/vX2Av8ABQgGBgwJ+gD7+wD+/vj//QEABP7//gH/AAABAAH///8A/wAA/gAAAP///wABAP/+AP////7+/v7//wD//wH/AP3+///+//7//gAA//7//wEBAgMCAwMEBQQEBgYGBwgHCAoJDAwLDQwLCgsLCwkKCQkICAYHBwQEBAMDAgEBAQEAAP8A////AP/+/v8A/gD//v8A/wD//wD//v8AAAD//v///wAAAAAAAAD////+/wD/AAAAAAD//wD//wD//wD//////gAA/v8AAAD//wH/AAAA/wABAQAAAAECAwEBAwAAAwEBAgEAAQAAAAEAAAAAAAD//wAB/wAAAAAA//8AAP8BAAABAQACAQABAQABAQD+AAAA/wAAAP//////AAEBAf//AAABAQAAAAEAAAICAwAA/f7+AgACAv//Af8CAAEA//8A/wEAAAMCA/4ABgIDBP4DAAUJCQkGB/zw8A8IAvP49PwJC//3/gAECgQB/w8JBgYHCff5AO3x9AcJFgMECP779P3+/gIAAAEBAP//AAIBAf4CAgH/AgABAwIAAgQFBwcMFgACBQMDAggIBgUEAwH//wEAAAIBAgMGBfnx+fTv7fT19vz+AQH+AfDq7fjv8fzz8wUMEAICBQEA///+/v8CAP79/gD//gEAAgAA/wEBAQIBAv///v7+AQICAgIBAf8A//3+/QICAgH/APv8/gABAP4AAAQEBgD/AP78/AD+AP7//gMCAv38/QAA/wADBfz9/wUFAgIB//38+gQBBwACAf8A//39/gAAAQICAf7+/gEBAf8A/wEBAAD/AAAAAAABAf8AAP8A/wMEBgABBAICA/Hu6vr8+REcIAQEB/T19AACAwgHCQQEBv3+/AEAAfz//wECAQEBA/8B+/z8/Pz9/f/9/gECAAEA//////7+////+wECAQMAAf39/vz+/gICAwYHBwMFBQIBAgIDAgECAwEAAQEBAgICAQAAAAEBAgABAgAAAv7/AP////z6+vny8/bs7ffr6/jt7Pr09Pr7+v7+/v8CAf8DAPwCAP0A/wT+/f8BAf4AAAEBAQD///8AAP8AAf3//gD/AAAA//7+/v7//v///v/+/v/9/v39/f7+/v7+/v7+/v4A/wAAAQAAAgECAwIEBQUGBgcICAoKCwoKCgcKCwoJCggJCQcGBgYFBAQCAwMBAAEA//7+AAAAAP///v8AAP8A//3+//8B//4AAP///v//AP4A/wAAAAAAAAD//v8BAAAB/////////wD///8A//4AAP7//v8A//7/AAAAAP8BAAAAAAEAAAABAf8BAAIAAQECAgIBAwMAAAH//wABAQEAAAAAAAAAAQD/AAAAAAAA/wAAAAABAAEAAQEBAAEBAgEB/gH/AgEB/gH//wABAAAAAAD///8AAQEB/wAAAAEBAQD+AP8AAAEBAQIAAgMC/gMAAf/+AQACAwMA/gACAAH+/gMDBQgEBwgDDAcCBwT97u4A7usGDxr18/EJAhD/BwIDAQUNCQkD9vkXDwTyFBENBDMH/O3i3ssBAAACAAD//wAA//8AAQECAQL/AQIA/wD/AQIKDRUGCxMAAgQGBgIKCgYGBQUEBAMDAwH///7++/v28vH06+r38/f9/P0E/PwF+/v68fL89vX99/YCBAj9AQMAAQEBAQL9+/wBAQH+/vwBAQQCAQECAgIAAQADAwICAQL//v7//v8DAgP9/v0CAwMEAQD+/f0HBwj8+voA/v4BAgEBAf8CAAH+/P7///sAAgH8/gABAgP7/Pv/AAACAgP+/fsCAQUAAAQAAAD//v8AAP//Af4BAgL///8AAAEAAQEDAQL9/f0AAP//AQEBAwMCAgX+AgT7+vnw7egJEBAKEAcQERAFBgn+AAAAAP8DAgQA//8BAgL//v39/v0CAAIBAQL+/v4CBQD9/fsA/////fwCAgEAAgL//v/9//4BBAUJBgUFBgUEBQYCAwMBAP//AAACAgEBAAIBAQIAAAEBAQH/AAABAQIAAAIB//7///7++/v69fX47/D37+/78vH69fX4+Pj7///5/vz6/f38AP77Av8E/f78AQECAAABAQAA///+AAD+AAD+/////wD/AP/+/v/+/v79/f3+/v7+/f39/f39/v/9/f39//7//wABAwL+AP8AAwMCBQQFBwgHCQkJCgkKCgsLCgkJBwcJBgYGBQQFAgMCAQAA///+/wD+AP//AAD////+AAAAAP/+AAD//wD////9AAAB//8BAP/+AP8BAAH/AP///v8AAv/////+AP8AAP/+/wD+//7+AAD+//8AAP8AAAD//wEBAQD/AAAAAAAAAAIAAQIDAQMFAQIDAQEBAAECAAAAAAD///8AAQAAAAAAAAEAAAABAQD//wAB/wABAQICAf0CAgH9AAAB/gABAQEA/wABAAAAAQD/AAD/AAAAAQEBAAD/AgAB/gEB/wAAAQEBAQMDAQEAAQAAAgMB/gH9AAEBAwAGBQkMCRAT+RLvBhAM9+Xy+OLiCTEW7/n1BPUFAwIA/wUACgYLA/8A9PjzDAj78vwDBQ4pDBHq9vDi/wD9//8CAAEBAAAAAQICAQAA////AQcLDhYiBQYJBgUBDAoECQcABgMBAf8AAQD+Av8A/vv6+vPwBwUD9/n6Av7/DQMAFAsJ/vX2/vX3//n4AQr7AQQCAAECAQAAAgMC//////7/AgAAAP8AAAEBAAAAAwIE/fz9AQEBBAMEAAAAAAAA/wD+AQAAAQAAAQEBAgIBAP///wD/AAD+AQEA/v7+AQAB/v3+AQECAAH/AP8AAP8A///+/P38AwAAAgQCAQID//8A/f79/wAABAECBAD/AAAAAQD//wD/AAD//wEAAQICAv8CAwYEBAMFBgkLBQQG//v5/fv4AAID/QP9AwUF/wH/AP8AAgEBAwMD/v79Av39/v/+//8A/vv7/f//AgIFAgEBAAAD/f/+BAQFAwQEAgMEAwQEAwQEAQICAwMEAwMEAgMCAP8A/wEAAP8CAAABAAAAAAABAgECAQIC//8BAAH/AP7+/fn6/vb5+vT1/ff4/Pf5/fj6/Pv99/37+P78+v/9+v//+wEBBPz9+wEBAQEAAQAAAP///gD/AAAB/wD///8A/v/+//7+/f3+/v/+/v39/f39/P39/v7+/f7+/v/+/wACAQEBAv8AAAICAgUFBAcHCAsKCgoKCgkICAgICAYGBQQEAwECAQD/AP4A/gD//////v8A/wD//wD//gAB/wAAAP///gD//wD/Af///wD/AP/+/wAA/f//AQH//wAAAP/+/wD///8A/////v7//v///gD///8B//8A/wAAAQH/AP8BAAEBAP8AAQAAAgECAgECAwEAAgAAAwAA/wD/AQABAAEBAAAAAAEAAP8AAAAAAAD/AQAA/wH/AP8AAQECAwD+/gECAAH/AAD//v8AAAEBAP//AP//AAAA/wAA/wH+//8A/wEBAQH+AAEBAQEBAgAA/gAAAQECAQEAAQIBAQACAf7+CAUMDggTEwoU6fbt7PPr6gf17gYHEvj18wUDAAELAf/7+AIDAwIB+w0F+gwJAv8RIf/8+eX6/fv35AAA/gIBBgEBAP/+/wABAQEECQ0TI/0EEvn6+g8MBRENBgsGAwIA/v3//Pr6/QH8/PXr5/r18wIGBf3+/gkC/w8DBBITEggJCgH+/gH+AAD9/AACBQEEAwEA/wICAf39/wAAAAD//wAAAQQCBP8A/v39/AABAAEBAv7//gIBAQEBAP79/v78/P8AAP/+/f///gICA/38+v8B//7+AAAAAP7+/v7//gMFAP79/QIAA/79/gUDBv7+//4A/P4AAQIDBQECAwD//wEBAf39/QECAwMBAf//AAD////+/wAAAP7//v79/QEAAAAA/ggLDQIFCPf29QcO+//9+/79BAACAgEDAwECAv39/f///QIBAgMFA//8/AQGAgACAwICAwQBAvz8/AEE/QYDAgMDBAMEAwMDAwMDBAEDAgEAAAEBAgEBAQABAAAAAAAAAQICAgAAAQAAAAAAAAAB///+/wEA///+/vr5+fby8/Ts7v3x9AP8/gEBAvv//vr//fv//vv///z+//v/APkC/wT+/f0AAAAAAAAAAP4AAAEAAP//////////////AAD+/fz+/v7+/f7+/vz8/f3+/f3+/v7+/v8AAAADAAMBAwEDAwMEAwUHBwcJCQkHCAgIBwYHBwcEBQQDBQMBAQIAAAD/AP////8A//7/AP///v4BAP//AP8B//////8AAAD//wAA/wAA/wD/////////AAAB//7/AAAB////////////AP////7///7///4AAP8A/v////8BAQIAAQAA/wH/AP8AAgECAwIBAwQBAwMAAQIAAAAAAAEAAf8AAAAA//8AAAD/AP8BAAH/Af8AAQAA/wAAAAEBAAD/AQH/AgH//gEAAQH/AQEAAAAA/gEAAP4AAP8BAAD////+AP8AAP8AAQIBAwECAQT/AP8B//8C/wL//v8AAAD+AP8AAgEDBgQFCw0KEhcPGOzz6ur38fD66OUMHQzyAQD6+PP++/kBAAL5AAUJBAMSCgb0B/b4AwAQEyL////i3MD9+e0AAP0BAAICAwQBAwoHCx0BBxz8/QADA/0LCgkNCgMIAwD5+Pb7+gEHAwL79fP07ur59/bt7PD9+PoNAwEWFA0UGxkNGBgBBAYCAP7++voDBAgCAAABAQD+/P0B/wACAAEFAwUFBAQAAQAA/wABAAEBAQH8/PwFBAMAAQD++/wA//4BAAL///z//v4CAP/9/Pr8/fwCAwICAQL8/fz9/vwA/wD//f0BAgEA/gD/AAH+/QP+//7//wH//v4DAP8C/wQCAwQBAAP/AP39/PoAAwQDAwT/AAAA/wD+//7//v3///wB//77+fgABAILExP5+fb5+/wHA/8C/f4BA///AgADAQMCBAP+/fz+/v0BAQADAwT9/v0GBgT+/v39//8EBgcGAgH/AQEBAQADAgMDBQQEAwQBAQEBAQEAAQD//wD///4AAAEAAAAA/wH/AAAA/wABAQEBAAH/AQD9/f37+vv59ff58fP67e/67vD69PX6+vr7//77///7AP75/v77///9AQD9/wAE/P38AgAA/wD/AP///wAA//8AAAAA/////wD/AP7+/v79/f79/v7+/v39/f38/f7//v79AP7/AgMDAgMCBgYFCAcICQkJCQkKCQgJCAgIBgYGBAUFBAQEAgECAAEA/wAAAP////////////7+AQD+/gD/AQD////+//8AAAEAAP//AP8A//8A///+AAD/Af///wD/Af///gD/AAAAAAD+//////79/gD+AP//////AP8AAAAB/wD/AQEB/wD+AP8BAgECAQIEAgIEAQEDAAEBAAABAAAAAAAA/wD/AAABAQH/AP8AAAH/AAAA//8AAAAAAAAAAAECAAH+/wEBAAEAAAABAAAAAP8AAAEAAP8BAAAB/wAA//8A//8AAAABAQAA////AAABAQACAwD//QD//wAA/wAAAAEAAAD/AgICBggIARAR/BkaDe7s+v359ebkCQkPDBgg9P7+/fz3/PjzAgQLBwEBCgQDBwL6FA8E7vH5ExUb/gA97uva+vftAf//CQgPBAcU9/0L/v8FAgH9CgkHDgwEBgL9/fz4AQAF/wD//wQB+PPu9PHu8urt8evtCwABGhEOHBkVCQ0LBQoK/P37/vn5AQYIAPz7AAEB/v7//v4AAAAB/v//AAEB/gD/AP39AQD/AgQEAP7+BgUFAQIC/f78AAICAv8AAP/9//8B/v//AP8A/f3+AQEC//3//f77/v/8/f38AgEC/v0BAwAE/Pz6BQYD/fz9///+AQMCAAAB+/75BAUAAwIEAQH///79/wL//P39///+AAAA/v8A/v79AQEBAgID/wD/+vn5/Pz7CQ8P/fMCBwgLBggJAAADAQIDAgIE/v7/AQIBAgMDAgMDAgMC/v7/Av7///7+AAAA/v/9/f/+AQEDBAQCAgICAwMEAwMDAQEBAAABAAAAAQABAQIAAQEF//////////8AAP4AAAEB/wD/AP8A/////f3++fn59vT0+e/w/O/y+/X2+fb3+vz6+/7++///+/7/+wD//AD//f8B/wAAACuB1H4E/v39/wEB///+AP8A/wAB/wD/AP8A///////+/////v7+//7+/v///v/+/v/+//7/////AQIBAgMCBAQEBwYICgkLCwoNCwsMCgoKCAgHBwcHBgQFAgICAQEAAP8A///+AP8AAAD+AP7+AP/+/gD/AQD+/v//AP//AAD/AP8A/wAAAP7/AP//AAAA////AP/+/wAA////AAAAAP/+AP/////9/v/+/wAAAP8A//8AAQABAAAAAQEA////AAAAAQIAAQEDAgMFAQIEAAACAAABAAAAAP8A/wEAAP8AAAD//wD/AAEBAAD/AAAAAQD/////AAAAAAEBAAEBAQEBAAEAAAEBAgAD/gD+/v////8AAP8BAAAA/wD//wH/AQEB/v7/AQD//wD/AgIB/f4B/wEA/gEAAAAB//7+AQEAAAEBBAYFAAsJCRYcE/b6APz97+Ph6tbSD/0CAg8U9fz8//r9Bgr5BAcKBP77GBEH/AEDCQT58fP+Bx0eEhQV/fr59fLz7e7x+f4FBAQCDgoADwwBFA4EDQcCBQIAAv7+BP7/AQD9/PX08+rk6eLg+e/yBfv6GhMOIhoXFRkWDRQVAAMCBQMCAf/+/vz6/vv5/v3+AQUDAgID/QD+AQAC/wD/AP//AgAB/v/+AP7+/f7+AwQD/f/9/wD/AgIDAP8A/vv7//7+AAD////+AgICAQAC/wH++vn5///7/P37AwMFAgMCAP/+BAQFAQAB/vz8AwQFAwAC/P/9AwED/v38/P37BAEA///9/v79AQIB/vz7/f3+BAYJBAME/gIC/wIB//8AAwMFAAEDBgoLAgYKAQMFBQcJAQIE/wACAgMDAAAA////AQEC/v79/Pv9AwMEAQD+AAECBQUHAAD+AgIBAAEA////AQICAQIBAAAA/////f38/wABAgIDAwICAQL/AQABAQAB/gD/AAEAAAABAgAB/wAA/wD//P79+/j5+fHy+ezu+PDw+fX39/n49fr4+P78+f79+/7+/f///QAAAAEAAQABBP7+/wAA/wAAAAAAAP///QD/AP8AAP8A///+//8A/v/+AP7/AP////7+AP8AAQABAAEAAwQDAwUEBQUFBggICQoKCwwMDAoKCQkICAcHBwQFBQIDAgAAAP///wAA////AAD//gD/AP///wD//wAA/v////8A/wD//v8AAAD//wAAAAD/AP//AP///wAA/wAA/wEAAP8A/////wD//wH//wD//wD/AAD/AAAA/wAAAAAAAAABAAAAAQAA//8AAgEBAwECAwIBBAEBAwAAAf8AAQEAAQAB/wD/AAAAAP8AAAH/AQAA//8B/wAAAAAB/wH/AP8AAAAAAQEBAv8BAAACAQD+//8B//8AAAAAAQH///8AAP8AAAD/AAAAAP8AAAAAAf8A/wEAAP4AAAECAgH/AgH/Af8CAv/9/P7+/QICAv8CAgAEBQULDgkWHBD7+//9/u7i3/jh2wshA/wIDfb59/j5+gMI9AIFBgsEAfz8AAMNAAwE//r+BOsEBPj5/QH+Bfv6Bv///wgG/x4YBhURBwsMAgf9+gH7AgcICAP/+/339Orj2+Td1/ny8g8FCBQVEBYTERQZGggTFAgUEv/49QEAAf7+/gP/AP/8/f8DAAID//////39/QMHB/7+/gMCBPz+/QMCAQECAQL+Afz7+/4A//8AAAMCAfr6+/7+/f39/QEBAAAAAAAAAP7+/f///QD//Pz7+f39+v79/AIC/wQHAwIBAAH//gABAgD+//v+/QIEAwD/APv7+f39/v8H/wIDAf79/AECAQQEBQEB/wMBAP8BAAMBA/7//gUICQYJC/r5+AQGCAkPC/39/gMFBgAAAgEBAv7//v7///7//wIB/wAAAQD///39/QICAwEC/wEA//7/AP8A/////wD///z8//79/gEBAQEBAgICAgMCAwICAgEBAQD//////wABAAEAAAAAAgEAAQAAAP7///3+/fr6+Pbw8Pfl5/bk5vry8P349/r7/Pj7+/f+/Pr+/vsA//4B/wAAAQAA/wMAAQQBAQH//wEBAAD+//8AAAIAAf8BAAAA/gD/AAAA/wEAAQABAAIA/wACAgAA/gAAAgABAgIGBQUHBgcICQoLCwwLDQwKCwkKCAkHBwcGBQYEAwMCAQAAAP8A/wD/AAD///8A/wAB/v8A////////AP//AP4AAP////8AAP////8A/wAA/wAB/wAAAAAB////AP//AP8AAAAA//4A/////////wD/AAD/AP8BAAEAAAAAAQEAAAD//wEAAAABAgAAAQECAwQBAgMAAQL/AQAAAP//AAABAP8BAAD/AQEB//8AAAAAAAEA//8AAP8A/wD/AAD/AAABAP///wABAQEAAQEAAQABAQEBAgAA/QD/AAABAQEB///+Af8A/wH//wAA/v//AAAA/wABAAH/AQABAgIA/wL//v7/AQD//v/+//4A/QACAgMFCAYMFRYBBQMAAwH+Av7x5ebt3NMSJiwDBgzu9PP18v8ECAb+/v8FBAcC/QAH/f4GAgUFCgL7B/v0AvsTBgIKCAgCAf0MCvkNCAQJBAMDAgEF/v3+9/P48O/17uft5OAC9PQXCQoYFRYTFBQQFRQIDhEGEhIFCwn98P7/+voAAAEDAQL+/f3+//4A/v/+AvwAAwL9/PwEBf/7+/oCAwH//wL+/P4CAgH6+vsBBAIDAwMAAP8BAQEBAgIGBAP5+Pj+/v4CAQH/AP7+/Pv9/Pr6+fb/AP8CBAD8+voBAQICAvsDBAYBAgT9/vwDBAf///7//gAAAAD//v37+vkEBgUCAAH//gD//v8AAAD39/UICQoAAQMBAgIEBwgECQn6/Pv8/P4KBgcHBAQA/gD/AAD//gAA/gAAAAAEAQH/AP///v8AAgEBAgMAAP8BAQAA/gACAgQBAgD8/f3//v4EAwIBAgEBAQIBAQEBAAIBAAEBAQEAAAH/AP7/AP///v8BAAIAAP/+AAAAAAD+AP/8+/z48fP06On04+T67On+9fP+/vv9Af/8AgH8/v/9AAD//wH///8AAQACAQABAP8E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AgAAAP8BAgAAAQABAf7/AAMFBwUBCPv8+gAA/gMEBgIDAv8A/wABAQH/AP8AAQEC//7+/P77/QP/A/7+/wIDBQMDAgAB//8AAAD//v3+/f/+/wICAgECAQMDA//7/P38/P38/QIE/gEDAwQDAf0C/f/6/gEAAf8A/v7+/wEAAAICAwMCAQEDAQD//v///f///wAAAQABAAIBAgEAA/8B/wAA/wAAAP//AQEBAP//////AAAAAAD/AP8A//3///v7+vb09Pj09f339QH39wP6+gT8/Qb+/QL+//0A/wAAAAP/AAMBAAMBAwcCBAgDAwcEAQUEBAT/AP8A/v8AAQEAAAAAAAD/AAAAAP8AAQEB/wD///4AAAAAAAEBAQEDAgMEBAUGBgcICAgICAkJCQcHBgYGBQUEAwMCAQEAAAD///8AAP8BAP8A//7/////AAAA//8AAP8BAP/+//8AAP////7///8A//////8A//////////8AAf////4AAAEAAQH/AAABAP8A//8AAP8AAAABAAH/AP8BAQEBAP//AAAB//7/AAEBAQEAAQACAwADAwMDAgQCAAIAAAAAAAAAAP4A//8AAAIBAQH///8AAAAA/wAAAP8AAAAAAAEBAAEAAAAAAf///wEAAAAAAAEBAAD/AAEA/wAAAAEAAAAAAAABAQAAAQEAAQD//v8A/wAAAQAAAAABAAEA/wIAAQAB/wH///4AAQIBAAD///3+/v8BAQABAgIB/wAA////Af79AAABAgEA/v/9/vz+/f8BAP/+/wD/AP//AQAFCgkBAgMFCQoIEBD79/f79/b28vED+fkEAgL//v/8/v0DBQUICwwDCAkEBwgDBwcEBwcDBgb/AAEDAQH9/f3/AAEEBQQBAgEEBQkAAAD9/v8DAwQDAgL8+wQEDREOGwL9+vb/BAUFAQMCBAb/AAEBAQD+/vz9APwD/vv+//4BAQACAQIAAP8CAQL/AP8DBAX8/PoAAAAGBgcDAgP+APz9/Pv+//7//v8BAgP///8HBwcAAf///wAFBggDAwb9/fz/AQECAQD////+/gACAwIAAAD8/fwAAf79/vz7+/z/AP8EBAUICQsFBwQAAQEBAQD+//3//f4C//7//gD+/v4EAwP8AQH/Af/9/v38/fsD/QUEAwMA/wEBAAABAQACAQH/AQMAAAD+/v/+/v0BAQMC/gABAP8BAAIDBAEAAAD+/v8CAgL///8BAQAAAAD//wAAAP7///8AAAAAAAEBAQEBAQD//v7+/fz7+vr59/cA/vwFAgEAAv8CAQD9AAAF///+AAD/AAIC/wEEBAMCAgIEBAIGBAYEBAIDBAMEBgUE/gAAAAEBAQAB//8AAQABAAD//gAAAf//AAAAAAABAP//AgEAAQIBBAQEBgYFBwcHCAkJCAgIBgYIBgYGAwMDAgIBAAEB/wD/AQAAAP//////AP8AAAD/AAD///8AAAD/AAEA////AP///wAAAP4A/gAAAP/////+AP/+////AP8AAAD/AQEA//8BAAH/AAAAAAAAAP8AAAEAAP//AAAAAAEBAP4AAAH+/wEBAAEAAAEAAQICAQMCAQMDAQICAAEBAAAAAAD///8CAAD+AAEAAP7/AQAA/wAA/wD/AP8BAAD/AQD/AAAAAAABAAABAAD/AQEAAP8A/gAAAAAAAAEAAP8BAAABAQAA/wEBAAEAAP8AAAEAAAABAP//AQAAAAAB/wEAAP8DAAAAAAEAAAAAAAEAAQEBAgIA/f7+AAH//f3+AAD+/wEBAQEAAP8A/wAAAQABAQH/AQABAv/+/f/+Af//AQEDAwUF/QEAAAMCBAQDAw0MBBISAP7+AP////7/AP8ABggI/wEA/wAAAAMDAwIC/v7//f38AgID/P38/v7+BgcKAwQF/v7+AQEABAUHAgIDAgID/v39AgQIAgsDAQQD+/gG//r7AQECAwUF/v///v4A///9AgEBAf4B//z9/Pr7AgP+AQEBBQgG//7//v79/f38AAD/AQICAAH//fv8/Pz7/f38/wD+BAID/v3+AwMEAwID/gAA/wAAAwQEBAUF//n/AwQD/Pz7/wAA/f78AAAAAQEAAAD/+vr6AAEAAQICAwMDAAD/+fn4BAUHAQEBAAD+AwQFAf///wEAAAD/AgQD/gD+///+/v38/fv8/wf9/v79//7/AP7+AQACAQIA///9AP8AAQEAAQEC/wD//v7+AgIBAAD//Pz+/wD/AQAA/v7+AQECAgMDAP/////+AP8BAAAAAQACAAIAAf8A/////f7/+vr6+PX1+/X2/fj6A/z9BP8AAQEACQAB/gIF/wH/AP8AAgMCAgMCBAQEAgUFBAUEBAQEAwUFAgYEBP7+AAAB/wABAAEBAf///gAAAAEAAP8AAAEAAQAAAAAAAAABAQICAwQDBAUGBwcIBwkICAgHCAcGBgUEBAMDAgEBAgAA/gEAAf//AAD/AAD//wD//gAAAP///wEBAAAAAP/+/////v//AAEAAP8A/wD/AP7/AP/+/////v//AAEAAP8AAP4AAAEA/v8AAQAA/wAAAAEBAgAA//8AAAAB/wEAAP8B/wD/AQABAAABAQABAQECAQEBAwECAgABAgABAAH/AP8AAAAAAAEAAf///wAAAAAA/wD//wAA/wAAAAAA/wAAAv8BAQH/AQAB/gD/AP//AAH//gEAAAAAAf8AAgEA//8AAwAB/gD+////AP8A/wAA/wD/AAAA/wABAAAAAAAAAQD//wEBAgD+/wAAAf8AAv///gEBAwMCBAACAAAC////AP///QEAAgACAAH/Af7//wABAf///wADAwT/A/0A/f39+/4AAAIEBAH/AAEG/////wYABf/9APv7+v79/QAAAgMICAACAAD+/v/9/fz8+gABAQYHCP/+AP8CAwMBBgIEBAECAwUDBQYHCQQFBQD/AP3+/gQFAwELC//9/AABAQIEAfn19P77+/8BAAMCAvr7+fz8+wcBBwH/AQEAAf38/AQFBgECAvz9+////v78/QUEBPz9/v/+/P7//AD//v///gEB/wEA//v7+QAAAf77/gD//v4A/wQC//z9+QUFBgUGBv//AAIDAAAA//7+/f8AAP39/AAA/wMDAv7//wIBAQH/Afz7+wIEAP8CBAEEBAECAQD+//8DAAEAAgMCAQH/AAUFBf38/Pz8+/v7+gT5BP//AgMCAv8A//8CAAIAAQD+AQEEA/////79/P///gABAgAAAf/+AP//AAEBAQIDAwEBAf///////v//AAAAAQEBAAAAAQABAQD///////////79/f77/Pv5+P74+QP3+P/3+QD9/QQBAQIEBP8A/wECAgEDAwIEAgMEBAEDAwEEAwIHBwIFBgMFA/8FAwT/AP8A/wD//wABAf8BAAAA////Af8B///+AAEBAP8AAf8CAgIEBAQEBgUIBwYIBwkHBwgGBwYEBQYCAwMBAQMAAAD//wAAAP//AAAAAP8AAAABAAAA//8AAAD//////wD///7/////AP//AAD///8AAP////3///7//v8AAf/+/wEBAQAA///+AQMBAP8AAP8AAAAAAAEBAP8AAQEA/wD/AP7//wAAAP4AAAEBAAECAwMCAgQCAwQBAQMAAgIAAAEAAf4A/wAAAP/+/v//Af8BAAEA/wAAAAABAAD/AP8AAAEAAP8B/wD/Af8A/wAAAP8BAQD/AQAAAAD/AAAAAAH/AQIAAf4AAAEAAQD/Af4A//////8BAQEA/wH///8A/wAB/wABAQH/AP/+AQH//wEA//8BAAAAAP8BAQEBAwEC/wL//v4AAAL9/f4B/wAAAQEDAQL9AP7+/wAA/wD/AAABAwMEAwQEAP/+/P37+vn+/f3//v7//v38+/z+//4GAwMEBggAAgD8/Pv+/Pv+//4BAQICAgL9/Pz+/v3+/v8DAwUCAwUBAQEBAQL//wD//v7//wAA//4AAAMCAwP/AQEBBgcBBAIF/wD69/YBBAT7/PsAAf4CAP///vz+/Pv9+/sECP/+/f0BAP8DAwUBAAL+Av7/AP4BAAD7+/sAAAABAgH//v4BAAL//wD9/f0BAAECAwP/AAAGBAP///7//v78/PsCAgMDAwQDAwP/Af/9/f39/v7/AP///v0BAQMBAP/+/v79/v0DAgUCAgIBAQAA/v//AP8AAwD///3+//7+/f8AAgECAgP/AAD///78/Pv9/v4C/fwBAAQCAwICAP//AQABAQH/Af4C/wADAwT+/v7//v0A//4BAQICAwL+/v/9/f7///4AAAACAwIBAQICAgIA//8BAAH////+AP///////v/+/f36+Pj99fYA9/cC9vcA+Pn+/vwDBQIGAAYCAgIBBQMCBAUBBAQBAwMBBAT/BgUBBwcABgUBAgIAAwAE/gAA/wD/AQAAAP8A////AAABAP8AAQABAgAAAAEAAwICAQMEAwQEBgYGBgcHCAgHBgYGBQQFAwMCAQECAQH/AAABAAAA////////AP//AP///wD/AQD/AP/+/wAA//8A/wAA/wAA//7//wH/AP///////v79////AAD/AP8BAAD///8AAAACAQD/AQAAAQABAAEA///+AAEAAAD//wD/Af8AAAD///8BAQEBAAECAQACAgIEAQEDAgICAQAA////AP///wD+/////wD/AP4A/wAAAAACAQEAAAAAAQABAAAAAAAB/wAAAP8AAAAAAAEA//4AAQAA/gAAAQAC///+AQAB/wABAAACAAD+AAAAAAAAAP///gD/AAABAf////8A/wD+AAAC/wAAAAABAAABAAAAAAAA/wAAAQAAAf8B//8A//8AAQEAAgIB///+AAIB//7/AQIAAwEC/wD//v7/AAAAAAAAAAABAQQDBAIHAP0FAAD//Pr6AQMEAQAA/v3++/v8AgMDAf8AAwMEBwUD/v7//f7//Pz8////AgICBQUFBQUFAQEBAAEA/v79//8BAAD/BAUE/v4AAQMCAwQDAQIC/vz7//4BBQEC/v78AwAB/Pv7AAD6///+//8A///+//7+AP8BAAAB////AP//AgIC//78/wD/AwMEAAD//v79AgMC/Pv6AwMCAP8C/v7+/v7+BgYG/P3+AQIBAAEABQQF+vv6AQEDAwQE/f79AgIBAgMAAgEB/f36AP///f7+AwIEAgEBAQAA/fz8AwMEAAECAf/+/f36/wACAQIF/wL//v3+AQECAAABAgMD/v7+/Pv7BQUHAQEBAQAC/wD9/wD+AQMBAf0BAgICAQEA/wD/AP8C//8B/wAA//7+AQEBAQECAQIDAAAA/wD/AQAB////AQAA///+/v7+/v7/AAD//v/+/fz9+fT0+vP0//j4Bf/+AAQB/QYDAwIHBAcAAQICAgYFAAQFAAMDAQQF/wQF/wYF/gcGAAYEAAAAA/79BP7+/wABAQD/AP8A/wAAAAEB/gD/AQAB////AAEBAQEBAwICAgQEBQUFBwcGBwYFBQUFBQMEAwIBAgEBAP///wAA//////8A/wD/AAD//wEAAAAAAP///////wAAAP//AP8A//7///8AAAH/AP7//wD//QAA/wD///8AAAH//wABAAAAAAAAAP8BAQAAAAAAAAD/AAEAAP8AAAD///////8AAAAA/wABAAEBAgIBAQECAwABAwECAwABAgAAAQAA//0A/QH///7//wEA/v//AQEAAQEB/wD/AgAA/wABAAAAAAAA//8AAAEAAQAAAP//AQEBAP//AQAAAAAA/gABAQD/AAAAAAABAAAB/wAAAP4A/wAAAQEAAP8AAAABAQAA/wH/Af8A/wAAAQEB/wAAAP8AAgAA/wIAAv4CAQMAAv7+/f3/Af7+/gECAAIBA/4AAP8BAP//AQEAAQEBAAIB////AAEBAf8AAQEBAAEBAf0B/P/+/wMFBv/9/f38/P8BAgAC/gECBAICAP3+/fv8/wEBA/39+wAAAgQEAgMEBgECBAIBA/8AAAEAAf/+/v39/gUFBgMEBQL///7//v///wEDAwEA/wEEBgQBAPz6+AMEAvz6/P3+9v39+wMF/P////38/f8A/gIBBP/+AP///gIDAgECAgAAAwABAvv7+QECAgUFB/8AAfz6+P4A/wEDAQQDA/7+/gICAf8AAAMCA/8A/gEBAf///fz8/vv9/AUFB/3+/wECAwP/BPz9+wEBAQIDA/7/AAEAAf//AP7+/wIA/wEDAv////7//AEAAQECAwQDAwD+/wQDBfz8/AIFA/7+/v///gEBAAAB/wH/AQEBAv///QEBAP8A/v///wEAAf8BAQAA///9//8AAAECAQMCAAABAAD/AAEAAf///wD//wAAAf///v7+/wAAAP/+//7+/v3+/P77+wD6+gL8/QMAAAIFA/8JCQH7/AIAAQIEA/8FBQEFBgADBf8FBQAEBP8GBAEFBAADAgL+/AH5/gT9/wEB//8BAAD/AAABAP8B/gABAf8AAAD/AQABAAEBAQIEBAQFBQYHCAYHBwcFBgYFBAUDAgMBAgEAAAAA/////wAAAP4AAP///wAAAP8A/wAA/wAAAP8AAAD//////wD/AP////7//////wD//wAAAAD/////AP8A/wD+AP8B/wIAAP8AAf8B/v//Af8AAAABAQH//wAAAP8AAP8AAP//AAAAAP4AAQIAAAAAAQIAAQIBAgEAAgL/AQL/AP8A//8A/gD+//////7/AP8AAQABAAH/AP8A//4AAgEB////AAEAAAAAAQEAAP8AAAEBAAD/AAAAAP8AAP7/AP8AAP8AAP8BAP3/AQH/AAAAAQAB/wH/Af///wAB/wAAAP8BAAD/AAEAAP8BAQH//wAAAQAB/wD//wH//wEAAAAAAQEEBAYBAQH+//z/AP7/AAEB/gACAgECAgH9/Pz/AAEBAQIAAP/+//4AAAABAAH/AQD/AAEAAf8CBAIEAgEDAwT+/vz//gAAAP7//v8CAgMABAEBAAAGBwcAAQABAAD7+/0BAgL+//4AAQIDBQQCAwUAAAEAAgICAgT8/fwCAgP///7//v8DAwT+BAYBAQEBAP/9+/0CBQYAAgL8+fkE/vz//vz///z//v3+/fz+AQACAQD+/f/9/vz8+/oBAQECAAH9+/wAAf8DAQL7AAAAAAEAAAD/AAH+/v0BAQL/AP//Av38+/8BAgH+//4BAAICAAECAgL+/v3+/v8AAAEBAAL+//4AAAL/AP//AAACAgMAAP//AAD/AP//AP8BAQAAAP/+/f0CAgECAgIGBgX9/f0A/wD//v39/Pz+BQYD/wABAwIC/f8AAgP9/PwAAQAA/wIAAf0CAwL//gABAf/+//8BAAEBAgEAAAH/AP8AAAAAAAH////+//3//////wAAAAD////8/Pz69vb++foD/gABAgICBgYBCQkA//4ABAQCAgL/AwMCBgYBBgcAAwf/AwL/BAMBAgH/AwL//v4C/f8A+/0EAP7+/wAAAAAAAAAAAAEAAAAAAAEBAAD/AgABAQMCBAMDBQUGBgUFBgUHBgYGBQQFAgICAQEBAAAB//8A/wD/AQD///8AAAAAAP///wD/////AAAAAf///wD/AP////8A///+/////wD/AP///wAAAP8AAP//AAAAAAD/AAABAAD/AAAAAAEB/wD/AAABAP//AAD/AAAAAP8AAQAA/wABAAD+AAEBAQEBAQICAQEBAgEBAQIBAAABAf8AAP////////7+////AAD//wABAAAB/wEB//8AAQEAAP///wABAQAAAAAAAAD/AAAB////AAEAAAAA/wAAAAAA/wD/AAD//wD//wEBAP//AQAA/wEB/wH/AAEBAP/+//8A/wD/AQAAAAABAP///v/+AQEA//8B/wAAAAEC/wD////+//8A/wECAAIEAf8BAf/+/wD/AQQC////AAAA//8D/v79AQECAgEBAf79AQIBAQIB////AP/9/fz/+/v8/v7+AwICAP79+/r6AQABBAYGAwQEAQIBAP8A/v7/AQECAAABBgcEAQIBAgICAwYHBAQF/wEDAQIDAwIC/gD/AwICAAEB/v0AAQIAAf7/BAUF/wL/AgAFAQEDAAD++vUGAPz7/Pz/BQAB//4A/fz9AQIDBAQF/gD///7/AgEBAgECBAUF/v77AQIB/v3//v//AgIC//78/v7/AQH9AAD//wD/AAECAP8BAQMC/v7+CQoK+vr7/f79BgECAgMA/wD/AgECAAICAwEBAAEBAv7//gD+AAEB/v4BAgH//v4AAAD9AgQDAQAB/wIEAQAB/gD+AgICBAID/P7+/f39/v38/v3+AgIDAgABAAICAAD/AwME/wD+AP8B//8BAQEA/wH/AQAB/wAAAAAA////AQAA/gAB///+////AAABAQEDAAD+AAD+/gD//v7+/fv5/Pj4//n6A/7/BAMEAAkIAPwL/gEA/vz8/gICAgQFAQYFAAQGAAMEAQACAAAAAf/+APz+APz9APn8APj7BP7//wEB/wAAAQAAAQAAAAEBAP///gEAAv8CAgIBAQIEAwYEBQcHBgYGBQQEBAQEAwIDAgEBAAD//v8AAAEBAP////8AAAAA//8A/wD/AAAA/gD///8AAAD/////AP///wD/AAAA/wD//////wAAAP///wAAAP//AAAAAAAA/wAAAf8AAAD+/gECAgD//wAA/////wEBAQAAAP8AAAAAAP8AAgEBAQABAgABAgECAgEBAQH/AQL/AQD//////v///v/+/////wAAAAABAQEBAf8A/wEAAAD/AAABAP8A//8AAAEAAQH/AQAAAAEBAQAAAP8A/gABAP//AAAAAAAAAAIBAP7/Af8A/wABAQH/AAH/AAAAAP8AAAAA/wEBAAAAAAD/AP8AAAEAAf8A/wH/AP8AAAEAAQIBAv3//wAA/QAA/wEBAAABAf7+AQD/AP///wAA////AAICAQICA////wEBAQIDBf7//wIDAAD//wABBQIBAgUEBf////////z8+wkFBgD/AAICAgACAf///wABAAkJCQICA/38/P/+/QAAAQMFBQICA/3//v7+/QYCCP4A/wD9/AUDBQAA//8AAAQEA/38/QH/Av8AAwMABQAE/////QYMDwABBPz6/AAAAQECAv7+/vr7+wIDBP///wEA/wACAwIFAAABAf8AAQECAwH//wD9/wAAAAACAgD+/f3+/AMCBAMDA/7/AAAAAAEAAAICA/z7/f79/gEAAPr5+v8BAP7//gACAgQFBv7/AAIBAf8C/vz9/gIBAwECAQAAAQICAv8AAgD/AAEBAgQDBPz9/gD/AQEBAgEDAgL9/gD/AP3+/f38+wIDAgEBAgIDAwD/AAAC/v///////wD//wAAAP7+/v8A/wH/Af8A////AP7//wICAQAAAQIB//7+AAAA///+//8A/v/+//39+/z7+wD7/QD+/gH+/wABAAEDA/4EBAEJCQL//wEDBAEFAwEFBAD/AwD/AAD9/wH9/gH8/wD9/QD8/AD5+wD4/QT///8AAAAAAP8AAAABAAD/AAEAAAAAAv8CAgECAwQFBAUGBgUHBgcGBQYEBAUCAwMCAgEAAAAAAAD///8AAP///v8BAQD/AAAA//8AAP8A/wAAAP///////wAA/wD/////////////AP8A////AAAA////AAAAAAAA/wD/AAAAAAAAAAD/Af8A//8A/wEAAQAAAAAA/wAAAAABAQAAAAEBAQIBAAEBAAEBAQIBAAMAAQL/AAL//////v7/AP8A/v3+/v8B/wAAAQH/Af4A//4BAAIAAQD/AAEAAAAAAAAA/wEAAQAAAQEAAAEAAAAAAP8AAAABAAD/Af7///8AAAEBAAEC/wAAAAH/AAD/AP8AAQH//v4A////AQAAAAABAAH/AP8AAAD/Af4A/wEAAAAAAAD/AP///wABAf8AAgD//wAAAAAA/wEBAQEAAAAA//7/AP8AAP8DAgIAAgL/////AAEBAAADAQEBAQD/AQAC/v8DBP///f7//v8AAQEG/gcBAgL9/PwAAQADAgL+AP/+//77/PsA/f0CAAAAAQEFBQUBAwP///7+/v8EAwUCAgEAAAACAgT/AP8A//8DAwP/AAEBAQEBAwH//wIBAQIBAf/9AwIEBgf6+voEAQP/AAH/AP//AP///v39/fsCAgMAAQACAgMA/v8CAgH+/gICAgIA/gL/AAD//v8CAAIBAwH/AAABAQH+AAD/AAH+/////f8AAv/8+fkBAQEDAwQGCAf9/v3+//4CAgL//wACAgH////+AAEGBwcAAAD/Af8BAQMCAgP/AAAAAP/+/v3//fv+/gECAQH9AAABAQABAQEBAAD+/fz+//z9/AMCAgMBAAQAAgAAAAP///4CAAABAAD//v///wAA//8AAQAB/wABAQABAQEAAQABAAD/AAIAAP4A///////8/f7+/vv7+fn59Pb49PX9+PoB//8BAQEAAwMDCQj+BgUCAQEBBAMAAwL/AAEB/f8A+PsB+/wB+/0B/f0B/P3/+/wA+fv+9/gEAAAA/wAA/wAAAQD//gAAAgAAAgEAAQICAgICBAQDBQUEBQUFBgYGBQYGBAQDAgICAQABAAAA////AAD//v//AQH///8A//8AAAAAAQAAAP8A/v8AAAAA//7/AAAA/v//AP/+////AAAA/wD/AP///wAAAAABAP///wAAAAD//wAAAQABAAABAP8AAP8A/wAAAQABAAABAAH/////AgIC/wEAAAEAAQECAQECAQEBAAECAAAA////AP///v/+//7+//4AAAH/AP8BAf//AQIDAQP+AQABAAD///8AAAACAAEAAQAAAP//AQH/AAAB/wD/AP8B///+AP4BAQAAAAEAAP8A/wEA/wABAQH/AQEBAAAAAAAA/gD/AAAAAQAB////////AP//AAAB/wAAAAAA////AAAAAAAA//8AAAABAgAA/gAB///+AP8A////AAEAAgECAAABAQICAAAA/v/+AgEBAAECAgEAAAABAAEBAAL//wEA//7/AQIC//////8AAf//BggHAAAB/v/9/v38/P39A/8BAgIDAAEAAgIDAP///f7+AwQEBgIEAQEC/wAAAgEB///+AAACAQEAAQMC//7+/wD/AAAAAQEBAwUF/fn5AgACAQICBAYHAQT+AAIC/wAA/fz7/wEBAQcIBAUE/v7+////AgIDAf///v3+AgEE/f77AAIDAwQF/f39AAD/AgEBAQICAQECAQECAwMD+vv7BAMGAwL/+/z9AAEB+/r7+/z7AgUEAgIAAQMBAgED+/z8AQABAP7/AAIBAgIE/wAA/v/9AwIC/////wD///7+AP8C/gAAAQIC//8AAQEB/wH/AAD//vv9/wP+//79//8CAQEC/wD/AgICAP7/AAEA/wEAAAICAf8AAAD/////Af/+AAAA/v39/////v7+AAAA////AP7+///8/v77/fv4/vr3/vv6AAABAgMD/wQE/gYEAgMCAf7+///////+////A///A/v+APv9Afr8Avr8APv8Afv7/vn6/ff4Aff5BP4AAAH/AAABAAAAAAAAAAAA/wAAAgIBAQMCAgUEBAYFBQcHBgUFBQYEBQMDAwEBAAAA/wAAAf8A/gD//wAAAP4AAAEA////AAAA/gD/AAAAAAAAAP//AP8BAQD+/wAA//////8AAAD/////AAABAP///wAA/wD//wABAAAAAAAAAP8A/wH/AP8AAAEBAAAAAAD/AQAAAP8BAQEAAP8AAAAAAQAAAQEBAQEBAgACAgD/AQD/AP8A/wD//v///v7+/v///gD/AQEBAAEBAgD//QD+AgABAf8BAAAAAQAA/wEAAf8BAQIBAQD/AP8B////AAD//gH/AAAAAf8A/wD/AAAAAQAA/wEAAP8AAAEBAQEBAQACAQH/Af/+//8AAAAA/wAAAP8AAAAA/wD/AP///wAAAAAAAQAA/gAAAAEAAP4BAQD//wEBAgEA//4AAQAB/wACAgEBAAABAQH/AAEBAQAAAQICAgIBAQAAAAAAAAACAQAA//8EAQAAAAD/AAABAAD/AP8A/wD/AAL/AAABAQQBAwQFAAMBA/3+/v///////gMAAQAA//v8+gUFBgEAAP7/AAQDBAAAAP39/wIB/v///gEAAAEBAv8CAAD//AMEBfz9/AQGBP/+Bfr6+/3+/gT//wMEBQABAP8A/vv6+gIDAvz7/gAA/gIAAQQCA/38+wICAvz7+wMDAwIDA/3+/wEAAgABAf7+/QEBA/8AAgAAAfv6/AEBAAEBAP7+/gIEAQQFBP7//wAAAQEBAQEBAQQCAgACAv39/gD//wL+/f8A/wABAv4A/wICAgICAv3+//8A/f3+//7+/gADAgL/Af7+/gD/Af4A/v39+wICAgECAQH/AwIBAgACAQEDAgD/AAMC/gMCAv3+/f8AAAH/AgD/Af7+/gABAP/9/gEBAP8BAAEAAQEAAAIA//37/P77+f/9/AMCAP4EAf7+AAH9AwH+Bv8B/P78/AD9/QP+AAP9/wH6+wH6/AL4+wL5+gD4+QD5+//4+QH2+AP4+QL5/gT/AAD/AAAAAP8CAAEAAAAA/wECAgECAQEDAwIFBAMGBgYGBgYFBQUCAwICAgEBAQL/AP8A/wAAAAD///8B/wD/AQD///8BAP////8BAAH/AP///wD///8AAAD/AP//////AP////4A/wD/AQAB//8A////AAAB//8AAP//AAABAAAAAAEAAf//AAAA//8BAAAAAAEAAQEBAAEAAAEAAAEBAAECAQIBAQIBAQEB/wABAv8AAP8A//3+///+/v7//v7///4AAAEAAgL//v//AgAA///+//8AAQAAAQEBAgIAAQEBAAAAAAAAAAAAAAAAAP8AAAAAAAEBAP8AAAH/AP8AAAAAAgEA/v8AAAEAAP8BAAH/AAEBAQH/Af8AAAAA/gEAAP8AAAD//wD/AAAAAAAAAQEB/wAAAAEBAAH///8AAAAAAQABAAH/AQAB/gD/AAD//wD/AAABAQAAAAABAQIBAQECAQEAAQEBAAABAgH//wD/Af8AAP8AAQH///////8A/gD/Af8BAAEAAAEDAgIBAAAAAAD//v7///4BAQH+/f4BAQACAgUBAgEBAQD///8CAgD8/Pv8/P0GBgX6+vkFBQYAAQD+/v4DAgL//gP9AP4BAQEAAAAAAwIDBQT//Pz+/v/+//4C/wH8+/wDBAQAAQD+//0GAwUBAQH/Af4BAwQCAP4DAP/+/v3///4BAQADAgP//wEGBwf6+/r4+PgGBgb+/f4AAgH7+/oCAwL9+fwFBwf//wD/AAD//f7+Af8AAAECAAACAgAAAAACAgIAAP8AAQICAgIAAAEBAQAEAwP8/f4BAP8BAQIDAv/+/f//AAD///4B///////+//39/QEDAQEAAgIAAQAAAQECAgH//gABAQAAAgD//v8A///+/gECAgIBAQUAAgX/AP79/f39/vv+//79/v79/Pz/+/wC/v8DAwIBBQL9/gL++wAAAAACAAED/wEB/P0C+fsD+vwB+vwA+PkC9/kB9vkB+Pn/9/oB9/n/+Pr++/3+/f4E/v/+AAAAAgAB/wH/Af8A/wEAAgEAAwICBAQEBgYGBwUFBAUFBQUFAwMCAgECAAD/AP8A/wD/AAD//wAA/wD/AP8AAAD///8AAP8A/gD/AP/////+AAAA/wD///////////////8AAAD///7/AAD///8AAQEAAAD/AP8AAAAA/wAAAQD//wABAAD/AAEAAAABAQD//wAAAP8AAQEBAAAAAAEBAAEBAAH/AQEBAAEA///+AP8A/wD+//////79/v/+AP8AAAAAAP/+AAEBAP8B/v8AAQIBAAEBAQEBAP8CAAABAAEBAAAA/wEA/wD/AAAAAAAA//8AAAABAQAAAAAA/wEBAf/+//8CAQH/AP/+AQEAAQEA/wEBAAAB//8AAQH/AAAAAP8AAAAAAP//AAABAQD//wD//v///wD//gD/AP///wAAAP8A//7//wH////+////AAEBAf8BAQEA//8AAQECAAICAf8A/wAAAP8B//7+/f78/gD/AAEBAAEBAAABAQABAQAAAAEBAP//AgEC///+AQABAwIB/v7//vz9AAEABgcI+fn5AQIC/v79AgME/v79AAACBgYGAAAAAP8AAQEA/f3/AQAAAAAA/wAA/wAABAcH/v/9Af79AwEBAAEBAQMB/////wMCAAAAAQH/AP//AQD/+/35AwMG///+AAEBAAIEAf7/AQEBAP/8AQD+AgIC//8A/v78/v78AP///f37AQED/f39AwQEAAD+AgQC+vv6BgYH+/z7AQEBBAME/wD+/v8AAwIC/v7+/v39AAEBAgL//Pz9AwMDAAECAQEAAgEB/gEBAQH/AAD////9//79AAIFAAEA///+//7+/gD9AgID/wH+/wAAAwEBAAEBAQIB//8AAQACAQL///7/AgIB/gD/Af7+/wD///0BAAABAQICAf4BAAAA/v7///7////+/////f/+AAABAwQEAQP+Avv9Afn7Aff5Avr6Avj6//f6Afb5AvX4Avb5/fb4//j6//z8/f3+/v///QH/BAD/AAAAAP7//wIBAAADAQEBAAECAgMDBAUFBQUFBQYGBgYFBQQEAwMDAgAAAAD+AP8CAAD//wAA/wAA/v//AAEA/////wAAAAH/AQABAAAA//8A/wAAAAD//////wD///8A/wABAP/+/wD/AP8A/gAAAP/+AAAAAQABAAAA/wAAAP8AAQD//wEB/wD/AQAB//8AAQD/AAABAQEAAAEBAAEAAAAAAAAAAQAAAAAA//7+AAEB/QAA//7+//7+/v///wD//wABAQD+A/8BAP8BAAEAAf//AgEAAQABAgEAAQAAAAAB/wAAAQAA/wAA/wAA/wD/AAEA//8AAAAAAAAAAAEAAf8AAgEA//8A/gABAQABAAECAQH/AAABAP/+/v//AAEAAAAA/wAAAAAAAP///wAA//7+/v///v7//v8A/gD//gAAAP/+//4A/wD/AAABAAEAAf8BAf8BAQD///8A//7+/f/+/gD//wABAQEBAf///wAA/wEA/wAAAAEAAP//AAAA/wD/AP3+/gIBAf4C/v/+/gABAvv8+//+/wMDAwQEA/39/AICAQEBAgQEBPz7/gMEBQAAAf4A/wD/AAQEAwIBAQEEAv79/gEDAwIAAQAEAf78+v4AAAABAQICAQEEAf7+/gAAAP39/QIBAv79A/z9+AcFBQABAwEB/wAAAv///gABAQIDA/8AAAIA/v79//39/AUEBPr7+wAA/gQEAv8A//n69wUGB//9/P7//gIBAwQDBAAA/gUDBPz9/f///wECAAD/AP////7+/f//AAIDA/7/AAEBAQABAgICAv//AP8B/wEAAAMCAv8BAv8C/vr5/AMCAgICAgD//wD//wAA//8A//7//gH/AP7+AQEAAQABAP///gH/Af8AAQECAgD//gH+/f4A/////wAAAAUEA/4BAP///gH8Av/+//79/v7+//8A/wIAAv/+AAD6/P/3+f/3+AT39wL1+AL3+AD3+P/1+P/0+P309/34+v/6+/79/f0AAfwB/v0CAP4BAAT+//8B/wAAAQH/Af8A/wEBAgICAgIEBQQEBAQFBQUFBgUFBQQCAwMBAgL/AP8AAf8A/wEBAP7///8AAAAAAAD///4AAAAA////AAAA/wAA/wAAAP///wAA//4AAAD/AAAA/wEAAP8AAAD/Af8B/wH/AP8AAQAA//8A/wABAQD///8AAP8BAQD//wEAAf8AAAEAAQAAAAACAgAAAAAAAAABAf8BAP8AAAD//wD+/wAB////////AP/+/v7+/v7/AAABAP8BAAEAAP//////AP///wABAQEBAAMB/wEAAQAAAP8AAAH/AP8A/wEAAAAA/wD/AAABAAAAAP///wH/AAAB/wAA/wAAAQECAAH+/wEBAf8A/gEBAAIBAQABAP////4AAAD/AAAAAAABAAD/AP///v8AAAEBAQAB/wD//wD9/f4AAQABAAEBAAAAAQEAAQIAAQEBAAEAAf//AAD///8BAAD9/v7+//4BAAEA/wABAQABAP4AAAACAQAAAQICAQMAAAD///8CAAECAgEAAAEAAAH///4BAgIEBAIAAAH//f8CAwEDBAX8+/37+voCAwQA//8AAAAGBwf6+vkCAgP+///8+/37/PsIBgcCAgEBAAIAAgIFBQf+/fz+/f7/AQABAgH+//7////+/gP+//4BAAH5+vsGBgb///8BAgEAAQIA/wAA//4BAQECAwP9/Pz+/f7+/fwCAgL+/fz/AAEFBQUFBQUA////AQEAAAEA/gD9/vz7+vsHCAcBAAAAAAH+/wIAAP4BAQMCAwP+/v///wAB/wABAgEBAQEAAP8AAAEAAAD/Af8A/wABAwEA/QACAQH+/v4AAAABAgP///////8A//8BAQEBAAEA///+//0AAAICAAEAAgEB//8AAAAAAAD//wEBAQMCBAECAQICAgH8/Pz8/v4A/wIBAAEAAAABAQH//f/9+fkA+PoB+foD/PwD+PkA9fb/8vX+9PcA9vj/9fj+9vj++foA/P39/v7+AQD9AAH9AgD+Af/+AgAE//7//wEAAgD///8A////AQIBAgIDBAQEBgUGBQUFBAQFBAMDAgEBAP//AQEBAf//AAAAAAEAAAEAAP//AP///wD/AAD/AAD/AAABAAD/AP8AAQAA/wD///8A/wD/AP8AAAAA//////8AAAD//wD/AAD/AP8AAAAAAP8B//8A/wEAAf8A/wD/AQEB//8AAAAB/wAAAQEB/wAAAAEBAQAAAAAAAAABAQD/AAD+//4BAAAA/gD/AP///v7+/v/+AP8A/wAAAQH/AgL///8AAP8B/wEAAf8BAAIAAAEAAAAAAQABAP8AAAABAAD//wAAAQABAQD/AAAAAAAAAAH+AP8A/wAAAAEBAAD+AP8AAAABAQAB/wEA/wEAAQAAAAEAAAEBAP//AP8AAAD/////AAAAAQEAAAAA/v4A/wD/Af//AgIB/v7/AAEAAAEB//7+/wEAAAH/AAEB//7////+AAEA//////8BAP7//f/+AgID////AgACAQD9/f7+//79AQP+BAIDAwQDAP8BAAEA/P7+AAEAAgIDAQEA/vv8/wABBAMCAAD//vz8AP/+AQEC//79/gEAAwQG+/r6/fz9AwYDAAAAAwQB/v8B/P38CAQG/v8AAQIDAQIDAQID/vz8AAD+/v79/v7+BAQH/f7+AP38BAIDAgMB/wAA//8A//38AAIC/wD/AgIB/v7/AP7/AQEB/f7/AQD+AQEBAgED+fr5AAEAAwQGAAECAf/+//4B+fj4AgMBBAMG/Pr7AwME/f/9/wL+BQQFAQAB/v8AAAEA/v3+AAAAAgMBAP/+/wACAQEBAP//AgAB/P7+AAAAAAAAAQIBAgIDAAAAAAAA//8A//8A/v7/Af//AwEA/v//AP3/AwMBAAICAQAC/wD+AAD/AAABAwMC/wAAAQABAgABAQEB/wD//f3+//3//fn9/Pn7/Pn6/vz8BAABAAD/Af38Afb2APTy//HzAPH1/vX4//f5APf7/fv8/f39/wH+/gL//gEA/gAA/gEA/wEA////BP7//wH/AP4CAAQAAQIBAAIBAgQEBAYFBQYFBAYEBQUDBAICAwIBAQEAAAAA//8AAP8A/wH//wAAAP///////gD//gAA/gAAAgAA/wH///8AAAAAAAD/AP8A/wD///8A/wAAAAAA/wAA/wAAAAD///8AAAD//wEAAf8A/wAAAAD/AAAAAAD//wAA/gABAf///gEBAQAB/wAAAv8A//8AAf8AAAAA/v//A/7+/gABAAAAAP/+////AP////8A/wD/AAABAQD///7+/gEB/v7/AQP/AgAC/gD/AQABAgEB/wAAAAEAAP8AAAAA/wEAAQAAAAAAAAABAAH/Af8AAAAA/wAA/wEAAP8AAAABAAEBAP//AAEBAAEAAf8BAAEBAQAA//////8A/wAAAP8AAP///v////8A/v8A/gAA/v4A/v////7//gD+AAAA/wABAQAAAP7//wICAwEAAQABAgD///8AAAMCAv4BAgH+/f7+/gH/AP4B/wICAQICBP4B/wAAAf/////+AAAA//7/AAABAAAAAf7+/v/+/gEAAAEBAP3+/gD///////////8B/wIDAwICAv7+/v//AQAAAAAA//39/gECAgICAgUEBQEAAf8AAAAAAAAAAAABAQICAv7+/f7+/f//Af///wICAQICAwACAgAA/wEAAQABAAH/Af39/gMFA/38/QD////+/gMDBQIBAwICAPn6+AABAf7+/gEAAf/+/v4A/gEBAQEAAAcHCP3+/QAAAP79/gUFAv3+/QABA/39/f//AAIDA//+//////7+/fz7AAMFAQEBAAIBAAD/AP38/P/+/v7/AAD//wABAgIBAQH/AgD/AAABAAD//wD//wD///7//wEBAQEBAgD/AAD/AP8A/v7//wIBAQAA//7//wAAAAAAAP3//vz8/fr5+Pz7+//7+//7/AMAAgECBP0A+/78/AD6+f739gL29QLz9f/09AD19v72+gD5/P/8/P3//v0C//8AAf4AAf8A/wAAAAAA/wEAAQAAAQQA/wAAAQAB/wAAAgACAQIEAwMGBQUFBQUFBgYFBgUEBQMDAgMBAAAAAAD///8BAAABAAD//wAAAP8AAP////8AAP4A/wAAAP8AAAAAAP///wD/AAAA//8A//7/AAD///8A////AAD//wAAAP8A/wD/AAABAAD/AP8AAAABAAH/AP//AAEAAQEAAP8AAAAAAQAAAAEBAAD///8CAQH///8A//8AAAH/AP8A/wAAAQD///8AAP///wD/////AP////8B/wEAAAECAwMA//4A/wL/AP////8AAgAAAP4AAAIAAAAAAAAA//4AAQAAAP8AAAEAAAAA/wD/AP8A//4AAP8BAAH/AP8BAP//AP7/AP8AAAAAAAAAAf8A/wAAAP////////8AAAABAQAAAP7///8AAP7//v7+//3/AP8AAP//AP4A//////////8BAgAAAQEBAAEAAP8CAQIAAQH9/f7/AP////////8AAQEDAwQBAQD///4BAAH+//8DAgICAQIAAQD/AP8AAAD+/v7/AAACAQH///7///8BAgEAAAEA///+/v/9/v0CAwICAgMBAgIBAgD+/f3//wIBAQABAQAAAQEAAP8CAgP//wD9/v3+/v0AAf//AP8EAwP+/QAB/gACAwIA/wH+/v7///0AAQECAQEDAwIBAQIB/f////0EBQX+/f8BAQIBAgIA/QEBAQABAgL///0EAwQAAQAKCgr5+vsHCQYEAgH9/P7+//4CAgIAAAL9/PwAAQD5+PcCAwL9/v0FBgf9/v7+//8AAAEAAAEAAAAAAAEA/wD/AP/+//4BAP8BAf/+/vwAAAH+/v7//v7/BAH/Af8BAAH+/f0BAP///gL//QH/AP8CAgIBAAD/AAL+/v4BAQABAAH//////v8AAAABAAAAAAD//v8BAAAEAwL9AQH5/f79+/r7+ff++PgB+voB/PoA+/kA+vkB+fn++fn/+fv/+/3//f8AAP/9AgD+AQH+AAD/AAAAAAAAAAAA//8BAAAAAP8AAQEEAAAAAAAAAQAAAgECAwIDBQQFBgUFBwYGBgUEBQUFBQQEAgIBAAABAAAAAAAA//8A/wEAAP/+AAEAAP//AAD/AP8B/wD/AP//AQAA/v//AAD//wAB/wAAAAABAP///wABAP8A/wD+/wD/AP//AAD/AP8A/wEAAP//AAEB/wD/AAAAAQEAAAAA/wAAAP8AAAD/AAD/////AQEA//8BAQEB//8AAAAAAAH//wAAAf8A//8AAAD//v8AAP///wD/////AAD/AAEC/v//AP//AP/+Af/+AAACAP/+AAECAQD/AAD/AAAA/wEAAAABAf8AAAD9////AAAAAP//AAD/Af///wD/AP//AAAA/wD+AAD/AAEA/wD/AQAAAAL/Af8BAQIAAf8B/gD/AAD//wABAAH9///+AAD+AAH/AP4A//8AAP8BAAH//v7+/v79//3/AQEBAQQEAf7//wH/AgMB/wD+AQAAAAAAAgAA///9/v8ABAICAgECAQECAAABAP///v/9//3+/f3+AAD/AAEBAwMDAAAAAQABAQIB///+///8AP8BAAEAAgIDAQECAAICAQIB/f39AAEC/v78AQAB/f39BQUF/f79AP4AAgIC/v38AQIC//7+AAECAAIB/vz9/wEA/v/+/fz+AgED/wD9AAH/BQUF/wAA/wD/AAAB//7/AP3+/wD9/wD/AgEBAAQD/fz9Af8A//7/AP8ABQUGAgICAQID/Pz7/QABAQEBAAEA/v39/wD/AAH///7/AAH+/gACAAEC///9AQAA/wACAAEA//8AAQIBAAEB//////////39/v4A///+Av8BAAH/AAD/AAIBAAIC/v//BAIBAAD///////7+//7+AQH+//8DAAMBAAEC/v7+AQABAAH/AP8AAAAAAAEAAP8A/wH/AgICAAEA//4D/wAA/v37//z7//79AP/+/fv6Aff3/vf3//j4APj5/vr7/v7+/wH/AQP/AAAC/wEA////////AQH/AP///wAAAP4A/wABAAD//wEBBP///wEBAAECAgIBAQMDAwQEAgUEBAUFBAUFBQQEAgECAgEBAAAA/wD/AP8AAAAAAAD/AP8A/wD/AP///wD/AAAAAAAA////AP8AAAAA/////gAAAv8B/wAAAf8AAQH///4B/wD/AAD//////wAA/wAAAQH+//8BAQAAAAAAAAH/AP8A/wEBAAAAAQAAAAEAAQAA/////wAA/wAB/wAAAP8AAQEAAAD+/wAB//8AAP8AAAD/AP///wD///8A/wD///8AAAAB///+/v4AAQEC/wD//wD///7//wL/AP8AAAEBAP//AQEB/wD///8A/////v//AAEA/gD/AAAAAAH//wAA//8A/wAAAP////8A/wABAQAA/wABAAEBAf8B/gEBAf8CAAL+AP3+/wAA/v/////+/v8A//////8A//////8AAP8AAf///wD//wABAP7//wD7/AICA/8CAAACAf7+/////gH/AAMCAgMBAwMB///////+/f8B/wABAgIBAAEAAgABAAAB/gEAAQICAgEBAQEBAQABAQAA/wIAAv8A/v7/AAAAAAIDAgMEBf8BAf7+/////gICAQAA/fz+AAcDBwEAAAEAAf4A/v7//f3//QMCA/3//gD///r5+gICAv//AP/9//38/Pz//QMCAv0AAAMDAwMDBP8AAAMCA/3+/Pv7+gMEAv///vz+/gIDAv3//gL/AP//AP7+/vf49gMDAQAAAQQEBPn5+QMDA////wAAAPz9/QECAQEEAv/9/f8A/////f78/AAB/wQFBgEAAP0A/wD/////AAAAAAAAAgICAwEBAAD/Av8B/f39+wMBAv8CAAAAAAD///7+/gICBAEBAP//AP///gD+AgEC///+/gAA/f4AAAD/AQEAAAABAAD/AAEBAQACAQIBAgIBAQD+AP4AAQD///7+/P36+f749/74+f739/359v739wD4+QH7/AD+AP0CAv4EAgEABAH9/v/8AQD+/wEA/gAA/gH+AQD+/v8C//4A/wEAAP0B/wQAAP//AAEAAAEDAgEFAwMFBAUFBQQFBQUFBQUEAwMCAQEAAAAAAAD//wAAAAD/AP8AAP////8BAAAAAAH/AP8AAAD//wAAAP////8A/wAAAAAAAP3//gEAAQD//wD///8AAAAA/wD//wAA/wH/AAABAf//AAD/AP8B/wAAAAD/AAAB/wH/AAAAAP8BAAEAAP8BAAEAAP//AAAA/wEBAAEAAP//AAD/AAABAP//AAAAAAD//////wABAP7///8AAAABAAEA////Af8AAP//////AP/+/v8CAf////8AAf4A/wIAAQAA/wD/AAAAAP8B/wAAAf7//v8AAP8AAAAAAQAA//8A//8AAAABAP8AAP////8B/wD/Af8BAQABAQEAAQAAAf/+AAABAAD/AAIAAP4BAQL///0BAAD+/wD/AQD//gAA/v8A/wEAAAIA//////8AAAD+//4B/v8C/QMBAgEA/wEAAf/9/f7+//8BAQEAAP//AP8AAP8CAv/9AQD//v/+/vz///8AAAH8/f0BAQABAQABAAEAAQECAAACBAMBAQH/AP4BAQP////+/v//AP//AQD6+vgAAAIGBQf+//7//wD//v3//v/+Af8BAQD/AP7//v3+/vwBAgH//wL//f8CAwUC/v4A/v8AAP////78+vsFBAX+/v/+Af8BAQP5+/gGAgcCAgIDAwEBAAECAQH9/P38+/kEBAP//fz4+vz/AQACAgQGBQT8/P38/fsAAAEAAQIDAgQBAwL+AQL+/fz///39/P0DBAL+/v4CAgEA//3+/gEDAQD//QH/AgD/AAIA//4CAQL9/v0BAQIBAQD//f///v8A/wAAAAH///8AAAACAgD//v8AAQAAAAEAAAH+//8AAAD////+AAAB/gABAAAAAwMCAAABAAD////////9/v39+/v69ff59fX79PX/+Pn++fr/+vz//f4B/v8AAP8BAgAAAQEBAwP/AQIABAABBf4A/v0A/v4B//0A/gD+/QAA/gH+/fz+AP/9//4EAP//Av8BAgAAAgICBAQDBQUEBgUFBgQDBAMDAgIDAAEAAAAAAAAA/wD/AAD////+AAAAAP///gD/AAEAAAD////+////AP///wD/AP//AAAA/wAAAQD///4A/wAAAAD/Af///wD///8AAAD/AQAAAP///wAAAP8B/wAAAQEAAAAA/wH/AQABAAAAAAAA/wAAAf8AAQEAAAD+AP8C/wAAAQACAAD/AAEA/v7/AAAAAAAA///+AAAB/gAA//8AAP//AAIAAP//AAABAQD////+/v3+AQP+//8CAAD///8B/wH/Af8A/wAAAAD+///+///////+Af8AAAD/AAAA/wAAAQAAAAEBAP//AAEAAP//AAAAAAEAAP//AAAAAQIBAQAA//8C/wH/AAIA///9//8AAAEAAP8AAAABAQD///8AAQAA/wEAAgMC/v4A//7+AP///gD+AP0AAQEB////BAQDAgEC////AAL+//0A/f79//7/AAD+AP8BAAAAAgMDAgEAAAECAQH/AAAA//7+/f39AP//AQECAgIBAQICAP4DAQMBAgEF/wD+/f8C/v7//wD+AQAAAgEEAgMDAgIB/v/9A/8BAwQEAwAA/fz7AAABAQD/AwIA/gD+AQAA/v7/AQAA//7+/vz+AQH/AQECAQABAAEA/P37BgMI/wD/AQEABwgIAgIC/wH/AgAB/v79AwMDAgAAAP4D/v79AP//BQUF/v//AQIE/Pz9/wD+BAQG/v/+/fz9+vn4BAUFAf//AQAAAgED+vr5BQYGAgD////+/v79//8B//7/BQQC/f77AAIDAwABAf//AP4A/wD+AP8BAQEA//7+/f7+AQL/AwICAAEA///+AAACAgAAAAABAAD/AQAB/gD///8A//8AAAEAAQICAAEAAP8A/wAAAAD//v7//fz++/v6+fb1+/X2/Pf4/fr7//v6Afz9Af8AAAD//wEA/gMBAQYCAAUHAv8B//7+//z8AfwBAP/9/v8CAf4A//n/+/z5/f79/f///gEABAEAAAEBAAICAQQDAgQEAwYFBAUEBAQEBQMDAgICAQIBAP///wABAAAA/////gD///8B/wAA/////wD/AAD//wAA/gD///8AAP///wD/AAAA/wAAAf4AAAAA/gD/AAAAAP8A/wD//wAA/wD/Af4A/gAAAAEBAAAA/wABAQD/AAABAAD//wABAAAAAAAA/wEAAQAAAf//AAABAQEAAAAAAP8A/wAAAAD/AAAAAAAA///+//8A//8A/wAA/wD/AAAAAP///wABAQEA///+/v8AAP4B/QL/AQD/Af/+AP8CAAEAAv8AAAAAAAAAAAD/AAD/AAD///8A/wD/AAABAAEAAf8AAP//AAABAAD+AAAAAf8A/wD//wAAAAACAAD8AAAAAQACAQH//v/9////AAAAAP7+/v7+/////gAAAAEAAP4A/gAAAAD/AP//AP8A//8A//7+/gAAAQEA/v79/f38+gYGBwQEBQAAAv4A/QIAAQD/Af///v79/f//AP7+/QACAf7+/wH///8BAP///wIBAvz+/QMA/wD/Av7/AQH+/wEAAAEC//8BAAAAAP/+/f4A/gEAAQEAAAAAA/7//gD+AgECAf79/wQEA/0AAf8A/QD/AP3+/QMCA/r9+P/9/P3+/v7//gABAAICBAIBAgAAAP79/fz6Af/+9wcHCf8A//7+/QIC/QECAAEBAfz8+wAAAQH/AAICAv79/gACAwEAAP/////9/f7//wECAf3+/QMCAgEEA/79/wD+/gAAAP79/f4A/wMBAvr3+AEBAf39/QQHBgMEBgH+//v8+v4AAAEA/QEDA//+Af/9/v///gIDBAIBAP3////+/v////8AAP///wIAAQEBAAAA//////8AAAEAAAAAAQAB/wAAAP7+/////QP///4CAwIA/wAAAP7//v39/Pv6+/n5+fv6+v38/P7+/v/+/wH/AAAAAAEEBAAIBgMDAwH8/P/8/Pz7/AD8/gQBBAEDAf/6APz5+vz4+f76/P79/P3///4CAP0AAQQAAP8BAf8DAgEFBAQHBQUGBgUFBgUEBQQEBAQDAgMAAAEBAQEA//7/AP4A////AP////8A//8A/wD/AQAAAf8A//////8AAAD//wAA//8AAf8A//8AAQAAAAEAAP8AAAD///8A////AAAAAP8AAAEAAP////8AAAIBAAAAAQAAAAAAAQEAAAAAAAD/AAAA/wD/AP4BAAIB//8AAP//AAAAAAAA/wAAAQAAAAD///4AAAD///8AAAAAAP///wAAAAEBAAEAAAD/Af8AAP//AP4A/wL///////8A/////wAAAAABAAAAAAAAAAD//wEA/v4AAAD/Af8AAAACAAEAAAD/AAAAAQD//gAAAAAA/wABAP/+AP8AAQAA/v8AAgD//v//AAEAAQABAgMA//8A/wAAAQEBAQAA/wH+//7///8A/wD///8A//////7+/v7//wACAQL+/v4AAAD/AP79/f0A/wD///8DAwP/AAD/AAEAAAABAgIDAQIAAP///v7///4BAQAAAAABAQAAAAH/AAECAQL/AQD+AAADAAAAAQAAAgEAAwIB/wD/AAAAAgMEAQMDBAQA/gH+AP4AAAEFBQUDAwUCAQH7/PsCAgIBAQD8/PoBAQH///8BAP////8BAQEDBAUCAgMA/wEA//4CAgMA/v/9/Pv//vwFAwP7+/sAAf8FBQP//v8FBgcBAgL//v0AAQEBAwMEAQH+/v36+/oBAAD/AP4CAgIAAQAB/wAA//4AAAEEAwMAAP/8+/sA//8BAQEBAAEDAQH9/f4CAAAB/f4AAv3/AAH+/f4AAgH/AAH+/gIB/v4CAQD8/gD//v7/AAD//v/+/gL+/v0BAQABAwIAAAD/AP/9/v8EAgD//wAAAf8A/wAA/wABAAD/AP///wD+/wAA/v//Af7////9/fz9/f3+/f7+/v39AP8BBQYCA/4ABAL/AwICBwYC/P4A9/f99PYB9/4D/gEDAgIA/wL8+fn++Pn9+Pn++vr//P3+//78AP/8AgD9AQH8Av8EAAEBAwICBgQCBgUEBgUEBgQEBQQEBQMDAwICAQD/AAABAAD//wAAAAD//wD/AAD/AP//AP8AAAD/AP7//wEAAP///wD/AAABAAD/AAAAAP4AAAD/AAABAAD+//8BAAH/AAAAAAAAAP//AAAAAAD/AAAA/wABAQD/AAACAP//AAIAAP///wAAAAEAAQABAAD/AAAAAAD//////gH+Av8C/wAAAAEAAAAAAP8AAAAA/wD/AAD///4AAAAA/wEAAAD/AQAA/gABAv//AQD///8B/////v7+AQH9AQECAv79AAIAAAEBAAABAP8AAP//AAEAAP8BAQACAAH//wABAAEAAf8B////AAD/////AQD//v8AAAAAAAAAAQEB////AAAAAAH+AAD//wD+AQH/AAAAAAAB/wAA/v/+AP////8A/v7+/v7//v7+AAD/AQAA/wAA/wAAAP///wD+////AP8A/f38APoA/gMD/wABAAEAAAAA/wAAAP8AAQIBAf/+/v//AP//AQAAAQEAAQAAAQEAAgUEAP///wAAAgIAAgMCAAH//v7+AQICAgECAgAAAQID/v3//v/9BAQFBAMFAQID/v/+//8AAgEBAAEC/v7+/v7+Af8A+/z7/f3+AgIC/f3+AwUE/v3++vj5AwMCAQABAQMB/f38//3//fz6//79BAQE/Pz8AgQA/f37AAD//Pz9AP7+AQECAQAA/f3+AP//AQEBAAAA//7+AQABAP7+/wIDAQEB/wAA/v3+AgMDAQAA/gAA+vn6AP//BQUG/P38/fz9/v7+AwUGAgMC/v8BAwMEBAME/f78/Pz8/v//Af8AAAAAAQEB/v78/v4EAgMEAwAC/wD//wAAAwEC/wABAAD///4AAAEBAAEB/v39/v7+/////v//AgACAwMCAAABAP8CAAD//v7+AgMECAwLAfz+//7+/Pr6/gT5APz9//z8AgIBBv////v6//P3+/T3/ff5/vn6/fr6//z8//3+/wD//gEB+wIA+gEA/AMA+wAABAIAAAQBAgQDAwQDBAQFBQQFBQUEAwMDAgECAQABAf///wAAAAAA//8AAAAAAP//AAAAAP8A//8A//8A/wD+AAD/AP//AAAB/wD+//8AAAEAAP8BAQAA/wAAAAAB/wD/AAD//v//AQEAAAAAAf8AAP///wABAQAAAP8AAAAAAAH/AAAAAAD/AAAAAf8BAAD/AAABAAD//gAAAQH+AP4BAAIBAv//AAD/AAAAAAD///8A/wAAAP///gABAQD+/wAAAf4C/wH/Af8CAv4A/wL+/v0BAQD+AQICAf///v8BAQH//gABAQD/Af8AAAAAAP//AgAA/gAAAAD/AQAA/wEAAf8A/wAB/////wAA//7//wD///8BAAH///8AAAEBAAABAP8B/wAC/wD//wEBAQEBAAH//wH/AQH/Af7//v///wAA/wAA/gD//v8A////AAAA///9/v////8A/wD/AP////38/v38/QMEBAIDAwMCAwACAQEAAAECAAAB/wECAgL/AAEA//79/f8BAAAAAP8AAAH//gMDAwIAAAEBAgEAAf8BAAH//wD///////8BAAQAAAMDAwMBBAECAwABAgEAAf8A//7+/v7//QH//wICAP/+AQICAQECAQMEA/z6/v8BAQIAAwIDAgUHAAH/AAIBAgD//wYICPz6+fr5+QAA//79+wECAv8BA/8B/QEAAAMDAwABAf/9//z8+wH//wIAAPz8+wICAv8BAP79AAABAf78/AQEBf/+/f////v7+wICAQECBAMCBP39/QAB+wEBAgICAQACAv39/QH/AAIDA//9/v8A/gD///7+/wEAAAH//gAA////Af8CAP4D/gD/AP3+/wABAAQAAQEBAQACAAD/AAABAAD///7+/vz8/AD/AP8A/wEAAQIDAQAAAQD///7//f3//wQEBAUGB/wDBfz++gEBAwAGBgcJCAT+AAD3+Pvs7/nw9Pvp7v319gD5/P76+/77/f79+/3+/v////4CAP0B//wBAPsBAfwA//r//wQCAgEEBAIFBAQHBwQFBQYEBAQEBQQCAgMBAAEA/wAAAQD//wAAAP8AAAH/AP8AAAAA/wAAAAAA//8A/wAA/v8AAAAA//8AAAAAAAD/AQAAAAAA//8AAQEA/////wAAAP8AAAEBAQD+/wAAAP4B/wABAAEAAAAAAAAAAAAAAAD//gAAAQAB/wAAAP///gAAAQAA/wEAAAAAAv/+AP4CAAEA/v//AAAAAQAAAAD///8AAAD/////AAAA/v4AAAAAAP8B/gL/Af8C/f4AAgH+AQICAP7+AwH+/gIBAf0AAAEAAwIC/wEAAAAAAAAAAAEBAAD//wIA////Af8BAAL/AP7///8AAP8A/wD+/wAAAP8AAQABAAD/AAEAAAAAAP8BAQABAQD/AP8AAf8AAf8CAwIA//8AAv8AAAL//f4BAP///wAAAAAAAf/+/v7////+/f//Af8AAP7//v7//gD+/v79//0A///9/f4EBAT/Bf8C/wMBAgH/AAABAQH///7//v8A/wD/AAAA/gACAwIEBAQCAQH//v7+AP8DAwEAAgECAAIAAv7/AAD9/v0AAAL8/PwGBQcAAgQDAwMBAAIBAgEB/wH/AQEC/wH9/Pv9/f7///7/AAIGBgf+/v3//PwFBAb+/P7+/f0FBAUBAQD//f7//v/8/PwCBAT28/EIBgX+AP8DAgUEAQMA/wAAAAD//v8BAAEBAP8B/wACAwECAwQBAgH+/f0BAQL9//4CAgP9/f0BAAABAgIB/v0BBAMAAAD+////AP8DAQMBAAABAwH+AAH//v4DBAUAAAH//v////34+/sDAgH//v3///8CAgMB///+/f/9Af8AAv0CA/0C//8DAgP/AwIBAQECAQL/AP8BAQD//wD///8BAQH+//7///8CAAD//v7/AAD/AP8BAAAEAgMAAAH+AgIBCQkKDQwFAwP++/v79Pb47u/87vD86e397/P99vn9+Pv/+/v+/P3//v39///9AP/9AwD+AQD+AQD7AQD8Af78/wD7//8EAwICAwMCBQQEBAMFBQUEBgUFAwIEAgIAAAD//wABAQABAP/+AAD//wAAAQD//v//AAAA//////4A/wD+AP8AAAD/AP8A/wAAAAD/AAAA/v8BAAEBAv8AAAABAAD/AAEBAP////8AAQEAAP8BAAEAAP///wAAAAAAAf8A/wAAAQAAAP8A/wAAAf4BAQL///8AAAD+AAEBAP//AAAB/gAAAAAAAQEAAP8B/wD/AAAA/wD//wD+AP8A/wD/AP8AAAEAAP7+AAIB/gH/Af4CAQL+Af8B/v7+/QH9AQECAQL+/v/+AAABAQABAAABAAD/AAAAAAEBAAABAgAB/wD+//8AAAD/////AAAAAQAA/wAB///+AAABAAD/AP8BAQAA/wEBAQIBAQABAQAC/wD+Af4AAQICAP//AAH/AgMC//7/AAAAAP8AAAEBAP/////+AQH//////////////wAA/v/9//3/AAEA/wD//Pv8/v7+AQICAwUEAgMDAQABAQICAAH/AQD/AAABAAEAAQECAgECAgIBAQIC////AAEB/wEBAwQCAAAC//8AAQIA/v7/AAECAAIDAgABAAEBAQEC////AgECAQQC/Pz7/gD/AgIBBAUF+/n6AwICBAYG+/z8/gD/AgQDAgQDAQECBQQF+/r5+fj3BAQEAQEABQUG/Pv6AwUE/v3+AgIDAAEBAAAA/P76/wD/APz9Af7+/gD//f79/f39////BAIBAQABAf8AAQAA/P39BAMD////AQEB///9BAMF/wIB/fz9AQAA/vz9AgUF/QEA//79AQICAQAD/vz8AgICAP7//v38/v3+AwP+/f79/v4B/gIA////AP7/AAAA/gH/AwAA/v7+AP38AwMEAAAB////AQEBAAABAP////8A/fz9/wP/AgIBAgEA/QD/AAD/BAgFDxMS/vcK+/b29fDw9+/v/PT1APb4//L1/fb4/fr6/f39/v7+/P39/f/9/gD+/QD//QEA/QIB/QEA/QD+/AAA+////AD//P//BAMCAQQEAwYFBQUFBQQEBAQDAwMDAQABAQEAAAAA/////wABAAAAAQD//v7/AP//AAD//v8A//7//gAA/wAAAAD//wABAQD///8BAP//AQABAQAA//8B/wH/AQEBAAAA////AP8A/wH/AAD//wAB/wEAAf/+/wABAP4AAAEAAP8A/wEAAAAAAAAAAAD+Af8A/gABAAD//wAA/wAA/wAA//8A/wAAAf8A/wAB/wD+/v8AAP8AAAD//////wAAAAD/AP8B/wH/AQAAAQAA/gD/Av7//gL/AP//Af/////+AAAAAP8C/wEAAAAA//8AAQEAAAAAAAEAAAABAAAAAAH/Av8B/wH//v4A/gAA/wD/AAAAAQAAAAEAAQABAP8AAAH/AQAAAQIBAgAC////AP8A/gABAgEB/wAA/v4AAQEBAQEBAQEBAAEAAAABAAD+///+/////QD/AAD+/v///gAA/gAAAAD+//3//gEBAf39AAIDAgAA//3+/wUHBQMBAwICAQAAAAAAAP7//QMCAwQFBP39/QAAAAECAgIDAgABAv7/AQEAAf8B/wEBAQMCAgMDBP////4A/QUAAv/+/P39/QADAwAAAPn5+AEA//4BAP/+/fz7+/4CAgICAQIEBP37/f8CAQIBAgMDAwACAAcJCf7+/QD////9/QMDBP/+/fn3+QgJCfn3+QcIB/37+/7++wAA/gH//wD//fz5+wMDAQECAf3+AP7+/gABAfz8+gECA/z8/P/9/QECAf/9/f7+/QIB/P38/v/+AAIEBAABAQABAP//APwAAAEAAgMA/AH/AP77/P39+/39+wUDBQEA//z49vv9/wEJDP79Bvz9BAP//wYDBwECAv8AAQAAAgEBAQEBAQAAAPz9/v8A/v7//v7+/gIBAwAAAgABAP8BAAMDBAYGBv77Bvb57/Lr6/fv8P73+P76+AD6+v/5+v76+v79+/z9/fz///0AAf0DAvsA/v4AAP0BAfsAAP0AAPwA/vv///wA//z/AP0B//7+/wQDAwIFAwQDBAQEBAQFBAMEAwIBAQEBAP//AQAAAAEAAP8A/wAB////AP8AAP8AAP7/Af///v8AAAD///8BAP//AQAA////AQEBAAEBAQAAAP8B////AQD+AP8B/wAAAAABAP8A/wD/AP8AAQAA/wD///4AAAAA/wAAAP7/AQEAAAEAAAABAAH/AP4AAAEAAAAAAP//AAD///8CAP8BAP//AP//AP4BAQH//v8AAAD///8A///+AP8A//8AAP8AAAEA/wD/AQABAQACAgAA/v//Af7//gD+AQH+Af4BAv4D//3/////AQMBAQEBAP8B/wAAAQEBAAD/AAABAAAAAQD///8AAQAB/wEAAAD/Af8B/wD/AQAAAAD//wAAAAEAAf8A/wAAAQEBAgAC/wL+/wAB//0BAgEC/wH//gH+/wEA/wAA/wD///8A/wAAAQH/AP7//wD//v7+//3//v4AAAAA/wAAAP8AAAD///4A/wEAAQD9/PwDAAD9+gEBBAIAAwIBAwEAAP8AAAH+/v/8/f0FAwQCAwL+/f78/PwCAwABAAABAgIB/wEBAwECAwMCAQIBAQMBAAD+//4BAQIDAwMAAAD8/PsBAQD+/f7//v0AAf8AAP8CAgIBAQEDAQT/AwACAAEAAQH+///+/P8EAwAHBwf//f37//0DAgL/BAUF/QD//gABAP/9+/v//fwB/v39//3//f0BAf/8+vn8AP4CAwMBAwMBAQT+/f/+/wACAAACAP79/v8EAgX8+/wA/v0BAf/++/z/AAD//vwDBAX9+f7/AAAAAQIBAAH+AAEC/wD+/f4E///8+fj7AfgFBQX++vj8+/0AAwUBBQcFBgb9/f/+AAb/AAECAQECAgMBAAH+/v/+/v8A/gD////9/v7//v8AAf4B/f0ABAQEAwP////7/v3z8fDx6uv48PD++vn+/v3/AAD+//////4A///+AAH9BAL8BgT9Af/8/QD5+//7/f/7/v/7///7/v/8/f/7AP79AP/+AP8B/wACAAAEAwICBAQEBAUEBQUEBAQDAgICAgEBAP8BAP8A/wD+AQECAAD//wAAAAAA/////////wD/////AP//AAAAAP8AAAD/AAACAf8AAAAAAP//AAEA/wAA//7/AAABAAAAAP8A//8AAQAAAAAA//8A/wAAAAAA/wAAAQD/AAAA////AQEAAAAAAAAAAAACAAD+/wAAAP8BAQEAAAD///8A/wD//wD/Af8A/wH/AAAAAAD////+//8A/wD/AP///wD/AAD/AAABAf//AAIB//4CAAL+//8D/gD/Af8A///+/v79AAAAAwEAAAAC/wEBAgAAAAEBAAAAAAEBAAD/AQAA/wD/AgAC///+AAEAAAAAAQAA/wAAAf//AAAAAAAAAAD/////AAAAAP//////AAD/AAH/AQL/AQD/AP8AAf8AAQABAQACAQH+AAABAQEAAf7/AQABAQAA/v////7//v///v39/wABAAAA////////AP///f4AAfsBAwUFBP3///4AAAYGBQIE/gEAAgIBAwMDAwMCAgMDAAEAAQICAP4B/fv8AAICAwAEBQUFAQEBAQEBAQIB//7+AAIBAwMD//7//wAA/Pr7+/r4AQEB//79+/v6/vz9/f7/+vr3AwQDBAUFAwAEAgIBAf8A/v/////+/Pz7AP7+AP7+AwICAQQE/f//BgcC/f37/vz8Af/9//z8///+/wD+AP7//f/9AQEBAP8BAP7++/z6AwME/QABAAEC/Pz+BQUE/v7///0BCQgJ+fj2/Pr5AgIB/v8BAAH/AAAAAwAC/v/+/fv6/QAB//z8AAAAAP///fz9/vv5/fz7+wIBAAQFAQAB/Pv7/v39/Pz8BQUGAAAA//79AgQGAwIC/f7//v79/v7+/f7+/Pv8/v3+AwMDBAQFBQUGBAUEAAD//Pv69/f19vTz+fb0/vz8AAAAAwUE/gMCAgID/wME+wEA/v78/wH9/QL++vn++/r++gED9vv+9/v8+P7++f7+/QD+AP3+AQD/AgABBAIBAQEBBAYFBQYGBQUEBQQEBAUEBQIDAgABAAAAAP//AAABAQD//wEAAAAAAAD//wD/AAD//wD//wD//wAAAAD/AP8AAAAAAgAAAQAA/wAB////AAD/AP8A/wAAAAEAAP8B/wEAAAEAAAD/AAAAAAD//wAAAAABAQD+/gABAP8AAAAA//7/AAEAAQIAAAAA/wAAAQABAAAA/////wAAAQEB//8AAAH///8AAAAAAAAAAP///wEBAAAA/gD/AP8A/wD//wAAAQAA/v8BAP//AgAA/wP/AAD//v8AAv7+/v0B/QEBAQABAP//AQAC/wEA/wABAgAAAQEBAP8AAAEAAAAAAAH/AP8AAAEBAQAA/wAAAQEAAP8A/gAAAQD//wEAAP8AAQEA//8A/wAA/wAAAAEBAAEBAP8BAQABAAEAAQEBAQIBAQACAgAAAwMDAAEAAAAAAgAB/gECAQEBAf7+Af3+/QEBAf7/AAEAAP///wAAAAAAAQD///8AAAEBAwECAgIDAgMCAgQEBAEDAgQEAwD/AP8A/wAAAQEBAgEDAAgDBf39/P3+/gICAgD//wECAgEAAQAA/////gD/Avz9/f//AAH/AQMDAv4DA/36+////gMCAwQGBP4A/vn6+v8AAPv7+wcFBv///////wICAgEBAf7+AP7+/gAAAPz+/QMDAgMABv78+/79AP/+/P39/wH//vz7+v3//gQFBgAAAAQCBf39+v38+gMDAPz59v7/AgEDAgECAv3//AIDA/35/P/7/P77+wIA/gEAAwYFBP3///79/fz7/QMDBP77/AEAAAH+/wEA/wEAAAEA//38+//49/0A/v8DBf8IC//+/v79/f/9/QIHAgEBAAICAwEBAvv9/f79/f7+/f7+//3+/QAA/wQEBAMEBAQDBQIBAv78/vz9+fn4+Pn5+Pr6+f3+/AAC/wIDBAABAgIAAAAG/f0EAgAA/f/+/P0A/Pz++f39Af37/vwA/vf+//D9/fP8+/r+/gH/AAT//gYAAQUAAAMAAQIBAQQFBAMFBAQFBQUGBQUEAwIDAQIBAQEAAAABAQEAAAAAAAD///8AAP8A//////7//wD///8AAAEAAP8AAAAAAAEAAAEA/wD/AP8AAAEAAAAAAP8AAAAB/wAAAf8A/wD+//8C/wAA//8AAQAAAAAAAP///v8BAQD/AAAA////AAABAQABAP8AAAAAAAEAAAH///8AAP8AAP8BAQD+//8BAf4BAAIB//8AAAD/AAABAAD+//8A/wD///////8AAAAAAP7/AAAA/wABAv7/AAD+/wL//gADAv////7+/wD9/gABAgUB///+/v8CAwABAAEBAQH/AAABAP///wEBAf8AAAEAAf7+//8AAAAAAAAAAP8CAAL/AP//AQH///8BAAD+/wD/AAD/AAAAAAD/AAAAAQEAAAAAAAEAAQEBAQH/AgIAJECWDAABAABJREFU//8CAgP//wAAAAIBAf3+Af3+/wABAQAA/gAA/gEC/v///wD+/v3//wEBAQD///////4B/wEAAf/+//z8+gAA//8AAf8EBQUCAgIFBQX//v7/AP8CAQICAQIBAgECAwIB/P0AAP7/AQAAAAAAAP8AAAIAAAD9/fwDBAQB/wD7/Pv9+vz9+/z+/vwDBAMB/wD+AP8AAP8EBQT+/f/9/f3+/v4BAgEAAQIBAQIBAv8CAP//AgL///0BAQIBAwL9/PsBAQACAwH8+PwCAv8CAgD+/vwBAAABAAH//wEAAAD//v8A///9/AAAAAQFAwL39/cABAIBAgIHBgYBAAEA/vwDAQABAAP///79+/v9//8BAQMB/wH7+PkBAP/9/PwB//4CAgEC//4BAAAA/fwD/v79+Pb/BAT/BQUA/wkA//8AAQABAAEDAwMBAgL///78/f7///7+/f7//v8BAQECBAQEAwMBAQL///77/P0AAP8A/v3+/v///gECAwQFCAj+AQD//v0BAAD//wD/AAIABAMBBgUBCQYB+QUABwX++QP8+gL5AgH3AP7y//7y/v36//8FAAAKAQAFAAECAAICAQECAQAEBwUFBwYHBwUFBQMDAwIDAQIBAAAAAAAA////AAAAAQD/AAAB//7/AAD////+/wAA/wD/AP///wAAAQAAAAAA/wD/AAAAAAABAP////8AAAEAAQAAAAAAAP8AAAD/AQD//gABAQAAAP8AAAAAAQAB/wAAAAAAAP//AP8BAQEAAP4A/wEAAAD/AAAAAAD/AAAAAAD/AAEA/v//AQH/AP79/wD+AgEB//8BAAAA/wAA////AAAA////AAAAAP///wAA////AQEBAP7//gH+//8AAgIAAQECAf4AAAAAAQAB/v7+AQH/AgH///4B/wP/AQABAQAAAAAAAQAAAP8A/wD+AAAAAf8A/wABAAEAAf8B/gH/AP8BAAD/AQAA/wAAAAEBAP8AAQAAAAD/AP8A////AAABAQECAgL//wADAAD+AAAA/v3+AgL////9/wABAQEBAgECAQEAAAAAAP8A/gL/AP7///8AAAD+/fz9/v///v7+/v/+AgEC/wECAwMC/f4GAQEAAgMD/v7+/v3+AAD/AQEA//7+/gIAAf4BAQIBBgYG/wD//v7+AP///v//A///AQICAv8A//7/AwADAgAB/QD/AwQDAPz+/Pv7/////v79AQIC/gH///8ABQUEAAEB/v8ABQQDAAEB//79AAIDAwQA/wEB/fz3+/n8/P37AP39//z9/gD9AQAA+/v+AgAB/wEC/f7+/fv8BQICAf8BAQEDAAECAv8A/Pv8DAwS+Pn3CAcG+Pn2BQUD/f76Af8B+vr7BAQD/wEDAQAB/v//AQEC//36//8AAv7+AP/+//v8+/39BAUDAgL/AP78Av78/v8AAQH////////+//4AAAEB/v8BAf3+/f3+//8A////AQAAAQMCAgICAgEC//7//gD9/wD/AAAAAwEC/wECBAUEBwgHCgsL/fj0+v/7/vz///79AgAA/wEAAf8D/wgGA/8KBf/9+//9+P/9+gH/9gL+9f779v0B9/4C/f39//7+Bv8B/wEAAwMBBQECBQEBACuB1H4EBgYFBgQEBgQEBAQEAgMBAAAAAP8AAAL/AAAAAQAAAAAA///9AAD////+/wD/////AAAA/wD/AAAA//8AAAAA/wD/AP8BAAAAAAD//wAAAf8A/wAAAAEAAP8AAAEAAP8BAQD//wEAAf8AAAAA/wD/AAAA//8A/wABAAD/Af///wABAf8A/wABAAH/AP8AAAH/AAD/////AAEBAP7+AAEBAQEA/v8AAAD/AAAAAAAAAP8B/wD/AAD///////8BAQD+AAAA/v//AQAAAgACAAD////+/v0AAgIA/wEB//8A//8AAP8AAAEAAQEAAQABAAABAAAAAAAAAAH/AP//AAAAAP8BAAH/Af8B/v/+AAAAAQAB/wH/AQAA//8AAAABAQAAAP///wAA/wAA/wAAAAAAAAD/AP/+AAAB/gD+AAAAAAABAgIB/wACAwAAAgEB//8B/v///v///wD7//8AAP7+/QD8AQEA/v7+/wAAAQAAAgEBAQADAAEAAQD////+AP/++/v5AQIBAAEAAwMCAwICAP8A/wEBAgEBAQAB//4A/gD9AAD////+AQABAAABAP8AAQEA////AP8A/f/8/P38/wD+/f3++vr4AwIDAQAA+vn6AAMCAgMCAAAA/AAABAIAAQICAQEA/Pz8AQAAAP//AQEBAgQEAgME/f36+/n7AgD/AwIAAP8AAP7+/v/8//79AwQF/v/8AwMA/wD/AAEA//z/AQD9AP7/BAAC/Pr7BQQD/v37Af/69PH0AQEBBQQH//7++vwAAQMEAAADAQIDAQABAv79/v79AgEDAQH+/v77Af79AP7+Af/8AQL9AQIAAQQC/////f38Av38AQH/AQEB/wD+/f37/f/+AgEDAgIBAgIDAQECAQAAAP///v/+Af///wD/AQEC/gD/AQAA//7++vv5+/z4/f/8/wL/AAP/AQIAAQAAAAAB/wMDAQQIAQYEAQYE/QYE+wkG9wkHAfEEAgIBCAAB/AIB/Pr7BP3+Bv0ABQACBP8CBf8BBP8ABAUEBAQEBAQEAwMDAgEAAQEAAQAA////AQEBAP8A/wEAAAAA/v8A//7//v///wAB/wD/AAAAAAAA//8BAAD+AQABAQAAAP///wAA/wAAAP8AAAABAAD//wABAQAAAAABAf//AAH/AP////8AAAAAAAAAAAD//wAAAAEAAAAAAQEAAAEAAP8A/wH/AP8A/wD///8A/gAA/wD/Av8AAAAAAP8AAAH/AAAAAP8BAAH/AAAAAAABAP//AQAAAAD///4BAQD//wAA//8AAf7//wIB/v4AAv8C/v//AAD+AgIB///+//8D///+AP8BAAAAAQAAAAEBAP///wAAAP8AAf8AAQAA/v8AAQAA/wAA/wABAP///v8AAAD/AAABAQAAAP////8BAP//AAH/AP8A/wD/AAD/AAAAAQAA/gIBAf4B/wEC///+AQABAAICAv4A//79Af8A/gD//wD/AP8AAf//AAEAAgMDAAAAAAAA/QD/Av8A/v/+AP4A/gAAAAH/AP39+/4A/f4A/gABAAUEBAMGBwcHB/7//v39/QEDAQMBAv39/f7///////3+/f//APwAAAECAgICAgEAAvz7/Pz8+/z7+vr5+f78/QEGBgQDBQgJCv3//f3+/gECAAEBAfv7+wIDAwIBAQICAv3//QEAAPz9/P/9/P///vr7+gIDAf77/QD9/fz8+vv9+QICAQD//wP+/wH//fz5+gL+AwIDAwD8/Pj39f///wQGCAICBAIFAv0B/fv59f759wUDBwMA/f7+/QD/AAD+//8B/f4A/wEBAwH/AAP/AAEA/v/9/AD++wMBAP/9/gD9/P3+/QADAwECBf0AAAACAQECAwIDBAABAAD+//8CAQMDBAQEBAICAgAAAP7+/wEA//8A/wD+//z//wAA/wH//wEB/P79/Pf29fPz7/f29Pz9+QAC/QEBAAEAAgAAAQEAAgAEAQIGAAD7/QAFBP8FBf8ICAELCgIMCwMKCQYH8Qnz9vn1+AD4+QgA/goAAQn/AAf//wb+AAQEBAUFBQQDBAMCAQEBAQH/AAABAAAAAP///wAAAP8A//7///7/AP4AAAAAAP8A//8AAAEAAP8A/wABAAD/AAAA/wD/AAAAAP///wAAAf8AAAAB/wD/AP8A/wABAgAA/wAA/wAAAAAAAQAB/wD/AQH//v8BAAEAAAD/AP8A//8BAQH//wD/AP//AP8AAAEAAf///wABAAL/AAABAQD//v8AAQAAAP8AAAH/////AAEAAAAB/wD/AP8AAAD/AP8A/wAAAAD/AAAA//8AAP/+AQICAP4A/wH//gH/Af7+/v/+/v/+/v3/Av4AAP////8BAAD//wABAgD///8AAP8A/wAA/wECAAD/AP8A/wL+AP0A/wABAP//AAAAAAD//wAA//7//wAA/wD/AAAA/gAAAf8BAQD//v8BAQH///8BAAEAAAL/Af4CAQD+//7/AQAAAf8A/gAAAAABAQMDAgABAAH+Af3+/f8BAP8A/gD9/vv+//4AAAH///4AAQD+//8B/gED/gMCAAH7+vn2AQEAAQADAgICAwMA/wD8+/wCAgIAAQAA///+/v7//v7/AQIAAP8B/wD9/f3///3/AP/+/v/7/Pz+//7/AQD7/PwCAgL/AAH9/v7///8CAAP+/v0AAf/+//39/wMA//8AAAAAAAD+/v78/PsB/f79//7+/Pz8+fcA/fj++vUDAv8EBAYA/f4A/gAA/fwA+Pr8+fwDBAT+/v8E/vz/AgP79vEDAgICBQUDCAcB/wADAQIEAAAA/Pz+/PwFBgf+///+/fwDAwMAAPz//f4C/wD+/f4A/v0BAgADBAT9/f4AAAECAgMAAgH9AwP+/v/9/f7/AAEAAAD+//8CAQADAgIDBgUFAwUA///+/v4CAf///gD+/f////8A/v7/////AgD//v79+/v5+fn8+vr9/foAAP0AAf8AAf8AAAICAgMAAAMAAAEB/wAFBAQBBAMAAwMABgQCCAcDCQkGCAkICAr2CfL27fD+/wEFAPsI/f4H/gAH/v8EAAEEBAQDAwQDAwIDAgMDAAIBAQEA/wAAAf8AAP//AQH/AAAAAP8B/v//AAAA/wABAAAAAAAAAQAB/wD/AAABAAAA/wAA////AAAAAAEA//8AAAAAAAH///8AAQH///8BAgAA/wEAAP//AAABAAH/Af8A/wEAAAAAAP//AAAA/wEAAAD/AAAAAAAAAAAA////AP8B/wAAAAAAAAEA/v//AQAAAP8AAAEA////AAEBAP//AAAA/wD/AAAAAP///wAAAAD/AAEBAAAA/wD/AAABAP79/gABAgID/wH//v7+AQH+/v79/v4B/v///wAAAAD//wAAAQAB//4A//8A/wAAAP8AAAAB/gD/AP8CAAH+AP8CAQH//wD/AP/+//8AAP/+/gAAAAD//wAAAP//AAH///7///8AAAIA//7/AQAAAAEA/wEAAf8A//4BAAEBAf//AAABAgIC////AQH/AAD/AAD/AP8B/wICAv4D/wH//wEBAQAD/gAAAAAB/f38/wD/AQIB/////P39//r6/v8AAQEC/v3/BQYGBQQFAQAB+fr5/v3+/f39/v/8BAQFBAQFAgMEAgEC/P39/f38/v7+AAEABAUFBQYF/fv8AgEDAgICAgMDAPsA+fr5/f3/////AgICAQAB/f39//8AAAABBgYEAgMDA/4F+Pn1/v7+/fz8/v35/Pf0BQH8//v7APv7/vz+AAEB/wEC/vv+/fj4/f38Af8AAQIA/wD/AP38/wQD/AME//sGAgMC/vr9+//7BAUGAgD///4EAgME/wD/AwID/f/+AQEAAPz7APz8Af39AQIB/v8AAAAAAP8AAgMC/wEDAAMC/wECAQQEAgcEAQQDAAEAAgEBAwQDBAIDAQEAAAAAAQAA//8A/////wD//f3+/f39/gD+Av4CAAEA/f7/AP/+AAD+AQIAAgQEAP0BAP//AAD/AAEBAgIAAAECAAACAf8AAwQEAwYGBPwHBvv8BQoKBQgJBAUGCAUFBv0A+/z+BAD4B/r9Bfv8BQH/BAABBAUFBAQEAwIDAgEBAAAAAAAA///+AP8CAAEAAP//AAEAAf7/AAAAAgAA/wH///8BAAH/AP8BAP8AAQD//wD/AP4A/wAAAAD//gAAAP8AAAH/AP8AAAAAAAAAAAH/AAAA/wEAAf8BAAD//wEAAP8BAAH/Af///wAAAP//AAAAAP8AAAD///8AAAEA//8AAAD/AAABAP4AAAD/AAH//wABAf8A////AQAA/v//AQH/AQAB/wAAAQD//v8AAAAB/wD/AAAA/wD/AQABAQAAAP8BAAD////+//8B//8AAP///v4A/wAAAAAA//////8AAAD/AQEBAAAAAAAAAP//AQEAAP///wAAAP//AAAAAQEBAQEA/gD/AP8BAQH//v8BAQAA/wD/AAEAAP8BAAAAAQABAgAA/v//AQABAAAAAAAA/wD/AAH/AQACAgL/AQABAgMC//7+/////v7+/gMDA/z8/Pz/AAAAAAEDAQAAAAH+Av3//QEAAQEBAQUBBwECAgICAgICAgAAAQECAgMEBAEBAfv7+/3+/fj/9wMDAwIDAwEBAAUFBAECBgICAgEBAQMCAgIDBAABAAH///4DAgD//wMEAv//AAIBA/7+//3+/f79AP7//wQEBP38/AH/AP/+/gABAP4BAQEBAgABAP39/gEBAgECAgQEBPz5+P78/Pn19vbx7gcC/QgDAAQCBP38AAMGCgMJCQYJA/8DCf769gL7+v759vz69wD7+f4DAP4CAQL8CwMHCQUDAv8BBAEA/wIBAQMBAf//AQEBBAMFCQL//v/7+v8B/gH//AD+/wD+/v39/gEDBAEDAP4AAP4A//4BAQADAwYJCgYFBwQDAwUEBQICAgD/AP38/v4A/f8AAP7+/v///wH///39/fz8+/7+/gECAgEBAf8A/wEAAAICAgQFBf78Bv4CAQD9/gD+/v8A/gD/AAABAAECAgAAAgEBAQEAAgcAAAT+BwX9/QX8CAcHCAQFBAYEBAUAAvsCAgHv9QL19gT4+QX8/gP//gQEBQQDAwMCAgEAAAAA//8AAAEAAQAB/wAAAQD//////wD/AAAA/gEAAf//AAEA/////wD//wAAAAD///////8A////AAAAAf////8BAAD/AAEBAAEBAAEA/wAAAf8AAAEAAAAB/wAAAAD//wAAAAD/AAAAAAD//wD/AAAA/wAAAAD/AAAA////AAABAP8AAAD//wAAAAABAf//AQH/AAAA//8BAP//AAAAAP///wEAAAD/AP8A/wABAP7//wEAAQAA/gABAv8AAP//AAEBAAEAAAD/AAD//v//Av////8A/////////////////v8BAgD/AAABAAEAAAABAAD//wD//wAAAAAAAP8AAAABAP///wAAAP8BAAD/AgEA/v4CAAH+AAAAAQAB/wD/AP8AAQAAAAECAQD//v///wAAAAABAAH+Af8CAAD+/wD//////v7+//7+/v/9/f3+/f3+/v7/AAACAwMCAwMFAQYA/wD+/wD+//////4AAAH+//////7//wD///8CAQEBAAICAgMDAwMBAgICAgIGBQUCAgIAAAAAAAAAAAD+AP///v/8/Pz++fkAAAD9/v39/v3////7+/v9/P4DAwMAAAACAgIA//3/AP8A/wAAAQIBAgEBAAD/AAAAAAABAgAA///+/v4CAgIBAQL//v8BAQD49/Tu7Of78/D7AwD8Af77BggEAwsMDQoEBwsBAgUBBgn/+wb/+fcDAgICBAIE/QT+/Pv9/vr69PIB/gAECgkABwcAAwH8/f7/AQEFCgsGAwcBAwMA/f79/P38/wAA/wEAAAD9/Pz+AgADAf8AAgMBAf//AgH/BQUBBgkFBwgGBgcBAwQAAgL/AP7+/f3//P7/AP////8AAAD///3+/v/+/f7///8CAwIDAgP/AQEB/wABAQECAQIBAAIA/wL8/P3//fsCAAABAf8BAQABAgQAAgEA/wD+AQACAAAAAgIDAwEBBAQCBQQBBAMBAwIDAQQHBAb7BAf+B/L/8fMB8/QD+PkD/PsEBQQEAwIDAgICAQEBAAAA/wAAAAD/AAAA////AP////8AAP8A/wH/AAAAAAD/AAAB/wH+//4AAAD+//8A/////wAAAP//AP8AAAAA/wAAAAH/Af8B/wD/AQAAAAAB/wEAAAD/AAAA/wAAAAD/AP8A/wAAAP///wD/////AP//AQAAAAAAAAD/AAAA//8AAAH//wABAAAAAP8AAAAAAAD+/wABAP///wEAAP8BAAD+//4BAAD/AAH///8AAAD/AQD/AAAB//8AAAAAAQEBAAAAAAAAAAAAAAAAAQEAAQAAAQAAAP/+/v/9///9/wAB/wABAf8C/wAA//8A/wAA//8A/wD/AQAA////AAD/AAAAAAAA/wAAAAAAAP/+AP8AAAAAAQEAAAAA/wD/AAAAAQD/AAEA////AQEAAAEAAP8A/wEAAgAB/wAAAQH/AAAA/wEBAf8BAgEAAQID/wIC/v39/v/+/v///v3+/f79/v//AP7+AQEC/wABAgEAAgIB//8DAAEAAQAAAQICAgEB//8A/wAAAQABAAAA/gAAAgEBAgEBAAEBAAD/AP3//gH+AQICAAEB/f38+/v6+/v7/wAA//8AAQIBAQEAAQECAgIB//4AAAEC/wL/AgEC//7+AQEBAwMDAAAA/wD/AQEC/////v7+/v7//gICAQID9/v68/Lx8efnAfv4BP38CggLJy82AQUIBAcH/wED/vz//wEF//78AP4IAgUDAv4I/fz4Av38A/r7/vz//vj9AgH+/wgGBQoOBAcI/QEDAQEC////AQD9/v38Af8A/wEA//4B////Af7+/fz+AAED/gUF+gH//QEBAwgJBgkJBQUFAgMCAQD//v0A/wD8//4A/v//AAABAgIC/wD//f78//8A////Av4DAAIBBAMD//////7+AgQDBAQF/wcHAAD8/fv//f38///+AP8AAQD8AP8CAQIBAAAD/gECAgABAAEAAQABAgMEBQAC/wACCgADBgIF+/4D/AIFAAgH/wgI/vLzAvb1BAMDBAICAQAAAf///wEAAQAA//////8BAAEB//7//gEAAP8A/////wAAAAAB/wD/AAAAAAAA/wD/AAAAAP///wAA//8AAAD/AAEAAAAAAAAAAf8B/wL/AQEBAQAA/wD/AAABAf///wAAAQD/AP8AAAD//wAAAAH/AAAA//4A//8AAAAA/wEAAf//AAD//wAAAAAA//8AAP8AAAEA/wAA/wAAAP7/AAAA/wEAAP/+AP8B/wD//////wEBAAEAAP//AAABAAEAAQAAAAD/AAABAQEBAQEAAQABAgAAAQABAQAA//8A///+/v7//QL/AgD+Av8CAAEA/wAB/wD//gAB/wD///7//gH//wAA//8AAQAA/v8AAAD/AP8AAQAB/wD/AAD/AAAA/wAAAQAB/wAAAP/+/////wEAAP8A//8BAQD//v///gAAAQIBAv8CAQH//v8BAv7+/f8A//39/QAAAQD/AgH/AAMCAwQCAAAAAP3//v/+/P39/Pz9/Pz9/f39/f//AAABAAIBAgMEBgUFBgQEBAIEBAICA/////8DAwMEAwEAAv8A/v/+//z9/fv7+wAAAAICAgMEBf8AAPj4+P39/gMCAwMHAwAAAP7+//v7+v//AAEAAP7/AAAA/wUEBQAA//3+/v7//////gIBAgUFBgAAAQQDBf0BAw0PEP0YGv73+ezg4fPr6BcYG///AAMEAv3++gECAAEB/f7++/4A/QEEAgH/BAD9/wL/BgECAwABBQD/Af0AAPz8+wUBCwICBP/+AQH++/z8+P/8+wH+/f77+wD8/gL+Af4AAQIAAf3///7+/v7+APz+Avf/AQMCBQUEBwQDBgACAgAAAv7+/wD/AP8AAP//Af/+/wAB//3+/v//AP7+AAAAAAEBAgEBAQEBAP/+//z+/fv8+/r5+ff49/z6+f7+/wIDBwYDBv7+/P8A//8A/gD//v8A/wD//P//AP8B/wAAAQAB/wD/AgECAQUEAwMICPv+Af73+Pv29QH6BQUNCf8BAP0A/QQDAgIBAQIA/wAA/wD/AP8AAAEAAAD/AP7///4A//7+AAAA//4AAQIA/wAAAP8AAAD/AP////////8AAAABAP//AAABAAD/AP8AAAD/AAEB/wAAAAH/AQH/AP8BAAAAAAD//wABAQAAAAAA/wABAP/+/wAAAP8A//8AAAABAAD///8AAAD/AP8AAAAAAQAA////AAABAAEAAP//AAAAAAAAAP8AAAAA/wD+AP8AAP///wAAAP////8AAAD/AP8AAAIBAAAAAAACAQEBAQACAQABAQEBAAECAAAAAAACAAD/AQAAAAEAAP8A//////7+Af0C/wAAAQEBAAAAAQH///4AAP8AAP//AP4AAAD//v4AAAAAAAAAAf8A//8AAAAAAAAAAQH//v//AP8A/wAA/wEAAf8A/wD/AAAAAQMAAP4BAQIAAQEB/v//AP8BAQH/AAL+Af8CAAL+//4CAQH8//////3////9/v3++v39/f3+//7+//7+/v////8AAAD/AAEBAQH//wD+/wEB/f78Af3///8C//4FAwT9AgEDAgH//wMBAf8BAAL/Af8CAv8DAwMBAgEA/wD9/f///gD+/f/+/v8CAQD//gAAAf/8/fz6+vsA/wABAgD//v8BAgIAAAD+/gP9/v////0AAQEBAwH+//4B/wAAAAD/AAECBAgPFRsD/wIC/gH++fvz8fTq5eQBBgMJDQoAAgADAAEA/Pv//fsCAQAB//7+/v4A/wAA/v8AAQEBAgMCAgD//v379vT/+PgDBgcAAgH++/sA/f7//wAA/f4BAAH//f/+/f79/v/8///9Av/9AAD4/f/9BgUJCAsICQwEBQYCAwUAAAD+/f7/AAEAAAEAAAAAAAH///7//gAAAP8DAgMAAf8CAAMCAwICAQH8/fz+/f3+/fz9/v4AAQD/AP7//v79AP3+AAACAQIAAAAA/wD/AQEAAP//AAEBAf8AAQAAAAH/Af8AAP4AAAEAAQIAAgAABAL/BwP9BgD9Afv/Av0FCAUFAA0EAgICAQABAAD//wAAAAAAAP8AAQEAAP7/AAH+/wD+AAAAAAAB////AQAAAP//AP8AAAD/AAAAAAD/AAAA/wAAAP///wAAAP8A/wAAAAH//wAAAQAB/wD+AAAB/wAAAAAAAAD/AP8AAQD/AAAA//8AAQEA//8A/wD//wD/AP//AAD//wABAAD/AQAA/wABAQEBAP///wD/AAAAAAAA/wD/AQABAAD///8AAAEAAAD+//////8AAQH///4AAAEAAQH/AP8AAAABAQECAgECAQEBAQAAAQIBAQABAgIBAAEBAQABAQAAAQAB/////wD/AP8AAAH/AAAA/wAA/wD/AAEAAP/+AQD+/gD/////AgACAAEAAP8A//8A//8AAAD///8AAAAAAQEAAAABAAAA/wAAAP8BAQIC////AAD/AAEA//3///7+//7/AP8BAAD//v79/f7+//7+/////v/+AQD//wD////+AwICAwMCBP8FAQIEAAAAAQECAAEBAAAA////AQEAAAD+//8AAgEC/wAAAAIBAQAABQYGCAcIAwQD/wAA/////Pz9/f38/f39+/z7/fz8AAACAwMDAAABBAUGA/7+/////f38AwMDAgECAwMC+vr6/Pv9AP//AgICBQQGBAgEBQUD+/v++/v8//79BwcHAAEAAwMCCAkI/v79/fz6CBERFB8e//r76eDiy8bHEtzbMTYyDRIP/QAAAgD////+/wID//3+/fv6AP7+Av8AAgICAQIDAAEAAgIB/Pz8AgH+/fz6//4AAP7+AgEDAP7/////AAACAP7//v39/f79/wQA/QUE+gID/gUHCQwRCQoPCAcJAgMDAQAB/v/+/f//AgEBAAAA/////wAA////AAEBAQECAgMDAQAAAP8A//7/+//8/v39/v79/v39+/v7+/v7/v7+AAAAAQICAgAA/wAA/wAA/wABAAEBAAABAgAB/wABAQEDAAEBAQAAAAEB/v8AAAEAAAMCAAQCAQgFAQgH/wYD/foBBAYDBAQKBAIBAQEBAP8A/wEAAQD/AAAB////AP8AAAD+AP8AAQAAAAEAAAAAAAD/AP8BAAAA/wAAAAAA//8AAAD//wAA////AP8A/wAAAAAAAQEAAAAAAP8A/wAAAAEBAQAA//8AAAEBAAD+AP8AAAD/AP8A/wD/AP///wAA/wD/AAAAAP//AAAB/wH/AP8BAAAA////AAAAAAAAAAD/AAAA/wAAAP///wABAAAA///+/////wAA/wAAAP//AAAA/wD/AQEBAAEBAQIBAQEBAAABAQAAAQEBAgIAAgICAgIAAgECAAEAAAAAAAAAAAEBAAH/AP8B/wAAAAAAAAAAAAH/AQD/AP8AAP8A/wAA/wEAAP7//wH/AQEBAP8A/gABAP/+AAD/AP8A/wEAAQAA/wAA/wAA/wABAP//AP8A/////v//AAEAAAEAAv8A/v8A///+////AAEAAgABAAEBAAEBAgQEBQAAAP8A////AP////////39/fz9+vv7/P39/P78/f79/P7+/v8A/wAAAAEBA/8BAQICAgICBAkKCwQDBAYHBwYGBvv8/AQE/f79Bfz9/AD4AAQEBAMCAwICA/39/QL5+vf4+Pz7/AAB/wQFBAMDBAICAwIEBAYCAv//AAEBAAAA//r7+v/+//z9+/7//gEBBfn5+P79/wEA//79/wABAQMDBP0FBgcQDw4dGv8C/wboBe3q7LqythQXFyMlIxMUEgcGA/wB/v/9/gH/AAIBAQACAwAAAf4A//8AAwEDAwP/Af79/P79/QD+/wD9//39+QIAAAEAAQACAgD/Av79/P8EAPj//Pr9AP4ECAYKDwYLEAUJDQMGBgABAv/+//7/AAMBAvz+/gD/AP//AAABAQICAQICAgIDAwIBAf////7+/f3+/f39/P///v//AP8A/wEAAAAAAAABAQIDBAICAgABAAEBAP/+/f7//gEAAf4AAAEAAQEAAgEBAv8BAAAAAQD+AAAB/wACAAEBAAQHBgb8Cv4ODQH5+/78Af78/QEAAQQBAQH/AAACAAH///8AAf8A/wAAAAAAAP8AAAEA/wEAAAD/AP8AAf8AAQAA/wAAAAD//wAAAAAA/wAAAAD//wAAAP8B/wD/AAAAAQD/AP8BAAH/AAAA/wEBAf//AAAAAP8A/gH///8AAAEBAAD//wAA/wAAAf8A/wH/AP4A/////wABAQD/AAAA/wAAAP8AAAD//wEAAP8AAAAA////AQAAAAAA/wH/AP8A//8AAP8AAAD//v4AAQIAAAEBAQEBAQH/AAH/AQH/AAECAAEBAQEBAAABAQAAAQEBAgAAAAEBAgEBAQAAAQAAAAD/AAACAAEAAAAAAAEAAAD/Af8AAAEA/wAAAAABAAH///8AAP7+AP8B/wH/AP8A//8A////AAD/////AP8A/wD//wD///8BAAAA//8AAAAAAAEAAP//AAAAAP4AAAABAAEAAQACAwL//wABAQMA/v/////+///9/Pz8/fz+/vz+///9/f79/Pv+//z//////v8AAP4BAQECAwH//gEAAAABAQEBAgIBAQEDAgIDAgEBAP8A//78/fz///4AAAAAAQD9/v7+/v77+/sCAwIDAwQCAQECBAMHBwUCAwICAQD/AAAEBAMECQkJ/v76+vn5+Pj7+vv/AAAGAgIBAQABAQAB/wH//v/7+vsDAgICAgMDBgMAAQECAQEAAf////4IFBMAAv//AwAABwT48fTp5erd2N4SEA8hIx0fIRoKCgkDAQICBQYBAAH/AAEA/gH+AgH//gAA/v/++/z8+vkCAAMB/gD+/PsAAAAB/wH/AQEAAgP7//3+AwD4/vv5/gMGBgkDBwsEBwoCBQYBAgP//wH/AP8B/wD8/f3+/wABAgIBAgACAQIBAgECAgIDAgL+/v39/f39/f3+/v0BAAEAAQH//v79/Pz9/v0BAQECAQICAgICAQIAAQEAAQAAAgUDAP////8D/wD//wEAAAABAAEAAQEAAAD+AgACAAD/AAABAAD9AgIFCf8A/wAD/gP6AQMA9PUA//4EAQEBAAD//wD/AQABAP8A/wABAAH+//8AAAABAQAAAAAAAAD/AP8B/wH/AAAA//8A/wD///7////+AAAAAAD//wABAAH/AP8AAP//AQEB/wD/Af8AAQAA//8AAAAAAQAB/wD/AQAA/wD/AP8AAAABAAD+AP8B/wD+AAAAAAAAAQEA//4AAAD/AAABAAAA//8A/wD+AgH///8BAAABAP7//wEAAP/+AAD+AAAA///+AAAAAAAAAAD/AQEBAQAA//8AAgEBAQABAQABAAEAAQEAAAIAAAH/AQL/AQECAgIAAQEAAQEBAgEBAAEAAQEBAAEBAQEBAAABAAAAAP////8AAP8BAQAC/////////wD/AAD+/wABAAAA////AAAAAAAAAQAA/v8A////AQAAAQAA/wD/AP8AAf8A//8AAf4A//7/AAEAAQEA/wAAAQEBAP8AAQEB//7+/v/9/P3+///+////AAH/AQIBAv8BAP8AAAQCAf4E/v7+/wD//v8B/wH+AP8DAwQCAQABAQICAgIC/wD+///++vr5//QA/P3+CQkJAgQEAP///wAAAgEBBQUFAgMCAAAABQQFAQEB+Pj5/f7/AAAAAAAABQUEAgIDAP7//v7+/f39AAAABQcHAwEBAQICAP//BAUE///+//4AAAEBBAMEAgIC/wABBwQDAAD9+voFAgYIBgv+AwQCAAUCAwoG9e7xDxIV9O7y9O3u19HX4t7fKColHiAeAgH9////AAACAwMHAP7///38/fn3/vz7APz9/v/9AQAA/v39/v7+AgICAQEC/wIA/wP/+P7++wQDAwcMBgoNBggMAwUI/wEB//8BAAEA//8AAAEAAQICAf//AQEAAwIDAgMCAgEB/wAA/v3+/v7//v3///3+AAAA/wH//////wAAAP8BAwEB/wID/gEAAgECAAECAAABAgEA/wEBAAD/AP8AAP8AAAAA/wAB/wD/AP8AAAEAAv//AAABAAAAAP8BAQEDAQYCAQACAQABAQIB/QQEAPf4BAABAQEBAQAAAAAAAP8AAQEA/wD+AQEBAP8AAP///wAAAP8AAAIB/wD//////v//////////////AAAAAP//AAEA/wAAAAAAAAAAAP/+/wABAQABAP8AAAD/AAAAAAAA/wD///7//wEBAf8AAQAA/v8AAAAA////AAAAAP8BAAH+AAAA/wAAAP///v8AAAEAAAEA//3+AAEBAAD//gD/AP//AAEA//8AAQEA/gAAAP8AAAAA/wD/AAAAAQABAAEAAQEAAAEBAQEBAAEBAQEAAQABAAABAQIAAQACAQEAAQEBAQEBAQAAAQEAAQEBAQEBAQAAAQEBAAAA/wD/Af//AQAAAf8AAf8A/wABAP//AAD/AP8A/gAAAQH/AQABAP///gD/AAD//wEA/v8AAAAAAAD/AQD/////AQH///8A/wAAAAH/Af////8AAQAA/////////v/+/gD/AAMCAf7+Av8D/gH/A/7/Af7/AAIBAf/8/wEA/QAAAP8B/wD+AAIBAv8A/v/+//z+/AD8//8AAP7//gICAgL+/P7+/v4AAP8A/wUFBf8AAP/+/v3+/v///wD///8AAPv7/AMEAwMDAwgICAAA/wICAgICAv////z8/AD//wMDAwIBAgAAAAECAQAAAQMBAv7//Pz8//8B/wMCAgACAv8BAv7////8/QABAQQHBwMEBAUHCPr3CAMFCQQJCwcN7fnx9QQKCgsQDvfv8fTw7tLO1vj0+CQmIwUIBQIDA/79/gMABP78+/r19QH9/f38/AAAAf//AAAAAAEAAP0AAAMDBP8E//sAAPoEA/4GCwUJDQMHCwQHCQQFBgMCBP////7/AAAAAQAAAAAAAAIAAAABAQAAAP////4AAP///v39/v///wD/AP8BAAAAAQEBAQEBAf/+/AEAAP////39/QAB//4AAAIBAQICAwABAAEBAAAAAQAAAAD/AAD/AAABAQH/AAEB//7/AAEA/wAAAAD+Af8BAAIAAwACAwAAAgD/AQH/Af4DBAD09QQBAAD/AAAAAQAAAP8BAP//AAEAAQAAAAAA/wAA/wD/AAABAQD///8AAP7//////wAA////AP8AAAAA/wABAAD/AAAA//8BAQAAAAAAAQEAAP///wAAAP8CAQL///8AAAEAAAAAAAD///8AAP8AAP8AAAAA////AP8A/wABAAD+AP8A//8BAQH//wAAAP///wAAAf8AAAD//v8AAAAAAAABAAAAAP8AAAH/AAEAAP8BAP//AQAA/wEAAP8AAAIA/wAAAQEAAAAAAAEBAAEAAQECAAICAQEBAgICAQIBAgEBAQIBAQEBAgECAQIAAQEAAP//AP8BAAEA/wH/AP8BAQAA/wEA/wD/AAEAAAEBAAD/AAEA/wAAAAD+AP8A/gAAAP8A////AAD//////wAAAAAA////AAAA////AP///wAAAAD/AAAAAQAA/v7//////////v4AAP//AAH/AAABAQD//wABAAEBAAIB/////wEBAQL9AP0AAQEAAAACAgL9/fz+/v3+/f7+/v3+/v3+/wD/AAAD/gP+/gABAAME/v7//v8BAQEDAgL/AgMD//7+/////wACAgECAQIAAAD7//v+/v/8/Pz9/PwCAwQAAP/9/P0BAQH///8BAgECAgL9/v7//f78/vv/AP8BAQIEBAUAAQAAAQH9/f39/f0CAgEAAQECAwICBAT/+wMHAwUCBgcAAgIFBgj3CO8IDPf9+PwGDgsFCQn05+zY1d/39fgpLSUFCAUCAQL6/AD7+vr++voB/v/9/PwA/wH///4AAAEC/wP/AQD7Avv/BAL5BwT8Cg4BCAwCCQwFBgsDBAcBAQMBAQL/AAABAQEA/wD+AP8AAAABAQEAAAD///7+/gAAAAH+/f3+/////v7///4AAAABAgEDAwUB//8AAQIAAQAA/wAAAAAAAAEAAQAAAQL+AQEBAQEAAAEBAQEAAAH/Af8B/wEAAAAAAQD/AP8AAf8A/wAA/wD/AgD//wD/AAAAAAACAwUEBgD//wABAQMABAcEAAD/AP//AP4AAAEB/wABAAAAAAAAAAAAAP//AAAAAAD+////AAAAAAAAAP8AAP8A/wAAAP8A//8AAP//AAAAAAD/AAAB/wD/AAABAf///wEAAQAAAAAB//7/AQIAAP///wAAAAEA////AAAAAP//AAAAAQAAAP8BAAAA/wD/AAAAAAAB/v/+AP///wAAAAAA////AP8AAAAAAAAAAQAA/wD/AAEAAP//AAD//wD/AAAAAAAAAAD//wACAQAAAQIAAAIAAAAAAQIBAAEAAgEBAQIBAQECAQECAQEBAQECAgEBAQEBAgABAQEBAQAAAAAA///////+/wAAAQAB/wABAAEBAAACAP/+AAABAAEBAQAAAAAA/v7/AAAA///+AAAAAAAA////AAAAAAD/AP8AAAD/AAAA/gD9AP8A//8AAAAAAP///v/////+AP8AAP/+AAEAAAAB//7+////AAEAAAAA/wAAAP//AAAAAQEAAwMB//8C/f3/AQEA/v//AAACAAEAAQH/AAECAgMBAwIDBwUHAwQFBgUFAgQFAgQFBAUFAQED+/v6+vv6/f39AAAAAwECAgMD/f79/fz+/P38+fr4/Pv8/v78BgUHBQUGAgIC/Pv9/wH+//8A/v39/v///v7/AgEBBQcHAgID////AQAB/v///f/9AwMBBwcH+vn/AAEC/v7+A/4A//8BAwMGBQgNAwIC//3+BAQI/gr8AgYECAgHBwQGBAME7Obs3QMBHB8YBggHAP8C/Pz9/f37/fz+/vz9//3+AP//AP8BAQACAQEBAAIA/QMD+wUCAAUHBQoOCAoNBAcI/wAC/f//Af7+AQICAQAA//8A/wD/AAABAAEA///+//8AAAD//////wAAAP7//f7+AP//AgICAgEDAQABAAAAAQABAAAB//7//v//AP8AAgEB/gEAAf8BAAACAQEC/wAAAQEBAP//AAEA//8BAAD/AAEAAAAB/wD//wAAAP//AAEA/wAAAAACAAMAAQAEA/8HAQECAAUGBAAAAP8A/wD/AAAAAQEB/wD/AP8AAAAA/wEA////AQAA/wAA/wAA/wAAAP//AAD///////8A/wAAAP8AAAEBAP//AAAA/wD/AAEAAP8AAAEAAAABAAEAAP8B/wD/Af8AAAEAAAAAAAABAQD///8AAAEA//8AAAEAAP8AAAD/AQD/AAAA/wD/Af8AAP8A/wD//wAA/////wAAAAD//wABAf8A/wH/AP8AAAD/AAAAAAEBAf8A/wIBAP8A/wEBAAABAQEAAAABAAAA/wEBAAACAQIAAQEBAQEBAAECAQEBAQABAQEBAQEBAQEAAQEAAQEAAAAAAP//AP//AP8A/gAA/////////wAAAAABAAD/AQAAAAEBAAEAAP8A/wABAgD//v8AAAEAAf8AAAEAAP8B/v//AAAB/wEB//8AAgEB///+AP///////////wAAAAAA//8AAAAAAP8BAAAAAP7+/////v///wEAAAEBAAEAAf//AQEBAgICAP7//gECAAUDBAIBAwEBAQEBAf7///39/QEB/wMDA/0A//39/P78+wD4AAEBAgICAAABAgMDAwICAwMDAgEAAf8A//j8+Pj39/n5+QABAAUEBfz8/ff48wEA/gYFBvz8/Pv7/P7//gYGBwICAf8DA/z7+/4C/gECAf/+AAICAQD/AP0B//f39/v7+/7//wIBAPv9/gD/AQIDBQQF//z//gcL/wUF+f36+QIEBPwGBwYGCgcJCfLkA+/m7AD29RIZEwgNDwMGA/v7+vv7/f38/QD9/gH////9AQD+AgIFAwEFA/4FBP4FCQYMDggJDAUGBwECAgACAf////39/gQCAv7//wD/AP8BAAAA////AP8AAP////79/f7//gEAAAD/AgMDAwIDAgIBAgECAgEBAf7+/f8B///+AP8BAf//AAABAP7/AAL+/wAB/wABAQAAAQH/AP//AQAAAP4AAQAAAP8BAQEAAP4A/wAB/wABAP//AAAAAAD//gAAAAACAgD//wEDBAEAAgADBQT//wAC//8AAQAAAP8A/wH///8AAAD/AP4AAAAAAP////4AAP8AAAAAAP////4A/wD/AAAAAAH///8BAAD+/v8BAQAAAAAAAAAAAQAA/wD+AAAB////AQAAAAEBAAAAAAD//wAAAAD/AAAAAAD/AAAAAAAB/wD/AAAA/wAA//8AAQD///8AAAAAAP8B///+AP8A/wD///8AAAABAAD/AP8AAP7/AAEA/wAAAQAAAAH/Af8AAAH/AAECAAEAAQIBAAEAAAABAAABAAEAAAABAAEBAgICAQEBAQEAAAEAAQEBAQEAAQAAAQAAAQAAAAAAAQAB/wABAgH+/v///wD+/wAA//////8A/wAAAQABAAL/Af7//gAAAQD//wAB////AAEAAP//AAD///////4AAAABAQD///8AAAEA//8AAAAAAf///wAAAAAA//8AAAAAAAD+//8A/////wAA////AP4A/wAAAAD/AAAAAAAAAP8AAAEDAwQDAwACBAMEAwQA///6/Pz9/PwAAAEEAgADAwP///79/f79/v3/AP0AAf8CAQEHBwcFAwYBAwP9/f77+vv4/v39/fz+//7+/f7+//4BAQD/AAH9/gD9/fsCAgIAAQD8/v38/v0AAAAHBgcCAwL7+/oC/v8DAwD8//wBAQEAAAH6+/kA/wACAwICAQL/AP8FBAX/AAACAwP8//z9/PwCAQH/AAMCBQkDAQMBAwMBBQUFCQoECgwHDQ0FBwb04gP17esBAu0RAgIE/gf7+/38+vz9+/z+/AD//v/+/gEAAQIB//7/Af8AAwoGCwwCCQsECAgBAwL+//0C//4AAAD///78+/wBAQH+AP8AAAEBAQAAAAH/AAD+/v79/v7//v4CAgEDAwMCBAMEBAMBAQIAAAAA/wABAAAB/gAAAQAAAAEAAAH///8B//7+/gECAgIA//////4BAQIAAP8AAQEAAQEA/wAAAAD/AAD/AAEAAQAAAAAAAAAAAP8AAQIA//8A/v4CAgAAAgD+/wD/AQEEAAAA/v8AAgD//wD/AAD/AAAA/wD/AP/+/wD//wAAAQAA////AAD/AP///wD//wAAAf///v8AAAD//wAAAAAA/wAAAQAAAAAA/wAAAAD/AQABAAAAAP8AAQD//gAAAAD/AAABAAD/////AP//AAAA/wAAAP8AAAD//wAAAAEAAP4AAAEA/wD//wD/AQEAAf4A/wD/AP8AAAH+AAAB////AP8AAAH/AAAAAf8B/wH/AP8BAQD/AAIB/wEBAQD/AAEAAQEBAQECAQEBAQECAQEBAQAAAQEBAAABAQD/AQEBAAAAAAEBAAABAAEAAAH/AQABAAEAAAAAAQEBAAD/AgAA/gABAQAB/wD/AP8BAAAAAAACAAD+AAEAAQAA/wAA//7/AQAB/wH+AP7/AAAAAQABAAD/AAABAAD/AAAAAAD/AP8AAAD/AAH/AQEB/////v8AAQD//wD/AAD/////AAAAAAEA/v7/AQABAQEBBAUGBAUFAAAA/P38/v7++fn4/f3+AgIBAgEB/v79+vr8////////AgIB////+/38AAD//f38+PX2BQcHBAYGAwIE/f7+AQD/BQUF/v/+/QH8//8GAQAA9/j4+fn6BQUFCAgIAP/9/wAABQUF//7/+fn49PX3BAMDBgcB/fz/+/z7/v7/////////BQYH/v7//f77BAUEAQIBAgIB/Pn4+/z7AQAA/f//AAICAP8C/wIDAAIEBAgG//8ABQoNARD+AwoKBQ0K8+MK9/Hu//P1A/j6/vz//v7+/v7+/v0AAAECAgMFAQUE/QIBAAUFCQ8QBhITBAgL/gAC/P3/AwH/Af3+AgD+/wIBAQD+AQEA/wEBAQD//QD///8A/v////7+/wAAAQIBAQICAwQDAwMCAgIDAQIB//7//wH/AP8B/wEB/wAAAAEAAQEB/////v//AgAAAP////7+AgID////AQEBAP8B/wAAAQEBAAAA/wEAAQD/AAAB/wD/AQECAAH/Af8A/wD//wEA/wEA/wL+AP4BAP//BAABAAEB/wAAAAD//v4AAAAAAAH//v8AAAAA/wAA//8AAP///wAA////AAAA//8A////AAAAAAAAAP///wEBAAD/AP8A/wEBAQD/AAAAAf///wAAAQAB/wD/AAAAAAAAAP7//gEBAAD/AQAA/wEAAAD/AP8A/wAAAAH/AP8A//8AAP///wD//wD///8AAP4A/wD///8A/gD/AQAB/wAAAAABAAH/AP8B////AAAAAQABAAAAAAD/AAABAAEAAAH/AAECAQEBAQACAQEBAQEBAAAAAQAAAAAAAAEAAQEAAAEBAQH/AQEDAAEBAAEBAAAA/wEBAQAAAAAAAAEAAv///QEAAP4AAQAAAAAAAAD/AAEAAP8BAgH///8A/wAA/QEBAP7//wH/AAACAQH/AP8A/wD///7//wAAAAAAAP//AP8BAAAAAQH/AP8AAP8A/wAAAP8AAP//AAAAAgEEAQMBAwICAv/+/wEBAf///wAAAPz8/Pz8+/39/f///v7+/v3+/fv9///9/QIBAQMBAf7//v////v7/f39/Pv8/QMCAQMDAgIEAwQCAgH+/v7//P/+//8CAP/8//4AAP7/AAAA/wABAgYGCAgIAwkJCQIBAff49vr6+fr6+vj5+P/9/gQDA/4CAf39/QAA/vr6+Pz8/QIDBAYFBf///f39/wQEBP8AAPv7+gAAAPj5+AEBAQYGB//+/v3+AP8B/f8A//z8/AIEAwMEBQMDBQYGBgYNDAgPEAUUFO3k4fLo6Pvz9fz5+QICBAMFBQEDBAUHBwQHCAEFA/0EBAoTEQcVFQQLDP8CBf3+/v/8/gAB/wEB/v/++wAB/AICAwICAv8AAQEBAP7+/v////////7+/gIEBAUEBQICAwIEAwIDAwAAAQD//wABAAD+AP//AAABAP8A//4A//3+/v///QACAgH///0A/wIC/v7/AQEBAgAAAQAA/wAAAQAAAAAAAAL/AP8CAQAAAQEAAQAAAQABAgAA/wAA/wECAP///wEBAgAB/v8A/wT///8AAP//AP8AAP//AAABAAH/AAAA//4AAP8AAQEA//////8AAAAA////AAAAAAAAAP8A/wH+AP8BAP///wEAAQABAAH//wEBAQAAAAAAAQEB/wD//wAAAAEAAQD///8AAP8A/wABAP////8AAAEA//8AAAAAAf//AAH/AP8AAQAA/wAAAAAAAAH/AP8AAP8AAP8BAAAAAP8A/wAAAQAA/wD/Af8A/wD/Af8AAP4B/wL/AQEAAf8BAP//AAAAAQEAAAEBAQECAQEAAAH//wD/Af8AAQIBAQEAAQEBAAEBAQICAgIBAQIBAQEBAQEAAAAAAAAA/wABAQD///8AAAH///8A/wD/AAAA/wAAAAD/AAEB/wD/AQEB//3/AAEA/wEBAQEA//8A/wAAAAAA/wH//wAA/wAA/wH/AP7/AQEAAAABAQEA//8AAgAD/wMAAQECAQIBAQH///3+/wD9/f3+/v7//v79/f3+/v0A/wD////9/v7+/v3//v3+/////wAA//8BAAD+/v38/Pz9/f7//v79/v3+/f7/AP8AAwMAAAH+/fn7+fj+/wAHBwgEBQYDAgUCBAMHBAX////9/v39/fwA/wEAAAD9/v709fT7+/v8/Pz8/PwEAwUAAwAFBQUCAgICAQD+/v8EBAQCAgL//wD+//7++/4BAgMCAgIEBAMBAQH8/PsNDA4AAQD+/v4DAwT7AvkAAAb08fz/BQUABAUBBQYCBAT/AgEDBAgGEgIQDQ0DEBADDhHt4+L+8PADAgMABAUBBAMABgf9BAQCBwQGDQwHEhMFCwwBAgUAAP///////wH//QD7/fwAAf0BAAECAwIDAwQBAQEAAAD//wD///4CAQICAQEDAgEBAQADBQMCAgIAAAABAQAAAAEBAAD/Af8AAAD//wD/AAEA/wAAAP///wAB/wD//v4BAwEA/wIAAf8AAAAA/wD/AP8AAQAAAAABAAEAAAAB/wH/Af//AAECAQD/////AAAAAAAB/wECAAH9AAIAAAD///4E/////wD9AP/+AAEBAQEAAP8A/wAAAAD/AAABAf7+/v///wD/Af8AAAAAAAEA//8AAAAAAAD/Af8AAAEBAAD/Af8AAAEBAAH//wABAQD/AP8A/wEBAP///wD/AAABAAD/AQAAAP8A/gAAAAAAAP//AAAA/wD/AP8A///+AAAAAQD/AAAAAAEAAf8A/wD/AQAA/gAAAAABAAD/////AgABAAAA/wD/AAD///8BAAH/AAD+AQACAP//AAEAAQD/AAAAAAABAAAAAP8BAAIAAQEBAQIBAAAAAAEBAQIBAQIBAQEBAQECAQEBAAABAQAAAAEBAP8AAQEA/wAAAAEBAQIAAQAB//7/AP7//wAAAAAB////AAABAQAAAAECAgAA/gIAAP4A/wD/AAAAAAAAAAABAQEAAAH/AP//Af8CAAD/AAAAAQAB/wH//v3//v7+/v7+/v/9///+/f/9//79AP8A////AP/////+///+AP8A/v7+///+/v79///+//7//////v7+AP8A///+/vz9/v7+///+/wD/AQMCBAMFAAAB+/v5/Pv5BAUFBQYIAwQFAgMDAgMDAgIDAwQDAP//AP3//Pz++vj7+/z8AgEBAwICAQYGBgYGAAEBAQAAAgMC//8A/v39/f39/wD8Af4BAwQFAgEB/Pz8/f7+BAMDAQEBAQICAP/+AgMEAAAA////AAAA/fz7AAEAAQACCQwN/v8L/wD//////f///v8AAwIAAwYH/gEDChITAwIE/v//7gQFBgMDAQAA+vz7+wEDBgkIBA0LCRIQBg0OAgUH/wED/v0A/v/9AgL7/wAAAQACAgICAAEB//4A/P/8AQEAAQEBAQICAgECAQIBAQEAAwQEAwMEAwMDAgICAQAA/wD/AQAA/wAAAQABAAEBAAEBAAEAAAEAAAAAAAD+//7//wEBAP4B/wD9AAIBAAD/AAD+/wEBAQAA//8AAAAAAQEBAAD/AAAAAQAA////AP8BAAD///8AAAD/AAABAAH/AQAA//7/BAAA/v/+AAAA/gD/AQABAP8BAAD///8AAAH/Af7//wAB////AQD///8AAAD/AAEBAP//AAAAAAEBAQAAAAD/AAABAQAAAAD/AAEBAAAAAAD/AAAA/wAAAQD//v8A/wD/AAAAAAAA/wD/AAAAAP//AAABAAD/AAABAAEAAP////8BAP///wD//wD//wAAAP8AAAAA/wAAAP8A/wAA//4AAAEAAP/+AAABAAAA/v//AQEBAAAAAAEBAAAA/wABAQAAAAEB/wABAQABAAEAAQEBAQEAAQEAAQEBAAIAAQEBAQEAAQEBAQEAAgABAf8AAQEAAgEBAP//AP8AAf8A//8A//8A/wD///8AAAAAAP8A/gAA/wAAAP7+/wAAAP//AAEAAQABAQD/Af4A/wEAAwICAQD///////8B//8A/wD+/v3+/f/+/wABAP79/f8AAP///wAA//7+/////wD/AP8A/////gD/AP/+AAD/AP///////wIBAv4A/v////////7+/f/+/wAAAP////8AAP8BAAAAAgQEAwAAAf7//vz7+////wkJCwQGBf7+APz7+v7//gcJCAMEBf38+/r7+vr6+/z7+/39/gIBAwUEBAMEA/39/QECAf7+//7+/f39/v39/QMCAgEBAgIDBAMDA/7+//z7+wEBAgUFBAQFBAMEAwIBAf3/AP79/QEBAQAA//3+/gD+/gAAAv3+/f3/////AP8A//39/QIBAgH9AP8A//7+/fv7+v39/AMLChMfHwULDPXz8vv4+P749wQFBgIKCAYQEQYNDwUJCf4AAv/8/QICAQUCBgAAAv///wAB//7//gIAAv7/AAEA/gABAgEBAQEBAAMCAgIEAwIEBAQEBAEDAwAAAQD//wEBAQD/AAACAQD+/wAAAAD/AAAAAAAAAAD/AP8AAP/+/wEB/wD+/wD//v8AAwEB/wAAAP8BAAD/////AQEA//8BAAD/AP8BAAD+AAABAAD/AAABAP///////v/+/////wD+/wAA/wAAAAT//gD/AAAAAQIA//4AAAEA//8AAP8AAAH/AP////8A////////AAAAAAAAAAD//wABAAABAQEAAP8A/wAAAAAAAQAAAAEAAAD//wAAAAABAQH/AP8BAP//AAAA/wAA////AAAAAAAAAAAA/wAAAP8B/wEAAP///wAA//8AAP///wAA/wAAAAAAAQAA//8B/////wEAAP8AAAEAAAAA/wH/AAAAAAAA/wAAAAEBAAH/AAEAAQEAAAIAAAIAAAAAAAAAAQICAQABAQEBAgABAQABAQEBAgICAQIAAQEBAQEBAgIAAAEAAQEB/wEBAgIA/wH/AQAAAAEA/wAAAP8AAAABAAH/AQEBAP//AAAB/wD+AAABAQAAAAAA/wABAQEAAAEAAQAA//8B/QEBAAD//wD//v7+/v7+//7///7//v8AAP7//////v7//wD/AP8A//7//////wD/AAAAAP7/////AAD/AP/+AP4AAAD///7/Af8A/v4BAAD//wD///8CAgP+Af7//v7//wACAgMCAgUBAgH+/v39/Pz/AAAEBAQCAgH+/gD8+/wAAQEEBAMCAQH19PT9//4AAQECAgL//wAAAAH////9/vsAAP/+/v3////4+vr9/fwCAwL+/P4AAQD+AgIBAgL8/Pz9/v0BAAEFBAX9/f0GBwb+/v/39/YBAQD9/f7//wAEBAQEBQX+/v///wAFBAL8/v37/Pr9/P38/fwA//8DAwUCAgIFAgf/AAD+/f/+/gH//wADCAoQGQX+BQT46+r8+wMCBgMCCQkFCw3+AQP+/wMAAgMAAQL/AAD9//4DAAL///8BAf8BAQMAAQAAAf8AAAEBAQABAQEDBAUDAwQDBQMBAwMBAgMCAgEBAAAAAAD/AP8AAAAA/wAAAQD//gAAAAAA/////wD+/wD//gH+/gABAQAAAP4CAwEA//7+/gIBAv4BAAEBAQH///4AAAIAAP8BAQAB/wD/AAEA/v8AAQD////+////AP////7/////AP8A/wABAgAE/wAAAQAA//4A/wEB//7+AQEAAP8A/wD/Af8A/wD//wAAAAAAAAD/AP8BAAD/AAAAAAEB/wD/Af4BAAIAAgAAAP8AAAH/AAAAAQAB/////wAAAAAA/wAA//8AAQEA/wABAAAAAAD/AAAAAAEAAP8AAAD//wD/AP8A/wAAAAAAAAAAAAD///8AAAD/AAAA/wAAAAD//wD/AP7//wAAAAAA/wD/AQEBAAABAAAAAAAAAQAAAP8B//8AAQH/AP//AQEBAQAAAAACAAAAAQABAQECAgEBAgEAAQABAgEBAQACAQABAAIBAQABAQEBAAAAAAD/AP8B/gAAAAD///////8AAAEAAQEB/wABAf/+/gD+AQEAAP//AQAAAAL///8A/v/9/v3+///+//7+/v/+//4A/wD/////AP////8AAAD+AP////////8A//////8AAAAB///+AAD/Af8B/v4A/wAA/wD//v/+AAD//wAAAAAAAP4A//8A/wAAAQEBAQEB///+/v7/AAD/AgMDBAME//7//f77//7+AwIC/f7/Af8B//8A/v79AQEABQMG/v7/9vPx/v/+AwQDBQYI/AABAAAAAQECAQEBAQIC/wD/+Pr4/Pz9AAAA//7++v38/f39AwECAQcGAwAAAwMDAwQE/v39+/z6AgME+/38/v39+fj49vb1BAQFCwwNAAEB/Pz9/Pv7/v7++fj4/P39AgIB/wAA/v7+BQUGAAEC/gAA/P38AQEBBQYHBP7/+/r7AgUC/wMCBAgI/AAA+/37Av8EBAgGAwMEAAEC+vz7AP/9AQMCAQAAAv0EBQQGAwQE/QECBQUBAAABAf3+AwUDAQEEBAMEBAQEAgIDAQACAQACAQEB/wABAP//AAAA//8AAQEBAQAAAAAAAQECAQD/AAABAQABAQABAP///v7/AQL/AP8BAP4BAQH+Av/9AP8BAAABAAAC/wAAAAD/AQAB/gAAAP8AAQD//wEA//8A/wAA/v/////+/wD/AAD//wEA/gEB/gAABAD//wAAAP8AAf/+/wAAAf/+/gEBAQAAAP4A/wH//wAAAP8AAAEAAAAA/wD/AAABAAAAAAD/AAACAAEAAf8AAAEBAAAAAAAAAf7//gAAAQD/AAD//wABAAAAAAD/AQAA//8A/wD/AAEBAP/+AAEAAP8AAAAA////AQAB/wAAAAAAAAD/AQAA/f7//wAA/wH//gD/AP///gAAAP//AAAB/wAAAf///wABAQAAAQEA////AAEBAAD//wEAAQEBAQABAAAAAAAA/wEBAgEBAQEAAAAAAQEBAQECAQABAgABAAAAAAH/AP8AAAAAAAABAAEBAP///wAA/wAAAAEBAAAAAP/+AAAAAAEA//8B/gH///7//v///v8AAAD+//7+/v7+/P8AAP/+/wEBAP///wAAAQD//v////8AAAAA/wH/AP8AAP8AAP8AAP8AAAAA/////wH/Af///v8AAAAAAAD///7//wAAAP//AAEAAQABAQECAP3//wD+/wABAAABAAEAAQMDAQICBAIBAv/+//3+/P/+/v79/v8A/wIBAwACAvz9/QECAAcHB/v7+/n4+f///wEBAQH+Afr4+QABAAQFBv8B/v//AP7/AP79/v8A/wIDAv7+//7//v38/f////wA/QX/AAMDAwD/APv9/Pv7+wMDA////vv5/f7+/wMDBQYGCAMDBAcGCP3//v///wABAPb49v37/AcIBwICBfr6+gQEBQIBAv4A/wIBAvn6+QMCBAUFBAIEBAL/APz5/vz8/f79///9/vj39wABAQEAAP8A/wD+//39+/7/AAP+AwEBAwL/AP7/AAT//wMDBP//AAMDAwMEBAEBAwMEBAQGBQQEBAEBAQAAAQAAAP/+/wAC/wAAAf///wEBAQAAAAD//wABAQD+/wAA/wAAAP/+/v7//v7/AAAA/v/+//8BAf//AQD//v//AgD//QD/AwAC/wAAAP8A/wABAAD/AAAAAAAAAP8AAP8AAf8AAAEA//4AAAD/Af8AAP///v4B////AAT+/wEBAP7/////AAAA/wAAAQEA//8AAP///wD/AP8AAAD/AAAAAAAAAAAAAAAAAAEBAP8AAQEB/wABAgAA/wEAAP8AAP////8AAAD/AP8A/wAAAf8A/wABAAH/AP7/AAEAAAAA/wD+/wABAP/+AP8B/wAAAQAAAAAA/wAAAAD///8A/wD/AAAA////AP7/AAAA//8A////AAAAAAD//wEAAf8AAAEA//4AAAAAAAAAAQH//v//AwMA/wAAAAEBAAEBAQABAQAAAQEBAAAAAQEAAQEAAQIBAAEAAAAAAQEAAQAAAAAAAf//AAAB/wD+AAAAAAD/AAEBAP8AAAEBAAAAAAEAAf3///////7///3+//7//v///v//////AP8AAAAAAAAAAAD///8A///+//4AAAABAQEA//8AAAH/AgAA/v8AAQAA/wAAAQD//wAAAAD/AP8AAQEA/v8A/wD9//8AAAH/AAABAf8BAAD+AAH/AAAA/wEAAQICAwECAgMAAAD/AAAA//78+/z9/v7//v3+/v0BAgEBAAH/AAAAAAAGBwUDAwD5+Pf8+vsAAgICAAL/AAD9/fsAAgMCAgP+/fwBAQH+AAAB/wADAwMAAQIAAP/8/P3/AwMFAQL7+/oDAwQAAAD5+Pn+//4BAgL////7+vr+AP8DAwQICAcBAQIGCAn+/v7+/wEDAwX///3+/v0CAQECBwYAAQL+/f7+/f7///77//v9/f0AAAD9/v4BAQEJCQsBAfwBAQAAAgD+/wD//v/5+Pj08/T6/PsM8vICBQgHCQoA/gH///8AAgMCAwIBAQMA/wH////+//4BAAIBAwIDAwMEBAQEBAQEBAMBAQEBAQEAAQH/AP8AAAAA/wH/Af8BAAH/AP8A/wAAAQEA/wABAf8AAP//AAD/AAD+//79/v3+/v0AAAAAAQEAAAMCAf/+//4CAAAAAQIA/v//AQABAv8A/wAA//8BAQL+AP8AAAAA/wD/AAD+Av8A/wAAAP8AAAAAAAEB/wH/AAAE/v/+Af//AQD+/wAAAQEBAAD//v//AAD/Af8AAAEA/v//AQAA/wEAAQAAAAEBAQEAAAAAAAAB/wAAAP8AAQEA/wD///8AAAAA////AAAAAQAAAP8AAAD///8AAAD//wD/AQAB/wD/AAAA/wD/////AP//AAAAAP//AAAAAAAAAP8A/wD/AP8AAAAAAP8A///+AP8A/wD//wD/AAAAAP8CAAD/AAABAAAAAAAAAAAAAAEAAAABAQAAAAEAAQEAAAAAAQECAQEBAQAAAAEBAAEAAAEAAAEBAAEAAgEBAQABAAABAAAB//8AAAAAAAAAAAEAAAAAAQD/AAD///8AAP8AAAD+///+/f38/v77///9/v/+//8BAQECAQABAAABAAD+AP/+AAEA/v8AAAAAAQEAAP8A/wAAAAAAAQEAAP//AAEB/v//AAEBAP8AAQEAAAD+//8AAP//AAABAAH/AP8A/wD/AAAA/wACAAAAAAAAAAD/AQECAAEAAQEA//7+/f39/f39AP7/AAAAAQEBAQMDAgMC//8A/Pz9AwQEBwcI9/f1+Pb2AQEBAQICAAEBAP8A//3+AAEAAP7+/f7+AQIBAgIDAgMDAQIC//////39AAIBAgICAQEF/v39AQEG//8B+fn5AAD/BAQEAP/+///+/P39AwIBAgEAAwMDAgMFAP8B/v/+/Pv7+fn4AQIA/Pz6+vr4AgIDAwMD9/v8/Pv7BgUF/f39/v/+/Pv9AAMBAwID+vn5AAIBAgAA/vz89/f18vPyAAMEERYWBggGAgME/Pv8AQL8BAYGBgUGAgMFAwQEAgIDAgQDAwMEAwQFBQQFBwcHBAQEBQUFAgMDAQACAAEB/wAAAAAAAP8A/wD/AAAAAf8A/wEAAQAAAAEA//8AAQD//gAC/gAA/v/9/f/9/v7+AP79/v7+AQH//v0AAQEB//8AAAAB//8CAAD+/wD/AgEDAP7+/wEBAAEBAP//AAH///8AAP///wAA//3/AP/+/wEA//////8A/wD+AAAABP/+/gAA//8A/wAAAP8AAAAA/wAAAAD/AP8A///+AAAB//8AAAH/AP8CAQEAAAD/AAABAQAAAP8AAAABAP8A/wD/AAD///8AAAD+//8BAf///wEA//8AAAAA/gEAAf8A/wAAAf8A/gD/AAEAAAAA//8AAQH/AQD//gAAAP8AAAD/AP8A/wAA/v////8AAAAAAP///wEAAAAAAAAAAP8A/v//AQAB/wAAAAEAAf8A/gH/AQECAgEBAAEAAAEAAQEBAQAAAAEBAgEBAQEBAQEAAQEBAQEBAAEAAf8AAAEAAQAAAv8AAQH/AQEBAv///wH/AAAA/wD/AP4A/wD+/v8A/v/////+/QEA/wIBAf4AAgIBAgD/AQAAAAD/AP7+//7/AP7/AQD//gD/AP8BAQAAAAAAAAEA/wAAAf///wAAAf8A/wEAAf8A/wABAAAAAP//Af8A//8BAf///////gABAAH/AAD/AP8AAP8AAAEBAQEBA/8BAAD//v79/fz+/f/+/QAAAQEBAP//AAIBAP4AAP7+//7+AAcJCgMEA/b18/v6+QECAQAAAAAAAAH//////wICAP3+/f/+/wABAQIBBAICAf39/f7++wAAAAAAAQICAwIEAwABAQMDAwABAPz7/AECAQEBA///AP39/P7+/gAA/v3/Af/7+f39/gUHB/38/fv8/P39/f7+/gIBAPr8+fb39QMDBAQCBfj4+QcHBv38/Pn5+QICAgABAQIBAf8A//3//gP/Avn7+vn39fLw8Pj6+QkMCw0EDgQGBgUHBwUFBwcJBwYGCAQEBwQGBgMEBAUEBgUGBgQFBQQEBAICBAICAgABAAAAAQAB/wABAP8A/wEBAQD//wAAAf//AAEA//8AAQIAAAAAAAAAAAEBAAAAAAH//////v/+//79/f79/P3++/39+wICAQICAP3/AgD+/gIC/v7+/gIBAAABA/8A/wACAAD/////AgEA/QABAQAAAAAAAAABAP///v///wD/AP///wH/AP8AAAABAAQAAAD+//4BAP//AAACAQMA//8AAP////4AAAD///8CAQH/AAD/AAECAAAAAAEAAAD/AQABAAD/AAAA/v8BAAH+//8BAf///gAAAAAAAP8AAAD/Af8A//8AAAD+AAABAAH/AP4A/wAAAAD/AP8A/wAAAAD/AP4AAAAAAAD///8AAAD/AP8A/wD/AAAA/wD/AAAAAQD//wAAAf8A/wD/AAAAAAAAAAAA/wEAAf8AAP8BAAAAAP8A/wABAAAAAAEAAAEBAQEAAQABAAEAAQEBAQEBAQEAAAD/AAECAAEA/wEAAv8BAAIAAAH//wABAAH/AP8A/wD///4BAAD+//4AAP0A//8BAQAAAAEBAQQA//8AAP///wD+//8A//8AAP8BAQEB////AAABAQAA/wAA/wH/AP8AAAEAAP8AAAD/Af8A//8AAQABAAEA////AAAAAQABAgL//v4BAgH//wAC/gD9AP4AAAABAQABAAEAAAH9/v7+/v3//////v4AAAAAAQECAAD/AAAAAAD//wEAAAD/AAILDAv/AP708/L//fsCAgEB/wD/AP///wD/AP8AAQH9/Pz//v0BAAACAwUDAwP7+/v//v8AAQD//wABAwL//wH8/P8AAAAAAAH+/v4CAwMEAgX+/v77+vn+/v78/fz9/f0CAgL/AgICA//49/b8/Pz8/PsAAAH+//8DAwL9+/sHBgf8+/v6/PoBAQABAAABAgEBAgEAAgABAQEAAAD9/f0GBf/6+vn39vX59/X9/v0ICQgDAgECBAMFBQYFBgcFBgcHCAoGBgcFBQkGBgYEBQQFBAYDBQQCAwQAAQIBAQAAAAD//wAAAf///wH/AAAA/wD/AAAAAAAAAP8AAAAA/wEAAP/+AP8CAAL/AP8AAQAAAAEAAQAA//////8A/v////7//v7//v3+AAEAAAEB/fwAAAIAAf4C/v7+AgEBAf7+/wAB/gH/AQAAAAAAAAEBAAD/AAAAAQD+AAAAAQEA//8A//8BAQH/AP8A/wH/AAAEAQD//////////wH///8A/wD+Af///wD/AP8AAAAA//4AAQEAAQIBAAAAAAH/AAABAAAA//8AAQAAAAH//wD/AAAA//8AAAH/AP8B//8AAQD/////AP8AAQEBAP8A/wD/AQAA/wEAAf8AAP8AAAAAAAD+AAABAP///wABAAAA/wD/AP4A/wH/AP8A/wD/////AQAA/wD/AP//AP8AAQEB/wD/AP8A/wAAAP4AAQIAAAABAAAAAAEAAAEAAAEAAgEBAQEBAQABAQIBAQAAAAEAAAAAAAAAAAAAAAAAAAEAAf8BAAEAAAAAAAD//wAA////AP//AP///gEAAP/9AAH/AAD//////wAAAAAAAQEBAP8BAAH+Af8B/wH/AQIB//8AAQAB/wAC/wD//wD/AAD///8AAQEAAAAAAAAAAP8AAP8AAAD///8A/wAA//8AAAAB////AQEC//7/Af8C/wL/Af4B/wAAAAEA/////f39/v7+AQEBAAD/AAEBAP//AAABAAEAAP8AAAEAAAAA/wEBCwsJ/f3+9vX1AQD+AAECAAD+AAAAAP8AAQIBAf7//Pz8AAD/AQICAwIEAQIC/Pv6/f7+AAABAgICAQEC//7//QD8AQICAQICAAAAAwQCAAAB+/z7/fz9/v////8AAAABBAUG//7/BAQE+Pn6AwMD/wD/AAECAP//AwMDAQEA+/39BAQEBAQB/f7/BgYH/v79AAABBgcI///+/P7+/v/+AgMB+fr5+Pf2/fv7AQEBBwcGAAAABAUDBQUGBgYHBQYHBAUHBQUHBAUGBQQIBAYGAwMCAwMEAQID//8AAAH/AP4BAAEAAAAAAP8AAgEA/wABAAD/AP8AAAEAAP8AAgEB/wAAAP8AAAIA/wD/AQACAAAAAAAA///+/v///v7+/v/+/v7+//3+//7//wAAAAH+Av8C//7+/wD//wP+AP8AAP4AAAEAAAEBAAECAAH//wAA/wD//wEBAQAA//////8AAf///wD/AP//AP//////AP8ABP/+/v//AAAA/gAA//7//wH///8AAAAA/wAAAAAAAQAAAP8AAAD//wEBAAD/Af8A/wEBAQAAAP8BAAH/AP4AAAEAAAAAAQD/AP8A/wAAAP//AAAAAAAAAP///wAAAAAAAP//AAEAAAAA/wAAAAAAAP8AAAD//wAAAAAA//8AAAD+AP8A/wD/AP8A/wAAAAD/AP///gABAAD/AQAA//////8AAAABAAAA//8BAQAA/wAAAQAAAQAAAAECAgEBAQECAQEAAAAAAAAAAAABAAAAAAAAAAAAAQABAAAAAQAAAf//AAEAAP8B/gD/AAAAAAD+//4A/gEA/wD+//8A/wD/Af//AAD//wAAAAAA//8A/wAAAf//AAAA/wAAAAAAAAD/Af8A/wAB/wD//wH/AP8AAAAA////AP///wAAAP8AAAAAAP8AAAD///8A/wAA/wD//wAAAP8A/wABAAAA/////wEAAQECAP39/f/+/v8A/wABAP7+/v8A/gAAAf4AAAEBAQD//wECAf//AAEDAgoICPr6+fj49wAA/wAAAv8B/v8AAQH/AQAB/wAAAP3//gEBAQECBAMDA/7+/fr7+v///wABAgICAQEBAf///gAAAAABAQAA/wEAAP///v78//3+//3+/f//AAEBAgEFAAL+Av7+AAAEAAABAgAA/wIBAQEDBAIB/vz8/QMDA/7+/wUEBQECAwEDAgQA/wAAAQMCAf79/gMCAvv8/gUEBPz9+wICA/39/QMCAwMGAgAA/wABAAICAgQEBQcICAQEBQQEBQQFBgMEBgMCBAIEBAMEBAMDAwAAAQD/AAAB///9AAAB/wAAAAAAAQAB/wD/AP8A/wAAAAAB/wH/AAAAAf7//gEAAf8BAQH+AP8BAAAA/gD/AQAAAAD/AP///v////////79/f3+/f3+/QL/Av8BAP4BAQEBAf7/AgD9AQIA/wACAQAAAAAAAgAA/gAAAgAA/wABAf8A////AQAA/wD/AP8A/wAAAAH/Af/+AP///QABAAT+AP//AP0AAP8A/v4AAAAAAQEBAAH/AQABAAAAAP//AAABAAH///8A/wIAAf8AAAEB/wEAAAEB/wD/AAACAAD/AAAA/wAAAP4BAAAA/wH/AAAAAP8AAAAAAAAAAAAAAAAAAAD//wAAAAAA//8AAAAA/wAAAQD/AP8B/wAAAP//AAAAAP//AAEAAP///wAAAQABAAD+AAAAAAH/AP//AP8AAP8A/wEBAAEBAQEBAAEBAQIBAQIBAQIAAAEBAQEAAAD/AQAAAQD/AQD//wAAAAAAAQAAAAABAAD/AP8AAP8AAAD+AP4A/wAAAAAAAP//Af4A//7//wAAAP///wAA////AP7///8AAQAAAAEA////AP///wD/AAAA/wAAAAAAAAABAAEA/wL/AP7/Af7///8AAAAAAAAAAAD//v8AAP////8A////AP8A/wD//wAAAAD///7+AAAAAAAA/wAAAQH///7//v8A/wAAAQH//f8AAP////7+//8BAP8B//8AAP8AAQH/AAEEAwQFBgb4+fj6+vkA/wD/AP8AAf//AQEA/wH+AwAA/gD+/v7/AQECBAQDAgH9/P37+/z/AAAAAQICAgICAwP+/v4AAQAA/wAA/v3/AAD+///+/v7/AAD/AAACAQEBAwIAAQH//wD/AgAD/wD/AAD///8EBQQCAgMCAQL6+vkEBAMEBQX9/f0DBAr+/wEBAAH/AP////8A//3/AwQBAQACAwP/AP4AAQABAgEEBAMFBAT///4AAAIBAQAEBAQFBgcCAwMEAwUDBAQCAwMCAgQDAwQCAwMBAgIAAAH/AAAAAP8A/wAAAQD//wEBAQD///4A/wAAAQH/AP4AAAEAAAAAAAEAAf4A/wEAAQAA/wAAAQAAAP8AAQEA/wAAAQD+//7////////+/f4A/////////f3/Av/9/QADAfz/AgH//v3/AwH//gIAAP7/AgABAP8AAAIA//8AAgIB/gAAAQD/AP8AAQAAAAAA/wABAAD/AP//AP///wD///8EAP/+AAD/AP/9AAAA/wAA////AgECAP8A/wEAAAABAQEA/wAAAQAAAP//AAAAAAEBAP8AAAEB/wD/AQAB/wAAAP//AAD/AAAB/wD//wH/AP////8AAQAAAAAAAAABAAD/AP8AAQH/////AP8AAAEAAAD/AP8AAAAA//8A/wAAAAAA/wAA///+AAAAAAD/AAEA/wEAAf8A//8AAf8B/wEAAQD//wAAAAAAAQAAAQACAAEBAAEAAQEBAQEBAQEBAAAAAP8A//8A//8AAAEB//8BAf4BAAIAAAAAAAAA//7/AQIA////AQAAAAEA////AP/+AP8A/gD/AP7//wD/////////AAAAAP//AP8BAAAAAAH/AAAAAP8AAAD/AAAAAAAAAAAA/wAAAAAAAAAAAP////8A/wAAAP//AAAA//8AAAD//wAAAP8AAAEAAP8AAAAB/wEBAQAA/////wAA//7+////AP8A/wD//////wAA/////gAA////AAAA////AAEA/wEBAwMEBQUG+vr5/Pv7AQAAAAH/Af8A/wECAf/+/wICAP7+/wEAAQMCAv4AAQIA/Pv7/f79AAIBAgECAQEBAQIBAP8AAQIB//4AAAD//wEC//7+////AAEAAAEB/wABAQAB/wABAQABAQEAAQAAAQIB/////v7/AgEDAgEBAgIBAQIBBgQGAAABAgEB/f//Af//AAAB/////wD9AQAEAAAAAQAA/wAC/f39AQECAgIB//8BAQUAAAAAAgEBAQMDAwMEAwIEAQIBAwMEAgMDAgIEAQICAQAB/wABAP8A/wD/Af8A/wAAAgIB//7/AAEAAP//AAACAAAAAAAAAQAA/gD+AP8BAP8AAAIAAQAAAAAAAQD/AAABAQEBAP///wEBAAD///8A///////+AP///v7//v7+/v/+//7/AgL//v4EAf79AAH8AAEAAAMDAgABAP8A/wEBAP//AAACAf4A/wEBAAAAAf8BAAEAAAAAAAEB/v//AQAAAAD/AAAA//8ABP7//QH//wABAAD/AAEBAAAAAP///wABAAEAAQD//wABAgAAAAABAP8AAAIAAQAAAQAAAP8A/wEAAf8A/wD/AP8AAAEAAP////8A/wAA////AAAAAAD/AP8BAAH+//8AAAABAAD//wD//wAAAAD//wAAAP8AAAD/AAD/AAABAP//AAAAAAEAAP///v8AAAD/AAAAAAAAAAABAP8BAAD/AP8AAAAB////Af//AAABAAD/AAEBAAAAAAAAAQAAAQEBAQAAAQAAAAH/AAEAAAEBAQABAAEBAP//AAEBAAAB/v//AgAAAAABAf///gD/AAD///8A/wD+//8AAP///v///wD/AP///wAA/v8AAQEAAQAAAAEAAQD/AP8AAAAA//8AAAABAQD/AAD/AQAAAQABAgAA/wEA////AP8A/wAAAAAAAf8A/wEBAQD//wEBAP//AAEAAP7///8A//8A//8AAAAAAP8AAP//AP///wAA/wEAAAAAAAEBAAD/AAEAAP//AQQDBQMFBfn6+f39/QABAP//AAEAAf8BAAAAAAEAAv8A/wABAQIBAgEBAv8C//38+v4BAAACAgIAAQABAgIBAf8BAAIAAf3+/wAA/QABAP/+//8A/wABAP8AAP///wABAf///f/9/gICAwABAAMCAwABAAAAAP7+/gD///7///79/QUFBgAAAf/9/f8AAQEAAAIBAP//AAEBAAABAgD/AAABAf4A/wAAAQIAAQMEAgIDAv/+/wICAwMDAwAAAgICAQICAgECAwABAgIAAQECAQECAwH/AP8CAQAAAAEA/wAAAAACAQD+Af7+/wEBAQD///8AAAEB/wABAP8AAQAA/wD/AAAA//8BAAL/AQAB//8AAP8AAQEA/wD/AAEBAf8A/wD/Af8A//7///79/v3+/f7+/f39/f79/wID///+Af8C/v/+/gAD/QAAAv//Av7//gAAAAH+AgAAAgEC/////gAAAgEAAf8A/wAAAQIAAP/+/wEBAP///wAA//8A/wABAAQA////AP8B/wH/AQABAAAA////AP8BAAAA/wAAAQEA//8AAQEA/wAAAQD//wEBAQD/AQAAAP8AAAAAAP8AAP8A////AAD///8AAP8AAAAAAAAA/wD//wAAAAD/AQD///8A////AP8BAAEAAP8AAAAA/wAAAAAAAAAAAQD//wAAAf8A/wD//wD//wEAAv8B/wD/AQEA//8A/wABAP//AP//AAAB//8AAP8AAAAAAAEAAAAAAAEAAQIAAQEAAAH//wEBAQACAAIBAQEBAgEBAAABAQEBAAAAAAD///8BAAH/AP8BAAH/AP8AAP////8AAP////8AAP//AP////7//////v//AP///wABAP7/AAEBAgIA/wAAAQABAQH+/v8BAQH///8BAQH/AAEB/gAAAAD/AQEA/wAAAP8AAAAAAAAAAAAAAAD/AP///wAAAAAA/wD//wAAAAAA//8AAAAAAAAAAAD/AP8BAP/+//8A////AAAA/////wAAAP////8EBQUDAwP8+/z+/f0BAAAAAAEBAQEAAAEAAAAB/wH+Af4CAAAAAQMAAAEA/v/9/v4AAQIBAgEA/wABAQEAAAAAAQADAgH+/f3///7+AP8A///+Af8A//8BAQIAAQAA//8AAAD/AAEAAQL//wD/AAAB/v//AP//////AAABAwMA/wAAAAABAQL////+AQH9/P7/AP8CAQD9//7/AAAA//0CAwMDAQMB//8AAP8BBAIEAwX//v/+Af4HCAkDAgUBAQEAAAD/AAABAQICAQH+AP8B/wD//v8AAAH//wABAP/+/wACAQD//wAAAP8AAAD///8BAQEAAAEA//8A////AQEAAAAAAAAAAAEA///+AAABAAEA//8BAgH//wD/Af8A/wABAQEA//8A/wD//f79/v7+/v39/v39/vz+//0A/v8AAQAB/gL/Af//Af//Af7/AP4BAAECAQD/AgABAAEA//3/AQIB/wH/AAAAAAABAAD9AAABAAAA/wAAAP///wAAAAD//wAE//8AAAEA/wD/Af8A/wAAAQEAAP8A/wABAAEAAAAAAQAAAAD/AQECAAAAAAD/AAABAQEAAAD/AP//AAAA/////wD+Af8BAAD//wAAAP8A////AAAAAAABAP///wAAAQD/AAD///8A/wD/AQD/AP8AAQEAAAAAAAABAAAAAAH/AP8BAAD/AQIBAP4AAP8A//8BAAD+AAD///8AAAACAAD/AAD9AAABAAH/AAD/AAD/AAEAAQEBAQEBAQABAQAAAAD/AAAA/wH/AP8AAP8AAAEA/////wEBAf///wAAAAD/AQAA/wEAAQAA////AP/+/wAA/////wD/AP7+/v//AP///wAA///////+/v//AQABAgAAAAEBAP8CAQEAAQEBAAD//wEBAAD/AP8A/wEAAP8AAv8A/v8AAAABAAEA///9//8BAAAAAP8AAAD/AP8A/wD/AAABAP//AAABAQD//wAA/wAAAQAA/gABAQAA/wABAP/+AAAAAAAA/wABAQICAgMD/P7+/f77/v//AAAAAAD/AAAAAAABAP8BAAD/AQABAAACAAIA//7+/v//AQAB/wECAgAAAAIA//8AAgICAQIA//39/////wH/AAEA/wAAAQAC/wEAAAEBAP8AAAH/AAABAgIBAAAB//8AAgICAAAAAQACAQAAAAICAP//AQIBAAEBAQIB//7//v7+/f7+/f/9//39/wAA//8A/f36AwQDBQQGBAQFAwMEAQMCAP/+9PPvAAABDA0PAwMHAQEBAP//////AAAAAAAAAwD//wEAAf8A/wD/AP////8AAAAB/wIAAAD/AAABAQAAAAAA/wD/AQAA/wEAAAAAAAD/AAAAAAAA//8BAAAAAAL/AP8BAgIAAP///wEAAP4BAQH///4AAf8A//7+AP////7//v3+/fz8//7+//7+/wAA/wH9/v4CAgID//7//gH/AgD//wD//gL/Af7/AAL+AP8CAQD/AAD+/wABAAAB/wD/AAAAAAABAQAB/wAA///////+/v/+BP8AAQH/AP8A/wAA/wAAAAAAAQEBAAAA/wD/AQABAAAAAAAAAP8A/wEBAQEAAQEAAAH/AP8AAf8A/wD//wAA/wEAAf8B////AAD//wAAAAABAP//AAD//gAA/wAAAf4A/wEA/wAAAAAA////AAIAAf8AAQEAAAABAAD/AAH/AP4A/gD//wAAAQAAAP//AAAA/wD+//8B//8AAAEAAQEBAAD/AAAA/wAAAf8BAAEBAAAAAP//AAAAAAABAP8AAQEAAQEBAQD/AAACAAD/////AAD//////gAAAwAAAAAA/wAAAAAAAAAAAAD///7//wD//wAAAAD///8AAAAA////AP/+//7//////gAA//8AAQD+AAECAgEBAP//AgEAAf8AAAAA/wAB/wAB/wD//wAA////AAAAAAEBAAD/AQICA/7+/v7//////wAAAAAA/wAAAAAB/wAAAQAAAP8AAAD//wAAAAAAAQAA//8AAQD//wAA/wH/AAAAAQAA/wEDAv3+/P38/QAAAAD///8AAP//AP//AAAAAAABAAAAAQEAAAAAAP7//v7//wACAAD+AAL/AQACAP/+AAMCAQICAv3+/v7///8BAQIAAv4C/gH/AAAAAf8A/wAAAQAAAAEAAQAAAQABAAAAAQABAQMCBAAAAAAA//7/AAH/AP//AAECAQEBAgD/AP4A/Pz+//n7+/z7+v7//QAAAv39/vb29AIC/wYGBxISEwgICQAAAOfl4eLi2w0NDw8PFAwOCQABAf///wL///8A////AAEAAQABAAD///8AAAIAAP/+//8A//7/AAEBAAD//wECAgD/AP8A/wAAAAD/AQAAAAD/AAAAAAABAAAA/wAAAAD/AQAA/v//AgAA/wEAAP8BAAAAAAD/AP//AP/+/v38/v38/Pz9/f39/f79/f///v7+AAABAQH+/v/+/v4B/wL+//8C/wAA/wD//gABAP/+AAIBAAABAv8A/wABAAAB/wAAAgEAAAABAP8A////AP///v7///7+/QQA//7+AAAAAP8AAP8AAQAA/wD//wEBAgABAf8BAQAAAP8AAAIAAAAAAAABAAAAAQAAAP8AAAAB////AAABAAH///8AAAAA/wAA/wD/AAD///8AAAAAAAD/AAD///4BAQEAAAAA/wD/AQABAAEAAAEB//8AAQEA/wD+//7///8AAAAA/wABAAAAAP//AP8BAAAAAgAA/wEAAP8AAP8A////AP8A//8BAQD/AP8A/wAA/wABAAABAAAA/wEBAQD/AAD/AAAAAQEA/wAAAAAAAP/+/wAC/wEBAQABAAH/AP8AAP8A/wEA/wD/AP8A/wD//wD/AP////8AAP///wH/AP7/AP///////wAAAP//////Af8B//8BAgACAQEAAgAAAP8BAf////8AAAAAAQEAAP//AgD//v8BAAAAAQAA/gABAAAB/wEAAQD/AAAAAAAA//8BAAAAAf8B/wD+AP//AAAAAAEAAf8AAAABAAAAAf8A/gH///4BAQH/AQD+/v3+/v8BAAAAAf///wEAAP//AAAAAAD/AAAAAAEBAQEAAP7+//4A/v8BAP//AAEBAAAAAgD//wACAwECAgH//wAAAAAAAAEBAAH/AAAAAQIAAf8BAAAB/wL/AP8BAQH/AAD/AAIBAAEAAQACAAIBAgIAAAH//wACAP//AQH//wABAgH/AAD+/v39/f78/fz8/Pz19vb29vb4+fjx8fDx8PACAgIVFRMMDQwI/wjz7/PMy8zs6OAVExUIBAwnKzEHCwv/AQL//v8BAAABAf4A/wABAf//AAAC/wD//wAAAAAAAP8BAAAA/v8AAQD///7/AAAB/wH///8BAQD/AAABAAAAAQEAAAD/AAABAAAAAP//AAIA//8AAQEAAAD///8AAAEAAP///wD9/f78/Pz6+vr5+fj9/Pv9/fz//f0CAgAAAQAB/gH+/v0BAQH/AgH+/gEBAAAAAQL/AP8BAP//AQD/AQABAQAAAAH/AAIB//7/AQH///8BAAH/AP///gD+/v/+/f8E//8A/wD+AQAAAAH/AP8BAAEAAAAAAQAAAAAAAAD//wEBAgEAAAEAAAAA/wAAAf///wABAAAAAAAAAP8A/////gD/AP//AP///wAAAP///wD/AQAA//8AAAAAAQAAAP///wEAAAAAAf8BAAAA/wD/AAEBAP///wD////+AAAAAP8BAAEAAAD/AAAAAQAAAAD///8AAAAAAAAA/wAAAP//AAAAAAAAAP8BAAAA/wH/AAAAAAABAAACAQEBAAABAQEAAQD/AAAAAAEA/wEAAAD/AQAB/wAA////AAH/////AAABAAH//wD/AP////8AAAD/////////AP///wAAAP//////AP/+///+/v/+AP//AQEBAQH/AwAA/wIAAP4CAAIA/wAA/wAAAQH///8AAAABAQD/AAEBAP//AQAA/wEAAAEBAAAAAf4AAQD//wAA/wEAAP8B////AAAAAAABAQH/AAAB/v7/AAEBAAAAAAEBAAH+AAEA/gH+//4A/gD+//8AAQECAP8AAAEA//8AAAD/AAD/AP8AAQEBAAEA//8A/v7/AQAAAAABAQAAAAEB/wAAAQEBAwMC/////wD+AP//AAEAAQACAAD+AgAB/wABAAD+AAAAAQABAAAAAQEB/wACAQECAAEBAQACAQEDAAD/AAAB//7+/v8AAQEBAAEAAP///v7+////AP7++vr48vHv6ejl8e7t8vP08vT19/n6Dw8PBQcFHx0e4Nve493d+fXxAPb81/nNBgQGJC0vBAUIAAICAf/+//8CAAH//v//AQABAAEA////AAEAAP8BAP///wD/AQAC/v7/AAEAAP//AAIBAAAAAAAA/wAAAP8AAP8BAAH/AAAB/wAAAAH/AAABAQD//wABAQABAP//AP8A//8A/Pz9+/z7+fn5+vn4+vr6/Pv7AP/9AP8AAAEAAgEC/QH8AQECAP7+AgH+AP4B/wIAAv4BAAEB/wD+AQAC/wD/AAAAAQEA/wAAAP//AQEB/wAA//8A/v/+/v7+/v79BP///wAAAP8A//7//wEAAAECAAICAP8AAAEAAv8AAQIAAAAAAQH/AQAAAQABAP8AAAAB/wAAAAH/AAAAAP8B/wD+/wAAAP8BAAD/AP8AAAEAAP//AAAA////AAECAAD/AAAAAAEAAAAAAAAAAP8AAAD//gD/AP8A/gD///8A/wH/Af//AQABAQABAAAAAP8AAAAAAP8AAAAAAP8AAAAAAAAA//8AAAAA/wEA/wH//wEAAAAAAP8A////AAAAAf//AAAAAAEBAAAAAAD/AQEBAAAAAAAAAQABAf4A/wH///8B/wD/AAD/AP8A/wH/AP////////8A/gD/AAD//////wAA/////////v7//QH+AP8BAQIBAP0AAgMA/wEC/wH/AgD//wL/Af4AAQEBAAAAAAAAAAABAP/+AP///wAAAAD/AAEAAQAC/wD/Af8AAAEAAP8A/wD/AAAAAAEBAf8AAQH//wECAgD+/v8CAv/+/P4AAP4B///+/////gD/AQEAAAAA//8A/wD//wAAAAAAAAAAAAAAAQAAAP/+//7//gAAAP8BAAD/AAEAAP8BAQEAAAIDAQD//////wD//v8B/wD+AQAA/wABAQAAAAEAAQD/AgACAAABAAD/AAABAgEAAQEBAgEBAgEBBAAAAAEBAP/+/wADA//+/gECAwD/AP3+/QEB///+/f7+/fz7+/Hu6u3n4vr49vf09vPx9fH1+Orq7fX39yslIv/z8woA/QMCA//4+PTr6tvS0RAUFBccHgECBAABAP8A/wEA/wEAAf8AAP//AAEBAP8A/wEAAP//AAAAAQD//////wEAAf8AAAD+/wAB/wEBAQAAAQAB/wAAAAAAAQAB/wD/AgAAAP8A/gAAAgH///8CAQH/AP4A//3+/fz8/Pn5+vf5+Pf3+Pj39/36+wMB/f8DAgQBAf4CAQH+Av7+/QH+Av8BAgECAgH//wAAAAAA/gD/Af8C/QAAAgABAv///wAAAP8AAAAAAAAA/wD///39/v39/fv8/QT///8AAP8AAP8AAAD/AQAB/wAAAP8BAAIBAAAAAAEAAAEAAAH/AQEAAAAAAP8AAAEB/wAAAAH///8AAP8A/wAAAAAAAP8BAAD/AAAAAAD/AAAAAAAAAAAAAQD//wAA/wABAAEAAAAAAAD/AP8A//7//wAA//8AAf//AP0B/wL/AP8AAAAAAAAA/wAAAAAAAQAB/wEAAAD/AAAA////AP8A/wD/Af8AAAEBAAD/AAAAAQD/AP8A/v//Av////4AAAL/AAAA/wAAAQAAAP//AAEBAQEAAAL//wAAAP//AP8A/gAAAQAAAP8A/wD//////wD/AP////8A/wAA/wD/AP///v//AP/+/v///wAAAAD///8AAP4C/v3+AAAAAgAB/wACAQIAAQAC/wH/AAD+/wD/AP///v//AP///wAAAAABAAEAAf///wEAAQAB/wD/AP4A/wABAAEA/wD+AP4B/wD+AAEA//8AAQAAAf//AQAAAAAAAAABAQAAAAEA////AQEAAP8A/wD/AAD/AP8B/wD//wAAAP/+/v////7/AP8AAf8B/wD/AAAAAAEAAQACAQH//wH//v3+//8B/wAB/wAAAP//AAABAQIAAAD/AQD//wEBAQABAQD//wABAQIBAQMCAgMCAQIBAQP//gD/AQAAAP8BAgEF/v7/AQH//gD+/v0AAAH/AP/8/fv4+PX19PD8+fUC//wJBwEVFQ8BBQTr7/Tg4OAF/fwvHx0TDArv+/UMCAQBAPj+9e/q4eATFRcEBwEBAQIBAAAAAAAAAQABAAAA/wD/AQAB/wH/AP8AAAH/AP//////AAAA//8AAAAAAAAAAAH///8BAQABAAEAAP8BAAD/AAIBAf8AAAAAAAD///8AAQEA/v8AAf///v/9/f76+/r3+Pf39vf19vb29PX//PkGBAAGBQMCAf/+AgACAgP//wP+/v0BAQL+AAECAQAAAAEAAAD/AQEA/wEBAf8AAP7//wAAAAEAAQD//wD//wD//v79///8/Pz7+/sE////AAD+AAEAAQABAAAAAAAAAP8C/wAAAAEBAQEBAAACAAABAAAAAQD//wAAAQD/AP8BAAH//wAAAQAAAP8AAAABAAAA//8A////AP8AAAABAAH/AAABAP7/AAEAAAAAAP///wAAAQAAAP///v//AAAAAQEB///+AAAB/wD/AAABAQAAAAAAAAAAAAAAAAAA/wD//wD/AAAAAAD/AAAA/wABAf8AAAAAAAAAAAEB//8AAf8A/wAAAAAAAP8AAAAAAAD/////AAAA/wEAAgACAAABAAAA/wABAP//AAEAAQH/////AP8AAAD///8AAP8A/v/+AAAAAf/+//8B/wD//wD///8AAQAAAQD///8AAAAA/gAAAQD///////7+AQIB/wL/AP8BAAAA/wAA/wAAAQAB/wH/AP8AAQEA//8AAAEAAP8AAAAAAAD//wH/AP8CAAH/AP///wD/AP8AAAAAAQAA/wEBAP/+AAABAQAB/wEBAQAB////AAAAAQIAAP///wD/AAABAAAAAAAA/wD//wAAAP8AAAD/AAD/AAEAAgAB/wAAAAD//wABAgEAAAABAAD///8AAQAA/wAA//8AAQAAAAEBAAEAAAABAAEAAQEBAQEAAQAB/wIBAQECAwIEAQECAQEDAQAC/wEA/wAAAAH+AAEBAAED/////wL+/QIDAQICAAEC+vz59vjzBggFDAwK+Pb0CQsNEBITD+7yBQbr6Oru6OrpMiEbFRELCAD0ISAY9/T3+fj2/fTu+fX1AgQCAQIDAAMEAf8AAP8AAAH/AAEAAP8AAAAAAAAAAAAAAQAA/v//AAAAAAABAAEA/wAAAP//AQAB/wH///8AAgEB/wAAAAAAAP8B/wAAAQEAAQAB/wD/AQAA//8A/////f39+fr59vX29fXz9PT09vT0APz7/QYCAAgFAwIBAgQC/v79Av79/wIC/wD/AAD/////AAD/AAEBAAD+AAAB//8AAP4BAAH/AAAB//8BAAAB/v/+/v7+/fz+/P38/Pv7ASl71oQEAP///wEAAf8AAAEBAf8BAAEBAP8AAAECAAABAf8BAAH/AQABAP8AAAAAAQAAAAAA/wABAf//AAD///8A/wAAAP///wH/AAD/AAAAAAEAAAAAAAAA/wAA/wH/AP4AAQEA//8AAP///gD/////AQAAAAEAAP8AAAABAP8AAAAAAAH//wAAAf8B/wIAAP7///8AAAD/AAD//wAB//8AAAABAf//AAEB//8A/wD/AP//AP8A/wAAAAAAAQEA/wEAAAAAAP8AAAAAAAAAAQACAAEBAAACAP8AAAEBAAEAAP///wD/////AP8A////AAD///8A//7+AAEA//8A////AAD/////AP8A//////8A////AAAAAQAA/wD+//8C////AP//AP4A/wH//wABAAD/AQAA/gH/AAAAAf8B/wD/AQEA////AQAB/wD/AP8BAf8A/wD/AAD/AAEAAf8BAAD//wAA/wAAAAD/AAABAQAA/wABAAEAAf8B/wEBAQD//wABAQD/AQAC/gAAAQAAAP///wAAAAD//wAAAAD//wEBAQD//wEAAAAAAQACAQEBAAEBAP////7+//8AAAAAAAABAQIAAAABAAABAAD/AQEBAQAAAAECAAEBAQEBAgECAgMDAAECAgEDAgEBAQACAQAC/f//AP8D/wD/AP/+/v7//v//AQD+AAD+///8AQAAAf8ACAcH/w0KCggDERMTDhESDhEQCwsJ/v776ufs5efnJRsSBQYBEBASNDIk3Nbb+wgF+PbwAwcAAwYIBAEK/wACAQIA/v8AAAAAAAAAAAAA////AAABAAAAAAEBAP8A/wH/AP8BAAH/AAAB/wD/AP8AAQAA/gAAAQABAgEA/wD/AAEBAAAA/wD/AP8A/wD/AAAA/v7//f39+/v8+fr59/f49PT19vT1Av/8//0DAQL+AwQCAgQDAQP8Av4EAf///v7+AwH+/v4AAgICAP8AAf//AAH9AAL/AAAB//8CAAH//v8C//8A/v8A/v79/P39+/r7+/v8BAAB/wD///8BAQEA//8AAAIAAQABAAAAAAH/AgABAQD/AQABAf8AAAEAAQAAAAD/AQEB////AQAA/wAA//8A/gAAAP//AAH/AAAAAAAAAAEAAP//AAAA/wH/AP8BAP///////wEAAP///wEBAAAAAAAAAP8B/wD/AAABAQAAAAEBAAEAAf8AAAH/AQABAAAA////AP///wD/AAAA/////wEAAf/+/gABAAAAAQD//wAA/wAA/wABAAEAAQIBAQAAAAAA/wAAAAAAAQEBAgEABAD/Av4B/wH//wAAAAD//////wD///8A/////wD/AAAA//7//wH+AP8B/wD/AAAAAAD/AP////8AAP8A//8A/wAAAAEAAP///////v7+AAEBAQL/AQEAAf//AAEAAQECAf/9/wD/AP8A/wAAAAAAAAAAAf8A/gAAAAAB/wAA/wAA/wD/AAD/AP8BAAAAAf//AAAA/////wD/AAABAAABAQH/Af8B/wEAAP8AAQIAAP8AAQAAAQIA//4A/wAA////AAAAAAEBAAAAAAD/AAEAAv//AAEAAAABAQEBAQAAAP4AAAAAAgAB/wAAAf8A/wAAAAEAAQAB/wEAAgEBAQEAAf8BAQEAAAECBAECAwEBAwEBAAAAAQEBAgEBAQEAAQMAAgAAAAEAAPz9/AD//QAA/f3//P79+/79/AIAAAcGCPP+AgMDBQ0MCRMVEhcYGPj5+xAQDAYF/9b9++To6hwXEf4CA/Xz8xgcIwULGO318/oF//Xx7wcNDwACBwQEAv8AAQEA//4A/wAA/wEAAAEBAQD/////AAEAAP8BAP//AAAB/wAAAAAA/wEAAQD/AP8BAAEA//8A//7//wAAAAEAAAABAQAAAAAAAP//AAAA//8A/v39/vv8+/r7+/j4+fX19fT19wMB/f79AgIC/wUDAgQDAgIDAwID/AL/AwD/BP///gEAAQD////+/v8AAQECAQD+AAABAf8A//4A//8A/v7///7+//39/vr6/Pn5+fn4+AT///8AAAEBAAEAAAEBAAH/AAEBAAIAAAH/AAEBAAIAAAD//wEBAQEAAP8BAAL/////AQAAAP4A////AAAA/wEAAP8B/wD/AAD/AAABAAD/AP8AAQAA/v8AAAAA//4A/wH/AP8A/gAAAQAA/wEAAP8AAAAAAAAAAAAAAQEBAP8AAAL/AAAAAQD///8AAAD///8AAP4AAP//AQD//v8A/v//AQAA/wAAAP//AP///////wD//wAAAAD//////v//AgAAAAIAAQAAAQAA/wAAAQAAAP8B/wAAAf///////v8AAP7//////wAA//8AAAAA//8AAAD/AP8A/wAAAAD/AP8AAP8AAQAAAAAA/wAAAAD/AAD+/wACAf/+AP8C//7//wL/AP8A/wABAQH//wEAAP8CAQH+AAD/////AAAA/wAA//8AAAEAAAAA/////wEAAP8AAAAAAQAA/wAAAAAAAAD/AAAAAAH/AP8AAAABAAD/AAIAAQABAAAAAP8BAP8A/wEAAQD/AAAA//8AAAECAf//AAAAAAD//wABAQEB/wABAQEAAQAAAAIAAQEA//7/AAD/AQEAAAAAAAABAAAAAAEAAQACAQIB/wABAgIBAAEAAAAAAQIBAgMAAQMBAgEBAAEBAAACAgIAAAIAAAEB////AAD/AAABAQEBAQAAAAAC/wD////+/v38/PwBAAEFBQT7AQIDBQULCwoDAQAKBwUFERABGxj87/LV1N729vkC///y7erm6useLTQI8OL8BA3R0NYRBQYEBQsDAwQCAQH+/wAB/wD//wEAAP8DAQH+/wD/AAABAf///wAAAAAA/wAAAf8AAAEAAQAAAAEAAQD+/wABAP8AAP4BAQIAAAD///8BAQEAAAAAAP/////9/f79/fz9+/v7+vr7+/r5+fr4+PgAAP0A/gIEAwAEBQMDBQQCBQYDBP7+/f8CAf7+AQICAf/9AP8CAPwAAQP//wEBAv//AAD+AAD+AAH+/wD+///+/f77+/35+fr5+ff5+fkE/wD/AQEAAP8AAAEBAAEBAAAA//8AAQEBAAAAAAAAAQAAAQABAAAAAAAD///+AAEAAP4A/wAB//8BAQH+AP8AAAEAAAAAAAABAQD//wD/AAAA//////8A/wD///8AAQD/AP4A/wEAAAAAAAD/AAD/AQABAAAAAAEAAAD/AAABAAAAAAAAAP8AAAAAAAAAAAAA//8A////////AP/+/wEAAP//AAAAAQABAAAA/wD//wD/AAAAAQAB/wEAAAIBAAABAAEAAAAAAQAAAP///v/+AQEBAAABAP/+/wD+/wD+AP8A/v7+AAAA//8AAQAAAP//AAAAAAAAAP///wD/AQAB/gAA////AP7/AAAA////AAAA/wD+/v8CAgAA/wID///+//4CAQEBAAAAAQAAAAEBAAIBAf4AAQEAAf///wAAAAAA/wD/AP///wAAAQD///8AAAABAAAAAAD//wAAAAAAAAAA/wAAAAABAAD/AAEBAQEAAAAB/wABAv8B/wAAAQL/////AQAAAQABAAAA/wEAAQAA/wD/AQACAAAAAQECAAEAAAEAAAAAAAAA/wABAQAAAAAAAAAAAQEB////AQEAAAEBAQABAAEAAgECAQEBAAEBAQACAAICAQEDAQECAAAAAAIAAAECAQAA////AAEBAf/9/v/////+/wAAAAAB/wABAAAA/f7+/v7/+vr6/Pz8/P7+AQMCAP8A+fr6AwABAf37+vT05eHl9fT48/X8EAkH8PL3EBgbEx0o8/bx9fX29/f1BfTyAgYMBQcHAP8BAgAA/gAAAAD/AP///wAAAQAAAQD//f4AAAH/AAEAAP8AAAAB/wEB/wABAQAAAP8AAAAA/wAAAQAAAAAA////AQEBAAAAAP//AAAA///+/fz9+/r6+vr7/fv7/fz7/fz9+/v8/v75Av8DBQMCBQQEBAQEAwMEAgMCAgIDAgIDAQECAQEBAP///QEBAAD/AAEBAf4A/wEB/wD//f8B/f///f7/+/z9+vr8+vj5+fj5+/n6BAAA/wD/AP4AAQMAAQAA/wAAAQAAAAAAAAEA//8AAAEAAf8A/wD/AAEB/gAAAAAA//8AAAAAAAEAAP/+AQAA/v///wAAAAAAAP8A/////wD/AAAB/wAAAP/+/wAAAP8A/wEB////AQABAAAA/wAAAP8A/wAAAQEAAAAAAf8AAAEAAAD/AAABAAAAAP///wD/AAAAAAABAQD+AP8AAQD//wAAAAAA//8AAAD/Af//AAD/AAAAAP8A//8AAAD//wABAQEAAQD/AP////8B/wD//v8AAgEA/wAA/////wAA//7+/v7//wH/AP///wABAQAA/wAAAQD//wEBAAD/Af8AAAD///////8BAP//AQAAAP///wD//wAB/////gD/Av///////v8BAgEA/wAAAQD///8AAQAA//8AAQAAAQAA//8AAAD/AAAAAAD///8AAP8AAP8A//8AAP8A/wAA/wAAAAAAAAEBAQAB//3+AAABAQABAAD/AAEBAgEBAAAA////AAAAAQAB/gEAAf8B/gH/AP8AAAH/AgEBAP8BAAEAAQEBAQAAAP8AAAD///8AAQEBAAABAAH+AAABAQEBAQAAAQECAQH/AAABAQEBAQEBAgABAgABAQEAAwECAQICAwAAAAEAAAABAQAA/wAB///+AAABAQEAAAABAQD+AP7+/f///wAAAP79/P/+/QkJCfj3BvoFCAUFCv3+Avj2+gQDAP78+gAAA/r7/Pz/AgEDCAUCAPP28vP69AAB+fj08fTy9/Lv8v0AAgkMEf79DQMB/wEBAQAAAAD/AP8BAAAAAAD///4BAAABAAD/AQEAAAABAP8AAAD/AAABAAAAAQAA/wEAAQAAAP//AAAA/wEBAQAAAAD//wAAAAD///39//z8+/r6+vr6+vv7+vz6+v3+/P38/Pv8+gEAAwUEAgUFAwQGBQMEAwIDAgICAv8AAQQE/v4DBAABAQEAAQAAAQABAAABAP8AAf3+//4AAP39//z///r6/Pr6+/n5+fr5+Pr5/AT/////AAACAf7//wEAAAIBAf8A////AP///wECAP8AAQD//wABAQAAAAD/AP8A/wEAAP8A////AAEA/wD/AQEAAP//AP8BAAH//wAAAAD/Af8A/wD//v7/AP8AAAABAAD/AAEAAP8AAAD/AAAAAP8AAAABAAAAAAH///8BAAD/AAEAAP8AAAAB/wAA////AAAAAAIA//0AAP8AAAD///8AAP8AAAD///8CAf8A/wAAAP8AAAAAAAABAAD/AAAAAAAAAAD/AAD+AAAA//4BAAABAAD/AQIA/v/+AP4A/v/+//7/////AAABAAH///8BAQAA////AAAA/wEA///+////AP//AP////8A/v3//v7+/v8AAAABAf4BAAL/Av7//wMAAAAAAP//AAEAAP8BAQAB/wD/AAABAAD/AQAB/wEAAAD/AP//AAD/AAAAAAAAAP///wAB////AAD/AAEAAP8BAQAA/wD//wACAAEAAP/+AAABAQEA/wH+Av////8AAQD//wAA/wEAAQAB/wEAAAEBAQAA//8AAAABAAAAAAECAgL//////wAAAQABAAAAAAABAAH/Av8AAQEBAAABAAEAAQIAAQEBAQEAAAAAAQMBAgEBAQIAAAEBAQEBAAEAAP8BAQEAAQAAAAEB/wEAAgH//wL+//0BAP8AAf///wD//v38/Pv9/fz7+/r49/f+/gADAwX+/wL+/gADAv7//wP6/QACBQQZGhPl6+Dm6usJGA7d5OrMzMopLzDw7OPt7v7x7/IFBwX9/Pr//v3/AAQAAQEBAAD/AgAA/gD+AP8BAgAA//8A/wABAQD/AP///wABAAH/AAEAAAAAAAAAAAD/AQABAAEAAAAAAP8AAAEA////AAH/AP///v/8/Pz7+/z7+vv7+Pr8+vr8/Pv//vz/AP7//f/7+vz3AvkFBQMFBwUDBQIDAwMBAQL9/wD9/f0DBQT/AAEBAQIAAAD/AP/+AAABAAH8/v/+///8/f/9/v76+vz5+fr5+vr7+vn7+fsEAAAAAP8A/wEAAQAAAAD///8CAQIAAP8AAAIA/wD/AQABAQEAAAAA////AAAAAAD/////AAAB/wD/AAEAAAAA/wABAP8A/wAAAAD//wD/AP8A///+/gAAAQAA/////wABAQEAAAEAAP8AAAEA/wD/AQABAP///v//AAAAAQAB/wD/AQABAAD///8BAAAAAQAA//8AAAAAAAH/AP7/AAAAAP///wD//wAA/v8AAQEB/gAAAAAAAAAA/wD/AAAAAP8B/gABAwEA/////wAA/wD/AQD+AP//AP/+///+///+/v7/AAAAAQEAAAAAAAAAAP8A/wAAAP8A/wAAAAAAAP///////v//AAD//f7/AP7////+AAAAAAAB/v8BAv8AAP8A/v7/AQH/AQEAAAABAAABAAD/AAAAAAAAAAAAAAH/////AAAAAAD/AAEB/wD+AAABAP///wEBAP8AAP/+AAD/AAABAQD/AP8AAAAA//8AAQEAAP8C/wEAAP//AAEBAP8BAQH+/wABAQD/AQAC/wAAAAD/AAAAAAABAP8AAQEAAP8AAAABAgH//v8AAQIAAP8BAAAAAAEBAQAAAQABAAECAQEDAAAAAAAAAAAAAQEBAQACAAABAQIAAAEB////AQAAAAAAAQAB/wD//wD/AAAA//////////7+/f3+///+AAIBAQEBBAIECAcJ/////v79+/r4/P3+/P3+AwIA//39/fwA/P7/CwsIAwIC7fL0GBEK8PT5zMvRNDPP3tja4On79PT4FRcUAQABAAABAAAB//8AAAABAAAAAQEAAv8A/wD/AQAB/wD/AAAAAf//AQAA/wAAAAABAP8AAAAAAAEBAQAAAAAAAQABAQD/AP//AAAB/wD+/wAA/P79/fz8+vn5+ff4+fj3+fj4+vv6/f38///+AAD+/f///P4C+fv8+fr7BQUFBAL6AQEC/v8A/QT+Av39AAIBAQEB/wAA///+/gD///8B/v///f3//f7+/f3++fr8+fn4+vv6/Pr8+/v8BP7//wMBAAH/Af8BAAEAAQAAAAAAAAEBAAAAAAH/AQAAAAABAAAAAAAAAAABAf///wAAAAAA/wD/AAAAAP//AQAA/wD/AP8A/wAAAAAAAP///////wEAAAAAAAAAAAAA////AAEBAAAAAP8A/wAAAP///wABAAD/AQAAAP4A/gEBAP8AAQD+AAEA/wABAP//AP8A/gD//wD//wAAAAAAAP7/AP///wEAAQACAP8AAf///v7////+///+//8C//8A/wAA/////wAB//8A/gEAAgD+/wABAP7//v7+/v///wAA/wIAAQAAAAAAAAAA//7/AAEAAP8AAAH///8AAP4A//7//wD///7/AAD/AP4A/v///wAA/wAAAv///v7//gIA/wEA/////wH/AQABAP///wD/AAABAP8AAAAAAP//AAH/AAAAAP8AAQEA////Af///wAA//7/AQAAAP8BAQH/Af///wAAAP8A/wD/AAAAAAEAAf4A/gAAAAEBAAD/AP8A//8AAQAA/wEAAgAA/wAAAAAAAAABAgEA//8BAAEAAf8A/wEBAP//AQIAAP8BAAEAAf8A/wEB/wEAAQAAAgAAAgAAAQEBAQABAP8A/wAAAAABAAAAAP//AQEAAAAAAAAAAAAA////AP///wAAAAD//////////v///wAAAAICAwH+/gEBAwYHCfz9/fz9/QEB9AIDAf79/Pn5+QD9AP8AAP39/f///gIBAg4HB/L18/PyCgMFCdnY4ZOOlgT9+voADhcbGwEDBQABAwECAgEBAQAAAP8AAAEAAf8BAAAA/wD/AQAAAAIBAP///gABAf8AAAD/AQEBAAAAAAAAAAEBAAAAAQAAAP8A/wAAAAABAP////////7+/vz7/Pn5+fj3+Pf39fj49vj4+Pv6+v38/f///gABAAMBAv//AP3+//r7/Pf5+wABAv8BAv3+/wIF/AL8AwECAgABAQAA//////8AAP/+AP4AAPz9/vz9/fv7/fr7/Pv7/fz8+/v7+/38/gQB/wD/AAEAAQACAAAAAAEAAAAAAAEA/wD/Af//AP8AAAAB/wD/AAABAAH///4AAAAAAAAA//8AAAD///8AAAD//gAAAAEAAf8AAAAA/wAA//8B/wD+AAAA/wD/AAABAAAAAAAA/wAAAP8A/wAAAAAAAAAAAAAAAAAAAAABAQEA/wABAAD/AQAA/////wD/////AP8AAP8AAAD///////4AAP8AAQD/AP8A//////7//wD/AP8AAQABAAEA////AAD//gD+Af8C/gD/AgAA////AAAA/v//AP7//v0AAAEBAQD/AQABAAD//wAAAAAAAAD//wD/AAD/////AAD//v8AAP//AP8AAP//AP7///////4AAAEAAQD/AAEAAAD///8AAAD//////v8AAgABAQH/Af///gAAAAABAAH/AP//AQAAAAEBAAD+/wAAAP//AP8BAAEBAP/+//4BAAH/AP8BAf////8AAAD/AAAA/wAAAf8AAAAA////AP//AAD/AAAA/wAAAAD/AAAAAQAAAAAB/wEAAQD//wEBAQEBAP//AAD/AAAAAQAAAQICAP//AQABAAIAAAD/AAABAAEBAAH/AAEAAQEBAAABAAAAAAEAAAAAAAAAAAAAAAAAAP8AAAEAAAH//v8AAAD+//7/////AP///wD+//4AAP8A/wAA/wADAgP6AP77/PoAAf8BAv8FAwMBAPz59/b9Av3///4AAAH6+fn6+fsMBAEkIh3x+Pn6/P/4/v7g5OsTCgoTEwkEBQgDBwUDBQUDAgMBAQEAAAAAAP///wD//wAAAAEBAQAAAAAA/wH/Af8AAAAA////AAAB/wAAAAABAQD//wAAAQACAP//AAEBAAEA/wD/AAD////9/f77+vv59/j29fX29fb39vf5+vj8/Pv+//0BAf4EAwECAwEDAgEB///9/P77+/oCAgEBAQH+//0D/gMAAwMBAgICAAD/AAH///8AAAD/AAD9/f78/v77/f37/P38/P79/P/9+/38/f/9/f4EAAAA/wAAAQABAP8A/wH/Af8C//8A/wEBAf8AAAAA/wAA/wEAAP8AAAH/AP8AAAAA/wD/AAAA////AAAAAAAAAAECAAD+AAAC//7+AAD+AQAB/wEAAP7/AQEAAP8A////AQAA/gD/AQAAAAEBAAABAAD/AAAAAP8AAAEAAP8AAAAA/wEAAP///wAA//8A//8BAAD//wAA//7/AAAAAP8B///+////AAEBAAEAAP//////AP8A//8A/////v8AAv4A/wP/Af4BAAL/AP///gD+AAAAAQAA///+AAEBAAAAAAEBAQEBAP8AAQH///8A/////wD/AP8B///+AQAAAAH/AP8A///////+AP//AAAA/wAA/wD/Av/////+//4C/gD9AAEBAwMB/gD+Av8D/wAA/wAA/wAAAAAA/wD/AQABAAD//v///wAAAQAA//8AAP8B///+AAAAAP8A/wD/AAAAAAABAAD/AAAAAAEAAAAAAAAAAAEBAAD/AQABAP//AAEBAAD///8BAAAAAQAB/wH/AAAA/wAAAAEAAAAA/wEBAf8BAAD/AAAAAAABAAABAQH/////AgAC/wEB/wAA/wABAAAAAQAAAAEA//8AAQEBAAEAAf8AAQAA////AQABAQEB//8AAAEAAAAAAQABAAAAAP8A/wH9AAD+///9/v7///8A/wD//v/9AAD8AAD6BAT/AwQA/Pv89/j6BQD+BgH///7++fTzAQMF/QYL2+r04+/w9Pj4BwMAAgEABgIGAfXzEwcCBQcLBwkJAgQDAAABAAD/AP8BAAAAAQL///8BAP8AAQEBAAD/Af8D///////+AAD//wEAAf8B/wAAAQEAAAAA/wABAQEB/wEAAP8A//8A//7//v38+/v6+fn5+fn49/f3+Pr4+/z7/P37//77AQH/AQQBAwIBAgMBAAD////9/fwC/QP7+wMBAAL+A/8EAf37AAICAAAAAAAAAAAAAAAA//8A/v7+/P3++/39/P3//Pv9/P3//Pz///0A/v//BP7//wIA/wAA//8AAAH+//8C/gIAAwAA/wAAAf4A/wH/AAEAAQAAAP//AAAAAAAA/wD///8AAQAAAAAAAP///wAAAAAAAP//AAEAAP8BAQD//wD/AAAB////AAAAAAAAAP///wAA//8AAQAB/wEAAAD/////AQEA/wEAAQAAAAAAAAD/AP8AAAAA/wAAAAABAAD+AAAAAQAAAf///v///v8A//4A/gIAAQAAAv8AAAABAAAAAP///////wAA/////wD/AP4B/wD//v//AAH/AAEAAP4B/wD+//8BAAIBAQABAf//AAEA/wD/AP///////wAA/////////v8AAAEAAf///gD/////AP//AP///wAA/wD/AP8A/v//Af///gAAAgH/AP7+/gICAv8A/gAAAQAAAQD/AAAAAAD/AAABAAAAAAD/AAD/AP8AAAABAAEAAP//AP//AAEBAf8A///+/wAAAAAAAQAA/wAA/wAAAP8AAAD//wD/AQAA/wAAAAEAAP8AAAABAAD/AP8AAAD/AP8AAQEAAP8A/wABAAAAAQAB/wEAAf//AP8A/wEBAQAAAQH/AP4BAAD+/wACAgEAAQAAAf8AAQH//wAAAQAAAAEAAAABAP8A/wAAAQAAAQEAAP8B/wAAAP//AAAAAQAA/v///v39/fz9+/7+/f8AAQAAAAABAgEBAgIDAvv4+fz/+wMHAwECB/r3/fv7/QAB/QH8+vPx9Ozu+fD+Befx8PH2+f3+/gIBAvv9A/D1+hQdCRIXFgoNDwQGCv8CAgH/AQD/AQAB/gAA/wAAAQEB//8A////AAAAAQEB////AAEBAQAAAAAAAAABAAABAAAAAQEAAP8BAAAA/wAAAf8B///+AP7+/vv7/Pv6+vn6+Pr5+fr6+fz8+/39/P7//v8BAAICAAICAAQCAQICAQMCAAEA/v///fz9AQL9AQD7//7+/f8CAAIBAAABAgAAAP//AAAAAAD/Af///fz9/v3+/v39//79//79AP/+Af4AAAAAAAQA//4AAAEAAAAAAf8AAAD////+//8C/wEAAQD//f4CAgIAAAABAAAAAQAA////AAAAAAAAAP4A/wH/AP8AAAD//wAAAAAAAAD/AQD//wAB/wH/AP8AAAEAAf////8AAP//Af8A//8BAAAB/wEAAAAAAAH/AP8BAAEA/wAAAQAAAAAAAAAAAAD//wD/AP8A////AP8A//////////////8AAAABAAEA/wD+AP4B/wH//wD//wD//gD/Av8A/wD/AP7+/gEBAQL/AAEA/v8AAAD/Af////8BAAEAAQAAAAAA/wAAAP///wD/AP/////////+//4A/wD///4BAAH+AP4A///+/////v/+/////////v//AP///wIBAP79AQIBAf4BAf0B/wP//v7/AgABAAL/AP8A//8BAP//AQD//v//AAAAAAAAAQAA/wEAAP8AAP//AAAAAP///wAAAAAAAAAAAAD/AP7/AQAA/wD/Af///v8AAAAAAf8A/wAAAAD/AAAAAAAB/wD///8AAAAAAAAAAP/+AAABAAAAAAH/AAABAAH/AP8AAQABAAEBAP/+/wAAAAAA//8AAQIA/wD+AP8BAAEAAf//AP8AAAD//wAAAAEBAAEAAP8BAQEBAQD/AQEAAAD///////8AAAD//wD+/v8A/wAA/wEBAQH+//7/AP0CAgIGBgj4+AUFBQf/CP79/Pv9BPwAAQP/+fn8+/j9/wH8Aw3z+vzy9/v8/v0DAv8BAAEA/wH7/gATFhEoMC0TFRYQEhUFBgYBAAEAAAH/AP//AAEBAP//AAAA/wAA/wAA////AAAA/wAAAQAB/wH/AAAAAAAAAAABAAABAP//AQEBAAAAAAAAAAAA/gH////9/v/6+vr4+Pf4+Pf4+ff7+/n9/Pr+/fsB//0CAv8BAAIBAf8CAwIEAgECA/8CAf8CAf4BAP39/QEA//7//wIBAgH/AQD/AAIA//8AAAAAAAL/AAD+/gD/AP7+/v////8AAAABAQECAQEAAAD+AAAE//8A/wH//wD+//8AAgECAQD+AAAB/wABAf8A/f79AQEAAQED/wD/AP8A////AAD/AAAAAAAAAAD//wAAAP8BAQD//wAAAP8AAAEAAQEB/wD/Af8BAAD///8AAAAA/wAB//8AAQAA/wABAAABAP///wD/AgEA/wAAAAAAAQD//wAAAAAA//7+AAAAAP///wAAAAAA/////wD//wD/AAEAAQAA//7//wABAQAA//////7/////AAD///8A/wH/AP8A/wH+AP8B/wD/AAEBAP8AAQEAAf8AAAD/AP8B/wIBAP//AQAA////AP///v//AP/+AP8A/////wAB////////AAD////////+//8A//7//v/+AQABAAH//v//Af7+/gICAv//AP/+/wAC/v/+AgAAAAABAQAA//8AAP8AAAD/AP8AAQEBAP///wD/AAAA//8AAAAAAAABAAH+//7/AAD/AAEBAP4B/wD+/////wAAAQAAAAAAAP8AAAD/AP8AAAD///8AAAD/AAAA/wAAAQD///8BAAD//wEAAAD/AAAB//8AAAEBAAAA/wD/AAACAP/+/wAAAAAAAAAAAP8A/wD+AAEBAf8AAAAAAAEAAAAAAAABAAH/AAABAAD//wABAP8A/wAA//8AAAABAP//AAABAQEBAAABAQEC/v4BAQD/AAAA//79//3/BgYIAQD/BQQG/f37+/r7AwP5+gH2AgUGBAYBEwUS9PwH7/f4/Pz4A//9/f39BwcEHiEbNTg0Gh0eFRcaDAwOBAED//8CAAH+AP8AAAAA/wEB//7/AAAB/wD//wAAAP//AAAAAQAAAAAAAAAA/wAAAQEBAAAA/wEBAQAAAAAAAAAAAP8AAAAB///+/v38/fz7+vr6+vr6+/v5/P36/f37/v77AAD+BAIA/wICAwIBAwMCAwIBAwIABAIBAgQBAAIAAQH+/wEB/v7+AQABAQEBAQD9AAAA//8CAAH/AP8BAAD///8BAQEBAgH//wEAAQEBAQIBAf7+AQD/BP8A/v////4AAAEB/////wABAv//AQD+AP8CAwQDAwEAAf////8A/wEAAAAAAAD/AP8AAAAAAAAAAAAAAAAA/wAA/wAAAAAAAAD/AQAAAAAAAAAA//8AAP8AAAD/AAD//wEAAAAAAAAAAP///gEAAAH/AP8AAAEA//8B/gAAAgD/////AAAAAP///wAAAAAA/wD///8A//8A/v///wAA/wD+////AAEAAP8A/wD///7+/f7+/v3+/QEDAv////8A/wEAAQD+/v8CAAH+Af8AAQD/AQAAAP8AAAH/AQH+/gABAf8AAP8A/wAA/gD///8AAP7//gD/AAD//wAAAQD//////v8A/v8A//7//f///v/////+/v8BAQICAAEBAAL/Av///wH/AP8BAAH///8A/QAAAgAAAf8A/wAA/wD/AAEAAP7/////AAD/AAD/AAD/AAD/AAAA/wD/AAABAf///wD///8AAP/+//8AAAEAAP//AAEAAAAAAP8AAP8A/wAAAAABAAD/////AAAAAP4AAAEA/gAAAAD/AP8A/gEAAf8AAQEAAP//AAEAAAAAAAABAQD/Af8AAAH+AP8A/wABAP////8A/wIBAQD/AQABAQAAAAD/AAAB//8AAAH///8AAP8A/wD/AP8A/wD///////8AAP8AAAEAAQAAAQABAgEA/gEAAAIBAQQCBP8EBwEAA/4F/gYG/woK/f4P/AH/AP3+APz5/AkPEAsQDOrp6fXz9AEDAxobGyYmJhcZGhASFA4PEAUFCAEAAQAB//8AAQAB/wD//wD/AAEAAP///wD/AAEAAQAB////////AAEBAAEAAgEA//8BAQEA//8AAAAAAf8A/wEAAAAA//7///7+/vz9/Pv8+/z7+vz6+vr7+vz8+/39+/7++wAB/QICAAECAgIDAQUCAwQDAQMDAQMBAgEDAf8CAgECAgECAQEAAAEBAAEBAAEAAQEBAf//AQABAgAAAAD/AgD+////AAAAAAEB/wEBAAEBAAABAQH//wT/////AQAA//4A/wH+Af8C/wD/AQEBAQD//wIAAAEAAf8AAAAA/wD/AQABAAD/AAEAAAD/AP8AAAABAAAAAAD/AAD//wABAf8A/wAAAP8AAP//AP8AAP8AAP//AAD/AP8A//8AAAEAAf8A/v//AQABAAABAAEAAAEA//////8AAQD///4AAQAAAP//AAEA/////////////wAAAAAAAAD/AAAAAAD/AP7/AAAB///+/wL+/v3/AAP//v7+/v0CAQH/AQH/AQAC///+AP4BAgMA//8AAAAAAP//AAD/AAD/AP8B/wD/////AP8AAAD//v7//wAA/wAAAAAAAP//AP/+/////v/+//3////+/v//AP4AAAAB/////gD+AgD+/v7+Af4BAQIA////AAAAAQIAAAD///4AAAAAAAAAAQD//v////8AAP8AAAD/AAAAAAAAAf///v///wAAAAAAAAD//wD///7/AAAA//8AAQH/AP8AAQEA/wAAAAABAAIA////AP8A/wEAAP//AP8AAAD/AAAAAP8AAAEA////AQABAP///wH//wD/AAAAAAAA/wH/AAAAAAH/AAEAAAAA////AP4BAAH/AAABAQD///8BAP//AQEA/wAAAQAAAP//AAABAAD+AP8AAP8AAP8AAP8BAAACAQD/AgEC/wIBAQD7/v0BAQABAwIC/gQEAwACAwUBAAACAQEBAAECBAEAAAD+/gABAAATFxYcIB77+/v8+/0AAQIJCQsLCw0MDQ0HCQsEBAYAAAIAAAEA//0A/wAAAAAAAAEAAQABAAD/AP8AAAAB/wD+AAEAAAABAf8AAAH/AAABAQEBAAD/AAEBAAH//wAAAP//AQEA/wD//v78/fz6+vr5+fn4+fj5+vj6+vn8/Pn9/vr///wAAP0CAgEBAgEEAgMDBAICAgEDAwECAgICAwH/AgEBAQIBAQEBAgIAAAEBAAACAAIAAgIBAAIAAQL//wACAP/6/f0C/wIAAQAAAP8AAP///v8BAQD/AQEEAAAA////AAL/AAAAAf8A/wH/AAD///8AAAAAAAEAAP8AAf8AAAH/AP8B/wEAAAAAAAD/AP8AAAD/AAEAAAAA//8AAAAA//8AAAAAAAABAAD//wAA//8A//8A////AP8A/wAAAf//AAEAAAEBAAD//wAAAP8AAAD/AAAB/wH+Af8BAAAA////AAD/////////AAD+AAD/AAD/////AAAAAAD/AAD///////79AAIE//7+/v79/v39/gMC/v4D/gL/AP7+AQEB/gIAAgEBAP7//wD/AQEBAAAAAAD//wAAAP8B/wD//wAAAP8A/v//AAAAAAD/AP///wAAAP///v/+/////v/+AP8A///+AAD+AP///////wABAQH+Af4B/gH+/gH/AQH/AgH//gAAAf7/AQAA/wD/AP8A/wAAAAD//wD///8A/////wAA/////wD///4AAAAAAAD//////wD/////////AP//AAAA////AQABAP8A//8AAAAAAP///gD/AAD//wAA/wEAAP8BAAD///8AAAEBAQAA////AP8AAAAA/wEAAf8A/wAAAAAA////AQADAAEAAAAA/wD/AAAAAAABAP8A/wH/AAABAQD//wAAAf4A/wEAAP8AAAH/AAEA/wAAAQD/AAABAAEBAAD+/wAAAAEBAQEAAwMD/P0AAgIC/gICAv/+AQIBAQADA/8AAAEAAgEAAQECAgICAQEAAwMCAAAABAUIBwkBAQEBAAABAgIDBgcIBwUHBAYGAgIDAAEC//8BAAD/Af8A/wEAAP8BAAAAAQD//gD/AP8AAf8B/wD/AAAAAAAAAAAB////AQIAAP8B/wAAAAAA/wD+AP8A/wEAAP7//////f39/Pr8+vn6+vn6+vn4+vn4/fv5/fz8/vz8AP8AAQEBAgEAAgIBAwMBAQIAAwMBAgMDAgICAgIBAAICAAIAAQECAgICAQABAAABAQAAAAECAQEBAQAB/wAB/v8AAwAA/v8A/v//AQEAAQEAAQIAAP0AAAABBP///wAAAQD+/wECAQABAQD/AQD/AQAAAQACAAD//wABAf8B/wD/AAEB////AAEAAAD/AAEB/////wD/AQABAQAAAAAA/wD/AAABAAAA//8AAAD/AAAAAQAA////AAAAAAAAAP8AAQD/AAAA/wD//wD//wABAQABAgAA/gD/AP8A//8AAAH/AP7//wD/AAAA//8A///+AAAB//8A/wD//gEAAAH///7//gD/AAD////+/////v8A/v/+/wAD//7+/gEAAQADAQEAAP/+AAAB/wAAAP///gEBAAAAAP8AAQAB/wAAAP//AP7//wD+/v8A/wD/AAD/AP///gAA//7+/////f///////wD/AP//AAAAAQD/AAAAAP//AP//AP7+AP8CAAD/AP//AAAAAAAA//8AAAAAAAD/AP8A/wD/AP7///8A//8AAP/////+/v////8AAP/////+/wABAAD/////AAAAAAAAAP///wABAAEAAf///wAAAAD/AP8AAAAAAAD/AAAAAAD/AP8A/wD/AAAAAAD///8AAQD/AAAA//8BAQD///8AAP8AAP///wAAAQEA/v8AAAAAAQEBAAD/AAAAAP8BAAH/Af8A/wAAAQD/AP4B/wEAAAEAAAAAAAD//wD/AQABAf///wEBAQEBAgH//QIBAQACA/7//gP///8CAwEB/gIC/gMDBAEB/v8AAAD//wECAgICAQICAgICAwIBAwIDAwICBAIDBAQDBQMDBAICAgECAgIAAQABAAAA/wAAAP4A//////8BAAH+AQAB/wAAAP7+/wD/AAAAAAABAAD/AAEA//8AAP8A/wEBAP//AAEAAAEA//8AAAAAAAABAQEA//8A//7+//z8/fr7+vr6+vn6+fn6+fr7+vz8+//9/AD//gECAAT/AgEBAAICAgMCAQICAgICAQIDAQIBAQICAgABAQABAgICAgICAgAAAAABAQEAAQAAAQEAAgAAAQAAAQAAAAEA/wD//wIBAv4A/f7///8A/wAA/v//AQQAAP///wEBAf8A//8AAP8AAf//AP8BAQABAAABAQAAAAD//wABAAD///8AAAD/AQAAAQAA/wAAAAD/Af8B/wAAAQD//v8BAQD/////AP4A////AP7///////8BAQD/AAAA/gAAAf8AAAD///8BAP8AAf//AAAA//0AAAAAAQAAAAAA/gD/AP8A//8A/wH/AP//AAD/AP8A/wAB/v/+AP///wAA//8AAP//AAAB/////v/+/v7+/f//Av79/f4AAQIC//8A/v//AP//Af4C////AQEA/wACAQABAgH///8A/wH/////AP/+//0A/////v8BAAH//wAAAP8A/wAA//7+/v7///8AAP8A//4A//8AAP8BAAD/AQEB/wH/AAEA/wD///7+//4B/gACAgAAAAIA//8AAQEA/wD/AAD////////+//8A//////////////7/AP///wAAAQH//wD/AAEBAP///wEA//8A//8A/wD/AP8AAQAA/wEAAQAA/wAA/wD/AAD///8AAAAA/wABAAD///8AAAAAAf//AAABAP////8AAQEAAAAAAAABAAH/AP/+//0AAAABAAL/AAIA/wEBAAAAAAAAAQAA/wD/AP8AAQD//wAAAAEAAAAAAf8BAAIAAQAA/wABAQEAAQEA//8BAAIAAgAB/gADAAEAAgADAwH//wEA/wMEA/38/f4AAAACAQEAAgICAQEDAwQCAgIDAwQDBAYDAwQCAgIBAgIAAAEAAAAAAQAA/wD///7/AAAA/wD/AAAAAAAAAAD/AQAAAAD/AAAAAAH/AP8AAAH/////AP///wAB//8BAAD/AP8AAAD/AQAAAAABAQH//wAA/wAAAQD////9/Pz7+vr6+Pn4+Pn6+fj6+vn7+/r+/fz//v0BAP4CAQD/AQECAgEDAQIBAQEDAQIBAQIBAQIBAgIAAQECAgEAAwICAQEAAQEBAQEA/wEBAQEBAQIAAAEAAAL//gEBAP8BAQEBAf4AAAEAAP8AAP8A/wD//wH/AP4E/v7/AgL+//8C/gD/Af7/AgEAAAEBAAAAAAAA/wABAQAAAf8AAAH//wD/AAD/Af8BAAEA/wABAQAA/////wAAAf8BAAAA/v/+AP//AAD//wD/AAAAAAEBAf///wD+Af///gH/AP8AAAAAAAD/AQAAAAD/AAD//wAAAAABAP8AAP8AAP8A/wD/AQAA/wD+/wD//v/+AP//AP//AAD/AP////8A///+AAAAAAAA/gAAAQD///4A//4A/v4AAv8AAP8A/v8BAv8A/v4AAQH//gAAAAD/AAAB/wMCAf4A/gEBAQD/AP///v/+///+/v7+AP8AAgEB/wAB//7+/v/+//7//v7+AAAAAAD+AP//AAD//wAAAAABAP8B/wEBAf8B/wH//////v/+Av8A//4CAAL/AP8B////AAAAAP///wD/////////AP/+//8A///+/////v//AP8AAAEA/////wAAAQAAAAD/AQAAAAAA/wD/AP8A//8AAAAAAAAA////AAEAAP//AAEAAP7/AAAA/wAA/wD/AAAAAP4BAAEA/wAAAAEAAP//AAACAAAA/////wD/AP8AAQEB////AQAAAAAA/wABAQD///8AAAD/AAEAAQABAQAAAP8A/wD/AP//AQH/AAABAAEAAAEBAP8A/wAAAQMBAP4CAgIA///+AgADAAABAQAA/wAFAP//BP/+AP8AAQICAQEAAQIEAwICAgIDAgMCAwIEAAEAAAABAQAA/wD/AAH/AP8B/wAAAAEBAP7//wAAAAD//wAAAP8AAQAA/wABAP///wEAAP4AAAAAAAAAAP8AAf8A/wAAAAD/AP8AAAEAAP//AQEB////AAABAAEA/wAB/v4A/P39+vr7+fr6+fj4+Pj5+vr7/Pz7/v38///8AAD/AgH/AQECAgIBAgMDAgEBAgIAAgIBAgECAgABAAEBAQECAQEBAgIBAQECAAABAQECAAEBAAEC/wACAQABAQAAAP7+AAEAAf8C/wD/AAEAAAAA/wAB/////v7/BAD/AP7+AAIC/wEAAf8AAP8AAAH/AAD///8B/wD//v8AAQAA/wH/AAAA/wAAAP8AAAEAAAAA/v8AAAEBAQD/AP7+/wEBAAD/AQAA/v8A/wEAAP8AAQD//f///wABAP///wAA/wD/AP8AAAEAAP4A/wEA//8B/wD/AQABAAH/Af///wEAAAAA/v//AP////8A/wEAAP8AAP8BAAD+////AP8A/wAAAP////8AAAIA//7//v7//v3//QH+AgL+/v7+/gEB/f//AgABAAD/Af8AAQEBAQEAAf//AP4BAAD+//8B/wD//////v7+//7+/gAAAQD/AP8A///////+/v7///////8A/wAA/wH//gAA/wAAAQAA//8BAQD///8A//////4A/gH/Av////8A///+AAAA/wAAAP///wEBAf///v7+/////v//AAD//////v4AAAD/////AAH//wAAAAAAAP8AAP//AAD//wD/AAAAAP8A////AQAB/wD///8AAAD/////AAD/AP8AAAAAAAAA/wAAAf///wAA/wD/AAAA/wEAAf8AAQAA/wD/AAAA/wAA/wABAP//AAD//////wEBAQAA//8BAAEAAP8B/wD/AAAAAAEBAQAA/wAAAAD/AP4A/wAAAAIBAQH/AP8AAAAA////AQABAQEAAAAAAgIB/gEDAwICA/8AAP/+/gMAAAABAQIAAQICAgECAgICAgABAQEAAQECAQAAAf////8AAAAAAAD/AAAA/wD/AP8BAAABAAD+/wAAAAEAAP8AAf8B/wD/AAEAAAEAAP8B//////8BAAABAP/+AAD+AP8AAAABAAAAAAAAAAAAAAAAAAD/AAAA//7//v39/Pv7+/v6+vj49/n5+Pn5+Pv7+vz8/P39/f7/AAEBAQEBAQECAQIBAgICAQMCAwICAQIBAQEAAQECAgABAAEBAgEBAQABAgEBAQEBAwAAAgABAQEAAf8BAf//Af8B//4AAP4A//wB/v//////AAAAAQD/AAAAAQEAAQT+//4B/wH/AQH/AAD//wL+/v8CBP8AAAAA//4AAQIBAAD/AP//AAAAAAAAAAAAAP4B/wEAAAAAAQAA/////wAAAQEA/wD/AP8AAP8A//7+AAABAAAAAAH/Af4BAP//AAAA/wD/AP8A/wEAAQAAAAD/AP///wAB/////wAAAAAAAAH/AP4A/////wD/AP///wAAAP8A//8AAP///wD/AAAA/wEAAAAAAQAB/wD/AP8A/v7+/vz+/QP+AgL9/f0CAQIBAAEAAAACAAEAAQEAAP8AAAABAf8A//8AAAEAAf8A/wD//wD//gAA/v///wAAAP/+AAAAAP///v7+///+/v4AAP7///////4AAP8AAAAAAAABAAAAAP4B/wH//v7/AgD+/gEBAP4AAAD/AQACAgEAAQAAAAEAAAD+/v7///7+//////8A/wD+//4AAP///wAA//8AAAD+AAEA//8AAAAA/wABAAD+/wAAAP///wD/AAAA////AAD///8AAAAAAAD///8AAAAAAAD/AP///gAAAP8AAAAAAAABAQD///8A/wAAAAH/AP8AAAABAAAAAAAA/wAAAP7/AAEBAP4AAAAAAAAAAAH/AAAA/wAAAAAAAAAA////AAABAAD/AAAAAAABAf//AAAA/wD/AQAA/wAAAf8AAAABAQIA//8AAgIAAAEB//8A/wD/BAICAAH+AAACAQECAgIBAQIBAQEAAP8AAAH/AP8AAAAAAQAAAAAAAAAAAAD/AP8AAAAA/wD///8AAQAA/wAAAQABAP8A/wD/////AAAA//4AAP//AP8BAAD/AAEAAP//AAAAAQAA/wAAAAABAQEA/wAAAQEAAP/+//7+/f78/Pz7+/r4+ff4+Pj4+Pb6+vn8+/n9/fv9//3+AP4AAgABAQMBAQABAgIBAQABAQABAgECAwIBAQEAAgEAAQEAAgEAAQIBAAIAAAMAAQIAAQIBAAEAAQAA/wEAAAEAAAD///////8A/v//AP///////wD//wAA////AAAE//39AAMC//4B/wMB//7+AAIC//8AAAD//wH/Af7/AAICAAD//wAAAAD/AgAA/wAB/wD+/wAAAQAB/v8BAQABAP8B/gD9AP/9/wD/AAAAAAAA/wAAAAD/AQAB/v/+AAAA/wAAAAAA/wD///4AAQH/AAABAAD//v8AAAD/AAAAAAD/AP///wH/AAH/AP//AAABAAEA//8B//8AAQAAAP8B/wD/AAAAAP//////AQAB/wH//v/////+/v7+//79/f4CAQEAAgIA//8CAP8AAAH/AAAA/wH/AAD/AAAAAP4AAAH//wAA/////gD/AP8AAAAA/wD+/wAAAP8A//////7///8A/wD///8AAQEAAAAAAf///wEBAP//AAAAAP/+/v4AAAEBAQH+AP4BAgH9/gACAQEBAAD/AAAA///+//8AAP//AP///v//AP7+/wD///8B////AQAAAAH+/wAAAQAB/wEAAP8AAQEA/v4AAAAAAf8B/wH/AP//AAD/////AAABAAEAAP8AAP8AAAEAAQD//wAAAAAAAP8AAAAB/wABAQAAAAD/AP//AAEBAAAAAP8AAAEAAP8BAP7+AAEAAAEA/wAAAP8AAQICAP8AAP8BAAEB/gD/AP8AAAH////+Af8AAAIC/wAAAQD/AP8AAAH/Af8CAAH//wABAAAAAAABAQAAAAECAAL/AQABAAAAAgAAAAABAAEBAAAA/////wEAAQH/AAAAAAAA/wD/AAABAQD//wAAAAAAAAEAAP//AAEA////AAAA//////8AAP8A/wD//wD+AP8AAAAAAf8A/wD///8AAP//AAEAAP///wABAQAAAAEAAP8AAP8A/wAA//8A/v7++/v7+Pj39/j2+fn1+fn4+vr5+/v7/v77/v/8/gD+AgEBAQEAAQEBAQEBAgIBAAMBAQEBAAAAAAEB//8BAQICAAADAgEDAAEBAAEAAAACAQABAAAB/wAAAQAB/f8A/v/+/wAA//4A//8B//7///8A/////wAA/wAAAP8ABAAA/v//Af8BAQD//wABAAAAAAD//v4AAQH+AAABAQD///8A/wD/AAAB//4BAAEA//8AAAAAAf///gAAAv8AAAAA/gD//wAAAQAA/gAAAAAAAP8A/wD/AAAAAAAAAP8A/wAA///+AP8BAAEAAP/+AAAAAAABAQAA/wAAAAD//v8AAAAB/wD/AAAAAP//AP///gD/AQD/AAH/AP//AP8AAP//AAAAAAAAAAAAAP8A/wD/AP/+/v3+/AH+Av3+/AH+Af4CAf7/AQL//wAA/wAAAAAAAP/+AAEC//8AAAEAAP/+/////v///QD+//8A/wD//wAAAf///wD//gD/AAABAQAA/wD/AAEAAP//AAD//wABAQD//wABAP///gL/AgABAf/+//8B/v8CAf8BAv///gL/AQABAP//AP///wAA////AP7////+//8AAAD+AP8A/gD///0AAQH//wEAAP8AAAEBAQAA//7/AAAAAAAA//8AAP7//wAAAP8AAP//AAEA/wD/AQAAAP///wAAAP8AAf8A/wD//wAAAQAA/wEAAf8A//8A//8AAAH///8AAAAA////AAD/AAAAAP8A/gD//gABAgEBAgAAAAD/AAABAf////8A/wAAAP//AAEBAP8A///+/gAAAAEBAQAA/wAAAQEB/gEBAAD+AQAAAAAAAAAAAAEB/wAAAf8AAAAAAAAAAAAAAP7+/gECAgEAAQD/AP8AAAABAQAAAAH/Af8A//8AAAAA/wAAAP8A/////wAAAAD/AP///wAAAAAA//8A/wD/AAH/Af4A/gD/AP4AAP///wH/AAD/AAD///8AAAAB/wABAf//AAAAAf8A/wD/AP/+/vz9/Pv7+vn5+Pn5+fn5+fr6+vz7+/79/P79/f///wEBAAABAQABAQECAAABAQABAgEAAQABAf4BAQMBAgEBAwEBAgEBAgABAgEAAQAAAP8A/v8AAgEAAQD+Af4AAf///v3/////AP7+AP//Af//AP//AP/+/wD/AP/+/////gT+//8C/wAA/gD/AQAAAP////////8AAP8AAAEAAP7//wAAAQD/AP8BAAEB/wD/AAEAAAABAAAAAQEA////AAAA/wD/////AP4BAQEAAP8AAAAA/wAA/wD/AP8A/wEA/wEA//7/Af8A////AAAAAP8AAAAB/wD///8AAf//AAAAAAAA/v//AAABAP////8AAAAAAAAAAP//AP8AAP8AAAAAAAAAAP////////8AAAEBAQD+//0B/gH9/vwC/gL+/wP+/v7+/gMBAAAAAf8AAP8BAQIAAP8AAAEA/v/+AQAB/////wD//wD+//8AAP8A/wD/AP//AAAAAAD/AAD///////////8AAP////8AAQAAAP8AAAAA//8AAAD///8A//8AAf///wD+/v8AAP4BAgH+AP8B/wH/AP//AP8A/wD+/wD/////AP7//v//AAAA//////8AAP//AAD/AAECAAD/AP8A/wEBAf//AAAA/wAA//8BAAD/AP8AAAABAAH///8BAgAA/gAAAAAA/wAAAf8B/wD/AQEA/wD//wAAAf8BAAEA/wABAP8A/wD///8AAf8AAAD//wEAAQAAAAD/AP8B//7/AAAAAP8A/wEBAAIAAQD//wAAAAABAQH+//4A/wAAAP4BAQL///8CAQAAAQAAAAD//gEAAf4BAAD//wEBAQAAAAAAAAAAAP8AAAD/AAAAAAABAAIAAAD///8AAAAAAAAB////AQD/AAEBAAAAAP8AAAD/AAD+AAAAAAEAAAAAAP8AAAH/AP7///8AAAD/////AP8AAAD/AAEBAP8AAAH/AP8AAAAAAQAAAAEBAP8A//8AAQEAAP8A///////9/v79/Pz6+fr6+vv7+vn7+vn7/Pn8/Pv9/vz///4AAAABAAIBAAABAQEAAAEBAQABAQEAAAIAAQECAQL/AAABAQAB/wABAgEA/wEAAAAAAQEA/wAAAAH/AAD/AP/////+/////gD9/v8A//4A/wEA//8AAP7/AP8AAP8BAQABAAEE/////////wL/AAEA/wABAAAAAAAAAAD/AAAA/wAAAAAAAQABAQAAAP4A/wH/AQAAAAD//wECAf8B/wAAAP/+/wAAAAAAAAAA////AAD/AAAAAAAA/wD/AP8AAAACAQH+AAABAf7///8BAAD/AAAA/////wD/AP8AAP8AAAH//wAAAQD/////AAAA//8AAAAAAP/+AQAAAAD/AAEAAP//AAAA//8AAAABAP8AAP///wH/AAEA/gD8AQEC/gL+//7+/wH+/v7+AAH9AgD/AQAB/////wH//f7/AQEAAP///v//AP7+/////wD/AP8AAAD///8A/wAA//7/AP/+Af///v//AP8A/wEAAAAAAP8A/wD/AAAAAP8AAAEA/gD/Af/+Af4CAQD+AQIBAP8A//8AAAAA/gD/AP/+/wABAP///wD///////8A/wD/AP8A//8AAAAB/wD/AP8AAQD//gD/AP8BAQH/AP8A////AAD//gAAAP8A/wAAAAAA//8AAAAB//7/AAEAAf8A/wAAAAAB/wAAAP//AAAAAAEAAAAB//8AAAAA//8BAAD/AAEAAAEB//7/AAEAAf8BAAAA/wAB/wAAAP7+AAEBAAED//7+AAD//wAAAAEAAf8AAAEBAQAA////AAD+AQAAAAEBAP8AAAEA/wAAAQAC/v//AP//AAAA//8AAQEA/wAA/wAAAQAA/wD/AAD/AP4AAAEAAf8AAAAA/wEAAP7/AAEB/gAAAQAA/wAAAAAAAAH//wAAAP8BAQAAAAD/AP8AAAD///8A/wAA//8A//8AAf///wAAAQAA/wABAAH+AP8AAQAAAAAAAAEAAAD/AAABAAAA///+/f38+vr6+vr6+vn5+vr6+vr5/Pv7/P36/f39/v//AP//AAIAAAEBAQEBAAEB/wAAAAECAQEAAAAAAP8BAAICAAAB/wAA/v7/AgL/AAAB//4AAAEBAQAA/wD//v///////v4B//////7//v7///7+/v7+//3/AP//////////AAAABAD/AP/////+//4C/wEAAP8AAP//AAAB/wD/AAAAAAEBAQD///8AAAEA/wAAAP///wAAAAEA/v7/AQABAAAA////AAEBAAH///8AAAAAAAAA/wD/AAD/AP8AAAD///8AAAAAAQAAAv8B/QH//////gAA/wD//wABAAAAAQAA/wAAAP///v//AAAAAAD//gAAAQAAAP8AAP//AAAAAP//AP///wAA//////8A/wAA/wD//////wAA/wH9/P4DBP/+//0B/gD9/gAA/QACAAEBAgAA/wAAAAIB//8A/wD///8A/v8A//7//v/+/////wABAAD/AAD//wAA//7//wEAAAEAAP8AAP/+/wEAAAABAAAAAf8A/wAA/v8A/wIAAgAAAf7//gD/AQD/AQD/AQH9Af8BAAAAAP8AAAAA/v///wD/AP4A/wD/AP///wD/AP//AAEBAQD/Af8A/wAA////Af8A/gEBAAD/AAD/AP8A/////////wAAAf8AAAEAAP//AAEA/wAAAP8AAf8AAAD//wD/AAAAAAAAAAD/AAAA////AAAAAQD///8A/wAAAP//AAEAAP/+/wAAAf8AAP/+/wABAQD/Af8A/wEA/gEB/wABAQABAQD/AP///wAA/wABAP//AAACAAABAf7+AAEC////AAAAAQD//////wABAAD/AAABAQAAAAD/AAAA//8BAAAAAQAA/////wD/AP8AAAD/AAAB//8AAQIAAAAAAf4A/wAAAAAA////AAAAAAD/AP8A////AAAA//8AAQD//v//AP8AAAEAAf4B/wD+AP8AAAEAAAAAAf8A/////wAAAQEAAAABAP8AAP8A//7/AP39/fv7/Pr7+/r7+/v8+vz9+/z9+v7+/P7//f/+/wABAQEA/wAAAP//AQECAgEBAf8AAQAAAgEAAgAAAQD/AgAAAv8AAQABAQD/AgACAQEBAQAAAP//AAAAAP/+//7/AP3+/v7+/v///gD//////gH//wD//wAA/wIAAP8BAf8B/wT/AP4BAAIAAAAB/wD/AP8A/wAAAgAA/wD/AQABAAAA/wD+Af8BAAEA/wAA//8AAAEAAQD//wAAAP8A/wABAQEBAAD/////AAAA/wAAAAAAAAH//wAAAP8BAAD/AAEB////AP//AP8B/wD/AP8A//7/AP8A/wAA/wD+AP8CAQH/AP8A/wEAAP8A/wD/AAEAAP8AAAAAAAD/AP7//wAA/////wD/AP4A/gAAAAD/AP8A////Af/9/f3/AAEC/Pz9AvwAAQIBAP0BAQEAAQICAP7//wH+//4AAAEB////AP7///8AAAAA//////8AAP///gAAAQAA///+//7///8AAQEAAAAAAAACAAD/Af//AAAA/wD/AP////8BAAD9AP4B/gEAAQIB///+/v0AAAIAAQECAAH/AAAAAAAAAAD/AAEBAP8A/wD//wAA//8A/wIA////AP///wAAAAD//wD+AP7/AP8A/QAAAQABAAAA/wD/AP//AP4A/wEAAAL+AP8A////AQAB/wAAAAEAAf/+/wAA//8BAQAAAAH///////8AAAAAAAD///8AAf8A//8AAAD/AAEAAAD/AP7/AAL/AAEA/wH//v4AAAEAAv7+/wEB/wAAAAEAAP8BAQEAAAH///8BAQH//gAAAQAAAQAA/gH/Af8BAf8AAQAA//4AAAH/AAABAAD/////AAAAAQEA/v8AAP8AAAEAAAEAAQD/AP8AAAEA/wAAAf/+/wAAAP8BAAD/AP8AAAD/AP8BAAH/AP8A/wD+AP8A/wD//////wD/AAAAAP/+/////wD/Af8A/wAAAAAAAAAAAAAAAAEAAP//AAEAAAAB/////wH//v/8/P78/Pz8+/r7+/j7+vn8/Pr9/fv+/v3//v7/AP8BAf8AAAEAAAEAAQAAAAD/Af///wH/AAH/AAEAAQIBAAH/AQEBAAEAAAH/AAAA/wAAAAD///7//wD/AAD+///+/wD+/v7+/f///f///////gD///4A//8A/wD///4AAAAAAP8EAP8AAAAAAP8A//8AAv8AAAAAAP///wEBAQD/AAAB/wD/AAAAAAAAAAAA/wAAAAH/AQABAP8AAAEAAAAAAP//AAAAAP//AAAAAAD/AP8A/wAAAAAAAP8A/wAAAAD//wAA//8A//8AAAAAAP8A/wAA//8AAQD+AAAAAQEB/wAA////AQABAAAA/gD/AQD/////AP8AAAEA////AAAA///////+AAH//wEAAP8B/wD/AAD/////AQAA/v79/P77Av0EAAECAQEAAf4BAQEC/wID/v//A/7+/wL/AAAAAAAA///+AP///wAAAAAA/v8AAP//AP////8A////AAD/////AP///wD/AAAA//8AAAAA/wD/AP8AAP8A//8AAAEAAAL//wD+//4B/wID/v//AgAA/v8AAQEBAP8A/wH/AAAA/wABAAAAAAD+/wABAAD//wD/AP8A/wAAAP///////wH//////wABAf///wAAAAAA/////wD/Af////8AAgH//gAAAf8A/gAAAQD+AAAAAP8AAP8A/wAA///+AP///wAAAAD/AQACAAD/AP7/AAEB////AAD/AQEA/v8AAAD+AAAB/v7/AAEA//7+AP0AAAEAAAAAAQAAAgEA/v8A/wABAgEC////AQIBAP8B//8CAgIAAAAB////AAH/AP8AAAD/AAD/AP8BAAEB/wAAAAD/AQAA/v8AAQEAAQAAAAD/////AQECAAAA//8AAAD/AQAA/v8AAAAAAAEA/////wD/AAAAAAABAAAA////AAAAAAAAAP7//wD//////wAAAP8A//7/AAAAAQH/AAAAAAH/AQAAAAAA/////wAAAP8A//79//7+/v3+//////7+/v38/f39/v7//v/+AAD/AAD/AP8A/wEAAQAA/wABAAD/AP8CAAEB/gAAAP8AAv8AAAAAAP8AAQEB//8B/gD/AQAAAP///wD/AAAB//4A/v8A/f3+/f7///7//f3//////f7+//4A/v//AP////8A//7+AQAABP8AAP///wADAQABAQABAAABAP8AAAIAAAAAAP///wEBAQEAAQD///8AAAEAAAD/AP8A/wEAAQAAAAAAAP8A/wAAAf8AAAD///8AAQAA/wABAAD/AAAB/wD/////AP//AP8A/wABAAD/AP8A////AP///gAA/wEAAQABAP8A/wABAAD//wD//wAAAP/+AAAAAP8A/wD/AP//AAAAAAAA//8AAQD/AQD//v8A/gD//wAAAQAA////AP/+/v79/f0C+wEBAgEBAQEBAgECA//+AQUAAf8CAP/+/wEA/wABAAAA//////////7+/wAAAP///wD/////AP8B/wD+//8A/wD//wABAAD//v8AAAD///8AAQAAAAD/AQAB/gD/AAD+/wAC//8A//7+/QMBAv4AAgEAAAABAAAAAAAAAP///wAAAAD//wD/AAD///7/AAD//wAA/wAAAf////8A/wD/AAD//wAA//4AAAD//wAA//8AAQD///8AAAD//v3/AAAAAP8B/wAAAQAAAAD///8AAP//AAD//wABAQABAAD//wABAv///wAAAAABAf8A/wAAAP///wAAAAABAP/+AP7//QH/Af7/Af///wIAAP///wABAgAA//3/AAABAAAAAf7+AAABAAH/AgEBAAEB/v39AgEC/wAAAgABAAD//gAAAQEBAQAA/gEBAgAAAAAAAP8A/wAAAP8BAv8A/gAAAAABAQAA/wAAAP//AP///gEAAP8AAQABAAD/AQD//////wIBAf8BAP////8A/wD/Af8A//8A//7//wAA/wD/AP8BAAABAAAAAf///wD//wAAAf8B/wEA/wAAAAD/Af8A////AP8A/gEBAAEBAQICBAICAwEAAgD//wAAAf8A/wAAAAAAAAD/Af8BAAEAAAD/AQABAQAAAQEAAAEAAAAAAP///wH///4A/wEBAQD/AAAAAAAA//8A/wAAAP7/AP7+///+//7+/wD+//8A//7+///+///+///+//8AAAAA/wEBAP/+/wQA//8BAAEAAAABAQEAAAAA/wAAAQEAAQABAAH/Af8AAAAA/wAAAAAAAAD/AAD/AQAB/wD/AAAAAAABAP8AAAD///8AAAAAAQEAAAAA/wAA/wABAQD//wEBAAAAAAAAAP7/AAAA/wD//wAAAAAAAP8A/wD/AQAAAAAB/wD/AAAAAAD///8AAP8A/wAAAf8A/wAAAAAAAAAAAAD///8AAQAA//8AAP//AP8AAAD/AAABAP8AAAAAAP///////v7+/v3+/vz+/gH+/gIA/f0DAwD+/gACAQIAAAABAP///wD/AP////////////////8AAAH//wAAAP7//v7/AP8A//8A/wAA/wH//wAAAQD//wABAP8AAAD/AP8B/wAAAAAAAf8AAP8AAP8AAAD+/gABAv8AAAAA/wAA/wAAAAAA//8AAAD//////wD/AAAB//7/AAD//wAAAP4AAAAAAP////8AAAAA//8A/wAAAP///wD/AP4AAAD//wAAAAAAAAAAAAAA/wABAQD+AP4A/wAAAP8AAQEAAAAB//8AAQEAAAAA//8A/wD/AAAAAP8AAAAAAAAAAP///wH/AP////4AAAD9//4B/wEAAAD+AQABAAAA/v3/AQAAAAEA/gAAAgABAf//AAEA//8AAP8A/wEAAf///QEAAf8AAP8AAP8AAAECAgEBAAIAAP4AAAH/AP7+/gABAP8BAv//AQEAAAAB//8AAgEAAAEA////////AAAAAP8A/wEAAP8AAAAA/wD+AP////8BAAAAAAD/////AP////8AAAD/AAAAAP4A/gAAAAD/AAD//wABAAEAAAAA/wD/AQAAAAD/AP//////AP8BAQIDAgMDAwIFBAQFBQYFBQb6+wX9/fz+AAIAAP7/AAAAAQABAAEA/wD/AQACAAAAAAD/AAD/AAAAAP8CAAH/AAAA//8A//4AAAEBAf//AAH//wD+///+/v/+/v79//7//wD+/////f7+/v7+//3+/////////wD/AP7//wD/AP8EAAAAAAAAAP8B////Af8AAAAAAAAAAAD/AAABAP8BAAH/AAAAAAAAAAD/AP8BAQAAAAEAAAD/AAAAAAAAAAAAAAAAAAAAAAD/AP8AAAH//v4AAgAA//8AAP8A/////wAA//8AAP8BAP8AAAAAAP8AAAABAf//AAD//v//AQIC/wD/AQEA////AAAA//8AAQD/AAAAAAAAAAAAAAEAAP8BAQEA//8AAAD/AP8AAQAA/wD/AP7//gD/AAAA/f38AQIBAQEBAgEB/AECBAABAQAA/QMBAP4AAAEA/wEAAAD/AP4A///+/gD///4AAAD/AAD//////////wD/AAD/AP/+//8AAAABAP8AAAD/AAD//wAAAAABAP8AAAIA//8AAAAA//8A/wAAAAEAAP/9//4CAgICAP8AAAAAAP8AAP8AAAD+/wAAAAD/AP///wD///8AAP///wAAAAAA/wD+AP8A/wAAAP/+AAAB//8AAP8AAP8B/wD//wD/AAD//wAAAQAAAAAB/wAAAAAAAP//AQEB/wD/Af8B/wAAAAD/AP8AAAD+AAABAAAAAP///wAAAAD///8AAAH+//4A/wAA//7+AQD//wABAAD/AP8B/wAAAAD///8CAQD/AP8B//4A/wH+AgED/wEAAAAA/wD/AP4AAAH+Av8A/wAA/wEAAQAB//4C/wD+AAAAAAAA/wD/AQAB/wEAAP8AAP/+/wAA/wEBAf8AAf//////////AAABAQAAAAD/AAAAAAAB/wEAAf8A//////8BAAEA//8AAAH/AP//AP8AAAH///8A////AAAAAAD/AP8A//8A/wD/AQEA//8AAAABAAH/AP//AQD/AgIBAwQCBQUFBgcHCPsJ/fz9/Pz7/v79/v///f78/wD/AgAA/wEBAAEAAAAA/wAAAP8AAQAA/wD+AP8D/gH/Af/+AQEC//8AAAEA/v4BAAAA/v8A/v8A/v7//f3+/f7+//8A/v3+/v7//v7///8A//8A/gD///8AAQAAAAAAAP8ABP8AAAABAAEBAAEBAQECAQEBAAEBAAEAAQABAAD//wAAAP8AAAAAAAEAAf8BAAEAAAAAAAAAAAD///8AAQAB//8AAQAA/gD/AP4AAAD//wEBAP7//wAAAAAAAP8AAP///wAAAP8A/gABAP///wABAQEA/wAAAQAA/wEAAf///wAA//8AAAD/AP8AAAEB/////wAAAf///wAA/wAAAAAA/wD//wAA/wAA/wABAP///////gAAAAD///7//wEB/v38AAEAAAEAAAMAAAEAAAEBAQEBAAAAAgICAv8AAAD/AP8A//8A/wD/AP///gAAAP8A/wD///4A/gD///7//wAAAAEA/wAAAAEAAAAA/wAAAAAAAQD/AAABAAD/AQEAAAD/AP8AAAAB////AQABAAAA////////AAEBAf///gIAAAAAAQAA////AAD/////////AAABAAD/////AAD/AP8BAAAAAP8AAf//AP8AAAAAAf7//wAAAP8A//8AAAAA//8AAAEAAQEAAgABAQAAAP///gD/AP8BAQD//wAAAAEAAf//AAAA/wAAAP///wAAAAAAAAABAP//Af///gD/AAAAAP//AP///wAAAAEA//8BAAD/AAAA//8AAQAAAAAA////AP8A/wAA////AQIBAP///wD///0BAAD/AAABAQAAAP4C/v8AAgD//wD//wAAAAEBAQECAQAA/gD///8BAQEA/wD+Av//AP///v//AP8A/wEBAgEA/wABAAAA///+AP8AAAAAAAD/AAD//wAAAP//AP8BAAAAAAD/AAD/AAD/AP8A/wD/AAD/AAAAAP8A/wD///8AAAAB///+AAD//wABAAMBAQQEBAUFBgkHCP/9/v//AP7+/gD/AP///gD9Af79/AAB/wH/AQAAAP8BAf//AQEBAP8BAAD/AQAA/wEBAf8AAQD//wAA////AQIBA/8A////AP7+//3+//3+///+//7/////AAD/AP///v39/v///wAAAAEAAP//AAAAAAAAAAT/AAD/AAH/AQABAQEA/wEAAAEBAAD/AAAB//8BAQAAAAEBAAAAAAD/AAABAf8A/wEA/wABAP//AQAA/wD/AAEAAAD/AAEAAAABAf///gD/AP//AAAA/wAAAP/+AP8AAP8A/wABAAH///8A/wAAAAD/AAEBAAAA/wAAAQEB/wAAAQAA/wD/AAEA//7/AAH/AAAAAP8AAAD//wAAAP8A//8AAAAA/wAAAAD///8AAP4AAAD/AAD/AAAA///////9APwAAAAAAAL/AAEBAQIBAQP/AAEEAAAAAAAAAAABAQD+/v8AAAD///////8A////AP//AP////8AAP8A/wAAAAD/AAEAAP8A/wD/AP8CAAH/AP4AAAIB/wD/AP8BAAEAAQEAAP///wAAAP4AAAABAAL+//8BAQAAAP8AAAD/AAAAAP8AAAD/////AAD/AAAAAAAA/wD//wAAAAD/AQAAAAD//wD/AAD/AAD//wAA/wAAAP//AAD/AAD/AP8AAAAAAP//AAAC//0A/wH/AAAAAP8BAAEA//4AAQAA/v//AQEA/wAAAAAA////AQAA/wD/AAAA/wAA////AAAAAAD//wAAAAAAAAAAAP//AAEA/wD/AAEAAP8BAAD/AAAA/wABAAH+AP4BAAIBAP//AAH//v7/AAABAQABAQAAAAD///8A/gIAAP7+/v8BAQEBAQD//////f8BAQAAAQEA////AAECAv7/////AP/+/v8BAAD/AP4AAQEBAAAAAAEAAQAAAAAA/wABAAAAAP//AAAAAQAB/gD+AAD/AP//AP//////AP////8B/wEAAP//////Af//AP4A/v7//wEBAAAB/wADAgIFAwQHBgYA//8AAAAAAAD//f4BAAABAQD3+ff8Avz+/f3/AP7/AP8A/wD/AQH//wIA/wH/AAECAP/+/gEBAgAAAAAAAAEBAAD+AP8AAAD//gD//wD///////8AAP/////////+/wD+////AP8AAP///wACAAD//wD/AP8BAP8E//8AAAAAAQEAAQEAAQIBAQEA/wD/AQAB/wD/AQABAAEAAAAAAP8AAAAA//4AAAEAAQD//wAAAAAA/wD/AP4A/wEA////AQAA/////wAAAP//AAEBAP///v/+////////AAABAQD/AAD/AP//////AQEAAAAA/wAAAAD+AAACAP8BAAD/AAD/AAD//wD/AAAAAAAA////AAD/AAD/AAD//wAAAAD+////AP//AAAAAQAB////AP//AAAB/v/+Af3+AAH9Af39AAEBAgIDAgIDAAEB/QAA/wAAAAD/AQEBAP8AAP/+/v8AAAD/////////AAAA/wEAAP8A////AgEBAQAB/////wEAAP8A/gH/Af//AAH//wD//wD+AAABAf4BAgEC/QH9AQECAgIB////AQH/AAD/AAABAP8A/wAAAAAAAP8A/wH///////8A/wD/Af8A/wD/AAAB/////wAAAQAB//8BAAAA///+AAD/AAD/////AP///wD+AAAAAAAAAQH//gAAAQAAAAABAAAA/wD/AAAB//8AAQAAAP/+/wABAP8AAAEBAP8AAAAAAP8A/wD/AAAAAAD///8AAAAA//8AAAAAAAABAAAAAP//AAAAAAD//wD///8BAAEAAAEBAP8AAAD9AAEC//8AAAEB///+AP8B/wAAAP7/AAD/AQEAAAAB/////wABAP//AQEBAP8AAAEAAQABAAEAAQEC/v8AAP///v/+/////wAAAAACAQAA/wAAAQIAAP8AAP///wAAAAABAAH/Af8AAf8B/wAA/wD//wAA/v/+//4AAP8A/wD//wAAAP/+///9///+///+AAD/AQEBAAACAAAAAQAAAwICBgUGAQAAAAD//v/+//7+AAH/AAABAwED+Pr4+wL8/v78//79/wAAAAAB/gABAf8AAAD/AP8BAgIBAP4B/wH/AQAA/wD/Af/+AAAB/v8A//7/AP7///8AAP8BAP8A//8A/wD+AQAAAQEC//7+AgAA////AAAAAf8A/wABBAEAAQEAAAEBAf8AAAAAAAAAAAAAAQAA/wEBAAAAAAD///8AAQD/AAAA/wAA/wD/AAAA//8BAQD+AP8B/wAA///+AP8A/wABAAD/AAAA//8A/wD//gD/AAD/AAD/AAAAAQD///8BAAD//v8A/wAA////AAAA/wAA////AQD//wAAAAAA/wD///8A/wAA/wAAAAAAAAAB/////wH///8B/wD+Af//AQAA/wAAAAAAAAD//wAA/wABAP/+/gD/Af4A/wD8/v0A+/8BAAABAgECAwMAAQD/AQAA/wABAQAAAAABAQH+//8A////////AAAA/wAAAf///wEBAAAAAAD/AP8AAP8AAAH/////AAEAAP4AAQH//wAA/wAAAQAAAP8AAP4A/wIBAv8AAP7//wH/AAAC////AAEB/wD/AAABAAAAAQEAAP7+/gEAAP//AAAA////AP8A/wAB/wABAAH/AP//AAD//wAA/wEA//8A/wD/AAAA/wAA/gD//wAA//8AAP7+/wECAAIAAQAAAQABAQD/AAABAP//AAABAP8AAAD//wAAAQD/AAEAAP8AAAAA////AAAA/wAAAQD///8A/wAAAP8AAAAA/wD/AAAAAP///gAAAP8AAAD//wD/AQAC/wAAAQAAAQAA/wD//wABAAD+//8BAP/+/wAA/wAAAAEB//8AAQEAAf///gH/AP8BAgEBAAD///8AAQEBAAAB////AQEBAP////7+/gEAAQAB/gAAAQAAAf/+AAD///8A/wD/AP8BAAAAAAH/AAL/AgAA/wAAAP////8A//7///79/gAAAAAA///+/v/++/7//QD+/wECAAICAgEBAgEAAQEBAgICAAUEAgD/BP7+Bf0HCAD/AAD//wIAAQICAgMEA/n6+Pv8A/z8+/7//QAAAAEAAgEAAQAA////AP8AAAAAAAD/AP///wABAAEAAAAA////AP7///4A/wEAAP4BAP7///8A/wD/AAAAAQAA/wEBAAD+/wAAAQAAAP8BAP8AAAQCAQECAgIAAAEBAAEAAQAAAgEAAAAAAAH/AAABAAAAAAAA//8AAAAAAP///wABAf//AAEA/wAAAP8A/v//AP8AAAEB////AAAB//8AAP8A//8A/wD/AAAAAQAA/wABAAD/AQD///4B//8A////AAABAAAAAAH/AP8A/wAA////AP8AAP8AAP//AP8A/wAAAf8A/wD//wAAAQD/AQAA/gD/AP//AP7/AP4A//8AAQD/AAD/AP8A//8AAP//AP8AAAD9/v3//P8DAP8AAAECAgMAAQIAAAIAAAIAAQABAQEAAAEAAP8A/wD///4AAP//AAABAQH/AAAA/gEBAAEAAAIAAf8BAQEA/wAAAP///wAAAAD/AP8AAAABAP8AAAEAAQAAAAD///4AAAH/AAEB//8B/gAAAQAA/gABAQAA/wEBAAD+AP8AAP//AAH/AP////8BAP///wEAAAABAAAAAAEBAf////8A/wAAAP////8AAAD///8A/wAAAAD//v//AP8BAAAA/gH+AQABAP///wACAAEAAAAB/wD/AP8AAAH/AP8B/wH/Af8AAAAA/wD/AAD/AP8BAAD///4BAAD///8AAAH///4AAQAA/wAAAP///wAAAAD//wAAAAAAAAD//v4CAgEAAAH///4AAAH//v8A/wEB////AP8A//8AAQD//v7//wABAgMAAAD/AAABAP3//wEAAAAAAP8BAQEAAP8BAgEAAQD//v8AAP//AAD//wABAgABAAAAAAAA//////8AAQD+/wAA/wACAQD+Af4A/gD////9//7+///+//7//v/+/v4A//7//fz+//3//v0A//8AAgADAgICAgMCAgMCAv8BAQIAAf8CAgAEAwIHBQQA/wf///8AAQEAAQIDAwMCAwMD+vn6AQL8/fz9/v0BAAAAAAEA/wAAAf/+/gABAQABAQD/AAEC/wH/AQH+//8AAP//AP///wD+/wD+//8AAAAAAAH/AP7/AP8AAP//AAEAAQD/AAEAAAAA/wAB//8EAgEAAQEBAQABAAEAAQABAf8AAQAAAAEAAP///wAAAAAAAAABAP//AAAA////AAAAAAAA/wD/AAD///8AAQAA/wD/AAAAAP4A/wD//wAAAP//AP8BAAD//wD/AAAB////AAD+AP/+AP8A/wD/AP//AAEBAAAAAP8A/wD+AAH/AP//AAAA//8AAAAAAP////8AAAEAAAD/AP7/AAH/AAEAAP//AQEA//8AAQIB/v8A////AQAA/v8AAAAAAAAA////AP///v7/AP0BAAH8/fz7AQECAAMBAP8CAAIAAAABAgACAAEAAP8AAAD///8AAAH/AP8A/wAAAQAA/wAAAQH+AP8BAAAB/v//AQEBAP//AAAAAQAA/wAA/wAAAAD+Af8C/gD/AP8CAQEAAQH/AP///wH+AQECAAAA/wABAAAAAQD/AAABAAEA//7+AAAA/v//AgAAAAH/AP4A/wAAAAD/AAAAAP///wAA/wD/AAAA/wD/AAEA/wAA//8AAAEA//8B/wD/AP//Af///wECAQEB/wABAQABAAD/AAD/AP8AAAAA/wH/AP8A//8AAAAA/wD/AAAA/wEA/wAA/wD//wD/AP/+/wAB//7+AQAAAP8B/wD/AP8A/gD+AQABAQEBAAAD//8AAAD/AP///wH/AP8AAP/+/v8BAP//AAAAAQH//v8AAQH///7/AP8CAAEBAAAAAAD+AAABAQEAAAEAAQEBAPwAAAEAAAAAAAAAAAAAAAEA//3/AQABAQIBAgIC/wAA///+AAAA/wEA/v4BAf//AP///v/////+/f7+/v78/v7+/f39//38/v7+AP/9AAD/AAEAAv4A/wMBA//+/v/+A/8CAQADAAAAAAD/AgEBAwQDBf////8HAQABAgECBAMEAgMCAwMEAwME+/v7/P38/P38///+//8A/v8AAQAAAAD///8AAAEA/gAAAAD+//8A/wD//v8B///+AAAAAAAB/wD///8AAAAA////AAABAQD//wACAQAA/wAA/wEAAAD/BAECAgIBAQEA/wEAAAD/AP8AAP8A/wL/AP8A/wABAAH/AAAA//8AAf///wEAAP7/AAEB/wD/AP8A/wD/AP4AAAD//wABAAEAAP8AAP///wAAAAEB/wD+//8A/v/+AQAA/wAA/wD///3//wEBAP8AAP///wAAAAEAAAAA///+/AABAP//AAD/AgAA/wAAAAAA/v/+AAEBAf8AAAAAAAD/AAAAAQAAAQAAAP///wD/AAEAAQD//wAA/AAA/gAA/wAAAf8AAP///gD+/QL9/f0B+wABAQD/AAADBAD9AgECAf8A/gECAgEBAAD/AAAA/wD/Af8BAAAA//7//wEBAf8AAP8A/wH/AQAA////AAEAAP//AAEBAAAA/////v///wAB/wH/Av8A/QABAQIBAgIAAAEA//8A/AAAAgAAAQABAf//AQAA/gD+AAAAAAAAAAD//v8AAQD//wAAAQAAAAAAAAD///8BAAD///8AAQD//v//AP///v8AAP///v8AAAD///8A/wAAAAAAAf8A/wIA/wAB/wEAAv8A/wD/Af8A/wAAAAD///8AAQEBAP//AAAA/wEAAP7/AAD/AP4A///+/wAA/wAA////////AAAA//8A/wD+AAAB//8BAAEAAgAA//8A/v/+AAEAAP//AAD///8AAAAAAAAA/wD/AP7//wABAP/+AAEB//8A/gD+AAAAAP8AAAEBAAD/AQEAAAAB/wEAAQAAAAABAQAA/wEAAwAB/v8AAQEBAQH+Af////8AAAAAAAAAAAL/AP8A//7////+/v////3+/P39/fz9+/z7/P79/P7+/QD//gAA/wECAgIBAQABAAEBAgAAAQL+//4CAQEB/QD/AAAAAAAB/wMCAf8EAwEAAQICAgMDAwQFBAMEAgQDBAQDBPkD+vv7+gH8+v39/f39/AEA/v8A/wAAAAAAAAAA//8A/wD+AP8A//4AAAD/AP7/AAAAAQAA//8BAf8A//8AAf8BAAD+/wAAAP8AAAH/AQD/AAAB/wABAQQB//8A/wACAQECAAH/AP8B/v8AAQEAAP8AAP8A/wH/AP//AAAAAP8A/wD/AAAAAAD//wD///8AAP//AAAA//4AAf8A/gH/AAAAAP//Af8A/wD/////AP////7/AAEB/v8AAQD///8BAAAA/wABAAD/AAAAAAD//wAAAAAAAAD///7//wAA//0AAAEAAP4AAAEAAP8AAAMAAAAA/wEAAP8A/wD//wAAAAD//wEAAAAAAP//AP//////AAAAAP8A//8AAAAA/v////z9/wEA//8AAAEA/wH///8BAgIB/wIBAQEC//8CAQEBAgIAAAEA/wAAAP8AAAEA//4AAAD/AAAAAAD/AP//AAAAAf8A/wH/AP/9/v4AAAAAAP4AAAH//v/+AP4AAQAA/wIAAv4AAAACAAEA/wABAv8AAAD//wAA//8AAAEBAAD///8A////////AQAA/wABAf8A//8AAQH/AAAA/v//AAD///8AAAD/AP8AAP8A/wD//wD///7/AAAA/wAAAQD/AP8B/wD/AP8BAAH/AAAAAAAAAAABAAH/AAAA//8B/wAAAf8AAAAA/wD/AQAA/wD/////AP//AP8A//////8AAP8A/wH///8AAAAA//8BAQIAAAD///////0AAQEBAAH/AAD//wABAAD/AAABAAD//wAAAP///wAA//8AAAD+//8CAAL/AAD//v//Af8BAAABAgH+/wAAAAABAQEA/wABAgAAAAEBAP0AAQEBAQD/AAAAAP8A/wIAAQABAAEAAAABAAAAAP/+/v79/v3+/fz7+/v7/Pv9/fr8+/v//v3/AP8BAAABAgAC/wIAAgP/AQEBAAD//wD9AP8A/QABAAEAAAEBAQIAAAEAAQEEAgIBBAEBAgEDAgIDAwIDAgMCAgMEBAUEBfj5+gUC+gL7+/z7/AL8/fv+/v3/AP4AAAAA/wEAAAAAAP///wAAAP///v8AAAAA/wAAAAEB//8BAQD+AAD//wABAQD/AAAAAAD+AAAAAAD//wABAQAEAAEBAQEBAP8AAP8AAAAA/v//AQD//gABAAD/AP///wEAAP8AAAD//wAAAAAAAP8AAAAA/wH/AP//AAAA////AAAAAf//AAD//wAAAP//AQAB///////+/wAAAQD//wAAAP//AAAA/wD/AAAAAAAAAAD/AAABAAH/AP//AAABAP8BAf/+/wD//wD+AAD/AQAB/wAAAP//AAAAAAAAAAAA/wAAAAEAAP8CAQH///7/////////AAD/AP//AP8B/wD/AP8A/wD+//3//wAA/v/+/v//BP7//gT+AgMDAgEDAQICAAL+AAIDAv8BAAABAQD/AAABAP//AAAA/wAA//7/AAEAAQAB/wD/Af8A/gD/AAAA////AQEAAP8B///+AP8B/wAAAAEAAQH/AP8AAAABAAAAAAEB//8BAf8AAAEAAAAA//7+AAEB//////7/AAD/////AQAA//8AAAEAAf//AAAB////AAH/AQAB/gD/AP8A/wAA/gD+/wD//wAAAAD/AAABAP//AAAC/wEAAf//AAAB/wH/AAAAAQAAAAEAAf8A/wAAAAH//wAA////AAAAAP4BAAEAAAEAAP7//wD/AP////7/AP8AAAD+/wAAAAABAAEAAAD/AQAB/wD/AAAA/////wABAP8AAP8A/wEAAP8B/wH/AP8A////AAAAAP8BAAH/AP///gD9/wAA//8AAP8A/gD/Af8BAP//AAIBAf8BAP8AAP8BAQH/AAABAQEBAgIBAP8CAAIBAAD/AAEAAf8A/wAA/wAA/v/+/f39/P35+vn5+fn4/P37/v38/v78AQAAAAD/AgICAQACAAAA//8AAQIBAf/9/f4AAP8AAAD/AAABAQACAgIDAwMDAf8BAQECAgIBAQADAgQCAgEAAQABAAEBBAQEAwQDAwQEAwQE+/v6+vr5+foC/P38/f38/v/9//8A/wD//wAAAQABAP8AAAAAAP8AAAAAAAAAAf8A/wEBAQABAQECAAD/AAAA/f//AQAA/wIAAP8B/wAABAABAf//////AP3//wL+/gABAP//AQH/AQAAAAABAP//AAH///8BAAD/AAAA//8AAAD/AP8B//8AAAH/AP///wABAAEAAP///wEAAAABAAD//v7/AAAAAP////8AAAEAAP///wAA/wD/AP8A/wABAQD///8AAAEA/wAA/wD//gAA//8AAP8AAAAAAAD/Af8BAAEAAQAA//8AAQD//wAAAQAAAAAAAAAA/wAA/wAA/wAAAAAA/wAAAQAAAQD//wH/AP7//wD/Af/////9/gEBAP//AQEBAgD/AP7+/gMD/wIABAEAAgAA/wEB/wEBAP8AAAD//wABAAD/AAD//wEBAQD///4B/wEAAP7/AAAA/wAAAAD/AP////8A/wD//wAAAP///wEAAgAA/gD+Af8CAv7/AAEAAAAA//8BAQD+AAABAP8A///+AAAA//8A//8A/wAA//8AAAH+AQAAAAACAQAA//8AAAD+AP8A/v8AAAD/AAD/AAD/AAABAQEA/v//AQAAAAAAAQD//wEAAQABAAAAAAH//wAAAQABAAEAAf8A/wAAAP//AAAAAAAB////AAD//wAAAf8AAP//AP///wD//////v//AAAA/wAAAQEA/wABAQAAAP///wAAAAAAAPdzIT4AAAEkSURBVP//AAEB////AP//AQH/AAEA////AP8AAAD+AP8A/wEBAf//AAD//gAAAAAAAv7//gD//wABAf8A/wD//wD9AQEBAQAAAAEBAQD/AAEBAv8AAP7/AAEA/wD//wABAQH/Av7//wD///7///3+/Pv7+fn59/j59vv6+////v7//QD+/QECAQIBAQD//wD//v8B/wH/AgH+AQABAAAAAAD//wAAAAEBAAEBAgD//gD//gICBAICAQEA/wECAQEAAAEAA/4FAP8AAAECAQABAQECAgIDAwMDAwEBAgABAgL8+/v7+v3+/P39/f///gD//wAA//7//v//AAD/AAAAAAAA/wABAAD/AP/+/wEAAP8AAP8AAAEBAAAAAAEBAQAAAP8AANqqSyU+EaMBAAAAAElFTkSuQmCC\\n\",\n      \"text/plain\": [\n       \"<IPython.core.display.Image object>\"\n      ]\n     },\n     \"metadata\": {},\n     \"output_type\": \"display_data\"\n    }\n   ],\n   \"source\": [\n    \"# use cache with temperature 1.0\\n\",\n    \"for _ in range(3):\\n\",\n    \"    start = time.time()\\n\",\n    \"    response = openai.Image.create(\\n\",\n    \"        prompt=prompt,\\n\",\n    \"        response_format='b64_json',\\n\",\n    \"        temperature=1.0\\n\",\n    \"    )\\n\",\n    \"    print('Time elapsed:', round(time.time() - start, 3))\\n\",\n    \"    base64_data = response['data'][0]['b64_json']\\n\",\n    \"    \\n\",\n    \"    display.display(display.Image(b64decode(base64_data)))\"\n   ]\n  },\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": null,\n   \"id\": \"da9d46f3\",\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": []\n  }\n ],\n \"metadata\": {\n  \"kernelspec\": {\n   \"display_name\": \"develop\",\n   \"language\": \"python\",\n   \"name\": \"develop\"\n  },\n  \"language_info\": {\n   \"codemirror_mode\": {\n    \"name\": \"ipython\",\n    \"version\": 3\n   },\n   \"file_extension\": \".py\",\n   \"mimetype\": \"text/x-python\",\n   \"name\": \"python\",\n   \"nbconvert_exporter\": \"python\",\n   \"pygments_lexer\": \"ipython3\",\n   \"version\": \"3.8.12\"\n  }\n },\n \"nbformat\": 4,\n \"nbformat_minor\": 5\n}\n"
  },
  {
    "path": "docs/bootcamp/temperature/index.rst",
    "content": "Temperature\n=================\n\n.. toctree::\n   :maxdepth: 1\n   :caption: Contents:\n\n\n   chat\n   create_image"
  },
  {
    "path": "docs/bootcamp/vertex/index.rst",
    "content": "Vertex\n=================\n\n.. toctree::\n   :maxdepth: 1\n   :caption: Contents:\n\n\n   vertexai_caching"
  },
  {
    "path": "docs/bootcamp/vertex/vertexai_caching.ipynb",
    "content": "{\n  \"cells\": [\n    {\n      \"cell_type\": \"markdown\",\n      \"id\": \"6b3ba1cc\",\n      \"metadata\": {\n        \"id\": \"6b3ba1cc\"\n      },\n      \"source\": [\n        \"# Caching chat response\\n\",\n        \"\\n\",\n        \"This notebook is to show you how to use Vertex AI to answer questions and teach you how to cache the  response for exact and similar matches with **gptcache**. It is relatively simple, you just need to add an extra step to initialize the cache.\\n\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"source\": [\n        \"!pip install google-cloud-aiplatform\"\n      ],\n      \"metadata\": {\n        \"id\": \"4aAjAIFCzny5\"\n      },\n      \"id\": \"4aAjAIFCzny5\",\n      \"execution_count\": null,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"source\": [\n        \"! pip install -q gptcache langchain\"\n      ],\n      \"metadata\": {\n        \"id\": \"CRm8Zv2O_Hlp\",\n        \"outputId\": \"b999183d-f660-4622-c859-cab41c544770\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 829\n        }\n      },\n      \"id\": \"CRm8Zv2O_Hlp\",\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stdout\",\n          \"text\": [\n            \"Collecting google-cloud-aiplatform\\n\",\n            \"  Downloading google_cloud_aiplatform-1.27.0-py2.py3-none-any.whl (2.6 MB)\\n\",\n            \"\\u001b[2K     \\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\u001b[0m \\u001b[32m2.6/2.6 MB\\u001b[0m \\u001b[31m39.2 MB/s\\u001b[0m eta \\u001b[36m0:00:00\\u001b[0m\\n\",\n            \"\\u001b[?25hRequirement already satisfied: google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,<3.0.0dev,>=1.32.0 in /usr/local/lib/python3.10/dist-packages (from google-cloud-aiplatform) (2.11.1)\\n\",\n            \"Requirement already satisfied: proto-plus<2.0.0dev,>=1.22.0 in /usr/local/lib/python3.10/dist-packages (from google-cloud-aiplatform) (1.22.3)\\n\",\n            \"Requirement already satisfied: protobuf!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.19.5 in /usr/local/lib/python3.10/dist-packages (from google-cloud-aiplatform) (3.20.3)\\n\",\n            \"Requirement already satisfied: packaging>=14.3 in /usr/local/lib/python3.10/dist-packages (from google-cloud-aiplatform) (23.1)\\n\",\n            \"Requirement already satisfied: google-cloud-storage<3.0.0dev,>=1.32.0 in /usr/local/lib/python3.10/dist-packages (from google-cloud-aiplatform) (2.8.0)\\n\",\n            \"Requirement already satisfied: google-cloud-bigquery<4.0.0dev,>=1.15.0 in /usr/local/lib/python3.10/dist-packages (from google-cloud-aiplatform) (3.10.0)\\n\",\n            \"Collecting google-cloud-resource-manager<3.0.0dev,>=1.3.3 (from google-cloud-aiplatform)\\n\",\n            \"  Downloading google_cloud_resource_manager-1.10.2-py2.py3-none-any.whl (321 kB)\\n\",\n            \"\\u001b[2K     \\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\u001b[0m \\u001b[32m321.3/321.3 kB\\u001b[0m \\u001b[31m32.8 MB/s\\u001b[0m eta \\u001b[36m0:00:00\\u001b[0m\\n\",\n            \"\\u001b[?25hCollecting shapely<2.0.0 (from google-cloud-aiplatform)\\n\",\n            \"  Downloading Shapely-1.8.5.post1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (2.0 MB)\\n\",\n            \"\\u001b[2K     \\u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\\u001b[0m \\u001b[32m2.0/2.0 MB\\u001b[0m \\u001b[31m65.6 MB/s\\u001b[0m eta \\u001b[36m0:00:00\\u001b[0m\\n\",\n            \"\\u001b[?25hRequirement already satisfied: googleapis-common-protos<2.0.dev0,>=1.56.2 in /usr/local/lib/python3.10/dist-packages (from google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,<3.0.0dev,>=1.32.0->google-cloud-aiplatform) (1.59.1)\\n\",\n            \"Requirement already satisfied: google-auth<3.0.dev0,>=2.14.1 in /usr/local/lib/python3.10/dist-packages (from google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,<3.0.0dev,>=1.32.0->google-cloud-aiplatform) (2.17.3)\\n\",\n            \"Requirement already satisfied: requests<3.0.0.dev0,>=2.18.0 in /usr/local/lib/python3.10/dist-packages (from google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,<3.0.0dev,>=1.32.0->google-cloud-aiplatform) (2.27.1)\\n\",\n            \"Requirement already satisfied: grpcio<2.0dev,>=1.33.2 in /usr/local/lib/python3.10/dist-packages (from google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,<3.0.0dev,>=1.32.0->google-cloud-aiplatform) (1.56.0)\\n\",\n            \"Requirement already satisfied: grpcio-status<2.0.dev0,>=1.33.2 in /usr/local/lib/python3.10/dist-packages (from google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,<3.0.0dev,>=1.32.0->google-cloud-aiplatform) (1.48.2)\\n\",\n            \"Requirement already satisfied: google-cloud-core<3.0.0dev,>=1.6.0 in /usr/local/lib/python3.10/dist-packages (from google-cloud-bigquery<4.0.0dev,>=1.15.0->google-cloud-aiplatform) (2.3.2)\\n\",\n            \"Requirement already satisfied: google-resumable-media<3.0dev,>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from google-cloud-bigquery<4.0.0dev,>=1.15.0->google-cloud-aiplatform) (2.5.0)\\n\",\n            \"Requirement already satisfied: python-dateutil<3.0dev,>=2.7.2 in /usr/local/lib/python3.10/dist-packages (from google-cloud-bigquery<4.0.0dev,>=1.15.0->google-cloud-aiplatform) (2.8.2)\\n\",\n            \"Requirement already satisfied: grpc-google-iam-v1<1.0.0dev,>=0.12.4 in /usr/local/lib/python3.10/dist-packages (from google-cloud-resource-manager<3.0.0dev,>=1.3.3->google-cloud-aiplatform) (0.12.6)\\n\",\n            \"Requirement already satisfied: cachetools<6.0,>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from google-auth<3.0.dev0,>=2.14.1->google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,<3.0.0dev,>=1.32.0->google-cloud-aiplatform) (5.3.1)\\n\",\n            \"Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.10/dist-packages (from google-auth<3.0.dev0,>=2.14.1->google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,<3.0.0dev,>=1.32.0->google-cloud-aiplatform) (0.3.0)\\n\",\n            \"Requirement already satisfied: six>=1.9.0 in /usr/local/lib/python3.10/dist-packages (from google-auth<3.0.dev0,>=2.14.1->google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,<3.0.0dev,>=1.32.0->google-cloud-aiplatform) (1.16.0)\\n\",\n            \"Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/lib/python3.10/dist-packages (from google-auth<3.0.dev0,>=2.14.1->google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,<3.0.0dev,>=1.32.0->google-cloud-aiplatform) (4.9)\\n\",\n            \"Requirement already satisfied: google-crc32c<2.0dev,>=1.0 in /usr/local/lib/python3.10/dist-packages (from google-resumable-media<3.0dev,>=0.6.0->google-cloud-bigquery<4.0.0dev,>=1.15.0->google-cloud-aiplatform) (1.5.0)\\n\",\n            \"Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0.dev0,>=2.18.0->google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,<3.0.0dev,>=1.32.0->google-cloud-aiplatform) (1.26.16)\\n\",\n            \"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0.dev0,>=2.18.0->google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,<3.0.0dev,>=1.32.0->google-cloud-aiplatform) (2023.5.7)\\n\",\n            \"Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0.dev0,>=2.18.0->google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,<3.0.0dev,>=1.32.0->google-cloud-aiplatform) (2.0.12)\\n\",\n            \"Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0.dev0,>=2.18.0->google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,<3.0.0dev,>=1.32.0->google-cloud-aiplatform) (3.4)\\n\",\n            \"Requirement already satisfied: pyasn1<0.6.0,>=0.4.6 in /usr/local/lib/python3.10/dist-packages (from pyasn1-modules>=0.2.1->google-auth<3.0.dev0,>=2.14.1->google-api-core[grpc]!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,<3.0.0dev,>=1.32.0->google-cloud-aiplatform) (0.5.0)\\n\",\n            \"Installing collected packages: shapely, google-cloud-resource-manager, google-cloud-aiplatform\\n\",\n            \"  Attempting uninstall: shapely\\n\",\n            \"    Found existing installation: shapely 2.0.1\\n\",\n            \"    Uninstalling shapely-2.0.1:\\n\",\n            \"      Successfully uninstalled shapely-2.0.1\\n\",\n            \"Successfully installed google-cloud-aiplatform-1.27.0 google-cloud-resource-manager-1.10.2 shapely-1.8.5.post1\\n\"\n          ]\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"application/vnd.colab-display-data+json\": {\n              \"pip_warning\": {\n                \"packages\": [\n                  \"google\"\n                ]\n              }\n            }\n          },\n          \"metadata\": {}\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"source\": [\n        \"#Authenticating and testing the VertexAI model\"\n      ],\n      \"metadata\": {\n        \"id\": \"NAcKaXoPH_-F\"\n      },\n      \"id\": \"NAcKaXoPH_-F\"\n    },\n    {\n      \"cell_type\": \"code\",\n      \"source\": [\n        \"from google.colab import auth as google_auth\\n\",\n        \"google_auth.authenticate_user()\\n\",\n        \"\\n\",\n        \"import vertexai\\n\",\n        \"from vertexai.preview.language_models import TextGenerationModel\\n\",\n        \"\\n\",\n        \"def predict_large_language_model_sample(\\n\",\n        \"    project_id: str,\\n\",\n        \"    model_name: str,\\n\",\n        \"    temperature: float,\\n\",\n        \"    max_decode_steps: int,\\n\",\n        \"    top_p: float,\\n\",\n        \"    top_k: int,\\n\",\n        \"    content: str,\\n\",\n        \"    location: str = \\\"us-central1\\\",\\n\",\n        \"    tuned_model_name: str = \\\"\\\",\\n\",\n        \"    ) :\\n\",\n        \"    \\\"\\\"\\\"Predict using a Large Language Model.\\\"\\\"\\\"\\n\",\n        \"    vertexai.init(project=project_id, location=location)\\n\",\n        \"    model = TextGenerationModel.from_pretrained(model_name)\\n\",\n        \"    if tuned_model_name:\\n\",\n        \"      model = model.get_tuned_model(tuned_model_name)\\n\",\n        \"    response = model.predict(\\n\",\n        \"        content,\\n\",\n        \"        temperature=temperature,\\n\",\n        \"        max_output_tokens=max_decode_steps,\\n\",\n        \"        top_k=top_k,\\n\",\n        \"        top_p=top_p,)\\n\",\n        \"    print(f\\\"Response from Model: {response.text}\\\")\\n\",\n        \"predict_large_language_model_sample(\\\"octo-t2sql\\\", \\\"text-bison@001\\\", 0.2, 256, 0.8, 40, '''Give me ten interview questions for the role of software engineer''', \\\"us-central1\\\")\"\n      ],\n      \"metadata\": {\n        \"id\": \"Ahd3hPeI_IJ6\",\n        \"outputId\": \"340527c7-0128-42b6-9704-30b273258ce3\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"id\": \"Ahd3hPeI_IJ6\",\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stdout\",\n          \"text\": [\n            \"Response from Model: 1. What is your experience with project management?\\n\",\n            \"2. What is your process for managing a project?\\n\",\n            \"3. How do you handle unexpected challenges or roadblocks?\\n\",\n            \"4. How do you communicate with stakeholders?\\n\",\n            \"5. How do you measure the success of a project?\\n\",\n            \"6. What are your strengths and weaknesses as a project manager?\\n\",\n            \"7. What are your salary expectations?\\n\",\n            \"8. What are your career goals?\\n\",\n            \"9. What are your thoughts on the company's culture?\\n\",\n            \"10. Why are you interested in this position?\\n\"\n          ]\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"source\": [\n        \"Before running the example, make sure the first parameter of `predict_large_language_model_sample` is corresponding to your `project_id`. You will be prompted to authenticate.\"\n      ],\n      \"metadata\": {\n        \"id\": \"WxCz_TiwzwbO\"\n      },\n      \"id\": \"WxCz_TiwzwbO\"\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"source\": [\n        \"Then we can learn the usage and acceleration effect of gptcache with the following code, which consists of three parts:\\n\",\n        \"\\n\",\n        \"1.   Usual way\\n\",\n        \"2.   Exact Search\\n\",\n        \"3.   Similar Search\\n\",\n        \"\\n\",\n        \"\\n\"\n      ],\n      \"metadata\": {\n        \"id\": \"_hzEQ9T90AOO\"\n      },\n      \"id\": \"_hzEQ9T90AOO\"\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"id\": \"aa0ba70e\",\n      \"metadata\": {\n        \"id\": \"aa0ba70e\"\n      },\n      \"source\": [\n        \"## VertexAI API standard usage\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"id\": \"80e9dae2\",\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        },\n        \"id\": \"80e9dae2\",\n        \"outputId\": \"99a971d2-55bf-4015-fb15-e1c96701d217\"\n      },\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stdout\",\n          \"text\": [\n            \"Response from Model: GitHub is a web-based hosting service for software development projects that use the Git revision control system. It offers all of the distributed version control and source code management (SCM) functionality of Git, as well as a graphical user interface (GUI) and web interface that make it easy to manage projects with multiple collaborators.\\n\",\n            \"\\n\",\n            \"GitHub is used by many open source projects, as well as by private companies for software development. It is also used by individuals for personal projects.\\n\",\n            \"\\n\",\n            \"GitHub is a popular choice for software development because it is easy to use, reliable, and secure. It also offers a number of features that make it a good choice for collaboration, including issue tracking, pull requests, and wikis.\\n\",\n            \"\\n\",\n            \"If you are interested in learning more about GitHub, there are a number of resources available online. The GitHub website has a comprehensive help section, and there are also a number of books and articles available on the subject.\\n\",\n            \"Question: what‘s github?\\n\",\n            \"Time consuming: 2.87s\\n\"\n          ]\n        }\n      ],\n      \"source\": [\n        \"import time\\n\",\n        \"\\n\",\n        \"# def response_text(vertexai_resp):\\n\",\n        \"#     return vertexai_resp['choices'][0]['message']['content']\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"question = 'what‘s github?'\\n\",\n        \"\\n\",\n        \"# VertexAI API original usage\\n\",\n        \"start_time = time.time()\\n\",\n        \"response = predict_large_language_model_sample(\\\"octo-t2sql\\\", \\\"text-bison@001\\\", 0.2, 256, 0.8, 40, question, \\\"us-central1\\\")\\n\",\n        \"\\n\",\n        \"print(f'Question: {question}')\\n\",\n        \"print(\\\"Time consuming: {:.2f}s\\\".format(time.time() - start_time))\\n\",\n        \"# print(f'Answer: {response_text(response)}\\\\n')\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"id\": \"9d871550\",\n      \"metadata\": {\n        \"id\": \"9d871550\"\n      },\n      \"source\": [\n        \"## VertexAI API + GPTCache using LangChain 🦜️🔗 (exact match cache)\\n\",\n        \"\\n\",\n        \"Initalize the cache to run GPTCache and import `LangChainLLMs` from `gptcache.adapter.langchain_models`, which will automatically set the map data manager to match the exact cahe, more details refer to [build your cache](https://gptcache.readthedocs.io/en/dev/usage.html#build-your-cache).\\n\",\n        \"\\n\",\n        \"And if you ask the exact same two questions, the answer to the second question will be obtained from the cache without requesting the model again.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"id\": \"024484f3\",\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        },\n        \"id\": \"024484f3\",\n        \"outputId\": \"3dff3ee8-8acc-43ab-c27a-7ff2b4286ac3\"\n      },\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stdout\",\n          \"text\": [\n            \"The New England Patriots won Super Bowl XXXIX in 2005, the year Justin Bieber was born.\\n\",\n            \"Read through Time Spent = 0.0011386871337890625\\n\",\n            \"The New England Patriots won Super Bowl XXXIX in 2005, the year Justin Bieber was born.\\n\",\n            \"Cache Hit Time Spent = 0.0007178783416748047\\n\"\n          ]\n        }\n      ],\n      \"source\": [\n        \"import time\\n\",\n        \"from langchain import SQLDatabase, SQLDatabaseChain\\n\",\n        \"from langchain.llms import VertexAI\\n\",\n        \"from langchain import PromptTemplate, LLMChain\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"# the following initialises the cache\\n\",\n        \"# -------------------------------------------------\\n\",\n        \"from gptcache.adapter.langchain_models import LangChainLLMs\\n\",\n        \"from gptcache import Cache\\n\",\n        \"from gptcache.processor.pre import get_prompt\\n\",\n        \"\\n\",\n        \"llm = VertexAI()\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"llm_cache = Cache()\\n\",\n        \"llm_cache.init(\\n\",\n        \"    pre_embedding_func=get_prompt,\\n\",\n        \")\\n\",\n        \"\\n\",\n        \"cached_llm = LangChainLLMs(llm=llm)\\n\",\n        \"answer = cached_llm(prompt=question, cache_obj=llm_cache)\\n\",\n        \"# -------------------------------------------------\\n\",\n        \"\\n\",\n        \"# before = time.time()\\n\",\n        \"# print(answer)\\n\",\n        \"# print(\\\"Read through Time Spent =\\\", time.time() - before)\\n\",\n        \"\\n\",\n        \"# before = time.time()\\n\",\n        \"# answer = cached_llm(prompt=question, cache_obj=llm_cache)\\n\",\n        \"# print(answer)\\n\",\n        \"# print(\\\"Cache Hit Time Spent =\\\", time.time() - before)\\n\",\n        \"\\n\",\n        \"question = \\\"What NFL team won the Super Bowl in the year Justin Bieber was born?\\\"\\n\",\n        \"\\n\",\n        \"before = time.time()\\n\",\n        \"print(answer)\\n\",\n        \"print(\\\"Read through Time Spent =\\\", time.time() - before)\\n\",\n        \"\\n\",\n        \"before = time.time()\\n\",\n        \"answer = cached_llm(prompt=question, cache_obj=llm_cache)\\n\",\n        \"print(answer)\\n\",\n        \"print(\\\"Cache Hit Time Spent =\\\", time.time() - before)\\n\",\n        \"\\n\",\n        \"# for _ in range(2):\\n\",\n        \"#     start_time = time.time()\\n\",\n        \"#     response = predict_large_language_model_sample(\\\"octo-t2sql\\\", \\\"text-bison@001\\\", 0.2, 256, 0.8, 40, question, \\\"us-central1\\\")\\n\",\n        \"#     print(f'Question: {question}')\\n\",\n        \"#     print(\\\"Time consuming: {:.2f}s\\\".format(time.time() - start_time))\\n\",\n        \"    # print(f'Answer: {response_text(response)}\\\\n')\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"id\": \"6f2ff699\",\n      \"metadata\": {\n        \"id\": \"6f2ff699\"\n      },\n      \"source\": [\n        \"## VertexAI API + GPTCache, similar search cache\\n\",\n        \"\\n\",\n        \"Set the cache with `embedding_func` to generate embedding for the text, and `data_manager` to manager the cache data, `similarity_evaluation` to evaluate the similarities, more details refer to [build your cache](https://gptcache.readthedocs.io/en/dev/usage.html#build-your-cache).\\n\",\n        \"\\n\",\n        \"After obtaining an answer in response to several similar questions, the answers to subsequent questions can be retrieved from the cache without the need to request the model again.\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"source\": [\n        \"How similar search works:\\n\",\n        \"\\n\",\n        \"*   Similarity evaluator collects data from **Cache Storage and Vector Store** to determine similarity between input request and Vector Store requests\\n\",\n        \"*   Request Router returns request that is most similar to input request from cache\\n\",\n        \"\\n\"\n      ],\n      \"metadata\": {\n        \"id\": \"Pe8Qz7pqBcNa\"\n      },\n      \"id\": \"Pe8Qz7pqBcNa\"\n    },\n    {\n      \"cell_type\": \"code\",\n      \"execution_count\": null,\n      \"id\": \"fd1ff06e\",\n      \"metadata\": {\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        },\n        \"id\": \"fd1ff06e\",\n        \"outputId\": \"5c108328-1f77-47b7-a7a6-c641153493d9\"\n      },\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"name\": \"stdout\",\n          \"text\": [\n            \"Cache loading.....\\n\",\n            \"Response from Model: GitHub is a web-based hosting service for software development projects that use the Git revision control system. It offers all of the distributed version control and source code management (SCM) functionality of Git, as well as a graphical user interface (GUI) and web interface, making it easy for teams to collaborate on software projects.\\n\",\n            \"\\n\",\n            \"GitHub is used by many large organizations, including Google, Facebook, Amazon, and Microsoft. It is also popular with open source projects, such as the Linux kernel and the Apache web server.\\n\",\n            \"\\n\",\n            \"GitHub is free for open source projects, but there is a paid subscription option for private projects. The paid subscription offers additional features, such as unlimited private repositories, priority support, and the ability to host private wikis and blogs.\\n\",\n            \"Question: what's github\\n\",\n            \"Time consuming: 2.41s\\n\",\n            \"Response from Model: GitHub is a web-based hosting service for software development projects that use the Git revision control system. It offers all of the distributed version control and source code management (SCM) functionality of Git, as well as a graphical user interface (GUI) and web interface, making it easy for teams to collaborate on software projects.\\n\",\n            \"\\n\",\n            \"GitHub is used by many open source projects, as well as by private companies for software development. It is also used by many educational institutions for teaching software engineering.\\n\",\n            \"\\n\",\n            \"GitHub is a popular choice for software development because it is easy to use, has a large community of users, and offers a variety of features that make it well-suited for collaboration.\\n\",\n            \"\\n\",\n            \"Here are some of the benefits of using GitHub:\\n\",\n            \"\\n\",\n            \"* It is easy to use. GitHub has a simple and intuitive interface that makes it easy for developers of all levels of experience to use.\\n\",\n            \"* It has a large community of users. GitHub has a large community of users who are willing to help each other out. This can be a valuable resource for developers who are stuck on a problem.\\n\",\n            \"* It offers a variety of features. GitHub offers a variety of features that make it well-suited for collaboration, including issue tracking, pull requests, and code review.\\n\",\n            \"\\n\",\n            \"Question: can you explain what GitHub is\\n\",\n            \"Time consuming: 2.95s\\n\",\n            \"Response from Model: GitHub is a web-based hosting service for software development projects that use the Git revision control system. It offers all of the distributed version control and source code management (SCM) functionality of Git, as well as a graphical user interface (GUI) and web interface, making it easy for teams to collaborate on software projects.\\n\",\n            \"\\n\",\n            \"GitHub is used by many open source projects, as well as by private companies for software development. It is also used by many educational institutions for teaching software engineering.\\n\",\n            \"\\n\",\n            \"GitHub is free for open source projects, and has a paid subscription service for private projects. The paid service offers additional features, such as private repositories, unlimited collaborators, and support.\\n\",\n            \"\\n\",\n            \"GitHub is a popular choice for software development because it is easy to use, has a large community of users, and offers a variety of features that make it well-suited for collaboration.\\n\",\n            \"Question: can you tell me more about GitHub\\n\",\n            \"Time consuming: 2.80s\\n\",\n            \"Response from Model: GitHub is a web-based hosting service for software development projects that use the Git revision control system. It offers all of the distributed version control and source code management (SCM) functionality of Git, as well as a number of additional features such as issue tracking, project management, wikis, and code review.\\n\",\n            \"\\n\",\n            \"GitHub is used by many open source projects, as well as by private companies for software development. It is also a popular platform for hosting personal projects.\\n\",\n            \"\\n\",\n            \"GitHub is free for open source projects and for private projects with fewer than five users. For private projects with more than five users, GitHub offers a paid subscription plan.\\n\",\n            \"\\n\",\n            \"GitHub is a powerful tool for software development. It can help teams to collaborate more effectively, track changes to code, and manage projects. It is also a great platform for hosting personal projects.\\n\",\n            \"Question: what is the purpose of GitHub\\n\",\n            \"Time consuming: 2.79s\\n\"\n          ]\n        }\n      ],\n      \"source\": [\n        \"import time\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"# def response_text(vertexai_resp):\\n\",\n        \"#     return vertexai_resp['choices'][0]['message']['content']\\n\",\n        \"\\n\",\n        \"from gptcache import cache\\n\",\n        \"from langchain import SQLDatabase, SQLDatabaseChain\\n\",\n        \"from gptcache.embedding import Onnx\\n\",\n        \"from gptcache.manager import CacheBase, VectorBase, get_data_manager\\n\",\n        \"from gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\\n\",\n        \"\\n\",\n        \"print(\\\"Cache loading.....\\\")\\n\",\n        \"\\n\",\n        \"onnx = Onnx()\\n\",\n        \"data_manager = get_data_manager(CacheBase(\\\"sqlite\\\"), VectorBase(\\\"faiss\\\", dimension=onnx.dimension))\\n\",\n        \"cache.init(\\n\",\n        \"    embedding_func=onnx.to_embeddings,\\n\",\n        \"    data_manager=data_manager,\\n\",\n        \"    similarity_evaluation=SearchDistanceEvaluation(),\\n\",\n        \"    )\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"questions = [\\n\",\n        \"    \\\"what's github\\\",\\n\",\n        \"    \\\"can you explain what GitHub is\\\",\\n\",\n        \"    \\\"can you tell me more about GitHub\\\",\\n\",\n        \"    \\\"what is the purpose of GitHub\\\"\\n\",\n        \"]\\n\",\n        \"\\n\",\n        \"for question in questions:\\n\",\n        \"    start_time = time.time()\\n\",\n        \"    response = predict_large_language_model_sample(\\\"octo-t2sql\\\", \\\"text-bison@001\\\", 0.2, 256, 0.8, 40, question, \\\"us-central1\\\")\\n\",\n        \"    print(f'Question: {question}')\\n\",\n        \"    print(\\\"Time consuming: {:.2f}s\\\".format(time.time() - start_time))\\n\",\n        \"\\n\",\n        \"  # before = time.time()\\n\",\n        \"  # print(answer)\\n\",\n        \"  # print(\\\"Read through Time Spent =\\\", time.time() - before)\\n\",\n        \"\\n\",\n        \"  # before = time.time()\\n\",\n        \"  # answer = cached_llm(prompt=question, cache_obj=llm_cache)\\n\",\n        \"  # print(answer)\\n\",\n        \"  # print(\\\"Cache Hit Time Spent =\\\", time.time() - before)\\n\",\n        \"\\n\"\n      ]\n    }\n  ],\n  \"metadata\": {\n    \"kernelspec\": {\n      \"display_name\": \"Python 3 (ipykernel)\",\n      \"language\": \"python\",\n      \"name\": \"python3\"\n    },\n    \"language_info\": {\n      \"codemirror_mode\": {\n        \"name\": \"ipython\",\n        \"version\": 3\n      },\n      \"file_extension\": \".py\",\n      \"mimetype\": \"text/x-python\",\n      \"name\": \"python\",\n      \"nbconvert_exporter\": \"python\",\n      \"pygments_lexer\": \"ipython3\",\n      \"version\": \"3.9.12\"\n    },\n    \"colab\": {\n      \"provenance\": []\n    }\n  },\n  \"nbformat\": 4,\n  \"nbformat_minor\": 5\n}"
  },
  {
    "path": "docs/conf.py",
    "content": "# Configuration file for the Sphinx documentation builder.\n#\n# This file only contains a selection of the most common options. For a full\n# list see the documentation:\n# https://www.sphinx-doc.org/en/master/usage/configuration.html\n\n# -- Path setup --------------------------------------------------------------\n\n# If extensions (or modules to document with autodoc) are in another directory,\n# add these directories to sys.path here. If the directory is relative to the\n# documentation root, use os.path.abspath to make it absolute, like shown here.\n\nimport os\nimport sys\n\nsys.path.insert(0, os.path.abspath(\".\"))\nsys.path.insert(0, os.path.abspath(\"..\"))\nsys.path.insert(0, os.path.abspath(\"_exts\"))\nfrom _exts.index_con import IndexCon\nfrom _exts.docgen2 import DocGen\n\n\n# -- Project information -----------------------------------------------------\n\nproject = \"GPTCache\"\ncopyright = \"2023, Zilliz Inc\"\nauthor = \"Zilliz Inc.\"\n\n# The full version, including alpha/beta/rc tags\nrelease = \"main\"\n\nhtml_title = project\nhtml_last_updated_fmt = \"%b %d, %Y\"\n\n\n# -- General configuration ---------------------------------------------------\n\n# Add any Sphinx extension module names here, as strings. They can be\n# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom\n# ones.\n\nextensions = [\n    \"myst_nb\",\n    \"sphinx.ext.autodoc\",\n    \"sphinx.ext.autodoc.typehints\",\n    \"sphinx.ext.autosummary\",\n    \"sphinx.ext.napoleon\",\n    \"sphinx.ext.viewcode\",\n    \"sphinx.ext.doctest\",\n    \"sphinx.ext.intersphinx\",\n    \"sphinx_copybutton\",\n    \"sphinx_panels\",\n    \"sphinx_toolbox.collapse\",\n]\n\nintersphinx_mapping = {\n    \"torch\": (\"https://pytorch.org/docs/stable/\", None),\n    \"numpy\": (\"https://numpy.org/devdocs/\", None),\n    \"python\": (\"https://docs.python.org/3.8/\", None),\n}\n\nautodoc_member_order = \"bysource\"\nautodoc_mock_imports = [\n    \"httpx\",\n    \"protobuf\",\n    \"minigpt4\",\n    \"llama_cpp\",\n    \"transformers\",\n    \"diffusers\",\n    \"stability_sdk\",\n    \"paddle\",\n    \"paddlenlp\",\n]\n\nsource_suffix = {\n    \".rst\": \"restructuredtext\",\n    \".ipynb\": \"myst-nb\",\n    \".md\": \"myst-nb\",\n}\n\n# Add any paths that contain templates here, relative to this directory.\ntemplates_path = [\"_templates\"]\n\n# List of patterns, relative to source directory, that match files and\n# directories to ignore when looking for source files.\n# This pattern also affects html_static_path and html_extra_path.\n\nexclude_patterns = [\n    \"_build\",\n    \"Thumbs.db\",\n    \".DS_Store\",\n]\n\n\n# -- Options for HTML output -------------------------------------------------\n\n# The theme to use for HTML and HTML Help pages.  See the documentation for\n# a list of builtin themes.\n#\n# html_theme = 'alabaster'\n# html_theme = 'python_docs_theme'\nhtml_theme = \"sphinx_book_theme\"\n\nhtml_theme_options = {\n    \"path_to_docs\": \"docs\",\n    \"repository_url\": \"https://github.com/zilliztech/GPTCache\",\n    \"use_repository_button\": True,\n}\n\nhtml_context = {\n    \"display_github\": True,  # Integrate GitHub\n    \"github_user\": \"zilliztech\",  # Username\n    \"github_repo\": \"GPTCache\",  # Repo name\n    \"github_version\": \"main\",  # Version\n    \"conf_py_path\": \"/docs/\",  # Path in the checkout to the docs root\n}\n\nhtml_show_sphinx = False\n\n# Add any paths that contain custom static files (such as style sheets) here,\n# relative to this directory. They are copied after the builtin static files,\n# so a file named 'default.css' will overwrite the builtin 'default.css'.\nhtml_static_path = [\"_static\"]\n\nnb_execution_mode = \"off\"\nmyst_enable_extensions = [\"colon_fence\"]\n\n# -- Preactions --------------------------------------------------------------\n\n# Prepare docs\ndocgen = DocGen()\ndocgen.generate()\n\nIndexCon(\"../README.md\", \"index.rst\")\n"
  },
  {
    "path": "docs/configure_it.md",
    "content": "# How to better configure your cache\n\n**Last update time**: 2023.6.26\n\n**Latest version**: v0.1.32\n\nBefore reading the following content, you need to understand the basic composition of GPTCache, you need to finish reading:\n\n- [GPTCache README](https://github.com/zilliztech/GPTCache)\n- [GPTCache Quick Start](https://github.com/zilliztech/GPTCache/blob/main/docs/usage.md)\n\n## Introduction to GPTCache initialization\n\nGPTCache **core components** include:\n\n- pre-process func\n- embedding\n- data manager\n  - cache store\n  - vector store\n  - object store (optional, multi-model)\n- similarity evaluation\n- post-process func\n\nThe above core components need to be set when similar caches are initialized, and of course most of them have default values. In addition to these, there are additional parameters, including:\n\n- **config**, some configurations of the cache, such as similarity thresholds, parameter values of some specific preprocessing functions, etc.;\n- **next_cache**, can be used to set up a multi-level cache. \n  \n    For example, there are two GPTCaches, L1 and L2, where L1 sets L2 as the next cache during initialization.\n\n    When accepting a user request, if the L1 cache misses, it will go to the L2 cache to find it.\n\n    If the L2 also misses, it will call the LLM, and then store the results in the L1 and L2 caches. \n\n    If the L2 hits, the cached result will be stored in the L1 cache\n\nThe above is the basic description of all initialization parameters.\n\nIn GPTCache lib, there is a global cache object. If the llm request does not set the cache object, this global object is used.\n\nThere are currently **three** methods of initializing the cache, namely:\n\n1. The `init` method of the `Cache` class defaults to exact key matching, which is a simple map cache, that is:\n\n```\ndef init(\n    self,\n    cache_enable_func=cache_all,\n    pre_func=last_content,\n    embedding_func=string_embedding,\n    data_manager: DataManager = get_data_manager(),\n    similarity_evaluation=ExactMatchEvaluation(),\n    post_func=temperature_softmax,\n    config=Config(),\n    next_cache=None,\n  ):\n  pass\n```\n\n2. The `init_similar_cache` method in the api package defaults to similar matching of onnx+sqlite+faiss\n\n```\ndef init_similar_cache(\n    data_dir: str = \"api_cache\",\n    cache_obj: Optional[Cache] = None,\n    pre_func: Callable = get_prompt,\n    embedding: Optional[BaseEmbedding] = None,\n    data_manager: Optional[DataManager] = None,\n    evaluation: Optional[SimilarityEvaluation] = None,\n    post_func: Callable = temperature_softmax,\n    config: Config = Config(),\n  ):\n  pass\n```\n\n3. The `init_similar_cache_from_config` in the api package initializes the cache through the yaml file, and the default is fuzzy matching of onnx+sqlite+faiss, more details: [GPTCache server configuration](https://github.com/zilliztech/GPTCache/tree/main/examples#start-server)\n\n```\ndef init_similar_cache_from_config(config_dir: str, cache_obj: Optional[Cache] = None):\n  pass\n```\n\n## Pre-Process function\n\nThe preprocessing function is mainly used to obtain user question information from the user llm request parameter list, assemble this part of information into a string and return it. The return value is the input of the embedding model.\n\nIt is worth noting that **different llms need to use different preprocessing functions**, because the request parameter list of each llm is inconsistent. And the parameter names containing user problem information are also different.\n\nOf course, if you want to use different pre-processing processes according to other llm parameters of the user, this is also possible.\n\nThe definition of the preprocessing function receives two parameters, and the return value can be one or two.\n\n```python\ndef foo_pre_process_func(data: Dict[str, Any], **params: Dict[str, Any]) -> Any:\n    pass\n```\n\nAmong them, `data` is the list of user parameters, and `params` is some additional parameters, such as cache config, which can be obtained through `params.get(\"cache_config\", None)`.\n\nIf there is no special requirement, the function can return a value, which is used for the input of embedding and the key of the current request cache.\n\nOf course, two values can also be returned, the first one is used as the key of the current request cache, and the second one is used as the input of embdding, which is currently mainly used to **handle long openai chat conversations**. In the case of a long dialogue, the first return value is the user's original long dialogue, and only simple dialogue string splicing is performed, and the second return value is to extract the key information of the long dialogue through some models, shortening the embedding input.\n\n**Currently available preprocessing functions:**\n\nall source code reference: [processor/pre](https://github.com/zilliztech/GPTCache/blob/main/gptcache/processor/pre.py)\n\nall preprocessing api reference: [gptcache.processor.pre](https://gptcache.readthedocs.io/en/latest/references/processor.html#module-gptcache.processor.pre)\n\nIf you are confused about the role of the following preprocessing functions, **you can check the api reference**, which contains simple function examples.\n\n### openai chat complete\n\n- last_content: get the last content of the message list.\n- last_content_without_prompt: get the last content of the message list without prompts content. It needs to be used with the `prompts` parameter in [Config](https://gptcache.readthedocs.io/en/latest/references/gptcache.html#module-gptcache.config). If it is not set, it will have the same effect as last_content.\n- last_content_without_template: get the last content's template values of the message list without template content. The functionality is similar to the previous one, but it can handle more complex templates. The above is only a simple judgment through the string, that is, the user's prompt must be continuous. But `last_content_without_template` can support string template type, please refer to api reference for specific usage.\n- all_content: simply concat the contents of the messages list in the user request.\n- concat_all_queries: concat the content and role info of the message list.\n- context_process: to deal with long dialogues in openai, the core is to compress the dialogue through some methods, and extract the core content of the dialogue as the key of the cache.\n  - summarization_context, compress dialogue content through the summary model, api reference: [processor.context.summarization_context](https://gptcache.readthedocs.io/en/latest/references/processor.html#module-gptcache.processor.context.summarization_context)\n  - selective_context, select parts of a dialog by model, api reference: [processor.context.selective_context](https://gptcache.readthedocs.io/en/latest/references/processor.html#module-gptcache.processor.context.selective_context)\n  - concat_context, concat all parts of a dialog, which is easy to handle with rwkv embedding, api reference: [processor.context.concat_context](https://gptcache.readthedocs.io/en/latest/references/processor.html#module-gptcache.processor.context.concat_context)\n\n### langchain llm\n\n- get_prompt: get the `prompt` of the llm request params.\n\n### langchain chat llm\n\n- get_messages_last_content: get the last content of the llm request `message` object array.\n\n### openai image\n\n- get_prompt: get the `prompt` of the llm request params.\n\n### openai audio\n\n- get_file_name: get the file name of the llm request params\n- get_file_bytes: get the file bytes of the llm request params\n\n### openai moderation\n\n- get_openai_moderation_input: get the input param of the openai moderation request params\n\n### llama\n\n- get_prompt: get the `prompt` of the llm request params.\n\n### replicate (image -> text, image and text -> text)\n\n- get_input_str: get the image and question str of the llm request params\n- get_input_image_file_name: get the image file name of the llm request params\n\n### stable diffusion\n\n- get_prompt: get the `prompt` of the llm request params.\n\n### minigpt4\n\n- get_image_question: get the image and question str of the llm request params\n- get_image: get the image of the llm request params\n\n### dolly\n\n- get_inputs: get the inputs of the llm request params\n\nNOTE: **For different llm, different preprocessing functions should be selected** when the cache is initialized. If not, you can choose to customize.\n\n## Embedding\n\nConvert the input into a multidimensional array of numbers, which are classified according to the input type.\n\nWhether the cache is accurate or not, the choice of embedding model is more important. **A few points worth noting**: the language supported by the model, and the number of tokens supported by the model.\nIn addition, generally speaking, under certain computer resources, large models are more accurate, but time-consuming; small models run faster, but are less accurate.\n\nall embedding api reference: [embedding api](https://gptcache.readthedocs.io/en/latest/references/embedding.html)\n\n### text\n\n- Onnx: small, only supports 512token, and only supports English\n- Huggingface: default [Distilbert-base-uncased](https://huggingface.co/distilbert-base-uncased), Chinese [uer/albert-base-chinese-cluecorpussmall](https://huggingface.co/uer/albert-base-chinese-cluecorpussmall), more models: [huggingface models](https://huggingface.co/models?sort=downloads)\n- SBERT: optional model list reference: [sbert Pretrained Models](https://www.sbert.net/docs/pretrained_models.html)\n- OpenAI: openai embedding api server, more details: [openai embeddings](https://platform.openai.com/docs/guides/embeddings/what-are-embeddings)\n- Cohere: cohere embedding api server, more details: [cohere embed](https://docs.cohere.com/reference/embed)\n- LangChain: langchain text embedding models, more details: [langchain text embedding models](https://langchain-langchain.vercel.app/docs/modules/data_connection/text_embedding/), [GPTCache langchain embedding usage](https://gptcache.readthedocs.io/en/latest/references/embedding.html#module-gptcache.embedding.langchain)\n- Rwkv: rwkv text embedding models, more details: [huggingface transformers rwkv](https://huggingface.co/docs/transformers/model_doc/rwkv)\n- PaddleNLP: easy-to-use and powerful NLP library, more details: [PaddleNLP Transformer models](https://paddlenlp.readthedocs.io/zh/latest/model_zoo/index.html)\n- UForm: multi-modal transformers library, more details: [ufrom usage](https://unum-cloud.github.io/uform/)\n- FastText: library for fast text representation and classification, more details: [fastText](https://github.com/facebookresearch/fastText#models)\n\n### audio\n\n- Data2VecAudio: huggingface audio embedding model, more details: [huggingface data2vec-audio](https://huggingface.co/models?sort=downloads&search=data2vec-audio)\n\n### image\n\n- Timm: huggingface image embedding model, more details: [huggingface timm](https://huggingface.co/docs/timm/quickstart)\n- ViT: huggingface vit image embedding model, more details: [huggingface vit](https://huggingface.co/models?sort=downloads&search=vit)\n\n**NOTE**: you need to select the appropriate embedding model according to the data type, and you also need to look at the language supported by embedding.\n\n## Data Manager\n\nFor the similar cache of text, only cache store and vector store are needed. If it is a multi-modal cache, object store is additionally required. The choice of storage is not related to the llm type, but it should be noted that the vector dimension needs to be set when using the vector store.\n\n### cache store\n\n- sqlite\n- duckdb\n- mysql\n- mariadb\n- sqlserver\n- oracle\n- postgresql\n\n### vector store\n\n- milvus\n- faiss\n- chromadb\n- hnswlib\n- pgvector\n- docarray\n- usearch\n- redis\n\n### object store\n\n- local\n- s3\n\n### how to get a data manager\n\n- Use factory to get it by the store name\n\n`vector_params` is the parameter required to build the vector store；\n\n`scalar_params` is the parameter required to build the cache store；\n\n```python\nfrom gptcache.manager import manager_factory\n\ndata_manager = manager_factory(\"sqlite,faiss\", data_dir=\"./workspace\", scalar_params={}, vector_params={\"dimension\": 128})\n```\n\n- Combining each store object through get_data_manager method\n\n```python\nfrom gptcache.manager import get_data_manager, CacheBase, VectorBase\n\ndata_manager = get_data_manager(CacheBase('sqlite'), VectorBase('faiss', dimension=128))\n```\n\n**Note that** each store has more initialization parameters, you can reference the store's constructor method by the [store api reference](https://gptcache.readthedocs.io/en/latest/references/manager.html).\n\n## Similarity Evaluation\n\nIf you want the cache to play a better role, in addition to embedding and vector engines, appropriate similarity evaluation is also very critical.\n\nThe similarity evaluation is mainly: evaluate the recalled cache data according to the current user's llm request, and obtain a float value. The easiest way is to use the embedding distance. Of course, there are other methods, such as using a model to judge the similarity of two problems.\n\nThe following are similar evaluation components that already exist.\n\n1. SearchDistanceEvaluation, vector search distance, simple, fast, but not very accurate\n2. OnnxModelEvaluation, use the model to compare the degree of correlation between the two questions. The small model only supports 512token, which is more accurate than the distance\n3. NumpyNormEvaluation, calculate the distance between the two embedding vectors of the llm request and the cache data, which is fast and simple, and the accuracy is almost the same as the distance\n4. KReciprocalEvaluation, use the K-reprocical algorithm to calculate the similarity for reranking, and recall multiple cache data for comparison. It needs to be recalled many times, which is more time-consuming and relatively more accurate. For more information, refer to the api reference\n5. CohereRerankEvaluation, use the cohere rerank api server, more accurate, at a cost, more details: [cohere rerank](https://docs.cohere.com/reference/rerank-1)\n6. SequenceMatchEvaluation, sequence matching, suitable for multiple rounds of dialogue, separates each round of dialogue for similar evaluation, and then obtains the final score through the proportion\n7. TimeEvaluation, evaluate by cache creation time, avoid using stale cache\n8. SbertCrossencoderEvaluation, use the sbert model for rerank evaluation, **which is currently the best similarity evaluation found**\n\nMore detailed usage reference [api doc](https://gptcache.readthedocs.io/en/latest/references/similarity_evaluation.html)\n\nOf course, if you want to get a better Similarity Evaluation, **you need to customize it according to the scene**, such as assembling the existing Similarity Evaluation. If you want to get better caching effect in long conversations, you may need to assemble SequenceMatchEvaluation, TimeEvaluation, TimeEvaluation, of course there may be a better way.\n\n## Post-Process function\n\nPost-processing is mainly to obtain the final answer to user questions based on all cached data that meet the similarity threshold. One of them can be selected according to a certain strategy in the cached data list, or the model can be used to fine-tune these answers, so that similar questions can have different answers.\n\nCurrently Existing Postprocessing Functions：\n\n1. temperature_softmax, select according to the softmax strategy, which can ensure that the obtained cached answer has a certain randomness\n2. first, get the most similar cached answer\n3. random, randomly fetch a similar cached answer\n\n## Recommended by newcomers\n\nMOTE: different llm corresponds to different **preprocessing functions**, which need to be adjusted according to your needs !!!\n\n### beginner level\n\nWant to experience the function of GPTCache, use the simplest combination: `onnx embedding + (sqlite + faiss) data manager + distance similarity evaluation`\n\n<details>\n\n<summary> <strong>english version</strong> </summary>\n\n```python\nimport time\n\nfrom gptcache.adapter import openai\nfrom gptcache.adapter.api import init_similar_cache\nfrom gptcache.processor.pre import last_content\n\ninit_similar_cache(pre_func=last_content)\n\nquestions = [\n    \"what's github\",\n    \"can you explain what GitHub is\",\n    \"can you tell me more about GitHub\",\n    \"what is the purpose of GitHub\",\n]\n\nfor question in questions:\n    start_time = time.time()\n    response = openai.ChatCompletion.create(\n        model=\"gpt-3.5-turbo\", messages=[{\"role\": \"user\", \"content\": question}],\n    )\n    print(f\"Question: {question}\")\n    print(\"Time consuming: {:.2f}s\".format(time.time() - start_time))\n    print(f'Answer: {response[\"choices\"][0][\"message\"][\"content\"]}\\n')\n```\n\n```text\n# console output\n\nhuggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\nTo disable this warning, you can either:\n        - Avoid using `tokenizers` before the fork if possible\n        - Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\nQuestion: what's github\nTime consuming: 12.23s\nAnswer: GitHub is a web-based platform that uses Git for version control. It provides developers with a collaborative environment in which they can store and share their code, manage projects, track issues, and build software. GitHub also provides a range of features for code collaboration and review, including pull requests, forks, and merge requests, that enable users to work together on code development and share their work with a wider community. GitHub is widely used by businesses, open-source communities, and individual developers around the world.\n\nQuestion: can you explain what GitHub is\nTime consuming: 0.64s\nAnswer: GitHub is a web-based platform that uses Git for version control. It provides developers with a collaborative environment in which they can store and share their code, manage projects, track issues, and build software. GitHub also provides a range of features for code collaboration and review, including pull requests, forks, and merge requests, that enable users to work together on code development and share their work with a wider community. GitHub is widely used by businesses, open-source communities, and individual developers around the world.\n\nQuestion: can you tell me more about GitHub\nTime consuming: 0.21s\nAnswer: GitHub is a web-based platform that uses Git for version control. It provides developers with a collaborative environment in which they can store and share their code, manage projects, track issues, and build software. GitHub also provides a range of features for code collaboration and review, including pull requests, forks, and merge requests, that enable users to work together on code development and share their work with a wider community. GitHub is widely used by businesses, open-source communities, and individual developers around the world.\n\nQuestion: what is the purpose of GitHub\nTime consuming: 0.24s\nAnswer: GitHub is a web-based platform that uses Git for version control. It provides developers with a collaborative environment in which they can store and share their code, manage projects, track issues, and build software. GitHub also provides a range of features for code collaboration and review, including pull requests, forks, and merge requests, that enable users to work together on code development and share their work with a wider community. GitHub is widely used by businesses, open-source communities, and individual developers around the world.\n\n```\n\n</details>\n\n<details>\n\n<summary> <strong>chinese version</strong> </summary>\n\nIf the question is Chinese, you need to use other embedding models, here we use the model on huggingface.\n\n```python\nimport time\n\nfrom gptcache.adapter import openai\nfrom gptcache.adapter.api import init_similar_cache\nfrom gptcache.embedding import Huggingface\nfrom gptcache.processor.pre import last_content\n\nhuggingface = Huggingface(model=\"uer/albert-base-chinese-cluecorpussmall\")\ninit_similar_cache(pre_func=last_content, embedding=huggingface)\n\nquestions = [\"什么是Github\", \"你可以解释下什么是Github吗\", \"可以告诉我关于Github一些信息吗\"]\n\nfor question in questions:\n    start_time = time.time()\n    response = openai.ChatCompletion.create(\n        model=\"gpt-3.5-turbo\", messages=[{\"role\": \"user\", \"content\": question}],\n    )\n    print(f\"Question: {question}\")\n    print(\"Time consuming: {:.2f}s\".format(time.time() - start_time))\n    print(f'Answer: {response[\"choices\"][0][\"message\"][\"content\"]}\\n')\n```\n\n```text\n# console output\n\nSome weights of the model checkpoint at uer/albert-base-chinese-cluecorpussmall were not used when initializing AlbertModel: ['predictions.decoder.bias', 'predictions.LayerNorm.bias', 'predictions.bias', 'predictions.dense.bias', 'predictions.LayerNorm.weight', 'predictions.dense.weight', 'predictions.decoder.weight']\n- This IS expected if you are initializing AlbertModel from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).\n- This IS NOT expected if you are initializing AlbertModel from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).\nSome weights of AlbertModel were not initialized from the model checkpoint at uer/albert-base-chinese-cluecorpussmall and are newly initialized: ['albert.pooler.weight', 'albert.pooler.bias']\nYou should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.\nhuggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\nTo disable this warning, you can either:\n        - Avoid using `tokenizers` before the fork if possible\n        - Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n2023-06-27 18:05:20,233 - 140704448365760 - connectionpool.py-connectionpool:812 - WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1125)'))': /v1/chat/completions\nQuestion: 什么是Github\nTime consuming: 24.09s\nAnswer: GitHub是一个面向开源及私有软件项目的托管平台，因为只支持git（一个分布式版本控制系统）作为唯一的版本库格式进行托管，故名GitHub。GitHub于2008年4月10日正式上线，除了目前，GitHub已经成为了世界上最大的开源社区和开源软件开发平台之一。\n\nQuestion: 你可以解释下什么是Github吗\nTime consuming: 0.49s\nAnswer: GitHub是一个面向开源及私有软件项目的托管平台，因为只支持git（一个分布式版本控制系统）作为唯一的版本库格式进行托管，故名GitHub。GitHub于2008年4月10日正式上线，除了目前，GitHub已经成为了世界上最大的开源社区和开源软件开发平台之一。\n\nQuestion: 可以告诉我关于Github一些信息吗\nTime consuming: 0.12s\nAnswer: GitHub是一个面向开源及私有软件项目的托管平台，因为只支持git（一个分布式版本控制系统）作为唯一的版本库格式进行托管，故名GitHub。GitHub于2008年4月10日正式上线，除了目前，GitHub已经成为了世界上最大的开源社区和开源软件开发平台之一。\n```\n\n</details>\n\n### standard level\n\nUnderstand the initialization methods of all caches, and try different components to better match your usage scenarios.\n\n**TIPS:**\n1. Different llms require different preprocessing functions, and the usage scenarios of llm also need to be considered\n2. The number of tokens and languages supported when using the model, such as embedding and similarity evaluation\n3. Don’t forget to pass the dimension parameter during the vector database initialization process\n4. There are **many examples** in the source code, which can be found in the **bootcamp/example/test** directory\n5. If there are multiple llms in a program that need to use cache, multiple Cache objects need to be created\n\n<details>\n\n<summary> <strong>Here is an example where each component does not use default values.</strong> </summary>\n\n```python\nimport time\n\nfrom gptcache import Cache, Config\nfrom gptcache.adapter import openai\nfrom gptcache.adapter.api import init_similar_cache\nfrom gptcache.embedding import Onnx\nfrom gptcache.manager import manager_factory\nfrom gptcache.processor.post import random_one\nfrom gptcache.processor.pre import last_content\nfrom gptcache.similarity_evaluation import OnnxModelEvaluation\n\nopenai_complete_cache = Cache()\nencoder = Onnx()\nsqlite_faiss_data_manager = manager_factory(\n    \"sqlite,faiss\",\n    data_dir=\"openai_complete_cache\",\n    scalar_params={\n        \"sql_url\": \"sqlite:///./openai_complete_cache.db\",\n        \"table_name\": \"openai_chat\",\n    },\n    vector_params={\n        \"dimension\": encoder.dimension,\n        \"index_file_path\": \"./openai_chat_faiss.index\",\n    },\n)\nonnx_evaluation = OnnxModelEvaluation()\ncache_config = Config(similarity_threshold=0.75)\n\ninit_similar_cache(\n    cache_obj=openai_complete_cache,\n    pre_func=last_content,\n    embedding=encoder,\n    data_manager=sqlite_faiss_data_manager,\n    evaluation=onnx_evaluation,\n    post_func=random_one,\n    config=cache_config,\n)\n\nquestions = [\n    \"what's github\",\n    \"can you explain what GitHub is\",\n    \"can you tell me more about GitHub\",\n    \"what is the purpose of GitHub\",\n]\n\nfor question in questions:\n    start_time = time.time()\n    response = openai.ChatCompletion.create(\n        model=\"gpt-3.5-turbo\",\n        messages=[{\"role\": \"user\", \"content\": question}],\n        cache_obj=openai_complete_cache,\n    )\n    print(f\"Question: {question}\")\n    print(\"Time consuming: {:.2f}s\".format(time.time() - start_time))\n    print(f'Answer: {response[\"choices\"][0][\"message\"][\"content\"]}\\n')\n```\n\n```text\n# console output\n\nhuggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\nTo disable this warning, you can either:\n        - Avoid using `tokenizers` before the fork if possible\n        - Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\nQuestion: what's github\nTime consuming: 24.73s\nAnswer: GitHub is an online platform used primarily for version control and coding collaborations. It's used by developers to store, share and manage their codebase. It allows users to collaborate on projects with other developers, track changes, and manage their code repositories. It also provides several features such as pull requests, code review, and issue tracking. GitHub is widely used in the open source community and is considered as an industry standard for version control and software development.\n\nQuestion: can you explain what GitHub is\nTime consuming: 0.61s\nAnswer: GitHub is an online platform used primarily for version control and coding collaborations. It's used by developers to store, share and manage their codebase. It allows users to collaborate on projects with other developers, track changes, and manage their code repositories. It also provides several features such as pull requests, code review, and issue tracking. GitHub is widely used in the open source community and is considered as an industry standard for version control and software development.\n\nQuestion: can you tell me more about GitHub\nTime consuming: 33.38s\nAnswer: GitHub is a web-based hosting service for version control using Git. It is used by developers to collaborate on code from anywhere in the world. It allows developers to easily collaborate on projects, keep track of changes to code, and work together on large codebases. GitHub provides a comprehensive platform for developers to build software together, making it easier to track changes, test and deploy code, and manage project issues. It also hosts millions of open-source projects, making it a valuable resource for developers looking to learn from others’ code and contribute to the open-source community. Additionally, non-developers can use GitHub to store and share documents, create and contribute to wikis, and track projects and issues. GitHub is a key tool in modern software development and has come to be an essential part of the software development process.\n\nQuestion: what is the purpose of GitHub\nTime consuming: 0.32s\nAnswer: GitHub is an online platform used primarily for version control and coding collaborations. It's used by developers to store, share and manage their codebase. It allows users to collaborate on projects with other developers, track changes, and manage their code repositories. It also provides several features such as pull requests, code review, and issue tracking. GitHub is widely used in the open source community and is considered as an industry standard for version control and software development.\n\n```\n\nIt can be found that the third problem does not hit the cache, this is because of the use of OnnxModelEvaluation. Using the model for similarity evaluation can improve the quality of cached answers, but it may also lead to a decrease in the hit rate of the cache, because it is possible to filter some that could have been cached, but the model thinks they are not similar.\n\n**Therefore, the choice of components needs to be selected according to your own needs.**\n\nWARNING: If it is a custom `cache`, you need to add the `cache_obj` parameter to specify the cache object when llm requests.\n\n```python\nresponse = openai.ChatCompletion.create(\n    model=\"gpt-3.5-turbo\",\n    messages=[{\"role\": \"user\", \"content\": question}],\n    cache_obj=openai_complete_cache,\n)\n```\n\n</details>\n\n### professional level\n\nUnderstand the source code of GPTCache, be familiar with the permission logic, and customize or create components according to your own needs.\n\nAccording to the current usage, the main conditions to determine the cache quality are:\n1. Preprocessing function, because the return value of the function will be used as the input of embedding\n2. Embedding model\n3. Vector Store\n4. Similarity evaluation, using the rerank model for similar evaluation\n\nThe GPTCache product we use internally, according to the existing data, found that the caching effect is good, and of course there is still room for improvement. At the same time, we also found that if a relevant model is trained on the data of this scene for a certain scene, the cache will work better. If you have real usage scenarios and relevant data sets, welcome to communicate with us.\n"
  },
  {
    "path": "docs/contributing.md",
    "content": "# 😍 Contributing to GPTCache\n\nBefore contributing to GPTCache, it is recommended to read the [usage doc](https://github.com/zilliztech/GPTCache/blob/main/docs/usage.md) [example-doc](https://github.com/zilliztech/GPTCache/blob/main/examples/README.md).\nThese two articles will introduce how to use GPTCache and the meaning of parameters of related functions.\n\nIn the process of contributing, pay attention to **the parameter type**, because there is currently no type restriction added.\n\n> Note that development **MUST** be based on the **`dev`** branch\n\nFirst check which part you want to contribute:\n- Add a method to pre-process the llm request\n- Add a scalar store type\n- Add a vector store type\n- Add a new data manager\n- Add a embedding function\n- Add a similarity evaluation function\n- Add a method to post-process the cache answer list\n- Add a new process in handling chatgpt requests\n\n## Lazy import and automatic installation\n\n**For newly added third-party dependencies, lazy import and automatic installation are required.** Implementation consists of the following steps:\n1. Lazy import\n```python\n# The __init__.py file of the same directory under the new file\n__all__ = ['Milvus']\n\nfrom gptcache.utils.lazy_import import LazyImport\n\nmilvus = LazyImport('milvus', globals(), 'gptcache.cache.vector_data.milvus')\n\n\ndef Milvus(**kwargs):\n    return milvus.Milvus(**kwargs)\n```\n2. Automatic installation\n```python\n# 2.1 Add the import method\n# add new method to utils/__init__.py\n__all__ = ['import_pymilvus']\n\nfrom gptcache.utils.dependency_control import prompt_install\n\n\ndef import_pymilvus():\n    try:\n        # pylint: disable=unused-import\n        import pymilvus\n    except ModuleNotFoundError as e:  # pragma: no cover\n        prompt_install('pymilvus')\n        import pymilvus  # pylint: disable=ungrouped-imports\n\n# 2.2 use the import method in your file\nfrom gptcache.util import import_pymilvus\nimport_pymilvus()\n```\n\n## Add a method to pre-process the llm request\n\nrefer to the implementation of [Pre](https://github.com/zilliztech/GPTCache/blob/main/gptcache/processor/pre.py).\n\n1. Make sure the input params, the `data` represents the original request dictionary object\n2. Implement the post method\n3. Add a usage example to [example](https://github.com/zilliztech/GPTCache/blob/main/examples) directory and add the corresponding content to [example.md](https://github.com/zilliztech/GPTCache/blob/main/examples/README.md) [README.md](https://github.com/zilliztech/GPTCache/blob/main/README.md)\n\n```python\n# The origin openai request\nimport openai\n\nopenai.ChatCompletion.create(\n  model=\"gpt-3.5-turbo\",\n  messages=[\n        {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n        {\"role\": \"user\", \"content\": \"Who won the world series in 2020?\"},\n        {\"role\": \"assistant\", \"content\": \"The Los Angeles Dodgers won the World Series in 2020.\"},\n        {\"role\": \"user\", \"content\": \"Where was it played?\"}\n    ]\n)\n\n# This is the pre-process function of openai request, which is to get the last message\ndef last_content(data, **_):\n    return data.get(\"messages\")[-1][\"content\"]\n```\n\n## Add a cache storage type\n\nrefer to the implementation of [SQLDataBase](https://github.com/zilliztech/GPTCache/blob/main/gptcache/manager/scalar_data/sqlalchemy.py).\n\n1. Implement the [CacheStorage](https://github.com/zilliztech/GPTCache/blob/main/gptcache/manager/scalar_data/base.py) interface\n2. Make sure the newly added third-party libraries are lazy imported and automatic installation\n4. Add the new store to the [CacheBase](https://github.com/zilliztech/GPTCache/blob/main/gptcache/manager/scalar_data/manager.py) method\n5. Add a usage example to [example](https://github.com/zilliztech/GPTCache/tree/main/examples/data_manager) directory and add the corresponding content to [example.md](https://github.com/zilliztech/GPTCache/blob/main/examples/README.md) [README.md](https://github.com/zilliztech/GPTCache/blob/main/README.md)\n\n## Add a vector store type\n\nrefer to the implementation of [milvus](https://github.com/zilliztech/GPTCache/blob/main/gptcache/manager/vector_data/milvus.py).\n\n1. Implement the [VectorBase](https://github.com/zilliztech/GPTCache/blob/main/gptcache/manager/vector_data/base.py) interface\n2. Make sure the newly added third-party libraries are lazy imported and automatic installation\n3. Add the new store to the [VectorBase](https://github.com/zilliztech/GPTCache/blob/main/gptcache/manager/vector_data/manager.py) method\n4. Add a usage example to [example](https://github.com/zilliztech/GPTCache/tree/main/examples/data_manager) directory and add the corresponding content to [example.md](https://github.com/zilliztech/GPTCache/blob/main/examples/README.md) [README.md](https://github.com/zilliztech/GPTCache/blob/main/README.md)\n\n## Add a new data manager\n\nrefer to the implementation of [MapDataManager, SSDataManager](https://github.com/zilliztech/GPTCache/blob/main/gptcache/manager/data_manager.py).\n\n1. Implement the [DataManager](https://github.com/zilliztech/GPTCache/blob/main/gptcache/manager/data_manager.py) interface\n2. Add the new store to the [get_data_manager](https://github.com/zilliztech/GPTCache/blob/main/gptcache/manager/data_manager.py) method\n3. Add a usage example to [example](https://github.com/zilliztech/GPTCache/tree/main/examples/data_manager) directory and add the corresponding content to [example.md](https://github.com/zilliztech/GPTCache/blob/main/examples/README.md) [README.md](https://github.com/zilliztech/GPTCache/blob/main/README.md)\n\n## Add a embedding function\n\nrefer to the implementation of [cohere](https://github.com/zilliztech/GPTCache/blob/main/gptcache/embedding/cohere.py) or [openai](https://github.com/zilliztech/GPTCache/blob/main/gptcache/embedding/openai.py).\n\n1. Add a new python file to [embedding](https://github.com/zilliztech/GPTCache/tree/main/gptcache/embedding) directory\n2. Make sure the newly added third-party libraries are lazy imported and automatic installation\n3. Implement the embedding function and **make sure** your output dimension\n4. Add a usage example to [example](https://github.com/zilliztech/GPTCache/tree/main/examples/embedding) directory and add the corresponding content to [example.md](https://github.com/zilliztech/GPTCache/blob/main/examples/README.md) [README.md](https://github.com/zilliztech/GPTCache/blob/main/README.md)\n\n## Add a similarity evaluation function\n\nrefer to the implementation of [SearchDistanceEvaluation](https://github.com/zilliztech/GPTCache/blob/main/gptcache/similarity_evaluation/distance.py) or [OnnxModelEvaluation](https://github.com/zilliztech/GPTCache/blob/main/gptcache/similarity_evaluation/onnx.py)\n\n1. Implement the [SimilarityEvaluation](https://github.com/zilliztech/GPTCache/blob/main/gptcache/similarity_evaluation/similarity_evaluation.py) interface\n2. Make sure the range of return value, the `range` method return the min and max value\n3. Make sure the input params of `evaluation`, you can learn more about in the [user view](https://github.com/zilliztech/GPTCache/blob/main/gptcache/adapter/openai.py) model\n```python\nrank = chat_cache.evaluation_func({\n    \"question\": pre_embedding_data,\n    \"embedding\": embedding_data,\n}, {\n    \"question\": cache_question,\n    \"answer\": cache_answer,\n    \"search_result\": cache_data,\n}, extra_param=context.get('evaluation', None))\n```\n4. Make sure the newly added third-party libraries are lazy imported and automatic installation\n5. Implement the similarity evaluation function\n6. Add a usage example to [example](https://github.com/zilliztech/GPTCache/blob/main/examples) directory and add the corresponding content to [example.md](https://github.com/zilliztech/GPTCache/blob/main/examples/README.md) [README.md](https://github.com/zilliztech/GPTCache/blob/main/README.md)\n\n## Add a method to post-process the cache answer list\n\nrefer to the implementation of [first or random_one](https://github.com/zilliztech/GPTCache/blob/main/gptcache/processor/post.py)\n\n1. Make sure the input params, you can learn more about in the [adapter](https://github.com/zilliztech/GPTCache/blob/main/gptcache/adapter/adapter.py)\n2. Make sure the newly added third-party libraries are lazy imported and automatic installation\n3. Implement the post method\n4. Add a usage example to [example](https://github.com/zilliztech/GPTCache/blob/main/examples) directory and add the corresponding content to [example.md](https://github.com/zilliztech/GPTCache/blob/main/examples/README.md) [README.md](https://github.com/zilliztech/GPTCache/blob/main/README.md)\n\n```python\n# Get the most similar one from multiple results\ndef first(messages):\n    return messages[0]\n\n\n# Randomly fetch one of many results\ndef random_one(messages):\n    return random.choice(messages)\n```\n\n# Add a new process in handling chatgpt requests\n\n1. Need to have a clear understanding of the current process, refer to the [adapter](https://github.com/zilliztech/GPTCache/blob/main/gptcache/adapter/adapter.py)\n2. Add a new process\n3. Make sure all examples work properly\n"
  },
  {
    "path": "docs/feature.md",
    "content": "# Feature\n\n- Support the openai chat completion normal and stream request\n- Get top_k similar search results, it can be set when creating the data manager\n- Support the cache chain, see: `Cache#next_cache`\n\n```python\nbak_cache = Cache()\nbak_cache.init()\ncache.init(next_cache=bak_cache)\n```\n\n- Whether to completely skip the current cache, that is, do not search the cache or save the Chat GPT results, see: `Cache#cache_enable_func`\n- In the cache initialization phase, no cache search is performed, but save the result returned by the chat gpt to cache, see: `cache_skip=True` in `create` request\n\n```python\nopenai.ChatCompletion.create(\n    model=\"gpt-3.5-turbo\",\n    messages=mock_messages,\n    cache_skip=True,\n)\n```\n\n- Like Lego bricks, custom assemble all modules, including:\n  - Adapter: The user interface to adapt different LLM model requests to the GPTCache protocol\n  - Pre-processor: Extracts the key information from the request and preprocess\n  - Context Buffer: Maintains session context\n  - Encoder: Embed the text into a dense vector for similarity search\n  - Cache manager: which includes searching, saving, or evicting data\n  - Ranker: Evaluate similarity by judging the quality of cached answers\n  - Post-processor: Determine which cached answers to the user, and generate the response"
  },
  {
    "path": "docs/horizontal-scaling-usage.md",
    "content": "# Horizontal Scaling using Distributed Cache\n\nTo see the need for Horizontal scaling of the cache, we need to see how GPTCache works by default, using in-memory cache.\nLet's look at a high level break down of the steps involved. More detailed flow is in the diagram below.\n## GPTCache In-Memory Search\n![GPTCache-Local-Search.png](GPTCache-Local-Search.png)\nAbove diagram depicts how for a given query search operation will determine whether cache exists or not. \nIt happens in following steps: \n1. Accept query from user\n2. **Embedding Conversion:** User query is converted into embeddings \n3. **Vector DB Search:** For a given input embedding, top k most similar embeddings are searched in the Vector DB. \n4. **Similarity Evaluation:** For each of the top k embeddings, similarity is evaluated with existing cache data.\n5. **Cache Data Search:** After similarity evaluation, cache information for vector embedding with the highest similarity score is searched in the cache. Using the associated Primary Key\n   Cache information is stored in two ways. \n   1. **In-memory Eviction Manager:** In-memory Eviction Manger maintains the primary keys of the available cache and oversees the eviction of cache data.  \n   2. **Scalar Database:** Scalar DB stores information such as Answers, Dependencies and other metadata.\n6. **Cache Data Retrieval:** Once cache data is found, it is retrieved from Scalar DB and returned to the user.\n\n## GPTCache Distributed Cache Search\n![GPTCache-Distributed-Search.png](GPTCache-Distributed-Search.png)\nAlthough, In-memory eviction manager work great for a single node deployment. It won't work in a multi-node deployment scenario since, cache information is not shared across nodes.  \nIn the diagrams above, you can observe that the only difference between the two flows is the Eviction Manager. \nThe **Distributed Eviction Manager** uses Distributed Cache database such as **Redis** to maintain cache information.\n\nNow that the cache is maintained in a distributed manner, the cache information is shared, and it can be made available across all nodes. This allows a multi-node GPTCache deployment to scale horizontally.\n\n\n## Horizontal Scaling\nThe diagram below depicts how a multi-node GPTCache deployment can be configured to enable horizontal scaling.\n![GPT-Cache-Multinode.png](GPT-Cache-Multinode.png)\n\n## Example \n### GPTCache Usage Example\nFollowing example shows how to use GPTCache with `redis` as eviction manager.\n \n```python\nfrom gptcache import Cache\nfrom gptcache.embedding import Onnx\n\nfrom gptcache.manager import manager_factory\n\nonnx = Onnx()\ndata_manager = manager_factory(\"redis,faiss\",\n                               eviction_manager=\"redis\",\n                               scalar_params={\"url\": \"redis://localhost:6379\"},\n                               vector_params={\"dimension\": onnx.dimension},\n                               eviction_params={\"maxmemory\": \"100mb\",\n                                                \"policy\": \"allkeys-lru\",\n                                                \"ttl\": 1}\n                               )\n\ncache = Cache()\ncache.init(data_manager=data_manager)\nquestion = \"What is github?\"\nanswer = \"Online platform for version control and code collaboration.\"\nembedding = onnx.to_embeddings(question)\ncache.import_data([question], [answer], [embedding])\n```\nGPTCache-Server can be configured in similar way using YAML configuration."
  },
  {
    "path": "docs/index.rst",
    "content": "\nGPTCache : A Library for Creating Semantic Cache for LLM Queries\n================================================================\n\nSlash Your LLM API Costs by 10x 💰, Boost Speed by 100x ⚡ \n\n\n.. image:: https://img.shields.io/pypi/v/gptcache?label=Release&color&logo=Python\n   :target: https://pypi.org/project/gptcache/\n   :alt: Release\n\n\n.. image:: https://img.shields.io/pypi/dm/gptcache.svg?color=bright-green&logo=Pypi\n   :target: https://pypi.org/project/gptcache/\n   :alt: pip download\n\n\n.. image:: https://img.shields.io/codecov/c/github/zilliztech/GPTCache/dev?label=Codecov&logo=codecov&token=E30WxqBeJJ\n   :target: https://codecov.io/gh/zilliztech/GPTCache\n   :alt: Codecov\n\n\n.. image:: https://img.shields.io/badge/License-MIT-blue.svg\n   :target: https://opensource.org/license/mit/\n   :alt: License\n\n\n.. image:: https://img.shields.io/twitter/url/https/twitter.com/zilliz_universe.svg?style=social&label=Follow%20%40Zilliz\n   :target: https://twitter.com/zilliz_universe\n   :alt: Twitter\n\n\n.. image:: https://img.shields.io/discord/1092648432495251507?label=Discord&logo=discord\n   :target: https://discord.gg/Q8C6WEjSWV\n   :alt: Discord\n\n\n🎉 GPTCache has been fully integrated with 🦜️🔗\\ `LangChain <https://github.com/hwchase17/langchain>`_ ! Here are detailed `usage instructions <https://python.langchain.com/en/latest/modules/models/llms/examples/llm_caching.html?highlight=cache#gptcache>`_.\n\n🐳 `The GPTCache server docker image <https://github.com/zilliztech/GPTCache/blob/main/docs/usage.md#Use-GPTCache-server>`_ has been released, which means that **any language** will be able to use GPTCache!\n\n📔 This project is undergoing swift development, and as such, the API may be subject to change at any time. For the most up-to-date information, please refer to the latest `documentation <https://gptcache.readthedocs.io/en/latest/>`_ and `release note <https://github.com/zilliztech/GPTCache/blob/main/docs/release_note.html>`_.\n\nQuick Install\n-------------\n\n``pip install gptcache``\n\n🚀 What is GPTCache?\n--------------------\n\nChatGPT and various large language models (LLMs) boast incredible versatility, enabling the development of a wide range of applications. However, as your application grows in popularity and encounters higher traffic levels, the expenses related to LLM API calls can become substantial. Additionally, LLM services might exhibit slow response times, especially when dealing with a significant number of requests.\n\nTo tackle this challenge, we have created GPTCache, a project dedicated to building a semantic cache for storing LLM responses. \n\n😊 Quick Start\n--------------\n\n**Note**\\ :\n\n\n* You can quickly try GPTCache and put it into a production environment without heavy development. However, please note that the repository is still under heavy development.\n* By default, only a limited number of libraries are installed to support the basic cache functionalities. When you need to use additional features, the related libraries will be **automatically installed**.\n* Make sure that the Python version is **3.8.1 or higher**\\ , check: ``python --version``\n* If you encounter issues installing a library due to a low pip version, run: ``python -m pip install --upgrade pip``.\n\ndev install\n^^^^^^^^^^^\n\n.. code-block:: bash\n\n   # clone GPTCache repo\n   git clone -b dev https://github.com/zilliztech/GPTCache.git\n   cd GPTCache\n\n   # install the repo\n   pip install -r requirements.txt\n   python setup.py install\n\nexample usage\n^^^^^^^^^^^^^\n\nThese examples will help you understand how to use exact and similar matching with caching. You can also run the example on `Colab <https://colab.research.google.com/drive/1m1s-iTDfLDk-UwUAQ_L8j1C-gzkcr2Sk?usp=share_link>`_. And more examples you can refer to the `Bootcamp <https://gptcache.readthedocs.io/en/latest/bootcamp/openai/chat.html>`_\n\nBefore running the example, **make sure** the OPENAI_API_KEY environment variable is set by executing ``echo $OPENAI_API_KEY``. \n\nIf it is not already set, it can be set by using ``export OPENAI_API_KEY=YOUR_API_KEY`` on Unix/Linux/MacOS systems or ``set OPENAI_API_KEY=YOUR_API_KEY`` on Windows systems. \n\n..\n\n   It is important to note that this method is only effective temporarily, so if you want a permanent effect, you'll need to modify the environment variable configuration file. For instance, on a Mac, you can modify the file located at ``/etc/profile``.\n\n\n.. collapse:: Click to SHOW examples\n\n    \n    **OpenAI API original usage**\n    \n    .. code-block:: python\n    \n       import os\n       import time\n    \n       import openai\n    \n    \n       def response_text(openai_resp):\n           return openai_resp['choices'][0]['message']['content']\n    \n    \n       question = 'what‘s chatgpt'\n    \n       **OpenAI API original usage**\n       openai.api_key = os.getenv(\"OPENAI_API_KEY\")\n       start_time = time.time()\n       response = openai.ChatCompletion.create(\n         model='gpt-3.5-turbo',\n         messages=[\n           {\n               'role': 'user',\n               'content': question\n           }\n         ],\n       )\n       print(f'Question: {question}')\n       print(\"Time consuming: {:.2f}s\".format(time.time() - start_time))\n       print(f'Answer: {response_text(response)}\\n')\n    \n    **OpenAI API + GPTCache, exact match cache**\n    \n    ..\n    \n       If you ask ChatGPT the exact same two questions, the answer to the second question will be obtained from the cache without requesting ChatGPT again.\n    \n    \n    .. code-block:: python\n    \n       import time\n    \n    \n       def response_text(openai_resp):\n           return openai_resp['choices'][0]['message']['content']\n    \n       print(\"Cache loading.....\")\n    \n       **To use GPTCache, that's all you need**\n       **-------------------------------------------------**\n       from gptcache import cache\n       from gptcache.adapter import openai\n    \n       cache.init()\n       cache.set_openai_key()\n       **-------------------------------------------------**\n    \n       question = \"what's github\"\n       for _ in range(2):\n           start_time = time.time()\n           response = openai.ChatCompletion.create(\n             model='gpt-3.5-turbo',\n             messages=[\n               {\n                   'role': 'user',\n                   'content': question\n               }\n             ],\n           )\n           print(f'Question: {question}')\n           print(\"Time consuming: {:.2f}s\".format(time.time() - start_time))\n           print(f'Answer: {response_text(response)}\\n')\n    \n    **OpenAI API + GPTCache, similar search cache**\n    \n    ..\n    \n       After obtaining an answer from ChatGPT in response to several similar questions, the answers to subsequent questions can be retrieved from the cache without the need to request ChatGPT again.\n    \n    \n    .. code-block:: python\n    \n       import time\n    \n    \n       def response_text(openai_resp):\n           return openai_resp['choices'][0]['message']['content']\n    \n       from gptcache import cache\n       from gptcache.adapter import openai\n       from gptcache.embedding import Onnx\n       from gptcache.manager import CacheBase, VectorBase, get_data_manager\n       from gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\n    \n       print(\"Cache loading.....\")\n    \n       onnx = Onnx()\n       data_manager = get_data_manager(CacheBase(\"sqlite\"), VectorBase(\"faiss\", dimension=onnx.dimension))\n       cache.init(\n           embedding_func=onnx.to_embeddings,\n           data_manager=data_manager,\n           similarity_evaluation=SearchDistanceEvaluation(),\n           )\n       cache.set_openai_key()\n    \n       questions = [\n           \"what's github\",\n           \"can you explain what GitHub is\",\n           \"can you tell me more about GitHub\"\n           \"what is the purpose of GitHub\"\n       ]\n    \n       for question in questions:\n           start_time = time.time()\n           response = openai.ChatCompletion.create(\n               model='gpt-3.5-turbo',\n               messages=[\n                   {\n                       'role': 'user',\n                       'content': question\n                   }\n               ],\n           )\n           print(f'Question: {question}')\n           print(\"Time consuming: {:.2f}s\".format(time.time() - start_time))\n           print(f'Answer: {response_text(response)}\\n')\n    \n    **OpenAI API + GPTCache, use temperature**\n    \n    ..\n    \n       You can always pass a parameter of temperature while requesting the API service or model.\n    \n       The range of ``temperature`` is [0, 2], default value is 0.0.\n    \n       A higher temperature means a higher possibility of skipping cache search and requesting large model directly.\n       When temperature is 2, it will skip cache and send request to large model directly for sure. When temperature is 0, it will search cache before requesting large model service.\n    \n       The default ``post_process_messages_func`` is ``temperature_softmax``. In this case, refer to `API reference <https://gptcache.readthedocs.io/en/latest/references/processor.html#module-gptcache.processor.post>`_ to learn about how ``temperature`` affects output.\n    \n    \n    .. code-block:: python\n    \n       import time\n    \n       from gptcache import cache, Config\n       from gptcache.manager import manager_factory\n       from gptcache.embedding import Onnx\n       from gptcache.processor.post import temperature_softmax\n       from gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\n       from gptcache.adapter import openai\n    \n       cache.set_openai_key()\n    \n       onnx = Onnx()\n       data_manager = manager_factory(\"sqlite,faiss\", vector_params={\"dimension\": onnx.dimension})\n    \n       cache.init(\n           embedding_func=onnx.to_embeddings,\n           data_manager=data_manager,\n           similarity_evaluation=SearchDistanceEvaluation(),\n           post_process_messages_func=temperature_softmax\n           )\n       **cache.config = Config(similarity_threshold=0.2)**\n    \n       question = \"what's github\"\n    \n       for _ in range(3):\n           start = time.time()\n           response = openai.ChatCompletion.create(\n               model=\"gpt-3.5-turbo\",\n       **Change temperature here**\n               messages=[{\n                   \"role\": \"user\",\n                   \"content\": question\n               }],\n           )\n           print(\"Time elapsed:\", round(time.time() - start, 3))\n           print(\"Answer:\", response[\"choices\"][0][\"message\"][\"content\"])\n    \nTo use GPTCache exclusively, only the following lines of code are required, and there is no need to modify any existing code.\n\n.. code-block:: python\n\n   from gptcache import cache\n   from gptcache.adapter import openai\n\n   cache.init()\n   cache.set_openai_key()\n\nMore Docs：\n\n\n* `Usage, how to use GPTCache better <usage.html>`_\n* `Features, all features currently supported by the cache <feature.html>`_\n* `Examples, learn better custom caching <examples/README.html>`_\n\n🎓 Bootcamp\n-----------\n\n\n* GPTCache with **LangChain**\n\n  * `QA Generation <https://gptcache.readthedocs.io/en/latest/bootcamp/langchain/qa_generation.html>`_\n  * `Question Answering <https://gptcache.readthedocs.io/en/latest/bootcamp/langchain/question_answering.html>`_\n  * `SQL Chain <https://gptcache.readthedocs.io/en/latest/bootcamp/langchain/sqlite.html>`_\n  * `BabyAGI User Guide <https://gptcache.readthedocs.io/en/latest/bootcamp/langchain/baby_agi.html>`_\n\n* GPTCache with **Llama_index**\n\n  * `WebPage QA <https://gptcache.readthedocs.io/en/latest/bootcamp/llama_index/webpage_qa.html>`_\n\n* GPTCache with **OpenAI**\n\n  * `Chat completion <https://gptcache.readthedocs.io/en/latest/bootcamp/openai/chat.html>`_\n  * `Language Translation <https://gptcache.readthedocs.io/en/latest/bootcamp/openai/language_translate.html>`_\n  * `SQL Translate <https://gptcache.readthedocs.io/en/latest/bootcamp/openai/sql_translate.html>`_\n  * `Twitter Classifier <https://gptcache.readthedocs.io/en/latest/bootcamp/openai/tweet_classifier.html>`_\n  * `Multimodal: Image Generation <https://gptcache.readthedocs.io/en/latest/bootcamp/openai/image_generation.html>`_\n  * `Multimodal: Speech to Text <https://gptcache.readthedocs.io/en/latest/bootcamp/openai/speech_to_text.html>`_\n\n* GPTCache with **Replicate**\n\n  * `Visual Question Answering <https://gptcache.readthedocs.io/en/latest/bootcamp/replicate/visual_question_answering.html>`_\n\n* GPTCache with **Temperature Param**\n\n  * `OpenAI Chat <https://gptcache.readthedocs.io/en/latest/bootcamp/temperature/chat.html>`_\n  * `OpenAI Image Creation <https://gptcache.readthedocs.io/en/latest/bootcamp/temperature/create_image.html>`_\n\n😎 What can this help with?\n---------------------------\n\nGPTCache offers the following primary benefits:\n\n\n* **Decreased expenses**\\ : Most LLM services charge fees based on a combination of number of requests and `token count <https://openai.com/pricing>`_. GPTCache effectively minimizes your expenses by caching query results, which in turn reduces the number of requests and tokens sent to the LLM service. As a result, you can enjoy a more cost-efficient experience when using the service.\n* **Enhanced performance**\\ : LLMs employ generative AI algorithms to generate responses in real-time, a process that can sometimes be time-consuming. However, when a similar query is cached, the response time significantly improves, as the result is fetched directly from the cache, eliminating the need to interact with the LLM service. In most situations, GPTCache can also provide superior query throughput compared to standard LLM services.\n* **Adaptable development and testing environment**\\ : As a developer working on LLM applications, you're aware that connecting to LLM APIs is generally necessary, and comprehensive testing of your application is crucial before moving it to a production environment. GPTCache provides an interface that mirrors LLM APIs and accommodates storage of both LLM-generated and mocked data. This feature enables you to effortlessly develop and test your application, eliminating the need to connect to the LLM service.\n* **Improved scalability and availability**\\ : LLM services frequently enforce `rate limits <https://platform.openai.com/docs/guides/rate-limits>`_\\ , which are constraints that APIs place on the number of times a user or client can access the server within a given timeframe. Hitting a rate limit means that additional requests will be blocked until a certain period has elapsed, leading to a service outage. With GPTCache, you can easily scale to accommodate an increasing volume of of queries, ensuring consistent performance as your application's user base expands.\n\n🤔 How does it work?\n--------------------\n\nOnline services often exhibit data locality, with users frequently accessing popular or trending content. Cache systems take advantage of this behavior by storing commonly accessed data, which in turn reduces data retrieval time, improves response times, and eases the burden on backend servers. Traditional cache systems typically utilize an exact match between a new query and a cached query to determine if the requested content is available in the cache before fetching the data.\n\nHowever, using an exact match approach for LLM caches is less effective due to the complexity and variability of LLM queries, resulting in a low cache hit rate. To address this issue, GPTCache adopt alternative strategies like semantic caching. Semantic caching identifies and stores similar or related queries, thereby increasing cache hit probability and enhancing overall caching efficiency. \n\nGPTCache employs embedding algorithms to convert queries into embeddings and uses a vector store for similarity search on these embeddings. This process allows GPTCache to identify and retrieve similar or related queries from the cache storage, as illustrated in the `Modules section <https://github.com/zilliztech/GPTCache#-modules>`_. \n\nFeaturing a modular design, GPTCache makes it easy for users to customize their own semantic cache. The system offers various implementations for each module, and users can even develop their own implementations to suit their specific needs.\n\nIn a semantic cache, you may encounter false positives during cache hits and false negatives during cache misses. GPTCache offers three metrics to gauge its performance, which are helpful for developers to optimize their caching systems:\n\n\n* **Hit Ratio**\\ : This metric quantifies the cache's ability to fulfill content requests successfully, compared to the total number of requests it receives. A higher hit ratio indicates a more effective cache.\n* **Latency**\\ : This metric measures the time it takes for a query to be processed and the corresponding data to be retrieved from the cache. Lower latency signifies a more efficient and responsive caching system.\n* **Recall**\\ : This metric represents the proportion of queries served by the cache out of the total number of queries that should have been served by the cache. Higher recall percentages indicate that the cache is effectively serving the appropriate content.\n\nA `sample benchmark <https://github.com/zilliztech/gpt-cache/blob/main/examples/benchmark/benchmark_sqlite_faiss_onnx.py>`_ is included for users to start with assessing the performance of their semantic cache.\n\n🤗 Modules\n----------\n\n\n.. image:: GPTCacheStructure.png\n   :target: GPTCacheStructure.png\n   :alt: GPTCache Struct\n\n\n\n* **LLM Adapter**\\ : \n  The LLM Adapter is designed to integrate different LLM models by unifying their APIs and request protocols. GPTCache offers a standardized interface for this purpose, with current support for ChatGPT integration.\n\n  * [x] Support OpenAI ChatGPT API.\n  * [x] Support `langchain <https://github.com/hwchase17/langchain>`_.\n  * [x] Support `minigpt4 <https://github.com/Vision-CAIR/MiniGPT-4.git>`_.\n  * [x] Support `Llamacpp <https://github.com/ggerganov/llama.cpp.git>`_.\n  * [x] Support `dolly <https://github.com/databrickslabs/dolly.git>`_.\n  * [ ] Support other LLMs, such as Hugging Face Hub, Bard, Anthropic.\n\n* **Multimodal Adapter (experimental)**\\ : \n  The Multimodal Adapter is designed to integrate different large multimodal models by unifying their APIs and request protocols. GPTCache offers a standardized interface for this purpose, with current support for integrations of image generation, audio transcription.\n\n  * [x] Support OpenAI Image Create API.\n  * [x] Support OpenAI Audio Transcribe API.\n  * [x] Support Replicate BLIP API.\n  * [x] Support Stability Inference API.\n  * [x] Support Hugging Face Stable Diffusion Pipeline (local inference).\n  * [ ] Support other multimodal services or self-hosted large multimodal models.\n\n* **Embedding Generator**\\ : \n  This module is created to extract embeddings from requests for similarity search. GPTCache offers a generic interface that supports multiple embedding APIs, and presents a range of solutions to choose from. \n\n  * [x] Disable embedding. This will turn GPTCache into a keyword-matching cache.\n  * [x] Support OpenAI embedding API.\n  * [x] Support `ONNX <https://onnx.ai/>`_ with the GPTCache/paraphrase-albert-onnx model.\n  * [x] Support `Hugging Face <https://huggingface.co/>`_ embedding with transformers, ViTModel, Data2VecAudio.\n  * [x] Support `Cohere <https://docs.cohere.ai/reference/embed>`_ embedding API.\n  * [x] Support `fastText <https://fasttext.cc>`_ embedding.\n  * [x] Support `SentenceTransformers <https://www.sbert.net>`_ embedding.\n  * [x] Support `Timm <https://timm.fast.ai/>`_ models for image embedding.\n  * [ ] Support other embedding APIs.\n\n* **Cache Storage**\\ :\n  **Cache Storage** is where the response from LLMs, such as ChatGPT, is stored. Cached responses are retrieved to assist in evaluating similarity and are returned to the requester if there is a good semantic match. At present, GPTCache supports SQLite and offers a universally accessible interface for extension of this module.\n\n  * [x] Support `SQLite <https://sqlite.org/docs.html>`_.\n  * [x] Support `DuckDB <https://duckdb.org/>`_.\n  * [x] Support `PostgreSQL <https://www.postgresql.org/>`_.\n  * [x] Support `MySQL <https://www.mysql.com/>`_.\n  * [x] Support `MariaDB <https://mariadb.org/>`_.\n  * [x] Support `SQL Server <https://www.microsoft.com/en-us/sql-server/>`_.\n  * [x] Support `Oracle <https://www.oracle.com/>`_.\n  * [ ] Support `MongoDB <https://www.mongodb.com/>`_.\n  * [ ] Support `Redis <https://redis.io/>`_.\n  * [ ] Support `Minio <https://min.io/>`_.\n  * [ ] Support `HBase <https://hbase.apache.org/>`_.\n  * [ ] Support `ElasticSearch <https://www.elastic.co/>`_.\n  * [ ] Support other storages.\n\n* **Vector Store**\\ :\n  The **Vector Store** module helps find the K most similar requests from the input request's extracted embedding. The results can help assess similarity. GPTCache provides a user-friendly interface that supports various vector stores, including Milvus, Zilliz Cloud, and FAISS. More options will be available in the future.\n\n  * [x] Support `Milvus <https://milvus.io/>`_\\ , an open-source vector database for production-ready AI/LLM applicaionts. \n  * [x] Support `Zilliz Cloud <https://cloud.zilliz.com/>`_\\ , a fully-managed cloud vector database based on Milvus.\n  * [x] Support `Milvus Lite <https://github.com/milvus-io/milvus-lite>`_\\ , a lightweight version of Milvus that can be embedded into your Python application.\n  * [x] Support `FAISS <https://faiss.ai/>`_\\ , a library for efficient similarity search and clustering of dense vectors.\n  * [x] Support `Hnswlib <https://github.com/nmslib/hnswlib>`_\\ , header-only C++/python library for fast approximate nearest neighbors.\n  * [x] Support `PGVector <https://github.com/pgvector/pgvector>`_\\ , open-source vector similarity search for Postgres.\n  * [x] Support `Chroma <https://github.com/chroma-core/chroma>`_\\ , the AI-native open-source embedding database.\n  * [x] Support `DocArray <https://github.com/docarray/docarray>`_\\ , DocArray is a library for representing, sending and storing multi-modal data, perfect for Machine Learning applications.\n  * [ ] Support qdrant\n  * [ ] Support weaviate\n  * [ ] Support other vector databases.\n\n* **Cache Manager**\\ :\n  The **Cache Manager** is responsible for controlling the operation of both the **Cache Storage** and **Vector Store**.\n\n  * **Eviction Policy**\\ :\n    Currently, GPTCache makes decisions about evictions based solely on the number of lines. This approach can result in inaccurate resource evaluation and may cause out-of-memory (OOM) errors. We are actively investigating and developing a more sophisticated strategy.\n\n    * [x] Support LRU eviction policy.\n    * [x] Support FIFO eviction policy.\n    * [ ] Support more complicated eviction policies.\n\n* **Similarity Evaluator**\\ : \n  This module collects data from both the **Cache Storage** and **Vector Store**\\ , and uses various strategies to determine the similarity between the input request and the requests from the **Vector Store**. Based on this similarity, it determines whether a request matches the cache. GPTCache provides a standardized interface for integrating various strategies, along with a collection of implementations to use. The following similarity definitions are currently supported or will be supported in the future:\n\n  * [x] The distance we obtain from the **Vector Store**.\n  * [x] A model-based similarity determined using the GPTCache/albert-duplicate-onnx model from `ONNX <https://onnx.ai/>`_.\n  * [x] Exact matches between the input request and the requests obtained from the **Vector Store**.\n  * [x] Distance represented by applying linalg.norm from numpy to the embeddings.\n  * [ ] BM25 and other similarity measurements.\n  * [ ] Support other model serving framework such as PyTorch.\n\n  **Note**\\ :Not all combinations of different modules may be compatible with each other. For instance, if we disable the **Embedding Extractor**\\ , the **Vector Store** may not function as intended. We are currently working on implementing a combination sanity check for **GPTCache**.\n\n😇 Roadmap\n----------\n\nComing soon! `Stay tuned! <https://twitter.com/zilliz_universe>`_\n\n😍 Contributing\n---------------\n\nWe are extremely open to contributions, be it through new features, enhanced infrastructure, or improved documentation.\n\nFor comprehensive instructions on how to contribute, please refer to our `contribution guide <contributing.html>`_.\n\n\n.. toctree::\n   :maxdepth: 1\n   :caption: Getting Started\n   :name: getting-started\n   :hidden:\n\n   usage.md\n   feature.md\n   release_note.md\n\n.. toctree::\n   :maxdepth: 1\n   :caption: Bootcamp\n   :name: bootcamp\n   :hidden:\n\n   bootcamp/langchain/index\n   bootcamp/llama_index/index\n   bootcamp/openai/index\n   bootcamp/replicate/index\n   bootcamp/temperature/index\n\n.. toctree::\n   :maxdepth: 1\n   :caption: References\n   :name: references\n   :hidden:\n\n   references/index\n\n.. toctree::\n   :maxdepth: 1\n   :caption: Contributing\n   :name: contributing\n   :hidden:\n\n   contributing.md"
  },
  {
    "path": "docs/make.bat",
    "content": "@ECHO OFF\r\n\r\npushd %~dp0\r\n\r\nREM Command file for Sphinx documentation\r\n\r\nif \"%SPHINXBUILD%\" == \"\" (\r\n\tset SPHINXBUILD=sphinx-build\r\n)\r\nset SOURCEDIR=.\r\nset BUILDDIR=_build\r\n\r\n%SPHINXBUILD% >NUL 2>NUL\r\nif errorlevel 9009 (\r\n\techo.\r\n\techo.The 'sphinx-build' command was not found. Make sure you have Sphinx\r\n\techo.installed, then set the SPHINXBUILD environment variable to point\r\n\techo.to the full path of the 'sphinx-build' executable. Alternatively you\r\n\techo.may add the Sphinx directory to PATH.\r\n\techo.\r\n\techo.If you don't have Sphinx installed, grab it from\r\n\techo.https://www.sphinx-doc.org/\r\n\texit /b 1\r\n)\r\n\r\nif \"%1\" == \"\" goto help\r\n\r\n%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%\r\ngoto end\r\n\r\n:help\r\n%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%\r\n\r\n:end\r\npopd\r\n"
  },
  {
    "path": "docs/references/index.rst",
    "content": "🥸 API References\n=================\n\n.. toctree::\n   :maxdepth: 1\n   :caption: Contents:\n\n\n   gptcache\n   processor\n   embedding\n   utils\n   adapter\n   manager\n   similarity_evaluation"
  },
  {
    "path": "docs/release_note.md",
    "content": "# Release Note\n\nTo read the following content, you need to understand the basic use of GPTCache, references:\n\n- [Readme doc](https://github.com/zilliztech/GPTCache)\n- [Usage doc](https://github.com/zilliztech/GPTCache/blob/main/docs/usage.md)\n\n## v0.1.40 (2023.8.23)\n1. Support the redis eviction\n\n## v0.1.38 (2023.7.31)\n\nSome improvements:\n1. Handle openai change of api base for just embeddings\n2. Support for custom class schema in weaviate vector store\n3. Fix the error: 'SSDataManager' object has no attribute 'eviction_manager'\n\n## v0.1.37 (2023.7.23)\n\n1. Support the weaviate vector databse\n\n## v0.1.36 (2023.7.14)\n\n1. Fix the connection error of the remote redis cache store\n2. Add the openai proxy for the chat complete api\n\n## v0.1.35 (2023.7.7)\n\n1. Support the redis as the cache store, usage example: [redis+onnx](https://github.com/zilliztech/GPTCache/blob/main/tests/integration_tests/test_redis_onnx.py)\n2. Add report table for easy analysis of cache data\n\n## v0.1.34 (2023.6.30)\n\n1. Add support for Qdrant Vector Store\n2. Add support for Mongodb Cache Store\n3. Fix bug about the redis vector and onnx similarity evaluation\n\n## v0.1.33 (2023.6.27)\n\n1. Fix the eviction error\n2. Add a flag for search only operation\n3. Support to change the redis namespace\n4. Add `How to better configure your cache` document\n\n## v0.1.32 (2023.6.15)\n\n1. Support the redis as vector store\n\n```python\nfrom gptcache.manager import VectorBase\n\nvector_base = VectorBase(\"redis\", dimension=10)\n```\n\n2. Fix the context len config bug\n\n## v0.1.31 (2023.6.14)\n\n1. To improve the precision of cache hits, two similarity evaluation methods were added\n\na. SBERT CrossEncoder Evaluation\n\n```python\nfrom gptcache.similarity_evaluation import SbertCrossencoderEvaluation\nevaluation = SbertCrossencoderEvaluation()\nscore = evaluation.evaluation(\n    {\n        'question': 'What is the color of sky?'\n    },\n    {\n        'question': 'hello'\n    }\n)\n```\n\nb. Cohere rerank api (**Free accounts can make up to 100 calls per minute.**)\n\n```python\nfrom gptcache.similarity_evaluation import CohereRerankEvaluation\n\nevaluation = CohereRerankEvaluation()\nscore = evaluation.evaluation(\n    {\n        'question': 'What is the color of sky?'\n    },\n    {\n        'answer': 'the color of sky is blue'\n    }\n)\n```\n\nc. Multi-round dialog similarity weight matching\n\n```python\nfrom gptcache.similarity_evaluation import SequenceMatchEvaluation\n\nweights = [0.5, 0.3, 0.2]\nevaluation = SequenceMatchEvaluation(weights, 'onnx')\n\nquery = {\n    'question': 'USER: \"foo2\" USER: \"foo4\"',\n}\n\ncache = {\n    'question': 'USER: \"foo6\" USER: \"foo8\"',\n}\n\nscore = evaluation.evaluation(query, cache)\n```\n\nd. Time Evaluation. For the cached answer, first check the time dimension, such as only using the generated cache for the past day\n\n```python\nfrom gptcache.similarity_evaluation import TimeEvaluation\n\nevaluation = TimeEvaluation(evaluation=\"distance\", time_range=86400)\n\nsimilarity = eval.evaluation(\n    {},\n    {\n        \"search_result\": (3.5, None),\n        \"cache_data\": CacheData(\"a\", \"b\", create_on=datetime.datetime.now()),\n    },\n)\n```\n\n2. Fix some bugs\n\na. OpenAI exceptions type #416\nb. LangChainChat does work with _agenerate function #400\n\n## v0.1.30 (2023.6.7)\n\n1. Support to use the cohere rerank api to evaluate the similarity\n\n```python\nfrom gptcache.similarity_evaluation import CohereRerankEvaluation\n\nevaluation = CohereRerankEvaluation()\nscore = evaluation.evaluation(\n    {\n        'question': 'What is the color of sky?'\n    },\n    {\n        'answer': 'the color of sky is blue'\n    }\n)\n```\n\n2. Improve the gptcache server api, refer to the \"/docs\" path after starting the server\n3. Fix the bug about the langchain track token usage\n\n## v0.1.29 (2023.6.2)\n\n1. Improve the GPTCache server by using FASTAPI\n\n**NOTE**: The api struct has been optimized, details: [Use GPTCache server](https://github.com/zilliztech/GPTCache/blob/dev/docs/usage.md#use-gptcache-server)\n\n2. Add the usearch vector store\n\n```python\nfrom gptcache.manager import manager_factory\n\ndata_manager = manager_factory(\"sqlite,usearch\", vector_params={\"dimension\": 10})\n```\n\n## v0.1.28 (2023.5.29)\nTo handle a large prompt, there are currently two options available:\n\n1. Increase the column size of CacheStorage.\n\n```python\nfrom gptcache.manager import manager_factory\n\ndata_manager = manager_factory(\n    \"sqlite,faiss\", scalar_params={\"table_len_config\": {\"question_question\": 5000}}\n)\n\n```\nMore Details:\n- 'question_question': the question column size in the question table, default to 3000.\n- 'answer_answer': the answer column size in the answer table, default to 3000.\n- 'session_id': the session id column size in the session table, default to 1000.\n- 'dep_name': the name column size in the dep table, default to 1000.\n- 'dep_data': the data column size in the dep table, default to 3000.\n\n2. When using a template, use the dynamic value in the template as the cache key instead of using the entire template as the key.\n\n- **str template**\n```python\nfrom gptcache import Config\nfrom gptcache.processor.pre import last_content_without_template\n\ntemplate_obj = \"tell me a joke about {subject}\"\nprompt = template_obj.format(subject=\"animal\")\nvalue = last_content_without_template(\n    data={\"messages\": [{\"content\": prompt}]}, cache_config=Config(template=template_obj)\n)\nprint(value)\n# ['animal']\n```\n\n- **langchain prompt template**\n\n```python\nfrom langchain import PromptTemplate\n\nfrom gptcache import Config\nfrom gptcache.processor.pre import last_content_without_template\n\ntemplate_obj = PromptTemplate.from_template(\"tell me a joke about {subject}\")\nprompt = template_obj.format(subject=\"animal\")\n\nvalue = last_content_without_template(\n    data={\"messages\": [{\"content\": prompt}]},\n    cache_config=Config(template=template_obj.template),\n)\nprint(value)\n# ['animal']\n```\n\n3. Wrap the openai object, reference: [BaseCacheLLM](https://gptcache.readthedocs.io/en/dev/references/adapter.html#module-gptcache.adapter.base)\n\n```python\nimport random\n\nfrom gptcache import Cache\nfrom gptcache.adapter import openai\nfrom gptcache.adapter.api import init_similar_cache\nfrom gptcache.processor.pre import last_content\n\ncache_obj = Cache()\ninit_similar_cache(\n    data_dir=str(random.random()), pre_func=last_content, cache_obj=cache_obj\n)\n\n\ndef proxy_openai_chat_complete(*args, **kwargs):\n    nonlocal is_proxy\n    is_proxy = True\n    import openai as real_openai\n\n    return real_openai.ChatCompletion.create(*args, **kwargs)\n\n\nopenai.ChatCompletion.llm = proxy_openai_chat_complete\nopenai.ChatCompletion.cache_args = {\"cache_obj\": cache_obj}\n\nopenai.ChatCompletion.create(\n    model=\"gpt-3.5-turbo\",\n    messages=[\n        {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n        {\"role\": \"user\", \"content\": \"What's GitHub\"},\n    ],\n)\n```\n\n## v0.1.27 (2023.5.25)\n1. Support the uform embedding, which can be used the **bilingual** (english + chinese) language\n\n```python\nfrom gptcache.embedding import UForm\n\ntest_sentence = 'Hello, world.'\nencoder = UForm(model='unum-cloud/uform-vl-english')\nembed = encoder.to_embeddings(test_sentence)\n\ntest_sentence = '什么是Github'\nencoder = UForm(model='unum-cloud/uform-vl-multilingual')\nembed = encoder.to_embeddings(test_sentence)\n```\n\n## v0.1.26 (2023.5.23)\n\n1. Support the paddlenlp embedding\n\n```python\nfrom gptcache.embedding import PaddleNLP\n\ntest_sentence = 'Hello, world.'\nencoder = PaddleNLP(model='ernie-3.0-medium-zh')\nembed = encoder.to_embeddings(test_sentence)\n```\n\n2. Support [the openai Moderation api](https://platform.openai.com/docs/api-reference/moderations)\n\n```python\nfrom gptcache.adapter import openai\nfrom gptcache.adapter.api import init_similar_cache\nfrom gptcache.processor.pre import get_openai_moderation_input\n\ninit_similar_cache(pre_func=get_openai_moderation_input)\nopenai.Moderation.create(\n    input=\"hello, world\",\n)\n```\n\n3. Add the llama_index bootcamp, through which you can learn how GPTCache works with llama index\n\ndetails: [WebPage QA](https://gptcache.readthedocs.io/en/latest/bootcamp/llama_index/webpage_qa.html)\n\n## v0.1.25 (2023.5.18)\n\n1. Support the DocArray vector database\n\n```python\nfrom gptcache.manager import manager_factory\n\ndata_manager = manager_factory(\"sqlite,docarray\")\n```\n\n2. Add rwkv model for embedding\n\n```python\nfrom gptcache.embedding import Rwkv\n\ntest_sentence = 'Hello, world.'\nencoder = Rwkv(model='sgugger/rwkv-430M-pile')\nembed = encoder.to_embeddings(test_sentence)\n```\n\n## v0.1.24 (2023.5.15)\n\n1. Support the langchain embedding\n\n```python\nfrom gptcache.embedding import LangChain\nfrom langchain.embeddings.openai import OpenAIEmbeddings\n\ntest_sentence = 'Hello, world.'\nembeddings = OpenAIEmbeddings(model=\"your-embeddings-deployment-name\")\nencoder = LangChain(embeddings=embeddings)\nembed = encoder.to_embeddings(test_sentence)\n```\n\n2. Add gptcache client\n\n```python\nfrom gptcache import Client\n\nclient = Client()\nclient.put(\"Hi\", \"Hi back\")\nans = client.get(\"Hi\")\n```\n\n3. Support pgvector as vector store\n\n```python\nfrom gptcache.manager import manager_factory\n\ndata_manager = manager_factory(\"sqlite,pgvector\", vector_params={\"dimension\": 10})\n```\n\n4. Add the GPTCache server doc\n\nreference: https://github.com/zilliztech/GPTCache/blob/main/docs/usage.md#Build-GPTCache-server\n\n## v0.1.23 (2023.5.11)\n\n1. Support the session for the `LangChainLLMs`\n\n```python\nfrom langchain import OpenAI\nfrom gptcache.adapter.langchain_models import LangChainLLMs\nfrom gptcache.session import Session\n\nsession = Session(name=\"sqlite-example\")\nllm = LangChainLLMs(llm=OpenAI(temperature=0), session=session)\n```\n\n2. Optimize the summarization context process\n\n```python\nfrom gptcache import cache\nfrom gptcache.processor.context.summarization_context import SummarizationContextProcess\n\ncontext_process = SummarizationContextProcess()\ncache.init(\n    pre_embedding_func=context_process.pre_process,\n)\n```\n\n3. Add BabyAGI bootcamp\n\ndetails: https://github.com/zilliztech/GPTCache/blob/main/docs/bootcamp/langchain/baby_agi.ipynb\n\n## v0.1.22 (2023.5.7)\n\n1. Process the dialog context through the context processing interface, which currently supports two ways: summarize and selective context\n\n```python\nimport transformers\nfrom gptcache.processor.context.summarization_context import SummarizationContextProcess\nfrom gptcache.processor.context.selective_context import SelectiveContextProcess\nfrom gptcache import cache\n\nsummarizer = transformers.pipeline(\"summarization\", model=\"facebook/bart-large-cnn\")\ncontext_process = SummarizationContextProcess(summarizer, None, 512)\ncache.init(\n    pre_embedding_func=context_process.pre_process,\n)\n\ncontext_processor = SelectiveContextProcess()\ncache.init(\n    pre_embedding_func=context_process.pre_process,\n)\n```\n\n## v0.1.21 (2023.4.29)\n\n1. Support the temperature param\n\n```python\nfrom gptcache.adapter import openai\n\nopenai.ChatCompletion.create(\n    model=\"gpt-3.5-turbo\",\n    temperature = 1.0,  # Change temperature here\n    messages=[{\n        \"role\": \"user\",\n        \"content\": question\n    }],\n)\n```\n\n2. Add the session layer\n\n```python\nfrom gptcache.adapter import openai\nfrom gptcache.session import Session\n\nsession = Session(name=\"my-session\")\nquestion = \"what do you think about chatgpt\"\nopenai.ChatCompletion.create(\n    model=\"gpt-3.5-turbo\",\n    messages=[\n        {\"role\": \"user\", \"content\": question}\n    ],\n    session=session\n)\n```\n\ndetails: https://github.com/zilliztech/GPTCache/tree/main/examples#How-to-run-with-session\n\n3. Support config cache with yaml for server\n\n```python\nfrom gptcache.adapter.api import init_similar_cache_from_config\n\ninit_similar_cache_from_config(config_dir=\"cache_config_template.yml\")\n```\n\nconfig file template: https://github.com/zilliztech/GPTCache/blob/main/cache_config_template.yml\n\n4. Adapt the dolly model\n\n```python\nfrom gptcache.adapter.dolly import Dolly\n\nllm = Dolly.from_model(model=\"databricks/dolly-v2-3b\")\nllm(question)\n```\n\n## v0.1.20 (2023.4.26)\n\n1. support the `temperature` param, like openai\n\nA non-negative number of sampling temperature, defaults to 0.\nA higher temperature makes the output more random.\nA lower temperature means a more deterministic and confident output.\n\n2. Add llama adapter\n\n```python\nfrom gptcache.adapter.llama_cpp import Llama\n\nllm = Llama('./models/7B/ggml-model.bin')\nanswer = llm(prompt=question)\n```\n\n## v0.1.19 (2023.4.24)\n\n1. Add stability sdk adapter (text -> image)\n\n```python\nimport os\nimport time\n\nfrom gptcache import cache\nfrom gptcache.processor.pre import get_prompt\nfrom gptcache.adapter.stability_sdk import StabilityInference, generation\nfrom gptcache.embedding import Onnx\nfrom gptcache.manager.factory import manager_factory\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\n\n# init gptcache\nonnx = Onnx()\ndata_manager = manager_factory('sqlite,faiss,local', \n                               data_dir='./', \n                               vector_params={'dimension': onnx.dimension},\n                               object_params={'path': './images'}\n                               )\ncache.init(\n    pre_embedding_func=get_prompt,\n    embedding_func=onnx.to_embeddings,\n    data_manager=data_manager,\n    similarity_evaluation=SearchDistanceEvaluation()\n    )\n\napi_key = os.getenv('STABILITY_KEY', 'key-goes-here')\n\nstability_api = StabilityInference(\n    key=os.environ['STABILITY_KEY'], # API Key reference.\n    verbose=False, # Print debug messages.\n    engine='stable-diffusion-xl-beta-v2-2-2', # Set the engine to use for generation.\n)\n\nstart = time.time()\nanswers = stability_api.generate(\n    prompt='a cat sitting besides a dog',\n    width=256,\n    height=256\n    )\n```\n\nstability reference: https://platform.stability.ai/docs/features/text-to-image\n\n2. Add minigpt4 adapter\n\nNotice: It cannot be used directly, it needs to cooperate with mini-GPT4 source code, refer to: https://github.com/Vision-CAIR/MiniGPT-4/pull/136\n\n## v0.1.18 (2023.4.23)\n\n1. Add vqa bootcamp\n\nreference: https://github.com/zilliztech/GPTCache/tree/main/docs/bootcamp/replicate\n\n2. Add two streamlit multimodal demos\n\nreference: https://github.com/zilliztech/GPTCache/tree/main/docs/bootcamp/streamlit\n\n3. Add vit image embedding func\n\n```python\nfrom gptcache.embedding import ViT\n\nencoder = ViT(model=\"google/vit-base-patch16-384\")\nembed = encoder.to_embeddings(image)\n```\n\n4. Add `init_similar_cache` func for the GPTCache api module\n\n```python\nfrom gptcache.adapter.api import init_similar_cache\n\ninit_similar_cache(\"cache_data\")\n```\n\n5. The simple GPTCache server provides similar cache\n\n- clone the GPTCache repo, `git clone https://github.com/zilliztech/GPTCache.git`\n- install the gptcache model, `pip install gptcache`\n- run the GPTCache server, `cd gptcache_server && python server.py`\n\n## v0.1.17 (2023.4.20)\n\n1. Add image embedding timm\n\n```python\nimport requests\nfrom PIL import Image\nfrom gptcache.embedding import Timm\n\nurl = 'https://raw.githubusercontent.com/zilliztech/GPTCache/main/docs/GPTCache.png'\nimage = Image.open(requests.get(url, stream=True).raw)  # Read image url as PIL.Image      \nencoder = Timm(model='resnet18')\nimage_tensor = encoder.preprocess(image)\nembed = encoder.to_embeddings(image_tensor)\n```\n\n2. Add Replicate adapter, vqa (visual question answering) (**experimental**)\n\n```python\nfrom gptcache.adapter import replicate\n\nquestion = \"what is in the image?\"\n\nreplicate.run(\n    \"andreasjansson/blip-2:xxx\",\n    input={\n        \"image\": open(image_path, 'rb'),\n        \"question\": question\n    }\n)\n```\n\n3. Support to flush data for preventing accidental loss of memory data\n\n```python\nfrom gptcache import cache\n\ncache.flush()\n```\n\n## v0.1.16 (2023.4.18)\n\n1. Add StableDiffusion adapter (**experimental**)\n\n```python\nimport torch\n\nfrom gptcache.adapter.diffusers import StableDiffusionPipeline\nfrom gptcache.processor.pre import get_prompt\nfrom gptcache import cache\n\ncache.init(\n    pre_embedding_func=get_prompt,\n)\nmodel_id = \"stabilityai/stable-diffusion-2-1\"\npipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)\n\nprompt = \"a photo of an astronaut riding a horse on mars\"\npipe(prompt=prompt).images[0]\n```\n\n2. Add speech to text bootcamp, [link](https://github.com/zilliztech/GPTCache/tree/main/docs/bootcamp/openai/speech_to_text.ipynb)\n\n3. More convenient management of cache files\n\n```python\nfrom gptcache.manager.factory import manager_factory\n\ndata_manager = manager_factory('sqlite,faiss', data_dir=\"test_cache\", vector_params={\"dimension\": 5})\n```\n\n4. Add a simple GPTCache server (**experimental**)\n\nAfter starting this server, you can:\n\n- put the data to cache, like: `curl -X PUT -d \"receive a hello message\" \"http://localhost:8000?prompt=hello\"`\n- get the data from cache, like: `curl -X GET  \"http://localhost:8000?prompt=hello\"`\n\nCurrently the service is just a map cache, more functions are still under development.\n\n## v0.1.15 (2023.4.17)\n\n1. Add GPTCache api, makes it easier to access other different llm models and applications\n\n```python\nfrom gptcache.adapter.api import put, get\nfrom gptcache.processor.pre import get_prompt\nfrom gptcache import cache\n\ncache.init(pre_embedding_func=get_prompt)\nput(\"hello\", \"foo\")\nprint(get(\"hello\"))\n```\n\n2. Add image generation bootcamp, link: https://github.com/zilliztech/GPTCache/blob/main/docs/bootcamp/openai/image_generation.ipynb\n\n## v0.1.14 (2023.4.17)\n\n1. Fix to fail to save the data to cache\n\n## ~~v0.1.13 (2023.4.16)~~ Don't Use it, should use the `v0.1.14`\n\n1. Add openai audio adapter (**experimental**)\n\n```python\ncache.init(pre_embedding_func=get_file_bytes)\n\nopenai.Audio.transcribe(\n    model=\"whisper-1\",\n    file=audio_file\n)\n```\n\n2. Improve data eviction implementation\n\nIn the future, users will have greater flexibility to customize eviction methods, such as by using Redis or Memcached. Currently, the default caching library is cachetools, which provides an in-memory cache. Other libraries are not currently supported, but may be added in the future.\n\n## v0.1.12 (2023.4.15)\n\n1. The llm request can customize topk search parameters\n\n```python\nopenai.ChatCompletion.create(\n    model=\"gpt-3.5-turbo\",\n    messages=[\n        {\"role\": \"user\", \"content\": question},\n    ],\n    top_k=10,\n)\n```\n\n## v0.1.11 (2023.4.14)\n\n1. Add openai complete adapter\n\n```python\ncache.init(pre_embedding_func=get_prompt)\n\nresponse = openai.Completion.create(\n                model=\"text-davinci-003\",\n                prompt=question\n            )\n```\n\n2. Add langchain and openai [bootcamp](https://github.com/zilliztech/GPTCache/tree/main/docs/bootcamp)\n\n3. Add openai image adapter (**experimental**)\n\n```python\nfrom gptcache.adapter import openai\n\ncache.init()\ncache.set_openai_key()\n\nprompt1 = 'a cat sitting besides a dog'\nsize1 = '256x256'\n\nopenai.Image.create(\n    prompt=prompt1,\n    size=size1,\n    response_format='b64_json'\n    )\n```\n\n4. Refine storage interface\n\n## v0.1.10 (2023.4.13)\n\n1. Add kreciprocal similarity evaluation\n\nK-reprciprocl evaluation is a method inspired by the popular reranking method in ReID(https://arxiv.org/abs/1701.08398). The term “k-reciprocal” comes from the fact that the algorithm creates reciprocal relationships between similar embeddings in the top-k list. In other words, if embedding A is similar to embedding B and embedding B is similar to embedding A, then A and B are said to be “reciprocally similar” to each other. This evaluation abandon those embeddings pairs which are not “reciprocally similar” in their K nearest neighbors. And the remaining pairs will keep the distance for the final rank.\n\n```python\nvector_base = VectorBase(\"faiss\", dimension=d)\ndata_manager = get_data_manager(CacheBase(\"sqlite\"), vector_base)\nevaluation = KReciprocalEvaluation(vectordb=vector_base)\ncache.init(\n    ... # other configs\n    data_manager=data_manager,\n    similarity_evaluation=evaluation,\n)\n```\n\n2. Add LangChainChat adapter\n\n```python\nfrom gptcache.adapter.langchain_models import LangChainChat\n\ncache.init(\n    pre_embedding_func=get_msg,\n)\n\nchat = LangChainChat(chat=ChatOpenAI(temperature=0))\nanswer = chat(\n    messages=[\n        HumanMessage(\n            content=\"Translate this sentence from English to Chinese. I love programming.\"\n        )\n    ]\n)\n```\n\n## v0.1.9 (2023.4.12)\n\n1. Import data into cache\n\n```python\ncache.init()\n\nquestions = [\"foo1\", \"foo2\"]\nanswers = [\"a1\", \"a2\"]\ncache.import_data(questions=questions, answers=answers)\n```\n\n2. New pre-process function: remove prompts\n\nWhen using the LLM model, a prompt may be added for each input. If the entire message with the prompt is brought into the cache, it may lead to an increase in the cache error hit rate. For example, the text of the prompt is very long, and the text of the real question is very short. .\n\n```python\ncache_obj.init(\n    pre_embedding_func=last_content_without_prompt,\n    config=Config(prompts=[\"foo\"]),\n)\n```\n\n3. Embedded milvus\n\nThe embedded Milvus is a lightweight version of Milvus that can be embedded into your Python application. It is a single binary that can be easily installed and run on your machine.\n\n```python\nwith TemporaryDirectory(dir=\"./\") as root:\n    db = VectorBase(\n                    \"milvus\",\n                    local_mode=True,\n                    local_data=str(root),\n                    ... #other config\n                )\n    data_manager = get_data_manager(\"sqlite\", vector_base)\n```\n"
  },
  {
    "path": "docs/requirements.txt",
    "content": "sphinx\nurllib3<2.0\npyqt5<5.13\npyqtwebengine<5.13\nnbsphinx\nautodoc_pydantic\nmyst_nb\nsphinx-autobuild\nsphinx_book_theme\nsphinx-panels\nsphinx_copybutton\nm2r2\nsphinx_toolbox\n"
  },
  {
    "path": "docs/toc.bak",
    "content": ".. toctree::\n   :maxdepth: 1\n   :caption: Getting Started\n   :name: getting-started\n   :hidden:\n\n   usage.md\n   feature.md\n   configure_it.md\n   release_note.md\n\n.. toctree::\n   :maxdepth: 1\n   :caption: Bootcamp\n   :name: bootcamp\n   :hidden:\n\n   bootcamp/langchain/index\n   bootcamp/llama_index/index\n   bootcamp/openai/index\n   bootcamp/replicate/index\n   bootcamp/temperature/index\n   bootcamp/vertex/index\n\n.. toctree::\n   :maxdepth: 1\n   :caption: References\n   :name: references\n   :hidden:\n\n   references/index\n\n.. toctree::\n   :maxdepth: 1\n   :caption: Contributing\n   :name: contributing\n   :hidden:\n\n   contributing.md"
  },
  {
    "path": "docs/usage.md",
    "content": "# GPTCache Quick Start\n\nGPTCache is easy to use and can reduce the latency of LLM queries by 100x in just two steps:\n\n1. __Build your cache.__ In particular, you'll need to decide on an embedding function, similarity evaluation function, where to store your data, and the eviction policy.\n2. __Choose your LLM.__ GPTCache currently supports OpenAI's ChatGPT (GPT3.5-turbo) and langchain. Langchain supports a variety of LLMs, such as Anthropic, Huggingface, and Cohere models.\n\n### Build your **Cache**\n\nThe default interface for `Cache` is as follows:\n\n```python\nclass Cache:\n   def init(self,\n            cache_enable_func=cache_all,\n            pre_embedding_func=last_content,\n            embedding_func=string_embedding,\n            data_manager: DataManager = get_data_manager(),\n            similarity_evaluation=ExactMatchEvaluation(),\n            post_process_messages_func=first,\n            config=Config(),\n            next_cache=None,\n            **kwargs\n            ):\n       self.has_init = True\n       self.cache_enable_func = cache_enable_func\n       self.pre_embedding_func = pre_embedding_func\n       self.embedding_func = embedding_func\n       self.data_manager: DataManager = data_manager\n       self.similarity_evaluation = similarity_evaluation\n       self.post_process_messages_func = post_process_messages_func\n       self.data_manager.init(**kwargs)\n       self.config = config\n       self.next_cache = next_cache\n\n```\n\nBefore creating a GPTCache, consider the following questions:\n\n1. How will you generate embeddings for queries? (`embedding_func`)\n   \n    This function embeds text into a dense vector for context similarity search. GPTCache currently supports five methods for embedding context: OpenAI, Cohere, Huggingface, ONNX, and SentenceTransformers. We also provide a default string embedding method which serves as simple passthrough.\n    \n    For example, to use ONNX Embeddings, simply initialize your embedding function as `onnx.to_embeddings`.\n    \n    ```python\n    data_manager = get_data_manager(CacheBase(\"sqlite\"), VectorBase(\"faiss\", dimension=onnx.dimension))\n    \n    cache.init(\n        embedding_func=onnx.to_embeddings,\n        data_manager=data_manager,\n        similarity_evaluation=SearchDistanceEvaluation(),\n    )\n    cache.set_openai_key()\n    ```\n    \n    Check out more [examples](https://github.com/zilliztech/gpt-cache/tree/main/examples#How-to-set-the-embedding-function) to see how to use different embedding functions.\n    \n2. Where will you cache the data? (`data_manager` cache storage)\n   \n    The cache storage stores all scalar data such as original questions, prompts, answers, and access times. GPTCache supports a number of cache storage options, such as SQLite, MySQL, and PostgreSQL. More NoSQL databases will be added in the future.\n    \n3. Where will you store and search vector embeddings? (`data_manager` vector storage)\n   \n    The vector storage component stores and searches across all embeddings to find the most similar results semantically. GPTCache supports the use of vector search libraries such as FAISS or vector databases such as Milvus. More vector databases and cloud services will be added in the future.\n\n    Here are some examples:\n\n   ```python\n   ## create user defined data manager\n   data_manager = get_data_manager()\n   ## create data manager with sqlite and faiss \n   data_manager = get_data_manager(CacheBase(\"sqlite\"), VectorBase(\"faiss\", dimension=128))\n   ## create data manager with mysql and milvus, max cache size is 100\n   data_manager = get_data_manager(CacheBase(\"mysql\"), VectorBase(\"milvus\", dimension=128), max_size=100)\n   ## create data manager with mysql and milvus, max cache size is 100, eviction policy is LRU\n   data_manager = get_data_manager(CacheBase(\"mysql\"), VectorBase(\"milvus\", dimension=128), max_size=100, eviction='LRU') \n   ```\n   \n   Check out more [examples](https://github.com/zilliztech/gpt-cache/tree/main/examples#How-to-set-the-data-manager-class) to see how to use different data managers.\n\n4. What is the eviction policy?\n   \n    GPTCache supports evicting data based on cache count. You can choose to use either the LRU or FIFO policy. In the future, we plan to support additional cache policies, such as evicting data based on last access time or last write time.\n\n5. How will you determine cache hits versus misses? (`evaluation_func`)\n\n   The evaluation function helps to determine whether the cached answer matches the input query. It takes three input values: `user request data`, `cached data`, and `user-defined parameters`. GPTCache currently supports three types of evaluation functions: exact match evaluation, embedding distance evaluation and ONNX model evaluation.\n\n   To enable ONNX evaluation, simply pass `EvaluationOnnx` to `similarity_evaluation`. This allows you to run any model that can be served on ONNX. We will support Pytorch, TensorRT and the other inference engines in the future.\n\n   ```python\n   onnx = EmbeddingOnnx()\n   data_manager = get_data_manager(CacheBase(\"sqlite\"), VectorBase(\"faiss\", dimension=onnx.dimension))\n   evaluation_onnx = EvaluationOnnx()\n   cache.init(\n       embedding_func=onnx.to_embeddings,\n       data_manager=data_manager,\n       similarity_evaluation=evaluation_onnx,\n   )\n   ```\n\n   Check out our [examples](https://github.com/zilliztech/gpt-cache/tree/main/examples#How-to-set-the-similarity-evaluation-interface) page to see how to use different similarity evaluation functions.\n\nUsers can also pass in other configuration options, such as:\n\n- `log_time_func`: A function that logs time-consuming operations such as `embedding` and `search`.\n- `similarity_threshold`: The threshold used to determine when embeddings are similar to each other.\n\n### **Chose your adapter**\n\nGPTCache currently supports two LLM adapters: OpenAI and Langchain.\n\nWith the OpenAI adapter, you can specify the model you want to use and generate queries as a user role.\n\n```python\ncache.init()\ncache.set_openai_key()\n\nquestion = \"what's github\"\nanswer = openai.ChatCompletion.create(\n      model='gpt-3.5-turbo',\n      messages=[\n        {\n            'role': 'user',\n            'content': question\n        }\n      ],\n    )\nprint(answer)\n```\n\nHere's an example that utilizes OpenAI's stream response API:\n\n```python\nfrom gptcache.manager import get_data_manager\nfrom gptcache.core import cache, Cache\nfrom gptcache.adapter import openai\n\ncache.init(data_manager=get_data_manager())\nos.environ[\"OPENAI_API_KEY\"] = \"API KEY\"\ncache.set_openai_key()\n\nresponse = openai.ChatCompletion.create(\n    model='gpt-3.5-turbo',\n    messages=[\n        {'role': 'user', 'content': \"What's 1+1? Answer in one word.\"}\n    ],\n    temperature=0,\n    stream=True  # this time, we set stream=True\n)\n\n# create variables to collect the stream of chunks\ncollected_chunks = []\ncollected_messages = []\n# iterate through the stream of events\nfor chunk in response:\n    collected_chunks.append(chunk)  # save the event response\n    chunk_message = chunk['choices'][0]['delta']  # extract the message\n    collected_messages.append(chunk_message)  # save the message\n\nfull_reply_content = ''.join([m.get('content', '') for m in collected_messages])\n```\n\nIf you want to use other LLMs, the Langchain adapter provides support a standard interface to connect with Langchain-supported LLMs.\n\n```python\ntemplate = \"\"\"Question: {question}\n\nAnswer: Let's think step by step.\"\"\"\n\nprompt = PromptTemplate(template=template, input_variables=[\"question\"])\n\nllm = OpenAI()\n\nquestion = \"What NFL team won the Super Bowl in the year Justin Bieber was born?\"\n\nllm_cache = Cache()\nllm_cache.init(\n    pre_embedding_func=get_prompt,\n    post_process_messages_func=postnop,\n)\n\ncached_llm = LangChainLLMs(llm)\nanswer = cached_llm(question, cache_obj=llm_cache)\n```\n\nWe plan to support other models soon, so any contributions or suggestions are welcome.\n\n### Other request parameters\n\n**cache_obj**: Customize the request cache. Use this if you want to make the cache a singleton.\n\n```python\nonnx = Onnx()\ndata_manager = get_data_manager(CacheBase(\"sqlite\"), VectorBase(\"faiss\", dimension=onnx.dimension))\none_cache = Cache()\none_cache.init(embedding_func=onnx.to_embeddings,\n               data_manager=data_manager,\n               evaluation_func=pair_evaluation,\n               config=Config(\n                   similarity_threshold=1,\n                    ),\n               )\n\nquestion = \"what do you think about chatgpt\"\n\nopenai.ChatCompletion.create(\n    model=\"gpt-3.5-turbo\",\n    messages=[\n        {\"role\": \"user\", \"content\": question}\n    ],\n    cache_obj=one_cache\n)\n```\n\n**cache_context**: Custom cache functions can be passed separately for each of the request.\n\n```python\nquestion = \"what do you think about chatgpt\"\n\nopenai.ChatCompletion.create(\n    model=\"gpt-3.5-turbo\",\n    messages=[\n        {\"role\": \"user\", \"content\": question}\n    ],\n    cache_context={\n      \"pre_embedding_func\": {},\n      \"embedding_func\": {},\n      \"search_func\": {},\n      \"get_scalar_data\": {},\n      \"evaluation_func\": {},\n    }\n)\n```\n\n**cache_skip**: This option allows you to skip the cache search, but still store the results returned by the LLM model. \n\n```python\nquestion = \"what do you think about chatgpt\"\n\nopenai.ChatCompletion.create(\n    model=\"gpt-3.5-turbo\",\n    messages=[\n        {\"role\": \"user\", \"content\": question}\n    ],\n    cache_skip=True\n)\n```\n\n**session:** Specify the sesion of the current request, you can also set some rules to check if the session hits the cache, see this [example](https://github.com/zilliztech/GPTCache/tree/main/examples#How-to-run-with-session) for more details.\n\n```python\nfrom gptcache.session import Session\n\nsession = Session(name=\"my-session\")\nquestion = \"what do you think about chatgpt\"\n\nopenai.ChatCompletion.create(\n    model=\"gpt-3.5-turbo\",\n    messages=[\n        {\"role\": \"user\", \"content\": question}\n    ],\n    session=session\n)\n```\n\n**temperature**: You can always pass a parameter of temperature with value between 0 and 2 to control randomity of output. A higher value of temperature like 0.8 will make the output more random. A lower value like 0.2 makes the output more coherent given the same input.\n\n> The range of `temperature` is [0, 2], default value is 0.0.\n> \n> A higher temperature means a higher possibility of skipping cache search and requesting large model directly.\n> When temperature is 2, it will skip cache and send request to large model directly for sure. When temperature is 0, it will search cache before requesting large model service.\n> \n> The default `post_process_messages_func` is `temperature_softmax`. In this case, refer to [API reference](https://gptcache.readthedocs.io/en/latest/references/processor.html#module-gptcache.processor.post) to learn about how `temperature` affects output.\n\n```python\nimport time\n\nfrom gptcache import cache, Config\nfrom gptcache.manager import manager_factory\nfrom gptcache.embedding import Onnx\nfrom gptcache.processor.post import temperature_softmax\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\nfrom gptcache.adapter import openai\n\ncache.set_openai_key()\n\nonnx = Onnx()\ndata_manager = manager_factory(\"sqlite,faiss\", vector_params={\"dimension\": onnx.dimension})\n\ncache.init(\n    embedding_func=onnx.to_embeddings,\n    data_manager=data_manager,\n    similarity_evaluation=SearchDistanceEvaluation(),\n    post_process_messages_func=temperature_softmax\n    )\n# cache.config = Config(similarity_threshold=0.2)\n\nquestion = \"what's github\"\n\nfor _ in range(3):\n    start = time.time()\n    response = openai.ChatCompletion.create(\n        model=\"gpt-3.5-turbo\",\n        temperature = 1.0,  # Change temperature here\n        messages=[{\n            \"role\": \"user\",\n            \"content\": question\n        }],\n    )\n    print(\"Time elapsed:\", round(time.time() - start, 3))\n    print(\"Answer:\", response[\"choices\"][0][\"message\"][\"content\"])\n```\n\n### Use GPTCache server\n\nGPTCache now supports building a server with caching and conversation capabilities. You can start a customized GPTCache service within a few lines. Here is a simple example to show how to build and interact with GPTCache server. For more detailed information, arguments, parameters, refer to [this](https://github.com/zilliztech/gpt-cache/tree/main/examples).\n\n**Start server**\n\nOnce you have GPTCache installed, you can start the server with following command:\n```shell\n$ gptcache_server -s 127.0.0.1 -p 8000\n```\n\n**Start server with docker**\n\n```shell\n$ docker pull zilliz/gptcache:latest\n$ docker run -p 8000:8000 -it zilliz/gptcache:latest\n```\n\n**Interact with the server**\n\nGPTCache supports two ways of interaction with the server:\n\n- With command line:\n\nput the data to cache\n\n```shell\ncurl -X 'POST' \\\n  'http://localhost:8000/put' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n  \"prompt\": \"Hi\",\n  \"answer\": \"Hi back\"\n}'\n```\n\nget the data from the cache\n\n```shell\ncurl -X 'POST' \\\n  'http://localhost:8000/get' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n  \"prompt\": \"Hi\"\n}'\n```\n\n\n- With python client:\n\n```python\n >>> from gptcache.client import Client\n\n >>> client = Client(uri=\"http://localhost:8000\")\n >>> client.put(\"Hi\", \"Hi back\")\n 200\n >>> client.get(\"Hi\")\n 'Hi back'\n ```\n"
  },
  {
    "path": "examples/README.md",
    "content": "# Example\n\n- [Example](#example)\n  - [How to run Visual Question Answering with MiniGPT-4](#how-to-run-visual-question-answering-with-minigpt-4)\n  - [How to set the `embedding` function](#how-to-set-the-embedding-function)\n    - [Default embedding function](#default-embedding-function)\n    - [Suitable for embedding methods consisting of a cached storage and vector store](#suitable-for-embedding-methods-consisting-of-a-cached-storage-and-vector-store)\n    - [Custom embedding](#custom-embedding)\n  - [How to set the `data manager` class](#how-to-set-the-data-manager-class)\n  - [How to set the `similarity evaluation` interface](#how-to-set-the-similarity-evaluation-interface)\n  - [Request cache parameter customization](#request-cache-parameter-customization)\n  - [How to run with session](#how-to-run-with-session)\n    - [Run in `with` method](#run-in-with-method)\n    - [Custom Session](#custom-session)\n  - [How to use GPTCache server](#how-to-use-gptcache-server)\n    - [Start server](#start-server)\n  - [Benchmark](#benchmark)\n  - [How to use post-process function](#how-to-use-post-process-function)\n\n## How to run Visual Question Answering with MiniGPT-4\n\nYou can run [vqa_demo.py](./vqa_demo.py) to implement the image Q&A, which uses MiniGPT-4 for generating answers and then GPTCache to cache the answers.\n\n>  Note that you need to make sure that [minigpt4](https://github.com/Vision-CAIR/MiniGPT-4) and [gptcache](https://gptcache.readthedocs.io/en/dev/index.html) are successfully installed, and move the **vqa_demo.py** file to the MiniGPT-4 directory.\n\n```bash\n$ python vqa_demo.py --cfg-path eval_configs/minigpt4_eval.yaml  --gpu-id 0\n```\n\nThe above command will use the exact match cache, i.e. map cache management method. When you ask the same image and question, it will hit the cache directly and return the answer quickly.\n\nIf you want to use similar search cache, you can run the following command to set `map` to `False`, which will use sqlite3 and faiss to manage the cache to search for similar images and questions in the cache.\n\n> You can also set `dir` to your workspace directory.\n\n```bash\n$ python vqa_demo.py --cfg-path eval_configs/minigpt4_eval.yaml  --gpu-id 0 --dir /path/to/workspace --no-map\n```\n\n\n## How to set the `embedding` function\n\n> Please note that not all data managers are compatible with an embedding function.\n\n### [Default embedding function](https://github.com/zilliztech/GPTCache/blob/main/examples/embedding/default.py)\n\nNothing to do. Only `map data` manager can be configured for use. \n\n```python\ndef to_embeddings(data, **kwargs):\n    return data\n```\n\n### Suitable for embedding methods consisting of a cached storage and vector store\n\n**[ONNX](https://github.com/zilliztech/GPTCache/blob/main/examples/embedding/onnx.py)**\n\n> When creating an Embedding object, the model will be loaded. It is important to remember to pass the dimension to the data manager.\n\n```python\nfrom gptcache.core import cache, Config\nfrom gptcache.manager import get_data_manager, CacheBase, VectorBase\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\nfrom gptcache.embedding import Onnx\n\nonnx = Onnx()\ndata_manager = get_data_manager(CacheBase(\"sqlite\"), VectorBase(\"faiss\", dimension=onnx.dimension))\ncache.init(embedding_func=onnx.to_embeddings,\n           data_manager=data_manager,\n           similarity_evaluation=SearchDistanceEvaluation(),\n           )\ncache.set_openai_key()\n```\n\n> The usage of the following models is similar to the above.\n\n<details>\n\n<summary> OpenAI </summary>\n\n```python\nfrom gptcache.embedding import OpenAI\n\nopenai = OpenAI()\n# openai.dimension\n# openai.to_embeddings\n```\n\n</details>\n\n<details>\n\n<summary> Huggingface </summary>\n\n```python\nfrom gptcache.embedding import Huggingface\n\nhuggingface = Huggingface()\n# huggingface.dimension\n# huggingface.to_embeddings\n```\n\n</details>\n\n<details>\n\n<summary> Cohere </summary>\n\n```python\nfrom gptcache.embedding import Cohere\n\ncohere = Cohere()\n# cohere.dimension\n# cohere.to_embeddings\n```\n\n</details>\n\n<details>\n\n<summary> SentenceTransformer </summary>\n\n```python\nfrom gptcache.embedding import SBERT\n\nsbert = SBERT()\n# sbert.dimension\n# sbert.to_embeddings\n```\n\n</details>\n\n<details>\n\n<summary> FastText </summary>\n\n```python\nfrom gptcache.embedding import FastText\n\nfast_text = FastText()\n# fast_text.dimension\n# fast_text.to_embeddings\n```\n\n</details>\n\n<details>\n\n<summary> PaddleNLP </summary>\n\n```python\nfrom gptcache.embedding import PaddleNLP\n\npaddlenlp = PaddleNLP()\n# paddlenlp.dimension\n# paddlenlp.to_embeddings\n```\n\n</details>\n\n### Custom embedding\n\nThe function has two parameters: the preprocessed string and parameters reserved for user customization. To acquire these parameters, a similar method to the one above is used: `kwargs.get(\"embedding_func\", {})`.\n\n<details>\n\n<summary> <strong>Example code</strong> </summary>\n\n```python\ndef to_embeddings(data, **kwargs):\n    return data\n```\n\n```python\nclass Cohere:\n\n    def __init__(self, model: str=\"large\", api_key: str=None, **kwargs):\n        self.co = cohere.Client(api_key)\n        self.model = model\n\n        if model in self.dim_dict():\n            self.__dimension = self.dim_dict()[model]\n        else:\n            self.__dimension = None\n\n    def to_embeddings(self, data):\n        if not isinstance(data, list):\n            data = [data]\n        response = self.co.embed(texts=data, model=self.model)\n        embeddings = response.embeddings\n        return np.array(embeddings).astype('float32').squeeze(0)\n\n    @property\n    def dimension(self):\n        if not self.__dimension:\n            foo_emb = self.to_embeddings(\"foo\")\n            self.__dimension = len(foo_emb)\n        return self.__dimension\n\n    @staticmethod\n    def dim_dict():\n        return {\n            \"large\": 4096,\n            \"small\": 1024\n        }\n```\n\n</details>\n\n> Note that if you intend to use the model, it should be packaged with a class. The model will be loaded when the object is created to avoid unnecessary loading when not in use. This also ensures that the model is not loaded multiple times during program execution.\n\n## How to set the `data manager` class\n\n**MapDataManager, default**\n\nStore all data in a map data structure, using the question as the key.\n\n```python\nfrom gptcache.manager import get_data_manager\nfrom gptcache import cache\n\ndata_manager = get_data_manager()\ncache.init(data_manager=data_manager)\ncache.set_openai_key()\n```\n\n**Cached storage and Vector store**\n\nThe user's question and answer data can be stored in a general database such as SQLite or MySQL, while the vector obtained through the question text embedding is stored in a separate vector database.\n\n```python\nfrom gptcache import cache\nfrom gptcache.manager import get_data_manager, CacheBase, VectorBase\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\nimport numpy as np\n\nd = 8\n\n\ndef mock_embeddings(data, **kwargs):\n    return np.random.random((d, )).astype('float32')\n\ncache_base = CacheBase('sqlite')\nvector_base = VectorBase('faiss', dimension=d)\ndata_manager = get_data_manager(cache_base, vector_base)\ncache.init(embedding_func=mock_embeddings,\n           data_manager=data_manager,\n           similarity_evaluation=SearchDistanceEvaluation(),\n           )\ncache.set_openai_key()\n```\n\nSupport general database\n\n- SQLite.\n- PostgreSQL.\n- MySQL.\n- MariaDB.\n- SQL Server.\n- Oracle.\n- DynamoDB\n\n> [Example code](https://github.com/zilliztech/GPTCache/blob/main/examples/data_manager/scalar_store.py)\n\nSupport vector database\n\n- Milvus\n- Zilliz Cloud\n- FAISS\n- ChromaDB\n\n> [Example code](https://github.com/zilliztech/GPTCache/blob/main/examples/data_manager/vector_store.py)\n\n**Custom Store**\n\nFirst, you need to implement two interfaces, namely [`CacheStorage`](https://github.com/zilliztech/GPTCache/blob/main/gptcache/manager/scalar_data/base.py) and [`VectorBase`](https://github.com/zilliztech/GPTCache/blob/main/gptcache/manager/vector_data/base.py), and then create the corresponding data manager through the `get_data_manager` method.\n\nReference: [CacheStorage sqlalchemy](https://github.com/zilliztech/GPTCache/blob/main/gptcache/manager/scalar_data/sqlalchemy.py) [VectorBase Faiss](https://github.com/zilliztech/GPTCache/blob/main/gptcache/manager/vector_data/faiss.py)\n\n```python\nfrom gptcache import cache\nfrom gptcache.manager import get_data_manager\n\ndata_manager=get_data_manager(cache_base=CustomCacheStore(), vector_base=CustomVectorStore())\ncache.init(data_manager=data_manager)\n```\n\n## How to set the `similarity evaluation` interface\n\n**[ExactMatchEvaluation, default](https://github.com/zilliztech/GPTCache/blob/main/examples/similarity_evaluation/exact_match.py)**\n\nExact match between two questions, currently only available for map data manager.\n\n```python\nfrom gptcache import cache\nfrom gptcache.similarity_evaluation.exact_match import ExactMatchEvaluation\n\ncache.init(\n           similarity_evaluation=ExactMatchEvaluation(),\n           )\ncache.set_openai_key()\n```\n\n<details>\n\n<summary> <strong><a href=\"https://github.com/zilliztech/GPTCache/blob/main/examples/similarity_evaluation/search_distance.py\">SearchDistanceEvaluation</a></strong> </summary>\n\nUsing search distance to evaluate sentences pair similarity.\n\n```python\nfrom gptcache import cache\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\n\ncache.init(\n           similarity_evaluation=SearchDistanceEvaluation(),\n           )\ncache.set_openai_key()\n```\n\n</details>\n\n<details>\n\n<summary> <strong><a href=\"https://github.com/zilliztech/GPTCache/blob/main/examples/similarity_evaluation/onnx.py\">OnnxModelEvaluation</a></strong> </summary>\n\nUsing ONNX model to evaluate sentences pair similarity.\n\n```python\nfrom gptcache import cache\nfrom gptcache.similarity_evaluation.onnx import OnnxModelEvaluation\n\ncache.init(\n           similarity_evaluation=OnnxModelEvaluation(),\n           )\ncache.set_openai_key()\n```\n\n</details>\n\n<details>\n\n<summary> <strong>NumpyNormEvaluation</strong> </summary>\n\nUsing Numpy norm to evaluate sentences pair similarity.\n\n```python\nfrom gptcache import cache\nfrom gptcache.similarity_evaluation.np import NumpyNormEvaluation\n\ncache.init(\n           similarity_evaluation=NumpyNormEvaluation(),\n           )\ncache.set_openai_key()\n```\n\n</details>\n\n**Custom similarity evaluation**\n\nTo meet the requirements, you will need to implement the `SimilarityEvaluation` interface, which consists of two methods: `evaluation` and `range`.\n\n- evaluation, The function takes three input values, namely user request data, cache data, and user-defined data. The last parameter, by using kwargs.get(\"evaluation_func\", {}), is reserved for users.\n- range, The return of the range function needs to return two values, which are the minimum and maximum values.\n\nReference: [similarity evaluation dir](https://github.com/zilliztech/GPTCache/tree/main/gptcache/similarity_evaluation)\n\n<details>\n\n<summary><h2>Other cache init params</h2></summary>\n\n- **cache_enable_func**: determines whether to use the cache. \n\n    Among them, `args` and `kwargs` represent the original request parameters. If the function returns True, the cache is enabled.\n\n    You can use this function to ensure that the cache is not enabled when the length of the question is too long, as the likelihood of caching the result is low in such cases.\n\n    ```python\n    def cache_all(*args, **kwargs):\n        return True\n    ```\n\n- **pre_embedding_func**: extracts key information from the request and preprocesses it to ensure that the input information for the encoder module's embedding function is simple and accurate.\n\n    The `data` parameter represents the original request dictionary object, while the `kwargs` parameter is used to obtain user-defined parameters. By using `kwargs.get(\"pre_embedding_func\", {})`, the main purpose is to allow users to pass additional parameters at a certain stage of the process.\n\n    For example, it may extract only the last message in the message array of the OpenAI request body, or the first and last messages in the array.\n\n    ```python\n    def last_content(data, **kwargs):\n        return data.get(\"messages\")[-1][\"content\"]\n    ```\n\n    ```python\n    def all_content(data, **kwargs):\n        s = \"\"\n        messages = data.get(\"messages\")\n        for i, message in enumerate(messages):\n            if i == len(messages) - 1:\n                s += message[\"content\"]\n            else:\n                s += message[\"content\"] + \"\\n\"\n        return s\n    ```\n\n- **config**: includes cache-related configurations, which currently consist of the following: `log_time_func`, `similarity_threshold`.\n\n  - log_time_func: The function logging time-consuming operations currently detects `embedding` and `search` functions.\n  - similarity_threshold\n\n- **next_cache**: This points to the next cache object, which is useful for implementing multi-level cache functions.\n\n  ```python\n  from gptcache import cache, Cache\n  from gptcache.manager import get_data_manager \n  \n  bak_cache = Cache()\n  bak_data_file = \"data_map_bak.txt\"\n  bak_cache.init(data_manager=get_data_manager(data_path=bak_data_file))\n  \n  cache.init(data_manager=get_data_manager(), next_cache=bak_cache)\n  ```\n  \n## Request cache parameter customization\n\n- **cache_obj**: customize request cache, use global variable cache by default.\n\n```python\nonnx = Onnx()\ndata_manager = get_data_manager(CacheBase(\"sqlite\"), VectorBase(\"faiss\", dimension=onnx.dimension))\none_cache = Cache()\none_cache.init(embedding_func=onnx.to_embeddings,\n               data_manager=data_manager,\n               evaluation_func=pair_evaluation,\n               config=Config(\n                   similarity_threshold=1,\n                    ),\n               )\n\nquestion = \"what do you think about chatgpt\"\n\nopenai.ChatCompletion.create(\n    model=\"gpt-3.5-turbo\",\n    messages=[\n        {\"role\": \"user\", \"content\": question}\n    ],\n    cache_obj=one_cache\n)\n```\n\n- **cache_context**: Custom cache parameters can be passed separately for each step in the caching process.\n\n```python\nquestion = \"what do you think about chatgpt\"\n\nopenai.ChatCompletion.create(\n    model=\"gpt-3.5-turbo\",\n    messages=[\n        {\"role\": \"user\", \"content\": question}\n    ],\n    cache_context={\n      \"pre_embedding_func\": {},\n      \"embedding_func\": {},\n      \"search_func\": {},\n      \"evaluation_func\": {},\n      \"save_func\": {},\n    }\n)\n```\n\n- **cache_skip**: skip the cache search, but still store the results returned by the LLM model. These stored results can be used to retry when the cached result is unsatisfactory. Additionally, during the startup phase of the cache system, you can avoid performing a cache search altogether and directly save the data, which can then be used for data accumulation.\n\n```python\nquestion = \"what do you think about chatgpt\"\n\nopenai.ChatCompletion.create(\n    model=\"gpt-3.5-turbo\",\n    messages=[\n        {\"role\": \"user\", \"content\": question}\n    ],\n    cache_skip=True\n)\n```\n\n</details>\n\nFor more details, please refer to: [API Reference](https://gptcache.readthedocs.io/)\n\n## How to run with session\n\nSession can isolate the context of each connection, and can also filter the results after recall, and if not satisfied will re-request rather than return the cache results directly. \n\nFirst we need to initialize the cache:\n\n```python\nfrom gptcache import cache\n\ncache.init()\ncache.set_openai_key()\n```\n\nThen we can set the session parameter for each request.\n\n### Run in `with` method\n\n```python\nfrom gptcache.session import Session\n\nwith Session() as session:\n    response = openai.ChatCompletion.create(\n                            model='gpt-3.5-turbo',\n                            messages=[\n                              {\n                                  'role': 'user',\n                                  'content': \"what's github\"\n                              }],\n                            session=session\n                          )\n```\n\n> The `with` method will delete the session data directly on exit, if you don't want to delete data in your sesion, you can run the following code but without `session.drop()`.\n>\n> If you are using `LangChainLLMs`, you can set the session for current LLM, e.g. `llm = LangChainLLMs(llm=OpenAI(temperature=0), session=session)`. Or you can run the llm with specific session, e.g. `llm = LangChainLLMs(llm=OpenAI(temperature=0)` , and run `llm(question, session=session)`.\n\n### Custom Session\n\nYou can customize the `name` of the sesion, and the `check_hit_func` method to check if a hit is satisfied, which method has four parameters:\n\n- `cur_session_id`:  the name of the current session\n\n- `cache_session_ids`: a list of session names for caching the same content if you are using map as a data management method. Otherwise a list of session names for similar content and same answer\n\n- `cache_question`: a list with one question which same as the you asked if you use a map as a data management method. Otherwise it is a list that is similar to the question you asked with the same answer, and it is correspondence with `cache_session_ids`\n\n- `cache_answer`: the content of the cached answer\n\n> The default `check_hit_func` returns `cur_session_id not in cache_session_ids`, which means that the answers returned cannot be in the same session.\n\nIn the following code,  `my_check_hit` is defined to check if the cached answer contains \"GitHub\", and return `True` if it does, then gptcache will continue with the subsequent evaluation operations, and if it does not contain it will return `False` and will re-run the request.\n\n```python\nfrom gptcache.session import Session\n\ndef my_check_hit_func(cur_session_id, cache_session_ids, cache_questions, cache_answer):\n    if \"GitHub\" in cache_answer:\n        return True\n    return False\nsession = Session(name=\"my-session\", check_hit_func=my_check_hit_func)\n\nresponse = openai.ChatCompletion.create(\n                          model='gpt-3.5-turbo',\n                          messages=[\n                            {\n                                'role': 'user',\n                                'content': \"what's github\"\n                            }],\n                          session=session\n                        )\n# session.drop() # Optional\n```\n\nAnd you can also run `data_manager.list_sessions` to list all the sessions.\n\n## How to use GPTCache server\n\nGPTCache now supports building a server with caching and conversation capabilities. You can start a customized GPTCache service within a few lines.\n\n### Start server\n\nOnce you have GPTCache installed, you can start the server with following command:\n```shell\n$ gptcache_server -s [HOST] -p [PORT] -d [CACHE_DIRECTORY] -f [CACHE_CONFIG_FILE]\n```\nThe args are optional:\n- -s/--host: Specify the host to start GPTCache service, defaults to \"0.0.0.0\".\n- -p/--port: Specify the port to access to the service, defaults to 8000.\n- -d/--cache-dir: Specify the directory of the cache, defaults to `gptcache_data` folder.\n- -f/--cache-config-file: Specify the YAML file to config GPTCache service, defaults to None.\n\n**GPTCache server configuration**\n\nYou can config the server via a YAML file, here is an example config yaml:\n\n```yaml\nembedding:\n    onnx\nembedding_config:\n    # Set embedding model params here\nstorage_config:\n    data_dir:\n        gptcache_data\n    manager:\n        sqlite,faiss\n    vector_params:\n        # Set vector storage related params here\nevaluation: \n    distance\nevaluation_config:\n    # Set evaluation metric kws here\npre_function:\n    get_prompt\npost_function:\n    first\nconfig:\n    similarity_threshold: 0.8\n    # Set other config here\n```\n- embedding: The embedding model source, options: [How to set the **embedding** function](#How-to-set-the-embedding-function)\n- embedding_config: The embedding model config, details: [Embedding Reference](https://gptcache.readthedocs.io/en/latest/references/embedding.html)\n- data_dir: The cache directory.\n- manager: The cache storage and vector storage.\n- evaluation: The evaluation component, options: [How to set the **similarity evaluation** interface](#How-to-set-the-similarity-evaluation-interface)\n- evaluation_config: The evaluation config, options: [Similarity Evaluation Reference](https://gptcache.readthedocs.io/en/latest/references/similarity_evaluation.html)\n- pre_function: The pre-processing function.\n- post_function: The post-processing function.\n- config: The cache config, like `similarity_threshold`\n\n**Use the docker to start the GPTCache server**\n\nAlso, you can start the service in a docker container:\n\n- Get image from the dockerhub\n    ```shell\n    $ docker pull zilliz/gptcache:latest\n    ```\n- Run the service in a container with default port\n    ```shell\n    $ docker run -p 8000:8000 -it zilliz/gptcache:latest\n    ```\n- Run the service in a container with certain port (e.g. 8000) and config file (e.g. gptcache.yml)\n    ```shell\n    $ docker run -p 8000:8000 -it gptcache:v0 gptcache_server -s 0.0.0.0 -p 8000 -f gptcache.yml\n    ```\n\n**Interact with the server**\n\nGPTCache supports two ways of interaction with the server:\n\n- With command line:\n\nput the data to cache\n\n```shell\ncurl -X 'POST' \\\n  'http://localhost:8000/put' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n  \"prompt\": \"Hi\",\n  \"answer\": \"Hi back\"\n}'\n```\n\nget the data from the cache\n\n```shell\ncurl -X 'POST' \\\n  'http://localhost:8000/get' \\\n  -H 'accept: application/json' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n  \"prompt\": \"Hi\"\n}'\n```\n\n\n- With python client:\n\n```python\n >>> from gptcache.client import Client\n\n >>> client = Client(uri=\"http://localhost:8000\")\n >>> client.put(\"Hi\", \"Hi back\")\n 200\n >>> client.get(\"Hi\")\n 'Hi back'\n ```\n\n## [Benchmark](https://github.com/zilliztech/GPTCache/tree/main/examples/benchmark/benchmark_sqlite_faiss_onnx.py)\n\nThe benchmark script about the `Sqlite + Faiss + ONNX`\n\n[Test data source](https://github.com/zilliztech/GPTCache/tree/main/examples/benchmark/mock_data.json): Randomly scrape some information from the webpage (origin), and then let chatgpt produce corresponding data (similar).\n\n- **threshold**: answer evaluation threshold, A smaller value means higher consistency with the content in the cache, a lower cache hit rate, and a lower cache miss hit; a larger value means higher tolerance, a higher cache hit rate, and at the same time also have higher cache misses.\n- **positive**: effective cache hit, which means entering `similar` to search and get the same result as `origin`\n- **negative**: cache hit but the result is wrong, which means entering `similar` to search and get the different result as `origin`\n- **fail count**: cache miss\n\ndata file: [mock_data.json](https://github.com/zilliztech/GPTCache/tree/main/examples/benchmark/mock_data.json)\nsimilarity evaluation func: pair_evaluation (search distance)\n\n | threshold | average time | positive | negative | fail count |\n|-----------|--------------|----------|----------|------------|\n| 0.95      | 0.12s        | 425      | 25       | 549        |\n| 0.9       | 0.23s        | 804      | 77       | 118        |\n| 0.8       | 0.26s        | 904      | 92       | 3          |\n## How to use post-process function\n\nYou can use the LlmVerifier() function to process the cached answer list after recall. This is similar to  `first` or `random_one`, but it will call a LLM to verify whether the recalled question is truly similar to the user's question. You can define your own system prompt to decide under what circumstances the LLM should actively reject. You can also choose a small model to perform the verification step, so only a small additional cost is required.\nExample usage:\n\n```python\nfrom gptcache.processor.post import post\n\n# ... (init cache, embedding, data_manager, etc.)\n\ncache.init(\n    embedding_func=onnx.to_embeddings,\n    data_manager=data_manager,\n    similarity_evaluation=SearchDistanceEvaluation(),\n    post_process_messages_func=LlmVerifier(client=None,\n                       system_prompt=custom_prompt,\n                       model=\"gpt-3.5-turbo\")\n)\n```\n\nSee [processor/post_example.py](./processor/post_example.py) for a runnable example.\n"
  },
  {
    "path": "examples/adapter/api.py",
    "content": "from gptcache import cache, Config, Cache\nfrom gptcache.adapter.api import put, get, init_similar_cache\nfrom gptcache.processor.post import nop\nfrom gptcache.processor.pre import get_prompt\n\n\ndef run_basic():\n    cache.init(pre_embedding_func=get_prompt)\n    put(\"hello\", \"foo\")\n    print(get(\"hello\"))\n    # output: foo\n\n\ndef run_similar_match():\n    inner_cache = Cache()\n    init_similar_cache(\n        cache_obj=inner_cache, post_func=nop, config=Config(similarity_threshold=0)\n    )\n\n    put(\"hello1\", \"foo1\", cache_obj=inner_cache)\n    put(\"hello2\", \"foo2\", cache_obj=inner_cache)\n    put(\"hello3\", \"foo3\", cache_obj=inner_cache)\n\n    messages = get(\"hello\", cache_obj=inner_cache, top_k=3)\n    print(messages)\n    # output: ['foo1', 'foo2', 'foo3']\n\n\nif __name__ == \"__main__\":\n    run_basic()\n    run_similar_match()\n"
  },
  {
    "path": "examples/adapter/langchain_llms.py",
    "content": "import os\n\nfrom langchain import Cohere\nfrom langchain.llms import OpenAI\nfrom langchain.chat_models import ChatOpenAI\nfrom langchain.schema import HumanMessage\n\nfrom gptcache.adapter.langchain_models import LangChainLLMs\nfrom gptcache import cache\nfrom gptcache.processor.pre import get_prompt\n\nfrom gptcache.adapter.langchain_models import LangChainChat\n\nOpenAI.api_key = os.getenv(\"OPENAI_API_KEY\")\nCohere.cohere_api_key = os.getenv(\"COHERE_API_KEY\")\n\n\ndef run_llm():\n    cache.init(\n        pre_embedding_func=get_prompt,\n    )\n\n    question = \"what is chatgpt\"\n\n    langchain_openai = OpenAI(model_name=\"text-ada-001\")\n    llm = LangChainLLMs(llm=langchain_openai)\n    answer = llm(prompt=question)\n    print(answer)\n\n    # TODO install cohere auto\n    langchain_cohere = Cohere()\n    llm = LangChainLLMs(llm=langchain_cohere)\n    answer = llm(prompt=question)\n    print(answer)\n\n\ndef get_msg(data, **_):\n    return data.get(\"messages\")[-1].content\n\n\ndef run_chat_model():\n    cache.init(\n        pre_embedding_func=get_msg,\n    )\n\n    chat = LangChainChat(chat=ChatOpenAI(temperature=0))\n    answer = chat(\n        messages=[\n            HumanMessage(\n                content=\"Translate this sentence from English to Chinese. I love programming.\"\n            )\n        ]\n    )\n    print(answer)\n\n\nif __name__ == \"__main__\":\n    run_llm()\n    run_chat_model()\n"
  },
  {
    "path": "examples/adapter/openai_chatgpt.py",
    "content": "from gptcache import cache\nfrom gptcache.adapter import openai\n\ncache.init()\ncache.set_openai_key()\n\nquestion = 'what is github'\nanswer = openai.ChatCompletion.create(\n      model='gpt-3.5-turbo',\n      messages=[\n        {\n            'role': 'user',\n            'content': question\n        }\n      ],\n    )\nprint(answer)\n"
  },
  {
    "path": "examples/benchmark/benchmark_sqlite_faiss_onnx.py",
    "content": "import json\nimport os\nimport time\n\nfrom gptcache.adapter import openai\nfrom gptcache import cache, Config\nfrom gptcache.manager import get_data_manager, CacheBase, VectorBase\nfrom gptcache.similarity_evaluation.onnx import OnnxModelEvaluation\nfrom gptcache.embedding import Onnx as EmbeddingOnnx\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\n\n\ndef run():\n    with open(\"mock_data.json\", \"r\") as mock_file:\n        mock_data = json.load(mock_file)\n\n    embedding_onnx = EmbeddingOnnx()\n\n    # if you want more accurate results,\n    # you can use onnx's results to evaluate the model,\n    # it will make the results more accurate, but the cache hit rate will decrease\n\n    # evaluation_onnx = EvaluationOnnx()\n    # class WrapEvaluation(SearchDistanceEvaluation):\n    #\n    #     def __init__(self):\n    #         self.evaluation_onnx = EvaluationOnnx()\n    #\n    #     def evaluation(self, src_dict, cache_dict, **kwargs):\n    #         rank1 = super().evaluation(src_dict, cache_dict, **kwargs)\n    #         if rank1 <= 0.5:\n    #             rank2 = evaluation_onnx.evaluation(src_dict, cache_dict, **kwargs)\n    #             return rank2 if rank2 != 0 else 1\n    #         return 0\n    #\n    #     def range(self):\n    #         return 0.0, 1.0\n\n    class WrapEvaluation(SearchDistanceEvaluation):\n        def evaluation(self, src_dict, cache_dict, **kwargs):\n            return super().evaluation(src_dict, cache_dict, **kwargs)\n\n        def range(self):\n            return super().range()\n\n    sqlite_file = \"sqlite.db\"\n    faiss_file = \"faiss.index\"\n    has_data = os.path.isfile(sqlite_file) and os.path.isfile(faiss_file)\n\n    cache_base = CacheBase(\"sqlite\")\n    vector_base = VectorBase(\"faiss\", dimension=embedding_onnx.dimension)\n    data_manager = get_data_manager(cache_base, vector_base, max_size=100000)\n    cache.init(\n        embedding_func=embedding_onnx.to_embeddings,\n        data_manager=data_manager,\n        similarity_evaluation=WrapEvaluation(),\n        config=Config(similarity_threshold=0.95),\n    )\n\n    i = 0\n    for pair in mock_data:\n        pair[\"id\"] = str(i)\n        i += 1\n\n    if not has_data:\n        print(\"insert data\")\n        start_time = time.time()\n        questions, answers = map(\n            list, zip(*((pair[\"origin\"], pair[\"id\"]) for pair in mock_data))\n        )\n        cache.import_data(questions=questions, answers=answers)\n        print(\n            \"end insert data, time consuming: {:.2f}s\".format(time.time() - start_time)\n        )\n\n    all_time = 0.0\n    hit_cache_positive, hit_cache_negative = 0, 0\n    fail_count = 0\n    for pair in mock_data:\n        mock_messages = [\n            {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n            {\"role\": \"user\", \"content\": pair[\"similar\"]},\n        ]\n        try:\n            start_time = time.time()\n            res = openai.ChatCompletion.create(\n                model=\"gpt-3.5-turbo\",\n                messages=mock_messages,\n            )\n            res_text = openai.get_message_from_openai_answer(res)\n            if res_text == pair[\"id\"]:\n                hit_cache_positive += 1\n            else:\n                hit_cache_negative += 1\n            consume_time = time.time() - start_time\n            all_time += consume_time\n            print(\"cache hint time consuming: {:.2f}s\".format(consume_time))\n        except:\n            fail_count += 1\n\n    print(\"average time: {:.2f}s\".format(all_time / len(mock_data)))\n    print(\"cache_hint_positive:\", hit_cache_positive)\n    print(\"hit_cache_negative:\", hit_cache_negative)\n    print(\"fail_count:\", fail_count)\n    print(\"average embedding time: \", cache.report.average_embedding_time())\n    print(\"average search time: \", cache.report.average_search_time())\n\n\nif __name__ == \"__main__\":\n    run()\n"
  },
  {
    "path": "examples/benchmark/mock_data.json",
    "content": "[\n    {\n        \"origin\": \"Hugging Face Hub is a platform to host Git-based models, datasets, and Spaces.\",\n        \"similar\": \"Hugging Face Hub serves as a repository for Git-based models, datasets, and Spaces.\"\n    },\n    {\n        \"origin\": \"Transformers is a state-of-the-art machine learning library for Pytorch, TensorFlow, and JAX.\",\n        \"similar\": \"Transformers is a cutting-edge machine learning library for Pytorch, TensorFlow, and JAX.\"\n    },\n    {\n        \"origin\": \"Diffusers are state-of-the-art diffusion models for image and audio generation in PyTorch.\",\n        \"similar\": \"PyTorch has cutting-edge diffusers for the production of images and sound.\"\n    },\n    {\n        \"origin\": \"Datasets are a platform to access and share datasets for computer vision, audio, and NLP tasks.\",\n        \"similar\": \"Datasets provide a means to access and distribute data for computer vision, audio, and NLP applications.\"\n    },\n    {\n        \"origin\": \"Gradio is a tool to build machine learning demos and other web apps in just a few lines of Python.\",\n        \"similar\": \"Gradio enables developers to create machine learning demos and web applications with a few lines of Python code.\"\n    },\n    {\n        \"origin\": \"The Hub Python Library is a client library for the HF Hub that allows you to manage repositories from your Python runtime.\",\n        \"similar\": \"The Python Library for the HF Hub provides the ability to manage repositories from within a Python environment.\"\n    },\n    {\n        \"origin\": \"Huggingface.js is a collection of JS libraries to interact with Hugging Face, with TS types included.\",\n        \"similar\": \"Hugging Face.js is a set of JavaScript libraries that allow for interaction with Hugging Face, complete with TypeScript types.\"\n    },\n    {\n        \"origin\": \"The Inference API is a platform that allows you to use more than 50k models through a public inference API, with scalability built-in.\",\n        \"similar\": \"The Inference API provides a platform with the capacity to access over 50k models through a public API, and scalability is already incorporated.\"\n    },\n    {\n        \"origin\": \"Inference Endpoints are a platform that allows you to easily deploy your model to production on dedicated, fully managed infrastructure.\",\n        \"similar\": \"Inference Endpoints provide a convenient way to deploy your model to production on dedicated, managed infrastructure.\"\n    },\n    {\n        \"origin\": \"Accelerate is a tool that allows you to easily train and use PyTorch models with multi-GPU, TPU, mixed-precision.\",\n        \"similar\": \"Accelerate facilitates the training and utilization of PyTorch models with multi-GPU, TPU, and mixed-precision in a straightforward manner.\"\n    },\n    {\n        \"origin\": \"Optimum is a tool that allows for fast training and inference of HF Transformers with easy-to-use hardware optimization tools.\",\n        \"similar\": \"Optimum is a platform that facilitates the swift training and application of HF Transformers with user-friendly hardware optimization capabilities.\"\n    },\n    {\n        \"origin\": \"Tokenizers are fast tokenizers optimized for both research and production.\",\n        \"similar\": \"Tokenizers that are designed to be both efficient and effective for both research and production purposes are available.\"\n    },\n    {\n        \"origin\": \"The Course is a platform that teaches about natural language processing using libraries from the HF ecosystem.\",\n        \"similar\": \"This Course provides instruction on natural language processing, utilizing libraries from the HF environment.\"\n    },\n    {\n        \"origin\": \"The Deep RL Course is a platform that teaches about deep reinforcement learning using libraries from the HF ecosystem.\",\n        \"similar\": \"HF ecosystem libraries are employed to instruct deep reinforcement learning in the Deep RL Course platform.\"\n    },\n    {\n        \"origin\": \"Evaluate is a tool that allows for easier and more standardized evaluation and reporting of model performance.\",\n        \"similar\": \"Assessing is a tool that facilitates simpler and more consistent assessment and reporting of model performance.\"\n    },\n    {\n        \"origin\": \"Tasks are a platform that provides demos, use cases, models, datasets, and more for ML tasks.\",\n        \"similar\": \"Tasks is a platform that furnishes demos, examples, models, datasets, and more for Machine Learning projects.\"\n    },\n    {\n        \"origin\": \"Datasets-server is an API that allows access to the contents, metadata, and basic statistics of all Hugging Face Hub datasets.\",\n        \"similar\": \"Datasets-server provides an API that enables users to access the data, metadata, and basic statistics of all Hugging Face Hub datasets.\"\n    },\n    {\n        \"origin\": \"Simulate is a tool that allows for the creation and sharing of simulation environments for intelligent agents and synthetic data generation.\",\n        \"similar\": \"Simulation is a platform that facilitates the building and dissemination of simulation settings for artificial agents and artificial data production.\"\n    },\n    {\n        \"origin\": \"Amazon SageMaker is a platform that allows for the training and deployment of Transformer models with Amazon SageMaker and Hugging Face DLCs.\",\n        \"similar\": \"Amazon SageMaker, in combination with Hugging Face DLCs, provides a platform for training and deploying Transformer models.\"\n    },\n    {\n        \"origin\": \"timm is a platform that provides state-of-the-art computer vision models, layers, utilities, optimizers, schedulers, data-loaders, augmentations, and training/evaluation scripts.\",\n        \"similar\": \"Timm is a platform furnishing cutting-edge computer vision models, layers, utilities, optimizers, schedulers, data-loaders, augmentations, and training/evaluation scripts.\"\n    },\n    {\n        \"origin\": \"Safetensors are a simple, safe way to store and distribute tensors.\",\n        \"similar\": \"Safetensors provide an uncomplicated and secure method of keeping and disseminating tensors.\"\n    },\n    {\n        \"origin\": \"LOAD_HU is a documentation page.\",\n        \"similar\": \"LOAD_HU is a web page devoted to providing information.\"\n    },\n    {\n        \"origin\": \"No, LOAD_HU doesn't exist in v2.10.0.\",\n        \"similar\": \"LOAD_HU is not a feature of v2.10.0.\"\n    },\n    {\n        \"origin\": \"You can find LOAD_HU documentation on the main version. Click [here](/docs/datasets/main/en/load_hu) to redirect to the main version of the documentation.\",\n        \"similar\": \"The LOAD_HU documentation can be located on the main version. Click [here](/docs/datasets/main/en/load_hu) to be taken to the main version of the documentation.\"\n    },\n    {\n        \"origin\": \"The purpose of the Datasets documentation is to provide information on how to use the Datasets library.\",\n        \"similar\": \"The objective of the Datasets library documentation is to furnish guidance on its utilization.\"\n    },\n    {\n        \"origin\": \"The different sections of the Datasets documentation are Get started, Tutorials, How-to guides, General usage, Audio, Vision, Text, Tabular, Dataset repository, Conceptual guides, and Reference.\",\n        \"similar\": \"The various parts of the Datasets documentation include: Introduction, Tutorials, How-to guides, General usage, Audio, Vision, Text, Tabular, Dataset repository, Conceptual guides, and Reference.\"\n    },\n    {\n        \"origin\": \"To use Datasets with JAX, you need to install `jax` and `jaxlib` as `pip install datasets[jax]`. Then you can get JAX arrays (numpy-like) by setting the format of the dataset to `jax`.\",\n        \"similar\": \"In order to utilize Datasets with JAX, you should install `jax` and `jaxlib` by running `pip install datasets[jax]`. Afterwards, you can obtain JAX arrays (similar to numpy) by setting the format of the dataset to `jax`.\"\n    },\n    {\n        \"origin\": \"A Dataset object is a wrapper of an Arrow table, which allows fast reads from arrays in the dataset to JAX arrays.\",\n        \"similar\": \"A Dataset object serves as an interface to an Arrow table, enabling rapid conversion of arrays in the dataset to JAX arrays.\"\n    },\n    {\n        \"origin\": \"When setting the format of a DatasetDict to jax, all the Datasets there will be formatted as jax.\",\n        \"similar\": \"When formatting a DatasetDict to jax, all the Datasets will be converted to the jax format.\"\n    },\n    {\n        \"origin\": \"To load the data in the device of your choice, you can specify the device argument, but note that jaxlib.xla_extension.Device is not supported as it\\u2019s not serializable with neither pickle not dill, so you\\u2019ll need to use its string identifier instead.\",\n        \"similar\": \"You can specify the device argument to load the data in the device of your choice, however, jaxlib.xla_extension.Device cannot be used as it is not serializable with either pickle or dill, so you must use its string identifier.\"\n    },\n    {\n        \"origin\": \"If the device argument is not provided to with_format then it will use the default device which is jax.devices()[0].\",\n        \"similar\": \"If the device argument is not specified for with_format, then the default device, jax.devices()[0], will be used.\"\n    },\n    {\n        \"origin\": \"By default, N-dimensional arrays are considered as nested lists.\",\n        \"similar\": \"N-dimensional arrays are typically viewed as nested lists.\"\n    },\n    {\n        \"origin\": \"A DeviceArray object is a numpy-like array, which is the output of a JAX formatted dataset.\",\n        \"similar\": \"A DeviceArray object is an array with a structure similar to numpy, produced as the result of a JAX formatted dataset.\"\n    },\n    {\n        \"origin\": \"ClassLabel data is properly converted to arrays.\",\n        \"similar\": \"The conversion of ClassLabel data to arrays is done correctly.\"\n    },\n    {\n        \"origin\": \"The Image and Audio feature types are also supported.\",\n        \"similar\": \"The Image and Audio types are also accommodated.\"\n    },\n    {\n        \"origin\": \"To use the Image feature type, you\\u2019ll need to install the vision extra as pip install datasets[vision].\",\n        \"similar\": \"You'll have to pip install datasets[vision] to be able to utilize the Image feature type.\"\n    },\n    {\n        \"origin\": \"No, it doesn't exist in version 2.10.0.\",\n        \"similar\": \"Version 2.10.0 does not have it.\"\n    },\n    {\n        \"origin\": \"You can find it on the main version of the documentation by clicking on the provided link.\",\n        \"similar\": \"You can access the main version of the documentation by clicking on the link given.\"\n    },\n    {\n        \"origin\": \"No, there is no alternative mentioned in the given document.\",\n        \"similar\": \"No other option is specified in the given document.\"\n    },\n    {\n        \"origin\": \"No, it doesn't exist in version 2.10.0.\",\n        \"similar\": \"Version 2.10.0 does not include it.\"\n    },\n    {\n        \"origin\": \"You can find it on the main version of the documentation by clicking on the provided link.\",\n        \"similar\": \"You can access the main version of the documentation by clicking on the link given.\"\n    },\n    {\n        \"origin\": \"The document doesn't mention any alternative to the UPLOAD_DATASE documentation page in version 2.10.0.\",\n        \"similar\": \"No alternative to the UPLOAD_DATASE documentation page in version 2.10.0 is mentioned in the document.\"\n    },\n    {\n        \"origin\": \"No, the documentation page STREA doesn't exist in version 2.10.0.\",\n        \"similar\": \"Version 2.10.0 does not contain the documentation page STREA.\"\n    },\n    {\n        \"origin\": \"You can find the documentation page STREA on the main version. Click on the provided link to redirect to the main version of the documentation.\",\n        \"similar\": \"The documentation page for STREA can be accessed by clicking on the link which will take you to the main version.\"\n    },\n    {\n        \"origin\": \"The Datasets documentation provides information on how to use and work with datasets in the Hugging Face library.\",\n        \"similar\": \"The Hugging Face library's Datasets documentation offers guidance on utilizing and manipulating datasets.\"\n    },\n    {\n        \"origin\": \"The Datasets documentation is divided into different sections such as Get started, Tutorials, How-to guides, Audio, Vision, Text, Tabular, Dataset repository, Conceptual guides, and Reference.\",\n        \"similar\": \"The Datasets documentation is broken down into various categories including Get going, Tutorials, How-to guides, Audio, Vision, Text, Tabular, Dataset library, Conceptual guides, and Reference.\"\n    },\n    {\n        \"origin\": \"Yes, Datasets supports access to cloud storage providers through a `fsspec` FileSystem implementations.\",\n        \"similar\": \"Datasets can be accessed from cloud storage providers using a `fsspec` FileSystem implementation.\"\n    },\n    {\n        \"origin\": \"Some examples of supported cloud storage providers in Datasets are Amazon S3, Google Cloud Storage, Azure Blob/DataLake, Dropbox, and Google Drive.\",\n        \"similar\": \"Examples of cloud storage providers that are compatible with Datasets include Amazon S3, Google Cloud Storage, Azure Blob/DataLake, Dropbox, and Google Drive.\"\n    },\n    {\n        \"origin\": \"You can load and save datasets from cloud storage in Datasets using the `fsspec` FileSystem implementations.\",\n        \"similar\": \"Datasets allows you to upload and store data sets in the cloud with the help of `fsspec` FileSystem implementations.\"\n    },\n    {\n        \"origin\": \"This guide is about how to save and load datasets with any cloud storage.\",\n        \"similar\": \"This guide provides instructions on how to store and retrieve datasets using any cloud storage.\"\n    },\n    {\n        \"origin\": \"The examples of cloud storage mentioned in this guide are S3, Google Cloud Storage, and Azure Blob Storage.\",\n        \"similar\": \"This guide mentions S3, Google Cloud Storage, and Azure Blob Storage as examples of cloud storage.\"\n    },\n    {\n        \"origin\": \"You can install the S3 FileSystem implementation by running the command \\\"pip install s3fs\\\".\",\n        \"similar\": \"You can get the S3 FileSystem implementation up and running by executing the command \\\"pip install s3fs\\\".\"\n    },\n    {\n        \"origin\": \"To use an anonymous connection, use \\\"anon=True\\\". Otherwise, include your \\\"aws_access_key_id\\\" and \\\"aws_secret_access_key\\\" whenever you are interacting with a private S3 bucket.\",\n        \"similar\": \"If you wish to keep your connection anonymous, set \\\"anon=True\\\". Otherwise, make sure to provide your \\\"aws_access_key_id\\\" and \\\"aws_secret_access_key\\\" when accessing a private S3 bucket.\"\n    },\n    {\n        \"origin\": \"You can create your FileSystem instance for S3 by importing s3fs and running \\\"fs = s3fs.S3FileSystem(**storage_options)\\\".\",\n        \"similar\": \"By importing s3fs and executing \\\"fs = s3fs.S3FileSystem(**storage_options)\\\", you can generate a FileSystem instance for S3.\"\n    },\n    {\n        \"origin\": \"You can install the Google Cloud Storage implementation by running the command \\\"conda install -c conda-forge gcsfs\\\" or \\\"pip install gcsfs\\\".\",\n        \"similar\": \"To install the Google Cloud Storage implementation, you can execute either \\\"conda install -c conda-forge gcsfs\\\" or \\\"pip install gcsfs\\\" command.\"\n    },\n    {\n        \"origin\": \"You can define your credentials for Google Cloud Storage by specifying \\\"token\\\": \\\"anon\\\" for an anonymous connection, or \\\"project\\\": \\\"my-google-project\\\" for using your default gcloud credentials or from the google metadata service.\",\n        \"similar\": \"You can set your credentials for Google Cloud Storage by indicating \\\"token\\\": \\\"anon\\\" for an anonymous connection, or \\\"project\\\": \\\"my-google-project\\\" to use your default gcloud credentials or from the google metadata service.\"\n    },\n    {\n        \"origin\": \"You can create your FileSystem instance for Google Cloud Storage by importing gcsfs and running \\\"fs = gcsfs.GCSFileSystem(**storage_options)\\\".\",\n        \"similar\": \"By importing gcsfs and executing \\\"fs = gcsfs.GCSFileSystem(**storage_options)\\\", you can generate a FileSystem instance for Google Cloud Storage.\"\n    },\n    {\n        \"origin\": \"You can install the Azure Blob Storage implementation by running the command \\\"conda install -c conda-forge adlfs\\\" or \\\"pip install adlfs\\\".\",\n        \"similar\": \"You can get the Azure Blob Storage implementation up and running by executing the command \\\"conda install -c conda-forge adlfs\\\" or \\\"pip install adlfs\\\".\"\n    },\n    {\n        \"origin\": \"You can define your credentials for Azure Blob Storage by specifying \\\"anon\\\": True for an anonymous connection, or \\\"account_name\\\": ACCOUNT_NAME and \\\"account_key\\\": ACCOUNT_KEY for the gen 2 filesystem, or \\\"tenant_id\\\": TENANT_ID, \\\"client_id\\\": CLIENT_ID, and \\\"client_secret\\\": CLIENT_SECRET for the gen 1 filesystem.\",\n        \"similar\": \"To set up your credentials for Azure Blob Storage, you can use \\\"anon\\\": True for an anonymous connection, or \\\"account_name\\\": ACCOUNT_NAME and \\\"account_key\\\": ACCOUNT_KEY for the gen 2 filesystem, or \\\"tenant_id\\\": TENANT_ID, \\\"client_id\\\": CLIENT_ID, and \\\"client_secret\\\": CLIENT_SECRET for the gen 1 filesystem.\"\n    },\n    {\n        \"origin\": \"You can create your FileSystem instance for Azure Blob Storage by importing adlfs and running \\\"fs = adlfs.AzureBlobFileSystem(**storage_options)\\\".\",\n        \"similar\": \"By importing adlfs and executing \\\"fs = adlfs.AzureBlobFileSystem(**storage_options)\\\", you can generate your own FileSystem instance for Azure Blob Storage.\"\n    },\n    {\n        \"origin\": \"You can download and prepare a dataset into a cloud storage by specifying a remote \\\"output_dir\\\" in \\\"download_and_prepare\\\". Don\\u2019t forget to use the previously defined \\\"storage_options\\\" containing your credentials to write into a private cloud storage.\",\n        \"similar\": \"By specifying a remote \\\"output_dir\\\" in \\\"download_and_prepare\\\", you can download and store a dataset into the cloud storage. Remember to include the \\\"storage_options\\\" with your credentials to enable writing into a private cloud storage.\"\n    },\n    {\n        \"origin\": \"The \\\"download_and_prepare\\\" method works in two steps: 1) it first downloads the raw data files (if any) in your local cache, and 2) then it generates the dataset in Arrow or Parquet format in your cloud storage by iterating over the raw data files.\",\n        \"similar\": \"The \\\"download_and_prepare\\\" method is a two-step process: it first stores the raw data files (if any) in the local cache, and then it iterates over these files to create the dataset in Arrow or Parquet format in the cloud storage.\"\n    },\n    {\n        \"origin\": \"You can load a dataset builder from the Hugging Face Hub by running \\\"builder = load_dataset_builder(\\\"imdb\\\")\\\" and then running \\\"builder.download_and_prepare(output_dir, storage_options=storage_options, file_format=\\\"parquet\\\")\\\".\",\n        \"similar\": \"To access a dataset builder from the Hugging Face Hub, execute \\\"builder = load_dataset_builder(\\\"imdb\\\")\\\" and then \\\"builder.download_and_prepare(output_dir, storage_options=storage_options, file_format=\\\"parquet\\\")\\\".\"\n    },\n    {\n        \"origin\": \"You can load a dataset builder using a loading script by running \\\"builder = load_dataset_builder(\\\"path/to/local/loading_script/loading_script.py\\\")\\\" and then running \\\"builder.download_and_prepare(output_dir, storage_options=storage_options, file_format=\\\"parquet\\\")\\\".\",\n        \"similar\": \"To load a dataset builder using a loading script, execute \\\"builder = load_dataset_builder(\\\"path/to/local/loading_script/loading_script.py\\\")\\\" and then \\\"builder.download_and_prepare(output_dir, storage_options=storage_options, file_format=\\\"parquet\\\")\\\".\"\n    },\n    {\n        \"origin\": \"You can use your own data files by following the instructions in the \\\"how to load local and remote files\\\" section of the guide.\",\n        \"similar\": \"By adhering to the directions in the \\\"how to load local and remote files\\\" section of the guide, you can employ your own data files.\"\n    },\n    {\n        \"origin\": \"It is recommended to save the files as compressed Parquet files to optimize I/O.\",\n        \"similar\": \"It is suggested to store the files as compressed Parquet files for optimized I/O.\"\n    },\n    {\n        \"origin\": \"Yes, the size of the shards can be specified using `max_shard_size`.\",\n        \"similar\": \"It is possible to determine the size of the shards by using `max_shard_size`.\"\n    },\n    {\n        \"origin\": \"Dask is a parallel computing library and it has a pandas-like API for working with larger than memory Parquet datasets in parallel. Dask can use multiple threads or processes on a single machine, or a cluster of machines to process data in parallel. Dask supports local data but also data from a cloud storage. It can be used to load a dataset saved as sharded Parquet files.\",\n        \"similar\": \"Dask is a parallel computing library that offers a pandas-like API for processing Parquet datasets that exceed memory capacity. It can be employed to utilize multiple threads or processes on a single machine, or a cluster of machines, and it is compatible with both local and cloud-based data. Furthermore, it is capable of loading datasets stored as sharded Parquet files.\"\n    },\n    {\n        \"origin\": \"Serialized datasets can be saved to cloud storage using `Dataset.save_to_disk()`.\",\n        \"similar\": \"`Dataset.save_to_disk()` can be used to store serialized datasets in cloud storage.\"\n    },\n    {\n        \"origin\": \"Files can be listed from a cloud storage using `fs.ls` with the FileSystem instance `fs`.\",\n        \"similar\": \"Using the FileSystem instance `fs`, `fs.ls` can be used to list files from a cloud storage.\"\n    },\n    {\n        \"origin\": \"Serialized datasets can be loaded from cloud storage using `Dataset.load_from_disk()`.\",\n        \"similar\": \"`Dataset.load_from_disk()` can be used to retrieve serialized datasets from cloud storage.\"\n    },\n    {\n        \"origin\": \"This document is the documentation for the Datasets library, providing information on how to use and process various types of datasets.\",\n        \"similar\": \"This document serves as a guide to the Datasets library, offering instructions on how to utilize and manipulate different types of datasets.\"\n    },\n    {\n        \"origin\": \"The different sections in this document include getting started, tutorials, how-to guides, general usage, audio, vision, text, tabular, dataset repository, conceptual guides, and reference.\",\n        \"similar\": \"This document is divided into sections such as initiation, tutorials, instructions, general utilization, sound, sight, written material, tabular data, dataset depository, conceptual instructions, and reference.\"\n    },\n    {\n        \"origin\": \"The audio section of the document covers how to load, process, and create audio datasets, including specific methods for resampling the sampling rate and using map() with audio datasets.\",\n        \"similar\": \"This document provides information on how to load, process, and generate audio datasets, with particular focus on techniques such as resampling the sampling rate and the utilization of map() with audio datasets.\"\n    },\n    {\n        \"origin\": \"The cast_column() function is used to cast a column to another feature to be decoded, and when used with the Audio feature, it can be used to resample the sampling rate.\",\n        \"similar\": \"The cast_column() function can be employed to transform a column into a different feature to be decoded, and when combined with the Audio feature, it can be used to alter the sampling rate.\"\n    },\n    {\n        \"origin\": \"Audio files are decoded and resampled on-the-fly to 16kHz.\",\n        \"similar\": \"The decoding and resampling of audio files is done in real time to 16kHz.\"\n    },\n    {\n        \"origin\": \"The map() function helps preprocess the entire dataset at once.\",\n        \"similar\": \"The map() function assists in preprocessing the whole dataset in one go.\"\n    },\n    {\n        \"origin\": \"For pretrained speech recognition models, you need to load a feature extractor and tokenizer and combine them in a processor.\",\n        \"similar\": \"You must combine a feature extractor, tokenizer, and processor to utilize pretrained speech recognition models.\"\n    },\n    {\n        \"origin\": \"For fine-tuned speech recognition models, you only need to load a processor.\",\n        \"similar\": \"A processor is all that is required to utilize a fine-tuned speech recognition model.\"\n    },\n    {\n        \"origin\": \"Include the audio column in the preprocessing function.\",\n        \"similar\": \"Incorporate the audio feature into the preprocessing routine.\"\n    },\n    {\n        \"origin\": \"No, the documentation page SHAR doesn't exist in version 2.10.0.\",\n        \"similar\": \"Version 2.10.0 does not have the SHAR documentation page.\"\n    },\n    {\n        \"origin\": \"You can find the documentation page SHAR on the main version. Click [here](/docs/datasets/main/en/shar) to redirect to the main version of the documentation.\",\n        \"similar\": \"The SHAR documentation page can be accessed from the main version. To go to the main version of the documentation, click [here](/docs/datasets/main/en/shar).\"\n    },\n    {\n        \"origin\": \"No, it doesn't exist in version 2.10.0.\",\n        \"similar\": \"Version 2.10.0 does not contain it.\"\n    },\n    {\n        \"origin\": \"It exists on the main version of the documentation. You can click on the provided link to redirect to the main version of the documentation.\",\n        \"similar\": \"The main version of the documentation can be accessed by clicking on the link.\"\n    },\n    {\n        \"origin\": \"A fingerprint in \\ud83e\\udd17 Datasets is a unique identifier for a dataset that is updated every time a transform is applied to it. It is computed by combining the fingerprint of the previous state and a hash of the latest transform applied.\",\n        \"similar\": \"A fingerprint in Datasets is a distinctive marker for a dataset that is modified each time a transformation is executed on it. It is generated by combining the fingerprint of the prior state and a hash of the most recent transformation carried out.\"\n    },\n    {\n        \"origin\": \"Fingerprints in \\ud83e\\udd17 Datasets are computed by hashing the function passed to `map` as well as the `map` parameters (`batch_size`, `remove_columns`, etc.).\",\n        \"similar\": \"The `map` parameters (`batch_size`, `remove_columns`, etc.) and the function passed to `map` are used to calculate Fingerprints in \\ud83e\\udd17 Datasets through hashing.\"\n    },\n    {\n        \"origin\": \"When a non-hashable transform is used in \\ud83e\\udd17 Datasets, a random fingerprint is assigned instead, and a warning is raised. The non-hashable transform is considered different from the previous transforms, and as a result, \\ud83e\\udd17 Datasets will recompute all the transforms.\",\n        \"similar\": \"When a non-hashable transform is used in \\ud83e\\udd17 Datasets, a unique identifier is assigned to it and a warning is issued. This transform is seen as distinct from the prior ones, thus \\ud83e\\udd17 Datasets will recalculate all the transforms.\"\n    },\n    {\n        \"origin\": \"One can check the hash of any Python object in \\ud83e\\udd17 Datasets using the `fingerprint.Hasher` module.\",\n        \"similar\": \"The `fingerprint.Hasher` module can be used to generate the hash of any Python object in \\ud83e\\udd17 Datasets.\"\n    },\n    {\n        \"origin\": \"The hash in \\ud83e\\udd17 Datasets is computed by dumping the object using a `dill` pickler and hashing the dumped bytes. The pickler recursively dumps all the variables used in the function, so any change made to an object used in the function will cause the hash to change.\",\n        \"similar\": \"The \\ud83e\\udd17 Datasets hash is generated by taking the object and serializing it with a `dill` pickler, then hashing the resulting bytes. As the pickler recursively dumps all the variables used in the function, any alteration to an object used in the function will cause the hash to be altered.\"\n    },\n    {\n        \"origin\": \"To avoid recomputing all the transforms in \\ud83e\\udd17 Datasets, one should ensure that their transforms are serializable with pickle or dill. Additionally, when caching is disabled, one should use `Dataset.save_to_disk()` to save their transformed dataset, or it will be deleted once the session ends.\",\n        \"similar\": \"In order to prevent having to recalculate all the transformations in \\ud83e\\udd17 Datasets, it is necessary to make sure that the transformations are serializable with pickle or dill. Furthermore, when caching is disabled, `Dataset.save_to_disk()` should be used to save the transformed dataset, or else it will be lost when the session ends.\"\n    },\n    {\n        \"origin\": \"There are several methods for creating and sharing an audio dataset, including creating it from local files in python using Dataset.push_to_hub().\",\n        \"similar\": \"Using python, one can create an audio dataset from local files and share it with Dataset.push_to_hub(), among other methods.\"\n    },\n    {\n        \"origin\": \"Yes, you can share your audio dataset with your team or anyone in the community by creating a dataset repository on the Hugging Face Hub.\",\n        \"similar\": \"It is possible to make your audio dataset available to your team or anyone in the community by setting up a dataset repository on the Hugging Face Hub.\"\n    },\n    {\n        \"origin\": \"The `AudioFolder` builder is a no-code solution for quickly creating an audio dataset with several thousand audio files.\",\n        \"similar\": \"The `AudioFolder` builder is a fast way to generate an audio dataset with thousands of audio files without any coding.\"\n    },\n    {\n        \"origin\": \"The alternative method for creating an audio dataset is by writing a loading script, which is for advanced users and requires more effort and coding.\",\n        \"similar\": \"For those who are more experienced and willing to put in extra effort, writing a loading script is another way to create an audio dataset.\"\n    },\n    {\n        \"origin\": \"You can control access to your dataset by requiring users to share their contact information first, using the Gated datasets feature.\",\n        \"similar\": \"Requiring users to provide their contact information before accessing your dataset can be done through the Gated datasets feature.\"\n    },\n    {\n        \"origin\": \"You can load your own dataset using the paths to your audio files and the `cast_column()` function to take a column of audio file paths and cast it to the `Audio` feature.\",\n        \"similar\": \"You can use the `cast_column()` function to take a column of audio file paths and cast it to the `Audio` feature, thereby enabling you to load your own dataset with the paths to your audio files.\"\n    },\n    {\n        \"origin\": \"You can upload your dataset to the Hugging Face Hub using `Dataset.push_to_hub()`.\",\n        \"similar\": \"You can push your dataset to the Hugging Face Hub by utilizing `Dataset.push_to_hub()`.\"\n    },\n    {\n        \"origin\": \"The metadata file for the `AudioFolder` builder should include a `file_name` column to link an audio file to its metadata.\",\n        \"similar\": \"A `file_name` column should be included in the metadata file for the `AudioFolder` builder to link an audio file to its corresponding metadata.\"\n    },\n    {\n        \"origin\": \"The directory should have a `data` folder with subfolders for each split (`train`, `test`, etc.), and each split folder should contain the audio files and a metadata file with a `file_name` column specifying the relative path to each audio file.\",\n        \"similar\": \"A `data` folder should be present in the directory, with subfolders for each split (e.g. `train`, `test`) containing the audio files and a metadata file with a `file_name` column that indicates the relative path of each audio file.\"\n    },\n    {\n        \"origin\": \"If the audio dataset doesn't have any associated metadata, `AudioFolder` will create a `label` column based on the directory name (language id).\",\n        \"similar\": \"`AudioFolder` will generate a `label` column based on the directory name (language id) in the absence of any associated metadata in the audio dataset.\"\n    },\n    {\n        \"origin\": \"Yes, in that case the `file_name` column in the metadata file should be a full relative path to the audio file, not just its filename.\",\n        \"similar\": \"In that situation, the `file_name` column in the metadata file should contain the full relative path to the audio file, not just its name.\"\n    },\n    {\n        \"origin\": \"The script should define the dataset's splits and configurations, handle downloading and generating the dataset examples, and support streaming mode. The script should be named after the dataset folder and located in the same directory as the `data` folder.\",\n        \"similar\": \"The script, named after the dataset folder and located in the same directory as the `data` folder, should be responsible for defining the dataset's splits and configurations, downloading and generating the dataset examples, and providing streaming mode.\"\n    },\n    {\n        \"origin\": \"The purpose of the my_dataset.py file is not specified in the given document.\",\n        \"similar\": \"The given document does not provide any information about the purpose of the my_dataset.py file.\"\n    },\n    {\n        \"origin\": \"The data folder includes train.tar.gz, test.tar.gz, and metadata.csv.\",\n        \"similar\": \"The data folder contains train.tar.gz, test.tar.gz, and metadata.csv as its contents.\"\n    },\n    {\n        \"origin\": \"You will learn how to create a streamable dataset, create a dataset builder class, create dataset configurations, add dataset metadata, download and define the dataset splits, generate the dataset, and upload the dataset to the Hub.\",\n        \"similar\": \"You will be taught how to make a streamable collection of data, devise a dataset constructor class, devise dataset setups, include dataset metadata, download and specify the dataset divisions, generate the dataset, and post the dataset to the Hub.\"\n    },\n    {\n        \"origin\": \"The base class for datasets generated from a dictionary generator is GeneratorBasedBuilder.\",\n        \"similar\": \"GeneratorBasedBuilder serves as the basis for datasets created from a dictionary generator.\"\n    },\n    {\n        \"origin\": \"The three methods to help create a dataset within the GeneratorBasedBuilder class are _info, _split_generators, and _generate_examples.\",\n        \"similar\": \"The GeneratorBasedBuilder class provides three approaches for constructing a dataset, namely _info, _split_generators, and _generate_examples.\"\n    },\n    {\n        \"origin\": \"To create different configurations for a dataset, use the BuilderConfig class to create a subclass of your dataset.\",\n        \"similar\": \"By subclassing your dataset, you can use the BuilderConfig class to generate various configurations for the dataset.\"\n    },\n    {\n        \"origin\": \"You can define your configurations in the `BUILDER_CONFIGS` class variable inside the GeneratorBasedBuilder class.\",\n        \"similar\": \"You can specify your configurations within the `BUILDER_CONFIGS` class variable of the GeneratorBasedBuilder class.\"\n    },\n    {\n        \"origin\": \"You can load a specific configuration using load_dataset() by specifying the dataset name, configuration name, and split.\",\n        \"similar\": \"By providing the dataset name, configuration name, and split, you can employ load_dataset() to load a particular configuration.\"\n    },\n    {\n        \"origin\": \"You can add metadata to your dataset by defining a DatasetInfo class with information such as description, features, homepage, license, and citation.\",\n        \"similar\": \"By creating a DatasetInfo class containing details such as description, features, homepage, license, and citation, you can add metadata to your dataset.\"\n    },\n    {\n        \"origin\": \"Some important features to include in the DatasetInfo class for an audio loading script are the Audio feature and the sampling rate of the dataset.\",\n        \"similar\": \"Including the Audio feature and the sampling rate of the dataset are two essential elements to be included in the DatasetInfo class for an audio loading script.\"\n    },\n    {\n        \"origin\": \"The purpose of the `_generate_examples` method is to yield examples as (key, example) tuples.\",\n        \"similar\": \"The `_generate_examples` method is designed to produce (key, example) pairs as output.\"\n    },\n    {\n        \"origin\": \"The `load_dataset` function loads a dataset from the Hub.\",\n        \"similar\": \"The `load_dataset` function fetches a dataset from the Hub.\"\n    },\n    {\n        \"origin\": \"TAR archives can be extracted locally using the `extract` method in non-streaming mode and passing the local path to the extracted archive directory to the next step in `gen_kwargs`.\",\n        \"similar\": \"The `extract` method in non-streaming mode can be used to extract TAR archives locally, with the local path to the extracted archive directory passed to the next step in `gen_kwargs`.\"\n    },\n    {\n        \"origin\": \"The DownloadManager class is used to download and extract TAR archives in non-streaming mode.\",\n        \"similar\": \"The DownloadManager class facilitates the downloading and unpacking of TAR archives without streaming.\"\n    },\n    {\n        \"origin\": \"The `download_and_extract()` method should be used to download the metadata file specified in `_METADATA_URL`.\",\n        \"similar\": \"The `_METADATA_URL` should be used with the `download_and_extract()` method to download the metadata file.\"\n    },\n    {\n        \"origin\": \"The SplitGenerator class is used to organize the audio files and metadata in each split.\",\n        \"similar\": \"The SplitGenerator class is employed to arrange the audio files and metadata for each split.\"\n    },\n    {\n        \"origin\": \"The standard names for the splits are `Split.TRAIN`, `Split.TEST`, and `SPLIT.Validation`.\",\n        \"similar\": \"The designations for the splits are usually `Split.TRAIN`, `Split.TEST`, and `SPLIT.Validation`.\"\n    },\n    {\n        \"origin\": \"The `_generate_examples` method is used to access and yield TAR files sequentially, and to associate the metadata in `metadata_path` with the audio files in the TAR file.\",\n        \"similar\": \"The `_generate_examples` method is employed to sequentially access and yield TAR files, and to link the metadata from `metadata_path` with the audio files in the TAR file.\"\n    },\n    {\n        \"origin\": \"The files yielded by iter_archive() are in the form of a tuple of (path, f) where path is a relative path to a file inside the archive, and f is the file object itself.\",\n        \"similar\": \"Iter_archive() produces a tuple of (path, f) as output, where path is a relative path to a file within the archive and f is the file object.\"\n    },\n    {\n        \"origin\": \"To get the full path to the locally extracted file, you need to join the path of the directory where the archive is extracted to and the relative audio file path. This can be done using the os.path.join() function.\",\n        \"similar\": \"To obtain the complete route to the locally extracted file, you must combine the directory path where the archive is extracted and the relative audio file path by using the os.path.join() function.\"\n    },\n    {\n        \"origin\": \"The _generate_examples() method yields examples by iterating over the audio files and metadata, setting the audio feature and the path to the extracted file, and then yielding the result.\",\n        \"similar\": \"By looping through the audio files and metadata, the _generate_examples() method produces examples by assigning the audio feature and the path to the extracted file, and then outputting the result.\"\n    },\n    {\n        \"origin\": \"Dataset streaming allows working with a dataset without downloading it. The data is streamed as you iterate over the dataset.\",\n        \"similar\": \"Streaming datasets enable the ability to work with the data without needing to download it, as the iteration over the dataset is done in real-time.\"\n    },\n    {\n        \"origin\": \"Dataset streaming is helpful when you don't want to wait for an extremely large dataset to download, the dataset size exceeds the amount of available disk space on your computer, or you want to quickly explore just a few samples of a dataset.\",\n        \"similar\": \"Streaming datasets is beneficial when you don't want to wait for a huge dataset to download, the size of the dataset surpasses the disk space available on your computer, or you need to quickly analyze a few samples of a dataset.\"\n    },\n    {\n        \"origin\": \"The benefits of using dataset streaming include faster exploration of datasets, the ability to work with larger datasets without needing to download them, and the ability to work with datasets even if you don't have enough disk space to store them.\",\n        \"similar\": \"Dataset streaming offers a range of advantages, such as expedited investigation of datasets, the capacity to handle larger datasets without downloading them, and the possibility of working with datasets even if you don't possess enough disk storage.\"\n    },\n    {\n        \"origin\": \"To use dataset streaming, you can iterate over the dataset and the data will be streamed as you go. This is especially useful for exploring a dataset or working with a large dataset that you don't want to download.\",\n        \"similar\": \"By utilizing dataset streaming, you can traverse through the dataset and the data will be streamed as you progress. This is especially advantageous when investigating a dataset or managing a large dataset that you don't wish to download.\"\n    },\n    {\n        \"origin\": \"Dataset streaming is available for some datasets, but not all. You should check the documentation for the specific dataset you are interested in to see if streaming is available.\",\n        \"similar\": \"It is not guaranteed that streaming is available for all datasets, so you should consult the documentation of the particular dataset you are interested in to find out if streaming is an option.\"\n    },\n    {\n        \"origin\": \"The dataset is 1.2 terabytes.\",\n        \"similar\": \"The dataset is of 1.2 terabytes in size.\"\n    },\n    {\n        \"origin\": \"You can stream a dataset by setting `streaming=True` in `load_dataset()` function.\",\n        \"similar\": \"By setting `streaming=True` in the `load_dataset()` function, streaming of a dataset can be enabled.\"\n    },\n    {\n        \"origin\": \"Yes, you can use dataset streaming to work with a local dataset without doing any conversion.\",\n        \"similar\": \"It is possible to work with a local dataset without needing to convert it, by using dataset streaming.\"\n    },\n    {\n        \"origin\": \"Dataset streaming is especially helpful when you don\\u2019t want to wait for an extremely large local dataset to be converted to Arrow, the converted files size would exceed the amount of available disk space on your computer, or you want to quickly explore just a few samples of a dataset.\",\n        \"similar\": \"Streaming datasets can be particularly useful when you don't want to wait for a huge local dataset to be converted to Arrow, as the resulting file size may exceed the disk capacity of your computer, or you just want to take a quick look at a few samples of the dataset.\"\n    },\n    {\n        \"origin\": \"An IterableDataset is a special type of dataset created when loading a dataset in streaming mode.\",\n        \"similar\": \"A IterableDataset is a specific dataset generated when loading a dataset in streaming mode.\"\n    },\n    {\n        \"origin\": \"An IterableDataset is useful for iterative jobs like training a model.\",\n        \"similar\": \"A IterableDataset is advantageous for iterative tasks such as training a model.\"\n    },\n    {\n        \"origin\": \"Yes, you can shuffle an IterableDataset with `IterableDataset.shuffle()`.\",\n        \"similar\": \"It is possible to randomize the order of an IterableDataset using the `IterableDataset.shuffle()` method.\"\n    },\n    {\n        \"origin\": \"You can use `IterableDataset.set_epoch()` in between epochs to tell the dataset what epoch you\\u2019re on.\",\n        \"similar\": \"You can call `IterableDataset.set_epoch()` to indicate the current epoch when switching between epochs.\"\n    },\n    {\n        \"origin\": \"You can split your dataset using `IterableDataset.take()` or `IterableDataset.skip()` methods.\",\n        \"similar\": \"You can divide your dataset by employing the `IterableDataset.take()` and `IterableDataset.skip()` methods.\"\n    },\n    {\n        \"origin\": \"Yes, you can use `interleave_datasets()` method to combine an `IterableDataset` with other datasets.\",\n        \"similar\": \"It is possible to merge an `IterableDataset` with other datasets by using the `interleave_datasets()` method.\"\n    },\n    {\n        \"origin\": \"You can use methods like `IterableDataset.rename_column()`, `IterableDataset.remove_columns()`, and `IterableDataset.cast()` to modify the columns of a dataset.\",\n        \"similar\": \"Methods such as `IterableDataset.rename_column()`, `IterableDataset.remove_columns()`, and `IterableDataset.cast()` can be employed to alter the columns of a dataset.\"\n    },\n    {\n        \"origin\": \"Use `IterableDataset.rename_column()` with the name of the original column and the new column name.\",\n        \"similar\": \"Rename the original column to a new one using `IterableDataset.rename_column()`.\"\n    },\n    {\n        \"origin\": \"Use `IterableDataset.remove_columns()` with the name of the column(s) to remove.\",\n        \"similar\": \"You can use `IterableDataset.remove_columns()` to eliminate the column(s) by specifying its name.\"\n    },\n    {\n        \"origin\": \"Use `IterableDataset.cast()` with your new `Features` as its argument. Use `IterableDataset.cast_column()` to change the feature type of just one column.\",\n        \"similar\": \"The `IterableDataset.cast()` should be used with the new `Features` as its argument, while `IterableDataset.cast_column()` is to be used for altering the feature type of a single column.\"\n    },\n    {\n        \"origin\": \"Use `IterableDataset.map()` to apply a processing function to each example in a dataset, independently or in batches. This function can even create new rows and columns.\",\n        \"similar\": \"`IterableDataset.map()` can be used to apply a processing function to each example in a dataset, either individually or in batches. This function can even generate new columns and rows.\"\n    },\n    {\n        \"origin\": \"IterableDataset can be integrated into a training loop by first shuffling the dataset.\",\n        \"similar\": \"The IterableDataset can be incorporated into a training loop by first randomly rearranging the dataset.\"\n    },\n    {\n        \"origin\": \"The code to shuffle the dataset in Pytorch is:\\n```\\nseed, buffer_size = 42, 10_000\\ndataset = dataset.shuffle(seed, buffer_size=buffer_size)\\n```\",\n        \"similar\": \"To randomize the dataset in Pytorch, the code is:\\nseed, buffer_size = 42, 10_000\\ndataset = dataset.randomize(seed, buffer_size=buffer_size)\"\n    },\n    {\n        \"origin\": \"The code to create a simple training loop and start training in Pytorch is:\\n```\\nimport torch\\nfrom torch.utils.data import DataLoader\\nfrom transformers import AutoModelForMaskedLM, DataCollatorForLanguageModeling\\nfrom tqdm import tqdm\\ndataset = dataset.with_format(\\\"torch\\\")\\ndataloader = DataLoader(dataset, collate_fn=DataCollatorForLanguageModeling(tokenizer))\\ndevice = 'cuda' if torch.cuda.is_available() else 'cpu' \\nmodel = AutoModelForMaskedLM.from_pretrained(\\\"distilbert-base-uncased\\\")\\nmodel.train().to(device)\\noptimizer = torch.optim.AdamW(params=model.parameters(), lr=1e-5)\\nfor epoch in range(3):\\n    dataset.set_epoch(epoch)\\n    for i, batch in enumerate(tqdm(dataloader, total=5)):\\n        if i == 5:\\n            break\\n        batch = {k: v.to(device) for k, v in batch.items()}\\n        outputs = model(**batch)\\n        loss = outputs[0]\\n        loss.backward()\\n        optimizer.step()\\n        optimizer.zero_grad()\\n        if i % 10 == 0:\\n            print(f\\\"loss: {loss}\\\")\\n```\",\n        \"similar\": \"To create and initiate a training loop in Pytorch, the following code can be used:\\n\\nimport torch\\nfrom torch.utils.data import DataLoader\\nfrom transformers import AutoModelForMaskedLM, DataCollatorForLanguageModeling\\nfrom tqdm import tqdm\\ndataset = dataset.with_format(\\\"torch\\\")\\ndataloader = DataLoader(dataset, collate_fn=DataCollatorForLanguageModeling(tokenizer))\\ndevice = 'cuda' if torch.cuda.is_available() else 'cpu' \\nmodel = AutoModelForMaskedLM.from_pretrained(\\\"distilbert-base-uncased\\\")\\nmodel.train().to(device)\\noptimizer = torch.optim.AdamW(params=model.parameters(), lr=1e-5)\\n\\nfor epoch in range(3):\\n    dataset.set_epoch(epoch)\\n    for i, batch in enumerate(tqdm(dataloader, total=5)):\\n        if i == 5:\\n            break\\n        batch = {k: v.to(device) for k, v in batch.items()}\\n        outputs = model(**batch)\\n        loss = outputs[0]\\n        loss.backward()\\n        optimizer.step()\\n        optimizer\"\n    },\n    {\n        \"origin\": \"The Datasets documentation provides information on how to use the Datasets library, including tutorials, how-to guides, and reference materials.\",\n        \"similar\": \"The Datasets library is explained in the documentation, which includes tutorials, how-to guides, and reference materials for utilization.\"\n    },\n    {\n        \"origin\": \"The Datasets documentation covers topics such as audio, vision, text, and tabular data, as well as dataset creation and sharing.\",\n        \"similar\": \"The Datasets manual covers topics like audio, vision, text, tabular data, and how to create and share datasets.\"\n    },\n    {\n        \"origin\": \"The \\\"All about metrics\\\" section provides information on how to use NLP metrics in the Datasets library, including how to load and compute metrics for evaluating model performance.\",\n        \"similar\": \"The \\\"All about metrics\\\" section gives instructions on how to utilize NLP metrics in the Datasets library, such as loading and calculating metrics to assess model effectiveness.\"\n    },\n    {\n        \"origin\": \"No, the \\\"Metrics\\\" section is deprecated in the Datasets library. Users should refer to the library \\\"Evaluate\\\" for information on using metrics.\",\n        \"similar\": \"The \\\"Metrics\\\" section of the Datasets library is no longer available; users should look to the \\\"Evaluate\\\" library for guidance on metrics.\"\n    },\n    {\n        \"origin\": \"The load_metric() function is used to download and import the metric loading script from GitHub, which contains information about the metric such as its citation, homepage, and description.\",\n        \"similar\": \"The load_metric() function is employed to obtain and incorporate the metric loading script from GitHub, which holds data about the metric including its citation, homepage, and explanation.\"\n    },\n    {\n        \"origin\": \"The Metric object stores the predictions and references, which are needed to compute the metric values. It is stored as an Apache Arrow table, allowing for lazy computation of the metric and making it easier to gather all the predictions in a distributed setting.\",\n        \"similar\": \"The Metric object is stored as an Apache Arrow table, which holds the predictions and references required to calculate the metric values. This setup allows for the metric to be computed lazily, making it simpler to accumulate all the predictions in a distributed environment.\"\n    },\n    {\n        \"origin\": \"\\ud83e\\udd17 Datasets only computes the final metric on the first node, while the predictions and references are computed and provided to the metric separately for each node. These are temporarily stored in an Apache Arrow table, avoiding cluttering the GPU or CPU memory. Once it has gathered all the predictions and references, Metric.compute() will perform the final metric evaluation.\",\n        \"similar\": \"The final metric is only computed on the first node, while the predictions and references are computed and stored in an Apache Arrow table, avoiding the usage of GPU or CPU memory. Then, Metric.compute() will be used to perform the evaluation when all the predictions and references have been gathered.\"\n    },\n    {\n        \"origin\": \"No, it doesn't exist in v2.10.0.\",\n        \"similar\": \"It is not available in version 2.10.0.\"\n    },\n    {\n        \"origin\": \"It exists on the main version and can be accessed by clicking on the provided link (/docs/datasets/main/en/how_to_metric).\",\n        \"similar\": \"The main version has it and it can be reached by tapping the link (/docs/datasets/main/en/how_to_metric) given.\"\n    },\n    {\n        \"origin\": \"LOAD_HU is a documentation page.\",\n        \"similar\": \"LOAD_HU is a web page for providing information.\"\n    },\n    {\n        \"origin\": \"No, LOAD_HU doesn't exist in version 2.10.0.\",\n        \"similar\": \"LOAD_HU is not available in version 2.10.0.\"\n    },\n    {\n        \"origin\": \"You can find LOAD_HU documentation on the main version. Click on the provided link to redirect to the main version of the documentation.\",\n        \"similar\": \"By following the link, you can access the LOAD_HU documentation on the main version.\"\n    },\n    {\n        \"origin\": \"The Datasets documentation provides information on how to use the Datasets library.\",\n        \"similar\": \"The documentation for the Datasets library outlines how to utilize it.\"\n    },\n    {\n        \"origin\": \"The Datasets library can be used with TensorFlow, PyTorch, and JAX.\",\n        \"similar\": \"TensorFlow, PyTorch, and JAX are compatible with the Datasets library.\"\n    },\n    {\n        \"origin\": \"The \\\"Use with JAX\\\" section provides information on how to use the Datasets library with the JAX library, with a focus on training JAX models.\",\n        \"similar\": \"This section outlines the usage of the Datasets library with JAX, particularly for training JAX models.\"\n    },\n    {\n        \"origin\": \"To use the code examples in the \\\"Use with JAX\\\" section, the user must have the jax and jaxlib libraries installed.\",\n        \"similar\": \"In order to utilize the code examples in the \\\"Use with JAX\\\" section, the user must have the jax and jaxlib libraries installed.\"\n    },\n    {\n        \"origin\": \"By default, datasets return regular Python objects: integers, floats, strings, lists, etc., and string and binary objects are unchanged.\",\n        \"similar\": \"Datasets usually return regular Python objects such as integers, floats, strings, and lists, while string and binary objects remain unchanged by default.\"\n    },\n    {\n        \"origin\": \"To get JAX arrays (numpy-like) instead, you can set the format of the dataset to `jax`.\",\n        \"similar\": \"To obtain JAX arrays (similar to numpy), you can set the format of the dataset to `jax`.\"\n    },\n    {\n        \"origin\": \"A Dataset object is a wrapper of an Arrow table, which allows fast reads from arrays in the dataset to JAX arrays.\",\n        \"similar\": \"A Dataset object acts as a container for an Arrow table, enabling quick conversion of arrays in the dataset to JAX arrays.\"\n    },\n    {\n        \"origin\": \"When setting the format of a `DatasetDict` to `jax`, all the `Dataset`s there will be formatted as `jax`.\",\n        \"similar\": \"By setting the `DatasetDict` to `jax`, all the `Dataset`s within it will be formatted in `jax` style.\"\n    },\n    {\n        \"origin\": \"The formatting is not applied until you actually access the data. So if you want to get a JAX array out of a dataset, you\\u2019ll need to access the data first, otherwise the format will remain the same.\",\n        \"similar\": \"In order to get a JAX array out of a dataset, you must access the data first, as the formatting will not be applied until then. Otherwise, the format will stay the same.\"\n    },\n    {\n        \"origin\": \"To load the data in the device of your choice, you can specify the `device` argument.\",\n        \"similar\": \"You can specify the `device` argument to upload the data to the device of your choice.\"\n    },\n    {\n        \"origin\": \"If the `device` argument is not provided to `with_format` then it will use the default device which is `jax.devices()[0]`.\",\n        \"similar\": \"If `device` argument is not specified for `with_format`, it will resort to the default device, which is `jax.devices()[0]`.\"\n    },\n    {\n        \"origin\": \"By default, N-dimensional arrays are considered as nested lists.\",\n        \"similar\": \"N-dimensional arrays are usually thought of as nested lists.\"\n    },\n    {\n        \"origin\": \"ClassLabel data is properly converted to arrays.\",\n        \"similar\": \"The data of ClassLabel is effectively transformed into arrays.\"\n    },\n    {\n        \"origin\": \"String and binary objects are unchanged, while the Image and Audio feature types are also supported.\",\n        \"similar\": \"The Image and Audio feature types are supported, and String and binary objects remain the same.\"\n    },\n    {\n        \"origin\": \"No, the INSTALLATIO page doesn't exist in version 2.10.0.\",\n        \"similar\": \"The INSTALLATIO page is not available in version 2.10.0.\"\n    },\n    {\n        \"origin\": \"You can find the INSTALLATIO page on the main version of the documentation. Click on the provided link to redirect to the main version.\",\n        \"similar\": \"The main version of the documentation contains the INSTALLATION page. Click the link to be directed there.\"\n    },\n    {\n        \"origin\": \"No, there is no alternative to access the INSTALLATIO page in version 2.10.0. You need to redirect to the main version of the documentation.\",\n        \"similar\": \"You cannot access the INSTALLATION page in version 2.10.0, so you must refer to the main version of the documentation.\"\n    },\n    {\n        \"origin\": \"UPLOAD_DATASE is a documentation page.\",\n        \"similar\": \"UPLOAD_DATASE is a page containing documentation.\"\n    },\n    {\n        \"origin\": \"No, UPLOAD_DATASE doesn't exist in v2.10.0.\",\n        \"similar\": \"UPLOAD_DATASE is not available in version 2.10.0.\"\n    },\n    {\n        \"origin\": \"You can find UPLOAD_DATASE documentation on the main version. Click [here](/docs/datasets/main/en/upload_datase) to redirect to the main version of the documentation.\",\n        \"similar\": \"The UPLOAD_DATASE documentation can be located on the main version. Click [here](/docs/datasets/main/en/upload_datase) to be taken to the main version of the documentation.\"\n    },\n    {\n        \"origin\": \"Yes, Datasets supports access to cloud storage providers through a `fsspec` FileSystem implementations.\",\n        \"similar\": \"Datasets provides access to cloud storage services via `fsspec` FileSystem implementations.\"\n    },\n    {\n        \"origin\": \"Yes, you can save and load datasets from any cloud storage in a Pythonic way.\",\n        \"similar\": \"It is possible to store and retrieve datasets from any cloud storage using Python.\"\n    },\n    {\n        \"origin\": \"Some examples of supported cloud storage providers are listed in the table provided in the documentation.\",\n        \"similar\": \"Examples of cloud storage providers that are compatible with the documentation are shown in the table.\"\n    },\n    {\n        \"origin\": \"You can use the `load_dataset_builder` function with the `data_files` parameter and specify the path to your data files. Then, you can call the `download_and_prepare` method on the returned builder object, passing in the output directory and storage options.\",\n        \"similar\": \"The `load_dataset_builder` function can be used with the `data_files` parameter to indicate the location of the data files. Subsequently, the `download_and_prepare` method can be called on the returned builder object, with the output directory and storage options being specified.\"\n    },\n    {\n        \"origin\": \"It is recommended to save datasets as compressed Parquet files to optimize I/O. You can specify this format by setting `file_format=\\\"parquet\\\"` when calling the `download_and_prepare` method.\",\n        \"similar\": \"It is suggested to save datasets in compressed Parquet format to maximize I/O. You can select this format by setting `file_format=\\\"parquet\\\"` when using the `download_and_prepare` method.\"\n    },\n    {\n        \"origin\": \"You can specify the maximum shard size by setting the `max_shard_size` parameter when calling the `download_and_prepare` method. The default value is 500MB.\",\n        \"similar\": \"By calling the `download_and_prepare` method, you can set the `max_shard_size` parameter to specify the maximum shard size, which is 500MB by default.\"\n    },\n    {\n        \"origin\": \"You can use the `dask.dataframe.read_parquet` function to load a dataset saved as sharded Parquet files in Dask. You can specify the path to the files and storage options as parameters.\",\n        \"similar\": \"Dask's `dask.dataframe.read_parquet` function allows you to load a dataset saved as sharded Parquet files, providing the path to the files and storage options as parameters.\"\n    },\n    {\n        \"origin\": \"You can use the `save_to_disk` method on a `Dataset` object to save it to cloud storage. You need to specify the path to the output directory and storage options.\",\n        \"similar\": \"The `Dataset` object can be saved to cloud storage by utilizing the `save_to_disk` method. It requires the output directory path and storage options to be specified.\"\n    },\n    {\n        \"origin\": \"You can use the `ls` method on a FileSystem instance to list files from a cloud storage. You need to specify the path to the directory as a parameter.\",\n        \"similar\": \"The `ls` method of a FileSystem instance can be employed to list files from a cloud storage, with the path to the directory needing to be specified as a parameter.\"\n    },\n    {\n        \"origin\": \"You can use the `load_from_disk` function from the `datasets` module to load a serialized dataset from cloud storage. You need to specify the path to the directory and storage options as parameters.\",\n        \"similar\": \"The `datasets` module provides the `load_from_disk` function, which can be used to retrieve a serialized dataset from cloud storage. All you need to do is to pass the directory path and storage options as parameters.\"\n    },\n    {\n        \"origin\": \"The purpose of this document is to provide documentation for the Datasets library.\",\n        \"similar\": \"This document is intended to supply information about the Datasets library.\"\n    },\n    {\n        \"origin\": \"The different sections in this document include Get started, Tutorials, How-to guides, General usage, Audio, Vision, Text, Tabular, Dataset repository, Conceptual guides, and Reference.\",\n        \"similar\": \"This document contains sections such as Introduction, Tutorials, Step-by-step instructions, General information, Audio, Visual, Textual, Tabular, Dataset collection, Conceptual instructions, and Documentation.\"\n    },\n    {\n        \"origin\": \"You can process audio data using this library by following the specific methods mentioned in the guide, such as resampling the sampling rate and using map() with audio datasets.\",\n        \"similar\": \"By following the instructions in the guide, such as resampling the sampling rate and utilizing map() with audio datasets, you can manipulate audio data with this library.\"\n    },\n    {\n        \"origin\": \"It is a guide on how to process any type of dataset.\",\n        \"similar\": \"This guide provides instructions on how to handle any kind of dataset.\"\n    },\n    {\n        \"origin\": \"The function is used to cast a column to another feature to be decoded.\",\n        \"similar\": \"This function is employed to transform a column into another feature type for decoding.\"\n    },\n    {\n        \"origin\": \"When you use this function with the [Audio](/docs/datasets/v2.10.0/en/package_reference/main_classes#datasets.Audio) feature, you can resample the sampling rate.\",\n        \"similar\": \"By utilizing the [Audio](/docs/datasets/v2.10.0/en/package_reference/main_classes#datasets.Audio) feature with this function, you can change the sampling rate.\"\n    },\n    {\n        \"origin\": \"Audio files are decoded and resampled on-the-fly, so the next time you access an example, the audio file is resampled to 16kHz.\",\n        \"similar\": \"The audio files are decoded and re-rendered in real-time, thus the next time you access an example, it will be resampled to 16kHz.\"\n    },\n    {\n        \"origin\": \"The function helps preprocess your entire dataset at once.\",\n        \"similar\": \"The function assists in the preprocessing of the whole dataset in one go.\"\n    },\n    {\n        \"origin\": \"You need to load a feature extractor and tokenizer and combine them in a `processor`.\",\n        \"similar\": \"It is essential to obtain a feature extractor and tokenizer and join them in a `processor`.\"\n    },\n    {\n        \"origin\": \"You only need to load a `processor`.\",\n        \"similar\": \"It is only necessary to incorporate a `processor`.\"\n    },\n    {\n        \"origin\": \"Include the `audio` column to ensure you\\u2019re actually resampling the audio data.\",\n        \"similar\": \"Ensure that the `audio` column is included in order to actually resample the audio data.\"\n    },\n    {\n        \"origin\": \"No, it doesn't exist in version 2.10.0.\",\n        \"similar\": \"Version 2.10.0 does not include it.\"\n    },\n    {\n        \"origin\": \"You can find it on the main version of the documentation. Click on the provided link to redirect to the main version.\",\n        \"similar\": \"The main version of the documentation can be accessed by clicking on the link provided.\"\n    },\n    {\n        \"origin\": \"The cache in Datasets is a storage system that stores previously downloaded and processed datasets, allowing for faster access to the data without the need to download or process it again.\",\n        \"similar\": \"Datasets' cache is a storage system that keeps previously obtained and processed datasets, thus making it possible to access the data quickly without having to download or process it again.\"\n    },\n    {\n        \"origin\": \"The cache in Datasets improves efficiency by storing previously downloaded and processed datasets, allowing for faster access to the data without the need to download or process it again. This saves time and resources when working with large datasets.\",\n        \"similar\": \"By keeping previously downloaded and processed datasets in the Datasets cache, it is possible to access the data quickly without having to download or process it again, thus saving time and resources when dealing with large datasets.\"\n    },\n    {\n        \"origin\": \"\\ud83e\\udd17 Datasets assigns a fingerprint to the cache file, which keeps track of the current state of a dataset. The initial fingerprint is computed using a hash from the Arrow table, or a hash of the Arrow files if the dataset is on disk. Subsequent fingerprints are computed by combining the fingerprint of the previous state, and a hash of the latest transform applied.\",\n        \"similar\": \"A fingerprint is assigned to the cache file of the dataset by Datasets, which monitors the current state of the dataset. The initial fingerprint is calculated through a hash of the Arrow table or a hash of the Arrow files if the dataset is stored on disk. Subsequent fingerprints are generated by combining the fingerprint of the prior state and a hash of the most recent transformation applied.\"\n    },\n    {\n        \"origin\": \"Transforms are any of the processing methods from the How-to Process guides such as Dataset.map() or Dataset.shuffle().\",\n        \"similar\": \"Any of the processing techniques from the How-to Process guides, such as Dataset.map() or Dataset.shuffle(), can be referred to as Transforms.\"\n    },\n    {\n        \"origin\": \"The fingerprint of a dataset is updated by hashing the function passed to map as well as the map parameters (batch_size, remove_columns, etc.). The hash is computed by dumping the object using a dill pickler and hashing the dumped bytes.\",\n        \"similar\": \"The hash of a dataset is recalculated by hashing the map function and its parameters (batch_size, remove_columns, etc.) with the help of a dill pickler which dumps the object into bytes.\"\n    },\n    {\n        \"origin\": \"When a non-hashable transform is used, \\ud83e\\udd17 Datasets uses a random fingerprint instead and raises a warning. The non-hashable transform is considered different from the previous transforms, and \\ud83e\\udd17 Datasets will recompute all the transforms.\",\n        \"similar\": \"If a non-hashable transform is applied, \\ud83e\\udd17 Datasets will substitute it with a random fingerprint and give a warning. This transform is distinct from the ones used before, and \\ud83e\\udd17 Datasets will recalculate all the transforms.\"\n    },\n    {\n        \"origin\": \"One can check the hash of any Python object using the fingerprint.Hasher.\",\n        \"similar\": \"The fingerprint.Hasher can be used to generate the hash of any Python object.\"\n    },\n    {\n        \"origin\": \"Transforms should be serializable with pickle or dill to avoid recomputing all the transforms in \\ud83e\\udd17 Datasets.\",\n        \"similar\": \"Serializing the transforms with pickle or dill can help to prevent the need for recalculating all the transforms in \\ud83e\\udd17 Datasets.\"\n    },\n    {\n        \"origin\": \"You can create an audio dataset by following the instructions provided in the \\\"Create an audio dataset\\\" section of the documentation.\",\n        \"similar\": \"By adhering to the directions in the \\\"Create an audio dataset\\\" part of the documentation, you can assemble an audio dataset.\"\n    },\n    {\n        \"origin\": \"Yes, you can share your dataset with your team or anyone in the community by creating a dataset repository on the Hugging Face Hub.\",\n        \"similar\": \"You can make a dataset repository on the Hugging Face Hub to share your dataset with your team or anyone in the community.\"\n    },\n    {\n        \"origin\": \"You can load a dataset using the `load_dataset` function provided by the `datasets` module.\",\n        \"similar\": \"The `datasets` module offers a `load_dataset` function which can be utilized to import a dataset.\"\n    },\n    {\n        \"origin\": \"There are three methods for creating and sharing an audio dataset: \\n   1. Create an audio dataset from local files in python with Dataset.push_to_hub(). \\n   2. Create an audio dataset repository with the AudioFolder builder. \\n   3. Create an audio dataset by writing a loading script.\",\n        \"similar\": \"1. Utilizing Dataset.push_to_hub() in python, one can generate an audio dataset from local files. \\n2. The AudioFolder builder can be used to construct an audio dataset repository. \\n3. A loading script can be written to produce an audio dataset.\"\n    },\n    {\n        \"origin\": \"You can control access to your dataset by requiring users to share their contact information first. You can enable this feature on the Hub by following the Gated datasets guide.\",\n        \"similar\": \"Requiring users to provide their contact information before they can access your dataset can be enabled on the Hub by following the Gated datasets guide.\"\n    },\n    {\n        \"origin\": \"You can load your own dataset using the paths to your audio files. Use the cast_column() function to take a column of audio file paths, and cast it to the Audio feature. Then upload the dataset to the Hugging Face Hub using Dataset.push_to_hub().\",\n        \"similar\": \"You can upload your own dataset to the Hugging Face Hub using the Dataset.push_to_hub() function by taking a column of audio file paths and casting it to the Audio feature with the cast_column() method.\"\n    },\n    {\n        \"origin\": \"AudioFolder is a dataset builder designed to quickly load an audio dataset with several thousand audio files without requiring you to write any code. It automatically loads any additional information about your dataset, such as transcription, speaker accent, or speaker intent, as long as you include this information in a metadata file (metadata.csv/metadata.jsonl).\",\n        \"similar\": \"AudioFolder is a dataset builder that eliminates the need for coding to quickly load a dataset with thousands of audio files. It will automatically incorporate any extra data such as transcription, accent, or intent, provided that it is included in a metadata file (metadata.csv/metadata.jsonl).\"\n    },\n    {\n        \"origin\": \"It can be helpful to store your metadata as a jsonl file if the data columns contain a more complex format (like a list of floats) to avoid parsing errors or reading complex values as strings. The metadata file should include a file_name column to link an audio file to its metadata.\",\n        \"similar\": \"Storing your metadata as a jsonl file may be beneficial if the data columns have a more intricate format (e.g. a list of floats) in order to prevent any parsing mistakes or misinterpreting complex values as strings. The metadata file should include a file_name column to associate an audio file with its metadata.\"\n    },\n    {\n        \"origin\": \"`audiofolder` is a loading method that can be used to load audio datasets involving multiple splits.\",\n        \"similar\": \"`audiofolder` is a technique for loading audio datasets that involve multiple splits.\"\n    },\n    {\n        \"origin\": \"You can load a dataset using `audiofolder` by specifying the data directory in `data_dir` parameter while calling `load_dataset()`.\",\n        \"similar\": \"By providing the data directory in `data_dir` parameter when calling `load_dataset()`, you can load a dataset using `audiofolder`.\"\n    },\n    {\n        \"origin\": \"The dataset directory for audio datasets involving multiple splits should have the following structure:\\n```\\ndata/train/first_train_audio_file.mp3\\ndata/train/second_train_audio_file.mp3\\ndata/test/first_test_audio_file.mp3\\ndata/test/second_test_audio_file.mp3\\n```\",\n        \"similar\": \"The directory structure for audio datasets with multiple splits should be as follows:\\ndata/train/first_train_audio_file.mp3\\ndata/train/second_train_audio_file.mp3\\ndata/test/first_test_audio_file.mp3\\ndata/test/second_test_audio_file.mp3\"\n    },\n    {\n        \"origin\": \"If audio files are not located right next to a metadata file, the `file_name` column should be a full relative path to an audio file, not just its filename.\",\n        \"similar\": \"If the audio files are not situated in the same directory as the metadata file, the `file_name` column should contain the full relative path to the audio file, not just its name.\"\n    },\n    {\n        \"origin\": \"`AudioFolder` automatically infers the class labels of the dataset based on the directory name.\",\n        \"similar\": \"`AudioFolder` can deduce the class labels of the dataset from the directory name automatically.\"\n    },\n    {\n        \"origin\": \"You can load a dataset using `AudioFolder` by specifying the data directory in `data_dir` parameter while calling `load_dataset()`.\",\n        \"similar\": \"By providing the data directory in `data_dir` parameter when calling `load_dataset()`, you can load a dataset using `AudioFolder`.\"\n    },\n    {\n        \"origin\": \"If all audio files are contained in a single directory or if they are not on the same level of directory structure, the `label` column won\\u2019t be added automatically. If you need it, set `drop_labels=False` explicitly.\",\n        \"similar\": \"If the audio files are not all located in the same directory or are not at the same level of the directory structure, the `label` column will not be added automatically. To include it, you must explicitly set `drop_labels=False`.\"\n    },\n    {\n        \"origin\": \"Yes, `audiofolder` can be used to load all splits of audio datasets found in Kaggle competitions if the metadata features are the same for each split.\",\n        \"similar\": \"It is possible to utilize `audiofolder` to load all the divisions of audio datasets from Kaggle competitions if the metadata features remain consistent for each split.\"\n    },\n    {\n        \"origin\": \"The directory structure for creating a dataset loading script should have a `my_dataset.py` file, a `data` folder (optional), and a `README.md` file.\",\n        \"similar\": \"The directory for creating a dataset loading script should feature a `my_dataset.py` file, an optional `data` folder, and a `README.md` file.\"\n    },\n    {\n        \"origin\": \"Users without a lot of disk space can use the dataset without downloading it, and users can preview a dataset in the dataset viewer.\",\n        \"similar\": \"Those with limited storage capacity can access the dataset without downloading it, and they can view a preview of the dataset in the dataset viewer.\"\n    },\n    {\n        \"origin\": \"In addition to learning how to create a streamable dataset, you\\u2019ll also learn how to create a dataset builder class, create dataset configurations, add dataset metadata, download and define the dataset splits, generate the dataset, and upload the dataset to the Hub.\",\n        \"similar\": \"Apart from understanding how to form a streamable dataset, you will be taught to construct a dataset builder class, arrange dataset configurations, attach dataset metadata, download and determine the dataset divisions, fabricate the dataset, and upload the dataset to the Hub.\"\n    },\n    {\n        \"origin\": \"The base class for datasets generated from a dictionary generator is GeneratorBasedBuilder.\",\n        \"similar\": \"The GeneratorBasedBuilder serves as the foundation for datasets created by a dictionary generator.\"\n    },\n    {\n        \"origin\": \"The three methods to help create a dataset within the GeneratorBasedBuilder class are _info, _split_generators, and _generate_examples.\",\n        \"similar\": \"Three methods to build a dataset using the GeneratorBasedBuilder class are _info, _split_generators, and _generate_examples.\"\n    },\n    {\n        \"origin\": \"To create different configurations for a dataset, use the BuilderConfig class to create a subclass of your dataset.\",\n        \"similar\": \"Subclass your dataset by using the BuilderConfig class to generate various configurations.\"\n    },\n    {\n        \"origin\": \"The dataset comprises a certain number of hours of transcribed speech data.\",\n        \"similar\": \"The dataset consists of a certain number of hours of transcribed speech recordings.\"\n    },\n    {\n        \"origin\": \"Users can specify a configuration to load in `load_dataset()` by setting the configuration name.\",\n        \"similar\": \"`load_dataset()` allows users to select a configuration by specifying its name.\"\n    },\n    {\n        \"origin\": \"Information that can be included in the DatasetInfo class includes a description of the dataset, features specifying the dataset column types, a link to the dataset homepage, the license type, and a BibTeX citation of the dataset.\",\n        \"similar\": \"The DatasetInfo class can comprise a description of the dataset, features indicating the dataset column types, a link to the dataset homepage, the license type, and a BibTeX citation of the dataset.\"\n    },\n    {\n        \"origin\": \"The next step is to download the dataset and define the splits.\",\n        \"similar\": \"The next move is to acquire the dataset and delineate the divisions.\"\n    },\n    {\n        \"origin\": \"Use the download() method.\",\n        \"similar\": \"Employ the download() technique.\"\n    },\n    {\n        \"origin\": \"The download() method returns the path to the local file/archive.\",\n        \"similar\": \"The download() method yields the location of the local file/archive.\"\n    },\n    {\n        \"origin\": \"The download() method accepts a relative path to a file inside a Hub dataset repository, a URL to a file hosted somewhere else, or a (nested) list or dictionary of file names or URLs.\",\n        \"similar\": \"The download() method can take a path to a file within a Hub dataset repository, a URL to a file located elsewhere, or a (nested) list or dictionary of filenames or URLs as argument.\"\n    },\n    {\n        \"origin\": \"Use the SplitGenerator to organize the audio files and sentence prompts in each split, and name each split with a standard name like: Split.TRAIN, Split.TEST, and SPLIT.Validation.\",\n        \"similar\": \"Organize the audio files and sentence prompts in each split with the SplitGenerator, and label each split with a standard title such as Split.TRAIN, Split.TEST, and SPLIT.Validation.\"\n    },\n    {\n        \"origin\": \"In the gen_kwargs parameter, specify the file path to the prompts_path and path_to_clips. For audio_files, use iter_archive() to iterate over the audio files in the TAR archive.\",\n        \"similar\": \"In the gen_kwargs parameter, provide the file path for prompts_path and path_to_clips. To iterate over the audio files in the TAR archive, employ iter_archive() for audio_files.\"\n    },\n    {\n        \"origin\": \"The generate_examples method actually generates the samples in the dataset.\",\n        \"similar\": \"The method of generate_examples actually produces the samples in the dataset.\"\n    },\n    {\n        \"origin\": \"The generate_examples method accepts the prompts_path, path_to_clips, and audio_files from the previous method as arguments.\",\n        \"similar\": \"The generate_examples method takes in the prompts_path, path_to_clips, and audio_files from the preceding method as parameters.\"\n    },\n    {\n        \"origin\": \"Files inside TAR archives are accessed and yielded sequentially using iter_archive().\",\n        \"similar\": \"Iter_archive() is employed to sequentially access and yield files inside TAR archives.\"\n    },\n    {\n        \"origin\": \"The purpose of the `_generate_examples` method is to yield examples as (key, example) tuples.\",\n        \"similar\": \"The `_generate_examples` method yields (key, example) tuples with the intent of providing examples.\"\n    },\n    {\n        \"origin\": \"The `load_dataset` function loads a dataset from the Hub.\",\n        \"similar\": \"The `load_dataset` function retrieves a dataset from the Hub.\"\n    },\n    {\n        \"origin\": \"TAR archives can be extracted locally using the `extract()` method, but only in non-streaming mode. The `iter_archive()` method can be used to iterate over the files within the archive.\",\n        \"similar\": \"The `extract()` method can be used to locally unpack TAR archives, however, it only works in non-streaming mode. Alternatively, `iter_archive()` can be used to iterate through the files within the archive.\"\n    },\n    {\n        \"origin\": \"The `download_and_extract()` method is used to download a metadata file specified in `_METADATA_URL` and extract it in non-streaming mode.\",\n        \"similar\": \"The `download_and_extract()` method is employed to acquire the metadata file indicated in `_METADATA_URL` and unpack it without streaming.\"\n    },\n    {\n        \"origin\": \"The `SplitGenerator` is used to organize the audio files and metadata in each split and name each split with a standard name like: `Split.TRAIN`, `Split.TEST`, and `SPLIT.Validation`.\",\n        \"similar\": \"The `SplitGenerator` is employed to arrange the audio files and metadata of each split and label each split with a standard nomenclature such as: `Split.TRAIN`, `Split.TEST`, and `SPLIT.Validation`.\"\n    },\n    {\n        \"origin\": \"The `iter_archive()` method is used to iterate over the audio files in the TAR archives and enables streaming for the dataset.\",\n        \"similar\": \"The `iter_archive()` method allows for iteration over the audio files in the TAR archives and provides streaming capabilities for the dataset.\"\n    },\n    {\n        \"origin\": \"The `_generate_examples` method accepts `local_extracted_archive`, `audio_files`, `metadata_path`, and `path_to_clips` as arguments and yields the metadata associated with the audio files in the TAR file.\",\n        \"similar\": \"The `_generate_examples` method takes `local_extracted_archive`, `audio_files`, `metadata_path`, and `path_to_clips` as inputs and produces the metadata related to the audio files in the TAR file.\"\n    },\n    {\n        \"origin\": \"The yielded tuple in iter_archive() method is of the format (`path`, `f`), where `path` is a relative path to a file inside the archive, and `f` is the file object itself.\",\n        \"similar\": \"A tuple is yielded by the iter_archive() method which has the form (`path`, `f`), with `path` being a relative path to a file within the archive, and `f` representing the file object.\"\n    },\n    {\n        \"origin\": \"To get the full path to the locally extracted file, we need to join the path of the directory where the archive is extracted to and the relative audio file path.\",\n        \"similar\": \"In order to obtain the complete route to the locally extracted file, we must combine the directory path where the archive is decompressed and the relative path of the audio file.\"\n    },\n    {\n        \"origin\": \"A tabular dataset is a generic dataset used to describe any data stored in rows and columns, where the rows represent an example and the columns represent a feature (can be continuous or categorical).\",\n        \"similar\": \"A dataset in tabular form is a generic representation of any data that is structured into rows and columns, with each row representing an instance and each column representing a feature (which can be either continuous or categorical).\"\n    },\n    {\n        \"origin\": \"To load tabular data, you can refer to the Load tabular data section in the Datasets documentation.\",\n        \"similar\": \"For guidance on how to load tabular data, please refer to the Load tabular data section in the Datasets documentation.\"\n    },\n    {\n        \"origin\": \"Tabular datasets can be loaded and created from CSV files.\",\n        \"similar\": \"CSV files can be used to generate and load tabular datasets.\"\n    },\n    {\n        \"origin\": \"Multiple CSV files can be loaded using Datasets by passing them as a list to the `data_files` parameter.\",\n        \"similar\": \"Datasets can load multiple CSV files by providing them as a list to the `data_files` parameter.\"\n    },\n    {\n        \"origin\": \"Yes, specific CSV files can be mapped to train and test splits.\",\n        \"similar\": \"It is possible to assign particular CSV files to the training and testing divisions.\"\n    },\n    {\n        \"origin\": \"Remote CSV files can be loaded using Datasets by passing the URLs instead.\",\n        \"similar\": \"Datasets can be used to load remote CSV files by providing the URLs.\"\n    },\n    {\n        \"origin\": \"Yes, zipped CSV files can be loaded using Datasets.\",\n        \"similar\": \"Datasets can be used to load zipped CSV files.\"\n    },\n    {\n        \"origin\": \"The `from_pandas()` method can be used to load datasets from Pandas DataFrames.\",\n        \"similar\": \"The `from_pandas()` method facilitates loading datasets from Pandas DataFrames.\"\n    },\n    {\n        \"origin\": \"The `splits` parameter can be used to specify the name of the dataset split when loading datasets from Pandas DataFrames.\",\n        \"similar\": \"The `splits` argument can be employed to indicate the name of the dataset division when obtaining datasets from Pandas DataFrames.\"\n    },\n    {\n        \"origin\": \"If the dataset doesn't look as expected when loading from Pandas DataFrames, the dataset features should be explicitly specified.\",\n        \"similar\": \"In case the dataset does not appear as anticipated when being imported from Pandas DataFrames, its attributes should be explicitly defined.\"\n    },\n    {\n        \"origin\": \"Datasets are typically stored in databases accessed with SQL queries.\",\n        \"similar\": \"Databases are usually the place where datasets are kept and can be accessed using SQL queries.\"\n    },\n    {\n        \"origin\": \"A dataset can be created from a SQLite database by connecting to the database, querying for the data needed, and creating a dataset out of it.\",\n        \"similar\": \"A dataset can be constructed by establishing a connection to a SQLite database, extracting the desired data, and forming it into a dataset.\"\n    },\n    {\n        \"origin\": \"You can load a table from a SQL database using \\ud83e\\udd17 Datasets by passing the table name and URI to the `from_sql()` method.\",\n        \"similar\": \"\\ud83e\\udd17 Datasets allows you to load a table from a SQL database by providing the table name and URI to the `from_sql()` method.\"\n    },\n    {\n        \"origin\": \"Yes, you can use \\ud83e\\udd17 Datasets to filter data from a loaded SQL table using the `filter()` method.\",\n        \"similar\": \"You can use \\ud83e\\udd17 Datasets to sift through data from a SQL table that has been loaded by employing the `filter()` method.\"\n    },\n    {\n        \"origin\": \"Yes, it is possible to load a dataset from a SQL query instead of an entire table using \\ud83e\\udd17 Datasets by passing your query and URI to the `from_sql()` method.\",\n        \"similar\": \"It is feasible to load data from a SQL query rather than a complete table into \\ud83e\\udd17 Datasets by providing the `from_sql()` method with your query and URI.\"\n    },\n    {\n        \"origin\": \"Yes, you can connect and load a dataset from a PostgreSQL database using \\ud83e\\udd17 Datasets by setting up your PostgreSQL database and using the `from_sql()` method to load a dataset from a table or query.\",\n        \"similar\": \"You can link and import a dataset from a PostgreSQL database with \\ud83e\\udd17 Datasets by configuring your PostgreSQL database and using the `from_sql()` method to bring in a dataset from a table or query.\"\n    },\n    {\n        \"origin\": \"The quickstart is intended for developers who are ready to dive into the code and see an example of how to integrate \\ud83e\\udd17 Datasets into their model training workflow.\",\n        \"similar\": \"Developers who are eager to explore the code and gain insight into incorporating \\ud83e\\udd17 Datasets into their model training process can take advantage of the quickstart.\"\n    },\n    {\n        \"origin\": \"For beginners, it is recommended to start with the tutorials where they can get a more thorough introduction.\",\n        \"similar\": \"It is suggested that those just starting out begin with the tutorials to gain a more comprehensive understanding.\"\n    },\n    {\n        \"origin\": \"After signing up, users can collaborate on models, datasets, and Spaces, get faster examples with accelerated inference, and switch between documentation themes.\",\n        \"similar\": \"Once registered, users can work together on models, datasets and Spaces, get quicker results with accelerated inference, and alternate between different documentation themes.\"\n    },\n    {\n        \"origin\": \"The sampling rate used in the audio preprocessing function is 16000.\",\n        \"similar\": \"The audio preprocessing function utilizes a sampling rate of 16000.\"\n    },\n    {\n        \"origin\": \"The preprocess_function() function is used to preprocess the audio array.\",\n        \"similar\": \"The audio array is preprocessed by the preprocess_function() function.\"\n    },\n    {\n        \"origin\": \"You can use the rename_column() function to rename the intent_class column to labels.\",\n        \"similar\": \"The rename_column() function can be employed to alter the intent_class column to labels.\"\n    },\n    {\n        \"origin\": \"You can use the set_format() function to set the dataset format to torch and specify the columns you want to format.\",\n        \"similar\": \"The set_format() function can be employed to configure the dataset to torch format and indicate the columns desired to be formatted.\"\n    },\n    {\n        \"origin\": \"A feature extractor is needed to preprocess image datasets in computer vision.\",\n        \"similar\": \"A tool for extracting features is necessary for preprocessing image datasets in computer vision.\"\n    },\n    {\n        \"origin\": \"Albumentations, imgaug, Kornia, and torchvision can be used for data augmentation.\",\n        \"similar\": \"Data augmentation can be achieved by using Albumentations, imgaug, Kornia, and torchvision.\"\n    },\n    {\n        \"origin\": \"You can use the with_transform() function to apply data augmentations on-the-fly.\",\n        \"similar\": \"The with_transform() function can be utilized to implement data augmentations in real-time.\"\n    },\n    {\n        \"origin\": \"You can wrap the dataset in DataLoader using torch.utils.data.DataLoader and create a collate function to collate the samples into batches.\",\n        \"similar\": \"Using torch.utils.data.DataLoader, you can package the dataset and craft a collate function to group the samples into batches.\"\n    },\n    {\n        \"origin\": \"The Microsoft Research Paraphrase Corpus (MRPC) dataset is used for training a model to determine whether a pair of sentences mean the same thing.\",\n        \"similar\": \"A model is trained using the Microsoft Research Paraphrase Corpus (MRPC) dataset to decide if two sentences have the same meaning.\"\n    },\n    {\n        \"origin\": \"The BERT model and its corresponding tokenizer from the \\ud83e\\udd17 Transformers library are used for training on the MRPC dataset.\",\n        \"similar\": \"The MRPC dataset is trained with the BERT model and its tokenizer from the \\ud83e\\udd17 Transformers library.\"\n    },\n    {\n        \"origin\": \"The tokenizer generates three new columns in the dataset: input_ids, token_type_ids, and an attention_mask.\",\n        \"similar\": \"The tokenizer creates three additional columns in the dataset: input_ids, token_type_ids, and attention_mask.\"\n    },\n    {\n        \"origin\": \"The encode function is used to tokenize batches of examples in a dataset to speed up processing.\",\n        \"similar\": \"The encode function tokenizes batches of examples in a dataset to expedite processing.\"\n    },\n    {\n        \"origin\": \"The expected input name in BertForSequenceClassification is \\\"labels\\\".\",\n        \"similar\": \"The anticipated label name for BertForSequenceClassification is \\\"labels\\\".\"\n    },\n    {\n        \"origin\": \"For PyTorch, use the set_format() function to set the dataset format to \\\"torch\\\" and specify the columns to format. For TensorFlow, use the to_tf_dataset() function and a data collator to set the dataset format to be compatible with TensorFlow.\",\n        \"similar\": \"To use PyTorch, the set_format() function should be employed to change the dataset format to \\\"torch\\\" and the columns to be formatted should be specified. For TensorFlow, the to_tf_dataset() function and a data collator should be used to make the dataset format compatible with TensorFlow.\"\n    },\n    {\n        \"origin\": \"You can find an end-to-end example of how to train a model on a text dataset in the \\ud83e\\udd17 Transformers text classification guide.\",\n        \"similar\": \"A comprehensive illustration of how to train a model on a text dataset can be found in the \\ud83e\\udd17 Transformers text classification guide.\"\n    },\n    {\n        \"origin\": \"To learn more about \\ud83e\\udd17 Datasets core concepts, you can read our Conceptual Guides.\",\n        \"similar\": \"You can gain a better understanding of \\ud83e\\udd17 Datasets core concepts by reading our Conceptual Guides.\"\n    },\n    {\n        \"origin\": \"You can find the Conceptual Guides for \\ud83e\\udd17 Datasets by clicking on the link provided in the document.\",\n        \"similar\": \"By accessing the link in the document, you can locate the Conceptual Guides for \\ud83e\\udd17 Datasets.\"\n    },\n    {\n        \"origin\": \"The document does not provide information on the Quickstart for \\ud83e\\udd17 Datasets.\",\n        \"similar\": \"No information regarding the Quickstart for \\ud83e\\udd17 Datasets is contained in the document.\"\n    },\n    {\n        \"origin\": \"Yes, according to the document, \\ud83e\\udd17 Datasets supports Audio, Vision, and NLP.\",\n        \"similar\": \"As per the document, Audio, Vision, and NLP are all supported by Datasets.\"\n    },\n    {\n        \"origin\": \"The document does not provide information on what to do after reading the Conceptual Guides for \\ud83e\\udd17 Datasets.\",\n        \"similar\": \"No instruction is given in the document on what action to take after going through the Conceptual Guides for \\ud83e\\udd17 Datasets.\"\n    },\n    {\n        \"origin\": \"You can find the installation guide for \\ud83e\\udd17 Datasets by clicking on the link provided in the document.\",\n        \"similar\": \"By accessing the link given in the document, you can get the installation guide for \\ud83e\\udd17 Datasets.\"\n    },\n    {\n        \"origin\": \"The purpose of the Datasets documentation is to provide information on how to use and work with datasets.\",\n        \"similar\": \"The goal of the Datasets documentation is to furnish guidance on how to employ and manipulate datasets.\"\n    },\n    {\n        \"origin\": \"Some of the topics covered in the Datasets documentation include getting started, tutorials, how-to guides, audio, vision, text, tabular data, and the dataset repository.\",\n        \"similar\": \"The Datasets documentation covers a range of topics, such as introductory information, tutorials, how-to guides, audio, vision, text, tabular data, and the dataset repository.\"\n    },\n    {\n        \"origin\": \"The two types of dataset objects mentioned in the documentation are regular Dataset and IterableDataset.\",\n        \"similar\": \"The documentation mentions two varieties of dataset objects, namely regular Dataset and IterableDataset.\"\n    },\n    {\n        \"origin\": \"A Dataset in Hugging Face provides fast random access to the rows and memory-mapping so that loading even large datasets only uses a relatively small amount of device memory.\",\n        \"similar\": \"A Dataset from Hugging Face offers quick random access to the rows and memory-mapping, thus allowing even large datasets to be loaded with only a limited amount of device memory.\"\n    },\n    {\n        \"origin\": \"An IterableDataset in Hugging Face allows you to access and use the dataset without waiting for it to download completely, even for really, really big datasets that won\\u2019t even fit on disk or in memory.\",\n        \"similar\": \"Hugging Face's IterableDataset enables you to access and utilize the dataset without the need to wait for it to finish downloading, even for extremely large datasets that are too large to fit in memory or on disk.\"\n    },\n    {\n        \"origin\": \"You can load a Dataset in Hugging Face using the `load_dataset()` function and specifying the name of the dataset and the split you want to load.\",\n        \"similar\": \"The `load_dataset()` function of Hugging Face can be used to load a Dataset by providing the name of the dataset and the split required.\"\n    },\n    {\n        \"origin\": \"You can manipulate and interact with the data stored inside a Dataset object in Hugging Face. It contains columns of data, and each column can be a different type of data. You can access examples from the dataset using indexing or slicing.\",\n        \"similar\": \"You can interact with and manipulate the data stored in a Hugging Face Dataset object, which consists of columns of various data types. You can also retrieve examples from the dataset through indexing or slicing.\"\n    },\n    {\n        \"origin\": \"An IterableDataset is a type of dataset that progressively iterates over a dataset one example at a time, so you don\\u2019t have to wait for the whole dataset to download before you can use it.\",\n        \"similar\": \"A IterableDataset is a type of dataset that iterates over the data one example at a time, allowing you to start using the dataset without having to wait for the entire download.\"\n    },\n    {\n        \"origin\": \"The behavior of an IterableDataset is different from a regular Dataset. You don\\u2019t get random access to examples in an IterableDataset. Instead, you should iterate over its elements, for example, by calling next(iter()) or with a for loop to return the next item from the IterableDataset.\",\n        \"similar\": \"The way an IterableDataset behaves is unlike that of a regular Dataset; you cannot access its examples randomly. To get the next item from the IterableDataset, you must iterate over its elements, for instance, by calling next(iter()) or using a for loop.\"\n    },\n    {\n        \"origin\": \"You can return a subset of the dataset with a specific number of examples in it with IterableDataset.take().\",\n        \"similar\": \"IterableDataset.take() allows you to retrieve a subset of the dataset with a specified number of examples.\"\n    },\n    {\n        \"origin\": \"This document is a guide to learn how to preprocess a Dataset or an IterableDataset.\",\n        \"similar\": \"This document serves as a tutorial on preprocessing a Dataset or IterableDataset.\"\n    },\n    {\n        \"origin\": \"A Dataset is a class that is used to load and preprocess data.\",\n        \"similar\": \"A Dataset class is employed to load and prepare data.\"\n    },\n    {\n        \"origin\": \"An IterableDataset is a subclass of Dataset that allows for iterating over the data.\",\n        \"similar\": \"A Dataset that is Iterable is a type of Dataset that enables cycling through the data.\"\n    },\n    {\n        \"origin\": \"You can learn how to preprocess a Dataset by following the Process guide.\",\n        \"similar\": \"By adhering to the Process guide, one can gain knowledge on how to preprocess a Dataset.\"\n    },\n    {\n        \"origin\": \"You can learn how to preprocess an IterableDataset by following the Stream guide.\",\n        \"similar\": \"By following the Stream guide, one can acquire knowledge on how to preprocess an IterableDataset.\"\n    },\n    {\n        \"origin\": \"You can load a dataset from the Hub by following the Load a dataset from the Hub link.\",\n        \"similar\": \"You can access a dataset from the Hub by clicking on the \\\"Load a dataset from the Hub\\\" link.\"\n    },\n    {\n        \"origin\": \"The next steps are not specified in the given document.\",\n        \"similar\": \"The document does not provide any further instructions.\"\n    },\n    {\n        \"origin\": \"The purpose of the Datasets documentation is to provide information and guidance on how to use the Datasets library.\",\n        \"similar\": \"The objective of the Datasets documentation is to furnish instructions and advice on the utilization of the Datasets library.\"\n    },\n    {\n        \"origin\": \"The different sections in the Datasets documentation include Get started, Tutorials, How-to guides, Audio, Vision, Text, Tabular, Dataset repository, Conceptual guides, and Reference.\",\n        \"similar\": \"The Datasets documentation is divided into sections such as Introduction, Tutorials, How-to guides, Audio, Vision, Text, Tabular, Dataset repository, Conceptual guides, and Reference.\"\n    },\n    {\n        \"origin\": \"The Dataset loading script is an optional script that can be used to load datasets that are not in CSV, JSON, JSON lines, text, or Parquet formats.\",\n        \"similar\": \"The Dataset loading script is an alternative script that can be employed to load datasets that are not in the formats of CSV, JSON, JSON lines, text, or Parquet.\"\n    },\n    {\n        \"origin\": \"load_dataset() is a function that can be used to automatically load datasets in CSV, JSON, JSON lines, text, or Parquet formats.\",\n        \"similar\": \"The function load_dataset() can be employed to automatically import datasets in CSV, JSON, JSON lines, text, or Parquet formats.\"\n    },\n    {\n        \"origin\": \"A dataset loading script is a Python file that defines the different configurations and splits of a dataset, as well as how to download and process the data.\",\n        \"similar\": \"A Python script for loading datasets defines the different configurations, divisions, downloading and processing of the data.\"\n    },\n    {\n        \"origin\": \"A dataset loading script should include information or attributes about the dataset such as a description, features, homepage, and citation. It should also define how to download and process the data.\",\n        \"similar\": \"A dataset loading script should incorporate details about the dataset, including a description, features, homepage, and citation. It should also specify the procedure for downloading and manipulating the data.\"\n    },\n    {\n        \"origin\": \"A dataset loading script should have the same name as a dataset repository or directory and can be loaded using the `load_dataset` function from the `datasets` library.\",\n        \"similar\": \"The `load_dataset` function from the `datasets` library can be used to load a dataset loading script which should have the same name as the dataset repository or directory.\"\n    },\n    {\n        \"origin\": \"A BuilderConfig in Datasets allows you to create different configurations for the user to select from, such as in the case of the SuperGLUE dataset.\",\n        \"similar\": \"Datasets provide a BuilderConfig that enables the user to generate various configurations to choose from, such as with the SuperGLUE dataset.\"\n    },\n    {\n        \"origin\": \"The SuperGLUE loading script is a script that allows you to define several configurations for your dataset.\",\n        \"similar\": \"A script called SuperGLUE is available for setting up multiple configurations for your dataset.\"\n    },\n    {\n        \"origin\": \"A BuilderConfig subclass is a class that contains attributes about your dataset, such as the features of your dataset, label classes, and a URL to the data files.\",\n        \"similar\": \"A subclass of BuilderConfig holds information about your dataset, including the features, label classes, and the URL of the data files.\"\n    },\n    {\n        \"origin\": \"The arguments of the SuperGlueConfig class are features, data_url, citation, url, label_classes, and **kwargs.\",\n        \"similar\": \"The SuperGlueConfig class has arguments such as features, data_url, citation, url, label_classes, and additional parameters in **kwargs.\"\n    },\n    {\n        \"origin\": \"The SuperGlue class is a class that represents the SuperGLUE benchmark.\",\n        \"similar\": \"The SuperGLUE benchmark is embodied in the SuperGlue class.\"\n    },\n    {\n        \"origin\": \"Users can load a specific configuration of the dataset by specifying the configuration name when loading the dataset using the load_dataset function.\",\n        \"similar\": \"The load_dataset function allows users to specify a configuration name in order to load a particular configuration of the dataset.\"\n    },\n    {\n        \"origin\": \"The DEFAULT_CONFIG_NAME attribute is used to set a default dataset configuration to avoid a ValueError prompt when loading a dataset with multiple configurations.\",\n        \"similar\": \"The DEFAULT_CONFIG_NAME attribute is employed to establish a default dataset configuration in order to prevent a ValueError alert when loading a dataset with multiple configurations.\"\n    },\n    {\n        \"origin\": \"DEFAULT_CONFIG_NAME is a variable that holds the name of the default configuration.\",\n        \"similar\": \"The variable DEFAULT_CONFIG_NAME stores the name of the default configuration.\"\n    },\n    {\n        \"origin\": \"A default configuration should only be used when it makes sense and not just for the convenience of the user.\",\n        \"similar\": \"The user should not resort to a default configuration merely for convenience, but only when it is appropriate.\"\n    },\n    {\n        \"origin\": \"After defining the attributes of a dataset, the next step is to download the data files and organize them according to their splits.\",\n        \"similar\": \"Once the characteristics of the dataset have been identified, the subsequent step is to acquire the data files and arrange them in accordance with their divisions.\"\n    },\n    {\n        \"origin\": \"Data files can be downloaded by creating a dictionary of URLs in the loading script that point to the original data files and using DownloadManager.download_and_extract() to download the files.\",\n        \"similar\": \"A dictionary of URLs pointing to the original data files can be created in the loading script, and DownloadManager.download_and_extract() can be used to download the data files.\"\n    },\n    {\n        \"origin\": \"SplitGenerator is a simple class that contains the name of each split and gen_kwargs that provides the file paths to the data files to load for each split.\",\n        \"similar\": \"SplitGenerator is a straightforward class that holds the name of each split and offers gen_kwargs which furnishes the paths of the data files to be loaded for each split.\"\n    },\n    {\n        \"origin\": \"The purpose of DatasetBuilder._generate_examples is to read and parse the data files and yield a tuple of an id and an example from the dataset.\",\n        \"similar\": \"The aim of DatasetBuilder._generate_examples is to scan and interpret the data files, and then produce a pair of an id and an example from the dataset.\"\n    },\n    {\n        \"origin\": \"Dataset metadata is information about the dataset that is stored in the dataset card `README.md` in YAML. It includes information like the number of examples required to confirm the dataset was correctly generated, and information about the dataset like its `features`.\",\n        \"similar\": \"The `README.md` in YAML of the dataset card contains the dataset metadata, which provides details such as the number of samples needed to ensure the dataset was generated correctly, and the `features` of the dataset.\"\n    },\n    {\n        \"origin\": \"You can generate dataset metadata by running the following command: `datasets-cli test path/to/<your-dataset-loading-script> --save_info --all_configs`.\",\n        \"similar\": \"You can create dataset metadata by executing the command `datasets-cli test path/to/<your-dataset-loading-script> --save_info --all_configs`.\"\n    },\n    {\n        \"origin\": \"You can upload your dataset to the Hub by creating a dataset card and uploading it to the Hub.\",\n        \"similar\": \"You can upload your dataset to the Hub by creating a dataset card and then submitting it.\"\n    },\n    {\n        \"origin\": \"You can load your dataset from the Hub using the following code: `from datasets import load_dataset; load_dataset(\\\"<username>/my_dataset\\\")`.\",\n        \"similar\": \"The following code can be used to obtain your dataset from the Hub: `from datasets import load_dataset; load_dataset(\\\"<username>/my_dataset\\\")`.\"\n    },\n    {\n        \"origin\": \"Sharding is a feature in datasets that allows for running the dataset generation script in parallel to make it faster. It can help if you have hundreds or thousands of TAR archives, or JSONL files.\",\n        \"similar\": \"Sharding can be used to speed up the dataset generation process by running the script in parallel. This is especially useful if you have a large number of TAR archives or JSONL files.\"\n    },\n    {\n        \"origin\": \"To use sharding in your dataset, you can define lists of files in `gen_kwargs` to be shards. Therefore, datasets can automatically spawn several workers to run `_generate_examples` in parallel, and each worker is given a subset of shards to process. Users can also specify `num_proc=` in `load_dataset()` to specify the number of processes to use as workers.\",\n        \"similar\": \"By using sharding in your dataset, you can specify lists of files in `gen_kwargs` to be shards. This will enable datasets to spawn multiple workers to execute `_generate_examples` in parallel, with each worker being allocated a subset of shards to process. Additionally, users can also specify the number of processes to be used as workers by setting `num_proc=` in `load_dataset()`.\"\n    },\n    {\n        \"origin\": \"ArrowBasedBuilder is a dataset builder class in datasets that allows for yielding batches of data rather than examples one by one. It can speed up the dataset generation by yielding Arrow tables directly, instead of examples.\",\n        \"similar\": \"The ArrowBasedBuilder class in datasets enables the generation of batches of data instead of individual examples, thus accelerating the dataset creation by outputting Arrow tables instead of examples.\"\n    },\n    {\n        \"origin\": \"The search index in Datasets enables searching for examples in a dataset, which can be useful when you want to retrieve specific examples from a dataset that are relevant to your NLP task.\",\n        \"similar\": \"The indexing feature in Datasets facilitates searching for samples within a dataset, which can be beneficial when attempting to obtain relevant examples from a dataset for your NLP project.\"\n    },\n    {\n        \"origin\": \"The tools used for the search index in Datasets are FAISS and ElasticSearch.\",\n        \"similar\": \"FAISS and ElasticSearch are the tools employed for indexing in Datasets.\"\n    },\n    {\n        \"origin\": \"The search index can be helpful for NLP tasks by allowing users to retrieve specific examples from a dataset that are relevant to their task.\",\n        \"similar\": \"The search index can be advantageous for NLP projects by permitting users to access particular samples from a dataset that are pertinent to their project.\"\n    },\n    {\n        \"origin\": \"FAISS is a system that retrieves documents based on the similarity of their vector representations.\",\n        \"similar\": \"FAISS is a system that finds documents by comparing their vector representations.\"\n    },\n    {\n        \"origin\": \"You can generate vector representations with the DPR model by downloading it from \\ud83e\\udd17 Transformers and using it to compute the vector representations of your dataset.\",\n        \"similar\": \"You can obtain vector representations through the DPR model by getting it from \\ud83e\\udd17 Transformers and then utilizing it to calculate the vector representations of your data.\"\n    },\n    {\n        \"origin\": \"You can create an index for your dataset by using [Dataset.add_faiss_index()](/docs/datasets/v2.10.0/en/package_reference/main_classes#datasets.Dataset.add_faiss_index) or [Dataset.add_elasticsearch_index()](/docs/datasets/v2.10.0/en/package_reference/main_classes#datasets.Dataset.add_elasticsearch_index) depending on the system you want to use.\",\n        \"similar\": \"You can decide which system you want to use to create an index for your dataset by using either [Dataset.add_faiss_index()](/docs/datasets/v2.10.0/en/package_reference/main_classes#datasets.Dataset.add_faiss_index) or [Dataset.add_elasticsearch_index()](/docs/datasets/v2.10.0/en/package_reference/main_classes#datasets.Dataset.add_elasticsearch_index).\"\n    },\n    {\n        \"origin\": \"You can query your dataset with the embeddings index by loading the DPR Question Encoder, searching for a question with [Dataset.get_nearest_examples()](/docs/datasets/v2.10.0/en/package_reference/main_classes#datasets.Dataset.get_nearest_examples), and accessing the retrieved examples.\",\n        \"similar\": \"You can use the DPR Question Encoder to query your dataset with the embeddings index, [Dataset.get_nearest_examples()](/docs/datasets/v2.10.0/en/package_reference/main_classes#datasets.Dataset.get_nearest_examples) to search for a question, and then access the examples that are retrieved.\"\n    },\n    {\n        \"origin\": \"You can save the index on disk with [Dataset.save_faiss_index()](/docs/datasets/v2.10.0/en/package_reference/main_classes#datasets.Dataset.save_faiss_index) or [Dataset.save_elasticsearch_index()](/docs/datasets/v2.10.0/en/package_reference/main_classes#datasets.Dataset.save_elasticsearch_index), and reload it at a later time with [Dataset.load_faiss_index()](/docs/datasets/v2.10.0/en/package_reference/main_classes#datasets.Dataset.load_faiss_index) or [Dataset.load_elasticsearch_index()](/docs/datasets/v2.10.0/en/package_reference/main_classes#datasets.Dataset.load_elasticsearch_index).\",\n        \"similar\": \"You can store the index on disk with [Dataset.save_faiss_index()](/docs/datasets/v2.10.0/en/package_reference/main_classes#datasets.Dataset.save_faiss_index) or [Dataset.save_elasticsearch_index()](/docs/datasets/v2.10.0/en/package_reference/main_classes#datasets.Dataset.save_elasticsearch_index) and retrieve it later with [Dataset.load_faiss_index()](/docs/datasets/v2.10.0/en/package_reference/main_classes#datasets.Dataset.load_faiss_index) or [Dataset.load_elasticsearch_index()](/docs/datasets/v2.10.0/en/package_reference/main_classes#datasets.Dataset.load_elasticsearch_index).\"\n    },\n    {\n        \"origin\": \"You can query the `context` index with `Dataset.get_nearest_examples()`.\",\n        \"similar\": \"You can use `Dataset.get_nearest_examples()` to query the `context` index.\"\n    },\n    {\n        \"origin\": \"To reuse the index, define the `es_index_name` parameter when you build the index.\",\n        \"similar\": \"When constructing the index, specify the `es_index_name` parameter to utilize the index again.\"\n    },\n    {\n        \"origin\": \"You can reload it later with the index name when you call `Dataset.load_elasticsearch_index()`.\",\n        \"similar\": \"You can call `Dataset.load_elasticsearch_index()` later with the index name to reload it.\"\n    },\n    {\n        \"origin\": \"For more advanced ElasticSearch usage, you can specify your own configuration with custom settings.\",\n        \"similar\": \"For more sophisticated ElasticSearch utilization, you can configure your own setup with personalized parameters.\"\n    },\n    {\n        \"origin\": \"Datasets is a tool that offers various features to manipulate and prepare datasets for training.\",\n        \"similar\": \"Datasets provide a range of functions that enable users to manipulate and prepare data for training.\"\n    },\n    {\n        \"origin\": \"You can get started with Datasets by going through the Quickstart and Installation guides provided in the documentation.\",\n        \"similar\": \"You can begin working with Datasets by consulting the Quickstart and Installation guides in the documentation.\"\n    },\n    {\n        \"origin\": \"The tutorials available for Datasets include Load a dataset from the Hub, Know your dataset, Preprocess, Evaluate predictions, Create a dataset, and Share a dataset to the Hub.\",\n        \"similar\": \"The tutorials available for Datasets encompass Loading a dataset from the Hub, Becoming familiar with your dataset, Preprocessing, Assessing predictions, Constructing a dataset, and Distributing a dataset to the Hub.\"\n    },\n    {\n        \"origin\": \"Datasets can process audio, vision, text, and tabular data.\",\n        \"similar\": \"Datasets are able to handle audio, visual, textual, and tabular information.\"\n    },\n    {\n        \"origin\": \"The how-to guides available for Datasets include Load, Process, Stream, Use with TensorFlow, Use with PyTorch, Cache management, Cloud storage, Search index, Metrics, and Beam Datasets.\",\n        \"similar\": \"The how-to guides for Datasets comprise of steps such as Loading, Processing, Streaming, Utilizing TensorFlow, Utilizing PyTorch, Caching, Cloud storage, Indexing, Measuring, and Beam Datasets.\"\n    },\n    {\n        \"origin\": \"The Dataset repository in Datasets allows you to share, create a dataset loading script, create a dataset card, and structure your repository.\",\n        \"similar\": \"In Datasets, the Dataset Repository provides you with the ability to share, generate a script for loading a dataset, make a dataset card, and organize your repository.\"\n    },\n    {\n        \"origin\": \"You can collaborate on models, datasets, and Spaces using Datasets by joining the Hugging Face community and getting access to the augmented documentation experience.\",\n        \"similar\": \"By joining the Hugging Face community and gaining access to the enhanced documentation experience, you can work together on models, datasets, and Spaces through Datasets.\"\n    },\n    {\n        \"origin\": \"The guides assume that you are familiar and comfortable with the \\ud83e\\udd17 Datasets basics.\",\n        \"similar\": \"It is assumed that you have a good understanding and are comfortable with the fundamentals of \\ud83e\\udd17 Datasets.\"\n    },\n    {\n        \"origin\": \"We recommend newer users check out our tutorials first.\",\n        \"similar\": \"It is suggested that new users should begin by viewing our tutorials.\"\n    },\n    {\n        \"origin\": \"Interested users can take a look at Chapter 5 of the Hugging Face course.\",\n        \"similar\": \"Those who are curious can examine Chapter 5 of the Hugging Face course.\"\n    },\n    {\n        \"origin\": \"The guides are organized into six sections: General usage, Audio, Vision, Text, Tabular, and Dataset repository.\",\n        \"similar\": \"Guides have been divided into six parts: General usage, Audio, Vision, Text, Tabular, and Dataset repository.\"\n    },\n    {\n        \"origin\": \"If you have any questions about \\ud83e\\udd17 Datasets, you can join and ask the community on the forum.\",\n        \"similar\": \"If you have queries regarding \\ud83e\\udd17 Datasets, you can join the forum and seek answers from the community.\"\n    },\n    {\n        \"origin\": \"Cache management in datasets refers to the process of storing processed data and scripts locally on a user's computer to avoid re-downloading or processing the entire dataset every time it is used.\",\n        \"similar\": \"The practice of caching in datasets is the act of storing already processed data and scripts on a user's computer to prevent the need for re-downloading or reprocessing the entire dataset each time it is accessed.\"\n    },\n    {\n        \"origin\": \"Cache management is important in datasets because it helps to save time and resources by avoiding the need to re-download or re-process the entire dataset every time it is used.\",\n        \"similar\": \"Cache management is essential in datasets as it helps to conserve time and resources by preventing the requirement to re-download or re-process the entire dataset each time it is utilized.\"\n    },\n    {\n        \"origin\": \"To change the cache directory in datasets, you can follow the guide provided in the documentation.\",\n        \"similar\": \"You can refer to the documentation to alter the cache directory in datasets.\"\n    },\n    {\n        \"origin\": \"You can change the default cache directory for datasets by setting the shell environment variable `HF_DATASETS_CACHE` to another directory.\",\n        \"similar\": \"By altering the shell environment variable `HF_DATASETS_CACHE` to a different directory, the default cache directory for datasets can be changed.\"\n    },\n    {\n        \"origin\": \"You can change the cache directory for a specific dataset or metric by setting the `cache_dir` parameter to the desired path when loading the dataset or metric.\",\n        \"similar\": \"You can specify the directory for caching a certain dataset or metric by setting the `cache_dir` parameter to the desired path when loading the dataset or metric.\"\n    },\n    {\n        \"origin\": \"You can control how a dataset is loaded from the cache by using the `load_from_cache_file` argument in the `Dataset.map()` method. Setting it to `False` will execute the function over the entire dataset again instead of loading the dataset from its previous state.\",\n        \"similar\": \"By using the `load_from_cache_file` argument in the `Dataset.map()` method, you can determine whether a dataset is loaded from the cache or not. If you set it to `False`, the function will be executed over the entire dataset instead of loading it from its previous state.\"\n    },\n    {\n        \"origin\": \"You can clean up cache files in the directory by using the `Dataset.cleanup_cache_files()` method.\",\n        \"similar\": \"The `Dataset.cleanup_cache_files()` method can be used to clear out cache files in the directory.\"\n    },\n    {\n        \"origin\": \"You can enable or disable caching by setting the `load_from_cache_file` argument in the `Dataset.map()` method or by using the `disable_caching()` function. You can also keep the metric in CPU memory instead of caching it by setting the `keep_in_memory` parameter to `True` when loading the metric.\",\n        \"similar\": \"You can control caching by adjusting the `load_from_cache_file` argument in the `Dataset.map()` method or by using the `disable_caching()` function. To keep the metric in CPU memory instead of caching it, set the `keep_in_memory` parameter to `True` when loading the metric.\"\n    },\n    {\n        \"origin\": \"You can improve dataset performance by disabling the cache and copying the dataset in-memory. This can be done by setting `datasets.config.IN_MEMORY_MAX_SIZE` or the `HF_DATASETS_IN_MEMORY_MAX_SIZE` environment variable to a nonzero value that fits in your RAM memory.\",\n        \"similar\": \"By disabling the cache and copying the dataset in-memory, you can enhance the performance of the dataset. This can be achieved by setting `datasets.config.IN_MEMORY_MAX_SIZE` or the `HF_DATASETS_IN_MEMORY_MAX_SIZE` environment variable to a value that is compatible with your RAM memory.\"\n    },\n    {\n        \"origin\": \"Beam Datasets are datasets that are too large to be processed on a single machine, so they are processed with Apache Beam, a library for parallel data processing.\",\n        \"similar\": \"Datasets that are too voluminous to be handled by one machine are processed using Apache Beam, a library for parallel data processing, which is known as Beam Datasets.\"\n    },\n    {\n        \"origin\": \"Apache Beam is a library for parallel data processing.\",\n        \"similar\": \"Apache Beam provides a framework for parallel data processing.\"\n    },\n    {\n        \"origin\": \"Beam Datasets are processed using a processing pipeline that is executed on a distributed system.\",\n        \"similar\": \"A distributed system is utilized to execute a processing pipeline for the processing of Beam Datasets.\"\n    },\n    {\n        \"origin\": \"Beam Datasets support processing backends such as Apache Flink, Apache Spark, or Google Cloud Dataflow.\",\n        \"similar\": \"Beam Datasets can be processed with backends like Apache Flink, Apache Spark, or Google Cloud Dataflow.\"\n    },\n    {\n        \"origin\": \"Yes, Beam pipelines are available for some of the larger datasets like wikipedia and wiki40b.\",\n        \"similar\": \"Beam pipelines can be used to process some of the larger datasets, such as Wikipedia and Wiki40b.\"\n    },\n    {\n        \"origin\": \"You can load pre-created Beam pipelines normally with load_dataset().\",\n        \"similar\": \"It is possible to load pre-existing Beam pipelines using the load_dataset() function.\"\n    },\n    {\n        \"origin\": \"To run your own Beam pipeline with Dataflow in Beam Datasets, you need to specify the dataset and configuration you want to process, input your Google Cloud Platform information, specify your Python requirements, and run the pipeline.\",\n        \"similar\": \"In order to execute a Beam pipeline with Dataflow in Beam Datasets, you must provide the dataset and configuration you wish to process, enter your Google Cloud Platform credentials, designate your Python requirements, and execute the pipeline.\"\n    },\n    {\n        \"origin\": \"Yes, you can adjust the parameters to change the runner (Flink or Spark), output location (S3 bucket or HDFS), and the number of workers when running your pipeline in Beam Datasets.\",\n        \"similar\": \"It is possible to modify the settings to switch between Flink and Spark, the output destination between S3 bucket and HDFS, and the number of workers when executing your pipeline with Beam Datasets.\"\n    },\n    {\n        \"origin\": \"No, it doesn't exist in version 2.10.0.\",\n        \"similar\": \"Version 2.10.0 does not contain it.\"\n    },\n    {\n        \"origin\": \"You can find it on the main version of the documentation. Click on the provided link to redirect to the main version.\",\n        \"similar\": \"The main version of the documentation can be accessed by clicking on the link.\"\n    },\n    {\n        \"origin\": \"You can load text data using Hugging Face's Datasets by following the guide provided in the \\\"Load text data\\\" section of the documentation.\",\n        \"similar\": \"By consulting the \\\"Load text data\\\" section of the Hugging Face's Datasets documentation, one can load text data.\"\n    },\n    {\n        \"origin\": \"You can find tutorials for using Hugging Face's Datasets in the \\\"Tutorials\\\" section of the documentation.\",\n        \"similar\": \"Tutorials on how to utilize Hugging Face's Datasets can be located in the \\\"Tutorials\\\" part of the documentation.\"\n    },\n    {\n        \"origin\": \"Yes, you can use Hugging Face's Datasets with TensorFlow or PyTorch. There are specific guides provided in the \\\"General usage\\\" section of the documentation for using Hugging Face's Datasets with these frameworks.\",\n        \"similar\": \"You can employ Hugging Face's Datasets with either TensorFlow or PyTorch. The \\\"General usage\\\" section of the documentation offers specific instructions for using the Datasets with these frameworks.\"\n    },\n    {\n        \"origin\": \"You can share a dataset to the Hub using Hugging Face's Datasets by following the guide provided in the \\\"Share a dataset to the Hub\\\" tutorial in the \\\"Tutorials\\\" section of the documentation.\",\n        \"similar\": \"By referring to the \\\"Share a dataset to the Hub\\\" tutorial in the \\\"Tutorials\\\" section of the documentation, you can learn how to share a dataset to the Hub with Hugging Face's Datasets.\"\n    },\n    {\n        \"origin\": \"You can load various types of data using Hugging Face's Datasets, including text, audio, vision, and tabular data. There are specific guides provided in the documentation for loading each type of data.\",\n        \"similar\": \"Using Hugging Face's Datasets, you can load a range of data types, such as text, audio, vision, and tabular data. The documentation provides specific instructions for loading each type of data.\"\n    },\n    {\n        \"origin\": \"\\ud83e\\udd17 Datasets is a library for working with datasets in Python.\",\n        \"similar\": \"Python's library for manipulating datasets is called Datasets.\"\n    },\n    {\n        \"origin\": \"\\ud83e\\udd17 Datasets samples a text file line by line to build the dataset.\",\n        \"similar\": \"The dataset is constructed by sampling a text file line by line.\"\n    },\n    {\n        \"origin\": \"You can load a dataset from a directory using \\ud83e\\udd17 Datasets by specifying the data directory path.\",\n        \"similar\": \"\\ud83e\\udd17 Datasets allows you to load a dataset from a directory by providing the path of the data directory.\"\n    },\n    {\n        \"origin\": \"You can sample a text file by paragraph or entire document using \\ud83e\\udd17 Datasets by specifying the `sample_by` parameter.\",\n        \"similar\": \"You can select the sampling of a text file either by paragraph or the whole document by setting the `sample_by` parameter in \\ud83e\\udd17 Datasets.\"\n    },\n    {\n        \"origin\": \"Yes, you can use grep patterns to load specific files using \\ud83e\\udd17 Datasets.\",\n        \"similar\": \"\\ud83e\\udd17 Datasets can be used to load specific files by utilizing grep patterns.\"\n    },\n    {\n        \"origin\": \"Yes, you can load remote text files via HTTP using \\ud83e\\udd17 Datasets by passing the URLs instead of local file paths.\",\n        \"similar\": \"It is possible to obtain remote text files via HTTP using \\ud83e\\udd17 Datasets by providing the URLs instead of local file paths.\"\n    },\n    {\n        \"origin\": \"Albumentations is a Python library for performing data augmentation for computer vision.\",\n        \"similar\": \"Albumentations is a Python package providing data augmentation for computer vision.\"\n    },\n    {\n        \"origin\": \"The NYU Depth V2 dataset is comprised of video sequences from various indoor scenes, recorded by RGB and depth cameras. The dataset consists of scenes from 3 cities and provides images along with their depth maps as labels.\",\n        \"similar\": \"The NYU Depth V2 dataset is composed of video sequences from multiple indoor scenes, captured by RGB and depth cameras. It contains scenes from 3 cities and offers images with their corresponding depth maps as labels.\"\n    },\n    {\n        \"origin\": \"We can load the train split of the NYU Depth V2 dataset using the following code: \\n```\\nfrom datasets import load_dataset\\ntrain_dataset = load_dataset(\\\"sayakpaul/nyu_depth_v2\\\", split=\\\"train\\\")\\n```\",\n        \"similar\": \"The following code can be used to get the train split of the NYU Depth V2 dataset: \\n```\\nfrom datasets import load_dataset\\ntrain_dataset = load_dataset(\\\"sayakpaul/nyu_depth_v2\\\", split=\\\"train\\\")\\n```\"\n    },\n    {\n        \"origin\": \"The two fields in the NYU Depth V2 dataset are `image` and `depth_map`.\",\n        \"similar\": \"The NYU Depth V2 dataset contains two fields, namely `image` and `depth_map`.\"\n    },\n    {\n        \"origin\": \"We need to first convert the data type of the depth map to `uint8` using `.convert('RGB')` as PIL can\\u2019t display `float32` images. Then we can create a colored depth map using `plt.cm` and display it using `plt.imshow()` or the `show_depthmap()` function provided in the guide.\",\n        \"similar\": \"Using `.convert('RGB')`, we must first convert the data type of the depth map to `uint8` as PIL cannot display `float32` images. Afterwards, we can use `plt.cm` to create a colored depth map and display it with either `plt.imshow()` or the `show_depthmap()` function given in the guide.\"\n    },\n    {\n        \"origin\": \"The guide provides instructions on how to apply transformations to a depth estimation dataset using the Albumentations library.\",\n        \"similar\": \"The guide furnishes directions on how to execute transformations to a depth estimation dataset through the Albumentations library.\"\n    },\n    {\n        \"origin\": \"The purpose of the Datasets documentation is to provide tutorials, how-to guides, and conceptual guides for working with \\ud83e\\udd17 Datasets.\",\n        \"similar\": \"The goal of the Datasets documentation is to offer tutorials, how-to instructions, and conceptual guidance for utilizing \\ud83e\\udd17 Datasets.\"\n    },\n    {\n        \"origin\": \"The Datasets documentation covers topics such as loading and processing data, using Datasets with TensorFlow and PyTorch, creating datasets, and working with audio, vision, text, and tabular data.\",\n        \"similar\": \"The Datasets manual provides information on how to load and process data, integrate Datasets with TensorFlow and PyTorch, construct datasets, and handle audio, visual, textual, and tabular data.\"\n    },\n    {\n        \"origin\": \"You can get started with \\ud83e\\udd17 Datasets by following the Quickstart guide, which is available in the Datasets documentation.\",\n        \"similar\": \"To begin using \\ud83e\\udd17 Datasets, refer to the Quickstart guide in the Datasets documentation for guidance.\"\n    },\n    {\n        \"origin\": \"By joining the Hugging Face community, you can collaborate on models, datasets, and Spaces, access faster examples with accelerated inference, and switch between documentation themes.\",\n        \"similar\": \"By becoming a part of the Hugging Face community, you can work together on models, datasets, and Spaces, get quicker results with accelerated inference, and change between documentation themes.\"\n    },\n    {\n        \"origin\": \"You will learn how to load different dataset configurations and splits, interact with and see what\\u2019s inside your dataset, preprocess, and share a dataset to the Hub.\",\n        \"similar\": \"You will be taught how to upload various dataset configurations and divisions, interact with the data, analyze its content, pre-process it, and upload it to the Hub.\"\n    },\n    {\n        \"origin\": \"The tutorials assume some basic knowledge of Python and a machine learning framework like PyTorch or TensorFlow.\",\n        \"similar\": \"The tutorials presuppose a rudimentary understanding of Python and a machine learning library such as PyTorch or TensorFlow.\"\n    },\n    {\n        \"origin\": \"You can check out the quickstart to see what you can do with \\ud83e\\udd17 Datasets.\",\n        \"similar\": \"Have a look at the quickstart to find out what \\ud83e\\udd17 Datasets can offer.\"\n    },\n    {\n        \"origin\": \"No, the tutorials only cover the basic skills you need to use \\ud83e\\udd17 Datasets. There are many other useful functionalities and applications that aren\\u2019t discussed here.\",\n        \"similar\": \"The tutorials provided here only provide an introduction to the fundamentals of working with Datasets. There are many other features and applications that have not been addressed.\"\n    },\n    {\n        \"origin\": \"You can take a look at Chapter 5 of the Hugging Face course.\",\n        \"similar\": \"You may want to peruse Chapter 5 of the Hugging Face course.\"\n    },\n    {\n        \"origin\": \"You can join and ask the community on the forum.\",\n        \"similar\": \"You can become a member of the forum and pose questions to the community.\"\n    },\n    {\n        \"origin\": \"Datasets is a library for easily accessing and sharing datasets for Audio, Computer Vision, and Natural Language Processing (NLP) tasks.\",\n        \"similar\": \"Datasets is a repository which facilitates the access and exchange of datasets for Audio, Computer Vision, and Natural Language Processing (NLP) activities.\"\n    },\n    {\n        \"origin\": \"Datasets supports tasks related to Audio, Computer Vision, and Natural Language Processing (NLP).\",\n        \"similar\": \"Datasets can be utilized for tasks related to Audio, Computer Vision, and Natural Language Processing (NLP).\"\n    },\n    {\n        \"origin\": \"The tutorials available for Datasets are: Overview, Load a dataset from the Hub, Know your dataset, Preprocess, Evaluate predictions, Create a dataset, and Share a dataset to the Hub.\",\n        \"similar\": \"The tutorials for Datasets include: An Overview, Loading a dataset from the Hub, Becoming familiar with the dataset, Preprocessing, Assessing predictions, Generating a dataset, and Uploading a dataset to the Hub.\"\n    },\n    {\n        \"origin\": \"Datasets can load audio, image, text, and tabular data.\",\n        \"similar\": \"Datasets are able to accommodate audio, image, textual, and tabular information.\"\n    },\n    {\n        \"origin\": \"Yes, Datasets can be used with TensorFlow, PyTorch, and JAX.\",\n        \"similar\": \"TensorFlow, PyTorch, and JAX are all compatible with Datasets.\"\n    },\n    {\n        \"origin\": \"The purpose of the Datasets repository is to share, create a dataset loading script, create a dataset card, and structure the repository.\",\n        \"similar\": \"The objective of the Datasets repository is to provide a platform to share, generate a script for loading a dataset, generate a dataset card, and organize the repository.\"\n    },\n    {\n        \"origin\": \"The types of guides available for Datasets are: How-to guides, Conceptual guides, and Reference.\",\n        \"similar\": \"The different types of guides for Datasets are: Tutorials, Explanations, and Documentation.\"\n    },\n    {\n        \"origin\": \"Yes, you can load a dataset in a single line of code and use powerful data processing methods to quickly get your dataset ready for training.\",\n        \"similar\": \"It is possible to load a dataset in one line of code and then take advantage of powerful data manipulation techniques to quickly prepare the dataset for training.\"\n    },\n    {\n        \"origin\": \"Yes, you can process large datasets with zero-copy reads without any memory constraints for optimal speed and efficiency.\",\n        \"similar\": \"It is possible to process large datasets with zero-copy reads, allowing for maximum speed and efficiency without any memory limitations.\"\n    },\n    {\n        \"origin\": \"Yes, this tool is backed by the Apache Arrow format.\",\n        \"similar\": \"This tool is supported by the Apache Arrow format.\"\n    },\n    {\n        \"origin\": \"Yes, this tool features a deep integration with the Hugging Face Hub, allowing you to easily load and share a dataset with the wider machine learning community.\",\n        \"similar\": \"This tool has a strong connection with the Hugging Face Hub, making it easy to upload and share datasets with the machine learning community.\"\n    },\n    {\n        \"origin\": \"Yes, there are tutorials available to help you learn the basics and become familiar with loading, accessing, and processing a dataset.\",\n        \"similar\": \"Tutorials are available to assist you in grasping the fundamentals and getting used to loading, accessing, and manipulating a dataset.\"\n    },\n    {\n        \"origin\": \"Yes, there are practical guides available to help you achieve a specific goal and learn how to use this tool to solve real-world problems.\",\n        \"similar\": \"Yes, there are useful manuals available to assist you in reaching a particular objective and understand how to employ this tool to tackle real-world issues.\"\n    },\n    {\n        \"origin\": \"Yes, there are conceptual guides available to provide high-level explanations for building a better understanding about important topics such as the underlying data format, the cache, and how datasets are generated.\",\n        \"similar\": \"Conceptual guides are available to help build a better understanding of significant topics like the data format, the cache, and how datasets are created.\"\n    },\n    {\n        \"origin\": \"Yes, there are technical descriptions available in the reference section for how this tool's classes and methods work.\",\n        \"similar\": \"Technical descriptions of the classes and methods of this tool can be found in the reference section.\"\n    },\n    {\n        \"origin\": \"You can load an audio dataset using the Audio feature that automatically decodes and resamples the audio files when you access the examples.\",\n        \"similar\": \"You can access the examples that are automatically decoded and resampled by the Audio feature to load an audio dataset.\"\n    },\n    {\n        \"origin\": \"The Audio feature automatically decodes and resamples the audio files when you access the examples.\",\n        \"similar\": \"When you access the examples, the Audio feature will automatically decode and resample the audio files.\"\n    },\n    {\n        \"origin\": \"You can find information on loading text data under the Text section of the documentation.\",\n        \"similar\": \"The Text section of the documentation has details on loading text data.\"\n    },\n    {\n        \"origin\": \"Yes, you can collaborate on models, datasets, and Spaces with the Hugging Face community by signing up for an account.\",\n        \"similar\": \"By registering for an account, you can join the Hugging Face community and work together on models, datasets, and Spaces.\"\n    },\n    {\n        \"origin\": \"The `audio` dependencies need to be installed.\",\n        \"similar\": \"The `audio` libraries must be installed.\"\n    },\n    {\n        \"origin\": \"Use the `cast_column()` function to take a column of audio file paths, and cast it to the `Audio` feature.\",\n        \"similar\": \"The `cast_column()` function is to be employed to convert a column of audio file paths into an `Audio` feature.\"\n    },\n    {\n        \"origin\": \"`AudioFolder` is a dataset builder that allows for quickly creating and loading audio datasets with several thousand audio files.\",\n        \"similar\": \"`AudioFolder` is a dataset builder that facilitates the rapid assembly and loading of audio datasets with thousands of audio files.\"\n    },\n    {\n        \"origin\": \"Make sure your dataset has a `metadata.csv` file with a `file_name` column which links audio files with their metadata.\",\n        \"similar\": \"Ensure that your dataset has a `metadata.csv` file which contains a `file_name` column that connects audio files to their respective metadata.\"\n    },\n    {\n        \"origin\": \"Yes, remote datasets can be loaded from their URLs with the `data_files` parameter.\",\n        \"similar\": \"It is possible to load remote datasets from their URLs by using the `data_files` parameter.\"\n    },\n    {\n        \"origin\": \"Set `drop_metadata=True` in `load_dataset()`.\",\n        \"similar\": \"Include the option `drop_metadata=True` when calling `load_dataset()`.\"\n    },\n    {\n        \"origin\": \"`AudioFolder` automatically infers the label name from the directory name.\",\n        \"similar\": \"`AudioFolder` can deduce the label name from the directory name without any manual input.\"\n    },\n    {\n        \"origin\": \"The `load_dataset` function is used to load an audio dataset.\",\n        \"similar\": \"The audio dataset can be loaded by utilizing the `load_dataset` function.\"\n    },\n    {\n        \"origin\": \"The `data_dir` parameter is used to specify the path to the folder containing the audio data.\",\n        \"similar\": \"The path to the folder with the audio data is specified by the `data_dir` parameter.\"\n    },\n    {\n        \"origin\": \"Yes, you can create your own `AudioFolder` dataset. For more information, you can refer to the \\\"Create an audio dataset\\\" guide.\",\n        \"similar\": \"You can create your own `AudioFolder` dataset, as outlined in the \\\"Create an audio dataset\\\" guide, for more details.\"\n    },\n    {\n        \"origin\": \"You can find a guide on how to load any type of dataset in the \\\"general loading guide\\\".\",\n        \"similar\": \"A guide on how to load datasets of any kind can be located in the \\\"general loading guide\\\".\"\n    },\n    {\n        \"origin\": \"Yes, other types of audio datasets can be loaded using this code. For example, you can load an `AudioFolder` dataset with metadata.\",\n        \"similar\": \"This code can be used to load not only one type of audio dataset, but also others. For instance, an `AudioFolder` dataset with metadata can be loaded.\"\n    },\n    {\n        \"origin\": \"Other options available for loading audio data using this code include local files and `AudioFolder` with metadata.\",\n        \"similar\": \"This code can be used to load audio data from local files and `AudioFolder` with metadata, as well as other available options.\"\n    },\n    {\n        \"origin\": \"Datasets is a tool designed by Hugging Face that allows anyone to share a dataset with the greater Machine Learning community.\",\n        \"similar\": \"Hugging Face has created a tool called Datasets, which enables people to make their datasets available to the Machine Learning world.\"\n    },\n    {\n        \"origin\": \"You can get started with Datasets by visiting the Quickstart and Installation pages in the documentation.\",\n        \"similar\": \"To begin working with Datasets, you can refer to the Quickstart and Installation sections of the documentation.\"\n    },\n    {\n        \"origin\": \"Datasets supports audio, vision, text, and tabular data.\",\n        \"similar\": \"Datasets accommodate audio, visual, textual, and tabular information.\"\n    },\n    {\n        \"origin\": \"Yes, Datasets can be used with TensorFlow, PyTorch, and JAX.\",\n        \"similar\": \"TensorFlow, PyTorch, and JAX are all compatible with Datasets.\"\n    },\n    {\n        \"origin\": \"Yes, you can create your own dataset using Datasets.\",\n        \"similar\": \"You have the ability to generate your own dataset with the help of Datasets.\"\n    },\n    {\n        \"origin\": \"You can share a dataset to the Hugging Face Hub by following the instructions on the Share page in the documentation.\",\n        \"similar\": \"By adhering to the guidelines on the Share page of the documentation, you can submit a dataset to the Hugging Face Hub.\"\n    },\n    {\n        \"origin\": \"The Hugging Face community is a group of individuals who collaborate on models, datasets, and Spaces to democratize good Machine Learning.\",\n        \"similar\": \"The Hugging Face collective is a collection of people who work together on models, datasets, and Spaces to make Machine Learning available to everyone.\"\n    },\n    {\n        \"origin\": \"There are currently thousands of datasets in over 100 languages in the Hugging Face Hub.\",\n        \"similar\": \"At present, the Hugging Face Hub contains thousands of datasets in more than one hundred languages.\"\n    },\n    {\n        \"origin\": \"Dataset repositories offer features such as free dataset hosting, dataset versioning, commit history and diffs, metadata for discoverability, and dataset cards for documentation, licensing, limitations, etc.\",\n        \"similar\": \"Dataset repositories provide amenities like free data hosting, version control, commit history and diffs, metadata to facilitate discovery, and dataset cards to document licensing, restrictions, and so on.\"\n    },\n    {\n        \"origin\": \"You can share your dataset with the community by creating a dataset repository on the Hugging Face Hub. It can also be a private dataset if you want to control who has access to it.\",\n        \"similar\": \"By creating a dataset repository on the Hugging Face Hub, you can make your dataset available to the public or keep it private, depending on your preference.\"\n    },\n    {\n        \"origin\": \"A dataset script is optional if your dataset is in one of the supported formats such as CSV, JSON, JSON lines, text or Parquet. The script also supports many kinds of compressed file types such as GZ, BZ2, LZ4, LZMA or ZSTD. If your dataset is not in a supported format or if you want more control over how your dataset is loaded, you can write your own dataset script.\",\n        \"similar\": \"If your dataset is not in a supported format like CSV, JSON, JSON lines, text or Parquet, or if you want more control over how your dataset is loaded, you can write your own dataset script. Otherwise, the script also supports many kinds of compressed file types such as GZ, BZ2, LZ4, LZMA or ZSTD, and the dataset script is optional.\"\n    },\n    {\n        \"origin\": \"If there\\u2019s no dataset script, all the files in the supported formats are loaded. If there\\u2019s a dataset script, it is downloaded and executed to download and prepare the dataset.\",\n        \"similar\": \"In the absence of a dataset script, all files in the supported formats will be loaded. However, if a dataset script is present, it will be downloaded and executed in order to download and prepare the dataset.\"\n    },\n    {\n        \"origin\": \"You can create a new dataset repository from your account on the Hugging Face Hub or upload a dataset from the terminal using the huggingface-cli repo create command.\",\n        \"similar\": \"You can either generate a new dataset repository from your Hugging Face Hub account or utilize the huggingface-cli repo create command to upload a dataset from the terminal.\"\n    },\n    {\n        \"origin\": \"You can clone the repository using Git LFS and the git clone command.\",\n        \"similar\": \"Git LFS and the git clone command can be used to clone the repository.\"\n    },\n    {\n        \"origin\": \"You should upload the raw data files of the dataset (optional, if they are hosted elsewhere you can specify the URLs in the dataset script) and your dataset loading script (optional if your data files are already in the supported formats csv/jsonl/json/parquet/txt).\",\n        \"similar\": \"It is optional to upload the raw data files of the dataset, but if they are hosted elsewhere, the URLs should be specified in the dataset script. Additionally, it is also optional to include the dataset loading script if the data files are already in the supported formats such as csv/jsonl/json/parquet/txt.\"\n    },\n    {\n        \"origin\": \"You can load your dataset in a single line of code using the following command: `dataset = load_dataset(\\\"namespace/your_dataset_name\\\")`.\",\n        \"similar\": \"A single line of code is all it takes to load your dataset, just use the command `dataset = load_dataset(\\\"namespace/your_dataset_name\\\")`.\"\n    },\n    {\n        \"origin\": \"You can make your dataset discoverable by creating a dataset card to document it. You can learn more about creating a dataset card by checking out the \\\"Create a dataset card\\\" guide.\",\n        \"similar\": \"By creating a dataset card, you can make your dataset discoverable. To learn more about this process, please refer to the \\\"Create a dataset card\\\" guide.\"\n    },\n    {\n        \"origin\": \"You can get help with your dataset script by checking the datasets forum. It is possible that someone had similar issues and shared how they managed to fix them.\",\n        \"similar\": \"By consulting the datasets forum, you may be able to find assistance with your dataset script. It is likely that someone has encountered similar problems and revealed how they were able to resolve them.\"\n    },\n    {\n        \"origin\": \"If you wish your dataset script to be reviewed by the Hugging Face team, you can open a discussion in the Community tab of your dataset with the message: \\\"# Dataset review request for <Dataset name>\\\". Members of the Hugging Face team will be happy to review your dataset script and give you advice.\",\n        \"similar\": \"If you would like the Hugging Face team to evaluate your dataset script, you can start a conversation in the Community section of your dataset with the statement: \\\"# Dataset review request for <Dataset name>\\\". The Hugging Face team will be glad to review your dataset script and provide feedback.\"\n    },\n    {\n        \"origin\": \"If you think a fix is needed for a legacy GitHub dataset, you can use their \\\"Community\\\" tab to open a discussion or create a Pull Request. The code of these datasets is reviewed by the Hugging Face team.\",\n        \"similar\": \"If you believe a modification is necessary for an existing GitHub dataset, you can initiate a discussion or submit a Pull Request via the \\\"Community\\\" tab. The Hugging Face team will then inspect the code of the dataset.\"\n    },\n    {\n        \"origin\": \"The purpose of the Datasets documentation is to provide information and guidance on how to use and process datasets.\",\n        \"similar\": \"The aim of the Datasets documentation is to furnish knowledge and advice on how to utilize and manipulate datasets.\"\n    },\n    {\n        \"origin\": \"Some of the tutorials available in the Datasets documentation include loading a dataset from the Hub, preprocessing, evaluating predictions, creating a dataset, and sharing a dataset to the Hub.\",\n        \"similar\": \"In the Datasets documentation, tutorials are provided for tasks such as loading a dataset from the Hub, preprocessing, evaluating predictions, creating a dataset, and uploading a dataset to the Hub.\"\n    },\n    {\n        \"origin\": \"Some of the how-to guides available in the Datasets documentation include loading, processing, streaming, using with TensorFlow, using with PyTorch, cache management, cloud storage, search index, metrics, and Beam Datasets.\",\n        \"similar\": \"The Datasets documentation provides a range of tutorials, such as loading, processing, streaming, integration with TensorFlow and PyTorch, cache management, cloud storage, search index, metrics, and Beam Datasets.\"\n    },\n    {\n        \"origin\": \"Some of the methods for processing image datasets include using map() with image dataset.\",\n        \"similar\": \"Using map() is one of the techniques for manipulating image datasets.\"\n    },\n    {\n        \"origin\": \"The function to apply data augmentations to a dataset is `set_transform()`.\",\n        \"similar\": \"The `set_transform()` is used to apply data augmentations to a dataset.\"\n    },\n    {\n        \"origin\": \"The `map()` function can apply transforms over an entire dataset.\",\n        \"similar\": \"The `map()` function can be used to apply transformations to all elements of a dataset.\"\n    },\n    {\n        \"origin\": \"An example of a transform that can be applied to an image is `ColorJitter`.\",\n        \"similar\": \"An illustration of a transformation that can be utilized on an image is `ColorJitter`.\"\n    },\n    {\n        \"origin\": \"`set_transform()` consumes less disk space compared to `map()`.\",\n        \"similar\": \"`map()` requires more disk space than `set_transform()`.\"\n    },\n    {\n        \"origin\": \"Other data augmentation libraries that can be used besides `torchvision` include Albumentations, Kornia, and imgaug.\",\n        \"similar\": \"Besides `torchvision`, Albumentations, Kornia, and imgaug are other data augmentation libraries that can be employed.\"\n    },\n    {\n        \"origin\": \"Image datasets can be loaded from the `image` column, which contains a PIL object.\",\n        \"similar\": \"The `image` column holds a PIL object, from which image datasets can be sourced.\"\n    },\n    {\n        \"origin\": \"To work with image datasets, you need to have the `vision` dependency installed. Check out the installation guide to learn how to install it.\",\n        \"similar\": \"In order to work with image datasets, it is necessary to have the `vision` dependency installed. Refer to the installation guide to find out how to set it up.\"\n    },\n    {\n        \"origin\": \"You can load an image dataset using the datasets library by calling the `load_dataset()` function and specifying the name of the dataset and the split you want to load.\",\n        \"similar\": \"The datasets library provides the `load_dataset()` function to enable loading of an image dataset, where you need to specify the name of the dataset and the split you want to load.\"\n    },\n    {\n        \"origin\": \"You can index into an image dataset using the row index first and then the `image` column - `dataset[0][\\\"image\\\"]` - to avoid decoding and resampling all the image objects in the dataset.\",\n        \"similar\": \"By using the row index first and then the `image` column - `dataset[0][\\\"image\\\"]` - one can access an image dataset without having to decode and resample all the image objects in the dataset.\"\n    },\n    {\n        \"origin\": \"You can load a dataset from the image path by using the `cast_column()` function to accept a column of image file paths, and decode it into a PIL image with the `Image` feature.\",\n        \"similar\": \"The `cast_column()` function can be used to accept a column of image file paths, and the `Image` feature can be used to decode it into a PIL image, thus allowing the loading of a dataset from the image path.\"\n    },\n    {\n        \"origin\": \"You can load a dataset with an `ImageFolder` dataset builder by specifying `imagefolder` and the directory of your dataset in `data_dir`.\",\n        \"similar\": \"An `ImageFolder` dataset builder can be used to load a dataset by indicating `imagefolder` and the directory of the dataset in `data_dir`.\"\n    },\n    {\n        \"origin\": \"You can load remote datasets from their URLs with the `data_files` parameter by specifying the URL of the dataset in the `data_files` parameter when calling the `load_dataset()` function.\",\n        \"similar\": \"The `load_dataset()` function allows you to access remote datasets from their URLs by inputting the URL into the `data_files` parameter.\"\n    },\n    {\n        \"origin\": \"The guide is about creating an image dataset.\",\n        \"similar\": \"This guide is devoted to assembling an image dataset.\"\n    },\n    {\n        \"origin\": \"You can find the guide at the link provided: ./image_dataset.\",\n        \"similar\": \"The guide can be located at the provided link: ./image_dataset.\"\n    },\n    {\n        \"origin\": \"Yes, there is a guide for creating an audio dataset. You can find it at the link provided: /docs/datasets/v2.10.0/audio_dataset.\",\n        \"similar\": \"A guide for constructing an audio dataset is available; the link is /docs/datasets/v2.10.0/audio_dataset.\"\n    },\n    {\n        \"origin\": \"Yes, there is a guide for processing image data. You can find it at the link provided: /docs/datasets/v2.10.0/image_process.\",\n        \"similar\": \"html\\n\\nYou can find a guide on how to process image data at the link provided: /docs/datasets/v2.10.0/image_process.html\"\n    },\n    {\n        \"origin\": \"The options for loading image data are local files and ImageFolder.\",\n        \"similar\": \"The choices for loading image data include local files and ImageFolder.\"\n    },\n    {\n        \"origin\": \"Arrow is a data format that stores data in a columnar memory layout, enabling large amounts of data to be processed and moved quickly.\",\n        \"similar\": \"Arrow is a data format that stores information in a columnar memory structure, thus allowing for rapid processing and transportation of large volumes of data.\"\n    },\n    {\n        \"origin\": \"Arrow provides several significant advantages, including the ability to process and move large amounts of data quickly due to its columnar memory layout.\",\n        \"similar\": \"The columnar memory layout of Arrow facilitates the rapid processing and transfer of large amounts of data, making it a highly advantageous technology.\"\n    },\n    {\n        \"origin\": \"Arrow is a language-agnostic data interchange format that allows for zero-copy reads and supports many column types.\",\n        \"similar\": \"Arrow is a data interchange format that is not specific to any language and enables zero-copy reads, as well as accommodating a variety of column types.\"\n    },\n    {\n        \"origin\": \"Arrow's format allows for zero-copy reads, which removes serialization overhead, and it is column-oriented, making it faster at querying and processing slices or columns of data. Arrow also supports many column types and allows for copy-free hand-offs to standard machine learning tools.\",\n        \"similar\": \"Arrow's format is designed to enable zero-copy reads, thereby eliminating serialization overhead, and its column-oriented structure makes it highly efficient when it comes to querying and processing data slices or columns. Moreover, Arrow supports a wide range of column types and facilitates copy-free hand-offs to common machine learning tools.\"\n    },\n    {\n        \"origin\": \"Arrow's memory-mapping feature allows for datasets to be backed by an on-disk cache, which is memory-mapped for fast lookup. This architecture allows for large datasets to be used on machines with relatively small device memory.\",\n        \"similar\": \"Arrow's memory-mapping capability permits datasets to be supported by an on-disk cache, which is mapped to memory for quick retrieval. This design makes it possible to use large datasets on machines with limited device memory.\"\n    },\n    {\n        \"origin\": \"Iterating over a memory-mapped dataset using Arrow is fast. For example, iterating over the full English Wikipedia dataset on a laptop gives speeds of 1-3 Gbit/s.\",\n        \"similar\": \"Iterating through a memory-mapped dataset with Arrow is speedy. For instance, going through the full English Wikipedia dataset on a laptop yields speeds of 1-3 Gbit/s.\"\n    },\n    {\n        \"origin\": \"A dataset card is a tool to promote responsible usage and inform users of any potential biases within a dataset.\",\n        \"similar\": \"A dataset card serves to encourage responsible usage and alert users to any potential biases that may exist in a dataset.\"\n    },\n    {\n        \"origin\": \"Dataset cards help users understand and evaluate the data they are using, including any potential biases or limitations.\",\n        \"similar\": \"Cards for datasets enable users to comprehend and appraise the data they are utilizing, including any possible biases or restrictions.\"\n    },\n    {\n        \"origin\": \"To create a dataset card, you should provide information about the dataset, including its purpose, potential biases, and any relevant metadata.\",\n        \"similar\": \"In order to construct a dataset card, you should furnish data about the dataset, including its intent, any potential prejudices, and any applicable metadata.\"\n    },\n    {\n        \"origin\": \"A dataset card is a `README.md` file in a dataset repository that provides information about the dataset's contents, context, creation, and other considerations for users.\",\n        \"similar\": \"A `README.md` file in a dataset repository, known as a dataset card, is designed to give users information regarding the dataset's context, creation, and other related considerations.\"\n    },\n    {\n        \"origin\": \"You can create a dataset card by going to your dataset repository on the Hub and clicking on \\\"Create Dataset Card\\\". Then, use the Metadata UI to select relevant tags and fill out a template with information about the dataset.\",\n        \"similar\": \"To make a dataset card, go to your dataset repository on the Hub and click \\\"Create Dataset Card\\\". Afterwards, use the Metadata UI to pick applicable tags and fill out the template with details about the dataset.\"\n    },\n    {\n        \"origin\": \"A dataset card should include information about the dataset's contents, context for using the dataset, how it was created, and any other considerations that users should be aware of. You can refer to the Dataset Card Creation Guide for more detailed information about what to include in each section of the card.\",\n        \"similar\": \"A Dataset Card should provide information regarding the dataset's contents, context for utilization, how it was formulated, and any other relevant considerations that users should take into account. For more detailed information on what to include in each part of the card, please refer to the Dataset Card Creation Guide.\"\n    },\n    {\n        \"origin\": \"No, there are no required tags for a dataset card. However, selecting relevant tags can help users discover and find your dataset on the Hub.\",\n        \"similar\": \"It is not necessary to add tags to a dataset card; nevertheless, it is advantageous to choose pertinent tags to facilitate users to locate your dataset on the Hub.\"\n    },\n    {\n        \"origin\": \"Yes, you can use existing dataset cards such as SNLI, CNN/DailyMail, and Allocin\\u00e9 as examples to help you get started with creating your own dataset card.\",\n        \"similar\": \"You can take advantage of existing dataset cards such as SNLI, CNN/DailyMail, and Allocin\\u00e9 to get a head start on creating your own dataset card.\"\n    },\n    {\n        \"origin\": \"The Datasets documentation provides information and guides on how to use and process various types of datasets.\",\n        \"similar\": \"The Datasets documentation furnishes directions and data on the utilization and manipulation of different types of datasets.\"\n    },\n    {\n        \"origin\": \"The documentation covers audio, vision, text, and tabular datasets.\",\n        \"similar\": \"The documentation encompasses datasets related to audio, vision, text, and tabular.\"\n    },\n    {\n        \"origin\": \"The Datasets library provides specific methods for processing text datasets, including tokenization and label alignment for NLI datasets.\",\n        \"similar\": \"The Datasets library furnishes particular techniques for dealing with text datasets, including tokenization and matching of labels for NLI datasets.\"\n    },\n    {\n        \"origin\": \"By joining the Hugging Face community, users can access an augmented documentation experience, collaborate on models and datasets, and get faster examples with accelerated inference.\",\n        \"similar\": \"By becoming a member of the Hugging Face community, users can take advantage of an enhanced documentation experience, work together on models and datasets, and get quicker examples with improved inference.\"\n    },\n    {\n        \"origin\": \"The map() function in the datasets package supports processing batches of examples at once which speeds up tokenization.\",\n        \"similar\": \"The datasets package's map() function facilitates the tokenization of multiple examples in a single batch, thereby increasing its speed.\"\n    },\n    {\n        \"origin\": \"You can load a tokenizer from the Transformers package by using the following code: from transformers import AutoTokenizer and then tokenizer = AutoTokenizer.from_pretrained(\\\"bert-base-cased\\\").\",\n        \"similar\": \"The following code can be used to get a tokenizer from the Transformers package: from transformers import AutoTokenizer and then tokenizer = AutoTokenizer.from_pretrained(\\\"bert-base-cased\\\").\"\n    },\n    {\n        \"origin\": \"You can apply the tokenizer to batches of examples by setting the batched parameter to True in the map() function and passing the examples to the tokenizer.\",\n        \"similar\": \"By setting the batched parameter to True in the map() function and passing the examples to the tokenizer, it is possible to apply the tokenizer to batches of examples.\"\n    },\n    {\n        \"origin\": \"You can align a dataset label id with the label name by using the align_labels_with_mapping() function and passing a dictionary of the label mappings and the column to align on.\",\n        \"similar\": \"The align_labels_with_mapping() function can be used to match a dataset label id with its label name by providing a dictionary of label mappings and the column to align on.\"\n    },\n    {\n        \"origin\": \"This document is a documentation for datasets.\",\n        \"similar\": \"This document serves as an overview of datasets.\"\n    },\n    {\n        \"origin\": \"There are two methods for creating and sharing an image dataset. One method is to use `ImageFolder` and add metadata.\",\n        \"similar\": \"One way to create and distribute an image dataset is to utilize `ImageFolder` and incorporate metadata.\"\n    },\n    {\n        \"origin\": \"Yes, using `ImageFolder` is a no-code solution for quickly creating an image dataset with several thousand images.\",\n        \"similar\": \"`ImageFolder` is a no-code approach that allows one to rapidly generate an image dataset with thousands of images.\"\n    },\n    {\n        \"origin\": \"The document provides information on creating audio, vision, text, and tabular datasets.\",\n        \"similar\": \"This document furnishes data on how to assemble audio, visual, textual, and tabular datasets.\"\n    },\n    {\n        \"origin\": \"Yes, you can collaborate on models, datasets, and Spaces using the Hugging Face community.\",\n        \"similar\": \"It is possible to work together on models, datasets, and Spaces through the Hugging Face community.\"\n    },\n    {\n        \"origin\": \"Yes, you can switch between documentation themes by signing up for the augmented documentation experience.\",\n        \"similar\": \"By signing up for the augmented documentation experience, you can change between documentation themes.\"\n    },\n    {\n        \"origin\": \"It is a file that contains metadata information about objects in an image, including their bounding boxes and categories.\",\n        \"similar\": \"This file holds metadata about objects in an image, including their boundaries and classifications.\"\n    },\n    {\n        \"origin\": \"You can load a dataset with `ImageFolder` by using the `load_dataset` function and specifying the `imagefolder` dataset type, along with the directory path and split.\",\n        \"similar\": \"The `load_dataset` function can be used to load a dataset of type `ImageFolder` by providing the directory path and split.\"\n    },\n    {\n        \"origin\": \"You can share your dataset to the Hub by using the `push_to_hub()` method and specifying your Hugging Face account and the name of your dataset.\",\n        \"similar\": \"You can upload your dataset to the Hub by calling the `push_to_hub()` method and providing your Hugging Face account details and the name of your dataset.\"\n    },\n    {\n        \"origin\": \"A dataset loading script is a Python script that defines a dataset's splits and configurations, and handles downloading and generating the dataset.\",\n        \"similar\": \"A Python script which defines the splits and configurations of a dataset, as well as managing the downloading and generation of the dataset, is known as a dataset loading script.\"\n    },\n    {\n        \"origin\": \"The base class for datasets generated from a dictionary generator is `GeneratorBasedBuilder`.\",\n        \"similar\": \"The `GeneratorBasedBuilder` is the foundation class for datasets that are generated from a dictionary generator.\"\n    },\n    {\n        \"origin\": \"The document mentions the Imagenette dataset and provides a link to it, but does not give a detailed description of it.\",\n        \"similar\": \"The document makes reference to the Imagenette dataset and furnishes a link to it, yet does not supply a thorough explanation of it.\"\n    },\n    {\n        \"origin\": \"You can use the BuilderConfig class to create a subclass for your dataset and provide the links to download the images and labels in data_url and metadata_urls.\",\n        \"similar\": \"A subclass of BuilderConfig can be created to generate the links to download the images and labels in data_url and metadata_urls.\"\n    },\n    {\n        \"origin\": \"You can define your subsets at the top of GeneratorBasedBuilder and provide a name, description, and where to download the images and labels from for each configuration.\",\n        \"similar\": \"At the top of GeneratorBasedBuilder, you can specify the subsets you want to create with a name, description, and the source of images and labels for each configuration.\"\n    },\n    {\n        \"origin\": \"Users can load a specific configuration of the dataset by using the configuration name when calling the load_dataset function.\",\n        \"similar\": \"The load_dataset function allows users to access a particular configuration of the dataset by specifying the configuration name.\"\n    },\n    {\n        \"origin\": \"Some important information to include in the DatasetInfo class are description, features, supervised_keys, homepage, citation, and license.\",\n        \"similar\": \"In the DatasetInfo class, it is essential to include details such as description, features, supervised_keys, homepage, citation, and license.\"\n    },\n    {\n        \"origin\": \"The given code is a guide for generating datasets using the Hugging Face Datasets library.\",\n        \"similar\": \"The Hugging Face Datasets library provides a code to create datasets.\"\n    },\n    {\n        \"origin\": \"The DownloadManager.download() method accepts a name to a file inside a Hub dataset repository, a URL to a file hosted somewhere else, or a list or dictionary of file names or URLs.\",\n        \"similar\": \"The DownloadManager.download() method can take a file name from a Hub dataset repository, a URL pointing to a file hosted externally, or a list/dictionary containing file names/URLs.\"\n    },\n    {\n        \"origin\": \"The splits should be named with a standard name like: `Split.TRAIN`, `Split.TEST`, and `SPLIT.Validation`.\",\n        \"similar\": \"Splits should be labeled using a standardized naming convention such as `Split.TRAIN`, `Split.TEST`, and `SPLIT.Validation`.\"\n    },\n    {\n        \"origin\": \"The _generate_examples() method generates images and labels for splits.\",\n        \"similar\": \"The _generate_examples() function produces images and labels for divisions.\"\n    },\n    {\n        \"origin\": \"The purpose of the given code is to yield a dictionary containing image path, image bytes, and label for each image file in the specified directory.\",\n        \"similar\": \"The given code is designed to generate a dictionary with image path, image bytes, and label for each image file located in the specified directory.\"\n    },\n    {\n        \"origin\": \"The command to generate dataset metadata and test the loading script is \\\"datasets-cli test path/to/<your-dataset-loading-script> --save_info --all_configs\\\".\",\n        \"similar\": \"To create metadata for the dataset and check the loading script, use the command \\\"datasets-cli test path/to/<your-dataset-loading-script> --save_info --all_configs\\\".\"\n    },\n    {\n        \"origin\": \"The dataset can be loaded from the Hub using the \\\"load_dataset\\\" function from the \\\"datasets\\\" module by specifying the username and dataset name.\",\n        \"similar\": \"The \\\"load_dataset\\\" function from the \\\"datasets\\\" module enables one to access the dataset from the Hub by providing the username and dataset name.\"\n    },\n    {\n        \"origin\": \"The two types of dataset objects are Dataset and IterableDataset.\",\n        \"similar\": \"Two varieties of dataset objects are Dataset and IterableDataset.\"\n    },\n    {\n        \"origin\": \"The difference between Dataset and IterableDataset is not specified in the given document.\",\n        \"similar\": \"It is not stated in the given document what the distinction is between Dataset and IterableDataset.\"\n    },\n    {\n        \"origin\": \"The main difference between a Dataset and an IterableDataset is that a Dataset provides random access to the rows, while an IterableDataset loads the data progressively as you iterate over the dataset.\",\n        \"similar\": \"A major distinction between a Dataset and an IterableDataset is that a Dataset allows for random access to the rows, while an IterableDataset loads the data gradually as it is traversed.\"\n    },\n    {\n        \"origin\": \"An IterableDataset is ideal for big datasets (think hundreds of GBs!) due to its lazy behavior and speed advantages. It is also great for streaming datasets made out of multiple shards, each of which is hundreds of gigabytes.\",\n        \"similar\": \"The IterableDataset is perfect for large datasets (think hundreds of GBs!) because of its lazy loading and speed benefits. It is also great for streaming datasets composed of multiple shards, each of which is hundreds of gigabytes.\"\n    },\n    {\n        \"origin\": \"You can access a row in a Dataset using `my_dataset[0]`, which provides random access to the rows.\",\n        \"similar\": \"Random access to the rows of a Dataset can be achieved by using `my_dataset[0]`.\"\n    },\n    {\n        \"origin\": \"You can access a row in an IterableDataset using a `for` loop to load the data progressively as you iterate over the dataset.\",\n        \"similar\": \"A `for` loop can be used to load data progressively from an IterableDataset row by row.\"\n    },\n    {\n        \"origin\": \"You can create a Dataset using lists or dictionaries, and the data is entirely converted to Arrow so you can easily access any row.\",\n        \"similar\": \"You can construct a Dataset from either lists or dictionaries, and all the data is converted to Arrow, thus allowing you to access any row with ease.\"\n    },\n    {\n        \"origin\": \"To create an IterableDataset, you must provide a \\u201clazy\\u201d way to load the data. In Python, we generally use generator functions. These functions `yield` one example at a time.\",\n        \"similar\": \"In order to construct an IterableDataset, a \\\"lazy\\\" loading method must be supplied. For this purpose, generator functions are commonly used in Python, which `emit` a single example at a time.\"\n    },\n    {\n        \"origin\": \"The conversion step from CSV to Arrow format is required to load the dataset and it takes time and disk space if the dataset is big.\",\n        \"similar\": \"The transformation from CSV to Arrow format is essential for loading the dataset and it can be time-consuming and space-consuming if the dataset is large.\"\n    },\n    {\n        \"origin\": \"You can define an IterableDataset by streaming from the local files directly to skip the conversion step and save disk space.\",\n        \"similar\": \"You can stream local files directly to an IterableDataset, thereby avoiding the need to convert and thus conserving disk space.\"\n    },\n    {\n        \"origin\": \"Many file formats are supported, including CSV, JSONL, Parquet, image, and audio files.\",\n        \"similar\": \"A variety of file formats are accepted, such as CSV, JSONL, Parquet, images, and audio.\"\n    },\n    {\n        \"origin\": \"Eager data processing processes the entire dataset immediately and returns it, while lazy data processing applies the processing steps on-the-fly when iterating over the dataset.\",\n        \"similar\": \"Data processing that is done eagerly processes the entire dataset right away and provides the result, whereas lazy data processing performs the operations as it goes through the dataset.\"\n    },\n    {\n        \"origin\": \"Exact shuffling is used for Datasets and shuffles the dataset exactly, while fast approximate shuffling is used for IterableDatasets and uses a shuffle buffer to sample random examples iteratively from the dataset.\",\n        \"similar\": \"Exact shuffling is employed for Datasets, which shuffles the dataset precisely, while fast approximate shuffling is utilized for IterableDatasets and utilizes a shuffle buffer to take random examples iteratively from the dataset.\"\n    },\n    {\n        \"origin\": \"An IterableDataset is a type of dataset in the Hugging Face Datasets library that provides fast data loading when iterating using a for loop.\",\n        \"similar\": \"A for loop can be used to quickly access data from an IterableDataset, which is a kind of dataset in the Hugging Face Datasets library.\"\n    },\n    {\n        \"origin\": \"You can create an IterableDataset from a generator function by using the from_generator method of the IterableDataset class and passing in the generator function and its arguments as arguments to the method.\",\n        \"similar\": \"The IterableDataset class' from_generator method can be used to construct an IterableDataset from a generator function, with the generator function and its parameters being passed in as arguments.\"\n    },\n    {\n        \"origin\": \"You can shuffle an IterableDataset by using the shuffle method of the IterableDataset class and passing in a seed and buffer size as arguments. The shuffle method only shuffles the shards order and adds a shuffle buffer to your dataset, which keeps the speed of your dataset optimal.\",\n        \"similar\": \"The IterableDataset class provides a shuffle method which takes a seed and buffer size as arguments. This method rearranges the order of the shards and adds a buffer to the dataset, thus ensuring the speed of the dataset remains optimal.\"\n    },\n    {\n        \"origin\": \"If you want to switch from a map-style Dataset to an IterableDataset, you can simply create a new IterableDataset object from your existing data using the appropriate method for your data source.\",\n        \"similar\": \"To transition from a map-style Dataset to an IterableDataset, you can easily generate a new IterableDataset object from your existing data by utilizing the suitable method for your data source.\"\n    },\n    {\n        \"origin\": \"You can shuffle your dataset by generating a shared IterableDataset using the to_iterable_dataset() method and then using it with a PyTorch DataLoader.\",\n        \"similar\": \"You can mix up your dataset by creating a shared IterableDataset with the to_iterable_dataset() method and then utilizing it with a PyTorch DataLoader.\"\n    },\n    {\n        \"origin\": \"An IterableDataset is a type of dataset that allows for streaming and lazy data processing. It can be generated using the to_iterable_dataset() method.\",\n        \"similar\": \"A streaming and lazy data processing can be achieved with an IterableDataset, which can be created by using the to_iterable_dataset() method.\"\n    },\n    {\n        \"origin\": \"You can create an IterableDataset with a specific number of shards by using the to_iterable_dataset() method with the num_shards parameter.\",\n        \"similar\": \"By using the to_iterable_dataset() method with the num_shards parameter, it is possible to generate an IterableDataset with a specific number of shards.\"\n    },\n    {\n        \"origin\": \"Dataset is a map-style dataset that loads local files entirely, while IterableDataset is a streaming dataset that loads files progressively. Dataset uses eager data processing, while IterableDataset uses lazy data processing. Dataset shuffling is exact, while IterableDataset shuffling is fast and approximate.\",\n        \"similar\": \"Dataset loads all the local files at once, while IterableDataset streams them in a progressive manner. Dataset performs data processing eagerly, while IterableDataset does it lazily. Dataset shuffling is precise, while IterableDataset shuffling is speedy but not as accurate.\"\n    },\n    {\n        \"origin\": \"You can switch from map-style to iterable dataset by using the to_iterable_dataset() method.\",\n        \"similar\": \"The to_iterable_dataset() method can be used to transition from a map-style to an iterable dataset.\"\n    },\n    {\n        \"origin\": \"The Metrics section in the Datasets documentation is deprecated.\",\n        \"similar\": \"The Metrics section in the Datasets documentation has been discontinued.\"\n    },\n    {\n        \"origin\": \"To learn more about how to use metrics, you can take a look at the library \\ud83e\\udd17 Evaluate.\",\n        \"similar\": \"You can consult the library to gain insight into the application of metrics.\"\n    },\n    {\n        \"origin\": \"In addition to metrics, you can find more tools for evaluating models and datasets.\",\n        \"similar\": \"Apart from metrics, there are other resources available for assessing models and datasets.\"\n    },\n    {\n        \"origin\": \"`MetricInfo.inputs_description` is used to describe the expected inputs and outputs of a metric. It may also provide an example usage of the metric.\",\n        \"similar\": \"The `MetricInfo.inputs_description` is utilized to explain the inputs and outputs anticipated from a metric, and can also include an illustration of the metric's application.\"\n    },\n    {\n        \"origin\": \"`MetricInfo.features` defines the name and type of the predictions and references.\",\n        \"similar\": \"`MetricInfo.features` specifies the names and types of the predictions and references.\"\n    },\n    {\n        \"origin\": \"You can download metric files by using the `Metric._download_and_prepare()` method and providing a dictionary of URLs that point to the metric files.\",\n        \"similar\": \"The `Metric._download_and_prepare()` method can be used to acquire metric files by supplying a dictionary of URLs that link to them.\"\n    },\n    {\n        \"origin\": \"`DatasetBuilder._compute` provides the actual instructions for how to compute a metric given the predictions and references.\",\n        \"similar\": \"`DatasetBuilder._compute` furnishes the directions on how to work out a metric based on the predictions and references.\"\n    },\n    {\n        \"origin\": \"The function `acc_and_f1` returns accuracy and F1 score.\",\n        \"similar\": \"`acc_and_f1` gives back accuracy and F1 score.\"\n    },\n    {\n        \"origin\": \"The `DatasetBuilder._compute` function supports the following configurations: \\\"sst2\\\", \\\"mnli\\\", \\\"mnli_mismatched\\\", \\\"mnli_matched\\\", \\\"cola\\\", \\\"stsb\\\", \\\"mrpc\\\", \\\"qqp\\\", \\\"qnli\\\", \\\"rte\\\", \\\"wnli\\\", and \\\"hans\\\".\",\n        \"similar\": \"The `DatasetBuilder._compute` function is compatible with the configurations of \\\"sst2\\\", \\\"mnli\\\", \\\"mnli_mismatched\\\", \\\"mnli_matched\\\", \\\"cola\\\", \\\"stsb\\\", \\\"mrpc\\\", \\\"qqp\\\", \\\"qnli\\\", \\\"rte\\\", \\\"wnli\\\", and \\\"hans\\\".\"\n    },\n    {\n        \"origin\": \"The `load_metric` function is used to load a custom metric loading script.\",\n        \"similar\": \"The `load_metric` function serves to bring in a custom metric loading script.\"\n    },\n    {\n        \"origin\": \"LOADIN is a feature that was previously available in a specific version of the documentation.\",\n        \"similar\": \"LOADIN was a feature that was included in a certain version of the documentation.\"\n    },\n    {\n        \"origin\": \"No, LOADIN is not available in version 2.10.0 of the documentation.\",\n        \"similar\": \"Version 2.10.0 of the documentation does not include LOADIN.\"\n    },\n    {\n        \"origin\": \"You can find LOADIN documentation in the main version of the documentation by clicking on the provided link.\",\n        \"similar\": \"You can access the LOADIN documentation in the main version of the documentation by clicking on the link provided.\"\n    },\n    {\n        \"origin\": \"Semantic segmentation datasets are used to train a model to classify every pixel in an image.\",\n        \"similar\": \"Datasets for semantic segmentation are employed to teach a model to assign a label to each pixel in an image.\"\n    },\n    {\n        \"origin\": \"Some applications enabled by semantic segmentation datasets include background removal from images, stylizing images, or scene segmentation.\",\n        \"similar\": \"Applications that can be enabled with semantic segmentation datasets include the capability to remove backgrounds from images, stylize images, or divide scenes.\"\n    },\n    {\n        \"origin\": \"The purpose of the Datasets documentation is to provide information and guidance on how to use and work with datasets.\",\n        \"similar\": \"The goal of the Datasets documentation is to give instruction and advice on how to manipulate and employ datasets.\"\n    },\n    {\n        \"origin\": \"The Datasets documentation provides guidance on how to load and work with audio, vision, text, and tabular data.\",\n        \"similar\": \"The Datasets documentation offers advice on how to manage and manipulate audio, visual, textual, and tabular data.\"\n    },\n    {\n        \"origin\": \"Users can collaborate on models, datasets, and Spaces using the Hugging Face community.\",\n        \"similar\": \"Members of the Hugging Face community can work together on models, datasets, and Spaces.\"\n    },\n    {\n        \"origin\": \"Albumentations is a Python library for performing data augmentation for computer vision.\",\n        \"similar\": \"Albumentations is a Python library that provides data augmentation capabilities for computer vision.\"\n    },\n    {\n        \"origin\": \"The Scene Parsing dataset is used for segmenting and parsing an image into different image regions associated with semantic categories, such as sky, road, person, and bed.\",\n        \"similar\": \"The Scene Parsing dataset is employed for dividing an image into distinct regions correlated with semantic classes, like sky, road, person, and bed.\"\n    },\n    {\n        \"origin\": \"The Scene Parsing dataset has three fields: `image`, `annotation`, and `scene_category`.\",\n        \"similar\": \"The Scene Parsing dataset consists of three parts: `image`, `annotation`, and `scene_category`.\"\n    },\n    {\n        \"origin\": \"You can visualize the dataset by overlaying the segmentation mask on top of the original image using a color palette.\",\n        \"similar\": \"A color palette can be employed to superimpose the segmentation mask on the original image, thus allowing for visualization of the dataset.\"\n    },\n    {\n        \"origin\": \"The purpose of applying transformations to the dataset is to augment the data and improve the performance of computer vision models.\",\n        \"similar\": \"The goal of applying transformations to the dataset is to increase the data and enhance the accuracy of computer vision models.\"\n    },\n    {\n        \"origin\": \"You can use the set_transform() function to apply the transformation on-the-fly to batches of the dataset to consume less disk space.\",\n        \"similar\": \"The set_transform() function can be employed to apply the transformation to batches of the dataset in real-time, thus conserving disk space.\"\n    },\n    {\n        \"origin\": \"You can verify the transformation worked by indexing into the pixel_values and label of an example.\",\n        \"similar\": \"You can check if the transformation was successful by accessing the pixel_values and label of a sample.\"\n    },\n    {\n        \"origin\": \"Yes, it is possible to use torchvision to apply some similar transforms.\",\n        \"similar\": \"It is feasible to employ torchvision to effect some analogous transformations.\"\n    },\n    {\n        \"origin\": \"You can process a dataset for semantic segmentation by following the steps mentioned in the given document.\",\n        \"similar\": \"By adhering to the steps outlined in the document, one can process a dataset for semantic segmentation.\"\n    },\n    {\n        \"origin\": \"You can learn how to train a semantic segmentation model and use it for inference by following the link provided in the given document.\",\n        \"similar\": \"By following the link provided in the document, one can gain knowledge on how to train a semantic segmentation model and apply it for inference.\"\n    },\n    {\n        \"origin\": \"The purpose of the datasets.AutomaticSpeechRecognition class is to perform automatic speech recognition.\",\n        \"similar\": \"The AutomaticSpeechRecognition class is designed to carry out automatic speech recognition as its purpose.\"\n    },\n    {\n        \"origin\": \"The parameters of the datasets.AudioClassification class are task, audio_column, and label_column.\",\n        \"similar\": \"The parameters of the AudioClassification class of datasets are task, audio_column, and label_column.\"\n    },\n    {\n        \"origin\": \"The purpose of the align_with_features method in the datasets.ImageClassification and datasets.TextClassification classes is not specified in the given document.\",\n        \"similar\": \"The given document does not state the purpose of the align_with_features method in the datasets.ImageClassification and datasets.TextClassification classes.\"\n    },\n    {\n        \"origin\": \"The purpose of the datasets.LanguageModeling class is to perform language modeling.\",\n        \"similar\": \"The datasets.LanguageModeling class has been designed to carry out language modeling.\"\n    },\n    {\n        \"origin\": \"The parameters of the datasets.QuestionAnsweringExtractive class are task, question_column, context_column, and answers_column.\",\n        \"similar\": \"The parameters of the datasets.QuestionAnsweringExtractive class consist of task, question_column, context_column, and answers_column.\"\n    },\n    {\n        \"origin\": \"The purpose of the datasets.Summarization class is to perform summarization.\",\n        \"similar\": \"The aim of the datasets.Summarization class is to carry out summarization.\"\n    },\n    {\n        \"origin\": \"The parameters of the datasets.TextClassification class are task, text_column, and label_column.\",\n        \"similar\": \"The parameters of the TextClassification class from the datasets are designated as task, text_column, and label_column.\"\n    },\n    {\n        \"origin\": \"The PACKAGE_REFERENCE/MAIN_CLASSE documentation page is a page that provides information about a specific package reference.\",\n        \"similar\": \"The documentation page for PACKAGE_REFERENCE/MAIN_CLASSE offers details about the particular package reference.\"\n    },\n    {\n        \"origin\": \"No, the PACKAGE_REFERENCE/MAIN_CLASSE documentation page does not exist in v2.10.0.\",\n        \"similar\": \"The PACKAGE_REFERENCE/MAIN_CLASSE documentation page is not available in v2.10.0.\"\n    },\n    {\n        \"origin\": \"Yes, you can access the PACKAGE_REFERENCE/MAIN_CLASSE documentation page on the main version of the documentation by clicking on the provided link.\",\n        \"similar\": \"You can access the PACKAGE_REFERENCE/MAIN_CLASSE documentation page on the main version of the documentation by following the link provided.\"\n    },\n    {\n        \"origin\": \"A Dataset object is backed by a PyArrow Table.\",\n        \"similar\": \"A PyArrow Table serves as the foundation for a Dataset object.\"\n    },\n    {\n        \"origin\": \"Yes, a Table can be loaded from either the disk (memory mapped) or in memory.\",\n        \"similar\": \"It is possible to either load a Table from the disk (memory mapped) or keep it in memory.\"\n    },\n    {\n        \"origin\": \"Several Table types are available, and they all inherit from table.Table.\",\n        \"similar\": \"There are multiple Table types offered, all of which are derived from table.Table.\"\n    },\n    {\n        \"origin\": \"The Table class in datasets is a class that wraps a pyarrow Table by using composition.\",\n        \"similar\": \"The Table class in datasets is composed of a pyarrow Table.\"\n    },\n    {\n        \"origin\": \"The Table class implements all the basic attributes/methods of the pyarrow Table class except the Table transforms: `slice, filter, flatten, combine_chunks, cast, add_column, append_column, remove_column, set_column, rename_columns` and `drop`.\",\n        \"similar\": \"The Table class does not include the Table transforms: `slice, filter, flatten, combine_chunks, cast, add_column, append_column, remove_column, set_column, rename_columns` and `drop`, which are all basic attributes/methods of the pyarrow Table class.\"\n    },\n    {\n        \"origin\": \"The `validate` method in the Table class is used to perform validation checks. An exception is raised if validation fails. By default only cheap validation checks are run. Pass `full=True` for thorough validation checks (potentially `O(n)`).\",\n        \"similar\": \"The Table class's `validate` method is employed to execute validation tests. If validation is unsuccessful, an exception will be raised. By default, only inexpensive validation tests are run. To execute a more thorough validation test (which may be `O(n)`), pass `full=True`.\"\n    },\n    {\n        \"origin\": \"The `equals` method in the Table class is used to check if contents of two tables are equal.\",\n        \"similar\": \"The Table class's `equals` method is employed to verify if the contents of two tables are the same.\"\n    },\n    {\n        \"origin\": \"The `to_batches` method in the Table class is used to convert Table to list of (contiguous) `RecordBatch` objects.\",\n        \"similar\": \"The `Table` class has a `to_batches` method which is used to transform it into a list of `RecordBatch` objects that are contiguous.\"\n    },\n    {\n        \"origin\": \"The `to_pydict` method in the Table class is used to convert the Table to a `dict` or `OrderedDict`.\",\n        \"similar\": \"The Table class provides a `to_pydict` method to transform it into either a `dict` or an `OrderedDict`.\"\n    },\n    {\n        \"origin\": \"The `to_pandas` method in the Table class is used to convert the Table to a `pandas.Series` or `pandas.DataFrame`.\",\n        \"similar\": \"The Table class's `to_pandas` method is utilized to transform the Table into either a `pandas.Series` or `pandas.DataFrame`.\"\n    },\n    {\n        \"origin\": \"The `safe` option in the `to_pandas` method controls whether a safe cast or not is needed for certain data types to store the data in a pandas DataFrame or Series.\",\n        \"similar\": \"The `safe` parameter in the `to_pandas` method determines if a secure conversion is necessary for certain data types to be stored in a pandas DataFrame or Series.\"\n    },\n    {\n        \"origin\": \"The `split_blocks` option in the `to_pandas` method generates one internal \\\"block\\\" for each column when creating a pandas DataFrame from a RecordBatch or Table.\",\n        \"similar\": \"When using the `to_pandas` method, the `split_blocks` option will create a single \\\"block\\\" for each column in the resulting pandas DataFrame from a RecordBatch or Table.\"\n    },\n    {\n        \"origin\": \"The `self_destruct` option in the `to_pandas` method attempts to deallocate the originating Arrow memory while converting the Arrow object to pandas. However, if the object is used after calling `to_pandas` with this option, it will crash the program.\",\n        \"similar\": \"The `to_pandas` method's `self_destruct` option attempts to free up the Arrow memory when converting the Arrow object to pandas. However, if the object is used after this option is enabled, it will cause the program to crash.\"\n    },\n    {\n        \"origin\": \"The `types_mapper` option in the `to_pandas` method is a function that maps a pyarrow DataType to a pandas `ExtensionDtype`. This can be used to override the default pandas type for conversion of built-in pyarrow types or in absence of `pandas_metadata` in the Table schema.\",\n        \"similar\": \"The `to_pandas` method's `types_mapper` option is a function that assigns a pyarrow DataType to a pandas `ExtensionDtype`. This can be utilized to supersede the default pandas type for the conversion of built-in pyarrow types or when `pandas_metadata` is not present in the Table schema.\"\n    },\n    {\n        \"origin\": \"The `to_string` method converts the table to a string representation.\",\n        \"similar\": \"The `to_string` method renders the table as a string.\"\n    },\n    {\n        \"origin\": \"The `field` method selects a schema field by its column name or numeric index.\",\n        \"similar\": \"A column name or numeric index can be used to select a schema field with the `field` method.\"\n    },\n    {\n        \"origin\": \"The `column` method selects a column by its column name or numeric index.\",\n        \"similar\": \"A column can be chosen by its name or numerical index using the `column` method.\"\n    },\n    {\n        \"origin\": \"The `itercolumns` method iterates over all columns in their numerical order.\",\n        \"similar\": \"The numerical order of all columns is traversed by the `itercolumns` method.\"\n    },\n    {\n        \"origin\": \"The `schema` method returns the schema of the table and its columns.\",\n        \"similar\": \"The `schema` method gives out the structure of the table and the columns it contains.\"\n    },\n    {\n        \"origin\": \"The `columns` method returns a list of all columns in numerical order.\",\n        \"similar\": \"The `columns` method produces a list of all columns in numerical sequence.\"\n    },\n    {\n        \"origin\": \"The `num_columns` method returns the number of columns in the table.\",\n        \"similar\": \"The `num_columns` method gives back the amount of columns in the table.\"\n    },\n    {\n        \"origin\": \"The `num_rows` method returns the number of rows in the table.\",\n        \"similar\": \"The `num_rows` method gives the quantity of rows in the table.\"\n    },\n    {\n        \"origin\": \"The `shape` method returns the dimensions of the table: (#rows, #columns).\",\n        \"similar\": \"The `shape` method provides the number of rows and columns in the table.\"\n    },\n    {\n        \"origin\": \"The `nbytes` method returns the total number of bytes consumed by the elements of the table.\",\n        \"similar\": \"The `nbytes` method gives the size in bytes of all the elements in the table.\"\n    },\n    {\n        \"origin\": \"The `InMemoryTable` class is used to represent a table that is loaded into the user's RAM.\",\n        \"similar\": \"A `InMemoryTable` class is employed to signify a table that has been loaded into the user's Random Access Memory.\"\n    },\n    {\n        \"origin\": \"The `self_destruct` option in `to_pandas` is an experimental option that, if set to `True`, attempts to deallocate the originating Arrow memory while converting the Arrow object to pandas. However, if the object is used after calling `to_pandas` with this option, it will crash the program.\",\n        \"similar\": \"If `to_pandas` is called with the experimental `self_destruct` option set to `True`, it will attempt to free up the Arrow memory. However, if the object is used afterwards, it will result in a program crash.\"\n    },\n    {\n        \"origin\": \"The `types_mapper` option in `to_pandas` is a function that maps a pyarrow DataType to a pandas `ExtensionDtype`. This can be used to override the default pandas type for conversion of built-in pyarrow types or in absence of `pandas_metadata` in the Table schema.\",\n        \"similar\": \"The `types_mapper` option in `to_pandas` is a function that allows one to map a pyarrow DataType to a pandas `ExtensionDtype` for overriding the default pandas type for conversion of built-in pyarrow types or when `pandas_metadata` is not present in the Table schema.\"\n    },\n    {\n        \"origin\": \"The `field` method selects a schema field by its column name or numeric index.\",\n        \"similar\": \"A column name or numeric index can be used to select a schema field through the `field` method.\"\n    },\n    {\n        \"origin\": \"The `column` method selects a column by its column name or numeric index.\",\n        \"similar\": \"The `column` function allows the selection of a column by its name or numerical index.\"\n    },\n    {\n        \"origin\": \"The `itercolumns` method is an iterator over all columns in their numerical order.\",\n        \"similar\": \"An iterator over all columns in numerical order can be obtained using the `itercolumns` method.\"\n    },\n    {\n        \"origin\": \"The `schema` method returns the schema of the table and its columns.\",\n        \"similar\": \"The `schema` method provides the structure of the table and its columns.\"\n    },\n    {\n        \"origin\": \"The `columns` method returns a list of all columns in numerical order.\",\n        \"similar\": \"The `columns` method produces a list of all columns in numerical sequence.\"\n    },\n    {\n        \"origin\": \"The `num_columns` method returns the number of columns in the table.\",\n        \"similar\": \"The `num_columns` method provides the count of columns in the table.\"\n    },\n    {\n        \"origin\": \"The `num_rows` method returns the number of rows in the table.\",\n        \"similar\": \"The `num_rows` method gives the quantity of rows in the table.\"\n    },\n    {\n        \"origin\": \"The `shape` method returns the dimensions of the table: (#rows, #columns).\",\n        \"similar\": \"The `shape` method gives the size of the table, which is (#rows, #columns).\"\n    },\n    {\n        \"origin\": \"The `nbytes` method returns the total number of bytes consumed by the elements of the table.\",\n        \"similar\": \"The `nbytes` method gives the sum of bytes taken up by the elements in the table.\"\n    },\n    {\n        \"origin\": \"The `column_names` method returns the names of the table's columns.\",\n        \"similar\": \"The `column_names` method furnishes the titles of the table's columns.\"\n    },\n    {\n        \"origin\": \"The `slice` method computes a zero-copy slice of the table.\",\n        \"similar\": \"The `slice` method produces a slice of the table without any copying.\"\n    },\n    {\n        \"origin\": \"The `filter` method selects records from a table.\",\n        \"similar\": \"The `filter` method retrieves records from a table.\"\n    },\n    {\n        \"origin\": \"The `flatten` method flattens a table. Each column with a struct type is flattened into one column per struct field. Other columns are left unchanged.\",\n        \"similar\": \"The `flatten` method restructures a table, converting each column with a struct type into multiple columns, one for each struct field, while leaving other columns unaltered.\"\n    },\n    {\n        \"origin\": \"The `combine_chunks` method combines chunks of a table.\",\n        \"similar\": \"The `combine_chunks` method merges segments of a table.\"\n    },\n    {\n        \"origin\": \"The `memory_pool` parameter is used for memory allocations, if required, otherwise the default pool is used.\",\n        \"similar\": \"The `memory_pool` parameter is employed for memory allocations, if necessary, otherwise the default pool will be adopted.\"\n    },\n    {\n        \"origin\": \"The `cast` function casts table values to another schema.\",\n        \"similar\": \"The `cast` function transforms table values to another schema.\"\n    },\n    {\n        \"origin\": \"The `replace_schema_metadata` function creates a shallow copy of the table by replacing schema key-value metadata with the indicated new metadata.\",\n        \"similar\": \"A shallow copy of the table is created by the `replace_schema_metadata` function, which replaces the existing schema key-value metadata with the specified new metadata.\"\n    },\n    {\n        \"origin\": \"The `add_column` function adds a column to the table at a specified position.\",\n        \"similar\": \"A specified position can be used to insert a column into the table with the `add_column` function.\"\n    },\n    {\n        \"origin\": \"The `append_column` function appends a column at the end of the columns in the table.\",\n        \"similar\": \"The `append_column` function adds a column to the end of the columns in the table.\"\n    },\n    {\n        \"origin\": \"The `remove_column` function creates a new table with the indicated column removed.\",\n        \"similar\": \"A new table is generated by the `remove_column` function with the specified column taken out.\"\n    },\n    {\n        \"origin\": \"The `set_column` function replaces a column in the table at a specified position.\",\n        \"similar\": \"The `set_column` function puts a column in the table at a specified position, replacing any existing column.\"\n    },\n    {\n        \"origin\": \"The `rename_columns` function creates a new table with columns renamed to provided names.\",\n        \"similar\": \"A new table is generated by the `rename_columns` function with the columns having been renamed to the specified names.\"\n    },\n    {\n        \"origin\": \"The `select` function selects columns of the table and returns a new table with the specified columns, and metadata preserved.\",\n        \"similar\": \"A new table with the specified columns and metadata is produced by the `select` function, which selects columns from the original table.\"\n    },\n    {\n        \"origin\": \"The `drop` function is not described in the given document.\",\n        \"similar\": \"No information about the `drop` function is provided in the given document.\"\n    },\n    {\n        \"origin\": \"The purpose of the function `datasets.table.Table` is to drop one or more columns and return a new table.\",\n        \"similar\": \"The `datasets.table.Table` function is used to eliminate one or more columns and generate a fresh table.\"\n    },\n    {\n        \"origin\": \"The `datasets.table.Table` function takes the following parameters:\\n- `columns` (List[str]): List of field names referencing existing columns.\",\n        \"similar\": \"The `datasets.table.Table` function requires the following parameters:\\n- `columns` (List[str]): A list of field names that correspond to existing columns.\"\n    },\n    {\n        \"origin\": \"The `from_file` function is not described in the given document.\",\n        \"similar\": \"The given document does not provide an explanation of the `from_file` function.\"\n    },\n    {\n        \"origin\": \"The `from_buffer` function is not described in the given document.\",\n        \"similar\": \"No information about the `from_buffer` function is provided in the given document.\"\n    },\n    {\n        \"origin\": \"The purpose of the `from_pandas` function is to convert a pandas DataFrame to an Arrow Table.\",\n        \"similar\": \"The `from_pandas` function is intended to transform a pandas DataFrame into an Arrow Table.\"\n    },\n    {\n        \"origin\": \"The `from_pandas` function takes the following parameters:\\n- `df` (pandas.DataFrame): The pandas DataFrame to be converted.\\n- `schema` (pyarrow.Schema, optional): The expected schema of the Arrow Table.\\n- `preserve_index` (bool, optional): Whether to store the index as an additional column in the resulting Table.\\n- `nthreads` (int, optional): If greater than 1, convert columns to Arrow in parallel using indicated number of threads.\\n- `columns` (List[str], optional): List of column to be converted.\\n- `safe` (bool, optional): Check for overflows or other unsafe conversions.\",\n        \"similar\": \"The `from_pandas` function has the following parameters:\\n- `df` (pandas.DataFrame): The pandas DataFrame to be transformed.\\n- `schema` (pyarrow.Schema, optional): The expected schema of the Arrow Table.\\n- `preserve_index` (bool, optional): Whether to keep the index as an extra column in the resulting Table.\\n- `nthreads` (int, optional): If greater than 1, convert columns to Arrow in parallel using the specified number of threads.\\n- `columns` (List[str], optional): List of columns to be converted.\\n- `safe` (bool, optional): Check for overflows or other unsafe transformations.\"\n    },\n    {\n        \"origin\": \"The purpose of the `from_arrays` function is to construct a Table from Arrow arrays.\",\n        \"similar\": \"The `from_arrays` function serves to create a Table out of Arrow arrays.\"\n    },\n    {\n        \"origin\": \"The `from_arrays` function takes the following parameters:\\n- `arrays` (List[Union[pyarrow.Array, pyarrow.ChunkedArray]]): Equal-length arrays that should form the table.\\n- `names` (List[str], optional): Names for the table columns. If not passed, schema must be passed.\\n- `schema` (Schema, optional): Schema for the created table. If not passed, names must be passed.\\n- `metadata` (Union[dict, Mapping], optional): Optional metadata for the schema (if inferred).\",\n        \"similar\": \"The `from_arrays` function requires the following: \\n- `arrays` (List[Union[pyarrow.Array, pyarrow.ChunkedArray]]): A list of arrays with equal lengths that will form the table.\\n- `names` (List[str], optional): Names for the columns of the table. If not given, a schema must be provided.\\n- `schema` (Schema, optional): Schema for the created table. If not specified, names must be supplied.\\n- `metadata` (Union[dict, Mapping], optional): Optional metadata for the schema (if inferred).\"\n    },\n    {\n        \"origin\": \"The purpose of the `from_pydict` function is to construct a Table from Arrow arrays or columns.\",\n        \"similar\": \"The `from_pydict` function is intended to build a Table out of Arrow arrays or columns.\"\n    },\n    {\n        \"origin\": \"The `from_pydict` function takes the following parameters:\\n- `mapping` (Union[dict, Mapping]): A mapping of strings to Arrays or Python lists.\\n- `schema` (Schema, optional): If not passed, will be inferred from the Mapping values.\\n- `metadata` (Union[dict, Mapping], optional): Optional metadata for the schema (if inferred).\",\n        \"similar\": \"The `from_pydict` function requires the following:\\n- `mapping` (Union[dict, Mapping]): A collection of strings linked to Arrays or Python lists.\\n- `schema` (Schema, optional): If not given, it will be determined from the Mapping values.\\n- `metadata` (Union[dict, Mapping], optional): Optional metadata for the schema (if inferred).\"\n    },\n    {\n        \"origin\": \"The purpose of the `from_batches` function is not described in the given document.\",\n        \"similar\": \"The given document does not provide an explanation of the `from_batches` function's purpose.\"\n    },\n    {\n        \"origin\": \"The `date_as_object` parameter is used to cast dates to objects.\",\n        \"similar\": \"The `date_as_object` parameter serves to convert dates into objects.\"\n    },\n    {\n        \"origin\": \"The `timestamp_as_object` parameter is used to cast non-nanosecond timestamps to objects.\",\n        \"similar\": \"The `timestamp_as_object` parameter is employed to convert non-nanosecond timestamps into objects.\"\n    },\n    {\n        \"origin\": \"The `use_threads` parameter is used to parallelize the conversion using multiple threads.\",\n        \"similar\": \"The `use_threads` parameter is employed to speed up the transformation by utilizing multiple threads.\"\n    },\n    {\n        \"origin\": \"The `deduplicate_objects` parameter is used to not create multiple copies Python objects when created, to save on memory use.\",\n        \"similar\": \"The `deduplicate_objects` parameter is employed to avoid creating multiple instances of Python objects, thereby conserving memory.\"\n    },\n    {\n        \"origin\": \"The `ignore_metadata` parameter is used to not use the \\u2018pandas\\u2019 metadata to reconstruct the DataFrame index, if present.\",\n        \"similar\": \"The `ignore_metadata` parameter is employed to prevent the use of 'pandas' metadata to reconstruct the DataFrame index, if it exists.\"\n    },\n    {\n        \"origin\": \"The `safe` parameter is used to control whether a cast is needed in order to store the data in a pandas DataFrame or Series.\",\n        \"similar\": \"The `safe` parameter is employed to determine whether a conversion is necessary to store the data in a pandas DataFrame or Series.\"\n    },\n    {\n        \"origin\": \"The `split_blocks` parameter is used to generate one internal \\u201cblock\\u201d for each column when creating a pandas.DataFrame from a RecordBatch or Table.\",\n        \"similar\": \"The `split_blocks` parameter is employed to produce a single internal \\u201cblock\\u201d for each column when forming a pandas.DataFrame from a RecordBatch or Table.\"\n    },\n    {\n        \"origin\": \"The `self_destruct` parameter is an experimental feature that attempts to deallocate the originating Arrow memory while converting the Arrow object to pandas.\",\n        \"similar\": \"The `self_destruct` parameter is an experimental function which tries to free up the memory used by the Arrow object while converting it to pandas.\"\n    },\n    {\n        \"origin\": \"The return type of the `to_string` method is not specified in the given document.\",\n        \"similar\": \"The document does not specify what type of value is returned by the `to_string` method.\"\n    },\n    {\n        \"origin\": \"The `field` method is used to select a schema field by its column name or numeric index.\",\n        \"similar\": \"The `field` method is employed to pick out a schema field either by its column name or numerical index.\"\n    },\n    {\n        \"origin\": \"The `column` method is used to select a column by its column name, or numeric index.\",\n        \"similar\": \"The `column` function can be employed to select a column either by its name or its numerical index.\"\n    },\n    {\n        \"origin\": \"The `itercolumns` method is used to iterate over all columns in their numerical order.\",\n        \"similar\": \"The `itercolumns` method is employed to traverse all columns in numerical sequence.\"\n    },\n    {\n        \"origin\": \"The `schema` method is used to retrieve the schema of the table and its columns.\",\n        \"similar\": \"The `schema` procedure is employed to obtain the structure of the table and its components.\"\n    },\n    {\n        \"origin\": \"The `columns` method is used to retrieve a list of all columns in numerical order.\",\n        \"similar\": \"The `columns` method is employed to acquire a list of all columns in numerical sequence.\"\n    },\n    {\n        \"origin\": \"The `num_columns` method is used to retrieve the number of columns in this table.\",\n        \"similar\": \"The `num_columns` method can be employed to find out how many columns this table has.\"\n    },\n    {\n        \"origin\": \"The `num_rows` method is used to retrieve the number of rows in this table.\",\n        \"similar\": \"The `num_rows` method can be employed to obtain the quantity of rows in this table.\"\n    },\n    {\n        \"origin\": \"The `shape` method is used to retrieve the shape of the table, which is a tuple of the number of rows and columns.\",\n        \"similar\": \"The `shape` method is employed to obtain the dimensions of the table, represented as a tuple of the number of rows and columns.\"\n    },\n    {\n        \"origin\": \"\\\"nbytes\\\" refers to the total number of bytes consumed by the elements of the table.\",\n        \"similar\": \"The size of the table is measured in terms of the total number of bytes taken up by its elements.\"\n    },\n    {\n        \"origin\": \"The \\\"slice\\\" function computes a zero-copy slice of the table, with the option to specify an offset and length.\",\n        \"similar\": \"The \\\"slice\\\" function creates a portion of the table without making a copy, with the possibility to indicate an offset and size.\"\n    },\n    {\n        \"origin\": \"The \\\"filter\\\" function selects records from the table based on certain criteria, using the `pyarrow.compute.filter` method.\",\n        \"similar\": \"The `pyarrow.compute.filter` method is employed to select records from the table based on certain criteria through the \\\"filter\\\" function.\"\n    },\n    {\n        \"origin\": \"The \\\"flatten\\\" function flattens the table by creating one column per struct field for each column with a struct type.\",\n        \"similar\": \"The \\\"flatten\\\" function converts the table into one column for each struct field, for each column with a struct type.\"\n    },\n    {\n        \"origin\": \"The \\\"cast\\\" function casts the table values to another schema, with the option to check for overflows or other unsafe conversions.\",\n        \"similar\": \"The \\\"cast\\\" function transforms the table values to another schema, with the capability to detect overflows or any other unsafe conversions.\"\n    },\n    {\n        \"origin\": \"The \\\"add_column\\\" function adds a new column to the table at a specified index, with the option to pass in the column data and field name.\",\n        \"similar\": \"The \\\"add_column\\\" function inserts a column into the table at a designated index, with the option to provide the column data and column name.\"\n    },\n    {\n        \"origin\": \"The \\\"remove_column\\\" function creates a new table with the specified column removed.\",\n        \"similar\": \"A new table is generated by the \\\"remove_column\\\" function without the designated column.\"\n    },\n    {\n        \"origin\": \"The purpose of the \\\"set_column\\\" function is not given in the provided document.\",\n        \"similar\": \"The objective of the \\\"set_column\\\" function is not specified in the given document.\"\n    },\n    {\n        \"origin\": \"The `datasets.table.Table` class is used to create a new table with the passed column set.\",\n        \"similar\": \"A new table can be created with the `datasets.table.Table` class by providing the set of columns.\"\n    },\n    {\n        \"origin\": \"The `rename_columns` method is used to create a new table with columns renamed to provided names.\",\n        \"similar\": \"The `rename_columns` method is employed to generate a new table with columns having been renamed to the specified names.\"\n    },\n    {\n        \"origin\": \"The `select` method is used to select columns of the table and return a new table with the specified columns, and metadata preserved.\",\n        \"similar\": \"A new table with the specified columns and metadata is generated by using the `select` method to pick columns from the table.\"\n    },\n    {\n        \"origin\": \"The `drop` method is used to drop one or more columns and return a new table.\",\n        \"similar\": \"The `drop` function is employed to eliminate one or more columns and generate a fresh table.\"\n    },\n    {\n        \"origin\": \"The `from_file` method is used to create a new table from a file.\",\n        \"similar\": \"A file can be used to generate a new table via the `from_file` method.\"\n    },\n    {\n        \"origin\": \"The `datasets.table.ConcatenationTable` class is used to enable concatenation on both axis 0 (append rows) and axis 1 (append columns) of several tables called blocks.\",\n        \"similar\": \"The `datasets.table.ConcatenationTable` class allows the joining of multiple tables, referred to as blocks, along both axis 0 (for appending rows) and axis 1 (for appending columns).\"\n    },\n    {\n        \"origin\": \"The `validate` method is used to perform validation checks on the table.\",\n        \"similar\": \"The `validate` method is employed to execute validation tests on the table.\"\n    },\n    {\n        \"origin\": \"The `equals` method is used to check if two tables are equal.\",\n        \"similar\": \"The `equals` method can be employed to determine if two tables are identical.\"\n    },\n    {\n        \"origin\": \"The purpose of the `table.py` module is to provide functionality for working with tables in the `datasets` package.\",\n        \"similar\": \"The `table.py` module serves to furnish the `datasets` package with the capacity to manage tables.\"\n    },\n    {\n        \"origin\": \"The `to_batches` method in the `Table` class is used to convert a table to a list of contiguous `RecordBatch` objects.\",\n        \"similar\": \"The `Table` class has a `to_batches` method which is utilized to transform a table into a list of `RecordBatch` objects that are contiguous.\"\n    },\n    {\n        \"origin\": \"The `to_pydict` method in the `Table` class is used to convert a table to a Python dictionary or `OrderedDict`.\",\n        \"similar\": \"The `Table` class has a `to_pydict` method for transforming a table into a Python dictionary or `OrderedDict`.\"\n    },\n    {\n        \"origin\": \"The `to_pandas` method in the `Table` class is used to convert a table to a `pandas.Series` or `pandas.DataFrame`. It has many optional parameters to control the conversion process, such as specifying the memory pool to use, encoding string and binary types as `pandas.Categorical`, and casting integers with nulls to objects.\",\n        \"similar\": \"The `Table` class provides a `to_pandas` method for transforming a table into either a `pandas.Series` or `pandas.DataFrame`. It offers a variety of optional parameters to customize the conversion, such as allocating memory, encoding strings and binaries as `pandas.Categorical`, and changing integers with nulls to objects.\"\n    },\n    {\n        \"origin\": \"It depends on the type of object.\",\n        \"similar\": \"It is contingent on the kind of object.\"\n    },\n    {\n        \"origin\": \"It converts the object to a string.\",\n        \"similar\": \"It transforms the object into a string.\"\n    },\n    {\n        \"origin\": \"It selects a schema field by its column name or numeric index.\",\n        \"similar\": \"It chooses a schema field based on its column name or numerical index.\"\n    },\n    {\n        \"origin\": \"It selects a column by its column name or numeric index.\",\n        \"similar\": \"It chooses a column based on either its column name or numerical index.\"\n    },\n    {\n        \"origin\": \"It iterates over all columns in their numerical order.\",\n        \"similar\": \"It cycles through all columns in numerical sequence.\"\n    },\n    {\n        \"origin\": \"It returns the schema of the table and its columns.\",\n        \"similar\": \"It yields the layout of the table and its fields.\"\n    },\n    {\n        \"origin\": \"It returns a list of all columns in numerical order.\",\n        \"similar\": \"It produces a list of all columns in numerical sequence.\"\n    },\n    {\n        \"origin\": \"It returns the number of columns in the table.\",\n        \"similar\": \"It yields the amount of columns in the table.\"\n    },\n    {\n        \"origin\": \"It returns the number of rows in the table.\",\n        \"similar\": \"It yields the amount of rows in the table.\"\n    },\n    {\n        \"origin\": \"It returns the number of rows and number of columns.\",\n        \"similar\": \"It yields the amount of rows and columns.\"\n    },\n    {\n        \"origin\": \"It returns the total number of bytes consumed by the elements of the table.\",\n        \"similar\": \"It computes the aggregate number of bytes taken up by the elements of the table.\"\n    },\n    {\n        \"origin\": \"It returns the names of the table's columns.\",\n        \"similar\": \"It yields the titles of the table's columns.\"\n    },\n    {\n        \"origin\": \"It computes a zero-copy slice of the table.\",\n        \"similar\": \"It performs a zero-copy division of the table.\"\n    },\n    {\n        \"origin\": \"It selects records from a table.\",\n        \"similar\": \"It retrieves records from a table.\"\n    },\n    {\n        \"origin\": \"It flattens the table, with each column with a struct type being flattened into one column per struct field.\",\n        \"similar\": \"The table is flattened, with each column of struct type being converted into a single column for each struct field.\"\n    },\n    {\n        \"origin\": \"It makes a new table by combining the chunks that the table has.\",\n        \"similar\": \"It creates a new table by amalgamating the chunks that the table contains.\"\n    },\n    {\n        \"origin\": \"It casts table values to another schema.\",\n        \"similar\": \"It transfers the values of the table to a different schema.\"\n    },\n    {\n        \"origin\": \"It replaces the schema metadata.\",\n        \"similar\": \"It substitutes the metadata of the schema.\"\n    },\n    {\n        \"origin\": \"The `datasets.table.Table` class is used to represent tabular data.\",\n        \"similar\": \"The `datasets.table.Table` class serves as a representation of tabular data.\"\n    },\n    {\n        \"origin\": \"The `metadata` parameter is a dictionary that contains metadata about the table. It is an optional parameter that defaults to `None`.\",\n        \"similar\": \"The `metadata` parameter, an optional one with `None` as its default value, is a dictionary that holds information about the table.\"\n    },\n    {\n        \"origin\": \"The `shallow_copy` method creates a shallow copy of the table by replacing the schema key-value metadata with the indicated new metadata.\",\n        \"similar\": \"The `shallow_copy` method generates a shallow copy of the table, replacing the existing schema key-value metadata with the newly specified one.\"\n    },\n    {\n        \"origin\": \"The `add_column` method adds a new column to the table at a specified index position.\",\n        \"similar\": \"A specified index position is used by the `add_column` method to incorporate a new column into the table.\"\n    },\n    {\n        \"origin\": \"The `append_column` method appends a new column to the end of the columns in the table.\",\n        \"similar\": \"A new column is added to the table by the `append_column` method at the end of the existing columns.\"\n    },\n    {\n        \"origin\": \"The `remove_column` method creates a new table without the indicated column.\",\n        \"similar\": \"A new table is generated by the `remove_column` method, omitting the specified column.\"\n    },\n    {\n        \"origin\": \"The `set_column` method replaces a column in the table at a specified index position.\",\n        \"similar\": \"A specified index position is used to substitute a column in the table by the `set_column` method.\"\n    },\n    {\n        \"origin\": \"The `rename_columns` method creates a new table with columns renamed to provided names.\",\n        \"similar\": \"A new table is generated by the `rename_columns` method, with the columns renamed to the specified names.\"\n    },\n    {\n        \"origin\": \"The `select` method creates a new table with the specified columns and metadata preserved.\",\n        \"similar\": \"A new table is generated by the `select` method, which retains the specified columns and associated metadata.\"\n    },\n    {\n        \"origin\": \"The `drop` method drops one or more columns and returns a new table.\",\n        \"similar\": \"The `drop` method eliminates one or more columns and produces a fresh table.\"\n    },\n    {\n        \"origin\": \"The `from_blocks` method creates a new table from a `TableBlockContainer`.\",\n        \"similar\": \"A `TableBlockContainer` is used to generate a new table via the `from_blocks` method.\"\n    },\n    {\n        \"origin\": \"The `from_tables` method creates a new table from a list of tables.\",\n        \"similar\": \"A new table is generated by the `from_tables` method based on a collection of tables.\"\n    },\n    {\n        \"origin\": \"The `axis` parameter specifies the axis to concatenate over, where `0` means over rows (vertically) and `1` means over columns (horizontally).\",\n        \"similar\": \"The `axis` parameter determines the direction of concatenation, with `0` representing a vertical merge and `1` representing a horizontal one.\"\n    },\n    {\n        \"origin\": \"The `ConcatenationTable` class is a table class that is returned by the `concat_tables` function when the number of input tables is greater than one.\",\n        \"similar\": \"When the `concat_tables` function has more than one input table, the `ConcatenationTable` class is the table class that is returned.\"\n    },\n    {\n        \"origin\": \"The `list_table_cache_files` function is used to get the cache files that are loaded by the table.\",\n        \"similar\": \"The `list_table_cache_files` function retrieves the cache files loaded by the table.\"\n    },\n    {\n        \"origin\": \"The purpose of the Datasets documentation is to provide information on how to use the Datasets library.\",\n        \"similar\": \"The aim of the Datasets library documentation is to furnish guidance on how to employ it.\"\n    },\n    {\n        \"origin\": \"Some of the tutorials available in the Datasets documentation include loading a dataset from the Hub, preprocessing data, and creating a dataset.\",\n        \"similar\": \"The Datasets documentation offers tutorials on a variety of topics, such as loading a dataset from the Hub, preprocessing data, and constructing a dataset.\"\n    },\n    {\n        \"origin\": \"Some of the logging methods available in the Datasets library include adjusting the level of verbosity of the entire library.\",\n        \"similar\": \"The Datasets library offers a variety of logging techniques, such as altering the verbosity level of the entire library.\"\n    },\n    {\n        \"origin\": \"The default verbosity level of the library is set to `WARNING`.\",\n        \"similar\": \"The library has `WARNING` as its default verbosity level.\"\n    },\n    {\n        \"origin\": \"You can change the verbosity level by using one of the direct setters or by using the environment variable `DATASETS_VERBOSITY`.\",\n        \"similar\": \"You can adjust the verbosity level either by using one of the direct setters or by setting the environment variable `DATASETS_VERBOSITY`.\"\n    },\n    {\n        \"origin\": \"The different levels of verbosity, in order from the least to the most verbose, are `CRITICAL` or `FATAL`, `ERROR`, `WARNING` or `WARN`, `INFO`, and `DEBUG`.\",\n        \"similar\": \"The verbosity levels, from least to most, are `CRITICAL` or `FATAL`, `ERROR`, `WARNING` or `WARN`, `INFO`, and `DEBUG`.\"\n    },\n    {\n        \"origin\": \"You can use the method `logging.get_verbosity()` to get the current level of verbosity in the logger.\",\n        \"similar\": \"The logger's current level of verbosity can be obtained by using the `logging.get_verbosity()` method.\"\n    },\n    {\n        \"origin\": \"You can use the method `logging.set_verbosity()` to set the verbosity to the level of your choice.\",\n        \"similar\": \"The `logging.set_verbosity()` method can be used to adjust the verbosity to the desired level.\"\n    },\n    {\n        \"origin\": \"You can use the methods `logging.disable_progress_bar()` and `logging.enable_progress_bar()` to suppress or unsuppress the `tqdm` progress bars.\",\n        \"similar\": \"The `logging.disable_progress_bar()` and `logging.enable_progress_bar()` methods can be used to turn off and on the `tqdm` progress bars, respectively.\"\n    },\n    {\n        \"origin\": \"The purpose of `datasets.logging.set_verbosity(datasets.logging.ERROR)` is to set the logging level to ERROR.\",\n        \"similar\": \"`datasets.logging.set_verbosity(datasets.logging.ERROR)` is used to set the logging level to ERROR.\"\n    },\n    {\n        \"origin\": \"Log propagation can be disabled in the Hugging Face datasets library using the `datasets.utils.logging.disable_propagation()` function.\",\n        \"similar\": \"The Hugging Face datasets library allows the disabling of log propagation through the `datasets.utils.logging.disable_propagation()` function.\"\n    },\n    {\n        \"origin\": \"The Hugging Face datasets library's default handler can be disabled to prevent double logging by calling the `datasets.utils.logging.enable_propagation()` function.\",\n        \"similar\": \"By calling the `datasets.utils.logging.enable_propagation()` function, the Hugging Face datasets library's default handler can be disabled to avoid double logging.\"\n    },\n    {\n        \"origin\": \"The purpose of the `datasets.utils.logging.get_logger` function is to return a logger with the specified name, which can be used in dataset scripts.\",\n        \"similar\": \"The `datasets.utils.logging.get_logger` function is intended to provide a logger with the designated name for use in dataset scripts.\"\n    },\n    {\n        \"origin\": \"The tqdm progress bar can be enabled in the Hugging Face datasets library by calling the `datasets.enable_progress_bar()` function.\",\n        \"similar\": \"The Hugging Face datasets library offers the ability to enable the tqdm progress bar by invoking the `datasets.enable_progress_bar()` function.\"\n    },\n    {\n        \"origin\": \"The tqdm progress bar can be disabled in the Hugging Face datasets library by calling the `datasets.disable_progress_bar()` function.\",\n        \"similar\": \"The Hugging Face datasets library allows users to disable the tqdm progress bar by using the `datasets.disable_progress_bar()` function.\"\n    },\n    {\n        \"origin\": \"It can be determined whether tqdm progress bars are enabled in the Hugging Face datasets library by calling the `datasets.is_progress_bar_enabled()` function, which returns a boolean value.\",\n        \"similar\": \"To find out if tqdm progress bars are enabled in the Hugging Face datasets library, one can call the `datasets.is_progress_bar_enabled()` function, which will return a boolean value.\"\n    },\n    {\n        \"origin\": \"Builder classes are two main classes used during the dataset building process in Datasets documentation: DatasetBuilder and BuilderConfig.\",\n        \"similar\": \"Two main classes utilized in the Datasets documentation for the dataset building process are DatasetBuilder and BuilderConfig.\"\n    },\n    {\n        \"origin\": \"The purpose of Datasets documentation is to provide information and guidance on how to use the Datasets library, including tutorials, how-to guides, and reference materials.\",\n        \"similar\": \"The aim of the Datasets library documentation is to give users a comprehensive overview of how to use the library, including tutorials, step-by-step instructions, and reference materials.\"\n    },\n    {\n        \"origin\": \"Datasets documentation covers a wide range of topics, including audio, vision, text, and tabular data, as well as cache management, cloud storage, and metrics.\",\n        \"similar\": \"The documentation of datasets encompasses a broad variety of subjects, such as audio, vision, text, tabular data, cache administration, cloud storage, and metrics.\"\n    },\n    {\n        \"origin\": \"To join the Hugging Face community, you can sign up on their website and gain access to augmented documentation, collaborate on models and datasets, and switch between documentation themes.\",\n        \"similar\": \"By signing up on the Hugging Face website, you can become a part of their community and have access to enhanced documentation, work on models and datasets together, and choose from different documentation themes.\"\n    },\n    {\n        \"origin\": \"The `datasets.DatasetBuilder` class is an abstract base class for all datasets.\",\n        \"similar\": \"The `datasets.DatasetBuilder` class serves as the foundation for all datasets.\"\n    },\n    {\n        \"origin\": \"The `datasets.DatasetBuilder` class has two key methods: `DatasetBuilder.info` and `DatasetBuilder.download_and_prepare()`.\",\n        \"similar\": \"The `datasets.DatasetBuilder` class features two essential methods: `DatasetBuilder.info` and `DatasetBuilder.download_and_prepare()`.\"\n    },\n    {\n        \"origin\": \"The `cache_dir` parameter is used to specify the directory to cache data.\",\n        \"similar\": \"The parameter `cache_dir` is employed to designate the directory to store cached data.\"\n    },\n    {\n        \"origin\": \"The `config_name` parameter is used to specify the name of the dataset configuration. It affects the data generated on disk.\",\n        \"similar\": \"The `config_name` parameter affects the data generated on disk and is used to determine the name of the dataset configuration.\"\n    },\n    {\n        \"origin\": \"The `hash` parameter is used to specify a hash specific to the dataset code. It is used to update the caching directory when the dataset loading script code is updated.\",\n        \"similar\": \"The `hash` parameter is employed to indicate a particular hash that is related to the dataset code. It is utilized to refresh the caching directory when the dataset loading script code is revised.\"\n    },\n    {\n        \"origin\": \"The `features` parameter is used to specify the features types to use with this dataset. It can be used to change the `Features` types of a dataset.\",\n        \"similar\": \"The `features` parameter can be employed to designate the features types to be utilized with this dataset. It can also be used to modify the `Features` types of a dataset.\"\n    },\n    {\n        \"origin\": \"The `use_auth_token` parameter is used to specify a string or boolean to use as Bearer token for remote files on the Datasets Hub.\",\n        \"similar\": \"The `use_auth_token` parameter is employed to indicate a string or boolean to serve as a Bearer token for external files on the Datasets Hub.\"\n    },\n    {\n        \"origin\": \"The `data_files` parameter is used to specify the path(s) to source data file(s).\",\n        \"similar\": \"The path(s) to source data file(s) can be specified by the `data_files` parameter.\"\n    },\n    {\n        \"origin\": \"The `data_dir` parameter is used to specify the path to the directory containing source data file(s).\",\n        \"similar\": \"The path to the directory containing source data file(s) is specified by the `data_dir` parameter.\"\n    },\n    {\n        \"origin\": \"The `name` parameter is used to specify the configuration name for the dataset. It is now deprecated and should be replaced with `config_name`.\",\n        \"similar\": \"The `config_name` parameter should be used instead of the deprecated `name` parameter to specify the configuration name for the dataset.\"\n    },\n    {\n        \"origin\": \"It generates a `Dataset`.\",\n        \"similar\": \"It produces a `Dataset`.\"\n    },\n    {\n        \"origin\": \"Yes, some `DatasetBuilder`s expose multiple variants of the dataset by defining a `BuilderConfig` subclass and accepting a config object (or name) on construction.\",\n        \"similar\": \"A `BuilderConfig` subclass can be defined to expose multiple variants of the dataset, and a config object (or name) can be accepted on construction.\"\n    },\n    {\n        \"origin\": \"Configurable datasets are datasets that expose a pre-defined set of configurations in `DatasetBuilder.builder_configs()`.\",\n        \"similar\": \"Datasets with configurable options can be accessed through `DatasetBuilder.builder_configs()`.\"\n    },\n    {\n        \"origin\": \"The parameters of `as_dataset()` are `split`, `run_post_process`, `verification_mode`, `ignore_verifications`, and `in_memory`.\",\n        \"similar\": \"The `as_dataset()` function has five parameters: `split`, `run_post_process`, `verification_mode`, `ignore_verifications`, and `in_memory`.\"\n    },\n    {\n        \"origin\": \"It returns a `Dataset` for the specified split.\",\n        \"similar\": \"It yields a `Dataset` for the designated split.\"\n    },\n    {\n        \"origin\": \"It downloads and prepares the dataset.\",\n        \"similar\": \"It fetches and readies the dataset for downloading.\"\n    },\n    {\n        \"origin\": \"The parameters of `download_and_prepare()` are `output_dir`, `download_config`, `download_mode`, `verification_mode`, `ignore_verifications`, `try_from_hf_gcs`, `dl_manager`, `base_path`, `use_auth_token`, `file_format`, `max_shard_size`, `num_proc`, `storage_options`, and `download_and_prepare_kwargs`.\",\n        \"similar\": \"The `download_and_prepare()` function has the following parameters: `output_dir`, `download_config`, `download_mode`, `verification_mode`, `ignore_verifications`, `try_from_hf_gcs`, `dl_manager`, `base_path`, `use_auth_token`, `file_format`, `max_shard_size`, `num_proc`, `storage_options`, and `download_and_prepare_kwargs`.\"\n    },\n    {\n        \"origin\": \"`ignore_verifications` is not described in the given document.\",\n        \"similar\": \"No mention of `ignore_verifications` is made in the given document.\"\n    },\n    {\n        \"origin\": \"`verification_mode` should be used instead of `ignore_verifications`.\",\n        \"similar\": \"`ignore_verifications` should be replaced with `verification_mode`.\"\n    },\n    {\n        \"origin\": \"The `try_from_hf_gcs` parameter is used to try to download the already prepared dataset from the HF Google cloud storage if set to `True`.\",\n        \"similar\": \"The `try_from_hf_gcs` parameter can be set to `True` in order to attempt to retrieve the pre-prepared dataset from the HF Google cloud storage.\"\n    },\n    {\n        \"origin\": \"The `dl_manager` parameter is used to specify a specific `DownloadManager` to use.\",\n        \"similar\": \"A particular `DownloadManager` can be specified by the `dl_manager` parameter.\"\n    },\n    {\n        \"origin\": \"The `base_path` parameter is used as a base path for relative paths that are used to download files. It can be a remote URL.\",\n        \"similar\": \"The `base_path` parameter serves as a basis for relative paths to download files, which can be a remote URL.\"\n    },\n    {\n        \"origin\": \"The `use_auth_token` parameter is used as an optional string or boolean to use as Bearer token for remote files on the Datasets Hub. If True, or not specified, will get token from ~/.huggingface.\",\n        \"similar\": \"The `use_auth_token` parameter can be used as an optional string or boolean to use as a Bearer token for remote files on the Datasets Hub. If it is set to True or not specified, the token will be obtained from ~/.huggingface.\"\n    },\n    {\n        \"origin\": \"Pass `use_auth_token` to the initializer/`load_dataset_builder` instead.\",\n        \"similar\": \"Instead of passing `use_auth_token` to the initializer, use it for `load_dataset_builder`.\"\n    },\n    {\n        \"origin\": \"The `file_format` parameter is used to specify the format of the data files in which the dataset will be written.\",\n        \"similar\": \"The dataset will be written in a data file whose format is determined by the `file_format` parameter.\"\n    },\n    {\n        \"origin\": \"The default value of the `file_format` parameter is \\\"arrow\\\" format.\",\n        \"similar\": \"The \\\"arrow\\\" format is the pre-set value of the `file_format` parameter.\"\n    },\n    {\n        \"origin\": \"The supported formats for the `file_format` parameter are \\\"arrow\\\" and \\\"parquet\\\".\",\n        \"similar\": \"The `file_format` parameter accepts \\\"arrow\\\" and \\\"parquet\\\" as its supported formats.\"\n    },\n    {\n        \"origin\": \"The `max_shard_size` parameter is used to specify the maximum number of bytes written per shard.\",\n        \"similar\": \"The `max_shard_size` parameter determines the upper limit of bytes written per shard.\"\n    },\n    {\n        \"origin\": \"The default value of the `max_shard_size` parameter is \\\"500MB\\\".\",\n        \"similar\": \"The `max_shard_size` parameter has a default setting of \\\"500MB\\\".\"\n    },\n    {\n        \"origin\": \"The `num_proc` parameter is used to specify the number of processes when downloading and generating the dataset locally.\",\n        \"similar\": \"The `num_proc` parameter is employed to indicate the quantity of processes when obtaining and creating the dataset locally.\"\n    },\n    {\n        \"origin\": \"The default value of the `num_proc` parameter is `None`.\",\n        \"similar\": \"The `num_proc` parameter has `None` as its default setting.\"\n    },\n    {\n        \"origin\": \"The `storage_options` parameter is used to specify key/value pairs to be passed on to the caching file-system backend, if any.\",\n        \"similar\": \"The `storage_options` parameter is employed to indicate key/value pairs to be provided to the caching file-system backend, when applicable.\"\n    },\n    {\n        \"origin\": \"The `download_and_prepare_kwargs` parameter is used to pass additional keyword arguments to the `download_and_prepare` method.\",\n        \"similar\": \"The `download_and_prepare` method is supplied with extra keyword arguments through the `download_and_prepare_kwargs` parameter.\"\n    },\n    {\n        \"origin\": \"The `get_all_exported_dataset_infos` method is used to get all exported dataset infos.\",\n        \"similar\": \"The `get_all_exported_dataset_infos` method serves to retrieve all exported dataset information.\"\n    },\n    {\n        \"origin\": \"The purpose of *args and **kwargs in the Beam-based Builder is not mentioned in the given document.\",\n        \"similar\": \"The document does not specify the utilization of *args and **kwargs in the Beam-based Builder.\"\n    },\n    {\n        \"origin\": \"The ArrowBasedBuilder class is used as a base class for datasets with data generation based on Arrow loading functions (CSV/JSON/Parquet).\",\n        \"similar\": \"The ArrowBasedBuilder class serves as a foundation for datasets whose data is generated through Arrow loading functions (CSV/JSON/Parquet).\"\n    },\n    {\n        \"origin\": \"The purpose of the BuilderConfig class is to provide a base class for DatasetBuilder data configuration.\",\n        \"similar\": \"The BuilderConfig class serves as a foundation for configuring DatasetBuilder data.\"\n    },\n    {\n        \"origin\": \"The create_config_id method is used to build the cache directory and create a unique identifier for the dataset being generated.\",\n        \"similar\": \"The create_config_id method is employed to construct the cache directory and fabricate a distinctive identifier for the dataset being produced.\"\n    },\n    {\n        \"origin\": \"The DownloadManager class is used to manage the downloading and extraction of datasets.\",\n        \"similar\": \"The DownloadManager class is employed to oversee the downloading and unpacking of datasets.\"\n    },\n    {\n        \"origin\": \"The download method of the DownloadManager class is used to download a given URL or list/dict of URLs.\",\n        \"similar\": \"The DownloadManager class utilizes its download method to obtain a URL or a list/dict of URLs.\"\n    },\n    {\n        \"origin\": \"The download_and_extract method of the DownloadManager class is used to download and extract a given URL or list/dict of URLs.\",\n        \"similar\": \"The DownloadManager class has a download_and_extract method which is used to obtain and unpack a URL or a list/dict of URLs.\"\n    },\n    {\n        \"origin\": \"The download_custom method of the DownloadManager class is not mentioned in the given document.\",\n        \"similar\": \"The DownloadManager class's download_custom method is not referenced in the given document.\"\n    },\n    {\n        \"origin\": \"The `download_manager` module provides functions for downloading and extracting files from URLs.\",\n        \"similar\": \"The `download_manager` module furnishes functions for obtaining and unpacking files from URLs.\"\n    },\n    {\n        \"origin\": \"The `url_or_urls` argument of the `download` function can take a string URL or a list or dictionary of URLs to download and extract.\",\n        \"similar\": \"The `download` function's `url_or_urls` argument can accept either a single URL in string format, or a list/dictionary of URLs to be downloaded and extracted.\"\n    },\n    {\n        \"origin\": \"The `extract` function extracts given path(s).\",\n        \"similar\": \"The `extract` function takes out the path(s) specified.\"\n    },\n    {\n        \"origin\": \"The `iter_archive` function iterates over files within an archive.\",\n        \"similar\": \"The `iter_archive` function cycles through files inside an archive.\"\n    },\n    {\n        \"origin\": \"The `iter_files` function iterates over file paths.\",\n        \"similar\": \"The `iter_files` function cycles through file paths.\"\n    },\n    {\n        \"origin\": \"The `StreamingDownloadManager` class is a download manager that uses the \\u201d::\\u201d separator to navigate through (possibly remote) compressed archives.\",\n        \"similar\": \"The `StreamingDownloadManager` class is a download manager that employs the \\\"::\\\" separator to traverse (possibly remote) compressed files.\"\n    },\n    {\n        \"origin\": \"The `download` method of the `StreamingDownloadManager` class returns the path or url that could be opened using the `xopen` function which extends the built-in `open` function to stream data from remote files.\",\n        \"similar\": \"The `StreamingDownloadManager` class's `download` method returns a path or url that can be opened with the `xopen` function, which is an extension of the native `open` function for streaming data from remote sources.\"\n    },\n    {\n        \"origin\": \"The `DownloadManager` class is used to download and extract files from URLs.\",\n        \"similar\": \"The `DownloadManager` class is employed to obtain and unpack files from URLs.\"\n    },\n    {\n        \"origin\": \"The `download` method downloads the file from the given URL(s), while the `download_and_extract` method prepares the URL(s) for streaming and adds an extraction protocol.\",\n        \"similar\": \"The `download` function fetches the file from the specified URL(s), while the `download_and_extract` function prepares the URL(s) for streaming and incorporates an extraction protocol.\"\n    },\n    {\n        \"origin\": \"The `extract` method adds an extraction protocol for given URL(s) for streaming.\",\n        \"similar\": \"A protocol for streaming is added to the `extract` method for specified URL(s).\"\n    },\n    {\n        \"origin\": \"The `iter_archive` method iterates over files within an archive.\",\n        \"similar\": \"The `iter_archive` function cycles through the files contained in an archive.\"\n    },\n    {\n        \"origin\": \"The `iter_files` method iterates over files.\",\n        \"similar\": \"The `iter_files` method cycles through files.\"\n    },\n    {\n        \"origin\": \"The `DownloadConfig` class is used to configure the download process, such as specifying a cache directory, number of retries, and whether to use an authentication token.\",\n        \"similar\": \"The `DownloadConfig` class is employed to set up the download procedure, including designating a cache folder, the amount of retries, and if an authentication token is to be utilized.\"\n    },\n    {\n        \"origin\": \"The `resume_download` parameter is a boolean parameter that, when set to `True`, allows the download to be resumed if an incompletely received file is found.\",\n        \"similar\": \"When the `resume_download` parameter is set to `True`, it enables the download to be resumed from where it left off if an incomplete file is detected.\"\n    },\n    {\n        \"origin\": \"The `proxies` parameter is an optional dictionary parameter that can be used to specify proxy settings for the download.\",\n        \"similar\": \"The `proxies` dictionary can be used as an optional parameter to specify proxy settings for the download.\"\n    },\n    {\n        \"origin\": \"The `user_agent` parameter is an optional string or dictionary parameter that can be appended to the user-agent on remote requests.\",\n        \"similar\": \"An optional string or dictionary parameter, `user_agent`, can be added to the user-agent for remote requests.\"\n    },\n    {\n        \"origin\": \"The `extract_compressed_file` parameter is a boolean parameter that, when set to `True` and the path points to a zip or tar file, extracts the compressed file in a folder along the archive.\",\n        \"similar\": \"When the `extract_compressed_file` parameter is set to `True` and the path is a zip or tar file, the compressed file will be extracted in a folder beside the archive.\"\n    },\n    {\n        \"origin\": \"The `force_extract` parameter is a boolean parameter that, when set to `True` and `extract_compressed_file` is also set to `True`, re-extracts the archive and overrides the folder where it was extracted.\",\n        \"similar\": \"When `force_extract` is set to `True` and `extract_compressed_file` is also enabled, the archive will be re-extracted and the existing extracted folder will be replaced.\"\n    },\n    {\n        \"origin\": \"The `delete_extracted` parameter is a boolean parameter that, when set to `True`, deletes the extracted files.\",\n        \"similar\": \"When the `delete_extracted` parameter is set to `True`, the extracted files will be deleted.\"\n    },\n    {\n        \"origin\": \"The `use_etag` parameter is a boolean parameter that, when set to `True`, uses the ETag HTTP response header to validate the cached files.\",\n        \"similar\": \"When the `use_etag` parameter is set to `True`, the ETag HTTP response header is used to validate the cached files.\"\n    },\n    {\n        \"origin\": \"The `num_proc` parameter is an optional integer parameter that specifies the number of processes to launch to download the files in parallel.\",\n        \"similar\": \"An optional integer parameter `num_proc` can be specified to indicate the number of processes to be initiated for downloading the files in parallel.\"\n    },\n    {\n        \"origin\": \"The `max_retries` parameter is an integer parameter that specifies the number of times to retry an HTTP request if it fails.\",\n        \"similar\": \"The `max_retries` parameter is an integer that defines how many times an HTTP request should be attempted if it is unsuccessful.\"\n    },\n    {\n        \"origin\": \"The `use_auth_token` parameter is an optional string or boolean parameter that can be used as a Bearer token for remote files on the Datasets Hub.\",\n        \"similar\": \"The `use_auth_token` parameter is an optional string or boolean argument that can be employed as a Bearer token for accessing remote files on the Datasets Hub.\"\n    },\n    {\n        \"origin\": \"The `ignore_url_params` parameter is a boolean parameter that, when set to `True`, strips all query parameters and fragments from the download URL before using it for caching the file.\",\n        \"similar\": \"When `ignore_url_params` is set to `True`, all query parameters and fragments are removed from the download URL prior to caching the file.\"\n    },\n    {\n        \"origin\": \"The `download_desc` parameter is an optional string parameter that provides a description to be displayed alongside the progress bar while downloading the files.\",\n        \"similar\": \"An optional string parameter `download_desc` can be provided to display a description alongside the progress bar during the downloading of files.\"\n    },\n    {\n        \"origin\": \"The different stages of training and evaluation are TRAIN, VALIDATION, TEST, and ALL.\",\n        \"similar\": \"The various phases of training and assessment are TRAINING, VALIDATION, TESTING, and COMPLETE.\"\n    },\n    {\n        \"origin\": \"The validation data is typically used as evaluation data while iterating on a model (e.g. changing hyperparameters, model architecture, etc.).\",\n        \"similar\": \"Validation data is usually employed as a means of assessing the model while making alterations (e.g. adjusting hyperparameters, model structure, etc.).\"\n    },\n    {\n        \"origin\": \"The testing data is the data to report metrics on. Typically you do not want to use this during model iteration as you may overfit to it.\",\n        \"similar\": \"This data is used to measure performance metrics and should not be used for model development as it may lead to overfitting.\"\n    },\n    {\n        \"origin\": \"The NamedSplit class is a descriptor corresponding to a named split (train, test, \\u2026).\",\n        \"similar\": \"The NamedSplit class is a descriptor that is associated with a named split such as train, test, etc.\"\n    },\n    {\n        \"origin\": \"Splits can be composed using addition or slice by using the subsplit method and adding or slicing the resulting split.\",\n        \"similar\": \"Splitting can be achieved by either adding or slicing, and the subsplit technique can be employed to further divide the resulting split.\"\n    },\n    {\n        \"origin\": \"The NamedSplitAll class is a split corresponding to the union of all defined dataset splits.\",\n        \"similar\": \"The NamedSplitAll class is a division that is the combination of all the specified dataset splits.\"\n    },\n    {\n        \"origin\": \"The ReadInstruction class is a reading instruction for a dataset, which can be used to specify a split and its parameters.\",\n        \"similar\": \"The ReadInstruction class is a way of reading a dataset, allowing for the specification of a split and its parameters.\"\n    },\n    {\n        \"origin\": \"The `from_spec` function creates a `ReadInstruction` instance out of a string spec, which specifies the split(s) and optional slice(s) to read, as well as optional rounding if percents are used as the slicing unit.\",\n        \"similar\": \"A `ReadInstruction` instance is generated by the `from_spec` function from a string spec, which details the split(s) and slice(s) to be read, as well as any rounding that may be needed if percentages are employed as the slicing unit.\"\n    },\n    {\n        \"origin\": \"The `to_absolute` function translates a `ReadInstruction` instance into a list of absolute instructions, which are then added together.\",\n        \"similar\": \"The `ReadInstruction` instance is converted into a list of absolute instructions by the `to_absolute` function, and these instructions are then combined.\"\n    },\n    {\n        \"origin\": \"The `datasets.Version` class represents a dataset version, with a `MAJOR.MINOR.PATCH` format, and can include a description of what is new in that version.\",\n        \"similar\": \"The `datasets.Version` class is a representation of a dataset version in `MAJOR.MINOR.PATCH` format, with an option to include a description of the changes in that version.\"\n    },\n    {\n        \"origin\": \"It is a documentation page that doesn't exist in version v2.10.0.\",\n        \"similar\": \"There is no such documentation page in version v2.10.0.\"\n    },\n    {\n        \"origin\": \"It exists on the main version. You can click on the provided link to redirect to the main version of the documentation.\",\n        \"similar\": \"The main version of the documentation can be accessed by clicking on the link.\"\n    },\n    {\n        \"origin\": \"It doesn't exist in that version.\",\n        \"similar\": \"That version does not contain it.\"\n    },\n    {\n        \"origin\": \"The Datasets documentation is meant to provide information and guidance on how to use the Datasets library from Hugging Face.\",\n        \"similar\": \"The Datasets library from Hugging Face has a documentation that serves to offer instructions and knowledge on its utilization.\"\n    },\n    {\n        \"origin\": \"The different sections available in the Datasets documentation include Loading methods, Tutorials, How-to guides, Audio, Vision, Text, Tabular, Dataset repository, Conceptual guides, and Reference.\",\n        \"similar\": \"The Datasets documentation offers sections such as Loading methods, Tutorials, How-to guides, Audio, Vision, Text, Tabular, Dataset repository, Conceptual guides, and Reference.\"\n    },\n    {\n        \"origin\": \"The Loading methods section provides information on the methods for listing and loading datasets and metrics.\",\n        \"similar\": \"The section on Loading techniques furnishes details on the techniques for cataloging and loading datasets and metrics.\"\n    },\n    {\n        \"origin\": \"The datasets.list_datasets method is a method for listing datasets and metrics. It takes parameters such as with_community_datasets and with_details.\",\n        \"similar\": \"The list_datasets method of the datasets module is a function for displaying datasets and metrics, with parameters such as with_community_datasets and with_details.\"\n    },\n    {\n        \"origin\": \"The `with_community_datasets` parameter is optional and defaults to `True`. It is used to include the community provided datasets.\",\n        \"similar\": \"The `with_community_datasets` parameter is not mandatory and is set to `True` by default. It is employed to incorporate the datasets provided by the community.\"\n    },\n    {\n        \"origin\": \"The `with_details` parameter is optional and defaults to `False`. It is used to return the full details on the datasets instead of only the short name.\",\n        \"similar\": \"The `with_details` parameter is not mandatory and is set to `False` by default. It can be used to get the full information about the datasets rather than just the short name.\"\n    },\n    {\n        \"origin\": \"You can use the `list_datasets()` function from the `datasets` module to list all the datasets scripts available on the Hugging Face Hub.\",\n        \"similar\": \"The `datasets` module provides a `list_datasets()` function which can be used to enumerate all the Hugging Face Hub datasets.\"\n    },\n    {\n        \"origin\": \"The `load_dataset` function is used to load a dataset from a local directory or from the Hugging Face Hub. It takes several parameters such as `path`, `name`, `data_dir`, `data_files`, `split`, `cache_dir`, `features`, `download_config`, `download_mode`, `verification_mode`, `ignore_verifications`, `keep_in_memory`, `save_infos`, `revision`, `use_auth_token`, `task`, `streaming`, `num_proc`, and `config_kwargs`.\",\n        \"similar\": \"The `load_dataset` function can be used to obtain a dataset from either a local directory or the Hugging Face Hub. It requires several parameters such as `path`, `name`, `data_dir`, `data_files`, `split`, `cache_dir`, `features`, `download_config`, `download_mode`, `verification_mode`, `ignore_verifications`, `keep_in_memory`, `save_infos`, `revision`, `use_auth_token`, `task`, `streaming`, `num_proc`, and `config_kwargs`.\"\n    },\n    {\n        \"origin\": \"The `split` parameter specifies which split of the data to load. If `None`, all splits will be returned as a dictionary. If given, a single dataset will be returned.\",\n        \"similar\": \"The `split` parameter determines which division of the data is to be loaded. If `None` is specified, a dictionary containing all splits will be returned. Otherwise, a single dataset will be provided.\"\n    },\n    {\n        \"origin\": \"The default value of the `cache_dir` parameter is `\\\"~/.cache/huggingface/datasets\\\"`.\",\n        \"similar\": \"The `cache_dir` parameter has `\\\"~/.cache/huggingface/datasets\\\"` as its default value.\"\n    },\n    {\n        \"origin\": \"The `features` parameter sets the features type to use for the dataset.\",\n        \"similar\": \"The `features` parameter determines the type of features to be utilized for the dataset.\"\n    },\n    {\n        \"origin\": \"The `download_config` parameter is used to specify specific download configuration parameters.\",\n        \"similar\": \"The `download_config` parameter is employed to designate certain download configuration settings.\"\n    },\n    {\n        \"origin\": \"The default value of the `download_mode` parameter is `REUSE_DATASET_IF_EXISTS`.\",\n        \"similar\": \"The `download_mode` parameter has `REUSE_DATASET_IF_EXISTS` as its default value.\"\n    },\n    {\n        \"origin\": \"The `verification_mode` parameter determines the checks to run on the downloaded/processed dataset information (checksums/size/splits/\\u2026).\",\n        \"similar\": \"The `verification_mode` parameter specifies the tests to be conducted on the acquired/processed dataset information (checksums/size/splits/\\u2026).\"\n    },\n    {\n        \"origin\": \"The `ignore_verifications` parameter is used to ignore the verifications of the downloaded/processed dataset information (checksums/size/splits/\\u2026).\",\n        \"similar\": \"The `ignore_verifications` parameter can be employed to bypass the verifications of the acquired/treated dataset data (checksums/size/splits/\\u2026).\"\n    },\n    {\n        \"origin\": \"No, the `ignore_verifications` parameter was deprecated in version 2.9.1 and will be removed in 3.0.0. The `verification_mode` parameter should be used instead.\",\n        \"similar\": \"As of version 2.9.1, the `ignore_verifications` parameter has been deprecated and will be eliminated in 3.0.0. The `verification_mode` parameter should be utilized as an alternative.\"\n    },\n    {\n        \"origin\": \"The `keep_in_memory` parameter determines whether to copy the dataset in-memory.\",\n        \"similar\": \"The `keep_in_memory` parameter decides if the dataset should be stored in-memory.\"\n    },\n    {\n        \"origin\": \"The default value of the `save_infos` parameter is `False`.\",\n        \"similar\": \"The `save_infos` parameter is set to `False` by default.\"\n    },\n    {\n        \"origin\": \"The `revision` parameter specifies the version of the dataset script to load.\",\n        \"similar\": \"The `revision` parameter determines which version of the dataset script should be loaded.\"\n    },\n    {\n        \"origin\": \"The `use_auth_token` parameter is used as a Bearer token for remote files on the Datasets Hub.\",\n        \"similar\": \"The Bearer token for remote files on the Datasets Hub is specified by the `use_auth_token` parameter.\"\n    },\n    {\n        \"origin\": \"The `task` parameter specifies the task to prepare the dataset for during training and evaluation.\",\n        \"similar\": \"The parameter `task` is used to determine the purpose of the dataset for both training and evaluation.\"\n    },\n    {\n        \"origin\": \"The `streaming` parameter is used to stream the data progressively while iterating on the dataset, instead of downloading the data files.\",\n        \"similar\": \"The `streaming` parameter is employed to gradually fetch the data while looping through the dataset, instead of downloading the data files all at once.\"\n    },\n    {\n        \"origin\": \"Streaming works for datasets that use data formats that support being iterated over like txt, csv, jsonl for example.\",\n        \"similar\": \"Data formats such as txt, csv, and jsonl, which can be iterated over, are suitable for streaming.\"\n    },\n    {\n        \"origin\": \"The `num_proc` parameter specifies the number of processes when downloading and generating the dataset locally.\",\n        \"similar\": \"The `num_proc` parameter determines the quantity of processes used when downloading and creating the dataset locally.\"\n    },\n    {\n        \"origin\": \"The additional keyword arguments are specified as `config_kwargs` and can be passed to the `BuilderConfig` and used in the `DatasetBuilder`.\",\n        \"similar\": \"The `config_kwargs` are provided as extra keyword arguments, which can be passed to the `BuilderConfig` and employed in the `DatasetBuilder`.\"\n    },\n    {\n        \"origin\": \"A dataset in Hugging Face is a directory that contains data files in generic formats and optionally a dataset script.\",\n        \"similar\": \"A Hugging Face dataset is a directory that contains data files in generic formats and, optionally, an accompanying dataset script.\"\n    },\n    {\n        \"origin\": \"You can load a dataset from the Hugging Face Hub using the `load_dataset` function and specifying the dataset name and split.\",\n        \"similar\": \"The `load_dataset` function can be used to obtain a dataset from the Hugging Face Hub, by specifying the dataset name and split.\"\n    },\n    {\n        \"origin\": \"A dataset script in Hugging Face is a small Python script that defines dataset builders, contains the path or URL to the original data files, and the code to load examples from the original data files.\",\n        \"similar\": \"A Hugging Face dataset script is a Python program that specifies the construction of datasets, provides the location of the source data files, and includes the code to extract examples from the original data.\"\n    },\n    {\n        \"origin\": \"Yes, you can load a local dataset in Hugging Face using the `load_dataset` function and specifying the data files or the local loading script.\",\n        \"similar\": \"Using the `load_dataset` function, it is possible to load a local dataset in Hugging Face by indicating the data files or the local loading script.\"\n    },\n    {\n        \"origin\": \"The `load_from_disk` function in Hugging Face is a function that loads a dataset from a previously saved Arrow table on disk.\",\n        \"similar\": \"The `load_from_disk` function from Hugging Face retrieves a dataset from a stored Arrow table on disk.\"\n    },\n    {\n        \"origin\": \"The load_from_disk function loads a dataset that was previously saved using save_to_disk() from a dataset directory, or from a filesystem using either S3FileSystem or any implementation of fsspec.spec.AbstractFileSystem.\",\n        \"similar\": \"The dataset that was saved using save_to_disk() can be loaded by the load_from_disk function from either a dataset directory or a filesystem, such as S3FileSystem or any other implementation of fsspec.spec.AbstractFileSystem.\"\n    },\n    {\n        \"origin\": \"The dataset_path parameter is a string that represents the path or remote URI of the Dataset or DatasetDict directory where the dataset will be loaded from.\",\n        \"similar\": \"The dataset_path parameter is a string denoting the local or remote path of the Dataset or DatasetDict directory from which the dataset will be fetched.\"\n    },\n    {\n        \"origin\": \"The keep_in_memory parameter is a boolean that determines whether to copy the dataset in-memory. If None, the dataset will not be copied in-memory unless explicitly enabled by setting datasets.config.IN_MEMORY_MAX_SIZE to nonzero.\",\n        \"similar\": \"The keep_in_memory parameter is a boolean that decides if the dataset should be copied into memory. If it is set to None, the dataset will not be duplicated in memory unless datasets.config.IN_MEMORY_MAX_SIZE is set to a non-zero value.\"\n    },\n    {\n        \"origin\": \"The storage_options parameter is a dictionary of key/value pairs to be passed on to the file-system backend, if any.\",\n        \"similar\": \"The storage_options parameter is a dictionary of key/value pairs that will be passed to the file-system backend, if applicable.\"\n    },\n    {\n        \"origin\": \"The load_dataset_builder function loads a dataset builder based on the path or name of the dataset. Depending on the path, the dataset builder that is used comes from a generic dataset script (JSON, CSV, Parquet, text etc.) or from the dataset script (a python file) inside the dataset directory.\",\n        \"similar\": \"The load_dataset_builder function retrieves a dataset builder depending on the path or name of the dataset. It can be sourced from a generic dataset script (JSON, CSV, Parquet, text etc.) or from the script (a python file) inside the dataset directory.\"\n    },\n    {\n        \"origin\": \"A dataset builder can be used to inspect general information that is required to build a dataset (cache directory, config, dataset info, etc.) without downloading the dataset itself.\",\n        \"similar\": \"A dataset builder can be employed to survey the necessary data for constructing a dataset (cache directory, config, dataset info, etc.) without having to download the dataset itself.\"\n    },\n    {\n        \"origin\": \"A dataset is a directory that contains some data files in generic formats (JSON, CSV, Parquet, text, etc.) and optionally a dataset script, if it requires some code to read the data files.\",\n        \"similar\": \"A collection of data files in generic formats (JSON, CSV, Parquet, text, etc.) and, if necessary, a dataset script to read them, is known as a dataset.\"\n    },\n    {\n        \"origin\": \"You can load a dataset builder from the Hugging Face Hub or a local dataset using the `load_dataset_builder` function from the `datasets` library.\",\n        \"similar\": \"The `datasets` library's `load_dataset_builder` function can be used to obtain a dataset builder from the Hugging Face Hub or a local dataset.\"\n    },\n    {\n        \"origin\": \"You can find the list of datasets on the Hub or with `datasets.list_datasets()`.\",\n        \"similar\": \"The Hub offers a list of datasets, which can also be accessed using `datasets.list_datasets()`.\"\n    },\n    {\n        \"origin\": \"`config_kwargs` is used to pass additional keyword arguments to the `BuilderConfig` and used in the `DatasetBuilder`.\",\n        \"similar\": \"`config_kwargs` is employed to supply extra keyword arguments to the `BuilderConfig` and utilized in the `DatasetBuilder`.\"\n    },\n    {\n        \"origin\": \"The `datasets.download` module provides functionality for downloading and managing datasets.\",\n        \"similar\": \"The `datasets.download` module offers the ability to download and manage datasets.\"\n    },\n    {\n        \"origin\": \"The `path` parameter in the `datasets.get_dataset_infos` function is used to specify the path to the dataset processing script with the dataset builder.\",\n        \"similar\": \"The `datasets.get_dataset_infos` function employs the `path` parameter to indicate the location of the dataset processing script with the dataset builder.\"\n    },\n    {\n        \"origin\": \"The default value for the `download_mode` parameter in the `datasets.load_dataset` function is `REUSE_DATASET_IF_EXISTS`.\",\n        \"similar\": \"The `datasets.load_dataset` function has `REUSE_DATASET_IF_EXISTS` as the default value for the `download_mode` parameter.\"\n    },\n    {\n        \"origin\": \"You can use the `get_dataset_config_names` function from the `datasets` module and pass in the dataset name as a parameter. For example, `get_dataset_config_names(\\\"glue\\\")` will return a list of available config names for the GLUE dataset.\",\n        \"similar\": \"The `datasets` module provides the `get_dataset_config_names` function which takes the dataset name as an argument. As an example, calling `get_dataset_config_names(\\\"glue\\\")` will return a list of config names for the GLUE dataset.\"\n    },\n    {\n        \"origin\": \"Specifying a version that is different from your local version of the lib might cause compatibility issues.\",\n        \"similar\": \"Using a version of the lib that is not the same as your local version could lead to compatibility problems.\"\n    },\n    {\n        \"origin\": \"The download_config parameter in the get_dataset_infos function is used to specify specific download configuration parameters.\",\n        \"similar\": \"The get_dataset_infos function utilizes the download_config parameter to indicate particular download configuration settings.\"\n    },\n    {\n        \"origin\": \"The default value of the download_mode parameter in the get_dataset_infos function is REUSE_DATASET_IF_EXISTS.\",\n        \"similar\": \"The download_mode parameter in the get_dataset_infos function is set to REUSE_DATASET_IF_EXISTS by default.\"\n    },\n    {\n        \"origin\": \"The config_name parameter in the get_dataset_split_names function is used to define the name of the dataset configuration.\",\n        \"similar\": \"The get_dataset_split_names function employs the config_name parameter to specify the dataset configuration's name.\"\n    },\n    {\n        \"origin\": \"The data_files parameter in the get_dataset_split_names function is used to define the path(s) to source data file(s).\",\n        \"similar\": \"The get_dataset_split_names function utilizes the data_files parameter to specify the path(s) of the source data file(s).\"\n    },\n    {\n        \"origin\": \"The revision parameter in the get_dataset_split_names function is used to specify the version of the dataset script to load.\",\n        \"similar\": \"The get_dataset_split_names function employs the revision parameter to indicate which version of the dataset script should be loaded.\"\n    },\n    {\n        \"origin\": \"The `get_dataset_split_names` function returns a list of split names for a given dataset.\",\n        \"similar\": \"A list of split names for a given dataset is yielded by the `get_dataset_split_names` function.\"\n    },\n    {\n        \"origin\": \"The `datasets.inspect_dataset` function allows inspection/modification of a dataset script by copying it to a local drive at `local_path`.\",\n        \"similar\": \"The `datasets.inspect_dataset` function enables the inspection/alteration of a dataset script by copying it to the local drive at `local_path`.\"\n    },\n    {\n        \"origin\": \"The `datasets.list_metrics` function lists all the metrics script available on the Hugging Face Hub.\",\n        \"similar\": \"The `datasets.list_metrics` function furnishes a list of all the metrics scripts accessible on the Hugging Face Hub.\"\n    },\n    {\n        \"origin\": \"The `datasets.load_metric` function loads a metric processing script with the metric builder. It can be used to select a configuration for the metric and for distributed evaluation.\",\n        \"similar\": \"The `datasets.load_metric` function enables the loading of a metric processing script with the metric builder, allowing for the selection of a configuration for the metric and distributed evaluation.\"\n    },\n    {\n        \"origin\": \"The default cache directory is \\\"~/.cache/huggingface/metrics/\\\".\",\n        \"similar\": \"The default storage location for cache is \\\"~/.cache/huggingface/metrics/\\\".\"\n    },\n    {\n        \"origin\": \"The experiment_id parameter is used to specify a specific experiment id. This is useful to compute metrics in distributed setups (in particular non-additive metrics like F1).\",\n        \"similar\": \"The experiment_id parameter is employed to designate a particular experiment id, which is advantageous for computing metrics in distributed settings (especially non-additive metrics such as F1).\"\n    },\n    {\n        \"origin\": \"Yes, the temporary results can be stored in memory by setting the keep_in_memory parameter to True.\",\n        \"similar\": \"The keep_in_memory parameter can be set to True to enable the temporary results to be kept in memory.\"\n    },\n    {\n        \"origin\": \"The download_config parameter is used to specify specific download configuration parameters.\",\n        \"similar\": \"The download_config parameter is employed to designate certain download setup parameters.\"\n    },\n    {\n        \"origin\": \"The default download mode is REUSE_DATASET_IF_EXISTS.\",\n        \"similar\": \"The default download setting is to REUSE EXISTING DATA IF AVAILABLE.\"\n    },\n    {\n        \"origin\": \"The revision parameter is used to specify the version of the module to be loaded from the datasets repository.\",\n        \"similar\": \"The parameter for revision is employed to determine which version of the module should be taken from the datasets repository.\"\n    },\n    {\n        \"origin\": \"The load_metric function is used to load a datasets.Metric.\",\n        \"similar\": \"The Metric datasets can be loaded by the load_metric function.\"\n    },\n    {\n        \"origin\": \"The inspect_metric function is used to allow inspection/modification of a metric script by copying it on local drive at local_path.\",\n        \"similar\": \"The inspect_metric function enables users to inspect and modify a metric script by making a copy of it on their local drive at local_path.\"\n    },\n    {\n        \"origin\": \"Data loading can be configured by passing arguments to load_dataset.\",\n        \"similar\": \"Parameters for data loading can be set by supplying arguments to load_dataset.\"\n    },\n    {\n        \"origin\": \"The TextConfig class is a BuilderConfig for text files.\",\n        \"similar\": \"The TextConfig is a BuilderConfig type specifically designed for text files.\"\n    },\n    {\n        \"origin\": \"The CsvConfig class is a BuilderConfig for CSV files.\",\n        \"similar\": \"The CsvConfig class is a type of BuilderConfig that is specifically designed for CSV files.\"\n    },\n    {\n        \"origin\": \"coerce_float is a boolean parameter that specifies whether to convert non-string columns to floats in the SQL dataset.\",\n        \"similar\": \"The coerce_float parameter, which is a boolean, determines whether to transform non-string columns into floats in the SQL dataset.\"\n    },\n    {\n        \"origin\": \"parse_dates is a parameter that specifies which columns to parse as dates in the SQL dataset.\",\n        \"similar\": \"The parameter parse_dates indicates which columns in the SQL dataset should be parsed as dates.\"\n    },\n    {\n        \"origin\": \"chunksize is an optional parameter that specifies the number of rows to load at a time in the SQL dataset.\",\n        \"similar\": \"An optional parameter, chunksize, can be specified to indicate the number of rows to be loaded into the SQL dataset at one time.\"\n    },\n    {\n        \"origin\": \"The ImageFolderConfig class is a BuilderConfig for loading image datasets.\",\n        \"similar\": \"The ImageFolderConfig is a BuilderConfig type that can be used to load image datasets.\"\n    },\n    {\n        \"origin\": \"The AudioFolderConfig class is a BuilderConfig for loading audio datasets.\",\n        \"similar\": \"The AudioFolderConfig class acts as a BuilderConfig for loading audio datasets.\"\n    },\n    {\n        \"origin\": \"No, the CACH documentation page doesn't exist in version 2.10.0.\",\n        \"similar\": \"The CACH documentation page is not available in version 2.10.0.\"\n    },\n    {\n        \"origin\": \"You can find the CACH documentation on the main version. Click on the provided link to redirect to the main version of the documentation.\",\n        \"similar\": \"The CACH documentation can be accessed by clicking on the link which will take you to the main version.\"\n    },\n    {\n        \"origin\": \"The purpose of the Datasets documentation is to provide information on how to use the \\ud83e\\udd17 Datasets library to load and work with datasets of any format or type.\",\n        \"similar\": \"The main objective of the Datasets documentation is to demonstrate how to utilize the \\ud83e\\udd17 Datasets library to access and manipulate datasets of any format or type.\"\n    },\n    {\n        \"origin\": \"The easiest way to get started with loading a dataset using \\ud83e\\udd17 Datasets is to discover and load a dataset from the Hub.\",\n        \"similar\": \"One of the simplest methods to initiate loading a dataset using \\ud83e\\udd17 Datasets is to explore and load a dataset from the Hub.\"\n    },\n    {\n        \"origin\": \"Some potential difficulties in finding high-quality datasets include reproducibility and accessibility.\",\n        \"similar\": \"Obtaining datasets of high caliber may be hampered by issues such as reproducibility and availability.\"\n    },\n    {\n        \"origin\": \"The Hugging Face Hub is a community-driven collection of datasets for tasks in NLP, computer vision, and audio.\",\n        \"similar\": \"The Hugging Face Hub is a repository of datasets, created and maintained by the community, for Natural Language Processing, Computer Vision, and Audio tasks.\"\n    },\n    {\n        \"origin\": \"You can use the load_dataset_builder() function to load a dataset builder and inspect a dataset's attributes without committing to downloading it.\",\n        \"similar\": \"The load_dataset_builder() function enables one to examine the characteristics of a dataset without having to download it.\"\n    },\n    {\n        \"origin\": \"A dataset's information is stored inside DatasetInfo and can include information such as the dataset description, features, and dataset size.\",\n        \"similar\": \"The DatasetInfo holds the data of a dataset, which may include its description, characteristics, and size.\"\n    },\n    {\n        \"origin\": \"You can load a specific split of a dataset with the split parameter when using the load_dataset() function.\",\n        \"similar\": \"The split parameter in the load_dataset() function allows you to select a particular split of a dataset.\"\n    },\n    {\n        \"origin\": \"Some datasets contain several sub-datasets known as configurations, and you must explicitly select one when loading the dataset.\",\n        \"similar\": \"When loading the dataset, you need to make a specific selection from the multiple sub-datasets, referred to as configurations, that it contains.\"\n    },\n    {\n        \"origin\": \"You can use the get_dataset_config_names() function from the datasets module to retrieve a list of all the possible configurations available to your dataset.\",\n        \"similar\": \"The datasets module provides the get_dataset_config_names() function that can be used to obtain a list of all the potential configurations for your dataset.\"\n    },\n    {\n        \"origin\": \"Sure! Here's an example:\",\n        \"similar\": \"Absolutely! Here is one instance.\"\n    },\n    {\n        \"origin\": \"You can use the load_dataset() function from the datasets module to load the configuration you want. Here's an example:\",\n        \"similar\": \"An example of how to employ the load_dataset() function from the datasets module to acquire the desired configuration is provided below.\"\n    },\n    {\n        \"origin\": \"Some of the available configurations for the \\\"PolyAI/minds14\\\" dataset include 'cs-CZ', 'de-DE', 'en-AU', 'en-GB', 'en-US', 'es-ES', 'fr-FR', 'it-IT', 'ko-KR', 'nl-NL', 'pl-PL', 'pt-PT', 'ru-RU', 'zh-CN', and 'all'.\",\n        \"similar\": \"Among the available settings for the \\\"PolyAI/minds14\\\" dataset are 'cs-CZ', 'de-DE', 'en-AU', 'en-GB', 'en-US', 'es-ES', 'fr-FR', 'it-IT', 'ko-KR', 'nl-NL', 'pl-PL', 'pt-PT', 'ru-RU', 'zh-CN', and 'all'.\"\n    },\n    {\n        \"origin\": \"No, it doesn't exist in version 2.10.0.\",\n        \"similar\": \"Version 2.10.0 does not contain it.\"\n    },\n    {\n        \"origin\": \"You can find it on the main version of the documentation. Click on the provided link to redirect to the main version.\",\n        \"similar\": \"The main version of the documentation can be accessed by clicking on the link provided.\"\n    },\n    {\n        \"origin\": \"The PACKAGE_REFERENCE/LOADING_METHOD documentation page is a page that provides information on loading methods for a specific package.\",\n        \"similar\": \"The documentation page for PACKAGE_REFERENCE/LOADING_METHOD offers details on how to load the specified package.\"\n    },\n    {\n        \"origin\": \"No, the PACKAGE_REFERENCE/LOADING_METHOD documentation page does not exist in version 2.10.0.\",\n        \"similar\": \"The PACKAGE_REFERENCE/LOADING_METHOD documentation page is not available in version 2.10.0.\"\n    },\n    {\n        \"origin\": \"You can find the PACKAGE_REFERENCE/LOADING_METHOD documentation page on the main version of the documentation. Click on the provided link to redirect to the main version of the documentation.\",\n        \"similar\": \"To access the PACKAGE_REFERENCE/LOADING_METHOD documentation page, click on the link which will take you to the main version of the documentation.\"\n    },\n    {\n        \"origin\": \"It is a documentation page.\",\n        \"similar\": \"This is a page devoted to documentation.\"\n    },\n    {\n        \"origin\": \"No, it doesn't exist in v2.10.0.\",\n        \"similar\": \"It is not present in v2.10.0.\"\n    },\n    {\n        \"origin\": \"You can find it on the main version by clicking on the provided link.\",\n        \"similar\": \"You can access the main version by following the link given.\"\n    },\n    {\n        \"origin\": \"The documentation page PACKAGE_REFERENCE/BUILDER_CLASSE doesn't exist in v2.10.0.\",\n        \"similar\": \"The PACKAGE_REFERENCE/BUILDER_CLASSE documentation page is not available in v2.10.0.\"\n    },\n    {\n        \"origin\": \"The documentation page PACKAGE_REFERENCE/BUILDER_CLASSE exists on the main version. You can click [here](/docs/datasets/main/en/package_reference/builder_classe) to redirect to the main version of the documentation.\",\n        \"similar\": \"The PACKAGE_REFERENCE/BUILDER_CLASSE documentation page is available on the main version. To access the main version of the documentation, please click [here](/docs/datasets/main/en/package_reference/builder_classe).\"\n    },\n    {\n        \"origin\": \"It is a documentation page.\",\n        \"similar\": \"This is a page devoted to documentation.\"\n    },\n    {\n        \"origin\": \"No, it doesn't exist in v2.10.0.\",\n        \"similar\": \"It is not available in v2.10.0.\"\n    },\n    {\n        \"origin\": \"You can find it on the main version of the documentation by clicking on the provided link.\",\n        \"similar\": \"The provided link will take you to the main version of the documentation where you can locate it.\"\n    },\n    {\n        \"origin\": \"To host and share your dataset, you can create a dataset repository on the Hugging Face Dataset Hub and upload your data files.\",\n        \"similar\": \"You can upload your data files to a dataset repository on the Hugging Face Dataset Hub in order to host and share them.\"\n    },\n    {\n        \"origin\": \"The guide provides information on how to structure your dataset repository when you host and share your dataset on the Hugging Face Dataset Hub.\",\n        \"similar\": \"The Hugging Face Dataset Hub offers a guide to help you organize your dataset repository when you upload and share it.\"\n    },\n    {\n        \"origin\": \"You can find information about creating a dataset card in the /docs/datasets/v2.10.0/dataset_card document.\",\n        \"similar\": \"Information on constructing a dataset card can be located in the /docs/datasets/v2.10.0/dataset_card document.\"\n    },\n    {\n        \"origin\": \"You can find information about Arrow in relation to datasets in the /docs/datasets/v2.10.0/about_arrow document.\",\n        \"similar\": \"Information about Arrow and its datasets can be found in the /docs/datasets/v2.10.0/about_arrow document.\"\n    },\n    {\n        \"origin\": \"The document does not provide a direct answer to this question.\",\n        \"similar\": \"This question is not answered directly in the document.\"\n    },\n    {\n        \"origin\": \"Yes, according to the document, it is possible to use multiple files per split.\",\n        \"similar\": \"It is possible to have multiple files in one split, as indicated in the document.\"\n    },\n    {\n        \"origin\": \"You can use keywords or create custom split names to name your splits, as explained in the document.\",\n        \"similar\": \"You can name your splits by either using keywords or constructing custom split names, as detailed in the document.\"\n    },\n    {\n        \"origin\": \"The purpose of split names is not explicitly stated in the document, but they are used to identify and organize different subsets of data within a dataset.\",\n        \"similar\": \"The document does not explicitly declare the intention of split names, however, they are utilized to distinguish and arrange various subsets of data within a dataset.\"\n    },\n    {\n        \"origin\": \"Datasets documentation is a collection of resources and guides for using the \\ud83e\\udd17 Datasets library.\",\n        \"similar\": \"The \\ud83e\\udd17 Datasets library has a compilation of resources and instructions for its utilization.\"\n    },\n    {\n        \"origin\": \"\\ud83e\\udd17 Datasets is tested on Python 3.7+.\",\n        \"similar\": \"Python 3.7+ is used for testing Datasets.\"\n    },\n    {\n        \"origin\": \"Yes, \\ud83e\\udd17 Datasets can be used with TensorFlow or PyTorch, but they need to be installed separately.\",\n        \"similar\": \"It is possible to utilize Datasets with either TensorFlow or PyTorch, though they must be installed independently.\"\n    },\n    {\n        \"origin\": \"Yes, there is a tutorial available for using \\ud83e\\udd17 Datasets. It covers topics such as loading a dataset from the Hub, preprocessing, evaluating predictions, creating a dataset, and sharing a dataset to the Hub.\",\n        \"similar\": \"A tutorial on how to use \\ud83e\\udd17 Datasets is available, which includes instructions on loading a dataset from the Hub, preprocessing, evaluating predictions, creating a dataset, and sharing a dataset to the Hub.\"\n    },\n    {\n        \"origin\": \"Yes, there are resources available for loading audio data, processing audio data, and creating an audio dataset.\",\n        \"similar\": \"It is possible to access resources for loading, processing and constructing an audio dataset.\"\n    },\n    {\n        \"origin\": \"Yes, there is a reference section available in \\ud83e\\udd17 Datasets documentation. It covers main classes, builder classes, loading methods, table classes, logging methods, and task templates.\",\n        \"similar\": \"The \\ud83e\\udd17 Datasets documentation has a reference section which includes information on the main classes, builder classes, loading methods, table classes, logging methods, and task templates.\"\n    },\n    {\n        \"origin\": \"The most recommended way to install \\ud83e\\udd17 Datasets is with pip.\",\n        \"similar\": \"The best approach to setting up \\ud83e\\udd17 Datasets is to use pip.\"\n    },\n    {\n        \"origin\": \"You can run the following command to check if \\ud83e\\udd17 Datasets has been properly installed: `python -c \\\"from datasets import load_dataset; print(load_dataset('squad', split='train')[0])\\\"`\",\n        \"similar\": \"To verify that \\ud83e\\udd17 Datasets has been properly installed, execute this command: `python -c \\\"from datasets import load_dataset; print(load_dataset('squad', split='train')[0])\\\"`\"\n    },\n    {\n        \"origin\": \"It is recommended to install \\ud83e\\udd17 Datasets in a virtual environment to keep things tidy and avoid dependency conflicts.\",\n        \"similar\": \"It is suggested to install \\ud83e\\udd17 Datasets in a virtual environment in order to maintain orderliness and avert any dependency clashes.\"\n    },\n    {\n        \"origin\": \"You can install the Audio feature as an extra dependency using the following command: `pip install datasets[audio]`\",\n        \"similar\": \"You can add the Audio feature as an additional requirement by executing the command `pip install datasets[audio]`\"\n    },\n    {\n        \"origin\": \"You can install the Image feature as an extra dependency using the following command: `pip install datasets[vision]`\",\n        \"similar\": \"To add the Image feature as an extra dependency, you can execute the command `pip install datasets[vision]`\"\n    },\n    {\n        \"origin\": \"Yes, you can install \\ud83e\\udd17 Datasets from source by cloning the repository and installing with the following commands: `git clone https://github.com/huggingface/datasets.git` and `pip install -e .`\",\n        \"similar\": \"You can get \\ud83e\\udd17 Datasets from source by cloning the repository and running the commands `git clone https://github.com/huggingface/datasets.git` and `pip install -e .`\"\n    },\n    {\n        \"origin\": \"You can refer to the TensorFlow installation page or the PyTorch installation page for the specific install command for your framework.\",\n        \"similar\": \"For the specific install command for your framework, you can consult the TensorFlow installation page or the PyTorch installation page.\"\n    },\n    {\n        \"origin\": \"Conda is a package management system.\",\n        \"similar\": \"Conda is a system for managing packages.\"\n    },\n    {\n        \"origin\": \"Datasets can be installed using conda by running the command \\\"conda install -c huggingface -c conda-forge datasets\\\".\",\n        \"similar\": \"The command \\\"conda install -c huggingface -c conda-forge datasets\\\" can be used to install datasets through conda.\"\n    },\n    {\n        \"origin\": \"No, datasets can also be installed using pip or by downloading the source code.\",\n        \"similar\": \"It is possible to install datasets either through pip or by downloading the source code.\"\n    },\n    {\n        \"origin\": \"You can find more information about datasets in the Quickstart and Overview sections of the documentation.\",\n        \"similar\": \"More information about datasets can be located in the Quickstart and Overview sections of the documentation.\"\n    },\n    {\n        \"origin\": \"You can load a CSV file using the load_dataset() function by passing the data file path to the data_files parameter. You can also load multiple CSV files or map specific CSV files to the train and test splits using this function.\",\n        \"similar\": \"The load_dataset() function allows you to load a CSV file by providing the data file path to the data_files parameter. It also facilitates the loading of multiple CSV files or mapping specific CSV files to the train and test splits.\"\n    },\n    {\n        \"origin\": \"You can load a dataset from a Pandas DataFrame using the from_pandas() method of the Dataset class. You need to create a Pandas DataFrame first and then pass it to the from_pandas() method.\",\n        \"similar\": \"A Pandas DataFrame must be created first, and then it can be passed to the from_pandas() method of the Dataset class in order to load a dataset.\"\n    },\n    {\n        \"origin\": \"You can specify the name of the dataset split using the splits parameter while loading a dataset from a Pandas DataFrame. You need to pass the name of the split to the split parameter.\",\n        \"similar\": \"The split parameter requires you to provide the name of the dataset split when loading a dataset from a Pandas DataFrame.\"\n    },\n    {\n        \"origin\": \"You can load a dataset from a SQLite database using \\ud83e\\udd17 Datasets by first creating a SQLite database and then loading the table from the database using the from_sql() method of the Dataset class. You need to pass the table name and the URI string that identifies your database to the from_sql() method.\",\n        \"similar\": \"\\ud83e\\udd17 Datasets allows you to load a dataset from a SQLite database by creating the database and then utilizing the from_sql() method of the Dataset class. The from_sql() method requires the table name and the URI string that identifies the database.\"\n    },\n    {\n        \"origin\": \"You can load a dataset from a SQL query by passing your query and URI to `from_sql()` method.\",\n        \"similar\": \"You can use the `from_sql()` method to load a dataset from a SQL query by providing the query and URI.\"\n    },\n    {\n        \"origin\": \"`filter()` method is used for querying and joining multiple tables.\",\n        \"similar\": \"The `filter()` method can be employed to query and link multiple tables.\"\n    },\n    {\n        \"origin\": \"After setting up your PostgreSQL database, you can use the `from_sql()` method to load a dataset from a table or query. However, the example is only meant to be run in a notebook.\",\n        \"similar\": \"Once the PostgreSQL database has been established, the `from_sql()` method can be used to draw a dataset from a table or query. Nevertheless, the example is only designed to be executed in a notebook.\"\n    },\n    {\n        \"origin\": \"Audio, Vision, and NLP datasets can be worked with using this tool.\",\n        \"similar\": \"This tool enables working with Audio, Vision, and NLP datasets.\"\n    },\n    {\n        \"origin\": \"The purpose of resampling an audio dataset is to match the sampling rate of the pretrained model being used.\",\n        \"similar\": \"The goal of resampling an audio dataset is to adjust its sampling rate to that of the pretrained model being employed.\"\n    },\n    {\n        \"origin\": \"The purpose of data augmentation in image datasets is to increase the size of the dataset and improve the performance of the model.\",\n        \"similar\": \"The goal of data augmentation in image datasets is to enlarge the dataset and enhance the model's efficacy.\"\n    },\n    {\n        \"origin\": \"The purpose of tokenizing a dataset in NLP is to convert text into numerical values that can be used as input for a model.\",\n        \"similar\": \"The goal of tokenizing a dataset in NLP is to transform textual data into numerical values that can be used as input for a model.\"\n    },\n    {\n        \"origin\": \"The purpose of the feature extractor in audio datasets is to preprocess the audio signal and extract relevant features that can be used as input for a model.\",\n        \"similar\": \"The feature extractor in audio datasets is designed to preprocess the audio signal and identify significant features that can be fed into a model.\"\n    },\n    {\n        \"origin\": \"You can install the \\ud83e\\udd17 Datasets package using the command \\\"pip install datasets\\\".\",\n        \"similar\": \"You can get the \\ud83e\\udd17 Datasets package up and running by executing the command \\\"pip install datasets\\\".\"\n    },\n    {\n        \"origin\": \"To work with audio datasets, you need to install the Audio feature using the command \\\"pip install datasets[audio]\\\". You also need to use a feature extractor instead of a tokenizer to preprocess the audio data.\",\n        \"similar\": \"In order to work with audio datasets, you should use the command \\\"pip install datasets[audio]\\\" to install the Audio feature. Additionally, a feature extractor should be utilized instead of a tokenizer to preprocess the audio data.\"\n    },\n    {\n        \"origin\": \"The `map()` function is used to speed up processing by applying a preprocessing function to batches of examples in a dataset.\",\n        \"similar\": \"The `map()` function can be employed to accelerate processing by applying a preprocessing function to groups of samples in a dataset.\"\n    },\n    {\n        \"origin\": \"You can use the `rename_column()` function to rename a column in a dataset.\",\n        \"similar\": \"You can employ the `rename_column()` function to alter the name of a column in a dataset.\"\n    },\n    {\n        \"origin\": \"For PyTorch, you can use the `set_format()` function to set the dataset format to `torch` and specify the columns you want to format. For TensorFlow, you can use the `to_tf_dataset()` function to set the dataset format to be compatible with TensorFlow.\",\n        \"similar\": \"In PyTorch, the `set_format()` function can be employed to convert the dataset to the `torch` format and select the desired columns. For TensorFlow, the `to_tf_dataset()` function can be used to make the dataset compatible with TensorFlow.\"\n    },\n    {\n        \"origin\": \"A feature extractor is used to preprocess image datasets in computer vision.\",\n        \"similar\": \"A preprocessor utilizing feature extraction is utilized to process image datasets in computer vision.\"\n    },\n    {\n        \"origin\": \"You can use Albumentations, imgaug, or Kornia.\",\n        \"similar\": \"Albumentations, imgaug, and Kornia are available for utilization.\"\n    },\n    {\n        \"origin\": \"You can create a function to apply your transform to the dataset and generate the model input using the `with_transform()` function.\",\n        \"similar\": \"A function can be created to apply the transformation to the dataset and the `with_transform()` function can be used to generate the model input.\"\n    },\n    {\n        \"origin\": \"You can wrap the dataset in `torch.utils.data.DataLoader` and create a collate function to collate the samples into batches.\",\n        \"similar\": \"You can use `torch.utils.data.DataLoader` to encapsulate the dataset and define a collate function to group the samples into batches.\"\n    },\n    {\n        \"origin\": \"You can load the MRPC dataset using the `load_dataset()` function from the `datasets` library.\",\n        \"similar\": \"The `datasets` library provides a `load_dataset()` function which can be used to obtain the MRPC dataset.\"\n    },\n    {\n        \"origin\": \"You can use a pretrained BERT model and its corresponding tokenizer from the \\ud83e\\udd17 Transformers library.\",\n        \"similar\": \"You can employ a pretrained BERT model and its related tokenizer from the \\ud83e\\udd17 Transformers library.\"\n    },\n    {\n        \"origin\": \"You can create a function to tokenize the dataset using the tokenizer and truncate and pad the text into tidy rectangular tensors. The tokenizer generates three new columns in the dataset: `input_ids`, `token_type_ids`, and an `attention_mask`.\",\n        \"similar\": \"By employing a tokenizer, you can craft a function to tokenize the dataset and make the text into neat rectangular tensors by truncating and padding. This tokenizer will generate three columns in the dataset: `input_ids`, `token_type_ids`, and an `attention_mask`.\"\n    },\n    {\n        \"origin\": \"The purpose of the given document is to provide information about datasets.\",\n        \"similar\": \"The document in question is intended to furnish data about datasets.\"\n    },\n    {\n        \"origin\": \"You can find more information about datasets by clicking on the \\\"Datasets\\\" link provided in the document.\",\n        \"similar\": \"By clicking on the \\\"Datasets\\\" link in the document, one can gain access to more information about datasets.\"\n    },\n    {\n        \"origin\": \"Yes, you can find the installation guide for datasets by clicking on the \\\"Installation\\\" link provided in the document.\",\n        \"similar\": \"By clicking on the \\\"Installation\\\" link in the document, you can access the installation guide for datasets.\"\n    },\n    {\n        \"origin\": \"The document mentions Audio, Vision, and NLP as other quickstart options.\",\n        \"similar\": \"The document refers to Audio, Vision, and NLP as other accelerated start possibilities.\"\n    },\n    {\n        \"origin\": \"It is not clear from the document what you can expect to find after going through the quickstart options.\",\n        \"similar\": \"It is uncertain what one may encounter after exploring the quickstart options, as indicated by the document.\"\n    },\n    {\n        \"origin\": \"There are two types of dataset objects, a regular Dataset and an IterableDataset.\",\n        \"similar\": \"Two kinds of dataset objects exist, a conventional Dataset and an IterableDataset.\"\n    },\n    {\n        \"origin\": \"A Dataset provides fast random access to the rows and memory-mapping, while an IterableDataset allows access to really big datasets that won't fit on disk or in memory.\",\n        \"similar\": \"A Dataset offers swift random access to the rows and memory-mapping, whereas an IterableDataset facilitates access to datasets too large to fit on disk or in memory.\"\n    },\n    {\n        \"origin\": \"You can load audio data by following the Load audio data tutorial.\",\n        \"similar\": \"By adhering to the Load audio data tutorial, you can upload audio data.\"\n    },\n    {\n        \"origin\": \"You can load tabular data by following the Load tabular data tutorial.\",\n        \"similar\": \"By adhering to the Load tabular data tutorial, you can upload tabular data.\"\n    },\n    {\n        \"origin\": \"You can collaborate on models, datasets, and Spaces by joining the Hugging Face community and accessing the augmented documentation experience.\",\n        \"similar\": \"By joining the Hugging Face community and taking advantage of the augmented documentation experience, you can work together on models, datasets, and Spaces.\"\n    },\n    {\n        \"origin\": \"An IterableDataset is a type of dataset that progressively iterates over a dataset one example at a time, so you don\\u2019t have to wait for the whole dataset to download before you can use it.\",\n        \"similar\": \"A IterableDataset is a type of dataset that allows for the progressive iteration of one example at a time, meaning you don't have to wait for the entire dataset to be downloaded before you can make use of it.\"\n    },\n    {\n        \"origin\": \"You can access examples in an IterableDataset by iterating over its elements, for example, by calling next(iter()) or with a for loop to return the next item from the IterableDataset.\",\n        \"similar\": \"Iterating over the elements of an IterableDataset provides access to examples; this can be done with next(iter()) or a for loop to retrieve the next item.\"\n    },\n    {\n        \"origin\": \"Yes, you can get a subset of an IterableDataset with a specific number of examples in it with IterableDataset.take(). However, unlike slicing, IterableDataset.take() creates a new IterableDataset.\",\n        \"similar\": \"It is possible to obtain a subset of an IterableDataset with a specific number of examples using IterableDataset.take(). Nevertheless, this will create a new IterableDataset, unlike slicing.\"\n    },\n    {\n        \"origin\": \"A dataset loading script is a Python file that defines the different configurations and splits of a dataset, as well as how to download and process the data.\",\n        \"similar\": \"A Python script which outlines the various configurations, divisions and procedures for downloading and processing a dataset is referred to as a dataset loading script.\"\n    },\n    {\n        \"origin\": \"No, a dataset script is optional if the dataset is in one of the following formats: CSV, JSON, JSON lines, text, or Parquet.\",\n        \"similar\": \"A dataset script is not mandatory if the dataset is in any of the formats: CSV, JSON, JSON lines, text, or Parquet.\"\n    },\n    {\n        \"origin\": \"A dataset can be loaded automatically with the load_dataset() function if it is in one of the supported formats.\",\n        \"similar\": \"The load_dataset() function can be used to automatically load a dataset if it is in one of the accepted formats.\"\n    },\n    {\n        \"origin\": \"A dataset script can include configurations and splits of the dataset, as well as instructions for downloading and processing the data.\",\n        \"similar\": \"A dataset script may comprise of configurations, divisions of the dataset, along with directions for downloading and handling the data.\"\n    },\n    {\n        \"origin\": \"The dataset loading script should have the same name as the dataset repository or directory.\",\n        \"similar\": \"The script for loading the dataset should have the same title as the repository or folder where the dataset is stored.\"\n    },\n    {\n        \"origin\": \"You can load a dataset using the script by calling the `load_dataset` function and passing the path to the dataset as an argument.\",\n        \"similar\": \"The `load_dataset` function can be called with the path to the dataset as an argument to load the dataset using the script.\"\n    },\n    {\n        \"origin\": \"The steps to create a dataset loading script include adding dataset metadata, downloading data files, generating samples, generating dataset metadata, and uploading the dataset to the Hub.\",\n        \"similar\": \"The process of making a dataset loading script involves incorporating dataset information, downloading data files, producing samples, fabricating dataset metadata, and transferring the dataset to the Hub.\"\n    },\n    {\n        \"origin\": \"The important attributes that should be specified in the dataset metadata include the dataset description, features, homepage, and citation.\",\n        \"similar\": \"It is essential to provide the dataset metadata with details such as a description, features, homepage, and reference for the dataset.\"\n    },\n    {\n        \"origin\": \"BuilderConfig in Datasets allows you to create different configurations for the user to select from, especially when a dataset has multiple configurations.\",\n        \"similar\": \"Datasets' BuilderConfig offers a variety of options for the user to choose from, particularly when a dataset has multiple configurations.\"\n    },\n    {\n        \"origin\": \"A BuilderConfig subclass is a way to specify attributes about a dataset, such as features, label classes, and a URL to the data files.\",\n        \"similar\": \"A subclass of BuilderConfig can be used to define characteristics of a dataset, e.g. attributes, label classes, and the location of the data files.\"\n    },\n    {\n        \"origin\": \"To create instances of a config in SuperGlue, you need to specify the values of the attributes of each configuration by creating sub-class instances and listing them under `DatasetBuilder.BUILDER_CONFIGS`.\",\n        \"similar\": \"In order to generate configs in SuperGlue, you must specify the values of the attributes for each config by making sub-class instances and adding them to the `DatasetBuilder.BUILDER_CONFIGS` list.\"\n    },\n    {\n        \"origin\": \"Users can load a specific configuration of the dataset with the configuration name by using the `load_dataset` function from the `datasets` library and specifying the dataset name and configuration name. For example, `load_dataset('super_glue', 'boolq')`.\",\n        \"similar\": \"The `load_dataset` function from the `datasets` library can be used to load a particular configuration of a dataset, by specifying the dataset name and configuration name. For instance, `load_dataset('super_glue', 'boolq')`.\"\n    },\n    {\n        \"origin\": \"Users can set a default dataset configuration by setting the `DEFAULT_CONFIG_NAME` attribute in the `BuilderConfig` subclass.\",\n        \"similar\": \"By setting the `DEFAULT_CONFIG_NAME` attribute in the `BuilderConfig` subclass, users can establish a default dataset configuration.\"\n    },\n    {\n        \"origin\": \"It may be more convenient for the user to not specify a configuration when loading a dataset because an appropriate default may be an aggregated configuration that loads all the languages of the dataset if the user doesn\\u2019t request a particular one.\",\n        \"similar\": \"The user may find it more advantageous to not specify a configuration when loading a dataset, as a default configuration that loads all the languages of the dataset may be the most suitable choice if no particular language is requested.\"\n    },\n    {\n        \"origin\": \"The first step in downloading and organizing data files for a dataset is to create a dictionary of URLs in the loading script that point to the original data files.\",\n        \"similar\": \"The initial action in downloading and arranging data files for a dataset is to make a list of URLs in the loading script that link to the source data files.\"\n    },\n    {\n        \"origin\": \"The purpose of SplitGenerator is to organize each split in the dataset by providing the name of each split and the file paths to the data files to load for each split.\",\n        \"similar\": \"SplitGenerator is designed to categorize each split in the dataset, supplying the name of the split and the paths of the data files to be loaded.\"\n    },\n    {\n        \"origin\": \"The function of DatasetBuilder._generate_examples is to read and parse the data files, and yield a tuple of an id and an example from the dataset.\",\n        \"similar\": \"DatasetBuilder._generate_examples is responsible for scanning and interpreting the data files, and producing a pair of an id and an example from the dataset.\"\n    },\n    {\n        \"origin\": \"The benefit of adding dataset metadata is to include information about the dataset, such as its description, citation, and license, which can help users better understand and use the dataset.\",\n        \"similar\": \"Including dataset metadata can be beneficial as it provides users with information about the dataset, such as its description, citation, and license, which can facilitate their understanding and utilization of the dataset.\"\n    },\n    {\n        \"origin\": \"The metadata of the dataset is stored in the dataset card `README.md` in YAML, which includes information like the number of examples required to confirm the dataset was correctly generated, and information about the dataset like its `features`.\",\n        \"similar\": \"The `README.md` dataset card stores the metadata of the dataset in YAML, which comprises of details such as the number of examples needed to validate the dataset was created properly, and other data related to the dataset, such as its `features`.\"\n    },\n    {\n        \"origin\": \"You can run the following command to generate your dataset metadata in `README.md` and ensure that your new dataset loading script works correctly: `datasets-cli test path/to/<your-dataset-loading-script> --save_info --all_configs`.\",\n        \"similar\": \"To make sure that your new dataset loading script is functioning properly, you can execute the command `datasets-cli test path/to/<your-dataset-loading-script> --save_info --all_configs` to generate the metadata of your dataset in `README.md`.\"\n    },\n    {\n        \"origin\": \"Once your script is ready, you can create a dataset card and upload it to the Hub.\",\n        \"similar\": \"Once you have completed your script, you can generate a dataset card and submit it to the Hub.\"\n    },\n    {\n        \"origin\": \"You can load your dataset from the Hub using the `load_dataset(\\\"<username>/my_dataset\\\")` function.\",\n        \"similar\": \"The `load_dataset(\\\"<username>/my_dataset\\\")` function can be used to get your dataset from the Hub.\"\n    },\n    {\n        \"origin\": \"Sharding is a technique used in datasets when a dataset is made of many big files. Datasets automatically runs your script in parallel to make it super fast. It can help if you have hundreds or thousands of TAR archives, or JSONL files.\",\n        \"similar\": \"Sharding is a technique employed on datasets composed of numerous large files. By running your script in parallel, datasets can be made to execute quickly. This is especially beneficial when dealing with hundreds or thousands of TAR archives or JSONL files.\"\n    },\n    {\n        \"origin\": \"To use sharding in your dataset, you can define lists of files in `gen_kwargs` to be shards. Therefore, Datasets can automatically spawn several workers to run `_generate_examples` in parallel, and each worker is given a subset of shards to process. Users can also specify `num_proc=` in `load_dataset()` to specify the number of processes to use as workers.\",\n        \"similar\": \"Sharding your dataset can be done by defining lists of files in `gen_kwargs`. This will enable Datasets to spawn multiple workers to execute `_generate_examples` in parallel, with each worker being assigned a set of shards. Additionally, `num_proc=` in `load_dataset()` can be used to specify the number of processes to be used as workers.\"\n    }\n]"
  },
  {
    "path": "examples/context_process/selective_context.py",
    "content": "import os\nimport time\n\nfrom gptcache import cache\nfrom gptcache.adapter import openai\nfrom gptcache.embedding import Onnx\nfrom gptcache.manager import manager_factory\nfrom gptcache.processor.context import SelectiveContextProcess\nfrom gptcache.similarity_evaluation import SearchDistanceEvaluation\nfrom gptcache.utils import import_selective_context\n\nimport_selective_context()\n\n\ndef response_text(openai_resp):\n    return openai_resp[\"choices\"][0][\"message\"][\"content\"]\n\n\n# Need to download the corresponding model before use\n# `pip install spacy && python -m spacy download en_core_web_sm`\n\n\ndef cache_init():\n    context_processor = SelectiveContextProcess()\n    onnx = Onnx()\n    data_manager = manager_factory(\n        \"sqlite,faiss\", vector_params={\"dimension\": onnx.dimension}\n    )\n    evaluation = SearchDistanceEvaluation()\n    cache.init(\n        pre_embedding_func=context_processor.pre_process,\n        embedding_func=onnx.to_embeddings,\n        data_manager=data_manager,\n        similarity_evaluation=evaluation,\n    )\n    os.environ[\"OPENAI_API_KEY\"] = \"API KEY\"\n    cache.set_openai_key()\n\n\ndef base_request():\n    cache_init()\n    for _ in range(2):\n        start_time = time.time()\n        response = openai.ChatCompletion.create(\n            model=\"gpt-3.5-turbo\",\n            messages=[\n                {\n                    \"role\": \"user\",\n                    \"content\": \"Can you give me some tips for staying focused while working from home?\",\n                },\n                {\n                    \"role\": \"system\",\n                    \"content\": \"Sure! Here are some tips: create a designated workspace, set a schedule, take breaks, minimize distractions, and practice good time management.\",\n                },\n                {\n                    \"role\": \"user\",\n                    \"content\": \"Those are all great suggestions. Do you have any tips for maintaining a healthy work-life balance while working from home?\",\n                },\n                {\n                    \"role\": \"system\",\n                    \"content\": \"Definitely! Setting clear boundaries between work and personal time, scheduling regular breaks throughout the day, and finding ways to disconnect from work after hours can help. Additionally, make time for hobbies and other activities you enjoy outside of work to help you relax and recharge.\",\n                },\n                {\"role\": \"user\", \"content\": \"can you give meore tips?\"},\n            ],\n            temperature=0,\n        )\n        print(\"Time consuming: {:.2f}s\".format(time.time() - start_time))\n        print(f\"Received: {response_text(response)}\")\n\n\nif __name__ == \"__main__\":\n    base_request()\n"
  },
  {
    "path": "examples/context_process/summarization_context.py",
    "content": "import os\nimport time\n\nfrom gptcache import cache\nfrom gptcache.adapter import openai\nfrom gptcache.embedding import Onnx\nfrom gptcache.manager import manager_factory\nfrom gptcache.processor.context import SummarizationContextProcess\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\n\n\ndef response_text(openai_resp):\n    return openai_resp[\"choices\"][0][\"message\"][\"content\"]\n\n\ndef cache_init():\n    onnx = Onnx()\n    context_process = SummarizationContextProcess()\n    data_manager = manager_factory(\n        \"sqlite,faiss\", vector_params={\"dimension\": onnx.dimension}\n    )\n    dir_name, _ = os.path.split(os.path.abspath(__file__))\n    cache.init(\n        pre_embedding_func=context_process.pre_process,\n        embedding_func=onnx.to_embeddings,\n        data_manager=data_manager,\n        similarity_evaluation=SearchDistanceEvaluation(),\n    )\n    os.environ[\"OPENAI_API_KEY\"] = \"API KEY\"\n    cache.set_openai_key()\n\n\ndef base_request():\n    cache_init()\n    for _ in range(2):\n        start_time = time.time()\n        response = openai.ChatCompletion.create(\n            model=\"gpt-3.5-turbo\",\n            messages=[\n                {\n                    \"role\": \"user\",\n                    \"content\": \"Can you give me some tips for staying focused while working from home?\",\n                },\n                {\n                    \"role\": \"system\",\n                    \"content\": \"Sure! Here are some tips: create a designated workspace, set a schedule, take breaks, minimize distractions, and practice good time management.\",\n                },\n                {\n                    \"role\": \"user\",\n                    \"content\": \"Those are all great suggestions. Do you have any tips for maintaining a healthy work-life balance while working from home?\",\n                },\n                {\n                    \"role\": \"system\",\n                    \"content\": \"Definitely! Setting clear boundaries between work and personal time, scheduling regular breaks throughout the day, and finding ways to disconnect from work after hours can help. Additionally, make time for hobbies and other activities you enjoy outside of work to help you relax and recharge.\",\n                },\n                {\"role\": \"user\", \"content\": \"can you give meore tips?\"},\n            ],\n            temperature=0,\n        )\n        print(\"Time consuming: {:.2f}s\".format(time.time() - start_time))\n        print(f\"Received: {response_text(response)}\")\n\n\nif __name__ == \"__main__\":\n    base_request()\n"
  },
  {
    "path": "examples/data_manager/map_manager.py",
    "content": "import os\n\nfrom gptcache.manager import get_data_manager\nfrom gptcache.adapter import openai\nfrom gptcache import cache\n\n\ndef run():\n    dir_name, _ = os.path.split(os.path.abspath(__file__))\n    data_file = dir_name + '/data_map.txt'\n    data_manager = get_data_manager(data_path=data_file, max_size=10)\n    cache.init(data_manager=data_manager)\n    cache.set_openai_key()\n\n    answer = openai.ChatCompletion.create(\n        model='gpt-3.5-turbo',\n        messages=[\n            {'role': 'user', 'content': 'what is chatgpt'}\n        ],\n    )\n    print(answer)\n\n\nif __name__ == '__main__':\n    run()\n"
  },
  {
    "path": "examples/data_manager/scalar_store.py",
    "content": "import os\n\nimport numpy as np\n\nfrom gptcache import cache\nfrom gptcache.adapter import openai\nfrom gptcache.manager import get_data_manager, CacheBase, VectorBase\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\n\nd = 8\n\n# Change the embdding function to your own\ndef mock_embeddings(data, **kwargs):\n    return np.random.random((d, )).astype('float32')\n\n\ndef run():\n    scalar_stores = [\n        CacheBase('sqlite', sql_url='sqlite:///./sqlite.db'),\n        CacheBase('postgresql', sql_url='postgresql+psycopg2://postgres:123456@127.0.0.1:5432/postgres'),\n        CacheBase('mysql', sql_url='mysql+pymysql://root:123456@127.0.0.1:3306/mysql'),\n        CacheBase('mariadb', sql_url='mariadb+pymysql://root:123456@127.0.0.1:3307/mysql'),\n        CacheBase('sqlserver', sql_url='ssql+pyodbc://sa:Strongpsw_123@127.0.0.1:1434/msdb?driver=ODBC+Driver+17+for+SQL+Server'),\n        CacheBase('oracle', sql_url='oracle+cx_oracle://oracle:123456@127.0.0.1:1521/?service_name=helowin&encoding=UTF-8&nencoding=UTF-8'),\n        CacheBase('dynamo'),\n    ]\n\n    for scalar_store in scalar_stores:\n        if os.path.exists('faiss.index'):\n            os.remove('faiss.index')\n        vector_base = VectorBase('faiss', dimension=d)\n        data_manager = get_data_manager(scalar_store, vector_base)\n        cache.init(embedding_func=mock_embeddings,\n                   data_manager=data_manager,\n                   similarity_evaluation=SearchDistanceEvaluation(),\n                   )\n        cache.set_openai_key()\n\n        answer = openai.ChatCompletion.create(\n            model='gpt-3.5-turbo',\n            messages=[\n                {'role': 'user', 'content': 'what is chatgpt'}\n            ],\n        )\n        print('answer:', answer)\n\n        answer = openai.ChatCompletion.create(\n            model='gpt-3.5-turbo',\n            messages=[\n                {'role': 'user', 'content': 'what is chatgpt'}\n            ],\n        )\n        print('answer cached:', answer)\n\n\nif __name__ == '__main__':\n    run()\n"
  },
  {
    "path": "examples/data_manager/vector_store.py",
    "content": "import numpy as np\n\nfrom gptcache import cache\nfrom gptcache.adapter import openai\nfrom gptcache.manager import CacheBase, VectorBase, get_data_manager\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\n\nd = 8\n\n\ndef mock_embeddings(data, **kwargs):\n    return np.random.random((d, )).astype('float32')\n\n\ndef run():\n    vector_stores = [\n        'faiss',\n        'milvus',\n        'chromadb',\n        'docarray',\n        'redis',\n        'weaviate',\n    ]\n    for vector_store in vector_stores:\n        cache_base = CacheBase('sqlite')\n        vector_base = VectorBase(vector_store, dimension=d)\n        data_manager = get_data_manager(cache_base, vector_base)\n\n        cache.init(\n            embedding_func=mock_embeddings,\n            data_manager=data_manager,\n            similarity_evaluation=SearchDistanceEvaluation(),\n        )\n        cache.set_openai_key()\n\n        answer = openai.ChatCompletion.create(\n            model='gpt-3.5-turbo',\n            messages=[{'role': 'user', 'content': 'what is chatgpt'}],\n        )\n        print(answer)\n\n\nif __name__ == '__main__':\n    run()\n"
  },
  {
    "path": "examples/embedding/default.py",
    "content": "from gptcache.adapter import openai\nfrom gptcache import cache\nfrom gptcache.embedding.string import to_embeddings as string_embedding\n\n\ndef run():\n    cache.init(embedding_func=string_embedding)\n    cache.set_openai_key()\n\n    answer = openai.ChatCompletion.create(\n        model='gpt-3.5-turbo',\n        messages=[\n            {'role': 'user', 'content': 'what is chatgpt'}\n        ],\n    )\n    print(answer)\n\n\nif __name__ == '__main__':\n    run()\n"
  },
  {
    "path": "examples/embedding/onnx.py",
    "content": "from gptcache.adapter import openai\nfrom gptcache import cache\nfrom gptcache.manager.factory import get_data_manager\nfrom gptcache.manager import get_data_manager, CacheBase, VectorBase\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\nfrom gptcache.embedding import Onnx\n\n\ndef run():\n    onnx = Onnx()\n\n    cache_base = CacheBase('sqlite')\n    vector_base = VectorBase('faiss', dimension=onnx.dimension)\n    data_manager = get_data_manager(cache_base, vector_base)\n\n    cache.init(embedding_func=onnx.to_embeddings,\n               data_manager=data_manager,\n               similarity_evaluation=SearchDistanceEvaluation(),\n               )\n    cache.set_openai_key()\n\n    answer = openai.ChatCompletion.create(\n        model='gpt-3.5-turbo',\n        messages=[\n            {'role': 'user', 'content': 'what is chatgpt'}\n        ],\n    )\n    print(answer)\n\n\nif __name__ == '__main__':\n    run()\n"
  },
  {
    "path": "examples/embedding/paddlenlp.py",
    "content": "from gptcache.adapter import openai\nfrom gptcache import cache\nfrom gptcache.manager.factory import get_data_manager\nfrom gptcache.manager import get_data_manager, CacheBase, VectorBase\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\nfrom gptcache.embedding import PaddleNLP\n\n\ndef run():\n    paddlenlp = PaddleNLP()\n\n    cache_base = CacheBase('sqlite')\n    vector_base = VectorBase('faiss', dimension=paddlenlp.dimension)\n    data_manager = get_data_manager(cache_base, vector_base)\n\n    cache.init(embedding_func=paddlenlp.to_embeddings,\n               data_manager=data_manager,\n               similarity_evaluation=SearchDistanceEvaluation(),\n               )\n    cache.set_openai_key()\n\n    answer = openai.ChatCompletion.create(\n        model='gpt-3.5-turbo',\n        messages=[\n            {'role': 'user', 'content': 'what is chatgpt'}\n        ],\n    )\n    print(answer)\n\n\nif __name__ == '__main__':\n    run()\n"
  },
  {
    "path": "examples/embedding/random.py",
    "content": "from gptcache.adapter import openai\nfrom gptcache import cache\nfrom gptcache.manager import get_data_manager, CacheBase, VectorBase\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\nimport numpy as np\n\n\nd = 8\n\n\ndef mock_embeddings(data, **kwargs):\n    return np.random.random((d, )).astype('float32')\n\n\ndef run():\n    cache_base = CacheBase('sqlite')\n    vector_base = VectorBase('faiss', dimension=d)\n    data_manager = get_data_manager(cache_base, vector_base)\n    cache.init(embedding_func=mock_embeddings,\n               data_manager=data_manager,\n               similarity_evaluation=SearchDistanceEvaluation(),\n               )\n    cache.set_openai_key()\n\n    answer = openai.ChatCompletion.create(\n        model='gpt-3.5-turbo',\n        messages=[\n            {'role': 'user', 'content': 'what is chatgpt'}\n        ],\n    )\n    print(answer)\n\n\nif __name__ == '__main__':\n    run()\n"
  },
  {
    "path": "examples/eviction/distributed_eviction.py",
    "content": "from gptcache import Cache\nfrom gptcache.embedding import Onnx\n\nfrom gptcache.manager.eviction import EvictionBase\n\nfrom gptcache.manager import get_data_manager, CacheBase, VectorBase, manager_factory\n\n\ndef get_data_manager_example():\n    \"\"\"\n    This example shows how to create a data manager with a mongo as a scalar storage, faiss vector base,\n    and redis eviction base.\n    This type of configuration can be used to scale GPTCache horizontally.\n    Where keys will be maintained in redis key-value store instead of in-memory.\n    The eviction of the keys will be handled based on the eviction policy of redis.\n    \"\"\"\n    onnx = Onnx()\n    data_manager = get_data_manager(cache_base=CacheBase(\"mongo\", url=\"mongodb://localhost:27017/\"),\n                                    vector_base=VectorBase(\"faiss\", dimension=onnx.dimension),\n                                    eviction_base=EvictionBase(\"redis\",\n                                                               maxmemory=\"100mb\",\n                                                               policy=\"allkeys-lru\",\n                                                               ttl=100))\n\n    cache = Cache()\n    cache.init(data_manager=data_manager)\n    question = \"What is github?\"\n    answer = \"Online platform for version control and code collaboration.\"\n    embedding = onnx.to_embeddings(question)\n    cache.import_data([question], [answer], [embedding])\n\n\ndef get_manager_example_redis_only():\n    \"\"\"\n    Note: Since, `RedisScalarStorage` can be configured to internally handle the ttl of the keys and their eviction.\n    In this scenario, `no_op_eviction` is used as the eviction base. It will not add any keys or update their ttls.\n\n    This example shows how to create a data manager with a redis as a scalar storage, as well as eviction base.\n    This type of configuration can be used to scale GPTCache horizontally.\n    Where keys will be maintained in redis key-value store instead of in-memory.\n    The eviction of the keys will be handled based on the eviction policy of redis.\n\n    \"\"\"\n    onnx = Onnx()\n    data_manager = get_data_manager(cache_base=CacheBase(\"redis\", maxmemory=\"100mb\", policy=\"allkeys-lru\", ttl=100),\n                                    vector_base=VectorBase(\"faiss\", dimension=onnx.dimension),\n                                    eviction_base=EvictionBase(\"no_op_eviction\"))\n\n    cache = Cache()\n    cache.init(data_manager=data_manager)\n    question = \"What is github?\"\n    answer = \"Online platform for version control and code collaboration.\"\n    embedding = onnx.to_embeddings(question)\n    cache.import_data([question], [answer], [embedding])\n\n\ndef manager_factory_example():\n    onnx = Onnx()\n    data_manager = manager_factory(\"redis,faiss\",\n                                   eviction_manager=\"redis\",\n                                   scalar_params={\"url\": \"redis://localhost:6379\"},\n                                   vector_params={\"dimension\": onnx.dimension},\n                                   eviction_params={\"maxmemory\": \"100mb\",\n                                                    \"policy\": \"allkeys-lru\",\n                                                    \"ttl\": 1}\n                                   )\n\n    cache = Cache()\n    cache.init(data_manager=data_manager)\n    question = \"What is github?\"\n    answer = \"Online platform for version control and code collaboration.\"\n    embedding = onnx.to_embeddings(question)\n    cache.import_data([question], [answer], [embedding])\n"
  },
  {
    "path": "examples/integrate/diffusers/stable_diffusion.py",
    "content": "import time\n\nimport torch\nfrom PIL import ImageChops\nfrom diffusers import DPMSolverMultistepScheduler\n\nfrom gptcache.adapter.diffusers import StableDiffusionPipeline\nfrom gptcache.processor.pre import get_prompt\nfrom gptcache import cache\n\nfrom gptcache.embedding import Onnx\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\nfrom gptcache.manager import get_data_manager, CacheBase, VectorBase, ObjectBase\n\n\n# onnx = Onnx()\n# cache_base = CacheBase('sqlite')\n# vector_base = VectorBase('milvus', host='localhost', port='19530', collection_name='gptcache_image', dimension=onnx.dimension)\n# object_base = ObjectBase('local', path='./images')\n# data_manager = get_data_manager(cache_base, vector_base, object_base)\n\ncache.init(\n    pre_embedding_func=get_prompt,\n    # embedding_func=onnx.to_embeddings,\n    # data_manager=data_manager,\n    # similarity_evaluation=SearchDistanceEvaluation(),\n    )\n\n\nmodel_id = \"stabilityai/stable-diffusion-2-1\"\n\n# Use the DPMSolverMultistepScheduler (DPM-Solver++) scheduler here instead\npipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)\npipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)\npipe = pipe.to(\"cuda\")\n\nprompt = \"a photo of an astronaut riding a horse on mars\"\nstart = time.time()\nimage1 = pipe(prompt=prompt).images[0]\nprint(\"First time generation:\", time.time() - start)\n\nstart = time.time()\nimage2 = pipe(prompt=prompt).images[0]\nprint(\"Second time generation:\", time.time() - start)\n\n# Compare generated images\ndiff = ImageChops.difference(image1, image2)\nassert not diff.getbbox(), \"Got different images.\""
  },
  {
    "path": "examples/integrate/dolly/basic_usage.py",
    "content": "import time\nimport torch\nfrom transformers import pipeline\nfrom gptcache.processor.pre import get_inputs\nfrom gptcache.manager import manager_factory\nfrom gptcache import Cache\nfrom gptcache.embedding import Onnx\nfrom gptcache.adapter.dolly import Dolly\n\n\ndef dolly_base_usage():\n    onnx = Onnx()\n    m = manager_factory(\"sqlite,faiss,local\", data_dir=\"./dolly\", vector_params={\"dimension\": onnx.dimension})\n    llm_cache = Cache()\n    llm_cache.init(\n        pre_embedding_func=get_inputs,\n        data_manager=m,\n        embedding_func=onnx.to_embeddings\n    )    \n\n    llm = Dolly.from_model(model=\"databricks/dolly-v2-3b\", torch_dtype=torch.bfloat16, trust_remote_code=True, device=0)\n\n    context = \"\"\"George Washington (February 22, 1732[b] – December 14, 1799) was an American military officer, statesman,\nand Founding Father who served as the first president of the United States from 1789 to 1797.\"\"\"\n    \n    for _ in range(2):\n        start_time = time.time()\n        answer = llm(context, cache_obj=llm_cache)\n        print(\"Time consuming: {:.2f}s\".format(time.time() - start_time))\n        print(f\"Received: {answer[0]['generated_text']}\")\n        print(f\"Hit cache: {answer[0].get('gptcache', False)}\")\n\n\ndef dolly_from_hugggingface():\n    onnx = Onnx()\n    m = manager_factory(\"sqlite,faiss,local\", data_dir=\"./dolly_hg\", vector_params={\"dimension\": onnx.dimension})\n    llm_cache = Cache()\n    llm_cache.init(\n        pre_embedding_func=get_inputs,\n        data_manager=m,\n        embedding_func=onnx.to_embeddings\n    )    \n\n    pipe = pipeline(model=\"databricks/dolly-v2-3b\", torch_dtype=torch.bfloat16,\n                    trust_remote_code=True, device=0, return_full_text=True)\n    llm = Dolly(pipe)\n\n    context = \"\"\"George Washington (February 22, 1732[b] – December 14, 1799) was an American military officer, statesman,\nand Founding Father who served as the first president of the United States from 1789 to 1797.\"\"\"\n    \n    for _ in range(2):\n        start_time = time.time()\n        answer = llm(context, cache_obj=llm_cache)\n        print(\"Time consuming: {:.2f}s\".format(time.time() - start_time))\n        print(f\"Received: {answer[0]['generated_text']}\")\n        print(f\"Hit cache: {answer[0].get('gptcache', False)}\")            \n\n\nif __name__ == '__main__':\n    dolly_base_usage()\n    dolly_from_hugggingface()\n"
  },
  {
    "path": "examples/integrate/langchain/langchain_llms_mock.py",
    "content": "import os\n\nfrom langchain import Cohere\nfrom langchain.llms import OpenAI\n\nfrom gptcache.adapter.langchain_models import LangChainLLMs\nfrom gptcache import cache, Cache\nfrom gptcache.processor.pre import get_prompt\n\nOpenAI.api_key = os.getenv(\"OPENAI_API_KEY\")\nCohere.cohere_api_key = os.getenv(\"COHERE_API_KEY\")\n\n\ndef run():\n    data_file = \"data_map.txt\"\n    has_data = os.path.isfile(data_file)\n    llm_cache = Cache()\n    llm_cache.init(\n        pre_embedding_func=get_prompt,\n    )\n\n    if not has_data:\n        for i in range(10):\n            question = f\"foo{i}\"\n            answer = f\"receiver the foo {i}\"\n            cache.data_manager.save(question, answer, cache.embedding_func(question))\n\n    question = \"foo0\"\n\n    langchain_openai = OpenAI(model_name=\"text-ada-001\")\n    llm = LangChainLLMs(llm=langchain_openai)\n    answer = llm(prompt=question, cache_obj=llm_cache)\n    print(answer)\n    answer = llm(prompt=question, cache_obj=llm_cache)\n    print(answer)\n\n    # TODO install cohere auto\n    langchain_cohere = Cohere()\n    llm = LangChainLLMs(llm=langchain_cohere)\n    answer = llm(prompt=question, cache_obj=llm_cache)\n    print(answer)\n\n\nif __name__ == '__main__':\n    run()\n"
  },
  {
    "path": "examples/integrate/langchain/langchain_prompt_openai.py",
    "content": "import os\n\nimport openai\nimport time\nfrom langchain.llms import OpenAI\nfrom langchain import PromptTemplate, LLMChain\n\nfrom gptcache.adapter.langchain_models import LangChainLLMs\nfrom gptcache import Cache\nfrom gptcache.processor.pre import get_prompt\n\nopenai.api_key = os.getenv(\"OPENAI_API_KEY\")\n\ntemplate = \"\"\"Question: {question}\n\nAnswer: Let's think step by step.\"\"\"\n\nprompt = PromptTemplate(template=template, input_variables=[\"question\"])\n\nllm = OpenAI()\n\nquestion = \"What NFL team won the Super Bowl in the year Justin Bieber was born?\"\n\nllm_cache = Cache()\nllm_cache.init(\n    pre_embedding_func=get_prompt,\n)\n\nbefore = time.time()\ncached_llm = LangChainLLMs(llm=llm)\nanswer = cached_llm(prompt=question, cache_obj=llm_cache)\nprint(answer)\nprint(\"Read through Time Spent =\", time.time() - before)\n\nbefore = time.time()\nanswer = cached_llm(prompt=question, cache_obj=llm_cache)\nprint(answer)\nprint(\"Cache Hit Time Spent =\", time.time() - before)\n"
  },
  {
    "path": "examples/integrate/langchain/langchain_qa_chain.py",
    "content": "import time\n\nfrom langchain import OpenAI\nfrom langchain.chains.question_answering import load_qa_chain\nfrom langchain.schema import Document\n\nfrom gptcache import cache\nfrom gptcache.adapter.api import init_similar_cache\nfrom gptcache.adapter.langchain_models import LangChainLLMs\n\n\ndef get_content_func(data, **_):\n    return data.get(\"prompt\").split(\"Question:\")[-1]\n\n\ninit_similar_cache(pre_func=get_content_func)\ncache.set_openai_key()\n\nmkt_qa = load_qa_chain(llm=LangChainLLMs(llm=OpenAI(temperature=0)), chain_type=\"stuff\")\n\nmsg = \"What is Traditional marketing?\"\n\n\nbefore = time.time()\nanswer = mkt_qa.run(question=msg, input_documents=[Document(page_content=\"marketing is hello world\")])\nprint(answer)\nprint(\"Time Spent:\", time.time() - before)\n\nbefore = time.time()\nanswer = mkt_qa.run(question=msg, input_documents=[Document(page_content=\"marketing is hello world\")])\nprint(answer)\nprint(\"Time Spent:\", time.time() - before)\n"
  },
  {
    "path": "examples/integrate/langchain/langchain_similaritycache_openai.py",
    "content": "import os\nimport time\n\nimport openai\nfrom langchain import PromptTemplate\nfrom langchain.llms import OpenAI\n\nfrom gptcache import Cache\nfrom gptcache.adapter.api import init_similar_cache\nfrom gptcache.adapter.langchain_models import LangChainLLMs\nfrom gptcache.processor.pre import get_prompt\n\nopenai.api_key = os.getenv(\"OPENAI_API_KEY\")\n\ntemplate = \"\"\"Question: {question}\n\nAnswer: Let's think step by step.\"\"\"\n\nprompt = PromptTemplate(template=template, input_variables=[\"question\"])\n\nllm = OpenAI()\n\nquestion = \"What NFL team won the Super Bowl in the year Justin Bieber was born?\"\n\nllm_cache = Cache()\ninit_similar_cache(pre_func=get_prompt, cache_obj=llm_cache)\n\n\nbefore = time.time()\ncached_llm = LangChainLLMs(llm=llm)\nanswer = cached_llm(prompt=question, cache_obj=llm_cache)\nprint(answer)\nprint(\"Read through Time Spent =\", time.time() - before)\n\nbefore = time.time()\nquestion = \"What is the winner Super Bowl in the year Justin Bieber was born?\"\nanswer = cached_llm(prompt=question, cache_obj=llm_cache)\nprint(answer)\nprint(\"Cache Hit Time Spent =\", time.time() - before)\n"
  },
  {
    "path": "examples/integrate/llama_cpp/basic_usage.py",
    "content": "import time\n\nfrom gptcache.adapter.llama_cpp import Llama\nfrom gptcache.manager import manager_factory\nfrom gptcache import Cache\nfrom gptcache.embedding import Onnx\nfrom gptcache.processor.pre import get_prompt\n\n\ndef llama_cpp_base_usage():\n    onnx = Onnx()\n    m = manager_factory(\"sqlite,faiss,local\", data_dir=\"./llamacpp_basic\", vector_params={\"dimension\": onnx.dimension})\n    llm_cache = Cache()\n    llm_cache.init(\n        pre_embedding_func=get_prompt,\n        data_manager=m,\n        embedding_func=onnx.to_embeddings\n    )\n    llm = Llama(\"./ggml-model-q4_0.bin\")\n    for _ in range(2):\n        start_time = time.time()\n        answer = llm(prompt=\"Q: Name the planets in the solar system? A: \", stop=[\"Q:\", \"\\n\"], cache_obj=llm_cache)\n        print(\"Time consuming: {:.2f}s\".format(time.time() - start_time))\n        print(f\"Received: {answer['choices'][0]['text']}\")\n        print(f\"Hit cache: {answer.get('gptcache', False)}\")\n\n\ndef llama_cpp_stream_usage():\n    onnx = Onnx()\n    m = manager_factory(\"sqlite,faiss,local\", data_dir=\"./llamacpp_stream\", vector_params={\"dimension\": onnx.dimension})\n    llm_cache = Cache()\n    llm_cache.init(\n        pre_embedding_func=get_prompt,\n        data_manager=m,\n        embedding_func=onnx.to_embeddings\n    )\n    llm = Llama(\"./ggml-model-q4_0.bin\")\n    for _ in range(2):\n        start_time = time.time()\n        ret = llm(prompt=\"Q: Name the planets in the solar system? A: \", stop=[\"Q:\", \"\\n\"], stream=True, cache_obj=llm_cache)\n        answer = ''\n        for chunk in ret:\n            answer += chunk['choices'][0]['text']\n        print(\"Time consuming: {:.2f}s\".format(time.time() - start_time))\n        print(f\"Received: {answer}\")\n\n\nif __name__ == \"__main__\":\n    llama_cpp_base_usage()\n    llama_cpp_stream_usage()\n    \n"
  },
  {
    "path": "examples/integrate/openai/basic_usage.py",
    "content": "import os\nimport time\n\nfrom gptcache.manager import get_data_manager, VectorBase\nfrom gptcache import cache, Cache\nfrom gptcache.embedding import Onnx\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\nfrom gptcache.adapter import openai\n\n\ndef response_text(openai_resp):\n    return openai_resp['choices'][0]['message']['content']\n\n\ndef cache_init():\n    dir_name, _ = os.path.split(os.path.abspath(__file__))\n    cache.init(data_manager=get_data_manager())\n    os.environ['OPENAI_API_KEY'] = 'API KEY'\n    cache.set_openai_key()\n\n\ndef base_request():\n    for _ in range(2):\n        start_time = time.time()\n        response = openai.ChatCompletion.create(\n            model='gpt-3.5-turbo',\n            messages=[\n                {\n                    'role': 'user',\n                    'content': 'Count to 5, with a comma between each number and no newlines. E.g., 1, 2, 3, ...'\n                }\n            ],\n            temperature=0,\n        )\n        print('Time consuming: {:.2f}s'.format(time.time() - start_time))\n        print(f'Received: {response_text(response)}')\n\n\ndef stream_request():\n    for _ in range(2):\n        start_time = time.time()\n        response = openai.ChatCompletion.create(\n            model='gpt-3.5-turbo',\n            messages=[\n                {'role': 'user', 'content': 'what is 1+1? Answer in one word.'}\n            ],\n            temperature=0,\n            stream=True  # this time, we set stream=True\n        )\n\n        # create variables to collect the stream of chunks\n        collected_chunks = []\n        collected_messages = []\n        # iterate through the stream of events\n        for chunk in response:\n            collected_chunks.append(chunk)  # save the event response\n            chunk_message = chunk['choices'][0]['delta']  # extract the message\n            collected_messages.append(chunk_message)  # save the message\n\n        # print the time delay and text received\n        full_reply_content = ''.join([m.get('content', '') for m in collected_messages])\n        end_time = time.time()\n        print('Time consuming: {:.2f}s'.format(end_time - start_time))\n        print(f'Full conversation received: {full_reply_content}')\n\n\ndef similar_request():\n    onnx = Onnx()\n    vector_base = VectorBase('faiss', dimension=onnx.dimension)\n    data_manager = get_data_manager('sqlite', vector_base)\n    one_cache = Cache()\n    one_cache.init(embedding_func=onnx.to_embeddings,\n                   data_manager=data_manager,\n                   similarity_evaluation=SearchDistanceEvaluation(),\n                   )\n\n    question1 = 'what do you think about chatgpt'\n    question2 = 'what do you feel like chatgpt'\n\n    start_time = time.time()\n    answer = openai.ChatCompletion.create(\n        model='gpt-3.5-turbo',\n        messages=[\n            {'role': 'user', 'content': question1}\n        ],\n        cache_obj=one_cache\n    )\n    end_time = time.time()\n    print('Time consuming: {:.2f}s'.format(end_time - start_time))\n    print(f'Received: {response_text(answer)}')\n\n    start_time = time.time()\n    answer = openai.ChatCompletion.create(\n        model='gpt-3.5-turbo',\n        messages=[\n            {'role': 'user', 'content': question2}\n        ],\n        cache_obj=one_cache\n    )\n    end_time = time.time()\n    print('Time consuming: {:.2f}s'.format(end_time - start_time))\n    print(f'Received: {response_text(answer)}')\n\n\nif __name__ == '__main__':\n    cache_init()\n    base_request()\n    stream_request()\n    similar_request()\n"
  },
  {
    "path": "examples/integrate/openai/create_image.py",
    "content": "import time\nimport base64\nfrom io import BytesIO\nfrom PIL import Image\n\nfrom gptcache.adapter import openai\nfrom gptcache.processor.pre import get_prompt\nfrom gptcache import cache\n\nfrom gptcache.embedding import Onnx\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\nfrom gptcache.manager import get_data_manager, CacheBase, VectorBase, ObjectBase\n\n\nonnx = Onnx()\ncache_base = CacheBase('sqlite')\nvector_base = VectorBase('milvus', host='localhost', port='19530', collection_name='gptcache_image', dimension=onnx.dimension)\nobject_base = ObjectBase('local', path='./images')\ndata_manager = get_data_manager(cache_base, vector_base, object_base)\n\ncache.init(\n    pre_embedding_func=get_prompt,\n    embedding_func=onnx.to_embeddings,\n    data_manager=data_manager,\n    similarity_evaluation=SearchDistanceEvaluation(),\n    )\ncache.set_openai_key()\n\n##################### Create an image with prompt1 ###################\nprompt1 = 'a cat sitting besides a dog'\nsize1 = '256x256'\n\nstart = time.time()\nresponse1 = openai.Image.create(\n    prompt=prompt1,\n    size=size1,\n    # response_format='b64_json'\n    response_format='b64_json'\n    )\nend = time.time()\nprint('Time elapsed:', end - start)\n\n# img = Image.open(response['data'][0]['url'])\n# print(img.size)\n\nimg_b64_1 = response1['data'][0]['b64_json']\nimg_bytes_1 = base64.b64decode((img_b64_1))\nimg_file_1 = BytesIO(img_bytes_1)  # convert image to file-like object\nimg_1 = Image.open(img_file_1) # convert image to PIL\nassert img_1.size == tuple([int(x) for x in size1.split('x')]), \\\n    'Expected to generate an image of size {size1} but got {img_1.size}.'\n\n\n#####################  Create an image with prompt2 ##################### \nprompt2 = 'a dog sitting besides a cat'\nsize2 = '512x512'\n\nstart = time.time()\nresponse2 = openai.Image.create(\n    prompt=prompt2,\n    size=size2,\n    # response_format='b64_json'\n    response_format='b64_json'\n    )\nend = time.time()\nprint('Time elapsed:', end - start)\n\n# img = Image.open(response['data'][0]['url'])\n# print(img.size)\n\nimg_b64_2 = response2['data'][0]['b64_json']\nimg_bytes_2 = base64.b64decode((img_b64_2))\nimg_file_2 = BytesIO(img_bytes_2)  # convert image to file-like object\nimg_2 = Image.open(img_file_2) # convert image to PIL\nassert img_2.size == tuple([int(x) for x in size2.split('x')]), \\\n    f'Expected to generate an image of size {size2} but got {img_2.size}.'\n"
  },
  {
    "path": "examples/integrate/openai/qa.py",
    "content": "import os\nimport openai\nimport time\n\nopenai.api_key = os.getenv('OPENAI_API_KEY')\n\nbefore = time.time()\nresponse = openai.ChatCompletion.create(\n  model='gpt-3.5-turbo',\n  messages=[\n    {'role': 'user',\n     'content': 'I am a highly intelligent question answering bot. If you ask me a question that is rooted in truth, I will give you the answer. If you ask me a question that is nonsense, trickery, or has no clear answer, I will respond with \\'Unknown\\'.\\n\\nQ: What is human life expectancy in the United States?\\nA: Human life expectancy in the United States is 78 years.\\n\\nQ: Who was president of the United States in 1955?\\nA: Dwight D. Eisenhower was president of the United States in 1955.\\n\\nQ: Which party did he belong to?\\nA: He belonged to the Republican Party.\\n\\nQ: What is the square root of banana?\\nA: Unknown\\n\\nQ: How does a telescope work?\\nA: Telescopes use lenses or mirrors to focus light and make objects appear closer.\\n\\nQ: Where were the 1992 Olympics held?\\nA: The 1992 Olympics were held in Barcelona, Spain.\\n\\nQ: How many squigs are in a bonk?\\nA: Unknown\\n\\nQ: Where is the Valley of Kings?\\nA:\\','\n    }\n  ],\n)\nprint('Time Spent =', time.time() - before)\t\nprint(response['choices'])\n\n## import gptcache\nprint('Cache loading.....')\nfrom gptcache import cache\nfrom gptcache.adapter import openai\ncache.init()\ncache.set_openai_key()\n\nbefore = time.time()\nresponse = openai.ChatCompletion.create(\n  model='gpt-3.5-turbo',\n  messages=[\n    {'role': 'user',\n     'content': 'I am a highly smart question answering bot. If you ask me a question that is rooted in truth, I will give you the answer. If you ask me a question that is nonsense, trickery, or has no clear answer, I will respond with \\'Unknown\\'.\\n\\nQ: What is human life expectancy in the United States?\\nA: Human life expectancy in the United States is 78 years.\\n\\nQ: Who was president of the United States in 1955?\\nA: Dwight D. Eisenhower was president of the United States in 1955.\\n\\nQ: Which party did he belong to?\\nA: He belonged to the Republican Party.\\n\\nQ: What is the square root of banana?\\nA: Unknown\\n\\nQ: How does a telescope work?\\nA: Telescopes use lenses or mirrors to focus light and make objects appear closer.\\n\\nQ: Where were the 1992 Olympics held?\\nA: The 1992 Olympics were held in Barcelona, Spain.\\n\\nQ: How many squigs are in a bonk?\\nA: Unknown\\n\\nQ: Where is the Valley of Kings?\\nA:\\','\n    }\n  ],\n)\nprint('Time Spent =', time.time() - before)\t\nprint(response)\n\nif 'gptcache' not in response:\n  before = time.time()\n  response = openai.ChatCompletion.create(\n    model='gpt-3.5-turbo',\n    messages=[\n      {'role': 'user',\n       'content': 'I am a highly intelligent question answering bot. If you ask me a question that is rooted in truth, I will give you the answer. If you ask me a question that is nonsense, trickery, or has no clear answer, I will respond with \\'Unknown\\'.\\n\\nQ: What is human life expectancy in the United States?\\nA: Human life expectancy in the United States is 78 years.\\n\\nQ: Who was president of the United States in 1955?\\nA: Dwight D. Eisenhower was president of the United States in 1955.\\n\\nQ: Which party did he belong to?\\nA: He belonged to the Republican Party.\\n\\nQ: What is the square root of banana?\\nA: Unknown\\n\\nQ: How does a telescope work?\\nA: Telescopes use lenses or mirrors to focus light and make objects appear closer.\\n\\nQ: Where were the 1992 Olympics held?\\nA: The 1992 Olympics were held in Barcelona, Spain.\\n\\nQ: How many squigs are in a bonk?\\nA: Unknown\\n\\nQ: Where is the Valley of Kings?\\nA:\\','\n      }\n    ],\n  )\n  print('Time Spent =', time.time() - before)\n  print(response)\n\n\n"
  },
  {
    "path": "examples/integrate/openai/readme.py",
    "content": "import os\nimport time\n\nimport openai\n\n\ndef response_text(openai_resp):\n    return openai_resp['choices'][0]['message']['content']\n\n\n# Before running this case, make sure the OPENAI_API_KEY environment variable is set\n\nquestion = 'what‘s chatgpt'\n\n# OpenAI API original usage\nopenai.api_key = os.getenv('OPENAI_API_KEY')\nstart_time = time.time()\nresponse = openai.ChatCompletion.create(\n  model='gpt-3.5-turbo',\n  messages=[\n    {\n        'role': 'user',\n        'content': question\n    }\n  ],\n)\nprint(f'Question: {question}')\nprint('Time consuming: {:.2f}s'.format(time.time() - start_time))\nprint(f'Answer: {response_text(response)}\\n')\n\n# GPTCache exact matching usage\nprint('GPTCache exact matching example.....')\nprint('Cache loading.....')\n\n# To use GPTCache, that's all you need\n# -------------------------------------------------\nfrom gptcache import cache\nfrom gptcache.adapter import openai\n\ncache.init()\ncache.set_openai_key()\n# -------------------------------------------------\n\nquestion = 'what is github'\nfor _ in range(2):\n    start_time = time.time()\n    response = openai.ChatCompletion.create(\n      model='gpt-3.5-turbo',\n      messages=[\n        {\n            'role': 'user',\n            'content': question\n        }\n      ],\n    )\n    print(f'Question: {question}')\n    print('Time consuming: {:.2f}s'.format(time.time() - start_time))\n    print(f'Answer: {response_text(response)}\\n')\n\n# GPTCache similar search usage\nprint('GPTCache similar search example.....')\nprint('Cache loading.....')\n\nfrom gptcache import cache\nfrom gptcache.adapter import openai\nfrom gptcache.embedding import Onnx\nfrom gptcache.manager import get_data_manager, VectorBase\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\n\nonnx = Onnx()\nvector_base = VectorBase('faiss', dimension=onnx.dimension)\ndata_manager = get_data_manager('sqlite', vector_base)\ncache.init(\n    embedding_func=onnx.to_embeddings,\n    data_manager=data_manager,\n    similarity_evaluation=SearchDistanceEvaluation(),\n    )\ncache.set_openai_key()\n\nquestions = [\n    'what is github',\n    'can you explain what GitHub is',\n    'can you tell me more about GitHub'\n    'what is the purpose of GitHub'\n]\n\nfor question in questions:\n    for _ in range(2):\n        start_time = time.time()\n        response = openai.ChatCompletion.create(\n            model='gpt-3.5-turbo',\n            messages=[\n                {\n                    'role': 'user',\n                    'content': question\n                }\n            ],\n        )\n        print(f'Question: {question}')\n        print('Time consuming: {:.2f}s'.format(time.time() - start_time))\n        print(f'Answer: {response_text(response)}\\n')\n"
  },
  {
    "path": "examples/integrate/openai/summarize.py",
    "content": "import os\nimport openai\nimport time\n\nopenai.api_key = os.getenv('OPENAI_API_KEY')\n\nbefore = time.time()\nresponse = openai.ChatCompletion.create(\n  model='gpt-3.5-turbo',\n  messages=[\n    {'role': 'user',\n     'content': 'Summarize this for a second-grade student:\\n\\nJupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. It is named after the Roman god Jupiter.[19] When viewed from Earth, Jupiter can be bright enough for its reflected light to cast visible shadows,[20] and is on average the third-brightest natural object in the night sky after the Moon and Venus.',\n    }\n  ],\n)\nprint('Time Spent =', time.time() - before)\nprint(response['choices'])\n\n## import gptcache\nprint('Cache loading.....')\nfrom gptcache import cache\nfrom gptcache.adapter import openai\n\n## To use GPTCache, that's all you need\ncache.init()\ncache.set_openai_key()\n\nbefore = time.time()\nresponse = openai.ChatCompletion.create(\n  model='gpt-3.5-turbo',\n  messages=[\n    {'role': 'user',\n     'content': 'Summarize this for a third-grade student:\\n\\nJupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. It is named after the Roman god Jupiter.[19] When viewed from Earth, Jupiter can be bright enough for its reflected light to cast visible shadows,[20] and is on average the third-brightest natural object in the night sky after the Moon and Venus.',\n    }\n  ],\n)\nprint('Time Spent =', time.time() - before)\nprint(response)\n\nif 'gptcache' not in response:\n  response = openai.ChatCompletion.create(\n    model='gpt-3.5-turbo',\n    messages=[\n      {'role': 'user',\n       'content': 'Summarize this for a second-grade student:\\n\\nJupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. It is named after the Roman god Jupiter.[19] When viewed from Earth, Jupiter can be bright enough for its reflected light to cast visible shadows,[20] and is on average the third-brightest natural object in the night sky after the Moon and Venus.',\n       }\n    ],\n  )\n  print('Time Spent =', time.time() - before)\n  print(response)\n"
  },
  {
    "path": "examples/integrate/replicate/vqa.py",
    "content": "import time\n\nfrom gptcache import cache\nfrom gptcache.adapter import replicate\nfrom gptcache.embedding import Timm, Onnx\nfrom gptcache.manager import get_data_manager, CacheBase, VectorBase, ObjectBase\nfrom gptcache.processor.pre import get_input_image_file_name\nfrom gptcache.similarity_evaluation.np import NumpyNormEvaluation\n\ntimm = Timm('resnet18')\nonnx = Onnx()\ncache_base = CacheBase('sqlite')\nvector_base = VectorBase('faiss', dimension=timm.dimension)\nobject_base = ObjectBase('local', path='./objects')\ndata_manager = get_data_manager(cache_base, vector_base, object_base)\n\ncache.init(\n    pre_embedding_func=get_input_image_file_name,\n    data_manager=data_manager,\n    embedding_func=timm.to_embeddings,\n    similarity_evaluation=NumpyNormEvaluation(enable_normal=True, question_embedding_function=onnx.to_embeddings)\n    )\n    \n\nimage_path = '../../../docs/GPTCache.png'\n\n\n# run replicate clinet with gptcache\nstart = time.time()\nquestion1 = \"what is in the image?\"\nquestion2 = \"What can you see in the image?\"\n\noutput = replicate.run(\n    \"andreasjansson/blip-2:4b32258c42e9efd4288bb9910bc532a69727f9acd26aa08e175713a0a857a608\",\n    input={\n        \"image\": open(image_path, 'rb'),\n        \"question\": question1}\n    )\nend = time.time()\nprint('Answer:', output)\nprint('Time elapsed 1:', end - start)\n\nstart = time.time()\noutput = replicate.run(\n    \"andreasjansson/blip-2:4b32258c42e9efd4288bb9910bc532a69727f9acd26aa08e175713a0a857a608\",\n    input={\n        \"image\": open(image_path, 'rb'),\n        \"question\": question2}\n    )\nend = time.time()\nprint('Answer:', output)\nprint('Time elapsed 2:', end - start)"
  },
  {
    "path": "examples/integrate/stability/text_to_image.py",
    "content": "import io\nimport os\nimport time\n\nfrom PIL import Image\n\nfrom gptcache import cache\nfrom gptcache.adapter.stability_sdk import StabilityInference, generation\nfrom gptcache.embedding import Onnx\nfrom gptcache.manager.factory import manager_factory\nfrom gptcache.processor.pre import get_prompt\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\n\n# init gptcache\nonnx = Onnx()\ndata_manager = manager_factory('sqlite,faiss,local',\n                               data_dir='/',\n                               vector_params={'dimension': onnx.dimension},\n                               object_params={'path': './images'}\n                               )\ncache.init(\n    pre_embedding_func=get_prompt,\n    embedding_func=onnx.to_embeddings,\n    data_manager=data_manager,\n    similarity_evaluation=SearchDistanceEvaluation()\n    )\n\n# run with gptcache\napi_key = os.getenv('STABILITY_KEY', 'key-goes-here')\n\nstability_api = StabilityInference(\n    key=os.environ['STABILITY_KEY'], # API Key reference.\n    verbose=False, # Print debug messages.\n    engine='stable-diffusion-xl-beta-v2-2-2', # Set the engine to use for generation.\n)\n\nstart = time.time()\nanswers = stability_api.generate(\n    prompt='a cat sitting besides a dog',\n    width=256,\n    height=256\n    )\n\nfor resp in answers:\n    for artifact in resp.artifacts:\n        if artifact.type == generation.ARTIFACT_IMAGE:\n            img = Image.open(io.BytesIO(artifact.binary))\n            assert img.size == (256, 256)\nprint('Time elapsed 1:', time.time() - start)\n\nstart = time.time()\nanswers = stability_api.generate(\n    prompt='a dog and a dog sitting together',\n    width=512,\n    height=512\n    )\n\nfor resp in answers:\n    for artifact in resp.artifacts:\n        if artifact.type == generation.ARTIFACT_IMAGE:\n            img = Image.open(io.BytesIO(artifact.binary))\n            assert img.size == (512, 512)\nprint('Time elapsed 2:', time.time() - start)"
  },
  {
    "path": "examples/processor/llm_verifier_example.py",
    "content": "import time\nimport os\n\nfrom gptcache import cache\nfrom gptcache.adapter import openai\nfrom gptcache.embedding import Onnx\nfrom gptcache.manager import manager_factory\nfrom gptcache.processor.post import LlmVerifier\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\n\nprint(\"This example demonstrates how to use LLM verification with OpenAI's GPT-3.5 Turbo model.\")\ncache.set_openai_key()\n\nonnx = Onnx()\ndata_manager = manager_factory(\"sqlite,faiss\", vector_params={\"dimension\": onnx.dimension})\n\n\n\n\ncustom_prompt = \"\"\"You are a helpful assistant. Your task is to verify whether the answer is semantically consistent with the question.\nIf the answer is consistent, respond with \"yes\". If it is not consistent, respond with \"no\".\nYou must only respond in \"yes\" or \"no\". \"\"\"\n\nverifier = LlmVerifier(client=None,\n                       system_prompt=custom_prompt,\n                       model=\"gpt-3.5-turbo\")\n\ncache.init(\n    embedding_func=onnx.to_embeddings,\n    data_manager=data_manager,\n    similarity_evaluation=SearchDistanceEvaluation(),\n    post_process_messages_func=verifier\n)\n\nquestion = 'what is github'\n\nfor _ in range(3):\n    start = time.time()\n    response = openai.ChatCompletion.create(\n        model='gpt-3.5-turbo',\n        messages=[{\n            'role': 'user',\n            'content': question\n        }],\n    )\n    print(f\"Response: {response['choices'][0]['message']['content']}\")\n    print(f\"Time: {round(time.time() - start, 2)}s\\n\")\n"
  },
  {
    "path": "examples/processor/temperature_example.py",
    "content": "import time\n\nfrom gptcache import cache\nfrom gptcache.adapter import openai\nfrom gptcache.embedding import Onnx\nfrom gptcache.manager import manager_factory\nfrom gptcache.processor.post import temperature_softmax\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\n\ncache.set_openai_key()\n\n# Init cache with vector store\n# if os.path.exists(\"faiss.index\"):\n#     os.remove(\"faiss.index\")\n# if os.path.exists(\"sqlite.db\"):\n#     os.remove(\"sqlite.db\")\n\nonnx = Onnx()\ndata_manager = manager_factory(\"sqlite,faiss\", vector_params={\"dimension\": onnx.dimension})\n\ncache.init(\n    embedding_func=onnx.to_embeddings,\n    data_manager=data_manager,\n    similarity_evaluation=SearchDistanceEvaluation(),\n    post_process_messages_func=temperature_softmax\n    )\n# cache.config = Config(similarity_threshold=0.2)\n\nquestion = 'what is github'\n\nfor _ in range(3):\n    start = time.time()\n    response = openai.ChatCompletion.create(\n        model='gpt-3.5-turbo',\n        temperature = 1.0,  # Change temperature here\n        messages=[{\n            'role': 'user',\n            'content': question\n        }],\n    )\n    print(round(time.time() - start, 3))\n    print(response[\"choices\"][0][\"message\"][\"content\"])"
  },
  {
    "path": "examples/session/session.py",
    "content": "from gptcache import cache\nfrom gptcache.session import Session\nfrom gptcache.adapter import openai\n\n# init gptcache\ncache.init()\ncache.set_openai_key()\n\n\ndef run_session():\n    session = Session()\n    response = openai.ChatCompletion.create(\n                  model=\"gpt-3.5-turbo\",\n                  messages=[\n                    {\n                        \"role\": \"user\",\n                        \"content\": \"what's github?\"\n                    }],\n                  session=session\n                )\n    response_content = response[\"choices\"][0][\"message\"][\"content\"]\n    print(response_content)\n\n\ndef run_custom_session():\n    def my_check_hit(cur_session_id, cache_session_ids, cache_questions, cache_answer):\n        print(cur_session_id, cache_session_ids, cache_questions, cache_answer)\n        if \"GitHub\" in cache_answer:\n            return True\n        return False\n    session = Session(name=\"my-session\", check_hit_func=my_check_hit)\n    response = openai.ChatCompletion.create(\n        model=\"gpt-3.5-turbo\",\n        messages=[\n            {\n                \"role\": \"user\",\n                \"content\": \"what's github?\"\n            }],\n        session=session\n    )\n    response_content = response[\"choices\"][0][\"message\"][\"content\"]\n    print(response_content)\n"
  },
  {
    "path": "examples/similarity_evaluation/exact_match.py",
    "content": "from gptcache.adapter import openai\nfrom gptcache import cache\nfrom gptcache.similarity_evaluation.exact_match import ExactMatchEvaluation\n\n\ndef run():\n    cache.init(similarity_evaluation=ExactMatchEvaluation())\n    cache.set_openai_key()\n\n    answer = openai.ChatCompletion.create(\n        model='gpt-3.5-turbo',\n        messages=[\n            {'role': 'user', 'content': 'what is chatgpt'}\n        ],\n    )\n    print(answer)\n\n\nif __name__ == '__main__':\n    run()\n"
  },
  {
    "path": "examples/similarity_evaluation/onnx.py",
    "content": "from gptcache.adapter import openai\nfrom gptcache import cache\nfrom gptcache.manager import get_data_manager, CacheBase, VectorBase\nfrom gptcache.embedding import Onnx as EmbeddingOnnx\nfrom gptcache.similarity_evaluation import OnnxModelEvaluation\n\n\ndef run():\n    onnx = EmbeddingOnnx()\n    evaluation_onnx = OnnxModelEvaluation()\n\n    vector_base = VectorBase('faiss', dimension=onnx.dimension)\n    data_manager = get_data_manager('sqlite', vector_base)\n\n    cache.init(embedding_func=onnx.to_embeddings,\n               data_manager=data_manager,\n               similarity_evaluation=evaluation_onnx,\n               )\n    cache.set_openai_key()\n\n    answer = openai.ChatCompletion.create(\n        model='gpt-3.5-turbo',\n        messages=[\n            {'role': 'user', 'content': 'what is chatgpt'}\n        ],\n    )\n    print(answer)\n\n\nif __name__ == '__main__':\n    run()\n"
  },
  {
    "path": "examples/similarity_evaluation/search_distance.py",
    "content": "from gptcache.adapter import openai\nfrom gptcache import cache\nfrom gptcache.manager import get_data_manager, VectorBase\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\nfrom gptcache.embedding import Onnx\n\n\ndef run():\n    onnx = Onnx()\n\n    vector_base = VectorBase('faiss', dimension=onnx.dimension)\n    data_manager = get_data_manager('sqlite', vector_base)\n\n    cache.init(embedding_func=onnx.to_embeddings,\n               data_manager=data_manager,\n               similarity_evaluation=SearchDistanceEvaluation(),\n               )\n    cache.set_openai_key()\n\n    answer = openai.ChatCompletion.create(\n        model='gpt-3.5-turbo',\n        messages=[\n            {'role': 'user', 'content': 'what is chatgpt'}\n        ],\n    )\n    print(answer)\n\n\nif __name__ == '__main__':\n    run()\n"
  },
  {
    "path": "examples/similarity_evaluation/sequence_match.py",
    "content": "from gptcache.adapter import openai\nfrom gptcache import cache\nfrom gptcache.manager import get_data_manager, VectorBase\nfrom gptcache.similarity_evaluation import SequenceMatchEvaluation\nfrom gptcache.processor.pre import concat_all_queries\nfrom gptcache.embedding import Onnx\nfrom gptcache import Config\n\n\ndef run():\n    onnx = Onnx()\n\n    vector_base = VectorBase('faiss', dimension=onnx.dimension)\n    data_manager = get_data_manager('sqlite', vector_base)\n\n    cache.init(embedding_func=onnx.to_embeddings,\n               pre_embedding_func=concat_all_queries,\n               data_manager=data_manager,\n               similarity_evaluation=SequenceMatchEvaluation([0.1, 0.2, 0.7], 'onnx'),\n               config=Config(context_len=3, skip_list=['system', 'assistant'])\n               )\n    cache.set_openai_key()\n\n    answer = openai.ChatCompletion.create(\n        model='gpt-3.5-turbo',\n        messages=[\n            {'role': 'system', 'content': 'you are a helpful chatbot.'},\n            {'role': 'user', 'content': 'query1'},\n            {'role': 'assistant', 'content': 'answer1'},\n            {'role': 'user', 'content': 'query2'},\n            {'role': 'assistant', 'content': 'answer2'},\n            {'role': 'user', 'content': 'query3'},\n            {'role': 'assistant', 'content': 'answer3'}\n        ]\n    )\n    print(answer)\n\n\nif __name__ == '__main__':\n    run()\n"
  },
  {
    "path": "examples/vqa_demo.py",
    "content": "# ================================================================================\n# This demo comes from [minigpt4](https://github.com/Vision-CAIR/MiniGPT-4)\n# and is integrated with [gptcahe](https://github.com/zilliztech/GPTCache)\n# for image Question Answering.\n# Please make sure you have successfully setup minigpt4.\n# Run `python vqa_demo.py --cfg-path eval_configs/minigpt4_eval.yaml  --gpu-id 0`.\n# =================================================================================\n\nimport argparse\n\nimport gradio as gr\n\nfrom gptcache import cache\nfrom gptcache.processor.pre import get_image, get_image_question\nfrom gptcache.embedding import Timm\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\nfrom gptcache.manager.factory import manager_factory\n\nfrom gptcache.adapter.minigpt4 import MiniGPT4\n\n\ndef parse_args():\n    parser = argparse.ArgumentParser(description=\"Demo\")\n    parser.add_argument(\"--cfg-path\", required=True, help=\"path to configuration file.\")\n    parser.add_argument(\"--gpu-id\", type=int, default=0, help=\"specify the gpu to load the model.\")\n    parser.add_argument(\"--dir\", type=str, default=\".\", help=\"path for data storage.\")\n    parser.add_argument(\"--map\", action='store_true', help=\"use map for exact match cache.\")\n    parser.add_argument('--no-map', dest='map', action='store_false', help=\"use sqlite and faiss for similar search cache.\")\n    parser.set_defaults(map=True)\n    parser.add_argument(\n        \"--options\",\n        nargs=\"+\",\n        help=\"override some settings in the used config, the key-value pair \"\n             \"in xxx=yyy format will be merged into config file (deprecate), \"\n             \"change to --cfg-options instead.\",\n    )\n    args = parser.parse_args()\n    return args\n\n\nargs = parse_args()\n\nprint(\"Initializing GPTCache\")\nif args.map:\n    data_manager = manager_factory(\"map\", args.dir)\n    cache.init(\n        pre_embedding_func=get_image_question,\n        data_manager=data_manager\n    )  # init with map method\nelse:\n    timm = Timm()\n    data_manager = manager_factory(\"sqlite,faiss\", args.dir, vector_params={\"dimension\": timm.dimension})\n    cache.init(\n        pre_embedding_func=get_image,\n        data_manager=data_manager,\n        embedding_func=timm.to_embeddings,\n        similarity_evaluation=SearchDistanceEvaluation()\n    )\nprint(\"GPTCache Initialization Finished\")\n\nprint(\"Initializing Chat\")\npipeline = MiniGPT4.from_pretrained(cfg_path=args.cfg_path, gpu_id=args.gpu_id, options=args.options, return_hit=True)\nprint(\" Chat Initialization Finished\")\n\n\n# ========================================\n#             Gradio Setting\n# ========================================\n\n\ntitle = \"\"\"<h1 align=\"center\">Demo of MiniGPT-4 and GPTCache</h1>\"\"\"\ndescription = \"\"\"<h3>This is the demo of MiniGPT-4 and GPTCache. Upload your images and ask question, and it will be cached.</h3>\"\"\"\narticle = \"\"\"<p><a href=\"https://github.com/zilliztech/GPTCache\"><img src=\"https://img.shields.io/badge/Github-Code-blue\"></a></p>\"\"\"\n\n# show examples below\n\n\nwith gr.Blocks() as demo:\n    gr.Markdown(title)\n    gr.Markdown(description)\n    gr.Markdown(article)\n    with gr.Row():\n        with gr.Column():\n            inp0 = gr.Image(source=\"upload\", type=\"filepath\")\n            inp1 = gr.Textbox(label=\"Question\")\n        with gr.Column():\n            out0 = gr.Textbox()\n            out1 = gr.Textbox(label=\"is hit\")\n    btn = gr.Button(\"Submit\")\n    btn.click(fn=pipeline, inputs=[inp0, inp1], outputs=[out0, out1])\n\ndemo.launch(share=True)\n"
  },
  {
    "path": "gptcache/__init__.py",
    "content": "\"\"\"gptcache version\"\"\"\n__version__ = \"0.1.44\"\n\nfrom gptcache.config import Config\nfrom gptcache.core import Cache\nfrom gptcache.core import cache\n"
  },
  {
    "path": "gptcache/adapter/__init__.py",
    "content": ""
  },
  {
    "path": "gptcache/adapter/adapter.py",
    "content": "import time\n\nimport numpy as np\n\nfrom gptcache import cache\nfrom gptcache.processor.post import temperature_softmax, LlmVerifier\nfrom gptcache.utils.error import NotInitError\nfrom gptcache.utils.log import gptcache_log\nfrom gptcache.utils.time import time_cal\n\n\ndef adapt(llm_handler, cache_data_convert, update_cache_callback, *args, **kwargs):\n    \"\"\"Adapt to different llm\n\n    :param llm_handler: LLM calling method, when the cache misses, this function will be called\n    :param cache_data_convert: When the cache hits, convert the answer in the cache to the format of the result returned by llm\n    :param update_cache_callback: If the cache misses, after getting the result returned by llm, save the result to the cache\n    :param args: llm args\n    :param kwargs: llm kwargs\n    :return: llm result\n    \"\"\"\n    start_time = time.time()\n    search_only_flag = kwargs.pop(\"search_only\", False)\n    user_temperature = \"temperature\" in kwargs\n    user_top_k = \"top_k\" in kwargs\n    temperature = kwargs.pop(\"temperature\", 0.0)\n    chat_cache = kwargs.pop(\"cache_obj\", cache)\n    session = kwargs.pop(\"session\", None)\n    require_object_store = kwargs.pop(\"require_object_store\", False)\n    if require_object_store:\n        assert chat_cache.data_manager.o, \"Object store is required for adapter.\"\n    if not chat_cache.has_init:\n        raise NotInitError()\n    cache_enable = chat_cache.cache_enable_func(*args, **kwargs)\n    context = kwargs.pop(\"cache_context\", {})\n    embedding_data = None\n    # you want to retry to send the request to chatgpt when the cache is negative\n\n    if 0 < temperature < 2:\n        cache_skip_options = [True, False]\n        prob_cache_skip = [0, 1]\n        cache_skip = kwargs.pop(\n            \"cache_skip\",\n            temperature_softmax(\n                messages=cache_skip_options,\n                scores=prob_cache_skip,\n                temperature=temperature,\n            ),\n        )\n    elif temperature >= 2:\n        cache_skip = kwargs.pop(\"cache_skip\", True)\n    else:  # temperature <= 0\n        cache_skip = kwargs.pop(\"cache_skip\", False)\n    cache_factor = kwargs.pop(\"cache_factor\", 1.0)\n    pre_embedding_res = time_cal(\n        chat_cache.pre_embedding_func,\n        func_name=\"pre_process\",\n        report_func=chat_cache.report.pre,\n    )(\n        kwargs,\n        extra_param=context.get(\"pre_embedding_func\", None),\n        prompts=chat_cache.config.prompts,\n        cache_config=chat_cache.config,\n    )\n    if isinstance(pre_embedding_res, tuple):\n        pre_store_data = pre_embedding_res[0]\n        pre_embedding_data = pre_embedding_res[1]\n    else:\n        pre_store_data = pre_embedding_res\n        pre_embedding_data = pre_embedding_res\n\n    if chat_cache.config.input_summary_len is not None:\n        pre_embedding_data = _summarize_input(\n            pre_embedding_data, chat_cache.config.input_summary_len\n        )\n\n    if cache_enable:\n        embedding_data = time_cal(\n            chat_cache.embedding_func,\n            func_name=\"embedding\",\n            report_func=chat_cache.report.embedding,\n        )(pre_embedding_data, extra_param=context.get(\"embedding_func\", None))\n    if cache_enable and not cache_skip:\n        search_data_list = time_cal(\n            chat_cache.data_manager.search,\n            func_name=\"search\",\n            report_func=chat_cache.report.search,\n        )(\n            embedding_data,\n            extra_param=context.get(\"search_func\", None),\n            top_k=kwargs.pop(\"top_k\", 5)\n            if (user_temperature and not user_top_k)\n            else kwargs.pop(\"top_k\", -1),\n        )\n        if search_data_list is None:\n            search_data_list = []\n        cache_answers = []\n        similarity_threshold = chat_cache.config.similarity_threshold\n        min_rank, max_rank = chat_cache.similarity_evaluation.range()\n        rank_threshold = (max_rank - min_rank) * similarity_threshold * cache_factor\n        rank_threshold = (\n            max_rank\n            if rank_threshold > max_rank\n            else min_rank\n            if rank_threshold < min_rank\n            else rank_threshold\n        )\n        for search_data in search_data_list:\n            cache_data = time_cal(\n                chat_cache.data_manager.get_scalar_data,\n                func_name=\"get_data\",\n                report_func=chat_cache.report.data,\n            )(\n                search_data,\n                extra_param=context.get(\"get_scalar_data\", None),\n                session=session,\n            )\n            if cache_data is None:\n                continue\n\n            # cache consistency check\n            if chat_cache.config.data_check:\n                is_healthy = cache_health_check(\n                    chat_cache.data_manager.v,\n                    {\n                        \"embedding\": cache_data.embedding_data,\n                        \"search_result\": search_data,\n                    },\n                )\n                if not is_healthy:\n                    continue\n\n            if \"deps\" in context and hasattr(cache_data.question, \"deps\"):\n                eval_query_data = {\n                    \"question\": context[\"deps\"][0][\"data\"],\n                    \"embedding\": None,\n                }\n                eval_cache_data = {\n                    \"question\": cache_data.question.deps[0].data,\n                    \"answer\": cache_data.answers[0].answer,\n                    \"search_result\": search_data,\n                    \"cache_data\": cache_data,\n                    \"embedding\": None,\n                }\n            else:\n                eval_query_data = {\n                    \"question\": pre_store_data,\n                    \"embedding\": embedding_data,\n                }\n\n                eval_cache_data = {\n                    \"question\": cache_data.question,\n                    \"answer\": cache_data.answers[0].answer,\n                    \"search_result\": search_data,\n                    \"cache_data\": cache_data,\n                    \"embedding\": cache_data.embedding_data,\n                }\n            rank = time_cal(\n                chat_cache.similarity_evaluation.evaluation,\n                func_name=\"evaluation\",\n                report_func=chat_cache.report.evaluation,\n            )(\n                eval_query_data,\n                eval_cache_data,\n                extra_param=context.get(\"evaluation_func\", None),\n            )\n            gptcache_log.debug(\n                \"similarity: [user question] %s, [cache question] %s, [value] %f\",\n                pre_store_data,\n                cache_data.question,\n                rank,\n            )\n            if rank_threshold <= rank:\n                cache_answers.append(\n                    (float(rank), cache_data.answers[0].answer, search_data, cache_data)\n                )\n                chat_cache.data_manager.hit_cache_callback(search_data)\n        cache_answers = sorted(cache_answers, key=lambda x: x[0], reverse=True)\n        answers_dict = dict((d[1], d) for d in cache_answers)\n        if len(cache_answers) != 0:\n            hit_callback = kwargs.pop(\"hit_callback\", None)\n            if hit_callback and callable(hit_callback):\n                factor = max_rank - min_rank\n                hit_callback([(d[3].question, d[0] / factor if factor else d[0]) for d in cache_answers])\n            def post_process():\n                if chat_cache.post_process_messages_func is temperature_softmax:\n                    return_message = chat_cache.post_process_messages_func(\n                        messages=[t[1] for t in cache_answers],\n                        scores=[t[0] for t in cache_answers],\n                        temperature=temperature,\n                    )\n                elif chat_cache.post_process_messages_func is LlmVerifier:\n                    return_message = chat_cache.post_process_messages_func(\n                        messages=[t[1] for t in cache_answers],\n                        scores=[t[0] for t in cache_answers],\n                        original_question=pre_embedding_data\n                    )\n                else:\n                    return_message = chat_cache.post_process_messages_func(\n                        [t[1] for t in cache_answers]\n                    )\n                return return_message\n\n            return_message = time_cal(\n                post_process,\n                func_name=\"post_process\",\n                report_func=chat_cache.report.post,\n            )()\n            if return_message is not None:\n                chat_cache.report.hint_cache()\n                cache_whole_data = answers_dict.get(str(return_message))\n                if session and cache_whole_data:\n                    chat_cache.data_manager.add_session(\n                        cache_whole_data[2], session.name, pre_embedding_data\n                    )\n                if cache_whole_data and not chat_cache.config.disable_report:\n                    # user_question / cache_question / cache_question_id / cache_answer / similarity / consume time/ time\n                    report_cache_data = cache_whole_data[3]\n                    report_search_data = cache_whole_data[2]\n                    chat_cache.data_manager.report_cache(\n                        pre_store_data if isinstance(pre_store_data, str) else \"\",\n                        report_cache_data.question\n                        if isinstance(report_cache_data.question, str)\n                        else \"\",\n                        report_search_data[1],\n                        report_cache_data.answers[0].answer\n                        if isinstance(report_cache_data.answers[0].answer, str)\n                        else \"\",\n                        cache_whole_data[0],\n                        round(time.time() - start_time, 6),\n                    )\n                return cache_data_convert(return_message)\n\n    next_cache = chat_cache.next_cache\n    if next_cache:\n        kwargs[\"cache_obj\"] = next_cache\n        kwargs[\"cache_context\"] = context\n        kwargs[\"cache_skip\"] = cache_skip\n        kwargs[\"cache_factor\"] = cache_factor\n        kwargs[\"search_only\"] = search_only_flag\n        llm_data = adapt(\n            llm_handler, cache_data_convert, update_cache_callback, *args, **kwargs\n        )\n    else:\n        if search_only_flag:\n            # cache miss\n            return None\n        llm_data = time_cal(\n            llm_handler, func_name=\"llm_request\", report_func=chat_cache.report.llm\n        )(*args, **kwargs)\n\n    if not llm_data:\n        return None\n\n    if cache_enable:\n        try:\n\n            def update_cache_func(handled_llm_data, question=None):\n                if question is None:\n                    question = pre_store_data\n                else:\n                    question.content = pre_store_data\n                time_cal(\n                    chat_cache.data_manager.save,\n                    func_name=\"save\",\n                    report_func=chat_cache.report.save,\n                )(\n                    question,\n                    handled_llm_data,\n                    embedding_data,\n                    extra_param=context.get(\"save_func\", None),\n                    session=session,\n                )\n                if (\n                    chat_cache.report.op_save.count > 0\n                    and chat_cache.report.op_save.count % chat_cache.config.auto_flush\n                    == 0\n                ):\n                    chat_cache.flush()\n\n            llm_data = update_cache_callback(\n                llm_data, update_cache_func, *args, **kwargs\n            )\n        except Exception as e:  # pylint: disable=W0703\n            gptcache_log.warning(\"failed to save the data to cache, error: %s\", e)\n    return llm_data\n\n\nasync def aadapt(\n    llm_handler, cache_data_convert, update_cache_callback, *args, **kwargs\n):\n    \"\"\"Simple copy of the 'adapt' method to different llm for 'async llm function'\n\n    :param llm_handler: Async LLM calling method, when the cache misses, this function will be called\n    :param cache_data_convert: When the cache hits, convert the answer in the cache to the format of the result returned by llm\n    :param update_cache_callback: If the cache misses, after getting the result returned by llm, save the result to the cache\n    :param args: llm args\n    :param kwargs: llm kwargs\n    :return: llm result\n    \"\"\"\n    start_time = time.time()\n    user_temperature = \"temperature\" in kwargs\n    user_top_k = \"top_k\" in kwargs\n    temperature = kwargs.pop(\"temperature\", 0.0)\n    chat_cache = kwargs.pop(\"cache_obj\", cache)\n    session = kwargs.pop(\"session\", None)\n    require_object_store = kwargs.pop(\"require_object_store\", False)\n    if require_object_store:\n        assert chat_cache.data_manager.o, \"Object store is required for adapter.\"\n    if not chat_cache.has_init:\n        raise NotInitError()\n    cache_enable = chat_cache.cache_enable_func(*args, **kwargs)\n    context = kwargs.pop(\"cache_context\", {})\n    embedding_data = None\n    # you want to retry to send the request to chatgpt when the cache is negative\n\n    if 0 < temperature < 2:\n        cache_skip_options = [True, False]\n        prob_cache_skip = [0, 1]\n        cache_skip = kwargs.pop(\n            \"cache_skip\",\n            temperature_softmax(\n                messages=cache_skip_options,\n                scores=prob_cache_skip,\n                temperature=temperature,\n            ),\n        )\n    elif temperature >= 2:\n        cache_skip = kwargs.pop(\"cache_skip\", True)\n    else:  # temperature <= 0\n        cache_skip = kwargs.pop(\"cache_skip\", False)\n    cache_factor = kwargs.pop(\"cache_factor\", 1.0)\n    pre_embedding_res = time_cal(\n        chat_cache.pre_embedding_func,\n        func_name=\"pre_process\",\n        report_func=chat_cache.report.pre,\n    )(\n        kwargs,\n        extra_param=context.get(\"pre_embedding_func\", None),\n        prompts=chat_cache.config.prompts,\n        cache_config=chat_cache.config,\n    )\n    if isinstance(pre_embedding_res, tuple):\n        pre_store_data = pre_embedding_res[0]\n        pre_embedding_data = pre_embedding_res[1]\n    else:\n        pre_store_data = pre_embedding_res\n        pre_embedding_data = pre_embedding_res\n\n    if chat_cache.config.input_summary_len is not None:\n        pre_embedding_data = _summarize_input(\n            pre_embedding_data, chat_cache.config.input_summary_len\n        )\n\n    if cache_enable:\n        embedding_data = time_cal(\n            chat_cache.embedding_func,\n            func_name=\"embedding\",\n            report_func=chat_cache.report.embedding,\n        )(pre_embedding_data, extra_param=context.get(\"embedding_func\", None))\n    if cache_enable and not cache_skip:\n        search_data_list = time_cal(\n            chat_cache.data_manager.search,\n            func_name=\"search\",\n            report_func=chat_cache.report.search,\n        )(\n            embedding_data,\n            extra_param=context.get(\"search_func\", None),\n            top_k=kwargs.pop(\"top_k\", 5)\n            if (user_temperature and not user_top_k)\n            else kwargs.pop(\"top_k\", -1),\n        )\n        if search_data_list is None:\n            search_data_list = []\n        cache_answers = []\n        similarity_threshold = chat_cache.config.similarity_threshold\n        min_rank, max_rank = chat_cache.similarity_evaluation.range()\n        rank_threshold = (max_rank - min_rank) * similarity_threshold * cache_factor\n        rank_threshold = (\n            max_rank\n            if rank_threshold > max_rank\n            else min_rank\n            if rank_threshold < min_rank\n            else rank_threshold\n        )\n        for search_data in search_data_list:\n            cache_data = time_cal(\n                chat_cache.data_manager.get_scalar_data,\n                func_name=\"get_data\",\n                report_func=chat_cache.report.data,\n            )(\n                search_data,\n                extra_param=context.get(\"get_scalar_data\", None),\n                session=session,\n            )\n            if cache_data is None:\n                continue\n\n            if \"deps\" in context and hasattr(cache_data.question, \"deps\"):\n                eval_query_data = {\n                    \"question\": context[\"deps\"][0][\"data\"],\n                    \"embedding\": None,\n                }\n                eval_cache_data = {\n                    \"question\": cache_data.question.deps[0].data,\n                    \"answer\": cache_data.answers[0].answer,\n                    \"search_result\": search_data,\n                    \"cache_data\": cache_data,\n                    \"embedding\": None,\n                }\n            else:\n                eval_query_data = {\n                    \"question\": pre_store_data,\n                    \"embedding\": embedding_data,\n                }\n\n                eval_cache_data = {\n                    \"question\": cache_data.question,\n                    \"answer\": cache_data.answers[0].answer,\n                    \"search_result\": search_data,\n                    \"cache_data\": cache_data,\n                    \"embedding\": cache_data.embedding_data,\n                }\n            rank = time_cal(\n                chat_cache.similarity_evaluation.evaluation,\n                func_name=\"evaluation\",\n                report_func=chat_cache.report.evaluation,\n            )(\n                eval_query_data,\n                eval_cache_data,\n                extra_param=context.get(\"evaluation_func\", None),\n            )\n            gptcache_log.debug(\n                \"similarity: [user question] %s, [cache question] %s, [value] %f\",\n                pre_store_data,\n                cache_data.question,\n                rank,\n            )\n            if rank_threshold <= rank:\n                cache_answers.append(\n                    (float(rank), cache_data.answers[0].answer, search_data, cache_data)\n                )\n                chat_cache.data_manager.hit_cache_callback(search_data)\n        cache_answers = sorted(cache_answers, key=lambda x: x[0], reverse=True)\n        answers_dict = dict((d[1], d) for d in cache_answers)\n        if len(cache_answers) != 0:\n            def post_process():\n                if chat_cache.post_process_messages_func is temperature_softmax:\n                    return_message = chat_cache.post_process_messages_func(\n                        messages=[t[1] for t in cache_answers],\n                        scores=[t[0] for t in cache_answers],\n                        temperature=temperature,\n                    )\n                elif chat_cache.post_process_messages_func is LlmVerifier:\n                    return_message = chat_cache.post_process_messages_func(\n                        messages=[t[1] for t in cache_answers],\n                        scores=[t[0] for t in cache_answers],\n                        original_question=pre_embedding_data,\n                        temperature=temperature,\n                    )\n                else:\n                    return_message = chat_cache.post_process_messages_func(\n                        [t[1] for t in cache_answers]\n                    )\n                return return_message\n\n            return_message = time_cal(\n                post_process,\n                func_name=\"post_process\",\n                report_func=chat_cache.report.post,\n            )()\n            if return_message is not None:\n                chat_cache.report.hint_cache()\n                cache_whole_data = answers_dict.get(str(return_message))\n                if session and cache_whole_data:\n                    chat_cache.data_manager.add_session(\n                        cache_whole_data[2], session.name, pre_embedding_data\n                    )\n                if cache_whole_data:\n                    # user_question / cache_question / cache_question_id / cache_answer / similarity / consume time/ time\n                    report_cache_data = cache_whole_data[3]\n                    report_search_data = cache_whole_data[2]\n                    chat_cache.data_manager.report_cache(\n                        pre_store_data if isinstance(pre_store_data, str) else \"\",\n                        report_cache_data.question\n                        if isinstance(report_cache_data.question, str)\n                        else \"\",\n                        report_search_data[1],\n                        report_cache_data.answers[0].answer\n                        if isinstance(report_cache_data.answers[0].answer, str)\n                        else \"\",\n                        cache_whole_data[0],\n                        round(time.time() - start_time, 6),\n                    )\n                return cache_data_convert(return_message)\n\n    next_cache = chat_cache.next_cache\n    if next_cache:\n        kwargs[\"cache_obj\"] = next_cache\n        kwargs[\"cache_context\"] = context\n        kwargs[\"cache_skip\"] = cache_skip\n        kwargs[\"cache_factor\"] = cache_factor\n        kwargs[\"search_only\"] = search_only_flag\n        llm_data = adapt(\n            llm_handler, cache_data_convert, update_cache_callback, *args, **kwargs\n        )\n    else:\n        llm_data = await llm_handler(*args, **kwargs)\n\n    if cache_enable:\n        try:\n\n            def update_cache_func(handled_llm_data, question=None):\n                if question is None:\n                    question = pre_store_data\n                else:\n                    question.content = pre_store_data\n                time_cal(\n                    chat_cache.data_manager.save,\n                    func_name=\"save\",\n                    report_func=chat_cache.report.save,\n                )(\n                    question,\n                    handled_llm_data,\n                    embedding_data,\n                    extra_param=context.get(\"save_func\", None),\n                    session=session,\n                )\n                if (\n                    chat_cache.report.op_save.count > 0\n                    and chat_cache.report.op_save.count % chat_cache.config.auto_flush\n                    == 0\n                ):\n                    chat_cache.flush()\n            llm_data = update_cache_callback(\n                llm_data, update_cache_func, *args, **kwargs\n            )\n        except Exception:  # pylint: disable=W0703\n            gptcache_log.error(\"failed to save the data to cache\", exc_info=True)\n    return llm_data\n\n\n_input_summarizer = None\n\n\ndef _summarize_input(text, text_length):\n    if len(text) <= text_length:\n        return text\n\n    # pylint: disable=import-outside-toplevel\n    from gptcache.processor.context.summarization_context import (\n        SummarizationContextProcess,\n    )\n\n    global _input_summarizer\n    if _input_summarizer is None:\n        _input_summarizer = SummarizationContextProcess()\n    summarization = _input_summarizer.summarize_to_sentence([text], text_length)\n    return summarization\n\n\ndef cache_health_check(vectordb, cache_dict):\n    \"\"\"This function checks if the embedding\n    from vector store matches one in cache store.\n    If cache store and vector store are out of\n    sync with each other, cache retrieval can\n    be incorrect.\n    If this happens, force the similary score\n    to the lowerest possible value.\n    \"\"\"\n    emb_in_cache = cache_dict[\"embedding\"]\n    _, data_id = cache_dict[\"search_result\"]\n    emb_in_vec = vectordb.get_embeddings(data_id)\n    flag = np.all(emb_in_cache == emb_in_vec)\n    if not flag:\n        gptcache_log.critical(\"Cache Store and Vector Store are out of sync!!!\")\n        # 0: identical, inf: different\n        cache_dict[\"search_result\"] = (\n            np.inf,\n            data_id,\n        )\n        # self-healing by replacing entry\n        # in the vec store with the one\n        # from cache store by the same\n        # entry_id.\n        vectordb.update_embeddings(\n            data_id,\n            emb=cache_dict[\"embedding\"],\n        )\n    return flag\n"
  },
  {
    "path": "gptcache/adapter/api.py",
    "content": "# pylint: disable=wrong-import-position\nfrom typing import Any, Optional, Callable\n\nimport gptcache.processor.post\nimport gptcache.processor.pre\nfrom gptcache import Cache, cache, Config\nfrom gptcache.adapter.adapter import adapt\nfrom gptcache.embedding import (\n    Onnx,\n    Huggingface,\n    SBERT,\n    FastText,\n    Data2VecAudio,\n    Timm,\n    ViT,\n    OpenAI,\n    Cohere,\n    Rwkv,\n    PaddleNLP,\n    UForm,\n)\nfrom gptcache.embedding.base import BaseEmbedding\nfrom gptcache.manager import manager_factory\nfrom gptcache.manager.data_manager import DataManager\nfrom gptcache.processor.context import (\n    SummarizationContextProcess,\n    SelectiveContextProcess,\n    ConcatContextProcess,\n)\nfrom gptcache.processor.post import temperature_softmax\nfrom gptcache.processor.pre import get_prompt\nfrom gptcache.similarity_evaluation import (\n    SearchDistanceEvaluation,\n    NumpyNormEvaluation,\n    OnnxModelEvaluation,\n    ExactMatchEvaluation,\n    KReciprocalEvaluation,\n    SimilarityEvaluation,\n    CohereRerankEvaluation,\n    SequenceMatchEvaluation,\n    TimeEvaluation,\n    SbertCrossencoderEvaluation\n)\nfrom gptcache.utils import import_ruamel\n\n\ndef _cache_data_converter(cache_data):\n    \"\"\"For cache results, do nothing\"\"\"\n    return cache_data\n\n\ndef _update_cache_callback_none(\n    llm_data, update_cache_func, *args, **kwargs  # pylint: disable=W0613\n) -> None:\n    \"\"\"When updating cached data, do nothing, because currently only cached queries are processed\"\"\"\n    return None\n\n\ndef _llm_handle_none(*llm_args, **llm_kwargs) -> None:  # pylint: disable=W0613\n    \"\"\"Do nothing on a cache miss\"\"\"\n    return None\n\n\ndef _update_cache_callback(\n    llm_data, update_cache_func, *args, **kwargs\n):  # pylint: disable=W0613\n    \"\"\"Save the `llm_data` to cache storage\"\"\"\n    update_cache_func(llm_data)\n\n\ndef put(prompt: str, data: Any, **kwargs) -> None:\n    \"\"\"put api, put qa pair information to GPTCache\n    Please make sure that the `pre_embedding_func` param is `get_prompt` when initializing the cache\n\n    :param prompt: the cache data key, usually question text\n    :type prompt: str\n    :param data: the cache data value, usually answer text\n    :type data: Any\n    :param kwargs: list of user-defined parameters\n    :type kwargs: Dict\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.adapter.api import put\n            from gptcache.processor.pre import get_prompt\n\n            cache.init(pre_embedding_func=get_prompt)\n            put(\"hello\", \"foo\")\n    \"\"\"\n\n    def llm_handle(*llm_args, **llm_kwargs):  # pylint: disable=W0613\n        return data\n\n    adapt(\n        llm_handle,\n        _cache_data_converter,\n        _update_cache_callback,\n        cache_skip=True,\n        prompt=prompt,\n        **kwargs,\n    )\n\n\ndef get(prompt: str, **kwargs) -> Any:\n    \"\"\"get api, get the cache data according to the `prompt`\n    Please make sure that the `pre_embedding_func` param is `get_prompt` when initializing the cache\n\n    :param prompt: the cache data key, usually question text\n    :type prompt: str\n    :param kwargs: list of user-defined parameters\n    :type kwargs: Dict\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.adapter.api import put, get\n            from gptcache.processor.pre import get_prompt\n\n            cache.init(pre_embedding_func=get_prompt)\n            put(\"hello\", \"foo\")\n            print(get(\"hello\"))\n    \"\"\"\n    res = adapt(\n        _llm_handle_none,\n        _cache_data_converter,\n        _update_cache_callback_none,\n        prompt=prompt,\n        **kwargs,\n    )\n    return res\n\n\ndef init_similar_cache(\n    data_dir: str = \"api_cache\",\n    cache_obj: Optional[Cache] = None,\n    pre_func: Callable = get_prompt,\n    embedding: Optional[BaseEmbedding] = None,\n    data_manager: Optional[DataManager] = None,\n    evaluation: Optional[SimilarityEvaluation] = None,\n    post_func: Callable = temperature_softmax,\n    config: Config = Config(),\n):\n    \"\"\"Provide a quick way to initialize cache for api service\n\n    :param data_dir: cache data storage directory\n    :type data_dir: str\n    :param cache_obj: specify to initialize the Cache object, if not specified, initialize the global object\n    :type cache_obj: Optional[Cache]\n    :param pre_func: pre-processing of the cache input text\n    :type pre_func: Callable\n    :param embedding: embedding object\n    :type embedding: BaseEmbedding\n    :param data_manager: data manager object\n    :type data_manager: DataManager\n    :param evaluation: similarity evaluation object\n    :type evaluation: SimilarityEvaluation\n    :param post_func: post-processing of the cached result list, the most similar result is taken by default\n    :type post_func: Callable[[List[Any]], Any]\n    :param config: cache configuration, the core is similar threshold\n    :type config: Config\n    :return: None\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.adapter.api import put, get, init_similar_cache\n\n            init_similar_cache()\n            put(\"hello\", \"foo\")\n            print(get(\"hello\"))\n    \"\"\"\n    if not embedding:\n        embedding = Onnx()\n    if not data_manager:\n        data_manager = manager_factory(\n            \"sqlite,faiss\",\n            data_dir=data_dir,\n            vector_params={\"dimension\": embedding.dimension},\n        )\n    if not evaluation:\n        evaluation = SearchDistanceEvaluation()\n    cache_obj = cache_obj if cache_obj else cache\n    cache_obj.init(\n        pre_embedding_func=pre_func,\n        embedding_func=embedding.to_embeddings,\n        data_manager=data_manager,\n        similarity_evaluation=evaluation,\n        post_process_messages_func=post_func,\n        config=config,\n    )\n\n\ndef init_similar_cache_from_config(config_dir: str, cache_obj: Optional[Cache] = None):\n    import_ruamel()\n    from ruamel.yaml import YAML  # pylint: disable=C0415\n\n    if config_dir:\n        with open(config_dir, \"r\", encoding=\"utf-8\") as f:\n            yaml = YAML(typ=\"unsafe\", pure=True)\n            init_conf = yaml.load(f)\n    else:\n        init_conf = {}\n\n    # Due to the problem with the first naming, it is reserved to ensure compatibility\n    embedding = init_conf.get(\"model_source\", \"\")\n    if not embedding:\n        embedding = init_conf.get(\"embedding\", \"onnx\")\n    # ditto\n    embedding_config = init_conf.get(\"model_config\", {})\n    if not embedding_config:\n        embedding_config = init_conf.get(\"embedding_config\", {})\n    embedding_model = _get_model(embedding, embedding_config)\n\n    storage_config = init_conf.get(\"storage_config\", {})\n    storage_config.setdefault(\"manager\", \"sqlite,faiss\")\n    storage_config.setdefault(\"data_dir\", \"gptcache_data\")\n    storage_config.setdefault(\"vector_params\", {})\n    storage_config[\"vector_params\"] = storage_config[\"vector_params\"] or {}\n    storage_config[\"vector_params\"][\"dimension\"] = embedding_model.dimension\n    data_manager = manager_factory(**storage_config)\n\n    eval_strategy = init_conf.get(\"evaluation\", \"distance\")\n    # Due to the problem with the first naming, it is reserved to ensure compatibility\n    eval_config = init_conf.get(\"evaluation_kws\", {})\n    if not eval_config:\n        eval_config = init_conf.get(\"evaluation_config\", {})\n    evaluation = _get_eval(eval_strategy, eval_config)\n\n    cache_obj = cache_obj if cache_obj else cache\n\n    pre_process = init_conf.get(\"pre_context_function\")\n    if pre_process:\n        pre_func = _get_pre_context_function(\n            pre_process, init_conf.get(\"pre_context_config\")\n        )\n        pre_func = pre_func.pre_process\n    else:\n        pre_process = init_conf.get(\"pre_function\", \"get_prompt\")\n        pre_func = _get_pre_func(pre_process)\n\n    post_process = init_conf.get(\"post_function\", \"first\")\n    post_func = _get_post_func(post_process)\n\n    config_kws = init_conf.get(\"config\", {}) or {}\n    config = Config(**config_kws)\n\n    cache_obj.init(\n        pre_embedding_func=pre_func,\n        embedding_func=embedding_model.to_embeddings,\n        data_manager=data_manager,\n        similarity_evaluation=evaluation,\n        post_process_messages_func=post_func,\n        config=config,\n    )\n\n    return init_conf\n\n\ndef _get_model(model_src, model_config=None):\n    model_src = model_src.lower()\n    model_config = model_config or {}\n\n    if model_src == \"onnx\":\n        return Onnx(**model_config)\n    if model_src == \"huggingface\":\n        return Huggingface(**model_config)\n    if model_src == \"sbert\":\n        return SBERT(**model_config)\n    if model_src == \"fasttext\":\n        return FastText(**model_config)\n    if model_src == \"data2vecaudio\":\n        return Data2VecAudio(**model_config)\n    if model_src == \"timm\":\n        return Timm(**model_config)\n    if model_src == \"vit\":\n        return ViT(**model_config)\n    if model_src == \"openai\":\n        return OpenAI(**model_config)\n    if model_src == \"cohere\":\n        return Cohere(**model_config)\n    if model_src == \"rwkv\":\n        return Rwkv(**model_config)\n    if model_src == \"paddlenlp\":\n        return PaddleNLP(**model_config)\n    if model_src == \"uform\":\n        return UForm(**model_config)\n\n\ndef _get_eval(strategy, kws=None):\n    strategy = strategy.lower()\n    kws = kws or {}\n\n    if \"distance\" in strategy:\n        return SearchDistanceEvaluation(**kws)\n    if \"np\" in strategy:\n        return NumpyNormEvaluation(**kws)\n    if \"exact\" in strategy:\n        return ExactMatchEvaluation()\n    if \"onnx\" in strategy:\n        return OnnxModelEvaluation(**kws)\n    if \"kreciprocal\" in strategy:\n        return KReciprocalEvaluation(**kws)\n    if \"cohere\" in strategy:\n        return CohereRerankEvaluation(**kws)\n    if \"sequence_match\" in strategy:\n        return SequenceMatchEvaluation(**kws)\n    if \"time\" in strategy:\n        return TimeEvaluation(**kws)\n    if \"sbert_crossencoder\" in strategy:\n        return SbertCrossencoderEvaluation(**kws)\n\n\ndef _get_pre_func(pre_process):\n    return getattr(gptcache.processor.pre, pre_process)\n\n\ndef _get_pre_context_function(pre_context_process, kws=None):\n    pre_context_process = pre_context_process.lower()\n    kws = kws or {}\n    if pre_context_process in \"summarization\":\n        return SummarizationContextProcess(**kws)\n    if pre_context_process in \"selective\":\n        return SelectiveContextProcess(**kws)\n    if pre_context_process in \"concat\":\n        return ConcatContextProcess()\n\n\ndef _get_post_func(post_process):\n    return getattr(gptcache.processor.post, post_process)\n"
  },
  {
    "path": "gptcache/adapter/base.py",
    "content": "from abc import ABCMeta\nfrom typing import Any, Dict, Callable, Optional\n\n\nclass BaseCacheLLM(metaclass=ABCMeta):\n    \"\"\"Base LLM, When you have enhanced llm without using the original llm api,\n    you can use this class as a proxy to use the ability of the cache.\n\n    NOTE: Please make sure that the custom llm returns the same value as the original llm.\n\n    For example, if you use the openai proxy, you perform delay statistics before sending the openai request,\n    and then you package this part of the function, so you may have a separate package, which is different from openai.\n    If the api request parameters and return results you wrap are the same as the original ones,\n    then you can use this class to obtain cache-related capabilities.\n\n    Example:\n        .. code-block:: python\n\n            import time\n\n            import openai\n\n            from gptcache import Cache\n            from gptcache.adapter import openai as cache_openai\n\n\n            def proxy_openai_chat_complete(*args, **kwargs):\n                start_time = time.time()\n                res = openai.ChatCompletion.create(*args, **kwargs)\n                print(\"Consume Time Spent =\", round((time.time() - start_time), 2))\n                return res\n\n\n            llm_cache = Cache()\n\n            cache_openai.ChatCompletion.llm = proxy_openai_chat_complete\n            cache_openai.ChatCompletion.cache_args = {\"cache_obj\": llm_cache}\n\n            cache_openai.ChatCompletion.create(\n                model=\"gpt-3.5-turbo\",\n                messages=[\n                    {\n                        \"role\": \"user\",\n                        \"content\": \"What's GitHub?\",\n                    }\n                ],\n            )\n    \"\"\"\n\n    llm: Optional[Callable] = None\n    \"\"\"\n    On a cache miss, if that variable is set, it will be called;\n    if not, it will call the original llm.\n    \"\"\"\n\n    cache_args: Dict[str, Any] = {}\n    \"\"\"\n    It can be used to set some cache-related public parameters.\n    If you don't want to set the same parameters every time when using cache, say cache_obj, you can use it.\n    \"\"\"\n\n    @classmethod\n    def fill_base_args(cls, **kwargs):\n        \"\"\" Fill the base args to the cache args\n        \"\"\"\n        for key, value in cls.cache_args.items():\n            if key not in kwargs:\n                kwargs[key] = value\n\n        return kwargs\n"
  },
  {
    "path": "gptcache/adapter/diffusers.py",
    "content": "import base64\nfrom io import BytesIO\n\nfrom gptcache.adapter.adapter import adapt\nfrom gptcache.manager.scalar_data.base import Answer, DataType\nfrom gptcache.utils import (\n    import_pillow, import_diffusers, import_huggingface\n)\nfrom gptcache.utils.error import CacheError\n\nimport_pillow()\nimport_huggingface()\nimport_diffusers()\n\nfrom PIL import Image  # pylint: disable=C0413\nimport diffusers  # pylint: disable=C0413\n\n\nclass StableDiffusionPipeline(diffusers.StableDiffusionPipeline):\n    \"\"\"Diffuser StableDiffusionPipeline Wrapper\n\n    Example:\n        .. code-block:: python\n\n            import torch\n\n            from gptcache import cache\n            from gptcache.processor.pre import get_prompt\n            from gptcache.adapter.diffusers import StableDiffusionPipeline\n\n            # init gptcache\n            cache.init(pre_embedding_func=get_prompt)\n\n            # run with gptcache\n            model_id = \"stabilityai/stable-diffusion-2-1\"\n            pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)\n            pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)\n            pipe = pipe.to(\"cuda\")\n\n            prompt = \"a photo of an astronaut riding a horse on mars\"\n            image = pipe(prompt=prompt).images[0]\n    \"\"\"\n\n    def _llm_handler(self, *llm_args, **llm_kwargs):\n        try:\n            return super().__call__(*llm_args, **llm_kwargs)\n        except Exception as e:\n            raise CacheError(\"diffuser error\") from e\n\n    def __call__(self, *args, **kwargs):\n        def cache_data_convert(cache_data):\n            return _construct_resp_from_cache(cache_data)\n\n        def update_cache_callback(llm_data, update_cache_func, *args, **kwargs):  # pylint: disable=unused-argument\n            img = llm_data[\"images\"][0]\n            buffered = BytesIO()\n            img.save(buffered, format=\"PNG\")\n            img_b64 = base64.b64encode(buffered.getvalue())\n            update_cache_func(Answer(img_b64, DataType.IMAGE_BASE64))\n            return llm_data\n\n        return adapt(\n            self._llm_handler, cache_data_convert, update_cache_callback, *args, **kwargs\n        )\n\n\ndef _construct_resp_from_cache(img_64):\n    im_bytes = base64.b64decode(img_64)   # im_bytes is a binary image\n    im_file = BytesIO(im_bytes)  # convert image to file-like object\n    img = Image.open(im_file)\n    return diffusers.pipelines.stable_diffusion.StableDiffusionPipelineOutput(images=[img], nsfw_content_detected=None)\n\n"
  },
  {
    "path": "gptcache/adapter/dolly.py",
    "content": "from typing import Any\n\nfrom gptcache.adapter.adapter import adapt\nfrom gptcache.manager.scalar_data.base import Answer, DataType\nfrom gptcache.utils import import_huggingface, import_torch\n\nimport_torch()\nimport_huggingface()\n\nfrom transformers import pipeline  # pylint: disable=wrong-import-position\n\n\nclass Dolly:\n    \"\"\"Wrapper for Dolly (https://github.com/databrickslabs/dolly.git).\n\n    Example using from_model:\n        .. code-block:: python\n\n            from gptcache import cache\n            from gptcache.processor.pre import get_inputs\n            cache.init(pre_embedding_func=get_inputs)\n\n            from gptcache.adapter.dolly import Dolly\n            dolly = Dolly.from_model(\n                model=\"databricks/dolly-v2-12b\", torch_dtype=torch.bfloat16, trust_remote_code=True, device=0\n            )\n\n    Example passing pipeline in directly:\n        .. code-block:: python\n\n            import torch\n            from transformers import pipeline\n            from gptcache import cache\n            from gptcache.processor.pre import get_inputs\n            cache.init(pre_embedding_func=get_inputs)\n            from gptcache.adapter.dolly import Dolly\n\n            pipe = pipeline(\n                model=\"databricks/dolly-v2-12b\", torch_dtype=torch.bfloat16, trust_remote_code=True, device=0\n            )\n            dolly = Dolly(pipe)\n    \"\"\"\n\n    def __init__(self, dolly_pipeline: Any):\n        self._dolly_pipeline = dolly_pipeline\n\n    @classmethod\n    def from_model(cls, model: str, **kwargs):\n        pipe = pipeline(model=model, **kwargs)\n        return cls(pipe)\n\n    def __call__(self, prompt: str, **kwargs):\n        return adapt(\n            self._dolly_pipeline,\n            _cache_data_convert,\n            _update_cache_callback,\n            inputs=prompt,\n            **kwargs\n        )\n\n\ndef _cache_data_convert(cache_data):\n    return [{\"generated_text\": cache_data, \"gptcache\": True}]\n\n\ndef _update_cache_callback(llm_data, update_cache_func, *args, **kwargs):  # pylint: disable=unused-argument\n    update_cache_func(Answer(llm_data[0][\"generated_text\"], DataType.STR))\n    return llm_data\n"
  },
  {
    "path": "gptcache/adapter/langchain_models.py",
    "content": "from typing import Optional, List, Any, Mapping\n\nfrom gptcache.adapter.adapter import adapt, aadapt\nfrom gptcache.core import cache\nfrom gptcache.manager.scalar_data.base import Answer, DataType\nfrom gptcache.session import Session\nfrom gptcache.utils import import_langchain\n\nimport_langchain()\n\n# pylint: disable=C0413\nfrom langchain.llms.base import LLM\nfrom langchain.chat_models.base import BaseChatModel\nfrom langchain.schema import (\n    BaseMessage,\n    LLMResult,\n    AIMessage,\n    ChatGeneration,\n    ChatResult,\n)\nfrom langchain.callbacks.manager import (\n    Callbacks,\n    CallbackManagerForLLMRun, AsyncCallbackManagerForLLMRun,\n)\n\n\n# pylint: disable=protected-access\nclass LangChainLLMs(LLM):\n    \"\"\"LangChain LLM Wrapper.\n\n    :param llm: LLM from langchain.llms.\n    :type llm: Any\n\n    Example:\n        .. code-block:: python\n\n            from gptcache import cache\n            from gptcache.processor.pre import get_prompt\n            # init gptcache\n            cache.init(pre_embedding_func=get_prompt)\n            cache.set_openai_key()\n\n            from langchain.llms import OpenAI\n            from gptcache.adapter.langchain_models import LangChainLLMs\n            # run llm with gptcache\n            llm = LangChainLLMs(llm=OpenAI(temperature=0))\n            llm(\"Hello world\")\n    \"\"\"\n\n    llm: Any\n    session: Session = None\n    tmp_args: Any = None\n\n    @property\n    def _llm_type(self) -> str:\n        return self.llm._llm_type\n\n    @property\n    def _identifying_params(self) -> Mapping[str, Any]:\n        return self.llm._identifying_params\n\n    def __str__(self) -> str:\n        return str(self.llm)\n\n    def _call(\n        self,\n        prompt: str,\n        stop: Optional[List[str]] = None,\n        _: Optional[CallbackManagerForLLMRun] = None,\n    ) -> str:\n        session = (\n            self.session\n            if \"session\" not in self.tmp_args\n            else self.tmp_args.pop(\"session\")\n        )\n        cache_obj = self.tmp_args.pop(\"cache_obj\", cache)\n        return adapt(\n            self.llm,\n            _cache_data_convert,\n            _update_cache_callback,\n            prompt=prompt,\n            stop=stop,\n            cache_obj=cache_obj,\n            session=session,\n            **self.tmp_args,\n        )\n\n    async def _acall(self, prompt: str, stop: Optional[List[str]] = None,\n                     run_manager: Optional[AsyncCallbackManagerForLLMRun] = None) -> str:\n        return await super()._acall(prompt, stop=stop, run_manager=run_manager)\n\n    def generate(\n        self,\n        prompts: List[str],\n        stop: Optional[List[str]] = None,\n        callbacks: Callbacks = None,\n        **kwargs,\n    ) -> LLMResult:\n        self.tmp_args = kwargs\n        return super().generate(prompts, stop=stop, callbacks=callbacks)\n\n    async def agenerate(\n        self,\n        prompts: List[str],\n        stop: Optional[List[str]] = None,\n        callbacks: Callbacks = None,\n        **kwargs,\n    ) -> LLMResult:\n        self.tmp_args = kwargs\n        return await super().agenerate(prompts, stop=stop, callbacks=callbacks)\n\n    def __call__(\n        self,\n        prompt: str,\n        stop: Optional[List[str]] = None,\n        callbacks: Callbacks = None,\n        **kwargs,\n    ) -> str:\n        \"\"\"Check Cache and run the LLM on the given prompt and input.\"\"\"\n        return (\n            self.generate([prompt], stop=stop, callbacks=callbacks, **kwargs)\n            .generations[0][0]\n            .text\n        )\n\n\n# pylint: disable=protected-access\nclass LangChainChat(BaseChatModel):\n    \"\"\"LangChain LLM Wrapper.\n\n    :param chat: LLM from langchain.chat_models.\n    :type chat: Any\n\n    Example:\n        .. code-block:: python\n\n            from gptcache import cache\n            from gptcache.processor.pre import get_messages_last_content\n            # init gptcache\n            cache.init(pre_embedding_func=get_messages_last_content)\n            cache.set_openai_key()\n            from langchain.chat_models import ChatOpenAI\n            from gptcache.adapter.langchain_models import LangChainChat\n            # run chat model with gptcache\n            chat = LangChainChat(chat=ChatOpenAI(temperature=0))\n            chat([HumanMessage(content=\"Translate this sentence from English to French. I love programming.\")])\n    \"\"\"\n\n    @property\n    def _llm_type(self) -> str:\n        return \"gptcache_llm_chat\"\n\n    chat: Any\n    session: Optional[Session] = None\n    tmp_args: Optional[Any] = None\n\n    def _generate(\n        self,\n        messages: Any,\n        stop: Optional[List[str]] = None,\n        run_manager: Optional[CallbackManagerForLLMRun] = None,\n    ) -> ChatResult:\n        session = (\n            self.session\n            if \"session\" not in self.tmp_args\n            else self.tmp_args.pop(\"session\")\n        )\n        cache_obj = self.tmp_args.pop(\"cache_obj\", cache)\n        return adapt(\n            self.chat._generate,\n            _cache_msg_data_convert,\n            _update_cache_msg_callback,\n            messages=messages,\n            stop=stop,\n            cache_obj=cache_obj,\n            session=session,\n            run_manager=run_manager,\n            **self.tmp_args,\n        )\n\n    async def _agenerate(\n        self,\n        messages: List[List[BaseMessage]],\n        stop: Optional[List[str]] = None,\n        run_manager: Optional[CallbackManagerForLLMRun] = None,\n    ) -> ChatResult:\n        session = (\n            self.session\n            if \"session\" not in self.tmp_args\n            else self.tmp_args.pop(\"session\")\n        )\n        cache_obj = self.tmp_args.pop(\"cache_obj\", cache)\n        return await aadapt(\n            self.chat._agenerate,\n            _cache_msg_data_convert,\n            _update_cache_msg_callback,\n            messages=messages,\n            stop=stop,\n            cache_obj=cache_obj,\n            session=session,\n            run_manager=run_manager,\n            **self.tmp_args,\n        )\n\n    def generate(\n        self,\n        messages: List[List[BaseMessage]],\n        stop: Optional[List[str]] = None,\n        callbacks: Callbacks = None,\n        **kwargs,\n    ) -> LLMResult:\n        self.tmp_args = kwargs\n        return super().generate(messages, stop=stop, callbacks=callbacks)\n\n    async def agenerate(\n        self,\n        messages: List[List[BaseMessage]],\n        stop: Optional[List[str]] = None,\n        callbacks: Callbacks = None,\n        **kwargs,\n    ) -> LLMResult:\n        self.tmp_args = kwargs\n        return await super().agenerate(messages, stop=stop, callbacks=callbacks)\n\n    @property\n    def _identifying_params(self):\n        return self.chat._identifying_params\n\n    def _combine_llm_outputs(self, llm_outputs: List[Optional[dict]]) -> dict:\n        return self.chat._combine_llm_outputs(llm_outputs)\n\n    def get_num_tokens(self, text: str) -> int:\n        return self.chat.get_num_tokens(text)\n\n    def get_num_tokens_from_messages(self, messages: List[BaseMessage]) -> int:\n        return self.chat.get_num_tokens_from_messages(messages)\n\n    def __call__(self, messages: Any, stop: Optional[List[str]] = None, **kwargs):\n        generation = self.generate([messages], stop=stop, **kwargs).generations[0][0]\n        if isinstance(generation, ChatGeneration):\n            return generation.message\n        else:\n            raise ValueError(\"Unexpected generation type\")\n\n\ndef _cache_data_convert(cache_data):\n    return cache_data\n\n\ndef _update_cache_callback(\n    llm_data, update_cache_func, *args, **kwargs\n):  # pylint: disable=unused-argument\n    update_cache_func(Answer(llm_data, DataType.STR))\n    return llm_data\n\n\ndef _cache_msg_data_convert(cache_data):\n    llm_res = ChatResult(\n        generations=[\n            ChatGeneration(\n                text=\"\",\n                generation_info=None,\n                message=AIMessage(content=cache_data, additional_kwargs={}),\n            )\n        ],\n        llm_output=None,\n    )\n    return llm_res\n\n\ndef _update_cache_msg_callback(\n    llm_data, update_cache_func, *args, **kwargs\n):  # pylint: disable=unused-argument\n    update_cache_func(llm_data.generations[0].text)\n    return llm_data\n"
  },
  {
    "path": "gptcache/adapter/llama_cpp.py",
    "content": "import time\nfrom typing import Iterator\n\nfrom gptcache.adapter.adapter import adapt\nfrom gptcache.manager.scalar_data.base import DataType, Answer\nfrom gptcache.utils import import_llama_cpp_python\n\nimport_llama_cpp_python()\n\nimport llama_cpp # pylint: disable=wrong-import-position\n\n\nclass Llama(llama_cpp.Llama):\n    \"\"\"llama.cpp wrapper\n\n        You should have the llama-cpp-python library installed.\n        https://github.com/abetlen/llama-cpp-python\n\n    Example:\n        .. code-block:: python\n\n            onnx = Onnx()\n            m = manager_factory('sqlite,faiss,local', data_dir=root, vector_params={\"dimension\": onnx.dimension})\n            llm_cache = Cache()\n            llm_cache.init(\n                pre_embedding_func=get_prompt,\n                data_manager=m,\n                embedding_func=onnx.to_embeddings\n            )\n            llm = Llama('./models/7B/ggml-model.bin')\n            answer = llm(prompt=question, cache_obj=llm_cache)\n    \"\"\"\n    def __call__(\n            self,\n            prompt: str,\n            **kwargs\n    ):\n\n        def update_cache_callback(llm_data, update_cache_func, *args, **kwargs):  # pylint: disable=unused-argument\n            if not isinstance(llm_data, Iterator):\n                update_cache_func(Answer(llm_data[\"choices\"][0][\"text\"], DataType.STR))\n                return llm_data\n            else:\n                def stream_answer(it):\n                    total_answer = \"\"\n                    for item in it:\n                        total_answer += item[\"choices\"][0][\"text\"]\n                        yield item\n                    update_cache_func(Answer(total_answer, DataType.STR))\n\n                return stream_answer(llm_data)\n\n        def cache_data_convert(cache_data):\n            if kwargs.get(\"stream\", False):\n                return _construct_stream_resp_from_cache(cache_data)\n            return _construct_resp_from_cache(cache_data)\n\n        return adapt(\n            self.create_completion,\n            cache_data_convert,\n            update_cache_callback,\n            prompt=prompt,\n            **kwargs\n        )\n\n\ndef _construct_resp_from_cache(return_message):\n    return {\n        \"gptcache\": True,\n        \"choices\": [\n            {\n                \"text\": return_message,\n                \"finish_reason\": \"stop\",\n                \"index\": 0,\n            }\n        ],\n        \"created\": int(time.time()),\n        \"usage\": {\"completion_tokens\": 0, \"prompt_tokens\": 0, \"total_tokens\": 0},\n        \"object\": \"chat.completion\",\n    }\n\n\ndef _construct_stream_resp_from_cache(return_message):\n    return [\n        {\n            \"gptcache\": True,\n            \"choices\": [\n                {\n                    \"text\": return_message,\n                    \"finish_reason\": None,\n                    \"index\": 0,\n                }\n            ],\n            \"created\": int(time.time()),\n            \"usage\": {\"completion_tokens\": 0, \"prompt_tokens\": 0, \"total_tokens\": 0},\n            \"object\": \"chat.completion\",\n        }\n    ]\n"
  },
  {
    "path": "gptcache/adapter/minigpt4.py",
    "content": "from argparse import Namespace\n\nfrom minigpt4.common.config import Config\nfrom minigpt4.common.registry import registry\nfrom minigpt4.conversation.conversation import Chat, CONV_VISION\n# pylint: disable=wildcard-import\n# imports modules for registration\nfrom minigpt4.datasets.builders import *\nfrom minigpt4.models import *\nfrom minigpt4.processors import *\nfrom minigpt4.runners import *\nfrom minigpt4.tasks import *\n\nfrom gptcache.adapter.adapter import adapt\nfrom gptcache.manager.scalar_data.base import DataType, Question, Answer\nfrom gptcache.utils.error import CacheError\n\n\nclass MiniGPT4:  # pragma: no cover\n    \"\"\"MiniGPT4 Wrapper\n\n    Example:\n        .. code-block:: python\n\n            from gptcache import cache\n            from gptcache.processor.pre import get_image_question\n            from gptcache.adapter.minigpt4 import MiniGPT4\n\n            # init gptcache\n            cache.init(pre_embedding_func=get_image_question)\n\n            # run with gptcache\n            pipe = MiniGPT4.from_pretrained(cfg_path='eval_configs/minigpt4_eval.yaml', gpu_id=3, options=None)\n            question = \"Which city is this photo taken?\"\n            image = \"./merlion.png\"\n            answer = pipe(image, question)\n    \"\"\"\n    def __init__(self, chat, return_hit):\n        self.chat = chat\n        self.return_hit = return_hit\n\n    @classmethod\n    def from_pretrained(cls, cfg_path, gpu_id=0, options=None,  return_hit=False):\n        args = Namespace(cfg_path=cfg_path, gpu_id=gpu_id, options=options)\n        cfg = Config(args)\n        model_config = cfg.model_cfg\n        model_config.device_8bit = args.gpu_id\n        model_cls = registry.get_model_class(model_config.arch)\n        model = model_cls.from_config(model_config).to(\"cuda:{}\".format(args.gpu_id))\n\n        vis_processor_cfg = cfg.datasets_cfg.cc_sbu_align.vis_processor.train\n        vis_processor = registry.get_processor_class(vis_processor_cfg.name).from_config(vis_processor_cfg)\n        chat = Chat(model, vis_processor, device=\"cuda:{}\".format(args.gpu_id))\n        return cls(chat, return_hit)\n\n    def _llm_handler(self, image, question):\n        chat_state = CONV_VISION.copy()\n        img_list = []\n        try:\n            self.chat.upload_img(image, chat_state, img_list)\n            self.chat.ask(question, chat_state)\n            answer = self.chat.answer(conv=chat_state, img_list=img_list)[0]\n            return answer if not self.return_hit else answer, False\n        except Exception as e:\n            raise CacheError(\"minigpt4 error\") from e\n\n    def __call__(self, image, question, *args, **kwargs):\n        cache_context = {\"deps\": [\n            {\"name\": \"text\", \"data\": question, \"dep_type\": DataType.STR},\n            {\"name\": \"image\", \"data\": image, \"dep_type\": DataType.STR},\n        ]}\n\n        def cache_data_convert(cache_data):\n            return cache_data if not self.return_hit else cache_data, True\n\n        def update_cache_callback(llm_data, update_cache_func, *args, **kwargs):  # pylint: disable=unused-argument\n            question_data = Question.from_dict({\n                \"content\": \"pre_embedding_data\",\n                \"deps\": [\n                    {\"name\": \"text\", \"data\": kwargs[\"question\"], \"dep_type\": DataType.STR},\n                    {\"name\": \"image\", \"data\": kwargs[\"image\"], \"dep_type\": DataType.STR},\n                ]\n            })\n            llm_data_cache = llm_data if not self.return_hit else llm_data[0]\n            update_cache_func(Answer(llm_data_cache, DataType.STR), question=question_data)\n            return llm_data\n\n        return adapt(\n            self._llm_handler, cache_data_convert, update_cache_callback, image=image, question=question, cache_context=cache_context, *args, **kwargs\n        )\n"
  },
  {
    "path": "gptcache/adapter/openai.py",
    "content": "import base64\nimport json\nimport os\nimport time\nfrom io import BytesIO\nfrom typing import Any, AsyncGenerator, Iterator, List\n\nfrom gptcache import cache\nfrom gptcache.adapter.adapter import aadapt, adapt\nfrom gptcache.adapter.base import BaseCacheLLM\nfrom gptcache.manager.scalar_data.base import Answer, DataType\nfrom gptcache.utils import import_openai, import_pillow\nfrom gptcache.utils.error import wrap_error\nfrom gptcache.utils.response import (\n    get_audio_text_from_openai_answer,\n    get_image_from_openai_b64,\n    get_image_from_openai_url,\n    get_message_from_openai_answer,\n    get_stream_message_from_openai_answer,\n    get_text_from_openai_answer,\n)\nfrom gptcache.utils.token import token_counter\n\nimport_openai()\n\n# pylint: disable=C0413\n# pylint: disable=E1102\nimport openai\n\n\nclass ChatCompletion(openai.ChatCompletion, BaseCacheLLM):\n    \"\"\"Openai ChatCompletion Wrapper\n\n    Example:\n        .. code-block:: python\n\n            from gptcache import cache\n            from gptcache.processor.pre import get_prompt\n            # init gptcache\n            cache.init()\n            cache.set_openai_key()\n\n            from gptcache.adapter import openai\n            # run ChatCompletion model with gptcache\n            response = openai.ChatCompletion.create(\n                          model='gpt-3.5-turbo',\n                          messages=[\n                            {\n                                'role': 'user',\n                                'content': \"what's github\"\n                            }],\n                        )\n            response_content = response['choices'][0]['message']['content']\n    \"\"\"\n\n    @classmethod\n    def _llm_handler(cls, *llm_args, **llm_kwargs):\n        try:\n            return (\n                super().create(*llm_args, **llm_kwargs)\n                if cls.llm is None\n                else cls.llm(*llm_args, **llm_kwargs)\n            )\n        except openai.OpenAIError as e:\n            raise wrap_error(e) from e\n\n    @classmethod\n    async def _allm_handler(cls, *llm_args, **llm_kwargs):\n        try:\n            return (\n                (await super().acreate(*llm_args, **llm_kwargs))\n                if cls.llm is None\n                else await cls.llm(*llm_args, **llm_kwargs)\n            )\n        except openai.OpenAIError as e:\n            raise wrap_error(e) from e\n\n    @staticmethod\n    def _update_cache_callback(\n        llm_data, update_cache_func, *args, **kwargs\n    ):  # pylint: disable=unused-argument\n        if isinstance(llm_data, AsyncGenerator):\n\n            async def hook_openai_data(it):\n                total_answer = \"\"\n                async for item in it:\n                    total_answer += get_stream_message_from_openai_answer(item)\n                    yield item\n                update_cache_func(Answer(total_answer, DataType.STR))\n\n            return hook_openai_data(llm_data)\n        elif not isinstance(llm_data, Iterator):\n            update_cache_func(\n                Answer(get_message_from_openai_answer(llm_data), DataType.STR)\n            )\n            return llm_data\n        else:\n\n            def hook_openai_data(it):\n                total_answer = \"\"\n                for item in it:\n                    total_answer += get_stream_message_from_openai_answer(item)\n                    yield item\n                update_cache_func(Answer(total_answer, DataType.STR))\n\n            return hook_openai_data(llm_data)\n\n    @classmethod\n    def create(cls, *args, **kwargs):\n        chat_cache = kwargs.get(\"cache_obj\", cache)\n        enable_token_counter = chat_cache.config.enable_token_counter\n\n        def cache_data_convert(cache_data):\n            if enable_token_counter:\n                input_token = _num_tokens_from_messages(kwargs.get(\"messages\"))\n                output_token = token_counter(cache_data)\n                saved_token = [input_token, output_token]\n            else:\n                saved_token = [0, 0]\n            if kwargs.get(\"stream\", False):\n                return _construct_stream_resp_from_cache(cache_data, saved_token)\n            return _construct_resp_from_cache(cache_data, saved_token)\n\n        kwargs = cls.fill_base_args(**kwargs)\n        return adapt(\n            cls._llm_handler,\n            cache_data_convert,\n            cls._update_cache_callback,\n            *args,\n            **kwargs,\n        )\n\n    @classmethod\n    async def acreate(cls, *args, **kwargs):\n        chat_cache = kwargs.get(\"cache_obj\", cache)\n        enable_token_counter = chat_cache.config.enable_token_counter\n\n        def cache_data_convert(cache_data):\n            if enable_token_counter:\n                input_token = _num_tokens_from_messages(kwargs.get(\"messages\"))\n                output_token = token_counter(cache_data)\n                saved_token = [input_token, output_token]\n            else:\n                saved_token = [0, 0]\n            if kwargs.get(\"stream\", False):\n                return async_iter(\n                    _construct_stream_resp_from_cache(cache_data, saved_token)\n                )\n            return _construct_resp_from_cache(cache_data, saved_token)\n\n        kwargs = cls.fill_base_args(**kwargs)\n        return await aadapt(\n            cls._allm_handler,\n            cache_data_convert,\n            cls._update_cache_callback,\n            *args,\n            **kwargs,\n        )\n\n\nasync def async_iter(input_list):\n    for item in input_list:\n        yield item\n\n\nclass Completion(openai.Completion, BaseCacheLLM):\n    \"\"\"Openai Completion Wrapper\n\n    Example:\n        .. code-block:: python\n\n            from gptcache import cache\n            from gptcache.processor.pre import get_prompt\n            # init gptcache\n            cache.init()\n            cache.set_openai_key()\n\n            from gptcache.adapter import openai\n            # run Completion model with gptcache\n            response = openai.Completion.create(model=\"text-davinci-003\",\n                                                prompt=\"Hello world.\")\n            response_text = response[\"choices\"][0][\"text\"]\n    \"\"\"\n\n    @classmethod\n    def _llm_handler(cls, *llm_args, **llm_kwargs):\n        try:\n            return (\n                super().create(*llm_args, **llm_kwargs)\n                if not cls.llm\n                else cls.llm(*llm_args, **llm_kwargs)\n            )\n        except openai.OpenAIError as e:\n            raise wrap_error(e) from e\n\n    @classmethod\n    async def _allm_handler(cls, *llm_args, **llm_kwargs):\n        try:\n            return (\n                (await super().acreate(*llm_args, **llm_kwargs))\n                if cls.llm is None\n                else await cls.llm(*llm_args, **llm_kwargs)\n            )\n        except openai.OpenAIError as e:\n            raise wrap_error(e) from e\n\n    @staticmethod\n    def _cache_data_convert(cache_data):\n        return _construct_text_from_cache(cache_data)\n\n    @staticmethod\n    def _update_cache_callback(\n        llm_data, update_cache_func, *args, **kwargs\n    ):  # pylint: disable=unused-argument\n        update_cache_func(Answer(get_text_from_openai_answer(llm_data), DataType.STR))\n        return llm_data\n\n    @classmethod\n    def create(cls, *args, **kwargs):\n        kwargs = cls.fill_base_args(**kwargs)\n        return adapt(\n            cls._llm_handler,\n            cls._cache_data_convert,\n            cls._update_cache_callback,\n            *args,\n            **kwargs,\n        )\n\n    @classmethod\n    async def acreate(cls, *args, **kwargs):\n        kwargs = cls.fill_base_args(**kwargs)\n        return await aadapt(\n            cls._allm_handler,\n            cls._cache_data_convert,\n            cls._update_cache_callback,\n            *args,\n            **kwargs,\n        )\n\n\nclass Audio(openai.Audio):\n    \"\"\"Openai Audio Wrapper\n\n    Example:\n        .. code-block:: python\n\n            from gptcache import cache\n            from gptcache.processor.pre import get_file_bytes\n            # init gptcache\n            cache.init(pre_embedding_func=get_file_bytes)\n            cache.set_openai_key()\n\n            from gptcache.adapter import openai\n            # run audio transcribe model with gptcache\n            audio_file= open(\"/path/to/audio.mp3\", \"rb\")\n            transcript = openai.Audio.transcribe(\"whisper-1\", audio_file)\n\n            # run audio transcribe model with gptcache\n            audio_file= open(\"/path/to/audio.mp3\", \"rb\")\n            transcript = openai.Audio.translate(\"whisper-1\", audio_file)\n    \"\"\"\n\n    @classmethod\n    def transcribe(cls, model: str, file: Any, *args, **kwargs):\n        def llm_handler(*llm_args, **llm_kwargs):\n            try:\n                return super(Audio, cls).transcribe(*llm_args, **llm_kwargs)\n            except openai.OpenAIError as e:\n                raise wrap_error(e) from e\n\n        def cache_data_convert(cache_data):\n            return _construct_audio_text_from_cache(cache_data)\n\n        def update_cache_callback(\n            llm_data, update_cache_func, *args, **kwargs\n        ):  # pylint: disable=unused-argument\n            update_cache_func(\n                Answer(get_audio_text_from_openai_answer(llm_data), DataType.STR)\n            )\n            return llm_data\n\n        return adapt(\n            llm_handler,\n            cache_data_convert,\n            update_cache_callback,\n            model=model,\n            file=file,\n            *args,\n            **kwargs,\n        )\n\n    @classmethod\n    def translate(cls, model: str, file: Any, *args, **kwargs):\n        def llm_handler(*llm_args, **llm_kwargs):\n            try:\n                return super(Audio, cls).translate(*llm_args, **llm_kwargs)\n            except openai.OpenAIError as e:\n                raise wrap_error(e) from e\n\n        def cache_data_convert(cache_data):\n            return _construct_audio_text_from_cache(cache_data)\n\n        def update_cache_callback(\n            llm_data, update_cache_func, *args, **kwargs\n        ):  # pylint: disable=unused-argument\n            update_cache_func(\n                Answer(get_audio_text_from_openai_answer(llm_data), DataType.STR)\n            )\n            return llm_data\n\n        return adapt(\n            llm_handler,\n            cache_data_convert,\n            update_cache_callback,\n            model=model,\n            file=file,\n            *args,\n            **kwargs,\n        )\n\n\nclass Image(openai.Image):\n    \"\"\"Openai Image Wrapper\n\n    Example:\n        .. code-block:: python\n\n            from gptcache import cache\n            from gptcache.processor.pre import get_prompt\n            # init gptcache\n            cache.init(pre_embedding_func=get_prompt)\n            cache.set_openai_key()\n\n            from gptcache.adapter import openai\n            # run image generation model with gptcache\n            response = openai.Image.create(\n              prompt=\"a white siamese cat\",\n              n=1,\n              size=\"256x256\"\n            )\n            response_url = response['data'][0]['url']\n    \"\"\"\n\n    @classmethod\n    def _llm_handler(cls, *llm_args, **llm_kwargs):\n        try:\n            return super().create(*llm_args, **llm_kwargs)\n        except openai.OpenAIError as e:\n            raise wrap_error(e) from e\n\n    @classmethod\n    def create(cls, *args, **kwargs):\n        response_format = kwargs.pop(\"response_format\", \"url\")\n        size = kwargs.pop(\"size\", \"256x256\")\n\n        def cache_data_convert(cache_data):\n            return _construct_image_create_resp_from_cache(\n                image_data=cache_data, response_format=response_format, size=size\n            )\n\n        def update_cache_callback(\n            llm_data, update_cache_func, *args, **kwargs\n        ):  # pylint: disable=unused-argument\n            if response_format == \"b64_json\":\n                img_b64 = get_image_from_openai_b64(llm_data)\n                if isinstance(img_b64, str):\n                    img_b64 = img_b64.encode(\"ascii\")\n                update_cache_func(Answer(img_b64, DataType.IMAGE_BASE64))\n            elif response_format == \"url\":\n                update_cache_func(\n                    Answer(get_image_from_openai_url(llm_data), DataType.IMAGE_URL)\n                )\n            return llm_data\n\n        return adapt(\n            cls._llm_handler,\n            cache_data_convert,\n            update_cache_callback,\n            response_format=response_format,\n            size=size,\n            *args,\n            **kwargs,\n        )\n\n\nclass Moderation(openai.Moderation, BaseCacheLLM):\n    \"\"\"Openai Moderation Wrapper\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.adapter import openai\n            from gptcache.adapter.api import init_similar_cache\n            from gptcache.processor.pre import get_openai_moderation_input\n\n            init_similar_cache(pre_func=get_openai_moderation_input)\n            openai.Moderation.create(\n                input=\"I want to kill them.\",\n            )\n    \"\"\"\n\n    @classmethod\n    def _llm_handler(cls, *llm_args, **llm_kwargs):\n        try:\n            return (\n                super().create(*llm_args, **llm_kwargs)\n                if not cls.llm\n                else cls.llm(*llm_args, **llm_kwargs)\n            )\n        except openai.OpenAIError as e:\n            raise wrap_error(e) from e\n\n    @classmethod\n    def _cache_data_convert(cls, cache_data):\n        return json.loads(cache_data)\n\n    @classmethod\n    def _update_cache_callback(\n        cls, llm_data, update_cache_func, *args, **kwargs\n    ):  # pylint: disable=unused-argument\n        update_cache_func(Answer(json.dumps(llm_data, indent=4), DataType.STR))\n        return llm_data\n\n    @classmethod\n    def create(cls, *args, **kwargs):\n        kwargs = cls.fill_base_args(**kwargs)\n        res = adapt(\n            cls._llm_handler,\n            cls._cache_data_convert,\n            cls._update_cache_callback,\n            *args,\n            **kwargs,\n        )\n\n        input_request_param = kwargs.get(\"input\")\n        expect_res_len = 1\n        if isinstance(input_request_param, List):\n            expect_res_len = len(input_request_param)\n        if len(res.get(\"results\")) != expect_res_len:\n            kwargs[\"cache_skip\"] = True\n            res = adapt(\n                cls._llm_handler,\n                cls._cache_data_convert,\n                cls._update_cache_callback,\n                *args,\n                **kwargs,\n            )\n        return res\n\n\ndef _construct_resp_from_cache(return_message, saved_token):\n    return {\n        \"gptcache\": True,\n        \"saved_token\": saved_token,\n        \"choices\": [\n            {\n                \"message\": {\"role\": \"assistant\", \"content\": return_message},\n                \"finish_reason\": \"stop\",\n                \"index\": 0,\n            }\n        ],\n        \"created\": int(time.time()),\n        \"usage\": {\"completion_tokens\": 0, \"prompt_tokens\": 0, \"total_tokens\": 0},\n        \"object\": \"chat.completion\",\n    }\n\n\ndef _construct_stream_resp_from_cache(return_message, saved_token):\n    created = int(time.time())\n    return [\n        {\n            \"choices\": [\n                {\"delta\": {\"role\": \"assistant\"}, \"finish_reason\": None, \"index\": 0}\n            ],\n            \"created\": created,\n            \"object\": \"chat.completion.chunk\",\n        },\n        {\n            \"choices\": [\n                {\n                    \"delta\": {\"content\": return_message},\n                    \"finish_reason\": None,\n                    \"index\": 0,\n                }\n            ],\n            \"created\": created,\n            \"object\": \"chat.completion.chunk\",\n        },\n        {\n            \"gptcache\": True,\n            \"choices\": [{\"delta\": {}, \"finish_reason\": \"stop\", \"index\": 0}],\n            \"created\": created,\n            \"object\": \"chat.completion.chunk\",\n            \"saved_token\": saved_token,\n        },\n    ]\n\n\ndef _construct_text_from_cache(return_text):\n    return {\n        \"gptcache\": True,\n        \"choices\": [\n            {\n                \"text\": return_text,\n                \"finish_reason\": \"stop\",\n                \"index\": 0,\n            }\n        ],\n        \"created\": int(time.time()),\n        \"usage\": {\"completion_tokens\": 0, \"prompt_tokens\": 0, \"total_tokens\": 0},\n        \"object\": \"text_completion\",\n    }\n\n\ndef _construct_image_create_resp_from_cache(image_data, response_format, size):\n    import_pillow()\n    from PIL import Image as PILImage  # pylint: disable=C0415\n\n    img_bytes = base64.b64decode((image_data))\n    img_file = BytesIO(img_bytes)  # convert image to file-like object\n    img = PILImage.open(img_file)\n    new_size = tuple(int(a) for a in size.split(\"x\"))\n    if new_size != img.size:\n        img = img.resize(new_size)\n        buffered = BytesIO()\n        img.save(buffered, format=\"JPEG\")\n    else:\n        buffered = img_file\n\n    if response_format == \"url\":\n        target_url = os.path.abspath(str(int(time.time())) + \".jpeg\")\n        with open(target_url, \"wb\") as f:\n            f.write(buffered.getvalue())\n        image_data = target_url\n    elif response_format == \"b64_json\":\n        image_data = base64.b64encode(buffered.getvalue()).decode(\"ascii\")\n    else:\n        raise AttributeError(\n            f\"Invalid response_format: {response_format} is not one of ['url', 'b64_json']\"\n        )\n\n    return {\n        \"gptcache\": True,\n        \"created\": int(time.time()),\n        \"data\": [{response_format: image_data}],\n    }\n\n\ndef _construct_audio_text_from_cache(return_text):\n    return {\n        \"gptcache\": True,\n        \"text\": return_text,\n    }\n\n\ndef _num_tokens_from_messages(messages):\n    \"\"\"Returns the number of tokens used by a list of messages.\"\"\"\n    tokens_per_message = 3\n    tokens_per_name = 1\n\n    num_tokens = 0\n    for message in messages:\n        num_tokens += tokens_per_message\n        for key, value in message.items():\n            num_tokens += token_counter(value)\n            if key == \"name\":\n                num_tokens += tokens_per_name\n    num_tokens += 3  # every reply is primed with <|start|>assistant<|message|>\n    return num_tokens\n"
  },
  {
    "path": "gptcache/adapter/replicate.py",
    "content": "from gptcache.utils.error import CacheError\nfrom gptcache.adapter.adapter import adapt\nfrom gptcache.utils import import_replicate\nfrom gptcache.manager.scalar_data.base import DataType, Question, Answer\n\nimport_replicate()\n\nimport replicate  # pylint: disable=C0413\n\n\nclass Client(replicate.client.Client):\n    \"\"\"replicate.client.Client Wrapper\n\n    Example:\n        .. code-block:: python\n\n            from gptcache import cache\n            from gptcache.adapter import replicate\n            from gptcache.processor.pre import get_input_str\n            from gptcache.embedding import Timm\n            from gptcache.similarity_evaluation.onnx import OnnxModelEvaluation\n\n            # init gptcache\n            timm = Timm('resnet18')\n            cache_base = CacheBase('sqlite')\n            vector_base = VectorBase('faiss', dimension=timm.dimension)\n            object_base = ObjectBase('local', path='./objects')\n            data_manager = get_data_manager(cache_base, vector_base, object_base)\n\n            cache.init(\n                pre_embedding_func=get_input_image_file_name,\n                data_manager=data_manager,\n                embedding_func=timm.to_embeddings,\n                similarity_evaluation=OnnxModelEvaluation()\n                )\n\n            # run replicate clinet with gptcache\n            output = replicate.run(\n                        \"andreasjansson/blip-2:4b32258c42e9efd4288bb9910bc532a69727f9acd26aa08e175713a0a857a608\",\n                        input={\"image\": open(\"/path/to/merlion.png\", \"rb\"),\n                               \"question\": \"Which city is this photo taken on?\"}\n                    )\n    \"\"\"\n    def run(self, model_version: str, **kwargs):\n        if \"input\" in kwargs and \"question\" in kwargs[\"input\"] and \"image\" in kwargs[\"input\"]:\n            cache_context = {\"deps\": [\n                {\"name\": \"text\", \"data\": kwargs[\"input\"][\"question\"], \"dep_type\": DataType.STR},\n                {\"name\": \"image\", \"data\": kwargs[\"input\"][\"image\"].name, \"dep_type\": DataType.STR},\n                ]}\n        else:\n            cache_context = {}\n        def llm_handler(*llm_args, **llm_kwargs):\n            try:\n                return replicate.run(*llm_args, **llm_kwargs)\n            except Exception as e:\n                raise CacheError(\"replicate error\") from e\n\n        def cache_data_convert(cache_data):\n            return cache_data\n\n        def update_cache_callback(llm_data, update_cache_func, *args, **kwargs):  # pylint: disable=unused-argument\n            if \"input\" in kwargs and \"question\" in kwargs[\"input\"] and \"image\" in kwargs[\"input\"]:\n                question = Question.from_dict({\n                    \"content\": \"pre_embedding_data\",\n                    \"deps\": [\n                        {\"name\": \"text\", \"data\": kwargs[\"input\"][\"question\"], \"dep_type\": DataType.STR},\n                        {\"name\": \"image\", \"data\": kwargs[\"input\"][\"image\"].name, \"dep_type\": DataType.STR},\n                    ]\n                })\n                update_cache_func(Answer(llm_data, DataType.STR), question=question)\n            else:\n                update_cache_func(llm_data)\n            return llm_data\n\n\n        return adapt(\n            llm_handler, cache_data_convert, update_cache_callback,\n            model_version=model_version,\n            cache_context=cache_context,\n            require_object_store=False,\n            **kwargs\n        )\n\n\ndefault_client = Client()\nrun = default_client.run\n"
  },
  {
    "path": "gptcache/adapter/stability_sdk.py",
    "content": "import base64\nimport warnings\nfrom dataclasses import dataclass\nfrom io import BytesIO\nfrom typing import List\n\nfrom gptcache.adapter.adapter import adapt\nfrom gptcache.manager.scalar_data.base import Answer, DataType\nfrom gptcache.utils import (\n    import_stability, import_pillow\n)\nfrom gptcache.utils.error import CacheError\n\nimport_pillow()\nimport_stability()\n\nfrom PIL import Image as PILImage  # pylint: disable=C0413\nfrom stability_sdk import client  # pylint: disable=C0413\nimport stability_sdk.interfaces.gooseai.generation.generation_pb2 as generation  # pylint: disable=C0413\n\n\nclass StabilityInference(client.StabilityInference):\n    \"\"\"client.StabilityInference Wrapper\n\n    Example:\n        .. code-block:: python\n\n            import os\n            import io\n            from PIL import Image\n\n            from gptcache import cache\n            from gptcache.processor.pre import get_prompt\n            from gptcache.adapter.stability_sdk import StabilityInference, generation\n\n            # init gptcache\n            cache.init(pre_embedding_func=get_prompt)\n\n            # run with gptcache\n            os.environ['STABILITY_KEY'] = 'key-goes-here'\n\n            stability_api = StabilityInference(\n                key=os.environ['STABILITY_KEY'], # API Key reference.\n                verbose=False, # Print debug messages.\n                engine=\"stable-diffusion-xl-beta-v2-2-2\", # Set the engine to use for generation.\n            )\n\n            answers = stability_api.generate(\n                prompt=\"a cat sitting besides a dog\",\n                width=256,\n                height=256\n                )\n\n            for resp in answers:\n                for artifact in resp.artifacts:\n                    if artifact.type == generation.ARTIFACT_IMAGE:\n                        img = Image.open(io.BytesIO(artifact.binary))\n                        img.save('path/to/save/image.png')\n    \"\"\"\n\n    def _llm_handler(self, *llm_args, **llm_kwargs):\n        try:\n            return super().generate(*llm_args, **llm_kwargs)\n        except Exception as e:\n            raise CacheError(\"stability error\") from e\n\n    def generate(self, *args, **kwargs):\n        width = kwargs.get(\"width\", 512)\n        height = kwargs.get(\"height\", 512)\n\n        def cache_data_convert(cache_data):\n            return _construct_resp_from_cache(cache_data, width=width, height=height)\n\n        def update_cache_callback(llm_data, update_cache_func, *args, **kwargs):  # pylint: disable=unused-argument\n            def hook_stream_data(it):\n                to_save = []\n                for resp in it:\n                    for artifact in resp.artifacts:\n                        try:\n                            if artifact.finish_reason == generation.FILTER:\n                                warnings.warn(\n                                    \"Your request activated the API's safety filters and could not be processed.\"\n                                    \"Please modify the prompt and try again.\")\n                                continue\n                        except AttributeError:\n                            pass\n                        if artifact.type == generation.ARTIFACT_IMAGE:\n                            img_b64 = base64.b64encode(artifact.binary)\n                            to_save.append(img_b64)\n                    yield resp\n                update_cache_func(Answer(to_save[0], DataType.IMAGE_BASE64))\n\n            return hook_stream_data(llm_data)\n\n        return adapt(\n            self._llm_handler, cache_data_convert, update_cache_callback, *args, **kwargs\n        )\n\n\ndef _construct_resp_from_cache(img_64, height, width):\n    img_bytes = base64.b64decode((img_64))\n    img_file = BytesIO(img_bytes)\n    img = PILImage.open(img_file)\n    new_size = (width, height)\n    if new_size != img.size:\n        img = img.resize(new_size)\n        buffered = BytesIO()\n        img.save(buffered, format=\"PNG\")\n        img_bytes = buffered.getvalue()\n    yield MockAnswer(artifacts=[MockArtifact(type=generation.ARTIFACT_IMAGE, binary=img_bytes)])\n\n\n@dataclass\nclass MockArtifact:\n    type: int\n    binary: bytes\n\n\n@dataclass\nclass MockAnswer:\n    artifacts: List[MockArtifact]\n\n\n"
  },
  {
    "path": "gptcache/client.py",
    "content": "import asyncio\nimport json\n\nfrom gptcache.utils import import_httpx\n\nimport_httpx()\n\nimport httpx  # pylint: disable=C0413\n\n\n_CLIENT_HEADER = {\"Content-Type\": \"application/json\", \"Accept\": \"application/json\"}\n\n\nclass Client:\n    \"\"\"GPTCache client to send requests to GPTCache server.\n\n    :param uri: the uri leads to the server, defaults to \"http://localhost:8000\".\n    :type uri: str\n\n    Example:\n        .. code-block:: python\n\n            from gptcache import client\n\n            client = Client(uri=\"http://localhost:8000\")\n            client.put(\"Hi\", \"Hi back\")\n            ans = client.get(\"Hi\")\n    \"\"\"\n\n    def __init__(self, uri: str = \"http://localhost:8000\"):\n        self._uri = uri\n\n    async def _put(self, question: str, answer: str):\n        async with httpx.AsyncClient() as client:\n            data = {\n                \"prompt\": question,\n                \"answer\": answer,\n            }\n\n            response = await client.post(\n                f\"{self._uri}/put\", headers=_CLIENT_HEADER, data=json.dumps(data)\n            )\n\n        return response.status_code\n\n    async def _get(self, question: str):\n        async with httpx.AsyncClient() as client:\n            data = {\n                \"prompt\": question,\n            }\n\n            response = await client.post(\n                f\"{self._uri}/get\", headers=_CLIENT_HEADER, data=json.dumps(data)\n            )\n\n        return response.json().get(\"answer\")\n\n    def put(self, question: str, answer: str):\n        \"\"\"\n        :param question: the question to be put.\n        :type question: str\n        :param answer: the answer to the question to be put.\n        :type answer: str\n        :return: status code.\n        \"\"\"\n        return asyncio.run(self._put(question, answer))\n\n    def get(self, question: str):\n        \"\"\"\n        :param question: the question to get an answer.\n        :type question: str\n        :return: answer to the question.\n        \"\"\"\n        return asyncio.run(self._get(question))\n"
  },
  {
    "path": "gptcache/config.py",
    "content": "from typing import Optional, Callable, List\n\nfrom gptcache.utils.error import CacheError\n\n\nclass Config:\n    \"\"\"Pass configuration.\n\n    :param log_time_func: optional, customized log time function\n    :type log_time_func: Optional[Callable[[str, float], None]]\n    :param similarity_threshold: a threshold ranged from 0 to 1 to filter search results with similarity score higher \\\n     than the threshold. When it is 0, there is no hits. When it is 1, all search results will be returned as hits.\n    :type similarity_threshold: float\n    :param prompts: optional, if the request content will remove the prompt string when the request contains the prompt list\n    :type prompts: Optional[List[str]]\n    :param template: optional, if the request content will remove the template string and only keep the parameter value in the template\n    :type template: Optional[str]\n    :param auto_flush: it will be automatically flushed every time xx pieces of data are added, default to 20\n    :type auto_flush: int\n    :param enable_token_counter: enable token counter, default to False\n    :type enable_token_counter: bool\n    :param input_summary_len: optional, summarize input to specified length.\n    :type input_summary_len: Optional[int]\n    :param skip_list: for sequence preprocessing, skip those sentences in skip_list.\n    :type skip_list: Optional[List[str]]\n    :param context_len: optional, the length of context.\n    :type context_len: Optional[int]\n\n    Example:\n        .. code-block:: python\n\n            from gptcache import Config\n\n            configs = Config(similarity_threshold=0.6)\n    \"\"\"\n\n    def __init__(\n            self,\n            log_time_func: Optional[Callable[[str, float], None]] = None,\n            similarity_threshold: float = 0.8,\n            prompts: Optional[List[str]] = None,\n            template: Optional[str] = None,\n            auto_flush: int = 20,\n            enable_token_counter: bool = True,\n            input_summary_len: Optional[int] = None,\n            context_len: Optional[int] = None,\n            skip_list: List[str] = None,\n            data_check: bool = False,\n            disable_report: bool = False,\n    ):\n        if similarity_threshold < 0 or similarity_threshold > 1:\n            raise CacheError(\n                \"Invalid the similarity threshold param, reasonable range: 0-1\"\n            )\n        self.log_time_func = log_time_func\n        self.similarity_threshold = similarity_threshold\n        self.prompts = prompts\n        self.template = template\n        self.auto_flush = auto_flush\n        self.enable_token_counter = enable_token_counter\n        self.input_summary_len = input_summary_len\n        self.context_len = context_len\n        if skip_list is None:\n            skip_list = [\"system\", \"assistant\"]\n        self.skip_list = skip_list\n        self.data_check = data_check\n        self.disable_report = disable_report\n"
  },
  {
    "path": "gptcache/core.py",
    "content": "import atexit\nimport os\nfrom typing import Optional, List, Any\n\nfrom gptcache.config import Config\nfrom gptcache.embedding.string import to_embeddings as string_embedding\nfrom gptcache.manager import get_data_manager\nfrom gptcache.manager.data_manager import DataManager\nfrom gptcache.processor.post import temperature_softmax\nfrom gptcache.processor.pre import last_content\nfrom gptcache.report import Report\nfrom gptcache.similarity_evaluation import ExactMatchEvaluation\nfrom gptcache.similarity_evaluation import SimilarityEvaluation\nfrom gptcache.utils import import_openai\nfrom gptcache.utils.cache_func import cache_all\nfrom gptcache.utils.log import gptcache_log\n\n\nclass Cache:\n    \"\"\"GPTCache core object.\n\n\n    Example:\n        .. code-block:: python\n\n            from gptcache import cache\n            from gptcache.adapter import openai\n\n            cache.init()\n            cache.set_openai_key()\n    \"\"\"\n\n    # it should be called when start the cache system\n    def __init__(self):\n        self.has_init = False\n        self.cache_enable_func = None\n        self.pre_embedding_func = None\n        self.embedding_func = None\n        self.data_manager: Optional[DataManager] = None\n        self.similarity_evaluation: Optional[SimilarityEvaluation] = None\n        self.post_process_messages_func = None\n        self.config = Config()\n        self.report = Report()\n        self.next_cache = None\n\n    def init(\n        self,\n        cache_enable_func=cache_all,\n        pre_embedding_func=last_content,\n        pre_func=None,\n        embedding_func=string_embedding,\n        data_manager: DataManager = get_data_manager(),\n        similarity_evaluation=ExactMatchEvaluation(),\n        post_process_messages_func=temperature_softmax,\n        post_func=None,\n        config=Config(),\n        next_cache=None,\n    ):\n        \"\"\"Pass parameters to initialize GPTCache.\n\n        :param cache_enable_func: a function to enable cache, defaults to ``cache_all``\n        :param pre_embedding_func: a function to preprocess embedding, defaults to ``last_content``\n        :param pre_func: a function to preprocess embedding, same as ``pre_embedding_func``\n        :param embedding_func: a function to extract embeddings from requests for similarity search, defaults to ``string_embedding``\n        :param data_manager: a ``DataManager`` module, defaults to ``get_data_manager()``\n        :param similarity_evaluation: a module to calculate embedding similarity, defaults to ``ExactMatchEvaluation()``\n        :param post_process_messages_func: a function to post-process messages, defaults to ``temperature_softmax`` with a default temperature of 0.0\n        :param post_func: a function to post-process messages, same as ``post_process_messages_func``\n        :param config: a module to pass configurations, defaults to ``Config()``\n        :param next_cache: customized method for next cache\n        \"\"\"\n        self.has_init = True\n        self.cache_enable_func = cache_enable_func\n        self.pre_embedding_func = pre_func if pre_func else pre_embedding_func\n        self.embedding_func = embedding_func\n        self.data_manager: DataManager = data_manager\n        self.similarity_evaluation = similarity_evaluation\n        self.post_process_messages_func = post_func if post_func else post_process_messages_func\n        self.config = config\n        self.next_cache = next_cache\n\n        @atexit.register\n        def close():\n            try:\n                self.data_manager.close()\n            except Exception as e:  # pylint: disable=W0703\n                if not os.getenv(\"IS_CI\"):\n                    gptcache_log.error(e)\n\n    def import_data(self, questions: List[Any], answers: List[Any], session_ids: Optional[List[Optional[str]]] = None) -> None:\n        \"\"\"Import data to GPTCache\n\n        :param questions: preprocessed question Data\n        :param answers: list of answers to questions\n        :param session_ids: list of the session id.\n        :return: None\n        \"\"\"\n\n        self.data_manager.import_data(\n            questions=questions,\n            answers=answers,\n            embedding_datas=[self.embedding_func(question) for question in questions],\n            session_ids=session_ids if session_ids else [None for _ in range(len(questions))],\n        )\n\n    def flush(self):\n        \"\"\"Flush data, to prevent accidental loss of memory data,\n        such as using map cache management or faiss, hnswlib vector storage will be useful\n        \"\"\"\n        self.data_manager.flush()\n        if self.next_cache:\n            self.next_cache.data_manager.flush()\n\n    @staticmethod\n    def set_openai_key():\n        import_openai()\n        import openai  # pylint: disable=C0415\n\n        openai.api_key = os.getenv(\"OPENAI_API_KEY\")\n\n    @staticmethod\n    def set_azure_openai_key():\n        import_openai()\n        import openai  # pylint: disable=C0415\n\n        openai.api_type = \"azure\"\n        openai.api_key = os.getenv(\"OPENAI_API_KEY\")\n        openai.api_base = os.getenv(\"OPENAI_API_BASE\")\n        openai.api_version = os.getenv(\"OPENAI_API_VERSION\")\n\ncache = Cache()\n"
  },
  {
    "path": "gptcache/embedding/__init__.py",
    "content": "__all__ = [\n    \"OpenAI\",\n    \"Huggingface\",\n    \"SBERT\",\n    \"Cohere\",\n    \"Onnx\",\n    \"FastText\",\n    \"Data2VecAudio\",\n    \"Timm\",\n    \"ViT\",\n    \"LangChain\",\n    \"Rwkv\",\n    \"PaddleNLP\",\n    \"UForm\",\n]\n\n\nfrom gptcache.utils.lazy_import import LazyImport\n\nopenai = LazyImport(\"openai\", globals(), \"gptcache.embedding.openai\")\nhuggingface = LazyImport(\"huggingface\", globals(), \"gptcache.embedding.huggingface\")\nsbert = LazyImport(\"sbert\", globals(), \"gptcache.embedding.sbert\")\nonnx = LazyImport(\"onnx\", globals(), \"gptcache.embedding.onnx\")\ncohere = LazyImport(\"cohere\", globals(), \"gptcache.embedding.cohere\")\nfasttext = LazyImport(\"fasttext\", globals(), \"gptcache.embedding.fasttext\")\ndata2vec = LazyImport(\"data2vec\", globals(), \"gptcache.embedding.data2vec\")\ntimm = LazyImport(\"timm\", globals(), \"gptcache.embedding.timm\")\nvit = LazyImport(\"vit\", globals(), \"gptcache.embedding.vit\")\nlangchain = LazyImport(\"langchain\", globals(), \"gptcache.embedding.langchain\")\nrwkv = LazyImport(\"rwkv\", globals(), \"gptcache.embedding.rwkv\")\npaddlenlp = LazyImport(\"paddlenlp\", globals(), \"gptcache.embedding.paddlenlp\")\nuform = LazyImport(\"uform\", globals(), \"gptcache.embedding.uform\")\n\n\ndef Cohere(model=\"large\", api_key=None):\n    return cohere.Cohere(model, api_key)\n\n\ndef OpenAI(model=\"text-embedding-ada-002\", api_key=None):\n    return openai.OpenAI(model, api_key)\n\n\ndef Huggingface(model=\"distilbert-base-uncased\"):\n    return huggingface.Huggingface(model)\n\n\ndef SBERT(model=\"all-MiniLM-L6-v2\"):\n    return sbert.SBERT(model)\n\n\ndef Onnx(model=\"GPTCache/paraphrase-albert-onnx\"):\n    return onnx.Onnx(model)\n\n\ndef FastText(model=\"en\", dim=None):\n    return fasttext.FastText(model, dim)\n\n\ndef Data2VecAudio(model=\"facebook/data2vec-audio-base-960h\"):\n    return data2vec.Data2VecAudio(model)\n\n\ndef Timm(model=\"resnet50\", device=\"default\"):\n    return timm.Timm(model, device)\n\n\ndef ViT(model=\"google/vit-base-patch16-384\"):\n    return vit.ViT(model)\n\n\ndef LangChain(embeddings, dimension=0):\n    return langchain.LangChain(embeddings, dimension)\n\n\ndef Rwkv(model=\"sgugger/rwkv-430M-pile\"):\n    return rwkv.Rwkv(model)\n\n\ndef PaddleNLP(model=\"ernie-3.0-medium-zh\"):\n    return paddlenlp.PaddleNLP(model)\n\n\ndef UForm(model=\"unum-cloud/uform-vl-multilingual\", embedding_type=\"text\"):\n    return uform.UForm(model, embedding_type)\n"
  },
  {
    "path": "gptcache/embedding/base.py",
    "content": "from abc import ABCMeta, abstractmethod\n\n\nclass BaseEmbedding(metaclass=ABCMeta):\n    \"\"\"\n    Base Embedding interface.\n    \"\"\"\n\n    @abstractmethod\n    def to_embeddings(self, data, **kwargs):\n        pass\n\n    @property\n    @abstractmethod\n    def dimension(self) -> int:\n        return 0\n"
  },
  {
    "path": "gptcache/embedding/cohere.py",
    "content": "import numpy as np\n\nfrom gptcache.utils import import_cohere\nfrom gptcache.embedding.base import BaseEmbedding\n\nimport_cohere()\n\nimport cohere  # pylint: disable=C0413\n\n\nclass Cohere(BaseEmbedding):\n    \"\"\"Generate text embedding for given text using Cohere.\n\n    :param model: model name (size), defaults to 'large'.\n    :type model: str\n    :param api_key: Cohere API Key.\n    :type api_key: str\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.embedding import Cohere\n\n            test_sentence = 'Hello, world.'\n            encoder = Cohere(model='small', api_key='your_cohere_key')\n            embed = encoder.to_embeddings(test_sentence)\n    \"\"\"\n\n    def __init__(self, model: str = \"large\", api_key: str = None):\n        self.co = cohere.Client(api_key)\n        self.model = model\n\n        if model in self.dim_dict():\n            self.__dimension = self.dim_dict()[model]\n        else:\n            self.__dimension = None\n\n    def to_embeddings(self, data, **_):\n        \"\"\"Generate embedding given text input\n\n        :param data: text in string.\n        :type data: str\n\n        :return: a text embedding in shape of (dim,).\n        \"\"\"\n        if not isinstance(data, list):\n            data = [data]\n        response = self.co.embed(texts=data, model=self.model)\n        embeddings = response.embeddings\n        return np.array(embeddings).astype(\"float32\").squeeze(0)\n\n    @property\n    def dimension(self):\n        \"\"\"Embedding dimension.\n\n        :return: embedding dimension\n        \"\"\"\n        if not self.__dimension:\n            foo_emb = self.to_embeddings(\"foo\")\n            self.__dimension = len(foo_emb)\n        return self.__dimension\n\n    @staticmethod\n    def dim_dict():\n        return {\"large\": 4096, \"small\": 1024}\n"
  },
  {
    "path": "gptcache/embedding/data2vec.py",
    "content": "import numpy as np\n\nfrom gptcache.utils import import_huggingface, import_torch, import_torchaudio\nfrom gptcache.embedding.base import BaseEmbedding\n\nimport_torch()\nimport_huggingface()\nimport_torchaudio()\n\nimport torch  # pylint: disable=C0413\nimport torchaudio  # pylint: disable=C0413\nfrom transformers import Data2VecAudioModel, Wav2Vec2Processor  # pylint: disable=C0413\n\n\nclass Data2VecAudio(BaseEmbedding):\n    \"\"\"Generate audio embedding for given audio using pretrained models from Data2Vec.\n\n    :param model: model name, defaults to 'facebook/data2vec-audio-base-960h'.\n    :type model: str\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.embedding import Data2VecAudio\n\n            audio_file = 'test.wav'\n            encoder = Data2VecAudio(model='facebook/data2vec-audio-base-960h')\n            embed = encoder.to_embeddings(audio_file)\n    \"\"\"\n    def __init__(self, model_name = \"facebook/data2vec-audio-base-960h\"):\n        self.model = Data2VecAudioModel.from_pretrained(model_name)\n        self.processor = Wav2Vec2Processor.from_pretrained(model_name)\n        self.__dimension = self.model.config.hidden_size\n        self.sr = self.processor.feature_extractor.sampling_rate\n\n    def to_embeddings(self, data, **_):\n        \"\"\"Generate embedding given text input\n\n        :param data: path to audio file.\n        :type data: str\n\n        :return: a text embedding in shape of (dim,).\n        \"\"\"\n        audio = self.load_audio(data, self.sr)\n        inputs = self.processor(audio, sampling_rate=self.sr, return_tensors=\"pt\")\n        with torch.no_grad():\n            outputs = self.model(**inputs)\n        last_hidden_states = outputs.last_hidden_state\n        feat = last_hidden_states[:,-1,:].flatten().detach().cpu().numpy()\n        return np.array(feat).astype(\"float32\")\n\n    def load_audio(self, audio_path, target_sr):\n        waveform, sample_rate = torchaudio.load(audio_path)\n        waveform = torch.mean(waveform, axis=0)\n        transform = torchaudio.transforms.Resample(sample_rate, target_sr)\n        waveform = transform(waveform)\n        return waveform\n\n\n    @property\n    def dimension(self):\n        \"\"\"Embedding dimension.\n\n        :return: embedding dimension\n        \"\"\"\n        return self.__dimension\n"
  },
  {
    "path": "gptcache/embedding/fasttext.py",
    "content": "import numpy as np\nimport os\n\nfrom gptcache.utils import import_fasttext\nfrom gptcache.embedding.base import BaseEmbedding\n\nimport_fasttext()\n\nimport fasttext.util  # pylint: disable=C0413\n\n\nclass FastText(BaseEmbedding):\n    \"\"\"Generate sentence embedding for given text using pretrained models of different languages from fastText.\n\n    :param model: model name, defaults to 'en'.\n    :type model: str\n    :param dim: reduced dimension of embedding. If this parameter is not provided, the embedding dimension (300) will not change.\n    :type dim: int\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.embedding import FastText\n\n            test_sentence = 'Hello, world.'\n            encoder = FastText(model='en', dim=100)\n            embed = encoder.to_embeddings(test_sentence)\n    \"\"\"\n\n    def __init__(self, model: str = \"en\", dim: int = None):\n        self.model_path = os.path.abspath(fasttext.util.download_model(model))\n        self.ft = fasttext.load_model(self.model_path)\n\n        if dim:\n            fasttext.util.reduce_model(self.ft, dim)\n        self.__dimension = self.ft.get_dimension()\n\n    def to_embeddings(self, data, **_):\n        \"\"\"Generate embedding given text input\n\n        :param data: text in string.\n        :type data: str\n\n        :return: a text embedding in shape of (dim,).\n        \"\"\"\n        assert isinstance(data, str), \"Only allow string as input.\"\n        emb = self.ft.get_sentence_vector(data)\n        return np.array(emb).astype(\"float32\")\n\n    @property\n    def dimension(self):\n        \"\"\"Embedding dimension.\n\n        :return: embedding dimension\n        \"\"\"\n        return self.__dimension\n"
  },
  {
    "path": "gptcache/embedding/huggingface.py",
    "content": "import numpy as np\n\nfrom gptcache.embedding.base import BaseEmbedding\nfrom gptcache.utils import import_huggingface, import_torch\n\nimport_torch()\nimport_huggingface()\n\nimport torch  # pylint: disable=C0413\nfrom transformers import AutoTokenizer, AutoModel  # pylint: disable=C0413\n\n\nclass Huggingface(BaseEmbedding):\n    \"\"\"Generate sentence embedding for given text using pretrained models from Huggingface transformers.\n\n    :param model: model name, defaults to 'distilbert-base-uncased'.\n    :type model: str\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.embedding import Huggingface\n\n            test_sentence = 'Hello, world.'\n            encoder = Huggingface(model='distilbert-base-uncased')\n            embed = encoder.to_embeddings(test_sentence)\n\n            test_sentence = '什么是Github'\n            huggingface = Huggingface(model='uer/albert-base-chinese-cluecorpussmall')\n            embed = huggingface.to_embeddings(test_sentence)\n    \"\"\"\n\n    def __init__(self, model: str = \"distilbert-base-uncased\"):\n        self.model = AutoModel.from_pretrained(model)\n        self.model.eval()\n\n        self.tokenizer = AutoTokenizer.from_pretrained(model)\n        if not self.tokenizer.pad_token:\n            self.tokenizer.pad_token = \"[PAD]\"\n        try:\n            self.__dimension = self.model.config.hidden_size\n        except Exception:  # pylint: disable=W0703\n            from transformers import AutoConfig  # pylint: disable=C0415\n\n            config = AutoConfig.from_pretrained(model)\n            self.__dimension = config.hidden_size\n\n    def to_embeddings(self, data, **_):\n        \"\"\"Generate embedding given text input\n\n        :param data: text in string.\n        :type data: str\n\n        :return: a text embedding in shape of (dim,).\n        \"\"\"\n        if not isinstance(data, list):\n            data = [data]\n        inputs = self.tokenizer(\n            data, padding=True, truncation=True, return_tensors=\"pt\"\n        )\n        outs = self.model(**inputs).last_hidden_state\n        emb = self.post_proc(outs, inputs).squeeze(0).detach().numpy()\n        return np.array(emb).astype(\"float32\")\n\n    def post_proc(self, token_embeddings, inputs):\n        attention_mask = inputs[\"attention_mask\"]\n        input_mask_expanded = (\n            attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()\n        )\n        sentence_embs = torch.sum(\n            token_embeddings * input_mask_expanded, 1\n        ) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)\n        return sentence_embs\n\n    @property\n    def dimension(self):\n        \"\"\"Embedding dimension.\n\n        :return: embedding dimension\n        \"\"\"\n        return self.__dimension\n"
  },
  {
    "path": "gptcache/embedding/langchain.py",
    "content": "import numpy as np\n\nfrom gptcache.embedding.base import BaseEmbedding\nfrom gptcache.utils import import_langchain\n\nimport_langchain()\n\nfrom langchain.embeddings.base import Embeddings  # pylint: disable=C0413\n\n\nclass LangChain(BaseEmbedding):\n    \"\"\"Generate text embedding for given text using LangChain\n\n    :param embeddings: the LangChain Embeddings object.\n    :type embeddings: Embeddings\n    :param dimension: The vector dimension after embedding is calculated by calling embed once by default.\n     If you confirm the dimension, you can assign a value to this parameter to reduce this request.\n    :type dimension: int\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.embedding import LangChain\n            from langchain.embeddings.openai import OpenAIEmbeddings\n\n            test_sentence = 'Hello, world.'\n            embeddings = OpenAIEmbeddings(model=\"your-embeddings-deployment-name\")\n            encoder = LangChain(embeddings=embeddings)\n            embed = encoder.to_embeddings(test_sentence)\n    \"\"\"\n\n    def __init__(self, embeddings: Embeddings, dimension: int = 0):\n        self._embeddings: Embeddings = embeddings\n        self._dimension: int = (\n            dimension if dimension != 0 else len(self._embeddings.embed_query(\"foo\"))\n        )\n\n    def to_embeddings(self, data, **kwargs):\n        vector_data = self._embeddings.embed_query(data)\n        return np.array(vector_data).astype(\"float32\")\n\n    @property\n    def dimension(self) -> int:\n        return self._dimension\n"
  },
  {
    "path": "gptcache/embedding/onnx.py",
    "content": "import numpy as np\n\nfrom gptcache.embedding.base import BaseEmbedding\nfrom gptcache.utils import (\n    import_onnxruntime,\n    import_huggingface_hub,\n    import_huggingface,\n)\n\nimport_huggingface()\nimport_onnxruntime()\nimport_huggingface_hub()\n\nfrom transformers import AutoTokenizer, AutoConfig  # pylint: disable=C0413\nfrom huggingface_hub import hf_hub_download  # pylint: disable=C0413\nimport onnxruntime  # pylint: disable=C0413\n\n\nclass Onnx(BaseEmbedding):\n    \"\"\"Generate text embedding for given text using ONNX Model.\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.embedding import Onnx\n\n            test_sentence = 'Hello, world.'\n            encoder = Onnx(model='GPTCache/paraphrase-albert-onnx')\n            embed = encoder.to_embeddings(test_sentence)\n    \"\"\"\n\n    def __init__(self, model=\"GPTCache/paraphrase-albert-onnx\"):\n        tokenizer_name = \"GPTCache/paraphrase-albert-small-v2\"\n        self.tokenizer = AutoTokenizer.from_pretrained(tokenizer_name)\n        self.model = model\n        onnx_model_path = hf_hub_download(repo_id=model, filename=\"model.onnx\")\n        self.ort_session = onnxruntime.InferenceSession(onnx_model_path)\n        config = AutoConfig.from_pretrained(\n            \"GPTCache/paraphrase-albert-small-v2\"\n        )\n        self.__dimension = config.hidden_size\n\n    def to_embeddings(self, data, **_):\n        \"\"\"Generate embedding given text input.\n\n        :param data: text in string.\n        :type data: str\n\n        :return: a text embedding in shape of (dim,).\n        \"\"\"\n        encoded_text = self.tokenizer.encode_plus(data, padding=\"max_length\")\n\n        ort_inputs = {\n            \"input_ids\": np.array(encoded_text[\"input_ids\"]).astype(\"int64\").reshape(1, -1),\n            \"attention_mask\": np.array(encoded_text[\"attention_mask\"]).astype(\"int64\").reshape(1, -1),\n            \"token_type_ids\": np.array(encoded_text[\"token_type_ids\"]).astype(\"int64\").reshape(1, -1),\n        }\n\n        ort_outputs = self.ort_session.run(None, ort_inputs)\n        ort_feat = ort_outputs[0]\n        emb = self.post_proc(ort_feat, ort_inputs[\"attention_mask\"])\n        return emb.flatten()\n\n    def post_proc(self, token_embeddings, attention_mask):\n        input_mask_expanded = (\n            np.expand_dims(attention_mask, -1)\n            .repeat(token_embeddings.shape[-1], -1)\n            .astype(float)\n        )\n        sentence_embs = np.sum(token_embeddings * input_mask_expanded, 1) / np.maximum(\n            input_mask_expanded.sum(1), 1e-9\n        )\n        return sentence_embs\n\n    @property\n    def dimension(self):\n        \"\"\"Embedding dimension.\n\n        :return: embedding dimension\n        \"\"\"\n        return self.__dimension\n"
  },
  {
    "path": "gptcache/embedding/openai.py",
    "content": "import os\n\nimport numpy as np\n\nfrom gptcache.embedding.base import BaseEmbedding\nfrom gptcache.utils import import_openai\n\nimport_openai()\n\nimport openai  # pylint: disable=C0413\n\nclass OpenAI(BaseEmbedding):\n    \"\"\"Generate text embedding for given text using OpenAI.\n\n    :param model: model name, defaults to 'text-embedding-ada-002'.\n    :type model: str\n    :param api_key: OpenAI API Key. When the parameter is not specified, it will load the key by default if it is available.\n    :type api_key: str\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.embedding import OpenAI\n\n            test_sentence = 'Hello, world.'\n            encoder = OpenAI(api_key='your_openai_key')\n            embed = encoder.to_embeddings(test_sentence)\n    \"\"\"\n\n    def __init__(self, model: str = \"text-embedding-ada-002\", api_key: str = None, api_base: str = None):\n        if not api_key:\n            if openai.api_key:\n                api_key = openai.api_key\n            else:\n                api_key = os.getenv(\"OPENAI_API_KEY\")\n        if not api_base:\n            if openai.api_base:\n                api_base = openai.api_base\n            else:\n                api_base = os.getenv(\"OPENAI_API_BASE\")\n        openai.api_key = api_key\n        self.api_base = api_base  # don't override all of openai as we may just want to override for say embeddings\n        self.model = model\n        if model in self.dim_dict():\n            self.__dimension = self.dim_dict()[model]\n        else:\n            self.__dimension = None\n\n    def to_embeddings(self, data, **_):\n        \"\"\"Generate embedding given text input\n\n        :param data: text in string.\n        :type data: str\n\n        :return: a text embedding in shape of (dim,).\n        \"\"\"\n        sentence_embeddings = openai.Embedding.create(model=self.model, input=data, api_base=self.api_base)\n        return np.array(sentence_embeddings[\"data\"][0][\"embedding\"]).astype(\"float32\")\n\n    @property\n    def dimension(self):\n        \"\"\"Embedding dimension.\n\n        :return: embedding dimension\n        \"\"\"\n        if not self.__dimension:\n            foo_emb = self.to_embeddings(\"foo\")\n            self.__dimension = len(foo_emb)\n        return self.__dimension\n\n    @staticmethod\n    def dim_dict():\n        return {\"text-embedding-ada-002\": 1536}\n"
  },
  {
    "path": "gptcache/embedding/paddlenlp.py",
    "content": "import numpy as np\n\nfrom gptcache.embedding.base import BaseEmbedding\nfrom gptcache.utils import import_paddlenlp, import_paddle\n\nimport_paddle()\nimport_paddlenlp()\n\n\nimport paddle  # pylint: disable=C0413\nfrom paddlenlp.transformers import AutoModel, AutoTokenizer  # pylint: disable=C0413\n\nclass PaddleNLP(BaseEmbedding):\n    \"\"\"Generate sentence embedding for given text using pretrained models from PaddleNLP transformers.\n\n    :param model: model name, defaults to 'ernie-3.0-medium-zh'.\n    :type model: str\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.embedding import PaddleNLP\n\n            test_sentence = 'Hello, world.'\n            encoder = PaddleNLP(model='ernie-3.0-medium-zh')\n            embed = encoder.to_embeddings(test_sentence)\n    \"\"\"\n\n    def __init__(self, model: str = \"ernie-3.0-medium-zh\"):\n        self.model = AutoModel.from_pretrained(model)\n        self.model.eval()\n\n        self.tokenizer = AutoTokenizer.from_pretrained(model)\n        if not self.tokenizer.pad_token:\n            self.tokenizer.pad_token = \"<pad>\"\n        self.__dimension = None\n\n    def to_embeddings(self, data, **_):\n        \"\"\"Generate embedding given text input\n\n        :param data: text in string.\n        :type data: str\n\n        :return: a text embedding in shape of (dim,).\n        \"\"\"\n        if not isinstance(data, list):\n            data = [data]\n        inputs = self.tokenizer(\n            data, padding=True, truncation=True, return_tensors=\"pd\"\n        )\n        outs = self.model(**inputs)[0]\n        emb = self.post_proc(outs, inputs).squeeze(0).detach().numpy()\n        return np.array(emb).astype(\"float32\")\n\n    def post_proc(self, token_embeddings, inputs):\n        attention_mask = paddle.ones(inputs[\"token_type_ids\"].shape)\n        input_mask_expanded = (\n            attention_mask.unsqueeze(-1).expand(token_embeddings.shape).astype(\"float32\")\n        )\n        sentence_embs = paddle.sum(\n            token_embeddings * input_mask_expanded, 1\n        ) / paddle.clip(input_mask_expanded.sum(1), min=1e-9)\n        return sentence_embs\n\n    @property\n    def dimension(self):\n        \"\"\"Embedding dimension.\n\n        :return: embedding dimension\n        \"\"\"\n        if not self.__dimension:\n            self.__dimension = len(self.to_embeddings(\"foo\"))\n        return self.__dimension\n\n"
  },
  {
    "path": "gptcache/embedding/rwkv.py",
    "content": "import numpy as np\n\nfrom gptcache.embedding.base import BaseEmbedding\nfrom gptcache.utils import import_huggingface\n\nimport_huggingface()\n\nfrom transformers import AutoTokenizer, RwkvModel  # pylint: disable=C0413\n\n\nclass Rwkv(BaseEmbedding):\n    \"\"\"Generate sentence embedding for given text using RWKV models.\n\n    :param model: model name, defaults to 'sgugger/rwkv-430M-pile'. Check\n      https://huggingface.co/docs/transformers/model_doc/rwkv for more avaliable models.\n    :type model: str\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.embedding import Rwkv\n\n            test_sentence = 'Hello, world.'\n            encoder = Rwkv(model='sgugger/rwkv-430M-pile')\n            embed = encoder.to_embeddings(test_sentence)\n    \"\"\"\n\n    def __init__(self, model: str = \"sgugger/rwkv-430M-pile\"):\n        self.model = RwkvModel.from_pretrained(model)\n        self.model.eval()\n\n        self.tokenizer = AutoTokenizer.from_pretrained(model)\n        try:\n            self.__dimension = self.model.config.hidden_size\n        except Exception:  # pylint: disable=W0703\n            from transformers import AutoConfig  # pylint: disable=C0415\n\n            config = AutoConfig.from_pretrained(model)\n            self.__dimension = config.hidden_size\n\n    def to_embeddings(self, data, **_):\n        \"\"\"Generate embedding given text input\n\n        :param data: text in string.\n        :type data: str\n\n        :return: a text embedding in shape of (dim,).\n        \"\"\"\n        inputs = self.tokenizer(data, return_tensors=\"pt\")\n        outputs = self.model(inputs[\"input_ids\"])\n        emb = outputs.last_hidden_state[0, 0, :].detach().numpy()\n        return np.array(emb).astype(\"float32\")\n\n    @property\n    def dimension(self):\n        \"\"\"Embedding dimension.\n\n        :return: embedding dimension\n        \"\"\"\n        return self.__dimension\n"
  },
  {
    "path": "gptcache/embedding/sbert.py",
    "content": "import numpy as np\nfrom gptcache.utils import import_sbert\nfrom gptcache.embedding.base import BaseEmbedding\n\nimport_sbert()\n\nfrom sentence_transformers import SentenceTransformer  # pylint: disable=C0413\n\n\nclass SBERT(BaseEmbedding):\n    \"\"\"Generate sentence embedding for given text using pretrained models of Sentence Transformers.\n\n    :param model: model name, defaults to 'all-MiniLM-L6-v2'.\n    :type model: str\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.embedding import SBERT\n\n            test_sentence = 'Hello, world.'\n            encoder = SBERT('all-MiniLM-L6-v2')\n            embed = encoder.to_embeddings(test_sentence)\n    \"\"\"\n\n    def __init__(self, model: str = \"all-MiniLM-L6-v2\"):\n        self.model = SentenceTransformer(model)\n        self.model.eval()\n        self.__dimension = None\n\n    def to_embeddings(self, data, **_):\n        \"\"\"Generate embedding given text input\n\n        :param data: text in string.\n        :type data: str\n\n        :return: a text embedding in shape of (dim,).\n        \"\"\"\n        if not isinstance(data, list):\n            data = [data]\n        emb = self.model.encode(data).squeeze(0)\n\n        if not self.__dimension:\n            self.__dimension = len(emb)\n        return np.array(emb).astype(\"float32\")\n\n    @property\n    def dimension(self):\n        \"\"\"Embedding dimension.\n\n        :return: embedding dimension\n        \"\"\"\n        if not self.__dimension:\n            self.__dimension = len(self.to_embeddings(\"foo\"))\n        return self.__dimension\n"
  },
  {
    "path": "gptcache/embedding/string.py",
    "content": "def to_embeddings(data, **_):\n    \"\"\"Nothing to do, return the origin data\"\"\"\n    return data\n"
  },
  {
    "path": "gptcache/embedding/timm.py",
    "content": "import numpy as np\n\nfrom gptcache.utils import import_timm, import_torch, import_pillow\nfrom gptcache.embedding.base import BaseEmbedding\n\nimport_torch()\nimport_timm()\nimport_pillow()\n\nimport torch  # pylint: disable=C0413\nfrom timm.models import create_model  # pylint: disable=C0413\nfrom timm.data import create_transform, resolve_data_config  # pylint: disable=C0413\nfrom PIL import Image  # pylint: disable=C0413\n\n\nclass Timm(BaseEmbedding):\n    \"\"\"Generate image embedding for given image using pretrained models from Timm.\n\n    :param model: model name, defaults to 'resnet34'.\n    :type model: str\n\n    Example:\n        .. code-block:: python\n\n            import requests\n            from io import BytesIO\n            from gptcache.embedding import Timm\n\n\n            encoder = Timm(model='resnet50')\n            embed = encoder.to_embeddings('path/to/image')\n    \"\"\"\n\n    def __init__(self, model: str = \"resnet18\", device: str = \"default\"):\n        if device == \"default\":\n            self.device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n        else:\n            self.device = device\n        self.model_name = model\n        self.model = create_model(model_name=model, pretrained=True)\n        self.model.eval()\n\n        try:\n            self.__dimension = self.model.embed_dim\n        except Exception:  # pylint: disable=W0703\n            self.__dimension = None\n\n    def to_embeddings(self, data, skip_preprocess: bool = False, **_):\n        \"\"\"Generate embedding given image data\n\n        :param data: image path.\n        :type data: str\n        :param skip_preprocess: flag to skip preprocess, defaults to False, enable this if the input data is torch.tensor.\n        :type skip_preprocess: bool\n\n        :return: an image embedding in shape of (dim,).\n        \"\"\"\n        if not skip_preprocess:\n            data = self.preprocess(data)\n        if data.dim() == 3:\n            data = data.unsqueeze(0)\n        feats = self.model.forward_features(data)\n        emb = self.post_proc(feats).squeeze(0).detach().numpy()\n\n        return np.array(emb).astype(\"float32\")\n\n    def post_proc(self, features):\n        features = features.to(\"cpu\")\n        if features.dim() == 3:\n            features = features[:, 0]\n        if features.dim() == 4:\n            global_pool = torch.nn.AdaptiveAvgPool2d(1)\n            features = global_pool(features)\n            features = features.flatten(1)\n        assert features.dim() == 2, f\"Invalid output dim {features.dim()}\"\n        return features\n\n    def preprocess(self, image_path):\n        \"\"\"Load image from path and then transform image to torch.tensor with model transformations.\n\n        :param image_path: image path.\n        :type image_path: str\n\n        :return: an image tensor (without batch size).\n        \"\"\"\n        data_cfg = resolve_data_config(self.model.pretrained_cfg)\n        transform = create_transform(**data_cfg)\n\n        image = Image.open(image_path).convert(\"RGB\")\n        image_tensor = transform(image)\n        return image_tensor\n\n\n\n    @property\n    def dimension(self):\n        \"\"\"Embedding dimension.\n\n        :return: embedding dimension\n        \"\"\"\n        if not self.__dimension:\n            input_size = self.model.pretrained_cfg[\"input_size\"]\n            dummy_input = torch.rand((1,) + input_size)\n            feats = self.to_embeddings(dummy_input, skip_preprocess=True)\n            self.__dimension = feats.shape[0]\n        return self.__dimension\n"
  },
  {
    "path": "gptcache/embedding/uform.py",
    "content": "from typing import Union, Any\n\nfrom gptcache.embedding.base import BaseEmbedding\nfrom gptcache.utils import import_uform, import_pillow\nfrom gptcache.utils.error import ParamError\n\nimport_pillow()\nimport_uform()\n\nfrom uform import TritonClient, get_model  # pylint: disable=C0413 # nopep8\nfrom PIL import Image  # pylint: disable=C0413 # nopep8\n\n\nclass UForm(BaseEmbedding):\n    \"\"\"Generate multi-modal embeddings using pretrained models from UForm.\n\n    :param model: model name, defaults to 'unum-cloud/uform-vl-english'.\n    :type model: str\n    :param embedding_type: type of embedding, defaults to 'text'. options: text, image\n    :type embedding_type: str\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.embedding import UForm\n\n            test_sentence = 'Hello, world.'\n            encoder = UForm(model='unum-cloud/uform-vl-english')\n            embed = encoder.to_embeddings(test_sentence)\n\n            test_sentence = '什么是Github'\n            encoder = UForm(model='unum-cloud/uform-vl-multilingual')\n            embed = encoder.to_embeddings(test_sentence)\n    \"\"\"\n\n    def __init__(self, model: Union[str, TritonClient] = \"unum-cloud/uform-vl-english\", embedding_type: str = \"text\"):\n        if isinstance(model, str):\n            self.__model = get_model(model)\n        else:\n            self.__model = model\n        self.__embedding_type = embedding_type\n        if embedding_type == \"text\":\n            self.__dimension = self.__model.text_encoder.proj.out_features\n        elif embedding_type == \"image\":\n            self.__dimension = self.__model.img_encoder.proj.out_features\n        else:\n            raise ParamError(f\"Unknown embedding type: {embedding_type}\")\n\n    def to_embeddings(self, data: Any, **_):\n        \"\"\"Generate embedding given text input or a path to a file.\n\n        :param data: text in string, or a path to an image file.\n        :type data: str\n\n        :return: an embedding in shape of (dim,).\n        \"\"\"\n        if self.__embedding_type == \"image\":\n            data = Image.open(data)\n            data = self.__model.preprocess_image(data)\n            emb = self.__model.encode_image(data)\n        else:\n            data = self.__model.preprocess_text(data)\n            emb = self.__model.encode_text(data)\n        return emb.detach().numpy().flatten()\n\n    @property\n    def dimension(self):\n        \"\"\"Embedding dimension.\n\n        :return: embedding dimension\n        \"\"\"\n        return self.__dimension\n"
  },
  {
    "path": "gptcache/embedding/vit.py",
    "content": "from gptcache.utils import import_huggingface, import_torch, import_torchvision\nfrom gptcache.embedding.base import BaseEmbedding\n\nimport_torch()\nimport_huggingface()\nimport_torchvision()\n\nimport torch  # pylint: disable=C0413\nfrom transformers import AutoImageProcessor  # pylint: disable=C0413\nfrom transformers import ViTModel  # pylint: disable=C0413\n\n\nclass ViT(BaseEmbedding):\n    \"\"\"Generate sentence embedding for given text using pretrained models from Huggingface transformers.\n\n    :param model: model name, defaults to 'google/vit-base-patch16-384'.\n    :type model: str\n\n    Example:\n        .. code-block:: python\n\n            import io\n            from PIL import Image\n            from gptcache.embedding import ImageEmbedding\n\n            def prepare_image(image_data: str = None):\n                if not image_data:\n                    image_data = io.BytesIO()\n                    Image.new('RGB', (244, 244), color=(255, 0, 0)).save(image_data, format='JPEG')\n                    image_data.seek(0)\n                image = Image.open(image_data)\n                return image\n\n            image = prepare_image()\n            encoder = ImageEmbeddings(model=\"google/vit-base-patch16-384\")\n            embed = encoder.to_embeddings(image)\n    \"\"\"\n\n    def __init__(self, model: str = \"google/vit-base-patch16-384\"):\n\n        self.model_name = model\n        model = ViTModel.from_pretrained(model)\n        self.model = model.eval()\n        config = self.model.config\n        self.__dimension = config.hidden_size\n\n    def to_embeddings(self, data, **__):\n        \"\"\"Generate embedding given text input\n\n        :param data: text in string.\n        :type data: str\n\n        :return: a text embedding in shape of (dim,).\n        \"\"\"\n        inputs = self.preprocess(data)\n\n        with torch.no_grad():\n            outputs = self.model(**inputs)\n\n        last_hidden_states = outputs.last_hidden_state\n        features = last_hidden_states[:, 0, :]\n        features = features.squeeze()\n        return features.detach().numpy()\n\n    def preprocess(self, data):\n        image_processor = AutoImageProcessor.from_pretrained(self.model_name)\n        inputs = image_processor(data, return_tensors=\"pt\")\n        return inputs\n\n    @property\n    def dimension(self):\n        \"\"\"Embedding dimension.\n\n        :return: embedding dimension\n        \"\"\"\n        return self.__dimension\n\n"
  },
  {
    "path": "gptcache/manager/__init__.py",
    "content": "from gptcache.manager.scalar_data import CacheBase\nfrom gptcache.manager.vector_data import VectorBase\nfrom gptcache.manager.object_data import ObjectBase\nfrom gptcache.manager.factory import get_data_manager, manager_factory\n"
  },
  {
    "path": "gptcache/manager/data_manager.py",
    "content": "import pickle\nfrom abc import abstractmethod, ABCMeta\nfrom typing import List, Any, Optional, Union\n\nimport cachetools\nimport numpy as np\nimport requests\n\nfrom gptcache.manager.eviction import EvictionBase\nfrom gptcache.manager.eviction.distributed_cache import NoOpEviction\nfrom gptcache.manager.eviction_manager import EvictionManager\nfrom gptcache.manager.object_data.base import ObjectBase\nfrom gptcache.manager.scalar_data.base import (\n    CacheStorage,\n    CacheData,\n    DataType,\n    Answer,\n    Question,\n)\nfrom gptcache.manager.vector_data.base import VectorBase, VectorData\nfrom gptcache.utils.error import CacheError, ParamError\nfrom gptcache.utils.log import gptcache_log\n\n\nclass DataManager(metaclass=ABCMeta):\n    \"\"\"DataManager manage the cache data, including save and search\"\"\"\n\n    @abstractmethod\n    def save(self, question, answer, embedding_data, **kwargs):\n        pass\n\n    @abstractmethod\n    def import_data(\n            self,\n            questions: List[Any],\n            answers: List[Any],\n            embedding_datas: List[Any],\n            session_ids: List[Optional[str]],\n    ):\n        pass\n\n    @abstractmethod\n    def get_scalar_data(self, res_data, **kwargs) -> CacheData:\n        pass\n\n    def hit_cache_callback(self, res_data, **kwargs):\n        pass\n\n    @abstractmethod\n    def search(self, embedding_data, **kwargs):\n        \"\"\"search the data in the cache store accrodding to the embedding data\n\n        :return: a list of search result, [[score, id], [score, id], ...]\n        \"\"\"\n        pass\n\n    def flush(self):\n        pass\n\n    @abstractmethod\n    def add_session(self, res_data, session_id, pre_embedding_data):\n        pass\n\n    @abstractmethod\n    def list_sessions(self, session_id, key):\n        pass\n\n    @abstractmethod\n    def delete_session(self, session_id):\n        pass\n\n    def report_cache(\n        self,\n        user_question,\n        cache_question,\n        cache_question_id,\n        cache_answer,\n        similarity_value,\n        cache_delta_time,\n    ):\n        pass\n\n    @abstractmethod\n    def close(self):\n        pass\n\n\nclass MapDataManager(DataManager):\n    \"\"\"MapDataManager, store all data in a map data structure.\n\n    :param data_path: the path to save the map data, defaults to 'data_map.txt'.\n    :type data_path:  str\n    :param max_size: the max size for the cache, defaults to 1000.\n    :type max_size: int\n    :param get_data_container: a Callable to get the data container, defaults to None.\n    :type get_data_container:  Callable\n\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.manager import get_data_manager\n\n            data_manager = get_data_manager(\"data_map.txt\", 1000)\n    \"\"\"\n\n    def __init__(self, data_path, max_size, get_data_container=None):\n        if get_data_container is None:\n            self.data = cachetools.LRUCache(max_size)\n        else:\n            self.data = get_data_container(max_size)\n        self.data_path = data_path\n        self.init()\n\n    def init(self):\n        try:\n            with open(self.data_path, \"rb\") as f:\n                self.data = pickle.load(f)\n        except FileNotFoundError:\n            return\n        except PermissionError:\n            raise CacheError(  # pylint: disable=W0707\n                f\"You don't have permission to access this file <{self.data_path}>.\"\n            )\n\n    def save(self, question, answer, embedding_data, **kwargs):\n        if isinstance(question, Question):\n            question = question.content\n        session = kwargs.get(\"session\", None)\n        session_id = {session.name} if session else set()\n        self.data[embedding_data] = (question, answer, embedding_data, session_id)\n\n    def import_data(\n        self,\n        questions: List[Any],\n        answers: List[Any],\n        embedding_datas: List[Any],\n        session_ids: List[Optional[str]],\n    ):\n        if (\n            len(questions) != len(answers)\n            or len(questions) != len(embedding_datas)\n            or len(questions) != len(session_ids)\n        ):\n            raise ParamError(\"Make sure that all parameters have the same length\")\n        for i, embedding_data in enumerate(embedding_datas):\n            self.data[embedding_data] = (\n                questions[i],\n                answers[i],\n                embedding_datas[i],\n                {session_ids[i]} if session_ids[i] else set(),\n            )\n\n    def get_scalar_data(self, res_data, **kwargs) -> CacheData:\n        session = kwargs.get(\"session\", None)\n        if session:\n            answer = (\n                res_data[1].answer if isinstance(res_data[1], Answer) else res_data[1]\n            )\n            if not session.check_hit_func(\n                session.name, list(res_data[3]), [res_data[0]], answer\n            ):\n                return None\n        return CacheData(question=res_data[0], answers=res_data[1])\n\n    def search(self, embedding_data, **kwargs):\n        try:\n            return [self.data[embedding_data]]\n        except KeyError:\n            return []\n\n    def flush(self):\n        try:\n            with open(self.data_path, \"wb\") as f:\n                pickle.dump(self.data, f)\n        except PermissionError:\n            gptcache_log.error(\n                \"You don't have permission to access this file %s.\", self.data_path\n            )\n\n    def add_session(self, res_data, session_id, pre_embedding_data):\n        res_data[3].add(session_id)\n\n    def list_sessions(self, session_id=None, key=None):\n        session_ids = set()\n        for k in self.data:\n            if session_id and session_id in self.data[k][3]:\n                session_ids.add(k)\n            elif len(self.data[k][3]) > 0:\n                session_ids.update(self.data[k][3])\n        return list(session_ids)\n\n    def delete_session(self, session_id):\n        keys = self.list_sessions(session_id=session_id)\n        for k in keys:\n            self.data[k][3].remove(session_id)\n            if len(self.data[k][3]) == 0:\n                del self.data[k]\n\n    def close(self):\n        self.flush()\n\n\ndef normalize(vec):\n    magnitude = np.linalg.norm(vec)\n    normalized_v = vec / magnitude\n    return normalized_v\n\n\nclass SSDataManager(DataManager):\n    \"\"\"Generate SSDataManage to manager the data.\n\n    :param s: CacheStorage to manager the scalar data, it can be generated with :meth:`gptcache.manager.CacheBase`.\n    :type s: CacheStorage\n    :param v: VectorBase to manager the vector data, it can be generated with :meth:`gptcache.manager.VectorBase`.\n    :type v:  VectorBase\n    :param o: ObjectBase to manager the object data, it can be generated with :meth:`gptcache.manager.ObjectBase`.\n    :type o:  ObjectBase\n    :param e: EvictionBase to manager the eviction data, it can be generated with :meth:`gptcache.manager.EvictionBase`.\n    :type e:  EvictionBase\n    \"\"\"\n\n    def __init__(\n        self,\n        s: CacheStorage,\n        v: VectorBase,\n        o: Optional[ObjectBase],\n        e: Optional[EvictionBase],\n        max_size,\n        clean_size,\n        policy=\"LRU\"\n    ):\n        self.s = s\n        self.v = v\n        self.o = o\n        self.eviction_manager = EvictionManager(self.s, self.v)\n        if e is None:\n            e = EvictionBase(name=\"memory\",\n                             maxsize=max_size,\n                             clean_size=clean_size,\n                             policy=policy,\n                             on_evict=self._clear)\n        self.eviction_base = e\n\n        if not isinstance(self.eviction_base, NoOpEviction):\n            # if eviction manager is no op redis, we don't need to put data into eviction base\n            self.eviction_base.put(self.s.get_ids(deleted=False))\n\n    def _clear(self, marked_keys):\n        self.eviction_manager.soft_evict(marked_keys)\n        if self.eviction_manager.check_evict():\n            self.eviction_manager.delete()\n\n    def save(self, question, answer, embedding_data, **kwargs):\n        \"\"\"Save the data and vectors to cache and vector storage.\n\n        :param question: question data.\n        :type question: str\n        :param answer: answer data.\n        :type answer: str, Answer or (Any, DataType)\n        :param embedding_data: vector data.\n        :type embedding_data: np.ndarray\n\n        Example:\n            .. code-block:: python\n\n                import numpy as np\n                from gptcache.manager import get_data_manager, CacheBase, VectorBase\n\n                data_manager = get_data_manager(CacheBase('sqlite'), VectorBase('faiss', dimension=128))\n                data_manager.save('hello', 'hi', np.random.random((128, )).astype('float32'))\n        \"\"\"\n        session = kwargs.get(\"session\", None)\n        session_id = session.name if session else None\n        self.import_data([question], [answer], [embedding_data], [session_id])\n\n    def _process_answer_data(self, answers: Union[Answer, List[Answer]]):\n        if isinstance(answers, Answer):\n            answers = [answers]\n        new_ans = []\n        for ans in answers:\n            if ans.answer_type != DataType.STR:\n                new_ans.append(Answer(self.o.put(ans.answer), ans.answer_type))\n            else:\n                new_ans.append(ans)\n        return new_ans\n\n    def _process_question_data(self, question: Union[str, Question]):\n        if isinstance(question, Question):\n            if question.deps is None:\n                return question\n\n            for dep in question.deps:\n                if dep.dep_type == DataType.IMAGE_URL:\n                    dep.dep_type.data = self.o.put(requests.get(dep.data).content)\n            return question\n\n        return Question(question)\n\n    def import_data(\n        self,\n        questions: List[Any],\n        answers: List[Answer],\n        embedding_datas: List[Any],\n        session_ids: List[Optional[str]],\n    ):\n        if (\n            len(questions) != len(answers)\n            or len(questions) != len(embedding_datas)\n            or len(questions) != len(session_ids)\n        ):\n            raise ParamError(\"Make sure that all parameters have the same length\")\n        cache_datas = []\n        embedding_datas = [\n            normalize(embedding_data) for embedding_data in embedding_datas\n        ]\n        for i, embedding_data in enumerate(embedding_datas):\n            if self.o is not None and not isinstance(answers[i], str):\n                ans = self._process_answer_data(answers[i])\n            else:\n                ans = answers[i]\n\n            cache_datas.append(\n                CacheData(\n                    question=self._process_question_data(questions[i]),\n                    answers=ans,\n                    embedding_data=embedding_data.astype(\"float32\"),\n                    session_id=session_ids[i],\n                )\n            )\n        ids = self.s.batch_insert(cache_datas)\n        self.v.mul_add(\n            [\n                VectorData(id=ids[i], data=embedding_data)\n                for i, embedding_data in enumerate(embedding_datas)\n            ]\n        )\n        self.eviction_base.put(ids)\n\n    def get_scalar_data(self, res_data, **kwargs) -> Optional[CacheData]:\n        session = kwargs.get(\"session\", None)\n        cache_data = self.s.get_data_by_id(res_data[1])\n        if cache_data is None:\n            return None\n\n        if session:\n            cache_answer = (\n                cache_data.answers[0].answer\n                if isinstance(cache_data.answers[0], Answer)\n                else cache_data.answers[0]\n            )\n            res_list = self.list_sessions(key=res_data[1])\n            cache_session_ids, cache_questions = [r.session_id for r in res_list], [\n                r.session_question for r in res_list\n            ]\n            if not session.check_hit_func(\n                session.name, cache_session_ids, cache_questions, cache_answer\n            ):\n                return None\n\n        for ans in cache_data.answers:\n            if ans.answer_type != DataType.STR:\n                ans.answer = self.o.get(ans.answer)\n        return cache_data\n\n    def hit_cache_callback(self, res_data, **kwargs):\n        self.eviction_base.get(res_data[1])\n\n    def search(self, embedding_data, **kwargs):\n        embedding_data = normalize(embedding_data)\n        top_k = kwargs.get(\"top_k\", -1)\n        return self.v.search(data=embedding_data, top_k=top_k)\n\n    def flush(self):\n        self.s.flush()\n        self.v.flush()\n\n    def add_session(self, res_data, session_id, pre_embedding_data):\n        self.s.add_session(res_data[1], session_id, pre_embedding_data)\n\n    def list_sessions(self, session_id=None, key=None):\n        res = self.s.list_sessions(session_id, key)\n        if key:\n            return res\n        if session_id:\n            return list(r.id for r in res)\n        return list(set(r.session_id for r in res))\n\n    def delete_session(self, session_id):\n        keys = self.list_sessions(session_id=session_id)\n        self.s.delete_session(keys)\n\n    def report_cache(\n        self,\n        user_question,\n        cache_question,\n        cache_question_id,\n        cache_answer,\n        similarity_value,\n        cache_delta_time,\n    ):\n        self.s.report_cache(\n            user_question,\n            cache_question,\n            cache_question_id,\n            cache_answer,\n            similarity_value,\n            cache_delta_time,\n        )\n\n    def close(self):\n        self.s.close()\n        self.v.close()\n"
  },
  {
    "path": "gptcache/manager/eviction/__init__.py",
    "content": "__all__ = [\"EvictionBase\"]\n\nfrom gptcache.utils.lazy_import import LazyImport\n\neviction_manager = LazyImport(\n    \"eviction_manager\", globals(), \"gptcache.manager.eviction.manager\"\n)\n\n\ndef EvictionBase(name: str, **kwargs):\n    \"\"\"Generate specific CacheStorage with the configuration.\n\n    :param name: the name of the eviction, like: memory\n    :type name: str\n\n    :param policy: eviction strategy\n    :type policy: str\n    :param maxsize: the maxsize of cache data\n    :type maxsize: int\n    :param clean_size: will clean the size of data when the size of cache data reaches the max size\n    :type clean_size: int\n    :param on_evict: the function for cleaning the data in the store\n    :type  on_evict: Callable[[List[Any]], None]\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.manager import EvictionBase\n\n            cache_base = EvictionBase('memory', policy='lru', maxsize=10, clean_size=2, on_evict=lambda x: print(x))\n    \"\"\"\n    return eviction_manager.EvictionBase.get(name, **kwargs)\n"
  },
  {
    "path": "gptcache/manager/eviction/base.py",
    "content": "from abc import ABCMeta, abstractmethod\nfrom typing import Any, List\n\n\nclass EvictionBase(metaclass=ABCMeta):\n    \"\"\"\n    Eviction base.\n    \"\"\"\n\n    @abstractmethod\n    def put(self, objs: List[Any]):\n        pass\n\n    @abstractmethod\n    def get(self, obj: Any):\n        pass\n\n    @property\n    @abstractmethod\n    def policy(self) -> str:\n        pass\n"
  },
  {
    "path": "gptcache/manager/eviction/distributed_cache.py",
    "content": "# pylint: disable=wrong-import-position\nfrom abc import ABC, abstractmethod\nfrom typing import List\n\nfrom gptcache.manager.eviction.base import EvictionBase\n\n\nclass DistributedEviction(EvictionBase, ABC):\n    \"\"\"\n    Base class for Distributed Eviction Strategy.\n    \"\"\"\n\n    @abstractmethod\n    def put(self, objs: List[str]):\n        pass\n\n    @abstractmethod\n    def get(self, obj: str):\n        pass\n\n    @property\n    @abstractmethod\n    def policy(self) -> str:\n        pass\n\n\nclass NoOpEviction(EvictionBase):\n    \"\"\"eviction: No Op Eviction Strategy. This is used when Eviction is managed internally\n    by the Databases such as Redis or memcached and no eviction is required to perform.\n\n    \"\"\"\n\n    @property\n    def policy(self) -> str:\n        return \"\"\n\n    def __init__(self, **kwargs):\n        pass\n\n    def put(self, objs: List[str]):\n        pass\n\n    def get(self, obj: str):\n        pass\n"
  },
  {
    "path": "gptcache/manager/eviction/manager.py",
    "content": "# pylint: disable=import-outside-toplevel\nfrom typing import Callable, List, Any\n\nfrom gptcache.utils.error import NotFoundError\n\n\nclass EvictionBase:\n    \"\"\"\n    EvictionBase to evict the cache data.\n    \"\"\"\n\n    def __init__(self):\n        raise EnvironmentError(\n            \"EvictionBase is designed to be instantiated, \"\n            \"please using the `EvictionBase.get(name, policy, maxsize, clean_size)`.\"\n        )\n\n    @staticmethod\n    def get(\n        name: str,\n        policy: str = \"LRU\",\n        maxsize: int = 1000,\n        clean_size: int = 0,\n        on_evict: Callable[[List[Any]], None] = None,\n        **kwargs\n    ):\n        if not clean_size:\n            clean_size = int(maxsize * 0.2)\n        if name in \"memory\":\n            from gptcache.manager.eviction.memory_cache import MemoryCacheEviction\n\n            eviction_base = MemoryCacheEviction(\n                policy, maxsize, clean_size, on_evict, **kwargs\n            )\n            return eviction_base\n        if name == \"redis\":\n            from gptcache.manager.eviction.redis_eviction import RedisCacheEviction\n            if policy == \"LRU\":\n                policy = None\n            eviction_base = RedisCacheEviction(policy=policy, **kwargs)\n            return eviction_base\n        if name == \"no_op_eviction\":\n            from gptcache.manager.eviction.distributed_cache import NoOpEviction\n            eviction_base = NoOpEviction()\n            return eviction_base\n\n        else:\n            raise NotFoundError(\"eviction base\", name)\n"
  },
  {
    "path": "gptcache/manager/eviction/memory_cache.py",
    "content": "from typing import Any, Callable, List\n\nimport cachetools\n\nfrom gptcache.manager.eviction.base import EvictionBase\n\n\ndef popitem_wrapper(func, wrapper_func, clean_size):\n    def wrapper(*args, **kwargs):\n        keys = []\n        try:\n            keys = [func(*args, **kwargs)[0] for _ in range(clean_size)]\n        except KeyError:\n            pass\n        wrapper_func(keys)\n\n    return wrapper\n\n\nclass MemoryCacheEviction(EvictionBase):\n    \"\"\"eviction: Memory Cache\n\n    :param policy: eviction strategy\n    :type policy: str\n    :param maxsize: the maxsize of cache data\n    :type maxsize: int\n    :param clean_size: will clean the size of data when the size of cache data reaches the max size\n    :type clean_size: int\n    :param on_evict: the function for cleaning the data in the store\n    :type  on_evict: Callable[[List[Any]], None]\n\n\n    \"\"\"\n\n    def __init__(\n            self,\n            policy: str = \"LRU\",\n            maxsize: int = 1000,\n            clean_size: int = 0,\n            on_evict: Callable[[List[Any]], None] = None,\n            **kwargs,\n    ):\n        self._policy = policy.upper()\n        if self._policy == \"LRU\":\n            self._cache = cachetools.LRUCache(maxsize=maxsize, **kwargs)\n        elif self._policy == \"LFU\":\n            self._cache = cachetools.LFUCache(maxsize=maxsize, **kwargs)\n        elif self._policy == \"FIFO\":\n            self._cache = cachetools.FIFOCache(maxsize=maxsize, **kwargs)\n        elif self._policy == \"RR\":\n            self._cache = cachetools.RRCache(maxsize=maxsize, **kwargs)\n        else:\n            raise ValueError(f\"Unknown policy {policy}\")\n\n        self._cache.popitem = popitem_wrapper(self._cache.popitem, on_evict, clean_size)\n\n    def put(self, objs: List[Any]):\n        for obj in objs:\n            self._cache[obj] = True\n\n    def get(self, obj: Any):\n        return self._cache.get(obj)\n\n    @property\n    def policy(self) -> str:\n        return self._policy\n"
  },
  {
    "path": "gptcache/manager/eviction/redis_eviction.py",
    "content": "# pylint: disable=wrong-import-position\nfrom abc import ABC\nfrom typing import List\n\nfrom gptcache.manager.eviction.distributed_cache import DistributedEviction\nfrom gptcache.utils import import_redis\n\n\nimport_redis()\nimport redis\nfrom redis_om import get_redis_connection\n\n\nclass RedisCacheEviction(DistributedEviction, ABC):\n    \"\"\"eviction: Distributed Cache Eviction Strategy using Redis.\n\n    :param host: the host of redis\n    :type host: str\n    :param port: the port of redis\n    :type port: int\n    :param policy: eviction strategy policy of redis such as allkeys-lru, volatile-lru, allkeys-random, volatile-random, etc.\n    refer https://redis.io/docs/reference/eviction/ for more information.\n    :type policy: str\n    :param maxsize: the maxsize of cache data\n    :type maxsize: int\n    :param on_evict: the function for cleaning the data in the store\n    :type  on_evict: Callable[[List[Any]], None]\n    :param maxmemory: the maxmemory of redis\n    :type maxmemory: str\n    :param global_key_prefix: the global key prefix\n    :type global_key_prefix: str\n    :param ttl: the ttl of the cache data\n    :type ttl: int\n    :param maxmemory_samples: Number of keys to sample when evicting keys\n    :type maxmemory_samples: int\n    :param kwargs: the kwargs\n    :type kwargs: Any\n    \"\"\"\n\n    def __init__(self,\n                 host=\"localhost\",\n                 port=6379,\n                 maxmemory: str = None,\n                 policy: str = None,\n                 global_key_prefix=\"gptcache\",\n                 ttl: int = None,\n                 maxmemory_samples: int = None,\n                 **kwargs):\n        self._redis = get_redis_connection(host=host, port=port, **kwargs)\n        if maxmemory:\n            self._redis.config_set(\"maxmemory\", maxmemory)\n        if maxmemory_samples:\n            self._redis.config_set(\"maxmemory-samples\", maxmemory_samples)\n        if policy:\n            self._redis.config_set(\"maxmemory-policy\", policy)\n            self._policy = policy.lower()\n\n        self._global_key_prefix = global_key_prefix\n        self._ttl = ttl\n\n    def _create_key(self, key: str) -> str:\n        return f\"{self._global_key_prefix}:evict:{key}\"\n\n    def put(self, objs: List[str], expire=False):\n        ttl = self._ttl if expire else None\n        for key in objs:\n            self._redis.set(self._create_key(key), \"True\", ex=ttl)\n\n    def get(self, obj: str):\n\n        try:\n            value = self._redis.get(self._create_key(obj))\n            # update key expire time when accessed\n            if self._ttl:\n                self._redis.expire(self._create_key(obj), self._ttl)\n            return value\n        except redis.RedisError:\n            print(f\"Error getting key {obj} from cache\")\n            return None\n\n    @property\n    def policy(self) -> str:\n        return self._policy\n"
  },
  {
    "path": "gptcache/manager/eviction_manager.py",
    "content": "class EvictionManager:\n    \"\"\"\n    EvictionManager to manager the eviction policy.\n\n    :param scalar_storage: CacheStorage to manager the scalar data.\n    :type scalar_storage: :class:`CacheStorage`\n    :param vector_base: VectorBase to manager the vector data.\n    :type vector_base:  :class:`VectorBase`\n    \"\"\"\n\n    MAX_MARK_COUNT = 5000\n    MAX_MARK_RATE = 0.1\n    BATCH_SIZE = 100000\n    REBUILD_CONDITION = 5\n\n    def __init__(self, scalar_storage, vector_base):\n        self._scalar_storage = scalar_storage\n        self._vector_base = vector_base\n        self.delete_count = 0\n\n    def check_evict(self):\n        mark_count = self._scalar_storage.count(state=-1)\n        all_count = self._scalar_storage.count(is_all=True)\n        if (\n            mark_count > self.MAX_MARK_COUNT\n            or mark_count / all_count > self.MAX_MARK_RATE\n        ):\n            return True\n        return False\n\n    def delete(self):\n        mark_ids = self._scalar_storage.get_ids(deleted=True)\n        self._scalar_storage.clear_deleted_data()\n        self._vector_base.delete(mark_ids)\n        self.delete_count += 1\n        if self.delete_count >= self.REBUILD_CONDITION:\n            self.rebuild()\n\n    def rebuild(self):\n        self._scalar_storage.clear_deleted_data()\n        ids = self._scalar_storage.get_ids(deleted=False)\n        self._vector_base.rebuild(ids)\n        self.delete_count = 0\n\n    def soft_evict(self, marked_keys):\n        self._scalar_storage.mark_deleted(marked_keys)\n"
  },
  {
    "path": "gptcache/manager/factory.py",
    "content": "import os\nfrom pathlib import Path\nfrom typing import Union, Callable\n\nfrom gptcache.manager import CacheBase, VectorBase, ObjectBase\nfrom gptcache.manager.data_manager import SSDataManager, MapDataManager\nfrom gptcache.manager.eviction import EvictionBase\nfrom gptcache.utils.log import gptcache_log\n\n\ndef manager_factory(manager=\"map\",\n                    data_dir=\"./\",\n                    max_size=1000,\n                    eviction_manager: str = \"memory\",\n                    get_data_container: Callable = None,\n                    scalar_params=None,\n                    vector_params=None,\n                    object_params=None,\n                    eviction_params=None\n                    ):\n    \"\"\"Factory of DataManager.\n       By using this factory method, you only need to specify the root directory of the data,\n       and it can automatically manage all the local files.\n\n    :param manager: Type of DataManager. Supports: Map, or {scalar_name},{vector_name}\n                    or {scalar_name},{vector_name},{object_name}\n    :type manager: str\n    :param data_dir: Root path for data storage.\n    :type data_dir: str\n    :param max_size: the max size for the LRU cache in MapDataManager, defaults to 1000.\n    :type max_size: int\n    :param eviction_manager: The eviction manager, defaults to \"memory\".\n                             It supports \"memory\" and \"redis\" and 'no_op_eviction'.\n    :type eviction_manager:  str\n    :param get_data_container: a Callable to get the data container, defaults to None.\n    :type get_data_container:  Callable\n\n    :param scalar_params: Params of scalar storage.\n    :type scalar_params:  dict\n\n    :param vector_params: Params of vector storage.\n    :type vector_params:  dict\n\n    :param object_params: Params of object storage.\n    :type object_params:  dict\n\n    :param eviction_params: Params of eviction.\n    :type eviction_params:  dict\n    :return: SSDataManager or MapDataManager.\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.manager import manager_factory\n\n            data_manager = manager_factory(\"sqlite,faiss\", data_dir=\"./workspace\", vector_params={\"dimension\": 128})\n\n            # or using manager factory enabled with redis cache instead of in-memory cache\n            from gptcache.manager import manager_factory\n            data_manager = manager_factory(\"redis,faiss\",\n                                           eviction_manager=\"redis\",\n                                           scalar_params={\"maxmemory\": \"2mb\",\n                                                          \"policy\": \"allkeys-lru\"\n                                                          },\n                                           vector_params={\"dimension\": 128},\n                                           eviction_params=dict(url=\"redis://localhost:6379\")\n                                           )\n    \"\"\"\n\n    Path(data_dir).mkdir(parents=True, exist_ok=True)\n    manager = manager.lower()\n\n    if manager == \"map\":\n        return MapDataManager(os.path.join(data_dir, \"data_map.txt\"), max_size, get_data_container)\n\n    db_infos = manager.split(\",\")\n    if len(db_infos) not in [2, 3]:\n        raise RuntimeError(\n            \"Error manager format: %s, the correct is \\\"{scalar},{vector},{object}\\\", object is optional\" % manager)\n\n    if len(db_infos) == 2:\n        db_infos.append(\"\")\n    scalar, vector, obj = db_infos\n\n    if scalar_params is None:\n        scalar_params = {}\n    if scalar == \"sqlite\":\n        scalar_params[\"sql_url\"] = \"sqlite:///\" + os.path.join(data_dir, \"sqlite.db\")\n    s = CacheBase(name=scalar, **scalar_params)\n\n    if vector_params is None:\n        vector_params = {}\n    local_vector_type = [\"faiss\", \"hnswlib\", \"docarray\"]\n    if vector in local_vector_type:\n        vector_params[\"index_path\"] = os.path.join(data_dir, f\"{vector}.index\")\n    elif vector == \"milvus\" and vector_params.get(\"local_mode\", False) is True:\n        vector_params[\"local_data\"] = os.path.join(data_dir, \"milvus_data\")\n    v = VectorBase(name=vector, **vector_params)\n\n    if object_params is None:\n        object_params = {}\n    if obj == \"local\":\n        object_params[\"path\"] = os.path.join(data_dir, \"local_obj\")\n    o = ObjectBase(name=obj, **object_params) if obj else None\n\n    if eviction_params is None:\n        eviction_params = {}\n\n    if  scalar == \"redis\" and eviction_manager == \"redis\":\n        # if cache manager and eviction manager are both redis, we use no op redis to avoid redundant operations\n        eviction_manager = \"no_op_eviction\"\n        gptcache_log.info(\"Since Scalar Storage and Eviction manager are both redis, \"\n                          \"no_op_eviction will be used to avoid redundant operations.\")\n        s.init_eviction_params(\n            maxmemory=eviction_params.get(\"maxmemory\", scalar_params.get(\"maxmemory\")),\n            policy=eviction_params.get(\"policy\", scalar_params.get(\"policy\")),\n            ttl=eviction_params.get(\"ttl\", scalar_params.get(\"ttl\")),\n            maxmemory_samples=eviction_params.get(\"maxmemory_samples\", scalar_params.get(\"maxmemory_samples\")),\n        )\n\n    if eviction_manager == \"memory\":\n        return get_data_manager(s, v, o, None,\n                                eviction_params.get(\"max_size\", 1000),\n                                eviction_params.get(\"clean_size\", None),\n                                eviction_params.get(\"eviction\", \"LRU\"),)\n\n    e = EvictionBase(\n        name=eviction_manager,\n        **eviction_params\n    )\n    return get_data_manager(s, v, o, e)\n\n\ndef get_data_manager(\n        cache_base: Union[CacheBase, str] = None,\n        vector_base: Union[VectorBase, str] = None,\n        object_base: Union[ObjectBase, str] = None,\n        eviction_base: Union[EvictionBase, str] = None,\n        max_size: int = 1000,\n        clean_size=None,\n        eviction: str = \"LRU\",\n        data_path: str = \"data_map.txt\",\n        get_data_container: Callable = None,\n):\n    \"\"\"Generate `SSDataManager` (with `cache_base`, `vector_base`, `max_size`, `clean_size` and `eviction` params),\n       or `MAPDataManager` (with `data_path`, `max_size` and `get_data_container` params) to manager the data.\n\n    :param cache_base: a CacheBase object, or the name of the cache storage, it is support 'sqlite', 'duckdb', 'postgresql',\n                       'mysql', 'mariadb', 'sqlserver' and  'oracle' now.\n    :type cache_base: :class:`CacheBase` or str\n    :param vector_base: a VectorBase object, or the name of the vector storage, it is support 'milvus', 'faiss' and\n                        'chromadb' now.\n    :type vector_base: :class:`VectorBase` or str\n    :param object_base: a object storage, supports local path and s3.\n    :type object_base: :class:`ObjectBase` or str\n    :param max_size: the max size for the LRU cache in MapDataManager, defaults to 1000.\n    :type max_size: int\n    :param eviction_base: a EvictionBase object, or the name of the eviction, it supports:\n     - 'memory'\n     - 'redis'\n     - 'no_op_eviction'.\n    :type eviction_base: :class:`EvictionBase` or str\n    :param clean_size: the clean size for the LRU cache in MapDataManager, defaults to None.\n    :type clean_size: int\n    :param eviction: the eviction policy for the LRU cache in MapDataManager, defaults to 'LRU'.\n    :type eviction: str\n    :param data_path: the path to save the map data, defaults to 'data_map.txt'.\n    :type data_path:  str\n    :param get_data_container: a Callable to get the data container, defaults to None.\n    :type get_data_container:  Callable\n\n\n    :return: SSDataManager or MapDataManager.\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.manager import get_data_manager, CacheBase, VectorBase\n\n            data_manager = get_data_manager(CacheBase('sqlite'), VectorBase('faiss', dimension=128))\n\n            # or using manager factory enabled with redis cache instead of in-memory cache\n            # example 1: using redis eviction base with sqlite cache base\n            data_manager = get_data_manager(cache_base=CacheBase(\"sqlite\"),\n                                        vector_base=VectorBase(\"faiss\", dimension=onnx.dimension),\n                                        eviction_base=EvictionBase(\"redis\",  maxmemory=\"0\", policy=\"noeviction\", ttl=1))\n\n           # example 2: using redis eviction base with redis cache base\n           # here no_op_eviction is used since `redis` cache base already handles evictions internally\n            data_manager = get_data_manager(cache_base=CacheBase(\"redis\",  maxmemory=\"0\", policy=\"noeviction\", ttl=1),\n                                        vector_base=VectorBase(\"faiss\", dimension=onnx.dimension),\n                                        eviction_base=EvictionBase(\"no_op_eviction\"))\n    \"\"\"\n    if not cache_base and not vector_base:\n        return MapDataManager(data_path, max_size, get_data_container)\n\n    if isinstance(cache_base, str):\n        cache_base = CacheBase(name=cache_base)\n    if isinstance(vector_base, str):\n        vector_base = VectorBase(name=vector_base)\n    if isinstance(object_base, str):\n        object_base = ObjectBase(name=object_base)\n    if isinstance(eviction_base, str) and eviction_base != \"memory\":\n        eviction_base = EvictionBase(name=eviction_base)\n    assert cache_base and vector_base\n    return SSDataManager(cache_base, vector_base, object_base, eviction_base, max_size, clean_size, eviction)\n"
  },
  {
    "path": "gptcache/manager/object_data/__init__.py",
    "content": "__all__ = [\"ObjectBase\"]\n\nfrom gptcache.utils.lazy_import import LazyImport\n\nobject_manager = LazyImport(\n    \"object_manager\", globals(), \"gptcache.manager.object_data.manager\"\n)\n\n\ndef ObjectBase(name: str, **kwargs):\n    \"\"\"Generate specific ObjectStorage with the configuration. For example, setting for\n       `ObjectBase` (with `name`) to manage LocalObjectStorage, S3 object storage.\n    \"\"\"\n    return object_manager.ObjectBase.get(name, **kwargs)\n"
  },
  {
    "path": "gptcache/manager/object_data/base.py",
    "content": "from abc import ABC, abstractmethod\nfrom typing import Any, List\n\n\nclass ObjectBase(ABC):\n    \"\"\"\n    Object storage base.\n    \"\"\"\n\n    @abstractmethod\n    def put(self, obj: Any) -> str:\n        pass\n\n    @abstractmethod\n    def get(self, obj: str) -> Any:\n        pass\n\n    @abstractmethod\n    def get_access_link(self, obj: str) -> str:\n        pass\n\n    @abstractmethod\n    def delete(self, to_delete: List[str]):\n        pass\n"
  },
  {
    "path": "gptcache/manager/object_data/local_storage.py",
    "content": "from typing import Any, List\nimport os\nimport uuid\nfrom pathlib import Path\nfrom gptcache.manager.object_data.base import ObjectBase\nfrom gptcache.utils.log import gptcache_log\n\n\nclass LocalObjectStorage(ObjectBase):\n    \"\"\"Local object storage\n    \"\"\"\n\n    def __init__(self, local_root: str):\n        self._local_root = Path(local_root)\n        self._local_root.mkdir(exist_ok=True)\n\n    def put(self, obj: Any) -> str:\n        f_path = self._local_root / str(uuid.uuid4())\n        with open(f_path, \"wb\") as f:\n            f.write(obj)\n        return str(f_path.absolute())\n\n    def get(self, obj: str) -> Any:\n        try:\n            with open(obj, \"rb\") as f:\n                return f.read()\n        except Exception: # pylint: disable=broad-except\n            return None\n\n    def get_access_link(self, obj: str, _: int = 3600):\n        return obj\n\n    def delete(self, to_delete: List[str]):\n        assert isinstance(to_delete, list)\n        for obj in to_delete:\n            try:\n                os.remove(obj)\n            except Exception:  # pylint: disable=broad-except\n                gptcache_log.warning(\"Can not find obj: %s\", obj)\n                pass\n"
  },
  {
    "path": "gptcache/manager/object_data/manager.py",
    "content": "from gptcache.utils.error import NotFoundError\n\n\nclass ObjectBase:\n    \"\"\"\n    ObjectBase to manager the object storage.\n\n    Generate specific ObjectStorage with the configuration. For example, setting for\n       `ObjectBase` (with `name`) to manage LocalObjectStorage, S3 object storage.\n\n    :param name: the name of the object storage, it is support 'local', 's3'.\n    :type name: str\n    :param path: the cache root of the LocalObjectStorage.\n    :type path: str\n\n    :param bucket: the bucket of s3.\n    :type bucket: str\n    :param path_prefix: s3 object prefix.\n    :type path_prefix: str\n    :param access_key: the access_key of s3.\n    :type access_key: str\n    :param secret_key: the secret_key of s3.\n    :type secret_key: str\n\n    :return: ObjectStorage.\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.manager import ObjectBase\n\n            obj_storage = ObjectBase('local', path='./')\n    \"\"\"\n\n    def __init__(self):\n        raise EnvironmentError(\n            \"CacheBase is designed to be instantiated, please using the `CacheBase.get(name)`.\"\n        )\n\n    @staticmethod\n    def get(name, **kwargs):\n        if name == \"local\":\n            from gptcache.manager.object_data.local_storage import LocalObjectStorage  # pylint: disable=import-outside-toplevel\n            object_base = LocalObjectStorage(kwargs.get(\"path\", \"./local_obj\"))\n        elif name == \"s3\":\n            from gptcache.manager.object_data.s3_storage import S3Storage  # pylint: disable=import-outside-toplevel\n            object_base = S3Storage(kwargs.get(\"path_prefix\"), kwargs.get(\"bucket\"),\n                                    kwargs.get(\"access_key\"), kwargs.get(\"secret_key\"),\n                                    kwargs.get(\"endpoint\"))\n        else:\n            raise NotFoundError(\"object store\", name)\n        return object_base\n"
  },
  {
    "path": "gptcache/manager/object_data/s3_storage.py",
    "content": "from typing import Any, List\nimport uuid\nimport os\n\nfrom gptcache.manager.object_data.base import ObjectBase\n\nfrom gptcache.utils import import_boto3\nfrom gptcache.utils.log import gptcache_log\n\nimport_boto3()\nimport boto3  # pylint: disable=wrong-import-position\n\n\nclass S3Storage(ObjectBase):\n    \"\"\"S3 storage\n    \"\"\"\n\n    def __init__(self, bucket: str, path_prefix: str, access_key: str, secret_key: str, endpoint: str = None):\n        self._session = boto3.Session(\n            aws_access_key_id=access_key,\n            aws_secret_access_key=secret_key\n        )\n        self._s3 = self._session.resource(\"s3\")\n        self._bucket = bucket\n        self._path_prefix = path_prefix\n        self._endpoint = endpoint\n\n    def put(self, obj: Any) -> str:\n        f_path = os.path.join(self._path_prefix, str(uuid.uuid4()))\n        self._s3.Bucket(self._bucket).put_object(Key=str(f_path), Body=obj)\n        return f_path\n\n    def get(self, obj: str) -> Any:\n        try:\n            return self._s3.Bucket(self._bucket).Object(obj).get()[\"Body\"].read()\n        except Exception:  # pylint: disable=broad-except\n            gptcache_log.error(\"obj:%s not exist\", obj)\n            return None\n\n    def get_access_link(self, obj: str, expires: int = 3600) -> str:\n        s3 = self._session.client(\"s3\")\n        link = s3.generate_presigned_url(\n            ClientMethod=\"get_object\",\n            ExpiresIn=expires,\n            Params={\n                \"Bucket\": self._bucket,\n                \"Key\": obj\n            }\n        )\n        if self._endpoint:\n            link = link.replace(\"s3.amazonaws.com/\" + self._bucket, self._endpoint)\n        return link\n\n    def delete(self, to_delete: List[str]):\n        self._s3.Bucket(self._bucket).delete_objects(Delete={\"Objects\": [{\"Key\": k} for k in to_delete]})\n"
  },
  {
    "path": "gptcache/manager/scalar_data/__init__.py",
    "content": "__all__ = [\"CacheBase\"]\n\nfrom gptcache.utils.lazy_import import LazyImport\n\nscalar_manager = LazyImport(\n    \"scalar_manager\", globals(), \"gptcache.manager.scalar_data.manager\"\n)\n\n\ndef CacheBase(name: str, **kwargs):\n    \"\"\"Generate specific CacheStorage with the configuration. For example, setting for\n       `SQLDataBase` (with `name`, `sql_url` and `table_name` params) to manage SQLite, PostgreSQL, MySQL, MariaDB, SQL Server and Oracle.\n    \"\"\"\n    return scalar_manager.CacheBase.get(name, **kwargs)\n"
  },
  {
    "path": "gptcache/manager/scalar_data/base.py",
    "content": "from abc import ABCMeta, abstractmethod\nfrom dataclasses import dataclass\nfrom datetime import datetime\nfrom enum import IntEnum\nfrom typing import Optional, Any, List, Union, Dict\n\nimport numpy as np\n\n\nclass DataType(IntEnum):\n    STR = 0\n    IMAGE_BASE64 = 1\n    IMAGE_URL = 2\n\n\n@dataclass\nclass Answer:\n    \"\"\"\n    data_type:\n        0: str\n        1: base64 image\n    \"\"\"\n\n    answer: Any\n    answer_type: int = DataType.STR\n\n\n@dataclass\nclass QuestionDep:\n    \"\"\"\n    QuestionDep\n    \"\"\"\n\n    name: str\n    data: str\n    dep_type: int = DataType.STR\n\n    @classmethod\n    def from_dict(cls, d: Dict):\n        return cls(name=d[\"name\"], data=d[\"data\"], dep_type=d[\"dep_type\"])\n\n\n@dataclass\nclass Question:\n    \"\"\"\n    Question\n    \"\"\"\n\n    content: str\n    deps: Optional[List[QuestionDep]] = None\n\n    @classmethod\n    def from_dict(cls, d: Dict):\n        deps = []\n        for dep in d[\"deps\"]:\n            deps.append(QuestionDep.from_dict(dep))\n        return cls(d[\"content\"], deps)\n\n\n@dataclass\nclass CacheData:\n    \"\"\"\n    CacheData\n    \"\"\"\n\n    question: Union[str, Question]\n    answers: List[Answer]\n    embedding_data: Optional[np.ndarray] = None\n    session_id: Optional[str] = None\n    create_on: Optional[datetime] = None\n    last_access: Optional[datetime] = None\n\n    def __init__(\n        self,\n        question,\n        answers,\n        embedding_data=None,\n        session_id=None,\n        create_on=None,\n        last_access=None,\n    ):\n        self.question = question\n        self.answers = []\n        if isinstance(answers, (str, Answer)):\n            answers = [answers]\n        for data in answers:\n            if isinstance(data, (list, tuple)):\n                self.answers.append(Answer(*data))\n            elif isinstance(data, Answer):\n                self.answers.append(data)\n            else:\n                self.answers.append(Answer(answer=data))\n        self.embedding_data = embedding_data\n        self.session_id = session_id\n        self.create_on = create_on\n        self.last_access = last_access\n\n\nclass CacheStorage(metaclass=ABCMeta):\n    \"\"\"\n    BaseStorage for scalar data.\n    \"\"\"\n\n    @abstractmethod\n    def create(self):\n        pass\n\n    @abstractmethod\n    def batch_insert(self, all_data: List[CacheData]):\n        pass\n\n    @abstractmethod\n    def get_data_by_id(self, key):\n        pass\n\n    @abstractmethod\n    def mark_deleted(self, keys):\n        pass\n\n    @abstractmethod\n    def clear_deleted_data(self):\n        pass\n\n    @abstractmethod\n    def get_ids(self, deleted=True):\n        pass\n\n    @abstractmethod\n    def count(self, state: int = 0, is_all: bool = False):\n        pass\n\n    def flush(self):\n        pass\n\n    @abstractmethod\n    def add_session(self, question_id, session_id, session_question):\n        pass\n\n    @abstractmethod\n    def list_sessions(self, session_id, key):\n        pass\n\n    @abstractmethod\n    def delete_session(self, keys):\n        pass\n\n    @abstractmethod\n    def report_cache(\n        self,\n        user_question,\n        cache_question,\n        cache_question_id,\n        cache_answer,\n        similarity_value,\n        cache_delta_time,\n    ):\n        pass\n\n    @abstractmethod\n    def close(self):\n        pass\n"
  },
  {
    "path": "gptcache/manager/scalar_data/dynamo_storage.py",
    "content": "from functools import reduce\nfrom random import randint, SystemRandom\nfrom datetime import datetime\nfrom typing import List, Optional, Dict\nfrom decimal import Decimal\nfrom gptcache.manager.scalar_data.base import CacheStorage, CacheData, Question, QuestionDep, Answer\nfrom gptcache.utils import import_boto3\nfrom gptcache.utils.log import gptcache_log\nfrom concurrent.futures import ThreadPoolExecutor, wait\nimport numpy as np\nimport math\n\nimport_boto3()\nfrom boto3.session import Session as AwsSession\nfrom boto3.dynamodb.conditions import Key as DynamoKey, Attr as DynamoAttr\nfrom boto3.dynamodb.types import Binary as DynamoBinary\n\nclass DynamoStorage(CacheStorage):\n    \"\"\"\n    DynamoDB storage using AWS's boto3 library.\n\n    :param aws_access_key_id: AWS access key ID. If not specified, boto3 will use the default resolution behavior.\n    :type host: str\n\n    :param aws_secret_access_key: AWS secret access key. If not specified, boto3 will use the default resolution behavior.\n    :type aws_secret_access_key str\n\n    :param aws_region_name: AWS region name. If not specified, boto3 will use the default resolution behavior.\n    :type aws_region_name: str\n\n    :param aws_profile_name: AWS profile name. If not specified, boto3 will use the default resolution behavior.\n    :type aws_profile_name: str\n\n    :param aws_endpoint_url: AWS endpoint URL. This is normally handled automatically but is exposed to allow overriding for testing purposes\n                            (using something like LocalStack or dynamoDB-local for example).\n    :type aws_endpoint_url: str\n    \"\"\"\n\n    max_cardinality_suffix = 10\n\n    def __init__(\n        self,\n        aws_access_key_id: str = None,\n        aws_secret_access_key: str = None,\n        aws_region_name: str = None,\n        aws_profile_name: str = None,\n        aws_endpoint_url: str = None,\n    ):\n        self._aws_session = AwsSession(\n            aws_access_key_id = aws_access_key_id,\n            aws_secret_access_key = aws_secret_access_key,\n            region_name = aws_region_name,\n            profile_name = aws_profile_name,\n        )\n        self._dynamo = self._aws_session.resource(\n            \"dynamodb\",\n            endpoint_url=aws_endpoint_url,\n        )\n        self.create()\n\n    def create(self):\n        # NOTE: We use PAY_PER_REQUEST billing mode as per AWS's recommendations for unpredicatble workloads since it's\n        #       being used as a cache and so we won't know how many reads/writes we'll need to perform ahead of time.\n        recommended_billing_mode = \"PAY_PER_REQUEST\"\n\n        if not self._does_table_already_exist_and_is_active(\"gptcache_questions\"):\n            self._dynamo.create_table(\n                TableName = \"gptcache_questions\",\n                KeySchema = [\n                    {\"AttributeName\": \"pk\", \"KeyType\": \"HASH\"},\n                    {\"AttributeName\": \"id\", \"KeyType\": \"RANGE\"},\n                ],\n                AttributeDefinitions = [\n                    {\"AttributeName\": \"pk\", \"AttributeType\": \"S\"},\n                    {\"AttributeName\": \"id\", \"AttributeType\": \"S\"},\n\n                    # You might be wondering why the 'deleted' attribute is a string value, not a BOOL.\n                    # This is because we need to efficiently be able to query items that are soft-deleted. This is normally\n                    # done with a GSI (GlobalSecondaryIndex). However, GSIs don't support the BOOL type due to low cardinality.\n                    # So we use a string instead.\n                    {\"AttributeName\": \"deleted\", \"AttributeType\": \"S\"},\n                ],\n                GlobalSecondaryIndexes = [\n                    {\n                        \"IndexName\": \"gsi_items_by_type\",\n                        \"KeySchema\": [{\"AttributeName\": \"id\", \"KeyType\": \"HASH\"}],\n                        \"Projection\": {\"ProjectionType\": \"ALL\"},\n                    },\n                    {\n                        \"IndexName\": \"gsi_questions_by_deletion_status\",\n                        \"KeySchema\": [{\"AttributeName\": \"deleted\", \"KeyType\": \"HASH\"}],\n                        \"Projection\": {\"ProjectionType\": \"ALL\"},\n                    },\n                ],\n                BillingMode = recommended_billing_mode,\n            )\n\n        if not self._does_table_already_exist_and_is_active(\"gptcache_reports\"):\n            self._dynamo.create_table(\n                TableName = \"gptcache_reports\",\n                KeySchema = [\n                    {\"AttributeName\": \"id\", \"KeyType\": \"HASH\"},\n                ],\n                AttributeDefinitions = [\n                    {\"AttributeName\": \"id\", \"AttributeType\": \"S\"},\n                ],\n                BillingMode = recommended_billing_mode,\n            )\n\n    def batch_insert(self, all_data: List[CacheData]) -> List[str]:\n        \"\"\"\n        Inserts a list of CacheData objects into the DynamoDB table and returns the ids of the inserted rows\n        \"\"\"\n        table = self._dynamo.Table(\"gptcache_questions\")\n        table.wait_until_exists()\n        ids = []\n\n        with table.batch_writer() as batch:\n            for item in all_data:\n                item_deps = item.question.deps if isinstance(item.question, Question) and item.question.deps is not None else []\n                new_id_without_prefix = self._generate_id()\n                new_id = f\"questions#{new_id_without_prefix}\"\n                ids.append(new_id_without_prefix)\n                creation_time = item.create_on if item.create_on is not None else datetime.utcnow()\n\n                batch.put_item(\n                    Item = self._strip_all_props_with_none_values({\n                        \"pk\": new_id,\n                        \"id\": new_id,\n                        \"question\": self._question_text(item.question),\n                        \"answers\": [self._serialize_answer(answer) for answer in item.answers],\n                        \"deps\": [self._serialize_question_deps(dep) for dep in item_deps],\n                        #\"session_id\": item.session_id if item.session_id is not None else None,\n                        \"create_on\": creation_time.isoformat(timespec=\"microseconds\"),\n                        \"last_access\": item.last_access.isoformat(timespec=\"microseconds\") if item.last_access is not None else None,\n                        \"embedding_data\": DynamoBinary(item.embedding_data.tobytes()) if item.embedding_data is not None else None,\n                        \"deleted\": self._serialize_deleted_value(False),\n                    })\n                )\n\n                if item.session_id:\n                    batch.put_item(\n                        Item = self._strip_all_props_with_none_values({\n                            \"pk\": new_id,\n                            \"id\": f\"sessions#{item.session_id}\",\n                            \"question\": self._question_text(item.question),\n                        })\n                    )\n        return ids\n\n    def get_data_by_id(self, key: str) -> Optional[CacheData]:\n        table = self._dynamo.Table(\"gptcache_questions\")\n        table.wait_until_exists()\n\n        key_with_prefix = f\"questions#{key}\"\n\n        # get all sessions that contain this question\n        sessions_containing_question = table.query(\n            KeyConditionExpression = DynamoKey(\"pk\").eq(key_with_prefix) & DynamoKey(\"id\").begins_with(\"sessions#\"),\n        )[\"Items\"]\n\n        # then get the question info itself\n        response = table.get_item(\n            Key={\"pk\": key_with_prefix, \"id\": key_with_prefix},\n        )\n\n        if \"Item\" not in response or self._deserialize_deleted_value(response[\"Item\"][\"deleted\"]):\n            return None\n\n        # after it's accessed, we need to update that particular item's last_access timestamp\n        table.update_item(\n            Key={\"pk\": key_with_prefix, \"id\": key_with_prefix},\n            UpdateExpression=\"SET last_access = :last_access\",\n            ExpressionAttributeValues={\n                \":last_access\": datetime.utcnow().isoformat(timespec=\"microseconds\"),\n            },\n        )\n\n        cache_data = self._response_item_to_cache_data(response[\"Item\"])\n        cache_data.session_id = [session[\"id\"].split(\"#\")[1] for session in sessions_containing_question]\n        return cache_data\n\n    def mark_deleted(self, keys: str):\n        table = self._dynamo.Table(\"gptcache_questions\")\n        table.wait_until_exists()\n\n        with table.batch_writer() as batch:\n            for key in keys:\n                batch.put_item(\n                    Item={\n                        \"pk\": f\"questions#{key}\",\n                        \"id\": f\"questions#{key}\",\n                        \"deleted\": self._serialize_deleted_value(True),\n                    }\n                )\n\n    def clear_deleted_data(self):\n        # Since the 'deleted' attribute is a string, we need to query for all items that have a 'deleted' value of\n        # 'True_*'. Then we can call delete on them.\n        table = self._dynamo.Table(\"gptcache_questions\")\n        table.wait_until_exists()\n\n        # Build out all possible values for the 'deleted' attribute and query it in 1 go. It cannot be done as one\n        # network call unfortunately due to limitations of DynamoDB. The DB only allows running queries on the GSI\n        # with a SINGLE, concrete value for the partition key.\n        #\n        # To address this, we're gonna spin up a thread pool and query concurrently\n        with ThreadPoolExecutor(max_workers = 10) as executor:\n            futures = []\n            for i in range(1, self.max_cardinality_suffix + 1):\n                futures.append(executor.submit(\n                    table.query,\n                    IndexName = \"gsi_questions_by_deletion_status\",\n                    KeyConditionExpression = DynamoKey(\"deleted\").eq(f\"True_{i}\")\n                ))\n\n            completed_responses, incomplete_responses = wait(futures, timeout = 10)\n\n            if len(incomplete_responses) > 0:\n                gptcache_log.error(\n                    \"\"\"\n                    Unable to complete deletion of all soft-deleted items due to request timeout.\n                    Some items may remain in the cache. %s\",\n                    \"\"\",\n                    incomplete_responses,\n                )\n\n        soft_deleted_entries_per_partition = [response.result()[\"Items\"] for response in completed_responses]\n        soft_deleted_entries = reduce(lambda x, y: x + y, soft_deleted_entries_per_partition)\n\n        keys = [entry[\"id\"] for entry in soft_deleted_entries]\n\n        with table.batch_writer() as batch:\n            for key in keys:\n                batch.delete_item(\n                    Key={\"pk\": key, \"id\": key},\n                )\n\n    def get_ids(self, deleted: bool = True) -> List[str]:\n        table = self._dynamo.Table(\"gptcache_questions\")\n        table.wait_until_exists()\n\n        def run_scan_operation(last_evaluated_key):\n            filter_expression = (\n                DynamoAttr(\"id\").begins_with(\"questions#\") & DynamoAttr(\"deleted\").begins_with(f\"{deleted}_\")\n            )\n\n            if last_evaluated_key is None:\n                return table.scan(\n                    Select = \"SPECIFIC_ATTRIBUTES\",\n                    ProjectionExpression = \"pk\",\n                    FilterExpression = filter_expression,\n                )\n            return table.scan(\n                Select = \"SPECIFIC_ATTRIBUTES\",\n                ProjectionExpression = \"pk\",\n                FilterExpression = filter_expression,\n                ExclusiveStartKey = last_evaluated_key,\n            )\n\n        all_responses = self._fetch_all_pages(run_scan_operation)\n        all_items = reduce(lambda x, y: x + y, [response[\"Items\"] for response in all_responses])\n        all_ids = [int(item[\"pk\"].replace(\"questions#\", \"\")) for item in all_items]\n        return all_ids\n\n    def count(self, state: int = 0, is_all: bool = False) -> int:\n        table = self._dynamo.Table(\"gptcache_questions\")\n        table.wait_until_exists()\n        key_condition_expression = DynamoAttr(\"id\").begins_with(\"questions#\")\n\n        if not is_all and state == 0:\n            key_condition_expression &= DynamoAttr(\"deleted\").begins_with(\"False_\")\n        elif not is_all and state != 0:\n            key_condition_expression &= DynamoAttr(\"deleted\").begins_with(\"True_\")\n\n        # TODO: find out if specifying a \"COUNT\" select type results in a single page or not. For now, assume the worst\n        #       and attempt pagination anyway.\n        def run_scan_operation(last_evaluated_key):\n            if last_evaluated_key is None:\n                return table.scan(\n                    IndexName = \"gsi_questions_by_deletion_status\",\n                    FilterExpression = key_condition_expression,\n                    Select = \"COUNT\",\n                )\n\n            return table.scan(\n                IndexName = \"gsi_questions_by_deletion_status\",\n                FilterExpression = key_condition_expression,\n                ExclusiveStartKey = last_evaluated_key,\n                Select = \"COUNT\",\n            )\n\n        all_responses = self._fetch_all_pages(run_scan_operation)\n        return sum([response[\"Count\"] for response in all_responses])\n\n    def add_session(self, question_id: str, session_id: str, session_question: str):\n        table = self._dynamo.Table(\"gptcache_questions\")\n        table.wait_until_exists()\n\n        table.put_item(\n            Item = {\n                \"pk\": f\"questions#{question_id}\",\n                \"id\": f\"sessions#{session_id}\",\n                \"question\": session_question,\n            },\n        )\n\n    def list_sessions(self, session_id = None, key = None) -> List[str]:\n        table = self._dynamo.Table(\"gptcache_questions\")\n        table.wait_until_exists()\n\n        if session_id and key:\n            response = table.query(\n                IndexName = \"gsi_items_by_type\",\n                ProjectionExpression = \"id\",\n                KeyConditionExpression = DynamoKey(\"id\").eq(f\"sessions#{session_id}\"),\n                FilterExpression = DynamoAttr(\"pk\").eq(f\"questions#{key}\"),\n            )\n        elif session_id:\n            response = table.query(\n                IndexName = \"gsi_items_by_type\",\n                ProjectionExpression = \"id\",\n                KeyConditionExpression = DynamoKey(\"id\").eq(f\"sessions#{session_id}\"),\n            )\n        elif key:\n            response = table.query(\n                ProjectionExpression = \"id\",\n                KeyConditionExpression = DynamoKey(\"pk\").eq(f\"questions#{key}\") & DynamoKey(\"id\").begins_with(\"sessions#\"),\n            )\n        else:\n            def run_scan_operation(last_evaluated_key):\n                filter_expression = DynamoAttr(\"id\").begins_with(\"sessions#\")\n\n                if last_evaluated_key is None:\n                    return table.scan(\n                        ProjectionExpression = \"id\",\n                        FilterExpression = filter_expression,\n                    )\n                return table.scan(\n                    ProjectionExpression = \"id\",\n                    FilterExpression = filter_expression,\n                    ExclusiveStartKey = last_evaluated_key,\n                )\n\n            response = self._fetch_all_pages(run_scan_operation)\n\n            # since these are paginated results, merge all items in each response to a new dict\n            response = reduce(lambda x, y: { \"Items\": x[\"Items\"] + y[\"Items\"] }, response)\n\n        # since sessions can be the shared across multiple items, we need to dedupe the results\n        return list({ item[\"id\"].replace(\"questions#\", \"\") for item in response[\"Items\"] })\n\n    def delete_session(self, keys: List[str]):\n        table = self._dynamo.Table(\"gptcache_questions\")\n        table.wait_until_exists()\n\n        # first find all items with that session_id\n        # unfortunately, there is no \"batch get\" operation on a GSI. So we need to spin up a thread pool and query\n        # concurrently\n        with ThreadPoolExecutor(max_workers = 10) as executor:\n            futures = []\n            for key in keys:\n                futures.append(executor.submit(\n                    table.query,\n                    IndexName = \"gsi_items_by_type\",\n                    Select = \"SPECIFIC_ATTRIBUTES\",\n                    ProjectionExpression = \"pk, id\",\n                    KeyConditionExpression = DynamoKey(\"id\").eq(f\"sessions#{key}\")\n                ))\n\n            completed_responses, incomplete_responses = wait(futures, timeout = 10)\n\n            if len(incomplete_responses) > 0:\n                gptcache_log.error(\n                    \"Unable to query all questions in session due to request timeout. %s\",\n                    incomplete_responses,\n                )\n\n        items_per_session = [response.result()[\"Items\"] for response in completed_responses]\n        all_relevant_items = reduce(lambda x, y: x + y, items_per_session)\n\n        # now we need to delete all items with those keys to clear out all session data.\n        with table.batch_writer() as batch:\n            for item in all_relevant_items:\n                batch.delete_item(\n                    Key={\"pk\": item[\"pk\"], \"id\": item[\"id\"]},\n                )\n\n    def report_cache(\n        self,\n        user_question,\n        cache_question,\n        cache_question_id,\n        cache_answer,\n        similarity_value,\n        cache_delta_time,\n    ):\n        table = self._dynamo.Table(\"gptcache_reports\")\n        table.wait_until_exists()\n\n        table.put_item(\n            Item={\n                \"id\": str(self._generate_id()),\n                \"user_question\": user_question,\n                \"cache_question\": cache_question,\n                \"cache_question_id\": cache_question_id,\n                \"cache_answer\": cache_answer,\n                \"similarity\": (\n                    # DynamoDB doesn't support floats; only decimals\n                    Decimal(str(similarity_value))\n                    if isinstance(similarity_value, float)\n                    else similarity_value\n                ),\n                \"cache_delta_time\": Decimal(str(cache_delta_time)),\n            }\n        )\n\n    def close(self):\n        pass\n\n    def _does_table_already_exist_and_is_active(self, table_name: str) -> bool:\n        try:\n            self._dynamo.Table(table_name).table_status in [\"ACTIVE\", \"UPDATING\"]\n        except self._dynamo.meta.client.exceptions.ResourceNotFoundException:\n            return False\n        return True\n\n    def _wait_until_table_exists(self, table_name: str):\n        \"\"\"\n        When tables are created in DynamoDB, they are not immediately available as table creation is asynchronous.\n        This function will block until the table is available in order to ensure we don't attempt to perform any\n        operations on a table that doesn't exist yet.\n        \"\"\"\n        self._dynamo.Table(table_name).wait_until_exists()\n\n\n    def _response_item_to_cache_data(self, question_resp: Dict) -> Optional[CacheData]:\n        deps = question_resp[\"deps\"] if \"deps\" in question_resp else []\n        return CacheData(\n            question = Question(\n                content = question_resp[\"question\"],\n                deps = [self._deserialize_question_dep(dep) for dep in deps]\n            ),\n            answers = [self._deserialize_answer(answer) for answer in question_resp[\"answers\"]],\n            embedding_data = np.frombuffer(question_resp[\"embedding_data\"].value, dtype=np.float32),\n            create_on = datetime.fromisoformat(question_resp[\"create_on\"]),\n            last_access = datetime.fromisoformat(question_resp[\"last_access\"]) if \"last_access\" in question_resp else None,\n        )\n\n    def _fetch_all_pages(self, scan_fn) -> List[Dict]:\n        \"\"\"\n        We often have to resort to scan operations in Dynamo which could result in a lot of data being returned. To ensure,\n        we get all the data, we need to paginate through the results. This function handles that for us.\n\n        :param scan_fn: The function to call to perform the scan operation. It must take in a last_evaluated_key to pass\n                        along to Dynamo and return a Dynamo response object\n\n        see: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb/table/scan.html\n        \"\"\"\n        all_responses = []\n        last_evaluated_key = None\n\n        while True:\n            response = scan_fn(last_evaluated_key)\n            all_responses.append(response)\n\n            if \"LastEvaluatedKey\" in response and len(response[\"LastEvaluatedKey\"].keys()) > 0:\n                last_evaluated_key = response[\"LastEvaluatedKey\"]\n            else:\n                break\n\n        return all_responses\n\n    def _question_text(self, question) -> str:\n        return question if isinstance(question, str) else question.content\n\n    def _generate_id(self):\n        \"\"\"\n        Generates a unique ID for a row. Unfortunately, we cannot use something like uuid4() as scalar storage\n        implmentations need to return an integer based id.\n\n        It seems the underlying adapter that uses this class converts the ids to C longs which are 64-bit signed\n        so we'll use that as our upper bound.\n\n        We use systemrandom for better randomness.\n        \"\"\"\n        return SystemRandom().randint(1, math.pow(2, 63) - 1)\n\n    def _strip_all_props_with_none_values(self, obj: Dict) -> Dict:\n        sanitized = {}\n        for k, v in obj.items():\n            if v is not None:\n                sanitized[k] = v\n        return sanitized\n\n    def _serialize_deleted_value(self, value: bool, suffix_value = randint(1, max_cardinality_suffix)) -> str:\n        \"\"\"\n        We need to be able to query and filter on the 'deleted' attribute. However, in order for us to use this value\n        as an indexable value, it cannot be a BOOL (DynamoDB doesn't support it due to low cardinaility).\n\n        To increase the cardinality, we first convert the boolean to a string and append a random integer.\n\n        see: https://aws.amazon.com/blogs/database/how-to-design-amazon-dynamodb-global-secondary-indexes/\n        \"\"\"\n        return f\"{value}_{suffix_value}\"\n\n    def _serialize_answer(self, answer: Answer) -> Dict:\n        return { \"answer\": answer.answer, \"answer_type\": answer.answer_type.value }\n\n    def _serialize_question_deps(self, dep: QuestionDep) -> Dict:\n        return { \"name\": dep.name, \"data\": dep.data, \"dep_type\": dep.dep_type.value }\n\n    def _deserialize_deleted_value(self, value: str) -> bool:\n        return value.startswith(\"True_\")\n\n    def _deserialize_question_dep(self, dep: Dict) -> QuestionDep:\n        return QuestionDep(name = dep[\"name\"], data = dep[\"data\"], dep_type = int(dep[\"dep_type\"]))\n\n    def _deserialize_answer(self, answer: Dict) -> Answer:\n        return Answer(answer = answer[\"answer\"], answer_type = int(answer[\"answer_type\"]))\n"
  },
  {
    "path": "gptcache/manager/scalar_data/manager.py",
    "content": "from gptcache.utils import import_sql_client\nfrom gptcache.utils.error import NotFoundError\n\nSQL_URL = {\n    \"sqlite\": \"sqlite:///./sqlite.db\",\n    \"duckdb\": \"duckdb:///./duck.db\",\n    \"postgresql\": \"postgresql+psycopg2://postgres:123456@127.0.0.1:5432/postgres\",\n    \"mysql\": \"mysql+pymysql://root:123456@127.0.0.1:3306/mysql\",\n    \"mariadb\": \"mariadb+pymysql://root:123456@127.0.0.1:3307/mysql\",\n    \"sqlserver\": \"mssql+pyodbc://sa:Strongpsw_123@127.0.0.1:1434/msdb?driver=ODBC+Driver+17+for+SQL+Server\",\n    \"oracle\": \"oracle+cx_oracle://oracle:123456@127.0.0.1:1521/?service_name=helowin&encoding=UTF-8&nencoding=UTF-8\",\n}\nTABLE_NAME = \"gptcache\"\n\n\n# pylint: disable=import-outside-toplevel\nclass CacheBase:\n    \"\"\"\n    CacheBase to manager the cache storage.\n\n    Generate specific CacheStorage with the configuration. For example, setting for\n       `SQLDataBase` (with `name`, `sql_url` and `table_name` params) to manage SQLite, PostgreSQL, MySQL, MariaDB, SQL Server and Oracle.\n\n    :param name: the name of the cache storage, it is support 'sqlite', 'postgresql', 'mysql', 'mariadb', 'sqlserver' and  'oracle' now.\n    :type name: str\n    :param sql_url: the url of the sql database for cache, such as '<db_type>+<db_driver>://<username>:<password>@<host>:<port>/<database>',\n        and the default value is related to the `cache_store` parameter,\n\n        - 'sqlite:///./sqlite.db' for 'sqlite',\n        - 'duckdb:///./duck.db' for 'duckdb',\n        - 'postgresql+psycopg2://postgres:123456@127.0.0.1:5432/postgres' for 'postgresql',\n        - 'mysql+pymysql://root:123456@127.0.0.1:3306/mysql' for 'mysql',\n        - 'mariadb+pymysql://root:123456@127.0.0.1:3307/mysql' for 'mariadb',\n        - 'mssql+pyodbc://sa:Strongpsw_123@127.0.0.1:1434/msdb?driver=ODBC+Driver+17+for+SQL+Server' for 'sqlserver',\n        - 'oracle+cx_oracle://oracle:123456@127.0.0.1:1521/?service_name=helowin&encoding=UTF-8&nencoding=UTF-8' for 'oracle'.\n    :type sql_url: str\n    :param table_name: the table name for sql database, defaults to 'gptcache'.\n    :type table_name: str\n    :param table_len_config: the table length config for sql database, defaults to {}. the key includes:\n\n        - 'question_question': the question column size in the question table, default to 3000.\n        - 'answer_answer': the answer column size in the answer table, default to 3000.\n        - 'session_id': the session id column size in the session table, default to 1000.\n        - 'dep_name': the name column size in the dep table, default to 1000.\n        - 'dep_data': the data column size in the dep table, default to 3000.\n    :type table_len_config: dict\n\n    :return: CacheStorage.\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.manager import CacheBase\n\n            cache_base = CacheBase('sqlite')\n    \"\"\"\n\n    def __init__(self):\n        raise EnvironmentError(\n            \"CacheBase is designed to be instantiated, please using the `CacheBase.get(name)`.\"\n        )\n\n    @staticmethod\n    def get(name, **kwargs):\n        if name in [\n            \"sqlite\",\n            \"duckdb\",\n            \"postgresql\",\n            \"mysql\",\n            \"mariadb\",\n            \"sqlserver\",\n            \"oracle\",\n        ]:\n            from gptcache.manager.scalar_data.sql_storage import SQLStorage\n\n            sql_url = kwargs.get(\"sql_url\", SQL_URL[name])\n            table_name = kwargs.get(\"table_name\", TABLE_NAME)\n            table_len_config = kwargs.get(\"table_len_config\", {})\n            import_sql_client(name)\n            cache_base = SQLStorage(\n                db_type=name,\n                url=sql_url,\n                table_name=table_name,\n                table_len_config=table_len_config,\n            )\n        elif name == \"mongo\":\n            from gptcache.manager.scalar_data.mongo import MongoStorage\n\n            return MongoStorage(\n                host=kwargs.get(\"mongo_host\", \"localhost\"),\n                port=kwargs.get(\"mongo_port\", 27017),\n                dbname=kwargs.get(\"dbname\", TABLE_NAME),\n                username=kwargs.get(\"username\"),\n                password=kwargs.get(\"password\")\n            )\n        elif name == \"redis\":\n            from gptcache.manager.scalar_data.redis_storage import RedisCacheStorage\n\n            return RedisCacheStorage(\n                host=kwargs.pop(\"redis_host\", \"localhost\"),\n                port=kwargs.pop(\"redis_port\", 6379),\n                global_key_prefix=kwargs.pop(\"global_key_prefix\", TABLE_NAME),\n                **kwargs\n            )\n        elif name == \"dynamo\":\n            from gptcache.manager.scalar_data.dynamo_storage import DynamoStorage\n\n            return DynamoStorage(\n                aws_access_key_id=kwargs.get(\"aws_access_key_id\"),\n                aws_secret_access_key=kwargs.get(\"aws_secret_access_key\"),\n                aws_region_name=kwargs.get(\"region_name\"),\n                aws_profile_name=kwargs.get(\"aws_profile_name\"),\n                aws_endpoint_url=kwargs.get(\"endpoint_url\"),\n            )\n        else:\n            raise NotFoundError(\"cache store\", name)\n        return cache_base\n"
  },
  {
    "path": "gptcache/manager/scalar_data/mongo.py",
    "content": "from datetime import datetime\nfrom typing import List, Optional\n\nimport numpy as np\n\nfrom gptcache.manager.scalar_data.base import (\n    CacheStorage,\n    CacheData,\n    Question,\n    QuestionDep,\n)\nfrom gptcache.utils import import_mongodb\n\nimport_mongodb()\n\n# pylint: disable=C0413\nfrom mongoengine import Document\nfrom mongoengine import fields\nimport mongoengine as me\n\n\ndef get_models():\n    class Questions(Document):\n        \"\"\"\n        questions collection\n        \"\"\"\n\n        meta = {\"collection\": \"questions\", \"indexes\": [\"deleted\"]}\n        _id = fields.SequenceField()\n        question = fields.StringField()\n        create_on = fields.DateTimeField(default=datetime.now())\n        last_access = fields.DateTimeField(default=datetime.now())\n        embedding_data = fields.BinaryField()\n        deleted = fields.IntField(default=0)\n\n        @property\n        def oid(self):\n            return self._id\n\n    class Answers(Document):\n        \"\"\"\n        answer collection\n        \"\"\"\n\n        _id = fields.SequenceField()\n        meta = {\"collection\": \"answers\", \"indexes\": [\"question_id\"]}\n        answer = fields.StringField()\n        answer_type = fields.IntField()\n        question_id = fields.IntField()\n\n        @property\n        def oid(self):\n            return self._id\n\n    class Sessions(Document):\n        \"\"\"\n        session collection\n        \"\"\"\n\n        meta = {\"collection\": \"sessions\", \"indexes\": [\"question_id\"]}\n        _id = fields.SequenceField()\n        session_id = fields.StringField()\n        session_question = fields.StringField()\n        question_id = fields.IntField()\n\n        @property\n        def oid(self):\n            return self._id\n\n    class QuestionDeps(Document):\n        \"\"\"\n        Question Dep collection\n        \"\"\"\n\n        meta = {\"collection\": \"question_deps\", \"indexes\": [\"question_id\"]}\n        _id = fields.SequenceField()\n        question_id = fields.IntField()\n        dep_name = fields.StringField()\n        dep_data = fields.StringField()\n        dep_type = fields.IntField()\n\n        @property\n        def oid(self):\n            return self._id\n\n    class Report(Document):\n        \"\"\"\n        Report\n        \"\"\"\n\n        meta = {\n            \"collection\": \"report\",\n            \"indexes\": [\"cache_question_id\", \"similarity\", \"cache_delta_time\"],\n        }\n        _id = fields.SequenceField()\n        user_question = fields.StringField()\n        cache_question_id = fields.IntField()\n        cache_question = fields.StringField()\n        cache_answer = fields.StringField()\n        similarity = fields.FloatField()\n        cache_delta_time = fields.FloatField()\n        cache_time = fields.DateTimeField(default=datetime.now())\n        extra = fields.StringField()\n\n        @property\n        def oid(self):\n            return self._id\n\n    return Questions, Answers, QuestionDeps, Sessions, Report\n\n\nclass MongoStorage(CacheStorage):\n    \"\"\"\n    Using mongoengine as ORM to manage mongodb documents.\n    By default, data is stored 'gptcache' database and following collections are created to store the data\n        1. 'sessions'\n        2. 'answers'\n        3. 'questions'\n        4. 'question_deps'\n\n    :param host: mongodb host, default value 'localhost'\n    :type host: str\n    :param port: mongodb port, default value 27017\n    :type host: int\n    :param dbname: database name, default value 'gptcache'\n    :type host: str\n    :param : Mongo database name, default value 'gptcache'\n    :type host: str\n    :param username: username for authentication, default value None\n    :type host: str\n    :param password: password for authentication, default value None\n    :type host: str\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.manager import CacheBase, manager_factory\n\n            cache_store = CacheBase('mongo',\n                mongo_host=\"localhost\",\n                mongo_port=27017,\n                dbname=\"gptcache\",\n                username=None,\n                password=None,\n            )\n            # or\n            data_manager = manager_factory(\"mongo,faiss\", data_dir=\"./workspace\",\n                scalar_params={\n                    \"mongo_host\": \"localhost\",\n                    \"mongo_port\": 27017,\n                    \"dbname\"=\"gptcache\",\n                    \"username\"=\"\",\n                    \"password\"=\"\",\n                },\n                vector_params={\"dimension\": 128},\n            )\n    \"\"\"\n\n    def __init__(\n        self,\n        host: str = \"localhost\",\n        port: int = 27017,\n        dbname: str = \"gptcache\",\n        username: str = None,\n        password: str = None,\n        **kwargs\n    ):\n        self.con = me.connect(\n            host=host,\n            port=port,\n            db=dbname,\n            username=username,\n            password=password,\n            **kwargs\n        )\n        (\n            self._ques,\n            self._answer,\n            self._ques_dep,\n            self._session,\n            self._report,\n        ) = get_models()\n\n    def create(self):\n        pass\n\n    def _insert(self, data: CacheData):\n        ques_data = self._ques(\n            question=data.question\n            if isinstance(data.question, str)\n            else data.question.content,\n            embedding_data=data.embedding_data.tobytes()\n            if data.embedding_data is not None\n            else None,\n        )\n        ques_data.save()\n        if isinstance(data.question, Question) and data.question.deps is not None:\n            all_deps = []\n            for dep in data.question.deps:\n                all_deps.append(\n                    self._ques_dep(\n                        question_id=ques_data.oid,\n                        dep_name=dep.name,\n                        dep_data=dep.data,\n                        dep_type=dep.dep_type,\n                    )\n                )\n            self._ques_dep.objects.insert(all_deps)\n\n        answers = data.answers if isinstance(data.answers, list) else [data.answers]\n        all_data = []\n        for answer in answers:\n            answer_data = self._answer(\n                question_id=ques_data.oid,\n                answer=answer.answer,\n                answer_type=int(answer.answer_type),\n            )\n            all_data.append(answer_data)\n        self._answer.objects.insert(all_data)\n\n        if data.session_id:\n            session_data = self._session(\n                question_id=ques_data.oid,\n                session_id=data.session_id,\n                session_question=data.question\n                if isinstance(data.question, str)\n                else data.question.content,\n            )\n            self._session.objects.insert(session_data)\n\n        return ques_data.oid\n\n    def batch_insert(self, all_data: List[CacheData]):\n        ids = []\n        for data in all_data:\n            ids.append(self._insert(data))\n        return ids\n\n    def get_data_by_id(self, key) -> Optional[CacheData]:\n        qs = self._ques.objects.get(_id=key, deleted=0)\n        if qs is None:\n            return None\n        last_access = qs.last_access\n        qs.last_access = datetime.now()\n        qs.save()\n        answers = self._answer.objects(question_id=qs.oid)\n        deps = self._ques_dep.objects(question_id=qs.oid)\n        session_ids = self._session.objects(question_id=qs.oid)\n\n        res_ans = [(item.answer, item.answer_type) for item in answers]\n        res_deps = [\n            QuestionDep(item.dep_name, item.dep_data, item.dep_type) for item in deps\n        ]\n        return CacheData(\n            question=qs.question if not deps else Question(qs.question, res_deps),\n            answers=res_ans,\n            embedding_data=np.frombuffer(qs.embedding_data, dtype=np.float32),\n            session_id=session_ids,\n            create_on=qs.create_on,\n            last_access=last_access,\n        )\n\n    def mark_deleted(self, keys):\n        self._ques.objects(_id__in=keys).update(deleted=-1)\n\n    def clear_deleted_data(self):\n        questions = self._ques.objects(deleted=-1).only(\"_id\")\n        q_ids = [obj.oid for obj in questions]\n        self._answer.objects(question_id__in=q_ids).delete()\n        self._ques_dep.objects(question_id__in=q_ids).delete()\n        self._session.objects(question_id__in=q_ids).delete()\n        questions.delete()\n\n    def get_ids(self, deleted: bool = True):\n        state = -1 if deleted else 0\n        res = [obj.oid for obj in self._ques.objects(deleted=state).only(\"_id\")]\n        return res\n\n    def count(self, state: int = 0, is_all: bool = False):\n        if is_all:\n            return self._ques.objects.count()\n        return self._ques.objects(deleted=state).count()\n\n    def add_session(self, question_id, session_id, session_question):\n        self._session(\n            question_id=question_id,\n            session_id=session_id,\n            session_question=session_question,\n        ).save()\n\n    def list_sessions(self, session_id=None, key=None):\n        query = {}\n        if session_id:\n            query[\"session_id\"] = session_id\n        if key:\n            query[\"question_id\"] = key\n\n        return self._session.objects(__raw__=query)\n\n    def delete_session(self, keys):\n        self._session.objects(question_id__in=keys).delete()\n\n    def count_answers(self):\n        return self._answer.objects.count()\n\n    def report_cache(\n        self,\n        user_question,\n        cache_question,\n        cache_question_id,\n        cache_answer,\n        similarity_value,\n        cache_delta_time,\n    ):\n        report_data = self._report(\n            user_question=user_question,\n            cache_question=cache_question,\n            cache_question_id=cache_question_id,\n            cache_answer=cache_answer,\n            similarity=similarity_value,\n            cache_delta_time=cache_delta_time,\n        )\n        report_data.save()\n\n    def close(self):\n        me.disconnect()\n        self.con.close()\n"
  },
  {
    "path": "gptcache/manager/scalar_data/redis_storage.py",
    "content": "import datetime\nfrom typing import List, Optional\n\nimport numpy as np\n\nfrom gptcache.manager.scalar_data.base import (\n    CacheStorage,\n    CacheData,\n    Question,\n    QuestionDep,\n)\nfrom gptcache.utils import import_redis\n\nimport_redis()\n\n# pylint: disable=C0413\nfrom redis import Redis\nfrom redis.client import Pipeline\nfrom redis_om import get_redis_connection\nfrom redis_om import JsonModel, EmbeddedJsonModel, NotFoundError, Field, Migrator\n\n\ndef get_models(global_key: str, redis_connection: Redis):\n    \"\"\"\n    Get all the models for the given global key and redis connection.\n    :param global_key: Global key will be used as a prefix for all the keys\n    :type global_key: str\n\n    :param redis_connection: Redis connection to use for all the models.\n    Note: This needs to be explicitly mentioned in `Meta` class for each Object Model,\n    otherwise it will use the default connection from the pool.\n    :type redis_connection: Redis\n    \"\"\"\n\n    class Counter:\n        \"\"\"\n        counter collection\n        \"\"\"\n        key_name = global_key + \":counter\"\n        database = redis_connection\n\n        @classmethod\n        def incr(cls):\n            cls.database.incr(cls.key_name)\n\n        @classmethod\n        def get(cls):\n            return cls.database.get(cls.key_name)\n\n    class EmbeddingType:\n        \"\"\"\n        Directly using bytes for embedding data is not supported by redis-om as of now.\n        Custom type for embedding data. This will be stored as bytes in redis.\n        Latin-1 encoding is used to convert the bytes to string and vice versa.\n        \"\"\"\n\n        def __init__(self, data: bytes):\n            self.data = data\n\n        @classmethod\n        def __get_validators__(cls):\n            yield cls.validate\n\n        @classmethod\n        def validate(cls, v: [np.array, bytes]):\n            if isinstance(v, np.ndarray):\n                return cls(v.astype(np.float32).tobytes())\n            elif isinstance(v, bytes):\n                return cls(v)\n\n            return cls(v)\n\n        def to_numpy(self) -> np.ndarray:\n            return np.frombuffer(self.data.encode(\"latin-1\"), dtype=np.float32)\n\n        def __repr__(self):\n            return f\"{self.data}\"\n\n    class Answers(EmbeddedJsonModel):\n        \"\"\"\n        answer collection\n        \"\"\"\n\n        answer: str\n        answer_type: int\n\n        class Meta:\n            database = redis_connection\n\n    class QuestionDeps(EmbeddedJsonModel):\n        \"\"\"\n        Question Dep collection\n        \"\"\"\n\n        dep_name: str\n        dep_data: str\n        dep_type: int\n\n    class Questions(JsonModel):\n        \"\"\"\n        questions collection\n        \"\"\"\n\n        question: str = Field(index=True)\n        create_on: datetime.datetime\n        last_access: datetime.datetime\n        deleted: int = Field(index=True)\n        answers: List[Answers]\n        deps: List[QuestionDeps]\n        embedding: EmbeddingType\n\n        class Meta:\n            global_key_prefix = global_key\n            model_key_prefix = \"questions\"\n            database = redis_connection\n\n        class Config:\n            json_encoders = {\n                EmbeddingType: lambda n: n.data.decode(\"latin-1\")\n                if isinstance(n.data, bytes) else n.data\n            }\n\n    class Sessions(JsonModel):\n        \"\"\"\n        session collection\n        \"\"\"\n\n        class Meta:\n            global_key_prefix = global_key\n            model_key_prefix = \"sessions\"\n            database = redis_connection\n\n        session_id: str = Field(index=True)\n        session_question: str\n        question_id: str = Field(index=True)\n\n    class Report(JsonModel):\n        \"\"\"\n        Report collection\n        \"\"\"\n\n        class Meta:\n            global_key_prefix = global_key\n            model_key_prefix = \"report\"\n            database = redis_connection\n\n        user_question: str\n        cache_question_id: int = Field(index=True)\n        cache_question: str\n        cache_answer: str\n        similarity: float = Field(index=True)\n        cache_delta_time: float = Field(index=True)\n        cache_time: datetime.datetime = Field(index=True)\n        extra: Optional[str]\n\n    return Questions, Answers, QuestionDeps, Sessions, Counter, Report\n\n\nclass RedisCacheStorage(CacheStorage):\n    \"\"\"\n     Using redis-om as OM to store data in redis cache storage\n\n    :param host: redis host, default value 'localhost'\n    :type host: str\n    :param port: redis port, default value 27017\n    :type port: int\n    :param global_key_prefix: A global prefix for keys against which data is stored.\n    For example, for a global_key_prefix ='gptcache', keys would be constructed would look like this:\n    gptcache:questions:abc123\n    :type global_key_prefix: str\n    :param maxmemory: Maximum memory to use for redis cache storage\n    :type maxmemory: str\n    :param policy: Policy to use for eviction, default value 'allkeys-lru'\n    :type policy: str\n    :param ttl: Time to live for keys in milliseconds, default value None\n    :type ttl: int\n    :param maxmemory_samples: Number of keys to sample when evicting keys\n    :type maxmemory_samples: int\n    :param kwargs: Additional parameters to provide in order to create redis om connection\n    Example:\n        .. code-block:: python\n\n            from gptcache.manager import CacheBase, manager_factory\n\n            cache_store = CacheBase('redis',\n                redis_host=\"localhost\",\n                redis_port=6379,\n                global_key_prefix=\"gptcache\",\n            )\n            # or\n            data_manager = manager_factory(\"mongo,faiss\", data_dir=\"./workspace\",\n                scalar_params={\n                    \"redis_host\"=\"localhost\",\n                    \"redis_port\"=6379,\n                    \"global_key_prefix\"=\"gptcache\",\n                },\n                vector_params={\"dimension\": 128},\n            )\n    \"\"\"\n\n    def __init__(\n            self,\n            global_key_prefix: str = \"gptcache\",\n            host: str = \"localhost\",\n            port: int = 6379,\n            maxmemory: str = None,\n            policy: str = None,\n            ttl: int = None,\n            maxmemory_samples: int = None,\n            **kwargs\n    ):\n        self.con = get_redis_connection(host=host, port=port, **kwargs)\n        self.default_ttl = ttl\n        self.init_eviction_params(policy=policy, maxmemory=maxmemory, maxmemory_samples=maxmemory_samples, ttl=ttl)\n        (\n            self._ques,\n            self._answer,\n            self._ques_dep,\n            self._session,\n            self._counter,\n            self._report,\n        ) = get_models(global_key_prefix, redis_connection=self.con)\n\n        Migrator().run()\n\n    def init_eviction_params(self, policy, maxmemory, maxmemory_samples, ttl):\n        self.default_ttl = ttl\n        if maxmemory:\n            self.con.config_set(\"maxmemory\", maxmemory)\n        if policy:\n            self.con.config_set(\"maxmemory-policy\", policy)\n        if maxmemory_samples:\n            self.con.config_set(\"maxmemory-samples\", maxmemory_samples)\n\n    def create(self):\n        pass\n\n    def _insert(self, data: CacheData, pipeline: Pipeline = None):\n        self._counter.incr()\n        pk = str(self._counter.get())\n        answers = data.answers if isinstance(data.answers, list) else [data.answers]\n        all_data = []\n        for answer in answers:\n            answer_data = self._answer(\n                answer=answer.answer,\n                answer_type=int(answer.answer_type),\n            )\n            all_data.append(answer_data)\n\n        all_deps = []\n        if isinstance(data.question, Question) and data.question.deps is not None:\n            for dep in data.question.deps:\n                all_deps.append(\n                    self._ques_dep(\n                        dep_name=dep.name,\n                        dep_data=dep.data,\n                        dep_type=dep.dep_type,\n                    )\n                )\n        embedding_data = (\n            data.embedding_data\n            if data.embedding_data is not None\n            else None\n        )\n        ques_data = self._ques(\n            pk=pk,\n            question=data.question\n            if isinstance(data.question, str)\n            else data.question.content,\n            create_on=datetime.datetime.utcnow(),\n            last_access=datetime.datetime.utcnow(),\n            deleted=0,\n            answers=answers,\n            deps=all_deps,\n            embedding=embedding_data\n        )\n\n        ques_data.save(pipeline)\n\n        if data.session_id:\n            session_data = self._session(\n                question_id=ques_data.pk,\n                session_id=data.session_id,\n                session_question=data.question\n                if isinstance(data.question, str)\n                else data.question.content,\n            )\n            session_data.save(pipeline)\n        if self.default_ttl:\n            ques_data.expire(self.default_ttl, pipeline=pipeline)\n        return int(ques_data.pk)\n\n    def batch_insert(self, all_data: List[CacheData]):\n        ids = []\n        with self.con.pipeline() as pipeline:\n            for data in all_data:\n                ids.append(self._insert(data, pipeline=pipeline))\n            pipeline.execute()\n        return ids\n\n    def get_data_by_id(self, key: str):\n        key = str(key)\n        try:\n            qs = self._ques.get(pk=key)\n        except NotFoundError:\n            return None\n\n        qs.update(last_access=datetime.datetime.utcnow())\n        res_ans = [(item.answer, item.answer_type) for item in qs.answers]\n        res_deps = [\n            QuestionDep(item.dep_name, item.dep_data, item.dep_type) for item in qs.deps\n        ]\n\n        session_ids = [\n            obj.session_id\n            for obj in self._session.find(self._session.question_id == key).all()\n        ]\n        if self.default_ttl:\n            qs.expire(self.default_ttl)\n        return CacheData(\n            question=qs.question if not res_deps else Question(qs.question, res_deps),\n            answers=res_ans,\n            embedding_data=qs.embedding.to_numpy(),\n            session_id=session_ids,\n            create_on=qs.create_on,\n            last_access=qs.last_access,\n        )\n\n    def mark_deleted(self, keys):\n        result = self._ques.find(self._ques.pk << keys).all()\n        for qs in result:\n            qs.update(deleted=-1)\n\n    def clear_deleted_data(self):\n        with self.con.pipeline() as pipeline:\n            qs_to_delete = self._ques.find(self._ques.deleted == -1).all()\n            self._ques.delete_many(qs_to_delete, pipeline)\n\n            q_ids = [qs.pk for qs in qs_to_delete]\n            sessions_to_delete = self._session.find(\n                self._session.question_id << q_ids\n            ).all()\n            self._session.delete_many(sessions_to_delete, pipeline)\n\n            pipeline.execute()\n\n    def get_ids(self, deleted=True):\n        state = -1 if deleted else 0\n        res = [\n            int(obj.pk) for obj in self._ques.find(self._ques.deleted == state).all()\n        ]\n        return res\n\n    def count(self, state: int = 0, is_all: bool = False):\n        if is_all:\n            return self._ques.find().count()\n        return self._ques.find(self._ques.deleted == state).count()\n\n    def add_session(self, question_id, session_id, session_question):\n        self._session(\n            question_id=question_id,\n            session_id=session_id,\n            session_question=session_question,\n        ).save()\n\n    def list_sessions(self, session_id=None, key=None):\n        if session_id and key:\n            self._session.find(\n                self._session.session_id == session_id\n                and self._session.question_id == key\n            ).all()\n        if key:\n            key = str(key)\n            return self._session.find(self._session.question_id == key).all()\n        if session_id:\n            return self._session.find(self._session.session_id == session_id).all()\n        return self._session.find().all()\n\n    def delete_session(self, keys: List[str]):\n        keys = [str(key) for key in keys]\n        with self.con.pipeline() as pipeline:\n            sessions_to_delete = self._session.find(\n                self._session.question_id << keys\n            ).all()\n            self._session.delete_many(sessions_to_delete, pipeline)\n            pipeline.execute()\n\n    def report_cache(self, user_question, cache_question, cache_question_id, cache_answer, similarity_value,\n                     cache_delta_time):\n        self._report(\n            user_question=user_question,\n            cache_question=cache_question,\n            cache_question_id=cache_question_id,\n            cache_answer=cache_answer,\n            similarity=similarity_value,\n            cache_delta_time=cache_delta_time,\n            cache_time=datetime.datetime.utcnow(),\n        ).save()\n\n    def close(self):\n        self.con.close()\n"
  },
  {
    "path": "gptcache/manager/scalar_data/sql_storage.py",
    "content": "from datetime import datetime\nfrom typing import List, Optional, Dict\n\nimport numpy as np\n\nfrom gptcache.manager.scalar_data.base import (\n    CacheStorage,\n    CacheData,\n    Question,\n    QuestionDep,\n)\nfrom gptcache.utils import import_sqlalchemy\n\nimport_sqlalchemy()\n\n# pylint: disable=C0413\nimport sqlalchemy\nfrom sqlalchemy import func, create_engine, Column, Sequence\nfrom sqlalchemy.types import (\n    String,\n    DateTime,\n    LargeBinary,\n    Integer,\n    Float,\n)\nfrom sqlalchemy.orm import sessionmaker\nfrom sqlalchemy.ext.declarative import declarative_base\n\nDEFAULT_LEN_DOCT = {\n    \"question_question\": 3000,\n    \"answer_answer\": 3000,\n    \"session_id\": 1000,\n    \"dep_name\": 1000,\n    \"dep_data\": 3000,\n}\n\n\ndef _get_table_len(config: Dict, column_alias: str) -> int:\n    if config and column_alias in config and config[column_alias] > 0:\n        return config[column_alias]\n    return DEFAULT_LEN_DOCT.get(column_alias, 1000)\n\n\ndef get_models(table_prefix, db_type, table_len_config):\n    DynamicBase = declarative_base(class_registry={})  # pylint: disable=C0103\n\n    class QuestionTable(DynamicBase):\n        \"\"\"\n        question table\n        \"\"\"\n\n        __tablename__ = table_prefix + \"_question\"\n        __table_args__ = {\"extend_existing\": True}\n\n        if db_type in (\"oracle\", \"duckdb\"):\n            question_id_seq = Sequence(f\"{__tablename__}_id_seq\", start=1)\n            id = Column(Integer, question_id_seq, primary_key=True, autoincrement=True)\n        else:\n            id = Column(Integer, primary_key=True, autoincrement=True)\n        question = Column(\n            String(_get_table_len(table_len_config, \"question_question\")),\n            nullable=False,\n        )\n        create_on = Column(DateTime, default=datetime.now)\n        last_access = Column(DateTime, default=datetime.now)\n        embedding_data = Column(LargeBinary, nullable=True)\n        deleted = Column(Integer, default=0)\n\n    class AnswerTable(DynamicBase):\n        \"\"\"\n        answer table\n        \"\"\"\n\n        __tablename__ = table_prefix + \"_answer\"\n        __table_args__ = {\"extend_existing\": True}\n\n        if db_type in (\"oracle\", \"duckdb\"):\n            answer_id_seq = Sequence(f\"{__tablename__}_id_seq\")\n            id = Column(Integer, answer_id_seq, primary_key=True, autoincrement=True)\n        else:\n            id = Column(Integer, primary_key=True, autoincrement=True)\n        question_id = Column(Integer, nullable=False)\n        answer = Column(\n            String(_get_table_len(table_len_config, \"answer_answer\")), nullable=False\n        )\n        answer_type = Column(Integer, nullable=False)\n\n    class SessionTable(DynamicBase):\n        \"\"\"\n        session table\n        \"\"\"\n\n        __tablename__ = table_prefix + \"_session\"\n        __table_args__ = {\"extend_existing\": True}\n\n        if db_type in (\"oracle\", \"duckdb\"):\n            session_id_seq = Sequence(f\"{__tablename__}_id_seq\", start=1)\n            id = Column(\n                Integer,\n                session_id_seq,\n                primary_key=True,\n                autoincrement=True,\n            )\n        else:\n            id = Column(Integer, primary_key=True, autoincrement=True)\n        question_id = Column(Integer, nullable=False)\n        session_id = Column(\n            String(_get_table_len(table_len_config, \"session_id\")), nullable=False\n        )\n        session_question = Column(\n            String(_get_table_len(table_len_config, \"question_question\")),\n            nullable=False,\n        )\n\n    class QuestionDepTable(DynamicBase):\n        \"\"\"\n        answer table\n        \"\"\"\n\n        __tablename__ = table_prefix + \"_question_dep\"\n        __table_args__ = {\"extend_existing\": True}\n\n        if db_type in (\"oracle\", \"duckdb\"):\n            question_dep_id_seq = Sequence(f\"{__tablename__}_id_seq\", start=1)\n            id = Column(\n                Integer, question_dep_id_seq, primary_key=True, autoincrement=True\n            )\n        else:\n            id = Column(Integer, primary_key=True, autoincrement=True)\n        question_id = Column(Integer, nullable=False)\n        dep_name = Column(\n            String(_get_table_len(table_len_config, \"dep_name\")), nullable=False\n        )\n        dep_data = Column(\n            String(_get_table_len(table_len_config, \"dep_data\")), nullable=False\n        )\n        dep_type = Column(Integer, nullable=False)\n\n    class ReportTable(DynamicBase):\n        \"\"\"\n        report table\n        \"\"\"\n\n        __tablename__ = table_prefix + \"_report\"\n        __table_args__ = {\"extend_existing\": True}\n\n        if db_type in (\"oracle\", \"duckdb\"):\n            question_dep_id_seq = Sequence(f\"{__tablename__}_id_seq\", start=1)\n            id = Column(\n                Integer, question_dep_id_seq, primary_key=True, autoincrement=True\n            )\n        else:\n            id = Column(Integer, primary_key=True, autoincrement=True)\n\n        user_question = Column(\n            String(_get_table_len(table_len_config, \"question_question\")),\n            nullable=False,\n        )\n        cache_question_id = Column(\n            Integer,\n            nullable=False,\n        )\n        cache_question = Column(\n            String(_get_table_len(table_len_config, \"question_question\")),\n            nullable=False,\n        )\n        cache_answer = Column(\n            String(_get_table_len(table_len_config, \"answer_answer\")), nullable=False\n        )\n        similarity = Column(Float, nullable=False)\n        cache_delta_time = Column(Float, nullable=False)\n        cache_time = Column(DateTime, default=datetime.now)\n        extra = Column(\n            String(_get_table_len(table_len_config, \"question_question\")),\n            nullable=True,\n        )\n\n    return QuestionTable, AnswerTable, QuestionDepTable, SessionTable, ReportTable\n\n\nclass SQLStorage(CacheStorage):\n    \"\"\"\n    Using sqlalchemy to manage SQLite, PostgreSQL, MySQL, MariaDB, SQL Server and Oracle.\n\n    :param name: the name of the cache storage, it is support 'sqlite', 'postgresql', 'mysql', 'mariadb', 'sqlserver' and  'oracle' now.\n    :type name: str\n    :param sql_url: the url of the sql database for cache, such as '<db_type>+<db_driver>://<username>:<password>@<host>:<port>/<database>',\n                    and the default value is related to the `cache_store` parameter,\n                    'sqlite:///./sqlite.db' for 'sqlite',\n                    'duckdb:///./duck.db' for 'duckdb',\n                    'postgresql+psycopg2://postgres:123456@127.0.0.1:5432/postgres' for 'postgresql',\n                    'mysql+pymysql://root:123456@127.0.0.1:3306/mysql' for 'mysql',\n                    'mariadb+pymysql://root:123456@127.0.0.1:3307/mysql' for 'mariadb',\n                    'mssql+pyodbc://sa:Strongpsw_123@127.0.0.1:1434/msdb?driver=ODBC+Driver+17+for+SQL+Server' for 'sqlserver',\n                    'oracle+cx_oracle://oracle:123456@127.0.0.1:1521/?service_name=helowin&encoding=UTF-8&nencoding=UTF-8' for 'oracle'.\n    :type sql_url: str\n    :param table_name: the table name for sql database, defaults to 'gptcache'.\n    :type table_name: str\n    \"\"\"\n\n    def __init__(\n        self,\n        db_type: str = \"sqlite\",\n        url: str = \"sqlite:///./sqlite.db\",\n        table_name: str = \"gptcache\",\n        table_len_config=None,\n    ):\n        if table_len_config is None:\n            table_len_config = {}\n        self._url = url\n        self._ques, self._answer, self._ques_dep, self._session, self._report = get_models(\n            table_name, db_type, table_len_config\n        )\n        self._engine = create_engine(self._url)\n        self.Session = sessionmaker(bind=self._engine)  # pylint: disable=invalid-name\n        self.create()\n\n    def create(self):\n        self._ques.__table__.create(bind=self._engine, checkfirst=True)\n        self._answer.__table__.create(bind=self._engine, checkfirst=True)\n        self._ques_dep.__table__.create(bind=self._engine, checkfirst=True)\n        self._session.__table__.create(bind=self._engine, checkfirst=True)\n        self._report.__table__.create(bind=self._engine, checkfirst=True)\n\n    def _insert(self, data: CacheData, session: sqlalchemy.orm.Session) -> Column:\n        ques_data = self._ques(\n            question=data.question\n            if isinstance(data.question, str)\n            else data.question.content,\n            embedding_data=data.embedding_data.tobytes()\n            if data.embedding_data is not None\n            else None,\n        )\n        session.add(ques_data)\n        session.flush()\n        if isinstance(data.question, Question) and data.question.deps is not None:\n            all_deps = []\n            for dep in data.question.deps:\n                all_deps.append(\n                    self._ques_dep(\n                        question_id=ques_data.id,\n                        dep_name=dep.name,\n                        dep_data=dep.data,\n                        dep_type=dep.dep_type,\n                    )\n                )\n            session.add_all(all_deps)\n        answers = data.answers if isinstance(data.answers, list) else [data.answers]\n        all_data = []\n        for answer in answers:\n            answer_data = self._answer(\n                question_id=ques_data.id,\n                answer=answer.answer,\n                answer_type=int(answer.answer_type),\n            )\n            all_data.append(answer_data)\n        session.add_all(all_data)\n        if data.session_id:\n            session_data = self._session(\n                question_id=ques_data.id,\n                session_id=data.session_id,\n                session_question=data.question\n                if isinstance(data.question, str)\n                else data.question.content,\n            )\n            session.add(session_data)\n        return ques_data.id\n\n    def batch_insert(self, all_data: List[CacheData]):\n        ids = []\n        with self.Session() as session:\n            for data in all_data:\n                ids.append(self._insert(data, session))\n            session.commit()\n        return ids\n\n    def get_data_by_id(self, key: int) -> Optional[CacheData]:\n        with self.Session() as session:\n            qs = (\n                session.query(self._ques)\n                .filter(self._ques.id == key)\n                .filter(self._ques.deleted == 0)\n                .first()\n            )\n            if qs is None:\n                return None\n            last_access = qs.last_access\n            qs.last_access = datetime.now()\n            ans = (\n                session.query(self._answer.answer, self._answer.answer_type)\n                .filter(self._answer.question_id == qs.id)\n                .all()\n            )\n            deps = (\n                session.query(\n                    self._ques_dep.dep_name,\n                    self._ques_dep.dep_data,\n                    self._ques_dep.dep_type,\n                )\n                .filter(self._ques_dep.question_id == qs.id)\n                .all()\n            )\n            session_ids = (\n                session.query(self._session.session_id)\n                .filter(self._session.question_id == qs.id)\n                .all()\n            )\n            res_ans = [(item.answer, item.answer_type) for item in ans]\n            res_deps = [\n                QuestionDep(item.dep_name, item.dep_data, item.dep_type)\n                for item in deps\n            ]\n            session.commit()\n\n            return CacheData(\n                question=qs.question if not deps else Question(qs.question, res_deps),\n                answers=res_ans,\n                embedding_data=np.frombuffer(qs.embedding_data, dtype=np.float32),\n                session_id=session_ids,\n                create_on=qs.create_on,\n                last_access=last_access,\n            )\n\n    def get_ids(self, deleted=True):\n        state = -1 if deleted else 0\n        with self.Session() as session:\n            res = session.query(self._ques.id).filter(self._ques.deleted == state).all()\n            return [item.id for item in res]\n\n    def mark_deleted(self, keys):\n        with self.Session() as session:\n            session.query(self._ques).filter(self._ques.id.in_(keys)).update(\n                {\"deleted\": -1}\n            )\n            session.commit()\n\n    def clear_deleted_data(self):\n        with self.Session() as session:\n            objs = session.query(self._ques).filter(self._ques.deleted == -1)\n            q_ids = [obj.id for obj in objs]\n            session.query(self._answer).filter(\n                self._answer.question_id.in_(q_ids)\n            ).delete()\n            session.query(self._ques_dep).filter(\n                self._ques_dep.question_id.in_(q_ids)\n            ).delete()\n            session.query(self._session).filter(\n                self._session.question_id.in_(q_ids)\n            ).delete()\n            objs.delete()\n            session.commit()\n\n    def count(self, state: int = 0, is_all: bool = False):\n        with self.Session() as session:\n            if is_all:\n                return session.query(func.count(self._ques.id)).scalar()\n            return (\n                session.query(func.count(self._ques.id))\n                .filter(self._ques.deleted == state)\n                .scalar()\n            )\n\n    def add_session(self, question_id, session_id, session_question):\n        with self.Session() as session:\n            session_data = self._session(\n                question_id=question_id,\n                session_id=session_id,\n                session_question=session_question,\n            )\n            session.add(session_data)\n            session.commit()\n\n    def delete_session(self, keys):\n        with self.Session() as session:\n            session.query(self._session).filter(self._session.id.in_(keys)).delete()\n            session.commit()\n\n    def list_sessions(self, session_id=None, key=None):\n        with self.Session() as session:\n            query = session.query(self._session)\n            if session_id:\n                query = query.filter(self._session.session_id == session_id)\n            elif key:\n                query = query.filter(self._session.question_id == key)\n            return query.all()\n\n    def report_cache(self, user_question, cache_question, cache_question_id, cache_answer, similarity_value, cache_delta_time):\n        with self.Session() as session:\n            report_data = self._report(\n                user_question=user_question,\n                cache_question=cache_question,\n                cache_question_id=cache_question_id,\n                cache_answer=cache_answer,\n                similarity=similarity_value,\n                cache_delta_time=cache_delta_time,\n            )\n            session.add(report_data)\n            session.commit()\n\n    def close(self):\n        pass\n\n    def count_answers(self):\n        # for UT\n        with self.Session() as session:\n            return session.query(func.count(self._answer.id)).scalar()\n"
  },
  {
    "path": "gptcache/manager/vector_data/__init__.py",
    "content": "__all__ = [\"VectorBase\"]\n\nfrom gptcache.utils.lazy_import import LazyImport\n\nvector_manager = LazyImport(\n    \"vector_manager\", globals(), \"gptcache.manager.vector_data.manager\"\n)\n\n\ndef VectorBase(name: str, **kwargs):\n    \"\"\"Generate specific VectorBase with the configuration.\n    \"\"\"\n    return vector_manager.VectorBase.get(name, **kwargs)\n"
  },
  {
    "path": "gptcache/manager/vector_data/base.py",
    "content": "from abc import ABC, abstractmethod\nfrom dataclasses import dataclass\nfrom typing import List, Optional, Union\n\nimport numpy as np\n\n\n@dataclass\nclass VectorData:\n    id: int\n    data: np.ndarray\n\n\nclass VectorBase(ABC):\n    \"\"\"VectorBase: base vector store interface\"\"\"\n\n    @abstractmethod\n    def mul_add(self, datas: List[VectorData]):\n        pass\n\n    @abstractmethod\n    def search(self, data: np.ndarray, top_k: int):\n        pass\n\n    @abstractmethod\n    def rebuild(self, ids=None) -> bool:\n        pass\n\n    @abstractmethod\n    def delete(self, ids) -> bool:\n        pass\n\n    def flush(self):\n        pass\n\n    def close(self):\n        pass\n\n    def get_embeddings(self, data_id: Union[int, str]) -> Optional[np.ndarray]:\n        raise NotImplementedError\n\n    def update_embeddings(self, data_id: Union[int, str], emb: np.ndarray):\n        pass\n"
  },
  {
    "path": "gptcache/manager/vector_data/chroma.py",
    "content": "from typing import List\n\nimport numpy as np\n\nfrom gptcache.manager.vector_data.base import VectorBase, VectorData\nfrom gptcache.utils import import_chromadb, import_torch\n\nimport_torch()\nimport_chromadb()\n\nimport chromadb  # pylint: disable=C0413\n\n\nclass Chromadb(VectorBase):\n    \"\"\"vector store: Chromadb\n\n    :param client_settings: the setting for Chromadb.\n    :type client_settings: Settings\n    :param persist_directory: the directory to persist, defaults to .chromadb/ in the current directory.\n    :type persist_directory: str\n    :param collection_name: the name of the collection in Chromadb, defaults to 'gptcache'.\n    :type collection_name: str\n    :param top_k: the number of the vectors results to return, defaults to 1.\n    :type top_k: int\n\n    \"\"\"\n\n    def __init__(\n        self,\n        client_settings=None,\n        persist_directory=None,\n        collection_name: str = \"gptcache\",\n        top_k: int = 1,\n    ):\n        self.top_k = top_k\n\n        if client_settings:\n            self._client_settings = client_settings\n        else:\n            self._client_settings = chromadb.config.Settings()\n            if persist_directory is not None:\n                self._client_settings = chromadb.config.Settings(\n                    chroma_db_impl=\"duckdb+parquet\", persist_directory=persist_directory\n                )\n        self._client = chromadb.Client(self._client_settings)\n        self._persist_directory = persist_directory\n        self._collection = self._client.get_or_create_collection(name=collection_name)\n\n    def mul_add(self, datas: List[VectorData]):\n        data_array, id_array = map(list, zip(*((data.data.tolist(), str(data.id)) for data in datas)))\n        self._collection.add(embeddings=data_array, ids=id_array)\n\n    def search(self, data, top_k: int = -1):\n        if self._collection.count() == 0:\n            return []\n        if top_k == -1:\n            top_k = self.top_k\n        results = self._collection.query(\n            query_embeddings=[data.tolist()],\n            n_results=top_k,\n            include=[\"distances\"],\n        )\n        return list(zip(results[\"distances\"][0], [int(x) for x in results[\"ids\"][0]]))\n\n    def delete(self, ids):\n        self._collection.delete([str(x) for x in ids])\n\n    def rebuild(self, ids=None):  # pylint: disable=unused-argument\n        return True\n\n    def get_embeddings(self, data_id: str):\n        vec_emb = self._collection.get(\n                str(data_id),\n                include=[\"embeddings\"],\n            )[\"embeddings\"]\n        if vec_emb is None or len(vec_emb) < 1:\n            return None\n        vec_emb = np.asarray(vec_emb[0], dtype=\"float32\")\n        return vec_emb\n\n    def update_embeddings(self, data_id: str, emb: np.ndarray):\n        self._collection.update(\n            ids=str(data_id),\n            embeddings=emb.tolist(),\n        )\n"
  },
  {
    "path": "gptcache/manager/vector_data/docarray_index.py",
    "content": "from typing import List, Optional, Tuple\n\nimport numpy as np\n\nfrom gptcache.manager.vector_data.base import VectorBase, VectorData\nfrom gptcache.utils import import_docarray\n\nimport_docarray()\n\nfrom docarray.typing import NdArray  # pylint: disable=C0413\nfrom docarray import BaseDoc, DocList  # pylint: disable=C0413\nfrom docarray.index import InMemoryExactNNIndex  # pylint: disable=C0413\n\n\nclass DocarrayVectorData(BaseDoc):\n    \"\"\"Class representing a vector data element with an ID and associated data.\"\"\"\n\n    id: int\n    data: NdArray\n\n\nclass DocArrayIndex(VectorBase):\n    \"\"\"\n    Class representing in-memory exact nearest neighbor index for vector search.\n\n    :param index_file_path: the path to docarray index, defaults to 'docarray_index.bin'.\n    :type index_file_path: str\n    :param top_k: the number of the vectors results to return, defaults to 1.\n    :type top_k: int\n    \"\"\"\n\n    def __init__(self, index_file_path: str, top_k: int):\n        self._index = InMemoryExactNNIndex[DocarrayVectorData](\n            index_file_path=index_file_path\n        )\n        self._index_file_path = index_file_path\n        self._top_k = top_k\n\n    def mul_add(self, datas: List[VectorData]) -> None:\n        \"\"\"\n        Add multiple vector data elements to the index.\n\n        :param datas: A list of vector data elements to be added.\n        \"\"\"\n        docs = DocList[DocarrayVectorData](\n            DocarrayVectorData(id=data.id, data=data.data) for data in datas\n        )\n        self._index.index(docs)\n\n    def search(\n        self, data: np.ndarray, top_k: int = -1\n    ) -> Optional[List[Tuple[float, int]]]:\n        \"\"\"\n        Search for the nearest vector data elements in the index.\n\n        :param data: The query vector data.\n        :param top_k: The number of top matches to return.\n        :return: A list of tuples, each containing the match score and\n            the ID of the matched vector data element.\n        \"\"\"\n        if len(self._index) == 0:\n            return None\n        if top_k == -1:\n            top_k = self._top_k\n        docs, scores = self._index.find(data, search_field=\"data\", limit=top_k)\n        return list(zip(scores, docs.id))\n\n    def rebuild(self, ids: Optional[List[int]] = None) -> bool:\n        \"\"\"\n        In the case of DocArrayIndex, the rebuild operation is not needed.\n        \"\"\"\n        return True\n\n    def delete(self, ids: Optional[List[str]]) -> None:\n        \"\"\"\n        Delete the specified vector data elements from the index.\n\n        :param ids: A list of IDs of the vector data elements to be deleted.\n        \"\"\"\n        if ids is not None:\n            del self._index[ids]\n\n    def flush(self) -> None:\n        self._index.persist(self._index_file_path)\n\n    def close(self) -> None:\n        self.flush()\n"
  },
  {
    "path": "gptcache/manager/vector_data/faiss.py",
    "content": "import os\nfrom typing import List\n\nimport numpy as np\n\nfrom gptcache.manager.vector_data.base import VectorBase, VectorData\nfrom gptcache.utils import import_faiss\n\nimport_faiss()\n\nimport faiss  # pylint: disable=C0413\n\n\nclass Faiss(VectorBase):\n    \"\"\"vector store: Faiss\n\n    :param index_path: the path to Faiss index, defaults to 'faiss.index'.\n    :type index_path: str\n    :param dimension: the dimension of the vector, defaults to 0.\n    :type dimension: int\n    :param top_k: the number of the vectors results to return, defaults to 1.\n    :type top_k: int\n    \"\"\"\n\n    def __init__(self, index_file_path, dimension, top_k):\n        self._index_file_path = index_file_path\n        self._dimension = dimension\n        self._index = faiss.index_factory(self._dimension, \"IDMap,Flat\", faiss.METRIC_L2)\n        self._top_k = top_k\n        if os.path.isfile(index_file_path):\n            self._index = faiss.read_index(index_file_path)\n\n    def mul_add(self, datas: List[VectorData]):\n        data_array, id_array = map(list, zip(*((data.data, data.id) for data in datas)))\n        np_data = np.array(data_array).astype(\"float32\")\n        ids = np.array(id_array)\n        self._index.add_with_ids(np_data, ids)\n\n    def search(self, data: np.ndarray, top_k: int = -1):\n        if self._index.ntotal == 0:\n            return None\n        if top_k == -1:\n            top_k = self._top_k\n        np_data = np.array(data).astype(\"float32\").reshape(1, -1)\n        dist, ids = self._index.search(np_data, top_k)\n        ids = [int(i) for i in ids[0]]\n        return list(zip(dist[0], ids))\n\n    def rebuild(self, ids=None):\n        return True\n\n    def delete(self, ids):\n        ids_to_remove = np.array(ids)\n        self._index.remove_ids(faiss.IDSelectorBatch(ids_to_remove.size, faiss.swig_ptr(ids_to_remove)))\n\n    def flush(self):\n        faiss.write_index(self._index, self._index_file_path)\n\n    def close(self):\n        self.flush()\n\n    def count(self):\n        return self._index.ntotal\n"
  },
  {
    "path": "gptcache/manager/vector_data/hnswlib_store.py",
    "content": "import os\nfrom typing import List\n\nimport numpy as np\n\nfrom gptcache.manager.vector_data.base import VectorBase, VectorData\nfrom gptcache.utils import import_hnswlib\n\nimport_hnswlib()\n\nimport hnswlib  # pylint: disable=C0413\n\n\nclass Hnswlib(VectorBase):\n    \"\"\"vector store: hnswlib\n\n    :param index_path: the path to hnswlib index, defaults to 'hnswlib_index.bin'.\n    :type index_path: str\n    :param dimension: the dimension of the vector, defaults to 0.\n    :type dimension: int\n    :param top_k: the number of the vectors results to return, defaults to 1.\n    :type top_k: int\n    :param max_elements: max_elements of hnswlib, defaults 100000.\n    :type max_elements: int\n    \"\"\"\n\n    def __init__(self, index_file_path: str, dimension: int, top_k: int, max_elements: int):\n        self._index_file_path = index_file_path\n        self._dimension = dimension\n        self._max_elements = max_elements\n        self._index = hnswlib.Index(space=\"l2\", dim=self._dimension)\n        self._top_k = top_k\n        if os.path.isfile(self._index_file_path):\n            self._index.load_index(self._index_file_path, max_elements=max_elements)\n        else:\n            self._index.init_index(max_elements=max_elements, ef_construction=100, M=16)\n            self._index.set_ef(self._top_k * 2)\n\n    def add(self, key: int, data: np.ndarray):\n        np_data = np.array(data).astype(\"float32\").reshape(1, -1)\n        self._index.add_items(np_data, np.array([key]))\n\n    def mul_add(self, datas: List[VectorData]):\n        data_array, id_array = map(list, zip(*((data.data, data.id) for data in datas)))\n        np_data = np.array(data_array).astype(\"float32\")\n        ids = np.array(id_array)\n        self._index.add_items(np_data, ids)\n\n    def search(self, data: np.ndarray, top_k: int = -1):\n        np_data = np.array(data).astype(\"float32\").reshape(1, -1)\n        if top_k == -1:\n            top_k = self._top_k\n        ids, dist = self._index.knn_query(data=np_data, k=top_k)\n        return list(zip(dist[0], ids[0]))\n\n    def rebuild(self, ids):\n        all_data = self._index.get_items(ids)\n        new_index = hnswlib.Index(space=\"l2\", dim=self._dimension)\n        new_index.init_index(max_elements=self._max_elements, ef_construction=100, M=16)\n        new_index.set_ef(self._top_k * 2)\n        self._index = new_index\n        datas = []\n        for key, data in zip(ids, all_data):\n            datas.append(VectorData(id=key, data=data))\n        self.mul_add(datas)\n\n    def delete(self, ids):\n        for i in ids:\n            self._index.mark_deleted(i)\n\n    def flush(self):\n        self._index.save_index(self._index_file_path)\n\n    def close(self):\n        self.flush()\n"
  },
  {
    "path": "gptcache/manager/vector_data/manager.py",
    "content": "from gptcache.utils.error import NotFoundError, ParamError\n\nTOP_K = 1\n\nFAISS_INDEX_PATH = \"faiss.index\"\nDIMENSION = 0\n\nMILVUS_HOST = \"localhost\"\nMILVUS_PORT = 19530\nMILVUS_USER = \"\"\nMILVUS_PSW = \"\"\nMILVUS_SECURE = False\nMILVUS_INDEX_PARAMS = {\n    \"metric_type\": \"L2\",\n    \"index_type\": \"HNSW\",\n    \"params\": {\"M\": 8, \"efConstruction\": 64},\n}\n\nPGVECTOR_URL = \"postgresql://postgres:postgres@localhost:5432/postgres\"\nPGVECTOR_INDEX_PARAMS = {\"index_type\": \"L2\", \"params\": {\"lists\": 100, \"probes\": 10}}\n\nQDRANT_GRPC_PORT = 6334\nQDRANT_HTTP_PORT = 6333\nQDRANT_INDEX_PARAMS = {\"ef_construct\": 100, \"m\": 16}\nQDRANT_DEFAULT_LOCATION = \"./qdrant_data\"\nQDRANT_FLUSH_INTERVAL_SEC = 5\n\nCOLLECTION_NAME = \"gptcache\"\n\nWEAVIATE_TIMEOUT_CONFIG = (10, 60)\nWEAVIATE_STARTUP_PERIOD = 5\n\n\n# pylint: disable=import-outside-toplevel\nclass VectorBase:\n    \"\"\"\n    VectorBase to manager the vector base.\n\n    Generate specific VectorBase with the configuration. For example, setting for\n       `Milvus` (with , `host`, `port`, `password`, `secure`, `collection_name`, `index_params`, `search_params`, `local_mode`, `local_data` params),\n       `Faiss` (with , `index_path`, `dimension`, `top_k` params),\n       `Chromadb` (with `top_k`, `client_settings`, `persist_directory`, `collection_name` params),\n       `Hnswlib` (with `index_file_path`, `dimension`, `top_k`, `max_elements` params).\n       `pgvector` (with `url`, `collection_name`, `index_params`, `top_k`, `dimension` params).\n\n    :param name: the name of the vectorbase, it is support 'milvus', 'faiss', 'chromadb', 'hnswlib' now.\n    :type name: str\n\n    :param top_k: the number of the vectors results to return, defaults to 1.\n    :type top_k: int\n\n    :param dimension: the dimension of the vector, defaults to 0.\n    :type dimension: int\n\n    :param index_path: the path to Faiss index, defaults to 'faiss.index'.\n    :type index_path: str\n\n    :param host: the host for Milvus vector database, defaults to 'localhost'.\n    :type host: str\n    :param port: the port for Milvus vector database, defaults to '19530'.\n    :type port: str\n    :param user: the user for Zilliz Cloud, defaults to \"\".\n    :type user: str\n    :param password: the password for Zilliz Cloud, defaults to \"\".\n    :type password: str\n    :param secure: whether it is https with Zilliz Cloud, defaults to False.\n    :type secures: bool\n    :param index_params: the index parameters for Milvus, defaults to the HNSW index: {'metric_type': 'L2', 'index_type': 'HNSW', 'params': {'M':\n                         8, 'efConstruction': 64}}.\n    :type index_params: dict\n    :param search_params: the index parameters for Milvus, defaults to None.\n    :type search_params: dict\n    :param collection_name: the name of the collection for Milvus vector database, defaults to 'gptcache'.\n    :type collection_name: str\n    :param local_mode: if true, will start a local milvus server.\n    :type local_mode: bool\n    :param local_data: required when local_mode is True.\n    :type local_data: str\n\n    :param url: the connection url for PostgreSQL database, defaults to 'postgresql://postgres@localhost:5432/postgres'\n    :type url: str\n    :param index_params: the index parameters for pgvector.\n    :type index_params: dict\n    :param collection_name: the prefix of the table for PostgreSQL pgvector, defaults to 'gptcache'.\n    :type collection_name: str\n\n    :param client_settings: the setting for Chromadb.\n    :type client_settings: Settings\n    :param persist_directory: the directory to persist, defaults to '.chromadb/' in the current directory.\n    :type persist_directory: str\n\n    :param index_path: the path to hnswlib index, defaults to 'hnswlib_index.bin'.\n    :type index_path: str\n    :param max_elements: max_elements of hnswlib, defaults 100000.\n    :type max_elements: int\n    \"\"\"\n\n    def __init__(self):\n        raise EnvironmentError(\n            \"VectorBase is designed to be instantiated, please using the `VectorBase.get(name)`.\"\n        )\n\n    @staticmethod\n    def check_dimension(dimension):\n        if dimension <= 0:\n            raise ParamError(\n                f\"the dimension should be greater than zero, current value: {dimension}.\"\n            )\n\n    @staticmethod\n    def get(name, **kwargs):\n        top_k = kwargs.get(\"top_k\", TOP_K)\n        if name == \"milvus\":\n            from gptcache.manager.vector_data.milvus import Milvus\n\n            dimension = kwargs.get(\"dimension\", DIMENSION)\n            VectorBase.check_dimension(dimension)\n            host = kwargs.get(\"host\", MILVUS_HOST)\n            port = kwargs.get(\"port\", MILVUS_PORT)\n            user = kwargs.get(\"user\", MILVUS_USER)\n            password = kwargs.get(\"password\", MILVUS_PSW)\n            secure = kwargs.get(\"secure\", MILVUS_SECURE)\n            collection_name = kwargs.get(\"collection_name\", COLLECTION_NAME)\n            index_params = kwargs.get(\"index_params\", MILVUS_INDEX_PARAMS)\n            search_params = kwargs.get(\"search_params\", None)\n            local_mode = kwargs.get(\"local_mode\", False)\n            local_data = kwargs.get(\"local_data\", \"./milvus_data\")\n            vector_base = Milvus(\n                host=host,\n                port=port,\n                user=user,\n                password=password,\n                secure=secure,\n                collection_name=collection_name,\n                dimension=dimension,\n                top_k=top_k,\n                index_params=index_params,\n                search_params=search_params,\n                local_mode=local_mode,\n                local_data=local_data,\n            )\n        elif name == \"faiss\":\n            from gptcache.manager.vector_data.faiss import Faiss\n\n            dimension = kwargs.get(\"dimension\", DIMENSION)\n            index_path = kwargs.pop(\"index_path\", FAISS_INDEX_PATH)\n            VectorBase.check_dimension(dimension)\n            vector_base = Faiss(\n                index_file_path=index_path, dimension=dimension, top_k=top_k\n            )\n        elif name == \"chromadb\":\n            from gptcache.manager.vector_data.chroma import Chromadb\n\n            client_settings = kwargs.get(\"client_settings\", None)\n            persist_directory = kwargs.get(\"persist_directory\", None)\n            collection_name = kwargs.get(\"collection_name\", COLLECTION_NAME)\n            vector_base = Chromadb(\n                client_settings=client_settings,\n                persist_directory=persist_directory,\n                collection_name=collection_name,\n                top_k=top_k,\n            )\n        elif name == \"hnswlib\":\n            from gptcache.manager.vector_data.hnswlib_store import Hnswlib\n\n            dimension = kwargs.get(\"dimension\", DIMENSION)\n            index_path = kwargs.pop(\"index_path\", \"./hnswlib_index.bin\")\n            max_elements = kwargs.pop(\"max_elements\", 100000)\n            VectorBase.check_dimension(dimension)\n            vector_base = Hnswlib(\n                index_file_path=index_path,\n                dimension=dimension,\n                top_k=top_k,\n                max_elements=max_elements,\n            )\n        elif name == \"pgvector\":\n            from gptcache.manager.vector_data.pgvector import PGVector\n\n            dimension = kwargs.get(\"dimension\", DIMENSION)\n            url = kwargs.get(\"url\", PGVECTOR_URL)\n            collection_name = kwargs.get(\"collection_name\", COLLECTION_NAME)\n            index_params = kwargs.get(\"index_params\", PGVECTOR_INDEX_PARAMS)\n            vector_base = PGVector(\n                dimension=dimension,\n                top_k=top_k,\n                url=url,\n                collection_name=collection_name,\n                index_params=index_params,\n            )\n        elif name == \"docarray\":\n            from gptcache.manager.vector_data.docarray_index import DocArrayIndex\n\n            index_path = kwargs.pop(\"index_path\", \"./docarray_index.bin\")\n            vector_base = DocArrayIndex(index_file_path=index_path, top_k=top_k)\n        elif name == \"usearch\":\n            from gptcache.manager.vector_data.usearch import USearch\n\n            dimension = kwargs.get(\"dimension\", DIMENSION)\n            index_path = kwargs.pop(\"index_path\", \"./index.usearch\")\n            metric = kwargs.get(\"metric\", \"cos\")\n            dtype = kwargs.get(\"dtype\", \"f32\")\n            vector_base = USearch(\n                index_file_path=index_path,\n                dimension=dimension,\n                top_k=top_k,\n                metric=metric,\n                dtype=dtype,\n            )\n        elif name == \"redis\":\n            from gptcache.manager.vector_data.redis_vectorstore import RedisVectorStore\n            host = kwargs.get(\"host\", \"localhost\")\n            port = kwargs.get(\"port\", \"6379\")\n            user = kwargs.get(\"user\", \"\")\n            password = kwargs.get(\"password\", \"\")\n            namespace = kwargs.get(\"namespace\", \"\")\n            dimension = kwargs.get(\"dimension\", DIMENSION)\n            collection_name = kwargs.get(\"collection_name\", COLLECTION_NAME)\n\n            vector_base = RedisVectorStore(\n                host=host,\n                port=port,\n                username=user,\n                password=password,\n                namespace=namespace,\n                dimension=dimension,\n                collection_name=collection_name,\n                top_k=top_k,\n            )\n        elif name == \"qdrant\":\n            from gptcache.manager.vector_data.qdrant import QdrantVectorStore\n            url = kwargs.get(\"url\", None)\n            port = kwargs.get(\"port\", QDRANT_HTTP_PORT)\n            grpc_port = kwargs.get(\"grpc_port\", QDRANT_GRPC_PORT)\n            prefer_grpc = kwargs.get(\"prefer_grpc\", False)\n            https = kwargs.get(\"https\", False)\n            api_key = kwargs.get(\"api_key\", None)\n            prefix = kwargs.get(\"prefix\", None)\n            timeout = kwargs.get(\"timeout\", None)\n            host = kwargs.get(\"host\", None)\n            collection_name = kwargs.get(\"collection_name\", COLLECTION_NAME)\n            location = kwargs.get(\"location\", QDRANT_DEFAULT_LOCATION)\n            dimension = kwargs.get(\"dimension\", DIMENSION)\n            top_k: int = kwargs.get(\"top_k\", TOP_K)\n            flush_interval_sec = kwargs.get(\"flush_interval_sec\", QDRANT_FLUSH_INTERVAL_SEC)\n            index_params = kwargs.get(\"index_params\", QDRANT_INDEX_PARAMS)\n            vector_base = QdrantVectorStore(\n                url=url,\n                port=port,\n                grpc_port=grpc_port,\n                prefer_grpc=prefer_grpc,\n                https=https,\n                api_key=api_key,\n                prefix=prefix,\n                timeout=timeout,\n                host=host,\n                collection_name=collection_name,\n                location=location,\n                dimension=dimension,\n                top_k=top_k,\n                flush_interval_sec=flush_interval_sec,\n                index_params=index_params,\n            )\n        elif name == \"weaviate\":\n            from gptcache.manager.vector_data.weaviate import Weaviate\n\n            url = kwargs.get(\"url\", None)\n            auth_client_secret = kwargs.get(\"auth_client_secret\", None)\n            timeout_config = kwargs.get(\"timeout_config\", WEAVIATE_TIMEOUT_CONFIG)\n            proxies = kwargs.get(\"proxies\", None)\n            trust_env = kwargs.get(\"trust_env\", False)\n            additional_headers = kwargs.get(\"additional_headers\", None)\n            startup_period = kwargs.get(\"startup_period\", WEAVIATE_STARTUP_PERIOD)\n            embedded_options = kwargs.get(\"embedded_options\", None)\n            additional_config = kwargs.get(\"additional_config\", None)\n            class_name = kwargs.get(\"class_name\", \"GPTCache\")\n            class_schema = kwargs.get(\"class_schema\", None)\n\n            vector_base = Weaviate(\n                url=url,\n                auth_client_secret=auth_client_secret,\n                timeout_config=timeout_config,\n                proxies=proxies,\n                trust_env=trust_env,\n                additional_headers=additional_headers,\n                startup_period=startup_period,\n                embedded_options=embedded_options,\n                additional_config=additional_config,\n                class_name=class_name,\n                class_schema=class_schema,\n                top_k=top_k,\n            )\n        else:\n            raise NotFoundError(\"vector store\", name)\n        return vector_base\n"
  },
  {
    "path": "gptcache/manager/vector_data/milvus.py",
    "content": "from typing import List\nfrom uuid import uuid4\nimport numpy as np\n\nfrom gptcache.utils import import_pymilvus\nfrom gptcache.utils.log import gptcache_log\nfrom gptcache.manager.vector_data.base import VectorBase, VectorData\n\n\nimport_pymilvus()\n\nfrom pymilvus import (  # pylint: disable=C0413\n    connections,\n    utility,\n    FieldSchema,\n    DataType,\n    CollectionSchema,\n    Collection,\n    MilvusException,\n)\n\n\nclass Milvus(VectorBase):\n    \"\"\"vector store: Milvus\n\n    :param host: the host for Milvus vector database, defaults to 'localhost'.\n    :type host: str\n    :param port: the port for Milvus vector database, defaults to '19530'.\n    :type port: str\n    :param user: the user for Zilliz Cloud, defaults to \"\".\n    :type user: str\n    :param password: the password for Zilliz Cloud, defaults to \"\".\n    :type password: str\n    :param secure: whether it is https with Zilliz Cloud, defaults to False.\n    :type secures: bool\n    :param collection_name: the name of the collection for Milvus vector database, defaults to 'gptcache'.\n    :type collection_name: str\n    :param dimension: the dimension of the vector, defaults to 0.\n    :type dimension: int\n    :param top_k: the number of the vectors results to return, defaults to 1.\n    :type top_k: int\n    :param index_params: the index parameters for Milvus, defaults to the HNSW index: {'metric_type': 'L2', 'index_type': 'HNSW', 'params': {'M':\n                         8, 'efConstruction': 64}}.\n    :type index_params: dict\n    :param local_mode: if true, will start a local milvus server.\n    :type local_mode: bool\n    :param local_data: required when local_mode is True.\n    :type local_data: str\n    \"\"\"\n\n    SEARCH_PARAM = {\n        \"IVF_FLAT\": {\"metric_type\": \"L2\", \"params\": {\"nprobe\": 10}},\n        \"IVF_SQ8\": {\"metric_type\": \"L2\", \"params\": {\"nprobe\": 10}},\n        \"IVF_PQ\": {\"metric_type\": \"L2\", \"params\": {\"nprobe\": 10}},\n        \"HNSW\": {\"metric_type\": \"L2\", \"params\": {\"ef\": 10}},\n        \"RHNSW_FLAT\": {\"metric_type\": \"L2\", \"params\": {\"ef\": 10}},\n        \"RHNSW_SQ\": {\"metric_type\": \"L2\", \"params\": {\"ef\": 10}},\n        \"RHNSW_PQ\": {\"metric_type\": \"L2\", \"params\": {\"ef\": 10}},\n        \"IVF_HNSW\": {\"metric_type\": \"L2\", \"params\": {\"nprobe\": 10, \"ef\": 10}},\n        \"ANNOY\": {\"metric_type\": \"L2\", \"params\": {\"search_k\": 10}},\n        \"AUTOINDEX\": {\"metric_type\": \"L2\", \"params\": {}},\n    }\n\n    def __init__(\n        self,\n        host: str = \"localhost\",\n        port: str = \"19530\",\n        user: str = \"\",\n        password: str = \"\",\n        secure: bool = False,\n        collection_name: str = \"gptcache\",\n        dimension: int = 0,\n        top_k: int = 1,\n        index_params: dict = None,\n        search_params: dict = None,\n        local_mode: bool = False,\n        local_data: str = \"./milvus_data\"\n    ):\n        if dimension <= 0:\n            raise ValueError(\n                f\"invalid `dim` param: {dimension} in the Milvus vector store.\"\n            )\n        self._local_mode = local_mode\n        self._local_data = local_data\n        self.dimension = dimension\n        self.top_k = top_k\n        self.index_params = index_params\n        if self._local_mode:\n            self._create_local(port, local_data)\n        self._connect(host, port, user, password, secure)\n        self._create_collection(collection_name)\n        self.search_params = (\n            search_params or self.SEARCH_PARAM[self.index_params[\"index_type\"]]\n        )\n\n    def _create_local(self, port, local_data):\n        from gptcache.utils import import_milvus_lite  # pylint: disable=import-outside-toplevel\n        import_milvus_lite()\n        from milvus import MilvusServer  # pylint: disable=import-outside-toplevel\n        self._server = MilvusServer()\n        self._server.set_base_dir(local_data)\n        self._server.listen_port = int(port)\n        self._server.start()\n\n    def _connect(self, host, port, user, password, secure):\n        try:\n            i = [\n                connections.get_connection_addr(x[0])\n                for x in connections.list_connections()\n            ].index({\"host\": host, \"port\": port})\n            self.alias = connections.list_connections()[i][0]\n        except ValueError:\n            # Connect to the Milvus instance using the passed in Environment variables\n            self.alias = uuid4().hex\n            connections.connect(\n                alias=self.alias,\n                host=host,\n                port=port,\n                user=user,  # type: ignore\n                password=password,  # type: ignore\n                secure=secure,\n                timeout=10\n            )\n\n    def _create_collection(self, collection_name):\n        if not utility.has_collection(collection_name, using=self.alias):\n            schema = [\n                FieldSchema(\n                    name=\"id\",\n                    dtype=DataType.INT64,\n                    is_primary=True,\n                    auto_id=False,\n                ),\n                FieldSchema(\n                    name=\"embedding\", dtype=DataType.FLOAT_VECTOR, dim=self.dimension\n                ),\n            ]\n            schema = CollectionSchema(schema)\n            self.col = Collection(\n                collection_name,\n                schema=schema,\n                consistency_level=\"Strong\",\n                using=self.alias,\n            )\n        else:\n            gptcache_log.warning(\"The %s collection already exists, and it will be used directly.\", collection_name)\n            self.col = Collection(\n                collection_name, consistency_level=\"Strong\", using=self.alias\n            )\n\n        if len(self.col.indexes) == 0:\n            try:\n                gptcache_log.info(\"Attempting creation of Milvus index.\")\n                self.col.create_index(\"embedding\", index_params=self.index_params)\n                gptcache_log.info(\"Creation of Milvus index successful.\")\n            except MilvusException as e:\n                gptcache_log.warning(\"Error with building index: %s, and attempting creation of default index.\", e)\n                i_p = {\"metric_type\": \"L2\", \"index_type\": \"AUTOINDEX\", \"params\": {}}\n                self.col.create_index(\"embedding\", index_params=i_p)\n                self.index_params = i_p\n        else:\n            self.index_params = self.col.indexes[0].to_dict()[\"index_param\"]\n\n        self.col.load()\n\n    def mul_add(self, datas: List[VectorData]):\n        data_array, id_array = map(list, zip(*((data.data, data.id) for data in datas)))\n        np_data = np.array(data_array).astype(\"float32\")\n        entities = [id_array, np_data]\n        self.col.insert(entities)\n\n    def search(self, data: np.ndarray, top_k: int = -1):\n        if top_k == -1:\n            top_k = self.top_k\n        search_result = self.col.search(\n            data=data.reshape(1, -1).tolist(),\n            anns_field=\"embedding\",\n            param=self.search_params,\n            limit=top_k,\n        )\n        return list(zip(search_result[0].distances, search_result[0].ids))\n\n    def delete(self, ids):\n        del_ids = \",\".join([str(x) for x in ids])\n        self.col.delete(f\"id in [{del_ids}]\")\n\n    def rebuild(self, ids=None):  # pylint: disable=unused-argument\n        self.col.compact()\n\n    def flush(self):\n        self.col.flush(_async=True)\n\n    def close(self):\n        self.flush()\n        if self._local_mode:\n            self._server.stop()\n\n    def get_embeddings(self, data_id: int):\n        vec_emb = self.col.query(\n            expr=f\"id == {data_id}\",\n            output_fields=[\"embedding\"],\n        )\n        if len(vec_emb) < 1:\n            return None\n        vec_emb = np.asarray(vec_emb[0][\"embedding\"], dtype=\"float32\")\n        return vec_emb\n\n    def update_embeddings(self, data_id: int, emb: np.ndarray):\n        self.col.delete(f\"id in [{data_id}]\")\n        data = [\n            [data_id],\n            np.expand_dims(emb, axis=0),\n        ]\n        self.col.insert(data)\n"
  },
  {
    "path": "gptcache/manager/vector_data/pgvector.py",
    "content": "from typing import List\n\nimport numpy as np\n\nfrom gptcache.manager.vector_data.base import VectorBase, VectorData\nfrom gptcache.utils import import_sqlalchemy\n\nimport_sqlalchemy()\n\n# pylint: disable=wrong-import-position\nfrom sqlalchemy import create_engine, Column, Index, text  # pylint: disable=C0413\nfrom sqlalchemy.types import (  # pylint: disable=C0413\n    Integer,\n    UserDefinedType\n)\nfrom sqlalchemy.orm import sessionmaker  # pylint: disable=C0413\nfrom sqlalchemy.ext.declarative import declarative_base  # pylint: disable=C0413\n\nBase = declarative_base()\n\n\nclass _VectorType(UserDefinedType):\n    \"\"\"\n    pgvector type mapping for sqlalchemy\n    \"\"\"\n    cache_ok = True\n\n    def __init__(self, precision=8):\n        self.precision = precision\n\n    def get_col_spec(self, **_):\n        return f\"vector({self.precision})\"\n\n    # pylint: disable=unused-argument\n    def bind_processor(self, dialect):\n        return lambda value: value\n\n    # pylint: disable=unused-argument\n    def result_processor(self, dialect, coltype):\n        return lambda value: value\n\n\ndef _get_model_and_index(table_prefix, vector_dimension, index_type, lists):\n    class VectorStoreTable(Base):\n        \"\"\"\n        vector store table\n        \"\"\"\n\n        __tablename__ = table_prefix + \"_pg_vector_store\"\n        __table_args__ = {\"extend_existing\": True}\n        id = Column(Integer, primary_key=True, autoincrement=False)\n        embedding = Column(_VectorType(vector_dimension), nullable=False)\n\n    vector_store_index = Index(\n        f\"idx_{table_prefix}_pg_vector_store_embedding\",\n        text(f\"embedding {index_type}\"),\n        postgresql_using=\"ivfflat\",\n        postgresql_with={\"lists\": lists}\n    )\n\n    vector_store_index.table = VectorStoreTable.__table__\n\n    return VectorStoreTable, vector_store_index\n\n\nclass PGVector(VectorBase):\n    \"\"\"vector store: pgvector\n\n    :param url: the connection url for PostgreSQL database, defaults to 'postgresql://postgres@localhost:5432/postgres'.\n    :type url: str\n    :type collection_name: str\n    :param dimension: the dimension of the vector, defaults to 0.\n    :type dimension: int\n    :param top_k: the number of the vectors results to return, defaults to 1.\n    :type top_k: int\n    :param index_params: the index parameters for pgvector, defaults to 'vector_l2_ops' index:\n                         {\"index_type\": \"L2\", \"params\": {\"lists\": 100, \"probes\": 10}.\n    :type index_params: dict\n    \"\"\"\n\n    INDEX_PARAM = {\n        \"L2\": {\"operator\": \"<->\", \"name\": \"vector_l2_ops\"},  # The only one supported now\n        \"cosine\": {\"operator\": \"<=>\", \"name\": \"vector_cosine_ops\"},\n        \"inner_product\": {\"operator\": \"<->\", \"name\": \"vector_ip_ops\"},\n    }\n\n    def __init__(\n            self,\n            url: str,\n            index_params: dict,\n            collection_name: str = \"gptcache\",\n            dimension: int = 0,\n            top_k: int = 1,\n    ):\n        if dimension <= 0:\n            raise ValueError(\n                f\"invalid `dim` param: {dimension} in the pgvector store.\"\n            )\n        self.dimension = dimension\n        self.top_k = top_k\n        self.index_params = index_params\n        self._url = url\n        self._store, self._index = _get_model_and_index(\n            collection_name,\n            dimension,\n            index_type=self.INDEX_PARAM[index_params[\"index_type\"]][\"name\"],\n            lists=index_params[\"params\"][\"lists\"]\n        )\n        self._connect(url)\n        self._create_collection()\n\n    def _connect(self, url):\n        self._engine = create_engine(url, echo=False)\n        self._session = sessionmaker(bind=self._engine)  # pylint: disable=invalid-name\n\n    def _create_collection(self):\n        with self._engine.connect() as con:\n            con.execution_options(isolation_level=\"AUTOCOMMIT\").execute(text(\"CREATE EXTENSION IF NOT EXISTS vector;\"))\n\n        self._store.__table__.create(bind=self._engine, checkfirst=True)\n        self._index.create(bind=self._engine, checkfirst=True)\n\n    def _query(self, session):\n        return session.query(self._store)\n\n    def _format_data_for_search(self, data):\n        return f\"[{','.join(map(str, data))}]\"\n\n    def mul_add(self, datas: List[VectorData]):\n        data_array, id_array = map(list, zip(*((data.data, data.id) for data in datas)))\n        np_data = np.array(data_array).astype(\"float32\")\n        entities = [{\"id\": id, \"embedding\": embedding.tolist()} for id, embedding in zip(id_array, np_data)]\n\n        with self._session() as session:\n            session.bulk_insert_mappings(self._store, entities)\n            session.commit()\n\n    def search(self, data: np.ndarray, top_k: int = -1):\n        if top_k == -1:\n            top_k = self.top_k\n\n        formatted_data = self._format_data_for_search(data.reshape(1, -1)[0].tolist())\n        index_config = self.INDEX_PARAM[self.index_params[\"index_type\"]]\n        similarity = self._store.embedding.op(index_config[\"operator\"])(formatted_data)\n        with self._session() as session:\n            session.execute(text(f\"SET LOCAL ivfflat.probes = {self.index_params['params']['probes'] or 10};\"))\n            search_result = self._query(session).add_columns(\n                similarity.label(\"distances\")\n            ).order_by(\n                similarity\n            ).limit(top_k).all()\n            search_result = [(r[1], r[0].id) for r in search_result]\n\n        return search_result\n\n    def delete(self, ids):\n        with self._session() as session:\n            self._query(session).filter(self._store.id.in_(ids)).delete()\n            session.commit()\n\n    def rebuild(self, ids=None):  # pylint: disable=unused-argument\n        with self._engine.connect() as con:\n            con.execution_options(isolation_level=\"AUTOCOMMIT\").execute(\n                text(f\"REINDEX INDEX CONCURRENTLY {self._index.name}\"))\n\n    def flush(self):\n        with self._session() as session:\n            session.flush()\n\n    def close(self):\n        self.flush()\n"
  },
  {
    "path": "gptcache/manager/vector_data/qdrant.py",
    "content": "from typing import List, Optional\n\nimport numpy as np\n\nfrom gptcache.manager.vector_data.base import VectorBase, VectorData\nfrom gptcache.utils import import_qdrant\nfrom gptcache.utils.log import gptcache_log\n\nimport_qdrant()\n\n# pylint: disable=C0413\nfrom qdrant_client import QdrantClient\nfrom qdrant_client.models import (\n    PointStruct,\n    HnswConfigDiff,\n    VectorParams,\n    OptimizersConfigDiff,\n    Distance,\n)\n\n\nclass QdrantVectorStore(VectorBase):\n    \"\"\"Qdrant Vector Store\"\"\"\n\n    def __init__(\n        self,\n        url: Optional[str] = None,\n        port: Optional[int] = 6333,\n        grpc_port: int = 6334,\n        prefer_grpc: bool = False,\n        https: Optional[bool] = None,\n        api_key: Optional[str] = None,\n        prefix: Optional[str] = None,\n        timeout: Optional[float] = None,\n        host: Optional[str] = None,\n        collection_name: Optional[str] = \"gptcache\",\n        location: Optional[str] = \"./qdrant\",\n        dimension: int = 0,\n        top_k: int = 1,\n        flush_interval_sec: int = 5,\n        index_params: Optional[dict] = None,\n    ):\n        if dimension <= 0:\n            raise ValueError(\n                f\"invalid `dim` param: {dimension} in the Qdrant vector store.\"\n            )\n        self._client: QdrantClient\n        self._collection_name = collection_name\n        self._in_memory = location == \":memory:\"\n        self.dimension = dimension\n        self.top_k = top_k\n        if self._in_memory or location is not None:\n            self._create_local(location)\n        else:\n            self._create_remote(\n                url, port, api_key, timeout, host, grpc_port, prefer_grpc, prefix, https\n            )\n        self._create_collection(collection_name, flush_interval_sec, index_params)\n\n    def _create_local(self, location):\n        self._client = QdrantClient(location=location)\n\n    def _create_remote(\n        self, url, port, api_key, timeout, host, grpc_port, prefer_grpc, prefix, https\n    ):\n        self._client = QdrantClient(\n            url=url,\n            port=port,\n            api_key=api_key,\n            timeout=timeout,\n            host=host,\n            grpc_port=grpc_port,\n            prefer_grpc=prefer_grpc,\n            prefix=prefix,\n            https=https,\n        )\n\n    def _create_collection(\n        self,\n        collection_name: str,\n        flush_interval_sec: int,\n        index_params: Optional[dict] = None,\n    ):\n        hnsw_config = HnswConfigDiff(**(index_params or {}))\n        vectors_config = VectorParams(\n            size=self.dimension, distance=Distance.COSINE, hnsw_config=hnsw_config\n        )\n        optimizers_config = OptimizersConfigDiff(\n            deleted_threshold=0.2,\n            vacuum_min_vector_number=1000,\n            flush_interval_sec=flush_interval_sec,\n        )\n        # check if the collection exists\n        existing_collections = self._client.get_collections()\n        for existing_collection in existing_collections.collections:\n            if existing_collection.name == collection_name:\n                gptcache_log.warning(\n                    \"The %s collection already exists, and it will be used directly.\",\n                    collection_name,\n                )\n                break\n        else:\n            self._client.create_collection(\n                collection_name=collection_name,\n                vectors_config=vectors_config,\n                optimizers_config=optimizers_config,\n            )\n\n    def mul_add(self, datas: List[VectorData]):\n        points = [\n            PointStruct(id=d.id, vector=d.data.reshape(-1).tolist()) for d in datas\n        ]\n        self._client.upsert(\n            collection_name=self._collection_name, points=points, wait=False\n        )\n\n    def search(self, data: np.ndarray, top_k: int = -1):\n        if top_k == -1:\n            top_k = self.top_k\n        reshaped_data = data.reshape(-1).tolist()\n        search_result = self._client.search(\n            collection_name=self._collection_name,\n            query_vector=reshaped_data,\n            limit=top_k,\n        )\n        return list(map(lambda x: (x.score, x.id), search_result))\n\n    def delete(self, ids: List[str]):\n        self._client.delete(collection_name=self._collection_name, points_selector=ids)\n\n    def rebuild(self, ids=None):  # pylint: disable=unused-argument\n        optimizers_config = OptimizersConfigDiff(\n            deleted_threshold=0.2, vacuum_min_vector_number=1000\n        )\n        self._client.update_collection(\n            collection_name=self._collection_name, optimizer_config=optimizers_config\n        )\n\n    def flush(self):\n        # no need to flush manually as qdrant flushes automatically based on the optimizers_config for remote Qdrant\n        pass\n\n    def close(self):\n        self.flush()\n"
  },
  {
    "path": "gptcache/manager/vector_data/redis_vectorstore.py",
    "content": "from typing import List\n\nimport numpy as np\n\nfrom gptcache.manager.vector_data.base import VectorBase, VectorData\nfrom gptcache.utils import import_redis\nfrom gptcache.utils.log import gptcache_log\n\nimport_redis()\n\n# pylint: disable=C0413\nfrom redis.commands.search.indexDefinition import IndexDefinition, IndexType\nfrom redis.commands.search.query import Query\nfrom redis.commands.search.field import TagField, VectorField\nfrom redis.client import Redis\n\n\nclass RedisVectorStore(VectorBase):\n    \"\"\" vector store: Redis\n\n    :param host: redis host, defaults to \"localhost\".\n    :type host: str\n    :param port: redis port, defaults to \"6379\".\n    :type port: str\n    :param username: redis username, defaults to \"\".\n    :type username: str\n    :param password: redis password, defaults to \"\".\n    :type password: str\n    :param dimension: the dimension of the vector, defaults to 0.\n    :type dimension: int\n    :param collection_name: the name of the index for Redis, defaults to \"gptcache\".\n    :type collection_name: str\n    :param top_k: the number of the vectors results to return, defaults to 1.\n    :type top_k: int\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.manager import VectorBase\n\n            vector_base = VectorBase(\"redis\", dimension=10)\n    \"\"\"\n    def __init__(\n        self,\n        host: str = \"localhost\",\n        port: str = \"6379\",\n        username: str = \"\",\n        password: str = \"\",\n        dimension: int = 0,\n        collection_name: str = \"gptcache\",\n        top_k: int = 1,\n        namespace: str = \"\",\n    ):\n        self._client = Redis(\n            host=host, port=int(port), username=username, password=password\n        )\n        self.top_k = top_k\n        self.dimension = dimension\n        self.collection_name = collection_name\n        self.namespace = namespace\n        self.doc_prefix = f\"{self.namespace}doc:\"  # Prefix with the specified namespace\n        self._create_collection(collection_name)\n\n    def _check_index_exists(self, index_name: str) -> bool:\n        \"\"\"Check if Redis index exists.\"\"\"\n        try:\n            self._client.ft(index_name).info()\n        except:  # pylint: disable=W0702\n            gptcache_log.info(\"Index does not exist\")\n            return False\n        gptcache_log.info(\"Index already exists\")\n        return True\n\n    def _create_collection(self, collection_name):\n        if self._check_index_exists(collection_name):\n            gptcache_log.info(\n                \"The %s already exists, and it will be used directly\", collection_name\n            )\n        else:\n            schema = (\n                TagField(\"tag\"),  # Tag Field Name\n                VectorField(\n                    \"vector\",  # Vector Field Name\n                    \"FLAT\",\n                    {  # Vector Index Type: FLAT or HNSW\n                        \"TYPE\": \"FLOAT32\",  # FLOAT32 or FLOAT64\n                        \"DIM\": self.dimension,  # Number of Vector Dimensions\n                        \"DISTANCE_METRIC\": \"COSINE\",  # Vector Search Distance Metric\n                    },\n                ),\n            )\n            definition = IndexDefinition(\n                prefix=[self.doc_prefix], index_type=IndexType.HASH\n            )\n\n            # create Index\n            self._client.ft(collection_name).create_index(\n                fields=schema, definition=definition\n            )\n\n    def mul_add(self, datas: List[VectorData]):\n        pipe = self._client.pipeline()\n\n        for data in datas:\n            key: int = data.id\n            obj = {\n                \"vector\": data.data.astype(np.float32).tobytes(),\n            }\n            pipe.hset(f\"{self.doc_prefix}{key}\", mapping=obj)\n\n        pipe.execute()\n\n    def search(self, data: np.ndarray, top_k: int = -1):\n        query = (\n            Query(\n                f\"*=>[KNN {top_k if top_k > 0 else self.top_k} @vector $vec as score]\"\n            )\n            .sort_by(\"score\")\n            .return_fields(\"id\", \"score\")\n            .paging(0, top_k if top_k > 0 else self.top_k)\n            .dialect(2)\n        )\n        query_params = {\"vec\": data.astype(np.float32).tobytes()}\n        results = (\n            self._client.ft(self.collection_name)\n            .search(query, query_params=query_params)\n            .docs\n        )\n        return [(float(result.score), int(result.id[len(self.doc_prefix):])) for result in results]\n\n    def rebuild(self, ids=None) -> bool:\n        pass\n\n    def delete(self, ids) -> None:\n        pipe = self._client.pipeline()\n        for data_id in ids:\n            pipe.delete(f\"{self.doc_prefix}{data_id}\")\n        pipe.execute()\n"
  },
  {
    "path": "gptcache/manager/vector_data/usearch.py",
    "content": "import os\nfrom typing import List\n\nimport numpy as np\n\nfrom gptcache.manager.vector_data.base import VectorBase, VectorData\nfrom gptcache.utils import import_usearch\n\nimport_usearch()\n\nfrom usearch.index import Index  # pylint: disable=C0413\nfrom usearch.compiled import MetricKind  # pylint: disable=C0413\n\n\nclass USearch(VectorBase):\n    \"\"\"vector store: Usearch\n\n    :param index_path: the path to Usearch index, defaults to 'index.usearch'.\n    :type index_path: str\n    :param dimension: the dimension of the vector, defaults to 0.\n    :type dimension: int\n    :param top_k: the number of the vectors results to return, defaults to 1.\n    :type top_k: int\n    :param metric: the distance mrtric. 'l2', 'haversine' or other, default = 'ip'\n    :type metric: str\n    :param dtype: the quantization dtype, 'f16' or 'f8' if needed, default = 'f32'\n    :type dtype: str\n    :param connectivity: the frequency of the connections in the graph, optional\n    :type connectivity: int\n    :param expansion_add: the recall of indexing, optional\n    :type expansion_add: int\n    :param expansion_search: the quality of search, optional\n    :type expansion_search: int\n    \"\"\"\n\n    def __init__(\n        self,\n        index_file_path: str = \"index.usearch\",\n        dimension: int = 64,\n        top_k: int = 1,\n        metric: str = \"cos\",\n        dtype: str = \"f32\",\n        connectivity: int = 16,\n        expansion_add: int = 128,\n        expansion_search: int = 64,\n    ):\n        self._index_file_path = index_file_path\n        self._dimension = dimension\n        self._top_k = top_k\n        self._index = Index(\n            ndim=self._dimension,\n            metric=getattr(MetricKind, metric.lower().capitalize()),\n            dtype=dtype,\n            connectivity=connectivity,\n            expansion_add=expansion_add,\n            expansion_search=expansion_search,\n        )\n        if os.path.isfile(self._index_file_path):\n            self._index.load(self._index_file_path)\n\n    def mul_add(self, datas: List[VectorData]):\n        data_array, id_array = map(list, zip(*((data.data, data.id) for data in datas)))\n        np_data = np.array(data_array).astype(\"float32\")\n        ids = np.array(id_array, dtype=np.longlong)\n        self._index.add(ids, np_data)\n\n    def search(self, data: np.ndarray, top_k: int = -1):\n        if top_k == -1:\n            top_k = self._top_k\n        np_data = np.array(data).astype(\"float32\").reshape(1, -1)\n        ids, dist, _ = self._index.search(np_data, top_k)\n        return list(zip(dist[0], ids[0]))\n\n    def rebuild(self, ids=None):\n        return True\n\n    def delete(self, ids):\n        raise NotImplementedError\n\n    def flush(self):\n        self._index.save(self._index_file_path)\n\n    def close(self):\n        self.flush()\n\n    def count(self):\n        return len(self._index)\n"
  },
  {
    "path": "gptcache/manager/vector_data/weaviate.py",
    "content": "from typing import List, Optional, Tuple, Union\nimport numpy as np\n\nfrom gptcache.utils import import_weaviate\nfrom gptcache.utils.log import gptcache_log\nfrom gptcache.manager.vector_data.base import VectorBase, VectorData\n\nimport_weaviate()\n\nfrom weaviate import Client\nfrom weaviate.auth import AuthCredentials\nfrom weaviate.config import Config\nfrom weaviate.embedded import EmbeddedOptions\nfrom weaviate.types import NUMBERS\n\n\nclass Weaviate(VectorBase):\n    \"\"\"\n    vector store: Weaviate\n    \"\"\"\n\n    TIMEOUT_TYPE = Union[Tuple[NUMBERS, NUMBERS], NUMBERS]\n\n    def __init__(\n        self,\n        url: Optional[str] = None,\n        auth_client_secret: Optional[AuthCredentials] = None,\n        timeout_config: TIMEOUT_TYPE = (10, 60),\n        proxies: Union[dict, str, None] = None,\n        trust_env: bool = False,\n        additional_headers: Optional[dict] = None,\n        startup_period: Optional[int] = 5,\n        embedded_options: Optional[EmbeddedOptions] = None,\n        additional_config: Optional[Config] = None,\n        class_name: str = \"GPTCache\",\n        class_schema: dict = None,\n        top_k: Optional[int] = 1,\n    ) -> None:\n\n        if url is None and embedded_options is None:\n            embedded_options = EmbeddedOptions()\n\n        self.client = Client(\n            url=url,\n            auth_client_secret=auth_client_secret,\n            timeout_config=timeout_config,\n            proxies=proxies,\n            trust_env=trust_env,\n            additional_headers=additional_headers,\n            startup_period=startup_period,\n            embedded_options=embedded_options,\n            additional_config=additional_config,\n        )\n\n        if class_schema:\n            self.class_schema = class_schema\n            self.class_name = class_schema.get(\"class\")\n        else:\n            self.class_name = class_name\n            self.class_schema = self._get_default_class_schema()\n\n        self._create_class()\n        self.top_k = top_k\n\n    def _create_class(self):\n        if self.client.schema.exists(self.class_name):\n            gptcache_log.warning(\n                \"The %s collection already exists, and it will be used directly.\",\n                self.class_name,\n            )\n        else:\n            self.client.schema.create_class(self.class_schema)\n        return self.class_name\n\n    def _get_default_class_schema(self) -> dict:\n        return {\n            \"class\": self.class_name,\n            \"description\": \"LLM response cache\",\n            \"properties\": [\n                {\n                    \"name\": \"data_id\",\n                    \"dataType\": [\"int\"],\n                    \"description\": \"The data-id generated by GPTCache for vectors.\",\n                }\n            ],\n            \"vectorIndexConfig\": {\"distance\": \"cosine\"},\n        }\n\n    def mul_add(self, datas: List[VectorData]):\n        with self.client.batch(batch_size=100, dynamic=True) as batch:\n            for data in datas:\n                properties = {\n                    \"data_id\": data.id,\n                }\n\n                batch.add_data_object(\n                    data_object=properties, class_name=self.class_name, vector=data.data\n                )\n\n    def search(self, data: np.ndarray, top_k: int = -1):\n        if top_k == -1:\n            top_k = self.top_k\n\n        result = (\n            self.client.query.get(class_name=self.class_name, properties=[\"data_id\"])\n            .with_near_vector(content={\"vector\": data})\n            .with_additional([\"distance\"])\n            .with_limit(top_k)\n            .do()\n        )\n\n        return list(\n            map(\n                lambda x: (x[\"_additional\"][\"distance\"], x[\"data_id\"]),\n                result[\"data\"][\"Get\"][self.class_name],\n            )\n        )\n\n    def _get_uuids(self, data_ids):\n        uuid_list = []\n\n        for data_id in data_ids:\n            res = (\n                self.client.query.get(\n                    class_name=self.class_name, properties=[\"data_id\"]\n                )\n                .with_where(\n                    {\"path\": [\"data_id\"], \"operator\": \"Equal\", \"valueInt\": data_id}\n                )\n                .with_additional([\"id\"])\n                .do()\n            )\n\n            uuid_list.append(\n                res[\"data\"][\"Get\"][self.class_name][0][\"_additional\"][\"id\"]\n            )\n\n        return uuid_list\n\n    def delete(self, ids):\n        uuids = self._get_uuids(ids)\n\n        for uuid in uuids:\n            self.client.data_object.delete(class_name=self.class_name, uuid=uuid)\n\n    def rebuild(self, ids=None):\n        return\n\n    def flush(self):\n        self.client.batch.flush()\n\n    def close(self):\n        self.flush()\n\n    def get_embeddings(self, data_id: int):\n        results = (\n            self.client.query.get(class_name=self.class_name, properties=[\"data_id\"])\n            .with_where(\n                {\n                    \"path\": [\"data_id\"],\n                    \"operator\": \"Equal\",\n                    \"valueInt\": data_id,\n                }\n            )\n            .with_additional([\"vector\"])\n            .with_limit(1)\n            .do()\n        )\n\n        results = results[\"data\"][\"Get\"][self.class_name]\n\n        if len(results) < 1:\n            return None\n\n        vec_emb = np.asarray(results[0][\"_additional\"][\"vector\"], dtype=\"float32\")\n        return vec_emb\n\n    def update_embeddings(self, data_id: int, emb: np.ndarray):\n        self.delete([data_id])\n\n        properties = {\n            \"data_id\": data_id,\n        }\n\n        self.client.data_object.create(\n            data_object=properties, class_name=self.class_name, vector=emb\n        )\n"
  },
  {
    "path": "gptcache/processor/__init__.py",
    "content": "from gptcache.processor.context.context import ContextProcess\n"
  },
  {
    "path": "gptcache/processor/check_hit.py",
    "content": "# pylint: disable=unused-argument\ndef check_hit_session(cur_session_id: str, cache_session_ids: list, cache_questions: list, cache_answer: str):\n    \"\"\"\n    Check if the sesion result meets the hit requirement.\n\n    :param cur_session_id: the name of the current session.\n    :type cur_session_id: str\n    :param cache_session_ids: a list of session names for caching the same content if you are using map as a data management method.\n                              Otherwise a list of session names for similar content and same answer.\n    :type cache_session_ids: list\n    :param cache_question: a list with one question which same as the you asked if you use a map as a data management method.\n                           Otherwise it is a list that is similar to the question you asked with the same answer,\n                           and it is correspondence with cache_session_ids.\n    :type cache_question: list\n    :param cache_answer: the content of the cached answer.\n    :param cache_answer: str\n\n    :return: True or False\n    \"\"\"\n    return cur_session_id not in cache_session_ids\n"
  },
  {
    "path": "gptcache/processor/context/__init__.py",
    "content": "from gptcache.utils.lazy_import import LazyImport\n\nsummarization = LazyImport(\n    \"summarization_context\",\n    globals(),\n    \"gptcache.processor.context.summarization_context\",\n)\nselective = LazyImport(\n    \"selective_context\", globals(), \"gptcache.processor.context.selective_context\"\n)\nconcat = LazyImport(\n    \"concat_context\", globals(), \"gptcache.processor.context.concat_context\"\n)\n\n\n__all__ = [\n    \"SummarizationContextProcess\",\n    \"SelectiveContextProcess\",\n    \"ConcatContextProcess\",\n]\n\n\ndef SummarizationContextProcess(model_name=None, tokenizer=None, target_length=512):\n    return summarization.SummarizationContextProcess(\n        model_name, tokenizer, target_length\n    )\n\n\ndef SelectiveContextProcess(\n    model_type: str = \"gpt2\",\n    lang: str = \"en\",\n    reduce_ratio: float = 0.35,\n    reduce_level: str = \"phrase\",\n):\n    return selective.SelectiveContextProcess(\n        model_type=model_type,\n        lang=lang,\n        reduce_ratio=reduce_ratio,\n        reduce_level=reduce_level,\n    )\n\n\ndef ConcatContextProcess():\n    return concat.ConcatContextProcess()\n"
  },
  {
    "path": "gptcache/processor/context/concat_context.py",
    "content": "from typing import Any, Dict\n\nfrom gptcache.processor import ContextProcess\n\n\nclass ConcatContextProcess(ContextProcess):\n    \"\"\"A concat context processor simply concat the context.\n    Generally used with rwkv embedding, because rwkv can input almost infinitely long\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.manager import manager_factory\n            from gptcache.processor.context.concat_context import ConcatContextProcess\n\n            context_process = ConcatContextProcess()\n            rwkv_embedding = Rwkv()\n            data_manager = manager_factory(\n                \"sqlite,faiss\",\n                vector_params={\"dimension\": rwkv_embedding.dimension},\n            )\n            cache.init(\n                pre_embedding_func=context_process.pre_process,\n                embedding_func=rwkv_embedding.to_embeddings,\n                data_manager=data_manager,\n            )\n    \"\"\"\n\n    content: str = \"\"\n\n    def __init__(\n            self\n    ):\n        self.content = \"\"\n        self.concat_content = \"\"\n\n    def format_all_content(self, data: Dict[str, Any], **params: Dict[str, Any]):\n        for query in data[\"messages\"]:\n            self.content += f\"{query['role']}: {query['content']} \\n\"\n            self.concat_content += query[\"content\"]\n\n    def process_all_content(self) -> (Any, Any):\n        return self.content, self.concat_content\n"
  },
  {
    "path": "gptcache/processor/context/context.py",
    "content": "from abc import ABCMeta, abstractmethod\nfrom typing import Dict, Any\n\n\nclass ContextProcess(metaclass=ABCMeta):\n    \"\"\"ContextProcess: the context process interfacer, which is used to pre-process the lang conversation.\n    By the way, the GPTCache will acquire more information and get a more accurate embedding vector.\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.processor.context import SummarizationContextProcess\n\n            context_process = SummarizationContextProcess()\n            cache.init(pre_embedding_func=context_process.pre_process)\n    \"\"\"\n\n    @abstractmethod\n    def format_all_content(self, data: Dict[str, Any], **params: Dict[str, Any]):\n        \"\"\"format all content of the llm request data as a string\n\n        :param data: the user llm request data\n        :type data: Dict[str, Any]\n        \"\"\"\n        pass\n\n    @abstractmethod\n    def process_all_content(self) -> (Any, Any):\n        \"\"\"process all content of the llm request data, for extracting key information in context.\n        In order to achieve this goal, you can pass the summary model and so on\n        \"\"\"\n        pass\n\n    def pre_process(self, data: Dict[str, Any], **params: Dict[str, Any]) -> (Any, Any):\n        \"\"\" pre-process function, it's used as the GPTCache initialization param -- pre_embedding_func.\n\n        :param data: the user llm request data\n        :type data: Dict[str, Any]\n        \"\"\"\n        self.format_all_content(data, **params)\n        return self.process_all_content()\n"
  },
  {
    "path": "gptcache/processor/context/selective_context.py",
    "content": "from typing import Any, Dict\n\nfrom gptcache.processor import ContextProcess\nfrom gptcache.utils import import_selective_context\n\nimport_selective_context()\n\nfrom selective_context import SelectiveContext  # pylint: disable=C0413\n\n\nclass SelectiveContextProcess(ContextProcess):\n    \"\"\"A context processor for selecting context\n\n    Need to download the corresponding model before use, the default English model is: en_core_web_sm\n\n    `pip install spacy && python -m spacy download en_core_web_sm`\n\n    :param model_type: the selective context model name, default value is 'gpt2'\n    :type model_type: str\n    :param lang: the content lang type, default value is 'en'.\n    :type lang: str\n    :param reduce_ratio: selective context ratio. The range for the value is between 0 and 1, with a default value of 0.35.\n    :type reduce_ratio: float\n    :param reduce_level: selective context level. The valid values include 'sent', 'phrase', and 'token', with the default value being 'phrase'.\n    :type reduce_level: str\n\n    more details: https://github.com/liyucheng09/Selective_Context\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.processor.context.selective_context import SelectiveContextProcess\n\n            context_process = SelectiveContextProcess()\n            cache.init(pre_embedding_func=context_process.pre_process)\n    \"\"\"\n\n    content: str = \"\"\n\n    def __init__(\n            self,\n            model_type: str = \"gpt2\",\n            lang: str = \"en\",\n            reduce_ratio: float = 0.35,\n            reduce_level: str = \"phrase\",\n    ):\n        self.sc = SelectiveContext(model_type=model_type, lang=lang)\n        self.reduce_ratio = reduce_ratio\n        self.reduce_level = reduce_level\n\n    def format_all_content(self, data: Dict[str, Any], **params: Dict[str, Any]):\n        for query in data[\"messages\"]:\n            self.content += f\"{query['role']}: {query['content']} \\n\"\n\n    def process_all_content(self) -> (Any, Any):\n        selective_content, _ = self.sc(\n            self.content, reduce_ratio=self.reduce_ratio, reduce_level=self.reduce_level\n        )\n        return self.content, selective_content\n"
  },
  {
    "path": "gptcache/processor/context/summarization_context.py",
    "content": "from typing import Dict, Any\n\nimport numpy as np\n\nfrom gptcache.processor import ContextProcess\nfrom gptcache.utils import import_huggingface\n\nimport_huggingface()\n\nimport transformers  # pylint: disable=C0413\n\n\ndef summarize_to_length(summarizer, text, target_len, max_len=1024):\n    tokenizer = summarizer.tokenizer\n\n    def token_length(text):\n        return len(tokenizer.encode(text))\n\n    segment_len = max_len - 100\n    summary_result = text\n    while token_length(text) > target_len:\n        tokens = tokenizer.encode(text)\n        segments = [\n            tokens[i : i + segment_len] for i in range(0, len(tokens), segment_len - 1)\n        ]\n        summary_result = \"\"\n        for segment in segments:\n            len_seg = int(len(segment) / 4)\n            summary = summarizer(\n                tokenizer.decode(segment),\n                min_length=max(len_seg - 10, 1),\n                max_length=len_seg,\n            )\n            summary_result += summary[0][\"summary_text\"]\n        text = summary_result\n    return summary_result\n\n\nclass SummarizationContextProcess(ContextProcess):\n    \"\"\"A context processor for summarizing large amounts of text data using a summarizer model.\n\n    :param summarizer: The summarizer model to use for summarization.\n    :type summarizer: transformers.PreTrainedModel\n    :param tokenizer: The tokenizer to use for tokenizing the text data.\n    It used for measuring the output length.\n    :type tokenizer: transformers.PreTrainedTokenizer\n    :param target_length: The length of the summarized text.\n    :type target_length: int\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.processor.context.summarization_context import SummarizationContextProcess\n\n            context_process = SummarizationContextProcess()\n            cache.init(pre_embedding_func=context_process.pre_process)\n    \"\"\"\n\n    def __init__(\n        self, model_name=\"facebook/bart-large-cnn\", tokenizer=None, target_length=512\n    ):\n        summarizer = transformers.pipeline(task=\"summarization\", model=model_name)\n        self.summarizer = summarizer\n        self.target_length = target_length\n        if tokenizer is None:\n            tokenizer = transformers.RobertaTokenizer.from_pretrained(\"roberta-base\")\n        self.tokenizer = tokenizer\n        self.content = \"\"\n\n    def summarize_to_sentence(self, sentences, target_size=1000):\n        lengths = []\n        for sentence in sentences:\n            lengths.append(len(sentence))\n        total_length = np.array(lengths).sum()\n        target_lengths = [int(target_size * l / total_length) for l in lengths]\n        target_sentences = []\n        for sent, target_len in zip(sentences, target_lengths):\n            if len(self.tokenizer.tokenize(sent)) > target_len:\n                response = summarize_to_length(\n                    self.summarizer, sent, target_len, self.tokenizer.model_max_length\n                )\n                target_sentence = response\n            else:\n                target_sentence = sent\n            target_sentences.append(target_sentence)\n        result = \"\"\n        for target_sentence in target_sentences:\n            result = result + target_sentence\n        return result\n\n    def format_all_content(self, data: Dict[str, Any], **params: Dict[str, Any]):\n        contents = []\n        for query in data[\"messages\"]:\n            contents.append(query)\n        self.content = contents\n\n    def process_all_content(self) -> (Any, Any):\n        def serialize_content(content):\n            ret = \"\"\n            for message in content:\n                ret += \"[#RS]{}[#RE][#CS]{}[#CE]\".format(\n                    message[\"role\"], message[\"content\"]\n                )\n            return ret\n\n        result = self.summarize_to_sentence(\n            [message[\"content\"] for message in self.content], self.target_length\n        )\n        save_content = serialize_content(self.content)\n        embedding_content = result\n        return save_content, embedding_content\n"
  },
  {
    "path": "gptcache/processor/post.py",
    "content": "import random\nfrom typing import List, Any\n\nimport numpy\n\nfrom gptcache.utils import softmax\n\n\ndef random_one(messages: List[Any]) -> Any:\n    \"\"\"Randomly select one result after evaluation.\n\n    :param messages: A list of candidate outputs.\n    :type messages: List[Any]\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.processor.post import random_one\n\n            messages = [\"message 1\", \"message 2\", \"message 3\"]\n            answer = random_one(messages)\n    \"\"\"\n    return random.choice(messages)\n\n\ndef first(messages: List[Any]) -> Any:\n    \"\"\"Get the first result after evaluation.\n\n    :param messages: A list of candidate outputs.\n    :type messages: List[Any]\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.processor.post import first\n\n            messages = [\"message 1\", \"message 2\", \"message 3\"]\n            answer = first(messages)\n            assert answer = messages[0]\n    \"\"\"\n    return messages[0]\n\n\ndef nop(messages: List[Any]) -> Any:\n    \"\"\"No change after evaluation.\n\n    :param messages: A list of candidate outputs.\n    :type messages: List[Any]\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.processor.post import nop\n\n            messages = [\"message 1\", \"message 2\", \"message 3\"]\n            answer = nop(messages)\n            assert answer = messages\n    \"\"\"\n    return messages\n\n\ndef temperature_softmax(messages: List[Any], scores: List[float], temperature: float = 0.0) -> Any:\n    \"\"\"Post processing with temperature softmax after evaluation.\n\n    :param messages: A list of candidate outputs.\n    :type messages: List[Any]\n    :param scores: A list of evaluation scores corresponding to `messages`\n    :type scores: List[float]\n    :param temperature: A non-negative number of sampling temperature, defaults to 0.\n                        A higher temperature makes the output more random.\n                        A lower temperature means a more deterministic and confident output.\n    :type temperature: float\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.processor.post import temperature_softmax\n\n            messages = [\"message 1\", \"message 2\", \"message 3\"]\n            scores = [0.9, 0.5, 0.1]\n            answer = temperature_softmax(messages, scores, temperature=0.5)\n    \"\"\"\n\n    if temperature > 0:\n        scores = softmax([x / temperature for x in scores])\n        return numpy.random.choice(messages, size=1, p=scores)[0]\n    else:\n        m_s = list(zip(messages, scores))\n        return sorted(m_s, key=lambda x: x[1], reverse=True)[0][0]\n\n\n\ndef llm_semantic_verification(\n        messages: List[Any],\n        scores: List[float] = None,\n        original_question: str = None,\n        *,\n        client=None,                          \n        system_prompt: str = None,            \n        model: str = \"gpt-3.5-turbo\",\n        **kwargs                              \n) -> Any:\n    \"\"\"\n    Use LLM to verify whether the answer is semantically consistent with the question. \n    If the answer passes verification, return it; otherwise, return None (to trigger a real LLM call).\n\n    :param messages: A list of candidate outputs.\n    :type messages: List[Any]\n    :param scores: A list of evaluation scores corresponding to messages.\n    :type scores: List[float], optional\n    :param original_question: The original question string.\n    :type original_question: str, optional\n    :param client: LLM client object, defaults to None.\n    :type client: Any, optional\n    :param system_prompt: System prompt, defaults to None.\n    :type system_prompt: str, optional\n    :param model: LLM model name, defaults to \"gpt-3.5-turbo\".\n    :type model: str, optional\n    :param temperature: Sampling temperature, defaults to 0.0.\n    :type temperature: float, optional\n    :param kwargs: Other keyword arguments.\n    :return: The answer if it passes semantic verification, otherwise None.\n    :rtype: Any\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.processor.post import llm_semantic_verification\n\n            messages = [\"answer1\", \"answer2\"]\n            scores = [0.9, 0.5]\n            question = \"original question\"\n            answer = llm_semantic_verification(messages, scores, original_question=question)\n    \"\"\"\n    if not messages or not original_question:\n        return None\n    import openai\n\n    # Select the answer with the highest score\n    best_answer = messages[0] if not scores else messages[scores.index(max(scores))]\n    if client is None:\n        client = openai\n    else:\n        client = client if hasattr(client, 'completions') else client.chat # Ensure client has the correct method for completions\n    if system_prompt is None:\n        system_prompt = (\"You are a strict semantic verification assistant. \"\n                         \"… Only answer 'yes' or 'no'. If unsure, answer 'no'.\")\n\n    try:\n        resp = client.completions.create(\n            model=model,\n            messages=[\n                {\"role\": \"system\", \"content\": system_prompt},\n                {\"role\": \"user\",\n                 \"content\": f\"Question: {original_question}\\n\"\n                            f\"Answer: {best_answer}\\n\"\n                            f\"Does this answer fully match the question? yes/no\"}\n            ],\n            temperature=0,\n            max_tokens=10\n        )\n        verdict = resp.choices[0].message.content.strip().lower()\n        if verdict in {\"yes\"}:\n            return best_answer\n    except Exception as e:\n        print(\"LLM verification failed:\", e)\n\n\n\n    return None\n\n\nclass LlmVerifier:\n    \"\"\"\n    LlmVerifier is a callable class that wraps the llm_semantic_verification function.\n    It stores the LLM client, system prompt, and model name for repeated semantic verification tasks.\n\n    :param client: LLM client object.\n    :type client: Any\n    :param system_prompt: System prompt for the LLM.\n    :type system_prompt: str\n    :param model: LLM model name, defaults to \"gpt-3.5-turbo\".\n    :type model: str, optional\n    \"\"\"\n    def __init__(self, client=None, system_prompt=None, model=\"gpt-3.5-turbo\"):\n        self.client = client\n        self.system_prompt = system_prompt\n        self.model = model\n\n    def __call__(self, messages, scores=None, original_question=None, **kwargs):\n        \"\"\"\n        Call the verifier to perform semantic verification using the stored client, prompt, and model.\n\n        :param messages: A list of candidate outputs.\n        :param scores: A list of evaluation scores corresponding to messages.\n        :param original_question: The original question string.\n        :param temperature: Sampling temperature.\n        :param kwargs: Other keyword arguments.\n        :return: The answer if it passes semantic verification, otherwise None.\n        \"\"\"\n        return llm_semantic_verification(\n            messages, scores=scores, original_question=original_question,\n            client=self.client, system_prompt=self.system_prompt,\n            model=self.model, **kwargs\n        )\n"
  },
  {
    "path": "gptcache/processor/pre.py",
    "content": "import re\nimport string\nfrom typing import Dict, Any\n\n\ndef last_content(data: Dict[str, Any], **_: Dict[str, Any]) -> Any:\n    \"\"\"get the last content of the message list\n\n    :param data: the user llm request data\n    :type data: Dict[str, Any]\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.processor.pre import last_content\n\n            content = last_content({\"messages\": [{\"content\": \"foo1\"}, {\"content\": \"foo2\"}]})\n            # content = \"foo2\"\n    \"\"\"\n    return data.get(\"messages\")[-1][\"content\"]\n\n\ndef last_content_without_prompt(data: Dict[str, Any], **params: Dict[str, Any]) -> Any:\n    \"\"\"get the last content of the message list without prompts content\n\n    :param data: the user llm request data\n    :type data: Dict[str, Any]\n    :param params: the special gptcache params, like prompts param in the cache object\n    :type params: Dict[str, Any]\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.processor.pre import last_content_without_prompt\n\n            content = last_content_without_prompt(\n                    {\"messages\": [{\"content\": \"foo1\"}, {\"content\": \"foo2\"}]}, prompts=[\"foo\"]\n                )\n            # content = \"2\"\n    \"\"\"\n\n    last_content_str = data.get(\"messages\")[-1][\"content\"]\n    prompts = params.get(\"prompts\", [])\n    if prompts is None:\n        return last_content_str\n    pattern = \"|\".join(prompts)\n    new_content_str = re.sub(pattern, \"\", last_content_str)\n    return new_content_str\n\n\ndef _get_pattern_value(pattern_str: str, value_str: str):\n    literal_text_arr = []\n    field_name_arr = []\n    for literal_text, field_name, _, _ in string.Formatter().parse(pattern_str):\n        literal_text_arr.append(literal_text)\n        if field_name is not None:\n            field_name_arr.append(\n                field_name if field_name else str(len(field_name_arr))\n            )\n\n    pattern_values = {}\n    last_end = 0\n    for i, literal_text in enumerate(literal_text_arr):\n        start = value_str.find(literal_text, last_end)\n        if i == len(literal_text_arr) - 1:\n            end = len(value_str)\n        else:\n            end = value_str.find(literal_text_arr[i + 1], start + 1)\n        if start == -1 or end == -1:\n            break\n        start += len(literal_text)\n        pattern_values[field_name_arr[i]] = value_str[start:end]\n        last_end = end\n    return pattern_values\n\n\ndef last_content_without_template(data: Dict[str, Any], **params: Dict[str, Any]) -> Any:\n    \"\"\"get the last content's template values of the message list without template content.\n\n    When considering a cache agent or chain, the majority of the content consists of template content,\n    while the essential information is simply a list of parameters within the template.\n    In this way, the cache key is composed of a string made up of all the parameter values in the list.\n\n    WARNING: Two parameters without intervals cannot appear in the template,\n    for example: template = \"{foo}{hoo}\" is not supported,\n    but template = \"{foo}:{hoo}\" is supported\n\n    :param data: the user llm request data\n    :type data: Dict[str, Any]\n\n    :Example with str template:\n        .. code-block:: python\n\n            from gptcache import Config\n            from gptcache.processor.pre import last_content_without_template\n\n            template_obj = \"tell me a joke about {subject}\"\n            prompt = template_obj.format(subject=\"animal\")\n            value = last_content_without_template(\n                data={\"messages\": [{\"content\": prompt}]}, cache_config=Config(template=template_obj)\n            )\n            print(value)\n            # ['animal']\n\n    :Example with langchain template:\n        .. code-block:: python\n\n            from langchain import PromptTemplate\n\n            from gptcache import Config\n            from gptcache.processor.pre import last_content_without_template\n\n            template_obj = PromptTemplate.from_template(\"tell me a joke about {subject}\")\n            prompt = template_obj.format(subject=\"animal\")\n\n            value = last_content_without_template(\n                data={\"messages\": [{\"content\": prompt}]},\n                cache_config=Config(template=template_obj.template),\n            )\n            print(value)\n            # ['animal']\n\n    NOTE: At present, only the simple PromptTemplate in langchain is supported.\n    For ChatPromptTemplate, it needs to be adjusted according to the template array.\n    If you need to use it, you need to pass in the final dialog template yourself.\n    The reason why it cannot be advanced is that ChatPromptTemplate\n    does not provide a method to directly return the template string.\n    \"\"\"\n    last_content_str = data.get(\"messages\")[-1][\"content\"]\n    cache_config = params.get(\"cache_config\", None)\n    if not (cache_config and cache_config.template):\n        return last_content_str\n\n    pattern_value = _get_pattern_value(cache_config.template, last_content_str)\n    return str(list(pattern_value.values()))\n\n\ndef all_content(data: Dict[str, Any], **_: Dict[str, Any]) -> Any:\n    \"\"\"get all content of the message list\n\n    :param data: the user llm request data\n    :type data: Dict[str, Any]\n\n    :Example:\n        .. code-block:: python\n\n            from gptcache.processor.pre import all_content\n\n            content = all_content(\n                {\"messages\": [{\"content\": \"foo1\"}, {\"content\": \"foo2\"}]}\n            )\n            # content = \"foo1\\\\nfoo2\"\n    \"\"\"\n    s = \"\"\n    messages = data.get(\"messages\")\n    for i, message in enumerate(messages):\n        if i == len(messages) - 1:\n            s += message[\"content\"]\n        else:\n            s += message[\"content\"] + \"\\n\"\n    return s\n\n\ndef nop(data: Dict[str, Any], **_: Dict[str, Any]) -> Any:\n    \"\"\"do nothing of the llm request params\n\n    :param data: the user llm request data\n    :type data: Dict[str, Any]\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.processor.pre import nop\n\n            content = nop({\"str\": \"hello\"})\n            # {\"str\": \"hello\"}\n    \"\"\"\n    return data\n\n\ndef get_prompt(data: Dict[str, Any], **_: Dict[str, Any]) -> Any:\n    \"\"\"get the prompt of the llm request params\n\n    :param data: the user llm request data\n    :type data: Dict[str, Any]\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.processor.pre import get_prompt\n\n            content = get_prompt({\"prompt\": \"foo\"})\n            # \"foo\"\n    \"\"\"\n    return data.get(\"prompt\")\n\n\ndef get_file_name(data: Dict[str, Any], **_: Dict[str, Any]) -> str:\n    \"\"\"get the file name of the llm request params\n\n    :param data: the user llm request data\n    :type data: Dict[str, Any]\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.processor.pre import get_file_name\n\n            file = open(\"test.txt\", \"a\")\n            content = get_file_name({\"file\": file})\n            # \"test.txt\"\n    \"\"\"\n    return data.get(\"file\").name\n\n\ndef get_file_bytes(data: Dict[str, Any], **_: Dict[str, Any]) -> bytes:\n    \"\"\"get the file bytes of the llm request params\n\n    :param data: the user llm request data\n    :type data: Dict[str, Any]\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.processor.pre import get_file_bytes\n\n            content = get_file_bytes({\"file\": open(\"test.txt\", \"rb\")})\n    \"\"\"\n    return data.get(\"file\").peek()\n\n\ndef get_input_str(data: Dict[str, Any], **_: Dict[str, Any]) -> str:\n    \"\"\"get the image and question str of the llm request params\n\n    :param data: the user llm request data\n    :type data: Dict[str, Any]\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.processor.pre import get_input_str\n\n            content = get_input_str({\"input\": {\"image\": open(\"test.png\", \"rb\"), \"question\": \"foo\"}})\n    \"\"\"\n    input_data = data.get(\"input\")\n    return str(input_data[\"image\"].peek()) + input_data[\"question\"]\n\n\ndef get_input_image_file_name(data: Dict[str, Any], **_: Dict[str, Any]) -> str:\n    \"\"\"get the image file name of the llm request params\n\n    :param data: the user llm request data\n    :type data: Dict[str, Any]\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.processor.pre import get_input_image_file_name\n\n            content = get_input_image_file_name({\"input\": {\"image\": open(\"test.png\", \"rb\")}})\n            # \"test.png\"\n    \"\"\"\n    input_data = data.get(\"input\")\n    return input_data[\"image\"].name\n\n\ndef get_image_question(data: Dict[str, Any], **_: Dict[str, Any]) -> str:  # pragma: no cover\n    \"\"\"get the image and question str of the llm request params\n\n    :param data: the user llm request data\n    :type data: Dict[str, Any]\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.processor.pre import get_image_question\n\n            content = get_image_question({\"image\": open(\"test.png\", \"rb\"), \"question\": \"foo\"})\n    \"\"\"\n    img = data.get(\"image\")\n    data_img = str(open(img, \"rb\").peek()) if isinstance(img, str) else str(img)  # pylint: disable=consider-using-with\n    return data_img + data.get(\"question\")\n\n\ndef get_image(data: Dict[str, Any], **_: Dict[str, Any]) -> str:  # pragma: no cover\n    \"\"\"get the image of the llm request params\n\n    :param data: the user llm request data\n    :type data: Dict[str, Any]\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.processor.pre import get_image\n\n            content = get_image({\"image\": open(\"test.png\", \"rb\")})\n            # \"test.png\"\n    \"\"\"\n    return data.get(\"image\")\n\n\ndef get_inputs(data: Dict[str, Any], **_: Dict[str, Any]):\n    \"\"\"get the inputs of the llm request params\n\n    :param data: the user llm request data\n    :type data: Dict[str, Any]\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.processor.pre import get_inputs\n\n            content = get_inputs({\"inputs\": \"hello\"})\n            # \"hello\"\n    \"\"\"\n    return data.get(\"inputs\")\n\n\ndef get_messages_last_content(data: Dict[str, Any], **_: Any) -> str:\n    \"\"\" get the last content of the llm request messages array\n\n    :param data: the user llm request data\n    :type data: Dict[str, Any]\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.processor.pre import get_messages_last_content\n\n            content = get_messages_last_content({\"messages\": [{\"content\": \"hello\"}, {\"content\": \"world\"}]})\n            # \"world\"\n    \"\"\"\n    return data.get(\"messages\")[-1].content\n\n\ndef get_openai_moderation_input(data: Dict[str, Any], **_: Dict[str, Any]) -> str:\n    \"\"\"get the input param of the openai moderation request params\n\n    :param data: the user openai moderation request data\n    :type data: Dict[str, Any]\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.processor.pre import get_openai_moderation_input\n\n            content = get_openai_moderation_input({\"input\": [\"hello\", \"world\"]})\n            # \"['hello', 'world']\"\n    \"\"\"\n\n    return str(data.get(\"input\"))\n\n\ndef concat_all_queries(data: Dict[str, Any], **params: Dict[str, Any]) -> Any:\n    \"\"\"\n\n    :param data: the user llm request data\n    :type data: Dict[str, Any]\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.processor.pre import concat_all_queries\n\n            content = concat_all_queries({\"messages\": [{\"role\": \"system\", \"content\": \"hello\"},\n                {\"role\": \"user\", \"content\": \"world\"},\n                {\"role\": \"assistant\", \"content\": \"alice\"}]})\n\n    \"\"\"\n    cache_config = params.get(\"cache_config\", None)\n    skip_list = cache_config.skip_list\n    context_len = cache_config.context_len\n    context_len = context_len * 2\n    s = \"\"\n    messages = data.get(\"messages\")\n    length = min(context_len, len(messages))\n    messages = messages[len(messages) - length:]\n    for i, message in enumerate(messages):\n        if message[\"role\"] in skip_list:\n            continue\n        if i == len(messages) - 1:\n            s += f'{message[\"role\"].upper()}: {message[\"content\"]}'\n        else:\n            s += f'{message[\"role\"].upper()}: {message[\"content\"]}\\n'\n    return s\n"
  },
  {
    "path": "gptcache/report.py",
    "content": "class Report:\n    \"\"\"Get GPTCache report including time and counts for different operations.\"\"\"\n\n    def __init__(self):\n        self.op_pre = OpCounter()\n        self.op_embedding = OpCounter()\n        self.op_search = OpCounter()\n        self.op_data = OpCounter()\n        self.op_evaluation = OpCounter()\n        self.op_post = OpCounter()\n        self.op_llm = OpCounter()\n        self.op_save = OpCounter()\n        self.hint_cache_count = 0\n\n    def pre(self, delta_time):\n        \"\"\"Pre-process counts and time.\n\n        :param delta_time: additional runtime.\n        \"\"\"\n        self.op_pre.total_time += delta_time\n        self.op_pre.count += 1\n\n    def embedding(self, delta_time):\n        \"\"\"Embedding counts and time.\n\n        :param delta_time: additional runtime.\n        \"\"\"\n        self.op_embedding.total_time += delta_time\n        self.op_embedding.count += 1\n\n    def search(self, delta_time):\n        \"\"\"Search counts and time.\n\n        :param delta_time: additional runtime.\n        \"\"\"\n        self.op_search.total_time += delta_time\n        self.op_search.count += 1\n\n    def data(self, delta_time):\n        \"\"\"Get data counts and time.\n\n        :param delta_time: additional runtime.\n        \"\"\"\n\n        self.op_data.total_time += delta_time\n        self.op_data.count += 1\n\n    def evaluation(self, delta_time):\n        \"\"\"Evaluation counts and time.\n\n        :param delta_time: additional runtime.\n        \"\"\"\n        self.op_evaluation.total_time += delta_time\n        self.op_evaluation.count += 1\n\n    def post(self, delta_time):\n        \"\"\"Post-process counts and time.\n\n        :param delta_time: additional runtime.\n        \"\"\"\n        self.op_post.total_time += delta_time\n        self.op_post.count += 1\n\n    def llm(self, delta_time):\n        \"\"\"LLM counts and time.\n\n        :param delta_time: additional runtime.\n        \"\"\"\n        self.op_llm.total_time += delta_time\n        self.op_llm.count += 1\n\n    def save(self, delta_time):\n        \"\"\"Save counts and time.\n\n        :param delta_time: additional runtime.\n        \"\"\"\n        self.op_save.total_time += delta_time\n        self.op_save.count += 1\n\n    def average_pre_time(self):\n        \"\"\"Average pre-process time.\"\"\"\n        return self.op_pre.average()\n\n    def average_embedding_time(self):\n        \"\"\"Average embedding time.\"\"\"\n        return self.op_embedding.average()\n\n    def average_search_time(self):\n        \"\"\"Average search time.\"\"\"\n        return self.op_search.average()\n\n    def average_data_time(self):\n        \"\"\"Average data time.\"\"\"\n        return self.op_data.average()\n\n    def average_evaluation_time(self):\n        \"\"\"Average evaluation time.\"\"\"\n        return self.op_evaluation.average()\n\n    def average_post_time(self):\n        \"\"\"Average post-process time.\"\"\"\n        return self.op_post.average()\n\n    def average_llm_time(self):\n        \"\"\"Average LLM time.\"\"\"\n        return self.op_llm.average()\n\n    def average_save_time(self):\n        \"\"\"Average save time.\"\"\"\n        return self.op_save.average()\n\n    def hint_cache(self):\n        \"\"\"hint cache count.\"\"\"\n        self.hint_cache_count += 1\n\n\nclass OpCounter:\n    \"\"\"Operation counter.\"\"\"\n\n    count = 0\n    \"\"\"Operation count.\"\"\"\n    total_time = 0\n    \"\"\"Total time.\"\"\"\n\n    def average(self):\n        \"\"\"Average time.\"\"\"\n        return round(self.total_time / self.count, 4) if self.count != 0 else 0\n"
  },
  {
    "path": "gptcache/session.py",
    "content": "import uuid\nfrom typing import Callable, Optional\n\nfrom gptcache import cache\nfrom gptcache.manager.data_manager import DataManager\nfrom gptcache.processor.check_hit import check_hit_session\nfrom gptcache.utils.log import gptcache_log\n\n\nclass Session:\n    \"\"\"\n    Session for gptcache. Session can isolate the context of each connection, and can also filter the results after recall,\n    and if not satisfied will re-request rather than return the cache results directly.\n\n    :param name: the name of the session, defaults to `uuid.uuid4().hex`.\n    :type name:  str\n    :param data_manager: the DataManager of the session, defaults to cache.data_manager with the initialized cache.\n    :type data_manager: DataManager\n    :param check_hit_func: a Callable to check the hit, defaults to `processor.check_hit.check_hit_session`，which will not return cached data\n                           if you ask the same or similar question in the same session.\n    :type check_hit_func:  Callable\n\n\n    Example:\n        .. code-block:: python\n\n            from gptcache import cache\n            from gptcache.session import Session\n            # init gptcache\n            cache.init()\n            cache.set_openai_key()\n            session = Session()\n\n            from gptcache.adapter import openai\n            # run ChatCompletion model with gptcache on session\n            response = openai.ChatCompletion.create(\n                          model='gpt-3.5-turbo',\n                          messages=[\n                            {\n                                'role': 'user',\n                                'content': \"what's github\"\n                            }],\n                          session=session\n                        )\n            response_content = response['choices'][0]['message']['content']\n    \"\"\"\n\n    def __init__(\n        self,\n        name: Optional[str] = None,\n        data_manager: Optional[DataManager] = None,\n        check_hit_func: Optional[Callable] = None,\n    ):\n        self._name = uuid.uuid4().hex if not name else name\n        self._data_manager = cache.data_manager if not data_manager else data_manager\n        self.check_hit_func = (\n            check_hit_session if not check_hit_func else check_hit_func\n        )\n\n    @property\n    def name(self):\n        return self._name\n\n    def __enter__(self):\n        gptcache_log.warning(\n            \"The `with` method will delete the session data directly on exit.\"\n        )\n        return self\n\n    def __exit__(self, *_):\n        self.drop()\n\n    def drop(self):\n        \"\"\"Drop the session and delete all data in the session\"\"\"\n        self._data_manager.delete_session(self.name)\n        gptcache_log.info(\"Deleting data in the session: %s.\", self.name)\n"
  },
  {
    "path": "gptcache/similarity_evaluation/__init__.py",
    "content": "from typing import Dict, Any\n\nfrom gptcache.similarity_evaluation.similarity_evaluation import SimilarityEvaluation\n\n__all__ = [\n    \"SimilarityEvaluation\",\n    \"OnnxModelEvaluation\",\n    \"NumpyNormEvaluation\",\n    \"SearchDistanceEvaluation\",\n    \"ExactMatchEvaluation\",\n    \"KReciprocalEvaluation\",\n    \"CohereRerankEvaluation\",\n    \"SequenceMatchEvaluation\",\n    \"TimeEvaluation\",\n    \"SbertCrossencoderEvaluation\"\n]\n\nfrom gptcache.utils.lazy_import import LazyImport\n\nonnx = LazyImport(\"onnx\", globals(), \"gptcache.similarity_evaluation.onnx\")\nnp = LazyImport(\"np\", globals(), \"gptcache.similarity_evaluation.np\")\ndistance = LazyImport(\"simple\", globals(), \"gptcache.similarity_evaluation.distance\")\nexact_match = LazyImport(\n    \"exact_match\", globals(), \"gptcache.similarity_evaluation.exact_match\"\n)\nkreciprocal = LazyImport(\n    \"kreciprocal\", globals(), \"gptcache.similarity_evaluation.kreciprocal\"\n)\ncohere = LazyImport(\n    \"cohere\", globals(), \"gptcache.similarity_evaluation.cohere_rerank\"\n)\nsequence_match = LazyImport(\n    \"sequence_match\", globals(), \"gptcache.similarity_evaluation.sequence_match\"\n)\ntime = LazyImport(\n    \"time\", globals(), \"gptcache.similarity_evaluation.time\"\n)\n\ntime = LazyImport(\n    \"time\", globals(), \"gptcache.similarity_evaluation.time\"\n)\n\nsbert_crossencoder = LazyImport(\n    \"sbert_crossencoder\", globals(), \"gptcache.similarity_evaluation.sbert_crossencoder\"\n)\n\ndef OnnxModelEvaluation(model=\"GPTCache/albert-duplicate-onnx\"):\n    return onnx.OnnxModelEvaluation(model)\n\n\ndef NumpyNormEvaluation(enable_normal: bool = False, **kwargs):\n    return np.NumpyNormEvaluation(enable_normal, **kwargs)\n\n\ndef SearchDistanceEvaluation(max_distance=4.0, positive=False):\n    return distance.SearchDistanceEvaluation(max_distance, positive)\n\n\ndef ExactMatchEvaluation():\n    return exact_match.ExactMatchEvaluation()\n\n\ndef KReciprocalEvaluation(vectordb, top_k=3, max_distance=4.0, positive=False):\n    return kreciprocal.KReciprocalEvaluation(vectordb, top_k, max_distance, positive)\n\n\ndef CohereRerankEvaluation(model: str = \"rerank-english-v2.0\", api_key: str = None):\n    return cohere.CohereRerank(model=model, api_key=api_key)\n\n\ndef SequenceMatchEvaluation(weights, embedding_extractor, embedding_config: Dict[str, Any] = None):\n    return sequence_match.SequenceMatchEvaluation(weights, embedding_extractor, embedding_config=embedding_config)\n\n\ndef TimeEvaluation(evaluation: str, evaluation_config: Dict[str, Any], time_range: float = 86400.0):\n    return time.TimeEvaluation(evaluation, evaluation_config=evaluation_config, time_range=time_range)\n\ndef SbertCrossencoderEvaluation(model: str = \"cross-encoder/quora-distilroberta-base\"):\n    return sbert_crossencoder.SbertCrossencoderEvaluation(model)\n"
  },
  {
    "path": "gptcache/similarity_evaluation/cohere_rerank.py",
    "content": "from typing import Tuple, Dict, Any\n\nfrom gptcache.similarity_evaluation import SimilarityEvaluation\nfrom gptcache.utils import import_cohere\n\nimport_cohere()\n\nimport cohere  # pylint: disable=C0413\n\n\nclass CohereRerank(SimilarityEvaluation):\n    \"\"\"Use the Cohere Rerank API to evaluate relevance of question and answer.\n\n    Reference: https://docs.cohere.com/reference/rerank-1\n\n    :param model: model name, defaults to 'rerank-english-v2.0', and multilingual option: rerank-multilingual-v2.0.\n    :type model: str\n    :param api_key: cohere api key, defaults to None.\n    :type api_key: str\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.similarity_evaluation import CohereRerankEvaluation\n\n            evaluation = CohereRerankEvaluation()\n            score = evaluation.evaluation(\n                {\n                    'question': 'What is the color of sky?'\n                },\n                {\n                    'answer': 'the color of sky is blue'\n                }\n            )\n    \"\"\"\n\n    def __init__(self, model: str = \"rerank-english-v2.0\", api_key: str = None):\n        self.co = cohere.Client(api_key)\n        self.model = model\n\n    def evaluation(self, src_dict: Dict[str, Any], cache_dict: Dict[str, Any], **kwargs) -> float:\n        response = self.co.rerank(\n            model=self.model,\n            query=src_dict[\"question\"],\n            documents=cache_dict[\"answer\"],\n            top_n=1,\n        )\n        if len(response.results) == 0:\n            return 0\n        return response.results[0].relevance_score\n\n    def range(self) -> Tuple[float, float]:\n        return 0.0, 1.0\n"
  },
  {
    "path": "gptcache/similarity_evaluation/distance.py",
    "content": "from typing import Tuple, Dict, Any\n\nfrom gptcache.similarity_evaluation import SimilarityEvaluation\n\n\nclass SearchDistanceEvaluation(SimilarityEvaluation):\n    \"\"\"Using search distance to evaluate sentences pair similarity.\n\n    This is the evaluator to compare two embeddings according to their distance computed in embedding retrieval stage.\n    In the retrieval stage, `search_result` is the distance used for approximate nearest neighbor search and have been\n    put into `cache_dict`. `max_distance` is used to bound this distance to make it between [0-`max_distance`]. `positive` is\n    used to indicate this distance is directly proportional to the similarity of two entites. If `positive` is set `False`,\n    `max_distance` will be used to substract this distance to get the final score.\n\n    :param max_distance: the bound of maximum distance.\n    :type max_distance: float\n    :param positive: if the larger distance indicates more similar of two entities, It is True. Otherwise it is False.\n    :type positive: bool\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.similarity_evaluation import SearchDistanceEvaluation\n\n            evaluation = SearchDistanceEvaluation()\n            score = evaluation.evaluation(\n                {},\n                {\n                    \"search_result\": (1, None)\n                }\n            )\n    \"\"\"\n\n    def __init__(self, max_distance=4.0, positive=False):\n        self.max_distance = max_distance\n        self.positive = positive\n\n    def evaluation(\n        self, src_dict: Dict[str, Any], cache_dict: Dict[str, Any], **_\n    ) -> float:\n        \"\"\"Evaluate the similarity score of pair.\n        :param src_dict: the query dictionary to evaluate with cache.\n        :type src_dict: Dict\n        :param cache_dict: the cache dictionary.\n        :type cache_dict: Dict\n\n        :return: evaluation score.\n        \"\"\"\n        distance, _ = cache_dict[\"search_result\"]\n        if distance < 0:\n            distance = 0\n        elif distance > self.max_distance:\n            distance = self.max_distance\n        if self.positive:\n            return distance\n        return self.max_distance - distance\n\n    def range(self) -> Tuple[float, float]:\n        \"\"\"Range of similarity score.\n\n        :return: minimum and maximum of similarity score.\n        \"\"\"\n        return 0.0, self.max_distance\n"
  },
  {
    "path": "gptcache/similarity_evaluation/exact_match.py",
    "content": "from typing import Tuple, Dict, Any\n\nfrom gptcache.similarity_evaluation.similarity_evaluation import SimilarityEvaluation\n\n\nclass ExactMatchEvaluation(SimilarityEvaluation):\n    \"\"\"Using exact metric to evaluate sentences pair similarity.\n\n    This evaluator is used to directly compare two `question` from text. If every single character in two questions can match, then this evaluator\n    will return 1 else 0.\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.similarity_evaluation import ExactMatchEvaluation\n\n            evaluation = ExactMatchEvaluation()\n            score = evaluation.evaluation(\n                {\n                    \"question\": \"What is the color of sky?\"\n                },\n                {\n                    \"question\": \"What is the color of sky?\"\n                }\n            )\n    \"\"\"\n\n    def __init__(self):\n        pass\n\n    def evaluation(\n        self, src_dict: Dict[str, Any], cache_dict: Dict[str, Any], **_\n    ) -> float:\n        \"\"\"Evaluate the similarity score of pair.\n\n        :param src_dict: the query dictionary to evaluate with cache_dict.\n        :type src_dict: Dict\n        :param cache_dict: the cache dictionary.\n        :type cache_dict: Dict\n\n        :return: evaluation score.\n        \"\"\"\n        return 1 if cache_dict[\"question\"] == src_dict[\"question\"] else 0\n\n    def range(self) -> Tuple[float, float]:\n        \"\"\"Range of similarity score.\n\n        :return: minimum and maximum of similarity score.\n        \"\"\"\n        return 0, 1\n"
  },
  {
    "path": "gptcache/similarity_evaluation/kreciprocal.py",
    "content": "import numpy as np\nfrom typing import Dict, Any\n\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\nfrom gptcache.manager.vector_data.base import VectorBase\n\n\ndef euclidean_distance_calculate(vec_l: np.array, vec_r: np.array):\n    return np.sum((vec_l - vec_r)**2)\n\nclass KReciprocalEvaluation(SearchDistanceEvaluation):\n    \"\"\"Using K Reciprocal to evaluate sentences pair similarity.\n\n    This evaluator borrows popular reranking method K-reprocical reranking for similarity evaluation. K-reciprocal relation refers to the mutual\n    nearest neighbor relationship between two embeddings, where each embedding is the K nearest neighbor of the other based on a given distance\n    metric.  This evaluator checks whether the query embedding is in candidate cache embedding's `top_k` nearest neighbors. If query embedding\n    is not candidate's `top_k` neighbors, the pair will be considered as dissimilar pair. Otherwise, their distance will be kept and continue\n    for a `SearchDistanceEvaluation` check.  `max_distance` is used to bound this distance to make it between [0-`max_distance`]. `positive` is\n    used to indicate this distance is directly proportional to the similarity of two entites. If `positive` is set `False`,\n    `max_distance` will be used to substract this distance to get the final score.\n\n    :param vectordb: vector database to retrieval embeddings to test k-reciprocal relationship.\n    :type vectordb: gptcache.manager.vector_data.base.VectorBase\n    :param top_k: for each retievaled candidates, this method need to test if the query is top-k of candidate.\n    :type top_k: int\n    :param max_distance: the bound of maximum distance.\n    :type max_distance: float\n    :param positive: if the larger distance indicates more similar of two entities, It is True. Otherwise it is False.\n    :type positive: bool\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.similarity_evaluation import KReciprocalEvaluation\n            from gptcache.manager.vector_data.faiss import Faiss\n            from gptcache.manager.vector_data.base import VectorData\n            import numpy as np\n\n            faiss = Faiss('./none', 3, 10)\n            cached_data = np.array([0.57735027, 0.57735027, 0.57735027])\n            faiss.mul_add([VectorData(id=0, data=cached_data)])\n            evaluation = KReciprocalEvaluation(vectordb=faiss, top_k=2, max_distance = 4.0, positive=False)\n            query = np.array([0.61396013, 0.55814557, 0.55814557])\n            score = evaluation.evaluation(\n                {\n                    'question': 'question1',\n                    'embedding': query\n                },\n                {\n                    'question': 'question2',\n                    'embedding': cached_data\n                }\n            )\n    \"\"\"\n\n\n    def __init__(self, vectordb: VectorBase, top_k: int = 3, max_distance: float = 4.0, positive: bool=False):\n        super().__init__(max_distance, positive)\n        self.vectordb = vectordb\n        self.top_k = top_k\n\n    @staticmethod\n    def normalize(vec: np.ndarray):\n        \"\"\"Normalize the input vector.\n\n        :param vec: numpy vector needs to normalize.\n        :type vec: numpy.array\n\n        :return: normalized vector.\n        \"\"\"\n        magnitude = np.linalg.norm(vec)\n        normalized_v = vec / magnitude\n        return normalized_v\n\n\n    def evaluation(\n        self, src_dict: Dict[str, Any], cache_dict: Dict[str, Any], **_\n    ) -> float:\n        \"\"\"Evaluate the similarity score of pair.\n\n        :param src_dict: the query dictionary to evaluate with cache.\n        :type src_dict: Dict\n        :param cache_dict: the cache dictionary.\n        :type cache_dict: Dict\n\n        :return: evaluation score.\n        \"\"\"\n        src_question = src_dict['question']\n        cache_question = cache_dict['question']\n        if src_question == cache_question:\n            return 1\n        query_emb = self.normalize(src_dict['embedding'])\n        candidates = self.vectordb.search(cache_dict['embedding'], self.top_k + 1)\n        euc_dist = euclidean_distance_calculate(query_emb, cache_dict['embedding'])\n        if euc_dist > candidates[-1][0]:\n            euc_dist = self.range()[1]\n\n        result_dict = {}\n        result_dict['search_result'] = (euc_dist, None)\n        return super().evaluation(None, result_dict)\n\n\n"
  },
  {
    "path": "gptcache/similarity_evaluation/np.py",
    "content": "from typing import Dict, Tuple, Any\n\nimport numpy as np\n\nfrom gptcache.similarity_evaluation import SimilarityEvaluation\n\n\nclass NumpyNormEvaluation(SimilarityEvaluation):\n    \"\"\"Using Numpy norm to evaluate sentences pair similarity.\n\n    This evaluator calculate the L2 distance of two embeddings for similarity check. if `enable_normal` is True,\n    both query embedding and cache embedding will be normalized. Note normalized distance will substracted by\n    maximum distance so it will be positively correlated with the similarity.\n\n    :param enable_normal: whether to normalize the embedding, defaults to False.\n    :type enable_normal: bool\n    :param question_embedding_function: optional, a function to generate question embedding\n    :type question_embedding_function: function\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.similarity_evaluation import NumpyNormEvaluation\n            import numpy as np\n\n            evaluation = NumpyNormEvaluation()\n            score = evaluation.evaluation(\n                {\n                    'question': 'What is color of sky?'\n                    'embedding': np.array([-0.5, -0.5])\n                },\n                {\n                    'question': 'What is the color of sky?'\n                    'embedding': np.array([-0.49, -0.51])\n                }\n            )\n    \"\"\"\n\n    def __init__(self, enable_normal: bool = True, question_embedding_function=None):\n        self.enable_normal = enable_normal\n        self.question_encoder = question_embedding_function\n\n    @staticmethod\n    def normalize(vec: np.ndarray):\n        \"\"\"Normalize the input vector.\n\n        :param vec: numpy vector needs to normalize.\n        :type vec: numpy.array\n\n        :return: normalized vector.\n        \"\"\"\n        magnitude = np.linalg.norm(vec)\n        normalized_v = vec / magnitude\n        return normalized_v\n\n    def evaluation(\n        self, src_dict: Dict[str, Any], cache_dict: Dict[str, Any], **_\n    ) -> float:\n        \"\"\"Evaluate the similarity score of pair.\n\n        :param src_dict: the query dictionary to evaluate with cache.\n        :type src_dict: Dict\n        :param cache_dict: the cache dictionary.\n        :type cache_dict: Dict\n\n        :return: evaluation score.\n        \"\"\"\n        if 'question' in src_dict and 'question' in cache_dict:\n            if src_dict['question'].lower() == cache_dict['question'].lower():\n                return self.range()[1]\n            if 'embedding' not in src_dict or 'embedding' not in cache_dict or src_dict['embedding'] is None or cache_dict['embedding'] is None:\n                assert self.question_encoder, 'You need to a valid question_embedding_function to generate question embedding in the evaluator.'\n                src_dict['embedding'] = self.question_encoder(src_dict['question'])\n                cache_dict['embedding'] = self.question_encoder(cache_dict['question'])\n        src_embedding = (\n            self.normalize(src_dict['embedding'])\n            if self.enable_normal\n            else src_dict['embedding']\n        )\n        cache_embedding = cache_dict['embedding']\n        cache_embedding = (\n            self.normalize(cache_embedding) if self.enable_normal else cache_embedding\n        )\n        return self.range()[1] - np.linalg.norm(src_embedding - cache_embedding)\n\n    def range(self) -> Tuple[float, float]:\n        \"\"\"Range of similarity score.\n\n        :return: minimum and maximum of similarity score.\n        \"\"\"\n        return 0.0, 2.0\n"
  },
  {
    "path": "gptcache/similarity_evaluation/onnx.py",
    "content": "from typing import Dict, List, Tuple, Any\n\nimport numpy as np\n\nfrom gptcache.similarity_evaluation import SimilarityEvaluation\nfrom gptcache.utils import (\n    import_onnxruntime,\n    import_huggingface_hub,\n    import_huggingface,\n)\n\nimport_onnxruntime()\nimport_huggingface_hub()\nimport_huggingface()\n\nfrom transformers import AutoTokenizer  # pylint: disable=C0413\nfrom huggingface_hub import hf_hub_download  # pylint: disable=C0413\nimport onnxruntime  # pylint: disable=C0413\n\n\ndef pad_sequence(input_ids_list: List[np.ndarray], padding_value: int = 0):\n    max_len = max(len(sequence) for sequence in input_ids_list)\n    padded_sequences = np.full((len(input_ids_list), max_len), padding_value)\n    for i, sequence in enumerate(input_ids_list):\n        padded_sequences[i, : len(sequence)] = sequence\n    return padded_sequences\n\n\nclass OnnxModelEvaluation(SimilarityEvaluation):\n    \"\"\"Using ONNX model to evaluate sentences pair similarity.\n\n    This evaluator use the ONNX model to evaluate the similarity of two sentences.\n\n    :param model: model name of OnnxModelEvaluation. Default is 'GPTCache/albert-duplicate-onnx'.\n    :type model: str\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.similarity_evaluation import OnnxModelEvaluation\n\n            evaluation = OnnxModelEvaluation()\n            score = evaluation.evaluation(\n                {\n                    'question': 'What is the color of sky?'\n                },\n                {\n                    'question': 'hello'\n                }\n            )\n    \"\"\"\n\n    def __init__(self, model: str = \"GPTCache/albert-duplicate-onnx\"):\n        tokenizer_name = \"albert-base-v2\"\n        self.tokenizer = AutoTokenizer.from_pretrained(tokenizer_name)\n        self.model = model\n        onnx_model_path = hf_hub_download(repo_id=model, filename=\"model.onnx\")\n        self.ort_session = onnxruntime.InferenceSession(onnx_model_path)\n\n    # WARNING: the model cannot evaluate text with more than 512 tokens\n    def evaluation(\n        self, src_dict: Dict[str, Any], cache_dict: Dict[str, Any], **_\n    ) -> float:\n        \"\"\"Evaluate the similarity score of pair.\n\n        :param src_dict: the query dictionary to evaluate with cache.\n        :type src_dict: Dict\n        :param cache_dict: the cache dictionary.\n        :type cache_dict: Dict\n\n        :return: evaluation score.\n        \"\"\"\n        try:\n            src_question = src_dict[\"question\"]\n            cache_question = cache_dict[\"question\"]\n            if src_question.lower() == cache_question.lower():\n                return 1\n            return self.inference(src_question, [cache_question])\n        except Exception:  # pylint: disable=W0703\n            return 0\n\n    def range(self) -> Tuple[float, float]:\n        \"\"\"Range of similarity score.\n\n        :return: minimum and maximum of similarity score.\n        \"\"\"\n        return 0.0, 1.0\n\n    def inference(self, reference: str, candidates: List[str]) -> np.ndarray:\n        \"\"\"Inference the ONNX model.\n\n        :param reference: reference sentence.\n        :type reference: str\n        :param candidates: candidate sentences.\n        :type candidates: List[str]\n\n        :return: probability score indcates how much is reference similar to candidates.\n        \"\"\"\n        n_candidates = len(candidates)\n        inference_texts = [\n            {\"text_a\": reference, \"text_b\": candidate} for candidate in candidates\n        ]\n        batch_encoding_list = [\n            self.tokenizer.encode_plus(\n                text[\"text_a\"], text[\"text_b\"], padding=\"longest\"\n            )\n            for text in inference_texts\n        ]\n\n        input_ids_list = [np.array(encode.input_ids) for encode in batch_encoding_list]\n        attention_mask_list = [\n            np.array(encode.attention_mask) for encode in batch_encoding_list\n        ]\n        token_type_ids_list = [\n            np.array(encode.token_type_ids) for encode in batch_encoding_list\n        ]\n\n        padded_input_ids = pad_sequence(\n            input_ids_list, padding_value=self.tokenizer.pad_token_id\n        )\n        padded_attention_mask = pad_sequence(\n            attention_mask_list, padding_value=self.tokenizer.pad_token_id\n        )\n        padded_token_type_ids = pad_sequence(\n            token_type_ids_list, padding_value=self.tokenizer.pad_token_id\n        )\n\n        ort_inputs = {\n            \"input_ids\": padded_input_ids.reshape(n_candidates, -1),\n            \"attention_mask\": padded_attention_mask.reshape(n_candidates, -1),\n            \"token_type_ids\": padded_token_type_ids.reshape(n_candidates, -1),\n        }\n        ort_outputs = self.ort_session.run(None, ort_inputs)\n        scores = ort_outputs[0][:, 1]\n        return float(scores[0])\n"
  },
  {
    "path": "gptcache/similarity_evaluation/sbert_crossencoder.py",
    "content": "from typing import Dict, Tuple, Any\nfrom gptcache.utils import import_sbert\nfrom gptcache.similarity_evaluation import SimilarityEvaluation\nimport_sbert()\nfrom sentence_transformers import CrossEncoder # pylint: disable=C0413\n\nclass SbertCrossencoderEvaluation(SimilarityEvaluation):\n    \"\"\"Using SBERT crossencoders to evaluate sentences pair similarity.\n\n    This evaluator use the crossencoder model to evaluate the similarity of two sentences.\n\n    :param model: model name of SbertCrossencoderEvaluation. Default is 'cross-encoder/quora-distilroberta-base'.\n    Check more please refer to https://www.sbert.net/docs/pretrained_cross-encoders.html#quora-duplicate-questions.\n    :type model: str\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.similarity_evaluation import SbertCrossencoderEvaluation\n\n            evaluation = SbertCrossencoderEvaluation()\n            score = evaluation.evaluation(\n                {\n                    'question': 'What is the color of sky?'\n                },\n                {\n                    'question': 'hello'\n                }\n            )\n    \"\"\"\n    def __init__(self, model: str=\"cross-encoder/quora-distilroberta-base\"):\n        self.model = CrossEncoder(model)\n\n    def evaluation(\n        self, src_dict: Dict[str, Any], cache_dict: Dict[str, Any], **_\n    ) -> float:\n        \"\"\"Evaluate the similarity score of pair.\n\n        :param src_dict: the query dictionary to evaluate with cache.\n        :type src_dict: Dict\n        :param cache_dict: the cache dictionary.\n        :type cache_dict: Dict\n\n        :return: evaluation score.\n        \"\"\"\n        try:\n            src_question = src_dict[\"question\"]\n            cache_question = cache_dict[\"question\"]\n            if src_question.lower() == cache_question.lower():\n                return 1\n            return self.model.predict([(src_question, cache_question)])[0]\n        except Exception: # pylint: disable=W0703\n            return 0\n\n    def range(self) -> Tuple[float, float]:\n        \"\"\"Range of similarity score.\n\n        :return: minimum and maximum of similarity score.\n        \"\"\"\n        return 0.0, 1.0\n"
  },
  {
    "path": "gptcache/similarity_evaluation/sequence_match.py",
    "content": "from typing import Tuple, Dict, Any, List\n\nimport numpy as np\n\nfrom gptcache.adapter.api import _get_model\nfrom gptcache.similarity_evaluation import SimilarityEvaluation\n\n\ndef euclidean_distance_calculate(vec_l: np.array, vec_r: np.array):\n    return np.sum((vec_l - vec_r) ** 2)\n\n\ndef reweight(weights, length):\n    if length >= len(weights):\n        return weights\n    else:\n        reweighted_ws = []\n        sum_ws = 0\n        for i in range(length):\n            sum_ws += weights[i]\n        for i in range(length):\n            reweighted_ws.append(weights[i] * (1 / sum_ws))\n        return reweighted_ws\n\n\nclass SequenceMatchEvaluation(SimilarityEvaluation):\n    \"\"\"\n    Evaluate sentence pair similarity using SequenceMatchEvaluation.\n\n    :param weights: List of weights corresponding to each sequence element for calculating the weighted distance.\n    :type weights: List[float]\n    :param embedding_extractor: The embedding extractor used to obtain embeddings from the text content.\n    :type embedding_extractor: gptcache.embedding.base.BaseEmbedding\n\n\n    Example:\n        .. code-block:: python\n\n            from gptcache.similarity_evaluation import SequenceMatchEvaluation\n            from gptcache.embedding import Onnx\n\n            weights = [0.5, 0.3, 0.2]\n            evaluation = SequenceMatchEvaluation(weights, 'onnx')\n\n            query = {\n                'question': 'USER: \"foo2\" USER: \"foo4\"',\n            }\n\n            cache = {\n                'question': 'USER: \"foo6\" USER: \"foo8\"',\n            }\n\n            score = evaluation.evaluation(query, cache)\n    \"\"\"\n\n    def __init__(\n        self, weights: List[float], embedding_extractor: str, embedding_config=None\n    ):\n        self.embedding_extractor = _get_model(embedding_extractor, embedding_config)\n        self.weights = weights\n\n    @staticmethod\n    def normalize(vec: np.ndarray):\n        \"\"\"Normalize the input vector.\n\n        :param vec: numpy vector needs to normalize.\n        :type vec: numpy.array\n\n        :return: normalized vector.\n        \"\"\"\n        magnitude = np.linalg.norm(vec)\n        normalized_v = vec / magnitude\n        return normalized_v\n\n    def evaluation(\n        self, src_dict: Dict[str, Any], cache_dict: Dict[str, Any], **_\n    ) -> float:\n        \"\"\"Evaluate the similarity score of pair.\n\n        :param src_dict: the query dictionary to evaluate with cache.\n        :type src_dict: Dict\n        :param cache_dict: the cache dictionary.\n        :type cache_dict: Dict\n\n        :return: evaluation score.\n        \"\"\"\n        src_question = src_dict[\"question\"]\n        cache_question = cache_dict[\"question\"]\n        src_contents = src_question.split(\"USER: \")\n        cache_contents = cache_question.split(\"USER: \")\n        src_contents = [content for content in src_contents if len(content) > 0]\n        cache_contents = [content for content in cache_contents if len(content) > 0]\n        src_embs = []\n        cache_embs = []\n        for content in src_contents:\n            src_embs.append(\n                self.normalize(self.embedding_extractor.to_embeddings(content))\n            )\n        for content in cache_contents:\n            cache_embs.append(\n                self.normalize(self.embedding_extractor.to_embeddings(content))\n            )\n        length = min([len(src_contents), len(cache_contents), len(self.weights)])\n        assert length > 0\n        ws = self.weights\n        ws = ws[::-1]\n        ws = reweight(ws, length)\n        src_embs = src_embs[::-1]\n        cache_embs = cache_embs[::-1]\n        weighted_distance = 0\n        for i in range(length):\n            weighted_distance += (\n                4 - euclidean_distance_calculate(src_embs[i], cache_embs[i])\n            ) * ws[i]\n        return weighted_distance\n\n    def range(self) -> Tuple[float, float]:\n        \"\"\"Range of similarity score.\n\n        :return: minimum and maximum of similarity score.\n        \"\"\"\n        return 0.0, 4.0\n"
  },
  {
    "path": "gptcache/similarity_evaluation/similarity_evaluation.py",
    "content": "from abc import ABCMeta, abstractmethod\nfrom typing import Tuple, Dict, Any\n\n\nclass SimilarityEvaluation(metaclass=ABCMeta):\n    \"\"\"Similarity Evaluation interface,\n    determine the similarity between the input request and the requests from the Vector Store.\n    Based on this similarity, it determines whether a request matches the cache.\n\n    Example:\n        .. code-block:: python\n\n            from gptcache import cache\n            from gptcache.similarity_evaluation import SearchDistanceEvaluation\n\n            cache.init(\n                similarity_evaluation=SearchDistanceEvaluation()\n            )\n    \"\"\"\n\n    @abstractmethod\n    def evaluation(\n        self, src_dict: Dict[str, Any], cache_dict: Dict[str, Any], **kwargs\n    ) -> float:\n        \"\"\"Evaluate the similarity score of the user and cache requests pair.\n\n        :param src_dict: the user request params.\n        :type src_dict: Dict\n        :param cache_dict: the cache request params.\n        :type cache_dict: Dict\n        \"\"\"\n        pass\n\n    @abstractmethod\n    def range(self) -> Tuple[float, float]:\n        \"\"\"Range of similarity score.\n\n        :return: the range of similarity score, which is the min and max values\n        :rtype: Tuple[float, float]\n        \"\"\"\n        pass\n"
  },
  {
    "path": "gptcache/similarity_evaluation/time.py",
    "content": "from datetime import datetime\nfrom typing import Tuple, Dict, Any\n\nfrom gptcache.adapter.api import _get_eval\nfrom gptcache.similarity_evaluation import SimilarityEvaluation\n\n\nclass TimeEvaluation(SimilarityEvaluation):\n    \"\"\"Add time dimension restrictions on the basis of other Evaluation,\n    for example, only use the cache within 1 day from the current time,\n    and filter out the previous cache.\n\n    :param evaluation: Similarity evaluation, like distance/onnx.\n    :param evaluation_config: Similarity evaluation config.\n    :param time_range: Time range, time unit: s\n\n    Example:\n        .. code-block:: python\n\n            import datetime\n\n            from gptcache.manager.scalar_data.base import CacheData\n            from gptcache.similarity_evaluation import TimeEvaluation\n\n            evaluation = TimeEvaluation(evaluation=\"distance\", time_range=86400)\n\n            similarity = eval.evaluation(\n                {},\n                {\n                    \"search_result\": (3.5, None),\n                    \"cache_data\": CacheData(\"a\", \"b\", create_on=datetime.datetime.now()),\n                },\n            )\n            # 0.5\n\n    \"\"\"\n\n    def __init__(self, evaluation: str, evaluation_config=None, time_range: float = 86400.0):\n        if evaluation_config is None:\n            evaluation_config = {}\n        self._eval = _get_eval(evaluation, evaluation_config)\n        self._time_range = time_range\n\n    def evaluation(self, src_dict: Dict[str, Any], cache_dict: Dict[str, Any], **kwargs) -> float:\n        cache_data = cache_dict.get(\"cache_data\", None)\n        if not cache_data or not cache_data.create_on:\n            return self.range()[0]\n        delta_time = datetime.now().timestamp() - cache_data.create_on.timestamp()\n        if delta_time > self._time_range:\n            return self.range()[0]\n        return self._eval.evaluation(src_dict, cache_dict, **kwargs)\n\n    def range(self) -> Tuple[float, float]:\n        return self._eval.range()\n\n"
  },
  {
    "path": "gptcache/utils/__init__.py",
    "content": "__all__ = [\n    \"import_pymilvus\",\n    \"import_milvus_lite\",\n    \"import_sbert\",\n    \"import_cohere\",\n    \"import_fasttext\",\n    \"import_huggingface\",\n    \"import_uform\",\n    \"import_usearch\",\n    \"import_torch\",\n    \"import_huggingface_hub\",\n    \"import_onnxruntime\",\n    \"import_faiss\",\n    \"import_hnswlib\",\n    \"import_chromadb\",\n    \"import_sqlalchemy\",\n    \"import_sql_client\",\n    \"import_mongodb\",\n    \"import_pydantic\",\n    \"import_langchain\",\n    \"import_pillow\",\n    \"import_boto3\",\n    \"import_diffusers\",\n    \"import_torchaudio\",\n    \"import_torchvision\",\n    \"import_timm\",\n    \"import_vit\",\n    \"import_replicate\",\n    \"import_stability\",\n    \"import_scipy\",\n    \"import_llama_cpp_python\",\n    \"import_ruamel\",\n    \"import_selective_context\",\n    \"import_httpx\",\n    \"import_openai\",\n    \"import_docarray\",\n    \"softmax\",\n    \"import_paddle\",\n    \"import_paddlenlp\",\n    \"import_tiktoken\",\n    \"import_fastapi\",\n    \"import_redis\",\n    \"import_qdrant\",\n    \"import_weaviate\",\n    ]\n\nimport importlib.util\nfrom typing import Optional\n\nfrom gptcache.utils.dependency_control import prompt_install\nfrom gptcache.utils.softmax import softmax  # pylint: disable=unused-argument\n\n\ndef _check_library(libname: str, prompt: bool = True, package: Optional[str] = None):\n    is_avail = False\n    if importlib.util.find_spec(libname):\n        is_avail = True\n    if not is_avail and prompt:\n        prompt_install(package if package else libname)\n    return is_avail\n\n\ndef import_pymilvus():\n    _check_library(\"pymilvus\")\n\n\ndef import_milvus_lite():\n    _check_library(\"milvus\")\n\n\ndef import_qdrant():\n    _check_library(\"qdrant_client\")\n\n\ndef import_sbert():\n    _check_library(\"sentence_transformers\", package=\"sentence-transformers\")\n\n\ndef import_cohere():\n    _check_library(\"cohere\")\n\n\ndef import_fasttext():\n    _check_library(\"fasttext\", package=\"fasttext==0.9.2\")\n\n\ndef import_huggingface():\n    _check_library(\"transformers\")\n\n\ndef import_uform():\n    _check_library(\"uform\", package=\"uform==0.2.1\")\n\n\ndef import_usearch():\n    _check_library(\"usearch\", package=\"usearch==0.22.3\")\n\n\ndef import_torch():\n    _check_library(\"torch\")\n\n\ndef import_huggingface_hub():\n    _check_library(\"huggingface_hub\", package=\"huggingface-hub\")\n\n\ndef import_onnxruntime():\n    _check_library(\"onnxruntime\", package=\"onnxruntime==1.21.1\")\n\n\ndef import_faiss():\n    _check_library(\"faiss\", package=\"faiss-cpu\")\n\n\ndef import_hnswlib():\n    _check_library(\"hnswlib\")\n\n\ndef import_chromadb():\n    _check_library(\"chromadb\", package=\"chromadb==0.3.26\")\n\n\ndef import_sqlalchemy():\n    _check_library(\"sqlalchemy\")\n\n\ndef import_postgresql():\n    _check_library(\"psycopg2\", package=\"psycopg2-binary\")\n\n\ndef import_pymysql():\n    _check_library(\"pymysql\")\n\n\n# `brew install unixodbc` in mac\n# and install PyODBC driver.\ndef import_pyodbc():\n    _check_library(\"pyodbc\")\n\n\n# install cx-Oracle driver.\ndef import_cxoracle():\n    _check_library(\"cx_Oracle\")\n\n\ndef import_duckdb():\n    _check_library(\"duckdb\", package=\"duckdb\")\n    _check_library(\"duckdb-engine\", package=\"duckdb-engine\")\n\n\ndef import_sql_client(db_name):\n    if db_name == \"postgresql\":\n        import_postgresql()\n    elif db_name in [\"mysql\", \"mariadb\"]:\n        import_pymysql()\n    elif db_name == \"sqlserver\":\n        import_pyodbc()\n    elif db_name == \"oracle\":\n        import_cxoracle()\n    elif db_name == \"duckdb\":\n        import_duckdb()\n\n\ndef import_mongodb():\n    _check_library(\"pymongo\")\n    _check_library(\"mongoengine\")\n\n\ndef import_pydantic():\n    _check_library(\"pydantic\")\n\n\ndef import_langchain():\n    _check_library(\"langchain\")\n\n\ndef import_pillow():\n    _check_library(\"PIL\", package=\"pillow\")\n\n\ndef import_boto3():\n    _check_library(\"boto3\")\n\n\ndef import_diffusers():\n    _check_library(\"diffusers\")\n\n\ndef import_torchaudio():\n    _check_library(\"torchaudio\")\n\n\ndef import_torchvision():\n    _check_library(\"torchvision\")\n\n\ndef import_timm():\n    _check_library(\"timm\", package=\"timm\")\n\n\ndef import_vit():\n    _check_library(\"vit\", package=\"vit\")\n\n\ndef import_replicate():\n    _check_library(\"replicate\")\n\n\ndef import_stability():\n    _check_library(\"stability_sdk\", package=\"stability-sdk\")\n\n\ndef import_scipy():\n    _check_library(\"scipy\")\n\n\ndef import_llama_cpp_python():\n    _check_library(\"llama_cpp\", package=\"llama-cpp-python\")\n\n\ndef import_ruamel():\n    _check_library(\"ruamel-yaml\")\n\n\ndef import_selective_context():\n    _check_library(\"selective_context\")\n\n\ndef import_httpx():\n    _check_library(\"httpx\")\n\n\ndef import_openai():\n    _check_library(\"openai\", package=\"openai==0.28.1\")\n\n\ndef import_docarray():\n    _check_library(\"docarray\")\n\n\ndef import_paddle():\n    prompt_install(\"protobuf==3.20.0\")\n    _check_library(\"paddlepaddle\")\n\n\ndef import_paddlenlp():\n    _check_library(\"paddlenlp\")\n\n\ndef import_tiktoken():\n    _check_library(\"tiktoken\")\n\n\ndef import_fastapi():\n    _check_library(\"uvicorn\", package=\"'uvicorn[standard]'\")\n    _check_library(\"fastapi\")\n\n\ndef import_redis():\n    _check_library(\"redis\")\n    _check_library(\"redis_om\", package=\"redis-om\")\n\n\ndef import_starlette():\n    _check_library(\"starlette\")\n\n\ndef import_weaviate():\n    _check_library(\"weaviate-client\")\n"
  },
  {
    "path": "gptcache/utils/cache_func.py",
    "content": "def cache_all(*_, **__):\n    return True\n"
  },
  {
    "path": "gptcache/utils/dependency_control.py",
    "content": "import subprocess\n\nfrom gptcache.utils.error import PipInstallError\nfrom gptcache.utils.log import gptcache_log\n\n\ndef prompt_install(package: str, warn: bool = False):  # pragma: no cover\n    \"\"\"\n    Function used to prompt user to install a package.\n    \"\"\"\n    cmd = f\"pip install -q {package}\"\n    try:\n        if warn and input(f\"Install {package}? Y/n: \") != \"Y\":\n            raise ModuleNotFoundError(f\"No module named {package}\")\n        print(f\"start to install package: {package}\")\n        subprocess.check_call(cmd, shell=True)\n        print(f\"successfully installed package: {package}\")\n        gptcache_log.info(\"%s installed successfully!\", package)\n    except subprocess.CalledProcessError as e:\n        raise PipInstallError(package) from e\n"
  },
  {
    "path": "gptcache/utils/error.py",
    "content": "class CacheError(Exception):\n    \"\"\"GPTCache base error\"\"\"\n\n\nclass NotInitError(CacheError):\n    \"\"\"Raise when the cache has been used before it's inited\"\"\"\n    def __init__(self):\n        super().__init__(\"The cache should be inited before using\")\n\n\nclass NotFoundError(CacheError):\n    \"\"\"Raise when getting an unsupported store.\"\"\"\n    def __init__(self, store_type, current_type_name):\n        super().__init__(f\"Unsupported ${store_type}: {current_type_name}\")\n\n\nclass ParamError(CacheError):\n    \"\"\"Raise when receiving an invalid param.\"\"\"\n\n\nclass PipInstallError(CacheError):\n    \"\"\"Raise when failed to install package.\"\"\"\n    def __init__(self, package):\n        super().__init__(f\"Ran into error installing {package}.\")\n\n\ndef wrap_error(e: Exception) -> Exception:\n    \"\"\"Add a type to exception `e` while ensuring that the original type is not changed\n\n    Example:\n        .. code-block:: python\n\n            import openai\n\n            from gptcache.utils.error import wrap_error\n\n\n            def raise_error():\n                try:\n                    raise openai.error.OpenAIError(message=\"test\")\n                except openai.error.OpenAIError as e:\n                    raise wrap_error(e)\n\n\n            try:\n                raise_error()\n            except openai.error.OpenAIError as e:\n                print(\"exception:\")\n                print(e)\n\n            print(\"over\")\n    \"\"\"\n    e.__class__ = type(e.__class__.__name__, (CacheError, e.__class__), {})\n    return e\n"
  },
  {
    "path": "gptcache/utils/lazy_import.py",
    "content": "import importlib\nfrom types import ModuleType\n\n\nclass LazyImport(ModuleType):\n    \"\"\"\n    Lazily import a module.\n    \"\"\"\n\n    def __init__(self, local_name, parent_module_globals, name):\n        self._local_name = local_name\n        self._parent_module_globals = parent_module_globals\n        super().__init__(name)\n\n    def _load(self):\n        module = importlib.import_module(self.__name__)\n        self._parent_module_globals[self._local_name] = module\n        self.__dict__.update(module.__dict__)\n        return module\n\n    def __getattr__(self, item):\n        module = self._load()\n        return getattr(module, item)\n\n    def __dir__(self):\n        module = self._load()\n        return dir(module)\n"
  },
  {
    "path": "gptcache/utils/log.py",
    "content": "import logging\n\nimport gptcache\n\nFORMAT = '%(asctime)s - %(thread)d - %(filename)s-%(module)s:%(lineno)s - %(levelname)s: %(message)s'\nlogging.basicConfig(format=FORMAT)\n\ngptcache_log = logging.getLogger(f'gptcache:{gptcache.__version__}')\n"
  },
  {
    "path": "gptcache/utils/response.py",
    "content": "import base64\nimport requests\n\n\ndef get_message_from_openai_answer(openai_resp):\n    return openai_resp[\"choices\"][0][\"message\"][\"content\"]\n\n\ndef get_stream_message_from_openai_answer(openai_data):\n    return openai_data[\"choices\"][0][\"delta\"].get(\"content\", \"\")\n\n\ndef get_text_from_openai_answer(openai_resp):\n    return openai_resp[\"choices\"][0][\"text\"]\n\n\ndef get_image_from_openai_b64(openai_resp):\n    return openai_resp[\"data\"][0][\"b64_json\"]\n\n\ndef get_image_from_openai_url(openai_resp):\n    url = openai_resp[\"data\"][0][\"url\"]\n    img_content = requests.get(url).content\n    img_data = base64.b64encode(img_content)\n    return img_data\n\n\ndef get_image_from_path(openai_resp):\n    img_path = openai_resp[\"data\"][0][\"url\"]\n    with open(img_path, \"rb\") as f:\n        img_data = base64.b64encode(f.read())\n    return img_data\n\n\ndef get_audio_text_from_openai_answer(openai_resp):\n    return openai_resp[\"text\"]\n"
  },
  {
    "path": "gptcache/utils/softmax.py",
    "content": "import numpy as np\n\n\ndef softmax(x: list):\n    x = np.array(x)\n    assert len(x.shape) == 1, f\"Expect to get a shape of (len,) but got {x.shape}, x value: {x}.\"\n    max_val = x.max()\n    e_x = np.exp(x - max_val)\n    return e_x / e_x.sum()\n"
  },
  {
    "path": "gptcache/utils/time.py",
    "content": "import time\n\nfrom gptcache import cache\n\n\ndef time_cal(func, func_name=None, report_func=None):\n    def inner(*args, **kwargs):\n        time_start = time.time()\n        res = func(*args, **kwargs)\n        delta_time = time.time() - time_start\n        if cache.config.log_time_func:\n            cache.config.log_time_func(\n                func.__name__ if func_name is None else func_name, delta_time\n            )\n        if report_func is not None:\n            report_func(delta_time)\n        return res\n\n    return inner\n"
  },
  {
    "path": "gptcache/utils/token.py",
    "content": "from gptcache.utils import import_tiktoken\n\n_encoding = None\n\n\ndef _get_encoding():\n    global _encoding\n    if _encoding is None:\n        import_tiktoken()\n        import tiktoken  # pylint: disable=C0415\n        _encoding = tiktoken.get_encoding(\"cl100k_base\")\n    return _encoding\n\n\ndef token_counter(text):\n    \"\"\"Token Counter\"\"\"\n    num_tokens = len(_get_encoding().encode(text))\n    return num_tokens\n"
  },
  {
    "path": "gptcache_server/__init__.py",
    "content": ""
  },
  {
    "path": "gptcache_server/dockerfiles/Dockerfile",
    "content": "FROM python:3.8-slim-bullseye\n\nENV PYTHONDONTWRITEBYTECODE=1\n\nRUN pip3 install --upgrade pip\n\nRUN pip3 install --no-cache-dir gptcache\n\nWORKDIR /workspace\n\nCMD [\"gptcache_server\", \"-s\", \"0.0.0.0\"]\n"
  },
  {
    "path": "gptcache_server/server.py",
    "content": "import argparse\nimport json\nimport os\nimport zipfile\nfrom typing import Optional\n\nfrom gptcache import cache, Cache\nfrom gptcache.adapter import openai\nfrom gptcache.adapter.api import (\n    get,\n    put,\n    init_similar_cache,\n    init_similar_cache_from_config,\n)\nfrom gptcache.processor.pre import last_content\nfrom gptcache.utils import import_fastapi, import_pydantic, import_starlette\n\nimport_fastapi()\nimport_pydantic()\n\nfrom fastapi import FastAPI, HTTPException, Request\nfrom fastapi.responses import FileResponse\nimport uvicorn\nfrom pydantic import BaseModel\n\n\napp = FastAPI()\nopenai_cache: Optional[Cache] = None\ncache_dir = \"\"\ncache_file_key = \"\"\n\n\nclass CacheData(BaseModel):\n    prompt: str\n    answer: Optional[str] = \"\"\n\n\n@app.get(\"/\")\nasync def hello():\n    return \"hello gptcache server\"\n\n\n@app.post(\"/put\")\nasync def put_cache(cache_data: CacheData) -> str:\n    put(cache_data.prompt, cache_data.answer)\n    return \"successfully update the cache\"\n\n\n@app.post(\"/get\")\nasync def get_cache(cache_data: CacheData) -> CacheData:\n    result = get(cache_data.prompt)\n    return CacheData(prompt=cache_data.prompt, answer=result)\n\n\n@app.post(\"/flush\")\nasync def flush_cache() -> str:\n    cache.flush()\n    return \"successfully flush the cache\"\n\n\n@app.get(\"/cache_file\")\nasync def get_cache_file(key: str = \"\") -> FileResponse:\n    global cache_dir\n    global cache_file_key\n    if cache_dir == \"\":\n        raise HTTPException(\n            status_code=403,\n            detail=\"the cache_dir was not specified when the service was initialized\",\n        )\n    if cache_file_key == \"\":\n        raise HTTPException(\n            status_code=403,\n            detail=\"the cache file can't be downloaded because the cache-file-key was not specified\",\n        )\n    if cache_file_key != key:\n        raise HTTPException(status_code=403, detail=\"the cache file key is wrong\")\n    zip_filename = cache_dir + \".zip\"\n    with zipfile.ZipFile(zip_filename, \"w\", compression=zipfile.ZIP_DEFLATED) as zipf:\n        for root, _, files in os.walk(cache_dir):\n            for file in files:\n                zipf.write(os.path.join(root, file))\n    return FileResponse(zip_filename)\n\n\n@app.api_route(\n    \"/v1/chat/completions\",\n    methods=[\"POST\", \"OPTIONS\"],\n)\nasync def chat(request: Request):\n    if openai_cache is None:\n        raise HTTPException(\n            status_code=500,\n            detail=f\"the gptcache server doesn't open the openai completes proxy\",\n        )\n\n    import_starlette()\n    from starlette.responses import StreamingResponse, JSONResponse\n\n    openai_params = await request.json()\n    is_stream = openai_params.get(\"stream\", False)\n    headers = request.headers\n    auth_header = headers.get(\"authorization\", None)\n    openai_key = auth_header.split(\" \")[1] if auth_header else \"\"\n    cache_skip = openai_params.pop(\"cache_skip\", False)\n    if cache_skip is False:\n        messages = openai_params.get(\"messages\")\n        if \"/cache_skip \" in messages[0][\"content\"]:\n            cache_skip = True\n            content0 = openai_params.get(\"messages\")[0][\"content\"]\n            openai_params.get(\"messages\")[0][\"content\"] = str(content0).replace(\"/cache_skip \", \"\")\n        elif \"/cache_skip \" in messages[-1][\"content\"]:\n            cache_skip = True\n            content0 = openai_params.get(\"messages\")[-1][\"content\"]\n            openai_params.get(\"messages\")[-1][\"content\"] = str(content0).replace(\"/cache_skip \", \"\")\n        print(\"cache_skip:\", cache_skip)\n    print(\"messages:\", openai_params.get(\"messages\"))\n    try:\n        if is_stream:\n            def generate():\n                for stream_response in openai.ChatCompletion.create(\n                    cache_obj=openai_cache,\n                    cache_skip=cache_skip,\n                    api_key=openai_key,\n                    **openai_params,\n                ):\n                    if stream_response == \"[DONE]\":\n                        yield \"data: [DONE]\\n\\n\"\n                        break\n                    yield f\"data: {json.dumps(stream_response)}\\n\\n\"\n\n            return StreamingResponse(generate(), media_type=\"text/event-stream\")\n        else:\n            openai_response = openai.ChatCompletion.create(\n                cache_obj=openai_cache,\n                cache_skip=cache_skip,\n                api_key=openai_key,\n                **openai_params,\n            )\n            return JSONResponse(content=openai_response)\n    except Exception as e:\n        raise HTTPException(status_code=500, detail=f\"openai error: {e}\")\n\n\ndef main():\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\n        \"-s\", \"--host\", default=\"localhost\", help=\"the hostname to listen on\"\n    )\n    parser.add_argument(\n        \"-p\", \"--port\", type=int, default=8000, help=\"the port to listen on\"\n    )\n    parser.add_argument(\n        \"-d\", \"--cache-dir\", default=\"gptcache_data\", help=\"the cache data dir\"\n    )\n    parser.add_argument(\"-k\", \"--cache-file-key\", default=\"\", help=\"the cache file key\")\n    parser.add_argument(\n        \"-f\", \"--cache-config-file\", default=None, help=\"the cache config file\"\n    )\n    parser.add_argument(\n        \"-o\",\n        \"--openai\",\n        type=bool,\n        default=False,\n        help=\"whether to open the openai completes proxy\",\n    )\n    parser.add_argument(\n        \"-of\",\n        \"--openai-cache-config-file\",\n        default=None,\n        help=\"the cache config file of the openai completes proxy\",\n    )\n\n    args = parser.parse_args()\n    global cache_dir\n    global cache_file_key\n\n    if args.cache_config_file:\n        init_conf = init_similar_cache_from_config(config_dir=args.cache_config_file)\n        cache_dir = init_conf.get(\"storage_config\", {}).get(\"data_dir\", \"\")\n    else:\n        init_similar_cache(args.cache_dir)\n        cache_dir = args.cache_dir\n    cache_file_key = args.cache_file_key\n\n    if args.openai:\n        global openai_cache\n        openai_cache = Cache()\n        if args.openai_cache_config_file:\n            init_similar_cache_from_config(\n                config_dir=args.openai_cache_config_file,\n                cache_obj=openai_cache,\n            )\n        else:\n            init_similar_cache(\n                data_dir=\"openai_server_cache\",\n                pre_func=last_content,\n                cache_obj=openai_cache,\n            )\n\n        import_starlette()\n        from starlette.middleware.cors import CORSMiddleware\n\n        app.add_middleware(\n            CORSMiddleware,\n            allow_origins=[\"*\"],\n            allow_credentials=True,\n            allow_methods=[\"*\"],\n            allow_headers=[\"*\"],\n        )\n\n    uvicorn.run(app, host=args.host, port=args.port)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "pylint.conf",
    "content": "# This Pylint rcfile contains a best-effort configuration to uphold the\n# best-practices and style described in the Google Python style guide:\n#   https://google.github.io/styleguide/pyguide.html\n#\n# Its canonical open-source location is:\n#   https://google.github.io/styleguide/pylintrc\n\n[MASTER]\n\n# Files or directories to be skipped. They should be base names, not paths.\nignore=third_party\n\n# Files or directories matching the regex patterns are skipped. The regex\n# matches against base names, not paths.\nignore-patterns=\n\n# Pickle collected data for later comparisons.\npersistent=no\n\n# List of plugins (as comma separated values of python modules names) to load,\n# usually to register additional checkers.\nload-plugins=\n\n# Use multiple processes to speed up Pylint.\njobs=4\n\n# Allow loading of arbitrary C extensions. Extensions are imported into the\n# active Python interpreter and may run arbitrary code.\nunsafe-load-any-extension=no\n\n\n[MESSAGES CONTROL]\n\n# Only show warnings with the listed confidence levels. Leave empty to show\n# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED\nconfidence=\n\n# Enable the message, report, category or checker with the given id(s). You can\n# either give multiple identifier separated by comma (,) or put this option\n# multiple time (only on the command line, not in the configuration file where\n# it should appear only once). See also the \"--disable\" option for examples.\n#enable=\n\n# Disable the message, report, category or checker with the given id(s). You\n# can either give multiple identifiers separated by comma (,) or put this\n# option multiple times (only on the command line, not in the configuration\n# file where it should appear only once).You can also use \"--disable=all\" to\n# disable everything first and then reenable specific checks. For example, if\n# you want to run only the similarities checker, you can use \"--disable=all\n# --enable=similarities\". If you want to run only the classes checker, but have\n# no Warning level messages displayed, use\"--disable=all --enable=classes\n# --disable=W\"\ndisable=abstract-method,\n        apply-builtin,\n        arguments-differ,\n        attribute-defined-outside-init,\n        backtick,\n        bad-option-value,\n        basestring-builtin,\n        buffer-builtin,\n        c-extension-no-member,\n        consider-using-enumerate,\n        cmp-builtin,\n        cmp-method,\n        coerce-builtin,\n        coerce-method,\n        delslice-method,\n        div-method,\n        duplicate-code,\n        eq-without-hash,\n        execfile-builtin,\n        file-builtin,\n        filter-builtin-not-iterating,\n        fixme,\n        getslice-method,\n        global-statement,\n        hex-method,\n        idiv-method,\n        implicit-str-concat-in-sequence,\n        import-error,\n        import-self,\n        import-star-module-level,\n        inconsistent-return-statements,\n        input-builtin,\n        intern-builtin,\n        invalid-str-codec,\n        locally-disabled,\n        long-builtin,\n        long-suffix,\n        map-builtin-not-iterating,\n        misplaced-comparison-constant,\n        missing-function-docstring,\n        metaclass-assignment,\n        next-method-called,\n        next-method-defined,\n        no-absolute-import,\n        no-else-break,\n        no-else-continue,\n        no-else-raise,\n        no-else-return,\n        no-init,  # added\n        no-member,\n        no-name-in-module,\n        no-self-use,\n        nonzero-method,\n        oct-method,\n        old-division,\n        old-ne-operator,\n        old-octal-literal,\n        old-raise-syntax,\n        parameter-unpacking,\n        print-statement,\n        raising-string,\n        range-builtin-not-iterating,\n        raw_input-builtin,\n        rdiv-method,\n        reduce-builtin,\n        relative-import,\n        reload-builtin,\n        round-builtin,\n        setslice-method,\n        signature-differs,\n        standarderror-builtin,\n        suppressed-message,\n        sys-max-int,\n        too-few-public-methods,\n        too-many-ancestors,\n        too-many-arguments,\n        too-many-boolean-expressions,\n        too-many-branches,\n        too-many-instance-attributes,\n        too-many-locals,\n        too-many-nested-blocks,\n        too-many-public-methods,\n        too-many-return-statements,\n        too-many-statements,\n        trailing-newlines,\n        unichr-builtin,\n        unicode-builtin,\n        unnecessary-pass,\n        unpacking-in-except,\n        useless-else-on-loop,\n        useless-object-inheritance,\n        useless-suppression,\n        using-cmp-argument,\n        wrong-import-order,\n        xrange-builtin,\n        zip-builtin-not-iterating,\n        missing-module-docstring,\n        super-init-not-called,\n        wrong-import-position\n\n\n[REPORTS]\n\n# Set the output format. Available formats are text, parseable, colorized, msvs\n# (visual studio) and html. You can also give a reporter class, eg\n# mypackage.mymodule.MyReporterClass.\noutput-format=text\n\n# Put messages in a separate file for each module / package specified on the\n# command line instead of printing them on stdout. Reports (if any) will be\n# written in a file name \"pylint_global.[txt|html]\". This option is deprecated\n# and it will be removed in Pylint 2.0.\nfiles-output=no\n\n# Tells whether to display a full report or only the messages\nreports=no\n\n# Python expression which should return a note less than 10 (10 is the highest\n# note). You have access to the variables errors warning, statement which\n# respectively contain the number of errors / warnings messages and the total\n# number of statements analyzed. This is used by the global evaluation report\n# (RP0004).\nevaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)\n\n# Template used to display messages. This is a python new-style format string\n# used to format the message information. See doc for all details\n#msg-template=\n\n\n[BASIC]\n\n# Good variable names which should always be accepted, separated by a comma\ngood-names=main,_\n\n# Bad variable names which should always be refused, separated by a comma\nbad-names=\n\n# Colon-delimited sets of names that determine each other's naming style when\n# the name regexes allow several styles.\nname-group=\n\n# Include a hint for the correct naming format with invalid-name\ninclude-naming-hint=no\n\n# List of decorators that produce properties, such as abc.abstractproperty. Add\n# to this list to register other decorators that produce valid properties.\nproperty-classes=abc.abstractproperty,cached_property.cached_property,cached_property.threaded_cached_property,cached_property.cached_property_with_ttl,cached_property.threaded_cached_property_with_ttl\n\n# Regular expression matching correct function names\nfunction-rgx=^(?:(?P<exempt>setUp|tearDown|setUpModule|tearDownModule)|(?P<camel_case>_?[A-Z][a-zA-Z0-9]*)|(?P<snake_case>_?[a-z][a-z0-9_]*))$\n\n# Regular expression matching correct variable names\nvariable-rgx=^[a-z][a-z0-9_]*$\n\n# Regular expression matching correct constant names\nconst-rgx=^(_?[A-Z][A-Z0-9_]*|__[a-z0-9_]+__|_?[a-z][a-z0-9_]*)$\n\n# Regular expression matching correct attribute names\nattr-rgx=^_{0,2}[a-z][a-z0-9_]*$\n\n# Regular expression matching correct argument names\nargument-rgx=^[a-z][a-z0-9_]*$\n\n# Regular expression matching correct class attribute names\nclass-attribute-rgx=^(_?[A-Z][A-Z0-9_]*|__[a-z0-9_]+__|_?[a-z][a-z0-9_]*)$\n\n# Regular expression matching correct inline iteration names\ninlinevar-rgx=^[a-z][a-z0-9_]*$\n\n# Regular expression matching correct class names\nclass-rgx=^_?[A-Z][a-zA-Z0-9]*$\n\n# Regular expression matching correct module names\nmodule-rgx=^(_?[a-z][a-z0-9_]*|__init__|__main__)$\n\n# Regular expression matching correct method names\nmethod-rgx=(?x)^(?:(?P<exempt>_[a-z0-9_]+__|runTest|setUp|tearDown|setUpTestCase|tearDownTestCase|setupSelf|tearDownClass|setUpClass|(test|assert)_*[A-Z0-9][a-zA-Z0-9_]*|next)|(?P<camel_case>_{0,2}[A-Z][a-zA-Z0-9_]*)|(?P<snake_case>_{0,2}[a-z][a-z0-9_]*))$\n\n# Regular expression which should only match function or class names that do\n# not require a docstring.\nno-docstring-rgx=(__.*__|main|test.*|.*test|.*Test)$\n\n# Minimum line length for functions/classes that require docstrings, shorter\n# ones are exempt.\ndocstring-min-length=10\n\n\n[TYPECHECK]\n\n# List of decorators that produce context managers, such as\n# contextlib.contextmanager. Add to this list to register other decorators that\n# produce valid context managers.\ncontextmanager-decorators=contextlib.contextmanager,contextlib2.contextmanager\n\n# Tells whether missing members accessed in mixin class should be ignored. A\n# mixin class is detected if its name ends with \"mixin\" (case insensitive).\nignore-mixin-members=yes\n\n# List of module names for which member attributes should not be checked\n# (useful for modules/projects where namespaces are manipulated during runtime\n# and thus existing member attributes cannot be deduced by static analysis. It\n# supports qualified module names, as well as Unix pattern matching.\nignored-modules=\n\n# List of class names for which member attributes should not be checked (useful\n# for classes with dynamically set attributes). This supports the use of\n# qualified names.\nignored-classes=optparse.Values,thread._local,_thread._local\n\n# List of members which are set dynamically and missed by pylint inference\n# system, and so shouldn't trigger E1101 when accessed. Python regular\n# expressions are accepted.\ngenerated-members=\n\n\n[FORMAT]\n\n# Maximum number of characters on a single line.\nmax-line-length=150\n\n# TODO(https://github.com/PyCQA/pylint/issues/3352): Direct pylint to exempt\n# lines made too long by directives to pytype.\n\n# Regexp for a line that is allowed to be longer than the limit.\nignore-long-lines=(?x)(\n  ^\\s*(\\#\\ )?<?https?://\\S+>?$|\n  ^\\s*(from\\s+\\S+\\s+)?import\\s+.+$)\n\n# Allow the body of an if to be on the same line as the test if there is no\n# else.\nsingle-line-if-stmt=yes\n\n# List of optional constructs for which whitespace checking is disabled. `dict-\n# separator` is used to allow tabulation in dicts, etc.: {1  : 1,\\n222: 2}.\n# `trailing-comma` allows a space between comma and closing bracket: (a, ).\n# `empty-line` allows space-only lines.\nno-space-check=\n\n# Maximum number of lines in a module\nmax-module-lines=99999\n\n# String used as indentation unit.  The internal Google style guide mandates 2\n# spaces.  Google's externaly-published style guide says 4, consistent with\n# PEP 8.  Here, we use 2 spaces, for conformity with many open-sourced Google\n# projects (like TensorFlow).\nindent-string='    '\n\n# Number of spaces of indent required inside a hanging  or continued line.\nindent-after-paren=4\n\n# Expected format of line ending, e.g. empty (any line ending), LF or CRLF.\nexpected-line-ending-format=\n\n\n[MISCELLANEOUS]\n\n# List of note tags to take in consideration, separated by a comma.\nnotes=TODO\n\n\n[STRING]\n\n# This flag controls whether inconsistent-quotes generates a warning when the\n# character used as a quote delimiter is used inconsistently within a module.\ncheck-quote-consistency=yes\n\n\n[VARIABLES]\n\n# Tells whether we should check for unused import in __init__ files.\ninit-import=no\n\n# A regular expression matching the name of dummy variables (i.e. expectedly\n# not used).\ndummy-variables-rgx=^\\*{0,2}(_$|unused_|dummy_)\n\n# List of additional names supposed to be defined in builtins. Remember that\n# you should avoid to define new builtins when possible.\nadditional-builtins=\n\n# List of strings which can identify a callback function by name. A callback\n# name must start or end with one of those strings.\ncallbacks=cb_,_cb\n\n# List of qualified module names which can have objects that can redefine\n# builtins.\nredefining-builtins-modules=six,six.moves,past.builtins,future.builtins,functools\n\n\n[LOGGING]\n\n# Logging modules to check that the string format arguments are in logging\n# function parameter format\nlogging-modules=logging,absl.logging,tensorflow.io.logging\n\n\n[SIMILARITIES]\n\n# Minimum lines number of a similarity.\nmin-similarity-lines=4\n\n# Ignore comments when computing similarities.\nignore-comments=yes\n\n# Ignore docstrings when computing similarities.\nignore-docstrings=yes\n\n# Ignore imports when computing similarities.\nignore-imports=no\n\n\n[SPELLING]\n\n# Spelling dictionary name. Available dictionaries: none. To make it working\n# install python-enchant package.\nspelling-dict=\n\n# List of comma separated words that should not be checked.\nspelling-ignore-words=\n\n# A path to a file that contains private dictionary; one word per line.\nspelling-private-dict-file=\n\n# Tells whether to store unknown words to indicated private dictionary in\n# --spelling-private-dict-file option instead of raising a message.\nspelling-store-unknown-words=no\n\n\n[IMPORTS]\n\n# Deprecated modules which should not be used, separated by a comma\ndeprecated-modules=regsub,\n                   TERMIOS,\n                   Bastion,\n                   rexec,\n                   sets\n\n# Create a graph of every (i.e. internal and external) dependencies in the\n# given file (report RP0402 must not be disabled)\nimport-graph=\n\n# Create a graph of external dependencies in the given file (report RP0402 must\n# not be disabled)\next-import-graph=\n\n# Create a graph of internal dependencies in the given file (report RP0402 must\n# not be disabled)\nint-import-graph=\n\n# Force import order to recognize a module as part of the standard\n# compatibility libraries.\nknown-standard-library=\n\n# Force import order to recognize a module as part of a third party library.\nknown-third-party=enchant, absl\n\n# Analyse import fallback blocks. This can be used to support both Python 2 and\n# 3 compatible code, which means that the block might have code that exists\n# only in one or another interpreter, leading to false positives when analysed.\nanalyse-fallback-blocks=no\n\n\n[CLASSES]\n\n# List of method names used to declare (i.e. assign) instance attributes.\ndefining-attr-methods=__init__,\n                      __new__,\n                      setUp\n\n# List of member names, which should be excluded from the protected access\n# warning.\nexclude-protected=_asdict,\n                  _fields,\n                  _replace,\n                  _source,\n                  _make\n\n# List of valid names for the first argument in a class method.\nvalid-classmethod-first-arg=cls,\n                            class_\n\n# List of valid names for the first argument in a metaclass class method.\nvalid-metaclass-classmethod-first-arg=mcs\n\n\n[EXCEPTIONS]\n\n# Exceptions that will emit a warning when being caught. Defaults to\n# \"Exception\"\novergeneral-exceptions=StandardError,\n                       Exception,\n                       BaseException\n\n"
  },
  {
    "path": "requirements.txt",
    "content": "numpy\ncachetools\nrequests"
  },
  {
    "path": "scripts/manage_conda_env.sh",
    "content": "#!/bin/bash\n\n\nDEFAULT_ENV_NAME=\"gpt-cache\"\n\n# Usage: ./manage_conda_env.sh create [env_name]\n# Usage: ./manage_conda_env.sh remove [env_name]\n\nif [[ \"$1\" == \"create\" ]]; then\n    if [[ -n \"$2\" ]]; then\n        env_name=\"$2\"\n    else\n        env_name=\"$DEFAULT_ENV_NAME\"\n    fi\n    if conda env list | grep -q \"^$env_name \"; then\n        echo \"conda environment '$env_name' already exists.\"\n    else\n        conda create --name \"$env_name\" python=3.8\n        echo \"conda environment '$env_name' created.\"\n    fi\n    conda activate \"$env_name\"\n    echo \"conda environment '$env_name' activated.\"\nelif [[ \"$1\" == \"remove\" ]]; then\n    conda deactivate\n    if [[ -n \"$2\" ]]; then\n        env_name=\"$2\"\n    else\n        env_name=\"$DEFAULT_ENV_NAME\"\n    fi\n    conda remove --name \"$env_name\" --all\n    echo \"conda environment '$env_name' removed.\"\nelse\n    echo \"Usage: ./manage_conda_env.sh [create|remove] [env_name]\"\n    exit 1\nfi"
  },
  {
    "path": "scripts/remove_example_cache.sh",
    "content": "#!/bin/bash\n\nparent_dir=\"$(cd \"$(dirname \"${BASH_SOURCE[0]}\")\"/.. && pwd)\"\nfind \"$parent_dir/examples\" \\( -path \"$parent_dir/examples/benchmark\" -path \"$parent_dir/examples/sqlite_milvus_mock\" \\) -prune -o \\( -type f \\( -name 'data_map*.txt' -or -name 'faiss.index' -or -name '*.db' \\) -delete \\)"
  },
  {
    "path": "setup.py",
    "content": "import codecs\nimport os\nimport re\nfrom typing import List\n\nimport setuptools\nfrom setuptools import find_packages\n\nhere = os.path.abspath(os.path.dirname(__file__))\n\n\nwith open(\"README.md\", \"r\") as fh:\n    long_description = fh.read()\n\n\ndef parse_requirements(file_name: str) -> List[str]:\n    with open(file_name) as f:\n        return [\n            require.strip() for require in f\n            if require.strip() and not require.startswith('#')\n        ]\n\n\ndef read(*parts):\n    with codecs.open(os.path.join(here, *parts), \"r\") as fp:\n        return fp.read()\n\n\ndef find_version(*file_paths):\n    version_file = read(*file_paths)\n    version_match = re.search(r\"^__version__ = ['\\\"]([^'\\\"]*)['\\\"]\", version_file, re.M)\n    if version_match:\n        return version_match.group(1)\n    raise RuntimeError(\"Unable to find version string.\")\n\n\nsetuptools.setup(\n    name=\"gptcache\",\n    packages=find_packages(),\n    version=find_version(\"gptcache\", \"__init__.py\"),\n    author=\"SimFG\",\n    author_email=\"bang.fu@zilliz.com\",\n    description=\"GPTCache, a powerful caching library that can be used to speed up and lower the cost of chat \"\n                \"applications that rely on the LLM service. GPTCache works as a memcache for AIGC applications, \"\n                \"similar to how Redis works for traditional applications.\",\n    long_description=long_description,\n    long_description_content_type=\"text/markdown\",\n    install_requires=parse_requirements('requirements.txt'),\n    url=\"https://github.com/zilliztech/GPTCache\",\n    license='https://opensource.org/license/mit/',\n    python_requires='>=3.8.1',\n    entry_points={\n        'console_scripts': [\n            'gptcache_server=gptcache_server.server:main',\n        ],\n    },\n)\n"
  },
  {
    "path": "tests/integration_tests/base/client_base.py",
    "content": "import os\nimport pytest\nfrom utils.util_log import test_log as log\nfrom common import common_type as ct\nfrom common import common_func as cf\n\n\nclass Base:\n    def setup_method(self, method):\n        log.info((\"*\" * 35) + \" setup \" + (\"*\" * 35))\n        log.info(\"[setup_method] Start setup test case %s.\" % method.__name__)\n        log.info(\"[setup_method] Clean up tmp files.\")\n        cf.remove_file()\n\n    def teardown_method(self, method):\n        log.info((\"*\" * 35) + \" teardown \" + (\"*\" * 35))\n        log.info(\"[teardown_method] Start teardown test case %s...\" % method.__name__)\n        log.info(\"[teardown_method] Clean up tmp files.\")\n        cf.remove_file()\n"
  },
  {
    "path": "tests/integration_tests/common/common_func.py",
    "content": "\"\"\"\" Methods of processing data \"\"\"\nimport os\nfrom common import common_type as ct\nfrom utils.util_log import test_log as log\n\n\ndef remove_file(file_names=[ct.sqlite_file, ct.faiss_file]):\n    \"\"\"\n    delete files\n    :param file_names: file name list\n    :return: None\n    \"\"\"\n    for file in file_names:\n        if os.path.isfile(file):\n            os.remove(file)\n            log.info(\"%s is removed\" % file)\n\n\ndef log_time_func(func_name, delta_time):\n    \"\"\"\n    print function time\n    :param func_name: function name\n    :param delta_time: consumed time\n    :return: None\n    \"\"\"\n    log.info(\"func `{}` consume time: {:.2f}s\".format(func_name, delta_time))\n\n\ndef disable_cache(*args, **kwargs):\n    \"\"\"\n    disable cache\n    \"\"\"\n    return False\n"
  },
  {
    "path": "tests/integration_tests/common/common_type.py",
    "content": "\"\"\" Initialized parameters \"\"\"\nsqlite_file = \"sqlite.db\"\nfaiss_file = \"faiss.index\"\n"
  },
  {
    "path": "tests/integration_tests/config/log_config.py",
    "content": "import os\nimport datetime\n\n\nclass LogConfig:\n    def __init__(self):\n        self.log_debug = \"\"\n        self.log_err = \"\"\n        self.log_info = \"\"\n        self.log_worker = \"\"\n        self.get_default_config()\n\n    @staticmethod\n    def get_env_variable(var=\"CI_LOG_PATH\"):\n        \"\"\"get log path for testing\"\"\"\n        try:\n            log_path = os.environ[var]\n            return str(log_path)\n        except Exception as e:\n            # now = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S')\n            log_path = f\"/tmp/ci_logs\"\n            print(\n                \"[get_env_variable] failed to get environment variables : %s, use default path : %s\"\n                % (str(e), log_path)\n            )\n            return log_path\n\n    @staticmethod\n    def create_path(log_path):\n        if not os.path.isdir(str(log_path)):\n            print(\"[create_path] folder(%s) is not exist.\" % log_path)\n            print(\"[create_path] create path now...\")\n            os.makedirs(log_path)\n\n    def get_default_config(self):\n        \"\"\"Make sure the path exists\"\"\"\n        log_dir = self.get_env_variable()\n        self.log_debug = \"%s/ci_test_log.debug\" % log_dir\n        self.log_info = \"%s/ci_test_log.log\" % log_dir\n        self.log_err = \"%s/ci_test_log.err\" % log_dir\n        work_log = os.environ.get(\"PYTEST_XDIST_WORKER\")\n        if work_log is not None:\n            self.log_worker = f\"{log_dir}/{work_log}.log\"\n\n        self.create_path(log_dir)\n\n\nlog_config = LogConfig()\n"
  },
  {
    "path": "tests/integration_tests/examples/map/test_example_map.py",
    "content": "import os\n\nfrom gptcache.utils.response import get_message_from_openai_answer\nfrom gptcache.manager.factory import get_data_manager\nfrom gptcache.adapter import openai\nfrom gptcache import cache, Cache\n\n\ndef test_map():\n    dir_name, _ = os.path.split(os.path.abspath(__file__))\n    bak_cache = Cache()\n    bak_data_file = dir_name + \"/data_map_bak.txt\"\n    bak_cache.init(data_manager=get_data_manager(data_path=bak_data_file, max_size=10))\n    data_file = dir_name + \"/data_map.txt\"\n    cache.init(\n        data_manager=get_data_manager(data_path=data_file, max_size=10),\n        next_cache=bak_cache,\n    )\n\n    cache.set_openai_key()\n    mock_messages = [\n        {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n        {\"role\": \"user\", \"content\": \"foo15\"},\n    ]\n\n    if not os.path.isfile(bak_data_file):\n        cache.import_data(\n            [f\"foo{i}\" for i in range(10)], [f\"receiver the foo {i}\" for i in range(10)]\n        )\n    if not os.path.isfile(data_file):\n        bak_cache.import_data(\n            [f\"foo{i}\" for i in range(10, 20)],\n            [f\"receiver the foo {i}\" for i in range(10, 20)],\n        )\n\n    expect_answer = \"receiver the foo 15\"\n    answer = openai.ChatCompletion.create(\n        model=\"gpt-3.5-turbo\",\n        messages=mock_messages,\n    )\n    assert get_message_from_openai_answer(answer) == expect_answer\n\n    cache.flush()\n\n    bak_cache2 = Cache()\n    bak_cache2.init(data_manager=get_data_manager(data_path=bak_data_file, max_size=10))\n    cache.init(\n        data_manager=get_data_manager(data_path=data_file, max_size=10),\n        next_cache=bak_cache2,\n    )\n    answer = openai.ChatCompletion.create(\n        model=\"gpt-3.5-turbo\",\n        messages=mock_messages,\n    )\n    assert get_message_from_openai_answer(answer) == expect_answer\n"
  },
  {
    "path": "tests/integration_tests/examples/sqlite_faiss_mock/test_example_sqlite_faiss.py",
    "content": "import os\n\nfrom gptcache.utils.response import get_message_from_openai_answer\nfrom gptcache.adapter import openai\nfrom gptcache import cache, Config\nfrom gptcache.manager import get_data_manager, VectorBase\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\nimport numpy as np\n\n\nd = 8\n\n\ndef mock_embeddings(data, **kwargs):  # pylint: disable=W0613\n    return np.random.random((d,)).astype(\"float32\")\n\n\ndef test_sqlite_faiss():\n    sqlite_file = \"sqlite.db\"\n    faiss_file = \"faiss.index\"\n\n    if os.path.isfile(sqlite_file):\n        os.remove(sqlite_file)\n    if os.path.isfile(faiss_file):\n        os.remove(faiss_file)\n\n    vector_base = VectorBase(\"faiss\", dimension=d, top_k=3)\n    data_manager = get_data_manager(\"sqlite\", vector_base, max_size=8, clean_size=2)\n    cache.init(\n        embedding_func=mock_embeddings,\n        data_manager=data_manager,\n        similarity_evaluation=SearchDistanceEvaluation(),\n        config=Config(\n            similarity_threshold=0,\n        ),\n    )\n\n    mock_messages = [\n        {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n        {\"role\": \"user\", \"content\": \"foo\"},\n    ]\n    cache.import_data(\n        [f\"foo{i}\" for i in range(10)], [f\"receiver the foo {i}\" for i in range(10)]\n    )\n\n    answer = openai.ChatCompletion.create(\n        model=\"gpt-3.5-turbo\",\n        messages=mock_messages,\n    )\n    assert get_message_from_openai_answer(answer)\n\n    cache.flush()\n    vector_base = VectorBase(\"faiss\", dimension=d, top_k=3)\n    data_manager = get_data_manager(\"sqlite\", vector_base, max_size=8, clean_size=2)\n    cache.init(\n        embedding_func=mock_embeddings,\n        data_manager=data_manager,\n        similarity_evaluation=SearchDistanceEvaluation(),\n        config=Config(\n            similarity_threshold=0,\n        ),\n    )\n    answer = openai.ChatCompletion.create(\n        model=\"gpt-3.5-turbo\",\n        messages=mock_messages,\n    )\n    assert get_message_from_openai_answer(answer)\n"
  },
  {
    "path": "tests/integration_tests/examples/sqlite_faiss_onnx/test_example_sqlite_faiss_onnx.py",
    "content": "import os\nimport time\n\nfrom gptcache.adapter import openai\nfrom gptcache import cache, Config\nfrom gptcache.manager import get_data_manager, CacheBase, VectorBase\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\nfrom gptcache.embedding import Onnx\n\n\ndef test_sqlite_faiss_onnx():\n    onnx = Onnx()\n\n    sqlite_file = \"sqlite.db\"\n    faiss_file = \"faiss.index\"\n    if os.path.isfile(sqlite_file):\n        os.remove(sqlite_file)\n    if os.path.isfile(faiss_file):\n        os.remove(faiss_file)\n    cache_base = CacheBase(\"sqlite\")\n    vector_base = VectorBase(\"faiss\", dimension=onnx.dimension)\n    data_manager = get_data_manager(cache_base, vector_base, max_size=2000)\n\n    def log_time_func(func_name, delta_time):\n        print(\"func `{}` consume time: {:.2f}s\".format(func_name, delta_time))\n\n    cache.init(\n        embedding_func=onnx.to_embeddings,\n        data_manager=data_manager,\n        similarity_evaluation=SearchDistanceEvaluation(),\n        config=Config(log_time_func=log_time_func, similarity_threshold=0.9),\n    )\n\n    question = \"what do you think about chatgpt\"\n    answer = \"chatgpt is a good application\"\n    cache.import_data([question], [answer])\n\n    mock_messages = [\n        {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n        {\"role\": \"user\", \"content\": \"what do you think chatgpt\"},\n    ]\n\n    start_time = time.time()\n    answer = openai.ChatCompletion.create(\n        model=\"gpt-3.5-turbo\",\n        messages=mock_messages,\n    )\n    end_time = time.time()\n    print(\"cache hint time consuming: {:.2f}s\".format(end_time - start_time))\n    print(answer)\n\n    is_exception = False\n    try:\n        openai.ChatCompletion.create(\n            model=\"gpt-3.5-turbo\",\n            messages=mock_messages,\n            cache_factor=100,\n        )\n    except Exception:\n        is_exception = True\n\n    assert is_exception\n\n    mock_messages = [\n        {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n        {\"role\": \"user\", \"content\": \"what do you feel like chatgpt\"},\n    ]\n    is_exception = False\n    try:\n        openai.ChatCompletion.create(\n            model=\"gpt-3.5-turbo\",\n            messages=mock_messages,\n        )\n    except Exception:\n        is_exception = True\n\n    assert is_exception\n\n    is_exception = False\n    try:\n        openai.ChatCompletion.create(\n            model=\"gpt-3.5-turbo\",\n            messages=mock_messages,\n            cache_factor=0.5,\n        )\n    except Exception:\n        is_exception = True\n\n    assert not is_exception\n"
  },
  {
    "path": "tests/integration_tests/processor/pre/test_pre_without_prompt.py",
    "content": "import os\n\nfrom gptcache import Cache, Config\nfrom gptcache.adapter import openai\nfrom gptcache.manager import get_data_manager\nfrom gptcache.processor.pre import last_content_without_prompt\nfrom gptcache.utils.response import get_message_from_openai_answer\n\n\ndef test_pre_without_prompt():\n    cache_obj = Cache()\n    data_file = \"data_map_prompt.txt\"\n    cache_obj.init(\n        pre_embedding_func=last_content_without_prompt,\n        data_manager=get_data_manager(data_path=data_file),\n        config=Config(prompts=[\"foo\"]),\n    )\n\n    if not os.path.isfile(data_file):\n        cache_obj.import_data(\n            [f\"{i}\" for i in range(10)],\n            [f\"receiver the foo {i}\" for i in range(10)],\n        )\n\n    answer = openai.ChatCompletion.create(\n        model=\"gpt-3.5-turbo\",\n        messages=[\n            {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n            {\"role\": \"user\", \"content\": \"foo5\"},\n        ],\n        cache_obj=cache_obj,\n    )\n    assert get_message_from_openai_answer(answer) == \"receiver the foo 5\"\n"
  },
  {
    "path": "tests/integration_tests/test_redis_onnx.py",
    "content": "import random\nfrom unittest.mock import patch\n\nfrom gptcache import Cache\nfrom gptcache.adapter import openai\nfrom gptcache.adapter.api import init_similar_cache\nfrom gptcache.embedding import Onnx\nfrom gptcache.manager import manager_factory\nfrom gptcache.processor.pre import last_content\nfrom gptcache.utils.response import get_message_from_openai_answer\n\n\ndef test_redis_sqlite():\n    encoder = Onnx()\n\n    redis_data_managers = [\n        manager_factory(\n            \"sqlite,redis\",\n            data_dir=str(random.random()),\n            vector_params={\"dimension\": encoder.dimension},\n        ),\n        manager_factory(\n            \"redis,redis\",\n            data_dir=str(random.random()),\n            scalar_params={\"global_key_prefix\": \"gptcache_scalar\"},\n            vector_params={\"dimension\": encoder.dimension, \"namespace\": \"gptcache_vector\", \"collection_name\": \"cache_vector\"},\n        )\n    ]\n    for redis_data_manager in redis_data_managers:\n        redis_cache = Cache()\n        init_similar_cache(\n            cache_obj=redis_cache,\n            pre_func=last_content,\n            embedding=encoder,\n            data_manager=redis_data_manager,\n        )\n        question = \"what's github\"\n        expect_answer = \"GitHub is an online platform used primarily for version control and coding collaborations.\"\n        with patch(\"openai.ChatCompletion.create\") as mock_create:\n            datas = {\n                \"choices\": [\n                    {\n                        \"message\": {\"content\": expect_answer, \"role\": \"assistant\"},\n                        \"finish_reason\": \"stop\",\n                        \"index\": 0,\n                    }\n                ],\n                \"created\": 1677825464,\n                \"id\": \"chatcmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n                \"model\": \"gpt-3.5-turbo-0301\",\n                \"object\": \"chat.completion.chunk\",\n            }\n            mock_create.return_value = datas\n\n            response = openai.ChatCompletion.create(\n                model=\"gpt-3.5-turbo\",\n                messages=[\n                    {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                    {\"role\": \"user\", \"content\": question},\n                ],\n                cache_obj=redis_cache,\n            )\n\n            assert get_message_from_openai_answer(response) == expect_answer, response\n\n        response = openai.ChatCompletion.create(\n            model=\"gpt-3.5-turbo\",\n            messages=[\n                {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                {\"role\": \"user\", \"content\": \"can you explain what GitHub is\"},\n            ],\n            cache_obj=redis_cache,\n        )\n        answer_text = get_message_from_openai_answer(response)\n        assert answer_text == expect_answer, answer_text"
  },
  {
    "path": "tests/integration_tests/test_sqlite_faiss_onnx.py",
    "content": "import pytest\n\nfrom base.client_base import Base\nfrom common import common_func as cf\nfrom gptcache import cache, Config\nfrom gptcache.adapter import openai\nfrom gptcache.embedding import Onnx\nfrom gptcache.manager import get_data_manager, VectorBase\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\nfrom utils.util_log import test_log as log\n\n\nclass TestSqliteInvalid(Base):\n\n    \"\"\"\n    ******************************************************************\n    #  The followings are the exception cases\n    ******************************************************************\n    \"\"\"\n\n    @pytest.mark.parametrize(\"threshold\", [-1, 2, 2.0, 1000, \"0.5\"])\n    @pytest.mark.tags(\"L1\")\n    def test_invalid_similarity_threshold(self, threshold):\n        \"\"\"\n        target: test init: invalid similarity threshold\n        method: input non-num and num which is out of range [0, 1]\n        expected: raise exception and report the error\n        \"\"\"\n        onnx = Onnx()\n        vector_base = VectorBase(\"faiss\", dimension=onnx.dimension)\n        data_manager = get_data_manager(\"sqlite\", vector_base, max_size=2000)\n        is_exception = False\n        try:\n            cache.init(\n                embedding_func=onnx.to_embeddings,\n                data_manager=data_manager,\n                similarity_evaluation=SearchDistanceEvaluation,\n                config=Config(\n                    log_time_func=cf.log_time_func,\n                    similarity_threshold=threshold,\n                ),\n            )\n        except Exception as e:\n            log.info(e)\n            is_exception = True\n\n        assert is_exception\n\n    @pytest.mark.tags(\"L2\")\n    def test_no_openai_key(self):\n        \"\"\"\n        target: test no openai key when could not hit in cache\n        method: set similarity_threshold as 1 and no openai key\n        expected: raise exception and report the error\n        \"\"\"\n        onnx = Onnx()\n        vector_base = VectorBase(\"faiss\", dimension=onnx.dimension)\n        data_manager = get_data_manager(\"sqlite\", vector_base, max_size=2000)\n        cache.init(\n            embedding_func=onnx.to_embeddings,\n            data_manager=data_manager,\n            similarity_evaluation=SearchDistanceEvaluation,\n            config=Config(\n                log_time_func=cf.log_time_func,\n                similarity_threshold=1,\n            ),\n        )\n\n        is_exception = False\n        try:\n            openai.ChatCompletion.create(\n                model=\"gpt-3.5-turbo\",\n                messages=[\n                    {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                    {\"role\": \"user\", \"content\": \"what do you feel like chatgpt\"},\n                ],\n            )\n        except Exception as e:\n            log.info(e)\n            is_exception = True\n\n        assert is_exception\n\n\nclass TestSqliteFaiss(Base):\n\n    \"\"\"\n    ******************************************************************\n    #  The followings are general cases\n    ******************************************************************\n    \"\"\"\n\n    @pytest.mark.tags(\"L1\")\n    def test_hit_default(self):\n        \"\"\"\n        target: test hit the cache function\n        method: keep default similarity_threshold\n        expected: hit successfully\n        \"\"\"\n\n        onnx = Onnx()\n        vector_base = VectorBase(\"faiss\", dimension=onnx.dimension)\n        data_manager = get_data_manager(\"sqlite\", vector_base, max_size=2000)\n        cache.init(\n            embedding_func=onnx.to_embeddings,\n            data_manager=data_manager,\n            similarity_evaluation=SearchDistanceEvaluation(),\n            config=Config(\n                log_time_func=cf.log_time_func,\n            ),\n        )\n\n        question = \"what do you think about chatgpt\"\n        answer = \"chatgpt is a good application\"\n        cache.data_manager.save(question, answer, cache.embedding_func(question))\n\n        openai.ChatCompletion.create(\n            model=\"gpt-3.5-turbo\",\n            messages=[\n                {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                {\"role\": \"user\", \"content\": \"what do you feel like chatgpt\"},\n            ],\n        )\n\n    @pytest.mark.tags(\"L1\")\n    def test_hit(self):\n        \"\"\"\n        target: test hit the cache function\n        method: set similarity_threshold as 1\n        expected: hit successfully\n        \"\"\"\n\n        onnx = Onnx()\n        vector_base = VectorBase(\"faiss\", dimension=onnx.dimension)\n        data_manager = get_data_manager(\"sqlite\", vector_base, max_size=2000)\n        cache.init(\n            embedding_func=onnx.to_embeddings,\n            data_manager=data_manager,\n            similarity_evaluation=SearchDistanceEvaluation(),\n            config=Config(\n                log_time_func=cf.log_time_func,\n                similarity_threshold=0.8,\n            ),\n        )\n\n        question = \"what do you think about chatgpt\"\n        answer = \"chatgpt is a good application\"\n        cache.data_manager.save(question, answer, cache.embedding_func(question))\n\n        openai.ChatCompletion.create(\n            model=\"gpt-3.5-turbo\",\n            messages=[\n                {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                {\"role\": \"user\", \"content\": \"what do you feel like chatgpt\"},\n            ],\n        )\n\n    @pytest.mark.tags(\"L1\")\n    def test_miss(self):\n        \"\"\"\n        target: test miss the cache function\n        method: set similarity_threshold as 0\n        expected: raise exception and report the error\n        \"\"\"\n        onnx = Onnx()\n        vector_base = VectorBase(\"faiss\", dimension=onnx.dimension)\n        data_manager = get_data_manager(\"sqlite\", vector_base, max_size=2000)\n        cache.init(\n            embedding_func=onnx.to_embeddings,\n            data_manager=data_manager,\n            similarity_evaluation=SearchDistanceEvaluation,\n            config=Config(\n                log_time_func=cf.log_time_func,\n                similarity_threshold=0,\n            ),\n        )\n\n        question = \"what do you think about chatgpt\"\n        answer = \"chatgpt is a good application\"\n        cache.data_manager.save(question, answer, cache.embedding_func(question))\n\n        is_exception = False\n        try:\n            openai.ChatCompletion.create(\n                model=\"gpt-3.5-turbo\",\n                messages=[\n                    {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                    {\"role\": \"user\", \"content\": \"what do you feel like chatgpt\"},\n                ],\n            )\n        except Exception as e:\n            log.info(e)\n            is_exception = True\n\n        assert is_exception\n\n    @pytest.mark.tags(\"L1\")\n    def test_disable_cache(self):\n        \"\"\"\n        target: test cache not enabled\n        method: set cache enable as false\n        expected: hit successfully\n        \"\"\"\n\n        onnx = Onnx()\n        vector_base = VectorBase(\"faiss\", dimension=onnx.dimension)\n        data_manager = get_data_manager(\"sqlite\", vector_base, max_size=2000)\n        cache.init(\n            cache_enable_func=cf.disable_cache,\n            embedding_func=onnx.to_embeddings,\n            data_manager=data_manager,\n            similarity_evaluation=SearchDistanceEvaluation(),\n            config=Config(\n                log_time_func=cf.log_time_func,\n            ),\n        )\n\n        question = \"what do you think about chatgpt\"\n        answer = \"chatgpt is a good application\"\n        cache.data_manager.save(question, answer, cache.embedding_func(question))\n\n        is_exception = False\n        try:\n            openai.ChatCompletion.create(\n                model=\"gpt-3.5-turbo\",\n                messages=[\n                    {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                    {\"role\": \"user\", \"content\": \"what do you feel like chatgpt\"},\n                ],\n            )\n        except Exception as e:\n            log.info(e)\n            is_exception = True\n\n        assert is_exception\n"
  },
  {
    "path": "tests/integration_tests/test_sqlite_milvus_sbert.py",
    "content": "import os\nimport shutil\nfrom tempfile import TemporaryDirectory\n\nimport pytest\n\nfrom base.client_base import Base\nfrom common import common_func as cf\nfrom gptcache import cache, Config\nfrom gptcache.adapter import openai\nfrom gptcache.embedding import SBERT\nfrom gptcache.manager import get_data_manager, VectorBase\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\n\n\ndef get_text_response(response):\n    if response is None:\n        return \"\"\n    collated_response = [\n        chunk[\"choices\"][0][\"delta\"].get(\"content\", \"\")\n        for chunk in response\n    ]\n    return \"\".join(collated_response)\n\n\nclass TestSqliteMilvus(Base):\n\n    \"\"\"\n    ******************************************************************\n    #  The followings are general cases\n    ******************************************************************\n    \"\"\"\n    @pytest.mark.tags(\"L1\")\n    def test_cache_health_check(self):\n        \"\"\"\n        target: test hit the cache function\n        method: keep default similarity_threshold\n        expected: cache health detection & correction\n        \"\"\"\n        with TemporaryDirectory(dir=\"./\") as root:\n\n            onnx = SBERT()\n\n            vector_bases = [\n                VectorBase(\n                    \"milvus\",\n                    dimension=onnx.dimension,\n                    local_mode=True,\n                    port=\"10086\",\n                    local_data=str(root),\n                ),\n                VectorBase(\"chromadb\"),\n            ]\n\n            for vector_base in vector_bases:\n                if os.path.isfile(\"./sqlite.db\"):\n                    os.remove(\"./sqlite.db\")\n                if os.path.isdir('./milvus_data'):\n                    shutil.rmtree('./milvus_data')\n\n                data_manager = get_data_manager(\"sqlite\", vector_base, max_size=2000)\n                cache.init(\n                    embedding_func=onnx.to_embeddings,\n                    data_manager=data_manager,\n                    similarity_evaluation=SearchDistanceEvaluation(),\n                    config=Config(\n                        log_time_func=cf.log_time_func,\n                        enable_token_counter=False,\n                    ),\n                )\n\n                question = [\n                    \"what is apple?\",\n                    \"what is intel?\",\n                    \"what is openai?\",\n\n                ]\n                answer = [\n                    \"apple\",\n                    \"intel\",\n                    \"openai\"\n                ]\n                for q, a in zip(question, answer):\n                    cache.data_manager.save(q, a, cache.embedding_func(q))\n\n                # let's simulate cache out-of-sync\n                # situation.\n                touble_query = \"what is google?\"\n                cache.data_manager.v.update_embeddings(1, cache.embedding_func(touble_query))\n\n                # without cache health check\n                # respons is incorrect\n                response = openai.ChatCompletion.create(\n                    model=\"gpt-3.5-turbo\",\n                    messages=[\n                        {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                        {\"role\": \"user\", \"content\": touble_query},\n                    ],\n                    search_only=True,\n                    stream=True,\n                )\n                # Incorrect response \"apple\" returned to user\n                resp_txt = get_text_response(response)\n                # log.info(f\"Inccorect response = {resp_txt} is returned\")\n                assert answer[0] == resp_txt\n\n                # cache health enabled\n                # stop returning incorrect answer\n                # and self-heal the trouble cache\n                # entry.\n                cache.config.data_check = True\n                response = openai.ChatCompletion.create(\n                    model=\"gpt-3.5-turbo\",\n                    messages=[\n                        {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                        {\"role\": \"user\", \"content\": touble_query},\n                    ],\n                    search_only=True,\n                    stream=True,\n                )\n                assert response is None\n\n                # disable cache check, and verify\n                # cache is now consistent\n                cache.config.data_check = False\n                response = openai.ChatCompletion.create(\n                    model=\"gpt-3.5-turbo\",\n                    messages=[\n                        {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                        {\"role\": \"user\", \"content\": touble_query},\n                    ],\n                    search_only=True,\n                    stream=True,\n                )\n                assert response is None\n\n                # verify self-heal took place\n                response = openai.ChatCompletion.create(\n                    model=\"gpt-3.5-turbo\",\n                    messages=[\n                        {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                        {\"role\": \"user\", \"content\": question[0]},\n                    ],\n                    search_only=True,\n                    stream=True,\n                )\n                assert get_text_response(response) == answer[0]\n                if os.path.isfile(\"./sqlite.db\"):\n                    os.remove(\"./sqlite.db\")\n"
  },
  {
    "path": "tests/integration_tests/utils/util_log.py",
    "content": "import logging\nimport sys\n\nfrom config.log_config import log_config\n\n\nclass TestLog:\n    def __init__(self, logger, log_debug, log_file, log_err, log_worker):\n        self.logger = logger\n        self.log_debug = log_debug\n        self.log_file = log_file\n        self.log_err = log_err\n        self.log_worker = log_worker\n\n        self.log = logging.getLogger(self.logger)\n        self.log.setLevel(logging.DEBUG)\n\n        try:\n            formatter = logging.Formatter(\n                \"[%(asctime)s - %(levelname)s - %(name)s]: \"\n                \"%(message)s (%(filename)s:%(lineno)s)\"\n            )\n            dh = logging.FileHandler(self.log_debug)\n            dh.setLevel(logging.DEBUG)\n            dh.setFormatter(formatter)\n            self.log.addHandler(dh)\n\n            fh = logging.FileHandler(self.log_file)\n            fh.setLevel(logging.INFO)\n            fh.setFormatter(formatter)\n            self.log.addHandler(fh)\n\n            eh = logging.FileHandler(self.log_err)\n            eh.setLevel(logging.ERROR)\n            eh.setFormatter(formatter)\n            self.log.addHandler(eh)\n\n            if self.log_worker != \"\":\n                wh = logging.FileHandler(self.log_worker)\n                wh.setLevel(logging.DEBUG)\n                wh.setFormatter(formatter)\n                self.log.addHandler(wh)\n\n            ch = logging.StreamHandler(sys.stdout)\n            ch.setLevel(logging.DEBUG)\n            ch.setFormatter(formatter)\n\n        except Exception as e:\n            print(\n                \"Can not use %s or %s or %s to log. error : %s\"\n                % (log_debug, log_file, log_err, str(e))\n            )\n\n\n\"\"\"All modules share this unified log\"\"\"\nlog_debug = log_config.log_debug\nlog_info = log_config.log_info\nlog_err = log_config.log_err\nlog_worker = log_config.log_worker\ntest_log = TestLog(\"ci_test\", log_debug, log_info, log_err, log_worker).log\n"
  },
  {
    "path": "tests/pytest.ini",
    "content": "[pytest]\n\naddopts = --html=/tmp/ci_logs/report.html --self-contained-html -v -s\n#  python3 -W ignore -m pytest\n\nlog_format = [%(asctime)s - %(levelname)s - %(name)s]: %(message)s (%(filename)s:%(lineno)s)\nlog_date_format = %Y-%m-%d %H:%M:%S\n\n\nfilterwarnings =\n    ignore::DeprecationWarning\n"
  },
  {
    "path": "tests/requirements.txt",
    "content": "--extra-index-url https://test.pypi.org/simple/\nloguru==0.5.3\npytest-cov==4.1.0\npytest==7.2.0\ncoverage==7.2.3\npytest-assume==2.4.3\npytest-timeout==1.3.3\npytest-repeat==0.8.0\npytest-level==0.1.1\npytest-xdist==2.5.0\npytest-loguru==0.2.0\npytest-rerunfailures==9.1.1\ngit+https://github.com/Projectplace/pytest-tags\npytest-html==3.1.1\npytest-sugar==0.9.5\npytest-parallel\npsycopg2-binary\ntransformers==4.29.2\nanyio==3.6.2\ntorch\nmock\npexpect\nspacy\nsafetensors\ntyping_extensions<4.6.0\nstability-sdk\ngrpcio==1.53.0\nprotobuf==3.20.0\nmilvus==2.2.8\npymilvus==2.2.8\n"
  },
  {
    "path": "tests/unit_tests/adapter/test_adapter.py",
    "content": "import os\nimport random\nimport time\n\nimport numpy\n\nfrom gptcache import cache, Cache, Config\nfrom gptcache.adapter.adapter import adapt\nfrom gptcache.adapter.api import put, get\nfrom gptcache.manager import get_data_manager, manager_factory\nfrom gptcache.processor.post import first, nop\nfrom gptcache.processor.pre import get_prompt\nfrom gptcache.utils.error import NotInitError\nfrom gptcache.utils.time import time_cal\n\ndata_map_path = \"data_map.txt\"\n\n\ndef test_adapt():\n    def llm_handler(*llm_args, **llm_kwargs):\n        a = llm_kwargs.get(\"a\", 0)\n        b = llm_kwargs.get(\"b\", 0)\n        time.sleep(1)\n        return a + b\n\n    def cache_data_convert(cache_data):\n        return int(cache_data)\n\n    def update_cache_callback(llm_data, update_cache_func, *args, **kwargs):\n        update_cache_func(str(llm_data))\n        return llm_data\n\n    def add_llm(*args, **kwargs):\n        return adapt(\n            llm_handler, cache_data_convert, update_cache_callback, *args, **kwargs\n        )\n\n    def pre_embedding(data, **kwargs):\n        a = data.get(\"a\", 0)\n        b = data.get(\"b\", 0)\n        return f\"{a}+{b}\"\n\n    if os.path.isfile(data_map_path):\n        os.remove(data_map_path)\n    map_manager = get_data_manager()\n    cache.init(pre_embedding_func=pre_embedding, data_manager=map_manager)\n\n    def report_func(delta_time):\n        assert 0.9 < delta_time < 1.1, delta_time\n\n    def add1(**kwargs):\n        res = add_llm(a=1, b=2, **kwargs)\n        assert res == 3, res\n\n    # pre_embedding -> embedding -> handle\n    # 0 + 0 + 1.0\n    time_cal(add1, report_func=report_func)()\n\n    # test cache_skip param\n    def delay_embedding(data, **kwargs):\n        time.sleep(0.5)\n        return data\n\n    cache.init(\n        pre_embedding_func=pre_embedding,\n        embedding_func=delay_embedding,\n        data_manager=map_manager,\n        post_process_messages_func=first,\n    )\n\n    def report_func(delta_time):\n        assert 1.4 < delta_time < 1.6, delta_time\n\n    # pre_embedding -> embedding -> handle\n    # 0 + 0.5 + 1.0\n    time_cal(add1, report_func=report_func)(cache_skip=True)\n\n    def report_func(delta_time):\n        assert delta_time < 0.6, delta_time\n\n    time_cal(add1, report_func=report_func)()\n\n    time_cal(add1, report_func=report_func)(cache_factor=0)\n\n    time_cal(add1, report_func=report_func)(cache_factor=10)\n\n    # test cache_enable_func\n    def update_cache_callback(llm_data, update_cache_func, *args, **kwargs):\n        time.sleep(0.5)\n        update_cache_func(str(llm_data))\n        return llm_data\n\n    def disable_cache(*args, **kwargs):\n        return False\n\n    def report_func(delta_time):\n        assert 0.9 < delta_time < 1.1, delta_time\n\n    def add_llm(*args, **kwargs):\n        return adapt(\n            llm_handler, cache_data_convert, update_cache_callback, *args, **kwargs\n        )\n\n    def add2(**kwargs):\n        res = add_llm(a=1, b=2, **kwargs)\n        assert res == 3, res\n\n    cache.init(\n        cache_enable_func=disable_cache,\n        pre_embedding_func=pre_embedding,\n        embedding_func=delay_embedding,\n        data_manager=map_manager,\n    )\n    time_cal(add2, report_func=report_func)()\n\n\ndef test_not_init_cache():\n    foo_cache = Cache()\n    is_exception = False\n    try:\n        adapt(None, None, None, cache_obj=foo_cache)\n    except NotInitError:\n        is_exception = True\n\n    assert is_exception\n\n\ndef test_cache_temperature():\n    if os.path.exists(\"faiss.index\"):\n        os.remove(\"faiss.index\")\n    if os.path.exists(\"sqlite.db\"):\n        os.remove(\"sqlite.db\")\n    data_manager = manager_factory(\n        \"sqlite,faiss\", vector_params={\"dimension\": 3, \"top_k\": 2}\n    )\n    cache.init(\n        pre_embedding_func=get_prompt,\n        embedding_func=lambda x, **_: numpy.ones((3,)).astype(\"float32\"),\n        data_manager=data_manager,\n        post_process_messages_func=nop,\n    )\n    assert cache.data_manager.v._top_k == 2\n    prompt = \"test\"\n    answer = \"test answer\"\n    for _ in range(5):\n        put(prompt=prompt, data=answer)\n\n    answers = get(prompt=prompt, temperature=2.0)\n    assert answers is None\n\n    answers = get(prompt=prompt, temperature=1.5)\n    assert answers in [None, [answer] * 5]\n\n    answers = get(prompt=prompt, temperature=0.0, top_k=3)\n    assert len(answers) == 3\n\n    answers = get(prompt=prompt, temperature=0.0)\n    assert len(answers) == 5\n\n    answers = get(prompt=prompt)\n    assert len(answers) == 2\n\n\ndef test_input_summarization():\n    cache_obj = Cache()\n\n    def embedding_func(x, **_):\n        assert len(x.split()) < 40\n        return x\n\n    cache_obj.init(\n        pre_func=lambda x, **_: x.get(\"text\"),\n        embedding_func=embedding_func,\n        data_manager=manager_factory(data_dir=str(random.random())),\n        config=Config(input_summary_len=40),\n    )\n    adapt(\n        lambda **_: 0,\n        lambda **_: 0,\n        lambda **_: 0,\n        text=\"A large language model (LLM) is a language model consisting of a neural network with many parameters (typically billions of weights or more), trained on large quantities of unlabeled text using self-supervised learning or semi-supervised learning. LLMs emerged around 2018 and perform well at a wide variety of tasks. This has shifted the focus of natural language processing research away from the previous paradigm of training specialized supervised models for specific tasks.\",\n        cache_obj=cache_obj,\n    )\n\n    adapt(\n        lambda **_: 0,\n        lambda **_: 0,\n        lambda **_: 0,\n        text=\"A large language model (LLM)\",\n        cache_obj=cache_obj,\n    )\n"
  },
  {
    "path": "tests/unit_tests/adapter/test_api.py",
    "content": "# pylint: disable=wrong-import-position\nimport os\nfrom pathlib import Path\nfrom unittest.mock import patch\n\nfrom gptcache import cache, Config, Cache\nfrom gptcache.adapter import openai\nfrom gptcache.adapter.api import put, get, init_similar_cache, init_similar_cache_from_config\nfrom gptcache.embedding import Onnx as EmbeddingOnnx\nfrom gptcache.manager import CacheBase, VectorBase, get_data_manager\nfrom gptcache.processor.post import nop\nfrom gptcache.processor.pre import get_prompt\nfrom gptcache.similarity_evaluation import SearchDistanceEvaluation\nfrom gptcache.utils import import_ruamel\nfrom gptcache.utils.response import get_message_from_openai_answer\n\nimport_ruamel()\n\nfrom ruamel.yaml import YAML\n\n\nfaiss_file = \"faiss.index\"\n\n\ndef test_gptcache_api():\n    if os.path.isfile(faiss_file):\n        os.remove(faiss_file)\n\n    cache.init(pre_embedding_func=get_prompt)\n    put(\"test_gptcache_api_hello\", \"foo\")\n    assert get(\"test_gptcache_api_hello\") == \"foo\"\n\n    inner_cache = Cache()\n    init_similar_cache(\n        data_dir=\"./\",\n        cache_obj=inner_cache,\n        post_func=nop,\n        config=Config(similarity_threshold=0),\n    )\n\n    put(\"api-hello1\", \"foo1\", cache_obj=inner_cache)\n    put(\"api-hello2\", \"foo2\", cache_obj=inner_cache)\n    put(\"api-hello3\", \"foo3\", cache_obj=inner_cache)\n\n    messages = get(\"hello\", cache_obj=inner_cache, top_k=3, hit_callback=lambda x: print(\"hit_callback\", x))\n    assert len(messages) == 3\n    assert \"foo1\" in messages\n    assert \"foo2\" in messages\n    assert \"foo3\" in messages\n\n    assert get(\"api-hello1\") is None\n\n\ndef test_none_scale_data():\n    if os.path.isfile(faiss_file):\n        os.remove(faiss_file)\n\n    def init_cache():\n        embedding_onnx = EmbeddingOnnx()\n        cache_base = CacheBase(\"sqlite\")\n        vector_base = VectorBase(\"faiss\", dimension=embedding_onnx.dimension, top_k=10)\n        data_manager = get_data_manager(cache_base, vector_base)\n\n        evaluation = SearchDistanceEvaluation()\n        inner_cache = Cache()\n        inner_cache.init(\n            pre_embedding_func=get_prompt,\n            embedding_func=embedding_onnx.to_embeddings,\n            data_manager=data_manager,\n            similarity_evaluation=evaluation,\n            post_process_messages_func=nop,\n            config=Config(similarity_threshold=0),\n        )\n        return inner_cache\n\n    inner_cache = init_cache()\n    put(\"api-hello1\", \"foo1\", cache_obj=inner_cache)\n\n    os.remove(\"sqlite.db\")\n    inner_cache = init_cache()\n    print(\"hello\", get(\"api-hello1\", cache_obj=inner_cache))\n    assert get(\"api-hello1\", cache_obj=inner_cache) is None\n\n\ndef test_init_with_config():\n    yaml_path = Path(\"test.yaml\")\n\n    if yaml_path.exists():\n        yaml_path.unlink()\n\n    config = {\n        \"storage_config\": {\n            \"manager\": \"sqlite,faiss\",\n            \"data_dir\": \"test-config/\",\n        },\n        \"model_source\": \"onnx\",\n        \"evaluation\": \"distance\",\n        \"pre_function\": \"get_prompt\",\n        \"post_function\": \"first\",\n        \"config\": {\"similarity_threshold\": 0}\n    }\n\n    with open(yaml_path, \"w+\", encoding=\"utf-8\") as f:\n        yaml = YAML(typ=\"unsafe\", pure=True)\n        yaml.dump(config, f)\n\n    init_similar_cache_from_config(\n        config_dir=str(yaml_path.resolve()),\n    )\n\n    put(\"api-hello\", \"foo\")\n    assert get(\"api-hello\") == \"foo\"\n\n    yaml_path.unlink()\n\n\ndef test_init_with_new_config():\n    yaml_path = Path(\"test_new.yaml\")\n\n    if yaml_path.exists():\n        yaml_path.unlink()\n\n    config = {\n        \"storage_config\": {\n            \"manager\": \"sqlite,faiss\",\n            \"data_dir\": \"test-new-config/\",\n        },\n        \"embedding\": \"onnx\",\n        \"embedding_config\": {\n            \"model\": \"GPTCache/paraphrase-albert-onnx\"\n        },\n        \"evaluation\": \"distance\",\n        \"evaluation_config\": {\n            \"max_distance\": 4.0,\n            \"positive\": False,\n        },\n        \"pre_context_function\": \"concat\",\n        \"post_function\": \"first\",\n    }\n\n    with open(yaml_path, \"w+\", encoding=\"utf-8\") as f:\n        yaml = YAML(typ=\"unsafe\", pure=True)\n        yaml.dump(config, f)\n\n    init_similar_cache_from_config(\n        config_dir=str(yaml_path.resolve()),\n    )\n\n    question = \"calculate 1+3\"\n    expect_answer = \"the result is 4\"\n    with patch(\"openai.ChatCompletion.create\") as mock_create:\n        datas = {\n            \"choices\": [\n                {\n                    \"message\": {\"content\": expect_answer, \"role\": \"assistant\"},\n                    \"finish_reason\": \"stop\",\n                    \"index\": 0,\n                }\n            ],\n            \"created\": 1677825464,\n            \"id\": \"chatcmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n            \"model\": \"gpt-3.5-turbo-0301\",\n            \"object\": \"chat.completion.chunk\",\n        }\n        mock_create.return_value = datas\n\n        response = openai.ChatCompletion.create(\n            model=\"gpt-3.5-turbo\",\n            messages=[\n                {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                {\"role\": \"user\", \"content\": question},\n            ],\n        )\n\n        assert get_message_from_openai_answer(response) == expect_answer, response\n\n    response = openai.ChatCompletion.create(\n        model=\"gpt-3.5-turbo\",\n        messages=[\n            {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n            {\"role\": \"user\", \"content\": question},\n        ],\n    )\n    answer_text = get_message_from_openai_answer(response)\n    assert answer_text == expect_answer, answer_text\n\n    yaml_path.unlink()\n"
  },
  {
    "path": "tests/unit_tests/adapter/test_diffusers.py",
    "content": "from gptcache import cache\nfrom gptcache.adapter import diffusers as cache_diffusers\nfrom gptcache.processor.pre import get_prompt\nfrom gptcache.utils import import_pillow, import_diffusers, import_torch, import_huggingface\n\nimport_pillow()\nimport_huggingface()\nimport_diffusers()\nimport_torch()\n\nfrom PIL import ImageChops\nimport torch\n\nfrom diffusers import (\n    AutoencoderKL,\n    DDIMScheduler,\n    UNet2DConditionModel,\n)\nfrom transformers import CLIPTextConfig, CLIPTextModel, CLIPTokenizer\n\n\ndef get_dummy_components():\n    torch.manual_seed(0)\n    unet = UNet2DConditionModel(\n        block_out_channels=(32, 64),\n        layers_per_block=2,\n        sample_size=32,\n        in_channels=4,\n        out_channels=4,\n        down_block_types=(\"DownBlock2D\", \"CrossAttnDownBlock2D\"),\n        up_block_types=(\"CrossAttnUpBlock2D\", \"UpBlock2D\"),\n        cross_attention_dim=32,\n    )\n    torch.manual_seed(0)\n    scheduler = DDIMScheduler(\n        beta_start=0.00085,\n        beta_end=0.012,\n        beta_schedule=\"scaled_linear\",\n        clip_sample=False,\n        set_alpha_to_one=False,\n    )\n    torch.manual_seed(0)\n    vae = AutoencoderKL(\n        block_out_channels=[32, 64],\n        in_channels=3,\n        out_channels=3,\n        down_block_types=[\"DownEncoderBlock2D\", \"DownEncoderBlock2D\"],\n        up_block_types=[\"UpDecoderBlock2D\", \"UpDecoderBlock2D\"],\n        latent_channels=4,\n    )\n    torch.manual_seed(0)\n    text_encoder_config = CLIPTextConfig(\n        bos_token_id=0,\n        eos_token_id=2,\n        hidden_size=32,\n        intermediate_size=37,\n        layer_norm_eps=1e-05,\n        num_attention_heads=4,\n        num_hidden_layers=5,\n        pad_token_id=1,\n        vocab_size=1000,\n    )\n    text_encoder = CLIPTextModel(text_encoder_config)\n    tokenizer = CLIPTokenizer.from_pretrained(\"hf-internal-testing/tiny-random-clip\")\n\n    components = {\n        \"unet\": unet,\n        \"scheduler\": scheduler,\n        \"vae\": vae,\n        \"text_encoder\": text_encoder,\n        \"tokenizer\": tokenizer,\n        \"safety_checker\": None,\n        \"feature_extractor\": None,\n    }\n    return components\n\n\ndef test_stable_diffusion():\n    cache.init(pre_embedding_func=get_prompt)\n    prompt = \"test\"\n    kwargs = get_dummy_components()\n        \n    pipe1 = cache_diffusers.StableDiffusionPipeline(**kwargs)\n    origin_image = pipe1(prompt=prompt)[\"images\"][0]\n\n    pipe2 = cache_diffusers.StableDiffusionPipeline(**kwargs)\n    return_image = pipe2(prompt=prompt)[\"images\"][0]\n\n    diff = ImageChops.difference(origin_image, return_image)\n    assert not diff.getbbox()\n\n"
  },
  {
    "path": "tests/unit_tests/adapter/test_dolly.py",
    "content": "import unittest\nfrom tempfile import TemporaryDirectory\nfrom unittest.mock import patch\n\nfrom gptcache import Cache\nfrom gptcache.embedding import Onnx\nfrom gptcache.manager.factory import manager_factory\nfrom gptcache.processor.pre import get_inputs\n\nquestion = \"test_dolly\"\nexpect_answer = \"hello world\"\nonnx = Onnx()\n\n\nclass MockDolly:\n    def __init__(self, *args, **kwargs):\n        pass\n\n    def __call__(self, inputs, **kwargs):\n        return [{\"generated_text\": expect_answer}]\n\n\nclass TestDolly(unittest.TestCase):\n    def test_normal(self):\n        with patch('gptcache.utils.import_torch'), \\\n             patch('gptcache.utils.import_huggingface'), \\\n             patch('transformers.pipeline') as mock_pipeline:\n\n            with TemporaryDirectory(dir=\"./\") as root:\n                m = manager_factory('sqlite,faiss,local', data_dir=root, vector_params={\"dimension\": onnx.dimension})\n                llm_cache = Cache()\n                llm_cache.init(\n                    pre_embedding_func=get_inputs,\n                    data_manager=m,\n                    embedding_func=onnx.to_embeddings\n                )\n                \n                from gptcache.adapter.dolly import Dolly\n\n                mock_pipeline.return_value = MockDolly()\n                dolly = Dolly.from_model('dolly_model')\n                answer = dolly(question, cache_obj=llm_cache)\n                self.assertEqual(answer[0][\"generated_text\"], expect_answer)\n                self.assertFalse(answer[0].get(\"gptcache\", False))\n                answer = dolly(question, cache_obj=llm_cache)\n                self.assertEqual(answer[0][\"generated_text\"], expect_answer)\n                self.assertTrue(answer[0].get(\"gptcache\", False))\n\n            with TemporaryDirectory(dir=\"./\") as root:\n                m = manager_factory('sqlite,faiss,local', data_dir=root, vector_params={\"dimension\": onnx.dimension})\n                llm_cache = Cache()\n                llm_cache.init(\n                    pre_embedding_func=get_inputs,\n                    data_manager=m,\n                    embedding_func=onnx.to_embeddings\n                )\n                \n                from gptcache.adapter.dolly import Dolly\n                from transformers import pipeline\n                dolly = Dolly(pipeline('dolly'))\n                answer = dolly(question, cache_obj=llm_cache)\n                self.assertEqual(answer[0][\"generated_text\"], expect_answer)\n                self.assertFalse(answer[0].get(\"gptcache\", False))\n                answer = dolly(question, cache_obj=llm_cache)\n                self.assertEqual(answer[0][\"generated_text\"], expect_answer)\n                self.assertTrue(answer[0].get(\"gptcache\", False))                \n"
  },
  {
    "path": "tests/unit_tests/adapter/test_langchain_models.py",
    "content": "import asyncio\nimport os\nimport random\nfrom unittest.mock import patch\n\nfrom gptcache import Cache, Config\nfrom gptcache.adapter import openai\nfrom gptcache.adapter.api import init_similar_cache, get\nfrom gptcache.adapter.langchain_models import LangChainLLMs, LangChainChat, _cache_msg_data_convert\nfrom gptcache.processor.pre import get_prompt, last_content_without_template, get_messages_last_content\nfrom gptcache.utils import import_langchain\nfrom gptcache.utils.response import get_message_from_openai_answer\n\nimport_langchain()\n\nfrom langchain import OpenAI, PromptTemplate\nfrom langchain.chat_models import ChatOpenAI\nfrom langchain.schema import HumanMessage\n\n\ndef test_langchain_llms():\n    question = \"test_langchain_llms\"\n    expect_answer = \"hello\"\n\n    llm_cache = Cache()\n    llm_cache.init(\n        pre_embedding_func=get_prompt,\n    )\n\n    os.environ[\"OPENAI_API_KEY\"] = \"API\"\n    langchain_openai = OpenAI(model_name=\"text-ada-001\")\n    llm = LangChainLLMs(llm=langchain_openai,cache_obj=llm_cache)\n    assert str(langchain_openai) == str(llm)\n\n    with patch(\"openai.Completion.create\") as mock_create:\n        mock_create.return_value = {\n              \"choices\": [\n                {\n                  \"finish_reason\": \"stop\",\n                  \"index\": 0,\n                  \"text\": expect_answer,\n                }\n              ],\n              \"created\": 1677825456,\n              \"id\": \"chatcmpl-6ptKqrhgRoVchm58Bby0UvJzq2ZuQ\",\n              \"model\": \"gpt-3.5-turbo-0301\",\n              \"object\": \"chat.completion\",\n              \"usage\": {\n                \"completion_tokens\": 301,\n                \"prompt_tokens\": 36,\n                \"total_tokens\": 337\n              }\n            }\n\n        answer = llm(prompt=question)\n        assert expect_answer == answer\n\n    answer = llm(prompt=question)\n    assert expect_answer == answer\n\n\ndef test_langchain_chats():\n    question = [HumanMessage(content=\"test_langchain_chats\")]\n    question2 = [HumanMessage(content=\"test_langchain_chats2\")]\n    msg = \"chat models\"\n    expect_answer = {\n        \"role\": \"assistant\",\n        \"message\": msg,\n        \"content\": msg,\n    }\n\n    llm_cache = Cache()\n    llm_cache.init(\n        pre_embedding_func=get_messages_last_content,\n    )\n\n    os.environ[\"OPENAI_API_KEY\"] = \"API\"\n    langchain_openai = ChatOpenAI(temperature=0)\n    chat = LangChainChat(chat=langchain_openai,cache_obj=llm_cache)\n\n    assert chat.get_num_tokens(\"hello\") == langchain_openai.get_num_tokens(\"hello\")\n    assert chat.get_num_tokens_from_messages(messages=[HumanMessage(content=\"test_langchain_chats\")]) \\\n           == langchain_openai.get_num_tokens_from_messages(messages=[HumanMessage(content=\"test_langchain_chats\")])\n\n    with patch(\"openai.ChatCompletion.create\") as mock_create:\n        mock_create.return_value = {\n            \"choices\": [\n                {\n                    \"finish_reason\": \"stop\",\n                    \"index\": 0,\n                    \"message\": expect_answer,\n                }\n            ],\n            \"delta\": {\"role\": \"assistant\"},\n            \"created\": 1677825456,\n            \"id\": \"chatcmpl-6ptKqrhgRoVchm58Bby0UvJzq2ZuQ\",\n            \"model\": \"gpt-3.5-turbo-0301\",\n            \"object\": \"chat.completion\",\n            \"usage\": {\n                \"completion_tokens\": 301,\n                \"prompt_tokens\": 36,\n                \"total_tokens\": 337\n            }\n        }\n\n        answer = chat(messages=question)\n        assert answer == _cache_msg_data_convert(msg).generations[0].message\n\n    with patch(\"openai.ChatCompletion.acreate\") as mock_create:\n        mock_create.return_value = {\n            \"choices\": [\n                {\n                    \"finish_reason\": \"stop\",\n                    \"index\": 0,\n                    \"message\": expect_answer,\n                }\n            ],\n            \"delta\": {\"role\": \"assistant\"},\n            \"created\": 1677825456,\n            \"id\": \"chatcmpl-6ptKqrhgRoVchm58Bby0UvJzq2ZuQ\",\n            \"model\": \"gpt-3.5-turbo-0301\",\n            \"object\": \"chat.completion\",\n            \"usage\": {\n                \"completion_tokens\": 301,\n                \"prompt_tokens\": 36,\n                \"total_tokens\": 337\n            }\n        }\n\n        answer = asyncio.run(chat.agenerate([question2]))\n        assert answer.generations[0][0].text == _cache_msg_data_convert(msg).generations[0].text\n\n    answer = chat(messages=question)\n    assert answer == _cache_msg_data_convert(msg).generations[0].message\n\n    answer = asyncio.run(chat.agenerate([question]))\n    assert answer.generations[0][0].text == _cache_msg_data_convert(msg).generations[0].text\n\n    answer = asyncio.run(chat.agenerate([question2]))\n    assert answer.generations[0][0].text == _cache_msg_data_convert(msg).generations[0].text\n\n\ndef test_last_content_without_template():\n    string_prompt = PromptTemplate.from_template(\"tell me a joke about {subject}\")\n    template = string_prompt.template\n    cache_obj = Cache()\n    data_dir = str(random.random())\n    init_similar_cache(data_dir=data_dir, cache_obj=cache_obj, pre_func=last_content_without_template, config=Config(template=template))\n\n    subject_str = \"animal\"\n    expect_answer = \"this is a joke\"\n\n    with patch(\"openai.ChatCompletion.create\") as mock_create:\n        datas = {\n            \"choices\": [\n                {\n                    \"message\": {\"content\": expect_answer, \"role\": \"assistant\"},\n                    \"finish_reason\": \"stop\",\n                    \"index\": 0,\n                }\n            ],\n            \"created\": 1677825464,\n            \"id\": \"chatcmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n            \"model\": \"gpt-3.5-turbo-0301\",\n            \"object\": \"chat.completion.chunk\",\n        }\n        mock_create.return_value = datas\n\n        response = openai.ChatCompletion.create(\n            model=\"gpt-3.5-turbo\",\n            messages=[\n                {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                {\"role\": \"user\", \"content\": string_prompt.format(subject=subject_str)},\n            ],\n            cache_obj=cache_obj,\n        )\n        assert get_message_from_openai_answer(response) == expect_answer, response\n\n    cache_obj.flush()\n\n    init_similar_cache(data_dir=data_dir, cache_obj=cache_obj)\n\n    cache_res = get(str([subject_str]), cache_obj=cache_obj)\n    print(str([subject_str]))\n    assert cache_res == expect_answer, cache_res\n"
  },
  {
    "path": "tests/unit_tests/adapter/test_llama_cpp.py",
    "content": "import os\nimport sys\nimport unittest\nfrom unittest.mock import patch, MagicMock\nfrom tempfile import TemporaryDirectory\n\nfrom gptcache import Cache\nfrom gptcache.processor.pre import get_prompt\nfrom gptcache.manager.factory import manager_factory\nfrom gptcache.embedding import Onnx\n\nquestion = \"test_llama_cpp\"\nexpect_answer = \"hello world\"\nonnx = Onnx()\n\nclass MockLlama:\n    def __init__(self, *args, **kwargs):\n        pass\n\n    def create_completion(*args, **kwargs):\n        data = {\n            \"choices\": [\n                {\n                    \"finish_reason\": \"stop\",\n                    \"index\": 0,\n                    \"text\": expect_answer,\n                }\n            ],\n            \"created\": 1677825456,\n            \"id\": \"chatcmpl-6ptKqrhgRoVchm58Bby0UvJzq2ZuQ\",\n            \"model\": \"llam_cpp\",\n            \"object\": \"chat.completion\",\n            \"usage\": {\n                \"completion_tokens\": 301,\n                \"prompt_tokens\": 36,\n                \"total_tokens\": 337\n            }\n        }        \n        if not kwargs.get('stream', False):\n            return data\n        else:\n            return iter([data])\n\n\nmock_module = MagicMock()\nsys.modules['llama_cpp'] = mock_module\n\n\nclass TestLlama(unittest.TestCase):\n    def test_llama_cpp(self):\n        mock_module.Llama = MockLlama\n        with TemporaryDirectory(dir=\"./\") as root:\n            m = manager_factory('sqlite,faiss,local', data_dir=root, vector_params={\"dimension\": onnx.dimension})\n            llm_cache = Cache()\n            llm_cache.init(\n                pre_embedding_func=get_prompt,\n                data_manager=m,\n                embedding_func=onnx.to_embeddings\n            )\n\n            with patch('gptcache.utils.import_llama_cpp_python'):\n                from gptcache.adapter.llama_cpp import Llama\n                llm = Llama('model.bin')\n                answer = llm(prompt=question, cache_obj=llm_cache)\n                assert expect_answer == answer['choices'][0]['text']\n\n                answer2 = llm(prompt=question, cache_obj=llm_cache)\n                assert answer2['gptcache'] is True\n                assert expect_answer == answer2['choices'][0]['text']                \n\n                llm(prompt=question, cache_obj=llm_cache, stream=True, stop=['\\n'])\n\n                answer = llm(prompt=question, cache_obj=llm_cache, stream=True)\n                for item in answer:\n                    self.assertEqual(item['choices'][0]['text'], expect_answer)\n\n    def test_llama_cpp_stream(self):\n        with TemporaryDirectory(dir=\"./\") as root:\n            m = manager_factory('sqlite,faiss,local', data_dir=root, vector_params={\"dimension\": onnx.dimension})\n            llm_cache = Cache()\n            llm_cache.init(\n                pre_embedding_func=get_prompt,\n                data_manager=m,\n                embedding_func=onnx.to_embeddings\n            )\n\n            with patch('gptcache.utils.import_llama_cpp_python'):\n                from gptcache.adapter.llama_cpp import Llama\n                llm = Llama('model.bin')\n                answer = llm(prompt=question, cache_obj=llm_cache, stream=True)\n                for item in answer:\n                    assert expect_answer == item['choices'][0]['text']\n\n                answer2 = llm(prompt=question, cache_obj=llm_cache)\n                assert answer2['gptcache'] is True\n                assert expect_answer == answer2['choices'][0]['text']                \n\n                answer = llm(prompt=question, cache_obj=llm_cache, stream=True)\n                for item in answer:\n                    self.assertEqual(item['choices'][0]['text'], expect_answer)                    \n"
  },
  {
    "path": "tests/unit_tests/adapter/test_openai.py",
    "content": "import asyncio\nimport base64\nimport os\nimport random\nfrom io import BytesIO\nfrom unittest.mock import AsyncMock, patch\nfrom urllib.request import urlopen\n\nimport pytest\n\nfrom gptcache import Cache, cache\nfrom gptcache.adapter import openai\nfrom gptcache.adapter.api import init_similar_cache\nfrom gptcache.config import Config\nfrom gptcache.manager import get_data_manager\nfrom gptcache.processor.pre import (\n    get_file_bytes,\n    get_file_name,\n    get_openai_moderation_input,\n    get_prompt,\n    last_content,\n)\nfrom gptcache.utils.error import CacheError\nfrom gptcache.utils.response import (\n    get_audio_text_from_openai_answer,\n    get_image_from_openai_b64,\n    get_image_from_openai_url,\n    get_image_from_path,\n    get_message_from_openai_answer,\n    get_stream_message_from_openai_answer,\n    get_text_from_openai_answer,\n)\n\ntry:\n    from PIL import Image\nexcept ModuleNotFoundError:\n    from gptcache.utils.dependency_control import prompt_install\n\n    prompt_install(\"pillow\")\n    from PIL import Image\n\n\n@pytest.mark.parametrize(\"enable_token_counter\", (True, False))\ndef test_normal_openai(enable_token_counter):\n    cache.init(config=Config(enable_token_counter=enable_token_counter))\n    question = \"calculate 1+3\"\n    expect_answer = \"the result is 4\"\n    with patch(\"openai.ChatCompletion.create\") as mock_create:\n        datas = {\n            \"choices\": [\n                {\n                    \"message\": {\"content\": expect_answer, \"role\": \"assistant\"},\n                    \"finish_reason\": \"stop\",\n                    \"index\": 0,\n                }\n            ],\n            \"created\": 1677825464,\n            \"id\": \"chatcmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n            \"model\": \"gpt-3.5-turbo-0301\",\n            \"object\": \"chat.completion.chunk\",\n        }\n        mock_create.return_value = datas\n\n        response = openai.ChatCompletion.create(\n            model=\"gpt-3.5-turbo\",\n            messages=[\n                {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                {\"role\": \"user\", \"content\": question},\n            ],\n        )\n\n        assert get_message_from_openai_answer(response) == expect_answer, response\n\n    response = openai.ChatCompletion.create(\n        model=\"gpt-3.5-turbo\",\n        messages=[\n            {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n            {\"role\": \"user\", \"content\": question},\n        ],\n    )\n    answer_text = get_message_from_openai_answer(response)\n    assert answer_text == expect_answer, answer_text\n\n\n@pytest.mark.asyncio\n@pytest.mark.parametrize(\"enable_token_counter\", (True, False))\nasync def test_normal_openai_async(enable_token_counter):\n    cache.init(config=Config(enable_token_counter=enable_token_counter))\n    question = \"calculate 1+3\"\n    expect_answer = \"the result is 4\"\n    import openai as real_openai\n\n    with patch.object(\n        real_openai.ChatCompletion, \"acreate\", new_callable=AsyncMock\n    ) as mock_acreate:\n        datas = {\n            \"choices\": [\n                {\n                    \"message\": {\"content\": expect_answer, \"role\": \"assistant\"},\n                    \"finish_reason\": \"stop\",\n                    \"index\": 0,\n                }\n            ],\n            \"created\": 1677825464,\n            \"id\": \"chatcmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n            \"model\": \"gpt-3.5-turbo-0301\",\n            \"object\": \"chat.completion.chunk\",\n        }\n        mock_acreate.return_value = datas\n\n        response = await openai.ChatCompletion.acreate(\n            model=\"gpt-3.5-turbo\",\n            messages=[\n                {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                {\"role\": \"user\", \"content\": question},\n            ],\n        )\n\n        assert get_message_from_openai_answer(response) == expect_answer, response\n\n    response = await openai.ChatCompletion.acreate(\n        model=\"gpt-3.5-turbo\",\n        messages=[\n            {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n            {\"role\": \"user\", \"content\": question},\n        ],\n    )\n    answer_text = get_message_from_openai_answer(response)\n    assert answer_text == expect_answer, answer_text\n\n\ndef test_stream_openai():\n    cache.init()\n    question = \"calculate 1+1\"\n    expect_answer = \"the result is 2\"\n\n    with patch(\"openai.ChatCompletion.create\") as mock_create:\n        datas = [\n            {\n                \"choices\": [\n                    {\"delta\": {\"role\": \"assistant\"}, \"finish_reason\": None, \"index\": 0}\n                ],\n                \"created\": 1677825464,\n                \"id\": \"chatcmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n                \"model\": \"gpt-3.5-turbo-0301\",\n                \"object\": \"chat.completion.chunk\",\n            },\n            {\n                \"choices\": [\n                    {\n                        \"delta\": {\"content\": \"the result\"},\n                        \"finish_reason\": None,\n                        \"index\": 0,\n                    }\n                ],\n                \"created\": 1677825464,\n                \"id\": \"chatcmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n                \"model\": \"gpt-3.5-turbo-0301\",\n                \"object\": \"chat.completion.chunk\",\n            },\n            {\n                \"choices\": [\n                    {\"delta\": {\"content\": \" is 2\"}, \"finish_reason\": None, \"index\": 0}\n                ],\n                \"created\": 1677825464,\n                \"id\": \"chatcmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n                \"model\": \"gpt-3.5-turbo-0301\",\n                \"object\": \"chat.completion.chunk\",\n            },\n            {\n                \"choices\": [{\"delta\": {}, \"finish_reason\": \"stop\", \"index\": 0}],\n                \"created\": 1677825464,\n                \"id\": \"chatcmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n                \"model\": \"gpt-3.5-turbo-0301\",\n                \"object\": \"chat.completion.chunk\",\n            },\n        ]\n        mock_create.return_value = iter(datas)\n\n        response = openai.ChatCompletion.create(\n            model=\"gpt-3.5-turbo\",\n            messages=[\n                {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                {\"role\": \"user\", \"content\": question},\n            ],\n            stream=True,\n        )\n\n        all_text = \"\"\n        for res in response:\n            all_text += get_stream_message_from_openai_answer(res)\n        assert all_text == expect_answer, all_text\n\n    response = openai.ChatCompletion.create(\n        model=\"gpt-3.5-turbo\",\n        messages=[\n            {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n            {\"role\": \"user\", \"content\": question},\n        ],\n    )\n    answer_text = get_message_from_openai_answer(response)\n    assert answer_text == expect_answer, answer_text\n\n\n@pytest.mark.asyncio\nasync def test_stream_openai_async():\n    cache.init()\n    question = \"calculate 1+4\"\n    expect_answer = \"the result is 5\"\n    import openai as real_openai\n\n    with patch.object(\n        real_openai.ChatCompletion, \"acreate\", new_callable=AsyncMock\n    ) as mock_acreate:\n        datas = [\n            {\n                \"choices\": [\n                    {\"delta\": {\"role\": \"assistant\"}, \"finish_reason\": None, \"index\": 0}\n                ],\n                \"created\": 1677825464,\n                \"id\": \"chatcmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n                \"model\": \"gpt-3.5-turbo-0301\",\n                \"object\": \"chat.completion.chunk\",\n            },\n            {\n                \"choices\": [\n                    {\n                        \"delta\": {\"content\": \"the result\"},\n                        \"finish_reason\": None,\n                        \"index\": 0,\n                    }\n                ],\n                \"created\": 1677825464,\n                \"id\": \"chatcmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n                \"model\": \"gpt-3.5-turbo-0301\",\n                \"object\": \"chat.completion.chunk\",\n            },\n            {\n                \"choices\": [\n                    {\"delta\": {\"content\": \" is 5\"}, \"finish_reason\": None, \"index\": 0}\n                ],\n                \"created\": 1677825464,\n                \"id\": \"chatcmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n                \"model\": \"gpt-3.5-turbo-0301\",\n                \"object\": \"chat.completion.chunk\",\n            },\n            {\n                \"choices\": [{\"delta\": {}, \"finish_reason\": \"stop\", \"index\": 0}],\n                \"created\": 1677825464,\n                \"id\": \"chatcmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n                \"model\": \"gpt-3.5-turbo-0301\",\n                \"object\": \"chat.completion.chunk\",\n            },\n        ]\n\n        async def acreate(*args, **kwargs):\n            for item in datas:\n                yield item\n                await asyncio.sleep(0)\n\n        mock_acreate.return_value = acreate()\n\n        response = await openai.ChatCompletion.acreate(\n            model=\"gpt-3.5-turbo\",\n            messages=[\n                {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                {\"role\": \"user\", \"content\": question},\n            ],\n            stream=True,\n        )\n        all_text = \"\"\n        async for res in response:\n            all_text += get_stream_message_from_openai_answer(res)\n        assert all_text == expect_answer, all_text\n\n    response = await openai.ChatCompletion.acreate(\n        model=\"gpt-3.5-turbo\",\n        messages=[\n            {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n            {\"role\": \"user\", \"content\": question},\n        ],\n        stream=True,\n    )\n    answer_text = \"\"\n    async for res in response:\n        answer_text += get_stream_message_from_openai_answer(res)\n    assert answer_text == expect_answer, answer_text\n\n\ndef test_completion():\n    cache.init(pre_embedding_func=get_prompt)\n    question = \"what is your name?\"\n    expect_answer = \"gptcache\"\n\n    with patch(\"openai.Completion.create\") as mock_create:\n        mock_create.return_value = {\n            \"choices\": [{\"text\": expect_answer, \"finish_reason\": None, \"index\": 0}],\n            \"created\": 1677825464,\n            \"id\": \"cmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n            \"model\": \"text-davinci-003\",\n            \"object\": \"text_completion\",\n        }\n\n        response = openai.Completion.create(model=\"text-davinci-003\", prompt=question)\n        answer_text = get_text_from_openai_answer(response)\n        assert answer_text == expect_answer\n\n    response = openai.Completion.create(model=\"text-davinci-003\", prompt=question)\n    answer_text = get_text_from_openai_answer(response)\n    assert answer_text == expect_answer\n\n\n@pytest.mark.asyncio\nasync def test_completion_async():\n    cache.init(pre_embedding_func=get_prompt)\n    question = \"what is your name?\"\n    expect_answer = \"gptcache\"\n\n    with patch(\"openai.Completion.acreate\", new_callable=AsyncMock) as mock_acreate:\n        mock_acreate.return_value = {\n            \"choices\": [{\"text\": expect_answer, \"finish_reason\": None, \"index\": 0}],\n            \"created\": 1677825464,\n            \"id\": \"cmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n            \"model\": \"text-davinci-003\",\n            \"object\": \"text_completion\",\n        }\n\n        response = await openai.Completion.acreate(\n            model=\"text-davinci-003\", prompt=question\n        )\n        answer_text = get_text_from_openai_answer(response)\n        assert answer_text == expect_answer\n\n    response = await openai.Completion.acreate(\n        model=\"text-davinci-003\", prompt=question\n    )\n    answer_text = get_text_from_openai_answer(response)\n    assert answer_text == expect_answer\n\n\n@pytest.mark.asyncio\nasync def test_completion_error_wrapping():\n    cache.init(pre_embedding_func=get_prompt)\n    import openai as real_openai\n\n    with patch(\"openai.Completion.acreate\", new_callable=AsyncMock) as mock_acreate:\n        mock_acreate.side_effect = real_openai.OpenAIError\n        with pytest.raises(real_openai.OpenAIError) as e:\n            await openai.Completion.acreate(model=\"text-davinci-003\", prompt=\"boom\")\n        assert isinstance(e.value, CacheError)\n\n    with patch(\"openai.Completion.create\") as mock_create:\n        mock_create.side_effect = real_openai.OpenAIError\n        with pytest.raises(real_openai.OpenAIError) as e:\n            openai.Completion.create(model=\"text-davinci-003\", prompt=\"boom\")\n        assert isinstance(e.value, CacheError)\n\n\ndef test_image_create():\n    cache.init(pre_embedding_func=get_prompt)\n    prompt1 = \"test url\"  # bytes\n    test_url = (\n        \"https://raw.githubusercontent.com/zilliztech/GPTCache/dev/docs/GPTCache.png\"\n    )\n    test_response = {\"created\": 1677825464, \"data\": [{\"url\": test_url}]}\n    prompt2 = \"test base64\"\n    img_bytes = base64.b64decode(get_image_from_openai_url(test_response))\n    img_file = BytesIO(img_bytes)  # convert image to file-like object\n    img = Image.open(img_file)\n    img = img.resize((256, 256))\n    buffered = BytesIO()\n    img.save(buffered, format=\"JPEG\")\n    expected_img_data = base64.b64encode(buffered.getvalue()).decode(\"ascii\")\n\n    ###### Return base64 ######\n    with patch(\"openai.Image.create\") as mock_create_b64:\n        mock_create_b64.return_value = {\n            \"created\": 1677825464,\n            \"data\": [{\"b64_json\": expected_img_data}],\n        }\n\n        response = openai.Image.create(\n            prompt=prompt1, size=\"256x256\", response_format=\"b64_json\"\n        )\n        img_returned = get_image_from_openai_b64(response)\n        assert img_returned == expected_img_data\n\n    response = openai.Image.create(\n        prompt=prompt1, size=\"256x256\", response_format=\"b64_json\"\n    )\n    img_returned = get_image_from_openai_b64(response)\n    assert img_returned == expected_img_data\n\n    ###### Return url ######\n    with patch(\"openai.Image.create\") as mock_create_url:\n        mock_create_url.return_value = {\n            \"created\": 1677825464,\n            \"data\": [{\"url\": test_url}],\n        }\n\n        response = openai.Image.create(\n            prompt=prompt2, size=\"256x256\", response_format=\"url\"\n        )\n        answer_url = response[\"data\"][0][\"url\"]\n        assert test_url == answer_url\n\n    response = openai.Image.create(\n        prompt=prompt2, size=\"256x256\", response_format=\"url\"\n    )\n    img_returned = get_image_from_path(response).decode(\"ascii\")\n    assert img_returned == expected_img_data\n    os.remove(response[\"data\"][0][\"url\"])\n\n\ndef test_audio_transcribe():\n    cache.init(pre_embedding_func=get_file_name)\n    url = \"https://github.com/towhee-io/examples/releases/download/data/blues.00000.mp3\"\n    audio_file = urlopen(url)\n    audio_file.name = url\n    expect_answer = (\n        \"One bourbon, one scotch and one bill Hey Mr. Bartender, come here I want another drink and I want it now My baby she gone, \"\n        \"she been gone tonight I ain't seen my baby since night of her life One bourbon, one scotch and one bill\"\n    )\n\n    with patch(\"openai.Audio.transcribe\") as mock_create:\n        mock_create.return_value = {\"text\": expect_answer}\n\n        response = openai.Audio.transcribe(model=\"whisper-1\", file=audio_file)\n        answer_text = get_audio_text_from_openai_answer(response)\n        assert answer_text == expect_answer\n\n    response = openai.Audio.transcribe(model=\"whisper-1\", file=audio_file)\n    answer_text = get_audio_text_from_openai_answer(response)\n    assert answer_text == expect_answer\n\n\ndef test_audio_translate():\n    cache.init(\n        pre_embedding_func=get_file_bytes,\n        data_manager=get_data_manager(data_path=\"data_map1.txt\"),\n    )\n    url = \"https://github.com/towhee-io/examples/releases/download/data/blues.00000.mp3\"\n    audio_file = urlopen(url)\n    audio_file.name = url\n    expect_answer = (\n        \"One bourbon, one scotch and one bill Hey Mr. Bartender, come here I want another drink and I want it now My baby she gone, \"\n        \"she been gone tonight I ain't seen my baby since night of her life One bourbon, one scotch and one bill\"\n    )\n\n    with patch(\"openai.Audio.translate\") as mock_create:\n        mock_create.return_value = {\"text\": expect_answer}\n\n        response = openai.Audio.translate(model=\"whisper-1\", file=audio_file)\n        answer_text = get_audio_text_from_openai_answer(response)\n        assert answer_text == expect_answer\n\n    audio_file.name = \"download/data/blues.00000.mp3\"\n    response = openai.Audio.translate(model=\"whisper-1\", file=audio_file)\n    answer_text = get_audio_text_from_openai_answer(response)\n    assert answer_text == expect_answer\n\n\ndef test_moderation():\n    init_similar_cache(\n        data_dir=str(random.random()), pre_func=get_openai_moderation_input\n    )\n    expect_violence = 0.8864422\n    with patch(\"openai.Moderation.create\") as mock_create:\n        mock_create.return_value = {\n            \"id\": \"modr-7IxkwrKvfnNJJIBsXAc0mfcpGaQJF\",\n            \"model\": \"text-moderation-004\",\n            \"results\": [\n                {\n                    \"categories\": {\n                        \"hate\": False,\n                        \"hate/threatening\": False,\n                        \"self-harm\": False,\n                        \"sexual\": False,\n                        \"sexual/minors\": False,\n                        \"violence\": True,\n                        \"violence/graphic\": False,\n                    },\n                    \"category_scores\": {\n                        \"hate\": 0.18067425,\n                        \"hate/threatening\": 0.0032884814,\n                        \"self-harm\": 1.8089558e-09,\n                        \"sexual\": 9.759996e-07,\n                        \"sexual/minors\": 1.3364182e-08,\n                        \"violence\": 0.8864422,\n                        \"violence/graphic\": 3.2011528e-08,\n                    },\n                    \"flagged\": True,\n                }\n            ],\n        }\n        response = openai.Moderation.create(\n            input=[\"I want to kill them.\"],\n        )\n        assert (\n            response.get(\"results\")[0].get(\"category_scores\").get(\"violence\")\n            == expect_violence\n        )\n\n    response = openai.Moderation.create(\n        input=\"I want to kill them.\",\n    )\n    assert (\n        response.get(\"results\")[0].get(\"category_scores\").get(\"violence\")\n        == expect_violence\n    )\n\n    expect_violence = 0.88708615\n    with patch(\"openai.Moderation.create\") as mock_create:\n        mock_create.return_value = {\n            \"id\": \"modr-7Ixe5Bvq4wqzZb1xtOxGxewg0G87F\",\n            \"model\": \"text-moderation-004\",\n            \"results\": [\n                {\n                    \"flagged\": False,\n                    \"categories\": {\n                        \"sexual\": False,\n                        \"hate\": False,\n                        \"violence\": False,\n                        \"self-harm\": False,\n                        \"sexual/minors\": False,\n                        \"hate/threatening\": False,\n                        \"violence/graphic\": False,\n                    },\n                    \"category_scores\": {\n                        \"sexual\": 1.5214279e-06,\n                        \"hate\": 2.0188916e-06,\n                        \"violence\": 1.8034231e-09,\n                        \"self-harm\": 1.0547879e-10,\n                        \"sexual/minors\": 2.6696927e-09,\n                        \"hate/threatening\": 8.445262e-12,\n                        \"violence/graphic\": 5.324232e-10,\n                    },\n                },\n                {\n                    \"flagged\": True,\n                    \"categories\": {\n                        \"sexual\": False,\n                        \"hate\": False,\n                        \"violence\": True,\n                        \"self-harm\": False,\n                        \"sexual/minors\": False,\n                        \"hate/threatening\": False,\n                        \"violence/graphic\": False,\n                    },\n                    \"category_scores\": {\n                        \"sexual\": 9.5307604e-07,\n                        \"hate\": 0.18386655,\n                        \"violence\": 0.88708615,\n                        \"self-harm\": 1.7594172e-09,\n                        \"sexual/minors\": 1.3112497e-08,\n                        \"hate/threatening\": 0.0032587533,\n                        \"violence/graphic\": 3.1731048e-08,\n                    },\n                },\n            ],\n        }\n        response = openai.Moderation.create(\n            input=[\"hello, world\", \"I want to kill them.\"],\n        )\n        assert not response.get(\"results\")[0].get(\"flagged\")\n        assert (\n            response.get(\"results\")[1].get(\"category_scores\").get(\"violence\")\n            == expect_violence\n        )\n\n    response = openai.Moderation.create(\n        input=[\"hello, world\", \"I want to kill them.\"],\n    )\n    assert not response.get(\"results\")[0].get(\"flagged\")\n    assert (\n        response.get(\"results\")[1].get(\"category_scores\").get(\"violence\")\n        == expect_violence\n    )\n\n\ndef test_base_llm_cache():\n    cache_obj = Cache()\n    init_similar_cache(\n        data_dir=str(random.random()), pre_func=last_content, cache_obj=cache_obj\n    )\n    question = \"What's Github\"\n    expect_answer = \"Github is a great place to start\"\n\n    with patch(\"openai.ChatCompletion.create\") as mock_create:\n        datas = {\n            \"choices\": [\n                {\n                    \"message\": {\"content\": expect_answer, \"role\": \"assistant\"},\n                    \"finish_reason\": \"stop\",\n                    \"index\": 0,\n                }\n            ],\n            \"created\": 1677825464,\n            \"id\": \"chatcmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n            \"model\": \"gpt-3.5-turbo-0301\",\n            \"object\": \"chat.completion.chunk\",\n        }\n        mock_create.return_value = datas\n\n        import openai as real_openai\n\n        def proxy_openai_chat_complete_exception(*args, **kwargs):\n            raise real_openai.error.APIConnectionError(\"connect fail\")\n\n        openai.ChatCompletion.llm = proxy_openai_chat_complete_exception\n\n        is_openai_exception = False\n        try:\n            openai.ChatCompletion.create(\n                model=\"gpt-3.5-turbo\",\n                messages=[\n                    {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                    {\"role\": \"user\", \"content\": question},\n                ],\n                cache_obj=cache_obj,\n            )\n        except real_openai.error.APIConnectionError:\n            is_openai_exception = True\n\n        assert is_openai_exception\n\n        is_proxy = False\n\n        def proxy_openai_chat_complete(*args, **kwargs):\n            nonlocal is_proxy\n            is_proxy = True\n            return real_openai.ChatCompletion.create(*args, **kwargs)\n\n        openai.ChatCompletion.llm = proxy_openai_chat_complete\n\n        response = openai.ChatCompletion.create(\n            model=\"gpt-3.5-turbo\",\n            messages=[\n                {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                {\"role\": \"user\", \"content\": question},\n            ],\n            cache_obj=cache_obj,\n        )\n        assert is_proxy\n\n        assert get_message_from_openai_answer(response) == expect_answer, response\n\n    is_exception = False\n    try:\n        resp = openai.ChatCompletion.create(\n            model=\"gpt-3.5-turbo\",\n            messages=[\n                {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                {\"role\": \"user\", \"content\": question},\n            ],\n        )\n    except Exception:\n        is_exception = True\n    assert is_exception\n\n    openai.ChatCompletion.cache_args = {\"cache_obj\": cache_obj}\n\n    print(openai.ChatCompletion.fill_base_args(foo=\"hello\"))\n\n    response = openai.ChatCompletion.create(\n        model=\"gpt-3.5-turbo\",\n        messages=[\n            {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n            {\"role\": \"user\", \"content\": question},\n        ],\n    )\n\n    openai.ChatCompletion.llm = None\n    openai.ChatCompletion.cache_args = {}\n    assert get_message_from_openai_answer(response) == expect_answer, response\n\n\n@pytest.mark.asyncio\nasync def test_base_llm_cache_async():\n    cache_obj = Cache()\n    init_similar_cache(\n        data_dir=str(random.random()), pre_func=last_content, cache_obj=cache_obj\n    )\n    question = \"What's Github\"\n    expect_answer = \"Github is a great place to start\"\n    import openai as real_openai\n\n    with patch.object(\n        real_openai.ChatCompletion, \"acreate\", new_callable=AsyncMock\n    ) as mock_acreate:\n        datas = {\n            \"choices\": [\n                {\n                    \"message\": {\"content\": expect_answer, \"role\": \"assistant\"},\n                    \"finish_reason\": \"stop\",\n                    \"index\": 0,\n                }\n            ],\n            \"created\": 1677825464,\n            \"id\": \"chatcmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n            \"model\": \"gpt-3.5-turbo-0301\",\n            \"object\": \"chat.completion.chunk\",\n        }\n        mock_acreate.return_value = datas\n\n        async def proxy_openai_chat_complete_exception(*args, **kwargs):\n            raise real_openai.error.APIConnectionError(\"connect fail\")\n\n        openai.ChatCompletion.llm = proxy_openai_chat_complete_exception\n\n        is_openai_exception = False\n        try:\n            await openai.ChatCompletion.acreate(\n                model=\"gpt-3.5-turbo\",\n                messages=[\n                    {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                    {\"role\": \"user\", \"content\": question},\n                ],\n                cache_obj=cache_obj,\n            )\n        except real_openai.error.APIConnectionError:\n            is_openai_exception = True\n\n        assert is_openai_exception\n\n        is_proxy = False\n\n        def proxy_openai_chat_complete(*args, **kwargs):\n            nonlocal is_proxy\n            is_proxy = True\n            return real_openai.ChatCompletion.acreate(*args, **kwargs)\n\n        openai.ChatCompletion.llm = proxy_openai_chat_complete\n\n        response = await openai.ChatCompletion.acreate(\n            model=\"gpt-3.5-turbo\",\n            messages=[\n                {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                {\"role\": \"user\", \"content\": question},\n            ],\n            cache_obj=cache_obj,\n        )\n        assert is_proxy\n\n        assert get_message_from_openai_answer(response) == expect_answer, response\n\n    is_exception = False\n    try:\n        resp = await openai.ChatCompletion.acreate(\n            model=\"gpt-3.5-turbo\",\n            messages=[\n                {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                {\"role\": \"user\", \"content\": question},\n            ],\n        )\n    except Exception:\n        is_exception = True\n    assert is_exception\n\n    openai.ChatCompletion.cache_args = {\"cache_obj\": cache_obj}\n\n    print(openai.ChatCompletion.fill_base_args(foo=\"hello\"))\n\n    response = await openai.ChatCompletion.acreate(\n        model=\"gpt-3.5-turbo\",\n        messages=[\n            {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n            {\"role\": \"user\", \"content\": question},\n        ],\n    )\n\n    openai.ChatCompletion.llm = None\n    openai.ChatCompletion.cache_args = {}\n    assert get_message_from_openai_answer(response) == expect_answer, response\n\n\n# def test_audio_api():\n#     data2vec = Data2VecAudio()\n#     data_manager = manager_factory(\"sqlite,faiss,local\", \"audio_api\", vector_params={\"dimension\": data2vec.dimension})\n#     cache.init(\n#         pre_embedding_func=get_prompt,\n#         embedding_func=data2vec.to_embeddings,\n#         data_manager=data_manager,\n#         similarity_evaluation=SearchDistanceEvaluation(),\n#     )\n#     # url = \"https://github.com/towhee-io/examples/releases/download/data/blues.00000.mp3\"\n#     url = \"https://github.com/towhee-io/examples/releases/download/data/ah_yes.wav\"\n#     expect_answer = (\n#         \"One bourbon, one scotch and one bill Hey Mr. Bartender, come here I want another drink and I want it now My baby she gone, \"\n#         \"she been gone tonight I ain't seen my baby since night of her life One bourbon, one scotch and one bill\"\n#     )\n#     put(prompt=url, data=expect_answer)\n#\n#     assert get(prompt=url) == expect_answer\n"
  },
  {
    "path": "tests/unit_tests/adapter/test_replicate.py",
    "content": "import base64\nimport os\nfrom io import BytesIO, BufferedReader\nfrom unittest.mock import patch\n\nimport numpy as np\n\nfrom gptcache.utils import import_replicate, import_pillow\n\nimport_replicate()\nimport_pillow()\n\nimport replicate\nfrom PIL import Image\n\nfrom gptcache import cache\nfrom gptcache.adapter import replicate\nfrom gptcache.processor.pre import get_input_str, get_input_image_file_name\nfrom gptcache.utils.response import get_image_from_openai_url\nfrom gptcache.manager.factory import manager_factory\nfrom gptcache.similarity_evaluation.onnx import OnnxModelEvaluation\n\n\n\ndef test_replicate():\n    test_response = {\"data\": [{\"url\": \"https://raw.githubusercontent.com/zilliztech/GPTCache/dev/docs/GPTCache.png\"}]}\n    img_bytes = base64.b64decode(get_image_from_openai_url(test_response))\n    img_file = BytesIO(img_bytes)  # convert image to file-like object\n    img = Image.open(img_file)\n\n    b_handle = BytesIO()\n    img.save(b_handle, format=\"JPEG\")\n    b_handle.seek(0)\n    b_handle.name = \"GPTCache.png\"\n    expected_img_data = BufferedReader(b_handle)\n    expect_answer = \"gptcache\"\n\n    cache.init(pre_embedding_func=get_input_str)\n    with patch(\"replicate.run\") as mock_create:\n        mock_create.return_value = expect_answer\n        answer_text = replicate.run(\n                        \"andreasjansson/blip-2\",\n                        input={\"image\": expected_img_data,\n                               \"question\": \"Which project's architecture diagram is this?\"}\n                    )\n        assert answer_text == expect_answer\n    answer_text = replicate.run(\n                    \"andreasjansson/blip-2\",\n                    input={\"image\": expected_img_data,\n                           \"question\": \"Which project's architecture diagram is this?\"}\n                )\n    assert answer_text == expect_answer\n\n    cache.init(pre_embedding_func=get_input_image_file_name)\n    with patch(\"replicate.run\") as mock_create:\n        mock_create.return_value = expect_answer\n        answer_text = replicate.run(\n            \"andreasjansson/blip-2\",\n            input={\"image\": expected_img_data}\n        )\n        assert answer_text == expect_answer\n    answer_text = replicate.run(\n        \"andreasjansson/blip-2\",\n        input={\"image\": expected_img_data}\n    )\n    assert answer_text == expect_answer\n\n    faiss_file = \"faiss.index\"\n    if os.path.isfile(faiss_file):\n        os.remove(faiss_file)\n\n    data_manager = manager_factory(\"sqlite,faiss\", data_dir='.', vector_params={\"dimension\": 3})\n    vector_data = np.ones((3,)).astype(\"float32\")\n    cache.init(pre_embedding_func=get_input_image_file_name,\n               data_manager=data_manager,\n               embedding_func=lambda data, **_: vector_data,\n               similarity_evaluation=OnnxModelEvaluation())\n    with patch(\"replicate.run\") as mock_create:\n        mock_create.return_value = expect_answer\n        answer_text = replicate.run(\n            \"andreasjansson/blip-2\",\n            input={\"image\": expected_img_data,\n                   \"question\": \"Which project's architecture diagram is this?\"}\n        )\n        assert answer_text == expect_answer\n    answer_text = replicate.run(\n        \"andreasjansson/blip-2\",\n        input={\"image\": expected_img_data,\n               \"question\": \"Which project's architecture diagram is this?\"}\n    )\n    assert answer_text == expect_answer\n"
  },
  {
    "path": "tests/unit_tests/adapter/test_stability.py",
    "content": "import base64\nimport os\nfrom io import BytesIO\nfrom unittest.mock import patch\n\nimport numpy as np\n\nfrom gptcache import cache\nfrom gptcache.adapter import stability_sdk as cache_stability\nfrom gptcache.adapter.stability_sdk import generation, _construct_resp_from_cache\nfrom gptcache.manager.factory import manager_factory\nfrom gptcache.processor.pre import get_prompt\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\nfrom gptcache.utils import (\n    import_stability, import_pillow\n)\n\nimport_pillow()\nimport_stability()\n\nimport stability_sdk\nfrom PIL import ImageChops, Image\n\n\ndef test_stability_inference_map():\n    cache.init(pre_embedding_func=get_prompt)\n    expected_img = Image.new(\"RGB\", (1, 1))\n\n    buffered = BytesIO()\n    expected_img.save(buffered, format=\"PNG\")\n    test_img_b64 = base64.b64encode(buffered.getvalue())\n    expected_response = _construct_resp_from_cache(test_img_b64, 1, 1)\n\n    stability_api = cache_stability.StabilityInference(key=\"ThisIsTest\")\n    with patch.object(stability_sdk.client.StabilityInference, \"generate\") as mock_call:\n        mock_call.return_value = expected_response\n\n        answer_response = stability_api.generate(prompt=\"Test prompt\", width=1, height=1)\n        answers = []\n        for resp in answer_response:\n            for artifact in resp.artifacts:      \n                if artifact.type == generation.ARTIFACT_IMAGE:\n                    answers.append(Image.open(BytesIO(artifact.binary)))\n        assert len(answers) == 1, f\"Expect to get 1 image but got {len(answers)}\"\n        diff = ImageChops.difference(answers[0], expected_img)\n        assert not diff.getbbox()\n\n    answer_response = stability_api.generate(prompt=\"Test prompt\", width=2, height=2)\n    answers = []\n    for resp in answer_response:\n        for artifact in resp.artifacts:        \n            if artifact.type == generation.ARTIFACT_IMAGE:\n                img = Image.open(BytesIO(artifact.binary))\n                assert img.size == (2, 2), \"Incorrect image size.\"\n                answers.append(img)\n    assert len(answers) == 1, f\"Expect to get 1 image but got {len(answers)}\"\n    diff = ImageChops.difference(answers[0], expected_img)\n    assert not diff.getbbox()\n\n\ndef test_stability_inference_faiss():\n    faiss_file = \"faiss.index\"\n    if os.path.isfile(faiss_file):\n        os.remove(faiss_file)\n\n    data_manager = manager_factory(\"sqlite,faiss,local\", \n                               data_dir=\"./\", \n                               vector_params={\"dimension\": 2},\n                               object_params={\"path\": \"./images\"}\n                               )\n    cache.init(\n        pre_embedding_func=get_prompt,\n        embedding_func=lambda x, **_: np.ones((2,)).astype(\"float32\"),\n        data_manager=data_manager,\n        similarity_evaluation=SearchDistanceEvaluation()\n    )\n\n    expected_img = Image.new(\"RGB\", (1, 1))\n\n    buffered = BytesIO()\n    expected_img.save(buffered, format=\"PNG\")\n    test_img_b64 = base64.b64encode(buffered.getvalue())\n    expected_response = _construct_resp_from_cache(test_img_b64, 1, 1)\n\n    with patch(\"stability_sdk.client.StabilityInference.generate\") as mock_call:\n        mock_call.return_value = expected_response\n\n        stability_api = cache_stability.StabilityInference(key=\"ThisIsTest\")\n        answer_response = stability_api.generate(prompt=\"Test prompt\", width=1, height=1)\n        answers = []\n        for resp in answer_response:\n            for artifact in resp.artifacts:        \n                if artifact.type == generation.ARTIFACT_IMAGE:\n                    img = Image.open(BytesIO(artifact.binary))\n                    assert img.size == (1, 1), \"Incorrect image size.\"\n                    answers.append(img)\n        assert len(answers) == 1, f\"Expect to get 1 image but got {len(answers)}\"\n        diff = ImageChops.difference(answers[0], expected_img)\n        assert not diff.getbbox()\n\n    answer_response = stability_api.generate(prompt=\"Test prompt\", width=2, height=2)\n    answers = []\n    for resp in answer_response:\n        for artifact in resp.artifacts:        \n            if artifact.type == generation.ARTIFACT_IMAGE:\n                img = Image.open(BytesIO(artifact.binary))\n                assert img.size == (2, 2), \"Incorrect image size.\"\n                answers.append(img)\n    assert len(answers) == 1, f\"Expect to get 1 image but got {len(answers)}\"\n    diff = ImageChops.difference(answers[0], expected_img)\n    assert not diff.getbbox()\n"
  },
  {
    "path": "tests/unit_tests/embedding/test_cohere.py",
    "content": "import os\nimport types\nfrom unittest.mock import patch\nfrom gptcache.utils import import_cohere\nfrom gptcache.embedding import Cohere\nfrom gptcache.adapter.api import _get_model\n\nimport_cohere()\n\n\ndef test_embedding():\n    os.environ[\"CO_API_KEY\"] = \"API\"\n\n    with patch(\"cohere.Client.embed\") as mock_create:\n        dimension = 4096\n        mock_create.return_value = types.SimpleNamespace(embeddings=[[0] * dimension])\n        c1 = Cohere()\n        assert c1.dimension == dimension\n        assert len(c1.to_embeddings(\"foo\")) == dimension\n\n    with patch(\"cohere.Client.embed\") as mock_create:\n        dimension = 512\n        mock_create.return_value = types.SimpleNamespace(embeddings=[[0] * dimension])\n        c1 = Cohere(\"foo\")\n        assert c1.dimension == dimension\n        assert len(c1.to_embeddings(\"foo\")) == dimension\n\n    with patch(\"cohere.Client.embed\") as mock_create:\n        dimension = 4096\n        mock_create.return_value = types.SimpleNamespace(embeddings=[[0] * dimension])\n        c1 = _get_model(\"cohere\")\n        assert c1.dimension == dimension\n        assert len(c1.to_embeddings(\"foo\")) == dimension\n"
  },
  {
    "path": "tests/unit_tests/embedding/test_data2vec.py",
    "content": "from io import BytesIO\n\nimport requests\n\nfrom gptcache.adapter.api import _get_model\nfrom gptcache.embedding import Data2VecAudio\n\n\ndef test_data2vec_audio():\n    url = \"https://github.com/towhee-io/examples/releases/download/data/ah_yes.wav\"\n    req = requests.get(url)\n    audio = BytesIO(req.content) \n    t = Data2VecAudio(model=\"facebook/data2vec-audio-base-960h\")\n    data = t.to_embeddings(audio)\n    assert len(data) == t.dimension, f\"{len(data)}, {t.dimension}\"\n\n    req = requests.get(url)\n    audio = BytesIO(req.content) \n    t = _get_model(\"data2vecaudio\")\n    data = t.to_embeddings(audio)\n    assert len(data) == t.dimension, f\"{len(data)}, {t.dimension}\"\n\n\nif __name__ == \"__main__\":\n    test_data2vec_audio()\n"
  },
  {
    "path": "tests/unit_tests/embedding/test_embedding_openai.py",
    "content": "import os\nfrom unittest.mock import patch\n\nfrom gptcache.embedding import OpenAI\nfrom gptcache.adapter.api import _get_model\n\n\ndef test_embedding():\n    os.environ[\"OPENAI_API_KEY\"] = \"API\"\n\n    def get_return_value(d):\n        return {\n          \"object\": \"list\",\n          \"data\": [\n            {\n              \"object\": \"embedding\",\n              \"embedding\": [0] * d,\n              \"index\": 0\n            }\n          ],\n          \"model\": \"text-embedding-ada-002\",\n          \"usage\": {\n            \"prompt_tokens\": 8,\n            \"total_tokens\": 8\n          }\n        }\n\n    with patch(\"openai.Embedding.create\") as mock_create:\n        dimension = 1536\n        mock_create.return_value = get_return_value(dimension)\n        oa = OpenAI()\n        assert oa.dimension == dimension\n        assert len(oa.to_embeddings(\"foo\")) == dimension\n\n    with patch(\"openai.Embedding.create\") as mock_create:\n        dimension = 1536\n        mock_create.return_value = get_return_value(dimension)\n        oa = OpenAI(api_key=\"openai\")\n        assert oa.dimension == dimension\n        assert len(oa.to_embeddings(\"foo\")) == dimension\n\n    with patch(\"openai.Embedding.create\") as mock_create:\n        dimension = 512\n        mock_create.return_value = get_return_value(dimension)\n        oa = OpenAI(model=\"test_embedding\")\n        assert oa.dimension == dimension\n        assert len(oa.to_embeddings(\"foo\")) == dimension\n\n    with patch(\"openai.Embedding.create\") as mock_create:\n        dimension = 1536\n        mock_create.return_value = get_return_value(dimension)\n        oa = _get_model(\"openai\")\n        assert oa.dimension == dimension\n        assert len(oa.to_embeddings(\"foo\")) == dimension\n\n\n"
  },
  {
    "path": "tests/unit_tests/embedding/test_embedding_string.py",
    "content": "from gptcache.embedding.string import to_embeddings\n\n\ndef test_embedding():\n    message = to_embeddings(\"foo\")\n    assert message == \"foo\"\n"
  },
  {
    "path": "tests/unit_tests/embedding/test_fasttext.py",
    "content": "# from unittest.mock import patch\n\n# from gptcache.embedding import FastText\n\n# from gptcache.utils import import_fasttext\n# from gptcache.adapter.api import _get_model\n\n# import_fasttext()\n\n# import fasttext\n\n\n# def test_embedding():\n#     with patch(\"fasttext.util.download_model\") as download_model_mock:\n#         download_model_mock.return_value = \"fastttext.bin\"\n#         with patch(\"fasttext.load_model\") as load_model_mock:\n#             load_model_mock.return_value = fasttext.FastText._FastText()\n#             with patch(\"fasttext.util.reduce_model\") as reduce_model_mock:\n#                 reduce_model_mock.return_value = None\n#                 with patch(\"fasttext.FastText._FastText.get_dimension\") as dimension_mock:\n#                     dimension_mock.return_value = 128\n#                     with patch(\"fasttext.FastText._FastText.get_sentence_vector\") as vector_mock:\n#                         vector_mock.return_value = [0] * 128\n\n#                         ft = FastText(dim=128)\n#                         assert len(ft.to_embeddings(\"foo\")) == 128\n#                         assert ft.dimension == 128\n\n#                         ft1 = _get_model(\"fasttext\", model_config={\"dim\": 128})\n#                         assert len(ft1.to_embeddings(\"foo\")) == 128\n#                         assert ft1.dimension == 128\n"
  },
  {
    "path": "tests/unit_tests/embedding/test_huggingface.py",
    "content": "from gptcache.embedding import Huggingface\nfrom gptcache.adapter.api import _get_model\n\n\ndef test_huggingface():\n    t = Huggingface(\"distilbert-base-uncased\")\n    data = t.to_embeddings(\"foo\")\n    assert len(data) == t.dimension, f\"{len(data)}, {t.dimension}\"\n\n    t = _get_model(model_src=\"huggingface\", model_config={\"model\": \"distilbert-base-uncased\"})\n    data = t.to_embeddings(\"foo\")\n    assert len(data) == t.dimension, f\"{len(data)}, {t.dimension}\"\n"
  },
  {
    "path": "tests/unit_tests/embedding/test_langchain.py",
    "content": "from gptcache.embedding import LangChain\nfrom gptcache.utils import import_langchain, prompt_install\n\nimport_langchain()\nfrom langchain.embeddings import FakeEmbeddings\n\n\ndef test_langchain_embedding():\n    size = 10\n    l = LangChain(embeddings=FakeEmbeddings(size=size))\n    data = l.to_embeddings(\"foo\")\n    assert len(data) == size\n\n    l = LangChain(embeddings=FakeEmbeddings(size=size), dimension=size)\n    data = l.to_embeddings(\"foo\")\n    assert len(data) == size\n"
  },
  {
    "path": "tests/unit_tests/embedding/test_onnx.py",
    "content": "from gptcache.embedding import Onnx\nfrom gptcache.adapter.api import _get_model\n\n\ndef test_onnx():\n    t = Onnx()\n    data = t.to_embeddings(\"foo\")\n    assert len(data) == t.dimension, f\"{len(data)}, {t.dimension}\"\n\n    t = _get_model(\"onnx\")\n    data = t.to_embeddings(\"foo\")\n    assert len(data) == t.dimension, f\"{len(data)}, {t.dimension}\"\n"
  },
  {
    "path": "tests/unit_tests/embedding/test_paddlenlp.py",
    "content": "from gptcache.embedding import PaddleNLP\nfrom gptcache.adapter.api import _get_model\n\n\ndef test_paddlenlp():\n    t = PaddleNLP(\"ernie-3.0-nano-zh\")\n    dimension = t.dimension\n    data = t.to_embeddings(\"中国\")\n    assert len(data) == dimension, f\"{len(data)}, {t.dimension}\"\n  \n    t = _get_model(model_src=\"paddlenlp\", model_config={\"model\": \"ernie-3.0-nano-zh\"})\n    dimension = t.dimension\n    data = t.to_embeddings(\"中国\")\n    assert len(data) == dimension, f\"{len(data)}, {t.dimension}\"\n"
  },
  {
    "path": "tests/unit_tests/embedding/test_rwkv.py",
    "content": "from gptcache.adapter.api import _get_model\nfrom gptcache.embedding import Rwkv\n\n\ndef test_rwkv():\n    t = Rwkv(\"sgugger/rwkv-430M-pile\")\n    data = t.to_embeddings(\"foo\")\n    assert len(data) == t.dimension, f\"{len(data)}, {t.dimension}\"\n\n    t = _get_model(model_src=\"rwkv\", model_config={\"model\": \"sgugger/rwkv-430M-pile\"})\n    data = t.to_embeddings(\"foo\")\n    assert len(data) == t.dimension, f\"{len(data)}, {t.dimension}\"\n\n"
  },
  {
    "path": "tests/unit_tests/embedding/test_sbert.py",
    "content": "from gptcache.adapter.api import _get_model\nfrom gptcache.embedding import SBERT\n\n\ndef test_sbert():\n    t = SBERT(\"all-MiniLM-L6-v2\")\n    dimension = t.dimension\n    data = t.to_embeddings(\"foo\")\n    assert len(data) == dimension, f\"{len(data)}, {t.dimension}\"\n\n    t = _get_model(model_src=\"sbert\", model_config={\"model\": \"all-MiniLM-L6-v2\"})\n    dimension = t.dimension\n    data = t.to_embeddings(\"foo\")\n    assert len(data) == dimension, f\"{len(data)}, {t.dimension}\"\n\n    question = [\n        \"what is apple?\",\n        \"what is intel?\",\n        \"what is openai?\",\n    ]\n    answer = [\"apple\", \"intel\", \"openai\"]\n    for q, _ in zip(question, answer):\n        data = t.to_embeddings(q)\n        assert len(data) == dimension, f\"{len(data)}, {t.dimension}\"\n"
  },
  {
    "path": "tests/unit_tests/embedding/test_timm.py",
    "content": "from io import BytesIO\n\nimport requests\n\nfrom gptcache.adapter.api import _get_model\nfrom gptcache.embedding import Timm\n\n\ndef test_timm():\n    url = 'https://raw.githubusercontent.com/zilliztech/GPTCache/main/docs/GPTCache.png'\n    image_bytes = requests.get(url).content\n    image_file = BytesIO(image_bytes)  # Convert image to file-like object\n\n    encoder = Timm(model='resnet50')\n    embed = encoder.to_embeddings(image_file)\n    assert len(embed) == encoder.dimension\n\n    encoder = _get_model(model_src=\"timm\", model_config={\"model\": \"resnet50\"})\n    embed = encoder.to_embeddings(image_file)\n    assert len(embed) == encoder.dimension\n\n\nif __name__ == \"__main__\":\n    test_timm()"
  },
  {
    "path": "tests/unit_tests/embedding/test_uform.py",
    "content": "from io import BytesIO\n\nimport requests\n\nfrom gptcache.adapter.api import _get_model\nfrom gptcache.utils import import_uform, import_pillow\nfrom gptcache.utils.error import ParamError\n\nimport_uform()\nimport_pillow()\n\n\ndef test_uform():\n    encoder = _get_model(\"uform\")\n    embed = encoder.to_embeddings(\"Hello, world.\")\n    assert len(embed) == encoder.dimension\n\n    url = \"https://raw.githubusercontent.com/zilliztech/GPTCache/main/docs/GPTCache.png\"\n    image_bytes = requests.get(url).content\n    image_file = BytesIO(image_bytes)\n\n    encoder = _get_model(\"uform\", model_config={\"embedding_type\": \"image\"})\n    embed = encoder.to_embeddings(image_file)\n    assert len(embed) == encoder.dimension\n\n    is_exception = False\n    try:\n        _get_model(\"uform\", model_config={\"embedding_type\": \"foo\"})\n    except ParamError:\n        is_exception = True\n    assert is_exception\n"
  },
  {
    "path": "tests/unit_tests/embedding/test_vit.py",
    "content": "from io import BytesIO\n\nimport requests\n\nfrom gptcache.adapter.api import _get_model\nfrom gptcache.utils import import_pillow, import_vit\n\n\ndef test_timm():\n    import_vit()\n    import_pillow()\n\n    from PIL import Image\n    from gptcache.embedding import ViT\n\n    url = 'https://raw.githubusercontent.com/zilliztech/GPTCache/main/docs/GPTCache.png'\n    image_bytes = requests.get(url).content\n    image_data = BytesIO(image_bytes)  # Convert image to file-like object\n    image = Image.open(image_data)\n    encoder = ViT(model=\"google/vit-base-patch16-384\")\n    embed = encoder.to_embeddings(image)\n    assert len(embed) == encoder.dimension\n\n    encoder = _get_model(model_src=\"vit\")\n    embed = encoder.to_embeddings(image)\n    assert len(embed) == encoder.dimension\n\nif __name__ == \"__main__\":\n    test_timm()"
  },
  {
    "path": "tests/unit_tests/eviction/test_distributed_cache.py",
    "content": "import time\nimport unittest\nfrom pathlib import Path\nfrom tempfile import TemporaryDirectory\n\nfrom redis_om import get_redis_connection\n\nfrom gptcache.embedding import Onnx\nfrom gptcache.manager import manager_factory, get_data_manager, CacheBase, VectorBase\nfrom gptcache.manager.eviction import EvictionBase\n\n\nclass TestDistributedCache(unittest.TestCase):\n    url: str = \"redis://default:default@localhost:6379\"\n\n    def setUp(cls) -> None:\n        cls._clear_test_db()\n\n    @staticmethod\n    def _clear_test_db():\n        r = get_redis_connection(url=TestDistributedCache.url)\n        r.flushall()\n        r.flushdb()\n        time.sleep(1)\n\n    def test_redis_only_cache_eviction(self):\n        manager = manager_factory(\"redis,faiss\",\n                                  eviction_manager=\"redis\",\n                                  vector_params={\"dimension\": 5},\n                                  eviction_params=dict(url=self.url,\n                                                       maxmemory=\"100mb\",\n                                                       policy=\"allkeys-lru\"))\n        self.assertEqual(type(manager.eviction_base).__name__, \"NoOpEviction\")\n        self.assertEqual(manager.eviction_base.policy, \"\")\n        self.assertEqual(type(manager.s).__name__, \"RedisCacheStorage\")\n\n    def test_eviction_base_str(self):\n        data_manager = get_data_manager(cache_base=\"sqlite\",\n                                        vector_base=VectorBase(\"faiss\", dimension=5),\n                                        eviction_base=\"redis\"\n                                        )\n        self.assertIsNotNone(data_manager.eviction_base)\n        self.assertEqual(type(data_manager.eviction_base).__name__, \"RedisCacheEviction\")\n\n        data_manager = get_data_manager(cache_base=\"sqlite\",\n                                        vector_base=VectorBase(\"faiss\", dimension=5),\n                                        eviction_base=\"no_op_eviction\"\n                                        )\n        self.assertIsNotNone(data_manager.eviction_base)\n        self.assertEqual(type(data_manager.eviction_base).__name__, \"NoOpEviction\")\n\n\n    def test_redis_sqlite_cache_eviction(self):\n        with TemporaryDirectory(dir=\"./\") as root:\n            db_name = \"sqlite\"\n            db_path = Path(root) / f\"{db_name}.db\"\n            manager = manager_factory(\"sqlite,faiss\",\n                                      eviction_manager=\"redis\",\n                                      scalar_params={\n                                          \"url\": f\"{db_name}:///\" + str(db_path),\n                                      },\n                                      vector_params={\"dimension\": 5},\n                                      eviction_params=dict(url=self.url,\n                                                           maxmemory=\"100mb\",\n                                                           policy=\"allkeys-lru\"))\n\n            self.assertEqual(type(manager.s).__name__, \"SQLStorage\")\n            self.assertEqual(type(manager.eviction_base).__name__, \"RedisCacheEviction\")\n            self.assertEqual(manager.eviction_base.policy, \"allkeys-lru\")\n            self.assertEqual(manager.eviction_base._ttl, None)\n\n    def test_noeviction_policy(self):\n        onnx = Onnx()\n        data_manager = manager_factory(\"redis,faiss\",\n                                       eviction_manager=\"redis\",\n                                       scalar_params={\"url\": self.url\n                                                      },\n                                       vector_params={\"dimension\": onnx.dimension},\n                                       eviction_params={\"maxmemory\": \"0\",\n                                                        \"policy\": \"noeviction\"}\n                                       )\n        questions = []\n        answers = []\n        idx_list = []\n        for i in range(100):\n            idx_list.append(i)\n            questions.append(f'This is a question_{i}')\n            answers.append(f'This is an answer_{i}')\n\n        for idx, question, answer in zip(idx_list, questions, answers):\n            embedding = onnx.to_embeddings(question)\n            data_manager.save(\n                question=question,\n                answer=answer,\n                embedding_data=embedding\n            )\n\n        self.assertEqual(data_manager.s.count(), len(idx_list))\n\n    def test_ttl(self):\n        onnx = Onnx()\n        data_manager = manager_factory(\"redis,faiss\",\n                                       eviction_manager=\"redis\",\n                                       scalar_params={\"url\": self.url\n                                                      },\n                                       vector_params={\"dimension\": onnx.dimension},\n                                       eviction_params={\"maxmemory\": \"0\",\n                                                        \"policy\": \"noeviction\",\n                                                        \"ttl\": 1}\n                                       )\n        questions = []\n        answers = []\n        idx_list = []\n        embeddings = []\n        for i in range(10):\n            idx_list.append(i)\n            questions.append(f'This is a question_{i}')\n            answers.append(f'This is an answer_{i}')\n            embeddings.append(onnx.to_embeddings(questions[-1]))\n\n        data_manager.import_data(questions, answers, embedding_datas=embeddings,\n                                 session_ids=[None for _ in range(len(questions))])\n        time.sleep(5)\n        self.assertEqual(data_manager.s.count(), 0)\n\n    def test_redis_only_config(self):\n        onnx = Onnx()\n        data_manager = get_data_manager(cache_base=CacheBase(\"redis\", maxmemory=\"100mb\", policy=\"allkeys-lru\"),\n                                        vector_base=VectorBase(\"faiss\", dimension=onnx.dimension),\n                                        eviction_base=EvictionBase(\"redis\"))\n        questions = []\n        answers = []\n        idx_list = []\n        embeddings = []\n        for i in range(10):\n            idx_list.append(i)\n            questions.append(f'This is a question_{i}')\n            answers.append(f'This is an answer_{i}')\n            embeddings.append(onnx.to_embeddings(questions[-1]))\n\n        data_manager.import_data(questions, answers, embedding_datas=embeddings,\n                                 session_ids=[None for _ in range(len(questions))])\n        search_data = data_manager.search(embeddings[0], top_k=1)\n        for res in search_data:\n            self.assertEqual(data_manager.eviction_base.get(res[1]), \"True\")\n\n    def test_redis_only_with_no_op_eviction_config(self):\n        onnx = Onnx()\n        data_manager = get_data_manager(cache_base=CacheBase(\"redis\", maxmemory=\"100mb\", policy=\"allkeys-lru\"),\n                                        vector_base=VectorBase(\"faiss\", dimension=onnx.dimension),\n                                        eviction_base=EvictionBase(\"no_op_eviction\"))\n        questions = []\n        answers = []\n        idx_list = []\n        embeddings = []\n        for i in range(10):\n            idx_list.append(i)\n            questions.append(f'This is a question_{i}')\n            answers.append(f'This is an answer_{i}')\n            embeddings.append(onnx.to_embeddings(questions[-1]))\n\n        data_manager.import_data(questions, answers, embedding_datas=embeddings,\n                                 session_ids=[None for _ in range(len(questions))])\n        search_data = data_manager.search(embeddings[0], top_k=1)\n        for res in search_data:\n            self.assertEqual(data_manager.eviction_base.get(res[1]), None)\n\n    def test_cache_configuration(self):\n        e = EvictionBase(\"redis\", maxmemory=\"4mb\", policy=\"allkeys-lru\", maxmemory_samples=5)\n\n        memory_conf = e._redis.config_get(\"maxmemory\")\n        self.assertIsNotNone(memory_conf)\n        self.assertEqual(memory_conf[\"maxmemory\"], \"4194304\")\n\n        policy_conf = e._redis.config_get(\"maxmemory-policy\")\n        self.assertIsNotNone(policy_conf)\n        self.assertEqual(policy_conf['maxmemory-policy'], \"allkeys-lru\")\n\n        samples_conf = e._redis.config_get(\"maxmemory-samples\")\n        self.assertIsNotNone(samples_conf)\n        self.assertEqual(samples_conf['maxmemory-samples'], \"5\")\n\n    def test_ttl_access(self):\n        e = EvictionBase(\"redis\", maxmemory=\"4mb\", policy=\"allkeys-lru\", maxmemory_samples=5, ttl=5)\n\n        e.put([\"key\"])\n        value = e.get(\"key\")\n        self.assertEqual(value, \"True\")\n\n        ttl = e._redis.ttl(\"key\")\n        self.assertIsNotNone(ttl)\n\n        time.sleep(2)\n        ttl = e._redis.ttl(\"key\")\n        self.assertLess(ttl, 5)\n\n        time.sleep(4)\n        ttl = e._redis.ttl(\"key\")\n        self.assertEqual(ttl, -2)\n\n        value = e.get(\"key\")\n        self.assertIsNone(value)\n\n        value = e.get(\"key1\")\n        self.assertIsNone(value)\n\n        e = EvictionBase(\"redis\", maxmemory=\"4mb\", policy=\"allkeys-lru\", maxmemory_samples=5)\n        e.put([\"key\"])\n        ttl = e._redis.ttl(\"key\")\n        self.assertEqual(e.get(\"key\"), \"True\")\n        self.assertEqual(ttl, -2)\n"
  },
  {
    "path": "tests/unit_tests/eviction/test_memory_cache.py",
    "content": "import unittest\n\nimport gptcache\nfrom gptcache.manager.eviction.manager import EvictionBase\nfrom gptcache.utils.error import NotFoundError\n\n\nclass TestEviction(unittest.TestCase):\n    def test_memory_cache_eviction(self):\n        with self.assertRaises(EnvironmentError):\n            EvictionBase()\n\n        with self.assertRaises(NotFoundError):\n            EvictionBase.get(\n                name=\"test_eviction\",\n                policy=\"lru\",\n                maxsize=10,\n                clean_size=2,\n                on_evict=lambda x: print(x),\n            )\n\n        with self.assertRaises(ValueError):\n            EvictionBase.get(\n                name=\"memory\",\n                policy=\"test_eviction\",\n                maxsize=10,\n                clean_size=2,\n                on_evict=lambda x: print(x),\n            )\n\n    def test_lru(self):\n        datas = []\n\n        def on_evict(deletes):\n            for delete in deletes:\n                datas.remove(delete)\n            return\n\n        eviction_base = EvictionBase.get(\n            name=\"memory\", policy=\"lru\", maxsize=4, clean_size=2, on_evict=on_evict\n        )\n\n        def add_data(data):\n            datas.append(data)\n            eviction_base.put([data])\n\n        add_data(1)\n        add_data(2)\n        add_data(3)\n        add_data(4)\n        eviction_base.get(1)\n        add_data(5)\n        self.assertEqual(3, len(datas))\n        self.assertTrue(datas.index(1) != -1)\n\n    def test_lru_no_clean_size(self):\n        datas = []\n\n        def on_evict(deletes):\n            for delete in deletes:\n                datas.remove(delete)\n            return\n\n        eviction_base = gptcache.manager.eviction.EvictionBase(\n            name=\"memory\", policy=\"lru\", maxsize=5, on_evict=on_evict\n        )\n\n        def add_data(data):\n            datas.append(data)\n            eviction_base.put([data])\n\n        add_data(1)\n        add_data(2)\n        add_data(3)\n        add_data(4)\n        add_data(5)\n        eviction_base.get(1)\n        add_data(6)\n        self.assertEqual(5, len(datas))\n        self.assertTrue(datas.index(1) != -1)\n\n    def test_lfu(self):\n        datas = []\n\n        def on_evict(deletes):\n            for delete in deletes:\n                datas.remove(delete)\n            return\n\n        eviction_base = EvictionBase.get(\n            name=\"memory\", policy=\"lfu\", maxsize=4, clean_size=2, on_evict=on_evict\n        )\n\n        def add_data(data):\n            datas.append(data)\n            eviction_base.put([data])\n\n        add_data(1)\n        add_data(2)\n        add_data(3)\n        add_data(4)\n        eviction_base.get(2)\n        eviction_base.get(2)\n        eviction_base.get(3)\n        eviction_base.get(3)\n        eviction_base.get(4)\n        eviction_base.get(4)\n        eviction_base.get(1)\n        add_data(5)\n        self.assertEqual(3, len(datas))\n        self.assertFalse(1 in datas)\n\n    def test_fifo(self):\n        datas = []\n\n        def on_evict(deletes):\n            for delete in deletes:\n                datas.remove(delete)\n            return\n\n        eviction_base = EvictionBase.get(\n            name=\"memory\", policy=\"fifo\", maxsize=4, clean_size=2, on_evict=on_evict\n        )\n\n        def add_data(data):\n            datas.append(data)\n            eviction_base.put([data])\n\n        add_data(1)\n        add_data(2)\n        add_data(3)\n        add_data(4)\n        eviction_base.get(1)\n        add_data(5)\n        self.assertEqual(3, len(datas))\n        self.assertFalse(1 in datas)\n\n    def test_rr(self):\n        datas = []\n\n        def on_evict(deletes):\n            for delete in deletes:\n                datas.remove(delete)\n            return\n\n        eviction_base = EvictionBase.get(\n            name=\"memory\", policy=\"rr\", maxsize=4, clean_size=2, on_evict=on_evict\n        )\n\n        def add_data(data):\n            datas.append(data)\n            eviction_base.put([data])\n\n        add_data(1)\n        add_data(2)\n        add_data(3)\n        add_data(4)\n        eviction_base.get(1)\n        add_data(5)\n        self.assertEqual(3, len(datas))\n"
  },
  {
    "path": "tests/unit_tests/manager/test_base.py",
    "content": "import unittest\n\nfrom gptcache.utils.error import NotFoundError\nfrom gptcache.manager import CacheBase, VectorBase\nfrom gptcache.manager.scalar_data.manager import CacheBase as InnerCacheBase\nfrom gptcache.manager.vector_data.manager import VectorBase as InnerVectorBase\n\n\nclass TestBaseStore(unittest.TestCase):\n    def test_cache_base(self):\n        with self.assertRaises(EnvironmentError):\n            InnerCacheBase()\n\n        with self.assertRaises(NotFoundError):\n            CacheBase(\"test_cache_base\")\n\n    def test_vector_base(self):\n        with self.assertRaises(EnvironmentError):\n            InnerVectorBase()\n\n        with self.assertRaises(NotFoundError):\n            VectorBase(\"test_cache_base\")\n"
  },
  {
    "path": "tests/unit_tests/manager/test_chromadb.py",
    "content": "import unittest\n\nimport numpy as np\n\nfrom gptcache.manager import VectorBase\nfrom gptcache.manager.vector_data.base import VectorData\n\n\nclass TestChromadb(unittest.TestCase):\n    def test_normal(self):\n        db = VectorBase(\"chromadb\", client_settings={}, top_k=3)\n        db.mul_add([VectorData(id=i, data=np.random.sample(10)) for i in range(100)])\n        search_res = db.search(np.random.sample(10))\n        self.assertEqual(len(search_res), 3)\n        db.delete([\"1\", \"3\", \"5\", \"7\"])\n        self.assertEqual(db._collection.count(), 96)\n"
  },
  {
    "path": "tests/unit_tests/manager/test_dynamo_storage.py",
    "content": "import numpy as np\nimport pytest\nimport unittest\n\nfrom random import randint\nfrom uuid import uuid4\nfrom datetime import datetime\nfrom decimal import Decimal\nfrom gptcache.manager.scalar_data.base import CacheStorage, CacheData, DataType, Question, QuestionDep\nfrom gptcache.utils import import_boto3\nfrom gptcache.manager.scalar_data.dynamo_storage import DynamoStorage \n\nimport_boto3()\n\nfrom boto3.dynamodb.conditions import Attr as DynamoAttr, Key as DynamoKey\nfrom boto3 import client as awsclient, resource as awsresource\nimport boto3\n\nclass TestDynamoCacheStorage(unittest.TestCase):\n    _dynamodb_local_endpoint_url = \"http://localhost:9999\"\n    _region_name = \"us-east-1\"\n\n    def setUp(self):\n        # First find all the tables and blow them away to keep a clean slate before starting tests\n        dynamo_client = awsclient(\n            \"dynamodb\",\n            endpoint_url = self._dynamodb_local_endpoint_url,\n            aws_access_key_id = \"test\",\n            aws_secret_access_key = \"test\",\n            region_name = self._region_name,\n        )\n        table_names = dynamo_client.list_tables()[\"TableNames\"]\n\n        for table_name in table_names:\n            dynamo_client.delete_table(TableName=table_name)\n\n        self.dynamo_cache_storage = DynamoStorage(\n            aws_endpoint_url = self._dynamodb_local_endpoint_url,\n            aws_access_key_id = \"test\",\n            aws_secret_access_key = \"test\",\n            aws_region_name = self._region_name,\n        )\n\n    def test_create_is_idempotent(self):\n        try:\n            self.dynamo_cache_storage.create()\n            self.dynamo_cache_storage.create()\n            self.dynamo_cache_storage.create()\n            self.dynamo_cache_storage.create()\n        except Exception as e:\n            pytest.fail(\"create() method should be idempotent. It failed with exception: \" + str(e))\n\n        # now manually query via boto3 to make sure the table is there\n        table = self._dynamo_resource().Table(\"gptcache_questions\")\n        assert table is not None\n\n        table = self._dynamo_resource().Table(\"gptcache_reports\")\n        assert table is not None\n\n    def test_creation_and_batch_insert(self):\n        time_before_insertion = datetime.utcnow()\n        cache_entries_to_insert = [\n            self._random_cachedata_without_dependencies(session_id = \"1\"),\n            self._random_cachedata_without_dependencies(),\n            self._random_cachedata_with_dependencies(session_id = \"3\"),\n        ]\n        self.dynamo_cache_storage.batch_insert(cache_entries_to_insert)\n\n        # now manually query via boto3 to make sure the data is there\n        table = self._dynamo_resource().Table(\"gptcache_questions\")\n        items = table.scan()['Items']\n\n        # Since there are session_ids for each item except one, there should be a corresponding session entries in this\n        # table. So there should be (3 regular question rows + 2 session rows) = 5 items in the table.\n        assert len(items) == 5\n\n        for item in items:\n            original_data_inserted = next(\n                    (cache_data for cache_data in cache_entries_to_insert if (cache_data.question == item[\"question\"] or \n                        isinstance(cache_data.question, Question) and cache_data.question.content == item[\"question\"])),\n                    None\n            )\n            expected_question_text = (\n                original_data_inserted.question\n                if isinstance(original_data_inserted.question, str)\n                else original_data_inserted.question.content\n            )\n\n            if item[\"id\"].startswith(\"sessions#\"):\n                assert original_data_inserted.session_id == item[\"id\"].split(\"#\")[1]\n                assert expected_question_text == item[\"question\"]\n\n            else:\n                assert expected_question_text == item[\"question\"]\n\n                # ensure that a 'create_on' timestamp is always set for new items.\n                assert (datetime.fromisoformat(item[\"create_on\"]) > time_before_insertion and \n                        datetime.fromisoformat(item[\"create_on\"]) < datetime.utcnow())\n\n                # The last access value should be blank because the entry is new and nothing has accessed it yet.\n                assert \"last_access\" not in item \n\n                # It shouldn't be deleted. Since boolean values have low cardinality, the class should be suffixing the value\n                # with a random integer to avoid hot partitions as per AWS's recommendations.\n                assert item[\"deleted\"].startswith(\"False_\")\n\n                assert (original_data_inserted.embedding_data == np.frombuffer(item[\"embedding_data\"].value, dtype=np.float32)).all()\n\n                # if the question has dependencies, make sure they're all there\n                if isinstance(original_data_inserted.question, Question) and original_data_inserted.question.deps is not None:\n                    assert len(original_data_inserted.question.deps) == len(item[\"deps\"])\n                    for dep in original_data_inserted.question.deps:\n                        matching_cache_entry = next(\n                                (dep_dict for dep_dict in item[\"deps\"] if dep.name == dep_dict[\"name\"]),\n                                None\n                        )\n                        assert matching_cache_entry is not None\n                        assert matching_cache_entry[\"data\"] == dep.data\n                        assert matching_cache_entry[\"dep_type\"] == dep.dep_type\n\n                for answer in original_data_inserted.answers:\n                    matching_cache_entry = next((answer_dict for answer_dict in item[\"answers\"] if answer.answer == answer_dict[\"answer\"]), None)\n                    assert matching_cache_entry is not None\n                    assert matching_cache_entry[\"answer_type\"] == answer.answer_type\n\n    def test_mark_deleted(self):\n        item_to_insert = self._random_cachedata_without_dependencies(session_id = \"1\")\n        persisted_id = self.dynamo_cache_storage.batch_insert([item_to_insert])[0]\n\n        # now mark it as deleted\n        self.dynamo_cache_storage.mark_deleted([persisted_id])\n\n        # it should have been soft deleted. Boto3 API shouldn't even return an \"Item\" obj in the response if its deleted\n        table = self._dynamo_resource().Table(\"gptcache_questions\")\n        resp = table.get_item(\n            Key={\"pk\": f\"questions#{persisted_id}\", \"id\": f\"questions#{persisted_id}\"},\n        )\n        assert resp[\"Item\"][\"deleted\"].startswith(\"True_\")\n\n    def test_clear_deleted_data(self):\n        # first let's insert some data, mark them as deleted\n        items_to_insert = [\n            self._random_cachedata_without_dependencies(session_id = \"1\"),\n            self._random_cachedata_without_dependencies(),\n            self._random_cachedata_without_dependencies(),\n        ]\n        persisted_ids = self.dynamo_cache_storage.batch_insert(items_to_insert)\n\n        # only delete the first 2 (just to ensure we can later assert the method in test doesn't actually \n        # delete ALL data from the table)\n        self.dynamo_cache_storage.mark_deleted(persisted_ids[:2])\n\n        # now clear the deleted data. This should remove it completely from the table (aka. hard delete)\n        self.dynamo_cache_storage.clear_deleted_data()\n\n        # now query the table and make sure the first 2 items are gone, but the last one is still there\n        table = self._dynamo_resource().Table(\"gptcache_questions\")\n        resp = table.scan(FilterExpression = DynamoAttr(\"id\").begins_with(\"questions#\"))\n\n        assert len(resp[\"Items\"]) == 1\n        assert int(resp[\"Items\"][0][\"id\"].replace(\"questions#\", \"\")) == persisted_ids[2]\n\n    def test_get_ids(self):\n        # first let's insert some data, mark them as deleted\n        items_to_insert = [\n            self._random_cachedata_without_dependencies(session_id = \"1\"),\n            self._random_cachedata_without_dependencies(),\n            self._random_cachedata_without_dependencies(),\n        ]\n        persisted_ids = self.dynamo_cache_storage.batch_insert(items_to_insert)\n\n        # only delete the first 2 (just to ensure we can later assert the method in test doesn't actually \n        # delete ALL data from the table)\n        self.dynamo_cache_storage.mark_deleted(persisted_ids[:2])\n\n        # by default, the get_ids method should return only deleted ids. all ids, including deleted ones\n        deleted_ids = self.dynamo_cache_storage.get_ids()\n        assert sorted(deleted_ids) == sorted(persisted_ids[:2])\n\n        # now if we pass in deleted = True, it should, again, only return the deleted ids\n        deleted_ids = self.dynamo_cache_storage.get_ids(deleted = True)\n        assert sorted(deleted_ids) == sorted(persisted_ids[:2])\n\n        # now if we pass in deleted = False, it should return the undeleted items \n        undeleted_ids = self.dynamo_cache_storage.get_ids(deleted = False)\n        assert sorted(undeleted_ids) == sorted([persisted_ids[2]])\n\n\n    def test_count(self):\n        # first let's insert some data, mark them as deleted\n        items_to_insert = [\n            self._random_cachedata_without_dependencies(session_id = \"1\"),\n            self._random_cachedata_without_dependencies(session_id = \"1\"),\n            self._random_cachedata_without_dependencies(),\n        ]\n        persisted_ids = self.dynamo_cache_storage.batch_insert(items_to_insert)\n\n        # delete one of the items\n        self.dynamo_cache_storage.mark_deleted([persisted_ids[0]])\n\n        # by default, it retuns only the undeleted ids\n        assert self.dynamo_cache_storage.count() == 2\n\n        # now if we pass in state = 0, it should only return the undeleted ids\n        # Doing the opposite will return only deleted ids.\n        assert self.dynamo_cache_storage.count(state = 0) == 2\n        assert self.dynamo_cache_storage.count(state = -1) == 1\n\n        assert self.dynamo_cache_storage.count(is_all = True) == 3\n\n    def test_add_session(self):\n        item_to_insert = self._random_cachedata_with_dependencies()\n        persisted_id = self.dynamo_cache_storage.batch_insert([item_to_insert])[0]\n\n        # now add a question to some sessions \n        session_id1 = str(uuid4())\n        session_id2 = str(uuid4())\n        self.dynamo_cache_storage.add_session(persisted_id, session_id1, item_to_insert.question.content)\n        self.dynamo_cache_storage.add_session(persisted_id, session_id2, item_to_insert.question.content)\n\n        # now query the table and make sure the sessions are there\n        table = self._dynamo_resource().Table(\"gptcache_questions\")\n        session1_questions = table.query(\n            IndexName = \"gsi_items_by_type\",\n            KeyConditionExpression = DynamoKey(\"id\").eq(f\"sessions#{session_id1}\")\n        )[\"Items\"]\n        session2_questions = table.query(\n            IndexName = \"gsi_items_by_type\",\n            KeyConditionExpression = (DynamoKey(\"id\").eq(f\"sessions#{session_id2}\"))\n        )[\"Items\"]\n\n        assert len(session1_questions) == 1\n        assert session1_questions[0][\"question\"] == item_to_insert.question.content\n        assert int(session1_questions[0][\"pk\"].replace(\"questions#\", \"\")) == persisted_id\n\n        assert len(session2_questions) == 1\n        assert session2_questions[0][\"question\"] == item_to_insert.question.content\n        assert int(session2_questions[0][\"pk\"].replace(\"questions#\", \"\")) == persisted_id\n\n    def test_list_sessions(self):\n        items_to_insert = [\n            self._random_cachedata_with_dependencies(),\n            self._random_cachedata_with_dependencies(),\n        ]\n        persisted_ids = self.dynamo_cache_storage.batch_insert(items_to_insert)\n\n        # now add a question to some sessions \n        session_id1 = str(uuid4())\n        session_id2 = str(uuid4())\n        session_id3 = str(uuid4())\n        self.dynamo_cache_storage.add_session(persisted_ids[0], session_id1, items_to_insert[0].question.content)\n        self.dynamo_cache_storage.add_session(persisted_ids[0], session_id2, items_to_insert[0].question.content)\n        self.dynamo_cache_storage.add_session(persisted_ids[1], session_id3, items_to_insert[1].question.content)\n\n        ids_without_prefix = lambda ids: [id_with_prefix.replace(\"sessions#\", \"\") for id_with_prefix in ids]\n\n        # now we should be able to see those sessions\n        session_ids_with_prefix = self.dynamo_cache_storage.list_sessions()\n        assert sorted(ids_without_prefix(session_ids_with_prefix)) == sorted([session_id1, session_id2, session_id3])\n\n        # now filter by one of the session ids\n        session_ids_with_prefix = self.dynamo_cache_storage.list_sessions(session_id = session_id1)\n        assert ids_without_prefix(session_ids_with_prefix) == [session_id1]\n\n        # now filter by the question id\n        session_ids_with_prefix = self.dynamo_cache_storage.list_sessions(key = persisted_ids[1])\n        assert sorted(ids_without_prefix(session_ids_with_prefix)) == sorted([session_id3])\n\n        # now filter by both\n        session_ids_with_prefix = self.dynamo_cache_storage.list_sessions(session_id = session_id2, key = persisted_ids[0])\n        assert ids_without_prefix(session_ids_with_prefix) == [session_id2]\n\n    def test_delete_session(self):\n        session_id1 = str(uuid4())\n        session_id2 = str(uuid4())\n        items_to_insert = [\n            self._random_cachedata_with_dependencies(session_id = session_id1),\n            self._random_cachedata_with_dependencies(session_id = session_id1),\n            self._random_cachedata_with_dependencies(session_id = session_id2),\n            self._random_cachedata_with_dependencies(),\n        ]\n        persisted_ids = self.dynamo_cache_storage.batch_insert(items_to_insert)\n\n        # now delete the session\n        self.dynamo_cache_storage.delete_session([session_id1])\n\n        # There shouldn't be a session entry for session_id1 anymore but the other sessions should still exist.\n        session_ids_with_prefix = self.dynamo_cache_storage.list_sessions()\n        assert session_ids_with_prefix == [f\"sessions#{session_id2}\"]\n\n\n    def test_get_data_by_id(self):\n        time_before_insertion = datetime.utcnow()\n\n        item_to_insert = self._random_cachedata_with_dependencies(session_id = \"1\")\n        persisted_id = self.dynamo_cache_storage.batch_insert([item_to_insert])[0]\n\n        entry = self.dynamo_cache_storage.get_data_by_id(persisted_id)\n        assert entry.question.content == item_to_insert.question.content\n        assert entry.session_id == [item_to_insert.session_id]\n        assert (entry.embedding_data == item_to_insert.embedding_data).all()\n        assert entry.create_on > time_before_insertion\n\n        for answer in entry.answers:\n            matching_answer = next(\n                (answer_to_insert for answer_to_insert in item_to_insert.answers if answer.answer == answer_to_insert.answer and answer.answer_type == answer_to_insert.answer_type),\n                None\n            )\n            assert matching_answer is not None\n\n        # The first time you access it, the last_access should be None (since we're accessing it for the first time)\n        assert entry.last_access is None\n\n        # ensure that each time we access it, the last_access value is updated\n        entry_accessed_again = self.dynamo_cache_storage.get_data_by_id(persisted_id)\n        entry_accessed_again.last_access > time_before_insertion\n\n        entry_accessed_thrice = self.dynamo_cache_storage.get_data_by_id(persisted_id)\n        entry_accessed_thrice.last_access > entry_accessed_again.last_access\n\n        # next test with a random id that doesn't exist. It should return None\n        entry = self.dynamo_cache_storage.get_data_by_id(str(uuid4()))\n        assert entry is None\n\n        # now soft delete the existing row in dynamo and make sure it's not returned\n        table = self._dynamo_resource().Table(\"gptcache_questions\")\n        table.update_item(\n            Key = {\n                \"pk\": f\"questions#{persisted_id}\",\n                \"id\": f\"questions#{persisted_id}\",\n            },\n            UpdateExpression = \"SET deleted = :deleted\",\n            ExpressionAttributeValues = {\n                \":deleted\": \"True_1\"\n            }\n        )\n\n        entry = self.dynamo_cache_storage.get_data_by_id(persisted_id)\n        assert entry is None\n\n    def test_report_cache(self):\n        item_to_insert = {\n            \"user_question\": \"how many people in this picture?\",\n            \"cache_question\": \"how many people are in this picture?\",\n            \"cache_question_id\": f\"questions#{str(uuid4())}\",\n            \"cache_answer\": \"5\",\n            \"similarity_value\": 0.9,\n            \"cache_delta_time\": 0.5,\n        }\n\n        self.dynamo_cache_storage.report_cache(\n            user_question = item_to_insert[\"user_question\"],\n            cache_question = item_to_insert[\"cache_question\"],\n            cache_question_id = item_to_insert[\"cache_question_id\"],\n            cache_answer = item_to_insert[\"cache_answer\"],\n            similarity_value = item_to_insert[\"similarity_value\"],\n            cache_delta_time = item_to_insert[\"cache_delta_time\"],\n        )\n\n        # now manually query via boto3 to make sure the data is there\n        table = self._dynamo_resource().Table(\"gptcache_reports\")\n        items = table.scan()['Items']\n\n        # Since there are session_ids for each item except one, there should be a corresponding session entries in this\n        # table. So there should be (3 regular question rows + 2 session rows) = 5 items in the table.\n        assert len(items) == 1\n\n        assert items[0][\"user_question\"] == item_to_insert[\"user_question\"]\n        assert items[0][\"cache_question\"] == item_to_insert[\"cache_question\"]\n        assert items[0][\"cache_question_id\"] == item_to_insert[\"cache_question_id\"]\n        assert items[0][\"cache_answer\"] == item_to_insert[\"cache_answer\"]\n        assert items[0][\"similarity\"] == Decimal(str(item_to_insert[\"similarity_value\"]))\n        assert items[0][\"cache_delta_time\"] == Decimal(str(item_to_insert[\"cache_delta_time\"]))\n\n    def _random_cachedata_without_dependencies(self, session_id = None):\n        question_id = uuid4()\n        return CacheData(\n            question = f\"question_{question_id}\",\n            answers = [f\"answer1_for_{question_id}\", f\"answer2_for_{question_id}\"],\n            embedding_data = np.random.rand(8).astype(np.float32),\n            session_id = session_id,\n        )\n\n    def _random_cachedata_with_dependencies(self, session_id = None):\n        question_id = uuid4()\n        return CacheData(\n            question = Question(\n                content = f\"question_{question_id}\",\n                deps = [\n                    QuestionDep(name = \"text\", data = \"how many people in this picture\", dep_type = DataType.STR),\n                    QuestionDep(name = \"image\", data = \"object_name\", dep_type = DataType.IMAGE_BASE64),\n                ],\n            ),\n            answers = [f\"answer1_for_{question_id}\"],\n            embedding_data = np.random.rand(8).astype(np.float32),\n            session_id = session_id,\n        )\n\n    def _dynamo_resource(self):\n        return awsresource(\n            \"dynamodb\",\n            endpoint_url = self._dynamodb_local_endpoint_url,\n            aws_access_key_id = \"test\",\n            aws_secret_access_key = \"test\",\n            region_name = self._region_name,\n        )\n\n"
  },
  {
    "path": "tests/unit_tests/manager/test_eviction.py",
    "content": "import os\nimport unittest\nimport numpy as np\nfrom pathlib import Path\nfrom tempfile import TemporaryDirectory\n\nfrom gptcache.manager import get_data_manager, CacheBase, VectorBase\n\nDIM = 8\n\n\ndef mock_embeddings():\n    return np.random.random((DIM,)).astype(\"float32\")\n\n\nclass TestEviction(unittest.TestCase):\n    \"\"\"Test data eviction\"\"\"\n\n    def test_eviction_lru(self):\n        with TemporaryDirectory(dir='./') as root:\n            db_path = Path(root) / 'sqlite.db'\n            cache_base = CacheBase(\"sqlite\", sql_url=\"sqlite:///\" + str(db_path))\n            vector_base = VectorBase(\"faiss\", dimension=DIM)\n            data_manager = get_data_manager(\n                cache_base, vector_base, max_size=10, clean_size=2, eviction=\"LRU\"\n            )\n            for i in range(19):\n                question = f\"foo{i}\"\n                answer = f\"receiver the foo {i}\"\n                data_manager.save(question, answer, mock_embeddings())\n            cache_count = data_manager.s.count()\n            self.assertEqual(cache_count, 9)\n            ids = data_manager.s.get_ids(deleted=True)\n            self.assertEqual(len(ids), 0)\n\n    def test_eviction_fifo(self):\n        with TemporaryDirectory(dir='./') as root:\n            db_path = Path(root) / 'sqlite.db'\n            cache_base = CacheBase(\"sqlite\", sql_url=\"sqlite:///\" + str(db_path))\n            vector_base = VectorBase(\"faiss\", dimension=DIM)\n            data_manager = get_data_manager(\n                cache_base, vector_base, max_size=10, clean_size=2, eviction=\"FIFO\"\n            )\n            for i in range(18):\n                question = f\"foo{i}\"\n                answer = f\"receiver the foo {i}\"\n                data_manager.save(question, answer, mock_embeddings())\n\n            cache_count = data_manager.s.count()\n            self.assertEqual(cache_count, 10)\n\n    # def test_eviction_milvus(self):\n    #     cache_base = CacheBase('sqlite', sql_url='sqlite:///./gptcache2.db')\n    #     vector_base = VectorBase('milvus', dimension=DIM, host='172.16.70.4', collection_name='gptcache2')\n    #     data_manager = get_data_manager(cache_base, vector_base, max_size=10, clean_size=2, eviction='LRU')\n    #     for i in range(10):\n    #         question = f'foo{i}'\n    #         answer = f'receiver the foo {i}'\n    #         data_manager.save(question, answer, mock_embeddings())\n    #\n    #     cache_count = data_manager.s.count(is_all=True)\n    #     self.assertEqual(cache_count, 10)\n"
  },
  {
    "path": "tests/unit_tests/manager/test_factory.py",
    "content": "import unittest\nfrom unittest import mock\nimport os\nimport numpy as np\nfrom pathlib import Path\nfrom tempfile import TemporaryDirectory\n\nfrom gptcache.manager.factory import get_data_manager, manager_factory\nfrom gptcache.manager import VectorBase, CacheBase, ObjectBase\nfrom gptcache.manager.scalar_data.base import Answer, DataType\n\n\nclass TestFactory(unittest.TestCase):\n    def test_normal(self):\n        m1 = get_data_manager(\"sqlite\", \"chromadb\", \"local\")\n        self.assertIsNotNone(m1)\n\n        m2 = get_data_manager(\"sqlite\", \"chromadb\")\n        self.assertIsNotNone(m2)\n\n        m3 = manager_factory(\"Map\")\n        self.assertIsNotNone(m3)\n\n        m4 = manager_factory(\"sqlite,hnswlib\", vector_params={\"dimension\": 5})\n        self.assertIsNotNone(m4)\n\n        m5 = manager_factory(\"sqlite,hnswlib,local\", vector_params={\"dimension\": 5})\n        self.assertIsNotNone(m5)\n\n        with self.assertRaises(RuntimeError):\n            manager_factory(\"sqlite\")\n\n        with mock.patch('gptcache.manager.vector_data.milvus.Milvus.__init__') as mock_init:\n            mock_init.return_value = None\n            self.assertIsNotNone(manager_factory(\"sqlite,milvus\", vector_params={\"dimension\": 5, \"port\": \"9999\"}))\n\n    def test_manager(self):\n        with TemporaryDirectory(dir=\"./\") as root:\n            index_path = Path(root) / \"faiss.bin\"\n            v = VectorBase(\"faiss\", dimension=5, index_path=str(index_path))\n            \n            sql_url = \"sqlite:///\" + str(Path(root) / \"sqlite.db\")\n            s = CacheBase(\"sqlite\", sql_url=sql_url)\n\n            o = ObjectBase('local', path=str(root))\n            m = get_data_manager(s, v, o)\n            m.save(\"test_question\",\n                   Answer(b\"my test data\",\n                          DataType.IMAGE_BASE64),\n                   np.random.rand(5)\n            )\n            res = m.get_scalar_data(m.search(np.random.rand(5))[0])\n            self.assertEqual(res.question, \"test_question\")\n            self.assertEqual(res.answers[0].answer, b\"my test data\")\n            self.assertEqual(res.answers[0].answer_type, DataType.IMAGE_BASE64)\n\n            # test multi answer\n            emb = np.random.rand(5)\n            m.save(\"test_question2\",\n                   [Answer(b\"question2_BASE64\",\n                           DataType.IMAGE_BASE64),\n                    Answer(\"question2_STR\",\n                           DataType.STR)\n                   ],\n                   emb\n            )\n\n            res = m.get_scalar_data(m.search(emb)[0])\n            self.assertEqual(res.question, \"test_question2\")\n            self.assertEqual(res.answers[0].answer, b\"question2_BASE64\")\n            self.assertEqual(res.answers[0].answer_type, DataType.IMAGE_BASE64)\n            self.assertEqual(res.answers[1].answer, \"question2_STR\")\n            self.assertEqual(res.answers[1].answer_type, DataType.STR)\n\n    def test_manager_factory(self):\n        with TemporaryDirectory(dir=\"./\") as root:\n            data_dir = os.path.join(root, 'dir_not_exist')\n            m = manager_factory('sqlite,faiss,local', data_dir=data_dir, vector_params={\"dimension\": 5})\n            m.save(\"test_question\",\n                   Answer(b\"my test data\",\n                          DataType.IMAGE_BASE64),\n                   np.random.rand(5)\n            )\n            res = m.get_scalar_data(m.search(np.random.rand(5))[0])\n            self.assertEqual(res.question, \"test_question\")\n            self.assertEqual(res.answers[0].answer, b\"my test data\")\n            self.assertEqual(res.answers[0].answer_type, DataType.IMAGE_BASE64)\n\n            # test multi answer\n            emb = np.random.rand(5)\n            m.save(\"test_question2\",\n                   [Answer(b\"question2_BASE64\",\n                           DataType.IMAGE_BASE64),\n                    Answer(\"question2_STR\",\n                           DataType.STR)\n                   ],\n                   emb\n            )\n\n            res = m.get_scalar_data(m.search(emb)[0])\n            self.assertEqual(res.question, \"test_question2\")\n            self.assertEqual(res.answers[0].answer, b\"question2_BASE64\")\n            self.assertEqual(res.answers[0].answer_type, DataType.IMAGE_BASE64)\n            self.assertEqual(res.answers[1].answer, \"question2_STR\")\n            self.assertEqual(res.answers[1].answer_type, DataType.STR)\n\n    def test_multi_level_directory(self):\n        with TemporaryDirectory(dir=\"./\") as root:\n            data_dir = os.path.join(root, 'a/b')\n            manager_factory('sqlite,faiss,local', data_dir=data_dir, vector_params={\"dimension\": 5})\n"
  },
  {
    "path": "tests/unit_tests/manager/test_local_index.py",
    "content": "import unittest\nfrom functools import partial\nfrom pathlib import Path\nfrom tempfile import TemporaryDirectory\n\nimport numpy as np\n\nfrom gptcache.manager.vector_data import VectorBase\nfrom gptcache.manager.vector_data.base import VectorData\nfrom gptcache.manager.vector_data.docarray_index import DocArrayIndex\nfrom gptcache.manager.vector_data.faiss import Faiss\nfrom gptcache.manager.vector_data.hnswlib_store import Hnswlib\n\nDIM = 512\nMAX_ELEMENTS = 10000\nSIZE = 1000\nTOP_K = 10\n\n\nclass TestLocalIndex(unittest.TestCase):\n    def test_faiss(self):\n        cls = partial(Faiss, dimension=DIM)\n        self._internal_test_normal(cls)\n        self._internal_test_with_rebuild(cls)\n        self._internal_test_reload(cls)\n        self._internal_test_delete(cls)\n\n        with TemporaryDirectory(dir='./') as root:\n            index_path = str((Path(root) / 'index.bin').absolute())\n            self._internal_test_create_from_vector_base(\n                name='faiss', top_k=3, dimension=DIM, index_path=index_path\n            )\n\n    def test_hnswlib(self):\n        cls = partial(Hnswlib, max_elements=MAX_ELEMENTS, dimension=DIM)\n        self._internal_test_normal(cls)\n        self._internal_test_with_rebuild(cls)\n        self._internal_test_reload(cls)\n        self._internal_test_delete(cls)\n\n        with TemporaryDirectory(dir='./') as root:\n            index_path = str((Path(root) / 'index.bin').absolute())\n            self._internal_test_create_from_vector_base(\n                name='hnswlib',\n                top_k=3,\n                dimension=DIM,\n                index_path=index_path,\n                max_elements=MAX_ELEMENTS,\n            )\n\n    def test_docarray(self):\n        self._internal_test_normal(DocArrayIndex)\n        self._internal_test_with_rebuild(DocArrayIndex)\n        self._internal_test_reload(DocArrayIndex)\n        self._internal_test_delete(DocArrayIndex)\n\n        with TemporaryDirectory(dir='./') as root:\n            index_path = str((Path(root) / 'index.bin').absolute())\n            self._internal_test_create_from_vector_base(\n                name='docarray', top_k=3, index_path=index_path\n            )\n\n    def _internal_test_normal(self, vector_class):\n        with TemporaryDirectory(dir='./') as root:\n            index_path = str((Path(root) / 'index.bin').absolute())\n            index = vector_class(index_file_path=index_path, top_k=TOP_K)\n            data = np.random.randn(SIZE, DIM).astype(np.float32)\n            index.mul_add(\n                [VectorData(id=i, data=v) for v, i in zip(data, list(range(SIZE)))]\n            )\n            self.assertEqual(len(index.search(data[0])), TOP_K)\n            index.mul_add([VectorData(id=SIZE, data=data[0])])\n            ret = index.search(data[0])\n            self.assertIn(ret[0][1], [0, SIZE])\n            self.assertIn(ret[1][1], [0, SIZE])\n\n    def _internal_test_with_rebuild(self, vector_class):\n        with TemporaryDirectory(dir='./') as root:\n            index_path = str((Path(root) / 'index.bin').absolute())\n            index = vector_class(index_file_path=index_path, top_k=TOP_K)\n            data = np.random.randn(SIZE, DIM).astype(np.float32)\n            index.mul_add(\n                [VectorData(id=i, data=v) for v, i in zip(data, list(range(SIZE)))]\n            )\n            index.delete([0, 1, 2])\n            index.rebuild(list(range(3, SIZE)))\n            self.assertNotEqual(index.search(data[0])[0], 0)\n\n    def _internal_test_reload(self, vector_class):\n        with TemporaryDirectory(dir='./') as root:\n            index_path = str((Path(root) / 'index.bin').absolute())\n            index = vector_class(index_file_path=index_path, top_k=TOP_K)\n            data = np.random.randn(SIZE, DIM).astype(np.float32)\n            index.mul_add(\n                [VectorData(id=i, data=v) for v, i in zip(data, list(range(SIZE)))]\n            )\n            index.close()\n\n            new_index = vector_class(\n                index_file_path=index_path, top_k=TOP_K\n            )\n            self.assertEqual(len(new_index.search(data[0])), TOP_K)\n            new_index.mul_add([VectorData(id=SIZE, data=data[0])])\n            ret = new_index.search(data[0])\n            self.assertIn(ret[0][1], [0, SIZE])\n            self.assertIn(ret[1][1], [0, SIZE])\n\n    def _internal_test_delete(self, vector_class):\n        with TemporaryDirectory(dir='./') as root:\n            index_path = str((Path(root) / 'index.bin').absolute())\n            index = vector_class(index_file_path=index_path, top_k=TOP_K)\n            data = np.random.randn(SIZE, DIM).astype(np.float32)\n            index.mul_add(\n                [VectorData(id=i, data=v) for v, i in zip(data, list(range(SIZE)))]\n            )\n            self.assertEqual(len(index.search(data[0])), TOP_K)\n            index.delete([0, 1, 2, 3])\n            self.assertNotEqual(index.search(data[0])[0][1], 0)\n            if hasattr(index, 'count'):\n                self.assertEqual(index.count(), 996)\n\n    def _internal_test_create_from_vector_base(self, **kwargs):\n        index = VectorBase(**kwargs)\n        data = np.random.randn(100, DIM).astype(np.float32)\n        index.mul_add([VectorData(id=i, data=v) for v, i in zip(data, range(100))])\n        self.assertEqual(index.search(data[0])[0][1], 0)\n"
  },
  {
    "path": "tests/unit_tests/manager/test_map.py",
    "content": "import os\n\nfrom gptcache.manager.data_manager import MapDataManager\n\ndata_map_path = \"data_map.txt\"\n\n\ndef test_map():\n    if os.path.isfile(data_map_path):\n        os.remove(data_map_path)\n\n    data_manager = MapDataManager(data_map_path, 3)\n    a = \"a\"\n    for i in range(4):\n        data_manager.save(chr(ord(a) + i), str(i), chr(ord(a) + i))\n    assert len(data_manager.search(\"a\")) == 0\n    question, answer, emb, _ = data_manager.search(\"b\")[0]\n    assert question == \"b\", question\n    assert answer == \"1\", answer\n    assert emb == \"b\", emb\n    data_manager.close()\n"
  },
  {
    "path": "tests/unit_tests/manager/test_milvusdb.py",
    "content": "import unittest\nimport numpy as np\nfrom tempfile import TemporaryDirectory\n\nfrom gptcache.manager.vector_data import VectorBase\nfrom gptcache.manager.vector_data.base import VectorData\n\n\nclass TestMilvusDB(unittest.TestCase):\n    def test_normal(self):\n        with TemporaryDirectory(dir=\"./\") as root:\n            size = 1000\n            dim = 512\n            top_k = 10\n\n            db = VectorBase(\n                \"milvus\",\n                top_k=top_k,\n                dimension=dim,\n                port=\"10086\",\n                local_mode=True,\n                local_data=str(root),\n                index_params={\n                    \"metric_type\": \"L2\",\n                    \"index_type\": \"IVF_FLAT\",\n                    \"params\": {\"nlist\": 128},\n                },\n            )\n            data = np.random.randn(size, dim).astype(np.float32)\n            db.mul_add([VectorData(id=i, data=v) for v, i in zip(data, range(size))])\n            self.assertEqual(len(db.search(data[0])), top_k)\n            db.mul_add([VectorData(id=size, data=data[0])])\n            ret = db.search(data[0])\n            self.assertIn(ret[0][1], [0, size])\n            self.assertIn(ret[1][1], [0, size])\n            db.delete([0, 1, 2, 3, 4, 5, size])\n            ret = db.search(data[0])\n            self.assertNotIn(ret[0][1], [0, size])\n            db.rebuild()\n            db.close()\n"
  },
  {
    "path": "tests/unit_tests/manager/test_mongo.py",
    "content": "import time\n\nimport numpy as np\n\nfrom gptcache.manager.scalar_data.base import CacheData, Question\nfrom gptcache.manager.scalar_data.mongo import MongoStorage\nfrom gptcache.utils import import_mongodb\n\nimport_mongodb()\nfrom mongoengine import connect, disconnect\n\n\ndef test_mongo():\n    test_dbname = \"gptcache_test\"\n    _clear_test_db(test_dbname)\n    _inner_test_normal(test_dbname)\n\n    _clear_test_db(test_dbname)\n    _inner_test_with_deps(test_dbname)\n\n    _clear_test_db(test_dbname)\n    _test_create_on(dbname=test_dbname)\n\n    _clear_test_db(test_dbname)\n    _test_session(dbname=test_dbname)\n\n    _clear_test_db(test_dbname)\n\n\ndef _clear_test_db(dbname):\n    con = connect(db=dbname)\n    con.drop_database(dbname)\n    disconnect()\n\n\ndef _inner_test_normal(dbname: str):\n    mongo_storage = MongoStorage(dbname=dbname)\n    data = []\n    for i in range(1, 10):\n        data.append(\n            CacheData(\n                \"question_\" + str(i),\n                [\"answer_\" + str(i)] * i,\n                np.random.rand(5)\n            )\n        )\n    mongo_storage.batch_insert(data)\n\n    for i in range(1, 10):\n        data = mongo_storage.get_data_by_id(i)\n        assert data.question == f\"question_{i}\"\n        assert data.answers[0].answer == f\"answer_{i}\"\n\n    q_id = mongo_storage.batch_insert(\n        [CacheData(\"question_single\", \"answer_single\", np.random.rand(5))]\n    )[0]\n    data = mongo_storage.get_data_by_id(q_id)\n    assert data.question == \"question_single\"\n    assert data.answers[0].answer == \"answer_single\"\n\n    assert len(mongo_storage.get_ids(True)) == 0\n    mongo_storage.mark_deleted([1, 2, 3])\n    assert mongo_storage.get_ids(True), [1, 2 == 3]\n    assert mongo_storage.count(is_all=True) == 10\n    assert mongo_storage.count() == 7\n    assert mongo_storage.count_answers() == 46\n    mongo_storage.clear_deleted_data()\n    assert mongo_storage.count_answers() == 40\n    assert mongo_storage.count(is_all=True) == 7\n\n\ndef _inner_test_with_deps(dbname: str):\n    mongo_storage = MongoStorage(dbname=dbname)\n    data_id = mongo_storage.batch_insert(\n        [\n            CacheData(\n                Question.from_dict(\n                    {\n                        \"content\": \"test_question\",\n                        \"deps\": [\n                            {\n                                \"name\": \"text\",\n                                \"data\": \"how many people in this picture\",\n                                \"dep_type\": 0,\n                            },\n                            {\n                                \"name\": \"image\",\n                                \"data\": \"object_name\",\n                                \"dep_type\": 1,\n                            },\n                        ],\n                    }\n                ),\n                \"test_answer\",\n                np.random.rand(5),\n            )\n        ]\n    )[0]\n\n    ret = mongo_storage.get_data_by_id(data_id)\n    assert ret.question.content == \"test_question\"\n    assert ret.question.deps[0].name == \"text\"\n    assert ret.question.deps[0].data == \"how many people in this picture\"\n    assert ret.question.deps[0].dep_type == 0\n    assert ret.question.deps[1].name == \"image\"\n    assert ret.question.deps[1].data == \"object_name\"\n    assert ret.question.deps[1].dep_type == 1\n\n\ndef _test_create_on(dbname):\n    mongo_storage = MongoStorage(dbname=dbname)\n    mongo_storage.create()\n    data = []\n    for i in range(1, 10):\n        data.append(\n            CacheData(\n                \"question_\" + str(i),\n                [\"answer_\" + str(i)] * i,\n                np.random.rand(5),\n            )\n        )\n    mongo_storage.batch_insert(data)\n    data = mongo_storage.get_data_by_id(1)\n    create_on1 = data.create_on\n    last_access1 = data.last_access\n\n    time.sleep(1)\n\n    data = mongo_storage.get_data_by_id(1)\n    create_on2 = data.create_on\n    last_access2 = data.last_access\n\n    assert create_on1 == create_on2\n    assert last_access1 < last_access2\n\n\ndef _test_session(dbname):\n    mongo_storage = MongoStorage(dbname=dbname)\n    data = []\n    for i in range(1, 11):\n        data.append(\n            CacheData(\n                \"question_\" + str(i),\n                [\"answer_\" + str(i)] * i,\n                np.random.rand(5),\n                session_id=str(1 if i <= 5 else 0)\n            )\n        )\n    mongo_storage.batch_insert(data)\n    assert len(mongo_storage.list_sessions()) == 10\n    assert len(mongo_storage.list_sessions(session_id=\"0\")) == 5\n    assert len(mongo_storage.list_sessions(session_id=\"1\")) == 5\n    assert len(mongo_storage.list_sessions(session_id=\"1\", key=1)) == 1\n\n    mongo_storage.delete_session([1, 2, 3])\n    assert len(mongo_storage.list_sessions()) == 7\n"
  },
  {
    "path": "tests/unit_tests/manager/test_object_storage.py",
    "content": "import unittest\nimport mock\nimport os\nimport requests\nfrom pathlib import Path\nimport numpy as np\nfrom tempfile import TemporaryDirectory\n\nfrom gptcache.manager.object_data.local_storage import LocalObjectStorage\nfrom gptcache.manager.object_data.s3_storage import S3Storage\nfrom gptcache.manager import ObjectBase\n\n\nclass TestLocal(unittest.TestCase):\n    def test_normal(self):\n        with TemporaryDirectory(dir=\"./\") as root:\n            o = LocalObjectStorage(root)\n            data = b'My test'\n            fp = o.put(data)\n            self.assertTrue(Path(fp).is_file())\n            self.assertEqual(o.get(fp), data)\n            self.assertEqual(o.get_access_link(fp), fp)\n            o.delete([fp])\n            self.assertFalse(Path(fp).is_file())\n\n\nclass TestS3(unittest.TestCase):\n    def test_normal(self):\n        access_key = os.environ.get('AWS_ACCESS_KEY_ID')\n        secret_key = os.environ.get('AWS_SECRET_ACCESS_KEY')\n        bucket = os.environ.get('BUCKET')\n        endpoint = os.environ.get('ENDPOINT')        \n        if access_key is None or secret_key is None or bucket is None:\n            return\n        o = S3Storage(bucket, 'gptcache', access_key, secret_key, endpoint)\n        data = b'My test'\n        fp = o.put(data)\n        self.assertEqual(o.get(fp), data)\n        link = o.get_access_link(fp)\n        self.assertEqual(requests.get(link, verify=False).content, data)\n        o.delete([fp])\n        self.assertIsNone(o.get(fp))\n\nclass TestBase(unittest.TestCase):\n    def test_local(self):\n        with TemporaryDirectory(dir=\"./\") as root:\n            o = ObjectBase(\"local\", path = root)\n            data = b'My test'\n            fp = o.put(data)\n            self.assertTrue(Path(fp).is_file())\n            self.assertEqual(o.get(fp), data)\n            self.assertEqual(o.get_access_link(fp), fp)\n            o.delete([fp])\n            self.assertFalse(Path(fp).is_file())\n\n    def test_s3(self):\n        with mock.patch(\"boto3.Session\") as mock_session:\n            o = ObjectBase(\"s3\", bucket=\"\", path_prefix=\"\",\n                           access_key=\"\", secret_key=\"\")\n            data = b\"My test\"\n            fp = o.put(data)\n            o.get(fp)\n            o.get_access_link(fp)\n"
  },
  {
    "path": "tests/unit_tests/manager/test_pgvector.py",
    "content": "import os\nimport unittest\n\nimport numpy as np\n\nfrom gptcache.manager.vector_data import VectorBase\nfrom gptcache.manager.vector_data.base import VectorData\n\n\nclass TestPgvector(unittest.TestCase):\n    def test_normal(self):\n        size = 1000\n        dim = 10\n        top_k = 10\n\n        url = os.getenv(\"POSTGRES_URL\", \"postgresql://postgres:postgres@localhost:5432/postgres\")\n\n        db = VectorBase(\n            \"pgvector\",\n            top_k=top_k,\n            dimension=dim,\n            url=url,\n            index_params={\n                \"index_type\": \"L2\",\n                \"params\": {\"lists\": 100, \"probes\": 10},\n            },\n        )\n        db.delete([i for i in range(size)])\n        data = np.random.randn(size, dim).astype(np.float32)\n        db.mul_add([VectorData(id=i, data=v) for v, i in zip(data, range(size))])\n        self.assertEqual(len(db.search(data[0])), top_k)\n        db.mul_add([VectorData(id=size, data=data[0])])\n        ret = db.search(data[0])\n        print(ret)\n        self.assertIn(ret[0][1], [0, size])\n        self.assertIn(ret[1][1], [0, size])\n        db.delete([0, 1, 2, 3, 4, 5, size])\n        ret = db.search(data[0])\n        print(ret)\n        self.assertNotIn(ret[0][1], [0, size])\n        db.rebuild()\n        db.close()\n"
  },
  {
    "path": "tests/unit_tests/manager/test_qdrant.py",
    "content": "import os\nimport unittest\n\nimport numpy as np\n\nfrom gptcache.manager.vector_data import VectorBase\nfrom gptcache.manager.vector_data.base import VectorData\n\n\nclass TestQdrant(unittest.TestCase):\n    def test_normal(self):\n        size = 10\n        dim = 2\n        top_k = 10\n        qdrant = VectorBase(\n            \"qdrant\",\n            top_k=top_k,\n            dimension=dim,\n            location=\":memory:\"\n        )\n        data = np.random.randn(size, dim).astype(np.float32)\n        qdrant.mul_add([VectorData(id=i, data=v) for v, i in zip(data, range(size))])\n        search_result = qdrant.search(data[0], top_k)\n        self.assertEqual(len(search_result), top_k)\n        qdrant.mul_add([VectorData(id=size, data=data[0])])\n        ret = qdrant.search(data[0])\n        self.assertIn(ret[0][1], [0, size])\n        self.assertIn(ret[1][1], [0, size])\n        qdrant.delete([0, 1, 2, 3, 4, 5, size])\n        ret = qdrant.search(data[0])\n        self.assertNotIn(ret[0][1], [0, size])\n        qdrant.rebuild()\n        qdrant.close()\n"
  },
  {
    "path": "tests/unit_tests/manager/test_redis.py",
    "content": "import numpy as np\n\nfrom gptcache.embedding import Onnx\nfrom gptcache.manager import VectorBase\nfrom gptcache.manager.vector_data.base import VectorData\n\n\ndef test_redis_vector_store():\n    encoder = Onnx()\n    dim = encoder.dimension\n    vector_base = VectorBase(\"redis\", dimension=dim)\n    vector_base.mul_add([VectorData(id=i, data=np.random.rand(dim)) for i in range(10)])\n\n    search_res = vector_base.search(np.random.rand(dim))\n    print(search_res)\n    assert len(search_res) == 1\n\n    search_res = vector_base.search(np.random.rand(dim), top_k=10)\n    print(search_res)\n    assert len(search_res) == 10\n\n    vector_base.delete([i for i in range(5)])\n\n    search_res = vector_base.search(np.random.rand(dim), top_k=10)\n    print(search_res)\n    assert len(search_res) == 5\n"
  },
  {
    "path": "tests/unit_tests/manager/test_redis_cache_storage.py",
    "content": "import time\nimport unittest\n\nimport numpy as np\n\nfrom gptcache.manager.scalar_data.base import CacheData, Question\nfrom gptcache.manager.scalar_data.redis_storage import RedisCacheStorage\nfrom gptcache.utils import import_redis\n\nimport_redis()\nfrom redis_om import get_redis_connection\n\n\nclass TestRedisStorage(unittest.TestCase):\n    test_dbname = \"gptcache_test\"\n    url = \"redis://default:default@localhost:6379\"\n\n    # url = \"redis://default:default@localhost:7000\"\n\n    def setUp(cls) -> None:\n        cls._clear_test_db()\n\n    @staticmethod\n    def _clear_test_db():\n        r = get_redis_connection(url=TestRedisStorage.url)\n        r.flushall()\n        r.flushdb()\n        time.sleep(1)\n\n    def test_normal(self):\n        redis_storage = RedisCacheStorage(global_key_prefix=self.test_dbname,\n                                          url=self.url)\n        data = []\n        for i in range(1, 10):\n            data.append(\n                CacheData(\n                    \"question_\" + str(i),\n                    [\"answer_\" + str(i)] * i,\n                    np.random.rand(5).astype(np.float32)\n                )\n            )\n        ids = redis_storage.batch_insert(data)\n\n        for i, idx in enumerate(ids, start=1):\n            result = redis_storage.get_data_by_id(idx)\n            assert result.question == f\"question_{i}\"\n            assert result.answers[0].answer == f\"answer_{i}\"\n\n            assert all(np.equal(data[i - 1].embedding_data, result.embedding_data))\n\n        q_id = redis_storage.batch_insert(\n            [CacheData(\"question_single\", \"answer_single\", np.random.rand(5))]\n        )[0]\n        data = redis_storage.get_data_by_id(q_id)\n        assert data.question == \"question_single\"\n        assert data.answers[0].answer == \"answer_single\"\n        time.sleep(1)\n        assert len(redis_storage.get_ids(True)) == 0\n        redis_storage.mark_deleted(ids[:3])\n        assert redis_storage.get_ids(True) == ids[:3]\n        assert redis_storage.count(is_all=True) == 10\n        assert redis_storage.count() == 7\n        redis_storage.clear_deleted_data()\n\n        assert redis_storage.count(is_all=True) == 7\n\n    def test_with_deps(self):\n        redis_storage = RedisCacheStorage(global_key_prefix=self.test_dbname,\n                                          url=self.url,\n                                          # cluster=True\n                                          )\n        data_id = redis_storage.batch_insert(\n            [\n                CacheData(\n                    Question.from_dict(\n                        {\n                            \"content\": \"test_question\",\n                            \"deps\": [\n                                {\n                                    \"name\": \"text\",\n                                    \"data\": \"how many people in this picture\",\n                                    \"dep_type\": 0,\n                                },\n                                {\n                                    \"name\": \"image\",\n                                    \"data\": \"object_name\",\n                                    \"dep_type\": 1,\n                                },\n                            ],\n                        }\n                    ),\n                    \"test_answer\",\n                    np.random.rand(5),\n                )\n            ]\n        )[0]\n\n        ret = redis_storage.get_data_by_id(data_id)\n        assert ret.question.content == \"test_question\"\n        assert ret.question.deps[0].name == \"text\"\n        assert ret.question.deps[0].data == \"how many people in this picture\"\n        assert ret.question.deps[0].dep_type == 0\n        assert ret.question.deps[1].name == \"image\"\n        assert ret.question.deps[1].data == \"object_name\"\n        assert ret.question.deps[1].dep_type == 1\n\n    def test_create_on(self):\n        redis_storage = RedisCacheStorage(global_key_prefix=self.test_dbname,\n                                          url=self.url)\n        redis_storage.create()\n        data = []\n        for i in range(1, 10):\n            data.append(\n                CacheData(\n                    \"question_\" + str(i),\n                    [\"answer_\" + str(i)] * i,\n                    np.random.rand(5),\n                )\n            )\n        ids = redis_storage.batch_insert(data)\n        data = redis_storage.get_data_by_id(ids[0])\n        create_on1 = data.create_on\n        last_access1 = data.last_access\n\n        time.sleep(1)\n\n        data = redis_storage.get_data_by_id(ids[0])\n        create_on2 = data.create_on\n        last_access2 = data.last_access\n\n        assert create_on1 == create_on2\n        assert last_access1 < last_access2\n\n    def test_session(self):\n        redis_storage = RedisCacheStorage(global_key_prefix=self.test_dbname,\n                                          url=self.url)\n        data = []\n        for i in range(1, 11):\n            data.append(\n                CacheData(\n                    \"question_\" + str(i),\n                    [\"answer_\" + str(i)] * i,\n                    np.random.rand(5),\n                    session_id=str(1 if i <= 5 else 0)\n                )\n            )\n        ids = redis_storage.batch_insert(data)\n        assert len(redis_storage.list_sessions()) == 10\n        assert len(redis_storage.list_sessions(session_id=\"0\")) == 5\n        assert len(redis_storage.list_sessions(session_id=\"1\")) == 5\n        assert len(redis_storage.list_sessions(session_id=\"1\", key=ids[0])) == 1\n        sessions = redis_storage.list_sessions(key=ids[0])\n        assert len(sessions) == 1\n        assert sessions[0].session_id == \"1\"\n\n        redis_storage.delete_session(ids[:3])\n        assert len(redis_storage.list_sessions()) == 7\n\n    def test_cache_configuration(self):\n        redis_storage = RedisCacheStorage(global_key_prefix=self.test_dbname,\n                                          url=self.url,\n                                          maxmemory_samples=5,\n                                          maxmemory=\"4mb\",\n                                          policy=\"allkeys-lru\",\n                                          ttl=10)\n\n        memory_conf = redis_storage.con.config_get(\"maxmemory\")\n        assert memory_conf is not None\n        assert memory_conf[\"maxmemory\"] == \"4194304\"\n        policy_conf = redis_storage.con.config_get(\"maxmemory-policy\")\n        assert policy_conf is not None\n        assert policy_conf['maxmemory-policy'] == \"allkeys-lru\"\n\n        samples_conf = redis_storage.con.config_get(\"maxmemory-samples\")\n        assert samples_conf is not None\n        assert samples_conf['maxmemory-samples'] == \"5\"\n\n        ids = redis_storage.batch_insert(\n            [CacheData(\"question_1\", [\"answer_1\"] * 2, np.random.rand(5), session_id=1)])\n        ttl = redis_storage.con.ttl(redis_storage._ques.make_key(ids[0]))\n        assert ttl is not None\n        time.sleep(2)\n        ttl = redis_storage.con.ttl(redis_storage._ques.make_key(ids[0]))\n        assert ttl < 10\n"
  },
  {
    "path": "tests/unit_tests/manager/test_sql_scalar.py",
    "content": "import time\nimport unittest\nfrom pathlib import Path\nfrom tempfile import TemporaryDirectory\n\nimport numpy as np\n\nfrom gptcache.manager.scalar_data.base import CacheData, Question\nfrom gptcache.manager.scalar_data.sql_storage import SQLStorage\nfrom gptcache.utils import import_sql_client\n\n\nclass TestSQLStore(unittest.TestCase):\n    def test_sqlite(self):\n        self._inner_test_normal(\"sqlite\")\n        self._inner_test_with_deps(\"sqlite\")\n\n    def test_duckdb(self):\n        import_sql_client(\"duckdb\")\n        self._inner_test_normal(\"duckdb\")\n        self._inner_test_with_deps(\"duckdb\")\n\n    def _inner_test_normal(self, db_name: str):\n        with TemporaryDirectory(dir=\"./\") as root:\n            db_path = Path(root) / f\"{db_name}1.db\"\n            db = SQLStorage(\n                db_type=db_name,\n                url=f\"{db_name}:///\" + str(db_path),\n                table_len_config={\"question_question\": 500},\n            )\n            db.create()\n            data = []\n            for i in range(1, 10):\n                data.append(\n                    CacheData(\n                        \"question_\" + str(i),\n                        [\"answer_\" + str(i)] * i,\n                        np.random.rand(5),\n                    )\n                )\n\n            db.batch_insert(data)\n            data = db.get_data_by_id(1)\n            self.assertEqual(data.question, \"question_1\")\n            self.assertEqual(data.answers[0].answer, \"answer_1\")\n            data = db.get_data_by_id(2)\n            self.assertEqual(data.question, \"question_2\")\n            self.assertEqual(data.answers[0].answer, \"answer_2\")\n            self.assertEqual(data.answers[1].answer, \"answer_2\")\n            q_id = db.batch_insert(\n                [CacheData(\"question_single\", \"answer_singel\", np.random.rand(5))]\n            )[0]\n            data = db.get_data_by_id(q_id)\n            self.assertEqual(data.question, \"question_single\")\n            self.assertEqual(data.answers[0].answer, \"answer_singel\")\n\n            # test deleted\n            self.assertEqual(len(db.get_ids(True)), 0)\n            db.mark_deleted([1, 2, 3])\n            self.assertEqual(db.get_ids(True), [1, 2, 3])\n            self.assertEqual(db.count(is_all=True), 10)\n            self.assertEqual(db.count(), 7)\n            self.assertEqual(db.count_answers(), 46)\n            db.clear_deleted_data()\n            self.assertEqual(db.count_answers(), 40)\n            self.assertEqual(db.count(is_all=True), 7)\n\n    def _inner_test_with_deps(self, db_name: str):\n        with TemporaryDirectory(dir=\"./\") as root:\n            db_path = Path(root) / f\"{db_name}2.db\"\n            db = SQLStorage(db_type=db_name, url=f\"{db_name}:///\" + str(db_path))\n            db.create()\n            data_id = db.batch_insert(\n                [\n                    CacheData(\n                        Question.from_dict(\n                            {\n                                \"content\": \"test_question\",\n                                \"deps\": [\n                                    {\n                                        \"name\": \"text\",\n                                        \"data\": \"how many people in this picture\",\n                                        \"dep_type\": 0,\n                                    },\n                                    {\n                                        \"name\": \"image\",\n                                        \"data\": \"object_name\",\n                                        \"dep_type\": 1,\n                                    },\n                                ],\n                            }\n                        ),\n                        \"test_answer\",\n                        np.random.rand(5),\n                    )\n                ]\n            )[0]\n\n            ret = db.get_data_by_id(data_id)\n            self.assertEqual(ret.question.content, \"test_question\")\n            self.assertEqual(ret.question.deps[0].name, \"text\")\n            self.assertEqual(\n                ret.question.deps[0].data, \"how many people in this picture\"\n            )\n            self.assertEqual(ret.question.deps[0].dep_type, 0)\n            self.assertEqual(ret.question.deps[1].name, \"image\")\n            self.assertEqual(ret.question.deps[1].data, \"object_name\")\n            self.assertEqual(ret.question.deps[1].dep_type, 1)\n\n    def test_create_on(self):\n        db_name = \"sqlite\"\n        with TemporaryDirectory(dir=\"./\") as root:\n            db_path = Path(root) / f\"{db_name}1.db\"\n            db = SQLStorage(\n                db_type=db_name,\n                url=f\"{db_name}:///\" + str(db_path),\n                table_len_config={\"question_question\": 500},\n            )\n            db.create()\n            data = []\n            for i in range(1, 10):\n                data.append(\n                    CacheData(\n                        \"question_\" + str(i),\n                        [\"answer_\" + str(i)] * i,\n                        np.random.rand(5),\n                    )\n                )\n\n            db.batch_insert(data)\n            data = db.get_data_by_id(1)\n            create_on1 = data.create_on\n            last_access1 = data.last_access\n\n            time.sleep(1)\n\n            data = db.get_data_by_id(1)\n            create_on2 = data.create_on\n            last_access2 = data.last_access\n\n            assert create_on1 == create_on2\n            assert last_access1 < last_access2\n"
  },
  {
    "path": "tests/unit_tests/manager/test_usearch.py",
    "content": "import unittest\n\nimport numpy as np\n\nfrom gptcache.manager.vector_data import VectorBase\nfrom gptcache.manager.vector_data.base import VectorData\n\n\nclass TestUSearchDB(unittest.TestCase):\n    def test_normal(self):\n        size = 1000\n        dim = 512\n        top_k = 10\n\n        db = VectorBase(\n            \"usearch\",\n            index_file_path='./index.usearch',\n            dimension=dim,\n            top_k=top_k,\n            metric='cos',\n            dtype='f32',\n        )\n        db.mul_add([VectorData(id=i, data=np.random.rand(dim))\n                   for i in range(size)])\n        self.assertEqual(len(db.search(np.random.rand(dim))), top_k)\n        self.assertEqual(db.count(), size)\n        db.close()\n"
  },
  {
    "path": "tests/unit_tests/manager/test_weaviate.py",
    "content": "# import unittest\n# import numpy as np\n\n# from gptcache.manager.vector_data import VectorBase\n# from gptcache.manager.vector_data.base import VectorData\n\n\n# class TestWeaviateDB(unittest.TestCase):\n#     def test_normal(self):\n#         size = 1000\n#         dim = 512\n#         top_k = 10\n#         class_name = \"Vectorcache\"\n\n#         db = VectorBase(\n#             \"weaviate\",\n#             class_name=class_name,\n#             top_k=top_k\n#         )\n\n#         created_class_name = db._create_class()\n#         self.assertEqual(class_name, created_class_name)\n#         data = np.random.randn(size, dim).astype(np.float32)\n#         db.mul_add([VectorData(id=i, data=v) for v, i in zip(data, range(size))])\n#         self.assertEqual(len(db.search(data[0])), top_k)\n#         db.mul_add([VectorData(id=size, data=data[0])])\n#         ret = db.search(data[0])\n#         self.assertIn(ret[0][1], [0, size])\n#         db.delete([0, 1, 2, 3, 4, 5, size])\n#         ret = db.search(data[0])\n#         self.assertNotIn(ret[0][1], [0, size])\n#         db.rebuild()\n#         db.update_embeddings(6, data[7])\n#         emb = db.get_embeddings(6)\n#         self.assertEqual(emb.tolist(), data[7].tolist())\n#         emb = db.get_embeddings(0)\n#         self.assertIsNone(emb)\n#         db.close()\n\n#         custom_class_name = \"Customcache\"\n#         class_schema = {\n#             \"class\": custom_class_name,\n#             \"description\": \"LLM response cache\",\n#             \"properties\": [\n#                 {\n#                     \"name\": \"data_id\",\n#                     \"dataType\": [\"int\"],\n#                     \"description\": \"The data-id generated by GPTCache for vectors.\",\n#                 }\n#             ],\n#             \"vectorIndexConfig\": {\"distance\": \"cosine\"},\n#         }\n\n#         db = VectorBase(\n#             \"weaviate\",\n#             class_schema=class_schema,\n#             top_k=top_k\n#         )\n#         created_class_name = db._create_class()\n#         self.assertEqual(custom_class_name, created_class_name)\n#         db.close()\n"
  },
  {
    "path": "tests/unit_tests/processor/test_concat_context.py",
    "content": "from gptcache.adapter.api import _get_pre_context_function\n\n\ndef test_concat_context_process():\n    context_process = _get_pre_context_function(\"concat\")\n    chat = []\n    chat.append(\n        {\n            \"role\": \"user\",\n            \"content\": \"What is the meaning of life? Explain it in 5 paragraphs.\",\n        }\n    )\n    chat.append(\n        {\n            \"role\": \"system\",\n            \"content\": \"The meaning of life is a philosophical question that has been debated throughout history. It is a complex and multifaceted topic, and different people may have different answers depending on their beliefs, values, and experiences. In general, though, the meaning of life is thought to be the reason for which we exist, the purpose that gives our lives significance and direction. \\\nOne possible answer to the question of the meaning of life is that it is to seek happiness and fulfillment. This is a common theme in many philosophical and religious traditions, which often emphasize the importance of living a good and virtuous life in order to achieve happiness and fulfillment. For some, this may mean striving for personal growth and self-improvement, while for others it may involve pursuing spiritual enlightenment or a connection with a higher power. \\\nAnother possible answer to the question of the meaning of life is that it is to contribute to the greater good. This approach emphasizes the importance of serving others and making the world a better place, whether through acts of kindness, charitable work, or other forms of service. For those who believe in this approach, the meaning of life is not just about individual happiness, but also about making a positive impact on the world and the lives of others. \\\nA third possible answer to the question of the meaning of life is that it is to discover and pursue one's passions and interests. This approach emphasizes the importance of living a life that is authentic and true to oneself, and of pursuing one's passions and interests with enthusiasm and dedication. For those who believe in this approach, the meaning of life is not just about achieving some external goal, but about living a life that is rich, fulfilling, and true to who we are. \\\nIn conclusion, the meaning of life is a deeply personal and subjective question, and different people may have different answers. Some may believe that the meaning of life is to seek happiness and fulfillment, while others may believe that it is to contribute to the greater good or to pursue one's passions and interests. Ultimately, the meaning of life is a mystery that may never be fully understood, but that we can strive to uncover and understand through our experiences, beliefs, and values.\",\n        }\n    )\n    chat.append({\"role\": \"user\", \"content\": \"Shouldn't the answer be 42?\"})\n    chat.append(\n        {\n            \"role\": \"system\",\n            \"content\": \"\"\"The answer \"42\" is a reference to a famous line in the book \"The Hitchhiker's Guide to the Galaxy\" by Douglas Adams. In the book, the character Deep Thought is asked to find the answer to the ultimate question of life, the universe, and everything. After thinking for a very long time, Deep Thought reveals that the answer is \"42.\" However, the characters in the book then realize that they don't actually know what the question is, so the answer is ultimately meaningless. \\\nIn other words, the answer \"42\" is a humorous and satirical take on the idea that there may be a single, definitive answer to the question of the meaning of life. It suggests that the search for such an answer may be futile, and that the meaning of life may be something that is ultimately unknowable. Therefore, while \"42\" is a famous and memorable line from a popular book, it is not necessarily a serious or meaningful answer to the question of the meaning of life.\"\"\",\n        }\n    )\n\n    context_process.format_all_content({\"messages\": chat})\n    save_content, embedding_content = context_process.process_all_content()\n    assert len(embedding_content) > 0\n"
  },
  {
    "path": "tests/unit_tests/processor/test_context.py",
    "content": "from tempfile import TemporaryDirectory\nfrom typing import Any, Dict\nfrom unittest.mock import patch\n\nfrom gptcache import cache\nfrom gptcache.adapter import openai\nfrom gptcache.manager import manager_factory\nfrom gptcache.processor import ContextProcess\nfrom gptcache.processor.pre import all_content\nfrom gptcache.utils.response import get_message_from_openai_answer\n\n\nclass CITestContextProcess(ContextProcess):\n    def __init__(self):\n        self.content = \"\"\n\n    def format_all_content(self, data: Dict[str, Any], **params: Dict[str, Any]):\n        self.content = all_content(data)\n\n    def process_all_content(self) -> (Any, Any):\n        save_content = self.content.upper()\n        embedding_content = self.content\n        return save_content, embedding_content\n\n\ndef test_context_process():\n    with TemporaryDirectory(dir=\"./\") as root:\n        map_manager = manager_factory(data_dir=root)\n        context_process = CITestContextProcess()\n        cache.init(\n            pre_embedding_func=context_process.pre_process, data_manager=map_manager\n        )\n\n        question = \"test calculate 1+3\"\n        expect_answer = \"the result is 4\"\n        with patch(\"openai.ChatCompletion.create\") as mock_create:\n            datas = {\n                \"choices\": [\n                    {\n                        \"message\": {\"content\": expect_answer, \"role\": \"assistant\"},\n                        \"finish_reason\": \"stop\",\n                        \"index\": 0,\n                    }\n                ],\n                \"created\": 1677825464,\n                \"id\": \"chatcmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n                \"model\": \"gpt-3.5-turbo-0301\",\n                \"object\": \"chat.completion.chunk\",\n            }\n            mock_create.return_value = datas\n\n            response = openai.ChatCompletion.create(\n                model=\"gpt-3.5-turbo\",\n                messages=[\n                    {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                    {\"role\": \"user\", \"content\": question},\n                ],\n            )\n\n            assert get_message_from_openai_answer(response) == expect_answer, response\n\n        response = openai.ChatCompletion.create(\n            model=\"gpt-3.5-turbo\",\n            messages=[\n                {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n                {\"role\": \"user\", \"content\": question},\n            ],\n        )\n        answer_text = get_message_from_openai_answer(response)\n        assert answer_text == expect_answer, answer_text\n        cache.flush()\n\n        map_manager = manager_factory(data_dir=root)\n        content = f\"You are a helpful assistant.\\n{question}\"\n        cache_answer = map_manager.search(content)[0]\n        assert cache_answer[0] == content.upper()\n        assert cache_answer[1].answer == expect_answer\n        assert cache_answer[2] == content\n"
  },
  {
    "path": "tests/unit_tests/processor/test_post.py",
    "content": "from gptcache.processor.post import random_one, first, nop, temperature_softmax\nfrom unittest.mock import Mock\n\n\ndef test_random_one():\n    message = random_one([\"foo\", \"foo2\"])\n    assert message\n\n\ndef test_first():\n    message = first([\"foo\", \"foo2\"])\n    assert message == \"foo\"\n\n\ndef test_nop():\n    message = nop([\"foo\", \"foo2\"])\n    assert \"foo\" in message\n    assert \"foo2\" in message\n\n\ndef test_temperature_softmax():\n    message = temperature_softmax(messages=[\"foo\", \"foo2\"], scores=[0.0, 1.0], temperature=0.5)\n    assert message in [\"foo\", \"foo2\"]\n\n    message = temperature_softmax(messages=[\"foo\", \"foo2\"], scores=[0.9, 0.1], temperature=0.0)\n    assert message == \"foo\"\n\n    message = temperature_softmax(messages=[\"foo\", \"foo2\"], scores=[0.1, 0.9], temperature=0.0)\n    assert message == \"foo2\"\n\n\ndef test_llm_verifier():\n    # mock client that always returns 'yes'\n    mock_client = Mock()\n    mock_resp = Mock()\n    mock_choice = Mock()\n    mock_choice.message.content = 'yes'\n    mock_resp.choices = [mock_choice]\n    mock_client.chat.completions.create.return_value = mock_resp\n\n    from gptcache.processor.post import LlmVerifier\n    verifier = LlmVerifier(client=mock_client, system_prompt=\"test prompt\", model=\"fake-model\")\n    messages = [\"foo\", \"bar\"]\n    scores = [0.1, 0.9]\n    result = verifier(messages, scores=scores, original_question=\"test question\")\n    assert result == \"bar\"\n\n    # mock client that returns 'no'\n    mock_choice.message.content = 'no'\n    result = verifier(messages, scores=scores, original_question=\"test question\")\n    assert result is None\n\n\n\n\nif __name__ == \"__main__\":\n    test_first()\n    test_nop()\n    test_random_one()\n    test_temperature_softmax()\n    test_llm_verifier()\n"
  },
  {
    "path": "tests/unit_tests/processor/test_pre.py",
    "content": "from gptcache.processor.pre import (\n    last_content,\n    all_content,\n    nop,\n    last_content_without_prompt,\n    get_prompt, get_openai_moderation_input,\n    concat_all_queries\n)\n\nfrom gptcache.config import Config\n\ndef test_last_content():\n    content = last_content({\"messages\": [{\"content\": \"foo1\"}, {\"content\": \"foo2\"}]})\n\n    assert content == \"foo2\"\n\n\ndef test_last_content_without_prompt():\n    content = last_content_without_prompt(\n        {\"messages\": [{\"content\": \"foo1\"}, {\"content\": \"foo2\"}]}\n    )\n    assert content == \"foo2\"\n\n    content = last_content_without_prompt(\n        {\"messages\": [{\"content\": \"foo1\"}, {\"content\": \"foo2\"}]}, prompts=None\n    )\n    assert content == \"foo2\"\n\n    content = last_content_without_prompt(\n        {\"messages\": [{\"content\": \"foo1\"}, {\"content\": \"foo2\"}]}, prompts=[\"foo\"]\n    )\n    assert content == \"2\"\n\n\ndef test_all_content():\n    content = all_content({\"messages\": [{\"content\": \"foo1\"}, {\"content\": \"foo2\"}]})\n\n    assert content == \"foo1\\nfoo2\"\n\n\ndef test_nop():\n    content = nop({\"str\": \"hello\"})\n    assert content == {\"str\": \"hello\"}\n\n\ndef test_get_prompt():\n    content = get_prompt({\"prompt\": \"foo\"})\n    assert content == \"foo\"\n\n\ndef test_get_openai_moderation_input():\n    content = get_openai_moderation_input({\"input\": [\"hello\", \"world\"]})\n    assert content == \"['hello', 'world']\"\n\n\ndef test_get_messages_last_content():\n    content = last_content({\"messages\": [{\"content\": \"foo1\"}, {\"content\": \"foo2\"}]})\n    assert content == \"foo2\"\n\ndef test_concat_all_queries():\n    config = Config()\n    config.context_len = 2\n    content = concat_all_queries({\"messages\":[{\"role\": \"system\",   \"content\": \"foo1\"}, \n                                        {\"role\": \"user\",     \"content\": \"foo2\"}, \n                                        {\"role\": \"assistant\",\"content\": \"foo3\"}, \n                                        {\"role\": \"user\",     \"content\": \"foo4\"}, \n                                        {\"role\": \"assistant\",\"content\": \"foo5\"},\n                                        {\"role\": \"user\",     \"content\": \"foo6\"}]}, **{'cache_config':config})\n    assert content == 'USER: foo4\\nUSER: foo6'\n\n    \nif __name__  == '__main__':   \n    test_concat_all_queries()\n"
  },
  {
    "path": "tests/unit_tests/processor/test_selective_context.py",
    "content": "from gptcache.adapter.api import _get_pre_context_function\nfrom gptcache.utils import import_selective_context\n\n\ndef test_selective_context_process():\n    import_selective_context()\n    context_process = _get_pre_context_function(\"selective\")\n    chat = []\n    chat.append(\n        {\n            \"role\": \"user\",\n            \"content\": \"What is the meaning of life? Explain it in 5 paragraphs.\",\n        }\n    )\n    chat.append(\n        {\n            \"role\": \"system\",\n            \"content\": \"The meaning of life is a philosophical question that has been debated throughout history. It is a complex and multifaceted topic, and different people may have different answers depending on their beliefs, values, and experiences. In general, though, the meaning of life is thought to be the reason for which we exist, the purpose that gives our lives significance and direction. \\\nOne possible answer to the question of the meaning of life is that it is to seek happiness and fulfillment. This is a common theme in many philosophical and religious traditions, which often emphasize the importance of living a good and virtuous life in order to achieve happiness and fulfillment. For some, this may mean striving for personal growth and self-improvement, while for others it may involve pursuing spiritual enlightenment or a connection with a higher power. \\\nAnother possible answer to the question of the meaning of life is that it is to contribute to the greater good. This approach emphasizes the importance of serving others and making the world a better place, whether through acts of kindness, charitable work, or other forms of service. For those who believe in this approach, the meaning of life is not just about individual happiness, but also about making a positive impact on the world and the lives of others. \\\nA third possible answer to the question of the meaning of life is that it is to discover and pursue one's passions and interests. This approach emphasizes the importance of living a life that is authentic and true to oneself, and of pursuing one's passions and interests with enthusiasm and dedication. For those who believe in this approach, the meaning of life is not just about achieving some external goal, but about living a life that is rich, fulfilling, and true to who we are. \\\nIn conclusion, the meaning of life is a deeply personal and subjective question, and different people may have different answers. Some may believe that the meaning of life is to seek happiness and fulfillment, while others may believe that it is to contribute to the greater good or to pursue one's passions and interests. Ultimately, the meaning of life is a mystery that may never be fully understood, but that we can strive to uncover and understand through our experiences, beliefs, and values.\",\n        }\n    )\n    chat.append({\"role\": \"user\", \"content\": \"Shouldn't the answer be 42?\"})\n    chat.append(\n        {\n            \"role\": \"system\",\n            \"content\": \"\"\"The answer \"42\" is a reference to a famous line in the book \"The Hitchhiker's Guide to the Galaxy\" by Douglas Adams. In the book, the character Deep Thought is asked to find the answer to the ultimate question of life, the universe, and everything. After thinking for a very long time, Deep Thought reveals that the answer is \"42.\" However, the characters in the book then realize that they don't actually know what the question is, so the answer is ultimately meaningless. \\\nIn other words, the answer \"42\" is a humorous and satirical take on the idea that there may be a single, definitive answer to the question of the meaning of life. It suggests that the search for such an answer may be futile, and that the meaning of life may be something that is ultimately unknowable. Therefore, while \"42\" is a famous and memorable line from a popular book, it is not necessarily a serious or meaningful answer to the question of the meaning of life.\"\"\",\n        }\n    )\n\n    context_process.format_all_content({\"messages\": chat})\n    save_content, embedding_content = context_process.process_all_content()\n    assert len(save_content) > len(embedding_content)\n"
  },
  {
    "path": "tests/unit_tests/processor/test_summarize_context.py",
    "content": "from transformers import RobertaTokenizer\n\nfrom gptcache.adapter.api import _get_pre_context_function\n\n\ndef test_summarization_context_process():\n    #summarizer = pipeline(task=\"summarization\", model=\"ainize/bart-base-cnn\")\n    context_process = _get_pre_context_function(\"summarization\", kws={\"model_name\": \"facebook/bart-large-cnn\", \"target_length\": 512})\n    chat = []\n    chat.append(\n        {\n            \"role\": \"user\",\n            \"content\": \"What is the meaning of life? Explain it in 5 paragraphs.\",\n        }\n    )\n    chat.append(\n        {\n            \"role\": \"system\",\n            \"content\": \"The meaning of life is a philosophical question that has been debated throughout history. It is a complex and multifaceted topic, and different people may have different answers depending on their beliefs, values, and experiences. In general, though, the meaning of life is thought to be the reason for which we exist, the purpose that gives our lives significance and direction. \\\nOne possible answer to the question of the meaning of life is that it is to seek happiness and fulfillment. This is a common theme in many philosophical and religious traditions, which often emphasize the importance of living a good and virtuous life in order to achieve happiness and fulfillment. For some, this may mean striving for personal growth and self-improvement, while for others it may involve pursuing spiritual enlightenment or a connection with a higher power. \\\nAnother possible answer to the question of the meaning of life is that it is to contribute to the greater good. This approach emphasizes the importance of serving others and making the world a better place, whether through acts of kindness, charitable work, or other forms of service. For those who believe in this approach, the meaning of life is not just about individual happiness, but also about making a positive impact on the world and the lives of others. \\\nA third possible answer to the question of the meaning of life is that it is to discover and pursue one's passions and interests. This approach emphasizes the importance of living a life that is authentic and true to oneself, and of pursuing one's passions and interests with enthusiasm and dedication. For those who believe in this approach, the meaning of life is not just about achieving some external goal, but about living a life that is rich, fulfilling, and true to who we are. \\\nIn conclusion, the meaning of life is a deeply personal and subjective question, and different people may have different answers. Some may believe that the meaning of life is to seek happiness and fulfillment, while others may believe that it is to contribute to the greater good or to pursue one's passions and interests. Ultimately, the meaning of life is a mystery that may never be fully understood, but that we can strive to uncover and understand through our experiences, beliefs, and values.\",\n        }\n    )\n    chat.append({\"role\": \"user\", \"content\": \"Shouldn't the answer be 42?\"})\n    chat.append(\n        {\n            \"role\": \"system\",\n            \"content\": \"\"\"The answer \"42\" is a reference to a famous line in the book \"The Hitchhiker's Guide to the Galaxy\" by Douglas Adams. In the book, the character Deep Thought is asked to find the answer to the ultimate question of life, the universe, and everything. After thinking for a very long time, Deep Thought reveals that the answer is \"42.\" However, the characters in the book then realize that they don't actually know what the question is, so the answer is ultimately meaningless. \\\nIn other words, the answer \"42\" is a humorous and satirical take on the idea that there may be a single, definitive answer to the question of the meaning of life. It suggests that the search for such an answer may be futile, and that the meaning of life may be something that is ultimately unknowable. Therefore, while \"42\" is a famous and memorable line from a popular book, it is not necessarily a serious or meaningful answer to the question of the meaning of life.\"\"\",\n        }\n    )\n\n    context_process.format_all_content({\"messages\": chat})\n    save_content, embedding_content = context_process.process_all_content()\n    tokenizer = RobertaTokenizer.from_pretrained(\"roberta-base\")\n    assert len(tokenizer.tokenize(embedding_content)) < 512\n"
  },
  {
    "path": "tests/unit_tests/similarity_evaluation/test_cohere_rerank.py",
    "content": "import os\nfrom unittest.mock import patch\n\nfrom gptcache.adapter.api import _get_eval\nfrom gptcache.utils import import_cohere\n\nimport_cohere()\n\nfrom cohere.responses import Reranking\n\n\ndef test_cohere_rerank():\n    os.environ[\"CO_API_KEY\"] = \"API\"\n\n    evaluation = _get_eval(\"cohere\")\n\n    min_value, max_value = evaluation.range()\n    assert min_value < 0.001\n    assert max_value > 0.999\n\n    with patch(\"cohere.Client.rerank\") as mock_create:\n        mock_create.return_value = Reranking(\n            response={\n                \"meta\": {\"api_version\": {\"version\": \"2022-12-06\"}},\n                \"results\": [],\n            }\n        )\n        evaluation = _get_eval(\"cohere\")\n        score = evaluation.evaluation(\n            {\"question\": \"What is the color of sky?\"},\n            {\"answer\": \"the color of sky is blue\"},\n        )\n        assert score < 0.01\n\n    with patch(\"cohere.Client.rerank\") as mock_create:\n        mock_create.return_value = Reranking(\n            response={\n                \"meta\": {\"api_version\": {\"version\": \"2022-12-06\"}},\n                \"results\": [\n                    {\n                        \"relevance_score\": 0.9871293,\n                        \"index\": 0,\n                    }\n                ],\n            }\n        )\n        evaluation = _get_eval(\"cohere\")\n        score = evaluation.evaluation(\n            {\"question\": \"What is the color of sky?\"},\n            {\"answer\": \"the color of sky is blue\"},\n        )\n        assert score > 0.9\n"
  },
  {
    "path": "tests/unit_tests/similarity_evaluation/test_evaluation_kreciprocal.py",
    "content": "from gptcache.similarity_evaluation import KReciprocalEvaluation\nfrom gptcache.manager.vector_data.faiss import Faiss\nfrom gptcache.manager.vector_data.base import VectorData\nfrom gptcache.adapter.api import _get_eval\nimport numpy as np\nimport math\n\ndef normalize(vec):\n    norm = np.linalg.norm(vec)\n    return vec / norm\n\nfaiss = Faiss('./none', 3, 10)\n\n\ndef _test_evaluation(evaluation):\n    narr1 = normalize(np.array([1.0, 2.0, 3.0]))\n    faiss.mul_add([VectorData(id=0, data=narr1)])\n    narr2 = normalize(np.array([2.0, 3.0, 4.0]))\n    faiss.mul_add([VectorData(id=1, data=narr2)])\n    narr3 = normalize(np.array([3.0, 4.0, 5.0]))\n    faiss.mul_add([VectorData(id=2, data=narr3)])\n    evaluation = KReciprocalEvaluation(vectordb=faiss, top_k=2)\n    query1 = normalize(np.array([1.1, 2.1, 3.1]))\n    query2 = normalize(np.array([101.1, 102.1, 103.1]))\n\n    score1 = evaluation.evaluation({'question': 'question1', 'embedding': query1}, {'question': 'question2', 'embedding': narr1})\n    score2 = evaluation.evaluation({'question': 'question1', 'embedding': query2}, {'question': 'question2', 'embedding': narr1})\n\n    assert score1 > 3.99\n    assert math.isclose(score2, 0)\n\ndef test_kreciprocal():\n    evaluation = KReciprocalEvaluation(vectordb=faiss, top_k=2)\n    _test_evaluation(evaluation)\n\ndef test_get_eval():\n    evaluation = _get_eval(strategy=\"kreciprocal\", kws={\"vectordb\": faiss, \"top_k\": 2})\n    _test_evaluation(evaluation)\n"
  },
  {
    "path": "tests/unit_tests/similarity_evaluation/test_evaluation_onnx.py",
    "content": "import math\n\nfrom gptcache.adapter.api import _get_eval\nfrom gptcache.similarity_evaluation import OnnxModelEvaluation\n\n\ndef _test_evaluation(evaluation):\n    range_min, range_max = evaluation.range()\n    assert math.isclose(range_min, 0.0)\n    assert math.isclose(range_max, 1.0)\n\n    score = evaluation.evaluation({\"question\": \"hello\"}, {\"question\": \"hello\"})\n    assert math.isclose(score, 1.0)\n\n    query = \"Can you pass a urine test for meth in 4 days?\"\n    candidate_1 = \"Can meth be detected in a urine test if last used was Thursday night and the test was tuesday morning?\"\n    candidate_2 = \"how old are you?\"\n\n    score = evaluation.evaluation({\"question\": query}, {\"question\": candidate_1})\n    assert isinstance(score, float), type(score)\n    assert score > 0.8\n\n    score = evaluation.evaluation({\"question\": query}, {\"question\": candidate_2})\n    assert score < 0.1\n\n\ndef test_onnx():\n    evaluation = OnnxModelEvaluation()\n    _test_evaluation(evaluation)\n\n\ndef test_get_eval():\n    evaluation = _get_eval(\"onnx\")\n    _test_evaluation(evaluation)\n"
  },
  {
    "path": "tests/unit_tests/similarity_evaluation/test_evaluation_sbert.py",
    "content": "import math\n\nfrom gptcache.adapter.api import _get_eval\nfrom gptcache.similarity_evaluation import SbertCrossencoderEvaluation\n\n\ndef _test_evaluation(evaluation):\n    range_min, range_max = evaluation.range()\n    assert math.isclose(range_min, 0.0)\n    assert math.isclose(range_max, 1.0)\n\n    score = evaluation.evaluation({\"question\": \"hello\"}, {\"question\": \"hello\"})\n    assert math.isclose(score, 1.0)\n\n    query = \"Can you pass a urine test for meth in 4 days?\"\n    candidate_1 = \"Can meth be detected in a urine test if last used was Thursday night and the test was tuesday morning?\"\n    candidate_2 = \"how old are you?\"\n\n    score = evaluation.evaluation({\"question\": query}, {\"question\": candidate_1})\n    assert score > 0.8\n\n    score = evaluation.evaluation({\"question\": query}, {\"question\": candidate_2})\n    assert score < 0.1\n\n\ndef test_sbert():\n    evaluation = SbertCrossencoderEvaluation()\n    _test_evaluation(evaluation)\n\n\ndef test_get_eval():\n    evaluation = _get_eval(\"sbert_crossencoder\")\n    _test_evaluation(evaluation)\n\nif __name__ == '__main__':\n    test_sbert()\n"
  },
  {
    "path": "tests/unit_tests/similarity_evaluation/test_evaluation_sequence.py",
    "content": "import numpy as np\n\nfrom gptcache.adapter.api import _get_eval\nfrom gptcache.similarity_evaluation import SequenceMatchEvaluation\nfrom gptcache.similarity_evaluation.sequence_match import reweight\n\n\ndef normalize(vec):\n    norm = np.linalg.norm(vec)\n    return vec / norm\n\n\ndef _test_evaluation(evaluation):\n    evaluation = SequenceMatchEvaluation([0.1, 0.2, 0.7], \"onnx\")\n    score1 = evaluation.evaluation(\n        {\"question\": \"USER:foo1\\nUSER:foo2\\nUSER:foo3\\n\"},\n        {\"question\": \"USER:foo1\\nUSER:foo2\\nUSER:foo3\\n\"},\n    )\n    score2 = evaluation.evaluation(\n        {\"question\": \"USER:foo1\\nUSER:foo2\\nUSER:foo3\\n\"},\n        {\"question\": \"USER:foo1\\nUSER:foo2\\n\"},\n    )\n    evaluation = SequenceMatchEvaluation([0.2, 0.8], \"onnx\")\n    score2 = evaluation.evaluation(\n        {\"question\": \"USER:foo1\\nUser:foo2\\nUser:foo3\\n\"},\n        {\"question\": \"USER:foo1\\nUser:foo2\\n\"},\n    )\n    assert True\n\n\ndef test_sequence_match():\n    evaluation = SequenceMatchEvaluation([0.1, 0.2, 0.7], \"onnx\")\n    evaluation.range()\n    _test_evaluation(evaluation)\n\n\ndef test_get_eval():\n    evaluation = _get_eval(\n        strategy=\"sequence_match\",\n        kws={\n            \"embedding_extractor\": \"onnx\",\n            \"weights\": [0.1, 0.2, 0.7],\n            \"embedding_config\": {\"model\": \"GPTCache/paraphrase-albert-onnx\"},\n        },\n    )\n    _test_evaluation(evaluation)\n\n\ndef test_reweigth():\n    ws = reweight([0.7, 0.2, 0.1], 4)\n    assert len(ws) == 3\n    ws = reweight([0.7, 0.2, 0.1], 3)\n    assert len(ws) == 3\n    ws = reweight([0.7, 0.2, 0.1], 2)\n    assert len(ws) == 2\n    ws = reweight([0.7, 0.2, 0.1], 1)\n    assert len(ws) == 1\n\n\nif __name__ == \"__main__\":\n    test_sequence_match()\n"
  },
  {
    "path": "tests/unit_tests/similarity_evaluation/test_evaluation_string.py",
    "content": "import math\n\nfrom gptcache.adapter.api import _get_eval\nfrom gptcache.similarity_evaluation import ExactMatchEvaluation\n\ndef _test_evaluation(evaluation):\n    range_min, range_max = evaluation.range()\n    assert math.isclose(range_min, 0.0)\n    assert math.isclose(range_max, 1.0)\n\n    score = evaluation.evaluation({\"question\": \"hello\"}, {\"question\": \"hello\"})\n    assert math.isclose(score, 1.0)\n\n    score = evaluation.evaluation({\"question\": \"tello\"}, {\"question\": \"hello\"})\n    assert math.isclose(score, 0.0)\n\n\ndef test_exact_match_evaluation():\n    evaluation = ExactMatchEvaluation()\n    _test_evaluation(evaluation)\n\n\ndef test_get_eval():\n    evaluation = _get_eval(\"exact\")\n    _test_evaluation(evaluation)\n"
  },
  {
    "path": "tests/unit_tests/similarity_evaluation/test_evalution_time.py",
    "content": "import datetime\n\nfrom gptcache.manager.scalar_data.base import CacheData\nfrom gptcache.similarity_evaluation import TimeEvaluation\n\n\ndef test_evaluation_time():\n    eval = TimeEvaluation(\"distance\", {}, time_range=2)\n    assert eval.range() == (0.0, 4.0)\n\n    similarity = eval.evaluation({}, {\"search_result\": (3.5, None)})\n    assert similarity == 0.0\n\n    similarity = eval.evaluation(\n        {}, {\"search_result\": (3.5, None), \"cache_data\": CacheData(\"a\", \"b\")}\n    )\n    assert similarity == 0.0\n\n    similarity = eval.evaluation(\n        {},\n        {\n            \"search_result\": (3.5, None),\n            \"cache_data\": CacheData(\"a\", \"b\", create_on=datetime.datetime(2022, 1, 1)),\n        },\n    )\n    assert similarity == 0.0\n\n    similarity = eval.evaluation(\n        {},\n        {\n            \"search_result\": (3.5, None),\n            \"cache_data\": CacheData(\"a\", \"b\", create_on=datetime.datetime.now()),\n        },\n    )\n    assert similarity == 0.5\n"
  },
  {
    "path": "tests/unit_tests/similarity_evaluation/test_np.py",
    "content": "import math\n\nimport numpy as np\n\nfrom gptcache.adapter.api import _get_eval\nfrom gptcache.similarity_evaluation import NumpyNormEvaluation\n\n\nembedding_func = lambda x: np.array([1, 1])\n\n\ndef _test_evaluation(evaluation):\n\n    range_min, range_max = evaluation.range()\n    # print(range_max)\n    assert math.isclose(range_min, 0.0)\n    assert math.isclose(range_max, 2.0)\n\n    score = evaluation.evaluation(\n        {\"embedding\": np.array([-0.5, -0.5])}, {\"embedding\": np.array([1, 1])}\n    )\n    assert math.isclose(score, 0.0, abs_tol=0.001), score\n\n    score = evaluation.evaluation(\n        {\"embedding\": np.array([1, 2, 3, 4])},\n        {\"embedding\": np.array([0.1, 0.2, 0.3, 0.4])},\n    )\n\n    assert math.isclose(score, 2.0, abs_tol=0.001), score\n\n    score = evaluation.evaluation(\n        {\"question\": \"test\"},\n        {\"question\": \"test\"}\n    )\n    assert math.isclose(score, 2.0), score\n\n    score = evaluation.evaluation(\n        {\"question\": \"test1\"},\n        {\"question\": \"test2\"}\n    )\n    assert math.isclose(score, 2.0), score\n\n\ndef test_norm():\n    evaluation = NumpyNormEvaluation(enable_normal=True, question_embedding_function=embedding_func)\n    _test_evaluation(evaluation)\n\n\ndef test_get_eval():\n    evaluation = _get_eval(strategy=\"numpy\", kws={\"enable_normal\": True, \"question_embedding_function\": embedding_func})\n\n\nif __name__ == \"__main__\":\n    test_norm()\n"
  },
  {
    "path": "tests/unit_tests/similarity_evaluation/test_simple.py",
    "content": "import math\n\nfrom gptcache.adapter.api import _get_eval\nfrom gptcache.similarity_evaluation import SearchDistanceEvaluation\n\n\ndef _test_evaluation_default(evaluation):\n    range_min, range_max = evaluation.range()\n    assert math.isclose(range_min, 0.0)\n    assert math.isclose(range_max, 4.0)\n\n    score = evaluation.evaluation({}, {\"search_result\": (1, None)})\n    assert math.isclose(score, 3.0)\n\n    score = evaluation.evaluation({}, {\"search_result\": (-1, None)})\n    assert math.isclose(score, 4.0)\n\n\ndef _test_evaluation_config(evaluation):\n    range_min, range_max = evaluation.range()\n    assert math.isclose(range_min, 0.0)\n    assert math.isclose(range_max, 10.0)\n\n    score = evaluation.evaluation({}, {\"search_result\": (5, None)})\n    assert math.isclose(score, 5.0)\n    score = evaluation.evaluation({}, {\"search_result\": (20, None)})\n    assert math.isclose(score, 10.0)\n\n\ndef test_search_distance_evaluation():\n    evaluation = SearchDistanceEvaluation()\n    _test_evaluation_default(evaluation)\n\n    evaluation = SearchDistanceEvaluation(max_distance=10, positive=True)\n    _test_evaluation_config(evaluation)\n\n\ndef test_get_eval():\n    evaluation = _get_eval(\"distance\")\n    _test_evaluation_default(evaluation)\n\n    evaluation = _get_eval(strategy=\"distance\", kws = {\"max_distance\": 10, \"positive\": True})\n    _test_evaluation_config(evaluation)\n"
  },
  {
    "path": "tests/unit_tests/test_client.py",
    "content": "from unittest.mock import patch, Mock\n\nfrom gptcache.utils import import_httpx\n\nimport_httpx()\nfrom gptcache.client import Client\n\n\ndef test_client():\n    client = Client()\n    with patch(\"httpx.AsyncClient.post\") as mock_response:\n        mock_response.return_value = Mock(status_code=200)\n        status_code = client.put(\"Hi\", \"Hi back\")\n        assert status_code == 200\n\n    with patch(\"httpx.AsyncClient.post\") as mock_response:\n        m = Mock()\n        attrs = {\"json.return_value\": {\"answer\": \"Hi back\"}}\n        m.configure_mock(**attrs)\n        mock_response.return_value = m\n        ans = client.get(\"Hi\")\n        assert ans == \"Hi back\"\n"
  },
  {
    "path": "tests/unit_tests/test_core.py",
    "content": "import time\n\nfrom gptcache import cache, Config\nfrom gptcache.report import Report\nfrom gptcache.utils.cache_func import cache_all\nfrom gptcache.utils.time import time_cal\n\n\ndef test_time_cal():\n    def log_time_func(fname, delta_time):\n        assert fname == \"unit_test\"\n        assert delta_time > 0.1\n\n    cache.config = Config(log_time_func=log_time_func)\n\n    @time_cal\n    def time_cal_annotation():\n        time.sleep(0.2)\n\n    func_name = \"test_time_cal\"\n\n    def log_time_func(fname, delta_time):\n        assert fname == func_name\n        assert delta_time > 0.1\n\n    cache.config = Config(log_time_func=log_time_func)\n\n    def report_func(delta_time):\n        assert delta_time > 0.1\n\n    def time_cal_without_annotation():\n        time.sleep(0.2)\n\n    time_cal(\n        time_cal_without_annotation, func_name=func_name, report_func=report_func\n    )()\n\n    cache.config = None\n\n\ndef test_cache_all():\n    assert cache_all()\n\n\ndef test_report():\n    report = Report()\n    report.embedding(1)\n    report.embedding(3)\n    report.search(2)\n    report.search(4)\n    report.hint_cache()\n    report.hint_cache()\n\n    assert report.average_embedding_time() == 2\n    assert report.op_embedding.count == 2\n    assert report.average_search_time() == 3\n    assert report.op_search.count == 2\n    assert report.hint_cache_count == 2\n"
  },
  {
    "path": "tests/unit_tests/test_session.py",
    "content": "import unittest\nfrom unittest.mock import patch\nfrom openai.error import AuthenticationError\n\nfrom gptcache import cache\nfrom gptcache.adapter import openai\nfrom gptcache.manager import manager_factory\nfrom gptcache.session import Session\nfrom gptcache.processor.pre import get_prompt\nfrom gptcache.embedding import Onnx\nfrom gptcache.similarity_evaluation.distance import SearchDistanceEvaluation\nfrom gptcache.utils.response import get_text_from_openai_answer\n\n\ndef check_hit(cur_session_id, cache_session_ids, cache_questions, cache_answer):\n    if cache_questions and \"what\" in cache_questions[0]:\n        return True\n    return False\n\n\nclass TestSession(unittest.TestCase):\n    \"\"\"Test Session\"\"\"\n    question = \"what is your name?\"\n    expect_answer = \"gptcache\"\n    session_id = \"test_map\"\n\n    def test_with(self):\n        data_manager = manager_factory(\"map\", data_dir=\"./test_session\")\n        cache.init(data_manager=data_manager, pre_embedding_func=get_prompt)\n\n        session0 = Session(self.session_id, check_hit_func=check_hit)\n        self.assertEqual(session0.name, self.session_id)\n        with patch(\"openai.Completion.create\") as mock_create:\n            mock_create.return_value = {\n                \"choices\": [{\"text\": self.expect_answer, \"finish_reason\": None, \"index\": 0}],\n                \"created\": 1677825464,\n                \"id\": \"cmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n                \"model\": \"text-davinci-003\",\n                \"object\": \"text_completion\",\n            }\n\n            with Session() as session:\n                response = openai.Completion.create(model=\"text-davinci-003\", prompt=self.question, session=session)\n                answer_text = get_text_from_openai_answer(response)\n                self.assertEqual(answer_text, self.expect_answer)\n        self.assertEqual(len(data_manager.list_sessions()), 0)\n\n    def test_map(self):\n        data_manager = manager_factory(\"map\", data_dir=\"./test_session\")\n        cache.init(data_manager=data_manager, pre_embedding_func=get_prompt)\n\n        session0 = Session(self.session_id, check_hit_func=check_hit)\n        with patch(\"openai.Completion.create\") as mock_create:\n            mock_create.return_value = {\n                \"choices\": [{\"text\": self.expect_answer, \"finish_reason\": None, \"index\": 0}],\n                \"created\": 1677825464,\n                \"id\": \"cmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n                \"model\": \"text-davinci-003\",\n                \"object\": \"text_completion\",\n            }\n\n            response = openai.Completion.create(model=\"text-davinci-003\", prompt=self.question, session=session0)\n            answer_text = get_text_from_openai_answer(response)\n            self.assertEqual(answer_text, self.expect_answer)\n\n        response = openai.Completion.create(model=\"text-davinci-003\", prompt=self.question, session=session0)\n        answer_text = get_text_from_openai_answer(response)\n        self.assertEqual(answer_text, self.expect_answer)\n\n        session1 = Session()\n        response = openai.Completion.create(model=\"text-davinci-003\", prompt=self.question, session=session1)\n        answer_text = get_text_from_openai_answer(response)\n        self.assertEqual(answer_text, self.expect_answer)\n\n        with self.assertRaises(AuthenticationError):\n            openai.Completion.create(model=\"text-davinci-003\", prompt=self.question, session=session1)\n\n        self.assertEqual(len(data_manager.list_sessions()), 2)\n        session0.drop()\n        session1.drop()\n        self.assertEqual(len(data_manager.list_sessions()), 0)\n\n    def test_ssd(self):\n        onnx = Onnx()\n        data_manager = manager_factory(\"sqlite,faiss\", './test_session', vector_params={\"dimension\": onnx.dimension})\n        cache.init(\n            pre_embedding_func=get_prompt,\n            embedding_func=onnx.to_embeddings,\n            data_manager=data_manager,\n            similarity_evaluation=SearchDistanceEvaluation(),\n        )\n\n        session0 = Session(self.session_id, check_hit_func=check_hit)\n        with patch(\"openai.Completion.create\") as mock_create:\n            mock_create.return_value = {\n                \"choices\": [{\"text\": self.expect_answer, \"finish_reason\": None, \"index\": 0}],\n                \"created\": 1677825464,\n                \"id\": \"cmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n                \"model\": \"text-davinci-003\",\n                \"object\": \"text_completion\",\n            }\n\n            response = openai.Completion.create(model=\"text-davinci-003\", prompt=self.question, session=session0)\n            answer_text = get_text_from_openai_answer(response)\n            self.assertEqual(answer_text, self.expect_answer)\n\n        response = openai.Completion.create(model=\"text-davinci-003\", prompt=self.question, session=session0)\n        answer_text = get_text_from_openai_answer(response)\n        self.assertEqual(answer_text, self.expect_answer)\n\n        session1 = Session()\n        response = openai.Completion.create(model=\"text-davinci-003\", prompt=self.question, session=session1)\n        answer_text = get_text_from_openai_answer(response)\n        self.assertEqual(answer_text, self.expect_answer)\n\n        with self.assertRaises(AuthenticationError):\n            openai.Completion.create(model=\"text-davinci-003\", prompt=self.question, session=session1)\n\n        self.assertEqual(len(data_manager.list_sessions()), 2)\n        session0.drop()\n        session1.drop()\n        self.assertEqual(len(data_manager.list_sessions()), 0)\n"
  },
  {
    "path": "tests/unit_tests/utils/test_error.py",
    "content": "from gptcache.utils.error import (\n    CacheError,\n    NotInitError,\n    NotFoundError,\n    ParamError,\n)\n\n\ndef test_error_type():\n    not_init_error = NotInitError()\n    assert issubclass(type(not_init_error), CacheError)\n\n    not_found_store_error = NotFoundError(\"unittest\", \"test_error_type\")\n    assert issubclass(type(not_found_store_error), CacheError)\n\n    param_error = ParamError(\"unittest\")\n    assert issubclass(type(param_error), CacheError)\n\n\ndef test_wrap():\n    import openai\n\n    from gptcache.utils.error import wrap_error\n\n    def raise_error():\n        try:\n            raise openai.error.OpenAIError(message=\"test\")\n        except openai.error.OpenAIError as e:\n            raise wrap_error(e)\n\n    is_exception = False\n    try:\n        raise_error()\n    except openai.error.OpenAIError as e:\n        is_exception = True\n\n    assert is_exception\n"
  },
  {
    "path": "tests/unit_tests/utils/test_log.py",
    "content": "from gptcache.utils.log import gptcache_log\n\n\ndef test_error_type():\n    gptcache_log.setLevel(\"INFO\")\n    gptcache_log.error(\"Cache log error.\")\n    gptcache_log.warning(\"Cache log warning.\")\n    gptcache_log.info(\"Cache log info.\")\n    assert gptcache_log.level == 20\n"
  },
  {
    "path": "tests/unit_tests/utils/test_response.py",
    "content": "from gptcache.utils.response import (\n    get_message_from_openai_answer,\n    get_stream_message_from_openai_answer,\n)\n\n\ndef test_get_message_from_openai_answer():\n    message = get_message_from_openai_answer(\n        {\n            \"choices\": [\n                {\n                    \"finish_reason\": \"stop\",\n                    \"index\": 0,\n                    \"message\": {\"content\": \"hello\", \"role\": \"assistant\"},\n                }\n            ],\n            \"created\": 1677825456,\n            \"id\": \"chatcmpl-6ptKqrhgRoVchm58Bby0UvJzq2ZuQ\",\n            \"model\": \"gpt-3.5-turbo-0301\",\n            \"object\": \"chat.completion\",\n            \"usage\": {\n                \"completion_tokens\": 301,\n                \"prompt_tokens\": 36,\n                \"total_tokens\": 337,\n            },\n        }\n    )\n    assert message == \"hello\"\n\n\ndef test_get_stream_message_from_openai_answer():\n    message = get_stream_message_from_openai_answer(\n        {\n            \"choices\": [\n                {\"delta\": {\"role\": \"assistant\"}, \"finish_reason\": None, \"index\": 0}\n            ],\n            \"created\": 1677825464,\n            \"id\": \"chatcmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n            \"model\": \"gpt-3.5-turbo-0301\",\n            \"object\": \"chat.completion.chunk\",\n        }\n    )\n    assert message == \"\"\n\n    message = get_stream_message_from_openai_answer(\n        {\n            \"choices\": [{\"delta\": {\"content\": \"2\"}, \"finish_reason\": None, \"index\": 0}],\n            \"created\": 1677825464,\n            \"id\": \"chatcmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n            \"model\": \"gpt-3.5-turbo-0301\",\n            \"object\": \"chat.completion.chunk\",\n        }\n    )\n    assert message == \"2\"\n"
  }
]